From 8e4bff4cab0ddac6060645b0715210484d02ff40 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Wed, 30 Aug 2017 08:25:59 +0000 Subject: Initial file dump from open source release --- drivers/input/touchscreen/88pm860x-ts.c | 321 + drivers/input/touchscreen/Kconfig | 1049 +++ drivers/input/touchscreen/Makefile | 87 + drivers/input/touchscreen/ad7877.c | 868 +++ drivers/input/touchscreen/ad7879-i2c.c | 109 + drivers/input/touchscreen/ad7879-spi.c | 165 + drivers/input/touchscreen/ad7879.c | 654 ++ drivers/input/touchscreen/ad7879.h | 30 + drivers/input/touchscreen/ads7846.c | 1449 ++++ drivers/input/touchscreen/atmel-wm97xx.c | 439 ++ drivers/input/touchscreen/atmel_mxt_ts.c | 1342 ++++ drivers/input/touchscreen/atmel_tsadcc.c | 359 + drivers/input/touchscreen/auo-pixcir-ts.c | 704 ++ drivers/input/touchscreen/bu21013_ts.c | 733 ++ drivers/input/touchscreen/cy8ctmg110_ts.c | 367 + drivers/input/touchscreen/cyttsp_core.c | 639 ++ drivers/input/touchscreen/cyttsp_core.h | 149 + drivers/input/touchscreen/cyttsp_i2c.c | 136 + drivers/input/touchscreen/cyttsp_spi.c | 199 + drivers/input/touchscreen/da9034-ts.c | 387 + drivers/input/touchscreen/da9052_tsi.c | 351 + drivers/input/touchscreen/dynapro.c | 191 + drivers/input/touchscreen/edt-ft5x06.c | 892 +++ drivers/input/touchscreen/eeti_ts.c | 331 + drivers/input/touchscreen/egalax_ts.c | 311 + drivers/input/touchscreen/elo.c | 408 + ...5306_Spreadtrum_tiger_TRYLY_COB_0x2c_app_3.3V.h | 1660 ++++ .../FT5306_Spreadtrum_tiger_TRYLY_COB_0x2e_app.h | 1660 ++++ .../focaltech/FT6x06_4Column_V02_20140901_app.h | 1386 ++++ .../FT6x06_4Column_Ver0x03_20141117_app.h | 1310 ++++ .../FT6x06_4Column_Ver0x11_20141206_app.h | 1339 ++++ .../FT6x06_4Column_Ver0x12_20150227_app.h | 1285 +++ .../focaltech/Ft5x16_720P_Ver0x0f_app.h | 1275 +++ .../focaltech/Ft5x16_720P_Ver0x23_test_app.h | 1485 ++++ drivers/input/touchscreen/focaltech/Makefile | 11 + drivers/input/touchscreen/focaltech/focaltech.c | 1053 +++ .../input/touchscreen/focaltech/focaltech_ctl.c | 334 + .../input/touchscreen/focaltech/focaltech_ex_fun.c | 1321 ++++ drivers/input/touchscreen/ft5x0x_ts_v1.c | 1691 ++++ drivers/input/touchscreen/fujitsu_ts.c | 178 + drivers/input/touchscreen/goodix/Makefile | 5 + drivers/input/touchscreen/goodix/goodix_tool.c | 548 ++ drivers/input/touchscreen/goodix/gt9xx.c | 2408 ++++++ drivers/input/touchscreen/goodix/gt9xx.h | 340 + drivers/input/touchscreen/goodix/gt9xx_update.c | 2716 +++++++ drivers/input/touchscreen/gunze.c | 189 + drivers/input/touchscreen/hampshire.c | 190 + drivers/input/touchscreen/hp680_ts_input.c | 127 + drivers/input/touchscreen/htcpen.c | 250 + drivers/input/touchscreen/ili210x.c | 360 + drivers/input/touchscreen/inexio.c | 192 + drivers/input/touchscreen/intel-mid-touch.c | 671 ++ drivers/input/touchscreen/ist30xx/Makefile | 7 + .../ist30xx/firmware/IST3038_FW_KANAS.h | 2572 ++++++ .../firmware/ist3038_fw_kanas_ver0001_20140225.h | 2572 ++++++ .../firmware/ist3038_fw_kanas_ver0001_20140226.h | 2572 ++++++ .../firmware/ist3038_fw_kanas_ver0002_20140301.h | 2572 ++++++ .../firmware/ist3038_fw_kanas_ver0003_20140310.h | 2572 ++++++ .../firmware/ist3038_fw_kanas_ver0005_20140323.h | 2572 ++++++ .../firmware/ist3038_fw_kanas_ver0006_20140401.h | 2572 ++++++ .../ist30xx/firmware/ist3038_fw_tshark_ver0007.h | 2572 ++++++ drivers/input/touchscreen/ist30xx/ist30xx.c | 1625 ++++ drivers/input/touchscreen/ist30xx/ist30xx.h | 340 + drivers/input/touchscreen/ist30xx/ist30xx_misc.c | 1284 +++ drivers/input/touchscreen/ist30xx/ist30xx_misc.h | 81 + drivers/input/touchscreen/ist30xx/ist30xx_sec.c | 913 +++ drivers/input/touchscreen/ist30xx/ist30xx_sec.h | 36 + drivers/input/touchscreen/ist30xx/ist30xx_sys.c | 327 + .../input/touchscreen/ist30xx/ist30xx_tracking.c | 235 + .../input/touchscreen/ist30xx/ist30xx_tracking.h | 57 + drivers/input/touchscreen/ist30xx/ist30xx_tsp.h | 52 + drivers/input/touchscreen/ist30xx/ist30xx_update.c | 1449 ++++ drivers/input/touchscreen/ist30xx/ist30xx_update.h | 133 + drivers/input/touchscreen/ist30xxa/Makefile | 7 + .../touchscreen/ist30xxa/firmware/core_prime.h | 2573 ++++++ drivers/input/touchscreen/ist30xxa/ist30xx.c | 1339 ++++ drivers/input/touchscreen/ist30xxa/ist30xx.h | 300 + .../input/touchscreen/ist30xxa/ist30xx_chkic_bin.h | 53 + drivers/input/touchscreen/ist30xxa/ist30xx_cmcs.c | 1345 ++++ drivers/input/touchscreen/ist30xxa/ist30xx_cmcs.h | 131 + .../input/touchscreen/ist30xxa/ist30xx_cmcs_bin.h | 284 + drivers/input/touchscreen/ist30xxa/ist30xx_misc.c | 1582 ++++ drivers/input/touchscreen/ist30xxa/ist30xx_misc.h | 93 + drivers/input/touchscreen/ist30xxa/ist30xx_sec.c | 916 +++ drivers/input/touchscreen/ist30xxa/ist30xx_sec.h | 36 + drivers/input/touchscreen/ist30xxa/ist30xx_sys.c | 308 + .../input/touchscreen/ist30xxa/ist30xx_tracking.c | 236 + .../input/touchscreen/ist30xxa/ist30xx_tracking.h | 57 + drivers/input/touchscreen/ist30xxa/ist30xx_tsp.h | 52 + .../input/touchscreen/ist30xxa/ist30xx_update.c | 1349 ++++ .../input/touchscreen/ist30xxa/ist30xx_update.h | 139 + .../ist30xxb/IST30xxB_FW_Corsica_VE_Ver0003.h | 2156 +++++ .../ist30xxb/IST30xxB_FW_Corsica_VE_Ver0007.h | 2162 +++++ .../ist30xxb/IST30xxB_FW_Star2_Ver0002.h | 2163 +++++ .../ist30xxb/IST30xxB_FW_vivalto_Ver0001_fw.h | 2163 +++++ drivers/input/touchscreen/ist30xxb/Makefile | 6 + drivers/input/touchscreen/ist30xxb/ist30xxb.c | 1261 +++ .../input/touchscreen/ist30xxb/ist30xxb_factory.c | 592 ++ .../ist30xxb/ist30xxb_fw_pikeayoung2dtv_ver0001.h | 2166 ++++++ .../ist30xxb/ist30xxb_fw_young2_ver0001.h | 2166 ++++++ drivers/input/touchscreen/ist30xxb/ist30xxb_misc.c | 1142 +++ drivers/input/touchscreen/ist30xxb/ist30xxb_misc.h | 79 + drivers/input/touchscreen/ist30xxb/ist30xxb_sec.c | 831 ++ drivers/input/touchscreen/ist30xxb/ist30xxb_sec.h | 36 + .../input/touchscreen/ist30xxb/ist30xxb_sec_test.c | 582 ++ .../input/touchscreen/ist30xxb/ist30xxb_sec_tsp.h | 36 + drivers/input/touchscreen/ist30xxb/ist30xxb_sys.c | 413 + .../input/touchscreen/ist30xxb/ist30xxb_tracking.c | 205 + .../input/touchscreen/ist30xxb/ist30xxb_tracking.h | 51 + drivers/input/touchscreen/ist30xxb/ist30xxb_tsp.h | 54 + .../input/touchscreen/ist30xxb/ist30xxb_update.c | 1363 ++++ .../input/touchscreen/ist30xxb/ist30xxb_update.h | 114 + drivers/input/touchscreen/ist30xxc/Makefile | 7 + .../ist30xxc/firmware/coreprimeve3g_fw.h | 2134 +++++ .../touchscreen/ist30xxc/firmware/ist30xxc_fw.h | 4054 ++++++++++ .../touchscreen/ist30xxc/firmware/j7mlte_fw.h | 4054 ++++++++++ .../touchscreen/ist30xxc/firmware/ss_sharklt8_fw.h | 4054 ++++++++++ drivers/input/touchscreen/ist30xxc/ist30xxc.c | 1566 ++++ drivers/input/touchscreen/ist30xxc/ist30xxc.h | 514 ++ drivers/input/touchscreen/ist30xxc/ist30xxc_cmcs.c | 1548 ++++ drivers/input/touchscreen/ist30xxc/ist30xxc_cmcs.h | 160 + .../input/touchscreen/ist30xxc/ist30xxc_cmcs_bin.h | 625 ++ drivers/input/touchscreen/ist30xxc/ist30xxc_misc.c | 1502 ++++ drivers/input/touchscreen/ist30xxc/ist30xxc_misc.h | 36 + drivers/input/touchscreen/ist30xxc/ist30xxc_sec.c | 1402 ++++ drivers/input/touchscreen/ist30xxc/ist30xxc_sec.h | 33 + drivers/input/touchscreen/ist30xxc/ist30xxc_sys.c | 481 ++ .../input/touchscreen/ist30xxc/ist30xxc_tracking.c | 231 + .../input/touchscreen/ist30xxc/ist30xxc_tracking.h | 61 + .../input/touchscreen/ist30xxc/ist30xxc_update.c | 1474 ++++ .../input/touchscreen/ist30xxc/ist30xxc_update.h | 101 + .../ito_test/open_test_ANA1_8861A_lianchuang.h | 527 ++ .../ito_test/open_test_ANA1_B_8861A_lianchuang.h | 494 ++ .../ito_test/open_test_ANA2_8861A_lianchuang.h | 506 ++ .../ito_test/open_test_ANA2_B_8861A_lianchuang.h | 494 ++ .../ito_test/open_test_ANA3_8861A_lianchuang.h | 504 ++ drivers/input/touchscreen/jornada720_ts.c | 177 + drivers/input/touchscreen/lpc32xx_ts.c | 410 + drivers/input/touchscreen/mainstone-wm97xx.c | 310 + drivers/input/touchscreen/max11801_ts.c | 262 + drivers/input/touchscreen/mc13783_ts.c | 258 + drivers/input/touchscreen/mcs5000_ts.c | 310 + drivers/input/touchscreen/migor_ts.c | 249 + drivers/input/touchscreen/mk712.c | 219 + drivers/input/touchscreen/mms100s_ts.c | 1593 ++++ drivers/input/touchscreen/mms114.c | 596 ++ drivers/input/touchscreen/mms134s/Makefile | 6 + drivers/input/touchscreen/mms134s/mms134s.c | 1134 +++ drivers/input/touchscreen/mms134s/mms134s_fw.h | 1296 +++ drivers/input/touchscreen/mms134s/mms134s_sec.c | 1000 +++ drivers/input/touchscreen/mms136_ts.c | 4039 ++++++++++ drivers/input/touchscreen/mms_ts_fw.h | 29 + drivers/input/touchscreen/msg2138.c | 4581 +++++++++++ drivers/input/touchscreen/msg2138/Makefile | 10 + .../touchscreen/msg2138/msg2xxx_xxxx_update_bin.h | 2112 +++++ .../input/touchscreen/msg2138/mstar_drv_common.c | 152 + .../input/touchscreen/msg2138/mstar_drv_common.h | 359 + .../msg2138/mstar_drv_ic_fw_porting_layer.c | 195 + .../msg2138/mstar_drv_ic_fw_porting_layer.h | 90 + drivers/input/touchscreen/msg2138/mstar_drv_main.c | 993 +++ drivers/input/touchscreen/msg2138/mstar_drv_main.h | 89 + .../msg2138/mstar_drv_platform_interface.c | 209 + .../msg2138/mstar_drv_platform_interface.h | 47 + .../msg2138/mstar_drv_platform_porting_layer.c | 553 ++ .../msg2138/mstar_drv_platform_porting_layer.h | 125 + .../msg2138/mstar_drv_self_fw_control.c | 3974 ++++++++++ .../msg2138/mstar_drv_self_fw_control.h | 154 + .../touchscreen/msg2138/mstar_drv_self_mp_test.c | 2514 ++++++ .../touchscreen/msg2138/mstar_drv_self_mp_test.h | 99 + drivers/input/touchscreen/msg2138/mstar_drv_sprd.c | 238 + .../msg2138/mstar_drv_utility_adaption.c | 405 + .../msg2138/mstar_drv_utility_adaption.h | 101 + drivers/input/touchscreen/msg2233/Makefile | 20 + .../touchscreen/msg2233/msg21xxa_xxxx_update_bin.h | 3106 ++++++++ .../touchscreen/msg2233/msg21xxa_yyyy_update_bin.h | 3106 ++++++++ .../touchscreen/msg2233/msg22xx_xxxx_update_bin.h | 3106 ++++++++ .../touchscreen/msg2233/msg22xx_yyyy_update_bin.h | 3106 ++++++++ .../input/touchscreen/msg2233/mstar_drv_common.c | 155 + .../input/touchscreen/msg2233/mstar_drv_common.h | 548 ++ .../input/touchscreen/msg2233/mstar_drv_extern.h | 46 + .../input/touchscreen/msg2233/mstar_drv_hotknot.c | 848 ++ .../input/touchscreen/msg2233/mstar_drv_hotknot.h | 332 + .../touchscreen/msg2233/mstar_drv_hotknot_queue.c | 281 + .../touchscreen/msg2233/mstar_drv_hotknot_queue.h | 63 + .../msg2233/mstar_drv_ic_fw_porting_layer.c | 313 + .../msg2233/mstar_drv_ic_fw_porting_layer.h | 119 + .../touchscreen/msg2233/mstar_drv_jni_interface.c | 287 + .../touchscreen/msg2233/mstar_drv_jni_interface.h | 91 + drivers/input/touchscreen/msg2233/mstar_drv_main.c | 3379 ++++++++ drivers/input/touchscreen/msg2233/mstar_drv_main.h | 186 + drivers/input/touchscreen/msg2233/mstar_drv_mtk.c | 275 + .../msg2233/mstar_drv_mutual_fw_control.c | 6412 +++++++++++++++ .../msg2233/mstar_drv_mutual_fw_control.h | 203 + .../touchscreen/msg2233/mstar_drv_mutual_mp_test.c | 3421 ++++++++ .../touchscreen/msg2233/mstar_drv_mutual_mp_test.h | 94 + .../msg2233/mstar_drv_platform_interface.c | 448 ++ .../msg2233/mstar_drv_platform_interface.h | 50 + .../msg2233/mstar_drv_platform_porting_layer.c | 910 +++ .../msg2233/mstar_drv_platform_porting_layer.h | 178 + drivers/input/touchscreen/msg2233/mstar_drv_qcom.c | 156 + .../msg2233/mstar_drv_self_fw_control.c | 5747 ++++++++++++++ .../msg2233/mstar_drv_self_fw_control.h | 185 + .../touchscreen/msg2233/mstar_drv_self_mp_test.c | 2805 +++++++ .../touchscreen/msg2233/mstar_drv_self_mp_test.h | 101 + drivers/input/touchscreen/msg2233/mstar_drv_sprd.c | 242 + .../msg2233/mstar_drv_utility_adaption.c | 1157 +++ .../msg2233/mstar_drv_utility_adaption.h | 109 + drivers/input/touchscreen/mtouch.c | 205 + drivers/input/touchscreen/pcap_ts.c | 260 + drivers/input/touchscreen/penmount.c | 320 + drivers/input/touchscreen/pixcir_i2c_ts.c | 229 + drivers/input/touchscreen/qt602240_ts.c | 1679 ++++ drivers/input/touchscreen/s3c2410_ts.c | 441 ++ drivers/input/touchscreen/st1232.c | 310 + drivers/input/touchscreen/stmpe-ts.c | 398 + drivers/input/touchscreen/ti_am335x_tsc.c | 398 + drivers/input/touchscreen/tnetv107x-ts.c | 386 + drivers/input/touchscreen/touchit213.c | 219 + drivers/input/touchscreen/touchright.c | 179 + drivers/input/touchscreen/touchwin.c | 186 + drivers/input/touchscreen/tp_sprd.c | 802 ++ drivers/input/touchscreen/tps6507x-ts.c | 377 + drivers/input/touchscreen/tsc2005.c | 756 ++ drivers/input/touchscreen/tsc2007.c | 406 + drivers/input/touchscreen/tsc40.c | 173 + drivers/input/touchscreen/ucb1400_ts.c | 467 ++ drivers/input/touchscreen/usbtouchscreen.c | 1759 +++++ drivers/input/touchscreen/w90p910_ts.c | 339 + drivers/input/touchscreen/wacom_i2c.c | 282 + drivers/input/touchscreen/wacom_w8001.c | 597 ++ drivers/input/touchscreen/wm831x-ts.c | 407 + drivers/input/touchscreen/wm9705.c | 350 + drivers/input/touchscreen/wm9712.c | 471 ++ drivers/input/touchscreen/wm9713.c | 481 ++ drivers/input/touchscreen/wm97xx-core.c | 859 ++ drivers/input/touchscreen/zinitix_bt541_firmware.h | 4127 ++++++++++ drivers/input/touchscreen/zinitix_bt541_ts.c | 6284 +++++++++++++++ drivers/input/touchscreen/zinitix_touch.c | 3858 +++++++++ drivers/input/touchscreen/zinitix_touch.h | 249 + drivers/input/touchscreen/zinitix_touch_bt404.c | 3525 +++++++++ drivers/input/touchscreen/zinitix_touch_bt404.h | 222 + .../touchscreen/zinitix_touch_bt4x3_firmware.h | 4126 ++++++++++ .../touchscreen/zinitix_touch_bt4x3_reg_data.h | 366 + .../touchscreen/zinitix_touch_bt4x4_firmware.h | 4126 ++++++++++ .../input/touchscreen/zinitix_touch_zxt_firmware.h | 8223 ++++++++++++++++++++ drivers/input/touchscreen/zt7554_ts.c | 3187 ++++++++ drivers/input/touchscreen/zt7554_ts.h | 516 ++ drivers/input/touchscreen/zt7554_ts_spec.h | 132 + drivers/input/touchscreen/zylonite-wm97xx.c | 232 + 249 files changed, 244254 insertions(+) create mode 100644 drivers/input/touchscreen/88pm860x-ts.c create mode 100755 drivers/input/touchscreen/Kconfig create mode 100755 drivers/input/touchscreen/Makefile create mode 100644 drivers/input/touchscreen/ad7877.c create mode 100644 drivers/input/touchscreen/ad7879-i2c.c create mode 100644 drivers/input/touchscreen/ad7879-spi.c create mode 100644 drivers/input/touchscreen/ad7879.c create mode 100644 drivers/input/touchscreen/ad7879.h create mode 100644 drivers/input/touchscreen/ads7846.c create mode 100644 drivers/input/touchscreen/atmel-wm97xx.c create mode 100644 drivers/input/touchscreen/atmel_mxt_ts.c create mode 100644 drivers/input/touchscreen/atmel_tsadcc.c create mode 100644 drivers/input/touchscreen/auo-pixcir-ts.c create mode 100644 drivers/input/touchscreen/bu21013_ts.c create mode 100644 drivers/input/touchscreen/cy8ctmg110_ts.c create mode 100644 drivers/input/touchscreen/cyttsp_core.c create mode 100644 drivers/input/touchscreen/cyttsp_core.h create mode 100644 drivers/input/touchscreen/cyttsp_i2c.c create mode 100644 drivers/input/touchscreen/cyttsp_spi.c create mode 100644 drivers/input/touchscreen/da9034-ts.c create mode 100644 drivers/input/touchscreen/da9052_tsi.c create mode 100644 drivers/input/touchscreen/dynapro.c create mode 100644 drivers/input/touchscreen/edt-ft5x06.c create mode 100644 drivers/input/touchscreen/eeti_ts.c create mode 100644 drivers/input/touchscreen/egalax_ts.c create mode 100644 drivers/input/touchscreen/elo.c create mode 100644 drivers/input/touchscreen/focaltech/FT5306_Spreadtrum_tiger_TRYLY_COB_0x2c_app_3.3V.h create mode 100644 drivers/input/touchscreen/focaltech/FT5306_Spreadtrum_tiger_TRYLY_COB_0x2e_app.h create mode 100644 drivers/input/touchscreen/focaltech/FT6x06_4Column_V02_20140901_app.h create mode 100644 drivers/input/touchscreen/focaltech/FT6x06_4Column_Ver0x03_20141117_app.h create mode 100644 drivers/input/touchscreen/focaltech/FT6x06_4Column_Ver0x11_20141206_app.h create mode 100644 drivers/input/touchscreen/focaltech/FT6x06_4Column_Ver0x12_20150227_app.h create mode 100644 drivers/input/touchscreen/focaltech/Ft5x16_720P_Ver0x0f_app.h create mode 100644 drivers/input/touchscreen/focaltech/Ft5x16_720P_Ver0x23_test_app.h create mode 100644 drivers/input/touchscreen/focaltech/Makefile create mode 100644 drivers/input/touchscreen/focaltech/focaltech.c create mode 100644 drivers/input/touchscreen/focaltech/focaltech_ctl.c create mode 100644 drivers/input/touchscreen/focaltech/focaltech_ex_fun.c create mode 100644 drivers/input/touchscreen/ft5x0x_ts_v1.c create mode 100644 drivers/input/touchscreen/fujitsu_ts.c create mode 100644 drivers/input/touchscreen/goodix/Makefile create mode 100644 drivers/input/touchscreen/goodix/goodix_tool.c create mode 100644 drivers/input/touchscreen/goodix/gt9xx.c create mode 100644 drivers/input/touchscreen/goodix/gt9xx.h create mode 100644 drivers/input/touchscreen/goodix/gt9xx_update.c create mode 100644 drivers/input/touchscreen/gunze.c create mode 100644 drivers/input/touchscreen/hampshire.c create mode 100644 drivers/input/touchscreen/hp680_ts_input.c create mode 100644 drivers/input/touchscreen/htcpen.c create mode 100644 drivers/input/touchscreen/ili210x.c create mode 100644 drivers/input/touchscreen/inexio.c create mode 100644 drivers/input/touchscreen/intel-mid-touch.c create mode 100644 drivers/input/touchscreen/ist30xx/Makefile create mode 100644 drivers/input/touchscreen/ist30xx/firmware/IST3038_FW_KANAS.h create mode 100644 drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0001_20140225.h create mode 100644 drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0001_20140226.h create mode 100644 drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0002_20140301.h create mode 100644 drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0003_20140310.h create mode 100644 drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0005_20140323.h create mode 100644 drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0006_20140401.h create mode 100644 drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_tshark_ver0007.h create mode 100644 drivers/input/touchscreen/ist30xx/ist30xx.c create mode 100644 drivers/input/touchscreen/ist30xx/ist30xx.h create mode 100644 drivers/input/touchscreen/ist30xx/ist30xx_misc.c create mode 100644 drivers/input/touchscreen/ist30xx/ist30xx_misc.h create mode 100644 drivers/input/touchscreen/ist30xx/ist30xx_sec.c create mode 100644 drivers/input/touchscreen/ist30xx/ist30xx_sec.h create mode 100644 drivers/input/touchscreen/ist30xx/ist30xx_sys.c create mode 100644 drivers/input/touchscreen/ist30xx/ist30xx_tracking.c create mode 100644 drivers/input/touchscreen/ist30xx/ist30xx_tracking.h create mode 100644 drivers/input/touchscreen/ist30xx/ist30xx_tsp.h create mode 100644 drivers/input/touchscreen/ist30xx/ist30xx_update.c create mode 100644 drivers/input/touchscreen/ist30xx/ist30xx_update.h create mode 100644 drivers/input/touchscreen/ist30xxa/Makefile create mode 100644 drivers/input/touchscreen/ist30xxa/firmware/core_prime.h create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx.c create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx.h create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx_chkic_bin.h create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx_cmcs.c create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx_cmcs.h create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx_cmcs_bin.h create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx_misc.c create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx_misc.h create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx_sec.c create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx_sec.h create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx_sys.c create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx_tracking.c create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx_tracking.h create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx_tsp.h create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx_update.c create mode 100644 drivers/input/touchscreen/ist30xxa/ist30xx_update.h create mode 100755 drivers/input/touchscreen/ist30xxb/IST30xxB_FW_Corsica_VE_Ver0003.h create mode 100644 drivers/input/touchscreen/ist30xxb/IST30xxB_FW_Corsica_VE_Ver0007.h create mode 100644 drivers/input/touchscreen/ist30xxb/IST30xxB_FW_Star2_Ver0002.h create mode 100644 drivers/input/touchscreen/ist30xxb/IST30xxB_FW_vivalto_Ver0001_fw.h create mode 100644 drivers/input/touchscreen/ist30xxb/Makefile create mode 100755 drivers/input/touchscreen/ist30xxb/ist30xxb.c create mode 100755 drivers/input/touchscreen/ist30xxb/ist30xxb_factory.c create mode 100644 drivers/input/touchscreen/ist30xxb/ist30xxb_fw_pikeayoung2dtv_ver0001.h create mode 100644 drivers/input/touchscreen/ist30xxb/ist30xxb_fw_young2_ver0001.h create mode 100755 drivers/input/touchscreen/ist30xxb/ist30xxb_misc.c create mode 100755 drivers/input/touchscreen/ist30xxb/ist30xxb_misc.h create mode 100755 drivers/input/touchscreen/ist30xxb/ist30xxb_sec.c create mode 100755 drivers/input/touchscreen/ist30xxb/ist30xxb_sec.h create mode 100755 drivers/input/touchscreen/ist30xxb/ist30xxb_sec_test.c create mode 100755 drivers/input/touchscreen/ist30xxb/ist30xxb_sec_tsp.h create mode 100644 drivers/input/touchscreen/ist30xxb/ist30xxb_sys.c create mode 100755 drivers/input/touchscreen/ist30xxb/ist30xxb_tracking.c create mode 100755 drivers/input/touchscreen/ist30xxb/ist30xxb_tracking.h create mode 100755 drivers/input/touchscreen/ist30xxb/ist30xxb_tsp.h create mode 100644 drivers/input/touchscreen/ist30xxb/ist30xxb_update.c create mode 100755 drivers/input/touchscreen/ist30xxb/ist30xxb_update.h create mode 100644 drivers/input/touchscreen/ist30xxc/Makefile create mode 100644 drivers/input/touchscreen/ist30xxc/firmware/coreprimeve3g_fw.h create mode 100644 drivers/input/touchscreen/ist30xxc/firmware/ist30xxc_fw.h create mode 100644 drivers/input/touchscreen/ist30xxc/firmware/j7mlte_fw.h create mode 100755 drivers/input/touchscreen/ist30xxc/firmware/ss_sharklt8_fw.h create mode 100644 drivers/input/touchscreen/ist30xxc/ist30xxc.c create mode 100755 drivers/input/touchscreen/ist30xxc/ist30xxc.h create mode 100644 drivers/input/touchscreen/ist30xxc/ist30xxc_cmcs.c create mode 100644 drivers/input/touchscreen/ist30xxc/ist30xxc_cmcs.h create mode 100644 drivers/input/touchscreen/ist30xxc/ist30xxc_cmcs_bin.h create mode 100644 drivers/input/touchscreen/ist30xxc/ist30xxc_misc.c create mode 100644 drivers/input/touchscreen/ist30xxc/ist30xxc_misc.h create mode 100644 drivers/input/touchscreen/ist30xxc/ist30xxc_sec.c create mode 100644 drivers/input/touchscreen/ist30xxc/ist30xxc_sec.h create mode 100644 drivers/input/touchscreen/ist30xxc/ist30xxc_sys.c create mode 100644 drivers/input/touchscreen/ist30xxc/ist30xxc_tracking.c create mode 100644 drivers/input/touchscreen/ist30xxc/ist30xxc_tracking.h create mode 100755 drivers/input/touchscreen/ist30xxc/ist30xxc_update.c create mode 100644 drivers/input/touchscreen/ist30xxc/ist30xxc_update.h create mode 100644 drivers/input/touchscreen/ito_test/open_test_ANA1_8861A_lianchuang.h create mode 100644 drivers/input/touchscreen/ito_test/open_test_ANA1_B_8861A_lianchuang.h create mode 100644 drivers/input/touchscreen/ito_test/open_test_ANA2_8861A_lianchuang.h create mode 100644 drivers/input/touchscreen/ito_test/open_test_ANA2_B_8861A_lianchuang.h create mode 100644 drivers/input/touchscreen/ito_test/open_test_ANA3_8861A_lianchuang.h create mode 100644 drivers/input/touchscreen/jornada720_ts.c create mode 100644 drivers/input/touchscreen/lpc32xx_ts.c create mode 100644 drivers/input/touchscreen/mainstone-wm97xx.c create mode 100644 drivers/input/touchscreen/max11801_ts.c create mode 100644 drivers/input/touchscreen/mc13783_ts.c create mode 100644 drivers/input/touchscreen/mcs5000_ts.c create mode 100644 drivers/input/touchscreen/migor_ts.c create mode 100644 drivers/input/touchscreen/mk712.c create mode 100755 drivers/input/touchscreen/mms100s_ts.c create mode 100644 drivers/input/touchscreen/mms114.c create mode 100644 drivers/input/touchscreen/mms134s/Makefile create mode 100644 drivers/input/touchscreen/mms134s/mms134s.c create mode 100644 drivers/input/touchscreen/mms134s/mms134s_fw.h create mode 100644 drivers/input/touchscreen/mms134s/mms134s_sec.c create mode 100644 drivers/input/touchscreen/mms136_ts.c create mode 100644 drivers/input/touchscreen/mms_ts_fw.h create mode 100644 drivers/input/touchscreen/msg2138.c create mode 100644 drivers/input/touchscreen/msg2138/Makefile create mode 100644 drivers/input/touchscreen/msg2138/msg2xxx_xxxx_update_bin.h create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_common.c create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_common.h create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_ic_fw_porting_layer.c create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_ic_fw_porting_layer.h create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_main.c create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_main.h create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_platform_interface.c create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_platform_interface.h create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_platform_porting_layer.c create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_platform_porting_layer.h create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_self_fw_control.c create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_self_fw_control.h create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_self_mp_test.c create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_self_mp_test.h create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_sprd.c create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_utility_adaption.c create mode 100644 drivers/input/touchscreen/msg2138/mstar_drv_utility_adaption.h create mode 100644 drivers/input/touchscreen/msg2233/Makefile create mode 100755 drivers/input/touchscreen/msg2233/msg21xxa_xxxx_update_bin.h create mode 100755 drivers/input/touchscreen/msg2233/msg21xxa_yyyy_update_bin.h create mode 100755 drivers/input/touchscreen/msg2233/msg22xx_xxxx_update_bin.h create mode 100755 drivers/input/touchscreen/msg2233/msg22xx_yyyy_update_bin.h create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_common.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_common.h create mode 100755 drivers/input/touchscreen/msg2233/mstar_drv_extern.h create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_hotknot.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_hotknot.h create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_hotknot_queue.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_hotknot_queue.h create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_ic_fw_porting_layer.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_ic_fw_porting_layer.h create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_jni_interface.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_jni_interface.h create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_main.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_main.h create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_mtk.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_mutual_fw_control.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_mutual_fw_control.h create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_mutual_mp_test.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_mutual_mp_test.h create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_platform_interface.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_platform_interface.h create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_platform_porting_layer.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_platform_porting_layer.h create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_qcom.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_self_fw_control.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_self_fw_control.h create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_self_mp_test.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_self_mp_test.h create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_sprd.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_utility_adaption.c create mode 100644 drivers/input/touchscreen/msg2233/mstar_drv_utility_adaption.h create mode 100644 drivers/input/touchscreen/mtouch.c create mode 100644 drivers/input/touchscreen/pcap_ts.c create mode 100644 drivers/input/touchscreen/penmount.c create mode 100644 drivers/input/touchscreen/pixcir_i2c_ts.c create mode 100644 drivers/input/touchscreen/qt602240_ts.c create mode 100644 drivers/input/touchscreen/s3c2410_ts.c create mode 100644 drivers/input/touchscreen/st1232.c create mode 100644 drivers/input/touchscreen/stmpe-ts.c create mode 100644 drivers/input/touchscreen/ti_am335x_tsc.c create mode 100644 drivers/input/touchscreen/tnetv107x-ts.c create mode 100644 drivers/input/touchscreen/touchit213.c create mode 100644 drivers/input/touchscreen/touchright.c create mode 100644 drivers/input/touchscreen/touchwin.c create mode 100644 drivers/input/touchscreen/tp_sprd.c create mode 100644 drivers/input/touchscreen/tps6507x-ts.c create mode 100644 drivers/input/touchscreen/tsc2005.c create mode 100644 drivers/input/touchscreen/tsc2007.c create mode 100644 drivers/input/touchscreen/tsc40.c create mode 100644 drivers/input/touchscreen/ucb1400_ts.c create mode 100644 drivers/input/touchscreen/usbtouchscreen.c create mode 100644 drivers/input/touchscreen/w90p910_ts.c create mode 100644 drivers/input/touchscreen/wacom_i2c.c create mode 100644 drivers/input/touchscreen/wacom_w8001.c create mode 100644 drivers/input/touchscreen/wm831x-ts.c create mode 100644 drivers/input/touchscreen/wm9705.c create mode 100644 drivers/input/touchscreen/wm9712.c create mode 100644 drivers/input/touchscreen/wm9713.c create mode 100644 drivers/input/touchscreen/wm97xx-core.c create mode 100644 drivers/input/touchscreen/zinitix_bt541_firmware.h create mode 100644 drivers/input/touchscreen/zinitix_bt541_ts.c create mode 100644 drivers/input/touchscreen/zinitix_touch.c create mode 100644 drivers/input/touchscreen/zinitix_touch.h create mode 100644 drivers/input/touchscreen/zinitix_touch_bt404.c create mode 100644 drivers/input/touchscreen/zinitix_touch_bt404.h create mode 100644 drivers/input/touchscreen/zinitix_touch_bt4x3_firmware.h create mode 100644 drivers/input/touchscreen/zinitix_touch_bt4x3_reg_data.h create mode 100644 drivers/input/touchscreen/zinitix_touch_bt4x4_firmware.h create mode 100755 drivers/input/touchscreen/zinitix_touch_zxt_firmware.h create mode 100755 drivers/input/touchscreen/zt7554_ts.c create mode 100755 drivers/input/touchscreen/zt7554_ts.h create mode 100755 drivers/input/touchscreen/zt7554_ts_spec.h create mode 100644 drivers/input/touchscreen/zylonite-wm97xx.c (limited to 'drivers/input/touchscreen') diff --git a/drivers/input/touchscreen/88pm860x-ts.c b/drivers/input/touchscreen/88pm860x-ts.c new file mode 100644 index 00000000..c7068942 --- /dev/null +++ b/drivers/input/touchscreen/88pm860x-ts.c @@ -0,0 +1,321 @@ +/* + * Touchscreen driver for Marvell 88PM860x + * + * Copyright (C) 2009 Marvell International Ltd. + * Haojian Zhuang + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#include +#include +#include +#include +#include +#include +#include +#include + +#define MEAS_LEN (8) +#define ACCURATE_BIT (12) + +/* touch register */ +#define MEAS_EN3 (0x52) + +#define MEAS_TSIX_1 (0x8D) +#define MEAS_TSIX_2 (0x8E) +#define MEAS_TSIY_1 (0x8F) +#define MEAS_TSIY_2 (0x90) +#define MEAS_TSIZ1_1 (0x91) +#define MEAS_TSIZ1_2 (0x92) +#define MEAS_TSIZ2_1 (0x93) +#define MEAS_TSIZ2_2 (0x94) + +/* bit definitions of touch */ +#define MEAS_PD_EN (1 << 3) +#define MEAS_TSIX_EN (1 << 4) +#define MEAS_TSIY_EN (1 << 5) +#define MEAS_TSIZ1_EN (1 << 6) +#define MEAS_TSIZ2_EN (1 << 7) + +struct pm860x_touch { + struct input_dev *idev; + struct i2c_client *i2c; + struct pm860x_chip *chip; + int irq; + int res_x; /* resistor of Xplate */ +}; + +static irqreturn_t pm860x_touch_handler(int irq, void *data) +{ + struct pm860x_touch *touch = data; + struct pm860x_chip *chip = touch->chip; + unsigned char buf[MEAS_LEN]; + int x, y, pen_down; + int z1, z2, rt = 0; + int ret; + + ret = pm860x_bulk_read(touch->i2c, MEAS_TSIX_1, MEAS_LEN, buf); + if (ret < 0) + goto out; + + pen_down = buf[1] & (1 << 6); + x = ((buf[0] & 0xFF) << 4) | (buf[1] & 0x0F); + y = ((buf[2] & 0xFF) << 4) | (buf[3] & 0x0F); + z1 = ((buf[4] & 0xFF) << 4) | (buf[5] & 0x0F); + z2 = ((buf[6] & 0xFF) << 4) | (buf[7] & 0x0F); + + if (pen_down) { + if ((x != 0) && (z1 != 0) && (touch->res_x != 0)) { + rt = z2 / z1 - 1; + rt = (rt * touch->res_x * x) >> ACCURATE_BIT; + dev_dbg(chip->dev, "z1:%d, z2:%d, rt:%d\n", + z1, z2, rt); + } + input_report_abs(touch->idev, ABS_X, x); + input_report_abs(touch->idev, ABS_Y, y); + input_report_abs(touch->idev, ABS_PRESSURE, rt); + input_report_key(touch->idev, BTN_TOUCH, 1); + dev_dbg(chip->dev, "pen down at [%d, %d].\n", x, y); + } else { + input_report_abs(touch->idev, ABS_PRESSURE, 0); + input_report_key(touch->idev, BTN_TOUCH, 0); + dev_dbg(chip->dev, "pen release\n"); + } + input_sync(touch->idev); + +out: + return IRQ_HANDLED; +} + +static int pm860x_touch_open(struct input_dev *dev) +{ + struct pm860x_touch *touch = input_get_drvdata(dev); + int data, ret; + + data = MEAS_PD_EN | MEAS_TSIX_EN | MEAS_TSIY_EN + | MEAS_TSIZ1_EN | MEAS_TSIZ2_EN; + ret = pm860x_set_bits(touch->i2c, MEAS_EN3, data, data); + if (ret < 0) + goto out; + return 0; +out: + return ret; +} + +static void pm860x_touch_close(struct input_dev *dev) +{ + struct pm860x_touch *touch = input_get_drvdata(dev); + int data; + + data = MEAS_PD_EN | MEAS_TSIX_EN | MEAS_TSIY_EN + | MEAS_TSIZ1_EN | MEAS_TSIZ2_EN; + pm860x_set_bits(touch->i2c, MEAS_EN3, data, 0); +} + +#ifdef CONFIG_OF +static int pm860x_touch_dt_init(struct platform_device *pdev, + struct pm860x_chip *chip, + int *res_x) +{ + struct device_node *np = pdev->dev.parent->of_node; + struct i2c_client *i2c = (chip->id == CHIP_PM8607) ? chip->client \ + : chip->companion; + int data, n, ret; + if (!np) + return -ENODEV; + np = of_find_node_by_name(np, "touch"); + if (!np) { + dev_err(&pdev->dev, "Can't find touch node\n"); + return -EINVAL; + } + /* set GPADC MISC1 register */ + data = 0; + if (!of_property_read_u32(np, "marvell,88pm860x-gpadc-prebias", &n)) + data |= (n << 1) & PM8607_GPADC_PREBIAS_MASK; + if (!of_property_read_u32(np, "marvell,88pm860x-gpadc-slot-cycle", &n)) + data |= (n << 3) & PM8607_GPADC_SLOT_CYCLE_MASK; + if (!of_property_read_u32(np, "marvell,88pm860x-gpadc-off-scale", &n)) + data |= (n << 5) & PM8607_GPADC_OFF_SCALE_MASK; + if (!of_property_read_u32(np, "marvell,88pm860x-gpadc-sw-cal", &n)) + data |= (n << 7) & PM8607_GPADC_SW_CAL_MASK; + if (data) { + ret = pm860x_reg_write(i2c, PM8607_GPADC_MISC1, data); + if (ret < 0) + return -EINVAL; + } + /* set tsi prebias time */ + if (!of_property_read_u32(np, "marvell,88pm860x-tsi-prebias", &data)) { + ret = pm860x_reg_write(i2c, PM8607_TSI_PREBIAS, data); + if (ret < 0) + return -EINVAL; + } + /* set prebias & prechg time of pen detect */ + data = 0; + if (!of_property_read_u32(np, "marvell,88pm860x-pen-prebias", &n)) + data |= n & PM8607_PD_PREBIAS_MASK; + if (!of_property_read_u32(np, "marvell,88pm860x-pen-prechg", &n)) + data |= n & PM8607_PD_PRECHG_MASK; + if (data) { + ret = pm860x_reg_write(i2c, PM8607_PD_PREBIAS, data); + if (ret < 0) + return -EINVAL; + } + of_property_read_u32(np, "marvell,88pm860x-resistor-X", res_x); + return 0; +} +#else +#define pm860x_touch_dt_init(x, y, z) (-1) +#endif + +static int pm860x_touch_probe(struct platform_device *pdev) +{ + struct pm860x_chip *chip = dev_get_drvdata(pdev->dev.parent); + struct pm860x_touch_pdata *pdata = pdev->dev.platform_data; + struct pm860x_touch *touch; + struct i2c_client *i2c = (chip->id == CHIP_PM8607) ? chip->client \ + : chip->companion; + int irq, ret, res_x = 0, data = 0; + + irq = platform_get_irq(pdev, 0); + if (irq < 0) { + dev_err(&pdev->dev, "No IRQ resource!\n"); + return -EINVAL; + } + + if (pm860x_touch_dt_init(pdev, chip, &res_x)) { + if (pdata) { + /* set GPADC MISC1 register */ + data = 0; + data |= (pdata->gpadc_prebias << 1) + & PM8607_GPADC_PREBIAS_MASK; + data |= (pdata->slot_cycle << 3) + & PM8607_GPADC_SLOT_CYCLE_MASK; + data |= (pdata->off_scale << 5) + & PM8607_GPADC_OFF_SCALE_MASK; + data |= (pdata->sw_cal << 7) + & PM8607_GPADC_SW_CAL_MASK; + if (data) { + ret = pm860x_reg_write(i2c, + PM8607_GPADC_MISC1, data); + if (ret < 0) + return -EINVAL; + } + /* set tsi prebias time */ + if (pdata->tsi_prebias) { + data = pdata->tsi_prebias; + ret = pm860x_reg_write(i2c, + PM8607_TSI_PREBIAS, data); + if (ret < 0) + return -EINVAL; + } + /* set prebias & prechg time of pen detect */ + data = 0; + data |= pdata->pen_prebias + & PM8607_PD_PREBIAS_MASK; + data |= (pdata->pen_prechg << 5) + & PM8607_PD_PRECHG_MASK; + if (data) { + ret = pm860x_reg_write(i2c, + PM8607_PD_PREBIAS, data); + if (ret < 0) + return -EINVAL; + } + res_x = pdata->res_x; + } else { + dev_err(&pdev->dev, "failed to get platform data\n"); + return -EINVAL; + } + } + /* enable GPADC */ + ret = pm860x_set_bits(i2c, PM8607_GPADC_MISC1, PM8607_GPADC_EN, + PM8607_GPADC_EN); + if (ret) + return ret; + + touch = kzalloc(sizeof(struct pm860x_touch), GFP_KERNEL); + if (touch == NULL) + return -ENOMEM; + dev_set_drvdata(&pdev->dev, touch); + + touch->idev = input_allocate_device(); + if (touch->idev == NULL) { + dev_err(&pdev->dev, "Failed to allocate input device!\n"); + ret = -ENOMEM; + goto out; + } + + touch->idev->name = "88pm860x-touch"; + touch->idev->phys = "88pm860x/input0"; + touch->idev->id.bustype = BUS_I2C; + touch->idev->dev.parent = &pdev->dev; + touch->idev->open = pm860x_touch_open; + touch->idev->close = pm860x_touch_close; + touch->chip = chip; + touch->i2c = i2c; + touch->irq = irq; + touch->res_x = res_x; + input_set_drvdata(touch->idev, touch); + + ret = request_threaded_irq(touch->irq, NULL, pm860x_touch_handler, + IRQF_ONESHOT, "touch", touch); + if (ret < 0) + goto out_irq; + + __set_bit(EV_ABS, touch->idev->evbit); + __set_bit(ABS_X, touch->idev->absbit); + __set_bit(ABS_Y, touch->idev->absbit); + __set_bit(ABS_PRESSURE, touch->idev->absbit); + __set_bit(EV_SYN, touch->idev->evbit); + __set_bit(EV_KEY, touch->idev->evbit); + __set_bit(BTN_TOUCH, touch->idev->keybit); + + input_set_abs_params(touch->idev, ABS_X, 0, 1 << ACCURATE_BIT, 0, 0); + input_set_abs_params(touch->idev, ABS_Y, 0, 1 << ACCURATE_BIT, 0, 0); + input_set_abs_params(touch->idev, ABS_PRESSURE, 0, 1 << ACCURATE_BIT, + 0, 0); + + ret = input_register_device(touch->idev); + if (ret < 0) { + dev_err(chip->dev, "Failed to register touch!\n"); + goto out_rg; + } + + platform_set_drvdata(pdev, touch); + return 0; +out_rg: + free_irq(touch->irq, touch); +out_irq: + input_free_device(touch->idev); +out: + kfree(touch); + return ret; +} + +static int pm860x_touch_remove(struct platform_device *pdev) +{ + struct pm860x_touch *touch = platform_get_drvdata(pdev); + + input_unregister_device(touch->idev); + free_irq(touch->irq, touch); + platform_set_drvdata(pdev, NULL); + kfree(touch); + return 0; +} + +static struct platform_driver pm860x_touch_driver = { + .driver = { + .name = "88pm860x-touch", + .owner = THIS_MODULE, + }, + .probe = pm860x_touch_probe, + .remove = pm860x_touch_remove, +}; +module_platform_driver(pm860x_touch_driver); + +MODULE_DESCRIPTION("Touchscreen driver for Marvell Semiconductor 88PM860x"); +MODULE_AUTHOR("Haojian Zhuang "); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:88pm860x-touch"); + diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig new file mode 100755 index 00000000..10355a0b --- /dev/null +++ b/drivers/input/touchscreen/Kconfig @@ -0,0 +1,1049 @@ +# +# Touchscreen driver configuration +# +menuconfig INPUT_TOUCHSCREEN + bool "Touchscreens" + help + Say Y here, and a list of supported touchscreens will be displayed. + This option doesn't affect the kernel. + + If unsure, say Y. + +if INPUT_TOUCHSCREEN + +config TOUCHSCREEN_88PM860X + tristate "Marvell 88PM860x touchscreen" + depends on MFD_88PM860X + help + Say Y here if you have a 88PM860x PMIC and want to enable + support for the built-in touchscreen. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called 88pm860x-ts. + +config TOUCHSCREEN_ADS7846 + tristate "ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens" + depends on SPI_MASTER + depends on HWMON = n || HWMON + help + Say Y here if you have a touchscreen interface using the + ADS7846/TSC2046/AD7873 or ADS7843/AD7843 controller, + and your board-specific setup code includes that in its + table of SPI devices. + + If HWMON is selected, and the driver is told the reference voltage + on your board, you will also get hwmon interfaces for the voltage + (and on ads7846/tsc2046/ad7873, temperature) sensors of this chip. + + If unsure, say N (but it's safe to say "Y"). + + To compile this driver as a module, choose M here: the + module will be called ads7846. + +config TOUCHSCREEN_AD7877 + tristate "AD7877 based touchscreens" + depends on SPI_MASTER + help + Say Y here if you have a touchscreen interface using the + AD7877 controller, and your board-specific initialization + code includes that in its table of SPI devices. + + If unsure, say N (but it's safe to say "Y"). + + To compile this driver as a module, choose M here: the + module will be called ad7877. + +config TOUCHSCREEN_AD7879 + tristate "Analog Devices AD7879-1/AD7889-1 touchscreen interface" + help + Say Y here if you want to support a touchscreen interface using + the AD7879-1/AD7889-1 controller. + + You should select a bus connection too. + + To compile this driver as a module, choose M here: the + module will be called ad7879. + +config TOUCHSCREEN_AD7879_I2C + tristate "support I2C bus connection" + depends on TOUCHSCREEN_AD7879 && I2C + help + Say Y here if you have AD7879-1/AD7889-1 hooked to an I2C bus. + + To compile this driver as a module, choose M here: the + module will be called ad7879-i2c. + +config TOUCHSCREEN_AD7879_SPI + tristate "support SPI bus connection" + depends on TOUCHSCREEN_AD7879 && SPI_MASTER + help + Say Y here if you have AD7879-1/AD7889-1 hooked to a SPI bus. + + If unsure, say N (but it's safe to say "Y"). + + To compile this driver as a module, choose M here: the + module will be called ad7879-spi. + +config TOUCHSCREEN_ATMEL_MXT + tristate "Atmel mXT I2C Touchscreen" + depends on I2C + help + Say Y here if you have Atmel mXT series I2C touchscreen, + such as AT42QT602240/ATMXT224, connected to your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called atmel_mxt_ts. + +config TOUCHSCREEN_AUO_PIXCIR + tristate "AUO in-cell touchscreen using Pixcir ICs" + depends on I2C + depends on GPIOLIB + help + Say Y here if you have a AUO display with in-cell touchscreen + using Pixcir ICs. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called auo-pixcir-ts. + +config TOUCHSCREEN_BU21013 + tristate "BU21013 based touch panel controllers" + depends on I2C + help + Say Y here if you have a bu21013 touchscreen connected to + your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called bu21013_ts. + +config TOUCHSCREEN_CY8CTMG110 + tristate "cy8ctmg110 touchscreen" + depends on I2C + depends on GPIOLIB + help + Say Y here if you have a cy8ctmg110 capacitive touchscreen on + an AAVA device. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called cy8ctmg110_ts. + +config TOUCHSCREEN_CYTTSP_CORE + tristate "Cypress TTSP touchscreen" + help + Say Y here if you have a touchscreen using controller from + the Cypress TrueTouch(tm) Standard Product family connected + to your system. You will also need to select appropriate + bus connection below. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called cyttsp_core. + +config TOUCHSCREEN_CYTTSP_I2C + tristate "support I2C bus connection" + depends on TOUCHSCREEN_CYTTSP_CORE && I2C + help + Say Y here if the touchscreen is connected via I2C bus. + + To compile this driver as a module, choose M here: the + module will be called cyttsp_i2c. + +config TOUCHSCREEN_CYTTSP_SPI + tristate "support SPI bus connection" + depends on TOUCHSCREEN_CYTTSP_CORE && SPI_MASTER + help + Say Y here if the touchscreen is connected via SPI bus. + + To compile this driver as a module, choose M here: the + module will be called cyttsp_spi. + +config TOUCHSCREEN_DA9034 + tristate "Touchscreen support for Dialog Semiconductor DA9034" + depends on PMIC_DA903X + default y + help + Say Y here to enable the support for the touchscreen found + on Dialog Semiconductor DA9034 PMIC. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called da9034-ts. + +config TOUCHSCREEN_DA9052 + tristate "Dialog DA9052/DA9053 TSI" + depends on PMIC_DA9052 + help + Say Y here to support the touchscreen found on Dialog Semiconductor + DA9052-BC and DA9053-AA/Bx PMICs. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called da9052_tsi. + +config TOUCHSCREEN_DYNAPRO + tristate "Dynapro serial touchscreen" + select SERIO + help + Say Y here if you have a Dynapro serial touchscreen connected to + your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called dynapro. + +config TOUCHSCREEN_HAMPSHIRE + tristate "Hampshire serial touchscreen" + select SERIO + help + Say Y here if you have a Hampshire serial touchscreen connected to + your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called hampshire. + +config TOUCHSCREEN_EETI + tristate "EETI touchscreen panel support" + depends on I2C + help + Say Y here to enable support for I2C connected EETI touch panels. + + To compile this driver as a module, choose M here: the + module will be called eeti_ts. + +config TOUCHSCREEN_EGALAX + tristate "EETI eGalax multi-touch panel support" + depends on I2C && OF + help + Say Y here to enable support for I2C connected EETI + eGalax multi-touch panels. + + To compile this driver as a module, choose M here: the + module will be called egalax_ts. + +config TOUCHSCREEN_FUJITSU + tristate "Fujitsu serial touchscreen" + select SERIO + help + Say Y here if you have the Fujitsu touchscreen (such as one + installed in Lifebook P series laptop) connected to your + system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called fujitsu-ts. + +config TOUCHSCREEN_ILI210X + tristate "Ilitek ILI210X based touchscreen" + depends on I2C + help + Say Y here if you have a ILI210X based touchscreen + controller. This driver supports models ILI2102, + ILI2102s, ILI2103, ILI2103s and ILI2105. + Such kind of chipsets can be found in Amazon Kindle Fire + touchscreens. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called ili210x. + +config TOUCHSCREEN_S3C2410 + tristate "Samsung S3C2410/generic touchscreen input driver" + depends on ARCH_S3C24XX || SAMSUNG_DEV_TS + select S3C_ADC + help + Say Y here if you have the s3c2410 touchscreen. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called s3c2410_ts. + +config TOUCHSCREEN_GUNZE + tristate "Gunze AHL-51S touchscreen" + select SERIO + help + Say Y here if you have the Gunze AHL-51 touchscreen connected to + your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called gunze. + +config TOUCHSCREEN_ELO + tristate "Elo serial touchscreens" + select SERIO + help + Say Y here if you have an Elo serial touchscreen connected to + your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called elo. + +config TOUCHSCREEN_WACOM_W8001 + tristate "Wacom W8001 penabled serial touchscreen" + select SERIO + help + Say Y here if you have an Wacom W8001 penabled serial touchscreen + connected to your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called wacom_w8001. + +config TOUCHSCREEN_WACOM_I2C + tristate "Wacom Tablet support (I2C)" + depends on I2C + help + Say Y here if you want to use the I2C version of the Wacom + Pen Tablet. + + If unsure, say N. + + To compile this driver as a module, choose M here: the module + will be called wacom_i2c. + +config TOUCHSCREEN_LPC32XX + tristate "LPC32XX touchscreen controller" + depends on ARCH_LPC32XX + help + Say Y here if you have a LPC32XX device and want + to support the built-in touchscreen. + + To compile this driver as a module, choose M here: the + module will be called lpc32xx_ts. + +config TOUCHSCREEN_MAX11801 + tristate "MAX11801 based touchscreens" + depends on I2C + help + Say Y here if you have a MAX11801 based touchscreen + controller. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called max11801_ts. + +config TOUCHSCREEN_MCS5000 + tristate "MELFAS MCS-5000 touchscreen" + depends on I2C + help + Say Y here if you have the MELFAS MCS-5000 touchscreen controller + chip in your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called mcs5000_ts. + +config TOUCHSCREEN_MMS114 + tristate "MELFAS MMS114 touchscreen" + depends on I2C && GENERIC_HARDIRQS + help + Say Y here if you have the MELFAS MMS114 touchscreen controller + chip in your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called mms114. + +config TOUCHSCREEN_ZT7554 + tristate "ZT7554 Touchscreen" + depends on I2C + help + Say Y here if you have the Imagis ZINITIX ZT7554 I2C touchscreen + connected to your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called Zinitix. +config TOUCHSCREEN_MTOUCH + tristate "MicroTouch serial touchscreens" + select SERIO + help + Say Y here if you have a MicroTouch (3M) serial touchscreen connected to + your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called mtouch. + +config TOUCHSCREEN_INEXIO + tristate "iNexio serial touchscreens" + select SERIO + help + Say Y here if you have an iNexio serial touchscreen connected to + your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called inexio. + +config TOUCHSCREEN_INTEL_MID + tristate "Intel MID platform resistive touchscreen" + depends on INTEL_SCU_IPC + help + Say Y here if you have a Intel MID based touchscreen in + your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called intel_mid_touch. + +config TOUCHSCREEN_MK712 + tristate "ICS MicroClock MK712 touchscreen" + help + Say Y here if you have the ICS MicroClock MK712 touchscreen + controller chip in your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called mk712. + +config TOUCHSCREEN_HP600 + tristate "HP Jornada 6xx touchscreen" + depends on SH_HP6XX && SH_ADC + help + Say Y here if you have a HP Jornada 620/660/680/690 and want to + support the built-in touchscreen. + + To compile this driver as a module, choose M here: the + module will be called hp680_ts_input. + +config TOUCHSCREEN_HP7XX + tristate "HP Jornada 7xx touchscreen" + depends on SA1100_JORNADA720_SSP + help + Say Y here if you have a HP Jornada 710/720/728 and want + to support the built-in touchscreen. + + To compile this driver as a module, choose M here: the + module will be called jornada720_ts. + +config TOUCHSCREEN_HTCPEN + tristate "HTC Shift X9500 touchscreen" + depends on ISA + help + Say Y here if you have an HTC Shift UMPC also known as HTC X9500 + Clio / Shangrila and want to support the built-in touchscreen. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called htcpen. + +config TOUCHSCREEN_PENMOUNT + tristate "Penmount serial touchscreen" + select SERIO + help + Say Y here if you have a Penmount serial touchscreen connected to + your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called penmount. + +config TOUCHSCREEN_EDT_FT5X06 + tristate "EDT FocalTech FT5x06 I2C Touchscreen support" + depends on I2C + help + Say Y here if you have an EDT "Polytouch" touchscreen based + on the FocalTech FT5x06 family of controllers connected to + your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called edt-ft5x06. + +config TOUCHSCREEN_MIGOR + tristate "Renesas MIGO-R touchscreen" + depends on SH_MIGOR && I2C + help + Say Y here to enable MIGO-R touchscreen support. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called migor_ts. + +config TOUCHSCREEN_TNETV107X + tristate "TI TNETV107X touchscreen support" + depends on ARCH_DAVINCI_TNETV107X + help + Say Y here if you want to use the TNETV107X touchscreen. + + To compile this driver as a module, choose M here: the + module will be called tnetv107x-ts. + +config TOUCHSCREEN_TOUCHRIGHT + tristate "Touchright serial touchscreen" + select SERIO + help + Say Y here if you have a Touchright serial touchscreen connected to + your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called touchright. + +config TOUCHSCREEN_TOUCHWIN + tristate "Touchwin serial touchscreen" + select SERIO + help + Say Y here if you have a Touchwin serial touchscreen connected to + your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called touchwin. + +config TOUCHSCREEN_TI_AM335X_TSC + tristate "TI Touchscreen Interface" + depends on MFD_TI_AM335X_TSCADC + help + Say Y here if you have 4/5/8 wire touchscreen controller + to be connected to the ADC controller on your TI AM335x SoC. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called ti_am335x_tsc. + +config TOUCHSCREEN_ATMEL_TSADCC + tristate "Atmel Touchscreen Interface" + depends on ARCH_AT91 + help + Say Y here if you have a 4-wire touchscreen connected to the + ADC Controller on your Atmel SoC. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called atmel_tsadcc. + +config TOUCHSCREEN_UCB1400 + tristate "Philips UCB1400 touchscreen" + depends on AC97_BUS + depends on UCB1400_CORE + help + This enables support for the Philips UCB1400 touchscreen interface. + The UCB1400 is an AC97 audio codec. The touchscreen interface + will be initialized only after the ALSA subsystem has been + brought up and the UCB1400 detected. You therefore have to + configure ALSA support as well (either built-in or modular, + independently of whether this driver is itself built-in or + modular) for this driver to work. + + To compile this driver as a module, choose M here: the + module will be called ucb1400_ts. + +config TOUCHSCREEN_PIXCIR + tristate "PIXCIR I2C touchscreens" + depends on I2C + help + Say Y here if you have a pixcir i2c touchscreen + controller. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called pixcir_i2c_ts. + +config TOUCHSCREEN_WM831X + tristate "Support for WM831x touchscreen controllers" + depends on MFD_WM831X + help + This enables support for the touchscreen controller on the WM831x + series of PMICs. + + To compile this driver as a module, choose M here: the + module will be called wm831x-ts. + +config TOUCHSCREEN_WM97XX + tristate "Support for WM97xx AC97 touchscreen controllers" + depends on AC97_BUS + help + Say Y here if you have a Wolfson Microelectronics WM97xx + touchscreen connected to your system. Note that this option + only enables core driver, you will also need to select + support for appropriate chip below. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called wm97xx-ts. + +config TOUCHSCREEN_WM9705 + bool "WM9705 Touchscreen interface support" + depends on TOUCHSCREEN_WM97XX + default y + help + Say Y here to enable support for the Wolfson Microelectronics + WM9705 touchscreen controller. + +config TOUCHSCREEN_WM9712 + bool "WM9712 Touchscreen interface support" + depends on TOUCHSCREEN_WM97XX + default y + help + Say Y here to enable support for the Wolfson Microelectronics + WM9712 touchscreen controller. + +config TOUCHSCREEN_WM9713 + bool "WM9713 Touchscreen interface support" + depends on TOUCHSCREEN_WM97XX + default y + help + Say Y here to enable support for the Wolfson Microelectronics + WM9713 touchscreen controller. + +config TOUCHSCREEN_WM97XX_ATMEL + tristate "WM97xx Atmel accelerated touch" + depends on TOUCHSCREEN_WM97XX && (AVR32 || ARCH_AT91) + help + Say Y here for support for streaming mode with WM97xx touchscreens + on Atmel AT91 or AVR32 systems with an AC97C module. + + Be aware that this will use channel B in the controller for + streaming data, this must not conflict with other AC97C drivers. + + If unsure, say N. + + To compile this driver as a module, choose M here: the module will + be called atmel-wm97xx. + +config TOUCHSCREEN_WM97XX_MAINSTONE + tristate "WM97xx Mainstone/Palm accelerated touch" + depends on TOUCHSCREEN_WM97XX && ARCH_PXA + help + Say Y here for support for streaming mode with WM97xx touchscreens + on Mainstone, Palm Tungsten T5, TX and LifeDrive systems. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called mainstone-wm97xx. + +config TOUCHSCREEN_WM97XX_ZYLONITE + tristate "Zylonite accelerated touch" + depends on TOUCHSCREEN_WM97XX && MACH_ZYLONITE + select TOUCHSCREEN_WM9713 + help + Say Y here for support for streaming mode with the touchscreen + on Zylonite systems. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called zylonite-wm97xx. + +config TOUCHSCREEN_USB_COMPOSITE + tristate "USB Touchscreen Driver" + depends on USB_ARCH_HAS_HCD + select USB + help + USB Touchscreen driver for: + - eGalax Touchkit USB (also includes eTurboTouch CT-410/510/700) + - PanJit TouchSet USB + - 3M MicroTouch USB (EX II series) + - ITM + - some other eTurboTouch + - Gunze AHL61 + - DMC TSC-10/25 + - IRTOUCHSYSTEMS/UNITOP + - IdealTEK URTC1000 + - GoTop Super_Q2/GogoPen/PenPower tablets + - JASTEC USB Touch Controller/DigiTech DTR-02U + - Zytronic controllers + - Elo TouchSystems 2700 IntelliTouch + - EasyTouch USB Touch Controller from Data Modul + - e2i (Mimo monitors) + + Have a look at for + a usage description and the required user-space stuff. + + To compile this driver as a module, choose M here: the + module will be called usbtouchscreen. + +config TOUCHSCREEN_MC13783 + tristate "Freescale MC13783 touchscreen input driver" + depends on MFD_MC13783 + help + Say Y here if you have an Freescale MC13783 PMIC on your + board and want to use its touchscreen + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called mc13783_ts. + +config TOUCHSCREEN_USB_EGALAX + default y + bool "eGalax, eTurboTouch CT-410/510/700 device support" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_PANJIT + default y + bool "PanJit device support" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_3M + default y + bool "3M/Microtouch EX II series device support" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_ITM + default y + bool "ITM device support" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_ETURBO + default y + bool "eTurboTouch (non-eGalax compatible) device support" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_GUNZE + default y + bool "Gunze AHL61 device support" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_DMC_TSC10 + default y + bool "DMC TSC-10/25 device support" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_IRTOUCH + default y + bool "IRTOUCHSYSTEMS/UNITOP device support" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_IDEALTEK + default y + bool "IdealTEK URTC1000 device support" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_GENERAL_TOUCH + default y + bool "GeneralTouch Touchscreen device support" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_GOTOP + default y + bool "GoTop Super_Q2/GogoPen/PenPower tablet device support" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_JASTEC + default y + bool "JASTEC/DigiTech DTR-02U USB touch controller device support" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_ELO + default y + bool "Elo TouchSystems 2700 IntelliTouch controller device support" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_E2I + default y + bool "e2i Touchscreen controller (e.g. from Mimo 740)" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_ZYTRONIC + default y + bool "Zytronic controller" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_ETT_TC45USB + default y + bool "ET&T USB series TC4UM/TC5UH touchscreen controller support" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_NEXIO + default y + bool "NEXIO/iNexio device support" if EXPERT + depends on TOUCHSCREEN_USB_COMPOSITE + +config TOUCHSCREEN_USB_EASYTOUCH + default y + bool "EasyTouch USB Touch controller device support" if EMBEDDED + depends on TOUCHSCREEN_USB_COMPOSITE + help + Say Y here if you have an EasyTouch USB Touch controller. + If unsure, say N. + +config TOUCHSCREEN_TOUCHIT213 + tristate "Sahara TouchIT-213 touchscreen" + select SERIO + help + Say Y here if you have a Sahara TouchIT-213 Tablet PC. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called touchit213. + +config TOUCHSCREEN_TSC_SERIO + tristate "TSC-10/25/40 serial touchscreen support" + select SERIO + help + Say Y here if you have a TSC-10, 25 or 40 serial touchscreen connected + to your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called tsc40. + +config TOUCHSCREEN_TSC2005 + tristate "TSC2005 based touchscreens" + depends on SPI_MASTER && GENERIC_HARDIRQS + help + Say Y here if you have a TSC2005 based touchscreen. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called tsc2005. + +config TOUCHSCREEN_TSC2007 + tristate "TSC2007 based touchscreens" + depends on I2C + help + Say Y here if you have a TSC2007 based touchscreen. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called tsc2007. + +config TOUCHSCREEN_W90X900 + tristate "W90P910 touchscreen driver" + depends on HAVE_CLK + help + Say Y here if you have a W90P910 based touchscreen. + + To compile this driver as a module, choose M here: the + module will be called w90p910_ts. + +config TOUCHSCREEN_PCAP + tristate "Motorola PCAP touchscreen" + depends on EZX_PCAP + help + Say Y here if you have a Motorola EZX telephone and + want to enable support for the built-in touchscreen. + + To compile this driver as a module, choose M here: the + module will be called pcap_ts. + +config TOUCHSCREEN_ST1232 + tristate "Sitronix ST1232 touchscreen controllers" + depends on I2C + help + Say Y here if you want to support Sitronix ST1232 + touchscreen controller. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called st1232_ts. + +config TOUCHSCREEN_STMPE + tristate "STMicroelectronics STMPE touchscreens" + depends on MFD_STMPE + help + Say Y here if you want support for STMicroelectronics + STMPE touchscreen controllers. + + To compile this driver as a module, choose M here: the + module will be called stmpe-ts. + +config TOUCHSCREEN_TPS6507X + tristate "TPS6507x based touchscreens" + depends on I2C + help + Say Y here if you have a TPS6507x based touchscreen + controller. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called tps6507x_ts. + +config TOUCHSCREEN_FOCALTECH + tristate "touchscreen_focaltech driver" + depends on I2C + help + Say Y here if you have a FOCALTECH based touchscreen + controller. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called focaltech_ts.o + +config TOUCHSCREEN_FIRMWARE_UPGRADE + bool "TOUCHSCREEN FIRMWARE UPGRADE" + depends on TOUCHSCREEN_FOCALTECH + default n + help + Say Y here to enable support for the TP firmware update. + +config TOUCHSCREEN_GOODIX + tristate "touchscreen_goodix driver" + depends on I2C + help + Say Y here if you have a GOODIX based touchscreen + controller. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called gt9xx_ts.ko + +config TOUCHSCREEN_MMS136 + tristate "MMS136 touchscreen driver" + depends on I2C + help + Say Y here if you want to support MMS136 based touchscreen + controller. + + If unsure, say N. + + To compile this driver as a module, choose M here:the module + be called mms136_ts + + +config TOUCHSCREEN_IST30XX + tristate "IST30XX I2C Touchscreen" + depends on I2C + help + Say Y here if you have the Imagis IST30XX I2C touchscreen + connected to your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called ist30xx. + +config TOUCHSCREEN_IST30XXA + tristate "IST30XXA I2C Touchscreen" + depends on I2C + help + Say Y here if you have the Imagis IST30XXA I2C touchscreen + connected to your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called ist30xxa. + +config TOUCHSCREEN_IST30XXB + tristate "IST30XXB I2C Touchscreen" + depends on I2C + help + Say Y here if you have the Imagis IST30XXB I2C touchscreen + connected to your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called ist30xx. + +config TOUCHSCREEN_IST30XXC + tristate "IST30XXC I2C Touchscreen" + depends on I2C + help + Say Y here if you have the Imagis IST30XXB I2C touchscreen + connected to your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called ist30xx. + +config TOUCHSCREEN_MMS134 + tristate "MMS134s touchscreen driver" + depends on I2C + help + Say Y here if you want to support MMS134s based touchscreen + controller. + + If unsure, say N. + + To compile this driver as a module, choose M here:the module + be called mms100s_ts + +config TOUCHSCREEN_MMS134S + tristate "MMS134s touchscreen driver" + depends on I2C + help + Say Y here if you want to support MMS134s based touchscreen + controller. + + If unsure, say N. + + To compile this driver as a module, choose M here:the module + be called mms134s + +config TOUCHSCREEN_MSG2138 + tristate "MSG2138 touchscreen driver" + depends on I2C + help + Say Y here if you have a MSG2138 based touchscreen + controller. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called msg2138.c. +config TOUCHSCREEN_MSG2233 + tristate "MSG2233 touchscreen driver" + depends on I2C + help + Say Y here if you have a MSG2233 based touchscreen + controller. + + If unsure, say N. +config TOUCHSCREEN_BT541_TS + tristate "ZINITIX BT541 I2C Touchscreen" + depends on I2C + help + Say Y here if you have the Imagis ZINITIX BT541 I2C touchscreen + connected to your system. + + If unsure, say N. + + To compile this driver as a module, choose M here: + the module will be called Zinitix. + +endif diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile new file mode 100755 index 00000000..d385bf08 --- /dev/null +++ b/drivers/input/touchscreen/Makefile @@ -0,0 +1,87 @@ +# +# Makefile for the touchscreen drivers. +# + +# Each configuration option enables a list of files. + +wm97xx-ts-y := wm97xx-core.o + +obj-$(CONFIG_TOUCHSCREEN_88PM860X) += 88pm860x-ts.o +obj-$(CONFIG_TOUCHSCREEN_AD7877) += ad7877.o +obj-$(CONFIG_TOUCHSCREEN_AD7879) += ad7879.o +obj-$(CONFIG_TOUCHSCREEN_AD7879_I2C) += ad7879-i2c.o +obj-$(CONFIG_TOUCHSCREEN_AD7879_SPI) += ad7879-spi.o +obj-$(CONFIG_TOUCHSCREEN_ADS7846) += ads7846.o +obj-$(CONFIG_TOUCHSCREEN_ATMEL_MXT) += atmel_mxt_ts.o +obj-$(CONFIG_TOUCHSCREEN_ATMEL_TSADCC) += atmel_tsadcc.o +obj-$(CONFIG_TOUCHSCREEN_AUO_PIXCIR) += auo-pixcir-ts.o +obj-$(CONFIG_TOUCHSCREEN_BU21013) += bu21013_ts.o +obj-$(CONFIG_TOUCHSCREEN_CY8CTMG110) += cy8ctmg110_ts.o +obj-$(CONFIG_TOUCHSCREEN_CYTTSP_CORE) += cyttsp_core.o +obj-$(CONFIG_TOUCHSCREEN_CYTTSP_I2C) += cyttsp_i2c.o +obj-$(CONFIG_TOUCHSCREEN_CYTTSP_SPI) += cyttsp_spi.o +obj-$(CONFIG_TOUCHSCREEN_DA9034) += da9034-ts.o +obj-$(CONFIG_TOUCHSCREEN_DA9052) += da9052_tsi.o +obj-$(CONFIG_TOUCHSCREEN_DYNAPRO) += dynapro.o +obj-$(CONFIG_TOUCHSCREEN_EDT_FT5X06) += edt-ft5x06.o +obj-$(CONFIG_TOUCHSCREEN_HAMPSHIRE) += hampshire.o +obj-$(CONFIG_TOUCHSCREEN_GUNZE) += gunze.o +obj-$(CONFIG_TOUCHSCREEN_EETI) += eeti_ts.o +obj-$(CONFIG_TOUCHSCREEN_ELO) += elo.o +obj-$(CONFIG_TOUCHSCREEN_EGALAX) += egalax_ts.o +obj-$(CONFIG_TOUCHSCREEN_FUJITSU) += fujitsu_ts.o +obj-$(CONFIG_TOUCHSCREEN_ILI210X) += ili210x.o +obj-$(CONFIG_TOUCHSCREEN_INEXIO) += inexio.o +obj-$(CONFIG_TOUCHSCREEN_INTEL_MID) += intel-mid-touch.o +obj-$(CONFIG_TOUCHSCREEN_LPC32XX) += lpc32xx_ts.o +obj-$(CONFIG_TOUCHSCREEN_MAX11801) += max11801_ts.o +obj-$(CONFIG_TOUCHSCREEN_MC13783) += mc13783_ts.o +obj-$(CONFIG_TOUCHSCREEN_MCS5000) += mcs5000_ts.o +obj-$(CONFIG_TOUCHSCREEN_MIGOR) += migor_ts.o +obj-$(CONFIG_TOUCHSCREEN_MMS114) += mms114.o +obj-$(CONFIG_TOUCHSCREEN_MTOUCH) += mtouch.o +obj-$(CONFIG_TOUCHSCREEN_MK712) += mk712.o +obj-$(CONFIG_TOUCHSCREEN_HP600) += hp680_ts_input.o +obj-$(CONFIG_TOUCHSCREEN_HP7XX) += jornada720_ts.o +obj-$(CONFIG_TOUCHSCREEN_HTCPEN) += htcpen.o +obj-$(CONFIG_TOUCHSCREEN_USB_COMPOSITE) += usbtouchscreen.o +obj-$(CONFIG_TOUCHSCREEN_PCAP) += pcap_ts.o +obj-$(CONFIG_TOUCHSCREEN_PENMOUNT) += penmount.o +obj-$(CONFIG_TOUCHSCREEN_PIXCIR) += pixcir_i2c_ts.o +obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o +obj-$(CONFIG_TOUCHSCREEN_ST1232) += st1232.o +obj-$(CONFIG_TOUCHSCREEN_STMPE) += stmpe-ts.o +obj-$(CONFIG_TOUCHSCREEN_TI_AM335X_TSC) += ti_am335x_tsc.o +obj-$(CONFIG_TOUCHSCREEN_TNETV107X) += tnetv107x-ts.o +obj-$(CONFIG_TOUCHSCREEN_TOUCHIT213) += touchit213.o +obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o +obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o +obj-$(CONFIG_TOUCHSCREEN_TSC_SERIO) += tsc40.o +obj-$(CONFIG_TOUCHSCREEN_TSC2005) += tsc2005.o +obj-$(CONFIG_TOUCHSCREEN_TSC2007) += tsc2007.o +obj-$(CONFIG_TOUCHSCREEN_UCB1400) += ucb1400_ts.o +obj-$(CONFIG_TOUCHSCREEN_WACOM_W8001) += wacom_w8001.o +obj-$(CONFIG_TOUCHSCREEN_WACOM_I2C) += wacom_i2c.o +obj-$(CONFIG_TOUCHSCREEN_WM831X) += wm831x-ts.o +obj-$(CONFIG_TOUCHSCREEN_WM97XX) += wm97xx-ts.o +wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9705) += wm9705.o +wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9712) += wm9712.o +wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9713) += wm9713.o +obj-$(CONFIG_TOUCHSCREEN_WM97XX_ATMEL) += atmel-wm97xx.o +obj-$(CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE) += mainstone-wm97xx.o +obj-$(CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE) += zylonite-wm97xx.o +obj-$(CONFIG_TOUCHSCREEN_W90X900) += w90p910_ts.o +obj-$(CONFIG_TOUCHSCREEN_TPS6507X) += tps6507x-ts.o +obj-$(CONFIG_TOUCHSCREEN_FOCALTECH) += focaltech/ +obj-$(CONFIG_TOUCHSCREEN_MMS136) += mms136_ts.o +obj-$(CONFIG_TOUCHSCREEN_IST30XX) += ist30xx/ +obj-$(CONFIG_TOUCHSCREEN_IST30XXA) += ist30xxa/ +obj-$(CONFIG_TOUCHSCREEN_IST30XXB) += ist30xxb/ +obj-$(CONFIG_TOUCHSCREEN_IST30XXC) += ist30xxc/ +obj-$(CONFIG_TOUCHSCREEN_GOODIX) += goodix/ +obj-$(CONFIG_TOUCHSCREEN_MMS134) += mms100s_ts.o +obj-$(CONFIG_TOUCHSCREEN_MMS134S) += mms134s/ +obj-$(CONFIG_TOUCHSCREEN_MSG2138) += msg2138/ +obj-$(CONFIG_TOUCHSCREEN_MSG2233) += msg2233/ +obj-$(CONFIG_TOUCHSCREEN_ZT7554) += zt7554_ts.o +obj-$(CONFIG_TOUCHSCREEN_BT541_TS) += zinitix_bt541_ts.o diff --git a/drivers/input/touchscreen/ad7877.c b/drivers/input/touchscreen/ad7877.c new file mode 100644 index 00000000..f3a174a8 --- /dev/null +++ b/drivers/input/touchscreen/ad7877.c @@ -0,0 +1,868 @@ +/* + * Copyright (C) 2006-2008 Michael Hennerich, Analog Devices Inc. + * + * Description: AD7877 based touchscreen, sensor (ADCs), DAC and GPIO driver + * Based on: ads7846.c + * + * Bugs: Enter bugs at http://blackfin.uclinux.org/ + * + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see the file COPYING, or write + * to the Free Software Foundation, Inc., + * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * History: + * Copyright (c) 2005 David Brownell + * Copyright (c) 2006 Nokia Corporation + * Various changes: Imre Deak + * + * Using code from: + * - corgi_ts.c + * Copyright (C) 2004-2005 Richard Purdie + * - omap_ts.[hc], ads7846.h, ts_osk.c + * Copyright (C) 2002 MontaVista Software + * Copyright (C) 2004 Texas Instruments + * Copyright (C) 2005 Dirk Behme + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define TS_PEN_UP_TIMEOUT msecs_to_jiffies(100) + +#define MAX_SPI_FREQ_HZ 20000000 +#define MAX_12BIT ((1<<12)-1) + +#define AD7877_REG_ZEROS 0 +#define AD7877_REG_CTRL1 1 +#define AD7877_REG_CTRL2 2 +#define AD7877_REG_ALERT 3 +#define AD7877_REG_AUX1HIGH 4 +#define AD7877_REG_AUX1LOW 5 +#define AD7877_REG_BAT1HIGH 6 +#define AD7877_REG_BAT1LOW 7 +#define AD7877_REG_BAT2HIGH 8 +#define AD7877_REG_BAT2LOW 9 +#define AD7877_REG_TEMP1HIGH 10 +#define AD7877_REG_TEMP1LOW 11 +#define AD7877_REG_SEQ0 12 +#define AD7877_REG_SEQ1 13 +#define AD7877_REG_DAC 14 +#define AD7877_REG_NONE1 15 +#define AD7877_REG_EXTWRITE 15 +#define AD7877_REG_XPLUS 16 +#define AD7877_REG_YPLUS 17 +#define AD7877_REG_Z2 18 +#define AD7877_REG_aux1 19 +#define AD7877_REG_aux2 20 +#define AD7877_REG_aux3 21 +#define AD7877_REG_bat1 22 +#define AD7877_REG_bat2 23 +#define AD7877_REG_temp1 24 +#define AD7877_REG_temp2 25 +#define AD7877_REG_Z1 26 +#define AD7877_REG_GPIOCTRL1 27 +#define AD7877_REG_GPIOCTRL2 28 +#define AD7877_REG_GPIODATA 29 +#define AD7877_REG_NONE2 30 +#define AD7877_REG_NONE3 31 + +#define AD7877_SEQ_YPLUS_BIT (1<<11) +#define AD7877_SEQ_XPLUS_BIT (1<<10) +#define AD7877_SEQ_Z2_BIT (1<<9) +#define AD7877_SEQ_AUX1_BIT (1<<8) +#define AD7877_SEQ_AUX2_BIT (1<<7) +#define AD7877_SEQ_AUX3_BIT (1<<6) +#define AD7877_SEQ_BAT1_BIT (1<<5) +#define AD7877_SEQ_BAT2_BIT (1<<4) +#define AD7877_SEQ_TEMP1_BIT (1<<3) +#define AD7877_SEQ_TEMP2_BIT (1<<2) +#define AD7877_SEQ_Z1_BIT (1<<1) + +enum { + AD7877_SEQ_YPOS = 0, + AD7877_SEQ_XPOS = 1, + AD7877_SEQ_Z2 = 2, + AD7877_SEQ_AUX1 = 3, + AD7877_SEQ_AUX2 = 4, + AD7877_SEQ_AUX3 = 5, + AD7877_SEQ_BAT1 = 6, + AD7877_SEQ_BAT2 = 7, + AD7877_SEQ_TEMP1 = 8, + AD7877_SEQ_TEMP2 = 9, + AD7877_SEQ_Z1 = 10, + AD7877_NR_SENSE = 11, +}; + +/* DAC Register Default RANGE 0 to Vcc, Volatge Mode, DAC On */ +#define AD7877_DAC_CONF 0x1 + +/* If gpio3 is set AUX3/GPIO3 acts as GPIO Output */ +#define AD7877_EXTW_GPIO_3_CONF 0x1C4 +#define AD7877_EXTW_GPIO_DATA 0x200 + +/* Control REG 2 */ +#define AD7877_TMR(x) ((x & 0x3) << 0) +#define AD7877_REF(x) ((x & 0x1) << 2) +#define AD7877_POL(x) ((x & 0x1) << 3) +#define AD7877_FCD(x) ((x & 0x3) << 4) +#define AD7877_PM(x) ((x & 0x3) << 6) +#define AD7877_ACQ(x) ((x & 0x3) << 8) +#define AD7877_AVG(x) ((x & 0x3) << 10) + +/* Control REG 1 */ +#define AD7877_SER (1 << 11) /* non-differential */ +#define AD7877_DFR (0 << 11) /* differential */ + +#define AD7877_MODE_NOC (0) /* Do not convert */ +#define AD7877_MODE_SCC (1) /* Single channel conversion */ +#define AD7877_MODE_SEQ0 (2) /* Sequence 0 in Slave Mode */ +#define AD7877_MODE_SEQ1 (3) /* Sequence 1 in Master Mode */ + +#define AD7877_CHANADD(x) ((x&0xF)<<7) +#define AD7877_READADD(x) ((x)<<2) +#define AD7877_WRITEADD(x) ((x)<<12) + +#define AD7877_READ_CHAN(x) (AD7877_WRITEADD(AD7877_REG_CTRL1) | AD7877_SER | \ + AD7877_MODE_SCC | AD7877_CHANADD(AD7877_REG_ ## x) | \ + AD7877_READADD(AD7877_REG_ ## x)) + +#define AD7877_MM_SEQUENCE (AD7877_SEQ_YPLUS_BIT | AD7877_SEQ_XPLUS_BIT | \ + AD7877_SEQ_Z2_BIT | AD7877_SEQ_Z1_BIT) + +/* + * Non-touchscreen sensors only use single-ended conversions. + */ + +struct ser_req { + u16 reset; + u16 ref_on; + u16 command; + struct spi_message msg; + struct spi_transfer xfer[6]; + + /* + * DMA (thus cache coherency maintenance) requires the + * transfer buffers to live in their own cache lines. + */ + u16 sample ____cacheline_aligned; +}; + +struct ad7877 { + struct input_dev *input; + char phys[32]; + + struct spi_device *spi; + u16 model; + u16 vref_delay_usecs; + u16 x_plate_ohms; + u16 pressure_max; + + u16 cmd_crtl1; + u16 cmd_crtl2; + u16 cmd_dummy; + u16 dac; + + u8 stopacq_polarity; + u8 first_conversion_delay; + u8 acquisition_time; + u8 averaging; + u8 pen_down_acc_interval; + + struct spi_transfer xfer[AD7877_NR_SENSE + 2]; + struct spi_message msg; + + struct mutex mutex; + bool disabled; /* P: mutex */ + bool gpio3; /* P: mutex */ + bool gpio4; /* P: mutex */ + + spinlock_t lock; + struct timer_list timer; /* P: lock */ + + /* + * DMA (thus cache coherency maintenance) requires the + * transfer buffers to live in their own cache lines. + */ + u16 conversion_data[AD7877_NR_SENSE] ____cacheline_aligned; +}; + +static bool gpio3; +module_param(gpio3, bool, 0); +MODULE_PARM_DESC(gpio3, "If gpio3 is set to 1 AUX3 acts as GPIO3"); + +/* + * ad7877_read/write are only used for initial setup and for sysfs controls. + * The main traffic is done using spi_async() in the interrupt handler. + */ + +static int ad7877_read(struct spi_device *spi, u16 reg) +{ + struct ser_req *req; + int status, ret; + + req = kzalloc(sizeof *req, GFP_KERNEL); + if (!req) + return -ENOMEM; + + spi_message_init(&req->msg); + + req->command = (u16) (AD7877_WRITEADD(AD7877_REG_CTRL1) | + AD7877_READADD(reg)); + req->xfer[0].tx_buf = &req->command; + req->xfer[0].len = 2; + req->xfer[0].cs_change = 1; + + req->xfer[1].rx_buf = &req->sample; + req->xfer[1].len = 2; + + spi_message_add_tail(&req->xfer[0], &req->msg); + spi_message_add_tail(&req->xfer[1], &req->msg); + + status = spi_sync(spi, &req->msg); + ret = status ? : req->sample; + + kfree(req); + + return ret; +} + +static int ad7877_write(struct spi_device *spi, u16 reg, u16 val) +{ + struct ser_req *req; + int status; + + req = kzalloc(sizeof *req, GFP_KERNEL); + if (!req) + return -ENOMEM; + + spi_message_init(&req->msg); + + req->command = (u16) (AD7877_WRITEADD(reg) | (val & MAX_12BIT)); + req->xfer[0].tx_buf = &req->command; + req->xfer[0].len = 2; + + spi_message_add_tail(&req->xfer[0], &req->msg); + + status = spi_sync(spi, &req->msg); + + kfree(req); + + return status; +} + +static int ad7877_read_adc(struct spi_device *spi, unsigned command) +{ + struct ad7877 *ts = spi_get_drvdata(spi); + struct ser_req *req; + int status; + int sample; + int i; + + req = kzalloc(sizeof *req, GFP_KERNEL); + if (!req) + return -ENOMEM; + + spi_message_init(&req->msg); + + /* activate reference, so it has time to settle; */ + req->ref_on = AD7877_WRITEADD(AD7877_REG_CTRL2) | + AD7877_POL(ts->stopacq_polarity) | + AD7877_AVG(0) | AD7877_PM(2) | AD7877_TMR(0) | + AD7877_ACQ(ts->acquisition_time) | AD7877_FCD(0); + + req->reset = AD7877_WRITEADD(AD7877_REG_CTRL1) | AD7877_MODE_NOC; + + req->command = (u16) command; + + req->xfer[0].tx_buf = &req->reset; + req->xfer[0].len = 2; + req->xfer[0].cs_change = 1; + + req->xfer[1].tx_buf = &req->ref_on; + req->xfer[1].len = 2; + req->xfer[1].delay_usecs = ts->vref_delay_usecs; + req->xfer[1].cs_change = 1; + + req->xfer[2].tx_buf = &req->command; + req->xfer[2].len = 2; + req->xfer[2].delay_usecs = ts->vref_delay_usecs; + req->xfer[2].cs_change = 1; + + req->xfer[3].rx_buf = &req->sample; + req->xfer[3].len = 2; + req->xfer[3].cs_change = 1; + + req->xfer[4].tx_buf = &ts->cmd_crtl2; /*REF OFF*/ + req->xfer[4].len = 2; + req->xfer[4].cs_change = 1; + + req->xfer[5].tx_buf = &ts->cmd_crtl1; /*DEFAULT*/ + req->xfer[5].len = 2; + + /* group all the transfers together, so we can't interfere with + * reading touchscreen state; disable penirq while sampling + */ + for (i = 0; i < 6; i++) + spi_message_add_tail(&req->xfer[i], &req->msg); + + status = spi_sync(spi, &req->msg); + sample = req->sample; + + kfree(req); + + return status ? : sample; +} + +static int ad7877_process_data(struct ad7877 *ts) +{ + struct input_dev *input_dev = ts->input; + unsigned Rt; + u16 x, y, z1, z2; + + x = ts->conversion_data[AD7877_SEQ_XPOS] & MAX_12BIT; + y = ts->conversion_data[AD7877_SEQ_YPOS] & MAX_12BIT; + z1 = ts->conversion_data[AD7877_SEQ_Z1] & MAX_12BIT; + z2 = ts->conversion_data[AD7877_SEQ_Z2] & MAX_12BIT; + + /* + * The samples processed here are already preprocessed by the AD7877. + * The preprocessing function consists of an averaging filter. + * The combination of 'first conversion delay' and averaging provides a robust solution, + * discarding the spurious noise in the signal and keeping only the data of interest. + * The size of the averaging filter is programmable. (dev.platform_data, see linux/spi/ad7877.h) + * Other user-programmable conversion controls include variable acquisition time, + * and first conversion delay. Up to 16 averages can be taken per conversion. + */ + + if (likely(x && z1)) { + /* compute touch pressure resistance using equation #1 */ + Rt = (z2 - z1) * x * ts->x_plate_ohms; + Rt /= z1; + Rt = (Rt + 2047) >> 12; + + /* + * Sample found inconsistent, pressure is beyond + * the maximum. Don't report it to user space. + */ + if (Rt > ts->pressure_max) + return -EINVAL; + + if (!timer_pending(&ts->timer)) + input_report_key(input_dev, BTN_TOUCH, 1); + + input_report_abs(input_dev, ABS_X, x); + input_report_abs(input_dev, ABS_Y, y); + input_report_abs(input_dev, ABS_PRESSURE, Rt); + input_sync(input_dev); + + return 0; + } + + return -EINVAL; +} + +static inline void ad7877_ts_event_release(struct ad7877 *ts) +{ + struct input_dev *input_dev = ts->input; + + input_report_abs(input_dev, ABS_PRESSURE, 0); + input_report_key(input_dev, BTN_TOUCH, 0); + input_sync(input_dev); +} + +static void ad7877_timer(unsigned long handle) +{ + struct ad7877 *ts = (void *)handle; + unsigned long flags; + + spin_lock_irqsave(&ts->lock, flags); + ad7877_ts_event_release(ts); + spin_unlock_irqrestore(&ts->lock, flags); +} + +static irqreturn_t ad7877_irq(int irq, void *handle) +{ + struct ad7877 *ts = handle; + unsigned long flags; + int error; + + error = spi_sync(ts->spi, &ts->msg); + if (error) { + dev_err(&ts->spi->dev, "spi_sync --> %d\n", error); + goto out; + } + + spin_lock_irqsave(&ts->lock, flags); + error = ad7877_process_data(ts); + if (!error) + mod_timer(&ts->timer, jiffies + TS_PEN_UP_TIMEOUT); + spin_unlock_irqrestore(&ts->lock, flags); + +out: + return IRQ_HANDLED; +} + +static void ad7877_disable(struct ad7877 *ts) +{ + mutex_lock(&ts->mutex); + + if (!ts->disabled) { + ts->disabled = true; + disable_irq(ts->spi->irq); + + if (del_timer_sync(&ts->timer)) + ad7877_ts_event_release(ts); + } + + /* + * We know the chip's in lowpower mode since we always + * leave it that way after every request + */ + + mutex_unlock(&ts->mutex); +} + +static void ad7877_enable(struct ad7877 *ts) +{ + mutex_lock(&ts->mutex); + + if (ts->disabled) { + ts->disabled = false; + enable_irq(ts->spi->irq); + } + + mutex_unlock(&ts->mutex); +} + +#define SHOW(name) static ssize_t \ +name ## _show(struct device *dev, struct device_attribute *attr, char *buf) \ +{ \ + struct ad7877 *ts = dev_get_drvdata(dev); \ + ssize_t v = ad7877_read_adc(ts->spi, \ + AD7877_READ_CHAN(name)); \ + if (v < 0) \ + return v; \ + return sprintf(buf, "%u\n", (unsigned) v); \ +} \ +static DEVICE_ATTR(name, S_IRUGO, name ## _show, NULL); + +SHOW(aux1) +SHOW(aux2) +SHOW(aux3) +SHOW(bat1) +SHOW(bat2) +SHOW(temp1) +SHOW(temp2) + +static ssize_t ad7877_disable_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ad7877 *ts = dev_get_drvdata(dev); + + return sprintf(buf, "%u\n", ts->disabled); +} + +static ssize_t ad7877_disable_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct ad7877 *ts = dev_get_drvdata(dev); + unsigned int val; + int error; + + error = kstrtouint(buf, 10, &val); + if (error) + return error; + + if (val) + ad7877_disable(ts); + else + ad7877_enable(ts); + + return count; +} + +static DEVICE_ATTR(disable, 0664, ad7877_disable_show, ad7877_disable_store); + +static ssize_t ad7877_dac_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ad7877 *ts = dev_get_drvdata(dev); + + return sprintf(buf, "%u\n", ts->dac); +} + +static ssize_t ad7877_dac_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct ad7877 *ts = dev_get_drvdata(dev); + unsigned int val; + int error; + + error = kstrtouint(buf, 10, &val); + if (error) + return error; + + mutex_lock(&ts->mutex); + ts->dac = val & 0xFF; + ad7877_write(ts->spi, AD7877_REG_DAC, (ts->dac << 4) | AD7877_DAC_CONF); + mutex_unlock(&ts->mutex); + + return count; +} + +static DEVICE_ATTR(dac, 0664, ad7877_dac_show, ad7877_dac_store); + +static ssize_t ad7877_gpio3_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ad7877 *ts = dev_get_drvdata(dev); + + return sprintf(buf, "%u\n", ts->gpio3); +} + +static ssize_t ad7877_gpio3_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct ad7877 *ts = dev_get_drvdata(dev); + unsigned int val; + int error; + + error = kstrtouint(buf, 10, &val); + if (error) + return error; + + mutex_lock(&ts->mutex); + ts->gpio3 = !!val; + ad7877_write(ts->spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_DATA | + (ts->gpio4 << 4) | (ts->gpio3 << 5)); + mutex_unlock(&ts->mutex); + + return count; +} + +static DEVICE_ATTR(gpio3, 0664, ad7877_gpio3_show, ad7877_gpio3_store); + +static ssize_t ad7877_gpio4_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ad7877 *ts = dev_get_drvdata(dev); + + return sprintf(buf, "%u\n", ts->gpio4); +} + +static ssize_t ad7877_gpio4_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct ad7877 *ts = dev_get_drvdata(dev); + unsigned int val; + int error; + + error = kstrtouint(buf, 10, &val); + if (error) + return error; + + mutex_lock(&ts->mutex); + ts->gpio4 = !!val; + ad7877_write(ts->spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_DATA | + (ts->gpio4 << 4) | (ts->gpio3 << 5)); + mutex_unlock(&ts->mutex); + + return count; +} + +static DEVICE_ATTR(gpio4, 0664, ad7877_gpio4_show, ad7877_gpio4_store); + +static struct attribute *ad7877_attributes[] = { + &dev_attr_temp1.attr, + &dev_attr_temp2.attr, + &dev_attr_aux1.attr, + &dev_attr_aux2.attr, + &dev_attr_aux3.attr, + &dev_attr_bat1.attr, + &dev_attr_bat2.attr, + &dev_attr_disable.attr, + &dev_attr_dac.attr, + &dev_attr_gpio3.attr, + &dev_attr_gpio4.attr, + NULL +}; + +static umode_t ad7877_attr_is_visible(struct kobject *kobj, + struct attribute *attr, int n) +{ + umode_t mode = attr->mode; + + if (attr == &dev_attr_aux3.attr) { + if (gpio3) + mode = 0; + } else if (attr == &dev_attr_gpio3.attr) { + if (!gpio3) + mode = 0; + } + + return mode; +} + +static const struct attribute_group ad7877_attr_group = { + .is_visible = ad7877_attr_is_visible, + .attrs = ad7877_attributes, +}; + +static void ad7877_setup_ts_def_msg(struct spi_device *spi, struct ad7877 *ts) +{ + struct spi_message *m; + int i; + + ts->cmd_crtl2 = AD7877_WRITEADD(AD7877_REG_CTRL2) | + AD7877_POL(ts->stopacq_polarity) | + AD7877_AVG(ts->averaging) | AD7877_PM(1) | + AD7877_TMR(ts->pen_down_acc_interval) | + AD7877_ACQ(ts->acquisition_time) | + AD7877_FCD(ts->first_conversion_delay); + + ad7877_write(spi, AD7877_REG_CTRL2, ts->cmd_crtl2); + + ts->cmd_crtl1 = AD7877_WRITEADD(AD7877_REG_CTRL1) | + AD7877_READADD(AD7877_REG_XPLUS-1) | + AD7877_MODE_SEQ1 | AD7877_DFR; + + ad7877_write(spi, AD7877_REG_CTRL1, ts->cmd_crtl1); + + ts->cmd_dummy = 0; + + m = &ts->msg; + + spi_message_init(m); + + m->context = ts; + + ts->xfer[0].tx_buf = &ts->cmd_crtl1; + ts->xfer[0].len = 2; + ts->xfer[0].cs_change = 1; + + spi_message_add_tail(&ts->xfer[0], m); + + ts->xfer[1].tx_buf = &ts->cmd_dummy; /* Send ZERO */ + ts->xfer[1].len = 2; + ts->xfer[1].cs_change = 1; + + spi_message_add_tail(&ts->xfer[1], m); + + for (i = 0; i < AD7877_NR_SENSE; i++) { + ts->xfer[i + 2].rx_buf = &ts->conversion_data[AD7877_SEQ_YPOS + i]; + ts->xfer[i + 2].len = 2; + if (i < (AD7877_NR_SENSE - 1)) + ts->xfer[i + 2].cs_change = 1; + spi_message_add_tail(&ts->xfer[i + 2], m); + } +} + +static int ad7877_probe(struct spi_device *spi) +{ + struct ad7877 *ts; + struct input_dev *input_dev; + struct ad7877_platform_data *pdata = spi->dev.platform_data; + int err; + u16 verify; + + if (!spi->irq) { + dev_dbg(&spi->dev, "no IRQ?\n"); + return -ENODEV; + } + + if (!pdata) { + dev_dbg(&spi->dev, "no platform data?\n"); + return -ENODEV; + } + + /* don't exceed max specified SPI CLK frequency */ + if (spi->max_speed_hz > MAX_SPI_FREQ_HZ) { + dev_dbg(&spi->dev, "SPI CLK %d Hz?\n",spi->max_speed_hz); + return -EINVAL; + } + + spi->bits_per_word = 16; + err = spi_setup(spi); + if (err) { + dev_dbg(&spi->dev, "spi master doesn't support 16 bits/word\n"); + return err; + } + + ts = kzalloc(sizeof(struct ad7877), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!ts || !input_dev) { + err = -ENOMEM; + goto err_free_mem; + } + + spi_set_drvdata(spi, ts); + ts->spi = spi; + ts->input = input_dev; + + setup_timer(&ts->timer, ad7877_timer, (unsigned long) ts); + mutex_init(&ts->mutex); + spin_lock_init(&ts->lock); + + ts->model = pdata->model ? : 7877; + ts->vref_delay_usecs = pdata->vref_delay_usecs ? : 100; + ts->x_plate_ohms = pdata->x_plate_ohms ? : 400; + ts->pressure_max = pdata->pressure_max ? : ~0; + + ts->stopacq_polarity = pdata->stopacq_polarity; + ts->first_conversion_delay = pdata->first_conversion_delay; + ts->acquisition_time = pdata->acquisition_time; + ts->averaging = pdata->averaging; + ts->pen_down_acc_interval = pdata->pen_down_acc_interval; + + snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(&spi->dev)); + + input_dev->name = "AD7877 Touchscreen"; + input_dev->phys = ts->phys; + input_dev->dev.parent = &spi->dev; + + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(BTN_TOUCH, input_dev->keybit); + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(ABS_X, input_dev->absbit); + __set_bit(ABS_Y, input_dev->absbit); + __set_bit(ABS_PRESSURE, input_dev->absbit); + + input_set_abs_params(input_dev, ABS_X, + pdata->x_min ? : 0, + pdata->x_max ? : MAX_12BIT, + 0, 0); + input_set_abs_params(input_dev, ABS_Y, + pdata->y_min ? : 0, + pdata->y_max ? : MAX_12BIT, + 0, 0); + input_set_abs_params(input_dev, ABS_PRESSURE, + pdata->pressure_min, pdata->pressure_max, 0, 0); + + ad7877_write(spi, AD7877_REG_SEQ1, AD7877_MM_SEQUENCE); + + verify = ad7877_read(spi, AD7877_REG_SEQ1); + + if (verify != AD7877_MM_SEQUENCE){ + dev_err(&spi->dev, "%s: Failed to probe %s\n", + dev_name(&spi->dev), input_dev->name); + err = -ENODEV; + goto err_free_mem; + } + + if (gpio3) + ad7877_write(spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_3_CONF); + + ad7877_setup_ts_def_msg(spi, ts); + + /* Request AD7877 /DAV GPIO interrupt */ + + err = request_threaded_irq(spi->irq, NULL, ad7877_irq, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + spi->dev.driver->name, ts); + if (err) { + dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq); + goto err_free_mem; + } + + err = sysfs_create_group(&spi->dev.kobj, &ad7877_attr_group); + if (err) + goto err_free_irq; + + err = input_register_device(input_dev); + if (err) + goto err_remove_attr_group; + + return 0; + +err_remove_attr_group: + sysfs_remove_group(&spi->dev.kobj, &ad7877_attr_group); +err_free_irq: + free_irq(spi->irq, ts); +err_free_mem: + input_free_device(input_dev); + kfree(ts); + spi_set_drvdata(spi, NULL); + return err; +} + +static int ad7877_remove(struct spi_device *spi) +{ + struct ad7877 *ts = spi_get_drvdata(spi); + + sysfs_remove_group(&spi->dev.kobj, &ad7877_attr_group); + + ad7877_disable(ts); + free_irq(ts->spi->irq, ts); + + input_unregister_device(ts->input); + kfree(ts); + + dev_dbg(&spi->dev, "unregistered touchscreen\n"); + spi_set_drvdata(spi, NULL); + + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int ad7877_suspend(struct device *dev) +{ + struct ad7877 *ts = dev_get_drvdata(dev); + + ad7877_disable(ts); + + return 0; +} + +static int ad7877_resume(struct device *dev) +{ + struct ad7877 *ts = dev_get_drvdata(dev); + + ad7877_enable(ts); + + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(ad7877_pm, ad7877_suspend, ad7877_resume); + +static struct spi_driver ad7877_driver = { + .driver = { + .name = "ad7877", + .owner = THIS_MODULE, + .pm = &ad7877_pm, + }, + .probe = ad7877_probe, + .remove = ad7877_remove, +}; + +module_spi_driver(ad7877_driver); + +MODULE_AUTHOR("Michael Hennerich "); +MODULE_DESCRIPTION("AD7877 touchscreen Driver"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("spi:ad7877"); diff --git a/drivers/input/touchscreen/ad7879-i2c.c b/drivers/input/touchscreen/ad7879-i2c.c new file mode 100644 index 00000000..dcf39077 --- /dev/null +++ b/drivers/input/touchscreen/ad7879-i2c.c @@ -0,0 +1,109 @@ +/* + * AD7879-1/AD7889-1 touchscreen (I2C bus) + * + * Copyright (C) 2008-2010 Michael Hennerich, Analog Devices Inc. + * + * Licensed under the GPL-2 or later. + */ + +#include /* BUS_I2C */ +#include +#include +#include +#include + +#include "ad7879.h" + +#define AD7879_DEVID 0x79 /* AD7879-1/AD7889-1 */ + +/* All registers are word-sized. + * AD7879 uses a high-byte first convention. + */ +static int ad7879_i2c_read(struct device *dev, u8 reg) +{ + struct i2c_client *client = to_i2c_client(dev); + + return i2c_smbus_read_word_swapped(client, reg); +} + +static int ad7879_i2c_multi_read(struct device *dev, + u8 first_reg, u8 count, u16 *buf) +{ + struct i2c_client *client = to_i2c_client(dev); + u8 idx; + + i2c_smbus_read_i2c_block_data(client, first_reg, count * 2, (u8 *)buf); + + for (idx = 0; idx < count; ++idx) + buf[idx] = swab16(buf[idx]); + + return 0; +} + +static int ad7879_i2c_write(struct device *dev, u8 reg, u16 val) +{ + struct i2c_client *client = to_i2c_client(dev); + + return i2c_smbus_write_word_swapped(client, reg, val); +} + +static const struct ad7879_bus_ops ad7879_i2c_bus_ops = { + .bustype = BUS_I2C, + .read = ad7879_i2c_read, + .multi_read = ad7879_i2c_multi_read, + .write = ad7879_i2c_write, +}; + +static int ad7879_i2c_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct ad7879 *ts; + + if (!i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_WORD_DATA)) { + dev_err(&client->dev, "SMBUS Word Data not Supported\n"); + return -EIO; + } + + ts = ad7879_probe(&client->dev, AD7879_DEVID, client->irq, + &ad7879_i2c_bus_ops); + if (IS_ERR(ts)) + return PTR_ERR(ts); + + i2c_set_clientdata(client, ts); + + return 0; +} + +static int ad7879_i2c_remove(struct i2c_client *client) +{ + struct ad7879 *ts = i2c_get_clientdata(client); + + ad7879_remove(ts); + + return 0; +} + +static const struct i2c_device_id ad7879_id[] = { + { "ad7879", 0 }, + { "ad7889", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, ad7879_id); + +static struct i2c_driver ad7879_i2c_driver = { + .driver = { + .name = "ad7879", + .owner = THIS_MODULE, + .pm = &ad7879_pm_ops, + }, + .probe = ad7879_i2c_probe, + .remove = ad7879_i2c_remove, + .id_table = ad7879_id, +}; + +module_i2c_driver(ad7879_i2c_driver); + +MODULE_AUTHOR("Michael Hennerich "); +MODULE_DESCRIPTION("AD7879(-1) touchscreen I2C bus driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/ad7879-spi.c b/drivers/input/touchscreen/ad7879-spi.c new file mode 100644 index 00000000..606da5bd --- /dev/null +++ b/drivers/input/touchscreen/ad7879-spi.c @@ -0,0 +1,165 @@ +/* + * AD7879/AD7889 touchscreen (SPI bus) + * + * Copyright (C) 2008-2010 Michael Hennerich, Analog Devices Inc. + * + * Licensed under the GPL-2 or later. + */ + +#include /* BUS_SPI */ +#include +#include +#include + +#include "ad7879.h" + +#define AD7879_DEVID 0x7A /* AD7879/AD7889 */ + +#define MAX_SPI_FREQ_HZ 5000000 +#define AD7879_CMD_MAGIC 0xE000 +#define AD7879_CMD_READ (1 << 10) +#define AD7879_CMD(reg) (AD7879_CMD_MAGIC | ((reg) & 0xF)) +#define AD7879_WRITECMD(reg) (AD7879_CMD(reg)) +#define AD7879_READCMD(reg) (AD7879_CMD(reg) | AD7879_CMD_READ) + +/* + * ad7879_read/write are only used for initial setup and for sysfs controls. + * The main traffic is done in ad7879_collect(). + */ + +static int ad7879_spi_xfer(struct spi_device *spi, + u16 cmd, u8 count, u16 *tx_buf, u16 *rx_buf) +{ + struct spi_message msg; + struct spi_transfer *xfers; + void *spi_data; + u16 *command; + u16 *_rx_buf = _rx_buf; /* shut gcc up */ + u8 idx; + int ret; + + xfers = spi_data = kzalloc(sizeof(*xfers) * (count + 2), GFP_KERNEL); + if (!spi_data) + return -ENOMEM; + + spi_message_init(&msg); + + command = spi_data; + command[0] = cmd; + if (count == 1) { + /* ad7879_spi_{read,write} gave us buf on stack */ + command[1] = *tx_buf; + tx_buf = &command[1]; + _rx_buf = rx_buf; + rx_buf = &command[2]; + } + + ++xfers; + xfers[0].tx_buf = command; + xfers[0].len = 2; + spi_message_add_tail(&xfers[0], &msg); + ++xfers; + + for (idx = 0; idx < count; ++idx) { + if (rx_buf) + xfers[idx].rx_buf = &rx_buf[idx]; + if (tx_buf) + xfers[idx].tx_buf = &tx_buf[idx]; + xfers[idx].len = 2; + spi_message_add_tail(&xfers[idx], &msg); + } + + ret = spi_sync(spi, &msg); + + if (count == 1) + _rx_buf[0] = command[2]; + + kfree(spi_data); + + return ret; +} + +static int ad7879_spi_multi_read(struct device *dev, + u8 first_reg, u8 count, u16 *buf) +{ + struct spi_device *spi = to_spi_device(dev); + + return ad7879_spi_xfer(spi, AD7879_READCMD(first_reg), count, NULL, buf); +} + +static int ad7879_spi_read(struct device *dev, u8 reg) +{ + struct spi_device *spi = to_spi_device(dev); + u16 ret, dummy; + + return ad7879_spi_xfer(spi, AD7879_READCMD(reg), 1, &dummy, &ret) ? : ret; +} + +static int ad7879_spi_write(struct device *dev, u8 reg, u16 val) +{ + struct spi_device *spi = to_spi_device(dev); + u16 dummy; + + return ad7879_spi_xfer(spi, AD7879_WRITECMD(reg), 1, &val, &dummy); +} + +static const struct ad7879_bus_ops ad7879_spi_bus_ops = { + .bustype = BUS_SPI, + .read = ad7879_spi_read, + .multi_read = ad7879_spi_multi_read, + .write = ad7879_spi_write, +}; + +static int ad7879_spi_probe(struct spi_device *spi) +{ + struct ad7879 *ts; + int err; + + /* don't exceed max specified SPI CLK frequency */ + if (spi->max_speed_hz > MAX_SPI_FREQ_HZ) { + dev_err(&spi->dev, "SPI CLK %d Hz?\n", spi->max_speed_hz); + return -EINVAL; + } + + spi->bits_per_word = 16; + err = spi_setup(spi); + if (err) { + dev_dbg(&spi->dev, "spi master doesn't support 16 bits/word\n"); + return err; + } + + ts = ad7879_probe(&spi->dev, AD7879_DEVID, spi->irq, &ad7879_spi_bus_ops); + if (IS_ERR(ts)) + return PTR_ERR(ts); + + spi_set_drvdata(spi, ts); + + return 0; +} + +static int ad7879_spi_remove(struct spi_device *spi) +{ + struct ad7879 *ts = spi_get_drvdata(spi); + + ad7879_remove(ts); + spi_set_drvdata(spi, NULL); + + return 0; +} + +static struct spi_driver ad7879_spi_driver = { + .driver = { + .name = "ad7879", + .owner = THIS_MODULE, + .pm = &ad7879_pm_ops, + }, + .probe = ad7879_spi_probe, + .remove = ad7879_spi_remove, +}; + +module_spi_driver(ad7879_spi_driver); + +MODULE_AUTHOR("Michael Hennerich "); +MODULE_DESCRIPTION("AD7879(-1) touchscreen SPI bus driver"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("spi:ad7879"); diff --git a/drivers/input/touchscreen/ad7879.c b/drivers/input/touchscreen/ad7879.c new file mode 100644 index 00000000..facd3057 --- /dev/null +++ b/drivers/input/touchscreen/ad7879.c @@ -0,0 +1,654 @@ +/* + * AD7879/AD7889 based touchscreen and GPIO driver + * + * Copyright (C) 2008-2010 Michael Hennerich, Analog Devices Inc. + * + * Licensed under the GPL-2 or later. + * + * History: + * Copyright (c) 2005 David Brownell + * Copyright (c) 2006 Nokia Corporation + * Various changes: Imre Deak + * + * Using code from: + * - corgi_ts.c + * Copyright (C) 2004-2005 Richard Purdie + * - omap_ts.[hc], ads7846.h, ts_osk.c + * Copyright (C) 2002 MontaVista Software + * Copyright (C) 2004 Texas Instruments + * Copyright (C) 2005 Dirk Behme + * - ad7877.c + * Copyright (C) 2006-2008 Analog Devices Inc. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include "ad7879.h" + +#define AD7879_REG_ZEROS 0 +#define AD7879_REG_CTRL1 1 +#define AD7879_REG_CTRL2 2 +#define AD7879_REG_CTRL3 3 +#define AD7879_REG_AUX1HIGH 4 +#define AD7879_REG_AUX1LOW 5 +#define AD7879_REG_TEMP1HIGH 6 +#define AD7879_REG_TEMP1LOW 7 +#define AD7879_REG_XPLUS 8 +#define AD7879_REG_YPLUS 9 +#define AD7879_REG_Z1 10 +#define AD7879_REG_Z2 11 +#define AD7879_REG_AUXVBAT 12 +#define AD7879_REG_TEMP 13 +#define AD7879_REG_REVID 14 + +/* Control REG 1 */ +#define AD7879_TMR(x) ((x & 0xFF) << 0) +#define AD7879_ACQ(x) ((x & 0x3) << 8) +#define AD7879_MODE_NOC (0 << 10) /* Do not convert */ +#define AD7879_MODE_SCC (1 << 10) /* Single channel conversion */ +#define AD7879_MODE_SEQ0 (2 << 10) /* Sequence 0 in Slave Mode */ +#define AD7879_MODE_SEQ1 (3 << 10) /* Sequence 1 in Master Mode */ +#define AD7879_MODE_INT (1 << 15) /* PENIRQ disabled INT enabled */ + +/* Control REG 2 */ +#define AD7879_FCD(x) ((x & 0x3) << 0) +#define AD7879_RESET (1 << 4) +#define AD7879_MFS(x) ((x & 0x3) << 5) +#define AD7879_AVG(x) ((x & 0x3) << 7) +#define AD7879_SER (1 << 9) /* non-differential */ +#define AD7879_DFR (0 << 9) /* differential */ +#define AD7879_GPIOPOL (1 << 10) +#define AD7879_GPIODIR (1 << 11) +#define AD7879_GPIO_DATA (1 << 12) +#define AD7879_GPIO_EN (1 << 13) +#define AD7879_PM(x) ((x & 0x3) << 14) +#define AD7879_PM_SHUTDOWN (0) +#define AD7879_PM_DYN (1) +#define AD7879_PM_FULLON (2) + +/* Control REG 3 */ +#define AD7879_TEMPMASK_BIT (1<<15) +#define AD7879_AUXVBATMASK_BIT (1<<14) +#define AD7879_INTMODE_BIT (1<<13) +#define AD7879_GPIOALERTMASK_BIT (1<<12) +#define AD7879_AUXLOW_BIT (1<<11) +#define AD7879_AUXHIGH_BIT (1<<10) +#define AD7879_TEMPLOW_BIT (1<<9) +#define AD7879_TEMPHIGH_BIT (1<<8) +#define AD7879_YPLUS_BIT (1<<7) +#define AD7879_XPLUS_BIT (1<<6) +#define AD7879_Z1_BIT (1<<5) +#define AD7879_Z2_BIT (1<<4) +#define AD7879_AUX_BIT (1<<3) +#define AD7879_VBAT_BIT (1<<2) +#define AD7879_TEMP_BIT (1<<1) + +enum { + AD7879_SEQ_XPOS = 0, + AD7879_SEQ_YPOS = 1, + AD7879_SEQ_Z1 = 2, + AD7879_SEQ_Z2 = 3, + AD7879_NR_SENSE = 4, +}; + +#define MAX_12BIT ((1<<12)-1) +#define TS_PEN_UP_TIMEOUT msecs_to_jiffies(50) + +struct ad7879 { + const struct ad7879_bus_ops *bops; + + struct device *dev; + struct input_dev *input; + struct timer_list timer; +#ifdef CONFIG_GPIOLIB + struct gpio_chip gc; + struct mutex mutex; +#endif + unsigned int irq; + bool disabled; /* P: input->mutex */ + bool suspended; /* P: input->mutex */ + bool swap_xy; + u16 conversion_data[AD7879_NR_SENSE]; + char phys[32]; + u8 first_conversion_delay; + u8 acquisition_time; + u8 averaging; + u8 pen_down_acc_interval; + u8 median; + u16 x_plate_ohms; + u16 pressure_max; + u16 cmd_crtl1; + u16 cmd_crtl2; + u16 cmd_crtl3; + int x; + int y; + int Rt; +}; + +static int ad7879_read(struct ad7879 *ts, u8 reg) +{ + return ts->bops->read(ts->dev, reg); +} + +static int ad7879_multi_read(struct ad7879 *ts, u8 first_reg, u8 count, u16 *buf) +{ + return ts->bops->multi_read(ts->dev, first_reg, count, buf); +} + +static int ad7879_write(struct ad7879 *ts, u8 reg, u16 val) +{ + return ts->bops->write(ts->dev, reg, val); +} + +static int ad7879_report(struct ad7879 *ts) +{ + struct input_dev *input_dev = ts->input; + unsigned Rt; + u16 x, y, z1, z2; + + x = ts->conversion_data[AD7879_SEQ_XPOS] & MAX_12BIT; + y = ts->conversion_data[AD7879_SEQ_YPOS] & MAX_12BIT; + z1 = ts->conversion_data[AD7879_SEQ_Z1] & MAX_12BIT; + z2 = ts->conversion_data[AD7879_SEQ_Z2] & MAX_12BIT; + + if (ts->swap_xy) + swap(x, y); + + /* + * The samples processed here are already preprocessed by the AD7879. + * The preprocessing function consists of a median and an averaging + * filter. The combination of these two techniques provides a robust + * solution, discarding the spurious noise in the signal and keeping + * only the data of interest. The size of both filters is + * programmable. (dev.platform_data, see linux/spi/ad7879.h) Other + * user-programmable conversion controls include variable acquisition + * time, and first conversion delay. Up to 16 averages can be taken + * per conversion. + */ + + if (likely(x && z1)) { + /* compute touch pressure resistance using equation #1 */ + Rt = (z2 - z1) * x * ts->x_plate_ohms; + Rt /= z1; + Rt = (Rt + 2047) >> 12; + + /* + * Sample found inconsistent, pressure is beyond + * the maximum. Don't report it to user space. + */ + if (Rt > ts->pressure_max) + return -EINVAL; + + /* + * Note that we delay reporting events by one sample. + * This is done to avoid reporting last sample of the + * touch sequence, which may be incomplete if finger + * leaves the surface before last reading is taken. + */ + if (timer_pending(&ts->timer)) { + /* Touch continues */ + input_report_key(input_dev, BTN_TOUCH, 1); + input_report_abs(input_dev, ABS_X, ts->x); + input_report_abs(input_dev, ABS_Y, ts->y); + input_report_abs(input_dev, ABS_PRESSURE, ts->Rt); + input_sync(input_dev); + } + + ts->x = x; + ts->y = y; + ts->Rt = Rt; + + return 0; + } + + return -EINVAL; +} + +static void ad7879_ts_event_release(struct ad7879 *ts) +{ + struct input_dev *input_dev = ts->input; + + input_report_abs(input_dev, ABS_PRESSURE, 0); + input_report_key(input_dev, BTN_TOUCH, 0); + input_sync(input_dev); +} + +static void ad7879_timer(unsigned long handle) +{ + struct ad7879 *ts = (void *)handle; + + ad7879_ts_event_release(ts); +} + +static irqreturn_t ad7879_irq(int irq, void *handle) +{ + struct ad7879 *ts = handle; + + ad7879_multi_read(ts, AD7879_REG_XPLUS, AD7879_NR_SENSE, ts->conversion_data); + + if (!ad7879_report(ts)) + mod_timer(&ts->timer, jiffies + TS_PEN_UP_TIMEOUT); + + return IRQ_HANDLED; +} + +static void __ad7879_enable(struct ad7879 *ts) +{ + ad7879_write(ts, AD7879_REG_CTRL2, ts->cmd_crtl2); + ad7879_write(ts, AD7879_REG_CTRL3, ts->cmd_crtl3); + ad7879_write(ts, AD7879_REG_CTRL1, ts->cmd_crtl1); + + enable_irq(ts->irq); +} + +static void __ad7879_disable(struct ad7879 *ts) +{ + u16 reg = (ts->cmd_crtl2 & ~AD7879_PM(-1)) | + AD7879_PM(AD7879_PM_SHUTDOWN); + disable_irq(ts->irq); + + if (del_timer_sync(&ts->timer)) + ad7879_ts_event_release(ts); + + ad7879_write(ts, AD7879_REG_CTRL2, reg); +} + + +static int ad7879_open(struct input_dev *input) +{ + struct ad7879 *ts = input_get_drvdata(input); + + /* protected by input->mutex */ + if (!ts->disabled && !ts->suspended) + __ad7879_enable(ts); + + return 0; +} + +static void ad7879_close(struct input_dev* input) +{ + struct ad7879 *ts = input_get_drvdata(input); + + /* protected by input->mutex */ + if (!ts->disabled && !ts->suspended) + __ad7879_disable(ts); +} + +#ifdef CONFIG_PM_SLEEP +static int ad7879_suspend(struct device *dev) +{ + struct ad7879 *ts = dev_get_drvdata(dev); + + mutex_lock(&ts->input->mutex); + + if (!ts->suspended && !ts->disabled && ts->input->users) + __ad7879_disable(ts); + + ts->suspended = true; + + mutex_unlock(&ts->input->mutex); + + return 0; +} + +static int ad7879_resume(struct device *dev) +{ + struct ad7879 *ts = dev_get_drvdata(dev); + + mutex_lock(&ts->input->mutex); + + if (ts->suspended && !ts->disabled && ts->input->users) + __ad7879_enable(ts); + + ts->suspended = false; + + mutex_unlock(&ts->input->mutex); + + return 0; +} +#endif + +SIMPLE_DEV_PM_OPS(ad7879_pm_ops, ad7879_suspend, ad7879_resume); +EXPORT_SYMBOL(ad7879_pm_ops); + +static void ad7879_toggle(struct ad7879 *ts, bool disable) +{ + mutex_lock(&ts->input->mutex); + + if (!ts->suspended && ts->input->users != 0) { + + if (disable) { + if (ts->disabled) + __ad7879_enable(ts); + } else { + if (!ts->disabled) + __ad7879_disable(ts); + } + } + + ts->disabled = disable; + + mutex_unlock(&ts->input->mutex); +} + +static ssize_t ad7879_disable_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ad7879 *ts = dev_get_drvdata(dev); + + return sprintf(buf, "%u\n", ts->disabled); +} + +static ssize_t ad7879_disable_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct ad7879 *ts = dev_get_drvdata(dev); + unsigned int val; + int error; + + error = kstrtouint(buf, 10, &val); + if (error) + return error; + + ad7879_toggle(ts, val); + + return count; +} + +static DEVICE_ATTR(disable, 0664, ad7879_disable_show, ad7879_disable_store); + +static struct attribute *ad7879_attributes[] = { + &dev_attr_disable.attr, + NULL +}; + +static const struct attribute_group ad7879_attr_group = { + .attrs = ad7879_attributes, +}; + +#ifdef CONFIG_GPIOLIB +static int ad7879_gpio_direction_input(struct gpio_chip *chip, + unsigned gpio) +{ + struct ad7879 *ts = container_of(chip, struct ad7879, gc); + int err; + + mutex_lock(&ts->mutex); + ts->cmd_crtl2 |= AD7879_GPIO_EN | AD7879_GPIODIR | AD7879_GPIOPOL; + err = ad7879_write(ts, AD7879_REG_CTRL2, ts->cmd_crtl2); + mutex_unlock(&ts->mutex); + + return err; +} + +static int ad7879_gpio_direction_output(struct gpio_chip *chip, + unsigned gpio, int level) +{ + struct ad7879 *ts = container_of(chip, struct ad7879, gc); + int err; + + mutex_lock(&ts->mutex); + ts->cmd_crtl2 &= ~AD7879_GPIODIR; + ts->cmd_crtl2 |= AD7879_GPIO_EN | AD7879_GPIOPOL; + if (level) + ts->cmd_crtl2 |= AD7879_GPIO_DATA; + else + ts->cmd_crtl2 &= ~AD7879_GPIO_DATA; + + err = ad7879_write(ts, AD7879_REG_CTRL2, ts->cmd_crtl2); + mutex_unlock(&ts->mutex); + + return err; +} + +static int ad7879_gpio_get_value(struct gpio_chip *chip, unsigned gpio) +{ + struct ad7879 *ts = container_of(chip, struct ad7879, gc); + u16 val; + + mutex_lock(&ts->mutex); + val = ad7879_read(ts, AD7879_REG_CTRL2); + mutex_unlock(&ts->mutex); + + return !!(val & AD7879_GPIO_DATA); +} + +static void ad7879_gpio_set_value(struct gpio_chip *chip, + unsigned gpio, int value) +{ + struct ad7879 *ts = container_of(chip, struct ad7879, gc); + + mutex_lock(&ts->mutex); + if (value) + ts->cmd_crtl2 |= AD7879_GPIO_DATA; + else + ts->cmd_crtl2 &= ~AD7879_GPIO_DATA; + + ad7879_write(ts, AD7879_REG_CTRL2, ts->cmd_crtl2); + mutex_unlock(&ts->mutex); +} + +static int ad7879_gpio_add(struct ad7879 *ts, + const struct ad7879_platform_data *pdata) +{ + int ret = 0; + + mutex_init(&ts->mutex); + + if (pdata->gpio_export) { + ts->gc.direction_input = ad7879_gpio_direction_input; + ts->gc.direction_output = ad7879_gpio_direction_output; + ts->gc.get = ad7879_gpio_get_value; + ts->gc.set = ad7879_gpio_set_value; + ts->gc.can_sleep = 1; + ts->gc.base = pdata->gpio_base; + ts->gc.ngpio = 1; + ts->gc.label = "AD7879-GPIO"; + ts->gc.owner = THIS_MODULE; + ts->gc.dev = ts->dev; + + ret = gpiochip_add(&ts->gc); + if (ret) + dev_err(ts->dev, "failed to register gpio %d\n", + ts->gc.base); + } + + return ret; +} + +static void ad7879_gpio_remove(struct ad7879 *ts) +{ + const struct ad7879_platform_data *pdata = ts->dev->platform_data; + int ret; + + if (pdata->gpio_export) { + ret = gpiochip_remove(&ts->gc); + if (ret) + dev_err(ts->dev, "failed to remove gpio %d\n", + ts->gc.base); + } +} +#else +static inline int ad7879_gpio_add(struct ad7879 *ts, + const struct ad7879_platform_data *pdata) +{ + return 0; +} + +static inline void ad7879_gpio_remove(struct ad7879 *ts) +{ +} +#endif + +struct ad7879 *ad7879_probe(struct device *dev, u8 devid, unsigned int irq, + const struct ad7879_bus_ops *bops) +{ + struct ad7879_platform_data *pdata = dev->platform_data; + struct ad7879 *ts; + struct input_dev *input_dev; + int err; + u16 revid; + + if (!irq) { + dev_err(dev, "no IRQ?\n"); + err = -EINVAL; + goto err_out; + } + + if (!pdata) { + dev_err(dev, "no platform data?\n"); + err = -EINVAL; + goto err_out; + } + + ts = kzalloc(sizeof(*ts), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!ts || !input_dev) { + err = -ENOMEM; + goto err_free_mem; + } + + ts->bops = bops; + ts->dev = dev; + ts->input = input_dev; + ts->irq = irq; + ts->swap_xy = pdata->swap_xy; + + setup_timer(&ts->timer, ad7879_timer, (unsigned long) ts); + + ts->x_plate_ohms = pdata->x_plate_ohms ? : 400; + ts->pressure_max = pdata->pressure_max ? : ~0; + + ts->first_conversion_delay = pdata->first_conversion_delay; + ts->acquisition_time = pdata->acquisition_time; + ts->averaging = pdata->averaging; + ts->pen_down_acc_interval = pdata->pen_down_acc_interval; + ts->median = pdata->median; + + snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(dev)); + + input_dev->name = "AD7879 Touchscreen"; + input_dev->phys = ts->phys; + input_dev->dev.parent = dev; + input_dev->id.bustype = bops->bustype; + + input_dev->open = ad7879_open; + input_dev->close = ad7879_close; + + input_set_drvdata(input_dev, ts); + + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(ABS_X, input_dev->absbit); + __set_bit(ABS_Y, input_dev->absbit); + __set_bit(ABS_PRESSURE, input_dev->absbit); + + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(BTN_TOUCH, input_dev->keybit); + + input_set_abs_params(input_dev, ABS_X, + pdata->x_min ? : 0, + pdata->x_max ? : MAX_12BIT, + 0, 0); + input_set_abs_params(input_dev, ABS_Y, + pdata->y_min ? : 0, + pdata->y_max ? : MAX_12BIT, + 0, 0); + input_set_abs_params(input_dev, ABS_PRESSURE, + pdata->pressure_min, pdata->pressure_max, 0, 0); + + err = ad7879_write(ts, AD7879_REG_CTRL2, AD7879_RESET); + if (err < 0) { + dev_err(dev, "Failed to write %s\n", input_dev->name); + goto err_free_mem; + } + + revid = ad7879_read(ts, AD7879_REG_REVID); + input_dev->id.product = (revid & 0xff); + input_dev->id.version = revid >> 8; + if (input_dev->id.product != devid) { + dev_err(dev, "Failed to probe %s (%x vs %x)\n", + input_dev->name, devid, revid); + err = -ENODEV; + goto err_free_mem; + } + + ts->cmd_crtl3 = AD7879_YPLUS_BIT | + AD7879_XPLUS_BIT | + AD7879_Z2_BIT | + AD7879_Z1_BIT | + AD7879_TEMPMASK_BIT | + AD7879_AUXVBATMASK_BIT | + AD7879_GPIOALERTMASK_BIT; + + ts->cmd_crtl2 = AD7879_PM(AD7879_PM_DYN) | AD7879_DFR | + AD7879_AVG(ts->averaging) | + AD7879_MFS(ts->median) | + AD7879_FCD(ts->first_conversion_delay); + + ts->cmd_crtl1 = AD7879_MODE_INT | AD7879_MODE_SEQ1 | + AD7879_ACQ(ts->acquisition_time) | + AD7879_TMR(ts->pen_down_acc_interval); + + err = request_threaded_irq(ts->irq, NULL, ad7879_irq, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + dev_name(dev), ts); + if (err) { + dev_err(dev, "irq %d busy?\n", ts->irq); + goto err_free_mem; + } + + __ad7879_disable(ts); + + err = sysfs_create_group(&dev->kobj, &ad7879_attr_group); + if (err) + goto err_free_irq; + + err = ad7879_gpio_add(ts, pdata); + if (err) + goto err_remove_attr; + + err = input_register_device(input_dev); + if (err) + goto err_remove_gpio; + + return ts; + +err_remove_gpio: + ad7879_gpio_remove(ts); +err_remove_attr: + sysfs_remove_group(&dev->kobj, &ad7879_attr_group); +err_free_irq: + free_irq(ts->irq, ts); +err_free_mem: + input_free_device(input_dev); + kfree(ts); +err_out: + return ERR_PTR(err); +} +EXPORT_SYMBOL(ad7879_probe); + +void ad7879_remove(struct ad7879 *ts) +{ + ad7879_gpio_remove(ts); + sysfs_remove_group(&ts->dev->kobj, &ad7879_attr_group); + free_irq(ts->irq, ts); + input_unregister_device(ts->input); + kfree(ts); +} +EXPORT_SYMBOL(ad7879_remove); + +MODULE_AUTHOR("Michael Hennerich "); +MODULE_DESCRIPTION("AD7879(-1) touchscreen Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/ad7879.h b/drivers/input/touchscreen/ad7879.h new file mode 100644 index 00000000..6fd13c48 --- /dev/null +++ b/drivers/input/touchscreen/ad7879.h @@ -0,0 +1,30 @@ +/* + * AD7879/AD7889 touchscreen (bus interfaces) + * + * Copyright (C) 2008-2010 Michael Hennerich, Analog Devices Inc. + * + * Licensed under the GPL-2 or later. + */ + +#ifndef _AD7879_H_ +#define _AD7879_H_ + +#include + +struct ad7879; +struct device; + +struct ad7879_bus_ops { + u16 bustype; + int (*read)(struct device *dev, u8 reg); + int (*multi_read)(struct device *dev, u8 first_reg, u8 count, u16 *buf); + int (*write)(struct device *dev, u8 reg, u16 val); +}; + +extern const struct dev_pm_ops ad7879_pm_ops; + +struct ad7879 *ad7879_probe(struct device *dev, u8 devid, unsigned irq, + const struct ad7879_bus_ops *bops); +void ad7879_remove(struct ad7879 *); + +#endif diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c new file mode 100644 index 00000000..84ccf140 --- /dev/null +++ b/drivers/input/touchscreen/ads7846.c @@ -0,0 +1,1449 @@ +/* + * ADS7846 based touchscreen and sensor driver + * + * Copyright (c) 2005 David Brownell + * Copyright (c) 2006 Nokia Corporation + * Various changes: Imre Deak + * + * Using code from: + * - corgi_ts.c + * Copyright (C) 2004-2005 Richard Purdie + * - omap_ts.[hc], ads7846.h, ts_osk.c + * Copyright (C) 2002 MontaVista Software + * Copyright (C) 2004 Texas Instruments + * Copyright (C) 2005 Dirk Behme + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * This code has been heavily tested on a Nokia 770, and lightly + * tested on other ads7846 devices (OSK/Mistral, Lubbock, Spitz). + * TSC2046 is just newer ads7846 silicon. + * Support for ads7843 tested on Atmel at91sam926x-EK. + * Support for ads7845 has only been stubbed in. + * Support for Analog Devices AD7873 and AD7843 tested. + * + * IRQ handling needs a workaround because of a shortcoming in handling + * edge triggered IRQs on some platforms like the OMAP1/2. These + * platforms don't handle the ARM lazy IRQ disabling properly, thus we + * have to maintain our own SW IRQ disabled status. This should be + * removed as soon as the affected platform's IRQ handling is fixed. + * + * App note sbaa036 talks in more detail about accurate sampling... + * that ought to help in situations like LCDs inducing noise (which + * can also be helped by using synch signals) and more generally. + * This driver tries to utilize the measures described in the app + * note. The strength of filtering can be set in the board-* specific + * files. + */ + +#define TS_POLL_DELAY 1 /* ms delay before the first sample */ +#define TS_POLL_PERIOD 5 /* ms delay between samples */ + +/* this driver doesn't aim at the peak continuous sample rate */ +#define SAMPLE_BITS (8 /*cmd*/ + 16 /*sample*/ + 2 /* before, after */) + +struct ts_event { + /* + * For portability, we can't read 12 bit values using SPI (which + * would make the controller deliver them as native byte order u16 + * with msbs zeroed). Instead, we read them as two 8-bit values, + * *** WHICH NEED BYTESWAPPING *** and range adjustment. + */ + u16 x; + u16 y; + u16 z1, z2; + bool ignore; + u8 x_buf[3]; + u8 y_buf[3]; +}; + +/* + * We allocate this separately to avoid cache line sharing issues when + * driver is used with DMA-based SPI controllers (like atmel_spi) on + * systems where main memory is not DMA-coherent (most non-x86 boards). + */ +struct ads7846_packet { + u8 read_x, read_y, read_z1, read_z2, pwrdown; + u16 dummy; /* for the pwrdown read */ + struct ts_event tc; + /* for ads7845 with mpc5121 psc spi we use 3-byte buffers */ + u8 read_x_cmd[3], read_y_cmd[3], pwrdown_cmd[3]; +}; + +struct ads7846 { + struct input_dev *input; + char phys[32]; + char name[32]; + + struct spi_device *spi; + struct regulator *reg; + +#if defined(CONFIG_HWMON) || defined(CONFIG_HWMON_MODULE) + struct attribute_group *attr_group; + struct device *hwmon; +#endif + + u16 model; + u16 vref_mv; + u16 vref_delay_usecs; + u16 x_plate_ohms; + u16 pressure_max; + + bool swap_xy; + bool use_internal; + + struct ads7846_packet *packet; + + struct spi_transfer xfer[18]; + struct spi_message msg[5]; + int msg_count; + wait_queue_head_t wait; + + bool pendown; + + int read_cnt; + int read_rep; + int last_read; + + u16 debounce_max; + u16 debounce_tol; + u16 debounce_rep; + + u16 penirq_recheck_delay_usecs; + + struct mutex lock; + bool stopped; /* P: lock */ + bool disabled; /* P: lock */ + bool suspended; /* P: lock */ + + int (*filter)(void *data, int data_idx, int *val); + void *filter_data; + void (*filter_cleanup)(void *data); + int (*get_pendown_state)(void); + int gpio_pendown; + + void (*wait_for_sync)(void); +}; + +/* leave chip selected when we're done, for quicker re-select? */ +#if 0 +#define CS_CHANGE(xfer) ((xfer).cs_change = 1) +#else +#define CS_CHANGE(xfer) ((xfer).cs_change = 0) +#endif + +/*--------------------------------------------------------------------------*/ + +/* The ADS7846 has touchscreen and other sensors. + * Earlier ads784x chips are somewhat compatible. + */ +#define ADS_START (1 << 7) +#define ADS_A2A1A0_d_y (1 << 4) /* differential */ +#define ADS_A2A1A0_d_z1 (3 << 4) /* differential */ +#define ADS_A2A1A0_d_z2 (4 << 4) /* differential */ +#define ADS_A2A1A0_d_x (5 << 4) /* differential */ +#define ADS_A2A1A0_temp0 (0 << 4) /* non-differential */ +#define ADS_A2A1A0_vbatt (2 << 4) /* non-differential */ +#define ADS_A2A1A0_vaux (6 << 4) /* non-differential */ +#define ADS_A2A1A0_temp1 (7 << 4) /* non-differential */ +#define ADS_8_BIT (1 << 3) +#define ADS_12_BIT (0 << 3) +#define ADS_SER (1 << 2) /* non-differential */ +#define ADS_DFR (0 << 2) /* differential */ +#define ADS_PD10_PDOWN (0 << 0) /* low power mode + penirq */ +#define ADS_PD10_ADC_ON (1 << 0) /* ADC on */ +#define ADS_PD10_REF_ON (2 << 0) /* vREF on + penirq */ +#define ADS_PD10_ALL_ON (3 << 0) /* ADC + vREF on */ + +#define MAX_12BIT ((1<<12)-1) + +/* leave ADC powered up (disables penirq) between differential samples */ +#define READ_12BIT_DFR(x, adc, vref) (ADS_START | ADS_A2A1A0_d_ ## x \ + | ADS_12_BIT | ADS_DFR | \ + (adc ? ADS_PD10_ADC_ON : 0) | (vref ? ADS_PD10_REF_ON : 0)) + +#define READ_Y(vref) (READ_12BIT_DFR(y, 1, vref)) +#define READ_Z1(vref) (READ_12BIT_DFR(z1, 1, vref)) +#define READ_Z2(vref) (READ_12BIT_DFR(z2, 1, vref)) + +#define READ_X(vref) (READ_12BIT_DFR(x, 1, vref)) +#define PWRDOWN (READ_12BIT_DFR(y, 0, 0)) /* LAST */ + +/* single-ended samples need to first power up reference voltage; + * we leave both ADC and VREF powered + */ +#define READ_12BIT_SER(x) (ADS_START | ADS_A2A1A0_ ## x \ + | ADS_12_BIT | ADS_SER) + +#define REF_ON (READ_12BIT_DFR(x, 1, 1)) +#define REF_OFF (READ_12BIT_DFR(y, 0, 0)) + +/* Must be called with ts->lock held */ +static void ads7846_stop(struct ads7846 *ts) +{ + if (!ts->disabled && !ts->suspended) { + /* Signal IRQ thread to stop polling and disable the handler. */ + ts->stopped = true; + mb(); + wake_up(&ts->wait); + disable_irq(ts->spi->irq); + } +} + +/* Must be called with ts->lock held */ +static void ads7846_restart(struct ads7846 *ts) +{ + if (!ts->disabled && !ts->suspended) { + /* Tell IRQ thread that it may poll the device. */ + ts->stopped = false; + mb(); + enable_irq(ts->spi->irq); + } +} + +/* Must be called with ts->lock held */ +static void __ads7846_disable(struct ads7846 *ts) +{ + ads7846_stop(ts); + regulator_disable(ts->reg); + + /* + * We know the chip's in low power mode since we always + * leave it that way after every request + */ +} + +/* Must be called with ts->lock held */ +static void __ads7846_enable(struct ads7846 *ts) +{ + int error; + + error = regulator_enable(ts->reg); + if (error != 0) + dev_err(&ts->spi->dev, "Failed to enable supply: %d\n", error); + + ads7846_restart(ts); +} + +static void ads7846_disable(struct ads7846 *ts) +{ + mutex_lock(&ts->lock); + + if (!ts->disabled) { + + if (!ts->suspended) + __ads7846_disable(ts); + + ts->disabled = true; + } + + mutex_unlock(&ts->lock); +} + +static void ads7846_enable(struct ads7846 *ts) +{ + mutex_lock(&ts->lock); + + if (ts->disabled) { + + ts->disabled = false; + + if (!ts->suspended) + __ads7846_enable(ts); + } + + mutex_unlock(&ts->lock); +} + +/*--------------------------------------------------------------------------*/ + +/* + * Non-touchscreen sensors only use single-ended conversions. + * The range is GND..vREF. The ads7843 and ads7835 must use external vREF; + * ads7846 lets that pin be unconnected, to use internal vREF. + */ + +struct ser_req { + u8 ref_on; + u8 command; + u8 ref_off; + u16 scratch; + struct spi_message msg; + struct spi_transfer xfer[6]; + /* + * DMA (thus cache coherency maintenance) requires the + * transfer buffers to live in their own cache lines. + */ + __be16 sample ____cacheline_aligned; +}; + +struct ads7845_ser_req { + u8 command[3]; + struct spi_message msg; + struct spi_transfer xfer[2]; + /* + * DMA (thus cache coherency maintenance) requires the + * transfer buffers to live in their own cache lines. + */ + u8 sample[3] ____cacheline_aligned; +}; + +static int ads7846_read12_ser(struct device *dev, unsigned command) +{ + struct spi_device *spi = to_spi_device(dev); + struct ads7846 *ts = dev_get_drvdata(dev); + struct ser_req *req; + int status; + + req = kzalloc(sizeof *req, GFP_KERNEL); + if (!req) + return -ENOMEM; + + spi_message_init(&req->msg); + + /* maybe turn on internal vREF, and let it settle */ + if (ts->use_internal) { + req->ref_on = REF_ON; + req->xfer[0].tx_buf = &req->ref_on; + req->xfer[0].len = 1; + spi_message_add_tail(&req->xfer[0], &req->msg); + + req->xfer[1].rx_buf = &req->scratch; + req->xfer[1].len = 2; + + /* for 1uF, settle for 800 usec; no cap, 100 usec. */ + req->xfer[1].delay_usecs = ts->vref_delay_usecs; + spi_message_add_tail(&req->xfer[1], &req->msg); + + /* Enable reference voltage */ + command |= ADS_PD10_REF_ON; + } + + /* Enable ADC in every case */ + command |= ADS_PD10_ADC_ON; + + /* take sample */ + req->command = (u8) command; + req->xfer[2].tx_buf = &req->command; + req->xfer[2].len = 1; + spi_message_add_tail(&req->xfer[2], &req->msg); + + req->xfer[3].rx_buf = &req->sample; + req->xfer[3].len = 2; + spi_message_add_tail(&req->xfer[3], &req->msg); + + /* REVISIT: take a few more samples, and compare ... */ + + /* converter in low power mode & enable PENIRQ */ + req->ref_off = PWRDOWN; + req->xfer[4].tx_buf = &req->ref_off; + req->xfer[4].len = 1; + spi_message_add_tail(&req->xfer[4], &req->msg); + + req->xfer[5].rx_buf = &req->scratch; + req->xfer[5].len = 2; + CS_CHANGE(req->xfer[5]); + spi_message_add_tail(&req->xfer[5], &req->msg); + + mutex_lock(&ts->lock); + ads7846_stop(ts); + status = spi_sync(spi, &req->msg); + ads7846_restart(ts); + mutex_unlock(&ts->lock); + + if (status == 0) { + /* on-wire is a must-ignore bit, a BE12 value, then padding */ + status = be16_to_cpu(req->sample); + status = status >> 3; + status &= 0x0fff; + } + + kfree(req); + return status; +} + +static int ads7845_read12_ser(struct device *dev, unsigned command) +{ + struct spi_device *spi = to_spi_device(dev); + struct ads7846 *ts = dev_get_drvdata(dev); + struct ads7845_ser_req *req; + int status; + + req = kzalloc(sizeof *req, GFP_KERNEL); + if (!req) + return -ENOMEM; + + spi_message_init(&req->msg); + + req->command[0] = (u8) command; + req->xfer[0].tx_buf = req->command; + req->xfer[0].rx_buf = req->sample; + req->xfer[0].len = 3; + spi_message_add_tail(&req->xfer[0], &req->msg); + + mutex_lock(&ts->lock); + ads7846_stop(ts); + status = spi_sync(spi, &req->msg); + ads7846_restart(ts); + mutex_unlock(&ts->lock); + + if (status == 0) { + /* BE12 value, then padding */ + status = be16_to_cpu(*((u16 *)&req->sample[1])); + status = status >> 3; + status &= 0x0fff; + } + + kfree(req); + return status; +} + +#if defined(CONFIG_HWMON) || defined(CONFIG_HWMON_MODULE) + +#define SHOW(name, var, adjust) static ssize_t \ +name ## _show(struct device *dev, struct device_attribute *attr, char *buf) \ +{ \ + struct ads7846 *ts = dev_get_drvdata(dev); \ + ssize_t v = ads7846_read12_ser(dev, \ + READ_12BIT_SER(var)); \ + if (v < 0) \ + return v; \ + return sprintf(buf, "%u\n", adjust(ts, v)); \ +} \ +static DEVICE_ATTR(name, S_IRUGO, name ## _show, NULL); + + +/* Sysfs conventions report temperatures in millidegrees Celsius. + * ADS7846 could use the low-accuracy two-sample scheme, but can't do the high + * accuracy scheme without calibration data. For now we won't try either; + * userspace sees raw sensor values, and must scale/calibrate appropriately. + */ +static inline unsigned null_adjust(struct ads7846 *ts, ssize_t v) +{ + return v; +} + +SHOW(temp0, temp0, null_adjust) /* temp1_input */ +SHOW(temp1, temp1, null_adjust) /* temp2_input */ + + +/* sysfs conventions report voltages in millivolts. We can convert voltages + * if we know vREF. userspace may need to scale vAUX to match the board's + * external resistors; we assume that vBATT only uses the internal ones. + */ +static inline unsigned vaux_adjust(struct ads7846 *ts, ssize_t v) +{ + unsigned retval = v; + + /* external resistors may scale vAUX into 0..vREF */ + retval *= ts->vref_mv; + retval = retval >> 12; + + return retval; +} + +static inline unsigned vbatt_adjust(struct ads7846 *ts, ssize_t v) +{ + unsigned retval = vaux_adjust(ts, v); + + /* ads7846 has a resistor ladder to scale this signal down */ + if (ts->model == 7846) + retval *= 4; + + return retval; +} + +SHOW(in0_input, vaux, vaux_adjust) +SHOW(in1_input, vbatt, vbatt_adjust) + +static struct attribute *ads7846_attributes[] = { + &dev_attr_temp0.attr, + &dev_attr_temp1.attr, + &dev_attr_in0_input.attr, + &dev_attr_in1_input.attr, + NULL, +}; + +static struct attribute_group ads7846_attr_group = { + .attrs = ads7846_attributes, +}; + +static struct attribute *ads7843_attributes[] = { + &dev_attr_in0_input.attr, + &dev_attr_in1_input.attr, + NULL, +}; + +static struct attribute_group ads7843_attr_group = { + .attrs = ads7843_attributes, +}; + +static struct attribute *ads7845_attributes[] = { + &dev_attr_in0_input.attr, + NULL, +}; + +static struct attribute_group ads7845_attr_group = { + .attrs = ads7845_attributes, +}; + +static int ads784x_hwmon_register(struct spi_device *spi, struct ads7846 *ts) +{ + struct device *hwmon; + int err; + + /* hwmon sensors need a reference voltage */ + switch (ts->model) { + case 7846: + if (!ts->vref_mv) { + dev_dbg(&spi->dev, "assuming 2.5V internal vREF\n"); + ts->vref_mv = 2500; + ts->use_internal = true; + } + break; + case 7845: + case 7843: + if (!ts->vref_mv) { + dev_warn(&spi->dev, + "external vREF for ADS%d not specified\n", + ts->model); + return 0; + } + break; + } + + /* different chips have different sensor groups */ + switch (ts->model) { + case 7846: + ts->attr_group = &ads7846_attr_group; + break; + case 7845: + ts->attr_group = &ads7845_attr_group; + break; + case 7843: + ts->attr_group = &ads7843_attr_group; + break; + default: + dev_dbg(&spi->dev, "ADS%d not recognized\n", ts->model); + return 0; + } + + err = sysfs_create_group(&spi->dev.kobj, ts->attr_group); + if (err) + return err; + + hwmon = hwmon_device_register(&spi->dev); + if (IS_ERR(hwmon)) { + sysfs_remove_group(&spi->dev.kobj, ts->attr_group); + return PTR_ERR(hwmon); + } + + ts->hwmon = hwmon; + return 0; +} + +static void ads784x_hwmon_unregister(struct spi_device *spi, + struct ads7846 *ts) +{ + if (ts->hwmon) { + sysfs_remove_group(&spi->dev.kobj, ts->attr_group); + hwmon_device_unregister(ts->hwmon); + } +} + +#else +static inline int ads784x_hwmon_register(struct spi_device *spi, + struct ads7846 *ts) +{ + return 0; +} + +static inline void ads784x_hwmon_unregister(struct spi_device *spi, + struct ads7846 *ts) +{ +} +#endif + +static ssize_t ads7846_pen_down_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ads7846 *ts = dev_get_drvdata(dev); + + return sprintf(buf, "%u\n", ts->pendown); +} + +static DEVICE_ATTR(pen_down, S_IRUGO, ads7846_pen_down_show, NULL); + +static ssize_t ads7846_disable_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ads7846 *ts = dev_get_drvdata(dev); + + return sprintf(buf, "%u\n", ts->disabled); +} + +static ssize_t ads7846_disable_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct ads7846 *ts = dev_get_drvdata(dev); + unsigned int i; + int err; + + err = kstrtouint(buf, 10, &i); + if (err) + return err; + + if (i) + ads7846_disable(ts); + else + ads7846_enable(ts); + + return count; +} + +static DEVICE_ATTR(disable, 0664, ads7846_disable_show, ads7846_disable_store); + +static struct attribute *ads784x_attributes[] = { + &dev_attr_pen_down.attr, + &dev_attr_disable.attr, + NULL, +}; + +static struct attribute_group ads784x_attr_group = { + .attrs = ads784x_attributes, +}; + +/*--------------------------------------------------------------------------*/ + +static int get_pendown_state(struct ads7846 *ts) +{ + if (ts->get_pendown_state) + return ts->get_pendown_state(); + + return !gpio_get_value(ts->gpio_pendown); +} + +static void null_wait_for_sync(void) +{ +} + +static int ads7846_debounce_filter(void *ads, int data_idx, int *val) +{ + struct ads7846 *ts = ads; + + if (!ts->read_cnt || (abs(ts->last_read - *val) > ts->debounce_tol)) { + /* Start over collecting consistent readings. */ + ts->read_rep = 0; + /* + * Repeat it, if this was the first read or the read + * wasn't consistent enough. + */ + if (ts->read_cnt < ts->debounce_max) { + ts->last_read = *val; + ts->read_cnt++; + return ADS7846_FILTER_REPEAT; + } else { + /* + * Maximum number of debouncing reached and still + * not enough number of consistent readings. Abort + * the whole sample, repeat it in the next sampling + * period. + */ + ts->read_cnt = 0; + return ADS7846_FILTER_IGNORE; + } + } else { + if (++ts->read_rep > ts->debounce_rep) { + /* + * Got a good reading for this coordinate, + * go for the next one. + */ + ts->read_cnt = 0; + ts->read_rep = 0; + return ADS7846_FILTER_OK; + } else { + /* Read more values that are consistent. */ + ts->read_cnt++; + return ADS7846_FILTER_REPEAT; + } + } +} + +static int ads7846_no_filter(void *ads, int data_idx, int *val) +{ + return ADS7846_FILTER_OK; +} + +static int ads7846_get_value(struct ads7846 *ts, struct spi_message *m) +{ + struct spi_transfer *t = + list_entry(m->transfers.prev, struct spi_transfer, transfer_list); + + if (ts->model == 7845) { + return be16_to_cpup((__be16 *)&(((char*)t->rx_buf)[1])) >> 3; + } else { + /* + * adjust: on-wire is a must-ignore bit, a BE12 value, then + * padding; built from two 8 bit values written msb-first. + */ + return be16_to_cpup((__be16 *)t->rx_buf) >> 3; + } +} + +static void ads7846_update_value(struct spi_message *m, int val) +{ + struct spi_transfer *t = + list_entry(m->transfers.prev, struct spi_transfer, transfer_list); + + *(u16 *)t->rx_buf = val; +} + +static void ads7846_read_state(struct ads7846 *ts) +{ + struct ads7846_packet *packet = ts->packet; + struct spi_message *m; + int msg_idx = 0; + int val; + int action; + int error; + + while (msg_idx < ts->msg_count) { + + ts->wait_for_sync(); + + m = &ts->msg[msg_idx]; + error = spi_sync(ts->spi, m); + if (error) { + dev_err(&ts->spi->dev, "spi_async --> %d\n", error); + packet->tc.ignore = true; + return; + } + + /* + * Last message is power down request, no need to convert + * or filter the value. + */ + if (msg_idx < ts->msg_count - 1) { + + val = ads7846_get_value(ts, m); + + action = ts->filter(ts->filter_data, msg_idx, &val); + switch (action) { + case ADS7846_FILTER_REPEAT: + continue; + + case ADS7846_FILTER_IGNORE: + packet->tc.ignore = true; + msg_idx = ts->msg_count - 1; + continue; + + case ADS7846_FILTER_OK: + ads7846_update_value(m, val); + packet->tc.ignore = false; + msg_idx++; + break; + + default: + BUG(); + } + } else { + msg_idx++; + } + } +} + +static void ads7846_report_state(struct ads7846 *ts) +{ + struct ads7846_packet *packet = ts->packet; + unsigned int Rt; + u16 x, y, z1, z2; + + /* + * ads7846_get_value() does in-place conversion (including byte swap) + * from on-the-wire format as part of debouncing to get stable + * readings. + */ + if (ts->model == 7845) { + x = *(u16 *)packet->tc.x_buf; + y = *(u16 *)packet->tc.y_buf; + z1 = 0; + z2 = 0; + } else { + x = packet->tc.x; + y = packet->tc.y; + z1 = packet->tc.z1; + z2 = packet->tc.z2; + } + + /* range filtering */ + if (x == MAX_12BIT) + x = 0; + + if (ts->model == 7843) { + Rt = ts->pressure_max / 2; + } else if (ts->model == 7845) { + if (get_pendown_state(ts)) + Rt = ts->pressure_max / 2; + else + Rt = 0; + dev_vdbg(&ts->spi->dev, "x/y: %d/%d, PD %d\n", x, y, Rt); + } else if (likely(x && z1)) { + /* compute touch pressure resistance using equation #2 */ + Rt = z2; + Rt -= z1; + Rt *= x; + Rt *= ts->x_plate_ohms; + Rt /= z1; + Rt = (Rt + 2047) >> 12; + } else { + Rt = 0; + } + + /* + * Sample found inconsistent by debouncing or pressure is beyond + * the maximum. Don't report it to user space, repeat at least + * once more the measurement + */ + if (packet->tc.ignore || Rt > ts->pressure_max) { + dev_vdbg(&ts->spi->dev, "ignored %d pressure %d\n", + packet->tc.ignore, Rt); + return; + } + + /* + * Maybe check the pendown state before reporting. This discards + * false readings when the pen is lifted. + */ + if (ts->penirq_recheck_delay_usecs) { + udelay(ts->penirq_recheck_delay_usecs); + if (!get_pendown_state(ts)) + Rt = 0; + } + + /* + * NOTE: We can't rely on the pressure to determine the pen down + * state, even this controller has a pressure sensor. The pressure + * value can fluctuate for quite a while after lifting the pen and + * in some cases may not even settle at the expected value. + * + * The only safe way to check for the pen up condition is in the + * timer by reading the pen signal state (it's a GPIO _and_ IRQ). + */ + if (Rt) { + struct input_dev *input = ts->input; + + if (ts->swap_xy) + swap(x, y); + + if (!ts->pendown) { + input_report_key(input, BTN_TOUCH, 1); + ts->pendown = true; + dev_vdbg(&ts->spi->dev, "DOWN\n"); + } + + input_report_abs(input, ABS_X, x); + input_report_abs(input, ABS_Y, y); + input_report_abs(input, ABS_PRESSURE, ts->pressure_max - Rt); + + input_sync(input); + dev_vdbg(&ts->spi->dev, "%4d/%4d/%4d\n", x, y, Rt); + } +} + +static irqreturn_t ads7846_hard_irq(int irq, void *handle) +{ + struct ads7846 *ts = handle; + + return get_pendown_state(ts) ? IRQ_WAKE_THREAD : IRQ_HANDLED; +} + + +static irqreturn_t ads7846_irq(int irq, void *handle) +{ + struct ads7846 *ts = handle; + + /* Start with a small delay before checking pendown state */ + msleep(TS_POLL_DELAY); + + while (!ts->stopped && get_pendown_state(ts)) { + + /* pen is down, continue with the measurement */ + ads7846_read_state(ts); + + if (!ts->stopped) + ads7846_report_state(ts); + + wait_event_timeout(ts->wait, ts->stopped, + msecs_to_jiffies(TS_POLL_PERIOD)); + } + + if (ts->pendown) { + struct input_dev *input = ts->input; + + input_report_key(input, BTN_TOUCH, 0); + input_report_abs(input, ABS_PRESSURE, 0); + input_sync(input); + + ts->pendown = false; + dev_vdbg(&ts->spi->dev, "UP\n"); + } + + return IRQ_HANDLED; +} + +#ifdef CONFIG_PM_SLEEP +static int ads7846_suspend(struct device *dev) +{ + struct ads7846 *ts = dev_get_drvdata(dev); + + mutex_lock(&ts->lock); + + if (!ts->suspended) { + + if (!ts->disabled) + __ads7846_disable(ts); + + if (device_may_wakeup(&ts->spi->dev)) + enable_irq_wake(ts->spi->irq); + + ts->suspended = true; + } + + mutex_unlock(&ts->lock); + + return 0; +} + +static int ads7846_resume(struct device *dev) +{ + struct ads7846 *ts = dev_get_drvdata(dev); + + mutex_lock(&ts->lock); + + if (ts->suspended) { + + ts->suspended = false; + + if (device_may_wakeup(&ts->spi->dev)) + disable_irq_wake(ts->spi->irq); + + if (!ts->disabled) + __ads7846_enable(ts); + } + + mutex_unlock(&ts->lock); + + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(ads7846_pm, ads7846_suspend, ads7846_resume); + +static int ads7846_setup_pendown(struct spi_device *spi, + struct ads7846 *ts) +{ + struct ads7846_platform_data *pdata = spi->dev.platform_data; + int err; + + /* + * REVISIT when the irq can be triggered active-low, or if for some + * reason the touchscreen isn't hooked up, we don't need to access + * the pendown state. + */ + + if (pdata->get_pendown_state) { + ts->get_pendown_state = pdata->get_pendown_state; + } else if (gpio_is_valid(pdata->gpio_pendown)) { + + err = gpio_request_one(pdata->gpio_pendown, GPIOF_IN, + "ads7846_pendown"); + if (err) { + dev_err(&spi->dev, + "failed to request/setup pendown GPIO%d: %d\n", + pdata->gpio_pendown, err); + return err; + } + + ts->gpio_pendown = pdata->gpio_pendown; + + if (pdata->gpio_pendown_debounce) + gpio_set_debounce(pdata->gpio_pendown, + pdata->gpio_pendown_debounce); + } else { + dev_err(&spi->dev, "no get_pendown_state nor gpio_pendown?\n"); + return -EINVAL; + } + + return 0; +} + +/* + * Set up the transfers to read touchscreen state; this assumes we + * use formula #2 for pressure, not #3. + */ +static void ads7846_setup_spi_msg(struct ads7846 *ts, + const struct ads7846_platform_data *pdata) +{ + struct spi_message *m = &ts->msg[0]; + struct spi_transfer *x = ts->xfer; + struct ads7846_packet *packet = ts->packet; + int vref = pdata->keep_vref_on; + + if (ts->model == 7873) { + /* + * The AD7873 is almost identical to the ADS7846 + * keep VREF off during differential/ratiometric + * conversion modes. + */ + ts->model = 7846; + vref = 0; + } + + ts->msg_count = 1; + spi_message_init(m); + m->context = ts; + + if (ts->model == 7845) { + packet->read_y_cmd[0] = READ_Y(vref); + packet->read_y_cmd[1] = 0; + packet->read_y_cmd[2] = 0; + x->tx_buf = &packet->read_y_cmd[0]; + x->rx_buf = &packet->tc.y_buf[0]; + x->len = 3; + spi_message_add_tail(x, m); + } else { + /* y- still on; turn on only y+ (and ADC) */ + packet->read_y = READ_Y(vref); + x->tx_buf = &packet->read_y; + x->len = 1; + spi_message_add_tail(x, m); + + x++; + x->rx_buf = &packet->tc.y; + x->len = 2; + spi_message_add_tail(x, m); + } + + /* + * The first sample after switching drivers can be low quality; + * optionally discard it, using a second one after the signals + * have had enough time to stabilize. + */ + if (pdata->settle_delay_usecs) { + x->delay_usecs = pdata->settle_delay_usecs; + + x++; + x->tx_buf = &packet->read_y; + x->len = 1; + spi_message_add_tail(x, m); + + x++; + x->rx_buf = &packet->tc.y; + x->len = 2; + spi_message_add_tail(x, m); + } + + ts->msg_count++; + m++; + spi_message_init(m); + m->context = ts; + + if (ts->model == 7845) { + x++; + packet->read_x_cmd[0] = READ_X(vref); + packet->read_x_cmd[1] = 0; + packet->read_x_cmd[2] = 0; + x->tx_buf = &packet->read_x_cmd[0]; + x->rx_buf = &packet->tc.x_buf[0]; + x->len = 3; + spi_message_add_tail(x, m); + } else { + /* turn y- off, x+ on, then leave in lowpower */ + x++; + packet->read_x = READ_X(vref); + x->tx_buf = &packet->read_x; + x->len = 1; + spi_message_add_tail(x, m); + + x++; + x->rx_buf = &packet->tc.x; + x->len = 2; + spi_message_add_tail(x, m); + } + + /* ... maybe discard first sample ... */ + if (pdata->settle_delay_usecs) { + x->delay_usecs = pdata->settle_delay_usecs; + + x++; + x->tx_buf = &packet->read_x; + x->len = 1; + spi_message_add_tail(x, m); + + x++; + x->rx_buf = &packet->tc.x; + x->len = 2; + spi_message_add_tail(x, m); + } + + /* turn y+ off, x- on; we'll use formula #2 */ + if (ts->model == 7846) { + ts->msg_count++; + m++; + spi_message_init(m); + m->context = ts; + + x++; + packet->read_z1 = READ_Z1(vref); + x->tx_buf = &packet->read_z1; + x->len = 1; + spi_message_add_tail(x, m); + + x++; + x->rx_buf = &packet->tc.z1; + x->len = 2; + spi_message_add_tail(x, m); + + /* ... maybe discard first sample ... */ + if (pdata->settle_delay_usecs) { + x->delay_usecs = pdata->settle_delay_usecs; + + x++; + x->tx_buf = &packet->read_z1; + x->len = 1; + spi_message_add_tail(x, m); + + x++; + x->rx_buf = &packet->tc.z1; + x->len = 2; + spi_message_add_tail(x, m); + } + + ts->msg_count++; + m++; + spi_message_init(m); + m->context = ts; + + x++; + packet->read_z2 = READ_Z2(vref); + x->tx_buf = &packet->read_z2; + x->len = 1; + spi_message_add_tail(x, m); + + x++; + x->rx_buf = &packet->tc.z2; + x->len = 2; + spi_message_add_tail(x, m); + + /* ... maybe discard first sample ... */ + if (pdata->settle_delay_usecs) { + x->delay_usecs = pdata->settle_delay_usecs; + + x++; + x->tx_buf = &packet->read_z2; + x->len = 1; + spi_message_add_tail(x, m); + + x++; + x->rx_buf = &packet->tc.z2; + x->len = 2; + spi_message_add_tail(x, m); + } + } + + /* power down */ + ts->msg_count++; + m++; + spi_message_init(m); + m->context = ts; + + if (ts->model == 7845) { + x++; + packet->pwrdown_cmd[0] = PWRDOWN; + packet->pwrdown_cmd[1] = 0; + packet->pwrdown_cmd[2] = 0; + x->tx_buf = &packet->pwrdown_cmd[0]; + x->len = 3; + } else { + x++; + packet->pwrdown = PWRDOWN; + x->tx_buf = &packet->pwrdown; + x->len = 1; + spi_message_add_tail(x, m); + + x++; + x->rx_buf = &packet->dummy; + x->len = 2; + } + + CS_CHANGE(*x); + spi_message_add_tail(x, m); +} + +static int ads7846_probe(struct spi_device *spi) +{ + struct ads7846 *ts; + struct ads7846_packet *packet; + struct input_dev *input_dev; + struct ads7846_platform_data *pdata = spi->dev.platform_data; + unsigned long irq_flags; + int err; + + if (!spi->irq) { + dev_dbg(&spi->dev, "no IRQ?\n"); + return -ENODEV; + } + + if (!pdata) { + dev_dbg(&spi->dev, "no platform data?\n"); + return -ENODEV; + } + + /* don't exceed max specified sample rate */ + if (spi->max_speed_hz > (125000 * SAMPLE_BITS)) { + dev_dbg(&spi->dev, "f(sample) %d KHz?\n", + (spi->max_speed_hz/SAMPLE_BITS)/1000); + return -EINVAL; + } + + /* We'd set TX word size 8 bits and RX word size to 13 bits ... except + * that even if the hardware can do that, the SPI controller driver + * may not. So we stick to very-portable 8 bit words, both RX and TX. + */ + spi->bits_per_word = 8; + spi->mode = SPI_MODE_0; + err = spi_setup(spi); + if (err < 0) + return err; + + ts = kzalloc(sizeof(struct ads7846), GFP_KERNEL); + packet = kzalloc(sizeof(struct ads7846_packet), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!ts || !packet || !input_dev) { + err = -ENOMEM; + goto err_free_mem; + } + + spi_set_drvdata(spi, ts); + + ts->packet = packet; + ts->spi = spi; + ts->input = input_dev; + ts->vref_mv = pdata->vref_mv; + ts->swap_xy = pdata->swap_xy; + + mutex_init(&ts->lock); + init_waitqueue_head(&ts->wait); + + ts->model = pdata->model ? : 7846; + ts->vref_delay_usecs = pdata->vref_delay_usecs ? : 100; + ts->x_plate_ohms = pdata->x_plate_ohms ? : 400; + ts->pressure_max = pdata->pressure_max ? : ~0; + + if (pdata->filter != NULL) { + if (pdata->filter_init != NULL) { + err = pdata->filter_init(pdata, &ts->filter_data); + if (err < 0) + goto err_free_mem; + } + ts->filter = pdata->filter; + ts->filter_cleanup = pdata->filter_cleanup; + } else if (pdata->debounce_max) { + ts->debounce_max = pdata->debounce_max; + if (ts->debounce_max < 2) + ts->debounce_max = 2; + ts->debounce_tol = pdata->debounce_tol; + ts->debounce_rep = pdata->debounce_rep; + ts->filter = ads7846_debounce_filter; + ts->filter_data = ts; + } else { + ts->filter = ads7846_no_filter; + } + + err = ads7846_setup_pendown(spi, ts); + if (err) + goto err_cleanup_filter; + + if (pdata->penirq_recheck_delay_usecs) + ts->penirq_recheck_delay_usecs = + pdata->penirq_recheck_delay_usecs; + + ts->wait_for_sync = pdata->wait_for_sync ? : null_wait_for_sync; + + snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(&spi->dev)); + snprintf(ts->name, sizeof(ts->name), "ADS%d Touchscreen", ts->model); + + input_dev->name = ts->name; + input_dev->phys = ts->phys; + input_dev->dev.parent = &spi->dev; + + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(input_dev, ABS_X, + pdata->x_min ? : 0, + pdata->x_max ? : MAX_12BIT, + 0, 0); + input_set_abs_params(input_dev, ABS_Y, + pdata->y_min ? : 0, + pdata->y_max ? : MAX_12BIT, + 0, 0); + input_set_abs_params(input_dev, ABS_PRESSURE, + pdata->pressure_min, pdata->pressure_max, 0, 0); + + ads7846_setup_spi_msg(ts, pdata); + + ts->reg = regulator_get(&spi->dev, "vcc"); + if (IS_ERR(ts->reg)) { + err = PTR_ERR(ts->reg); + dev_err(&spi->dev, "unable to get regulator: %d\n", err); + goto err_free_gpio; + } + + err = regulator_enable(ts->reg); + if (err) { + dev_err(&spi->dev, "unable to enable regulator: %d\n", err); + goto err_put_regulator; + } + + irq_flags = pdata->irq_flags ? : IRQF_TRIGGER_FALLING; + irq_flags |= IRQF_ONESHOT; + + err = request_threaded_irq(spi->irq, ads7846_hard_irq, ads7846_irq, + irq_flags, spi->dev.driver->name, ts); + if (err && !pdata->irq_flags) { + dev_info(&spi->dev, + "trying pin change workaround on irq %d\n", spi->irq); + irq_flags |= IRQF_TRIGGER_RISING; + err = request_threaded_irq(spi->irq, + ads7846_hard_irq, ads7846_irq, + irq_flags, spi->dev.driver->name, ts); + } + + if (err) { + dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq); + goto err_disable_regulator; + } + + err = ads784x_hwmon_register(spi, ts); + if (err) + goto err_free_irq; + + dev_info(&spi->dev, "touchscreen, irq %d\n", spi->irq); + + /* + * Take a first sample, leaving nPENIRQ active and vREF off; avoid + * the touchscreen, in case it's not connected. + */ + if (ts->model == 7845) + ads7845_read12_ser(&spi->dev, PWRDOWN); + else + (void) ads7846_read12_ser(&spi->dev, READ_12BIT_SER(vaux)); + + err = sysfs_create_group(&spi->dev.kobj, &ads784x_attr_group); + if (err) + goto err_remove_hwmon; + + err = input_register_device(input_dev); + if (err) + goto err_remove_attr_group; + + device_init_wakeup(&spi->dev, pdata->wakeup); + + return 0; + + err_remove_attr_group: + sysfs_remove_group(&spi->dev.kobj, &ads784x_attr_group); + err_remove_hwmon: + ads784x_hwmon_unregister(spi, ts); + err_free_irq: + free_irq(spi->irq, ts); + err_disable_regulator: + regulator_disable(ts->reg); + err_put_regulator: + regulator_put(ts->reg); + err_free_gpio: + if (!ts->get_pendown_state) + gpio_free(ts->gpio_pendown); + err_cleanup_filter: + if (ts->filter_cleanup) + ts->filter_cleanup(ts->filter_data); + err_free_mem: + input_free_device(input_dev); + kfree(packet); + kfree(ts); + return err; +} + +static int ads7846_remove(struct spi_device *spi) +{ + struct ads7846 *ts = spi_get_drvdata(spi); + + device_init_wakeup(&spi->dev, false); + + sysfs_remove_group(&spi->dev.kobj, &ads784x_attr_group); + + ads7846_disable(ts); + free_irq(ts->spi->irq, ts); + + input_unregister_device(ts->input); + + ads784x_hwmon_unregister(spi, ts); + + regulator_disable(ts->reg); + regulator_put(ts->reg); + + if (!ts->get_pendown_state) { + /* + * If we are not using specialized pendown method we must + * have been relying on gpio we set up ourselves. + */ + gpio_free(ts->gpio_pendown); + } + + if (ts->filter_cleanup) + ts->filter_cleanup(ts->filter_data); + + kfree(ts->packet); + kfree(ts); + + dev_dbg(&spi->dev, "unregistered touchscreen\n"); + + return 0; +} + +static struct spi_driver ads7846_driver = { + .driver = { + .name = "ads7846", + .owner = THIS_MODULE, + .pm = &ads7846_pm, + }, + .probe = ads7846_probe, + .remove = ads7846_remove, +}; + +module_spi_driver(ads7846_driver); + +MODULE_DESCRIPTION("ADS7846 TouchScreen Driver"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("spi:ads7846"); diff --git a/drivers/input/touchscreen/atmel-wm97xx.c b/drivers/input/touchscreen/atmel-wm97xx.c new file mode 100644 index 00000000..2c1e46b7 --- /dev/null +++ b/drivers/input/touchscreen/atmel-wm97xx.c @@ -0,0 +1,439 @@ +/* + * Atmel AT91 and AVR32 continuous touch screen driver for Wolfson WM97xx AC97 + * codecs. + * + * Copyright (C) 2008 - 2009 Atmel Corporation + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define AC97C_ICA 0x10 +#define AC97C_CBRHR 0x30 +#define AC97C_CBSR 0x38 +#define AC97C_CBMR 0x3c +#define AC97C_IER 0x54 +#define AC97C_IDR 0x58 + +#define AC97C_RXRDY (1 << 4) +#define AC97C_OVRUN (1 << 5) + +#define AC97C_CMR_SIZE_20 (0 << 16) +#define AC97C_CMR_SIZE_18 (1 << 16) +#define AC97C_CMR_SIZE_16 (2 << 16) +#define AC97C_CMR_SIZE_10 (3 << 16) +#define AC97C_CMR_CEM_LITTLE (1 << 18) +#define AC97C_CMR_CEM_BIG (0 << 18) +#define AC97C_CMR_CENA (1 << 21) + +#define AC97C_INT_CBEVT (1 << 4) + +#define AC97C_SR_CAEVT (1 << 3) + +#define AC97C_CH_MASK(slot) \ + (0x7 << (3 * (slot - 3))) +#define AC97C_CH_ASSIGN(slot, channel) \ + (AC97C_CHANNEL_##channel << (3 * (slot - 3))) +#define AC97C_CHANNEL_NONE 0x0 +#define AC97C_CHANNEL_B 0x2 + +#define ac97c_writel(chip, reg, val) \ + __raw_writel((val), (chip)->regs + AC97C_##reg) +#define ac97c_readl(chip, reg) \ + __raw_readl((chip)->regs + AC97C_##reg) + +#ifdef CONFIG_CPU_AT32AP700X +#define ATMEL_WM97XX_AC97C_IOMEM (0xfff02800) +#define ATMEL_WM97XX_AC97C_IRQ (29) +#define ATMEL_WM97XX_GPIO_DEFAULT (32+16) /* Pin 16 on port B. */ +#else +#error Unknown CPU, this driver only supports AT32AP700X CPUs. +#endif + +struct continuous { + u16 id; /* codec id */ + u8 code; /* continuous code */ + u8 reads; /* number of coord reads per read cycle */ + u32 speed; /* number of coords per second */ +}; + +#define WM_READS(sp) ((sp / HZ) + 1) + +static const struct continuous cinfo[] = { + {WM9705_ID2, 0, WM_READS(94), 94}, + {WM9705_ID2, 1, WM_READS(188), 188}, + {WM9705_ID2, 2, WM_READS(375), 375}, + {WM9705_ID2, 3, WM_READS(750), 750}, + {WM9712_ID2, 0, WM_READS(94), 94}, + {WM9712_ID2, 1, WM_READS(188), 188}, + {WM9712_ID2, 2, WM_READS(375), 375}, + {WM9712_ID2, 3, WM_READS(750), 750}, + {WM9713_ID2, 0, WM_READS(94), 94}, + {WM9713_ID2, 1, WM_READS(120), 120}, + {WM9713_ID2, 2, WM_READS(154), 154}, + {WM9713_ID2, 3, WM_READS(188), 188}, +}; + +/* Continuous speed index. */ +static int sp_idx; + +/* + * Pen sampling frequency (Hz) in continuous mode. + */ +static int cont_rate = 188; +module_param(cont_rate, int, 0); +MODULE_PARM_DESC(cont_rate, "Sampling rate in continuous mode (Hz)"); + +/* + * Pen down detection. + * + * This driver can either poll or use an interrupt to indicate a pen down + * event. If the irq request fails then it will fall back to polling mode. + */ +static int pen_int = 1; +module_param(pen_int, int, 0); +MODULE_PARM_DESC(pen_int, "Pen down detection (1 = interrupt, 0 = polling)"); + +/* + * Pressure readback. + * + * Set to 1 to read back pen down pressure. + */ +static int pressure; +module_param(pressure, int, 0); +MODULE_PARM_DESC(pressure, "Pressure readback (1 = pressure, 0 = no pressure)"); + +/* + * AC97 touch data slot. + * + * Touch screen readback data ac97 slot. + */ +static int ac97_touch_slot = 5; +module_param(ac97_touch_slot, int, 0); +MODULE_PARM_DESC(ac97_touch_slot, "Touch screen data slot AC97 number"); + +/* + * GPIO line number. + * + * Set to GPIO number where the signal from the WM97xx device is hooked up. + */ +static int atmel_gpio_line = ATMEL_WM97XX_GPIO_DEFAULT; +module_param(atmel_gpio_line, int, 0); +MODULE_PARM_DESC(atmel_gpio_line, "GPIO line number connected to WM97xx"); + +struct atmel_wm97xx { + struct wm97xx *wm; + struct timer_list pen_timer; + void __iomem *regs; + unsigned long ac97c_irq; + unsigned long gpio_pen; + unsigned long gpio_irq; + unsigned short x; + unsigned short y; +}; + +static irqreturn_t atmel_wm97xx_channel_b_interrupt(int irq, void *dev_id) +{ + struct atmel_wm97xx *atmel_wm97xx = dev_id; + struct wm97xx *wm = atmel_wm97xx->wm; + int status = ac97c_readl(atmel_wm97xx, CBSR); + irqreturn_t retval = IRQ_NONE; + + if (status & AC97C_OVRUN) { + dev_dbg(&wm->touch_dev->dev, "AC97C overrun\n"); + ac97c_readl(atmel_wm97xx, CBRHR); + retval = IRQ_HANDLED; + } else if (status & AC97C_RXRDY) { + u16 data; + u16 value; + u16 source; + u16 pen_down; + + data = ac97c_readl(atmel_wm97xx, CBRHR); + value = data & 0x0fff; + source = data & WM97XX_ADCSEL_MASK; + pen_down = (data & WM97XX_PEN_DOWN) >> 8; + + if (source == WM97XX_ADCSEL_X) + atmel_wm97xx->x = value; + if (source == WM97XX_ADCSEL_Y) + atmel_wm97xx->y = value; + + if (!pressure && source == WM97XX_ADCSEL_Y) { + input_report_abs(wm->input_dev, ABS_X, atmel_wm97xx->x); + input_report_abs(wm->input_dev, ABS_Y, atmel_wm97xx->y); + input_report_key(wm->input_dev, BTN_TOUCH, pen_down); + input_sync(wm->input_dev); + } else if (pressure && source == WM97XX_ADCSEL_PRES) { + input_report_abs(wm->input_dev, ABS_X, atmel_wm97xx->x); + input_report_abs(wm->input_dev, ABS_Y, atmel_wm97xx->y); + input_report_abs(wm->input_dev, ABS_PRESSURE, value); + input_report_key(wm->input_dev, BTN_TOUCH, value); + input_sync(wm->input_dev); + } + + retval = IRQ_HANDLED; + } + + return retval; +} + +static void atmel_wm97xx_acc_pen_up(struct wm97xx *wm) +{ + struct atmel_wm97xx *atmel_wm97xx = platform_get_drvdata(wm->touch_dev); + struct input_dev *input_dev = wm->input_dev; + int pen_down = gpio_get_value(atmel_wm97xx->gpio_pen); + + if (pen_down != 0) { + mod_timer(&atmel_wm97xx->pen_timer, + jiffies + msecs_to_jiffies(1)); + } else { + if (pressure) + input_report_abs(input_dev, ABS_PRESSURE, 0); + input_report_key(input_dev, BTN_TOUCH, 0); + input_sync(input_dev); + } +} + +static void atmel_wm97xx_pen_timer(unsigned long data) +{ + atmel_wm97xx_acc_pen_up((struct wm97xx *)data); +} + +static int atmel_wm97xx_acc_startup(struct wm97xx *wm) +{ + struct atmel_wm97xx *atmel_wm97xx = platform_get_drvdata(wm->touch_dev); + int idx = 0; + + if (wm->ac97 == NULL) + return -ENODEV; + + for (idx = 0; idx < ARRAY_SIZE(cinfo); idx++) { + if (wm->id != cinfo[idx].id) + continue; + + sp_idx = idx; + + if (cont_rate <= cinfo[idx].speed) + break; + } + + wm->acc_rate = cinfo[sp_idx].code; + wm->acc_slot = ac97_touch_slot; + dev_info(&wm->touch_dev->dev, "atmel accelerated touchscreen driver, " + "%d samples/sec\n", cinfo[sp_idx].speed); + + if (pen_int) { + unsigned long reg; + + wm->pen_irq = atmel_wm97xx->gpio_irq; + + switch (wm->id) { + case WM9712_ID2: /* Fall through. */ + case WM9713_ID2: + /* + * Use GPIO 13 (PEN_DOWN) to assert GPIO line 3 + * (PENDOWN). + */ + wm97xx_config_gpio(wm, WM97XX_GPIO_13, WM97XX_GPIO_IN, + WM97XX_GPIO_POL_HIGH, + WM97XX_GPIO_STICKY, + WM97XX_GPIO_WAKE); + wm97xx_config_gpio(wm, WM97XX_GPIO_3, WM97XX_GPIO_OUT, + WM97XX_GPIO_POL_HIGH, + WM97XX_GPIO_NOTSTICKY, + WM97XX_GPIO_NOWAKE); + case WM9705_ID2: /* Fall through. */ + /* + * Enable touch data slot in AC97 controller channel B. + */ + reg = ac97c_readl(atmel_wm97xx, ICA); + reg &= ~AC97C_CH_MASK(wm->acc_slot); + reg |= AC97C_CH_ASSIGN(wm->acc_slot, B); + ac97c_writel(atmel_wm97xx, ICA, reg); + + /* + * Enable channel and interrupt for RXRDY and OVERRUN. + */ + ac97c_writel(atmel_wm97xx, CBMR, AC97C_CMR_CENA + | AC97C_CMR_CEM_BIG + | AC97C_CMR_SIZE_16 + | AC97C_OVRUN + | AC97C_RXRDY); + /* Dummy read to empty RXRHR. */ + ac97c_readl(atmel_wm97xx, CBRHR); + /* + * Enable interrupt for channel B in the AC97 + * controller. + */ + ac97c_writel(atmel_wm97xx, IER, AC97C_INT_CBEVT); + break; + default: + dev_err(&wm->touch_dev->dev, "pen down irq not " + "supported on this device\n"); + pen_int = 0; + break; + } + } + + return 0; +} + +static void atmel_wm97xx_acc_shutdown(struct wm97xx *wm) +{ + if (pen_int) { + struct atmel_wm97xx *atmel_wm97xx = + platform_get_drvdata(wm->touch_dev); + unsigned long ica; + + switch (wm->id & 0xffff) { + case WM9705_ID2: /* Fall through. */ + case WM9712_ID2: /* Fall through. */ + case WM9713_ID2: + /* Disable slot and turn off channel B interrupts. */ + ica = ac97c_readl(atmel_wm97xx, ICA); + ica &= ~AC97C_CH_MASK(wm->acc_slot); + ac97c_writel(atmel_wm97xx, ICA, ica); + ac97c_writel(atmel_wm97xx, IDR, AC97C_INT_CBEVT); + ac97c_writel(atmel_wm97xx, CBMR, 0); + wm->pen_irq = 0; + break; + default: + dev_err(&wm->touch_dev->dev, "unknown codec\n"); + break; + } + } +} + +static void atmel_wm97xx_irq_enable(struct wm97xx *wm, int enable) +{ + /* Intentionally left empty. */ +} + +static struct wm97xx_mach_ops atmel_mach_ops = { + .acc_enabled = 1, + .acc_pen_up = atmel_wm97xx_acc_pen_up, + .acc_startup = atmel_wm97xx_acc_startup, + .acc_shutdown = atmel_wm97xx_acc_shutdown, + .irq_enable = atmel_wm97xx_irq_enable, + .irq_gpio = WM97XX_GPIO_3, +}; + +static int __init atmel_wm97xx_probe(struct platform_device *pdev) +{ + struct wm97xx *wm = platform_get_drvdata(pdev); + struct atmel_wm97xx *atmel_wm97xx; + int ret; + + atmel_wm97xx = kzalloc(sizeof(struct atmel_wm97xx), GFP_KERNEL); + if (!atmel_wm97xx) { + dev_dbg(&pdev->dev, "out of memory\n"); + return -ENOMEM; + } + + atmel_wm97xx->wm = wm; + atmel_wm97xx->regs = (void *)ATMEL_WM97XX_AC97C_IOMEM; + atmel_wm97xx->ac97c_irq = ATMEL_WM97XX_AC97C_IRQ; + atmel_wm97xx->gpio_pen = atmel_gpio_line; + atmel_wm97xx->gpio_irq = gpio_to_irq(atmel_wm97xx->gpio_pen); + + setup_timer(&atmel_wm97xx->pen_timer, atmel_wm97xx_pen_timer, + (unsigned long)wm); + + ret = request_irq(atmel_wm97xx->ac97c_irq, + atmel_wm97xx_channel_b_interrupt, + IRQF_SHARED, "atmel-wm97xx-ch-b", atmel_wm97xx); + if (ret) { + dev_dbg(&pdev->dev, "could not request ac97c irq\n"); + goto err; + } + + platform_set_drvdata(pdev, atmel_wm97xx); + + ret = wm97xx_register_mach_ops(wm, &atmel_mach_ops); + if (ret) + goto err_irq; + + return ret; + +err_irq: + free_irq(atmel_wm97xx->ac97c_irq, atmel_wm97xx); +err: + platform_set_drvdata(pdev, NULL); + kfree(atmel_wm97xx); + return ret; +} + +static int __exit atmel_wm97xx_remove(struct platform_device *pdev) +{ + struct atmel_wm97xx *atmel_wm97xx = platform_get_drvdata(pdev); + struct wm97xx *wm = atmel_wm97xx->wm; + + ac97c_writel(atmel_wm97xx, IDR, AC97C_INT_CBEVT); + free_irq(atmel_wm97xx->ac97c_irq, atmel_wm97xx); + del_timer_sync(&atmel_wm97xx->pen_timer); + wm97xx_unregister_mach_ops(wm); + platform_set_drvdata(pdev, NULL); + kfree(atmel_wm97xx); + + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int atmel_wm97xx_suspend(struct *dev) +{ + struct platform_device *pdev = to_platform_device(dev); + struct atmel_wm97xx *atmel_wm97xx = platform_get_drvdata(pdev); + + ac97c_writel(atmel_wm97xx, IDR, AC97C_INT_CBEVT); + disable_irq(atmel_wm97xx->gpio_irq); + del_timer_sync(&atmel_wm97xx->pen_timer); + + return 0; +} + +static int atmel_wm97xx_resume(struct device *dev) +{ + struct platform_device *pdev = to_platform_device(dev); + struct atmel_wm97xx *atmel_wm97xx = platform_get_drvdata(pdev); + struct wm97xx *wm = atmel_wm97xx->wm; + + if (wm->input_dev->users) { + enable_irq(atmel_wm97xx->gpio_irq); + ac97c_writel(atmel_wm97xx, IER, AC97C_INT_CBEVT); + } + + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(atmel_wm97xx_pm_ops, + atmel_wm97xx_suspend, atmel_wm97xx_resume); + +static struct platform_driver atmel_wm97xx_driver = { + .remove = __exit_p(atmel_wm97xx_remove), + .driver = { + .name = "wm97xx-touch", + .owner = THIS_MODULE, + .pm = &atmel_wm97xx_pm_ops, + }, +}; + +module_platform_driver_probe(atmel_wm97xx_driver, atmel_wm97xx_probe); + +MODULE_AUTHOR("Hans-Christian Egtvedt "); +MODULE_DESCRIPTION("wm97xx continuous touch driver for Atmel AT91 and AVR32"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c new file mode 100644 index 00000000..59aa2400 --- /dev/null +++ b/drivers/input/touchscreen/atmel_mxt_ts.c @@ -0,0 +1,1342 @@ +/* + * Atmel maXTouch Touchscreen driver + * + * Copyright (C) 2010 Samsung Electronics Co.Ltd + * Author: Joonyoung Shim + * + * 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. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Version */ +#define MXT_VER_20 20 +#define MXT_VER_21 21 +#define MXT_VER_22 22 + +/* Slave addresses */ +#define MXT_APP_LOW 0x4a +#define MXT_APP_HIGH 0x4b +#define MXT_BOOT_LOW 0x24 +#define MXT_BOOT_HIGH 0x25 + +/* Firmware */ +#define MXT_FW_NAME "maxtouch.fw" + +/* Registers */ +#define MXT_INFO 0x00 +#define MXT_FAMILY_ID 0x00 +#define MXT_VARIANT_ID 0x01 +#define MXT_VERSION 0x02 +#define MXT_BUILD 0x03 +#define MXT_MATRIX_X_SIZE 0x04 +#define MXT_MATRIX_Y_SIZE 0x05 +#define MXT_OBJECT_NUM 0x06 +#define MXT_OBJECT_START 0x07 + +#define MXT_OBJECT_SIZE 6 + +/* Object types */ +#define MXT_DEBUG_DIAGNOSTIC_T37 37 +#define MXT_GEN_MESSAGE_T5 5 +#define MXT_GEN_COMMAND_T6 6 +#define MXT_GEN_POWER_T7 7 +#define MXT_GEN_ACQUIRE_T8 8 +#define MXT_GEN_DATASOURCE_T53 53 +#define MXT_TOUCH_MULTI_T9 9 +#define MXT_TOUCH_KEYARRAY_T15 15 +#define MXT_TOUCH_PROXIMITY_T23 23 +#define MXT_TOUCH_PROXKEY_T52 52 +#define MXT_PROCI_GRIPFACE_T20 20 +#define MXT_PROCG_NOISE_T22 22 +#define MXT_PROCI_ONETOUCH_T24 24 +#define MXT_PROCI_TWOTOUCH_T27 27 +#define MXT_PROCI_GRIP_T40 40 +#define MXT_PROCI_PALM_T41 41 +#define MXT_PROCI_TOUCHSUPPRESSION_T42 42 +#define MXT_PROCI_STYLUS_T47 47 +#define MXT_PROCG_NOISESUPPRESSION_T48 48 +#define MXT_SPT_COMMSCONFIG_T18 18 +#define MXT_SPT_GPIOPWM_T19 19 +#define MXT_SPT_SELFTEST_T25 25 +#define MXT_SPT_CTECONFIG_T28 28 +#define MXT_SPT_USERDATA_T38 38 +#define MXT_SPT_DIGITIZER_T43 43 +#define MXT_SPT_MESSAGECOUNT_T44 44 +#define MXT_SPT_CTECONFIG_T46 46 + +/* MXT_GEN_COMMAND_T6 field */ +#define MXT_COMMAND_RESET 0 +#define MXT_COMMAND_BACKUPNV 1 +#define MXT_COMMAND_CALIBRATE 2 +#define MXT_COMMAND_REPORTALL 3 +#define MXT_COMMAND_DIAGNOSTIC 5 + +/* MXT_GEN_POWER_T7 field */ +#define MXT_POWER_IDLEACQINT 0 +#define MXT_POWER_ACTVACQINT 1 +#define MXT_POWER_ACTV2IDLETO 2 + +/* MXT_GEN_ACQUIRE_T8 field */ +#define MXT_ACQUIRE_CHRGTIME 0 +#define MXT_ACQUIRE_TCHDRIFT 2 +#define MXT_ACQUIRE_DRIFTST 3 +#define MXT_ACQUIRE_TCHAUTOCAL 4 +#define MXT_ACQUIRE_SYNC 5 +#define MXT_ACQUIRE_ATCHCALST 6 +#define MXT_ACQUIRE_ATCHCALSTHR 7 + +/* MXT_TOUCH_MULTI_T9 field */ +#define MXT_TOUCH_CTRL 0 +#define MXT_TOUCH_XORIGIN 1 +#define MXT_TOUCH_YORIGIN 2 +#define MXT_TOUCH_XSIZE 3 +#define MXT_TOUCH_YSIZE 4 +#define MXT_TOUCH_BLEN 6 +#define MXT_TOUCH_TCHTHR 7 +#define MXT_TOUCH_TCHDI 8 +#define MXT_TOUCH_ORIENT 9 +#define MXT_TOUCH_MOVHYSTI 11 +#define MXT_TOUCH_MOVHYSTN 12 +#define MXT_TOUCH_NUMTOUCH 14 +#define MXT_TOUCH_MRGHYST 15 +#define MXT_TOUCH_MRGTHR 16 +#define MXT_TOUCH_AMPHYST 17 +#define MXT_TOUCH_XRANGE_LSB 18 +#define MXT_TOUCH_XRANGE_MSB 19 +#define MXT_TOUCH_YRANGE_LSB 20 +#define MXT_TOUCH_YRANGE_MSB 21 +#define MXT_TOUCH_XLOCLIP 22 +#define MXT_TOUCH_XHICLIP 23 +#define MXT_TOUCH_YLOCLIP 24 +#define MXT_TOUCH_YHICLIP 25 +#define MXT_TOUCH_XEDGECTRL 26 +#define MXT_TOUCH_XEDGEDIST 27 +#define MXT_TOUCH_YEDGECTRL 28 +#define MXT_TOUCH_YEDGEDIST 29 +#define MXT_TOUCH_JUMPLIMIT 30 + +/* MXT_PROCI_GRIPFACE_T20 field */ +#define MXT_GRIPFACE_CTRL 0 +#define MXT_GRIPFACE_XLOGRIP 1 +#define MXT_GRIPFACE_XHIGRIP 2 +#define MXT_GRIPFACE_YLOGRIP 3 +#define MXT_GRIPFACE_YHIGRIP 4 +#define MXT_GRIPFACE_MAXTCHS 5 +#define MXT_GRIPFACE_SZTHR1 7 +#define MXT_GRIPFACE_SZTHR2 8 +#define MXT_GRIPFACE_SHPTHR1 9 +#define MXT_GRIPFACE_SHPTHR2 10 +#define MXT_GRIPFACE_SUPEXTTO 11 + +/* MXT_PROCI_NOISE field */ +#define MXT_NOISE_CTRL 0 +#define MXT_NOISE_OUTFLEN 1 +#define MXT_NOISE_GCAFUL_LSB 3 +#define MXT_NOISE_GCAFUL_MSB 4 +#define MXT_NOISE_GCAFLL_LSB 5 +#define MXT_NOISE_GCAFLL_MSB 6 +#define MXT_NOISE_ACTVGCAFVALID 7 +#define MXT_NOISE_NOISETHR 8 +#define MXT_NOISE_FREQHOPSCALE 10 +#define MXT_NOISE_FREQ0 11 +#define MXT_NOISE_FREQ1 12 +#define MXT_NOISE_FREQ2 13 +#define MXT_NOISE_FREQ3 14 +#define MXT_NOISE_FREQ4 15 +#define MXT_NOISE_IDLEGCAFVALID 16 + +/* MXT_SPT_COMMSCONFIG_T18 */ +#define MXT_COMMS_CTRL 0 +#define MXT_COMMS_CMD 1 + +/* MXT_SPT_CTECONFIG_T28 field */ +#define MXT_CTE_CTRL 0 +#define MXT_CTE_CMD 1 +#define MXT_CTE_MODE 2 +#define MXT_CTE_IDLEGCAFDEPTH 3 +#define MXT_CTE_ACTVGCAFDEPTH 4 +#define MXT_CTE_VOLTAGE 5 + +#define MXT_VOLTAGE_DEFAULT 2700000 +#define MXT_VOLTAGE_STEP 10000 + +/* Define for MXT_GEN_COMMAND_T6 */ +#define MXT_BOOT_VALUE 0xa5 +#define MXT_BACKUP_VALUE 0x55 +#define MXT_BACKUP_TIME 50 /* msec */ +#define MXT_RESET_TIME 200 /* msec */ + +#define MXT_FWRESET_TIME 175 /* msec */ + +/* MXT_SPT_GPIOPWM_T19 field */ +#define MXT_GPIO0_MASK 0x04 +#define MXT_GPIO1_MASK 0x08 +#define MXT_GPIO2_MASK 0x10 +#define MXT_GPIO3_MASK 0x20 + +/* Command to unlock bootloader */ +#define MXT_UNLOCK_CMD_MSB 0xaa +#define MXT_UNLOCK_CMD_LSB 0xdc + +/* Bootloader mode status */ +#define MXT_WAITING_BOOTLOAD_CMD 0xc0 /* valid 7 6 bit only */ +#define MXT_WAITING_FRAME_DATA 0x80 /* valid 7 6 bit only */ +#define MXT_FRAME_CRC_CHECK 0x02 +#define MXT_FRAME_CRC_FAIL 0x03 +#define MXT_FRAME_CRC_PASS 0x04 +#define MXT_APP_CRC_FAIL 0x40 /* valid 7 8 bit only */ +#define MXT_BOOT_STATUS_MASK 0x3f + +/* Touch status */ +#define MXT_UNGRIP (1 << 0) +#define MXT_SUPPRESS (1 << 1) +#define MXT_AMP (1 << 2) +#define MXT_VECTOR (1 << 3) +#define MXT_MOVE (1 << 4) +#define MXT_RELEASE (1 << 5) +#define MXT_PRESS (1 << 6) +#define MXT_DETECT (1 << 7) + +/* Touch orient bits */ +#define MXT_XY_SWITCH (1 << 0) +#define MXT_X_INVERT (1 << 1) +#define MXT_Y_INVERT (1 << 2) + +/* Touchscreen absolute values */ +#define MXT_MAX_AREA 0xff + +#define MXT_PIXELS_PER_MM 20 + +struct mxt_info { + u8 family_id; + u8 variant_id; + u8 version; + u8 build; + u8 matrix_xsize; + u8 matrix_ysize; + u8 object_num; +}; + +struct mxt_object { + u8 type; + u16 start_address; + u8 size; /* Size of each instance - 1 */ + u8 instances; /* Number of instances - 1 */ + u8 num_report_ids; +} __packed; + +struct mxt_message { + u8 reportid; + u8 message[7]; +}; + +/* Each client has this additional data */ +struct mxt_data { + struct i2c_client *client; + struct input_dev *input_dev; + char phys[64]; /* device physical location */ + const struct mxt_platform_data *pdata; + struct mxt_object *object_table; + struct mxt_info info; + bool is_tp; + + unsigned int irq; + unsigned int max_x; + unsigned int max_y; + + /* Cached parameters from object table */ + u8 T6_reportid; + u8 T9_reportid_min; + u8 T9_reportid_max; + u8 T19_reportid; +}; + +static bool mxt_object_readable(unsigned int type) +{ + switch (type) { + case MXT_GEN_COMMAND_T6: + case MXT_GEN_POWER_T7: + case MXT_GEN_ACQUIRE_T8: + case MXT_GEN_DATASOURCE_T53: + case MXT_TOUCH_MULTI_T9: + case MXT_TOUCH_KEYARRAY_T15: + case MXT_TOUCH_PROXIMITY_T23: + case MXT_TOUCH_PROXKEY_T52: + case MXT_PROCI_GRIPFACE_T20: + case MXT_PROCG_NOISE_T22: + case MXT_PROCI_ONETOUCH_T24: + case MXT_PROCI_TWOTOUCH_T27: + case MXT_PROCI_GRIP_T40: + case MXT_PROCI_PALM_T41: + case MXT_PROCI_TOUCHSUPPRESSION_T42: + case MXT_PROCI_STYLUS_T47: + case MXT_PROCG_NOISESUPPRESSION_T48: + case MXT_SPT_COMMSCONFIG_T18: + case MXT_SPT_GPIOPWM_T19: + case MXT_SPT_SELFTEST_T25: + case MXT_SPT_CTECONFIG_T28: + case MXT_SPT_USERDATA_T38: + case MXT_SPT_DIGITIZER_T43: + case MXT_SPT_CTECONFIG_T46: + return true; + default: + return false; + } +} + +static bool mxt_object_writable(unsigned int type) +{ + switch (type) { + case MXT_GEN_COMMAND_T6: + case MXT_GEN_POWER_T7: + case MXT_GEN_ACQUIRE_T8: + case MXT_TOUCH_MULTI_T9: + case MXT_TOUCH_KEYARRAY_T15: + case MXT_TOUCH_PROXIMITY_T23: + case MXT_TOUCH_PROXKEY_T52: + case MXT_PROCI_GRIPFACE_T20: + case MXT_PROCG_NOISE_T22: + case MXT_PROCI_ONETOUCH_T24: + case MXT_PROCI_TWOTOUCH_T27: + case MXT_PROCI_GRIP_T40: + case MXT_PROCI_PALM_T41: + case MXT_PROCI_TOUCHSUPPRESSION_T42: + case MXT_PROCI_STYLUS_T47: + case MXT_PROCG_NOISESUPPRESSION_T48: + case MXT_SPT_COMMSCONFIG_T18: + case MXT_SPT_GPIOPWM_T19: + case MXT_SPT_SELFTEST_T25: + case MXT_SPT_CTECONFIG_T28: + case MXT_SPT_DIGITIZER_T43: + case MXT_SPT_CTECONFIG_T46: + return true; + default: + return false; + } +} + +static void mxt_dump_message(struct device *dev, + struct mxt_message *message) +{ + dev_dbg(dev, "reportid: %u\tmessage: %*ph\n", + message->reportid, 7, message->message); +} + +static int mxt_check_bootloader(struct i2c_client *client, + unsigned int state) +{ + u8 val; + +recheck: + if (i2c_master_recv(client, &val, 1) != 1) { + dev_err(&client->dev, "%s: i2c recv failed\n", __func__); + return -EIO; + } + + switch (state) { + case MXT_WAITING_BOOTLOAD_CMD: + case MXT_WAITING_FRAME_DATA: + val &= ~MXT_BOOT_STATUS_MASK; + break; + case MXT_FRAME_CRC_PASS: + if (val == MXT_FRAME_CRC_CHECK) + goto recheck; + break; + default: + return -EINVAL; + } + + if (val != state) { + dev_err(&client->dev, "Unvalid bootloader mode state\n"); + return -EINVAL; + } + + return 0; +} + +static int mxt_unlock_bootloader(struct i2c_client *client) +{ + u8 buf[2]; + + buf[0] = MXT_UNLOCK_CMD_LSB; + buf[1] = MXT_UNLOCK_CMD_MSB; + + if (i2c_master_send(client, buf, 2) != 2) { + dev_err(&client->dev, "%s: i2c send failed\n", __func__); + return -EIO; + } + + return 0; +} + +static int mxt_fw_write(struct i2c_client *client, + const u8 *data, unsigned int frame_size) +{ + if (i2c_master_send(client, data, frame_size) != frame_size) { + dev_err(&client->dev, "%s: i2c send failed\n", __func__); + return -EIO; + } + + return 0; +} + +static int __mxt_read_reg(struct i2c_client *client, + u16 reg, u16 len, void *val) +{ + struct i2c_msg xfer[2]; + u8 buf[2]; + int ret; + + buf[0] = reg & 0xff; + buf[1] = (reg >> 8) & 0xff; + + /* Write register */ + xfer[0].addr = client->addr; + xfer[0].flags = 0; + xfer[0].len = 2; + xfer[0].buf = buf; + + /* Read data */ + xfer[1].addr = client->addr; + xfer[1].flags = I2C_M_RD; + xfer[1].len = len; + xfer[1].buf = val; + + ret = i2c_transfer(client->adapter, xfer, 2); + if (ret == 2) { + ret = 0; + } else { + if (ret >= 0) + ret = -EIO; + dev_err(&client->dev, "%s: i2c transfer failed (%d)\n", + __func__, ret); + } + + return ret; +} + +static int mxt_read_reg(struct i2c_client *client, u16 reg, u8 *val) +{ + return __mxt_read_reg(client, reg, 1, val); +} + +static int __mxt_write_reg(struct i2c_client *client, u16 reg, u16 len, + const void *val) +{ + u8 *buf; + size_t count; + int ret; + + count = len + 2; + buf = kmalloc(count, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + buf[0] = reg & 0xff; + buf[1] = (reg >> 8) & 0xff; + memcpy(&buf[2], val, len); + + ret = i2c_master_send(client, buf, count); + if (ret == count) { + ret = 0; + } else { + if (ret >= 0) + ret = -EIO; + dev_err(&client->dev, "%s: i2c send failed (%d)\n", + __func__, ret); + } + + kfree(buf); + return ret; +} + +static int mxt_write_reg(struct i2c_client *client, u16 reg, u8 val) +{ + return __mxt_write_reg(client, reg, 1, &val); +} + +static struct mxt_object * +mxt_get_object(struct mxt_data *data, u8 type) +{ + struct mxt_object *object; + int i; + + for (i = 0; i < data->info.object_num; i++) { + object = data->object_table + i; + if (object->type == type) + return object; + } + + dev_err(&data->client->dev, "Invalid object type\n"); + return NULL; +} + +static int mxt_read_message(struct mxt_data *data, + struct mxt_message *message) +{ + struct mxt_object *object; + u16 reg; + + object = mxt_get_object(data, MXT_GEN_MESSAGE_T5); + if (!object) + return -EINVAL; + + reg = object->start_address; + return __mxt_read_reg(data->client, reg, + sizeof(struct mxt_message), message); +} + +static int mxt_write_object(struct mxt_data *data, + u8 type, u8 offset, u8 val) +{ + struct mxt_object *object; + u16 reg; + + object = mxt_get_object(data, type); + if (!object || offset >= object->size + 1) + return -EINVAL; + + reg = object->start_address; + return mxt_write_reg(data->client, reg + offset, val); +} + +static void mxt_input_button(struct mxt_data *data, struct mxt_message *message) +{ + struct input_dev *input = data->input_dev; + bool button; + int i; + + /* Active-low switch */ + for (i = 0; i < MXT_NUM_GPIO; i++) { + if (data->pdata->key_map[i] == KEY_RESERVED) + continue; + button = !(message->message[0] & MXT_GPIO0_MASK << i); + input_report_key(input, data->pdata->key_map[i], button); + } +} + +static void mxt_input_touchevent(struct mxt_data *data, + struct mxt_message *message, int id) +{ + struct device *dev = &data->client->dev; + u8 status = message->message[0]; + struct input_dev *input_dev = data->input_dev; + int x; + int y; + int area; + int pressure; + + x = (message->message[1] << 4) | ((message->message[3] >> 4) & 0xf); + y = (message->message[2] << 4) | ((message->message[3] & 0xf)); + if (data->max_x < 1024) + x = x >> 2; + if (data->max_y < 1024) + y = y >> 2; + + area = message->message[4]; + pressure = message->message[5]; + + dev_dbg(dev, + "[%u] %c%c%c%c%c%c%c%c x: %5u y: %5u area: %3u amp: %3u\n", + id, + (status & MXT_DETECT) ? 'D' : '.', + (status & MXT_PRESS) ? 'P' : '.', + (status & MXT_RELEASE) ? 'R' : '.', + (status & MXT_MOVE) ? 'M' : '.', + (status & MXT_VECTOR) ? 'V' : '.', + (status & MXT_AMP) ? 'A' : '.', + (status & MXT_SUPPRESS) ? 'S' : '.', + (status & MXT_UNGRIP) ? 'U' : '.', + x, y, area, pressure); + + input_mt_slot(input_dev, id); + input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, + status & MXT_DETECT); + + if (status & MXT_DETECT) { + input_report_abs(input_dev, ABS_MT_POSITION_X, x); + input_report_abs(input_dev, ABS_MT_POSITION_Y, y); + input_report_abs(input_dev, ABS_MT_PRESSURE, pressure); + input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, area); + } +} + +static unsigned mxt_extract_T6_csum(const u8 *csum) +{ + return csum[0] | (csum[1] << 8) | (csum[2] << 16); +} + +static bool mxt_is_T9_message(struct mxt_data *data, struct mxt_message *msg) +{ + u8 id = msg->reportid; + return (id >= data->T9_reportid_min && id <= data->T9_reportid_max); +} + +static irqreturn_t mxt_interrupt(int irq, void *dev_id) +{ + struct mxt_data *data = dev_id; + struct mxt_message message; + const u8 *payload = &message.message[0]; + struct device *dev = &data->client->dev; + u8 reportid; + bool update_input = false; + + do { + if (mxt_read_message(data, &message)) { + dev_err(dev, "Failed to read message\n"); + goto end; + } + + reportid = message.reportid; + + if (reportid == data->T6_reportid) { + u8 status = payload[0]; + unsigned csum = mxt_extract_T6_csum(&payload[1]); + dev_dbg(dev, "Status: %02x Config Checksum: %06x\n", + status, csum); + } else if (mxt_is_T9_message(data, &message)) { + int id = reportid - data->T9_reportid_min; + mxt_input_touchevent(data, &message, id); + update_input = true; + } else if (message.reportid == data->T19_reportid) { + mxt_input_button(data, &message); + update_input = true; + } else { + mxt_dump_message(dev, &message); + } + } while (reportid != 0xff); + + if (update_input) { + input_mt_report_pointer_emulation(data->input_dev, false); + input_sync(data->input_dev); + } + +end: + return IRQ_HANDLED; +} + +static int mxt_check_reg_init(struct mxt_data *data) +{ + const struct mxt_platform_data *pdata = data->pdata; + struct mxt_object *object; + struct device *dev = &data->client->dev; + int index = 0; + int i, size; + int ret; + + if (!pdata->config) { + dev_dbg(dev, "No cfg data defined, skipping reg init\n"); + return 0; + } + + for (i = 0; i < data->info.object_num; i++) { + object = data->object_table + i; + + if (!mxt_object_writable(object->type)) + continue; + + size = (object->size + 1) * (object->instances + 1); + if (index + size > pdata->config_length) { + dev_err(dev, "Not enough config data!\n"); + return -EINVAL; + } + + ret = __mxt_write_reg(data->client, object->start_address, + size, &pdata->config[index]); + if (ret) + return ret; + index += size; + } + + return 0; +} + +static int mxt_make_highchg(struct mxt_data *data) +{ + struct device *dev = &data->client->dev; + struct mxt_message message; + int count = 10; + int error; + + /* Read dummy message to make high CHG pin */ + do { + error = mxt_read_message(data, &message); + if (error) + return error; + } while (message.reportid != 0xff && --count); + + if (!count) { + dev_err(dev, "CHG pin isn't cleared\n"); + return -EBUSY; + } + + return 0; +} + +static void mxt_handle_pdata(struct mxt_data *data) +{ + const struct mxt_platform_data *pdata = data->pdata; + u8 voltage; + + /* Set touchscreen lines */ + mxt_write_object(data, MXT_TOUCH_MULTI_T9, MXT_TOUCH_XSIZE, + pdata->x_line); + mxt_write_object(data, MXT_TOUCH_MULTI_T9, MXT_TOUCH_YSIZE, + pdata->y_line); + + /* Set touchscreen orient */ + mxt_write_object(data, MXT_TOUCH_MULTI_T9, MXT_TOUCH_ORIENT, + pdata->orient); + + /* Set touchscreen burst length */ + mxt_write_object(data, MXT_TOUCH_MULTI_T9, + MXT_TOUCH_BLEN, pdata->blen); + + /* Set touchscreen threshold */ + mxt_write_object(data, MXT_TOUCH_MULTI_T9, + MXT_TOUCH_TCHTHR, pdata->threshold); + + /* Set touchscreen resolution */ + mxt_write_object(data, MXT_TOUCH_MULTI_T9, + MXT_TOUCH_XRANGE_LSB, (pdata->x_size - 1) & 0xff); + mxt_write_object(data, MXT_TOUCH_MULTI_T9, + MXT_TOUCH_XRANGE_MSB, (pdata->x_size - 1) >> 8); + mxt_write_object(data, MXT_TOUCH_MULTI_T9, + MXT_TOUCH_YRANGE_LSB, (pdata->y_size - 1) & 0xff); + mxt_write_object(data, MXT_TOUCH_MULTI_T9, + MXT_TOUCH_YRANGE_MSB, (pdata->y_size - 1) >> 8); + + /* Set touchscreen voltage */ + if (pdata->voltage) { + if (pdata->voltage < MXT_VOLTAGE_DEFAULT) { + voltage = (MXT_VOLTAGE_DEFAULT - pdata->voltage) / + MXT_VOLTAGE_STEP; + voltage = 0xff - voltage + 1; + } else + voltage = (pdata->voltage - MXT_VOLTAGE_DEFAULT) / + MXT_VOLTAGE_STEP; + + mxt_write_object(data, MXT_SPT_CTECONFIG_T28, + MXT_CTE_VOLTAGE, voltage); + } +} + +static int mxt_get_info(struct mxt_data *data) +{ + struct i2c_client *client = data->client; + struct mxt_info *info = &data->info; + int error; + + /* Read 7-byte info block starting at address 0 */ + error = __mxt_read_reg(client, MXT_INFO, sizeof(*info), info); + if (error) + return error; + + return 0; +} + +static int mxt_get_object_table(struct mxt_data *data) +{ + struct i2c_client *client = data->client; + size_t table_size; + int error; + int i; + u8 reportid; + + table_size = data->info.object_num * sizeof(struct mxt_object); + error = __mxt_read_reg(client, MXT_OBJECT_START, table_size, + data->object_table); + if (error) + return error; + + /* Valid Report IDs start counting from 1 */ + reportid = 1; + for (i = 0; i < data->info.object_num; i++) { + struct mxt_object *object = data->object_table + i; + u8 min_id, max_id; + + le16_to_cpus(&object->start_address); + + if (object->num_report_ids) { + min_id = reportid; + reportid += object->num_report_ids * + (object->instances + 1); + max_id = reportid - 1; + } else { + min_id = 0; + max_id = 0; + } + + dev_dbg(&data->client->dev, + "Type %2d Start %3d Size %3d Instances %2d ReportIDs %3u : %3u\n", + object->type, object->start_address, object->size + 1, + object->instances + 1, min_id, max_id); + + switch (object->type) { + case MXT_GEN_COMMAND_T6: + data->T6_reportid = min_id; + break; + case MXT_TOUCH_MULTI_T9: + data->T9_reportid_min = min_id; + data->T9_reportid_max = max_id; + break; + case MXT_SPT_GPIOPWM_T19: + data->T19_reportid = min_id; + break; + } + } + + return 0; +} + +static void mxt_free_object_table(struct mxt_data *data) +{ + kfree(data->object_table); + data->object_table = NULL; + data->T6_reportid = 0; + data->T9_reportid_min = 0; + data->T9_reportid_max = 0; + data->T19_reportid = 0; +} + +static int mxt_initialize(struct mxt_data *data) +{ + struct i2c_client *client = data->client; + struct mxt_info *info = &data->info; + int error; + u8 val; + + error = mxt_get_info(data); + if (error) + return error; + + data->object_table = kcalloc(info->object_num, + sizeof(struct mxt_object), + GFP_KERNEL); + if (!data->object_table) { + dev_err(&client->dev, "Failed to allocate memory\n"); + return -ENOMEM; + } + + /* Get object table information */ + error = mxt_get_object_table(data); + if (error) + goto err_free_object_table; + + /* Check register init values */ + error = mxt_check_reg_init(data); + if (error) + goto err_free_object_table; + + mxt_handle_pdata(data); + + /* Backup to memory */ + mxt_write_object(data, MXT_GEN_COMMAND_T6, + MXT_COMMAND_BACKUPNV, + MXT_BACKUP_VALUE); + msleep(MXT_BACKUP_TIME); + + /* Soft reset */ + mxt_write_object(data, MXT_GEN_COMMAND_T6, + MXT_COMMAND_RESET, 1); + msleep(MXT_RESET_TIME); + + /* Update matrix size at info struct */ + error = mxt_read_reg(client, MXT_MATRIX_X_SIZE, &val); + if (error) + goto err_free_object_table; + info->matrix_xsize = val; + + error = mxt_read_reg(client, MXT_MATRIX_Y_SIZE, &val); + if (error) + goto err_free_object_table; + info->matrix_ysize = val; + + dev_info(&client->dev, + "Family ID: %u Variant ID: %u Major.Minor.Build: %u.%u.%02X\n", + info->family_id, info->variant_id, info->version >> 4, + info->version & 0xf, info->build); + + dev_info(&client->dev, + "Matrix X Size: %u Matrix Y Size: %u Object Num: %u\n", + info->matrix_xsize, info->matrix_ysize, + info->object_num); + + return 0; + +err_free_object_table: + mxt_free_object_table(data); + return error; +} + +static void mxt_calc_resolution(struct mxt_data *data) +{ + unsigned int max_x = data->pdata->x_size - 1; + unsigned int max_y = data->pdata->y_size - 1; + + if (data->pdata->orient & MXT_XY_SWITCH) { + data->max_x = max_y; + data->max_y = max_x; + } else { + data->max_x = max_x; + data->max_y = max_y; + } +} + +/* Firmware Version is returned as Major.Minor.Build */ +static ssize_t mxt_fw_version_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct mxt_data *data = dev_get_drvdata(dev); + struct mxt_info *info = &data->info; + return scnprintf(buf, PAGE_SIZE, "%u.%u.%02X\n", + info->version >> 4, info->version & 0xf, info->build); +} + +/* Hardware Version is returned as FamilyID.VariantID */ +static ssize_t mxt_hw_version_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct mxt_data *data = dev_get_drvdata(dev); + struct mxt_info *info = &data->info; + return scnprintf(buf, PAGE_SIZE, "%u.%u\n", + info->family_id, info->variant_id); +} + +static ssize_t mxt_show_instance(char *buf, int count, + struct mxt_object *object, int instance, + const u8 *val) +{ + int i; + + if (object->instances > 0) + count += scnprintf(buf + count, PAGE_SIZE - count, + "Instance %u\n", instance); + + for (i = 0; i < object->size + 1; i++) + count += scnprintf(buf + count, PAGE_SIZE - count, + "\t[%2u]: %02x (%d)\n", i, val[i], val[i]); + count += scnprintf(buf + count, PAGE_SIZE - count, "\n"); + + return count; +} + +static ssize_t mxt_object_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct mxt_data *data = dev_get_drvdata(dev); + struct mxt_object *object; + int count = 0; + int i, j; + int error; + u8 *obuf; + + /* Pre-allocate buffer large enough to hold max sized object. */ + obuf = kmalloc(256, GFP_KERNEL); + if (!obuf) + return -ENOMEM; + + error = 0; + for (i = 0; i < data->info.object_num; i++) { + object = data->object_table + i; + + if (!mxt_object_readable(object->type)) + continue; + + count += scnprintf(buf + count, PAGE_SIZE - count, + "T%u:\n", object->type); + + for (j = 0; j < object->instances + 1; j++) { + u16 size = object->size + 1; + u16 addr = object->start_address + j * size; + + error = __mxt_read_reg(data->client, addr, size, obuf); + if (error) + goto done; + + count = mxt_show_instance(buf, count, object, j, obuf); + } + } + +done: + kfree(obuf); + return error ?: count; +} + +static int mxt_load_fw(struct device *dev, const char *fn) +{ + struct mxt_data *data = dev_get_drvdata(dev); + struct i2c_client *client = data->client; + const struct firmware *fw = NULL; + unsigned int frame_size; + unsigned int pos = 0; + int ret; + + ret = request_firmware(&fw, fn, dev); + if (ret) { + dev_err(dev, "Unable to open firmware %s\n", fn); + return ret; + } + + /* Change to the bootloader mode */ + mxt_write_object(data, MXT_GEN_COMMAND_T6, + MXT_COMMAND_RESET, MXT_BOOT_VALUE); + msleep(MXT_RESET_TIME); + + /* Change to slave address of bootloader */ + if (client->addr == MXT_APP_LOW) + client->addr = MXT_BOOT_LOW; + else + client->addr = MXT_BOOT_HIGH; + + ret = mxt_check_bootloader(client, MXT_WAITING_BOOTLOAD_CMD); + if (ret) + goto out; + + /* Unlock bootloader */ + mxt_unlock_bootloader(client); + + while (pos < fw->size) { + ret = mxt_check_bootloader(client, + MXT_WAITING_FRAME_DATA); + if (ret) + goto out; + + frame_size = ((*(fw->data + pos) << 8) | *(fw->data + pos + 1)); + + /* We should add 2 at frame size as the the firmware data is not + * included the CRC bytes. + */ + frame_size += 2; + + /* Write one frame to device */ + mxt_fw_write(client, fw->data + pos, frame_size); + + ret = mxt_check_bootloader(client, + MXT_FRAME_CRC_PASS); + if (ret) + goto out; + + pos += frame_size; + + dev_dbg(dev, "Updated %d bytes / %zd bytes\n", pos, fw->size); + } + +out: + release_firmware(fw); + + /* Change to slave address of application */ + if (client->addr == MXT_BOOT_LOW) + client->addr = MXT_APP_LOW; + else + client->addr = MXT_APP_HIGH; + + return ret; +} + +static ssize_t mxt_update_fw_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct mxt_data *data = dev_get_drvdata(dev); + int error; + + disable_irq(data->irq); + + error = mxt_load_fw(dev, MXT_FW_NAME); + if (error) { + dev_err(dev, "The firmware update failed(%d)\n", error); + count = error; + } else { + dev_dbg(dev, "The firmware update succeeded\n"); + + /* Wait for reset */ + msleep(MXT_FWRESET_TIME); + + mxt_free_object_table(data); + + mxt_initialize(data); + } + + enable_irq(data->irq); + + error = mxt_make_highchg(data); + if (error) + return error; + + return count; +} + +static DEVICE_ATTR(fw_version, S_IRUGO, mxt_fw_version_show, NULL); +static DEVICE_ATTR(hw_version, S_IRUGO, mxt_hw_version_show, NULL); +static DEVICE_ATTR(object, S_IRUGO, mxt_object_show, NULL); +static DEVICE_ATTR(update_fw, S_IWUSR, NULL, mxt_update_fw_store); + +static struct attribute *mxt_attrs[] = { + &dev_attr_fw_version.attr, + &dev_attr_hw_version.attr, + &dev_attr_object.attr, + &dev_attr_update_fw.attr, + NULL +}; + +static const struct attribute_group mxt_attr_group = { + .attrs = mxt_attrs, +}; + +static void mxt_start(struct mxt_data *data) +{ + /* Touch enable */ + mxt_write_object(data, + MXT_TOUCH_MULTI_T9, MXT_TOUCH_CTRL, 0x83); +} + +static void mxt_stop(struct mxt_data *data) +{ + /* Touch disable */ + mxt_write_object(data, + MXT_TOUCH_MULTI_T9, MXT_TOUCH_CTRL, 0); +} + +static int mxt_input_open(struct input_dev *dev) +{ + struct mxt_data *data = input_get_drvdata(dev); + + mxt_start(data); + + return 0; +} + +static void mxt_input_close(struct input_dev *dev) +{ + struct mxt_data *data = input_get_drvdata(dev); + + mxt_stop(data); +} + +static int mxt_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + const struct mxt_platform_data *pdata = client->dev.platform_data; + struct mxt_data *data; + struct input_dev *input_dev; + int error; + unsigned int num_mt_slots; + + if (!pdata) + return -EINVAL; + + data = kzalloc(sizeof(struct mxt_data), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!data || !input_dev) { + dev_err(&client->dev, "Failed to allocate memory\n"); + error = -ENOMEM; + goto err_free_mem; + } + + data->is_tp = pdata && pdata->is_tp; + + input_dev->name = (data->is_tp) ? "Atmel maXTouch Touchpad" : + "Atmel maXTouch Touchscreen"; + snprintf(data->phys, sizeof(data->phys), "i2c-%u-%04x/input0", + client->adapter->nr, client->addr); + + input_dev->phys = data->phys; + + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + input_dev->open = mxt_input_open; + input_dev->close = mxt_input_close; + + data->client = client; + data->input_dev = input_dev; + data->pdata = pdata; + data->irq = client->irq; + + mxt_calc_resolution(data); + + error = mxt_initialize(data); + if (error) + goto err_free_mem; + + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(BTN_TOUCH, input_dev->keybit); + + if (data->is_tp) { + int i; + __set_bit(INPUT_PROP_POINTER, input_dev->propbit); + __set_bit(INPUT_PROP_BUTTONPAD, input_dev->propbit); + + for (i = 0; i < MXT_NUM_GPIO; i++) + if (pdata->key_map[i] != KEY_RESERVED) + __set_bit(pdata->key_map[i], input_dev->keybit); + + __set_bit(BTN_TOOL_FINGER, input_dev->keybit); + __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit); + __set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit); + __set_bit(BTN_TOOL_QUADTAP, input_dev->keybit); + __set_bit(BTN_TOOL_QUINTTAP, input_dev->keybit); + + input_abs_set_res(input_dev, ABS_X, MXT_PIXELS_PER_MM); + input_abs_set_res(input_dev, ABS_Y, MXT_PIXELS_PER_MM); + input_abs_set_res(input_dev, ABS_MT_POSITION_X, + MXT_PIXELS_PER_MM); + input_abs_set_res(input_dev, ABS_MT_POSITION_Y, + MXT_PIXELS_PER_MM); + } + + /* For single touch */ + input_set_abs_params(input_dev, ABS_X, + 0, data->max_x, 0, 0); + input_set_abs_params(input_dev, ABS_Y, + 0, data->max_y, 0, 0); + input_set_abs_params(input_dev, ABS_PRESSURE, + 0, 255, 0, 0); + + /* For multi touch */ + num_mt_slots = data->T9_reportid_max - data->T9_reportid_min + 1; + error = input_mt_init_slots(input_dev, num_mt_slots, 0); + if (error) + goto err_free_object; + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, + 0, MXT_MAX_AREA, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_X, + 0, data->max_x, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, + 0, data->max_y, 0, 0); + input_set_abs_params(input_dev, ABS_MT_PRESSURE, + 0, 255, 0, 0); + + input_set_drvdata(input_dev, data); + i2c_set_clientdata(client, data); + + error = request_threaded_irq(client->irq, NULL, mxt_interrupt, + pdata->irqflags | IRQF_ONESHOT, + client->name, data); + if (error) { + dev_err(&client->dev, "Failed to register interrupt\n"); + goto err_free_object; + } + + error = mxt_make_highchg(data); + if (error) + goto err_free_irq; + + error = input_register_device(input_dev); + if (error) + goto err_free_irq; + + error = sysfs_create_group(&client->dev.kobj, &mxt_attr_group); + if (error) + goto err_unregister_device; + + return 0; + +err_unregister_device: + input_unregister_device(input_dev); + input_dev = NULL; +err_free_irq: + free_irq(client->irq, data); +err_free_object: + kfree(data->object_table); +err_free_mem: + input_free_device(input_dev); + kfree(data); + return error; +} + +static int mxt_remove(struct i2c_client *client) +{ + struct mxt_data *data = i2c_get_clientdata(client); + + sysfs_remove_group(&client->dev.kobj, &mxt_attr_group); + free_irq(data->irq, data); + input_unregister_device(data->input_dev); + kfree(data->object_table); + kfree(data); + + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int mxt_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct mxt_data *data = i2c_get_clientdata(client); + struct input_dev *input_dev = data->input_dev; + + mutex_lock(&input_dev->mutex); + + if (input_dev->users) + mxt_stop(data); + + mutex_unlock(&input_dev->mutex); + + return 0; +} + +static int mxt_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct mxt_data *data = i2c_get_clientdata(client); + struct input_dev *input_dev = data->input_dev; + + /* Soft reset */ + mxt_write_object(data, MXT_GEN_COMMAND_T6, + MXT_COMMAND_RESET, 1); + + msleep(MXT_RESET_TIME); + + mutex_lock(&input_dev->mutex); + + if (input_dev->users) + mxt_start(data); + + mutex_unlock(&input_dev->mutex); + + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(mxt_pm_ops, mxt_suspend, mxt_resume); + +static const struct i2c_device_id mxt_id[] = { + { "qt602240_ts", 0 }, + { "atmel_mxt_ts", 0 }, + { "atmel_mxt_tp", 0 }, + { "mXT224", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, mxt_id); + +static struct i2c_driver mxt_driver = { + .driver = { + .name = "atmel_mxt_ts", + .owner = THIS_MODULE, + .pm = &mxt_pm_ops, + }, + .probe = mxt_probe, + .remove = mxt_remove, + .id_table = mxt_id, +}; + +module_i2c_driver(mxt_driver); + +/* Module information */ +MODULE_AUTHOR("Joonyoung Shim "); +MODULE_DESCRIPTION("Atmel maXTouch Touchscreen driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/atmel_tsadcc.c b/drivers/input/touchscreen/atmel_tsadcc.c new file mode 100644 index 00000000..95f6785a --- /dev/null +++ b/drivers/input/touchscreen/atmel_tsadcc.c @@ -0,0 +1,359 @@ +/* + * Atmel Touch Screen Driver + * + * Copyright (c) 2008 ATMEL + * Copyright (c) 2008 Dan Liang + * Copyright (c) 2008 TimeSys Corporation + * Copyright (c) 2008 Justin Waters + * + * Based on touchscreen code from Atmel Corporation. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Register definitions based on AT91SAM9RL64 preliminary draft datasheet */ + +#define ATMEL_TSADCC_CR 0x00 /* Control register */ +#define ATMEL_TSADCC_SWRST (1 << 0) /* Software Reset*/ +#define ATMEL_TSADCC_START (1 << 1) /* Start conversion */ + +#define ATMEL_TSADCC_MR 0x04 /* Mode register */ +#define ATMEL_TSADCC_TSAMOD (3 << 0) /* ADC mode */ +#define ATMEL_TSADCC_TSAMOD_ADC_ONLY_MODE (0x0) /* ADC Mode */ +#define ATMEL_TSADCC_TSAMOD_TS_ONLY_MODE (0x1) /* Touch Screen Only Mode */ +#define ATMEL_TSADCC_LOWRES (1 << 4) /* Resolution selection */ +#define ATMEL_TSADCC_SLEEP (1 << 5) /* Sleep mode */ +#define ATMEL_TSADCC_PENDET (1 << 6) /* Pen Detect selection */ +#define ATMEL_TSADCC_PRES (1 << 7) /* Pressure Measurement Selection */ +#define ATMEL_TSADCC_PRESCAL (0x3f << 8) /* Prescalar Rate Selection */ +#define ATMEL_TSADCC_EPRESCAL (0xff << 8) /* Prescalar Rate Selection (Extended) */ +#define ATMEL_TSADCC_STARTUP (0x7f << 16) /* Start Up time */ +#define ATMEL_TSADCC_SHTIM (0xf << 24) /* Sample & Hold time */ +#define ATMEL_TSADCC_PENDBC (0xf << 28) /* Pen Detect debouncing time */ + +#define ATMEL_TSADCC_TRGR 0x08 /* Trigger register */ +#define ATMEL_TSADCC_TRGMOD (7 << 0) /* Trigger mode */ +#define ATMEL_TSADCC_TRGMOD_NONE (0 << 0) +#define ATMEL_TSADCC_TRGMOD_EXT_RISING (1 << 0) +#define ATMEL_TSADCC_TRGMOD_EXT_FALLING (2 << 0) +#define ATMEL_TSADCC_TRGMOD_EXT_ANY (3 << 0) +#define ATMEL_TSADCC_TRGMOD_PENDET (4 << 0) +#define ATMEL_TSADCC_TRGMOD_PERIOD (5 << 0) +#define ATMEL_TSADCC_TRGMOD_CONTINUOUS (6 << 0) +#define ATMEL_TSADCC_TRGPER (0xffff << 16) /* Trigger period */ + +#define ATMEL_TSADCC_TSR 0x0C /* Touch Screen register */ +#define ATMEL_TSADCC_TSFREQ (0xf << 0) /* TS Frequency in Interleaved mode */ +#define ATMEL_TSADCC_TSSHTIM (0xf << 24) /* Sample & Hold time */ + +#define ATMEL_TSADCC_CHER 0x10 /* Channel Enable register */ +#define ATMEL_TSADCC_CHDR 0x14 /* Channel Disable register */ +#define ATMEL_TSADCC_CHSR 0x18 /* Channel Status register */ +#define ATMEL_TSADCC_CH(n) (1 << (n)) /* Channel number */ + +#define ATMEL_TSADCC_SR 0x1C /* Status register */ +#define ATMEL_TSADCC_EOC(n) (1 << ((n)+0)) /* End of conversion for channel N */ +#define ATMEL_TSADCC_OVRE(n) (1 << ((n)+8)) /* Overrun error for channel N */ +#define ATMEL_TSADCC_DRDY (1 << 16) /* Data Ready */ +#define ATMEL_TSADCC_GOVRE (1 << 17) /* General Overrun Error */ +#define ATMEL_TSADCC_ENDRX (1 << 18) /* End of RX Buffer */ +#define ATMEL_TSADCC_RXBUFF (1 << 19) /* TX Buffer full */ +#define ATMEL_TSADCC_PENCNT (1 << 20) /* Pen contact */ +#define ATMEL_TSADCC_NOCNT (1 << 21) /* No contact */ + +#define ATMEL_TSADCC_LCDR 0x20 /* Last Converted Data register */ +#define ATMEL_TSADCC_DATA (0x3ff << 0) /* Channel data */ + +#define ATMEL_TSADCC_IER 0x24 /* Interrupt Enable register */ +#define ATMEL_TSADCC_IDR 0x28 /* Interrupt Disable register */ +#define ATMEL_TSADCC_IMR 0x2C /* Interrupt Mask register */ +#define ATMEL_TSADCC_CDR0 0x30 /* Channel Data 0 */ +#define ATMEL_TSADCC_CDR1 0x34 /* Channel Data 1 */ +#define ATMEL_TSADCC_CDR2 0x38 /* Channel Data 2 */ +#define ATMEL_TSADCC_CDR3 0x3C /* Channel Data 3 */ +#define ATMEL_TSADCC_CDR4 0x40 /* Channel Data 4 */ +#define ATMEL_TSADCC_CDR5 0x44 /* Channel Data 5 */ + +#define ATMEL_TSADCC_XPOS 0x50 +#define ATMEL_TSADCC_Z1DAT 0x54 +#define ATMEL_TSADCC_Z2DAT 0x58 + +#define PRESCALER_VAL(x) ((x) >> 8) + +#define ADC_DEFAULT_CLOCK 100000 + +struct atmel_tsadcc { + struct input_dev *input; + char phys[32]; + struct clk *clk; + int irq; + unsigned int prev_absx; + unsigned int prev_absy; + unsigned char bufferedmeasure; +}; + +static void __iomem *tsc_base; + +#define atmel_tsadcc_read(reg) __raw_readl(tsc_base + (reg)) +#define atmel_tsadcc_write(reg, val) __raw_writel((val), tsc_base + (reg)) + +static irqreturn_t atmel_tsadcc_interrupt(int irq, void *dev) +{ + struct atmel_tsadcc *ts_dev = (struct atmel_tsadcc *)dev; + struct input_dev *input_dev = ts_dev->input; + + unsigned int status; + unsigned int reg; + + status = atmel_tsadcc_read(ATMEL_TSADCC_SR); + status &= atmel_tsadcc_read(ATMEL_TSADCC_IMR); + + if (status & ATMEL_TSADCC_NOCNT) { + /* Contact lost */ + reg = atmel_tsadcc_read(ATMEL_TSADCC_MR) | ATMEL_TSADCC_PENDBC; + + atmel_tsadcc_write(ATMEL_TSADCC_MR, reg); + atmel_tsadcc_write(ATMEL_TSADCC_TRGR, ATMEL_TSADCC_TRGMOD_NONE); + atmel_tsadcc_write(ATMEL_TSADCC_IDR, + ATMEL_TSADCC_EOC(3) | ATMEL_TSADCC_NOCNT); + atmel_tsadcc_write(ATMEL_TSADCC_IER, ATMEL_TSADCC_PENCNT); + + input_report_key(input_dev, BTN_TOUCH, 0); + ts_dev->bufferedmeasure = 0; + input_sync(input_dev); + + } else if (status & ATMEL_TSADCC_PENCNT) { + /* Pen detected */ + reg = atmel_tsadcc_read(ATMEL_TSADCC_MR); + reg &= ~ATMEL_TSADCC_PENDBC; + + atmel_tsadcc_write(ATMEL_TSADCC_IDR, ATMEL_TSADCC_PENCNT); + atmel_tsadcc_write(ATMEL_TSADCC_MR, reg); + atmel_tsadcc_write(ATMEL_TSADCC_IER, + ATMEL_TSADCC_EOC(3) | ATMEL_TSADCC_NOCNT); + atmel_tsadcc_write(ATMEL_TSADCC_TRGR, + ATMEL_TSADCC_TRGMOD_PERIOD | (0x0FFF << 16)); + + } else if (status & ATMEL_TSADCC_EOC(3)) { + /* Conversion finished */ + + if (ts_dev->bufferedmeasure) { + /* Last measurement is always discarded, since it can + * be erroneous. + * Always report previous measurement */ + input_report_abs(input_dev, ABS_X, ts_dev->prev_absx); + input_report_abs(input_dev, ABS_Y, ts_dev->prev_absy); + input_report_key(input_dev, BTN_TOUCH, 1); + input_sync(input_dev); + } else + ts_dev->bufferedmeasure = 1; + + /* Now make new measurement */ + ts_dev->prev_absx = atmel_tsadcc_read(ATMEL_TSADCC_CDR3) << 10; + ts_dev->prev_absx /= atmel_tsadcc_read(ATMEL_TSADCC_CDR2); + + ts_dev->prev_absy = atmel_tsadcc_read(ATMEL_TSADCC_CDR1) << 10; + ts_dev->prev_absy /= atmel_tsadcc_read(ATMEL_TSADCC_CDR0); + } + + return IRQ_HANDLED; +} + +/* + * The functions for inserting/removing us as a module. + */ + +static int atmel_tsadcc_probe(struct platform_device *pdev) +{ + struct atmel_tsadcc *ts_dev; + struct input_dev *input_dev; + struct resource *res; + struct at91_tsadcc_data *pdata = pdev->dev.platform_data; + int err = 0; + unsigned int prsc; + unsigned int reg; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!res) { + dev_err(&pdev->dev, "no mmio resource defined.\n"); + return -ENXIO; + } + + /* Allocate memory for device */ + ts_dev = kzalloc(sizeof(struct atmel_tsadcc), GFP_KERNEL); + if (!ts_dev) { + dev_err(&pdev->dev, "failed to allocate memory.\n"); + return -ENOMEM; + } + platform_set_drvdata(pdev, ts_dev); + + input_dev = input_allocate_device(); + if (!input_dev) { + dev_err(&pdev->dev, "failed to allocate input device.\n"); + err = -EBUSY; + goto err_free_mem; + } + + ts_dev->irq = platform_get_irq(pdev, 0); + if (ts_dev->irq < 0) { + dev_err(&pdev->dev, "no irq ID is designated.\n"); + err = -ENODEV; + goto err_free_dev; + } + + if (!request_mem_region(res->start, resource_size(res), + "atmel tsadcc regs")) { + dev_err(&pdev->dev, "resources is unavailable.\n"); + err = -EBUSY; + goto err_free_dev; + } + + tsc_base = ioremap(res->start, resource_size(res)); + if (!tsc_base) { + dev_err(&pdev->dev, "failed to map registers.\n"); + err = -ENOMEM; + goto err_release_mem; + } + + err = request_irq(ts_dev->irq, atmel_tsadcc_interrupt, 0, + pdev->dev.driver->name, ts_dev); + if (err) { + dev_err(&pdev->dev, "failed to allocate irq.\n"); + goto err_unmap_regs; + } + + ts_dev->clk = clk_get(&pdev->dev, "tsc_clk"); + if (IS_ERR(ts_dev->clk)) { + dev_err(&pdev->dev, "failed to get ts_clk\n"); + err = PTR_ERR(ts_dev->clk); + goto err_free_irq; + } + + ts_dev->input = input_dev; + ts_dev->bufferedmeasure = 0; + + snprintf(ts_dev->phys, sizeof(ts_dev->phys), + "%s/input0", dev_name(&pdev->dev)); + + input_dev->name = "atmel touch screen controller"; + input_dev->phys = ts_dev->phys; + input_dev->dev.parent = &pdev->dev; + + __set_bit(EV_ABS, input_dev->evbit); + input_set_abs_params(input_dev, ABS_X, 0, 0x3FF, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 0, 0x3FF, 0, 0); + + input_set_capability(input_dev, EV_KEY, BTN_TOUCH); + + /* clk_enable() always returns 0, no need to check it */ + clk_enable(ts_dev->clk); + + prsc = clk_get_rate(ts_dev->clk); + dev_info(&pdev->dev, "Master clock is set at: %d Hz\n", prsc); + + if (!pdata) + goto err_fail; + + if (!pdata->adc_clock) + pdata->adc_clock = ADC_DEFAULT_CLOCK; + + prsc = (prsc / (2 * pdata->adc_clock)) - 1; + + /* saturate if this value is too high */ + if (cpu_is_at91sam9rl()) { + if (prsc > PRESCALER_VAL(ATMEL_TSADCC_PRESCAL)) + prsc = PRESCALER_VAL(ATMEL_TSADCC_PRESCAL); + } else { + if (prsc > PRESCALER_VAL(ATMEL_TSADCC_EPRESCAL)) + prsc = PRESCALER_VAL(ATMEL_TSADCC_EPRESCAL); + } + + dev_info(&pdev->dev, "Prescaler is set at: %d\n", prsc); + + reg = ATMEL_TSADCC_TSAMOD_TS_ONLY_MODE | + ((0x00 << 5) & ATMEL_TSADCC_SLEEP) | /* Normal Mode */ + ((0x01 << 6) & ATMEL_TSADCC_PENDET) | /* Enable Pen Detect */ + (prsc << 8) | + ((0x26 << 16) & ATMEL_TSADCC_STARTUP) | + ((pdata->pendet_debounce << 28) & ATMEL_TSADCC_PENDBC); + + atmel_tsadcc_write(ATMEL_TSADCC_CR, ATMEL_TSADCC_SWRST); + atmel_tsadcc_write(ATMEL_TSADCC_MR, reg); + atmel_tsadcc_write(ATMEL_TSADCC_TRGR, ATMEL_TSADCC_TRGMOD_NONE); + atmel_tsadcc_write(ATMEL_TSADCC_TSR, + (pdata->ts_sample_hold_time << 24) & ATMEL_TSADCC_TSSHTIM); + + atmel_tsadcc_read(ATMEL_TSADCC_SR); + atmel_tsadcc_write(ATMEL_TSADCC_IER, ATMEL_TSADCC_PENCNT); + + /* All went ok, so register to the input system */ + err = input_register_device(input_dev); + if (err) + goto err_fail; + + return 0; + +err_fail: + clk_disable(ts_dev->clk); + clk_put(ts_dev->clk); +err_free_irq: + free_irq(ts_dev->irq, ts_dev); +err_unmap_regs: + iounmap(tsc_base); +err_release_mem: + release_mem_region(res->start, resource_size(res)); +err_free_dev: + input_free_device(input_dev); +err_free_mem: + kfree(ts_dev); + return err; +} + +static int atmel_tsadcc_remove(struct platform_device *pdev) +{ + struct atmel_tsadcc *ts_dev = dev_get_drvdata(&pdev->dev); + struct resource *res; + + free_irq(ts_dev->irq, ts_dev); + + input_unregister_device(ts_dev->input); + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + iounmap(tsc_base); + release_mem_region(res->start, resource_size(res)); + + clk_disable(ts_dev->clk); + clk_put(ts_dev->clk); + + kfree(ts_dev); + + return 0; +} + +static struct platform_driver atmel_tsadcc_driver = { + .probe = atmel_tsadcc_probe, + .remove = atmel_tsadcc_remove, + .driver = { + .name = "atmel_tsadcc", + }, +}; +module_platform_driver(atmel_tsadcc_driver); + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Atmel TouchScreen Driver"); +MODULE_AUTHOR("Dan Liang "); + diff --git a/drivers/input/touchscreen/auo-pixcir-ts.c b/drivers/input/touchscreen/auo-pixcir-ts.c new file mode 100644 index 00000000..d3f9f6b0 --- /dev/null +++ b/drivers/input/touchscreen/auo-pixcir-ts.c @@ -0,0 +1,704 @@ +/* + * Driver for AUO in-cell touchscreens + * + * Copyright (c) 2011 Heiko Stuebner + * + * loosely based on auo_touch.c from Dell Streak vendor-kernel + * + * Copyright (c) 2008 QUALCOMM Incorporated. + * Copyright (c) 2008 QUALCOMM USA, INC. + * + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Coordinate calculation: + * X1 = X1_LSB + X1_MSB*256 + * Y1 = Y1_LSB + Y1_MSB*256 + * X2 = X2_LSB + X2_MSB*256 + * Y2 = Y2_LSB + Y2_MSB*256 + */ +#define AUO_PIXCIR_REG_X1_LSB 0x00 +#define AUO_PIXCIR_REG_X1_MSB 0x01 +#define AUO_PIXCIR_REG_Y1_LSB 0x02 +#define AUO_PIXCIR_REG_Y1_MSB 0x03 +#define AUO_PIXCIR_REG_X2_LSB 0x04 +#define AUO_PIXCIR_REG_X2_MSB 0x05 +#define AUO_PIXCIR_REG_Y2_LSB 0x06 +#define AUO_PIXCIR_REG_Y2_MSB 0x07 + +#define AUO_PIXCIR_REG_STRENGTH 0x0d +#define AUO_PIXCIR_REG_STRENGTH_X1_LSB 0x0e +#define AUO_PIXCIR_REG_STRENGTH_X1_MSB 0x0f + +#define AUO_PIXCIR_REG_RAW_DATA_X 0x2b +#define AUO_PIXCIR_REG_RAW_DATA_Y 0x4f + +#define AUO_PIXCIR_REG_X_SENSITIVITY 0x6f +#define AUO_PIXCIR_REG_Y_SENSITIVITY 0x70 +#define AUO_PIXCIR_REG_INT_SETTING 0x71 +#define AUO_PIXCIR_REG_INT_WIDTH 0x72 +#define AUO_PIXCIR_REG_POWER_MODE 0x73 + +#define AUO_PIXCIR_REG_VERSION 0x77 +#define AUO_PIXCIR_REG_CALIBRATE 0x78 + +#define AUO_PIXCIR_REG_TOUCHAREA_X1 0x1e +#define AUO_PIXCIR_REG_TOUCHAREA_Y1 0x1f +#define AUO_PIXCIR_REG_TOUCHAREA_X2 0x20 +#define AUO_PIXCIR_REG_TOUCHAREA_Y2 0x21 + +#define AUO_PIXCIR_REG_EEPROM_CALIB_X 0x42 +#define AUO_PIXCIR_REG_EEPROM_CALIB_Y 0xad + +#define AUO_PIXCIR_INT_TPNUM_MASK 0xe0 +#define AUO_PIXCIR_INT_TPNUM_SHIFT 5 +#define AUO_PIXCIR_INT_RELEASE (1 << 4) +#define AUO_PIXCIR_INT_ENABLE (1 << 3) +#define AUO_PIXCIR_INT_POL_HIGH (1 << 2) +#define AUO_PIXCIR_INT_MODE_MASK 0x03 + +/* + * Power modes: + * active: scan speed 60Hz + * sleep: scan speed 10Hz can be auto-activated, wakeup on 1st touch + * deep sleep: scan speed 1Hz can only be entered or left manually. + */ +#define AUO_PIXCIR_POWER_ACTIVE 0x00 +#define AUO_PIXCIR_POWER_SLEEP 0x01 +#define AUO_PIXCIR_POWER_DEEP_SLEEP 0x02 +#define AUO_PIXCIR_POWER_MASK 0x03 + +#define AUO_PIXCIR_POWER_ALLOW_SLEEP (1 << 2) +#define AUO_PIXCIR_POWER_IDLE_TIME(ms) ((ms & 0xf) << 4) + +#define AUO_PIXCIR_CALIBRATE 0x03 + +#define AUO_PIXCIR_EEPROM_CALIB_X_LEN 62 +#define AUO_PIXCIR_EEPROM_CALIB_Y_LEN 36 + +#define AUO_PIXCIR_RAW_DATA_X_LEN 18 +#define AUO_PIXCIR_RAW_DATA_Y_LEN 11 + +#define AUO_PIXCIR_STRENGTH_ENABLE (1 << 0) + +/* Touchscreen absolute values */ +#define AUO_PIXCIR_REPORT_POINTS 2 +#define AUO_PIXCIR_MAX_AREA 0xff +#define AUO_PIXCIR_PENUP_TIMEOUT_MS 10 + +struct auo_pixcir_ts { + struct i2c_client *client; + struct input_dev *input; + const struct auo_pixcir_ts_platdata *pdata; + char phys[32]; + + /* special handling for touch_indicate interupt mode */ + bool touch_ind_mode; + + wait_queue_head_t wait; + bool stopped; +}; + +struct auo_point_t { + int coord_x; + int coord_y; + int area_major; + int area_minor; + int orientation; +}; + +static int auo_pixcir_collect_data(struct auo_pixcir_ts *ts, + struct auo_point_t *point) +{ + struct i2c_client *client = ts->client; + const struct auo_pixcir_ts_platdata *pdata = ts->pdata; + uint8_t raw_coord[8]; + uint8_t raw_area[4]; + int i, ret; + + /* touch coordinates */ + ret = i2c_smbus_read_i2c_block_data(client, AUO_PIXCIR_REG_X1_LSB, + 8, raw_coord); + if (ret < 0) { + dev_err(&client->dev, "failed to read coordinate, %d\n", ret); + return ret; + } + + /* touch area */ + ret = i2c_smbus_read_i2c_block_data(client, AUO_PIXCIR_REG_TOUCHAREA_X1, + 4, raw_area); + if (ret < 0) { + dev_err(&client->dev, "could not read touch area, %d\n", ret); + return ret; + } + + for (i = 0; i < AUO_PIXCIR_REPORT_POINTS; i++) { + point[i].coord_x = + raw_coord[4 * i + 1] << 8 | raw_coord[4 * i]; + point[i].coord_y = + raw_coord[4 * i + 3] << 8 | raw_coord[4 * i + 2]; + + if (point[i].coord_x > pdata->x_max || + point[i].coord_y > pdata->y_max) { + dev_warn(&client->dev, "coordinates (%d,%d) invalid\n", + point[i].coord_x, point[i].coord_y); + point[i].coord_x = point[i].coord_y = 0; + } + + /* determine touch major, minor and orientation */ + point[i].area_major = max(raw_area[2 * i], raw_area[2 * i + 1]); + point[i].area_minor = min(raw_area[2 * i], raw_area[2 * i + 1]); + point[i].orientation = raw_area[2 * i] > raw_area[2 * i + 1]; + } + + return 0; +} + +static irqreturn_t auo_pixcir_interrupt(int irq, void *dev_id) +{ + struct auo_pixcir_ts *ts = dev_id; + const struct auo_pixcir_ts_platdata *pdata = ts->pdata; + struct auo_point_t point[AUO_PIXCIR_REPORT_POINTS]; + int i; + int ret; + int fingers = 0; + int abs = -1; + + while (!ts->stopped) { + + /* check for up event in touch touch_ind_mode */ + if (ts->touch_ind_mode) { + if (gpio_get_value(pdata->gpio_int) == 0) { + input_mt_sync(ts->input); + input_report_key(ts->input, BTN_TOUCH, 0); + input_sync(ts->input); + break; + } + } + + ret = auo_pixcir_collect_data(ts, point); + if (ret < 0) { + /* we want to loop only in touch_ind_mode */ + if (!ts->touch_ind_mode) + break; + + wait_event_timeout(ts->wait, ts->stopped, + msecs_to_jiffies(AUO_PIXCIR_PENUP_TIMEOUT_MS)); + continue; + } + + for (i = 0; i < AUO_PIXCIR_REPORT_POINTS; i++) { + if (point[i].coord_x > 0 || point[i].coord_y > 0) { + input_report_abs(ts->input, ABS_MT_POSITION_X, + point[i].coord_x); + input_report_abs(ts->input, ABS_MT_POSITION_Y, + point[i].coord_y); + input_report_abs(ts->input, ABS_MT_TOUCH_MAJOR, + point[i].area_major); + input_report_abs(ts->input, ABS_MT_TOUCH_MINOR, + point[i].area_minor); + input_report_abs(ts->input, ABS_MT_ORIENTATION, + point[i].orientation); + input_mt_sync(ts->input); + + /* use first finger as source for singletouch */ + if (fingers == 0) + abs = i; + + /* number of touch points could also be queried + * via i2c but would require an additional call + */ + fingers++; + } + } + + input_report_key(ts->input, BTN_TOUCH, fingers > 0); + + if (abs > -1) { + input_report_abs(ts->input, ABS_X, point[abs].coord_x); + input_report_abs(ts->input, ABS_Y, point[abs].coord_y); + } + + input_sync(ts->input); + + /* we want to loop only in touch_ind_mode */ + if (!ts->touch_ind_mode) + break; + + wait_event_timeout(ts->wait, ts->stopped, + msecs_to_jiffies(AUO_PIXCIR_PENUP_TIMEOUT_MS)); + } + + return IRQ_HANDLED; +} + +/* + * Set the power mode of the device. + * Valid modes are + * - AUO_PIXCIR_POWER_ACTIVE + * - AUO_PIXCIR_POWER_SLEEP - automatically left on first touch + * - AUO_PIXCIR_POWER_DEEP_SLEEP + */ +static int auo_pixcir_power_mode(struct auo_pixcir_ts *ts, int mode) +{ + struct i2c_client *client = ts->client; + int ret; + + ret = i2c_smbus_read_byte_data(client, AUO_PIXCIR_REG_POWER_MODE); + if (ret < 0) { + dev_err(&client->dev, "unable to read reg %Xh, %d\n", + AUO_PIXCIR_REG_POWER_MODE, ret); + return ret; + } + + ret &= ~AUO_PIXCIR_POWER_MASK; + ret |= mode; + + ret = i2c_smbus_write_byte_data(client, AUO_PIXCIR_REG_POWER_MODE, ret); + if (ret) { + dev_err(&client->dev, "unable to write reg %Xh, %d\n", + AUO_PIXCIR_REG_POWER_MODE, ret); + return ret; + } + + return 0; +} + +static int auo_pixcir_int_config(struct auo_pixcir_ts *ts, + int int_setting) +{ + struct i2c_client *client = ts->client; + const struct auo_pixcir_ts_platdata *pdata = ts->pdata; + int ret; + + ret = i2c_smbus_read_byte_data(client, AUO_PIXCIR_REG_INT_SETTING); + if (ret < 0) { + dev_err(&client->dev, "unable to read reg %Xh, %d\n", + AUO_PIXCIR_REG_INT_SETTING, ret); + return ret; + } + + ret &= ~AUO_PIXCIR_INT_MODE_MASK; + ret |= int_setting; + ret |= AUO_PIXCIR_INT_POL_HIGH; /* always use high for interrupts */ + + ret = i2c_smbus_write_byte_data(client, AUO_PIXCIR_REG_INT_SETTING, + ret); + if (ret < 0) { + dev_err(&client->dev, "unable to write reg %Xh, %d\n", + AUO_PIXCIR_REG_INT_SETTING, ret); + return ret; + } + + ts->touch_ind_mode = pdata->int_setting == AUO_PIXCIR_INT_TOUCH_IND; + + return 0; +} + +/* control the generation of interrupts on the device side */ +static int auo_pixcir_int_toggle(struct auo_pixcir_ts *ts, bool enable) +{ + struct i2c_client *client = ts->client; + int ret; + + ret = i2c_smbus_read_byte_data(client, AUO_PIXCIR_REG_INT_SETTING); + if (ret < 0) { + dev_err(&client->dev, "unable to read reg %Xh, %d\n", + AUO_PIXCIR_REG_INT_SETTING, ret); + return ret; + } + + if (enable) + ret |= AUO_PIXCIR_INT_ENABLE; + else + ret &= ~AUO_PIXCIR_INT_ENABLE; + + ret = i2c_smbus_write_byte_data(client, AUO_PIXCIR_REG_INT_SETTING, + ret); + if (ret < 0) { + dev_err(&client->dev, "unable to write reg %Xh, %d\n", + AUO_PIXCIR_REG_INT_SETTING, ret); + return ret; + } + + return 0; +} + +static int auo_pixcir_start(struct auo_pixcir_ts *ts) +{ + struct i2c_client *client = ts->client; + int ret; + + ret = auo_pixcir_power_mode(ts, AUO_PIXCIR_POWER_ACTIVE); + if (ret < 0) { + dev_err(&client->dev, "could not set power mode, %d\n", + ret); + return ret; + } + + ts->stopped = false; + mb(); + enable_irq(client->irq); + + ret = auo_pixcir_int_toggle(ts, 1); + if (ret < 0) { + dev_err(&client->dev, "could not enable interrupt, %d\n", + ret); + disable_irq(client->irq); + return ret; + } + + return 0; +} + +static int auo_pixcir_stop(struct auo_pixcir_ts *ts) +{ + struct i2c_client *client = ts->client; + int ret; + + ret = auo_pixcir_int_toggle(ts, 0); + if (ret < 0) { + dev_err(&client->dev, "could not disable interrupt, %d\n", + ret); + return ret; + } + + /* disable receiving of interrupts */ + disable_irq(client->irq); + ts->stopped = true; + mb(); + wake_up(&ts->wait); + + return auo_pixcir_power_mode(ts, AUO_PIXCIR_POWER_DEEP_SLEEP); +} + +static int auo_pixcir_input_open(struct input_dev *dev) +{ + struct auo_pixcir_ts *ts = input_get_drvdata(dev); + int ret; + + ret = auo_pixcir_start(ts); + if (ret) + return ret; + + return 0; +} + +static void auo_pixcir_input_close(struct input_dev *dev) +{ + struct auo_pixcir_ts *ts = input_get_drvdata(dev); + + auo_pixcir_stop(ts); + + return; +} + +#ifdef CONFIG_PM_SLEEP +static int auo_pixcir_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct auo_pixcir_ts *ts = i2c_get_clientdata(client); + struct input_dev *input = ts->input; + int ret = 0; + + mutex_lock(&input->mutex); + + /* when configured as wakeup source, device should always wake system + * therefore start device if necessary + */ + if (device_may_wakeup(&client->dev)) { + /* need to start device if not open, to be wakeup source */ + if (!input->users) { + ret = auo_pixcir_start(ts); + if (ret) + goto unlock; + } + + enable_irq_wake(client->irq); + ret = auo_pixcir_power_mode(ts, AUO_PIXCIR_POWER_SLEEP); + } else if (input->users) { + ret = auo_pixcir_stop(ts); + } + +unlock: + mutex_unlock(&input->mutex); + + return ret; +} + +static int auo_pixcir_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct auo_pixcir_ts *ts = i2c_get_clientdata(client); + struct input_dev *input = ts->input; + int ret = 0; + + mutex_lock(&input->mutex); + + if (device_may_wakeup(&client->dev)) { + disable_irq_wake(client->irq); + + /* need to stop device if it was not open on suspend */ + if (!input->users) { + ret = auo_pixcir_stop(ts); + if (ret) + goto unlock; + } + + /* device wakes automatically from SLEEP */ + } else if (input->users) { + ret = auo_pixcir_start(ts); + } + +unlock: + mutex_unlock(&input->mutex); + + return ret; +} +#endif + +static SIMPLE_DEV_PM_OPS(auo_pixcir_pm_ops, + auo_pixcir_suspend, auo_pixcir_resume); + +#ifdef CONFIG_OF +static struct auo_pixcir_ts_platdata *auo_pixcir_parse_dt(struct device *dev) +{ + struct auo_pixcir_ts_platdata *pdata; + struct device_node *np = dev->of_node; + + if (!np) + return ERR_PTR(-ENOENT); + + pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL); + if (!pdata) { + dev_err(dev, "failed to allocate platform data\n"); + return ERR_PTR(-ENOMEM); + } + + pdata->gpio_int = of_get_gpio(np, 0); + if (!gpio_is_valid(pdata->gpio_int)) { + dev_err(dev, "failed to get interrupt gpio\n"); + return ERR_PTR(-EINVAL); + } + + pdata->gpio_rst = of_get_gpio(np, 1); + if (!gpio_is_valid(pdata->gpio_rst)) { + dev_err(dev, "failed to get reset gpio\n"); + return ERR_PTR(-EINVAL); + } + + if (of_property_read_u32(np, "x-size", &pdata->x_max)) { + dev_err(dev, "failed to get x-size property\n"); + return ERR_PTR(-EINVAL); + } + + if (of_property_read_u32(np, "y-size", &pdata->y_max)) { + dev_err(dev, "failed to get y-size property\n"); + return ERR_PTR(-EINVAL); + } + + /* default to asserting the interrupt when the screen is touched */ + pdata->int_setting = AUO_PIXCIR_INT_TOUCH_IND; + + return pdata; +} +#else +static struct auo_pixcir_ts_platdata *auo_pixcir_parse_dt(struct device *dev) +{ + return ERR_PTR(-EINVAL); +} +#endif + +static void auo_pixcir_reset(void *data) +{ + struct auo_pixcir_ts *ts = data; + + gpio_set_value(ts->pdata->gpio_rst, 0); +} + +static int auo_pixcir_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + const struct auo_pixcir_ts_platdata *pdata; + struct auo_pixcir_ts *ts; + struct input_dev *input_dev; + int version; + int error; + + pdata = dev_get_platdata(&client->dev); + if (!pdata) { + pdata = auo_pixcir_parse_dt(&client->dev); + if (IS_ERR(pdata)) + return PTR_ERR(pdata); + } + + ts = devm_kzalloc(&client->dev, + sizeof(struct auo_pixcir_ts), GFP_KERNEL); + if (!ts) + return -ENOMEM; + + input_dev = devm_input_allocate_device(&client->dev); + if (!input_dev) { + dev_err(&client->dev, "could not allocate input device\n"); + return -ENOMEM; + } + + ts->pdata = pdata; + ts->client = client; + ts->input = input_dev; + ts->touch_ind_mode = 0; + ts->stopped = true; + init_waitqueue_head(&ts->wait); + + snprintf(ts->phys, sizeof(ts->phys), + "%s/input0", dev_name(&client->dev)); + + input_dev->name = "AUO-Pixcir touchscreen"; + input_dev->phys = ts->phys; + input_dev->id.bustype = BUS_I2C; + + input_dev->open = auo_pixcir_input_open; + input_dev->close = auo_pixcir_input_close; + + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(EV_KEY, input_dev->evbit); + + __set_bit(BTN_TOUCH, input_dev->keybit); + + /* For single touch */ + input_set_abs_params(input_dev, ABS_X, 0, pdata->x_max, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 0, pdata->y_max, 0, 0); + + /* For multi touch */ + input_set_abs_params(input_dev, ABS_MT_POSITION_X, 0, + pdata->x_max, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, 0, + pdata->y_max, 0, 0); + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, + AUO_PIXCIR_MAX_AREA, 0, 0); + input_set_abs_params(input_dev, ABS_MT_TOUCH_MINOR, 0, + AUO_PIXCIR_MAX_AREA, 0, 0); + input_set_abs_params(input_dev, ABS_MT_ORIENTATION, 0, 1, 0, 0); + + input_set_drvdata(ts->input, ts); + + error = devm_gpio_request_one(&client->dev, pdata->gpio_int, + GPIOF_DIR_IN, "auo_pixcir_ts_int"); + if (error) { + dev_err(&client->dev, "request of gpio %d failed, %d\n", + pdata->gpio_int, error); + return error; + } + + error = devm_gpio_request_one(&client->dev, pdata->gpio_rst, + GPIOF_DIR_OUT | GPIOF_INIT_HIGH, + "auo_pixcir_ts_rst"); + if (error) { + dev_err(&client->dev, "request of gpio %d failed, %d\n", + pdata->gpio_rst, error); + return error; + } + + error = devm_add_action(&client->dev, auo_pixcir_reset, ts); + if (error) { + auo_pixcir_reset(ts); + dev_err(&client->dev, "failed to register reset action, %d\n", + error); + return error; + } + + msleep(200); + + version = i2c_smbus_read_byte_data(client, AUO_PIXCIR_REG_VERSION); + if (version < 0) { + error = version; + return error; + } + + dev_info(&client->dev, "firmware version 0x%X\n", version); + + error = auo_pixcir_int_config(ts, pdata->int_setting); + if (error) + return error; + + error = devm_request_threaded_irq(&client->dev, client->irq, + NULL, auo_pixcir_interrupt, + IRQF_TRIGGER_RISING | IRQF_ONESHOT, + input_dev->name, ts); + if (error) { + dev_err(&client->dev, "irq %d requested failed, %d\n", + client->irq, error); + return error; + } + + /* stop device and put it into deep sleep until it is opened */ + error = auo_pixcir_stop(ts); + if (error) + return error; + + error = input_register_device(input_dev); + if (error) { + dev_err(&client->dev, "could not register input device, %d\n", + error); + return error; + } + + i2c_set_clientdata(client, ts); + + return 0; +} + +static const struct i2c_device_id auo_pixcir_idtable[] = { + { "auo_pixcir_ts", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, auo_pixcir_idtable); + +#ifdef CONFIG_OF +static struct of_device_id auo_pixcir_ts_dt_idtable[] = { + { .compatible = "auo,auo_pixcir_ts" }, + {}, +}; +MODULE_DEVICE_TABLE(of, auo_pixcir_ts_dt_idtable); +#endif + +static struct i2c_driver auo_pixcir_driver = { + .driver = { + .owner = THIS_MODULE, + .name = "auo_pixcir_ts", + .pm = &auo_pixcir_pm_ops, + .of_match_table = of_match_ptr(auo_pixcir_ts_dt_idtable), + }, + .probe = auo_pixcir_probe, + .id_table = auo_pixcir_idtable, +}; + +module_i2c_driver(auo_pixcir_driver); + +MODULE_DESCRIPTION("AUO-PIXCIR touchscreen driver"); +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Heiko Stuebner "); diff --git a/drivers/input/touchscreen/bu21013_ts.c b/drivers/input/touchscreen/bu21013_ts.c new file mode 100644 index 00000000..b9b5ddad --- /dev/null +++ b/drivers/input/touchscreen/bu21013_ts.c @@ -0,0 +1,733 @@ +/* + * Copyright (C) ST-Ericsson SA 2010 + * Author: Naveen Kumar G for ST-Ericsson + * License terms:GNU General Public License (GPL) version 2 + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define PEN_DOWN_INTR 0 +#define MAX_FINGERS 2 +#define RESET_DELAY 30 +#define PENUP_TIMEOUT (10) +#define DELTA_MIN 16 +#define MASK_BITS 0x03 +#define SHIFT_8 8 +#define SHIFT_2 2 +#define LENGTH_OF_BUFFER 11 +#define I2C_RETRY_COUNT 5 + +#define BU21013_SENSORS_BTN_0_7_REG 0x70 +#define BU21013_SENSORS_BTN_8_15_REG 0x71 +#define BU21013_SENSORS_BTN_16_23_REG 0x72 +#define BU21013_X1_POS_MSB_REG 0x73 +#define BU21013_X1_POS_LSB_REG 0x74 +#define BU21013_Y1_POS_MSB_REG 0x75 +#define BU21013_Y1_POS_LSB_REG 0x76 +#define BU21013_X2_POS_MSB_REG 0x77 +#define BU21013_X2_POS_LSB_REG 0x78 +#define BU21013_Y2_POS_MSB_REG 0x79 +#define BU21013_Y2_POS_LSB_REG 0x7A +#define BU21013_INT_CLR_REG 0xE8 +#define BU21013_INT_MODE_REG 0xE9 +#define BU21013_GAIN_REG 0xEA +#define BU21013_OFFSET_MODE_REG 0xEB +#define BU21013_XY_EDGE_REG 0xEC +#define BU21013_RESET_REG 0xED +#define BU21013_CALIB_REG 0xEE +#define BU21013_DONE_REG 0xEF +#define BU21013_SENSOR_0_7_REG 0xF0 +#define BU21013_SENSOR_8_15_REG 0xF1 +#define BU21013_SENSOR_16_23_REG 0xF2 +#define BU21013_POS_MODE1_REG 0xF3 +#define BU21013_POS_MODE2_REG 0xF4 +#define BU21013_CLK_MODE_REG 0xF5 +#define BU21013_IDLE_REG 0xFA +#define BU21013_FILTER_REG 0xFB +#define BU21013_TH_ON_REG 0xFC +#define BU21013_TH_OFF_REG 0xFD + + +#define BU21013_RESET_ENABLE 0x01 + +#define BU21013_SENSORS_EN_0_7 0x3F +#define BU21013_SENSORS_EN_8_15 0xFC +#define BU21013_SENSORS_EN_16_23 0x1F + +#define BU21013_POS_MODE1_0 0x02 +#define BU21013_POS_MODE1_1 0x04 +#define BU21013_POS_MODE1_2 0x08 + +#define BU21013_POS_MODE2_ZERO 0x01 +#define BU21013_POS_MODE2_AVG1 0x02 +#define BU21013_POS_MODE2_AVG2 0x04 +#define BU21013_POS_MODE2_EN_XY 0x08 +#define BU21013_POS_MODE2_EN_RAW 0x10 +#define BU21013_POS_MODE2_MULTI 0x80 + +#define BU21013_CLK_MODE_DIV 0x01 +#define BU21013_CLK_MODE_EXT 0x02 +#define BU21013_CLK_MODE_CALIB 0x80 + +#define BU21013_IDLET_0 0x01 +#define BU21013_IDLET_1 0x02 +#define BU21013_IDLET_2 0x04 +#define BU21013_IDLET_3 0x08 +#define BU21013_IDLE_INTERMIT_EN 0x10 + +#define BU21013_DELTA_0_6 0x7F +#define BU21013_FILTER_EN 0x80 + +#define BU21013_INT_MODE_LEVEL 0x00 +#define BU21013_INT_MODE_EDGE 0x01 + +#define BU21013_GAIN_0 0x01 +#define BU21013_GAIN_1 0x02 +#define BU21013_GAIN_2 0x04 + +#define BU21013_OFFSET_MODE_DEFAULT 0x00 +#define BU21013_OFFSET_MODE_MOVE 0x01 +#define BU21013_OFFSET_MODE_DISABLE 0x02 + +#define BU21013_TH_ON_0 0x01 +#define BU21013_TH_ON_1 0x02 +#define BU21013_TH_ON_2 0x04 +#define BU21013_TH_ON_3 0x08 +#define BU21013_TH_ON_4 0x10 +#define BU21013_TH_ON_5 0x20 +#define BU21013_TH_ON_6 0x40 +#define BU21013_TH_ON_7 0x80 +#define BU21013_TH_ON_MAX 0xFF + +#define BU21013_TH_OFF_0 0x01 +#define BU21013_TH_OFF_1 0x02 +#define BU21013_TH_OFF_2 0x04 +#define BU21013_TH_OFF_3 0x08 +#define BU21013_TH_OFF_4 0x10 +#define BU21013_TH_OFF_5 0x20 +#define BU21013_TH_OFF_6 0x40 +#define BU21013_TH_OFF_7 0x80 +#define BU21013_TH_OFF_MAX 0xFF + +#define BU21013_X_EDGE_0 0x01 +#define BU21013_X_EDGE_1 0x02 +#define BU21013_X_EDGE_2 0x04 +#define BU21013_X_EDGE_3 0x08 +#define BU21013_Y_EDGE_0 0x10 +#define BU21013_Y_EDGE_1 0x20 +#define BU21013_Y_EDGE_2 0x40 +#define BU21013_Y_EDGE_3 0x80 + +#define BU21013_DONE 0x01 +#define BU21013_NUMBER_OF_X_SENSORS (6) +#define BU21013_NUMBER_OF_Y_SENSORS (11) + +#define DRIVER_TP "bu21013_tp" + +/** + * struct bu21013_ts_data - touch panel data structure + * @client: pointer to the i2c client + * @wait: variable to wait_queue_head_t structure + * @touch_stopped: touch stop flag + * @chip: pointer to the touch panel controller + * @in_dev: pointer to the input device structure + * @intr_pin: interrupt pin value + * @regulator: pointer to the Regulator used for touch screen + * + * Touch panel device data structure + */ +struct bu21013_ts_data { + struct i2c_client *client; + wait_queue_head_t wait; + const struct bu21013_platform_device *chip; + struct input_dev *in_dev; + struct regulator *regulator; + unsigned int irq; + unsigned int intr_pin; + bool touch_stopped; +}; + +/** + * bu21013_read_block_data(): read the touch co-ordinates + * @data: bu21013_ts_data structure pointer + * @buf: byte pointer + * + * Read the touch co-ordinates using i2c read block into buffer + * and returns integer. + */ +static int bu21013_read_block_data(struct bu21013_ts_data *data, u8 *buf) +{ + int ret, i; + + for (i = 0; i < I2C_RETRY_COUNT; i++) { + ret = i2c_smbus_read_i2c_block_data + (data->client, BU21013_SENSORS_BTN_0_7_REG, + LENGTH_OF_BUFFER, buf); + if (ret == LENGTH_OF_BUFFER) + return 0; + } + return -EINVAL; +} + +/** + * bu21013_do_touch_report(): Get the touch co-ordinates + * @data: bu21013_ts_data structure pointer + * + * Get the touch co-ordinates from touch sensor registers and writes + * into device structure and returns integer. + */ +static int bu21013_do_touch_report(struct bu21013_ts_data *data) +{ + u8 buf[LENGTH_OF_BUFFER]; + unsigned int pos_x[2], pos_y[2]; + bool has_x_sensors, has_y_sensors; + int finger_down_count = 0; + int i; + + if (data == NULL) + return -EINVAL; + + if (bu21013_read_block_data(data, buf) < 0) + return -EINVAL; + + has_x_sensors = hweight32(buf[0] & BU21013_SENSORS_EN_0_7); + has_y_sensors = hweight32(((buf[1] & BU21013_SENSORS_EN_8_15) | + ((buf[2] & BU21013_SENSORS_EN_16_23) << SHIFT_8)) >> SHIFT_2); + if (!has_x_sensors || !has_y_sensors) + return 0; + + for (i = 0; i < MAX_FINGERS; i++) { + const u8 *p = &buf[4 * i + 3]; + unsigned int x = p[0] << SHIFT_2 | (p[1] & MASK_BITS); + unsigned int y = p[2] << SHIFT_2 | (p[3] & MASK_BITS); + if (x == 0 || y == 0) + continue; + pos_x[finger_down_count] = x; + pos_y[finger_down_count] = y; + finger_down_count++; + } + + if (finger_down_count) { + if (finger_down_count == 2 && + (abs(pos_x[0] - pos_x[1]) < DELTA_MIN || + abs(pos_y[0] - pos_y[1]) < DELTA_MIN)) { + return 0; + } + + for (i = 0; i < finger_down_count; i++) { + if (data->chip->x_flip) + pos_x[i] = data->chip->touch_x_max - pos_x[i]; + if (data->chip->y_flip) + pos_y[i] = data->chip->touch_y_max - pos_y[i]; + + input_report_abs(data->in_dev, + ABS_MT_POSITION_X, pos_x[i]); + input_report_abs(data->in_dev, + ABS_MT_POSITION_Y, pos_y[i]); + input_mt_sync(data->in_dev); + } + } else + input_mt_sync(data->in_dev); + + input_sync(data->in_dev); + + return 0; +} +/** + * bu21013_gpio_irq() - gpio thread function for touch interrupt + * @irq: irq value + * @device_data: void pointer + * + * This gpio thread function for touch interrupt + * and returns irqreturn_t. + */ +static irqreturn_t bu21013_gpio_irq(int irq, void *device_data) +{ + struct bu21013_ts_data *data = device_data; + struct i2c_client *i2c = data->client; + int retval; + + do { + retval = bu21013_do_touch_report(data); + if (retval < 0) { + dev_err(&i2c->dev, "bu21013_do_touch_report failed\n"); + return IRQ_NONE; + } + + data->intr_pin = gpio_get_value(data->chip->touch_pin); + if (data->intr_pin == PEN_DOWN_INTR) + wait_event_timeout(data->wait, data->touch_stopped, + msecs_to_jiffies(2)); + } while (!data->intr_pin && !data->touch_stopped); + + return IRQ_HANDLED; +} + +/** + * bu21013_init_chip() - power on sequence for the bu21013 controller + * @data: device structure pointer + * + * This function is used to power on + * the bu21013 controller and returns integer. + */ +static int bu21013_init_chip(struct bu21013_ts_data *data) +{ + int retval; + struct i2c_client *i2c = data->client; + + retval = i2c_smbus_write_byte_data(i2c, BU21013_RESET_REG, + BU21013_RESET_ENABLE); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_RESET reg write failed\n"); + return retval; + } + msleep(RESET_DELAY); + + retval = i2c_smbus_write_byte_data(i2c, BU21013_SENSOR_0_7_REG, + BU21013_SENSORS_EN_0_7); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_SENSOR_0_7 reg write failed\n"); + return retval; + } + + retval = i2c_smbus_write_byte_data(i2c, BU21013_SENSOR_8_15_REG, + BU21013_SENSORS_EN_8_15); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_SENSOR_8_15 reg write failed\n"); + return retval; + } + + retval = i2c_smbus_write_byte_data(i2c, BU21013_SENSOR_16_23_REG, + BU21013_SENSORS_EN_16_23); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_SENSOR_16_23 reg write failed\n"); + return retval; + } + + retval = i2c_smbus_write_byte_data(i2c, BU21013_POS_MODE1_REG, + (BU21013_POS_MODE1_0 | BU21013_POS_MODE1_1)); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_POS_MODE1 reg write failed\n"); + return retval; + } + + retval = i2c_smbus_write_byte_data(i2c, BU21013_POS_MODE2_REG, + (BU21013_POS_MODE2_ZERO | BU21013_POS_MODE2_AVG1 | + BU21013_POS_MODE2_AVG2 | BU21013_POS_MODE2_EN_RAW | + BU21013_POS_MODE2_MULTI)); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_POS_MODE2 reg write failed\n"); + return retval; + } + + if (data->chip->ext_clk) + retval = i2c_smbus_write_byte_data(i2c, BU21013_CLK_MODE_REG, + (BU21013_CLK_MODE_EXT | BU21013_CLK_MODE_CALIB)); + else + retval = i2c_smbus_write_byte_data(i2c, BU21013_CLK_MODE_REG, + (BU21013_CLK_MODE_DIV | BU21013_CLK_MODE_CALIB)); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_CLK_MODE reg write failed\n"); + return retval; + } + + retval = i2c_smbus_write_byte_data(i2c, BU21013_IDLE_REG, + (BU21013_IDLET_0 | BU21013_IDLE_INTERMIT_EN)); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_IDLE reg write failed\n"); + return retval; + } + + retval = i2c_smbus_write_byte_data(i2c, BU21013_INT_MODE_REG, + BU21013_INT_MODE_LEVEL); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_INT_MODE reg write failed\n"); + return retval; + } + + retval = i2c_smbus_write_byte_data(i2c, BU21013_FILTER_REG, + (BU21013_DELTA_0_6 | + BU21013_FILTER_EN)); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_FILTER reg write failed\n"); + return retval; + } + + retval = i2c_smbus_write_byte_data(i2c, BU21013_TH_ON_REG, + BU21013_TH_ON_5); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_TH_ON reg write failed\n"); + return retval; + } + + retval = i2c_smbus_write_byte_data(i2c, BU21013_TH_OFF_REG, + BU21013_TH_OFF_4 | BU21013_TH_OFF_3); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_TH_OFF reg write failed\n"); + return retval; + } + + retval = i2c_smbus_write_byte_data(i2c, BU21013_GAIN_REG, + (BU21013_GAIN_0 | BU21013_GAIN_1)); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_GAIN reg write failed\n"); + return retval; + } + + retval = i2c_smbus_write_byte_data(i2c, BU21013_OFFSET_MODE_REG, + BU21013_OFFSET_MODE_DEFAULT); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_OFFSET_MODE reg write failed\n"); + return retval; + } + + retval = i2c_smbus_write_byte_data(i2c, BU21013_XY_EDGE_REG, + (BU21013_X_EDGE_0 | BU21013_X_EDGE_2 | + BU21013_Y_EDGE_1 | BU21013_Y_EDGE_3)); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_XY_EDGE reg write failed\n"); + return retval; + } + + retval = i2c_smbus_write_byte_data(i2c, BU21013_DONE_REG, + BU21013_DONE); + if (retval < 0) { + dev_err(&i2c->dev, "BU21013_REG_DONE reg write failed\n"); + return retval; + } + + return 0; +} + +/** + * bu21013_free_irq() - frees IRQ registered for touchscreen + * @bu21013_data: device structure pointer + * + * This function signals interrupt thread to stop processing and + * frees interrupt. + */ +static void bu21013_free_irq(struct bu21013_ts_data *bu21013_data) +{ + bu21013_data->touch_stopped = true; + wake_up(&bu21013_data->wait); + free_irq(bu21013_data->irq, bu21013_data); +} + +/** + * bu21013_cs_disable() - deconfigures the touch panel controller + * @bu21013_data: device structure pointer + * + * This function is used to deconfigure the chip selection + * for touch panel controller. + */ +static void bu21013_cs_disable(struct bu21013_ts_data *bu21013_data) +{ + int error; + + error = gpio_direction_output(bu21013_data->chip->cs_pin, 0); + if (error < 0) + dev_warn(&bu21013_data->client->dev, + "%s: gpio direction failed, error: %d\n", + __func__, error); + else + gpio_set_value(bu21013_data->chip->cs_pin, 0); + + gpio_free(bu21013_data->chip->cs_pin); +} + +#ifdef CONFIG_OF +static const struct bu21013_platform_device * +bu21013_parse_dt(struct device *dev) +{ + struct device_node *np = dev->of_node; + struct bu21013_platform_device *pdata; + + if (!np) { + dev_err(dev, "no device tree or platform data\n"); + return ERR_PTR(-EINVAL); + } + + pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL); + if (!pdata) + return ERR_PTR(-ENOMEM); + + pdata->y_flip = pdata->x_flip = false; + + pdata->x_flip = of_property_read_bool(np, "rohm,flip-x"); + pdata->y_flip = of_property_read_bool(np, "rohm,flip-y"); + + of_property_read_u32(np, "rohm,touch-max-x", &pdata->touch_x_max); + of_property_read_u32(np, "rohm,touch-max-y", &pdata->touch_y_max); + + pdata->touch_pin = of_get_named_gpio(np, "touch-gpio", 0); + pdata->cs_pin = of_get_named_gpio(np, "reset-gpio", 0); + + pdata->ext_clk = false; + + return pdata; +} +#else +static inline const struct bu21013_platform_device * +bu21013_parse_dt(struct device *dev) +{ + dev_err(dev, "no platform data available\n"); + return ERR_PTR(-EINVAL); +} +#endif + +/** + * bu21013_probe() - initializes the i2c-client touchscreen driver + * @client: i2c client structure pointer + * @id: i2c device id pointer + * + * This function used to initializes the i2c-client touchscreen + * driver and returns integer. + */ +static int bu21013_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + const struct bu21013_platform_device *pdata = + dev_get_platdata(&client->dev); + struct bu21013_ts_data *bu21013_data; + struct input_dev *in_dev; + int error; + + if (!i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_BYTE_DATA)) { + dev_err(&client->dev, "i2c smbus byte data not supported\n"); + return -EIO; + } + + if (!pdata) { + pdata = bu21013_parse_dt(&client->dev); + if (IS_ERR(pdata)) + return PTR_ERR(pdata); + } + + if (!gpio_is_valid(pdata->touch_pin)) { + dev_err(&client->dev, "invalid touch_pin supplied\n"); + return -EINVAL; + } + + bu21013_data = kzalloc(sizeof(struct bu21013_ts_data), GFP_KERNEL); + in_dev = input_allocate_device(); + if (!bu21013_data || !in_dev) { + dev_err(&client->dev, "device memory alloc failed\n"); + error = -ENOMEM; + goto err_free_mem; + } + + bu21013_data->in_dev = in_dev; + bu21013_data->chip = pdata; + bu21013_data->client = client; + bu21013_data->irq = gpio_to_irq(pdata->touch_pin); + + bu21013_data->regulator = regulator_get(&client->dev, "avdd"); + if (IS_ERR(bu21013_data->regulator)) { + dev_err(&client->dev, "regulator_get failed\n"); + error = PTR_ERR(bu21013_data->regulator); + goto err_free_mem; + } + + error = regulator_enable(bu21013_data->regulator); + if (error < 0) { + dev_err(&client->dev, "regulator enable failed\n"); + goto err_put_regulator; + } + + bu21013_data->touch_stopped = false; + init_waitqueue_head(&bu21013_data->wait); + + /* configure the gpio pins */ + error = gpio_request_one(pdata->cs_pin, GPIOF_OUT_INIT_HIGH, + "touchp_reset"); + if (error < 0) { + dev_err(&client->dev, "Unable to request gpio reset_pin\n"); + goto err_disable_regulator; + } + + /* configure the touch panel controller */ + error = bu21013_init_chip(bu21013_data); + if (error) { + dev_err(&client->dev, "error in bu21013 config\n"); + goto err_cs_disable; + } + + /* register the device to input subsystem */ + in_dev->name = DRIVER_TP; + in_dev->id.bustype = BUS_I2C; + in_dev->dev.parent = &client->dev; + + __set_bit(EV_SYN, in_dev->evbit); + __set_bit(EV_KEY, in_dev->evbit); + __set_bit(EV_ABS, in_dev->evbit); + + input_set_abs_params(in_dev, ABS_MT_POSITION_X, 0, + pdata->touch_x_max, 0, 0); + input_set_abs_params(in_dev, ABS_MT_POSITION_Y, 0, + pdata->touch_y_max, 0, 0); + input_set_drvdata(in_dev, bu21013_data); + + error = request_threaded_irq(bu21013_data->irq, NULL, bu21013_gpio_irq, + IRQF_TRIGGER_FALLING | IRQF_SHARED | + IRQF_ONESHOT, + DRIVER_TP, bu21013_data); + if (error) { + dev_err(&client->dev, "request irq %d failed\n", + bu21013_data->irq); + goto err_cs_disable; + } + + error = input_register_device(in_dev); + if (error) { + dev_err(&client->dev, "failed to register input device\n"); + goto err_free_irq; + } + + device_init_wakeup(&client->dev, pdata->wakeup); + i2c_set_clientdata(client, bu21013_data); + + return 0; + +err_free_irq: + bu21013_free_irq(bu21013_data); +err_cs_disable: + bu21013_cs_disable(bu21013_data); +err_disable_regulator: + regulator_disable(bu21013_data->regulator); +err_put_regulator: + regulator_put(bu21013_data->regulator); +err_free_mem: + input_free_device(in_dev); + kfree(bu21013_data); + + return error; +} +/** + * bu21013_remove() - removes the i2c-client touchscreen driver + * @client: i2c client structure pointer + * + * This function uses to remove the i2c-client + * touchscreen driver and returns integer. + */ +static int bu21013_remove(struct i2c_client *client) +{ + struct bu21013_ts_data *bu21013_data = i2c_get_clientdata(client); + + bu21013_free_irq(bu21013_data); + + bu21013_cs_disable(bu21013_data); + + input_unregister_device(bu21013_data->in_dev); + + regulator_disable(bu21013_data->regulator); + regulator_put(bu21013_data->regulator); + + kfree(bu21013_data); + + device_init_wakeup(&client->dev, false); + + return 0; +} + +#ifdef CONFIG_PM +/** + * bu21013_suspend() - suspend the touch screen controller + * @dev: pointer to device structure + * + * This function is used to suspend the + * touch panel controller and returns integer + */ +static int bu21013_suspend(struct device *dev) +{ + struct bu21013_ts_data *bu21013_data = dev_get_drvdata(dev); + struct i2c_client *client = bu21013_data->client; + + bu21013_data->touch_stopped = true; + if (device_may_wakeup(&client->dev)) + enable_irq_wake(bu21013_data->irq); + else + disable_irq(bu21013_data->irq); + + regulator_disable(bu21013_data->regulator); + + return 0; +} + +/** + * bu21013_resume() - resume the touch screen controller + * @dev: pointer to device structure + * + * This function is used to resume the touch panel + * controller and returns integer. + */ +static int bu21013_resume(struct device *dev) +{ + struct bu21013_ts_data *bu21013_data = dev_get_drvdata(dev); + struct i2c_client *client = bu21013_data->client; + int retval; + + retval = regulator_enable(bu21013_data->regulator); + if (retval < 0) { + dev_err(&client->dev, "bu21013 regulator enable failed\n"); + return retval; + } + + retval = bu21013_init_chip(bu21013_data); + if (retval < 0) { + dev_err(&client->dev, "bu21013 controller config failed\n"); + return retval; + } + + bu21013_data->touch_stopped = false; + + if (device_may_wakeup(&client->dev)) + disable_irq_wake(bu21013_data->irq); + else + enable_irq(bu21013_data->irq); + + return 0; +} + +static const struct dev_pm_ops bu21013_dev_pm_ops = { + .suspend = bu21013_suspend, + .resume = bu21013_resume, +}; +#endif + +static const struct i2c_device_id bu21013_id[] = { + { DRIVER_TP, 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, bu21013_id); + +static struct i2c_driver bu21013_driver = { + .driver = { + .name = DRIVER_TP, + .owner = THIS_MODULE, +#ifdef CONFIG_PM + .pm = &bu21013_dev_pm_ops, +#endif + }, + .probe = bu21013_probe, + .remove = bu21013_remove, + .id_table = bu21013_id, +}; + +module_i2c_driver(bu21013_driver); + +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Naveen Kumar G "); +MODULE_DESCRIPTION("bu21013 touch screen controller driver"); diff --git a/drivers/input/touchscreen/cy8ctmg110_ts.c b/drivers/input/touchscreen/cy8ctmg110_ts.c new file mode 100644 index 00000000..96e0eedc --- /dev/null +++ b/drivers/input/touchscreen/cy8ctmg110_ts.c @@ -0,0 +1,367 @@ +/* + * Driver for cypress touch screen controller + * + * Copyright (c) 2009 Aava Mobile + * + * Some cleanups by Alan Cox + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define CY8CTMG110_DRIVER_NAME "cy8ctmg110" + +/* Touch coordinates */ +#define CY8CTMG110_X_MIN 0 +#define CY8CTMG110_Y_MIN 0 +#define CY8CTMG110_X_MAX 759 +#define CY8CTMG110_Y_MAX 465 + + +/* cy8ctmg110 register definitions */ +#define CY8CTMG110_TOUCH_WAKEUP_TIME 0 +#define CY8CTMG110_TOUCH_SLEEP_TIME 2 +#define CY8CTMG110_TOUCH_X1 3 +#define CY8CTMG110_TOUCH_Y1 5 +#define CY8CTMG110_TOUCH_X2 7 +#define CY8CTMG110_TOUCH_Y2 9 +#define CY8CTMG110_FINGERS 11 +#define CY8CTMG110_GESTURE 12 +#define CY8CTMG110_REG_MAX 13 + + +/* + * The touch driver structure. + */ +struct cy8ctmg110 { + struct input_dev *input; + char phys[32]; + struct i2c_client *client; + int reset_pin; + int irq_pin; +}; + +/* + * cy8ctmg110_power is the routine that is called when touch hardware + * will powered off or on. + */ +static void cy8ctmg110_power(struct cy8ctmg110 *ts, bool poweron) +{ + if (ts->reset_pin) + gpio_direction_output(ts->reset_pin, 1 - poweron); +} + +static int cy8ctmg110_write_regs(struct cy8ctmg110 *tsc, unsigned char reg, + unsigned char len, unsigned char *value) +{ + struct i2c_client *client = tsc->client; + int ret; + unsigned char i2c_data[6]; + + BUG_ON(len > 5); + + i2c_data[0] = reg; + memcpy(i2c_data + 1, value, len); + + ret = i2c_master_send(client, i2c_data, len + 1); + if (ret != len + 1) { + dev_err(&client->dev, "i2c write data cmd failed\n"); + return ret < 0 ? ret : -EIO; + } + + return 0; +} + +static int cy8ctmg110_read_regs(struct cy8ctmg110 *tsc, + unsigned char *data, unsigned char len, unsigned char cmd) +{ + struct i2c_client *client = tsc->client; + int ret; + struct i2c_msg msg[2] = { + /* first write slave position to i2c devices */ + { + .addr = client->addr, + .len = 1, + .buf = &cmd + }, + /* Second read data from position */ + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = len, + .buf = data + } + }; + + ret = i2c_transfer(client->adapter, msg, 2); + if (ret < 0) + return ret; + + return 0; +} + +static int cy8ctmg110_touch_pos(struct cy8ctmg110 *tsc) +{ + struct input_dev *input = tsc->input; + unsigned char reg_p[CY8CTMG110_REG_MAX]; + int x, y; + + memset(reg_p, 0, CY8CTMG110_REG_MAX); + + /* Reading coordinates */ + if (cy8ctmg110_read_regs(tsc, reg_p, 9, CY8CTMG110_TOUCH_X1) != 0) + return -EIO; + + y = reg_p[2] << 8 | reg_p[3]; + x = reg_p[0] << 8 | reg_p[1]; + + /* Number of touch */ + if (reg_p[8] == 0) { + input_report_key(input, BTN_TOUCH, 0); + } else { + input_report_key(input, BTN_TOUCH, 1); + input_report_abs(input, ABS_X, x); + input_report_abs(input, ABS_Y, y); + } + + input_sync(input); + + return 0; +} + +static int cy8ctmg110_set_sleepmode(struct cy8ctmg110 *ts, bool sleep) +{ + unsigned char reg_p[3]; + + if (sleep) { + reg_p[0] = 0x00; + reg_p[1] = 0xff; + reg_p[2] = 5; + } else { + reg_p[0] = 0x10; + reg_p[1] = 0xff; + reg_p[2] = 0; + } + + return cy8ctmg110_write_regs(ts, CY8CTMG110_TOUCH_WAKEUP_TIME, 3, reg_p); +} + +static irqreturn_t cy8ctmg110_irq_thread(int irq, void *dev_id) +{ + struct cy8ctmg110 *tsc = dev_id; + + cy8ctmg110_touch_pos(tsc); + + return IRQ_HANDLED; +} + +static int cy8ctmg110_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + const struct cy8ctmg110_pdata *pdata = client->dev.platform_data; + struct cy8ctmg110 *ts; + struct input_dev *input_dev; + int err; + + /* No pdata no way forward */ + if (pdata == NULL) { + dev_err(&client->dev, "no pdata\n"); + return -ENODEV; + } + + if (!i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_READ_WORD_DATA)) + return -EIO; + + ts = kzalloc(sizeof(struct cy8ctmg110), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!ts || !input_dev) { + err = -ENOMEM; + goto err_free_mem; + } + + ts->client = client; + ts->input = input_dev; + ts->reset_pin = pdata->reset_pin; + ts->irq_pin = pdata->irq_pin; + + snprintf(ts->phys, sizeof(ts->phys), + "%s/input0", dev_name(&client->dev)); + + input_dev->name = CY8CTMG110_DRIVER_NAME " Touchscreen"; + input_dev->phys = ts->phys; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + + input_set_abs_params(input_dev, ABS_X, + CY8CTMG110_X_MIN, CY8CTMG110_X_MAX, 4, 0); + input_set_abs_params(input_dev, ABS_Y, + CY8CTMG110_Y_MIN, CY8CTMG110_Y_MAX, 4, 0); + + if (ts->reset_pin) { + err = gpio_request(ts->reset_pin, NULL); + if (err) { + dev_err(&client->dev, + "Unable to request GPIO pin %d.\n", + ts->reset_pin); + goto err_free_mem; + } + } + + cy8ctmg110_power(ts, true); + cy8ctmg110_set_sleepmode(ts, false); + + err = gpio_request(ts->irq_pin, "touch_irq_key"); + if (err < 0) { + dev_err(&client->dev, + "Failed to request GPIO %d, error %d\n", + ts->irq_pin, err); + goto err_shutoff_device; + } + + err = gpio_direction_input(ts->irq_pin); + if (err < 0) { + dev_err(&client->dev, + "Failed to configure input direction for GPIO %d, error %d\n", + ts->irq_pin, err); + goto err_free_irq_gpio; + } + + client->irq = gpio_to_irq(ts->irq_pin); + if (client->irq < 0) { + err = client->irq; + dev_err(&client->dev, + "Unable to get irq number for GPIO %d, error %d\n", + ts->irq_pin, err); + goto err_free_irq_gpio; + } + + err = request_threaded_irq(client->irq, NULL, cy8ctmg110_irq_thread, + IRQF_TRIGGER_RISING | IRQF_ONESHOT, + "touch_reset_key", ts); + if (err < 0) { + dev_err(&client->dev, + "irq %d busy? error %d\n", client->irq, err); + goto err_free_irq_gpio; + } + + err = input_register_device(input_dev); + if (err) + goto err_free_irq; + + i2c_set_clientdata(client, ts); + device_init_wakeup(&client->dev, 1); + return 0; + +err_free_irq: + free_irq(client->irq, ts); +err_free_irq_gpio: + gpio_free(ts->irq_pin); +err_shutoff_device: + cy8ctmg110_set_sleepmode(ts, true); + cy8ctmg110_power(ts, false); + if (ts->reset_pin) + gpio_free(ts->reset_pin); +err_free_mem: + input_free_device(input_dev); + kfree(ts); + return err; +} + +#ifdef CONFIG_PM +static int cy8ctmg110_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct cy8ctmg110 *ts = i2c_get_clientdata(client); + + if (device_may_wakeup(&client->dev)) + enable_irq_wake(client->irq); + else { + cy8ctmg110_set_sleepmode(ts, true); + cy8ctmg110_power(ts, false); + } + return 0; +} + +static int cy8ctmg110_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct cy8ctmg110 *ts = i2c_get_clientdata(client); + + if (device_may_wakeup(&client->dev)) + disable_irq_wake(client->irq); + else { + cy8ctmg110_power(ts, true); + cy8ctmg110_set_sleepmode(ts, false); + } + return 0; +} + +static SIMPLE_DEV_PM_OPS(cy8ctmg110_pm, cy8ctmg110_suspend, cy8ctmg110_resume); +#endif + +static int cy8ctmg110_remove(struct i2c_client *client) +{ + struct cy8ctmg110 *ts = i2c_get_clientdata(client); + + cy8ctmg110_set_sleepmode(ts, true); + cy8ctmg110_power(ts, false); + + free_irq(client->irq, ts); + input_unregister_device(ts->input); + gpio_free(ts->irq_pin); + if (ts->reset_pin) + gpio_free(ts->reset_pin); + kfree(ts); + + return 0; +} + +static const struct i2c_device_id cy8ctmg110_idtable[] = { + { CY8CTMG110_DRIVER_NAME, 1 }, + { } +}; + +MODULE_DEVICE_TABLE(i2c, cy8ctmg110_idtable); + +static struct i2c_driver cy8ctmg110_driver = { + .driver = { + .owner = THIS_MODULE, + .name = CY8CTMG110_DRIVER_NAME, +#ifdef CONFIG_PM + .pm = &cy8ctmg110_pm, +#endif + }, + .id_table = cy8ctmg110_idtable, + .probe = cy8ctmg110_probe, + .remove = cy8ctmg110_remove, +}; + +module_i2c_driver(cy8ctmg110_driver); + +MODULE_AUTHOR("Samuli Konttila "); +MODULE_DESCRIPTION("cy8ctmg110 TouchScreen Driver"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/input/touchscreen/cyttsp_core.c b/drivers/input/touchscreen/cyttsp_core.c new file mode 100644 index 00000000..ae89d260 --- /dev/null +++ b/drivers/input/touchscreen/cyttsp_core.c @@ -0,0 +1,639 @@ +/* + * Core Source for: + * Cypress TrueTouch(TM) Standard Product (TTSP) touchscreen drivers. + * For use with Cypress Txx3xx parts. + * Supported parts include: + * CY8CTST341 + * CY8CTMA340 + * + * Copyright (C) 2009, 2010, 2011 Cypress Semiconductor, Inc. + * Copyright (C) 2012 Javier Martinez Canillas + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2, and only version 2, as published by the + * Free Software Foundation. + * + * 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. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contact Cypress Semiconductor at www.cypress.com + * + */ + +#include +#include +#include +#include +#include +#include + +#include "cyttsp_core.h" + +/* Bootloader number of command keys */ +#define CY_NUM_BL_KEYS 8 + +/* helpers */ +#define GET_NUM_TOUCHES(x) ((x) & 0x0F) +#define IS_LARGE_AREA(x) (((x) & 0x10) >> 4) +#define IS_BAD_PKT(x) ((x) & 0x20) +#define IS_VALID_APP(x) ((x) & 0x01) +#define IS_OPERATIONAL_ERR(x) ((x) & 0x3F) +#define GET_HSTMODE(reg) (((reg) & 0x70) >> 4) +#define GET_BOOTLOADERMODE(reg) (((reg) & 0x10) >> 4) + +#define CY_REG_BASE 0x00 +#define CY_REG_ACT_DIST 0x1E +#define CY_REG_ACT_INTRVL 0x1D +#define CY_REG_TCH_TMOUT (CY_REG_ACT_INTRVL + 1) +#define CY_REG_LP_INTRVL (CY_REG_TCH_TMOUT + 1) +#define CY_MAXZ 255 +#define CY_DELAY_DFLT 20 /* ms */ +#define CY_DELAY_MAX 500 +#define CY_ACT_DIST_DFLT 0xF8 +#define CY_HNDSHK_BIT 0x80 +/* device mode bits */ +#define CY_OPERATE_MODE 0x00 +#define CY_SYSINFO_MODE 0x10 +/* power mode select bits */ +#define CY_SOFT_RESET_MODE 0x01 /* return to Bootloader mode */ +#define CY_DEEP_SLEEP_MODE 0x02 +#define CY_LOW_POWER_MODE 0x04 + +/* Slots management */ +#define CY_MAX_FINGER 4 +#define CY_MAX_ID 16 + +static const u8 bl_command[] = { + 0x00, /* file offset */ + 0xFF, /* command */ + 0xA5, /* exit bootloader command */ + 0, 1, 2, 3, 4, 5, 6, 7 /* default keys */ +}; + +static int ttsp_read_block_data(struct cyttsp *ts, u8 command, + u8 length, void *buf) +{ + int error; + int tries; + + for (tries = 0; tries < CY_NUM_RETRY; tries++) { + error = ts->bus_ops->read(ts, command, length, buf); + if (!error) + return 0; + + msleep(CY_DELAY_DFLT); + } + + return -EIO; +} + +static int ttsp_write_block_data(struct cyttsp *ts, u8 command, + u8 length, void *buf) +{ + int error; + int tries; + + for (tries = 0; tries < CY_NUM_RETRY; tries++) { + error = ts->bus_ops->write(ts, command, length, buf); + if (!error) + return 0; + + msleep(CY_DELAY_DFLT); + } + + return -EIO; +} + +static int ttsp_send_command(struct cyttsp *ts, u8 cmd) +{ + return ttsp_write_block_data(ts, CY_REG_BASE, sizeof(cmd), &cmd); +} + +static int cyttsp_handshake(struct cyttsp *ts) +{ + if (ts->pdata->use_hndshk) + return ttsp_send_command(ts, + ts->xy_data.hst_mode ^ CY_HNDSHK_BIT); + + return 0; +} + +static int cyttsp_load_bl_regs(struct cyttsp *ts) +{ + memset(&ts->bl_data, 0, sizeof(ts->bl_data)); + ts->bl_data.bl_status = 0x10; + + return ttsp_read_block_data(ts, CY_REG_BASE, + sizeof(ts->bl_data), &ts->bl_data); +} + +static int cyttsp_exit_bl_mode(struct cyttsp *ts) +{ + int error; + u8 bl_cmd[sizeof(bl_command)]; + + memcpy(bl_cmd, bl_command, sizeof(bl_command)); + if (ts->pdata->bl_keys) + memcpy(&bl_cmd[sizeof(bl_command) - CY_NUM_BL_KEYS], + ts->pdata->bl_keys, CY_NUM_BL_KEYS); + + error = ttsp_write_block_data(ts, CY_REG_BASE, + sizeof(bl_cmd), bl_cmd); + if (error) + return error; + + /* wait for TTSP Device to complete the operation */ + msleep(CY_DELAY_DFLT); + + error = cyttsp_load_bl_regs(ts); + if (error) + return error; + + if (GET_BOOTLOADERMODE(ts->bl_data.bl_status)) + return -EIO; + + return 0; +} + +static int cyttsp_set_operational_mode(struct cyttsp *ts) +{ + int error; + + error = ttsp_send_command(ts, CY_OPERATE_MODE); + if (error) + return error; + + /* wait for TTSP Device to complete switch to Operational mode */ + error = ttsp_read_block_data(ts, CY_REG_BASE, + sizeof(ts->xy_data), &ts->xy_data); + if (error) + return error; + + error = cyttsp_handshake(ts); + if (error) + return error; + + return ts->xy_data.act_dist == CY_ACT_DIST_DFLT ? -EIO : 0; +} + +static int cyttsp_set_sysinfo_mode(struct cyttsp *ts) +{ + int error; + + memset(&ts->sysinfo_data, 0, sizeof(ts->sysinfo_data)); + + /* switch to sysinfo mode */ + error = ttsp_send_command(ts, CY_SYSINFO_MODE); + if (error) + return error; + + /* read sysinfo registers */ + msleep(CY_DELAY_DFLT); + error = ttsp_read_block_data(ts, CY_REG_BASE, sizeof(ts->sysinfo_data), + &ts->sysinfo_data); + if (error) + return error; + + error = cyttsp_handshake(ts); + if (error) + return error; + + if (!ts->sysinfo_data.tts_verh && !ts->sysinfo_data.tts_verl) + return -EIO; + + return 0; +} + +static int cyttsp_set_sysinfo_regs(struct cyttsp *ts) +{ + int retval = 0; + + if (ts->pdata->act_intrvl != CY_ACT_INTRVL_DFLT || + ts->pdata->tch_tmout != CY_TCH_TMOUT_DFLT || + ts->pdata->lp_intrvl != CY_LP_INTRVL_DFLT) { + + u8 intrvl_ray[] = { + ts->pdata->act_intrvl, + ts->pdata->tch_tmout, + ts->pdata->lp_intrvl + }; + + /* set intrvl registers */ + retval = ttsp_write_block_data(ts, CY_REG_ACT_INTRVL, + sizeof(intrvl_ray), intrvl_ray); + msleep(CY_DELAY_DFLT); + } + + return retval; +} + +static int cyttsp_soft_reset(struct cyttsp *ts) +{ + unsigned long timeout; + int retval; + + /* wait for interrupt to set ready completion */ + INIT_COMPLETION(ts->bl_ready); + ts->state = CY_BL_STATE; + + enable_irq(ts->irq); + + retval = ttsp_send_command(ts, CY_SOFT_RESET_MODE); + if (retval) + goto out; + + timeout = wait_for_completion_timeout(&ts->bl_ready, + msecs_to_jiffies(CY_DELAY_DFLT * CY_DELAY_MAX)); + retval = timeout ? 0 : -EIO; + +out: + ts->state = CY_IDLE_STATE; + disable_irq(ts->irq); + return retval; +} + +static int cyttsp_act_dist_setup(struct cyttsp *ts) +{ + u8 act_dist_setup = ts->pdata->act_dist; + + /* Init gesture; active distance setup */ + return ttsp_write_block_data(ts, CY_REG_ACT_DIST, + sizeof(act_dist_setup), &act_dist_setup); +} + +static void cyttsp_extract_track_ids(struct cyttsp_xydata *xy_data, int *ids) +{ + ids[0] = xy_data->touch12_id >> 4; + ids[1] = xy_data->touch12_id & 0xF; + ids[2] = xy_data->touch34_id >> 4; + ids[3] = xy_data->touch34_id & 0xF; +} + +static const struct cyttsp_tch *cyttsp_get_tch(struct cyttsp_xydata *xy_data, + int idx) +{ + switch (idx) { + case 0: + return &xy_data->tch1; + case 1: + return &xy_data->tch2; + case 2: + return &xy_data->tch3; + case 3: + return &xy_data->tch4; + default: + return NULL; + } +} + +static void cyttsp_report_tchdata(struct cyttsp *ts) +{ + struct cyttsp_xydata *xy_data = &ts->xy_data; + struct input_dev *input = ts->input; + int num_tch = GET_NUM_TOUCHES(xy_data->tt_stat); + const struct cyttsp_tch *tch; + int ids[CY_MAX_ID]; + int i; + DECLARE_BITMAP(used, CY_MAX_ID); + + if (IS_LARGE_AREA(xy_data->tt_stat) == 1) { + /* terminate all active tracks */ + num_tch = 0; + dev_dbg(ts->dev, "%s: Large area detected\n", __func__); + } else if (num_tch > CY_MAX_FINGER) { + /* terminate all active tracks */ + num_tch = 0; + dev_dbg(ts->dev, "%s: Num touch error detected\n", __func__); + } else if (IS_BAD_PKT(xy_data->tt_mode)) { + /* terminate all active tracks */ + num_tch = 0; + dev_dbg(ts->dev, "%s: Invalid buffer detected\n", __func__); + } + + cyttsp_extract_track_ids(xy_data, ids); + + bitmap_zero(used, CY_MAX_ID); + + for (i = 0; i < num_tch; i++) { + tch = cyttsp_get_tch(xy_data, i); + + input_mt_slot(input, ids[i]); + input_mt_report_slot_state(input, MT_TOOL_FINGER, true); + input_report_abs(input, ABS_MT_POSITION_X, be16_to_cpu(tch->x)); + input_report_abs(input, ABS_MT_POSITION_Y, be16_to_cpu(tch->y)); + input_report_abs(input, ABS_MT_TOUCH_MAJOR, tch->z); + + __set_bit(ids[i], used); + } + + for (i = 0; i < CY_MAX_ID; i++) { + if (test_bit(i, used)) + continue; + + input_mt_slot(input, i); + input_mt_report_slot_state(input, MT_TOOL_FINGER, false); + } + + input_sync(input); +} + +static irqreturn_t cyttsp_irq(int irq, void *handle) +{ + struct cyttsp *ts = handle; + int error; + + if (unlikely(ts->state == CY_BL_STATE)) { + complete(&ts->bl_ready); + goto out; + } + + /* Get touch data from CYTTSP device */ + error = ttsp_read_block_data(ts, CY_REG_BASE, + sizeof(struct cyttsp_xydata), &ts->xy_data); + if (error) + goto out; + + /* provide flow control handshake */ + error = cyttsp_handshake(ts); + if (error) + goto out; + + if (unlikely(ts->state == CY_IDLE_STATE)) + goto out; + + if (GET_BOOTLOADERMODE(ts->xy_data.tt_mode)) { + /* + * TTSP device has reset back to bootloader mode. + * Restore to operational mode. + */ + error = cyttsp_exit_bl_mode(ts); + if (error) { + dev_err(ts->dev, + "Could not return to operational mode, err: %d\n", + error); + ts->state = CY_IDLE_STATE; + } + } else { + cyttsp_report_tchdata(ts); + } + +out: + return IRQ_HANDLED; +} + +static int cyttsp_power_on(struct cyttsp *ts) +{ + int error; + + error = cyttsp_soft_reset(ts); + if (error) + return error; + + error = cyttsp_load_bl_regs(ts); + if (error) + return error; + + if (GET_BOOTLOADERMODE(ts->bl_data.bl_status) && + IS_VALID_APP(ts->bl_data.bl_status)) { + error = cyttsp_exit_bl_mode(ts); + if (error) + return error; + } + + if (GET_HSTMODE(ts->bl_data.bl_file) != CY_OPERATE_MODE || + IS_OPERATIONAL_ERR(ts->bl_data.bl_status)) { + return -ENODEV; + } + + error = cyttsp_set_sysinfo_mode(ts); + if (error) + return error; + + error = cyttsp_set_sysinfo_regs(ts); + if (error) + return error; + + error = cyttsp_set_operational_mode(ts); + if (error) + return error; + + /* init active distance */ + error = cyttsp_act_dist_setup(ts); + if (error) + return error; + + ts->state = CY_ACTIVE_STATE; + + return 0; +} + +static int cyttsp_enable(struct cyttsp *ts) +{ + int error; + + /* + * The device firmware can wake on an I2C or SPI memory slave + * address match. So just reading a register is sufficient to + * wake up the device. The first read attempt will fail but it + * will wake it up making the second read attempt successful. + */ + error = ttsp_read_block_data(ts, CY_REG_BASE, + sizeof(ts->xy_data), &ts->xy_data); + if (error) + return error; + + if (GET_HSTMODE(ts->xy_data.hst_mode)) + return -EIO; + + enable_irq(ts->irq); + + return 0; +} + +static int cyttsp_disable(struct cyttsp *ts) +{ + int error; + + error = ttsp_send_command(ts, CY_LOW_POWER_MODE); + if (error) + return error; + + disable_irq(ts->irq); + + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int cyttsp_suspend(struct device *dev) +{ + struct cyttsp *ts = dev_get_drvdata(dev); + int retval = 0; + + mutex_lock(&ts->input->mutex); + + if (ts->input->users) { + retval = cyttsp_disable(ts); + if (retval == 0) + ts->suspended = true; + } + + mutex_unlock(&ts->input->mutex); + + return retval; +} + +static int cyttsp_resume(struct device *dev) +{ + struct cyttsp *ts = dev_get_drvdata(dev); + + mutex_lock(&ts->input->mutex); + + if (ts->input->users) + cyttsp_enable(ts); + + ts->suspended = false; + + mutex_unlock(&ts->input->mutex); + + return 0; +} + +#endif + +SIMPLE_DEV_PM_OPS(cyttsp_pm_ops, cyttsp_suspend, cyttsp_resume); +EXPORT_SYMBOL_GPL(cyttsp_pm_ops); + +static int cyttsp_open(struct input_dev *dev) +{ + struct cyttsp *ts = input_get_drvdata(dev); + int retval = 0; + + if (!ts->suspended) + retval = cyttsp_enable(ts); + + return retval; +} + +static void cyttsp_close(struct input_dev *dev) +{ + struct cyttsp *ts = input_get_drvdata(dev); + + if (!ts->suspended) + cyttsp_disable(ts); +} + +struct cyttsp *cyttsp_probe(const struct cyttsp_bus_ops *bus_ops, + struct device *dev, int irq, size_t xfer_buf_size) +{ + const struct cyttsp_platform_data *pdata = dev->platform_data; + struct cyttsp *ts; + struct input_dev *input_dev; + int error; + + if (!pdata || !pdata->name || irq <= 0) { + error = -EINVAL; + goto err_out; + } + + ts = kzalloc(sizeof(*ts) + xfer_buf_size, GFP_KERNEL); + input_dev = input_allocate_device(); + if (!ts || !input_dev) { + error = -ENOMEM; + goto err_free_mem; + } + + ts->dev = dev; + ts->input = input_dev; + ts->pdata = dev->platform_data; + ts->bus_ops = bus_ops; + ts->irq = irq; + + init_completion(&ts->bl_ready); + snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(dev)); + + if (pdata->init) { + error = pdata->init(); + if (error) { + dev_err(ts->dev, "platform init failed, err: %d\n", + error); + goto err_free_mem; + } + } + + input_dev->name = pdata->name; + input_dev->phys = ts->phys; + input_dev->id.bustype = bus_ops->bustype; + input_dev->dev.parent = ts->dev; + + input_dev->open = cyttsp_open; + input_dev->close = cyttsp_close; + + input_set_drvdata(input_dev, ts); + + __set_bit(EV_ABS, input_dev->evbit); + input_set_abs_params(input_dev, ABS_MT_POSITION_X, + 0, pdata->maxx, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, + 0, pdata->maxy, 0, 0); + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, + 0, CY_MAXZ, 0, 0); + + input_mt_init_slots(input_dev, CY_MAX_ID, 0); + + error = request_threaded_irq(ts->irq, NULL, cyttsp_irq, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + pdata->name, ts); + if (error) { + dev_err(ts->dev, "failed to request IRQ %d, err: %d\n", + ts->irq, error); + goto err_platform_exit; + } + + disable_irq(ts->irq); + + error = cyttsp_power_on(ts); + if (error) + goto err_free_irq; + + error = input_register_device(input_dev); + if (error) { + dev_err(ts->dev, "failed to register input device: %d\n", + error); + goto err_free_irq; + } + + return ts; + +err_free_irq: + free_irq(ts->irq, ts); +err_platform_exit: + if (pdata->exit) + pdata->exit(); +err_free_mem: + input_free_device(input_dev); + kfree(ts); +err_out: + return ERR_PTR(error); +} +EXPORT_SYMBOL_GPL(cyttsp_probe); + +void cyttsp_remove(struct cyttsp *ts) +{ + free_irq(ts->irq, ts); + input_unregister_device(ts->input); + if (ts->pdata->exit) + ts->pdata->exit(); + kfree(ts); +} +EXPORT_SYMBOL_GPL(cyttsp_remove); + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Cypress TrueTouch(R) Standard touchscreen driver core"); +MODULE_AUTHOR("Cypress"); diff --git a/drivers/input/touchscreen/cyttsp_core.h b/drivers/input/touchscreen/cyttsp_core.h new file mode 100644 index 00000000..f1ebde36 --- /dev/null +++ b/drivers/input/touchscreen/cyttsp_core.h @@ -0,0 +1,149 @@ +/* + * Header file for: + * Cypress TrueTouch(TM) Standard Product (TTSP) touchscreen drivers. + * For use with Cypress Txx3xx parts. + * Supported parts include: + * CY8CTST341 + * CY8CTMA340 + * + * Copyright (C) 2009, 2010, 2011 Cypress Semiconductor, Inc. + * Copyright (C) 2012 Javier Martinez Canillas + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2, and only version 2, as published by the + * Free Software Foundation. + * + * 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. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contact Cypress Semiconductor at www.cypress.com + * + */ + + +#ifndef __CYTTSP_CORE_H__ +#define __CYTTSP_CORE_H__ + +#include +#include +#include +#include +#include +#include + +#define CY_NUM_RETRY 16 /* max number of retries for read ops */ + +struct cyttsp_tch { + __be16 x, y; + u8 z; +} __packed; + +/* TrueTouch Standard Product Gen3 interface definition */ +struct cyttsp_xydata { + u8 hst_mode; + u8 tt_mode; + u8 tt_stat; + struct cyttsp_tch tch1; + u8 touch12_id; + struct cyttsp_tch tch2; + u8 gest_cnt; + u8 gest_id; + struct cyttsp_tch tch3; + u8 touch34_id; + struct cyttsp_tch tch4; + u8 tt_undef[3]; + u8 act_dist; + u8 tt_reserved; +} __packed; + + +/* TTSP System Information interface definition */ +struct cyttsp_sysinfo_data { + u8 hst_mode; + u8 mfg_stat; + u8 mfg_cmd; + u8 cid[3]; + u8 tt_undef1; + u8 uid[8]; + u8 bl_verh; + u8 bl_verl; + u8 tts_verh; + u8 tts_verl; + u8 app_idh; + u8 app_idl; + u8 app_verh; + u8 app_verl; + u8 tt_undef[5]; + u8 scn_typ; + u8 act_intrvl; + u8 tch_tmout; + u8 lp_intrvl; +}; + +/* TTSP Bootloader Register Map interface definition */ +#define CY_BL_CHKSUM_OK 0x01 +struct cyttsp_bootloader_data { + u8 bl_file; + u8 bl_status; + u8 bl_error; + u8 blver_hi; + u8 blver_lo; + u8 bld_blver_hi; + u8 bld_blver_lo; + u8 ttspver_hi; + u8 ttspver_lo; + u8 appid_hi; + u8 appid_lo; + u8 appver_hi; + u8 appver_lo; + u8 cid_0; + u8 cid_1; + u8 cid_2; +}; + +struct cyttsp; + +struct cyttsp_bus_ops { + u16 bustype; + int (*write)(struct cyttsp *ts, + u8 addr, u8 length, const void *values); + int (*read)(struct cyttsp *ts, u8 addr, u8 length, void *values); +}; + +enum cyttsp_state { + CY_IDLE_STATE, + CY_ACTIVE_STATE, + CY_BL_STATE, +}; + +struct cyttsp { + struct device *dev; + int irq; + struct input_dev *input; + char phys[32]; + const struct cyttsp_platform_data *pdata; + const struct cyttsp_bus_ops *bus_ops; + struct cyttsp_bootloader_data bl_data; + struct cyttsp_sysinfo_data sysinfo_data; + struct cyttsp_xydata xy_data; + struct completion bl_ready; + enum cyttsp_state state; + bool suspended; + + u8 xfer_buf[] ____cacheline_aligned; +}; + +struct cyttsp *cyttsp_probe(const struct cyttsp_bus_ops *bus_ops, + struct device *dev, int irq, size_t xfer_buf_size); +void cyttsp_remove(struct cyttsp *ts); + +extern const struct dev_pm_ops cyttsp_pm_ops; + +#endif /* __CYTTSP_CORE_H__ */ diff --git a/drivers/input/touchscreen/cyttsp_i2c.c b/drivers/input/touchscreen/cyttsp_i2c.c new file mode 100644 index 00000000..4dbdf44b --- /dev/null +++ b/drivers/input/touchscreen/cyttsp_i2c.c @@ -0,0 +1,136 @@ +/* + * Source for: + * Cypress TrueTouch(TM) Standard Product (TTSP) I2C touchscreen driver. + * For use with Cypress Txx3xx parts. + * Supported parts include: + * CY8CTST341 + * CY8CTMA340 + * + * Copyright (C) 2009, 2010, 2011 Cypress Semiconductor, Inc. + * Copyright (C) 2012 Javier Martinez Canillas + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2, and only version 2, as published by the + * Free Software Foundation. + * + * 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. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contact Cypress Semiconductor at www.cypress.com + * + */ + +#include "cyttsp_core.h" + +#include +#include + +#define CY_I2C_DATA_SIZE 128 + +static int cyttsp_i2c_read_block_data(struct cyttsp *ts, + u8 addr, u8 length, void *values) +{ + struct i2c_client *client = to_i2c_client(ts->dev); + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = 0, + .len = 1, + .buf = &addr, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = length, + .buf = values, + }, + }; + int retval; + + retval = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); + if (retval < 0) + return retval; + + return retval != ARRAY_SIZE(msgs) ? -EIO : 0; +} + +static int cyttsp_i2c_write_block_data(struct cyttsp *ts, + u8 addr, u8 length, const void *values) +{ + struct i2c_client *client = to_i2c_client(ts->dev); + int retval; + + ts->xfer_buf[0] = addr; + memcpy(&ts->xfer_buf[1], values, length); + + retval = i2c_master_send(client, ts->xfer_buf, length + 1); + + return retval < 0 ? retval : 0; +} + +static const struct cyttsp_bus_ops cyttsp_i2c_bus_ops = { + .bustype = BUS_I2C, + .write = cyttsp_i2c_write_block_data, + .read = cyttsp_i2c_read_block_data, +}; + +static int cyttsp_i2c_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct cyttsp *ts; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + dev_err(&client->dev, "I2C functionality not Supported\n"); + return -EIO; + } + + ts = cyttsp_probe(&cyttsp_i2c_bus_ops, &client->dev, client->irq, + CY_I2C_DATA_SIZE); + + if (IS_ERR(ts)) + return PTR_ERR(ts); + + i2c_set_clientdata(client, ts); + + return 0; +} + +static int cyttsp_i2c_remove(struct i2c_client *client) +{ + struct cyttsp *ts = i2c_get_clientdata(client); + + cyttsp_remove(ts); + + return 0; +} + +static const struct i2c_device_id cyttsp_i2c_id[] = { + { CY_I2C_NAME, 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, cyttsp_i2c_id); + +static struct i2c_driver cyttsp_i2c_driver = { + .driver = { + .name = CY_I2C_NAME, + .owner = THIS_MODULE, + .pm = &cyttsp_pm_ops, + }, + .probe = cyttsp_i2c_probe, + .remove = cyttsp_i2c_remove, + .id_table = cyttsp_i2c_id, +}; + +module_i2c_driver(cyttsp_i2c_driver); + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Cypress TrueTouch(R) Standard Product (TTSP) I2C driver"); +MODULE_AUTHOR("Cypress"); +MODULE_ALIAS("i2c:cyttsp"); diff --git a/drivers/input/touchscreen/cyttsp_spi.c b/drivers/input/touchscreen/cyttsp_spi.c new file mode 100644 index 00000000..861b7f77 --- /dev/null +++ b/drivers/input/touchscreen/cyttsp_spi.c @@ -0,0 +1,199 @@ +/* + * Source for: + * Cypress TrueTouch(TM) Standard Product (TTSP) SPI touchscreen driver. + * For use with Cypress Txx3xx parts. + * Supported parts include: + * CY8CTST341 + * CY8CTMA340 + * + * Copyright (C) 2009, 2010, 2011 Cypress Semiconductor, Inc. + * Copyright (C) 2012 Javier Martinez Canillas + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2, and only version 2, as published by the + * Free Software Foundation. + * + * 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. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contact Cypress Semiconductor at www.cypress.com + * + */ + +#include "cyttsp_core.h" + +#include +#include +#include + +#define CY_SPI_WR_OP 0x00 /* r/~w */ +#define CY_SPI_RD_OP 0x01 +#define CY_SPI_CMD_BYTES 4 +#define CY_SPI_SYNC_BYTE 2 +#define CY_SPI_SYNC_ACK1 0x62 /* from protocol v.2 */ +#define CY_SPI_SYNC_ACK2 0x9D /* from protocol v.2 */ +#define CY_SPI_DATA_SIZE 128 +#define CY_SPI_DATA_BUF_SIZE (CY_SPI_CMD_BYTES + CY_SPI_DATA_SIZE) +#define CY_SPI_BITS_PER_WORD 8 + +static int cyttsp_spi_xfer(struct cyttsp *ts, + u8 op, u8 reg, u8 *buf, int length) +{ + struct spi_device *spi = to_spi_device(ts->dev); + struct spi_message msg; + struct spi_transfer xfer[2]; + u8 *wr_buf = &ts->xfer_buf[0]; + u8 *rd_buf = &ts->xfer_buf[CY_SPI_DATA_BUF_SIZE]; + int retval; + int i; + + if (length > CY_SPI_DATA_SIZE) { + dev_err(ts->dev, "%s: length %d is too big.\n", + __func__, length); + return -EINVAL; + } + + memset(wr_buf, 0, CY_SPI_DATA_BUF_SIZE); + memset(rd_buf, 0, CY_SPI_DATA_BUF_SIZE); + + wr_buf[0] = 0x00; /* header byte 0 */ + wr_buf[1] = 0xFF; /* header byte 1 */ + wr_buf[2] = reg; /* reg index */ + wr_buf[3] = op; /* r/~w */ + if (op == CY_SPI_WR_OP) + memcpy(wr_buf + CY_SPI_CMD_BYTES, buf, length); + + memset(xfer, 0, sizeof(xfer)); + spi_message_init(&msg); + + /* + We set both TX and RX buffers because Cypress TTSP + requires full duplex operation. + */ + xfer[0].tx_buf = wr_buf; + xfer[0].rx_buf = rd_buf; + switch (op) { + case CY_SPI_WR_OP: + xfer[0].len = length + CY_SPI_CMD_BYTES; + spi_message_add_tail(&xfer[0], &msg); + break; + + case CY_SPI_RD_OP: + xfer[0].len = CY_SPI_CMD_BYTES; + spi_message_add_tail(&xfer[0], &msg); + + xfer[1].rx_buf = buf; + xfer[1].len = length; + spi_message_add_tail(&xfer[1], &msg); + break; + + default: + dev_err(ts->dev, "%s: bad operation code=%d\n", __func__, op); + return -EINVAL; + } + + retval = spi_sync(spi, &msg); + if (retval < 0) { + dev_dbg(ts->dev, "%s: spi_sync() error %d, len=%d, op=%d\n", + __func__, retval, xfer[1].len, op); + + /* + * do not return here since was a bad ACK sequence + * let the following ACK check handle any errors and + * allow silent retries + */ + } + + if (rd_buf[CY_SPI_SYNC_BYTE] != CY_SPI_SYNC_ACK1 || + rd_buf[CY_SPI_SYNC_BYTE + 1] != CY_SPI_SYNC_ACK2) { + + dev_dbg(ts->dev, "%s: operation %d failed\n", __func__, op); + + for (i = 0; i < CY_SPI_CMD_BYTES; i++) + dev_dbg(ts->dev, "%s: test rd_buf[%d]:0x%02x\n", + __func__, i, rd_buf[i]); + for (i = 0; i < length; i++) + dev_dbg(ts->dev, "%s: test buf[%d]:0x%02x\n", + __func__, i, buf[i]); + + return -EIO; + } + + return 0; +} + +static int cyttsp_spi_read_block_data(struct cyttsp *ts, + u8 addr, u8 length, void *data) +{ + return cyttsp_spi_xfer(ts, CY_SPI_RD_OP, addr, data, length); +} + +static int cyttsp_spi_write_block_data(struct cyttsp *ts, + u8 addr, u8 length, const void *data) +{ + return cyttsp_spi_xfer(ts, CY_SPI_WR_OP, addr, (void *)data, length); +} + +static const struct cyttsp_bus_ops cyttsp_spi_bus_ops = { + .bustype = BUS_SPI, + .write = cyttsp_spi_write_block_data, + .read = cyttsp_spi_read_block_data, +}; + +static int cyttsp_spi_probe(struct spi_device *spi) +{ + struct cyttsp *ts; + int error; + + /* Set up SPI*/ + spi->bits_per_word = CY_SPI_BITS_PER_WORD; + spi->mode = SPI_MODE_0; + error = spi_setup(spi); + if (error < 0) { + dev_err(&spi->dev, "%s: SPI setup error %d\n", + __func__, error); + return error; + } + + ts = cyttsp_probe(&cyttsp_spi_bus_ops, &spi->dev, spi->irq, + CY_SPI_DATA_BUF_SIZE * 2); + if (IS_ERR(ts)) + return PTR_ERR(ts); + + spi_set_drvdata(spi, ts); + + return 0; +} + +static int cyttsp_spi_remove(struct spi_device *spi) +{ + struct cyttsp *ts = spi_get_drvdata(spi); + + cyttsp_remove(ts); + + return 0; +} + +static struct spi_driver cyttsp_spi_driver = { + .driver = { + .name = CY_SPI_NAME, + .owner = THIS_MODULE, + .pm = &cyttsp_pm_ops, + }, + .probe = cyttsp_spi_probe, + .remove = cyttsp_spi_remove, +}; + +module_spi_driver(cyttsp_spi_driver); + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Cypress TrueTouch(R) Standard Product (TTSP) SPI driver"); +MODULE_AUTHOR("Cypress"); +MODULE_ALIAS("spi:cyttsp"); diff --git a/drivers/input/touchscreen/da9034-ts.c b/drivers/input/touchscreen/da9034-ts.c new file mode 100644 index 00000000..34ad8410 --- /dev/null +++ b/drivers/input/touchscreen/da9034-ts.c @@ -0,0 +1,387 @@ +/* + * Touchscreen driver for Dialog Semiconductor DA9034 + * + * Copyright (C) 2006-2008 Marvell International Ltd. + * Fengwei Yin + * Bin Yang + * Eric Miao + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DA9034_MANUAL_CTRL 0x50 +#define DA9034_LDO_ADC_EN (1 << 4) + +#define DA9034_AUTO_CTRL1 0x51 + +#define DA9034_AUTO_CTRL2 0x52 +#define DA9034_AUTO_TSI_EN (1 << 3) +#define DA9034_PEN_DETECT (1 << 4) + +#define DA9034_TSI_CTRL1 0x53 +#define DA9034_TSI_CTRL2 0x54 +#define DA9034_TSI_X_MSB 0x6c +#define DA9034_TSI_Y_MSB 0x6d +#define DA9034_TSI_XY_LSB 0x6e + +enum { + STATE_IDLE, /* wait for pendown */ + STATE_BUSY, /* TSI busy sampling */ + STATE_STOP, /* sample available */ + STATE_WAIT, /* Wait to start next sample */ +}; + +enum { + EVENT_PEN_DOWN, + EVENT_PEN_UP, + EVENT_TSI_READY, + EVENT_TIMEDOUT, +}; + +struct da9034_touch { + struct device *da9034_dev; + struct input_dev *input_dev; + + struct delayed_work tsi_work; + struct notifier_block notifier; + + int state; + + int interval_ms; + int x_inverted; + int y_inverted; + + int last_x; + int last_y; +}; + +static inline int is_pen_down(struct da9034_touch *touch) +{ + return da903x_query_status(touch->da9034_dev, DA9034_STATUS_PEN_DOWN); +} + +static inline int detect_pen_down(struct da9034_touch *touch, int on) +{ + if (on) + return da903x_set_bits(touch->da9034_dev, + DA9034_AUTO_CTRL2, DA9034_PEN_DETECT); + else + return da903x_clr_bits(touch->da9034_dev, + DA9034_AUTO_CTRL2, DA9034_PEN_DETECT); +} + +static int read_tsi(struct da9034_touch *touch) +{ + uint8_t _x, _y, _v; + int ret; + + ret = da903x_read(touch->da9034_dev, DA9034_TSI_X_MSB, &_x); + if (ret) + return ret; + + ret = da903x_read(touch->da9034_dev, DA9034_TSI_Y_MSB, &_y); + if (ret) + return ret; + + ret = da903x_read(touch->da9034_dev, DA9034_TSI_XY_LSB, &_v); + if (ret) + return ret; + + touch->last_x = ((_x << 2) & 0x3fc) | (_v & 0x3); + touch->last_y = ((_y << 2) & 0x3fc) | ((_v & 0xc) >> 2); + + return 0; +} + +static inline int start_tsi(struct da9034_touch *touch) +{ + return da903x_set_bits(touch->da9034_dev, + DA9034_AUTO_CTRL2, DA9034_AUTO_TSI_EN); +} + +static inline int stop_tsi(struct da9034_touch *touch) +{ + return da903x_clr_bits(touch->da9034_dev, + DA9034_AUTO_CTRL2, DA9034_AUTO_TSI_EN); +} + +static inline void report_pen_down(struct da9034_touch *touch) +{ + int x = touch->last_x; + int y = touch->last_y; + + x &= 0xfff; + if (touch->x_inverted) + x = 1024 - x; + y &= 0xfff; + if (touch->y_inverted) + y = 1024 - y; + + input_report_abs(touch->input_dev, ABS_X, x); + input_report_abs(touch->input_dev, ABS_Y, y); + input_report_key(touch->input_dev, BTN_TOUCH, 1); + + input_sync(touch->input_dev); +} + +static inline void report_pen_up(struct da9034_touch *touch) +{ + input_report_key(touch->input_dev, BTN_TOUCH, 0); + input_sync(touch->input_dev); +} + +static void da9034_event_handler(struct da9034_touch *touch, int event) +{ + int err; + + switch (touch->state) { + case STATE_IDLE: + if (event != EVENT_PEN_DOWN) + break; + + /* Enable auto measurement of the TSI, this will + * automatically disable pen down detection + */ + err = start_tsi(touch); + if (err) + goto err_reset; + + touch->state = STATE_BUSY; + break; + + case STATE_BUSY: + if (event != EVENT_TSI_READY) + break; + + err = read_tsi(touch); + if (err) + goto err_reset; + + /* Disable auto measurement of the TSI, so that + * pen down status will be available + */ + err = stop_tsi(touch); + if (err) + goto err_reset; + + touch->state = STATE_STOP; + + /* FIXME: PEN_{UP/DOWN} events are expected to be + * available by stopping TSI, but this is found not + * always true, delay and simulate such an event + * here is more reliable + */ + mdelay(1); + da9034_event_handler(touch, + is_pen_down(touch) ? EVENT_PEN_DOWN : + EVENT_PEN_UP); + break; + + case STATE_STOP: + if (event == EVENT_PEN_DOWN) { + report_pen_down(touch); + schedule_delayed_work(&touch->tsi_work, + msecs_to_jiffies(touch->interval_ms)); + touch->state = STATE_WAIT; + } + + if (event == EVENT_PEN_UP) { + report_pen_up(touch); + touch->state = STATE_IDLE; + } + break; + + case STATE_WAIT: + if (event != EVENT_TIMEDOUT) + break; + + if (is_pen_down(touch)) { + start_tsi(touch); + touch->state = STATE_BUSY; + } else { + report_pen_up(touch); + touch->state = STATE_IDLE; + } + break; + } + return; + +err_reset: + touch->state = STATE_IDLE; + stop_tsi(touch); + detect_pen_down(touch, 1); +} + +static void da9034_tsi_work(struct work_struct *work) +{ + struct da9034_touch *touch = + container_of(work, struct da9034_touch, tsi_work.work); + + da9034_event_handler(touch, EVENT_TIMEDOUT); +} + +static int da9034_touch_notifier(struct notifier_block *nb, + unsigned long event, void *data) +{ + struct da9034_touch *touch = + container_of(nb, struct da9034_touch, notifier); + + if (event & DA9034_EVENT_TSI_READY) + da9034_event_handler(touch, EVENT_TSI_READY); + + if ((event & DA9034_EVENT_PEN_DOWN) && touch->state == STATE_IDLE) + da9034_event_handler(touch, EVENT_PEN_DOWN); + + return 0; +} + +static int da9034_touch_open(struct input_dev *dev) +{ + struct da9034_touch *touch = input_get_drvdata(dev); + int ret; + + ret = da903x_register_notifier(touch->da9034_dev, &touch->notifier, + DA9034_EVENT_PEN_DOWN | DA9034_EVENT_TSI_READY); + if (ret) + return -EBUSY; + + /* Enable ADC LDO */ + ret = da903x_set_bits(touch->da9034_dev, + DA9034_MANUAL_CTRL, DA9034_LDO_ADC_EN); + if (ret) + return ret; + + /* TSI_DELAY: 3 slots, TSI_SKIP: 3 slots */ + ret = da903x_write(touch->da9034_dev, DA9034_TSI_CTRL1, 0x1b); + if (ret) + return ret; + + ret = da903x_write(touch->da9034_dev, DA9034_TSI_CTRL2, 0x00); + if (ret) + return ret; + + touch->state = STATE_IDLE; + detect_pen_down(touch, 1); + + return 0; +} + +static void da9034_touch_close(struct input_dev *dev) +{ + struct da9034_touch *touch = input_get_drvdata(dev); + + da903x_unregister_notifier(touch->da9034_dev, &touch->notifier, + DA9034_EVENT_PEN_DOWN | DA9034_EVENT_TSI_READY); + + cancel_delayed_work_sync(&touch->tsi_work); + + touch->state = STATE_IDLE; + stop_tsi(touch); + detect_pen_down(touch, 0); + + /* Disable ADC LDO */ + da903x_clr_bits(touch->da9034_dev, + DA9034_MANUAL_CTRL, DA9034_LDO_ADC_EN); +} + + +static int da9034_touch_probe(struct platform_device *pdev) +{ + struct da9034_touch_pdata *pdata = pdev->dev.platform_data; + struct da9034_touch *touch; + struct input_dev *input_dev; + int ret; + + touch = kzalloc(sizeof(struct da9034_touch), GFP_KERNEL); + if (touch == NULL) { + dev_err(&pdev->dev, "failed to allocate driver data\n"); + return -ENOMEM; + } + + touch->da9034_dev = pdev->dev.parent; + + if (pdata) { + touch->interval_ms = pdata->interval_ms; + touch->x_inverted = pdata->x_inverted; + touch->y_inverted = pdata->y_inverted; + } else + /* fallback into default */ + touch->interval_ms = 10; + + INIT_DELAYED_WORK(&touch->tsi_work, da9034_tsi_work); + touch->notifier.notifier_call = da9034_touch_notifier; + + input_dev = input_allocate_device(); + if (!input_dev) { + dev_err(&pdev->dev, "failed to allocate input device\n"); + ret = -ENOMEM; + goto err_free_touch; + } + + input_dev->name = pdev->name; + input_dev->open = da9034_touch_open; + input_dev->close = da9034_touch_close; + input_dev->dev.parent = &pdev->dev; + + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(ABS_X, input_dev->absbit); + __set_bit(ABS_Y, input_dev->absbit); + input_set_abs_params(input_dev, ABS_X, 0, 1023, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 0, 1023, 0, 0); + + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(BTN_TOUCH, input_dev->keybit); + + touch->input_dev = input_dev; + input_set_drvdata(input_dev, touch); + + ret = input_register_device(input_dev); + if (ret) + goto err_free_input; + + platform_set_drvdata(pdev, touch); + return 0; + +err_free_input: + input_free_device(input_dev); +err_free_touch: + kfree(touch); + return ret; +} + +static int da9034_touch_remove(struct platform_device *pdev) +{ + struct da9034_touch *touch = platform_get_drvdata(pdev); + + input_unregister_device(touch->input_dev); + kfree(touch); + + return 0; +} + +static struct platform_driver da9034_touch_driver = { + .driver = { + .name = "da9034-touch", + .owner = THIS_MODULE, + }, + .probe = da9034_touch_probe, + .remove = da9034_touch_remove, +}; +module_platform_driver(da9034_touch_driver); + +MODULE_DESCRIPTION("Touchscreen driver for Dialog Semiconductor DA9034"); +MODULE_AUTHOR("Eric Miao , Bin Yang "); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:da9034-touch"); diff --git a/drivers/input/touchscreen/da9052_tsi.c b/drivers/input/touchscreen/da9052_tsi.c new file mode 100644 index 00000000..8f561e22 --- /dev/null +++ b/drivers/input/touchscreen/da9052_tsi.c @@ -0,0 +1,351 @@ +/* + * TSI driver for Dialog DA9052 + * + * Copyright(c) 2012 Dialog Semiconductor Ltd. + * + * Author: David Dajun Chen + * + * 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. + * + */ +#include +#include +#include +#include +#include + +#include +#include + +#define TSI_PEN_DOWN_STATUS 0x40 + +struct da9052_tsi { + struct da9052 *da9052; + struct input_dev *dev; + struct delayed_work ts_pen_work; + struct mutex mutex; + bool stopped; + bool adc_on; +}; + +static void da9052_ts_adc_toggle(struct da9052_tsi *tsi, bool on) +{ + da9052_reg_update(tsi->da9052, DA9052_TSI_CONT_A_REG, 1 << 0, on); + tsi->adc_on = on; +} + +static irqreturn_t da9052_ts_pendwn_irq(int irq, void *data) +{ + struct da9052_tsi *tsi = data; + + if (!tsi->stopped) { + /* Mask PEN_DOWN event and unmask TSI_READY event */ + da9052_disable_irq_nosync(tsi->da9052, DA9052_IRQ_PENDOWN); + da9052_enable_irq(tsi->da9052, DA9052_IRQ_TSIREADY); + + da9052_ts_adc_toggle(tsi, true); + + schedule_delayed_work(&tsi->ts_pen_work, HZ / 50); + } + + return IRQ_HANDLED; +} + +static void da9052_ts_read(struct da9052_tsi *tsi) +{ + struct input_dev *input = tsi->dev; + int ret; + u16 x, y, z; + u8 v; + + ret = da9052_reg_read(tsi->da9052, DA9052_TSI_X_MSB_REG); + if (ret < 0) + return; + + x = (u16) ret; + + ret = da9052_reg_read(tsi->da9052, DA9052_TSI_Y_MSB_REG); + if (ret < 0) + return; + + y = (u16) ret; + + ret = da9052_reg_read(tsi->da9052, DA9052_TSI_Z_MSB_REG); + if (ret < 0) + return; + + z = (u16) ret; + + ret = da9052_reg_read(tsi->da9052, DA9052_TSI_LSB_REG); + if (ret < 0) + return; + + v = (u8) ret; + + x = ((x << 2) & 0x3fc) | (v & 0x3); + y = ((y << 2) & 0x3fc) | ((v & 0xc) >> 2); + z = ((z << 2) & 0x3fc) | ((v & 0x30) >> 4); + + input_report_key(input, BTN_TOUCH, 1); + input_report_abs(input, ABS_X, x); + input_report_abs(input, ABS_Y, y); + input_report_abs(input, ABS_PRESSURE, z); + input_sync(input); +} + +static irqreturn_t da9052_ts_datardy_irq(int irq, void *data) +{ + struct da9052_tsi *tsi = data; + + da9052_ts_read(tsi); + + return IRQ_HANDLED; +} + +static void da9052_ts_pen_work(struct work_struct *work) +{ + struct da9052_tsi *tsi = container_of(work, struct da9052_tsi, + ts_pen_work.work); + if (!tsi->stopped) { + int ret = da9052_reg_read(tsi->da9052, DA9052_TSI_LSB_REG); + if (ret < 0 || (ret & TSI_PEN_DOWN_STATUS)) { + /* Pen is still DOWN (or read error) */ + schedule_delayed_work(&tsi->ts_pen_work, HZ / 50); + } else { + struct input_dev *input = tsi->dev; + + /* Pen UP */ + da9052_ts_adc_toggle(tsi, false); + + /* Report Pen UP */ + input_report_key(input, BTN_TOUCH, 0); + input_report_abs(input, ABS_PRESSURE, 0); + input_sync(input); + + /* + * FIXME: Fixes the unhandled irq issue when quick + * pen down and pen up events occurs + */ + ret = da9052_reg_update(tsi->da9052, + DA9052_EVENT_B_REG, 0xC0, 0xC0); + if (ret < 0) + return; + + /* Mask TSI_READY event and unmask PEN_DOWN event */ + da9052_disable_irq(tsi->da9052, DA9052_IRQ_TSIREADY); + da9052_enable_irq(tsi->da9052, DA9052_IRQ_PENDOWN); + } + } +} + +static int da9052_ts_configure_gpio(struct da9052 *da9052) +{ + int error; + + error = da9052_reg_update(da9052, DA9052_GPIO_2_3_REG, 0x30, 0); + if (error < 0) + return error; + + error = da9052_reg_update(da9052, DA9052_GPIO_4_5_REG, 0x33, 0); + if (error < 0) + return error; + + error = da9052_reg_update(da9052, DA9052_GPIO_6_7_REG, 0x33, 0); + if (error < 0) + return error; + + return 0; +} + +static int da9052_configure_tsi(struct da9052_tsi *tsi) +{ + int error; + + error = da9052_ts_configure_gpio(tsi->da9052); + if (error) + return error; + + /* Measure TSI sample every 1ms */ + error = da9052_reg_update(tsi->da9052, DA9052_ADC_CONT_REG, + 1 << 6, 1 << 6); + if (error < 0) + return error; + + /* TSI_DELAY: 3 slots, TSI_SKIP: 0 slots, TSI_MODE: XYZP */ + error = da9052_reg_update(tsi->da9052, DA9052_TSI_CONT_A_REG, 0xFC, 0xC0); + if (error < 0) + return error; + + /* Supply TSIRef through LD09 */ + error = da9052_reg_write(tsi->da9052, DA9052_LDO9_REG, 0x59); + if (error < 0) + return error; + + return 0; +} + +static int da9052_ts_input_open(struct input_dev *input_dev) +{ + struct da9052_tsi *tsi = input_get_drvdata(input_dev); + + tsi->stopped = false; + mb(); + + /* Unmask PEN_DOWN event */ + da9052_enable_irq(tsi->da9052, DA9052_IRQ_PENDOWN); + + /* Enable Pen Detect Circuit */ + return da9052_reg_update(tsi->da9052, DA9052_TSI_CONT_A_REG, + 1 << 1, 1 << 1); +} + +static void da9052_ts_input_close(struct input_dev *input_dev) +{ + struct da9052_tsi *tsi = input_get_drvdata(input_dev); + + tsi->stopped = true; + mb(); + da9052_disable_irq(tsi->da9052, DA9052_IRQ_PENDOWN); + cancel_delayed_work_sync(&tsi->ts_pen_work); + + if (tsi->adc_on) { + da9052_disable_irq(tsi->da9052, DA9052_IRQ_TSIREADY); + da9052_ts_adc_toggle(tsi, false); + + /* + * If ADC was on that means that pendwn IRQ was disabled + * twice and we need to enable it to keep enable/disable + * counter balanced. IRQ is still off though. + */ + da9052_enable_irq(tsi->da9052, DA9052_IRQ_PENDOWN); + } + + /* Disable Pen Detect Circuit */ + da9052_reg_update(tsi->da9052, DA9052_TSI_CONT_A_REG, 1 << 1, 0); +} + +static int da9052_ts_probe(struct platform_device *pdev) +{ + struct da9052 *da9052; + struct da9052_tsi *tsi; + struct input_dev *input_dev; + int error; + + da9052 = dev_get_drvdata(pdev->dev.parent); + if (!da9052) + return -EINVAL; + + tsi = kzalloc(sizeof(struct da9052_tsi), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!tsi || !input_dev) { + error = -ENOMEM; + goto err_free_mem; + } + + tsi->da9052 = da9052; + tsi->dev = input_dev; + tsi->stopped = true; + INIT_DELAYED_WORK(&tsi->ts_pen_work, da9052_ts_pen_work); + + input_dev->id.version = 0x0101; + input_dev->id.vendor = 0x15B6; + input_dev->id.product = 0x9052; + input_dev->name = "Dialog DA9052 TouchScreen Driver"; + input_dev->dev.parent = &pdev->dev; + input_dev->open = da9052_ts_input_open; + input_dev->close = da9052_ts_input_close; + + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(BTN_TOUCH, input_dev->keybit); + + input_set_abs_params(input_dev, ABS_X, 0, 1023, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 0, 1023, 0, 0); + input_set_abs_params(input_dev, ABS_PRESSURE, 0, 1023, 0, 0); + + input_set_drvdata(input_dev, tsi); + + /* Disable Pen Detect Circuit */ + da9052_reg_update(tsi->da9052, DA9052_TSI_CONT_A_REG, 1 << 1, 0); + + /* Disable ADC */ + da9052_ts_adc_toggle(tsi, false); + + error = da9052_request_irq(tsi->da9052, DA9052_IRQ_PENDOWN, + "pendown-irq", da9052_ts_pendwn_irq, tsi); + if (error) { + dev_err(tsi->da9052->dev, + "Failed to register PENDWN IRQ: %d\n", error); + goto err_free_mem; + } + + error = da9052_request_irq(tsi->da9052, DA9052_IRQ_TSIREADY, + "tsiready-irq", da9052_ts_datardy_irq, tsi); + if (error) { + dev_err(tsi->da9052->dev, + "Failed to register TSIRDY IRQ :%d\n", error); + goto err_free_pendwn_irq; + } + + /* Mask PEN_DOWN and TSI_READY events */ + da9052_disable_irq(tsi->da9052, DA9052_IRQ_PENDOWN); + da9052_disable_irq(tsi->da9052, DA9052_IRQ_TSIREADY); + + error = da9052_configure_tsi(tsi); + if (error) + goto err_free_datardy_irq; + + error = input_register_device(tsi->dev); + if (error) + goto err_free_datardy_irq; + + platform_set_drvdata(pdev, tsi); + + return 0; + +err_free_datardy_irq: + da9052_free_irq(tsi->da9052, DA9052_IRQ_TSIREADY, tsi); +err_free_pendwn_irq: + da9052_free_irq(tsi->da9052, DA9052_IRQ_PENDOWN, tsi); +err_free_mem: + kfree(tsi); + input_free_device(input_dev); + + return error; +} + +static int da9052_ts_remove(struct platform_device *pdev) +{ + struct da9052_tsi *tsi = platform_get_drvdata(pdev); + + da9052_reg_write(tsi->da9052, DA9052_LDO9_REG, 0x19); + + da9052_free_irq(tsi->da9052, DA9052_IRQ_TSIREADY, tsi); + da9052_free_irq(tsi->da9052, DA9052_IRQ_PENDOWN, tsi); + + input_unregister_device(tsi->dev); + kfree(tsi); + + platform_set_drvdata(pdev, NULL); + + return 0; +} + +static struct platform_driver da9052_tsi_driver = { + .probe = da9052_ts_probe, + .remove = da9052_ts_remove, + .driver = { + .name = "da9052-tsi", + .owner = THIS_MODULE, + }, +}; + +module_platform_driver(da9052_tsi_driver); + +MODULE_DESCRIPTION("Touchscreen driver for Dialog Semiconductor DA9052"); +MODULE_AUTHOR("Anthony Olech "); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:da9052-tsi"); diff --git a/drivers/input/touchscreen/dynapro.c b/drivers/input/touchscreen/dynapro.c new file mode 100644 index 00000000..1809677a --- /dev/null +++ b/drivers/input/touchscreen/dynapro.c @@ -0,0 +1,191 @@ +/* + * Dynapro serial touchscreen driver + * + * Copyright (c) 2009 Tias Guns + * Based on the inexio driver (c) Vojtech Pavlik and Dan Streetman and + * Richard Lemon + * + */ + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +/* + * 2009/09/19 Tias Guns + * Copied inexio.c and edited for Dynapro protocol (from retired Xorg module) + */ + +#include +#include +#include +#include +#include +#include +#include + +#define DRIVER_DESC "Dynapro serial touchscreen driver" + +MODULE_AUTHOR("Tias Guns "); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL"); + +/* + * Definitions & global arrays. + */ + +#define DYNAPRO_FORMAT_TOUCH_BIT 0x40 +#define DYNAPRO_FORMAT_LENGTH 3 +#define DYNAPRO_RESPONSE_BEGIN_BYTE 0x80 + +#define DYNAPRO_MIN_XC 0 +#define DYNAPRO_MAX_XC 0x3ff +#define DYNAPRO_MIN_YC 0 +#define DYNAPRO_MAX_YC 0x3ff + +#define DYNAPRO_GET_XC(data) (data[1] | ((data[0] & 0x38) << 4)) +#define DYNAPRO_GET_YC(data) (data[2] | ((data[0] & 0x07) << 7)) +#define DYNAPRO_GET_TOUCHED(data) (DYNAPRO_FORMAT_TOUCH_BIT & data[0]) + +/* + * Per-touchscreen data. + */ + +struct dynapro { + struct input_dev *dev; + struct serio *serio; + int idx; + unsigned char data[DYNAPRO_FORMAT_LENGTH]; + char phys[32]; +}; + +static void dynapro_process_data(struct dynapro *pdynapro) +{ + struct input_dev *dev = pdynapro->dev; + + if (DYNAPRO_FORMAT_LENGTH == ++pdynapro->idx) { + input_report_abs(dev, ABS_X, DYNAPRO_GET_XC(pdynapro->data)); + input_report_abs(dev, ABS_Y, DYNAPRO_GET_YC(pdynapro->data)); + input_report_key(dev, BTN_TOUCH, + DYNAPRO_GET_TOUCHED(pdynapro->data)); + input_sync(dev); + + pdynapro->idx = 0; + } +} + +static irqreturn_t dynapro_interrupt(struct serio *serio, + unsigned char data, unsigned int flags) +{ + struct dynapro *pdynapro = serio_get_drvdata(serio); + + pdynapro->data[pdynapro->idx] = data; + + if (DYNAPRO_RESPONSE_BEGIN_BYTE & pdynapro->data[0]) + dynapro_process_data(pdynapro); + else + dev_dbg(&serio->dev, "unknown/unsynchronized data: %x\n", + pdynapro->data[0]); + + return IRQ_HANDLED; +} + +static void dynapro_disconnect(struct serio *serio) +{ + struct dynapro *pdynapro = serio_get_drvdata(serio); + + input_get_device(pdynapro->dev); + input_unregister_device(pdynapro->dev); + serio_close(serio); + serio_set_drvdata(serio, NULL); + input_put_device(pdynapro->dev); + kfree(pdynapro); +} + +/* + * dynapro_connect() is the routine that is called when someone adds a + * new serio device that supports dynapro protocol and registers it as + * an input device. This is usually accomplished using inputattach. + */ + +static int dynapro_connect(struct serio *serio, struct serio_driver *drv) +{ + struct dynapro *pdynapro; + struct input_dev *input_dev; + int err; + + pdynapro = kzalloc(sizeof(struct dynapro), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!pdynapro || !input_dev) { + err = -ENOMEM; + goto fail1; + } + + pdynapro->serio = serio; + pdynapro->dev = input_dev; + snprintf(pdynapro->phys, sizeof(pdynapro->phys), + "%s/input0", serio->phys); + + input_dev->name = "Dynapro Serial TouchScreen"; + input_dev->phys = pdynapro->phys; + input_dev->id.bustype = BUS_RS232; + input_dev->id.vendor = SERIO_DYNAPRO; + input_dev->id.product = 0; + input_dev->id.version = 0x0001; + input_dev->dev.parent = &serio->dev; + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(pdynapro->dev, ABS_X, + DYNAPRO_MIN_XC, DYNAPRO_MAX_XC, 0, 0); + input_set_abs_params(pdynapro->dev, ABS_Y, + DYNAPRO_MIN_YC, DYNAPRO_MAX_YC, 0, 0); + + serio_set_drvdata(serio, pdynapro); + + err = serio_open(serio, drv); + if (err) + goto fail2; + + err = input_register_device(pdynapro->dev); + if (err) + goto fail3; + + return 0; + + fail3: serio_close(serio); + fail2: serio_set_drvdata(serio, NULL); + fail1: input_free_device(input_dev); + kfree(pdynapro); + return err; +} + +/* + * The serio driver structure. + */ + +static struct serio_device_id dynapro_serio_ids[] = { + { + .type = SERIO_RS232, + .proto = SERIO_DYNAPRO, + .id = SERIO_ANY, + .extra = SERIO_ANY, + }, + { 0 } +}; + +MODULE_DEVICE_TABLE(serio, dynapro_serio_ids); + +static struct serio_driver dynapro_drv = { + .driver = { + .name = "dynapro", + }, + .description = DRIVER_DESC, + .id_table = dynapro_serio_ids, + .interrupt = dynapro_interrupt, + .connect = dynapro_connect, + .disconnect = dynapro_disconnect, +}; + +module_serio_driver(dynapro_drv); diff --git a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c new file mode 100644 index 00000000..83fa1b15 --- /dev/null +++ b/drivers/input/touchscreen/edt-ft5x06.c @@ -0,0 +1,892 @@ +/* + * Copyright (C) 2012 Simon Budig, + * + * 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. + * + * You should have received a copy of the GNU General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* + * This is a driver for the EDT "Polytouch" family of touch controllers + * based on the FocalTech FT5x06 line of chips. + * + * Development of this driver has been sponsored by Glyn: + * http://www.glyn.com/Products/Displays + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MAX_SUPPORT_POINTS 5 + +#define WORK_REGISTER_THRESHOLD 0x00 +#define WORK_REGISTER_REPORT_RATE 0x08 +#define WORK_REGISTER_GAIN 0x30 +#define WORK_REGISTER_OFFSET 0x31 +#define WORK_REGISTER_NUM_X 0x33 +#define WORK_REGISTER_NUM_Y 0x34 + +#define WORK_REGISTER_OPMODE 0x3c +#define FACTORY_REGISTER_OPMODE 0x01 + +#define TOUCH_EVENT_DOWN 0x00 +#define TOUCH_EVENT_UP 0x01 +#define TOUCH_EVENT_ON 0x02 +#define TOUCH_EVENT_RESERVED 0x03 + +#define EDT_NAME_LEN 23 +#define EDT_SWITCH_MODE_RETRIES 10 +#define EDT_SWITCH_MODE_DELAY 5 /* msec */ +#define EDT_RAW_DATA_RETRIES 100 +#define EDT_RAW_DATA_DELAY 1 /* msec */ + +struct edt_ft5x06_ts_data { + struct i2c_client *client; + struct input_dev *input; + u16 num_x; + u16 num_y; + +#if defined(CONFIG_DEBUG_FS) + struct dentry *debug_dir; + u8 *raw_buffer; + size_t raw_bufsize; +#endif + + struct mutex mutex; + bool factory_mode; + int threshold; + int gain; + int offset; + int report_rate; + + char name[EDT_NAME_LEN]; +}; + +static int edt_ft5x06_ts_readwrite(struct i2c_client *client, + u16 wr_len, u8 *wr_buf, + u16 rd_len, u8 *rd_buf) +{ + struct i2c_msg wrmsg[2]; + int i = 0; + int ret; + + if (wr_len) { + wrmsg[i].addr = client->addr; + wrmsg[i].flags = 0; + wrmsg[i].len = wr_len; + wrmsg[i].buf = wr_buf; + i++; + } + if (rd_len) { + wrmsg[i].addr = client->addr; + wrmsg[i].flags = I2C_M_RD; + wrmsg[i].len = rd_len; + wrmsg[i].buf = rd_buf; + i++; + } + + ret = i2c_transfer(client->adapter, wrmsg, i); + if (ret < 0) + return ret; + if (ret != i) + return -EIO; + + return 0; +} + +static bool edt_ft5x06_ts_check_crc(struct edt_ft5x06_ts_data *tsdata, + u8 *buf, int buflen) +{ + int i; + u8 crc = 0; + + for (i = 0; i < buflen - 1; i++) + crc ^= buf[i]; + + if (crc != buf[buflen-1]) { + dev_err_ratelimited(&tsdata->client->dev, + "crc error: 0x%02x expected, got 0x%02x\n", + crc, buf[buflen-1]); + return false; + } + + return true; +} + +static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id) +{ + struct edt_ft5x06_ts_data *tsdata = dev_id; + struct device *dev = &tsdata->client->dev; + u8 cmd = 0xf9; + u8 rdbuf[26]; + int i, type, x, y, id; + int error; + + memset(rdbuf, 0, sizeof(rdbuf)); + + error = edt_ft5x06_ts_readwrite(tsdata->client, + sizeof(cmd), &cmd, + sizeof(rdbuf), rdbuf); + if (error) { + dev_err_ratelimited(dev, "Unable to fetch data, error: %d\n", + error); + goto out; + } + + if (rdbuf[0] != 0xaa || rdbuf[1] != 0xaa || rdbuf[2] != 26) { + dev_err_ratelimited(dev, "Unexpected header: %02x%02x%02x!\n", + rdbuf[0], rdbuf[1], rdbuf[2]); + goto out; + } + + if (!edt_ft5x06_ts_check_crc(tsdata, rdbuf, 26)) + goto out; + + for (i = 0; i < MAX_SUPPORT_POINTS; i++) { + u8 *buf = &rdbuf[i * 4 + 5]; + bool down; + + type = buf[0] >> 6; + /* ignore Reserved events */ + if (type == TOUCH_EVENT_RESERVED) + continue; + + x = ((buf[0] << 8) | buf[1]) & 0x0fff; + y = ((buf[2] << 8) | buf[3]) & 0x0fff; + id = (buf[2] >> 4) & 0x0f; + down = (type != TOUCH_EVENT_UP); + + input_mt_slot(tsdata->input, id); + input_mt_report_slot_state(tsdata->input, MT_TOOL_FINGER, down); + + if (!down) + continue; + + input_report_abs(tsdata->input, ABS_MT_POSITION_X, x); + input_report_abs(tsdata->input, ABS_MT_POSITION_Y, y); + } + + input_mt_report_pointer_emulation(tsdata->input, true); + input_sync(tsdata->input); + +out: + return IRQ_HANDLED; +} + +static int edt_ft5x06_register_write(struct edt_ft5x06_ts_data *tsdata, + u8 addr, u8 value) +{ + u8 wrbuf[4]; + + wrbuf[0] = tsdata->factory_mode ? 0xf3 : 0xfc; + wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f; + wrbuf[2] = value; + wrbuf[3] = wrbuf[0] ^ wrbuf[1] ^ wrbuf[2]; + + return edt_ft5x06_ts_readwrite(tsdata->client, 4, wrbuf, 0, NULL); +} + +static int edt_ft5x06_register_read(struct edt_ft5x06_ts_data *tsdata, + u8 addr) +{ + u8 wrbuf[2], rdbuf[2]; + int error; + + wrbuf[0] = tsdata->factory_mode ? 0xf3 : 0xfc; + wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f; + wrbuf[1] |= tsdata->factory_mode ? 0x80 : 0x40; + + error = edt_ft5x06_ts_readwrite(tsdata->client, 2, wrbuf, 2, rdbuf); + if (error) + return error; + + if ((wrbuf[0] ^ wrbuf[1] ^ rdbuf[0]) != rdbuf[1]) { + dev_err(&tsdata->client->dev, + "crc error: 0x%02x expected, got 0x%02x\n", + wrbuf[0] ^ wrbuf[1] ^ rdbuf[0], rdbuf[1]); + return -EIO; + } + + return rdbuf[0]; +} + +struct edt_ft5x06_attribute { + struct device_attribute dattr; + size_t field_offset; + u8 limit_low; + u8 limit_high; + u8 addr; +}; + +#define EDT_ATTR(_field, _mode, _addr, _limit_low, _limit_high) \ + struct edt_ft5x06_attribute edt_ft5x06_attr_##_field = { \ + .dattr = __ATTR(_field, _mode, \ + edt_ft5x06_setting_show, \ + edt_ft5x06_setting_store), \ + .field_offset = \ + offsetof(struct edt_ft5x06_ts_data, _field), \ + .limit_low = _limit_low, \ + .limit_high = _limit_high, \ + .addr = _addr, \ + } + +static ssize_t edt_ft5x06_setting_show(struct device *dev, + struct device_attribute *dattr, + char *buf) +{ + struct i2c_client *client = to_i2c_client(dev); + struct edt_ft5x06_ts_data *tsdata = i2c_get_clientdata(client); + struct edt_ft5x06_attribute *attr = + container_of(dattr, struct edt_ft5x06_attribute, dattr); + u8 *field = (u8 *)((char *)tsdata + attr->field_offset); + int val; + size_t count = 0; + int error = 0; + + mutex_lock(&tsdata->mutex); + + if (tsdata->factory_mode) { + error = -EIO; + goto out; + } + + val = edt_ft5x06_register_read(tsdata, attr->addr); + if (val < 0) { + error = val; + dev_err(&tsdata->client->dev, + "Failed to fetch attribute %s, error %d\n", + dattr->attr.name, error); + goto out; + } + + if (val != *field) { + dev_warn(&tsdata->client->dev, + "%s: read (%d) and stored value (%d) differ\n", + dattr->attr.name, val, *field); + *field = val; + } + + count = scnprintf(buf, PAGE_SIZE, "%d\n", val); +out: + mutex_unlock(&tsdata->mutex); + return error ?: count; +} + +static ssize_t edt_ft5x06_setting_store(struct device *dev, + struct device_attribute *dattr, + const char *buf, size_t count) +{ + struct i2c_client *client = to_i2c_client(dev); + struct edt_ft5x06_ts_data *tsdata = i2c_get_clientdata(client); + struct edt_ft5x06_attribute *attr = + container_of(dattr, struct edt_ft5x06_attribute, dattr); + u8 *field = (u8 *)((char *)tsdata + attr->field_offset); + unsigned int val; + int error; + + mutex_lock(&tsdata->mutex); + + if (tsdata->factory_mode) { + error = -EIO; + goto out; + } + + error = kstrtouint(buf, 0, &val); + if (error) + goto out; + + if (val < attr->limit_low || val > attr->limit_high) { + error = -ERANGE; + goto out; + } + + error = edt_ft5x06_register_write(tsdata, attr->addr, val); + if (error) { + dev_err(&tsdata->client->dev, + "Failed to update attribute %s, error: %d\n", + dattr->attr.name, error); + goto out; + } + + *field = val; + +out: + mutex_unlock(&tsdata->mutex); + return error ?: count; +} + +static EDT_ATTR(gain, S_IWUSR | S_IRUGO, WORK_REGISTER_GAIN, 0, 31); +static EDT_ATTR(offset, S_IWUSR | S_IRUGO, WORK_REGISTER_OFFSET, 0, 31); +static EDT_ATTR(threshold, S_IWUSR | S_IRUGO, + WORK_REGISTER_THRESHOLD, 20, 80); +static EDT_ATTR(report_rate, S_IWUSR | S_IRUGO, + WORK_REGISTER_REPORT_RATE, 3, 14); + +static struct attribute *edt_ft5x06_attrs[] = { + &edt_ft5x06_attr_gain.dattr.attr, + &edt_ft5x06_attr_offset.dattr.attr, + &edt_ft5x06_attr_threshold.dattr.attr, + &edt_ft5x06_attr_report_rate.dattr.attr, + NULL +}; + +static const struct attribute_group edt_ft5x06_attr_group = { + .attrs = edt_ft5x06_attrs, +}; + +#ifdef CONFIG_DEBUG_FS +static int edt_ft5x06_factory_mode(struct edt_ft5x06_ts_data *tsdata) +{ + struct i2c_client *client = tsdata->client; + int retries = EDT_SWITCH_MODE_RETRIES; + int ret; + int error; + + disable_irq(client->irq); + + if (!tsdata->raw_buffer) { + tsdata->raw_bufsize = tsdata->num_x * tsdata->num_y * + sizeof(u16); + tsdata->raw_buffer = kzalloc(tsdata->raw_bufsize, GFP_KERNEL); + if (!tsdata->raw_buffer) { + error = -ENOMEM; + goto err_out; + } + } + + /* mode register is 0x3c when in the work mode */ + error = edt_ft5x06_register_write(tsdata, WORK_REGISTER_OPMODE, 0x03); + if (error) { + dev_err(&client->dev, + "failed to switch to factory mode, error %d\n", error); + goto err_out; + } + + tsdata->factory_mode = true; + do { + mdelay(EDT_SWITCH_MODE_DELAY); + /* mode register is 0x01 when in factory mode */ + ret = edt_ft5x06_register_read(tsdata, FACTORY_REGISTER_OPMODE); + if (ret == 0x03) + break; + } while (--retries > 0); + + if (retries == 0) { + dev_err(&client->dev, "not in factory mode after %dms.\n", + EDT_SWITCH_MODE_RETRIES * EDT_SWITCH_MODE_DELAY); + error = -EIO; + goto err_out; + } + + return 0; + +err_out: + kfree(tsdata->raw_buffer); + tsdata->raw_buffer = NULL; + tsdata->factory_mode = false; + enable_irq(client->irq); + + return error; +} + +static int edt_ft5x06_work_mode(struct edt_ft5x06_ts_data *tsdata) +{ + struct i2c_client *client = tsdata->client; + int retries = EDT_SWITCH_MODE_RETRIES; + int ret; + int error; + + /* mode register is 0x01 when in the factory mode */ + error = edt_ft5x06_register_write(tsdata, FACTORY_REGISTER_OPMODE, 0x1); + if (error) { + dev_err(&client->dev, + "failed to switch to work mode, error: %d\n", error); + return error; + } + + tsdata->factory_mode = false; + + do { + mdelay(EDT_SWITCH_MODE_DELAY); + /* mode register is 0x01 when in factory mode */ + ret = edt_ft5x06_register_read(tsdata, WORK_REGISTER_OPMODE); + if (ret == 0x01) + break; + } while (--retries > 0); + + if (retries == 0) { + dev_err(&client->dev, "not in work mode after %dms.\n", + EDT_SWITCH_MODE_RETRIES * EDT_SWITCH_MODE_DELAY); + tsdata->factory_mode = true; + return -EIO; + } + + kfree(tsdata->raw_buffer); + tsdata->raw_buffer = NULL; + + /* restore parameters */ + edt_ft5x06_register_write(tsdata, WORK_REGISTER_THRESHOLD, + tsdata->threshold); + edt_ft5x06_register_write(tsdata, WORK_REGISTER_GAIN, + tsdata->gain); + edt_ft5x06_register_write(tsdata, WORK_REGISTER_OFFSET, + tsdata->offset); + edt_ft5x06_register_write(tsdata, WORK_REGISTER_REPORT_RATE, + tsdata->report_rate); + + enable_irq(client->irq); + + return 0; +} + +static int edt_ft5x06_debugfs_mode_get(void *data, u64 *mode) +{ + struct edt_ft5x06_ts_data *tsdata = data; + + *mode = tsdata->factory_mode; + + return 0; +}; + +static int edt_ft5x06_debugfs_mode_set(void *data, u64 mode) +{ + struct edt_ft5x06_ts_data *tsdata = data; + int retval = 0; + + if (mode > 1) + return -ERANGE; + + mutex_lock(&tsdata->mutex); + + if (mode != tsdata->factory_mode) { + retval = mode ? edt_ft5x06_factory_mode(tsdata) : + edt_ft5x06_work_mode(tsdata); + } + + mutex_unlock(&tsdata->mutex); + + return retval; +}; + +DEFINE_SIMPLE_ATTRIBUTE(debugfs_mode_fops, edt_ft5x06_debugfs_mode_get, + edt_ft5x06_debugfs_mode_set, "%llu\n"); + +static ssize_t edt_ft5x06_debugfs_raw_data_read(struct file *file, + char __user *buf, size_t count, loff_t *off) +{ + struct edt_ft5x06_ts_data *tsdata = file->private_data; + struct i2c_client *client = tsdata->client; + int retries = EDT_RAW_DATA_RETRIES; + int val, i, error; + size_t read = 0; + int colbytes; + char wrbuf[3]; + u8 *rdbuf; + + if (*off < 0 || *off >= tsdata->raw_bufsize) + return 0; + + mutex_lock(&tsdata->mutex); + + if (!tsdata->factory_mode || !tsdata->raw_buffer) { + error = -EIO; + goto out; + } + + error = edt_ft5x06_register_write(tsdata, 0x08, 0x01); + if (error) { + dev_dbg(&client->dev, + "failed to write 0x08 register, error %d\n", error); + goto out; + } + + do { + msleep(EDT_RAW_DATA_DELAY); + val = edt_ft5x06_register_read(tsdata, 0x08); + if (val < 1) + break; + } while (--retries > 0); + + if (val < 0) { + error = val; + dev_dbg(&client->dev, + "failed to read 0x08 register, error %d\n", error); + goto out; + } + + if (retries == 0) { + dev_dbg(&client->dev, + "timed out waiting for register to settle\n"); + error = -ETIMEDOUT; + goto out; + } + + rdbuf = tsdata->raw_buffer; + colbytes = tsdata->num_y * sizeof(u16); + + wrbuf[0] = 0xf5; + wrbuf[1] = 0x0e; + for (i = 0; i < tsdata->num_x; i++) { + wrbuf[2] = i; /* column index */ + error = edt_ft5x06_ts_readwrite(tsdata->client, + sizeof(wrbuf), wrbuf, + colbytes, rdbuf); + if (error) + goto out; + + rdbuf += colbytes; + } + + read = min_t(size_t, count, tsdata->raw_bufsize - *off); + if (copy_to_user(buf, tsdata->raw_buffer + *off, read)) { + error = -EFAULT; + goto out; + } + + *off += read; +out: + mutex_unlock(&tsdata->mutex); + return error ?: read; +}; + + +static const struct file_operations debugfs_raw_data_fops = { + .open = simple_open, + .read = edt_ft5x06_debugfs_raw_data_read, +}; + +static void +edt_ft5x06_ts_prepare_debugfs(struct edt_ft5x06_ts_data *tsdata, + const char *debugfs_name) +{ + tsdata->debug_dir = debugfs_create_dir(debugfs_name, NULL); + if (!tsdata->debug_dir) + return; + + debugfs_create_u16("num_x", S_IRUSR, tsdata->debug_dir, &tsdata->num_x); + debugfs_create_u16("num_y", S_IRUSR, tsdata->debug_dir, &tsdata->num_y); + + debugfs_create_file("mode", S_IRUSR | S_IWUSR, + tsdata->debug_dir, tsdata, &debugfs_mode_fops); + debugfs_create_file("raw_data", S_IRUSR, + tsdata->debug_dir, tsdata, &debugfs_raw_data_fops); +} + +static void +edt_ft5x06_ts_teardown_debugfs(struct edt_ft5x06_ts_data *tsdata) +{ + if (tsdata->debug_dir) + debugfs_remove_recursive(tsdata->debug_dir); + kfree(tsdata->raw_buffer); +} + +#else + +static inline void +edt_ft5x06_ts_prepare_debugfs(struct edt_ft5x06_ts_data *tsdata, + const char *debugfs_name) +{ +} + +static inline void +edt_ft5x06_ts_teardown_debugfs(struct edt_ft5x06_ts_data *tsdata) +{ +} + +#endif /* CONFIG_DEBUGFS */ + + + +static int edt_ft5x06_ts_reset(struct i2c_client *client, + int reset_pin) +{ + int error; + + if (gpio_is_valid(reset_pin)) { + /* this pulls reset down, enabling the low active reset */ + error = gpio_request_one(reset_pin, GPIOF_OUT_INIT_LOW, + "edt-ft5x06 reset"); + if (error) { + dev_err(&client->dev, + "Failed to request GPIO %d as reset pin, error %d\n", + reset_pin, error); + return error; + } + + mdelay(50); + gpio_set_value(reset_pin, 1); + mdelay(100); + } + + return 0; +} + +static int edt_ft5x06_ts_identify(struct i2c_client *client, + char *model_name, + char *fw_version) +{ + u8 rdbuf[EDT_NAME_LEN]; + char *p; + int error; + + error = edt_ft5x06_ts_readwrite(client, 1, "\xbb", + EDT_NAME_LEN - 1, rdbuf); + if (error) + return error; + + /* remove last '$' end marker */ + rdbuf[EDT_NAME_LEN - 1] = '\0'; + if (rdbuf[EDT_NAME_LEN - 2] == '$') + rdbuf[EDT_NAME_LEN - 2] = '\0'; + + /* look for Model/Version separator */ + p = strchr(rdbuf, '*'); + if (p) + *p++ = '\0'; + + strlcpy(model_name, rdbuf + 1, EDT_NAME_LEN); + strlcpy(fw_version, p ? p : "", EDT_NAME_LEN); + + return 0; +} + +#define EDT_ATTR_CHECKSET(name, reg) \ + if (pdata->name >= edt_ft5x06_attr_##name.limit_low && \ + pdata->name <= edt_ft5x06_attr_##name.limit_high) \ + edt_ft5x06_register_write(tsdata, reg, pdata->name) + +static void +edt_ft5x06_ts_get_defaults(struct edt_ft5x06_ts_data *tsdata, + const struct edt_ft5x06_platform_data *pdata) +{ + if (!pdata->use_parameters) + return; + + /* pick up defaults from the platform data */ + EDT_ATTR_CHECKSET(threshold, WORK_REGISTER_THRESHOLD); + EDT_ATTR_CHECKSET(gain, WORK_REGISTER_GAIN); + EDT_ATTR_CHECKSET(offset, WORK_REGISTER_OFFSET); + EDT_ATTR_CHECKSET(report_rate, WORK_REGISTER_REPORT_RATE); +} + +static void +edt_ft5x06_ts_get_parameters(struct edt_ft5x06_ts_data *tsdata) +{ + tsdata->threshold = edt_ft5x06_register_read(tsdata, + WORK_REGISTER_THRESHOLD); + tsdata->gain = edt_ft5x06_register_read(tsdata, WORK_REGISTER_GAIN); + tsdata->offset = edt_ft5x06_register_read(tsdata, WORK_REGISTER_OFFSET); + tsdata->report_rate = edt_ft5x06_register_read(tsdata, + WORK_REGISTER_REPORT_RATE); + tsdata->num_x = edt_ft5x06_register_read(tsdata, WORK_REGISTER_NUM_X); + tsdata->num_y = edt_ft5x06_register_read(tsdata, WORK_REGISTER_NUM_Y); +} + +static int edt_ft5x06_ts_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + const struct edt_ft5x06_platform_data *pdata = + client->dev.platform_data; + struct edt_ft5x06_ts_data *tsdata; + struct input_dev *input; + int error; + char fw_version[EDT_NAME_LEN]; + + dev_dbg(&client->dev, "probing for EDT FT5x06 I2C\n"); + + if (!pdata) { + dev_err(&client->dev, "no platform data?\n"); + return -EINVAL; + } + + error = edt_ft5x06_ts_reset(client, pdata->reset_pin); + if (error) + return error; + + if (gpio_is_valid(pdata->irq_pin)) { + error = gpio_request_one(pdata->irq_pin, + GPIOF_IN, "edt-ft5x06 irq"); + if (error) { + dev_err(&client->dev, + "Failed to request GPIO %d, error %d\n", + pdata->irq_pin, error); + return error; + } + } + + tsdata = kzalloc(sizeof(*tsdata), GFP_KERNEL); + input = input_allocate_device(); + if (!tsdata || !input) { + dev_err(&client->dev, "failed to allocate driver data.\n"); + error = -ENOMEM; + goto err_free_mem; + } + + mutex_init(&tsdata->mutex); + tsdata->client = client; + tsdata->input = input; + tsdata->factory_mode = false; + + error = edt_ft5x06_ts_identify(client, tsdata->name, fw_version); + if (error) { + dev_err(&client->dev, "touchscreen probe failed\n"); + goto err_free_mem; + } + + edt_ft5x06_ts_get_defaults(tsdata, pdata); + edt_ft5x06_ts_get_parameters(tsdata); + + dev_dbg(&client->dev, + "Model \"%s\", Rev. \"%s\", %dx%d sensors\n", + tsdata->name, fw_version, tsdata->num_x, tsdata->num_y); + + input->name = tsdata->name; + input->id.bustype = BUS_I2C; + input->dev.parent = &client->dev; + + __set_bit(EV_SYN, input->evbit); + __set_bit(EV_KEY, input->evbit); + __set_bit(EV_ABS, input->evbit); + __set_bit(BTN_TOUCH, input->keybit); + input_set_abs_params(input, ABS_X, 0, tsdata->num_x * 64 - 1, 0, 0); + input_set_abs_params(input, ABS_Y, 0, tsdata->num_y * 64 - 1, 0, 0); + input_set_abs_params(input, ABS_MT_POSITION_X, + 0, tsdata->num_x * 64 - 1, 0, 0); + input_set_abs_params(input, ABS_MT_POSITION_Y, + 0, tsdata->num_y * 64 - 1, 0, 0); + error = input_mt_init_slots(input, MAX_SUPPORT_POINTS, 0); + if (error) { + dev_err(&client->dev, "Unable to init MT slots.\n"); + goto err_free_mem; + } + + input_set_drvdata(input, tsdata); + i2c_set_clientdata(client, tsdata); + + error = request_threaded_irq(client->irq, NULL, edt_ft5x06_ts_isr, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + client->name, tsdata); + if (error) { + dev_err(&client->dev, "Unable to request touchscreen IRQ.\n"); + goto err_free_mem; + } + + error = sysfs_create_group(&client->dev.kobj, &edt_ft5x06_attr_group); + if (error) + goto err_free_irq; + + error = input_register_device(input); + if (error) + goto err_remove_attrs; + + edt_ft5x06_ts_prepare_debugfs(tsdata, dev_driver_string(&client->dev)); + device_init_wakeup(&client->dev, 1); + + dev_dbg(&client->dev, + "EDT FT5x06 initialized: IRQ pin %d, Reset pin %d.\n", + pdata->irq_pin, pdata->reset_pin); + + return 0; + +err_remove_attrs: + sysfs_remove_group(&client->dev.kobj, &edt_ft5x06_attr_group); +err_free_irq: + free_irq(client->irq, tsdata); +err_free_mem: + input_free_device(input); + kfree(tsdata); + + if (gpio_is_valid(pdata->irq_pin)) + gpio_free(pdata->irq_pin); + + return error; +} + +static int edt_ft5x06_ts_remove(struct i2c_client *client) +{ + const struct edt_ft5x06_platform_data *pdata = + dev_get_platdata(&client->dev); + struct edt_ft5x06_ts_data *tsdata = i2c_get_clientdata(client); + + edt_ft5x06_ts_teardown_debugfs(tsdata); + sysfs_remove_group(&client->dev.kobj, &edt_ft5x06_attr_group); + + free_irq(client->irq, tsdata); + input_unregister_device(tsdata->input); + + if (gpio_is_valid(pdata->irq_pin)) + gpio_free(pdata->irq_pin); + if (gpio_is_valid(pdata->reset_pin)) + gpio_free(pdata->reset_pin); + + kfree(tsdata); + + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int edt_ft5x06_ts_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + + if (device_may_wakeup(dev)) + enable_irq_wake(client->irq); + + return 0; +} + +static int edt_ft5x06_ts_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + + if (device_may_wakeup(dev)) + disable_irq_wake(client->irq); + + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(edt_ft5x06_ts_pm_ops, + edt_ft5x06_ts_suspend, edt_ft5x06_ts_resume); + +static const struct i2c_device_id edt_ft5x06_ts_id[] = { + { "edt-ft5x06", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, edt_ft5x06_ts_id); + +static struct i2c_driver edt_ft5x06_ts_driver = { + .driver = { + .owner = THIS_MODULE, + .name = "edt_ft5x06", + .pm = &edt_ft5x06_ts_pm_ops, + }, + .id_table = edt_ft5x06_ts_id, + .probe = edt_ft5x06_ts_probe, + .remove = edt_ft5x06_ts_remove, +}; + +module_i2c_driver(edt_ft5x06_ts_driver); + +MODULE_AUTHOR("Simon Budig "); +MODULE_DESCRIPTION("EDT FT5x06 I2C Touchscreen Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/eeti_ts.c b/drivers/input/touchscreen/eeti_ts.c new file mode 100644 index 00000000..8fe5086c --- /dev/null +++ b/drivers/input/touchscreen/eeti_ts.c @@ -0,0 +1,331 @@ +/* + * Touch Screen driver for EETI's I2C connected touch screen panels + * Copyright (c) 2009 Daniel Mack + * + * See EETI's software guide for the protocol specification: + * http://home.eeti.com.tw/web20/eg/guide.htm + * + * Based on migor_ts.c + * Copyright (c) 2008 Magnus Damm + * Copyright (c) 2007 Ujjwal Pande + * + * This file 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 file 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. + * + * You should have received a copy of the GNU General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static bool flip_x; +module_param(flip_x, bool, 0644); +MODULE_PARM_DESC(flip_x, "flip x coordinate"); + +static bool flip_y; +module_param(flip_y, bool, 0644); +MODULE_PARM_DESC(flip_y, "flip y coordinate"); + +struct eeti_ts_priv { + struct i2c_client *client; + struct input_dev *input; + struct work_struct work; + struct mutex mutex; + int irq_gpio, irq, irq_active_high; +}; + +#define EETI_TS_BITDEPTH (11) +#define EETI_MAXVAL ((1 << (EETI_TS_BITDEPTH + 1)) - 1) + +#define REPORT_BIT_PRESSED (1 << 0) +#define REPORT_BIT_AD0 (1 << 1) +#define REPORT_BIT_AD1 (1 << 2) +#define REPORT_BIT_HAS_PRESSURE (1 << 6) +#define REPORT_RES_BITS(v) (((v) >> 1) + EETI_TS_BITDEPTH) + +static inline int eeti_ts_irq_active(struct eeti_ts_priv *priv) +{ + return gpio_get_value(priv->irq_gpio) == priv->irq_active_high; +} + +static void eeti_ts_read(struct work_struct *work) +{ + char buf[6]; + unsigned int x, y, res, pressed, to = 100; + struct eeti_ts_priv *priv = + container_of(work, struct eeti_ts_priv, work); + + mutex_lock(&priv->mutex); + + while (eeti_ts_irq_active(priv) && --to) + i2c_master_recv(priv->client, buf, sizeof(buf)); + + if (!to) { + dev_err(&priv->client->dev, + "unable to clear IRQ - line stuck?\n"); + goto out; + } + + /* drop non-report packets */ + if (!(buf[0] & 0x80)) + goto out; + + pressed = buf[0] & REPORT_BIT_PRESSED; + res = REPORT_RES_BITS(buf[0] & (REPORT_BIT_AD0 | REPORT_BIT_AD1)); + x = buf[2] | (buf[1] << 8); + y = buf[4] | (buf[3] << 8); + + /* fix the range to 11 bits */ + x >>= res - EETI_TS_BITDEPTH; + y >>= res - EETI_TS_BITDEPTH; + + if (flip_x) + x = EETI_MAXVAL - x; + + if (flip_y) + y = EETI_MAXVAL - y; + + if (buf[0] & REPORT_BIT_HAS_PRESSURE) + input_report_abs(priv->input, ABS_PRESSURE, buf[5]); + + input_report_abs(priv->input, ABS_X, x); + input_report_abs(priv->input, ABS_Y, y); + input_report_key(priv->input, BTN_TOUCH, !!pressed); + input_sync(priv->input); + +out: + mutex_unlock(&priv->mutex); +} + +static irqreturn_t eeti_ts_isr(int irq, void *dev_id) +{ + struct eeti_ts_priv *priv = dev_id; + + /* postpone I2C transactions as we are atomic */ + schedule_work(&priv->work); + + return IRQ_HANDLED; +} + +static void eeti_ts_start(struct eeti_ts_priv *priv) +{ + enable_irq(priv->irq); + + /* Read the events once to arm the IRQ */ + eeti_ts_read(&priv->work); +} + +static void eeti_ts_stop(struct eeti_ts_priv *priv) +{ + disable_irq(priv->irq); + cancel_work_sync(&priv->work); +} + +static int eeti_ts_open(struct input_dev *dev) +{ + struct eeti_ts_priv *priv = input_get_drvdata(dev); + + eeti_ts_start(priv); + + return 0; +} + +static void eeti_ts_close(struct input_dev *dev) +{ + struct eeti_ts_priv *priv = input_get_drvdata(dev); + + eeti_ts_stop(priv); +} + +static int eeti_ts_probe(struct i2c_client *client, + const struct i2c_device_id *idp) +{ + struct eeti_ts_platform_data *pdata = client->dev.platform_data; + struct eeti_ts_priv *priv; + struct input_dev *input; + unsigned int irq_flags; + int err = -ENOMEM; + + /* + * In contrast to what's described in the datasheet, there seems + * to be no way of probing the presence of that device using I2C + * commands. So we need to blindly believe it is there, and wait + * for interrupts to occur. + */ + + priv = kzalloc(sizeof(*priv), GFP_KERNEL); + if (!priv) { + dev_err(&client->dev, "failed to allocate driver data\n"); + goto err0; + } + + mutex_init(&priv->mutex); + input = input_allocate_device(); + + if (!input) { + dev_err(&client->dev, "Failed to allocate input device.\n"); + goto err1; + } + + input->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + + input_set_abs_params(input, ABS_X, 0, EETI_MAXVAL, 0, 0); + input_set_abs_params(input, ABS_Y, 0, EETI_MAXVAL, 0, 0); + input_set_abs_params(input, ABS_PRESSURE, 0, 0xff, 0, 0); + + input->name = client->name; + input->id.bustype = BUS_I2C; + input->dev.parent = &client->dev; + input->open = eeti_ts_open; + input->close = eeti_ts_close; + + priv->client = client; + priv->input = input; + priv->irq_gpio = pdata->irq_gpio; + priv->irq = gpio_to_irq(pdata->irq_gpio); + + err = gpio_request_one(pdata->irq_gpio, GPIOF_IN, client->name); + if (err < 0) + goto err1; + + priv->irq_active_high = pdata->irq_active_high; + + irq_flags = priv->irq_active_high ? + IRQF_TRIGGER_RISING : IRQF_TRIGGER_FALLING; + + INIT_WORK(&priv->work, eeti_ts_read); + i2c_set_clientdata(client, priv); + input_set_drvdata(input, priv); + + err = input_register_device(input); + if (err) + goto err2; + + err = request_irq(priv->irq, eeti_ts_isr, irq_flags, + client->name, priv); + if (err) { + dev_err(&client->dev, "Unable to request touchscreen IRQ.\n"); + goto err3; + } + + /* + * Disable the device for now. It will be enabled once the + * input device is opened. + */ + eeti_ts_stop(priv); + + device_init_wakeup(&client->dev, 0); + return 0; + +err3: + input_unregister_device(input); + input = NULL; /* so we dont try to free it below */ +err2: + gpio_free(pdata->irq_gpio); +err1: + input_free_device(input); + kfree(priv); +err0: + return err; +} + +static int eeti_ts_remove(struct i2c_client *client) +{ + struct eeti_ts_priv *priv = i2c_get_clientdata(client); + + free_irq(priv->irq, priv); + /* + * eeti_ts_stop() leaves IRQ disabled. We need to re-enable it + * so that device still works if we reload the driver. + */ + enable_irq(priv->irq); + + input_unregister_device(priv->input); + kfree(priv); + + return 0; +} + +#ifdef CONFIG_PM +static int eeti_ts_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct eeti_ts_priv *priv = i2c_get_clientdata(client); + struct input_dev *input_dev = priv->input; + + mutex_lock(&input_dev->mutex); + + if (input_dev->users) + eeti_ts_stop(priv); + + mutex_unlock(&input_dev->mutex); + + if (device_may_wakeup(&client->dev)) + enable_irq_wake(priv->irq); + + return 0; +} + +static int eeti_ts_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct eeti_ts_priv *priv = i2c_get_clientdata(client); + struct input_dev *input_dev = priv->input; + + if (device_may_wakeup(&client->dev)) + disable_irq_wake(priv->irq); + + mutex_lock(&input_dev->mutex); + + if (input_dev->users) + eeti_ts_start(priv); + + mutex_unlock(&input_dev->mutex); + + return 0; +} + +static SIMPLE_DEV_PM_OPS(eeti_ts_pm, eeti_ts_suspend, eeti_ts_resume); +#endif + +static const struct i2c_device_id eeti_ts_id[] = { + { "eeti_ts", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, eeti_ts_id); + +static struct i2c_driver eeti_ts_driver = { + .driver = { + .name = "eeti_ts", +#ifdef CONFIG_PM + .pm = &eeti_ts_pm, +#endif + }, + .probe = eeti_ts_probe, + .remove = eeti_ts_remove, + .id_table = eeti_ts_id, +}; + +module_i2c_driver(eeti_ts_driver); + +MODULE_DESCRIPTION("EETI Touchscreen driver"); +MODULE_AUTHOR("Daniel Mack "); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/egalax_ts.c b/drivers/input/touchscreen/egalax_ts.c new file mode 100644 index 00000000..39f3df86 --- /dev/null +++ b/drivers/input/touchscreen/egalax_ts.c @@ -0,0 +1,311 @@ +/* + * Driver for EETI eGalax Multiple Touch Controller + * + * Copyright (C) 2011 Freescale Semiconductor, Inc. + * + * based on max11801_ts.c + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +/* EETI eGalax serial touch screen controller is a I2C based multiple + * touch screen controller, it supports 5 point multiple touch. */ + +/* TODO: + - auto idle mode support +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Mouse Mode: some panel may configure the controller to mouse mode, + * which can only report one point at a given time. + * This driver will ignore events in this mode. + */ +#define REPORT_MODE_MOUSE 0x1 +/* + * Vendor Mode: this mode is used to transfer some vendor specific + * messages. + * This driver will ignore events in this mode. + */ +#define REPORT_MODE_VENDOR 0x3 +/* Multiple Touch Mode */ +#define REPORT_MODE_MTTOUCH 0x4 + +#define MAX_SUPPORT_POINTS 5 + +#define EVENT_VALID_OFFSET 7 +#define EVENT_VALID_MASK (0x1 << EVENT_VALID_OFFSET) +#define EVENT_ID_OFFSET 2 +#define EVENT_ID_MASK (0xf << EVENT_ID_OFFSET) +#define EVENT_IN_RANGE (0x1 << 1) +#define EVENT_DOWN_UP (0X1 << 0) + +#define MAX_I2C_DATA_LEN 10 + +#define EGALAX_MAX_X 32760 +#define EGALAX_MAX_Y 32760 +#define EGALAX_MAX_TRIES 100 + +struct egalax_ts { + struct i2c_client *client; + struct input_dev *input_dev; +}; + +static irqreturn_t egalax_ts_interrupt(int irq, void *dev_id) +{ + struct egalax_ts *ts = dev_id; + struct input_dev *input_dev = ts->input_dev; + struct i2c_client *client = ts->client; + u8 buf[MAX_I2C_DATA_LEN]; + int id, ret, x, y, z; + int tries = 0; + bool down, valid; + u8 state; + + do { + ret = i2c_master_recv(client, buf, MAX_I2C_DATA_LEN); + } while (ret == -EAGAIN && tries++ < EGALAX_MAX_TRIES); + + if (ret < 0) + return IRQ_HANDLED; + + if (buf[0] != REPORT_MODE_MTTOUCH) { + /* ignore mouse events and vendor events */ + return IRQ_HANDLED; + } + + state = buf[1]; + x = (buf[3] << 8) | buf[2]; + y = (buf[5] << 8) | buf[4]; + z = (buf[7] << 8) | buf[6]; + + valid = state & EVENT_VALID_MASK; + id = (state & EVENT_ID_MASK) >> EVENT_ID_OFFSET; + down = state & EVENT_DOWN_UP; + + if (!valid || id > MAX_SUPPORT_POINTS) { + dev_dbg(&client->dev, "point invalid\n"); + return IRQ_HANDLED; + } + + input_mt_slot(input_dev, id); + input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, down); + + dev_dbg(&client->dev, "%s id:%d x:%d y:%d z:%d", + down ? "down" : "up", id, x, y, z); + + if (down) { + input_report_abs(input_dev, ABS_MT_POSITION_X, x); + input_report_abs(input_dev, ABS_MT_POSITION_Y, y); + input_report_abs(input_dev, ABS_MT_PRESSURE, z); + } + + input_mt_report_pointer_emulation(input_dev, true); + input_sync(input_dev); + + return IRQ_HANDLED; +} + +/* wake up controller by an falling edge of interrupt gpio. */ +static int egalax_wake_up_device(struct i2c_client *client) +{ + struct device_node *np = client->dev.of_node; + int gpio; + int ret; + + if (!np) + return -ENODEV; + + gpio = of_get_named_gpio(np, "wakeup-gpios", 0); + if (!gpio_is_valid(gpio)) + return -ENODEV; + + ret = gpio_request(gpio, "egalax_irq"); + if (ret < 0) { + dev_err(&client->dev, + "request gpio failed, cannot wake up controller: %d\n", + ret); + return ret; + } + + /* wake up controller via an falling edge on IRQ gpio. */ + gpio_direction_output(gpio, 0); + gpio_set_value(gpio, 1); + + /* controller should be waken up, return irq. */ + gpio_direction_input(gpio); + gpio_free(gpio); + + return 0; +} + +static int egalax_firmware_version(struct i2c_client *client) +{ + static const u8 cmd[MAX_I2C_DATA_LEN] = { 0x03, 0x03, 0xa, 0x01, 0x41 }; + int ret; + + ret = i2c_master_send(client, cmd, MAX_I2C_DATA_LEN); + if (ret < 0) + return ret; + + return 0; +} + +static int egalax_ts_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct egalax_ts *ts; + struct input_dev *input_dev; + int ret; + int error; + + ts = kzalloc(sizeof(struct egalax_ts), GFP_KERNEL); + if (!ts) { + dev_err(&client->dev, "Failed to allocate memory\n"); + return -ENOMEM; + } + + input_dev = input_allocate_device(); + if (!input_dev) { + dev_err(&client->dev, "Failed to allocate memory\n"); + error = -ENOMEM; + goto err_free_ts; + } + + ts->client = client; + ts->input_dev = input_dev; + + /* controller may be in sleep, wake it up. */ + error = egalax_wake_up_device(client); + if (error) { + dev_err(&client->dev, "Failed to wake up the controller\n"); + goto err_free_dev; + } + + ret = egalax_firmware_version(client); + if (ret < 0) { + dev_err(&client->dev, "Failed to read firmware version\n"); + error = -EIO; + goto err_free_dev; + } + + input_dev->name = "EETI eGalax Touch Screen"; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(BTN_TOUCH, input_dev->keybit); + + input_set_abs_params(input_dev, ABS_X, 0, EGALAX_MAX_X, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 0, EGALAX_MAX_Y, 0, 0); + input_set_abs_params(input_dev, + ABS_MT_POSITION_X, 0, EGALAX_MAX_X, 0, 0); + input_set_abs_params(input_dev, + ABS_MT_POSITION_Y, 0, EGALAX_MAX_Y, 0, 0); + input_mt_init_slots(input_dev, MAX_SUPPORT_POINTS, 0); + + input_set_drvdata(input_dev, ts); + + error = request_threaded_irq(client->irq, NULL, egalax_ts_interrupt, + IRQF_TRIGGER_LOW | IRQF_ONESHOT, + "egalax_ts", ts); + if (error < 0) { + dev_err(&client->dev, "Failed to register interrupt\n"); + goto err_free_dev; + } + + error = input_register_device(ts->input_dev); + if (error) + goto err_free_irq; + + i2c_set_clientdata(client, ts); + return 0; + +err_free_irq: + free_irq(client->irq, ts); +err_free_dev: + input_free_device(input_dev); +err_free_ts: + kfree(ts); + + return error; +} + +static int egalax_ts_remove(struct i2c_client *client) +{ + struct egalax_ts *ts = i2c_get_clientdata(client); + + free_irq(client->irq, ts); + + input_unregister_device(ts->input_dev); + kfree(ts); + + return 0; +} + +static const struct i2c_device_id egalax_ts_id[] = { + { "egalax_ts", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, egalax_ts_id); + +#ifdef CONFIG_PM_SLEEP +static int egalax_ts_suspend(struct device *dev) +{ + static const u8 suspend_cmd[MAX_I2C_DATA_LEN] = { + 0x3, 0x6, 0xa, 0x3, 0x36, 0x3f, 0x2, 0, 0, 0 + }; + struct i2c_client *client = to_i2c_client(dev); + int ret; + + ret = i2c_master_send(client, suspend_cmd, MAX_I2C_DATA_LEN); + return ret > 0 ? 0 : ret; +} + +static int egalax_ts_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + + return egalax_wake_up_device(client); +} +#endif + +static SIMPLE_DEV_PM_OPS(egalax_ts_pm_ops, egalax_ts_suspend, egalax_ts_resume); + +static struct of_device_id egalax_ts_dt_ids[] = { + { .compatible = "eeti,egalax_ts" }, + { /* sentinel */ } +}; + +static struct i2c_driver egalax_ts_driver = { + .driver = { + .name = "egalax_ts", + .owner = THIS_MODULE, + .pm = &egalax_ts_pm_ops, + .of_match_table = of_match_ptr(egalax_ts_dt_ids), + }, + .id_table = egalax_ts_id, + .probe = egalax_ts_probe, + .remove = egalax_ts_remove, +}; + +module_i2c_driver(egalax_ts_driver); + +MODULE_AUTHOR("Freescale Semiconductor, Inc."); +MODULE_DESCRIPTION("Touchscreen driver for EETI eGalax touch controller"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/elo.c b/drivers/input/touchscreen/elo.c new file mode 100644 index 00000000..957423d1 --- /dev/null +++ b/drivers/input/touchscreen/elo.c @@ -0,0 +1,408 @@ +/* + * Elo serial touchscreen driver + * + * Copyright (c) 2004 Vojtech Pavlik + */ + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +/* + * This driver can handle serial Elo touchscreens using either the Elo standard + * 'E271-2210' 10-byte protocol, Elo legacy 'E281A-4002' 6-byte protocol, Elo + * legacy 'E271-140' 4-byte protocol and Elo legacy 'E261-280' 3-byte protocol. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define DRIVER_DESC "Elo serial touchscreen driver" + +MODULE_AUTHOR("Vojtech Pavlik "); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL"); + +/* + * Definitions & global arrays. + */ + +#define ELO_MAX_LENGTH 10 + +#define ELO10_PACKET_LEN 8 +#define ELO10_TOUCH 0x03 +#define ELO10_PRESSURE 0x80 + +#define ELO10_LEAD_BYTE 'U' + +#define ELO10_ID_CMD 'i' + +#define ELO10_TOUCH_PACKET 'T' +#define ELO10_ACK_PACKET 'A' +#define ELI10_ID_PACKET 'I' + +/* + * Per-touchscreen data. + */ + +struct elo { + struct input_dev *dev; + struct serio *serio; + struct mutex cmd_mutex; + struct completion cmd_done; + int id; + int idx; + unsigned char expected_packet; + unsigned char csum; + unsigned char data[ELO_MAX_LENGTH]; + unsigned char response[ELO10_PACKET_LEN]; + char phys[32]; +}; + +static void elo_process_data_10(struct elo *elo, unsigned char data) +{ + struct input_dev *dev = elo->dev; + + elo->data[elo->idx] = data; + + switch (elo->idx++) { + case 0: + elo->csum = 0xaa; + if (data != ELO10_LEAD_BYTE) { + dev_dbg(&elo->serio->dev, + "unsynchronized data: 0x%02x\n", data); + elo->idx = 0; + } + break; + + case 9: + elo->idx = 0; + if (data != elo->csum) { + dev_dbg(&elo->serio->dev, + "bad checksum: 0x%02x, expected 0x%02x\n", + data, elo->csum); + break; + } + if (elo->data[1] != elo->expected_packet) { + if (elo->data[1] != ELO10_TOUCH_PACKET) + dev_dbg(&elo->serio->dev, + "unexpected packet: 0x%02x\n", + elo->data[1]); + break; + } + if (likely(elo->data[1] == ELO10_TOUCH_PACKET)) { + input_report_abs(dev, ABS_X, (elo->data[4] << 8) | elo->data[3]); + input_report_abs(dev, ABS_Y, (elo->data[6] << 8) | elo->data[5]); + if (elo->data[2] & ELO10_PRESSURE) + input_report_abs(dev, ABS_PRESSURE, + (elo->data[8] << 8) | elo->data[7]); + input_report_key(dev, BTN_TOUCH, elo->data[2] & ELO10_TOUCH); + input_sync(dev); + } else if (elo->data[1] == ELO10_ACK_PACKET) { + if (elo->data[2] == '0') + elo->expected_packet = ELO10_TOUCH_PACKET; + complete(&elo->cmd_done); + } else { + memcpy(elo->response, &elo->data[1], ELO10_PACKET_LEN); + elo->expected_packet = ELO10_ACK_PACKET; + } + break; + } + elo->csum += data; +} + +static void elo_process_data_6(struct elo *elo, unsigned char data) +{ + struct input_dev *dev = elo->dev; + + elo->data[elo->idx] = data; + + switch (elo->idx++) { + + case 0: + if ((data & 0xc0) != 0xc0) + elo->idx = 0; + break; + + case 1: + if ((data & 0xc0) != 0x80) + elo->idx = 0; + break; + + case 2: + if ((data & 0xc0) != 0x40) + elo->idx = 0; + break; + + case 3: + if (data & 0xc0) { + elo->idx = 0; + break; + } + + input_report_abs(dev, ABS_X, ((elo->data[0] & 0x3f) << 6) | (elo->data[1] & 0x3f)); + input_report_abs(dev, ABS_Y, ((elo->data[2] & 0x3f) << 6) | (elo->data[3] & 0x3f)); + + if (elo->id == 2) { + input_report_key(dev, BTN_TOUCH, 1); + input_sync(dev); + elo->idx = 0; + } + + break; + + case 4: + if (data) { + input_sync(dev); + elo->idx = 0; + } + break; + + case 5: + if ((data & 0xf0) == 0) { + input_report_abs(dev, ABS_PRESSURE, elo->data[5]); + input_report_key(dev, BTN_TOUCH, !!elo->data[5]); + } + input_sync(dev); + elo->idx = 0; + break; + } +} + +static void elo_process_data_3(struct elo *elo, unsigned char data) +{ + struct input_dev *dev = elo->dev; + + elo->data[elo->idx] = data; + + switch (elo->idx++) { + + case 0: + if ((data & 0x7f) != 0x01) + elo->idx = 0; + break; + case 2: + input_report_key(dev, BTN_TOUCH, !(elo->data[1] & 0x80)); + input_report_abs(dev, ABS_X, elo->data[1]); + input_report_abs(dev, ABS_Y, elo->data[2]); + input_sync(dev); + elo->idx = 0; + break; + } +} + +static irqreturn_t elo_interrupt(struct serio *serio, + unsigned char data, unsigned int flags) +{ + struct elo *elo = serio_get_drvdata(serio); + + switch (elo->id) { + case 0: + elo_process_data_10(elo, data); + break; + + case 1: + case 2: + elo_process_data_6(elo, data); + break; + + case 3: + elo_process_data_3(elo, data); + break; + } + + return IRQ_HANDLED; +} + +static int elo_command_10(struct elo *elo, unsigned char *packet) +{ + int rc = -1; + int i; + unsigned char csum = 0xaa + ELO10_LEAD_BYTE; + + mutex_lock(&elo->cmd_mutex); + + serio_pause_rx(elo->serio); + elo->expected_packet = toupper(packet[0]); + init_completion(&elo->cmd_done); + serio_continue_rx(elo->serio); + + if (serio_write(elo->serio, ELO10_LEAD_BYTE)) + goto out; + + for (i = 0; i < ELO10_PACKET_LEN; i++) { + csum += packet[i]; + if (serio_write(elo->serio, packet[i])) + goto out; + } + + if (serio_write(elo->serio, csum)) + goto out; + + wait_for_completion_timeout(&elo->cmd_done, HZ); + + if (elo->expected_packet == ELO10_TOUCH_PACKET) { + /* We are back in reporting mode, the command was ACKed */ + memcpy(packet, elo->response, ELO10_PACKET_LEN); + rc = 0; + } + + out: + mutex_unlock(&elo->cmd_mutex); + return rc; +} + +static int elo_setup_10(struct elo *elo) +{ + static const char *elo_types[] = { "Accu", "Dura", "Intelli", "Carroll" }; + struct input_dev *dev = elo->dev; + unsigned char packet[ELO10_PACKET_LEN] = { ELO10_ID_CMD }; + + if (elo_command_10(elo, packet)) + return -1; + + dev->id.version = (packet[5] << 8) | packet[4]; + + input_set_abs_params(dev, ABS_X, 96, 4000, 0, 0); + input_set_abs_params(dev, ABS_Y, 96, 4000, 0, 0); + if (packet[3] & ELO10_PRESSURE) + input_set_abs_params(dev, ABS_PRESSURE, 0, 255, 0, 0); + + dev_info(&elo->serio->dev, + "%sTouch touchscreen, fw: %02x.%02x, features: 0x%02x, controller: 0x%02x\n", + elo_types[(packet[1] -'0') & 0x03], + packet[5], packet[4], packet[3], packet[7]); + + return 0; +} + +/* + * elo_disconnect() is the opposite of elo_connect() + */ + +static void elo_disconnect(struct serio *serio) +{ + struct elo *elo = serio_get_drvdata(serio); + + input_get_device(elo->dev); + input_unregister_device(elo->dev); + serio_close(serio); + serio_set_drvdata(serio, NULL); + input_put_device(elo->dev); + kfree(elo); +} + +/* + * elo_connect() is the routine that is called when someone adds a + * new serio device that supports Gunze protocol and registers it as + * an input device. + */ + +static int elo_connect(struct serio *serio, struct serio_driver *drv) +{ + struct elo *elo; + struct input_dev *input_dev; + int err; + + elo = kzalloc(sizeof(struct elo), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!elo || !input_dev) { + err = -ENOMEM; + goto fail1; + } + + elo->serio = serio; + elo->id = serio->id.id; + elo->dev = input_dev; + elo->expected_packet = ELO10_TOUCH_PACKET; + mutex_init(&elo->cmd_mutex); + init_completion(&elo->cmd_done); + snprintf(elo->phys, sizeof(elo->phys), "%s/input0", serio->phys); + + input_dev->name = "Elo Serial TouchScreen"; + input_dev->phys = elo->phys; + input_dev->id.bustype = BUS_RS232; + input_dev->id.vendor = SERIO_ELO; + input_dev->id.product = elo->id; + input_dev->id.version = 0x0100; + input_dev->dev.parent = &serio->dev; + + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + + serio_set_drvdata(serio, elo); + err = serio_open(serio, drv); + if (err) + goto fail2; + + switch (elo->id) { + + case 0: /* 10-byte protocol */ + if (elo_setup_10(elo)) + goto fail3; + + break; + + case 1: /* 6-byte protocol */ + input_set_abs_params(input_dev, ABS_PRESSURE, 0, 15, 0, 0); + + case 2: /* 4-byte protocol */ + input_set_abs_params(input_dev, ABS_X, 96, 4000, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 96, 4000, 0, 0); + break; + + case 3: /* 3-byte protocol */ + input_set_abs_params(input_dev, ABS_X, 0, 255, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 0, 255, 0, 0); + break; + } + + err = input_register_device(elo->dev); + if (err) + goto fail3; + + return 0; + + fail3: serio_close(serio); + fail2: serio_set_drvdata(serio, NULL); + fail1: input_free_device(input_dev); + kfree(elo); + return err; +} + +/* + * The serio driver structure. + */ + +static struct serio_device_id elo_serio_ids[] = { + { + .type = SERIO_RS232, + .proto = SERIO_ELO, + .id = SERIO_ANY, + .extra = SERIO_ANY, + }, + { 0 } +}; + +MODULE_DEVICE_TABLE(serio, elo_serio_ids); + +static struct serio_driver elo_drv = { + .driver = { + .name = "elo", + }, + .description = DRIVER_DESC, + .id_table = elo_serio_ids, + .interrupt = elo_interrupt, + .connect = elo_connect, + .disconnect = elo_disconnect, +}; + +module_serio_driver(elo_drv); diff --git a/drivers/input/touchscreen/focaltech/FT5306_Spreadtrum_tiger_TRYLY_COB_0x2c_app_3.3V.h b/drivers/input/touchscreen/focaltech/FT5306_Spreadtrum_tiger_TRYLY_COB_0x2c_app_3.3V.h new file mode 100644 index 00000000..331fc3d8 --- /dev/null +++ b/drivers/input/touchscreen/focaltech/FT5306_Spreadtrum_tiger_TRYLY_COB_0x2c_app_3.3V.h @@ -0,0 +1,1660 @@ +0x2, 0x5, 0xf0,0x2, 0x5a,0xa9,0xee,0x30,0xe7,0x7, 0xc3,0xe4,0x9f,0xff,0xe4,0x9e, +0xfe,0x22,0x12,0x0, 0x2, 0x3, 0x4, 0x6, 0x7, 0x8, 0xa, 0x2, 0x59,0x7d,0x2, 0x17, +0xfa,0x22,0x22,0x2, 0x3c,0xd1,0xbd,0x77,0xb, 0xef,0xc3,0x94,0x13,0x40,0x19,0x74, +0xf3,0x2f,0xff,0x22,0xbd,0x78,0xb, 0xef,0xc3,0x94,0x13,0x40,0xb, 0x74,0xf8,0x2f, +0xff,0x22,0xbd,0x79,0x1, 0x22,0x7f,0xff,0x22,0xff,0xff,0x2, 0x3c,0xba,0x8f,0xd9, +0x8d,0xda,0x22,0x2, 0x64,0x5c,0xe7,0x9, 0xf6,0x8, 0xdf,0xfa,0x80,0x46,0xe7,0x9, +0xf2,0x8, 0xdf,0xfa,0x80,0x3e,0x88,0x82,0x8c,0x83,0xe7,0x9, 0xf0,0xa3,0xdf,0xfa, +0x80,0x32,0xe3,0x9, 0xf6,0x8, 0xdf,0xfa,0x80,0x78,0xe3,0x9, 0xf2,0x8, 0xdf,0xfa, +0x80,0x70,0x88,0x82,0x8c,0x83,0xe3,0x9, 0xf0,0xa3,0xdf,0xfa,0x80,0x64,0x89,0x82, +0x8a,0x83,0xe0,0xa3,0xf6,0x8, 0xdf,0xfa,0x80,0x58,0x89,0x82,0x8a,0x83,0xe0,0xa3, +0xf2,0x8, 0xdf,0xfa,0x80,0x4c,0x80,0xd2,0x80,0xfa,0x80,0xc6,0x80,0xd4,0x80,0x69, +0x80,0xf2,0x80,0x33,0x80,0x10,0x80,0xa6,0x80,0xea,0x80,0x9a,0x80,0xa8,0x80,0xda, +0x80,0xe2,0x80,0xca,0x80,0x33,0x89,0x82,0x8a,0x83,0xec,0xfa,0xe4,0x93,0xa3,0xc8, +0xc5,0x82,0xc8,0xcc,0xc5,0x83,0xcc,0xf0,0xa3,0xc8,0xc5,0x82,0xc8,0xcc,0xc5,0x83, +0xcc,0xdf,0xe9,0xde,0xe7,0x80,0xd, 0x89,0x82,0x8a,0x83,0xe4,0x93,0xa3,0xf6,0x8, +0xdf,0xf9,0xec,0xfa,0xa9,0xf0,0xed,0xfb,0x22,0x89,0x82,0x8a,0x83,0xec,0xfa,0xe0, +0xa3,0xc8,0xc5,0x82,0xc8,0xcc,0xc5,0x83,0xcc,0xf0,0xa3,0xc8,0xc5,0x82,0xc8,0xcc, +0xc5,0x83,0xcc,0xdf,0xea,0xde,0xe8,0x80,0xdb,0x89,0x82,0x8a,0x83,0xe4,0x93,0xa3, +0xf2,0x8, 0xdf,0xf9,0x80,0xcc,0x88,0xf0,0xef,0x60,0x1, 0xe, 0x4e,0x60,0xc3,0x88, +0xf0,0xed,0x24,0x2, 0xb4,0x4, 0x0, 0x50,0xb9,0xf5,0x82,0xeb,0x24,0x2, 0xb4,0x4, +0x0, 0x50,0xaf,0x23,0x23,0x45,0x82,0x23,0x90,0x0, 0xa6,0x73,0xbb,0x1, 0x6, 0x89, +0x82,0x8a,0x83,0xe0,0x22,0x50,0x2, 0xe7,0x22,0xbb,0xfe,0x2, 0xe3,0x22,0x89,0x82, +0x8a,0x83,0xe4,0x93,0x22,0xbb,0x1, 0xc, 0xe5,0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a, +0xf5,0x83,0xe0,0x22,0x50,0x6, 0xe9,0x25,0x82,0xf8,0xe6,0x22,0xbb,0xfe,0x6, 0xe9, +0x25,0x82,0xf8,0xe2,0x22,0xe5,0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a,0xf5,0x83,0xe4, +0x93,0x22,0xbb,0x1, 0xf, 0xf8,0xe5,0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a,0xf5,0x83, +0xe0,0x28,0xf0,0x22,0x50,0x9, 0xc5,0x82,0x29,0xf8,0xe5,0x82,0x26,0xf6,0x22,0xbb, +0xfe,0x9, 0xc5,0x82,0x29,0xf8,0xe2,0x25,0x82,0xf2,0x22,0xf8,0xea,0x25,0x83,0xf5, +0x83,0xe9,0x93,0x28,0x22,0xbb,0x1, 0x6, 0x89,0x82,0x8a,0x83,0xf0,0x22,0x50,0x2, +0xf7,0x22,0xbb,0xfe,0x1, 0xf3,0x22,0xf8,0xbb,0x1, 0xd, 0xe5,0x82,0x29,0xf5,0x82, +0xe5,0x83,0x3a,0xf5,0x83,0xe8,0xf0,0x22,0x50,0x6, 0xe9,0x25,0x82,0xc8,0xf6,0x22, +0xbb,0xfe,0x5, 0xe9,0x25,0x82,0xc8,0xf2,0x22,0xef,0x8d,0xf0,0xa4,0xa8,0xf0,0xcf, +0x8c,0xf0,0xa4,0x28,0xce,0x8d,0xf0,0xa4,0x2e,0xfe,0x22,0xbc,0x0, 0xb, 0xbe,0x0, +0x29,0xef,0x8d,0xf0,0x84,0xff,0xad,0xf0,0x22,0xe4,0xcc,0xf8,0x75,0xf0,0x8, 0xef, +0x2f,0xff,0xee,0x33,0xfe,0xec,0x33,0xfc,0xee,0x9d,0xec,0x98,0x40,0x5, 0xfc,0xee, +0x9d,0xfe,0xf, 0xd5,0xf0,0xe9,0xe4,0xce,0xfd,0x22,0xed,0xf8,0xf5,0xf0,0xee,0x84, +0x20,0xd2,0x1c,0xfe,0xad,0xf0,0x75,0xf0,0x8, 0xef,0x2f,0xff,0xed,0x33,0xfd,0x40, +0x7, 0x98,0x50,0x6, 0xd5,0xf0,0xf2,0x22,0xc3,0x98,0xfd,0xf, 0xd5,0xf0,0xea,0x22, +0xc5,0xf0,0xf8,0xa3,0xe0,0x28,0xf0,0xc5,0xf0,0xf8,0xe5,0x82,0x15,0x82,0x70,0x2, +0x15,0x83,0xe0,0x38,0xf0,0x22,0xa3,0xf8,0xe0,0xc5,0xf0,0x25,0xf0,0xf0,0xe5,0x82, +0x15,0x82,0x70,0x2, 0x15,0x83,0xe0,0xc8,0x38,0xf0,0xe8,0x22,0xbb,0x1, 0xa, 0x89, +0x82,0x8a,0x83,0xe0,0xf5,0xf0,0xa3,0xe0,0x22,0x50,0x6, 0x87,0xf0,0x9, 0xe7,0x19, +0x22,0xbb,0xfe,0x7, 0xe3,0xf5,0xf0,0x9, 0xe3,0x19,0x22,0x89,0x82,0x8a,0x83,0xe4, +0x93,0xf5,0xf0,0x74,0x1, 0x93,0x22,0xbb,0x1, 0x10,0xe5,0x82,0x29,0xf5,0x82,0xe5, +0x83,0x3a,0xf5,0x83,0xe0,0xf5,0xf0,0xa3,0xe0,0x22,0x50,0x9, 0xe9,0x25,0x82,0xf8, +0x86,0xf0,0x8, 0xe6,0x22,0xbb,0xfe,0xa, 0xe9,0x25,0x82,0xf8,0xe2,0xf5,0xf0,0x8, +0xe2,0x22,0xe5,0x83,0x2a,0xf5,0x83,0xe9,0x93,0xf5,0xf0,0xa3,0xe9,0x93,0x22,0xbb, +0x1, 0xd, 0xc5,0x82,0x29,0xc5,0x82,0xc5,0x83,0x3a,0xc5,0x83,0x2, 0x2, 0x60,0x50, +0x11,0xc5,0x82,0x29,0xf8,0x8, 0xe5,0xf0,0x26,0xf6,0x18,0xf5,0xf0,0xe5,0x82,0x36, +0xf6,0x22,0xbb,0xfe,0x11,0xc5,0x82,0x29,0xf8,0x8, 0xe2,0x25,0xf0,0xf5,0xf0,0xf2, +0x18,0xe2,0x35,0x82,0xf2,0x22,0xf8,0xe5,0x82,0x29,0xf5,0x82,0xe5,0x83,0x2a,0xf5, +0x83,0x74,0x1, 0x93,0x25,0xf0,0xf5,0xf0,0xe4,0x93,0x38,0x22,0xbb,0x1, 0xa, 0x89, +0x82,0x8a,0x83,0xf0,0xe5,0xf0,0xa3,0xf0,0x22,0x50,0x6, 0xf7,0x9, 0xa7,0xf0,0x19, +0x22,0xbb,0xfe,0x6, 0xf3,0xe5,0xf0,0x9, 0xf3,0x19,0x22,0xf8,0xbb,0x1, 0x11,0xe5, +0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a,0xf5,0x83,0xe8,0xf0,0xe5,0xf0,0xa3,0xf0,0x22, +0x50,0x9, 0xe9,0x25,0x82,0xc8,0xf6,0x8, 0xa6,0xf0,0x22,0xbb,0xfe,0x9, 0xe9,0x25, +0x82,0xc8,0xf2,0xe5,0xf0,0x8, 0xf2,0x22,0xe8,0x8f,0xf0,0xa4,0xcc,0x8b,0xf0,0xa4, +0x2c,0xfc,0xe9,0x8e,0xf0,0xa4,0x2c,0xfc,0x8a,0xf0,0xed,0xa4,0x2c,0xfc,0xea,0x8e, +0xf0,0xa4,0xcd,0xa8,0xf0,0x8b,0xf0,0xa4,0x2d,0xcc,0x38,0x25,0xf0,0xfd,0xe9,0x8f, +0xf0,0xa4,0x2c,0xcd,0x35,0xf0,0xfc,0xeb,0x8e,0xf0,0xa4,0xfe,0xa9,0xf0,0xeb,0x8f, +0xf0,0xa4,0xcf,0xc5,0xf0,0x2e,0xcd,0x39,0xfe,0xe4,0x3c,0xfc,0xea,0xa4,0x2d,0xce, +0x35,0xf0,0xfd,0xe4,0x3c,0xfc,0x22,0x75,0xf0,0x8, 0x75,0x82,0x0, 0xef,0x2f,0xff, +0xee,0x33,0xfe,0xcd,0x33,0xcd,0xcc,0x33,0xcc,0xc5,0x82,0x33,0xc5,0x82,0x9b,0xed, +0x9a,0xec,0x99,0xe5,0x82,0x98,0x40,0xc, 0xf5,0x82,0xee,0x9b,0xfe,0xed,0x9a,0xfd, +0xec,0x99,0xfc,0xf, 0xd5,0xf0,0xd6,0xe4,0xce,0xfb,0xe4,0xcd,0xfa,0xe4,0xcc,0xf9, +0xa8,0x82,0x22,0xb8,0x0, 0xc1,0xb9,0x0, 0x59,0xba,0x0, 0x2d,0xec,0x8b,0xf0,0x84, +0xcf,0xce,0xcd,0xfc,0xe5,0xf0,0xcb,0xf9,0x78,0x18,0xef,0x2f,0xff,0xee,0x33,0xfe, +0xed,0x33,0xfd,0xec,0x33,0xfc,0xeb,0x33,0xfb,0x10,0xd7,0x3, 0x99,0x40,0x4, 0xeb, +0x99,0xfb,0xf, 0xd8,0xe5,0xe4,0xf9,0xfa,0x22,0x78,0x18,0xef,0x2f,0xff,0xee,0x33, +0xfe,0xed,0x33,0xfd,0xec,0x33,0xfc,0xc9,0x33,0xc9,0x10,0xd7,0x5, 0x9b,0xe9,0x9a, +0x40,0x7, 0xec,0x9b,0xfc,0xe9,0x9a,0xf9,0xf, 0xd8,0xe0,0xe4,0xc9,0xfa,0xe4,0xcc, +0xfb,0x22,0x75,0xf0,0x10,0xef,0x2f,0xff,0xee,0x33,0xfe,0xed,0x33,0xfd,0xcc,0x33, +0xcc,0xc8,0x33,0xc8,0x10,0xd7,0x7, 0x9b,0xec,0x9a,0xe8,0x99,0x40,0xa, 0xed,0x9b, +0xfd,0xec,0x9a,0xfc,0xe8,0x99,0xf8,0xf, 0xd5,0xf0,0xda,0xe4,0xcd,0xfb,0xe4,0xcc, +0xfa,0xe4,0xc8,0xf9,0x22,0xeb,0x9f,0xf5,0xf0,0xea,0x9e,0x42,0xf0,0xe9,0x9d,0x42, +0xf0,0xec,0x64,0x80,0xc8,0x64,0x80,0x98,0x45,0xf0,0x22,0xeb,0x9f,0xf5,0xf0,0xea, +0x9e,0x42,0xf0,0xe9,0x9d,0x42,0xf0,0xe8,0x9c,0x45,0xf0,0x22,0xe8,0x60,0xf, 0xec, +0xc3,0x13,0xfc,0xed,0x13,0xfd,0xee,0x13,0xfe,0xef,0x13,0xff,0xd8,0xf1,0x22,0xe8, +0x60,0xf, 0xef,0xc3,0x33,0xff,0xee,0x33,0xfe,0xed,0x33,0xfd,0xec,0x33,0xfc,0xd8, +0xf1,0x22,0xec,0xf0,0xa3,0xed,0xf0,0xa3,0xee,0xf0,0xa3,0xef,0xf0,0x22,0xa8,0x82, +0x85,0x83,0xf0,0xd0,0x83,0xd0,0x82,0x12,0x5, 0x15,0x12,0x5, 0x15,0x12,0x5, 0x15, +0x12,0x5, 0x15,0xe4,0x73,0xe4,0x93,0xa3,0xc5,0x83,0xc5,0xf0,0xc5,0x83,0xc8,0xc5, +0x82,0xc8,0xf0,0xa3,0xc5,0x83,0xc5,0xf0,0xc5,0x83,0xc8,0xc5,0x82,0xc8,0x22,0xf5, +0xf0,0xc5,0x82,0xa4,0xc5,0x82,0xc5,0xf0,0xc5,0x83,0xa4,0x25,0x83,0xf5,0x83,0x22, +0xa4,0x25,0x82,0xf5,0x82,0xe5,0xf0,0x35,0x83,0xf5,0x83,0x22,0xbb,0x1, 0x7, 0x89, +0x82,0x8a,0x83,0x2, 0x5, 0xd2,0x50,0x5, 0xe9,0xf8,0x2, 0x5, 0xc9,0xbb,0xfe,0x5, +0xe9,0xf8,0x2, 0x5, 0xdb,0x89,0x82,0x8a,0x83,0x2, 0x5, 0xe4,0xbb,0x1, 0xd, 0xe5, +0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a,0xf5,0x83,0x2, 0x5, 0xd2,0x50,0x7, 0xe9,0x25, +0x82,0xf8,0x2, 0x5, 0xc9,0xbb,0xfe,0x7, 0xe9,0x25,0x82,0xf8,0x2, 0x5, 0xdb,0xe5, +0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a,0xf5,0x83,0x2, 0x5, 0xe4,0xec,0x8e,0xf0,0xa4, +0xcc,0xc5,0xf0,0xcc,0xcd,0xf8,0xef,0xa4,0xce,0xc5,0xf0,0x2d,0xfd,0xe4,0x3c,0xfc, +0xe8,0xa4,0x2e,0xc8,0xc5,0xf0,0x3d,0xfd,0xe4,0x3c,0xfc,0xef,0xa4,0xff,0xe5,0xf0, +0x28,0xfe,0xe4,0x3d,0xfd,0xe4,0x3c,0xfc,0x22,0xe6,0xfb,0x8, 0xe6,0xfa,0x8, 0xe6, +0xf9,0x22,0xe0,0xfb,0xa3,0xe0,0xfa,0xa3,0xe0,0xf9,0x22,0xe2,0xfb,0x8, 0xe2,0xfa, +0x8, 0xe2,0xf9,0x22,0xe4,0x93,0xfb,0x74,0x1, 0x93,0xfa,0x74,0x2, 0x93,0xf9,0x22, +0x78,0xff,0xe4,0xf6,0xd8,0xfd,0x75,0x81,0x98,0x2, 0x6, 0x37,0x2, 0x36,0x12,0xe4, +0x93,0xa3,0xf8,0xe4,0x93,0xa3,0x40,0x3, 0xf6,0x80,0x1, 0xf2,0x8, 0xdf,0xf4,0x80, +0x29,0xe4,0x93,0xa3,0xf8,0x54,0x7, 0x24,0xc, 0xc8,0xc3,0x33,0xc4,0x54,0xf, 0x44, +0x20,0xc8,0x83,0x40,0x4, 0xf4,0x56,0x80,0x1, 0x46,0xf6,0xdf,0xe4,0x80,0xb, 0x1, +0x2, 0x4, 0x8, 0x10,0x20,0x40,0x80,0x90,0x6, 0x7c,0xe4,0x7e,0x1, 0x93,0x60,0xbc, +0xa3,0xff,0x54,0x3f,0x30,0xe5,0x9, 0x54,0x1f,0xfe,0xe4,0x93,0xa3,0x60,0x1, 0xe, +0xcf,0x54,0xc0,0x25,0xe0,0x60,0xa8,0x40,0xb8,0xe4,0x93,0xa3,0xfa,0xe4,0x93,0xa3, +0xf8,0xe4,0x93,0xa3,0xc8,0xc5,0x82,0xc8,0xca,0xc5,0x83,0xca,0xf0,0xa3,0xc8,0xc5, +0x82,0xc8,0xca,0xc5,0x83,0xca,0xdf,0xe9,0xde,0xe7,0x80,0xbe,0xc1,0x80,0x41,0xa, +0xe3,0x0, 0x41,0xc, 0xa7,0x0, 0x41,0xc, 0xa9,0x0, 0x41,0xc, 0xad,0x0, 0x41,0xc, +0xaa,0x0, 0x2, 0x12,0x0, 0x0, 0x41,0xc, 0xea,0x2, 0x41,0xc, 0xeb,0x0, 0x1, 0x16, +0x0, 0x41,0xc, 0xec,0x0, 0x1, 0x17,0x0, 0x0, 0xab,0x45,0xaa,0x46,0xa9,0x47,0x85, +0x4a,0x82,0x75,0x83,0x0, 0x22,0xab,0x5f,0xaa,0x60,0xa9,0x61,0x85,0x64,0x82,0x75, +0x83,0x0, 0x22,0xe5,0x49,0xab,0x45,0xaa,0x46,0xa9,0x47,0x22,0xe5,0x63,0xab,0x5f, +0xaa,0x60,0xa9,0x61,0x22,0xbd,0x77,0xb, 0xef,0xc3,0x94,0x6, 0x40,0x19,0x74,0xd, +0x2f,0xff,0x22,0xbd,0x78,0xb, 0xef,0xc3,0x94,0xb, 0x40,0xb, 0x74,0x8, 0x2f,0xff, +0x22,0xbd,0x79,0x1, 0x22,0x7f,0xff,0x22,0x10,0x10,0x10,0x1c,0x19,0x14,0x10,0xe, +0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x1, 0x2, 0x4, 0x8, 0x10,0x20,0x40,0x80,0x8b, +0x34,0x8a,0x35,0x89,0x36,0xe5,0x38,0xd3,0x94,0xb, 0x50,0x3b,0xed,0x94,0xf, 0x50, +0x36,0xe5,0x38,0xc3,0x94,0xb, 0x50,0x2f,0xe5,0x38,0x90,0xf, 0x48,0x93,0xff,0x24, +0x3, 0xab,0x34,0x20,0xe0,0x13,0xe5,0x36,0x24,0x10,0xf9,0xe4,0x35,0x35,0xfa,0xef, +0xf1,0x6b,0x54,0xf0,0xf1,0x58,0x4d,0x80,0xc, 0xf1,0x5c,0x54,0xf, 0xf1,0x58,0xff, +0xed,0xc4,0x54,0xf0,0x4f,0x31,0xc5,0x22,0x31,0xc5,0xab,0x34,0xe5,0x36,0x24,0x10, +0xf9,0xe4,0x35,0x35,0xfa,0xe5,0x38,0x90,0xf, 0x48,0x93,0x24,0x3, 0xff,0xe4,0x33, +0xa2,0xe7,0x13,0xfe,0xef,0x13,0x29,0xf9,0xea,0x3e,0xfa,0x21,0x4c,0x90,0x0, 0x41, +0x21,0x65,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x8b,0x42,0x8a,0x43,0x89,0x44,0xe4,0xf5,0x4a,0xe5,0x4a,0xc3,0x95,0x48,0x40,0x3, +0x2, 0xa, 0x56,0xab,0x42,0xaa,0x43,0xa9,0x44,0x12,0x6, 0xaf,0x12,0x1, 0x65,0xb4, +0x1c,0x0, 0x40,0x3, 0x2, 0xa, 0x51,0x90,0x8, 0x2e,0xf8,0x28,0x28,0x73,0x2, 0x8, +0x82,0x2, 0x8, 0x89,0x2, 0x8, 0x91,0x2, 0x8, 0x99,0x2, 0x8, 0xa1,0x2, 0x8, 0xa9, +0x2, 0x8, 0xb1,0x2, 0x8, 0xc7,0x2, 0x8, 0xdd,0x2, 0x8, 0xf3,0x2, 0x9, 0x9, 0x2, +0x9, 0x1f,0x2, 0x9, 0x42,0x2, 0x9, 0x65,0x2, 0x9, 0x88,0x2, 0x9, 0xab,0x2, 0x9, +0xc1,0x2, 0x9, 0xd7,0x2, 0x9, 0xed,0x2, 0xa, 0x3, 0x2, 0xa, 0x18,0x2, 0xa, 0x1f, +0x2, 0xa, 0x26,0x2, 0xa, 0x2d,0x2, 0xa, 0x34,0x2, 0xa, 0x3b,0x2, 0xa, 0x42,0x2, +0xa, 0x49,0x12,0x6, 0xa9,0xe4,0x2, 0xa, 0x4e,0x12,0x6, 0xa9,0x74,0x1, 0x2, 0xa, +0x4e,0x12,0x6, 0xa9,0x74,0x2, 0x2, 0xa, 0x4e,0x12,0x6, 0xa9,0x74,0x3, 0x2, 0xa, +0x4e,0x12,0x6, 0xa9,0x74,0x4, 0x2, 0xa, 0x4e,0x12,0x6, 0xa9,0x74,0x5, 0x2, 0xa, +0x4e,0x12,0x6, 0xc3,0xb4,0x77,0x8, 0x12,0x6, 0xaf,0x74,0x13,0x2, 0xa, 0x4e,0x12, +0x6, 0xaf,0x74,0x6, 0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x77,0x8, 0x12,0x6, 0xaf, +0x74,0x14,0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0x7, 0x2, 0xa, 0x4e,0x12,0x6, 0xc3, +0xb4,0x77,0x8, 0x12,0x6, 0xaf,0x74,0x15,0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0x8, +0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x77,0x8, 0x12,0x6, 0xaf,0x74,0x16,0x2, 0xa, +0x4e,0x12,0x6, 0xaf,0x74,0x9, 0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x77,0x8, 0x12, +0x6, 0xaf,0x74,0x17,0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0xa, 0x2, 0xa, 0x4e,0xe5, +0x49,0xb4,0x77,0x8, 0x12,0x6, 0xa9,0x74,0x18,0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4, +0x78,0x8, 0x12,0x6, 0xaf,0x74,0x13,0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0xb, 0x2, +0xa, 0x4e,0xe5,0x49,0xb4,0x77,0x8, 0x12,0x6, 0xa9,0x74,0x19,0x2, 0xa, 0x4e,0x12, +0x6, 0xc3,0xb4,0x78,0x8, 0x12,0x6, 0xaf,0x74,0x14,0x2, 0xa, 0x4e,0x12,0x6, 0xaf, +0x74,0xc, 0x2, 0xa, 0x4e,0xe5,0x49,0xb4,0x77,0x8, 0x12,0x6, 0xa9,0x74,0x1a,0x2, +0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x78,0x8, 0x12,0x6, 0xaf,0x74,0x15,0x2, 0xa, 0x4e, +0x12,0x6, 0xaf,0x74,0xd, 0x2, 0xa, 0x4e,0xe5,0x49,0xb4,0x77,0x8, 0x12,0x6, 0xa9, +0x74,0x1b,0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x78,0x8, 0x12,0x6, 0xaf,0x74,0x16, +0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0xe, 0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x78, +0x8, 0x12,0x6, 0xaf,0x74,0x17,0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0xf, 0x2, 0xa, +0x4e,0x12,0x6, 0xc3,0xb4,0x78,0x8, 0x12,0x6, 0xaf,0x74,0x18,0x2, 0xa, 0x4e,0x12, +0x6, 0xaf,0x74,0x10,0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x78,0x8, 0x12,0x6, 0xaf, +0x74,0x19,0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0x11,0x2, 0xa, 0x4e,0x12,0x6, 0xc3, +0xb4,0x78,0x8, 0x12,0x6, 0xaf,0x74,0x1a,0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0x12, +0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x78,0x8, 0x12,0x6, 0xaf,0x74,0x1b,0x2, 0xa, +0x4e,0x12,0x6, 0xaf,0x74,0x13,0x80,0x36,0x12,0x6, 0xa9,0x74,0x14,0x80,0x2f,0x12, +0x6, 0xa9,0x74,0x15,0x80,0x28,0x12,0x6, 0xa9,0x74,0x16,0x80,0x21,0x12,0x6, 0xa9, +0x74,0x17,0x80,0x1a,0x12,0x6, 0xa9,0x74,0x18,0x80,0x13,0x12,0x6, 0xa9,0x74,0x19, +0x80,0xc, 0x12,0x6, 0xa9,0x74,0x1a,0x80,0x5, 0x12,0x6, 0xa9,0x74,0x1b,0x12,0x1, +0xd7,0x5, 0x4a,0x2, 0x8, 0x9, 0x22,0x8b,0x5c,0x8a,0x5d,0x89,0x5e,0xe4,0xf5,0x64, +0xe5,0x64,0xc3,0x95,0x62,0x40,0x3, 0x2, 0xc, 0x53,0xab,0x5c,0xaa,0x5d,0xa9,0x5e, +0x12,0x6, 0xbc,0x12,0x1, 0x65,0xb4,0x10,0x0, 0x40,0x3, 0x2, 0xc, 0x4e,0x90,0xa, +0x85,0xf8,0x28,0x28,0x73,0x2, 0xa, 0xb5,0x2, 0xa, 0xcf,0x2, 0xa, 0xf2,0x2, 0xb, +0x15,0x2, 0xb, 0x38,0x2, 0xb, 0x5b,0x2, 0xb, 0x7e,0x2, 0xb, 0xa1,0x2, 0xb, 0xc4, +0x2, 0xb, 0xe7,0x2, 0xc, 0x9, 0x2, 0xc, 0x1d,0x2, 0xc, 0x31,0x2, 0xc, 0x38,0x2, +0xc, 0x3f,0x2, 0xc, 0x46,0xe5,0x63,0xb4,0x77,0x5, 0x12,0x6, 0xce,0x80,0x23,0x12, +0x6, 0xcc,0xb4,0x78,0x3, 0x2, 0xb, 0x30,0x12,0x6, 0xbc,0xe4,0x2, 0xc, 0x4b,0xe5, +0x63,0xb4,0x77,0x8, 0x12,0x6, 0xb6,0x74,0x5, 0x2, 0xc, 0x4b,0x12,0x6, 0xcc,0xb4, +0x78,0x8, 0x12,0x6, 0xbc,0x74,0x4, 0x2, 0xc, 0x4b,0x12,0x6, 0xbc,0x74,0x1, 0x2, +0xc, 0x4b,0xe5,0x63,0xb4,0x77,0x8, 0x12,0x6, 0xb6,0x74,0x6, 0x2, 0xc, 0x4b,0x12, +0x6, 0xcc,0xb4,0x78,0x8, 0x12,0x6, 0xbc,0x74,0x5, 0x2, 0xc, 0x4b,0x12,0x6, 0xbc, +0x74,0x2, 0x2, 0xc, 0x4b,0xe5,0x63,0xb4,0x77,0x8, 0x12,0x6, 0xb6,0x74,0x7, 0x2, +0xc, 0x4b,0x12,0x6, 0xcc,0xb4,0x78,0x8, 0x12,0x6, 0xbc,0x74,0x6, 0x2, 0xc, 0x4b, +0x12,0x6, 0xbc,0x74,0x3, 0x2, 0xc, 0x4b,0xe5,0x63,0xb4,0x77,0x8, 0x12,0x6, 0xb6, +0x74,0x8, 0x2, 0xc, 0x4b,0x12,0x6, 0xcc,0xb4,0x78,0x8, 0x12,0x6, 0xbc,0x74,0x7, +0x2, 0xc, 0x4b,0x12,0x6, 0xbc,0x74,0x4, 0x2, 0xc, 0x4b,0xe5,0x63,0xb4,0x77,0x8, +0x12,0x6, 0xb6,0x74,0x9, 0x2, 0xc, 0x4b,0x12,0x6, 0xcc,0xb4,0x78,0x8, 0x12,0x6, +0xbc,0x74,0x8, 0x2, 0xc, 0x4b,0x12,0x6, 0xbc,0x74,0x5, 0x2, 0xc, 0x4b,0xe5,0x63, +0xb4,0x77,0x8, 0x12,0x6, 0xb6,0x74,0xa, 0x2, 0xc, 0x4b,0x12,0x6, 0xcc,0xb4,0x78, +0x8, 0x12,0x6, 0xbc,0x74,0x9, 0x2, 0xc, 0x4b,0x12,0x6, 0xbc,0x74,0x6, 0x2, 0xc, +0x4b,0xe5,0x63,0xb4,0x77,0x8, 0x12,0x6, 0xb6,0x74,0xb, 0x2, 0xc, 0x4b,0x12,0x6, +0xcc,0xb4,0x78,0x8, 0x12,0x6, 0xbc,0x74,0xa, 0x2, 0xc, 0x4b,0x12,0x6, 0xbc,0x74, +0x7, 0x2, 0xc, 0x4b,0xe5,0x63,0xb4,0x77,0x8, 0x12,0x6, 0xb6,0x74,0xc, 0x2, 0xc, +0x4b,0x12,0x6, 0xcc,0xb4,0x78,0x8, 0x12,0x6, 0xbc,0x74,0xb, 0x2, 0xc, 0x4b,0x12, +0x6, 0xbc,0x74,0x8, 0x2, 0xc, 0x4b,0xe5,0x63,0xb4,0x77,0x8, 0x12,0x6, 0xb6,0x74, +0xd, 0x2, 0xc, 0x4b,0x12,0x6, 0xcc,0xb4,0x78,0x8, 0x12,0x6, 0xbc,0x74,0xc, 0x2, +0xc, 0x4b,0x12,0x6, 0xbc,0x74,0x9, 0x80,0x42,0x12,0x6, 0xcc,0xb4,0x78,0x7, 0x12, +0x6, 0xbc,0x74,0xd, 0x80,0x35,0x12,0x6, 0xbc,0x74,0xa, 0x80,0x2e,0x12,0x6, 0xcc, +0xb4,0x78,0x7, 0x12,0x6, 0xbc,0x74,0xe, 0x80,0x21,0x12,0x6, 0xbc,0x74,0xb, 0x80, +0x1a,0x12,0x6, 0xb6,0x74,0xc, 0x80,0x13,0x12,0x6, 0xb6,0x74,0xd, 0x80,0xc, 0x12, +0x6, 0xb6,0x74,0xe, 0x80,0x5, 0x12,0x6, 0xb6,0x74,0xf, 0x12,0x1, 0xd7,0x5, 0x64, +0x2, 0xa, 0x60,0x22,0xc0,0x0, 0xc0,0x3f,0xdf,0xbf,0xdf,0xbf,0xc0,0x1, 0xc0,0x82, +0xc1,0x2, 0xc1,0x1, 0xc0,0x3f,0xdf,0x3d,0xde,0x3c,0xde,0xbe,0xc0,0x2, 0xc1,0x85, +0xc2,0x85,0xc2,0x2, 0xc0,0x3e,0xde,0x3a,0xdd,0x3a,0xdd,0xbd,0xc0,0x3, 0xc2,0x87, +0xc4,0x7, 0xc3,0x3, 0xc0,0x3d,0xdd,0x38,0xdb,0xb7,0xdc,0xbc,0xc0,0x4, 0xc3,0x8a, +0xc5,0x8a,0xc4,0x4, 0xc0,0x3c,0xdc,0x35,0xda,0x35,0xdb,0xbb,0xc0,0x5, 0xc4,0x8c, +0xc6,0x8d,0xc5,0x5, 0xc0,0x3b,0xdb,0x32,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8d,0xc5,0x5, 0xc0,0x3b,0xdb,0x34,0xd9,0xb4,0xdb,0xbb,0xc0,0x5, 0xc4,0x8b, +0xc6,0xb, 0xc4,0x4, 0xc0,0x3c,0xdc,0x36,0xdb,0x36,0xdc,0xbc,0xc0,0x4, 0xc3,0x89, +0xc4,0x88,0xc3,0x3, 0xc0,0x3d,0xdd,0x39,0xdc,0x39,0xdd,0xbd,0xc0,0x3, 0xc2,0x86, +0xc3,0x6, 0xc2,0x2, 0xc0,0x3e,0xde,0x3b,0xdd,0xbc,0xde,0xbe,0xc0,0x2, 0xc1,0x83, +0xc1,0x83,0xc1,0x1, 0xc0,0x3f,0xdf,0x3e,0xdf,0x3e,0xdf,0xbf,0xc0,0x0, 0xc0,0x81, +0xc0,0x80,0xc0,0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x0, 0x1, 0x0, 0x2, 0x0, 0x3, 0x0, +0x4, 0x1, 0x0, 0x1, 0x2, 0x1, 0x3, 0x1, 0x4, 0x2, 0x0, 0x2, 0x1, 0x2, 0x3, 0x2, +0x4, 0x3, 0x0, 0x3, 0x1, 0x3, 0x2, 0x3, 0x4, 0x4, 0x0, 0x4, 0x1, 0x4, 0x2, 0x4, +0x3, 0x0, 0x1, 0x2, 0x0, 0x1, 0x3, 0x0, 0x1, 0x4, 0x0, 0x2, 0x1, 0x0, 0x2, 0x3, +0x0, 0x2, 0x4, 0x0, 0x3, 0x1, 0x0, 0x3, 0x2, 0x0, 0x3, 0x4, 0x0, 0x4, 0x1, 0x0, +0x4, 0x2, 0x0, 0x4, 0x3, 0x1, 0x0, 0x2, 0x1, 0x0, 0x3, 0x1, 0x0, 0x4, 0x1, 0x2, +0x0, 0x1, 0x2, 0x3, 0x1, 0x2, 0x4, 0x1, 0x3, 0x0, 0x1, 0x3, 0x2, 0x1, 0x3, 0x4, +0x1, 0x4, 0x0, 0x1, 0x4, 0x2, 0x1, 0x4, 0x3, 0x2, 0x0, 0x1, 0x2, 0x0, 0x3, 0x2, +0x0, 0x4, 0x2, 0x1, 0x0, 0x2, 0x1, 0x3, 0x2, 0x1, 0x4, 0x2, 0x3, 0x0, 0x2, 0x3, +0x1, 0x2, 0x3, 0x4, 0x2, 0x4, 0x0, 0x2, 0x4, 0x1, 0x2, 0x4, 0x3, 0x3, 0x0, 0x1, +0x3, 0x0, 0x2, 0x3, 0x0, 0x4, 0x3, 0x1, 0x0, 0x3, 0x1, 0x2, 0x3, 0x1, 0x4, 0x3, +0x2, 0x0, 0x3, 0x2, 0x1, 0x3, 0x2, 0x4, 0x3, 0x4, 0x0, 0x3, 0x4, 0x1, 0x3, 0x4, +0x2, 0x4, 0x0, 0x1, 0x4, 0x0, 0x2, 0x4, 0x0, 0x3, 0x4, 0x1, 0x0, 0x4, 0x1, 0x2, +0x4, 0x1, 0x3, 0x4, 0x2, 0x0, 0x4, 0x2, 0x1, 0x4, 0x2, 0x3, 0x4, 0x3, 0x0, 0x4, +0x3, 0x1, 0x4, 0x3, 0x2, 0x12,0x11,0x10,0xf, 0xe, 0xd, 0xc, 0xb, 0xa, 0x9, 0x8, +0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, +0x2, 0x1, 0x0, 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, +0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x3c, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22,0x22,0x66,0x66,0x66, +0x66,0x66,0x66,0x66,0x66,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x12,0x0, 0x2, 0x3, 0x4, 0x6, 0x7, 0x8, 0xa, 0x0, 0x64,0x3, 0xfc,0x1, 0x18, +0x3, 0xfc,0x1, 0xd6,0x3, 0xfc,0x1, 0x5, 0x9, 0x7b,0x1, 0x7a,0xa, 0x79,0xeb,0x12, +0x16,0xf4,0x12,0x2f,0xf3,0xf5,0x31,0x12,0x67,0x32,0xf5,0x32,0x74,0x1, 0x12,0x66, +0xbf,0xe4,0x12,0x1, 0xd7,0xe4,0xf5,0x2e,0xab,0x22,0xe5,0x24,0x24,0x58,0x12,0x64, +0x8f,0xed,0xf0,0x5, 0x2e,0xe5,0x2e,0xb4,0xe, 0xee,0xe4,0xf5,0x30,0xf5,0x2e,0xf1, +0x1, 0xff,0xc3,0x95,0x30,0x40,0x2, 0x8f,0x30,0x5, 0x2e,0xe5,0x2e,0xb4,0x13,0xef, +0xe5,0x30,0xc3,0x94,0xf, 0x50,0x9, 0xc3,0x74,0xf, 0x95,0x30,0xf5,0x30,0x80,0x3, +0xe4,0xf5,0x30,0xe4,0xf5,0x2e,0xab,0x22,0xe5,0x24,0x24,0x66,0x12,0x64,0x8f,0xed, +0xf0,0x5, 0x2e,0xe5,0x2e,0xb4,0x8, 0xee,0x85,0x30,0x2f,0xaf,0x2f,0x15,0x2f,0xef, +0x70,0x2, 0x21,0x80,0x12,0x0, 0x1e,0x12,0x37,0xa9,0x12,0x4e,0x61,0x12,0x2f,0x61, +0x12,0x27,0x3b,0x85,0x28,0x4b,0x85,0x29,0x4c,0x85,0x2a,0x4d,0xd1,0xfa,0x12,0x2f, +0xf9,0x60,0xf0,0xe4,0xf5,0x2e,0xd1,0xfa,0x12,0x67,0x68,0x9f,0x50,0x49,0xe4,0xfd, +0xf1,0xbb,0xff,0xed,0xc3,0x9f,0x50,0x3b,0xe5,0x2e,0x70,0xb, 0xf1,0xb0,0xe4,0xf0, +0xed,0x31,0xcb,0xe4,0xf0,0xa3,0xf0,0xd1,0x49,0xe5,0x2e,0x12,0x65,0xad,0x75,0xf0, +0x2, 0xed,0x12,0x5, 0x40,0x12,0x2, 0xb7,0xae,0xf0,0x78,0x5, 0x12,0x58,0xf8,0xd8, +0xfb,0xff,0xed,0x31,0xcb,0xee,0x8f,0xf0,0x12,0x2, 0x60,0xf1,0xb0,0xe0,0x4, 0xf0, +0xd, 0x80,0xbd,0x5, 0x2e,0x80,0xaf,0xe4,0xf5,0x33,0xf5,0x2e,0xf1,0xbb,0xff,0xe5, +0x2e,0xc3,0x9f,0x40,0x2, 0x21,0x78,0x74,0x90,0x25,0x2e,0xf1,0xb3,0xe0,0xfd,0x70, +0x9, 0xe5,0x2e,0x31,0xcb,0x12,0x47,0x1f,0x80,0x3a,0xe5,0x2e,0x31,0xcb,0xc0,0x83, +0xc0,0x82,0xe0,0xfe,0xa3,0xe0,0xff,0x7c,0x0, 0x12,0x2, 0xb, 0xd0,0x82,0xd0,0x83, +0xee,0xf0,0xa3,0xef,0xf0,0xe5,0x2e,0x31,0xcb,0xc0,0x83,0xc0,0x82,0xe0,0xfe,0xa3, +0xe0,0x78,0x5, 0xc3,0x33,0xce,0x33,0xce,0xd8,0xf9,0xff,0xd0,0x82,0xd0,0x83,0xee, +0xf0,0xa3,0xef,0xf0,0xf1,0x15,0x90,0x0, 0x73,0xd1,0x93,0x90,0x0, 0xe, 0xf1,0xa5, +0xe5,0x2e,0x31,0xcb,0xf1,0xea,0x9e,0x50,0x10,0xf1,0x1, 0xc3,0x95,0x30,0x50,0x5, +0xf1,0x1, 0x4, 0x80,0x2a,0x5, 0x33,0x80,0x3b,0xf1,0x15,0x90,0x0, 0x73,0xd1,0x93, +0x90,0x0, 0xe, 0x12,0x2, 0xb7,0x2f,0xff,0xe5,0xf0,0x3e,0xfe,0xe5,0x2e,0x31,0xcb, +0xf1,0xf2,0x9e,0x40,0x1d,0xf1,0x1, 0xd3,0x94,0x0, 0x40,0x12,0xf1,0x1, 0x14,0xf0, +0x12,0x4e,0x61,0xf1,0x1, 0xfd,0x85,0x2e,0x38,0x12,0x7, 0xf, 0x80,0x6, 0x5, 0x33, +0x80,0x2, 0x5, 0x33,0x5, 0x2e,0x1, 0xbc,0xf1,0xbb,0x65,0x33,0x60,0x2, 0x1, 0x3b, +0xe4,0xf5,0x2e,0x12,0x64,0xc0,0xe0,0xc4,0x54,0xf0,0xfd,0x74,0x74,0x2f,0xf5,0x82, +0x74,0xa, 0x3e,0xf5,0x83,0xe0,0x54,0xf, 0x4d,0xff,0xab,0x22,0xe5,0x24,0x24,0x66, +0xf9,0xe4,0x35,0x23,0xfa,0xe5,0x2e,0x12,0x26,0x2b,0xef,0x12,0x1, 0xc5,0x5, 0x2e, +0xe5,0x2e,0xb4,0x8, 0xce,0xd1,0xfa,0xe5,0x31,0x12,0x66,0xbf,0xe5,0x32,0x12,0x1, +0xd7,0x7f,0x1, 0x22,0x12,0x4, 0xf2,0xe5,0x30,0x25,0xe0,0x25,0xe0,0x24,0x3c,0xf5, +0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0x12,0x20,0xed,0xe4,0x90,0xa, 0x50,0xf0,0x75, +0x2f,0x1, 0xf5,0x2b,0xd1,0xaf,0x74,0xff,0xf1,0xdc,0xd1,0xc0,0x74,0xff,0xf0,0xe5, +0x2b,0x31,0xcb,0x74,0xff,0xf0,0xa3,0xf0,0x74,0x4b,0x25,0x2b,0xd1,0xd0,0xe4,0xf0, +0x5, 0x2b,0xe5,0x2b,0xb4,0x5, 0xdd,0xd1,0x49,0x12,0x7, 0x7d,0x70,0x21,0x90,0x0, +0x42,0x12,0x1, 0x65,0x70,0x2, 0xa1,0xa0,0xe4,0xf5,0x2b,0xd1,0x49,0x90,0x0, 0x2d, +0xf1,0x8e,0xd1,0x49,0xf1,0x8b,0x5, 0x2b,0xe5,0x2b,0xb4,0x5, 0xee,0xa1,0xa0,0xd1, +0x49,0x90,0x0, 0x42,0x12,0x1, 0x65,0x70,0x39,0xf5,0x2b,0xd1,0x49,0x12,0x7, 0x7d, +0xff,0xe5,0x2b,0xc3,0x9f,0x40,0x2, 0xa1,0xa0,0x75,0xf0,0x7, 0xe5,0x2b,0xd1,0xe3, +0xd1,0x93,0xf1,0x9e,0xe5,0x2b,0xd1,0xa6,0x90,0x0, 0x2, 0x12,0x2, 0xb7,0xff,0xe5, +0x2b,0xd1,0x9a,0xf1,0xe2,0x74,0x4b,0x25,0x2b,0xd1,0xd0,0x74,0x1, 0xf0,0x5, 0x2b, +0x80,0xc9,0xe4,0xf5,0x2e,0xd1,0x49,0x12,0x7, 0x7d,0xff,0xb4,0x1, 0xb, 0xe4,0xf5, +0x38,0x75,0x37,0x1, 0x75,0x2f,0x5, 0x61,0x12,0xef,0xb4,0x2, 0xb, 0x75,0x38,0x5, +0x75,0x37,0x2, 0x75,0x2f,0x14,0x80,0x7a,0xef,0xb4,0x3, 0xb, 0x75,0x38,0x2d,0x75, +0x37,0x3, 0x75,0x2f,0x3c,0x80,0x6b,0xef,0xd3,0x94,0x3, 0x40,0x65,0xe4,0xf5,0x2b, +0xd1,0x49,0x12,0x7, 0x7d,0xff,0xe5,0x2b,0xc3,0x9f,0x50,0x56,0xe4,0xf5,0x2c,0xd1, +0x49,0x90,0x0, 0x37,0x75,0xf0,0x2, 0xe5,0x2c,0xf1,0xc7,0x12,0x65,0xdf,0xc0,0x6, +0xc0,0x7, 0xd1,0x49,0xf1,0x9e,0xe5,0x2c,0xd1,0x90,0x75,0xf0,0x7, 0xe5,0x2b,0xd1, +0xe3,0xf1,0xa5,0x12,0x0, 0x6, 0xd0,0xe0,0x2f,0xff,0xd0,0xe0,0x3e,0xfe,0xe5,0x2b, +0x31,0xcb,0xf1,0xf2,0x9e,0x40,0xe, 0xd1,0xc0,0xe5,0x2c,0xf0,0xe5,0x2b,0x31,0xcb, +0xee,0xf0,0xa3,0xef,0xf0,0x5, 0x2c,0xe5,0x2c,0xc3,0x94,0x5, 0x40,0xb1,0x5, 0x2b, +0x80,0x9e,0x74,0xff,0xf5,0x3c,0xf5,0x3b,0xf5,0x3a,0xf5,0x39,0xf5,0x2d,0xd1,0x49, +0x12,0x7, 0x7d,0xff,0xd3,0x94,0x0, 0x50,0x2, 0x81,0x1f,0xef,0x94,0x4, 0x40,0x2, +0x81,0x1f,0xe5,0x2e,0xc3,0x95,0x2f,0x40,0x2, 0x81,0x1f,0xe4,0xf5,0x40,0xf5,0x3f, +0xf5,0x3e,0xf5,0x3d,0xe5,0x37,0xf5,0x82,0x75,0x83,0x0, 0x85,0x2e,0xf0,0x12,0x65, +0x38,0xaf,0x82,0x12,0x1, 0x26,0xe4,0xf5,0x2b,0xd1,0x49,0x12,0x7, 0x7d,0xff,0xe5, +0x2b,0xc3,0x9f,0x40,0x2, 0x61,0xf6,0xd1,0xea,0x75,0xf0,0x2, 0xd1,0x90,0xbe,0x7f, +0x1d,0xbf,0xff,0x1a,0xe5,0x40,0x24,0xff,0xf5,0x40,0xe5,0x3f,0x34,0xff,0xf5,0x3f, +0xe5,0x3e,0x34,0xff,0xf5,0x3e,0xe5,0x3d,0x34,0x3, 0xf5,0x3d,0x80,0x64,0xd1,0x49, +0xd1,0xea,0x75,0xf0,0x2, 0xd1,0x90,0x75,0xf0,0x7, 0xe5,0x2b,0xd1,0xe3,0xf1,0xa5, +0x12,0x0, 0x6, 0x8e,0x30,0x8f,0x31,0xd1,0x49,0x90,0x0, 0x37,0xd1,0xed,0x75,0xf0, +0x2, 0xf1,0xc7,0x12,0x65,0xdf,0x8f,0x82,0x8e,0x83,0xe5,0x31,0xae,0x30,0x78,0x2, +0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0xf5,0x31,0x8e,0x30,0xe5,0x82,0xae,0x83,0x78, +0x2, 0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0xf5,0x82,0x8e,0x83,0xae,0x30,0xaf,0x31, +0xac,0x30,0xad,0x31,0x12,0x65,0x87,0xaf,0x82,0xae,0x83,0xad,0x82,0xac,0x83,0x12, +0x65,0x87,0x5, 0x2b,0x61,0x59,0xaf,0x40,0xae,0x3f,0xad,0x3e,0xac,0x3d,0xab,0x3c, +0xaa,0x3b,0xa9,0x3a,0xa8,0x39,0xd3,0x12,0x4, 0xbb,0x40,0xf, 0x85,0x40,0x3c,0x85, +0x3f,0x3b,0x85,0x3e,0x3a,0x85,0x3d,0x39,0x85,0x2e,0x2d,0x5, 0x2e,0x61,0x32,0xe5, +0x2d,0xf4,0x60,0x59,0xe5,0x37,0x85,0x2d,0xf0,0x12,0x65,0x38,0x7f,0x5, 0x12,0x1, +0x26,0xe4,0xf5,0x2b,0xd1,0x49,0x12,0x7, 0x7d,0xff,0xe5,0x2b,0xc3,0x9f,0x40,0x2, +0xa1,0x82,0xd1,0xed,0x24,0x4b,0xd1,0xd0,0x74,0x1, 0xf0,0x75,0xf0,0x7, 0xe5,0x2b, +0xd1,0xe3,0xd1,0x93,0xd1,0xea,0xd1,0xa3,0x90,0x0, 0x2, 0xd1,0x93,0xaa,0x29,0xa9, +0x2a,0x90,0x0, 0x37,0x74,0x32,0x25,0x2b,0x12,0x2a,0x94,0xee,0x8f,0xf0,0x12,0x3, +0x5b,0xd1,0xed,0xfd,0xd1,0xaf,0xed,0xf1,0xdc,0x5, 0x2b,0x80,0xb7,0xe4,0xf5,0x2b, +0xd1,0x49,0x12,0x7, 0x7d,0xff,0xe5,0x2b,0xc3,0x9f,0x40,0x2, 0xa1,0x2f,0x90,0xa, +0x50,0x74,0x1, 0xf0,0xe4,0xf5,0x2c,0xd1,0x49,0x12,0x7, 0x7d,0xff,0xe5,0x2c,0xc3, +0x9f,0x50,0x31,0xe5,0x2b,0x65,0x2c,0x60,0x27,0x74,0x46,0x25,0x2c,0xd1,0xc4,0xe0, +0xff,0xd1,0xc0,0xe0,0xb5,0x7, 0x19,0xe5,0x2c,0x31,0xcb,0xe0,0xfe,0xa3,0xe0,0xff, +0xe5,0x2b,0x31,0xcb,0xf1,0xea,0x9e,0x40,0x7, 0xe4,0x90,0xa, 0x50,0xf0,0x80,0x4, +0x5, 0x2c,0x80,0xc3,0x90,0xa, 0x50,0xe0,0x64,0x1, 0x70,0x4f,0xd1,0xc0,0xe0,0x24, +0x4b,0xd1,0xd0,0x74,0x1, 0xf0,0xd1,0xc0,0xe0,0xfd,0xd1,0xaf,0x90,0x0, 0x4, 0xed, +0x12,0x1, 0xd7,0xd1,0x49,0x75,0xf0,0x7, 0xe5,0x2b,0xd1,0xe3,0xd1,0x93,0xe9,0x24, +0x2d,0xf9,0xe4,0x3a,0xfa,0xd1,0xc0,0xe0,0x75,0xf0,0x2, 0xd1,0xe3,0xd1,0xa9,0x90, +0x0, 0x2, 0xd1,0x93,0xe5,0x2a,0x24,0x37,0xf9,0xe4,0x35,0x29,0xfa,0xd1,0xc0,0xe0, +0x75,0xf0,0x2, 0xd1,0xe3,0xee,0x8f,0xf0,0x12,0x3, 0x5b,0x5, 0x2b,0x81,0x80,0xe4, +0xf5,0x2b,0xd1,0x49,0x12,0x7, 0x7d,0xff,0xe5,0x2b,0xc3,0x9f,0x50,0x44,0xf1,0xd0, +0xfa,0x12,0x1f,0x9, 0xf4,0x70,0x37,0xf5,0x2c,0xd1,0xcc,0xe0,0x70,0x28,0xd1,0xcc, +0x74,0x1, 0xf0,0xd1,0x49,0x75,0xf0,0x7, 0xe5,0x2b,0xd1,0xe3,0xd1,0x93,0xf1,0x9e, +0xe5,0x2c,0xd1,0xa6,0x90,0x0, 0x2, 0x12,0x46,0x4d,0xd1,0x9a,0x90,0x0, 0x4, 0xe5, +0x2c,0x12,0x1, 0xd7,0x80,0x8, 0x5, 0x2c,0xe5,0x2c,0x64,0x5, 0x70,0xcb,0x5, 0x2b, +0x80,0xb0,0xe4,0xf5,0x2b,0x74,0x4b,0x25,0x2b,0xd1,0xd0,0xe0,0x70,0xb, 0xd1,0x49, +0x90,0x0, 0x2d,0xf1,0x8e,0xd1,0x49,0xf1,0x8b,0x5, 0x2b,0xe5,0x2b,0xb4,0x5, 0xe5, +0xd1,0x49,0x12,0x7, 0x7d,0xf5,0x2c,0xe4,0xf5,0x2b,0x74,0x4b,0x25,0x2b,0xd1,0xd0, +0xe0,0x64,0x1, 0x70,0x2e,0xab,0x28,0xe5,0x2a,0x24,0x28,0xf1,0x7c,0x12,0x1, 0x4c, +0xb4,0x1, 0x5, 0x74,0x3, 0x12,0x1, 0xc5,0x12,0x1, 0x4c,0xff,0xb4,0x3, 0xb, 0x12, +0x66,0xc9,0xe5,0x2b,0x12,0x26,0x2b,0xe4,0x80,0x32,0xef,0x70,0x32,0xf1,0x76,0x74, +0x2, 0x80,0x29,0xab,0x28,0xe5,0x2a,0x24,0x28,0xf1,0x7c,0x12,0x1, 0x4c,0xff,0x64, +0x2, 0x60,0x3, 0xef,0x70,0x12,0xf1,0x76,0x74,0x1, 0x12,0x1, 0xc5,0xaf,0x2c,0x5, +0x2c,0xef,0xd1,0xb1,0xf1,0xe2,0x80,0x7, 0xf1,0x76,0x74,0x3, 0x12,0x1, 0xc5,0x12, +0x66,0xc9,0xaf,0x2b,0x7e,0x0, 0x12,0x58,0xf1,0x12,0x1, 0x4c,0xfd,0xe5,0x2a,0x24, +0x28,0x12,0x58,0xec,0xed,0x12,0x1, 0xc5,0x5, 0x2b,0xe5,0x2b,0x64,0x5, 0x60,0x2, +0xa1,0xaa,0x22,0xef,0x25,0xe0,0xff,0xee,0x33,0xfe,0xe5,0x40,0x2f,0xf5,0x82,0xe5, +0x3f,0x3e,0xf5,0x83,0xe0,0xfe,0xa3,0xe0,0xff,0xab,0x28,0xaa,0x29,0xa9,0x2a,0x22, +0xc3,0xee,0x94,0x0, 0x40,0x2, 0x80,0x3, 0xe4,0xfe,0xff,0x7d,0xc6,0x12,0x65,0xf, +0xe4,0x7f,0x1c,0x7e,0x2, 0x12,0x66,0x7f,0x40,0xb, 0xe4,0x75,0x35,0x1b,0x75,0x34, +0x2, 0xf5,0x33,0xf5,0x32,0xae,0x34,0xaf,0x35,0x22,0xab,0x22,0xaa,0x23,0xa9,0x24, +0x90,0x3, 0x80,0x75,0xf0,0x20,0xe5,0x29,0x12,0x5, 0x40,0x75,0xf0,0x2, 0xe5,0x28, +0x12,0x5, 0x40,0x12,0x2, 0xb7,0xff,0xae,0xf0,0x22,0xae,0xf0,0xaa,0x29,0xa9,0x2a, +0x90,0x0, 0x37,0x75,0xf0,0x2, 0x12,0x5, 0x40,0xee,0x8f,0xf0,0x12,0x3, 0x5b,0xe5, +0x2b,0x75,0xf0,0x7, 0xa4,0xab,0x28,0x25,0x2a,0xf9,0xe5,0x29,0x35,0xf0,0xfa,0x22, +0x74,0x46,0x25,0x2b,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0x74,0x4b,0x25,0x2c, +0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0xab,0x2b,0xaa,0x2c,0xa9,0x2d,0x75,0xf0, +0x2, 0xe5,0x30,0xa4,0xf5,0x82,0x85,0xf0,0x83,0x22,0x90,0x0, 0x2d,0x74,0x32,0x25, +0x2b,0xf8,0xe6,0x22,0x8b,0x22,0x8a,0x23,0x89,0x24,0xab,0x25,0xaa,0x26,0xa9,0x27, +0x22,0x74,0x74,0x25,0x2e,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0xe0,0x22,0x7e,0x0, +0x7f,0x23,0x12,0x1, 0x26,0xab,0x22,0xaa,0x23,0xa9,0x24,0x22,0xd1,0xf4,0x12,0x4e, +0x82,0xf1,0x15,0x90,0x0, 0x41,0x12,0x1, 0xd7,0xab,0x25,0xe5,0x27,0x24,0xa, 0xf9, +0xe4,0x35,0x26,0xfa,0xa8,0x24,0xac,0x23,0xad,0x22,0xf1,0xe, 0x31,0xd7,0xf1,0x15, +0x90,0x0, 0x43,0x12,0x5, 0x6c,0x8b,0x2b,0x8a,0x2c,0x89,0x2d,0xf1,0x15,0x12,0x1c, +0xb1,0xe5,0x27,0x24,0xa, 0xf9,0xe4,0x35,0x26,0xa8,0x1, 0xfc,0xad,0x25,0xf1,0x15, +0xf1,0xe, 0x12,0x7, 0x7d,0x90,0x0, 0x42,0x12,0x1, 0xd7,0x12,0x7, 0x7d,0xd1,0xfa, +0x90,0x0, 0x2d,0x2, 0x1, 0xd7,0xab,0x28,0xe5,0x2a,0x24,0x23,0xf9,0xe4,0x35,0x29, +0xfa,0x7e,0x0, 0xe9,0x25,0x2b,0xf9,0xee,0x3a,0xfa,0x22,0x90,0x0, 0x37,0x75,0xf0, +0x2, 0xe5,0x2b,0x12,0x5, 0x40,0x74,0x7f,0x75,0xf0,0xff,0x2, 0x3, 0x5b,0x90,0x0, +0x2d,0x75,0xf0,0x2, 0x22,0x12,0x2, 0xb7,0xc3,0x9f,0xff,0xe5,0xf0,0x9e,0xfe,0x22, +0x74,0x90,0x2d,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0xab,0x25,0xaa,0x26,0xa9, +0x27,0x90,0x0, 0x1, 0x2, 0x1, 0x65,0x12,0x5, 0x40,0x12,0x2, 0xb7,0xfd,0xac,0xf0, +0xe5,0x2b,0x75,0xf0,0x7, 0xa4,0x29,0xf9,0xea,0x35,0xf0,0x22,0x90,0x0, 0x4, 0x2, +0x1, 0xd7,0x90,0x0, 0x4, 0xe5,0x2b,0x2, 0x1, 0xd7,0xe0,0xfc,0xa3,0xe0,0xc3,0x9f, +0xec,0x22,0xe0,0xfc,0xa3,0xe0,0xd3,0x9f,0xec,0x22,0xe5,0x92,0x60,0x4, 0xd2,0xae, +0xd2,0xbe,0x22,0xc3,0xee,0x94,0x0, 0x40,0x2, 0x80,0x3, 0xe4,0xfe,0xff,0x7d,0xd6, +0x12,0x65,0xf, 0xe4,0x7f,0xc0,0x7e,0x3, 0x12,0x66,0x7f,0x40,0xb, 0xe4,0x75,0x35, +0xbf,0x75,0x34,0x3, 0xf5,0x33,0xf5,0x32,0xae,0x34,0xaf,0x35,0x22,0x12,0x3f,0x4d, +0x12,0x16,0x49,0xf1,0xf7,0xf5,0x30,0xf1,0xaa,0xf5,0x31,0xe4,0xf5,0x2d,0xf1,0x35, +0x91,0x6a,0x12,0x11,0xcd,0x74,0x7f,0xf0,0xa3,0x91,0x6a,0x24,0x3e,0xf5,0x82,0xe4, +0x34,0xa, 0xf5,0x83,0x74,0x7f,0xf0,0xa3,0x74,0xff,0xf0,0x5, 0x2d,0xe5,0x2d,0xb4, +0x5, 0xdc,0xe5,0x30,0x70,0x31,0xe5,0x31,0xd3,0x94,0x0, 0x50,0x2, 0x81,0x52,0xe4, +0xf5,0x2e,0xe5,0x2e,0x12,0x16,0xb1,0x90,0x0, 0x2a,0x74,0xff,0x12,0x1, 0xd7,0x5, +0x2e,0xe5,0x2e,0xb4,0x5, 0xec,0xf1,0x89,0x44,0x4, 0x12,0x1, 0xc5,0x54,0xf7,0x12, +0x1, 0xc5,0x54,0xdf,0x2, 0x1, 0xc5,0xe4,0xf5,0x2e,0xe5,0x2e,0xc3,0x95,0x30,0x50, +0x2c,0xe5,0x2e,0x75,0xf0,0x7, 0xa4,0xfd,0xac,0xf0,0xab,0x22,0x25,0x24,0xf9,0xe5, +0x23,0x3c,0xfa,0xe9,0x24,0xa, 0x12,0x65,0x6e,0xab,0x22,0xe5,0x24,0x2d,0xf9,0xe5, +0x23,0x3c,0xfa,0xe9,0x24,0xc, 0x12,0x65,0x6e,0x5, 0x2e,0x80,0xcd,0xe5,0x31,0x70, +0x7, 0xf1,0x89,0x44,0x10,0x12,0x1, 0xc5,0xe4,0xf5,0x2d,0xf5,0x2e,0xe4,0xf5,0x2f, +0xe5,0x2f,0xc3,0x95,0x30,0x50,0x38,0x91,0x59,0xf1,0x15,0xe5,0x2e,0x12,0x16,0xb1, +0xf1,0xf, 0xff,0x6d,0x70,0x25,0xef,0xf4,0x60,0x21,0xf1,0x2e,0xef,0xf0,0x90,0x0, +0x26,0x12,0x16,0x93,0x91,0x6d,0x12,0x11,0xcd,0xee,0xf0,0xa3,0xef,0xf0,0x90,0x0, +0x28,0x12,0x16,0x93,0x91,0x6d,0x12,0x66,0x16,0x80,0x4, 0x5, 0x2f,0x80,0xc1,0x5, +0x2e,0xe5,0x2e,0x64,0x5, 0x70,0xb6,0xe4,0xf5,0x2e,0x85,0x30,0x2f,0xe5,0x2f,0xc3, +0x94,0x5, 0x50,0x38,0x91,0x59,0xf1,0x15,0xe5,0x2e,0x12,0x16,0xb1,0xf1,0xf, 0xff, +0x6d,0x70,0x25,0xef,0xf4,0x60,0x21,0xf1,0x2e,0xef,0xf0,0x90,0x0, 0x26,0x12,0x16, +0x93,0x91,0x6d,0x12,0x11,0xcd,0xee,0xf0,0xa3,0xef,0xf0,0x90,0x0, 0x28,0x12,0x16, +0x93,0x91,0x6d,0x12,0x66,0x16,0x80,0x4, 0x5, 0x2f,0x80,0xc1,0x5, 0x2e,0xe5,0x2e, +0x64,0x5, 0x70,0xb6,0xe4,0xf5,0x2f,0xe4,0xf5,0x2e,0xe5,0x2e,0xc3,0x95,0x2d,0x50, +0x15,0x91,0x59,0x90,0x0, 0xe, 0x12,0x1, 0x65,0xff,0xe5,0x2e,0xf1,0x37,0xe0,0x6f, +0x60,0x4, 0x5, 0x2e,0x80,0xe4,0xe5,0x2e,0x65,0x2d,0x70,0x1e,0xf1,0xcd,0xe5,0x2f, +0x12,0x17,0xd2,0xfa,0xc0,0x1, 0x91,0x6d,0x24,0x3c,0xf9,0x74,0xa, 0x35,0xf0,0xa8, +0x1, 0xfc,0x7d,0x1, 0xd0,0x1, 0xf1,0x5d,0x5, 0x2d,0x5, 0x2f,0xe5,0x2f,0x64,0x5, +0x70,0xb5,0xe5,0x2a,0x24,0x26,0xf9,0xe4,0x35,0x29,0x7f,0x23,0xf1,0xe7,0xe5,0x31, +0x70,0x20,0xf1,0xcd,0xc0,0x2, 0xc0,0x1, 0xe5,0x2a,0x24,0x26,0xf9,0xe4,0x35,0x29, +0xa8,0x1, 0xfc,0xad,0x28,0xd0,0x1, 0xd0,0x2, 0x7e,0x0, 0x7f,0x23,0x12,0x1, 0x26, +0x61,0x91,0x12,0x16,0x49,0x12,0x3f,0xa, 0x13,0x13,0x13,0x54,0x1f,0x30,0xe0,0x2, +0x61,0x91,0xe4,0xf5,0x2f,0xe5,0x2f,0xc3,0x95,0x30,0x40,0x2, 0x61,0x91,0xe4,0xf5, +0x2e,0x91,0x59,0xf1,0x15,0xe5,0x2e,0x12,0x16,0xb1,0xf1,0xf, 0x6d,0x60,0x7, 0x5, +0x2e,0xe5,0x2e,0xb4,0x5, 0xeb,0x91,0x59,0x90,0x0, 0xc, 0x12,0x16,0x93,0xc0,0x6, +0xc0,0x7, 0xe5,0x2e,0x12,0x16,0xb1,0x90,0x0, 0x28,0x91,0x77,0xd0,0x7, 0xd0,0x6, +0xf1,0x1d,0xc0,0x6, 0xc0,0x7, 0x91,0x59,0x90,0x0, 0xa, 0x12,0x16,0x93,0xc0,0x6, +0xc0,0x7, 0xe5,0x2e,0x12,0x16,0xb1,0x90,0x0, 0x26,0x91,0x77,0xd0,0x7, 0xd0,0x6, +0xf1,0x1d,0xd0,0xe0,0x2f,0xf5,0x2c,0xd0,0xe0,0x3e,0xf5,0x2b,0x12,0x16,0xfa,0x91, +0x74,0xae,0x4, 0x78,0x3, 0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0xf1,0x6b,0x50,0x5, +0x75,0x2d,0x4, 0x80,0x37,0xed,0xae,0x4, 0x78,0x2, 0xce,0xc3,0x13,0xce,0x13,0xd8, +0xf9,0xf1,0x6b,0x50,0x5, 0x75,0x2d,0x3, 0x80,0x22,0x91,0x74,0xec,0xc3,0x13,0xfe, +0xed,0x13,0xf1,0x6b,0x50,0x5, 0x75,0x2d,0x2, 0x80,0x11,0xc3,0xe5,0x2c,0x9d,0xe5, +0x2b,0x9c,0x50,0x5, 0x75,0x2d,0x1, 0x80,0x3, 0xe4,0xf5,0x2d,0x91,0x59,0x90,0x0, +0xc, 0x12,0x16,0x93,0xbe,0x4b,0x6, 0xbf,0xf0,0x3, 0xe4,0xf5,0x2d,0xe5,0x2e,0x12, +0x16,0xb1,0x90,0x0, 0x28,0x12,0x16,0x93,0xbe,0x4b,0x6, 0xbf,0xf0,0x3, 0xe4,0xf5, +0x2d,0x91,0x59,0x90,0x0, 0xa, 0x12,0x16,0x93,0xc0,0x6, 0xc0,0x7, 0xe5,0x2e,0x12, +0x16,0xb1,0x90,0x0, 0x26,0x91,0x77,0xd0,0x7, 0xd0,0x6, 0xf1,0x7d,0x80,0x5, 0xce, +0xc3,0x13,0xce,0x13,0xd8,0xf9,0xf5,0x2c,0x8e,0x2b,0xe5,0x2e,0x12,0x16,0xb1,0x90, +0x0, 0x26,0x91,0x53,0x90,0x0, 0xa, 0xf1,0xd9,0x40,0x10,0x12,0x16,0xb4,0x90,0x0, +0x26,0xe5,0x2b,0x85,0x2c,0xf0,0x12,0x2, 0xef,0x80,0xc, 0x12,0x16,0xb4,0xe9,0x24, +0x26,0x12,0x65,0xfb,0x12,0x3, 0x3c,0x91,0x59,0x90,0x0, 0xc, 0x12,0x16,0x93,0xc0, +0x6, 0xc0,0x7, 0xe5,0x2e,0x12,0x16,0xb1,0x90,0x0, 0x28,0x91,0x77,0xd0,0x7, 0xd0, +0x6, 0xf1,0x7d,0x80,0x5, 0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0xf5,0x2c,0x8e,0x2b, +0xe5,0x2e,0x12,0x16,0xb1,0x90,0x0, 0x28,0x91,0x53,0x90,0x0, 0xc, 0xf1,0xd9,0x40, +0x10,0x12,0x16,0xb4,0x90,0x0, 0x28,0xe5,0x2b,0x85,0x2c,0xf0,0x12,0x2, 0xef,0x80, +0xc, 0x12,0x16,0xb4,0xe9,0x24,0x28,0x12,0x65,0xfb,0x12,0x3, 0x3c,0x5, 0x2f,0x41, +0x5, 0xe4,0xf5,0x2f,0xe5,0x2f,0x12,0x16,0xb1,0x90,0x0, 0x26,0x12,0x2, 0xb7,0x90, +0x0, 0xa, 0x91,0x7e,0x90,0x0, 0x28,0x12,0x2, 0xb7,0x90,0x0, 0xc, 0x91,0x7e,0xf1, +0xf, 0xfd,0xf1,0x9f,0x90,0x0, 0xe, 0xed,0x12,0x1, 0xd7,0x5, 0x2f,0xe5,0x2f,0x64, +0x5, 0x70,0xd1,0xf1,0x89,0x44,0x1, 0x12,0x1, 0xc5,0xe5,0x30,0xd3,0x94,0x0, 0x50, +0x2, 0x81,0x52,0xe4,0xf5,0x2f,0x91,0x59,0x90,0x0, 0xc, 0x12,0x2, 0xb7,0xd3,0x94, +0x7f,0xe5,0xf0,0x94,0x4, 0x50,0x39,0x90,0x0, 0xa, 0x12,0x16,0x93,0x12,0x16,0x50, +0xac,0x6, 0xad,0x7, 0xe5,0x2f,0x75,0xf0,0x7, 0xa4,0xff,0xae,0xf0,0xab,0x28,0x25, +0x2a,0xf9,0xe5,0x29,0x3e,0xfa,0xec,0xf1,0x97,0x90,0x0, 0xc, 0x12,0x16,0x93,0x11, +0x3, 0xac,0x6, 0xad,0x7, 0xe5,0x2f,0x12,0x16,0xb1,0x90,0x0, 0x5, 0xec,0x80,0x1e, +0x12,0x65,0xcc,0x90,0x0, 0xa, 0x12,0x2, 0xb7,0xfd,0x91,0xa6,0xe5,0xf0,0xf1,0x97, +0x90,0x0, 0xc, 0x12,0x2, 0xb7,0xfd,0x91,0xa6,0x90,0x0, 0x5, 0xe5,0xf0,0x8d,0xf0, +0x12,0x3, 0x5b,0x12,0x65,0xcc,0xf1,0x15,0x91,0xa6,0xed,0x12,0x46,0xe2,0xf1,0xb0, +0x40,0x84,0x22,0x12,0x2, 0xb7,0xfd,0xac,0xf0,0xe5,0x2f,0x75,0xf0,0x7, 0xa4,0xab, +0x22,0x25,0x24,0xf9,0xe5,0x23,0x35,0xf0,0xfa,0x22,0x74,0xff,0xf0,0xe5,0x2d,0x75, +0xf0,0x7, 0xa4,0x22,0x90,0x0, 0x1, 0x12,0x2, 0xb7,0xfd,0xac,0xf0,0x22,0xff,0xe5, +0xf0,0xc4,0xf8,0x54,0xf0,0xc8,0x68,0xfc,0xef,0xc4,0x54,0xf, 0x48,0xfd,0xe5,0x2f, +0x75,0xf0,0x7, 0xa4,0xff,0xae,0xf0,0xab,0x22,0x25,0x24,0xf9,0xe5,0x23,0x3e,0xfa, +0xec,0x8d,0xf0,0x12,0x3, 0x5b,0xab,0x28,0xe5,0x2a,0x2f,0xf9,0xe5,0x29,0x3e,0xfa, +0x22,0x12,0x20,0xed,0xe4,0xf5,0x30,0xf5,0x31,0x12,0x7, 0x7d,0xf5,0x32,0x70,0x43, +0xf5,0x2e,0xe5,0x2e,0xfd,0x33,0x95,0xe0,0xfc,0x12,0x46,0xf7,0x74,0xcf,0x2f,0xf5, +0x82,0x74,0xa, 0x12,0x67,0x60,0x90,0xa, 0xb0,0x75,0xf0,0x7, 0xed,0x12,0x5, 0x40, +0xec,0x75,0xf0,0x7, 0xa4,0x25,0x83,0xf5,0x83,0x74,0xff,0xf0,0xf1,0x64,0xfe,0x74, +0xd9,0x2f,0xf5,0x82,0x74,0xa, 0x3e,0xf5,0x83,0x74,0x2, 0xf0,0x5, 0x2e,0xe5,0x2e, +0xb4,0x5, 0xbf,0xe4,0xf5,0x2e,0x12,0x16,0x49,0x12,0x7, 0x7d,0xfd,0xf1,0x64,0xfe, +0xc3,0xef,0x9d,0x74,0x80,0xf8,0x6e,0x98,0x40,0x2, 0xc1,0xc4,0xd1,0xf2,0x12,0x37, +0x3a,0xf1,0x9, 0xff,0xf4,0x70,0x2, 0xc1,0xc0,0x12,0x58,0xe6,0x12,0x1, 0x4c,0x60, +0x6, 0x64,0x2, 0x60,0x2, 0xc1,0xc0,0xe4,0xf5,0x2f,0xd1,0xeb,0x91,0xa6,0xf1,0x9, +0xff,0xd1,0xdf,0x34,0xa, 0xf5,0x83,0xe0,0x6f,0x60,0x2, 0xc1,0xba,0x90,0x0, 0x2, +0x12,0x16,0x93,0xe5,0x2f,0x75,0xf0,0x7, 0xa4,0x24,0xae,0xf5,0x82,0xe4,0x34,0xa, +0xf1,0x56,0xf1,0x74,0x12,0x0, 0x6, 0xc0,0x6, 0xc0,0x7, 0x12,0x16,0x49,0xf1,0x64, +0x8f,0x82,0xf5,0x83,0x74,0x7, 0x12,0x5, 0x2f,0x12,0x16,0x93,0xe5,0x2f,0x75,0xf0, +0x7, 0xa4,0x24,0xac,0xf5,0x82,0xe4,0x34,0xa, 0xf1,0x56,0xf1,0x74,0x12,0x0, 0x6, +0xd0,0xe0,0x2f,0xf5,0x31,0xd0,0xe0,0x3e,0xf5,0x30,0xd1,0xdf,0x34,0xa, 0xf5,0x83, +0xe0,0xff,0xf1,0xc2,0xd3,0x94,0x0, 0x40,0x12,0xef,0xd1,0xff,0xf1,0xb8,0xd1,0xdf, +0x34,0xa, 0xf5,0x83,0xe0,0xf1,0xc2,0x14,0xf0,0xc1,0xc0,0xd1,0xdf,0xd1,0xf9,0xf1, +0x56,0xfd,0xd3,0x94,0x64,0xec,0x94,0x0, 0x40,0xd, 0xd3,0xe5,0x31,0x94,0x64,0xe5, +0x30,0x94,0x0, 0x40,0x2, 0x80,0x1e,0xed,0x24,0x32,0xff,0xe4,0x3c,0xfe,0xd3,0xe5, +0x31,0x9f,0xe5,0x30,0x9e,0x40,0x11,0xd1,0xdf,0xd1,0xf9,0xf1,0x56,0xd3,0x94,0x32, +0xec,0x94,0x0, 0x40,0x3, 0xef,0xc1,0xb4,0xd1,0xdf,0x34,0xa, 0xf5,0x83,0xe0,0xfd, +0xd1,0xff,0xf5,0x83,0xa3,0xe0,0xc4,0xf8,0x54,0xf, 0xc8,0x68,0xff,0x5, 0x82,0xd5, +0x82,0x2, 0x15,0x83,0x15,0x82,0xe0,0xc4,0x54,0xf0,0x48,0xfe,0xc3,0xe5,0x31,0x9f, +0xe5,0x30,0x9e,0x50,0x3, 0xed,0xc1,0xb4,0x12,0x4e,0x61,0x90,0x0, 0x4, 0x12,0x2, +0xb7,0xff,0xd3,0xe5,0x31,0x9f,0xe5,0x30,0x95,0xf0,0x40,0x71,0xd1,0xeb,0x91,0xa6, +0xf1,0x9, 0xff,0x12,0x58,0xe6,0x12,0x1, 0x4c,0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74, +0x1, 0x12,0x1, 0xc5,0xd1,0xeb,0x91,0xa6,0xf1,0x9, 0xfd,0xe5,0x2a,0x24,0x28,0xf9, +0xe4,0x35,0x29,0x12,0x59,0x71,0x91,0xa6,0x78,0x3c,0x7c,0xa, 0x7d,0x1, 0xf1,0x5d, +0xe5,0x32,0xd3,0x94,0x0, 0x40,0x36,0x15,0x32,0xe5,0x32,0x12,0x16,0xb1,0xc0,0x3, +0xc0,0x2, 0xc0,0x1, 0xd1,0xeb,0xe5,0x2a,0x2f,0xf9,0xe5,0x29,0x3e,0xa8,0x1, 0xfc, +0xad,0x3, 0xd0,0x1, 0xd0,0x2, 0xd0,0x3, 0xf1,0x5d,0xe5,0x32,0x75,0xf0,0x7, 0xa4, +0x25,0x2a,0xf9,0xe5,0x29,0x35,0xf0,0x7f,0x7, 0xf1,0xe7,0x15,0x2e,0xd1,0xdf,0x34, +0xa, 0xf5,0x83,0xe0,0xd1,0xff,0xf1,0xb8,0x80,0x6, 0xf1,0xb0,0x50,0x2, 0xa1,0x3a, +0x5, 0x2e,0xa1,0x6, 0x12,0x16,0x49,0x90,0x0, 0x41,0xe5,0x32,0x12,0x1, 0xd7,0x78, +0xac,0x7c,0xa, 0x7d,0x1, 0x12,0x16,0x49,0x7e,0x0, 0x7f,0x23,0x2, 0x1, 0x26,0xe5, +0x2f,0x75,0xf0,0x7, 0xa4,0x24,0xb0,0xf5,0x82,0xe4,0x22,0xaf,0x2e,0xef,0x33,0x95, +0xe0,0xfe,0x7c,0x0, 0x7d,0x7, 0x2, 0x1, 0xf9,0x34,0xa, 0xf5,0x83,0xe0,0xff,0x25, +0xe0,0x24,0xcf,0xf5,0x82,0xe4,0x34,0xa, 0x22,0x90,0x0, 0x4, 0x2, 0x1, 0x65,0x90, +0x0, 0x2a,0x2, 0x1, 0x65,0x90,0x0, 0xe, 0x12,0x1, 0x65,0xfd,0x22,0xd3,0xef,0x9d, +0xee,0x9c,0x40,0x2, 0x80,0x50,0xc3,0xed,0x9f,0xff,0xec,0x9e,0xfe,0x22,0x90,0x0, +0x2a,0x12,0x1, 0x65,0xff,0xe5,0x2d,0x75,0xf0,0x7, 0xa4,0x24,0x40,0xf5,0x82,0xe4, +0x34,0xa, 0xf5,0x83,0x22,0xe5,0x2e,0x25,0xe0,0xff,0xe5,0x2d,0x33,0xfe,0xe5,0x32, +0x2f,0xf5,0x82,0xe5,0x31,0x3e,0xf5,0x83,0xe0,0xfc,0xa3,0xe0,0x22,0x7e,0x0, 0x7f, +0x7, 0x2, 0x1, 0x26,0xaf,0x2e,0xef,0x33,0x95,0xe0,0x22,0xff,0xc3,0xe5,0x2c,0x9f, +0xe5,0x2b,0x9e,0x22,0xfd,0xc3,0xef,0x9d,0xff,0xee,0x9c,0xfe,0x22,0xf1,0x1d,0x8e, +0x2b,0x8f,0x2c,0xe5,0x2c,0xa8,0x2d,0x8, 0x22,0xab,0x28,0xe5,0x2a,0x24,0x4f,0xf9, +0xe4,0x35,0x29,0xfa,0x2, 0x1, 0x4c,0x90,0x0, 0x3, 0x8d,0xf0,0x12,0x3, 0x5b,0xab, +0x22,0xe5,0x24,0x2f,0xf9,0xe5,0x23,0x3e,0xfa,0x22,0x90,0x0, 0x4c,0x2, 0x1, 0x65, +0x5, 0x2f,0xe5,0x2f,0xc3,0x94,0x5, 0x22,0xf5,0x83,0xe5,0x30,0xf0,0xa3,0xe5,0x31, +0xf0,0x22,0x24,0xd9,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0xe0,0x22,0xab,0x22,0xe5, +0x24,0x24,0xa, 0xf9,0xe4,0x35,0x23,0xfa,0x22,0x12,0x2, 0xb7,0xd3,0x9d,0xe5,0xf0, +0x9c,0xe5,0x2e,0x75,0xf0,0x7, 0x22,0xa8,0x1, 0xfc,0xad,0x28,0x7b,0x1, 0x7a,0xa, +0x79,0x3c,0x7e,0x0, 0x2, 0x1, 0x26,0x90,0x0, 0x4b,0x2, 0x1, 0x65,0x8e,0x26,0x8f, +0x27,0x11,0xed,0xc3,0xe5,0x26,0x94,0x0, 0x50,0x5, 0xe4,0xf5,0x26,0xf5,0x27,0xc3, +0xec,0x94,0x0, 0x50,0x3, 0xe4,0xfc,0xfd,0xd3,0xe5,0x27,0x94,0x3f,0xe5,0x26,0x94, +0x0, 0x50,0x12,0xe5,0x27,0x25,0xe0,0xff,0xe5,0x26,0x11,0xd5,0x50,0x39,0xe4,0xf5, +0x2b,0xf5,0x2c,0x80,0x32,0xc3,0xe5,0x27,0x94,0x80,0xe5,0x26,0x94,0x2, 0x40,0x2d, +0xe5,0x27,0x24,0x80,0xff,0xe5,0x26,0x34,0xfd,0xfe,0xe5,0x27,0x2f,0xf5,0x2c,0xe5, +0x26,0x3e,0xf5,0x2b,0xd3,0xe5,0x2c,0x94,0xbd,0xe5,0x2b,0x64,0x80,0x94,0x82,0x40, +0x6, 0x75,0x2b,0x2, 0x75,0x2c,0xbf,0x85,0x2b,0x26,0x85,0x2c,0x27,0xd3,0xed,0x94, +0x3f,0xec,0x94,0x0, 0x50,0x10,0xed,0x25,0xe0,0xff,0xec,0x11,0xd5,0x50,0x32,0xe4, +0xf5,0x2b,0xf5,0x2c,0x80,0x2b,0xc3,0xed,0x94,0x40,0xec,0x94,0x4, 0x40,0x26,0xed, +0x24,0xc0,0xff,0xec,0x34,0xfb,0xcf,0x2d,0xf5,0x2c,0xef,0x3c,0xf5,0x2b,0xd3,0xe5, +0x2c,0x94,0x7d,0xe5,0x2b,0x64,0x80,0x94,0x84,0x40,0x6, 0x75,0x2b,0x4, 0x75,0x2c, +0x7f,0xac,0x2b,0xad,0x2c,0x12,0x16,0x49,0xe5,0x26,0x85,0x27,0xf0,0x12,0x3, 0x3c, +0xab,0x28,0x74,0x2, 0x25,0x2a,0xf9,0xf5,0x2a,0xe4,0x35,0x29,0xfa,0xf5,0x29,0xec, +0x8d,0xf0,0x2, 0x3, 0x3c,0x33,0xfe,0xef,0x24,0xc1,0xf5,0x2c,0xee,0x34,0xff,0xf5, +0x2b,0xc3,0xe5,0x2c,0x94,0x2, 0xe5,0x2b,0x64,0x80,0x94,0x80,0x22,0x8b,0x28,0x8a, +0x29,0x89,0x2a,0x22,0x12,0x3f,0x4d,0xe4,0xf5,0x25,0x12,0x17,0x15,0x12,0x4e,0x82, +0xff,0xe5,0x25,0xc3,0x9f,0x50,0x20,0xe5,0x25,0x12,0x17,0xd2,0xfa,0x90,0x0, 0xa, +0x12,0x16,0x93,0x90,0x0, 0xc, 0x12,0x1c,0x77,0xe9,0x24,0xa, 0xf9,0xe4,0x3a,0xfa, +0x12,0x1f,0xfd,0x5, 0x25,0x80,0xd3,0x22,0x12,0x65,0xf0,0x74,0x60,0x12,0x65,0x53, +0x12,0x42,0x48,0xf1,0x1e,0x12,0x34,0x35,0x75,0x36,0x1, 0x75,0x37,0x8, 0x75,0x38, +0xc5,0x91,0xe3,0x12,0x36,0x9b,0x7b,0x1, 0x7a,0x9, 0x79,0xdf,0x12,0x59,0x14,0xe4, +0x90,0xc, 0xef,0xf0,0x7b,0x1, 0x7a,0x9, 0x79,0x3b,0x12,0x30,0xfe,0x90,0xc, 0x31, +0x74,0xa, 0xf0,0x90,0xc, 0x31,0xe0,0x70,0xfa,0x12,0x35,0xaf,0x7b,0x1, 0x7a,0x9, +0x79,0x5e,0xd1,0x33,0x7b,0x1, 0x7a,0x9, 0x79,0x5e,0xf1,0x39,0x90,0xb, 0x5e,0x74, +0x3, 0xf0,0x74,0xe8,0xf1,0x57,0x75,0x2c,0x9, 0x75,0x2d,0x3b,0x12,0xf, 0xc9,0x7e, +0x0, 0x7f,0x83,0x12,0x4f,0xe8,0xb1,0x5, 0x12,0x4f,0x54,0x12,0x37,0xaf,0x90,0xa, +0xde,0xf0,0xa3,0x74,0x64,0xf0,0x75,0x36,0x1, 0x75,0x37,0x0, 0x75,0x38,0x83,0xf1, +0x1e,0xf1,0xcb,0xe4,0x90,0x0, 0x52,0xf0,0xa3,0x4, 0x12,0x67,0x56,0x12,0x5a,0x8d, +0xe4,0x90,0xa, 0xe6,0xf0,0xa3,0xf0,0x7b,0x1, 0x7a,0xa, 0x79,0x2b,0x12,0x3f,0x6b, +0x90,0xc, 0x59,0xe0,0x64,0x1, 0x60,0x2, 0x81,0x9f,0x12,0x37,0xb0,0x90,0xa, 0xde, +0xf0,0x74,0x64,0x12,0x65,0x53,0x12,0x43,0xae,0xe4,0xf5,0xa, 0xf5,0x9, 0x90,0xc, +0x57,0xe0,0x70,0x5, 0x90,0x8, 0x2c,0x80,0x3, 0x90,0x8, 0x2e,0xe0,0xf5,0xb, 0x90, +0xc, 0x52,0xe0,0xf4,0x60,0x17,0x7e,0x0, 0x7f,0x0, 0x7c,0x9, 0x7d,0x3b,0x7a,0x0, +0x7b,0x83,0x75,0x28,0x9, 0x75,0x29,0x5e,0xf1,0x6f,0x12,0x46,0xe8,0xf1,0x15,0x12, +0x2f,0xf9,0x60,0xf9,0x90,0x8, 0x28,0xe0,0x90,0xc, 0x5b,0xf0,0x90,0x8, 0x32,0xe0, +0xb4,0x1, 0x5, 0xe4,0xff,0x12,0x37,0x84,0xb1,0x5, 0x12,0x52,0xa9,0x91,0xea,0x12, +0x5a,0xeb,0xf1,0x59,0x75,0x2c,0x9, 0x75,0x2d,0x18,0x91,0xe3,0x12,0x54,0x69,0x90, +0x8, 0x27,0xe0,0x90,0xc, 0x35,0xf0,0x90,0x8, 0x20,0xe0,0x90,0xc, 0x36,0xf0,0x75, +0x25,0x1, 0x75,0x26,0x9, 0x75,0x27,0x18,0xf1,0x62,0x75,0x2c,0xa, 0x75,0x2d,0x2b, +0x91,0xe3,0x12,0x57,0x8a,0x90,0x8, 0x20,0xe0,0x64,0x6, 0x70,0x42,0x12,0x5a,0x94, +0x40,0x20,0x75,0x34,0x1, 0x75,0x35,0x0, 0x75,0x36,0x83,0x75,0x37,0x1, 0x75,0x38, +0x9, 0x75,0x39,0x18,0x75,0x3a,0x1, 0x75,0x3b,0x0, 0x75,0x3c,0x0, 0x91,0xe3,0x12, +0x2a,0x9c,0x12,0x67,0x4c,0x12,0x66,0xb2,0x75,0x2c,0x8, 0x75,0x2d,0x33,0xf1,0x32, +0x12,0x4e,0xd0,0x90,0x8, 0x62,0xe0,0x30,0xe0,0x5, 0xe4,0x90,0x8, 0x20,0xf0,0x90, +0x8, 0x27,0xe0,0x70,0x10,0x90,0x8, 0x20,0xe0,0xb4,0x4, 0x9, 0x90,0xa, 0xe6,0xe4, +0xf0,0xa3,0x74,0xa, 0xf0,0xd3,0x90,0xa, 0xe7,0xe0,0x94,0x0, 0x90,0xa, 0xe6,0xe0, +0x94,0x0, 0x40,0x12,0xa3,0xe0,0x24,0xff,0xf0,0x90,0xa, 0xe6,0xe0,0x34,0xff,0xf0, +0x90,0x8, 0x20,0x74,0x4, 0xf0,0x12,0x66,0x48,0xb1,0x5, 0x12,0x51,0x48,0x90,0x9, +0x15,0xef,0xf0,0x90,0x0, 0x0, 0xe0,0x14,0xf0,0x90,0xa, 0x2b,0xe0,0xb4,0x1, 0x11, +0x90,0xa, 0x2f,0xe0,0xff,0x90,0x8, 0x60,0xe0,0xfe,0xc3,0x9f,0x40,0x3, 0xee,0x9f, +0xf0,0x91,0xea,0x12,0x48,0xa3,0x91,0xe3,0x11,0xf4,0x90,0x0, 0x0, 0xe0,0x4, 0xf0, +0x90,0xa, 0x2b,0xe0,0x64,0x1, 0x70,0x52,0xf5,0x21,0x90,0xa, 0x2f,0xe0,0xff,0xe5, +0x21,0xc3,0x9f,0x50,0x3f,0x74,0x2c,0x25,0x21,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83, +0xe0,0xfd,0x90,0x8, 0x60,0xe0,0x25,0x21,0xfe,0x75,0xf0,0x7, 0xa4,0x24,0x3d,0xf5, +0x82,0xe4,0x34,0x8, 0xf5,0x83,0xe4,0xf0,0xa3,0xed,0xf0,0xee,0x75,0xf0,0x7, 0xa4, +0x24,0x3f,0xf5,0x82,0xe4,0x34,0x8, 0xf5,0x83,0x74,0x4, 0xf0,0xa3,0x74,0xbf,0xf0, +0x5, 0x21,0x80,0xb6,0x90,0x8, 0x60,0xe0,0x2f,0xf0,0x90,0x8, 0x20,0xe0,0xb4,0x6, +0xe, 0x90,0x8, 0x60,0xe0,0xd3,0x94,0x1, 0x40,0x5, 0xe4,0x90,0x8, 0x20,0xf0,0x12, +0x67,0x4c,0x75,0x28,0x1, 0x75,0x29,0x9, 0x75,0x2a,0x18,0xf1,0x1e,0x12,0x55,0xb5, +0x90,0x8, 0x27,0xe0,0x70,0xf, 0x90,0x8, 0x61,0xe0,0xff,0x90,0x8, 0x60,0xe0,0xd3, +0x9f,0x40,0xa, 0x80,0x0, 0x12,0x66,0x48,0xb1,0x5, 0x12,0x45,0x3c,0x90,0x8, 0x60, +0xe0,0xa3,0xf0,0x90,0x9, 0x10,0xf0,0xf1,0x32,0x91,0xa5,0x90,0x9, 0x10,0xe0,0x90, +0x8, 0x60,0xf0,0x90,0xa, 0x22,0x74,0x1, 0xf0,0xa3,0x74,0xa, 0xf0,0xa3,0x74,0x25, +0xf0,0x12,0x66,0x48,0x7b,0x1, 0x7a,0x9, 0x79,0xdf,0x12,0x17,0x1c,0x90,0x8, 0xc5, +0x74,0x1, 0xf0,0xa3,0x74,0x9, 0xf0,0xa3,0x74,0xdf,0xf0,0x90,0x8, 0x60,0xe0,0x90, +0x9, 0x10,0xf0,0x12,0x67,0x42,0x75,0x28,0x1, 0x75,0x29,0x8, 0x75,0x2a,0xc5,0x91, +0xe3,0x12,0x18,0x2d,0xe4,0xf5,0x21,0x12,0x66,0xa4,0x12,0x55,0xae,0x64,0xbf,0x70, +0x3, 0xee,0x64,0x4, 0x70,0x37,0x12,0x66,0x38,0xa3,0xe0,0xff,0x25,0xe0,0x25,0xe0, +0x24,0x30,0xf5,0x82,0xe4,0x34,0xa, 0x12,0x1f,0x56,0xfd,0x12,0x66,0x38,0xec,0xf0, +0xa3,0xed,0xf0,0xef,0x25,0xe0,0x25,0xe0,0x24,0x32,0xf5,0x82,0xe4,0x34,0xa, 0x12, +0x55,0xae,0xff,0x12,0x66,0xa4,0xf5,0x83,0xee,0xf0,0xa3,0xef,0xf0,0x5, 0x21,0xe5, +0x21,0x64,0x5, 0x70,0xb2,0x12,0x67,0x42,0xf1,0x32,0x12,0x3d,0x41,0x75,0x25,0x1, +0x75,0x26,0x8, 0x75,0x27,0x29,0x12,0x66,0xb2,0x75,0x2c,0x0, 0x75,0x2d,0x83,0x75, +0x2e,0x1, 0x75,0x2f,0x8, 0x75,0x30,0x33,0xf1,0x32,0x12,0x50,0x1a,0x21,0xd0,0x12, +0x30,0xdd,0x2, 0x0, 0x21,0x12,0x1f,0xaa,0xff,0xd3,0x94,0x0, 0x50,0x34,0x12,0x1f, +0xf7,0xd3,0x9f,0x40,0x1d,0x90,0x0, 0x50,0x12,0x1, 0x65,0xff,0x90,0xc, 0xef,0xe0, +0xc3,0x9f,0x50,0x13,0xe0,0x4, 0xf0,0x12,0x1f,0xaa,0x90,0x0, 0x4b,0x12,0x1, 0xd7, +0x80,0x5, 0xe4,0x90,0xc, 0xef,0xf0,0x12,0x1f,0xf7,0x70,0x6, 0xe9,0x24,0x4f,0x12, +0x3f,0x5f,0x22,0x7b,0x1, 0x7a,0x8, 0x79,0x33,0x22,0x75,0x25,0x1, 0x75,0x26,0x0, +0x75,0x27,0x0, 0x75,0x28,0x1, 0x75,0x29,0x9, 0x75,0x2a,0x18,0x75,0x2b,0x1, 0x75, +0x2c,0x8, 0x75,0x2d,0x33,0x7b,0x1, 0x7a,0x0, 0x79,0x83,0x22,0x12,0x37,0xa2,0xe4, +0xf5,0x2d,0xd1,0x16,0x85,0x2d,0x82,0x12,0x63,0xd9,0xfd,0xaf,0x2d,0x12,0x0, 0x4e, +0xe5,0x2d,0x24,0x1c,0x12,0x67,0x80,0xd1,0x24,0x12,0x67,0x1e,0x24,0x38,0xd1,0x1d, +0x12,0x67,0x1e,0x24,0x54,0x12,0x67,0x78,0xd1,0x24,0xf1,0x25,0x94,0x1c,0x40,0xd2, +0xd1,0x16,0x90,0x0, 0x70,0x12,0x1, 0x65,0xfd,0x7f,0x7e,0x12,0x0, 0x4e,0xd1,0x16, +0x90,0x0, 0x71,0x12,0x1, 0x65,0xfd,0x7f,0x7f,0x12,0x0, 0x4e,0xd1,0x16,0x90,0x0, +0x73,0x12,0x1, 0x65,0xfd,0x7f,0x81,0x12,0x0, 0x4e,0xd1,0x16,0x90,0x0, 0x74,0x12, +0x1, 0x65,0x7f,0x82,0x12,0x67,0x70,0xe5,0x2d,0x24,0x83,0xff,0xab,0x2a,0xe5,0x2c, +0x24,0x75,0xd1,0x24,0xf1,0x25,0x94,0x4, 0x40,0xed,0xe4,0xf5,0x2d,0xe5,0x2d,0x24, +0x87,0xff,0xab,0x2a,0xe5,0x2c,0x24,0x79,0xd1,0x24,0xf1,0x25,0x94,0x2, 0x40,0xed, +0xd1,0x16,0x90,0x0, 0x7b,0x12,0x1, 0x65,0xfd,0x7f,0x89,0x12,0x0, 0x4e,0xd1,0x16, +0x90,0x0, 0x7c,0x12,0x1, 0x65,0x7f,0x8c,0x12,0x67,0x70,0xe5,0x2d,0x24,0x8d,0xff, +0xab,0x2a,0xe5,0x2c,0x24,0x7d,0xd1,0x24,0xf1,0x25,0x94,0x3, 0x40,0xed,0xd1,0x16, +0x12,0x2d,0x9a,0xfd,0x7f,0x90,0x2, 0x0, 0x4e,0x12,0x36,0x0, 0x12,0x65,0xf0,0xa3, +0x74,0x60,0xf0,0xf1,0x1e,0x12,0x34,0x35,0x12,0x32,0x4, 0xb1,0xc, 0x53,0xdb,0xf0, +0xf1,0x3b,0x90,0xb, 0x5e,0x74,0x1, 0xf0,0x74,0x2c,0xf1,0x57,0x75,0x2c,0x8, 0x75, +0x2d,0x29,0x12,0xf, 0xc9,0x12,0x30,0xdd,0x12,0x5a,0x8d,0x90,0xc, 0xac,0xe0,0x54, +0x8f,0xf0,0x22,0x12,0x47,0xb2,0xab,0x2a,0xaa,0x2b,0xa9,0x2c,0x22,0xff,0xab,0x2a, +0xe5,0x2c,0x24,0x38,0xf9,0xe4,0x35,0x2b,0xfa,0xe5,0x2d,0x7c,0x0, 0x29,0xf9,0xec, +0x3a,0xfa,0x22,0x12,0x37,0xa2,0x78,0x2e,0x7c,0x0, 0x7d,0x0, 0x7b,0xff,0x7a,0xf, +0x79,0x95,0x7e,0x0, 0x7f,0x1c,0x12,0x1, 0x26,0xe4,0xf5,0x2d,0xf1,0x4b,0xe0,0xff, +0xc3,0x94,0x1c,0x50,0x53,0x12,0x47,0x5a,0xe0,0xd1,0x16,0x8f,0x82,0x75,0x83,0x0, +0x12,0x1, 0xd7,0xe5,0x2d,0x20,0xe0,0xf, 0x12,0x41,0x69,0xe0,0x54,0xf, 0xff,0xe9, +0x24,0x1c,0xf9,0xe4,0x3a,0x80,0x10,0xe5,0x2d,0x12,0x41,0x69,0xe0,0xc4,0x54,0xf, +0x12,0x67,0x80,0xf9,0xe4,0x35,0x2b,0xfa,0xf1,0x4b,0xe0,0xd1,0x2b,0xef,0x12,0x1, +0xc5,0x74,0x2e,0x25,0x2d,0xf8,0xe6,0x12,0x67,0x78,0xf9,0xe4,0x35,0x2b,0xfa,0xf1, +0x4b,0xe0,0xd1,0x2b,0xef,0x12,0x1, 0xc5,0x90,0xa, 0xef,0xe0,0xd1,0x1d,0xef,0x12, +0x1, 0xc5,0x5, 0x2d,0xe5,0x2d,0x64,0x1c,0x70,0x92,0xd1,0x16,0x90,0x0, 0x70,0xe4, +0x12,0x1, 0xd7,0x90,0x0, 0x71,0x74,0x7, 0x12,0x1, 0xd7,0x90,0x0, 0x72,0x74,0x17, +0x12,0x1, 0xd7,0x90,0x0, 0x73,0x74,0x2, 0x12,0x1, 0xd7,0x90,0x0, 0x74,0x74,0x7f, +0x12,0x1, 0xd7,0xe4,0xfd,0xd1,0x13,0x7d,0x1, 0xd1,0x13,0x90,0x0, 0x7b,0x74,0xf, +0x12,0x1, 0xd7,0x90,0x0, 0x7c,0x74,0x21,0x12,0x67,0xa8,0xff,0x90,0x0, 0x7d,0x12, +0x1, 0xd7,0x90,0x0, 0x7e,0xef,0x12,0x1, 0xd7,0x90,0x0, 0x7f,0xef,0x12,0x67,0x3, +0x74,0x5d,0x2, 0x1, 0xd7,0x75,0x4b,0x1, 0x75,0x4c,0x0, 0x75,0x4d,0x83,0x7b,0x1, +0x7a,0x0, 0x79,0x0, 0x22,0x12,0x1, 0x4c,0xfd,0x12,0x0, 0x4e,0x5, 0x2d,0xe5,0x2d, +0xc3,0x22,0x7b,0x1, 0x7a,0x8, 0x79,0xc5,0x22,0xb1,0xc, 0x53,0xdb,0xfd,0xd2,0xba, +0x43,0xdb,0x1, 0x43,0xdb,0x20,0x22,0xef,0x12,0x1, 0xc5,0x74,0xfb,0x25,0x2d,0xf5, +0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0xa3,0xf0,0x75,0x25,0x1, 0x75,0x26,0x0, 0x75, +0x27,0x0, 0x75,0x28,0x1, 0x75,0x29,0x0, 0x75,0x2a,0x83,0x75,0x2b,0x1, 0x22,0x8e, +0x22,0x8f,0x23,0x8c,0x24,0x8d,0x25,0x8a,0x26,0x8b,0x27,0x12,0x37,0xa9,0x12,0x3f, +0x9e,0xaa,0x22,0xa9,0x23,0x7b,0x1, 0x12,0x34,0x35,0xaa,0x24,0xa9,0x25,0x7b,0x1, +0x12,0x30,0xfe,0xe5,0x23,0x24,0x55,0xf5,0x82,0xe4,0x35,0x22,0xf5,0x83,0x74,0x21, +0xf0,0xaa,0x28,0xa9,0x29,0x7b,0x1, 0xd1,0x33,0xaa,0x28,0xa9,0x29,0x7b,0x1, 0xb1, +0xc, 0xf1,0x3b,0xaa,0x26,0xa9,0x27,0x7b,0x1, 0x12,0x35,0xfd,0xaa,0x22,0xa9,0x23, +0x7b,0x1, 0xc0,0x3, 0x8b,0x36,0x12,0x4f,0x44,0xd0,0x3, 0x8b,0x33,0x8a,0x34,0x89, +0x35,0x12,0x67,0x32,0xf5,0x40,0x12,0x2f,0xf3,0xf5,0x41,0x90,0x0, 0x53,0xe4,0x12, +0x1, 0xd7,0x90,0x0, 0x52,0xe4,0x12,0x1, 0xd7,0xe5,0x38,0x24,0x80,0xf9,0xe5,0x37, +0x34,0x3, 0xaf,0x1, 0xf5,0x3e,0x8f,0x3f,0x85,0x37,0x3c,0x85,0x38,0x3d,0x75,0x39, +0x1, 0x85,0x36,0x4b,0x85,0x37,0x4c,0x85,0x38,0x4d,0xab,0x33,0xaa,0x34,0xa9,0x35, +0xf1,0xf9,0x60,0xed,0xe4,0xf5,0x3a,0xf5,0x3b,0x12,0x67,0x38,0xe5,0x3f,0x2f,0xf5, +0x82,0xe5,0x3e,0x12,0x55,0xad,0x78,0x2, 0x12,0x58,0xf8,0xd8,0xfb,0xfd,0xac,0x6, +0x12,0x67,0x38,0xe5,0x3d,0x2f,0xf5,0x82,0xe5,0x3c,0x3e,0xf5,0x83,0xec,0x8d,0xf0, +0x12,0x2, 0x60,0x5, 0x3b,0xe5,0x3b,0x70,0x2, 0x5, 0x3a,0xb4,0xc0,0xcb,0xe5,0x3a, +0xb4,0x1, 0xc6,0x5, 0x39,0xe5,0x39,0xd3,0x94,0x4, 0x40,0xa5,0xab,0x33,0xaa,0x34, +0xa9,0x35,0x90,0x0, 0x53,0xe5,0x40,0x12,0x1, 0xd7,0x90,0x0, 0x52,0xe5,0x41,0x2, +0x1, 0xd7,0x8b,0x48,0x8a,0x49,0x89,0x4a,0x75,0x51,0x20,0x90,0x0, 0x55,0x12,0x1, +0x65,0xf5,0x59,0x12,0x17,0xc1,0xf5,0x60,0x12,0x1, 0x4c,0xf5,0x61,0x85,0x60,0x62, +0xe5,0x60,0x25,0xe0,0xf5,0x63,0x12,0x67,0x32,0xf5,0x64,0xf1,0xf3,0xf5,0x67,0x90, +0x0, 0x82,0x12,0x1, 0x65,0xf5,0x68,0xab,0x4b,0xaa,0x4c,0xa9,0x4d,0x90,0x7, 0xa5, +0xe5,0x17,0x12,0x1, 0xd7,0x12,0x64,0x4e,0xef,0x70,0x3, 0x7f,0xaa,0x22,0xab,0x4b, +0xaa,0x4c,0xa9,0x4d,0x90,0x7, 0x9a,0x12,0x5, 0x6c,0xaf,0x1, 0x8a,0x65,0x8f,0x66, +0xaf,0x61,0x7e,0x0, 0xab,0x48,0xe5,0x4a,0x24,0x56,0xf9,0xe4,0x35,0x49,0xfa,0x78, +0x6d,0x7c,0x0, 0x7d,0x0, 0x12,0x1, 0x26,0xaf,0x60,0x7e,0x0, 0xab,0x48,0xe5,0x4a, +0x24,0x72,0xf9,0xe4,0x35,0x49,0xfa,0x78,0x89,0x7c,0x0, 0x7d,0x0, 0x12,0x1, 0x26, +0xe5,0x59,0x54,0x30,0x60,0x78,0x75,0x4e,0x10,0x75,0x4f,0x0, 0xe4,0x25,0x4d,0xf9, +0xe5,0x4c,0x34,0x7, 0xaf,0x1, 0xf5,0x5c,0x8f,0x5d,0xe4,0xf5,0x50,0xe5,0x50,0xc3, +0x95,0x60,0x50,0x5a,0xb1,0xb0,0xe0,0xfe,0xa3,0xe0,0xff,0x85,0x5d,0x82,0x85,0x5c, +0x83,0x51,0x90,0xee,0xf0,0xa3,0xef,0xf0,0xe5,0x59,0x30,0xe5,0x19,0xb1,0xb0,0x75, +0xf0,0x2, 0xe5,0x62,0x12,0x35,0xef,0xff,0xe5,0x5d,0x24,0x20,0x12,0x67,0x90,0x51, +0x95,0xee,0xf0,0xa3,0xef,0xf0,0xe5,0x59,0x54,0x30,0x64,0x30,0x70,0x19,0xb1,0xb0, +0x75,0xf0,0x2, 0xe5,0x63,0x12,0x35,0xef,0xff,0xe5,0x5d,0x24,0x40,0x12,0x67,0x90, +0x51,0x90,0xee,0xf0,0xa3,0xef,0xf0,0x12,0x66,0xd5,0x5, 0x50,0x80,0x9f,0xe5,0x59, +0x54,0x3, 0xf5,0x58,0x70,0x2, 0x41,0x8a,0xe5,0x68,0xb4,0x1, 0x8, 0x75,0x4e,0x10, +0x75,0x4f,0x60,0x80,0x6, 0x75,0x4e,0x10,0x75,0x4f,0x48,0x85,0x4e,0x52,0x85,0x4f, +0x53,0xe5,0x4d,0x24,0x80,0xf9,0xe5,0x4c,0x34,0x3, 0xaf,0x1, 0xf5,0x54,0x8f,0x55, +0x85,0x4c,0x56,0x85,0x4d,0x57,0xe4,0xf5,0x50,0xe5,0x50,0xc3,0x95,0x61,0x40,0x2, +0x41,0x8a,0x85,0x51,0xf0,0x12,0x67,0x88,0xff,0xae,0xf0,0x25,0x55,0xfd,0xe5,0x54, +0x3e,0xf5,0x5a,0x8d,0x5b,0xe5,0x57,0x2f,0xff,0xe5,0x56,0x3e,0xf5,0x5c,0x8f,0x5d, +0xe4,0xfd,0xed,0xc3,0x95,0x60,0x40,0x2, 0x41,0x6c,0xb1,0xb0,0xe0,0xf5,0x5e,0xa3, +0xe0,0xf5,0x5f,0xe5,0x67,0x70,0x29,0x85,0x60,0xf0,0x12,0x67,0x88,0x25,0x66,0xf5, +0x82,0xe5,0x65,0x35,0xf0,0xf5,0x83,0x74,0x89,0x2d,0xf8,0xe6,0x25,0x82,0x12,0x3f, +0x34,0x75,0xf0,0x8, 0xa4,0xae,0xf0,0x25,0x5f,0xf5,0x5f,0xee,0x35,0x5e,0xf5,0x5e, +0xe5,0x64,0x60,0x30,0x85,0x5d,0x82,0x85,0x5c,0x83,0x74,0x89,0x2d,0xf8,0xe6,0xff, +0x51,0x96,0xe0,0xfa,0xa3,0xe0,0xfb,0xc3,0xe5,0x5f,0x9b,0xfb,0xe5,0x5e,0x9a,0xfa, +0x85,0x5a,0x83,0x85,0x5b,0x82,0x75,0xf0,0x2, 0xef,0x12,0x5, 0x40,0xea,0xf0,0xa3, +0xeb,0xf0,0x80,0x12,0x85,0x5b,0x82,0x85,0x5a,0x83,0x74,0x89,0x2d,0x51,0x94,0xe5, +0x5e,0xf0,0xa3,0xe5,0x5f,0xf0,0x12,0x66,0xd5,0xd, 0x21,0xe2,0xe5,0x68,0xb4,0x1, +0x4, 0x74,0x20,0x80,0x2, 0x74,0x48,0x25,0x53,0xf5,0x53,0xe4,0x35,0x52,0xf5,0x52, +0x85,0x52,0x4e,0x85,0x53,0x4f,0x5, 0x50,0x21,0xb9,0x12,0x27,0x3b,0x7f,0x0, 0x22, +0x74,0x89,0x25,0x50,0xf8,0xe6,0x75,0xf0,0x2, 0x2, 0x5, 0x40,0x12,0x57,0x70,0x12, +0x4e,0x82,0xf5,0x43,0x12,0x55,0x7b,0xf5,0x44,0xe5,0x43,0xd3,0x94,0x0, 0x50,0x8, +0xe5,0x44,0x94,0x0, 0x50,0x2, 0xa1,0x70,0xb1,0x7e,0x90,0x0, 0x82,0x74,0x1, 0x12, +0x1, 0x92,0x90,0x0, 0x82,0x12,0x1, 0x65,0x64,0x5, 0x60,0x2, 0xa1,0x7d,0xb1,0x7e, +0x90,0x0, 0x82,0x12,0x1, 0xd7,0xb1,0x9a,0x60,0x2, 0x61,0xb0,0xb1,0x7e,0xb1,0xaa, +0x60,0x2, 0x61,0xb0,0x90,0x0, 0x83,0x12,0x67,0x3, 0xe5,0x43,0x12,0x1, 0xd7,0x90, +0x0, 0x81,0xe5,0x44,0x12,0x1, 0xd7,0xe4,0xf5,0x3d,0xe5,0x43,0x25,0x44,0xff,0xe4, +0x33,0xfe,0xc3,0xe5,0x3d,0xb1,0xd4,0x40,0x2, 0xa1,0x7d,0xe5,0x3d,0xc3,0x95,0x43, +0x50,0x2a,0xe5,0x33,0x24,0x30,0xf9,0xe4,0x35,0x32,0xb1,0xc4,0x12,0x17,0xd5,0xb1, +0xb7,0xb1,0x7e,0x75,0xf0,0x2, 0xe5,0x3d,0x12,0x16,0xe3,0x12,0x67,0xa0,0xe5,0x3d, +0x75,0xf0,0x2, 0x12,0x17,0xd5,0xfa,0x90,0x0, 0x1, 0x80,0x3d,0xab,0x31,0xe5,0x33, +0x24,0x58,0xf9,0xe4,0x35,0x32,0xfa,0xc3,0xe5,0x3d,0x95,0x43,0xfd,0xe4,0x94,0x0, +0xfc,0xed,0xae,0x4, 0x78,0x3, 0xc3,0x33,0xce,0x33,0xce,0xd8,0xf9,0x29,0xf9,0xea, +0x3e,0xb1,0xb7,0x12,0x46,0xf7,0xab,0x31,0xe5,0x33,0x2f,0xf9,0xe5,0x32,0x3e,0xfa, +0x90,0x0, 0x87,0x12,0x67,0xa0,0x90,0x0, 0x88,0x12,0x1, 0x65,0xc3,0x13,0xf5,0x41, +0xb1,0x8c,0xa3,0xe5,0x42,0xf0,0xb1,0x8c,0xe5,0x41,0xf0,0xb1,0xa0,0xf5,0x83,0x74, +0x1, 0xf0,0xd1,0xd2,0xe5,0x42,0x12,0x59,0x7, 0xe5,0x41,0x12,0x5, 0x40,0x12,0x2, +0xb7,0xff,0xb1,0x8c,0xa3,0xa3,0xe5,0xf0,0xf0,0xa3,0xef,0xf0,0x5, 0x3d,0x41,0xfa, +0xb1,0x7e,0xb1,0xaa,0xff,0xb1,0x9a,0x2f,0xf5,0x3e,0xe4,0xf5,0x3d,0xb1,0x7e,0xb1, +0xaa,0xff,0xb1,0x9a,0xb1,0xcb,0x40,0x2, 0xa1,0xc, 0xe5,0x3d,0xc3,0x9d,0x50,0x7, +0xb1,0xbe,0x12,0x17,0xd5,0x80,0x12,0xb1,0x94,0x12,0x62,0x90,0xef,0x78,0x3, 0xc3, +0x33,0xce,0x33,0xce,0xd8,0xf9,0x12,0x66,0x96,0xb1,0xb7,0x12,0x66,0xe1,0xb1,0x8b, +0xa3,0xe0,0x75,0xf0,0x20,0xb1,0x85,0xe0,0x75,0xf0,0x2, 0x12,0x16,0xe3,0x12,0x2, +0xb7,0xf5,0x40,0x85,0xf0,0x3f,0xb1,0xa0,0xf5,0x83,0xe0,0x70,0x4, 0x15,0x3e,0xa1, +0x8, 0xe4,0xf5,0x48,0xf5,0x47,0x12,0x63,0xe7,0x12,0x1, 0x4c,0xff,0xe5,0x47,0xc3, +0x9f,0x40,0x2, 0x81,0xbe,0xb1,0x8c,0xa3,0xe0,0xff,0x65,0x47,0x70,0x2, 0x81,0xba, +0x12,0x66,0xe1,0xfa,0x75,0xf0,0x20,0xef,0xb1,0x85,0xe0,0x75,0xf0,0x2, 0x12,0x16, +0xe3,0x12,0x1c,0x77,0xb1,0x8c,0xa3,0xe0,0x75,0xf0,0x10,0xa4,0xff,0xb1,0x8c,0xe0, +0x12,0x62,0xd4,0x12,0x46,0x76,0xaa,0x35,0xa9,0x36,0x12,0x67,0xa, 0xfd,0xec,0x35, +0xf0,0xfc,0xc0,0x4, 0xc0,0x5, 0xe5,0x47,0x12,0x65,0xad,0xc0,0x83,0xc0,0x82,0xb1, +0x8c,0xe0,0xff,0xd0,0x82,0xd0,0x83,0x51,0x96,0x12,0x1c,0x77,0xef,0xfb,0x7a,0x0, +0xe5,0x47,0x75,0xf0,0x10,0xa4,0x2b,0xff,0xea,0x35,0xf0,0x12,0x46,0x76,0xab,0x34, +0xaa,0x35,0x12,0x67,0xa, 0xff,0xec,0x35,0xf0,0xfe,0xc3,0xd0,0xe0,0x9f,0xff,0xd0, +0xe0,0x9e,0xfe,0xb1,0x94,0xfd,0xe5,0x3d,0xc3,0x9d,0x50,0xe, 0xd1,0xd9,0x12,0x58, +0xff,0xe5,0xf0,0x12,0x62,0x80,0x40,0x2, 0x5, 0x48,0x5, 0x47,0x81,0x16,0x12,0x63, +0xe7,0x12,0x1, 0x4c,0xc3,0x13,0xff,0xe5,0x48,0xc3,0x9f,0x40,0xf, 0xd1,0xd2,0x12, +0x57,0x28,0x64,0x6, 0x60,0x6, 0xb1,0xa0,0xf5,0x83,0xe4,0xf0,0xb1,0x8c,0xa3,0x12, +0x4d,0xe1,0xc3,0xe5,0x40,0x9f,0xff,0xe5,0x3f,0x9e,0xfe,0x12,0x0, 0x6, 0x8e,0x3f, +0x8f,0x40,0x12,0x65,0x3, 0xff,0xd3,0xe5,0x40,0x9f,0x74,0x80,0xf8,0x65,0x3f,0x98, +0x40,0x6, 0xb1,0xa0,0xf5,0x83,0xe4,0xf0,0x5, 0x3d,0x61,0xbd,0xe5,0x3e,0x70,0x7, +0xb1,0x7e,0x90,0x0, 0x80,0x80,0x63,0xb1,0x7e,0x90,0x0, 0x83,0x12,0x1, 0x65,0xc3, +0x94,0x4, 0x40,0x42,0xe4,0xf5,0x3d,0xb1,0x7e,0xb1,0xaa,0xff,0xb1,0x9a,0xb1,0xcb, +0x50,0x4b,0xe5,0x3d,0xc3,0x9d,0x50,0x7, 0xb1,0xbe,0x12,0x17,0xd5,0x80,0x12,0xb1, +0x94,0x12,0x62,0x90,0xef,0x78,0x3, 0xc3,0x33,0xce,0x33,0xce,0xd8,0xf9,0x12,0x66, +0x96,0xb1,0xb7,0xb1,0xa0,0xf5,0x83,0xe0,0xb4,0x1, 0x7, 0xb1,0xa0,0xf5,0x83,0x74, +0x2, 0xf0,0x5, 0x3d,0x80,0xc1,0xb1,0x7e,0x90,0x0, 0x83,0x74,0x1, 0x2, 0x1, 0x92, +0xb1,0x7e,0x90,0x0, 0x83,0xe4,0x12,0x67,0x3, 0xe4,0x12,0x57,0x80,0x22,0xab,0x31, +0xaa,0x32,0xa9,0x33,0x22,0xa4,0x29,0xf9,0xe5,0xf0,0x3a,0xfa,0x85,0x46,0x82,0x85, +0x45,0x83,0xa3,0x22,0xab,0x31,0xaa,0x32,0xa9,0x33,0x90,0x0, 0x80,0x2, 0x1, 0x65, +0xe5,0x46,0x24,0x7, 0xf5,0x82,0xe4,0x35,0x45,0x22,0x90,0x0, 0x81,0x2, 0x1, 0x65, +0x85,0x4f,0x82,0x85,0x4e,0x83,0x22,0xaf,0x1, 0xf5,0x45,0x8f,0x46,0x22,0xe9,0x24, +0x30,0xf9,0xe4,0x3a,0xfa,0xe5,0x3d,0x75,0xf0,0x8, 0x22,0xfd,0x2f,0xff,0xe4,0x33, +0xfe,0xe5,0x3d,0xc3,0x9f,0xee,0x64,0x80,0xf8,0x74,0x80,0x98,0x22,0x12,0x57,0x70, +0x12,0x1, 0x4c,0x13,0x13,0x54,0x3f,0xf5,0x3c,0x12,0x17,0xc1,0x13,0x13,0x54,0x3f, +0xf5,0x3d,0xe4,0xf5,0x3e,0xf5,0x3f,0xf5,0x40,0xe5,0x3c,0x70,0x3, 0x75,0x3c,0x1, +0xe5,0x3d,0x70,0x3, 0x75,0x3d,0x1, 0xe4,0xf5,0x3a,0xb1,0x7e,0x12,0x1, 0x4c,0xff, +0xe5,0x3a,0xc3,0x9f,0x50,0x4e,0xe4,0xf5,0x3b,0xb1,0x7e,0x12,0x17,0xc1,0xff,0xe5, +0x3b,0xc3,0x9f,0x50,0x37,0xf1,0xca,0xfd,0xd3,0xef,0x9d,0x74,0x80,0xf8,0x65,0xf0, +0x98,0x40,0x4, 0x5, 0x3e,0x80,0x1b,0xf1,0xca,0xfd,0xc3,0xe4,0x9d,0xfd,0xe4,0x94, +0x0, 0xfc,0xc3,0xef,0x9d,0xec,0x64,0x80,0xf8,0xe5,0xf0,0x64,0x80,0x98,0x50,0x2, +0x5, 0x3f,0x5, 0x40,0xe5,0x3d,0x25,0x3b,0xf5,0x3b,0x80,0xbd,0xe5,0x3c,0x25,0x3a, +0xf5,0x3a,0x80,0xa6,0xe5,0x40,0xc3,0x13,0xff,0xe5,0x3e,0xd3,0x9f,0x40,0x21,0x90, +0x7, 0x9f,0x12,0x64,0xd3,0xfe,0xd1,0xd2,0x90,0x7, 0x9e,0x12,0x1, 0x65,0xc3,0x9e, +0x90,0x7, 0x9e,0x50,0x2, 0x80,0x25,0xe4,0x12,0x1, 0xd7,0x75,0x16,0x1, 0x80,0x3f, +0xe5,0x3f,0xd3,0x9f,0x40,0x26,0x90,0x7, 0x9e,0x12,0x64,0xd3,0xff,0xd1,0xd2,0x90, +0x7, 0x9f,0x12,0x1, 0x65,0xc3,0x9f,0x90,0x7, 0x9f,0x50,0x7, 0x74,0x1, 0x12,0x1, +0x92,0x80,0x1c,0xe4,0x12,0x1, 0xd7,0x75,0x16,0x2, 0x80,0x13,0xd1,0xd2,0x90,0x7, +0x9f,0xe4,0x12,0x1, 0xd7,0x90,0x7, 0x9e,0xe4,0x12,0x1, 0xd7,0xe4,0xf5,0x16,0xaf, +0x16,0x22,0xab,0x34,0xaa,0x35,0xa9,0x36,0x22,0xab,0x37,0xaa,0x38,0xa9,0x39,0x22, +0x8b,0x37,0x8a,0x38,0x89,0x39,0x90,0x0, 0x19,0x12,0x1, 0x65,0xfd,0x7f,0x6, 0xf1, +0x43,0xd1,0xd9,0x90,0x0, 0x1a,0x12,0x1, 0x65,0xfd,0x7f,0xa, 0xf1,0x43,0x12,0x65, +0x3, 0xfd,0x7f,0x8, 0xf1,0x43,0xd1,0xd9,0x90,0x0, 0x1c,0x12,0x1, 0x65,0xfd,0x7f, +0xc, 0xf1,0x43,0xd1,0xd9,0x90,0x0, 0x1d,0x12,0x1, 0x65,0xfd,0x7f,0x2a,0xf1,0x43, +0xf1,0xe7,0xfd,0x7f,0x2e,0xf1,0x43,0xe4,0xfd,0x7f,0x1c,0xf1,0x43,0xd1,0xd9,0x90, +0x0, 0x21,0x12,0x1, 0x65,0xfd,0x7f,0x2, 0xf1,0x43,0x90,0x0, 0x22,0x12,0x57,0x77, +0xfd,0x7f,0x4, 0x12,0x63,0xfd,0xef,0x44,0x40,0xf5,0xa1,0xe5,0xdb,0x30,0xe3,0xfb, +0x53,0xdb,0xf3,0x8d,0xa1,0xe5,0xdb,0x30,0xe3,0xfb,0x53,0xdb,0xf3,0x43,0xab,0x4, +0x22,0x8b,0x34,0x8a,0x35,0x89,0x36,0xe4,0xff,0x12,0x64,0x62,0xd1,0xd2,0x90,0x0, +0x18,0x12,0x1, 0x65,0xff,0x12,0x64,0x21,0x7f,0x1, 0x12,0x64,0x6d,0x12,0x64,0x33, +0xef,0x70,0x2, 0xff,0x22,0x7d,0x7f,0x7f,0x14,0xf1,0xb8,0xef,0x70,0x2, 0xff,0x22, +0xe5,0x36,0x24,0x10,0xf9,0xe4,0x35,0x35,0x85,0x34,0x3a,0xf5,0x3b,0x89,0x3c,0xd1, +0xd2,0x12,0x63,0x1d,0xd1,0xd2,0xd1,0xe0,0xe4,0xff,0x12,0x64,0x6d,0x12,0x64,0x45, +0xef,0x7f,0x0, 0x60,0x2, 0x7f,0x1, 0x22,0xae,0x5, 0xac,0x7, 0xf1,0x43,0x12,0x64, +0x4, 0xef,0x7f,0x0, 0xb5,0x6, 0x2, 0x7f,0x1, 0x22,0xab,0x34,0xaa,0x35,0xa9,0x36, +0x90,0x3, 0x80,0x75,0xf0,0x20,0xe5,0x3a,0x12,0x5, 0x40,0x75,0xf0,0x2, 0xe5,0x3b, +0x12,0x5, 0x40,0x12,0x2, 0xb7,0xff,0xab,0x37,0xaa,0x38,0xa9,0x39,0x90,0x0, 0x1e, +0x2, 0x1, 0x65,0x90,0x0, 0x52,0x2, 0x1, 0x65,0x11,0x72,0xef,0x64,0xaa,0x22,0xe4, +0x90,0xc, 0xdb,0xf0,0x90,0xc, 0xae,0xf0,0x22,0x75,0x10,0x4, 0x75,0x11,0x3, 0x12, +0x65,0xf0,0xa3,0x74,0x60,0xf0,0x12,0x3d,0x29,0x12,0x2f,0xff,0x12,0x27,0x1e,0x91, +0x35,0x7b,0x1, 0x7a,0x8, 0x79,0x29,0x11,0xfe,0xb1,0xaf,0x51,0xc, 0x12,0x27,0x39, +0x90,0x0, 0x1, 0xe0,0x90,0xc, 0xd5,0xf0,0x90,0x0, 0x0, 0xe0,0x90,0xc, 0xd4,0xf0, +0xd1,0x0, 0xe4,0x90,0x0, 0x52,0xf0,0xa3,0x12,0x67,0x56,0x90,0xc, 0xd2,0x74,0x3, +0xf0,0xd1,0x0, 0x90,0xc, 0xd1,0xe0,0x70,0x31,0x12,0x0, 0x1e,0x90,0xc, 0xd1,0x74, +0x1, 0xf0,0x7f,0x0, 0x7e,0x7c,0xf1,0x8d,0x75,0x24,0x1, 0x75,0x25,0x0, 0x75,0x26, +0x83,0x75,0x27,0x4, 0x12,0x27,0x1e,0x51,0x1c,0xe4,0xfd,0xff,0xfe,0x71,0x9f,0x7f, +0x4, 0x12,0x40,0xea,0x90,0xc, 0xd1,0x74,0xff,0xf0,0x90,0xc, 0xd2,0xe0,0x64,0x3, +0x70,0x43,0x90,0xc, 0xac,0xe0,0x30,0xe7,0xb8,0x12,0x27,0x1e,0x91,0x35,0xf1,0xa9, +0x51,0x4, 0x12,0x25,0xc, 0x12,0x27,0x3b,0x90,0xc, 0xda,0xe0,0x90,0x0, 0x52,0x70, +0x3, 0xf0,0x80,0x3, 0x74,0x1, 0xf0,0xe4,0x90,0x0, 0x53,0xf0,0xb1,0xaf,0x12,0x27, +0x15,0x12,0x2f,0xf9,0x60,0xf8,0x75,0x10,0x4, 0x75,0x11,0x3, 0x90,0xc, 0xac,0xe0, +0x54,0x7f,0xf0,0x1, 0x51,0x90,0xc, 0xd2,0xe0,0x90,0xc, 0x59,0xf0,0xe4,0xff,0xfd, +0xfc,0xe5,0xdb,0x20,0xe1,0xf, 0xf, 0xbf,0xff,0x5, 0xd, 0xbd,0x0, 0x1, 0xc, 0xbc, +0x3, 0xef,0xbd,0xe8,0xec,0x53,0xdb,0xfe,0x53,0xdb,0xfd,0xc2,0xba,0x22,0xf1,0xa2, +0xe4,0xf5,0x2e,0xe5,0x2e,0x20,0xe0,0x13,0xab,0x2a,0x31,0xfa,0xe5,0x2e,0xc3,0x13, +0x7e,0x0, 0x29,0xf9,0xee,0x3a,0xfa,0xe4,0x12,0x1, 0xc5,0xe5,0x2e,0xc3,0x94,0xb, +0x50,0x1e,0x74,0x33,0x25,0x2e,0x12,0x47,0x17,0xe0,0xff,0xe5,0x2e,0x90,0xf, 0x48, +0x93,0xf5,0x82,0x75,0x83,0x0, 0xa3,0xa3,0xa3,0x12,0x26,0x16,0xef,0x12,0x1, 0xd7, +0x5, 0x2e,0xe5,0x2e,0xb4,0x10,0xbc,0xe4,0xf5,0x2e,0xe5,0x2e,0x20,0xe0,0x5, 0xb1, +0xc6,0xe0,0x80,0x9, 0xe5,0x2e,0xb1,0xc6,0xe0,0x54,0xf0,0xff,0xc4,0x54,0xf, 0xf5, +0x2d,0xe5,0x2e,0xc3,0x94,0xb, 0x50,0x2c,0xe5,0x2e,0x90,0xf, 0x48,0x93,0xff,0x24, +0x3, 0xab,0x2a,0x20,0xe0,0xa, 0x31,0xfa,0xef,0x12,0x7, 0x6b,0x45,0x2d,0x80,0x11, +0x31,0xfa,0xe5,0x2e,0x90,0xf, 0x48,0x12,0x7, 0x6a,0xff,0xe5,0x2d,0xc4,0x54,0xf0, +0x4f,0x12,0x1, 0xc5,0x5, 0x2e,0xe5,0x2e,0x64,0x10,0x70,0xae,0x90,0xa, 0xed,0xe0, +0x12,0x26,0x16,0x90,0x0, 0x18,0x12,0x1, 0xd7,0x90,0xb, 0x17,0xe0,0x90,0x0, 0x19, +0xf1,0xbf,0x90,0x0, 0x1a,0x12,0x1, 0xd7,0x90,0x0, 0x1b,0xe4,0xf1,0xb7,0x90,0x0, +0x1c,0x12,0x1, 0xd7,0x90,0x0, 0x1e,0x74,0x13,0x12,0x1, 0xd7,0x90,0x0, 0x20,0x74, +0x3, 0x12,0x1, 0xd7,0x90,0x0, 0x21,0x74,0x3f,0x12,0x1, 0xd7,0x90,0x0, 0x22,0x74, +0x3f,0x12,0x1, 0xd7,0x90,0x0, 0x1d,0x74,0xa, 0x12,0x1, 0xd7,0x90,0x0, 0x1f,0x74, +0x1, 0x12,0x1, 0xd7,0x12,0x2f,0x61,0x8f,0x2d,0x22,0xe5,0x2c,0x24,0x10,0xf9,0xe4, +0x35,0x2b,0xfa,0x22,0x7b,0x1, 0x7a,0x8, 0x79,0x29,0x11,0xfe,0x7b,0x1, 0x7a,0x8, +0x79,0x4c,0x12,0x26,0x33,0x7b,0x1, 0x7a,0x8, 0x79,0x4c,0x22,0x8b,0x21,0x8a,0x22, +0x89,0x23,0xe4,0xf5,0x44,0xf5,0x45,0x74,0x60,0x25,0x45,0x12,0x47,0x45,0x5, 0x45, +0xe5,0x45,0x70,0x2, 0x5, 0x44,0x64,0xd1,0x45,0x44,0x70,0xeb,0x11,0xdd,0x12,0x27, +0x3b,0x85,0x24,0x4b,0x85,0x25,0x4c,0x85,0x26,0x4d,0xab,0x21,0xaa,0x22,0xa9,0x23, +0x12,0x2f,0xf9,0x60,0xec,0xe5,0x26,0x24,0x80,0xf9,0xe5,0x25,0x34,0x3, 0xaf,0x1, +0xf5,0x10,0x8f,0x11,0xe4,0xf5,0x2a,0xf5,0x2b,0xe4,0xf5,0x43,0xe5,0x2b,0x45,0x2a, +0x70,0x6, 0x71,0xf7,0xe4,0xf6,0x8, 0xf6,0xe5,0x2b,0xae,0x2a,0x78,0x5, 0xc3,0x33, +0xce,0x33,0xce,0xd8,0xf9,0xb1,0xe1,0xff,0x71,0xf7,0xe6,0xfc,0x8, 0xe6,0xfd,0xd3, +0xef,0x9d,0xee,0x9c,0x40,0xf, 0xef,0x94,0x1c,0xee,0x94,0x25,0x50,0x7, 0x71,0xf7, +0xa6,0x6, 0x8, 0xa6,0x7, 0x5, 0x43,0xe5,0x43,0xb4,0xb, 0xc0,0x5, 0x2b,0xe5,0x2b, +0x70,0x2, 0x5, 0x2a,0x64,0x13,0x45,0x2a,0x70,0xaf,0xe4,0xf5,0x46,0xf5,0x47,0xf5, +0x2a,0xf5,0x2b,0xe4,0xf5,0x43,0xe5,0x2b,0xae,0x2a,0x78,0x5, 0xc3,0x33,0xce,0x33, +0xce,0xd8,0xf9,0xb1,0xe1,0xff,0xd3,0x94,0x1c,0xee,0x94,0x25,0x40,0xa, 0x5, 0x47, +0xe5,0x47,0x70,0x2, 0x5, 0x46,0x80,0x45,0x71,0xf7,0xe6,0xfc,0x8, 0xe6,0xc3,0x9f, +0xf5,0x45,0xec,0x9e,0xf5,0x44,0xe5,0x45,0xae,0x44,0x78,0x3, 0xce,0xc3,0x13,0xce, +0x13,0xd8,0xf9,0xf5,0x45,0x8e,0x44,0xd3,0x94,0xff,0xe5,0x44,0x94,0x0, 0x40,0x6, +0x75,0x44,0x0, 0x75,0x45,0xff,0x5, 0x47,0xe5,0x47,0xac,0x46,0x70,0x2, 0x5, 0x46, +0x14,0x24,0x60,0xf5,0x82,0x74,0xb, 0x3c,0xf5,0x83,0xe5,0x45,0xf0,0x5, 0x43,0xe5, +0x43,0x64,0xb, 0x70,0x91,0x5, 0x2b,0xe5,0x2b,0x70,0x2, 0x5, 0x2a,0x64,0x13,0x45, +0x2a,0x70,0x80,0x75,0x28,0xa, 0x75,0x29,0xeb,0xe4,0xf5,0x2c,0xf5,0x2a,0xf5,0x2b, +0x85,0x29,0x82,0x85,0x28,0x83,0xe0,0x62,0x2c,0x7e,0x0, 0xe5,0x2b,0x25,0x27,0xff, +0xee,0x35,0x2a,0xfe,0x5, 0x29,0xe5,0x29,0xac,0x28,0x70,0x2, 0x5, 0x28,0x14,0xf5, +0x82,0x8c,0x83,0xe0,0xfd,0x71,0x9f,0x5, 0x2b,0xe5,0x2b,0x70,0x2, 0x5, 0x2a,0xc3, +0x94,0x46,0xe5,0x2a,0x94,0x1, 0x40,0xc8,0xad,0x2c,0x7f,0xf0,0x7e,0x3, 0x71,0x9f, +0xc3,0x74,0xff,0x95,0x2c,0xfd,0x7f,0xf1,0x7e,0x3, 0x71,0x9f,0x7f,0x1, 0x22,0x12, +0x47,0xf, 0x12,0x47,0x31,0xe4,0xf5,0xf8,0x8a,0xf9,0x8b,0xfa,0x8d,0xfb,0x43,0xfc, +0x3, 0x75,0xf8,0x82,0x7f,0xa, 0x71,0xe1,0xd2,0xf8,0x7f,0x4, 0x71,0xe1,0xd2,0xfe, +0x7f,0x26,0x71,0xe1,0xc2,0xfe,0xc2,0xf9,0x7f,0xc, 0x71,0xe1,0xc2,0xf8,0x7f,0x1, +0x71,0xe1,0x43,0xfc,0x3, 0xe4,0xf5,0xf8,0xd2,0xaf,0x22,0x7f,0xfa,0x71,0xe1,0x7f, +0xfa,0xae,0x7, 0x1f,0xee,0x60,0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x80,0xeb,0x22,0xe5,0x43,0x25,0xe0,0x24,0x2d,0xf8,0x22,0xad, +0x7, 0xaf,0x5, 0x1d,0xef,0x60,0xa, 0x71,0xdb,0x7f,0xfa,0x71,0xe1,0x71,0xdb,0x80, +0xf0,0x22,0x12,0x47,0x3b,0xe4,0xf5,0xf8,0x12,0x47,0x7, 0x75,0xf8,0x88,0x7f,0x14, +0x71,0xe1,0x75,0xf8,0x89,0x7f,0x2d,0x71,0xff,0xc2,0xfb,0x7f,0x14,0x71,0xe1,0xc2, +0xf8,0x7f,0xa, 0x80,0x9b,0xf1,0xa2,0x75,0x4d,0xff,0xe4,0xf5,0x4e,0x75,0x4f,0xff, +0xf5,0x50,0xf5,0x5f,0x75,0x60,0x0, 0x75,0x61,0x51,0x12,0x66,0x52,0x12,0x26,0x16, +0x90,0x0, 0x52,0xe4,0x12,0x66,0xc2,0x74,0x1, 0x12,0x67,0xa8,0x90,0x0, 0x54,0x12, +0x1, 0xd7,0x90,0xa, 0xeb,0xe0,0x12,0x1, 0xc5,0x90,0xa, 0xec,0xe0,0x12,0x26,0x16, +0x12,0x46,0xdc,0xe4,0xf5,0x2d,0x12,0x26,0x16,0x12,0x1, 0x4c,0xff,0xe5,0x2d,0xc3, +0x9f,0x50,0x33,0x12,0x47,0x5a,0xe0,0xff,0xe9,0x24,0x31,0xf9,0xe4,0x3a,0xfa,0xe5, +0x2d,0xfd,0x12,0x26,0x2b,0x12,0x27,0x47,0xe0,0xff,0xab,0x2a,0xe5,0x2c,0x24,0x4, +0xf9,0xe4,0x35,0x2b,0xfa,0xe9,0x2d,0xf9,0xec,0x3a,0xfa,0x12,0x27,0x47,0xe0,0xff, +0x74,0x2f,0xb1,0xb6,0x80,0xc0,0xe4,0xf5,0x2d,0x12,0x26,0x16,0x12,0x17,0xc1,0xff, +0xe5,0x2d,0xc3,0x9f,0x50,0x17,0xb1,0xbe,0xe9,0x24,0x20,0xf9,0xe4,0x3a,0x12,0x26, +0x28,0xef,0x12,0x1, 0xc5,0xb1,0xbe,0x74,0x42,0xb1,0xb6,0x80,0xdc,0xe4,0xf5,0x2d, +0x90,0xa, 0xec,0xe0,0xff,0xe5,0x2d,0xc3,0x9f,0x50,0x3e,0xe4,0xf5,0x2e,0x90,0xa, +0xec,0xe0,0xff,0xe5,0x2e,0xc3,0x9f,0x50,0x15,0x74,0x42,0x25,0x2e,0xf8,0xe6,0xff, +0xc3,0x95,0x4f,0x50,0x5, 0x8f,0x4f,0x85,0x2e,0x50,0x5, 0x2e,0x80,0xe0,0x74,0x42, +0x25,0x50,0xf8,0x76,0xff,0x75,0x4f,0xff,0xab,0x2a,0xe5,0x2c,0x24,0x72,0xb1,0xd2, +0xe5,0x50,0x12,0x1, 0xc5,0x5, 0x2d,0x80,0xb7,0xe4,0xf5,0x2d,0x90,0xa, 0xeb,0xe0, +0xff,0xe5,0x2d,0xc3,0x9f,0x50,0x3e,0xe4,0xf5,0x2e,0x90,0xa, 0xeb,0xe0,0xff,0xe5, +0x2e,0xc3,0x9f,0x50,0x15,0x74,0x2f,0x25,0x2e,0xf8,0xe6,0xff,0xc3,0x95,0x4d,0x50, +0x5, 0x8f,0x4d,0x85,0x2e,0x4e,0x5, 0x2e,0x80,0xe0,0x74,0x2f,0x25,0x4e,0xf8,0x76, +0xff,0x75,0x4d,0xff,0xab,0x2a,0xe5,0x2c,0x24,0x56,0xb1,0xd2,0xe5,0x4e,0x12,0x1, +0xc5,0x5, 0x2d,0x80,0xb7,0x90,0xa, 0xee,0xe0,0x12,0x26,0x16,0x90,0x0, 0x30,0x12, +0x1, 0xd7,0x90,0x0, 0x31,0x12,0x1, 0x65,0x90,0x0, 0x51,0xf1,0xbf,0x90,0x0, 0x4d, +0xf1,0xb7,0xff,0x90,0x0, 0x4e,0x12,0x1, 0xd7,0x90,0x0, 0x4f,0xef,0x12,0x1, 0xd7, +0x90,0x0, 0x50,0xef,0x12,0x1, 0xd7,0x90,0x0, 0x82,0x74,0x1, 0x2, 0x1, 0xd7,0x90, +0x0, 0x55,0x74,0x21,0xf0,0x22,0x25,0x2d,0xf8,0xa6,0x7, 0x5, 0x2d,0x22,0x74,0x51, +0x25,0x2d,0xf8,0xe6,0xff,0x22,0xc3,0x13,0x24,0x51,0xf5,0x82,0xe4,0x34,0xb, 0xf5, +0x83,0x22,0xf9,0xe4,0x35,0x2b,0xfa,0x7e,0x0, 0xe9,0x25,0x2d,0xf9,0xee,0x3a,0xfa, +0x22,0x25,0x11,0xf5,0x82,0xe5,0x10,0x3e,0xf5,0x83,0x75,0xf0,0x2, 0xe5,0x43,0x12, +0x5, 0x40,0xe0,0xfe,0xa3,0xe0,0x22,0xab,0x25,0xaa,0x26,0xa9,0x27,0x12,0x4f,0x54, +0xe4,0x90,0xa, 0xe4,0xf0,0xa3,0xf0,0x90,0xa, 0xde,0x74,0xd, 0xf0,0xa3,0x74,0xac, +0xf0,0x22,0xd1,0x0, 0xf1,0x70,0xf1,0x8f,0x7f,0x1, 0x12,0x62,0xdc,0xf1,0xc7,0x12, +0x46,0xe8,0x12,0x3f,0x9e,0x12,0x5a,0x8d,0x90,0xc, 0x59,0xe0,0x24,0xfd,0x60,0x14, +0x14,0x60,0x15,0x24,0xaf,0x60,0x2d,0x24,0xab,0x60,0x12,0x24,0xa9,0x70,0xe9,0x12, +0x21,0x28,0x80,0xe4,0x11,0x9, 0x80,0xe0,0x12,0x25,0xd9,0x80,0xdb,0xf1,0xaf,0x90, +0xa, 0xe8,0xe0,0x64,0xaa,0x60,0xd1,0xe4,0x90,0xa, 0xe0,0xf0,0x90,0xa, 0xe8,0x74, +0xaa,0xf0,0x80,0xc4,0xf1,0xaf,0x90,0xa, 0xe8,0xe0,0xb4,0xaa,0xbb,0x74,0x55,0xf0, +0x90,0xc, 0xed,0x12,0x46,0xff,0x90,0xc, 0xed,0x74,0xff,0xf5,0xf0,0x12,0x2, 0x76, +0x45,0xf0,0x70,0xf2,0xd1,0x8b,0x75,0xe9,0xff,0x80,0x9d,0x7d,0x66,0x7f,0xf8,0x7e, +0x6f,0x71,0xa2,0x7d,0xbb,0x7f,0xf9,0x7e,0x6f,0x61,0xa2,0x8b,0x33,0x8a,0x34,0x89, +0x35,0xe4,0xf5,0x39,0xf5,0x3a,0xf1,0x61,0x70,0x2, 0x5, 0x39,0x64,0x92,0x45,0x39, +0x70,0xf4,0xab,0x36,0xaa,0x37,0xa9,0x38,0xe4,0xf5,0x39,0xf5,0x3a,0xf1,0x61,0x70, +0x2, 0x5, 0x39,0x64,0x53,0x45,0x39,0x70,0xf4,0xe4,0xf5,0x39,0xf5,0x3a,0xab,0x33, +0xe5,0x35,0x24,0xa, 0xf9,0xe4,0x35,0x34,0xfa,0xae,0x39,0xaf,0x3a,0x12,0x1e,0xf2, +0xf1,0x3a,0xf1,0x5a,0x24,0x3, 0xf1,0x2e,0xf1,0x5a,0x24,0x26,0xf1,0x2e,0xf1,0x41, +0x5, 0x3a,0xe5,0x3a,0x70,0x2, 0x5, 0x39,0xc3,0x94,0x5, 0xe5,0x39,0x94,0x0, 0x40, +0xcd,0xab,0x36,0xaa,0x37,0xa9,0x38,0x90,0x0, 0x51,0x74,0x1, 0x12,0x1, 0xd7,0xe4, +0xf5,0xa, 0xf5,0xb, 0xf5,0x9, 0xf5,0x8, 0xd1,0x1, 0xe4,0xa3,0xf0,0x90,0xa, 0xe8, +0xf0,0xa3,0xf0,0xa3,0xf0,0xc2,0x1, 0x90,0xa, 0xe1,0xf0,0xa3,0xf0,0x22,0xf9,0xe4, +0x35,0x37,0xfa,0xae,0x39,0xaf,0x3a,0x12,0x1, 0xf9,0xe9,0x2f,0xf9,0xea,0x3e,0xfa, +0x22,0x74,0xff,0xf5,0xf0,0x12,0x3, 0x3c,0x90,0x0, 0x2, 0x74,0xff,0xf5,0xf0,0x12, +0x3, 0x5b,0x90,0x0, 0x4, 0x74,0xff,0x2, 0x1, 0xd7,0xf1,0x41,0xab,0x36,0xe5,0x38, +0x22,0xe4,0x12,0x1, 0xc5,0x4, 0x29,0xf9,0xe4,0x3a,0xfa,0x5, 0x3a,0xe5,0x3a,0x22, +0x2, 0x0, 0x22,0x30,0x0, 0x7, 0x7f,0x1, 0xf1,0x84,0xc2,0x0, 0x22,0xe4,0xff,0xf1, +0x84,0xd2,0x0, 0x22,0xef,0x70,0x3, 0xd2,0x98,0x22,0xc2,0x98,0x22,0x81,0x12,0x12, +0x41,0xcc,0xc2,0x8e,0x43,0xa2,0x10,0x75,0xa6,0xf0,0x75,0xa5,0x5f,0xd2,0x8e,0xd2, +0xab,0x22,0x8b,0x2a,0x8a,0x2b,0x89,0x2c,0x22,0x11,0xdd,0x53,0xdb,0xf0,0x22,0xe4, +0x90,0xa, 0xe4,0xf0,0xa3,0xf0,0x22,0x12,0x1, 0xd7,0x90,0xa, 0xef,0xe0,0x22,0x12, +0x1, 0xd7,0x90,0xb, 0x43,0xe0,0x22,0xe4,0x90,0xc, 0xac,0xf0,0x12,0x42,0x3b,0xe4, +0x90,0xc, 0xab,0xf0,0x90,0xc, 0xa7,0xf0,0x90,0xc, 0xac,0xe0,0xc4,0x54,0x7, 0x70, +0x6, 0xa3,0x12,0x3a,0x78,0x80,0xf, 0x90,0xc, 0xac,0xe0,0xc4,0x54,0x7, 0xff,0xbf, +0x4, 0x4, 0xa3,0x12,0x38,0xa, 0xe4,0x12,0x3c,0xb2,0xf0,0x90,0xc, 0x73,0x74,0xaa, +0xf0,0xa3,0xf0,0x90,0xc, 0x8d,0xf0,0xa3,0xf0,0x22,0xe0,0xff,0x31,0x6e,0x8f,0x95, +0x22,0x30,0x95,0x5d,0x90,0xc, 0xa9,0xe0,0x4, 0xf0,0xe0,0xff,0xb4,0x1, 0x8, 0x90, +0xc, 0xad,0xe5,0x95,0xf0,0x80,0x2d,0x90,0xc, 0xac,0xe0,0xfe,0xc4,0x54,0x7, 0x70, +0xc, 0xa3,0xe0,0x2f,0x24,0xfe,0xff,0xad,0x95,0x51,0x9b,0x80,0x17,0x90,0xc, 0xac, +0xe0,0xc4,0x54,0x7, 0xff,0xbf,0x4, 0xc, 0x90,0xc, 0xa9,0x51,0x89,0x24,0xfe,0xff, +0xad,0x95,0x71,0x40,0x90,0xc, 0xac,0xe0,0xc4,0x54,0x7, 0xfd,0x70,0xb, 0x51,0x7f, +0x60,0xf, 0x90,0xc, 0xad,0x51,0x78,0x80,0x8, 0xbd,0x4, 0x5, 0x90,0xc, 0xad,0x11, +0xa, 0x30,0x94,0x1f,0x90,0xc, 0xa7,0xe0,0x4, 0xf0,0x90,0xc, 0xac,0xe0,0xc4,0x54, +0x7, 0xfd,0x70,0x8, 0x51,0x7f,0x60,0xb, 0x51,0x86,0x41,0x79,0xbd,0x4, 0x4, 0x51, +0x86,0x11,0xb, 0x22,0x51,0x91,0xff,0xc3,0x94,0x80,0x40,0x10,0xef,0xd3,0x94,0xbf, +0x50,0xa, 0x74,0xb2,0x2f,0xf5,0x82,0xe4,0x34,0xb, 0x21,0x55,0xa8,0x18,0xe6,0x24, +0x4, 0x60,0xb, 0x24,0xfc,0x70,0xe, 0x90,0xc, 0xac,0xe0,0xff,0x21,0x5d,0x90,0xc, +0x59,0xe0,0xff,0x21,0x5d,0xa8,0x18,0xe6,0xff,0xb4,0x3, 0x9, 0x30,0x2, 0x4, 0x51, +0x71,0x80,0x2, 0x51,0x6a,0xef,0x24,0xfe,0x60,0x34,0x24,0xfb,0x50,0x46,0x24,0xfe, +0x24,0xfc,0x50,0x4c,0x24,0xfe,0x24,0xfc,0x50,0x52,0x24,0xfe,0x24,0xfc,0x50,0x55, +0x24,0xfe,0x24,0xfc,0x50,0x58,0x24,0x1e,0x70,0x61,0x30,0x2, 0x4, 0x51,0x71,0x80, +0x2, 0x51,0x6a,0xe5,0xf, 0x24,0x4, 0xf5,0x82,0xe4,0x35,0xe, 0x80,0x47,0x30,0x2, +0x4, 0x51,0x71,0x80,0x2, 0x51,0x6a,0x85,0xf, 0x82,0x85,0xe, 0x83,0xa3,0xa3,0xa3, +0xe0,0xff,0x80,0x39,0xa8,0x18,0xe6,0x24,0x2, 0xff,0xe4,0x33,0x31,0x64,0x80,0x25, +0xa8,0x18,0xe6,0x25,0xf, 0xf5,0x82,0xe4,0x35,0xe, 0x80,0x19,0xa8,0x18,0xe6,0x24, +0xfe,0x31,0x60,0x80,0x10,0xa8,0x18,0xe6,0x24,0xfc,0x31,0x60,0x80,0x7, 0xa8,0x18, +0xe6,0x24,0xfa,0x31,0x60,0xf5,0x83,0xe0,0xff,0x80,0x2, 0x7f,0x0, 0x5, 0x18,0x22, +0xff,0xe4,0x34,0xff,0xfe,0xe5,0xf, 0x2f,0xf5,0x82,0xe5,0xe, 0x3e,0x22,0x51,0x91, +0xfe,0x14,0x60,0x1e,0x14,0x60,0x22,0x24,0xf2,0x50,0x22,0x24,0xc4,0x60,0x28,0x24, +0xfe,0x60,0x32,0x24,0x64,0x60,0x27,0x24,0xea,0x70,0x31,0x90,0xc, 0xac,0xe0,0xff, +0x41,0x67,0x90,0xc, 0xaa,0xe0,0xff,0x41,0x67,0x7f,0xff,0x41,0x67,0x74,0xe8,0x2e, +0xf5,0x82,0xe4,0x34,0xa, 0x41,0x5f,0x90,0xa, 0xf8,0xe0,0xff,0x41,0x67,0x90,0xc, +0xda,0xe0,0xff,0x41,0x67,0x90,0xb, 0x5d,0xe0,0xff,0x41,0x67,0xa8,0x18,0xe6,0xff, +0xc3,0x94,0x10,0x40,0x1b,0xef,0x94,0x26,0x50,0x16,0xe5,0xd, 0x2f,0xf5,0x82,0xe4, +0x35,0xc, 0xf5,0x83,0xe5,0x82,0x24,0xf0,0xf5,0x82,0xe5,0x83,0x34,0xff,0x80,0x7f, +0xa8,0x18,0xe6,0xff,0xc3,0x94,0x50,0x40,0x14,0xef,0xd3,0x94,0x77,0x50,0xe, 0x74, +0xab,0x2f,0x91,0x5c,0xe0,0xff,0x7d,0x78,0x12,0x0, 0x26,0x80,0x6a,0xa8,0x18,0xe6, +0xff,0xc3,0x94,0x78,0x40,0x10,0xef,0xd3,0x94,0x9f,0x50,0xa, 0x74,0x9f,0x2f,0xf5, +0x82,0xe4,0x34,0xa, 0x80,0x49,0xa8,0x18,0xe6,0xff,0xc3,0x94,0xa0,0x40,0x10,0xef, +0xd3,0x94,0xbe,0x50,0xa, 0x74,0x93,0x2f,0xf5,0x82,0xe4,0x34,0xa, 0x80,0x30,0xa8, +0x18,0xe6,0xff,0xc3,0x94,0xbf,0x40,0x10,0xef,0xd3,0x94,0xd2,0x50,0xa, 0x74,0x84, +0x2f,0xf5,0x82,0xe4,0x34,0xa, 0x80,0x17,0xa8,0x18,0xe6,0xff,0xc3,0x94,0xd3,0x40, +0x14,0xef,0xd3,0x94,0xe1,0x50,0xe, 0x74,0x7e,0x2f,0xf5,0x82,0xe4,0x34,0xa, 0xf5, +0x83,0xe0,0xff,0x80,0x2, 0x7f,0xff,0x5, 0x18,0x22,0x75,0xe, 0xc, 0x75,0xf, 0x8d, +0x22,0x75,0xe, 0xc, 0x75,0xf, 0x73,0x22,0xe0,0xff,0x11,0x94,0x8f,0x95,0x22,0xff, +0x11,0x94,0xef,0x64,0x10,0x22,0x90,0xc, 0xa7,0xe0,0xff,0x90,0xc, 0xad,0xe0,0x2f, +0x22,0x15,0x18,0xa8,0x18,0xa6,0x7, 0xa8,0x18,0xe6,0x22,0x8f,0x69,0x8d,0x6a,0xe5, +0x69,0xc3,0x94,0x80,0x40,0xe, 0xe5,0x69,0xd3,0x94,0xbf,0x50,0x7, 0xe5,0x69,0x24, +0x80,0xff,0x80,0x33,0xe5,0x69,0x24,0x4, 0x60,0x29,0x24,0xfc,0x70,0x2b,0x91,0x64, +0xb4,0x4, 0xf, 0x90,0xc, 0x59,0xe0,0x7d,0x3, 0xb4,0x3, 0x2, 0x80,0xd, 0x7f,0x27, +0x80,0x15,0x90,0xc, 0x59,0xe0,0x7d,0x1, 0xb4,0x3, 0x4, 0x7f,0x1, 0x80,0xb, 0x7f, +0x27,0x80,0x4, 0xad,0x6a,0x7f,0x27,0x91,0x7a,0x22,0x8d,0x6b,0xef,0xc3,0x94,0xa, +0x50,0xa, 0x74,0xd1,0x2f,0xf5,0x82,0xe4,0x34,0xc, 0x80,0x34,0xef,0x24,0xf6,0xf5, +0x6c,0xc3,0x94,0x46,0x74,0x80,0x94,0x81,0x50,0x2b,0xe5,0x6c,0xb4,0x4f,0x3, 0x2, +0x37,0x73,0xe5,0x6c,0xc3,0x94,0x10,0x40,0x15,0xe5,0x6c,0xd3,0x94,0x23,0x50,0xe, +0x7d,0x78,0xaf,0x6b,0x12,0x6, 0xd5,0x71,0x36,0xf5,0x83,0xef,0xf0,0x22,0x71,0x36, +0xf5,0x83,0xe5,0x6b,0xf0,0x22,0x74,0xeb,0x25,0x6c,0xf5,0x82,0xe4,0x34,0xa, 0x22, +0x8f,0x69,0x8d,0x6a,0xe5,0x69,0x14,0x60,0x3c,0x14,0x60,0x50,0x24,0xf2,0x50,0x63, +0x24,0xc4,0x60,0x6a,0x24,0xfe,0x60,0x70,0x14,0x60,0x72,0x24,0x65,0x60,0x64,0x24, +0xea,0x70,0x6d,0x91,0x64,0x64,0x4, 0x60,0xd, 0x90,0xc, 0x59,0xe0,0x7d,0x1, 0xb4, +0x3, 0x2, 0x80,0x2f,0x80,0xb, 0x90,0xc, 0x59,0xe0,0x7d,0x3, 0xb4,0x3, 0x2, 0x80, +0x22,0x7f,0x27,0x81,0x7a,0x90,0xc, 0xaa,0xe5,0x6a,0xf0,0xe0,0x75,0xf0,0x20,0xa4, +0xae,0xf0,0x25,0x11,0xf5,0xd, 0xee,0x35,0x10,0xf5,0xc, 0x22,0xe5,0x6a,0xb4,0x4, +0x6, 0x7d,0x4, 0x7f,0x1, 0x80,0xa, 0xe5,0x6a,0x64,0x5, 0x60,0x2, 0x81,0x5b,0xfd, +0xff,0x41,0xea,0x74,0xe8,0x25,0x69,0xf5,0x82,0xe4,0x34,0xa, 0x80,0x47,0x90,0xa, +0xf8,0x81,0x58,0x90,0xc, 0xda,0x81,0x58,0x90,0xb, 0x5d,0x81,0x58,0x2, 0x37,0x73, +0xe5,0x69,0xc3,0x94,0x50,0x40,0x17,0xe5,0x69,0xd3,0x94,0x77,0x50,0x10,0x7d,0x78, +0xaf,0x6a,0x12,0x6, 0xd5,0x74,0xab,0x25,0x69,0x91,0x5c,0xef,0xf0,0x22,0xe5,0x69, +0xc3,0x94,0x78,0x40,0x14,0xe5,0x69,0xd3,0x94,0x9f,0x50,0xd, 0x74,0x9f,0x25,0x69, +0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x80,0x4f,0xe5,0x69,0xc3,0x94,0xa0,0x40,0x14, +0xe5,0x69,0xd3,0x94,0xbe,0x50,0xd, 0x74,0x93,0x25,0x69,0xf5,0x82,0xe4,0x34,0xa, +0xf5,0x83,0x80,0x34,0xe5,0x69,0xc3,0x94,0xbf,0x40,0x14,0xe5,0x69,0xd3,0x94,0xd2, +0x50,0xd, 0x74,0x84,0x25,0x69,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x80,0x19,0xe5, +0x69,0xc3,0x94,0xd3,0x40,0x15,0xe5,0x69,0xd3,0x94,0xe1,0x50,0xe, 0x74,0x7e,0x25, +0x69,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0xe5,0x6a,0xf0,0x22,0xf5,0x82,0xe4,0x34, +0xa, 0xf5,0x83,0x22,0x7b,0x1, 0x7a,0xc, 0x79,0xac,0xe5,0x6a,0x12,0x1, 0xc5,0x53, +0x6a,0x70,0xe5,0x6a,0xc4,0x54,0xf, 0xf5,0x6a,0x22,0xef,0xd3,0x94,0x3f,0x50,0x31, +0xef,0x24,0xfd,0x60,0x2c,0x14,0x60,0x29,0x24,0xe1,0x60,0x25,0x24,0xfd,0x60,0x21, +0x24,0xfe,0x60,0x1d,0x24,0xf9,0x60,0x19,0x24,0xfe,0x60,0x15,0x80,0x0, 0x74,0x32, +0x2f,0xf5,0x82,0xe4,0x34,0xc, 0xf5,0x83,0xed,0xf0,0x90,0xc, 0x72,0xe0,0x44,0x1, +0xf0,0x22,0x90,0xc, 0xa9,0xf0,0x90,0xc, 0xa8,0x22,0xc0,0xe0,0xc0,0x83,0xc0,0x82, +0xc2,0x93,0x90,0xc, 0xa7,0xe4,0xf0,0x91,0xb2,0xf0,0xd0,0x82,0xd0,0x83,0xd0,0xe0, +0x32,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0,0x82,0xc0,0xd0,0x75,0xd0,0x0, 0xc0,0x0, +0xc0,0x1, 0xc0,0x2, 0xc0,0x3, 0xc0,0x4, 0xc0,0x5, 0xc0,0x6, 0xc0,0x7, 0xe5,0xc9, +0x54,0x3, 0xff,0xbf,0x1, 0x6, 0x53,0xc9,0xfc,0x43,0xc9,0x2, 0x11,0x11,0x30,0x95, +0x2, 0xc2,0x95,0x30,0x94,0x2, 0xc2,0x94,0x90,0xc, 0xa8,0x74,0x1, 0xf0,0xd0,0x7, +0xd0,0x6, 0xd0,0x5, 0xd0,0x4, 0xd0,0x3, 0xd0,0x2, 0xd0,0x1, 0xd0,0x0, 0xd0,0xd0, +0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0,0xe0,0x32,0x90,0xc, 0xd2,0x74,0x3, 0xf0,0xe4, +0x90,0xc, 0xd9,0xf0,0x90,0xc, 0xd1,0x74,0xff,0xf0,0x90,0xc, 0xda,0x74,0x1, 0xf0, +0x22,0xf1,0x4d,0xe4,0xf5,0x2e,0x12,0x5, 0x4c,0xaf,0x1, 0x8a,0x30,0x8f,0x31,0x12, +0x17,0x15,0xf1,0xa, 0x20,0xe0,0x10,0x13,0x13,0x54,0x3f,0x20,0xe0,0x9, 0xf1,0xa, +0xc3,0x13,0x20,0xe0,0x2, 0xc1,0xe4,0x20,0x2, 0x8, 0x75,0x2c,0xc, 0x75,0x2d,0x73, +0x80,0x6, 0x75,0x2c,0xc, 0x75,0x2d,0x8d,0xe4,0xf5,0x28,0xd1,0xf8,0x74,0xff,0xf0, +0x5, 0x28,0xe5,0x28,0xb4,0x1a,0xf4,0xf1,0x10,0x74,0xaa,0xf0,0xa3,0xf0,0xf1,0x10, +0xa3,0xa3,0x74,0x1a,0xf0,0x12,0x17,0x15,0x90,0x0, 0x49,0x12,0x1, 0x65,0xff,0xe5, +0x2d,0x24,0x4, 0xd1,0xfc,0xef,0xf0,0xe4,0xf5,0x2f,0xf5,0x28,0x12,0x16,0xfa,0x12, +0x1, 0x4c,0xff,0xe5,0x28,0xc3,0x9f,0x40,0x2, 0xc1,0x89,0xe5,0x28,0x12,0x1c,0x5b, +0xf1,0x4, 0x54,0xf0,0xff,0xd3,0x94,0x0, 0x40,0x29,0xef,0x64,0xb0,0x60,0x2, 0xc1, +0x85,0xf1,0x18,0xff,0xe9,0x24,0x7, 0xf9,0xe4,0x3a,0xfa,0x12,0x1, 0x4c,0x54,0xf, +0x12,0x1, 0xc5,0xab,0x22,0xe5,0x24,0x2f,0x12,0x1c,0x63,0xf1,0x1f,0x64,0x1, 0x60, +0x2, 0xc1,0x85,0xe5,0x28,0x12,0x1c,0x5b,0xf1,0x1f,0x64,0x3, 0x70,0x2, 0xc1,0x85, +0xe5,0x2f,0x25,0xe0,0x25,0xe0,0xf5,0x29,0x90,0x0, 0x3, 0xf1,0x3d,0x24,0x5, 0xd1, +0xe9,0xef,0xf0,0xe5,0x29,0x24,0x6, 0xd1,0xe9,0xe5,0x2b,0xf0,0xe5,0x28,0x12,0x1c, +0x5b,0x90,0x0, 0x5, 0xf1,0x3d,0x24,0x7, 0xd1,0xe9,0xef,0xf0,0xe5,0x29,0x24,0x8, +0xd1,0xe9,0xe5,0x2b,0xf1,0x17,0x12,0x1c,0x61,0xf1,0x4, 0xc4,0x54,0xf0,0xff,0xe5, +0x29,0x24,0x7, 0xd1,0xe9,0xe0,0x2f,0xf1,0x17,0x12,0x1c,0x61,0xf1,0x4, 0xff,0xf4, +0x60,0x1b,0xf1,0x26,0xff,0x64,0x1, 0x60,0x2, 0x5, 0x2e,0xef,0xc4,0x33,0x33,0x54, +0xc0,0xff,0xe5,0x29,0x24,0x5, 0xd1,0xe9,0xe0,0x2f,0xf0,0x80,0x16,0xe5,0x29,0x24, +0x5, 0xff,0xe4,0x33,0xfe,0xe5,0x2d,0x2f,0xf5,0x82,0xe5,0x2c,0x3e,0xf5,0x83,0xe0, +0x24,0xc0,0xf0,0x5, 0x2f,0x5, 0x28,0xa1,0xac,0xf1,0x10,0xa3,0xa3,0xa3,0xe5,0x2e, +0xf0,0xe5,0x2d,0x24,0x19,0xd1,0xfc,0xe4,0xf0,0xf5,0x28,0xe5,0x2d,0x24,0x19,0xd1, +0xfc,0xc0,0x83,0xc0,0x82,0xe0,0xff,0xd1,0xf8,0xe0,0xfe,0xef,0x6e,0xd0,0x82,0xd0, +0x83,0xf0,0x5, 0x28,0xe5,0x28,0xb4,0x19,0xe2,0xb2,0x2, 0x7f,0x1, 0x12,0x37,0x84, +0x12,0x17,0x15,0xf1,0xa, 0xff,0x13,0x13,0x54,0x3f,0x30,0xe0,0x9, 0xaa,0x30,0xa9, +0x31,0x7b,0x1, 0x12,0x59,0x14,0xf1,0x54,0xf1,0x62,0x54,0xfb,0x12,0x1, 0xc5,0x54, +0xfd,0x2, 0x1, 0xc5,0xe4,0xff,0x2, 0x37,0x84,0xfd,0xe4,0x33,0xfc,0xe5,0x2d,0x2d, +0xf5,0x82,0xe5,0x2c,0x3c,0xf5,0x83,0x22,0xe5,0x2d,0x25,0x28,0xf5,0x82,0xe4,0x35, +0x2c,0xf5,0x83,0x22,0x90,0x0, 0x7, 0x2, 0x1, 0x65,0x90,0x0, 0x4f,0x2, 0x1, 0x65, +0x85,0x2d,0x82,0x85,0x2c,0x83,0x22,0xf0,0xe5,0x28,0x75,0xf0,0x7, 0xa4,0x22,0x90, +0x0, 0x7, 0x12,0x1, 0x65,0xff,0xe5,0x31,0x24,0x23,0xf5,0x82,0xe4,0x35,0x30,0xf5, +0x83,0xe5,0x82,0x2f,0xf5,0x82,0xe4,0x35,0x83,0xf5,0x83,0xe0,0x22,0x12,0x2, 0xb7, +0xf5,0x2b,0x85,0xf0,0x2a,0xe5,0x2a,0x54,0xf, 0xff,0xe5,0x29,0x22,0x8b,0x22,0x8a, +0x23,0x89,0x24,0x22,0xab,0x22,0xe5,0x24,0x24,0x4f,0xf9,0xe4,0x35,0x23,0x22,0xf9, +0xe4,0x3a,0xfa,0x12,0x1, 0x4c,0x54,0xfe,0x2, 0x1, 0xc5,0xf1,0x4d,0x78,0x25,0x7c, +0x0, 0x7d,0x0, 0x7b,0xff,0x7a,0xf, 0x79,0xba,0x7e,0x0, 0x7f,0xc, 0x12,0x17,0x12, +0xe4,0x12,0x1, 0xc5,0xe5,0x24,0x24,0x5, 0xf9,0xe4,0x35,0x23,0xa8,0x1, 0xfc,0xad, +0x22,0x7b,0x0, 0x7a,0x0, 0x79,0x25,0x7e,0x0, 0x7f,0xc, 0x2, 0x1, 0x26,0x75,0x45, +0x0, 0x75,0x46,0x0, 0x75,0x47,0x2f,0x75,0x48,0x13,0x75,0x49,0x78,0x7b,0xff,0x7a, +0xf, 0x79,0x35,0x12,0x8, 0x0, 0xe4,0xff,0xfe,0x12,0x40,0xce,0x8f,0x2e,0x90,0xc, +0x52,0xe0,0x70,0x3, 0x75,0x2e,0xff,0xe5,0x2e,0xf4,0x60,0x4c,0x7f,0xf0,0x7e,0x3, +0x12,0x40,0xce,0x8f,0x2a,0x7f,0xf1,0x7e,0x3, 0x12,0x40,0xce,0x8f,0x2b,0xe5,0x2a, +0x45,0x2b,0xf4,0x60,0x3, 0x75,0x2e,0xff,0xe4,0xf5,0x2b,0xf5,0x2c,0xf5,0x2d,0xe5, +0x2d,0x24,0x4, 0xff,0xe4,0x35,0x2c,0xfe,0x12,0x40,0xce,0xef,0x62,0x2b,0x5, 0x2d, +0xe5,0x2d,0x70,0x2, 0x5, 0x2c,0xc3,0x94,0x46,0xe5,0x2c,0x94,0x1, 0x40,0xe0,0xe5, +0x2a,0x65,0x2b,0x60,0x3, 0x75,0x2e,0xff,0x90,0xa, 0xeb,0x74,0x13,0xf0,0x74,0xb, +0x51,0x41,0x90,0xb, 0x5d,0x74,0x3, 0xf0,0xe4,0x90,0xa, 0xee,0xf0,0xa3,0x74,0x28, +0xf0,0x90,0xa, 0xf9,0xf1,0x1f,0x90,0xb, 0x5e,0xd1,0xff,0xe4,0xff,0x90,0xa, 0xeb, +0xe0,0xfe,0xef,0xc3,0x9e,0x40,0xb, 0x74,0xfb,0x2f,0x12,0x27,0x4f,0x74,0xff,0xf0, +0x80,0xe, 0x74,0x2f,0x2f,0xf8,0xe6,0xfe,0x74,0xfb,0x2f,0x12,0x27,0x4f,0xee,0xf0, +0xef,0x90,0xf, 0x53,0x93,0xfe,0x74,0x17,0x2f,0xf1,0x5e,0xee,0xf0,0xf, 0xbf,0x1c, +0xcc,0xe4,0xff,0xef,0x90,0xf, 0x7f,0x93,0xfe,0x74,0x43,0x2f,0x31,0x6d,0xee,0xf0, +0xf, 0xbf,0xe, 0xef,0xe4,0xff,0xef,0x90,0xf, 0x6f,0x93,0xfe,0x74,0x33,0x2f,0xf1, +0x17,0xee,0xf0,0xf, 0xbf,0x10,0xef,0xe4,0xff,0xef,0x90,0xf, 0x8d,0x93,0xfe,0x74, +0x51,0x2f,0x12,0x35,0xca,0xee,0xf0,0xf, 0xbf,0x8, 0xee,0xe4,0xf5,0x2c,0xf5,0x2d, +0x74,0x60,0x25,0x2d,0xf1,0x45,0x5, 0x2d,0xe5,0x2d,0x70,0x2, 0x5, 0x2c,0x64,0xd1, +0x45,0x2c,0x70,0xec,0xe5,0x2e,0xf4,0x60,0x4, 0x7f,0x4, 0x11,0xea,0x22,0xf1,0xf, +0xe4,0xfd,0xf1,0x31,0xed,0xc4,0x54,0xf0,0xf5,0xf8,0x8a,0xf9,0x8b,0xfa,0x43,0xfc, +0x3, 0x44,0xe0,0xf5,0xf8,0xaf,0xfb,0x2, 0x33,0xd2,0x8f,0x42,0x75,0x43,0xb, 0x75, +0x44,0x51,0x31,0x4f,0x31,0x27,0x70,0x2, 0x5, 0x43,0x31,0x43,0x70,0x2, 0x5, 0x45, +0xc3,0x94,0x8, 0xe5,0x45,0x94,0x0, 0x40,0xeb,0x75,0x43,0xb, 0x75,0x44,0x60,0x31, +0x4f,0x31,0x27,0x70,0x2, 0x5, 0x43,0x31,0x43,0x70,0x2, 0x5, 0x45,0xc3,0x94,0xd1, +0xe5,0x45,0x94,0x0, 0x40,0xeb,0x22,0x7e,0x0, 0xe5,0x46,0x25,0x42,0xff,0xee,0x35, +0x45,0xfe,0xe5,0x48,0x2f,0xff,0xe5,0x47,0x3e,0xfe,0x11,0xce,0x5, 0x44,0xe5,0x44, +0xac,0x43,0x22,0x14,0xf5,0x82,0x8c,0x83,0xef,0xf0,0x5, 0x46,0xe5,0x46,0x22,0x75, +0x47,0xa, 0x75,0x48,0xeb,0xc3,0xe5,0x44,0x95,0x48,0xff,0xe5,0x43,0x95,0x47,0xf5, +0x47,0x8f,0x48,0xe4,0xf5,0x45,0xf5,0x46,0x22,0xc3,0x13,0x24,0x43,0xf5,0x82,0xe4, +0x34,0xb, 0xf5,0x83,0x22,0x85,0xe6,0x21,0xe4,0xf5,0x22,0x75,0x99,0x1, 0xd2,0x98, +0x7f,0x2, 0x7e,0x78,0x11,0xd0,0x8f,0x23,0x7f,0x3, 0x7e,0x78,0x11,0xd0,0xe5,0x23, +0xf4,0x60,0xa, 0xe5,0x23,0x6f,0xff,0xbf,0xff,0x3, 0x85,0x23,0x22,0xe5,0x21,0xb4, +0xff,0x3, 0x75,0x21,0x6a,0xe5,0x22,0xb4,0x1, 0xf, 0xe5,0x21,0x64,0x6a,0x60,0x18, +0xe5,0x21,0xb4,0x6b,0x2, 0x80,0x11,0x80,0xb, 0xe5,0x21,0x64,0x6a,0x60,0x5, 0xe5, +0x21,0xb4,0x6b,0x4, 0x53,0xea,0x7f,0x22,0x43,0xea,0x80,0x22,0x51,0x3d,0x7f,0x1, +0xf1,0x66,0x31,0x75,0xf1,0x8d,0xd1,0xef,0x7f,0x1, 0xef,0x70,0x3, 0xc2,0xaf,0x22, +0xd2,0xaf,0x22,0x75,0x33,0x70,0x75,0x90,0x4, 0x75,0x33,0x70,0x7f,0x0, 0x7e,0x78, +0x11,0xd0,0x8f,0x34,0x7f,0x1, 0x7e,0x78,0x11,0xd0,0xe5,0x34,0xf4,0x60,0x1c,0xe5, +0x34,0x6f,0xff,0xbf,0xff,0x15,0xe5,0x34,0xc3,0x94,0x60,0x40,0xe, 0xe5,0x34,0xd3, +0x94,0x7f,0x50,0x7, 0xe5,0x34,0x20,0xe0,0x2, 0xf5,0x33,0xe5,0x33,0xc3,0x13,0x54, +0xf, 0xc4,0x54,0xf0,0xf5,0x93,0xd2,0xac,0x53,0xe8,0x3f,0x43,0xe8,0xc0,0xd2,0xec, +0xd2,0xb9,0xc2,0xc1,0x43,0xb9,0x10,0x53,0xa9,0xef,0x22,0x80,0xa6,0x53,0xdb,0xbf, +0x22,0xa3,0xf0,0xa3,0x74,0x1, 0xf0,0x22,0x12,0x3f,0x4d,0x90,0xc, 0x32,0x74,0x16, +0xf0,0xa3,0x74,0x3c,0xf0,0xe4,0x90,0xc, 0x35,0xf0,0xa3,0x74,0x6, 0xf0,0xa3,0x74, +0xbb,0xf0,0xa3,0x74,0x1, 0xf0,0xa3,0x74,0xa, 0xf0,0xa3,0x74,0x6, 0xf0,0xa3,0x74, +0x28,0xf0,0xd1,0xe8,0x90,0xc, 0x55,0x74,0x55,0xf0,0xa3,0x74,0x1, 0xf0,0xe4,0xa3, +0xf0,0x74,0x2c,0x51,0x41,0xa3,0x74,0x5a,0xf0,0xe4,0xa3,0xf0,0xa3,0xf0,0x90,0xc, +0x61,0x74,0x5, 0xf0,0x90,0xc, 0x60,0x74,0x96,0xf0,0x90,0xc, 0x65,0x74,0x64,0xf0, +0xa3,0x74,0x28,0xf0,0xd1,0x90,0x90,0xc, 0x63,0xef,0xf0,0x12,0x16,0xfa,0xe4,0x12, +0x1, 0xc5,0x12,0x16,0xfa,0x4, 0xd1,0xdc,0x90,0x0, 0x8, 0xe4,0x12,0x1, 0xd7,0x74, +0x10,0x71,0xa8,0x74,0x6, 0xd1,0x54,0x90,0x0, 0x5, 0x74,0x28,0x12,0x1, 0xd7,0x90, +0x0, 0x6, 0x74,0x28,0x12,0x1, 0xd7,0x74,0xa, 0xd1,0xe2,0x90,0x0, 0x9, 0x74,0x1, +0x12,0x1, 0xd7,0x12,0x17,0x15,0xe4,0x75,0xf0,0x5a,0x12,0x3, 0x3c,0x12,0x17,0x15, +0x90,0x0, 0x2, 0x74,0x16,0x12,0x1, 0xd7,0x90,0x0, 0x3, 0xe4,0x75,0xf0,0x3c,0x12, +0x3, 0x5b,0x90,0x0, 0x22,0xe4,0x12,0x1, 0xd7,0x90,0x0, 0x15,0x74,0x3, 0x12,0x1, +0xd7,0x90,0x0, 0x16,0x74,0x3, 0x12,0x1, 0xd7,0x90,0x0, 0x1a,0xe4,0x12,0x1, 0xd7, +0x90,0x0, 0x1b,0x74,0x12,0x12,0x1, 0xd7,0x90,0x0, 0x17,0xe4,0x12,0x1, 0xd7,0x90, +0x0, 0x1c,0xe4,0x75,0xf0,0xfa,0x12,0x3, 0x5b,0x90,0x0, 0x1e,0x74,0xa, 0x12,0x1, +0xd7,0x90,0x0, 0x1f,0x74,0x5, 0x12,0x1, 0xd7,0x90,0x0, 0x20,0x74,0x23,0x12,0x1, +0xd7,0xf1,0x4f,0x74,0x3, 0x12,0x1, 0xd7,0x90,0x0, 0x11,0xe4,0x12,0x1, 0xd7,0x90, +0x0, 0x12,0x74,0x4, 0x12,0x1, 0xd7,0x90,0x0, 0x13,0x71,0xa1,0x90,0x0, 0xb, 0x71, +0xa1,0x90,0x0, 0xd, 0x74,0x28,0x12,0x1, 0xd7,0x12,0x16,0x49,0x74,0x5, 0x12,0x1, +0xc5,0x12,0x16,0x49,0x90,0x0, 0x1, 0x74,0xb, 0x75,0xf0,0xb8,0x12,0x3, 0x5b,0x90, +0x0, 0x3, 0x74,0xbb,0x12,0x1, 0xd7,0x90,0x0, 0x4, 0xe4,0x75,0xf0,0x96,0x2, 0x3, +0x5b,0xe4,0x75,0xf0,0x64,0x2, 0x3, 0x5b,0x90,0x0, 0x3, 0x2, 0x1, 0xd7,0x12,0x3f, +0x4d,0x75,0x2b,0xc, 0x75,0x2c,0x32,0x90,0xc, 0x72,0xe0,0x20,0xe0,0x2, 0xa1,0x1a, +0x54,0xfe,0xf0,0x90,0x0, 0x2, 0x12,0x1, 0x65,0xff,0xb1,0x35,0xe0,0x6f,0x60,0x15, +0xe0,0xff,0x90,0x0, 0x2, 0x12,0x1, 0xd7,0xef,0x75,0xf0,0x4, 0xa4,0xff,0xe5,0xf0, +0x8f,0xf0,0x12,0x3, 0x3c,0x12,0x17,0x15,0x90,0x0, 0x3, 0x12,0x2, 0xb7,0xff,0xb1, +0x35,0xa3,0xe0,0xfd,0x7c,0x0, 0x6f,0x70,0x2, 0xe5,0xf0,0x60,0x5, 0x90,0x0, 0x3, +0xb1,0x2f,0x12,0x16,0x49,0x90,0x0, 0x3, 0xb1,0x28,0x24,0x5, 0xb1,0x1f,0xfe,0x6f, +0x60,0x18,0xee,0x71,0xa8,0xe5,0x2c,0x24,0x5, 0xb1,0x1f,0x75,0xf0,0x20,0xa4,0xff, +0x90,0x0, 0x1, 0xe5,0xf0,0x8f,0xf0,0x12,0x3, 0x5b,0x12,0x16,0x49,0x90,0x0, 0x4, +0xd1,0x4d,0x24,0x2e,0xb1,0x1f,0xfd,0x7c,0x0, 0x6f,0x70,0x2, 0xe5,0xf0,0x60,0x5, +0x90,0x0, 0x4, 0xb1,0x2f,0x12,0x16,0xfa,0x12,0x1, 0x4c,0xff,0xe5,0x2c,0x24,0x25, +0xb1,0x1f,0xfe,0x6f,0x60,0x4, 0xee,0x12,0x1, 0xc5,0x12,0x17,0xbb,0xff,0xe5,0x2c, +0x24,0x6, 0xb1,0x1f,0xfe,0x6f,0x60,0x7, 0x90,0x0, 0x1, 0xee,0x12,0x1, 0xd7,0x12, +0x1f,0x9, 0xff,0xe5,0x2c,0x24,0x8, 0xb1,0x1f,0xfe,0x6f,0x60,0x20,0xee,0xd1,0x54, +0xe5,0x2c,0x24,0x8, 0xb1,0x1f,0xc3,0x94,0xf, 0x40,0x6, 0xe5,0x2c,0x24,0x8, 0xd1, +0x5a,0xe5,0x2c,0x24,0x8, 0xb1,0x1f,0x90,0x6, 0xf8,0x93,0x71,0xa8,0x12,0x16,0xfa, +0x90,0x0, 0x6, 0xb1,0x28,0x24,0x9, 0xb1,0x1f,0xfe,0x6f,0x60,0x13,0x90,0x0, 0x6, +0xee,0x12,0x1, 0xd7,0xe5,0x2c,0x24,0x9, 0xb1,0x1f,0x90,0x0, 0x5, 0x12,0x1, 0xd7, +0x12,0x16,0xfa,0x12,0x3f,0x4, 0xff,0xb1,0x1b,0xfe,0x6f,0x60,0x7, 0x90,0x0, 0x7, +0xee,0x12,0x1, 0xd7,0x90,0x0, 0x9, 0xb1,0x28,0x24,0x24,0xb1,0x1f,0xfe,0x6f,0x60, +0x7, 0x90,0x0, 0x9, 0xee,0x12,0x1, 0xd7,0x12,0x17,0x15,0x90,0x0, 0xb, 0xd1,0x4d, +0x24,0x33,0xb1,0x1f,0xfd,0x7c,0x0, 0x6f,0x70,0x2, 0xe5,0xf0,0x60,0x5, 0x90,0x0, +0xb, 0xb1,0x2f,0x12,0x17,0x15,0x90,0x0, 0xd, 0xb1,0x28,0x24,0x34,0xb1,0x1f,0xfe, +0x6f,0x60,0x7, 0x90,0x0, 0xd, 0xee,0x12,0x1, 0xd7,0x22,0xe5,0x2c,0x24,0x7, 0xf5, +0x82,0xe4,0x35,0x2b,0xf5,0x83,0xe0,0x22,0x12,0x1, 0x65,0xff,0xe5,0x2c,0x22,0xec, +0x8d,0xf0,0x2, 0x3, 0x5b,0x85,0x2c,0x82,0x85,0x2b,0x83,0x22,0x12,0x3f,0x4d,0xe4, +0xf5,0x2a,0xe5,0x2a,0xc3,0x94,0x5, 0x50,0x13,0xe5,0x27,0x24,0x30,0xf9,0xe4,0x35, +0x26,0xfa,0xe5,0x2a,0x75,0xf0,0x8, 0x12,0x17,0xd5,0x80,0x14,0xe5,0x2a,0x75,0xf0, +0x8, 0xa4,0x24,0x30,0xff,0xe4,0x35,0xf0,0xfe,0xe5,0x27,0x2f,0xf9,0xe5,0x26,0x3e, +0xaf,0x1, 0xf5,0x2b,0x8f,0x2c,0xb1,0x1b,0x64,0x2, 0x60,0x2, 0xc1,0x42,0xe5,0x2c, +0x24,0x7, 0xd1,0x5a,0xb1,0x35,0xa3,0xa3,0xe0,0x24,0xfe,0xf5,0x28,0xb1,0x35,0xa3, +0xa3,0xe0,0x24,0x2, 0xff,0xe4,0xad,0x28,0xd1,0x7d,0x40,0x2, 0xc1,0x42,0xb1,0x35, +0xa3,0xe0,0x24,0xfe,0xf5,0x29,0xb1,0x35,0xa3,0xe0,0x24,0x2, 0xff,0xe4,0x33,0xfe, +0xad,0x29,0xd1,0x7f,0x40,0x2, 0xc1,0x3e,0xc3,0xe5,0x28,0x64,0x80,0x94,0x80,0x40, +0x79,0xe5,0x28,0x64,0x80,0x94,0x9c,0x50,0x71,0xc3,0xe5,0x29,0x64,0x80,0x94,0x80, +0x40,0x68,0xe5,0x29,0x64,0x80,0x94,0x90,0x50,0x60,0xf1,0x27,0xd1,0x64,0x78,0x5, +0xc3,0x33,0xce,0x33,0xce,0xd8,0xf9,0x29,0xf9,0xea,0x3e,0xfa,0xd1,0xf7,0x12,0x37, +0x3a,0x12,0x2, 0x8c,0xfd,0xaf,0x28,0xf1,0x79,0xab,0x29,0xeb,0x33,0x95,0xe0,0xfa, +0xef,0x2b,0xff,0xee,0x3a,0xd1,0x76,0x33,0x12,0x17,0x15,0x8f,0x82,0xf5,0x83,0xe5, +0xf0,0x8d,0xf0,0x12,0x2, 0xef,0xe9,0x24,0x80,0xf9,0xea,0xd1,0x64,0x78,0x5, 0xc3, +0x33,0xce,0x33,0xce,0xd8,0xf9,0x29,0xf9,0xea,0x3e,0xfa,0xaf,0x29,0xd1,0x72,0x33, +0xfe,0x12,0x37,0x3a,0xe4,0xf5,0xf0,0x12,0x3, 0x3c,0x5, 0x29,0xa1,0xa6,0x5, 0x28, +0xa1,0x8d,0x5, 0x2a,0xe5,0x2a,0x64,0xa, 0x60,0x2, 0xa1,0x42,0x22,0x12,0x2, 0xb7, +0xff,0xe5,0x2c,0x22,0x90,0x0, 0x4, 0x2, 0x1, 0xd7,0xf5,0x82,0xe4,0x35,0x2b,0xf5, +0x83,0xe4,0xf0,0x22,0x34,0x3, 0xfa,0xaf,0x28,0xef,0x33,0x95,0xe0,0xfe,0xef,0x22, +0xaf,0x3a,0xef,0x33,0x95,0xe0,0xfe,0xef,0x25,0xe0,0xff,0xee,0x22,0x33,0xfe,0xed, +0x33,0x95,0xe0,0xfc,0xd3,0xed,0x9f,0xee,0x64,0x80,0xf8,0xec,0x64,0x80,0x98,0x22, +0x7f,0x6, 0x7e,0x0, 0xd1,0xcd,0x8f,0x2b,0x7f,0x1e,0x7e,0x0, 0xd1,0xcd,0xe5,0x2b, +0xb4,0x6d,0x3, 0x7f,0x2, 0x22,0xe5,0x2b,0xb4,0x6e,0x3, 0x7f,0x3, 0x22,0xe5,0x2b, +0xb4,0x6f,0x9, 0xbf,0xff,0x3, 0x7f,0x2, 0x22,0x7f,0x3, 0x22,0xe5,0x2b,0xb4,0x67, +0x9, 0xbf,0xff,0x3, 0x7f,0x4, 0x22,0x7f,0x5, 0x22,0x7f,0x0, 0x22,0xf1,0x3b,0x75, +0xf8,0x10,0xf1,0x7, 0x75,0xf8,0xf0,0xaf,0xfb,0x2, 0x33,0xd2,0x90,0x0, 0x1, 0x2, +0x1, 0xd7,0x90,0x0, 0x7, 0x2, 0x1, 0xd7,0x90,0xc, 0x52,0x74,0xff,0xf0,0x22,0x75, +0x92,0xe8,0xd2,0xae,0xd2,0xbe,0x22,0xed,0x25,0xe0,0xff,0xec,0x33,0xfe,0x22,0x74, +0x3, 0xf0,0xa3,0x74,0xe8,0xf0,0x22,0x8c,0xf9,0x8d,0xfa,0x43,0xfc,0x3, 0x22,0xe4, +0x2f,0xff,0xee,0x34,0x7c,0xfe,0x22,0xf5,0x82,0xe4,0x34,0xb, 0xf5,0x83,0x22,0x74, +0x21,0xf0,0xa3,0x74,0x34,0xf0,0x22,0xab,0x22,0xe5,0x24,0x24,0x80,0xf9,0xe5,0x23, +0x22,0xab,0x7, 0xaa,0x6, 0xc2,0xaf,0x43,0xfc,0x3, 0x22,0xad,0x7, 0xac,0x6, 0xc2, +0xaf,0x43,0xfc,0x3, 0x22,0xf5,0x82,0xe4,0x34,0xb, 0xf5,0x83,0xe4,0xf0,0x22,0x90, +0x0, 0xf, 0xe4,0x12,0x1, 0xd7,0x90,0x0, 0x10,0x22,0x74,0x17,0x25,0x2d,0xf5,0x82, +0xe4,0x34,0xb, 0xf5,0x83,0x22,0x53,0xc9,0xf8,0xef,0x70,0x5, 0x43,0xc9,0x3, 0x80, +0x3, 0x43,0xc9,0x2, 0xc2,0xce,0xc2,0xca,0x22,0xef,0x33,0x95,0xe0,0xfe,0xef,0xc4, +0xf8,0x54,0xf, 0xc8,0x68,0xff,0xee,0xc4,0x54,0xf0,0x48,0xfe,0x22,0xe4,0xff,0xa2, +0xaf,0x33,0xfe,0xc2,0x88,0xd2,0xa8,0xc2,0xaf,0x30,0x89,0x6, 0xc2,0x89,0xe4,0xff, +0x80,0x1, 0xf, 0xef,0xd3,0x94,0xfa,0x40,0xf0,0xee,0x24,0xff,0x92,0xaf,0x75,0xf7, +0xff,0x22,0x8b,0x4a,0x8a,0x4b,0x89,0x4c,0x8d,0x4d,0x90,0xa, 0x3c,0x12,0x4, 0xfe, +0x0, 0x0, 0x0, 0x0, 0x90,0xa, 0x40,0x12,0x4, 0xfe,0x0, 0x0, 0x0, 0x1, 0x75,0x5f, +0x1, 0x75,0x60,0xa, 0x75,0x61,0x48,0x12,0x66,0x52,0x90,0xa, 0xeb,0xe0,0xf5,0x4f, +0xa3,0xe0,0xf5,0x4e,0xe5,0x4d,0x70,0x3c,0xf5,0x50,0xe5,0x50,0xc3,0x95,0x4f,0x50, +0x20,0x12,0x48,0x94,0xc0,0x0, 0xc0,0x1, 0xa3,0x12,0x4d,0xdc,0x74,0xfb,0x25,0x50, +0x12,0x27,0x4f,0xe0,0xf9,0xf8,0x12,0x4, 0xdf,0xd0,0x1, 0xd0,0x0, 0xd1,0x2f,0x80, +0xd9,0xe4,0xf5,0x50,0xb1,0xc4,0x78,0x8, 0x12,0x4, 0xcc,0xd1,0x3b,0xe5,0x50,0xb4, +0x4, 0xf2,0x80,0x3d,0xe4,0xf5,0x50,0xe5,0x50,0xc3,0x95,0x4e,0x50,0x22,0x11,0x94, +0xc0,0x0, 0xc0,0x1, 0xa3,0xb1,0xdc,0x74,0x48,0x25,0x50,0xf5,0x82,0xe4,0x34,0xa, +0xf5,0x83,0xe0,0xf9,0xf8,0x12,0x4, 0xdf,0xd0,0x1, 0xd0,0x0, 0xd1,0x2f,0x80,0xd7, +0xe4,0xf5,0x50,0xb1,0xc4,0x78,0x8, 0x12,0x4, 0xcc,0xd1,0x3b,0xe5,0x50,0xb4,0x2, +0xf2,0xe5,0x4d,0x70,0x17,0xf5,0x50,0xd1,0xbe,0x24,0x75,0xd1,0xa7,0x12,0x26,0x2b, +0xef,0x12,0x1, 0xc5,0x5, 0x50,0xe5,0x50,0xb4,0x4, 0xec,0x22,0xe4,0xf5,0x50,0xd1, +0xbe,0x24,0x79,0xd1,0xa7,0x12,0x26,0x2b,0xef,0x12,0x1, 0xc5,0x5, 0x50,0xe5,0x50, +0xb4,0x2, 0xec,0x22,0x90,0xa, 0x3c,0xe0,0xf8,0xa3,0xe0,0xf9,0xa3,0xe0,0xfa,0xa3, +0xe0,0xfb,0x22,0x12,0x3f,0x4d,0xe4,0xf5,0x2e,0xf5,0x2f,0x12,0x66,0x70,0xf5,0x38, +0xf5,0x39,0xf5,0x3d,0xf5,0x3e,0x12,0x16,0x49,0x90,0x0, 0x13,0x12,0x2, 0xb7,0xf5, +0x45,0x85,0xf0,0x44,0x90,0x0, 0x22,0x12,0x1, 0x65,0xf5,0x48,0x12,0x47,0x29,0x34, +0x3, 0xaf,0x1, 0xf5,0x3f,0x8f,0x40,0xe5,0x24,0x24,0x60,0xf9,0xe5,0x23,0x34,0x7, +0xaf,0x1, 0xf5,0x41,0x8f,0x42,0xe4,0xf5,0x30,0xb1,0xa6,0x12,0x47,0x4f,0xe4,0x12, +0x1, 0xd7,0x5, 0x30,0xe5,0x30,0xb4,0x5, 0xf0,0xd1,0x7c,0x70,0x2, 0xa1,0xa5,0xe4, +0xf5,0x30,0xd1,0x7c,0xff,0xe5,0x30,0xc3,0x9f,0x40,0x2, 0x81,0x7f,0x12,0x11,0xc7, +0x12,0x4, 0xfe,0x0, 0x0, 0x0, 0x0, 0xd1,0xc, 0xf5,0x83,0x12,0x4, 0xfe,0x0, 0x0, +0x0, 0x0, 0xb1,0xeb,0x12,0x4, 0xfe,0x0, 0x0, 0x0, 0x0, 0xd1,0x97,0x12,0x4, 0xfe, +0x0, 0x0, 0x0, 0x0, 0x90,0xa, 0x8c,0x74,0x2, 0xf0,0xf5,0xf0,0x12,0x16,0xe1,0x12, +0x1, 0x65,0x12,0x66,0x61,0x40,0xb, 0x12,0x16,0xfa,0x12,0x1, 0x4c,0x12,0x65,0xb6, +0x50,0x5, 0x12,0x16,0x49,0xf1,0xc0,0xe5,0x30,0x75,0xf0,0x2, 0xb1,0xab,0x12,0x17, +0xc1,0x12,0x66,0x61,0x40,0x8, 0x12,0x17,0xbb,0x12,0x65,0xb6,0x50,0x5, 0x12,0x16, +0x49,0xf1,0xc0,0xe5,0x30,0x75,0xf0,0x2, 0xb1,0xab,0x12,0x17,0xc1,0xc3,0x13,0xfd, +0x7c,0x0, 0x12,0x16,0xda,0x12,0x1, 0x65,0x12,0x62,0x51,0x2d,0xff,0xec,0x35,0xf0, +0xfe,0xe4,0xf5,0x43,0x12,0x16,0x33,0xf1,0xb5,0x40,0x3, 0x75,0x43,0x1, 0x12,0x16, +0xd8,0xd1,0x71,0xfe,0xc3,0xef,0x9e,0xf5,0x2e,0x12,0x16,0xd8,0xd1,0x71,0x2f,0xff, +0xe4,0x33,0xfe,0xad,0x2e,0x12,0x46,0x7f,0x40,0x2, 0x81,0x7b,0xe5,0x30,0x75,0xf0, +0x2, 0x12,0x17,0xd5,0xfa,0x12,0x17,0xc1,0xd1,0x74,0xfe,0xc3,0xef,0x9e,0xf5,0x2f, +0xe5,0x30,0x75,0xf0,0x2, 0xb1,0xab,0x12,0x17,0xc1,0xd1,0x74,0x2f,0xff,0xe4,0xad, +0x2f,0x12,0x46,0x7d,0x40,0x2, 0x81,0x77,0xc3,0xe5,0x2e,0x64,0x80,0x94,0x80,0x50, +0x2, 0x81,0x73,0x12,0x16,0xfa,0x12,0x1, 0x4c,0xad,0x2e,0xd1,0xaf,0x40,0x2, 0x81, +0x73,0xc3,0xe5,0x2f,0x64,0x80,0x94,0x80,0x50,0x2, 0x81,0x73,0x12,0x17,0xc1,0xff, +0xad,0x2f,0xd1,0xb0,0x40,0x2, 0x81,0x73,0xaf,0x2e,0x12,0x47,0x79,0xef,0x2d,0xf5, +0x3c,0xee,0x3c,0xf5,0x3b,0xe5,0x3c,0x25,0xe0,0xff,0xe5,0x3b,0x33,0xfe,0xe5,0x40, +0x2f,0xf5,0x82,0xe5,0x3f,0x12,0x55,0xad,0xff,0xc3,0x95,0x48,0xf5,0x47,0xee,0x94, +0x0, 0xf5,0x46,0xd3,0xe5,0x47,0x94,0x0, 0xe5,0x46,0x64,0x80,0x94,0x80,0x50,0x2, +0x81,0x73,0xef,0x95,0x45,0xee,0x95,0x44,0x40,0xa, 0xb1,0xa6,0x90,0x0, 0x10,0x74, +0x1, 0x12,0x1, 0x92,0xe5,0x43,0xb4,0x1, 0x2c,0xe5,0x3c,0xae,0x3b,0x78,0x3, 0xce, +0xc3,0x13,0xce,0x13,0xd8,0xf9,0x25,0x42,0xf5,0x82,0xe5,0x41,0x3e,0xf5,0x83,0xc0, +0x83,0xc0,0x82,0xe0,0xff,0x7c,0x0, 0xe5,0x3c,0x12,0x57,0x62,0xf4,0xfe,0xef,0x5e, +0xd0,0x82,0xd0,0x83,0xf0,0xe5,0x2e,0x25,0xe0,0xf5,0x3d,0xe5,0x2f,0x25,0xe0,0xf5, +0x3e,0x12,0x16,0xd8,0xd1,0x88,0x60,0x77,0xe5,0x30,0x75,0xf0,0x2, 0xb1,0xab,0x12, +0x17,0xc1,0xd1,0x68,0x60,0x69,0x12,0x11,0xc7,0xc0,0x83,0xc0,0x82,0x11,0x97,0xc0, +0x0, 0xc0,0x1, 0xc0,0x2, 0xc0,0x3, 0xd1,0x44,0xd0,0x3, 0xd0,0x2, 0xd0,0x1, 0xd0, +0x0, 0xb1,0xb7,0xd0,0x82,0xd0,0x83,0xd1,0x94,0xc0,0x83,0xc0,0x82,0x11,0x97,0xae, +0x46,0xd1,0x5, 0xeb,0x25,0x47,0xb1,0xb9,0xd0,0x82,0xd0,0x83,0x12,0x4, 0xf2,0xd1, +0xc, 0xf5,0x83,0xc0,0x83,0xc0,0x82,0x11,0x97,0xc0,0x0, 0xc0,0x1, 0xc0,0x2, 0xc0, +0x3, 0x12,0x66,0x27,0xd1,0x54,0xd0,0x3, 0xd0,0x2, 0xd0,0x1, 0xd0,0x0, 0xb1,0xb7, +0xd0,0x82,0xd0,0x83,0xf1,0xab,0x24,0x64,0xf5,0x82,0xe4,0x34,0xa, 0x81,0x5b,0xe4, +0xf5,0x3a,0xd1,0x7c,0xad,0x3a,0xd1,0xaf,0x50,0x51,0xe5,0x30,0x65,0x3a,0x60,0x47, +0xed,0x25,0xe0,0xff,0xec,0x33,0x8f,0x82,0xf5,0x83,0xd1,0x88,0x60,0x11,0x12,0x46, +0x70,0xf1,0xcd,0x12,0x17,0xc1,0xd1,0x68,0x60,0x5, 0x75,0x3a,0xff,0x80,0x2c,0x12, +0x46,0x70,0x33,0xd1,0x61,0x8f,0x82,0xf5,0x83,0x12,0x1, 0x65,0xfd,0x7b,0x4, 0xd1, +0x8e,0x60,0x14,0x12,0x46,0x70,0xf1,0xcd,0x12,0x17,0xc1,0xfd,0x7b,0x4, 0xd1,0x6b, +0x60,0x5, 0xe4,0xf5,0x3a,0x80,0x4, 0x5, 0x3a,0x80,0xa7,0xe5,0x3a,0x70,0x73,0xd1, +0xc, 0xf5,0x83,0xc0,0x83,0xc0,0x82,0x11,0x97,0xc0,0x0, 0xc0,0x1, 0xc0,0x2, 0xc0, +0x3, 0xae,0x46,0xaf,0x47,0xd1,0x5, 0xf1,0xda,0xaf,0x2e,0xd1,0x54,0xd0,0x3, 0xd0, +0x2, 0xd0,0x1, 0xd0,0x0, 0xb1,0xb7,0xd0,0x82,0xd0,0x83,0x12,0x11,0xc4,0xc0,0x83, +0xc0,0x82,0x11,0x97,0xc0,0x0, 0xc0,0x1, 0xc0,0x2, 0xc0,0x3, 0xae,0x46,0xaf,0x47, +0xd1,0x5, 0xf1,0xda,0xd1,0x52,0xd0,0x3, 0xd0,0x2, 0xd0,0x1, 0xd0,0x0, 0xb1,0xb7, +0xd0,0x82,0xd0,0x83,0xb1,0xe8,0xc0,0x83,0xc0,0x82,0x11,0x97,0xb1,0xfb,0xb1,0xb7, +0xd0,0x82,0xd0,0x83,0xd1,0x94,0xc0,0x83,0xc0,0x82,0x11,0x97,0xb1,0xfb,0xeb,0x2f, +0x80,0x78,0xe5,0x3a,0xf4,0x60,0x7c,0xd1,0xc, 0xf5,0x83,0xc0,0x83,0xc0,0x82,0x11, +0x97,0xc0,0x0, 0xc0,0x1, 0xc0,0x2, 0xc0,0x3, 0x12,0x66,0x27,0xd1,0x54,0xd0,0x3, +0xd0,0x2, 0xd0,0x1, 0xd0,0x0, 0xb1,0xb7,0xd0,0x82,0xd0,0x83,0x12,0x11,0xc4,0xc0, +0x83,0xc0,0x82,0x11,0x97,0xc0,0x0, 0xc0,0x1, 0xc0,0x2, 0xc0,0x3, 0xd1,0x44,0xd0, +0x3, 0xd0,0x2, 0xd0,0x1, 0xd0,0x0, 0xb1,0xb7,0xd0,0x82,0xd0,0x83,0xb1,0xe8,0xc0, +0x83,0xc0,0x82,0x11,0x97,0xae,0x46,0xd1,0x5, 0xeb,0x25,0x47,0xb1,0xb9,0xd0,0x82, +0xd0,0x83,0xf1,0xab,0x24,0x78,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0xc0,0x83,0xc0, +0x82,0x11,0x97,0xae,0x46,0xd1,0x5, 0xeb,0x25,0x47,0xb1,0xb9,0xd0,0x82,0xd0,0x83, +0x12,0x4, 0xf2,0x5, 0x2f,0x21,0xd0,0x5, 0x2e,0x21,0xa9,0x5, 0x30,0x21,0x2, 0xe4, +0xf5,0x30,0xd1,0x7c,0xff,0xe5,0x30,0xc3,0x9f,0x40,0x2, 0xa1,0x9b,0xe5,0x30,0x75, +0xf0,0x2, 0x12,0x17,0xd5,0xfa,0x12,0x17,0xc1,0xc3,0x13,0xfd,0x7c,0x0, 0x12,0x16, +0xda,0x12,0x1, 0x65,0x12,0x62,0x51,0x2d,0xff,0xec,0x35,0xf0,0xfe,0x12,0x16,0x33, +0xf1,0xb5,0x50,0x2, 0xa1,0x97,0x12,0x11,0xc7,0xc0,0x83,0xc0,0x82,0xb1,0xdc,0x78, +0x6, 0x12,0x4, 0xdf,0xd0,0x82,0xd0,0x83,0xd1,0x94,0x11,0x97,0x12,0x11,0xc7,0xb1, +0xdc,0x12,0x4, 0x13,0xef,0x24,0x20,0xf5,0x32,0xe4,0x3e,0xf5,0x31,0xd1,0xc, 0xf5, +0x83,0xc0,0x83,0xc0,0x82,0xb1,0xdc,0x78,0x6, 0x12,0x4, 0xdf,0xd0,0x82,0xd0,0x83, +0xb1,0xe8,0x11,0x97,0xd1,0xc, 0xf5,0x83,0xb1,0xdc,0x12,0x4, 0x13,0xef,0x24,0x20, +0xf5,0x36,0xe4,0x3e,0xf5,0x35,0xe5,0x39,0xb1,0xa8,0x90,0x0, 0xa, 0xe5,0x31,0x85, +0x32,0xf0,0x12,0x3, 0x5b,0x90,0x0, 0xc, 0xe5,0x35,0x85,0x36,0xf0,0x12,0x3, 0x5b, +0xb1,0xeb,0xc0,0x83,0xc0,0x82,0xe0,0xfc,0xa3,0xe0,0xfd,0xa3,0x12,0x16,0x44,0x90, +0x0, 0x12,0x12,0x1, 0x65,0xf9,0xf8,0x12,0x4, 0xcc,0xd0,0x82,0xd0,0x83,0xb1,0xe8, +0xb1,0xdc,0xe4,0x7b,0x7f,0xfa,0xf9,0xf8,0xc3,0x12,0x4, 0xbb,0x50,0x9, 0xb1,0xeb, +0x12,0x4, 0xfe,0x0, 0x0, 0x0, 0x7f,0xb1,0xeb,0xa3,0xa3,0xa3,0xe0,0xfd,0xe5,0x39, +0xb1,0xa8,0x90,0x0, 0xf, 0xed,0x12,0x1, 0xd7,0xb1,0xa6,0x90,0x0, 0x10,0x12,0x1, +0x65,0xfd,0xe5,0x39,0x75,0xf0,0x7, 0xa4,0xb1,0xae,0x90,0x0, 0x10,0xed,0x12,0x47, +0x53,0x12,0x1, 0x65,0xd3,0x94,0xf, 0x40,0xc, 0xe5,0x39,0xb1,0xa8,0x90,0x0, 0x10, +0x74,0xf, 0x12,0x1, 0xd7,0x5, 0x39,0x5, 0x30,0x81,0x82,0xd1,0x61,0x90,0x0, 0x2d, +0xe5,0x39,0x12,0x1, 0xd7,0x22,0xe5,0x30,0x75,0xf0,0x7, 0xa4,0xab,0x2b,0x25,0x2d, +0xf9,0xe5,0x2c,0x35,0xf0,0xfa,0x22,0xeb,0x2f,0xff,0xea,0x3e,0xfe,0xe9,0x3d,0xfd, +0xe8,0x3c,0xfc,0x22,0x90,0xa, 0x3c,0xa3,0xa3,0xa3,0xe0,0xff,0x74,0x44,0x25,0x50, +0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0xef,0xf0,0x90,0xa, 0x3c,0xe0,0xfc,0xa3,0xe0, +0xfd,0xa3,0xe0,0xfe,0xa3,0xe0,0xff,0x22,0x12,0x4, 0xf2,0xe5,0x30,0x25,0xe0,0x25, +0xe0,0x24,0x64,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0xe5,0x46,0xa2,0xe7,0x13, +0xfe,0xe5,0x47,0x13,0xff,0xee,0x33,0x95,0xe0,0xfd,0xfc,0x22,0xe5,0x30,0x25,0xe0, +0x25,0xe0,0x24,0x50,0xf5,0x82,0xe4,0x34,0xa, 0x22,0x7e,0x0, 0x7c,0x0, 0x12,0x1f, +0x1d,0xeb,0xfd,0xd3,0xef,0x9d,0xee,0x9c,0x7f,0x0, 0x50,0x2, 0x7f,0x1, 0x22,0xeb, +0x4f,0xff,0xea,0x4e,0xfe,0xe9,0x4d,0xfd,0xe8,0x4c,0xfc,0x90,0xa, 0x3c,0x12,0x4, +0xf2,0x5, 0x50,0x22,0xae,0x46,0xaf,0x47,0xab,0x7, 0xaa,0x6, 0xea,0x33,0x95,0xe0, +0xf9,0xf8,0xaf,0x2f,0xef,0x33,0x95,0xe0,0xfe,0xfd,0xfc,0x2, 0x3, 0x88,0x12,0x1, +0xc5,0xab,0x2b,0xaa,0x2c,0xa9,0x2d,0x22,0xfd,0x7b,0x2, 0xaf,0x3e,0xd1,0x1a,0xef, +0x22,0x12,0x1, 0x65,0xc3,0x13,0xff,0x90,0xa, 0x8c,0xe0,0x22,0xab,0x2b,0xaa,0x2c, +0xa9,0x2d,0x90,0x0, 0x2d,0x2, 0x1, 0x65,0x12,0x1, 0x65,0xfd,0x7b,0x2, 0xaf,0x3d, +0xd1,0x1a,0xef,0x22,0x12,0x4, 0xf2,0xe5,0x30,0x25,0xe0,0x25,0xe0,0x24,0x78,0xf5, +0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0xf9,0xe4,0x35,0x4b,0xfa,0xe5,0x50,0x22,0xff, +0xed,0x33,0x95,0xe0,0xfc,0xc3,0xed,0x9f,0x74,0x80,0xf8,0x6c,0x98,0x22,0x74,0x44, +0x25,0x50,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0xe0,0xff,0xab,0x4a,0xe5,0x4c,0x22, +0x12,0x3f,0x4d,0xd1,0x61,0x90,0x0, 0x2f,0x12,0x1, 0x65,0x30,0xe0,0x3b,0x12,0x17, +0x15,0x90,0x0, 0x4d,0x12,0x2, 0xb7,0xc3,0x94,0x3c,0xe5,0xf0,0x94,0x0, 0x50,0xc, +0x90,0x0, 0x4d,0xe4,0x75,0xf0,0x1, 0x12,0x2, 0xef,0x80,0x1d,0x12,0x35,0xf7,0x85, +0x25,0x36,0xf1,0x44,0x12,0x16,0x49,0x12,0x27,0xcb,0x12,0x17,0x15,0xf1,0x4b,0x90, +0xa, 0xe9,0x74,0x5, 0xf0,0xa3,0x74,0xdc,0xf0,0xd1,0x61,0x90,0x0, 0x2f,0x12,0x1, +0x65,0x20,0xe0,0x1f,0x12,0x17,0x15,0xf1,0x4b,0x30,0x1, 0x17,0xc2,0x1, 0xd1,0x7c, +0xd3,0x94,0x0, 0x40,0xe, 0x12,0x35,0xf7,0x85,0x25,0x36,0xf1,0x44,0x12,0x16,0x49, +0x12,0x27,0xcb,0x22,0x85,0x26,0x37,0x85,0x27,0x38,0x22,0x90,0x0, 0x4d,0xe4,0xf5, +0xf0,0x2, 0x3, 0x5b,0x90,0xc, 0x53,0x74,0x30,0xf0,0xa3,0x74,0x3, 0xf0,0xae,0x2, +0xaf,0x1, 0xad,0x7, 0xac,0x6, 0xe9,0x24,0x60,0xf9,0xea,0x34,0x7, 0xfa,0xe4,0xf5, +0x33,0xf5,0x34,0xe5,0x34,0x25,0xe0,0xff,0xe5,0x33,0x33,0xfe,0xed,0x2f,0xf5,0x82, +0xec,0x12,0x67,0x60,0xe5,0x34,0xae,0x33,0x78,0x3, 0xce,0xc3,0x13,0xce,0x13,0xd8, +0xf9,0xf5,0x82,0x8e,0x83,0x74,0xff,0x12,0x1, 0xd7,0x5, 0x34,0xe5,0x34,0x70,0x2, +0x5, 0x33,0xb4,0xc0,0xce,0xe5,0x33,0xb4,0x1, 0xc9,0x22,0x12,0x4, 0xf2,0xe5,0x30, +0x25,0xe0,0x25,0xe0,0x22,0x12,0x2, 0x8c,0xfd,0xc3,0xef,0x9d,0xee,0x95,0xf0,0x22, +0x90,0x0, 0x10,0x12,0x1, 0x65,0xc3,0x13,0x90,0xa, 0x8c,0xf0,0x22,0x33,0xfe,0xab, +0x2b,0xe5,0x2d,0x2f,0xf9,0xe5,0x2c,0x3e,0xfa,0x22,0x78,0x1, 0x12,0x4, 0xcc,0xa8, +0x4, 0xa9,0x5, 0xaa,0x6, 0xab,0x7, 0x22,0xef,0x24,0x9f,0x12,0x50,0x4, 0xef,0x24, +0x9e,0x12,0x50,0x4, 0xef,0x24,0x9d,0xf5,0x82,0xee,0x34,0x7, 0xf5,0x83,0x74,0x1, +0xf0,0xef,0x24,0xa4,0xf5,0x82,0xee,0x34,0x7, 0xf5,0x83,0xe4,0xf0,0x22,0xe5,0xe8, +0x54,0xc0,0x64,0xc0,0x60,0x3, 0x12,0x37,0xc7,0x22,0x12,0x3f,0x4d,0x85,0xc9,0x31, +0x12,0x16,0xfa,0x12,0x1, 0x4c,0xff,0x70,0x28,0x12,0x17,0x15,0x12,0x1f,0xf7,0xd3, +0x94,0x0, 0x40,0x5, 0xe4,0xf5,0x8, 0x1, 0xd6,0x12,0x17,0xbb,0x20,0xe0,0x2, 0x1, +0xd6,0x12,0x3f,0x4, 0x65,0x8, 0x60,0x2, 0x1, 0xd6,0xf5,0x8, 0x4, 0x31,0x24,0x1, +0xd6,0xef,0xb4,0x1, 0x12,0x12,0x17,0x15,0x12,0x1f,0xf7,0x60,0x79,0x12,0x16,0xfa, +0x31,0x23,0x75,0xa, 0x1e,0x80,0x6f,0x12,0x16,0xfa,0x12,0x1, 0x4c,0x64,0x3, 0x70, +0x65,0xff,0x31,0x2c,0x12,0x36,0x0, 0x12,0x0, 0x1e,0xe5,0xdb,0x30,0xe1,0xfb,0xc2, +0x89,0xd2,0xa8,0x20,0x96,0xfd,0x43,0x87,0x2, 0xc2,0xa8,0x12,0x36,0x0, 0x12,0x0, +0x1e,0x53,0xdb,0xf0,0x12,0x27,0x3b,0x85,0x22,0x36,0x85,0x23,0x37,0x85,0x24,0x38, +0xab,0x2e,0xaa,0x2f,0xa9,0x30,0x12,0x36,0x9b,0x12,0x16,0xfa,0x31,0x23,0xae,0x2c, +0xaf,0x2d,0x12,0x4f,0xe8,0x12,0x4e,0x61,0x12,0x4f,0x54,0x90,0xc, 0x31,0x74,0xa, +0xf0,0x90,0xc, 0x31,0xe0,0x70,0xfa,0x85,0x2b,0x36,0x85,0x2c,0x37,0x85,0x2d,0x38, +0x12,0x16,0x49,0x12,0x27,0xcb,0xe4,0xf5,0x32,0xe5,0x9, 0x70,0x22,0xff,0x31,0x35, +0xe5,0xdb,0x30,0xe1,0xf4,0xc2,0xcd,0x12,0x16,0xfa,0x12,0x1, 0x4c,0xb4,0x1, 0xe9, +0xe5,0x32,0x70,0xe5,0x75,0x32,0x1, 0x53,0xc9,0xfc,0x43,0xc9,0x1, 0x80,0xda,0xe4, +0xf5,0xa, 0xf5,0x9, 0x85,0x31,0xc9,0xd2,0xcd,0x12,0x3f,0x54,0xfa,0x12,0x1, 0x4c, +0x54,0xef,0x12,0x1, 0xc5,0x12,0x17,0x15,0x12,0x1f,0xf7,0x90,0x0, 0x4c,0x12,0x1, +0xd7,0x1, 0xe, 0xe4,0x12,0x1, 0xc5,0x90,0xc, 0x57,0xf0,0x22,0xef,0x70,0x3, 0xd2, +0x84,0x22,0xc2,0x84,0x22,0xef,0x70,0x3, 0x43,0x87,0x1, 0xbf,0x1, 0x3, 0x43,0x87, +0x2, 0xbf,0x2, 0x3, 0x43,0x87,0x2, 0x22,0x12,0x3f,0x4d,0xe4,0xf5,0x2c,0x12,0x16, +0xfa,0x12,0x4e,0x82,0x60,0x8, 0x90,0x0, 0x2e,0x12,0x1, 0x65,0x60,0x3, 0x7f,0x0, +0x22,0x12,0x1, 0x4c,0xc3,0x13,0xf5,0x29,0x12,0x17,0xc1,0xc3,0x13,0xf5,0x2a,0xe4, +0xf5,0x2b,0xf5,0x28,0x12,0x16,0x7a,0x12,0x0, 0x6, 0xd3,0xef,0x94,0x14,0xee,0x64, +0x80,0x94,0x80,0x40,0x2, 0x5, 0x2b,0x51,0x87,0x40,0xe9,0xe5,0x2b,0xd3,0x94,0x7, +0x40,0x2, 0x51,0x8f,0xe4,0xf5,0x2b,0xe5,0x29,0xd3,0x94,0x0, 0x40,0x35,0xe4,0xf5, +0x28,0x12,0x16,0x7a,0x12,0x0, 0x6, 0xc0,0x6, 0xc0,0x7, 0xe5,0x29,0x75,0xf0,0x20, +0xa4,0x24,0x60,0xf5,0x82,0x74,0x3, 0x35,0xf0,0xf5,0x83,0x12,0x17,0x15,0x12,0x16, +0x8b,0x12,0x0, 0x6, 0xd0,0x5, 0xd0,0x4, 0x12,0x46,0x84,0x40,0x2, 0x5, 0x2b,0x51, +0x87,0x40,0xce,0xe5,0x2b,0xd3,0x94,0x7, 0x40,0x2, 0x51,0x8f,0xe4,0xf5,0x2b,0xe5, +0x29,0xc3,0x94,0x12,0x50,0x35,0xe4,0xf5,0x28,0x12,0x16,0x7a,0x12,0x0, 0x6, 0xc0, +0x6, 0xc0,0x7, 0xe5,0x29,0x75,0xf0,0x20,0xa4,0x24,0xa0,0xf5,0x82,0x74,0x3, 0x35, +0xf0,0xf5,0x83,0x12,0x17,0x15,0x12,0x16,0x8b,0x12,0x0, 0x6, 0xd0,0x5, 0xd0,0x4, +0x12,0x46,0x84,0x40,0x2, 0x5, 0x2b,0x51,0x87,0x40,0xce,0xe5,0x2b,0xd3,0x94,0x7, +0x40,0x2, 0x51,0x8f,0xe5,0x2a,0xd3,0x94,0x0, 0x40,0x23,0xe5,0x29,0x75,0xf0,0x20, +0x12,0x1c,0x5e,0xe5,0x2a,0x75,0xf0,0x2, 0xa4,0x24,0x7e,0xff,0xe5,0xf0,0x34,0x3, +0xfe,0x12,0x37,0x3a,0x51,0x9c,0x50,0x6, 0x74,0xa, 0x25,0x2c,0xf5,0x2c,0xe5,0x2a, +0x24,0x1, 0xff,0xe4,0x33,0xfe,0xc3,0xef,0x94,0x13,0xee,0x64,0x80,0x94,0x80,0x50, +0x23,0xe5,0x29,0x75,0xf0,0x20,0x12,0x1c,0x5e,0xe5,0x2a,0x75,0xf0,0x2, 0xa4,0x24, +0x82,0xff,0xe5,0xf0,0x34,0x3, 0xfe,0x12,0x37,0x3a,0x51,0x9c,0x50,0x6, 0x74,0xa, +0x25,0x2c,0xf5,0x2c,0xaf,0x2c,0x22,0x5, 0x28,0xe5,0x28,0xc3,0x94,0xb, 0x22,0xe5, +0x2b,0x24,0xf9,0x75,0xf0,0xa, 0xa4,0x25,0x2c,0xf5,0x2c,0x22,0x12,0x2, 0x8c,0xc3, +0x94,0xce,0xe5,0xf0,0x64,0x80,0x94,0x7f,0x22,0x12,0x3f,0x4d,0x7a,0xf, 0x79,0xb1, +0xb1,0x8e,0x7a,0xf, 0x79,0xb2,0xb1,0x81,0x12,0x1, 0x26,0xe4,0x90,0xa, 0x45,0xf0, +0xe4,0x90,0xa, 0x46,0xf0,0x90,0xa, 0x46,0xe0,0xff,0xc3,0x94,0x8, 0x50,0x2e,0x12, +0x47,0x27,0x34,0x3, 0xfa,0x90,0xa, 0x45,0xe0,0x12,0x11,0xcd,0xe0,0x75,0xf0,0x20, +0xa4,0x29,0xf9,0xe5,0xf0,0x3a,0xfa,0x74,0x3d,0x2f,0x71,0xe, 0x75,0xf0,0x2, 0x12, +0x16,0xe3,0x12,0x4f,0x4e,0x90,0xa, 0x46,0xe0,0x4, 0xf0,0x80,0xc8,0x90,0xa, 0x45, +0xe0,0x4, 0xf0,0xe0,0xb4,0x1, 0xb9,0x22,0xe5,0x2e,0x25,0xe0,0x24,0x3d,0xf5,0x82, +0xe4,0x34,0xa, 0xf5,0x83,0xe0,0x22,0xf1,0x70,0x7a,0x0, 0x79,0x12,0xb1,0x8e,0x7a, +0x0, 0x79,0x13,0xb1,0x81,0x12,0x1, 0x26,0x12,0x2d,0x7e,0x12,0x1, 0x4c,0xf5,0x3a, +0x90,0xc, 0xeb,0xe0,0xc3,0x94,0x1, 0x50,0x5, 0xe0,0x4, 0xf0,0x81,0x63,0xe4,0x90, +0xc, 0xeb,0xf0,0xaa,0x35,0xa9,0x36,0xae,0x2, 0xaf,0x1, 0x8e,0x40,0x8f,0x41,0xf1, +0x38,0xf5,0x42,0x8f,0x43,0xe4,0xf5,0x3a,0xe4,0xf5,0x3c,0xf5,0x3d,0x75,0x3e,0x7f, +0x75,0x3f,0xff,0x90,0x0, 0x1a,0xf1,0x77,0xfd,0x75,0xf0,0x10,0xa4,0xff,0xae,0xf0, +0xe5,0x3a,0x7a,0x0, 0x2f,0xf5,0x45,0xea,0x3e,0xf5,0x44,0x8d,0x3b,0x12,0x2e,0xd9, +0x90,0x0, 0x1b,0x12,0x1, 0x65,0xff,0xe5,0x3b,0xd3,0x9f,0x40,0x2, 0x81,0x29,0x90, +0xa, 0x46,0x74,0x8, 0xf0,0xe4,0x90,0xa, 0x45,0xf0,0x90,0xa, 0x45,0xe0,0xff,0xc3, +0x94,0x1, 0x50,0x32,0x74,0x3c,0x2f,0x12,0x11,0xcf,0xe0,0xb5,0x3b,0x20,0xe4,0x90, +0xa, 0x46,0xf0,0x90,0xa, 0x46,0xe0,0xff,0xc3,0x94,0x8, 0x50,0x11,0x74,0x3d,0x2f, +0x71,0xe, 0x65,0x3a,0x60,0x8, 0x90,0xa, 0x46,0xe0,0x4, 0xf0,0x80,0xe5,0x90,0xa, +0x45,0xe0,0x4, 0xf0,0x80,0xc4,0x90,0xa, 0x46,0xe0,0x64,0x8, 0x70,0x47,0xe5,0x45, +0x25,0xe0,0xff,0xe5,0x44,0x33,0xfe,0xe5,0x41,0x2f,0xf5,0x82,0xe5,0x40,0x12,0x1f, +0x55,0xfd,0xe5,0x43,0x2f,0xf5,0x82,0xe5,0x42,0xb1,0xad,0x2d,0xff,0xee,0x3c,0xfe, +0xd3,0xef,0x95,0x3d,0xee,0x95,0x3c,0x40,0x4, 0x8e,0x3c,0x8f,0x3d,0xc3,0xef,0x95, +0x3f,0xee,0x95,0x3e,0x50,0x4, 0x8e,0x3e,0x8f,0x3f,0x74,0x10,0x25,0x45,0xf5,0x45, +0xe4,0x35,0x44,0xf5,0x44,0x5, 0x3b,0x61,0x7d,0x12,0x2e,0xd9,0x90,0x0, 0x1c,0x12, +0x2, 0xb7,0xff,0xc3,0xe5,0x3d,0x95,0x3f,0xfd,0xe5,0x3c,0x95,0x3e,0xfc,0xd3,0xed, +0x9f,0xec,0x95,0xf0,0x40,0x8, 0x90,0xc, 0xea,0x74,0x2, 0xf0,0x80,0xa, 0x5, 0x3a, +0xe5,0x3a,0x64,0xb, 0x60,0x2, 0x61,0x58,0xe5,0x3a,0xb4,0xb, 0x6, 0x90,0xc, 0xea, +0x74,0x1, 0xf0,0x90,0xc, 0xea,0xe0,0xff,0x22,0x12,0x3f,0x4d,0x75,0x30,0x1, 0xb1, +0x68,0x12,0x16,0xfa,0x71,0x17,0x8f,0x2e,0xb1,0x68,0x12,0x16,0xfa,0x12,0x2d,0xdd, +0x8f,0x2f,0x12,0x16,0x49,0x90,0x7, 0xa4,0x12,0x1, 0x65,0xff,0x70,0x4a,0x4, 0xb1, +0x62,0xe5,0x2e,0xb4,0x2, 0xd, 0x90,0x7, 0x9d,0x74,0x6, 0x12,0x1, 0xd7,0xe4,0xf5, +0x30,0x80,0x2f,0x12,0x17,0x15,0x12,0x4e,0x82,0x70,0x1f,0xb1,0x7b,0x70,0x1b,0x90, +0xc, 0xec,0xe0,0xc3,0x94,0x2, 0x40,0xa, 0xe4,0xf0,0x12,0x16,0x49,0x90,0x7, 0xa4, +0x80,0x46,0x90,0xc, 0xec,0xe0,0x4, 0xf0,0xa1,0x4c,0x12,0x16,0x49,0x74,0x4, 0xb1, +0x62,0xe4,0x90,0xc, 0xec,0xf0,0x80,0x74,0xef,0x64,0x1, 0x70,0x44,0x12,0x16,0x49, +0xb1,0x62,0xe5,0x2f,0x60,0x5, 0x90,0x7, 0xa4,0x80,0x4e,0xe5,0x2e,0xb4,0x2, 0x6, +0x90,0x7, 0x9d,0xe4,0x80,0x53,0x12,0x17,0x15,0x12,0x4e,0x82,0x70,0xd, 0xb1,0x7b, +0x70,0x9, 0x12,0x16,0x49,0x90,0x7, 0x9d,0x4, 0x80,0x3e,0xb1,0x68,0x85,0x25,0x3a, +0x85,0x26,0x3b,0x85,0x27,0x3c,0x12,0x17,0x15,0x12,0x2a,0x9c,0xe4,0xf5,0x30,0x80, +0x2b,0x12,0x16,0x49,0x90,0x7, 0xa4,0x12,0x1, 0x65,0xb4,0x3, 0x1f,0xe5,0x2f,0x24, +0xfe,0x60,0xa, 0x4, 0x70,0xe, 0x90,0x7, 0x9d,0x74,0x3, 0x80,0xc, 0x90,0x7, 0x9d, +0x74,0x2, 0x80,0x5, 0x90,0x7, 0xa4,0x74,0x1, 0x12,0x1, 0xd7,0xe5,0x30,0xb4,0x1, +0x10,0x12,0x17,0x15,0x90,0x0, 0x80,0xe4,0xf1,0x80,0x90,0x0, 0x82,0xe4,0x12,0x1, +0xd7,0x22,0x90,0x7, 0x9d,0x2, 0x1, 0xd7,0x85,0x28,0x34,0x85,0x29,0x35,0x85,0x2a, +0x36,0x85,0x2b,0x37,0x85,0x2c,0x38,0x85,0x2d,0x39,0x22,0x90,0x0, 0x86,0x2, 0x1, +0x65,0x78,0x3d,0x7c,0xa, 0x7d,0x1, 0x7b,0xff,0x7e,0x0, 0x7f,0x8, 0x22,0x78,0x3c, +0x7c,0xa, 0x7d,0x1, 0x7b,0xff,0x7e,0x0, 0x7f,0x1, 0x2, 0x1, 0x26,0xe5,0x2e,0x25, +0xe0,0xff,0xe5,0x2d,0x33,0xfe,0xe5,0x32,0x2f,0xf5,0x82,0xe5,0x31,0x3e,0xf5,0x83, +0xe0,0xfe,0xa3,0xe0,0x22,0x12,0x16,0xf4,0xf1,0x28,0xff,0xf5,0x35,0x12,0x16,0x49, +0x90,0x0, 0x15,0x12,0x1, 0x65,0xf5,0x36,0x90,0x0, 0x16,0x12,0x1, 0x65,0xf5,0x37, +0xef,0x70,0x2, 0xe1,0x8, 0x12,0x16,0xfa,0xf1,0x28,0xb4,0x4, 0x8, 0xe5,0x36,0x25, +0xe0,0x25,0xe0,0xf5,0x36,0xae,0x2, 0xaf,0x1, 0x8e,0x2f,0x8f,0x30,0xf1,0x38,0xf5, +0x31,0x8f,0x32,0xe5,0x27,0x24,0x60,0xf9,0xe5,0x26,0x34,0x7, 0xaf,0x1, 0xf5,0x33, +0x8f,0x34,0xe4,0xf5,0x2b,0x12,0x17,0x15,0x12,0x1, 0x4c,0xff,0xe5,0x2b,0xc3,0x9f, +0x40,0x2, 0xe1,0x8, 0xe5,0x2b,0x75,0xf0,0x10,0xa4,0x85,0xf0,0x2d,0xf5,0x2e,0xe4, +0xf5,0x2c,0x12,0x17,0x15,0x12,0x17,0xc1,0xff,0xe5,0x2c,0xc3,0x9f,0x40,0x2, 0xe1, +0x4, 0xe5,0x35,0xb4,0x3, 0x2, 0xc1,0xc8,0xe5,0x35,0xb4,0x2, 0xf, 0xf1,0x9, 0xc0, +0x83,0xc0,0x82,0xf1,0x1d,0xd5,0x82,0x2, 0x15,0x83,0xc1,0xec,0xe5,0x35,0xb4,0x5, +0x6, 0x12,0x1f,0x45,0xfd,0x80,0x2e,0xe5,0x35,0x64,0x6, 0x70,0x65,0xe5,0x2e,0xae, +0x2d,0x78,0x3, 0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0xf1,0x2e,0xf1,0x5c,0xfe,0xef, +0x5e,0x60,0x30,0xb1,0x9d,0xf1,0x42,0x40,0x11,0xe5,0x36,0xfd,0xe5,0x2e,0x25,0xe0, +0xff,0xe5,0x2d,0x33,0xfe,0xf1,0x12,0xec,0x80,0x44,0x12,0x1f,0x45,0xf1,0x4d,0x12, +0x46,0x88,0x50,0x64,0xf1,0x12,0xc0,0x83,0xc0,0x82,0xf1,0x1d,0xd5,0x82,0x2, 0x15, +0x83,0x80,0x49,0xe5,0x2e,0xae,0x2d,0x78,0x3, 0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9, +0xf1,0x2e,0xc0,0x83,0xc0,0x82,0xf1,0x5c,0xfe,0xef,0x4e,0xd0,0x82,0xd0,0x83,0xf0, +0x80,0x36,0xb1,0x9d,0xf1,0x42,0x40,0xd, 0xe5,0x36,0xfd,0xf1,0x9, 0xe4,0x8d,0xf0, +0x12,0x2, 0x60,0x80,0x23,0x12,0x1f,0x45,0xf1,0x4d,0x12,0x46,0x88,0x50,0x19,0xf1, +0x12,0xc0,0x83,0xc0,0x82,0xf1,0x1d,0xd5,0x82,0x2, 0x15,0x83,0x15,0x82,0xe0,0x9e, +0xd0,0x82,0xd0,0x83,0xf0,0xa3,0xef,0xf0,0x5, 0x2e,0xe5,0x2e,0x70,0x2, 0x5, 0x2d, +0x5, 0x2c,0xc1,0x22,0x5, 0x2b,0xc1,0x5, 0x22,0xe5,0x2e,0x25,0xe0,0xff,0xe5,0x2d, +0x33,0xfe,0xe5,0x30,0x2f,0xf5,0x82,0xe5,0x2f,0x3e,0xf5,0x83,0x22,0x7e,0x0, 0xc3, +0xa3,0xe0,0x95,0x36,0xff,0x5, 0x82,0x22,0x90,0x7, 0x9d,0x2, 0x1, 0x65,0x25,0x34, +0xf5,0x82,0xe5,0x33,0x3e,0xf5,0x83,0x22,0xe9,0x24,0x80,0xf9,0xea,0x34,0x3, 0xaf, +0x1, 0x22,0xd3,0x95,0x37,0x74,0x80,0xf8,0xee,0x64,0x80,0x98,0x22,0xfd,0xc3,0xe4, +0x95,0x37,0xfb,0xe4,0x94,0x0, 0xfa,0xc3,0xed,0x9b,0xea,0x22,0xe0,0xff,0x7c,0x0, +0xe5,0x2e,0x54,0x7, 0x24,0x7, 0xf5,0x82,0xec,0x34,0x7, 0xf5,0x83,0xe4,0x93,0x22, +0x8b,0x31,0x8a,0x32,0x89,0x33,0x22,0xab,0x37,0xaa,0x38,0xa9,0x39,0x2, 0x1, 0x65, +0x12,0x1, 0xd7,0x90,0x0, 0x81,0xe4,0x2, 0x1, 0xd7,0x12,0x3f,0x4d,0x12,0x4e,0x82, +0xf5,0x32,0x12,0x4e,0x61,0xe4,0x12,0x4e,0x5e,0x12,0x46,0x54,0xe5,0x32,0x70,0x3, +0x2, 0x58,0xe5,0x78,0x38,0x7c,0x0, 0x7d,0x0, 0x12,0x17,0x15,0x7e,0x0, 0x7f,0xa, +0x12,0x1, 0x26,0xe4,0xf5,0x2e,0xe5,0x2e,0xc3,0x95,0x32,0x40,0x3, 0x2, 0x58,0x9d, +0x12,0x17,0x15,0x75,0xf0,0x2, 0xe5,0x2e,0x12,0x16,0xe3,0x12,0x1, 0x65,0xc3,0x13, +0xf5,0x30,0xe5,0x2e,0x75,0xf0,0x2, 0x12,0x17,0xd5,0xfa,0x12,0x17,0xc1,0xc3,0x13, +0xf5,0x31,0x74,0x33,0x25,0x2e,0xf8,0xe4,0xf6,0xe5,0x30,0x64,0x12,0x60,0x3, 0x2, +0x58,0x98,0xf5,0x2f,0xe5,0x2f,0x90,0xf, 0xc6,0x93,0x65,0x31,0x60,0x2, 0x1, 0x8d, +0x74,0x33,0x25,0x2e,0xf8,0x76,0x1, 0x12,0x16,0x49,0xe5,0x30,0x31,0x7, 0xe5,0x31, +0x12,0x16,0x90,0x12,0x16,0xfa,0x11,0xff,0xee,0x95,0xf0,0x40,0x65,0x12,0x4e,0x61, +0x74,0x1, 0x12,0x4e,0x5e,0x12,0x1f,0x9, 0xff,0x7e,0x0, 0xe9,0x24,0x1, 0xf9,0xe4, +0x3a,0x11,0xf0,0xe5,0x2f,0x12,0x4e,0x5e,0x90,0x0, 0x4, 0x74,0x1, 0x12,0x1, 0x92, +0xab,0x28,0xe5,0x2a,0x24,0x60,0xf9,0xe5,0x29,0x34,0x7, 0xfa,0xe5,0x30,0x75,0xf0, +0x10,0xa4,0x7c,0x0, 0x25,0x31,0xff,0xec,0x35,0xf0,0xfe,0xef,0x78,0x3, 0x11,0xf8, +0xd8,0xfc,0x12,0x7, 0x76,0xff,0xe5,0x30,0xc4,0x54,0xf0,0x25,0x31,0x54,0x7, 0xfe, +0x74,0x1, 0xa8,0x6, 0x8, 0x80,0x2, 0xc3,0x33,0xd8,0xfc,0xf4,0x5f,0x12,0x1, 0xc5, +0x80,0x16,0x12,0x17,0x15,0x90,0x0, 0x2d,0x74,0xff,0x12,0x1, 0x92,0x5, 0x2f,0xe5, +0x2f,0x64,0x3, 0x60,0x3, 0x2, 0x57,0xf4,0x5, 0x2e,0x2, 0x57,0xb6,0xe4,0xf5,0x2f, +0xf5,0x2e,0xe5,0x2e,0xc3,0x95,0x32,0x50,0x3c,0x74,0x33,0x25,0x2e,0xf8,0xe6,0x70, +0x30,0xe5,0x2e,0x25,0xe0,0x24,0x38,0xf8,0xe6,0xff,0x12,0x17,0x15,0x75,0xf0,0x2, +0xe5,0x2f,0x12,0x16,0xe3,0xef,0x12,0x1, 0xd7,0xe5,0x2e,0x25,0xe0,0x24,0x39,0xf8, +0xe6,0xfd,0xe5,0x2f,0x75,0xf0,0x2, 0x12,0x17,0xd5,0xfa,0xed,0x12,0x46,0xdc,0x5, +0x2f,0x5, 0x2e,0x80,0xbd,0x22,0x7e,0x0, 0xe5,0x2a,0x24,0x23,0xf9,0xe4,0x35,0x29, +0xfa,0xe9,0x2f,0xf9,0xee,0x3a,0xfa,0x22,0xce,0xa2,0xe7,0x13,0xce,0x13,0x22,0x12, +0x2, 0x8c,0xfd,0xd3,0xef,0x9d,0x22,0x90,0x3, 0x80,0x75,0xf0,0x20,0x12,0x5, 0x40, +0x75,0xf0,0x2, 0x22,0x8b,0x32,0x8a,0x33,0x89,0x34,0xe4,0xff,0xab,0x32,0xe5,0x34, +0x24,0x28,0xf9,0xe4,0x35,0x33,0xfa,0xef,0xfd,0x12,0x26,0x2b,0x74,0x3, 0x12,0x1, +0xc5,0xab,0x32,0xe5,0x34,0x24,0x23,0xf9,0xe4,0x35,0x33,0x31,0x71,0x90,0x0, 0x2d, +0x31,0x67,0xef,0x12,0x17,0x93,0x90,0x0, 0x37,0x31,0x67,0xef,0x12,0x17,0x93,0xf, +0xbf,0x5, 0xc9,0xab,0x32,0xaa,0x33,0xa9,0x34,0x90,0x0, 0x41,0xe4,0x12,0x1, 0xd7, +0x90,0x0, 0x42,0xe4,0x2, 0x1, 0xd7,0xab,0x32,0xaa,0x33,0xa9,0x34,0x75,0xf0,0x2, +0x22,0xfa,0xe9,0x2d,0xf9,0xec,0x3a,0xfa,0x74,0x3, 0x2, 0x1, 0xc5,0xc0,0xe0,0xc0, +0xf0,0xc0,0x83,0xc0,0x82,0xc0,0xd0,0x75,0xd0,0x0, 0xc0,0x0, 0xc0,0x1, 0xc0,0x2, +0xc0,0x3, 0xc0,0x4, 0xc0,0x5, 0xc0,0x6, 0xc0,0x7, 0x51,0x82,0x5, 0x13,0xe5,0x13, +0x70,0x2, 0x5, 0x12,0x90,0xc, 0x31,0xe0,0x60,0x2, 0x14,0xf0,0xc3,0xe5,0x13,0x94, +0xe8,0xe5,0x12,0x94,0x3, 0x40,0xe, 0x75,0x12,0x0, 0x75,0x13,0x0, 0xe5,0x8, 0x94, +0x64,0x50,0x2, 0x5, 0x8, 0x90,0xa, 0xe5,0xe0,0x4, 0xf0,0x70,0x6, 0x90,0xa, 0xe4, +0xe0,0x4, 0xf0,0x90,0xa, 0xde,0xe0,0xfe,0xa3,0xe0,0xff,0xc3,0x90,0xa, 0xe5,0xe0, +0x9f,0x90,0xa, 0xe4,0xe0,0x9e,0x50,0x3, 0x12,0x0, 0x1e,0x90,0xa, 0xe9,0xe0,0xfe, +0xa3,0xe0,0xff,0x4e,0x60,0x16,0xef,0x64,0x1, 0x4e,0x70,0x2, 0xd2,0x1, 0x90,0xa, +0xea,0xe0,0x24,0xff,0xf0,0x90,0xa, 0xe9,0xe0,0x34,0xff,0xf0,0x51,0x94,0x40,0xe, +0x90,0xa, 0xe2,0xe0,0x4, 0xf0,0x70,0x6, 0x90,0xa, 0xe1,0xe0,0x4, 0xf0,0x90,0xc, +0x59,0xe0,0xb4,0xaa,0xf, 0x90,0xa, 0xe0,0xe0,0xff,0x4, 0xf0,0xef,0xd3,0x94,0x64, +0x40,0x2, 0x51,0x8d,0xe5,0xa, 0xc3,0x95,0xb, 0x50,0x12,0x5, 0xa, 0xe5,0xc9,0x54, +0x3, 0xff,0xbf,0x1, 0xb, 0x74,0x3, 0x25,0xa, 0xf5,0xa, 0x80,0x3, 0x75,0x9, 0x1, +0x90,0xc, 0xa8,0xe0,0xff,0x60,0x10,0xc3,0x94,0x28,0x50,0x5, 0xe0,0x4, 0xf0,0x80, +0x6, 0x12,0x37,0xcf,0x12,0x2f,0xff,0xd0,0x7, 0xd0,0x6, 0xd0,0x5, 0xd0,0x4, 0xd0, +0x3, 0xd0,0x2, 0xd0,0x1, 0xd0,0x0, 0xd0,0xd0,0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0, +0xe0,0x32,0xc2,0x8e,0x75,0xa6,0xf0,0x75,0xa5,0x5f,0xd2,0x8e,0x22,0x90,0xc, 0x59, +0x74,0x1, 0xf0,0x22,0x90,0xa, 0xe1,0xe0,0xfe,0xa3,0xe0,0xff,0xe4,0xfc,0xfd,0x7b, +0x40,0x7a,0x9c,0xf9,0xf8,0xd3,0x2, 0x4, 0xa5,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0, +0x82,0xc0,0xd0,0x75,0xd0,0x0, 0xc0,0x0, 0xc0,0x1, 0xc0,0x2, 0xc0,0x3, 0xc0,0x4, +0xc0,0x5, 0xc0,0x6, 0xc0,0x7, 0x12,0x17,0xfa,0x90,0xc, 0xac,0xe0,0x54,0xfd,0xf0, +0xd0,0x7, 0xd0,0x6, 0xd0,0x5, 0xd0,0x4, 0xd0,0x3, 0xd0,0x2, 0xd0,0x1, 0xd0,0x0, +0xd0,0xd0,0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0,0xe0,0x32,0x12,0x3f,0x4d,0xe4,0xf5, +0x2e,0xf5,0x2f,0xf5,0x30,0x12,0x66,0x70,0xf5,0x3c,0x75,0x3d,0xff,0xf5,0x42,0xf5, +0x43,0x12,0x16,0x49,0x90,0x0, 0xb, 0x12,0x2, 0xb7,0xf5,0x47,0x85,0xf0,0x46,0xe4, +0xf5,0x48,0xf5,0x49,0x90,0x0, 0x3, 0x12,0x2, 0xb7,0xf5,0x4b,0x85,0xf0,0x4a,0x12, +0x47,0x29,0x34,0x3, 0xaf,0x1, 0xf5,0x44,0x8f,0x45,0xe4,0xf5,0x2e,0x12,0x16,0xfa, +0x12,0x67,0x68,0x9f,0x40,0x2, 0xe1,0xdd,0xe5,0x2e,0x75,0xf0,0x10,0xa4,0x85,0xf0, +0x40,0xf5,0x41,0xe4,0xf5,0x2f,0x12,0x17,0xbb,0xff,0xe5,0x2f,0xc3,0x9f,0x40,0x2, +0xe1,0xd9,0x12,0x62,0x23,0x12,0x67,0x28,0x95,0x47,0xee,0x95,0x46,0x40,0x2, 0x5, +0x48,0x12,0x62,0x23,0x12,0x67,0x28,0x95,0x4b,0xe5,0x4a,0x12,0x62,0x80,0x50,0x2, +0xe1,0xcd,0xe5,0x2e,0x70,0x6, 0xf5,0x30,0xf5,0x31,0x80,0x15,0xe5,0x41,0x24,0xf0, +0xff,0xe5,0x40,0x34,0xff,0x12,0x46,0x76,0x12,0x62,0x2a,0xf5,0x30,0xa3,0xe0,0xf5, +0x31,0x12,0x16,0xfa,0x12,0x1, 0x4c,0x14,0xb5,0x2e,0x7, 0xe4,0xf5,0x32,0xf5,0x33, +0x80,0x14,0xe5,0x41,0x24,0x10,0xff,0xe4,0x35,0x40,0x12,0x46,0x76,0x12,0x62,0x2a, +0xf5,0x32,0xa3,0xe0,0xf5,0x33,0xe5,0x2f,0x70,0x6, 0xf5,0x36,0xf5,0x37,0x80,0x15, +0xe5,0x41,0x24,0xff,0xff,0xe5,0x40,0x34,0xff,0x12,0x46,0x76,0x12,0x62,0x2a,0xf5, +0x36,0xa3,0xe0,0xf5,0x37,0x12,0x17,0xc1,0x14,0xb5,0x2f,0x7, 0xe4,0xf5,0x34,0xf5, +0x35,0x80,0x14,0xe5,0x41,0x24,0x1, 0xff,0xe4,0x35,0x40,0x12,0x46,0x76,0x12,0x62, +0x2a,0xf5,0x34,0xa3,0xe0,0xf5,0x35,0x12,0x62,0x23,0xfe,0xc3,0xee,0x64,0x80,0x94, +0x80,0x50,0x2e,0xe5,0x31,0x95,0x33,0xe5,0x32,0x12,0x65,0x30,0x98,0x40,0x6, 0x85, +0x32,0x30,0x85,0x33,0x31,0xd3,0xe5,0x31,0x95,0x35,0xe5,0x34,0x12,0x65,0x30,0x98, +0x40,0x6, 0x85,0x34,0x30,0x85,0x35,0x31,0xd3,0x12,0x65,0x2a,0x98,0x40,0x35,0x80, +0x2d,0xc3,0xe5,0x31,0x95,0x33,0xe5,0x32,0x12,0x65,0x30,0x98,0x50,0x6, 0x85,0x32, +0x30,0x85,0x33,0x31,0xc3,0xe5,0x31,0x95,0x35,0xe5,0x34,0x12,0x65,0x30,0x98,0x50, +0x6, 0x85,0x34,0x30,0x85,0x35,0x31,0xc3,0x12,0x65,0x2a,0x98,0x50,0x6, 0x85,0x36, +0x30,0x85,0x37,0x31,0xe5,0x2e,0x25,0xe0,0xf5,0x42,0xe5,0x2f,0x25,0xe0,0xf5,0x43, +0xc3,0xee,0x64,0x80,0x94,0x80,0x40,0x2, 0xa1,0x41,0x12,0x62,0x23,0x12,0x62,0x77, +0x40,0x2, 0xa1,0x37,0xc3,0xe4,0x95,0x4b,0xfd,0xe4,0x95,0x4a,0xfc,0xd3,0xef,0x9d, +0xec,0x12,0x62,0x80,0x40,0x2, 0xa1,0x37,0xe5,0x49,0x70,0x9, 0x90,0xa, 0x8c,0xe5, +0x42,0xf0,0xa3,0xa1,0x32,0xe5,0x49,0xc3,0x94,0x5, 0x40,0x5, 0x75,0x49,0x5, 0xa1, +0x37,0xe4,0xf5,0x3d,0x12,0x67,0x14,0x95,0x49,0x74,0x80,0xf8,0x6c,0x98,0x50,0x62, +0x12,0x46,0xf7,0x12,0x66,0xed,0x7b,0x2, 0x12,0x66,0x8d,0x60,0x51,0xaf,0x3d,0x12, +0x46,0x72,0x33,0xfe,0x12,0x66,0xf8,0x12,0x66,0xd, 0x60,0x42,0xaf,0x3d,0x12,0x46, +0x69,0x25,0xe0,0xfd,0xee,0x33,0xfc,0x74,0x8c,0x2d,0xf5,0x82,0x74,0xa, 0x12,0x62, +0x4d,0xff,0x74,0x8d,0x2d,0xf5,0x82,0x74,0xa, 0x12,0x61,0xff,0xfe,0xa3,0xe0,0xff, +0xc3,0x12,0x46,0x85,0x50,0x13,0xaf,0x3d,0x12,0x46,0x72,0x33,0xfe,0x12,0x66,0xed, +0xe5,0x42,0xf0,0x12,0x66,0xf8,0xe5,0x43,0xf0,0x75,0x3d,0xff,0x80,0x4, 0x5, 0x3d, +0x80,0x92,0xe5,0x49,0xb5,0x3d,0x10,0x12,0x62,0xc8,0xe5,0x42,0xf0,0xe5,0x49,0x12, +0x62,0xbc,0xe5,0x43,0xf0,0x5, 0x49,0x5, 0x41,0xe5,0x41,0x70,0x2, 0x5, 0x40,0xe1, +0xd5,0x12,0x62,0x23,0xfe,0xa3,0xe0,0xff,0xc3,0x12,0x62,0x7c,0x50,0x2, 0xe1,0xcd, +0xef,0x95,0x4b,0xe5,0x4a,0x12,0x62,0x80,0x50,0x2, 0xe1,0xcd,0xe5,0x3c,0x70,0x9, +0x90,0xa, 0x3c,0xe5,0x42,0xf0,0xa3,0xe1,0xc8,0xe5,0x3c,0xc3,0x94,0x14,0x40,0x5, +0x75,0x3c,0x14,0xe1,0xcd,0xe4,0xf5,0x3d,0x12,0x67,0x14,0x95,0x3c,0x74,0x80,0xf8, +0x6c,0x98,0x40,0x2, 0xe1,0xb6,0xed,0x25,0xe0,0xff,0xec,0x12,0x64,0xe9,0xe0,0xfd, +0x7b,0x2, 0x12,0x66,0x8f,0x60,0x3a,0xaf,0x3d,0x12,0x46,0x72,0x12,0x64,0xf6,0x12, +0x66,0xd, 0x60,0x2d,0x12,0x62,0x38,0xff,0x74,0x3d,0x2d,0xf5,0x82,0x74,0xa, 0x12, +0x61,0xff,0xfe,0xa3,0xe0,0xff,0xc3,0x12,0x46,0x85,0x40,0x2, 0xe1,0xad,0xaf,0x3d, +0x12,0x46,0x72,0x12,0x64,0xe9,0xe5,0x42,0xf0,0x12,0x64,0xf8,0xe5,0x43,0xf0,0xe1, +0xad,0xaf,0x3d,0x12,0x46,0x72,0x12,0x64,0xe9,0x7b,0x6, 0x12,0x66,0x8d,0x70,0x2, +0xe1,0xb2,0xaf,0x3d,0x12,0x46,0x72,0x12,0x64,0xf6,0x12,0x66,0xd, 0x70,0x2, 0xe1, +0xb2,0xaf,0x3d,0x12,0x46,0x72,0x12,0x64,0xe9,0xe0,0xfd,0xc3,0x13,0x25,0x2e,0xf5, +0x3e,0x12,0x64,0xf8,0xe0,0xc3,0x13,0x25,0x2f,0xf5,0x3f,0xe4,0xf5,0x30,0xf5,0x31, +0xc3,0xe5,0x31,0x95,0x3c,0x74,0x80,0xf8,0x65,0x30,0x98,0x50,0x39,0xaf,0x3d,0x12, +0x46,0x69,0x65,0x31,0x70,0x3, 0xee,0x65,0x30,0x60,0x21,0x12,0x67,0x98,0x12,0x64, +0xe9,0xe0,0x12,0x4e,0x68,0x60,0x15,0x12,0x67,0x98,0x12,0x64,0xf6,0xe0,0xfd,0xaf, +0x3f,0x12,0x4e,0x1a,0xef,0x60,0x5, 0x75,0x3e,0xff,0x80,0xa, 0x5, 0x31,0xe5,0x31, +0x70,0x2, 0x5, 0x30,0x80,0xba,0xe5,0x3e,0xf4,0x70,0x2, 0xe1,0xb2,0x12,0x62,0x38, +0xff,0x74,0x3d,0x2d,0xf5,0x82,0x74,0xa, 0x3c,0xf5,0x83,0xe0,0xc3,0x13,0xf9,0x12, +0x62,0x5, 0xfe,0xa3,0xe0,0xff,0x12,0x46,0x84,0x40,0x1c,0xaf,0x3d,0x12,0x46,0x72, +0x33,0xfe,0x74,0x3c,0x2f,0xf5,0x82,0x74,0xa, 0x3e,0x12,0x62,0x4e,0xff,0xe9,0x12, +0x62,0xaa,0x12,0x46,0x76,0x80,0x7, 0xe5,0x41,0x25,0xe0,0xff,0xe5,0x40,0x12,0x62, +0x2a,0xf5,0x32,0xa3,0xe0,0xf5,0x33,0xe5,0x33,0xae,0x32,0x78,0x2, 0x11,0xf8,0xd8, +0xfc,0xfd,0xac,0x6, 0xe5,0x32,0xa2,0xe7,0x13,0xfe,0xe5,0x33,0x13,0x2d,0xf5,0x33, +0xee,0x3c,0xf5,0x32,0x12,0x16,0x49,0x12,0x2, 0x8c,0xff,0xae,0xf0,0xc3,0xe5,0x33, +0x9f,0xe5,0x32,0x9e,0x50,0x4, 0x8e,0x32,0x8f,0x33,0xaf,0x3e,0x12,0x46,0x69,0x24, +0x1, 0xff,0xe4,0x3e,0x12,0x65,0xa6,0x12,0x47,0x7f,0xe5,0x3f,0xc3,0x13,0xfd,0x7c, +0x0, 0x2f,0xff,0xec,0x3e,0x12,0x46,0x76,0x12,0x62,0x2a,0xfa,0xa3,0xe0,0xfb,0xe5, +0x3e,0xa2,0xe7,0x13,0xf9,0xff,0x12,0x47,0x7a,0xef,0x2d,0xff,0xec,0x3e,0x12,0x46, +0x76,0x12,0x62,0x2a,0xfe,0xa3,0xe0,0x2b,0xf5,0x35,0xee,0x3a,0xf5,0x34,0xa2,0xe7, +0x13,0xf5,0x34,0xe5,0x35,0x13,0xf5,0x35,0xaf,0x3e,0x12,0x46,0x69,0x24,0x1, 0xff, +0xe4,0x3e,0x12,0x65,0xa6,0xc4,0xf8,0x54,0xf, 0xc8,0x68,0xfd,0xee,0xc4,0x54,0xf0, +0x48,0xfc,0x12,0x65,0x9f,0x2d,0xff,0xee,0x3c,0x12,0x46,0x76,0x12,0x62,0x2a,0xfc, +0xa3,0xe0,0xfd,0xe9,0xff,0x33,0x95,0xe0,0xfe,0xef,0xc4,0xf8,0x54,0xf, 0xc8,0x68, +0xfb,0xee,0xc4,0x54,0xf0,0x48,0xfa,0x12,0x65,0x9f,0x2b,0xff,0xee,0x3a,0x12,0x46, +0x76,0x12,0x62,0x2a,0xfe,0xa3,0xe0,0x2d,0xf5,0x37,0xee,0x3c,0xf5,0x36,0xa2,0xe7, +0x13,0xf5,0x36,0xe5,0x37,0x13,0xf5,0x37,0x25,0x35,0xff,0xe5,0x34,0x35,0x36,0x12, +0x65,0xa6,0xc3,0x95,0x33,0xe5,0x32,0x12,0x62,0x80,0x40,0x16,0xaf,0x3d,0x12,0x46, +0x72,0x12,0x64,0xe9,0xe5,0x3e,0xf0,0x12,0x64,0xf8,0xe5,0x3f,0xf0,0x75,0x3d,0xff, +0x80,0x4, 0x5, 0x3d,0xa1,0x78,0xe5,0x3c,0xb5,0x3d,0x12,0x12,0x11,0xcb,0xe5,0x42, +0xf0,0xe5,0x3c,0x12,0x62,0xb2,0xf5,0x83,0xe5,0x43,0xf0,0x5, 0x3c,0x5, 0x41,0xe5, +0x41,0x70,0x2, 0x5, 0x40,0x5, 0x2f,0x61,0x46,0x5, 0x2e,0x61,0x2d,0xe5,0x3c,0xd3, +0x94,0x5, 0x50,0x3, 0x2, 0x61,0x2a,0xe4,0xf5,0x3e,0xf5,0x2e,0x12,0x4e,0x7c,0xff, +0xe5,0x2e,0xc3,0x9f,0x40,0x3, 0x2, 0x60,0x9c,0x75,0x38,0x3, 0x75,0x39,0xff,0xe4, +0xf5,0x43,0xf5,0x2f,0xe5,0x2f,0xc3,0x95,0x3c,0x50,0x42,0xe5,0x2f,0x12,0x53,0xa, +0x51,0x58,0xe0,0xc3,0x51,0x94,0x12,0x0, 0x6, 0xc0,0x6, 0xc0,0x7, 0xe5,0x2f,0x12, +0x11,0xcb,0x51,0x67,0xe0,0xc3,0x51,0x94,0x12,0x0, 0x6, 0xd0,0xe0,0x2f,0xf5,0x3b, +0xd0,0xe0,0x3e,0xf5,0x3a,0xc3,0xe5,0x3b,0x95,0x39,0xe5,0x3a,0x95,0x38,0x50,0x9, +0x85,0x3a,0x38,0x85,0x3b,0x39,0x85,0x2f,0x43,0x5, 0x2f,0x80,0xb7,0xe5,0x43,0x12, +0x11,0xcb,0x51,0x50,0xff,0xe5,0x43,0x12,0x53,0xa, 0xc3,0x13,0x51,0xaa,0x12,0x46, +0x76,0x51,0x2a,0x12,0x16,0x45,0x12,0x4f,0xb5,0x40,0x2c,0xe5,0x43,0x12,0x11,0xcb, +0xe0,0xfd,0xaf,0x3e,0x12,0x46,0x72,0x33,0xfe,0x74,0x64,0x2f,0xf5,0x82,0x74,0xa, +0x51,0x88,0x12,0x53,0xa, 0xfd,0x74,0x65,0x2f,0xf5,0x82,0x74,0xa, 0x51,0x88,0x12, +0x11,0xcb,0x74,0xff,0xf0,0x5, 0x3e,0x5, 0x2e,0x2, 0x5f,0xec,0x85,0x3e,0x2e,0xe5, +0x2e,0xc3,0x94,0x5, 0x50,0x5e,0xe4,0xf5,0x30,0xf5,0x31,0xf5,0x3f,0xf5,0x2f,0xe5, +0x2f,0xc3,0x95,0x3c,0x50,0x36,0xe5,0x2f,0x12,0x11,0xcb,0xe0,0xff,0xf4,0x60,0x28, +0xef,0x51,0x51,0xff,0xe5,0x2f,0x12,0x53,0xa, 0xfd,0xc3,0x13,0x51,0xd4,0x12,0x46, +0x76,0x51,0x2a,0x51,0x77,0x40,0x11,0xe5,0x2f,0x12,0x11,0xcb,0xe0,0xf5,0x42,0x8d, +0x43,0x8e,0x30,0x8f,0x31,0x85,0x2f,0x3f,0x5, 0x2f,0x80,0xc3,0xe5,0x2e,0x12,0x4d, +0xef,0xe5,0x42,0x51,0x9b,0xe5,0x43,0xf0,0xe5,0x3f,0x12,0x11,0xcb,0x74,0xff,0xf0, +0x5, 0x2e,0x80,0x9b,0xe4,0xf5,0x2e,0xe5,0x2e,0x12,0x4d,0xef,0xe0,0xff,0xe5,0x2e, +0x12,0x11,0xcb,0xef,0x51,0x9b,0xe0,0xff,0xe5,0x2e,0x51,0xb2,0xf5,0x83,0xef,0xf0, +0x5, 0x2e,0xe5,0x2e,0xb4,0x5, 0xe0,0x75,0x3c,0x5, 0xe4,0xf5,0x2e,0x51,0x69,0x74, +0xff,0xf0,0x51,0x59,0x74,0xff,0xf0,0x5, 0x2e,0xe5,0x2e,0xb4,0x5, 0xef,0xe5,0x3c, +0xd3,0x94,0x0, 0x40,0x48,0xe4,0xf5,0x2e,0xe5,0x2e,0xc3,0x95,0x3c,0x50,0x3e,0xe5, +0x2e,0x12,0x11,0xcb,0xe0,0xff,0x12,0x4e,0x61,0x75,0xf0,0x2, 0xe5,0x2e,0x12,0x16, +0xe3,0xef,0x12,0x1, 0xd7,0x12,0x53,0x8, 0xfd,0xe5,0x2e,0x75,0xf0,0x2, 0x12,0x17, +0xd5,0xfa,0x90,0x0, 0x1, 0xed,0x12,0x1, 0xd7,0xe5,0x2e,0x12,0x11,0xcb,0x51,0x67, +0xef,0xf0,0x12,0x53,0x8, 0x51,0x58,0xef,0xf0,0x5, 0x2e,0x80,0xbb,0xe5,0x49,0xd3, +0x94,0x0, 0x40,0x2e,0xe4,0xf5,0x2e,0xe5,0x2e,0xc3,0x95,0x49,0x50,0x24,0xe5,0x2e, +0x51,0xc8,0xe0,0xfd,0xe5,0x2e,0x75,0xf0,0x2, 0x12,0x4d,0xab,0x90,0x0, 0x87,0xed, +0x12,0x1, 0xd7,0xe5,0x2e,0x51,0xbc,0xe0,0x90,0x0, 0x88,0x12,0x1, 0xd7,0x5, 0x2e, +0x80,0xd5,0x12,0x4e,0x61,0x90,0x0, 0x86,0xe5,0x49,0x12,0x1, 0xd7,0x90,0x0, 0x2d, +0xe5,0x3c,0x12,0x1, 0xd7,0xe9,0x24,0x2f,0x12,0x3f,0x5f,0x12,0x16,0x49,0x90,0x0, +0xd, 0x12,0x1, 0x65,0xff,0xe5,0x48,0xd3,0x9f,0x40,0x13,0xab,0x2b,0xe5,0x2d,0x24, +0x2f,0xf9,0xe4,0x35,0x2c,0xfa,0x12,0x1, 0x4c,0x44,0x1, 0x12,0x1, 0xc5,0x22,0x3c, +0xf5,0x83,0xe0,0xc3,0x13,0x7c,0x0, 0x2f,0xff,0xec,0x35,0xf0,0xfe,0xef,0x25,0xe0, +0xff,0xee,0x33,0xfe,0xe5,0x45,0x2f,0xf5,0x82,0xe5,0x44,0x3e,0xf5,0x83,0xe0,0xfc, +0xa3,0xe0,0xfd,0xe5,0x41,0x25,0xe0,0xff,0xe5,0x40,0x33,0xfe,0xe5,0x45,0x2f,0xf5, +0x82,0xe5,0x44,0x3e,0xf5,0x83,0xe0,0x22,0xaf,0x3d,0xef,0x33,0x95,0xe0,0xfe,0xef, +0x25,0xe0,0xfd,0xee,0x33,0xfc,0x74,0x3c,0x2d,0xf5,0x82,0x74,0xa, 0x3c,0xf5,0x83, +0xe0,0xc3,0x13,0x75,0xf0,0x10,0xa4,0x22,0xff,0xe5,0x2e,0x25,0xe0,0x24,0xe1,0xf5, +0x82,0xe4,0x34,0xc, 0xf5,0x83,0x22,0xe0,0xff,0xe5,0x2e,0x25,0xe0,0x24,0xe0,0xf5, +0x82,0xe4,0x34,0xc, 0xf5,0x83,0x22,0xfe,0xa3,0xe0,0xff,0xd3,0x95,0x31,0xe5,0x30, +0x64,0x80,0xf8,0xee,0x64,0x80,0x98,0x22,0x3e,0xf5,0x83,0xed,0xf0,0xe5,0x43,0x22, +0xff,0xc3,0xe5,0x3d,0x9f,0xff,0xe4,0x94,0x0, 0xfe,0x22,0xf0,0xe5,0x2e,0x25,0xe0, +0x24,0x65,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0x7c,0x0, 0x2f,0xff,0xec,0x35, +0xf0,0x22,0x25,0xe0,0x24,0x3d,0xf5,0x82,0xe4,0x34,0xa, 0x22,0x25,0xe0,0x24,0x8d, +0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0x25,0xe0,0x24,0x8c,0xf5,0x82,0xe4,0x34, +0xa, 0xf5,0x83,0x22,0x7a,0x0, 0x2f,0xff,0xea,0x35,0xf0,0x22,0xbf,0x1, 0x5, 0x43, +0xdb,0x80,0x80,0x6, 0xef,0x70,0x3, 0x53,0xdb,0x7f,0xc2,0xea,0x43,0xdb,0x10,0xd2, +0xd9,0xc2,0xdd,0xc2,0xdc,0xc2,0xdb,0xc2,0xda,0xd2,0xd8,0x75,0xab,0x6, 0xe4,0xf5, +0x9a,0x53,0xdb,0xfd,0xd2,0xed,0xd2,0xba,0xc2,0xc2,0x43,0xa9,0x4, 0x43,0xb9,0x4, +0x22,0xef,0x71,0xee,0xed,0x2b,0xfb,0xe4,0x3a,0xfe,0xaf,0x3, 0x22,0x8b,0x37,0x8a, +0x38,0x89,0x39,0xe4,0xf5,0x3d,0x12,0x2e,0xd9,0x71,0xd6,0xfd,0xe4,0xff,0x71,0x11, +0x8e,0x3e,0x8f,0x3f,0xe5,0x3d,0x70,0x3, 0x43,0x3e,0x20,0x71,0xc9,0x94,0x10,0x40, +0xe5,0x75,0x3d,0x10,0xe4,0xfd,0x7f,0xc0,0x71,0xce,0x94,0x20,0x40,0xf6,0xe4,0xf5, +0x3d,0x71,0xe7,0x71,0xd6,0xfe,0x54,0xf, 0xff,0xee,0xc4,0x54,0xf, 0xfd,0x71,0xdf, +0x8e,0x3e,0x8f,0x3f,0x71,0xc9,0x94,0x8, 0x40,0xe7,0x75,0x3d,0x8, 0xe4,0xfd,0x7f, +0xc0,0x71,0xce,0x94,0x20,0x40,0xf6,0xe4,0xf5,0x3d,0x75,0xf0,0x2, 0xe5,0x3d,0xa4, +0x24,0x54,0xf5,0x82,0xe5,0xf0,0x34,0xc, 0xf5,0x83,0xe4,0x93,0xf5,0x3e,0x74,0x1, +0x93,0xf5,0x3f,0x71,0xc9,0x94,0xff,0x40,0xe1,0x90,0xe, 0x52,0xe4,0x93,0xfc,0x74, +0x1, 0x93,0xfd,0xec,0xff,0x71,0xfd,0x8f,0xa1,0xe5,0xdb,0x30,0xe3,0xfb,0x85,0xa1, +0x14,0x53,0xdb,0xf3,0x8d,0xa1,0xe5,0xdb,0x30,0xe3,0xfb,0x85,0xa1,0x15,0x53,0xdb, +0xf3,0x43,0xab,0x4, 0xae,0x14,0xaf,0x15,0x22,0xe5,0x3e,0xff,0xad,0x3f,0x71,0xa5, +0x5, 0x3d,0xe5,0x3d,0xc3,0x22,0x85,0x3d,0x82,0x75,0x83,0x0, 0x2, 0x1, 0x65,0xac, +0x7, 0xed,0x71,0xee,0xec,0x61,0x15,0xab,0x3a,0xaa,0x3b,0xa9,0x3c,0x22,0x7b,0x0, +0x7a,0xc0,0x75,0xf0,0x80,0xa4,0x2b,0xfb,0xe5,0xf0,0x3a,0xfa,0x22,0x53,0xab,0x3, +0x53,0xdb,0xf3,0x22,0x71,0xfd,0xef,0x44,0x80,0xf5,0xa1,0xe5,0xdb,0x30,0xe3,0xfb, +0x53,0xdb,0xf3,0xe4,0xf5,0xa1,0xe5,0xdb,0x30,0xe3,0xfb,0xaf,0xa1,0x43,0xab,0x4, +0x22,0x53,0xc9,0x7, 0x43,0xc9,0x30,0x75,0xeb,0x80,0xef,0x25,0xe0,0x4, 0x25,0xeb, +0xf5,0xeb,0x22,0x7d,0x3, 0xe4,0x91,0x3d,0x60,0x2, 0x7f,0x1, 0x22,0xff,0x12,0x2f, +0xb8,0xef,0x7f,0x0, 0x22,0xe4,0xfd,0x91,0x3d,0x60,0x2, 0x7f,0x1, 0x22,0xe5,0xdb, +0x20,0xe1,0x3, 0x7f,0x0, 0x22,0x53,0xdb,0xfd,0x7f,0x1, 0x22,0xc2,0xc2,0x53,0xdb, +0xbf,0x32,0xef,0x70,0x4, 0x53,0xdb,0xbf,0x22,0x43,0xdb,0x40,0x22,0xef,0x24,0xfe, +0x60,0xb, 0x14,0x60,0xc, 0x24,0x2, 0x70,0xc, 0x7d,0x9, 0x80,0xa, 0x7d,0x6, 0x80, +0x6, 0x7d,0x3, 0x80,0x2, 0xe4,0xfd,0xe5,0xdc,0x54,0xf0,0x2d,0xf5,0xdc,0x22,0xf9, +0xe4,0x35,0x23,0xfa,0x7e,0x0, 0xe9,0x25,0x2e,0xf9,0xee,0x3a,0xfa,0x12,0x1, 0x4c, +0x54,0xf, 0xfd,0xe5,0x2e,0x25,0xe0,0xff,0xee,0x33,0xfe,0x74,0x74,0x2f,0xf5,0x82, +0x74,0xa, 0x3e,0xf5,0x83,0xed,0xf0,0x12,0x1, 0x4c,0x54,0xf0,0xc4,0x54,0xf, 0xfd, +0xe5,0x2e,0x25,0xe0,0xff,0xe4,0x33,0xfe,0x74,0x75,0x2f,0xf5,0x82,0x74,0xa, 0x3e, +0xf5,0x83,0x22,0xab,0x34,0xaa,0x35,0xa9,0x36,0xe4,0x12,0x1, 0xd7,0xab,0x37,0xaa, +0x38,0xa9,0x39,0x90,0x0, 0x1f,0x2, 0x1, 0x65,0x33,0xfe,0x74,0x3c,0x2f,0xf5,0x82, +0x74,0xa, 0x3e,0xf5,0x83,0x22,0x33,0xfe,0x74,0x3d,0x2f,0xf5,0x82,0x74,0xa, 0x3e, +0xf5,0x83,0x22,0xab,0x37,0xaa,0x38,0xa9,0x39,0x90,0x0, 0x20,0x2, 0x1, 0x65,0x7c, +0x0, 0x12,0x5, 0x9c,0x8f,0x35,0x8e,0x34,0x8d,0x33,0x8c,0x32,0x78,0x8, 0x12,0x4, +0xcc,0x8f,0x35,0x8e,0x34,0x8d,0x33,0x8c,0x32,0x22,0xe5,0x31,0x95,0x37,0xe5,0x36, +0x64,0x80,0xf8,0xe5,0x30,0x64,0x80,0x22,0xa4,0x24,0x54,0xf9,0x74,0xe, 0x35,0xf0, +0xfa,0x7b,0xff,0xe9,0x25,0x38,0xf9,0xe4,0x3a,0xfa,0x78,0x32,0x7c,0x0, 0x7d,0x0, +0x7e,0x0, 0x22,0xa3,0xf0,0x75,0x25,0x1, 0x75,0x26,0x8, 0x75,0x27,0x29,0x75,0x28, +0x1, 0x75,0x29,0xa, 0x75,0x2a,0x25,0x7b,0x1, 0x7a,0x9, 0x79,0x18,0x22,0xf9,0xe4, +0x3a,0xfa,0x12,0x2, 0x8c,0xc4,0xf8,0x54,0xf, 0xc8,0x68,0xff,0xe5,0xf0,0xc4,0x54, +0xf0,0x48,0x8f,0xf0,0x2, 0x3, 0x3c,0x12,0x5, 0x9c,0xe5,0x40,0x2f,0xf5,0x40,0xe5, +0x3f,0x3e,0xf5,0x3f,0xe5,0x3e,0x3d,0xf5,0x3e,0xe5,0x3d,0x3c,0xf5,0x3d,0x22,0xe5, +0x3f,0x24,0x1, 0xff,0xe4,0x33,0xa2,0xe7,0x13,0xfe,0xef,0x13,0x22,0x90,0x3, 0x80, +0x75,0xf0,0x20,0x2, 0x5, 0x40,0x24,0xff,0xff,0xe4,0x34,0xff,0xcf,0xc3,0x95,0x3c, +0xcf,0x95,0x3b,0xfe,0xd3,0xef,0x94,0x0, 0xee,0x94,0x0, 0x22,0xe5,0x2f,0x75,0xf0, +0x7, 0xa4,0xff,0xae,0xf0,0xab,0x22,0x25,0x24,0xf9,0xe5,0x23,0x3e,0xfa,0x22,0xfa, +0x90,0x0, 0x2, 0x12,0x2, 0xb7,0xc3,0x9d,0xff,0xe5,0xf0,0x9c,0xfe,0x2, 0x0, 0x6, +0x90,0x8, 0x1d,0x74,0x1, 0xf0,0xa3,0x74,0xb, 0xf0,0x22,0xf9,0xe4,0x3a,0xfa,0x12, +0x2, 0x8c,0xc3,0x95,0x2c,0xff,0xe5,0xf0,0x95,0x2b,0x8f,0xf0,0x22,0xe0,0xfd,0xaf, +0x43,0x12,0x4e,0x1a,0xef,0x22,0x24,0x3e,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0xee, +0xf0,0xa3,0xef,0xf0,0x5, 0x2d,0x22,0xae,0x46,0xaf,0x47,0xab,0x7, 0xaa,0x6, 0xea, +0x33,0x95,0xe0,0xf9,0xf8,0xaf,0x2e,0x22,0xe5,0x21,0x75,0xf0,0x7, 0xa4,0x24,0xc8, +0xf5,0x82,0xe4,0x34,0x8, 0xf5,0x83,0x22,0x75,0x25,0x1, 0x75,0x26,0x8, 0x75,0x27, +0x33,0x22,0x75,0x62,0xb, 0x75,0x63,0x78,0x7b,0xff,0x7a,0xf, 0x79,0x48,0x2, 0xa, +0x57,0xc3,0x13,0x75,0x3b,0x0, 0xf5,0x3c,0xd3,0x94,0x0, 0xe5,0x3b,0x94,0x0, 0x22, +0xf5,0x31,0xf5,0x32,0xf5,0x33,0xf5,0x34,0xf5,0x35,0xf5,0x36,0xf5,0x37,0x22,0xfd, +0xfc,0xab,0x35,0xaa,0x34,0xa9,0x33,0xa8,0x32,0xc3,0x2, 0x4, 0xbb,0xe0,0xfd,0xaf, +0x42,0x12,0x4e,0x1a,0xef,0x22,0xff,0xe9,0x24,0x58,0xf9,0xe4,0x3a,0xfa,0xe9,0x2f, +0xf9,0xea,0x3e,0x22,0xe5,0x21,0x75,0xf0,0x7, 0xa4,0x24,0xca,0xf5,0x82,0xe4,0x34, +0x8, 0x22,0x75,0x28,0x1, 0x75,0x29,0x0, 0x75,0x2a,0x0, 0x75,0x2b,0x1, 0x22,0x90, +0x0, 0x52,0x12,0x1, 0xd7,0x90,0x0, 0x53,0x22,0xab,0x28,0xe5,0x2a,0x24,0x23,0xf9, +0xe4,0x35,0x29,0xfa,0x22,0x74,0x2, 0x25,0x4f,0xf5,0x4f,0xe4,0x35,0x4e,0xf5,0x4e, +0x22,0xab,0x34,0xe5,0x36,0x24,0x80,0xf9,0xe5,0x35,0x34,0x3, 0x22,0x74,0x8c,0x2f, +0xf5,0x82,0x74,0xa, 0x3e,0xf5,0x83,0x22,0x74,0x8d,0x2f,0xf5,0x82,0x74,0xa, 0x3e, +0xf5,0x83,0x22,0x12,0x1, 0xd7,0x90,0x0, 0x80,0x22,0x33,0x8f,0x82,0xf5,0x83,0x12, +0x2, 0xb7,0x2d,0x22,0xad,0x3d,0xed,0x33,0x95,0xe0,0xfc,0xc3,0xed,0x22,0x12,0x1, +0x4c,0xfd,0x12,0x0, 0x4e,0xe5,0x2d,0x22,0xfe,0xa3,0xe0,0xff,0x12,0x0, 0x6, 0xd3, +0xef,0x22,0x90,0x0, 0x53,0x2, 0x1, 0x65,0xe5,0x3b,0x25,0xe0,0xff,0xe5,0x3a,0x33, +0xfe,0x22,0x75,0x25,0x1, 0x75,0x26,0xa, 0x75,0x27,0x25,0x22,0x75,0x25,0x1, 0x75, +0x26,0x0, 0x75,0x27,0x83,0x22,0xf0,0x90,0xb, 0x5d,0xe0,0x90,0x0, 0x54,0xf0,0x22, +0x3e,0xf5,0x83,0xe4,0xf0,0xa3,0xf0,0x22,0x12,0x1, 0x4c,0xff,0xe5,0x2e,0xc3,0x22, +0xfd,0x12,0x0, 0x4e,0xe4,0xf5,0x2d,0x22,0xff,0xab,0x2a,0xe5,0x2c,0x24,0x54,0x22, +0xff,0xab,0x2a,0xe5,0x2c,0x24,0x1c,0x22,0x74,0x6d,0x25,0x50,0xf8,0xe6,0xa4,0x22, +0xf5,0x82,0xe4,0x35,0x5c,0xf5,0x83,0x22,0xe5,0x31,0x25,0xe0,0xff,0xe5,0x30,0x22, +0x12,0x1, 0x65,0xc3,0x13,0xf5,0x42,0x22,0x12,0x1, 0xd7,0x90,0xb, 0x5d,0xe0,0x22, +0x67,0xb0,0x98,0x4f,0x6c,0x93,0x2c,0x5a, \ No newline at end of file diff --git a/drivers/input/touchscreen/focaltech/FT5306_Spreadtrum_tiger_TRYLY_COB_0x2e_app.h b/drivers/input/touchscreen/focaltech/FT5306_Spreadtrum_tiger_TRYLY_COB_0x2e_app.h new file mode 100644 index 00000000..a1f2d1d2 --- /dev/null +++ b/drivers/input/touchscreen/focaltech/FT5306_Spreadtrum_tiger_TRYLY_COB_0x2e_app.h @@ -0,0 +1,1660 @@ +0x2, 0x5, 0xf0,0x2, 0x5a,0xa9,0xee,0x30,0xe7,0x7, 0xc3,0xe4,0x9f,0xff,0xe4,0x9e, +0xfe,0x22,0x12,0x0, 0x2, 0x3, 0x4, 0x6, 0x7, 0x8, 0xa, 0x2, 0x59,0x7d,0x2, 0x17, +0xfa,0x22,0x22,0x2, 0x3c,0xd1,0xbd,0x77,0xb, 0xef,0xc3,0x94,0x13,0x40,0x19,0x74, +0xf3,0x2f,0xff,0x22,0xbd,0x78,0xb, 0xef,0xc3,0x94,0x13,0x40,0xb, 0x74,0xf8,0x2f, +0xff,0x22,0xbd,0x79,0x1, 0x22,0x7f,0xff,0x22,0xff,0xff,0x2, 0x3c,0xba,0x8f,0xd9, +0x8d,0xda,0x22,0x2, 0x64,0x5c,0xe7,0x9, 0xf6,0x8, 0xdf,0xfa,0x80,0x46,0xe7,0x9, +0xf2,0x8, 0xdf,0xfa,0x80,0x3e,0x88,0x82,0x8c,0x83,0xe7,0x9, 0xf0,0xa3,0xdf,0xfa, +0x80,0x32,0xe3,0x9, 0xf6,0x8, 0xdf,0xfa,0x80,0x78,0xe3,0x9, 0xf2,0x8, 0xdf,0xfa, +0x80,0x70,0x88,0x82,0x8c,0x83,0xe3,0x9, 0xf0,0xa3,0xdf,0xfa,0x80,0x64,0x89,0x82, +0x8a,0x83,0xe0,0xa3,0xf6,0x8, 0xdf,0xfa,0x80,0x58,0x89,0x82,0x8a,0x83,0xe0,0xa3, +0xf2,0x8, 0xdf,0xfa,0x80,0x4c,0x80,0xd2,0x80,0xfa,0x80,0xc6,0x80,0xd4,0x80,0x69, +0x80,0xf2,0x80,0x33,0x80,0x10,0x80,0xa6,0x80,0xea,0x80,0x9a,0x80,0xa8,0x80,0xda, +0x80,0xe2,0x80,0xca,0x80,0x33,0x89,0x82,0x8a,0x83,0xec,0xfa,0xe4,0x93,0xa3,0xc8, +0xc5,0x82,0xc8,0xcc,0xc5,0x83,0xcc,0xf0,0xa3,0xc8,0xc5,0x82,0xc8,0xcc,0xc5,0x83, +0xcc,0xdf,0xe9,0xde,0xe7,0x80,0xd, 0x89,0x82,0x8a,0x83,0xe4,0x93,0xa3,0xf6,0x8, +0xdf,0xf9,0xec,0xfa,0xa9,0xf0,0xed,0xfb,0x22,0x89,0x82,0x8a,0x83,0xec,0xfa,0xe0, +0xa3,0xc8,0xc5,0x82,0xc8,0xcc,0xc5,0x83,0xcc,0xf0,0xa3,0xc8,0xc5,0x82,0xc8,0xcc, +0xc5,0x83,0xcc,0xdf,0xea,0xde,0xe8,0x80,0xdb,0x89,0x82,0x8a,0x83,0xe4,0x93,0xa3, +0xf2,0x8, 0xdf,0xf9,0x80,0xcc,0x88,0xf0,0xef,0x60,0x1, 0xe, 0x4e,0x60,0xc3,0x88, +0xf0,0xed,0x24,0x2, 0xb4,0x4, 0x0, 0x50,0xb9,0xf5,0x82,0xeb,0x24,0x2, 0xb4,0x4, +0x0, 0x50,0xaf,0x23,0x23,0x45,0x82,0x23,0x90,0x0, 0xa6,0x73,0xbb,0x1, 0x6, 0x89, +0x82,0x8a,0x83,0xe0,0x22,0x50,0x2, 0xe7,0x22,0xbb,0xfe,0x2, 0xe3,0x22,0x89,0x82, +0x8a,0x83,0xe4,0x93,0x22,0xbb,0x1, 0xc, 0xe5,0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a, +0xf5,0x83,0xe0,0x22,0x50,0x6, 0xe9,0x25,0x82,0xf8,0xe6,0x22,0xbb,0xfe,0x6, 0xe9, +0x25,0x82,0xf8,0xe2,0x22,0xe5,0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a,0xf5,0x83,0xe4, +0x93,0x22,0xbb,0x1, 0xf, 0xf8,0xe5,0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a,0xf5,0x83, +0xe0,0x28,0xf0,0x22,0x50,0x9, 0xc5,0x82,0x29,0xf8,0xe5,0x82,0x26,0xf6,0x22,0xbb, +0xfe,0x9, 0xc5,0x82,0x29,0xf8,0xe2,0x25,0x82,0xf2,0x22,0xf8,0xea,0x25,0x83,0xf5, +0x83,0xe9,0x93,0x28,0x22,0xbb,0x1, 0x6, 0x89,0x82,0x8a,0x83,0xf0,0x22,0x50,0x2, +0xf7,0x22,0xbb,0xfe,0x1, 0xf3,0x22,0xf8,0xbb,0x1, 0xd, 0xe5,0x82,0x29,0xf5,0x82, +0xe5,0x83,0x3a,0xf5,0x83,0xe8,0xf0,0x22,0x50,0x6, 0xe9,0x25,0x82,0xc8,0xf6,0x22, +0xbb,0xfe,0x5, 0xe9,0x25,0x82,0xc8,0xf2,0x22,0xef,0x8d,0xf0,0xa4,0xa8,0xf0,0xcf, +0x8c,0xf0,0xa4,0x28,0xce,0x8d,0xf0,0xa4,0x2e,0xfe,0x22,0xbc,0x0, 0xb, 0xbe,0x0, +0x29,0xef,0x8d,0xf0,0x84,0xff,0xad,0xf0,0x22,0xe4,0xcc,0xf8,0x75,0xf0,0x8, 0xef, +0x2f,0xff,0xee,0x33,0xfe,0xec,0x33,0xfc,0xee,0x9d,0xec,0x98,0x40,0x5, 0xfc,0xee, +0x9d,0xfe,0xf, 0xd5,0xf0,0xe9,0xe4,0xce,0xfd,0x22,0xed,0xf8,0xf5,0xf0,0xee,0x84, +0x20,0xd2,0x1c,0xfe,0xad,0xf0,0x75,0xf0,0x8, 0xef,0x2f,0xff,0xed,0x33,0xfd,0x40, +0x7, 0x98,0x50,0x6, 0xd5,0xf0,0xf2,0x22,0xc3,0x98,0xfd,0xf, 0xd5,0xf0,0xea,0x22, +0xc5,0xf0,0xf8,0xa3,0xe0,0x28,0xf0,0xc5,0xf0,0xf8,0xe5,0x82,0x15,0x82,0x70,0x2, +0x15,0x83,0xe0,0x38,0xf0,0x22,0xa3,0xf8,0xe0,0xc5,0xf0,0x25,0xf0,0xf0,0xe5,0x82, +0x15,0x82,0x70,0x2, 0x15,0x83,0xe0,0xc8,0x38,0xf0,0xe8,0x22,0xbb,0x1, 0xa, 0x89, +0x82,0x8a,0x83,0xe0,0xf5,0xf0,0xa3,0xe0,0x22,0x50,0x6, 0x87,0xf0,0x9, 0xe7,0x19, +0x22,0xbb,0xfe,0x7, 0xe3,0xf5,0xf0,0x9, 0xe3,0x19,0x22,0x89,0x82,0x8a,0x83,0xe4, +0x93,0xf5,0xf0,0x74,0x1, 0x93,0x22,0xbb,0x1, 0x10,0xe5,0x82,0x29,0xf5,0x82,0xe5, +0x83,0x3a,0xf5,0x83,0xe0,0xf5,0xf0,0xa3,0xe0,0x22,0x50,0x9, 0xe9,0x25,0x82,0xf8, +0x86,0xf0,0x8, 0xe6,0x22,0xbb,0xfe,0xa, 0xe9,0x25,0x82,0xf8,0xe2,0xf5,0xf0,0x8, +0xe2,0x22,0xe5,0x83,0x2a,0xf5,0x83,0xe9,0x93,0xf5,0xf0,0xa3,0xe9,0x93,0x22,0xbb, +0x1, 0xd, 0xc5,0x82,0x29,0xc5,0x82,0xc5,0x83,0x3a,0xc5,0x83,0x2, 0x2, 0x60,0x50, +0x11,0xc5,0x82,0x29,0xf8,0x8, 0xe5,0xf0,0x26,0xf6,0x18,0xf5,0xf0,0xe5,0x82,0x36, +0xf6,0x22,0xbb,0xfe,0x11,0xc5,0x82,0x29,0xf8,0x8, 0xe2,0x25,0xf0,0xf5,0xf0,0xf2, +0x18,0xe2,0x35,0x82,0xf2,0x22,0xf8,0xe5,0x82,0x29,0xf5,0x82,0xe5,0x83,0x2a,0xf5, +0x83,0x74,0x1, 0x93,0x25,0xf0,0xf5,0xf0,0xe4,0x93,0x38,0x22,0xbb,0x1, 0xa, 0x89, +0x82,0x8a,0x83,0xf0,0xe5,0xf0,0xa3,0xf0,0x22,0x50,0x6, 0xf7,0x9, 0xa7,0xf0,0x19, +0x22,0xbb,0xfe,0x6, 0xf3,0xe5,0xf0,0x9, 0xf3,0x19,0x22,0xf8,0xbb,0x1, 0x11,0xe5, +0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a,0xf5,0x83,0xe8,0xf0,0xe5,0xf0,0xa3,0xf0,0x22, +0x50,0x9, 0xe9,0x25,0x82,0xc8,0xf6,0x8, 0xa6,0xf0,0x22,0xbb,0xfe,0x9, 0xe9,0x25, +0x82,0xc8,0xf2,0xe5,0xf0,0x8, 0xf2,0x22,0xe8,0x8f,0xf0,0xa4,0xcc,0x8b,0xf0,0xa4, +0x2c,0xfc,0xe9,0x8e,0xf0,0xa4,0x2c,0xfc,0x8a,0xf0,0xed,0xa4,0x2c,0xfc,0xea,0x8e, +0xf0,0xa4,0xcd,0xa8,0xf0,0x8b,0xf0,0xa4,0x2d,0xcc,0x38,0x25,0xf0,0xfd,0xe9,0x8f, +0xf0,0xa4,0x2c,0xcd,0x35,0xf0,0xfc,0xeb,0x8e,0xf0,0xa4,0xfe,0xa9,0xf0,0xeb,0x8f, +0xf0,0xa4,0xcf,0xc5,0xf0,0x2e,0xcd,0x39,0xfe,0xe4,0x3c,0xfc,0xea,0xa4,0x2d,0xce, +0x35,0xf0,0xfd,0xe4,0x3c,0xfc,0x22,0x75,0xf0,0x8, 0x75,0x82,0x0, 0xef,0x2f,0xff, +0xee,0x33,0xfe,0xcd,0x33,0xcd,0xcc,0x33,0xcc,0xc5,0x82,0x33,0xc5,0x82,0x9b,0xed, +0x9a,0xec,0x99,0xe5,0x82,0x98,0x40,0xc, 0xf5,0x82,0xee,0x9b,0xfe,0xed,0x9a,0xfd, +0xec,0x99,0xfc,0xf, 0xd5,0xf0,0xd6,0xe4,0xce,0xfb,0xe4,0xcd,0xfa,0xe4,0xcc,0xf9, +0xa8,0x82,0x22,0xb8,0x0, 0xc1,0xb9,0x0, 0x59,0xba,0x0, 0x2d,0xec,0x8b,0xf0,0x84, +0xcf,0xce,0xcd,0xfc,0xe5,0xf0,0xcb,0xf9,0x78,0x18,0xef,0x2f,0xff,0xee,0x33,0xfe, +0xed,0x33,0xfd,0xec,0x33,0xfc,0xeb,0x33,0xfb,0x10,0xd7,0x3, 0x99,0x40,0x4, 0xeb, +0x99,0xfb,0xf, 0xd8,0xe5,0xe4,0xf9,0xfa,0x22,0x78,0x18,0xef,0x2f,0xff,0xee,0x33, +0xfe,0xed,0x33,0xfd,0xec,0x33,0xfc,0xc9,0x33,0xc9,0x10,0xd7,0x5, 0x9b,0xe9,0x9a, +0x40,0x7, 0xec,0x9b,0xfc,0xe9,0x9a,0xf9,0xf, 0xd8,0xe0,0xe4,0xc9,0xfa,0xe4,0xcc, +0xfb,0x22,0x75,0xf0,0x10,0xef,0x2f,0xff,0xee,0x33,0xfe,0xed,0x33,0xfd,0xcc,0x33, +0xcc,0xc8,0x33,0xc8,0x10,0xd7,0x7, 0x9b,0xec,0x9a,0xe8,0x99,0x40,0xa, 0xed,0x9b, +0xfd,0xec,0x9a,0xfc,0xe8,0x99,0xf8,0xf, 0xd5,0xf0,0xda,0xe4,0xcd,0xfb,0xe4,0xcc, +0xfa,0xe4,0xc8,0xf9,0x22,0xeb,0x9f,0xf5,0xf0,0xea,0x9e,0x42,0xf0,0xe9,0x9d,0x42, +0xf0,0xec,0x64,0x80,0xc8,0x64,0x80,0x98,0x45,0xf0,0x22,0xeb,0x9f,0xf5,0xf0,0xea, +0x9e,0x42,0xf0,0xe9,0x9d,0x42,0xf0,0xe8,0x9c,0x45,0xf0,0x22,0xe8,0x60,0xf, 0xec, +0xc3,0x13,0xfc,0xed,0x13,0xfd,0xee,0x13,0xfe,0xef,0x13,0xff,0xd8,0xf1,0x22,0xe8, +0x60,0xf, 0xef,0xc3,0x33,0xff,0xee,0x33,0xfe,0xed,0x33,0xfd,0xec,0x33,0xfc,0xd8, +0xf1,0x22,0xec,0xf0,0xa3,0xed,0xf0,0xa3,0xee,0xf0,0xa3,0xef,0xf0,0x22,0xa8,0x82, +0x85,0x83,0xf0,0xd0,0x83,0xd0,0x82,0x12,0x5, 0x15,0x12,0x5, 0x15,0x12,0x5, 0x15, +0x12,0x5, 0x15,0xe4,0x73,0xe4,0x93,0xa3,0xc5,0x83,0xc5,0xf0,0xc5,0x83,0xc8,0xc5, +0x82,0xc8,0xf0,0xa3,0xc5,0x83,0xc5,0xf0,0xc5,0x83,0xc8,0xc5,0x82,0xc8,0x22,0xf5, +0xf0,0xc5,0x82,0xa4,0xc5,0x82,0xc5,0xf0,0xc5,0x83,0xa4,0x25,0x83,0xf5,0x83,0x22, +0xa4,0x25,0x82,0xf5,0x82,0xe5,0xf0,0x35,0x83,0xf5,0x83,0x22,0xbb,0x1, 0x7, 0x89, +0x82,0x8a,0x83,0x2, 0x5, 0xd2,0x50,0x5, 0xe9,0xf8,0x2, 0x5, 0xc9,0xbb,0xfe,0x5, +0xe9,0xf8,0x2, 0x5, 0xdb,0x89,0x82,0x8a,0x83,0x2, 0x5, 0xe4,0xbb,0x1, 0xd, 0xe5, +0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a,0xf5,0x83,0x2, 0x5, 0xd2,0x50,0x7, 0xe9,0x25, +0x82,0xf8,0x2, 0x5, 0xc9,0xbb,0xfe,0x7, 0xe9,0x25,0x82,0xf8,0x2, 0x5, 0xdb,0xe5, +0x82,0x29,0xf5,0x82,0xe5,0x83,0x3a,0xf5,0x83,0x2, 0x5, 0xe4,0xec,0x8e,0xf0,0xa4, +0xcc,0xc5,0xf0,0xcc,0xcd,0xf8,0xef,0xa4,0xce,0xc5,0xf0,0x2d,0xfd,0xe4,0x3c,0xfc, +0xe8,0xa4,0x2e,0xc8,0xc5,0xf0,0x3d,0xfd,0xe4,0x3c,0xfc,0xef,0xa4,0xff,0xe5,0xf0, +0x28,0xfe,0xe4,0x3d,0xfd,0xe4,0x3c,0xfc,0x22,0xe6,0xfb,0x8, 0xe6,0xfa,0x8, 0xe6, +0xf9,0x22,0xe0,0xfb,0xa3,0xe0,0xfa,0xa3,0xe0,0xf9,0x22,0xe2,0xfb,0x8, 0xe2,0xfa, +0x8, 0xe2,0xf9,0x22,0xe4,0x93,0xfb,0x74,0x1, 0x93,0xfa,0x74,0x2, 0x93,0xf9,0x22, +0x78,0xff,0xe4,0xf6,0xd8,0xfd,0x75,0x81,0x98,0x2, 0x6, 0x37,0x2, 0x36,0x12,0xe4, +0x93,0xa3,0xf8,0xe4,0x93,0xa3,0x40,0x3, 0xf6,0x80,0x1, 0xf2,0x8, 0xdf,0xf4,0x80, +0x29,0xe4,0x93,0xa3,0xf8,0x54,0x7, 0x24,0xc, 0xc8,0xc3,0x33,0xc4,0x54,0xf, 0x44, +0x20,0xc8,0x83,0x40,0x4, 0xf4,0x56,0x80,0x1, 0x46,0xf6,0xdf,0xe4,0x80,0xb, 0x1, +0x2, 0x4, 0x8, 0x10,0x20,0x40,0x80,0x90,0x6, 0x7c,0xe4,0x7e,0x1, 0x93,0x60,0xbc, +0xa3,0xff,0x54,0x3f,0x30,0xe5,0x9, 0x54,0x1f,0xfe,0xe4,0x93,0xa3,0x60,0x1, 0xe, +0xcf,0x54,0xc0,0x25,0xe0,0x60,0xa8,0x40,0xb8,0xe4,0x93,0xa3,0xfa,0xe4,0x93,0xa3, +0xf8,0xe4,0x93,0xa3,0xc8,0xc5,0x82,0xc8,0xca,0xc5,0x83,0xca,0xf0,0xa3,0xc8,0xc5, +0x82,0xc8,0xca,0xc5,0x83,0xca,0xdf,0xe9,0xde,0xe7,0x80,0xbe,0xc1,0x80,0x41,0xa, +0xe3,0x0, 0x41,0xc, 0xa7,0x0, 0x41,0xc, 0xa9,0x0, 0x41,0xc, 0xad,0x0, 0x41,0xc, +0xaa,0x0, 0x2, 0x12,0x0, 0x0, 0x41,0xc, 0xea,0x2, 0x41,0xc, 0xeb,0x0, 0x1, 0x16, +0x0, 0x41,0xc, 0xec,0x0, 0x1, 0x17,0x0, 0x0, 0xab,0x45,0xaa,0x46,0xa9,0x47,0x85, +0x4a,0x82,0x75,0x83,0x0, 0x22,0xab,0x5f,0xaa,0x60,0xa9,0x61,0x85,0x64,0x82,0x75, +0x83,0x0, 0x22,0xe5,0x49,0xab,0x45,0xaa,0x46,0xa9,0x47,0x22,0xe5,0x63,0xab,0x5f, +0xaa,0x60,0xa9,0x61,0x22,0xbd,0x77,0xb, 0xef,0xc3,0x94,0x6, 0x40,0x19,0x74,0xd, +0x2f,0xff,0x22,0xbd,0x78,0xb, 0xef,0xc3,0x94,0xb, 0x40,0xb, 0x74,0x8, 0x2f,0xff, +0x22,0xbd,0x79,0x1, 0x22,0x7f,0xff,0x22,0x10,0x10,0x10,0x1c,0x19,0x14,0x10,0xe, +0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x1, 0x2, 0x4, 0x8, 0x10,0x20,0x40,0x80,0x8b, +0x34,0x8a,0x35,0x89,0x36,0xe5,0x38,0xd3,0x94,0xb, 0x50,0x3b,0xed,0x94,0xf, 0x50, +0x36,0xe5,0x38,0xc3,0x94,0xb, 0x50,0x2f,0xe5,0x38,0x90,0xf, 0x48,0x93,0xff,0x24, +0x3, 0xab,0x34,0x20,0xe0,0x13,0xe5,0x36,0x24,0x10,0xf9,0xe4,0x35,0x35,0xfa,0xef, +0xf1,0x6b,0x54,0xf0,0xf1,0x58,0x4d,0x80,0xc, 0xf1,0x5c,0x54,0xf, 0xf1,0x58,0xff, +0xed,0xc4,0x54,0xf0,0x4f,0x31,0xc5,0x22,0x31,0xc5,0xab,0x34,0xe5,0x36,0x24,0x10, +0xf9,0xe4,0x35,0x35,0xfa,0xe5,0x38,0x90,0xf, 0x48,0x93,0x24,0x3, 0xff,0xe4,0x33, +0xa2,0xe7,0x13,0xfe,0xef,0x13,0x29,0xf9,0xea,0x3e,0xfa,0x21,0x4c,0x90,0x0, 0x41, +0x21,0x65,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x8b,0x42,0x8a,0x43,0x89,0x44,0xe4,0xf5,0x4a,0xe5,0x4a,0xc3,0x95,0x48,0x40,0x3, +0x2, 0xa, 0x56,0xab,0x42,0xaa,0x43,0xa9,0x44,0x12,0x6, 0xaf,0x12,0x1, 0x65,0xb4, +0x1c,0x0, 0x40,0x3, 0x2, 0xa, 0x51,0x90,0x8, 0x2e,0xf8,0x28,0x28,0x73,0x2, 0x8, +0x82,0x2, 0x8, 0x89,0x2, 0x8, 0x91,0x2, 0x8, 0x99,0x2, 0x8, 0xa1,0x2, 0x8, 0xa9, +0x2, 0x8, 0xb1,0x2, 0x8, 0xc7,0x2, 0x8, 0xdd,0x2, 0x8, 0xf3,0x2, 0x9, 0x9, 0x2, +0x9, 0x1f,0x2, 0x9, 0x42,0x2, 0x9, 0x65,0x2, 0x9, 0x88,0x2, 0x9, 0xab,0x2, 0x9, +0xc1,0x2, 0x9, 0xd7,0x2, 0x9, 0xed,0x2, 0xa, 0x3, 0x2, 0xa, 0x18,0x2, 0xa, 0x1f, +0x2, 0xa, 0x26,0x2, 0xa, 0x2d,0x2, 0xa, 0x34,0x2, 0xa, 0x3b,0x2, 0xa, 0x42,0x2, +0xa, 0x49,0x12,0x6, 0xa9,0xe4,0x2, 0xa, 0x4e,0x12,0x6, 0xa9,0x74,0x1, 0x2, 0xa, +0x4e,0x12,0x6, 0xa9,0x74,0x2, 0x2, 0xa, 0x4e,0x12,0x6, 0xa9,0x74,0x3, 0x2, 0xa, +0x4e,0x12,0x6, 0xa9,0x74,0x4, 0x2, 0xa, 0x4e,0x12,0x6, 0xa9,0x74,0x5, 0x2, 0xa, +0x4e,0x12,0x6, 0xc3,0xb4,0x77,0x8, 0x12,0x6, 0xaf,0x74,0x13,0x2, 0xa, 0x4e,0x12, +0x6, 0xaf,0x74,0x6, 0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x77,0x8, 0x12,0x6, 0xaf, +0x74,0x14,0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0x7, 0x2, 0xa, 0x4e,0x12,0x6, 0xc3, +0xb4,0x77,0x8, 0x12,0x6, 0xaf,0x74,0x15,0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0x8, +0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x77,0x8, 0x12,0x6, 0xaf,0x74,0x16,0x2, 0xa, +0x4e,0x12,0x6, 0xaf,0x74,0x9, 0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x77,0x8, 0x12, +0x6, 0xaf,0x74,0x17,0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0xa, 0x2, 0xa, 0x4e,0xe5, +0x49,0xb4,0x77,0x8, 0x12,0x6, 0xa9,0x74,0x18,0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4, +0x78,0x8, 0x12,0x6, 0xaf,0x74,0x13,0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0xb, 0x2, +0xa, 0x4e,0xe5,0x49,0xb4,0x77,0x8, 0x12,0x6, 0xa9,0x74,0x19,0x2, 0xa, 0x4e,0x12, +0x6, 0xc3,0xb4,0x78,0x8, 0x12,0x6, 0xaf,0x74,0x14,0x2, 0xa, 0x4e,0x12,0x6, 0xaf, +0x74,0xc, 0x2, 0xa, 0x4e,0xe5,0x49,0xb4,0x77,0x8, 0x12,0x6, 0xa9,0x74,0x1a,0x2, +0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x78,0x8, 0x12,0x6, 0xaf,0x74,0x15,0x2, 0xa, 0x4e, +0x12,0x6, 0xaf,0x74,0xd, 0x2, 0xa, 0x4e,0xe5,0x49,0xb4,0x77,0x8, 0x12,0x6, 0xa9, +0x74,0x1b,0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x78,0x8, 0x12,0x6, 0xaf,0x74,0x16, +0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0xe, 0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x78, +0x8, 0x12,0x6, 0xaf,0x74,0x17,0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0xf, 0x2, 0xa, +0x4e,0x12,0x6, 0xc3,0xb4,0x78,0x8, 0x12,0x6, 0xaf,0x74,0x18,0x2, 0xa, 0x4e,0x12, +0x6, 0xaf,0x74,0x10,0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x78,0x8, 0x12,0x6, 0xaf, +0x74,0x19,0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0x11,0x2, 0xa, 0x4e,0x12,0x6, 0xc3, +0xb4,0x78,0x8, 0x12,0x6, 0xaf,0x74,0x1a,0x2, 0xa, 0x4e,0x12,0x6, 0xaf,0x74,0x12, +0x2, 0xa, 0x4e,0x12,0x6, 0xc3,0xb4,0x78,0x8, 0x12,0x6, 0xaf,0x74,0x1b,0x2, 0xa, +0x4e,0x12,0x6, 0xaf,0x74,0x13,0x80,0x36,0x12,0x6, 0xa9,0x74,0x14,0x80,0x2f,0x12, +0x6, 0xa9,0x74,0x15,0x80,0x28,0x12,0x6, 0xa9,0x74,0x16,0x80,0x21,0x12,0x6, 0xa9, +0x74,0x17,0x80,0x1a,0x12,0x6, 0xa9,0x74,0x18,0x80,0x13,0x12,0x6, 0xa9,0x74,0x19, +0x80,0xc, 0x12,0x6, 0xa9,0x74,0x1a,0x80,0x5, 0x12,0x6, 0xa9,0x74,0x1b,0x12,0x1, +0xd7,0x5, 0x4a,0x2, 0x8, 0x9, 0x22,0x8b,0x5c,0x8a,0x5d,0x89,0x5e,0xe4,0xf5,0x64, +0xe5,0x64,0xc3,0x95,0x62,0x40,0x3, 0x2, 0xc, 0x53,0xab,0x5c,0xaa,0x5d,0xa9,0x5e, +0x12,0x6, 0xbc,0x12,0x1, 0x65,0xb4,0x10,0x0, 0x40,0x3, 0x2, 0xc, 0x4e,0x90,0xa, +0x85,0xf8,0x28,0x28,0x73,0x2, 0xa, 0xb5,0x2, 0xa, 0xcf,0x2, 0xa, 0xf2,0x2, 0xb, +0x15,0x2, 0xb, 0x38,0x2, 0xb, 0x5b,0x2, 0xb, 0x7e,0x2, 0xb, 0xa1,0x2, 0xb, 0xc4, +0x2, 0xb, 0xe7,0x2, 0xc, 0x9, 0x2, 0xc, 0x1d,0x2, 0xc, 0x31,0x2, 0xc, 0x38,0x2, +0xc, 0x3f,0x2, 0xc, 0x46,0xe5,0x63,0xb4,0x77,0x5, 0x12,0x6, 0xce,0x80,0x23,0x12, +0x6, 0xcc,0xb4,0x78,0x3, 0x2, 0xb, 0x30,0x12,0x6, 0xbc,0xe4,0x2, 0xc, 0x4b,0xe5, +0x63,0xb4,0x77,0x8, 0x12,0x6, 0xb6,0x74,0x5, 0x2, 0xc, 0x4b,0x12,0x6, 0xcc,0xb4, +0x78,0x8, 0x12,0x6, 0xbc,0x74,0x4, 0x2, 0xc, 0x4b,0x12,0x6, 0xbc,0x74,0x1, 0x2, +0xc, 0x4b,0xe5,0x63,0xb4,0x77,0x8, 0x12,0x6, 0xb6,0x74,0x6, 0x2, 0xc, 0x4b,0x12, +0x6, 0xcc,0xb4,0x78,0x8, 0x12,0x6, 0xbc,0x74,0x5, 0x2, 0xc, 0x4b,0x12,0x6, 0xbc, +0x74,0x2, 0x2, 0xc, 0x4b,0xe5,0x63,0xb4,0x77,0x8, 0x12,0x6, 0xb6,0x74,0x7, 0x2, +0xc, 0x4b,0x12,0x6, 0xcc,0xb4,0x78,0x8, 0x12,0x6, 0xbc,0x74,0x6, 0x2, 0xc, 0x4b, +0x12,0x6, 0xbc,0x74,0x3, 0x2, 0xc, 0x4b,0xe5,0x63,0xb4,0x77,0x8, 0x12,0x6, 0xb6, +0x74,0x8, 0x2, 0xc, 0x4b,0x12,0x6, 0xcc,0xb4,0x78,0x8, 0x12,0x6, 0xbc,0x74,0x7, +0x2, 0xc, 0x4b,0x12,0x6, 0xbc,0x74,0x4, 0x2, 0xc, 0x4b,0xe5,0x63,0xb4,0x77,0x8, +0x12,0x6, 0xb6,0x74,0x9, 0x2, 0xc, 0x4b,0x12,0x6, 0xcc,0xb4,0x78,0x8, 0x12,0x6, +0xbc,0x74,0x8, 0x2, 0xc, 0x4b,0x12,0x6, 0xbc,0x74,0x5, 0x2, 0xc, 0x4b,0xe5,0x63, +0xb4,0x77,0x8, 0x12,0x6, 0xb6,0x74,0xa, 0x2, 0xc, 0x4b,0x12,0x6, 0xcc,0xb4,0x78, +0x8, 0x12,0x6, 0xbc,0x74,0x9, 0x2, 0xc, 0x4b,0x12,0x6, 0xbc,0x74,0x6, 0x2, 0xc, +0x4b,0xe5,0x63,0xb4,0x77,0x8, 0x12,0x6, 0xb6,0x74,0xb, 0x2, 0xc, 0x4b,0x12,0x6, +0xcc,0xb4,0x78,0x8, 0x12,0x6, 0xbc,0x74,0xa, 0x2, 0xc, 0x4b,0x12,0x6, 0xbc,0x74, +0x7, 0x2, 0xc, 0x4b,0xe5,0x63,0xb4,0x77,0x8, 0x12,0x6, 0xb6,0x74,0xc, 0x2, 0xc, +0x4b,0x12,0x6, 0xcc,0xb4,0x78,0x8, 0x12,0x6, 0xbc,0x74,0xb, 0x2, 0xc, 0x4b,0x12, +0x6, 0xbc,0x74,0x8, 0x2, 0xc, 0x4b,0xe5,0x63,0xb4,0x77,0x8, 0x12,0x6, 0xb6,0x74, +0xd, 0x2, 0xc, 0x4b,0x12,0x6, 0xcc,0xb4,0x78,0x8, 0x12,0x6, 0xbc,0x74,0xc, 0x2, +0xc, 0x4b,0x12,0x6, 0xbc,0x74,0x9, 0x80,0x42,0x12,0x6, 0xcc,0xb4,0x78,0x7, 0x12, +0x6, 0xbc,0x74,0xd, 0x80,0x35,0x12,0x6, 0xbc,0x74,0xa, 0x80,0x2e,0x12,0x6, 0xcc, +0xb4,0x78,0x7, 0x12,0x6, 0xbc,0x74,0xe, 0x80,0x21,0x12,0x6, 0xbc,0x74,0xb, 0x80, +0x1a,0x12,0x6, 0xb6,0x74,0xc, 0x80,0x13,0x12,0x6, 0xb6,0x74,0xd, 0x80,0xc, 0x12, +0x6, 0xb6,0x74,0xe, 0x80,0x5, 0x12,0x6, 0xb6,0x74,0xf, 0x12,0x1, 0xd7,0x5, 0x64, +0x2, 0xa, 0x60,0x22,0xc0,0x0, 0xc0,0x3f,0xdf,0xbf,0xdf,0xbf,0xc0,0x1, 0xc0,0x82, +0xc1,0x2, 0xc1,0x1, 0xc0,0x3f,0xdf,0x3d,0xde,0x3c,0xde,0xbe,0xc0,0x2, 0xc1,0x85, +0xc2,0x85,0xc2,0x2, 0xc0,0x3e,0xde,0x3a,0xdd,0x3a,0xdd,0xbd,0xc0,0x3, 0xc2,0x87, +0xc4,0x7, 0xc3,0x3, 0xc0,0x3d,0xdd,0x38,0xdb,0xb7,0xdc,0xbc,0xc0,0x4, 0xc3,0x8a, +0xc5,0x8a,0xc4,0x4, 0xc0,0x3c,0xdc,0x35,0xda,0x35,0xdb,0xbb,0xc0,0x5, 0xc4,0x8c, +0xc6,0x8d,0xc5,0x5, 0xc0,0x3b,0xdb,0x32,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8e,0xc5,0x86,0xc0,0x3a,0xda,0xb2,0xd8,0xb2,0xda,0xba,0xc0,0x6, 0xc5,0x8e, +0xc7,0x8d,0xc5,0x5, 0xc0,0x3b,0xdb,0x34,0xd9,0xb4,0xdb,0xbb,0xc0,0x5, 0xc4,0x8b, +0xc6,0xb, 0xc4,0x4, 0xc0,0x3c,0xdc,0x36,0xdb,0x36,0xdc,0xbc,0xc0,0x4, 0xc3,0x89, +0xc4,0x88,0xc3,0x3, 0xc0,0x3d,0xdd,0x39,0xdc,0x39,0xdd,0xbd,0xc0,0x3, 0xc2,0x86, +0xc3,0x6, 0xc2,0x2, 0xc0,0x3e,0xde,0x3b,0xdd,0xbc,0xde,0xbe,0xc0,0x2, 0xc1,0x83, +0xc1,0x83,0xc1,0x1, 0xc0,0x3f,0xdf,0x3e,0xdf,0x3e,0xdf,0xbf,0xc0,0x0, 0xc0,0x81, +0xc0,0x80,0xc0,0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x0, 0x1, 0x0, 0x2, 0x0, 0x3, 0x0, +0x4, 0x1, 0x0, 0x1, 0x2, 0x1, 0x3, 0x1, 0x4, 0x2, 0x0, 0x2, 0x1, 0x2, 0x3, 0x2, +0x4, 0x3, 0x0, 0x3, 0x1, 0x3, 0x2, 0x3, 0x4, 0x4, 0x0, 0x4, 0x1, 0x4, 0x2, 0x4, +0x3, 0x0, 0x1, 0x2, 0x0, 0x1, 0x3, 0x0, 0x1, 0x4, 0x0, 0x2, 0x1, 0x0, 0x2, 0x3, +0x0, 0x2, 0x4, 0x0, 0x3, 0x1, 0x0, 0x3, 0x2, 0x0, 0x3, 0x4, 0x0, 0x4, 0x1, 0x0, +0x4, 0x2, 0x0, 0x4, 0x3, 0x1, 0x0, 0x2, 0x1, 0x0, 0x3, 0x1, 0x0, 0x4, 0x1, 0x2, +0x0, 0x1, 0x2, 0x3, 0x1, 0x2, 0x4, 0x1, 0x3, 0x0, 0x1, 0x3, 0x2, 0x1, 0x3, 0x4, +0x1, 0x4, 0x0, 0x1, 0x4, 0x2, 0x1, 0x4, 0x3, 0x2, 0x0, 0x1, 0x2, 0x0, 0x3, 0x2, +0x0, 0x4, 0x2, 0x1, 0x0, 0x2, 0x1, 0x3, 0x2, 0x1, 0x4, 0x2, 0x3, 0x0, 0x2, 0x3, +0x1, 0x2, 0x3, 0x4, 0x2, 0x4, 0x0, 0x2, 0x4, 0x1, 0x2, 0x4, 0x3, 0x3, 0x0, 0x1, +0x3, 0x0, 0x2, 0x3, 0x0, 0x4, 0x3, 0x1, 0x0, 0x3, 0x1, 0x2, 0x3, 0x1, 0x4, 0x3, +0x2, 0x0, 0x3, 0x2, 0x1, 0x3, 0x2, 0x4, 0x3, 0x4, 0x0, 0x3, 0x4, 0x1, 0x3, 0x4, +0x2, 0x4, 0x0, 0x1, 0x4, 0x0, 0x2, 0x4, 0x0, 0x3, 0x4, 0x1, 0x0, 0x4, 0x1, 0x2, +0x4, 0x1, 0x3, 0x4, 0x2, 0x0, 0x4, 0x2, 0x1, 0x4, 0x2, 0x3, 0x4, 0x3, 0x0, 0x4, +0x3, 0x1, 0x4, 0x3, 0x2, 0x12,0x11,0x10,0xf, 0xe, 0xd, 0xc, 0xb, 0xa, 0x9, 0x8, +0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, +0x2, 0x1, 0x0, 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, +0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x3c, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22,0x22,0x66,0x66,0x66, +0x66,0x66,0x66,0x66,0x66,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x12,0x0, 0x2, 0x3, 0x4, 0x6, 0x7, 0x8, 0xa, 0x0, 0x64,0x3, 0xfc,0x1, 0x18, +0x3, 0xfc,0x1, 0xd6,0x3, 0xfc,0x1, 0x5, 0x9, 0x7b,0x1, 0x7a,0xa, 0x79,0xeb,0x12, +0x16,0xf4,0x12,0x2f,0xf3,0xf5,0x31,0x12,0x67,0x32,0xf5,0x32,0x74,0x1, 0x12,0x66, +0xbf,0xe4,0x12,0x1, 0xd7,0xe4,0xf5,0x2e,0xab,0x22,0xe5,0x24,0x24,0x58,0x12,0x64, +0x8f,0xed,0xf0,0x5, 0x2e,0xe5,0x2e,0xb4,0xe, 0xee,0xe4,0xf5,0x30,0xf5,0x2e,0xf1, +0x1, 0xff,0xc3,0x95,0x30,0x40,0x2, 0x8f,0x30,0x5, 0x2e,0xe5,0x2e,0xb4,0x13,0xef, +0xe5,0x30,0xc3,0x94,0xf, 0x50,0x9, 0xc3,0x74,0xf, 0x95,0x30,0xf5,0x30,0x80,0x3, +0xe4,0xf5,0x30,0xe4,0xf5,0x2e,0xab,0x22,0xe5,0x24,0x24,0x66,0x12,0x64,0x8f,0xed, +0xf0,0x5, 0x2e,0xe5,0x2e,0xb4,0x8, 0xee,0x85,0x30,0x2f,0xaf,0x2f,0x15,0x2f,0xef, +0x70,0x2, 0x21,0x80,0x12,0x0, 0x1e,0x12,0x37,0xa9,0x12,0x4e,0x61,0x12,0x2f,0x61, +0x12,0x27,0x3b,0x85,0x28,0x4b,0x85,0x29,0x4c,0x85,0x2a,0x4d,0xd1,0xfa,0x12,0x2f, +0xf9,0x60,0xf0,0xe4,0xf5,0x2e,0xd1,0xfa,0x12,0x67,0x68,0x9f,0x50,0x49,0xe4,0xfd, +0xf1,0xbb,0xff,0xed,0xc3,0x9f,0x50,0x3b,0xe5,0x2e,0x70,0xb, 0xf1,0xb0,0xe4,0xf0, +0xed,0x31,0xcb,0xe4,0xf0,0xa3,0xf0,0xd1,0x49,0xe5,0x2e,0x12,0x65,0xad,0x75,0xf0, +0x2, 0xed,0x12,0x5, 0x40,0x12,0x2, 0xb7,0xae,0xf0,0x78,0x5, 0x12,0x58,0xf8,0xd8, +0xfb,0xff,0xed,0x31,0xcb,0xee,0x8f,0xf0,0x12,0x2, 0x60,0xf1,0xb0,0xe0,0x4, 0xf0, +0xd, 0x80,0xbd,0x5, 0x2e,0x80,0xaf,0xe4,0xf5,0x33,0xf5,0x2e,0xf1,0xbb,0xff,0xe5, +0x2e,0xc3,0x9f,0x40,0x2, 0x21,0x78,0x74,0x90,0x25,0x2e,0xf1,0xb3,0xe0,0xfd,0x70, +0x9, 0xe5,0x2e,0x31,0xcb,0x12,0x47,0x1f,0x80,0x3a,0xe5,0x2e,0x31,0xcb,0xc0,0x83, +0xc0,0x82,0xe0,0xfe,0xa3,0xe0,0xff,0x7c,0x0, 0x12,0x2, 0xb, 0xd0,0x82,0xd0,0x83, +0xee,0xf0,0xa3,0xef,0xf0,0xe5,0x2e,0x31,0xcb,0xc0,0x83,0xc0,0x82,0xe0,0xfe,0xa3, +0xe0,0x78,0x5, 0xc3,0x33,0xce,0x33,0xce,0xd8,0xf9,0xff,0xd0,0x82,0xd0,0x83,0xee, +0xf0,0xa3,0xef,0xf0,0xf1,0x15,0x90,0x0, 0x73,0xd1,0x93,0x90,0x0, 0xe, 0xf1,0xa5, +0xe5,0x2e,0x31,0xcb,0xf1,0xea,0x9e,0x50,0x10,0xf1,0x1, 0xc3,0x95,0x30,0x50,0x5, +0xf1,0x1, 0x4, 0x80,0x2a,0x5, 0x33,0x80,0x3b,0xf1,0x15,0x90,0x0, 0x73,0xd1,0x93, +0x90,0x0, 0xe, 0x12,0x2, 0xb7,0x2f,0xff,0xe5,0xf0,0x3e,0xfe,0xe5,0x2e,0x31,0xcb, +0xf1,0xf2,0x9e,0x40,0x1d,0xf1,0x1, 0xd3,0x94,0x0, 0x40,0x12,0xf1,0x1, 0x14,0xf0, +0x12,0x4e,0x61,0xf1,0x1, 0xfd,0x85,0x2e,0x38,0x12,0x7, 0xf, 0x80,0x6, 0x5, 0x33, +0x80,0x2, 0x5, 0x33,0x5, 0x2e,0x1, 0xbc,0xf1,0xbb,0x65,0x33,0x60,0x2, 0x1, 0x3b, +0xe4,0xf5,0x2e,0x12,0x64,0xc0,0xe0,0xc4,0x54,0xf0,0xfd,0x74,0x74,0x2f,0xf5,0x82, +0x74,0xa, 0x3e,0xf5,0x83,0xe0,0x54,0xf, 0x4d,0xff,0xab,0x22,0xe5,0x24,0x24,0x66, +0xf9,0xe4,0x35,0x23,0xfa,0xe5,0x2e,0x12,0x26,0x2b,0xef,0x12,0x1, 0xc5,0x5, 0x2e, +0xe5,0x2e,0xb4,0x8, 0xce,0xd1,0xfa,0xe5,0x31,0x12,0x66,0xbf,0xe5,0x32,0x12,0x1, +0xd7,0x7f,0x1, 0x22,0x12,0x4, 0xf2,0xe5,0x30,0x25,0xe0,0x25,0xe0,0x24,0x3c,0xf5, +0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0x12,0x20,0xed,0xe4,0x90,0xa, 0x50,0xf0,0x75, +0x2f,0x1, 0xf5,0x2b,0xd1,0xaf,0x74,0xff,0xf1,0xdc,0xd1,0xc0,0x74,0xff,0xf0,0xe5, +0x2b,0x31,0xcb,0x74,0xff,0xf0,0xa3,0xf0,0x74,0x4b,0x25,0x2b,0xd1,0xd0,0xe4,0xf0, +0x5, 0x2b,0xe5,0x2b,0xb4,0x5, 0xdd,0xd1,0x49,0x12,0x7, 0x7d,0x70,0x21,0x90,0x0, +0x42,0x12,0x1, 0x65,0x70,0x2, 0xa1,0xa0,0xe4,0xf5,0x2b,0xd1,0x49,0x90,0x0, 0x2d, +0xf1,0x8e,0xd1,0x49,0xf1,0x8b,0x5, 0x2b,0xe5,0x2b,0xb4,0x5, 0xee,0xa1,0xa0,0xd1, +0x49,0x90,0x0, 0x42,0x12,0x1, 0x65,0x70,0x39,0xf5,0x2b,0xd1,0x49,0x12,0x7, 0x7d, +0xff,0xe5,0x2b,0xc3,0x9f,0x40,0x2, 0xa1,0xa0,0x75,0xf0,0x7, 0xe5,0x2b,0xd1,0xe3, +0xd1,0x93,0xf1,0x9e,0xe5,0x2b,0xd1,0xa6,0x90,0x0, 0x2, 0x12,0x2, 0xb7,0xff,0xe5, +0x2b,0xd1,0x9a,0xf1,0xe2,0x74,0x4b,0x25,0x2b,0xd1,0xd0,0x74,0x1, 0xf0,0x5, 0x2b, +0x80,0xc9,0xe4,0xf5,0x2e,0xd1,0x49,0x12,0x7, 0x7d,0xff,0xb4,0x1, 0xb, 0xe4,0xf5, +0x38,0x75,0x37,0x1, 0x75,0x2f,0x5, 0x61,0x12,0xef,0xb4,0x2, 0xb, 0x75,0x38,0x5, +0x75,0x37,0x2, 0x75,0x2f,0x14,0x80,0x7a,0xef,0xb4,0x3, 0xb, 0x75,0x38,0x2d,0x75, +0x37,0x3, 0x75,0x2f,0x3c,0x80,0x6b,0xef,0xd3,0x94,0x3, 0x40,0x65,0xe4,0xf5,0x2b, +0xd1,0x49,0x12,0x7, 0x7d,0xff,0xe5,0x2b,0xc3,0x9f,0x50,0x56,0xe4,0xf5,0x2c,0xd1, +0x49,0x90,0x0, 0x37,0x75,0xf0,0x2, 0xe5,0x2c,0xf1,0xc7,0x12,0x65,0xdf,0xc0,0x6, +0xc0,0x7, 0xd1,0x49,0xf1,0x9e,0xe5,0x2c,0xd1,0x90,0x75,0xf0,0x7, 0xe5,0x2b,0xd1, +0xe3,0xf1,0xa5,0x12,0x0, 0x6, 0xd0,0xe0,0x2f,0xff,0xd0,0xe0,0x3e,0xfe,0xe5,0x2b, +0x31,0xcb,0xf1,0xf2,0x9e,0x40,0xe, 0xd1,0xc0,0xe5,0x2c,0xf0,0xe5,0x2b,0x31,0xcb, +0xee,0xf0,0xa3,0xef,0xf0,0x5, 0x2c,0xe5,0x2c,0xc3,0x94,0x5, 0x40,0xb1,0x5, 0x2b, +0x80,0x9e,0x74,0xff,0xf5,0x3c,0xf5,0x3b,0xf5,0x3a,0xf5,0x39,0xf5,0x2d,0xd1,0x49, +0x12,0x7, 0x7d,0xff,0xd3,0x94,0x0, 0x50,0x2, 0x81,0x1f,0xef,0x94,0x4, 0x40,0x2, +0x81,0x1f,0xe5,0x2e,0xc3,0x95,0x2f,0x40,0x2, 0x81,0x1f,0xe4,0xf5,0x40,0xf5,0x3f, +0xf5,0x3e,0xf5,0x3d,0xe5,0x37,0xf5,0x82,0x75,0x83,0x0, 0x85,0x2e,0xf0,0x12,0x65, +0x38,0xaf,0x82,0x12,0x1, 0x26,0xe4,0xf5,0x2b,0xd1,0x49,0x12,0x7, 0x7d,0xff,0xe5, +0x2b,0xc3,0x9f,0x40,0x2, 0x61,0xf6,0xd1,0xea,0x75,0xf0,0x2, 0xd1,0x90,0xbe,0x7f, +0x1d,0xbf,0xff,0x1a,0xe5,0x40,0x24,0xff,0xf5,0x40,0xe5,0x3f,0x34,0xff,0xf5,0x3f, +0xe5,0x3e,0x34,0xff,0xf5,0x3e,0xe5,0x3d,0x34,0x3, 0xf5,0x3d,0x80,0x64,0xd1,0x49, +0xd1,0xea,0x75,0xf0,0x2, 0xd1,0x90,0x75,0xf0,0x7, 0xe5,0x2b,0xd1,0xe3,0xf1,0xa5, +0x12,0x0, 0x6, 0x8e,0x30,0x8f,0x31,0xd1,0x49,0x90,0x0, 0x37,0xd1,0xed,0x75,0xf0, +0x2, 0xf1,0xc7,0x12,0x65,0xdf,0x8f,0x82,0x8e,0x83,0xe5,0x31,0xae,0x30,0x78,0x2, +0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0xf5,0x31,0x8e,0x30,0xe5,0x82,0xae,0x83,0x78, +0x2, 0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0xf5,0x82,0x8e,0x83,0xae,0x30,0xaf,0x31, +0xac,0x30,0xad,0x31,0x12,0x65,0x87,0xaf,0x82,0xae,0x83,0xad,0x82,0xac,0x83,0x12, +0x65,0x87,0x5, 0x2b,0x61,0x59,0xaf,0x40,0xae,0x3f,0xad,0x3e,0xac,0x3d,0xab,0x3c, +0xaa,0x3b,0xa9,0x3a,0xa8,0x39,0xd3,0x12,0x4, 0xbb,0x40,0xf, 0x85,0x40,0x3c,0x85, +0x3f,0x3b,0x85,0x3e,0x3a,0x85,0x3d,0x39,0x85,0x2e,0x2d,0x5, 0x2e,0x61,0x32,0xe5, +0x2d,0xf4,0x60,0x59,0xe5,0x37,0x85,0x2d,0xf0,0x12,0x65,0x38,0x7f,0x5, 0x12,0x1, +0x26,0xe4,0xf5,0x2b,0xd1,0x49,0x12,0x7, 0x7d,0xff,0xe5,0x2b,0xc3,0x9f,0x40,0x2, +0xa1,0x82,0xd1,0xed,0x24,0x4b,0xd1,0xd0,0x74,0x1, 0xf0,0x75,0xf0,0x7, 0xe5,0x2b, +0xd1,0xe3,0xd1,0x93,0xd1,0xea,0xd1,0xa3,0x90,0x0, 0x2, 0xd1,0x93,0xaa,0x29,0xa9, +0x2a,0x90,0x0, 0x37,0x74,0x32,0x25,0x2b,0x12,0x2a,0x94,0xee,0x8f,0xf0,0x12,0x3, +0x5b,0xd1,0xed,0xfd,0xd1,0xaf,0xed,0xf1,0xdc,0x5, 0x2b,0x80,0xb7,0xe4,0xf5,0x2b, +0xd1,0x49,0x12,0x7, 0x7d,0xff,0xe5,0x2b,0xc3,0x9f,0x40,0x2, 0xa1,0x2f,0x90,0xa, +0x50,0x74,0x1, 0xf0,0xe4,0xf5,0x2c,0xd1,0x49,0x12,0x7, 0x7d,0xff,0xe5,0x2c,0xc3, +0x9f,0x50,0x31,0xe5,0x2b,0x65,0x2c,0x60,0x27,0x74,0x46,0x25,0x2c,0xd1,0xc4,0xe0, +0xff,0xd1,0xc0,0xe0,0xb5,0x7, 0x19,0xe5,0x2c,0x31,0xcb,0xe0,0xfe,0xa3,0xe0,0xff, +0xe5,0x2b,0x31,0xcb,0xf1,0xea,0x9e,0x40,0x7, 0xe4,0x90,0xa, 0x50,0xf0,0x80,0x4, +0x5, 0x2c,0x80,0xc3,0x90,0xa, 0x50,0xe0,0x64,0x1, 0x70,0x4f,0xd1,0xc0,0xe0,0x24, +0x4b,0xd1,0xd0,0x74,0x1, 0xf0,0xd1,0xc0,0xe0,0xfd,0xd1,0xaf,0x90,0x0, 0x4, 0xed, +0x12,0x1, 0xd7,0xd1,0x49,0x75,0xf0,0x7, 0xe5,0x2b,0xd1,0xe3,0xd1,0x93,0xe9,0x24, +0x2d,0xf9,0xe4,0x3a,0xfa,0xd1,0xc0,0xe0,0x75,0xf0,0x2, 0xd1,0xe3,0xd1,0xa9,0x90, +0x0, 0x2, 0xd1,0x93,0xe5,0x2a,0x24,0x37,0xf9,0xe4,0x35,0x29,0xfa,0xd1,0xc0,0xe0, +0x75,0xf0,0x2, 0xd1,0xe3,0xee,0x8f,0xf0,0x12,0x3, 0x5b,0x5, 0x2b,0x81,0x80,0xe4, +0xf5,0x2b,0xd1,0x49,0x12,0x7, 0x7d,0xff,0xe5,0x2b,0xc3,0x9f,0x50,0x44,0xf1,0xd0, +0xfa,0x12,0x1f,0x9, 0xf4,0x70,0x37,0xf5,0x2c,0xd1,0xcc,0xe0,0x70,0x28,0xd1,0xcc, +0x74,0x1, 0xf0,0xd1,0x49,0x75,0xf0,0x7, 0xe5,0x2b,0xd1,0xe3,0xd1,0x93,0xf1,0x9e, +0xe5,0x2c,0xd1,0xa6,0x90,0x0, 0x2, 0x12,0x46,0x4d,0xd1,0x9a,0x90,0x0, 0x4, 0xe5, +0x2c,0x12,0x1, 0xd7,0x80,0x8, 0x5, 0x2c,0xe5,0x2c,0x64,0x5, 0x70,0xcb,0x5, 0x2b, +0x80,0xb0,0xe4,0xf5,0x2b,0x74,0x4b,0x25,0x2b,0xd1,0xd0,0xe0,0x70,0xb, 0xd1,0x49, +0x90,0x0, 0x2d,0xf1,0x8e,0xd1,0x49,0xf1,0x8b,0x5, 0x2b,0xe5,0x2b,0xb4,0x5, 0xe5, +0xd1,0x49,0x12,0x7, 0x7d,0xf5,0x2c,0xe4,0xf5,0x2b,0x74,0x4b,0x25,0x2b,0xd1,0xd0, +0xe0,0x64,0x1, 0x70,0x2e,0xab,0x28,0xe5,0x2a,0x24,0x28,0xf1,0x7c,0x12,0x1, 0x4c, +0xb4,0x1, 0x5, 0x74,0x3, 0x12,0x1, 0xc5,0x12,0x1, 0x4c,0xff,0xb4,0x3, 0xb, 0x12, +0x66,0xc9,0xe5,0x2b,0x12,0x26,0x2b,0xe4,0x80,0x32,0xef,0x70,0x32,0xf1,0x76,0x74, +0x2, 0x80,0x29,0xab,0x28,0xe5,0x2a,0x24,0x28,0xf1,0x7c,0x12,0x1, 0x4c,0xff,0x64, +0x2, 0x60,0x3, 0xef,0x70,0x12,0xf1,0x76,0x74,0x1, 0x12,0x1, 0xc5,0xaf,0x2c,0x5, +0x2c,0xef,0xd1,0xb1,0xf1,0xe2,0x80,0x7, 0xf1,0x76,0x74,0x3, 0x12,0x1, 0xc5,0x12, +0x66,0xc9,0xaf,0x2b,0x7e,0x0, 0x12,0x58,0xf1,0x12,0x1, 0x4c,0xfd,0xe5,0x2a,0x24, +0x28,0x12,0x58,0xec,0xed,0x12,0x1, 0xc5,0x5, 0x2b,0xe5,0x2b,0x64,0x5, 0x60,0x2, +0xa1,0xaa,0x22,0xef,0x25,0xe0,0xff,0xee,0x33,0xfe,0xe5,0x40,0x2f,0xf5,0x82,0xe5, +0x3f,0x3e,0xf5,0x83,0xe0,0xfe,0xa3,0xe0,0xff,0xab,0x28,0xaa,0x29,0xa9,0x2a,0x22, +0xc3,0xee,0x94,0x0, 0x40,0x2, 0x80,0x3, 0xe4,0xfe,0xff,0x7d,0xc6,0x12,0x65,0xf, +0xe4,0x7f,0x1c,0x7e,0x2, 0x12,0x66,0x7f,0x40,0xb, 0xe4,0x75,0x35,0x1b,0x75,0x34, +0x2, 0xf5,0x33,0xf5,0x32,0xae,0x34,0xaf,0x35,0x22,0xab,0x22,0xaa,0x23,0xa9,0x24, +0x90,0x3, 0x80,0x75,0xf0,0x20,0xe5,0x29,0x12,0x5, 0x40,0x75,0xf0,0x2, 0xe5,0x28, +0x12,0x5, 0x40,0x12,0x2, 0xb7,0xff,0xae,0xf0,0x22,0xae,0xf0,0xaa,0x29,0xa9,0x2a, +0x90,0x0, 0x37,0x75,0xf0,0x2, 0x12,0x5, 0x40,0xee,0x8f,0xf0,0x12,0x3, 0x5b,0xe5, +0x2b,0x75,0xf0,0x7, 0xa4,0xab,0x28,0x25,0x2a,0xf9,0xe5,0x29,0x35,0xf0,0xfa,0x22, +0x74,0x46,0x25,0x2b,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0x74,0x4b,0x25,0x2c, +0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0xab,0x2b,0xaa,0x2c,0xa9,0x2d,0x75,0xf0, +0x2, 0xe5,0x30,0xa4,0xf5,0x82,0x85,0xf0,0x83,0x22,0x90,0x0, 0x2d,0x74,0x32,0x25, +0x2b,0xf8,0xe6,0x22,0x8b,0x22,0x8a,0x23,0x89,0x24,0xab,0x25,0xaa,0x26,0xa9,0x27, +0x22,0x74,0x74,0x25,0x2e,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0xe0,0x22,0x7e,0x0, +0x7f,0x23,0x12,0x1, 0x26,0xab,0x22,0xaa,0x23,0xa9,0x24,0x22,0xd1,0xf4,0x12,0x4e, +0x82,0xf1,0x15,0x90,0x0, 0x41,0x12,0x1, 0xd7,0xab,0x25,0xe5,0x27,0x24,0xa, 0xf9, +0xe4,0x35,0x26,0xfa,0xa8,0x24,0xac,0x23,0xad,0x22,0xf1,0xe, 0x31,0xd7,0xf1,0x15, +0x90,0x0, 0x43,0x12,0x5, 0x6c,0x8b,0x2b,0x8a,0x2c,0x89,0x2d,0xf1,0x15,0x12,0x1c, +0xb1,0xe5,0x27,0x24,0xa, 0xf9,0xe4,0x35,0x26,0xa8,0x1, 0xfc,0xad,0x25,0xf1,0x15, +0xf1,0xe, 0x12,0x7, 0x7d,0x90,0x0, 0x42,0x12,0x1, 0xd7,0x12,0x7, 0x7d,0xd1,0xfa, +0x90,0x0, 0x2d,0x2, 0x1, 0xd7,0xab,0x28,0xe5,0x2a,0x24,0x23,0xf9,0xe4,0x35,0x29, +0xfa,0x7e,0x0, 0xe9,0x25,0x2b,0xf9,0xee,0x3a,0xfa,0x22,0x90,0x0, 0x37,0x75,0xf0, +0x2, 0xe5,0x2b,0x12,0x5, 0x40,0x74,0x7f,0x75,0xf0,0xff,0x2, 0x3, 0x5b,0x90,0x0, +0x2d,0x75,0xf0,0x2, 0x22,0x12,0x2, 0xb7,0xc3,0x9f,0xff,0xe5,0xf0,0x9e,0xfe,0x22, +0x74,0x90,0x2d,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0xab,0x25,0xaa,0x26,0xa9, +0x27,0x90,0x0, 0x1, 0x2, 0x1, 0x65,0x12,0x5, 0x40,0x12,0x2, 0xb7,0xfd,0xac,0xf0, +0xe5,0x2b,0x75,0xf0,0x7, 0xa4,0x29,0xf9,0xea,0x35,0xf0,0x22,0x90,0x0, 0x4, 0x2, +0x1, 0xd7,0x90,0x0, 0x4, 0xe5,0x2b,0x2, 0x1, 0xd7,0xe0,0xfc,0xa3,0xe0,0xc3,0x9f, +0xec,0x22,0xe0,0xfc,0xa3,0xe0,0xd3,0x9f,0xec,0x22,0xe5,0x92,0x60,0x4, 0xd2,0xae, +0xd2,0xbe,0x22,0xc3,0xee,0x94,0x0, 0x40,0x2, 0x80,0x3, 0xe4,0xfe,0xff,0x7d,0xd6, +0x12,0x65,0xf, 0xe4,0x7f,0xc0,0x7e,0x3, 0x12,0x66,0x7f,0x40,0xb, 0xe4,0x75,0x35, +0xbf,0x75,0x34,0x3, 0xf5,0x33,0xf5,0x32,0xae,0x34,0xaf,0x35,0x22,0x12,0x3f,0x4d, +0x12,0x16,0x49,0xf1,0xf7,0xf5,0x30,0xf1,0xaa,0xf5,0x31,0xe4,0xf5,0x2d,0xf1,0x35, +0x91,0x6a,0x12,0x11,0xcd,0x74,0x7f,0xf0,0xa3,0x91,0x6a,0x24,0x3e,0xf5,0x82,0xe4, +0x34,0xa, 0xf5,0x83,0x74,0x7f,0xf0,0xa3,0x74,0xff,0xf0,0x5, 0x2d,0xe5,0x2d,0xb4, +0x5, 0xdc,0xe5,0x30,0x70,0x31,0xe5,0x31,0xd3,0x94,0x0, 0x50,0x2, 0x81,0x52,0xe4, +0xf5,0x2e,0xe5,0x2e,0x12,0x16,0xb1,0x90,0x0, 0x2a,0x74,0xff,0x12,0x1, 0xd7,0x5, +0x2e,0xe5,0x2e,0xb4,0x5, 0xec,0xf1,0x89,0x44,0x4, 0x12,0x1, 0xc5,0x54,0xf7,0x12, +0x1, 0xc5,0x54,0xdf,0x2, 0x1, 0xc5,0xe4,0xf5,0x2e,0xe5,0x2e,0xc3,0x95,0x30,0x50, +0x2c,0xe5,0x2e,0x75,0xf0,0x7, 0xa4,0xfd,0xac,0xf0,0xab,0x22,0x25,0x24,0xf9,0xe5, +0x23,0x3c,0xfa,0xe9,0x24,0xa, 0x12,0x65,0x6e,0xab,0x22,0xe5,0x24,0x2d,0xf9,0xe5, +0x23,0x3c,0xfa,0xe9,0x24,0xc, 0x12,0x65,0x6e,0x5, 0x2e,0x80,0xcd,0xe5,0x31,0x70, +0x7, 0xf1,0x89,0x44,0x10,0x12,0x1, 0xc5,0xe4,0xf5,0x2d,0xf5,0x2e,0xe4,0xf5,0x2f, +0xe5,0x2f,0xc3,0x95,0x30,0x50,0x38,0x91,0x59,0xf1,0x15,0xe5,0x2e,0x12,0x16,0xb1, +0xf1,0xf, 0xff,0x6d,0x70,0x25,0xef,0xf4,0x60,0x21,0xf1,0x2e,0xef,0xf0,0x90,0x0, +0x26,0x12,0x16,0x93,0x91,0x6d,0x12,0x11,0xcd,0xee,0xf0,0xa3,0xef,0xf0,0x90,0x0, +0x28,0x12,0x16,0x93,0x91,0x6d,0x12,0x66,0x16,0x80,0x4, 0x5, 0x2f,0x80,0xc1,0x5, +0x2e,0xe5,0x2e,0x64,0x5, 0x70,0xb6,0xe4,0xf5,0x2e,0x85,0x30,0x2f,0xe5,0x2f,0xc3, +0x94,0x5, 0x50,0x38,0x91,0x59,0xf1,0x15,0xe5,0x2e,0x12,0x16,0xb1,0xf1,0xf, 0xff, +0x6d,0x70,0x25,0xef,0xf4,0x60,0x21,0xf1,0x2e,0xef,0xf0,0x90,0x0, 0x26,0x12,0x16, +0x93,0x91,0x6d,0x12,0x11,0xcd,0xee,0xf0,0xa3,0xef,0xf0,0x90,0x0, 0x28,0x12,0x16, +0x93,0x91,0x6d,0x12,0x66,0x16,0x80,0x4, 0x5, 0x2f,0x80,0xc1,0x5, 0x2e,0xe5,0x2e, +0x64,0x5, 0x70,0xb6,0xe4,0xf5,0x2f,0xe4,0xf5,0x2e,0xe5,0x2e,0xc3,0x95,0x2d,0x50, +0x15,0x91,0x59,0x90,0x0, 0xe, 0x12,0x1, 0x65,0xff,0xe5,0x2e,0xf1,0x37,0xe0,0x6f, +0x60,0x4, 0x5, 0x2e,0x80,0xe4,0xe5,0x2e,0x65,0x2d,0x70,0x1e,0xf1,0xcd,0xe5,0x2f, +0x12,0x17,0xd2,0xfa,0xc0,0x1, 0x91,0x6d,0x24,0x3c,0xf9,0x74,0xa, 0x35,0xf0,0xa8, +0x1, 0xfc,0x7d,0x1, 0xd0,0x1, 0xf1,0x5d,0x5, 0x2d,0x5, 0x2f,0xe5,0x2f,0x64,0x5, +0x70,0xb5,0xe5,0x2a,0x24,0x26,0xf9,0xe4,0x35,0x29,0x7f,0x23,0xf1,0xe7,0xe5,0x31, +0x70,0x20,0xf1,0xcd,0xc0,0x2, 0xc0,0x1, 0xe5,0x2a,0x24,0x26,0xf9,0xe4,0x35,0x29, +0xa8,0x1, 0xfc,0xad,0x28,0xd0,0x1, 0xd0,0x2, 0x7e,0x0, 0x7f,0x23,0x12,0x1, 0x26, +0x61,0x91,0x12,0x16,0x49,0x12,0x3f,0xa, 0x13,0x13,0x13,0x54,0x1f,0x30,0xe0,0x2, +0x61,0x91,0xe4,0xf5,0x2f,0xe5,0x2f,0xc3,0x95,0x30,0x40,0x2, 0x61,0x91,0xe4,0xf5, +0x2e,0x91,0x59,0xf1,0x15,0xe5,0x2e,0x12,0x16,0xb1,0xf1,0xf, 0x6d,0x60,0x7, 0x5, +0x2e,0xe5,0x2e,0xb4,0x5, 0xeb,0x91,0x59,0x90,0x0, 0xc, 0x12,0x16,0x93,0xc0,0x6, +0xc0,0x7, 0xe5,0x2e,0x12,0x16,0xb1,0x90,0x0, 0x28,0x91,0x77,0xd0,0x7, 0xd0,0x6, +0xf1,0x1d,0xc0,0x6, 0xc0,0x7, 0x91,0x59,0x90,0x0, 0xa, 0x12,0x16,0x93,0xc0,0x6, +0xc0,0x7, 0xe5,0x2e,0x12,0x16,0xb1,0x90,0x0, 0x26,0x91,0x77,0xd0,0x7, 0xd0,0x6, +0xf1,0x1d,0xd0,0xe0,0x2f,0xf5,0x2c,0xd0,0xe0,0x3e,0xf5,0x2b,0x12,0x16,0xfa,0x91, +0x74,0xae,0x4, 0x78,0x3, 0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0xf1,0x6b,0x50,0x5, +0x75,0x2d,0x4, 0x80,0x37,0xed,0xae,0x4, 0x78,0x2, 0xce,0xc3,0x13,0xce,0x13,0xd8, +0xf9,0xf1,0x6b,0x50,0x5, 0x75,0x2d,0x3, 0x80,0x22,0x91,0x74,0xec,0xc3,0x13,0xfe, +0xed,0x13,0xf1,0x6b,0x50,0x5, 0x75,0x2d,0x2, 0x80,0x11,0xc3,0xe5,0x2c,0x9d,0xe5, +0x2b,0x9c,0x50,0x5, 0x75,0x2d,0x1, 0x80,0x3, 0xe4,0xf5,0x2d,0x91,0x59,0x90,0x0, +0xc, 0x12,0x16,0x93,0xbe,0x4b,0x6, 0xbf,0xf0,0x3, 0xe4,0xf5,0x2d,0xe5,0x2e,0x12, +0x16,0xb1,0x90,0x0, 0x28,0x12,0x16,0x93,0xbe,0x4b,0x6, 0xbf,0xf0,0x3, 0xe4,0xf5, +0x2d,0x91,0x59,0x90,0x0, 0xa, 0x12,0x16,0x93,0xc0,0x6, 0xc0,0x7, 0xe5,0x2e,0x12, +0x16,0xb1,0x90,0x0, 0x26,0x91,0x77,0xd0,0x7, 0xd0,0x6, 0xf1,0x7d,0x80,0x5, 0xce, +0xc3,0x13,0xce,0x13,0xd8,0xf9,0xf5,0x2c,0x8e,0x2b,0xe5,0x2e,0x12,0x16,0xb1,0x90, +0x0, 0x26,0x91,0x53,0x90,0x0, 0xa, 0xf1,0xd9,0x40,0x10,0x12,0x16,0xb4,0x90,0x0, +0x26,0xe5,0x2b,0x85,0x2c,0xf0,0x12,0x2, 0xef,0x80,0xc, 0x12,0x16,0xb4,0xe9,0x24, +0x26,0x12,0x65,0xfb,0x12,0x3, 0x3c,0x91,0x59,0x90,0x0, 0xc, 0x12,0x16,0x93,0xc0, +0x6, 0xc0,0x7, 0xe5,0x2e,0x12,0x16,0xb1,0x90,0x0, 0x28,0x91,0x77,0xd0,0x7, 0xd0, +0x6, 0xf1,0x7d,0x80,0x5, 0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0xf5,0x2c,0x8e,0x2b, +0xe5,0x2e,0x12,0x16,0xb1,0x90,0x0, 0x28,0x91,0x53,0x90,0x0, 0xc, 0xf1,0xd9,0x40, +0x10,0x12,0x16,0xb4,0x90,0x0, 0x28,0xe5,0x2b,0x85,0x2c,0xf0,0x12,0x2, 0xef,0x80, +0xc, 0x12,0x16,0xb4,0xe9,0x24,0x28,0x12,0x65,0xfb,0x12,0x3, 0x3c,0x5, 0x2f,0x41, +0x5, 0xe4,0xf5,0x2f,0xe5,0x2f,0x12,0x16,0xb1,0x90,0x0, 0x26,0x12,0x2, 0xb7,0x90, +0x0, 0xa, 0x91,0x7e,0x90,0x0, 0x28,0x12,0x2, 0xb7,0x90,0x0, 0xc, 0x91,0x7e,0xf1, +0xf, 0xfd,0xf1,0x9f,0x90,0x0, 0xe, 0xed,0x12,0x1, 0xd7,0x5, 0x2f,0xe5,0x2f,0x64, +0x5, 0x70,0xd1,0xf1,0x89,0x44,0x1, 0x12,0x1, 0xc5,0xe5,0x30,0xd3,0x94,0x0, 0x50, +0x2, 0x81,0x52,0xe4,0xf5,0x2f,0x91,0x59,0x90,0x0, 0xc, 0x12,0x2, 0xb7,0xd3,0x94, +0x7f,0xe5,0xf0,0x94,0x4, 0x50,0x39,0x90,0x0, 0xa, 0x12,0x16,0x93,0x12,0x16,0x50, +0xac,0x6, 0xad,0x7, 0xe5,0x2f,0x75,0xf0,0x7, 0xa4,0xff,0xae,0xf0,0xab,0x28,0x25, +0x2a,0xf9,0xe5,0x29,0x3e,0xfa,0xec,0xf1,0x97,0x90,0x0, 0xc, 0x12,0x16,0x93,0x11, +0x3, 0xac,0x6, 0xad,0x7, 0xe5,0x2f,0x12,0x16,0xb1,0x90,0x0, 0x5, 0xec,0x80,0x1e, +0x12,0x65,0xcc,0x90,0x0, 0xa, 0x12,0x2, 0xb7,0xfd,0x91,0xa6,0xe5,0xf0,0xf1,0x97, +0x90,0x0, 0xc, 0x12,0x2, 0xb7,0xfd,0x91,0xa6,0x90,0x0, 0x5, 0xe5,0xf0,0x8d,0xf0, +0x12,0x3, 0x5b,0x12,0x65,0xcc,0xf1,0x15,0x91,0xa6,0xed,0x12,0x46,0xe2,0xf1,0xb0, +0x40,0x84,0x22,0x12,0x2, 0xb7,0xfd,0xac,0xf0,0xe5,0x2f,0x75,0xf0,0x7, 0xa4,0xab, +0x22,0x25,0x24,0xf9,0xe5,0x23,0x35,0xf0,0xfa,0x22,0x74,0xff,0xf0,0xe5,0x2d,0x75, +0xf0,0x7, 0xa4,0x22,0x90,0x0, 0x1, 0x12,0x2, 0xb7,0xfd,0xac,0xf0,0x22,0xff,0xe5, +0xf0,0xc4,0xf8,0x54,0xf0,0xc8,0x68,0xfc,0xef,0xc4,0x54,0xf, 0x48,0xfd,0xe5,0x2f, +0x75,0xf0,0x7, 0xa4,0xff,0xae,0xf0,0xab,0x22,0x25,0x24,0xf9,0xe5,0x23,0x3e,0xfa, +0xec,0x8d,0xf0,0x12,0x3, 0x5b,0xab,0x28,0xe5,0x2a,0x2f,0xf9,0xe5,0x29,0x3e,0xfa, +0x22,0x12,0x20,0xed,0xe4,0xf5,0x30,0xf5,0x31,0x12,0x7, 0x7d,0xf5,0x32,0x70,0x43, +0xf5,0x2e,0xe5,0x2e,0xfd,0x33,0x95,0xe0,0xfc,0x12,0x46,0xf7,0x74,0xcf,0x2f,0xf5, +0x82,0x74,0xa, 0x12,0x67,0x60,0x90,0xa, 0xb0,0x75,0xf0,0x7, 0xed,0x12,0x5, 0x40, +0xec,0x75,0xf0,0x7, 0xa4,0x25,0x83,0xf5,0x83,0x74,0xff,0xf0,0xf1,0x64,0xfe,0x74, +0xd9,0x2f,0xf5,0x82,0x74,0xa, 0x3e,0xf5,0x83,0x74,0x2, 0xf0,0x5, 0x2e,0xe5,0x2e, +0xb4,0x5, 0xbf,0xe4,0xf5,0x2e,0x12,0x16,0x49,0x12,0x7, 0x7d,0xfd,0xf1,0x64,0xfe, +0xc3,0xef,0x9d,0x74,0x80,0xf8,0x6e,0x98,0x40,0x2, 0xc1,0xc4,0xd1,0xf2,0x12,0x37, +0x3a,0xf1,0x9, 0xff,0xf4,0x70,0x2, 0xc1,0xc0,0x12,0x58,0xe6,0x12,0x1, 0x4c,0x60, +0x6, 0x64,0x2, 0x60,0x2, 0xc1,0xc0,0xe4,0xf5,0x2f,0xd1,0xeb,0x91,0xa6,0xf1,0x9, +0xff,0xd1,0xdf,0x34,0xa, 0xf5,0x83,0xe0,0x6f,0x60,0x2, 0xc1,0xba,0x90,0x0, 0x2, +0x12,0x16,0x93,0xe5,0x2f,0x75,0xf0,0x7, 0xa4,0x24,0xae,0xf5,0x82,0xe4,0x34,0xa, +0xf1,0x56,0xf1,0x74,0x12,0x0, 0x6, 0xc0,0x6, 0xc0,0x7, 0x12,0x16,0x49,0xf1,0x64, +0x8f,0x82,0xf5,0x83,0x74,0x7, 0x12,0x5, 0x2f,0x12,0x16,0x93,0xe5,0x2f,0x75,0xf0, +0x7, 0xa4,0x24,0xac,0xf5,0x82,0xe4,0x34,0xa, 0xf1,0x56,0xf1,0x74,0x12,0x0, 0x6, +0xd0,0xe0,0x2f,0xf5,0x31,0xd0,0xe0,0x3e,0xf5,0x30,0xd1,0xdf,0x34,0xa, 0xf5,0x83, +0xe0,0xff,0xf1,0xc2,0xd3,0x94,0x0, 0x40,0x12,0xef,0xd1,0xff,0xf1,0xb8,0xd1,0xdf, +0x34,0xa, 0xf5,0x83,0xe0,0xf1,0xc2,0x14,0xf0,0xc1,0xc0,0xd1,0xdf,0xd1,0xf9,0xf1, +0x56,0xfd,0xd3,0x94,0x64,0xec,0x94,0x0, 0x40,0xd, 0xd3,0xe5,0x31,0x94,0x64,0xe5, +0x30,0x94,0x0, 0x40,0x2, 0x80,0x1e,0xed,0x24,0x32,0xff,0xe4,0x3c,0xfe,0xd3,0xe5, +0x31,0x9f,0xe5,0x30,0x9e,0x40,0x11,0xd1,0xdf,0xd1,0xf9,0xf1,0x56,0xd3,0x94,0x32, +0xec,0x94,0x0, 0x40,0x3, 0xef,0xc1,0xb4,0xd1,0xdf,0x34,0xa, 0xf5,0x83,0xe0,0xfd, +0xd1,0xff,0xf5,0x83,0xa3,0xe0,0xc4,0xf8,0x54,0xf, 0xc8,0x68,0xff,0x5, 0x82,0xd5, +0x82,0x2, 0x15,0x83,0x15,0x82,0xe0,0xc4,0x54,0xf0,0x48,0xfe,0xc3,0xe5,0x31,0x9f, +0xe5,0x30,0x9e,0x50,0x3, 0xed,0xc1,0xb4,0x12,0x4e,0x61,0x90,0x0, 0x4, 0x12,0x2, +0xb7,0xff,0xd3,0xe5,0x31,0x9f,0xe5,0x30,0x95,0xf0,0x40,0x71,0xd1,0xeb,0x91,0xa6, +0xf1,0x9, 0xff,0x12,0x58,0xe6,0x12,0x1, 0x4c,0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74, +0x1, 0x12,0x1, 0xc5,0xd1,0xeb,0x91,0xa6,0xf1,0x9, 0xfd,0xe5,0x2a,0x24,0x28,0xf9, +0xe4,0x35,0x29,0x12,0x59,0x71,0x91,0xa6,0x78,0x3c,0x7c,0xa, 0x7d,0x1, 0xf1,0x5d, +0xe5,0x32,0xd3,0x94,0x0, 0x40,0x36,0x15,0x32,0xe5,0x32,0x12,0x16,0xb1,0xc0,0x3, +0xc0,0x2, 0xc0,0x1, 0xd1,0xeb,0xe5,0x2a,0x2f,0xf9,0xe5,0x29,0x3e,0xa8,0x1, 0xfc, +0xad,0x3, 0xd0,0x1, 0xd0,0x2, 0xd0,0x3, 0xf1,0x5d,0xe5,0x32,0x75,0xf0,0x7, 0xa4, +0x25,0x2a,0xf9,0xe5,0x29,0x35,0xf0,0x7f,0x7, 0xf1,0xe7,0x15,0x2e,0xd1,0xdf,0x34, +0xa, 0xf5,0x83,0xe0,0xd1,0xff,0xf1,0xb8,0x80,0x6, 0xf1,0xb0,0x50,0x2, 0xa1,0x3a, +0x5, 0x2e,0xa1,0x6, 0x12,0x16,0x49,0x90,0x0, 0x41,0xe5,0x32,0x12,0x1, 0xd7,0x78, +0xac,0x7c,0xa, 0x7d,0x1, 0x12,0x16,0x49,0x7e,0x0, 0x7f,0x23,0x2, 0x1, 0x26,0xe5, +0x2f,0x75,0xf0,0x7, 0xa4,0x24,0xb0,0xf5,0x82,0xe4,0x22,0xaf,0x2e,0xef,0x33,0x95, +0xe0,0xfe,0x7c,0x0, 0x7d,0x7, 0x2, 0x1, 0xf9,0x34,0xa, 0xf5,0x83,0xe0,0xff,0x25, +0xe0,0x24,0xcf,0xf5,0x82,0xe4,0x34,0xa, 0x22,0x90,0x0, 0x4, 0x2, 0x1, 0x65,0x90, +0x0, 0x2a,0x2, 0x1, 0x65,0x90,0x0, 0xe, 0x12,0x1, 0x65,0xfd,0x22,0xd3,0xef,0x9d, +0xee,0x9c,0x40,0x2, 0x80,0x50,0xc3,0xed,0x9f,0xff,0xec,0x9e,0xfe,0x22,0x90,0x0, +0x2a,0x12,0x1, 0x65,0xff,0xe5,0x2d,0x75,0xf0,0x7, 0xa4,0x24,0x40,0xf5,0x82,0xe4, +0x34,0xa, 0xf5,0x83,0x22,0xe5,0x2e,0x25,0xe0,0xff,0xe5,0x2d,0x33,0xfe,0xe5,0x32, +0x2f,0xf5,0x82,0xe5,0x31,0x3e,0xf5,0x83,0xe0,0xfc,0xa3,0xe0,0x22,0x7e,0x0, 0x7f, +0x7, 0x2, 0x1, 0x26,0xaf,0x2e,0xef,0x33,0x95,0xe0,0x22,0xff,0xc3,0xe5,0x2c,0x9f, +0xe5,0x2b,0x9e,0x22,0xfd,0xc3,0xef,0x9d,0xff,0xee,0x9c,0xfe,0x22,0xf1,0x1d,0x8e, +0x2b,0x8f,0x2c,0xe5,0x2c,0xa8,0x2d,0x8, 0x22,0xab,0x28,0xe5,0x2a,0x24,0x4f,0xf9, +0xe4,0x35,0x29,0xfa,0x2, 0x1, 0x4c,0x90,0x0, 0x3, 0x8d,0xf0,0x12,0x3, 0x5b,0xab, +0x22,0xe5,0x24,0x2f,0xf9,0xe5,0x23,0x3e,0xfa,0x22,0x90,0x0, 0x4c,0x2, 0x1, 0x65, +0x5, 0x2f,0xe5,0x2f,0xc3,0x94,0x5, 0x22,0xf5,0x83,0xe5,0x30,0xf0,0xa3,0xe5,0x31, +0xf0,0x22,0x24,0xd9,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0xe0,0x22,0xab,0x22,0xe5, +0x24,0x24,0xa, 0xf9,0xe4,0x35,0x23,0xfa,0x22,0x12,0x2, 0xb7,0xd3,0x9d,0xe5,0xf0, +0x9c,0xe5,0x2e,0x75,0xf0,0x7, 0x22,0xa8,0x1, 0xfc,0xad,0x28,0x7b,0x1, 0x7a,0xa, +0x79,0x3c,0x7e,0x0, 0x2, 0x1, 0x26,0x90,0x0, 0x4b,0x2, 0x1, 0x65,0x8e,0x26,0x8f, +0x27,0x11,0xed,0xc3,0xe5,0x26,0x94,0x0, 0x50,0x5, 0xe4,0xf5,0x26,0xf5,0x27,0xc3, +0xec,0x94,0x0, 0x50,0x3, 0xe4,0xfc,0xfd,0xd3,0xe5,0x27,0x94,0x3f,0xe5,0x26,0x94, +0x0, 0x50,0x12,0xe5,0x27,0x25,0xe0,0xff,0xe5,0x26,0x11,0xd5,0x50,0x39,0xe4,0xf5, +0x2b,0xf5,0x2c,0x80,0x32,0xc3,0xe5,0x27,0x94,0x80,0xe5,0x26,0x94,0x2, 0x40,0x2d, +0xe5,0x27,0x24,0x80,0xff,0xe5,0x26,0x34,0xfd,0xfe,0xe5,0x27,0x2f,0xf5,0x2c,0xe5, +0x26,0x3e,0xf5,0x2b,0xd3,0xe5,0x2c,0x94,0xbd,0xe5,0x2b,0x64,0x80,0x94,0x82,0x40, +0x6, 0x75,0x2b,0x2, 0x75,0x2c,0xbf,0x85,0x2b,0x26,0x85,0x2c,0x27,0xd3,0xed,0x94, +0x3f,0xec,0x94,0x0, 0x50,0x10,0xed,0x25,0xe0,0xff,0xec,0x11,0xd5,0x50,0x32,0xe4, +0xf5,0x2b,0xf5,0x2c,0x80,0x2b,0xc3,0xed,0x94,0x40,0xec,0x94,0x4, 0x40,0x26,0xed, +0x24,0xc0,0xff,0xec,0x34,0xfb,0xcf,0x2d,0xf5,0x2c,0xef,0x3c,0xf5,0x2b,0xd3,0xe5, +0x2c,0x94,0x7d,0xe5,0x2b,0x64,0x80,0x94,0x84,0x40,0x6, 0x75,0x2b,0x4, 0x75,0x2c, +0x7f,0xac,0x2b,0xad,0x2c,0x12,0x16,0x49,0xe5,0x26,0x85,0x27,0xf0,0x12,0x3, 0x3c, +0xab,0x28,0x74,0x2, 0x25,0x2a,0xf9,0xf5,0x2a,0xe4,0x35,0x29,0xfa,0xf5,0x29,0xec, +0x8d,0xf0,0x2, 0x3, 0x3c,0x33,0xfe,0xef,0x24,0xc1,0xf5,0x2c,0xee,0x34,0xff,0xf5, +0x2b,0xc3,0xe5,0x2c,0x94,0x2, 0xe5,0x2b,0x64,0x80,0x94,0x80,0x22,0x8b,0x28,0x8a, +0x29,0x89,0x2a,0x22,0x12,0x3f,0x4d,0xe4,0xf5,0x25,0x12,0x17,0x15,0x12,0x4e,0x82, +0xff,0xe5,0x25,0xc3,0x9f,0x50,0x20,0xe5,0x25,0x12,0x17,0xd2,0xfa,0x90,0x0, 0xa, +0x12,0x16,0x93,0x90,0x0, 0xc, 0x12,0x1c,0x77,0xe9,0x24,0xa, 0xf9,0xe4,0x3a,0xfa, +0x12,0x1f,0xfd,0x5, 0x25,0x80,0xd3,0x22,0x12,0x65,0xf0,0x74,0x60,0x12,0x65,0x53, +0x12,0x42,0x48,0xf1,0x1e,0x12,0x34,0x35,0x75,0x36,0x1, 0x75,0x37,0x8, 0x75,0x38, +0xc5,0x91,0xe3,0x12,0x36,0x9b,0x7b,0x1, 0x7a,0x9, 0x79,0xdf,0x12,0x59,0x14,0xe4, +0x90,0xc, 0xef,0xf0,0x7b,0x1, 0x7a,0x9, 0x79,0x3b,0x12,0x30,0xfe,0x90,0xc, 0x31, +0x74,0xa, 0xf0,0x90,0xc, 0x31,0xe0,0x70,0xfa,0x12,0x35,0xaf,0x7b,0x1, 0x7a,0x9, +0x79,0x5e,0xd1,0x33,0x7b,0x1, 0x7a,0x9, 0x79,0x5e,0xf1,0x39,0x90,0xb, 0x5e,0x74, +0x3, 0xf0,0x74,0xe8,0xf1,0x57,0x75,0x2c,0x9, 0x75,0x2d,0x3b,0x12,0xf, 0xc9,0x7e, +0x0, 0x7f,0x83,0x12,0x4f,0xe8,0xb1,0x5, 0x12,0x4f,0x54,0x12,0x37,0xaf,0x90,0xa, +0xde,0xf0,0xa3,0x74,0x64,0xf0,0x75,0x36,0x1, 0x75,0x37,0x0, 0x75,0x38,0x83,0xf1, +0x1e,0xf1,0xcb,0xe4,0x90,0x0, 0x52,0xf0,0xa3,0x4, 0x12,0x67,0x56,0x12,0x5a,0x8d, +0xe4,0x90,0xa, 0xe6,0xf0,0xa3,0xf0,0x7b,0x1, 0x7a,0xa, 0x79,0x2b,0x12,0x3f,0x6b, +0x90,0xc, 0x59,0xe0,0x64,0x1, 0x60,0x2, 0x81,0x9f,0x12,0x37,0xb0,0x90,0xa, 0xde, +0xf0,0x74,0x64,0x12,0x65,0x53,0x12,0x43,0xae,0xe4,0xf5,0xa, 0xf5,0x9, 0x90,0xc, +0x57,0xe0,0x70,0x5, 0x90,0x8, 0x2c,0x80,0x3, 0x90,0x8, 0x2e,0xe0,0xf5,0xb, 0x90, +0xc, 0x52,0xe0,0xf4,0x60,0x17,0x7e,0x0, 0x7f,0x0, 0x7c,0x9, 0x7d,0x3b,0x7a,0x0, +0x7b,0x83,0x75,0x28,0x9, 0x75,0x29,0x5e,0xf1,0x6f,0x12,0x46,0xe8,0xf1,0x15,0x12, +0x2f,0xf9,0x60,0xf9,0x90,0x8, 0x28,0xe0,0x90,0xc, 0x5b,0xf0,0x90,0x8, 0x32,0xe0, +0xb4,0x1, 0x5, 0xe4,0xff,0x12,0x37,0x84,0xb1,0x5, 0x12,0x52,0xa9,0x91,0xea,0x12, +0x5a,0xeb,0xf1,0x59,0x75,0x2c,0x9, 0x75,0x2d,0x18,0x91,0xe3,0x12,0x54,0x69,0x90, +0x8, 0x27,0xe0,0x90,0xc, 0x35,0xf0,0x90,0x8, 0x20,0xe0,0x90,0xc, 0x36,0xf0,0x75, +0x25,0x1, 0x75,0x26,0x9, 0x75,0x27,0x18,0xf1,0x62,0x75,0x2c,0xa, 0x75,0x2d,0x2b, +0x91,0xe3,0x12,0x57,0x8a,0x90,0x8, 0x20,0xe0,0x64,0x6, 0x70,0x42,0x12,0x5a,0x94, +0x40,0x20,0x75,0x34,0x1, 0x75,0x35,0x0, 0x75,0x36,0x83,0x75,0x37,0x1, 0x75,0x38, +0x9, 0x75,0x39,0x18,0x75,0x3a,0x1, 0x75,0x3b,0x0, 0x75,0x3c,0x0, 0x91,0xe3,0x12, +0x2a,0x9c,0x12,0x67,0x4c,0x12,0x66,0xb2,0x75,0x2c,0x8, 0x75,0x2d,0x33,0xf1,0x32, +0x12,0x4e,0xd0,0x90,0x8, 0x62,0xe0,0x30,0xe0,0x5, 0xe4,0x90,0x8, 0x20,0xf0,0x90, +0x8, 0x27,0xe0,0x70,0x10,0x90,0x8, 0x20,0xe0,0xb4,0x4, 0x9, 0x90,0xa, 0xe6,0xe4, +0xf0,0xa3,0x74,0xa, 0xf0,0xd3,0x90,0xa, 0xe7,0xe0,0x94,0x0, 0x90,0xa, 0xe6,0xe0, +0x94,0x0, 0x40,0x12,0xa3,0xe0,0x24,0xff,0xf0,0x90,0xa, 0xe6,0xe0,0x34,0xff,0xf0, +0x90,0x8, 0x20,0x74,0x4, 0xf0,0x12,0x66,0x48,0xb1,0x5, 0x12,0x51,0x48,0x90,0x9, +0x15,0xef,0xf0,0x90,0x0, 0x0, 0xe0,0x14,0xf0,0x90,0xa, 0x2b,0xe0,0xb4,0x1, 0x11, +0x90,0xa, 0x2f,0xe0,0xff,0x90,0x8, 0x60,0xe0,0xfe,0xc3,0x9f,0x40,0x3, 0xee,0x9f, +0xf0,0x91,0xea,0x12,0x48,0xa3,0x91,0xe3,0x11,0xf4,0x90,0x0, 0x0, 0xe0,0x4, 0xf0, +0x90,0xa, 0x2b,0xe0,0x64,0x1, 0x70,0x52,0xf5,0x21,0x90,0xa, 0x2f,0xe0,0xff,0xe5, +0x21,0xc3,0x9f,0x50,0x3f,0x74,0x2c,0x25,0x21,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83, +0xe0,0xfd,0x90,0x8, 0x60,0xe0,0x25,0x21,0xfe,0x75,0xf0,0x7, 0xa4,0x24,0x3d,0xf5, +0x82,0xe4,0x34,0x8, 0xf5,0x83,0xe4,0xf0,0xa3,0xed,0xf0,0xee,0x75,0xf0,0x7, 0xa4, +0x24,0x3f,0xf5,0x82,0xe4,0x34,0x8, 0xf5,0x83,0x74,0x4, 0xf0,0xa3,0x74,0xbf,0xf0, +0x5, 0x21,0x80,0xb6,0x90,0x8, 0x60,0xe0,0x2f,0xf0,0x90,0x8, 0x20,0xe0,0xb4,0x6, +0xe, 0x90,0x8, 0x60,0xe0,0xd3,0x94,0x1, 0x40,0x5, 0xe4,0x90,0x8, 0x20,0xf0,0x12, +0x67,0x4c,0x75,0x28,0x1, 0x75,0x29,0x9, 0x75,0x2a,0x18,0xf1,0x1e,0x12,0x55,0xb5, +0x90,0x8, 0x27,0xe0,0x70,0xf, 0x90,0x8, 0x61,0xe0,0xff,0x90,0x8, 0x60,0xe0,0xd3, +0x9f,0x40,0xa, 0x80,0x0, 0x12,0x66,0x48,0xb1,0x5, 0x12,0x45,0x3c,0x90,0x8, 0x60, +0xe0,0xa3,0xf0,0x90,0x9, 0x10,0xf0,0xf1,0x32,0x91,0xa5,0x90,0x9, 0x10,0xe0,0x90, +0x8, 0x60,0xf0,0x90,0xa, 0x22,0x74,0x1, 0xf0,0xa3,0x74,0xa, 0xf0,0xa3,0x74,0x25, +0xf0,0x12,0x66,0x48,0x7b,0x1, 0x7a,0x9, 0x79,0xdf,0x12,0x17,0x1c,0x90,0x8, 0xc5, +0x74,0x1, 0xf0,0xa3,0x74,0x9, 0xf0,0xa3,0x74,0xdf,0xf0,0x90,0x8, 0x60,0xe0,0x90, +0x9, 0x10,0xf0,0x12,0x67,0x42,0x75,0x28,0x1, 0x75,0x29,0x8, 0x75,0x2a,0xc5,0x91, +0xe3,0x12,0x18,0x2d,0xe4,0xf5,0x21,0x12,0x66,0xa4,0x12,0x55,0xae,0x64,0xbf,0x70, +0x3, 0xee,0x64,0x4, 0x70,0x37,0x12,0x66,0x38,0xa3,0xe0,0xff,0x25,0xe0,0x25,0xe0, +0x24,0x30,0xf5,0x82,0xe4,0x34,0xa, 0x12,0x1f,0x56,0xfd,0x12,0x66,0x38,0xec,0xf0, +0xa3,0xed,0xf0,0xef,0x25,0xe0,0x25,0xe0,0x24,0x32,0xf5,0x82,0xe4,0x34,0xa, 0x12, +0x55,0xae,0xff,0x12,0x66,0xa4,0xf5,0x83,0xee,0xf0,0xa3,0xef,0xf0,0x5, 0x21,0xe5, +0x21,0x64,0x5, 0x70,0xb2,0x12,0x67,0x42,0xf1,0x32,0x12,0x3d,0x41,0x75,0x25,0x1, +0x75,0x26,0x8, 0x75,0x27,0x29,0x12,0x66,0xb2,0x75,0x2c,0x0, 0x75,0x2d,0x83,0x75, +0x2e,0x1, 0x75,0x2f,0x8, 0x75,0x30,0x33,0xf1,0x32,0x12,0x50,0x1a,0x21,0xd0,0x12, +0x30,0xdd,0x2, 0x0, 0x21,0x12,0x1f,0xaa,0xff,0xd3,0x94,0x0, 0x50,0x34,0x12,0x1f, +0xf7,0xd3,0x9f,0x40,0x1d,0x90,0x0, 0x50,0x12,0x1, 0x65,0xff,0x90,0xc, 0xef,0xe0, +0xc3,0x9f,0x50,0x13,0xe0,0x4, 0xf0,0x12,0x1f,0xaa,0x90,0x0, 0x4b,0x12,0x1, 0xd7, +0x80,0x5, 0xe4,0x90,0xc, 0xef,0xf0,0x12,0x1f,0xf7,0x70,0x6, 0xe9,0x24,0x4f,0x12, +0x3f,0x5f,0x22,0x7b,0x1, 0x7a,0x8, 0x79,0x33,0x22,0x75,0x25,0x1, 0x75,0x26,0x0, +0x75,0x27,0x0, 0x75,0x28,0x1, 0x75,0x29,0x9, 0x75,0x2a,0x18,0x75,0x2b,0x1, 0x75, +0x2c,0x8, 0x75,0x2d,0x33,0x7b,0x1, 0x7a,0x0, 0x79,0x83,0x22,0x12,0x37,0xa2,0xe4, +0xf5,0x2d,0xd1,0x16,0x85,0x2d,0x82,0x12,0x63,0xd9,0xfd,0xaf,0x2d,0x12,0x0, 0x4e, +0xe5,0x2d,0x24,0x1c,0x12,0x67,0x80,0xd1,0x24,0x12,0x67,0x1e,0x24,0x38,0xd1,0x1d, +0x12,0x67,0x1e,0x24,0x54,0x12,0x67,0x78,0xd1,0x24,0xf1,0x25,0x94,0x1c,0x40,0xd2, +0xd1,0x16,0x90,0x0, 0x70,0x12,0x1, 0x65,0xfd,0x7f,0x7e,0x12,0x0, 0x4e,0xd1,0x16, +0x90,0x0, 0x71,0x12,0x1, 0x65,0xfd,0x7f,0x7f,0x12,0x0, 0x4e,0xd1,0x16,0x90,0x0, +0x73,0x12,0x1, 0x65,0xfd,0x7f,0x81,0x12,0x0, 0x4e,0xd1,0x16,0x90,0x0, 0x74,0x12, +0x1, 0x65,0x7f,0x82,0x12,0x67,0x70,0xe5,0x2d,0x24,0x83,0xff,0xab,0x2a,0xe5,0x2c, +0x24,0x75,0xd1,0x24,0xf1,0x25,0x94,0x4, 0x40,0xed,0xe4,0xf5,0x2d,0xe5,0x2d,0x24, +0x87,0xff,0xab,0x2a,0xe5,0x2c,0x24,0x79,0xd1,0x24,0xf1,0x25,0x94,0x2, 0x40,0xed, +0xd1,0x16,0x90,0x0, 0x7b,0x12,0x1, 0x65,0xfd,0x7f,0x89,0x12,0x0, 0x4e,0xd1,0x16, +0x90,0x0, 0x7c,0x12,0x1, 0x65,0x7f,0x8c,0x12,0x67,0x70,0xe5,0x2d,0x24,0x8d,0xff, +0xab,0x2a,0xe5,0x2c,0x24,0x7d,0xd1,0x24,0xf1,0x25,0x94,0x3, 0x40,0xed,0xd1,0x16, +0x12,0x2d,0x9a,0xfd,0x7f,0x90,0x2, 0x0, 0x4e,0x12,0x36,0x0, 0x12,0x65,0xf0,0xa3, +0x74,0x60,0xf0,0xf1,0x1e,0x12,0x34,0x35,0x12,0x32,0x4, 0xb1,0xc, 0x53,0xdb,0xf0, +0xf1,0x3b,0x90,0xb, 0x5e,0x74,0x1, 0xf0,0x74,0x2c,0xf1,0x57,0x75,0x2c,0x8, 0x75, +0x2d,0x29,0x12,0xf, 0xc9,0x12,0x30,0xdd,0x12,0x5a,0x8d,0x90,0xc, 0xac,0xe0,0x54, +0x8f,0xf0,0x22,0x12,0x47,0xb2,0xab,0x2a,0xaa,0x2b,0xa9,0x2c,0x22,0xff,0xab,0x2a, +0xe5,0x2c,0x24,0x38,0xf9,0xe4,0x35,0x2b,0xfa,0xe5,0x2d,0x7c,0x0, 0x29,0xf9,0xec, +0x3a,0xfa,0x22,0x12,0x37,0xa2,0x78,0x2e,0x7c,0x0, 0x7d,0x0, 0x7b,0xff,0x7a,0xf, +0x79,0x95,0x7e,0x0, 0x7f,0x1c,0x12,0x1, 0x26,0xe4,0xf5,0x2d,0xf1,0x4b,0xe0,0xff, +0xc3,0x94,0x1c,0x50,0x53,0x12,0x47,0x5a,0xe0,0xd1,0x16,0x8f,0x82,0x75,0x83,0x0, +0x12,0x1, 0xd7,0xe5,0x2d,0x20,0xe0,0xf, 0x12,0x41,0x69,0xe0,0x54,0xf, 0xff,0xe9, +0x24,0x1c,0xf9,0xe4,0x3a,0x80,0x10,0xe5,0x2d,0x12,0x41,0x69,0xe0,0xc4,0x54,0xf, +0x12,0x67,0x80,0xf9,0xe4,0x35,0x2b,0xfa,0xf1,0x4b,0xe0,0xd1,0x2b,0xef,0x12,0x1, +0xc5,0x74,0x2e,0x25,0x2d,0xf8,0xe6,0x12,0x67,0x78,0xf9,0xe4,0x35,0x2b,0xfa,0xf1, +0x4b,0xe0,0xd1,0x2b,0xef,0x12,0x1, 0xc5,0x90,0xa, 0xef,0xe0,0xd1,0x1d,0xef,0x12, +0x1, 0xc5,0x5, 0x2d,0xe5,0x2d,0x64,0x1c,0x70,0x92,0xd1,0x16,0x90,0x0, 0x70,0xe4, +0x12,0x1, 0xd7,0x90,0x0, 0x71,0x74,0x7, 0x12,0x1, 0xd7,0x90,0x0, 0x72,0x74,0x17, +0x12,0x1, 0xd7,0x90,0x0, 0x73,0x74,0x2, 0x12,0x1, 0xd7,0x90,0x0, 0x74,0x74,0x7f, +0x12,0x1, 0xd7,0xe4,0xfd,0xd1,0x13,0x7d,0x1, 0xd1,0x13,0x90,0x0, 0x7b,0x74,0xf, +0x12,0x1, 0xd7,0x90,0x0, 0x7c,0x74,0x21,0x12,0x67,0xa8,0xff,0x90,0x0, 0x7d,0x12, +0x1, 0xd7,0x90,0x0, 0x7e,0xef,0x12,0x1, 0xd7,0x90,0x0, 0x7f,0xef,0x12,0x67,0x3, +0x74,0x5d,0x2, 0x1, 0xd7,0x75,0x4b,0x1, 0x75,0x4c,0x0, 0x75,0x4d,0x83,0x7b,0x1, +0x7a,0x0, 0x79,0x0, 0x22,0x12,0x1, 0x4c,0xfd,0x12,0x0, 0x4e,0x5, 0x2d,0xe5,0x2d, +0xc3,0x22,0x7b,0x1, 0x7a,0x8, 0x79,0xc5,0x22,0xb1,0xc, 0x53,0xdb,0xfd,0xd2,0xba, +0x43,0xdb,0x1, 0x43,0xdb,0x20,0x22,0xef,0x12,0x1, 0xc5,0x74,0xfb,0x25,0x2d,0xf5, +0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0xa3,0xf0,0x75,0x25,0x1, 0x75,0x26,0x0, 0x75, +0x27,0x0, 0x75,0x28,0x1, 0x75,0x29,0x0, 0x75,0x2a,0x83,0x75,0x2b,0x1, 0x22,0x8e, +0x22,0x8f,0x23,0x8c,0x24,0x8d,0x25,0x8a,0x26,0x8b,0x27,0x12,0x37,0xa9,0x12,0x3f, +0x9e,0xaa,0x22,0xa9,0x23,0x7b,0x1, 0x12,0x34,0x35,0xaa,0x24,0xa9,0x25,0x7b,0x1, +0x12,0x30,0xfe,0xe5,0x23,0x24,0x55,0xf5,0x82,0xe4,0x35,0x22,0xf5,0x83,0x74,0x21, +0xf0,0xaa,0x28,0xa9,0x29,0x7b,0x1, 0xd1,0x33,0xaa,0x28,0xa9,0x29,0x7b,0x1, 0xb1, +0xc, 0xf1,0x3b,0xaa,0x26,0xa9,0x27,0x7b,0x1, 0x12,0x35,0xfd,0xaa,0x22,0xa9,0x23, +0x7b,0x1, 0xc0,0x3, 0x8b,0x36,0x12,0x4f,0x44,0xd0,0x3, 0x8b,0x33,0x8a,0x34,0x89, +0x35,0x12,0x67,0x32,0xf5,0x40,0x12,0x2f,0xf3,0xf5,0x41,0x90,0x0, 0x53,0xe4,0x12, +0x1, 0xd7,0x90,0x0, 0x52,0xe4,0x12,0x1, 0xd7,0xe5,0x38,0x24,0x80,0xf9,0xe5,0x37, +0x34,0x3, 0xaf,0x1, 0xf5,0x3e,0x8f,0x3f,0x85,0x37,0x3c,0x85,0x38,0x3d,0x75,0x39, +0x1, 0x85,0x36,0x4b,0x85,0x37,0x4c,0x85,0x38,0x4d,0xab,0x33,0xaa,0x34,0xa9,0x35, +0xf1,0xf9,0x60,0xed,0xe4,0xf5,0x3a,0xf5,0x3b,0x12,0x67,0x38,0xe5,0x3f,0x2f,0xf5, +0x82,0xe5,0x3e,0x12,0x55,0xad,0x78,0x2, 0x12,0x58,0xf8,0xd8,0xfb,0xfd,0xac,0x6, +0x12,0x67,0x38,0xe5,0x3d,0x2f,0xf5,0x82,0xe5,0x3c,0x3e,0xf5,0x83,0xec,0x8d,0xf0, +0x12,0x2, 0x60,0x5, 0x3b,0xe5,0x3b,0x70,0x2, 0x5, 0x3a,0xb4,0xc0,0xcb,0xe5,0x3a, +0xb4,0x1, 0xc6,0x5, 0x39,0xe5,0x39,0xd3,0x94,0x4, 0x40,0xa5,0xab,0x33,0xaa,0x34, +0xa9,0x35,0x90,0x0, 0x53,0xe5,0x40,0x12,0x1, 0xd7,0x90,0x0, 0x52,0xe5,0x41,0x2, +0x1, 0xd7,0x8b,0x48,0x8a,0x49,0x89,0x4a,0x75,0x51,0x20,0x90,0x0, 0x55,0x12,0x1, +0x65,0xf5,0x59,0x12,0x17,0xc1,0xf5,0x60,0x12,0x1, 0x4c,0xf5,0x61,0x85,0x60,0x62, +0xe5,0x60,0x25,0xe0,0xf5,0x63,0x12,0x67,0x32,0xf5,0x64,0xf1,0xf3,0xf5,0x67,0x90, +0x0, 0x82,0x12,0x1, 0x65,0xf5,0x68,0xab,0x4b,0xaa,0x4c,0xa9,0x4d,0x90,0x7, 0xa5, +0xe5,0x17,0x12,0x1, 0xd7,0x12,0x64,0x4e,0xef,0x70,0x3, 0x7f,0xaa,0x22,0xab,0x4b, +0xaa,0x4c,0xa9,0x4d,0x90,0x7, 0x9a,0x12,0x5, 0x6c,0xaf,0x1, 0x8a,0x65,0x8f,0x66, +0xaf,0x61,0x7e,0x0, 0xab,0x48,0xe5,0x4a,0x24,0x56,0xf9,0xe4,0x35,0x49,0xfa,0x78, +0x6d,0x7c,0x0, 0x7d,0x0, 0x12,0x1, 0x26,0xaf,0x60,0x7e,0x0, 0xab,0x48,0xe5,0x4a, +0x24,0x72,0xf9,0xe4,0x35,0x49,0xfa,0x78,0x89,0x7c,0x0, 0x7d,0x0, 0x12,0x1, 0x26, +0xe5,0x59,0x54,0x30,0x60,0x78,0x75,0x4e,0x10,0x75,0x4f,0x0, 0xe4,0x25,0x4d,0xf9, +0xe5,0x4c,0x34,0x7, 0xaf,0x1, 0xf5,0x5c,0x8f,0x5d,0xe4,0xf5,0x50,0xe5,0x50,0xc3, +0x95,0x60,0x50,0x5a,0xb1,0xb0,0xe0,0xfe,0xa3,0xe0,0xff,0x85,0x5d,0x82,0x85,0x5c, +0x83,0x51,0x90,0xee,0xf0,0xa3,0xef,0xf0,0xe5,0x59,0x30,0xe5,0x19,0xb1,0xb0,0x75, +0xf0,0x2, 0xe5,0x62,0x12,0x35,0xef,0xff,0xe5,0x5d,0x24,0x20,0x12,0x67,0x90,0x51, +0x95,0xee,0xf0,0xa3,0xef,0xf0,0xe5,0x59,0x54,0x30,0x64,0x30,0x70,0x19,0xb1,0xb0, +0x75,0xf0,0x2, 0xe5,0x63,0x12,0x35,0xef,0xff,0xe5,0x5d,0x24,0x40,0x12,0x67,0x90, +0x51,0x90,0xee,0xf0,0xa3,0xef,0xf0,0x12,0x66,0xd5,0x5, 0x50,0x80,0x9f,0xe5,0x59, +0x54,0x3, 0xf5,0x58,0x70,0x2, 0x41,0x8a,0xe5,0x68,0xb4,0x1, 0x8, 0x75,0x4e,0x10, +0x75,0x4f,0x60,0x80,0x6, 0x75,0x4e,0x10,0x75,0x4f,0x48,0x85,0x4e,0x52,0x85,0x4f, +0x53,0xe5,0x4d,0x24,0x80,0xf9,0xe5,0x4c,0x34,0x3, 0xaf,0x1, 0xf5,0x54,0x8f,0x55, +0x85,0x4c,0x56,0x85,0x4d,0x57,0xe4,0xf5,0x50,0xe5,0x50,0xc3,0x95,0x61,0x40,0x2, +0x41,0x8a,0x85,0x51,0xf0,0x12,0x67,0x88,0xff,0xae,0xf0,0x25,0x55,0xfd,0xe5,0x54, +0x3e,0xf5,0x5a,0x8d,0x5b,0xe5,0x57,0x2f,0xff,0xe5,0x56,0x3e,0xf5,0x5c,0x8f,0x5d, +0xe4,0xfd,0xed,0xc3,0x95,0x60,0x40,0x2, 0x41,0x6c,0xb1,0xb0,0xe0,0xf5,0x5e,0xa3, +0xe0,0xf5,0x5f,0xe5,0x67,0x70,0x29,0x85,0x60,0xf0,0x12,0x67,0x88,0x25,0x66,0xf5, +0x82,0xe5,0x65,0x35,0xf0,0xf5,0x83,0x74,0x89,0x2d,0xf8,0xe6,0x25,0x82,0x12,0x3f, +0x34,0x75,0xf0,0x8, 0xa4,0xae,0xf0,0x25,0x5f,0xf5,0x5f,0xee,0x35,0x5e,0xf5,0x5e, +0xe5,0x64,0x60,0x30,0x85,0x5d,0x82,0x85,0x5c,0x83,0x74,0x89,0x2d,0xf8,0xe6,0xff, +0x51,0x96,0xe0,0xfa,0xa3,0xe0,0xfb,0xc3,0xe5,0x5f,0x9b,0xfb,0xe5,0x5e,0x9a,0xfa, +0x85,0x5a,0x83,0x85,0x5b,0x82,0x75,0xf0,0x2, 0xef,0x12,0x5, 0x40,0xea,0xf0,0xa3, +0xeb,0xf0,0x80,0x12,0x85,0x5b,0x82,0x85,0x5a,0x83,0x74,0x89,0x2d,0x51,0x94,0xe5, +0x5e,0xf0,0xa3,0xe5,0x5f,0xf0,0x12,0x66,0xd5,0xd, 0x21,0xe2,0xe5,0x68,0xb4,0x1, +0x4, 0x74,0x20,0x80,0x2, 0x74,0x48,0x25,0x53,0xf5,0x53,0xe4,0x35,0x52,0xf5,0x52, +0x85,0x52,0x4e,0x85,0x53,0x4f,0x5, 0x50,0x21,0xb9,0x12,0x27,0x3b,0x7f,0x0, 0x22, +0x74,0x89,0x25,0x50,0xf8,0xe6,0x75,0xf0,0x2, 0x2, 0x5, 0x40,0x12,0x57,0x70,0x12, +0x4e,0x82,0xf5,0x43,0x12,0x55,0x7b,0xf5,0x44,0xe5,0x43,0xd3,0x94,0x0, 0x50,0x8, +0xe5,0x44,0x94,0x0, 0x50,0x2, 0xa1,0x70,0xb1,0x7e,0x90,0x0, 0x82,0x74,0x1, 0x12, +0x1, 0x92,0x90,0x0, 0x82,0x12,0x1, 0x65,0x64,0x5, 0x60,0x2, 0xa1,0x7d,0xb1,0x7e, +0x90,0x0, 0x82,0x12,0x1, 0xd7,0xb1,0x9a,0x60,0x2, 0x61,0xb0,0xb1,0x7e,0xb1,0xaa, +0x60,0x2, 0x61,0xb0,0x90,0x0, 0x83,0x12,0x67,0x3, 0xe5,0x43,0x12,0x1, 0xd7,0x90, +0x0, 0x81,0xe5,0x44,0x12,0x1, 0xd7,0xe4,0xf5,0x3d,0xe5,0x43,0x25,0x44,0xff,0xe4, +0x33,0xfe,0xc3,0xe5,0x3d,0xb1,0xd4,0x40,0x2, 0xa1,0x7d,0xe5,0x3d,0xc3,0x95,0x43, +0x50,0x2a,0xe5,0x33,0x24,0x30,0xf9,0xe4,0x35,0x32,0xb1,0xc4,0x12,0x17,0xd5,0xb1, +0xb7,0xb1,0x7e,0x75,0xf0,0x2, 0xe5,0x3d,0x12,0x16,0xe3,0x12,0x67,0xa0,0xe5,0x3d, +0x75,0xf0,0x2, 0x12,0x17,0xd5,0xfa,0x90,0x0, 0x1, 0x80,0x3d,0xab,0x31,0xe5,0x33, +0x24,0x58,0xf9,0xe4,0x35,0x32,0xfa,0xc3,0xe5,0x3d,0x95,0x43,0xfd,0xe4,0x94,0x0, +0xfc,0xed,0xae,0x4, 0x78,0x3, 0xc3,0x33,0xce,0x33,0xce,0xd8,0xf9,0x29,0xf9,0xea, +0x3e,0xb1,0xb7,0x12,0x46,0xf7,0xab,0x31,0xe5,0x33,0x2f,0xf9,0xe5,0x32,0x3e,0xfa, +0x90,0x0, 0x87,0x12,0x67,0xa0,0x90,0x0, 0x88,0x12,0x1, 0x65,0xc3,0x13,0xf5,0x41, +0xb1,0x8c,0xa3,0xe5,0x42,0xf0,0xb1,0x8c,0xe5,0x41,0xf0,0xb1,0xa0,0xf5,0x83,0x74, +0x1, 0xf0,0xd1,0xd2,0xe5,0x42,0x12,0x59,0x7, 0xe5,0x41,0x12,0x5, 0x40,0x12,0x2, +0xb7,0xff,0xb1,0x8c,0xa3,0xa3,0xe5,0xf0,0xf0,0xa3,0xef,0xf0,0x5, 0x3d,0x41,0xfa, +0xb1,0x7e,0xb1,0xaa,0xff,0xb1,0x9a,0x2f,0xf5,0x3e,0xe4,0xf5,0x3d,0xb1,0x7e,0xb1, +0xaa,0xff,0xb1,0x9a,0xb1,0xcb,0x40,0x2, 0xa1,0xc, 0xe5,0x3d,0xc3,0x9d,0x50,0x7, +0xb1,0xbe,0x12,0x17,0xd5,0x80,0x12,0xb1,0x94,0x12,0x62,0x90,0xef,0x78,0x3, 0xc3, +0x33,0xce,0x33,0xce,0xd8,0xf9,0x12,0x66,0x96,0xb1,0xb7,0x12,0x66,0xe1,0xb1,0x8b, +0xa3,0xe0,0x75,0xf0,0x20,0xb1,0x85,0xe0,0x75,0xf0,0x2, 0x12,0x16,0xe3,0x12,0x2, +0xb7,0xf5,0x40,0x85,0xf0,0x3f,0xb1,0xa0,0xf5,0x83,0xe0,0x70,0x4, 0x15,0x3e,0xa1, +0x8, 0xe4,0xf5,0x48,0xf5,0x47,0x12,0x63,0xe7,0x12,0x1, 0x4c,0xff,0xe5,0x47,0xc3, +0x9f,0x40,0x2, 0x81,0xbe,0xb1,0x8c,0xa3,0xe0,0xff,0x65,0x47,0x70,0x2, 0x81,0xba, +0x12,0x66,0xe1,0xfa,0x75,0xf0,0x20,0xef,0xb1,0x85,0xe0,0x75,0xf0,0x2, 0x12,0x16, +0xe3,0x12,0x1c,0x77,0xb1,0x8c,0xa3,0xe0,0x75,0xf0,0x10,0xa4,0xff,0xb1,0x8c,0xe0, +0x12,0x62,0xd4,0x12,0x46,0x76,0xaa,0x35,0xa9,0x36,0x12,0x67,0xa, 0xfd,0xec,0x35, +0xf0,0xfc,0xc0,0x4, 0xc0,0x5, 0xe5,0x47,0x12,0x65,0xad,0xc0,0x83,0xc0,0x82,0xb1, +0x8c,0xe0,0xff,0xd0,0x82,0xd0,0x83,0x51,0x96,0x12,0x1c,0x77,0xef,0xfb,0x7a,0x0, +0xe5,0x47,0x75,0xf0,0x10,0xa4,0x2b,0xff,0xea,0x35,0xf0,0x12,0x46,0x76,0xab,0x34, +0xaa,0x35,0x12,0x67,0xa, 0xff,0xec,0x35,0xf0,0xfe,0xc3,0xd0,0xe0,0x9f,0xff,0xd0, +0xe0,0x9e,0xfe,0xb1,0x94,0xfd,0xe5,0x3d,0xc3,0x9d,0x50,0xe, 0xd1,0xd9,0x12,0x58, +0xff,0xe5,0xf0,0x12,0x62,0x80,0x40,0x2, 0x5, 0x48,0x5, 0x47,0x81,0x16,0x12,0x63, +0xe7,0x12,0x1, 0x4c,0xc3,0x13,0xff,0xe5,0x48,0xc3,0x9f,0x40,0xf, 0xd1,0xd2,0x12, +0x57,0x28,0x64,0x6, 0x60,0x6, 0xb1,0xa0,0xf5,0x83,0xe4,0xf0,0xb1,0x8c,0xa3,0x12, +0x4d,0xe1,0xc3,0xe5,0x40,0x9f,0xff,0xe5,0x3f,0x9e,0xfe,0x12,0x0, 0x6, 0x8e,0x3f, +0x8f,0x40,0x12,0x65,0x3, 0xff,0xd3,0xe5,0x40,0x9f,0x74,0x80,0xf8,0x65,0x3f,0x98, +0x40,0x6, 0xb1,0xa0,0xf5,0x83,0xe4,0xf0,0x5, 0x3d,0x61,0xbd,0xe5,0x3e,0x70,0x7, +0xb1,0x7e,0x90,0x0, 0x80,0x80,0x63,0xb1,0x7e,0x90,0x0, 0x83,0x12,0x1, 0x65,0xc3, +0x94,0x4, 0x40,0x42,0xe4,0xf5,0x3d,0xb1,0x7e,0xb1,0xaa,0xff,0xb1,0x9a,0xb1,0xcb, +0x50,0x4b,0xe5,0x3d,0xc3,0x9d,0x50,0x7, 0xb1,0xbe,0x12,0x17,0xd5,0x80,0x12,0xb1, +0x94,0x12,0x62,0x90,0xef,0x78,0x3, 0xc3,0x33,0xce,0x33,0xce,0xd8,0xf9,0x12,0x66, +0x96,0xb1,0xb7,0xb1,0xa0,0xf5,0x83,0xe0,0xb4,0x1, 0x7, 0xb1,0xa0,0xf5,0x83,0x74, +0x2, 0xf0,0x5, 0x3d,0x80,0xc1,0xb1,0x7e,0x90,0x0, 0x83,0x74,0x1, 0x2, 0x1, 0x92, +0xb1,0x7e,0x90,0x0, 0x83,0xe4,0x12,0x67,0x3, 0xe4,0x12,0x57,0x80,0x22,0xab,0x31, +0xaa,0x32,0xa9,0x33,0x22,0xa4,0x29,0xf9,0xe5,0xf0,0x3a,0xfa,0x85,0x46,0x82,0x85, +0x45,0x83,0xa3,0x22,0xab,0x31,0xaa,0x32,0xa9,0x33,0x90,0x0, 0x80,0x2, 0x1, 0x65, +0xe5,0x46,0x24,0x7, 0xf5,0x82,0xe4,0x35,0x45,0x22,0x90,0x0, 0x81,0x2, 0x1, 0x65, +0x85,0x4f,0x82,0x85,0x4e,0x83,0x22,0xaf,0x1, 0xf5,0x45,0x8f,0x46,0x22,0xe9,0x24, +0x30,0xf9,0xe4,0x3a,0xfa,0xe5,0x3d,0x75,0xf0,0x8, 0x22,0xfd,0x2f,0xff,0xe4,0x33, +0xfe,0xe5,0x3d,0xc3,0x9f,0xee,0x64,0x80,0xf8,0x74,0x80,0x98,0x22,0x12,0x57,0x70, +0x12,0x1, 0x4c,0x13,0x13,0x54,0x3f,0xf5,0x3c,0x12,0x17,0xc1,0x13,0x13,0x54,0x3f, +0xf5,0x3d,0xe4,0xf5,0x3e,0xf5,0x3f,0xf5,0x40,0xe5,0x3c,0x70,0x3, 0x75,0x3c,0x1, +0xe5,0x3d,0x70,0x3, 0x75,0x3d,0x1, 0xe4,0xf5,0x3a,0xb1,0x7e,0x12,0x1, 0x4c,0xff, +0xe5,0x3a,0xc3,0x9f,0x50,0x4e,0xe4,0xf5,0x3b,0xb1,0x7e,0x12,0x17,0xc1,0xff,0xe5, +0x3b,0xc3,0x9f,0x50,0x37,0xf1,0xca,0xfd,0xd3,0xef,0x9d,0x74,0x80,0xf8,0x65,0xf0, +0x98,0x40,0x4, 0x5, 0x3e,0x80,0x1b,0xf1,0xca,0xfd,0xc3,0xe4,0x9d,0xfd,0xe4,0x94, +0x0, 0xfc,0xc3,0xef,0x9d,0xec,0x64,0x80,0xf8,0xe5,0xf0,0x64,0x80,0x98,0x50,0x2, +0x5, 0x3f,0x5, 0x40,0xe5,0x3d,0x25,0x3b,0xf5,0x3b,0x80,0xbd,0xe5,0x3c,0x25,0x3a, +0xf5,0x3a,0x80,0xa6,0xe5,0x40,0xc3,0x13,0xff,0xe5,0x3e,0xd3,0x9f,0x40,0x21,0x90, +0x7, 0x9f,0x12,0x64,0xd3,0xfe,0xd1,0xd2,0x90,0x7, 0x9e,0x12,0x1, 0x65,0xc3,0x9e, +0x90,0x7, 0x9e,0x50,0x2, 0x80,0x25,0xe4,0x12,0x1, 0xd7,0x75,0x16,0x1, 0x80,0x3f, +0xe5,0x3f,0xd3,0x9f,0x40,0x26,0x90,0x7, 0x9e,0x12,0x64,0xd3,0xff,0xd1,0xd2,0x90, +0x7, 0x9f,0x12,0x1, 0x65,0xc3,0x9f,0x90,0x7, 0x9f,0x50,0x7, 0x74,0x1, 0x12,0x1, +0x92,0x80,0x1c,0xe4,0x12,0x1, 0xd7,0x75,0x16,0x2, 0x80,0x13,0xd1,0xd2,0x90,0x7, +0x9f,0xe4,0x12,0x1, 0xd7,0x90,0x7, 0x9e,0xe4,0x12,0x1, 0xd7,0xe4,0xf5,0x16,0xaf, +0x16,0x22,0xab,0x34,0xaa,0x35,0xa9,0x36,0x22,0xab,0x37,0xaa,0x38,0xa9,0x39,0x22, +0x8b,0x37,0x8a,0x38,0x89,0x39,0x90,0x0, 0x19,0x12,0x1, 0x65,0xfd,0x7f,0x6, 0xf1, +0x43,0xd1,0xd9,0x90,0x0, 0x1a,0x12,0x1, 0x65,0xfd,0x7f,0xa, 0xf1,0x43,0x12,0x65, +0x3, 0xfd,0x7f,0x8, 0xf1,0x43,0xd1,0xd9,0x90,0x0, 0x1c,0x12,0x1, 0x65,0xfd,0x7f, +0xc, 0xf1,0x43,0xd1,0xd9,0x90,0x0, 0x1d,0x12,0x1, 0x65,0xfd,0x7f,0x2a,0xf1,0x43, +0xf1,0xe7,0xfd,0x7f,0x2e,0xf1,0x43,0xe4,0xfd,0x7f,0x1c,0xf1,0x43,0xd1,0xd9,0x90, +0x0, 0x21,0x12,0x1, 0x65,0xfd,0x7f,0x2, 0xf1,0x43,0x90,0x0, 0x22,0x12,0x57,0x77, +0xfd,0x7f,0x4, 0x12,0x63,0xfd,0xef,0x44,0x40,0xf5,0xa1,0xe5,0xdb,0x30,0xe3,0xfb, +0x53,0xdb,0xf3,0x8d,0xa1,0xe5,0xdb,0x30,0xe3,0xfb,0x53,0xdb,0xf3,0x43,0xab,0x4, +0x22,0x8b,0x34,0x8a,0x35,0x89,0x36,0xe4,0xff,0x12,0x64,0x62,0xd1,0xd2,0x90,0x0, +0x18,0x12,0x1, 0x65,0xff,0x12,0x64,0x21,0x7f,0x1, 0x12,0x64,0x6d,0x12,0x64,0x33, +0xef,0x70,0x2, 0xff,0x22,0x7d,0x7f,0x7f,0x14,0xf1,0xb8,0xef,0x70,0x2, 0xff,0x22, +0xe5,0x36,0x24,0x10,0xf9,0xe4,0x35,0x35,0x85,0x34,0x3a,0xf5,0x3b,0x89,0x3c,0xd1, +0xd2,0x12,0x63,0x1d,0xd1,0xd2,0xd1,0xe0,0xe4,0xff,0x12,0x64,0x6d,0x12,0x64,0x45, +0xef,0x7f,0x0, 0x60,0x2, 0x7f,0x1, 0x22,0xae,0x5, 0xac,0x7, 0xf1,0x43,0x12,0x64, +0x4, 0xef,0x7f,0x0, 0xb5,0x6, 0x2, 0x7f,0x1, 0x22,0xab,0x34,0xaa,0x35,0xa9,0x36, +0x90,0x3, 0x80,0x75,0xf0,0x20,0xe5,0x3a,0x12,0x5, 0x40,0x75,0xf0,0x2, 0xe5,0x3b, +0x12,0x5, 0x40,0x12,0x2, 0xb7,0xff,0xab,0x37,0xaa,0x38,0xa9,0x39,0x90,0x0, 0x1e, +0x2, 0x1, 0x65,0x90,0x0, 0x52,0x2, 0x1, 0x65,0x11,0x72,0xef,0x64,0xaa,0x22,0xe4, +0x90,0xc, 0xdb,0xf0,0x90,0xc, 0xae,0xf0,0x22,0x75,0x10,0x4, 0x75,0x11,0x3, 0x12, +0x65,0xf0,0xa3,0x74,0x60,0xf0,0x12,0x3d,0x29,0x12,0x2f,0xff,0x12,0x27,0x1e,0x91, +0x35,0x7b,0x1, 0x7a,0x8, 0x79,0x29,0x11,0xfe,0xb1,0xaf,0x51,0xc, 0x12,0x27,0x39, +0x90,0x0, 0x1, 0xe0,0x90,0xc, 0xd5,0xf0,0x90,0x0, 0x0, 0xe0,0x90,0xc, 0xd4,0xf0, +0xd1,0x0, 0xe4,0x90,0x0, 0x52,0xf0,0xa3,0x12,0x67,0x56,0x90,0xc, 0xd2,0x74,0x3, +0xf0,0xd1,0x0, 0x90,0xc, 0xd1,0xe0,0x70,0x31,0x12,0x0, 0x1e,0x90,0xc, 0xd1,0x74, +0x1, 0xf0,0x7f,0x0, 0x7e,0x7c,0xf1,0x8d,0x75,0x24,0x1, 0x75,0x25,0x0, 0x75,0x26, +0x83,0x75,0x27,0x4, 0x12,0x27,0x1e,0x51,0x1c,0xe4,0xfd,0xff,0xfe,0x71,0x9f,0x7f, +0x4, 0x12,0x40,0xea,0x90,0xc, 0xd1,0x74,0xff,0xf0,0x90,0xc, 0xd2,0xe0,0x64,0x3, +0x70,0x43,0x90,0xc, 0xac,0xe0,0x30,0xe7,0xb8,0x12,0x27,0x1e,0x91,0x35,0xf1,0xa9, +0x51,0x4, 0x12,0x25,0xc, 0x12,0x27,0x3b,0x90,0xc, 0xda,0xe0,0x90,0x0, 0x52,0x70, +0x3, 0xf0,0x80,0x3, 0x74,0x1, 0xf0,0xe4,0x90,0x0, 0x53,0xf0,0xb1,0xaf,0x12,0x27, +0x15,0x12,0x2f,0xf9,0x60,0xf8,0x75,0x10,0x4, 0x75,0x11,0x3, 0x90,0xc, 0xac,0xe0, +0x54,0x7f,0xf0,0x1, 0x51,0x90,0xc, 0xd2,0xe0,0x90,0xc, 0x59,0xf0,0xe4,0xff,0xfd, +0xfc,0xe5,0xdb,0x20,0xe1,0xf, 0xf, 0xbf,0xff,0x5, 0xd, 0xbd,0x0, 0x1, 0xc, 0xbc, +0x3, 0xef,0xbd,0xe8,0xec,0x53,0xdb,0xfe,0x53,0xdb,0xfd,0xc2,0xba,0x22,0xf1,0xa2, +0xe4,0xf5,0x2e,0xe5,0x2e,0x20,0xe0,0x13,0xab,0x2a,0x31,0xfa,0xe5,0x2e,0xc3,0x13, +0x7e,0x0, 0x29,0xf9,0xee,0x3a,0xfa,0xe4,0x12,0x1, 0xc5,0xe5,0x2e,0xc3,0x94,0xb, +0x50,0x1e,0x74,0x33,0x25,0x2e,0x12,0x47,0x17,0xe0,0xff,0xe5,0x2e,0x90,0xf, 0x48, +0x93,0xf5,0x82,0x75,0x83,0x0, 0xa3,0xa3,0xa3,0x12,0x26,0x16,0xef,0x12,0x1, 0xd7, +0x5, 0x2e,0xe5,0x2e,0xb4,0x10,0xbc,0xe4,0xf5,0x2e,0xe5,0x2e,0x20,0xe0,0x5, 0xb1, +0xc6,0xe0,0x80,0x9, 0xe5,0x2e,0xb1,0xc6,0xe0,0x54,0xf0,0xff,0xc4,0x54,0xf, 0xf5, +0x2d,0xe5,0x2e,0xc3,0x94,0xb, 0x50,0x2c,0xe5,0x2e,0x90,0xf, 0x48,0x93,0xff,0x24, +0x3, 0xab,0x2a,0x20,0xe0,0xa, 0x31,0xfa,0xef,0x12,0x7, 0x6b,0x45,0x2d,0x80,0x11, +0x31,0xfa,0xe5,0x2e,0x90,0xf, 0x48,0x12,0x7, 0x6a,0xff,0xe5,0x2d,0xc4,0x54,0xf0, +0x4f,0x12,0x1, 0xc5,0x5, 0x2e,0xe5,0x2e,0x64,0x10,0x70,0xae,0x90,0xa, 0xed,0xe0, +0x12,0x26,0x16,0x90,0x0, 0x18,0x12,0x1, 0xd7,0x90,0xb, 0x17,0xe0,0x90,0x0, 0x19, +0xf1,0xbf,0x90,0x0, 0x1a,0x12,0x1, 0xd7,0x90,0x0, 0x1b,0xe4,0xf1,0xb7,0x90,0x0, +0x1c,0x12,0x1, 0xd7,0x90,0x0, 0x1e,0x74,0x13,0x12,0x1, 0xd7,0x90,0x0, 0x20,0x74, +0x3, 0x12,0x1, 0xd7,0x90,0x0, 0x21,0x74,0x3f,0x12,0x1, 0xd7,0x90,0x0, 0x22,0x74, +0x3f,0x12,0x1, 0xd7,0x90,0x0, 0x1d,0x74,0xa, 0x12,0x1, 0xd7,0x90,0x0, 0x1f,0x74, +0x1, 0x12,0x1, 0xd7,0x12,0x2f,0x61,0x8f,0x2d,0x22,0xe5,0x2c,0x24,0x10,0xf9,0xe4, +0x35,0x2b,0xfa,0x22,0x7b,0x1, 0x7a,0x8, 0x79,0x29,0x11,0xfe,0x7b,0x1, 0x7a,0x8, +0x79,0x4c,0x12,0x26,0x33,0x7b,0x1, 0x7a,0x8, 0x79,0x4c,0x22,0x8b,0x21,0x8a,0x22, +0x89,0x23,0xe4,0xf5,0x44,0xf5,0x45,0x74,0x60,0x25,0x45,0x12,0x47,0x45,0x5, 0x45, +0xe5,0x45,0x70,0x2, 0x5, 0x44,0x64,0xd1,0x45,0x44,0x70,0xeb,0x11,0xdd,0x12,0x27, +0x3b,0x85,0x24,0x4b,0x85,0x25,0x4c,0x85,0x26,0x4d,0xab,0x21,0xaa,0x22,0xa9,0x23, +0x12,0x2f,0xf9,0x60,0xec,0xe5,0x26,0x24,0x80,0xf9,0xe5,0x25,0x34,0x3, 0xaf,0x1, +0xf5,0x10,0x8f,0x11,0xe4,0xf5,0x2a,0xf5,0x2b,0xe4,0xf5,0x43,0xe5,0x2b,0x45,0x2a, +0x70,0x6, 0x71,0xf7,0xe4,0xf6,0x8, 0xf6,0xe5,0x2b,0xae,0x2a,0x78,0x5, 0xc3,0x33, +0xce,0x33,0xce,0xd8,0xf9,0xb1,0xe1,0xff,0x71,0xf7,0xe6,0xfc,0x8, 0xe6,0xfd,0xd3, +0xef,0x9d,0xee,0x9c,0x40,0xf, 0xef,0x94,0x1c,0xee,0x94,0x25,0x50,0x7, 0x71,0xf7, +0xa6,0x6, 0x8, 0xa6,0x7, 0x5, 0x43,0xe5,0x43,0xb4,0xb, 0xc0,0x5, 0x2b,0xe5,0x2b, +0x70,0x2, 0x5, 0x2a,0x64,0x13,0x45,0x2a,0x70,0xaf,0xe4,0xf5,0x46,0xf5,0x47,0xf5, +0x2a,0xf5,0x2b,0xe4,0xf5,0x43,0xe5,0x2b,0xae,0x2a,0x78,0x5, 0xc3,0x33,0xce,0x33, +0xce,0xd8,0xf9,0xb1,0xe1,0xff,0xd3,0x94,0x1c,0xee,0x94,0x25,0x40,0xa, 0x5, 0x47, +0xe5,0x47,0x70,0x2, 0x5, 0x46,0x80,0x45,0x71,0xf7,0xe6,0xfc,0x8, 0xe6,0xc3,0x9f, +0xf5,0x45,0xec,0x9e,0xf5,0x44,0xe5,0x45,0xae,0x44,0x78,0x3, 0xce,0xc3,0x13,0xce, +0x13,0xd8,0xf9,0xf5,0x45,0x8e,0x44,0xd3,0x94,0xff,0xe5,0x44,0x94,0x0, 0x40,0x6, +0x75,0x44,0x0, 0x75,0x45,0xff,0x5, 0x47,0xe5,0x47,0xac,0x46,0x70,0x2, 0x5, 0x46, +0x14,0x24,0x60,0xf5,0x82,0x74,0xb, 0x3c,0xf5,0x83,0xe5,0x45,0xf0,0x5, 0x43,0xe5, +0x43,0x64,0xb, 0x70,0x91,0x5, 0x2b,0xe5,0x2b,0x70,0x2, 0x5, 0x2a,0x64,0x13,0x45, +0x2a,0x70,0x80,0x75,0x28,0xa, 0x75,0x29,0xeb,0xe4,0xf5,0x2c,0xf5,0x2a,0xf5,0x2b, +0x85,0x29,0x82,0x85,0x28,0x83,0xe0,0x62,0x2c,0x7e,0x0, 0xe5,0x2b,0x25,0x27,0xff, +0xee,0x35,0x2a,0xfe,0x5, 0x29,0xe5,0x29,0xac,0x28,0x70,0x2, 0x5, 0x28,0x14,0xf5, +0x82,0x8c,0x83,0xe0,0xfd,0x71,0x9f,0x5, 0x2b,0xe5,0x2b,0x70,0x2, 0x5, 0x2a,0xc3, +0x94,0x46,0xe5,0x2a,0x94,0x1, 0x40,0xc8,0xad,0x2c,0x7f,0xf0,0x7e,0x3, 0x71,0x9f, +0xc3,0x74,0xff,0x95,0x2c,0xfd,0x7f,0xf1,0x7e,0x3, 0x71,0x9f,0x7f,0x1, 0x22,0x12, +0x47,0xf, 0x12,0x47,0x31,0xe4,0xf5,0xf8,0x8a,0xf9,0x8b,0xfa,0x8d,0xfb,0x43,0xfc, +0x3, 0x75,0xf8,0x82,0x7f,0xa, 0x71,0xe1,0xd2,0xf8,0x7f,0x4, 0x71,0xe1,0xd2,0xfe, +0x7f,0x26,0x71,0xe1,0xc2,0xfe,0xc2,0xf9,0x7f,0xc, 0x71,0xe1,0xc2,0xf8,0x7f,0x1, +0x71,0xe1,0x43,0xfc,0x3, 0xe4,0xf5,0xf8,0xd2,0xaf,0x22,0x7f,0xfa,0x71,0xe1,0x7f, +0xfa,0xae,0x7, 0x1f,0xee,0x60,0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x80,0xeb,0x22,0xe5,0x43,0x25,0xe0,0x24,0x2d,0xf8,0x22,0xad, +0x7, 0xaf,0x5, 0x1d,0xef,0x60,0xa, 0x71,0xdb,0x7f,0xfa,0x71,0xe1,0x71,0xdb,0x80, +0xf0,0x22,0x12,0x47,0x3b,0xe4,0xf5,0xf8,0x12,0x47,0x7, 0x75,0xf8,0x88,0x7f,0x14, +0x71,0xe1,0x75,0xf8,0x89,0x7f,0x2d,0x71,0xff,0xc2,0xfb,0x7f,0x14,0x71,0xe1,0xc2, +0xf8,0x7f,0xa, 0x80,0x9b,0xf1,0xa2,0x75,0x4d,0xff,0xe4,0xf5,0x4e,0x75,0x4f,0xff, +0xf5,0x50,0xf5,0x5f,0x75,0x60,0x0, 0x75,0x61,0x51,0x12,0x66,0x52,0x12,0x26,0x16, +0x90,0x0, 0x52,0xe4,0x12,0x66,0xc2,0x74,0x1, 0x12,0x67,0xa8,0x90,0x0, 0x54,0x12, +0x1, 0xd7,0x90,0xa, 0xeb,0xe0,0x12,0x1, 0xc5,0x90,0xa, 0xec,0xe0,0x12,0x26,0x16, +0x12,0x46,0xdc,0xe4,0xf5,0x2d,0x12,0x26,0x16,0x12,0x1, 0x4c,0xff,0xe5,0x2d,0xc3, +0x9f,0x50,0x33,0x12,0x47,0x5a,0xe0,0xff,0xe9,0x24,0x31,0xf9,0xe4,0x3a,0xfa,0xe5, +0x2d,0xfd,0x12,0x26,0x2b,0x12,0x27,0x47,0xe0,0xff,0xab,0x2a,0xe5,0x2c,0x24,0x4, +0xf9,0xe4,0x35,0x2b,0xfa,0xe9,0x2d,0xf9,0xec,0x3a,0xfa,0x12,0x27,0x47,0xe0,0xff, +0x74,0x2f,0xb1,0xb6,0x80,0xc0,0xe4,0xf5,0x2d,0x12,0x26,0x16,0x12,0x17,0xc1,0xff, +0xe5,0x2d,0xc3,0x9f,0x50,0x17,0xb1,0xbe,0xe9,0x24,0x20,0xf9,0xe4,0x3a,0x12,0x26, +0x28,0xef,0x12,0x1, 0xc5,0xb1,0xbe,0x74,0x42,0xb1,0xb6,0x80,0xdc,0xe4,0xf5,0x2d, +0x90,0xa, 0xec,0xe0,0xff,0xe5,0x2d,0xc3,0x9f,0x50,0x3e,0xe4,0xf5,0x2e,0x90,0xa, +0xec,0xe0,0xff,0xe5,0x2e,0xc3,0x9f,0x50,0x15,0x74,0x42,0x25,0x2e,0xf8,0xe6,0xff, +0xc3,0x95,0x4f,0x50,0x5, 0x8f,0x4f,0x85,0x2e,0x50,0x5, 0x2e,0x80,0xe0,0x74,0x42, +0x25,0x50,0xf8,0x76,0xff,0x75,0x4f,0xff,0xab,0x2a,0xe5,0x2c,0x24,0x72,0xb1,0xd2, +0xe5,0x50,0x12,0x1, 0xc5,0x5, 0x2d,0x80,0xb7,0xe4,0xf5,0x2d,0x90,0xa, 0xeb,0xe0, +0xff,0xe5,0x2d,0xc3,0x9f,0x50,0x3e,0xe4,0xf5,0x2e,0x90,0xa, 0xeb,0xe0,0xff,0xe5, +0x2e,0xc3,0x9f,0x50,0x15,0x74,0x2f,0x25,0x2e,0xf8,0xe6,0xff,0xc3,0x95,0x4d,0x50, +0x5, 0x8f,0x4d,0x85,0x2e,0x4e,0x5, 0x2e,0x80,0xe0,0x74,0x2f,0x25,0x4e,0xf8,0x76, +0xff,0x75,0x4d,0xff,0xab,0x2a,0xe5,0x2c,0x24,0x56,0xb1,0xd2,0xe5,0x4e,0x12,0x1, +0xc5,0x5, 0x2d,0x80,0xb7,0x90,0xa, 0xee,0xe0,0x12,0x26,0x16,0x90,0x0, 0x30,0x12, +0x1, 0xd7,0x90,0x0, 0x31,0x12,0x1, 0x65,0x90,0x0, 0x51,0xf1,0xbf,0x90,0x0, 0x4d, +0xf1,0xb7,0xff,0x90,0x0, 0x4e,0x12,0x1, 0xd7,0x90,0x0, 0x4f,0xef,0x12,0x1, 0xd7, +0x90,0x0, 0x50,0xef,0x12,0x1, 0xd7,0x90,0x0, 0x82,0x74,0x1, 0x2, 0x1, 0xd7,0x90, +0x0, 0x55,0x74,0x21,0xf0,0x22,0x25,0x2d,0xf8,0xa6,0x7, 0x5, 0x2d,0x22,0x74,0x51, +0x25,0x2d,0xf8,0xe6,0xff,0x22,0xc3,0x13,0x24,0x51,0xf5,0x82,0xe4,0x34,0xb, 0xf5, +0x83,0x22,0xf9,0xe4,0x35,0x2b,0xfa,0x7e,0x0, 0xe9,0x25,0x2d,0xf9,0xee,0x3a,0xfa, +0x22,0x25,0x11,0xf5,0x82,0xe5,0x10,0x3e,0xf5,0x83,0x75,0xf0,0x2, 0xe5,0x43,0x12, +0x5, 0x40,0xe0,0xfe,0xa3,0xe0,0x22,0xab,0x25,0xaa,0x26,0xa9,0x27,0x12,0x4f,0x54, +0xe4,0x90,0xa, 0xe4,0xf0,0xa3,0xf0,0x90,0xa, 0xde,0x74,0xd, 0xf0,0xa3,0x74,0xac, +0xf0,0x22,0xd1,0x0, 0xf1,0x70,0xf1,0x8f,0x7f,0x1, 0x12,0x62,0xdc,0xf1,0xc7,0x12, +0x46,0xe8,0x12,0x3f,0x9e,0x12,0x5a,0x8d,0x90,0xc, 0x59,0xe0,0x24,0xfd,0x60,0x14, +0x14,0x60,0x15,0x24,0xaf,0x60,0x2d,0x24,0xab,0x60,0x12,0x24,0xa9,0x70,0xe9,0x12, +0x21,0x28,0x80,0xe4,0x11,0x9, 0x80,0xe0,0x12,0x25,0xd9,0x80,0xdb,0xf1,0xaf,0x90, +0xa, 0xe8,0xe0,0x64,0xaa,0x60,0xd1,0xe4,0x90,0xa, 0xe0,0xf0,0x90,0xa, 0xe8,0x74, +0xaa,0xf0,0x80,0xc4,0xf1,0xaf,0x90,0xa, 0xe8,0xe0,0xb4,0xaa,0xbb,0x74,0x55,0xf0, +0x90,0xc, 0xed,0x12,0x46,0xff,0x90,0xc, 0xed,0x74,0xff,0xf5,0xf0,0x12,0x2, 0x76, +0x45,0xf0,0x70,0xf2,0xd1,0x8b,0x75,0xe9,0xff,0x80,0x9d,0x7d,0x66,0x7f,0xf8,0x7e, +0x6f,0x71,0xa2,0x7d,0xbb,0x7f,0xf9,0x7e,0x6f,0x61,0xa2,0x8b,0x33,0x8a,0x34,0x89, +0x35,0xe4,0xf5,0x39,0xf5,0x3a,0xf1,0x61,0x70,0x2, 0x5, 0x39,0x64,0x92,0x45,0x39, +0x70,0xf4,0xab,0x36,0xaa,0x37,0xa9,0x38,0xe4,0xf5,0x39,0xf5,0x3a,0xf1,0x61,0x70, +0x2, 0x5, 0x39,0x64,0x53,0x45,0x39,0x70,0xf4,0xe4,0xf5,0x39,0xf5,0x3a,0xab,0x33, +0xe5,0x35,0x24,0xa, 0xf9,0xe4,0x35,0x34,0xfa,0xae,0x39,0xaf,0x3a,0x12,0x1e,0xf2, +0xf1,0x3a,0xf1,0x5a,0x24,0x3, 0xf1,0x2e,0xf1,0x5a,0x24,0x26,0xf1,0x2e,0xf1,0x41, +0x5, 0x3a,0xe5,0x3a,0x70,0x2, 0x5, 0x39,0xc3,0x94,0x5, 0xe5,0x39,0x94,0x0, 0x40, +0xcd,0xab,0x36,0xaa,0x37,0xa9,0x38,0x90,0x0, 0x51,0x74,0x1, 0x12,0x1, 0xd7,0xe4, +0xf5,0xa, 0xf5,0xb, 0xf5,0x9, 0xf5,0x8, 0xd1,0x1, 0xe4,0xa3,0xf0,0x90,0xa, 0xe8, +0xf0,0xa3,0xf0,0xa3,0xf0,0xc2,0x1, 0x90,0xa, 0xe1,0xf0,0xa3,0xf0,0x22,0xf9,0xe4, +0x35,0x37,0xfa,0xae,0x39,0xaf,0x3a,0x12,0x1, 0xf9,0xe9,0x2f,0xf9,0xea,0x3e,0xfa, +0x22,0x74,0xff,0xf5,0xf0,0x12,0x3, 0x3c,0x90,0x0, 0x2, 0x74,0xff,0xf5,0xf0,0x12, +0x3, 0x5b,0x90,0x0, 0x4, 0x74,0xff,0x2, 0x1, 0xd7,0xf1,0x41,0xab,0x36,0xe5,0x38, +0x22,0xe4,0x12,0x1, 0xc5,0x4, 0x29,0xf9,0xe4,0x3a,0xfa,0x5, 0x3a,0xe5,0x3a,0x22, +0x2, 0x0, 0x22,0x30,0x0, 0x7, 0x7f,0x1, 0xf1,0x84,0xc2,0x0, 0x22,0xe4,0xff,0xf1, +0x84,0xd2,0x0, 0x22,0xef,0x70,0x3, 0xd2,0x98,0x22,0xc2,0x98,0x22,0x81,0x12,0x12, +0x41,0xcc,0xc2,0x8e,0x43,0xa2,0x10,0x75,0xa6,0xf0,0x75,0xa5,0x5f,0xd2,0x8e,0xd2, +0xab,0x22,0x8b,0x2a,0x8a,0x2b,0x89,0x2c,0x22,0x11,0xdd,0x53,0xdb,0xf0,0x22,0xe4, +0x90,0xa, 0xe4,0xf0,0xa3,0xf0,0x22,0x12,0x1, 0xd7,0x90,0xa, 0xef,0xe0,0x22,0x12, +0x1, 0xd7,0x90,0xb, 0x43,0xe0,0x22,0xe4,0x90,0xc, 0xac,0xf0,0x12,0x42,0x3b,0xe4, +0x90,0xc, 0xab,0xf0,0x90,0xc, 0xa7,0xf0,0x90,0xc, 0xac,0xe0,0xc4,0x54,0x7, 0x70, +0x6, 0xa3,0x12,0x3a,0x78,0x80,0xf, 0x90,0xc, 0xac,0xe0,0xc4,0x54,0x7, 0xff,0xbf, +0x4, 0x4, 0xa3,0x12,0x38,0xa, 0xe4,0x12,0x3c,0xb2,0xf0,0x90,0xc, 0x73,0x74,0xaa, +0xf0,0xa3,0xf0,0x90,0xc, 0x8d,0xf0,0xa3,0xf0,0x22,0xe0,0xff,0x31,0x6e,0x8f,0x95, +0x22,0x30,0x95,0x5d,0x90,0xc, 0xa9,0xe0,0x4, 0xf0,0xe0,0xff,0xb4,0x1, 0x8, 0x90, +0xc, 0xad,0xe5,0x95,0xf0,0x80,0x2d,0x90,0xc, 0xac,0xe0,0xfe,0xc4,0x54,0x7, 0x70, +0xc, 0xa3,0xe0,0x2f,0x24,0xfe,0xff,0xad,0x95,0x51,0x9b,0x80,0x17,0x90,0xc, 0xac, +0xe0,0xc4,0x54,0x7, 0xff,0xbf,0x4, 0xc, 0x90,0xc, 0xa9,0x51,0x89,0x24,0xfe,0xff, +0xad,0x95,0x71,0x40,0x90,0xc, 0xac,0xe0,0xc4,0x54,0x7, 0xfd,0x70,0xb, 0x51,0x7f, +0x60,0xf, 0x90,0xc, 0xad,0x51,0x78,0x80,0x8, 0xbd,0x4, 0x5, 0x90,0xc, 0xad,0x11, +0xa, 0x30,0x94,0x1f,0x90,0xc, 0xa7,0xe0,0x4, 0xf0,0x90,0xc, 0xac,0xe0,0xc4,0x54, +0x7, 0xfd,0x70,0x8, 0x51,0x7f,0x60,0xb, 0x51,0x86,0x41,0x79,0xbd,0x4, 0x4, 0x51, +0x86,0x11,0xb, 0x22,0x51,0x91,0xff,0xc3,0x94,0x80,0x40,0x10,0xef,0xd3,0x94,0xbf, +0x50,0xa, 0x74,0xb2,0x2f,0xf5,0x82,0xe4,0x34,0xb, 0x21,0x55,0xa8,0x18,0xe6,0x24, +0x4, 0x60,0xb, 0x24,0xfc,0x70,0xe, 0x90,0xc, 0xac,0xe0,0xff,0x21,0x5d,0x90,0xc, +0x59,0xe0,0xff,0x21,0x5d,0xa8,0x18,0xe6,0xff,0xb4,0x3, 0x9, 0x30,0x2, 0x4, 0x51, +0x71,0x80,0x2, 0x51,0x6a,0xef,0x24,0xfe,0x60,0x34,0x24,0xfb,0x50,0x46,0x24,0xfe, +0x24,0xfc,0x50,0x4c,0x24,0xfe,0x24,0xfc,0x50,0x52,0x24,0xfe,0x24,0xfc,0x50,0x55, +0x24,0xfe,0x24,0xfc,0x50,0x58,0x24,0x1e,0x70,0x61,0x30,0x2, 0x4, 0x51,0x71,0x80, +0x2, 0x51,0x6a,0xe5,0xf, 0x24,0x4, 0xf5,0x82,0xe4,0x35,0xe, 0x80,0x47,0x30,0x2, +0x4, 0x51,0x71,0x80,0x2, 0x51,0x6a,0x85,0xf, 0x82,0x85,0xe, 0x83,0xa3,0xa3,0xa3, +0xe0,0xff,0x80,0x39,0xa8,0x18,0xe6,0x24,0x2, 0xff,0xe4,0x33,0x31,0x64,0x80,0x25, +0xa8,0x18,0xe6,0x25,0xf, 0xf5,0x82,0xe4,0x35,0xe, 0x80,0x19,0xa8,0x18,0xe6,0x24, +0xfe,0x31,0x60,0x80,0x10,0xa8,0x18,0xe6,0x24,0xfc,0x31,0x60,0x80,0x7, 0xa8,0x18, +0xe6,0x24,0xfa,0x31,0x60,0xf5,0x83,0xe0,0xff,0x80,0x2, 0x7f,0x0, 0x5, 0x18,0x22, +0xff,0xe4,0x34,0xff,0xfe,0xe5,0xf, 0x2f,0xf5,0x82,0xe5,0xe, 0x3e,0x22,0x51,0x91, +0xfe,0x14,0x60,0x1e,0x14,0x60,0x22,0x24,0xf2,0x50,0x22,0x24,0xc4,0x60,0x28,0x24, +0xfe,0x60,0x32,0x24,0x64,0x60,0x27,0x24,0xea,0x70,0x31,0x90,0xc, 0xac,0xe0,0xff, +0x41,0x67,0x90,0xc, 0xaa,0xe0,0xff,0x41,0x67,0x7f,0xff,0x41,0x67,0x74,0xe8,0x2e, +0xf5,0x82,0xe4,0x34,0xa, 0x41,0x5f,0x90,0xa, 0xf8,0xe0,0xff,0x41,0x67,0x90,0xc, +0xda,0xe0,0xff,0x41,0x67,0x90,0xb, 0x5d,0xe0,0xff,0x41,0x67,0xa8,0x18,0xe6,0xff, +0xc3,0x94,0x10,0x40,0x1b,0xef,0x94,0x26,0x50,0x16,0xe5,0xd, 0x2f,0xf5,0x82,0xe4, +0x35,0xc, 0xf5,0x83,0xe5,0x82,0x24,0xf0,0xf5,0x82,0xe5,0x83,0x34,0xff,0x80,0x7f, +0xa8,0x18,0xe6,0xff,0xc3,0x94,0x50,0x40,0x14,0xef,0xd3,0x94,0x77,0x50,0xe, 0x74, +0xab,0x2f,0x91,0x5c,0xe0,0xff,0x7d,0x78,0x12,0x0, 0x26,0x80,0x6a,0xa8,0x18,0xe6, +0xff,0xc3,0x94,0x78,0x40,0x10,0xef,0xd3,0x94,0x9f,0x50,0xa, 0x74,0x9f,0x2f,0xf5, +0x82,0xe4,0x34,0xa, 0x80,0x49,0xa8,0x18,0xe6,0xff,0xc3,0x94,0xa0,0x40,0x10,0xef, +0xd3,0x94,0xbe,0x50,0xa, 0x74,0x93,0x2f,0xf5,0x82,0xe4,0x34,0xa, 0x80,0x30,0xa8, +0x18,0xe6,0xff,0xc3,0x94,0xbf,0x40,0x10,0xef,0xd3,0x94,0xd2,0x50,0xa, 0x74,0x84, +0x2f,0xf5,0x82,0xe4,0x34,0xa, 0x80,0x17,0xa8,0x18,0xe6,0xff,0xc3,0x94,0xd3,0x40, +0x14,0xef,0xd3,0x94,0xe1,0x50,0xe, 0x74,0x7e,0x2f,0xf5,0x82,0xe4,0x34,0xa, 0xf5, +0x83,0xe0,0xff,0x80,0x2, 0x7f,0xff,0x5, 0x18,0x22,0x75,0xe, 0xc, 0x75,0xf, 0x8d, +0x22,0x75,0xe, 0xc, 0x75,0xf, 0x73,0x22,0xe0,0xff,0x11,0x94,0x8f,0x95,0x22,0xff, +0x11,0x94,0xef,0x64,0x10,0x22,0x90,0xc, 0xa7,0xe0,0xff,0x90,0xc, 0xad,0xe0,0x2f, +0x22,0x15,0x18,0xa8,0x18,0xa6,0x7, 0xa8,0x18,0xe6,0x22,0x8f,0x69,0x8d,0x6a,0xe5, +0x69,0xc3,0x94,0x80,0x40,0xe, 0xe5,0x69,0xd3,0x94,0xbf,0x50,0x7, 0xe5,0x69,0x24, +0x80,0xff,0x80,0x33,0xe5,0x69,0x24,0x4, 0x60,0x29,0x24,0xfc,0x70,0x2b,0x91,0x64, +0xb4,0x4, 0xf, 0x90,0xc, 0x59,0xe0,0x7d,0x3, 0xb4,0x3, 0x2, 0x80,0xd, 0x7f,0x27, +0x80,0x15,0x90,0xc, 0x59,0xe0,0x7d,0x1, 0xb4,0x3, 0x4, 0x7f,0x1, 0x80,0xb, 0x7f, +0x27,0x80,0x4, 0xad,0x6a,0x7f,0x27,0x91,0x7a,0x22,0x8d,0x6b,0xef,0xc3,0x94,0xa, +0x50,0xa, 0x74,0xd1,0x2f,0xf5,0x82,0xe4,0x34,0xc, 0x80,0x34,0xef,0x24,0xf6,0xf5, +0x6c,0xc3,0x94,0x46,0x74,0x80,0x94,0x81,0x50,0x2b,0xe5,0x6c,0xb4,0x4f,0x3, 0x2, +0x37,0x73,0xe5,0x6c,0xc3,0x94,0x10,0x40,0x15,0xe5,0x6c,0xd3,0x94,0x23,0x50,0xe, +0x7d,0x78,0xaf,0x6b,0x12,0x6, 0xd5,0x71,0x36,0xf5,0x83,0xef,0xf0,0x22,0x71,0x36, +0xf5,0x83,0xe5,0x6b,0xf0,0x22,0x74,0xeb,0x25,0x6c,0xf5,0x82,0xe4,0x34,0xa, 0x22, +0x8f,0x69,0x8d,0x6a,0xe5,0x69,0x14,0x60,0x3c,0x14,0x60,0x50,0x24,0xf2,0x50,0x63, +0x24,0xc4,0x60,0x6a,0x24,0xfe,0x60,0x70,0x14,0x60,0x72,0x24,0x65,0x60,0x64,0x24, +0xea,0x70,0x6d,0x91,0x64,0x64,0x4, 0x60,0xd, 0x90,0xc, 0x59,0xe0,0x7d,0x1, 0xb4, +0x3, 0x2, 0x80,0x2f,0x80,0xb, 0x90,0xc, 0x59,0xe0,0x7d,0x3, 0xb4,0x3, 0x2, 0x80, +0x22,0x7f,0x27,0x81,0x7a,0x90,0xc, 0xaa,0xe5,0x6a,0xf0,0xe0,0x75,0xf0,0x20,0xa4, +0xae,0xf0,0x25,0x11,0xf5,0xd, 0xee,0x35,0x10,0xf5,0xc, 0x22,0xe5,0x6a,0xb4,0x4, +0x6, 0x7d,0x4, 0x7f,0x1, 0x80,0xa, 0xe5,0x6a,0x64,0x5, 0x60,0x2, 0x81,0x5b,0xfd, +0xff,0x41,0xea,0x74,0xe8,0x25,0x69,0xf5,0x82,0xe4,0x34,0xa, 0x80,0x47,0x90,0xa, +0xf8,0x81,0x58,0x90,0xc, 0xda,0x81,0x58,0x90,0xb, 0x5d,0x81,0x58,0x2, 0x37,0x73, +0xe5,0x69,0xc3,0x94,0x50,0x40,0x17,0xe5,0x69,0xd3,0x94,0x77,0x50,0x10,0x7d,0x78, +0xaf,0x6a,0x12,0x6, 0xd5,0x74,0xab,0x25,0x69,0x91,0x5c,0xef,0xf0,0x22,0xe5,0x69, +0xc3,0x94,0x78,0x40,0x14,0xe5,0x69,0xd3,0x94,0x9f,0x50,0xd, 0x74,0x9f,0x25,0x69, +0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x80,0x4f,0xe5,0x69,0xc3,0x94,0xa0,0x40,0x14, +0xe5,0x69,0xd3,0x94,0xbe,0x50,0xd, 0x74,0x93,0x25,0x69,0xf5,0x82,0xe4,0x34,0xa, +0xf5,0x83,0x80,0x34,0xe5,0x69,0xc3,0x94,0xbf,0x40,0x14,0xe5,0x69,0xd3,0x94,0xd2, +0x50,0xd, 0x74,0x84,0x25,0x69,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x80,0x19,0xe5, +0x69,0xc3,0x94,0xd3,0x40,0x15,0xe5,0x69,0xd3,0x94,0xe1,0x50,0xe, 0x74,0x7e,0x25, +0x69,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0xe5,0x6a,0xf0,0x22,0xf5,0x82,0xe4,0x34, +0xa, 0xf5,0x83,0x22,0x7b,0x1, 0x7a,0xc, 0x79,0xac,0xe5,0x6a,0x12,0x1, 0xc5,0x53, +0x6a,0x70,0xe5,0x6a,0xc4,0x54,0xf, 0xf5,0x6a,0x22,0xef,0xd3,0x94,0x3f,0x50,0x31, +0xef,0x24,0xfd,0x60,0x2c,0x14,0x60,0x29,0x24,0xe1,0x60,0x25,0x24,0xfd,0x60,0x21, +0x24,0xfe,0x60,0x1d,0x24,0xf9,0x60,0x19,0x24,0xfe,0x60,0x15,0x80,0x0, 0x74,0x32, +0x2f,0xf5,0x82,0xe4,0x34,0xc, 0xf5,0x83,0xed,0xf0,0x90,0xc, 0x72,0xe0,0x44,0x1, +0xf0,0x22,0x90,0xc, 0xa9,0xf0,0x90,0xc, 0xa8,0x22,0xc0,0xe0,0xc0,0x83,0xc0,0x82, +0xc2,0x93,0x90,0xc, 0xa7,0xe4,0xf0,0x91,0xb2,0xf0,0xd0,0x82,0xd0,0x83,0xd0,0xe0, +0x32,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0,0x82,0xc0,0xd0,0x75,0xd0,0x0, 0xc0,0x0, +0xc0,0x1, 0xc0,0x2, 0xc0,0x3, 0xc0,0x4, 0xc0,0x5, 0xc0,0x6, 0xc0,0x7, 0xe5,0xc9, +0x54,0x3, 0xff,0xbf,0x1, 0x6, 0x53,0xc9,0xfc,0x43,0xc9,0x2, 0x11,0x11,0x30,0x95, +0x2, 0xc2,0x95,0x30,0x94,0x2, 0xc2,0x94,0x90,0xc, 0xa8,0x74,0x1, 0xf0,0xd0,0x7, +0xd0,0x6, 0xd0,0x5, 0xd0,0x4, 0xd0,0x3, 0xd0,0x2, 0xd0,0x1, 0xd0,0x0, 0xd0,0xd0, +0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0,0xe0,0x32,0x90,0xc, 0xd2,0x74,0x3, 0xf0,0xe4, +0x90,0xc, 0xd9,0xf0,0x90,0xc, 0xd1,0x74,0xff,0xf0,0x90,0xc, 0xda,0x74,0x1, 0xf0, +0x22,0xf1,0x4d,0xe4,0xf5,0x2e,0x12,0x5, 0x4c,0xaf,0x1, 0x8a,0x30,0x8f,0x31,0x12, +0x17,0x15,0xf1,0xa, 0x20,0xe0,0x10,0x13,0x13,0x54,0x3f,0x20,0xe0,0x9, 0xf1,0xa, +0xc3,0x13,0x20,0xe0,0x2, 0xc1,0xe4,0x20,0x2, 0x8, 0x75,0x2c,0xc, 0x75,0x2d,0x73, +0x80,0x6, 0x75,0x2c,0xc, 0x75,0x2d,0x8d,0xe4,0xf5,0x28,0xd1,0xf8,0x74,0xff,0xf0, +0x5, 0x28,0xe5,0x28,0xb4,0x1a,0xf4,0xf1,0x10,0x74,0xaa,0xf0,0xa3,0xf0,0xf1,0x10, +0xa3,0xa3,0x74,0x1a,0xf0,0x12,0x17,0x15,0x90,0x0, 0x49,0x12,0x1, 0x65,0xff,0xe5, +0x2d,0x24,0x4, 0xd1,0xfc,0xef,0xf0,0xe4,0xf5,0x2f,0xf5,0x28,0x12,0x16,0xfa,0x12, +0x1, 0x4c,0xff,0xe5,0x28,0xc3,0x9f,0x40,0x2, 0xc1,0x89,0xe5,0x28,0x12,0x1c,0x5b, +0xf1,0x4, 0x54,0xf0,0xff,0xd3,0x94,0x0, 0x40,0x29,0xef,0x64,0xb0,0x60,0x2, 0xc1, +0x85,0xf1,0x18,0xff,0xe9,0x24,0x7, 0xf9,0xe4,0x3a,0xfa,0x12,0x1, 0x4c,0x54,0xf, +0x12,0x1, 0xc5,0xab,0x22,0xe5,0x24,0x2f,0x12,0x1c,0x63,0xf1,0x1f,0x64,0x1, 0x60, +0x2, 0xc1,0x85,0xe5,0x28,0x12,0x1c,0x5b,0xf1,0x1f,0x64,0x3, 0x70,0x2, 0xc1,0x85, +0xe5,0x2f,0x25,0xe0,0x25,0xe0,0xf5,0x29,0x90,0x0, 0x3, 0xf1,0x3d,0x24,0x5, 0xd1, +0xe9,0xef,0xf0,0xe5,0x29,0x24,0x6, 0xd1,0xe9,0xe5,0x2b,0xf0,0xe5,0x28,0x12,0x1c, +0x5b,0x90,0x0, 0x5, 0xf1,0x3d,0x24,0x7, 0xd1,0xe9,0xef,0xf0,0xe5,0x29,0x24,0x8, +0xd1,0xe9,0xe5,0x2b,0xf1,0x17,0x12,0x1c,0x61,0xf1,0x4, 0xc4,0x54,0xf0,0xff,0xe5, +0x29,0x24,0x7, 0xd1,0xe9,0xe0,0x2f,0xf1,0x17,0x12,0x1c,0x61,0xf1,0x4, 0xff,0xf4, +0x60,0x1b,0xf1,0x26,0xff,0x64,0x1, 0x60,0x2, 0x5, 0x2e,0xef,0xc4,0x33,0x33,0x54, +0xc0,0xff,0xe5,0x29,0x24,0x5, 0xd1,0xe9,0xe0,0x2f,0xf0,0x80,0x16,0xe5,0x29,0x24, +0x5, 0xff,0xe4,0x33,0xfe,0xe5,0x2d,0x2f,0xf5,0x82,0xe5,0x2c,0x3e,0xf5,0x83,0xe0, +0x24,0xc0,0xf0,0x5, 0x2f,0x5, 0x28,0xa1,0xac,0xf1,0x10,0xa3,0xa3,0xa3,0xe5,0x2e, +0xf0,0xe5,0x2d,0x24,0x19,0xd1,0xfc,0xe4,0xf0,0xf5,0x28,0xe5,0x2d,0x24,0x19,0xd1, +0xfc,0xc0,0x83,0xc0,0x82,0xe0,0xff,0xd1,0xf8,0xe0,0xfe,0xef,0x6e,0xd0,0x82,0xd0, +0x83,0xf0,0x5, 0x28,0xe5,0x28,0xb4,0x19,0xe2,0xb2,0x2, 0x7f,0x1, 0x12,0x37,0x84, +0x12,0x17,0x15,0xf1,0xa, 0xff,0x13,0x13,0x54,0x3f,0x30,0xe0,0x9, 0xaa,0x30,0xa9, +0x31,0x7b,0x1, 0x12,0x59,0x14,0xf1,0x54,0xf1,0x62,0x54,0xfb,0x12,0x1, 0xc5,0x54, +0xfd,0x2, 0x1, 0xc5,0xe4,0xff,0x2, 0x37,0x84,0xfd,0xe4,0x33,0xfc,0xe5,0x2d,0x2d, +0xf5,0x82,0xe5,0x2c,0x3c,0xf5,0x83,0x22,0xe5,0x2d,0x25,0x28,0xf5,0x82,0xe4,0x35, +0x2c,0xf5,0x83,0x22,0x90,0x0, 0x7, 0x2, 0x1, 0x65,0x90,0x0, 0x4f,0x2, 0x1, 0x65, +0x85,0x2d,0x82,0x85,0x2c,0x83,0x22,0xf0,0xe5,0x28,0x75,0xf0,0x7, 0xa4,0x22,0x90, +0x0, 0x7, 0x12,0x1, 0x65,0xff,0xe5,0x31,0x24,0x23,0xf5,0x82,0xe4,0x35,0x30,0xf5, +0x83,0xe5,0x82,0x2f,0xf5,0x82,0xe4,0x35,0x83,0xf5,0x83,0xe0,0x22,0x12,0x2, 0xb7, +0xf5,0x2b,0x85,0xf0,0x2a,0xe5,0x2a,0x54,0xf, 0xff,0xe5,0x29,0x22,0x8b,0x22,0x8a, +0x23,0x89,0x24,0x22,0xab,0x22,0xe5,0x24,0x24,0x4f,0xf9,0xe4,0x35,0x23,0x22,0xf9, +0xe4,0x3a,0xfa,0x12,0x1, 0x4c,0x54,0xfe,0x2, 0x1, 0xc5,0xf1,0x4d,0x78,0x25,0x7c, +0x0, 0x7d,0x0, 0x7b,0xff,0x7a,0xf, 0x79,0xba,0x7e,0x0, 0x7f,0xc, 0x12,0x17,0x12, +0xe4,0x12,0x1, 0xc5,0xe5,0x24,0x24,0x5, 0xf9,0xe4,0x35,0x23,0xa8,0x1, 0xfc,0xad, +0x22,0x7b,0x0, 0x7a,0x0, 0x79,0x25,0x7e,0x0, 0x7f,0xc, 0x2, 0x1, 0x26,0x75,0x45, +0x0, 0x75,0x46,0x0, 0x75,0x47,0x2f,0x75,0x48,0x13,0x75,0x49,0x78,0x7b,0xff,0x7a, +0xf, 0x79,0x35,0x12,0x8, 0x0, 0xe4,0xff,0xfe,0x12,0x40,0xce,0x8f,0x2e,0x90,0xc, +0x52,0xe0,0x70,0x3, 0x75,0x2e,0xff,0xe5,0x2e,0xf4,0x60,0x4c,0x7f,0xf0,0x7e,0x3, +0x12,0x40,0xce,0x8f,0x2a,0x7f,0xf1,0x7e,0x3, 0x12,0x40,0xce,0x8f,0x2b,0xe5,0x2a, +0x45,0x2b,0xf4,0x60,0x3, 0x75,0x2e,0xff,0xe4,0xf5,0x2b,0xf5,0x2c,0xf5,0x2d,0xe5, +0x2d,0x24,0x4, 0xff,0xe4,0x35,0x2c,0xfe,0x12,0x40,0xce,0xef,0x62,0x2b,0x5, 0x2d, +0xe5,0x2d,0x70,0x2, 0x5, 0x2c,0xc3,0x94,0x46,0xe5,0x2c,0x94,0x1, 0x40,0xe0,0xe5, +0x2a,0x65,0x2b,0x60,0x3, 0x75,0x2e,0xff,0x90,0xa, 0xeb,0x74,0x13,0xf0,0x74,0xb, +0x51,0x41,0x90,0xb, 0x5d,0x74,0x4, 0xf0,0xe4,0x90,0xa, 0xee,0xf0,0xa3,0x74,0x28, +0xf0,0x90,0xa, 0xf9,0xf1,0x1f,0x90,0xb, 0x5e,0xd1,0xff,0xe4,0xff,0x90,0xa, 0xeb, +0xe0,0xfe,0xef,0xc3,0x9e,0x40,0xb, 0x74,0xfb,0x2f,0x12,0x27,0x4f,0x74,0xff,0xf0, +0x80,0xe, 0x74,0x2f,0x2f,0xf8,0xe6,0xfe,0x74,0xfb,0x2f,0x12,0x27,0x4f,0xee,0xf0, +0xef,0x90,0xf, 0x53,0x93,0xfe,0x74,0x17,0x2f,0xf1,0x5e,0xee,0xf0,0xf, 0xbf,0x1c, +0xcc,0xe4,0xff,0xef,0x90,0xf, 0x7f,0x93,0xfe,0x74,0x43,0x2f,0x31,0x6d,0xee,0xf0, +0xf, 0xbf,0xe, 0xef,0xe4,0xff,0xef,0x90,0xf, 0x6f,0x93,0xfe,0x74,0x33,0x2f,0xf1, +0x17,0xee,0xf0,0xf, 0xbf,0x10,0xef,0xe4,0xff,0xef,0x90,0xf, 0x8d,0x93,0xfe,0x74, +0x51,0x2f,0x12,0x35,0xca,0xee,0xf0,0xf, 0xbf,0x8, 0xee,0xe4,0xf5,0x2c,0xf5,0x2d, +0x74,0x60,0x25,0x2d,0xf1,0x45,0x5, 0x2d,0xe5,0x2d,0x70,0x2, 0x5, 0x2c,0x64,0xd1, +0x45,0x2c,0x70,0xec,0xe5,0x2e,0xf4,0x60,0x4, 0x7f,0x4, 0x11,0xea,0x22,0xf1,0xf, +0xe4,0xfd,0xf1,0x31,0xed,0xc4,0x54,0xf0,0xf5,0xf8,0x8a,0xf9,0x8b,0xfa,0x43,0xfc, +0x3, 0x44,0xe0,0xf5,0xf8,0xaf,0xfb,0x2, 0x33,0xd2,0x8f,0x42,0x75,0x43,0xb, 0x75, +0x44,0x51,0x31,0x4f,0x31,0x27,0x70,0x2, 0x5, 0x43,0x31,0x43,0x70,0x2, 0x5, 0x45, +0xc3,0x94,0x8, 0xe5,0x45,0x94,0x0, 0x40,0xeb,0x75,0x43,0xb, 0x75,0x44,0x60,0x31, +0x4f,0x31,0x27,0x70,0x2, 0x5, 0x43,0x31,0x43,0x70,0x2, 0x5, 0x45,0xc3,0x94,0xd1, +0xe5,0x45,0x94,0x0, 0x40,0xeb,0x22,0x7e,0x0, 0xe5,0x46,0x25,0x42,0xff,0xee,0x35, +0x45,0xfe,0xe5,0x48,0x2f,0xff,0xe5,0x47,0x3e,0xfe,0x11,0xce,0x5, 0x44,0xe5,0x44, +0xac,0x43,0x22,0x14,0xf5,0x82,0x8c,0x83,0xef,0xf0,0x5, 0x46,0xe5,0x46,0x22,0x75, +0x47,0xa, 0x75,0x48,0xeb,0xc3,0xe5,0x44,0x95,0x48,0xff,0xe5,0x43,0x95,0x47,0xf5, +0x47,0x8f,0x48,0xe4,0xf5,0x45,0xf5,0x46,0x22,0xc3,0x13,0x24,0x43,0xf5,0x82,0xe4, +0x34,0xb, 0xf5,0x83,0x22,0x85,0xe6,0x21,0xe4,0xf5,0x22,0x75,0x99,0x1, 0xd2,0x98, +0x7f,0x2, 0x7e,0x78,0x11,0xd0,0x8f,0x23,0x7f,0x3, 0x7e,0x78,0x11,0xd0,0xe5,0x23, +0xf4,0x60,0xa, 0xe5,0x23,0x6f,0xff,0xbf,0xff,0x3, 0x85,0x23,0x22,0xe5,0x21,0xb4, +0xff,0x3, 0x75,0x21,0x6a,0xe5,0x22,0xb4,0x1, 0xf, 0xe5,0x21,0x64,0x6a,0x60,0x18, +0xe5,0x21,0xb4,0x6b,0x2, 0x80,0x11,0x80,0xb, 0xe5,0x21,0x64,0x6a,0x60,0x5, 0xe5, +0x21,0xb4,0x6b,0x4, 0x53,0xea,0x7f,0x22,0x43,0xea,0x80,0x22,0x51,0x3d,0x7f,0x1, +0xf1,0x66,0x31,0x75,0xf1,0x8d,0xd1,0xef,0x7f,0x1, 0xef,0x70,0x3, 0xc2,0xaf,0x22, +0xd2,0xaf,0x22,0x75,0x33,0x70,0x75,0x90,0x4, 0x75,0x33,0x70,0x7f,0x0, 0x7e,0x78, +0x11,0xd0,0x8f,0x34,0x7f,0x1, 0x7e,0x78,0x11,0xd0,0xe5,0x34,0xf4,0x60,0x1c,0xe5, +0x34,0x6f,0xff,0xbf,0xff,0x15,0xe5,0x34,0xc3,0x94,0x60,0x40,0xe, 0xe5,0x34,0xd3, +0x94,0x7f,0x50,0x7, 0xe5,0x34,0x20,0xe0,0x2, 0xf5,0x33,0xe5,0x33,0xc3,0x13,0x54, +0xf, 0xc4,0x54,0xf0,0xf5,0x93,0xd2,0xac,0x53,0xe8,0x3f,0x43,0xe8,0xc0,0xd2,0xec, +0xd2,0xb9,0xc2,0xc1,0x43,0xb9,0x10,0x53,0xa9,0xef,0x22,0x80,0xa6,0x53,0xdb,0xbf, +0x22,0xa3,0xf0,0xa3,0x74,0x1, 0xf0,0x22,0x12,0x3f,0x4d,0x90,0xc, 0x32,0x74,0x1e, +0xf0,0xa3,0x74,0x5a,0xf0,0xe4,0x90,0xc, 0x35,0xf0,0xa3,0x74,0x6, 0xf0,0xa3,0x74, +0xbb,0xf0,0xa3,0x74,0x1, 0xf0,0xa3,0x74,0xa, 0xf0,0xa3,0x74,0x6, 0xf0,0xa3,0x74, +0x28,0xf0,0xd1,0xe8,0x90,0xc, 0x55,0x74,0x55,0xf0,0xa3,0x74,0x1, 0xf0,0xe4,0xa3, +0xf0,0x74,0x2e,0x51,0x41,0xa3,0x74,0x5a,0xf0,0xe4,0xa3,0xf0,0xa3,0xf0,0x90,0xc, +0x61,0x74,0x5, 0xf0,0x90,0xc, 0x60,0x74,0x96,0xf0,0x90,0xc, 0x65,0x74,0x64,0xf0, +0xa3,0x74,0x28,0xf0,0xd1,0x90,0x90,0xc, 0x63,0xef,0xf0,0x12,0x16,0xfa,0xe4,0x12, +0x1, 0xc5,0x12,0x16,0xfa,0x4, 0xd1,0xdc,0x90,0x0, 0x8, 0xe4,0x12,0x1, 0xd7,0x74, +0x10,0x71,0xa8,0x74,0x6, 0xd1,0x54,0x90,0x0, 0x5, 0x74,0x28,0x12,0x1, 0xd7,0x90, +0x0, 0x6, 0x74,0x28,0x12,0x1, 0xd7,0x74,0xa, 0xd1,0xe2,0x90,0x0, 0x9, 0x74,0x1, +0x12,0x1, 0xd7,0x12,0x17,0x15,0xe4,0x75,0xf0,0x78,0x12,0x3, 0x3c,0x12,0x17,0x15, +0x90,0x0, 0x2, 0x74,0x1e,0x12,0x1, 0xd7,0x90,0x0, 0x3, 0xe4,0x75,0xf0,0x5a,0x12, +0x3, 0x5b,0x90,0x0, 0x22,0xe4,0x12,0x1, 0xd7,0x90,0x0, 0x15,0x74,0x3, 0x12,0x1, +0xd7,0x90,0x0, 0x16,0x74,0x3, 0x12,0x1, 0xd7,0x90,0x0, 0x1a,0xe4,0x12,0x1, 0xd7, +0x90,0x0, 0x1b,0x74,0x12,0x12,0x1, 0xd7,0x90,0x0, 0x17,0xe4,0x12,0x1, 0xd7,0x90, +0x0, 0x1c,0xe4,0x75,0xf0,0xfa,0x12,0x3, 0x5b,0x90,0x0, 0x1e,0x74,0xa, 0x12,0x1, +0xd7,0x90,0x0, 0x1f,0x74,0x5, 0x12,0x1, 0xd7,0x90,0x0, 0x20,0x74,0x23,0x12,0x1, +0xd7,0xf1,0x4f,0x74,0x3, 0x12,0x1, 0xd7,0x90,0x0, 0x11,0xe4,0x12,0x1, 0xd7,0x90, +0x0, 0x12,0x74,0x4, 0x12,0x1, 0xd7,0x90,0x0, 0x13,0x71,0xa1,0x90,0x0, 0xb, 0x71, +0xa1,0x90,0x0, 0xd, 0x74,0x28,0x12,0x1, 0xd7,0x12,0x16,0x49,0x74,0x5, 0x12,0x1, +0xc5,0x12,0x16,0x49,0x90,0x0, 0x1, 0x74,0xb, 0x75,0xf0,0xb8,0x12,0x3, 0x5b,0x90, +0x0, 0x3, 0x74,0xbb,0x12,0x1, 0xd7,0x90,0x0, 0x4, 0xe4,0x75,0xf0,0x96,0x2, 0x3, +0x5b,0xe4,0x75,0xf0,0x64,0x2, 0x3, 0x5b,0x90,0x0, 0x3, 0x2, 0x1, 0xd7,0x12,0x3f, +0x4d,0x75,0x2b,0xc, 0x75,0x2c,0x32,0x90,0xc, 0x72,0xe0,0x20,0xe0,0x2, 0xa1,0x1a, +0x54,0xfe,0xf0,0x90,0x0, 0x2, 0x12,0x1, 0x65,0xff,0xb1,0x35,0xe0,0x6f,0x60,0x15, +0xe0,0xff,0x90,0x0, 0x2, 0x12,0x1, 0xd7,0xef,0x75,0xf0,0x4, 0xa4,0xff,0xe5,0xf0, +0x8f,0xf0,0x12,0x3, 0x3c,0x12,0x17,0x15,0x90,0x0, 0x3, 0x12,0x2, 0xb7,0xff,0xb1, +0x35,0xa3,0xe0,0xfd,0x7c,0x0, 0x6f,0x70,0x2, 0xe5,0xf0,0x60,0x5, 0x90,0x0, 0x3, +0xb1,0x2f,0x12,0x16,0x49,0x90,0x0, 0x3, 0xb1,0x28,0x24,0x5, 0xb1,0x1f,0xfe,0x6f, +0x60,0x18,0xee,0x71,0xa8,0xe5,0x2c,0x24,0x5, 0xb1,0x1f,0x75,0xf0,0x20,0xa4,0xff, +0x90,0x0, 0x1, 0xe5,0xf0,0x8f,0xf0,0x12,0x3, 0x5b,0x12,0x16,0x49,0x90,0x0, 0x4, +0xd1,0x4d,0x24,0x2e,0xb1,0x1f,0xfd,0x7c,0x0, 0x6f,0x70,0x2, 0xe5,0xf0,0x60,0x5, +0x90,0x0, 0x4, 0xb1,0x2f,0x12,0x16,0xfa,0x12,0x1, 0x4c,0xff,0xe5,0x2c,0x24,0x25, +0xb1,0x1f,0xfe,0x6f,0x60,0x4, 0xee,0x12,0x1, 0xc5,0x12,0x17,0xbb,0xff,0xe5,0x2c, +0x24,0x6, 0xb1,0x1f,0xfe,0x6f,0x60,0x7, 0x90,0x0, 0x1, 0xee,0x12,0x1, 0xd7,0x12, +0x1f,0x9, 0xff,0xe5,0x2c,0x24,0x8, 0xb1,0x1f,0xfe,0x6f,0x60,0x20,0xee,0xd1,0x54, +0xe5,0x2c,0x24,0x8, 0xb1,0x1f,0xc3,0x94,0xf, 0x40,0x6, 0xe5,0x2c,0x24,0x8, 0xd1, +0x5a,0xe5,0x2c,0x24,0x8, 0xb1,0x1f,0x90,0x6, 0xf8,0x93,0x71,0xa8,0x12,0x16,0xfa, +0x90,0x0, 0x6, 0xb1,0x28,0x24,0x9, 0xb1,0x1f,0xfe,0x6f,0x60,0x13,0x90,0x0, 0x6, +0xee,0x12,0x1, 0xd7,0xe5,0x2c,0x24,0x9, 0xb1,0x1f,0x90,0x0, 0x5, 0x12,0x1, 0xd7, +0x12,0x16,0xfa,0x12,0x3f,0x4, 0xff,0xb1,0x1b,0xfe,0x6f,0x60,0x7, 0x90,0x0, 0x7, +0xee,0x12,0x1, 0xd7,0x90,0x0, 0x9, 0xb1,0x28,0x24,0x24,0xb1,0x1f,0xfe,0x6f,0x60, +0x7, 0x90,0x0, 0x9, 0xee,0x12,0x1, 0xd7,0x12,0x17,0x15,0x90,0x0, 0xb, 0xd1,0x4d, +0x24,0x33,0xb1,0x1f,0xfd,0x7c,0x0, 0x6f,0x70,0x2, 0xe5,0xf0,0x60,0x5, 0x90,0x0, +0xb, 0xb1,0x2f,0x12,0x17,0x15,0x90,0x0, 0xd, 0xb1,0x28,0x24,0x34,0xb1,0x1f,0xfe, +0x6f,0x60,0x7, 0x90,0x0, 0xd, 0xee,0x12,0x1, 0xd7,0x22,0xe5,0x2c,0x24,0x7, 0xf5, +0x82,0xe4,0x35,0x2b,0xf5,0x83,0xe0,0x22,0x12,0x1, 0x65,0xff,0xe5,0x2c,0x22,0xec, +0x8d,0xf0,0x2, 0x3, 0x5b,0x85,0x2c,0x82,0x85,0x2b,0x83,0x22,0x12,0x3f,0x4d,0xe4, +0xf5,0x2a,0xe5,0x2a,0xc3,0x94,0x5, 0x50,0x13,0xe5,0x27,0x24,0x30,0xf9,0xe4,0x35, +0x26,0xfa,0xe5,0x2a,0x75,0xf0,0x8, 0x12,0x17,0xd5,0x80,0x14,0xe5,0x2a,0x75,0xf0, +0x8, 0xa4,0x24,0x30,0xff,0xe4,0x35,0xf0,0xfe,0xe5,0x27,0x2f,0xf9,0xe5,0x26,0x3e, +0xaf,0x1, 0xf5,0x2b,0x8f,0x2c,0xb1,0x1b,0x64,0x2, 0x60,0x2, 0xc1,0x42,0xe5,0x2c, +0x24,0x7, 0xd1,0x5a,0xb1,0x35,0xa3,0xa3,0xe0,0x24,0xfe,0xf5,0x28,0xb1,0x35,0xa3, +0xa3,0xe0,0x24,0x2, 0xff,0xe4,0xad,0x28,0xd1,0x7d,0x40,0x2, 0xc1,0x42,0xb1,0x35, +0xa3,0xe0,0x24,0xfe,0xf5,0x29,0xb1,0x35,0xa3,0xe0,0x24,0x2, 0xff,0xe4,0x33,0xfe, +0xad,0x29,0xd1,0x7f,0x40,0x2, 0xc1,0x3e,0xc3,0xe5,0x28,0x64,0x80,0x94,0x80,0x40, +0x79,0xe5,0x28,0x64,0x80,0x94,0x9c,0x50,0x71,0xc3,0xe5,0x29,0x64,0x80,0x94,0x80, +0x40,0x68,0xe5,0x29,0x64,0x80,0x94,0x90,0x50,0x60,0xf1,0x27,0xd1,0x64,0x78,0x5, +0xc3,0x33,0xce,0x33,0xce,0xd8,0xf9,0x29,0xf9,0xea,0x3e,0xfa,0xd1,0xf7,0x12,0x37, +0x3a,0x12,0x2, 0x8c,0xfd,0xaf,0x28,0xf1,0x79,0xab,0x29,0xeb,0x33,0x95,0xe0,0xfa, +0xef,0x2b,0xff,0xee,0x3a,0xd1,0x76,0x33,0x12,0x17,0x15,0x8f,0x82,0xf5,0x83,0xe5, +0xf0,0x8d,0xf0,0x12,0x2, 0xef,0xe9,0x24,0x80,0xf9,0xea,0xd1,0x64,0x78,0x5, 0xc3, +0x33,0xce,0x33,0xce,0xd8,0xf9,0x29,0xf9,0xea,0x3e,0xfa,0xaf,0x29,0xd1,0x72,0x33, +0xfe,0x12,0x37,0x3a,0xe4,0xf5,0xf0,0x12,0x3, 0x3c,0x5, 0x29,0xa1,0xa6,0x5, 0x28, +0xa1,0x8d,0x5, 0x2a,0xe5,0x2a,0x64,0xa, 0x60,0x2, 0xa1,0x42,0x22,0x12,0x2, 0xb7, +0xff,0xe5,0x2c,0x22,0x90,0x0, 0x4, 0x2, 0x1, 0xd7,0xf5,0x82,0xe4,0x35,0x2b,0xf5, +0x83,0xe4,0xf0,0x22,0x34,0x3, 0xfa,0xaf,0x28,0xef,0x33,0x95,0xe0,0xfe,0xef,0x22, +0xaf,0x3a,0xef,0x33,0x95,0xe0,0xfe,0xef,0x25,0xe0,0xff,0xee,0x22,0x33,0xfe,0xed, +0x33,0x95,0xe0,0xfc,0xd3,0xed,0x9f,0xee,0x64,0x80,0xf8,0xec,0x64,0x80,0x98,0x22, +0x7f,0x6, 0x7e,0x0, 0xd1,0xcd,0x8f,0x2b,0x7f,0x1e,0x7e,0x0, 0xd1,0xcd,0xe5,0x2b, +0xb4,0x6d,0x3, 0x7f,0x2, 0x22,0xe5,0x2b,0xb4,0x6e,0x3, 0x7f,0x3, 0x22,0xe5,0x2b, +0xb4,0x6f,0x9, 0xbf,0xff,0x3, 0x7f,0x2, 0x22,0x7f,0x3, 0x22,0xe5,0x2b,0xb4,0x67, +0x9, 0xbf,0xff,0x3, 0x7f,0x4, 0x22,0x7f,0x5, 0x22,0x7f,0x0, 0x22,0xf1,0x3b,0x75, +0xf8,0x10,0xf1,0x7, 0x75,0xf8,0xf0,0xaf,0xfb,0x2, 0x33,0xd2,0x90,0x0, 0x1, 0x2, +0x1, 0xd7,0x90,0x0, 0x7, 0x2, 0x1, 0xd7,0x90,0xc, 0x52,0x74,0xff,0xf0,0x22,0x75, +0x92,0xe8,0xd2,0xae,0xd2,0xbe,0x22,0xed,0x25,0xe0,0xff,0xec,0x33,0xfe,0x22,0x74, +0x3, 0xf0,0xa3,0x74,0xe8,0xf0,0x22,0x8c,0xf9,0x8d,0xfa,0x43,0xfc,0x3, 0x22,0xe4, +0x2f,0xff,0xee,0x34,0x7c,0xfe,0x22,0xf5,0x82,0xe4,0x34,0xb, 0xf5,0x83,0x22,0x74, +0x21,0xf0,0xa3,0x74,0x34,0xf0,0x22,0xab,0x22,0xe5,0x24,0x24,0x80,0xf9,0xe5,0x23, +0x22,0xab,0x7, 0xaa,0x6, 0xc2,0xaf,0x43,0xfc,0x3, 0x22,0xad,0x7, 0xac,0x6, 0xc2, +0xaf,0x43,0xfc,0x3, 0x22,0xf5,0x82,0xe4,0x34,0xb, 0xf5,0x83,0xe4,0xf0,0x22,0x90, +0x0, 0xf, 0xe4,0x12,0x1, 0xd7,0x90,0x0, 0x10,0x22,0x74,0x17,0x25,0x2d,0xf5,0x82, +0xe4,0x34,0xb, 0xf5,0x83,0x22,0x53,0xc9,0xf8,0xef,0x70,0x5, 0x43,0xc9,0x3, 0x80, +0x3, 0x43,0xc9,0x2, 0xc2,0xce,0xc2,0xca,0x22,0xef,0x33,0x95,0xe0,0xfe,0xef,0xc4, +0xf8,0x54,0xf, 0xc8,0x68,0xff,0xee,0xc4,0x54,0xf0,0x48,0xfe,0x22,0xe4,0xff,0xa2, +0xaf,0x33,0xfe,0xc2,0x88,0xd2,0xa8,0xc2,0xaf,0x30,0x89,0x6, 0xc2,0x89,0xe4,0xff, +0x80,0x1, 0xf, 0xef,0xd3,0x94,0xfa,0x40,0xf0,0xee,0x24,0xff,0x92,0xaf,0x75,0xf7, +0xff,0x22,0x8b,0x4a,0x8a,0x4b,0x89,0x4c,0x8d,0x4d,0x90,0xa, 0x3c,0x12,0x4, 0xfe, +0x0, 0x0, 0x0, 0x0, 0x90,0xa, 0x40,0x12,0x4, 0xfe,0x0, 0x0, 0x0, 0x1, 0x75,0x5f, +0x1, 0x75,0x60,0xa, 0x75,0x61,0x48,0x12,0x66,0x52,0x90,0xa, 0xeb,0xe0,0xf5,0x4f, +0xa3,0xe0,0xf5,0x4e,0xe5,0x4d,0x70,0x3c,0xf5,0x50,0xe5,0x50,0xc3,0x95,0x4f,0x50, +0x20,0x12,0x48,0x94,0xc0,0x0, 0xc0,0x1, 0xa3,0x12,0x4d,0xdc,0x74,0xfb,0x25,0x50, +0x12,0x27,0x4f,0xe0,0xf9,0xf8,0x12,0x4, 0xdf,0xd0,0x1, 0xd0,0x0, 0xd1,0x2f,0x80, +0xd9,0xe4,0xf5,0x50,0xb1,0xc4,0x78,0x8, 0x12,0x4, 0xcc,0xd1,0x3b,0xe5,0x50,0xb4, +0x4, 0xf2,0x80,0x3d,0xe4,0xf5,0x50,0xe5,0x50,0xc3,0x95,0x4e,0x50,0x22,0x11,0x94, +0xc0,0x0, 0xc0,0x1, 0xa3,0xb1,0xdc,0x74,0x48,0x25,0x50,0xf5,0x82,0xe4,0x34,0xa, +0xf5,0x83,0xe0,0xf9,0xf8,0x12,0x4, 0xdf,0xd0,0x1, 0xd0,0x0, 0xd1,0x2f,0x80,0xd7, +0xe4,0xf5,0x50,0xb1,0xc4,0x78,0x8, 0x12,0x4, 0xcc,0xd1,0x3b,0xe5,0x50,0xb4,0x2, +0xf2,0xe5,0x4d,0x70,0x17,0xf5,0x50,0xd1,0xbe,0x24,0x75,0xd1,0xa7,0x12,0x26,0x2b, +0xef,0x12,0x1, 0xc5,0x5, 0x50,0xe5,0x50,0xb4,0x4, 0xec,0x22,0xe4,0xf5,0x50,0xd1, +0xbe,0x24,0x79,0xd1,0xa7,0x12,0x26,0x2b,0xef,0x12,0x1, 0xc5,0x5, 0x50,0xe5,0x50, +0xb4,0x2, 0xec,0x22,0x90,0xa, 0x3c,0xe0,0xf8,0xa3,0xe0,0xf9,0xa3,0xe0,0xfa,0xa3, +0xe0,0xfb,0x22,0x12,0x3f,0x4d,0xe4,0xf5,0x2e,0xf5,0x2f,0x12,0x66,0x70,0xf5,0x38, +0xf5,0x39,0xf5,0x3d,0xf5,0x3e,0x12,0x16,0x49,0x90,0x0, 0x13,0x12,0x2, 0xb7,0xf5, +0x45,0x85,0xf0,0x44,0x90,0x0, 0x22,0x12,0x1, 0x65,0xf5,0x48,0x12,0x47,0x29,0x34, +0x3, 0xaf,0x1, 0xf5,0x3f,0x8f,0x40,0xe5,0x24,0x24,0x60,0xf9,0xe5,0x23,0x34,0x7, +0xaf,0x1, 0xf5,0x41,0x8f,0x42,0xe4,0xf5,0x30,0xb1,0xa6,0x12,0x47,0x4f,0xe4,0x12, +0x1, 0xd7,0x5, 0x30,0xe5,0x30,0xb4,0x5, 0xf0,0xd1,0x7c,0x70,0x2, 0xa1,0xa5,0xe4, +0xf5,0x30,0xd1,0x7c,0xff,0xe5,0x30,0xc3,0x9f,0x40,0x2, 0x81,0x7f,0x12,0x11,0xc7, +0x12,0x4, 0xfe,0x0, 0x0, 0x0, 0x0, 0xd1,0xc, 0xf5,0x83,0x12,0x4, 0xfe,0x0, 0x0, +0x0, 0x0, 0xb1,0xeb,0x12,0x4, 0xfe,0x0, 0x0, 0x0, 0x0, 0xd1,0x97,0x12,0x4, 0xfe, +0x0, 0x0, 0x0, 0x0, 0x90,0xa, 0x8c,0x74,0x2, 0xf0,0xf5,0xf0,0x12,0x16,0xe1,0x12, +0x1, 0x65,0x12,0x66,0x61,0x40,0xb, 0x12,0x16,0xfa,0x12,0x1, 0x4c,0x12,0x65,0xb6, +0x50,0x5, 0x12,0x16,0x49,0xf1,0xc0,0xe5,0x30,0x75,0xf0,0x2, 0xb1,0xab,0x12,0x17, +0xc1,0x12,0x66,0x61,0x40,0x8, 0x12,0x17,0xbb,0x12,0x65,0xb6,0x50,0x5, 0x12,0x16, +0x49,0xf1,0xc0,0xe5,0x30,0x75,0xf0,0x2, 0xb1,0xab,0x12,0x17,0xc1,0xc3,0x13,0xfd, +0x7c,0x0, 0x12,0x16,0xda,0x12,0x1, 0x65,0x12,0x62,0x51,0x2d,0xff,0xec,0x35,0xf0, +0xfe,0xe4,0xf5,0x43,0x12,0x16,0x33,0xf1,0xb5,0x40,0x3, 0x75,0x43,0x1, 0x12,0x16, +0xd8,0xd1,0x71,0xfe,0xc3,0xef,0x9e,0xf5,0x2e,0x12,0x16,0xd8,0xd1,0x71,0x2f,0xff, +0xe4,0x33,0xfe,0xad,0x2e,0x12,0x46,0x7f,0x40,0x2, 0x81,0x7b,0xe5,0x30,0x75,0xf0, +0x2, 0x12,0x17,0xd5,0xfa,0x12,0x17,0xc1,0xd1,0x74,0xfe,0xc3,0xef,0x9e,0xf5,0x2f, +0xe5,0x30,0x75,0xf0,0x2, 0xb1,0xab,0x12,0x17,0xc1,0xd1,0x74,0x2f,0xff,0xe4,0xad, +0x2f,0x12,0x46,0x7d,0x40,0x2, 0x81,0x77,0xc3,0xe5,0x2e,0x64,0x80,0x94,0x80,0x50, +0x2, 0x81,0x73,0x12,0x16,0xfa,0x12,0x1, 0x4c,0xad,0x2e,0xd1,0xaf,0x40,0x2, 0x81, +0x73,0xc3,0xe5,0x2f,0x64,0x80,0x94,0x80,0x50,0x2, 0x81,0x73,0x12,0x17,0xc1,0xff, +0xad,0x2f,0xd1,0xb0,0x40,0x2, 0x81,0x73,0xaf,0x2e,0x12,0x47,0x79,0xef,0x2d,0xf5, +0x3c,0xee,0x3c,0xf5,0x3b,0xe5,0x3c,0x25,0xe0,0xff,0xe5,0x3b,0x33,0xfe,0xe5,0x40, +0x2f,0xf5,0x82,0xe5,0x3f,0x12,0x55,0xad,0xff,0xc3,0x95,0x48,0xf5,0x47,0xee,0x94, +0x0, 0xf5,0x46,0xd3,0xe5,0x47,0x94,0x0, 0xe5,0x46,0x64,0x80,0x94,0x80,0x50,0x2, +0x81,0x73,0xef,0x95,0x45,0xee,0x95,0x44,0x40,0xa, 0xb1,0xa6,0x90,0x0, 0x10,0x74, +0x1, 0x12,0x1, 0x92,0xe5,0x43,0xb4,0x1, 0x2c,0xe5,0x3c,0xae,0x3b,0x78,0x3, 0xce, +0xc3,0x13,0xce,0x13,0xd8,0xf9,0x25,0x42,0xf5,0x82,0xe5,0x41,0x3e,0xf5,0x83,0xc0, +0x83,0xc0,0x82,0xe0,0xff,0x7c,0x0, 0xe5,0x3c,0x12,0x57,0x62,0xf4,0xfe,0xef,0x5e, +0xd0,0x82,0xd0,0x83,0xf0,0xe5,0x2e,0x25,0xe0,0xf5,0x3d,0xe5,0x2f,0x25,0xe0,0xf5, +0x3e,0x12,0x16,0xd8,0xd1,0x88,0x60,0x77,0xe5,0x30,0x75,0xf0,0x2, 0xb1,0xab,0x12, +0x17,0xc1,0xd1,0x68,0x60,0x69,0x12,0x11,0xc7,0xc0,0x83,0xc0,0x82,0x11,0x97,0xc0, +0x0, 0xc0,0x1, 0xc0,0x2, 0xc0,0x3, 0xd1,0x44,0xd0,0x3, 0xd0,0x2, 0xd0,0x1, 0xd0, +0x0, 0xb1,0xb7,0xd0,0x82,0xd0,0x83,0xd1,0x94,0xc0,0x83,0xc0,0x82,0x11,0x97,0xae, +0x46,0xd1,0x5, 0xeb,0x25,0x47,0xb1,0xb9,0xd0,0x82,0xd0,0x83,0x12,0x4, 0xf2,0xd1, +0xc, 0xf5,0x83,0xc0,0x83,0xc0,0x82,0x11,0x97,0xc0,0x0, 0xc0,0x1, 0xc0,0x2, 0xc0, +0x3, 0x12,0x66,0x27,0xd1,0x54,0xd0,0x3, 0xd0,0x2, 0xd0,0x1, 0xd0,0x0, 0xb1,0xb7, +0xd0,0x82,0xd0,0x83,0xf1,0xab,0x24,0x64,0xf5,0x82,0xe4,0x34,0xa, 0x81,0x5b,0xe4, +0xf5,0x3a,0xd1,0x7c,0xad,0x3a,0xd1,0xaf,0x50,0x51,0xe5,0x30,0x65,0x3a,0x60,0x47, +0xed,0x25,0xe0,0xff,0xec,0x33,0x8f,0x82,0xf5,0x83,0xd1,0x88,0x60,0x11,0x12,0x46, +0x70,0xf1,0xcd,0x12,0x17,0xc1,0xd1,0x68,0x60,0x5, 0x75,0x3a,0xff,0x80,0x2c,0x12, +0x46,0x70,0x33,0xd1,0x61,0x8f,0x82,0xf5,0x83,0x12,0x1, 0x65,0xfd,0x7b,0x4, 0xd1, +0x8e,0x60,0x14,0x12,0x46,0x70,0xf1,0xcd,0x12,0x17,0xc1,0xfd,0x7b,0x4, 0xd1,0x6b, +0x60,0x5, 0xe4,0xf5,0x3a,0x80,0x4, 0x5, 0x3a,0x80,0xa7,0xe5,0x3a,0x70,0x73,0xd1, +0xc, 0xf5,0x83,0xc0,0x83,0xc0,0x82,0x11,0x97,0xc0,0x0, 0xc0,0x1, 0xc0,0x2, 0xc0, +0x3, 0xae,0x46,0xaf,0x47,0xd1,0x5, 0xf1,0xda,0xaf,0x2e,0xd1,0x54,0xd0,0x3, 0xd0, +0x2, 0xd0,0x1, 0xd0,0x0, 0xb1,0xb7,0xd0,0x82,0xd0,0x83,0x12,0x11,0xc4,0xc0,0x83, +0xc0,0x82,0x11,0x97,0xc0,0x0, 0xc0,0x1, 0xc0,0x2, 0xc0,0x3, 0xae,0x46,0xaf,0x47, +0xd1,0x5, 0xf1,0xda,0xd1,0x52,0xd0,0x3, 0xd0,0x2, 0xd0,0x1, 0xd0,0x0, 0xb1,0xb7, +0xd0,0x82,0xd0,0x83,0xb1,0xe8,0xc0,0x83,0xc0,0x82,0x11,0x97,0xb1,0xfb,0xb1,0xb7, +0xd0,0x82,0xd0,0x83,0xd1,0x94,0xc0,0x83,0xc0,0x82,0x11,0x97,0xb1,0xfb,0xeb,0x2f, +0x80,0x78,0xe5,0x3a,0xf4,0x60,0x7c,0xd1,0xc, 0xf5,0x83,0xc0,0x83,0xc0,0x82,0x11, +0x97,0xc0,0x0, 0xc0,0x1, 0xc0,0x2, 0xc0,0x3, 0x12,0x66,0x27,0xd1,0x54,0xd0,0x3, +0xd0,0x2, 0xd0,0x1, 0xd0,0x0, 0xb1,0xb7,0xd0,0x82,0xd0,0x83,0x12,0x11,0xc4,0xc0, +0x83,0xc0,0x82,0x11,0x97,0xc0,0x0, 0xc0,0x1, 0xc0,0x2, 0xc0,0x3, 0xd1,0x44,0xd0, +0x3, 0xd0,0x2, 0xd0,0x1, 0xd0,0x0, 0xb1,0xb7,0xd0,0x82,0xd0,0x83,0xb1,0xe8,0xc0, +0x83,0xc0,0x82,0x11,0x97,0xae,0x46,0xd1,0x5, 0xeb,0x25,0x47,0xb1,0xb9,0xd0,0x82, +0xd0,0x83,0xf1,0xab,0x24,0x78,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0xc0,0x83,0xc0, +0x82,0x11,0x97,0xae,0x46,0xd1,0x5, 0xeb,0x25,0x47,0xb1,0xb9,0xd0,0x82,0xd0,0x83, +0x12,0x4, 0xf2,0x5, 0x2f,0x21,0xd0,0x5, 0x2e,0x21,0xa9,0x5, 0x30,0x21,0x2, 0xe4, +0xf5,0x30,0xd1,0x7c,0xff,0xe5,0x30,0xc3,0x9f,0x40,0x2, 0xa1,0x9b,0xe5,0x30,0x75, +0xf0,0x2, 0x12,0x17,0xd5,0xfa,0x12,0x17,0xc1,0xc3,0x13,0xfd,0x7c,0x0, 0x12,0x16, +0xda,0x12,0x1, 0x65,0x12,0x62,0x51,0x2d,0xff,0xec,0x35,0xf0,0xfe,0x12,0x16,0x33, +0xf1,0xb5,0x50,0x2, 0xa1,0x97,0x12,0x11,0xc7,0xc0,0x83,0xc0,0x82,0xb1,0xdc,0x78, +0x6, 0x12,0x4, 0xdf,0xd0,0x82,0xd0,0x83,0xd1,0x94,0x11,0x97,0x12,0x11,0xc7,0xb1, +0xdc,0x12,0x4, 0x13,0xef,0x24,0x20,0xf5,0x32,0xe4,0x3e,0xf5,0x31,0xd1,0xc, 0xf5, +0x83,0xc0,0x83,0xc0,0x82,0xb1,0xdc,0x78,0x6, 0x12,0x4, 0xdf,0xd0,0x82,0xd0,0x83, +0xb1,0xe8,0x11,0x97,0xd1,0xc, 0xf5,0x83,0xb1,0xdc,0x12,0x4, 0x13,0xef,0x24,0x20, +0xf5,0x36,0xe4,0x3e,0xf5,0x35,0xe5,0x39,0xb1,0xa8,0x90,0x0, 0xa, 0xe5,0x31,0x85, +0x32,0xf0,0x12,0x3, 0x5b,0x90,0x0, 0xc, 0xe5,0x35,0x85,0x36,0xf0,0x12,0x3, 0x5b, +0xb1,0xeb,0xc0,0x83,0xc0,0x82,0xe0,0xfc,0xa3,0xe0,0xfd,0xa3,0x12,0x16,0x44,0x90, +0x0, 0x12,0x12,0x1, 0x65,0xf9,0xf8,0x12,0x4, 0xcc,0xd0,0x82,0xd0,0x83,0xb1,0xe8, +0xb1,0xdc,0xe4,0x7b,0x7f,0xfa,0xf9,0xf8,0xc3,0x12,0x4, 0xbb,0x50,0x9, 0xb1,0xeb, +0x12,0x4, 0xfe,0x0, 0x0, 0x0, 0x7f,0xb1,0xeb,0xa3,0xa3,0xa3,0xe0,0xfd,0xe5,0x39, +0xb1,0xa8,0x90,0x0, 0xf, 0xed,0x12,0x1, 0xd7,0xb1,0xa6,0x90,0x0, 0x10,0x12,0x1, +0x65,0xfd,0xe5,0x39,0x75,0xf0,0x7, 0xa4,0xb1,0xae,0x90,0x0, 0x10,0xed,0x12,0x47, +0x53,0x12,0x1, 0x65,0xd3,0x94,0xf, 0x40,0xc, 0xe5,0x39,0xb1,0xa8,0x90,0x0, 0x10, +0x74,0xf, 0x12,0x1, 0xd7,0x5, 0x39,0x5, 0x30,0x81,0x82,0xd1,0x61,0x90,0x0, 0x2d, +0xe5,0x39,0x12,0x1, 0xd7,0x22,0xe5,0x30,0x75,0xf0,0x7, 0xa4,0xab,0x2b,0x25,0x2d, +0xf9,0xe5,0x2c,0x35,0xf0,0xfa,0x22,0xeb,0x2f,0xff,0xea,0x3e,0xfe,0xe9,0x3d,0xfd, +0xe8,0x3c,0xfc,0x22,0x90,0xa, 0x3c,0xa3,0xa3,0xa3,0xe0,0xff,0x74,0x44,0x25,0x50, +0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0xef,0xf0,0x90,0xa, 0x3c,0xe0,0xfc,0xa3,0xe0, +0xfd,0xa3,0xe0,0xfe,0xa3,0xe0,0xff,0x22,0x12,0x4, 0xf2,0xe5,0x30,0x25,0xe0,0x25, +0xe0,0x24,0x64,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0xe5,0x46,0xa2,0xe7,0x13, +0xfe,0xe5,0x47,0x13,0xff,0xee,0x33,0x95,0xe0,0xfd,0xfc,0x22,0xe5,0x30,0x25,0xe0, +0x25,0xe0,0x24,0x50,0xf5,0x82,0xe4,0x34,0xa, 0x22,0x7e,0x0, 0x7c,0x0, 0x12,0x1f, +0x1d,0xeb,0xfd,0xd3,0xef,0x9d,0xee,0x9c,0x7f,0x0, 0x50,0x2, 0x7f,0x1, 0x22,0xeb, +0x4f,0xff,0xea,0x4e,0xfe,0xe9,0x4d,0xfd,0xe8,0x4c,0xfc,0x90,0xa, 0x3c,0x12,0x4, +0xf2,0x5, 0x50,0x22,0xae,0x46,0xaf,0x47,0xab,0x7, 0xaa,0x6, 0xea,0x33,0x95,0xe0, +0xf9,0xf8,0xaf,0x2f,0xef,0x33,0x95,0xe0,0xfe,0xfd,0xfc,0x2, 0x3, 0x88,0x12,0x1, +0xc5,0xab,0x2b,0xaa,0x2c,0xa9,0x2d,0x22,0xfd,0x7b,0x2, 0xaf,0x3e,0xd1,0x1a,0xef, +0x22,0x12,0x1, 0x65,0xc3,0x13,0xff,0x90,0xa, 0x8c,0xe0,0x22,0xab,0x2b,0xaa,0x2c, +0xa9,0x2d,0x90,0x0, 0x2d,0x2, 0x1, 0x65,0x12,0x1, 0x65,0xfd,0x7b,0x2, 0xaf,0x3d, +0xd1,0x1a,0xef,0x22,0x12,0x4, 0xf2,0xe5,0x30,0x25,0xe0,0x25,0xe0,0x24,0x78,0xf5, +0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0xf9,0xe4,0x35,0x4b,0xfa,0xe5,0x50,0x22,0xff, +0xed,0x33,0x95,0xe0,0xfc,0xc3,0xed,0x9f,0x74,0x80,0xf8,0x6c,0x98,0x22,0x74,0x44, +0x25,0x50,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0xe0,0xff,0xab,0x4a,0xe5,0x4c,0x22, +0x12,0x3f,0x4d,0xd1,0x61,0x90,0x0, 0x2f,0x12,0x1, 0x65,0x30,0xe0,0x3b,0x12,0x17, +0x15,0x90,0x0, 0x4d,0x12,0x2, 0xb7,0xc3,0x94,0x3c,0xe5,0xf0,0x94,0x0, 0x50,0xc, +0x90,0x0, 0x4d,0xe4,0x75,0xf0,0x1, 0x12,0x2, 0xef,0x80,0x1d,0x12,0x35,0xf7,0x85, +0x25,0x36,0xf1,0x44,0x12,0x16,0x49,0x12,0x27,0xcb,0x12,0x17,0x15,0xf1,0x4b,0x90, +0xa, 0xe9,0x74,0x5, 0xf0,0xa3,0x74,0xdc,0xf0,0xd1,0x61,0x90,0x0, 0x2f,0x12,0x1, +0x65,0x20,0xe0,0x1f,0x12,0x17,0x15,0xf1,0x4b,0x30,0x1, 0x17,0xc2,0x1, 0xd1,0x7c, +0xd3,0x94,0x0, 0x40,0xe, 0x12,0x35,0xf7,0x85,0x25,0x36,0xf1,0x44,0x12,0x16,0x49, +0x12,0x27,0xcb,0x22,0x85,0x26,0x37,0x85,0x27,0x38,0x22,0x90,0x0, 0x4d,0xe4,0xf5, +0xf0,0x2, 0x3, 0x5b,0x90,0xc, 0x53,0x74,0x30,0xf0,0xa3,0x74,0x3, 0xf0,0xae,0x2, +0xaf,0x1, 0xad,0x7, 0xac,0x6, 0xe9,0x24,0x60,0xf9,0xea,0x34,0x7, 0xfa,0xe4,0xf5, +0x33,0xf5,0x34,0xe5,0x34,0x25,0xe0,0xff,0xe5,0x33,0x33,0xfe,0xed,0x2f,0xf5,0x82, +0xec,0x12,0x67,0x60,0xe5,0x34,0xae,0x33,0x78,0x3, 0xce,0xc3,0x13,0xce,0x13,0xd8, +0xf9,0xf5,0x82,0x8e,0x83,0x74,0xff,0x12,0x1, 0xd7,0x5, 0x34,0xe5,0x34,0x70,0x2, +0x5, 0x33,0xb4,0xc0,0xce,0xe5,0x33,0xb4,0x1, 0xc9,0x22,0x12,0x4, 0xf2,0xe5,0x30, +0x25,0xe0,0x25,0xe0,0x22,0x12,0x2, 0x8c,0xfd,0xc3,0xef,0x9d,0xee,0x95,0xf0,0x22, +0x90,0x0, 0x10,0x12,0x1, 0x65,0xc3,0x13,0x90,0xa, 0x8c,0xf0,0x22,0x33,0xfe,0xab, +0x2b,0xe5,0x2d,0x2f,0xf9,0xe5,0x2c,0x3e,0xfa,0x22,0x78,0x1, 0x12,0x4, 0xcc,0xa8, +0x4, 0xa9,0x5, 0xaa,0x6, 0xab,0x7, 0x22,0xef,0x24,0x9f,0x12,0x50,0x4, 0xef,0x24, +0x9e,0x12,0x50,0x4, 0xef,0x24,0x9d,0xf5,0x82,0xee,0x34,0x7, 0xf5,0x83,0x74,0x1, +0xf0,0xef,0x24,0xa4,0xf5,0x82,0xee,0x34,0x7, 0xf5,0x83,0xe4,0xf0,0x22,0xe5,0xe8, +0x54,0xc0,0x64,0xc0,0x60,0x3, 0x12,0x37,0xc7,0x22,0x12,0x3f,0x4d,0x85,0xc9,0x31, +0x12,0x16,0xfa,0x12,0x1, 0x4c,0xff,0x70,0x28,0x12,0x17,0x15,0x12,0x1f,0xf7,0xd3, +0x94,0x0, 0x40,0x5, 0xe4,0xf5,0x8, 0x1, 0xd6,0x12,0x17,0xbb,0x20,0xe0,0x2, 0x1, +0xd6,0x12,0x3f,0x4, 0x65,0x8, 0x60,0x2, 0x1, 0xd6,0xf5,0x8, 0x4, 0x31,0x24,0x1, +0xd6,0xef,0xb4,0x1, 0x12,0x12,0x17,0x15,0x12,0x1f,0xf7,0x60,0x79,0x12,0x16,0xfa, +0x31,0x23,0x75,0xa, 0x1e,0x80,0x6f,0x12,0x16,0xfa,0x12,0x1, 0x4c,0x64,0x3, 0x70, +0x65,0xff,0x31,0x2c,0x12,0x36,0x0, 0x12,0x0, 0x1e,0xe5,0xdb,0x30,0xe1,0xfb,0xc2, +0x89,0xd2,0xa8,0x20,0x96,0xfd,0x43,0x87,0x2, 0xc2,0xa8,0x12,0x36,0x0, 0x12,0x0, +0x1e,0x53,0xdb,0xf0,0x12,0x27,0x3b,0x85,0x22,0x36,0x85,0x23,0x37,0x85,0x24,0x38, +0xab,0x2e,0xaa,0x2f,0xa9,0x30,0x12,0x36,0x9b,0x12,0x16,0xfa,0x31,0x23,0xae,0x2c, +0xaf,0x2d,0x12,0x4f,0xe8,0x12,0x4e,0x61,0x12,0x4f,0x54,0x90,0xc, 0x31,0x74,0xa, +0xf0,0x90,0xc, 0x31,0xe0,0x70,0xfa,0x85,0x2b,0x36,0x85,0x2c,0x37,0x85,0x2d,0x38, +0x12,0x16,0x49,0x12,0x27,0xcb,0xe4,0xf5,0x32,0xe5,0x9, 0x70,0x22,0xff,0x31,0x35, +0xe5,0xdb,0x30,0xe1,0xf4,0xc2,0xcd,0x12,0x16,0xfa,0x12,0x1, 0x4c,0xb4,0x1, 0xe9, +0xe5,0x32,0x70,0xe5,0x75,0x32,0x1, 0x53,0xc9,0xfc,0x43,0xc9,0x1, 0x80,0xda,0xe4, +0xf5,0xa, 0xf5,0x9, 0x85,0x31,0xc9,0xd2,0xcd,0x12,0x3f,0x54,0xfa,0x12,0x1, 0x4c, +0x54,0xef,0x12,0x1, 0xc5,0x12,0x17,0x15,0x12,0x1f,0xf7,0x90,0x0, 0x4c,0x12,0x1, +0xd7,0x1, 0xe, 0xe4,0x12,0x1, 0xc5,0x90,0xc, 0x57,0xf0,0x22,0xef,0x70,0x3, 0xd2, +0x84,0x22,0xc2,0x84,0x22,0xef,0x70,0x3, 0x43,0x87,0x1, 0xbf,0x1, 0x3, 0x43,0x87, +0x2, 0xbf,0x2, 0x3, 0x43,0x87,0x2, 0x22,0x12,0x3f,0x4d,0xe4,0xf5,0x2c,0x12,0x16, +0xfa,0x12,0x4e,0x82,0x60,0x8, 0x90,0x0, 0x2e,0x12,0x1, 0x65,0x60,0x3, 0x7f,0x0, +0x22,0x12,0x1, 0x4c,0xc3,0x13,0xf5,0x29,0x12,0x17,0xc1,0xc3,0x13,0xf5,0x2a,0xe4, +0xf5,0x2b,0xf5,0x28,0x12,0x16,0x7a,0x12,0x0, 0x6, 0xd3,0xef,0x94,0x14,0xee,0x64, +0x80,0x94,0x80,0x40,0x2, 0x5, 0x2b,0x51,0x87,0x40,0xe9,0xe5,0x2b,0xd3,0x94,0x7, +0x40,0x2, 0x51,0x8f,0xe4,0xf5,0x2b,0xe5,0x29,0xd3,0x94,0x0, 0x40,0x35,0xe4,0xf5, +0x28,0x12,0x16,0x7a,0x12,0x0, 0x6, 0xc0,0x6, 0xc0,0x7, 0xe5,0x29,0x75,0xf0,0x20, +0xa4,0x24,0x60,0xf5,0x82,0x74,0x3, 0x35,0xf0,0xf5,0x83,0x12,0x17,0x15,0x12,0x16, +0x8b,0x12,0x0, 0x6, 0xd0,0x5, 0xd0,0x4, 0x12,0x46,0x84,0x40,0x2, 0x5, 0x2b,0x51, +0x87,0x40,0xce,0xe5,0x2b,0xd3,0x94,0x7, 0x40,0x2, 0x51,0x8f,0xe4,0xf5,0x2b,0xe5, +0x29,0xc3,0x94,0x12,0x50,0x35,0xe4,0xf5,0x28,0x12,0x16,0x7a,0x12,0x0, 0x6, 0xc0, +0x6, 0xc0,0x7, 0xe5,0x29,0x75,0xf0,0x20,0xa4,0x24,0xa0,0xf5,0x82,0x74,0x3, 0x35, +0xf0,0xf5,0x83,0x12,0x17,0x15,0x12,0x16,0x8b,0x12,0x0, 0x6, 0xd0,0x5, 0xd0,0x4, +0x12,0x46,0x84,0x40,0x2, 0x5, 0x2b,0x51,0x87,0x40,0xce,0xe5,0x2b,0xd3,0x94,0x7, +0x40,0x2, 0x51,0x8f,0xe5,0x2a,0xd3,0x94,0x0, 0x40,0x23,0xe5,0x29,0x75,0xf0,0x20, +0x12,0x1c,0x5e,0xe5,0x2a,0x75,0xf0,0x2, 0xa4,0x24,0x7e,0xff,0xe5,0xf0,0x34,0x3, +0xfe,0x12,0x37,0x3a,0x51,0x9c,0x50,0x6, 0x74,0xa, 0x25,0x2c,0xf5,0x2c,0xe5,0x2a, +0x24,0x1, 0xff,0xe4,0x33,0xfe,0xc3,0xef,0x94,0x13,0xee,0x64,0x80,0x94,0x80,0x50, +0x23,0xe5,0x29,0x75,0xf0,0x20,0x12,0x1c,0x5e,0xe5,0x2a,0x75,0xf0,0x2, 0xa4,0x24, +0x82,0xff,0xe5,0xf0,0x34,0x3, 0xfe,0x12,0x37,0x3a,0x51,0x9c,0x50,0x6, 0x74,0xa, +0x25,0x2c,0xf5,0x2c,0xaf,0x2c,0x22,0x5, 0x28,0xe5,0x28,0xc3,0x94,0xb, 0x22,0xe5, +0x2b,0x24,0xf9,0x75,0xf0,0xa, 0xa4,0x25,0x2c,0xf5,0x2c,0x22,0x12,0x2, 0x8c,0xc3, +0x94,0xce,0xe5,0xf0,0x64,0x80,0x94,0x7f,0x22,0x12,0x3f,0x4d,0x7a,0xf, 0x79,0xb1, +0xb1,0x8e,0x7a,0xf, 0x79,0xb2,0xb1,0x81,0x12,0x1, 0x26,0xe4,0x90,0xa, 0x45,0xf0, +0xe4,0x90,0xa, 0x46,0xf0,0x90,0xa, 0x46,0xe0,0xff,0xc3,0x94,0x8, 0x50,0x2e,0x12, +0x47,0x27,0x34,0x3, 0xfa,0x90,0xa, 0x45,0xe0,0x12,0x11,0xcd,0xe0,0x75,0xf0,0x20, +0xa4,0x29,0xf9,0xe5,0xf0,0x3a,0xfa,0x74,0x3d,0x2f,0x71,0xe, 0x75,0xf0,0x2, 0x12, +0x16,0xe3,0x12,0x4f,0x4e,0x90,0xa, 0x46,0xe0,0x4, 0xf0,0x80,0xc8,0x90,0xa, 0x45, +0xe0,0x4, 0xf0,0xe0,0xb4,0x1, 0xb9,0x22,0xe5,0x2e,0x25,0xe0,0x24,0x3d,0xf5,0x82, +0xe4,0x34,0xa, 0xf5,0x83,0xe0,0x22,0xf1,0x70,0x7a,0x0, 0x79,0x12,0xb1,0x8e,0x7a, +0x0, 0x79,0x13,0xb1,0x81,0x12,0x1, 0x26,0x12,0x2d,0x7e,0x12,0x1, 0x4c,0xf5,0x3a, +0x90,0xc, 0xeb,0xe0,0xc3,0x94,0x1, 0x50,0x5, 0xe0,0x4, 0xf0,0x81,0x63,0xe4,0x90, +0xc, 0xeb,0xf0,0xaa,0x35,0xa9,0x36,0xae,0x2, 0xaf,0x1, 0x8e,0x40,0x8f,0x41,0xf1, +0x38,0xf5,0x42,0x8f,0x43,0xe4,0xf5,0x3a,0xe4,0xf5,0x3c,0xf5,0x3d,0x75,0x3e,0x7f, +0x75,0x3f,0xff,0x90,0x0, 0x1a,0xf1,0x77,0xfd,0x75,0xf0,0x10,0xa4,0xff,0xae,0xf0, +0xe5,0x3a,0x7a,0x0, 0x2f,0xf5,0x45,0xea,0x3e,0xf5,0x44,0x8d,0x3b,0x12,0x2e,0xd9, +0x90,0x0, 0x1b,0x12,0x1, 0x65,0xff,0xe5,0x3b,0xd3,0x9f,0x40,0x2, 0x81,0x29,0x90, +0xa, 0x46,0x74,0x8, 0xf0,0xe4,0x90,0xa, 0x45,0xf0,0x90,0xa, 0x45,0xe0,0xff,0xc3, +0x94,0x1, 0x50,0x32,0x74,0x3c,0x2f,0x12,0x11,0xcf,0xe0,0xb5,0x3b,0x20,0xe4,0x90, +0xa, 0x46,0xf0,0x90,0xa, 0x46,0xe0,0xff,0xc3,0x94,0x8, 0x50,0x11,0x74,0x3d,0x2f, +0x71,0xe, 0x65,0x3a,0x60,0x8, 0x90,0xa, 0x46,0xe0,0x4, 0xf0,0x80,0xe5,0x90,0xa, +0x45,0xe0,0x4, 0xf0,0x80,0xc4,0x90,0xa, 0x46,0xe0,0x64,0x8, 0x70,0x47,0xe5,0x45, +0x25,0xe0,0xff,0xe5,0x44,0x33,0xfe,0xe5,0x41,0x2f,0xf5,0x82,0xe5,0x40,0x12,0x1f, +0x55,0xfd,0xe5,0x43,0x2f,0xf5,0x82,0xe5,0x42,0xb1,0xad,0x2d,0xff,0xee,0x3c,0xfe, +0xd3,0xef,0x95,0x3d,0xee,0x95,0x3c,0x40,0x4, 0x8e,0x3c,0x8f,0x3d,0xc3,0xef,0x95, +0x3f,0xee,0x95,0x3e,0x50,0x4, 0x8e,0x3e,0x8f,0x3f,0x74,0x10,0x25,0x45,0xf5,0x45, +0xe4,0x35,0x44,0xf5,0x44,0x5, 0x3b,0x61,0x7d,0x12,0x2e,0xd9,0x90,0x0, 0x1c,0x12, +0x2, 0xb7,0xff,0xc3,0xe5,0x3d,0x95,0x3f,0xfd,0xe5,0x3c,0x95,0x3e,0xfc,0xd3,0xed, +0x9f,0xec,0x95,0xf0,0x40,0x8, 0x90,0xc, 0xea,0x74,0x2, 0xf0,0x80,0xa, 0x5, 0x3a, +0xe5,0x3a,0x64,0xb, 0x60,0x2, 0x61,0x58,0xe5,0x3a,0xb4,0xb, 0x6, 0x90,0xc, 0xea, +0x74,0x1, 0xf0,0x90,0xc, 0xea,0xe0,0xff,0x22,0x12,0x3f,0x4d,0x75,0x30,0x1, 0xb1, +0x68,0x12,0x16,0xfa,0x71,0x17,0x8f,0x2e,0xb1,0x68,0x12,0x16,0xfa,0x12,0x2d,0xdd, +0x8f,0x2f,0x12,0x16,0x49,0x90,0x7, 0xa4,0x12,0x1, 0x65,0xff,0x70,0x4a,0x4, 0xb1, +0x62,0xe5,0x2e,0xb4,0x2, 0xd, 0x90,0x7, 0x9d,0x74,0x6, 0x12,0x1, 0xd7,0xe4,0xf5, +0x30,0x80,0x2f,0x12,0x17,0x15,0x12,0x4e,0x82,0x70,0x1f,0xb1,0x7b,0x70,0x1b,0x90, +0xc, 0xec,0xe0,0xc3,0x94,0x2, 0x40,0xa, 0xe4,0xf0,0x12,0x16,0x49,0x90,0x7, 0xa4, +0x80,0x46,0x90,0xc, 0xec,0xe0,0x4, 0xf0,0xa1,0x4c,0x12,0x16,0x49,0x74,0x4, 0xb1, +0x62,0xe4,0x90,0xc, 0xec,0xf0,0x80,0x74,0xef,0x64,0x1, 0x70,0x44,0x12,0x16,0x49, +0xb1,0x62,0xe5,0x2f,0x60,0x5, 0x90,0x7, 0xa4,0x80,0x4e,0xe5,0x2e,0xb4,0x2, 0x6, +0x90,0x7, 0x9d,0xe4,0x80,0x53,0x12,0x17,0x15,0x12,0x4e,0x82,0x70,0xd, 0xb1,0x7b, +0x70,0x9, 0x12,0x16,0x49,0x90,0x7, 0x9d,0x4, 0x80,0x3e,0xb1,0x68,0x85,0x25,0x3a, +0x85,0x26,0x3b,0x85,0x27,0x3c,0x12,0x17,0x15,0x12,0x2a,0x9c,0xe4,0xf5,0x30,0x80, +0x2b,0x12,0x16,0x49,0x90,0x7, 0xa4,0x12,0x1, 0x65,0xb4,0x3, 0x1f,0xe5,0x2f,0x24, +0xfe,0x60,0xa, 0x4, 0x70,0xe, 0x90,0x7, 0x9d,0x74,0x3, 0x80,0xc, 0x90,0x7, 0x9d, +0x74,0x2, 0x80,0x5, 0x90,0x7, 0xa4,0x74,0x1, 0x12,0x1, 0xd7,0xe5,0x30,0xb4,0x1, +0x10,0x12,0x17,0x15,0x90,0x0, 0x80,0xe4,0xf1,0x80,0x90,0x0, 0x82,0xe4,0x12,0x1, +0xd7,0x22,0x90,0x7, 0x9d,0x2, 0x1, 0xd7,0x85,0x28,0x34,0x85,0x29,0x35,0x85,0x2a, +0x36,0x85,0x2b,0x37,0x85,0x2c,0x38,0x85,0x2d,0x39,0x22,0x90,0x0, 0x86,0x2, 0x1, +0x65,0x78,0x3d,0x7c,0xa, 0x7d,0x1, 0x7b,0xff,0x7e,0x0, 0x7f,0x8, 0x22,0x78,0x3c, +0x7c,0xa, 0x7d,0x1, 0x7b,0xff,0x7e,0x0, 0x7f,0x1, 0x2, 0x1, 0x26,0xe5,0x2e,0x25, +0xe0,0xff,0xe5,0x2d,0x33,0xfe,0xe5,0x32,0x2f,0xf5,0x82,0xe5,0x31,0x3e,0xf5,0x83, +0xe0,0xfe,0xa3,0xe0,0x22,0x12,0x16,0xf4,0xf1,0x28,0xff,0xf5,0x35,0x12,0x16,0x49, +0x90,0x0, 0x15,0x12,0x1, 0x65,0xf5,0x36,0x90,0x0, 0x16,0x12,0x1, 0x65,0xf5,0x37, +0xef,0x70,0x2, 0xe1,0x8, 0x12,0x16,0xfa,0xf1,0x28,0xb4,0x4, 0x8, 0xe5,0x36,0x25, +0xe0,0x25,0xe0,0xf5,0x36,0xae,0x2, 0xaf,0x1, 0x8e,0x2f,0x8f,0x30,0xf1,0x38,0xf5, +0x31,0x8f,0x32,0xe5,0x27,0x24,0x60,0xf9,0xe5,0x26,0x34,0x7, 0xaf,0x1, 0xf5,0x33, +0x8f,0x34,0xe4,0xf5,0x2b,0x12,0x17,0x15,0x12,0x1, 0x4c,0xff,0xe5,0x2b,0xc3,0x9f, +0x40,0x2, 0xe1,0x8, 0xe5,0x2b,0x75,0xf0,0x10,0xa4,0x85,0xf0,0x2d,0xf5,0x2e,0xe4, +0xf5,0x2c,0x12,0x17,0x15,0x12,0x17,0xc1,0xff,0xe5,0x2c,0xc3,0x9f,0x40,0x2, 0xe1, +0x4, 0xe5,0x35,0xb4,0x3, 0x2, 0xc1,0xc8,0xe5,0x35,0xb4,0x2, 0xf, 0xf1,0x9, 0xc0, +0x83,0xc0,0x82,0xf1,0x1d,0xd5,0x82,0x2, 0x15,0x83,0xc1,0xec,0xe5,0x35,0xb4,0x5, +0x6, 0x12,0x1f,0x45,0xfd,0x80,0x2e,0xe5,0x35,0x64,0x6, 0x70,0x65,0xe5,0x2e,0xae, +0x2d,0x78,0x3, 0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9,0xf1,0x2e,0xf1,0x5c,0xfe,0xef, +0x5e,0x60,0x30,0xb1,0x9d,0xf1,0x42,0x40,0x11,0xe5,0x36,0xfd,0xe5,0x2e,0x25,0xe0, +0xff,0xe5,0x2d,0x33,0xfe,0xf1,0x12,0xec,0x80,0x44,0x12,0x1f,0x45,0xf1,0x4d,0x12, +0x46,0x88,0x50,0x64,0xf1,0x12,0xc0,0x83,0xc0,0x82,0xf1,0x1d,0xd5,0x82,0x2, 0x15, +0x83,0x80,0x49,0xe5,0x2e,0xae,0x2d,0x78,0x3, 0xce,0xc3,0x13,0xce,0x13,0xd8,0xf9, +0xf1,0x2e,0xc0,0x83,0xc0,0x82,0xf1,0x5c,0xfe,0xef,0x4e,0xd0,0x82,0xd0,0x83,0xf0, +0x80,0x36,0xb1,0x9d,0xf1,0x42,0x40,0xd, 0xe5,0x36,0xfd,0xf1,0x9, 0xe4,0x8d,0xf0, +0x12,0x2, 0x60,0x80,0x23,0x12,0x1f,0x45,0xf1,0x4d,0x12,0x46,0x88,0x50,0x19,0xf1, +0x12,0xc0,0x83,0xc0,0x82,0xf1,0x1d,0xd5,0x82,0x2, 0x15,0x83,0x15,0x82,0xe0,0x9e, +0xd0,0x82,0xd0,0x83,0xf0,0xa3,0xef,0xf0,0x5, 0x2e,0xe5,0x2e,0x70,0x2, 0x5, 0x2d, +0x5, 0x2c,0xc1,0x22,0x5, 0x2b,0xc1,0x5, 0x22,0xe5,0x2e,0x25,0xe0,0xff,0xe5,0x2d, +0x33,0xfe,0xe5,0x30,0x2f,0xf5,0x82,0xe5,0x2f,0x3e,0xf5,0x83,0x22,0x7e,0x0, 0xc3, +0xa3,0xe0,0x95,0x36,0xff,0x5, 0x82,0x22,0x90,0x7, 0x9d,0x2, 0x1, 0x65,0x25,0x34, +0xf5,0x82,0xe5,0x33,0x3e,0xf5,0x83,0x22,0xe9,0x24,0x80,0xf9,0xea,0x34,0x3, 0xaf, +0x1, 0x22,0xd3,0x95,0x37,0x74,0x80,0xf8,0xee,0x64,0x80,0x98,0x22,0xfd,0xc3,0xe4, +0x95,0x37,0xfb,0xe4,0x94,0x0, 0xfa,0xc3,0xed,0x9b,0xea,0x22,0xe0,0xff,0x7c,0x0, +0xe5,0x2e,0x54,0x7, 0x24,0x7, 0xf5,0x82,0xec,0x34,0x7, 0xf5,0x83,0xe4,0x93,0x22, +0x8b,0x31,0x8a,0x32,0x89,0x33,0x22,0xab,0x37,0xaa,0x38,0xa9,0x39,0x2, 0x1, 0x65, +0x12,0x1, 0xd7,0x90,0x0, 0x81,0xe4,0x2, 0x1, 0xd7,0x12,0x3f,0x4d,0x12,0x4e,0x82, +0xf5,0x32,0x12,0x4e,0x61,0xe4,0x12,0x4e,0x5e,0x12,0x46,0x54,0xe5,0x32,0x70,0x3, +0x2, 0x58,0xe5,0x78,0x38,0x7c,0x0, 0x7d,0x0, 0x12,0x17,0x15,0x7e,0x0, 0x7f,0xa, +0x12,0x1, 0x26,0xe4,0xf5,0x2e,0xe5,0x2e,0xc3,0x95,0x32,0x40,0x3, 0x2, 0x58,0x9d, +0x12,0x17,0x15,0x75,0xf0,0x2, 0xe5,0x2e,0x12,0x16,0xe3,0x12,0x1, 0x65,0xc3,0x13, +0xf5,0x30,0xe5,0x2e,0x75,0xf0,0x2, 0x12,0x17,0xd5,0xfa,0x12,0x17,0xc1,0xc3,0x13, +0xf5,0x31,0x74,0x33,0x25,0x2e,0xf8,0xe4,0xf6,0xe5,0x30,0x64,0x12,0x60,0x3, 0x2, +0x58,0x98,0xf5,0x2f,0xe5,0x2f,0x90,0xf, 0xc6,0x93,0x65,0x31,0x60,0x2, 0x1, 0x8d, +0x74,0x33,0x25,0x2e,0xf8,0x76,0x1, 0x12,0x16,0x49,0xe5,0x30,0x31,0x7, 0xe5,0x31, +0x12,0x16,0x90,0x12,0x16,0xfa,0x11,0xff,0xee,0x95,0xf0,0x40,0x65,0x12,0x4e,0x61, +0x74,0x1, 0x12,0x4e,0x5e,0x12,0x1f,0x9, 0xff,0x7e,0x0, 0xe9,0x24,0x1, 0xf9,0xe4, +0x3a,0x11,0xf0,0xe5,0x2f,0x12,0x4e,0x5e,0x90,0x0, 0x4, 0x74,0x1, 0x12,0x1, 0x92, +0xab,0x28,0xe5,0x2a,0x24,0x60,0xf9,0xe5,0x29,0x34,0x7, 0xfa,0xe5,0x30,0x75,0xf0, +0x10,0xa4,0x7c,0x0, 0x25,0x31,0xff,0xec,0x35,0xf0,0xfe,0xef,0x78,0x3, 0x11,0xf8, +0xd8,0xfc,0x12,0x7, 0x76,0xff,0xe5,0x30,0xc4,0x54,0xf0,0x25,0x31,0x54,0x7, 0xfe, +0x74,0x1, 0xa8,0x6, 0x8, 0x80,0x2, 0xc3,0x33,0xd8,0xfc,0xf4,0x5f,0x12,0x1, 0xc5, +0x80,0x16,0x12,0x17,0x15,0x90,0x0, 0x2d,0x74,0xff,0x12,0x1, 0x92,0x5, 0x2f,0xe5, +0x2f,0x64,0x3, 0x60,0x3, 0x2, 0x57,0xf4,0x5, 0x2e,0x2, 0x57,0xb6,0xe4,0xf5,0x2f, +0xf5,0x2e,0xe5,0x2e,0xc3,0x95,0x32,0x50,0x3c,0x74,0x33,0x25,0x2e,0xf8,0xe6,0x70, +0x30,0xe5,0x2e,0x25,0xe0,0x24,0x38,0xf8,0xe6,0xff,0x12,0x17,0x15,0x75,0xf0,0x2, +0xe5,0x2f,0x12,0x16,0xe3,0xef,0x12,0x1, 0xd7,0xe5,0x2e,0x25,0xe0,0x24,0x39,0xf8, +0xe6,0xfd,0xe5,0x2f,0x75,0xf0,0x2, 0x12,0x17,0xd5,0xfa,0xed,0x12,0x46,0xdc,0x5, +0x2f,0x5, 0x2e,0x80,0xbd,0x22,0x7e,0x0, 0xe5,0x2a,0x24,0x23,0xf9,0xe4,0x35,0x29, +0xfa,0xe9,0x2f,0xf9,0xee,0x3a,0xfa,0x22,0xce,0xa2,0xe7,0x13,0xce,0x13,0x22,0x12, +0x2, 0x8c,0xfd,0xd3,0xef,0x9d,0x22,0x90,0x3, 0x80,0x75,0xf0,0x20,0x12,0x5, 0x40, +0x75,0xf0,0x2, 0x22,0x8b,0x32,0x8a,0x33,0x89,0x34,0xe4,0xff,0xab,0x32,0xe5,0x34, +0x24,0x28,0xf9,0xe4,0x35,0x33,0xfa,0xef,0xfd,0x12,0x26,0x2b,0x74,0x3, 0x12,0x1, +0xc5,0xab,0x32,0xe5,0x34,0x24,0x23,0xf9,0xe4,0x35,0x33,0x31,0x71,0x90,0x0, 0x2d, +0x31,0x67,0xef,0x12,0x17,0x93,0x90,0x0, 0x37,0x31,0x67,0xef,0x12,0x17,0x93,0xf, +0xbf,0x5, 0xc9,0xab,0x32,0xaa,0x33,0xa9,0x34,0x90,0x0, 0x41,0xe4,0x12,0x1, 0xd7, +0x90,0x0, 0x42,0xe4,0x2, 0x1, 0xd7,0xab,0x32,0xaa,0x33,0xa9,0x34,0x75,0xf0,0x2, +0x22,0xfa,0xe9,0x2d,0xf9,0xec,0x3a,0xfa,0x74,0x3, 0x2, 0x1, 0xc5,0xc0,0xe0,0xc0, +0xf0,0xc0,0x83,0xc0,0x82,0xc0,0xd0,0x75,0xd0,0x0, 0xc0,0x0, 0xc0,0x1, 0xc0,0x2, +0xc0,0x3, 0xc0,0x4, 0xc0,0x5, 0xc0,0x6, 0xc0,0x7, 0x51,0x82,0x5, 0x13,0xe5,0x13, +0x70,0x2, 0x5, 0x12,0x90,0xc, 0x31,0xe0,0x60,0x2, 0x14,0xf0,0xc3,0xe5,0x13,0x94, +0xe8,0xe5,0x12,0x94,0x3, 0x40,0xe, 0x75,0x12,0x0, 0x75,0x13,0x0, 0xe5,0x8, 0x94, +0x64,0x50,0x2, 0x5, 0x8, 0x90,0xa, 0xe5,0xe0,0x4, 0xf0,0x70,0x6, 0x90,0xa, 0xe4, +0xe0,0x4, 0xf0,0x90,0xa, 0xde,0xe0,0xfe,0xa3,0xe0,0xff,0xc3,0x90,0xa, 0xe5,0xe0, +0x9f,0x90,0xa, 0xe4,0xe0,0x9e,0x50,0x3, 0x12,0x0, 0x1e,0x90,0xa, 0xe9,0xe0,0xfe, +0xa3,0xe0,0xff,0x4e,0x60,0x16,0xef,0x64,0x1, 0x4e,0x70,0x2, 0xd2,0x1, 0x90,0xa, +0xea,0xe0,0x24,0xff,0xf0,0x90,0xa, 0xe9,0xe0,0x34,0xff,0xf0,0x51,0x94,0x40,0xe, +0x90,0xa, 0xe2,0xe0,0x4, 0xf0,0x70,0x6, 0x90,0xa, 0xe1,0xe0,0x4, 0xf0,0x90,0xc, +0x59,0xe0,0xb4,0xaa,0xf, 0x90,0xa, 0xe0,0xe0,0xff,0x4, 0xf0,0xef,0xd3,0x94,0x64, +0x40,0x2, 0x51,0x8d,0xe5,0xa, 0xc3,0x95,0xb, 0x50,0x12,0x5, 0xa, 0xe5,0xc9,0x54, +0x3, 0xff,0xbf,0x1, 0xb, 0x74,0x3, 0x25,0xa, 0xf5,0xa, 0x80,0x3, 0x75,0x9, 0x1, +0x90,0xc, 0xa8,0xe0,0xff,0x60,0x10,0xc3,0x94,0x28,0x50,0x5, 0xe0,0x4, 0xf0,0x80, +0x6, 0x12,0x37,0xcf,0x12,0x2f,0xff,0xd0,0x7, 0xd0,0x6, 0xd0,0x5, 0xd0,0x4, 0xd0, +0x3, 0xd0,0x2, 0xd0,0x1, 0xd0,0x0, 0xd0,0xd0,0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0, +0xe0,0x32,0xc2,0x8e,0x75,0xa6,0xf0,0x75,0xa5,0x5f,0xd2,0x8e,0x22,0x90,0xc, 0x59, +0x74,0x1, 0xf0,0x22,0x90,0xa, 0xe1,0xe0,0xfe,0xa3,0xe0,0xff,0xe4,0xfc,0xfd,0x7b, +0x40,0x7a,0x9c,0xf9,0xf8,0xd3,0x2, 0x4, 0xa5,0xc0,0xe0,0xc0,0xf0,0xc0,0x83,0xc0, +0x82,0xc0,0xd0,0x75,0xd0,0x0, 0xc0,0x0, 0xc0,0x1, 0xc0,0x2, 0xc0,0x3, 0xc0,0x4, +0xc0,0x5, 0xc0,0x6, 0xc0,0x7, 0x12,0x17,0xfa,0x90,0xc, 0xac,0xe0,0x54,0xfd,0xf0, +0xd0,0x7, 0xd0,0x6, 0xd0,0x5, 0xd0,0x4, 0xd0,0x3, 0xd0,0x2, 0xd0,0x1, 0xd0,0x0, +0xd0,0xd0,0xd0,0x82,0xd0,0x83,0xd0,0xf0,0xd0,0xe0,0x32,0x12,0x3f,0x4d,0xe4,0xf5, +0x2e,0xf5,0x2f,0xf5,0x30,0x12,0x66,0x70,0xf5,0x3c,0x75,0x3d,0xff,0xf5,0x42,0xf5, +0x43,0x12,0x16,0x49,0x90,0x0, 0xb, 0x12,0x2, 0xb7,0xf5,0x47,0x85,0xf0,0x46,0xe4, +0xf5,0x48,0xf5,0x49,0x90,0x0, 0x3, 0x12,0x2, 0xb7,0xf5,0x4b,0x85,0xf0,0x4a,0x12, +0x47,0x29,0x34,0x3, 0xaf,0x1, 0xf5,0x44,0x8f,0x45,0xe4,0xf5,0x2e,0x12,0x16,0xfa, +0x12,0x67,0x68,0x9f,0x40,0x2, 0xe1,0xdd,0xe5,0x2e,0x75,0xf0,0x10,0xa4,0x85,0xf0, +0x40,0xf5,0x41,0xe4,0xf5,0x2f,0x12,0x17,0xbb,0xff,0xe5,0x2f,0xc3,0x9f,0x40,0x2, +0xe1,0xd9,0x12,0x62,0x23,0x12,0x67,0x28,0x95,0x47,0xee,0x95,0x46,0x40,0x2, 0x5, +0x48,0x12,0x62,0x23,0x12,0x67,0x28,0x95,0x4b,0xe5,0x4a,0x12,0x62,0x80,0x50,0x2, +0xe1,0xcd,0xe5,0x2e,0x70,0x6, 0xf5,0x30,0xf5,0x31,0x80,0x15,0xe5,0x41,0x24,0xf0, +0xff,0xe5,0x40,0x34,0xff,0x12,0x46,0x76,0x12,0x62,0x2a,0xf5,0x30,0xa3,0xe0,0xf5, +0x31,0x12,0x16,0xfa,0x12,0x1, 0x4c,0x14,0xb5,0x2e,0x7, 0xe4,0xf5,0x32,0xf5,0x33, +0x80,0x14,0xe5,0x41,0x24,0x10,0xff,0xe4,0x35,0x40,0x12,0x46,0x76,0x12,0x62,0x2a, +0xf5,0x32,0xa3,0xe0,0xf5,0x33,0xe5,0x2f,0x70,0x6, 0xf5,0x36,0xf5,0x37,0x80,0x15, +0xe5,0x41,0x24,0xff,0xff,0xe5,0x40,0x34,0xff,0x12,0x46,0x76,0x12,0x62,0x2a,0xf5, +0x36,0xa3,0xe0,0xf5,0x37,0x12,0x17,0xc1,0x14,0xb5,0x2f,0x7, 0xe4,0xf5,0x34,0xf5, +0x35,0x80,0x14,0xe5,0x41,0x24,0x1, 0xff,0xe4,0x35,0x40,0x12,0x46,0x76,0x12,0x62, +0x2a,0xf5,0x34,0xa3,0xe0,0xf5,0x35,0x12,0x62,0x23,0xfe,0xc3,0xee,0x64,0x80,0x94, +0x80,0x50,0x2e,0xe5,0x31,0x95,0x33,0xe5,0x32,0x12,0x65,0x30,0x98,0x40,0x6, 0x85, +0x32,0x30,0x85,0x33,0x31,0xd3,0xe5,0x31,0x95,0x35,0xe5,0x34,0x12,0x65,0x30,0x98, +0x40,0x6, 0x85,0x34,0x30,0x85,0x35,0x31,0xd3,0x12,0x65,0x2a,0x98,0x40,0x35,0x80, +0x2d,0xc3,0xe5,0x31,0x95,0x33,0xe5,0x32,0x12,0x65,0x30,0x98,0x50,0x6, 0x85,0x32, +0x30,0x85,0x33,0x31,0xc3,0xe5,0x31,0x95,0x35,0xe5,0x34,0x12,0x65,0x30,0x98,0x50, +0x6, 0x85,0x34,0x30,0x85,0x35,0x31,0xc3,0x12,0x65,0x2a,0x98,0x50,0x6, 0x85,0x36, +0x30,0x85,0x37,0x31,0xe5,0x2e,0x25,0xe0,0xf5,0x42,0xe5,0x2f,0x25,0xe0,0xf5,0x43, +0xc3,0xee,0x64,0x80,0x94,0x80,0x40,0x2, 0xa1,0x41,0x12,0x62,0x23,0x12,0x62,0x77, +0x40,0x2, 0xa1,0x37,0xc3,0xe4,0x95,0x4b,0xfd,0xe4,0x95,0x4a,0xfc,0xd3,0xef,0x9d, +0xec,0x12,0x62,0x80,0x40,0x2, 0xa1,0x37,0xe5,0x49,0x70,0x9, 0x90,0xa, 0x8c,0xe5, +0x42,0xf0,0xa3,0xa1,0x32,0xe5,0x49,0xc3,0x94,0x5, 0x40,0x5, 0x75,0x49,0x5, 0xa1, +0x37,0xe4,0xf5,0x3d,0x12,0x67,0x14,0x95,0x49,0x74,0x80,0xf8,0x6c,0x98,0x50,0x62, +0x12,0x46,0xf7,0x12,0x66,0xed,0x7b,0x2, 0x12,0x66,0x8d,0x60,0x51,0xaf,0x3d,0x12, +0x46,0x72,0x33,0xfe,0x12,0x66,0xf8,0x12,0x66,0xd, 0x60,0x42,0xaf,0x3d,0x12,0x46, +0x69,0x25,0xe0,0xfd,0xee,0x33,0xfc,0x74,0x8c,0x2d,0xf5,0x82,0x74,0xa, 0x12,0x62, +0x4d,0xff,0x74,0x8d,0x2d,0xf5,0x82,0x74,0xa, 0x12,0x61,0xff,0xfe,0xa3,0xe0,0xff, +0xc3,0x12,0x46,0x85,0x50,0x13,0xaf,0x3d,0x12,0x46,0x72,0x33,0xfe,0x12,0x66,0xed, +0xe5,0x42,0xf0,0x12,0x66,0xf8,0xe5,0x43,0xf0,0x75,0x3d,0xff,0x80,0x4, 0x5, 0x3d, +0x80,0x92,0xe5,0x49,0xb5,0x3d,0x10,0x12,0x62,0xc8,0xe5,0x42,0xf0,0xe5,0x49,0x12, +0x62,0xbc,0xe5,0x43,0xf0,0x5, 0x49,0x5, 0x41,0xe5,0x41,0x70,0x2, 0x5, 0x40,0xe1, +0xd5,0x12,0x62,0x23,0xfe,0xa3,0xe0,0xff,0xc3,0x12,0x62,0x7c,0x50,0x2, 0xe1,0xcd, +0xef,0x95,0x4b,0xe5,0x4a,0x12,0x62,0x80,0x50,0x2, 0xe1,0xcd,0xe5,0x3c,0x70,0x9, +0x90,0xa, 0x3c,0xe5,0x42,0xf0,0xa3,0xe1,0xc8,0xe5,0x3c,0xc3,0x94,0x14,0x40,0x5, +0x75,0x3c,0x14,0xe1,0xcd,0xe4,0xf5,0x3d,0x12,0x67,0x14,0x95,0x3c,0x74,0x80,0xf8, +0x6c,0x98,0x40,0x2, 0xe1,0xb6,0xed,0x25,0xe0,0xff,0xec,0x12,0x64,0xe9,0xe0,0xfd, +0x7b,0x2, 0x12,0x66,0x8f,0x60,0x3a,0xaf,0x3d,0x12,0x46,0x72,0x12,0x64,0xf6,0x12, +0x66,0xd, 0x60,0x2d,0x12,0x62,0x38,0xff,0x74,0x3d,0x2d,0xf5,0x82,0x74,0xa, 0x12, +0x61,0xff,0xfe,0xa3,0xe0,0xff,0xc3,0x12,0x46,0x85,0x40,0x2, 0xe1,0xad,0xaf,0x3d, +0x12,0x46,0x72,0x12,0x64,0xe9,0xe5,0x42,0xf0,0x12,0x64,0xf8,0xe5,0x43,0xf0,0xe1, +0xad,0xaf,0x3d,0x12,0x46,0x72,0x12,0x64,0xe9,0x7b,0x6, 0x12,0x66,0x8d,0x70,0x2, +0xe1,0xb2,0xaf,0x3d,0x12,0x46,0x72,0x12,0x64,0xf6,0x12,0x66,0xd, 0x70,0x2, 0xe1, +0xb2,0xaf,0x3d,0x12,0x46,0x72,0x12,0x64,0xe9,0xe0,0xfd,0xc3,0x13,0x25,0x2e,0xf5, +0x3e,0x12,0x64,0xf8,0xe0,0xc3,0x13,0x25,0x2f,0xf5,0x3f,0xe4,0xf5,0x30,0xf5,0x31, +0xc3,0xe5,0x31,0x95,0x3c,0x74,0x80,0xf8,0x65,0x30,0x98,0x50,0x39,0xaf,0x3d,0x12, +0x46,0x69,0x65,0x31,0x70,0x3, 0xee,0x65,0x30,0x60,0x21,0x12,0x67,0x98,0x12,0x64, +0xe9,0xe0,0x12,0x4e,0x68,0x60,0x15,0x12,0x67,0x98,0x12,0x64,0xf6,0xe0,0xfd,0xaf, +0x3f,0x12,0x4e,0x1a,0xef,0x60,0x5, 0x75,0x3e,0xff,0x80,0xa, 0x5, 0x31,0xe5,0x31, +0x70,0x2, 0x5, 0x30,0x80,0xba,0xe5,0x3e,0xf4,0x70,0x2, 0xe1,0xb2,0x12,0x62,0x38, +0xff,0x74,0x3d,0x2d,0xf5,0x82,0x74,0xa, 0x3c,0xf5,0x83,0xe0,0xc3,0x13,0xf9,0x12, +0x62,0x5, 0xfe,0xa3,0xe0,0xff,0x12,0x46,0x84,0x40,0x1c,0xaf,0x3d,0x12,0x46,0x72, +0x33,0xfe,0x74,0x3c,0x2f,0xf5,0x82,0x74,0xa, 0x3e,0x12,0x62,0x4e,0xff,0xe9,0x12, +0x62,0xaa,0x12,0x46,0x76,0x80,0x7, 0xe5,0x41,0x25,0xe0,0xff,0xe5,0x40,0x12,0x62, +0x2a,0xf5,0x32,0xa3,0xe0,0xf5,0x33,0xe5,0x33,0xae,0x32,0x78,0x2, 0x11,0xf8,0xd8, +0xfc,0xfd,0xac,0x6, 0xe5,0x32,0xa2,0xe7,0x13,0xfe,0xe5,0x33,0x13,0x2d,0xf5,0x33, +0xee,0x3c,0xf5,0x32,0x12,0x16,0x49,0x12,0x2, 0x8c,0xff,0xae,0xf0,0xc3,0xe5,0x33, +0x9f,0xe5,0x32,0x9e,0x50,0x4, 0x8e,0x32,0x8f,0x33,0xaf,0x3e,0x12,0x46,0x69,0x24, +0x1, 0xff,0xe4,0x3e,0x12,0x65,0xa6,0x12,0x47,0x7f,0xe5,0x3f,0xc3,0x13,0xfd,0x7c, +0x0, 0x2f,0xff,0xec,0x3e,0x12,0x46,0x76,0x12,0x62,0x2a,0xfa,0xa3,0xe0,0xfb,0xe5, +0x3e,0xa2,0xe7,0x13,0xf9,0xff,0x12,0x47,0x7a,0xef,0x2d,0xff,0xec,0x3e,0x12,0x46, +0x76,0x12,0x62,0x2a,0xfe,0xa3,0xe0,0x2b,0xf5,0x35,0xee,0x3a,0xf5,0x34,0xa2,0xe7, +0x13,0xf5,0x34,0xe5,0x35,0x13,0xf5,0x35,0xaf,0x3e,0x12,0x46,0x69,0x24,0x1, 0xff, +0xe4,0x3e,0x12,0x65,0xa6,0xc4,0xf8,0x54,0xf, 0xc8,0x68,0xfd,0xee,0xc4,0x54,0xf0, +0x48,0xfc,0x12,0x65,0x9f,0x2d,0xff,0xee,0x3c,0x12,0x46,0x76,0x12,0x62,0x2a,0xfc, +0xa3,0xe0,0xfd,0xe9,0xff,0x33,0x95,0xe0,0xfe,0xef,0xc4,0xf8,0x54,0xf, 0xc8,0x68, +0xfb,0xee,0xc4,0x54,0xf0,0x48,0xfa,0x12,0x65,0x9f,0x2b,0xff,0xee,0x3a,0x12,0x46, +0x76,0x12,0x62,0x2a,0xfe,0xa3,0xe0,0x2d,0xf5,0x37,0xee,0x3c,0xf5,0x36,0xa2,0xe7, +0x13,0xf5,0x36,0xe5,0x37,0x13,0xf5,0x37,0x25,0x35,0xff,0xe5,0x34,0x35,0x36,0x12, +0x65,0xa6,0xc3,0x95,0x33,0xe5,0x32,0x12,0x62,0x80,0x40,0x16,0xaf,0x3d,0x12,0x46, +0x72,0x12,0x64,0xe9,0xe5,0x3e,0xf0,0x12,0x64,0xf8,0xe5,0x3f,0xf0,0x75,0x3d,0xff, +0x80,0x4, 0x5, 0x3d,0xa1,0x78,0xe5,0x3c,0xb5,0x3d,0x12,0x12,0x11,0xcb,0xe5,0x42, +0xf0,0xe5,0x3c,0x12,0x62,0xb2,0xf5,0x83,0xe5,0x43,0xf0,0x5, 0x3c,0x5, 0x41,0xe5, +0x41,0x70,0x2, 0x5, 0x40,0x5, 0x2f,0x61,0x46,0x5, 0x2e,0x61,0x2d,0xe5,0x3c,0xd3, +0x94,0x5, 0x50,0x3, 0x2, 0x61,0x2a,0xe4,0xf5,0x3e,0xf5,0x2e,0x12,0x4e,0x7c,0xff, +0xe5,0x2e,0xc3,0x9f,0x40,0x3, 0x2, 0x60,0x9c,0x75,0x38,0x3, 0x75,0x39,0xff,0xe4, +0xf5,0x43,0xf5,0x2f,0xe5,0x2f,0xc3,0x95,0x3c,0x50,0x42,0xe5,0x2f,0x12,0x53,0xa, +0x51,0x58,0xe0,0xc3,0x51,0x94,0x12,0x0, 0x6, 0xc0,0x6, 0xc0,0x7, 0xe5,0x2f,0x12, +0x11,0xcb,0x51,0x67,0xe0,0xc3,0x51,0x94,0x12,0x0, 0x6, 0xd0,0xe0,0x2f,0xf5,0x3b, +0xd0,0xe0,0x3e,0xf5,0x3a,0xc3,0xe5,0x3b,0x95,0x39,0xe5,0x3a,0x95,0x38,0x50,0x9, +0x85,0x3a,0x38,0x85,0x3b,0x39,0x85,0x2f,0x43,0x5, 0x2f,0x80,0xb7,0xe5,0x43,0x12, +0x11,0xcb,0x51,0x50,0xff,0xe5,0x43,0x12,0x53,0xa, 0xc3,0x13,0x51,0xaa,0x12,0x46, +0x76,0x51,0x2a,0x12,0x16,0x45,0x12,0x4f,0xb5,0x40,0x2c,0xe5,0x43,0x12,0x11,0xcb, +0xe0,0xfd,0xaf,0x3e,0x12,0x46,0x72,0x33,0xfe,0x74,0x64,0x2f,0xf5,0x82,0x74,0xa, +0x51,0x88,0x12,0x53,0xa, 0xfd,0x74,0x65,0x2f,0xf5,0x82,0x74,0xa, 0x51,0x88,0x12, +0x11,0xcb,0x74,0xff,0xf0,0x5, 0x3e,0x5, 0x2e,0x2, 0x5f,0xec,0x85,0x3e,0x2e,0xe5, +0x2e,0xc3,0x94,0x5, 0x50,0x5e,0xe4,0xf5,0x30,0xf5,0x31,0xf5,0x3f,0xf5,0x2f,0xe5, +0x2f,0xc3,0x95,0x3c,0x50,0x36,0xe5,0x2f,0x12,0x11,0xcb,0xe0,0xff,0xf4,0x60,0x28, +0xef,0x51,0x51,0xff,0xe5,0x2f,0x12,0x53,0xa, 0xfd,0xc3,0x13,0x51,0xd4,0x12,0x46, +0x76,0x51,0x2a,0x51,0x77,0x40,0x11,0xe5,0x2f,0x12,0x11,0xcb,0xe0,0xf5,0x42,0x8d, +0x43,0x8e,0x30,0x8f,0x31,0x85,0x2f,0x3f,0x5, 0x2f,0x80,0xc3,0xe5,0x2e,0x12,0x4d, +0xef,0xe5,0x42,0x51,0x9b,0xe5,0x43,0xf0,0xe5,0x3f,0x12,0x11,0xcb,0x74,0xff,0xf0, +0x5, 0x2e,0x80,0x9b,0xe4,0xf5,0x2e,0xe5,0x2e,0x12,0x4d,0xef,0xe0,0xff,0xe5,0x2e, +0x12,0x11,0xcb,0xef,0x51,0x9b,0xe0,0xff,0xe5,0x2e,0x51,0xb2,0xf5,0x83,0xef,0xf0, +0x5, 0x2e,0xe5,0x2e,0xb4,0x5, 0xe0,0x75,0x3c,0x5, 0xe4,0xf5,0x2e,0x51,0x69,0x74, +0xff,0xf0,0x51,0x59,0x74,0xff,0xf0,0x5, 0x2e,0xe5,0x2e,0xb4,0x5, 0xef,0xe5,0x3c, +0xd3,0x94,0x0, 0x40,0x48,0xe4,0xf5,0x2e,0xe5,0x2e,0xc3,0x95,0x3c,0x50,0x3e,0xe5, +0x2e,0x12,0x11,0xcb,0xe0,0xff,0x12,0x4e,0x61,0x75,0xf0,0x2, 0xe5,0x2e,0x12,0x16, +0xe3,0xef,0x12,0x1, 0xd7,0x12,0x53,0x8, 0xfd,0xe5,0x2e,0x75,0xf0,0x2, 0x12,0x17, +0xd5,0xfa,0x90,0x0, 0x1, 0xed,0x12,0x1, 0xd7,0xe5,0x2e,0x12,0x11,0xcb,0x51,0x67, +0xef,0xf0,0x12,0x53,0x8, 0x51,0x58,0xef,0xf0,0x5, 0x2e,0x80,0xbb,0xe5,0x49,0xd3, +0x94,0x0, 0x40,0x2e,0xe4,0xf5,0x2e,0xe5,0x2e,0xc3,0x95,0x49,0x50,0x24,0xe5,0x2e, +0x51,0xc8,0xe0,0xfd,0xe5,0x2e,0x75,0xf0,0x2, 0x12,0x4d,0xab,0x90,0x0, 0x87,0xed, +0x12,0x1, 0xd7,0xe5,0x2e,0x51,0xbc,0xe0,0x90,0x0, 0x88,0x12,0x1, 0xd7,0x5, 0x2e, +0x80,0xd5,0x12,0x4e,0x61,0x90,0x0, 0x86,0xe5,0x49,0x12,0x1, 0xd7,0x90,0x0, 0x2d, +0xe5,0x3c,0x12,0x1, 0xd7,0xe9,0x24,0x2f,0x12,0x3f,0x5f,0x12,0x16,0x49,0x90,0x0, +0xd, 0x12,0x1, 0x65,0xff,0xe5,0x48,0xd3,0x9f,0x40,0x13,0xab,0x2b,0xe5,0x2d,0x24, +0x2f,0xf9,0xe4,0x35,0x2c,0xfa,0x12,0x1, 0x4c,0x44,0x1, 0x12,0x1, 0xc5,0x22,0x3c, +0xf5,0x83,0xe0,0xc3,0x13,0x7c,0x0, 0x2f,0xff,0xec,0x35,0xf0,0xfe,0xef,0x25,0xe0, +0xff,0xee,0x33,0xfe,0xe5,0x45,0x2f,0xf5,0x82,0xe5,0x44,0x3e,0xf5,0x83,0xe0,0xfc, +0xa3,0xe0,0xfd,0xe5,0x41,0x25,0xe0,0xff,0xe5,0x40,0x33,0xfe,0xe5,0x45,0x2f,0xf5, +0x82,0xe5,0x44,0x3e,0xf5,0x83,0xe0,0x22,0xaf,0x3d,0xef,0x33,0x95,0xe0,0xfe,0xef, +0x25,0xe0,0xfd,0xee,0x33,0xfc,0x74,0x3c,0x2d,0xf5,0x82,0x74,0xa, 0x3c,0xf5,0x83, +0xe0,0xc3,0x13,0x75,0xf0,0x10,0xa4,0x22,0xff,0xe5,0x2e,0x25,0xe0,0x24,0xe1,0xf5, +0x82,0xe4,0x34,0xc, 0xf5,0x83,0x22,0xe0,0xff,0xe5,0x2e,0x25,0xe0,0x24,0xe0,0xf5, +0x82,0xe4,0x34,0xc, 0xf5,0x83,0x22,0xfe,0xa3,0xe0,0xff,0xd3,0x95,0x31,0xe5,0x30, +0x64,0x80,0xf8,0xee,0x64,0x80,0x98,0x22,0x3e,0xf5,0x83,0xed,0xf0,0xe5,0x43,0x22, +0xff,0xc3,0xe5,0x3d,0x9f,0xff,0xe4,0x94,0x0, 0xfe,0x22,0xf0,0xe5,0x2e,0x25,0xe0, +0x24,0x65,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0x7c,0x0, 0x2f,0xff,0xec,0x35, +0xf0,0x22,0x25,0xe0,0x24,0x3d,0xf5,0x82,0xe4,0x34,0xa, 0x22,0x25,0xe0,0x24,0x8d, +0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0x22,0x25,0xe0,0x24,0x8c,0xf5,0x82,0xe4,0x34, +0xa, 0xf5,0x83,0x22,0x7a,0x0, 0x2f,0xff,0xea,0x35,0xf0,0x22,0xbf,0x1, 0x5, 0x43, +0xdb,0x80,0x80,0x6, 0xef,0x70,0x3, 0x53,0xdb,0x7f,0xc2,0xea,0x43,0xdb,0x10,0xd2, +0xd9,0xc2,0xdd,0xc2,0xdc,0xc2,0xdb,0xc2,0xda,0xd2,0xd8,0x75,0xab,0x6, 0xe4,0xf5, +0x9a,0x53,0xdb,0xfd,0xd2,0xed,0xd2,0xba,0xc2,0xc2,0x43,0xa9,0x4, 0x43,0xb9,0x4, +0x22,0xef,0x71,0xee,0xed,0x2b,0xfb,0xe4,0x3a,0xfe,0xaf,0x3, 0x22,0x8b,0x37,0x8a, +0x38,0x89,0x39,0xe4,0xf5,0x3d,0x12,0x2e,0xd9,0x71,0xd6,0xfd,0xe4,0xff,0x71,0x11, +0x8e,0x3e,0x8f,0x3f,0xe5,0x3d,0x70,0x3, 0x43,0x3e,0x20,0x71,0xc9,0x94,0x10,0x40, +0xe5,0x75,0x3d,0x10,0xe4,0xfd,0x7f,0xc0,0x71,0xce,0x94,0x20,0x40,0xf6,0xe4,0xf5, +0x3d,0x71,0xe7,0x71,0xd6,0xfe,0x54,0xf, 0xff,0xee,0xc4,0x54,0xf, 0xfd,0x71,0xdf, +0x8e,0x3e,0x8f,0x3f,0x71,0xc9,0x94,0x8, 0x40,0xe7,0x75,0x3d,0x8, 0xe4,0xfd,0x7f, +0xc0,0x71,0xce,0x94,0x20,0x40,0xf6,0xe4,0xf5,0x3d,0x75,0xf0,0x2, 0xe5,0x3d,0xa4, +0x24,0x54,0xf5,0x82,0xe5,0xf0,0x34,0xc, 0xf5,0x83,0xe4,0x93,0xf5,0x3e,0x74,0x1, +0x93,0xf5,0x3f,0x71,0xc9,0x94,0xff,0x40,0xe1,0x90,0xe, 0x52,0xe4,0x93,0xfc,0x74, +0x1, 0x93,0xfd,0xec,0xff,0x71,0xfd,0x8f,0xa1,0xe5,0xdb,0x30,0xe3,0xfb,0x85,0xa1, +0x14,0x53,0xdb,0xf3,0x8d,0xa1,0xe5,0xdb,0x30,0xe3,0xfb,0x85,0xa1,0x15,0x53,0xdb, +0xf3,0x43,0xab,0x4, 0xae,0x14,0xaf,0x15,0x22,0xe5,0x3e,0xff,0xad,0x3f,0x71,0xa5, +0x5, 0x3d,0xe5,0x3d,0xc3,0x22,0x85,0x3d,0x82,0x75,0x83,0x0, 0x2, 0x1, 0x65,0xac, +0x7, 0xed,0x71,0xee,0xec,0x61,0x15,0xab,0x3a,0xaa,0x3b,0xa9,0x3c,0x22,0x7b,0x0, +0x7a,0xc0,0x75,0xf0,0x80,0xa4,0x2b,0xfb,0xe5,0xf0,0x3a,0xfa,0x22,0x53,0xab,0x3, +0x53,0xdb,0xf3,0x22,0x71,0xfd,0xef,0x44,0x80,0xf5,0xa1,0xe5,0xdb,0x30,0xe3,0xfb, +0x53,0xdb,0xf3,0xe4,0xf5,0xa1,0xe5,0xdb,0x30,0xe3,0xfb,0xaf,0xa1,0x43,0xab,0x4, +0x22,0x53,0xc9,0x7, 0x43,0xc9,0x30,0x75,0xeb,0x80,0xef,0x25,0xe0,0x4, 0x25,0xeb, +0xf5,0xeb,0x22,0x7d,0x3, 0xe4,0x91,0x3d,0x60,0x2, 0x7f,0x1, 0x22,0xff,0x12,0x2f, +0xb8,0xef,0x7f,0x0, 0x22,0xe4,0xfd,0x91,0x3d,0x60,0x2, 0x7f,0x1, 0x22,0xe5,0xdb, +0x20,0xe1,0x3, 0x7f,0x0, 0x22,0x53,0xdb,0xfd,0x7f,0x1, 0x22,0xc2,0xc2,0x53,0xdb, +0xbf,0x32,0xef,0x70,0x4, 0x53,0xdb,0xbf,0x22,0x43,0xdb,0x40,0x22,0xef,0x24,0xfe, +0x60,0xb, 0x14,0x60,0xc, 0x24,0x2, 0x70,0xc, 0x7d,0x9, 0x80,0xa, 0x7d,0x6, 0x80, +0x6, 0x7d,0x3, 0x80,0x2, 0xe4,0xfd,0xe5,0xdc,0x54,0xf0,0x2d,0xf5,0xdc,0x22,0xf9, +0xe4,0x35,0x23,0xfa,0x7e,0x0, 0xe9,0x25,0x2e,0xf9,0xee,0x3a,0xfa,0x12,0x1, 0x4c, +0x54,0xf, 0xfd,0xe5,0x2e,0x25,0xe0,0xff,0xee,0x33,0xfe,0x74,0x74,0x2f,0xf5,0x82, +0x74,0xa, 0x3e,0xf5,0x83,0xed,0xf0,0x12,0x1, 0x4c,0x54,0xf0,0xc4,0x54,0xf, 0xfd, +0xe5,0x2e,0x25,0xe0,0xff,0xe4,0x33,0xfe,0x74,0x75,0x2f,0xf5,0x82,0x74,0xa, 0x3e, +0xf5,0x83,0x22,0xab,0x34,0xaa,0x35,0xa9,0x36,0xe4,0x12,0x1, 0xd7,0xab,0x37,0xaa, +0x38,0xa9,0x39,0x90,0x0, 0x1f,0x2, 0x1, 0x65,0x33,0xfe,0x74,0x3c,0x2f,0xf5,0x82, +0x74,0xa, 0x3e,0xf5,0x83,0x22,0x33,0xfe,0x74,0x3d,0x2f,0xf5,0x82,0x74,0xa, 0x3e, +0xf5,0x83,0x22,0xab,0x37,0xaa,0x38,0xa9,0x39,0x90,0x0, 0x20,0x2, 0x1, 0x65,0x7c, +0x0, 0x12,0x5, 0x9c,0x8f,0x35,0x8e,0x34,0x8d,0x33,0x8c,0x32,0x78,0x8, 0x12,0x4, +0xcc,0x8f,0x35,0x8e,0x34,0x8d,0x33,0x8c,0x32,0x22,0xe5,0x31,0x95,0x37,0xe5,0x36, +0x64,0x80,0xf8,0xe5,0x30,0x64,0x80,0x22,0xa4,0x24,0x54,0xf9,0x74,0xe, 0x35,0xf0, +0xfa,0x7b,0xff,0xe9,0x25,0x38,0xf9,0xe4,0x3a,0xfa,0x78,0x32,0x7c,0x0, 0x7d,0x0, +0x7e,0x0, 0x22,0xa3,0xf0,0x75,0x25,0x1, 0x75,0x26,0x8, 0x75,0x27,0x29,0x75,0x28, +0x1, 0x75,0x29,0xa, 0x75,0x2a,0x25,0x7b,0x1, 0x7a,0x9, 0x79,0x18,0x22,0xf9,0xe4, +0x3a,0xfa,0x12,0x2, 0x8c,0xc4,0xf8,0x54,0xf, 0xc8,0x68,0xff,0xe5,0xf0,0xc4,0x54, +0xf0,0x48,0x8f,0xf0,0x2, 0x3, 0x3c,0x12,0x5, 0x9c,0xe5,0x40,0x2f,0xf5,0x40,0xe5, +0x3f,0x3e,0xf5,0x3f,0xe5,0x3e,0x3d,0xf5,0x3e,0xe5,0x3d,0x3c,0xf5,0x3d,0x22,0xe5, +0x3f,0x24,0x1, 0xff,0xe4,0x33,0xa2,0xe7,0x13,0xfe,0xef,0x13,0x22,0x90,0x3, 0x80, +0x75,0xf0,0x20,0x2, 0x5, 0x40,0x24,0xff,0xff,0xe4,0x34,0xff,0xcf,0xc3,0x95,0x3c, +0xcf,0x95,0x3b,0xfe,0xd3,0xef,0x94,0x0, 0xee,0x94,0x0, 0x22,0xe5,0x2f,0x75,0xf0, +0x7, 0xa4,0xff,0xae,0xf0,0xab,0x22,0x25,0x24,0xf9,0xe5,0x23,0x3e,0xfa,0x22,0xfa, +0x90,0x0, 0x2, 0x12,0x2, 0xb7,0xc3,0x9d,0xff,0xe5,0xf0,0x9c,0xfe,0x2, 0x0, 0x6, +0x90,0x8, 0x1d,0x74,0x1, 0xf0,0xa3,0x74,0xb, 0xf0,0x22,0xf9,0xe4,0x3a,0xfa,0x12, +0x2, 0x8c,0xc3,0x95,0x2c,0xff,0xe5,0xf0,0x95,0x2b,0x8f,0xf0,0x22,0xe0,0xfd,0xaf, +0x43,0x12,0x4e,0x1a,0xef,0x22,0x24,0x3e,0xf5,0x82,0xe4,0x34,0xa, 0xf5,0x83,0xee, +0xf0,0xa3,0xef,0xf0,0x5, 0x2d,0x22,0xae,0x46,0xaf,0x47,0xab,0x7, 0xaa,0x6, 0xea, +0x33,0x95,0xe0,0xf9,0xf8,0xaf,0x2e,0x22,0xe5,0x21,0x75,0xf0,0x7, 0xa4,0x24,0xc8, +0xf5,0x82,0xe4,0x34,0x8, 0xf5,0x83,0x22,0x75,0x25,0x1, 0x75,0x26,0x8, 0x75,0x27, +0x33,0x22,0x75,0x62,0xb, 0x75,0x63,0x78,0x7b,0xff,0x7a,0xf, 0x79,0x48,0x2, 0xa, +0x57,0xc3,0x13,0x75,0x3b,0x0, 0xf5,0x3c,0xd3,0x94,0x0, 0xe5,0x3b,0x94,0x0, 0x22, +0xf5,0x31,0xf5,0x32,0xf5,0x33,0xf5,0x34,0xf5,0x35,0xf5,0x36,0xf5,0x37,0x22,0xfd, +0xfc,0xab,0x35,0xaa,0x34,0xa9,0x33,0xa8,0x32,0xc3,0x2, 0x4, 0xbb,0xe0,0xfd,0xaf, +0x42,0x12,0x4e,0x1a,0xef,0x22,0xff,0xe9,0x24,0x58,0xf9,0xe4,0x3a,0xfa,0xe9,0x2f, +0xf9,0xea,0x3e,0x22,0xe5,0x21,0x75,0xf0,0x7, 0xa4,0x24,0xca,0xf5,0x82,0xe4,0x34, +0x8, 0x22,0x75,0x28,0x1, 0x75,0x29,0x0, 0x75,0x2a,0x0, 0x75,0x2b,0x1, 0x22,0x90, +0x0, 0x52,0x12,0x1, 0xd7,0x90,0x0, 0x53,0x22,0xab,0x28,0xe5,0x2a,0x24,0x23,0xf9, +0xe4,0x35,0x29,0xfa,0x22,0x74,0x2, 0x25,0x4f,0xf5,0x4f,0xe4,0x35,0x4e,0xf5,0x4e, +0x22,0xab,0x34,0xe5,0x36,0x24,0x80,0xf9,0xe5,0x35,0x34,0x3, 0x22,0x74,0x8c,0x2f, +0xf5,0x82,0x74,0xa, 0x3e,0xf5,0x83,0x22,0x74,0x8d,0x2f,0xf5,0x82,0x74,0xa, 0x3e, +0xf5,0x83,0x22,0x12,0x1, 0xd7,0x90,0x0, 0x80,0x22,0x33,0x8f,0x82,0xf5,0x83,0x12, +0x2, 0xb7,0x2d,0x22,0xad,0x3d,0xed,0x33,0x95,0xe0,0xfc,0xc3,0xed,0x22,0x12,0x1, +0x4c,0xfd,0x12,0x0, 0x4e,0xe5,0x2d,0x22,0xfe,0xa3,0xe0,0xff,0x12,0x0, 0x6, 0xd3, +0xef,0x22,0x90,0x0, 0x53,0x2, 0x1, 0x65,0xe5,0x3b,0x25,0xe0,0xff,0xe5,0x3a,0x33, +0xfe,0x22,0x75,0x25,0x1, 0x75,0x26,0xa, 0x75,0x27,0x25,0x22,0x75,0x25,0x1, 0x75, +0x26,0x0, 0x75,0x27,0x83,0x22,0xf0,0x90,0xb, 0x5d,0xe0,0x90,0x0, 0x54,0xf0,0x22, +0x3e,0xf5,0x83,0xe4,0xf0,0xa3,0xf0,0x22,0x12,0x1, 0x4c,0xff,0xe5,0x2e,0xc3,0x22, +0xfd,0x12,0x0, 0x4e,0xe4,0xf5,0x2d,0x22,0xff,0xab,0x2a,0xe5,0x2c,0x24,0x54,0x22, +0xff,0xab,0x2a,0xe5,0x2c,0x24,0x1c,0x22,0x74,0x6d,0x25,0x50,0xf8,0xe6,0xa4,0x22, +0xf5,0x82,0xe4,0x35,0x5c,0xf5,0x83,0x22,0xe5,0x31,0x25,0xe0,0xff,0xe5,0x30,0x22, +0x12,0x1, 0x65,0xc3,0x13,0xf5,0x42,0x22,0x12,0x1, 0xd7,0x90,0xb, 0x5d,0xe0,0x22, +0x67,0xb0,0x98,0x4f,0x4b,0xb4,0x2e,0x5a, \ No newline at end of file diff --git a/drivers/input/touchscreen/focaltech/FT6x06_4Column_V02_20140901_app.h b/drivers/input/touchscreen/focaltech/FT6x06_4Column_V02_20140901_app.h new file mode 100644 index 00000000..9ba755fe --- /dev/null +++ b/drivers/input/touchscreen/focaltech/FT6x06_4Column_V02_20140901_app.h @@ -0,0 +1,1386 @@ +0x2, 0x1, 0xd4,0x2, 0x48,0x46,0x22,0x22,0x2, 0x3b,0xe6,0x2, 0x7, 0x82,0x1e,0x44, +0x1e,0x44,0x1e,0x44,0x1e,0x44,0x22,0x2, 0x3c,0x19,0x22,0x2, 0x45,0x24,0x7e,0xa1, +0x26,0x74,0x4, 0xa4,0x22,0xf5,0xe4,0x7a,0x71,0xe5,0x22,0x2, 0x47,0xd4,0xa2,0xf, +0xe4,0x33,0x22,0x2, 0x4e,0xc2,0x74,0x5, 0xac,0xbf,0x49,0x35,0x0, 0x63,0x9d,0x32, +0x2, 0x2, 0x9e,0x2, 0x48,0x1d,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, 0xb2,0xd5,0x6e, +0x24,0xff,0xff,0xb, 0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e,0x34,0xff,0xff, +0xb, 0x34,0x8d,0x32,0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d,0x32,0x30,0xd5, +0x6, 0x6e,0x34,0xff,0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d,0x2, 0x7d,0x21, +0xad,0x5, 0x2d,0x12,0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31,0xad,0x10,0x2d, +0x21,0x22,0x6d,0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78,0x27,0x8d,0x31, +0x7d,0x12,0x6d,0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11,0x2d,0x44,0x50, +0x2, 0xa5,0xf, 0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78,0xed,0x7f,0x1, +0x6d,0x22,0x7d,0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, 0x2f,0x0, 0x40, +0x4, 0xbd,0x4, 0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d,0x23,0x7d,0x31, +0x7d,0x10,0x6d,0x0, 0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2,0xd5,0x9f,0x22, +0x9f,0x20,0x7f,0x2, 0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22,0x9f,0x21,0x7f, +0x12,0x12,0x0, 0x94,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12,0x0, 0x94,0x30, +0xd5,0x6, 0x9f,0x22,0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1a,0x1e, +0x54,0x68,0xe, 0xb, 0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15,0x1b,0x54,0x78, +0xf2,0x50,0x6, 0x7e,0x39,0x40,0x7a,0x19,0x40,0x22,0x20,0x21,0x20,0x21,0x20,0x21, +0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19, +0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a, +0x1, 0x22,0x23,0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x1, 0x1, 0x1, 0x1, 0x6, 0x6, 0x6, 0x6, 0x5, 0x5, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x20,0x20,0x20,0x20,0x21,0x21,0x21,0x21,0x20,0x20,0x20,0x20,0x21,0x21,0x21,0x21, +0x20,0x20,0x20,0x20,0x21,0x21,0x21,0x21,0x20,0x20,0x20,0x20,0x21,0x21,0x21,0x21, +0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19, +0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a, +0x1, 0x22,0x23,0x0, 0x75,0x84,0x1, 0x7e,0x44,0x8, 0x1f,0xe4,0x7a,0x49,0xb0,0x1b, +0x44,0x78,0xf9,0x7e,0xf8,0x5, 0x60,0xc2,0xd, 0x75,0x55,0x0, 0x75,0x56,0x0, 0x75, +0x57,0x0, 0x75,0x14,0x0, 0x75,0x15,0x0, 0xc2,0xe, 0xc2,0x7, 0xd2,0x8, 0x75,0x5b, +0x0, 0x75,0x5c,0x0, 0x75,0x4d,0x0, 0x75,0x58,0x0, 0x75,0x59,0x0, 0x75,0x5a,0x0, +0xc2,0xf, 0xd2,0x9, 0xc2,0xa, 0xc2,0x10,0xc2,0x11,0x7e,0x4, 0x0, 0xff,0x7e,0x14, +0x2, 0xcd,0xb, 0xa, 0x40,0x5d,0x44,0x68,0x1a,0x69,0x20,0x0, 0x2, 0xb, 0xe, 0xb, +0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29,0xb0,0xb, 0x24,0xb, 0xc, 0x1b,0x44,0x78, +0xf2,0x80,0xdf,0x2, 0x3c,0x33,0xff,0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6, +0xf5,0xf4,0xf3,0xf2,0xf1,0xf0,0xef,0xee,0xed,0xec,0xeb,0xea,0xe9,0xe8,0xe7,0xe6, +0xe5,0xe4,0xe3,0xe2,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, +0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, +0x18,0x19,0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x7d,0x23, +0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32,0x22,0x7d,0x13, +0x80,0x7, 0x1b,0x24,0x7a,0x19,0xb0,0xb, 0x14,0x4d,0x22,0x78,0xf5,0x22,0x10,0x10, +0x10,0x1c,0x19,0x14,0x10,0xe, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x0, 0x18,0x4, +0xd7,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x5, 0x60,0x0, 0x0, 0x24, +0x3, 0xdb,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x24,0x5, 0x14,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, +0x4, 0xc1,0x0, 0x0, 0x1, 0x4, 0xc3,0x0, 0x0, 0x1, 0x4, 0xc4,0x0, 0x0, 0x1, 0x4, +0xc6,0x0, 0x0, 0x1, 0x0, 0xa5,0x0, 0x0, 0x1, 0x5, 0x5e,0x10,0x0, 0x1, 0x5, 0x5f, +0x8, 0x0, 0x1, 0x3, 0xff,0x0, 0x0, 0x1, 0x4, 0x2, 0x10,0x0, 0x1, 0x4, 0x3, 0x8, +0x0, 0x1, 0x4, 0x16,0x5, 0x0, 0x1, 0x4, 0x18,0xa, 0x0, 0x1, 0x4, 0x19,0xa, 0x0, +0x1, 0x4, 0x1a,0x5, 0x0, 0x1, 0x4, 0x1b,0x32,0x0, 0x1, 0x4, 0x1c,0x20,0x0, 0x2, +0x4, 0x1d,0x7, 0xd0,0x0, 0x1, 0x4, 0x1f,0x10,0x0, 0x1, 0x4, 0x20,0x14,0x0, 0x1, +0x4, 0x21,0x4, 0x0, 0x1, 0x4, 0x22,0x14,0x0, 0x1, 0x4, 0x23,0x3c,0x0, 0x1, 0x4, +0x24,0x14,0x0, 0x2, 0x4, 0x25,0x1, 0xf4,0x0, 0x2, 0x4, 0x27,0xb, 0xb8,0x0, 0x2, +0x4, 0x29,0xb, 0xb8,0x0, 0x2, 0x4, 0x2f,0x1, 0xe0,0x0, 0x2, 0x4, 0x31,0x3, 0x56, +0x0, 0x1, 0x4, 0x4f,0x0, 0x0, 0x1, 0x4, 0x50,0x0, 0x0, 0x1, 0x4, 0x57,0x1, 0x0, +0x2, 0x4, 0x58,0x5, 0xdc,0x0, 0x1, 0x4, 0x5a,0x14,0x0, 0x1, 0x5, 0x4d,0x0, 0x0, +0x8, 0x5, 0x56,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x0, 0x0, 0xca,0x3b,0x7e, +0xc3,0x0, 0x9f,0x7e,0xb3,0x0, 0xa0,0xf5,0x23,0x4c,0xcc,0x78,0x2f,0x12,0x7, 0x49, +0xe5,0x23,0xbe,0xb0,0x0, 0x38,0x2, 0xe1,0x46,0x6c,0xff,0x7e,0xa0,0xff,0x7e,0x70, +0x5, 0xac,0x7f,0x19,0xa3,0x0, 0x97,0xb, 0xf0,0xbe,0xf0,0x2, 0x78,0xf0,0xd2,0x5, +0xc2,0x3, 0x6d,0x33,0x7a,0x35,0x55,0x75,0x57,0x0, 0xe1,0x46,0xe5,0x57,0xbe,0xb0, +0x3c,0x50,0x12,0x7e,0x34,0xf, 0xa0,0x7a,0x37,0x0, 0x86,0x74,0xfa,0x7a,0xb3,0x0, +0x88,0x5, 0x57,0x80,0x18,0x7e,0x37,0x0, 0x86,0xbe,0x34,0xa, 0x0, 0x68,0xe, 0x7e, +0x34,0xa, 0x0, 0x7a,0x37,0x0, 0x86,0x74,0xa0,0x7a,0xb3,0x0, 0x88,0x6c,0xff,0x7e, +0x70,0xff,0x74,0x5, 0xac,0xbf,0x19,0x75,0x2, 0xbd,0x7e,0x34,0x7f,0xff,0x59,0x35, +0x2, 0xb9,0x59,0x35,0x2, 0xbb,0xb, 0xf0,0xbe,0xf0,0x2, 0x78,0xe2,0x6c,0xff,0x80, +0x23,0x7e,0x50,0x5, 0xac,0x5f,0x7d,0x12,0x2e,0x14,0x0, 0x63,0xb, 0x18,0x30,0x12, +0x17,0xb1,0x1b,0x18,0x30,0x2e,0x24,0x0, 0x65,0xb, 0x28,0x30,0x12,0x17,0xb1,0x1b, +0x28,0x30,0xb, 0xf0,0xbc,0xcf,0x38,0xd9,0xe5,0x23,0xbc,0xbc,0x68,0x5, 0x6d,0x33, +0x7a,0x35,0x55,0x6c,0xff,0x12,0x56,0x55,0x50,0xf, 0xa, 0x37,0x9, 0xb3,0x0, 0xe0, +0x70,0x7, 0x6d,0x33,0x7a,0x35,0x55,0x80,0x7, 0xb, 0xf0,0xbe,0xf0,0x2, 0x40,0xe5, +0xe5,0x23,0x70,0x28,0x6c,0xff,0x80,0x1e,0x74,0x5, 0xac,0xbf,0x49,0x45,0x0, 0x63, +0x59,0x45,0x0, 0x93,0x49,0x45,0x0, 0x65,0x59,0x45,0x0, 0x95,0x9, 0x75,0x0, 0x67, +0x19,0x75,0x0, 0x97,0xb, 0xf0,0xbc,0xcf,0x38,0xde,0xa1,0xe7,0x6c,0xdd,0x6c,0xff, +0x6c,0xee,0x7e,0x70,0x5, 0xac,0x7e,0x9, 0xa3,0x0, 0x97,0x7e,0x50,0x5, 0xac,0x5f, +0x9, 0xb2,0x0, 0x67,0xbc,0xba,0x78,0x16,0xbe,0xb0,0xff,0x68,0x11,0xbe,0xd0,0x2, +0x50,0x13,0x2e,0x34,0x0, 0x93,0x12,0x56,0x61,0x12,0x1, 0x19,0x80,0x7, 0xb, 0xe0, +0xbe,0xe0,0x2, 0x40,0xcd,0xbe,0xe0,0x2, 0x78,0xe, 0xbe,0xd0,0x2, 0x50,0x9, 0x12, +0x56,0x6d,0x12,0x56,0x61,0x12,0x1, 0x19,0xb, 0xd0,0xb, 0xf0,0xbe,0xf0,0x2, 0x78, +0xaf,0x6c,0xff,0x12,0x56,0x7f,0x2e,0x34,0x2, 0xb9,0x2e,0x14,0x0, 0x93,0x12,0x56, +0x77,0xbe,0xf0,0x2, 0x78,0xed,0x20,0x3, 0x6e,0x6c,0xff,0x80,0x66,0x7c,0xef,0x6c, +0xdd,0x80,0x21,0x7e,0x90,0x5, 0xac,0x9f,0x9, 0xa4,0x0, 0x97,0x7e,0x70,0x5, 0xac, +0x7d,0x9, 0xb3,0x0, 0x67,0xbc,0xba,0x78,0x9, 0xbe,0xa0,0xff,0x68,0x4, 0x7c,0xed, +0x80,0x6, 0xb, 0xd0,0xbc,0xcd,0x38,0xdb,0xbe,0xe0,0x2, 0x40,0x2, 0x7c,0xef,0x7e, +0x90,0x5, 0xac,0x9e,0x49,0x34,0x0, 0x65,0xbe,0x34,0x32,0x0, 0x50,0xa, 0x49,0x24, +0x0, 0x95,0xbe,0x24,0x32,0x0, 0x40,0x12,0x49,0x24,0x0, 0x63,0x74,0x5, 0xac,0xbf, +0x59,0x25,0x0, 0x93,0x59,0x35,0x0, 0x95,0x80,0x7, 0x7c,0xbf,0x7c,0x7e,0x12,0x8, +0x0, 0xb, 0xf0,0xbc,0xcf,0x38,0x96,0x6c,0xff,0x74,0x5, 0xac,0xbf,0x49,0x45,0x0, +0x93,0x12,0x0, 0xe, 0x59,0x45,0x0, 0x63,0x49,0x45,0x0, 0x95,0x12,0x0, 0xe, 0x59, +0x45,0x0, 0x65,0x9, 0x75,0x0, 0x97,0x19,0x75,0x0, 0x67,0xb, 0xf0,0xbe,0xf0,0x2, +0x78,0xd7,0xbe,0xc0,0x0, 0x38,0x2, 0xe1,0x26,0x6c,0xff,0x74,0x5, 0xac,0xbf,0x49, +0x45,0x0, 0x63,0x59,0x45,0x0, 0x89,0x49,0x45,0x0, 0x65,0x59,0x45,0x0, 0x8b,0x9, +0x75,0x0, 0x67,0x19,0x75,0x0, 0x8d,0xa, 0x37,0xbe,0x34,0x0, 0x2, 0x50,0xf, 0x49, +0x25,0x0, 0x8b,0xbe,0x24,0x3, 0x20,0x40,0x5, 0x6d,0x22,0x7a,0x25,0x55,0x7e,0x15, +0x55,0x4d,0x11,0x78,0x41,0xbe,0xf0,0x1, 0x78,0x7, 0x7d,0x21,0xb, 0x24,0x7a,0x25, +0x55,0xbe,0x34,0x0, 0x2, 0x40,0x2, 0xe1,0x1d,0x6c,0xee,0x7e,0x50,0x5, 0xac,0x5f, +0x49,0x42,0x0, 0x89,0x7e,0xf4,0x0, 0xc, 0xad,0xf3,0x7e,0x10,0x4, 0xac,0x1e,0x2d, +0xf, 0x59,0x40,0x4, 0xd7,0x49,0x22,0x0, 0x8b,0x59,0x20,0x4, 0xd9,0xb, 0xe0,0xbe, +0xe0,0x3, 0x78,0xd7,0xe1,0x1d,0xbe,0x34,0x0, 0x2, 0x50,0x74,0x74,0x5, 0xac,0xbf, +0x49,0x25,0x0, 0x89,0x7e,0x4, 0x0, 0x3, 0x8d,0x10,0x7d,0x50,0x3e,0x54,0x3e,0x54, +0x7e,0x14,0x0, 0xc, 0xad,0x13,0x2d,0x15,0x59,0x21,0x4, 0xd7,0x74,0x5, 0xac,0xbf, +0x49,0x25,0x0, 0x8b,0x59,0x21,0x4, 0xd9,0x6d,0x22,0x74,0x5, 0xac,0xbf,0x59,0x25, +0x0, 0x89,0x6c,0xee,0x12,0x56,0x5, 0x49,0x2, 0x4, 0xd7,0x7e,0x50,0x5, 0xac,0x5f, +0x2e,0x24,0x0, 0x89,0x12,0x55,0xf7,0x78,0xeb,0x12,0x56,0x48,0x6d,0x22,0x74,0x5, +0xac,0xbf,0x59,0x25,0x0, 0x8b,0x6c,0xee,0x12,0x56,0x5, 0x49,0x2, 0x4, 0xd9,0x7e, +0x50,0x5, 0xac,0x5f,0x2e,0x24,0x0, 0x8b,0x12,0x55,0xf7,0x78,0xeb,0x12,0x56,0x48, +0xbe,0xf0,0x1, 0x78,0x8, 0x7e,0x25,0x55,0xb, 0x24,0x7a,0x25,0x55,0xb, 0xf0,0xbe, +0xf0,0x2, 0x68,0x2, 0xc1,0x1b,0xd2,0x0, 0x6c,0xff,0x12,0x56,0x55,0x50,0x10,0xa, +0x37,0x9, 0xb3,0x0, 0xe0,0xb4,0x1, 0x7, 0x6d,0x33,0x7a,0x35,0x55,0x80,0x7, 0xb, +0xf0,0xbe,0xf0,0x2, 0x40,0xe4,0xda,0x3b,0x22,0x7e,0xb3,0x0, 0x9f,0x70,0x32,0x20, +0xd, 0x2f,0x6c,0xaa,0x7e,0x44,0x7f,0xff,0x7e,0x70,0x4, 0xac,0x7a,0x59,0x43,0x4, +0xcb,0x59,0x43,0x4, 0xcd,0x6d,0x33,0x7e,0x50,0x2, 0xac,0x5a,0x59,0x32,0x4, 0xd3, +0x7e,0x34,0x1, 0x0, 0x59,0x32,0x4, 0xc7,0xb, 0xa0,0xbe,0xa0,0x2, 0x78,0xd5,0xd2, +0xd, 0x22,0x32,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xca,0x3b,0x7c,0xf7,0x7c,0xeb,0x74,0x5, 0xac,0xbe,0x49,0x25,0x0, 0x95,0x12,0xa, +0x12,0x74,0x5, 0xac,0xbe,0x49,0x25,0x0, 0x93,0x12,0x0, 0x36,0x2d,0x36,0x7a,0x37, +0x2, 0xc3,0x74,0x5, 0xac,0xbe,0x9, 0x75,0x0, 0x97,0x7a,0x71,0x26,0xbe,0x70,0x2, +0x40,0x3, 0x75,0x26,0x0, 0x12,0x0, 0x1e,0x49,0x25,0x4, 0xcd,0x12,0xa, 0x12,0x12, +0x0, 0x1e,0x49,0x25,0x4, 0xcb,0x12,0x0, 0x36,0x7d,0xf3,0x2d,0xf6,0x7e,0x17,0x0, +0x86,0xbd,0x1f,0x38,0x9, 0x7e,0x4, 0x1, 0x0, 0x7a,0x5, 0x24,0x80,0x21,0x7e,0x37, +0x2, 0xc3,0x6d,0x22,0x7c,0x56,0x7c,0x67,0x6c,0x77,0x12,0x0, 0x92,0x7d,0xe3,0x7a, +0xe5,0x24,0xbe,0xe4,0x0, 0x10,0x50,0x7, 0x7e,0xe4,0x0, 0x10,0x7a,0xe5,0x24,0x7e, +0xe5,0x24,0xbe,0xe4,0x1, 0x0, 0x28,0x7, 0x7e,0xe4,0x1, 0x0, 0x7a,0xe5,0x24,0x7e, +0xa1,0x26,0x74,0x2, 0xa4,0x49,0x45,0x4, 0xd3,0xbd,0x4f,0x28,0x9, 0x49,0x45,0x4, +0xc7,0x7a,0x45,0x24,0x80,0x7, 0x7e,0x45,0x24,0x59,0x45,0x4, 0xc7,0x59,0xf5,0x4, +0xd3,0x74,0x5, 0xac,0xbe,0x49,0x25,0x0, 0x93,0x12,0x0, 0x36,0x12,0xf, 0xe4,0x7e, +0x90,0x5, 0xac,0x9e,0x49,0xe4,0x0, 0x93,0x74,0x5, 0xac,0xbf,0x49,0x35,0x0, 0x63, +0xbd,0x3e,0x7d,0x34,0x28,0xb, 0x2e,0x34,0x0, 0x93,0x2d,0xfe,0x1b,0x38,0xf0,0x80, +0x9, 0x2e,0x34,0x0, 0x93,0x9d,0xef,0x1b,0x38,0xe0,0x49,0x24,0x0, 0x95,0x49,0x35, +0x0, 0x65,0x9d,0x32,0x12,0x2, 0x9e,0x12,0xf, 0xe4,0x7e,0x30,0x5, 0xac,0x3e,0x49, +0x21,0x0, 0x95,0x7e,0x90,0x5, 0xac,0x9f,0x49,0x34,0x0, 0x65,0xbd,0x32,0x7d,0x51, +0x28,0xd, 0x2e,0x54,0x0, 0x95,0x7d,0x2, 0x2d,0xf, 0x1b,0x58,0x0, 0x80,0x9, 0x2e, +0x54,0x0, 0x95,0x9d,0x2f,0x1b,0x58,0x20,0x49,0x24,0x0, 0x63,0x12,0x0, 0x1e,0x59, +0x25,0x4, 0xcb,0x59,0x35,0x4, 0xcd,0xda,0x3b,0x22,0x7d,0xf3,0xbe,0xf4,0x0, 0x3f, +0x38,0x2b,0x7d,0x5f,0x9e,0x54,0x0, 0x20,0x6d,0x44,0xbe,0x28,0x0, 0x1, 0x50,0x4, +0x9f,0x22,0x80,0x2, 0x1b,0x2c,0x12,0xa, 0x0, 0xbe,0x28,0x0, 0x15,0x28,0x2, 0x80, +0x5a,0xbe,0x28,0x0, 0x1, 0x50,0x64,0x7e,0x28,0x0, 0x1, 0x80,0x5e,0xbe,0xf4,0x1, +0xc0,0x40,0x2f,0x7d,0x5f,0x9e,0x54,0x1, 0xc0,0x6d,0x44,0xbe,0x28,0x0, 0x1f,0x28, +0x4, 0x7e,0x28,0x0, 0x1f,0x12,0xa, 0x0, 0xbe,0x28,0x0, 0x15,0x40,0x4, 0x7e,0x28, +0x0, 0x14,0xbe,0x28,0x0, 0x14,0x28,0x4, 0x7e,0x28,0x0, 0x14,0x2e,0x28,0x1, 0xcb, +0x80,0x29,0x7d,0x5f,0x9e,0x54,0x0, 0x3f,0x6d,0x44,0x7e,0x14,0x1, 0x24,0x12,0xa, +0x4, 0x2e,0x28,0x0, 0x15,0xbe,0x28,0x0, 0x15,0x50,0x6, 0x7e,0x28,0x0, 0x15,0x80, +0xa, 0xbe,0x28,0x1, 0xcb,0x28,0x4, 0x7e,0x28,0x1, 0xcb,0x7d,0x35,0x22,0xca,0x79, +0x12,0xf, 0x96,0xbe,0xf0,0x0, 0x28,0x25,0x6c,0xee,0x80,0x1d,0x1a,0x2e,0x7e,0x34, +0x0, 0x5, 0xad,0x32,0x49,0x33,0x0, 0x63,0x12,0x9, 0x3a,0x1a,0xe, 0x7e,0x14,0x0, +0x5, 0xad,0x10,0x59,0x31,0x0, 0x63,0xb, 0xe0,0xbc,0xfe,0x18,0xdf,0xda,0x79,0x22, +0x7e,0x14,0x1, 0x80,0x7f,0x12,0x12,0x0, 0x89,0x7f,0x21,0x7c,0xba,0x7c,0xa9,0xa, +0x48,0x22,0x74,0x5, 0xac,0xbf,0x49,0x35,0x0, 0x65,0x9d,0x32,0x12,0x2, 0x9e,0x7d, +0x63,0x22,0xca,0x3b,0xc2,0xb, 0x6c,0xee,0x7e,0xa0,0xff,0x7e,0x70,0x5, 0xac,0x7e, +0x19,0xa3,0x0, 0x67,0x7c,0x1e,0x2e,0x10,0x29,0x74,0xff,0xa5,0xf7,0x7e,0x24,0xff, +0xff,0x12,0xd, 0x16,0x1b,0x38,0x20,0x7c,0x1e,0x2e,0x10,0x2b,0xe4,0xa5,0xf7,0xb, +0xe0,0xbe,0xe0,0x2, 0x78,0xd2,0x7e,0xa3,0x0, 0x79,0x7c,0xba,0x54,0xf, 0x78,0x1f, +0x12,0xf, 0xc3,0x78,0x2, 0x61,0xcf,0x6c,0xee,0x12,0x3a,0x42,0xac,0x7e,0x59,0x43, +0x0, 0xe4,0x59,0x43,0x0, 0xe8,0xb, 0xe0,0xbe,0xe0,0x2, 0x78,0xec,0x61,0xcf,0x12, +0xf, 0xc3,0x78,0x21,0x6c,0xee,0x80,0x13,0x12,0xf, 0xcb,0xac,0xbe,0x12,0xf, 0xd7, +0x19,0xe3,0x0, 0x67,0x7c,0x1e,0x12,0xf, 0xa6,0xb, 0xe0,0x12,0xc, 0x28,0x12,0xd, +0x8, 0x40,0xe5,0x61,0xcf,0x6c,0xee,0x80,0x4d,0x6c,0xff,0x74,0x2, 0xac,0xbf,0x49, +0x25,0x0, 0xe8,0x74,0x5, 0xac,0xbe,0x12,0xa, 0x16,0x74,0x2, 0xac,0xbf,0x49,0x25, +0x0, 0xe4,0x74,0x5, 0xac,0xbe,0x12,0x0, 0x3a,0x2d,0x36,0x7a,0x35,0x23,0x7c,0xbe, +0x3e,0xb0,0x24,0x25,0xa, 0x2b,0xb, 0x28,0x30,0xbe,0x35,0x23,0x28,0xf, 0x7c,0x1e, +0x2e,0x10,0x29,0x7c,0xbf,0xa5,0xf7,0x7e,0x35,0x23,0x1b,0x28,0x30,0xb, 0xf0,0xbe, +0xf0,0x2, 0x78,0xb7,0xb, 0xe0,0x12,0xc, 0x28,0x12,0xd, 0x8, 0x40,0xab,0x6c,0xee, +0x80,0x6a,0xd2,0xb, 0x6c,0xff,0x80,0x2c,0xbc,0xfe,0x68,0x26,0x7c,0x1f,0x12,0xf, +0xae,0x7c,0x1e,0x2e,0x10,0x29,0xa5,0xe7,0xbc,0xba,0x78,0x16,0x7c,0xbf,0x12,0xd, +0x18,0xb, 0x38,0x20,0x12,0xd, 0x16,0xb, 0x38,0x30,0xbd,0x32,0x40,0x4, 0xc2,0xb, +0x80,0xa, 0xb, 0xf0,0x12,0xc, 0x28,0x12,0x1f,0xc8,0x40,0xcc,0x30,0xb, 0x2b,0x7c, +0x1e,0x12,0xf, 0xae,0xbe,0xa0,0x2, 0x50,0x21,0x7c,0x1a,0x12,0xf, 0xa6,0x7e,0x90, +0x5, 0xac,0x9e,0x19,0xa4,0x0, 0x67,0x49,0x34,0x0, 0x63,0x74,0x2, 0xa4,0x59,0x35, +0x0, 0xe4,0x49,0x34,0x0, 0x65,0x59,0x35,0x0, 0xe8,0xb, 0xe0,0x12,0xc, 0x28,0x12, +0xd, 0x8, 0x40,0x8e,0x6c,0xee,0x80,0x31,0x74,0x5, 0xac,0xbe,0x9, 0xb5,0x0, 0x67, +0xb4,0xff,0x24,0x6c,0xff,0x7c,0x1f,0x2e,0x10,0x2b,0xa5,0xe7,0x70,0x12,0x74,0x1, +0xa5,0xf7,0x12,0xf, 0xcb,0xac,0xbf,0x12,0xf, 0xd7,0x19,0xf3,0x0, 0x67,0x80,0x7, +0xb, 0xf0,0xbe,0xf0,0x2, 0x40,0xde,0xb, 0xe0,0x12,0xc, 0x28,0x12,0xd, 0x8, 0x40, +0xc7,0x6c,0xee,0x12,0xf, 0x9e,0x70,0x10,0x7e,0x34,0x7f,0xff,0x74,0x2, 0xac,0xbe, +0x59,0x35,0x0, 0xe4,0x59,0x35,0x0, 0xe8,0xb, 0xe0,0xbe,0xe0,0x2, 0x78,0xe4,0x12, +0xf, 0x96,0x6c,0xee,0x12,0xf, 0x9e,0xb4,0x1, 0x1b,0xa, 0x3e,0x9, 0xb3,0x0, 0xe2, +0xbe,0xb0,0x3, 0x68,0x3, 0xb4,0x1, 0x6, 0xe4,0x12,0xd, 0xf, 0x80,0x30,0x74,0x2, +0x12,0xd, 0xf, 0x80,0x29,0xa, 0x3e,0x9, 0xb3,0x0, 0xe2,0xbe,0xb0,0x2, 0x68,0x2, +0x70,0x17,0x74,0x1, 0x12,0xd, 0xf, 0xbe,0xf0,0x2, 0x50,0x12,0x7c,0xaf,0xb, 0xf0, +0x74,0x5, 0xa4,0x19,0xe5,0x0, 0x67,0x80,0x5, 0x74,0x3, 0x12,0xd, 0xf, 0xb, 0xe0, +0xbe,0xe0,0x2, 0x40,0xaf,0xda,0x3b,0x22,0x7e,0xb3,0x0, 0x79,0x54,0xf, 0x22,0x12, +0x21,0xc2,0x12,0x56,0x13,0x12,0x43,0xd4,0xe4,0x12,0x24,0x28,0x12,0x48,0x2e,0x12, +0x3a,0x1d,0x12,0x3c,0xb4,0x12,0x40,0x5a,0x12,0x26,0xed,0x12,0x4d,0x1d,0x7e,0xb3, +0x4, 0x99,0xb4,0x1, 0x2, 0x80,0x2, 0xa1,0x7, 0x30,0xe, 0x3, 0x12,0x3f,0xfc,0x12, +0x3f,0x6b,0x12,0x3e,0xea,0x12,0x27,0xc5,0x44,0x40,0x7a,0xb3,0x2, 0xb5,0x12,0x10, +0x5d,0x74,0x1, 0x12,0xd, 0x1f,0x12,0xd, 0x83,0x12,0x1f,0xf4,0x12,0x4b,0xf, 0xe4, +0x12,0xd, 0x1f,0x12,0xd, 0x83,0x12,0xf, 0x57,0x7e,0xb3,0x2, 0x5f,0x30,0xe1,0x3, +0x12,0x37,0xe, 0x12,0x4a,0x8d,0x12,0xc, 0x28,0x12,0x3a,0xe0,0x7e,0x34,0x0, 0xec, +0x7e,0x24,0x1, 0xc8,0x7e,0xb3,0x2, 0x62,0x14,0x12,0x45,0xbe,0x12,0x48,0xe8,0x12, +0x17,0xfc,0x12,0x55,0xc, 0x12,0x29,0x76,0x12,0x53,0x9, 0x12,0x9, 0xce,0x12,0x1c, +0x4b,0x12,0x37,0x8b,0x12,0xc, 0x28,0x7a,0xb3,0x0, 0x9f,0x7e,0x63,0x0, 0x9f,0x12, +0x4c,0x71,0x12,0xf, 0x75,0x12,0x15,0x2d,0x12,0xc, 0x28,0x7a,0xb3,0x0, 0x9f,0x12, +0xa, 0x22,0x12,0xd, 0xd8,0x12,0xc, 0x28,0x7a,0xb3,0x0, 0x9f,0x12,0x50,0xa0,0x12, +0x3, 0xfd,0x12,0x53,0xba,0x7e,0xb3,0x0, 0x83,0x12,0x38,0xd1,0x12,0x3a,0xfb,0x12, +0x40,0x24,0x12,0x52,0x6c,0x81,0x4e,0x22,0xa, 0x2b,0xa, 0x3e,0xbd,0x32,0x22,0xa, +0x3e,0x19,0xb3,0x0, 0xe0,0x22,0x7c,0xbe,0x3e,0xb0,0x24,0x25,0xa, 0x3b,0x22,0xca, +0x79,0x7c,0xfb,0x6c,0xee,0xa, 0x3e,0x12,0xf, 0xf4,0x4d,0x22,0x68,0x6, 0xbe,0x24, +0x0, 0x7, 0x78,0x29,0x4c,0xff,0x68,0xd, 0x7e,0x14,0x0, 0x14,0x12,0xd, 0x67,0x7e, +0x8, 0x0, 0xa, 0x80,0xb, 0x7e,0x14,0x0, 0xa, 0x12,0xd, 0x67,0x7e,0x8, 0x0, 0x14, +0x49,0x3f,0x0, 0x2, 0xb, 0xf8,0x20,0x12,0x0, 0xe5,0x12,0xd, 0x7b,0xb, 0xe0,0xbe, +0xe0,0x20,0x40,0xc1,0xda,0x79,0x22,0x74,0x4, 0xac,0xbe,0x7d,0xf5,0x2e,0xf4,0x0, +0xec,0x49,0x3f,0x0, 0x2, 0xb, 0xf8,0x20,0x12,0x0, 0x89,0x59,0x3f,0x0, 0x2, 0x1b, +0xf8,0x20,0x22,0x9f,0x11,0x7a,0x1f,0x1, 0xc4,0x6c,0xaa,0x9f,0x11,0x7e,0x30,0x4, +0xac,0x3a,0x59,0x31,0x1, 0x7e,0x59,0x21,0x1, 0x7c,0x49,0xf1,0x0, 0xee,0x49,0xe1, +0x0, 0xec,0xbe,0x78,0x0, 0x32,0x8, 0x3, 0x12,0xf, 0x7f,0x49,0xf1,0x1, 0x2e,0x49, +0xe1,0x1, 0x2c,0xbe,0x78,0x0, 0x32,0x8, 0x3, 0x12,0xf, 0x7f,0x49,0x31,0x1, 0x7e, +0x49,0x21,0x1, 0x7c,0x7e,0x7f,0x1, 0xc4,0xbf,0x17,0x8, 0x4, 0x7a,0x1f,0x1, 0xc4, +0xb, 0xa0,0xbe,0xa0,0x10,0x40,0xb4,0x22,0xca,0x3b,0x6d,0x0, 0x12,0xc, 0x28,0x7c, +0xeb,0x78,0x30,0x6c,0xff,0x6d,0x11,0x74,0x2, 0xac,0xbf,0x59,0x15,0x5, 0x42,0x7e, +0xa0,0xff,0x7e,0x30,0x5, 0xac,0x3f,0x19,0xa1,0x5, 0x3c,0x7e,0xb3,0x5, 0x4d,0x70, +0x3, 0xe4,0x80,0x2, 0x74,0x2, 0xa, 0x1f,0x19,0xb1,0x5, 0x4b,0xb, 0xf0,0xbe,0xf0, +0x2, 0x78,0xd2,0x6c,0xff,0xe1,0x28,0x74,0x5, 0xac,0xbf,0x9, 0x75,0x0, 0x67,0x7a, +0x71,0x24,0xbe,0x70,0x2, 0x40,0x2, 0xe1,0x26,0xe5,0x24,0xa, 0x1b,0x9, 0xb1,0x0, +0xe0,0xbe,0xb0,0x1, 0x78,0x2, 0xe1,0x26,0x75,0x23,0x0, 0x7e,0x31,0x23,0x74,0x5, +0xac,0x3b,0x9, 0x71,0x5, 0x3c,0x7a,0x71,0x25,0xbe,0x71,0x24,0x68,0x2, 0xe1,0x1b, +0x49,0x21,0x5, 0x3a,0x12,0xa, 0x12,0x12,0x56,0x20,0x49,0x25,0x5, 0x38,0x12,0x0, +0x36,0x7d,0x3, 0x2d,0x6, 0xe5,0x25,0xa, 0x1b,0x9, 0xa1,0x5, 0x4b,0xbe,0xa0,0x0, +0x28,0x17,0x7e,0x71,0x25,0x74,0x2, 0xac,0x7b,0x59,0x3, 0x5, 0x42,0x2e,0x14,0x5, +0x4b,0x7c,0xba,0x14,0x7a,0x19,0xb0,0xe1,0x26,0x7e,0x31,0x25,0x74,0x2, 0xac,0x3b, +0x49,0x31,0x5, 0x42,0xbe,0x34,0x0, 0x32,0x28,0x8, 0xbe,0x4, 0x0, 0x32,0x28,0x2, +0x80,0x10,0x7d,0x23,0x2e,0x24,0x0, 0x32,0xbd,0x20,0x50,0x12,0xbe,0x34,0x0, 0x32, +0x28,0xc, 0x59,0x1, 0x5, 0x42,0x74,0x1, 0x7a,0xb3,0x5, 0x4d,0x80,0x68,0xbe,0x4, +0x0, 0xc8,0x28,0x4b,0xe4,0x7a,0xb3,0x5, 0x4d,0xe5,0x24,0xa, 0x1b,0x9, 0xb1,0x0, +0xe0,0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0x19,0xb1,0x0, 0xe0,0x12,0x56,0x6d, +0x7e,0x14,0x5, 0x46,0x74,0x5, 0x12,0x1, 0x19,0xbe,0xe0,0x0, 0x28,0x21,0x1b,0xe0, +0x7e,0x70,0x5, 0xac,0x7e,0x2e,0x34,0x0, 0x63,0x7e,0x30,0x5, 0xac,0x3f,0x12,0xf, +0xb6,0x7e,0x34,0x5, 0x46,0x7e,0x30,0x5, 0xac,0x3e,0x12,0xf, 0xb6,0x1b,0xf0,0x7e, +0xa1,0x25,0x74,0x2, 0xa4,0x59,0x5, 0x5, 0x42,0x80,0xb, 0x5, 0x23,0xe5,0x23,0xbe, +0xb0,0x2, 0x50,0x2, 0xc1,0x3b,0xb, 0xf0,0x7e,0x73,0x0, 0x79,0x7c,0xb7,0x54,0xf, +0xa, 0x2b,0xa, 0x1f,0xbd,0x12,0x50,0x2, 0xc1,0x17,0x7c,0x6e,0x12,0xf, 0x72,0x6c, +0xff,0x12,0x56,0x7f,0x2e,0x34,0x0, 0x63,0x2e,0x14,0x5, 0x38,0x12,0x56,0x77,0xbe, +0xf0,0x2, 0x40,0xed,0xda,0x3b,0x22,0x12,0xc, 0x28,0x68,0xd, 0x7e,0x34,0x2, 0x3a, +0x7e,0xb3,0x0, 0x5f,0x6c,0x55,0x2, 0x49,0xed,0x22,0x7e,0x73,0x0, 0x79,0x7c,0x67, +0xb, 0x60,0x5e,0x60,0xf, 0x5e,0x70,0xf0,0x4c,0x76,0x7a,0x73,0x0, 0x79,0x22,0x7d, +0x1, 0x2e,0x4, 0x1, 0x7c,0x49,0x30,0x0, 0x2, 0xb, 0x8, 0x20,0x2f,0x17,0x59,0x30, +0x0, 0x2, 0x1b,0x8, 0x20,0x22,0x7e,0xf3,0x0, 0x79,0x5e,0xf0,0xf, 0x22,0x7c,0x1e, +0x2e,0x10,0x2b,0xa5,0xe7,0x22,0x2e,0x10,0x2b,0x74,0x1, 0xa5,0xf7,0x22,0x2e,0x10, +0x29,0xa5,0xe7,0x7c,0xab,0x22,0x2e,0x14,0x0, 0x63,0x74,0x5, 0x2, 0x1, 0x19,0x7e, +0xa3,0x0, 0x79,0x7c,0xba,0xc4,0x54,0xf, 0x54,0xf, 0x22,0x7e,0x70,0x5, 0xac,0x7e, +0x49,0x23,0x0, 0x63,0x74,0x2, 0x22,0x59,0x25,0x0, 0xe4,0x49,0x23,0x0, 0x65,0x59, +0x25,0x0, 0xe8,0x22,0x7d,0xf3,0x7e,0x35,0x24,0xad,0x3f,0x7c,0x76,0x7c,0x65,0xa, +0x24,0x7d,0xf3,0x22,0x7e,0x24,0x0, 0x8, 0x2, 0x0, 0x46,0xca,0xf8,0x7e,0xa3,0x2, +0xb5,0x7c,0xba,0xc4,0x13,0x13,0x54,0x3, 0x7c,0xfb,0x5e,0xf0,0x1, 0x7c,0xba,0x12, +0x27,0xd4,0x12,0x10,0x5d,0x6c,0xaa,0x80,0x1e,0x7e,0x90,0x4, 0xac,0x9a,0x49,0x34, +0x0, 0xee,0x7e,0x50,0x2, 0xac,0x5a,0x59,0x32,0x1, 0xc8,0x9f,0x11,0x59,0x34,0x0, +0xee,0x59,0x24,0x0, 0xec,0xb, 0xa0,0x7e,0xb3,0x2, 0x62,0xbc,0xba,0x38,0xda,0x7c, +0x6f,0x5e,0x60,0x1, 0x7c,0xb6,0xc4,0x33,0x33,0x54,0xc0,0x7c,0x6b,0x7e,0x73,0x2, +0xb5,0x5e,0x70,0xbf,0x4c,0x76,0x7a,0x73,0x2, 0xb5,0xda,0xf8,0x22,0xca,0x3b,0x12, +0x0, 0x2e,0x70,0x14,0x6c,0xff,0x80,0x9, 0x7e,0x18,0x30,0x39,0x12,0x17,0x4e,0xb, +0xf0,0x12,0x13,0xcf,0x38,0xf2,0x61,0xcc,0x7e,0xb3,0x2, 0xad,0x30,0xe1,0x5, 0x75, +0x29,0x2, 0x80,0x3, 0x75,0x29,0x1, 0x7e,0xa3,0x2, 0xb5,0x7c,0xba,0x30,0xe7,0xe, +0x7e,0xb3,0x2, 0x5f,0x30,0xe0,0x7, 0x7e,0x35,0x58,0x4d,0x33,0x78,0xe, 0x7e,0xb3, +0x2, 0x5f,0x20,0xe0,0x2, 0x41,0x54,0x20,0xe2,0x2, 0x41,0x54,0x7c,0xba,0x30,0xe7, +0x8, 0x7e,0xb3,0x2, 0x38,0xf5,0x2a,0x80,0x6, 0x7e,0xb3,0x2, 0x39,0xf5,0x2a,0x7e, +0x35,0x58,0xbe,0x34,0x0, 0x0, 0x28,0x5, 0x1b,0x34,0x7a,0x35,0x58,0x7e,0xb3,0x2, +0x5f,0x30,0xe5,0xb, 0x80,0x4, 0xe4,0x12,0x17,0x5b,0x12,0x17,0x47,0x50,0xf7,0x53, +0xe1,0xfd,0x43,0xe1,0x2, 0x53,0xe3,0x1f,0x6c,0xff,0x9f,0x11,0x12,0x17,0x4e,0xb, +0xf0,0xbe,0xf0,0x24,0x78,0xf6,0x6c,0xdd,0x21,0xff,0x75,0x28,0x0, 0x80,0x7d,0xe5, +0x28,0x70,0x1c,0x53,0xe7,0xbf,0x6c,0xff,0x9f,0x11,0x74,0x4, 0xac,0xbf,0x59,0x35, +0x3, 0x3, 0x59,0x25,0x3, 0x1, 0xb, 0xf0,0xbe,0xf0,0x24,0x78,0xed,0x80,0x3, 0x43, +0xe7,0x40,0x7e,0xb3,0x2, 0xad,0x54,0x1, 0x6c,0x77,0x12,0x17,0xc3,0x80,0x4, 0xe4, +0x12,0x17,0x5b,0x12,0x17,0x47,0x50,0xf7,0x7e,0xb3,0x2, 0xaf,0x30,0xe7,0xc, 0x6c, +0xff,0x7e,0xc1,0xe2,0xb, 0xf0,0xbe,0xf0,0x4, 0x78,0xf6,0x6c,0xff,0x80,0x26,0x12, +0x13,0xf0,0x7e,0x7d,0x24,0x7e,0x30,0x4, 0xac,0x3e,0x2e,0x14,0x3, 0x1, 0x12,0x13, +0xe8,0x12,0x13,0xd6,0x7e,0xb3,0x2, 0xad,0x20,0xe1,0x8, 0x12,0x13,0xe8,0x2f,0x11, +0x12,0x13,0xd8,0xb, 0xf0,0x12,0x13,0xcf,0x38,0xd5,0x5, 0x28,0xe5,0x29,0xbe,0xb1, +0x28,0x28,0x2, 0x1, 0xff,0x6c,0xff,0x80,0x6f,0x12,0x14,0xa, 0x7e,0xb3,0x2, 0xb5, +0x30,0xe6,0x2e,0x74,0x4, 0xac,0xbe,0x49,0x35,0x3, 0x3, 0x7a,0x37,0x3, 0x91,0x74, +0x2, 0xac,0xbe,0x49,0x25,0x1, 0xc8,0x1e,0x24,0x1e,0x24,0x9d,0x32,0x7a,0x37,0x3, +0x91,0x7e,0x37,0x2, 0x12,0xe, 0x34,0xe, 0x34,0xbe,0x37,0x3, 0x91,0x8, 0x21,0x80, +0x1c,0x74,0x4, 0xac,0xbe,0x49,0x15,0x3, 0x3, 0x49,0x5, 0x3, 0x1, 0x7e,0x37,0x2, +0x14,0xe, 0x34,0xe, 0x34,0x1a,0x26,0x1a,0x24,0xbf,0x10,0x8, 0x3, 0x12,0x56,0x87, +0x74,0x4, 0xac,0xbe,0x49,0x35,0x3, 0x3, 0x49,0x25,0x3, 0x1, 0x12,0x17,0x7c,0xbf, +0x10,0x8, 0x3, 0x12,0x17,0x52,0xb, 0xf0,0x12,0x13,0xcf,0x38,0x8c,0xb, 0xd0,0xe5, +0x2a,0xbc,0xbd,0x28,0x2, 0x1, 0xfa,0x7e,0xb3,0x2, 0xb5,0x30,0xe7,0x34,0x6c,0xff, +0x80,0x2b,0x12,0x14,0xa, 0x12,0x17,0x8e,0x12,0x13,0xe8,0x2f,0x11,0x2f,0x11,0x12, +0x13,0xd8,0x7e,0xb3,0x2, 0xb5,0x30,0xe6,0x12,0x74,0x2, 0xac,0xbe,0x49,0x55,0x1, +0xc8,0x6d,0x44,0x12,0x13,0xe8,0x9f,0x12,0x12,0x13,0xd8,0xb, 0xf0,0x12,0x13,0xcf, +0x38,0xd0,0x53,0xe1,0xfd,0x12,0x27,0xdb,0x53,0xe3,0x1f,0x12,0x17,0xa7,0x7c,0xb7, +0x42,0xe3,0x61,0xcc,0x7e,0xb3,0x2, 0xad,0x20,0xe0,0x2, 0x61,0x13,0x6c,0xff,0x9f, +0x11,0x12,0x17,0x4e,0xb, 0xf0,0xbe,0xf0,0x24,0x78,0xf6,0x6c,0xdd,0x61,0xb, 0x7e, +0xb3,0x2, 0x5f,0x30,0xe5,0x5, 0x12,0x17,0x47,0x50,0x1a,0x4c,0xdd,0x78,0x5, 0x53, +0xe7,0xbf,0x80,0x3, 0x43,0xe7,0x40,0x74,0x2, 0x12,0x17,0xee,0x12,0x17,0xba,0x80, +0x4, 0xe4,0x12,0x17,0x5b,0x12,0x17,0x47,0x50,0xf7,0xe4,0x12,0x17,0xee,0x7e,0xb3, +0x2, 0xaf,0x30,0xe7,0xc, 0x6c,0xff,0x7e,0xc1,0xe2,0xb, 0xf0,0xbe,0xf0,0x4, 0x78, +0xf6,0x6c,0xff,0x80,0x38,0x12,0x13,0xf0,0x7e,0xb3,0x2, 0xb5,0x30,0xe7,0x20,0x7e, +0xa3,0x2, 0xad,0x12,0x17,0x75,0xbe,0xb0,0x3, 0x40,0x14,0x7c,0xba,0x30,0xe1,0xf, +0x7e,0x1d,0x24,0x1e,0x34,0xe, 0x24,0x50,0x3, 0x4e,0x60,0x80,0x7a,0x1d,0x24,0x7e, +0x7d,0x24,0x12,0x17,0x8e,0x12,0x13,0xe8,0x12,0x13,0xd6,0xb, 0xf0,0x12,0x13,0xcf, +0x38,0xc3,0x7e,0xb3,0x2, 0x5f,0x30,0xe5,0x10,0xbe,0xd0,0x1, 0x78,0x5, 0x53,0xe7, +0xbf,0x80,0x3, 0x43,0xe7,0x40,0x12,0x17,0xba,0xb, 0xd0,0xe5,0x29,0xbc,0xbd,0x28, +0x2, 0x41,0x6f,0x6c,0xff,0x61,0xc5,0x12,0x14,0xa, 0x7e,0xb3,0x2, 0xb5,0x30,0xe7, +0x54,0x7e,0xa3,0x2, 0xad,0x7c,0xba,0x30,0xe1,0x26,0x12,0x17,0x75,0xbe,0xb0,0x1, +0x38,0x1e,0xa, 0xb, 0x7e,0x14,0x0, 0x2, 0x9d,0x10,0x7e,0x90,0x4, 0xac,0x9e,0x12, +0x1f,0xe8,0x7c,0xb3,0x60,0x5, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x17,0xf4,0x80,0x25, +0x7c,0xba,0x20,0xe1,0x20,0x12,0x17,0x75,0xbe,0xb0,0x2, 0x38,0x18,0xa, 0x4b,0x7e, +0x54,0x0, 0x3, 0x9d,0x54,0x12,0x17,0x8e,0x12,0x13,0xe8,0x60,0x5, 0x2f,0x11,0x14, +0x78,0xfb,0x12,0x13,0xd8,0x7e,0xb3,0x2, 0xb5,0x30,0xe6,0x2d,0x74,0x2, 0xac,0xbe, +0x49,0x15,0x1, 0xc8,0x6d,0x0, 0x74,0x4, 0xac,0xbe,0x7d,0x45,0x12,0x1f,0xe8,0x9f, +0x10,0x12,0x17,0xf4,0x12,0x17,0x7c,0x7e,0x37,0x2, 0x12,0x12,0x17,0xa0,0x58,0x23, +0x7e,0xb3,0x2, 0x5f,0x30,0xe0,0x1c,0x80,0x17,0x74,0x4, 0xac,0xbe,0x12,0x17,0x7c, +0x7e,0x37,0x2, 0x14,0x12,0x17,0xa0,0x58,0xa, 0x7e,0xb3,0x2, 0x5f,0x30,0xe0,0x3, +0x12,0x56,0x87,0xb, 0xf0,0x12,0x13,0xcf,0x28,0x2, 0x61,0x17,0xda,0x3b,0x22,0x7e, +0x73,0x2, 0x62,0xbc,0x7f,0x22,0x2f,0x17,0x59,0x31,0x0, 0x2, 0x1b,0x18,0x20,0x22, +0x7e,0x30,0x4, 0xac,0x23,0x2e,0x15,0x51,0x49,0x31,0x0, 0x2, 0xb, 0x18,0x20,0x22, +0xe5,0xe2,0xa, 0x3b,0x6d,0x22,0x7a,0x1d,0x24,0x7e,0xc1,0xe2,0x7c,0x2c,0x6c,0x33, +0x6d,0x0, 0x7e,0x1d,0x24,0x2f,0x10,0x7a,0x1d,0x24,0xa, 0x3f,0x9, 0xe3,0x2, 0x87, +0x22,0xca,0x79,0x53,0xe1,0xf, 0x7e,0xa3,0x2, 0xb5,0x12,0x26,0xe2,0x12,0x17,0xb1, +0x7c,0xb7,0x42,0xe1,0x7c,0xba,0x30,0xe2,0x54,0x7c,0xba,0xc4,0x23,0x7c,0xab,0x5e, +0xa0,0x7, 0x78,0x5, 0x7e,0xe0,0x4, 0x80,0x3b,0xbe,0xa0,0x1, 0x78,0x11,0x7e,0xb3, +0x2, 0xad,0x30,0xe1,0x5, 0x7e,0xe0,0x2, 0x80,0x2a,0x7e,0xe0,0x5, 0x80,0x25,0xbe, +0xa0,0x3, 0x78,0x11,0x7e,0xb3,0x2, 0xad,0x30,0xe1,0x5, 0x7e,0xe0,0x7, 0x80,0x14, +0x7e,0xe0,0x6, 0x80,0xf, 0x7e,0xb3,0x2, 0xad,0x30,0xe1,0x5, 0x7e,0xe0,0x3, 0x80, +0x3, 0x7e,0xe0,0x1, 0xa, 0x3e,0x12,0x17,0xaf,0x7c,0xb7,0x42,0xe1,0x7e,0xb3,0x2, +0xaf,0x30,0xe7,0xa, 0x74,0x7, 0x7e,0x73,0x2, 0x60,0xb, 0x71,0x80,0x6, 0x74,0x7, +0x7e,0x73,0x2, 0x60,0x12,0x0, 0x25,0x74,0x8, 0x7e,0x73,0x2, 0x61,0x12,0x0, 0x25, +0x74,0x9, 0x6c,0x77,0x12,0x0, 0x25,0x7e,0xb3,0x2, 0xaf,0x30,0xe7,0x46,0x74,0x2f, +0x7e,0x73,0x2, 0xab,0x12,0x0, 0x25,0x74,0x30,0x7e,0x73,0x2, 0xac,0x12,0x0, 0x25, +0x7e,0xf0,0x2, 0x80,0xf, 0x7c,0xbf,0x24,0x2f,0xa, 0x3f,0x9, 0x73,0x2, 0x61,0x12, +0x0, 0x25,0xb, 0xf0,0x7e,0x73,0x2, 0x62,0xa, 0x17,0xb, 0x15,0xa, 0x2f,0xbd,0x21, +0x48,0xe3,0xa, 0x37,0xb, 0x35,0x7c,0xf7,0x80,0x3, 0x12,0x56,0x27,0xbe,0xf0,0x24, +0x40,0xf8,0x80,0x24,0x6c,0xff,0x80,0xf, 0x7c,0xbf,0x24,0x2f,0xa, 0x3f,0x9, 0x73, +0x2, 0x63,0x12,0x0, 0x25,0xb, 0xf0,0x12,0x13,0xcf,0x38,0xec,0x7c,0xf7,0x80,0x3, +0x12,0x56,0x27,0xbe,0xf0,0x24,0x40,0xf8,0x74,0x56,0x7e,0x73,0x2, 0xb1,0x12,0x0, +0x25,0x74,0x57,0x7e,0x73,0x2, 0xb2,0x12,0x0, 0x25,0xda,0x79,0x22,0xc2,0xb, 0x7e, +0xb3,0x0, 0x7a,0x54,0xf, 0x78,0x5, 0xf5,0x14,0xc2,0x4, 0x22,0x20,0x4, 0x2, 0xc1, +0x6f,0x12,0xf, 0xbf,0x68,0x2, 0xc1,0x6f,0x7c,0xba,0x54,0xf, 0xb4,0x1, 0x2, 0x80, +0x2, 0xc1,0x6f,0xe5,0x14,0xbe,0xb0,0x3, 0x40,0x2, 0xc1,0x6f,0x7e,0x37,0x0, 0x63, +0x7e,0x51,0x14,0x3e,0x50,0x3e,0x50,0x7c,0xb5,0x24,0x8, 0xa, 0xb, 0x1b,0x8, 0x30, +0x7e,0x7, 0x0, 0x65,0x7c,0xb5,0x24,0xa, 0xa, 0x2b,0x1b,0x28,0x0, 0x5, 0x14,0xe5, +0x14,0xbe,0xb0,0x3, 0x50,0x5, 0x7c,0xba,0x2, 0x37,0x12,0xe5,0x14,0xb4,0x3, 0x2, +0x80,0x2, 0xc1,0x6f,0x7a,0x35,0x23,0x7a,0x5, 0x25,0x7e,0x5, 0xa, 0x7d,0x30,0xb, +0x36,0xbe,0x35,0xe, 0x50,0x4d,0x7e,0x35,0xe, 0xb, 0x36,0xbe,0x35,0x12,0x50,0x43, +0xbe,0x4, 0x0, 0x3c,0x50,0x3d,0x7e,0x35,0x10,0xbe,0x35,0xc, 0x78,0x5, 0x7e,0x15, +0xc, 0x80,0x19,0x7e,0x25,0x10,0x9e,0x25,0xc, 0x7e,0x35,0xe, 0xad,0x32,0x7e,0x25, +0x12,0x9e,0x25,0xe, 0x12,0x0, 0x46,0x7e,0x15,0xc, 0x9d,0x13,0xbe,0x14,0x0, 0x0, +0x8, 0x6d,0xbe,0x14,0x1, 0xe0,0x58,0x67,0xd2,0xb, 0x7a,0x15,0x23,0x7e,0x34,0x0, +0x1, 0x80,0x59,0x7e,0x35,0xe, 0xb, 0x36,0xbe,0x35,0xa, 0x50,0x52,0x7e,0x35,0x12, +0xb, 0x36,0xbe,0x35,0xe, 0x50,0x48,0xbe,0x4, 0x2, 0xe4,0x28,0x42,0x7e,0x35,0x10, +0xbe,0x35,0xc, 0x78,0x5, 0x7e,0x15,0xc, 0x80,0x1d,0x7e,0x25,0xc, 0x9e,0x25,0x10, +0x7e,0x34,0x3, 0x1f,0x9e,0x35,0xe, 0xad,0x32,0x7e,0x25,0xe, 0x9e,0x25,0x12,0x12, +0x0, 0x46,0x7d,0x13,0x2e,0x15,0xc, 0xbe,0x14,0x0, 0x0, 0x8, 0x12,0xbe,0x14,0x1, +0xe0,0x58,0xc, 0xd2,0xb, 0x7a,0x15,0x23,0x7e,0x34,0x3, 0x1f,0x7a,0x35,0x25,0x30, +0xb, 0x10,0x7e,0x35,0x23,0x7a,0x37,0x0, 0x63,0x7e,0x35,0x25,0x7a,0x37,0x0, 0x65, +0x80,0xb, 0x7e,0x35,0x8, 0x7a,0x37,0x0, 0x63,0x7a,0x7, 0x0, 0x65,0xc2,0x4, 0x22, +0x12,0x19,0xb9,0x7e,0x23,0x2, 0xcd,0x12,0x13,0xe0,0x7a,0x1f,0x2, 0xd1,0x7e,0x23, +0x2, 0xce,0x12,0x13,0xe0,0x7a,0x1f,0x2, 0xd5,0x7e,0x23,0x2, 0xcf,0x12,0x13,0xe0, +0x7a,0x1f,0x2, 0xd9,0x7e,0x23,0x2, 0xd0,0x12,0x13,0xe0,0x7a,0x1f,0x2, 0xdd,0x7e, +0x1f,0x2, 0xd1,0x7e,0xa0,0x1, 0x7e,0x90,0x4, 0xac,0x9a,0x49,0x14,0x2, 0xd3,0x49, +0x4, 0x2, 0xd1,0xbf,0x10,0x58,0x2, 0x7f,0x10,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0xe6, +0x22,0x7d,0x12,0x7d,0x43,0x6d,0x0, 0xd2,0xb, 0xa, 0x3b,0x7e,0x24,0x0, 0x10,0x12, +0x0, 0x46,0xbe,0x24,0x0, 0x8, 0x48,0x2, 0xc2,0xb, 0xbe,0x44,0x0, 0x20,0x40,0x3e, +0xbe,0x44,0x0, 0x3e,0x50,0x38,0x7e,0x4, 0x0, 0x3e,0x9d,0x4, 0x1b,0x4, 0x2e,0x4, +0x2, 0x64,0x12,0x17,0x85,0x1a,0xb, 0x30,0xb, 0xf, 0x12,0x13,0xe8,0xbe,0x18,0x0, +0x8c,0x48,0x36,0xbe,0x18,0x1, 0xe, 0x80,0x30,0x12,0x13,0xe8,0xbe,0x18,0x0, 0x8c, +0x48,0x27,0xbe,0x18,0x0, 0xfa,0x8, 0x21,0x3e,0x4, 0x3e,0x4, 0x80,0x1b,0xbe,0x44, +0x1, 0xc2,0x28,0x15,0xbe,0x44,0x1, 0xe0,0x38,0xf, 0x7d,0x4, 0x9e,0x4, 0x1, 0xc3, +0x2e,0x4, 0x2, 0x46,0x12,0x17,0x85,0x1a,0xb, 0x7d,0x50,0x1a,0x4a,0x1a,0x48,0x12, +0x13,0xe8,0x2f,0x12,0x2, 0x13,0xd8,0x30,0x9, 0x2, 0xd3,0x22,0xc3,0x22,0x74,0x4, +0xac,0xbf,0x59,0x35,0x0, 0xee,0x59,0x25,0x0, 0xec,0x22,0x70,0x5, 0x43,0x87,0x1, +0x80,0xe, 0xb4,0x1, 0x5, 0x43,0x87,0x2, 0x80,0x6, 0xb4,0x2, 0x7, 0x43,0x87,0x2, +0x0, 0x0, 0x0, 0x0, 0x22,0x7c,0xba,0xc4,0x3, 0x54,0x7, 0x22,0x49,0x15,0x0, 0xee, +0x49,0x5, 0x0, 0xec,0x22,0x7a,0x11,0x82,0x7a,0x1, 0x83,0xe4,0x93,0x22,0x7e,0x30, +0x4, 0xac,0x3e,0x2e,0x14,0x0, 0xec,0x22,0x1a,0x37,0x1a,0x26,0x2f,0x1, 0x7d,0x3e, +0x1a,0x26,0x1a,0x24,0xbf,0x1, 0x22,0x7c,0xba,0xc4,0x3, 0x54,0x7, 0xa, 0x3b,0x3e, +0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x22,0x7e,0xb3,0x2, 0xad,0x54,0x1, +0x7e,0x70,0x1, 0xca,0xf8,0x7c,0xfb,0x4c,0x77,0x68,0xf, 0xc2,0xaf,0x43,0xe1,0x1, +0x7e,0x37,0x2, 0x30,0x99,0x34,0xd2,0xaf,0x80,0x3, 0x43,0xe1,0x1, 0xc2,0x9, 0x2e, +0xf0,0xff,0x92,0xa, 0xd2,0xae,0xa9,0xd6,0xb7,0xc2,0xbe,0xda,0xf8,0x22,0x7e,0x37, +0x2, 0x32,0x89,0x34,0x59,0x34,0x0, 0x2, 0x1b,0x48,0x20,0x22,0x12,0x1e,0x5d,0x30, +0x10,0x6, 0x7e,0x34,0x1, 0x2c,0x80,0x4, 0x7e,0x34,0x0, 0xc8,0x7a,0x37,0x2, 0x26, +0x12,0x1a,0x93,0x12,0x19,0x43,0x2, 0x18,0x19,0xca,0xd8,0xca,0x79,0x6c,0xff,0x7e, +0x35,0x53,0x9, 0x73,0x0, 0x1a,0x5e,0x70,0xf, 0x7e,0x63,0x4, 0x17,0xbe,0x60,0x1, +0x28,0x53,0xbe,0x73,0x4, 0x17,0x50,0x4d,0x30,0x10,0x4a,0x6c,0xee,0x80,0x3b,0x7e, +0x70,0x7, 0xac,0x7e,0x9, 0xb3,0x4, 0x39,0x30,0xe1,0x2d,0x30,0xe0,0x4, 0xb, 0xf0, +0x80,0x26,0xbe,0xf0,0x0, 0x28,0x21,0x9, 0xd3,0x4, 0x38,0x7c,0xbd,0x12,0x18,0x8a, +0x60,0x16,0x7c,0xbd,0x7e,0x73,0x4, 0x16,0x12,0x18,0xdf,0x7c,0x6b,0x5e,0x60,0x1, +0x7e,0x50,0x7, 0xac,0x5e,0x12,0x1e,0x4d,0xb, 0xe0,0x7e,0x73,0x4, 0x17,0xbc,0x7e, +0x38,0xbd,0x12,0x1b,0x85,0xda,0x79,0xda,0xd8,0x22,0x12,0x19,0xb9,0x7e,0xb3,0x2, +0xce,0x12,0x18,0xad,0x78,0x12,0x7e,0xb3,0x2, 0xcf,0x12,0x18,0xad,0x78,0x9, 0x7e, +0xb3,0x2, 0xd0,0x12,0x18,0xad,0x68,0x3, 0x74,0x1, 0x22,0xe4,0x22,0x12,0x18,0xb5, +0xa, 0x3b,0x4d,0x33,0x22,0x7c,0xab,0x6c,0x77,0x80,0x11,0xa, 0x27,0x2e,0x25,0x53, +0x7e,0x29,0x60,0xbc,0x6a,0x78,0x3, 0x74,0x1, 0x22,0xb, 0x70,0x7e,0x25,0x53,0x9, +0xb2,0x0, 0x1a,0x54,0xf, 0xa, 0x1b,0xa, 0x27,0xbd,0x21,0x48,0xde,0xe4,0x22,0xca, +0x79,0x7c,0xe7,0x7c,0xfb,0x7a,0xf3,0x2, 0xb9,0x7e,0x34,0x2, 0xb9,0x12,0x19,0xc1, +0x7c,0xbf,0x12,0x16,0x70,0x7e,0xa3,0x2, 0xb9,0x74,0x4, 0xa4,0x2e,0x55,0x51,0x49, +0x15,0x0, 0x2, 0xb, 0x58,0x0, 0x7a,0xf, 0x2, 0xbd,0xbf,0x1, 0x78,0x3, 0xe4,0x80, +0x28,0x12,0x1e,0x46,0xa, 0x1e,0x6d,0x0, 0x12,0x0, 0x78,0x7f,0x1, 0x12,0x19,0x3c, +0x8, 0x16,0x7e,0x17,0x4, 0x29,0x6d,0x0, 0x12,0x19,0x3c,0x8, 0xb, 0x7c,0xbf,0x12, +0x18,0x8a,0x60,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0xda,0x79,0x22,0x7e,0x1f,0x2, 0xbd, +0xbf,0x10,0x22,0xca,0xd8,0xca,0x79,0x12,0xc, 0x28,0x68,0x68,0x7e,0xb3,0x4, 0x4f, +0x60,0x62,0x6c,0xff,0x80,0x53,0x7e,0x30,0x7, 0xac,0x3f,0x9, 0xb1,0x4, 0x39,0x30, +0xe0,0x45,0x9, 0xe1,0x4, 0x38,0x9, 0xd1,0x4, 0x37,0x49,0x31,0x4, 0x35,0x49,0x21, +0x4, 0x33,0x7a,0x1f,0x2, 0xbd,0x7c,0xbe,0x7e,0x70,0x10,0x12,0x1b,0xc2,0x7a,0x1f, +0x2, 0xb9,0xbe,0xd0,0x8, 0x50,0x20,0x7e,0xf, 0x2, 0xb9,0x2e,0x8, 0x3, 0xe8,0x12, +0x19,0x3c,0x58,0x13,0xbe,0x18,0xb, 0xb8,0x58,0xd, 0x7e,0x70,0x7, 0xac,0x7f,0x12, +0x1f,0xcf,0x54,0xfe,0x7a,0x39,0xb0,0xb, 0xf0,0x7e,0x73,0x4, 0x17,0xbc,0x7f,0x38, +0xa5,0x12,0x1b,0x85,0xda,0x79,0xda,0xd8,0x22,0x7a,0xb3,0x2, 0xcd,0x7e,0x34,0x2, +0xcd,0x7d,0x23,0x7e,0x29,0x70,0xbe,0x73,0x4, 0x2, 0x50,0x6b,0xa, 0x57,0x7e,0x33, +0x4, 0x3, 0xa, 0x3, 0x2d,0x5, 0x7c,0x61,0x19,0x62,0x0, 0x1, 0xbe,0x63,0x4, 0x2, +0x78,0x19,0xa, 0x6, 0xb, 0x4, 0x7c,0x21,0x19,0x22,0x0, 0x2, 0x9, 0x22,0x0, 0x1, +0xa, 0x2, 0xb, 0x4, 0x7c,0x21,0x19,0x22,0x0, 0x3, 0x22,0xa, 0x13,0x7e,0x13,0x4, +0x2, 0xa, 0x1, 0x2d,0x1, 0x1b,0x4, 0xa, 0x16,0xbd,0x10,0x78,0x13,0x1b,0x14,0x19, +0x32,0x0, 0x2, 0x9, 0x32,0x0, 0x1, 0xa, 0x13,0x1b,0x14,0x19,0x32,0x0, 0x3, 0x22, +0x1b,0x14,0x7c,0x63,0x19,0x62,0x0, 0x2, 0x9, 0x62,0x0, 0x1, 0xa, 0x16,0xb, 0x14, +0x7c,0x63,0x19,0x62,0x0, 0x3, 0x22,0xa, 0x37,0x7e,0x33,0x4, 0x3, 0xa, 0x13,0x9d, +0x31,0x19,0x72,0x0, 0x1, 0x9, 0xa2,0x0, 0x1, 0xbe,0xa3,0x4, 0x3, 0x78,0xb, 0xa, +0x3a,0xb, 0x34,0x12,0x1a,0x86,0xb, 0x34,0x80,0x12,0x7e,0xb3,0x4, 0x2, 0x14,0xbc, +0xab,0xa, 0x3a,0x78,0xe, 0x1b,0x34,0x12,0x1a,0x86,0x1b,0x34,0x7c,0xb7,0x19,0xb2, +0x0, 0x3, 0x22,0x1b,0x34,0x19,0x72,0x0, 0x2, 0x9, 0x72,0x0, 0x1, 0xa, 0x37,0xb, +0x34,0x19,0x72,0x0, 0x3, 0x22,0x7c,0xb7,0x19,0xb2,0x0, 0x2, 0x9, 0xb2,0x0, 0x1, +0xa, 0x3b,0x22,0x12,0x1a,0xa3,0x7a,0xb3,0x4, 0x17,0xbe,0xb0,0x1, 0x28,0x3, 0x2, +0x1a,0xad,0x22,0x7e,0x35,0x53,0x9, 0xb3,0x0, 0x1a,0x54,0xf, 0x22,0xca,0xd8,0xca, +0x79,0xc2,0xb, 0x12,0x1a,0xa3,0xbe,0xb0,0x1, 0x38,0x2, 0x61,0x7d,0x7e,0xb3,0x4, +0x4f,0x70,0x2, 0x61,0x7d,0x7e,0xf0,0x1, 0x61,0x73,0xc2,0xb, 0x74,0x7, 0xac,0xbf, +0x9, 0xe5,0x4, 0x38,0x9, 0xd5,0x4, 0x37,0x49,0xd5,0x4, 0x35,0x49,0xc5,0x4, 0x33, +0x7c,0xbe,0x7e,0x73,0x4, 0x18,0x12,0x1b,0xc2,0x7f,0x71,0x7e,0x73,0x4, 0x24,0xbc, +0x7d,0x38,0x2, 0xd2,0xb, 0x7e,0xb7,0x4, 0x58,0x6d,0xaa,0x7f,0x15,0x2e,0x18,0x3, +0xe8,0xbf,0x61,0x48,0xa, 0x7e,0x73,0x4, 0x19,0xbc,0x7d,0x38,0x2, 0xd2,0xb, 0x7f, +0x17,0x2f,0x15,0xbf,0x61,0x8, 0xa, 0x7e,0x73,0x4, 0x21,0xbc,0x7d,0x38,0x2, 0xd2, +0xb, 0x7e,0x8, 0x0, 0x4, 0x7e,0x1f,0x4, 0x33,0x12,0x0, 0xe5,0x2f,0x15,0xbf,0x61, +0x8, 0x1b,0xbe,0x68,0x1f,0x40,0x8, 0x15,0x74,0x7, 0xac,0xbf,0x9, 0xb5,0x4, 0x39, +0x20,0xe1,0xa, 0x7e,0x73,0x4, 0x21,0xbc,0x7d,0x38,0x2, 0xd2,0xb, 0xbe,0x68,0x4e, +0x20,0x8, 0xd, 0x74,0x7, 0xac,0xbf,0x9, 0xb5,0x4, 0x39,0x20,0xe1,0x2, 0xd2,0xb, +0xa2,0xb, 0xe4,0x33,0x7c,0x6b,0x5e,0x60,0x1, 0x7e,0x50,0x7, 0xac,0x5f,0x12,0x1e, +0x4d,0xb, 0xf0,0x12,0x1a,0xa3,0x12,0x1f,0xc8,0x58,0x2, 0x41,0xca,0x12,0x1b,0x85, +0xda,0x79,0xda,0xd8,0x22,0x6c,0x66,0x6c,0x77,0x7e,0x50,0x7, 0xac,0x57,0x9, 0xb2, +0x4, 0x39,0x30,0xe0,0x10,0x9, 0xa2,0x4, 0x38,0x7c,0x56,0xb, 0x60,0xa, 0x25,0x2e, +0x25,0x53,0x7a,0x29,0xa0,0xb, 0x70,0xbe,0x70,0x4, 0x40,0xdd,0x5e,0x60,0xf, 0x7e, +0x25,0x53,0x2e,0x24,0x0, 0x1a,0x7e,0x29,0x70,0x5e,0x70,0xf0,0x4c,0x76,0x7a,0x29, +0x70,0x22,0xca,0xd8,0xca,0x79,0x7c,0xa7,0x7c,0xdb,0x9f,0x0, 0x7e,0x93,0x4, 0x3, +0xa, 0xe9,0xa, 0xfd,0x12,0x1c,0x44,0x7c,0x85,0x12,0x1c,0x44,0x7c,0x57,0x4c,0x88, +0x78,0x8, 0x7e,0xe0,0x2, 0x7e,0xf0,0x2, 0x80,0x19,0x7c,0xb9,0x14,0xbc,0xb8,0xa, +0x78,0x78,0x6, 0x1b,0x75,0x7c,0xef,0x80,0xa, 0x1b,0x74,0x7c,0xef,0xa, 0x38,0xb, +0x34,0x7c,0xf7,0x7c,0x75,0xac,0x79,0x2c,0xe7,0x2c,0xf7,0x7e,0x90,0x4, 0xac,0x9f, +0x2e,0x45,0x51,0x12,0x1f,0xec,0x7e,0x90,0x4, 0xac,0x9e,0x2e,0x45,0x51,0x49,0xf4, +0x0, 0x2, 0xb, 0x48,0xe0,0xbf,0x71,0x8, 0x2, 0x80,0x2, 0x7f,0x17,0xbe,0x18,0x0, +0x0, 0x58,0x2, 0x7f,0x10,0xa, 0x1a,0x6d,0x0, 0x12,0x0, 0x78,0x12,0x1e,0x46,0xda, +0x79,0xda,0xd8,0x22,0x7d,0x3f,0x7d,0x2e,0x2, 0x0, 0x46,0xca,0x3b,0x7e,0x77,0x4, +0x31,0x7d,0x37,0x1e,0x34,0x1e,0x34,0x7a,0x37,0x2, 0xba,0x1e,0x74,0x7e,0x37,0x4, +0x2f,0x1e,0x34,0x7a,0x37,0x2, 0xbc,0xe4,0xa1,0xfe,0x12,0x1e,0x39,0x49,0x23,0x0, +0x4, 0x7a,0x27,0x2, 0xbe,0x49,0x63,0x0, 0x6, 0x7e,0x37,0x4, 0x31,0xbd,0x36,0x38, +0x2, 0xc1,0x13,0x7e,0x37,0x2, 0xbe,0x9e,0x37,0x2, 0xbc,0x12,0x2, 0x9e,0x7d,0x23, +0x7e,0x37,0x2, 0xbc,0x9d,0x32,0x7a,0x37,0x2, 0xc0,0x7e,0x24,0x0, 0xa, 0x8d,0x32, +0x7a,0x37,0x2, 0xc0,0xb, 0x34,0x7a,0x37,0x2, 0xc0,0x7d,0x36,0x8d,0x37,0x7a,0x27, +0x2, 0xca,0x7d,0x32,0x9e,0x37,0x2, 0xba,0x12,0x2, 0x9e,0x7e,0x24,0x0, 0xa, 0x12, +0x0, 0x46,0x7a,0x37,0x2, 0xc2,0xb, 0x34,0x7a,0x37,0x2, 0xc2,0xbd,0x76,0x40,0x6, +0x7e,0x37,0x4, 0x53,0x80,0x4, 0x7e,0x37,0x4, 0x12,0x7e,0x24,0x0, 0x64,0x8d,0x32, +0x7a,0x37,0x2, 0xc4,0x7e,0x73,0x4, 0x57,0xa, 0x37,0xbe,0x37,0x2, 0xc4,0x28,0x4, +0x6d,0x33,0x80,0xc, 0x7e,0x73,0x4, 0x5a,0xa, 0x37,0xbe,0x37,0x2, 0xc4,0x50,0x4, +0x7a,0x37,0x2, 0xc4,0x7e,0x27,0x2, 0xc0,0x7e,0x37,0x2, 0xc2,0xad,0x32,0x6d,0x22, +0x7a,0x1f,0x2, 0xc6,0x7e,0x17,0x2, 0xc4,0x12,0x0, 0x89,0x7a,0x1f,0x2, 0xc6,0x7e, +0xf7,0x2, 0xba,0xbd,0xf6,0x40,0x2e,0x7e,0x1f,0x2, 0xc6,0x7e,0xb3,0x4, 0x2b,0x7e, +0x33,0x4, 0x2c,0x7e,0x20,0xc8,0x12,0x1e,0x16,0x7f,0x1, 0x7a,0xf, 0x2, 0xc6,0x7d, +0x36,0x6d,0x22,0xbf,0x10,0x50,0x4, 0x6d,0x66,0xa1,0xf2,0x7e,0x1f,0x2, 0xc6,0x7d, +0xe3,0x9d,0x6e,0xa1,0xf2,0xbd,0x76,0x40,0x35,0x7e,0x1f,0x2, 0xc6,0x7e,0xb3,0x4, +0x2d,0x7e,0x33,0x4, 0x2e,0x12,0x1e,0x2e,0x7e,0x73,0x2, 0xb9,0xa, 0xe7,0x2e,0xe5, +0x53,0x9, 0xbe,0x0, 0x18,0xb4,0x1, 0x6, 0x9f,0x11,0x7a,0x1f,0x2, 0xc6,0x7e,0x1f, +0x2, 0xc6,0x7d,0xe3,0x2d,0x6e,0xbd,0x76,0x50,0x68,0x7d,0x67,0x80,0x64,0x7d,0x3f, +0x2d,0x37,0xbd,0x36,0x40,0x3f,0x7e,0x1f,0x2, 0xc6,0x7e,0xb3,0x4, 0x4, 0x7e,0x33, +0x4, 0x5, 0x12,0x1e,0x2e,0x7e,0x73,0x2, 0xb9,0xa, 0x37,0x2e,0x35,0x53,0x9, 0xb3, +0x0, 0x18,0xb4,0x1, 0x6, 0x9f,0x11,0x7a,0x1f,0x2, 0xc6,0x7d,0x57,0x6d,0x44,0x7e, +0x1f,0x2, 0xc6,0x2f,0x21,0x7d,0x16,0x6d,0x0, 0xbf,0x2, 0x50,0x4, 0x7d,0x67,0x80, +0x21,0x9d,0x63,0x80,0x1d,0x7e,0x1f,0x2, 0xc6,0x7e,0xb3,0x4, 0x6, 0x7e,0x33,0x4, +0x7, 0x12,0x1e,0x2e,0x2d,0x63,0x7e,0x37,0x4, 0x31,0xbd,0x36,0x38,0x4, 0x7d,0x63, +0x1b,0x64,0x12,0x1e,0x39,0x59,0x63,0x0, 0x6, 0x7e,0xb3,0x2, 0xb9,0x4, 0x7a,0xb3, +0x2, 0xb9,0x12,0x1a,0xa3,0xa, 0x2b,0x7e,0x73,0x2, 0xb9,0xa, 0x37,0xbd,0x32,0x58, +0x2, 0x81,0x6a,0xda,0x3b,0x22,0xca,0xf8,0x7c,0xf2,0x12,0x1f,0xdf,0xa, 0x19,0x6d, +0x0, 0x12,0x0, 0x94,0xa, 0x1f,0x6d,0x0, 0x12,0x0, 0x94,0xda,0xf8,0x22,0x7e,0x20, +0xc8,0x12,0x1e,0x16,0x7a,0x1f,0x2, 0xc6,0x22,0x7e,0x63,0x2, 0xb9,0x7e,0x70,0x5, +0xac,0x67,0x2e,0x35,0x53,0x22,0x7e,0x8, 0x0, 0xa, 0x2, 0x0, 0xe5,0x2e,0x24,0x4, +0x39,0x7e,0x29,0x70,0x5e,0x70,0xfe,0x4c,0x76,0x7a,0x29,0x70,0x22,0x12,0x1f,0x25, +0xc2,0xb, 0x7e,0x34,0x4, 0x51,0x12,0x34,0x68,0xd2,0xb, 0x7e,0x34,0x4, 0x10,0x12, +0x34,0x68,0x7e,0x34,0x4, 0x51,0x12,0x1e,0xbc,0x7e,0x34,0x4, 0x10,0x12,0x1e,0xbc, +0x7e,0xb3,0x4, 0x15,0x1e,0xb0,0x54,0x3, 0xa, 0x2b,0x7e,0xb3,0x4, 0x56,0x1e,0xb0, +0x54,0x3, 0xa, 0x3b,0x2d,0x32,0x68,0x5, 0x12,0x1a,0xa3,0x78,0x5, 0xc2,0x10,0x12, +0x52,0x2d,0x7e,0xb3,0x4, 0x56,0x20,0xe0,0x7, 0x7e,0xb3,0x4, 0x15,0x30,0xe0,0x9, +0xd2,0x10,0x74,0x78,0x7a,0xb3,0x4, 0x4f,0x22,0xc2,0x10,0x22,0x49,0x3, 0x0, 0x2, +0x9, 0x53,0x0, 0x4, 0x9, 0xa3,0x0, 0x5, 0x7c,0xba,0x1e,0xb0,0x54,0x3, 0xbe,0xb0, +0x0, 0x28,0x46,0x7e,0x17,0x4, 0x27,0xbd,0x10,0x50,0x2, 0x80,0x22,0x7e,0x17,0x4, +0x1d,0xbd,0x10,0x50,0xa, 0x7e,0x43,0x4, 0x20,0xbc,0x45,0x40,0x37,0x80,0x10,0x7e, +0x17,0x4, 0x25,0xbd,0x10,0x50,0x14,0x7e,0xb3,0x4, 0x1f,0xbc,0xb5,0x40,0x25,0x7d, +0x43,0x2e,0x44,0x0, 0x5, 0x7c,0xba,0x44,0x1, 0x80,0xa, 0x7d,0x43,0x2e,0x44,0x0, +0x5, 0x7c,0xba,0x54,0xfe,0x7a,0x49,0xb0,0x22,0x2e,0x34,0x0, 0x5, 0x7c,0xba,0x54, +0xfe,0x7a,0x39,0xb0,0x22,0xca,0x79,0x6c,0xff,0x7e,0x70,0x7, 0xac,0x7f,0x7d,0x23, +0x2e,0x24,0x4, 0x39,0x7e,0x29,0xb0,0x54,0xfe,0x7a,0x29,0xb0,0x9f,0x0, 0x59,0x13, +0x4, 0x35,0x59,0x3, 0x4, 0x33,0xe4,0x19,0xb3,0x4, 0x37,0xb, 0xf0,0xbe,0xf0,0x4, +0x78,0xd7,0x6c,0xff,0x80,0x67,0xa, 0x3f,0x2e,0x35,0x53,0x7e,0x39,0xe0,0x7e,0x30, +0x7, 0xac,0x3f,0x19,0xe1,0x4, 0x38,0x7e,0x10,0x4, 0xac,0x1e,0x2e,0x5, 0x51,0x12, +0x1f,0xd7,0x59,0x31,0x4, 0x35,0x59,0x21,0x4, 0x33,0x7c,0xbe,0x12,0x51,0xe7,0x7c, +0xab,0x7e,0x50,0x7, 0xac,0x5f,0x19,0xa2,0x4, 0x37,0x7d,0x32,0x12,0x1f,0xcf,0x44, +0x1, 0x7a,0x39,0xb0,0x7e,0x33,0x4, 0x3, 0xbc,0x3e,0x38,0x17,0xa, 0x13,0x7e,0x13, +0x4, 0x2, 0xa, 0x1, 0x2d,0x1, 0xa, 0x1e,0xbd,0x10,0x58,0x7, 0x7e,0x39,0xb0,0x44, +0x2, 0x80,0x5, 0x7e,0x39,0xb0,0x54,0xfd,0x7a,0x39,0xb0,0xb, 0xf0,0x12,0x1a,0xa3, +0x12,0x1f,0xc8,0x48,0x91,0xda,0x79,0x22,0xa, 0x2b,0xa, 0x3f,0xbd,0x32,0x22,0x2e, +0x34,0x4, 0x39,0x7e,0x39,0xb0,0x22,0x49,0x30,0x0, 0x2, 0xb, 0x8, 0x20,0x22,0x7c, +0x93,0xa, 0x1b,0x6d,0x0, 0x2, 0x0, 0x78,0x2e,0x44,0x0, 0xec,0x49,0x34,0x0, 0x2, +0xb, 0x48,0x20,0x22,0x6c,0x77,0x6c,0xaa,0x6c,0x66,0x7e,0x50,0x4, 0xac,0x56,0x49, +0x12,0x1, 0x7e,0x49,0x2, 0x1, 0x7c,0xbe,0x8, 0x9, 0xc4,0x8, 0x4, 0xb, 0x70,0x80, +0x7, 0xbe,0x70,0x8, 0x50,0x2, 0x6c,0x77,0xbe,0x8, 0x3a,0x98,0x8, 0x4, 0xb, 0xa0, +0x80,0x7, 0xbe,0xa0,0x8, 0x50,0x2, 0x6c,0xaa,0xb, 0x60,0xa5,0xbe,0x10,0xcb,0xbe, +0x70,0x8, 0x40,0xa, 0x7e,0x1f,0x1, 0xc4,0xbe,0x18,0x61,0xa8,0x48,0xf, 0xbe,0xa0, +0x8, 0x40,0x1a,0x7e,0x1f,0x1, 0xc4,0xbe,0x18,0x9c,0x40,0x58,0x10,0x7e,0xb3,0x2, +0x5f,0x44,0x2, 0x7a,0xb3,0x2, 0x5f,0xe4,0x7a,0xb3,0x5, 0x60,0x22,0x7e,0xa3,0x2, +0x5f,0x7c,0xba,0x30,0xe1,0x1b,0x7e,0xb3,0x5, 0x60,0x4, 0x7a,0xb3,0x5, 0x60,0xbe, +0xb0,0x14,0x40,0xd, 0xe4,0x7a,0xb3,0x5, 0x60,0x7c,0xba,0x54,0xfd,0x7a,0xb3,0x2, +0x5f,0x22,0x75,0x18,0x3, 0x75,0x1e,0x0, 0x22,0xca,0x79,0x12,0x21,0xc2,0x12,0x56, +0x13,0x12,0x20,0x82,0x7e,0xb3,0x0, 0xd8,0x12,0x24,0x28,0x12,0x40,0x5a,0x12,0x25, +0xf1,0xbe,0xf0,0x1, 0x78,0x6, 0x7e,0x34,0x0, 0xcc,0x80,0x9, 0xbe,0xf0,0x2, 0x78, +0x7, 0x7e,0x34,0x0, 0xd2,0x12,0x3a,0x77,0x12,0x22,0x82,0x75,0x18,0x3, 0x75,0x16, +0x40,0x12,0x21,0xc2,0x7a,0x37,0x0, 0x5d,0xe5,0x18,0xb4,0x3, 0x2, 0x80,0x2, 0x21, +0x57,0xe5,0x1e,0x60,0xec,0x12,0x27,0xc5,0x12,0x23,0xd1,0x12,0x10,0x5d,0x6c,0xff, +0x80,0x40,0x12,0x21,0xba,0x68,0x3, 0xb4,0x2, 0x2b,0x74,0x4, 0xac,0xbf,0x49,0x35, +0x0, 0xee,0x7d,0xe3,0x7c,0xbf,0x12,0x21,0x60,0x7c,0xab,0x74,0x2, 0xa4,0x59,0xe5, +0x3, 0x93,0xa, 0x3f,0x9, 0xe3,0x0, 0xa6,0x7c,0xbf,0x12,0x21,0x60,0xa, 0x3b,0x19, +0xe3,0x3, 0xdb,0x80,0xb, 0x12,0x21,0xcd,0x74,0x2, 0xac,0xbf,0x59,0x35,0x3, 0x93, +0xb, 0xf0,0x12,0x13,0xcf,0x38,0xbb,0x12,0x21,0xba,0x68,0x3, 0xb4,0x2, 0xc, 0xe5, +0x15,0x70,0x5, 0x75,0x15,0x1, 0x80,0x89,0x75,0x15,0x0, 0x75,0x1e,0x0, 0x7e,0xb3, +0x4, 0xc5,0x54,0x7f,0x7a,0xb3,0x4, 0xc5,0xe5,0x4d,0x30,0xe0,0x2, 0x1, 0xc1,0x74, +0x1, 0x7a,0xb3,0x0, 0xdd,0x1, 0xc1,0xe5,0x18,0x7a,0xb3,0x4, 0x99,0xda,0x79,0x22, +0x7c,0x3b,0xe5,0x15,0x70,0x5, 0x12,0x23,0xb2,0x80,0x6, 0x12,0x23,0xb2,0x2e,0xa0, +0x12,0x6c,0x22,0xa, 0xa, 0x2e,0x4, 0x1, 0xb0,0x12,0x17,0x85,0x7c,0x7b,0xa, 0x2, +0x2e,0x4, 0x1, 0x40,0x12,0x17,0x85,0xbc,0xb7,0x78,0x25,0xbe,0x20,0x20,0x50,0x1b, +0xa, 0x32,0x12,0x27,0xb5,0x7d,0x42,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x7c, +0x72,0x1e,0x70,0xa, 0x57,0x2d,0x54,0x7c,0xab,0x80,0x2, 0x7c,0xa2,0x7c,0xba,0x22, +0xb, 0x20,0xbe,0x20,0x24,0x40,0xbc,0x7c,0xb3,0x22,0x7e,0xb3,0x0, 0xd8,0xbe,0xb0, +0x1, 0x22,0x6d,0x33,0x7a,0x37,0x0, 0xa2,0x7e,0x34,0x7, 0xd0,0x22,0x74,0x4, 0xac, +0xbf,0x49,0x35,0x0, 0xee,0x49,0x25,0x0, 0xec,0x22,0xca,0x3b,0x7c,0xab,0x9f,0x66, +0x7f,0x36,0x7f,0x46,0x7f,0x56,0x7e,0x78,0x0, 0x1, 0x7e,0x33,0x5, 0x5f,0xa, 0x43, +0x12,0x34,0x5c,0x68,0xd, 0x7e,0x50,0x4, 0xac,0x5a,0x49,0x72,0x0, 0xea,0x49,0x62, +0x0, 0xe8,0x30,0xc, 0x12,0xbe,0x70,0x1, 0x28,0xd, 0x7e,0x50,0x4, 0xac,0x5a,0x49, +0xb2,0x0, 0xe6,0x49,0xa2,0x0, 0xe4,0x7c,0xb3,0x14,0xbc,0xb7,0x68,0xd, 0x7e,0x50, +0x4, 0xac,0x5a,0x49,0x92,0x0, 0xf2,0x49,0x82,0x0, 0xf0,0x30,0xc, 0x17,0x7d,0x24, +0x1b,0x25,0xa, 0x37,0xbd,0x32,0x58,0xd, 0x7e,0x70,0x4, 0xac,0x7a,0x49,0xd3,0x0, +0xf6,0x49,0xc3,0x0, 0xf4,0x74,0x4, 0xa4,0x12,0x21,0xd1,0x12,0x22,0x71,0x2f,0x71, +0x7f,0x13,0x12,0x22,0x71,0x2f,0x71,0x7f,0x14,0x12,0x22,0x71,0x2f,0x71,0x7f,0x15, +0x12,0x22,0x71,0x2f,0x71,0x7f,0x16,0x12,0x22,0x71,0x2f,0x71,0x7f,0x17,0xda,0x3b, +0x22,0x7f,0x1, 0x7e,0x37,0x2, 0x10,0x12,0x17,0xa0,0x8, 0x3, 0x7f,0x10,0x22,0x9f, +0x11,0x22,0xca,0x3b,0xc2,0xb, 0x7e,0xb3,0x2, 0xb5,0x54,0x7f,0x7a,0xb3,0x2, 0xb5, +0x7e,0x67,0x2, 0xb6,0x7e,0xb3,0x2, 0x5f,0x30,0xe5,0x17,0x80,0x4, 0xe4,0x12,0x17, +0x5b,0x12,0x17,0x47,0x50,0xf7,0xd2,0xb, 0x7e,0xb3,0x2, 0x5f,0x54,0xdf,0x7a,0xb3, +0x2, 0x5f,0x53,0xe3,0x1f,0x6c,0xff,0x74,0xff,0x80,0x8, 0xa, 0x3f,0x19,0xb3,0x2, +0xb9,0xb, 0xf0,0x7e,0xa3,0x2, 0x62,0xbc,0xaf,0x38,0xf0,0x6c,0xee,0x61,0x5e,0x6c, +0xff,0x80,0xa, 0xe4,0xa, 0x3f,0x2d,0x36,0x7a,0x39,0xb0,0xb, 0xf0,0x12,0x13,0xcf, +0x38,0xf1,0x6c,0xff,0xa, 0x2f,0x7e,0x34,0x0, 0x7, 0x9d,0x32,0x7a,0x73,0x5, 0x13, +0x4c,0xff,0x78,0x14,0x75,0x23,0x0, 0x6c,0xaa,0xe5,0x23,0xa, 0x3b,0x19,0xa3,0x4, +0xef,0x5, 0x23,0xe5,0x23,0xb4,0x24,0xef,0x12,0x4f,0x25,0x12,0x42,0xf3,0x12,0x4f, +0x76,0xb, 0xf0,0xbe,0xf0,0x8, 0x78,0xcc,0x6c,0xff,0x80,0x3b,0xa, 0x2f,0x9, 0x62, +0x2, 0xb9,0xa, 0x1f,0x2d,0x16,0x7e,0x19,0x70,0xbc,0x67,0x28,0x28,0x19,0x72,0x2, +0xb9,0x7e,0xb3,0x2, 0x5f,0x20,0xe0,0x7, 0x7e,0xb3,0x2, 0xad,0x30,0xe1,0x5, 0x12, +0x21,0xcd,0x80,0x5, 0x12,0x21,0xcd,0x2f,0x11,0x2f,0x11,0x2f,0x11,0x74,0x2, 0xac, +0xbf,0x59,0x35,0x1, 0xc8,0xb, 0xf0,0x12,0x13,0xcf,0x38,0xc0,0xb, 0xe0,0x7e,0x73, +0x2, 0x37,0xbc,0x7e,0x28,0x2, 0x41,0xcf,0x6c,0xff,0x80,0xd, 0xa, 0x3f,0x9, 0x53, +0x2, 0xb9,0x2d,0x36,0x7a,0x39,0x50,0xb, 0xf0,0x12,0x13,0xcf,0x38,0xee,0x74,0x3, +0x12,0x17,0xee,0x12,0x4e,0xe1,0x12,0x27,0xc5,0x30,0xb, 0x15,0x7e,0xb3,0x2, 0x5f, +0x44,0x20,0x7a,0xb3,0x2, 0x5f,0x80,0x4, 0xe4,0x12,0x17,0x5b,0x12,0x17,0x47,0x50, +0xf7,0x53,0xe3,0x1f,0x7e,0xb3,0x2, 0xad,0x12,0x17,0xa9,0x7c,0xb7,0x42,0xe3,0xda, +0x3b,0x22,0xa, 0xf3,0x7e,0x44,0x0, 0x9, 0x7d,0x3f,0x7d,0x24,0x12,0x0, 0x46,0x7d, +0x2, 0x3e,0x4, 0x7d,0x3f,0x7d,0x24,0x12,0x0, 0x46,0x7d,0x50,0x2d,0x53,0x7c,0xab, +0x22,0xca,0xf8,0x7e,0xa3,0x0, 0xd8,0xbe,0xa0,0x1, 0x68,0x5, 0xbe,0xa0,0x2, 0x78, +0x3, 0x75,0x4d,0x1, 0xe5,0x4d,0x30,0xe0,0x25,0x7c,0xba,0x12,0x24,0x28,0x12,0x25, +0xf1,0xbe,0xf0,0x1, 0x78,0x6, 0x7e,0x34,0x0, 0xcc,0x80,0x9, 0xbe,0xf0,0x2, 0x78, +0x7, 0x7e,0x34,0x0, 0xd2,0x12,0x3a,0x77,0x12,0x22,0x82,0x53,0x4d,0xfc,0xe5,0x4d, +0x30,0xe2,0x12,0x53,0xca,0xe1,0x7e,0x73,0x0, 0xdc,0xa, 0x37,0x3e,0x34,0x7c,0xb7, +0x42,0xca,0x53,0x4d,0xfb,0xda,0xf8,0x22,0xca,0xf8,0x7c,0xfb,0xbe,0xf0,0x1, 0x68, +0x5, 0xbe,0xf0,0x2, 0x78,0x15,0x74,0x12,0x7a,0xb3,0x2, 0x60,0xe4,0x7a,0xb3,0x2, +0x61,0x7e,0x73,0x2, 0x60,0x7a,0x73,0x2, 0x62,0x80,0x12,0x74,0x20,0x7a,0xb3,0x2, +0x60,0x74,0x4, 0x7a,0xb3,0x2, 0x61,0x74,0x24,0x7a,0xb3,0x2, 0x62,0x7e,0xb3,0x2, +0xaf,0x54,0x7f,0x7a,0xb3,0x2, 0xaf,0x7e,0xb3,0x2, 0xb3,0x44,0xf, 0x7a,0xb3,0x2, +0xb3,0x44,0xf0,0x7a,0xb3,0x2, 0xb3,0x7e,0x73,0x0, 0xca,0x7a,0x73,0x2, 0xb1,0x7e, +0x73,0x0, 0xcb,0x7a,0x73,0x2, 0xb2,0xbe,0xf0,0x1, 0x68,0x5, 0xbe,0xf0,0x2, 0x78, +0x16,0xe5,0x15,0x70,0x6, 0x7e,0x34,0x1, 0xb0,0x80,0x4, 0x7e,0x34,0x1, 0xc2,0x7e, +0x24,0x2, 0x63,0x74,0x12,0x80,0xa, 0x7e,0x34,0x1, 0x40,0x7e,0x24,0x2, 0x63,0x74, +0x24,0x7e,0x30,0x98,0x12,0x4e,0x70,0x6c,0xaa,0x80,0x21,0xa, 0x3a,0x12,0x27,0xb5, +0x7e,0xb3,0x2, 0x60,0x1e,0xb0,0xa, 0x1b,0xad,0x12,0x7c,0xba,0x1e,0xb0,0xa, 0x3b, +0x2d,0x31,0x7c,0xb7,0xa, 0x4a,0x19,0xb4,0x2, 0x87,0xb, 0xa0,0x7e,0xb3,0x2, 0x60, +0xbc,0xba,0x38,0xd7,0x6c,0xaa,0x80,0x12,0xa, 0x3a,0x7e,0xb3,0x2, 0x60,0xa, 0x4b, +0x2d,0x43,0x7c,0xb9,0x19,0xb4,0x2, 0x87,0xb, 0xa0,0x7e,0xb3,0x2, 0x61,0xbc,0xba, +0x38,0xe6,0x7e,0xb3,0x2, 0xad,0x44,0x1, 0x7a,0xb3,0x2, 0xad,0xbe,0xf0,0x1, 0x78, +0xd, 0x7e,0xb3,0x2, 0xad,0x54,0xfd,0x12,0x25,0xe0,0x44,0x8, 0x80,0x21,0xbe,0xf0, +0x2, 0x7e,0xb3,0x2, 0xad,0x78,0x11,0x54,0xfd,0x7a,0xb3,0x2, 0xad,0x7e,0xb3,0x2, +0xb5,0x54,0xfb,0x12,0x25,0xea,0x80,0x7, 0x44,0x2, 0x12,0x25,0xe0,0x44,0x18,0x7a, +0xb3,0x2, 0xb5,0x7e,0xb3,0x2, 0xad,0x54,0xfb,0x7a,0xb3,0x2, 0xad,0x54,0xe7,0x44, +0x8, 0x7a,0xb3,0x2, 0xad,0x7e,0x63,0x0, 0xd9,0x5e,0x60,0x7, 0x7c,0xb6,0xc4,0x33, +0x54,0xe0,0x7c,0x6b,0x7e,0x73,0x2, 0xad,0x12,0x26,0xd8,0x7c,0xb7,0xc4,0x13,0x54, +0x7, 0x54,0x7, 0xbe,0xb0,0x0, 0x28,0x10,0x7c,0xb7,0x30,0xe1,0xb, 0x7c,0x67,0x9e, +0x60,0x20,0x5e,0x60,0xe0,0x12,0x26,0xd8,0x7e,0x63,0x0, 0xda,0x5e,0x60,0x7f,0x7e, +0x73,0x2, 0xae,0x5e,0x70,0x80,0x4c,0x76,0x7a,0x73,0x2, 0xae,0x7e,0x63,0x0, 0xdb, +0x5e,0x60,0x7f,0x7e,0x73,0x2, 0xaf,0x5e,0x70,0x80,0x4c,0x76,0x7a,0x73,0x2, 0xaf, +0x7e,0xb3,0x2, 0xb0,0x54,0xf0,0x44,0x1, 0x7a,0xb3,0x2, 0xb0,0x54,0xf, 0x44,0x20, +0x7a,0xb3,0x2, 0xb0,0x74,0x3, 0x7a,0xb3,0x2, 0xb4,0x7e,0xb3,0x2, 0xb5,0x54,0xfc, +0x7a,0xb3,0x2, 0xb5,0x12,0x27,0xd4,0x54,0x7f,0x7a,0xb3,0x2, 0xb5,0xda,0xf8,0x22, +0x7a,0xb3,0x2, 0xad,0x7e,0xb3,0x2, 0xb5,0x44,0x4, 0x7a,0xb3,0x2, 0xb5,0x54,0xc7, +0x22,0x12,0x25,0xf9,0x7e,0xf3,0x0, 0xd8,0x22,0x12,0x0, 0x2e,0x70,0x2, 0xc1,0xd7, +0x80,0x4, 0xe4,0x12,0x17,0x5b,0x12,0x17,0x47,0x50,0xf7,0x75,0xe1,0x0, 0x12,0x27, +0xdb,0x7c,0xba,0x12,0x26,0xe6,0x3e,0x34,0x12,0x27,0xe5,0x75,0xe3,0x0, 0x12,0x26, +0xe2,0x3e,0x34,0x7c,0xb7,0x42,0xe3,0x7c,0xba,0xc4,0x23,0x54,0x3, 0xa, 0x3b,0x12, +0x17,0xb3,0x7c,0xb7,0x42,0xe3,0x12,0x17,0xa7,0x7c,0xb7,0x42,0xe3,0x75,0xe7,0x0, +0x7c,0xba,0x30,0xe1,0x5, 0x43,0xe7,0x33,0x80,0x3, 0x43,0xe7,0x11,0x74,0x1, 0x7e, +0x73,0x2, 0xae,0x5e,0x70,0x7f,0x12,0x0, 0x25,0x74,0x2, 0x7e,0x73,0x2, 0xaf,0x5e, +0x70,0x7f,0x12,0x0, 0x25,0x74,0x3, 0xca,0xb8,0x7e,0x63,0x2, 0xb0,0x7c,0x76,0x12, +0x27,0xbc,0x7c,0x7b,0x7c,0xb6,0xc4,0x54,0xf, 0x2c,0x7b,0xda,0xb8,0x12,0x0, 0x25, +0x74,0x6, 0x7e,0x70,0x61,0x12,0x0, 0x25,0x12,0x14,0x11,0x74,0x53,0x7e,0x73,0x2, +0xb3,0x5e,0x70,0xf, 0x12,0x0, 0x25,0x74,0x54,0xca,0xb8,0x7e,0xb3,0x2, 0xb3,0xc4, +0x7c,0x7b,0x5e,0x70,0xf, 0xda,0xb8,0x12,0x0, 0x25,0x7e,0xb3,0x2, 0xad,0xc4,0x23, +0x54,0x3, 0xbe,0xb0,0x1, 0x68,0x3, 0xb4,0x2, 0x15,0x74,0x5b,0x7e,0x73,0x2, 0xb4, +0x12,0x0, 0x25,0x74,0x5c,0x7e,0x73,0x2, 0xb5,0x5e,0x70,0x3, 0x12,0x0, 0x25,0x43, +0xe1,0x8, 0x74,0x2, 0x2, 0x3a,0x63,0x22,0x5e,0x70,0x1f,0x4c,0x76,0x7a,0x73,0x2, +0xad,0x22,0x7c,0xba,0x1e,0xb0,0x1e,0xb0,0x54,0x1, 0xa, 0x3b,0x22,0x12,0x25,0xf9, +0x12,0x22,0x82,0x12,0x48,0xbd,0x2, 0x26,0xf9,0xca,0x79,0x12,0x27,0xd0,0x6d,0x33, +0x6c,0xee,0x80,0xa, 0x74,0x2, 0xac,0xbe,0x59,0x35,0x2, 0xb9,0xb, 0xe0,0x7e,0x53, +0x2, 0x62,0xbc,0x5e,0x38,0xee,0x7e,0xb3,0x2, 0x5f,0x30,0xe0,0x3a,0x6c,0xee,0x80, +0x2c,0x12,0x42,0xf3,0x6c,0xff,0x80,0x1e,0x7e,0x50,0x2, 0xac,0x5f,0x49,0xf2,0x2, +0xb9,0x6d,0xee,0x74,0x4, 0xac,0xbf,0x12,0x17,0x7c,0xbf,0x7, 0x8, 0x6, 0x7d,0x31, +0x59,0x32,0x2, 0xb9,0xb, 0xf0,0x12,0x13,0xcf,0x38,0xdd,0xb, 0xe0,0x7e,0x73,0x2, +0x36,0xbc,0x7e,0x38,0xcc,0x80,0x3c,0x7e,0xe0,0x1, 0x12,0x10,0x5d,0x6c,0xff,0x80, +0x26,0x12,0x21,0xcd,0x74,0x2, 0x1e,0x34,0xe, 0x24,0x50,0x3, 0x4e,0x60,0x80,0x14, +0x78,0xf4,0x7d,0x13,0x7e,0x50,0x2, 0xac,0x5f,0x2e,0x24,0x2, 0xb9,0xb, 0x28,0x30, +0x2d,0x31,0x1b,0x28,0x30,0xb, 0xf0,0x12,0x13,0xcf,0x38,0xd5,0xb, 0xe0,0xbe,0xe0, +0x4, 0x28,0xc7,0x6c,0xee,0x80,0x16,0x74,0x2, 0xac,0xbe,0x49,0x35,0x2, 0xb9,0x49, +0x25,0x1, 0xc8,0xbd,0x23,0x50,0x4, 0x59,0x35,0x1, 0xc8,0xb, 0xe0,0x12,0x4f,0x16, +0x38,0xe5,0xda,0x79,0x22,0x7e,0x24,0x0, 0x2, 0x2, 0x0, 0x46,0x5e,0x70,0xf, 0x7c, +0xb7,0xc4,0x54,0xf0,0x22,0x7e,0xb3,0x2, 0xb5,0x44,0x80,0x7a,0xb3,0x2, 0xb5,0x22, +0x7e,0xb3,0x2, 0xb5,0x54,0xbf,0x7a,0xb3,0x2, 0xb5,0x22,0x7e,0xa3,0x2, 0xad,0x7c, +0xba,0x54,0x1, 0xa, 0x3b,0x3e,0x34,0x7c,0xb7,0x42,0xe1,0x22,0xbe,0xb0,0xa, 0x50, +0x8, 0x7c,0x1b,0x2e,0x10,0x16,0xa5,0xe7,0x22,0x2, 0x27,0xfc,0x7c,0x7b,0xa5,0xbf, +0xa, 0x5, 0x7e,0xa0,0x20,0x21,0x59,0xa5,0xbf,0xb, 0x5, 0x7e,0xa0,0x3, 0x21,0x59, +0xa5,0xbf,0xc, 0x6, 0x7e,0xa3,0x0, 0xd9,0x21,0x59,0xa5,0xbf,0xd, 0x1c,0x7e,0xb3, +0x0, 0xd8,0xb4,0x1, 0x6, 0x7e,0xa3,0x0, 0xcc,0x21,0x59,0xb4,0x2, 0x6, 0x7e,0xa3, +0x0, 0xd2,0x21,0x59,0x7e,0xa3,0x0, 0xca,0x21,0x59,0xa5,0xbf,0xe, 0x1c,0x7e,0xb3, +0x0, 0xd8,0xb4,0x1, 0x6, 0x7e,0xa3,0x0, 0xcd,0x21,0x59,0xb4,0x2, 0x6, 0x7e,0xa3, +0x0, 0xd3,0x21,0x59,0x7e,0xa3,0x0, 0xcb,0x21,0x59,0xa5,0xbf,0xf, 0x6, 0x7e,0xa3, +0x0, 0xda,0x21,0x59,0xa5,0xbf,0x10,0x6, 0x7e,0xa3,0x0, 0xdb,0x21,0x59,0xbe,0x70, +0x11,0x40,0x1d,0xbe,0x70,0x34,0x38,0x18,0x12,0x21,0xba,0x68,0x3, 0xb4,0x2, 0x8, +0xa, 0x37,0x9, 0xa3,0x3, 0xca,0x21,0x59,0xa, 0x37,0x9, 0xa3,0x0, 0x95,0x21,0x59, +0xbe,0x70,0x35,0x40,0x35,0xbe,0x70,0x58,0x38,0x30,0xa, 0x57,0x9e,0x54,0x0, 0x35, +0x7c,0xab,0xbe,0xa0,0x20,0x50,0x14,0xa, 0x4a,0x7e,0x4, 0x0, 0x10,0x12,0x29,0x6f, +0x7d,0x12,0x3e,0x14,0x12,0x29,0x6f,0x2d,0x31,0x80,0x2, 0xa, 0x3a,0x2e,0x34,0x1, +0x40,0x12,0x29,0x66,0x7c,0xab,0xb, 0xa0,0x21,0x59,0xa5,0xbf,0x59,0x6, 0x7e,0xa3, +0x0, 0xdc,0x21,0x59,0xa5,0xbf,0x5a,0x5, 0x7e,0xa0,0xf, 0x80,0x7c,0xa5,0xbf,0xac, +0x13,0x7e,0xb3,0x0, 0xd8,0xb4,0x2, 0x6, 0x7e,0xa3,0x0, 0xd4,0x80,0x6b,0x7e,0xa3, +0x0, 0xce,0x80,0x65,0xa5,0xbf,0xa0,0x5, 0x7e,0xa0,0x1, 0x80,0x5c,0xa5,0xbf,0xa1, +0x13,0x7e,0xb3,0x0, 0xd8,0xb4,0x2, 0x6, 0x7e,0xa3,0x0, 0xd5,0x80,0x4b,0x7e,0xa3, +0x0, 0xcf,0x80,0x45,0xa5,0xbf,0xa2,0x13,0x7e,0xb3,0x0, 0xd8,0xb4,0x2, 0x6, 0x7e, +0xa3,0x0, 0xd6,0x80,0x34,0x7e,0xa3,0x0, 0xd0,0x80,0x2e,0xa5,0xbf,0xa3,0x13,0x7e, +0xb3,0x0, 0xd8,0xb4,0x2, 0x6, 0x7e,0xa3,0x0, 0xd7,0x80,0x1d,0x7e,0xa3,0x0, 0xd1, +0x80,0x17,0xa5,0xbf,0xad,0x6, 0x7e,0xa3,0x0, 0xdd,0x80,0xd, 0xa5,0xbf,0xae,0x6, +0x7e,0xa3,0x0, 0xd8,0x80,0x3, 0x7e,0xa0,0xee,0x7c,0xba,0x22,0xe5,0x29,0xa, 0xfb, +0x7d,0x3f,0x2e,0x37,0x2, 0x57,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x22,0x7d, +0x34,0x7d,0x20,0x2, 0x0, 0x46,0xca,0x3b,0xc2,0xb, 0x12,0x0, 0x2e,0x70,0x3, 0x2, +0x32,0xbf,0x75,0x23,0x0, 0x6c,0xaa,0xe5,0x23,0xa, 0x3b,0x19,0xa3,0x0, 0x77,0x5, +0x23,0xe5,0x23,0xb4,0x2, 0xef,0x7e,0xa3,0x2, 0x60,0x7c,0xba,0x1e,0xb0,0xf5,0x27, +0x7c,0xba,0x1e,0xb0,0x1e,0xb0,0xf5,0x28,0x7e,0x63,0x0, 0x79,0x7c,0xa6,0x5e,0xa0, +0xf, 0x7a,0xa1,0x5a,0xbe,0xa0,0x1, 0x68,0x2e,0xbe,0xa0,0x2, 0x78,0x2b,0xe5,0x27, +0xa, 0xfb,0x7e,0xa3,0x0, 0x5f,0xa, 0xa, 0x7d,0x30,0x7d,0x2f,0x12,0x0, 0x46,0x7d, +0x12,0xe5,0x28,0xa, 0x4b,0xbd,0x41,0x8, 0x5, 0x12,0x55,0xe9,0x8, 0x9, 0x12,0x55, +0xe9,0x8, 0x6, 0xbd,0x41,0x18,0x2, 0xd2,0xb, 0x75,0x23,0x0, 0xa1,0xdc,0xe5,0x23, +0xa, 0x3b,0x9, 0x73,0x0, 0x5f,0x7a,0x71,0x25,0x7e,0xa1,0x27,0x7c,0xb7,0x84,0x7a, +0xa1,0x25,0x9f,0x0, 0x7a,0xf, 0x2, 0xd5,0x7a,0xf, 0x2, 0xd9,0x7a,0xf, 0x2, 0xe1, +0x7a,0xf, 0x2, 0xe5,0x7e,0xa1,0x25,0x74,0x4, 0xa4,0x49,0x35,0x1, 0x7e,0x49,0x25, +0x1, 0x7c,0x7a,0x1f,0x2, 0xdd,0xe5,0x28,0xa, 0xfb,0x6d,0xee,0xe5,0x25,0xa, 0xdb, +0x6d,0xcc,0x7f,0x16,0x7f,0x7, 0x12,0x0, 0x94,0x7f,0x20,0x7a,0x2f,0x2, 0xc1,0x7f, +0x7, 0x1b,0xc, 0xbf,0x2, 0x68,0x12,0x7e,0xa1,0x25,0x74,0x4, 0xa4,0x49,0x35,0x1, +0x82,0x49,0x25,0x1, 0x80,0x7a,0x1f,0x2, 0xd9,0x30,0xb, 0x1e,0x7f,0x7, 0x1b,0xd, +0x7e,0x1f,0x2, 0xc1,0xbf,0x1, 0x28,0x12,0x7e,0xa1,0x25,0x74,0x4, 0xa4,0x49,0x35, +0x1, 0x86,0x49,0x25,0x1, 0x84,0x7a,0x1f,0x2, 0xe5,0x7e,0x1f,0x2, 0xc1,0xbe,0x18, +0x0, 0x0, 0x68,0x12,0x7e,0xa1,0x25,0x74,0x4, 0xa4,0x49,0x35,0x1, 0x7a,0x49,0x25, +0x1, 0x78,0x7a,0x1f,0x2, 0xd5,0x30,0xb, 0x1c,0x7e,0x1f,0x2, 0xc1,0xbe,0x18,0x0, +0x1, 0x28,0x12,0x7e,0xa1,0x25,0x74,0x4, 0xa4,0x49,0x35,0x1, 0x76,0x49,0x25,0x1, +0x74,0x7a,0x1f,0x2, 0xe1,0x7a,0x6f,0x2, 0xc1,0xbf,0x67,0x40,0xa, 0x7e,0x1f,0x2, +0xc1,0x9f,0x17,0x7a,0x1f,0x2, 0xc1,0x7e,0xb3,0x2, 0x5f,0x20,0xe4,0x2, 0x61,0xcc, +0x7e,0x27,0x2, 0x57,0x12,0x56,0x8f,0x93,0xbe,0xb3,0x2, 0x62,0x50,0x4, 0xe5,0x25, +0x60,0x41,0x7d,0x32,0xb, 0x34,0x12,0x29,0x66,0xbe,0xb3,0x2, 0x62,0x50,0x5, 0x12, +0x32,0xe3,0x68,0x2f,0x7d,0x32,0xb, 0x35,0x12,0x29,0x66,0xbe,0xb3,0x2, 0x62,0x50, +0x7, 0xe5,0x25,0xbe,0xb1,0x28,0x68,0x1b,0x7d,0x32,0x2e,0x34,0x0, 0x3, 0x12,0x29, +0x66,0xbe,0xb3,0x2, 0x62,0x40,0x2, 0x61,0xcc,0xe5,0x27,0x14,0xbe,0xb1,0x25,0x68, +0x2, 0x61,0xcc,0xe5,0x25,0x70,0x4, 0xf5,0x29,0x80,0x19,0x12,0x32,0xe3,0x78,0x5, +0x75,0x29,0x1, 0x80,0xf, 0xe5,0x25,0xbe,0xb1,0x28,0x78,0x5, 0x75,0x29,0x2, 0x80, +0x3, 0x75,0x29,0x3, 0x12,0x29,0x5c,0x12,0x37,0x29,0x48,0x2, 0x61,0xcc,0x12,0x36, +0xe1,0x12,0x32,0xda,0x58,0x2, 0x7f,0x31,0x7f,0x13,0x7d,0x1f,0x2e,0x17,0x2, 0x59, +0x12,0x32,0xc8,0xca,0xb8,0x12,0x32,0xc2,0x7c,0x3b,0xda,0xb8,0x12,0x32,0xd1,0x58, +0x2, 0x7f,0x31,0xe5,0x25,0x60,0x7, 0xe5,0x25,0xbe,0xb1,0x28,0x78,0x28,0x7e,0x2f, +0x2, 0xd9,0xbf,0x23,0x58,0x4, 0x9f,0x11,0x80,0x3, 0x12,0x55,0xce,0x7a,0x1f,0x2, +0xd9,0x7e,0x2f,0x2, 0xe5,0xbf,0x23,0x58,0x4, 0x9f,0x11,0x80,0x3, 0x12,0x55,0xce, +0x7a,0x1f,0x2, 0xe5,0x80,0x26,0x7e,0x2f,0x2, 0xd5,0xbf,0x23,0x58,0x4, 0x9f,0x11, +0x80,0x3, 0x12,0x55,0xce,0x7a,0x1f,0x2, 0xd5,0x7e,0x2f,0x2, 0xe1,0xbf,0x23,0x58, +0x4, 0x9f,0x11,0x80,0x3, 0x12,0x55,0xce,0x7a,0x1f,0x2, 0xe1,0x7e,0x5f,0x2, 0xc1, +0x12,0x37,0x43,0xb, 0xc, 0x7e,0x1f,0x2, 0xd9,0x12,0x37,0x5a,0x1b,0xd, 0x7e,0x1f, +0x2, 0xe1,0x12,0x37,0x5a,0xb, 0xd, 0x7e,0x5f,0x2, 0xe5,0x12,0x37,0x19,0x7e,0x1f, +0x2, 0xd9,0x2f,0x10,0x7e,0xf, 0x2, 0xe1,0x2f,0x1, 0x7f,0x60,0x2f,0x65,0x7a,0x6f, +0x2, 0xbd,0x74,0x6, 0x7f,0x17,0x2f,0x11,0x14,0x78,0xfb,0x12,0x37,0x4, 0x7a,0x37, +0x2, 0xd1,0xe5,0x23,0xa, 0x3b,0x9, 0xa3,0x0, 0x5f,0x7a,0xa1,0x25,0xe5,0x27,0xa, +0x2b,0x1b,0x24,0xa, 0x3a,0xbd,0x32,0xe5,0x27,0xa, 0x4b,0xe5,0x25,0x8, 0x8, 0xa, +0x5b,0x9d,0x54,0xf5,0x26,0x80,0x6, 0xa, 0x5b,0x2d,0x54,0xf5,0x26,0xa2,0xb, 0x92, +0xc, 0xe5,0x25,0x12,0x21,0xda,0x7a,0x1f,0x2, 0xc1,0xa2,0xb, 0x92,0xc, 0xe5,0x26, +0x12,0x21,0xda,0x12,0x55,0xa3,0x8, 0x5, 0x12,0x55,0xba,0x80,0x3, 0x12,0x55,0xd7, +0x12,0x55,0x85,0x12,0x4c,0x79,0x7a,0x1f,0x2, 0xcd,0x7e,0xb3,0x2, 0x5f,0x20,0xe3, +0x2, 0xa1,0xc7,0x12,0xc, 0x28,0xb4,0x1, 0x2, 0x80,0x2, 0xa1,0xc7,0x7e,0x17,0x2, +0x2c,0x1a,0x2, 0x1a,0x0, 0x7e,0x2f,0x2, 0xcd,0xbf,0x20,0x48,0xe, 0x7e,0x17,0x2, +0x2e,0x1a,0x2, 0x1a,0x0, 0xbf,0x20,0x18,0x2, 0xa1,0xc7,0xe5,0x25,0xbe,0xb1,0x28, +0x40,0x16,0xe5,0x28,0xa, 0x3b,0x7e,0x53,0x2, 0x60,0xa, 0x25,0x9d,0x23,0xe5,0x25, +0xa, 0x3b,0xbd,0x23,0x8, 0x2, 0xa1,0xc7,0xe5,0x25,0xbe,0xb1,0x28,0xe5,0x25,0xa, +0x2b,0x7d,0x32,0x50,0x19,0x2e,0x37,0x2, 0x4f,0x12,0x29,0x66,0xf5,0x29,0x7d,0x32, +0x2e,0x37,0x2, 0x51,0x12,0x29,0x66,0xf5,0x2a,0x85,0x25,0x2b,0x80,0x26,0x2e,0x37, +0x2, 0x4f,0xe5,0x27,0xa, 0xb, 0x9d,0x30,0x12,0x29,0x66,0xf5,0x29,0x7d,0x32,0x2e, +0x37,0x2, 0x51,0x9d,0x30,0x12,0x29,0x66,0xf5,0x2a,0xe5,0x27,0xa, 0x4b,0x7d,0x52, +0x9d,0x54,0xf5,0x2b,0x7e,0x63,0x2, 0x62,0xbe,0x61,0x2a,0x38,0x2, 0xa1,0xc7,0xbe, +0x61,0x29,0x38,0x2, 0xa1,0xc7,0x7e,0xa1,0x2a,0x74,0x4, 0xa4,0x12,0x21,0xd1,0x7e, +0xa1,0x29,0x74,0x4, 0xa4,0x49,0x75,0x0, 0xee,0x49,0x65,0x0, 0xec,0x2f,0x31,0x12, +0x37,0x36,0x48,0x2, 0xa1,0xc7,0x12,0x36,0xe1,0x12,0x32,0xda,0x58,0x2, 0x7f,0x31, +0x7f,0x13,0xe5,0x2b,0xa, 0xb, 0x7d,0x10,0x2e,0x17,0x2, 0x53,0x12,0x32,0xc8,0x54, +0x7f,0xca,0xb8,0x7d,0x10,0x2e,0x17,0x2, 0x55,0x12,0x32,0xc8,0x7c,0x3b,0xda,0xb8, +0x12,0x32,0xd1,0x58,0x2, 0x7f,0x31,0x7e,0x71,0x25,0x74,0x40,0xac,0xb7,0x7d,0x35, +0x2e,0x34,0x0, 0x10,0xbe,0x37,0x2, 0xd1,0x50,0xe, 0x7d,0x35,0x2e,0x34,0x0, 0x30, +0xbe,0x37,0x2, 0xd1,0x28,0x2, 0x2f,0x33,0xe5,0x2b,0xa, 0x3b,0x2e,0x37,0x2, 0x53, +0x12,0x29,0x66,0x23,0x54,0x1, 0x68,0x8, 0x7e,0x1f,0x2, 0xc5,0x2f,0x13,0x80,0x10, +0x7e,0xf, 0x2, 0xc5,0xbf,0x3, 0x50,0x4, 0x9f,0x11,0x80,0x4, 0x7f,0x10,0x9f,0x13, +0x12,0x55,0xa3,0x8, 0x5, 0x12,0x55,0xba,0x80,0x3, 0x12,0x55,0xd7,0x12,0x55,0x85, +0x12,0x4c,0x79,0x7a,0x1f,0x2, 0xcd,0x7e,0x37,0x2, 0xd1,0x12,0x56,0x20,0x59,0x35, +0x0, 0x63,0x7e,0x1f,0x2, 0xcd,0x59,0x35,0x0, 0x65,0x5, 0x23,0x7e,0x23,0x0, 0x79, +0x7c,0xa2,0x5e,0xa0,0xf, 0xa, 0x2a,0xe5,0x23,0xa, 0x3b,0xbd,0x32,0x58,0x2, 0x21, +0xee,0xbe,0xa0,0x2, 0x50,0x3, 0x2, 0x32,0xbf,0x7a,0xa3,0x3, 0x1, 0x75,0x23,0x0, +0x80,0x28,0x12,0x36,0xfa,0x49,0x32,0x0, 0x63,0x59,0x32,0x2, 0xe9,0x49,0x32,0x0, +0x65,0x59,0x32,0x2, 0xeb,0x7e,0xa0,0xff,0x19,0xa2,0x2, 0xed,0xe5,0x23,0xa, 0x3b, +0x9, 0xa3,0x0, 0x5f,0x19,0xa3,0x2, 0xfd,0x5, 0x23,0x12,0xc, 0x28,0xa, 0x2b,0xe5, +0x23,0xa, 0x3b,0xbd,0x32,0x48,0xcb,0x75,0x23,0x0, 0x2, 0x32,0x49,0x12,0x56,0x20, +0x9, 0xb5,0x2, 0xed,0xbe,0xb0,0xaa,0x78,0x3, 0x2, 0x32,0x47,0xe5,0x23,0xa, 0x5b, +0xb, 0x54,0xf5,0x24,0x2, 0x32,0x3b,0x7e,0xa1,0x24,0x74,0x5, 0xa4,0x9, 0xb5,0x2, +0xed,0xbe,0xb0,0xaa,0x78,0x3, 0x2, 0x32,0x39,0xe5,0x23,0xa, 0xfb,0x9, 0xf, 0x2, +0xfd,0xbe,0x1, 0x28,0x40,0x19,0xbe,0x1, 0x27,0x50,0x14,0xe5,0x24,0xa, 0x2b,0x9, +0x62,0x2, 0xfd,0xbe,0x61,0x27,0x40,0x7, 0xa, 0x26,0x12,0x56,0x3b,0x48,0x2a,0xe5, +0x24,0xa, 0x2b,0x9, 0x62,0x2, 0xfd,0xbe,0x61,0x28,0x50,0x3, 0x2, 0x32,0x39,0xbe, +0x61,0x27,0x40,0x3, 0x2, 0x32,0x39,0xbe,0x1, 0x27,0x50,0x3, 0x2, 0x32,0x39,0xa, +0x20,0x12,0x56,0x3b,0x48,0x3, 0x2, 0x32,0x39,0xa, 0x30,0xe5,0x28,0xa, 0x1b,0x12, +0x36,0xe8,0x7a,0xa3,0x3, 0x2, 0xe5,0x24,0xa, 0x3b,0x9, 0x73,0x2, 0xfd,0x7d,0x21, +0x12,0x0, 0x46,0x7c,0x65,0x7a,0x63,0x3, 0x3, 0xa, 0x26,0xa, 0x3a,0x12,0x36,0xf0, +0x8, 0x3, 0x2, 0x32,0x39,0x7e,0xa1,0x24,0x74,0x5, 0xa4,0x49,0x25,0x2, 0xeb,0x12, +0x56,0x20,0x49,0x35,0x2, 0xeb,0x9d,0x32,0x12,0x2, 0x9e,0xbe,0x37,0x2, 0x26,0x48, +0x3, 0x2, 0x32,0x39,0xe5,0x23,0xa, 0x3b,0x9, 0xb3,0x2, 0xfd,0x7e,0xa1,0x24,0xa, +0x3a,0x9, 0x73,0x2, 0xfd,0x12,0x4d,0x32,0x7a,0x37,0x2, 0xd3,0xe5,0x24,0xa, 0x3b, +0x9, 0x73,0x2, 0xfd,0xa, 0x27,0xe5,0x23,0xa, 0x3b,0x9, 0x73,0x2, 0xfd,0x12,0x51, +0xa5,0xe5,0x28,0xa, 0x9b,0xbd,0x92,0x78,0x13,0xe5,0x23,0xa, 0x3b,0x9, 0x73,0x2, +0xfd,0x7d,0x29,0x12,0x0, 0x46,0x7c,0xb5,0xf5,0x25,0x80,0x7f,0x7e,0x93,0x3, 0x3, +0xa, 0xe9,0x7d,0xde,0x2d,0xd9,0x7d,0x1d,0x3e,0x14,0x3e,0x14,0x49,0x31,0x0, 0xee, +0x49,0x21,0x0, 0xec,0x74,0x4, 0xac,0xb9,0x12,0x17,0x7c,0x2f,0x1, 0xe5,0x27,0xa, +0xcb,0x7d,0x5e,0x12,0x56,0x34,0x12,0x21,0xd1,0x2f,0x10,0x7d,0x5d,0x12,0x56,0x34, +0x12,0x17,0x7c,0x2f,0x1, 0x7e,0x83,0x3, 0x2, 0xa, 0xa8,0x7d,0x8a,0x2d,0x89,0x7d, +0x38,0x3e,0x34,0x3e,0x34,0x49,0xf3,0x0, 0xee,0x49,0xe3,0x0, 0xec,0x74,0x4, 0xac, +0xb8,0x12,0x21,0xd1,0x2f,0x17,0x7d,0x5a,0x12,0x56,0x34,0x49,0xf5,0x0, 0xee,0x49, +0xe5,0x0, 0xec,0x2f,0x71,0x7d,0x58,0x12,0x56,0x34,0x12,0x21,0xd1,0x2f,0x17,0xbf, +0x10,0x8, 0x5, 0x7a,0x81,0x25,0x80,0x3, 0x7a,0x91,0x25,0x9f,0x11,0x7a,0x1f,0x2, +0xdd,0x7e,0xa1,0x25,0x74,0x4, 0xa4,0x49,0x35,0x1, 0x7e,0x49,0x25,0x1, 0x7c,0x12, +0x22,0x71,0x7a,0x1f,0x2, 0xdd,0x12,0x33,0xf, 0x49,0x31,0x1, 0x7e,0x49,0x21,0x1, +0x7c,0x12,0x22,0x71,0x7f,0x1, 0x7e,0x1f,0x2, 0xdd,0x2f,0x10,0x7a,0x1f,0x2, 0xdd, +0x12,0x32,0xea,0xe5,0x25,0x60,0x1f,0x7e,0xa1,0x25,0x74,0x4, 0xa4,0x49,0x35,0x1, +0x7a,0x49,0x25,0x1, 0x78,0x12,0x33,0x2e,0x12,0x33,0xf, 0x49,0x31,0x1, 0x7a,0x49, +0x21,0x1, 0x78,0x12,0x33,0x2e,0x12,0x32,0xf1,0x12,0x32,0xe3,0x68,0x1f,0x7e,0xa1, +0x25,0x74,0x4, 0xa4,0x49,0x35,0x1, 0x82,0x49,0x25,0x1, 0x80,0x12,0x33,0x1e,0x12, +0x33,0xf, 0x49,0x31,0x1, 0x82,0x49,0x21,0x1, 0x80,0x12,0x33,0x1e,0x7e,0xb3,0x2, +0x5f,0x30,0xe6,0x4b,0x12,0xc, 0x28,0xb4,0x2, 0x3, 0x75,0x5a,0x1, 0xe5,0x25,0x12, +0x34,0x3f,0xe5,0x28,0x25,0x25,0x12,0x34,0x3f,0xbe,0x18,0x0, 0x0, 0x58,0x3, 0x12, +0x32,0xea,0xe5,0x25,0x12,0x33,0xb8,0xe5,0x28,0x25,0x25,0x12,0x33,0xb8,0xbe,0x18, +0x0, 0x0, 0x58,0x3, 0x12,0x32,0xf1,0xe5,0x25,0x12,0x33,0x3e,0xe5,0x28,0x25,0x25, +0x12,0x33,0x3e,0xbe,0x18,0x0, 0x0, 0x58,0x6, 0x9f,0x11,0x7a,0x1f,0x2, 0xdd,0x7e, +0x1f,0x2, 0xdd,0xb, 0x1c,0x7a,0x1f,0x2, 0xdd,0x7e,0xf4,0x0, 0x64,0x7e,0x1f,0x2, +0xd5,0x7d,0x1f,0x12,0x0, 0x89,0x7e,0x6f,0x2, 0xdd,0x7f,0x6, 0x12,0x0, 0xe5,0x7f, +0x51,0x7a,0x5f,0x2, 0xb9,0x7e,0x1f,0x2, 0xd9,0x7d,0x1f,0x12,0x0, 0x89,0x7f,0x6, +0x12,0x0, 0xe5,0x7a,0x1f,0x2, 0xbd,0x7e,0xb3,0x2, 0x5d,0xa, 0xfb,0x6d,0xee,0xbf, +0x57,0x28,0x12,0x7e,0x73,0x2, 0x5e,0xa, 0x17,0x6d,0x0, 0x12,0x19,0x3c,0x50,0x5, +0x12,0x32,0xf1,0x80,0x1b,0x7e,0x1f,0x2, 0xbd,0xbf,0x17,0x28,0x13,0x7e,0x73,0x2, +0x5e,0xa, 0x17,0x6d,0x0, 0x7e,0x1f,0x2, 0xb9,0xbf,0x10,0x50,0x3, 0x12,0x32,0xea, +0x7e,0xb3,0x2, 0x5f,0x20,0xe4,0x2, 0x21,0xa9,0x7e,0x27,0x2, 0x57,0x7d,0x32,0xb, +0x36,0x12,0x29,0x66,0xbe,0xb3,0x2, 0x62,0x50,0x4, 0xe5,0x25,0x60,0x14,0x7d,0x32, +0x2e,0x34,0x0, 0x5, 0x12,0x29,0x66,0xbe,0xb3,0x2, 0x62,0x50,0x6c,0x12,0x32,0xe3, +0x78,0x67,0xe5,0x25,0x70,0x5, 0x75,0x29,0x4, 0x80,0x3, 0x75,0x29,0x5, 0x12,0x29, +0x5c,0x12,0x37,0x29,0x58,0x53,0x12,0x36,0xe1,0x12,0x32,0xda,0x58,0x2, 0x7f,0x31, +0x7f,0x13,0x7d,0x1f,0x2e,0x17,0x2, 0x59,0x12,0x32,0xc8,0xca,0xb8,0x12,0x32,0xc2, +0x7c,0x3b,0xda,0xb8,0x12,0x32,0xd1,0x58,0x2, 0x7f,0x31,0xe5,0x25,0x70,0x16,0x7e, +0xf, 0x2, 0xd9,0xbf,0x3, 0x58,0x4, 0x9f,0x11,0x80,0x4, 0x7f,0x10,0x9f,0x13,0x7a, +0x1f,0x2, 0xd9,0x80,0x14,0x7e,0xf, 0x2, 0xd5,0xbf,0x3, 0x58,0x4, 0x9f,0x11,0x80, +0x4, 0x7f,0x10,0x9f,0x13,0x7a,0x1f,0x2, 0xd5,0xe5,0x25,0xa, 0xbb,0x6d,0xaa,0x12, +0x37,0x43,0xb, 0xc, 0x7e,0x5f,0x2, 0xd9,0x12,0x37,0x19,0x7f,0x10,0x2f,0x15,0x7f, +0x61,0xb, 0x6c,0x7a,0x6f,0x2, 0xbd,0x74,0x6, 0x7f,0x17,0x2f,0x11,0x14,0x78,0xfb, +0x12,0x37,0x4, 0x7a,0x1f,0x2, 0xc9,0x7e,0xa0,0xbb,0x7e,0x71,0x23,0x74,0x5, 0x7c, +0x17,0xac,0x1b,0x19,0xa0,0x2, 0xed,0x7e,0xa1,0x24,0x7c,0x9a,0xac,0x9b,0x49,0x14, +0x2, 0xeb,0x49,0xf0,0x2, 0xeb,0xbd,0xf1,0x50,0xa, 0xbe,0x17,0x2, 0xd3,0x50,0x14, +0x80,0xc, 0x80,0x10,0xbd,0xf1,0x28,0x1b,0xbe,0x17,0x2, 0xd3,0x40,0x6, 0x59,0x10, +0x2, 0xeb,0x80,0xf, 0x7e,0xa0,0xcc,0x19,0xa0,0x2, 0xed,0x7e,0x37,0x2, 0xd3,0x59, +0x30,0x2, 0xeb,0x7e,0x1f,0x2, 0xc9,0x59,0x30,0x2, 0xe9,0x7e,0xa0,0xaa,0x7e,0x71, +0x24,0x74,0x5, 0xac,0x7b,0x19,0xa3,0x2, 0xed,0x5, 0x24,0x7e,0x73,0x3, 0x1, 0xbe, +0x71,0x24,0x28,0x3, 0x2, 0x2e,0x57,0x5, 0x23,0x12,0x32,0xf8,0x28,0x3, 0x2, 0x2e, +0x3d,0x12,0x37,0xe, 0x75,0x23,0x0, 0x80,0x61,0x12,0x36,0xfa,0x9, 0x32,0x2, 0xed, +0xbe,0x30,0xaa,0x68,0x53,0x49,0x32,0x2, 0xe9,0x7e,0x13,0x0, 0x79,0x7c,0x1, 0x5e, +0x0, 0xf, 0x74,0x5, 0xac,0xb0,0x59,0x35,0x0, 0x63,0x49,0x32,0x2, 0xeb,0x59,0x35, +0x0, 0x65,0xe5,0x23,0xa, 0x3b,0x9, 0xa3,0x2, 0xfd,0xa, 0x40,0x19,0xa4,0x0, 0x5f, +0xa5,0xbb,0xbb,0x5, 0x7e,0xa0,0x2, 0x80,0x7, 0xa5,0xbb,0xcc,0x7, 0x7e,0xa0,0x1, +0x19,0xa4,0x0, 0x77,0x7c,0x61,0xb, 0x60,0x5e,0x60,0xf, 0x7c,0x71,0x12,0xf, 0x75, +0x12,0xc, 0x28,0xbe,0xb0,0x2, 0x50,0x7, 0x5, 0x23,0x12,0x32,0xf8,0x38,0x9a,0xda, +0x3b,0x22,0x7d,0x1f,0x2e,0x17,0x2, 0x5b,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93, +0x22,0x12,0x33,0x0, 0x7f,0x31,0x7e,0x17,0x2, 0x1a,0x7d,0x31,0x1a,0x26,0x1a,0x24, +0xbf,0x13,0x22,0xe5,0x28,0x14,0xbe,0xb1,0x25,0x22,0x9f,0x11,0x7a,0x1f,0x2, 0xd5, +0x22,0x9f,0x11,0x7a,0x1f,0x2, 0xd9,0x22,0x7e,0x73,0x3, 0x1, 0xbe,0x71,0x23,0x22, +0x12,0x1f,0xdf,0x4c,0x99,0x68,0x7, 0xa, 0x19,0x6d,0x0, 0x2, 0x0, 0xe5,0x22,0xe5, +0x28,0xa, 0xb, 0xe5,0x25,0xa, 0x1b,0x2d,0x10,0x3e,0x14,0x3e,0x14,0x22,0x12,0x22, +0x71,0x7f,0x1, 0x7e,0x1f,0x2, 0xd9,0x2f,0x10,0x7a,0x1f,0x2, 0xd9,0x22,0x12,0x22, +0x71,0x7f,0x1, 0x7e,0x1f,0x2, 0xd5,0x2f,0x10,0x7a,0x1f,0x2, 0xd5,0x22,0x7e,0x71, +0x28,0x12,0x33,0x51,0x7f,0x1, 0x7e,0x1f,0x2, 0xdd,0x9f,0x10,0x7a,0x1f,0x2, 0xdd, +0x22,0x7c,0x87,0x7c,0x9b,0xa, 0x18,0xa, 0x39,0x12,0x36,0xe8,0x4c,0xaa,0x68,0xe, +0x7c,0xb8,0x14,0xbc,0xba,0x68,0x7, 0xe5,0x5a,0xbe,0xb0,0x1, 0x28,0x4, 0x9f,0x77, +0x80,0x43,0xbe,0xa0,0x1, 0x38,0xe, 0x74,0x4, 0xac,0xb9,0x49,0xf5,0x1, 0x86,0x49, +0xe5,0x1, 0x84,0x80,0x30,0x7d,0x21,0x1b,0x25,0xa, 0x3a,0xbd,0x23,0x74,0x4, 0x18, +0xc, 0xac,0xb9,0x49,0xf5,0x1, 0x76,0x49,0xe5,0x1, 0x74,0x80,0x18,0xac,0xb9,0x12, +0x34,0x4, 0x49,0x35,0x1, 0x76,0x49,0x25,0x1, 0x74,0x2f,0x10,0x7e,0x8, 0x0, 0x2, +0x12,0x0, 0xe5,0x7f,0x71,0x7f,0x17,0x22,0x7e,0x71,0x28,0x12,0x33,0xcb,0x7f,0x1, +0x7e,0x1f,0x2, 0xd9,0x9f,0x10,0x7a,0x1f,0x2, 0xd9,0x22,0xca,0xf8,0x7c,0xf7,0x7c, +0xab,0xa, 0x4f,0x12,0x34,0x5c,0x68,0xe, 0x7c,0xbf,0x14,0xbc,0xb7,0x68,0x7, 0xe5, +0x5a,0xbe,0xb0,0x1, 0x28,0x4, 0x9f,0x0, 0x80,0x15,0x7d,0x24,0x1b,0x25,0xa, 0x37, +0xbd,0x32,0x74,0x4, 0x58,0x6, 0xa4,0x12,0x34,0x4, 0x80,0x3, 0x12,0x34,0x52,0x7f, +0x10,0xda,0xf8,0x22,0x49,0x15,0x1, 0x86,0x49,0x5, 0x1, 0x84,0x22,0x7c,0x97,0x7c, +0xab,0xa, 0x29,0xa, 0x3a,0x12,0x34,0x60,0x68,0xe, 0x7c,0xb9,0x14,0xbc,0xb7,0x68, +0x7, 0xe5,0x5a,0xbe,0xb0,0x1, 0x28,0x4, 0x9f,0x0, 0x80,0x10,0xbe,0x70,0x1, 0x74, +0x4, 0x28,0x5, 0x12,0x34,0x52,0x80,0x4, 0xa4,0x12,0x34,0x4, 0x7f,0x10,0x22,0x7e, +0x71,0x28,0x12,0x34,0xd, 0x7f,0x1, 0x7e,0x1f,0x2, 0xd5,0x9f,0x10,0x7a,0x1f,0x2, +0xd5,0x22,0xa4,0x49,0x15,0x1, 0x76,0x49,0x5, 0x1, 0x74,0x22,0xa, 0x3a,0x7d,0x24, +0x12,0x0, 0x46,0x7c,0x75,0x4c,0x77,0x22,0xca,0x3b,0x7d,0x73,0x6c,0xdd,0x9f,0x11, +0x7a,0x1f,0x2, 0xea,0x6c,0xcc,0x80,0x3a,0x30,0xb, 0x1c,0x7e,0x73,0x4, 0x3, 0xa, +0x7, 0xa, 0x1c,0x12,0x33,0x17,0x2e,0x15,0x51,0x49,0x31,0x0, 0x92,0x49,0x21,0x0, +0x90,0x74,0x4, 0xac,0xbc,0x80,0x11,0x74,0x4, 0xac,0xbc,0x7d,0x45,0x2e,0x45,0x51, +0x49,0x34,0x0, 0x92,0x49,0x24,0x0, 0x90,0x59,0x35,0x2, 0xbc,0x59,0x25,0x2, 0xba, +0xb, 0xc0,0x7e,0x73,0x4, 0x3, 0xbc,0x7c,0x38,0xbe,0x7e,0x34,0x2, 0xba,0x7e,0x24, +0x2, 0xda,0x12,0x35,0xfb,0x7a,0xb3,0x2, 0xb9,0xbe,0xb0,0x2, 0x28,0x6, 0x74,0x2, +0x7a,0xb3,0x2, 0xb9,0x7e,0x63,0x2, 0xb9,0x5e,0x60,0x3, 0x3e,0x60,0x7d,0x27,0x2e, +0x24,0x0, 0x5, 0x7e,0x29,0x70,0x5e,0x70,0xf9,0x4c,0x76,0x7a,0x29,0x70,0x7e,0x34, +0x2, 0xe2,0x7e,0x53,0x4, 0x3, 0xa, 0x25,0xe4,0x12,0x2, 0xae,0x7e,0x34,0x2, 0xe2, +0x7e,0x24,0x2, 0xda,0x7e,0xb3,0x2, 0xb9,0x12,0x36,0x87,0x7e,0xb3,0x2, 0xb9,0x70, +0x6, 0x7e,0x18,0x0, 0x1, 0x80,0x11,0x7e,0xa3,0x2, 0xda,0x74,0x4, 0xa4,0x49,0x35, +0x2, 0xbc,0x49,0x25,0x2, 0xba,0x2f,0x11,0x7a,0x1f,0x2, 0xea,0x9f,0x11,0x7a,0x1f, +0x2, 0xee,0x6c,0xcc,0x80,0x28,0xa, 0x3c,0x9, 0xb3,0x2, 0xe2,0x70,0x1e,0x74,0x4, +0xac,0xbc,0x49,0x15,0x2, 0xbc,0x49,0x5, 0x2, 0xba,0xbe,0x8, 0x0, 0x64,0x8, 0xc, +0x7e,0x1f,0x2, 0xee,0x2f,0x10,0x7a,0x1f,0x2, 0xee,0xb, 0xd0,0xb, 0xc0,0x7e,0x73, +0x4, 0x3, 0xbc,0x7c,0x38,0xd0,0xbe,0xd0,0x0, 0x28,0x1d,0xa, 0x1d,0x6d,0x0, 0x7e, +0x1f,0x2, 0xee,0x12,0x0, 0xe5,0x7a,0x1f,0x2, 0xee,0xbe,0x18,0x0, 0x1, 0x58,0x8, +0x7e,0x18,0x0, 0x1, 0x7a,0x1f,0x2, 0xee,0x7e,0x1f,0x2, 0xea,0xbe,0x18,0x0, 0x1, +0x18,0x8, 0x7e,0x18,0x0, 0x1, 0x7a,0x1f,0x2, 0xea,0x7e,0x1f,0x2, 0xee,0xbe,0x18, +0x0, 0x1, 0x18,0x8, 0x7e,0x18,0x0, 0x1, 0x7a,0x1f,0x2, 0xee,0x7e,0x6f,0x2, 0xee, +0x7e,0x7f,0x2, 0xea,0x7f,0x17,0x7f,0x6, 0x12,0x0, 0xe5,0xbe,0x34,0x0, 0x64,0x28, +0x4, 0x7e,0x34,0x0, 0x64,0xbe,0x68,0xfd,0xe8,0x48,0x8, 0x7e,0x8, 0xfd,0xe8,0x7a, +0xf, 0x2, 0xee,0xbe,0x78,0xfd,0xe8,0x48,0x8, 0x7e,0x8, 0xfd,0xe8,0x7a,0xf, 0x2, +0xea,0x7e,0xf, 0x2, 0xee,0x7d,0x21,0x59,0x27,0x0, 0x2, 0x7e,0xf, 0x2, 0xea,0x7d, +0x21,0x1b,0x78,0x20,0x19,0x77,0x0, 0x4, 0xda,0x3b,0x22,0xca,0xf8,0x6c,0xff,0x6c, +0xaa,0x80,0x64,0x4c,0xaa,0x78,0x4, 0x9f,0x0, 0x80,0x8, 0x12,0x36,0x77,0x1b,0x46, +0x12,0x36,0x7f,0x7a,0xf, 0x2, 0xf2,0x7e,0xb3,0x4, 0x3, 0x14,0xbc,0xba,0x78,0x4, +0x9f,0x0, 0x80,0xb, 0x12,0x36,0x77,0x49,0x14,0x0, 0x6, 0x49,0x4, 0x0, 0x4, 0x7a, +0xf, 0x2, 0xf6,0x12,0x36,0x77,0x12,0x36,0x7f,0x7e,0x7f,0x2, 0xf2,0xbf,0x7, 0x48, +0x24,0x7e,0x7f,0x2, 0xf6,0xbf,0x7, 0x48,0x1c,0x7e,0xf7,0x4, 0x58,0x6d,0xee,0xbf, +0x7, 0x48,0x12,0xb, 0xc, 0x59,0x14,0x0, 0x2, 0x1b,0x48,0x0, 0xa, 0x1f,0x2d,0x12, +0x7a,0x19,0xa0,0xb, 0xf0,0xb, 0xa0,0x7e,0xb3,0x4, 0x3, 0xbc,0xba,0x38,0x94,0x12, +0x4a,0x8d,0x7c,0xbf,0xda,0xf8,0x22,0x7e,0x90,0x4, 0xac,0x9a,0x2d,0x43,0x22,0x49, +0x14,0x0, 0x2, 0xb, 0x48,0x0, 0x22,0xca,0x3b,0xf5,0x23,0x7d,0x72,0x7d,0x63,0x75, +0x24,0x0, 0x80,0x43,0xe5,0x24,0xa, 0x3b,0x2d,0x37,0x7e,0x39,0x70,0xa, 0x37,0x7e, +0x53,0x4, 0x3, 0xa, 0x25,0x12,0x0, 0x46,0x7c,0xb5,0xf5,0x26,0x75,0x25,0x0, 0x80, +0x1b,0xe5,0x26,0xa, 0x2b,0xe5,0x25,0xa, 0x3b,0x12,0x36,0xf0,0x18,0xc, 0x7e,0xa0, +0x1, 0xe5,0x25,0xa, 0x3b,0x2d,0x36,0x7a,0x39,0xa0,0x5, 0x25,0x7e,0x73,0x4, 0x3, +0xbe,0x71,0x25,0x38,0xdc,0x5, 0x24,0xe5,0x23,0xbe,0xb1,0x24,0x38,0xb6,0xda,0x3b, +0x22,0x9f,0x32,0x7e,0x17,0x2, 0x18,0x22,0x7d,0x21,0x12,0x0, 0x46,0x7c,0xa5,0x22, +0x9d,0x32,0x12,0x2, 0x9e,0xbe,0x34,0x0, 0x1, 0x22,0x7e,0xa1,0x23,0x74,0x5, 0x7c, +0x5a,0xac,0x5b,0x22,0x7f,0x6, 0x12,0x0, 0x94,0x2e,0x18,0x0, 0x20,0x22,0x7e,0xb3, +0x0, 0x79,0x54,0xf0,0x7a,0xb3,0x0, 0x79,0x22,0x7f,0x15,0x12,0x0, 0x78,0x2f,0x71, +0x7a,0x7f,0x2, 0xb9,0x7f,0x6, 0x2f,0x4, 0x22,0x7c,0xab,0x74,0x4, 0xa4,0x49,0x75, +0x0, 0xee,0x49,0x65,0x0, 0xec,0x7e,0x17,0x2, 0x16,0x7d,0x51,0x1a,0x4a,0x1a,0x48, +0xbf,0x23,0x22,0x7f,0x5, 0x1b,0xc, 0x7e,0x4f,0x2, 0xd5,0x7f,0x14,0x12,0x0, 0x78, +0x7f,0x71,0x7e,0x6f,0x2, 0xdd,0x7f,0x16,0x7f,0x5, 0x12,0x0, 0x78,0x2f,0x71,0x7f, +0x5, 0x22,0x7e,0xf, 0x1, 0x70,0x7e,0x1f,0x1, 0x6c,0x2f,0x10,0x7e,0xf, 0x1, 0x74, +0x2f,0x1, 0x7e,0x1f,0x1, 0xc4,0xbf,0x10,0x58,0x8, 0x20,0x11,0x5, 0x12,0x37,0xe, +0xc3,0x22,0x12,0xc, 0x28,0x68,0x2, 0xd2,0x11,0xd3,0x22,0xca,0x79,0x7e,0xb3,0x2, +0x5f,0x20,0xe1,0x2d,0x7e,0x73,0x4, 0x86,0x4c,0x77,0x68,0x12,0xbe,0x70,0xff,0x68, +0xd, 0x7e,0xf0,0x28,0xac,0xf7,0xbe,0x74,0xb, 0xb8,0x58,0x6, 0x80,0x0, 0x7e,0x74, +0xb, 0xb8,0x7d,0x37,0x12,0x4a,0x3d,0x12,0x37,0x62,0x40,0x5, 0x7d,0x37,0x12,0x54, +0x72,0xda,0x79,0x22,0xbe,0xb0,0xa, 0x50,0xa, 0x7c,0x1b,0x2e,0x10,0x16,0x7c,0xb7, +0xa5,0xf7,0x22,0x2, 0x37,0xd6,0xca,0x79,0xb4,0xc, 0x7, 0x7e,0x74,0x0, 0xd9,0x2, +0x38,0xa4,0xb4,0xd, 0x1e,0x7e,0xb3,0x0, 0xd8,0xb4,0x1, 0x7, 0x7e,0x74,0x0, 0xcc, +0x2, 0x38,0xa4,0xb4,0x2, 0x7, 0x7e,0x74,0x0, 0xd2,0x2, 0x38,0xa4,0x7e,0x74,0x0, +0xca,0x1, 0xa4,0xb4,0xe, 0x1c,0x7e,0xb3,0x0, 0xd8,0xb4,0x1, 0x6, 0x7e,0x74,0x0, +0xcd,0x1, 0xa4,0xb4,0x2, 0x6, 0x7e,0x74,0x0, 0xd3,0x1, 0xa4,0x7e,0x74,0x0, 0xcb, +0x1, 0xa4,0xb4,0xf, 0x6, 0x7e,0x74,0x0, 0xda,0x80,0x79,0xb4,0x10,0x6, 0x7e,0x74, +0x0, 0xdb,0x80,0x70,0xb4,0x59,0x9, 0x7e,0x74,0x0, 0xdc,0x43,0x4d,0x4, 0x80,0x71, +0xb4,0xac,0x13,0x7e,0xb3,0x0, 0xd8,0xb4,0x2, 0x6, 0x7e,0x74,0x0, 0xd4,0x80,0x54, +0x7e,0x74,0x0, 0xce,0x80,0x4e,0xb4,0xa1,0x13,0x7e,0xb3,0x0, 0xd8,0xb4,0x2, 0x6, +0x7e,0x74,0x0, 0xd5,0x80,0x3e,0x7e,0x74,0x0, 0xcf,0x80,0x38,0xb4,0xa2,0x13,0x7e, +0xb3,0x0, 0xd8,0xb4,0x2, 0x6, 0x7e,0x74,0x0, 0xd6,0x80,0x28,0x7e,0x74,0x0, 0xd0, +0x80,0x22,0xb4,0xa3,0x13,0x7e,0xb3,0x0, 0xd8,0xb4,0x2, 0x6, 0x7e,0x74,0x0, 0xd7, +0x80,0x12,0x7e,0x74,0x0, 0xd1,0x80,0xc, 0xb4,0xae,0xe, 0x7e,0x74,0x0, 0xd8,0xe4, +0x7a,0xb3,0x0, 0xdd,0x43,0x4d,0x1, 0x80,0x8, 0xb4,0xaf,0x8, 0x12,0x38,0xb7,0x80, +0x3, 0x7a,0x79,0x70,0xda,0x79,0x22,0x30,0x8, 0x8, 0x74,0x1, 0x12,0x38,0xc9,0xc2, +0x8, 0x22,0xe4,0x12,0x38,0xc9,0xd2,0x8, 0x22,0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86, +0x22,0xca,0x3b,0x7c,0xcb,0x6c,0xaa,0x20,0x0, 0x8, 0x20,0x5, 0x5, 0x20,0x2, 0x2, +0x41,0x9, 0x20,0x6, 0x6, 0x7e,0x74,0x4, 0x9d,0x80,0x4, 0x7e,0x74,0x4, 0xaf,0x6c, +0xdd,0x74,0xff,0xa, 0x3d,0x2d,0x37,0x7a,0x39,0xb0,0xb, 0xd0,0xbe,0xd0,0x12,0x78, +0xf2,0x74,0xaa,0x7a,0x79,0xb0,0x74,0xaa,0x19,0xb7,0x0, 0x1, 0x74,0x12,0x19,0xb7, +0x0, 0x2, 0x7e,0xb3,0x0, 0x9d,0x19,0xb7,0x0, 0x4, 0x6c,0x77,0x6c,0xdd,0x7e,0x30, +0x5, 0xac,0x3d,0x9, 0x11,0x0, 0x8d,0xbe,0x10,0xff,0x78,0x2, 0x21,0xb1,0xa, 0xe1, +0x9, 0x6e,0x0, 0xe0,0xbe,0x60,0x3, 0x68,0x78,0x49,0x41,0x0, 0x89,0x12,0x3a,0x10, +0x19,0x2, 0x0, 0x5, 0x7c,0x9, 0xa, 0x27,0x2d,0x27,0x19,0x2, 0x0, 0x6, 0x49,0x41, +0x0, 0x8b,0x12,0x3a,0x10,0x19,0x2, 0x0, 0x7, 0x7c,0x9, 0xa, 0x27,0x2d,0x27,0x19, +0x2, 0x0, 0x8, 0xe4,0xa, 0x27,0x2d,0x27,0x19,0xb2,0x0, 0x9, 0xa, 0x27,0x2d,0x27, +0x19,0xb2,0x0, 0xa, 0x7c,0xb1,0xc4,0x54,0xf0,0xa, 0x27,0x2d,0x27,0x2e,0x24,0x0, +0x7, 0x7e,0x29,0x0, 0x2c,0xb, 0x7a,0x29,0x0, 0xbe,0x10,0xff,0x68,0x20,0xbe,0x60, +0x1, 0x68,0x2, 0xb, 0xa0,0x9, 0xbe,0x0, 0xe0,0xc4,0x33,0x33,0x54,0xc0,0xa, 0x27, +0x2d,0x27,0x2e,0x24,0x0, 0x5, 0x7e,0x29,0x60,0x2c,0x6b,0x7a,0x29,0x60,0x2e,0x70, +0x6, 0xb, 0xd0,0xbe,0xd0,0x2, 0x68,0x2, 0x21,0x1e,0x19,0xa7,0x0, 0x3, 0xe4,0x19, +0xb7,0x0, 0x11,0x6c,0xdd,0xa, 0x3d,0x2d,0x37,0x7e,0x39,0x60,0x7d,0x27,0x2e,0x24, +0x0, 0x11,0x7e,0x29,0x70,0x6c,0x76,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x11,0x78, +0xe4,0x30,0x6, 0x4, 0xc2,0x6, 0x80,0x2, 0xd2,0x6, 0x30,0x5, 0x3, 0x12,0x3a,0x1d, +0xc2,0x0, 0xc2,0x5, 0xc2,0x2, 0x74,0x1, 0x12,0x38,0xc9,0x7e,0x34,0x0, 0x3, 0x12, +0x3a,0x4a,0xbe,0xc0,0x1, 0x78,0x6, 0x80,0x0, 0xe4,0x12,0x38,0xc9,0xda,0x3b,0x22, +0xa, 0x28,0x5e,0x24,0x0, 0xf, 0x7c,0x5, 0xa, 0x27,0x2d,0x27,0x22,0x6c,0xaa,0x74, +0x3, 0xa, 0x4a,0x19,0xb4,0x0, 0xe2,0x74,0x3, 0x19,0xb4,0x0, 0xe0,0x12,0x3a,0x42, +0xac,0x7a,0x59,0x43,0x0, 0xe4,0x59,0x43,0x0, 0xe8,0xb, 0xa0,0xbe,0xa0,0x2, 0x40, +0xde,0x22,0x7e,0x44,0x7f,0xff,0x7e,0x70,0x2, 0x22,0x7e,0x24,0x0, 0x14,0xad,0x32, +0x80,0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7d,0x23,0x1b,0x34,0x4d,0x22, +0x78,0xf0,0x22,0x7c,0xab,0x80,0x7, 0x7e,0x34,0x0, 0x42,0x12,0x3a,0x4a,0x7c,0x7a, +0x1b,0xa0,0xa5,0xbf,0x0, 0xf1,0x22,0xca,0x79,0x7d,0x73,0xe5,0x15,0x70,0x27,0x74, +0x7, 0x7e,0x70,0x4, 0x12,0x3a,0xd2,0x7e,0x70,0x2, 0x12,0x0, 0x25,0x74,0x56,0x7e, +0x79,0x70,0x12,0x0, 0x25,0x74,0x57,0x9, 0x77,0x0, 0x1, 0x12,0x0, 0x25,0x74,0x58, +0x9, 0x77,0x0, 0x2, 0x80,0x26,0x74,0x7, 0x7e,0x70,0x2, 0x12,0x3a,0xd2,0x7e,0x70, +0x4, 0x12,0x0, 0x25,0x74,0x56,0x9, 0x77,0x0, 0x3, 0x12,0x0, 0x25,0x74,0x57,0x9, +0x77,0x0, 0x4, 0x12,0x0, 0x25,0x74,0x58,0x9, 0x77,0x0, 0x5, 0x12,0x0, 0x25,0xda, +0x79,0x22,0x12,0x0, 0x25,0x74,0x8, 0x7e,0x70,0xc, 0x12,0x0, 0x25,0x74,0x9, 0x22, +0x70,0x18,0x7e,0x1f,0x1, 0x70,0x7e,0xf, 0x1, 0x6c,0x2f,0x1, 0x7e,0x1f,0x1, 0x74, +0x2f,0x10,0xbe,0x18,0x7, 0xd0,0x58,0x2, 0xc2,0x11,0x22,0x7e,0x37,0x0, 0x7b,0x4d, +0x33,0x78,0x31,0x7e,0x53,0x0, 0x9f,0xbe,0x50,0x0, 0x28,0x5, 0x75,0x4e,0x0, 0x61, +0xd7,0x7e,0xb3,0x0, 0x7d,0x20,0xe0,0x2, 0x61,0xd7,0x7e,0x53,0x0, 0x82,0xbe,0x51, +0x4e,0x28,0x2, 0x61,0xd7,0x75,0x4e,0x0, 0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x0, 0x7b, +0x74,0x1, 0x80,0x74,0xbe,0x34,0x0, 0x1, 0x78,0x1a,0x7e,0xb3,0x0, 0x9f,0x70,0x2, +0x61,0xd7,0x6d,0x22,0x7a,0x27,0x0, 0x7b,0xe4,0x7a,0xb3,0x4, 0x82,0x75,0x4f,0x26, +0xd2,0x1, 0x61,0xd7,0xbe,0x34,0x0, 0x3, 0x78,0x7d,0xa9,0xd6,0xeb,0xa9,0xc6,0xac, +0xa9,0xc6,0xec,0xc2,0x96,0xc2,0x95,0xd2,0xb8,0xa9,0xd0,0xb7,0xd2,0xa8,0x80,0x4, +0xe4,0x12,0x17,0x5b,0x12,0x17,0x47,0x50,0xf7,0x20,0x93,0xfd,0xa9,0xc0,0xca,0x75, +0xe7,0x0, 0x53,0xe1,0xf7,0x74,0x2, 0x12,0x17,0x5b,0x12,0x21,0xc2,0x7a,0x37,0x0, +0x5d,0x12,0x0, 0x8, 0xc2,0xa8,0xc2,0x95,0xa9,0xd0,0xca,0x12,0x3b,0xf0,0x12,0x25, +0xf9,0x6d,0x33,0x7a,0x37,0x0, 0x7b,0xe4,0x7a,0xb3,0x4, 0x82,0x80,0x29,0xe4,0x12, +0x17,0x5b,0x20,0x93,0x22,0x7e,0x37,0x0, 0x7b,0x4d,0x33,0x78,0xe, 0xe5,0xcc,0x54, +0x7, 0xbe,0xb0,0x2, 0x68,0x11,0x75,0xcc,0x2, 0x80,0xc, 0xe5,0xcc,0x54,0x7, 0xbe, +0xb0,0x7, 0x68,0x3, 0x75,0xcc,0x7, 0x30,0x1, 0xd4,0x75,0x4f,0x0, 0xc2,0x1, 0x20, +0x93,0x3, 0x75,0xcc,0x50,0x22,0xe5,0x9a,0x60,0x5, 0xd2,0x9c,0xa9,0xd6,0xdf,0x22, +0x75,0xeb,0x3, 0xa9,0xd6,0xac,0xa9,0xd6,0xec,0xd2,0x86,0x22,0xe4,0x12,0x48,0x7c, +0x12,0x3b,0xf0,0x12,0x48,0xb1,0x74,0x1, 0x2, 0x3c,0xb, 0x70,0x3, 0xc2,0xaf,0x22, +0xd2,0xaf,0x22,0x12,0x3b,0xfc,0x2, 0x0, 0x17,0xc2,0x8e,0xe5,0x89,0x54,0xf, 0x44, +0x20,0xf5,0x89,0x75,0x8d,0x1, 0x75,0x8b,0x0, 0xd2,0x8e,0xd2,0xab,0xa9,0xc3,0xb7, +0xd2,0xbb,0x22,0x12,0x21,0xc2,0x7a,0x37,0x0, 0x5d,0x12,0x3c,0x13,0x12,0x3d,0x2a, +0x12,0x43,0xb, 0x12,0x44,0xe1,0x7e,0xb3,0x4, 0x99,0x24,0xfd,0x68,0x11,0x24,0xae, +0x68,0x32,0x24,0xab,0x68,0xe, 0x24,0xa9,0x78,0xec,0x12,0xc, 0x2f,0x80,0xe7,0x12, +0x20,0x89,0x80,0xe2,0x12,0x3c,0xad,0x7e,0x24,0x1, 0xf4,0x7a,0x27,0x0, 0x5d,0x7e, +0xb3,0x0, 0xa4,0xbe,0xb0,0xaa,0x68,0xce,0x7a,0x37,0x0, 0x84,0x74,0xaa,0x7a,0xb3, +0x0, 0xa4,0x80,0xc2,0x12,0x3c,0xad,0x7e,0x34,0x1, 0xf4,0x7a,0x37,0x0, 0x5d,0x7e, +0xb3,0x0, 0xa4,0xb4,0xaa,0xb0,0x74,0x55,0x7a,0xb3,0x0, 0xa4,0x7e,0x74,0x3, 0xe8, +0x7d,0x37,0x1b,0x74,0x4d,0x33,0x78,0xf8,0x75,0xe9,0xff,0x80,0x99,0x6d,0x33,0x7a, +0x37,0x0, 0xa2,0x22,0x7e,0x34,0x0, 0x5f,0x7e,0x24,0x0, 0x1c,0xe4,0x12,0x2, 0xae, +0x7e,0x34,0x0, 0x89,0x7e,0x24,0x0, 0x19,0xe4,0x12,0x2, 0xae,0x6d,0x11,0x12,0x3d, +0x11,0x2e,0x34,0x0, 0x63,0x12,0x3d,0xe, 0x2e,0x34,0x0, 0x89,0x12,0x3d,0xe, 0x2e, +0x34,0x0, 0x93,0x12,0x3d,0x18,0xb, 0x14,0xbe,0x14,0x0, 0x2, 0x40,0xe0,0x75,0x4f, +0x0, 0x75,0x50,0x0, 0xc2,0x1, 0x75,0x4e,0x0, 0x12,0x3c,0xad,0x7e,0x24,0x7, 0xd0, +0x7a,0x27,0x0, 0x5d,0x7a,0x37,0x0, 0x84,0xe4,0x7a,0xb3,0x0, 0xa4,0x22,0x12,0x3d, +0x18,0x7e,0x34,0x0, 0x5, 0xad,0x31,0x22,0x7e,0x24,0x7f,0xff,0x1b,0x38,0x20,0x59, +0x23,0x0, 0x2, 0x74,0xff,0x19,0xb3,0x0, 0x4, 0x22,0xe4,0x7a,0xb3,0x4, 0xc5,0x12, +0x44,0xa8,0x2, 0x3d,0x35,0xca,0xf8,0xe4,0x12,0x3d,0x80,0x7c,0xfb,0x5e,0xf0,0x7, +0x78,0x5, 0x12,0x3f,0x57,0x80,0x12,0xbe,0xf0,0x4, 0x78,0x5, 0x12,0x3f,0x4d,0x80, +0x8, 0xbe,0xf0,0x1, 0x78,0x3, 0x12,0x3f,0x61,0x75,0x91,0x0, 0xe4,0x7a,0xb3,0x4, +0xc3,0x7a,0xb3,0x4, 0xc2,0x74,0xaa,0x7a,0xb3,0x4, 0x9d,0x74,0xaa,0x7a,0xb3,0x4, +0x9e,0x74,0xaa,0x7a,0xb3,0x4, 0xaf,0x74,0xaa,0x7a,0xb3,0x4, 0xb0,0xda,0xf8,0x22, +0x7a,0xb3,0x4, 0xc1,0x7e,0xb3,0x4, 0xc5,0xc4,0x54,0xf, 0x22,0xca,0x79,0x30,0x90, +0x79,0xd2,0x7, 0x7e,0xb3,0x4, 0xc3,0x4, 0x7a,0xb3,0x4, 0xc3,0x7e,0xf3,0x4, 0xc3, +0xbe,0xf0,0x1, 0x78,0x8, 0xe5,0x91,0x7a,0xb3,0x4, 0xc6,0x80,0x31,0x12,0x3d,0x84, +0x7c,0xeb,0x5e,0xe0,0x7, 0x78,0x8, 0x12,0x3f,0x3, 0x12,0x46,0x76,0x80,0x1f,0xbe, +0xe0,0x4, 0x78,0x8, 0x12,0x3f,0x3, 0x12,0x47,0x1a,0x80,0x12,0x12,0x3d,0x84,0x54, +0x7, 0xb4,0x1, 0xa, 0x7e,0xb3,0x4, 0xc3,0x12,0x3f,0x5, 0x12,0x48,0xf, 0x12,0x3d, +0x84,0x7c,0xfb,0x5e,0xf0,0x7, 0x78,0xe, 0xe4,0x12,0x3e,0x67,0xb4,0x10,0x2, 0x80, +0x14,0x12,0x3f,0x57,0x80,0x12,0xbe,0xf0,0x4, 0x78,0x5, 0x12,0x3f,0x4d,0x80,0x8, +0xbe,0xf0,0x1, 0x78,0x3, 0x12,0x3f,0x61,0xc2,0x90,0x30,0x91,0x57,0xc2,0x7, 0x7e, +0xb3,0x4, 0xc1,0x4, 0x12,0x3d,0x80,0x7c,0xfb,0x5e,0xf0,0x7, 0x78,0x13,0xe4,0x12, +0x3e,0x67,0xb4,0x10,0x6, 0x7e,0xb3,0x4, 0xc1,0x80,0x23,0x7e,0xb3,0x4, 0xc1,0x80, +0x28,0xbe,0xf0,0x4, 0x78,0xf, 0x7e,0xb3,0x4, 0xc1,0x2e,0xb3,0x4, 0xc6,0x12,0x3f, +0xf, 0xf5,0x91,0x80,0x1d,0xbe,0xf0,0x1, 0x7e,0xb3,0x4, 0xc1,0x78,0xb, 0x2e,0xb3, +0x4, 0xc6,0x12,0x0, 0x1a,0xf5,0x91,0x80,0x9, 0x2e,0xb3,0x4, 0xc6,0x12,0x3e,0x67, +0xf5,0x91,0xc2,0x91,0xda,0x79,0x22,0x7c,0x7b,0xbe,0x70,0x80,0x40,0xc, 0xbe,0x70, +0xde,0x38,0x7, 0xa, 0x37,0x9, 0xb3,0x3, 0xdd,0x22,0xa5,0xbf,0x0, 0x5, 0x7e,0xb3, +0x4, 0xc5,0x22,0x30,0x6, 0x6, 0x7e,0x24,0x4, 0x9d,0x80,0x4, 0x7e,0x24,0x4, 0xaf, +0x7a,0x25,0x4b,0x7c,0xb7,0x14,0xbe,0xb0,0xe, 0x50,0x4c,0x7e,0xa0,0x3, 0xa4,0x90, +0x3e,0xa3,0x73,0x2, 0x3e,0xcd,0x2, 0x3e,0xd5,0x2, 0x3e,0xdd,0x2, 0x3e,0xdd,0x2, +0x3e,0xdd,0x2, 0x3e,0xdd,0x2, 0x3e,0xdd,0x2, 0x3e,0xdd,0x2, 0x3e,0xdd,0x2, 0x3e, +0xdd,0x2, 0x3e,0xdd,0x2, 0x3e,0xdd,0x2, 0x3e,0xdd,0x2, 0x3e,0xdd,0x7e,0x35,0x4b, +0x9, 0xb3,0x0, 0x4, 0x22,0x7e,0x35,0x4b,0x9, 0xb3,0x0, 0x3, 0x22,0xa, 0x37,0x2e, +0x35,0x4b,0x9, 0xb3,0x0, 0x2, 0x22,0x74,0xff,0x22,0x75,0x4f,0x0, 0xc2,0x1, 0x7e, +0xb3,0x4, 0x82,0x70,0x7, 0x7e,0xb3,0x0, 0x7e,0xf5,0x50,0x22,0x7e,0xb3,0x0, 0x80, +0xf5,0x50,0x22,0x7c,0xbf,0x2e,0xb3,0x4, 0xc6,0x24,0xfe,0x7e,0x71,0x91,0x22,0x7c, +0xab,0x24,0x0, 0x78,0x5, 0x7e,0xb3,0x4, 0xc5,0x22,0xbe,0xa0,0xae,0x38,0xc, 0x7e, +0xb3,0x4, 0x99,0xb4,0x3, 0x24,0x7c,0xba,0x2, 0x27,0xec,0xbe,0xa0,0xb0,0x40,0x1a, +0xbe,0xa0,0xf7,0x38,0x15,0x7e,0xb3,0x4, 0x99,0xb4,0x3, 0xe, 0xa, 0x3a,0x2e,0x34, +0x3, 0x93,0x9e,0x34,0x0, 0xb0,0x7e,0x39,0xb0,0x22,0x7c,0xba,0x22,0x7e,0xb3,0x4, +0xc6,0x12,0x3f,0xf, 0xf5,0x91,0x22,0x7e,0xb3,0x4, 0xc6,0x12,0x3e,0x67,0xf5,0x91, +0x22,0x7e,0xb3,0x4, 0xc6,0x12,0x0, 0x1a,0xf5,0x91,0x22,0x12,0x3c,0xad,0x7e,0x34, +0x0, 0x64,0x7a,0x37,0x0, 0x5d,0x2, 0x3f,0x79,0x7e,0x34,0x4, 0x5d,0x7e,0xb3,0x4, +0x9c,0x30,0xe0,0x77,0x54,0xfe,0x7a,0xb3,0x4, 0x9c,0x9, 0x53,0x0, 0x5, 0x7a,0x53, +0x0, 0x88,0xa, 0x25,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x7a,0x27,0x0, 0x86, +0x9, 0x53,0x0, 0x25,0xa, 0x25,0x7a,0x27,0x0, 0x7b,0x9, 0x53,0x0, 0x6, 0x7a,0x53, +0x0, 0x7d,0x9, 0x53,0x0, 0x8, 0x7a,0x53,0x0, 0x7f,0xbe,0x50,0xf, 0x40,0x6, 0x74, +0xe, 0x19,0xb3,0x0, 0x8, 0x9, 0x53,0x0, 0x8, 0xa, 0x25,0x2e,0x24,0x2, 0xbe,0x12, +0x56,0x8f,0x93,0x7a,0xb3,0x0, 0x7e,0x9, 0x53,0x0, 0x9, 0x7a,0x53,0x0, 0x81,0x7a, +0x53,0x0, 0x80,0x9, 0x53,0x0, 0x7, 0x7a,0x53,0x0, 0x82,0x9, 0x53,0x0, 0x24,0x7a, +0x53,0x0, 0x83,0x9, 0x73,0x0, 0x2e,0x7a,0x73,0x0, 0xd8,0x22,0xca,0x79,0x6d,0x77, +0x7a,0x77,0x0, 0xa2,0x7e,0x34,0x3, 0xe8,0x7a,0x37,0x0, 0x5d,0x12,0x27,0xd0,0x12, +0x22,0x82,0x12,0x26,0xf9,0x7a,0x77,0x0, 0xa2,0x7e,0x34,0x0, 0x64,0x7a,0x37,0x0, +0x5d,0xda,0x79,0x22,0x6c,0x77,0xa, 0x27,0x9, 0x62,0x0, 0xe0,0x19,0x62,0x0, 0xe2, +0xb, 0x70,0xbe,0x70,0x2, 0x40,0xef,0x7e,0x73,0x0, 0x9f,0x7a,0x73,0x0, 0xa0,0x7e, +0x73,0x0, 0x79,0x12,0x27,0xbc,0x4c,0x7b,0x7a,0x73,0x0, 0x79,0x7e,0x73,0x0, 0x7a, +0x12,0x27,0xbc,0x4c,0x7b,0x7a,0x73,0x0, 0x7a,0x22,0x74,0x5, 0x7a,0xb3,0x2, 0x40, +0x74,0x5, 0x7a,0xb3,0x2, 0x3f,0x74,0xf, 0x7a,0xb3,0x2, 0x41,0x74,0x5, 0x7a,0xb3, +0x2, 0x43,0x74,0x5, 0x7a,0xb3,0x2, 0x42,0x74,0xf, 0x7a,0xb3,0x2, 0x44,0x7e,0x34, +0x0, 0x32,0x7a,0x37,0x2, 0x10,0x7e,0xb3,0x2, 0x5f,0x44,0x1, 0x7a,0xb3,0x2, 0x5f, +0x74,0x2, 0x7a,0xb3,0x2, 0x36,0x7e,0xb3,0x2, 0x5f,0x30,0xe0,0x10,0x74,0x2, 0x7a, +0xb3,0x2, 0x37,0x74,0x4, 0x7a,0xb3,0x2, 0x38,0x74,0x2, 0x80,0xe, 0x74,0x1, 0x7a, +0xb3,0x2, 0x37,0x74,0x1, 0x7a,0xb3,0x2, 0x38,0x74,0x1, 0x7a,0xb3,0x2, 0x39,0x7e, +0x34,0x2a,0xf8,0x7a,0x37,0x2, 0x14,0x7e,0xb3,0x2, 0x5f,0x54,0xfd,0x7a,0xb3,0x2, +0x5f,0x7e,0x34,0xfc,0x18,0x7a,0x37,0x2, 0x12,0x12,0x43,0x0, 0x7e,0x34,0x0, 0x32, +0x7a,0x37,0x2, 0x16,0x7e,0x34,0x3, 0xe8,0x7a,0x37,0x2, 0x18,0x7e,0x34,0xf, 0xa0, +0x7a,0x37,0x2, 0x1a,0x7e,0xb3,0x2, 0x5f,0x44,0x8, 0x7a,0xb3,0x2, 0x5f,0x7e,0x34, +0x1, 0x90,0x7a,0x37,0x2, 0x4f,0x7e,0x34,0x1, 0xa0,0x7a,0x37,0x2, 0x51,0x7e,0x34, +0x1, 0x64,0x7a,0x37,0x2, 0x53,0x7e,0x34,0x1, 0x74,0x7a,0x37,0x2, 0x55,0x7e,0xb3, +0x2, 0x5f,0x44,0x10,0x7a,0xb3,0x2, 0x5f,0x7e,0x34,0x1, 0x3a,0x7a,0x37,0x2, 0x57, +0x7e,0x34,0x1, 0x84,0x7a,0x37,0x2, 0x59,0x7e,0x34,0x1, 0x8a,0x7a,0x37,0x2, 0x5b, +0x7e,0x34,0x1, 0x90,0x7a,0x37,0x2, 0x1c,0x7e,0x34,0x0, 0x82,0x7a,0x37,0x2, 0x1e, +0x7e,0x34,0x0, 0x80,0x7a,0x37,0x2, 0x20,0x7e,0x34,0x0, 0x85,0x7a,0x37,0x2, 0x22, +0x7e,0x34,0x0, 0x85,0x7a,0x37,0x2, 0x24,0x7e,0x34,0x0, 0xc8,0x7a,0x37,0x2, 0x26, +0x7e,0x34,0x0, 0x50,0x7a,0x37,0x2, 0x28,0x7e,0x34,0x0, 0x50,0x7a,0x37,0x2, 0x2a, +0x7e,0x34,0x0, 0x64,0x7a,0x37,0x2, 0x2c,0x7e,0x34,0x2, 0xbc,0x7a,0x37,0x2, 0x2e, +0xe4,0x7a,0xb3,0x2, 0x45,0x7a,0xb3,0x2, 0x46,0x74,0x5a,0x7a,0xb3,0x2, 0x5d,0x74, +0x32,0x7a,0xb3,0x2, 0x5e,0x7e,0xb3,0x2, 0x5f,0x44,0x20,0x7a,0xb3,0x2, 0x5f,0x44, +0x40,0x7a,0xb3,0x2, 0x5f,0x7e,0x34,0x0, 0x7, 0x7a,0x37,0x2, 0x32,0x7e,0x34,0x0, +0x6, 0x7a,0x37,0x2, 0x30,0x7e,0x34,0x16,0xc1,0x7a,0x37,0x2, 0x34,0x75,0x2f,0x20, +0x7e,0x34,0x1, 0xe0,0x7a,0x35,0x2b,0x7e,0x24,0x3, 0x20,0x7a,0x25,0x2d,0x75,0x23, +0x9, 0x75,0x24,0x4, 0x75,0x25,0x7, 0x75,0x26,0x4, 0x75,0x27,0x7, 0x75,0x28,0x4, +0x75,0x29,0x9, 0x75,0x2a,0x4, 0x75,0x30,0xa, 0x75,0x31,0xa, 0x75,0x32,0x14,0x75, +0x33,0x14,0x7e,0x34,0xb, 0xb8,0x7a,0x37,0x4, 0x27,0x7e,0x34,0x7, 0xd0,0x7a,0x37, +0x4, 0x1d,0x7a,0x27,0x4, 0x25,0x74,0x10,0x7a,0xb3,0x4, 0x1f,0x74,0x14,0x7a,0xb3, +0x4, 0x20,0x7e,0x24,0x6, 0x40,0x7a,0x27,0x4, 0x58,0x74,0xe, 0x7a,0xb3,0x4, 0x18, +0x74,0x3, 0x7a,0xb3,0x4, 0x21,0x74,0xa, 0x7a,0xb3,0x4, 0x19,0x74,0x19,0x7a,0xb3, +0x4, 0x24,0x74,0x28,0x7a,0xb3,0x4, 0x5a,0x74,0x1, 0x7a,0xb3,0x4, 0x57,0x74,0x6, +0x7a,0xb3,0x4, 0x16,0x7a,0x37,0x4, 0x29,0x7e,0x34,0x0, 0x23,0x7e,0x14,0x0, 0x34, +0x74,0x11,0x12,0x1, 0x19,0x7e,0x34,0x0, 0x5f,0x7e,0x24,0x0, 0xec,0x2, 0x42,0x70, +0x7e,0xa1,0x40,0x7a,0xa3,0x4, 0x1c,0x7e,0x15,0x3c,0x7a,0x17,0x4, 0x2f,0x7e,0x15, +0x3e,0x7a,0x17,0x4, 0x31,0xe5,0x34,0x7a,0xb3,0x4, 0x2b,0xe5,0x35,0x7a,0xb3,0x4, +0x2c,0xe5,0x36,0x7a,0xb3,0x4, 0x2d,0xe5,0x37,0x7a,0xb3,0x4, 0x2e,0xe5,0x38,0x7a, +0xb3,0x4, 0x4, 0xe5,0x39,0x7a,0xb3,0x4, 0x5, 0xe5,0x3a,0x7a,0xb3,0x4, 0x6, 0xe5, +0x3b,0x7a,0xb3,0x4, 0x7, 0xe5,0x41,0x7a,0xb3,0x4, 0x1a,0xe5,0x42,0x7a,0xb3,0x4, +0x1b,0xe5,0x43,0x7a,0xb3,0x4, 0x22,0xe5,0x44,0x7a,0xb3,0x4, 0x23,0xa, 0x1a,0x7d, +0x1, 0x1e,0x4, 0x7a,0x13,0x4, 0x2, 0x1e,0x14,0x1e,0x14,0x7a,0x33,0x4, 0x3, 0x7a, +0x35,0x53,0x7a,0x25,0x51,0xe4,0x7a,0xb3,0x4, 0x50,0x7a,0xb3,0x3, 0xff,0x7a,0xb3, +0x4, 0x4f,0x22,0x7e,0xb3,0x2, 0x5f,0x44,0x4, 0x7a,0xb3,0x2, 0x5f,0x12,0x10,0x5d, +0x7e,0xb3,0x2, 0x5f,0x54,0xfb,0x7a,0xb3,0x2, 0x5f,0x22,0xe4,0x7a,0xb3,0x0, 0xd8, +0x74,0x1, 0x7a,0xb3,0x0, 0xdd,0x74,0x1b,0x7a,0xb3,0x0, 0xca,0x74,0x1d,0x7a,0xb3, +0x0, 0xcb,0x74,0x30,0x7a,0xb3,0x0, 0xcc,0x74,0x30,0x7a,0xb3,0x0, 0xcd,0x74,0x30, +0x7a,0xb3,0x0, 0xce,0x74,0x30,0x7a,0xb3,0x0, 0xcf,0x74,0x30,0x7a,0xb3,0x0, 0xd0, +0x74,0x30,0x7a,0xb3,0x0, 0xd1,0x74,0x30,0x7a,0xb3,0x0, 0xd2,0x74,0x30,0x7a,0xb3, +0x0, 0xd3,0x74,0x30,0x7a,0xb3,0x0, 0xd4,0x74,0x30,0x7a,0xb3,0x0, 0xd5,0x74,0x30, +0x7a,0xb3,0x0, 0xd6,0x74,0x30,0x7a,0xb3,0x0, 0xd7,0x12,0x43,0x86,0x74,0xa, 0x7a, +0xb3,0x0, 0xdc,0x74,0x14,0x7a,0xb3,0x0, 0xda,0x74,0x1e,0x7a,0xb3,0x0, 0xdb,0x74, +0x3, 0x7a,0xb3,0x0, 0xd9,0x22,0x12,0x43,0xa4,0xb4,0x48,0x3, 0xd2,0xf, 0x22,0xb4, +0xff,0x11,0x7e,0x34,0x0, 0x20,0x74,0x48,0x12,0x44,0xe8,0x12,0x43,0xa4,0xb4,0x48, +0x2, 0xd2,0xf, 0x22,0x7e,0x34,0x0, 0x20,0x12,0x44,0x95,0x75,0xf5,0x3, 0xa9,0x37, +0xf5,0xfc,0xa9,0x36,0xf5,0xfc,0x2, 0x43,0xb9,0xe5,0xf6,0x43,0xfa,0x80,0xc2,0xc9, +0xd2,0xaf,0x22,0x12,0x44,0x95,0x75,0xf5,0x1, 0xa9,0x37,0xf5,0xfc,0xa9,0x36,0xf5, +0xfc,0x2, 0x43,0xb9,0xca,0x79,0x7e,0xf0,0xd8,0x74,0x2e,0x7a,0xb3,0x4, 0x5d,0x74, +0xa0,0x7a,0xb3,0x4, 0x62,0x74,0x1, 0x7a,0xb3,0x4, 0x63,0x74,0x1e,0x7a,0xb3,0x4, +0x64,0x74,0xc, 0x7a,0xb3,0x4, 0x65,0x74,0x14,0x7a,0xb3,0x4, 0x66,0x74,0x6, 0x7a, +0xb3,0x4, 0x80,0x74,0x1, 0x7a,0xb3,0x4, 0x81,0xe4,0x7a,0xb3,0x4, 0x82,0x74,0x2, +0x7a,0xb3,0x4, 0x83,0x12,0x44,0xe1,0x7e,0x34,0x78,0x4, 0x12,0x43,0xc3,0x7c,0xeb, +0x7e,0x34,0x78,0x5, 0x12,0x43,0xc3,0xbe,0xe0,0xff,0x68,0x7, 0x6c,0xbe,0xb4,0xff, +0x2, 0x7c,0xfe,0x7a,0xf3,0x4, 0x85,0x74,0x4b,0x7a,0xb3,0x4, 0x86,0x74,0x1, 0x7a, +0xb3,0x4, 0x8c,0xe4,0x7a,0xb3,0x4, 0x8b,0x7a,0xb3,0x4, 0x8d,0x7e,0x34,0xb, 0xb8, +0x7a,0x37,0x0, 0xde,0x7e,0x34,0xa, 0x0, 0x7a,0x37,0x0, 0x86,0x74,0xa0,0x7a,0xb3, +0x0, 0x88,0x6d,0x33,0x7a,0x37,0x0, 0x7b,0x74,0x1, 0x7a,0xb3,0x0, 0x7d,0x74,0x8, +0x7a,0xb3,0x0, 0x7e,0x74,0xc, 0x7a,0xb3,0x0, 0x7f,0x74,0x14,0x7a,0xb3,0x0, 0x80, +0x74,0x14,0x7a,0xb3,0x0, 0x81,0x74,0x1e,0x7a,0xb3,0x0, 0x82,0x74,0x1, 0x7a,0xb3, +0x0, 0x83,0xda,0x79,0x22,0xc2,0xaf,0xd2,0xc9,0xa, 0x56,0xf5,0xf1,0x7c,0xb7,0xf5, +0xf2,0x75,0xf3,0x80,0x75,0xf4,0x0, 0x22,0xca,0x79,0x7e,0xf0,0x70,0x7e,0x34,0x78, +0x0, 0x12,0x43,0xc3,0x7c,0xeb,0x7e,0x34,0x78,0x1, 0x12,0x43,0xc3,0xbe,0xe0,0xff, +0x68,0x7, 0x6c,0xbe,0xb4,0xff,0x2, 0x7c,0xfe,0xd2,0xce,0x7a,0xf1,0x92,0xd2,0xad, +0xd2,0xe8,0xc2,0xc0,0xa9,0xd0,0xf7,0xd2,0xf8,0xa9,0xd5,0xb7,0xd2,0xbd,0xda,0x79, +0x22,0x74,0x1, 0x7a,0xb3,0x4, 0x99,0x22,0x7c,0xab,0x7d,0x43,0x5e,0x80,0x7f,0xc2, +0xaf,0xd2,0xc9,0xa, 0x38,0x7c,0xb7,0xf5,0xf1,0x7c,0xb9,0xf5,0xf2,0x75,0xf3,0x80, +0x75,0xf4,0x1, 0x75,0xf5,0xa, 0x75,0xfb,0xa5,0x75,0xfb,0xf, 0x75,0xfb,0x6a,0x7a, +0xa1,0xf6,0x75,0xf6,0xff,0xa9,0x36,0xf5,0xfc,0x43,0xfa,0x80,0x75,0xfb,0x0, 0xc2, +0xc9,0xd2,0xaf,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b, +0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x7e,0x35,0x5b,0xb, 0x34,0x7a,0x35,0x5b, +0xbe,0x34,0x3, 0xe8,0x40,0xe, 0x6d,0x33,0x7a,0x35,0x5b,0xe5,0x4e,0xbe,0xb0,0x64, +0x50,0x2, 0x5, 0x4e,0x7e,0x37,0x0, 0xa2,0xb, 0x34,0x7a,0x37,0x0, 0xa2,0x7e,0x37, +0x0, 0x5d,0xbe,0x37,0x0, 0xa2,0x28,0x3, 0x12,0x0, 0x8, 0x7e,0xb3,0x4, 0x99,0xb4, +0xaa,0x15,0x7e,0x37,0x0, 0x84,0x7d,0x23,0xb, 0x24,0x7a,0x27,0x0, 0x84,0xbe,0x34, +0x1, 0x2c,0x28,0x3, 0x12,0x44,0xe1,0xe5,0x50,0xbe,0xb1,0x4f,0x28,0x4, 0x5, 0x4f, +0x80,0x2, 0xd2,0x1, 0x7e,0xb3,0x4, 0xc2,0x60,0xf, 0xbe,0xb0,0x28,0x50,0x7, 0x4, +0x7a,0xb3,0x4, 0xc2,0x80,0x3, 0x12,0x3d,0x35,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda, +0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0xca,0xf8, +0x7c,0xab,0xc2,0xb, 0x4d,0x33,0x68,0x77,0x4d,0x22,0x68,0x73,0xc2,0xe, 0x6c,0xff, +0x6c,0x33,0x80,0x57,0x7e,0x10,0x4, 0xac,0x13,0x2d,0x3, 0x49,0xd0,0x0, 0x2, 0xb, +0x8, 0xc0,0xbe,0x6c,0xf8,0x30,0x58,0x3a,0xa, 0x43,0x2e,0x44,0x5, 0x14,0x7e,0x49, +0xb0,0x4, 0x7a,0x49,0xb0,0xb, 0xf0,0xa, 0x3, 0x9, 0x20,0x5, 0x14,0xbe,0x20,0xf, +0x28,0x27,0x7e,0x10,0x2, 0xac,0x13,0x2d,0x2, 0xb, 0x8, 0xf0,0x7d,0xf, 0x1a,0x0, +0x1a,0xe0,0x2f,0x76,0xbe,0x78,0x32,0xc8,0x58,0x4, 0xd2,0xe, 0x80,0x4, 0xd2,0xb, +0x80,0x0, 0xe4,0xa, 0x43,0x19,0xb4,0x5, 0x14,0xb, 0x30,0xbc,0xa3,0x38,0xa5,0x20, +0xe, 0x6, 0x30,0xb, 0x3, 0x12,0xf, 0xfb,0xbe,0xf0,0x4, 0x38,0x2, 0xc2,0xe, 0xda, +0xf8,0x22,0xbe,0xb0,0x3e,0x38,0x2e,0xbe,0xb0,0x26,0x68,0x29,0xbe,0xb0,0x2f,0x68, +0x24,0xbe,0xb0,0x23,0x68,0x1f,0xbe,0xb0,0x28,0x68,0x1a,0xbe,0xb0,0x21,0x68,0x15, +0xbe,0xb0,0x22,0x68,0x10,0xa, 0x2b,0x19,0x72,0x4, 0x5d,0x7e,0xb3,0x4, 0x9c,0x44, +0x1, 0x7a,0xb3,0x4, 0x9c,0x22,0xca,0x69,0xca,0xf8,0x7c,0xf7,0xbe,0xb0,0x80,0x40, +0xb, 0xbe,0xb0,0xde,0x38,0x6, 0x24,0x80,0x7c,0x7f,0xe1,0x12,0x24,0x0, 0x68,0x2, +0xe1,0x15,0x7e,0x64,0x4, 0xc5,0x7a,0x69,0xf0,0x5e,0xf0,0x70,0x7c,0xbf,0xc4,0x54, +0xf, 0x7c,0xfb,0xbe,0xf0,0x4, 0x78,0x15,0x7e,0xb3,0x4, 0x99,0xb4,0x3, 0x7, 0x74, +0x2, 0x7e,0x70,0x3, 0x80,0x36,0x74,0x3c,0x7e,0x70,0x3, 0x80,0x55,0x7e,0xb3,0x4, +0x99,0xb4,0x3, 0x2d,0x74,0x2, 0x7e,0x70,0x1, 0x12,0x37,0xc4,0xbe,0xf0,0x1, 0x78, +0x6, 0x74,0x2, 0x6c,0x77,0x80,0x15,0x4c,0xff,0x78,0x7, 0x74,0x2, 0x7e,0x70,0x1, +0x80,0xa, 0xbe,0xf0,0x3, 0x78,0x2e,0x74,0x2, 0x7e,0x70,0x4, 0x12,0x37,0xc4,0x80, +0x24,0xbe,0xf0,0x1, 0x78,0x6, 0x74,0x3c,0x6c,0x77,0x80,0x16,0xbe,0xf0,0x4, 0x78, +0x7, 0x74,0x3c,0x7e,0x70,0x3, 0x80,0xa, 0xbe,0xf0,0x3, 0x78,0x8, 0x74,0x3c,0x7e, +0x70,0x4, 0x12,0x46,0x42,0xda,0xf8,0xda,0x69,0x22,0xca,0x79,0x7c,0x6b,0x14,0x68, +0x7a,0x4, 0x68,0x2, 0xe1,0xa8,0x7e,0x74,0x4, 0xc5,0x7a,0x79,0x70,0x5e,0x70,0x70, +0x7c,0xb7,0xc4,0x54,0xf, 0x7c,0x7b,0xbe,0x70,0x4, 0x68,0x47,0x7e,0xb3,0x4, 0x99, +0xb4,0x3, 0x20,0xa5,0xbf,0x1, 0x6, 0x74,0x2, 0x6c,0x77,0x80,0x69,0xa5,0xbf,0x0, +0x7, 0x74,0x2, 0x7e,0x70,0x1, 0x80,0x5e,0xa5,0xbf,0x3, 0x75,0x74,0x2, 0x7e,0x70, +0x4, 0x80,0x53,0xa5,0xbf,0x1, 0x6, 0x74,0x3c,0x6c,0x77,0x80,0x29,0xa5,0xbf,0x4, +0x7, 0x74,0x3c,0x7e,0x70,0x3, 0x80,0x1e,0xa5,0xbf,0x3, 0x55,0x74,0x3c,0x7e,0x70, +0x4, 0x80,0x13,0x7e,0xb3,0x4, 0x99,0xb4,0x3, 0x7, 0x74,0x2, 0x7e,0x70,0x3, 0x80, +0x25,0x74,0x3c,0x7e,0x70,0x3, 0x12,0x46,0x42,0x80,0x36,0x7a,0x73,0x4, 0xc4,0x7e, +0x34,0x3, 0x93,0x7a,0x35,0x49,0x80,0x29,0xbe,0x60,0xa, 0x50,0xe, 0x7e,0xb3,0x4, +0x99,0xb4,0x3, 0x1d,0x7c,0xb6,0x12,0x37,0xc4,0x80,0x16,0xbe,0x60,0xa, 0x40,0x11, +0xbe,0x60,0xaf,0x38,0xc, 0x7e,0xb3,0x4, 0x99,0xb4,0x3, 0x5, 0x7c,0xb6,0x12,0x37, +0xd6,0xda,0x79,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b, +0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xe5,0xcc,0x54,0x7, 0x68,0x3, 0x75,0xcc, +0x50,0x12,0x3d,0x8c,0x74,0x1, 0x7a,0xb3,0x4, 0xc2,0xd0,0x82,0xd0,0x83,0xd0,0xd0, +0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7c, +0xa7,0x24,0x0, 0x78,0x7, 0x7e,0x34,0x4, 0xc5,0x7a,0x39,0xa0,0x22,0xca,0xb8,0xa9, +0xc0,0x93,0xe4,0x7a,0xb3,0x4, 0xc1,0x7a,0xb3,0x4, 0xc3,0xda,0xb8,0x32,0x6c,0xaa, +0x74,0xff,0xa, 0x4a,0x19,0xb4,0x4, 0x9d,0x74,0xff,0x19,0xb4,0x4, 0xaf,0xb, 0xa0, +0xbe,0xa0,0x12,0x40,0xeb,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b, +0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x12,0x3b,0xe6,0x7e,0xb3,0x4, +0xc5,0x54,0xfd,0x7a,0xb3,0x4, 0xc5,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda, +0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0xd2,0xcf,0xbe,0xb0, +0x7, 0x38,0x4, 0x7c,0xab,0x80,0x2, 0x6c,0xaa,0x4e,0xa0,0x50,0x7a,0xa1,0xcc,0x0, +0x0, 0x0, 0x0, 0xa9,0xd0,0xca,0xa9,0xc5,0xca,0x53,0xca,0xe1,0x43,0xca,0x14,0x75, +0xcb,0x2, 0xc2,0xcc,0xd2,0xcb,0xc2,0xca,0xc2,0xc9,0xc2,0xc8,0x0, 0x0, 0x0, 0x0, +0x22,0xa9,0xd1,0x99,0x75,0x9a,0xfe,0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0x74,0x20,0x7a, +0xb3,0x4, 0x7e,0x74,0xd, 0x7a,0xb3,0x4, 0x7f,0xe4,0x6c,0xaa,0x12,0x48,0xd2,0x40, +0xfb,0x22,0xa, 0x4a,0x19,0xb4,0x2, 0x3a,0xb, 0xa0,0xbe,0xa0,0x5, 0x22,0x74,0xff, +0x6c,0xaa,0x12,0x48,0xd2,0x40,0xfb,0x22,0x6c,0x22,0x80,0x9, 0x12,0x49,0xad,0x70, +0x2, 0x21,0x8f,0xb, 0x20,0x7e,0x33,0x2, 0x62,0xbc,0x32,0x38,0xef,0x7e,0xb3,0x2, +0x5f,0x30,0xe1,0x2, 0x21,0x8f,0x6c,0x22,0x80,0x7b,0x12,0x49,0xad,0xb4,0x1, 0x73, +0x7e,0x33,0x2, 0x60,0xbc,0x32,0x28,0x24,0x12,0x49,0x9f,0x7e,0x33,0x2, 0x41,0xa, +0x33,0x7d,0x53,0x1a,0x4a,0x1a,0x48,0xbf,0x72,0x8, 0x6, 0x7e,0x33,0x2, 0x3f,0x80, +0x22,0x12,0x49,0x92,0x58,0x4d,0x7e,0x33,0x2, 0x40,0x80,0x34,0x12,0x49,0x9f,0x7e, +0x33,0x2, 0x44,0xa, 0x33,0x7d,0x53,0x1a,0x4a,0x1a,0x48,0xbf,0x72,0x8, 0x18,0x7e, +0x33,0x2, 0x42,0xa, 0x43,0x74,0x2, 0xac,0xb2,0x2e,0x54,0x1, 0xc8,0xb, 0x58,0x0, +0x2d,0x4, 0x1b,0x58,0x0, 0x80,0x1c,0x12,0x49,0x92,0x58,0x17,0x7e,0x33,0x2, 0x43, +0xa, 0x3, 0x7e,0x50,0x2, 0xac,0x52,0x2e,0x24,0x1, 0xc8,0xb, 0x28,0x30,0x9d,0x30, +0x1b,0x28,0x30,0xb, 0x20,0x7e,0x33,0x2, 0x62,0xbc,0x32,0x28,0x2, 0x21,0xa, 0x2, +0x48,0xde,0x6e,0x34,0xff,0xff,0xb, 0x34,0x1a,0x26,0x1a,0x24,0xbf,0x71,0x22,0x7e, +0x50,0x4, 0xac,0x52,0x49,0xf2,0x0, 0xee,0x49,0xe2,0x0, 0xec,0x22,0x7e,0x34,0x2, +0x3a,0x7c,0xb2,0x7c,0x3b,0x7d,0x43,0x4d,0x44,0x68,0x5, 0xbe,0x30,0x24,0x40,0x3, +0x74,0x1, 0x22,0xa, 0x33,0x12,0xf, 0xf4,0x7c,0xb5,0x7e,0x34,0x0, 0x1, 0x60,0x5, +0x3e,0x34,0x14,0x78,0xfb,0x7c,0xa7,0xa, 0x33,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x2d, +0x34,0x7e,0x39,0xb0,0x5c,0xba,0x68,0x3, 0x74,0x1, 0x22,0xe4,0x22,0x7c,0xa5,0x7c, +0x2b,0x7d,0x43,0x4d,0x44,0x68,0x45,0xbe,0x20,0x24,0x50,0x40,0xa, 0x32,0x12,0xf, +0xf4,0x7c,0x75,0x7e,0x24,0x0, 0x1, 0x7c,0xb7,0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb, +0x7c,0x35,0x7c,0xb7,0x60,0x5, 0x3e,0xa0,0x14,0x78,0xfb,0x6e,0x30,0xff,0xa, 0x32, +0x1e,0x34,0x1e,0x34,0x1e,0x34,0x7d,0x23,0x2d,0x24,0x7e,0x29,0xb0,0x5c,0xb3,0x7a, +0x29,0xb0,0x2d,0x34,0x7e,0x39,0xb0,0x4c,0xba,0x7a,0x39,0xb0,0x22,0xca,0x79,0x7d, +0x73,0x12,0x4a,0x86,0x7e,0x1f,0x1, 0x6c,0xbf,0x1, 0x18,0xb, 0x7e,0x34,0x2, 0x3a, +0x74,0x20,0x6c,0x55,0x12,0x49,0xed,0x12,0x4a,0x86,0x7e,0x1f,0x1, 0x70,0xbf,0x1, +0x18,0xb, 0x7e,0x34,0x2, 0x3a,0x74,0x21,0x6c,0x55,0x12,0x49,0xed,0x12,0x4a,0x86, +0x7e,0x1f,0x1, 0x74,0xbf,0x1, 0x18,0xb, 0x7e,0x34,0x2, 0x3a,0x74,0x22,0x6c,0x55, +0x12,0x49,0xed,0xda,0x79,0x22,0x7d,0x17,0x1a,0x2, 0x1a,0x0, 0x22,0xca,0x3b,0x6c, +0xaa,0x7e,0x73,0x0, 0x79,0x5e,0x70,0xf, 0x7e,0x44,0x0, 0xec,0x7e,0x24,0x0, 0x5f, +0x6c,0x66,0x80,0x64,0x75,0x23,0xff,0xa, 0xf6,0x2d,0xf2,0x7e,0xf9,0x20,0x7e,0x30, +0x4, 0xac,0x23,0x7d,0xe1,0x2d,0xe4,0x49,0x1e,0x0, 0x2, 0xb, 0xe8,0x0, 0xa, 0x76, +0xb, 0x74,0x80,0x24,0xa, 0xef,0x2d,0xe2,0x7e,0xe9,0xe0,0x7e,0xd0,0x4, 0xac,0xde, +0x7d,0xe6,0x2d,0xe4,0x49,0xde,0x0, 0x2, 0xb, 0xe8,0xc0,0xbf,0x6, 0x58,0x7, 0x7c, +0xae,0x7a,0xf1,0x23,0x7f,0x6, 0xb, 0xf0,0xbc,0x7f,0x38,0xd8,0xe5,0x23,0xbe,0xb0, +0xff,0x68,0x13,0x7e,0xf9,0xe0,0xe5,0x23,0xa, 0xfb,0x2d,0xf2,0x7a,0xf9,0xe0,0xa, +0xf6,0x2d,0xf2,0x7a,0xf9,0xa0,0xb, 0x60,0xbc,0x76,0x38,0x98,0xda,0x3b,0x22,0xca, +0xf8,0x12,0x0, 0x2e,0x70,0x2, 0x81,0x66,0x7e,0x33,0x2, 0x60,0x7c,0xa3,0x1e,0xa0, +0x1e,0x30,0x1e,0x30,0x6c,0xff,0x7e,0xf7,0x0, 0xde,0x6d,0xee,0x7e,0x1f,0x1, 0xc4, +0xbf,0x17,0x58,0x2, 0x81,0x4c,0x6c,0x22,0x81,0x42,0xa, 0x3a,0x1b,0x34,0xa, 0x2, +0xbd,0x3, 0xa, 0x3a,0x18,0x4, 0x2d,0x3, 0x80,0x2, 0x9d,0x3, 0x7c,0xb1,0xf5,0x23, +0xa, 0x2a,0xa, 0x32,0x12,0x0, 0x46,0x7c,0xb5,0x7a,0xb3,0x2, 0xc9,0x7e,0x90,0x4, +0xac,0x92,0x49,0xd4,0x0, 0xee,0x49,0xc4,0x0, 0xec,0x7e,0x37,0x0, 0xde,0x7d,0xf3, +0x1e,0xf4,0x6d,0xee,0xbf,0x67,0x58,0x2, 0x81,0x40,0x7e,0x43,0x2, 0xc9,0x7e,0x50, +0x4, 0xac,0x45,0x49,0xf2,0x1, 0x7e,0x49,0xe2,0x1, 0x7c,0x6d,0x22,0xbf,0x71,0x58, +0x2, 0x81,0x40,0x12,0x4c,0x69,0x49,0xf0,0x0, 0xee,0x49,0xe0,0x0, 0xec,0xa, 0x23, +0xa, 0x32,0x12,0x0, 0x46,0x4d,0x22,0x78,0x8, 0x9f,0x55,0x7a,0x5f,0x2, 0xb9,0x80, +0x14,0x49,0xb4,0x0, 0xea,0x49,0xa4,0x0, 0xe8,0x7a,0x5f,0x2, 0xb9,0x49,0xb0,0x0, +0xea,0x49,0xa0,0x0, 0xe8,0x7a,0x5f,0x2, 0xc1,0xa, 0x3, 0x1b,0x4, 0xbd,0x2, 0x78, +0x8, 0x9f,0x11,0x7a,0x1f,0x2, 0xbd,0x80,0x1c,0x7e,0x10,0x4, 0xac,0x12,0x49,0x30, +0x0, 0xf2,0x49,0x20,0x0, 0xf0,0x7a,0x1f,0x2, 0xbd,0x12,0x4c,0x69,0x49,0x30,0x0, +0xf2,0x49,0x20,0x0, 0xf0,0x7a,0x1f,0x2, 0xc5,0x7e,0x1f,0x2, 0xb9,0xbf,0x61,0x48, +0x3f,0x7e,0x1f,0x2, 0xbd,0xbf,0x61,0x48,0x37,0xbf,0x67,0x48,0x33,0x7e,0x1f,0x2, +0xc5,0xbf,0x61,0x48,0x2b,0x7e,0x1f,0x2, 0xc1,0xbf,0x61,0x48,0x23,0xa, 0xf, 0x19, +0x20,0x0, 0x5f,0xb, 0xf0,0x7e,0x10,0x4, 0xac,0x12,0x2e,0x4, 0x0, 0xec,0x12,0x1f, +0xd7,0xb, 0x1c,0x12,0xf, 0x8e,0xbe,0xf0,0x4, 0x40,0x5, 0x7e,0xf0,0x4, 0x80,0xc, +0xb, 0x20,0x7e,0xb3,0x2, 0x60,0xbc,0xb2,0x28,0x2, 0x61,0x3a,0x7c,0x6f,0x12,0x4c, +0x71,0x12,0xf, 0x75,0x7c,0x6f,0x5e,0x60,0xf, 0x7e,0x73,0x0, 0x7a,0x5e,0x70,0xf0, +0x4c,0x76,0x7a,0x73,0x0, 0x7a,0xda,0xf8,0x22,0x7e,0x11,0x23,0x74,0x4, 0xac,0x1b, +0x22,0x5e,0x60,0xf, 0x7e,0x73,0x0, 0x79,0x22,0xca,0x79,0x7f,0x1, 0x7c,0xab,0x7e, +0xf7,0x2, 0x1c,0x7e,0x24,0x0, 0x2, 0x7d,0x3f,0x12,0x0, 0x46,0x7d,0xe3,0x7e,0xb3, +0x5, 0x5e,0xa, 0x2b,0xa, 0x3a,0x12,0x0, 0x46,0x7c,0xe5,0x7e,0xf3,0x5, 0x5f,0xbc, +0xfe,0x28,0x15,0x7e,0x73,0x2, 0x45,0x12,0x17,0x98,0x48,0x6, 0x7e,0x47,0x2, 0x20, +0x80,0x19,0x7e,0x47,0x2, 0x1e,0x80,0x13,0x7e,0x73,0x2, 0x46,0x12,0x17,0x98,0x48, +0x6, 0x7e,0x47,0x2, 0x24,0x80,0x4, 0x7e,0x47,0x2, 0x22,0x7d,0x34,0x7d,0xd4,0x1a, +0x36,0x1a,0xc6,0x7f,0x10,0x9f,0x16,0x12,0x4d,0x16,0x12,0x0, 0x78,0x7d,0x54,0x3e, +0x54,0x1a,0x4a,0x1a,0x48,0x12,0x4d,0x16,0x9f,0x2, 0x12,0x0, 0xe5,0x7f,0x1, 0xbe, +0x8, 0x0, 0x0, 0x58,0x4, 0x9f,0x0, 0x80,0xc, 0x7d,0x3f,0x12,0x17,0xa0,0x48,0x5, +0x12,0x4d,0x16,0x1b,0xc, 0xbc,0xfe,0x38,0x8, 0x7d,0x3f,0x1a,0x26,0x1a,0x24,0x2f, +0x1, 0x7f,0x10,0xda,0x79,0x22,0x7d,0x1f,0x1a,0x2, 0x1a,0x0, 0x22,0x7e,0x73,0x2, +0x60,0xa, 0x37,0x1e,0x34,0x7a,0x73,0x5, 0x5e,0xa, 0x37,0x1e,0x34,0x7a,0x73,0x5, +0x5f,0x22,0xca,0x3b,0x7c,0x27,0x7c,0x3b,0x7e,0x93,0x5, 0x5f,0xa, 0xa9,0xa, 0x83, +0x12,0x4e,0x5c,0x7c,0x15,0xa, 0x92,0x12,0x4e,0x55,0x7c,0x85,0x7a,0x81,0x2c,0x7e, +0xa3,0x5, 0x5e,0xa, 0xaa,0x12,0x4e,0x5c,0x7c,0x5, 0x12,0x4e,0x55,0x7c,0x25,0xbc, +0x81,0x78,0x5b,0x7e,0xd0,0x4, 0xac,0xd0,0x49,0xd6,0x1, 0x7e,0x49,0xc6,0x1, 0x7c, +0x7e,0xf0,0x4, 0xac,0xf2,0x49,0xf7,0x1, 0x7e,0x49,0xe7,0x1, 0x7c,0x4c,0x11,0x68, +0x14,0x49,0x36,0x1, 0x7a,0x49,0x26,0x1, 0x78,0x2f,0x61,0x49,0x37,0x1, 0x7a,0x49, +0x27,0x1, 0x78,0x2f,0x71,0x7c,0xb9,0x14,0xbc,0xb1,0x78,0x2, 0xc1,0x20,0x7e,0x10, +0x4, 0xac,0x1, 0x49,0x30,0x1, 0x82,0x49,0x20,0x1, 0x80,0x2f,0x61,0x7e,0x10,0x4, +0xac,0x12,0x49,0x30,0x1, 0x82,0x49,0x20,0x1, 0x80,0x2f,0x71,0x80,0x62,0xa, 0x31, +0xa, 0xa0,0x9d,0xa3,0x7d,0x3a,0x7c,0x7, 0xe5,0x2c,0xa, 0x3b,0xa, 0xa2,0x9d,0xa3, +0x7d,0x3a,0x7c,0x27,0xe5,0x2c,0xa, 0x3b,0xa, 0x20,0x2d,0x23,0x3e,0x24,0x3e,0x24, +0x49,0xf2,0x1, 0x7e,0x49,0xe2,0x1, 0x7c,0xa, 0xa1,0xa, 0x20,0x2d,0x2a,0x3e,0x24, +0x3e,0x24,0x49,0xd2,0x1, 0x7e,0x49,0xc2,0x1, 0x7c,0x2f,0x67,0xa, 0xa2,0x2d,0xa3, +0x3e,0xa4,0x3e,0xa4,0x49,0x3a,0x1, 0x7e,0x49,0x2a,0x1, 0x7c,0xa, 0x1, 0xa, 0xa2, +0x2d,0xa0,0x3e,0xa4,0x3e,0xa4,0x49,0xfa,0x1, 0x7e,0x49,0xea,0x1, 0x7c,0x2f,0x71, +0xb, 0x6c,0xb, 0x7c,0xbc,0xa3,0x7e,0x37,0x2, 0x2a,0x1a,0x26,0x38,0x7, 0x12,0x4e, +0x63,0x7f,0x17,0x80,0x5, 0x12,0x4e,0x63,0x7f,0x16,0x12,0x0, 0x78,0x7f,0x6, 0x2f, +0x7, 0x12,0x0, 0xe5,0x7d,0xb3,0x7e,0xa7,0x2, 0x1c,0x9e,0xa7,0x2, 0x28,0x2d,0xba, +0x7d,0x3b,0xda,0x3b,0x22,0x7d,0x39,0x7d,0x2a,0x2, 0x0, 0x46,0x7d,0x38,0x7d,0x2a, +0x2, 0x0, 0x46,0x1a,0x24,0x7e,0x17,0x2, 0x28,0x1a,0x2, 0x1a,0x0, 0x2f,0x1, 0x22, +0x7c,0x23,0x7c,0x3b,0xa5,0xba,0x97,0x24,0xbe,0x30,0x1c,0x50,0x4, 0x7c,0x23,0x80, +0x3, 0x7e,0x20,0x1c,0x6c,0xaa,0x80,0xf, 0x12,0x4e,0xab,0xa, 0x4b,0x2e,0x44,0x2, +0x82,0x12,0x4e,0xb1,0x12,0x4e,0xba,0xbc,0x2a,0x38,0xed,0x22,0x6c,0xaa,0x80,0x6, +0x12,0x4e,0xab,0x12,0x4e,0xba,0xbc,0x3a,0x38,0xf6,0x22,0xa, 0xa, 0x7d,0x40,0x2d, +0x43,0x7a,0x91,0x82,0x7a,0x81,0x83,0xe4,0x93,0x22,0x2d,0x2, 0x7a,0x9, 0xb0,0xb, +0xa0,0x22,0xca,0x59,0xc2,0xae,0x30,0xa, 0x5, 0x7e,0xa0,0x1, 0x80,0x3, 0x7e,0xa0, +0x2, 0xe5,0xe6,0x5c,0xba,0x68,0x5, 0x75,0xe6,0x0, 0xd2,0x9, 0xd2,0xae,0xda,0x59, +0x32,0xca,0x3b,0x7e,0x67,0x2, 0xb6,0x7e,0xb3,0x2, 0xaf,0x30,0xe7,0x5, 0x7e,0xf0, +0x2, 0x80,0x2, 0x6c,0xff,0x6c,0xee,0x80,0x15,0xa, 0x3e,0x9, 0x73,0x2, 0x87,0x2d, +0x36,0x7e,0x39,0x70,0x7a,0x71,0x24,0x7c,0xbf,0x24,0xb, 0x12,0x4f,0x1d,0x12,0x4f, +0x16,0x38,0xe6,0xda,0x3b,0x22,0x7e,0x73,0x2, 0x62,0xbc,0x7e,0x22,0x12,0x0, 0x25, +0xb, 0xe0,0xb, 0xf0,0x22,0xca,0x3b,0x7e,0xb3,0x2, 0xb5,0x20,0xe7,0x45,0x7e,0xb3, +0x2, 0xaf,0x30,0xe7,0x5, 0x7e,0xf0,0x2, 0x80,0x2, 0x6c,0xff,0x7e,0x67,0x2, 0xb6, +0x6c,0xee,0x80,0x2a,0xa, 0x3e,0x9, 0x73,0x2, 0x87,0x2d,0x36,0x7e,0x39,0xb0,0xf5, +0x24,0x7e,0xb3,0x5, 0x13,0x7e,0x34,0x0, 0x1, 0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb, +0x7c,0xb7,0x42,0x24,0x7c,0xbf,0x24,0xb, 0x7e,0x71,0x24,0x12,0x4f,0x1d,0x12,0x4f, +0x16,0x38,0xd1,0xda,0x3b,0x22,0xca,0x79,0x12,0x0, 0x2e,0x60,0x78,0x7e,0xb3,0x2, +0xb5,0x20,0xe7,0x71,0x7e,0xb3,0x2, 0x5f,0x30,0xe0,0x2, 0x80,0x7, 0x7e,0xb3,0x2, +0xad,0x30,0xe1,0x6, 0x7e,0x74,0xe, 0xb0,0x80,0x4, 0x7e,0x74,0x7, 0x58,0x7e,0x37, +0x2, 0xb6,0x6c,0xaa,0x80,0x47,0xa, 0x2a,0x9, 0x52,0x2, 0x87,0x7e,0x30,0x4, 0xac, +0x35,0x49,0xf1,0x0, 0xee,0x49,0xe1,0x0, 0xec,0x7d,0x17,0x6d,0x0, 0xbf,0x70,0x58, +0x1f,0x7e,0xb3,0x5, 0x13,0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb, +0x7c,0xb9,0xa, 0x15,0x2e,0x14,0x4, 0xef,0x7e,0x19,0x40,0x4c,0x4b,0x7a,0x19,0x40, +0xa, 0x15,0x9, 0x41,0x4, 0xef,0x2d,0x13,0x7a,0x19,0x40,0xb, 0xa0,0x7e,0x43,0x2, +0x62,0xbc,0x4a,0x38,0xb1,0xda,0x79,0x22,0xe4,0x7a,0xb3,0x4, 0x5b,0x7a,0xb3,0x4, +0x0, 0x22,0xca,0x69,0xca,0xf8,0x12,0x51,0x74,0x7e,0x73,0x4, 0x1a,0xa, 0x37,0xbd, +0x36,0x8, 0x26,0x7e,0x73,0x4, 0x1b,0xa, 0x37,0xbd,0x32,0x8, 0x1c,0xa, 0x3f,0x7d, +0x23,0x2e,0x24,0x4, 0x5b,0x7e,0x29,0xb0,0x4, 0x7a,0x29,0xb0,0x9, 0x53,0x4, 0x5b, +0xbe,0x50,0x20,0x28,0x20,0x74,0x20,0x80,0xc, 0xa, 0x3f,0x9, 0xa3,0x4, 0x5b,0xbe, +0xa0,0x3, 0x38,0x7, 0xe4,0x19,0xb3,0x4, 0x5b,0x80,0xa, 0x2e,0x34,0x4, 0x5b,0x7c, +0xba,0x14,0x7a,0x39,0xb0,0xa, 0x3f,0x2e,0x35,0x53,0x7e,0x39,0xb0,0x12,0x51,0xad, +0x60,0xa, 0x74,0x78,0xa, 0x3f,0x19,0xb3,0x4, 0x0, 0x80,0x13,0xa, 0x3f,0x9, 0xb3, +0x4, 0x0, 0xbe,0xb0,0x0, 0x28,0x8, 0x2e,0x34,0x4, 0x0, 0x14,0x7a,0x39,0xb0,0x7e, +0x90,0x5, 0xac,0x9f,0x2e,0x45,0x53,0x49,0x34,0x0, 0x4, 0x74,0x4, 0xac,0xbf,0x59, +0x35,0x4, 0x8, 0x49,0x34,0x0, 0x6, 0x59,0x35,0x4, 0xa, 0xda,0xf8,0xda,0x69,0x22, +0xca,0x69,0xca,0xf8,0x7e,0x65,0x53,0x9, 0xf6,0x0, 0x1a,0x5e,0xf0,0xf, 0x78,0x8, +0x12,0x4f,0xf8,0x12,0x51,0x6a,0x80,0x55,0xbe,0xf0,0x1, 0x78,0x1a,0x7e,0x73,0x4, +0x50,0xbe,0x70,0x3, 0x50,0x5, 0x12,0x4f,0xf8,0x80,0x9, 0x12,0x51,0x62,0x28,0x4, +0xe4,0x12,0x51,0x12,0xe4,0x80,0x33,0xbe,0xf0,0x2, 0x78,0x31,0x7e,0x73,0x3, 0xff, +0xbe,0x70,0x3, 0x50,0x8, 0x12,0x4f,0xf8,0x12,0x51,0x6a,0x80,0x17,0x12,0x51,0x62, +0x28,0x4, 0xe4,0x12,0x51,0x12,0x7e,0x73,0x4, 0x5c,0xbe,0x70,0x3, 0x28,0x5, 0x74, +0x1, 0x12,0x51,0x12,0xe4,0x12,0x50,0x2, 0x74,0x1, 0x12,0x50,0x2, 0xda,0xf8,0xda, +0x69,0x22,0xca,0x69,0xca,0xf8,0x12,0x51,0x74,0x7e,0x73,0x4, 0x22,0xa, 0x37,0xbd, +0x36,0x8, 0x3a,0x7e,0x73,0x4, 0x23,0xa, 0x37,0xbd,0x32,0x8, 0x30,0xa, 0x3f,0x9, +0xb3,0x4, 0x0, 0x60,0x28,0x74,0x4, 0xac,0xbf,0x49,0x35,0x4, 0x8, 0x7e,0x50,0x5, +0xac,0x5f,0x2e,0x25,0x53,0x59,0x32,0x0, 0x4, 0x74,0x4, 0xac,0xbf,0x49,0x35,0x4, +0xa, 0x7e,0x50,0x5, 0xac,0x5f,0x2e,0x25,0x53,0x59,0x32,0x0, 0x6, 0xda,0xf8,0xda, +0x69,0x22,0x7e,0x73,0x4, 0x5b,0xbe,0x70,0x3, 0x22,0xe4,0x7a,0xb3,0x4, 0x5c,0x7a, +0xb3,0x4, 0x1, 0x22,0x7c,0xfb,0x74,0x4, 0xac,0xbf,0x49,0x25,0x4, 0x8, 0x7e,0x70, +0x5, 0xac,0x7f,0x2e,0x35,0x53,0x49,0x33,0x0, 0x4, 0x9d,0x32,0x12,0x2, 0x9e,0x7d, +0x63,0x74,0x4, 0xac,0xbf,0x49,0x25,0x4, 0xa, 0x7e,0x70,0x5, 0xac,0x7f,0x2e,0x35, +0x53,0x49,0x33,0x0, 0x6, 0x9d,0x32,0x12,0x2, 0x9e,0x7d,0x23,0x22,0xca,0x79,0x7c, +0xeb,0x6c,0xff,0x7c,0xbe,0x7e,0x30,0x4, 0xac,0x3e,0x12,0x13,0xe5,0x12,0x51,0xe7, +0x7c,0x6b,0x7e,0x50,0x4, 0xac,0x5e,0x2e,0x25,0x51,0x49,0x12,0x0, 0x2, 0xb, 0x28, +0x0, 0xbe,0x8, 0x3a,0x98,0x8, 0xb, 0x7e,0x73,0x4, 0x19,0xbc,0x76,0x28,0x3, 0x7e, +0xf0,0x1, 0x7c,0xbf,0xda,0x79,0x22,0x7f,0x71,0x7e,0xa3,0x4, 0x2, 0xa, 0x2a,0xa, +0x3b,0x12,0x0, 0x46,0x7e,0x73,0x4, 0x3, 0xa, 0x37,0xbd,0x23,0x58,0x6, 0x7e,0x7, +0x4, 0x53,0x80,0x4, 0x7e,0x7, 0x4, 0x12,0xbe,0x78,0x75,0x30,0x8, 0x0, 0xbe,0x78, +0x0, 0x0, 0x58,0x4, 0x6d,0x11,0x80,0x6, 0x7f,0x17,0x2f,0x11,0x7d,0x13,0x7d,0x51, +0x8d,0x50,0xbe,0x54,0x0, 0x64,0x28,0x4, 0x7e,0x54,0x0, 0x64,0x22,0x7e,0x34,0x0, +0x1, 0x7a,0x37,0x4, 0x51,0x7a,0x37,0x4, 0x53,0xe4,0x7a,0xb3,0x4, 0x55,0x7e,0xb3, +0x4, 0x56,0x54,0xf9,0x7a,0xb3,0x4, 0x56,0x54,0xfe,0x7a,0xb3,0x4, 0x56,0x7a,0x37, +0x4, 0x10,0x7a,0x37,0x4, 0x12,0xe4,0x7a,0xb3,0x4, 0x14,0x7e,0xb3,0x4, 0x15,0x54, +0xf9,0x7a,0xb3,0x4, 0x15,0x54,0xfe,0x7a,0xb3,0x4, 0x15,0x22,0x7e,0x45,0x53,0x9, +0xa4,0x0, 0x1a,0x5e,0xa0,0xf, 0x78,0x7, 0xe4,0x7a,0xb3,0x4, 0x50,0x80,0x3d,0xbe, +0xa0,0x1, 0x78,0x1f,0xe4,0x7a,0xb3,0x3, 0xff,0x7e,0xb3,0x4, 0x50,0x4, 0x7a,0xb3, +0x4, 0x50,0x7e,0x73,0x4, 0x50,0xbe,0x70,0xc8,0x28,0x25,0x74,0xc8,0x7a,0xb3,0x4, +0x50,0x80,0x1d,0xe4,0x7a,0xb3,0x4, 0x50,0x7e,0xb3,0x3, 0xff,0x4, 0x7a,0xb3,0x3, +0xff,0x7e,0x73,0x3, 0xff,0xbe,0x70,0xc8,0x28,0x6, 0x74,0xc8,0x7a,0xb3,0x3, 0xff, +0x7e,0xb3,0x4, 0x4f,0x60,0x5, 0x14,0x7a,0xb3,0x4, 0x4f,0x22,0x7c,0x6b,0x7e,0x53, +0x0, 0x79,0x7c,0xb5,0x54,0xf, 0x68,0x10,0x7c,0x45,0x1b,0x40,0x5e,0x40,0xf, 0x5e, +0x50,0xf0,0x4c,0x54,0x7a,0x53,0x0, 0x79,0xa5,0xbe,0x0, 0x1c,0xa5,0xbf,0x2, 0x18, +0x7e,0x73,0x0, 0x60,0x7a,0x73,0x0, 0x5f,0x7e,0x1f,0x0, 0x69,0x7e,0x33,0x0, 0x68, +0x7a,0x1f,0x0, 0x64,0x7a,0x33,0x0, 0x63,0x22,0xca,0x3b,0x12,0xf, 0x96,0x6c,0xee, +0x61,0x9c,0x7e,0x50,0x5, 0xac,0x5e,0x49,0x62,0x0, 0x63,0x7e,0x34,0x0, 0x1, 0x7a, +0x35,0x23,0x7a,0x35,0x25,0x9e,0x64,0x0, 0x20,0x7e,0x35,0x23,0xbd,0x36,0x38,0xb, +0x7e,0x34,0x1, 0xc0,0x9e,0x35,0x25,0xbd,0x36,0x50,0x33,0x12,0x53,0xa5,0x78,0x27, +0xbe,0xf0,0x1, 0x78,0x22,0x74,0x4, 0xac,0xbe,0x49,0x15,0x5, 0x56,0xbe,0x14,0x7f, +0xff,0x68,0x14,0x49,0x35,0x5, 0x58,0xbe,0x34,0x7f,0xff,0x68,0xa, 0x59,0x12,0x0, +0x63,0x59,0x32,0x0, 0x65,0x80,0x7, 0x7c,0xbe,0x7c,0x7f,0x12,0x52,0xcc,0x12,0x53, +0xa5,0x68,0xe, 0x7e,0x34,0x7f,0xff,0x74,0x4, 0xac,0xbe,0x59,0x35,0x5, 0x56,0x80, +0x15,0x7e,0x90,0x5, 0xac,0x9e,0x49,0x34,0x0, 0x63,0x74,0x4, 0xac,0xbe,0x59,0x35, +0x5, 0x56,0x49,0x34,0x0, 0x65,0x59,0x35,0x5, 0x58,0xb, 0xe0,0xbc,0xfe,0x28,0x2, +0x61,0x12,0xda,0x3b,0x22,0x7e,0x73,0x0, 0x79,0x7c,0xb7,0xc4,0x54,0xf, 0x7c,0xab, +0x5e,0xa0,0xf, 0x7c,0xb7,0x54,0xf, 0xbc,0xba,0x22,0xca,0xd8,0xca,0x79,0x7e,0xf3, +0x0, 0x9f,0x4c,0xff,0x78,0x2, 0x81,0x58,0x6c,0xee,0x7e,0x90,0x5, 0xac,0x9e,0x9, +0xd4,0x0, 0x8d,0xbe,0xd0,0x2, 0x50,0xb, 0xa, 0x5d,0x9, 0xb5,0x0, 0xe0,0x70,0x3, +0x12,0x54,0x5d,0xb, 0xe0,0xbe,0xe0,0x2, 0x78,0xe0,0x6c,0xee,0x80,0x66,0x7e,0x50, +0x5, 0xac,0x5e,0x9, 0xd2,0x0, 0x8d,0xbe,0xd0,0x2, 0x50,0x56,0x74,0x4, 0xac,0xbd, +0x49,0x45,0x5, 0x4e,0x49,0x32,0x0, 0x89,0x9d,0x34,0x7a,0x35,0x23,0x49,0x15,0x5, +0x50,0x49,0x22,0x0, 0x8b,0x9d,0x21,0x7a,0x25,0x25,0x12,0x2, 0x9e,0xbe,0x34,0x0, +0x5, 0x18,0x27,0x7e,0x35,0x25,0x12,0x2, 0x9e,0xbe,0x34,0x0, 0x3, 0x18,0x1b,0x7e, +0x90,0x4, 0xac,0x9d,0x49,0x34,0x5, 0x4e,0x74,0x5, 0xac,0xbe,0x59,0x35,0x0, 0x89, +0x49,0x34,0x5, 0x50,0x59,0x35,0x0, 0x8b,0x80,0x8, 0x7e,0x90,0x5, 0xac,0x9e,0x12, +0x54,0x5d,0xb, 0xe0,0xbc,0xfe,0x38,0x96,0xda,0x79,0xda,0xd8,0x22,0x49,0x34,0x0, +0x89,0x74,0x4, 0xac,0xbd,0x59,0x35,0x5, 0x4e,0x49,0x34,0x0, 0x8b,0x59,0x35,0x5, +0x50,0x22,0x7d,0x23,0x7d,0xd3,0x1a,0x24,0x1a,0xc4,0x7e,0x7f,0x1, 0x6c,0xbf,0x67, +0x18,0x29,0x7e,0xf, 0x1, 0x70,0xbf,0x7, 0x18,0x21,0x7e,0xf, 0x1, 0x74,0xbf,0x7, +0x18,0x19,0x7e,0x2f,0x1, 0x38,0x7e,0xf, 0x1, 0x34,0x2f,0x2, 0xbe,0x8, 0xd, 0xac, +0x18,0x69,0x12,0xf, 0x6a,0x7e,0x34,0x0, 0x50,0x80,0x54,0x7e,0xf, 0x1, 0x70,0xbf, +0x60,0x18,0x25,0xbf,0x70,0x18,0x21,0x7e,0x2f,0x1, 0x74,0xbf,0x20,0x18,0x19,0x7e, +0x5f,0x1, 0x50,0x7e,0x2f,0x1, 0x4c,0x2f,0x25,0xbe,0x28,0xd, 0xac,0x18,0x3c,0x12, +0xf, 0x6a,0x7e,0x34,0x0, 0xf0,0x80,0x27,0x7e,0x1f,0x1, 0x74,0xbf,0x61,0x18,0x2b, +0xbf,0x71,0x18,0x27,0xbf,0x1, 0x18,0x23,0x7e,0xf, 0x1, 0x60,0x7e,0x1f,0x1, 0x5c, +0x2f,0x10,0xbe,0x18,0xd, 0xac,0x18,0x13,0x12,0xf, 0x6a,0x7e,0x34,0x1, 0x90,0x7a, +0x37,0x0, 0x63,0x7e,0x34,0x3, 0x84,0x7a,0x37,0x0, 0x65,0x22,0x12,0xf, 0xbf,0xb4, +0x1, 0x6a,0x7c,0xba,0x54,0xf, 0x68,0x64,0x7e,0x73,0x0, 0x5f,0xa, 0x37,0x12,0xf, +0xf4,0xbe,0x24,0x0, 0x7, 0x78,0x2e,0x90,0x1, 0x3d,0x12,0x55,0x7d,0x12,0x17,0x7c, +0xbe,0x8, 0x0, 0x3c,0x8, 0x12,0x7d,0x35,0x2e,0x34,0x0, 0xec,0x2e,0x8, 0x0, 0x64, +0x59,0x13,0x0, 0x2, 0x1b,0x38,0x0, 0x22,0x7e,0x8, 0x0, 0x96,0x59,0x15,0x0, 0xee, +0x59,0x5, 0x0, 0xec,0x22,0x4d,0x22,0x78,0x23,0x90,0x1, 0x3c,0x12,0x55,0x7d,0x12, +0x21,0xd1,0xbe,0x18,0x0, 0x3c,0x8, 0xd, 0x7d,0x45,0x2e,0x44,0x0, 0xec,0x2e,0x18, +0x0, 0x64,0x2, 0x17,0xf4,0x7e,0x18,0x0, 0x96,0x12,0x17,0x52,0x22,0xe4,0x93,0x7c, +0xab,0x74,0x4, 0xa4,0x22,0x12,0x0, 0x94,0x7a,0x1f,0x2, 0xcd,0x7e,0x24,0x2, 0xcd, +0x7e,0x37,0x2, 0xd1,0xe5,0x25,0x7e,0x17,0x2, 0x34,0x99,0x14,0xe5,0x25,0x7e,0x1f, +0x2, 0xcd,0x22,0x7a,0x1f,0x2, 0xc5,0xe5,0x27,0xa, 0x2b,0x1b,0x24,0xe5,0x25,0xa, +0x3b,0xbd,0x32,0x7e,0x17,0x2, 0x1c,0x1a,0x2, 0x22,0x1a,0x0, 0x7e,0x7f,0x2, 0xc1, +0x7f,0x17,0x12,0x0, 0x78,0x7e,0x2f,0x2, 0xc5,0x7f,0x7, 0x2f,0x2, 0x22,0x7d,0x17, +0x6d,0x0, 0x7f,0x12,0x9f,0x10,0x22,0x1a,0x0, 0x7e,0x7f,0x2, 0xc5,0x7f,0x17,0x12, +0x0, 0x78,0x7e,0xf, 0x2, 0xc1,0x2f,0x7, 0x22,0x7e,0x73,0x0, 0x60,0xa, 0x37,0x7d, +0x2f,0x12,0x0, 0x46,0xbd,0x42,0x22,0xb, 0x28,0x10,0x2d,0x10,0x1b,0x28,0x10,0xb, +0xe0,0xbe,0xe0,0x3, 0x22,0x7e,0x14,0x0, 0xc, 0xad,0x13,0x7e,0x50,0x4, 0xac,0x5e, +0x2d,0x21,0x22,0x7a,0x37,0x0, 0x5d,0x7e,0x34,0x0, 0xa6,0x7a,0x37,0x2, 0xb6,0x22, +0x7e,0xa1,0x23,0x74,0x5, 0xa4,0x22,0x7c,0xbf,0x24,0x2f,0x7e,0x70,0x3f,0x12,0x0, +0x25,0xb, 0xf0,0x22,0x2d,0x5c,0x3e,0x54,0x3e,0x54,0x22,0xe5,0x27,0xa, 0x1b,0xe5, +0x28,0xa, 0x3b,0x2d,0x31,0xbd,0x23,0x22,0x7e,0x4, 0x0, 0x3, 0xb, 0x28,0x10,0x8d, +0x10,0x1b,0x28,0x10,0x22,0x74,0x5, 0xac,0xbf,0x9, 0x75,0x0, 0x8d,0xbe,0x70,0x2, +0x22,0x7e,0x30,0x5, 0xac,0x3d,0x2e,0x14,0x2, 0xb9,0x74,0x5, 0x22,0x7e,0x70,0x5, +0xac,0x7f,0x2e,0x34,0x0, 0x63,0x22,0x74,0x5, 0x12,0x1, 0x19,0xb, 0xf0,0x22,0x7e, +0x30,0x5, 0xac,0x3f,0x7d,0x31,0x22,0x7e,0x34,0x0, 0x3c,0x7a,0x35,0x58,0x22,0x7a, +0x51,0x82,0x7a,0x41,0x83,0xe4,0x22,0x56,0x97,0xa9,0x68,0xa4,0x5b,0x2, 0xd8, \ No newline at end of file diff --git a/drivers/input/touchscreen/focaltech/FT6x06_4Column_Ver0x03_20141117_app.h b/drivers/input/touchscreen/focaltech/FT6x06_4Column_Ver0x03_20141117_app.h new file mode 100644 index 00000000..6523e3e2 --- /dev/null +++ b/drivers/input/touchscreen/focaltech/FT6x06_4Column_Ver0x03_20141117_app.h @@ -0,0 +1,1310 @@ +0x2, 0x1, 0xee,0x2, 0x39,0x9d,0x22,0x22,0x22,0x22,0x32,0x2, 0x0, 0xa, 0x1e,0x44, +0x1e,0x44,0x1e,0x44,0x22,0x7e,0x37,0x2, 0x6, 0x89,0x34,0x2, 0x3b,0x9, 0x74,0x5, +0xac,0xbf,0x9, 0x75,0x0, 0x6c,0x22,0x2, 0x39,0xf, 0xff,0x2, 0x3f,0x9b,0xa2,0xc, +0xe4,0x33,0x22,0x2, 0x46,0x1f,0x74,0x5, 0xac,0xbf,0x49,0x45,0x0, 0x3e,0x22,0x2, +0x39,0x42,0xff,0x2, 0x3f,0xe4,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, 0xb2,0xd5,0x6e, +0x24,0xff,0xff,0xb, 0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e,0x34,0xff,0xff, +0xb, 0x34,0x8d,0x32,0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d,0x32,0x30,0xd5, +0x6, 0x6e,0x34,0xff,0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d,0x2, 0x7d,0x21, +0xad,0x5, 0x2d,0x12,0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31,0xad,0x10,0x2d, +0x21,0x22,0x6d,0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78,0x27,0x8d,0x31, +0x7d,0x12,0x6d,0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11,0x2d,0x44,0x50, +0x2, 0xa5,0xf, 0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78,0xed,0x7f,0x1, +0x6d,0x22,0x7d,0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, 0x2f,0x0, 0x40, +0x4, 0xbd,0x4, 0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d,0x23,0x7d,0x31, +0x7d,0x10,0x6d,0x0, 0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2,0xd5,0x9f,0x22, +0x9f,0x20,0x7f,0x2, 0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22,0x9f,0x21,0x7f, +0x12,0x12,0x0, 0x94,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12,0x0, 0x94,0x30, +0xd5,0x6, 0x9f,0x22,0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1a,0x1e, +0x54,0x68,0xe, 0xb, 0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15,0x1b,0x54,0x78, +0xf2,0x50,0x6, 0x7e,0x39,0x40,0x7a,0x19,0x40,0x22,0xff,0xff,0xff,0xff,0xfe,0xfe, +0xfe,0xfd,0xfc,0xfc,0xfb,0xfb,0xfa,0xfa,0xfa,0xf9,0xf8,0xf7,0xf7,0xf6,0xf5,0xf5, +0xf4,0xf3,0xf2,0xf2,0xf1,0xf0,0xf0,0xef,0xee,0xed,0xec,0xec,0xeb,0xea,0xe9,0xe7, +0xe5,0xe4,0xe2,0xe0,0xe0,0xe0,0xe0,0x1, 0x2, 0x3, 0x3, 0x4, 0x4, 0x4, 0x5, 0x5, +0x6, 0x6, 0x7, 0x7, 0x7, 0x8, 0x8, 0x9, 0xa, 0xa, 0xb, 0xb, 0xc, 0xd, 0xd, 0xe, +0xf, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x21, +0x23,0x26,0x2a,0x2d,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfb, +0xfa,0xfa,0xfa,0xf9,0xf8,0xf7,0xf7,0xf6,0xf5,0xf5,0xf4,0xf3,0xf2,0xf2,0xf1,0xf0, +0xf0,0xef,0xee,0xed,0xec,0xec,0xeb,0xea,0xe9,0xe7,0xe5,0xe4,0xe2,0xe0,0xe0,0xe0, +0xe0,0x1, 0x2, 0x3, 0x3, 0x4, 0x4, 0x4, 0x5, 0x5, 0x6, 0x6, 0x7, 0x7, 0x7, 0x8, +0x8, 0x9, 0xa, 0xa, 0xb, 0xb, 0xc, 0xd, 0xd, 0xe, 0xf, 0xf, 0x10,0x11,0x12,0x13, +0x14,0x15,0x16,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x21,0x23,0x26,0x2a,0x2d,0x75,0x84, +0x1, 0x7e,0x44,0x8, 0x1f,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78,0xf9,0x7e,0xf8,0x5, +0x59,0xc2,0xb, 0x75,0x2e,0x0, 0x75,0x2f,0x0, 0x75,0x30,0x0, 0x75,0x31,0x0, 0x75, +0x32,0x0, 0xc2,0x7, 0xd2,0x8, 0x75,0x33,0x0, 0x75,0x34,0x0, 0x75,0x26,0x0, 0x75, +0x35,0x0, 0x75,0x36,0x0, 0xc2,0xc, 0xd2,0x9, 0xc2,0xa, 0x75,0x37,0x0, 0xc2,0xd, +0xc2,0xe, 0x7e,0x4, 0x0, 0xff,0x7e,0x14,0x3, 0xd, 0xb, 0xa, 0x40,0x5d,0x44,0x68, +0x1a,0x69,0x20,0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29, +0xb0,0xb, 0x24,0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x39,0xd3,0xa, 0xb, +0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x9, 0x8, +0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x1, 0x22, +0x23,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, +0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x3, +0x3, 0x5, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x22, +0x22,0x22,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x22, +0x22,0x22,0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x7d,0x23, +0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32,0x22,0x7d,0x13, +0x80,0x7, 0x1b,0x24,0x7a,0x19,0xb0,0xb, 0x14,0x4d,0x22,0x78,0xf5,0x22,0x10,0x10, +0x10,0x1c,0x19,0x14,0x10,0xe, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x0, 0x18,0x4, +0xeb,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x5, 0x59,0x0, 0x0, 0x1, +0x3, 0xe8,0x0, 0x0, 0x24,0x3, 0xe9,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x24,0x4, 0xd, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x1, 0x4, 0xd5,0x0, 0x0, 0x1, 0x4, 0xd7,0x0, 0x0, 0x1, 0x4, +0xd8,0x0, 0x0, 0x1, 0x4, 0xda,0x0, 0x0, 0x1, 0x5, 0x51,0x0, 0x0, 0x1, 0x5, 0x52, +0xff,0x0, 0x1, 0x5, 0x53,0x10,0x0, 0x1, 0x5, 0x54,0x8, 0x0, 0x1, 0x5, 0x38,0x0, +0x0, 0x10,0x5, 0x39,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff, +0x7f,0xff,0x7f,0xff,0x0, 0x0, 0xca,0x3b,0x7e,0xa3,0x0, 0x54,0x7c,0xca,0x5e,0xc0, +0xf, 0x7c,0xba,0xc4,0x54,0xf, 0xf5,0x8, 0x4c,0xcc,0x78,0x2f,0x12,0x7, 0x12,0xe5, +0x8, 0xbe,0xb0,0x0, 0x38,0x2, 0xc1,0xfc,0x6c,0xff,0x7e,0xa0,0xff,0x7e,0x70,0x5, +0xac,0x7f,0x19,0xa3,0x0, 0x76,0xb, 0xf0,0xbe,0xf0,0x2, 0x78,0xf0,0xd2,0x5, 0xc2, +0x3, 0x6d,0x33,0x7a,0x35,0x2e,0x75,0x30,0x0, 0xc1,0xfc,0x6c,0xff,0x7e,0x70,0xff, +0x74,0x5, 0xac,0xbf,0x19,0x75,0x2, 0xb2,0x7e,0x34,0x7f,0xff,0x59,0x35,0x2, 0xae, +0x59,0x35,0x2, 0xb0,0xb, 0xf0,0xbe,0xf0,0x2, 0x78,0xe2,0x6c,0xff,0x80,0x23,0x7e, +0x50,0x5, 0xac,0x5f,0x7d,0x12,0x2e,0x14,0x0, 0x3e,0xb, 0x18,0x30,0x12,0x25,0x25, +0x1b,0x18,0x30,0x2e,0x24,0x0, 0x40,0xb, 0x28,0x30,0x12,0x25,0x25,0x1b,0x28,0x30, +0xb, 0xf0,0xbc,0xcf,0x38,0xd9,0xe5,0x8, 0xbc,0xbc,0x68,0x5, 0x6d,0x33,0x7a,0x35, +0x2e,0x6c,0xff,0x12,0x0, 0x1e,0xbe,0x70,0x2, 0x50,0xf, 0xa, 0x37,0x9, 0xb3,0x0, +0xc0,0x70,0x7, 0x6d,0x33,0x7a,0x35,0x2e,0x80,0x7, 0xb, 0xf0,0xbe,0xf0,0x2, 0x40, +0xe2,0xe5,0x8, 0x70,0x23,0x6c,0xff,0x80,0x19,0x12,0x0, 0x36,0x59,0x45,0x0, 0x72, +0x49,0x45,0x0, 0x40,0x59,0x45,0x0, 0x74,0x9, 0x75,0x0, 0x42,0x19,0x75,0x0, 0x76, +0xb, 0xf0,0xbc,0xcf,0x38,0xe3,0xa1,0x95,0x6c,0xdd,0x6c,0xff,0x6c,0xee,0x7e,0x70, +0x5, 0xac,0x7e,0x9, 0xa3,0x0, 0x76,0x7e,0x50,0x5, 0xac,0x5f,0x9, 0xb2,0x0, 0x42, +0xbc,0xba,0x78,0x18,0xbe,0xb0,0xff,0x68,0x13,0xbe,0xd0,0x2, 0x50,0x15,0x2e,0x34, +0x0, 0x72,0x12,0x7, 0x61,0x74,0x5, 0x12,0x1, 0x19,0x80,0x7, 0xb, 0xe0,0xbe,0xe0, +0x2, 0x40,0xcb,0xbe,0xe0,0x2, 0x78,0x16,0xbe,0xd0,0x2, 0x50,0x11,0x7e,0x70,0x5, +0xac,0x7f,0x2e,0x34,0x0, 0x3e,0x12,0x7, 0x61,0x74,0x5, 0x12,0x1, 0x19,0xb, 0xd0, +0xb, 0xf0,0xbe,0xf0,0x2, 0x78,0xa5,0x6c,0xff,0x7e,0x30,0x5, 0xac,0x3f,0x7d,0x31, +0x2e,0x34,0x2, 0xae,0x2e,0x14,0x0, 0x72,0x74,0x5, 0x12,0x1, 0x19,0xb, 0xf0,0xbe, +0xf0,0x2, 0x78,0xe5,0x20,0x3, 0x6e,0x6c,0xff,0x80,0x66,0x7c,0xef,0x6c,0xdd,0x80, +0x21,0x7e,0x90,0x5, 0xac,0x9f,0x9, 0xa4,0x0, 0x76,0x7e,0x70,0x5, 0xac,0x7d,0x9, +0xb3,0x0, 0x42,0xbc,0xba,0x78,0x9, 0xbe,0xa0,0xff,0x68,0x4, 0x7c,0xed,0x80,0x6, +0xb, 0xd0,0xbc,0xcd,0x38,0xdb,0xbe,0xe0,0x2, 0x40,0x2, 0x7c,0xef,0x7e,0x90,0x5, +0xac,0x9e,0x49,0x34,0x0, 0x40,0xbe,0x34,0x32,0x0, 0x50,0xa, 0x49,0x24,0x0, 0x74, +0xbe,0x24,0x32,0x0, 0x40,0x12,0x49,0x24,0x0, 0x3e,0x74,0x5, 0xac,0xbf,0x59,0x25, +0x0, 0x72,0x59,0x35,0x0, 0x74,0x80,0x7, 0x7c,0xbf,0x7c,0x7e,0x12,0x9, 0x14,0xb, +0xf0,0xbc,0xcf,0x38,0x96,0x6c,0xff,0x74,0x5, 0xac,0xbf,0x49,0x45,0x0, 0x72,0x12, +0x0, 0xe, 0x1e,0x44,0x59,0x45,0x0, 0x3e,0x49,0x45,0x0, 0x74,0x12,0x0, 0xe, 0x1e, +0x44,0x59,0x45,0x0, 0x40,0x9, 0x75,0x0, 0x76,0x19,0x75,0x0, 0x42,0xb, 0xf0,0xbe, +0xf0,0x2, 0x78,0xd3,0xbe,0xc0,0x0, 0x38,0x2, 0xc1,0xd9,0x6c,0xff,0x12,0x0, 0x36, +0x59,0x45,0x0, 0x68,0x49,0x45,0x0, 0x40,0x59,0x45,0x0, 0x6a,0x9, 0x75,0x0, 0x42, +0x19,0x75,0x0, 0x6c,0xa, 0x37,0xbe,0x34,0x0, 0x2, 0x50,0xf, 0x49,0x25,0x0, 0x6a, +0xbe,0x24,0x3, 0x20,0x40,0x5, 0x6d,0x22,0x7a,0x25,0x2e,0x7e,0x15,0x2e,0x4d,0x11, +0x78,0x41,0xbe,0xf0,0x1, 0x78,0x7, 0x7d,0x21,0xb, 0x24,0x7a,0x25,0x2e,0xbe,0x34, +0x0, 0x2, 0x40,0x2, 0xc1,0xd0,0x6c,0xee,0x7e,0x50,0x5, 0xac,0x5f,0x49,0x42,0x0, +0x68,0x7e,0xf4,0x0, 0xc, 0xad,0xf3,0x7e,0x10,0x4, 0xac,0x1e,0x2d,0xf, 0x59,0x40, +0x4, 0xeb,0x49,0x22,0x0, 0x6a,0x59,0x20,0x4, 0xed,0xb, 0xe0,0xbe,0xe0,0x3, 0x78, +0xd7,0xc1,0xd0,0xbe,0x34,0x0, 0x2, 0x50,0x7a,0x74,0x5, 0xac,0xbf,0x49,0x25,0x0, +0x68,0x7e,0x4, 0x0, 0x3, 0x8d,0x10,0x7d,0x50,0x3e,0x54,0x3e,0x54,0x7e,0x14,0x0, +0xc, 0xad,0x13,0x2d,0x15,0x59,0x21,0x4, 0xeb,0x74,0x5, 0xac,0xbf,0x49,0x25,0x0, +0x6a,0x59,0x21,0x4, 0xed,0x6d,0x22,0x74,0x5, 0xac,0xbf,0x59,0x25,0x0, 0x68,0x6c, +0xee,0x12,0x51,0x57,0x49,0x2, 0x4, 0xeb,0x7e,0x50,0x5, 0xac,0x5f,0x2e,0x24,0x0, +0x68,0x12,0x7, 0x6b,0x78,0xeb,0x12,0x7, 0x57,0x1b,0x28,0x10,0x6d,0x22,0x74,0x5, +0xac,0xbf,0x59,0x25,0x0, 0x6a,0x6c,0xee,0x12,0x51,0x57,0x49,0x2, 0x4, 0xed,0x7e, +0x50,0x5, 0xac,0x5f,0x2e,0x24,0x0, 0x6a,0x12,0x7, 0x6b,0x78,0xeb,0x12,0x7, 0x57, +0x1b,0x28,0x10,0xbe,0xf0,0x1, 0x78,0x8, 0x7e,0x25,0x2e,0xb, 0x24,0x7a,0x25,0x2e, +0xb, 0xf0,0xbe,0xf0,0x2, 0x68,0x2, 0xa1,0xcd,0xd2,0x0, 0x6c,0xff,0x12,0x0, 0x1e, +0xbe,0x70,0x2, 0x50,0x10,0xa, 0x37,0x9, 0xb3,0x0, 0xc0,0xb4,0x1, 0x7, 0x6d,0x33, +0x7a,0x35,0x2e,0x80,0x7, 0xb, 0xf0,0xbe,0xf0,0x2, 0x40,0xe1,0xda,0x3b,0x22,0x7d, +0x14,0x1a,0x2, 0x1a,0x0, 0x7f,0x17,0x9f,0x10,0x7d,0x1d,0x1a,0x2, 0x1a,0x0, 0x2, +0x0, 0x78,0x12,0x7, 0x79,0x78,0x32,0x20,0xb, 0x2f,0x6c,0xaa,0x7e,0x44,0x7f,0xff, +0x7e,0x70,0x4, 0xac,0x7a,0x59,0x43,0x4, 0xdf,0x59,0x43,0x4, 0xe1,0x6d,0x33,0x7e, +0x50,0x2, 0xac,0x5a,0x59,0x32,0x4, 0xe7,0x7e,0x34,0x1, 0x0, 0x59,0x32,0x4, 0xdb, +0xb, 0xa0,0xbe,0xa0,0x2, 0x78,0xd5,0xd2,0xb, 0x22,0x74,0x5, 0xac,0xbe,0x49,0x35, +0x0, 0x40,0x9d,0x32,0x2, 0x2, 0xde,0x7e,0x4, 0x0, 0x3, 0xb, 0x28,0x10,0x8d,0x10, +0x22,0x7e,0x30,0x5, 0xac,0x3d,0x2e,0x14,0x2, 0xae,0x22,0xb, 0x28,0x10,0x2d,0x10, +0x1b,0x28,0x10,0xb, 0xe0,0xbe,0xe0,0x3, 0x22,0x7e,0xb3,0x0, 0x54,0x54,0xf, 0x22, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xca,0x3b,0x7f,0x71,0x7c,0xab,0x7e,0x30,0x2, 0x7e,0xe0,0x3, 0x7e,0x94,0x0, 0x87, +0x7a,0x95,0x8, 0x7e,0x24,0x0, 0x8a,0x7a,0x25,0xa, 0x7d,0x62,0x7e,0xb4,0x0, 0x8c, +0x7d,0x8b,0x7d,0x42,0x7d,0xa2,0x7e,0x37,0x1, 0xfc,0x7d,0xd3,0x12,0x45,0xcf,0x7d, +0xc3,0xa, 0x3a,0x12,0xb, 0xae,0x7c,0xb5,0x7c,0xfb,0xbe,0xf0,0x8, 0x50,0x4e,0x1a, +0x13,0x12,0xb, 0x5e,0x48,0x2e,0xbe,0x78,0x1, 0xa, 0x48,0x2, 0x80,0x3, 0x7e,0x45, +0xa, 0x12,0x6, 0xff,0x7d,0x54,0x12,0xb, 0x6f,0xbe,0x78,0x1, 0x5e,0x18,0x2, 0x1, +0xe1,0x7f,0x17,0x9e,0x18,0x1, 0x5e,0x12,0xb, 0x98,0x7f,0x71,0x2e,0x18,0x1, 0x5e, +0x7f,0x71,0x80,0x6d,0xbe,0x78,0x0, 0x89,0x18,0x9, 0x7d,0x19,0x12,0x7, 0x1, 0x7d, +0x59,0x80,0x27,0x7e,0x45,0x8, 0x12,0x6, 0xff,0x7d,0x54,0x80,0x1d,0x1a,0x1e,0x12, +0xb, 0x5e,0x48,0x1b,0xbe,0x78,0x1, 0xc, 0x48,0x9, 0x7d,0x1b,0x12,0x7, 0x1, 0x7d, +0x5b,0x80,0x7, 0x7d,0x18,0x12,0x7, 0x1, 0x7d,0x58,0x12,0xb, 0x6f,0x80,0x32,0xbe, +0x78,0x0, 0x87,0x18,0x9, 0x7d,0x1a,0x12,0x7, 0x1, 0x7d,0x5a,0x80,0x7, 0x7d,0x16, +0x12,0x7, 0x1, 0x7d,0x56,0x12,0xb, 0x6f,0xbe,0x78,0x0, 0x32,0x58,0x13,0x7e,0x58, +0x0, 0x32,0x7f,0x15,0x9f,0x17,0x12,0xb, 0x98,0x7f,0x71,0x7f,0x15,0x9f,0x17,0x7f, +0x71,0xbe,0x78,0x0, 0x0, 0x58,0x6, 0x9f,0x11,0x7f,0x71,0x80,0x11,0x7d,0x1d,0x12, +0xb, 0x68,0x48,0xa, 0x7d,0x3d,0x1a,0x26,0x1a,0x24,0x1b,0x1c,0x7f,0x71,0xbe,0xf0, +0x8, 0x40,0xc, 0x7d,0x1d,0x1a,0x2, 0x1a,0x0, 0x7f,0x17,0x2f,0x10,0x7f,0x71,0x7f, +0x17,0xda,0x3b,0x22,0xca,0xd8,0xca,0x79,0x7c,0xe7,0x7c,0xdb,0x74,0x5, 0xac,0xbd, +0x49,0x25,0x0, 0x74,0x12,0x7, 0x4a,0x7d,0x3, 0x12,0xb, 0x83,0x2d,0x3, 0x74,0x5, +0xac,0xbd,0x9, 0xf5,0x0, 0x76,0xbe,0xf0,0x2, 0x40,0x2, 0x6c,0xff,0x74,0x4, 0xac, +0xbf,0x49,0x25,0x4, 0xe1,0x12,0x7, 0x4a,0x7d,0xd3,0x74,0x4, 0xac,0xbf,0x49,0x25, +0x4, 0xdf,0x12,0xb, 0x8b,0x2d,0xd3,0x7e,0x17,0x0, 0x65,0xbd,0x1d,0x38,0x6, 0x7e, +0xf4,0x1, 0x0, 0x80,0x19,0x7d,0x30,0x6d,0x22,0x7c,0x56,0x7c,0x67,0x6c,0x77,0x12, +0x0, 0x92,0x7d,0xf3,0xbe,0xf4,0x0, 0x10,0x50,0x4, 0x7e,0xf4,0x0, 0x10,0xbe,0xf4, +0x1, 0x0, 0x28,0x4, 0x7e,0xf4,0x1, 0x0, 0x74,0x2, 0xac,0xbf,0x49,0x45,0x4, 0xe7, +0xbd,0x4d,0x28,0x6, 0x49,0xf5,0x4, 0xdb,0x80,0x4, 0x59,0xf5,0x4, 0xdb,0x59,0xd5, +0x4, 0xe7,0x74,0x5, 0xac,0xbd,0x49,0xe5,0x0, 0x3e,0x1e,0xe4,0x1e,0xe4,0x1e,0xe4, +0x1e,0xe4,0xbe,0xe4,0x0, 0x14,0x28,0x71,0xbe,0xe4,0x1, 0xcc,0x50,0x6b,0xa, 0xed, +0x9, 0x3e,0x0, 0x3a,0xa, 0x33,0x12,0xb, 0xae,0x7c,0xa5,0xa, 0x33,0x12,0x2d,0x75, +0x7c,0x35,0x7e,0x90,0x4, 0xac,0x9a,0x49,0x34,0x1, 0x5e,0x49,0x24,0x1, 0x5c,0x4c, +0x33,0x68,0xa, 0x49,0xd4,0x1, 0x5a,0x49,0xc4,0x1, 0x58,0x2f,0x16,0xbe,0x30,0x7, +0x68,0xa, 0x49,0x14,0x1, 0x62,0x49,0x4, 0x1, 0x60,0x2f,0x10,0x7e,0x8, 0x1, 0xf4, +0x12,0x0, 0xe5,0x7d,0xe3,0xbe,0xe4,0x0, 0xb4,0x28,0x6, 0x7e,0xe4,0x0, 0xb4,0x80, +0xe, 0xbe,0xe4,0x0, 0x3c,0x28,0x6, 0x9e,0xe4,0x0, 0x14,0x80,0x2, 0x6d,0xee,0xbd, +0xef,0x50,0x4, 0x9d,0xfe,0x80,0x2, 0x6d,0xff,0x12,0xb, 0x83,0x12,0xb, 0xa1,0x7e, +0x90,0x5, 0xac,0x9d,0x49,0xe4,0x0, 0x72,0x74,0x5, 0xac,0xbe,0x49,0xc5,0x0, 0x3e, +0xbd,0xce,0x28,0xf, 0x7d,0x24,0x2e,0x24,0x0, 0x72,0x7d,0x3e,0x2d,0x3d,0x1b,0x28, +0x30,0x80,0xb, 0x7d,0xc4,0x2e,0xc4,0x0, 0x72,0x9d,0xed,0x1b,0xc8,0xe0,0x49,0x24, +0x0, 0x74,0x12,0x7, 0x4e,0x12,0xb, 0xa1,0x7e,0x30,0x5, 0xac,0x3d,0x49,0x21,0x0, +0x74,0x7e,0x70,0x5, 0xac,0x7e,0x49,0xe3,0x0, 0x40,0xbd,0xe2,0x28,0xf, 0x7d,0xc1, +0x2e,0xc4,0x0, 0x74,0x7d,0x2, 0x2d,0xd, 0x1b,0xc8,0x0, 0x80,0x9, 0x2e,0x14,0x0, +0x74,0x9d,0x2d,0x1b,0x18,0x20,0x49,0x43,0x0, 0x3e,0x74,0x4, 0xac,0xbf,0x59,0x45, +0x4, 0xdf,0x59,0xe5,0x4, 0xe1,0xda,0x79,0xda,0xd8,0x22,0x7d,0xf3,0xbe,0xf4,0x0, +0x47,0x38,0x2b,0x7e,0x54,0x0, 0x47,0x9d,0x5f,0x6d,0x44,0x7e,0x14,0x1, 0x80,0x12, +0xb, 0x50,0xbe,0x28,0x0, 0x18,0x28,0x4, 0x9f,0x22,0x80,0x8, 0x7e,0x18,0x0, 0x18, +0x9f,0x12,0x7f,0x21,0xbe,0x28,0x0, 0x0, 0x50,0x6d,0x9f,0x22,0x80,0x69,0xbe,0xf4, +0x1, 0xb8,0x40,0x29,0x7d,0x5f,0x9e,0x54,0x1, 0xb8,0x6d,0x44,0x7e,0x14,0x1, 0x80, +0x12,0xb, 0x50,0xbe,0x28,0x0, 0x18,0x40,0x4, 0x7e,0x28,0x0, 0x17,0xbe,0x28,0x0, +0x18,0x28,0x4, 0x7e,0x28,0x0, 0x18,0x2e,0x28,0x1, 0xc8,0x80,0x3a,0xbe,0xf4,0x0, +0xff,0x50,0x1d,0x7e,0x54,0x0, 0xff,0x9d,0x5f,0x12,0xb, 0x4a,0x7e,0x18,0x0, 0xf0, +0x9f,0x12,0x7f,0x21,0xbe,0x28,0x0, 0x18,0x50,0x1d,0x7e,0x28,0x0, 0x18,0x80,0x17, +0x7d,0x5f,0x9e,0x54,0x0, 0xff,0x12,0xb, 0x4a,0x2e,0x28,0x0, 0xf0,0xbe,0x28,0x1, +0xc8,0x28,0x4, 0x7e,0x28,0x1, 0xc8,0x7d,0x35,0x22,0x6d,0x44,0x7e,0x14,0x1, 0x1f, +0x7f,0x12,0x12,0x0, 0x89,0x7f,0x21,0x7c,0xba,0x7c,0xa9,0xa, 0x48,0x22,0x1a,0x2, +0x7f,0x17,0x2f,0x10,0x7f,0x71,0x7d,0x1c,0x1a,0x2, 0x1a,0x0, 0xbf,0x70,0x22,0x3e, +0x54,0x1a,0x4a,0x1a,0x48,0x7d,0x1d,0x1a,0x2, 0x1a,0x0, 0x9f,0x2, 0x12,0x0, 0xe5, +0x7f,0x71,0x22,0x74,0x5, 0xac,0xbd,0x49,0x25,0x0, 0x72,0x74,0x5, 0xac,0xbe,0x49, +0x35,0x0, 0x3e,0x9d,0x32,0x2, 0x2, 0xde,0x7f,0x71,0x7e,0x8, 0x0, 0x2, 0x2, 0x0, +0xe5,0xad,0x3f,0x7c,0x76,0x7c,0x65,0xa, 0x24,0x7d,0xd3,0x22,0xa, 0x3b,0x7e,0x24, +0x0, 0x10,0x2, 0x0, 0x46,0xca,0xd8,0xca,0x79,0x12,0x7, 0x79,0x7c,0xb, 0x78,0x2f, +0x6c,0x11,0x6d,0x11,0x74,0x2, 0xac,0xb1,0x59,0x15,0x5, 0x32,0x7e,0xa0,0xff,0x7e, +0x30,0x5, 0xac,0x31,0x19,0xa1,0x5, 0x2c,0x7e,0xb3,0x5, 0x38,0x70,0x3, 0xe4,0x80, +0x2, 0x74,0x2, 0xa, 0x11,0x19,0xb1,0x5, 0x36,0xb, 0x10,0xa5,0xb9,0x2, 0xd3,0x6c, +0x11,0x81,0xfe,0x74,0x5, 0xac,0xb1,0x9, 0xf5,0x0, 0x42,0xbe,0xf0,0x2, 0x40,0x2, +0x81,0xfc,0xa, 0x1f,0x9, 0xb1,0x0, 0xc0,0xbe,0xb0,0x1, 0x78,0x2, 0x81,0xfc,0x6c, +0xee,0x74,0x5, 0xac,0xbe,0x9, 0xd5,0x5, 0x2c,0xbc,0xdf,0x68,0x2, 0x81,0xf3,0x49, +0x25,0x5, 0x2a,0x74,0x5, 0xac,0xb1,0x12,0x7, 0x4e,0x7d,0x43,0x74,0x5, 0xac,0xbe, +0x49,0x25,0x5, 0x28,0x74,0x5, 0xac,0xb1,0x12,0xb, 0x8f,0x2d,0x43,0xa, 0x1d,0x9, +0xa1,0x5, 0x36,0xbe,0xa0,0x0, 0x28,0x17,0x7e,0x30,0x2, 0xac,0x3d,0x59,0x41,0x5, +0x32,0xa, 0x1d,0x2e,0x14,0x5, 0x36,0x7c,0xba,0x14,0x7a,0x19,0xb0,0x81,0xfc,0x7e, +0x30,0x2, 0xac,0x3d,0x49,0x31,0x5, 0x32,0xbe,0x34,0x0, 0x32,0x28,0x8, 0xbe,0x44, +0x0, 0x32,0x28,0x2, 0x80,0x10,0x7d,0x23,0x2e,0x24,0x0, 0x32,0xbd,0x24,0x50,0x12, +0xbe,0x34,0x0, 0x32,0x28,0xc, 0x59,0x41,0x5, 0x32,0x74,0x1, 0x7a,0xb3,0x5, 0x38, +0x80,0x6a,0xbe,0x44,0x0, 0xc8,0x28,0x51,0xe4,0x7a,0xb3,0x5, 0x38,0xa, 0x1f,0x9, +0xb1,0x0, 0xc0,0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0xa, 0x1f,0x19,0xb1,0x0, +0xc0,0x7e,0x70,0x5, 0xac,0x71,0x2e,0x34,0x0, 0x3e,0x7e,0x14,0x2, 0xae,0x74,0x5, +0x12,0x1, 0x19,0xbe,0x0, 0x0, 0x28,0x21,0x1b,0x0, 0x7e,0x70,0x5, 0xac,0x70,0x2e, +0x34,0x0, 0x3e,0x7e,0x30,0x5, 0xac,0x31,0x12,0xd, 0x34,0x7e,0x34,0x2, 0xae,0x7e, +0x30,0x5, 0xac,0x30,0x12,0xd, 0x34,0x1b,0x10,0x74,0x2, 0xac,0xbd,0x59,0x45,0x5, +0x32,0x80,0x9, 0xb, 0xe0,0xbe,0xe0,0x2, 0x50,0x2, 0x81,0x11,0xb, 0x10,0x12,0x4a, +0xb2,0x54,0xf, 0xa, 0x5b,0xa, 0x11,0xbd,0x15,0x58,0x2, 0x61,0xf3,0x7c,0x60,0x12, +0xd, 0x45,0x6c,0x11,0x7e,0x30,0x5, 0xac,0x31,0x7d,0x31,0x2e,0x34,0x0, 0x3e,0x2e, +0x14,0x5, 0x28,0x74,0x5, 0x12,0x1, 0x19,0xb, 0x10,0xbe,0x10,0x2, 0x40,0xe5,0xda, +0x79,0xda,0xd8,0x22,0x2e,0x14,0x0, 0x3e,0x74,0x5, 0x2, 0x1, 0x19,0x7e,0x73,0x0, +0x54,0x7c,0x67,0xb, 0x60,0x5e,0x60,0xf, 0x5e,0x70,0xf0,0x4c,0x76,0x7a,0x73,0x0, +0x54,0x22,0x7d,0x13,0x1a,0x2, 0x1a,0x0, 0x7e,0x2f,0x1, 0x4c,0xbf,0x2, 0x18,0x9, +0x12,0xd, 0x3d,0x7e,0x34,0x0, 0x50,0x80,0x20,0x7e,0x2f,0x1, 0x50,0xbf,0x2, 0x18, +0x9, 0x12,0xd, 0x3d,0x7e,0x34,0x0, 0xf0,0x80,0xf, 0x7e,0x1f,0x1, 0x54,0xbf,0x1, +0x18,0x13,0x12,0xd, 0x3d,0x7e,0x34,0x1, 0x90,0x7a,0x37,0x0, 0x3e,0x7e,0x34,0x3, +0x84,0x7a,0x37,0x0, 0x40,0x22,0x7e,0xb3,0x2, 0x54,0x20,0xe1,0x45,0x7e,0xa3,0x3, +0xb1,0x4c,0xaa,0x68,0x2a,0xbe,0xa0,0xff,0x68,0x25,0x74,0x28,0xa4,0x7d,0xf5,0xbe, +0xf4,0x9, 0x60,0x58,0x4, 0x7e,0xf4,0x9, 0x60,0x12,0x51,0x9a,0xb4,0x1, 0x14,0x7e, +0xe7,0x0, 0x6a,0xbe,0xe4,0x3, 0x84,0x78,0xa, 0x7e,0xf4,0x8, 0x98,0x80,0x4, 0x7e, +0xf4,0x9, 0x60,0x7d,0x3f,0x12,0xd, 0xe3,0x12,0xf, 0x92,0x40,0x5, 0x7d,0x3f,0x2, +0xd, 0x52,0x22,0x7d,0x3, 0x7d,0x50,0x1a,0x4a,0x1a,0x48,0x7e,0x1f,0x1, 0x4c,0xbf, +0x21,0x18,0xb, 0x7e,0x34,0x2, 0x10,0x74,0x20,0x6c,0x55,0x12,0xe, 0x31,0x7d,0x50, +0x1a,0x4a,0x1a,0x48,0x7e,0x1f,0x1, 0x50,0xbf,0x21,0x18,0xb, 0x7e,0x34,0x2, 0x10, +0x74,0x21,0x6c,0x55,0x12,0xe, 0x31,0x7d,0x10,0x1a,0x2, 0x1a,0x0, 0x7e,0x1f,0x1, +0x54,0xbf,0x1, 0x18,0xb, 0x7e,0x34,0x2, 0x10,0x74,0x22,0x6c,0x55,0x2, 0xe, 0x31, +0x22,0x7d,0x13,0xa, 0x3b,0x2d,0x31,0x7a,0x39,0x50,0x22,0x12,0xf, 0x69,0x12,0x26, +0xcd,0x7a,0x37,0x2, 0xac,0x12,0x3b,0xa3,0xe4,0x12,0x20,0x76,0x12,0x3f,0xf5,0x12, +0x37,0x39,0x12,0x3d,0xb6,0x12,0x3c,0x77,0x12,0x25,0x37,0x12,0x45,0xdf,0x7e,0xb3, +0x3, 0xc4,0xb4,0x1, 0x2, 0x80,0x2, 0xe1,0x68,0x7e,0xb3,0x2, 0x3c,0x60,0x28,0xb4, +0x1, 0xb, 0x12,0x25,0xee,0x74,0x3c,0x7a,0xb3,0x3, 0xe8,0x80,0x3, 0x12,0xf, 0xfc, +0x7e,0x34,0x4, 0xd, 0x7e,0x24,0x0, 0x24,0xe4,0x12,0x2, 0xee,0x7e,0x34,0x3, 0xe9, +0x7e,0x24,0x0, 0x24,0x12,0x2, 0xee,0x12,0x26,0xfa,0x12,0x3c,0x5e,0x12,0x27,0x83, +0x44,0x40,0x12,0x10,0x65,0x12,0x17,0xfd,0x12,0x20,0x1e,0x12,0x1e,0x33,0x12,0x13, +0xc0,0x12,0xf, 0x7f,0x7e,0xb3,0x2, 0x54,0x30,0xe1,0x7, 0x12,0xf, 0xbf,0x7a,0xb3, +0x0, 0x54,0x12,0x40,0x7, 0x12,0x7, 0x79,0x12,0x38,0xb, 0x7e,0x34,0x0, 0xcc,0x7e, +0x24,0x1, 0xa8,0x7e,0xb3,0x2, 0x58,0x14,0x12,0x3e,0x31,0x7e,0xb3,0x3, 0xe8,0x60, +0x5, 0x14,0x7a,0xb3,0x3, 0xe8,0x7e,0xb3,0x3, 0xe8,0x60,0x9, 0x74,0xa, 0x12,0xf, +0x76,0x74,0x1e,0x80,0x5, 0x12,0xf, 0x74,0x74,0xf, 0x7a,0xb3,0x2, 0x36,0x12,0x1e, +0x9e,0x12,0x17,0xd1,0x12,0x27,0xb2,0x12,0x0, 0x6, 0x12,0x18,0x6d,0x7e,0xb3,0x2, +0x55,0x30,0xe0,0x21,0x7e,0xa3,0x0, 0x54,0x7c,0xba,0x54,0xf, 0xbe,0xb0,0x2, 0x40, +0x14,0x7c,0xba,0xc4,0x54,0xf, 0xbe,0xb0,0x2, 0x50,0xa, 0x7c,0xba,0x54,0xf0,0x44, +0x1, 0x7a,0xb3,0x0, 0x54,0x12,0x49,0xff,0x12,0xf, 0xc6,0x12,0x41,0xf4,0x12,0x2b, +0xe2,0x12,0xd, 0x96,0x12,0x4a,0xb9,0x12,0x46,0xb7,0x12,0xb, 0xb5,0x12,0x4d,0xab, +0x12,0x3, 0xc6,0x12,0x49,0xb, 0x7e,0xb3,0x0, 0x62,0x12,0x35,0xdf,0x12,0x38,0x26, +0x12,0x26,0x55,0x12,0x4f,0xf9,0xc1,0x5e,0x22,0x6d,0x33,0x7a,0x37,0x0, 0x7f,0x7e, +0x34,0x7, 0xd0,0x22,0x74,0x5, 0x7a,0xb3,0x2, 0x35,0x7a,0xb3,0x2, 0x34,0x22,0x12, +0x7, 0x79,0x68,0xd, 0x7e,0x34,0x2, 0x10,0x7e,0xb3,0x0, 0x3a,0x6c,0x55,0x2, 0xe, +0x31,0x22,0x7e,0xf, 0x1, 0x50,0x7e,0x1f,0x1, 0x4c,0x2f,0x10,0x7e,0xf, 0x1, 0x54, +0x2f,0x1, 0x7e,0x1f,0x1, 0xa4,0xbf,0x10,0x58,0xc, 0x20,0xd, 0x9, 0x12,0xf, 0xbf, +0x7a,0xb3,0x0, 0x54,0xc3,0x22,0x12,0x7, 0x79,0x68,0x2, 0xd2,0xd, 0xd3,0x22,0x7e, +0xb3,0x0, 0x54,0x54,0xf0,0x22,0xca,0x79,0x7e,0xf3,0x0, 0x54,0x5e,0xf0,0xf, 0xbe, +0xf0,0x0, 0x28,0x25,0x6c,0xee,0x80,0x1d,0x1a,0x2e,0x7e,0x34,0x0, 0x5, 0xad,0x32, +0x49,0x33,0x0, 0x3e,0x12,0xa, 0xab,0x1a,0xe, 0x7e,0x14,0x0, 0x5, 0xad,0x10,0x59, +0x31,0x0, 0x3e,0xb, 0xe0,0xbc,0xfe,0x18,0xdf,0xda,0x79,0x22,0xca,0xf8,0x7e,0xa3, +0x2, 0xab,0x7c,0xba,0x23,0x23,0x7c,0xfb,0x5e,0xf0,0x1, 0x7c,0xba,0x54,0xbf,0x12, +0x10,0x65,0x6c,0xaa,0x80,0x2d,0x7e,0xb3,0x2, 0x3c,0xb4,0x2, 0x8, 0xa, 0x3a,0x9, +0xb3,0x3, 0xe9,0x60,0x1c,0x7e,0x90,0x4, 0xac,0x9a,0x49,0x34,0x0, 0xce,0x7e,0x50, +0x2, 0xac,0x5a,0x59,0x32,0x1, 0xa8,0x9f,0x11,0x59,0x34,0x0, 0xce,0x59,0x24,0x0, +0xcc,0xb, 0xa0,0x12,0x1f,0x3f,0x38,0xce,0x7c,0x6f,0x5e,0x60,0x1, 0x7c,0xb6,0x3, +0x3, 0x54,0xc0,0x7c,0x6b,0x7e,0x73,0x2, 0xab,0x5e,0x70,0xbf,0x4c,0x76,0x7a,0x73, +0x2, 0xab,0xda,0xf8,0x22,0x7a,0xb3,0x2, 0xab,0xca,0x3b,0x12,0x0, 0x2e,0x70,0x17, +0xf5,0x8, 0x80,0xc, 0x7e,0x18,0x30,0x39,0x12,0x1f,0xf1,0x12,0x51,0x7f,0x5, 0x8, +0x12,0x13,0x90,0x38,0xef,0x61,0x8d,0x7e,0xb3,0x2, 0xa3,0x30,0xe1,0x5, 0x75,0xd, +0x2, 0x80,0x3, 0x75,0xd, 0x1, 0x7e,0xa3,0x2, 0xab,0x7c,0xba,0x30,0xe7,0xe, 0x7e, +0xb3,0x2, 0x54,0x30,0xe0,0x7, 0x7e,0x35,0x35,0x4d,0x33,0x78,0xe, 0x7e,0xb3,0x2, +0x54,0x20,0xe0,0x2, 0x41,0x2a,0x20,0xe2,0x2, 0x41,0x2a,0x7c,0xba,0x30,0xe7,0x8, +0x7e,0xb3,0x2, 0xe, 0xf5,0xe, 0x80,0x6, 0x7e,0xb3,0x2, 0xf, 0xf5,0xe, 0x7e,0x35, +0x35,0xbe,0x34,0x0, 0x0, 0x28,0x5, 0x1b,0x34,0x7a,0x35,0x35,0x7e,0xb3,0x2, 0x54, +0x30,0xe5,0xb, 0x80,0x4, 0xe4,0x12,0x17,0x56,0x12,0x13,0xb9,0x50,0xf7,0x53,0xe1, +0xfd,0x43,0xe1,0x2, 0x53,0xe3,0x1f,0x12,0x51,0xf, 0x75,0x9, 0x0, 0x21,0xd3,0x75, +0xa, 0x0, 0x80,0x58,0xe5,0xa, 0x70,0xc, 0x53,0xe7,0xbf,0x7e,0x34,0x2, 0xf6,0x12, +0x51,0x13,0x80,0x3, 0x43,0xe7,0x40,0x7e,0xb3,0x2, 0xa3,0x54,0x1, 0x6c,0x77,0x12, +0x45,0xf4,0x80,0x4, 0xe4,0x12,0x17,0x56,0x12,0x13,0xb9,0x50,0xf7,0x75,0x8, 0x0, +0x80,0x23,0x12,0x50,0xe9,0x2f,0x31,0x12,0x51,0x24,0x2e,0x14,0x2, 0xf6,0x12,0x13, +0xaa,0x12,0x13,0x98,0x7e,0xb3,0x2, 0xa3,0x20,0xe1,0x8, 0x12,0x13,0xaa,0x2f,0x11, +0x12,0x13,0x9a,0x5, 0x8, 0x12,0x13,0x90,0x38,0xd8,0x5, 0xa, 0xe5,0xd, 0xbe,0xb1, +0xa, 0x38,0xa1,0x75,0x8, 0x0, 0x80,0x64,0x12,0x50,0xda,0x30,0xe6,0x2c,0x12,0x13, +0xb2,0x49,0x35,0x2, 0xf8,0x7a,0x37,0x3, 0x86,0x12,0x51,0x65,0x49,0x25,0x1, 0xa8, +0x1e,0x24,0x1e,0x24,0x9d,0x32,0x7a,0x37,0x3, 0x86,0x7e,0x37,0x1, 0xf2,0xe, 0x34, +0xe, 0x34,0xbe,0x37,0x3, 0x86,0x8, 0x1d,0x80,0x18,0x12,0x13,0xb2,0x49,0x15,0x2, +0xf8,0x49,0x5, 0x2, 0xf6,0x7e,0x37,0x1, 0xf4,0xe, 0x34,0xe, 0x34,0x12,0x1f,0xda, +0x8, 0x3, 0x12,0x51,0xb2,0x12,0x13,0xb2,0x49,0x35,0x2, 0xf8,0x49,0x25,0x2, 0xf6, +0x12,0x17,0xc8,0xbf,0x10,0x8, 0x3, 0x12,0x51,0x7f,0x5, 0x8, 0x12,0x13,0x90,0x38, +0x97,0x5, 0x9, 0xe5,0xe, 0xbe,0xb1,0x9, 0x28,0x2, 0x1, 0xff,0x7e,0xb3,0x2, 0xab, +0x30,0xe7,0x35,0x75,0x8, 0x0, 0x80,0x2b,0x12,0x51,0x24,0x2e,0x14,0x0, 0xcc,0x12, +0x13,0xaa,0x2f,0x11,0x2f,0x11,0x12,0x13,0x9a,0x7e,0xb3,0x2, 0xab,0x30,0xe6,0x11, +0x12,0x51,0x65,0x49,0x55,0x1, 0xa8,0x6d,0x44,0x12,0x13,0xaa,0x9f,0x12,0x12,0x13, +0x9a,0x5, 0x8, 0x12,0x13,0x90,0x38,0xd0,0x53,0xe1,0xfd,0x12,0x25,0xa, 0x53,0xe3, +0x1f,0x12,0x25,0x1b,0x7c,0xb7,0x42,0xe3,0x61,0x8d,0x7e,0xb3,0x2, 0xa3,0x20,0xe0, +0x2, 0x41,0xd0,0x12,0x51,0xf, 0x75,0x9, 0x0, 0x41,0xc7,0x7e,0xb3,0x2, 0x54,0x30, +0xe5,0x5, 0x12,0x13,0xb9,0x50,0x1d,0xe5,0x9, 0x70,0x5, 0x53,0xe7,0xbf,0x80,0x3, +0x43,0xe7,0x40,0x74,0x2, 0x12,0x0, 0x15,0x12,0x51,0x6c,0x12,0x45,0xf4,0x80,0x4, +0xe4,0x12,0x17,0x56,0x12,0x13,0xb9,0x50,0xf7,0xe4,0x12,0x0, 0x15,0x75,0x8, 0x0, +0x80,0x34,0x12,0x50,0xe9,0x2f,0x31,0x12,0x50,0xda,0x30,0xe7,0x1a,0x7e,0xa3,0x2, +0xa3,0x12,0x17,0xf6,0xbe,0xb0,0x3, 0x40,0xe, 0x7c,0xba,0x30,0xe1,0x9, 0x1e,0x74, +0xe, 0x64,0x50,0x3, 0x4e,0xe0,0x80,0x12,0x51,0xc2,0x2e,0x14,0x0, 0xcc,0x12,0x13, +0xaa,0x12,0x13,0x98,0x5, 0x8, 0x12,0x13,0x90,0x38,0xc7,0x7e,0xb3,0x2, 0x54,0x30, +0xe5,0x13,0xe5,0x9, 0xb4,0x1, 0x5, 0x53,0xe7,0xbf,0x80,0x3, 0x43,0xe7,0x40,0x12, +0x51,0x6c,0x12,0x45,0xf4,0x5, 0x9, 0xe5,0xd, 0xbe,0xb1,0x9, 0x28,0x2, 0x41,0x3b, +0x75,0x8, 0x0, 0x61,0x86,0x12,0x50,0xda,0x30,0xe7,0x5e,0x7e,0xa3,0x2, 0xa3,0x7c, +0xba,0x30,0xe1,0x28,0x12,0x17,0xf6,0xbe,0xb0,0x1, 0x38,0x20,0xa, 0xb, 0x7e,0x14, +0x0, 0x2, 0x9d,0x10,0x7e,0x91,0xc, 0x74,0x4, 0xac,0x9b,0x12,0x2d,0x7c,0x7c,0xb3, +0x60,0x5, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x51,0xba,0x80,0x2d,0x7c,0xba,0x20,0xe1, +0x28,0x12,0x17,0xf6,0xbe,0xb0,0x2, 0x38,0x20,0xa, 0x4b,0x7e,0x54,0x0, 0x3, 0x9d, +0x54,0x7c,0xab,0x12,0x51,0xc2,0x2e,0x14,0x0, 0xcc,0x12,0x13,0xaa,0x7c,0xba,0x60, +0x5, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x13,0x9a,0x7e,0xb3,0x2, 0xab,0x30,0xe6,0x2b, +0x12,0x51,0x65,0x49,0x15,0x1, 0xa8,0x6d,0x0, 0x12,0x13,0xb2,0x7d,0x45,0x12,0x2d, +0x7c,0x9f,0x10,0x12,0x51,0xba,0x12,0x17,0xc8,0x7e,0x37,0x1, 0xf2,0x12,0x1d,0xab, +0x58,0x22,0x7e,0xb3,0x2, 0x54,0x30,0xe0,0x1b,0x80,0x16,0x12,0x13,0xb2,0x12,0x17, +0xc8,0x7e,0x37,0x1, 0xf4,0x12,0x1d,0xab,0x58,0xa, 0x7e,0xb3,0x2, 0x54,0x30,0xe0, +0x3, 0x12,0x51,0xb2,0x5, 0x8, 0x12,0x13,0x90,0x28,0x2, 0x41,0xd5,0xda,0x3b,0x22, +0x7e,0x73,0x2, 0x58,0xbe,0x71,0x8, 0x22,0x2f,0x13,0x59,0x31,0x0, 0x2, 0x1b,0x18, +0x20,0x22,0x7e,0x30,0x4, 0xac,0x23,0x2e,0x15,0x2a,0x49,0x31,0x0, 0x2, 0xb, 0x18, +0x20,0x22,0x7e,0xa1,0xc, 0x74,0x4, 0xa4,0x22,0x30,0x9, 0x2, 0xd3,0x22,0xc3,0x22, +0xca,0x3b,0x12,0x0, 0x2e,0x70,0x2, 0xc1,0x1f,0x7e,0xe3,0x2, 0x56,0x7c,0xde,0x1e, +0xd0,0x1e,0xe0,0x1e,0xe0,0x6c,0xcc,0x7e,0xb3,0x2, 0x55,0x54,0xfe,0x7a,0xb3,0x2, +0x55,0x7e,0x17,0x0, 0xbe,0x6d,0x0, 0x7e,0x1f,0x1, 0xa4,0xbf,0x10,0x58,0x2, 0x81, +0xf4,0x6c,0xff,0x81,0xea,0xa, 0x2d,0x7d,0x12,0x1b,0x14,0xa, 0x3f,0xbd,0x31,0xa, +0x4d,0xa, 0x5f,0x18,0x6, 0x2d,0x54,0xf5,0x8, 0x80,0x4, 0x9d,0x54,0xf5,0x8, 0x12, +0x0, 0x46,0x7c,0x75,0x7a,0x73,0x2, 0xb2,0x7e,0x70,0x4, 0xac,0x7f,0x49,0x53,0x0, +0xce,0x49,0x43,0x0, 0xcc,0x7e,0x37,0x0, 0xbe,0x7d,0x13,0x1e,0x14,0x6d,0x0, 0xbf, +0x20,0x58,0x2, 0x81,0xe8,0x7e,0xa3,0x2, 0xb2,0x74,0x4, 0xa4,0x49,0x15,0x1, 0x5e, +0x49,0x5, 0x1, 0x5c,0x6d,0x22,0xbf,0x1, 0x58,0x2, 0x81,0xe8,0x7e,0x31,0x8, 0x74, +0x4, 0xac,0x3b,0x12,0x51,0x91,0x12,0x51,0xca,0x4d,0x22,0x78,0x6, 0x9f,0x11,0x7f, +0x61,0x80,0xf, 0x74,0x4, 0xac,0xbf,0x49,0xd5,0x0, 0xca,0x49,0xc5,0x0, 0xc8,0x12, +0x51,0x88,0x7a,0x1f,0x2, 0xae,0x12,0x51,0xca,0xa, 0x3e,0x1b,0x34,0xbd,0x32,0x78, +0x6, 0x9f,0x44,0x7f,0x74,0x80,0x17,0x74,0x4, 0xac,0xbf,0x49,0xf5,0x0, 0xd2,0x49, +0xe5,0x0, 0xd0,0x12,0x1f,0xf1,0x49,0x95,0x0, 0xd2,0x49,0x85,0x0, 0xd0,0x12,0x16, +0x2d,0xbf,0x16,0x48,0x43,0x12,0x16,0x2d,0xbf,0x17,0x48,0x3c,0x12,0x16,0x2d,0xbf, +0x15,0x48,0x35,0x12,0x16,0x2d,0xbf,0x14,0x48,0x2e,0x12,0x17,0xc4,0x7e,0x1f,0x2, +0xae,0xbf,0x1, 0x48,0x23,0xa, 0x3c,0x19,0xf3,0x0, 0x3a,0xb, 0xc0,0x7e,0x30,0x4, +0xac,0x3f,0x2e,0x14,0x0, 0xcc,0x12,0x13,0xaa,0xb, 0x1c,0x12,0x13,0x9a,0xbe,0xc0, +0x4, 0x40,0x5, 0x7e,0xc0,0x4, 0x80,0xc, 0xb, 0xf0,0x7e,0x73,0x2, 0x56,0xbc,0x7f, +0x28,0x2, 0x61,0xf5,0x7e,0xb3,0x2, 0x54,0x20,0xe6,0x2, 0xc1,0x1, 0x4c,0xcc,0x68, +0x2, 0xc1,0x1, 0x6c,0xff,0xa1,0xfb,0x12,0x16,0x22,0x12,0x51,0x45,0xa, 0x1e,0x12, +0x16,0x26,0x12,0x51,0x91,0x2f,0x51,0x4c,0xff,0x68,0x7, 0x7c,0xbe,0x14,0xbc,0xbf, +0x78,0xa, 0x12,0x51,0x4e,0x7f,0x15,0x12,0x2a,0xb8,0x7f,0x51,0x7e,0x37,0x0, 0xbe, +0x6d,0x22,0xbf,0x51,0x18,0x2, 0xa1,0xf9,0x12,0x16,0x22,0x12,0x51,0x45,0x12,0x26, +0xc6,0x7f,0x1, 0x12,0x44,0x65,0x12,0x16,0x31,0xbf,0x10,0x18,0x2, 0xa1,0xf9,0x12, +0x16,0x22,0x12,0x51,0x45,0x7f,0x1, 0x2f,0x0, 0x2f,0x0, 0x12,0x44,0x65,0x12,0x16, +0x31,0xbf,0x10,0x48,0x2, 0xa1,0xf9,0x4c,0xff,0x78,0x4, 0x9f,0x66,0x80,0x2a,0x12, +0x16,0x22,0x12,0x51,0x88,0xa, 0x1e,0x12,0x16,0x26,0x49,0xd1,0x0, 0xca,0x49,0xc1, +0x0, 0xc8,0x2f,0x61,0x4c,0xff,0x68,0x7, 0x7c,0xbe,0x14,0xbc,0xbf,0x78,0xa, 0x12, +0x51,0x4e,0x7f,0x16,0x12,0x2a,0xb8,0x7f,0x61,0x7c,0xbe,0x14,0xbc,0xbf,0x78,0x4, +0x9f,0x77,0x80,0x2c,0x12,0x16,0x22,0x49,0x31,0x0, 0xd2,0x49,0x21,0x0, 0xd0,0xa, +0x1e,0x12,0x16,0x26,0x49,0xf1,0x0, 0xd2,0x49,0xe1,0x0, 0xd0,0x2f,0x71,0x4c,0xff, +0x68,0x4, 0xbc,0xbf,0x78,0xa, 0x12,0x51,0x4e,0x7f,0x17,0x12,0x2a,0xb8,0x7f,0x71, +0xbf,0x56,0x48,0x25,0xbf,0x57,0x48,0x21,0x7e,0xc0,0x2, 0xa, 0x2f,0xa, 0x3d,0x2d, +0x32,0x7a,0x73,0x0, 0x3a,0xa, 0x3e,0x2d,0x32,0x7a,0x73,0x0, 0x3b,0x7e,0xb3,0x2, +0x55,0x44,0x1, 0x7a,0xb3,0x2, 0x55,0x80,0x8, 0xb, 0xf0,0xbc,0xef,0x28,0x2, 0xa1, +0x7, 0x7c,0x6c,0x5e,0x60,0xf, 0x7e,0x73,0x0, 0x54,0x12,0xd, 0x48,0x7c,0x6c,0x5e, +0x60,0xf, 0x7e,0x73,0x0, 0x55,0x5e,0x70,0xf0,0x4c,0x76,0x7a,0x73,0x0, 0x55,0xda, +0x3b,0x22,0xa, 0xf, 0xa, 0x1d,0x2d,0x10,0x3e,0x14,0x3e,0x14,0x22,0x74,0x4, 0xac, +0xbf,0x49,0x35,0x0, 0xce,0x49,0x25,0x0, 0xcc,0x22,0xca,0x3b,0xc2,0xf, 0x7e,0xb3, +0x2, 0xab,0x54,0x7f,0x7a,0xb3,0x2, 0xab,0x7e,0x67,0x2, 0xac,0x7e,0xb3,0x2, 0x54, +0x30,0xe5,0x10,0x80,0x4, 0xe4,0x12,0x17,0x56,0x12,0x13,0xb9,0x50,0xf7,0xd2,0xf, +0x12,0x3d,0xab,0x53,0xe3,0x1f,0x7e,0x34,0x2, 0xae,0x7e,0x24,0x0, 0x24,0x74,0xff, +0x12,0x2, 0xee,0x6c,0xee,0xe1,0x2, 0x6c,0xff,0x80,0xa, 0xe4,0xa, 0x3f,0x2d,0x36, +0x7a,0x39,0xb0,0xb, 0xf0,0x12,0x17,0xef,0x38,0xf1,0x7e,0x34,0x5, 0x3, 0x7e,0x24, +0x0, 0x24,0x12,0x26,0xdf,0x44,0x4, 0x7a,0xb3,0x2, 0x54,0x6c,0xff,0xa, 0x2f,0x7e, +0x34,0x0, 0x7, 0x9d,0x32,0x7a,0x73,0x5, 0x27,0x12,0x26,0x83,0x12,0x10,0x69,0x12, +0x46,0x3e,0xb, 0xf0,0xbe,0xf0,0x8, 0x78,0xe4,0x12,0x27,0x8e,0x6c,0xff,0x80,0x3b, +0xa, 0x2f,0x9, 0x62,0x2, 0xae,0xa, 0x1f,0x2d,0x16,0x7e,0x19,0x70,0xbc,0x67,0x28, +0x28,0x19,0x72,0x2, 0xae,0x7e,0xb3,0x2, 0x54,0x20,0xe0,0x7, 0x7e,0xb3,0x2, 0xa3, +0x30,0xe1,0x5, 0x12,0x16,0x2d,0x80,0x5, 0x12,0x16,0x2d,0x2f,0x11,0x2f,0x11,0x2f, +0x11,0x74,0x2, 0xac,0xbf,0x59,0x35,0x1, 0xa8,0xb, 0xf0,0x12,0x17,0xef,0x38,0xc0, +0xb, 0xe0,0x7e,0x73,0x2, 0xd, 0xbc,0x7e,0x28,0x2, 0xc1,0x77,0x6c,0xff,0x80,0xd, +0xa, 0x3f,0x9, 0x53,0x2, 0xae,0x2d,0x36,0x7a,0x39,0x50,0xb, 0xf0,0x12,0x17,0xef, +0x38,0xee,0x74,0x3, 0x12,0x0, 0x15,0x12,0x26,0x3c,0x12,0x27,0x83,0x30,0xf, 0x15, +0x7e,0xb3,0x2, 0x54,0x44,0x20,0x7a,0xb3,0x2, 0x54,0x80,0x4, 0xe4,0x12,0x17,0x56, +0x12,0x13,0xb9,0x50,0xf7,0x53,0xe3,0x1f,0x7e,0xb3,0x2, 0xa3,0x12,0x25,0x1d,0x7c, +0xb7,0x42,0xe3,0xda,0x3b,0x22,0x70,0x5, 0x43,0x87,0x1, 0x80,0xe, 0xb4,0x1, 0x5, +0x43,0x87,0x2, 0x80,0x6, 0xb4,0x2, 0x7, 0x43,0x87,0x2, 0x0, 0x0, 0x0, 0x0, 0x22, +0x12,0x2f,0xbf,0x12,0x29,0x37,0x7e,0x23,0x2, 0xc2,0x12,0x13,0xa2,0x7a,0x1f,0x2, +0xc6,0x7e,0x23,0x2, 0xc3,0x12,0x13,0xa2,0x7a,0x1f,0x2, 0xca,0x7e,0x23,0x2, 0xc4, +0x12,0x13,0xa2,0x7a,0x1f,0x2, 0xce,0x7e,0x23,0x2, 0xc5,0x12,0x13,0xa2,0x7a,0x1f, +0x2, 0xd2,0x7e,0x1f,0x2, 0xc6,0x7e,0xa0,0x1, 0x7e,0x90,0x4, 0xac,0x9a,0x49,0x14, +0x2, 0xc8,0x49,0x4, 0x2, 0xc6,0xbf,0x10,0x58,0x2, 0x7f,0x10,0xb, 0xa0,0xbe,0xa0, +0x4, 0x40,0xe6,0x22,0x74,0x4, 0xac,0xbf,0x49,0x15,0x0, 0xce,0x49,0x5, 0x0, 0xcc, +0x22,0x7e,0xa3,0x0, 0x54,0x7c,0xba,0xc4,0x54,0xf, 0x78,0x12,0x7e,0x1f,0x1, 0xa4, +0xbe,0x18,0xc, 0xe4,0x58,0x8, 0x7c,0xba,0x54,0xf0,0x7a,0xb3,0x0, 0x54,0x22,0x7e, +0x73,0x2, 0x58,0xbc,0x7f,0x22,0x7c,0xba,0xc4,0x3, 0x54,0x7, 0x22,0x9f,0x11,0x7a, +0x1f,0x1, 0xa4,0x6c,0xaa,0x9f,0x11,0x7e,0x30,0x4, 0xac,0x3a,0x59,0x31,0x1, 0x5e, +0x59,0x21,0x1, 0x5c,0x49,0xf1,0x0, 0xce,0x49,0xe1,0x0, 0xcc,0xbe,0x78,0x0, 0x32, +0x8, 0x3, 0x12,0x18,0x4d,0x49,0xf1,0x1, 0xe, 0x49,0xe1,0x1, 0xc, 0xbe,0x78,0x0, +0x32,0x8, 0x3, 0x12,0x18,0x4d,0x12,0x18,0x64,0x7e,0x7f,0x1, 0xa4,0xbf,0x17,0x8, +0x4, 0x7a,0x1f,0x1, 0xa4,0xb, 0xa0,0xbe,0xa0,0x10,0x40,0xb9,0x22,0x7d,0x1, 0x2e, +0x4, 0x1, 0x5c,0x49,0x30,0x0, 0x2, 0xb, 0x8, 0x20,0x2f,0x17,0x59,0x30,0x0, 0x2, +0x1b,0x8, 0x20,0x22,0x49,0x31,0x1, 0x5e,0x49,0x21,0x1, 0x5c,0x22,0xca,0x3b,0xe4, +0x6c,0xdd,0xa, 0x3d,0x19,0xb3,0x0, 0x52,0xb, 0xd0,0xbe,0xd0,0x2, 0x78,0xf3,0x6c, +0xdd,0xa1,0x2, 0x12,0x1f,0xa5,0x7c,0xbc,0x84,0x7c,0xca,0x9f,0x11,0x7a,0x1f,0x2, +0xc8,0x7a,0x1f,0x2, 0xcc,0x7a,0x1f,0x2, 0xdc,0x12,0x2d,0x68,0x7a,0x1f,0x2, 0xd0, +0x7e,0x73,0x5, 0x54,0xa, 0xf7,0x6d,0xee,0xa, 0x3c,0x6d,0x22,0x7f,0x7, 0x12,0x0, +0x94,0x7a,0xf, 0x2, 0xb6,0x7f,0x17,0x1b,0x1c,0xbf,0x10,0x68,0xb, 0x12,0x2f,0xd1, +0x49,0x25,0x1, 0x60,0x7a,0x1f,0x2, 0xcc,0x7e,0x1f,0x2, 0xb6,0xbe,0x18,0x0, 0x0, +0x68,0xb, 0x12,0x2f,0xc8,0x49,0x25,0x1, 0x58,0x7a,0x1f,0x2, 0xc8,0x7e,0xb3,0x2, +0x54,0x20,0xe4,0x2, 0x41,0x2d,0x7e,0x37,0x2, 0x4d,0x12,0x1d,0x14,0xbe,0xb3,0x2, +0x58,0x50,0x4, 0x4c,0xcc,0x68,0x41,0x7d,0x23,0xb, 0x24,0x12,0x1f,0x76,0xbe,0xb3, +0x2, 0x58,0x50,0x5, 0x12,0x1d,0x96,0x68,0x2f,0x7d,0x23,0xb, 0x25,0x12,0x1f,0x76, +0xbe,0xb3,0x2, 0x58,0x50,0x8, 0x7e,0x53,0x5, 0x54,0xbc,0x5c,0x68,0x1a,0x2e,0x34, +0x0, 0x3, 0x12,0x1d,0x14,0xbe,0xb3,0x2, 0x58,0x40,0x2, 0x41,0x2d,0x7e,0xb3,0x5, +0x53,0x14,0xbc,0xbc,0x68,0x2, 0x41,0x2d,0x4c,0xcc,0x78,0x4, 0x6c,0xff,0x80,0x17, +0x12,0x1d,0x96,0x78,0x5, 0x7e,0xf0,0x1, 0x80,0xd, 0x12,0x1d,0x1d,0x78,0x5, 0x7e, +0xf0,0x2, 0x80,0x3, 0x7e,0xf0,0x3, 0xa, 0x1f,0x7d,0x1, 0x2e,0x7, 0x2, 0x4d,0x12, +0x1d,0x24,0x7c,0xab,0x74,0x4, 0xa4,0x12,0x16,0x31,0x7a,0x1f,0x2, 0xbe,0x7e,0x57, +0x1, 0xf6,0x1a,0x4a,0x1a,0x48,0xbf,0x21,0x48,0x2, 0x41,0x2d,0x7e,0x1f,0x2, 0xbe, +0x9f,0x12,0x12,0x1f,0x9a,0x1a,0x24,0x7e,0x2f,0x2, 0xbe,0xbf,0x12,0x58,0x4, 0x7a, +0x1f,0x2, 0xbe,0x7e,0x1f,0x2, 0xbe,0x7d,0x1, 0x2e,0x7, 0x2, 0x4f,0x12,0x1d,0x24, +0xca,0xb8,0x2e,0x17,0x2, 0x51,0x12,0x1d,0x9e,0x7c,0x3b,0xda,0xb8,0x12,0x1f,0xcd, +0x58,0x4, 0x7a,0x1f,0x2, 0xbe,0x4c,0xcc,0x68,0x5, 0x12,0x1d,0x1d,0x78,0x38,0x7e, +0xf, 0x2, 0xbe,0x7e,0x1f,0x2, 0xcc,0xbf,0x10,0x58,0x8, 0x9f,0x22,0x7a,0x2f,0x2, +0xcc,0x80,0xa, 0x7d,0x51,0x6d,0x44,0x9f,0x12,0x7a,0x1f,0x2, 0xcc,0x7e,0x1f,0x2, +0xd8,0xbf,0x10,0x58,0x8, 0x9f,0x22,0x7a,0x2f,0x2, 0xd8,0x80,0x40,0x6d,0x0, 0x9f, +0x10,0x7a,0x1f,0x2, 0xd8,0x80,0x36,0x7e,0xf, 0x2, 0xbe,0x7e,0x1f,0x2, 0xc8,0xbf, +0x10,0x58,0x8, 0x9f,0x22,0x7a,0x2f,0x2, 0xc8,0x80,0xa, 0x7d,0x51,0x6d,0x44,0x9f, +0x12,0x7a,0x1f,0x2, 0xc8,0x7e,0x1f,0x2, 0xd4,0xbf,0x10,0x58,0x8, 0x9f,0x22,0x7a, +0x2f,0x2, 0xd4,0x80,0x8, 0x6d,0x0, 0x9f,0x10,0x7a,0x1f,0x2, 0xd4,0x7e,0x93,0x5, +0x54,0xa, 0x29,0xa, 0x3c,0x12,0x45,0xd6,0x1a,0x38,0x7d,0xf3,0x1a,0xe6,0x7f,0x7, +0x1b,0xc, 0x7e,0x5f,0x2, 0xc8,0x7f,0x15,0x12,0x0, 0x78,0x7f,0x41,0x7e,0x6f,0x2, +0xd0,0x7f,0x16,0x7f,0x7, 0x12,0x0, 0x78,0x2f,0x41,0x7f,0x7, 0xb, 0xc, 0x7e,0x7f, +0x2, 0xcc,0x7f,0x17,0x12,0x0, 0x78,0x2f,0x14,0x7a,0x1f,0x2, 0xae,0x7f,0x16,0x2f, +0x15,0x2f,0x17,0x7a,0x1f,0x2, 0xb2,0x7e,0xf, 0x2, 0xb6,0xbe,0x8, 0x0, 0x0, 0x38, +0x2, 0x61,0x4c,0xa, 0x39,0x6d,0x22,0x1b,0x1c,0xbf,0x1, 0x40,0x2, 0x61,0x4c,0xe4, +0x7a,0xb3,0x5, 0x51,0x12,0x1f,0x6f,0x7e,0x1f,0x2, 0xcc,0x7a,0x1d,0x10,0x7a,0xd1, +0x15,0x7e,0x1f,0x2, 0xd0,0x7e,0xf, 0x2, 0xc8,0x7c,0xbc,0x12,0x40,0x9f,0x7c,0xeb, +0x7e,0xa3,0x5, 0x51,0xbe,0xa0,0x0, 0x28,0x50,0xbe,0xe0,0x0, 0x48,0x4b,0x7e,0xb3, +0x5, 0x53,0xbc,0xbe,0x8, 0x43,0x7e,0xb3,0x5, 0x54,0xa, 0x2b,0x1a,0x3e,0x12,0x0, +0x46,0x7c,0x95,0x7a,0x91,0x8, 0x1a,0x1e,0x3e,0x14,0x3e,0x14,0x12,0x18,0x64,0xa, +0x1a,0x6d,0x0, 0x12,0x0, 0x78,0x74,0x7, 0x7f,0x71,0x1e,0xf4,0xe, 0xe4,0x50,0x4, +0x4e,0xf4,0x80,0x0, 0x14,0x78,0xf3,0x7a,0x7f,0x2, 0xdc,0x1a,0x19,0x12,0x1f,0xb0, +0x2f,0x10,0x12,0x1f,0x91,0x2f,0x17,0x80,0x3f,0x7e,0x73,0x5, 0x52,0xbe,0x70,0x0, +0x8, 0x3a,0x7e,0x63,0x5, 0x54,0xa, 0x26,0x1a,0x47,0x7d,0x34,0x12,0x0, 0x46,0x7c, +0x75,0x7a,0x71,0x8, 0x3e,0x44,0x3e,0x44,0x49,0x14,0x1, 0x5e,0x49,0x4, 0x1, 0x5c, +0x7f,0x70,0x1e,0xf4,0xe, 0xe4,0x50,0x4, 0x4e,0xf4,0x80,0x0, 0x1a,0x17,0x12,0x1f, +0xb0,0x9f,0x10,0x12,0x1f,0x91,0x9f,0x17,0x7a,0x1f,0x2, 0xb2,0x7e,0x1f,0x2, 0xae, +0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0x7e,0xf, 0x2, 0xb2,0x12,0x0, 0xe5,0x2e,0x18, +0x0, 0x20,0xbe,0x18,0x0, 0x0, 0x58,0x8, 0x6d,0x11,0x7a,0x17,0x2, 0xc6,0x80,0x4, +0x7a,0x37,0x2, 0xc6,0x12,0x1f,0xa5,0xa, 0x2a,0x1b,0x24,0xa, 0x3c,0xbd,0x32,0x8, +0xc, 0xa, 0x2a,0xa, 0x3c,0x9d,0x32,0x7c,0xb7,0xf5,0x9, 0x80,0x8, 0xa, 0x4a,0xa, +0x5c,0x2d,0x54,0xf5,0x9, 0x7c,0xbc,0x12,0x1d,0x2d,0x7a,0x1f,0x2, 0xb6,0xe5,0x9, +0x12,0x1d,0x2d,0x7a,0x1f,0x2, 0xba,0x12,0x50,0xfc,0x8, 0x5, 0x12,0x51,0x35,0x80, +0x3, 0x12,0x1f,0xe1,0x12,0x50,0xb5,0x7a,0x1f,0x2, 0xc2,0x7e,0xb3,0x2, 0x54,0x20, +0xe3,0x2, 0x81,0xec,0x12,0x7, 0x79,0xb4,0x1, 0x2, 0x80,0x2, 0x81,0xec,0x7e,0x37, +0x2, 0x0, 0x1a,0x26,0x1a,0x24,0x7e,0xf, 0x2, 0xc2,0xbf,0x1, 0x48,0xb, 0x7e,0x37, +0x2, 0x2, 0x12,0x1d,0xab,0x18,0x2, 0x81,0xec,0x12,0x1d,0x1d,0x38,0x12,0xa, 0x7, +0x7e,0x63,0x2, 0x56,0xa, 0x16,0x9d,0x10,0xa, 0x2c,0xbd,0x12,0x8, 0x2, 0x81,0xec, +0xbc,0x7c,0xa, 0x3c,0x28,0x14,0x2e,0x37,0x2, 0x45,0x12,0x1d,0x14,0x12,0x1f,0x7f, +0x12,0x1d,0x14,0xf5,0xa, 0x7a,0xc1,0xb, 0x80,0x1d,0x2e,0x37,0x2, 0x45,0x7e,0xa3, +0x5, 0x53,0xa, 0x2a,0x12,0x1d,0x12,0x12,0x1f,0x7f,0x12,0x1d,0x12,0xf5,0xa, 0xa, +0x4a,0xa, 0x5c,0x9d,0x54,0xf5,0xb, 0x7e,0x73,0x2, 0x58,0xbe,0x71,0xa, 0x38,0x2, +0x81,0xec,0xbc,0x7f,0x38,0x2, 0x81,0xec,0x7e,0xa1,0xa, 0x74,0x4, 0xa4,0x12,0x17, +0xc8,0x12,0x16,0x2d,0x2f,0x10,0x7a,0x1f,0x2, 0xbe,0x7e,0x17,0x1, 0xf6,0x1a,0x2, +0x1a,0x0, 0xbf,0x1, 0x48,0x2, 0x81,0xec,0x7e,0x1f,0x2, 0xbe,0x9f,0x10,0x12,0x1f, +0x9a,0x1a,0x24,0x7e,0xf, 0x2, 0xbe,0xbf,0x10,0x58,0x4, 0x7a,0x1f,0x2, 0xbe,0x7e, +0x1f,0x2, 0xbe,0xe5,0xb, 0xa, 0x1b,0x7d,0x1, 0x2e,0x7, 0x2, 0x49,0x12,0x1d,0x24, +0x54,0x7f,0xca,0xb8,0x2e,0x17,0x2, 0x4b,0x12,0x1d,0x9e,0x7c,0x3b,0xda,0xb8,0x12, +0x1f,0xcd,0x58,0x4, 0x7a,0x1f,0x2, 0xbe,0xe5,0xb, 0xa, 0x3b,0x2e,0x37,0x2, 0x49, +0x12,0x1d,0x14,0x23,0x54,0x1, 0x68,0x7, 0x12,0x1f,0x88,0x2f,0x10,0x80,0x15,0x12, +0x1f,0x88,0xbf,0x10,0x50,0x8, 0x9f,0x0, 0x7a,0xf, 0x2, 0xba,0x80,0xa, 0x7e,0xf, +0x2, 0xbe,0x9f,0x10,0x7a,0x1f,0x2, 0xba,0x12,0x50,0xfc,0x8, 0x5, 0x12,0x51,0x35, +0x80,0x3, 0x12,0x1f,0xe1,0x12,0x50,0xb5,0x7a,0x1f,0x2, 0xc2,0x7e,0x47,0x2, 0xc6, +0x74,0x5, 0xac,0xbd,0x59,0x45,0x0, 0x3e,0x7e,0x1f,0x2, 0xc2,0x59,0x35,0x0, 0x40, +0xb, 0xd0,0x12,0x7, 0x79,0xa, 0x2b,0xa, 0x3d,0xbd,0x32,0x58,0x2, 0x1, 0x83,0xda, +0x3b,0x22,0x9d,0x32,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x22,0x7e,0x73,0x5, +0x54,0xbc,0x7c,0x22,0x7a,0x11,0x82,0x7a,0x1, 0x83,0xe4,0x93,0x22,0x7c,0xab,0x9f, +0x66,0x7f,0x56,0x7e,0x78,0x0, 0x1, 0x7e,0x33,0x5, 0x54,0xa, 0x23,0xa, 0x3a,0x12, +0x0, 0x46,0x7c,0x75,0x4c,0x77,0x68,0xd, 0x7e,0x50,0x4, 0xac,0x5a,0x49,0xb2,0x0, +0xca,0x49,0xa2,0x0, 0xc8,0x7c,0xb3,0x14,0xbc,0xb7,0x68,0xd, 0x7e,0x70,0x4, 0xac, +0x7a,0x49,0xd3,0x0, 0xd2,0x49,0xc3,0x0, 0xd0,0x74,0x4, 0xa4,0x12,0x16,0x31,0x12, +0x1d,0x85,0x2f,0x71,0x7f,0x15,0x12,0x1d,0x85,0x2f,0x71,0x7f,0x16,0x12,0x1d,0x85, +0x2f,0x71,0x7f,0x17,0x22,0x7f,0x1, 0x7e,0x37,0x1, 0xf0,0x12,0x1d,0xab,0x8, 0x3, +0x7f,0x10,0x22,0x9f,0x11,0x22,0x7e,0xb3,0x5, 0x54,0x14,0xbc,0xbc,0x22,0x7a,0x31, +0x82,0x7a,0x21,0x83,0xe4,0x93,0x22,0x6d,0x33,0x9d,0x34,0x1a,0x26,0x1a,0x24,0xbf, +0x1, 0x22,0xca,0xf8,0x7c,0xab,0x7f,0x70,0x7f,0x61,0x6c,0x11,0x6c,0xff,0x7e,0x34, +0x2, 0xae,0x7e,0x24,0x0, 0x40,0xe4,0x12,0x2, 0xee,0x6c,0x0, 0xa5,0xb8,0x8, 0x6, +0xbc,0xa1,0x28,0x2, 0x6c,0x11,0x7e,0x30,0x4, 0xac,0x30,0x12,0x18,0x64,0xbf,0x16, +0x8, 0x11,0x7e,0x30,0x4, 0xac,0x31,0x59,0x31,0x2, 0xb0,0x59,0x21,0x2, 0xae,0xb, +0x10,0x80,0x6, 0xbc,0xa1,0x28,0x2, 0x6c,0x11,0xb, 0x0, 0xa5,0xb8,0x10,0xcd,0xbc, +0xa1,0x38,0x2b,0x7e,0x1f,0x1, 0xa4,0xbf,0x17,0x58,0x23,0x7e,0x34,0x2, 0xae,0xa, +0x2a,0x12,0x2f,0xe4,0x12,0x1f,0xf1,0x49,0x35,0x2, 0xb0,0x49,0x25,0x2, 0xae,0x7f, +0x1, 0x2f,0x0, 0x7e,0x1f,0x2, 0xae,0xbf,0x1, 0x8, 0x3, 0x7e,0xf0,0x1, 0x7c,0xbf, +0xda,0xf8,0x22,0x75,0x8, 0x4, 0x7e,0x18,0x27,0x10,0x7e,0x8, 0x9c,0x40,0x74,0x8, +0x12,0x1d,0xb2,0x70,0x10,0x75,0x8, 0x4, 0x7e,0x18,0x4e,0x20,0x7e,0x8, 0xea,0x60, +0x74,0x6, 0x12,0x1d,0xb2,0x70,0x10,0x75,0x8, 0x4, 0x7e,0x18,0x5, 0xdc,0x7e,0x8, +0x13,0x88,0x74,0x8, 0x12,0x1d,0xb2,0x60,0x10,0x7e,0xb3,0x2, 0x54,0x44,0x2, 0x7a, +0xb3,0x2, 0x54,0xe4,0x7a,0xb3,0x5, 0x59,0x22,0x7e,0xa3,0x2, 0x54,0x7c,0xba,0x30, +0xe1,0x1b,0x7e,0xb3,0x5, 0x59,0x4, 0x7a,0xb3,0x5, 0x59,0xbe,0xb0,0x14,0x40,0xd, +0xe4,0x7a,0xb3,0x5, 0x59,0x7c,0xba,0x54,0xfd,0x7a,0xb3,0x2, 0x54,0x22,0x6c,0xaa, +0x80,0x9, 0x12,0x1f,0x5f,0x70,0x2, 0xe1,0x34,0xb, 0xa0,0x12,0x1f,0x3f,0x38,0xf2, +0x7e,0xb3,0x2, 0x54,0x20,0xe1,0x7d,0x6c,0xaa,0x80,0x74,0x12,0x1f,0x5f,0xb4,0x1, +0x6c,0x7e,0xb3,0x2, 0x56,0xbc,0xba,0x28,0x1f,0x12,0x1f,0x51,0x7e,0xb3,0x2, 0x36, +0x12,0x1f,0x46,0xbf,0x7, 0x8, 0x6, 0x7e,0xb3,0x2, 0x34,0x80,0x1d,0x12,0x1d,0xa7, +0x58,0x4b,0x7e,0xb3,0x2, 0x35,0x80,0x32,0x12,0x1f,0x51,0x7e,0xb3,0x2, 0x39,0x12, +0x1f,0x46,0xbf,0x7, 0x8, 0x1b,0x7e,0xb3,0x2, 0x37,0xa, 0xeb,0x7e,0x50,0x2, 0xac, +0x5a,0x7d,0xf2,0x2e,0xf4,0x1, 0xa8,0xb, 0xf8,0x20,0x2d,0x2e,0x1b,0xf8,0x20,0x80, +0x1c,0x12,0x1d,0xa7,0x58,0x17,0x7e,0xb3,0x2, 0x38,0xa, 0x4b,0x7e,0x50,0x2, 0xac, +0x5a,0x2e,0x24,0x1, 0xa8,0xb, 0x28,0x30,0x9d,0x34,0x1b,0x28,0x30,0xb, 0xa0,0x12, +0x1f,0x3f,0x38,0x87,0x2, 0x1f,0x37,0x12,0x26,0xe8,0x74,0x1, 0x2, 0x2, 0xee,0x7e, +0xb3,0x2, 0x58,0xbc,0xba,0x22,0xa, 0x4b,0x7d,0x24,0x7d,0xf4,0x1a,0x24,0x1a,0xe4, +0x22,0x7e,0x70,0x4, 0xac,0x7a,0x49,0x13,0x0, 0xce,0x49,0x3, 0x0, 0xcc,0x22,0x7e, +0x34,0x2, 0x10,0x7c,0xba,0x7d,0x23,0xa, 0x3b,0x2d,0x32,0x7e,0x39,0xb0,0x22,0x74, +0xff,0x7a,0xb3,0x5, 0x52,0x22,0x7a,0x51,0x82,0x7a,0x41,0x83,0xe4,0x93,0x22,0x7c, +0xfb,0xa, 0x3c,0x2e,0x37,0x2, 0x47,0x22,0x7e,0xf, 0x2, 0xbe,0x7e,0x1f,0x2, 0xba, +0x22,0x7a,0x1f,0x2, 0xae,0x7e,0x1f,0x2, 0xb2,0x22,0x7a,0x1f,0x2, 0xbe,0x7e,0x37, +0x1, 0xf8,0x1a,0x26,0x22,0xa, 0x3d,0x9, 0xc3,0x0, 0x3a,0x7e,0xa3,0x5, 0x53,0x22, +0x1a,0x2, 0x7f,0x17,0x12,0x0, 0x78,0x7f,0x1, 0x7e,0x1f,0x2, 0xae,0x22,0x12,0x4f, +0xb1,0x4c,0x99,0x68,0x7, 0xa, 0x19,0x6d,0x0, 0x2, 0x0, 0xe5,0x22,0x12,0x1f,0xbe, +0x7f,0x1, 0x7a,0xf, 0x2, 0xbe,0x7e,0x37,0x1, 0xfa,0x1a,0x26,0x1a,0x24,0xbf,0x10, +0x22,0x1a,0x0, 0x7e,0x7f,0x2, 0xba,0x7f,0x17,0x12,0x0, 0x78,0x7e,0xf, 0x2, 0xb6, +0x22,0x7e,0xa1,0x8, 0x74,0x4, 0xa4,0x22,0xca,0xf8,0x7c,0xf7,0x7c,0xab,0x7c,0xbf, +0x1e,0xb0,0xa, 0x4b,0xa, 0xa, 0x12,0x20,0x17,0x7d,0x12,0x3e,0x14,0x12,0x20,0x17, +0x7d,0x51,0x2d,0x53,0xda,0xf8,0x22,0x7d,0x30,0x7d,0x24,0x2, 0x0, 0x46,0x9f,0x11, +0x7a,0x1f,0x0, 0x56,0x7a,0x1f,0x0, 0xba,0x6c,0xaa,0x7e,0x70,0x4, 0xac,0x7a,0x49, +0xf3,0x1, 0x5e,0x49,0xe3,0x1, 0x5c,0x7e,0xf, 0x0, 0x56,0x2f,0x7, 0x7a,0xf, 0x0, +0x56,0x49,0x13,0x1, 0x7e,0x49,0x3, 0x1, 0x7c,0x7e,0x1f,0x0, 0xba,0x2f,0x10,0x7a, +0x1f,0x0, 0xba,0xb, 0xa0,0xbe,0xa0,0x8, 0x40,0xd0,0x22,0xa, 0x2b,0x5e,0x24,0x0, +0x1, 0x7c,0xa7,0x1e,0xa0,0xa, 0x3a,0xad,0x32,0x7c,0x5b,0x1e,0x50,0xa, 0x55,0x2d, +0x53,0x22,0x7e,0xb3,0x0, 0xb4,0xca,0xf8,0x7c,0xfb,0x74,0x20,0x7a,0xb3,0x2, 0x56, +0x74,0x4, 0x7a,0xb3,0x2, 0x57,0x74,0x24,0x7a,0xb3,0x2, 0x58,0x7e,0xb3,0x2, 0xa9, +0x44,0xf, 0x7a,0xb3,0x2, 0xa9,0x44,0xf0,0x7a,0xb3,0x2, 0xa9,0x7e,0x73,0x0, 0xa6, +0x7a,0x73,0x2, 0xa7,0x7e,0x73,0x0, 0xa7,0x7a,0x73,0x2, 0xa8,0x7e,0x34,0x2, 0x5e, +0x7e,0x24,0x2, 0x59,0x74,0x24,0x7e,0x30,0x98,0x12,0x21,0xe6,0x6c,0x33,0x80,0x11, +0x7c,0xb3,0x7e,0x73,0x2, 0x56,0x12,0x20,0x5b,0xa, 0x33,0x19,0xb3,0x2, 0x7d,0xb, +0x30,0x7e,0x23,0x2, 0x56,0xbc,0x23,0x38,0xe7,0x6c,0x33,0x80,0x18,0xa, 0x3, 0x7e, +0x53,0x2, 0x56,0xa, 0x35,0x2d,0x30,0x7c,0x27,0xa, 0x33,0xa, 0x5, 0x2d,0x3, 0x19, +0x20,0x2, 0x7d,0xb, 0x30,0x7e,0x23,0x2, 0x57,0xbc,0x23,0x38,0xe0,0x7e,0xb3,0x2, +0xa3,0x44,0x1, 0x7a,0xb3,0x2, 0xa3,0xbe,0xf0,0x1, 0x78,0xd, 0x7e,0xb3,0x2, 0xa3, +0x54,0xfd,0x12,0x21,0xcb,0x44,0x8, 0x80,0x21,0xbe,0xf0,0x2, 0x7e,0xb3,0x2, 0xa3, +0x78,0x11,0x54,0xfd,0x7a,0xb3,0x2, 0xa3,0x7e,0xb3,0x2, 0xab,0x54,0xfb,0x12,0x21, +0xd5,0x80,0x7, 0x44,0x2, 0x12,0x21,0xcb,0x44,0x18,0x7a,0xb3,0x2, 0xab,0x7e,0xb3, +0x2, 0xa3,0x54,0xfb,0x7a,0xb3,0x2, 0xa3,0x44,0x18,0x7a,0xb3,0x2, 0xa3,0x7e,0x63, +0x0, 0xb5,0x5e,0x60,0x7, 0x7c,0xb6,0xc4,0x23,0x54,0xe0,0x7c,0x6b,0x7e,0x73,0x2, +0xa3,0x12,0x21,0xdc,0x7c,0xb7,0xc4,0x3, 0x54,0x7, 0xbe,0xb0,0x0, 0x28,0x10,0x7c, +0xb7,0x30,0xe1,0xb, 0x7c,0x67,0x9e,0x60,0x20,0x5e,0x60,0xe0,0x12,0x21,0xdc,0x7e, +0x63,0x0, 0xb6,0x5e,0x60,0x7f,0x7e,0x73,0x2, 0xa4,0x5e,0x70,0x80,0x4c,0x76,0x7a, +0x73,0x2, 0xa4,0x7e,0x63,0x0, 0xb7,0x5e,0x60,0x7f,0x7e,0x73,0x2, 0xa5,0x5e,0x70, +0x80,0x4c,0x76,0x7a,0x73,0x2, 0xa5,0x7e,0xb3,0x2, 0xa6,0x54,0xf0,0x44,0x1, 0x7a, +0xb3,0x2, 0xa6,0x54,0xf, 0x44,0x20,0x7a,0xb3,0x2, 0xa6,0x12,0x25,0xe7,0x7a,0xb3, +0x2, 0xab,0x54,0x7f,0x7a,0xb3,0x2, 0xab,0xda,0xf8,0x22,0x7a,0xb3,0x2, 0xa3,0x7e, +0xb3,0x2, 0xab,0x44,0x4, 0x7a,0xb3,0x2, 0xab,0x54,0xc7,0x22,0x5e,0x70,0x1f,0x4c, +0x76,0x7a,0x73,0x2, 0xa3,0x22,0x7c,0x23,0x7c,0x3b,0xa5,0xba,0x97,0x24,0xbe,0x30, +0x1c,0x50,0x4, 0x7c,0x23,0x80,0x3, 0x7e,0x20,0x1c,0x6c,0xaa,0x80,0xf, 0x12,0x22, +0x21,0xa, 0x4b,0x2e,0x44,0x2, 0xc2,0x12,0x22,0x27,0x12,0x22,0x30,0xbc,0x2a,0x38, +0xed,0x22,0x6c,0xaa,0x80,0x6, 0x12,0x22,0x21,0x12,0x22,0x30,0xbc,0x3a,0x38,0xf6, +0x22,0xa, 0xa, 0x7d,0x40,0x2d,0x43,0x7a,0x91,0x82,0x7a,0x81,0x83,0xe4,0x93,0x22, +0x2d,0x2, 0x7a,0x9, 0xb0,0xb, 0xa0,0x22,0xe5,0x26,0x30,0xe0,0x20,0x12,0x20,0x72, +0x12,0x24,0xff,0x78,0x6, 0x7e,0x34,0x0, 0xa8,0x80,0x9, 0xbe,0xa0,0x2, 0x78,0x7, +0x7e,0x34,0x0, 0xae,0x12,0x24,0x30,0x12,0x16,0x3a,0x53,0x26,0xfc,0xe5,0x26,0x30, +0xe2,0x12,0x53,0xca,0xe1,0x7e,0x73,0x0, 0xb8,0xa, 0x37,0x3e,0x34,0x7c,0xb7,0x42, +0xca,0x53,0x26,0xfb,0x22,0x12,0x0, 0x2e,0x70,0x2, 0x61,0x53,0x80,0x4, 0xe4,0x12, +0x17,0x56,0x12,0x13,0xb9,0x50,0xf7,0x75,0xe1,0x0, 0x12,0x25,0xa, 0x7c,0xba,0x12, +0x24,0xf6,0x12,0x25,0x14,0x75,0xe3,0x0, 0x7c,0xba,0x1e,0xb0,0x12,0x24,0xf6,0x7c, +0xb7,0x42,0xe3,0x7c,0xba,0xc4,0x23,0x54,0x3, 0xa, 0x3b,0x12,0x25,0x27,0x7c,0xb7, +0x42,0xe3,0x12,0x25,0x1b,0x7c,0xb7,0x42,0xe3,0x75,0xe7,0x0, 0x7c,0xba,0x30,0xe1, +0x5, 0x43,0xe7,0x33,0x80,0x3, 0x43,0xe7,0x11,0x74,0x1, 0x7e,0x73,0x2, 0xa4,0x5e, +0x70,0x7f,0x12,0x23,0x5a,0x74,0x2, 0x7e,0x73,0x2, 0xa5,0x5e,0x70,0x7f,0x12,0x23, +0x5a,0x74,0x3, 0xca,0xb8,0x7e,0x63,0x2, 0xa6,0x7c,0x76,0x12,0x25,0x2e,0x7c,0x7b, +0x7c,0xb6,0xc4,0x54,0xf, 0x2c,0x7b,0xda,0xb8,0x12,0x23,0x5a,0x74,0x6, 0x7e,0x70, +0x61,0x12,0x23,0x5a,0x12,0x23,0x60,0x74,0x53,0x7e,0x73,0x2, 0xa9,0x5e,0x70,0xf, +0x12,0x23,0x5a,0x74,0x54,0xca,0xb8,0x7e,0xb3,0x2, 0xa9,0xc4,0x7c,0x7b,0x5e,0x70, +0xf, 0xda,0xb8,0x12,0x23,0x5a,0x7e,0xb3,0x2, 0xa3,0xc4,0x23,0x54,0x3, 0xbe,0xb0, +0x1, 0x68,0x3, 0xb4,0x2, 0x15,0x74,0x5b,0x7e,0x73,0x2, 0xaa,0x12,0x23,0x5a,0x74, +0x5c,0x7e,0x73,0x2, 0xab,0x5e,0x70,0x3, 0x12,0x23,0x5a,0x43,0xe1,0x8, 0x74,0x2, +0x2, 0x26,0x28,0x22,0x7c,0xb6,0x24,0xb, 0x7c,0x7a,0xf5,0xe4,0x7a,0x71,0xe5,0x22, +0x53,0xe1,0xf, 0x7e,0x73,0x2, 0xab,0x7c,0xb7,0x1e,0xb0,0x1e,0xb0,0x54,0x1, 0xa, +0x2b,0x12,0x24,0xed,0x7c,0xb5,0x42,0xe1,0x7c,0xb7,0x30,0xe2,0x58,0x7c,0xb7,0xc4, +0x23,0x7c,0x7b,0x5e,0x70,0x7, 0xa5,0xbf,0x0, 0x5, 0x7e,0x60,0x4, 0x80,0x39,0xa5, +0xbf,0x1, 0x11,0x7e,0xb3,0x2, 0xa3,0x30,0xe1,0x5, 0x7e,0x60,0x2, 0x80,0x29,0x7e, +0x60,0x5, 0x80,0x24,0xa5,0xbf,0x3, 0x11,0x7e,0xb3,0x2, 0xa3,0x30,0xe1,0x5, 0x7e, +0x60,0x7, 0x80,0x14,0x7e,0x60,0x6, 0x80,0xf, 0x7e,0xb3,0x2, 0xa3,0x30,0xe1,0x5, +0x7e,0x60,0x3, 0x80,0x3, 0x7e,0x60,0x1, 0xa, 0x26,0x3e,0x24,0x12,0x24,0xed,0x7c, +0x75,0x7c,0xb7,0x42,0xe1,0x74,0x7, 0x7e,0x73,0x2, 0x56,0x12,0x23,0x5a,0x74,0x8, +0x7e,0x73,0x2, 0x57,0x12,0x23,0x5a,0x74,0x9, 0x6c,0x77,0x12,0x23,0x5a,0x6c,0xaa, +0x80,0xf, 0x7c,0xba,0x24,0x2f,0xa, 0x4a,0x9, 0x74,0x2, 0x59,0x12,0x23,0x5a,0xb, +0xa0,0x7e,0x73,0x2, 0x58,0xbc,0x7a,0x38,0xe9,0x7c,0xa7,0x80,0xc, 0x7c,0xba,0x24, +0x2f,0x7e,0x70,0x3f,0x12,0x23,0x5a,0xb, 0xa0,0xbe,0xa0,0x24,0x40,0xef,0x74,0x56, +0x7e,0x73,0x2, 0xa7,0x12,0x23,0x5a,0x74,0x57,0x7e,0x73,0x2, 0xa8,0x2, 0x23,0x5a, +0x7d,0x23,0x74,0x7, 0x7e,0x70,0x10,0x12,0x23,0x5a,0x74,0x8, 0x12,0x23,0x5a,0x74, +0x9, 0x7e,0x70,0x4, 0x12,0x23,0x5a,0x74,0x56,0x7e,0x29,0x70,0x12,0x23,0x5a,0x74, +0x57,0x9, 0x72,0x0, 0x1, 0x12,0x23,0x5a,0x74,0x58,0x9, 0x72,0x0, 0x2, 0x2, 0x23, +0x5a,0xca,0xf8,0x12,0xf, 0x69,0x12,0x26,0xcd,0x7a,0x37,0x2, 0xac,0x12,0x26,0xbf, +0x12,0x20,0x72,0x12,0x3c,0x77,0x12,0x24,0xff,0x78,0x6, 0x7e,0x34,0x0, 0xa8,0x80, +0x9, 0xbe,0xa0,0x2, 0x78,0x7, 0x7e,0x34,0x0, 0xae,0x12,0x24,0x30,0x12,0x16,0x3a, +0x75,0x18,0x3, 0x75,0x16,0x40,0x12,0xf, 0x69,0x7a,0x37,0x0, 0x38,0xe5,0x18,0xb4, +0x3, 0x42,0xe5,0x1e,0x60,0xf0,0x12,0x27,0x83,0x12,0x22,0x38,0x12,0x10,0x69,0x6c, +0xff,0x80,0x12,0x74,0x4, 0xac,0xbf,0x49,0x35,0x0, 0xce,0x74,0x2, 0xac,0xbf,0x59, +0x35,0x4, 0x31,0xb, 0xf0,0x12,0x17,0xef,0x38,0xe9,0x75,0x1e,0x0, 0x7e,0xb3,0x4, +0xd9,0x54,0x7f,0x7a,0xb3,0x4, 0xd9,0xe5,0x26,0x20,0xe0,0xba,0x74,0x1, 0x7a,0xb3, +0x0, 0xb9,0x80,0xb2,0xe5,0x18,0x7a,0xb3,0x3, 0xc4,0xda,0xf8,0x22,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x22,0x1e,0xb0,0x54,0x1, 0xa, 0x3b,0x3e,0x34,0x22,0x12, +0x22,0x75,0x7e,0xa3,0x0, 0xb4,0xbe,0xa0,0x1, 0x22,0x7e,0xa3,0x2, 0xa3,0x7c,0xba, +0x54,0x1, 0xa, 0x3b,0x3e,0x34,0x7c,0xb7,0x42,0xe1,0x22,0x7c,0xba,0xc4,0x3, 0x54, +0x7, 0xa, 0x3b,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x22,0x5e,0x70, +0xf, 0x7c,0xb7,0xc4,0x54,0xf0,0x22,0x12,0x22,0x75,0x12,0x16,0x3a,0x12,0x26,0x15, +0x2, 0x25,0x43,0xca,0x79,0x12,0x25,0xe7,0x7a,0xb3,0x2, 0xab,0x7e,0x34,0x2, 0xae, +0x7e,0x24,0x0, 0x48,0x12,0x26,0xdf,0x30,0xe0,0x3f,0x44,0x4, 0x7a,0xb3,0x2, 0x54, +0x6c,0xee,0x80,0x28,0x12,0x10,0x69,0x6c,0xff,0x80,0x1a,0x7e,0x50,0x2, 0xac,0x5f, +0x49,0xf2,0x2, 0xae,0x6d,0xee,0x12,0x17,0xc4,0xbf,0x7, 0x8, 0x6, 0x7d,0x31,0x59, +0x32,0x2, 0xae,0xb, 0xf0,0x12,0x17,0xef,0x38,0xe1,0xb, 0xe0,0x7e,0x73,0x2, 0xc, +0xbc,0x7e,0x38,0xd0,0x12,0x27,0x8e,0x80,0x31,0x7e,0xe0,0x1, 0x12,0x10,0x69,0x6c, +0xff,0x80,0x1b,0x12,0x16,0x2d,0x12,0x26,0xc6,0x7d,0x13,0x7e,0x50,0x2, 0xac,0x5f, +0x2e,0x24,0x2, 0xae,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0xb, 0xf0,0x12,0x17, +0xef,0x38,0xe0,0xb, 0xe0,0xbe,0xe0,0x4, 0x28,0xd2,0x6c,0xee,0x80,0xe, 0x74,0x2, +0xac,0xbe,0x49,0x35,0x2, 0xae,0x59,0x35,0x1, 0xa8,0xb, 0xe0,0x7e,0x73,0x2, 0x58, +0xbc,0x7e,0x38,0xea,0xda,0x79,0x22,0x7e,0xb3,0x2, 0xab,0x54,0xbf,0x22,0xca,0x79, +0x6d,0x77,0x7a,0x77,0x0, 0x7f,0x7e,0x34,0x3, 0xe8,0x7a,0x37,0x0, 0x38,0x12,0x25, +0xe7,0x7a,0xb3,0x2, 0xab,0x12,0x16,0x3a,0x12,0x25,0x43,0x7a,0x77,0x0, 0x7f,0x12, +0x26,0xf1,0xda,0x79,0x22,0x74,0x20,0x7a,0xb3,0x3, 0xa9,0x74,0xe, 0x7a,0xb3,0x3, +0xaa,0x12,0x26,0xe8,0xe4,0x2, 0x2, 0xee,0x7c,0xab,0x80,0x7, 0x7e,0x34,0x0, 0x42, +0x12,0x27,0x99,0x7c,0x7a,0x1b,0xa0,0xa5,0xbf,0x0, 0xf1,0x22,0x7e,0x27,0x2, 0xac, +0x6c,0x66,0x80,0x8, 0x12,0x26,0xb1,0x12,0x23,0x54,0xb, 0x60,0x7e,0x73,0x2, 0x58, +0xbc,0x76,0x38,0xf0,0x22,0x6c,0x77,0xa, 0x27,0x9, 0x62,0x0, 0xc0,0x19,0x62,0x0, +0xc2,0xb, 0x70,0xbe,0x70,0x2, 0x40,0xef,0x7e,0x73,0x0, 0x54,0x12,0x25,0x2e,0x4c, +0x7b,0x7a,0x73,0x0, 0x54,0x7e,0x73,0x0, 0x55,0x12,0x25,0x2e,0x4c,0x7b,0x7a,0x73, +0x0, 0x55,0x22,0x7e,0xb3,0x2, 0xab,0x20,0xe7,0x26,0x7e,0x27,0x2, 0xac,0x6c,0x66, +0x80,0x16,0x12,0x26,0xb1,0x12,0x26,0xd6,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c, +0x79,0x4c,0xa7,0x12,0x23,0x54,0xb, 0x60,0x7e,0x73,0x2, 0x58,0xbc,0x76,0x38,0xe2, +0x22,0xa, 0x16,0x9, 0x71,0x2, 0x7d,0xa, 0x17,0x2d,0x12,0x7e,0x19,0xa0,0x22,0x75, +0x18,0x3, 0x75,0x1e,0x0, 0x22,0x7e,0x8, 0x0, 0x4, 0x2, 0x0, 0xe5,0x7a,0x37,0x0, +0x38,0x7e,0x34,0x0, 0x82,0x22,0x7e,0xb3,0x5, 0x27,0x7e,0x44,0x0, 0x1, 0x22,0xe4, +0x12,0x2, 0xee,0x7e,0xb3,0x2, 0x54,0x22,0x7e,0x34,0x2, 0x10,0x7e,0x24,0x0, 0x24, +0x22,0x7e,0x34,0x0, 0x64,0x7a,0x37,0x0, 0x38,0x22,0x6d,0x33,0x7a,0x37,0x0, 0x7f, +0x12,0x26,0xf1,0x2, 0x27,0x6, 0x7e,0x34,0x3, 0x88,0x7e,0xb3,0x3, 0xe7,0x30,0xe0, +0x71,0x54,0xfe,0x7a,0xb3,0x3, 0xe7,0x9, 0x53,0x0, 0x5, 0x7a,0x53,0x0, 0x67,0xa, +0x25,0x12,0x24,0xed,0x7a,0x27,0x0, 0x65,0x9, 0x53,0x0, 0x25,0xa, 0x25,0x7a,0x27, +0x0, 0x5a,0x9, 0x53,0x0, 0x6, 0x7a,0x53,0x0, 0x5c,0x9, 0x53,0x0, 0x8, 0x7a,0x53, +0x0, 0x5e,0xbe,0x50,0xf, 0x40,0x6, 0x74,0xe, 0x19,0xb3,0x0, 0x8, 0x9, 0x53,0x0, +0x8, 0xa, 0x25,0x2e,0x24,0x2, 0xfe,0x12,0x1f,0x76,0x7a,0xb3,0x0, 0x5d,0x9, 0x53, +0x0, 0x9, 0x7a,0x53,0x0, 0x60,0x7a,0x53,0x0, 0x5f,0x9, 0x53,0x0, 0x7, 0x7a,0x53, +0x0, 0x61,0x9, 0x53,0x0, 0x24,0x7a,0x53,0x0, 0x62,0x9, 0x73,0x0, 0x2e,0x7a,0x73, +0x0, 0xb4,0x22,0x7e,0xb3,0x2, 0xab,0x44,0x80,0x7a,0xb3,0x2, 0xab,0x22,0x7e,0xb3, +0x2, 0x54,0x54,0xfb,0x7a,0xb3,0x2, 0x54,0x22,0x7e,0x24,0x0, 0x14,0xad,0x32,0x80, +0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7d,0x23,0x1b,0x34,0x4d,0x22,0x78, +0xf0,0x22,0x12,0x2f,0x40,0x30,0xe, 0x36,0x7e,0xf, 0x0, 0xba,0x7e,0x1f,0x0, 0x56, +0x2f,0x10,0x7e,0x8, 0x0, 0x64,0x12,0x0, 0xe5,0xbe,0x18,0x5, 0xdc,0x8, 0x8, 0x12, +0x51,0x9a,0xbe,0xb0,0x2, 0x40,0x6, 0xbe,0x18,0x9, 0xc4,0x8, 0x11,0x7e,0x34,0x1, +0x2c,0x7a,0x37,0x1, 0xfe,0x7e,0x34,0x0, 0xa, 0x7a,0x35,0x31,0x80,0x1a,0x7e,0x35, +0x31,0x4d,0x33,0x68,0xb, 0x1b,0x34,0x7a,0x35,0x31,0x7e,0x34,0x1, 0x2c,0x80,0x4, +0x7e,0x34,0x0, 0xc8,0x7a,0x37,0x1, 0xfe,0x12,0x29,0xd0,0x12,0x2b,0x38,0x2, 0x28, +0x11,0xca,0xd8,0xca,0x79,0x6c,0xff,0x7e,0x35,0x2c,0x9, 0x73,0x0, 0x1a,0x5e,0x70, +0xf, 0x7e,0x63,0x4, 0x8a,0xbe,0x60,0x1, 0x28,0x4d,0xbe,0x73,0x4, 0x8a,0x50,0x47, +0x30,0xe, 0x44,0x6c,0xee,0x80,0x35,0x7e,0x70,0x7, 0xac,0x7e,0x9, 0xb3,0x4, 0x91, +0x30,0xe1,0x27,0x30,0xe0,0x4, 0xb, 0xf0,0x80,0x20,0xbe,0xf0,0x0, 0x28,0x1b,0x9, +0xd3,0x4, 0x90,0x7c,0xbd,0x12,0x28,0x7c,0x60,0x10,0x7c,0xbd,0x7e,0x70,0x6, 0x12, +0x28,0xd8,0x12,0x2a,0xa9,0xac,0x5e,0x12,0x2d,0x88,0xb, 0xe0,0x7e,0x73,0x4, 0x8a, +0xbc,0x7e,0x38,0xc3,0x12,0x2b,0xa5,0xda,0x79,0xda,0xd8,0x22,0x12,0x2f,0xbf,0x12, +0x29,0x37,0x7e,0xb3,0x2, 0xc3,0x12,0x28,0xae,0xa, 0x3b,0x4d,0x33,0x78,0x1a,0x7e, +0xb3,0x2, 0xc4,0x12,0x28,0xae,0xa, 0x3b,0x4d,0x33,0x78,0xd, 0x7e,0xb3,0x2, 0xc5, +0x12,0x28,0xae,0xa, 0x3b,0x4d,0x33,0x68,0x3, 0x74,0x1, 0x22,0xe4,0x22,0x7c,0xab, +0x6c,0x77,0x80,0x11,0xa, 0x27,0x2e,0x25,0x2c,0x7e,0x29,0x60,0xbc,0x6a,0x78,0x3, +0x74,0x1, 0x22,0xb, 0x70,0x7e,0x25,0x2c,0x9, 0xb2,0x0, 0x1a,0x54,0xf, 0xa, 0x1b, +0xa, 0x27,0xbd,0x21,0x48,0xde,0xe4,0x22,0xca,0x79,0x7c,0xe7,0x7c,0xfb,0x7a,0xf3, +0x2, 0xae,0x7e,0x34,0x2, 0xae,0x12,0x29,0x37,0x7c,0xbf,0x12,0x17,0x70,0x7e,0xa3, +0x2, 0xae,0x74,0x4, 0xa4,0x2e,0x55,0x2a,0x49,0x15,0x0, 0x2, 0xb, 0x58,0x0, 0x7a, +0xf, 0x2, 0xb2,0xbf,0x1, 0x78,0x3, 0xe4,0x80,0x2a,0x12,0x2a,0xbb,0xa, 0x1e,0x6d, +0x0, 0x12,0x0, 0x78,0x7f,0x1, 0x7e,0x1f,0x2, 0xb2,0xbf,0x10,0x8, 0x15,0x7e,0x1f, +0x2, 0xb2,0xbe,0x18,0x7, 0xd0,0x8, 0xb, 0x7c,0xbf,0x12,0x28,0x7c,0x60,0x4, 0x74, +0x1, 0x80,0x1, 0xe4,0xda,0x79,0x22,0x7d,0x23,0x7e,0x29,0xa0,0xbe,0xa0,0x10,0x50, +0x3a,0xa, 0x3a,0x2e,0x34,0x0, 0x8, 0x7c,0xb7,0x19,0xb2,0x0, 0x1, 0xb4,0x10,0x6, +0xa, 0x3b,0xb, 0x34,0x80,0x5a,0xa, 0x3b,0xb4,0x17,0x9, 0x1b,0x34,0x12,0x29,0xba, +0x1b,0x34,0x80,0x51,0x1b,0x34,0x7c,0xb7,0x19,0xb2,0x0, 0x2, 0x9, 0xb2,0x0, 0x1, +0xa, 0x3b,0xb, 0x34,0x7c,0xb7,0x19,0xb2,0x0, 0x3, 0x22,0xa, 0x3a,0x9e,0x34,0x0, +0x8, 0x19,0x72,0x0, 0x1, 0xa5,0xbf,0x8, 0xd, 0xa, 0x17,0xb, 0x14,0x12,0x29,0xc5, +0xa, 0x16,0xb, 0x14,0x80,0xf, 0xa5,0xbf,0xf, 0x12,0xa, 0x17,0x1b,0x14,0x12,0x29, +0xc5,0xa, 0x16,0x1b,0x14,0x7c,0x63,0x19,0x62,0x0, 0x3, 0x22,0xa, 0x37,0x1b,0x34, +0x12,0x29,0xba,0xb, 0x34,0x19,0x72,0x0, 0x3, 0x22,0x19,0x72,0x0, 0x2, 0x9, 0x72, +0x0, 0x1, 0xa, 0x37,0x22,0x7c,0x63,0x19,0x62,0x0, 0x2, 0x9, 0x62,0x0, 0x1, 0x22, +0x12,0x29,0xe0,0x7a,0xb3,0x4, 0x8a,0xbe,0xb0,0x1, 0x28,0x3, 0x2, 0x29,0xea,0x22, +0x7e,0x35,0x2c,0x9, 0xb3,0x0, 0x1a,0x54,0xf, 0x22,0xca,0xd8,0xca,0x79,0xc2,0xf, +0x12,0x29,0xe0,0xbe,0xb0,0x1, 0x38,0x2, 0x41,0x98,0x7e,0xb3,0x4, 0xa7,0x70,0x2, +0x41,0x98,0x7e,0xf0,0x1, 0x41,0x8e,0xc2,0xf, 0x74,0x7, 0xac,0xbf,0x9, 0xe5,0x4, +0x90,0x9, 0xd5,0x4, 0x8f,0x49,0xd5,0x4, 0x8d,0x49,0xc5,0x4, 0x8b,0x7c,0xbe,0x7e, +0x70,0xe, 0x12,0x2a,0xc2,0x7f,0x71,0xbe,0xd0,0x19,0x40,0x2, 0xd2,0xf, 0xbe,0x68, +0x9, 0xc4,0x48,0x7, 0xbe,0xd0,0xa, 0x40,0x2, 0xd2,0xf, 0x7f,0x17,0x2e,0x18,0x5, +0xdc,0xbf,0x61,0x8, 0x7, 0xbe,0xd0,0x3, 0x40,0x2, 0xd2,0xf, 0x7e,0x8, 0x0, 0x4, +0x7e,0x1f,0x4, 0x8b,0x12,0x0, 0xe5,0x2e,0x18,0x5, 0xdc,0xbf,0x61,0x8, 0x13,0xbe, +0x68,0x1f,0x40,0x8, 0xd, 0x12,0x2a,0xa0,0x20,0xe1,0x7, 0xbe,0xd0,0x3, 0x40,0x2, +0xd2,0xf, 0xbe,0x68,0x4e,0x20,0x8, 0x8, 0x12,0x2a,0xa0,0x20,0xe1,0x2, 0xd2,0xf, +0xa2,0xf, 0xe4,0x33,0x12,0x2a,0xa9,0xac,0x5f,0x12,0x2d,0x88,0xb, 0xf0,0x12,0x29, +0xe0,0x12,0x2f,0xb0,0x58,0x2, 0x41,0x7, 0x12,0x2b,0xa5,0xda,0x79,0xda,0xd8,0x22, +0x74,0x7, 0xac,0xbf,0x9, 0xb5,0x4, 0x91,0x22,0x7c,0x6b,0x5e,0x60,0x1, 0x7e,0x50, +0x7, 0x22,0xe5,0xa, 0xa, 0x1b,0x6d,0x0, 0x12,0x0, 0x78,0x7e,0x8, 0x0, 0xa, 0x2, +0x0, 0xe5,0xca,0x79,0x7c,0xa7,0x7c,0x9b,0x9f,0x0, 0xa, 0x39,0x12,0x2d,0x75,0x7c, +0x45,0xa, 0x39,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x7c,0x57,0xa5,0xbc,0x0, 0x8, 0x7e, +0xe0,0x2, 0x7e,0xf0,0x2, 0x80,0x16,0xa, 0x74,0xa5,0xbc,0x7, 0x6, 0x1b,0x75,0x7c, +0xef,0x80,0xa, 0x1b,0x74,0x7c,0xef,0xa, 0x34,0xb, 0x34,0x7c,0xf7,0x7e,0x70,0x8, +0xac,0x75,0x2c,0xe7,0x2c,0xf7,0x7e,0x90,0x4, 0xac,0x9f,0x2e,0x45,0x2a,0x12,0x2d, +0x80,0x7e,0x90,0x4, 0xac,0x9e,0x2e,0x45,0x2a,0x49,0xf4,0x0, 0x2, 0xb, 0x48,0xe0, +0xbf,0x71,0x8, 0x2, 0x80,0x2, 0x7f,0x17,0xbe,0x18,0x0, 0x0, 0x58,0x2, 0x7f,0x10, +0xa, 0x1a,0x12,0x2a,0xb6,0xda,0x79,0x22,0xca,0xd8,0xca,0x79,0x12,0x7, 0x79,0x68, +0x5f,0x7e,0xb3,0x4, 0xa7,0x60,0x59,0x6c,0xff,0x80,0x4a,0x7e,0x70,0x7, 0xac,0x7f, +0x9, 0xb3,0x4, 0x91,0x30,0xe0,0x3c,0x9, 0xe3,0x4, 0x90,0x9, 0xd3,0x4, 0x8f,0x49, +0xd3,0x4, 0x8d,0x49,0xc3,0x4, 0x8b,0x7c,0xbe,0x7e,0x70,0x10,0x12,0x2a,0xc2,0x7f, +0x51,0xbe,0xd0,0x8, 0x50,0x1d,0x7f,0x15,0x2e,0x18,0x3, 0x41,0xbf,0x61,0x58,0x13, +0xbe,0x68,0xb, 0xb8,0x58,0xd, 0x7e,0x70,0x7, 0xac,0x7f,0x12,0x2f,0xb7,0x54,0xfe, +0x7a,0x39,0xb0,0xb, 0xf0,0x7e,0x73,0x4, 0x8a,0xbc,0x7f,0x38,0xae,0x12,0x2b,0xa5, +0xda,0x79,0xda,0xd8,0x22,0x6c,0x66,0x6c,0x77,0x7e,0x50,0x7, 0xac,0x57,0x9, 0xb2, +0x4, 0x91,0x30,0xe0,0x10,0x9, 0xa2,0x4, 0x90,0x7c,0x56,0xb, 0x60,0xa, 0x25,0x2e, +0x25,0x2c,0x7a,0x29,0xa0,0xb, 0x70,0xbe,0x70,0x4, 0x40,0xdd,0x5e,0x60,0xf, 0x7e, +0x25,0x2c,0x2e,0x24,0x0, 0x1a,0x7e,0x29,0x70,0x5e,0x70,0xf0,0x4c,0x76,0x7a,0x29, +0x70,0x22,0xca,0x3b,0x7e,0xe3,0x0, 0x54,0x5e,0xe0,0xf, 0x74,0x5, 0xac,0xbf,0x7e, +0x68,0x7, 0x8, 0x7e,0x78,0x3, 0xe8,0x6c,0xff,0xa1,0x4d,0xa, 0x3f,0x9, 0xd3,0x0, +0x3a,0xa, 0x3d,0x12,0xb, 0xae,0x7c,0xc5,0xa, 0x3d,0x12,0x2d,0x75,0x7c,0xb5,0xf5, +0x8, 0x75,0x9, 0x0, 0x60,0x2, 0x81,0xae,0x12,0x2d,0x5f,0xbe,0xb4,0x1, 0xf4,0x28, +0x5, 0x75,0xa, 0x19,0x80,0x3, 0x75,0xa, 0x14,0x74,0x4, 0xac,0xbd,0x12,0x16,0x31, +0xbe,0x18,0x7, 0x8, 0x58,0xe, 0x49,0x35,0x0, 0xd2,0x49,0x25,0x0, 0xd0,0xbe,0x18, +0x3, 0xe8,0x48,0x4c,0x12,0x2d,0x68,0xbe,0x18,0x27,0x10,0x58,0x25,0x49,0x95,0x1, +0x62,0x49,0x85,0x1, 0x60,0xbe,0x48,0x7, 0xd0,0x58,0x17,0x12,0x1f,0xf1,0x49,0x35, +0x1, 0x86,0x49,0x25,0x1, 0x84,0x12,0x2a,0xb2,0xbf,0x14,0x8, 0x5, 0xbe,0xe0,0x1, +0x68,0x1e,0xbe,0xb4,0x1, 0x90,0x38,0x2, 0xa1,0x3d,0x12,0x2f,0xd1,0x49,0x25,0x1, +0x60,0xbe,0x18,0x3, 0x20,0x48,0x2, 0xa1,0x3d,0xbe,0xe0,0x1, 0x68,0x2, 0xa1,0x3d, +0x12,0x2d,0x56,0xbe,0xa4,0x0, 0x1e,0x40,0x2, 0xa1,0x3d,0xbe,0xb4,0x1, 0xa4,0x38, +0x8, 0xbe,0xb4,0x1, 0x7c,0x40,0x2, 0xa1,0x3d,0x75,0x9, 0x1, 0xa1,0x3d,0xe5,0x8, +0xb4,0x7, 0x2, 0x80,0x2, 0xa1,0x3d,0x12,0x2d,0x5f,0xbe,0xb4,0x1, 0xf4,0x28,0x5, +0x75,0xa, 0x19,0x80,0x3, 0x75,0xa, 0x14,0x74,0x4, 0xac,0xbd,0x12,0x16,0x31,0xbf, +0x16,0x58,0xc, 0x49,0x35,0x0, 0xca,0x49,0x25,0x0, 0xc8,0xbf,0x17,0x48,0x46,0x12, +0x2d,0x68,0xbe,0x18,0x27,0x10,0x58,0x25,0x49,0x95,0x1, 0x5a,0x49,0x85,0x1, 0x58, +0xbe,0x48,0x7, 0xd0,0x58,0x17,0x12,0x1f,0xf1,0x49,0x35,0x1, 0x76,0x49,0x25,0x1, +0x74,0x12,0x2a,0xb2,0xbf,0x14,0x8, 0x5, 0xbe,0xe0,0x1, 0x68,0x18,0xbe,0xb4,0x1, +0x90,0x28,0x2a,0x12,0x2f,0xc8,0x49,0x25,0x1, 0x58,0xbe,0x18,0x3, 0x20,0x58,0x1d, +0xbe,0xe0,0x1, 0x78,0x18,0x12,0x2d,0x56,0xbe,0xa4,0x1, 0xc2,0x28,0xf, 0xbe,0xb4, +0x1, 0xa4,0x38,0x6, 0xbe,0xb4,0x1, 0x7c,0x50,0x3, 0x75,0x9, 0x2, 0xe5,0x9, 0xbe, +0xb0,0x0, 0x28,0x7, 0x7c,0xbf,0x7c,0x7e,0x12,0x49,0xc2,0xb, 0xf0,0xbc,0xef,0x28, +0x2, 0x61,0xfb,0xda,0x3b,0x22,0x74,0x5, 0xac,0xbf,0x49,0xa5,0x0, 0x3e,0x22,0x74, +0x5, 0xac,0xbf,0x49,0xb5,0x0, 0x40,0x22,0x74,0x4, 0xac,0xbc,0x49,0x35,0x1, 0x5e, +0x49,0x25,0x1, 0x5c,0x22,0x7e,0x24,0x0, 0x8, 0x2, 0x0, 0x46,0x2e,0x44,0x0, 0xcc, +0x49,0x34,0x0, 0x2, 0xb, 0x48,0x20,0x22,0x2e,0x24,0x4, 0x91,0x7e,0x29,0x70,0x5e, +0x70,0xfe,0x4c,0x76,0x7a,0x29,0x70,0x22,0xca,0xf8,0x7c,0xab,0x7d,0x42,0x7d,0x13, +0x6c,0x11,0x80,0x2b,0xa, 0x31,0x2d,0x34,0x7e,0x39,0x0, 0xa, 0x30,0x12,0x2d,0x75, +0x7c,0x5, 0x6c,0xff,0xa, 0x20,0xa, 0x3f,0x12,0x2f,0xda,0x18,0x9, 0x74,0x1, 0xa, +0x3f,0x2d,0x31,0x7a,0x39,0xb0,0xb, 0xf0,0xbe,0xf0,0x8, 0x78,0xe7,0xb, 0x10,0xbc, +0xa1,0x38,0xd1,0xda,0xf8,0x22,0xca,0x3b,0x7d,0x73,0x6c,0xdd,0x9f,0x11,0x7a,0x1f, +0x2, 0xdf,0x6c,0xcc,0x74,0x4, 0x30,0xf, 0xd, 0x12,0x2f,0x9f,0x49,0x34,0x0, 0xb2, +0x49,0x24,0x0, 0xb0,0x80,0xb, 0x12,0x2f,0x9f,0x49,0x34,0x0, 0x92,0x49,0x24,0x0, +0x90,0x59,0x35,0x2, 0xb1,0x59,0x25,0x2, 0xaf,0xb, 0xc0,0xbe,0xc0,0x8, 0x78,0xd4, +0x7e,0x34,0x2, 0xaf,0x7e,0x24,0x2, 0xcf,0x12,0x3f,0x1e,0x7a,0xb3,0x2, 0xae,0xbe, +0xb0,0x2, 0x28,0x6, 0x74,0x2, 0x7a,0xb3,0x2, 0xae,0x7e,0x63,0x2, 0xae,0x5e,0x60, +0x3, 0x3e,0x60,0x7d,0x27,0x2e,0x24,0x0, 0x5, 0x7e,0x29,0x70,0x5e,0x70,0xf9,0x4c, +0x76,0x7a,0x29,0x70,0x7e,0x34,0x2, 0xd7,0x7e,0x24,0x0, 0x8, 0xe4,0x12,0x2, 0xee, +0x7e,0x34,0x2, 0xd7,0x7e,0x24,0x2, 0xcf,0x7e,0xb3,0x2, 0xae,0x12,0x2d,0x98,0x7e, +0xb3,0x2, 0xae,0x70,0x6, 0x7e,0x18,0x0, 0x1, 0x80,0x11,0x7e,0xa3,0x2, 0xcf,0x74, +0x4, 0xa4,0x49,0x35,0x2, 0xb1,0x49,0x25,0x2, 0xaf,0x2f,0x11,0x7a,0x1f,0x2, 0xdf, +0x9f,0x11,0x7a,0x1f,0x2, 0xe3,0x6c,0xcc,0xa, 0x3c,0x9, 0xb3,0x2, 0xd7,0x70,0x1e, +0x74,0x4, 0xac,0xbc,0x49,0x15,0x2, 0xb1,0x49,0x5, 0x2, 0xaf,0xbe,0x8, 0x0, 0x64, +0x8, 0xc, 0x7e,0x1f,0x2, 0xe3,0x2f,0x10,0x7a,0x1f,0x2, 0xe3,0xb, 0xd0,0xb, 0xc0, +0xbe,0xc0,0x8, 0x78,0xd3,0xbe,0xd0,0x0, 0x28,0x18,0xa, 0x1d,0x6d,0x0, 0x7e,0x1f, +0x2, 0xe3,0x12,0x0, 0xe5,0x7a,0x1f,0x2, 0xe3,0xbe,0x18,0x0, 0x1, 0x58,0x3, 0x12, +0x2f,0xa7,0x7e,0x1f,0x2, 0xdf,0xbe,0x18,0x0, 0x1, 0x18,0x8, 0x7e,0x18,0x0, 0x1, +0x7a,0x1f,0x2, 0xdf,0x7e,0x1f,0x2, 0xe3,0xbe,0x18,0x0, 0x1, 0x18,0x3, 0x12,0x2f, +0xa7,0x7e,0x6f,0x2, 0xe3,0x7e,0x7f,0x2, 0xdf,0x7f,0x17,0x7f,0x6, 0x12,0x0, 0xe5, +0xbe,0x34,0x0, 0x64,0x28,0x4, 0x7e,0x34,0x0, 0x64,0xbe,0x68,0xfd,0xe8,0x48,0x8, +0x7e,0x8, 0xfd,0xe8,0x7a,0xf, 0x2, 0xe3,0xbe,0x78,0xfd,0xe8,0x48,0x8, 0x7e,0x8, +0xfd,0xe8,0x7a,0xf, 0x2, 0xdf,0x7e,0xf, 0x2, 0xe3,0x7d,0x21,0x59,0x27,0x0, 0x2, +0x7e,0xf, 0x2, 0xdf,0x7d,0x21,0x1b,0x78,0x20,0x19,0x77,0x0, 0x4, 0xda,0x3b,0x22, +0x12,0x4e,0xe2,0xc2,0xf, 0x7e,0x34,0x4, 0xa9,0x12,0x2d,0xd6,0xd2,0xf, 0x7e,0x34, +0x4, 0x84,0x12,0x2d,0xd6,0x7e,0x34,0x4, 0xa9,0x12,0x50,0x59,0x7e,0x34,0x4, 0x84, +0x12,0x50,0x59,0x7e,0xb3,0x4, 0x89,0x1e,0xb0,0x54,0x3, 0xa, 0x2b,0x7e,0xb3,0x4, +0xae,0x1e,0xb0,0x54,0x3, 0xa, 0x3b,0x2d,0x32,0x68,0x5, 0x12,0x29,0xe0,0x78,0x5, +0xc2,0xe, 0x12,0x4f,0xba,0x7e,0xb3,0x4, 0xae,0x20,0xe0,0x7, 0x7e,0xb3,0x4, 0x89, +0x30,0xe0,0x9, 0xd2,0xe, 0x74,0x78,0x7a,0xb3,0x4, 0xa7,0x22,0xc2,0xe, 0x22,0xac, +0xbc,0x7d,0x45,0x2e,0x45,0x2a,0x22,0x7e,0x18,0x0, 0x1, 0x7a,0x1f,0x2, 0xe3,0x22, +0xa, 0x2b,0xa, 0x3f,0xbd,0x32,0x22,0x2e,0x34,0x4, 0x91,0x7e,0x39,0xb0,0x22,0x7a, +0xb3,0x2, 0xc2,0x7e,0x34,0x2, 0xc2,0x22,0x74,0x4, 0xac,0xbc,0x49,0x35,0x1, 0x5a, +0x22,0x74,0x4, 0xac,0xbc,0x49,0x35,0x1, 0x62,0x22,0x9d,0x32,0x12,0x2, 0xde,0xbe, +0x34,0x0, 0x1, 0x22,0x6d,0x11,0x80,0x3e,0x6d,0x0, 0x80,0x2e,0x7d,0xf0,0x3e,0xf4, +0x3e,0xf4,0x7d,0xef,0x2d,0xe3,0x12,0x30,0x2b,0x49,0x5e,0x0, 0x2, 0xb, 0xe8,0x40, +0xbf,0x26,0x58,0x14,0x12,0x30,0x2b,0x59,0xde,0x0, 0x2, 0x1b,0xe8,0xc0,0x2d,0xf3, +0x59,0x5f,0x0, 0x6, 0x59,0x4f,0x0, 0x4, 0xb, 0x4, 0x7d,0xf2,0x1b,0xf4,0x9d,0xf1, +0xbd,0xf0,0x38,0xc8,0xb, 0x14,0xbd,0x21,0x38,0xbe,0x22,0x49,0xde,0x0, 0x6, 0x49, +0xce,0x0, 0x4, 0x22,0xbe,0xb0,0xa, 0x50,0x8, 0x7c,0x1b,0x2e,0x10,0x16,0xa5,0xe7, +0x22,0x2, 0x30,0x44,0xca,0x79,0xb4,0xa, 0x5, 0x7e,0xf0,0x20,0x21,0x76,0xb4,0xb, +0x5, 0x7e,0xf0,0x3, 0x21,0x76,0xb4,0xc, 0x6, 0x7e,0xf3,0x0, 0xb5,0x21,0x76,0xb4, +0xd, 0x1c,0x7e,0xb3,0x0, 0xb4,0xb4,0x1, 0x6, 0x7e,0xf3,0x0, 0xa8,0x21,0x76,0xb4, +0x2, 0x6, 0x7e,0xf3,0x0, 0xae,0x21,0x76,0x7e,0xf3,0x0, 0xa6,0x21,0x76,0xb4,0xe, +0x1c,0x7e,0xb3,0x0, 0xb4,0xb4,0x1, 0x6, 0x7e,0xf3,0x0, 0xa9,0x21,0x76,0xb4,0x2, +0x6, 0x7e,0xf3,0x0, 0xaf,0x21,0x76,0x7e,0xf3,0x0, 0xa7,0x21,0x76,0xb4,0xf, 0x6, +0x7e,0xf3,0x0, 0xb6,0x21,0x76,0xb4,0x10,0x6, 0x7e,0xf3,0x0, 0xb7,0x21,0x76,0xbe, +0xb0,0x11,0x40,0xd, 0xbe,0xb0,0x34,0x38,0x8, 0xa, 0x3b,0x9, 0xf3,0x0, 0x71,0x21, +0x76,0xbe,0xb0,0x35,0x40,0x2b,0xbe,0xb0,0x58,0x38,0x26,0xa, 0x7b,0x9e,0x74,0x0, +0x35,0xbe,0xf0,0x20,0x50,0xc, 0x7c,0xbf,0x7e,0x70,0x20,0x12,0x1f,0xf8,0xa, 0x3b, +0x80,0x2, 0xa, 0x3f,0x2e,0x34,0x2, 0x5e,0x12,0x1d,0x14,0x7c,0xfb,0xb, 0xf0,0x21, +0x76,0xb4,0x59,0x6, 0x7e,0xf3,0x0, 0xb8,0x80,0x7c,0xb4,0x5a,0x5, 0x7e,0xf0,0xf, +0x80,0x74,0xb4,0xac,0x13,0x7e,0xb3,0x0, 0xb4,0xb4,0x2, 0x6, 0x7e,0xf3,0x0, 0xb0, +0x80,0x64,0x7e,0xf3,0x0, 0xaa,0x80,0x5e,0xb4,0xa0,0x4, 0x6c,0xff,0x80,0x57,0xb4, +0xa1,0x13,0x7e,0xb3,0x0, 0xb4,0xb4,0x2, 0x6, 0x7e,0xf3,0x0, 0xb1,0x80,0x47,0x7e, +0xf3,0x0, 0xab,0x80,0x41,0xb4,0xa2,0x13,0x7e,0xb3,0x0, 0xb4,0xb4,0x2, 0x6, 0x7e, +0xf3,0x0, 0xb2,0x80,0x31,0x7e,0xf3,0x0, 0xac,0x80,0x2b,0xb4,0xa3,0x13,0x7e,0xb3, +0x0, 0xb4,0xb4,0x2, 0x6, 0x7e,0xf3,0x0, 0xb3,0x80,0x1b,0x7e,0xf3,0x0, 0xad,0x80, +0x15,0xb4,0xad,0x6, 0x7e,0xf3,0x0, 0xb9,0x80,0xc, 0xb4,0xae,0x6, 0x7e,0xf3,0x0, +0xb4,0x80,0x3, 0x7e,0xf0,0xee,0x7c,0xbf,0xda,0x79,0x22,0x7c,0xab,0x24,0x0, 0x78, +0x5, 0x7e,0xb3,0x4, 0xd9,0x22,0xbe,0xa0,0xae,0x38,0xc, 0x7e,0xb3,0x3, 0xc4,0xb4, +0x3, 0x24,0x7c,0xba,0x2, 0x30,0x34,0xbe,0xa0,0xb0,0x40,0x1a,0xbe,0xa0,0xf7,0x38, +0x15,0x7e,0xb3,0x3, 0xc4,0xb4,0x3, 0xe, 0xa, 0x3a,0x2e,0x34,0x4, 0x31,0x9e,0x34, +0x0, 0xb0,0x7e,0x39,0xb0,0x22,0x7c,0xba,0x22,0xca,0xf8,0x30,0x90,0x79,0xd2,0x7, +0x7e,0xb3,0x4, 0xd7,0x4, 0x7a,0xb3,0x4, 0xd7,0x7e,0x93,0x4, 0xd7,0xbe,0x90,0x1, +0x78,0x8, 0xe5,0x91,0x7a,0xb3,0x4, 0xda,0x80,0x36,0x7e,0xf3,0x4, 0xd9,0x7c,0xbf, +0xc4,0x7c,0xfb,0x7c,0x8f,0x5e,0x80,0x7, 0x78,0x8, 0x12,0x33,0x12,0x12,0x34,0xa, +0x80,0x1e,0xbe,0x80,0x4, 0x78,0x8, 0x12,0x33,0x12,0x12,0x34,0x9c,0x80,0x11,0x7c, +0xbf,0x54,0x7, 0xb4,0x1, 0xa, 0x7e,0xb3,0x4, 0xd7,0x12,0x33,0x14,0x12,0x3f,0xd6, +0x12,0x35,0x51,0x78,0xe, 0xe4,0x12,0x32,0x8f,0xb4,0x10,0x2, 0x80,0x14,0x12,0x35, +0xa6,0x80,0x12,0xbe,0xf0,0x4, 0x78,0x5, 0x12,0x35,0x9c,0x80,0x8, 0xbe,0xf0,0x1, +0x78,0x3, 0x12,0x35,0xb0,0xc2,0x90,0x30,0x91,0x52,0xc2,0x7, 0x7e,0xb3,0x4, 0xd5, +0x4, 0x12,0x35,0x4d,0x78,0x13,0xe4,0x12,0x32,0x8f,0xb4,0x10,0x6, 0x7e,0xb3,0x4, +0xd5,0x80,0x23,0x7e,0xb3,0x4, 0xd5,0x80,0x28,0xbe,0xf0,0x4, 0x78,0xf, 0x7e,0xb3, +0x4, 0xd5,0x2e,0xb3,0x4, 0xda,0x12,0x31,0x7b,0xf5,0x91,0x80,0x1d,0xbe,0xf0,0x1, +0x7e,0xb3,0x4, 0xd5,0x78,0xb, 0x2e,0xb3,0x4, 0xda,0x12,0x0, 0x9, 0xf5,0x91,0x80, +0x9, 0x2e,0xb3,0x4, 0xda,0x12,0x32,0x8f,0xf5,0x91,0xc2,0x91,0xda,0xf8,0x22,0x7c, +0x7b,0xbe,0x70,0x80,0x40,0xc, 0xbe,0x70,0xde,0x38,0x7, 0xa, 0x37,0x9, 0xb3,0x3, +0x8, 0x22,0xa5,0xbf,0x0, 0x5, 0x7e,0xb3,0x4, 0xd9,0x22,0x30,0x6, 0x6, 0x7e,0x24, +0x4, 0xb1,0x80,0x4, 0x7e,0x24,0x4, 0xc3,0x7a,0x25,0x24,0x7c,0xb7,0x14,0xbe,0xb0, +0xe, 0x50,0x4c,0x7e,0xa0,0x3, 0xa4,0x90,0x32,0xcb,0x73,0x2, 0x32,0xf5,0x2, 0x32, +0xfd,0x2, 0x33,0x5, 0x2, 0x33,0x5, 0x2, 0x33,0x5, 0x2, 0x33,0x5, 0x2, 0x33,0x5, +0x2, 0x33,0x5, 0x2, 0x33,0x5, 0x2, 0x33,0x5, 0x2, 0x33,0x5, 0x2, 0x33,0x5, 0x2, +0x33,0x5, 0x2, 0x33,0x5, 0x7e,0x35,0x24,0x9, 0xb3,0x0, 0x4, 0x22,0x7e,0x35,0x24, +0x9, 0xb3,0x0, 0x3, 0x22,0xa, 0x37,0x2e,0x35,0x24,0x9, 0xb3,0x0, 0x2, 0x22,0x74, +0xff,0x22,0x7c,0xb9,0x2e,0xb3,0x4, 0xda,0x24,0xfe,0x7e,0x71,0x91,0x22,0xbe,0xb0, +0xa, 0x50,0xa, 0x7c,0x1b,0x2e,0x10,0x16,0x7c,0xb7,0xa5,0xf7,0x22,0x2, 0x33,0x30, +0x7c,0xa7,0xb4,0xc, 0x6, 0x7e,0x34,0x0, 0xb5,0x61,0xfb,0xb4,0xd, 0x1c,0x7e,0xb3, +0x0, 0xb4,0xb4,0x1, 0x6, 0x7e,0x34,0x0, 0xa8,0x61,0xfb,0xb4,0x2, 0x6, 0x7e,0x34, +0x0, 0xae,0x61,0xfb,0x7e,0x34,0x0, 0xa6,0x61,0xfb,0xb4,0xe, 0x1c,0x7e,0xb3,0x0, +0xb4,0xb4,0x1, 0x6, 0x7e,0x34,0x0, 0xa9,0x61,0xfb,0xb4,0x2, 0x6, 0x7e,0x34,0x0, +0xaf,0x61,0xfb,0x7e,0x34,0x0, 0xa7,0x61,0xfb,0xb4,0xf, 0x6, 0x7e,0x34,0x0, 0xb6, +0x80,0x79,0xb4,0x10,0x6, 0x7e,0x34,0x0, 0xb7,0x80,0x70,0xb4,0x59,0x9, 0x7e,0x34, +0x0, 0xb8,0x43,0x26,0x4, 0x80,0x6f,0xb4,0xac,0x13,0x7e,0xb3,0x0, 0xb4,0xb4,0x2, +0x6, 0x7e,0x34,0x0, 0xb0,0x80,0x54,0x7e,0x34,0x0, 0xaa,0x80,0x4e,0xb4,0xa1,0x13, +0x7e,0xb3,0x0, 0xb4,0xb4,0x2, 0x6, 0x7e,0x34,0x0, 0xb1,0x80,0x3e,0x7e,0x34,0x0, +0xab,0x80,0x38,0xb4,0xa2,0x13,0x7e,0xb3,0x0, 0xb4,0xb4,0x2, 0x6, 0x7e,0x34,0x0, +0xb2,0x80,0x28,0x7e,0x34,0x0, 0xac,0x80,0x22,0xb4,0xa3,0x13,0x7e,0xb3,0x0, 0xb4, +0xb4,0x2, 0x6, 0x7e,0x34,0x0, 0xb3,0x80,0x12,0x7e,0x34,0x0, 0xad,0x80,0xc, 0xb4, +0xae,0xe, 0x7e,0x34,0x0, 0xb4,0xe4,0x7a,0xb3,0x0, 0xb9,0x43,0x26,0x1, 0x80,0x6, +0xb4,0xaf,0x6, 0x2, 0x35,0xc5,0x7a,0x39,0xa0,0x22,0x7c,0x7, 0xbe,0xb0,0x80,0x40, +0xb, 0xbe,0xb0,0xde,0x38,0x6, 0x24,0x80,0x7c,0x70,0x80,0x7c,0x24,0x0, 0x78,0x7b, +0x7e,0x14,0x4, 0xd9,0x7a,0x19,0x0, 0x5e,0x0, 0x70,0x7c,0xb0,0xc4,0x54,0xf, 0x7c, +0xb, 0xa5,0xb8,0x4, 0x15,0x7e,0xb3,0x3, 0xc4,0xb4,0x3, 0x7, 0x74,0x2, 0x7e,0x70, +0x3, 0x80,0x34,0x74,0x3c,0x7e,0x70,0x3, 0x80,0x4e,0x7e,0xb3,0x3, 0xc4,0xb4,0x3, +0x29,0x74,0x2, 0x7e,0x70,0x1, 0x12,0x33,0x1e,0xa5,0xb8,0x1, 0x6, 0x74,0x2, 0x6c, +0x77,0x80,0x14,0xa5,0xb8,0x0, 0x7, 0x74,0x2, 0x7e,0x70,0x1, 0x80,0x9, 0xa5,0xb8, +0x3, 0x29,0x74,0x2, 0x7e,0x70,0x4, 0x2, 0x33,0x1e,0xa5,0xb8,0x1, 0x6, 0x74,0x3c, +0x6c,0x77,0x80,0x14,0xa5,0xb8,0x4, 0x7, 0x74,0x3c,0x7e,0x70,0x3, 0x80,0x9, 0xa5, +0xb8,0x3, 0x8, 0x74,0x3c,0x7e,0x70,0x4, 0x2, 0x37,0x57,0x22,0x7c,0x6b,0x14,0x68, +0x78,0x4, 0x68,0x2, 0xa1,0x25,0x7e,0x44,0x4, 0xd9,0x7a,0x49,0x70,0x5e,0x70,0x70, +0x7c,0xb7,0xc4,0x54,0xf, 0x7c,0x7b,0xbe,0x70,0x4, 0x68,0x47,0x7e,0xb3,0x3, 0xc4, +0xb4,0x3, 0x20,0xa5,0xbf,0x1, 0x6, 0x74,0x2, 0x6c,0x77,0x80,0x66,0xa5,0xbf,0x0, +0x7, 0x74,0x2, 0x7e,0x70,0x1, 0x80,0x5b,0xa5,0xbf,0x3, 0x70,0x74,0x2, 0x7e,0x70, +0x4, 0x80,0x50,0xa5,0xbf,0x1, 0x6, 0x74,0x3c,0x6c,0x77,0x80,0x29,0xa5,0xbf,0x4, +0x7, 0x74,0x3c,0x7e,0x70,0x3, 0x80,0x1e,0xa5,0xbf,0x3, 0x50,0x74,0x3c,0x7e,0x70, +0x4, 0x80,0x13,0x7e,0xb3,0x3, 0xc4,0xb4,0x3, 0x7, 0x74,0x2, 0x7e,0x70,0x3, 0x80, +0x22,0x74,0x3c,0x7e,0x70,0x3, 0x2, 0x37,0x57,0x7a,0x73,0x4, 0xd8,0x7e,0x54,0x4, +0x31,0x7a,0x55,0x22,0x22,0xbe,0x60,0xa, 0x50,0xc, 0x7e,0xb3,0x3, 0xc4,0xb4,0x3, +0x1b,0x7c,0xb6,0x2, 0x33,0x1e,0xbe,0x60,0xa, 0x40,0x11,0xbe,0x60,0xaf,0x38,0xc, +0x7e,0xb3,0x3, 0xc4,0xb4,0x3, 0x5, 0x7c,0xb6,0x2, 0x33,0x30,0x22,0x7a,0xb3,0x4, +0xd5,0x7e,0xb3,0x4, 0xd9,0xc4,0x7c,0xfb,0x5e,0xf0,0x7, 0x22,0xca,0xf8,0xe4,0x12, +0x35,0x4d,0x78,0x5, 0x12,0x35,0xa6,0x80,0x12,0xbe,0xf0,0x4, 0x78,0x5, 0x12,0x35, +0x9c,0x80,0x8, 0xbe,0xf0,0x1, 0x78,0x3, 0x12,0x35,0xb0,0x75,0x91,0x0, 0xe4,0x7a, +0xb3,0x4, 0xd7,0x7a,0xb3,0x4, 0xd6,0x74,0xaa,0x7a,0xb3,0x4, 0xb1,0x7a,0xb3,0x4, +0xb2,0x7a,0xb3,0x4, 0xc3,0x7a,0xb3,0x4, 0xc4,0xda,0xf8,0x22,0x7e,0xb3,0x4, 0xda, +0x12,0x31,0x7b,0xf5,0x91,0x22,0x7e,0xb3,0x4, 0xda,0x12,0x32,0x8f,0xf5,0x91,0x22, +0x7e,0xb3,0x4, 0xda,0x12,0x0, 0x9, 0xf5,0x91,0x22,0xe4,0x7a,0xb3,0x4, 0xd9,0x12, +0x37,0x8b,0x2, 0x35,0x5c,0x30,0x8, 0x8, 0x74,0x1, 0x12,0x35,0xd7,0xc2,0x8, 0x22, +0xe4,0x12,0x35,0xd7,0xd2,0x8, 0x22,0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86,0x22,0xca, +0x3b,0x7c,0xeb,0x6c,0xaa,0x20,0x0, 0x8, 0x20,0x5, 0x5, 0x20,0x2, 0x2, 0xe1,0x1f, +0x20,0x6, 0x6, 0x7e,0x4, 0x4, 0xb1,0x80,0x4, 0x7e,0x4, 0x4, 0xc3,0x7d,0x30,0x12, +0x51,0x76,0x74,0xaa,0x7a,0x9, 0xb0,0x19,0xb0,0x0, 0x1, 0x74,0x12,0x19,0xb0,0x0, +0x2, 0x7e,0xb3,0x0, 0x7c,0x19,0xb0,0x0, 0x4, 0x6c,0x77,0x6c,0xff,0x7e,0x50,0x5, +0xac,0x5f,0x9, 0x62,0x0, 0x6c,0xbe,0x60,0xff,0x78,0x2, 0xc1,0xc7,0xa, 0x46,0x9, +0xb4,0x0, 0xc0,0xbe,0xb0,0x3, 0x78,0x2, 0xc1,0xc7,0x49,0x12,0x0, 0x68,0x7d,0x61, +0xa, 0x6c,0x7d,0xf6,0x5e,0xf4,0x0, 0xf, 0x7d,0x6f,0x7c,0x6d,0xa, 0xf7,0x2d,0xf0, +0x19,0x6f,0x0, 0x5, 0x7c,0x63,0xa, 0x17,0x2d,0x10,0x19,0x61,0x0, 0x6, 0x49,0x12, +0x0, 0x6a,0xa, 0x22,0x5e,0x24,0x0, 0xf, 0x7c,0x65,0xa, 0x27,0x2d,0x20,0x19,0x62, +0x0, 0x7, 0x7c,0x63,0xa, 0x27,0x2d,0x20,0x19,0x62,0x0, 0x8, 0xe4,0xa, 0x27,0x2d, +0x20,0x19,0xb2,0x0, 0x9, 0xa, 0x27,0x2d,0x20,0x19,0xb2,0x0, 0xa, 0x12,0x37,0x2f, +0xc4,0x54,0xf0,0xa, 0x27,0x2d,0x20,0x2e,0x24,0x0, 0x7, 0x12,0x37,0x26,0x12,0x37, +0x2f,0xbe,0xb0,0xff,0x68,0x1e,0x9, 0xb4,0x0, 0xc0,0xbe,0xb0,0x1, 0x68,0x2, 0xb, +0xa0,0x9, 0xb4,0x0, 0xc0,0x3, 0x3, 0x54,0xc0,0xa, 0x27,0x2d,0x20,0x2e,0x24,0x0, +0x5, 0x12,0x37,0x26,0x2e,0x70,0x6, 0xb, 0xf0,0xbe,0xf0,0x2, 0x68,0x2, 0xc1,0x1d, +0x19,0xa0,0x0, 0x3, 0xe4,0x19,0xb0,0x0, 0x11,0x6c,0xff,0xa, 0x1f,0x2d,0x10,0x7e, +0x19,0x60,0x7d,0x10,0x2e,0x14,0x0, 0x11,0x7e,0x19,0x70,0x6c,0x76,0x7a,0x19,0x70, +0xb, 0xf0,0xbe,0xf0,0x11,0x78,0xe4,0x30,0x6, 0x4, 0xc2,0x6, 0x80,0x2, 0xd2,0x6, +0x30,0x5, 0x3, 0x12,0x37,0x39,0xc2,0x0, 0xc2,0x5, 0xc2,0x2, 0x74,0x1, 0x12,0x35, +0xd7,0x7e,0x34,0x0, 0x3, 0x12,0x27,0x99,0xbe,0xe0,0x1, 0x78,0x6, 0x80,0x0, 0xe4, +0x12,0x35,0xd7,0xda,0x3b,0x22,0x7e,0x29,0x60,0x2c,0x6b,0x7a,0x29,0x60,0x22,0x7e, +0x50,0x5, 0xac,0x5f,0x9, 0xb2,0x0, 0x6c,0x22,0x6c,0xaa,0x74,0x3, 0xa, 0x4a,0x19, +0xb4,0x0, 0xc2,0x19,0xb4,0x0, 0xc0,0x12,0x37,0xf0,0xac,0x7a,0x12,0x49,0xb9,0xb, +0xa0,0xbe,0xa0,0x2, 0x40,0xe5,0x22,0xbe,0xb0,0x5e,0x38,0x2e,0xbe,0xb0,0x26,0x68, +0x29,0xbe,0xb0,0x2f,0x68,0x24,0xbe,0xb0,0x23,0x68,0x1f,0xbe,0xb0,0x28,0x68,0x1a, +0xbe,0xb0,0x21,0x68,0x15,0xbe,0xb0,0x22,0x68,0x10,0xa, 0x2b,0x19,0x72,0x3, 0x88, +0x7e,0xb3,0x3, 0xe7,0x44,0x1, 0x7a,0xb3,0x3, 0xe7,0x22,0x7e,0x50,0x70,0x7e,0x34, +0x78,0x0, 0x12,0x37,0xc0,0x7c,0x4b,0x7e,0x34,0x78,0x1, 0x12,0x37,0xc0,0xbe,0x40, +0xff,0x68,0x7, 0x6c,0xb4,0xb4,0xff,0x2, 0x7c,0x54,0xd2,0xce,0x7a,0x51,0x92,0xd2, +0xad,0xd2,0xe8,0xc2,0xc0,0xa9,0xd0,0xf7,0xd2,0xf8,0xa9,0xd5,0xb7,0xd2,0xbd,0x22, +0x12,0x37,0xf8,0x75,0xf5,0x1, 0xa9,0x37,0xf5,0xfc,0xa9,0x36,0xf5,0xfc,0x2, 0x37, +0xd1,0xe5,0xf6,0x43,0xfa,0x80,0xc2,0xc9,0xd2,0xaf,0x22,0x7e,0x34,0x0, 0x20,0x12, +0x37,0xf8,0x75,0xf5,0x3, 0xa9,0x37,0xf5,0xfc,0xa9,0x36,0xf5,0xfc,0x2, 0x37,0xd1, +0x7e,0x44,0x7f,0xff,0x7e,0x70,0x2, 0x22,0xc2,0xaf,0xd2,0xc9,0xa, 0x56,0xf5,0xf1, +0x7c,0xb7,0xf5,0xf2,0x75,0xf3,0x80,0x75,0xf4,0x0, 0x22,0x70,0x18,0x7e,0x1f,0x1, +0x50,0x7e,0xf, 0x1, 0x4c,0x2f,0x1, 0x7e,0x1f,0x1, 0x54,0x2f,0x10,0xbe,0x18,0x6, +0x40,0x58,0x2, 0xc2,0xd, 0x22,0x7e,0x37,0x0, 0x5a,0x4d,0x33,0x78,0x30,0x12,0x7, +0x79,0xbe,0xb0,0x0, 0x28,0x5, 0x75,0x27,0x0, 0x21,0x0, 0x7e,0xb3,0x0, 0x5c,0x20, +0xe0,0x2, 0x21,0x0, 0x7e,0x53,0x0, 0x61,0xbe,0x51,0x27,0x28,0x2, 0x21,0x0, 0x75, +0x27,0x0, 0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x0, 0x5a,0x74,0x1, 0x80,0x73,0xbe,0x34, +0x0, 0x1, 0x78,0x19,0x12,0x7, 0x79,0x78,0x2, 0x21,0x0, 0x6d,0x22,0x7a,0x27,0x0, +0x5a,0xe4,0x7a,0xb3,0x3, 0xad,0x75,0x28,0x22,0xd2,0x1, 0x21,0x0, 0xbe,0x34,0x0, +0x3, 0x78,0x7d,0xa9,0xd6,0xeb,0xa9,0xc6,0xac,0xa9,0xc6,0xec,0xc2,0x96,0xc2,0x95, +0xd2,0xb8,0xa9,0xd0,0xb7,0xd2,0xa8,0x80,0x4, 0xe4,0x12,0x17,0x56,0x12,0x13,0xb9, +0x50,0xf7,0x20,0x93,0xfd,0xa9,0xc0,0xca,0x75,0xe7,0x0, 0x53,0xe1,0xf7,0x74,0x2, +0x12,0x17,0x56,0x12,0xf, 0x69,0x7a,0x37,0x0, 0x38,0x12,0x0, 0x27,0xc2,0xa8,0xc2, +0x95,0xa9,0xd0,0xca,0x12,0x39,0x19,0x12,0x22,0x75,0x6d,0x33,0x7a,0x37,0x0, 0x5a, +0xe4,0x7a,0xb3,0x3, 0xad,0x80,0x29,0xe4,0x12,0x17,0x56,0x20,0x93,0x22,0x7e,0x37, +0x0, 0x5a,0x4d,0x33,0x78,0xe, 0xe5,0xcc,0x54,0x7, 0xbe,0xb0,0x2, 0x68,0x11,0x75, +0xcc,0x2, 0x80,0xc, 0xe5,0xcc,0x54,0x7, 0xbe,0xb0,0x7, 0x68,0x3, 0x75,0xcc,0x7, +0x30,0x1, 0xd4,0x75,0x28,0x0, 0xc2,0x1, 0x20,0x93,0x3, 0x75,0xcc,0x50,0x22,0xe5, +0x9a,0x60,0x5, 0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0x75,0xeb,0x3, 0xa9,0xd6,0xac,0xa9, +0xd6,0xec,0xd2,0x86,0x22,0xe4,0x12,0x39,0x68,0x12,0x39,0x19,0x12,0x39,0x5c,0x74, +0x1, 0x2, 0x39,0x34,0x70,0x3, 0xc2,0xaf,0x22,0xd2,0xaf,0x22,0x12,0x39,0x25,0x2, +0x0, 0x3f,0xc2,0x8e,0xe5,0x89,0x54,0xf, 0x44,0x20,0xf5,0x89,0x75,0x8d,0x1, 0x75, +0x8b,0x0, 0xd2,0x8e,0xd2,0xab,0xa9,0xc3,0xb7,0xd2,0xbb,0x22,0xa9,0xd1,0x99,0x75, +0x9a,0xfe,0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0xd2,0xcf,0xbe,0xb0,0x7, 0x38,0x4, 0x7c, +0xab,0x80,0x2, 0x6c,0xaa,0x4e,0xa0,0x50,0x7a,0xa1,0xcc,0x0, 0x0, 0x0, 0x0, 0xa9, +0xd0,0xca,0xa9,0xc5,0xca,0x53,0xca,0xe1,0x43,0xca,0x14,0x75,0xcb,0x2, 0xc2,0xcc, +0xd2,0xcb,0xc2,0xca,0xc2,0xc9,0xc2,0xc8,0x0, 0x0, 0x0, 0x0, 0x22,0xca,0x7b,0xca, +0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0, +0x82,0x12,0x39,0xf, 0x7e,0xb3,0x4, 0xd9,0x54,0xfd,0x7a,0xb3,0x4, 0xd9,0xd0,0x82, +0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b, +0xda,0x7b,0x32,0x12,0xf, 0x69,0x7a,0x37,0x0, 0x38,0x12,0x39,0x3c,0x12,0x35,0xba, +0x12,0x3a,0x53,0x12,0x3a,0xc6,0x7e,0xb3,0x3, 0xc4,0x24,0xfd,0x68,0x11,0x24,0xae, +0x68,0x35,0x24,0xab,0x68,0xe, 0x24,0xa9,0x78,0xec,0x12,0xe, 0x3b,0x80,0xe7,0x12, +0x24,0x61,0x80,0xe2,0x6d,0x33,0x7a,0x37,0x0, 0x7f,0x7e,0x24,0x1, 0xf4,0x7a,0x27, +0x0, 0x38,0x7e,0xb3,0x0, 0x81,0xbe,0xb0,0xaa,0x68,0xcb,0x7a,0x37,0x0, 0x63,0x74, +0xaa,0x7a,0xb3,0x0, 0x81,0x80,0xbf,0x6d,0x33,0x7a,0x37,0x0, 0x7f,0x7e,0x34,0x1, +0xf4,0x7a,0x37,0x0, 0x38,0x7e,0xb3,0x0, 0x81,0xb4,0xaa,0xaa,0x74,0x55,0x7a,0xb3, +0x0, 0x81,0x7e,0x74,0x3, 0xe8,0x7d,0x37,0x1b,0x74,0x4d,0x33,0x78,0xf8,0x75,0xe9, +0xff,0x80,0x93,0xe4,0x7a,0xb3,0x0, 0xb4,0x74,0x1, 0x7a,0xb3,0x0, 0xb9,0x74,0x1b, +0x7a,0xb3,0x0, 0xa6,0x74,0x1d,0x7a,0xb3,0x0, 0xa7,0x74,0x24,0x7a,0xb3,0x0, 0xa8, +0x74,0x26,0x7a,0xb3,0x0, 0xa9,0x74,0x28,0x7a,0xb3,0x0, 0xaa,0x7a,0xb3,0x0, 0xae, +0x74,0x30,0x7a,0xb3,0x0, 0xaf,0x74,0x29,0x7a,0xb3,0x0, 0xb0,0x12,0x3a,0xa8,0x74, +0xa, 0x7a,0xb3,0x0, 0xb8,0x74,0xf, 0x7a,0xb3,0x0, 0xb6,0x74,0x19,0x7a,0xb3,0x0, +0xb7,0x74,0x3, 0x7a,0xb3,0x0, 0xb5,0x22,0x12,0x37,0xdb,0xb4,0x48,0x3, 0xd2,0xc, +0x22,0xb4,0xff,0x11,0x7e,0x34,0x0, 0x20,0x74,0x48,0x12,0x3a,0xcd,0x12,0x37,0xdb, +0xb4,0x48,0x2, 0xd2,0xc, 0x22,0x74,0x1, 0x7a,0xb3,0x3, 0xc4,0x22,0x7c,0xab,0x7d, +0x43,0x5e,0x80,0x7f,0xc2,0xaf,0xd2,0xc9,0xa, 0x38,0x7c,0xb7,0xf5,0xf1,0x7c,0xb9, +0xf5,0xf2,0x75,0xf3,0x80,0x75,0xf4,0x1, 0x75,0xf5,0xa, 0x75,0xfb,0xa5,0x75,0xfb, +0xf, 0x75,0xfb,0x6a,0x7a,0xa1,0xf6,0x75,0xf6,0xff,0xa9,0x36,0xf5,0xfc,0x43,0xfa, +0x80,0x75,0xfb,0x0, 0xc2,0xc9,0xd2,0xaf,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca, +0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x7e,0x35,0x33, +0xb, 0x34,0x7a,0x35,0x33,0xbe,0x34,0x3, 0xe8,0x40,0xe, 0x6d,0x33,0x7a,0x35,0x33, +0xe5,0x27,0xbe,0xb0,0x64,0x50,0x2, 0x5, 0x27,0x7e,0x37,0x0, 0x7f,0xb, 0x34,0x7a, +0x37,0x0, 0x7f,0x7e,0x37,0x0, 0x38,0xbe,0x37,0x0, 0x7f,0x28,0x3, 0x12,0x0, 0x27, +0x7e,0xb3,0x3, 0xc4,0xb4,0xaa,0x15,0x7e,0x37,0x0, 0x63,0x7d,0x23,0xb, 0x24,0x7a, +0x27,0x0, 0x63,0xbe,0x34,0x1, 0x2c,0x28,0x3, 0x12,0x3a,0xc6,0xe5,0x29,0xbe,0xb1, +0x28,0x28,0x4, 0x5, 0x28,0x80,0x2, 0xd2,0x1, 0x7e,0xb3,0x4, 0xd6,0x60,0xf, 0xbe, +0xb0,0x28,0x50,0x7, 0x4, 0x7a,0xb3,0x4, 0xd6,0x80,0x3, 0x12,0x35,0x5c,0xd0,0x82, +0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b, +0xda,0x7b,0x32,0x7e,0x50,0xd8,0x74,0x27,0x7a,0xb3,0x3, 0x88,0x74,0xa0,0x7a,0xb3, +0x3, 0x8d,0x74,0x1, 0x7a,0xb3,0x3, 0x8e,0x74,0x1e,0x7a,0xb3,0x3, 0x8f,0x74,0x8, +0x7a,0xb3,0x3, 0x90,0x74,0x14,0x7a,0xb3,0x3, 0x91,0x74,0x6, 0x7a,0xb3,0x3, 0xab, +0x74,0x1, 0x7a,0xb3,0x3, 0xac,0xe4,0x7a,0xb3,0x3, 0xad,0x74,0x3, 0x7a,0xb3,0x3, +0xae,0x12,0x3a,0xc6,0x7e,0x34,0x78,0x4, 0x12,0x37,0xc0,0x7c,0x4b,0x7e,0x34,0x78, +0x5, 0x12,0x37,0xc0,0xbe,0x40,0xff,0x68,0x7, 0x6c,0xb4,0xb4,0xff,0x2, 0x7c,0x54, +0x7a,0x53,0x3, 0xb0,0x74,0x3c,0x7a,0xb3,0x3, 0xb1,0x74,0x1, 0x7a,0xb3,0x3, 0xb7, +0xe4,0x7a,0xb3,0x3, 0xb6,0x7a,0xb3,0x3, 0xb8,0x7e,0x34,0x9, 0xc4,0x7a,0x37,0x0, +0xbe,0x7e,0x34,0xa, 0x0, 0x7a,0x37,0x0, 0x65,0x74,0xa0,0x7a,0xb3,0x0, 0x67,0x6d, +0x33,0x7a,0x37,0x0, 0x5a,0x74,0x1, 0x7a,0xb3,0x0, 0x5c,0x74,0xc, 0x7a,0xb3,0x0, +0x5d,0x74,0x8, 0x7a,0xb3,0x0, 0x5e,0x74,0x14,0x7a,0xb3,0x0, 0x5f,0x7a,0xb3,0x0, +0x60,0x74,0x1e,0x7a,0xb3,0x0, 0x61,0x74,0x1, 0x7a,0xb3,0x0, 0x62,0x22,0x75,0x28, +0x0, 0xc2,0x1, 0x7e,0xb3,0x3, 0xad,0x70,0x7, 0x7e,0xb3,0x0, 0x5d,0xf5,0x29,0x22, +0x7e,0xb3,0x0, 0x5f,0xf5,0x29,0x22,0x12,0xf, 0x74,0x74,0xf, 0x7a,0xb3,0x2, 0x36, +0x74,0x5, 0x7a,0xb3,0x2, 0x38,0x7a,0xb3,0x2, 0x37,0x74,0xf, 0x7a,0xb3,0x2, 0x39, +0x7e,0x34,0x0, 0x32,0x7a,0x37,0x1, 0xf0,0x7e,0xb3,0x2, 0x54,0x44,0x1, 0x7a,0xb3, +0x2, 0x54,0x74,0x2, 0x7a,0xb3,0x2, 0xc, 0x7e,0xb3,0x2, 0x54,0x30,0xe0,0x10,0x74, +0x2, 0x7a,0xb3,0x2, 0xd, 0x74,0x8, 0x7a,0xb3,0x2, 0xe, 0x74,0x2, 0x80,0xa, 0x74, +0x1, 0x7a,0xb3,0x2, 0xd, 0x7a,0xb3,0x2, 0xe, 0x7a,0xb3,0x2, 0xf, 0x74,0x14,0x7a, +0xb3,0x2, 0x53,0x7e,0x34,0x2a,0xf8,0x7a,0x37,0x1, 0xf4,0x7e,0xb3,0x2, 0x54,0x54, +0xfd,0x7a,0xb3,0x2, 0x54,0x7e,0x34,0xfc,0x18,0x7a,0x37,0x1, 0xf2,0x12,0x27,0x8e, +0x7e,0x34,0x0, 0x32,0x7a,0x37,0x1, 0xf6,0x7e,0x34,0x3, 0xe8,0x7a,0x37,0x1, 0xf8, +0x7e,0x34,0xf, 0xa0,0x7a,0x37,0x1, 0xfa,0x7e,0xb3,0x2, 0x54,0x44,0x8, 0x7a,0xb3, +0x2, 0x54,0x7e,0x34,0x2, 0xa2,0x7a,0x37,0x2, 0x45,0x7e,0x34,0x2, 0xb2,0x7a,0x37, +0x2, 0x47,0x7e,0x34,0x2, 0x82,0x7a,0x37,0x2, 0x49,0x7e,0x34,0x2, 0x92,0x7a,0x37, +0x2, 0x4b,0x7e,0xb3,0x2, 0x54,0x54,0xef,0x7a,0xb3,0x2, 0x54,0x7e,0x34,0x1, 0x90, +0x7a,0x37,0x1, 0xfc,0x7e,0x34,0x0, 0xc8,0x7a,0x37,0x1, 0xfe,0x7e,0x34,0x0, 0x64, +0x7a,0x37,0x2, 0x0, 0x7e,0x34,0x2, 0xbc,0x7a,0x37,0x2, 0x2, 0x7e,0x34,0x0, 0x78, +0x7a,0x37,0x2, 0x3a,0x12,0x3d,0xab,0x7e,0x34,0x0, 0x8, 0x7a,0x37,0x2, 0x6, 0x7e, +0x34,0x0, 0x7, 0x7a,0x37,0x2, 0x4, 0x7e,0x34,0x4b,0x7, 0x7a,0x37,0x2, 0x8, 0x7e, +0x34,0x8, 0x0, 0x7a,0x37,0x2, 0xa, 0xe4,0x7a,0xb3,0x2, 0x3c,0x7e,0x34,0x0, 0x3a, +0x7e,0x24,0x0, 0xcc,0x2, 0x3d,0x97,0x7a,0x35,0x2c,0x7a,0x25,0x2a,0xe4,0x7a,0xb3, +0x4, 0xa8,0x7a,0xb3,0x4, 0x79,0x7a,0xb3,0x4, 0xa7,0x22,0x7e,0xb3,0x2, 0x54,0x54, +0xdf,0x7a,0xb3,0x2, 0x54,0x22,0x7e,0x34,0x0, 0x3a,0x7e,0x24,0x0, 0x1c,0xe4,0x12, +0x2, 0xee,0x7e,0x34,0x0, 0x68,0x7e,0x24,0x0, 0x17,0x12,0x2, 0xee,0x6d,0x11,0x12, +0x3e,0x18,0x2e,0x34,0x0, 0x3e,0x12,0x3e,0x1f,0x12,0x3e,0x18,0x2e,0x34,0x0, 0x68, +0x12,0x3e,0x1f,0x12,0x3e,0x18,0x2e,0x34,0x0, 0x72,0x12,0x3e,0x1f,0xb, 0x14,0xbe, +0x14,0x0, 0x2, 0x40,0xda,0x75,0x28,0x0, 0x75,0x29,0x0, 0xc2,0x1, 0x75,0x27,0x0, +0x6d,0x33,0x7a,0x37,0x0, 0x7f,0x7e,0x24,0x7, 0xd0,0x7a,0x27,0x0, 0x38,0x7a,0x37, +0x0, 0x63,0xe4,0x7a,0xb3,0x0, 0x81,0x22,0x7e,0x34,0x0, 0x5, 0xad,0x31,0x22,0x7e, +0x24,0x7f,0xff,0x1b,0x38,0x20,0x59,0x23,0x0, 0x2, 0x74,0xff,0x19,0xb3,0x0, 0x4, +0x22,0x7c,0x3b,0x4d,0x33,0x78,0x2, 0xe1,0x15,0x4d,0x22,0x78,0x2, 0xe1,0x15,0xe4, +0x7a,0xb3,0x2, 0x3c,0x6c,0xaa,0x80,0x74,0x12,0x3f,0x16,0x49,0xf4,0x0, 0x2, 0xb, +0x48,0xe0,0xbe,0x7c,0xf8,0x30,0x58,0x5, 0xbe,0xa0,0x20,0x40,0x15,0xbe,0x7c,0xf2, +0x54,0x58,0x50,0xbe,0xa0,0x20,0x40,0x4b,0x7e,0x7f,0x1, 0xa4,0xbe,0x78,0xb, 0xb8, +0x58,0x41,0xa, 0xa, 0x9, 0xb0,0x4, 0xd, 0xbe,0xb0,0xfa,0x50,0xa, 0x7d,0xf0,0x2e, +0xf4,0x4, 0xd, 0x4, 0x7a,0xf9,0xb0,0x9, 0x20,0x4, 0xd, 0xbe,0x20,0xf, 0x28,0x2a, +0x7e,0x10,0x2, 0xac,0x1a,0x2d,0x2, 0xb, 0x8, 0xd0,0x6d,0xcc,0x49,0xf4,0x0, 0x2, +0xb, 0x48,0xe0,0x2f,0x76,0xbe,0x78,0x32,0xc8,0x58,0xf, 0x74,0x1, 0x7a,0xb3,0x2, +0x3c,0x80,0x7, 0xe4,0xa, 0x4a,0x19,0xb4,0x4, 0xd, 0xb, 0xa0,0xbc,0x3a,0x38,0x88, +0x6c,0xaa,0x80,0x49,0x7e,0x50,0x4, 0xac,0x5a,0x2d,0x23,0x49,0x12,0x0, 0x2, 0xb, +0x28,0x0, 0xbe,0xc, 0xfd,0x6c,0x58,0x2c,0x7e,0xb3,0x2, 0x3c,0x70,0x26,0xa, 0x2a, +0x9, 0xb2,0x3, 0xe9,0xbe,0xb0,0xfa,0x50,0xa, 0x7d,0x42,0x2e,0x44,0x3, 0xe9,0x4, +0x7a,0x49,0xb0,0x9, 0xb2,0x3, 0xe9,0xbe,0xb0,0x14,0x28,0xf, 0x74,0x2, 0x7a,0xb3, +0x2, 0x3c,0x80,0x7, 0xe4,0xa, 0x2a,0x19,0xb2,0x3, 0xe9,0xb, 0xa0,0x7e,0xb3,0x2, +0x56,0xbc,0xba,0x38,0xaf,0x22,0x7e,0x90,0x4, 0xac,0x9a,0x2d,0x43,0x22,0xca,0xf8, +0x6c,0xff,0x6c,0xaa,0x4c,0xaa,0x78,0x4, 0x9f,0x44,0x80,0xc, 0x12,0x3f,0x93,0x1b, +0x16,0x49,0x91,0x0, 0x2, 0xb, 0x18,0x80,0xbe,0xa0,0x7, 0x78,0x4, 0x9f,0x55,0x80, +0xb, 0x12,0x3f,0x93,0x49,0xb1,0x0, 0x6, 0x49,0xa1,0x0, 0x4, 0x12,0x3f,0x16,0x49, +0x14,0x0, 0x2, 0xb, 0x48,0x0, 0xbf,0x4, 0x48,0x2a,0xbf,0x5, 0x48,0x26,0x49,0x14, +0x0, 0x2, 0xb, 0x48,0x0, 0xbe,0x8, 0x5, 0xdc,0x48,0x19,0x49,0x14,0x0, 0x2, 0xb, +0x48,0x0, 0xb, 0xc, 0x59,0x14,0x0, 0x2, 0x1b,0x48,0x0, 0xa, 0x1f,0x2d,0x12,0x7a, +0x19,0xa0,0xb, 0xf0,0xb, 0xa0,0xbe,0xa0,0x8, 0x40,0x99,0x12,0x40,0x7, 0x7c,0xbf, +0xda,0xf8,0x22,0x7e,0x30,0x4, 0xac,0x3a,0x2d,0x13,0x22,0xca,0x7b,0xca,0x6b,0xca, +0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xe5, +0xcc,0x54,0x7, 0x68,0x3, 0x75,0xcc,0x50,0x12,0x31,0xb9,0x74,0x1, 0x7a,0xb3,0x4, +0xd6,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda, +0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7c,0xa7,0x24,0x0, 0x78,0x7, 0x7e,0x34,0x4, 0xd9, +0x7a,0x39,0xa0,0x22,0xca,0xb8,0xa9,0xc0,0x93,0xe4,0x7a,0xb3,0x4, 0xd5,0x7a,0xb3, +0x4, 0xd7,0xda,0xb8,0x32,0x7e,0x34,0x4, 0xb1,0x12,0x51,0x76,0x7e,0x34,0x4, 0xc3, +0x7e,0x24,0x0, 0x12,0x2, 0x2, 0xee,0xca,0x3b,0x6c,0xaa,0x7e,0x73,0x0, 0x54,0x5e, +0x70,0xf, 0x7e,0x44,0x0, 0xcc,0x7e,0x24,0x0, 0x3a,0x6c,0x66,0x80,0x64,0x75,0x8, +0xff,0xa, 0xf6,0x2d,0xf2,0x7e,0xf9,0x20,0x7e,0x30,0x4, 0xac,0x23,0x7d,0xe1,0x2d, +0xe4,0x49,0x1e,0x0, 0x2, 0xb, 0xe8,0x0, 0xa, 0x76,0xb, 0x74,0x80,0x24,0xa, 0xef, +0x2d,0xe2,0x7e,0xe9,0xe0,0x7e,0xd0,0x4, 0xac,0xde,0x7d,0xe6,0x2d,0xe4,0x49,0xde, +0x0, 0x2, 0xb, 0xe8,0xc0,0xbf,0x6, 0x58,0x7, 0x7c,0xae,0x7a,0xf1,0x8, 0x7f,0x6, +0xb, 0xf0,0xbc,0x7f,0x38,0xd8,0xe5,0x8, 0xbe,0xb0,0xff,0x68,0x13,0x7e,0xf9,0xe0, +0xe5,0x8, 0xa, 0xfb,0x2d,0xf2,0x7a,0xf9,0xe0,0xa, 0xf6,0x2d,0xf2,0x7a,0xf9,0xa0, +0xb, 0x60,0xbc,0x76,0x38,0x98,0xda,0x3b,0x22,0x7c,0xa6,0xa, 0x27,0xa, 0x3b,0x9d, +0x32,0x12,0x2, 0xde,0xa, 0x2a,0xbd,0x32,0x18,0x3, 0x74,0x1, 0x22,0xe4,0x22,0xca, +0xf8,0x7c,0xfb,0x7f,0x40,0x7a,0x1d,0xc, 0x7e,0x30,0xff,0xbe,0x48,0x0, 0x0, 0x8, +0x50,0x7e,0x1d,0x10,0xbe,0x18,0x0, 0x0, 0x8, 0x47,0xbf,0x41,0x8, 0x20,0x7e,0x1d, +0xc, 0x7f,0x4, 0x12,0x41,0x91,0x1a,0x1f,0x1b,0x15,0x7e,0x23,0x5, 0x54,0xbc,0x2f, +0x68,0x2c,0xa, 0x22,0xb, 0x24,0xa, 0x3f,0xbd,0x32,0x78,0x25,0x80,0x20,0x7e,0x1d, +0xc, 0x7e,0xd, 0x10,0x12,0x41,0x91,0xa, 0x1f,0xb, 0x15,0x7e,0x23,0x5, 0x54,0x7c, +0xb2,0x24,0xfe,0xbc,0xbf,0x68,0x7, 0x7c,0xb2,0x14,0xbc,0xbf,0x78,0x3, 0x7e,0x30, +0xff,0x7e,0x23,0x5, 0x53,0xbc,0x23,0x8, 0x5, 0xbe,0x30,0x0, 0x58,0xa, 0xe4,0x7a, +0xb3,0x5, 0x51,0x12,0x1f,0x6f,0x80,0x74,0x6c,0x22,0x80,0x65,0xe5,0x15,0xbc,0xb2, +0x68,0x5d,0xa, 0x2, 0x9, 0x10,0x0, 0x3a,0x7e,0xa3,0x5, 0x53,0x7c,0xb1,0x84,0x7c, +0x1a,0x7e,0x3, 0x5, 0x54,0xbc,0x3, 0x8, 0x8, 0x7e,0x73,0x5, 0x54,0xbc,0x71,0x38, +0xc, 0xbc,0x3, 0x18,0x3a,0x7e,0x3, 0x5, 0x54,0xbc,0x1, 0x38,0x32,0x7c,0xb3,0x7c, +0x71,0x7e,0x60,0x1, 0x12,0x40,0x89,0xb4,0x1, 0x25,0xbc,0x13,0x78,0x17,0x7e,0x1d, +0x10,0xbf,0x41,0x1a,0x33,0x8, 0x4, 0xb, 0x34,0x80,0x2, 0x1b,0x34,0x7c,0x27,0x7a, +0x23,0x5, 0x52,0x80,0x3, 0x12,0x1f,0x6f,0xe4,0x7a,0xb3,0x5, 0x51,0x80,0xd, 0xb, +0x20,0x12,0x7, 0x79,0xa, 0x2b,0xa, 0x32,0xbd,0x32,0x48,0x90,0x7c,0xb3,0xda,0xf8, +0x22,0x12,0x41,0x99,0x7a,0xb3,0x5, 0x51,0x22,0x7f,0x60,0x7f,0x71,0x7e,0x14,0x0, +0x74,0x7f,0x17,0x12,0x0, 0x89,0x74,0x7, 0x7f,0x51,0x1e,0xb4,0x1e,0xa4,0x50,0x4, +0x4e,0xb4,0x80,0x0, 0x14,0x78,0xf3,0x7e,0x14,0x0, 0x54,0x7f,0x17,0x12,0x0, 0x89, +0x7f,0x1, 0x74,0x7, 0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4, +0xbf,0x65,0x8, 0x3, 0x74,0x80,0x22,0xbf,0x61,0x58,0x2, 0xe4,0x22,0x74,0x9, 0x7f, +0x16,0x2f,0x11,0x14,0x78,0xfb,0x2f,0x0, 0x2f,0x0, 0x9f,0x10,0x7f,0x7, 0x12,0x0, +0x94,0x7c,0xb7,0x22,0xca,0x3b,0x12,0x7, 0x79,0x7c,0xeb,0xbe,0xb0,0x2, 0x50,0x2, +0x81,0x5a,0x6c,0xff,0x80,0x27,0x7e,0x70,0x5, 0xac,0x7f,0x49,0x23,0x0, 0x3e,0x59, +0x23,0x2, 0xae,0x49,0x23,0x0, 0x40,0x59,0x23,0x2, 0xb0,0x74,0xff,0x19,0xb3,0x2, +0xb2,0xa, 0x2f,0x9, 0x72,0x0, 0x3a,0x19,0x72,0x2, 0xd4,0xb, 0xf0,0x12,0x7, 0x79, +0x12,0x2f,0xb0,0x48,0xd1,0x6c,0xff,0x61,0xef,0x74,0x5, 0xac,0xbf,0x12,0x44,0x5d, +0x78,0x2, 0x61,0xed,0xa, 0x6f,0xb, 0x64,0x61,0xe7,0x74,0x5, 0xac,0xbd,0x12,0x44, +0x5d,0x78,0x2, 0x61,0xe5,0xa, 0x2f,0x9, 0x72,0x2, 0xd4,0xbe,0x73,0x5, 0x54,0x40, +0x19,0xbe,0x73,0x5, 0x53,0x50,0x13,0xa, 0x1d,0x9, 0x61,0x2, 0xd4,0xbe,0x63,0x5, +0x53,0x40,0x7, 0xa, 0x6, 0x12,0x44,0x91,0x48,0x27,0xa, 0x1d,0x9, 0x61,0x2, 0xd4, +0xbe,0x63,0x5, 0x54,0x50,0x2, 0x61,0xe5,0xbe,0x63,0x5, 0x53,0x40,0x2, 0x61,0xe5, +0xbe,0x73,0x5, 0x53,0x50,0x2, 0x61,0xe5,0xa, 0x7, 0x12,0x44,0x91,0x48,0x2, 0x61, +0xe5,0xa, 0x37,0x7e,0x53,0x5, 0x54,0xa, 0x45,0x7d,0x24,0x12,0x0, 0x46,0x7c,0xa5, +0x7a,0xa3,0x2, 0xd8,0xa, 0x3d,0x9, 0xb3,0x2, 0xd4,0xa, 0x3b,0x7d,0x24,0x12,0x0, +0x46,0x7c,0xb5,0x7a,0xb3,0x2, 0xd9,0xa, 0x2b,0xa, 0x3a,0x12,0x2f,0xda,0x8, 0x2, +0x61,0xe5,0x12,0x44,0x80,0x9d,0x32,0x12,0x2, 0xde,0xbe,0x37,0x1, 0xfe,0x48,0x2, +0x61,0xe5,0xa, 0x3f,0x9, 0xb3,0x2, 0xd4,0xa, 0x3d,0x9, 0x73,0x2, 0xd4,0x12,0x44, +0xa2,0x7a,0x37,0x2, 0xce,0xa, 0x3f,0x9, 0x73,0x2, 0xd4,0x7e,0x53,0x5, 0x54,0xa, +0x45,0x12,0x44,0x70,0x49,0x5, 0x1, 0x5c,0x7a,0xf, 0x2, 0xc2,0xa, 0x5c,0x12,0x44, +0x69,0x12,0x2d,0x6c,0x2f,0x10,0x7a,0x1f,0x2, 0xc2,0xa, 0x5d,0x9, 0x75,0x2, 0xd4, +0xa, 0x37,0x12,0x44,0x70,0x49,0x5, 0x1, 0x5c,0x7a,0xf, 0x2, 0xc6,0xa, 0x5c,0x12, +0x44,0x69,0x12,0x2d,0x6c,0x2f,0x10,0x7a,0x1f,0x2, 0xc6,0x74,0x5, 0xac,0xbd,0x49, +0x35,0x2, 0xae,0x6d,0x22,0x7e,0x6f,0x2, 0xc6,0x7f,0x6, 0x12,0x0, 0x78,0x7f,0x51, +0x74,0x5, 0xac,0xbf,0x49,0x35,0x2, 0xae,0x6d,0x22,0x7e,0x7f,0x2, 0xc2,0x7f,0x7, +0x12,0x0, 0x78,0x2f,0x15,0x7f,0x7, 0x2f,0x6, 0x12,0x0, 0xe5,0x7a,0x1f,0x2, 0xca, +0x7e,0xa0,0xbb,0x7e,0x70,0x5, 0xac,0x7f,0x19,0xa3,0x2, 0xb2,0x12,0x44,0x80,0xbd, +0x32,0x50,0xa, 0x7a,0x37,0x2, 0xd0,0x7a,0x27,0x2, 0xd2,0x80,0x8, 0x7a,0x27,0x2, +0xd0,0x7a,0x37,0x2, 0xd2,0x7e,0x37,0x2, 0xce,0xbe,0x37,0x2, 0xd0,0x38,0x6, 0x7e, +0x27,0x2, 0xd0,0x80,0xa, 0xbe,0x37,0x2, 0xd2,0x40,0xe, 0x7e,0x27,0x2, 0xd2,0x74, +0x5, 0xac,0xbf,0x59,0x25,0x2, 0xb0,0x80,0x14,0x7e,0xa0,0xcc,0x7e,0x50,0x5, 0xac, +0x5f,0x19,0xa2,0x2, 0xb2,0x74,0x5, 0xac,0xbf,0x59,0x35,0x2, 0xb0,0x7e,0x1f,0x2, +0xca,0x74,0x5, 0xac,0xbf,0x59,0x35,0x2, 0xae,0x7e,0xa0,0xaa,0x7e,0x70,0x5, 0xac, +0x7d,0x19,0xa3,0x2, 0xb2,0xb, 0xd0,0xbc,0xed,0x28,0x2, 0x41,0x4a,0xb, 0xf0,0xbc, +0xef,0x28,0x2, 0x41,0x39,0x12,0xf, 0xbf,0x7a,0xb3,0x0, 0x54,0x6c,0xff,0x80,0x56, +0x7e,0x30,0x5, 0xac,0x3f,0x9, 0x61,0x2, 0xb2,0xbe,0x60,0xaa,0x68,0x46,0x49,0x21, +0x2, 0xae,0x7e,0x73,0x0, 0x54,0x7c,0x7, 0x5e,0x0, 0xf, 0x74,0x5, 0xac,0xb0,0x59, +0x25,0x0, 0x3e,0x49,0x21,0x2, 0xb0,0x59,0x25,0x0, 0x40,0xa, 0x2f,0x9, 0x12,0x2, +0xd4,0xa, 0x20,0x19,0x12,0x0, 0x3a,0xa5,0xbe,0xbb,0x4, 0x74,0x2, 0x80,0x6, 0xa5, +0xbe,0xcc,0x6, 0x74,0x1, 0x19,0xb2,0x0, 0x52,0x12,0xd, 0x41,0x12,0x7, 0x79,0xbe, +0xb0,0x2, 0x50,0x6, 0xb, 0xf0,0xbc,0xef,0x38,0xa6,0xda,0x3b,0x22,0x9, 0xb5,0x2, +0xb2,0xbe,0xb0,0xaa,0x22,0xa, 0x4f,0xa, 0x5e,0x2d,0x54,0x3e,0x54,0x3e,0x54,0x22, +0x7d,0x24,0x12,0x0, 0x46,0x7c,0xc5,0x74,0x4, 0xac,0xbc,0x49,0x15,0x1, 0x5e,0x22, +0x74,0x5, 0xac,0xbd,0x49,0x25,0x2, 0xb0,0x74,0x5, 0xac,0xbf,0x49,0x35,0x2, 0xb0, +0x22,0x7e,0x63,0x5, 0x53,0xa, 0x56,0x7e,0x63,0x5, 0x54,0xa, 0x16,0x2d,0x15,0xbd, +0x1, 0x22,0xca,0x3b,0x7c,0x27,0x7c,0x3b,0x7e,0x93,0x5, 0x54,0xa, 0xa9,0xa, 0x83, +0x12,0x45,0xbf,0x7c,0x15,0xa, 0x92,0x7d,0x39,0x7d,0x2a,0x12,0x45,0xd6,0x7e,0xa3, +0x5, 0x53,0xa, 0xaa,0x12,0x45,0xbf,0x7c,0x5, 0x7d,0x39,0x7d,0x2a,0x12,0x0, 0x46, +0x7c,0x25,0xbc,0x81,0x78,0x4f,0x7e,0xd0,0x4, 0xac,0xd0,0x49,0xd6,0x1, 0x5e,0x49, +0xc6,0x1, 0x5c,0x7e,0xf0,0x4, 0xac,0xf2,0x49,0xf7,0x1, 0x5e,0x49,0xe7,0x1, 0x5c, +0x4c,0x11,0x68,0x14,0x49,0x36,0x1, 0x5a,0x49,0x26,0x1, 0x58,0x2f,0x61,0x49,0x37, +0x1, 0x5a,0x49,0x27,0x1, 0x58,0x2f,0x71,0x7c,0xb9,0x14,0xbc,0xb1,0x68,0x78,0x7e, +0x10,0x4, 0xac,0x1, 0x12,0x45,0xc6,0x2f,0x61,0x7e,0x10,0x4, 0xac,0x12,0x12,0x45, +0xc6,0x2f,0x71,0x80,0x62,0xa, 0x31,0xa, 0xa0,0x9d,0xa3,0x7d,0x3a,0x7c,0x7, 0xe5, +0x8, 0xa, 0x3b,0xa, 0xa2,0x9d,0xa3,0x7d,0x3a,0x7c,0x27,0xe5,0x8, 0xa, 0x3b,0xa, +0x20,0x2d,0x23,0x3e,0x24,0x3e,0x24,0x49,0xf2,0x1, 0x5e,0x49,0xe2,0x1, 0x5c,0xa, +0xa1,0xa, 0x20,0x2d,0x2a,0x3e,0x24,0x3e,0x24,0x49,0xd2,0x1, 0x5e,0x49,0xc2,0x1, +0x5c,0x2f,0x67,0xa, 0xa2,0x2d,0xa3,0x3e,0xa4,0x3e,0xa4,0x49,0x3a,0x1, 0x5e,0x49, +0x2a,0x1, 0x5c,0xa, 0x1, 0xa, 0xa2,0x2d,0xa0,0x3e,0xa4,0x3e,0xa4,0x49,0xfa,0x1, +0x5e,0x49,0xea,0x1, 0x5c,0x2f,0x71,0xb, 0x6c,0xb, 0x7c,0xbc,0xa3,0x7e,0x17,0x2, +0x3a,0x1a,0x2, 0x38,0x6, 0x1a,0x0, 0x7f,0x17,0x80,0x4, 0x1a,0x0, 0x7f,0x16,0x12, +0x0, 0x78,0x7f,0x6, 0x2f,0x7, 0x12,0x0, 0xe5,0x7d,0xb3,0x7e,0x37,0x2, 0x3a,0x12, +0x45,0xcf,0x7e,0xa7,0x1, 0xfc,0x9d,0xa3,0x2d,0xba,0x7d,0x3b,0xda,0x3b,0x22,0x7d, +0x38,0x7d,0x2a,0x2, 0x0, 0x46,0x49,0x30,0x1, 0x62,0x49,0x20,0x1, 0x60,0x22,0x7e, +0x24,0x0, 0x2, 0x2, 0x0, 0x46,0x12,0x0, 0x46,0x7c,0x85,0x7a,0x81,0x8, 0x22,0x7e, +0x73,0x2, 0x56,0xa, 0x37,0x1e,0x34,0x7a,0x73,0x5, 0x53,0xa, 0x37,0x1e,0x34,0x7a, +0x73,0x5, 0x54,0x22,0xca,0xf8,0x7c,0xfb,0x4c,0x77,0x68,0xf, 0xc2,0xaf,0x43,0xe1, +0x1, 0x7e,0x37,0x2, 0x4, 0x99,0x34,0xd2,0xaf,0x80,0x3, 0x43,0xe1,0x1, 0xc2,0x9, +0x2e,0xf0,0xff,0x92,0xa, 0xd2,0xae,0xa9,0xd6,0xb7,0xc2,0xbe,0xda,0xf8,0x22,0xca, +0x59,0xc2,0xae,0x30,0xa, 0x5, 0x7e,0xa0,0x1, 0x80,0x3, 0x7e,0xa0,0x2, 0xe5,0xe6, +0x5c,0xba,0x68,0x5, 0x75,0xe6,0x0, 0xd2,0x9, 0xd2,0xae,0xda,0x59,0x32,0x12,0x0, +0x2e,0x60,0x73,0x7e,0xb3,0x2, 0xab,0x20,0xe7,0x6c,0x7e,0xb3,0x2, 0x54,0x30,0xe0, +0x2, 0x80,0x7, 0x7e,0xb3,0x2, 0xa3,0x30,0xe1,0x6, 0x7e,0x34,0xe, 0xb0,0x80,0x4, +0x7e,0x34,0x7, 0x58,0x7e,0x27,0x2, 0xac,0x6c,0xaa,0x80,0x42,0xa, 0x1a,0x9, 0x31, +0x2, 0x7d,0x7e,0x10,0x4, 0xac,0x13,0x49,0xd0,0x0, 0xce,0x49,0xc0,0x0, 0xcc,0x7d, +0xf3,0x6d,0xee,0xbf,0x67,0x58,0x1a,0x12,0x26,0xd6,0x60,0x5, 0x3e,0x44,0x14,0x78, +0xfb,0x7c,0xb9,0xa, 0x3, 0x2e,0x4, 0x5, 0x3, 0x7e,0x9, 0x20,0x4c,0x2b,0x7a,0x9, +0x20,0xa, 0x3, 0x9, 0x20,0x5, 0x3, 0x2d,0x2, 0x7a,0x9, 0x20,0xb, 0xa0,0x7e,0x23, +0x2, 0x58,0xbc,0x2a,0x38,0xb6,0x22,0xc2,0xf, 0x6c,0x33,0x7e,0x20,0xff,0x7e,0x10, +0x5, 0xac,0x13,0x19,0x20,0x0, 0x42,0x7c,0x13,0x2e,0x10,0xc, 0x74,0xff,0xa5,0xf7, +0x7e,0x24,0xff,0xff,0x12,0x51,0x1b,0x1b,0x38,0x20,0x7c,0x13,0x2e,0x10,0xe, 0xe4, +0xa5,0xf7,0xb, 0x30,0xa5,0xbb,0x2, 0xd3,0x7e,0x23,0x0, 0x54,0x7c,0xb2,0x54,0xf, +0x78,0x26,0x7c,0xb2,0xc4,0x54,0xf, 0x78,0x3, 0x2, 0x48,0x83,0x6c,0x33,0x7e,0x4, +0x7f,0xff,0x7e,0x70,0x2, 0xac,0x73,0x59,0x3, 0x0, 0xc4,0x59,0x3, 0x0, 0xc8,0xb, +0x30,0xa5,0xbb,0x2, 0xe9,0x2, 0x48,0x83,0x7c,0xb2,0xc4,0x54,0xf, 0x78,0x2c,0x6c, +0x33,0x80,0x1a,0x12,0x48,0xf9,0x7e,0x50,0x2, 0xac,0x53,0x12,0x48,0xf0,0x59,0x32, +0x0, 0xc8,0x19,0x34,0x0, 0x42,0x7c,0x13,0x12,0x51,0xa2,0xb, 0x30,0x12,0x7, 0x79, +0xa, 0x2b,0xa, 0x33,0xbd,0x32,0x48,0xdb,0x2, 0x48,0x83,0x6c,0x33,0x80,0x4f,0x6c, +0xaa,0x7e,0x70,0x2, 0xac,0x7a,0x49,0x23,0x0, 0xc8,0x7e,0x70,0x5, 0xac,0x73,0x49, +0x33,0x0, 0x40,0x12,0x4e,0xd2,0x7e,0x70,0x2, 0xac,0x7a,0x49,0x23,0x0, 0xc4,0x7e, +0x70,0x5, 0xac,0x73,0x49,0x33,0x0, 0x3e,0x9d,0x32,0x12,0x2, 0xde,0x2d,0x43,0x12, +0x51,0x1b,0xb, 0x38,0x20,0xbd,0x24,0x28,0xc, 0x7c,0x13,0x2e,0x10,0xc, 0x7c,0xba, +0xa5,0xf7,0x1b,0x38,0x40,0xb, 0xa0,0xbe,0xa0,0x2, 0x78,0xb5,0xb, 0x30,0x12,0x7, +0x79,0xa, 0x2b,0xa, 0x33,0xbd,0x32,0x48,0xa6,0x6c,0x33,0x80,0x6e,0xd2,0xf, 0x6c, +0xaa,0x80,0x2c,0xbc,0xa3,0x68,0x26,0x7c,0x1a,0x2e,0x10,0xc, 0xa5,0xe7,0x7c,0x2b, +0x12,0x51,0xaa,0xbc,0xb2,0x78,0x16,0x7c,0xba,0x12,0x51,0x1d,0xb, 0x38,0x20,0x12, +0x51,0x1b,0xb, 0x38,0x30,0xbd,0x32,0x40,0x4, 0xc2,0xf, 0x80,0xd, 0xb, 0xa0,0x12, +0x7, 0x79,0xa, 0x2b,0xa, 0x3a,0xbd,0x32,0x48,0xc9,0x30,0xf, 0x2c,0x12,0x51,0xaa, +0x7c,0x5b,0xbe,0x50,0x2, 0x50,0x22,0x7c,0x15,0x12,0x51,0xa2,0x7e,0x70,0x5, 0xac, +0x73,0x19,0x53,0x0, 0x42,0x49,0x43,0x0, 0x3e,0x74,0x2, 0xac,0x5b,0x59,0x42,0x0, +0xc4,0x49,0x33,0x0, 0x40,0x59,0x32,0x0, 0xc8,0xb, 0x30,0x12,0x7, 0x79,0xa, 0x2b, +0xa, 0x33,0xbd,0x32,0x48,0x87,0x6c,0x33,0x80,0x39,0x7e,0x70,0x5, 0xac,0x73,0x9, +0xb3,0x0, 0x42,0xb4,0xff,0x2b,0x6c,0xaa,0x7c,0x1a,0x2e,0x10,0xe, 0xa5,0xe7,0x70, +0x19,0x74,0x1, 0xa5,0xf7,0x12,0x48,0xf9,0x7e,0x50,0x2, 0xac,0x5a,0x12,0x48,0xf0, +0x59,0x32,0x0, 0xc8,0x19,0xa4,0x0, 0x42,0x80,0x7, 0xb, 0xa0,0xbe,0xa0,0x2, 0x40, +0xd7,0xb, 0x30,0x12,0x7, 0x79,0xa, 0x2b,0xa, 0x33,0xbd,0x32,0x48,0xbc,0x6c,0x33, +0x12,0x48,0xe8,0x70,0x8, 0x12,0x37,0xf0,0xac,0x73,0x12,0x49,0xb9,0xb, 0x30,0xa5, +0xbb,0x2, 0xed,0x12,0x49,0x3, 0x6c,0x33,0x12,0x48,0xe8,0xb4,0x1, 0x21,0xa, 0x33, +0x9, 0xb3,0x0, 0xc2,0xbe,0xb0,0x3, 0x68,0x3, 0xb4,0x1, 0x9, 0xe4,0xa, 0x43,0x19, +0xb4,0x0, 0xc0,0x80,0x3b,0x74,0x2, 0xa, 0x43,0x19,0xb4,0x0, 0xc0,0x80,0x31,0xa, +0x33,0x9, 0xb3,0x0, 0xc2,0xbe,0xb0,0x2, 0x68,0x2, 0x70,0x1c,0x74,0x1, 0xa, 0x43, +0x19,0xb4,0x0, 0xc0,0xbe,0xa0,0x2, 0x50,0x17,0x7c,0x6a,0xb, 0xa0,0x7e,0x70,0x5, +0xac,0x67,0x19,0x33,0x0, 0x42,0x80,0x8, 0x74,0x3, 0xa, 0x43,0x19,0xb4,0x0, 0xc0, +0xb, 0x30,0xbe,0x30,0x2, 0x40,0xa1,0x22,0x7c,0x13,0x2e,0x10,0xe, 0xa5,0xe7,0x22, +0x59,0x32,0x0, 0xc4,0x49,0x34,0x0, 0x40,0x22,0x7e,0x90,0x5, 0xac,0x93,0x49,0x34, +0x0, 0x3e,0x22,0x7e,0xa3,0x0, 0x54,0x5e,0xa0,0xf, 0x22,0x12,0x49,0x3, 0x78,0x2, +0x21,0xae,0x6c,0x33,0x12,0x49,0xaf,0xbe,0x20,0x2, 0x50,0x1d,0xa, 0x32,0x9, 0xb3, +0x0, 0xc0,0x70,0x15,0x49,0x2, 0x0, 0x68,0x7e,0x70,0x4, 0xac,0x72,0x59,0x3, 0x5, +0x49,0x49,0x2, 0x0, 0x6a,0x59,0x3, 0x5, 0x4b,0xb, 0x30,0xa5,0xbb,0x2, 0xd5,0x6c, +0x33,0x80,0x67,0x12,0x49,0xaf,0xbe,0x20,0x2, 0x50,0x5d,0x7e,0x70,0x4, 0xac,0x72, +0x49,0x43,0x5, 0x49,0x49,0x2, 0x0, 0x68,0x9d,0x4, 0x49,0x33,0x5, 0x4b,0x49,0x42, +0x0, 0x6a,0x9d,0x43,0x7d,0x30,0x12,0x2f,0xdc,0x18,0x23,0x7d,0x34,0x12,0x2f,0xdc, +0x18,0x1c,0x7e,0x70,0x4, 0xac,0x72,0x49,0xf3,0x5, 0x49,0x7e,0x50,0x5, 0xac,0x53, +0x59,0xf2,0x0, 0x68,0x49,0x33,0x5, 0x4b,0x59,0x32,0x0, 0x6a,0x80,0x1a,0x7e,0x70, +0x5, 0xac,0x73,0x49,0xf3,0x0, 0x68,0x7e,0x50,0x4, 0xac,0x52,0x59,0xf2,0x5, 0x49, +0x49,0x33,0x0, 0x6a,0x59,0x32,0x5, 0x4b,0xb, 0x30,0xbc,0xa3,0x38,0x95,0x22,0x7e, +0x50,0x5, 0xac,0x53,0x9, 0x22,0x0, 0x6c,0x22,0x59,0x43,0x0, 0xc4,0x59,0x43,0x0, +0xc8,0x22,0x7c,0x6b,0x7e,0x53,0x0, 0x54,0x7c,0xb5,0x54,0xf, 0x68,0x10,0x7c,0x45, +0x1b,0x40,0x5e,0x40,0xf, 0x5e,0x50,0xf0,0x4c,0x54,0x7a,0x53,0x0, 0x54,0xa5,0xbe, +0x0, 0x1c,0xa5,0xbf,0x2, 0x18,0x7e,0x73,0x0, 0x3b,0x7a,0x73,0x0, 0x3a,0x7e,0x1f, +0x0, 0x44,0x7e,0x33,0x0, 0x43,0x7a,0x1f,0x0, 0x3f,0x7a,0x33,0x0, 0x3e,0x22,0xca, +0x79,0x7e,0x23,0x0, 0x54,0x5e,0x20,0xf, 0x6c,0xaa,0x41,0x9f,0x7e,0x70,0x5, 0xac, +0x7a,0x49,0xf3,0x0, 0x3e,0x7e,0x4, 0x0, 0xf, 0x7d,0x40,0x9e,0xf4,0x0, 0x20,0xbd, +0x4f,0x38,0xa, 0x7e,0x24,0x1, 0xc0,0x9d,0x20,0xbd,0x2f,0x50,0x42,0x7e,0x53,0x0, +0x54,0x7c,0xb5,0xc4,0x7c,0x3b,0x5e,0x30,0xf, 0x7c,0xb5,0x54,0xf, 0xbc,0xb3,0x78, +0x27,0xa5,0xba,0x1, 0x23,0x7e,0xf0,0x4, 0xac,0xfa,0x49,0x27,0x5, 0x39,0xbe,0x24, +0x7f,0xff,0x68,0x14,0x49,0xe7,0x5, 0x3b,0xbe,0xe4,0x7f,0xff,0x68,0xa, 0x59,0x23, +0x0, 0x3e,0x59,0xe3,0x0, 0x40,0x80,0x7, 0x7c,0xba,0x7c,0x72,0x12,0x49,0xc2,0x12, +0x4a,0xb2,0xc4,0x7c,0x3b,0x5e,0x30,0xf, 0x7c,0xb7,0x54,0xf, 0xbc,0xb3,0x68,0x9, +0x7e,0xe4,0x7f,0xff,0x12,0x4a,0xa8,0x80,0x10,0x7e,0x50,0x5, 0xac,0x5a,0x49,0xe2, +0x0, 0x3e,0x12,0x4a,0xa8,0x49,0xe2,0x0, 0x40,0x59,0xe3,0x5, 0x3b,0xb, 0xa0,0xbc, +0x2a,0x28,0x2, 0x41,0xc, 0xda,0x79,0x22,0x7e,0x70,0x4, 0xac,0x7a,0x59,0xe3,0x5, +0x39,0x22,0x7e,0x73,0x0, 0x54,0x7c,0xb7,0x22,0x6c,0xaa,0x7e,0x90,0x5, 0xac,0x9a, +0x9, 0xb4,0x0, 0x6c,0xbe,0xb0,0xff,0x68,0xa, 0x49,0x34,0x0, 0x6a,0xbe,0x34,0x3, +0x1f,0x50,0x33,0xb, 0xa0,0xbe,0xa0,0x2, 0x40,0xe1,0x12,0x4a,0xb2,0x54,0xf, 0x78, +0x20,0x7c,0xb7,0xc4,0x7c,0x6b,0x5e,0x60,0xf, 0xbe,0x60,0x0, 0x28,0x13,0xe5,0x37, +0xbe,0xb0,0x1, 0x50,0x8, 0x12,0xd, 0x48,0xd2,0x3, 0x5, 0x37,0x22,0x75,0x37,0x0, +0x22,0x75,0x37,0x0, 0xc2,0x3, 0x22,0x7d,0x2, 0x7d,0xf3,0x6d,0x44,0xd2,0xf, 0x12, +0xb, 0xac,0xbe,0x24,0x0, 0x8, 0x48,0x2, 0xc2,0xf, 0xbe,0xf4,0x0, 0x20,0x40,0x21, +0xbe,0xf4,0x0, 0x4d,0x50,0x1b,0x7e,0x14,0x0, 0x4d,0x30,0xf, 0xa, 0x9d,0x1f,0x1b, +0x14,0x2e,0x14,0x1, 0xc1,0x80,0x2d,0x9d,0x1f,0x1b,0x14,0x2e,0x14,0x1, 0x67,0x80, +0x23,0xbe,0xf4,0x1, 0xb3,0x28,0x2f,0xbe,0xf4,0x1, 0xe0,0x38,0x29,0x7d,0x1f,0x30, +0xf, 0xa, 0x9e,0x14,0x1, 0xb4,0x2e,0x14,0x1, 0x94,0x80,0x8, 0x9e,0x14,0x1, 0xb4, +0x2e,0x14,0x1, 0x3a,0x12,0x1d,0x9e,0x1a,0x4b,0x7e,0x14,0x0, 0xa, 0x7d,0x34,0xad, +0x31,0x12,0x4b,0x84,0x7d,0x43,0x7d,0x54,0x1a,0x4a,0x1a,0x48,0x12,0x4e,0xda,0x2f, +0x12,0x2, 0x18,0x5c,0x7e,0x24,0x0, 0xa, 0x2, 0x0, 0x46,0xca,0xf8,0x7e,0xe4,0x0, +0xc8,0x7e,0xd4,0x1, 0x90,0x7e,0xc4,0x0, 0xf0,0x6c,0xff,0x81,0x9f,0x12,0x4c,0xe7, +0x49,0x23,0x0, 0x4, 0x7a,0x27,0x5, 0x55,0x49,0xb3,0x0, 0x6, 0xbe,0xb4,0x3, 0x20, +0x40,0x2, 0x81,0xb2,0x7e,0x37,0x5, 0x55,0x9d,0x3c,0x12,0x2, 0xde,0x7d,0xac,0x9d, +0xa3,0x7e,0x24,0x0, 0xa, 0x7d,0x3a,0x8d,0x32,0x7d,0xa3,0xb, 0xa4,0x7d,0x3b,0x8d, +0x3d,0x7a,0x27,0x5, 0x57,0x7d,0x32,0x9d,0x3e,0x12,0x2, 0xde,0x12,0x4b,0x84,0x7d, +0x93,0xb, 0x94,0xbd,0xdb,0x40,0x6, 0x7e,0x37,0x4, 0xab,0x80,0x4, 0x7e,0x37,0x4, +0x86,0x7e,0x24,0x0, 0x64,0x8d,0x32,0x7d,0xf3,0xbe,0xf4,0x0, 0x1, 0x50,0x4, 0x6d, +0xff,0x80,0xa, 0xbe,0xf4,0x0, 0x28,0x28,0x4, 0x7e,0xf4,0x0, 0x28,0x7d,0x19,0xad, +0x1a,0x6d,0x0, 0x7f,0x10,0x7d,0x1f,0x12,0x0, 0x89,0x7f,0x1, 0xbd,0xeb,0x40,0x11, +0x12,0x4c,0xb5,0x7d,0x3b,0x6d,0x22,0xbf,0x10,0x50,0x4e,0x6d,0xbb,0x80,0x61,0x80, +0x48,0xbd,0xdb,0x40,0x1b,0x7f,0x10,0x74,0x7, 0x12,0x4c,0xb9,0x12,0x4c,0xdd,0xb4, +0x1, 0x2, 0x9f,0x0, 0x7d,0x81,0x2d,0xb8,0xbd,0xdb,0x50,0x44,0x7d,0xbd,0x80,0x40, +0x7d,0x8e,0x2d,0x8d,0xbd,0x8b,0x40,0x27,0x7f,0x10,0x74,0x7, 0x12,0x4c,0xb9,0x12, +0x4c,0xdd,0xb4,0x1, 0x2, 0x9f,0x0, 0x7d,0x5d,0x6d,0x44,0x2f,0x20,0x7d,0x3b,0x6d, +0x22,0xbf,0x12,0x50,0x4, 0x7d,0xbd,0x80,0x17,0x7d,0x81,0x9d,0xb8,0x80,0x11,0x12, +0x4c,0xb5,0x7d,0x81,0x2d,0xb8,0xbe,0xb4,0x3, 0x20,0x40,0x4, 0x7e,0xb4,0x3, 0x1f, +0x74,0x5, 0xac,0xbf,0x7d,0x85,0x2e,0x85,0x2c,0x59,0xb8,0x0, 0x6, 0xb, 0xf0,0x7e, +0x85,0x2c,0x9, 0xb8,0x0, 0x1a,0x54,0xf, 0xa, 0x3b,0xa, 0x8f,0xbd,0x83,0x58,0x2, +0x61,0x9d,0xda,0xf8,0x22,0x7f,0x10,0x74,0x9, 0x7e,0x30,0x4, 0x7e,0x20,0xc8,0x12, +0x4c,0xc5,0x7f,0x1, 0x22,0xca,0xf8,0x7c,0xf2,0x12,0x4f,0xb1,0xa, 0x19,0x6d,0x0, +0x12,0x0, 0x94,0xa, 0x1f,0x6d,0x0, 0x12,0x0, 0x94,0xda,0xf8,0x22,0xa, 0x8f,0x2e, +0x85,0x2c,0x9, 0xb8,0x0, 0x18,0x22,0x7e,0x70,0x5, 0xac,0x7f,0x2e,0x35,0x2c,0x22, +0xca,0xf8,0x7c,0xfb,0x74,0x4, 0xac,0xbf,0x49,0x25,0x4, 0x7c,0x12,0x4c,0xe7,0x49, +0x33,0x0, 0x4, 0x9d,0x32,0x12,0x2, 0xde,0x7d,0x13,0x74,0x4, 0xac,0xbf,0x49,0x25, +0x4, 0x7e,0x12,0x4c,0xe7,0x49,0x33,0x0, 0x6, 0x9d,0x32,0x12,0x2, 0xde,0xbe,0x14, +0x0, 0xa, 0x58,0x22,0xbe,0x34,0x0, 0xf, 0x58,0x1c,0xa, 0x3f,0x7d,0x23,0x2e,0x24, +0x4, 0xaf,0x7e,0x29,0xb0,0x4, 0x7a,0x29,0xb0,0x9, 0x53,0x4, 0xaf,0xbe,0x50,0x20, +0x28,0x20,0x74,0x20,0x80,0xc, 0xa, 0x3f,0x9, 0xa3,0x4, 0xaf,0xbe,0xa0,0x3, 0x38, +0x7, 0xe4,0x19,0xb3,0x4, 0xaf,0x80,0xa, 0x2e,0x34,0x4, 0xaf,0x7c,0xba,0x14,0x7a, +0x39,0xb0,0xa, 0x3f,0x2e,0x35,0x2c,0x7e,0x39,0xb0,0x12,0x4e,0xa2,0x60,0xa, 0x74, +0x78,0xa, 0x3f,0x19,0xb3,0x4, 0x7a,0x80,0x13,0xa, 0x3f,0x9, 0xb3,0x4, 0x7a,0xbe, +0xb0,0x0, 0x28,0x8, 0x2e,0x34,0x4, 0x7a,0x14,0x7a,0x39,0xb0,0x7e,0x90,0x5, 0xac, +0x9f,0x2e,0x45,0x2c,0x49,0x34,0x0, 0x4, 0x74,0x4, 0xac,0xbf,0x59,0x35,0x4, 0x7c, +0x49,0x34,0x0, 0x6, 0x59,0x35,0x4, 0x7e,0xda,0xf8,0x22,0xca,0xf8,0x7e,0xd5,0x2c, +0x9, 0xfd,0x0, 0x1a,0x5e,0xf0,0xf, 0x78,0x8, 0x12,0x4e,0x86,0x12,0x4e,0x98,0x80, +0x55,0xbe,0xf0,0x1, 0x78,0x1a,0x7e,0x73,0x4, 0xa8,0xbe,0x70,0x3, 0x50,0x5, 0x12, +0x4e,0x86,0x80,0x9, 0x12,0x4e,0x90,0x28,0x4, 0xe4,0x12,0x4e,0x19,0xe4,0x80,0x33, +0xbe,0xf0,0x2, 0x78,0x31,0x7e,0x73,0x4, 0x79,0xbe,0x70,0x3, 0x50,0x8, 0x12,0x4e, +0x86,0x12,0x4e,0x98,0x80,0x17,0x12,0x4e,0x90,0x28,0x4, 0xe4,0x12,0x4e,0x19,0x7e, +0x73,0x4, 0xb0,0xbe,0x70,0x3, 0x28,0x5, 0x74,0x1, 0x12,0x4e,0x19,0xe4,0x12,0x4c, +0xf0,0x74,0x1, 0x12,0x4c,0xf0,0xda,0xf8,0x22,0x7c,0xab,0x7e,0x70,0x4, 0xac,0x7a, +0x49,0x23,0x4, 0x7c,0x12,0x4e,0x7d,0x49,0x33,0x0, 0x4, 0x12,0x4e,0xd2,0x7e,0x70, +0x4, 0xac,0x7a,0x49,0x23,0x4, 0x7e,0x12,0x4e,0x7d,0x49,0x33,0x0, 0x6, 0x9d,0x32, +0x12,0x2, 0xde,0xbe,0x44,0x0, 0x14,0x58,0x33,0xbe,0x34,0x0, 0x1e,0x58,0x2d,0xa, +0x3a,0x9, 0xb3,0x4, 0x7a,0x60,0x25,0x7e,0x70,0x4, 0xac,0x7a,0x49,0x43,0x4, 0x7c, +0x12,0x4e,0x7d,0x59,0x43,0x0, 0x4, 0x7e,0x70,0x4, 0xac,0x7a,0x49,0x33,0x4, 0x7e, +0x7e,0x50,0x5, 0xac,0x5a,0x2e,0x25,0x2c,0x59,0x32,0x0, 0x6, 0x22,0x7e,0x70,0x5, +0xac,0x7a,0x2e,0x35,0x2c,0x22,0xe4,0x7a,0xb3,0x4, 0xaf,0x7a,0xb3,0x4, 0x7a,0x22, +0x7e,0x73,0x4, 0xaf,0xbe,0x70,0x3, 0x22,0xe4,0x7a,0xb3,0x4, 0xb0,0x7a,0xb3,0x4, +0x7b,0x22,0xca,0x79,0x7c,0xeb,0x6c,0xff,0x7c,0xbe,0x7e,0x30,0x4, 0xac,0x3e,0x12, +0x13,0xa7,0x12,0x4f,0x77,0x7c,0xab,0x7e,0x30,0x4, 0xac,0x3e,0x12,0x13,0xa7,0xbe, +0x18,0x3a,0x98,0x8, 0x8, 0xbe,0xa0,0xa, 0x50,0x3, 0x7e,0xf0,0x1, 0x7c,0xbf,0xda, +0x79,0x22,0x9d,0x32,0x12,0x2, 0xde,0x7d,0x43,0x22,0x49,0x30,0x0, 0x2, 0xb, 0x8, +0x20,0x22,0xca,0x79,0x6c,0xff,0x7e,0x70,0x7, 0xac,0x7f,0x7d,0x23,0x2e,0x24,0x4, +0x91,0x7e,0x29,0xb0,0x54,0xfe,0x7a,0x29,0xb0,0x9f,0x0, 0x59,0x13,0x4, 0x8d,0x59, +0x3, 0x4, 0x8b,0xe4,0x19,0xb3,0x4, 0x8f,0xb, 0xf0,0xbe,0xf0,0x4, 0x78,0xd7,0x6c, +0xff,0x80,0x59,0xa, 0x3f,0x2e,0x35,0x2c,0x7e,0x39,0xe0,0x7e,0x30,0x7, 0xac,0x3f, +0x19,0xe1,0x4, 0x90,0x7e,0x10,0x4, 0xac,0x1e,0x2e,0x5, 0x2a,0x12,0x4e,0xda,0x59, +0x31,0x4, 0x8d,0x59,0x21,0x4, 0x8b,0x7c,0xbe,0x12,0x4f,0x77,0x7c,0xab,0x7e,0x50, +0x7, 0xac,0x5f,0x19,0xa2,0x4, 0x8f,0x7d,0x32,0x12,0x2f,0xb7,0x44,0x1, 0x7a,0x39, +0xb0,0xbe,0xe0,0x8, 0x40,0xc, 0xbe,0xe0,0x18,0x50,0x7, 0x7e,0x39,0xb0,0x44,0x2, +0x80,0x5, 0x7e,0x39,0xb0,0x54,0xfd,0x7a,0x39,0xb0,0xb, 0xf0,0x12,0x29,0xe0,0x12, +0x2f,0xb0,0x48,0x9f,0xda,0x79,0x22,0x7f,0x71,0x12,0xb, 0xac,0xbe,0x24,0x0, 0x8, +0x58,0x6, 0x7e,0x7, 0x4, 0xab,0x80,0x4, 0x7e,0x7, 0x4, 0x86,0xbe,0x78,0x75,0x30, +0x8, 0x0, 0xbe,0x78,0x0, 0x0, 0x58,0x4, 0x6d,0x11,0x80,0x6, 0x7f,0x17,0x2f,0x11, +0x7d,0x13,0x7d,0x51,0x8d,0x50,0xbe,0x54,0x0, 0x64,0x28,0x4, 0x7e,0x54,0x0, 0x64, +0x22,0x7c,0x93,0xa, 0x1b,0x6d,0x0, 0x2, 0x0, 0x78,0x7e,0x34,0x0, 0x1, 0x7a,0x37, +0x4, 0xa9,0x7a,0x37,0x4, 0xab,0xe4,0x7a,0xb3,0x4, 0xad,0x7e,0xb3,0x4, 0xae,0x54, +0xf9,0x7a,0xb3,0x4, 0xae,0x54,0xfe,0x7a,0xb3,0x4, 0xae,0x7a,0x37,0x4, 0x84,0x7a, +0x37,0x4, 0x86,0xe4,0x7a,0xb3,0x4, 0x88,0x7e,0xb3,0x4, 0x89,0x54,0xf9,0x7a,0xb3, +0x4, 0x89,0x54,0xfe,0x7a,0xb3,0x4, 0x89,0x22,0x7e,0x45,0x2c,0x9, 0xa4,0x0, 0x1a, +0x5e,0xa0,0xf, 0x78,0x7, 0xe4,0x7a,0xb3,0x4, 0xa8,0x80,0x3d,0xbe,0xa0,0x1, 0x78, +0x1f,0xe4,0x7a,0xb3,0x4, 0x79,0x7e,0xb3,0x4, 0xa8,0x4, 0x7a,0xb3,0x4, 0xa8,0x7e, +0x73,0x4, 0xa8,0xbe,0x70,0xc8,0x28,0x25,0x74,0xc8,0x7a,0xb3,0x4, 0xa8,0x80,0x1d, +0xe4,0x7a,0xb3,0x4, 0xa8,0x7e,0xb3,0x4, 0x79,0x4, 0x7a,0xb3,0x4, 0x79,0x7e,0x73, +0x4, 0x79,0xbe,0x70,0xc8,0x28,0x6, 0x74,0xc8,0x7a,0xb3,0x4, 0x79,0x7e,0xb3,0x4, +0xa7,0x60,0x5, 0x14,0x7a,0xb3,0x4, 0xa7,0x22,0x49,0x43,0x0, 0x2, 0x9, 0x53,0x0, +0x4, 0x9, 0xa3,0x0, 0x5, 0x7c,0xba,0x1e,0xb0,0x54,0x3, 0xbe,0xb0,0x0, 0x28,0x30, +0xbe,0x44,0xb, 0xb8,0x28,0x2, 0x80,0x18,0xbe,0x44,0x7, 0xd0,0x28,0x7, 0xbe,0x50, +0x14,0x38,0x28,0x80,0xb, 0xbe,0x44,0x3, 0x20,0x28,0xc, 0xbe,0x50,0x10,0x38,0x1b, +0x12,0x50,0xac,0x44,0x1, 0x80,0x5, 0x12,0x50,0xac,0x54,0xfe,0x7a,0x49,0xb0,0x22, +0x2e,0x34,0x0, 0x5, 0x7c,0xba,0x54,0xfe,0x7a,0x39,0xb0,0x22,0x7d,0x43,0x2e,0x44, +0x0, 0x5, 0x7c,0xba,0x22,0x2f,0x7, 0x12,0x0, 0x94,0x7a,0x1f,0x2, 0xc2,0x7e,0x24, +0x2, 0xc2,0x7e,0x37,0x2, 0xc6,0x7c,0xbc,0x7e,0x17,0x2, 0x8, 0x99,0x14,0x7e,0x1f, +0x2, 0xc2,0x7c,0xbc,0x7e,0x17,0x2, 0xa, 0x89,0x14,0xe5,0x8, 0xa, 0x3b,0x9, 0xb3, +0x2, 0x7d,0xf5,0xc, 0x7e,0xb3,0x2, 0xab,0x22,0xe5,0xe2,0xa, 0x7b,0x6d,0x66,0xe5, +0xe2,0xf5,0xb, 0xe5,0xb, 0x7c,0x6b,0x6c,0x77,0x6d,0x22,0x22,0x7e,0x73,0x5, 0x53, +0xa, 0x27,0x1b,0x24,0xa, 0x3c,0xbd,0x32,0x7e,0x17,0x1, 0xfc,0x1a,0x2, 0x22,0x7e, +0x34,0x0, 0xcc,0x7e,0x24,0x0, 0x90,0xe4,0x2, 0x2, 0xee,0x7c,0xb3,0x3e,0xb0,0x24, +0x8, 0xa, 0x3b,0x22,0xe5,0x8, 0xa, 0x3b,0x9, 0x23,0x2, 0x7d,0x7a,0x21,0xc, 0x7e, +0x30,0x4, 0xac,0x23,0x22,0x1a,0x0, 0x7e,0x7f,0x2, 0xb6,0x7f,0x17,0x12,0x0, 0x78, +0x7e,0xf, 0x2, 0xba,0x22,0x49,0x31,0x0, 0xce,0x49,0x21,0x0, 0xcc,0x22,0x7e,0x73, +0x2, 0x53,0xa, 0x17,0x6d,0x0, 0x22,0x7e,0x14,0x0, 0xc, 0xad,0x13,0x7e,0x50,0x4, +0xac,0x5e,0x2d,0x21,0x22,0x7e,0xa1,0xc, 0x74,0x2, 0xa4,0x22,0x7e,0xb3,0x2, 0xa3, +0x54,0x1, 0x7e,0x70,0x1, 0x22,0x7e,0x24,0x0, 0x12,0x74,0xff,0x2, 0x2, 0xee,0x59, +0x35,0x0, 0xce,0x59,0x25,0x0, 0xcc,0x22,0x49,0x31,0x0, 0xca,0x49,0x21,0x0, 0xc8, +0x22,0x49,0xb1,0x0, 0xce,0x49,0xa1,0x0, 0xcc,0x22,0x7e,0xb3,0x0, 0x54,0xc4,0x54, +0xf, 0x22,0x2e,0x10,0xe, 0x74,0x1, 0xa5,0xf7,0x22,0x7c,0x13,0x2e,0x10,0xc, 0xa5, +0xe7,0x22,0x7e,0x34,0x0, 0x3c,0x7a,0x35,0x35,0x22,0x59,0x34,0x0, 0x2, 0x1b,0x48, +0x20,0x22,0x7e,0x31,0xc, 0x74,0x4, 0xac,0x3b,0x22,0xa, 0x2e,0xa, 0x3f,0x2, 0x0, +0x46,0x51,0xd1,0xae,0x2e,0x30,0xcf,0x3, 0xd8, \ No newline at end of file diff --git a/drivers/input/touchscreen/focaltech/FT6x06_4Column_Ver0x11_20141206_app.h b/drivers/input/touchscreen/focaltech/FT6x06_4Column_Ver0x11_20141206_app.h new file mode 100644 index 00000000..56692dd1 --- /dev/null +++ b/drivers/input/touchscreen/focaltech/FT6x06_4Column_Ver0x11_20141206_app.h @@ -0,0 +1,1339 @@ +0x2, 0x2, 0x76,0x2, 0x47,0x25,0x2, 0xf, 0xfa,0x22,0x22,0x2, 0x0, 0x2a,0x1e,0x44, +0x1e,0x44,0x1e,0x44,0x22,0xa2,0xc, 0xe4,0x33,0x22,0x22,0x2, 0x42,0x93,0x74,0x5, +0xac,0xbf,0x9, 0x75,0x0, 0x6d,0x22,0x2, 0x42,0xe, 0x32,0x2, 0x46,0xb9,0x22,0xff, +0xff,0xff,0xff,0x2, 0x4b,0xb2,0x74,0x5, 0xac,0xbf,0x49,0x45,0x0, 0x3f,0x22,0xff, +0xff,0xff,0xff,0x2, 0x47,0x2, 0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, 0xb2,0xd5,0x6e, +0x24,0xff,0xff,0xb, 0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e,0x34,0xff,0xff, +0xb, 0x34,0x8d,0x32,0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d,0x32,0x30,0xd5, +0x6, 0x6e,0x34,0xff,0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d,0x2, 0x7d,0x21, +0xad,0x5, 0x2d,0x12,0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31,0xad,0x10,0x2d, +0x21,0x22,0x6d,0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78,0x27,0x8d,0x31, +0x7d,0x12,0x6d,0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11,0x2d,0x44,0x50, +0x2, 0xa5,0xf, 0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78,0xed,0x7f,0x1, +0x6d,0x22,0x7d,0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, 0x2f,0x0, 0x40, +0x4, 0xbd,0x4, 0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d,0x23,0x7d,0x31, +0x7d,0x10,0x6d,0x0, 0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2,0xd5,0x9f,0x22, +0x9f,0x20,0x7f,0x2, 0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22,0x9f,0x21,0x7f, +0x12,0x12,0x0, 0x94,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12,0x0, 0x94,0x30, +0xd5,0x6, 0x9f,0x22,0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1a,0x1e, +0x54,0x68,0xe, 0xb, 0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15,0x1b,0x54,0x78, +0xf2,0x50,0x6, 0x7e,0x39,0x40,0x7a,0x19,0x40,0x22,0xff,0xff,0xff,0xff,0xfe,0xfe, +0xfe,0xfd,0xfc,0xfc,0xfb,0xfb,0xfa,0xfa,0xfa,0xf9,0xf8,0xf7,0xf7,0xf6,0xf5,0xf5, +0xf4,0xf3,0xf2,0xf2,0xf1,0xf0,0xf0,0xef,0xee,0xed,0xec,0xec,0xeb,0xea,0xe9,0xe7, +0xe5,0xe4,0xe2,0xe0,0xe0,0xe0,0xe0,0x1, 0x2, 0x3, 0x3, 0x4, 0x4, 0x4, 0x5, 0x5, +0x6, 0x6, 0x7, 0x7, 0x7, 0x8, 0x8, 0x9, 0xa, 0xa, 0xb, 0xb, 0xc, 0xd, 0xd, 0xe, +0xf, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x21, +0x23,0x26,0x2a,0x2d,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfb, +0xfa,0xfa,0xfa,0xf9,0xf8,0xf7,0xf7,0xf6,0xf5,0xf5,0xf4,0xf3,0xf2,0xf2,0xf1,0xf0, +0xf0,0xef,0xee,0xed,0xec,0xec,0xeb,0xea,0xe9,0xe7,0xe5,0xe4,0xe2,0xe0,0xe0,0xe0, +0xe0,0x1, 0x2, 0x3, 0x3, 0x4, 0x4, 0x4, 0x5, 0x5, 0x6, 0x6, 0x7, 0x7, 0x7, 0x8, +0x8, 0x9, 0xa, 0xa, 0xb, 0xb, 0xc, 0xd, 0xd, 0xe, 0xf, 0xf, 0x10,0x11,0x12,0x13, +0x14,0x15,0x16,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x21,0x23,0x26,0x2a,0x2d,0x1a,0x19, +0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0xf, 0xe, 0xd, 0xc, 0xb, 0x1b,0x1c, +0x1d,0x1e,0x1f,0x20,0x21,0x22,0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0x23,0x2, +0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, +0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x3, +0x3, 0x5, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x22, +0x22,0x22,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x22, +0x22,0x22,0x1a,0x19,0xc, 0xb, 0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0xf, +0xe, 0xd, 0x1b,0x1c,0x9, 0xa, 0x1d,0x1e,0x1f,0x20,0x21,0x22,0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x23,0x2, 0x1, 0x0, 0x75,0x84,0x1, 0x7e,0x44,0x8, 0x1f,0xe4,0x7a,0x49, +0xb0,0x1b,0x44,0x78,0xf9,0x7e,0xf8,0x5, 0x7e,0xc2,0xb, 0x75,0x31,0x0, 0x75,0x32, +0x0, 0x75,0x33,0x0, 0x75,0x1e,0x0, 0x75,0x1f,0x0, 0x75,0x22,0x0, 0xc2,0x7, 0xd2, +0x8, 0x75,0x34,0x0, 0x75,0x35,0x0, 0x75,0x1a,0x0, 0x75,0x36,0x0, 0x75,0x37,0x0, +0xc2,0xc, 0xd2,0x9, 0xc2,0xa, 0x75,0x38,0x0, 0xc2,0xd, 0xc2,0xe, 0x7e,0x4, 0x0, +0xff,0x7e,0x14,0x3, 0x34,0xb, 0xa, 0x40,0x5d,0x44,0x68,0x1a,0x69,0x20,0x0, 0x2, +0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29,0xb0,0xb, 0x24,0xb, 0xc, +0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x41,0x88,0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, +0x8, 0x9, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x1a,0x1b,0x1c,0x1d, +0x1e,0x1f,0x20,0x21,0x22,0x7d,0x23,0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22, +0x6d,0x33,0x9d,0x32,0x22,0x7d,0x13,0x80,0x7, 0x1b,0x24,0x7a,0x19,0xb0,0xb, 0x14, +0x4d,0x22,0x78,0xf5,0x22,0x10,0x10,0x10,0x1c,0x19,0x14,0x10,0xe, 0xc, 0xb, 0xa, +0x9, 0x8, 0x7, 0x6, 0x0, 0x18,0x5, 0x10,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x1, 0x5, 0x7e,0x0, 0x0, 0x24,0x3, 0xd1,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, +0x55,0x0, 0x0, 0x24,0x4, 0x56,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x24,0x4, 0x7a,0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x1, 0x4, 0xfa,0x0, 0x0, 0x1, 0x4, 0xfc,0x0, 0x0, 0x1, 0x4, 0xfd, +0x0, 0x0, 0x1, 0x4, 0xff,0x0, 0x0, 0x1, 0x5, 0x76,0x0, 0x0, 0x1, 0x5, 0x77,0xff, +0x0, 0x1, 0x5, 0x78,0x10,0x0, 0x1, 0x5, 0x79,0x8, 0x0, 0x1, 0x5, 0x5d,0x0, 0x0, +0x10,0x5, 0x5e,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f, +0xff,0x7f,0xff,0x0, 0x0, 0xca,0x3b,0x7e,0xa3,0x0, 0x55,0x7c,0xca,0x5e,0xc0,0xf, +0x7c,0xba,0xc4,0x54,0xf, 0xf5,0x8, 0x4c,0xcc,0x78,0x2f,0x12,0x9, 0x14,0xe5,0x8, +0xbe,0xb0,0x0, 0x38,0x2, 0xe1,0x4b,0x6c,0xff,0x7e,0xa0,0xff,0x7e,0x70,0x5, 0xac, +0x7f,0x19,0xa3,0x0, 0x77,0xb, 0xf0,0xbe,0xf0,0x2, 0x78,0xf0,0xd2,0x5, 0xc2,0x3, +0x6d,0x33,0x7a,0x35,0x31,0x75,0x33,0x0, 0xe1,0x4b,0x6c,0xff,0x7e,0x70,0xff,0x74, +0x5, 0xac,0xbf,0x19,0x75,0x2, 0xb3,0x7e,0x34,0x7f,0xff,0x59,0x35,0x2, 0xaf,0x59, +0x35,0x2, 0xb1,0xb, 0xf0,0xbe,0xf0,0x2, 0x78,0xe2,0x6c,0xff,0x80,0x23,0x7e,0x50, +0x5, 0xac,0x5f,0x7d,0x12,0x2e,0x14,0x0, 0x3f,0xb, 0x18,0x30,0x12,0x2d,0x3b,0x1b, +0x18,0x30,0x2e,0x24,0x0, 0x41,0xb, 0x28,0x30,0x12,0x2d,0x3b,0x1b,0x28,0x30,0xb, +0xf0,0xbc,0xcf,0x38,0xd9,0xe5,0x8, 0xbc,0xbc,0x68,0x5, 0x6d,0x33,0x7a,0x35,0x31, +0x6c,0xff,0x12,0x0, 0x1e,0xbe,0x70,0x2, 0x50,0xf, 0xa, 0x37,0x9, 0xb3,0x0, 0xc1, +0x70,0x7, 0x6d,0x33,0x7a,0x35,0x31,0x80,0x7, 0xb, 0xf0,0xbe,0xf0,0x2, 0x40,0xe2, +0xe5,0x8, 0x70,0x23,0x6c,0xff,0x80,0x19,0x12,0x0, 0x36,0x59,0x45,0x0, 0x73,0x49, +0x45,0x0, 0x41,0x59,0x45,0x0, 0x75,0x9, 0x75,0x0, 0x43,0x19,0x75,0x0, 0x77,0xb, +0xf0,0xbc,0xcf,0x38,0xe3,0xa1,0xe4,0x6c,0xdd,0x6c,0xff,0x6c,0xee,0x7e,0x70,0x5, +0xac,0x7e,0x9, 0xa3,0x0, 0x77,0x7e,0x50,0x5, 0xac,0x5f,0x9, 0xb2,0x0, 0x43,0xbc, +0xba,0x78,0x18,0xbe,0xb0,0xff,0x68,0x13,0xbe,0xd0,0x2, 0x50,0x15,0x2e,0x34,0x0, +0x73,0x12,0x53,0x27,0x74,0x5, 0x12,0x1, 0x19,0x80,0x7, 0xb, 0xe0,0xbe,0xe0,0x2, +0x40,0xcb,0xbe,0xe0,0x2, 0x78,0x16,0xbe,0xd0,0x2, 0x50,0x11,0x7e,0x70,0x5, 0xac, +0x7f,0x2e,0x34,0x0, 0x3f,0x12,0x53,0x27,0x74,0x5, 0x12,0x1, 0x19,0xb, 0xd0,0xb, +0xf0,0xbe,0xf0,0x2, 0x78,0xa5,0x6c,0xff,0x7e,0x30,0x5, 0xac,0x3f,0x7d,0x31,0x2e, +0x34,0x2, 0xaf,0x2e,0x14,0x0, 0x73,0x74,0x5, 0x12,0x1, 0x19,0xb, 0xf0,0xbe,0xf0, +0x2, 0x78,0xe5,0x20,0x3, 0x6e,0x6c,0xff,0x80,0x66,0x7c,0xef,0x6c,0xdd,0x80,0x21, +0x7e,0x90,0x5, 0xac,0x9f,0x9, 0xa4,0x0, 0x77,0x7e,0x70,0x5, 0xac,0x7d,0x9, 0xb3, +0x0, 0x43,0xbc,0xba,0x78,0x9, 0xbe,0xa0,0xff,0x68,0x4, 0x7c,0xed,0x80,0x6, 0xb, +0xd0,0xbc,0xcd,0x38,0xdb,0xbe,0xe0,0x2, 0x40,0x2, 0x7c,0xef,0x7e,0x90,0x5, 0xac, +0x9e,0x49,0x34,0x0, 0x41,0xbe,0x34,0x32,0x0, 0x50,0xa, 0x49,0x24,0x0, 0x75,0xbe, +0x24,0x32,0x0, 0x40,0x12,0x49,0x24,0x0, 0x3f,0x74,0x5, 0xac,0xbf,0x59,0x25,0x0, +0x73,0x59,0x35,0x0, 0x75,0x80,0x7, 0x7c,0xbf,0x7c,0x7e,0x12,0x9, 0x4c,0xb, 0xf0, +0xbc,0xcf,0x38,0x96,0x6c,0xff,0x74,0x5, 0xac,0xbf,0x49,0x45,0x0, 0x73,0x12,0x0, +0xe, 0x1e,0x44,0x59,0x45,0x0, 0x3f,0x49,0x45,0x0, 0x75,0x12,0x0, 0xe, 0x1e,0x44, +0x59,0x45,0x0, 0x41,0x9, 0x75,0x0, 0x77,0x19,0x75,0x0, 0x43,0xb, 0xf0,0xbe,0xf0, +0x2, 0x78,0xd3,0xbe,0xc0,0x0, 0x38,0x2, 0xe1,0x28,0x6c,0xff,0x12,0x0, 0x36,0x59, +0x45,0x0, 0x69,0x49,0x45,0x0, 0x41,0x59,0x45,0x0, 0x6b,0x9, 0x75,0x0, 0x43,0x19, +0x75,0x0, 0x6d,0xa, 0x37,0xbe,0x34,0x0, 0x2, 0x50,0xf, 0x49,0x25,0x0, 0x6b,0xbe, +0x24,0x3, 0x20,0x40,0x5, 0x6d,0x22,0x7a,0x25,0x31,0x7e,0x15,0x31,0x4d,0x11,0x78, +0x41,0xbe,0xf0,0x1, 0x78,0x7, 0x7d,0x21,0xb, 0x24,0x7a,0x25,0x31,0xbe,0x34,0x0, +0x2, 0x40,0x2, 0xe1,0x1f,0x6c,0xee,0x7e,0x50,0x5, 0xac,0x5f,0x49,0x42,0x0, 0x69, +0x7e,0xf4,0x0, 0xc, 0xad,0xf3,0x7e,0x10,0x4, 0xac,0x1e,0x2d,0xf, 0x59,0x40,0x5, +0x10,0x49,0x22,0x0, 0x6b,0x59,0x20,0x5, 0x12,0xb, 0xe0,0xbe,0xe0,0x3, 0x78,0xd7, +0xe1,0x1f,0xbe,0x34,0x0, 0x2, 0x50,0x7a,0x74,0x5, 0xac,0xbf,0x49,0x25,0x0, 0x69, +0x7e,0x4, 0x0, 0x3, 0x8d,0x10,0x7d,0x50,0x3e,0x54,0x3e,0x54,0x7e,0x14,0x0, 0xc, +0xad,0x13,0x2d,0x15,0x59,0x21,0x5, 0x10,0x74,0x5, 0xac,0xbf,0x49,0x25,0x0, 0x6b, +0x59,0x21,0x5, 0x12,0x6d,0x22,0x74,0x5, 0xac,0xbf,0x59,0x25,0x0, 0x69,0x6c,0xee, +0x12,0x52,0xe7,0x49,0x2, 0x5, 0x10,0x7e,0x50,0x5, 0xac,0x5f,0x2e,0x24,0x0, 0x69, +0x12,0x52,0xd9,0x78,0xeb,0x12,0x53,0x1d,0x1b,0x28,0x10,0x6d,0x22,0x74,0x5, 0xac, +0xbf,0x59,0x25,0x0, 0x6b,0x6c,0xee,0x12,0x52,0xe7,0x49,0x2, 0x5, 0x12,0x7e,0x50, +0x5, 0xac,0x5f,0x2e,0x24,0x0, 0x6b,0x12,0x52,0xd9,0x78,0xeb,0x12,0x53,0x1d,0x1b, +0x28,0x10,0xbe,0xf0,0x1, 0x78,0x8, 0x7e,0x25,0x31,0xb, 0x24,0x7a,0x25,0x31,0xb, +0xf0,0xbe,0xf0,0x2, 0x68,0x2, 0xc1,0x1c,0xd2,0x0, 0x6c,0xff,0x12,0x0, 0x1e,0xbe, +0x70,0x2, 0x50,0x10,0xa, 0x37,0x9, 0xb3,0x0, 0xc1,0xb4,0x1, 0x7, 0x6d,0x33,0x7a, +0x35,0x31,0x80,0x7, 0xb, 0xf0,0xbe,0xf0,0x2, 0x40,0xe1,0xda,0x3b,0x22,0x7d,0x14, +0x1a,0x2, 0x1a,0x0, 0x7f,0x17,0x9f,0x10,0x7d,0x1d,0x1a,0x2, 0x1a,0x0, 0x2, 0x0, +0x78,0x1a,0x2, 0x7f,0x17,0x2f,0x10,0x7f,0x71,0x7d,0x1c,0x1a,0x2, 0x1a,0x0, 0xbf, +0x70,0x22,0x74,0x5, 0xac,0xbe,0x49,0x35,0x0, 0x41,0x9d,0x32,0x2, 0x3, 0x5, 0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xca,0x3b,0x7f,0x71,0x7c,0xab,0x7e,0x30,0x2, 0x7e,0xe0,0x3, 0x7e,0x94,0x0, 0x87, +0x7a,0x95,0x8, 0x7e,0x24,0x0, 0x8a,0x7a,0x25,0xa, 0x7d,0x62,0x7e,0xb4,0x0, 0x8c, +0x7d,0x8b,0x7d,0x42,0x7d,0xa2,0x7e,0x37,0x1, 0xfd,0x7d,0xd3,0x12,0x4a,0x35,0x7d, +0xc3,0xa, 0x3a,0x12,0x27,0x7a,0x7c,0xb5,0x7c,0xfb,0xbe,0xf0,0x8, 0x50,0x4e,0x1a, +0x13,0x12,0x7, 0x61,0x48,0x2e,0xbe,0x78,0x1, 0xa, 0x48,0x2, 0x80,0x3, 0x7e,0x45, +0xa, 0x12,0x7, 0x4e,0x7d,0x54,0x12,0xb, 0x96,0xbe,0x78,0x1, 0x5e,0x18,0x2, 0x1, +0xe1,0x7f,0x17,0x9e,0x18,0x1, 0x5e,0x12,0x53,0x14,0x7f,0x71,0x2e,0x18,0x1, 0x5e, +0x7f,0x71,0x80,0x6d,0xbe,0x78,0x0, 0x89,0x18,0x9, 0x7d,0x19,0x12,0x7, 0x50,0x7d, +0x59,0x80,0x27,0x7e,0x45,0x8, 0x12,0x7, 0x4e,0x7d,0x54,0x80,0x1d,0x1a,0x1e,0x12, +0x7, 0x61,0x48,0x1b,0xbe,0x78,0x1, 0xc, 0x48,0x9, 0x7d,0x1b,0x12,0x7, 0x50,0x7d, +0x5b,0x80,0x7, 0x7d,0x18,0x12,0x7, 0x50,0x7d,0x58,0x12,0xb, 0x96,0x80,0x32,0xbe, +0x78,0x0, 0x87,0x18,0x9, 0x7d,0x1a,0x12,0x7, 0x50,0x7d,0x5a,0x80,0x7, 0x7d,0x16, +0x12,0x7, 0x50,0x7d,0x56,0x12,0xb, 0x96,0xbe,0x78,0x0, 0x32,0x58,0x13,0x7e,0x58, +0x0, 0x32,0x7f,0x15,0x9f,0x17,0x12,0x53,0x14,0x7f,0x71,0x7f,0x15,0x9f,0x17,0x7f, +0x71,0xbe,0x78,0x0, 0x0, 0x58,0x6, 0x9f,0x11,0x7f,0x71,0x80,0x11,0x7d,0x1d,0x12, +0x7, 0x6b,0x48,0xa, 0x7d,0x3d,0x1a,0x26,0x1a,0x24,0x1b,0x1c,0x7f,0x71,0xbe,0xf0, +0x8, 0x40,0xc, 0x7d,0x1d,0x1a,0x2, 0x1a,0x0, 0x7f,0x17,0x2f,0x10,0x7f,0x71,0x7f, +0x17,0xda,0x3b,0x22,0x12,0xb, 0xbf,0x78,0x32,0x20,0xb, 0x2f,0x6c,0xaa,0x7e,0x44, +0x7f,0xff,0x7e,0x70,0x4, 0xac,0x7a,0x59,0x43,0x5, 0x4, 0x59,0x43,0x5, 0x6, 0x6d, +0x33,0x7e,0x50,0x2, 0xac,0x5a,0x59,0x32,0x5, 0xc, 0x7e,0x34,0x1, 0x0, 0x59,0x32, +0x5, 0x0, 0xb, 0xa0,0xbe,0xa0,0x2, 0x78,0xd5,0xd2,0xb, 0x22,0xca,0xd8,0xca,0x79, +0x7c,0xe7,0x7c,0xdb,0x74,0x5, 0xac,0xbd,0x49,0x25,0x0, 0x75,0x12,0x7, 0x72,0x7d, +0x3, 0x12,0xb, 0xaa,0x2d,0x3, 0x74,0x5, 0xac,0xbd,0x9, 0xf5,0x0, 0x77,0xbe,0xf0, +0x2, 0x40,0x2, 0x6c,0xff,0x74,0x4, 0xac,0xbf,0x49,0x25,0x5, 0x6, 0x12,0x7, 0x72, +0x7d,0xd3,0x74,0x4, 0xac,0xbf,0x49,0x25,0x5, 0x4, 0x12,0xb, 0xb2,0x2d,0xd3,0x7e, +0x17,0x0, 0x66,0xbd,0x1d,0x38,0x6, 0x7e,0xf4,0x1, 0x0, 0x80,0x19,0x7d,0x30,0x6d, +0x22,0x7c,0x56,0x7c,0x67,0x6c,0x77,0x12,0x0, 0x92,0x7d,0xf3,0xbe,0xf4,0x0, 0x10, +0x50,0x4, 0x7e,0xf4,0x0, 0x10,0xbe,0xf4,0x1, 0x0, 0x28,0x4, 0x7e,0xf4,0x1, 0x0, +0x74,0x2, 0xac,0xbf,0x49,0x45,0x5, 0xc, 0xbd,0x4d,0x28,0x6, 0x49,0xf5,0x5, 0x0, +0x80,0x4, 0x59,0xf5,0x5, 0x0, 0x59,0xd5,0x5, 0xc, 0x74,0x5, 0xac,0xbd,0x49,0xe5, +0x0, 0x3f,0x1e,0xe4,0x1e,0xe4,0x1e,0xe4,0x1e,0xe4,0xbe,0xe4,0x0, 0x14,0x28,0x71, +0xbe,0xe4,0x1, 0xcc,0x50,0x6b,0xa, 0xed,0x9, 0x3e,0x0, 0x3b,0xa, 0x33,0x12,0x27, +0x7a,0x7c,0xa5,0xa, 0x33,0x12,0x27,0xb, 0x7c,0x35,0x7e,0x90,0x4, 0xac,0x9a,0x49, +0x34,0x1, 0x5f,0x49,0x24,0x1, 0x5d,0x4c,0x33,0x68,0xa, 0x49,0xd4,0x1, 0x5b,0x49, +0xc4,0x1, 0x59,0x2f,0x16,0xbe,0x30,0x7, 0x68,0xa, 0x49,0x14,0x1, 0x63,0x49,0x4, +0x1, 0x61,0x2f,0x10,0x7e,0x8, 0x1, 0xf4,0x12,0x0, 0xe5,0x7d,0xe3,0xbe,0xe4,0x0, +0xb4,0x28,0x6, 0x7e,0xe4,0x0, 0xb4,0x80,0xe, 0xbe,0xe4,0x0, 0x3c,0x28,0x6, 0x9e, +0xe4,0x0, 0x14,0x80,0x2, 0x6d,0xee,0xbd,0xef,0x50,0x4, 0x9d,0xfe,0x80,0x2, 0x6d, +0xff,0x12,0xb, 0xaa,0x12,0x52,0xf5,0x7e,0x90,0x5, 0xac,0x9d,0x49,0xe4,0x0, 0x73, +0x74,0x5, 0xac,0xbe,0x49,0xc5,0x0, 0x3f,0xbd,0xce,0x28,0xf, 0x7d,0x24,0x2e,0x24, +0x0, 0x73,0x7d,0x3e,0x2d,0x3d,0x1b,0x28,0x30,0x80,0xb, 0x7d,0xc4,0x2e,0xc4,0x0, +0x73,0x9d,0xed,0x1b,0xc8,0xe0,0x49,0x24,0x0, 0x75,0x12,0x7, 0x76,0x12,0x52,0xf5, +0x7e,0x30,0x5, 0xac,0x3d,0x49,0x21,0x0, 0x75,0x7e,0x70,0x5, 0xac,0x7e,0x49,0xe3, +0x0, 0x41,0xbd,0xe2,0x28,0xf, 0x7d,0xc1,0x2e,0xc4,0x0, 0x75,0x7d,0x2, 0x2d,0xd, +0x1b,0xc8,0x0, 0x80,0x9, 0x2e,0x14,0x0, 0x75,0x9d,0x2d,0x1b,0x18,0x20,0x49,0x43, +0x0, 0x3f,0x74,0x4, 0xac,0xbf,0x59,0x45,0x5, 0x4, 0x59,0xe5,0x5, 0x6, 0xda,0x79, +0xda,0xd8,0x22,0x7d,0xf3,0xbe,0xf4,0x0, 0x47,0x38,0x2b,0x7e,0x54,0x0, 0x47,0x9d, +0x5f,0x6d,0x44,0x7e,0x14,0x1, 0x80,0x12,0xb, 0x88,0xbe,0x28,0x0, 0x18,0x28,0x4, +0x9f,0x22,0x80,0x8, 0x7e,0x18,0x0, 0x18,0x9f,0x12,0x7f,0x21,0xbe,0x28,0x0, 0x0, +0x50,0x6d,0x9f,0x22,0x80,0x69,0xbe,0xf4,0x1, 0xb8,0x40,0x29,0x7d,0x5f,0x9e,0x54, +0x1, 0xb8,0x6d,0x44,0x7e,0x14,0x1, 0x80,0x12,0xb, 0x88,0xbe,0x28,0x0, 0x18,0x40, +0x4, 0x7e,0x28,0x0, 0x17,0xbe,0x28,0x0, 0x18,0x28,0x4, 0x7e,0x28,0x0, 0x18,0x2e, +0x28,0x1, 0xc8,0x80,0x3a,0xbe,0xf4,0x0, 0xff,0x50,0x1d,0x7e,0x54,0x0, 0xff,0x9d, +0x5f,0x12,0xb, 0x82,0x7e,0x18,0x0, 0xf0,0x9f,0x12,0x7f,0x21,0xbe,0x28,0x0, 0x18, +0x50,0x1d,0x7e,0x28,0x0, 0x18,0x80,0x17,0x7d,0x5f,0x9e,0x54,0x0, 0xff,0x12,0xb, +0x82,0x2e,0x28,0x0, 0xf0,0xbe,0x28,0x1, 0xc8,0x28,0x4, 0x7e,0x28,0x1, 0xc8,0x7d, +0x35,0x22,0x6d,0x44,0x7e,0x14,0x1, 0x1f,0x7f,0x12,0x12,0x0, 0x89,0x7f,0x21,0x7c, +0xba,0x7c,0xa9,0xa, 0x48,0x22,0x3e,0x54,0x1a,0x4a,0x1a,0x48,0x7d,0x1d,0x1a,0x2, +0x1a,0x0, 0x9f,0x2, 0x12,0x0, 0xe5,0x7f,0x71,0x22,0x74,0x5, 0xac,0xbd,0x49,0x25, +0x0, 0x73,0x74,0x5, 0xac,0xbe,0x49,0x35,0x0, 0x3f,0x9d,0x32,0x2, 0x3, 0x5, 0x7e, +0xb3,0x0, 0x55,0x54,0xf, 0x22,0xc2,0xf, 0x6c,0x33,0x7e,0x20,0xff,0x7e,0x10,0x5, +0xac,0x13,0x19,0x20,0x0, 0x43,0x7c,0x13,0x2e,0x10,0xc, 0x74,0xff,0xa5,0xf7,0x7e, +0x24,0xff,0xff,0x12,0xd, 0xf4,0x1b,0x38,0x20,0x7c,0x13,0x2e,0x10,0xe, 0xe4,0xa5, +0xf7,0xb, 0x30,0xa5,0xbb,0x2, 0xd3,0x7e,0x23,0x0, 0x55,0x7c,0xb2,0x54,0xf, 0x78, +0x24,0x7c,0xb2,0xc4,0x54,0xf, 0x78,0x2, 0xa1,0x8f,0x6c,0x33,0x7e,0x4, 0x7f,0xff, +0x7e,0x70,0x2, 0xac,0x73,0x59,0x3, 0x0, 0xc5,0x59,0x3, 0x0, 0xc9,0xb, 0x30,0xa5, +0xbb,0x2, 0xe9,0xa1,0x8f,0x7c,0xb2,0xc4,0x54,0xf, 0x78,0x2b,0x6c,0x33,0x80,0x1a, +0x12,0x53,0x0, 0x7e,0x50,0x2, 0xac,0x53,0x12,0x53,0x55,0x59,0x32,0x0, 0xc9,0x19, +0x34,0x0, 0x43,0x7c,0x13,0x12,0x53,0x79,0xb, 0x30,0x12,0xb, 0xbf,0xa, 0x2b,0xa, +0x33,0xbd,0x32,0x48,0xdb,0xa1,0x8f,0x6c,0x33,0x80,0x4f,0x6c,0xaa,0x7e,0x70,0x2, +0xac,0x7a,0x49,0x23,0x0, 0xc9,0x7e,0x70,0x5, 0xac,0x73,0x49,0x33,0x0, 0x41,0x12, +0x4f,0xc4,0x7e,0x70,0x2, 0xac,0x7a,0x49,0x23,0x0, 0xc5,0x7e,0x70,0x5, 0xac,0x73, +0x49,0x33,0x0, 0x3f,0x9d,0x32,0x12,0x3, 0x5, 0x2d,0x43,0x12,0xd, 0xf4,0xb, 0x38, +0x20,0xbd,0x24,0x28,0xc, 0x7c,0x13,0x2e,0x10,0xc, 0x7c,0xba,0xa5,0xf7,0x1b,0x38, +0x40,0xb, 0xa0,0xbe,0xa0,0x2, 0x78,0xb5,0xb, 0x30,0x12,0xb, 0xbf,0xa, 0x2b,0xa, +0x33,0xbd,0x32,0x48,0xa6,0x6c,0x33,0x80,0x6e,0xd2,0xf, 0x6c,0xaa,0x80,0x2c,0xbc, +0xa3,0x68,0x26,0x7c,0x1a,0x2e,0x10,0xc, 0xa5,0xe7,0x7c,0x2b,0x12,0x53,0x81,0xbc, +0xb2,0x78,0x16,0x7c,0xba,0x12,0xd, 0xf6,0xb, 0x38,0x20,0x12,0xd, 0xf4,0xb, 0x38, +0x30,0xbd,0x32,0x40,0x4, 0xc2,0xf, 0x80,0xd, 0xb, 0xa0,0x12,0xb, 0xbf,0xa, 0x2b, +0xa, 0x3a,0xbd,0x32,0x48,0xc9,0x30,0xf, 0x2c,0x12,0x53,0x81,0x7c,0x5b,0xbe,0x50, +0x2, 0x50,0x22,0x7c,0x15,0x12,0x53,0x79,0x7e,0x70,0x5, 0xac,0x73,0x19,0x53,0x0, +0x43,0x49,0x43,0x0, 0x3f,0x74,0x2, 0xac,0x5b,0x59,0x42,0x0, 0xc5,0x49,0x33,0x0, +0x41,0x59,0x32,0x0, 0xc9,0xb, 0x30,0x12,0xb, 0xbf,0xa, 0x2b,0xa, 0x33,0xbd,0x32, +0x48,0x87,0x6c,0x33,0x80,0x39,0x7e,0x70,0x5, 0xac,0x73,0x9, 0xb3,0x0, 0x43,0xb4, +0xff,0x2b,0x6c,0xaa,0x7c,0x1a,0x2e,0x10,0xe, 0xa5,0xe7,0x70,0x19,0x74,0x1, 0xa5, +0xf7,0x12,0x53,0x0, 0x7e,0x50,0x2, 0xac,0x5a,0x12,0x53,0x55,0x59,0x32,0x0, 0xc9, +0x19,0xa4,0x0, 0x43,0x80,0x7, 0xb, 0xa0,0xbe,0xa0,0x2, 0x40,0xd7,0xb, 0x30,0x12, +0xb, 0xbf,0xa, 0x2b,0xa, 0x33,0xbd,0x32,0x48,0xbc,0x6c,0x33,0x12,0xf, 0xf2,0x70, +0x8, 0x12,0x4e,0xbc,0xac,0x73,0x12,0x4e,0xc4,0xb, 0x30,0xa5,0xbb,0x2, 0xed,0x12, +0x27,0x70,0x6c,0x33,0x12,0xf, 0xf2,0xb4,0x1, 0x21,0xa, 0x33,0x9, 0xb3,0x0, 0xc3, +0xbe,0xb0,0x3, 0x68,0x3, 0xb4,0x1, 0x9, 0xe4,0xa, 0x43,0x19,0xb4,0x0, 0xc1,0x80, +0x3b,0x74,0x2, 0xa, 0x43,0x19,0xb4,0x0, 0xc1,0x80,0x31,0xa, 0x33,0x9, 0xb3,0x0, +0xc3,0xbe,0xb0,0x2, 0x68,0x2, 0x70,0x1c,0x74,0x1, 0xa, 0x43,0x19,0xb4,0x0, 0xc1, +0xbe,0xa0,0x2, 0x50,0x17,0x7c,0x6a,0xb, 0xa0,0x7e,0x70,0x5, 0xac,0x67,0x19,0x33, +0x0, 0x43,0x80,0x8, 0x74,0x3, 0xa, 0x43,0x19,0xb4,0x0, 0xc1,0xb, 0x30,0xbe,0x30, +0x2, 0x40,0xa1,0x22,0x7c,0xb3,0x3e,0xb0,0x24,0x8, 0xa, 0x3b,0x22,0x7e,0x37,0x0, +0x5b,0x4d,0x33,0x78,0x30,0x12,0xb, 0xbf,0xbe,0xb0,0x0, 0x28,0x5, 0x75,0x1b,0x0, +0xc1,0xd7,0x7e,0xb3,0x0, 0x5d,0x20,0xe0,0x2, 0xc1,0xd7,0x7e,0x53,0x0, 0x62,0xbe, +0x51,0x1b,0x28,0x2, 0xc1,0xd7,0x75,0x1b,0x0, 0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x0, +0x5b,0x74,0x1, 0x80,0x73,0xbe,0x34,0x0, 0x1, 0x78,0x19,0x12,0xb, 0xbf,0x78,0x2, +0xc1,0xd7,0x6d,0x22,0x7a,0x27,0x0, 0x5b,0xe4,0x7a,0xb3,0x4, 0x1a,0x75,0x1c,0x22, +0xd2,0x1, 0xc1,0xd7,0xbe,0x34,0x0, 0x3, 0x78,0x7d,0xa9,0xd6,0xeb,0xa9,0xc6,0xac, +0xa9,0xc6,0xec,0xc2,0x96,0xc2,0x95,0xd2,0xb8,0xa9,0xd0,0xb7,0xd2,0xa8,0x80,0x4, +0xe4,0x12,0xf, 0xd1,0x12,0xf, 0xeb,0x50,0xf7,0x20,0x93,0xfd,0xa9,0xc0,0xca,0x75, +0xe7,0x0, 0x53,0xe1,0xf7,0x74,0x2, 0x12,0xf, 0xd1,0x12,0x1f,0x5e,0x7a,0x37,0x0, +0x39,0x12,0x0, 0x6, 0xc2,0xa8,0xc2,0x95,0xa9,0xd0,0xca,0x12,0x42,0x46,0x12,0xe, +0xe6,0x6d,0x33,0x7a,0x37,0x0, 0x5b,0xe4,0x7a,0xb3,0x4, 0x1a,0x80,0x29,0xe4,0x12, +0xf, 0xd1,0x20,0x93,0x22,0x7e,0x37,0x0, 0x5b,0x4d,0x33,0x78,0xe, 0xe5,0xcc,0x54, +0x7, 0xbe,0xb0,0x2, 0x68,0x11,0x75,0xcc,0x2, 0x80,0xc, 0xe5,0xcc,0x54,0x7, 0xbe, +0xb0,0x7, 0x68,0x3, 0x75,0xcc,0x7, 0x30,0x1, 0xd4,0x75,0x1c,0x0, 0xc2,0x1, 0x20, +0x93,0x3, 0x75,0xcc,0x50,0x22,0x12,0x0, 0x15,0x70,0x2, 0xe1,0xc4,0x80,0x4, 0xe4, +0x12,0xf, 0xd1,0x12,0xf, 0xeb,0x50,0xf7,0x75,0xe1,0x0, 0x12,0x52,0x81,0x7c,0xba, +0x12,0x53,0x31,0x12,0x52,0x8b,0x75,0xe3,0x0, 0x7c,0xba,0x1e,0xb0,0x12,0x53,0x31, +0x7c,0xb7,0x42,0xe3,0x7c,0xba,0xc4,0x23,0x54,0x3, 0xa, 0x3b,0x12,0x2d,0x3d,0x7c, +0xb7,0x42,0xe3,0x12,0x2d,0x31,0x7c,0xb7,0x42,0xe3,0x75,0xe7,0x0, 0x7c,0xba,0x30, +0xe1,0x5, 0x43,0xe7,0x33,0x80,0x3, 0x43,0xe7,0x11,0x74,0x1, 0x7e,0x73,0x2, 0xa5, +0x5e,0x70,0x7f,0x12,0xf, 0xcb,0x74,0x2, 0x7e,0x73,0x2, 0xa6,0x5e,0x70,0x7f,0x12, +0xf, 0xcb,0x74,0x3, 0xca,0xb8,0x7e,0x63,0x2, 0xa7,0x7c,0x76,0x12,0x40,0x45,0x7c, +0x7b,0x7c,0xb6,0xc4,0x54,0xf, 0x2c,0x7b,0xda,0xb8,0x12,0xf, 0xcb,0x74,0x6, 0x7e, +0x70,0x61,0x12,0xf, 0xcb,0x12,0x4a,0xae,0x74,0x53,0x7e,0x73,0x2, 0xaa,0x5e,0x70, +0xf, 0x12,0xf, 0xcb,0x74,0x54,0xca,0xb8,0x7e,0xb3,0x2, 0xaa,0xc4,0x7c,0x7b,0x5e, +0x70,0xf, 0xda,0xb8,0x12,0xf, 0xcb,0x7e,0xb3,0x2, 0xa4,0xc4,0x23,0x54,0x3, 0xbe, +0xb0,0x1, 0x68,0x3, 0xb4,0x2, 0x15,0x74,0x5b,0x7e,0x73,0x2, 0xab,0x12,0xf, 0xcb, +0x74,0x5c,0x7e,0x73,0x2, 0xac,0x5e,0x70,0x3, 0x12,0xf, 0xcb,0x43,0xe1,0x8, 0x74, +0x2, 0x2, 0x47,0x74,0x22,0x7c,0xb6,0x24,0xb, 0x7c,0x7a,0xf5,0xe4,0x7a,0x71,0xe5, +0x22,0x70,0x5, 0x43,0x87,0x1, 0x80,0xe, 0xb4,0x1, 0x5, 0x43,0x87,0x2, 0x80,0x6, +0xb4,0x2, 0x7, 0x43,0x87,0x2, 0x0, 0x0, 0x0, 0x0, 0x22,0x30,0x9, 0x2, 0xd3,0x22, +0xc3,0x22,0x7c,0x13,0x2e,0x10,0xe, 0xa5,0xe7,0x22,0xe5,0x9a,0x60,0x5, 0xd2,0x9c, +0xa9,0xd6,0xdf,0x22,0xca,0x79,0x7e,0xf3,0x0, 0x55,0x5e,0xf0,0xf, 0xbe,0xf0,0x0, +0x28,0x25,0x6c,0xee,0x80,0x1d,0x1a,0x2e,0x7e,0x34,0x0, 0x5, 0xad,0x32,0x49,0x33, +0x0, 0x3f,0x12,0xa, 0xe3,0x1a,0xe, 0x7e,0x14,0x0, 0x5, 0xad,0x10,0x59,0x31,0x0, +0x3f,0xb, 0xe0,0xbc,0xfe,0x18,0xdf,0xda,0x79,0x22,0x12,0x1f,0x5e,0x12,0x53,0x3a, +0x7a,0x37,0x2, 0xad,0x12,0x43,0x2d,0xe4,0x12,0x28,0x52,0x12,0x47,0x13,0x12,0x4e, +0x9e,0x12,0x40,0x4e,0x12,0x2e,0x1b,0x12,0x2c,0x2c,0x12,0x48,0xf3,0x7e,0xb3,0x4, +0x31,0xb4,0x1, 0x2, 0x80,0x2, 0x21,0x67,0x7e,0xb3,0x2, 0x3d,0x60,0x28,0xb4,0x1, +0xb, 0x12,0x2c,0xdc,0x74,0x3c,0x7a,0xb3,0x4, 0x55,0x80,0x3, 0x12,0x17,0xe2,0x7e, +0x34,0x4, 0x7a,0x7e,0x24,0x0, 0x24,0xe4,0x12,0x3, 0x15,0x7e,0x34,0x4, 0x56,0x7e, +0x24,0x0, 0x24,0x12,0x3, 0x15,0x12,0x2f,0x91,0x12,0x3f,0xfe,0x12,0x2f,0x86,0x44, +0x40,0x12,0x13,0xe2,0x12,0x20,0x18,0x12,0x27,0xfe,0x12,0x21,0x9, 0x12,0x11,0x68, +0x12,0x45,0xd4,0x7e,0xb3,0x2, 0x55,0x30,0xe1,0x7, 0x12,0x27,0x69,0x7a,0xb3,0x0, +0x55,0x12,0x45,0x52,0x12,0xb, 0xbf,0x12,0x3d,0x4, 0x7e,0x34,0x0, 0xcd,0x7e,0x24, +0x1, 0xa9,0x7e,0xb3,0x2, 0x59,0x14,0x12,0x43,0xe8,0x7e,0xb3,0x4, 0x55,0x60,0x5, +0x14,0x7a,0xb3,0x4, 0x55,0x7e,0xb3,0x4, 0x55,0x60,0x9, 0x74,0xa, 0x12,0x2f,0x51, +0x74,0x1e,0x80,0x5, 0x12,0x2f,0x4f,0x74,0xf, 0x7a,0xb3,0x2, 0x37,0x12,0x18,0x52, +0x12,0x1f,0xfa,0x12,0x30,0x1a,0x12,0x0, 0x2e,0x12,0x18,0xfe,0x7e,0xb3,0x2, 0x56, +0x30,0xe0,0x21,0x7e,0xa3,0x0, 0x55,0x7c,0xba,0x54,0xf, 0xbe,0xb0,0x2, 0x40,0x14, +0x7c,0xba,0xc4,0x54,0xf, 0xbe,0xb0,0x2, 0x50,0xa, 0x7c,0xba,0x54,0xf0,0x44,0x1, +0x7a,0xb3,0x0, 0x55,0x12,0x4d,0x60,0x12,0x10,0x4, 0x12,0x23,0xe, 0x12,0x21,0x7b, +0x12,0x46,0x3f,0x12,0x4e,0x50,0x12,0xb, 0xc6,0x12,0x4b,0xd1,0x12,0x4e,0xd7,0x12, +0x4, 0x15,0x12,0x25,0xc6,0x7e,0xb3,0x0, 0x63,0x12,0x3d,0xef,0x12,0xd, 0xfd,0x12, +0x40,0x17,0x12,0x50,0x87,0x1, 0x5d,0x22,0xca,0x3b,0x12,0x0, 0x15,0x70,0x2, 0x61, +0xc7,0x7e,0xe3,0x2, 0x57,0x7c,0xde,0x1e,0xd0,0x1e,0xe0,0x1e,0xe0,0x6c,0xcc,0x7e, +0xb3,0x2, 0x56,0x54,0xfe,0x7a,0xb3,0x2, 0x56,0x7e,0x17,0x0, 0xbf,0x6d,0x0, 0x7e, +0x1f,0x1, 0xa5,0xbf,0x10,0x58,0x2, 0x41,0x9c,0x6c,0xff,0x41,0x92,0xa, 0x2d,0x7d, +0x12,0x1b,0x14,0xa, 0x3f,0xbd,0x31,0xa, 0x4d,0xa, 0x5f,0x18,0x6, 0x2d,0x54,0xf5, +0x8, 0x80,0x4, 0x9d,0x54,0xf5,0x8, 0x12,0x0, 0x46,0x7c,0x75,0x7a,0x73,0x2, 0xb3, +0x7e,0x70,0x4, 0xac,0x7f,0x49,0x53,0x0, 0xcf,0x49,0x43,0x0, 0xcd,0x7e,0x37,0x0, +0xbf,0x7d,0x13,0x1e,0x14,0x6d,0x0, 0xbf,0x20,0x58,0x2, 0x41,0x90,0x7e,0xa3,0x2, +0xb3,0x74,0x4, 0xa4,0x49,0x15,0x1, 0x5f,0x49,0x5, 0x1, 0x5d,0x6d,0x22,0xbf,0x1, +0x58,0x2, 0x41,0x90,0x7e,0x31,0x8, 0x74,0x4, 0xac,0x3b,0x12,0x53,0x70,0x12,0x53, +0xa1,0x4d,0x22,0x78,0x6, 0x9f,0x11,0x7f,0x61,0x80,0xf, 0x74,0x4, 0xac,0xbf,0x49, +0xd5,0x0, 0xcb,0x49,0xc5,0x0, 0xc9,0x12,0x53,0x67,0x7a,0x1f,0x2, 0xaf,0x12,0x53, +0xa1,0xa, 0x3e,0x1b,0x34,0xbd,0x32,0x78,0x6, 0x9f,0x44,0x7f,0x74,0x80,0x17,0x74, +0x4, 0xac,0xbf,0x49,0xf5,0x0, 0xd3,0x49,0xe5,0x0, 0xd1,0x12,0x21,0x74,0x49,0x95, +0x0, 0xd3,0x49,0x85,0x0, 0xd1,0x12,0x13,0xd5,0xbf,0x16,0x48,0x43,0x12,0x13,0xd5, +0xbf,0x17,0x48,0x3c,0x12,0x13,0xd5,0xbf,0x15,0x48,0x35,0x12,0x13,0xd5,0xbf,0x14, +0x48,0x2e,0x12,0x17,0x8a,0x7e,0x1f,0x2, 0xaf,0xbf,0x1, 0x48,0x23,0xa, 0x3c,0x19, +0xf3,0x0, 0x3b,0xb, 0xc0,0x7e,0x30,0x4, 0xac,0x3f,0x2e,0x14,0x0, 0xcd,0x12,0x17, +0x1f,0xb, 0x1c,0x12,0x17,0xf, 0xbe,0xc0,0x4, 0x40,0x5, 0x7e,0xc0,0x4, 0x80,0xc, +0xb, 0xf0,0x7e,0x73,0x2, 0x57,0xbc,0x7f,0x28,0x2, 0x21,0x9d,0x7e,0xb3,0x2, 0x55, +0x20,0xe6,0x2, 0x61,0xa9,0x4c,0xcc,0x68,0x2, 0x61,0xa9,0x6c,0xff,0x61,0xa3,0x12, +0x13,0xca,0x12,0x17,0xa5,0xa, 0x1e,0x12,0x13,0xce,0x12,0x53,0x70,0x2f,0x51,0x4c, +0xff,0x68,0x7, 0x7c,0xbe,0x14,0xbc,0xbf,0x78,0xa, 0x12,0x17,0xae,0x7f,0x15,0x12, +0x17,0xd8,0x7f,0x51,0x7e,0x37,0x0, 0xbf,0x6d,0x22,0xbf,0x51,0x18,0x2, 0x61,0xa1, +0x12,0x13,0xca,0x12,0x17,0xa5,0x12,0x2f,0x65,0x7f,0x1, 0x12,0x25,0x7f,0x12,0x13, +0xd9,0xbf,0x10,0x18,0x2, 0x61,0xa1,0x12,0x13,0xca,0x12,0x17,0xa5,0x7f,0x1, 0x2f, +0x0, 0x2f,0x0, 0x12,0x25,0x7f,0x12,0x13,0xd9,0xbf,0x10,0x48,0x2, 0x61,0xa1,0x4c, +0xff,0x78,0x4, 0x9f,0x66,0x80,0x2a,0x12,0x13,0xca,0x12,0x53,0x67,0xa, 0x1e,0x12, +0x13,0xce,0x49,0xd1,0x0, 0xcb,0x49,0xc1,0x0, 0xc9,0x2f,0x61,0x4c,0xff,0x68,0x7, +0x7c,0xbe,0x14,0xbc,0xbf,0x78,0xa, 0x12,0x17,0xae,0x7f,0x16,0x12,0x17,0xd8,0x7f, +0x61,0x7c,0xbe,0x14,0xbc,0xbf,0x78,0x4, 0x9f,0x77,0x80,0x2c,0x12,0x13,0xca,0x49, +0x31,0x0, 0xd3,0x49,0x21,0x0, 0xd1,0xa, 0x1e,0x12,0x13,0xce,0x49,0xf1,0x0, 0xd3, +0x49,0xe1,0x0, 0xd1,0x2f,0x71,0x4c,0xff,0x68,0x4, 0xbc,0xbf,0x78,0xa, 0x12,0x17, +0xae,0x7f,0x17,0x12,0x17,0xd8,0x7f,0x71,0xbf,0x56,0x48,0x25,0xbf,0x57,0x48,0x21, +0x7e,0xc0,0x2, 0xa, 0x2f,0xa, 0x3d,0x2d,0x32,0x7a,0x73,0x0, 0x3b,0xa, 0x3e,0x2d, +0x32,0x7a,0x73,0x0, 0x3c,0x7e,0xb3,0x2, 0x56,0x44,0x1, 0x7a,0xb3,0x2, 0x56,0x80, +0x8, 0xb, 0xf0,0xbc,0xef,0x28,0x2, 0x41,0xaf,0x7c,0x6c,0x5e,0x60,0xf, 0x7e,0x73, +0x0, 0x55,0x12,0x26,0x7f,0x7c,0x6c,0x5e,0x60,0xf, 0x7e,0x73,0x0, 0x56,0x5e,0x70, +0xf0,0x4c,0x76,0x7a,0x73,0x0, 0x56,0xda,0x3b,0x22,0xa, 0xf, 0xa, 0x1d,0x2d,0x10, +0x3e,0x14,0x3e,0x14,0x22,0x74,0x4, 0xac,0xbf,0x49,0x35,0x0, 0xcf,0x49,0x25,0x0, +0xcd,0x22,0x7a,0xb3,0x2, 0xac,0xca,0x3b,0x12,0x0, 0x15,0x70,0x17,0xf5,0x8, 0x80, +0xc, 0x7e,0x18,0x30,0x39,0x12,0x21,0x74,0x12,0x53,0x5e,0x5, 0x8, 0x12,0x17,0x27, +0x38,0xef,0xe1,0xa, 0x7e,0xb3,0x2, 0xa4,0x30,0xe1,0x5, 0x75,0xd, 0x2, 0x80,0x3, +0x75,0xd, 0x1, 0x7e,0xa3,0x2, 0xac,0x7c,0xba,0x30,0xe7,0xe, 0x7e,0xb3,0x2, 0x55, +0x30,0xe0,0x7, 0x7e,0x35,0x36,0x4d,0x33,0x78,0xe, 0x7e,0xb3,0x2, 0x55,0x20,0xe0, +0x2, 0xa1,0xa7,0x20,0xe2,0x2, 0xa1,0xa7,0x7c,0xba,0x30,0xe7,0x8, 0x7e,0xb3,0x2, +0xf, 0xf5,0xe, 0x80,0x6, 0x7e,0xb3,0x2, 0x10,0xf5,0xe, 0x7e,0x35,0x36,0xbe,0x34, +0x0, 0x0, 0x28,0x5, 0x1b,0x34,0x7a,0x35,0x36,0x7e,0xb3,0x2, 0x55,0x30,0xe5,0xb, +0x80,0x4, 0xe4,0x12,0xf, 0xd1,0x12,0xf, 0xeb,0x50,0xf7,0x53,0xe1,0xfd,0x43,0xe1, +0x2, 0x53,0xe3,0x1f,0x12,0x17,0xb7,0x75,0x9, 0x0, 0xa1,0x50,0x75,0xa, 0x0, 0x80, +0x58,0xe5,0xa, 0x70,0xc, 0x53,0xe7,0xbf,0x7e,0x34,0x2, 0xf7,0x12,0x17,0xbb,0x80, +0x3, 0x43,0xe7,0x40,0x7e,0xb3,0x2, 0xa4,0x54,0x1, 0x6c,0x77,0x12,0x4b,0x87,0x80, +0x4, 0xe4,0x12,0xf, 0xd1,0x12,0xf, 0xeb,0x50,0xf7,0x75,0x8, 0x0, 0x80,0x23,0x12, +0x52,0x92,0x2f,0x31,0x12,0x52,0xb8,0x2e,0x14,0x2, 0xf7,0x12,0x17,0x1f,0x12,0x17, +0xd, 0x7e,0xb3,0x2, 0xa4,0x20,0xe1,0x8, 0x12,0x17,0x1f,0x2f,0x11,0x12,0x17,0xf, +0x5, 0x8, 0x12,0x17,0x27,0x38,0xd8,0x5, 0xa, 0xe5,0xd, 0xbe,0xb1,0xa, 0x38,0xa1, +0x75,0x8, 0x0, 0x80,0x64,0x12,0x17,0xc3,0x30,0xe6,0x2c,0x12,0x17,0x2f,0x49,0x35, +0x2, 0xf9,0x7a,0x37,0x3, 0x87,0x12,0x17,0x9e,0x49,0x25,0x1, 0xa9,0x1e,0x24,0x1e, +0x24,0x9d,0x32,0x7a,0x37,0x3, 0x87,0x7e,0x37,0x1, 0xf3,0xe, 0x34,0xe, 0x34,0xbe, +0x37,0x3, 0x87,0x8, 0x1d,0x80,0x18,0x12,0x17,0x2f,0x49,0x15,0x2, 0xf9,0x49,0x5, +0x2, 0xf7,0x7e,0x37,0x1, 0xf5,0xe, 0x34,0xe, 0x34,0x12,0x1f,0xe3,0x8, 0x3, 0x12, +0x53,0x89,0x12,0x17,0x2f,0x49,0x35,0x2, 0xf9,0x49,0x25,0x2, 0xf7,0x12,0x17,0x8e, +0xbf,0x10,0x8, 0x3, 0x12,0x53,0x5e,0x5, 0x8, 0x12,0x17,0x27,0x38,0x97,0x5, 0x9, +0xe5,0xe, 0xbe,0xb1,0x9, 0x28,0x2, 0x81,0x7c,0x7e,0xb3,0x2, 0xac,0x30,0xe7,0x35, +0x75,0x8, 0x0, 0x80,0x2b,0x12,0x52,0xb8,0x2e,0x14,0x0, 0xcd,0x12,0x17,0x1f,0x2f, +0x11,0x2f,0x11,0x12,0x17,0xf, 0x7e,0xb3,0x2, 0xac,0x30,0xe6,0x11,0x12,0x17,0x9e, +0x49,0x55,0x1, 0xa9,0x6d,0x44,0x12,0x17,0x1f,0x9f,0x12,0x12,0x17,0xf, 0x5, 0x8, +0x12,0x17,0x27,0x38,0xd0,0x53,0xe1,0xfd,0x12,0x52,0x81,0x53,0xe3,0x1f,0x12,0x2d, +0x31,0x7c,0xb7,0x42,0xe3,0xe1,0xa, 0x7e,0xb3,0x2, 0xa4,0x20,0xe0,0x2, 0xc1,0x4d, +0x12,0x17,0xb7,0x75,0x9, 0x0, 0xc1,0x44,0x7e,0xb3,0x2, 0x55,0x30,0xe5,0x5, 0x12, +0xf, 0xeb,0x50,0x1d,0xe5,0x9, 0x70,0x5, 0x53,0xe7,0xbf,0x80,0x3, 0x43,0xe7,0x40, +0x74,0x2, 0x12,0x2c,0x26,0x12,0x53,0xa, 0x12,0x4b,0x87,0x80,0x4, 0xe4,0x12,0xf, +0xd1,0x12,0xf, 0xeb,0x50,0xf7,0xe4,0x12,0x2c,0x26,0x75,0x8, 0x0, 0x80,0x34,0x12, +0x52,0x92,0x2f,0x31,0x12,0x17,0xc3,0x30,0xe7,0x1a,0x7e,0xa3,0x2, 0xa4,0x12,0x17, +0x97,0xbe,0xb0,0x3, 0x40,0xe, 0x7c,0xba,0x30,0xe1,0x9, 0x1e,0x74,0xe, 0x64,0x50, +0x3, 0x4e,0xe0,0x80,0x12,0x53,0x99,0x2e,0x14,0x0, 0xcd,0x12,0x17,0x1f,0x12,0x17, +0xd, 0x5, 0x8, 0x12,0x17,0x27,0x38,0xc7,0x7e,0xb3,0x2, 0x55,0x30,0xe5,0x13,0xe5, +0x9, 0xb4,0x1, 0x5, 0x53,0xe7,0xbf,0x80,0x3, 0x43,0xe7,0x40,0x12,0x53,0xa, 0x12, +0x4b,0x87,0x5, 0x9, 0xe5,0xd, 0xbe,0xb1,0x9, 0x28,0x2, 0xa1,0xb8,0x75,0x8, 0x0, +0xe1,0x3, 0x12,0x17,0xc3,0x30,0xe7,0x5e,0x7e,0xa3,0x2, 0xa4,0x7c,0xba,0x30,0xe1, +0x28,0x12,0x17,0x97,0xbe,0xb0,0x1, 0x38,0x20,0xa, 0xb, 0x7e,0x14,0x0, 0x2, 0x9d, +0x10,0x7e,0x91,0xc, 0x74,0x4, 0xac,0x9b,0x12,0x37,0x36,0x7c,0xb3,0x60,0x5, 0x2f, +0x11,0x14,0x78,0xfb,0x12,0x53,0x91,0x80,0x2d,0x7c,0xba,0x20,0xe1,0x28,0x12,0x17, +0x97,0xbe,0xb0,0x2, 0x38,0x20,0xa, 0x4b,0x7e,0x54,0x0, 0x3, 0x9d,0x54,0x7c,0xab, +0x12,0x53,0x99,0x2e,0x14,0x0, 0xcd,0x12,0x17,0x1f,0x7c,0xba,0x60,0x5, 0x2f,0x11, +0x14,0x78,0xfb,0x12,0x17,0xf, 0x7e,0xb3,0x2, 0xac,0x30,0xe6,0x2b,0x12,0x17,0x9e, +0x49,0x15,0x1, 0xa9,0x6d,0x0, 0x12,0x17,0x2f,0x7d,0x45,0x12,0x37,0x36,0x9f,0x10, +0x12,0x53,0x91,0x12,0x17,0x8e,0x7e,0x37,0x1, 0xf3,0x12,0x18,0xf7,0x58,0x22,0x7e, +0xb3,0x2, 0x55,0x30,0xe0,0x1b,0x80,0x16,0x12,0x17,0x2f,0x12,0x17,0x8e,0x7e,0x37, +0x1, 0xf5,0x12,0x18,0xf7,0x58,0xa, 0x7e,0xb3,0x2, 0x55,0x30,0xe0,0x3, 0x12,0x53, +0x89,0x5, 0x8, 0x12,0x17,0x27,0x28,0x2, 0xc1,0x52,0xda,0x3b,0x22,0x2f,0x13,0x59, +0x31,0x0, 0x2, 0x1b,0x18,0x20,0x22,0x7e,0x30,0x4, 0xac,0x23,0x2e,0x15,0x2d,0x49, +0x31,0x0, 0x2, 0xb, 0x18,0x20,0x22,0x7e,0x73,0x2, 0x59,0xbe,0x71,0x8, 0x22,0x7e, +0xa1,0xc, 0x74,0x4, 0xa4,0x22,0x12,0x37,0x2d,0x12,0x31,0x9f,0x7e,0x23,0x2, 0xc3, +0x12,0x17,0x17,0x7a,0x1f,0x2, 0xc7,0x7e,0x23,0x2, 0xc4,0x12,0x17,0x17,0x7a,0x1f, +0x2, 0xcb,0x7e,0x23,0x2, 0xc5,0x12,0x17,0x17,0x7a,0x1f,0x2, 0xcf,0x7e,0x23,0x2, +0xc6,0x12,0x17,0x17,0x7a,0x1f,0x2, 0xd3,0x7e,0x1f,0x2, 0xc7,0x7e,0xa0,0x1, 0x7e, +0x90,0x4, 0xac,0x9a,0x49,0x14,0x2, 0xc9,0x49,0x4, 0x2, 0xc7,0xbf,0x10,0x58,0x2, +0x7f,0x10,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0xe6,0x22,0x74,0x4, 0xac,0xbf,0x49,0x15, +0x0, 0xcf,0x49,0x5, 0x0, 0xcd,0x22,0x7c,0xba,0xc4,0x3, 0x54,0x7, 0x22,0x7e,0xa1, +0xc, 0x74,0x2, 0xa4,0x22,0x49,0x31,0x0, 0xcf,0x49,0x21,0x0, 0xcd,0x22,0x7e,0x73, +0x2, 0x54,0xa, 0x17,0x6d,0x0, 0x22,0x7e,0x34,0x0, 0xcd,0x7e,0x24,0x0, 0x90,0xe4, +0x2, 0x3, 0x15,0xe5,0x8, 0xa, 0x3b,0x9, 0xb3,0x2, 0x7e,0xf5,0xc, 0x7e,0xb3,0x2, +0xac,0x22,0xe5,0xa, 0xa, 0x1b,0x6d,0x0, 0x12,0x0, 0x78,0x7e,0x8, 0x0, 0xa, 0x2, +0x0, 0xe5,0xca,0xf8,0x7e,0xa3,0x2, 0xac,0x7c,0xba,0x23,0x23,0x7c,0xfb,0x5e,0xf0, +0x1, 0x7c,0xba,0x54,0xbf,0x12,0x13,0xe2,0x6c,0xaa,0x80,0x2d,0x7e,0xb3,0x2, 0x3d, +0xb4,0x2, 0x8, 0xa, 0x3a,0x9, 0xb3,0x4, 0x56,0x60,0x1c,0x7e,0x90,0x4, 0xac,0x9a, +0x49,0x34,0x0, 0xcf,0x7e,0x50,0x2, 0xac,0x5a,0x59,0x32,0x1, 0xa9,0x9f,0x11,0x59, +0x34,0x0, 0xcf,0x59,0x24,0x0, 0xcd,0xb, 0xa0,0x12,0x18,0x4b,0x38,0xce,0x7c,0x6f, +0x5e,0x60,0x1, 0x7c,0xb6,0x3, 0x3, 0x54,0xc0,0x7c,0x6b,0x7e,0x73,0x2, 0xac,0x5e, +0x70,0xbf,0x4c,0x76,0x7a,0x73,0x2, 0xac,0xda,0xf8,0x22,0x7e,0xb3,0x2, 0x59,0xbc, +0xba,0x22,0x6c,0xaa,0x80,0x9, 0x12,0x1d,0xd7,0x70,0x2, 0x1, 0xe8,0xb, 0xa0,0x12, +0x18,0x4b,0x38,0xf2,0x7e,0xb3,0x2, 0x55,0x20,0xe1,0x7d,0x6c,0xaa,0x80,0x74,0x12, +0x1d,0xd7,0xb4,0x1, 0x6c,0x7e,0xb3,0x2, 0x57,0xbc,0xba,0x28,0x1f,0x12,0x1d,0xc9, +0x7e,0xb3,0x2, 0x37,0x12,0x1d,0xbe,0xbf,0x7, 0x8, 0x6, 0x7e,0xb3,0x2, 0x35,0x80, +0x1d,0x12,0x18,0xf3,0x58,0x4b,0x7e,0xb3,0x2, 0x36,0x80,0x32,0x12,0x1d,0xc9,0x7e, +0xb3,0x2, 0x3a,0x12,0x1d,0xbe,0xbf,0x7, 0x8, 0x1b,0x7e,0xb3,0x2, 0x38,0xa, 0xeb, +0x7e,0x50,0x2, 0xac,0x5a,0x7d,0xf2,0x2e,0xf4,0x1, 0xa9,0xb, 0xf8,0x20,0x2d,0x2e, +0x1b,0xf8,0x20,0x80,0x1c,0x12,0x18,0xf3,0x58,0x17,0x7e,0xb3,0x2, 0x39,0xa, 0x4b, +0x7e,0x50,0x2, 0xac,0x5a,0x2e,0x24,0x1, 0xa9,0xb, 0x28,0x30,0x9d,0x34,0x1b,0x28, +0x30,0xb, 0xa0,0x12,0x18,0x4b,0x38,0x87,0x2, 0x18,0xeb,0x12,0x2f,0x74,0x74,0x1, +0x2, 0x3, 0x15,0x6d,0x33,0x9d,0x34,0x1a,0x26,0x1a,0x24,0xbf,0x1, 0x22,0xca,0x3b, +0xe4,0x6c,0xdd,0xa, 0x3d,0x19,0xb3,0x0, 0x53,0xb, 0xd0,0xbe,0xd0,0x2, 0x78,0xf3, +0x6c,0xdd,0xa1,0x93,0x12,0x1f,0xae,0x7c,0xbc,0x84,0x7c,0xca,0x9f,0x11,0x7a,0x1f, +0x2, 0xc9,0x7a,0x1f,0x2, 0xcd,0x7a,0x1f,0x2, 0xdd,0x12,0x23,0x1, 0x7a,0x1f,0x2, +0xd1,0x7e,0x73,0x5, 0x79,0xa, 0xf7,0x6d,0xee,0xa, 0x3c,0x6d,0x22,0x7f,0x7, 0x12, +0x0, 0x94,0x7a,0xf, 0x2, 0xb7,0x7f,0x17,0x1b,0x1c,0xbf,0x10,0x68,0xb, 0x12,0x53, +0x4c,0x49,0x25,0x1, 0x61,0x7a,0x1f,0x2, 0xcd,0x7e,0x1f,0x2, 0xb7,0xbe,0x18,0x0, +0x0, 0x68,0xb, 0x12,0x53,0x43,0x49,0x25,0x1, 0x59,0x7a,0x1f,0x2, 0xc9,0x7e,0xb3, +0x2, 0x55,0x20,0xe4,0x2, 0x41,0xbe,0x7e,0x37,0x2, 0x4e,0x12,0x1d,0xa5,0xbe,0xb3, +0x2, 0x59,0x50,0x4, 0x4c,0xcc,0x68,0x41,0x7d,0x23,0xb, 0x24,0x12,0x1e,0x6e,0xbe, +0xb3,0x2, 0x59,0x50,0x5, 0x12,0x1f,0x77,0x68,0x2f,0x7d,0x23,0xb, 0x25,0x12,0x1e, +0x6e,0xbe,0xb3,0x2, 0x59,0x50,0x8, 0x7e,0x53,0x5, 0x79,0xbc,0x5c,0x68,0x1a,0x2e, +0x34,0x0, 0x3, 0x12,0x1d,0xa5,0xbe,0xb3,0x2, 0x59,0x40,0x2, 0x41,0xbe,0x7e,0xb3, +0x5, 0x78,0x14,0xbc,0xbc,0x68,0x2, 0x41,0xbe,0x4c,0xcc,0x78,0x4, 0x6c,0xff,0x80, +0x17,0x12,0x1f,0x77,0x78,0x5, 0x7e,0xf0,0x1, 0x80,0xd, 0x12,0x1d,0xae,0x78,0x5, +0x7e,0xf0,0x2, 0x80,0x3, 0x7e,0xf0,0x3, 0xa, 0x1f,0x7d,0x1, 0x2e,0x7, 0x2, 0x4e, +0x12,0x1d,0xb5,0x7c,0xab,0x74,0x4, 0xa4,0x12,0x13,0xd9,0x7a,0x1f,0x2, 0xbf,0x7e, +0x57,0x1, 0xf7,0x1a,0x4a,0x1a,0x48,0xbf,0x21,0x48,0x2, 0x41,0xbe,0x7e,0x1f,0x2, +0xbf,0x9f,0x12,0x12,0x1f,0xa3,0x1a,0x24,0x7e,0x2f,0x2, 0xbf,0xbf,0x12,0x58,0x4, +0x7a,0x1f,0x2, 0xbf,0x7e,0x1f,0x2, 0xbf,0x7d,0x1, 0x2e,0x7, 0x2, 0x50,0x12,0x1d, +0xb5,0xca,0xb8,0x2e,0x17,0x2, 0x52,0x12,0x1f,0x7f,0x7c,0x3b,0xda,0xb8,0x12,0x1f, +0xd6,0x58,0x4, 0x7a,0x1f,0x2, 0xbf,0x4c,0xcc,0x68,0x5, 0x12,0x1d,0xae,0x78,0x38, +0x7e,0xf, 0x2, 0xbf,0x7e,0x1f,0x2, 0xcd,0xbf,0x10,0x58,0x8, 0x9f,0x22,0x7a,0x2f, +0x2, 0xcd,0x80,0xa, 0x7d,0x51,0x6d,0x44,0x9f,0x12,0x7a,0x1f,0x2, 0xcd,0x7e,0x1f, +0x2, 0xd9,0xbf,0x10,0x58,0x8, 0x9f,0x22,0x7a,0x2f,0x2, 0xd9,0x80,0x40,0x6d,0x0, +0x9f,0x10,0x7a,0x1f,0x2, 0xd9,0x80,0x36,0x7e,0xf, 0x2, 0xbf,0x7e,0x1f,0x2, 0xc9, +0xbf,0x10,0x58,0x8, 0x9f,0x22,0x7a,0x2f,0x2, 0xc9,0x80,0xa, 0x7d,0x51,0x6d,0x44, +0x9f,0x12,0x7a,0x1f,0x2, 0xc9,0x7e,0x1f,0x2, 0xd5,0xbf,0x10,0x58,0x8, 0x9f,0x22, +0x7a,0x2f,0x2, 0xd5,0x80,0x8, 0x6d,0x0, 0x9f,0x10,0x7a,0x1f,0x2, 0xd5,0x7e,0x93, +0x5, 0x79,0xa, 0x29,0xa, 0x3c,0x12,0x4a,0x3c,0x1a,0x38,0x7d,0xf3,0x1a,0xe6,0x7f, +0x7, 0x1b,0xc, 0x7e,0x5f,0x2, 0xc9,0x7f,0x15,0x12,0x0, 0x78,0x7f,0x41,0x7e,0x6f, +0x2, 0xd1,0x7f,0x16,0x7f,0x7, 0x12,0x0, 0x78,0x2f,0x41,0x7f,0x7, 0xb, 0xc, 0x7e, +0x7f,0x2, 0xcd,0x7f,0x17,0x12,0x0, 0x78,0x2f,0x14,0x7a,0x1f,0x2, 0xaf,0x7f,0x16, +0x2f,0x15,0x2f,0x17,0x7a,0x1f,0x2, 0xb3,0x7e,0xf, 0x2, 0xb7,0xbe,0x8, 0x0, 0x0, +0x38,0x2, 0x61,0xdd,0xa, 0x39,0x6d,0x22,0x1b,0x1c,0xbf,0x1, 0x40,0x2, 0x61,0xdd, +0xe4,0x7a,0xb3,0x5, 0x76,0x12,0x1f,0x70,0x7e,0x1f,0x2, 0xcd,0x7a,0x1d,0x10,0x7a, +0xd1,0x15,0x7e,0x1f,0x2, 0xd1,0x7e,0xf, 0x2, 0xc9,0x7c,0xbc,0x12,0x47,0xf9,0x7c, +0xeb,0x7e,0xa3,0x5, 0x76,0xbe,0xa0,0x0, 0x28,0x50,0xbe,0xe0,0x0, 0x48,0x4b,0x7e, +0xb3,0x5, 0x78,0xbc,0xbe,0x8, 0x43,0x7e,0xb3,0x5, 0x79,0xa, 0x2b,0x1a,0x3e,0x12, +0x0, 0x46,0x7c,0x95,0x7a,0x91,0x8, 0x1a,0x1e,0x3e,0x14,0x3e,0x14,0x12,0x20,0x7f, +0xa, 0x1a,0x6d,0x0, 0x12,0x0, 0x78,0x74,0x7, 0x7f,0x71,0x1e,0xf4,0xe, 0xe4,0x50, +0x4, 0x4e,0xf4,0x80,0x0, 0x14,0x78,0xf3,0x7a,0x7f,0x2, 0xdd,0x1a,0x19,0x12,0x1f, +0xb9,0x2f,0x10,0x12,0x1f,0x9a,0x2f,0x17,0x80,0x3f,0x7e,0x73,0x5, 0x77,0xbe,0x70, +0x0, 0x8, 0x3a,0x7e,0x63,0x5, 0x79,0xa, 0x26,0x1a,0x47,0x7d,0x34,0x12,0x0, 0x46, +0x7c,0x75,0x7a,0x71,0x8, 0x3e,0x44,0x3e,0x44,0x49,0x14,0x1, 0x5f,0x49,0x4, 0x1, +0x5d,0x7f,0x70,0x1e,0xf4,0xe, 0xe4,0x50,0x4, 0x4e,0xf4,0x80,0x0, 0x1a,0x17,0x12, +0x1f,0xb9,0x9f,0x10,0x12,0x1f,0x9a,0x9f,0x17,0x7a,0x1f,0x2, 0xb3,0x7e,0x1f,0x2, +0xaf,0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0x7e,0xf, 0x2, 0xb3,0x12,0x0, 0xe5,0x2e, +0x18,0x0, 0x20,0xbe,0x18,0x0, 0x0, 0x58,0x8, 0x6d,0x11,0x7a,0x17,0x2, 0xc7,0x80, +0x4, 0x7a,0x37,0x2, 0xc7,0x12,0x1f,0xae,0xa, 0x2a,0x1b,0x24,0xa, 0x3c,0xbd,0x32, +0x8, 0xc, 0xa, 0x2a,0xa, 0x3c,0x9d,0x32,0x7c,0xb7,0xf5,0x9, 0x80,0x8, 0xa, 0x4a, +0xa, 0x5c,0x2d,0x54,0xf5,0x9, 0x7c,0xbc,0x12,0x4a,0x45,0x7a,0x1f,0x2, 0xb7,0xe5, +0x9, 0x12,0x4a,0x45,0x7a,0x1f,0x2, 0xbb,0x12,0x52,0xa5,0x8, 0x5, 0x12,0x52,0xc9, +0x80,0x3, 0x12,0x1f,0xea,0x12,0x52,0x5c,0x7a,0x1f,0x2, 0xc3,0x7e,0xb3,0x2, 0x55, +0x20,0xe3,0x2, 0xa1,0x7d,0x12,0xb, 0xbf,0xb4,0x1, 0x2, 0x80,0x2, 0xa1,0x7d,0x7e, +0x37,0x2, 0x1, 0x1a,0x26,0x1a,0x24,0x7e,0xf, 0x2, 0xc3,0xbf,0x1, 0x48,0xb, 0x7e, +0x37,0x2, 0x3, 0x12,0x18,0xf7,0x18,0x2, 0xa1,0x7d,0x12,0x1d,0xae,0x38,0x12,0xa, +0x7, 0x7e,0x63,0x2, 0x57,0xa, 0x16,0x9d,0x10,0xa, 0x2c,0xbd,0x12,0x8, 0x2, 0xa1, +0x7d,0xbc,0x7c,0xa, 0x3c,0x28,0x14,0x2e,0x37,0x2, 0x46,0x12,0x1d,0xa5,0x12,0x1f, +0x88,0x12,0x1d,0xa5,0xf5,0xa, 0x7a,0xc1,0xb, 0x80,0x1d,0x2e,0x37,0x2, 0x46,0x7e, +0xa3,0x5, 0x78,0xa, 0x2a,0x12,0x1d,0xa3,0x12,0x1f,0x88,0x12,0x1d,0xa3,0xf5,0xa, +0xa, 0x4a,0xa, 0x5c,0x9d,0x54,0xf5,0xb, 0x7e,0x73,0x2, 0x59,0xbe,0x71,0xa, 0x38, +0x2, 0xa1,0x7d,0xbc,0x7f,0x38,0x2, 0xa1,0x7d,0x7e,0xa1,0xa, 0x74,0x4, 0xa4,0x12, +0x17,0x8e,0x12,0x13,0xd5,0x2f,0x10,0x7a,0x1f,0x2, 0xbf,0x7e,0x17,0x1, 0xf7,0x1a, +0x2, 0x1a,0x0, 0xbf,0x1, 0x48,0x2, 0xa1,0x7d,0x7e,0x1f,0x2, 0xbf,0x9f,0x10,0x12, +0x1f,0xa3,0x1a,0x24,0x7e,0xf, 0x2, 0xbf,0xbf,0x10,0x58,0x4, 0x7a,0x1f,0x2, 0xbf, +0x7e,0x1f,0x2, 0xbf,0xe5,0xb, 0xa, 0x1b,0x7d,0x1, 0x2e,0x7, 0x2, 0x4a,0x12,0x1d, +0xb5,0x54,0x7f,0xca,0xb8,0x2e,0x17,0x2, 0x4c,0x12,0x1f,0x7f,0x7c,0x3b,0xda,0xb8, +0x12,0x1f,0xd6,0x58,0x4, 0x7a,0x1f,0x2, 0xbf,0xe5,0xb, 0xa, 0x3b,0x2e,0x37,0x2, +0x4a,0x12,0x1d,0xa5,0x23,0x54,0x1, 0x68,0x7, 0x12,0x1f,0x91,0x2f,0x10,0x80,0x15, +0x12,0x1f,0x91,0xbf,0x10,0x50,0x8, 0x9f,0x0, 0x7a,0xf, 0x2, 0xbb,0x80,0xa, 0x7e, +0xf, 0x2, 0xbf,0x9f,0x10,0x7a,0x1f,0x2, 0xbb,0x12,0x52,0xa5,0x8, 0x5, 0x12,0x52, +0xc9,0x80,0x3, 0x12,0x1f,0xea,0x12,0x52,0x5c,0x7a,0x1f,0x2, 0xc3,0x7e,0x47,0x2, +0xc7,0x74,0x5, 0xac,0xbd,0x59,0x45,0x0, 0x3f,0x7e,0x1f,0x2, 0xc3,0x59,0x35,0x0, +0x41,0xb, 0xd0,0x12,0xb, 0xbf,0xa, 0x2b,0xa, 0x3d,0xbd,0x32,0x58,0x2, 0x21,0x14, +0xda,0x3b,0x22,0x9d,0x32,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x22,0x7e,0x73, +0x5, 0x79,0xbc,0x7c,0x22,0x7a,0x11,0x82,0x7a,0x1, 0x83,0xe4,0x93,0x22,0xa, 0x4b, +0x7d,0x24,0x7d,0xf4,0x1a,0x24,0x1a,0xe4,0x22,0x7e,0x70,0x4, 0xac,0x7a,0x49,0x13, +0x0, 0xcf,0x49,0x3, 0x0, 0xcd,0x22,0x7e,0x34,0x2, 0x11,0x7c,0xba,0x7d,0x23,0xa, +0x3b,0x2d,0x32,0x7e,0x39,0xb0,0x22,0xca,0x3b,0x7c,0xeb,0x7e,0xd0,0x12,0x7e,0xc0, +0x12,0xe5,0x22,0x70,0xb, 0x7c,0xbe,0x7c,0x7d,0x12,0x1e,0x48,0x7c,0xfb,0x80,0xb, +0x7c,0xbe,0x7c,0x7c,0x12,0x1e,0x48,0x7c,0xfb,0x2c,0xfd,0x6c,0xaa,0xa, 0x3f,0x2e, +0x34,0x2, 0x52,0x12,0x1d,0xa5,0x7c,0x7b,0xa, 0x2a,0x2e,0x24,0x1, 0xee,0x12,0x1e, +0x6e,0xbc,0xb7,0x78,0x17,0xbe,0xa0,0x20,0x50,0xc, 0x7c,0xba,0x7e,0x70,0x20,0x12, +0x28,0x3b,0x7c,0xfb,0x80,0x2, 0x7c,0xfa,0x7c,0xbf,0x80,0x9, 0xb, 0xa0,0xbe,0xa0, +0x24,0x40,0xca,0x7c,0xbe,0xda,0x3b,0x22,0xca,0xf8,0x7c,0xf7,0x7c,0xab,0x7c,0xbf, +0x1e,0xb0,0xa, 0x4b,0xa, 0xa, 0x12,0x1e,0x67,0x7d,0x12,0x3e,0x14,0x12,0x1e,0x67, +0x7d,0x51,0x2d,0x53,0xda,0xf8,0x22,0x7d,0x30,0x7d,0x24,0x2, 0x0, 0x46,0x7a,0x51, +0x82,0x7a,0x41,0x83,0xe4,0x93,0x22,0xca,0x79,0x12,0x1f,0x5e,0x12,0x53,0x3a,0x7a, +0x37,0x2, 0xad,0x12,0x37,0xeb,0x7e,0xb3,0x0, 0xb5,0x12,0x28,0x52,0x12,0x2e,0x1b, +0x12,0x2f,0x6c,0xbe,0xa0,0x1, 0x78,0x6, 0x7e,0x34,0x0, 0xa9,0x80,0x9, 0xbe,0xa0, +0x2, 0x78,0x7, 0x7e,0x34,0x0, 0xaf,0x12,0x2a,0xa6,0x12,0x2b,0xa, 0x75,0x25,0x3, +0x75,0x23,0x40,0x12,0x1f,0x5e,0x7a,0x37,0x0, 0x39,0xe5,0x25,0xb4,0x3, 0x2, 0x80, +0x2, 0xe1,0x4c,0xe5,0x2b,0x60,0xec,0x12,0x2f,0x86,0x12,0x2a,0x53,0x12,0x13,0xe6, +0x6c,0xff,0x80,0x3f,0x7e,0xb3,0x0, 0xb5,0xbe,0xb0,0x1, 0x68,0x3, 0xb4,0x2, 0x26, +0x12,0x1f,0x55,0x7d,0xf3,0x7c,0xbf,0x12,0x1d,0xe7,0x7c,0xab,0x74,0x2, 0xa4,0x59, +0xf5,0x3, 0x89,0xa, 0x3f,0x9, 0xe3,0x0, 0x83,0x7c,0xbf,0x12,0x1d,0xe7,0xa, 0x3b, +0x19,0xe3,0x3, 0xd1,0x80,0xb, 0x12,0x1f,0x55,0x74,0x2, 0xac,0xbf,0x59,0x35,0x3, +0x89,0xb, 0xf0,0x12,0x1f,0x69,0x38,0xbc,0x7e,0xb3,0x0, 0xb5,0xbe,0xb0,0x1, 0x68, +0x3, 0xb4,0x2, 0xc, 0xe5,0x22,0x70,0x5, 0x75,0x22,0x1, 0x80,0x86,0x75,0x22,0x0, +0x75,0x2b,0x0, 0x7e,0xb3,0x4, 0xfe,0x54,0x7f,0x7a,0xb3,0x4, 0xfe,0xe5,0x1a,0x30, +0xe0,0x2, 0xc1,0xb3,0x74,0x1, 0x7a,0xb3,0x0, 0xba,0xc1,0xb3,0xe5,0x25,0x7a,0xb3, +0x4, 0x31,0xda,0x79,0x22,0x74,0x4, 0xac,0xbf,0x49,0x35,0x0, 0xcf,0x22,0x6d,0x33, +0x7a,0x37,0x0, 0x80,0x7e,0x34,0x7, 0xd0,0x22,0x7e,0x73,0x2, 0x59,0xbc,0x7f,0x22, +0x74,0xff,0x7a,0xb3,0x5, 0x77,0x22,0x7e,0xb3,0x5, 0x79,0x14,0xbc,0xbc,0x22,0x7a, +0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0x22,0x7c,0xfb,0xa, 0x3c,0x2e,0x37,0x2, 0x48, +0x22,0x7e,0xf, 0x2, 0xbf,0x7e,0x1f,0x2, 0xbb,0x22,0x7a,0x1f,0x2, 0xaf,0x7e,0x1f, +0x2, 0xb3,0x22,0x7a,0x1f,0x2, 0xbf,0x7e,0x37,0x1, 0xf9,0x1a,0x26,0x22,0xa, 0x3d, +0x9, 0xc3,0x0, 0x3b,0x7e,0xa3,0x5, 0x78,0x22,0x1a,0x2, 0x7f,0x17,0x12,0x0, 0x78, +0x7f,0x1, 0x7e,0x1f,0x2, 0xaf,0x22,0x12,0x52,0x53,0x4c,0x99,0x68,0x7, 0xa, 0x19, +0x6d,0x0, 0x2, 0x0, 0xe5,0x22,0x12,0x1f,0xc7,0x7f,0x1, 0x7a,0xf, 0x2, 0xbf,0x7e, +0x37,0x1, 0xfb,0x1a,0x26,0x1a,0x24,0xbf,0x10,0x22,0x1a,0x0, 0x7e,0x7f,0x2, 0xbb, +0x7f,0x17,0x12,0x0, 0x78,0x7e,0xf, 0x2, 0xb7,0x22,0x7e,0xa3,0x0, 0x55,0x7c,0xba, +0xc4,0x54,0xf, 0x78,0x12,0x7e,0x1f,0x1, 0xa5,0xbe,0x18,0xc, 0xe4,0x58,0x8, 0x7c, +0xba,0x54,0xf0,0x7a,0xb3,0x0, 0x55,0x22,0x9f,0x11,0x7a,0x1f,0x1, 0xa5,0x6c,0xaa, +0x9f,0x11,0x7e,0x30,0x4, 0xac,0x3a,0x59,0x31,0x1, 0x5f,0x59,0x21,0x1, 0x5d,0x49, +0xf1,0x0, 0xcf,0x49,0xe1,0x0, 0xcd,0xbe,0x78,0x0, 0x32,0x8, 0x3, 0x12,0x20,0x68, +0x49,0xf1,0x1, 0xf, 0x49,0xe1,0x1, 0xd, 0xbe,0x78,0x0, 0x32,0x8, 0x3, 0x12,0x20, +0x68,0x12,0x20,0x7f,0x7e,0x7f,0x1, 0xa5,0xbf,0x17,0x8, 0x4, 0x7a,0x1f,0x1, 0xa5, +0xb, 0xa0,0xbe,0xa0,0x10,0x40,0xb9,0x22,0x7d,0x1, 0x2e,0x4, 0x1, 0x5d,0x49,0x30, +0x0, 0x2, 0xb, 0x8, 0x20,0x2f,0x17,0x59,0x30,0x0, 0x2, 0x1b,0x8, 0x20,0x22,0x49, +0x31,0x1, 0x5f,0x49,0x21,0x1, 0x5d,0x22,0xca,0xf8,0x7c,0xab,0x7f,0x70,0x7f,0x61, +0x6c,0x11,0x6c,0xff,0x7e,0x34,0x2, 0xaf,0x7e,0x24,0x0, 0x40,0xe4,0x12,0x3, 0x15, +0x6c,0x0, 0xa5,0xb8,0x8, 0x6, 0xbc,0xa1,0x28,0x2, 0x6c,0x11,0x7e,0x30,0x4, 0xac, +0x30,0x12,0x20,0x7f,0xbf,0x16,0x8, 0x11,0x7e,0x30,0x4, 0xac,0x31,0x59,0x31,0x2, +0xb1,0x59,0x21,0x2, 0xaf,0xb, 0x10,0x80,0x6, 0xbc,0xa1,0x28,0x2, 0x6c,0x11,0xb, +0x0, 0xa5,0xb8,0x10,0xcd,0xbc,0xa1,0x38,0x2b,0x7e,0x1f,0x1, 0xa5,0xbf,0x17,0x58, +0x23,0x7e,0x34,0x2, 0xaf,0xa, 0x2a,0x12,0x27,0x12,0x12,0x21,0x74,0x49,0x35,0x2, +0xb1,0x49,0x25,0x2, 0xaf,0x7f,0x1, 0x2f,0x0, 0x7e,0x1f,0x2, 0xaf,0xbf,0x1, 0x8, +0x3, 0x7e,0xf0,0x1, 0x7c,0xbf,0xda,0xf8,0x22,0x75,0x8, 0x4, 0x7e,0x18,0x27,0x10, +0x7e,0x8, 0x9c,0x40,0x74,0x8, 0x12,0x20,0x88,0x70,0x10,0x75,0x8, 0x4, 0x7e,0x18, +0x4e,0x20,0x7e,0x8, 0xea,0x60,0x74,0x6, 0x12,0x20,0x88,0x70,0x10,0x75,0x8, 0x4, +0x7e,0x18,0x5, 0xdc,0x7e,0x8, 0x13,0x88,0x74,0x8, 0x12,0x20,0x88,0x60,0x10,0x7e, +0xb3,0x2, 0x55,0x44,0x2, 0x7a,0xb3,0x2, 0x55,0xe4,0x7a,0xb3,0x5, 0x7e,0x22,0x7e, +0xa3,0x2, 0x55,0x7c,0xba,0x30,0xe1,0x1b,0x7e,0xb3,0x5, 0x7e,0x4, 0x7a,0xb3,0x5, +0x7e,0xbe,0xb0,0x14,0x40,0xd, 0xe4,0x7a,0xb3,0x5, 0x7e,0x7c,0xba,0x54,0xfd,0x7a, +0xb3,0x2, 0x55,0x22,0x7e,0xa1,0x8, 0x74,0x4, 0xa4,0x22,0xca,0x3b,0x7e,0xe3,0x0, +0x55,0x5e,0xe0,0xf, 0x74,0x5, 0xac,0xbf,0x7e,0x68,0x7, 0x8, 0x7e,0x78,0x3, 0xe8, +0x6c,0xff,0x41,0xe6,0xa, 0x3f,0x9, 0xd3,0x0, 0x3b,0xa, 0x3d,0x12,0x27,0x7a,0x7c, +0xc5,0xa, 0x3d,0x12,0x27,0xb, 0x7c,0xb5,0xf5,0x8, 0x75,0x9, 0x0, 0x60,0x2, 0x41, +0x47,0x12,0x22,0xf8,0xbe,0xb4,0x1, 0xf4,0x28,0x5, 0x75,0xa, 0x19,0x80,0x3, 0x75, +0xa, 0x14,0x74,0x4, 0xac,0xbd,0x12,0x13,0xd9,0xbe,0x18,0x7, 0x8, 0x58,0xe, 0x49, +0x35,0x0, 0xd3,0x49,0x25,0x0, 0xd1,0xbe,0x18,0x3, 0xe8,0x48,0x4c,0x12,0x23,0x1, +0xbe,0x18,0x27,0x10,0x58,0x25,0x49,0x95,0x1, 0x63,0x49,0x85,0x1, 0x61,0xbe,0x48, +0x7, 0xd0,0x58,0x17,0x12,0x21,0x74,0x49,0x35,0x1, 0x87,0x49,0x25,0x1, 0x85,0x12, +0x17,0xd2,0xbf,0x14,0x8, 0x5, 0xbe,0xe0,0x1, 0x68,0x1e,0xbe,0xb4,0x1, 0x90,0x38, +0x2, 0x41,0xd6,0x12,0x53,0x4c,0x49,0x25,0x1, 0x61,0xbe,0x18,0x3, 0x20,0x48,0x2, +0x41,0xd6,0xbe,0xe0,0x1, 0x68,0x2, 0x41,0xd6,0x12,0x22,0xef,0xbe,0xa4,0x0, 0x1e, +0x40,0x2, 0x41,0xd6,0xbe,0xb4,0x1, 0xa4,0x38,0x8, 0xbe,0xb4,0x1, 0x7c,0x40,0x2, +0x41,0xd6,0x75,0x9, 0x1, 0x41,0xd6,0xe5,0x8, 0xb4,0x7, 0x2, 0x80,0x2, 0x41,0xd6, +0x12,0x22,0xf8,0xbe,0xb4,0x1, 0xf4,0x28,0x5, 0x75,0xa, 0x19,0x80,0x3, 0x75,0xa, +0x14,0x74,0x4, 0xac,0xbd,0x12,0x13,0xd9,0xbf,0x16,0x58,0xc, 0x49,0x35,0x0, 0xcb, +0x49,0x25,0x0, 0xc9,0xbf,0x17,0x48,0x46,0x12,0x23,0x1, 0xbe,0x18,0x27,0x10,0x58, +0x25,0x49,0x95,0x1, 0x5b,0x49,0x85,0x1, 0x59,0xbe,0x48,0x7, 0xd0,0x58,0x17,0x12, +0x21,0x74,0x49,0x35,0x1, 0x77,0x49,0x25,0x1, 0x75,0x12,0x17,0xd2,0xbf,0x14,0x8, +0x5, 0xbe,0xe0,0x1, 0x68,0x18,0xbe,0xb4,0x1, 0x90,0x28,0x2a,0x12,0x53,0x43,0x49, +0x25,0x1, 0x59,0xbe,0x18,0x3, 0x20,0x58,0x1d,0xbe,0xe0,0x1, 0x78,0x18,0x12,0x22, +0xef,0xbe,0xa4,0x1, 0xc2,0x28,0xf, 0xbe,0xb4,0x1, 0xa4,0x38,0x6, 0xbe,0xb4,0x1, +0x7c,0x50,0x3, 0x75,0x9, 0x2, 0xe5,0x9, 0xbe,0xb0,0x0, 0x28,0x7, 0x7c,0xbf,0x7c, +0x7e,0x12,0x4e,0x13,0xb, 0xf0,0xbc,0xef,0x28,0x2, 0x21,0x94,0xda,0x3b,0x22,0x74, +0x5, 0xac,0xbf,0x49,0xa5,0x0, 0x3f,0x22,0x74,0x5, 0xac,0xbf,0x49,0xb5,0x0, 0x41, +0x22,0x74,0x4, 0xac,0xbc,0x49,0x35,0x1, 0x5f,0x49,0x25,0x1, 0x5d,0x22,0xca,0x3b, +0x12,0xb, 0xbf,0x7c,0xeb,0xbe,0xb0,0x2, 0x50,0x2, 0xa1,0x74,0x6c,0xff,0x80,0x27, +0x7e,0x70,0x5, 0xac,0x7f,0x49,0x23,0x0, 0x3f,0x59,0x23,0x2, 0xaf,0x49,0x23,0x0, +0x41,0x59,0x23,0x2, 0xb1,0x74,0xff,0x19,0xb3,0x2, 0xb3,0xa, 0x2f,0x9, 0x72,0x0, +0x3b,0x19,0x72,0x2, 0xd5,0xb, 0xf0,0x12,0xb, 0xbf,0x12,0x27,0x62,0x48,0xd1,0x6c, +0xff,0xa1,0x9, 0x74,0x5, 0xac,0xbf,0x12,0x25,0x77,0x78,0x2, 0xa1,0x7, 0xa, 0x6f, +0xb, 0x64,0xa1,0x1, 0x74,0x5, 0xac,0xbd,0x12,0x25,0x77,0x78,0x2, 0x81,0xff,0xa, +0x2f,0x9, 0x72,0x2, 0xd5,0xbe,0x73,0x5, 0x79,0x40,0x19,0xbe,0x73,0x5, 0x78,0x50, +0x13,0xa, 0x1d,0x9, 0x61,0x2, 0xd5,0xbe,0x63,0x5, 0x78,0x40,0x7, 0xa, 0x6, 0x12, +0x25,0xab,0x48,0x27,0xa, 0x1d,0x9, 0x61,0x2, 0xd5,0xbe,0x63,0x5, 0x79,0x50,0x2, +0x81,0xff,0xbe,0x63,0x5, 0x78,0x40,0x2, 0x81,0xff,0xbe,0x73,0x5, 0x78,0x50,0x2, +0x81,0xff,0xa, 0x7, 0x12,0x25,0xab,0x48,0x2, 0x81,0xff,0xa, 0x37,0x7e,0x53,0x5, +0x79,0xa, 0x45,0x7d,0x24,0x12,0x0, 0x46,0x7c,0xa5,0x7a,0xa3,0x2, 0xd9,0xa, 0x3d, +0x9, 0xb3,0x2, 0xd5,0xa, 0x3b,0x7d,0x24,0x12,0x0, 0x46,0x7c,0xb5,0x7a,0xb3,0x2, +0xda,0xa, 0x2b,0xa, 0x3a,0x12,0x25,0xbc,0x8, 0x2, 0x81,0xff,0x12,0x25,0x9a,0x9d, +0x32,0x12,0x3, 0x5, 0xbe,0x37,0x1, 0xff,0x48,0x2, 0x81,0xff,0xa, 0x3f,0x9, 0xb3, +0x2, 0xd5,0xa, 0x3d,0x9, 0x73,0x2, 0xd5,0x12,0x49,0x8, 0x7a,0x37,0x2, 0xcf,0xa, +0x3f,0x9, 0x73,0x2, 0xd5,0x7e,0x53,0x5, 0x79,0xa, 0x45,0x12,0x25,0x8a,0x49,0x5, +0x1, 0x5d,0x7a,0xf, 0x2, 0xc3,0xa, 0x5c,0x12,0x25,0x83,0x12,0x23,0x5, 0x2f,0x10, +0x7a,0x1f,0x2, 0xc3,0xa, 0x5d,0x9, 0x75,0x2, 0xd5,0xa, 0x37,0x12,0x25,0x8a,0x49, +0x5, 0x1, 0x5d,0x7a,0xf, 0x2, 0xc7,0xa, 0x5c,0x12,0x25,0x83,0x12,0x23,0x5, 0x2f, +0x10,0x7a,0x1f,0x2, 0xc7,0x74,0x5, 0xac,0xbd,0x49,0x35,0x2, 0xaf,0x6d,0x22,0x7e, +0x6f,0x2, 0xc7,0x7f,0x6, 0x12,0x0, 0x78,0x7f,0x51,0x74,0x5, 0xac,0xbf,0x49,0x35, +0x2, 0xaf,0x6d,0x22,0x7e,0x7f,0x2, 0xc3,0x7f,0x7, 0x12,0x0, 0x78,0x2f,0x15,0x7f, +0x7, 0x2f,0x6, 0x12,0x0, 0xe5,0x7a,0x1f,0x2, 0xcb,0x7e,0xa0,0xbb,0x7e,0x70,0x5, +0xac,0x7f,0x19,0xa3,0x2, 0xb3,0x12,0x25,0x9a,0xbd,0x32,0x50,0xa, 0x7a,0x37,0x2, +0xd1,0x7a,0x27,0x2, 0xd3,0x80,0x8, 0x7a,0x27,0x2, 0xd1,0x7a,0x37,0x2, 0xd3,0x7e, +0x37,0x2, 0xcf,0xbe,0x37,0x2, 0xd1,0x38,0x6, 0x7e,0x27,0x2, 0xd1,0x80,0xa, 0xbe, +0x37,0x2, 0xd3,0x40,0xe, 0x7e,0x27,0x2, 0xd3,0x74,0x5, 0xac,0xbf,0x59,0x25,0x2, +0xb1,0x80,0x14,0x7e,0xa0,0xcc,0x7e,0x50,0x5, 0xac,0x5f,0x19,0xa2,0x2, 0xb3,0x74, +0x5, 0xac,0xbf,0x59,0x35,0x2, 0xb1,0x7e,0x1f,0x2, 0xcb,0x74,0x5, 0xac,0xbf,0x59, +0x35,0x2, 0xaf,0x7e,0xa0,0xaa,0x7e,0x70,0x5, 0xac,0x7d,0x19,0xa3,0x2, 0xb3,0xb, +0xd0,0xbc,0xed,0x28,0x2, 0x61,0x64,0xb, 0xf0,0xbc,0xef,0x28,0x2, 0x61,0x53,0x12, +0x27,0x69,0x7a,0xb3,0x0, 0x55,0x6c,0xff,0x80,0x56,0x7e,0x30,0x5, 0xac,0x3f,0x9, +0x61,0x2, 0xb3,0xbe,0x60,0xaa,0x68,0x46,0x49,0x21,0x2, 0xaf,0x7e,0x73,0x0, 0x55, +0x7c,0x7, 0x5e,0x0, 0xf, 0x74,0x5, 0xac,0xb0,0x59,0x25,0x0, 0x3f,0x49,0x21,0x2, +0xb1,0x59,0x25,0x0, 0x41,0xa, 0x2f,0x9, 0x12,0x2, 0xd5,0xa, 0x20,0x19,0x12,0x0, +0x3b,0xa5,0xbe,0xbb,0x4, 0x74,0x2, 0x80,0x6, 0xa5,0xbe,0xcc,0x6, 0x74,0x1, 0x19, +0xb2,0x0, 0x53,0x12,0x26,0x78,0x12,0xb, 0xbf,0xbe,0xb0,0x2, 0x50,0x6, 0xb, 0xf0, +0xbc,0xef,0x38,0xa6,0xda,0x3b,0x22,0x9, 0xb5,0x2, 0xb3,0xbe,0xb0,0xaa,0x22,0xa, +0x4f,0xa, 0x5e,0x2d,0x54,0x3e,0x54,0x3e,0x54,0x22,0x7d,0x24,0x12,0x0, 0x46,0x7c, +0xc5,0x74,0x4, 0xac,0xbc,0x49,0x15,0x1, 0x5f,0x22,0x74,0x5, 0xac,0xbd,0x49,0x25, +0x2, 0xb1,0x74,0x5, 0xac,0xbf,0x49,0x35,0x2, 0xb1,0x22,0x7e,0x63,0x5, 0x78,0xa, +0x56,0x7e,0x63,0x5, 0x79,0xa, 0x16,0x2d,0x15,0xbd,0x1, 0x22,0x9d,0x32,0x12,0x3, +0x5, 0xbe,0x34,0x0, 0x1, 0x22,0x12,0x27,0x70,0x78,0x2, 0xc1,0x69,0x6c,0x33,0x12, +0x26,0x6a,0xbe,0x20,0x2, 0x50,0x1d,0xa, 0x32,0x9, 0xb3,0x0, 0xc1,0x70,0x15,0x49, +0x2, 0x0, 0x69,0x7e,0x70,0x4, 0xac,0x72,0x59,0x3, 0x5, 0x6e,0x49,0x2, 0x0, 0x6b, +0x59,0x3, 0x5, 0x70,0xb, 0x30,0xa5,0xbb,0x2, 0xd5,0x6c,0x33,0x80,0x67,0x12,0x26, +0x6a,0xbe,0x20,0x2, 0x50,0x5d,0x7e,0x70,0x4, 0xac,0x72,0x49,0x43,0x5, 0x6e,0x49, +0x2, 0x0, 0x69,0x9d,0x4, 0x49,0x33,0x5, 0x70,0x49,0x42,0x0, 0x6b,0x9d,0x43,0x7d, +0x30,0x12,0x25,0xbe,0x18,0x23,0x7d,0x34,0x12,0x25,0xbe,0x18,0x1c,0x7e,0x70,0x4, +0xac,0x72,0x49,0xf3,0x5, 0x6e,0x7e,0x50,0x5, 0xac,0x53,0x59,0xf2,0x0, 0x69,0x49, +0x33,0x5, 0x70,0x59,0x32,0x0, 0x6b,0x80,0x1a,0x7e,0x70,0x5, 0xac,0x73,0x49,0xf3, +0x0, 0x69,0x7e,0x50,0x4, 0xac,0x52,0x59,0xf2,0x5, 0x6e,0x49,0x33,0x0, 0x6b,0x59, +0x32,0x5, 0x70,0xb, 0x30,0xbc,0xa3,0x38,0x95,0x22,0x7e,0x50,0x5, 0xac,0x53,0x9, +0x22,0x0, 0x6d,0x22,0x7e,0x73,0x0, 0x55,0x7c,0x67,0xb, 0x60,0x5e,0x60,0xf, 0x5e, +0x70,0xf0,0x4c,0x76,0x7a,0x73,0x0, 0x55,0x22,0x7d,0x13,0x1a,0x2, 0x1a,0x0, 0x7e, +0x2f,0x1, 0x4d,0xbf,0x2, 0x18,0x9, 0x12,0x26,0x74,0x7e,0x34,0x0, 0x50,0x80,0x20, +0x7e,0x2f,0x1, 0x51,0xbf,0x2, 0x18,0x9, 0x12,0x26,0x74,0x7e,0x34,0x0, 0xf0,0x80, +0xf, 0x7e,0x1f,0x1, 0x55,0xbf,0x1, 0x18,0x13,0x12,0x26,0x74,0x7e,0x34,0x1, 0x90, +0x7a,0x37,0x0, 0x3f,0x7e,0x34,0x3, 0x84,0x7a,0x37,0x0, 0x41,0x22,0xca,0xf8,0x7c, +0xab,0x7d,0x42,0x7d,0x13,0x6c,0x11,0x80,0x2b,0xa, 0x31,0x2d,0x34,0x7e,0x39,0x0, +0xa, 0x30,0x12,0x27,0xb, 0x7c,0x5, 0x6c,0xff,0xa, 0x20,0xa, 0x3f,0x12,0x25,0xbc, +0x18,0x9, 0x74,0x1, 0xa, 0x3f,0x2d,0x31,0x7a,0x39,0xb0,0xb, 0xf0,0xbe,0xf0,0x8, +0x78,0xe7,0xb, 0x10,0xbc,0xa1,0x38,0xd1,0xda,0xf8,0x22,0x7e,0x24,0x0, 0x8, 0x2, +0x0, 0x46,0x6d,0x11,0x80,0x3e,0x6d,0x0, 0x80,0x2e,0x7d,0xf0,0x3e,0xf4,0x3e,0xf4, +0x7d,0xef,0x2d,0xe3,0x12,0x27,0x59,0x49,0x5e,0x0, 0x2, 0xb, 0xe8,0x40,0xbf,0x26, +0x58,0x14,0x12,0x27,0x59,0x59,0xde,0x0, 0x2, 0x1b,0xe8,0xc0,0x2d,0xf3,0x59,0x5f, +0x0, 0x6, 0x59,0x4f,0x0, 0x4, 0xb, 0x4, 0x7d,0xf2,0x1b,0xf4,0x9d,0xf1,0xbd,0xf0, +0x38,0xc8,0xb, 0x14,0xbd,0x21,0x38,0xbe,0x22,0x49,0xde,0x0, 0x6, 0x49,0xce,0x0, +0x4, 0x22,0xa, 0x2b,0xa, 0x3f,0xbd,0x32,0x22,0x7e,0xb3,0x0, 0x55,0x54,0xf0,0x22, +0x7e,0xa3,0x0, 0x55,0x5e,0xa0,0xf, 0x22,0xa, 0x3b,0x7e,0x24,0x0, 0x10,0x2, 0x0, +0x46,0x7d,0x2, 0x7d,0xf3,0x6d,0x44,0xd2,0xf, 0x12,0x27,0x78,0xbe,0x24,0x0, 0x8, +0x48,0x2, 0xc2,0xf, 0xbe,0xf4,0x0, 0x20,0x40,0x21,0xbe,0xf4,0x0, 0x4d,0x50,0x1b, +0x7e,0x14,0x0, 0x4d,0x30,0xf, 0xa, 0x9d,0x1f,0x1b,0x14,0x2e,0x14,0x1, 0xc1,0x80, +0x2d,0x9d,0x1f,0x1b,0x14,0x2e,0x14,0x1, 0x67,0x80,0x23,0xbe,0xf4,0x1, 0xb3,0x28, +0x2f,0xbe,0xf4,0x1, 0xe0,0x38,0x29,0x7d,0x1f,0x30,0xf, 0xa, 0x9e,0x14,0x1, 0xb4, +0x2e,0x14,0x1, 0x94,0x80,0x8, 0x9e,0x14,0x1, 0xb4,0x2e,0x14,0x1, 0x3a,0x12,0x1f, +0x7f,0x1a,0x4b,0x7e,0x14,0x0, 0xa, 0x7d,0x34,0xad,0x31,0x12,0x52,0x4c,0x7d,0x43, +0x7d,0x54,0x1a,0x4a,0x1a,0x48,0x12,0x37,0x1d,0x2f,0x12,0x2, 0x20,0x77,0x9f,0x11, +0x7a,0x1f,0x0, 0x57,0x7a,0x1f,0x0, 0xbb,0x6c,0xaa,0x7e,0x70,0x4, 0xac,0x7a,0x49, +0xf3,0x1, 0x5f,0x49,0xe3,0x1, 0x5d,0x7e,0xf, 0x0, 0x57,0x2f,0x7, 0x7a,0xf, 0x0, +0x57,0x49,0x13,0x1, 0x7f,0x49,0x3, 0x1, 0x7d,0x7e,0x1f,0x0, 0xbb,0x2f,0x10,0x7a, +0x1f,0x0, 0xbb,0xb, 0xa0,0xbe,0xa0,0x8, 0x40,0xd0,0x22,0xa, 0x2b,0x5e,0x24,0x0, +0x1, 0x7c,0xa7,0x1e,0xa0,0xa, 0x3a,0xad,0x32,0x7c,0x5b,0x1e,0x50,0xa, 0x55,0x2d, +0x53,0x22,0xca,0xf8,0x7c,0xfb,0xbe,0xf0,0x1, 0x68,0x5, 0xbe,0xf0,0x2, 0x78,0x15, +0x74,0x12,0x7a,0xb3,0x2, 0x57,0xe4,0x7a,0xb3,0x2, 0x58,0x7e,0x73,0x2, 0x57,0x7a, +0x73,0x2, 0x59,0x80,0x12,0x74,0x20,0x7a,0xb3,0x2, 0x57,0x74,0x4, 0x7a,0xb3,0x2, +0x58,0x74,0x24,0x7a,0xb3,0x2, 0x59,0x7e,0xb3,0x2, 0xaa,0x44,0xf, 0x7a,0xb3,0x2, +0xaa,0x44,0xf0,0x7a,0xb3,0x2, 0xaa,0x7e,0x73,0x0, 0xa7,0x7a,0x73,0x2, 0xa8,0x7e, +0x73,0x0, 0xa8,0x7a,0x73,0x2, 0xa9,0xbe,0xf0,0x1, 0x68,0x5, 0xbe,0xf0,0x2, 0x78, +0x16,0xe5,0x22,0x70,0x6, 0x7e,0x34,0x2, 0x52,0x80,0x4, 0x7e,0x34,0x2, 0x64,0x7e, +0x24,0x2, 0x5a,0x74,0x12,0x80,0xa, 0x7e,0x34,0x1, 0xee,0x7e,0x24,0x2, 0x5a,0x74, +0x24,0x7e,0x30,0x98,0x12,0x2a,0x1, 0x6c,0x33,0x80,0x11,0x7c,0xb3,0x7e,0x73,0x2, +0x57,0x12,0x28,0x3b,0xa, 0x33,0x19,0xb3,0x2, 0x7e,0xb, 0x30,0x7e,0x23,0x2, 0x57, +0xbc,0x23,0x38,0xe7,0x6c,0x33,0x80,0x18,0xa, 0x3, 0x7e,0x53,0x2, 0x57,0xa, 0x35, +0x2d,0x30,0x7c,0x27,0xa, 0x33,0xa, 0x5, 0x2d,0x3, 0x19,0x20,0x2, 0x7e,0xb, 0x30, +0x7e,0x23,0x2, 0x58,0xbc,0x23,0x38,0xe0,0x7e,0xb3,0x2, 0xa4,0x44,0x1, 0x7a,0xb3, +0x2, 0xa4,0xbe,0xf0,0x1, 0x78,0xd, 0x7e,0xb3,0x2, 0xa4,0x54,0xfd,0x12,0x29,0xe6, +0x44,0x8, 0x80,0x21,0xbe,0xf0,0x2, 0x7e,0xb3,0x2, 0xa4,0x78,0x11,0x54,0xfd,0x7a, +0xb3,0x2, 0xa4,0x7e,0xb3,0x2, 0xac,0x54,0xfb,0x12,0x29,0xf0,0x80,0x7, 0x44,0x2, +0x12,0x29,0xe6,0x44,0x18,0x7a,0xb3,0x2, 0xac,0x7e,0xb3,0x2, 0xa4,0x54,0xfb,0x7a, +0xb3,0x2, 0xa4,0x44,0x18,0x7a,0xb3,0x2, 0xa4,0x7e,0x63,0x0, 0xb6,0x5e,0x60,0x7, +0x7c,0xb6,0xc4,0x23,0x54,0xe0,0x7c,0x6b,0x7e,0x73,0x2, 0xa4,0x12,0x29,0xf7,0x7c, +0xb7,0xc4,0x3, 0x54,0x7, 0xbe,0xb0,0x0, 0x28,0x10,0x7c,0xb7,0x30,0xe1,0xb, 0x7c, +0x67,0x9e,0x60,0x20,0x5e,0x60,0xe0,0x12,0x29,0xf7,0x7e,0x63,0x0, 0xb7,0x5e,0x60, +0x7f,0x7e,0x73,0x2, 0xa5,0x5e,0x70,0x80,0x4c,0x76,0x7a,0x73,0x2, 0xa5,0x7e,0x63, +0x0, 0xb8,0x5e,0x60,0x7f,0x7e,0x73,0x2, 0xa6,0x5e,0x70,0x80,0x4c,0x76,0x7a,0x73, +0x2, 0xa6,0x7e,0xb3,0x2, 0xa7,0x54,0xf0,0x44,0x1, 0x7a,0xb3,0x2, 0xa7,0x54,0xf, +0x44,0x20,0x7a,0xb3,0x2, 0xa7,0x12,0x2d,0x3, 0x7a,0xb3,0x2, 0xac,0x54,0x7f,0x7a, +0xb3,0x2, 0xac,0xda,0xf8,0x22,0x7a,0xb3,0x2, 0xa4,0x7e,0xb3,0x2, 0xac,0x44,0x4, +0x7a,0xb3,0x2, 0xac,0x54,0xc7,0x22,0x5e,0x70,0x1f,0x4c,0x76,0x7a,0x73,0x2, 0xa4, +0x22,0x7c,0x23,0x7c,0x3b,0xa5,0xba,0x97,0x24,0xbe,0x30,0x1c,0x50,0x4, 0x7c,0x23, +0x80,0x3, 0x7e,0x20,0x1c,0x6c,0xaa,0x80,0xf, 0x12,0x2a,0x3c,0xa, 0x4b,0x2e,0x44, +0x2, 0xe9,0x12,0x2a,0x42,0x12,0x2a,0x4b,0xbc,0x2a,0x38,0xed,0x22,0x6c,0xaa,0x80, +0x6, 0x12,0x2a,0x3c,0x12,0x2a,0x4b,0xbc,0x3a,0x38,0xf6,0x22,0xa, 0xa, 0x7d,0x40, +0x2d,0x43,0x7a,0x91,0x82,0x7a,0x81,0x83,0xe4,0x93,0x22,0x2d,0x2, 0x7a,0x9, 0xb0, +0xb, 0xa0,0x22,0x7e,0xa3,0x0, 0xb5,0xbe,0xa0,0x1, 0x68,0x5, 0xbe,0xa0,0x2, 0x78, +0x3, 0x75,0x1a,0x1, 0xe5,0x1a,0x30,0xe0,0x25,0x7c,0xba,0x12,0x28,0x52,0x12,0x2f, +0x6c,0xbe,0xa0,0x1, 0x78,0x6, 0x7e,0x34,0x0, 0xa9,0x80,0x9, 0xbe,0xa0,0x2, 0x78, +0x7, 0x7e,0x34,0x0, 0xaf,0x12,0x2a,0xa6,0x12,0x2b,0xa, 0x53,0x1a,0xfc,0xe5,0x1a, +0x30,0xe2,0x12,0x53,0xca,0xe1,0x7e,0x73,0x0, 0xb9,0xa, 0x37,0x3e,0x34,0x7c,0xb7, +0x42,0xca,0x53,0x1a,0xfb,0x22,0x7d,0x23,0xe5,0x22,0x70,0x27,0x74,0x7, 0x7e,0x70, +0x4, 0x12,0x2a,0xfc,0x7e,0x70,0x2, 0x12,0xf, 0xcb,0x74,0x56,0x7e,0x29,0x70,0x12, +0xf, 0xcb,0x74,0x57,0x9, 0x72,0x0, 0x1, 0x12,0xf, 0xcb,0x74,0x58,0x9, 0x72,0x0, +0x2, 0x80,0x26,0x74,0x7, 0x7e,0x70,0x2, 0x12,0x2a,0xfc,0x7e,0x70,0x4, 0x12,0xf, +0xcb,0x74,0x56,0x9, 0x72,0x0, 0x3, 0x12,0xf, 0xcb,0x74,0x57,0x9, 0x72,0x0, 0x4, +0x12,0xf, 0xcb,0x74,0x58,0x9, 0x72,0x0, 0x5, 0x2, 0xf, 0xcb,0x12,0xf, 0xcb,0x74, +0x8, 0x7e,0x70,0xc, 0x12,0xf, 0xcb,0x74,0x9, 0x22,0xca,0x3b,0xc2,0xf, 0x7e,0xb3, +0x2, 0xac,0x54,0x7f,0x7a,0xb3,0x2, 0xac,0x7e,0x67,0x2, 0xad,0x7e,0xb3,0x2, 0x55, +0x30,0xe5,0x10,0x80,0x4, 0xe4,0x12,0xf, 0xd1,0x12,0xf, 0xeb,0x50,0xf7,0xd2,0xf, +0x12,0x2f,0x5a,0x53,0xe3,0x1f,0x7e,0x34,0x2, 0xaf,0x7e,0x24,0x0, 0x24,0x74,0xff, +0x12,0x3, 0x15,0x6c,0xee,0x61,0xd2,0x6c,0xff,0x80,0xa, 0xe4,0xa, 0x3f,0x2d,0x36, +0x7a,0x39,0xb0,0xb, 0xf0,0x12,0x1f,0x69,0x38,0xf1,0x7e,0x34,0x5, 0x28,0x7e,0x24, +0x0, 0x24,0x12,0x2d,0xa, 0x44,0x4, 0x7a,0xb3,0x2, 0x55,0x6c,0xff,0xa, 0x2f,0x7e, +0x34,0x0, 0x7, 0x9d,0x32,0x7a,0x73,0x5, 0x4c,0x12,0x2d,0x5d,0x12,0x13,0xe6,0x12, +0x2d,0x99,0xb, 0xf0,0xbe,0xf0,0x8, 0x78,0xe4,0x12,0x2d,0x13,0x6c,0xff,0x80,0x3b, +0xa, 0x2f,0x9, 0x62,0x2, 0xaf,0xa, 0x1f,0x2d,0x16,0x7e,0x19,0x70,0xbc,0x67,0x28, +0x28,0x19,0x72,0x2, 0xaf,0x7e,0xb3,0x2, 0x55,0x20,0xe0,0x7, 0x7e,0xb3,0x2, 0xa4, +0x30,0xe1,0x5, 0x12,0x13,0xd5,0x80,0x5, 0x12,0x13,0xd5,0x2f,0x11,0x2f,0x11,0x2f, +0x11,0x74,0x2, 0xac,0xbf,0x59,0x35,0x1, 0xa9,0xb, 0xf0,0x12,0x1f,0x69,0x38,0xc0, +0xb, 0xe0,0x7e,0x73,0x2, 0xe, 0xbc,0x7e,0x28,0x2, 0x61,0x47,0x6c,0xff,0x80,0xd, +0xa, 0x3f,0x9, 0x53,0x2, 0xaf,0x2d,0x36,0x7a,0x39,0x50,0xb, 0xf0,0x12,0x1f,0x69, +0x38,0xee,0x74,0x3, 0x12,0x2c,0x26,0x12,0x2d,0x44,0x12,0x2f,0x86,0x30,0xf, 0x15, +0x7e,0xb3,0x2, 0x55,0x44,0x20,0x7a,0xb3,0x2, 0x55,0x80,0x4, 0xe4,0x12,0xf, 0xd1, +0x12,0xf, 0xeb,0x50,0xf7,0x53,0xe3,0x1f,0x7e,0xb3,0x2, 0xa4,0x12,0x2d,0x33,0x7c, +0xb7,0x42,0xe3,0xda,0x3b,0x22,0x7e,0x37,0x2, 0x7, 0x89,0x34,0x12,0xe, 0xe6,0x12, +0x2b,0xa, 0x12,0x2d,0x1e,0x2, 0x2c,0x38,0xca,0x79,0x12,0x2d,0x3, 0x7a,0xb3,0x2, +0xac,0x7e,0x34,0x2, 0xaf,0x7e,0x24,0x0, 0x48,0x12,0x2d,0xa, 0x30,0xe0,0x3f,0x44, +0x4, 0x7a,0xb3,0x2, 0x55,0x6c,0xee,0x80,0x28,0x12,0x13,0xe6,0x6c,0xff,0x80,0x1a, +0x7e,0x50,0x2, 0xac,0x5f,0x49,0xf2,0x2, 0xaf,0x6d,0xee,0x12,0x17,0x8a,0xbf,0x7, +0x8, 0x6, 0x7d,0x31,0x59,0x32,0x2, 0xaf,0xb, 0xf0,0x12,0x1f,0x69,0x38,0xe1,0xb, +0xe0,0x7e,0x73,0x2, 0xd, 0xbc,0x7e,0x38,0xd0,0x12,0x2d,0x13,0x80,0x31,0x7e,0xe0, +0x1, 0x12,0x13,0xe6,0x6c,0xff,0x80,0x1b,0x12,0x13,0xd5,0x12,0x2f,0x65,0x7d,0x13, +0x7e,0x50,0x2, 0xac,0x5f,0x2e,0x24,0x2, 0xaf,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28, +0x30,0xb, 0xf0,0x12,0x1f,0x69,0x38,0xe0,0xb, 0xe0,0xbe,0xe0,0x4, 0x28,0xd2,0x6c, +0xee,0x80,0xe, 0x74,0x2, 0xac,0xbe,0x49,0x35,0x2, 0xaf,0x59,0x35,0x1, 0xa9,0xb, +0xe0,0x7e,0x73,0x2, 0x59,0xbc,0x7e,0x38,0xea,0xda,0x79,0x22,0xca,0x79,0x6d,0x77, +0x7a,0x77,0x0, 0x80,0x7e,0x34,0x3, 0xe8,0x7a,0x37,0x0, 0x39,0x12,0x2d,0x3, 0x7a, +0xb3,0x2, 0xac,0x12,0x2b,0xa, 0x12,0x2c,0x38,0x7a,0x77,0x0, 0x80,0x12,0x2f,0x7d, +0xda,0x79,0x22,0x7e,0xb3,0x2, 0xac,0x54,0xbf,0x22,0xe4,0x12,0x3, 0x15,0x7e,0xb3, +0x2, 0x55,0x22,0x7e,0xb3,0x2, 0x55,0x54,0xfb,0x7a,0xb3,0x2, 0x55,0x22,0x74,0x20, +0x7a,0xb3,0x4, 0x16,0x74,0xe, 0x7a,0xb3,0x4, 0x17,0x12,0x2f,0x74,0xe4,0x2, 0x3, +0x15,0x7c,0xba,0xc4,0x3, 0x54,0x7, 0xa, 0x3b,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e, +0x34,0x3e,0x34,0x22,0x7e,0x27,0x2, 0xad,0x6c,0x66,0x80,0x8, 0x12,0x2d,0x8b,0x12, +0xf, 0xc5,0xb, 0x60,0x7e,0x73,0x2, 0x59,0xbc,0x76,0x38,0xf0,0x22,0x7e,0xb3,0x2, +0xac,0x20,0xe7,0x26,0x7e,0x27,0x2, 0xad,0x6c,0x66,0x80,0x16,0x12,0x2d,0x8b,0x12, +0x2e,0x12,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0x79,0x4c,0xa7,0x12,0xf, 0xc5, +0xb, 0x60,0x7e,0x73,0x2, 0x59,0xbc,0x76,0x38,0xe2,0x22,0xa, 0x16,0x9, 0x71,0x2, +0x7e,0xa, 0x17,0x2d,0x12,0x7e,0x19,0xa0,0x22,0x12,0x0, 0x15,0x60,0x73,0x7e,0xb3, +0x2, 0xac,0x20,0xe7,0x6c,0x7e,0xb3,0x2, 0x55,0x30,0xe0,0x2, 0x80,0x7, 0x7e,0xb3, +0x2, 0xa4,0x30,0xe1,0x6, 0x7e,0x34,0xe, 0xb0,0x80,0x4, 0x7e,0x34,0x7, 0x58,0x7e, +0x27,0x2, 0xad,0x6c,0xaa,0x80,0x42,0xa, 0x1a,0x9, 0x31,0x2, 0x7e,0x7e,0x10,0x4, +0xac,0x13,0x49,0xd0,0x0, 0xcf,0x49,0xc0,0x0, 0xcd,0x7d,0xf3,0x6d,0xee,0xbf,0x67, +0x58,0x1a,0x12,0x2e,0x12,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0xb9,0xa, 0x3, +0x2e,0x4, 0x5, 0x28,0x7e,0x9, 0x20,0x4c,0x2b,0x7a,0x9, 0x20,0xa, 0x3, 0x9, 0x20, +0x5, 0x28,0x2d,0x2, 0x7a,0x9, 0x20,0xb, 0xa0,0x7e,0x23,0x2, 0x59,0xbc,0x2a,0x38, +0xb6,0x22,0x7e,0xb3,0x5, 0x4c,0x7e,0x44,0x0, 0x1, 0x22,0x12,0x2f,0x4f,0x74,0xf, +0x7a,0xb3,0x2, 0x37,0x74,0x5, 0x7a,0xb3,0x2, 0x39,0x7a,0xb3,0x2, 0x38,0x74,0xf, +0x7a,0xb3,0x2, 0x3a,0x7e,0x34,0x0, 0x32,0x7a,0x37,0x1, 0xf1,0x7e,0xb3,0x2, 0x55, +0x44,0x1, 0x7a,0xb3,0x2, 0x55,0x74,0x2, 0x7a,0xb3,0x2, 0xd, 0x7e,0xb3,0x2, 0x55, +0x30,0xe0,0x10,0x74,0x2, 0x7a,0xb3,0x2, 0xe, 0x74,0x8, 0x7a,0xb3,0x2, 0xf, 0x74, +0x2, 0x80,0xa, 0x74,0x1, 0x7a,0xb3,0x2, 0xe, 0x7a,0xb3,0x2, 0xf, 0x7a,0xb3,0x2, +0x10,0x74,0x14,0x7a,0xb3,0x2, 0x54,0x7e,0x34,0x2a,0xf8,0x7a,0x37,0x1, 0xf5,0x7e, +0xb3,0x2, 0x55,0x54,0xfd,0x7a,0xb3,0x2, 0x55,0x7e,0x34,0xfc,0x18,0x7a,0x37,0x1, +0xf3,0x12,0x2d,0x13,0x7e,0x34,0x0, 0x32,0x7a,0x37,0x1, 0xf7,0x7e,0x34,0x3, 0xe8, +0x7a,0x37,0x1, 0xf9,0x7e,0x34,0xf, 0xa0,0x7a,0x37,0x1, 0xfb,0x7e,0xb3,0x2, 0x55, +0x44,0x8, 0x7a,0xb3,0x2, 0x55,0x7e,0x34,0x2, 0x32,0x7a,0x37,0x2, 0x46,0x7e,0x34, +0x2, 0x42,0x7a,0x37,0x2, 0x48,0x7e,0x34,0x2, 0x12,0x7a,0x37,0x2, 0x4a,0x7e,0x34, +0x2, 0x22,0x7a,0x37,0x2, 0x4c,0x7e,0xb3,0x2, 0x55,0x54,0xef,0x7a,0xb3,0x2, 0x55, +0x7e,0x34,0x1, 0x90,0x7a,0x37,0x1, 0xfd,0x7e,0x34,0x0, 0xc8,0x7a,0x37,0x1, 0xff, +0x7e,0x34,0x0, 0x64,0x7a,0x37,0x2, 0x1, 0x7e,0x34,0x2, 0xbc,0x7a,0x37,0x2, 0x3, +0x7e,0x34,0x0, 0x78,0x7a,0x37,0x2, 0x3b,0x12,0x2f,0x5a,0x7e,0x34,0x0, 0xa, 0x7a, +0x37,0x2, 0x7, 0x7e,0x34,0x0, 0x9, 0x7a,0x37,0x2, 0x5, 0x7e,0x34,0x27,0x81,0x7a, +0x37,0x2, 0x9, 0x7e,0x34,0x8, 0x0, 0x7a,0x37,0x2, 0xb, 0xe4,0x7a,0xb3,0x2, 0x3d, +0x7e,0x34,0x0, 0x3b,0x7e,0x24,0x0, 0xcd,0x2, 0x2f,0x3b,0x7a,0x35,0x2f,0x7a,0x25, +0x2d,0xe4,0x7a,0xb3,0x4, 0xcd,0x7a,0xb3,0x4, 0x9e,0x7a,0xb3,0x4, 0xcc,0x22,0x74, +0x5, 0x7a,0xb3,0x2, 0x36,0x7a,0xb3,0x2, 0x35,0x22,0x7e,0xb3,0x2, 0x55,0x54,0xdf, +0x7a,0xb3,0x2, 0x55,0x22,0x7e,0x8, 0x0, 0x4, 0x2, 0x0, 0xe5,0x12,0xe, 0xe6,0x7e, +0xa3,0x0, 0xb5,0x22,0x7e,0x34,0x2, 0x11,0x7e,0x24,0x0, 0x24,0x22,0x7e,0x34,0x0, +0x64,0x7a,0x37,0x0, 0x39,0x22,0x7e,0xb3,0x2, 0xac,0x44,0x80,0x7a,0xb3,0x2, 0xac, +0x22,0x6d,0x33,0x7a,0x37,0x0, 0x80,0x12,0x2f,0x7d,0x2, 0x2f,0x9d,0x7e,0x34,0x3, +0xf5,0x7e,0xb3,0x4, 0x54,0x30,0xe0,0x71,0x54,0xfe,0x7a,0xb3,0x4, 0x54,0x9, 0x53, +0x0, 0x5, 0x7a,0x53,0x0, 0x68,0xa, 0x25,0x12,0x4b,0x7e,0x7a,0x27,0x0, 0x66,0x9, +0x53,0x0, 0x25,0xa, 0x25,0x7a,0x27,0x0, 0x5b,0x9, 0x53,0x0, 0x6, 0x7a,0x53,0x0, +0x5d,0x9, 0x53,0x0, 0x8, 0x7a,0x53,0x0, 0x5f,0xbe,0x50,0xf, 0x40,0x6, 0x74,0xe, +0x19,0xb3,0x0, 0x8, 0x9, 0x53,0x0, 0x8, 0xa, 0x25,0x2e,0x24,0x3, 0x25,0x12,0x1e, +0x6e,0x7a,0xb3,0x0, 0x5e,0x9, 0x53,0x0, 0x9, 0x7a,0x53,0x0, 0x61,0x7a,0x53,0x0, +0x60,0x9, 0x53,0x0, 0x7, 0x7a,0x53,0x0, 0x62,0x9, 0x53,0x0, 0x24,0x7a,0x53,0x0, +0x63,0x9, 0x73,0x0, 0x2e,0x7a,0x73,0x0, 0xb5,0x22,0x12,0x33,0x11,0x30,0xe, 0x36, +0x7e,0xf, 0x0, 0xbb,0x7e,0x1f,0x0, 0x57,0x2f,0x10,0x7e,0x8, 0x0, 0x64,0x12,0x0, +0xe5,0xbe,0x18,0x5, 0xdc,0x8, 0x8, 0x12,0x37,0x25,0xbe,0xb0,0x2, 0x40,0x6, 0xbe, +0x18,0x9, 0xc4,0x8, 0x11,0x7e,0x34,0x1, 0x2c,0x7a,0x37,0x1, 0xff,0x7e,0x34,0x0, +0xa, 0x7a,0x35,0x1e,0x80,0x1a,0x7e,0x35,0x1e,0x4d,0x33,0x68,0xb, 0x1b,0x34,0x7a, +0x35,0x1e,0x7e,0x34,0x1, 0x2c,0x80,0x4, 0x7e,0x34,0x0, 0xc8,0x7a,0x37,0x1, 0xff, +0x12,0x32,0x38,0x12,0x36,0x32,0x2, 0x30,0x79,0xca,0xd8,0xca,0x79,0x6c,0xff,0x7e, +0x35,0x2f,0x9, 0x73,0x0, 0x1a,0x5e,0x70,0xf, 0x7e,0x63,0x4, 0xaf,0xbe,0x60,0x1, +0x28,0x4d,0xbe,0x73,0x4, 0xaf,0x50,0x47,0x30,0xe, 0x44,0x6c,0xee,0x80,0x35,0x7e, +0x70,0x7, 0xac,0x7e,0x9, 0xb3,0x4, 0xb6,0x30,0xe1,0x27,0x30,0xe0,0x4, 0xb, 0xf0, +0x80,0x20,0xbe,0xf0,0x0, 0x28,0x1b,0x9, 0xd3,0x4, 0xb5,0x7c,0xbd,0x12,0x30,0xe4, +0x60,0x10,0x7c,0xbd,0x7e,0x70,0x6, 0x12,0x31,0x40,0x12,0x35,0xdc,0xac,0x5e,0x12, +0x35,0xe5,0xb, 0xe0,0x7e,0x73,0x4, 0xaf,0xbc,0x7e,0x38,0xc3,0x12,0x35,0xf5,0xda, +0x79,0xda,0xd8,0x22,0x12,0x37,0x2d,0x12,0x31,0x9f,0x7e,0xb3,0x2, 0xc4,0x12,0x31, +0x16,0xa, 0x3b,0x4d,0x33,0x78,0x1a,0x7e,0xb3,0x2, 0xc5,0x12,0x31,0x16,0xa, 0x3b, +0x4d,0x33,0x78,0xd, 0x7e,0xb3,0x2, 0xc6,0x12,0x31,0x16,0xa, 0x3b,0x4d,0x33,0x68, +0x3, 0x74,0x1, 0x22,0xe4,0x22,0x7c,0xab,0x6c,0x77,0x80,0x11,0xa, 0x27,0x2e,0x25, +0x2f,0x7e,0x29,0x60,0xbc,0x6a,0x78,0x3, 0x74,0x1, 0x22,0xb, 0x70,0x7e,0x25,0x2f, +0x9, 0xb2,0x0, 0x1a,0x54,0xf, 0xa, 0x1b,0xa, 0x27,0xbd,0x21,0x48,0xde,0xe4,0x22, +0xca,0x79,0x7c,0xe7,0x7c,0xfb,0x7a,0xf3,0x2, 0xaf,0x7e,0x34,0x2, 0xaf,0x12,0x31, +0x9f,0x7c,0xbf,0x12,0x17,0x36,0x7e,0xa3,0x2, 0xaf,0x74,0x4, 0xa4,0x2e,0x55,0x2d, +0x49,0x15,0x0, 0x2, 0xb, 0x58,0x0, 0x7a,0xf, 0x2, 0xb3,0xbf,0x1, 0x78,0x3, 0xe4, +0x80,0x2a,0x12,0x17,0xdb,0xa, 0x1e,0x6d,0x0, 0x12,0x0, 0x78,0x7f,0x1, 0x7e,0x1f, +0x2, 0xb3,0xbf,0x10,0x8, 0x15,0x7e,0x1f,0x2, 0xb3,0xbe,0x18,0x7, 0xd0,0x8, 0xb, +0x7c,0xbf,0x12,0x30,0xe4,0x60,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0xda,0x79,0x22,0x7d, +0x23,0x7e,0x29,0xa0,0xbe,0xa0,0x10,0x50,0x3a,0xa, 0x3a,0x2e,0x34,0x0, 0x8, 0x7c, +0xb7,0x19,0xb2,0x0, 0x1, 0xb4,0x10,0x6, 0xa, 0x3b,0xb, 0x34,0x80,0x5a,0xa, 0x3b, +0xb4,0x17,0x9, 0x1b,0x34,0x12,0x32,0x22,0x1b,0x34,0x80,0x51,0x1b,0x34,0x7c,0xb7, +0x19,0xb2,0x0, 0x2, 0x9, 0xb2,0x0, 0x1, 0xa, 0x3b,0xb, 0x34,0x7c,0xb7,0x19,0xb2, +0x0, 0x3, 0x22,0xa, 0x3a,0x9e,0x34,0x0, 0x8, 0x19,0x72,0x0, 0x1, 0xa5,0xbf,0x8, +0xd, 0xa, 0x17,0xb, 0x14,0x12,0x32,0x2d,0xa, 0x16,0xb, 0x14,0x80,0xf, 0xa5,0xbf, +0xf, 0x12,0xa, 0x17,0x1b,0x14,0x12,0x32,0x2d,0xa, 0x16,0x1b,0x14,0x7c,0x63,0x19, +0x62,0x0, 0x3, 0x22,0xa, 0x37,0x1b,0x34,0x12,0x32,0x22,0xb, 0x34,0x19,0x72,0x0, +0x3, 0x22,0x19,0x72,0x0, 0x2, 0x9, 0x72,0x0, 0x1, 0xa, 0x37,0x22,0x7c,0x63,0x19, +0x62,0x0, 0x2, 0x9, 0x62,0x0, 0x1, 0x22,0x12,0x32,0x48,0x7a,0xb3,0x4, 0xaf,0xbe, +0xb0,0x1, 0x28,0x3, 0x2, 0x32,0x52,0x22,0x7e,0x35,0x2f,0x9, 0xb3,0x0, 0x1a,0x54, +0xf, 0x22,0xca,0xd8,0xca,0x79,0xc2,0xf, 0x12,0x32,0x48,0xbe,0xb0,0x1, 0x38,0x2, +0x61,0x0, 0x7e,0xb3,0x4, 0xcc,0x70,0x2, 0x61,0x0, 0x7e,0xf0,0x1, 0x41,0xf6,0xc2, +0xf, 0x74,0x7, 0xac,0xbf,0x9, 0xe5,0x4, 0xb5,0x9, 0xd5,0x4, 0xb4,0x49,0xd5,0x4, +0xb2,0x49,0xc5,0x4, 0xb0,0x7c,0xbe,0x7e,0x70,0xe, 0x12,0x36,0x9f,0x7f,0x71,0xbe, +0xd0,0x19,0x40,0x2, 0xd2,0xf, 0xbe,0x68,0x9, 0xc4,0x48,0x7, 0xbe,0xd0,0xa, 0x40, +0x2, 0xd2,0xf, 0x7f,0x17,0x2e,0x18,0x5, 0xdc,0xbf,0x61,0x8, 0x7, 0xbe,0xd0,0x3, +0x40,0x2, 0xd2,0xf, 0x7e,0x8, 0x0, 0x4, 0x7e,0x1f,0x4, 0xb0,0x12,0x0, 0xe5,0x2e, +0x18,0x5, 0xdc,0xbf,0x61,0x8, 0x13,0xbe,0x68,0x1f,0x40,0x8, 0xd, 0x12,0x33,0x8, +0x20,0xe1,0x7, 0xbe,0xd0,0x3, 0x40,0x2, 0xd2,0xf, 0xbe,0x68,0x4e,0x20,0x8, 0x8, +0x12,0x33,0x8, 0x20,0xe1,0x2, 0xd2,0xf, 0xa2,0xf, 0xe4,0x33,0x12,0x35,0xdc,0xac, +0x5f,0x12,0x35,0xe5,0xb, 0xf0,0x12,0x32,0x48,0x12,0x27,0x62,0x58,0x2, 0x41,0x6f, +0x12,0x35,0xf5,0xda,0x79,0xda,0xd8,0x22,0x74,0x7, 0xac,0xbf,0x9, 0xb5,0x4, 0xb6, +0x22,0x12,0x35,0x47,0xc2,0xf, 0x7e,0x34,0x4, 0xce,0x12,0x33,0xc3,0xd2,0xf, 0x7e, +0x34,0x4, 0xa9,0x12,0x33,0xc3,0x7e,0x34,0x4, 0xce,0x12,0x33,0x70,0x7e,0x34,0x4, +0xa9,0x12,0x33,0x70,0x7e,0xb3,0x4, 0xae,0x1e,0xb0,0x54,0x3, 0xa, 0x2b,0x7e,0xb3, +0x4, 0xd3,0x1e,0xb0,0x54,0x3, 0xa, 0x3b,0x2d,0x32,0x68,0x5, 0x12,0x32,0x48,0x78, +0x5, 0xc2,0xe, 0x12,0x37,0xac,0x7e,0xb3,0x4, 0xd3,0x20,0xe0,0x7, 0x7e,0xb3,0x4, +0xae,0x30,0xe0,0x9, 0xd2,0xe, 0x74,0x78,0x7a,0xb3,0x4, 0xcc,0x22,0xc2,0xe, 0x22, +0x49,0x43,0x0, 0x2, 0x9, 0x53,0x0, 0x4, 0x9, 0xa3,0x0, 0x5, 0x7c,0xba,0x1e,0xb0, +0x54,0x3, 0xbe,0xb0,0x0, 0x28,0x30,0xbe,0x44,0xb, 0xb8,0x28,0x2, 0x80,0x18,0xbe, +0x44,0x7, 0xd0,0x28,0x7, 0xbe,0x50,0x14,0x38,0x28,0x80,0xb, 0xbe,0x44,0x3, 0x20, +0x28,0xc, 0xbe,0x50,0x10,0x38,0x1b,0x12,0x35,0x3e,0x44,0x1, 0x80,0x5, 0x12,0x35, +0x3e,0x54,0xfe,0x7a,0x49,0xb0,0x22,0x2e,0x34,0x0, 0x5, 0x7c,0xba,0x54,0xfe,0x7a, +0x39,0xb0,0x22,0xca,0x3b,0x7d,0x73,0x6c,0xdd,0x9f,0x11,0x7a,0x1f,0x2, 0xe0,0x6c, +0xcc,0x74,0x4, 0x30,0xf, 0xd, 0x12,0x35,0x2d,0x49,0x34,0x0, 0xb2,0x49,0x24,0x0, +0xb0,0x80,0xb, 0x12,0x35,0x2d,0x49,0x34,0x0, 0x92,0x49,0x24,0x0, 0x90,0x59,0x35, +0x2, 0xb2,0x59,0x25,0x2, 0xb0,0xb, 0xc0,0xbe,0xc0,0x8, 0x78,0xd4,0x7e,0x34,0x2, +0xb0,0x7e,0x24,0x2, 0xd0,0x12,0x44,0xd5,0x7a,0xb3,0x2, 0xaf,0xbe,0xb0,0x2, 0x28, +0x6, 0x74,0x2, 0x7a,0xb3,0x2, 0xaf,0x7e,0x63,0x2, 0xaf,0x5e,0x60,0x3, 0x3e,0x60, +0x7d,0x27,0x2e,0x24,0x0, 0x5, 0x7e,0x29,0x70,0x5e,0x70,0xf9,0x4c,0x76,0x7a,0x29, +0x70,0x7e,0x34,0x2, 0xd8,0x7e,0x24,0x0, 0x8, 0xe4,0x12,0x3, 0x15,0x7e,0x34,0x2, +0xd8,0x7e,0x24,0x2, 0xd0,0x7e,0xb3,0x2, 0xaf,0x12,0x26,0xcd,0x7e,0xb3,0x2, 0xaf, +0x70,0x6, 0x7e,0x18,0x0, 0x1, 0x80,0x11,0x7e,0xa3,0x2, 0xd0,0x74,0x4, 0xa4,0x49, +0x35,0x2, 0xb2,0x49,0x25,0x2, 0xb0,0x2f,0x11,0x7a,0x1f,0x2, 0xe0,0x9f,0x11,0x7a, +0x1f,0x2, 0xe4,0x6c,0xcc,0xa, 0x3c,0x9, 0xb3,0x2, 0xd8,0x70,0x1e,0x74,0x4, 0xac, +0xbc,0x49,0x15,0x2, 0xb2,0x49,0x5, 0x2, 0xb0,0xbe,0x8, 0x0, 0x64,0x8, 0xc, 0x7e, +0x1f,0x2, 0xe4,0x2f,0x10,0x7a,0x1f,0x2, 0xe4,0xb, 0xd0,0xb, 0xc0,0xbe,0xc0,0x8, +0x78,0xd3,0xbe,0xd0,0x0, 0x28,0x18,0xa, 0x1d,0x6d,0x0, 0x7e,0x1f,0x2, 0xe4,0x12, +0x0, 0xe5,0x7a,0x1f,0x2, 0xe4,0xbe,0x18,0x0, 0x1, 0x58,0x3, 0x12,0x35,0x35,0x7e, +0x1f,0x2, 0xe0,0xbe,0x18,0x0, 0x1, 0x18,0x8, 0x7e,0x18,0x0, 0x1, 0x7a,0x1f,0x2, +0xe0,0x7e,0x1f,0x2, 0xe4,0xbe,0x18,0x0, 0x1, 0x18,0x3, 0x12,0x35,0x35,0x7e,0x6f, +0x2, 0xe4,0x7e,0x7f,0x2, 0xe0,0x7f,0x17,0x7f,0x6, 0x12,0x0, 0xe5,0xbe,0x34,0x0, +0x64,0x28,0x4, 0x7e,0x34,0x0, 0x64,0xbe,0x68,0xfd,0xe8,0x48,0x8, 0x7e,0x8, 0xfd, +0xe8,0x7a,0xf, 0x2, 0xe4,0xbe,0x78,0xfd,0xe8,0x48,0x8, 0x7e,0x8, 0xfd,0xe8,0x7a, +0xf, 0x2, 0xe0,0x7e,0xf, 0x2, 0xe4,0x7d,0x21,0x59,0x27,0x0, 0x2, 0x7e,0xf, 0x2, +0xe0,0x7d,0x21,0x1b,0x78,0x20,0x19,0x77,0x0, 0x4, 0xda,0x3b,0x22,0xac,0xbc,0x7d, +0x45,0x2e,0x45,0x2d,0x22,0x7e,0x18,0x0, 0x1, 0x7a,0x1f,0x2, 0xe4,0x22,0x7d,0x43, +0x2e,0x44,0x0, 0x5, 0x7c,0xba,0x22,0xca,0x79,0x6c,0xff,0x7e,0x70,0x7, 0xac,0x7f, +0x7d,0x23,0x2e,0x24,0x4, 0xb6,0x7e,0x29,0xb0,0x54,0xfe,0x7a,0x29,0xb0,0x9f,0x0, +0x59,0x13,0x4, 0xb2,0x59,0x3, 0x4, 0xb0,0xe4,0x19,0xb3,0x4, 0xb4,0xb, 0xf0,0xbe, +0xf0,0x4, 0x78,0xd7,0x6c,0xff,0x80,0x59,0xa, 0x3f,0x2e,0x35,0x2f,0x7e,0x39,0xe0, +0x7e,0x30,0x7, 0xac,0x3f,0x19,0xe1,0x4, 0xb5,0x7e,0x10,0x4, 0xac,0x1e,0x2e,0x5, +0x2d,0x12,0x37,0x1d,0x59,0x31,0x4, 0xb2,0x59,0x21,0x4, 0xb0,0x7c,0xbe,0x12,0x37, +0x42,0x7c,0xab,0x7e,0x50,0x7, 0xac,0x5f,0x19,0xa2,0x4, 0xb4,0x7d,0x32,0x12,0x37, +0x15,0x44,0x1, 0x7a,0x39,0xb0,0xbe,0xe0,0x8, 0x40,0xc, 0xbe,0xe0,0x18,0x50,0x7, +0x7e,0x39,0xb0,0x44,0x2, 0x80,0x5, 0x7e,0x39,0xb0,0x54,0xfd,0x7a,0x39,0xb0,0xb, +0xf0,0x12,0x32,0x48,0x12,0x27,0x62,0x48,0x9f,0xda,0x79,0x22,0x7c,0x6b,0x5e,0x60, +0x1, 0x7e,0x50,0x7, 0x22,0x2e,0x24,0x4, 0xb6,0x7e,0x29,0x70,0x5e,0x70,0xfe,0x4c, +0x76,0x7a,0x29,0x70,0x22,0x6c,0x66,0x6c,0x77,0x7e,0x50,0x7, 0xac,0x57,0x9, 0xb2, +0x4, 0xb6,0x30,0xe0,0x10,0x9, 0xa2,0x4, 0xb5,0x7c,0x56,0xb, 0x60,0xa, 0x25,0x2e, +0x25,0x2f,0x7a,0x29,0xa0,0xb, 0x70,0xbe,0x70,0x4, 0x40,0xdd,0x5e,0x60,0xf, 0x7e, +0x25,0x2f,0x2e,0x24,0x0, 0x1a,0x7e,0x29,0x70,0x5e,0x70,0xf0,0x4c,0x76,0x7a,0x29, +0x70,0x22,0xca,0xd8,0xca,0x79,0x12,0xb, 0xbf,0x68,0x5f,0x7e,0xb3,0x4, 0xcc,0x60, +0x59,0x6c,0xff,0x80,0x4a,0x7e,0x70,0x7, 0xac,0x7f,0x9, 0xb3,0x4, 0xb6,0x30,0xe0, +0x3c,0x9, 0xe3,0x4, 0xb5,0x9, 0xd3,0x4, 0xb4,0x49,0xd3,0x4, 0xb2,0x49,0xc3,0x4, +0xb0,0x7c,0xbe,0x7e,0x70,0x10,0x12,0x36,0x9f,0x7f,0x51,0xbe,0xd0,0x8, 0x50,0x1d, +0x7f,0x15,0x2e,0x18,0x3, 0x41,0xbf,0x61,0x58,0x13,0xbe,0x68,0xb, 0xb8,0x58,0xd, +0x7e,0x70,0x7, 0xac,0x7f,0x12,0x37,0x15,0x54,0xfe,0x7a,0x39,0xb0,0xb, 0xf0,0x7e, +0x73,0x4, 0xaf,0xbc,0x7f,0x38,0xae,0x12,0x35,0xf5,0xda,0x79,0xda,0xd8,0x22,0xca, +0x79,0x7c,0xa7,0x7c,0x9b,0x9f,0x0, 0xa, 0x39,0x12,0x27,0xb, 0x7c,0x45,0xa, 0x39, +0x1e,0x34,0x1e,0x34,0x1e,0x34,0x7c,0x57,0xa5,0xbc,0x0, 0x8, 0x7e,0xe0,0x2, 0x7e, +0xf0,0x2, 0x80,0x16,0xa, 0x74,0xa5,0xbc,0x7, 0x6, 0x1b,0x75,0x7c,0xef,0x80,0xa, +0x1b,0x74,0x7c,0xef,0xa, 0x34,0xb, 0x34,0x7c,0xf7,0x7e,0x70,0x8, 0xac,0x75,0x2c, +0xe7,0x2c,0xf7,0x7e,0x90,0x4, 0xac,0x9f,0x2e,0x45,0x2d,0x12,0x37,0x3a,0x7e,0x90, +0x4, 0xac,0x9e,0x2e,0x45,0x2d,0x49,0xf4,0x0, 0x2, 0xb, 0x48,0xe0,0xbf,0x71,0x8, +0x2, 0x80,0x2, 0x7f,0x17,0xbe,0x18,0x0, 0x0, 0x58,0x2, 0x7f,0x10,0xa, 0x1a,0x12, +0x17,0xd6,0xda,0x79,0x22,0x2e,0x34,0x4, 0xb6,0x7e,0x39,0xb0,0x22,0x49,0x30,0x0, +0x2, 0xb, 0x8, 0x20,0x22,0x7e,0xb3,0x0, 0x55,0xc4,0x54,0xf, 0x22,0x7a,0xb3,0x2, +0xc3,0x7e,0x34,0x2, 0xc3,0x22,0x2e,0x44,0x0, 0xcd,0x49,0x34,0x0, 0x2, 0xb, 0x48, +0x20,0x22,0x7f,0x71,0x12,0x27,0x78,0xbe,0x24,0x0, 0x8, 0x58,0x6, 0x7e,0x7, 0x4, +0xd0,0x80,0x4, 0x7e,0x7, 0x4, 0xab,0xbe,0x78,0x75,0x30,0x8, 0x0, 0xbe,0x78,0x0, +0x0, 0x58,0x4, 0x6d,0x11,0x80,0x6, 0x7f,0x17,0x2f,0x11,0x7d,0x13,0x7d,0x51,0x8d, +0x50,0xbe,0x54,0x0, 0x64,0x28,0x4, 0x7e,0x54,0x0, 0x64,0x22,0xca,0x79,0x7c,0xeb, +0x6c,0xff,0x7c,0xbe,0x7e,0x30,0x4, 0xac,0x3e,0x12,0x17,0x1c,0x12,0x37,0x42,0x7c, +0xab,0x7e,0x30,0x4, 0xac,0x3e,0x12,0x17,0x1c,0xbe,0x18,0x3a,0x98,0x8, 0x8, 0xbe, +0xa0,0xa, 0x50,0x3, 0x7e,0xf0,0x1, 0x7c,0xbf,0xda,0x79,0x22,0x7e,0x34,0x0, 0x1, +0x7a,0x37,0x4, 0xce,0x7a,0x37,0x4, 0xd0,0xe4,0x7a,0xb3,0x4, 0xd2,0x7e,0xb3,0x4, +0xd3,0x54,0xf9,0x7a,0xb3,0x4, 0xd3,0x54,0xfe,0x7a,0xb3,0x4, 0xd3,0x7a,0x37,0x4, +0xa9,0x7a,0x37,0x4, 0xab,0xe4,0x7a,0xb3,0x4, 0xad,0x7e,0xb3,0x4, 0xae,0x54,0xf9, +0x7a,0xb3,0x4, 0xae,0x54,0xfe,0x7a,0xb3,0x4, 0xae,0x22,0x75,0x25,0x3, 0x75,0x2b, +0x0, 0x22,0xbe,0xb0,0xa, 0x50,0x8, 0x7c,0x1b,0x2e,0x10,0x23,0xa5,0xe7,0x22,0x2, +0x38,0x2, 0xca,0x79,0x7c,0xab,0xbe,0xa0,0xa, 0x78,0x5, 0x7e,0xf0,0x20,0x21,0x6b, +0xbe,0xa0,0xb, 0x78,0x5, 0x7e,0xf0,0x3, 0x21,0x6b,0xbe,0xa0,0xc, 0x78,0x6, 0x7e, +0xf3,0x0, 0xb6,0x21,0x6b,0xbe,0xa0,0xd, 0x78,0x1c,0x7e,0xb3,0x0, 0xb5,0xb4,0x1, +0x6, 0x7e,0xf3,0x0, 0xa9,0x21,0x6b,0xb4,0x2, 0x6, 0x7e,0xf3,0x0, 0xaf,0x21,0x6b, +0x7e,0xf3,0x0, 0xa7,0x21,0x6b,0xbe,0xa0,0xe, 0x78,0x1c,0x7e,0xb3,0x0, 0xb5,0xb4, +0x1, 0x6, 0x7e,0xf3,0x0, 0xaa,0x21,0x6b,0xb4,0x2, 0x6, 0x7e,0xf3,0x0, 0xb0,0x21, +0x6b,0x7e,0xf3,0x0, 0xa8,0x21,0x6b,0xbe,0xa0,0xf, 0x78,0x6, 0x7e,0xf3,0x0, 0xb7, +0x21,0x6b,0xbe,0xa0,0x10,0x78,0x6, 0x7e,0xf3,0x0, 0xb8,0x21,0x6b,0xbe,0xa0,0x11, +0x40,0x21,0xbe,0xa0,0x34,0x38,0x1c,0x7e,0xb3,0x0, 0xb5,0xbe,0xb0,0x1, 0x68,0x3, +0xb4,0x2, 0x8, 0xa, 0x3a,0x9, 0xf3,0x3, 0xc0,0x21,0x6b,0xa, 0x3a,0x9, 0xf3,0x0, +0x72,0x21,0x6b,0xbe,0xa0,0x35,0x40,0x2b,0xbe,0xa0,0x58,0x38,0x26,0xa, 0x7a,0x9e, +0x74,0x0, 0x35,0xbe,0xf0,0x20,0x50,0xc, 0x7c,0xbf,0x7e,0x70,0x20,0x12,0x1e,0x48, +0xa, 0x3b,0x80,0x2, 0xa, 0x3f,0x2e,0x34,0x1, 0xee,0x12,0x1d,0xa5,0x7c,0xfb,0xb, +0xf0,0x21,0x6b,0xbe,0xa0,0x59,0x78,0x6, 0x7e,0xf3,0x0, 0xb9,0x21,0x6b,0xbe,0xa0, +0x5a,0x78,0x5, 0x7e,0xf0,0xf, 0x21,0x6b,0xbe,0xa0,0xac,0x78,0x13,0x7e,0xb3,0x0, +0xb5,0xb4,0x2, 0x6, 0x7e,0xf3,0x0, 0xb1,0x80,0x71,0x7e,0xf3,0x0, 0xab,0x80,0x6b, +0xbe,0xa0,0xa0,0x78,0x5, 0x7e,0xf0,0x1, 0x80,0x61,0xbe,0xa0,0xa1,0x78,0x13,0x7e, +0xb3,0x0, 0xb5,0xb4,0x2, 0x6, 0x7e,0xf3,0x0, 0xb2,0x80,0x4f,0x7e,0xf3,0x0, 0xac, +0x80,0x49,0xbe,0xa0,0xa2,0x78,0x13,0x7e,0xb3,0x0, 0xb5,0xb4,0x2, 0x6, 0x7e,0xf3, +0x0, 0xb3,0x80,0x37,0x7e,0xf3,0x0, 0xad,0x80,0x31,0xbe,0xa0,0xa3,0x78,0x13,0x7e, +0xb3,0x0, 0xb5,0xb4,0x2, 0x6, 0x7e,0xf3,0x0, 0xb4,0x80,0x1f,0x7e,0xf3,0x0, 0xae, +0x80,0x19,0xbe,0xa0,0xad,0x78,0x6, 0x7e,0xf3,0x0, 0xba,0x80,0xe, 0xbe,0xa0,0xae, +0x78,0x6, 0x7e,0xf3,0x0, 0xb5,0x80,0x3, 0x7e,0xf0,0xee,0x7c,0xbf,0xda,0x79,0x22, +0xbe,0xb0,0xa, 0x50,0xa, 0x7c,0x1b,0x2e,0x10,0x23,0x7c,0xb7,0xa5,0xf7,0x22,0x2, +0x39,0x82,0x7c,0xa7,0xb4,0xc, 0x6, 0x7e,0x34,0x0, 0xb6,0x41,0x4d,0xb4,0xd, 0x1c, +0x7e,0xb3,0x0, 0xb5,0xb4,0x1, 0x6, 0x7e,0x34,0x0, 0xa9,0x41,0x4d,0xb4,0x2, 0x6, +0x7e,0x34,0x0, 0xaf,0x41,0x4d,0x7e,0x34,0x0, 0xa7,0x41,0x4d,0xb4,0xe, 0x1c,0x7e, +0xb3,0x0, 0xb5,0xb4,0x1, 0x6, 0x7e,0x34,0x0, 0xaa,0x41,0x4d,0xb4,0x2, 0x6, 0x7e, +0x34,0x0, 0xb0,0x41,0x4d,0x7e,0x34,0x0, 0xa8,0x41,0x4d,0xb4,0xf, 0x6, 0x7e,0x34, +0x0, 0xb7,0x80,0x79,0xb4,0x10,0x6, 0x7e,0x34,0x0, 0xb8,0x80,0x70,0xb4,0x59,0x9, +0x7e,0x34,0x0, 0xb9,0x43,0x1a,0x4, 0x80,0x6f,0xb4,0xac,0x13,0x7e,0xb3,0x0, 0xb5, +0xb4,0x2, 0x6, 0x7e,0x34,0x0, 0xb1,0x80,0x54,0x7e,0x34,0x0, 0xab,0x80,0x4e,0xb4, +0xa1,0x13,0x7e,0xb3,0x0, 0xb5,0xb4,0x2, 0x6, 0x7e,0x34,0x0, 0xb2,0x80,0x3e,0x7e, +0x34,0x0, 0xac,0x80,0x38,0xb4,0xa2,0x13,0x7e,0xb3,0x0, 0xb5,0xb4,0x2, 0x6, 0x7e, +0x34,0x0, 0xb3,0x80,0x28,0x7e,0x34,0x0, 0xad,0x80,0x22,0xb4,0xa3,0x13,0x7e,0xb3, +0x0, 0xb5,0xb4,0x2, 0x6, 0x7e,0x34,0x0, 0xb4,0x80,0x12,0x7e,0x34,0x0, 0xae,0x80, +0xc, 0xb4,0xae,0xe, 0x7e,0x34,0x0, 0xb5,0xe4,0x7a,0xb3,0x0, 0xba,0x43,0x1a,0x1, +0x80,0x6, 0xb4,0xaf,0x6, 0x2, 0x3d,0xd5,0x7a,0x39,0xa0,0x22,0x7c,0x7, 0xbe,0xb0, +0x80,0x40,0xb, 0xbe,0xb0,0xde,0x38,0x6, 0x24,0x80,0x7c,0x70,0x80,0x7c,0x24,0x0, +0x78,0x7b,0x7e,0x14,0x4, 0xfe,0x7a,0x19,0x0, 0x5e,0x0, 0x70,0x7c,0xb0,0xc4,0x54, +0xf, 0x7c,0xb, 0xa5,0xb8,0x4, 0x15,0x7e,0xb3,0x4, 0x31,0xb4,0x3, 0x7, 0x74,0x2, +0x7e,0x70,0x3, 0x80,0x34,0x74,0x3c,0x7e,0x70,0x3, 0x80,0x4e,0x7e,0xb3,0x4, 0x31, +0xb4,0x3, 0x29,0x74,0x2, 0x7e,0x70,0x1, 0x12,0x39,0x70,0xa5,0xb8,0x1, 0x6, 0x74, +0x2, 0x6c,0x77,0x80,0x14,0xa5,0xb8,0x0, 0x7, 0x74,0x2, 0x7e,0x70,0x1, 0x80,0x9, +0xa5,0xb8,0x3, 0x29,0x74,0x2, 0x7e,0x70,0x4, 0x2, 0x39,0x70,0xa5,0xb8,0x1, 0x6, +0x74,0x3c,0x6c,0x77,0x80,0x14,0xa5,0xb8,0x4, 0x7, 0x74,0x3c,0x7e,0x70,0x3, 0x80, +0x9, 0xa5,0xb8,0x3, 0x8, 0x74,0x3c,0x7e,0x70,0x4, 0x2, 0x3f,0x49,0x22,0x7c,0x6b, +0x14,0x68,0x78,0x4, 0x68,0x2, 0x61,0x77,0x7e,0x44,0x4, 0xfe,0x7a,0x49,0x70,0x5e, +0x70,0x70,0x7c,0xb7,0xc4,0x54,0xf, 0x7c,0x7b,0xbe,0x70,0x4, 0x68,0x47,0x7e,0xb3, +0x4, 0x31,0xb4,0x3, 0x20,0xa5,0xbf,0x1, 0x6, 0x74,0x2, 0x6c,0x77,0x80,0x66,0xa5, +0xbf,0x0, 0x7, 0x74,0x2, 0x7e,0x70,0x1, 0x80,0x5b,0xa5,0xbf,0x3, 0x70,0x74,0x2, +0x7e,0x70,0x4, 0x80,0x50,0xa5,0xbf,0x1, 0x6, 0x74,0x3c,0x6c,0x77,0x80,0x29,0xa5, +0xbf,0x4, 0x7, 0x74,0x3c,0x7e,0x70,0x3, 0x80,0x1e,0xa5,0xbf,0x3, 0x50,0x74,0x3c, +0x7e,0x70,0x4, 0x80,0x13,0x7e,0xb3,0x4, 0x31,0xb4,0x3, 0x7, 0x74,0x2, 0x7e,0x70, +0x3, 0x80,0x22,0x74,0x3c,0x7e,0x70,0x3, 0x2, 0x3f,0x49,0x7a,0x73,0x4, 0xfd,0x7e, +0x54,0x3, 0x89,0x7a,0x55,0x16,0x22,0xbe,0x60,0xa, 0x50,0xc, 0x7e,0xb3,0x4, 0x31, +0xb4,0x3, 0x1b,0x7c,0xb6,0x2, 0x39,0x70,0xbe,0x60,0xa, 0x40,0x11,0xbe,0x60,0xaf, +0x38,0xc, 0x7e,0xb3,0x4, 0x31,0xb4,0x3, 0x5, 0x7c,0xb6,0x2, 0x39,0x82,0x22,0xca, +0xf8,0x30,0x90,0x79,0xd2,0x7, 0x7e,0xb3,0x4, 0xfc,0x4, 0x7a,0xb3,0x4, 0xfc,0x7e, +0x93,0x4, 0xfc,0xbe,0x90,0x1, 0x78,0x8, 0xe5,0x91,0x7a,0xb3,0x4, 0xff,0x80,0x36, +0x7e,0xf3,0x4, 0xfe,0x7c,0xbf,0xc4,0x7c,0xfb,0x7c,0x8f,0x5e,0x80,0x7, 0x78,0x8, +0x12,0x3c,0xf8,0x12,0x3a,0x5c,0x80,0x1e,0xbe,0x80,0x4, 0x78,0x8, 0x12,0x3c,0xf8, +0x12,0x3a,0xee,0x80,0x11,0x7c,0xbf,0x54,0x7, 0xb4,0x1, 0xa, 0x7e,0xb3,0x4, 0xfc, +0x12,0x3c,0xfa,0x12,0x46,0xf4,0x12,0x3d,0x23,0x78,0xe, 0xe4,0x12,0x3c,0x75,0xb4, +0x10,0x2, 0x80,0x14,0x12,0x3d,0xb6,0x80,0x12,0xbe,0xf0,0x4, 0x78,0x5, 0x12,0x3d, +0xac,0x80,0x8, 0xbe,0xf0,0x1, 0x78,0x3, 0x12,0x3d,0xc0,0xc2,0x90,0x30,0x91,0x52, +0xc2,0x7, 0x7e,0xb3,0x4, 0xfa,0x4, 0x12,0x3d,0x1f,0x78,0x13,0xe4,0x12,0x3c,0x75, +0xb4,0x10,0x6, 0x7e,0xb3,0x4, 0xfa,0x80,0x23,0x7e,0xb3,0x4, 0xfa,0x80,0x28,0xbe, +0xf0,0x4, 0x78,0xf, 0x7e,0xb3,0x4, 0xfa,0x2e,0xb3,0x4, 0xff,0x12,0x3d,0x2e,0xf5, +0x91,0x80,0x1d,0xbe,0xf0,0x1, 0x7e,0xb3,0x4, 0xfa,0x78,0xb, 0x2e,0xb3,0x4, 0xff, +0x12,0x0, 0x1a,0xf5,0x91,0x80,0x9, 0x2e,0xb3,0x4, 0xff,0x12,0x3c,0x75,0xf5,0x91, +0xc2,0x91,0xda,0xf8,0x22,0x7c,0x7b,0xbe,0x70,0x80,0x40,0xc, 0xbe,0x70,0xde,0x38, +0x7, 0xa, 0x37,0x9, 0xb3,0x3, 0x75,0x22,0xa5,0xbf,0x0, 0x5, 0x7e,0xb3,0x4, 0xfe, +0x22,0x30,0x6, 0x6, 0x7e,0x24,0x4, 0xd6,0x80,0x4, 0x7e,0x24,0x4, 0xe8,0x7a,0x25, +0x18,0x7c,0xb7,0x14,0xbe,0xb0,0xe, 0x50,0x4c,0x7e,0xa0,0x3, 0xa4,0x90,0x3c,0xb1, +0x73,0x2, 0x3c,0xdb,0x2, 0x3c,0xe3,0x2, 0x3c,0xeb,0x2, 0x3c,0xeb,0x2, 0x3c,0xeb, +0x2, 0x3c,0xeb,0x2, 0x3c,0xeb,0x2, 0x3c,0xeb,0x2, 0x3c,0xeb,0x2, 0x3c,0xeb,0x2, +0x3c,0xeb,0x2, 0x3c,0xeb,0x2, 0x3c,0xeb,0x2, 0x3c,0xeb,0x7e,0x35,0x18,0x9, 0xb3, +0x0, 0x4, 0x22,0x7e,0x35,0x18,0x9, 0xb3,0x0, 0x3, 0x22,0xa, 0x37,0x2e,0x35,0x18, +0x9, 0xb3,0x0, 0x2, 0x22,0x74,0xff,0x22,0x7c,0xb9,0x2e,0xb3,0x4, 0xff,0x24,0xfe, +0x7e,0x71,0x91,0x22,0x70,0x18,0x7e,0x1f,0x1, 0x51,0x7e,0xf, 0x1, 0x4d,0x2f,0x1, +0x7e,0x1f,0x1, 0x55,0x2f,0x10,0xbe,0x18,0x6, 0x40,0x58,0x2, 0xc2,0xd, 0x22,0x7a, +0xb3,0x4, 0xfa,0x7e,0xb3,0x4, 0xfe,0xc4,0x7c,0xfb,0x5e,0xf0,0x7, 0x22,0x7c,0xab, +0x24,0x0, 0x78,0x5, 0x7e,0xb3,0x4, 0xfe,0x22,0xbe,0xa0,0xae,0x38,0xc, 0x7e,0xb3, +0x4, 0x31,0xb4,0x3, 0x24,0x7c,0xba,0x2, 0x37,0xf2,0xbe,0xa0,0xb0,0x40,0x1a,0xbe, +0xa0,0xf7,0x38,0x15,0x7e,0xb3,0x4, 0x31,0xb4,0x3, 0xe, 0xa, 0x3a,0x2e,0x34,0x3, +0x89,0x9e,0x34,0x0, 0xb0,0x7e,0x39,0xb0,0x22,0x7c,0xba,0x22,0xca,0xf8,0xe4,0x12, +0x3d,0x1f,0x78,0x5, 0x12,0x3d,0xb6,0x80,0x12,0xbe,0xf0,0x4, 0x78,0x5, 0x12,0x3d, +0xac,0x80,0x8, 0xbe,0xf0,0x1, 0x78,0x3, 0x12,0x3d,0xc0,0x75,0x91,0x0, 0xe4,0x7a, +0xb3,0x4, 0xfc,0x7a,0xb3,0x4, 0xfb,0x74,0xaa,0x7a,0xb3,0x4, 0xd6,0x7a,0xb3,0x4, +0xd7,0x7a,0xb3,0x4, 0xe8,0x7a,0xb3,0x4, 0xe9,0xda,0xf8,0x22,0x7e,0xb3,0x4, 0xff, +0x12,0x3d,0x2e,0xf5,0x91,0x22,0x7e,0xb3,0x4, 0xff,0x12,0x3c,0x75,0xf5,0x91,0x22, +0x7e,0xb3,0x4, 0xff,0x12,0x0, 0x1a,0xf5,0x91,0x22,0xe4,0x7a,0xb3,0x4, 0xfe,0x12, +0x3f,0x7d,0x2, 0x3d,0x6c,0x30,0x8, 0x8, 0x74,0x1, 0x12,0x3d,0xe7,0xc2,0x8, 0x22, +0xe4,0x12,0x3d,0xe7,0xd2,0x8, 0x22,0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86,0x22,0xca, +0x3b,0x7c,0xeb,0x6c,0xaa,0x20,0x0, 0x8, 0x20,0x5, 0x5, 0x20,0x2, 0x2, 0xe1,0x2f, +0x20,0x6, 0x6, 0x7e,0x4, 0x4, 0xd6,0x80,0x4, 0x7e,0x4, 0x4, 0xe8,0x7d,0x30,0x12, +0x3f,0xf5,0x74,0xaa,0x7a,0x9, 0xb0,0x19,0xb0,0x0, 0x1, 0x74,0x12,0x19,0xb0,0x0, +0x2, 0x7e,0xb3,0x0, 0x7d,0x19,0xb0,0x0, 0x4, 0x6c,0x77,0x6c,0xff,0x7e,0x50,0x5, +0xac,0x5f,0x9, 0x62,0x0, 0x6d,0xbe,0x60,0xff,0x78,0x2, 0xc1,0xd7,0xa, 0x46,0x9, +0xb4,0x0, 0xc1,0xbe,0xb0,0x3, 0x78,0x2, 0xc1,0xd7,0x49,0x12,0x0, 0x69,0x7d,0x61, +0xa, 0x6c,0x7d,0xf6,0x5e,0xf4,0x0, 0xf, 0x7d,0x6f,0x7c,0x6d,0xa, 0xf7,0x2d,0xf0, +0x19,0x6f,0x0, 0x5, 0x7c,0x63,0xa, 0x17,0x2d,0x10,0x19,0x61,0x0, 0x6, 0x49,0x12, +0x0, 0x6b,0xa, 0x22,0x5e,0x24,0x0, 0xf, 0x7c,0x65,0xa, 0x27,0x2d,0x20,0x19,0x62, +0x0, 0x7, 0x7c,0x63,0xa, 0x27,0x2d,0x20,0x19,0x62,0x0, 0x8, 0xe4,0xa, 0x27,0x2d, +0x20,0x19,0xb2,0x0, 0x9, 0xa, 0x27,0x2d,0x20,0x19,0xb2,0x0, 0xa, 0x12,0x3f,0x3f, +0xc4,0x54,0xf0,0xa, 0x27,0x2d,0x20,0x2e,0x24,0x0, 0x7, 0x12,0x3f,0x36,0x12,0x3f, +0x3f,0xbe,0xb0,0xff,0x68,0x1e,0x9, 0xb4,0x0, 0xc1,0xbe,0xb0,0x1, 0x68,0x2, 0xb, +0xa0,0x9, 0xb4,0x0, 0xc1,0x3, 0x3, 0x54,0xc0,0xa, 0x27,0x2d,0x20,0x2e,0x24,0x0, +0x5, 0x12,0x3f,0x36,0x2e,0x70,0x6, 0xb, 0xf0,0xbe,0xf0,0x2, 0x68,0x2, 0xc1,0x2d, +0x19,0xa0,0x0, 0x3, 0xe4,0x19,0xb0,0x0, 0x11,0x6c,0xff,0xa, 0x1f,0x2d,0x10,0x7e, +0x19,0x60,0x7d,0x10,0x2e,0x14,0x0, 0x11,0x7e,0x19,0x70,0x6c,0x76,0x7a,0x19,0x70, +0xb, 0xf0,0xbe,0xf0,0x11,0x78,0xe4,0x30,0x6, 0x4, 0xc2,0x6, 0x80,0x2, 0xd2,0x6, +0x30,0x5, 0x3, 0x12,0x4e,0x9e,0xc2,0x0, 0xc2,0x5, 0xc2,0x2, 0x74,0x1, 0x12,0x3d, +0xe7,0x7e,0x34,0x0, 0x3, 0x12,0x47,0x5b,0xbe,0xe0,0x1, 0x78,0x6, 0x80,0x0, 0xe4, +0x12,0x3d,0xe7,0xda,0x3b,0x22,0x7e,0x29,0x60,0x2c,0x6b,0x7a,0x29,0x60,0x22,0x7e, +0x50,0x5, 0xac,0x5f,0x9, 0xb2,0x0, 0x6d,0x22,0xbe,0xb0,0x5e,0x38,0x2e,0xbe,0xb0, +0x26,0x68,0x29,0xbe,0xb0,0x2f,0x68,0x24,0xbe,0xb0,0x23,0x68,0x1f,0xbe,0xb0,0x28, +0x68,0x1a,0xbe,0xb0,0x21,0x68,0x15,0xbe,0xb0,0x22,0x68,0x10,0xa, 0x2b,0x19,0x72, +0x3, 0xf5,0x7e,0xb3,0x4, 0x54,0x44,0x1, 0x7a,0xb3,0x4, 0x54,0x22,0x7e,0x50,0x70, +0x7e,0x34,0x78,0x0, 0x12,0x3f,0xb2,0x7c,0x4b,0x7e,0x34,0x78,0x1, 0x12,0x3f,0xb2, +0xbe,0x40,0xff,0x68,0x7, 0x6c,0xb4,0xb4,0xff,0x2, 0x7c,0x54,0xd2,0xce,0x7a,0x51, +0x92,0xd2,0xad,0xd2,0xe8,0xc2,0xc0,0xa9,0xd0,0xf7,0xd2,0xf8,0xa9,0xd5,0xb7,0xd2, +0xbd,0x22,0x12,0x3f,0xe2,0x75,0xf5,0x1, 0xa9,0x37,0xf5,0xfc,0xa9,0x36,0xf5,0xfc, +0x2, 0x3f,0xc3,0xe5,0xf6,0x43,0xfa,0x80,0xc2,0xc9,0xd2,0xaf,0x22,0x7e,0x34,0x0, +0x20,0x12,0x3f,0xe2,0x75,0xf5,0x3, 0xa9,0x37,0xf5,0xfc,0xa9,0x36,0xf5,0xfc,0x2, +0x3f,0xc3,0xc2,0xaf,0xd2,0xc9,0xa, 0x56,0xf5,0xf1,0x7c,0xb7,0xf5,0xf2,0x75,0xf3, +0x80,0x75,0xf4,0x0, 0x22,0x7e,0x24,0x0, 0x12,0x74,0xff,0x2, 0x3, 0x15,0x75,0x1c, +0x0, 0xc2,0x1, 0x7e,0xb3,0x4, 0x1a,0x70,0x7, 0x7e,0xb3,0x0, 0x5e,0xf5,0x1d,0x22, +0x7e,0xb3,0x0, 0x60,0xf5,0x1d,0x22,0x6c,0x77,0xa, 0x27,0x9, 0x62,0x0, 0xc1,0x19, +0x62,0x0, 0xc3,0xb, 0x70,0xbe,0x70,0x2, 0x40,0xef,0x7e,0x73,0x0, 0x55,0x12,0x40, +0x45,0x4c,0x7b,0x7a,0x73,0x0, 0x55,0x7e,0x73,0x0, 0x56,0x12,0x40,0x45,0x4c,0x7b, +0x7a,0x73,0x0, 0x56,0x22,0x5e,0x70,0xf, 0x7c,0xb7,0xc4,0x54,0xf0,0x22,0x7e,0x34, +0x0, 0x3b,0x7e,0x24,0x0, 0x1c,0xe4,0x12,0x3, 0x15,0x7e,0x34,0x0, 0x69,0x7e,0x24, +0x0, 0x17,0x12,0x3, 0x15,0x6d,0x11,0x12,0x40,0xb0,0x2e,0x34,0x0, 0x3f,0x12,0x40, +0xb7,0x12,0x40,0xb0,0x2e,0x34,0x0, 0x69,0x12,0x40,0xb7,0x12,0x40,0xb0,0x2e,0x34, +0x0, 0x73,0x12,0x40,0xb7,0xb, 0x14,0xbe,0x14,0x0, 0x2, 0x40,0xda,0x75,0x1c,0x0, +0x75,0x1d,0x0, 0xc2,0x1, 0x75,0x1b,0x0, 0x6d,0x33,0x7a,0x37,0x0, 0x80,0x7e,0x24, +0x7, 0xd0,0x7a,0x27,0x0, 0x39,0x7a,0x37,0x0, 0x64,0xe4,0x7a,0xb3,0x0, 0x82,0x22, +0x7e,0x34,0x0, 0x5, 0xad,0x31,0x22,0x7e,0x24,0x7f,0xff,0x1b,0x38,0x20,0x59,0x23, +0x0, 0x2, 0x74,0xff,0x19,0xb3,0x0, 0x4, 0x22,0xe4,0x7a,0xb3,0x0, 0xb5,0x74,0x1, +0x7a,0xb3,0x0, 0xba,0x74,0x1b,0x7a,0xb3,0x0, 0xa7,0x74,0x1d,0x7a,0xb3,0x0, 0xa8, +0x74,0x30,0x7a,0xb3,0x0, 0xa9,0x7a,0xb3,0x0, 0xaa,0x7a,0xb3,0x0, 0xab,0x7a,0xb3, +0x0, 0xac,0x7a,0xb3,0x0, 0xad,0x7a,0xb3,0x0, 0xae,0x7a,0xb3,0x0, 0xaf,0x7a,0xb3, +0x0, 0xb0,0x7a,0xb3,0x0, 0xb1,0x7a,0xb3,0x0, 0xb2,0x7a,0xb3,0x0, 0xb3,0x7a,0xb3, +0x0, 0xb4,0x12,0x41,0x2e,0x74,0xa, 0x7a,0xb3,0x0, 0xb9,0x74,0xf, 0x7a,0xb3,0x0, +0xb7,0x74,0x19,0x7a,0xb3,0x0, 0xb8,0x74,0x3, 0x7a,0xb3,0x0, 0xb6,0x22,0x12,0x3f, +0xcd,0xb4,0x48,0x3, 0xd2,0xc, 0x22,0xb4,0xff,0x11,0x7e,0x34,0x0, 0x20,0x74,0x48, +0x12,0x41,0x4c,0x12,0x3f,0xcd,0xb4,0x48,0x2, 0xd2,0xc, 0x22,0x7c,0xab,0x7d,0x43, +0x5e,0x80,0x7f,0xc2,0xaf,0xd2,0xc9,0xa, 0x38,0x7c,0xb7,0xf5,0xf1,0x7c,0xb9,0xf5, +0xf2,0x75,0xf3,0x80,0x75,0xf4,0x1, 0x75,0xf5,0xa, 0x75,0xfb,0xa5,0x75,0xfb,0xf, +0x75,0xfb,0x6a,0x7a,0xa1,0xf6,0x75,0xf6,0xff,0xa9,0x36,0xf5,0xfc,0x43,0xfa,0x80, +0x75,0xfb,0x0, 0xc2,0xc9,0xd2,0xaf,0x22,0x12,0x1f,0x5e,0x7a,0x37,0x0, 0x39,0x12, +0x42,0x8, 0x12,0x3d,0xca,0x12,0x40,0xc9,0x12,0x42,0x3f,0x7e,0xb3,0x4, 0x31,0x24, +0xfd,0x68,0x11,0x24,0xae,0x68,0x35,0x24,0xab,0x68,0xe, 0x24,0xa9,0x78,0xec,0x12, +0x10,0x3a,0x80,0xe7,0x12,0x1e,0x77,0x80,0xe2,0x6d,0x33,0x7a,0x37,0x0, 0x80,0x7e, +0x24,0x1, 0xf4,0x7a,0x27,0x0, 0x39,0x7e,0xb3,0x0, 0x82,0xbe,0xb0,0xaa,0x68,0xcb, +0x7a,0x37,0x0, 0x64,0x74,0xaa,0x7a,0xb3,0x0, 0x82,0x80,0xbf,0x6d,0x33,0x7a,0x37, +0x0, 0x80,0x7e,0x34,0x1, 0xf4,0x7a,0x37,0x0, 0x39,0x7e,0xb3,0x0, 0x82,0xb4,0xaa, +0xaa,0x74,0x55,0x7a,0xb3,0x0, 0x82,0x7e,0x74,0x3, 0xe8,0x7d,0x37,0x1b,0x74,0x4d, +0x33,0x78,0xf8,0x75,0xe9,0xff,0x80,0x93,0x12,0x42,0x28,0x2, 0x0, 0x27,0xc2,0x8e, +0xe5,0x89,0x54,0xf, 0x44,0x20,0xf5,0x89,0x75,0x8d,0x1, 0x75,0x8b,0x0, 0xd2,0x8e, +0xd2,0xab,0xa9,0xc3,0xb7,0xd2,0xbb,0x22,0xe4,0x12,0x42,0x5e,0x12,0x42,0x46,0x12, +0x42,0x52,0x74,0x1, 0x2, 0x42,0x37,0x70,0x3, 0xc2,0xaf,0x22,0xd2,0xaf,0x22,0x74, +0x1, 0x7a,0xb3,0x4, 0x31,0x22,0x75,0xeb,0x3, 0xa9,0xd6,0xac,0xa9,0xd6,0xec,0xd2, +0x86,0x22,0xa9,0xd1,0x99,0x75,0x9a,0xfe,0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0xd2,0xcf, +0xbe,0xb0,0x7, 0x38,0x4, 0x7c,0xab,0x80,0x2, 0x6c,0xaa,0x4e,0xa0,0x50,0x7a,0xa1, +0xcc,0x0, 0x0, 0x0, 0x0, 0xa9,0xd0,0xca,0xa9,0xc5,0xca,0x53,0xca,0xe1,0x43,0xca, +0x14,0x75,0xcb,0x2, 0xc2,0xcc,0xd2,0xcb,0xc2,0xca,0xc2,0xc9,0xc2,0xc8,0x0, 0x0, +0x0, 0x0, 0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca, +0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x7e,0x35,0x34,0xb, 0x34,0x7a,0x35,0x34,0xbe, +0x34,0x3, 0xe8,0x40,0xe, 0x6d,0x33,0x7a,0x35,0x34,0xe5,0x1b,0xbe,0xb0,0x64,0x50, +0x2, 0x5, 0x1b,0x7e,0x37,0x0, 0x80,0xb, 0x34,0x7a,0x37,0x0, 0x80,0x7e,0x37,0x0, +0x39,0xbe,0x37,0x0, 0x80,0x28,0x3, 0x12,0x0, 0x6, 0x7e,0xb3,0x4, 0x31,0xb4,0xaa, +0x15,0x7e,0x37,0x0, 0x64,0x7d,0x23,0xb, 0x24,0x7a,0x27,0x0, 0x64,0xbe,0x34,0x1, +0x2c,0x28,0x3, 0x12,0x42,0x3f,0xe5,0x1d,0xbe,0xb1,0x1c,0x28,0x4, 0x5, 0x1c,0x80, +0x2, 0xd2,0x1, 0x7e,0xb3,0x4, 0xfb,0x60,0xf, 0xbe,0xb0,0x28,0x50,0x7, 0x4, 0x7a, +0xb3,0x4, 0xfb,0x80,0x3, 0x12,0x3d,0x6c,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, +0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7e,0x50,0xd8, +0x74,0x27,0x7a,0xb3,0x3, 0xf5,0x74,0xa0,0x7a,0xb3,0x3, 0xfa,0x74,0x1, 0x7a,0xb3, +0x3, 0xfb,0x74,0x1e,0x7a,0xb3,0x3, 0xfc,0x74,0x8, 0x7a,0xb3,0x3, 0xfd,0x74,0x14, +0x7a,0xb3,0x3, 0xfe,0x74,0x6, 0x7a,0xb3,0x4, 0x18,0x74,0x1, 0x7a,0xb3,0x4, 0x19, +0xe4,0x7a,0xb3,0x4, 0x1a,0x74,0x11,0x7a,0xb3,0x4, 0x1b,0x12,0x42,0x3f,0x7e,0x34, +0x78,0x4, 0x12,0x3f,0xb2,0x7c,0x4b,0x7e,0x34,0x78,0x5, 0x12,0x3f,0xb2,0xbe,0x40, +0xff,0x68,0x7, 0x6c,0xb4,0xb4,0xff,0x2, 0x7c,0x54,0x7a,0x53,0x4, 0x1d,0x74,0x3c, +0x7a,0xb3,0x4, 0x1e,0x74,0x1, 0x7a,0xb3,0x4, 0x24,0xe4,0x7a,0xb3,0x4, 0x23,0x7a, +0xb3,0x4, 0x25,0x7e,0x34,0x9, 0xc4,0x7a,0x37,0x0, 0xbf,0x7e,0x34,0xa, 0x0, 0x7a, +0x37,0x0, 0x66,0x74,0xa0,0x7a,0xb3,0x0, 0x68,0x6d,0x33,0x7a,0x37,0x0, 0x5b,0x74, +0x1, 0x7a,0xb3,0x0, 0x5d,0x74,0xc, 0x7a,0xb3,0x0, 0x5e,0x74,0x8, 0x7a,0xb3,0x0, +0x5f,0x74,0x14,0x7a,0xb3,0x0, 0x60,0x7a,0xb3,0x0, 0x61,0x74,0x1e,0x7a,0xb3,0x0, +0x62,0x74,0x1, 0x7a,0xb3,0x0, 0x63,0x22,0x7c,0x3b,0x4d,0x33,0x78,0x2, 0x81,0xcc, +0x4d,0x22,0x78,0x2, 0x81,0xcc,0xe4,0x7a,0xb3,0x2, 0x3d,0x6c,0xaa,0x80,0x74,0x12, +0x44,0xcd,0x49,0xf4,0x0, 0x2, 0xb, 0x48,0xe0,0xbe,0x7c,0xf8,0x30,0x58,0x5, 0xbe, +0xa0,0x20,0x40,0x15,0xbe,0x7c,0xf2,0x54,0x58,0x50,0xbe,0xa0,0x20,0x40,0x4b,0x7e, +0x7f,0x1, 0xa5,0xbe,0x78,0xb, 0xb8,0x58,0x41,0xa, 0xa, 0x9, 0xb0,0x4, 0x7a,0xbe, +0xb0,0xfa,0x50,0xa, 0x7d,0xf0,0x2e,0xf4,0x4, 0x7a,0x4, 0x7a,0xf9,0xb0,0x9, 0x20, +0x4, 0x7a,0xbe,0x20,0xf, 0x28,0x2a,0x7e,0x10,0x2, 0xac,0x1a,0x2d,0x2, 0xb, 0x8, +0xd0,0x6d,0xcc,0x49,0xf4,0x0, 0x2, 0xb, 0x48,0xe0,0x2f,0x76,0xbe,0x78,0x32,0xc8, +0x58,0xf, 0x74,0x1, 0x7a,0xb3,0x2, 0x3d,0x80,0x7, 0xe4,0xa, 0x4a,0x19,0xb4,0x4, +0x7a,0xb, 0xa0,0xbc,0x3a,0x38,0x88,0x6c,0xaa,0x80,0x49,0x7e,0x50,0x4, 0xac,0x5a, +0x2d,0x23,0x49,0x12,0x0, 0x2, 0xb, 0x28,0x0, 0xbe,0xc, 0xfd,0x6c,0x58,0x2c,0x7e, +0xb3,0x2, 0x3d,0x70,0x26,0xa, 0x2a,0x9, 0xb2,0x4, 0x56,0xbe,0xb0,0xfa,0x50,0xa, +0x7d,0x42,0x2e,0x44,0x4, 0x56,0x4, 0x7a,0x49,0xb0,0x9, 0xb2,0x4, 0x56,0xbe,0xb0, +0x14,0x28,0xf, 0x74,0x2, 0x7a,0xb3,0x2, 0x3d,0x80,0x7, 0xe4,0xa, 0x2a,0x19,0xb2, +0x4, 0x56,0xb, 0xa0,0x7e,0xb3,0x2, 0x57,0xbc,0xba,0x38,0xaf,0x22,0x7e,0x90,0x4, +0xac,0x9a,0x2d,0x43,0x22,0xca,0xf8,0x6c,0xff,0x6c,0xaa,0x4c,0xaa,0x78,0x4, 0x9f, +0x44,0x80,0xc, 0x12,0x45,0x4a,0x1b,0x16,0x49,0x91,0x0, 0x2, 0xb, 0x18,0x80,0xbe, +0xa0,0x7, 0x78,0x4, 0x9f,0x55,0x80,0xb, 0x12,0x45,0x4a,0x49,0xb1,0x0, 0x6, 0x49, +0xa1,0x0, 0x4, 0x12,0x44,0xcd,0x49,0x14,0x0, 0x2, 0xb, 0x48,0x0, 0xbf,0x4, 0x48, +0x2a,0xbf,0x5, 0x48,0x26,0x49,0x14,0x0, 0x2, 0xb, 0x48,0x0, 0xbe,0x8, 0x5, 0xdc, +0x48,0x19,0x49,0x14,0x0, 0x2, 0xb, 0x48,0x0, 0xb, 0xc, 0x59,0x14,0x0, 0x2, 0x1b, +0x48,0x0, 0xa, 0x1f,0x2d,0x12,0x7a,0x19,0xa0,0xb, 0xf0,0xb, 0xa0,0xbe,0xa0,0x8, +0x40,0x99,0x12,0x45,0x52,0x7c,0xbf,0xda,0xf8,0x22,0x7e,0x30,0x4, 0xac,0x3a,0x2d, +0x13,0x22,0xca,0x3b,0x6c,0xaa,0x7e,0x73,0x0, 0x55,0x5e,0x70,0xf, 0x7e,0x44,0x0, +0xcd,0x7e,0x24,0x0, 0x3b,0x6c,0x66,0x80,0x64,0x75,0x8, 0xff,0xa, 0xf6,0x2d,0xf2, +0x7e,0xf9,0x20,0x7e,0x30,0x4, 0xac,0x23,0x7d,0xe1,0x2d,0xe4,0x49,0x1e,0x0, 0x2, +0xb, 0xe8,0x0, 0xa, 0x76,0xb, 0x74,0x80,0x24,0xa, 0xef,0x2d,0xe2,0x7e,0xe9,0xe0, +0x7e,0xd0,0x4, 0xac,0xde,0x7d,0xe6,0x2d,0xe4,0x49,0xde,0x0, 0x2, 0xb, 0xe8,0xc0, +0xbf,0x6, 0x58,0x7, 0x7c,0xae,0x7a,0xf1,0x8, 0x7f,0x6, 0xb, 0xf0,0xbc,0x7f,0x38, +0xd8,0xe5,0x8, 0xbe,0xb0,0xff,0x68,0x13,0x7e,0xf9,0xe0,0xe5,0x8, 0xa, 0xfb,0x2d, +0xf2,0x7a,0xf9,0xe0,0xa, 0xf6,0x2d,0xf2,0x7a,0xf9,0xa0,0xb, 0x60,0xbc,0x76,0x38, +0x98,0xda,0x3b,0x22,0x12,0xb, 0xbf,0x68,0xd, 0x7e,0x34,0x2, 0x11,0x7e,0xb3,0x0, +0x3b,0x6c,0x55,0x2, 0x45,0xe7,0x22,0x7d,0x13,0xa, 0x3b,0x2d,0x31,0x7a,0x39,0x50, +0x22,0x7d,0x3, 0x7d,0x50,0x1a,0x4a,0x1a,0x48,0x7e,0x1f,0x1, 0x4d,0xbf,0x21,0x18, +0xb, 0x7e,0x34,0x2, 0x11,0x74,0x20,0x6c,0x55,0x12,0x45,0xe7,0x7d,0x50,0x1a,0x4a, +0x1a,0x48,0x7e,0x1f,0x1, 0x51,0xbf,0x21,0x18,0xb, 0x7e,0x34,0x2, 0x11,0x74,0x21, +0x6c,0x55,0x12,0x45,0xe7,0x7d,0x10,0x1a,0x2, 0x1a,0x0, 0x7e,0x1f,0x1, 0x55,0xbf, +0x1, 0x18,0xb, 0x7e,0x34,0x2, 0x11,0x74,0x22,0x6c,0x55,0x2, 0x45,0xe7,0x22,0x7e, +0xb3,0x2, 0x55,0x20,0xe1,0x45,0x7e,0xa3,0x4, 0x1e,0x4c,0xaa,0x68,0x2a,0xbe,0xa0, +0xff,0x68,0x25,0x74,0x28,0xa4,0x7d,0xf5,0xbe,0xf4,0x9, 0x60,0x58,0x4, 0x7e,0xf4, +0x9, 0x60,0x12,0x37,0x25,0xb4,0x1, 0x14,0x7e,0xe7,0x0, 0x6b,0xbe,0xe4,0x3, 0x84, +0x78,0xa, 0x7e,0xf4,0x8, 0x98,0x80,0x4, 0x7e,0xf4,0x9, 0x60,0x7d,0x3f,0x12,0x45, +0xf1,0x12,0x46,0x8c,0x40,0x5, 0x7d,0x3f,0x2, 0x26,0x89,0x22,0x7e,0xf, 0x1, 0x51, +0x7e,0x1f,0x1, 0x4d,0x2f,0x10,0x7e,0xf, 0x1, 0x55,0x2f,0x1, 0x7e,0x1f,0x1, 0xa5, +0xbf,0x10,0x58,0xc, 0x20,0xd, 0x9, 0x12,0x27,0x69,0x7a,0xb3,0x0, 0x55,0xc3,0x22, +0x12,0xb, 0xbf,0x68,0x2, 0xd2,0xd, 0xd3,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca, +0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xe5,0xcc,0x54, +0x7, 0x68,0x3, 0x75,0xcc,0x50,0x12,0x3b,0x9f,0x74,0x1, 0x7a,0xb3,0x4, 0xfb,0xd0, +0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda, +0x6b,0xda,0x7b,0x32,0x7c,0xa7,0x24,0x0, 0x78,0x7, 0x7e,0x34,0x4, 0xfe,0x7a,0x39, +0xa0,0x22,0xca,0xb8,0xa9,0xc0,0x93,0xe4,0x7a,0xb3,0x4, 0xfa,0x7a,0xb3,0x4, 0xfc, +0xda,0xb8,0x32,0x7e,0x34,0x4, 0xd6,0x12,0x3f,0xf5,0x7e,0x34,0x4, 0xe8,0x7e,0x24, +0x0, 0x12,0x2, 0x3, 0x15,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca, +0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x12,0xf, 0xfa,0x7e,0xb3,0x4, 0xfe, +0x54,0xfd,0x7a,0xb3,0x4, 0xfe,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b, +0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7e,0x24,0x0, 0x14,0xad, +0x32,0x80,0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7d,0x23,0x1b,0x34,0x4d, +0x22,0x78,0xf0,0x22,0x7c,0xab,0x80,0x7, 0x7e,0x34,0x0, 0x42,0x12,0x47,0x5b,0x7c, +0x7a,0x1b,0xa0,0xa5,0xbf,0x0, 0xf1,0x22,0x7c,0xa6,0xa, 0x27,0xa, 0x3b,0x9d,0x32, +0x12,0x3, 0x5, 0xa, 0x2a,0xbd,0x32,0x18,0x3, 0x74,0x1, 0x22,0xe4,0x22,0x7f,0x60, +0x7f,0x71,0x7e,0x14,0x0, 0x74,0x7f,0x17,0x12,0x0, 0x89,0x74,0x7, 0x7f,0x51,0x1e, +0xb4,0x1e,0xa4,0x50,0x4, 0x4e,0xb4,0x80,0x0, 0x14,0x78,0xf3,0x7e,0x14,0x0, 0x54, +0x7f,0x17,0x12,0x0, 0x89,0x7f,0x1, 0x74,0x7, 0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e, +0x60,0x80,0x14,0x78,0xf4,0xbf,0x65,0x8, 0x3, 0x74,0x80,0x22,0xbf,0x61,0x58,0x2, +0xe4,0x22,0x74,0x9, 0x7f,0x16,0x2f,0x11,0x14,0x78,0xfb,0x2f,0x0, 0x2f,0x0, 0x9f, +0x10,0x7f,0x7, 0x12,0x0, 0x94,0x7c,0xb7,0x22,0xca,0xf8,0x7c,0xfb,0x7f,0x40,0x7a, +0x1d,0xc, 0x7e,0x30,0xff,0xbe,0x48,0x0, 0x0, 0x8, 0x50,0x7e,0x1d,0x10,0xbe,0x18, +0x0, 0x0, 0x8, 0x47,0xbf,0x41,0x8, 0x20,0x7e,0x1d,0xc, 0x7f,0x4, 0x12,0x48,0xeb, +0x1a,0x1f,0x1b,0x15,0x7e,0x23,0x5, 0x79,0xbc,0x2f,0x68,0x2c,0xa, 0x22,0xb, 0x24, +0xa, 0x3f,0xbd,0x32,0x78,0x25,0x80,0x20,0x7e,0x1d,0xc, 0x7e,0xd, 0x10,0x12,0x48, +0xeb,0xa, 0x1f,0xb, 0x15,0x7e,0x23,0x5, 0x79,0x7c,0xb2,0x24,0xfe,0xbc,0xbf,0x68, +0x7, 0x7c,0xb2,0x14,0xbc,0xbf,0x78,0x3, 0x7e,0x30,0xff,0x7e,0x23,0x5, 0x78,0xbc, +0x23,0x8, 0x5, 0xbe,0x30,0x0, 0x58,0xa, 0xe4,0x7a,0xb3,0x5, 0x76,0x12,0x1f,0x70, +0x80,0x74,0x6c,0x22,0x80,0x65,0xe5,0x15,0xbc,0xb2,0x68,0x5d,0xa, 0x2, 0x9, 0x10, +0x0, 0x3b,0x7e,0xa3,0x5, 0x78,0x7c,0xb1,0x84,0x7c,0x1a,0x7e,0x3, 0x5, 0x79,0xbc, +0x3, 0x8, 0x8, 0x7e,0x73,0x5, 0x79,0xbc,0x71,0x38,0xc, 0xbc,0x3, 0x18,0x3a,0x7e, +0x3, 0x5, 0x79,0xbc,0x1, 0x38,0x32,0x7c,0xb3,0x7c,0x71,0x7e,0x60,0x1, 0x12,0x47, +0x88,0xb4,0x1, 0x25,0xbc,0x13,0x78,0x17,0x7e,0x1d,0x10,0xbf,0x41,0x1a,0x33,0x8, +0x4, 0xb, 0x34,0x80,0x2, 0x1b,0x34,0x7c,0x27,0x7a,0x23,0x5, 0x77,0x80,0x3, 0x12, +0x1f,0x70,0xe4,0x7a,0xb3,0x5, 0x76,0x80,0xd, 0xb, 0x20,0x12,0xb, 0xbf,0xa, 0x2b, +0xa, 0x32,0xbd,0x32,0x48,0x90,0x7c,0xb3,0xda,0xf8,0x22,0x12,0x47,0x9e,0x7a,0xb3, +0x5, 0x76,0x22,0x7e,0x73,0x2, 0x57,0xa, 0x37,0x1e,0x34,0x7a,0x73,0x5, 0x78,0xa, +0x37,0x1e,0x34,0x7a,0x73,0x5, 0x79,0x22,0xca,0x3b,0x7c,0x27,0x7c,0x3b,0x7e,0x93, +0x5, 0x79,0xa, 0xa9,0xa, 0x83,0x12,0x4a,0x25,0x7c,0x15,0xa, 0x92,0x7d,0x39,0x7d, +0x2a,0x12,0x4a,0x3c,0x7e,0xa3,0x5, 0x78,0xa, 0xaa,0x12,0x4a,0x25,0x7c,0x5, 0x7d, +0x39,0x7d,0x2a,0x12,0x0, 0x46,0x7c,0x25,0xbc,0x81,0x78,0x4f,0x7e,0xd0,0x4, 0xac, +0xd0,0x49,0xd6,0x1, 0x5f,0x49,0xc6,0x1, 0x5d,0x7e,0xf0,0x4, 0xac,0xf2,0x49,0xf7, +0x1, 0x5f,0x49,0xe7,0x1, 0x5d,0x4c,0x11,0x68,0x14,0x49,0x36,0x1, 0x5b,0x49,0x26, +0x1, 0x59,0x2f,0x61,0x49,0x37,0x1, 0x5b,0x49,0x27,0x1, 0x59,0x2f,0x71,0x7c,0xb9, +0x14,0xbc,0xb1,0x68,0x78,0x7e,0x10,0x4, 0xac,0x1, 0x12,0x4a,0x2c,0x2f,0x61,0x7e, +0x10,0x4, 0xac,0x12,0x12,0x4a,0x2c,0x2f,0x71,0x80,0x62,0xa, 0x31,0xa, 0xa0,0x9d, +0xa3,0x7d,0x3a,0x7c,0x7, 0xe5,0x8, 0xa, 0x3b,0xa, 0xa2,0x9d,0xa3,0x7d,0x3a,0x7c, +0x27,0xe5,0x8, 0xa, 0x3b,0xa, 0x20,0x2d,0x23,0x3e,0x24,0x3e,0x24,0x49,0xf2,0x1, +0x5f,0x49,0xe2,0x1, 0x5d,0xa, 0xa1,0xa, 0x20,0x2d,0x2a,0x3e,0x24,0x3e,0x24,0x49, +0xd2,0x1, 0x5f,0x49,0xc2,0x1, 0x5d,0x2f,0x67,0xa, 0xa2,0x2d,0xa3,0x3e,0xa4,0x3e, +0xa4,0x49,0x3a,0x1, 0x5f,0x49,0x2a,0x1, 0x5d,0xa, 0x1, 0xa, 0xa2,0x2d,0xa0,0x3e, +0xa4,0x3e,0xa4,0x49,0xfa,0x1, 0x5f,0x49,0xea,0x1, 0x5d,0x2f,0x71,0xb, 0x6c,0xb, +0x7c,0xbc,0xa3,0x7e,0x17,0x2, 0x3b,0x1a,0x2, 0x38,0x6, 0x1a,0x0, 0x7f,0x17,0x80, +0x4, 0x1a,0x0, 0x7f,0x16,0x12,0x0, 0x78,0x7f,0x6, 0x2f,0x7, 0x12,0x0, 0xe5,0x7d, +0xb3,0x7e,0x37,0x2, 0x3b,0x12,0x4a,0x35,0x7e,0xa7,0x1, 0xfd,0x9d,0xa3,0x2d,0xba, +0x7d,0x3b,0xda,0x3b,0x22,0x7d,0x38,0x7d,0x2a,0x2, 0x0, 0x46,0x49,0x30,0x1, 0x63, +0x49,0x20,0x1, 0x61,0x22,0x7e,0x24,0x0, 0x2, 0x2, 0x0, 0x46,0x12,0x0, 0x46,0x7c, +0x85,0x7a,0x81,0x8, 0x22,0x7c,0xab,0x9f,0x66,0x7f,0x56,0x7e,0x78,0x0, 0x1, 0x7e, +0x33,0x5, 0x79,0xa, 0x23,0xa, 0x3a,0x12,0x0, 0x46,0x7c,0x75,0x4c,0x77,0x68,0xd, +0x7e,0x50,0x4, 0xac,0x5a,0x49,0xb2,0x0, 0xcb,0x49,0xa2,0x0, 0xc9,0x7c,0xb3,0x14, +0xbc,0xb7,0x68,0xd, 0x7e,0x70,0x4, 0xac,0x7a,0x49,0xd3,0x0, 0xd3,0x49,0xc3,0x0, +0xd1,0x74,0x4, 0xa4,0x12,0x13,0xd9,0x12,0x4a,0x9d,0x2f,0x71,0x7f,0x15,0x12,0x4a, +0x9d,0x2f,0x71,0x7f,0x16,0x12,0x4a,0x9d,0x2f,0x71,0x7f,0x17,0x22,0x7f,0x1, 0x7e, +0x37,0x1, 0xf1,0x12,0x18,0xf7,0x8, 0x3, 0x7f,0x10,0x22,0x9f,0x11,0x22,0x53,0xe1, +0xf, 0x7e,0x73,0x2, 0xac,0x7c,0xb7,0x1e,0xb0,0x1e,0xb0,0x54,0x1, 0xa, 0x2b,0x12, +0x4b,0x7e,0x7c,0xb5,0x42,0xe1,0x7c,0xb7,0x30,0xe2,0x58,0x7c,0xb7,0xc4,0x23,0x7c, +0x7b,0x5e,0x70,0x7, 0xa5,0xbf,0x0, 0x5, 0x7e,0x60,0x4, 0x80,0x39,0xa5,0xbf,0x1, +0x11,0x7e,0xb3,0x2, 0xa4,0x30,0xe1,0x5, 0x7e,0x60,0x2, 0x80,0x29,0x7e,0x60,0x5, +0x80,0x24,0xa5,0xbf,0x3, 0x11,0x7e,0xb3,0x2, 0xa4,0x30,0xe1,0x5, 0x7e,0x60,0x7, +0x80,0x14,0x7e,0x60,0x6, 0x80,0xf, 0x7e,0xb3,0x2, 0xa4,0x30,0xe1,0x5, 0x7e,0x60, +0x3, 0x80,0x3, 0x7e,0x60,0x1, 0xa, 0x26,0x3e,0x24,0x12,0x4b,0x7e,0x7c,0x75,0x7c, +0xb7,0x42,0xe1,0x74,0x7, 0x7e,0x73,0x2, 0x57,0x12,0xf, 0xcb,0x74,0x8, 0x7e,0x73, +0x2, 0x58,0x12,0xf, 0xcb,0x74,0x9, 0x6c,0x77,0x12,0xf, 0xcb,0x6c,0xaa,0x80,0xf, +0x7c,0xba,0x24,0x2f,0xa, 0x4a,0x9, 0x74,0x2, 0x5a,0x12,0xf, 0xcb,0xb, 0xa0,0x7e, +0x73,0x2, 0x59,0xbc,0x7a,0x38,0xe9,0x7c,0xa7,0x80,0xc, 0x7c,0xba,0x24,0x2f,0x7e, +0x70,0x3f,0x12,0xf, 0xcb,0xb, 0xa0,0xbe,0xa0,0x24,0x40,0xef,0x74,0x56,0x7e,0x73, +0x2, 0xa8,0x12,0xf, 0xcb,0x74,0x57,0x7e,0x73,0x2, 0xa9,0x2, 0xf, 0xcb,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x22,0xca,0xf8,0x7c,0xfb,0x4c,0x77,0x68,0xf, 0xc2, +0xaf,0x43,0xe1,0x1, 0x7e,0x37,0x2, 0x5, 0x99,0x34,0xd2,0xaf,0x80,0x3, 0x43,0xe1, +0x1, 0xc2,0x9, 0x2e,0xf0,0xff,0x92,0xa, 0xd2,0xae,0xa9,0xd6,0xb7,0xc2,0xbe,0xda, +0xf8,0x22,0xca,0x59,0xc2,0xae,0x30,0xa, 0x5, 0x7e,0xa0,0x1, 0x80,0x3, 0x7e,0xa0, +0x2, 0xe5,0xe6,0x5c,0xba,0x68,0x5, 0x75,0xe6,0x0, 0xd2,0x9, 0xd2,0xae,0xda,0x59, +0x32,0xca,0xd8,0xca,0x79,0x12,0xb, 0xbf,0x7c,0xb, 0x78,0x2f,0x6c,0x11,0x6d,0x11, +0x74,0x2, 0xac,0xb1,0x59,0x15,0x5, 0x57,0x7e,0xa0,0xff,0x7e,0x30,0x5, 0xac,0x31, +0x19,0xa1,0x5, 0x51,0x7e,0xb3,0x5, 0x5d,0x70,0x3, 0xe4,0x80,0x2, 0x74,0x2, 0xa, +0x11,0x19,0xb1,0x5, 0x5b,0xb, 0x10,0xa5,0xb9,0x2, 0xd3,0x6c,0x11,0xa1,0x1a,0x74, +0x5, 0xac,0xb1,0x9, 0xf5,0x0, 0x43,0xbe,0xf0,0x2, 0x40,0x2, 0xa1,0x18,0xa, 0x1f, +0x9, 0xb1,0x0, 0xc1,0xbe,0xb0,0x1, 0x78,0x2, 0xa1,0x18,0x6c,0xee,0x74,0x5, 0xac, +0xbe,0x9, 0xd5,0x5, 0x51,0xbc,0xdf,0x68,0x2, 0xa1,0xf, 0x49,0x25,0x5, 0x4f,0x74, +0x5, 0xac,0xb1,0x12,0x7, 0x76,0x7d,0x43,0x74,0x5, 0xac,0xbe,0x49,0x25,0x5, 0x4d, +0x74,0x5, 0xac,0xb1,0x12,0xb, 0xb6,0x2d,0x43,0xa, 0x1d,0x9, 0xa1,0x5, 0x5b,0xbe, +0xa0,0x0, 0x28,0x17,0x7e,0x30,0x2, 0xac,0x3d,0x59,0x41,0x5, 0x57,0xa, 0x1d,0x2e, +0x14,0x5, 0x5b,0x7c,0xba,0x14,0x7a,0x19,0xb0,0xa1,0x18,0x7e,0x30,0x2, 0xac,0x3d, +0x49,0x31,0x5, 0x57,0xbe,0x34,0x0, 0x32,0x28,0x8, 0xbe,0x44,0x0, 0x32,0x28,0x2, +0x80,0x10,0x7d,0x23,0x2e,0x24,0x0, 0x32,0xbd,0x24,0x50,0x12,0xbe,0x34,0x0, 0x32, +0x28,0xc, 0x59,0x41,0x5, 0x57,0x74,0x1, 0x7a,0xb3,0x5, 0x5d,0x80,0x6a,0xbe,0x44, +0x0, 0xc8,0x28,0x51,0xe4,0x7a,0xb3,0x5, 0x5d,0xa, 0x1f,0x9, 0xb1,0x0, 0xc1,0x70, +0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0xa, 0x1f,0x19,0xb1,0x0, 0xc1,0x7e,0x70,0x5, +0xac,0x71,0x2e,0x34,0x0, 0x3f,0x7e,0x14,0x2, 0xaf,0x74,0x5, 0x12,0x1, 0x19,0xbe, +0x0, 0x0, 0x28,0x21,0x1b,0x0, 0x7e,0x70,0x5, 0xac,0x70,0x2e,0x34,0x0, 0x3f,0x7e, +0x30,0x5, 0xac,0x31,0x12,0x4d,0x50,0x7e,0x34,0x2, 0xaf,0x7e,0x30,0x5, 0xac,0x30, +0x12,0x4d,0x50,0x1b,0x10,0x74,0x2, 0xac,0xbd,0x59,0x45,0x5, 0x57,0x80,0x9, 0xb, +0xe0,0xbe,0xe0,0x2, 0x50,0x2, 0x81,0x2d,0xb, 0x10,0x12,0x4d,0x59,0x54,0xf, 0xa, +0x5b,0xa, 0x11,0xbd,0x15,0x58,0x2, 0x81,0xf, 0x7c,0x60,0x12,0x26,0x7c,0x6c,0x11, +0x7e,0x30,0x5, 0xac,0x31,0x7d,0x31,0x2e,0x34,0x0, 0x3f,0x2e,0x14,0x5, 0x4d,0x74, +0x5, 0x12,0x1, 0x19,0xb, 0x10,0xbe,0x10,0x2, 0x40,0xe5,0xda,0x79,0xda,0xd8,0x22, +0x2e,0x14,0x0, 0x3f,0x74,0x5, 0x2, 0x1, 0x19,0x7e,0x73,0x0, 0x55,0x7c,0xb7,0x22, +0xca,0x79,0x7e,0x23,0x0, 0x55,0x5e,0x20,0xf, 0x6c,0xaa,0xc1,0x0, 0x7e,0x70,0x5, +0xac,0x7a,0x49,0xf3,0x0, 0x3f,0x7e,0x4, 0x0, 0xf, 0x7d,0x40,0x9e,0xf4,0x0, 0x20, +0xbd,0x4f,0x38,0xa, 0x7e,0x24,0x1, 0xc0,0x9d,0x20,0xbd,0x2f,0x50,0x42,0x7e,0x53, +0x0, 0x55,0x7c,0xb5,0xc4,0x7c,0x3b,0x5e,0x30,0xf, 0x7c,0xb5,0x54,0xf, 0xbc,0xb3, +0x78,0x27,0xa5,0xba,0x1, 0x23,0x7e,0xf0,0x4, 0xac,0xfa,0x49,0x27,0x5, 0x5e,0xbe, +0x24,0x7f,0xff,0x68,0x14,0x49,0xe7,0x5, 0x60,0xbe,0xe4,0x7f,0xff,0x68,0xa, 0x59, +0x23,0x0, 0x3f,0x59,0xe3,0x0, 0x41,0x80,0x7, 0x7c,0xba,0x7c,0x72,0x12,0x4e,0x13, +0x12,0x4d,0x59,0xc4,0x7c,0x3b,0x5e,0x30,0xf, 0x7c,0xb7,0x54,0xf, 0xbc,0xb3,0x68, +0x9, 0x7e,0xe4,0x7f,0xff,0x12,0x4e,0x9, 0x80,0x10,0x7e,0x50,0x5, 0xac,0x5a,0x49, +0xe2,0x0, 0x3f,0x12,0x4e,0x9, 0x49,0xe2,0x0, 0x41,0x59,0xe3,0x5, 0x60,0xb, 0xa0, +0xbc,0x2a,0x28,0x2, 0xa1,0x6d,0xda,0x79,0x22,0x7e,0x70,0x4, 0xac,0x7a,0x59,0xe3, +0x5, 0x5e,0x22,0x7c,0x6b,0x7e,0x53,0x0, 0x55,0x7c,0xb5,0x54,0xf, 0x68,0x10,0x7c, +0x45,0x1b,0x40,0x5e,0x40,0xf, 0x5e,0x50,0xf0,0x4c,0x54,0x7a,0x53,0x0, 0x55,0xa5, +0xbe,0x0, 0x1c,0xa5,0xbf,0x2, 0x18,0x7e,0x73,0x0, 0x3c,0x7a,0x73,0x0, 0x3b,0x7e, +0x1f,0x0, 0x45,0x7e,0x33,0x0, 0x44,0x7a,0x1f,0x0, 0x40,0x7a,0x33,0x0, 0x3f,0x22, +0x6c,0xaa,0x7e,0x90,0x5, 0xac,0x9a,0x9, 0xb4,0x0, 0x6d,0xbe,0xb0,0xff,0x68,0xa, +0x49,0x34,0x0, 0x6b,0xbe,0x34,0x3, 0x1f,0x50,0x33,0xb, 0xa0,0xbe,0xa0,0x2, 0x40, +0xe1,0x12,0x4d,0x59,0x54,0xf, 0x78,0x20,0x7c,0xb7,0xc4,0x7c,0x6b,0x5e,0x60,0xf, +0xbe,0x60,0x0, 0x28,0x13,0xe5,0x38,0xbe,0xb0,0x1, 0x50,0x8, 0x12,0x26,0x7f,0xd2, +0x3, 0x5, 0x38,0x22,0x75,0x38,0x0, 0x22,0x75,0x38,0x0, 0xc2,0x3, 0x22,0x6c,0xaa, +0x74,0x3, 0xa, 0x4a,0x19,0xb4,0x0, 0xc3,0x19,0xb4,0x0, 0xc1,0x12,0x4e,0xbc,0xac, +0x7a,0x12,0x4e,0xc4,0xb, 0xa0,0xbe,0xa0,0x2, 0x40,0xe5,0x22,0x7e,0x44,0x7f,0xff, +0x7e,0x70,0x2, 0x22,0x59,0x43,0x0, 0xc5,0x59,0x43,0x0, 0xc9,0x22,0xe4,0x7a,0xb3, +0x4, 0xd4,0x7a,0xb3,0x4, 0x9f,0x22,0xca,0xf8,0x7e,0xd5,0x2f,0x9, 0xfd,0x0, 0x1a, +0x5e,0xf0,0xf, 0x78,0x8, 0x12,0x4e,0xcd,0x12,0x4f,0xba,0x80,0x55,0xbe,0xf0,0x1, +0x78,0x1a,0x7e,0x73,0x4, 0xcd,0xbe,0x70,0x3, 0x50,0x5, 0x12,0x4e,0xcd,0x80,0x9, +0x12,0x4f,0xb2,0x28,0x4, 0xe4,0x12,0x4f,0x45,0xe4,0x80,0x33,0xbe,0xf0,0x2, 0x78, +0x31,0x7e,0x73,0x4, 0x9e,0xbe,0x70,0x3, 0x50,0x8, 0x12,0x4e,0xcd,0x12,0x4f,0xba, +0x80,0x17,0x12,0x4f,0xb2,0x28,0x4, 0xe4,0x12,0x4f,0x45,0x7e,0x73,0x4, 0xd5,0xbe, +0x70,0x3, 0x28,0x5, 0x74,0x1, 0x12,0x4f,0x45,0xe4,0x12,0x4f,0xcc,0x74,0x1, 0x12, +0x4f,0xcc,0xda,0xf8,0x22,0x7c,0xab,0x7e,0x70,0x4, 0xac,0x7a,0x49,0x23,0x4, 0xa1, +0x12,0x4f,0xa9,0x49,0x33,0x0, 0x4, 0x12,0x4f,0xc4,0x7e,0x70,0x4, 0xac,0x7a,0x49, +0x23,0x4, 0xa3,0x12,0x4f,0xa9,0x49,0x33,0x0, 0x6, 0x9d,0x32,0x12,0x3, 0x5, 0xbe, +0x44,0x0, 0x14,0x58,0x33,0xbe,0x34,0x0, 0x1e,0x58,0x2d,0xa, 0x3a,0x9, 0xb3,0x4, +0x9f,0x60,0x25,0x7e,0x70,0x4, 0xac,0x7a,0x49,0x43,0x4, 0xa1,0x12,0x4f,0xa9,0x59, +0x43,0x0, 0x4, 0x7e,0x70,0x4, 0xac,0x7a,0x49,0x33,0x4, 0xa3,0x7e,0x50,0x5, 0xac, +0x5a,0x2e,0x25,0x2f,0x59,0x32,0x0, 0x6, 0x22,0x7e,0x70,0x5, 0xac,0x7a,0x2e,0x35, +0x2f,0x22,0x7e,0x73,0x4, 0xd4,0xbe,0x70,0x3, 0x22,0xe4,0x7a,0xb3,0x4, 0xd5,0x7a, +0xb3,0x4, 0xa0,0x22,0x9d,0x32,0x12,0x3, 0x5, 0x7d,0x43,0x22,0xca,0xf8,0x7c,0xfb, +0x74,0x4, 0xac,0xbf,0x49,0x25,0x4, 0xa1,0x12,0x52,0x43,0x49,0x33,0x0, 0x4, 0x9d, +0x32,0x12,0x3, 0x5, 0x7d,0x13,0x74,0x4, 0xac,0xbf,0x49,0x25,0x4, 0xa3,0x12,0x52, +0x43,0x49,0x33,0x0, 0x6, 0x9d,0x32,0x12,0x3, 0x5, 0xbe,0x14,0x0, 0xa, 0x58,0x22, +0xbe,0x34,0x0, 0xf, 0x58,0x1c,0xa, 0x3f,0x7d,0x23,0x2e,0x24,0x4, 0xd4,0x7e,0x29, +0xb0,0x4, 0x7a,0x29,0xb0,0x9, 0x53,0x4, 0xd4,0xbe,0x50,0x20,0x28,0x20,0x74,0x20, +0x80,0xc, 0xa, 0x3f,0x9, 0xa3,0x4, 0xd4,0xbe,0xa0,0x3, 0x38,0x7, 0xe4,0x19,0xb3, +0x4, 0xd4,0x80,0xa, 0x2e,0x34,0x4, 0xd4,0x7c,0xba,0x14,0x7a,0x39,0xb0,0xa, 0x3f, +0x2e,0x35,0x2f,0x7e,0x39,0xb0,0x12,0x37,0x7c,0x60,0xa, 0x74,0x78,0xa, 0x3f,0x19, +0xb3,0x4, 0x9f,0x80,0x13,0xa, 0x3f,0x9, 0xb3,0x4, 0x9f,0xbe,0xb0,0x0, 0x28,0x8, +0x2e,0x34,0x4, 0x9f,0x14,0x7a,0x39,0xb0,0x7e,0x90,0x5, 0xac,0x9f,0x2e,0x45,0x2f, +0x49,0x34,0x0, 0x4, 0x74,0x4, 0xac,0xbf,0x59,0x35,0x4, 0xa1,0x49,0x34,0x0, 0x6, +0x59,0x35,0x4, 0xa3,0xda,0xf8,0x22,0x7e,0x45,0x2f,0x9, 0xa4,0x0, 0x1a,0x5e,0xa0, +0xf, 0x78,0x7, 0xe4,0x7a,0xb3,0x4, 0xcd,0x80,0x3d,0xbe,0xa0,0x1, 0x78,0x1f,0xe4, +0x7a,0xb3,0x4, 0x9e,0x7e,0xb3,0x4, 0xcd,0x4, 0x7a,0xb3,0x4, 0xcd,0x7e,0x73,0x4, +0xcd,0xbe,0x70,0xc8,0x28,0x25,0x74,0xc8,0x7a,0xb3,0x4, 0xcd,0x80,0x1d,0xe4,0x7a, +0xb3,0x4, 0xcd,0x7e,0xb3,0x4, 0x9e,0x4, 0x7a,0xb3,0x4, 0x9e,0x7e,0x73,0x4, 0x9e, +0xbe,0x70,0xc8,0x28,0x6, 0x74,0xc8,0x7a,0xb3,0x4, 0x9e,0x7e,0xb3,0x4, 0xcc,0x60, +0x5, 0x14,0x7a,0xb3,0x4, 0xcc,0x22,0xca,0xf8,0x7e,0xe4,0x0, 0xc8,0x7e,0xd4,0x1, +0x90,0x7e,0xc4,0x0, 0xf0,0x6c,0xff,0x21,0xfb,0x12,0x52,0x43,0x49,0x23,0x0, 0x4, +0x7a,0x27,0x5, 0x7a,0x49,0xb3,0x0, 0x6, 0xbe,0xb4,0x3, 0x20,0x40,0x2, 0x41,0xe, +0x7e,0x37,0x5, 0x7a,0x9d,0x3c,0x12,0x3, 0x5, 0x7d,0xac,0x9d,0xa3,0x7e,0x24,0x0, +0xa, 0x7d,0x3a,0x8d,0x32,0x7d,0xa3,0xb, 0xa4,0x7d,0x3b,0x8d,0x3d,0x7a,0x27,0x5, +0x7c,0x7d,0x32,0x9d,0x3e,0x12,0x3, 0x5, 0x12,0x52,0x4c,0x7d,0x93,0xb, 0x94,0xbd, +0xdb,0x40,0x6, 0x7e,0x37,0x4, 0xd0,0x80,0x4, 0x7e,0x37,0x4, 0xab,0x7e,0x24,0x0, +0x64,0x8d,0x32,0x7d,0xf3,0xbe,0xf4,0x0, 0x1, 0x50,0x4, 0x6d,0xff,0x80,0xa, 0xbe, +0xf4,0x0, 0x28,0x28,0x4, 0x7e,0xf4,0x0, 0x28,0x7d,0x19,0xad,0x1a,0x6d,0x0, 0x7f, +0x10,0x7d,0x1f,0x12,0x0, 0x89,0x7f,0x1, 0xbd,0xeb,0x40,0x11,0x12,0x52,0x11,0x7d, +0x3b,0x6d,0x22,0xbf,0x10,0x50,0x4e,0x6d,0xbb,0x80,0x61,0x80,0x48,0xbd,0xdb,0x40, +0x1b,0x7f,0x10,0x74,0x7, 0x12,0x52,0x15,0x12,0x52,0x39,0xb4,0x1, 0x2, 0x9f,0x0, +0x7d,0x81,0x2d,0xb8,0xbd,0xdb,0x50,0x44,0x7d,0xbd,0x80,0x40,0x7d,0x8e,0x2d,0x8d, +0xbd,0x8b,0x40,0x27,0x7f,0x10,0x74,0x7, 0x12,0x52,0x15,0x12,0x52,0x39,0xb4,0x1, +0x2, 0x9f,0x0, 0x7d,0x5d,0x6d,0x44,0x2f,0x20,0x7d,0x3b,0x6d,0x22,0xbf,0x12,0x50, +0x4, 0x7d,0xbd,0x80,0x17,0x7d,0x81,0x9d,0xb8,0x80,0x11,0x12,0x52,0x11,0x7d,0x81, +0x2d,0xb8,0xbe,0xb4,0x3, 0x20,0x40,0x4, 0x7e,0xb4,0x3, 0x1f,0x74,0x5, 0xac,0xbf, +0x7d,0x85,0x2e,0x85,0x2f,0x59,0xb8,0x0, 0x6, 0xb, 0xf0,0x7e,0x85,0x2f,0x9, 0xb8, +0x0, 0x1a,0x54,0xf, 0xa, 0x3b,0xa, 0x8f,0xbd,0x83,0x58,0x2, 0x1, 0xf9,0xda,0xf8, +0x22,0x7f,0x10,0x74,0x9, 0x7e,0x30,0x4, 0x7e,0x20,0xc8,0x12,0x52,0x21,0x7f,0x1, +0x22,0xca,0xf8,0x7c,0xf2,0x12,0x52,0x53,0xa, 0x19,0x6d,0x0, 0x12,0x0, 0x94,0xa, +0x1f,0x6d,0x0, 0x12,0x0, 0x94,0xda,0xf8,0x22,0xa, 0x8f,0x2e,0x85,0x2f,0x9, 0xb8, +0x0, 0x18,0x22,0x7e,0x70,0x5, 0xac,0x7f,0x2e,0x35,0x2f,0x22,0x7e,0x24,0x0, 0xa, +0x2, 0x0, 0x46,0x7c,0x93,0xa, 0x1b,0x6d,0x0, 0x2, 0x0, 0x78,0x2f,0x7, 0x12,0x0, +0x94,0x7a,0x1f,0x2, 0xc3,0x7e,0x24,0x2, 0xc3,0x7e,0x37,0x2, 0xc7,0x7c,0xbc,0x7e, +0x17,0x2, 0x9, 0x99,0x14,0x7e,0x1f,0x2, 0xc3,0x7c,0xbc,0x7e,0x17,0x2, 0xb, 0x89, +0x14,0x7e,0xa3,0x2, 0xa4,0x7c,0xba,0x54,0x1, 0xa, 0x3b,0x3e,0x34,0x7c,0xb7,0x42, +0xe1,0x22,0xe5,0xe2,0xa, 0x7b,0x6d,0x66,0xe5,0xe2,0xf5,0xb, 0xe5,0xb, 0x7c,0x6b, +0x6c,0x77,0x6d,0x22,0x22,0x7e,0x73,0x5, 0x78,0xa, 0x27,0x1b,0x24,0xa, 0x3c,0xbd, +0x32,0x7e,0x17,0x1, 0xfd,0x1a,0x2, 0x22,0xe5,0x8, 0xa, 0x3b,0x9, 0x23,0x2, 0x7e, +0x7a,0x21,0xc, 0x7e,0x30,0x4, 0xac,0x23,0x22,0x1a,0x0, 0x7e,0x7f,0x2, 0xb7,0x7f, +0x17,0x12,0x0, 0x78,0x7e,0xf, 0x2, 0xbb,0x22,0xb, 0x28,0x10,0x2d,0x10,0x1b,0x28, +0x10,0xb, 0xe0,0xbe,0xe0,0x3, 0x22,0x7e,0x14,0x0, 0xc, 0xad,0x13,0x7e,0x50,0x4, +0xac,0x5e,0x2d,0x21,0x22,0xad,0x3f,0x7c,0x76,0x7c,0x65,0xa, 0x24,0x7d,0xd3,0x22, +0x7e,0x90,0x5, 0xac,0x93,0x49,0x34,0x0, 0x3f,0x22,0x7e,0xb3,0x2, 0xa4,0x54,0x1, +0x7e,0x70,0x1, 0x22,0x7f,0x71,0x7e,0x8, 0x0, 0x2, 0x2, 0x0, 0xe5,0x7e,0x4, 0x0, +0x3, 0xb, 0x28,0x10,0x8d,0x10,0x22,0x7e,0x30,0x5, 0xac,0x3d,0x2e,0x14,0x2, 0xaf, +0x22,0x1e,0xb0,0x54,0x1, 0xa, 0x3b,0x3e,0x34,0x22,0x7a,0x37,0x0, 0x39,0x7e,0x34, +0x0, 0x83,0x22,0x74,0x4, 0xac,0xbc,0x49,0x35,0x1, 0x5b,0x22,0x74,0x4, 0xac,0xbc, +0x49,0x35,0x1, 0x63,0x22,0x59,0x32,0x0, 0xc5,0x49,0x34,0x0, 0x41,0x22,0x59,0x35, +0x0, 0xcf,0x59,0x25,0x0, 0xcd,0x22,0x49,0x31,0x0, 0xcb,0x49,0x21,0x0, 0xc9,0x22, +0x49,0xb1,0x0, 0xcf,0x49,0xa1,0x0, 0xcd,0x22,0x2e,0x10,0xe, 0x74,0x1, 0xa5,0xf7, +0x22,0x7c,0x13,0x2e,0x10,0xc, 0xa5,0xe7,0x22,0x7e,0x34,0x0, 0x3c,0x7a,0x35,0x36, +0x22,0x59,0x34,0x0, 0x2, 0x1b,0x48,0x20,0x22,0x7e,0x31,0xc, 0x74,0x4, 0xac,0x3b, +0x22,0xa, 0x2e,0xa, 0x3f,0x2, 0x0, 0x46,0x53,0xa8,0xac,0x57,0xe8,0x17,0x11,0xd8, diff --git a/drivers/input/touchscreen/focaltech/FT6x06_4Column_Ver0x12_20150227_app.h b/drivers/input/touchscreen/focaltech/FT6x06_4Column_Ver0x12_20150227_app.h new file mode 100644 index 00000000..ff657aab --- /dev/null +++ b/drivers/input/touchscreen/focaltech/FT6x06_4Column_Ver0x12_20150227_app.h @@ -0,0 +1,1285 @@ +0x2, 0x1, 0xee,0x2, 0x3f,0x9, 0x22,0x22,0x2, 0x26,0xba,0x2, 0x0, 0x28,0x1e,0x44, +0x1e,0x44,0x1e,0x44,0x1e,0x44,0x22,0x2, 0x27,0xd1,0x22,0x2, 0x3a,0xad,0x74,0x5, +0xac,0xbf,0x49,0x45,0x0, 0x3e,0x22,0x22,0x32,0xff,0xff,0x2, 0x3e,0x94,0xa2,0xc, +0xe4,0x33,0x22,0x2, 0x47,0x84,0x7e,0x4, 0x0, 0x3, 0xb, 0x28,0x10,0x8d,0x10,0x22, +0xff,0xff,0xff,0x2, 0x3e,0xdd,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, 0xb2,0xd5,0x6e, +0x24,0xff,0xff,0xb, 0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e,0x34,0xff,0xff, +0xb, 0x34,0x8d,0x32,0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d,0x32,0x30,0xd5, +0x6, 0x6e,0x34,0xff,0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d,0x2, 0x7d,0x21, +0xad,0x5, 0x2d,0x12,0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31,0xad,0x10,0x2d, +0x21,0x22,0x6d,0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78,0x27,0x8d,0x31, +0x7d,0x12,0x6d,0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11,0x2d,0x44,0x50, +0x2, 0xa5,0xf, 0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78,0xed,0x7f,0x1, +0x6d,0x22,0x7d,0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, 0x2f,0x0, 0x40, +0x4, 0xbd,0x4, 0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d,0x23,0x7d,0x31, +0x7d,0x10,0x6d,0x0, 0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2,0xd5,0x9f,0x22, +0x9f,0x20,0x7f,0x2, 0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22,0x9f,0x21,0x7f, +0x12,0x12,0x0, 0x94,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12,0x0, 0x94,0x30, +0xd5,0x6, 0x9f,0x22,0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1a,0x1e, +0x54,0x68,0xe, 0xb, 0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15,0x1b,0x54,0x78, +0xf2,0x50,0x6, 0x7e,0x39,0x40,0x7a,0x19,0x40,0x22,0xff,0xff,0xff,0xff,0xfe,0xfe, +0xfe,0xfd,0xfc,0xfc,0xfb,0xfb,0xfa,0xfa,0xfa,0xf9,0xf8,0xf7,0xf7,0xf6,0xf5,0xf5, +0xf4,0xf3,0xf2,0xf2,0xf1,0xf0,0xf0,0xef,0xee,0xed,0xec,0xec,0xeb,0xea,0xe9,0xe7, +0xe5,0xe4,0xe2,0xe0,0xdd,0xd9,0xd6,0x1, 0x2, 0x3, 0x3, 0x4, 0x4, 0x4, 0x5, 0x5, +0x6, 0x6, 0x7, 0x7, 0x7, 0x8, 0x8, 0x9, 0xa, 0xa, 0xb, 0xb, 0xc, 0xd, 0xd, 0xe, +0xf, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x21, +0x23,0x26,0x2a,0x2d,0xff,0xff,0xfe,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfb,0xfa,0xfa, +0xfa,0xf9,0xf8,0xf7,0xf7,0xf6,0xf5,0xf5,0xf4,0xf3,0xf2,0xf2,0xf1,0xf0,0xf0,0xef, +0xee,0xed,0xec,0xec,0xeb,0xea,0xe9,0xe7,0xe5,0xe4,0xe2,0xe0,0xdd,0xdb,0xd8,0xd4, +0xd0,0x1, 0x2, 0x3, 0x3, 0x4, 0x4, 0x4, 0x5, 0x5, 0x6, 0x6, 0x7, 0x7, 0x7, 0x8, +0x8, 0x9, 0xa, 0xa, 0xb, 0xb, 0xc, 0xd, 0xd, 0xe, 0xf, 0xf, 0x10,0x11,0x12,0x13, +0x14,0x15,0x16,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x21,0x23,0x26,0x2a,0x2d,0x75,0x84, +0x1, 0x7e,0x44,0x8, 0x1f,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78,0xf9,0x7e,0xf8,0x5, +0x59,0xc2,0xb, 0x75,0x2e,0x0, 0x75,0x2f,0x0, 0x75,0x30,0x0, 0x75,0x31,0x0, 0x75, +0x32,0x0, 0xc2,0x7, 0xd2,0x8, 0x75,0x33,0x0, 0x75,0x34,0x0, 0x75,0x26,0x0, 0x75, +0x35,0x0, 0x75,0x36,0x0, 0xc2,0xc, 0xd2,0x9, 0xc2,0xa, 0x75,0x37,0x0, 0xc2,0xd, +0xc2,0xe, 0x7e,0x4, 0x0, 0xff,0x7e,0x14,0x3, 0xd, 0xb, 0xa, 0x40,0x5d,0x44,0x68, +0x1a,0x69,0x20,0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29, +0xb0,0xb, 0x24,0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x3a,0x26,0x1a,0x19, +0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0xf, 0xe, 0xd, 0xc, 0xb, 0x1b,0x1c, +0x1d,0x1e,0x1f,0x20,0x21,0x22,0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0x23,0x2, +0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, +0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x5, 0x3, 0x4, 0x3, 0x3, 0x1, 0x1, 0x3, 0x5, +0x5, 0x5, 0xff,0xff,0xff,0xff,0xff,0x22,0x22,0x22,0x20,0x20,0xff,0x22,0x22,0x22, +0x22,0x22,0xff,0xff,0xff,0xff,0xff,0x22,0x22,0x22,0x20,0x20,0xff,0x22,0x22,0x22, +0x22,0x22,0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x7d,0x23, +0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32,0x22,0x7d,0x13, +0x80,0x7, 0x1b,0x24,0x7a,0x19,0xb0,0xb, 0x14,0x4d,0x22,0x78,0xf5,0x22,0x10,0x10, +0x10,0x1c,0x19,0x14,0x10,0xe, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x0, 0x18,0x4, +0xeb,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x5, 0x59,0x0, 0x0, 0x1, +0x3, 0xe8,0x0, 0x0, 0x24,0x3, 0xe9,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x24,0x4, 0xd, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x1, 0x4, 0xd5,0x0, 0x0, 0x1, 0x4, 0xd7,0x0, 0x0, 0x1, 0x4, +0xd8,0x0, 0x0, 0x1, 0x4, 0xda,0x0, 0x0, 0x1, 0x5, 0x51,0x0, 0x0, 0x1, 0x5, 0x52, +0xff,0x0, 0x1, 0x5, 0x53,0x10,0x0, 0x1, 0x5, 0x54,0x8, 0x0, 0x1, 0x5, 0x38,0x0, +0x0, 0x10,0x5, 0x39,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff, +0x7f,0xff,0x7f,0xff,0x0, 0x0, 0xca,0x3b,0x7e,0xa3,0x0, 0x54,0x7c,0xca,0x5e,0xc0, +0xf, 0x7c,0xba,0xc4,0x54,0xf, 0xf5,0x8, 0x4c,0xcc,0x78,0x2f,0x12,0x7, 0x4, 0xe5, +0x8, 0xbe,0xb0,0x0, 0x38,0x2, 0xc1,0xee,0x6c,0xff,0x7e,0xa0,0xff,0x7e,0x70,0x5, +0xac,0x7f,0x19,0xa3,0x0, 0x76,0xb, 0xf0,0xbe,0xf0,0x2, 0x78,0xf0,0xd2,0x5, 0xc2, +0x3, 0x6d,0x33,0x7a,0x35,0x2e,0x75,0x30,0x0, 0xc1,0xee,0x6c,0xff,0x7e,0x70,0xff, +0x74,0x5, 0xac,0xbf,0x19,0x75,0x2, 0xb2,0x7e,0x34,0x7f,0xff,0x59,0x35,0x2, 0xae, +0x59,0x35,0x2, 0xb0,0xb, 0xf0,0xbe,0xf0,0x2, 0x78,0xe2,0x6c,0xff,0x80,0x23,0x7e, +0x50,0x5, 0xac,0x5f,0x7d,0x12,0x2e,0x14,0x0, 0x3e,0xb, 0x18,0x30,0x12,0x25,0x20, +0x1b,0x18,0x30,0x2e,0x24,0x0, 0x40,0xb, 0x28,0x30,0x12,0x25,0x20,0x1b,0x28,0x30, +0xb, 0xf0,0xbc,0xcf,0x38,0xd9,0xe5,0x8, 0xbc,0xbc,0x68,0x5, 0x6d,0x33,0x7a,0x35, +0x2e,0x6c,0xff,0x12,0x7, 0x49,0x50,0xf, 0xa, 0x37,0x9, 0xb3,0x0, 0xc0,0x70,0x7, +0x6d,0x33,0x7a,0x35,0x2e,0x80,0x7, 0xb, 0xf0,0xbe,0xf0,0x2, 0x40,0xe5,0xe5,0x8, +0x70,0x23,0x6c,0xff,0x80,0x19,0x12,0x0, 0x1e,0x59,0x45,0x0, 0x72,0x49,0x45,0x0, +0x40,0x59,0x45,0x0, 0x74,0x9, 0x75,0x0, 0x42,0x19,0x75,0x0, 0x76,0xb, 0xf0,0xbc, +0xcf,0x38,0xe3,0xa1,0x8e,0x6c,0xdd,0x6c,0xff,0x6c,0xee,0x7e,0x70,0x5, 0xac,0x7e, +0x9, 0xa3,0x0, 0x76,0x7e,0x50,0x5, 0xac,0x5f,0x9, 0xb2,0x0, 0x42,0xbc,0xba,0x78, +0x16,0xbe,0xb0,0xff,0x68,0x11,0xbe,0xd0,0x2, 0x50,0x13,0x2e,0x34,0x0, 0x72,0x12, +0x7, 0x55,0x12,0x1, 0x19,0x80,0x7, 0xb, 0xe0,0xbe,0xe0,0x2, 0x40,0xcd,0xbe,0xe0, +0x2, 0x78,0x14,0xbe,0xd0,0x2, 0x50,0xf, 0x7e,0x70,0x5, 0xac,0x7f,0x2e,0x34,0x0, +0x3e,0x12,0x7, 0x55,0x12,0x1, 0x19,0xb, 0xd0,0xb, 0xf0,0xbe,0xf0,0x2, 0x78,0xa9, +0x6c,0xff,0x7e,0x30,0x5, 0xac,0x3f,0x7d,0x31,0x2e,0x34,0x2, 0xae,0x2e,0x14,0x0, +0x72,0x74,0x5, 0x12,0x1, 0x19,0xb, 0xf0,0xbe,0xf0,0x2, 0x78,0xe5,0x20,0x3, 0x6e, +0x6c,0xff,0x80,0x66,0x7c,0xef,0x6c,0xdd,0x80,0x21,0x7e,0x90,0x5, 0xac,0x9f,0x9, +0xa4,0x0, 0x76,0x7e,0x70,0x5, 0xac,0x7d,0x9, 0xb3,0x0, 0x42,0xbc,0xba,0x78,0x9, +0xbe,0xa0,0xff,0x68,0x4, 0x7c,0xed,0x80,0x6, 0xb, 0xd0,0xbc,0xcd,0x38,0xdb,0xbe, +0xe0,0x2, 0x40,0x2, 0x7c,0xef,0x7e,0x90,0x5, 0xac,0x9e,0x49,0x34,0x0, 0x40,0xbe, +0x34,0x32,0x0, 0x50,0xa, 0x49,0x24,0x0, 0x74,0xbe,0x24,0x32,0x0, 0x40,0x12,0x49, +0x24,0x0, 0x3e,0x74,0x5, 0xac,0xbf,0x59,0x25,0x0, 0x72,0x59,0x35,0x0, 0x74,0x80, +0x7, 0x7c,0xbf,0x7c,0x7e,0x12,0x9, 0x1a,0xb, 0xf0,0xbc,0xcf,0x38,0x96,0x6c,0xff, +0x74,0x5, 0xac,0xbf,0x49,0x45,0x0, 0x72,0x12,0x0, 0xe, 0x59,0x45,0x0, 0x3e,0x49, +0x45,0x0, 0x74,0x12,0x0, 0xe, 0x59,0x45,0x0, 0x40,0x9, 0x75,0x0, 0x76,0x19,0x75, +0x0, 0x42,0xb, 0xf0,0xbe,0xf0,0x2, 0x78,0xd7,0xbe,0xc0,0x0, 0x38,0x2, 0xc1,0xce, +0x6c,0xff,0x12,0x0, 0x1e,0x59,0x45,0x0, 0x68,0x49,0x45,0x0, 0x40,0x59,0x45,0x0, +0x6a,0x9, 0x75,0x0, 0x42,0x19,0x75,0x0, 0x6c,0xa, 0x37,0xbe,0x34,0x0, 0x2, 0x50, +0xf, 0x49,0x25,0x0, 0x6a,0xbe,0x24,0x3, 0x20,0x40,0x5, 0x6d,0x22,0x7a,0x25,0x2e, +0x7e,0x15,0x2e,0x4d,0x11,0x78,0x41,0xbe,0xf0,0x1, 0x78,0x7, 0x7d,0x21,0xb, 0x24, +0x7a,0x25,0x2e,0xbe,0x34,0x0, 0x2, 0x40,0x2, 0xc1,0xc5,0x6c,0xee,0x7e,0x50,0x5, +0xac,0x5f,0x49,0x42,0x0, 0x68,0x7e,0xf4,0x0, 0xc, 0xad,0xf3,0x7e,0x10,0x4, 0xac, +0x1e,0x2d,0xf, 0x59,0x40,0x4, 0xeb,0x49,0x22,0x0, 0x6a,0x59,0x20,0x4, 0xed,0xb, +0xe0,0xbe,0xe0,0x3, 0x78,0xd7,0xc1,0xc5,0xbe,0x34,0x0, 0x2, 0x50,0x7a,0x74,0x5, +0xac,0xbf,0x49,0x25,0x0, 0x68,0x7e,0x4, 0x0, 0x3, 0x8d,0x10,0x7d,0x50,0x3e,0x54, +0x3e,0x54,0x7e,0x14,0x0, 0xc, 0xad,0x13,0x2d,0x15,0x59,0x21,0x4, 0xeb,0x74,0x5, +0xac,0xbf,0x49,0x25,0x0, 0x6a,0x59,0x21,0x4, 0xed,0x6d,0x22,0x74,0x5, 0xac,0xbf, +0x59,0x25,0x0, 0x68,0x6c,0xee,0x12,0x7, 0x6f,0x49,0x2, 0x4, 0xeb,0x7e,0x50,0x5, +0xac,0x5f,0x2e,0x24,0x0, 0x68,0x12,0x7, 0x61,0x78,0xeb,0x12,0x0, 0x36,0x1b,0x28, +0x10,0x6d,0x22,0x74,0x5, 0xac,0xbf,0x59,0x25,0x0, 0x6a,0x6c,0xee,0x12,0x7, 0x6f, +0x49,0x2, 0x4, 0xed,0x7e,0x50,0x5, 0xac,0x5f,0x2e,0x24,0x0, 0x6a,0x12,0x7, 0x61, +0x78,0xeb,0x12,0x0, 0x36,0x1b,0x28,0x10,0xbe,0xf0,0x1, 0x78,0x8, 0x7e,0x25,0x2e, +0xb, 0x24,0x7a,0x25,0x2e,0xb, 0xf0,0xbe,0xf0,0x2, 0x68,0x2, 0xa1,0xc2,0xd2,0x0, +0x6c,0xff,0x12,0x7, 0x49,0x50,0x10,0xa, 0x37,0x9, 0xb3,0x0, 0xc0,0xb4,0x1, 0x7, +0x6d,0x33,0x7a,0x35,0x2e,0x80,0x7, 0xb, 0xf0,0xbe,0xf0,0x2, 0x40,0xe4,0xda,0x3b, +0x22,0x7d,0x14,0x1a,0x2, 0x1a,0x0, 0x7f,0x17,0x9f,0x10,0x7d,0x1d,0x1a,0x2, 0x1a, +0x0, 0x2, 0x0, 0x78,0x12,0x7, 0x7d,0x78,0x32,0x20,0xb, 0x2f,0x6c,0xaa,0x7e,0x44, +0x7f,0xff,0x7e,0x70,0x4, 0xac,0x7a,0x59,0x43,0x4, 0xdf,0x59,0x43,0x4, 0xe1,0x6d, +0x33,0x7e,0x50,0x2, 0xac,0x5a,0x59,0x32,0x4, 0xe7,0x7e,0x34,0x1, 0x0, 0x59,0x32, +0x4, 0xdb,0xb, 0xa0,0xbe,0xa0,0x2, 0x78,0xd5,0xd2,0xb, 0x22,0x74,0x5, 0xac,0xbe, +0x49,0x35,0x0, 0x40,0x9d,0x32,0x2, 0x2, 0xde,0x74,0x5, 0xac,0xbf,0x9, 0x75,0x0, +0x6c,0xbe,0x70,0x2, 0x22,0x7e,0x30,0x5, 0xac,0x3d,0x2e,0x14,0x2, 0xae,0x74,0x5, +0x22,0xb, 0x28,0x10,0x2d,0x10,0x1b,0x28,0x10,0xb, 0xe0,0xbe,0xe0,0x3, 0x22,0x7e, +0x14,0x0, 0xc, 0xad,0x13,0x7e,0x50,0x4, 0xac,0x5e,0x2d,0x21,0x22,0x7e,0xb3,0x0, +0x54,0x54,0xf, 0x22,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xca,0x3b,0x7f,0x71,0x7c,0xab,0x7e,0x30,0xfe,0x7e,0xe0,0x2, 0x7e,0x24,0x0, 0x87, +0x7a,0x25,0x8, 0x7e,0x4, 0x0, 0x8a,0x7a,0x5, 0xa, 0x7e,0xd4,0x0, 0x8e,0x7d,0x6d, +0x7e,0x34,0x0, 0x8c,0x7d,0x83,0x7d,0x92,0x7d,0x40,0x7d,0xad,0x7e,0x34,0x0, 0x80, +0x7d,0xb3,0x7e,0x37,0x1, 0xfc,0x7d,0xd3,0x12,0x46,0x9a,0x7d,0xc3,0xa, 0x3a,0x12, +0xb, 0xb7,0x7c,0xb5,0x7c,0xfb,0xbe,0xf0,0x8, 0x50,0x4a,0x1a,0x13,0x12,0xb, 0x64, +0x48,0x2a,0xbe,0x78,0x1, 0xa, 0x48,0x2, 0x80,0x3, 0x7e,0x45,0xa, 0x12,0x6, 0xf1, +0x7d,0x54,0x12,0xb, 0x75,0xbe,0x78,0x1, 0x5e,0x8, 0x7c,0x7f,0x17,0x9e,0x18,0x1, +0x5e,0x12,0xb, 0xa9,0x2e,0x18,0x1, 0x5e,0x7f,0x71,0x80,0x6b,0xbe,0x78,0x0, 0x89, +0x18,0x9, 0x7d,0x19,0x12,0x6, 0xf3,0x7d,0x59,0x80,0x27,0x7e,0x45,0x8, 0x12,0x6, +0xf1,0x7d,0x54,0x80,0x1d,0x1a,0x1e,0x12,0xb, 0x64,0x48,0x1b,0xbe,0x78,0x1, 0xc, +0x48,0x9, 0x7d,0x1b,0x12,0x6, 0xf3,0x7d,0x5b,0x80,0x7, 0x7d,0x18,0x12,0x6, 0xf3, +0x7d,0x58,0x12,0xb, 0x75,0x80,0x30,0xbe,0x78,0x0, 0x87,0x18,0x9, 0x7d,0x1a,0x12, +0x6, 0xf3,0x7d,0x5a,0x80,0x7, 0x7d,0x16,0x12,0x6, 0xf3,0x7d,0x56,0x12,0xb, 0x75, +0xbe,0x78,0x0, 0x32,0x58,0x11,0x7e,0x58,0x0, 0x32,0x7f,0x15,0x9f,0x17,0x12,0xb, +0xa9,0x7f,0x15,0x9f,0x17,0x7f,0x71,0xbe,0x78,0x0, 0x0, 0x58,0x6, 0x9f,0x11,0x7f, +0x71,0x80,0x11,0x7d,0x1d,0x12,0xb, 0x6e,0x48,0xa, 0x7d,0x3d,0x1a,0x26,0x1a,0x24, +0x1b,0x1c,0x7f,0x71,0xbe,0xf0,0x8, 0x40,0xc, 0x7d,0x1d,0x1a,0x2, 0x1a,0x0, 0x7f, +0x17,0x2f,0x10,0x7f,0x71,0x7f,0x17,0xda,0x3b,0x22,0xca,0xd8,0xca,0x79,0x7c,0xe7, +0x7c,0xdb,0x74,0x5, 0xac,0xbd,0x49,0x25,0x0, 0x74,0x12,0x7, 0x3c,0x7d,0x3, 0x12, +0xb, 0x89,0x2d,0x3, 0x74,0x5, 0xac,0xbd,0x9, 0xf5,0x0, 0x76,0xbe,0xf0,0x2, 0x40, +0x2, 0x6c,0xff,0x74,0x4, 0xac,0xbf,0x49,0x25,0x4, 0xe1,0x12,0x7, 0x3c,0x7d,0xd3, +0x74,0x4, 0xac,0xbf,0x49,0x25,0x4, 0xdf,0x12,0xb, 0x91,0x2d,0xd3,0x7e,0x17,0x0, +0x65,0xbd,0x1d,0x38,0x6, 0x7e,0xf4,0x1, 0x0, 0x80,0x19,0x7d,0x30,0x6d,0x22,0x7c, +0x56,0x7c,0x67,0x6c,0x77,0x12,0x0, 0x92,0x7d,0xf3,0xbe,0xf4,0x0, 0x10,0x50,0x4, +0x7e,0xf4,0x0, 0x10,0xbe,0xf4,0x1, 0x0, 0x28,0x4, 0x7e,0xf4,0x1, 0x0, 0x74,0x2, +0xac,0xbf,0x49,0x45,0x4, 0xe7,0xbd,0x4d,0x28,0x6, 0x49,0xf5,0x4, 0xdb,0x80,0x4, +0x59,0xf5,0x4, 0xdb,0x59,0xd5,0x4, 0xe7,0x74,0x5, 0xac,0xbd,0x49,0xe5,0x0, 0x3e, +0x1e,0xe4,0x1e,0xe4,0x1e,0xe4,0x1e,0xe4,0xbe,0xe4,0x0, 0x14,0x28,0x71,0xbe,0xe4, +0x1, 0xcc,0x50,0x6b,0xa, 0xed,0x9, 0x3e,0x0, 0x3a,0xa, 0x33,0x12,0xb, 0xb7,0x7c, +0xa5,0xa, 0x33,0x12,0x2f,0xf1,0x7c,0x35,0x7e,0x90,0x4, 0xac,0x9a,0x49,0x34,0x1, +0x5e,0x49,0x24,0x1, 0x5c,0x4c,0x33,0x68,0xa, 0x49,0xd4,0x1, 0x5a,0x49,0xc4,0x1, +0x58,0x2f,0x16,0xbe,0x30,0x7, 0x68,0xa, 0x49,0x14,0x1, 0x62,0x49,0x4, 0x1, 0x60, +0x2f,0x10,0x7e,0x8, 0x1, 0xf4,0x12,0x0, 0xe5,0x7d,0xe3,0xbe,0xe4,0x0, 0xb4,0x28, +0x6, 0x7e,0xe4,0x0, 0xb4,0x80,0xe, 0xbe,0xe4,0x0, 0x3c,0x28,0x6, 0x9e,0xe4,0x0, +0x14,0x80,0x2, 0x6d,0xee,0xbd,0xef,0x50,0x4, 0x9d,0xfe,0x80,0x2, 0x6d,0xff,0x12, +0xb, 0x89,0x12,0xb, 0x9e,0x7e,0x90,0x5, 0xac,0x9d,0x49,0xe4,0x0, 0x72,0x74,0x5, +0xac,0xbe,0x49,0xc5,0x0, 0x3e,0xbd,0xce,0x28,0xf, 0x7d,0x24,0x2e,0x24,0x0, 0x72, +0x7d,0x3e,0x2d,0x3d,0x1b,0x28,0x30,0x80,0xb, 0x7d,0xc4,0x2e,0xc4,0x0, 0x72,0x9d, +0xed,0x1b,0xc8,0xe0,0x49,0x24,0x0, 0x74,0x12,0x7, 0x40,0x12,0xb, 0x9e,0x7e,0x30, +0x5, 0xac,0x3d,0x49,0x21,0x0, 0x74,0x7e,0x70,0x5, 0xac,0x7e,0x49,0xe3,0x0, 0x40, +0xbd,0xe2,0x28,0xf, 0x7d,0xc1,0x2e,0xc4,0x0, 0x74,0x7d,0x2, 0x2d,0xd, 0x1b,0xc8, +0x0, 0x80,0x9, 0x2e,0x14,0x0, 0x74,0x9d,0x2d,0x1b,0x18,0x20,0x49,0x43,0x0, 0x3e, +0x74,0x4, 0xac,0xbf,0x59,0x45,0x4, 0xdf,0x59,0xe5,0x4, 0xe1,0xda,0x79,0xda,0xd8, +0x22,0x7d,0xf3,0xbe,0xf4,0x0, 0x47,0x38,0x2b,0x7e,0x54,0x0, 0x47,0x9d,0x5f,0x6d, +0x44,0x7e,0x14,0x1, 0x80,0x12,0xb, 0x56,0xbe,0x28,0x0, 0x18,0x28,0x4, 0x9f,0x22, +0x80,0x8, 0x7e,0x18,0x0, 0x18,0x9f,0x12,0x7f,0x21,0xbe,0x28,0x0, 0x0, 0x50,0x6d, +0x9f,0x22,0x80,0x69,0xbe,0xf4,0x1, 0xb8,0x40,0x29,0x7d,0x5f,0x9e,0x54,0x1, 0xb8, +0x6d,0x44,0x7e,0x14,0x1, 0x80,0x12,0xb, 0x56,0xbe,0x28,0x0, 0x18,0x40,0x4, 0x7e, +0x28,0x0, 0x17,0xbe,0x28,0x0, 0x18,0x28,0x4, 0x7e,0x28,0x0, 0x18,0x2e,0x28,0x1, +0xc8,0x80,0x3a,0xbe,0xf4,0x0, 0xff,0x50,0x1d,0x7e,0x54,0x0, 0xff,0x9d,0x5f,0x12, +0xb, 0x50,0x7e,0x18,0x0, 0xf0,0x9f,0x12,0x7f,0x21,0xbe,0x28,0x0, 0x18,0x50,0x1d, +0x7e,0x28,0x0, 0x18,0x80,0x17,0x7d,0x5f,0x9e,0x54,0x0, 0xff,0x12,0xb, 0x50,0x2e, +0x28,0x0, 0xf0,0xbe,0x28,0x1, 0xc8,0x28,0x4, 0x7e,0x28,0x1, 0xc8,0x7d,0x35,0x22, +0x6d,0x44,0x7e,0x14,0x1, 0x1f,0x7f,0x12,0x12,0x0, 0x89,0x7f,0x21,0x7c,0xba,0x7c, +0xa9,0xa, 0x48,0x22,0x1a,0x2, 0x7f,0x17,0x2f,0x10,0x7f,0x71,0x7d,0x1c,0x1a,0x2, +0x1a,0x0, 0xbf,0x70,0x22,0x3e,0x54,0x1a,0x4a,0x1a,0x48,0x7d,0x1d,0x1a,0x2, 0x1a, +0x0, 0x9f,0x2, 0x12,0x0, 0xe5,0x7f,0x71,0x22,0x74,0x5, 0xac,0xbd,0x49,0x25,0x0, +0x72,0x74,0x5, 0xac,0xbe,0x49,0x35,0x0, 0x3e,0x9d,0x32,0x2, 0x2, 0xde,0xad,0x3f, +0x7c,0x76,0x7c,0x65,0xa, 0x24,0x7d,0xd3,0x22,0x7f,0x71,0x7e,0x8, 0x0, 0x2, 0x12, +0x0, 0xe5,0x7f,0x71,0x22,0xa, 0x3b,0x7e,0x24,0x0, 0x10,0x2, 0x0, 0x46,0xca,0xd8, +0xca,0x79,0x12,0x7, 0x7d,0x7c,0xb, 0x78,0x2f,0x6c,0x11,0x6d,0x11,0x74,0x2, 0xac, +0xb1,0x59,0x15,0x5, 0x32,0x7e,0xa0,0xff,0x7e,0x30,0x5, 0xac,0x31,0x19,0xa1,0x5, +0x2c,0x7e,0xb3,0x5, 0x38,0x70,0x3, 0xe4,0x80,0x2, 0x74,0x2, 0xa, 0x11,0x19,0xb1, +0x5, 0x36,0xb, 0x10,0xa5,0xb9,0x2, 0xd3,0x6c,0x11,0xa1,0x7, 0x74,0x5, 0xac,0xb1, +0x9, 0xf5,0x0, 0x42,0xbe,0xf0,0x2, 0x40,0x2, 0xa1,0x5, 0xa, 0x1f,0x9, 0xb1,0x0, +0xc0,0xbe,0xb0,0x1, 0x78,0x2, 0xa1,0x5, 0x6c,0xee,0x74,0x5, 0xac,0xbe,0x9, 0xd5, +0x5, 0x2c,0xbc,0xdf,0x68,0x2, 0x81,0xfc,0x49,0x25,0x5, 0x2a,0x74,0x5, 0xac,0xb1, +0x12,0x7, 0x40,0x7d,0x43,0x74,0x5, 0xac,0xbe,0x49,0x25,0x5, 0x28,0x74,0x5, 0xac, +0xb1,0x12,0xb, 0x95,0x2d,0x43,0xa, 0x1d,0x9, 0xa1,0x5, 0x36,0xbe,0xa0,0x0, 0x28, +0x17,0x7e,0x30,0x2, 0xac,0x3d,0x59,0x41,0x5, 0x32,0xa, 0x1d,0x2e,0x14,0x5, 0x36, +0x7c,0xba,0x14,0x7a,0x19,0xb0,0xa1,0x5, 0x7e,0x30,0x2, 0xac,0x3d,0x49,0x31,0x5, +0x32,0xbe,0x34,0x0, 0x32,0x28,0x8, 0xbe,0x44,0x0, 0x32,0x28,0x2, 0x80,0x10,0x7d, +0x23,0x2e,0x24,0x0, 0x32,0xbd,0x24,0x50,0x12,0xbe,0x34,0x0, 0x32,0x28,0xc, 0x59, +0x41,0x5, 0x32,0x74,0x1, 0x7a,0xb3,0x5, 0x38,0x80,0x6a,0xbe,0x44,0x0, 0xc8,0x28, +0x51,0xe4,0x7a,0xb3,0x5, 0x38,0xa, 0x1f,0x9, 0xb1,0x0, 0xc0,0x70,0x4, 0x74,0x3, +0x80,0x2, 0x74,0x1, 0xa, 0x1f,0x19,0xb1,0x0, 0xc0,0x7e,0x70,0x5, 0xac,0x71,0x2e, +0x34,0x0, 0x3e,0x7e,0x14,0x2, 0xae,0x74,0x5, 0x12,0x1, 0x19,0xbe,0x0, 0x0, 0x28, +0x21,0x1b,0x0, 0x7e,0x70,0x5, 0xac,0x70,0x2e,0x34,0x0, 0x3e,0x7e,0x30,0x5, 0xac, +0x31,0x12,0xd, 0x73,0x7e,0x34,0x2, 0xae,0x7e,0x30,0x5, 0xac,0x30,0x12,0xd, 0x73, +0x1b,0x10,0x74,0x2, 0xac,0xbd,0x59,0x45,0x5, 0x32,0x80,0x9, 0xb, 0xe0,0xbe,0xe0, +0x2, 0x50,0x2, 0x81,0x1a,0xb, 0x10,0x12,0x3d,0x8e,0x54,0xf, 0xa, 0x5b,0xa, 0x11, +0xbd,0x15,0x58,0x2, 0x61,0xfc,0x7c,0x60,0x12,0x3d,0x6, 0x6c,0x11,0x7e,0x30,0x5, +0xac,0x31,0x7d,0x31,0x2e,0x34,0x0, 0x3e,0x2e,0x14,0x5, 0x28,0x74,0x5, 0x12,0x1, +0x19,0xb, 0x10,0xbe,0x10,0x2, 0x40,0xe5,0xda,0x79,0xda,0xd8,0x22,0xca,0x79,0x7e, +0xf3,0x0, 0x54,0x5e,0xf0,0xf, 0xbe,0xf0,0x0, 0x28,0x25,0x6c,0xee,0x80,0x1d,0x1a, +0x2e,0x7e,0x34,0x0, 0x5, 0xad,0x32,0x49,0x33,0x0, 0x3e,0x12,0xa, 0xb1,0x1a,0xe, +0x7e,0x14,0x0, 0x5, 0xad,0x10,0x59,0x31,0x0, 0x3e,0xb, 0xe0,0xbc,0xfe,0x18,0xdf, +0xda,0x79,0x22,0x2e,0x14,0x0, 0x3e,0x74,0x5, 0x2, 0x1, 0x19,0x12,0xf, 0x2d,0x12, +0x26,0xf9,0x7a,0x37,0x2, 0xac,0x12,0x3b,0x47,0xe4,0x12,0x20,0x77,0x12,0x3e,0xee, +0x12,0x4d,0xb4,0x12,0xe, 0xb2,0x12,0x38,0x2d,0x12,0xf, 0x38,0x12,0x46,0xf0,0x7e, +0xb3,0x3, 0xc4,0xb4,0x1, 0x2, 0x80,0x2, 0xc1,0xa6,0x7e,0xb3,0x2, 0x3c,0x60,0x28, +0xb4,0x1, 0xb, 0x12,0x26,0xd2,0x74,0x3c,0x7a,0xb3,0x3, 0xe8,0x80,0x3, 0x12,0xf, +0xef,0x7e,0x34,0x4, 0xd, 0x7e,0x24,0x0, 0x24,0xe4,0x12,0x2, 0xee,0x7e,0x34,0x3, +0xe9,0x7e,0x24,0x0, 0x24,0x12,0x2, 0xee,0x12,0x27,0x14,0x12,0x38,0x14,0x12,0x27, +0x9d,0x44,0x40,0x12,0x10,0x58,0x12,0x18,0x33,0x12,0x20,0x1f,0x12,0x1e,0x27,0x12, +0x13,0xab,0x12,0x3c,0x2, 0x7e,0xb3,0x2, 0x54,0x30,0xe1,0x7, 0x12,0x3e,0x48,0x7a, +0xb3,0x0, 0x54,0x12,0x40,0xf2,0x12,0x7, 0x7d,0x12,0x37,0xf9,0x7e,0x34,0x0, 0xcc, +0x7e,0x24,0x1, 0xa8,0x7e,0xb3,0x2, 0x58,0x14,0x12,0x2c,0x2e,0x7e,0xb3,0x3, 0xe8, +0x60,0x5, 0x14,0x7a,0xb3,0x3, 0xe8,0x7e,0xb3,0x3, 0xe8,0x60,0x9, 0x74,0xa, 0x12, +0xe, 0xa9,0x74,0x1e,0x80,0x5, 0x12,0xe, 0xa7,0x74,0xf, 0x7a,0xb3,0x2, 0x36,0x12, +0x3f,0xc1,0x12,0x27,0xf7,0x12,0x0, 0x6, 0x12,0x18,0xa3,0x12,0x17,0xf5,0x7e,0xb3, +0x2, 0x55,0x30,0xe0,0x21,0x7e,0xa3,0x0, 0x54,0x7c,0xba,0x54,0xf, 0xbe,0xb0,0x2, +0x40,0x14,0x7c,0xba,0xc4,0x54,0xf, 0xbe,0xb0,0x2, 0x50,0xa, 0x7c,0xba,0x54,0xf0, +0x44,0x1, 0x7a,0xb3,0x0, 0x54,0x12,0x3d,0x95,0x12,0xd, 0x3d,0x12,0x42,0xb, 0x12, +0x3c,0x6d,0x12,0x3d,0x40,0x12,0x48,0x1c,0x12,0xb, 0xbe,0x12,0x4a,0xea,0x12,0x3, +0xc6,0x12,0x44,0xbf,0x7e,0xb3,0x0, 0x62,0x12,0x35,0xf3,0x12,0x25,0xd1,0x12,0x25, +0xa3,0x12,0x4e,0xd9,0xa1,0x9f,0x22,0x74,0x5, 0x7a,0xb3,0x2, 0x35,0x7a,0xb3,0x2, +0x34,0x22,0x7e,0x34,0x0, 0x3a,0x7e,0x24,0x0, 0x1c,0xe4,0x12,0x2, 0xee,0x7e,0x34, +0x0, 0x68,0x7e,0x24,0x0, 0x17,0x12,0x2, 0xee,0x6d,0x11,0x12,0xf, 0x14,0x2e,0x34, +0x0, 0x3e,0x12,0xf, 0x1b,0x12,0xf, 0x14,0x2e,0x34,0x0, 0x68,0x12,0xf, 0x1b,0x12, +0xf, 0x14,0x2e,0x34,0x0, 0x72,0x12,0xf, 0x1b,0xb, 0x14,0xbe,0x14,0x0, 0x2, 0x40, +0xda,0x75,0x28,0x0, 0x75,0x29,0x0, 0xc2,0x1, 0x75,0x27,0x0, 0x6d,0x33,0x7a,0x37, +0x0, 0x7f,0x7e,0x24,0x7, 0xd0,0x7a,0x27,0x0, 0x38,0x7a,0x37,0x0, 0x63,0xe4,0x7a, +0xb3,0x0, 0x81,0x22,0x7e,0x34,0x0, 0x5, 0xad,0x31,0x22,0x7e,0x24,0x7f,0xff,0x1b, +0x38,0x20,0x59,0x23,0x0, 0x2, 0x74,0xff,0x19,0xb3,0x0, 0x4, 0x22,0x6d,0x33,0x7a, +0x37,0x0, 0x7f,0x7e,0x34,0x7, 0xd0,0x22,0x12,0x22,0x76,0x12,0x16,0x25,0x12,0x3f, +0x8d,0x2, 0xf, 0x44,0xca,0x79,0x12,0x26,0xcb,0x7a,0xb3,0x2, 0xab,0x7e,0x34,0x2, +0xae,0x7e,0x24,0x0, 0x48,0x12,0x50,0x5, 0x30,0xe0,0x3f,0x44,0x4, 0x7a,0xb3,0x2, +0x54,0x6c,0xee,0x80,0x28,0x12,0x10,0x5c,0x6c,0xff,0x80,0x1a,0x7e,0x50,0x2, 0xac, +0x5f,0x49,0xf2,0x2, 0xae,0x6d,0xee,0x12,0x17,0xac,0xbf,0x7, 0x8, 0x6, 0x7d,0x31, +0x59,0x32,0x2, 0xae,0xb, 0xf0,0x12,0xf, 0xe8,0x38,0xe1,0xb, 0xe0,0x7e,0x73,0x2, +0xc, 0xbc,0x7e,0x38,0xd0,0x12,0x39,0x61,0x80,0x31,0x7e,0xe0,0x1, 0x12,0x10,0x5c, +0x6c,0xff,0x80,0x1b,0x12,0x16,0x18,0x12,0x50,0x39,0x7d,0x13,0x7e,0x50,0x2, 0xac, +0x5f,0x2e,0x24,0x2, 0xae,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0xb, 0xf0,0x12, +0xf, 0xe8,0x38,0xe0,0xb, 0xe0,0xbe,0xe0,0x4, 0x28,0xd2,0x6c,0xee,0x80,0xe, 0x74, +0x2, 0xac,0xbe,0x49,0x35,0x2, 0xae,0x59,0x35,0x1, 0xa8,0xb, 0xe0,0x7e,0x73,0x2, +0x58,0xbc,0x7e,0x38,0xea,0xda,0x79,0x22,0x7e,0x73,0x2, 0x58,0xbc,0x7f,0x22,0xca, +0xf8,0x7e,0xa3,0x2, 0xab,0x7c,0xba,0x23,0x23,0x7c,0xfb,0x5e,0xf0,0x1, 0x7c,0xba, +0x54,0xbf,0x12,0x10,0x58,0x6c,0xaa,0x80,0x2d,0x7e,0xb3,0x2, 0x3c,0xb4,0x2, 0x8, +0xa, 0x3a,0x9, 0xb3,0x3, 0xe9,0x60,0x1c,0x7e,0x90,0x4, 0xac,0x9a,0x49,0x34,0x0, +0xce,0x7e,0x50,0x2, 0xac,0x5a,0x59,0x32,0x1, 0xa8,0x9f,0x11,0x59,0x34,0x0, 0xce, +0x59,0x24,0x0, 0xcc,0xb, 0xa0,0x12,0x40,0x69,0x38,0xce,0x7c,0x6f,0x5e,0x60,0x1, +0x7c,0xb6,0x3, 0x3, 0x54,0xc0,0x7c,0x6b,0x7e,0x73,0x2, 0xab,0x5e,0x70,0xbf,0x4c, +0x76,0x7a,0x73,0x2, 0xab,0xda,0xf8,0x22,0x7a,0xb3,0x2, 0xab,0xca,0x3b,0x12,0x0, +0x2e,0x70,0x17,0xf5,0x8, 0x80,0xc, 0x7e,0x18,0x30,0x39,0x12,0x4f,0xfe,0x12,0x50, +0xe, 0x5, 0x8, 0x12,0x13,0x7b,0x38,0xef,0x61,0x78,0x7e,0xb3,0x2, 0xa3,0x30,0xe1, +0x5, 0x75,0xd, 0x2, 0x80,0x3, 0x75,0xd, 0x1, 0x7e,0xa3,0x2, 0xab,0x7c,0xba,0x30, +0xe7,0xe, 0x7e,0xb3,0x2, 0x54,0x30,0xe0,0x7, 0x7e,0x35,0x35,0x4d,0x33,0x78,0xe, +0x7e,0xb3,0x2, 0x54,0x20,0xe0,0x2, 0x41,0x1d,0x20,0xe2,0x2, 0x41,0x1d,0x7c,0xba, +0x30,0xe7,0x8, 0x7e,0xb3,0x2, 0xe, 0xf5,0xe, 0x80,0x6, 0x7e,0xb3,0x2, 0xf, 0xf5, +0xe, 0x7e,0x35,0x35,0xbe,0x34,0x0, 0x0, 0x28,0x5, 0x1b,0x34,0x7a,0x35,0x35,0x7e, +0xb3,0x2, 0x54,0x30,0xe5,0xb, 0x80,0x4, 0xe4,0x12,0x17,0x41,0x12,0x13,0xa4,0x50, +0xf7,0x53,0xe1,0xfd,0x43,0xe1,0x2, 0x53,0xe3,0x1f,0x12,0x17,0xe9,0x75,0x9, 0x0, +0x21,0xc6,0x75,0xa, 0x0, 0x80,0x58,0xe5,0xa, 0x70,0xc, 0x53,0xe7,0xbf,0x7e,0x34, +0x2, 0xf6,0x12,0x17,0xed,0x80,0x3, 0x43,0xe7,0x40,0x7e,0xb3,0x2, 0xa3,0x54,0x1, +0x6c,0x77,0x12,0x47,0x59,0x80,0x4, 0xe4,0x12,0x17,0x41,0x12,0x13,0xa4,0x50,0xf7, +0x75,0x8, 0x0, 0x80,0x23,0x12,0x4f,0x6d,0x2f,0x31,0x12,0x4f,0x93,0x2e,0x14,0x2, +0xf6,0x12,0x13,0x95,0x12,0x13,0x83,0x7e,0xb3,0x2, 0xa3,0x20,0xe1,0x8, 0x12,0x13, +0x95,0x2f,0x11,0x12,0x13,0x85,0x5, 0x8, 0x12,0x13,0x7b,0x38,0xd8,0x5, 0xa, 0xe5, +0xd, 0xbe,0xb1,0xa, 0x38,0xa1,0x75,0x8, 0x0, 0x80,0x64,0x12,0x4f,0x5e,0x30,0xe6, +0x2c,0x12,0x13,0x9d,0x49,0x35,0x2, 0xf8,0x7a,0x37,0x3, 0x86,0x12,0x17,0xc6,0x49, +0x25,0x1, 0xa8,0x1e,0x24,0x1e,0x24,0x9d,0x32,0x7a,0x37,0x3, 0x86,0x7e,0x37,0x1, +0xf2,0xe, 0x34,0xe, 0x34,0xbe,0x37,0x3, 0x86,0x8, 0x1d,0x80,0x18,0x12,0x13,0x9d, +0x49,0x15,0x2, 0xf8,0x49,0x5, 0x2, 0xf6,0x7e,0x37,0x1, 0xf4,0xe, 0x34,0xe, 0x34, +0x12,0x47,0x52,0x8, 0x3, 0x12,0x50,0x29,0x12,0x13,0x9d,0x49,0x35,0x2, 0xf8,0x49, +0x25,0x2, 0xf6,0x12,0x17,0xb0,0xbf,0x10,0x8, 0x3, 0x12,0x50,0xe, 0x5, 0x8, 0x12, +0x13,0x7b,0x38,0x97,0x5, 0x9, 0xe5,0xe, 0xbe,0xb1,0x9, 0x28,0x2, 0x1, 0xf2,0x7e, +0xb3,0x2, 0xab,0x30,0xe7,0x35,0x75,0x8, 0x0, 0x80,0x2b,0x12,0x4f,0x93,0x2e,0x14, +0x0, 0xcc,0x12,0x13,0x95,0x2f,0x11,0x2f,0x11,0x12,0x13,0x85,0x7e,0xb3,0x2, 0xab, +0x30,0xe6,0x11,0x12,0x17,0xc6,0x49,0x55,0x1, 0xa8,0x6d,0x44,0x12,0x13,0x95,0x9f, +0x12,0x12,0x13,0x85,0x5, 0x8, 0x12,0x13,0x7b,0x38,0xd0,0x53,0xe1,0xfd,0x12,0x25, +0x5, 0x53,0xe3,0x1f,0x12,0x25,0x16,0x7c,0xb7,0x42,0xe3,0x61,0x78,0x7e,0xb3,0x2, +0xa3,0x20,0xe0,0x2, 0x41,0xbf,0x12,0x17,0xe9,0x75,0x9, 0x0, 0x41,0xb6,0x7e,0xb3, +0x2, 0x54,0x30,0xe5,0x5, 0x12,0x13,0xa4,0x50,0x1d,0xe5,0x9, 0x70,0x5, 0x53,0xe7, +0xbf,0x80,0x3, 0x43,0xe7,0x40,0x74,0x2, 0x12,0x17,0xb9,0x12,0x4f,0xf4,0x12,0x47, +0x59,0x80,0x4, 0xe4,0x12,0x17,0x41,0x12,0x13,0xa4,0x50,0xf7,0xe4,0x12,0x17,0xb9, +0x75,0x8, 0x0, 0x80,0x30,0x12,0x4f,0x6d,0x2f,0x31,0x12,0x4f,0x5e,0x30,0xe7,0x1a, +0x7e,0xa3,0x2, 0xa3,0x12,0x17,0xbf,0xbe,0xb0,0x3, 0x40,0xe, 0x7c,0xba,0x30,0xe1, +0x9, 0x1e,0x74,0xe, 0x64,0x50,0x3, 0x4e,0xe0,0x80,0x12,0x4f,0xd2,0x12,0x13,0x95, +0x12,0x13,0x83,0x5, 0x8, 0x12,0x13,0x7b,0x38,0xcb,0x7e,0xb3,0x2, 0x54,0x30,0xe5, +0x13,0xe5,0x9, 0xb4,0x1, 0x5, 0x53,0xe7,0xbf,0x80,0x3, 0x43,0xe7,0x40,0x12,0x4f, +0xf4,0x12,0x47,0x59,0x5, 0x9, 0xe5,0xd, 0xbe,0xb1,0x9, 0x28,0x2, 0x41,0x2e,0x75, +0x8, 0x0, 0x61,0x71,0x12,0x4f,0x5e,0x30,0xe7,0x5a,0x7e,0xa3,0x2, 0xa3,0x7c,0xba, +0x30,0xe1,0x28,0x12,0x17,0xbf,0xbe,0xb0,0x1, 0x38,0x20,0xa, 0xb, 0x7e,0x14,0x0, +0x2, 0x9d,0x10,0x7e,0x91,0xc, 0x74,0x4, 0xac,0x9b,0x12,0x2d,0xb, 0x7c,0xb3,0x60, +0x5, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x50,0x31,0x80,0x29,0x7c,0xba,0x20,0xe1,0x24, +0x12,0x17,0xbf,0xbe,0xb0,0x2, 0x38,0x1c,0xa, 0x4b,0x7e,0x54,0x0, 0x3, 0x9d,0x54, +0x7c,0xab,0x12,0x4f,0xd2,0x12,0x13,0x95,0x7c,0xba,0x60,0x5, 0x2f,0x11,0x14,0x78, +0xfb,0x12,0x13,0x85,0x7e,0xb3,0x2, 0xab,0x30,0xe6,0x2b,0x12,0x17,0xc6,0x49,0x15, +0x1, 0xa8,0x6d,0x0, 0x12,0x13,0x9d,0x7d,0x45,0x12,0x2d,0xb, 0x9f,0x10,0x12,0x50, +0x31,0x12,0x17,0xb0,0x7e,0x37,0x1, 0xf2,0x12,0x40,0x62,0x58,0x22,0x7e,0xb3,0x2, +0x54,0x30,0xe0,0x1b,0x80,0x16,0x12,0x13,0x9d,0x12,0x17,0xb0,0x7e,0x37,0x1, 0xf4, +0x12,0x40,0x62,0x58,0xa, 0x7e,0xb3,0x2, 0x54,0x30,0xe0,0x3, 0x12,0x50,0x29,0x5, +0x8, 0x12,0x13,0x7b,0x28,0x2, 0x41,0xc4,0xda,0x3b,0x22,0x7e,0x73,0x2, 0x58,0xbe, +0x71,0x8, 0x22,0x2f,0x13,0x59,0x31,0x0, 0x2, 0x1b,0x18,0x20,0x22,0x7e,0x30,0x4, +0xac,0x23,0x2e,0x15,0x2a,0x49,0x31,0x0, 0x2, 0xb, 0x18,0x20,0x22,0x7e,0xa1,0xc, +0x74,0x4, 0xa4,0x22,0x30,0x9, 0x2, 0xd3,0x22,0xc3,0x22,0xca,0x3b,0x12,0x0, 0x2e, +0x70,0x2, 0xc1,0xa, 0x7e,0xe3,0x2, 0x56,0x7c,0xde,0x1e,0xd0,0x1e,0xe0,0x1e,0xe0, +0x6c,0xcc,0x7e,0xb3,0x2, 0x55,0x54,0xfe,0x7a,0xb3,0x2, 0x55,0x7e,0x17,0x0, 0xbe, +0x6d,0x0, 0x7e,0x1f,0x1, 0xa4,0xbf,0x10,0x58,0x2, 0x81,0xdf,0x6c,0xff,0x81,0xd5, +0xa, 0x2d,0x7d,0x12,0x1b,0x14,0xa, 0x3f,0xbd,0x31,0xa, 0x4d,0xa, 0x5f,0x18,0x6, +0x2d,0x54,0xf5,0x8, 0x80,0x4, 0x9d,0x54,0xf5,0x8, 0x12,0x0, 0x46,0x7c,0x75,0x7a, +0x73,0x2, 0xb2,0x7e,0x70,0x4, 0xac,0x7f,0x49,0x53,0x0, 0xce,0x49,0x43,0x0, 0xcc, +0x7e,0x37,0x0, 0xbe,0x7d,0x13,0x1e,0x14,0x6d,0x0, 0xbf,0x20,0x58,0x2, 0x81,0xd3, +0x7e,0xa3,0x2, 0xb2,0x74,0x4, 0xa4,0x49,0x15,0x1, 0x5e,0x49,0x5, 0x1, 0x5c,0x6d, +0x22,0xbf,0x1, 0x58,0x2, 0x81,0xd3,0x7e,0x31,0x8, 0x74,0x4, 0xac,0x3b,0x12,0x50, +0x20,0x12,0x50,0x40,0x4d,0x22,0x78,0x6, 0x9f,0x11,0x7f,0x61,0x80,0xf, 0x74,0x4, +0xac,0xbf,0x49,0xd5,0x0, 0xca,0x49,0xc5,0x0, 0xc8,0x12,0x50,0x17,0x7a,0x1f,0x2, +0xae,0x12,0x50,0x40,0xa, 0x3e,0x1b,0x34,0xbd,0x32,0x78,0x6, 0x9f,0x44,0x7f,0x74, +0x80,0x17,0x74,0x4, 0xac,0xbf,0x49,0xf5,0x0, 0xd2,0x49,0xe5,0x0, 0xd0,0x12,0x4f, +0xfe,0x49,0x95,0x0, 0xd2,0x49,0x85,0x0, 0xd0,0x12,0x16,0x18,0xbf,0x16,0x48,0x43, +0x12,0x16,0x18,0xbf,0x17,0x48,0x3c,0x12,0x16,0x18,0xbf,0x15,0x48,0x35,0x12,0x16, +0x18,0xbf,0x14,0x48,0x2e,0x12,0x17,0xac,0x7e,0x1f,0x2, 0xae,0xbf,0x1, 0x48,0x23, +0xa, 0x3c,0x19,0xf3,0x0, 0x3a,0xb, 0xc0,0x7e,0x30,0x4, 0xac,0x3f,0x2e,0x14,0x0, +0xcc,0x12,0x13,0x95,0xb, 0x1c,0x12,0x13,0x85,0xbe,0xc0,0x4, 0x40,0x5, 0x7e,0xc0, +0x4, 0x80,0xc, 0xb, 0xf0,0x7e,0x73,0x2, 0x56,0xbc,0x7f,0x28,0x2, 0x61,0xe0,0x7e, +0xb3,0x2, 0x54,0x20,0xe6,0x2, 0xa1,0xec,0x4c,0xcc,0x68,0x2, 0xa1,0xec,0x6c,0xff, +0xa1,0xe6,0x12,0x16,0xd, 0x12,0x17,0xcd,0xa, 0x1e,0x12,0x16,0x11,0x12,0x50,0x20, +0x2f,0x51,0x4c,0xff,0x68,0x7, 0x7c,0xbe,0x14,0xbc,0xbf,0x78,0xa, 0x12,0x17,0xd6, +0x7f,0x15,0x12,0x17,0xdf,0x7f,0x51,0x7e,0x37,0x0, 0xbe,0x6d,0x22,0xbf,0x51,0x18, +0x2, 0xa1,0xe4,0x12,0x16,0xd, 0x12,0x17,0xcd,0x12,0x50,0x39,0x7f,0x1, 0x12,0x4f, +0xde,0x12,0x16,0x1c,0xbf,0x10,0x18,0x2, 0xa1,0xe4,0x12,0x16,0xd, 0x12,0x17,0xcd, +0x7f,0x1, 0x2f,0x0, 0x2f,0x0, 0x12,0x4f,0xde,0x12,0x16,0x1c,0xbf,0x10,0x48,0x2, +0xa1,0xe4,0x4c,0xff,0x78,0x4, 0x9f,0x66,0x80,0x2a,0x12,0x16,0xd, 0x12,0x50,0x17, +0xa, 0x1e,0x12,0x16,0x11,0x49,0xd1,0x0, 0xca,0x49,0xc1,0x0, 0xc8,0x2f,0x61,0x4c, +0xff,0x68,0x7, 0x7c,0xbe,0x14,0xbc,0xbf,0x78,0xa, 0x12,0x17,0xd6,0x7f,0x16,0x12, +0x17,0xdf,0x7f,0x61,0x7c,0xbe,0x14,0xbc,0xbf,0x78,0x4, 0x9f,0x77,0x80,0x2c,0x12, +0x16,0xd, 0x49,0x31,0x0, 0xd2,0x49,0x21,0x0, 0xd0,0xa, 0x1e,0x12,0x16,0x11,0x49, +0xf1,0x0, 0xd2,0x49,0xe1,0x0, 0xd0,0x2f,0x71,0x4c,0xff,0x68,0x4, 0xbc,0xbf,0x78, +0xa, 0x12,0x17,0xd6,0x7f,0x17,0x12,0x17,0xdf,0x7f,0x71,0xbf,0x56,0x48,0x25,0xbf, +0x57,0x48,0x21,0x7e,0xc0,0x2, 0xa, 0x2f,0xa, 0x3d,0x2d,0x32,0x7a,0x73,0x0, 0x3a, +0xa, 0x3e,0x2d,0x32,0x7a,0x73,0x0, 0x3b,0x7e,0xb3,0x2, 0x55,0x44,0x1, 0x7a,0xb3, +0x2, 0x55,0x80,0x8, 0xb, 0xf0,0xbc,0xef,0x28,0x2, 0x81,0xf2,0x7c,0x6c,0x5e,0x60, +0xf, 0x7e,0x73,0x0, 0x54,0x12,0x3d,0x9, 0x7c,0x6c,0x5e,0x60,0xf, 0x7e,0x73,0x0, +0x55,0x5e,0x70,0xf0,0x4c,0x76,0x7a,0x73,0x0, 0x55,0xda,0x3b,0x22,0xa, 0xf, 0xa, +0x1d,0x2d,0x10,0x3e,0x14,0x3e,0x14,0x22,0x74,0x4, 0xac,0xbf,0x49,0x35,0x0, 0xce, +0x49,0x25,0x0, 0xcc,0x22,0xca,0x3b,0xc2,0xf, 0x7e,0xb3,0x2, 0xab,0x54,0x7f,0x7a, +0xb3,0x2, 0xab,0x7e,0x67,0x2, 0xac,0x7e,0xb3,0x2, 0x54,0x30,0xe5,0x10,0x80,0x4, +0xe4,0x12,0x17,0x41,0x12,0x13,0xa4,0x50,0xf7,0xd2,0xf, 0x12,0x39,0x6c,0x53,0xe3, +0x1f,0x7e,0x34,0x2, 0xae,0x7e,0x24,0x0, 0x24,0x74,0xff,0x12,0x2, 0xee,0x6c,0xee, +0xc1,0xed,0x6c,0xff,0x80,0xa, 0xe4,0xa, 0x3f,0x2d,0x36,0x7a,0x39,0xb0,0xb, 0xf0, +0x12,0xf, 0xe8,0x38,0xf1,0x7e,0x34,0x5, 0x3, 0x7e,0x24,0x0, 0x24,0x12,0x50,0x5, +0x44,0x4, 0x7a,0xb3,0x2, 0x54,0x6c,0xff,0xa, 0x2f,0x7e,0x34,0x0, 0x7, 0x9d,0x32, +0x7a,0x73,0x5, 0x27,0x12,0x25,0x69,0x12,0x10,0x5c,0x12,0x47,0xa3,0xb, 0xf0,0xbe, +0xf0,0x8, 0x78,0xe4,0x12,0x39,0x61,0x6c,0xff,0x80,0x3b,0xa, 0x2f,0x9, 0x62,0x2, +0xae,0xa, 0x1f,0x2d,0x16,0x7e,0x19,0x70,0xbc,0x67,0x28,0x28,0x19,0x72,0x2, 0xae, +0x7e,0xb3,0x2, 0x54,0x20,0xe0,0x7, 0x7e,0xb3,0x2, 0xa3,0x30,0xe1,0x5, 0x12,0x16, +0x18,0x80,0x5, 0x12,0x16,0x18,0x2f,0x11,0x2f,0x11,0x2f,0x11,0x74,0x2, 0xac,0xbf, +0x59,0x35,0x1, 0xa8,0xb, 0xf0,0x12,0xf, 0xe8,0x38,0xc0,0xb, 0xe0,0x7e,0x73,0x2, +0xd, 0xbc,0x7e,0x28,0x2, 0xc1,0x62,0x6c,0xff,0x80,0xd, 0xa, 0x3f,0x9, 0x53,0x2, +0xae,0x2d,0x36,0x7a,0x39,0x50,0xb, 0xf0,0x12,0xf, 0xe8,0x38,0xee,0x74,0x3, 0x12, +0x17,0xb9,0x12,0x25,0x46,0x12,0x27,0x9d,0x30,0xf, 0x15,0x7e,0xb3,0x2, 0x54,0x44, +0x20,0x7a,0xb3,0x2, 0x54,0x80,0x4, 0xe4,0x12,0x17,0x41,0x12,0x13,0xa4,0x50,0xf7, +0x53,0xe3,0x1f,0x7e,0xb3,0x2, 0xa3,0x12,0x25,0x18,0x7c,0xb7,0x42,0xe3,0xda,0x3b, +0x22,0x70,0x5, 0x43,0x87,0x1, 0x80,0xe, 0xb4,0x1, 0x5, 0x43,0x87,0x2, 0x80,0x6, +0xb4,0x2, 0x7, 0x43,0x87,0x2, 0x0, 0x0, 0x0, 0x0, 0x22,0x12,0x29,0x75,0x7e,0x23, +0x2, 0xc2,0x12,0x13,0x8d,0x7a,0x1f,0x2, 0xc6,0x7e,0x23,0x2, 0xc3,0x12,0x13,0x8d, +0x7a,0x1f,0x2, 0xca,0x7e,0x23,0x2, 0xc4,0x12,0x13,0x8d,0x7a,0x1f,0x2, 0xce,0x7e, +0x23,0x2, 0xc5,0x12,0x13,0x8d,0x7a,0x1f,0x2, 0xd2,0x7e,0x1f,0x2, 0xc6,0x7e,0xa0, +0x1, 0x7e,0x90,0x4, 0xac,0x9a,0x49,0x14,0x2, 0xc8,0x49,0x4, 0x2, 0xc6,0xbf,0x10, +0x58,0x2, 0x7f,0x10,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0xe6,0x22,0x74,0x4, 0xac,0xbf, +0x49,0x15,0x0, 0xce,0x49,0x5, 0x0, 0xcc,0x22,0x7e,0x37,0x2, 0x6, 0x89,0x34,0x7c, +0xba,0xc4,0x3, 0x54,0x7, 0x22,0x7e,0xa1,0xc, 0x74,0x2, 0xa4,0x22,0x49,0x31,0x0, +0xce,0x49,0x21,0x0, 0xcc,0x22,0x7e,0x73,0x2, 0x53,0xa, 0x17,0x6d,0x0, 0x22,0x12, +0x0, 0x78,0x7e,0x8, 0x0, 0xa, 0x2, 0x0, 0xe5,0x7e,0x34,0x0, 0xcc,0x7e,0x24,0x0, +0x90,0xe4,0x2, 0x2, 0xee,0x7e,0xa3,0x0, 0x54,0x7c,0xba,0xc4,0x54,0xf, 0x78,0x32, +0x7e,0x1f,0x1, 0xa4,0xbe,0x18,0xa, 0xf0,0x58,0x28,0x7e,0x37,0x0, 0x3e,0xbe,0x34, +0x0, 0x28,0x40,0x1e,0xbe,0x34,0x1, 0xb8,0x38,0x18,0x7e,0x37,0x0, 0x40,0xbe,0x34, +0x1, 0xa4,0x50,0x6, 0xbe,0x34,0x1, 0x7c,0x38,0x8, 0x7c,0xba,0x54,0xf0,0x7a,0xb3, +0x0, 0x54,0x22,0x9f,0x11,0x7a,0x1f,0x1, 0xa4,0x6c,0xaa,0x9f,0x11,0x7e,0x30,0x4, +0xac,0x3a,0x59,0x31,0x1, 0x5e,0x59,0x21,0x1, 0x5c,0x49,0xf1,0x0, 0xce,0x49,0xe1, +0x0, 0xcc,0xbe,0x78,0x0, 0x32,0x8, 0x3, 0x12,0x18,0x83,0x49,0xf1,0x1, 0xe, 0x49, +0xe1,0x1, 0xc, 0xbe,0x78,0x0, 0x32,0x8, 0x3, 0x12,0x18,0x83,0x12,0x18,0x9a,0x7e, +0x7f,0x1, 0xa4,0xbf,0x17,0x8, 0x4, 0x7a,0x1f,0x1, 0xa4,0xb, 0xa0,0xbe,0xa0,0x10, +0x40,0xb9,0x22,0x7d,0x1, 0x2e,0x4, 0x1, 0x5c,0x49,0x30,0x0, 0x2, 0xb, 0x8, 0x20, +0x2f,0x17,0x59,0x30,0x0, 0x2, 0x1b,0x8, 0x20,0x22,0x49,0x31,0x1, 0x5e,0x49,0x21, +0x1, 0x5c,0x22,0xca,0x3b,0xe4,0x6c,0xdd,0xa, 0x3d,0x19,0xb3,0x0, 0x52,0xb, 0xd0, +0xbe,0xd0,0x2, 0x78,0xf3,0x6c,0xdd,0xa1,0x46,0x12,0x4f,0xe9,0x7c,0xbc,0x84,0x7c, +0xca,0x9f,0x11,0x7a,0x1f,0x2, 0xc8,0x7a,0x1f,0x2, 0xcc,0x7a,0x1f,0x2, 0xdc,0x74, +0x4, 0xac,0xbc,0x12,0x44,0x8a,0x7a,0x1f,0x2, 0xd0,0x7e,0x73,0x5, 0x54,0xa, 0xf7, +0x6d,0xee,0xa, 0x3c,0x6d,0x22,0x7f,0x7, 0x12,0x0, 0x94,0x7a,0xf, 0x2, 0xb6,0x7f, +0x17,0x1b,0x1c,0xbf,0x10,0x68,0x10,0x74,0x4, 0xac,0xbc,0x49,0x35,0x1, 0x62,0x49, +0x25,0x1, 0x60,0x7a,0x1f,0x2, 0xcc,0x7e,0x1f,0x2, 0xb6,0xbe,0x18,0x0, 0x0, 0x68, +0x10,0x74,0x4, 0xac,0xbc,0x49,0x35,0x1, 0x5a,0x49,0x25,0x1, 0x58,0x7a,0x1f,0x2, +0xc8,0x7e,0xb3,0x2, 0x54,0x20,0xe4,0x2, 0x41,0x71,0x7e,0x37,0x2, 0x4d,0x12,0x1d, +0x58,0xbe,0xb3,0x2, 0x58,0x50,0x4, 0x4c,0xcc,0x68,0x41,0x7d,0x23,0xb, 0x24,0x12, +0x1d,0x82,0xbe,0xb3,0x2, 0x58,0x50,0x5, 0x12,0x1d,0x71,0x68,0x2f,0x7d,0x23,0xb, +0x25,0x12,0x1d,0x82,0xbe,0xb3,0x2, 0x58,0x50,0x8, 0x7e,0x53,0x5, 0x54,0xbc,0x5c, +0x68,0x1a,0x2e,0x34,0x0, 0x3, 0x12,0x1d,0x58,0xbe,0xb3,0x2, 0x58,0x40,0x2, 0x41, +0x71,0x7e,0xb3,0x5, 0x53,0x14,0xbc,0xbc,0x68,0x2, 0x41,0x71,0x4c,0xcc,0x78,0x4, +0x6c,0xff,0x80,0x17,0x12,0x1d,0x71,0x78,0x5, 0x7e,0xf0,0x1, 0x80,0xd, 0x12,0x1d, +0x61,0x78,0x5, 0x7e,0xf0,0x2, 0x80,0x3, 0x7e,0xf0,0x3, 0xa, 0x1f,0x7d,0x1, 0x2e, +0x7, 0x2, 0x4d,0x12,0x1d,0x68,0x7c,0xab,0x74,0x4, 0xa4,0x12,0x16,0x1c,0x7a,0x1f, +0x2, 0xbe,0x7e,0x57,0x1, 0xf6,0x1a,0x4a,0x1a,0x48,0xbf,0x21,0x48,0x2, 0x41,0x71, +0x7e,0x1f,0x2, 0xbe,0x9f,0x12,0x12,0x1f,0xee,0x1a,0x24,0x7e,0x2f,0x2, 0xbe,0xbf, +0x12,0x58,0x4, 0x7a,0x1f,0x2, 0xbe,0x7e,0x1f,0x2, 0xbe,0x7d,0x1, 0x2e,0x7, 0x2, +0x4f,0x12,0x1d,0x68,0xca,0xb8,0x2e,0x17,0x2, 0x51,0x12,0x1d,0x79,0x7c,0x3b,0xda, +0xb8,0x12,0x47,0x45,0x58,0x4, 0x7a,0x1f,0x2, 0xbe,0x4c,0xcc,0x68,0x5, 0x12,0x1d, +0x61,0x78,0x38,0x7e,0xf, 0x2, 0xbe,0x7e,0x1f,0x2, 0xcc,0xbf,0x10,0x58,0x8, 0x9f, +0x22,0x7a,0x2f,0x2, 0xcc,0x80,0xa, 0x7d,0x51,0x6d,0x44,0x9f,0x12,0x7a,0x1f,0x2, +0xcc,0x7e,0x1f,0x2, 0xd8,0xbf,0x10,0x58,0x8, 0x9f,0x22,0x7a,0x2f,0x2, 0xd8,0x80, +0x40,0x6d,0x0, 0x9f,0x10,0x7a,0x1f,0x2, 0xd8,0x80,0x36,0x7e,0xf, 0x2, 0xbe,0x7e, +0x1f,0x2, 0xc8,0xbf,0x10,0x58,0x8, 0x9f,0x22,0x7a,0x2f,0x2, 0xc8,0x80,0xa, 0x7d, +0x51,0x6d,0x44,0x9f,0x12,0x7a,0x1f,0x2, 0xc8,0x7e,0x1f,0x2, 0xd4,0xbf,0x10,0x58, +0x8, 0x9f,0x22,0x7a,0x2f,0x2, 0xd4,0x80,0x8, 0x6d,0x0, 0x9f,0x10,0x7a,0x1f,0x2, +0xd4,0x7e,0x93,0x5, 0x54,0xa, 0x29,0xa, 0x3c,0x12,0x46,0xa9,0x1a,0x38,0x7d,0xf3, +0x1a,0xe6,0x7f,0x7, 0x1b,0xc, 0x7e,0x5f,0x2, 0xc8,0x7f,0x15,0x12,0x0, 0x78,0x7f, +0x41,0x7e,0x6f,0x2, 0xd0,0x7f,0x16,0x7f,0x7, 0x12,0x0, 0x78,0x2f,0x41,0x7f,0x7, +0xb, 0xc, 0x7e,0x7f,0x2, 0xcc,0x7f,0x17,0x12,0x0, 0x78,0x2f,0x14,0x7a,0x1f,0x2, +0xae,0x7f,0x16,0x2f,0x15,0x2f,0x17,0x7a,0x1f,0x2, 0xb2,0x7e,0xf, 0x2, 0xb6,0xbe, +0x8, 0x0, 0x0, 0x38,0x2, 0x61,0x90,0xa, 0x39,0x6d,0x22,0x1b,0x1c,0xbf,0x1, 0x40, +0x2, 0x61,0x90,0xe4,0x7a,0xb3,0x5, 0x51,0x12,0x1e,0x92,0x7e,0x1f,0x2, 0xcc,0x7a, +0x1d,0x10,0x7a,0xd1,0x15,0x7e,0x1f,0x2, 0xd0,0x7e,0xf, 0x2, 0xc8,0x7c,0xbc,0x12, +0x1e,0x99,0x7c,0xeb,0x7e,0xa3,0x5, 0x51,0xbe,0xa0,0x0, 0x28,0x50,0xbe,0xe0,0x0, +0x48,0x4b,0x7e,0xb3,0x5, 0x53,0xbc,0xbe,0x8, 0x43,0x7e,0xb3,0x5, 0x54,0xa, 0x2b, +0x1a,0x3e,0x12,0x0, 0x46,0x7c,0x95,0x7a,0x91,0x8, 0x1a,0x1e,0x3e,0x14,0x3e,0x14, +0x12,0x18,0x9a,0xa, 0x1a,0x6d,0x0, 0x12,0x0, 0x78,0x74,0x7, 0x7f,0x71,0x1e,0xf4, +0xe, 0xe4,0x50,0x4, 0x4e,0xf4,0x80,0x0, 0x14,0x78,0xf3,0x7a,0x7f,0x2, 0xdc,0x1a, +0x19,0x12,0x4f,0xc4,0x2f,0x10,0x12,0x1d,0x9d,0x2f,0x17,0x80,0x3f,0x7e,0x73,0x5, +0x52,0xbe,0x70,0x0, 0x8, 0x3a,0x7e,0x63,0x5, 0x54,0xa, 0x26,0x1a,0x47,0x7d,0x34, +0x12,0x0, 0x46,0x7c,0x75,0x7a,0x71,0x8, 0x3e,0x44,0x3e,0x44,0x49,0x14,0x1, 0x5e, +0x49,0x4, 0x1, 0x5c,0x7f,0x70,0x1e,0xf4,0xe, 0xe4,0x50,0x4, 0x4e,0xf4,0x80,0x0, +0x1a,0x17,0x12,0x4f,0xc4,0x9f,0x10,0x12,0x1d,0x9d,0x9f,0x17,0x7a,0x1f,0x2, 0xb2, +0x7e,0x1f,0x2, 0xae,0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0x7e,0xf, 0x2, 0xb2,0x12, +0x0, 0xe5,0x2e,0x18,0x0, 0x20,0xbe,0x18,0x0, 0x0, 0x58,0x8, 0x6d,0x11,0x7a,0x17, +0x2, 0xc6,0x80,0x4, 0x7a,0x37,0x2, 0xc6,0x12,0x4f,0xe9,0xa, 0x2a,0x1b,0x24,0xa, +0x3c,0xbd,0x32,0x8, 0xc, 0xa, 0x2a,0xa, 0x3c,0x9d,0x32,0x7c,0xb7,0xf5,0x9, 0x80, +0x8, 0xa, 0x4a,0xa, 0x5c,0x2d,0x54,0xf5,0x9, 0x7c,0xbc,0x12,0x40,0x9a,0x7a,0x1f, +0x2, 0xb6,0xe5,0x9, 0x12,0x40,0x9a,0x7a,0x1f,0x2, 0xba,0x12,0x4f,0x80,0x8, 0x5, +0x12,0x4f,0xb4,0x80,0x3, 0x12,0x4f,0xa4,0x12,0x4f,0x39,0x7a,0x1f,0x2, 0xc2,0x7e, +0xb3,0x2, 0x54,0x20,0xe3,0x2, 0xa1,0x30,0x12,0x7, 0x7d,0xb4,0x1, 0x2, 0x80,0x2, +0xa1,0x30,0x7e,0x37,0x2, 0x0, 0x1a,0x26,0x1a,0x24,0x7e,0xf, 0x2, 0xc2,0xbf,0x1, +0x48,0xb, 0x7e,0x37,0x2, 0x2, 0x12,0x40,0x62,0x18,0x2, 0xa1,0x30,0x12,0x1d,0x61, +0x38,0x12,0xa, 0x7, 0x7e,0x63,0x2, 0x56,0xa, 0x16,0x9d,0x10,0xa, 0x2c,0xbd,0x12, +0x8, 0x2, 0xa1,0x30,0xbc,0x7c,0xa, 0x3c,0x28,0x14,0x2e,0x37,0x2, 0x45,0x12,0x1d, +0x58,0x12,0x1d,0x8b,0x12,0x1d,0x58,0xf5,0xa, 0x7a,0xc1,0xb, 0x80,0x1d,0x2e,0x37, +0x2, 0x45,0x7e,0xa3,0x5, 0x53,0xa, 0x2a,0x12,0x1d,0x56,0x12,0x1d,0x8b,0x12,0x1d, +0x56,0xf5,0xa, 0xa, 0x4a,0xa, 0x5c,0x9d,0x54,0xf5,0xb, 0x7e,0x73,0x2, 0x58,0xbe, +0x71,0xa, 0x38,0x2, 0xa1,0x30,0xbc,0x7f,0x38,0x2, 0xa1,0x30,0x7e,0xa1,0xa, 0x74, +0x4, 0xa4,0x12,0x17,0xb0,0x12,0x16,0x18,0x2f,0x10,0x7a,0x1f,0x2, 0xbe,0x7e,0x17, +0x1, 0xf6,0x1a,0x2, 0x1a,0x0, 0xbf,0x1, 0x48,0x2, 0xa1,0x30,0x7e,0x1f,0x2, 0xbe, +0x9f,0x10,0x12,0x1f,0xee,0x1a,0x24,0x7e,0xf, 0x2, 0xbe,0xbf,0x10,0x58,0x4, 0x7a, +0x1f,0x2, 0xbe,0x7e,0x1f,0x2, 0xbe,0xe5,0xb, 0xa, 0x1b,0x7d,0x1, 0x2e,0x7, 0x2, +0x49,0x12,0x1d,0x68,0x54,0x7f,0xca,0xb8,0x2e,0x17,0x2, 0x4b,0x12,0x1d,0x79,0x7c, +0x3b,0xda,0xb8,0x12,0x47,0x45,0x58,0x4, 0x7a,0x1f,0x2, 0xbe,0xe5,0xb, 0xa, 0x3b, +0x2e,0x37,0x2, 0x49,0x12,0x1d,0x58,0x23,0x54,0x1, 0x68,0x7, 0x12,0x1d,0x94,0x2f, +0x10,0x80,0x15,0x12,0x1d,0x94,0xbf,0x10,0x50,0x8, 0x9f,0x0, 0x7a,0xf, 0x2, 0xba, +0x80,0xa, 0x7e,0xf, 0x2, 0xbe,0x9f,0x10,0x7a,0x1f,0x2, 0xba,0x12,0x4f,0x80,0x8, +0x5, 0x12,0x4f,0xb4,0x80,0x3, 0x12,0x4f,0xa4,0x12,0x4f,0x39,0x7a,0x1f,0x2, 0xc2, +0x7e,0x47,0x2, 0xc6,0x74,0x5, 0xac,0xbd,0x59,0x45,0x0, 0x3e,0x7e,0x1f,0x2, 0xc2, +0x59,0x35,0x0, 0x40,0xb, 0xd0,0x12,0x7, 0x7d,0xa, 0x2b,0xa, 0x3d,0xbd,0x32,0x58, +0x2, 0x1, 0xb9,0xda,0x3b,0x22,0x9d,0x32,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93, +0x22,0x7e,0x73,0x5, 0x54,0xbc,0x7c,0x22,0x7a,0x11,0x82,0x7a,0x1, 0x83,0xe4,0x93, +0x22,0x7e,0xb3,0x5, 0x54,0x14,0xbc,0xbc,0x22,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4, +0x93,0x22,0x7a,0x51,0x82,0x7a,0x41,0x83,0xe4,0x93,0x22,0x7c,0xfb,0xa, 0x3c,0x2e, +0x37,0x2, 0x47,0x22,0x7e,0xf, 0x2, 0xbe,0x7e,0x1f,0x2, 0xba,0x22,0x7a,0x1f,0x2, +0xae,0x7e,0x1f,0x2, 0xb2,0x22,0xca,0xf8,0x7c,0xab,0x7f,0x70,0x7f,0x61,0x6c,0x11, +0x6c,0xff,0x7e,0x34,0x2, 0xae,0x7e,0x24,0x0, 0x40,0xe4,0x12,0x2, 0xee,0x6c,0x0, +0xa5,0xb8,0x8, 0x6, 0xbc,0xa1,0x28,0x2, 0x6c,0x11,0x7e,0x30,0x4, 0xac,0x30,0x12, +0x18,0x9a,0xbf,0x16,0x8, 0x11,0x7e,0x30,0x4, 0xac,0x31,0x59,0x31,0x2, 0xb0,0x59, +0x21,0x2, 0xae,0xb, 0x10,0x80,0x6, 0xbc,0xa1,0x28,0x2, 0x6c,0x11,0xb, 0x0, 0xa5, +0xb8,0x10,0xcd,0xbc,0xa1,0x38,0x2b,0x7e,0x1f,0x1, 0xa4,0xbf,0x17,0x58,0x23,0x7e, +0x34,0x2, 0xae,0xa, 0x2a,0x12,0x2f,0xf8,0x12,0x4f,0xfe,0x49,0x35,0x2, 0xb0,0x49, +0x25,0x2, 0xae,0x7f,0x1, 0x2f,0x0, 0x7e,0x1f,0x2, 0xae,0xbf,0x1, 0x8, 0x3, 0x7e, +0xf0,0x1, 0x7c,0xbf,0xda,0xf8,0x22,0x75,0x8, 0x4, 0x7e,0x18,0x27,0x10,0x7e,0x8, +0x9c,0x40,0x74,0x8, 0x12,0x1d,0xa6,0x70,0x10,0x75,0x8, 0x4, 0x7e,0x18,0x4e,0x20, +0x7e,0x8, 0xea,0x60,0x74,0x6, 0x12,0x1d,0xa6,0x70,0x10,0x75,0x8, 0x4, 0x7e,0x18, +0x5, 0xdc,0x7e,0x8, 0x13,0x88,0x74,0x8, 0x12,0x1d,0xa6,0x60,0x10,0x7e,0xb3,0x2, +0x54,0x44,0x2, 0x7a,0xb3,0x2, 0x54,0xe4,0x7a,0xb3,0x5, 0x59,0x22,0x7e,0xa3,0x2, +0x54,0x7c,0xba,0x30,0xe1,0x1b,0x7e,0xb3,0x5, 0x59,0x4, 0x7a,0xb3,0x5, 0x59,0xbe, +0xb0,0x14,0x40,0xd, 0xe4,0x7a,0xb3,0x5, 0x59,0x7c,0xba,0x54,0xfd,0x7a,0xb3,0x2, +0x54,0x22,0x74,0xff,0x7a,0xb3,0x5, 0x52,0x22,0xca,0xf8,0x7c,0xfb,0x7f,0x40,0x7a, +0x1d,0xc, 0x7e,0x30,0xff,0xbe,0x48,0x0, 0x0, 0x8, 0x50,0x7e,0x1d,0x10,0xbe,0x18, +0x0, 0x0, 0x8, 0x47,0xbf,0x41,0x8, 0x20,0x7e,0x1d,0xc, 0x7f,0x4, 0x12,0x1f,0x8b, +0x1a,0x1f,0x1b,0x15,0x7e,0x23,0x5, 0x54,0xbc,0x2f,0x68,0x2c,0xa, 0x22,0xb, 0x24, +0xa, 0x3f,0xbd,0x32,0x78,0x25,0x80,0x20,0x7e,0x1d,0xc, 0x7e,0xd, 0x10,0x12,0x1f, +0x8b,0xa, 0x1f,0xb, 0x15,0x7e,0x23,0x5, 0x54,0x7c,0xb2,0x24,0xfe,0xbc,0xbf,0x68, +0x7, 0x7c,0xb2,0x14,0xbc,0xbf,0x78,0x3, 0x7e,0x30,0xff,0x7e,0x23,0x5, 0x53,0xbc, +0x23,0x8, 0x5, 0xbe,0x30,0x0, 0x58,0xa, 0xe4,0x7a,0xb3,0x5, 0x51,0x12,0x1e,0x92, +0x80,0x74,0x6c,0x22,0x80,0x65,0xe5,0x15,0xbc,0xb2,0x68,0x5d,0xa, 0x2, 0x9, 0x10, +0x0, 0x3a,0x7e,0xa3,0x5, 0x53,0x7c,0xb1,0x84,0x7c,0x1a,0x7e,0x3, 0x5, 0x54,0xbc, +0x3, 0x8, 0x8, 0x7e,0x73,0x5, 0x54,0xbc,0x71,0x38,0xc, 0xbc,0x3, 0x18,0x3a,0x7e, +0x3, 0x5, 0x54,0xbc,0x1, 0x38,0x32,0x7c,0xb3,0x7c,0x71,0x7e,0x60,0x1, 0x12,0x41, +0xf5,0xb4,0x1, 0x25,0xbc,0x13,0x78,0x17,0x7e,0x1d,0x10,0xbf,0x41,0x1a,0x33,0x8, +0x4, 0xb, 0x34,0x80,0x2, 0x1b,0x34,0x7c,0x27,0x7a,0x23,0x5, 0x52,0x80,0x3, 0x12, +0x1e,0x92,0xe4,0x7a,0xb3,0x5, 0x51,0x80,0xd, 0xb, 0x20,0x12,0x7, 0x7d,0xa, 0x2b, +0xa, 0x32,0xbd,0x32,0x48,0x90,0x7c,0xb3,0xda,0xf8,0x22,0x12,0x1f,0x93,0x7a,0xb3, +0x5, 0x51,0x22,0x7f,0x60,0x7f,0x71,0x7e,0x14,0x0, 0x74,0x7f,0x17,0x12,0x0, 0x89, +0x74,0x7, 0x7f,0x51,0x1e,0xb4,0x1e,0xa4,0x50,0x4, 0x4e,0xb4,0x80,0x0, 0x14,0x78, +0xf3,0x7e,0x14,0x0, 0x54,0x7f,0x17,0x12,0x0, 0x89,0x7f,0x1, 0x74,0x7, 0x1e,0x34, +0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0xbf,0x65,0x8, 0x3, 0x74,0x80, +0x22,0xbf,0x61,0x58,0x2, 0xe4,0x22,0x74,0x9, 0x7f,0x16,0x2f,0x11,0x14,0x78,0xfb, +0x2f,0x0, 0x2f,0x0, 0x9f,0x10,0x7f,0x7, 0x12,0x0, 0x94,0x7c,0xb7,0x22,0x7a,0x1f, +0x2, 0xbe,0x7e,0x37,0x1, 0xf8,0x1a,0x26,0x22,0xca,0xf8,0x7c,0xf7,0x7c,0xab,0x7c, +0xbf,0x1e,0xb0,0xa, 0x4b,0xa, 0xa, 0x12,0x20,0x18,0x7d,0x12,0x3e,0x14,0x12,0x20, +0x18,0x7d,0x51,0x2d,0x53,0xda,0xf8,0x22,0x7d,0x30,0x7d,0x24,0x2, 0x0, 0x46,0x9f, +0x11,0x7a,0x1f,0x0, 0x56,0x7a,0x1f,0x0, 0xba,0x6c,0xaa,0x7e,0x70,0x4, 0xac,0x7a, +0x49,0xf3,0x1, 0x5e,0x49,0xe3,0x1, 0x5c,0x7e,0xf, 0x0, 0x56,0x2f,0x7, 0x7a,0xf, +0x0, 0x56,0x49,0x13,0x1, 0x7e,0x49,0x3, 0x1, 0x7c,0x7e,0x1f,0x0, 0xba,0x2f,0x10, +0x7a,0x1f,0x0, 0xba,0xb, 0xa0,0xbe,0xa0,0x8, 0x40,0xd0,0x22,0xa, 0x2b,0x5e,0x24, +0x0, 0x1, 0x7c,0xa7,0x1e,0xa0,0xa, 0x3a,0xad,0x32,0x7c,0x5b,0x1e,0x50,0xa, 0x55, +0x2d,0x53,0x22,0x7e,0xb3,0x0, 0xb4,0xca,0xf8,0x7c,0xfb,0x74,0x20,0x7a,0xb3,0x2, +0x56,0x74,0x4, 0x7a,0xb3,0x2, 0x57,0x74,0x24,0x7a,0xb3,0x2, 0x58,0x7e,0xb3,0x2, +0xa9,0x44,0xf, 0x7a,0xb3,0x2, 0xa9,0x44,0xf0,0x7a,0xb3,0x2, 0xa9,0x7e,0x73,0x0, +0xa6,0x7a,0x73,0x2, 0xa7,0x7e,0x73,0x0, 0xa7,0x7a,0x73,0x2, 0xa8,0x7e,0x34,0x2, +0x5e,0x7e,0x24,0x2, 0x59,0x74,0x24,0x7e,0x30,0x98,0x12,0x21,0xe7,0x6c,0x33,0x80, +0x11,0x7c,0xb3,0x7e,0x73,0x2, 0x56,0x12,0x20,0x5c,0xa, 0x33,0x19,0xb3,0x2, 0x7d, +0xb, 0x30,0x7e,0x23,0x2, 0x56,0xbc,0x23,0x38,0xe7,0x6c,0x33,0x80,0x18,0xa, 0x3, +0x7e,0x53,0x2, 0x56,0xa, 0x35,0x2d,0x30,0x7c,0x27,0xa, 0x33,0xa, 0x5, 0x2d,0x3, +0x19,0x20,0x2, 0x7d,0xb, 0x30,0x7e,0x23,0x2, 0x57,0xbc,0x23,0x38,0xe0,0x7e,0xb3, +0x2, 0xa3,0x44,0x1, 0x7a,0xb3,0x2, 0xa3,0xbe,0xf0,0x1, 0x78,0xd, 0x7e,0xb3,0x2, +0xa3,0x54,0xfd,0x12,0x21,0xcc,0x44,0x8, 0x80,0x21,0xbe,0xf0,0x2, 0x7e,0xb3,0x2, +0xa3,0x78,0x11,0x54,0xfd,0x7a,0xb3,0x2, 0xa3,0x7e,0xb3,0x2, 0xab,0x54,0xfb,0x12, +0x21,0xd6,0x80,0x7, 0x44,0x2, 0x12,0x21,0xcc,0x44,0x18,0x7a,0xb3,0x2, 0xab,0x7e, +0xb3,0x2, 0xa3,0x54,0xfb,0x7a,0xb3,0x2, 0xa3,0x44,0x18,0x7a,0xb3,0x2, 0xa3,0x7e, +0x63,0x0, 0xb5,0x5e,0x60,0x7, 0x7c,0xb6,0xc4,0x23,0x54,0xe0,0x7c,0x6b,0x7e,0x73, +0x2, 0xa3,0x12,0x21,0xdd,0x7c,0xb7,0xc4,0x3, 0x54,0x7, 0xbe,0xb0,0x0, 0x28,0x10, +0x7c,0xb7,0x30,0xe1,0xb, 0x7c,0x67,0x9e,0x60,0x20,0x5e,0x60,0xe0,0x12,0x21,0xdd, +0x7e,0x63,0x0, 0xb6,0x5e,0x60,0x7f,0x7e,0x73,0x2, 0xa4,0x5e,0x70,0x80,0x4c,0x76, +0x7a,0x73,0x2, 0xa4,0x7e,0x63,0x0, 0xb7,0x5e,0x60,0x7f,0x7e,0x73,0x2, 0xa5,0x5e, +0x70,0x80,0x4c,0x76,0x7a,0x73,0x2, 0xa5,0x7e,0xb3,0x2, 0xa6,0x54,0xf0,0x44,0x1, +0x7a,0xb3,0x2, 0xa6,0x54,0xf, 0x44,0x20,0x7a,0xb3,0x2, 0xa6,0x12,0x26,0xcb,0x7a, +0xb3,0x2, 0xab,0x54,0x7f,0x7a,0xb3,0x2, 0xab,0xda,0xf8,0x22,0x7a,0xb3,0x2, 0xa3, +0x7e,0xb3,0x2, 0xab,0x44,0x4, 0x7a,0xb3,0x2, 0xab,0x54,0xc7,0x22,0x5e,0x70,0x1f, +0x4c,0x76,0x7a,0x73,0x2, 0xa3,0x22,0x7c,0x23,0x7c,0x3b,0xa5,0xba,0x97,0x24,0xbe, +0x30,0x1c,0x50,0x4, 0x7c,0x23,0x80,0x3, 0x7e,0x20,0x1c,0x6c,0xaa,0x80,0xf, 0x12, +0x22,0x22,0xa, 0x4b,0x2e,0x44,0x2, 0xc2,0x12,0x22,0x28,0x12,0x22,0x31,0xbc,0x2a, +0x38,0xed,0x22,0x6c,0xaa,0x80,0x6, 0x12,0x22,0x22,0x12,0x22,0x31,0xbc,0x3a,0x38, +0xf6,0x22,0xa, 0xa, 0x7d,0x40,0x2d,0x43,0x7a,0x91,0x82,0x7a,0x81,0x83,0xe4,0x93, +0x22,0x2d,0x2, 0x7a,0x9, 0xb0,0xb, 0xa0,0x22,0xe5,0x26,0x30,0xe0,0x20,0x12,0x20, +0x73,0x12,0x24,0xfa,0x78,0x6, 0x7e,0x34,0x0, 0xa8,0x80,0x9, 0xbe,0xa0,0x2, 0x78, +0x7, 0x7e,0x34,0x0, 0xae,0x12,0x24,0x2b,0x12,0x16,0x25,0x53,0x26,0xfc,0xe5,0x26, +0x30,0xe2,0x12,0x53,0xca,0xe1,0x7e,0x73,0x0, 0xb8,0xa, 0x37,0x3e,0x34,0x7c,0xb7, +0x42,0xca,0x53,0x26,0xfb,0x22,0x12,0x0, 0x2e,0x70,0x2, 0x61,0x54,0x80,0x4, 0xe4, +0x12,0x17,0x41,0x12,0x13,0xa4,0x50,0xf7,0x75,0xe1,0x0, 0x12,0x25,0x5, 0x7c,0xba, +0x12,0x24,0xf1,0x12,0x25,0xf, 0x75,0xe3,0x0, 0x7c,0xba,0x1e,0xb0,0x12,0x24,0xf1, +0x7c,0xb7,0x42,0xe3,0x7c,0xba,0xc4,0x23,0x54,0x3, 0xa, 0x3b,0x12,0x25,0x22,0x7c, +0xb7,0x42,0xe3,0x12,0x25,0x16,0x7c,0xb7,0x42,0xe3,0x75,0xe7,0x0, 0x7c,0xba,0x30, +0xe1,0x5, 0x43,0xe7,0x33,0x80,0x3, 0x43,0xe7,0x11,0x74,0x1, 0x7e,0x73,0x2, 0xa4, +0x5e,0x70,0x7f,0x12,0x23,0x55,0x74,0x2, 0x7e,0x73,0x2, 0xa5,0x5e,0x70,0x7f,0x12, +0x23,0x55,0x74,0x3, 0xca,0xb8,0x7e,0x63,0x2, 0xa6,0x7c,0x76,0x12,0x25,0x29,0x7c, +0x7b,0x7c,0xb6,0xc4,0x54,0xf, 0x2c,0x7b,0xda,0xb8,0x12,0x23,0x55,0x74,0x6, 0x7e, +0x70,0x61,0x12,0x23,0x55,0x12,0x23,0x5b,0x74,0x53,0x7e,0x73,0x2, 0xa9,0x5e,0x70, +0xf, 0x12,0x23,0x55,0x74,0x54,0xca,0xb8,0x7e,0xb3,0x2, 0xa9,0xc4,0x7c,0x7b,0x5e, +0x70,0xf, 0xda,0xb8,0x12,0x23,0x55,0x7e,0xb3,0x2, 0xa3,0xc4,0x23,0x54,0x3, 0xbe, +0xb0,0x1, 0x68,0x3, 0xb4,0x2, 0x15,0x74,0x5b,0x7e,0x73,0x2, 0xaa,0x12,0x23,0x55, +0x74,0x5c,0x7e,0x73,0x2, 0xab,0x5e,0x70,0x3, 0x12,0x23,0x55,0x43,0xe1,0x8, 0x74, +0x2, 0x2, 0x25,0x32,0x22,0xf5,0xe4,0x7a,0x71,0xe5,0x22,0x53,0xe1,0xf, 0x7e,0x73, +0x2, 0xab,0x7c,0xb7,0x1e,0xb0,0x1e,0xb0,0x54,0x1, 0xa, 0x2b,0x12,0x24,0xe8,0x7c, +0xb5,0x42,0xe1,0x7c,0xb7,0x30,0xe2,0x58,0x7c,0xb7,0xc4,0x23,0x7c,0x7b,0x5e,0x70, +0x7, 0xa5,0xbf,0x0, 0x5, 0x7e,0x60,0x4, 0x80,0x39,0xa5,0xbf,0x1, 0x11,0x7e,0xb3, +0x2, 0xa3,0x30,0xe1,0x5, 0x7e,0x60,0x2, 0x80,0x29,0x7e,0x60,0x5, 0x80,0x24,0xa5, +0xbf,0x3, 0x11,0x7e,0xb3,0x2, 0xa3,0x30,0xe1,0x5, 0x7e,0x60,0x7, 0x80,0x14,0x7e, +0x60,0x6, 0x80,0xf, 0x7e,0xb3,0x2, 0xa3,0x30,0xe1,0x5, 0x7e,0x60,0x3, 0x80,0x3, +0x7e,0x60,0x1, 0xa, 0x26,0x3e,0x24,0x12,0x24,0xe8,0x7c,0x75,0x7c,0xb7,0x42,0xe1, +0x74,0x7, 0x7e,0x73,0x2, 0x56,0x12,0x23,0x55,0x74,0x8, 0x7e,0x73,0x2, 0x57,0x12, +0x23,0x55,0x74,0x9, 0x6c,0x77,0x12,0x23,0x55,0x6c,0xaa,0x80,0xf, 0x7c,0xba,0x24, +0x2f,0xa, 0x4a,0x9, 0x74,0x2, 0x59,0x12,0x23,0x55,0xb, 0xa0,0x7e,0x73,0x2, 0x58, +0xbc,0x7a,0x38,0xe9,0x7c,0xa7,0x80,0xc, 0x7c,0xba,0x24,0x2f,0x7e,0x70,0x3f,0x12, +0x23,0x55,0xb, 0xa0,0xbe,0xa0,0x24,0x40,0xef,0x74,0x56,0x7e,0x73,0x2, 0xa7,0x12, +0x23,0x55,0x74,0x57,0x7e,0x73,0x2, 0xa8,0x2, 0x23,0x55,0x7d,0x23,0x74,0x7, 0x7e, +0x70,0x10,0x12,0x23,0x55,0x74,0x8, 0x12,0x23,0x55,0x74,0x9, 0x7e,0x70,0x4, 0x12, +0x23,0x55,0x74,0x56,0x7e,0x29,0x70,0x12,0x23,0x55,0x74,0x57,0x9, 0x72,0x0, 0x1, +0x12,0x23,0x55,0x74,0x58,0x9, 0x72,0x0, 0x2, 0x2, 0x23,0x55,0xca,0xf8,0x12,0xf, +0x2d,0x12,0x26,0xf9,0x7a,0x37,0x2, 0xac,0x12,0x26,0xc4,0x12,0x20,0x73,0x12,0x38, +0x2d,0x12,0x24,0xfa,0x78,0x6, 0x7e,0x34,0x0, 0xa8,0x80,0x9, 0xbe,0xa0,0x2, 0x78, +0x7, 0x7e,0x34,0x0, 0xae,0x12,0x24,0x2b,0x12,0x16,0x25,0x75,0x18,0x3, 0x75,0x16, +0x40,0x12,0xf, 0x2d,0x7a,0x37,0x0, 0x38,0xe5,0x18,0xb4,0x3, 0x42,0xe5,0x1e,0x60, +0xf0,0x12,0x27,0x9d,0x12,0x22,0x39,0x12,0x10,0x5c,0x6c,0xff,0x80,0x12,0x74,0x4, +0xac,0xbf,0x49,0x35,0x0, 0xce,0x74,0x2, 0xac,0xbf,0x59,0x35,0x4, 0x31,0xb, 0xf0, +0x12,0xf, 0xe8,0x38,0xe9,0x75,0x1e,0x0, 0x7e,0xb3,0x4, 0xd9,0x54,0x7f,0x7a,0xb3, +0x4, 0xd9,0xe5,0x26,0x20,0xe0,0xba,0x74,0x1, 0x7a,0xb3,0x0, 0xb9,0x80,0xb2,0xe5, +0x18,0x7a,0xb3,0x3, 0xc4,0xda,0xf8,0x22,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24, +0x22,0x1e,0xb0,0x54,0x1, 0xa, 0x3b,0x3e,0x34,0x22,0x12,0x22,0x76,0x7e,0xa3,0x0, +0xb4,0xbe,0xa0,0x1, 0x22,0x7e,0xa3,0x2, 0xa3,0x7c,0xba,0x54,0x1, 0xa, 0x3b,0x3e, +0x34,0x7c,0xb7,0x42,0xe1,0x22,0x7c,0xba,0xc4,0x3, 0x54,0x7, 0xa, 0x3b,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x22,0x5e,0x70,0xf, 0x7c,0xb7,0xc4,0x54, +0xf0,0x22,0x7c,0xab,0x80,0x7, 0x7e,0x34,0x0, 0x42,0x12,0x3f,0x3f,0x7c,0x7a,0x1b, +0xa0,0xa5,0xbf,0x0, 0xf1,0x22,0x7e,0x27,0x2, 0xac,0x6c,0x66,0x80,0x6, 0x12,0x25, +0x95,0x12,0x25,0x5d,0x7e,0x73,0x2, 0x58,0xbc,0x76,0x38,0xf2,0x22,0x7c,0xb6,0x24, +0xb, 0x7c,0x7a,0x12,0x23,0x55,0xb, 0x60,0x22,0x7e,0xb3,0x2, 0xab,0x20,0xe7,0x24, +0x7e,0x27,0x2, 0xac,0x6c,0x66,0x80,0x14,0x12,0x25,0x95,0x12,0x27,0x2, 0x60,0x5, +0x3e,0x44,0x14,0x78,0xfb,0x7c,0x79,0x4c,0xa7,0x12,0x25,0x5d,0x7e,0x73,0x2, 0x58, +0xbc,0x76,0x38,0xe4,0x22,0xa, 0x16,0x9, 0x71,0x2, 0x7d,0xa, 0x17,0x2d,0x12,0x7e, +0x19,0xa0,0x22,0x6c,0x77,0xa, 0x27,0x9, 0x62,0x0, 0xc0,0x19,0x62,0x0, 0xc2,0xb, +0x70,0xbe,0x70,0x2, 0x40,0xef,0x7e,0x73,0x0, 0x54,0x12,0x25,0x29,0x4c,0x7b,0x7a, +0x73,0x0, 0x54,0x7e,0x73,0x0, 0x55,0x12,0x25,0x29,0x4c,0x7b,0x7a,0x73,0x0, 0x55, +0x22,0x7e,0x37,0x0, 0x5a,0x4d,0x33,0x78,0x30,0x12,0x7, 0x7d,0xbe,0xb0,0x0, 0x28, +0x5, 0x75,0x27,0x0, 0xc1,0xab,0x7e,0xb3,0x0, 0x5c,0x20,0xe0,0x2, 0xc1,0xab,0x7e, +0x53,0x0, 0x61,0xbe,0x51,0x27,0x28,0x2, 0xc1,0xab,0x75,0x27,0x0, 0x7e,0x24,0x0, +0x1, 0x7a,0x27,0x0, 0x5a,0x74,0x1, 0x80,0x73,0xbe,0x34,0x0, 0x1, 0x78,0x19,0x12, +0x7, 0x7d,0x78,0x2, 0xc1,0xab,0x6d,0x22,0x7a,0x27,0x0, 0x5a,0xe4,0x7a,0xb3,0x3, +0xad,0x75,0x28,0x22,0xd2,0x1, 0xc1,0xab,0xbe,0x34,0x0, 0x3, 0x78,0x7d,0xa9,0xd6, +0xeb,0xa9,0xc6,0xac,0xa9,0xc6,0xec,0xc2,0x96,0xc2,0x95,0xd2,0xb8,0xa9,0xd0,0xb7, +0xd2,0xa8,0x80,0x4, 0xe4,0x12,0x17,0x41,0x12,0x13,0xa4,0x50,0xf7,0x20,0x93,0xfd, +0xa9,0xc0,0xca,0x75,0xe7,0x0, 0x53,0xe1,0xf7,0x74,0x2, 0x12,0x17,0x41,0x12,0xf, +0x2d,0x7a,0x37,0x0, 0x38,0x12,0x0, 0x8, 0xc2,0xa8,0xc2,0x95,0xa9,0xd0,0xca,0x12, +0x27,0xa8,0x12,0x22,0x76,0x6d,0x33,0x7a,0x37,0x0, 0x5a,0xe4,0x7a,0xb3,0x3, 0xad, +0x80,0x29,0xe4,0x12,0x17,0x41,0x20,0x93,0x22,0x7e,0x37,0x0, 0x5a,0x4d,0x33,0x78, +0xe, 0xe5,0xcc,0x54,0x7, 0xbe,0xb0,0x2, 0x68,0x11,0x75,0xcc,0x2, 0x80,0xc, 0xe5, +0xcc,0x54,0x7, 0xbe,0xb0,0x7, 0x68,0x3, 0x75,0xcc,0x7, 0x30,0x1, 0xd4,0x75,0x28, +0x0, 0xc2,0x1, 0x20,0x93,0x3, 0x75,0xcc,0x50,0x22,0xe5,0x9a,0x60,0x5, 0xd2,0x9c, +0xa9,0xd6,0xdf,0x22,0x75,0x18,0x3, 0x75,0x1e,0x0, 0x22,0x7e,0xb3,0x2, 0xab,0x54, +0xbf,0x22,0xca,0x79,0x6d,0x77,0x7a,0x77,0x0, 0x7f,0x7e,0x34,0x3, 0xe8,0x7a,0x37, +0x0, 0x38,0x12,0x26,0xcb,0x7a,0xb3,0x2, 0xab,0x12,0x16,0x25,0x12,0xf, 0x44,0x7a, +0x77,0x0, 0x7f,0x12,0x27,0xb, 0xda,0x79,0x22,0x7a,0x37,0x0, 0x38,0x7e,0x34,0x0, +0x82,0x22,0x7e,0xb3,0x5, 0x27,0x7e,0x44,0x0, 0x1, 0x22,0x7e,0x34,0x0, 0x64,0x7a, +0x37,0x0, 0x38,0x22,0x6d,0x33,0x7a,0x37,0x0, 0x7f,0x12,0x27,0xb, 0x2, 0x27,0x20, +0x7e,0x34,0x3, 0x88,0x7e,0xb3,0x3, 0xe7,0x30,0xe0,0x71,0x54,0xfe,0x7a,0xb3,0x3, +0xe7,0x9, 0x53,0x0, 0x5, 0x7a,0x53,0x0, 0x67,0xa, 0x25,0x12,0x24,0xe8,0x7a,0x27, +0x0, 0x65,0x9, 0x53,0x0, 0x25,0xa, 0x25,0x7a,0x27,0x0, 0x5a,0x9, 0x53,0x0, 0x6, +0x7a,0x53,0x0, 0x5c,0x9, 0x53,0x0, 0x8, 0x7a,0x53,0x0, 0x5e,0xbe,0x50,0xf, 0x40, +0x6, 0x74,0xe, 0x19,0xb3,0x0, 0x8, 0x9, 0x53,0x0, 0x8, 0xa, 0x25,0x2e,0x24,0x2, +0xfe,0x12,0x1d,0x82,0x7a,0xb3,0x0, 0x5d,0x9, 0x53,0x0, 0x9, 0x7a,0x53,0x0, 0x60, +0x7a,0x53,0x0, 0x5f,0x9, 0x53,0x0, 0x7, 0x7a,0x53,0x0, 0x61,0x9, 0x53,0x0, 0x24, +0x7a,0x53,0x0, 0x62,0x9, 0x73,0x0, 0x2e,0x7a,0x73,0x0, 0xb4,0x22,0x7e,0xb3,0x2, +0xab,0x44,0x80,0x7a,0xb3,0x2, 0xab,0x22,0x75,0xeb,0x3, 0xa9,0xd6,0xac,0xa9,0xd6, +0xec,0xd2,0x86,0x22,0xe4,0x12,0x3f,0x58,0x12,0x27,0xa8,0x12,0x27,0xeb,0x74,0x1, +0x2, 0x27,0xc3,0x70,0x3, 0xc2,0xaf,0x22,0xd2,0xaf,0x22,0x12,0x27,0xb4,0x2, 0x0, +0x17,0xc2,0x8e,0xe5,0x89,0x54,0xf, 0x44,0x20,0xf5,0x89,0x75,0x8d,0x1, 0x75,0x8b, +0x0, 0xd2,0x8e,0xd2,0xab,0xa9,0xc3,0xb7,0xd2,0xbb,0x22,0xa9,0xd1,0x99,0x75,0x9a, +0xfe,0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0x12,0x2d,0x17,0x30,0xe, 0x36,0x7e,0xf, 0x0, +0xba,0x7e,0x1f,0x0, 0x56,0x2f,0x10,0x7e,0x8, 0x0, 0x64,0x12,0x0, 0xe5,0xbe,0x18, +0x5, 0xdc,0x8, 0x8, 0x12,0x3e,0x4f,0xbe,0xb0,0x2, 0x40,0x6, 0xbe,0x18,0x9, 0xc4, +0x8, 0x11,0x7e,0x34,0x1, 0x2c,0x7a,0x37,0x1, 0xfe,0x7e,0x34,0x0, 0xa, 0x7a,0x35, +0x31,0x80,0x1a,0x7e,0x35,0x31,0x4d,0x33,0x68,0xb, 0x1b,0x34,0x7a,0x35,0x31,0x7e, +0x34,0x1, 0x2c,0x80,0x4, 0x7e,0x34,0x0, 0xc8,0x7a,0x37,0x1, 0xfe,0x12,0x2a,0x16, +0x12,0x2b,0x45,0x2, 0x28,0x56,0xca,0xd8,0xca,0x79,0x6c,0xff,0x7e,0x35,0x2c,0x9, +0x73,0x0, 0x1a,0x5e,0x70,0xf, 0x7e,0x63,0x4, 0x8a,0xbe,0x60,0x1, 0x28,0x4d,0xbe, +0x73,0x4, 0x8a,0x50,0x47,0x30,0xe, 0x44,0x6c,0xee,0x80,0x35,0x7e,0x70,0x7, 0xac, +0x7e,0x9, 0xb3,0x4, 0x91,0x30,0xe1,0x27,0x30,0xe0,0x4, 0xb, 0xf0,0x80,0x20,0xbe, +0xf0,0x0, 0x28,0x1b,0x9, 0xd3,0x4, 0x90,0x7c,0xbd,0x12,0x28,0xc1,0x60,0x10,0x7c, +0xbd,0x7e,0x70,0x6, 0x12,0x29,0x16,0x12,0x2a,0xef,0xac,0x5e,0x12,0x2a,0xf8,0xb, +0xe0,0x7e,0x73,0x4, 0x8a,0xbc,0x7e,0x38,0xc3,0x12,0x2b,0x8, 0xda,0x79,0xda,0xd8, +0x22,0x12,0x29,0x75,0x7e,0xb3,0x2, 0xc3,0x12,0x28,0xe4,0x78,0x12,0x7e,0xb3,0x2, +0xc4,0x12,0x28,0xe4,0x78,0x9, 0x7e,0xb3,0x2, 0xc5,0x12,0x28,0xe4,0x68,0x3, 0x74, +0x1, 0x22,0xe4,0x22,0x12,0x28,0xec,0xa, 0x3b,0x4d,0x33,0x22,0x7c,0xab,0x6c,0x77, +0x80,0x11,0xa, 0x27,0x2e,0x25,0x2c,0x7e,0x29,0x60,0xbc,0x6a,0x78,0x3, 0x74,0x1, +0x22,0xb, 0x70,0x7e,0x25,0x2c,0x9, 0xb2,0x0, 0x1a,0x54,0xf, 0xa, 0x1b,0xa, 0x27, +0xbd,0x21,0x48,0xde,0xe4,0x22,0xca,0x79,0x7c,0xe7,0x7c,0xfb,0x7a,0xf3,0x2, 0xae, +0x7e,0x34,0x2, 0xae,0x12,0x29,0x7d,0x7c,0xbf,0x12,0x17,0x5b,0x7e,0xa3,0x2, 0xae, +0x74,0x4, 0xa4,0x2e,0x55,0x2a,0x49,0x15,0x0, 0x2, 0xb, 0x58,0x0, 0x7a,0xf, 0x2, +0xb2,0xbf,0x1, 0x78,0x3, 0xe4,0x80,0x2a,0x12,0x17,0xe2,0xa, 0x1e,0x6d,0x0, 0x12, +0x0, 0x78,0x7f,0x1, 0x7e,0x1f,0x2, 0xb2,0xbf,0x10,0x8, 0x15,0x7e,0x1f,0x2, 0xb2, +0xbe,0x18,0x7, 0xd0,0x8, 0xb, 0x7c,0xbf,0x12,0x28,0xc1,0x60,0x4, 0x74,0x1, 0x80, +0x1, 0xe4,0xda,0x79,0x22,0x7a,0xb3,0x2, 0xc2,0x7e,0x34,0x2, 0xc2,0x7d,0x23,0x7e, +0x29,0xa0,0xbe,0xa0,0x10,0x50,0x3a,0xa, 0x3a,0x2e,0x34,0x0, 0x8, 0x7c,0xb7,0x19, +0xb2,0x0, 0x1, 0xb4,0x10,0x6, 0xa, 0x3b,0xb, 0x34,0x80,0x5a,0xa, 0x3b,0xb4,0x17, +0x9, 0x1b,0x34,0x12,0x2a,0x0, 0x1b,0x34,0x80,0x51,0x1b,0x34,0x7c,0xb7,0x19,0xb2, +0x0, 0x2, 0x9, 0xb2,0x0, 0x1, 0xa, 0x3b,0xb, 0x34,0x7c,0xb7,0x19,0xb2,0x0, 0x3, +0x22,0xa, 0x3a,0x9e,0x34,0x0, 0x8, 0x19,0x72,0x0, 0x1, 0xa5,0xbf,0x8, 0xd, 0xa, +0x17,0xb, 0x14,0x12,0x2a,0xb, 0xa, 0x16,0xb, 0x14,0x80,0xf, 0xa5,0xbf,0xf, 0x12, +0xa, 0x17,0x1b,0x14,0x12,0x2a,0xb, 0xa, 0x16,0x1b,0x14,0x7c,0x63,0x19,0x62,0x0, +0x3, 0x22,0xa, 0x37,0x1b,0x34,0x12,0x2a,0x0, 0xb, 0x34,0x19,0x72,0x0, 0x3, 0x22, +0x19,0x72,0x0, 0x2, 0x9, 0x72,0x0, 0x1, 0xa, 0x37,0x22,0x7c,0x63,0x19,0x62,0x0, +0x2, 0x9, 0x62,0x0, 0x1, 0x22,0x12,0x2a,0x26,0x7a,0xb3,0x4, 0x8a,0xbe,0xb0,0x1, +0x28,0x3, 0x2, 0x2a,0x30,0x22,0x7e,0x35,0x2c,0x9, 0xb3,0x0, 0x1a,0x54,0xf, 0x22, +0xca,0xd8,0xca,0x79,0xc2,0xf, 0x12,0x2a,0x26,0xbe,0xb0,0x1, 0x38,0x2, 0x41,0xde, +0x7e,0xb3,0x4, 0xa7,0x70,0x2, 0x41,0xde,0x7e,0xf0,0x1, 0x41,0xd4,0xc2,0xf, 0x74, +0x7, 0xac,0xbf,0x9, 0xe5,0x4, 0x90,0x9, 0xd5,0x4, 0x8f,0x49,0xd5,0x4, 0x8d,0x49, +0xc5,0x4, 0x8b,0x7c,0xbe,0x7e,0x70,0xe, 0x12,0x2b,0xb2,0x7f,0x71,0xbe,0xd0,0x19, +0x40,0x2, 0xd2,0xf, 0xbe,0x68,0x9, 0xc4,0x48,0x7, 0xbe,0xd0,0xa, 0x40,0x2, 0xd2, +0xf, 0x7f,0x17,0x2e,0x18,0x5, 0xdc,0xbf,0x61,0x8, 0x7, 0xbe,0xd0,0x3, 0x40,0x2, +0xd2,0xf, 0x7e,0x8, 0x0, 0x4, 0x7e,0x1f,0x4, 0x8b,0x12,0x0, 0xe5,0x2e,0x18,0x5, +0xdc,0xbf,0x61,0x8, 0x13,0xbe,0x68,0x1f,0x40,0x8, 0xd, 0x12,0x2a,0xe6,0x20,0xe1, +0x7, 0xbe,0xd0,0x3, 0x40,0x2, 0xd2,0xf, 0xbe,0x68,0x4e,0x20,0x8, 0x8, 0x12,0x2a, +0xe6,0x20,0xe1,0x2, 0xd2,0xf, 0xa2,0xf, 0xe4,0x33,0x12,0x2a,0xef,0xac,0x5f,0x12, +0x2a,0xf8,0xb, 0xf0,0x12,0x2a,0x26,0x12,0x2f,0xe2,0x58,0x2, 0x41,0x4d,0x12,0x2b, +0x8, 0xda,0x79,0xda,0xd8,0x22,0x74,0x7, 0xac,0xbf,0x9, 0xb5,0x4, 0x91,0x22,0x7c, +0x6b,0x5e,0x60,0x1, 0x7e,0x50,0x7, 0x22,0x2e,0x24,0x4, 0x91,0x7e,0x29,0x70,0x5e, +0x70,0xfe,0x4c,0x76,0x7a,0x29,0x70,0x22,0x6c,0x66,0x6c,0x77,0x7e,0x50,0x7, 0xac, +0x57,0x9, 0xb2,0x4, 0x91,0x30,0xe0,0x10,0x9, 0xa2,0x4, 0x90,0x7c,0x56,0xb, 0x60, +0xa, 0x25,0x2e,0x25,0x2c,0x7a,0x29,0xa0,0xb, 0x70,0xbe,0x70,0x4, 0x40,0xdd,0x5e, +0x60,0xf, 0x7e,0x25,0x2c,0x2e,0x24,0x0, 0x1a,0x7e,0x29,0x70,0x5e,0x70,0xf0,0x4c, +0x76,0x7a,0x29,0x70,0x22,0xca,0xd8,0xca,0x79,0x12,0x7, 0x7d,0x68,0x5f,0x7e,0xb3, +0x4, 0xa7,0x60,0x59,0x6c,0xff,0x80,0x4a,0x7e,0x70,0x7, 0xac,0x7f,0x9, 0xb3,0x4, +0x91,0x30,0xe0,0x3c,0x9, 0xe3,0x4, 0x90,0x9, 0xd3,0x4, 0x8f,0x49,0xd3,0x4, 0x8d, +0x49,0xc3,0x4, 0x8b,0x7c,0xbe,0x7e,0x70,0x10,0x12,0x2b,0xb2,0x7f,0x51,0xbe,0xd0, +0x8, 0x50,0x1d,0x7f,0x15,0x2e,0x18,0x3, 0x41,0xbf,0x61,0x58,0x13,0xbe,0x68,0xb, +0xb8,0x58,0xd, 0x7e,0x70,0x7, 0xac,0x7f,0x12,0x2f,0xe9,0x54,0xfe,0x7a,0x39,0xb0, +0xb, 0xf0,0x7e,0x73,0x4, 0x8a,0xbc,0x7f,0x38,0xae,0x12,0x2b,0x8, 0xda,0x79,0xda, +0xd8,0x22,0xca,0x79,0x7c,0xa7,0x7c,0x9b,0x9f,0x0, 0xa, 0x39,0x12,0x2f,0xf1,0x7c, +0x45,0xa, 0x39,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x7c,0x57,0xa5,0xbc,0x0, 0x8, 0x7e, +0xe0,0x2, 0x7e,0xf0,0x2, 0x80,0x16,0xa, 0x74,0xa5,0xbc,0x7, 0x6, 0x1b,0x75,0x7c, +0xef,0x80,0xa, 0x1b,0x74,0x7c,0xef,0xa, 0x34,0xb, 0x34,0x7c,0xf7,0x7e,0x70,0x8, +0xac,0x75,0x2c,0xe7,0x2c,0xf7,0x7e,0x90,0x4, 0xac,0x9f,0x2e,0x45,0x2a,0x12,0x2d, +0xf, 0x7e,0x90,0x4, 0xac,0x9e,0x2e,0x45,0x2a,0x12,0x2c,0x26,0xbf,0x71,0x8, 0x2, +0x80,0x2, 0x7f,0x17,0xbe,0x18,0x0, 0x0, 0x58,0x2, 0x7f,0x10,0xa, 0x1a,0x6d,0x0, +0x12,0x17,0xdf,0xda,0x79,0x22,0x49,0xf4,0x0, 0x2, 0xb, 0x48,0xe0,0x22,0x7c,0x3b, +0x4d,0x33,0x78,0x2, 0xa1,0xa, 0x4d,0x22,0x78,0x2, 0xa1,0xa, 0xe4,0x7a,0xb3,0x2, +0x3c,0x6c,0xaa,0x80,0x6c,0x12,0x41,0xed,0x12,0x2c,0x26,0xbe,0x7c,0xf8,0x30,0x58, +0x5, 0xbe,0xa0,0x20,0x40,0x15,0xbe,0x7c,0xf2,0x54,0x58,0x4c,0xbe,0xa0,0x20,0x40, +0x47,0x7e,0x7f,0x1, 0xa4,0xbe,0x78,0xb, 0xb8,0x58,0x3d,0xa, 0xa, 0x9, 0xb0,0x4, +0xd, 0xbe,0xb0,0xfa,0x50,0xa, 0x7d,0xf0,0x2e,0xf4,0x4, 0xd, 0x4, 0x7a,0xf9,0xb0, +0x9, 0x20,0x4, 0xd, 0xbe,0x20,0xf, 0x28,0x26,0x7e,0x10,0x2, 0xac,0x1a,0x2d,0x2, +0xb, 0x8, 0xd0,0x6d,0xcc,0x12,0x2c,0x26,0x2f,0x76,0xbe,0x78,0x32,0xc8,0x58,0xf, +0x74,0x1, 0x7a,0xb3,0x2, 0x3c,0x80,0x7, 0xe4,0xa, 0x4a,0x19,0xb4,0x4, 0xd, 0xb, +0xa0,0xbc,0x3a,0x38,0x90,0x6c,0xaa,0x80,0x49,0x7e,0x50,0x4, 0xac,0x5a,0x2d,0x23, +0x49,0x12,0x0, 0x2, 0xb, 0x28,0x0, 0xbe,0xc, 0xfd,0x6c,0x58,0x2c,0x7e,0xb3,0x2, +0x3c,0x70,0x26,0xa, 0x2a,0x9, 0xb2,0x3, 0xe9,0xbe,0xb0,0xfa,0x50,0xa, 0x7d,0x42, +0x2e,0x44,0x3, 0xe9,0x4, 0x7a,0x49,0xb0,0x9, 0xb2,0x3, 0xe9,0xbe,0xb0,0x14,0x28, +0xf, 0x74,0x2, 0x7a,0xb3,0x2, 0x3c,0x80,0x7, 0xe4,0xa, 0x2a,0x19,0xb2,0x3, 0xe9, +0xb, 0xa0,0x7e,0xb3,0x2, 0x56,0xbc,0xba,0x38,0xaf,0x22,0x2e,0x44,0x0, 0xcc,0x49, +0x34,0x0, 0x2, 0xb, 0x48,0x20,0x22,0x12,0x2f,0x4d,0xc2,0xf, 0x7e,0x34,0x4, 0xa9, +0x12,0x2d,0xc9,0xd2,0xf, 0x7e,0x34,0x4, 0x84,0x12,0x2d,0xc9,0x7e,0x34,0x4, 0xa9, +0x12,0x2d,0x76,0x7e,0x34,0x4, 0x84,0x12,0x2d,0x76,0x7e,0xb3,0x4, 0x89,0x1e,0xb0, +0x54,0x3, 0xa, 0x2b,0x7e,0xb3,0x4, 0xae,0x1e,0xb0,0x54,0x3, 0xa, 0x3b,0x2d,0x32, +0x68,0x5, 0x12,0x2a,0x26,0x78,0x5, 0xc2,0xe, 0x12,0x4e,0x9a,0x7e,0xb3,0x4, 0xae, +0x20,0xe0,0x7, 0x7e,0xb3,0x4, 0x89,0x30,0xe0,0x9, 0xd2,0xe, 0x74,0x78,0x7a,0xb3, +0x4, 0xa7,0x22,0xc2,0xe, 0x22,0x49,0x43,0x0, 0x2, 0x9, 0x53,0x0, 0x4, 0x9, 0xa3, +0x0, 0x5, 0x7c,0xba,0x1e,0xb0,0x54,0x3, 0xbe,0xb0,0x0, 0x28,0x30,0xbe,0x44,0xb, +0xb8,0x28,0x2, 0x80,0x18,0xbe,0x44,0x7, 0xd0,0x28,0x7, 0xbe,0x50,0x14,0x38,0x28, +0x80,0xb, 0xbe,0x44,0x3, 0x20,0x28,0xc, 0xbe,0x50,0x10,0x38,0x1b,0x12,0x2f,0x44, +0x44,0x1, 0x80,0x5, 0x12,0x2f,0x44,0x54,0xfe,0x7a,0x49,0xb0,0x22,0x2e,0x34,0x0, +0x5, 0x7c,0xba,0x54,0xfe,0x7a,0x39,0xb0,0x22,0xca,0x3b,0x7d,0x73,0x6c,0xdd,0x9f, +0x11,0x7a,0x1f,0x2, 0xdf,0x6c,0xcc,0x74,0x4, 0x30,0xf, 0xd, 0x12,0x2f,0x33,0x49, +0x34,0x0, 0xb2,0x49,0x24,0x0, 0xb0,0x80,0xb, 0x12,0x2f,0x33,0x49,0x34,0x0, 0x92, +0x49,0x24,0x0, 0x90,0x59,0x35,0x2, 0xb1,0x59,0x25,0x2, 0xaf,0xb, 0xc0,0xbe,0xc0, +0x8, 0x78,0xd4,0x7e,0x34,0x2, 0xaf,0x7e,0x24,0x2, 0xcf,0x12,0x41,0x74,0x7a,0xb3, +0x2, 0xae,0xbe,0xb0,0x2, 0x28,0x6, 0x74,0x2, 0x7a,0xb3,0x2, 0xae,0x7e,0x63,0x2, +0xae,0x5e,0x60,0x3, 0x3e,0x60,0x7d,0x27,0x2e,0x24,0x0, 0x5, 0x7e,0x29,0x70,0x5e, +0x70,0xf9,0x4c,0x76,0x7a,0x29,0x70,0x7e,0x34,0x2, 0xd7,0x7e,0x24,0x0, 0x8, 0xe4, +0x12,0x2, 0xee,0x7e,0x34,0x2, 0xd7,0x7e,0x24,0x2, 0xcf,0x7e,0xb3,0x2, 0xae,0x12, +0x46,0xb2,0x7e,0xb3,0x2, 0xae,0x70,0x6, 0x7e,0x18,0x0, 0x1, 0x80,0x11,0x7e,0xa3, +0x2, 0xcf,0x74,0x4, 0xa4,0x49,0x35,0x2, 0xb1,0x49,0x25,0x2, 0xaf,0x2f,0x11,0x7a, +0x1f,0x2, 0xdf,0x9f,0x11,0x7a,0x1f,0x2, 0xe3,0x6c,0xcc,0xa, 0x3c,0x9, 0xb3,0x2, +0xd7,0x70,0x1e,0x74,0x4, 0xac,0xbc,0x49,0x15,0x2, 0xb1,0x49,0x5, 0x2, 0xaf,0xbe, +0x8, 0x0, 0x64,0x8, 0xc, 0x7e,0x1f,0x2, 0xe3,0x2f,0x10,0x7a,0x1f,0x2, 0xe3,0xb, +0xd0,0xb, 0xc0,0xbe,0xc0,0x8, 0x78,0xd3,0xbe,0xd0,0x0, 0x28,0x18,0xa, 0x1d,0x6d, +0x0, 0x7e,0x1f,0x2, 0xe3,0x12,0x0, 0xe5,0x7a,0x1f,0x2, 0xe3,0xbe,0x18,0x0, 0x1, +0x58,0x3, 0x12,0x2f,0x3b,0x7e,0x1f,0x2, 0xdf,0xbe,0x18,0x0, 0x1, 0x18,0x8, 0x7e, +0x18,0x0, 0x1, 0x7a,0x1f,0x2, 0xdf,0x7e,0x1f,0x2, 0xe3,0xbe,0x18,0x0, 0x1, 0x18, +0x3, 0x12,0x2f,0x3b,0x7e,0x6f,0x2, 0xe3,0x7e,0x7f,0x2, 0xdf,0x7f,0x17,0x7f,0x6, +0x12,0x0, 0xe5,0xbe,0x34,0x0, 0x64,0x28,0x4, 0x7e,0x34,0x0, 0x64,0xbe,0x68,0xfd, +0xe8,0x48,0x8, 0x7e,0x8, 0xfd,0xe8,0x7a,0xf, 0x2, 0xe3,0xbe,0x78,0xfd,0xe8,0x48, +0x8, 0x7e,0x8, 0xfd,0xe8,0x7a,0xf, 0x2, 0xdf,0x7e,0xf, 0x2, 0xe3,0x7d,0x21,0x59, +0x27,0x0, 0x2, 0x7e,0xf, 0x2, 0xdf,0x7d,0x21,0x1b,0x78,0x20,0x19,0x77,0x0, 0x4, +0xda,0x3b,0x22,0xac,0xbc,0x7d,0x45,0x2e,0x45,0x2a,0x22,0x7e,0x18,0x0, 0x1, 0x7a, +0x1f,0x2, 0xe3,0x22,0x7d,0x43,0x2e,0x44,0x0, 0x5, 0x7c,0xba,0x22,0xca,0x79,0x6c, +0xff,0x7e,0x70,0x7, 0xac,0x7f,0x7d,0x23,0x2e,0x24,0x4, 0x91,0x7e,0x29,0xb0,0x54, +0xfe,0x7a,0x29,0xb0,0x9f,0x0, 0x59,0x13,0x4, 0x8d,0x59,0x3, 0x4, 0x8b,0xe4,0x19, +0xb3,0x4, 0x8f,0xb, 0xf0,0xbe,0xf0,0x4, 0x78,0xd7,0x6c,0xff,0x80,0x59,0xa, 0x3f, +0x2e,0x35,0x2c,0x7e,0x39,0xe0,0x7e,0x30,0x7, 0xac,0x3f,0x19,0xe1,0x4, 0x90,0x7e, +0x10,0x4, 0xac,0x1e,0x2e,0x5, 0x2a,0x12,0x4e,0x92,0x59,0x31,0x4, 0x8d,0x59,0x21, +0x4, 0x8b,0x7c,0xbe,0x12,0x4d,0xdb,0x7c,0xab,0x7e,0x50,0x7, 0xac,0x5f,0x19,0xa2, +0x4, 0x8f,0x7d,0x32,0x12,0x2f,0xe9,0x44,0x1, 0x7a,0x39,0xb0,0xbe,0xe0,0x8, 0x40, +0xc, 0xbe,0xe0,0x18,0x50,0x7, 0x7e,0x39,0xb0,0x44,0x2, 0x80,0x5, 0x7e,0x39,0xb0, +0x54,0xfd,0x7a,0x39,0xb0,0xb, 0xf0,0x12,0x2a,0x26,0x12,0x2f,0xe2,0x48,0x9f,0xda, +0x79,0x22,0xa, 0x2b,0xa, 0x3f,0xbd,0x32,0x22,0x2e,0x34,0x4, 0x91,0x7e,0x39,0xb0, +0x22,0x7e,0x24,0x0, 0x8, 0x2, 0x0, 0x46,0x6d,0x11,0x80,0x3e,0x6d,0x0, 0x80,0x2e, +0x7d,0xf0,0x3e,0xf4,0x3e,0xf4,0x7d,0xef,0x2d,0xe3,0x12,0x30,0x3f,0x49,0x5e,0x0, +0x2, 0xb, 0xe8,0x40,0xbf,0x26,0x58,0x14,0x12,0x30,0x3f,0x59,0xde,0x0, 0x2, 0x1b, +0xe8,0xc0,0x2d,0xf3,0x59,0x5f,0x0, 0x6, 0x59,0x4f,0x0, 0x4, 0xb, 0x4, 0x7d,0xf2, +0x1b,0xf4,0x9d,0xf1,0xbd,0xf0,0x38,0xc8,0xb, 0x14,0xbd,0x21,0x38,0xbe,0x22,0x49, +0xde,0x0, 0x6, 0x49,0xce,0x0, 0x4, 0x22,0xbe,0xb0,0xa, 0x50,0x8, 0x7c,0x1b,0x2e, +0x10,0x16,0xa5,0xe7,0x22,0x2, 0x30,0x58,0xca,0x79,0xb4,0xa, 0x5, 0x7e,0xf0,0x20, +0x21,0x8a,0xb4,0xb, 0x5, 0x7e,0xf0,0x3, 0x21,0x8a,0xb4,0xc, 0x6, 0x7e,0xf3,0x0, +0xb5,0x21,0x8a,0xb4,0xd, 0x1c,0x7e,0xb3,0x0, 0xb4,0xb4,0x1, 0x6, 0x7e,0xf3,0x0, +0xa8,0x21,0x8a,0xb4,0x2, 0x6, 0x7e,0xf3,0x0, 0xae,0x21,0x8a,0x7e,0xf3,0x0, 0xa6, +0x21,0x8a,0xb4,0xe, 0x1c,0x7e,0xb3,0x0, 0xb4,0xb4,0x1, 0x6, 0x7e,0xf3,0x0, 0xa9, +0x21,0x8a,0xb4,0x2, 0x6, 0x7e,0xf3,0x0, 0xaf,0x21,0x8a,0x7e,0xf3,0x0, 0xa7,0x21, +0x8a,0xb4,0xf, 0x6, 0x7e,0xf3,0x0, 0xb6,0x21,0x8a,0xb4,0x10,0x6, 0x7e,0xf3,0x0, +0xb7,0x21,0x8a,0xbe,0xb0,0x11,0x40,0xd, 0xbe,0xb0,0x34,0x38,0x8, 0xa, 0x3b,0x9, +0xf3,0x0, 0x71,0x21,0x8a,0xbe,0xb0,0x35,0x40,0x2b,0xbe,0xb0,0x58,0x38,0x26,0xa, +0x7b,0x9e,0x74,0x0, 0x35,0xbe,0xf0,0x20,0x50,0xc, 0x7c,0xbf,0x7e,0x70,0x20,0x12, +0x1f,0xf9,0xa, 0x3b,0x80,0x2, 0xa, 0x3f,0x2e,0x34,0x2, 0x5e,0x12,0x1d,0x58,0x7c, +0xfb,0xb, 0xf0,0x21,0x8a,0xb4,0x59,0x6, 0x7e,0xf3,0x0, 0xb8,0x80,0x7c,0xb4,0x5a, +0x5, 0x7e,0xf0,0xf, 0x80,0x74,0xb4,0xac,0x13,0x7e,0xb3,0x0, 0xb4,0xb4,0x2, 0x6, +0x7e,0xf3,0x0, 0xb0,0x80,0x64,0x7e,0xf3,0x0, 0xaa,0x80,0x5e,0xb4,0xa0,0x4, 0x6c, +0xff,0x80,0x57,0xb4,0xa1,0x13,0x7e,0xb3,0x0, 0xb4,0xb4,0x2, 0x6, 0x7e,0xf3,0x0, +0xb1,0x80,0x47,0x7e,0xf3,0x0, 0xab,0x80,0x41,0xb4,0xa2,0x13,0x7e,0xb3,0x0, 0xb4, +0xb4,0x2, 0x6, 0x7e,0xf3,0x0, 0xb2,0x80,0x31,0x7e,0xf3,0x0, 0xac,0x80,0x2b,0xb4, +0xa3,0x13,0x7e,0xb3,0x0, 0xb4,0xb4,0x2, 0x6, 0x7e,0xf3,0x0, 0xb3,0x80,0x1b,0x7e, +0xf3,0x0, 0xad,0x80,0x15,0xb4,0xad,0x6, 0x7e,0xf3,0x0, 0xb9,0x80,0xc, 0xb4,0xae, +0x6, 0x7e,0xf3,0x0, 0xb4,0x80,0x3, 0x7e,0xf0,0xee,0x7c,0xbf,0xda,0x79,0x22,0x7c, +0xab,0x24,0x0, 0x78,0x5, 0x7e,0xb3,0x4, 0xd9,0x22,0xbe,0xa0,0xae,0x38,0xc, 0x7e, +0xb3,0x3, 0xc4,0xb4,0x3, 0x24,0x7c,0xba,0x2, 0x30,0x48,0xbe,0xa0,0xb0,0x40,0x1a, +0xbe,0xa0,0xf7,0x38,0x15,0x7e,0xb3,0x3, 0xc4,0xb4,0x3, 0xe, 0xa, 0x3a,0x2e,0x34, +0x4, 0x31,0x9e,0x34,0x0, 0xb0,0x7e,0x39,0xb0,0x22,0x7c,0xba,0x22,0xca,0xf8,0x30, +0x90,0x79,0xd2,0x7, 0x7e,0xb3,0x4, 0xd7,0x4, 0x7a,0xb3,0x4, 0xd7,0x7e,0x93,0x4, +0xd7,0xbe,0x90,0x1, 0x78,0x8, 0xe5,0x91,0x7a,0xb3,0x4, 0xda,0x80,0x36,0x7e,0xf3, +0x4, 0xd9,0x7c,0xbf,0xc4,0x7c,0xfb,0x7c,0x8f,0x5e,0x80,0x7, 0x78,0x8, 0x12,0x33, +0x26,0x12,0x34,0x1e,0x80,0x1e,0xbe,0x80,0x4, 0x78,0x8, 0x12,0x33,0x26,0x12,0x34, +0xb0,0x80,0x11,0x7c,0xbf,0x54,0x7, 0xb4,0x1, 0xa, 0x7e,0xb3,0x4, 0xd7,0x12,0x33, +0x28,0x12,0x3e,0xcf,0x12,0x35,0x65,0x78,0xe, 0xe4,0x12,0x32,0xa3,0xb4,0x10,0x2, +0x80,0x14,0x12,0x35,0xba,0x80,0x12,0xbe,0xf0,0x4, 0x78,0x5, 0x12,0x35,0xb0,0x80, +0x8, 0xbe,0xf0,0x1, 0x78,0x3, 0x12,0x35,0xc4,0xc2,0x90,0x30,0x91,0x52,0xc2,0x7, +0x7e,0xb3,0x4, 0xd5,0x4, 0x12,0x35,0x61,0x78,0x13,0xe4,0x12,0x32,0xa3,0xb4,0x10, +0x6, 0x7e,0xb3,0x4, 0xd5,0x80,0x23,0x7e,0xb3,0x4, 0xd5,0x80,0x28,0xbe,0xf0,0x4, +0x78,0xf, 0x7e,0xb3,0x4, 0xd5,0x2e,0xb3,0x4, 0xda,0x12,0x31,0x8f,0xf5,0x91,0x80, +0x1d,0xbe,0xf0,0x1, 0x7e,0xb3,0x4, 0xd5,0x78,0xb, 0x2e,0xb3,0x4, 0xda,0x12,0x0, +0x27,0xf5,0x91,0x80,0x9, 0x2e,0xb3,0x4, 0xda,0x12,0x32,0xa3,0xf5,0x91,0xc2,0x91, +0xda,0xf8,0x22,0x7c,0x7b,0xbe,0x70,0x80,0x40,0xc, 0xbe,0x70,0xde,0x38,0x7, 0xa, +0x37,0x9, 0xb3,0x3, 0x8, 0x22,0xa5,0xbf,0x0, 0x5, 0x7e,0xb3,0x4, 0xd9,0x22,0x30, +0x6, 0x6, 0x7e,0x24,0x4, 0xb1,0x80,0x4, 0x7e,0x24,0x4, 0xc3,0x7a,0x25,0x24,0x7c, +0xb7,0x14,0xbe,0xb0,0xe, 0x50,0x4c,0x7e,0xa0,0x3, 0xa4,0x90,0x32,0xdf,0x73,0x2, +0x33,0x9, 0x2, 0x33,0x11,0x2, 0x33,0x19,0x2, 0x33,0x19,0x2, 0x33,0x19,0x2, 0x33, +0x19,0x2, 0x33,0x19,0x2, 0x33,0x19,0x2, 0x33,0x19,0x2, 0x33,0x19,0x2, 0x33,0x19, +0x2, 0x33,0x19,0x2, 0x33,0x19,0x2, 0x33,0x19,0x7e,0x35,0x24,0x9, 0xb3,0x0, 0x4, +0x22,0x7e,0x35,0x24,0x9, 0xb3,0x0, 0x3, 0x22,0xa, 0x37,0x2e,0x35,0x24,0x9, 0xb3, +0x0, 0x2, 0x22,0x74,0xff,0x22,0x7c,0xb9,0x2e,0xb3,0x4, 0xda,0x24,0xfe,0x7e,0x71, +0x91,0x22,0xbe,0xb0,0xa, 0x50,0xa, 0x7c,0x1b,0x2e,0x10,0x16,0x7c,0xb7,0xa5,0xf7, +0x22,0x2, 0x33,0x44,0x7c,0xa7,0xb4,0xc, 0x6, 0x7e,0x34,0x0, 0xb5,0x81,0xf, 0xb4, +0xd, 0x1c,0x7e,0xb3,0x0, 0xb4,0xb4,0x1, 0x6, 0x7e,0x34,0x0, 0xa8,0x81,0xf, 0xb4, +0x2, 0x6, 0x7e,0x34,0x0, 0xae,0x81,0xf, 0x7e,0x34,0x0, 0xa6,0x81,0xf, 0xb4,0xe, +0x1c,0x7e,0xb3,0x0, 0xb4,0xb4,0x1, 0x6, 0x7e,0x34,0x0, 0xa9,0x81,0xf, 0xb4,0x2, +0x6, 0x7e,0x34,0x0, 0xaf,0x81,0xf, 0x7e,0x34,0x0, 0xa7,0x81,0xf, 0xb4,0xf, 0x6, +0x7e,0x34,0x0, 0xb6,0x80,0x79,0xb4,0x10,0x6, 0x7e,0x34,0x0, 0xb7,0x80,0x70,0xb4, +0x59,0x9, 0x7e,0x34,0x0, 0xb8,0x43,0x26,0x4, 0x80,0x6f,0xb4,0xac,0x13,0x7e,0xb3, +0x0, 0xb4,0xb4,0x2, 0x6, 0x7e,0x34,0x0, 0xb0,0x80,0x54,0x7e,0x34,0x0, 0xaa,0x80, +0x4e,0xb4,0xa1,0x13,0x7e,0xb3,0x0, 0xb4,0xb4,0x2, 0x6, 0x7e,0x34,0x0, 0xb1,0x80, +0x3e,0x7e,0x34,0x0, 0xab,0x80,0x38,0xb4,0xa2,0x13,0x7e,0xb3,0x0, 0xb4,0xb4,0x2, +0x6, 0x7e,0x34,0x0, 0xb2,0x80,0x28,0x7e,0x34,0x0, 0xac,0x80,0x22,0xb4,0xa3,0x13, +0x7e,0xb3,0x0, 0xb4,0xb4,0x2, 0x6, 0x7e,0x34,0x0, 0xb3,0x80,0x12,0x7e,0x34,0x0, +0xad,0x80,0xc, 0xb4,0xae,0xe, 0x7e,0x34,0x0, 0xb4,0xe4,0x7a,0xb3,0x0, 0xb9,0x43, +0x26,0x1, 0x80,0x6, 0xb4,0xaf,0x6, 0x2, 0x35,0xd9,0x7a,0x39,0xa0,0x22,0x7c,0x7, +0xbe,0xb0,0x80,0x40,0xb, 0xbe,0xb0,0xde,0x38,0x6, 0x24,0x80,0x7c,0x70,0x80,0x7c, +0x24,0x0, 0x78,0x7b,0x7e,0x14,0x4, 0xd9,0x7a,0x19,0x0, 0x5e,0x0, 0x70,0x7c,0xb0, +0xc4,0x54,0xf, 0x7c,0xb, 0xa5,0xb8,0x4, 0x15,0x7e,0xb3,0x3, 0xc4,0xb4,0x3, 0x7, +0x74,0x2, 0x7e,0x70,0x3, 0x80,0x34,0x74,0x3c,0x7e,0x70,0x3, 0x80,0x4e,0x7e,0xb3, +0x3, 0xc4,0xb4,0x3, 0x29,0x74,0x2, 0x7e,0x70,0x1, 0x12,0x33,0x32,0xa5,0xb8,0x1, +0x6, 0x74,0x2, 0x6c,0x77,0x80,0x14,0xa5,0xb8,0x0, 0x7, 0x74,0x2, 0x7e,0x70,0x1, +0x80,0x9, 0xa5,0xb8,0x3, 0x29,0x74,0x2, 0x7e,0x70,0x4, 0x2, 0x33,0x32,0xa5,0xb8, +0x1, 0x6, 0x74,0x3c,0x6c,0x77,0x80,0x14,0xa5,0xb8,0x4, 0x7, 0x74,0x3c,0x7e,0x70, +0x3, 0x80,0x9, 0xa5,0xb8,0x3, 0x8, 0x74,0x3c,0x7e,0x70,0x4, 0x2, 0x37,0x4d,0x22, +0x7c,0x6b,0x14,0x68,0x78,0x4, 0x68,0x2, 0xa1,0x39,0x7e,0x44,0x4, 0xd9,0x7a,0x49, +0x70,0x5e,0x70,0x70,0x7c,0xb7,0xc4,0x54,0xf, 0x7c,0x7b,0xbe,0x70,0x4, 0x68,0x47, +0x7e,0xb3,0x3, 0xc4,0xb4,0x3, 0x20,0xa5,0xbf,0x1, 0x6, 0x74,0x2, 0x6c,0x77,0x80, +0x66,0xa5,0xbf,0x0, 0x7, 0x74,0x2, 0x7e,0x70,0x1, 0x80,0x5b,0xa5,0xbf,0x3, 0x70, +0x74,0x2, 0x7e,0x70,0x4, 0x80,0x50,0xa5,0xbf,0x1, 0x6, 0x74,0x3c,0x6c,0x77,0x80, +0x29,0xa5,0xbf,0x4, 0x7, 0x74,0x3c,0x7e,0x70,0x3, 0x80,0x1e,0xa5,0xbf,0x3, 0x50, +0x74,0x3c,0x7e,0x70,0x4, 0x80,0x13,0x7e,0xb3,0x3, 0xc4,0xb4,0x3, 0x7, 0x74,0x2, +0x7e,0x70,0x3, 0x80,0x22,0x74,0x3c,0x7e,0x70,0x3, 0x2, 0x37,0x4d,0x7a,0x73,0x4, +0xd8,0x7e,0x54,0x4, 0x31,0x7a,0x55,0x22,0x22,0xbe,0x60,0xa, 0x50,0xc, 0x7e,0xb3, +0x3, 0xc4,0xb4,0x3, 0x1b,0x7c,0xb6,0x2, 0x33,0x32,0xbe,0x60,0xa, 0x40,0x11,0xbe, +0x60,0xaf,0x38,0xc, 0x7e,0xb3,0x3, 0xc4,0xb4,0x3, 0x5, 0x7c,0xb6,0x2, 0x33,0x44, +0x22,0x7a,0xb3,0x4, 0xd5,0x7e,0xb3,0x4, 0xd9,0xc4,0x7c,0xfb,0x5e,0xf0,0x7, 0x22, +0xca,0xf8,0xe4,0x12,0x35,0x61,0x78,0x5, 0x12,0x35,0xba,0x80,0x12,0xbe,0xf0,0x4, +0x78,0x5, 0x12,0x35,0xb0,0x80,0x8, 0xbe,0xf0,0x1, 0x78,0x3, 0x12,0x35,0xc4,0x75, +0x91,0x0, 0xe4,0x7a,0xb3,0x4, 0xd7,0x7a,0xb3,0x4, 0xd6,0x74,0xaa,0x7a,0xb3,0x4, +0xb1,0x7a,0xb3,0x4, 0xb2,0x7a,0xb3,0x4, 0xc3,0x7a,0xb3,0x4, 0xc4,0xda,0xf8,0x22, +0x7e,0xb3,0x4, 0xda,0x12,0x31,0x8f,0xf5,0x91,0x22,0x7e,0xb3,0x4, 0xda,0x12,0x32, +0xa3,0xf5,0x91,0x22,0x7e,0xb3,0x4, 0xda,0x12,0x0, 0x27,0xf5,0x91,0x22,0xe4,0x7a, +0xb3,0x4, 0xd9,0x12,0x37,0x81,0x2, 0x35,0x70,0x30,0x8, 0x8, 0x74,0x1, 0x12,0x35, +0xeb,0xc2,0x8, 0x22,0xe4,0x12,0x35,0xeb,0xd2,0x8, 0x22,0x70,0x3, 0xd2,0x86,0x22, +0xc2,0x86,0x22,0xca,0x3b,0x7c,0xeb,0x6c,0xaa,0x20,0x0, 0x8, 0x20,0x5, 0x5, 0x20, +0x2, 0x2, 0xe1,0x33,0x20,0x6, 0x6, 0x7e,0x4, 0x4, 0xb1,0x80,0x4, 0x7e,0x4, 0x4, +0xc3,0x7d,0x30,0x12,0x3f,0x0, 0x74,0xaa,0x7a,0x9, 0xb0,0x19,0xb0,0x0, 0x1, 0x74, +0x12,0x19,0xb0,0x0, 0x2, 0x7e,0xb3,0x0, 0x7c,0x19,0xb0,0x0, 0x4, 0x6c,0x77,0x6c, +0xff,0x7e,0x50,0x5, 0xac,0x5f,0x9, 0x62,0x0, 0x6c,0xbe,0x60,0xff,0x78,0x2, 0xc1, +0xdb,0xa, 0x46,0x9, 0xb4,0x0, 0xc0,0xbe,0xb0,0x3, 0x78,0x2, 0xc1,0xdb,0x49,0x12, +0x0, 0x68,0x7d,0x61,0xa, 0x6c,0x7d,0xf6,0x5e,0xf4,0x0, 0xf, 0x7d,0x6f,0x7c,0x6d, +0xa, 0xf7,0x2d,0xf0,0x19,0x6f,0x0, 0x5, 0x7c,0x63,0xa, 0x17,0x2d,0x10,0x19,0x61, +0x0, 0x6, 0x49,0x12,0x0, 0x6a,0xa, 0x22,0x5e,0x24,0x0, 0xf, 0x7c,0x65,0xa, 0x27, +0x2d,0x20,0x19,0x62,0x0, 0x7, 0x7c,0x63,0xa, 0x27,0x2d,0x20,0x19,0x62,0x0, 0x8, +0xe4,0xa, 0x27,0x2d,0x20,0x19,0xb2,0x0, 0x9, 0xa, 0x27,0x2d,0x20,0x19,0xb2,0x0, +0xa, 0x12,0x37,0x43,0xc4,0x54,0xf0,0xa, 0x27,0x2d,0x20,0x2e,0x24,0x0, 0x7, 0x12, +0x37,0x3a,0x12,0x37,0x43,0xbe,0xb0,0xff,0x68,0x1e,0x9, 0xb4,0x0, 0xc0,0xbe,0xb0, +0x1, 0x68,0x2, 0xb, 0xa0,0x9, 0xb4,0x0, 0xc0,0x3, 0x3, 0x54,0xc0,0xa, 0x27,0x2d, +0x20,0x2e,0x24,0x0, 0x5, 0x12,0x37,0x3a,0x2e,0x70,0x6, 0xb, 0xf0,0xbe,0xf0,0x2, +0x68,0x2, 0xc1,0x31,0x19,0xa0,0x0, 0x3, 0xe4,0x19,0xb0,0x0, 0x11,0x6c,0xff,0xa, +0x1f,0x2d,0x10,0x7e,0x19,0x60,0x7d,0x10,0x2e,0x14,0x0, 0x11,0x7e,0x19,0x70,0x6c, +0x76,0x7a,0x19,0x70,0xb, 0xf0,0xbe,0xf0,0x11,0x78,0xe4,0x30,0x6, 0x4, 0xc2,0x6, +0x80,0x2, 0xd2,0x6, 0x30,0x5, 0x3, 0x12,0x4d,0xb4,0xc2,0x0, 0xc2,0x5, 0xc2,0x2, +0x74,0x1, 0x12,0x35,0xeb,0x7e,0x34,0x0, 0x3, 0x12,0x3f,0x3f,0xbe,0xe0,0x1, 0x78, +0x6, 0x80,0x0, 0xe4,0x12,0x35,0xeb,0xda,0x3b,0x22,0x7e,0x29,0x60,0x2c,0x6b,0x7a, +0x29,0x60,0x22,0x7e,0x50,0x5, 0xac,0x5f,0x9, 0xb2,0x0, 0x6c,0x22,0xbe,0xb0,0x5e, +0x38,0x2e,0xbe,0xb0,0x26,0x68,0x29,0xbe,0xb0,0x2f,0x68,0x24,0xbe,0xb0,0x23,0x68, +0x1f,0xbe,0xb0,0x28,0x68,0x1a,0xbe,0xb0,0x21,0x68,0x15,0xbe,0xb0,0x22,0x68,0x10, +0xa, 0x2b,0x19,0x72,0x3, 0x88,0x7e,0xb3,0x3, 0xe7,0x44,0x1, 0x7a,0xb3,0x3, 0xe7, +0x22,0x7e,0x50,0x70,0x7e,0x34,0x78,0x0, 0x12,0x37,0xb6,0x7c,0x4b,0x7e,0x34,0x78, +0x1, 0x12,0x37,0xb6,0xbe,0x40,0xff,0x68,0x7, 0x6c,0xb4,0xb4,0xff,0x2, 0x7c,0x54, +0xd2,0xce,0x7a,0x51,0x92,0xd2,0xad,0xd2,0xe8,0xc2,0xc0,0xa9,0xd0,0xf7,0xd2,0xf8, +0xa9,0xd5,0xb7,0xd2,0xbd,0x22,0x12,0x37,0xe6,0x75,0xf5,0x1, 0xa9,0x37,0xf5,0xfc, +0xa9,0x36,0xf5,0xfc,0x2, 0x37,0xc7,0xe5,0xf6,0x43,0xfa,0x80,0xc2,0xc9,0xd2,0xaf, +0x22,0x7e,0x34,0x0, 0x20,0x12,0x37,0xe6,0x75,0xf5,0x3, 0xa9,0x37,0xf5,0xfc,0xa9, +0x36,0xf5,0xfc,0x2, 0x37,0xc7,0xc2,0xaf,0xd2,0xc9,0xa, 0x56,0xf5,0xf1,0x7c,0xb7, +0xf5,0xf2,0x75,0xf3,0x80,0x75,0xf4,0x0, 0x22,0x70,0x18,0x7e,0x1f,0x1, 0x50,0x7e, +0xf, 0x1, 0x4c,0x2f,0x1, 0x7e,0x1f,0x1, 0x54,0x2f,0x10,0xbe,0x18,0x6, 0x40,0x58, +0x2, 0xc2,0xd, 0x22,0x75,0x28,0x0, 0xc2,0x1, 0x7e,0xb3,0x3, 0xad,0x70,0x7, 0x7e, +0xb3,0x0, 0x5d,0xf5,0x29,0x22,0x7e,0xb3,0x0, 0x5f,0xf5,0x29,0x22,0x12,0xe, 0xa7, +0x74,0xf, 0x7a,0xb3,0x2, 0x36,0x74,0x5, 0x7a,0xb3,0x2, 0x38,0x7a,0xb3,0x2, 0x37, +0x74,0xf, 0x7a,0xb3,0x2, 0x39,0x7e,0x34,0x0, 0x32,0x7a,0x37,0x1, 0xf0,0x7e,0xb3, +0x2, 0x54,0x44,0x1, 0x7a,0xb3,0x2, 0x54,0x74,0x2, 0x7a,0xb3,0x2, 0xc, 0x7e,0xb3, +0x2, 0x54,0x30,0xe0,0x10,0x74,0x2, 0x7a,0xb3,0x2, 0xd, 0x74,0x8, 0x7a,0xb3,0x2, +0xe, 0x74,0x2, 0x80,0xa, 0x74,0x1, 0x7a,0xb3,0x2, 0xd, 0x7a,0xb3,0x2, 0xe, 0x7a, +0xb3,0x2, 0xf, 0x74,0x14,0x7a,0xb3,0x2, 0x53,0x7e,0x34,0x2a,0xf8,0x7a,0x37,0x1, +0xf4,0x7e,0xb3,0x2, 0x54,0x54,0xfd,0x7a,0xb3,0x2, 0x54,0x7e,0x34,0xfc,0x18,0x7a, +0x37,0x1, 0xf2,0x12,0x39,0x61,0x7e,0x34,0x0, 0x32,0x7a,0x37,0x1, 0xf6,0x7e,0x34, +0x3, 0xe8,0x7a,0x37,0x1, 0xf8,0x7e,0x34,0xf, 0xa0,0x7a,0x37,0x1, 0xfa,0x7e,0xb3, +0x2, 0x54,0x44,0x8, 0x7a,0xb3,0x2, 0x54,0x7e,0x34,0x2, 0xa2,0x7a,0x37,0x2, 0x45, +0x7e,0x34,0x2, 0xb2,0x7a,0x37,0x2, 0x47,0x7e,0x34,0x2, 0x82,0x7a,0x37,0x2, 0x49, +0x7e,0x34,0x2, 0x92,0x7a,0x37,0x2, 0x4b,0x7e,0xb3,0x2, 0x54,0x54,0xef,0x7a,0xb3, +0x2, 0x54,0x7e,0x34,0x1, 0x90,0x7a,0x37,0x1, 0xfc,0x7e,0x34,0x0, 0xc8,0x7a,0x37, +0x1, 0xfe,0x7e,0x34,0x0, 0x64,0x7a,0x37,0x2, 0x0, 0x7e,0x34,0x2, 0xbc,0x7a,0x37, +0x2, 0x2, 0x7e,0x34,0x0, 0x78,0x7a,0x37,0x2, 0x3a,0x12,0x39,0x6c,0x7e,0x34,0x0, +0x1a,0x7a,0x37,0x2, 0x6, 0x7e,0x34,0x0, 0x7, 0x7a,0x37,0x2, 0x4, 0x7e,0x34,0x4e, +0x15,0x7a,0x37,0x2, 0x8, 0x7e,0x34,0x8, 0x0, 0x7a,0x37,0x2, 0xa, 0xe4,0x7a,0xb3, +0x2, 0x3c,0x7e,0x34,0x0, 0x3a,0x7e,0x24,0x0, 0xcc,0x2, 0x39,0x4d,0x7a,0x35,0x2c, +0x7a,0x25,0x2a,0xe4,0x7a,0xb3,0x4, 0xa8,0x7a,0xb3,0x4, 0x79,0x7a,0xb3,0x4, 0xa7, +0x22,0x7e,0xb3,0x2, 0x54,0x54,0xfb,0x7a,0xb3,0x2, 0x54,0x22,0x7e,0xb3,0x2, 0x54, +0x54,0xdf,0x7a,0xb3,0x2, 0x54,0x22,0xe4,0x7a,0xb3,0x0, 0xb4,0x74,0x1, 0x7a,0xb3, +0x0, 0xb9,0x74,0x1b,0x7a,0xb3,0x0, 0xa6,0x74,0x1d,0x7a,0xb3,0x0, 0xa7,0x74,0x24, +0x7a,0xb3,0x0, 0xa8,0x74,0x26,0x7a,0xb3,0x0, 0xa9,0x74,0x28,0x7a,0xb3,0x0, 0xaa, +0x7a,0xb3,0x0, 0xae,0x74,0x30,0x7a,0xb3,0x0, 0xaf,0x74,0x29,0x7a,0xb3,0x0, 0xb0, +0x12,0x39,0xcc,0x74,0xa, 0x7a,0xb3,0x0, 0xb8,0x74,0xf, 0x7a,0xb3,0x0, 0xb6,0x74, +0x19,0x7a,0xb3,0x0, 0xb7,0x74,0x3, 0x7a,0xb3,0x0, 0xb5,0x22,0x12,0x37,0xd1,0xb4, +0x48,0x3, 0xd2,0xc, 0x22,0xb4,0xff,0x11,0x7e,0x34,0x0, 0x20,0x74,0x48,0x12,0x39, +0xea,0x12,0x37,0xd1,0xb4,0x48,0x2, 0xd2,0xc, 0x22,0x7c,0xab,0x7d,0x43,0x5e,0x80, +0x7f,0xc2,0xaf,0xd2,0xc9,0xa, 0x38,0x7c,0xb7,0xf5,0xf1,0x7c,0xb9,0xf5,0xf2,0x75, +0xf3,0x80,0x75,0xf4,0x1, 0x75,0xf5,0xa, 0x75,0xfb,0xa5,0x75,0xfb,0xf, 0x75,0xfb, +0x6a,0x7a,0xa1,0xf6,0x75,0xf6,0xff,0xa9,0x36,0xf5,0xfc,0x43,0xfa,0x80,0x75,0xfb, +0x0, 0xc2,0xc9,0xd2,0xaf,0x22,0x12,0xf, 0x2d,0x7a,0x37,0x0, 0x38,0x12,0x27,0xcb, +0x12,0x35,0xce,0x12,0x39,0x77,0x12,0x3a,0xa6,0x7e,0xb3,0x3, 0xc4,0x24,0xfd,0x68, +0x11,0x24,0xae,0x68,0x35,0x24,0xab,0x68,0xe, 0x24,0xa9,0x78,0xec,0x12,0xd, 0x7c, +0x80,0xe7,0x12,0x24,0x5c,0x80,0xe2,0x6d,0x33,0x7a,0x37,0x0, 0x7f,0x7e,0x24,0x1, +0xf4,0x7a,0x27,0x0, 0x38,0x7e,0xb3,0x0, 0x81,0xbe,0xb0,0xaa,0x68,0xcb,0x7a,0x37, +0x0, 0x63,0x74,0xaa,0x7a,0xb3,0x0, 0x81,0x80,0xbf,0x6d,0x33,0x7a,0x37,0x0, 0x7f, +0x7e,0x34,0x1, 0xf4,0x7a,0x37,0x0, 0x38,0x7e,0xb3,0x0, 0x81,0xb4,0xaa,0xaa,0x74, +0x55,0x7a,0xb3,0x0, 0x81,0x7e,0x74,0x3, 0xe8,0x7d,0x37,0x1b,0x74,0x4d,0x33,0x78, +0xf8,0x75,0xe9,0xff,0x80,0x93,0x74,0x1, 0x7a,0xb3,0x3, 0xc4,0x22,0xca,0x7b,0xca, +0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0, +0x82,0x7e,0x35,0x33,0xb, 0x34,0x7a,0x35,0x33,0xbe,0x34,0x3, 0xe8,0x40,0xe, 0x6d, +0x33,0x7a,0x35,0x33,0xe5,0x27,0xbe,0xb0,0x64,0x50,0x2, 0x5, 0x27,0x7e,0x37,0x0, +0x7f,0xb, 0x34,0x7a,0x37,0x0, 0x7f,0x7e,0x37,0x0, 0x38,0xbe,0x37,0x0, 0x7f,0x28, +0x3, 0x12,0x0, 0x8, 0x7e,0xb3,0x3, 0xc4,0xb4,0xaa,0x15,0x7e,0x37,0x0, 0x63,0x7d, +0x23,0xb, 0x24,0x7a,0x27,0x0, 0x63,0xbe,0x34,0x1, 0x2c,0x28,0x3, 0x12,0x3a,0xa6, +0xe5,0x29,0xbe,0xb1,0x28,0x28,0x4, 0x5, 0x28,0x80,0x2, 0xd2,0x1, 0x7e,0xb3,0x4, +0xd6,0x60,0xf, 0xbe,0xb0,0x28,0x50,0x7, 0x4, 0x7a,0xb3,0x4, 0xd6,0x80,0x3, 0x12, +0x35,0x70,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b, +0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7e,0x50,0xd8,0x74,0x27,0x7a,0xb3,0x3, 0x88, +0x74,0xa0,0x7a,0xb3,0x3, 0x8d,0x74,0x1, 0x7a,0xb3,0x3, 0x8e,0x74,0x1e,0x7a,0xb3, +0x3, 0x8f,0x74,0x8, 0x7a,0xb3,0x3, 0x90,0x74,0x14,0x7a,0xb3,0x3, 0x91,0x74,0x6, +0x7a,0xb3,0x3, 0xab,0x74,0x1, 0x7a,0xb3,0x3, 0xac,0xe4,0x7a,0xb3,0x3, 0xad,0x74, +0x12,0x7a,0xb3,0x3, 0xae,0x12,0x3a,0xa6,0x7e,0x34,0x78,0x4, 0x12,0x37,0xb6,0x7c, +0x4b,0x7e,0x34,0x78,0x5, 0x12,0x37,0xb6,0xbe,0x40,0xff,0x68,0x7, 0x6c,0xb4,0xb4, +0xff,0x2, 0x7c,0x54,0x7a,0x53,0x3, 0xb0,0x74,0x3c,0x7a,0xb3,0x3, 0xb1,0x74,0x1, +0x7a,0xb3,0x3, 0xb7,0xe4,0x7a,0xb3,0x3, 0xb6,0x7a,0xb3,0x3, 0xb8,0x7e,0x34,0x9, +0xc4,0x7a,0x37,0x0, 0xbe,0x7e,0x34,0xa, 0x0, 0x7a,0x37,0x0, 0x65,0x74,0xa0,0x7a, +0xb3,0x0, 0x67,0x6d,0x33,0x7a,0x37,0x0, 0x5a,0x74,0x1, 0x7a,0xb3,0x0, 0x5c,0x74, +0xc, 0x7a,0xb3,0x0, 0x5d,0x74,0x8, 0x7a,0xb3,0x0, 0x5e,0x74,0x14,0x7a,0xb3,0x0, +0x5f,0x7a,0xb3,0x0, 0x60,0x74,0x1e,0x7a,0xb3,0x0, 0x61,0x74,0x1, 0x7a,0xb3,0x0, +0x62,0x22,0x12,0x7, 0x7d,0x68,0xd, 0x7e,0x34,0x2, 0x10,0x7e,0xb3,0x0, 0x3a,0x6c, +0x55,0x2, 0x3c,0x15,0x22,0x7d,0x13,0xa, 0x3b,0x2d,0x31,0x7a,0x39,0x50,0x22,0x7d, +0x3, 0x7d,0x50,0x1a,0x4a,0x1a,0x48,0x7e,0x1f,0x1, 0x4c,0xbf,0x21,0x18,0xb, 0x7e, +0x34,0x2, 0x10,0x74,0x20,0x6c,0x55,0x12,0x3c,0x15,0x7d,0x50,0x1a,0x4a,0x1a,0x48, +0x7e,0x1f,0x1, 0x50,0xbf,0x21,0x18,0xb, 0x7e,0x34,0x2, 0x10,0x74,0x21,0x6c,0x55, +0x12,0x3c,0x15,0x7d,0x10,0x1a,0x2, 0x1a,0x0, 0x7e,0x1f,0x1, 0x54,0xbf,0x1, 0x18, +0xb, 0x7e,0x34,0x2, 0x10,0x74,0x22,0x6c,0x55,0x2, 0x3c,0x15,0x22,0x7e,0xb3,0x2, +0x54,0x20,0xe1,0x45,0x7e,0xa3,0x3, 0xb1,0x4c,0xaa,0x68,0x2a,0xbe,0xa0,0xff,0x68, +0x25,0x74,0x28,0xa4,0x7d,0xf5,0xbe,0xf4,0x9, 0x60,0x58,0x4, 0x7e,0xf4,0x9, 0x60, +0x12,0x3e,0x4f,0xb4,0x1, 0x14,0x7e,0xe7,0x0, 0x6a,0xbe,0xe4,0x3, 0x84,0x78,0xa, +0x7e,0xf4,0x8, 0x98,0x80,0x4, 0x7e,0xf4,0x9, 0x60,0x7d,0x3f,0x12,0x3c,0x1f,0x12, +0x3d,0x13,0x40,0x5, 0x7d,0x3f,0x2, 0x3c,0xba,0x22,0x7d,0x13,0x1a,0x2, 0x1a,0x0, +0x7e,0x2f,0x1, 0x4c,0xbf,0x2, 0x18,0x9, 0x12,0x3c,0xfe,0x7e,0x34,0x0, 0x50,0x80, +0x20,0x7e,0x2f,0x1, 0x50,0xbf,0x2, 0x18,0x9, 0x12,0x3c,0xfe,0x7e,0x34,0x0, 0xf0, +0x80,0xf, 0x7e,0x1f,0x1, 0x54,0xbf,0x1, 0x18,0x13,0x12,0x3c,0xfe,0x7e,0x34,0x1, +0x90,0x7a,0x37,0x0, 0x3e,0x7e,0x34,0x3, 0x84,0x7a,0x37,0x0, 0x40,0x22,0x7e,0x73, +0x0, 0x54,0x7c,0x67,0xb, 0x60,0x5e,0x60,0xf, 0x5e,0x70,0xf0,0x4c,0x76,0x7a,0x73, +0x0, 0x54,0x22,0x7e,0xf, 0x1, 0x50,0x7e,0x1f,0x1, 0x4c,0x2f,0x10,0x7e,0xf, 0x1, +0x54,0x2f,0x1, 0x7e,0x1f,0x1, 0xa4,0xbf,0x10,0x58,0xc, 0x20,0xd, 0x9, 0x12,0x3e, +0x48,0x7a,0xb3,0x0, 0x54,0xc3,0x22,0x12,0x7, 0x7d,0x68,0x2, 0xd2,0xd, 0xd3,0x22, +0x6c,0xaa,0x7e,0x90,0x5, 0xac,0x9a,0x9, 0xb4,0x0, 0x6c,0xbe,0xb0,0xff,0x68,0xa, +0x49,0x34,0x0, 0x6a,0xbe,0x34,0x3, 0x1f,0x50,0x33,0xb, 0xa0,0xbe,0xa0,0x2, 0x40, +0xe1,0x12,0x3d,0x8e,0x54,0xf, 0x78,0x20,0x7c,0xb7,0xc4,0x7c,0x6b,0x5e,0x60,0xf, +0xbe,0x60,0x0, 0x28,0x13,0xe5,0x37,0xbe,0xb0,0x1, 0x50,0x8, 0x12,0x3d,0x9, 0xd2, +0x3, 0x5, 0x37,0x22,0x75,0x37,0x0, 0x22,0x75,0x37,0x0, 0xc2,0x3, 0x22,0x7e,0x73, +0x0, 0x54,0x7c,0xb7,0x22,0xca,0x79,0x7e,0x23,0x0, 0x54,0x5e,0x20,0xf, 0x6c,0xaa, +0xc1,0x35,0x7e,0x70,0x5, 0xac,0x7a,0x49,0xf3,0x0, 0x3e,0x7e,0x4, 0x0, 0xf, 0x7d, +0x40,0x9e,0xf4,0x0, 0x20,0xbd,0x4f,0x38,0xa, 0x7e,0x24,0x1, 0xc0,0x9d,0x20,0xbd, +0x2f,0x50,0x42,0x7e,0x53,0x0, 0x54,0x7c,0xb5,0xc4,0x7c,0x3b,0x5e,0x30,0xf, 0x7c, +0xb5,0x54,0xf, 0xbc,0xb3,0x78,0x27,0xa5,0xba,0x1, 0x23,0x7e,0xf0,0x4, 0xac,0xfa, +0x49,0x27,0x5, 0x39,0xbe,0x24,0x7f,0xff,0x68,0x14,0x49,0xe7,0x5, 0x3b,0xbe,0xe4, +0x7f,0xff,0x68,0xa, 0x59,0x23,0x0, 0x3e,0x59,0xe3,0x0, 0x40,0x80,0x7, 0x7c,0xba, +0x7c,0x72,0x12,0x3e,0x57,0x12,0x3d,0x8e,0xc4,0x7c,0x3b,0x5e,0x30,0xf, 0x7c,0xb7, +0x54,0xf, 0xbc,0xb3,0x68,0x9, 0x7e,0xe4,0x7f,0xff,0x12,0x3e,0x3e,0x80,0x10,0x7e, +0x50,0x5, 0xac,0x5a,0x49,0xe2,0x0, 0x3e,0x12,0x3e,0x3e,0x49,0xe2,0x0, 0x40,0x59, +0xe3,0x5, 0x3b,0xb, 0xa0,0xbc,0x2a,0x28,0x2, 0xa1,0xa2,0xda,0x79,0x22,0x7e,0x70, +0x4, 0xac,0x7a,0x59,0xe3,0x5, 0x39,0x22,0x7e,0xb3,0x0, 0x54,0x54,0xf0,0x22,0x7e, +0xb3,0x0, 0x54,0xc4,0x54,0xf, 0x22,0x7c,0x6b,0x7e,0x53,0x0, 0x54,0x7c,0xb5,0x54, +0xf, 0x68,0x10,0x7c,0x45,0x1b,0x40,0x5e,0x40,0xf, 0x5e,0x50,0xf0,0x4c,0x54,0x7a, +0x53,0x0, 0x54,0xa5,0xbe,0x0, 0x1c,0xa5,0xbf,0x2, 0x18,0x7e,0x73,0x0, 0x3b,0x7a, +0x73,0x0, 0x3a,0x7e,0x1f,0x0, 0x44,0x7e,0x33,0x0, 0x43,0x7a,0x1f,0x0, 0x3f,0x7a, +0x33,0x0, 0x3e,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b, +0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xe5,0xcc,0x54,0x7, 0x68,0x3, 0x75,0xcc, +0x50,0x12,0x31,0xcd,0x74,0x1, 0x7a,0xb3,0x4, 0xd6,0xd0,0x82,0xd0,0x83,0xd0,0xd0, +0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7c, +0xa7,0x24,0x0, 0x78,0x7, 0x7e,0x34,0x4, 0xd9,0x7a,0x39,0xa0,0x22,0xca,0xb8,0xa9, +0xc0,0x93,0xe4,0x7a,0xb3,0x4, 0xd5,0x7a,0xb3,0x4, 0xd7,0xda,0xb8,0x32,0x7e,0x34, +0x4, 0xb1,0x12,0x3f,0x0, 0x7e,0x34,0x4, 0xc3,0x7e,0x24,0x0, 0x12,0x2, 0x2, 0xee, +0x7e,0x24,0x0, 0x12,0x74,0xff,0x2, 0x2, 0xee,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca, +0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x12,0x26,0xba, +0x7e,0xb3,0x4, 0xd9,0x54,0xfd,0x7a,0xb3,0x4, 0xd9,0xd0,0x82,0xd0,0x83,0xd0,0xd0, +0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7e, +0x24,0x0, 0x14,0xad,0x32,0x80,0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7d, +0x23,0x1b,0x34,0x4d,0x22,0x78,0xf0,0x22,0xd2,0xcf,0xbe,0xb0,0x7, 0x38,0x4, 0x7c, +0xab,0x80,0x2, 0x6c,0xaa,0x4e,0xa0,0x50,0x7a,0xa1,0xcc,0x0, 0x0, 0x0, 0x0, 0xa9, +0xd0,0xca,0xa9,0xc5,0xca,0x53,0xca,0xe1,0x43,0xca,0x14,0x75,0xcb,0x2, 0xc2,0xcc, +0xd2,0xcb,0xc2,0xca,0xc2,0xc9,0xc2,0xc8,0x0, 0x0, 0x0, 0x0, 0x22,0x74,0x20,0x7a, +0xb3,0x3, 0xa9,0x74,0xe, 0x7a,0xb3,0x3, 0xaa,0x12,0x3f,0xa0,0xe4,0x2, 0x2, 0xee, +0x7e,0x34,0x2, 0x10,0x7e,0x24,0x0, 0x24,0x22,0x12,0x3f,0xa0,0x74,0x1, 0x2, 0x2, +0xee,0x7e,0x34,0x2, 0x10,0x7c,0xba,0x7d,0x23,0xa, 0x3b,0x2d,0x32,0x7e,0x39,0xb0, +0x22,0x6c,0xaa,0x80,0xa, 0x12,0x3f,0xb1,0x70,0x3, 0x2, 0x40,0x5b,0xb, 0xa0,0x12, +0x40,0x69,0x38,0xf1,0x7e,0xb3,0x2, 0x54,0x30,0xe1,0x3, 0x2, 0x40,0x5b,0x6c,0xaa, +0x80,0x74,0x12,0x3f,0xb1,0xb4,0x1, 0x6c,0x7e,0xb3,0x2, 0x56,0xbc,0xba,0x28,0x1f, +0x12,0x40,0x7b,0x7e,0xb3,0x2, 0x36,0x12,0x40,0x70,0xbf,0x7, 0x8, 0x6, 0x7e,0xb3, +0x2, 0x34,0x80,0x1d,0x12,0x40,0x5e,0x58,0x4b,0x7e,0xb3,0x2, 0x35,0x80,0x32,0x12, +0x40,0x7b,0x7e,0xb3,0x2, 0x39,0x12,0x40,0x70,0xbf,0x7, 0x8, 0x1b,0x7e,0xb3,0x2, +0x37,0xa, 0xeb,0x7e,0x50,0x2, 0xac,0x5a,0x7d,0xf2,0x2e,0xf4,0x1, 0xa8,0xb, 0xf8, +0x20,0x2d,0x2e,0x1b,0xf8,0x20,0x80,0x1c,0x12,0x40,0x5e,0x58,0x17,0x7e,0xb3,0x2, +0x38,0xa, 0x4b,0x7e,0x50,0x2, 0xac,0x5a,0x2e,0x24,0x1, 0xa8,0xb, 0x28,0x30,0x9d, +0x34,0x1b,0x28,0x30,0xb, 0xa0,0x12,0x40,0x69,0x38,0x87,0x2, 0x3f,0xa9,0x6d,0x33, +0x9d,0x34,0x1a,0x26,0x1a,0x24,0xbf,0x1, 0x22,0x7e,0xb3,0x2, 0x58,0xbc,0xba,0x22, +0xa, 0x4b,0x7d,0x24,0x7d,0xf4,0x1a,0x24,0x1a,0xe4,0x22,0x7e,0x70,0x4, 0xac,0x7a, +0x49,0x13,0x0, 0xce,0x49,0x3, 0x0, 0xcc,0x22,0x7f,0x1, 0x7e,0x37,0x1, 0xf0,0x12, +0x40,0x62,0x8, 0x3, 0x7f,0x10,0x22,0x9f,0x11,0x22,0x7c,0xab,0x9f,0x66,0x7f,0x56, +0x7e,0x78,0x0, 0x1, 0x7e,0x33,0x5, 0x54,0xa, 0x23,0xa, 0x3a,0x12,0x0, 0x46,0x7c, +0x75,0x4c,0x77,0x68,0xd, 0x7e,0x50,0x4, 0xac,0x5a,0x49,0xb2,0x0, 0xca,0x49,0xa2, +0x0, 0xc8,0x7c,0xb3,0x14,0xbc,0xb7,0x68,0xd, 0x7e,0x70,0x4, 0xac,0x7a,0x49,0xd3, +0x0, 0xd2,0x49,0xc3,0x0, 0xd0,0x74,0x4, 0xa4,0x12,0x16,0x1c,0x12,0x40,0x89,0x2f, +0x71,0x7f,0x15,0x12,0x40,0x89,0x2f,0x71,0x7f,0x16,0x12,0x40,0x89,0x2f,0x71,0x7f, +0x17,0x22,0xca,0x3b,0x6c,0xaa,0x7e,0x73,0x0, 0x54,0x5e,0x70,0xf, 0x7e,0x44,0x0, +0xcc,0x7e,0x24,0x0, 0x3a,0x6c,0x66,0x80,0x64,0x75,0x8, 0xff,0xa, 0xf6,0x2d,0xf2, +0x7e,0xf9,0x20,0x7e,0x30,0x4, 0xac,0x23,0x7d,0xe1,0x2d,0xe4,0x49,0x1e,0x0, 0x2, +0xb, 0xe8,0x0, 0xa, 0x76,0xb, 0x74,0x80,0x24,0xa, 0xef,0x2d,0xe2,0x7e,0xe9,0xe0, +0x7e,0xd0,0x4, 0xac,0xde,0x7d,0xe6,0x2d,0xe4,0x49,0xde,0x0, 0x2, 0xb, 0xe8,0xc0, +0xbf,0x6, 0x58,0x7, 0x7c,0xae,0x7a,0xf1,0x8, 0x7f,0x6, 0xb, 0xf0,0xbc,0x7f,0x38, +0xd8,0xe5,0x8, 0xbe,0xb0,0xff,0x68,0x13,0x7e,0xf9,0xe0,0xe5,0x8, 0xa, 0xfb,0x2d, +0xf2,0x7a,0xf9,0xe0,0xa, 0xf6,0x2d,0xf2,0x7a,0xf9,0xa0,0xb, 0x60,0xbc,0x76,0x38, +0x98,0xda,0x3b,0x22,0xca,0xf8,0x6c,0xff,0x6c,0xaa,0x4c,0xaa,0x78,0x4, 0x9f,0x44, +0x80,0xc, 0x12,0x41,0xe5,0x1b,0x16,0x49,0x91,0x0, 0x2, 0xb, 0x18,0x80,0xbe,0xa0, +0x7, 0x78,0x4, 0x9f,0x55,0x80,0xb, 0x12,0x41,0xe5,0x49,0xb1,0x0, 0x6, 0x49,0xa1, +0x0, 0x4, 0x12,0x41,0xed,0x12,0x41,0xdd,0xbf,0x4, 0x48,0x22,0xbf,0x5, 0x48,0x1e, +0x12,0x41,0xdd,0xbe,0x8, 0x5, 0xdc,0x48,0x15,0x12,0x41,0xdd,0xb, 0xc, 0x59,0x14, +0x0, 0x2, 0x1b,0x48,0x0, 0xa, 0x1f,0x2d,0x12,0x7a,0x19,0xa0,0xb, 0xf0,0xb, 0xa0, +0xbe,0xa0,0x8, 0x40,0xa5,0x12,0x40,0xf2,0x7c,0xbf,0xda,0xf8,0x22,0x49,0x14,0x0, +0x2, 0xb, 0x48,0x0, 0x22,0x7e,0x30,0x4, 0xac,0x3a,0x2d,0x13,0x22,0x7e,0x90,0x4, +0xac,0x9a,0x2d,0x43,0x22,0x7c,0xa6,0xa, 0x27,0xa, 0x3b,0x9d,0x32,0x12,0x2, 0xde, +0xa, 0x2a,0xbd,0x32,0x18,0x3, 0x74,0x1, 0x22,0xe4,0x22,0xca,0x3b,0x12,0x7, 0x7d, +0x7c,0xeb,0xbe,0xb0,0x2, 0x50,0x2, 0x81,0x67,0x6c,0xff,0x80,0x27,0x7e,0x70,0x5, +0xac,0x7f,0x49,0x23,0x0, 0x3e,0x59,0x23,0x2, 0xae,0x49,0x23,0x0, 0x40,0x59,0x23, +0x2, 0xb0,0x74,0xff,0x19,0xb3,0x2, 0xb2,0xa, 0x2f,0x9, 0x72,0x0, 0x3a,0x19,0x72, +0x2, 0xd4,0xb, 0xf0,0x12,0x7, 0x7d,0x12,0x2f,0xe2,0x48,0xd1,0x6c,0xff,0x61,0xfc, +0x74,0x5, 0xac,0xbf,0x12,0x44,0x6a,0x78,0x2, 0x61,0xfa,0xa, 0x6f,0xb, 0x64,0x61, +0xf4,0x74,0x5, 0xac,0xbd,0x12,0x44,0x6a,0x78,0x2, 0x61,0xf2,0xa, 0x2f,0x9, 0x72, +0x2, 0xd4,0xbe,0x73,0x5, 0x54,0x40,0x19,0xbe,0x73,0x5, 0x53,0x50,0x13,0xa, 0x1d, +0x9, 0x61,0x2, 0xd4,0xbe,0x63,0x5, 0x53,0x40,0x7, 0xa, 0x6, 0x12,0x44,0xa4,0x48, +0x27,0xa, 0x1d,0x9, 0x61,0x2, 0xd4,0xbe,0x63,0x5, 0x54,0x50,0x2, 0x61,0xf2,0xbe, +0x63,0x5, 0x53,0x40,0x2, 0x61,0xf2,0xbe,0x73,0x5, 0x53,0x50,0x2, 0x61,0xf2,0xa, +0x7, 0x12,0x44,0xa4,0x48,0x2, 0x61,0xf2,0xa, 0x37,0x7e,0x53,0x5, 0x54,0xa, 0x45, +0x7d,0x24,0x12,0x0, 0x46,0x7c,0xa5,0x7a,0xa3,0x2, 0xd8,0xa, 0x3d,0x9, 0xb3,0x2, +0xd4,0xa, 0x3b,0x7d,0x24,0x12,0x0, 0x46,0x7c,0xb5,0x7a,0xb3,0x2, 0xd9,0xa, 0x2b, +0xa, 0x3a,0x12,0x44,0xb5,0x8, 0x2, 0x61,0xf2,0x12,0x44,0x93,0x9d,0x32,0x12,0x2, +0xde,0xbe,0x37,0x1, 0xfe,0x48,0x2, 0x61,0xf2,0xa, 0x3f,0x9, 0xb3,0x2, 0xd4,0xa, +0x3d,0x9, 0x73,0x2, 0xd4,0x12,0x45,0x6d,0x7a,0x37,0x2, 0xce,0xa, 0x3f,0x9, 0x73, +0x2, 0xd4,0x7e,0x53,0x5, 0x54,0xa, 0x45,0x12,0x44,0x72,0x49,0x5, 0x1, 0x5c,0x7a, +0xf, 0x2, 0xc2,0x12,0x44,0x82,0x2f,0x10,0x7a,0x1f,0x2, 0xc2,0xa, 0x5d,0x9, 0x75, +0x2, 0xd4,0xa, 0x37,0x12,0x44,0x72,0x49,0x5, 0x1, 0x5c,0x7a,0xf, 0x2, 0xc6,0x12, +0x44,0x82,0x2f,0x10,0x7a,0x1f,0x2, 0xc6,0x74,0x5, 0xac,0xbd,0x49,0x35,0x2, 0xae, +0x6d,0x22,0x7e,0x6f,0x2, 0xc6,0x7f,0x6, 0x12,0x0, 0x78,0x7f,0x51,0x74,0x5, 0xac, +0xbf,0x49,0x35,0x2, 0xae,0x6d,0x22,0x7e,0x7f,0x2, 0xc2,0x7f,0x7, 0x12,0x0, 0x78, +0x2f,0x15,0x7f,0x7, 0x2f,0x6, 0x12,0x0, 0xe5,0x7a,0x1f,0x2, 0xca,0x7e,0xa0,0xbb, +0x7e,0x70,0x5, 0xac,0x7f,0x19,0xa3,0x2, 0xb2,0x12,0x44,0x93,0xbd,0x32,0x50,0xa, +0x7a,0x37,0x2, 0xd0,0x7a,0x27,0x2, 0xd2,0x80,0x8, 0x7a,0x27,0x2, 0xd0,0x7a,0x37, +0x2, 0xd2,0x7e,0x37,0x2, 0xce,0xbe,0x37,0x2, 0xd0,0x38,0x6, 0x7e,0x27,0x2, 0xd0, +0x80,0xa, 0xbe,0x37,0x2, 0xd2,0x40,0xe, 0x7e,0x27,0x2, 0xd2,0x74,0x5, 0xac,0xbf, +0x59,0x25,0x2, 0xb0,0x80,0x14,0x7e,0xa0,0xcc,0x7e,0x50,0x5, 0xac,0x5f,0x19,0xa2, +0x2, 0xb2,0x74,0x5, 0xac,0xbf,0x59,0x35,0x2, 0xb0,0x7e,0x1f,0x2, 0xca,0x74,0x5, +0xac,0xbf,0x59,0x35,0x2, 0xae,0x7e,0xa0,0xaa,0x7e,0x70,0x5, 0xac,0x7d,0x19,0xa3, +0x2, 0xb2,0xb, 0xd0,0xbc,0xed,0x28,0x2, 0x41,0x61,0xb, 0xf0,0xbc,0xef,0x28,0x2, +0x41,0x50,0x12,0x3e,0x48,0x7a,0xb3,0x0, 0x54,0x6c,0xff,0x80,0x56,0x7e,0x30,0x5, +0xac,0x3f,0x9, 0x61,0x2, 0xb2,0xbe,0x60,0xaa,0x68,0x46,0x49,0x21,0x2, 0xae,0x7e, +0x73,0x0, 0x54,0x7c,0x7, 0x5e,0x0, 0xf, 0x74,0x5, 0xac,0xb0,0x59,0x25,0x0, 0x3e, +0x49,0x21,0x2, 0xb0,0x59,0x25,0x0, 0x40,0xa, 0x2f,0x9, 0x12,0x2, 0xd4,0xa, 0x20, +0x19,0x12,0x0, 0x3a,0xa5,0xbe,0xbb,0x4, 0x74,0x2, 0x80,0x6, 0xa5,0xbe,0xcc,0x6, +0x74,0x1, 0x19,0xb2,0x0, 0x52,0x12,0x3d,0x2, 0x12,0x7, 0x7d,0xbe,0xb0,0x2, 0x50, +0x6, 0xb, 0xf0,0xbc,0xef,0x38,0xa6,0xda,0x3b,0x22,0x9, 0xb5,0x2, 0xb2,0xbe,0xb0, +0xaa,0x22,0x7d,0x24,0x12,0x0, 0x46,0x7c,0xc5,0x74,0x4, 0xac,0xbc,0x49,0x15,0x1, +0x5e,0x22,0xa, 0x5c,0x2d,0x54,0x3e,0x54,0x3e,0x54,0x49,0x35,0x1, 0x5e,0x49,0x25, +0x1, 0x5c,0x22,0x74,0x5, 0xac,0xbd,0x49,0x25,0x2, 0xb0,0x74,0x5, 0xac,0xbf,0x49, +0x35,0x2, 0xb0,0x22,0x7e,0x63,0x5, 0x53,0xa, 0x56,0x7e,0x63,0x5, 0x54,0xa, 0x16, +0x2d,0x15,0xbd,0x1, 0x22,0x9d,0x32,0x12,0x2, 0xde,0xbe,0x34,0x0, 0x1, 0x22,0x12, +0x46,0xa1,0x78,0x2, 0xa1,0x62,0x6c,0x33,0x12,0x45,0x63,0xbe,0x20,0x2, 0x50,0x1d, +0xa, 0x32,0x9, 0xb3,0x0, 0xc0,0x70,0x15,0x49,0x2, 0x0, 0x68,0x7e,0x70,0x4, 0xac, +0x72,0x59,0x3, 0x5, 0x49,0x49,0x2, 0x0, 0x6a,0x59,0x3, 0x5, 0x4b,0xb, 0x30,0xa5, +0xbb,0x2, 0xd5,0x6c,0x33,0x80,0x67,0x12,0x45,0x63,0xbe,0x20,0x2, 0x50,0x5d,0x7e, +0x70,0x4, 0xac,0x72,0x49,0x43,0x5, 0x49,0x49,0x2, 0x0, 0x68,0x9d,0x4, 0x49,0x33, +0x5, 0x4b,0x49,0x42,0x0, 0x6a,0x9d,0x43,0x7d,0x30,0x12,0x44,0xb7,0x18,0x23,0x7d, +0x34,0x12,0x44,0xb7,0x18,0x1c,0x7e,0x70,0x4, 0xac,0x72,0x49,0xf3,0x5, 0x49,0x7e, +0x50,0x5, 0xac,0x53,0x59,0xf2,0x0, 0x68,0x49,0x33,0x5, 0x4b,0x59,0x32,0x0, 0x6a, +0x80,0x1a,0x7e,0x70,0x5, 0xac,0x73,0x49,0xf3,0x0, 0x68,0x7e,0x50,0x4, 0xac,0x52, +0x59,0xf2,0x5, 0x49,0x49,0x33,0x0, 0x6a,0x59,0x32,0x5, 0x4b,0xb, 0x30,0xbc,0xa3, +0x38,0x95,0x22,0x7e,0x50,0x5, 0xac,0x53,0x9, 0x22,0x0, 0x6c,0x22,0xca,0x3b,0x7c, +0x27,0x7c,0x3b,0x7e,0x93,0x5, 0x54,0xa, 0xa9,0xa, 0x83,0x12,0x46,0x8a,0x7c,0x15, +0xa, 0x92,0x7d,0x39,0x7d,0x2a,0x12,0x46,0xa9,0x7e,0xa3,0x5, 0x53,0xa, 0xaa,0x12, +0x46,0x8a,0x7c,0x5, 0x7d,0x39,0x7d,0x2a,0x12,0x0, 0x46,0x7c,0x25,0xbc,0x81,0x78, +0x4f,0x7e,0xd0,0x4, 0xac,0xd0,0x49,0xd6,0x1, 0x5e,0x49,0xc6,0x1, 0x5c,0x7e,0xf0, +0x4, 0xac,0xf2,0x49,0xf7,0x1, 0x5e,0x49,0xe7,0x1, 0x5c,0x4c,0x11,0x68,0x14,0x49, +0x36,0x1, 0x5a,0x49,0x26,0x1, 0x58,0x2f,0x61,0x49,0x37,0x1, 0x5a,0x49,0x27,0x1, +0x58,0x2f,0x71,0x7c,0xb9,0x14,0xbc,0xb1,0x68,0x78,0x7e,0x10,0x4, 0xac,0x1, 0x12, +0x46,0x91,0x2f,0x61,0x7e,0x10,0x4, 0xac,0x12,0x12,0x46,0x91,0x2f,0x71,0x80,0x62, +0xa, 0x31,0xa, 0xa0,0x9d,0xa3,0x7d,0x3a,0x7c,0x7, 0xe5,0x8, 0xa, 0x3b,0xa, 0xa2, +0x9d,0xa3,0x7d,0x3a,0x7c,0x27,0xe5,0x8, 0xa, 0x3b,0xa, 0x20,0x2d,0x23,0x3e,0x24, +0x3e,0x24,0x49,0xf2,0x1, 0x5e,0x49,0xe2,0x1, 0x5c,0xa, 0xa1,0xa, 0x20,0x2d,0x2a, +0x3e,0x24,0x3e,0x24,0x49,0xd2,0x1, 0x5e,0x49,0xc2,0x1, 0x5c,0x2f,0x67,0xa, 0xa2, +0x2d,0xa3,0x3e,0xa4,0x3e,0xa4,0x49,0x3a,0x1, 0x5e,0x49,0x2a,0x1, 0x5c,0xa, 0x1, +0xa, 0xa2,0x2d,0xa0,0x3e,0xa4,0x3e,0xa4,0x49,0xfa,0x1, 0x5e,0x49,0xea,0x1, 0x5c, +0x2f,0x71,0xb, 0x6c,0xb, 0x7c,0xbc,0xa3,0x7e,0x17,0x2, 0x3a,0x1a,0x2, 0x38,0x6, +0x1a,0x0, 0x7f,0x17,0x80,0x4, 0x1a,0x0, 0x7f,0x16,0x12,0x0, 0x78,0x7f,0x6, 0x2f, +0x7, 0x12,0x0, 0xe5,0x7d,0xb3,0x7e,0x37,0x2, 0x3a,0x12,0x46,0x9a,0x7e,0xa7,0x1, +0xfc,0x9d,0xa3,0x2d,0xba,0x7d,0x3b,0xda,0x3b,0x22,0x7d,0x38,0x7d,0x2a,0x2, 0x0, +0x46,0x49,0x30,0x1, 0x62,0x49,0x20,0x1, 0x60,0x22,0x7e,0x24,0x0, 0x2, 0x2, 0x0, +0x46,0x7e,0xa3,0x0, 0x54,0x5e,0xa0,0xf, 0x22,0x12,0x0, 0x46,0x7c,0x85,0x7a,0x81, +0x8, 0x22,0xca,0xf8,0x7c,0xab,0x7d,0x42,0x7d,0x13,0x6c,0x11,0x80,0x2b,0xa, 0x31, +0x2d,0x34,0x7e,0x39,0x0, 0xa, 0x30,0x12,0x2f,0xf1,0x7c,0x5, 0x6c,0xff,0xa, 0x20, +0xa, 0x3f,0x12,0x44,0xb5,0x18,0x9, 0x74,0x1, 0xa, 0x3f,0x2d,0x31,0x7a,0x39,0xb0, +0xb, 0xf0,0xbe,0xf0,0x8, 0x78,0xe7,0xb, 0x10,0xbc,0xa1,0x38,0xd1,0xda,0xf8,0x22, +0x7e,0x73,0x2, 0x56,0xa, 0x37,0x1e,0x34,0x7a,0x73,0x5, 0x53,0xa, 0x37,0x1e,0x34, +0x7a,0x73,0x5, 0x54,0x22,0x12,0x47,0x14,0x4c,0x99,0x68,0x7, 0xa, 0x19,0x6d,0x0, +0x2, 0x0, 0xe5,0x22,0x7c,0x93,0xa, 0x1b,0x6d,0x0, 0x2, 0x0, 0x78,0xca,0xf8,0x7c, +0xf2,0x12,0x47,0x14,0xa, 0x19,0x6d,0x0, 0x12,0x0, 0x94,0xa, 0x1f,0x6d,0x0, 0x12, +0x0, 0x94,0xda,0xf8,0x22,0x7f,0x10,0x74,0x5, 0x7e,0x30,0x4, 0x7e,0x20,0xc8,0x12, +0x47,0x1d,0x7f,0x1, 0x22,0x12,0x47,0x5, 0x7f,0x1, 0x7a,0xf, 0x2, 0xbe,0x7e,0x37, +0x1, 0xfa,0x1a,0x26,0x1a,0x24,0xbf,0x10,0x22,0xca,0xf8,0x7c,0xfb,0x4c,0x77,0x68, +0xf, 0xc2,0xaf,0x43,0xe1,0x1, 0x7e,0x37,0x2, 0x4, 0x99,0x34,0xd2,0xaf,0x80,0x3, +0x43,0xe1,0x1, 0xc2,0x9, 0x2e,0xf0,0xff,0x92,0xa, 0xd2,0xae,0xa9,0xd6,0xb7,0xc2, +0xbe,0xda,0xf8,0x22,0xca,0x59,0xc2,0xae,0x30,0xa, 0x5, 0x7e,0xa0,0x1, 0x80,0x3, +0x7e,0xa0,0x2, 0xe5,0xe6,0x5c,0xba,0x68,0x5, 0x75,0xe6,0x0, 0xd2,0x9, 0xd2,0xae, +0xda,0x59,0x32,0x12,0x0, 0x2e,0x60,0x73,0x7e,0xb3,0x2, 0xab,0x20,0xe7,0x6c,0x7e, +0xb3,0x2, 0x54,0x30,0xe0,0x2, 0x80,0x7, 0x7e,0xb3,0x2, 0xa3,0x30,0xe1,0x6, 0x7e, +0x34,0xe, 0xb0,0x80,0x4, 0x7e,0x34,0x7, 0x58,0x7e,0x27,0x2, 0xac,0x6c,0xaa,0x80, +0x42,0xa, 0x1a,0x9, 0x31,0x2, 0x7d,0x7e,0x10,0x4, 0xac,0x13,0x49,0xd0,0x0, 0xce, +0x49,0xc0,0x0, 0xcc,0x7d,0xf3,0x6d,0xee,0xbf,0x67,0x58,0x1a,0x12,0x27,0x2, 0x60, +0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0xb9,0xa, 0x3, 0x2e,0x4, 0x5, 0x3, 0x7e,0x9, +0x20,0x4c,0x2b,0x7a,0x9, 0x20,0xa, 0x3, 0x9, 0x20,0x5, 0x3, 0x2d,0x2, 0x7a,0x9, +0x20,0xb, 0xa0,0x7e,0x23,0x2, 0x58,0xbc,0x2a,0x38,0xb6,0x22,0xc2,0xf, 0x6c,0x33, +0x7e,0x20,0xff,0x7e,0x10,0x5, 0xac,0x13,0x19,0x20,0x0, 0x42,0x7c,0x13,0x2e,0x10, +0xc, 0x74,0xff,0xa5,0xf7,0x7e,0x24,0xff,0xff,0x12,0x4a,0x4a,0x1b,0x38,0x20,0x7c, +0x13,0x2e,0x10,0xe, 0xe4,0xa5,0xf7,0xb, 0x30,0xa5,0xbb,0x2, 0xd3,0x7e,0x23,0x0, +0x54,0x7c,0xb2,0x54,0xf, 0x78,0x24,0x7c,0xb2,0xc4,0x54,0xf, 0x78,0x2, 0x21,0xe5, +0x6c,0x33,0x7e,0x4, 0x7f,0xff,0x7e,0x70,0x2, 0xac,0x73,0x59,0x3, 0x0, 0xc4,0x59, +0x3, 0x0, 0xc8,0xb, 0x30,0xa5,0xbb,0x2, 0xe9,0x21,0xe5,0x7c,0xb2,0xc4,0x54,0xf, +0x78,0x2b,0x6c,0x33,0x80,0x1a,0x12,0x4a,0x74,0x7e,0x50,0x2, 0xac,0x53,0x12,0x4a, +0x6b,0x59,0x32,0x0, 0xc8,0x19,0x34,0x0, 0x42,0x7c,0x13,0x12,0x4a,0x5b,0xb, 0x30, +0x12,0x7, 0x7d,0xa, 0x2b,0xa, 0x33,0xbd,0x32,0x48,0xdb,0x21,0xe5,0x6c,0x33,0x80, +0x4f,0x6c,0xaa,0x7e,0x70,0x2, 0xac,0x7a,0x49,0x23,0x0, 0xc8,0x7e,0x70,0x5, 0xac, +0x73,0x49,0x33,0x0, 0x40,0x12,0x4a,0x7e,0x7e,0x70,0x2, 0xac,0x7a,0x49,0x23,0x0, +0xc4,0x7e,0x70,0x5, 0xac,0x73,0x49,0x33,0x0, 0x3e,0x9d,0x32,0x12,0x2, 0xde,0x2d, +0x43,0x12,0x4a,0x4a,0xb, 0x38,0x20,0xbd,0x24,0x28,0xc, 0x7c,0x13,0x2e,0x10,0xc, +0x7c,0xba,0xa5,0xf7,0x1b,0x38,0x40,0xb, 0xa0,0xbe,0xa0,0x2, 0x78,0xb5,0xb, 0x30, +0x12,0x7, 0x7d,0xa, 0x2b,0xa, 0x33,0xbd,0x32,0x48,0xa6,0x6c,0x33,0x80,0x6e,0xd2, +0xf, 0x6c,0xaa,0x80,0x2c,0xbc,0xa3,0x68,0x26,0x7c,0x1a,0x2e,0x10,0xc, 0xa5,0xe7, +0x7c,0x2b,0x12,0x4a,0x63,0xbc,0xb2,0x78,0x16,0x7c,0xba,0x12,0x4a,0x4c,0xb, 0x38, +0x20,0x12,0x4a,0x4a,0xb, 0x38,0x30,0xbd,0x32,0x40,0x4, 0xc2,0xf, 0x80,0xd, 0xb, +0xa0,0x12,0x7, 0x7d,0xa, 0x2b,0xa, 0x3a,0xbd,0x32,0x48,0xc9,0x30,0xf, 0x2c,0x12, +0x4a,0x63,0x7c,0x5b,0xbe,0x50,0x2, 0x50,0x22,0x7c,0x15,0x12,0x4a,0x5b,0x7e,0x70, +0x5, 0xac,0x73,0x19,0x53,0x0, 0x42,0x49,0x43,0x0, 0x3e,0x74,0x2, 0xac,0x5b,0x59, +0x42,0x0, 0xc4,0x49,0x33,0x0, 0x40,0x59,0x32,0x0, 0xc8,0xb, 0x30,0x12,0x7, 0x7d, +0xa, 0x2b,0xa, 0x33,0xbd,0x32,0x48,0x87,0x6c,0x33,0x80,0x39,0x7e,0x70,0x5, 0xac, +0x73,0x9, 0xb3,0x0, 0x42,0xb4,0xff,0x2b,0x6c,0xaa,0x7c,0x1a,0x2e,0x10,0xe, 0xa5, +0xe7,0x70,0x19,0x74,0x1, 0xa5,0xf7,0x12,0x4a,0x74,0x7e,0x50,0x2, 0xac,0x5a,0x12, +0x4a,0x6b,0x59,0x32,0x0, 0xc8,0x19,0xa4,0x0, 0x42,0x80,0x7, 0xb, 0xa0,0xbe,0xa0, +0x2, 0x40,0xd7,0xb, 0x30,0x12,0x7, 0x7d,0xa, 0x2b,0xa, 0x33,0xbd,0x32,0x48,0xbc, +0x6c,0x33,0x12,0x4a,0x53,0x70,0x8, 0x12,0x4d,0xac,0xac,0x73,0x12,0x4d,0xd2,0xb, +0x30,0xa5,0xbb,0x2, 0xed,0x12,0x46,0xa1,0x6c,0x33,0x12,0x4a,0x53,0xb4,0x1, 0x21, +0xa, 0x33,0x9, 0xb3,0x0, 0xc2,0xbe,0xb0,0x3, 0x68,0x3, 0xb4,0x1, 0x9, 0xe4,0xa, +0x43,0x19,0xb4,0x0, 0xc0,0x80,0x3b,0x74,0x2, 0xa, 0x43,0x19,0xb4,0x0, 0xc0,0x80, +0x31,0xa, 0x33,0x9, 0xb3,0x0, 0xc2,0xbe,0xb0,0x2, 0x68,0x2, 0x70,0x1c,0x74,0x1, +0xa, 0x43,0x19,0xb4,0x0, 0xc0,0xbe,0xa0,0x2, 0x50,0x17,0x7c,0x6a,0xb, 0xa0,0x7e, +0x70,0x5, 0xac,0x67,0x19,0x33,0x0, 0x42,0x80,0x8, 0x74,0x3, 0xa, 0x43,0x19,0xb4, +0x0, 0xc0,0xb, 0x30,0xbe,0x30,0x2, 0x40,0xa1,0x22,0x7c,0xb3,0x3e,0xb0,0x24,0x8, +0xa, 0x3b,0x22,0x7c,0x13,0x2e,0x10,0xe, 0xa5,0xe7,0x22,0x2e,0x10,0xe, 0x74,0x1, +0xa5,0xf7,0x22,0x7c,0x13,0x2e,0x10,0xc, 0xa5,0xe7,0x22,0x59,0x32,0x0, 0xc4,0x49, +0x34,0x0, 0x40,0x22,0x7e,0x90,0x5, 0xac,0x93,0x49,0x34,0x0, 0x3e,0x22,0x9d,0x32, +0x12,0x2, 0xde,0x7d,0x43,0x22,0x7c,0xab,0x7e,0x70,0x4, 0xac,0x7a,0x49,0x23,0x4, +0x7c,0x12,0x4b,0x58,0x49,0x33,0x0, 0x4, 0x12,0x4a,0x7e,0x7e,0x70,0x4, 0xac,0x7a, +0x49,0x23,0x4, 0x7e,0x12,0x4b,0x58,0x49,0x33,0x0, 0x6, 0x9d,0x32,0x12,0x2, 0xde, +0xbe,0x44,0x0, 0x14,0x58,0x33,0xbe,0x34,0x0, 0x1e,0x58,0x2d,0xa, 0x3a,0x9, 0xb3, +0x4, 0x7a,0x60,0x25,0x7e,0x70,0x4, 0xac,0x7a,0x49,0x43,0x4, 0x7c,0x12,0x4b,0x58, +0x59,0x43,0x0, 0x4, 0x7e,0x70,0x4, 0xac,0x7a,0x49,0x33,0x4, 0x7e,0x7e,0x50,0x5, +0xac,0x5a,0x2e,0x25,0x2c,0x59,0x32,0x0, 0x6, 0x22,0xca,0xf8,0x7e,0xd5,0x2c,0x9, +0xfd,0x0, 0x1a,0x5e,0xf0,0xf, 0x78,0x8, 0x12,0x4b,0x61,0x12,0x4c,0x37,0x80,0x55, +0xbe,0xf0,0x1, 0x78,0x1a,0x7e,0x73,0x4, 0xa8,0xbe,0x70,0x3, 0x50,0x5, 0x12,0x4b, +0x61,0x80,0x9, 0x12,0x4c,0x26,0x28,0x4, 0xe4,0x12,0x4a,0x86,0xe4,0x80,0x33,0xbe, +0xf0,0x2, 0x78,0x31,0x7e,0x73,0x4, 0x79,0xbe,0x70,0x3, 0x50,0x8, 0x12,0x4b,0x61, +0x12,0x4c,0x37,0x80,0x17,0x12,0x4c,0x26,0x28,0x4, 0xe4,0x12,0x4a,0x86,0x7e,0x73, +0x4, 0xb0,0xbe,0x70,0x3, 0x28,0x5, 0x74,0x1, 0x12,0x4a,0x86,0xe4,0x12,0x4b,0x6b, +0x74,0x1, 0x12,0x4b,0x6b,0xda,0xf8,0x22,0x7e,0x70,0x5, 0xac,0x7a,0x2e,0x35,0x2c, +0x22,0xe4,0x7a,0xb3,0x4, 0xaf,0x7a,0xb3,0x4, 0x7a,0x22,0xca,0xf8,0x7c,0xfb,0x74, +0x4, 0xac,0xbf,0x49,0x25,0x4, 0x7c,0x12,0x4c,0x2e,0x49,0x33,0x0, 0x4, 0x9d,0x32, +0x12,0x2, 0xde,0x7d,0x13,0x74,0x4, 0xac,0xbf,0x49,0x25,0x4, 0x7e,0x12,0x4c,0x2e, +0x49,0x33,0x0, 0x6, 0x9d,0x32,0x12,0x2, 0xde,0xbe,0x14,0x0, 0xa, 0x58,0x22,0xbe, +0x34,0x0, 0xf, 0x58,0x1c,0xa, 0x3f,0x7d,0x23,0x2e,0x24,0x4, 0xaf,0x7e,0x29,0xb0, +0x4, 0x7a,0x29,0xb0,0x9, 0x53,0x4, 0xaf,0xbe,0x50,0x20,0x28,0x20,0x74,0x20,0x80, +0xc, 0xa, 0x3f,0x9, 0xa3,0x4, 0xaf,0xbe,0xa0,0x3, 0x38,0x7, 0xe4,0x19,0xb3,0x4, +0xaf,0x80,0xa, 0x2e,0x34,0x4, 0xaf,0x7c,0xba,0x14,0x7a,0x39,0xb0,0xa, 0x3f,0x2e, +0x35,0x2c,0x7e,0x39,0xb0,0x12,0x4c,0x41,0x60,0xa, 0x74,0x78,0xa, 0x3f,0x19,0xb3, +0x4, 0x7a,0x80,0x13,0xa, 0x3f,0x9, 0xb3,0x4, 0x7a,0xbe,0xb0,0x0, 0x28,0x8, 0x2e, +0x34,0x4, 0x7a,0x14,0x7a,0x39,0xb0,0x7e,0x90,0x5, 0xac,0x9f,0x2e,0x45,0x2c,0x49, +0x34,0x0, 0x4, 0x74,0x4, 0xac,0xbf,0x59,0x35,0x4, 0x7c,0x49,0x34,0x0, 0x6, 0x59, +0x35,0x4, 0x7e,0xda,0xf8,0x22,0x7e,0x73,0x4, 0xaf,0xbe,0x70,0x3, 0x22,0x7e,0x70, +0x5, 0xac,0x7f,0x2e,0x35,0x2c,0x22,0xe4,0x7a,0xb3,0x4, 0xb0,0x7a,0xb3,0x4, 0x7b, +0x22,0xca,0x79,0x7c,0xeb,0x6c,0xff,0x7c,0xbe,0x7e,0x30,0x4, 0xac,0x3e,0x12,0x13, +0x92,0x12,0x4d,0xdb,0x7c,0xab,0x7e,0x30,0x4, 0xac,0x3e,0x12,0x13,0x92,0xbe,0x18, +0x3a,0x98,0x8, 0x8, 0xbe,0xa0,0xa, 0x50,0x3, 0x7e,0xf0,0x1, 0x7c,0xbf,0xda,0x79, +0x22,0xca,0xf8,0x7e,0xe4,0x0, 0xc8,0x7e,0xd4,0x1, 0x90,0x7e,0xc4,0x0, 0xf0,0x6c, +0xff,0xa1,0x85,0x12,0x4c,0x2e,0x49,0x23,0x0, 0x4, 0x7a,0x27,0x5, 0x55,0x49,0xb3, +0x0, 0x6, 0xbe,0xb4,0x3, 0x20,0x40,0x2, 0xa1,0x98,0x7e,0x37,0x5, 0x55,0x9d,0x3c, +0x12,0x2, 0xde,0x7d,0xac,0x9d,0xa3,0x7e,0x24,0x0, 0xa, 0x7d,0x3a,0x8d,0x32,0x7d, +0xa3,0xb, 0xa4,0x7d,0x3b,0x8d,0x3d,0x7a,0x27,0x5, 0x57,0x7d,0x32,0x9d,0x3e,0x12, +0x2, 0xde,0x12,0x4d,0xa5,0x7d,0x93,0xb, 0x94,0xbd,0xdb,0x40,0x6, 0x7e,0x37,0x4, +0xab,0x80,0x4, 0x7e,0x37,0x4, 0x86,0x7e,0x24,0x0, 0x64,0x8d,0x32,0x7d,0xf3,0xbe, +0xf4,0x0, 0x1, 0x50,0x4, 0x6d,0xff,0x80,0xa, 0xbe,0xf4,0x0, 0x28,0x28,0x4, 0x7e, +0xf4,0x0, 0x28,0x7d,0x19,0xad,0x1a,0x6d,0x0, 0x7f,0x10,0x7d,0x1f,0x12,0x0, 0x89, +0x7f,0x1, 0xbd,0xeb,0x40,0x11,0x12,0x47,0x35,0x7d,0x3b,0x6d,0x22,0xbf,0x10,0x50, +0x4e,0x6d,0xbb,0x80,0x61,0x80,0x48,0xbd,0xdb,0x40,0x1b,0x7f,0x10,0x74,0x4, 0x12, +0x47,0x39,0x12,0x4d,0x9b,0xb4,0x1, 0x2, 0x9f,0x0, 0x7d,0x81,0x2d,0xb8,0xbd,0xdb, +0x50,0x44,0x7d,0xbd,0x80,0x40,0x7d,0x8e,0x2d,0x8d,0xbd,0x8b,0x40,0x27,0x7f,0x10, +0x74,0x4, 0x12,0x47,0x39,0x12,0x4d,0x9b,0xb4,0x1, 0x2, 0x9f,0x0, 0x7d,0x5d,0x6d, +0x44,0x2f,0x20,0x7d,0x3b,0x6d,0x22,0xbf,0x12,0x50,0x4, 0x7d,0xbd,0x80,0x17,0x7d, +0x81,0x9d,0xb8,0x80,0x11,0x12,0x47,0x35,0x7d,0x81,0x2d,0xb8,0xbe,0xb4,0x3, 0x20, +0x40,0x4, 0x7e,0xb4,0x3, 0x1f,0x74,0x5, 0xac,0xbf,0x7d,0x85,0x2e,0x85,0x2c,0x59, +0xb8,0x0, 0x6, 0xb, 0xf0,0x7e,0x85,0x2c,0x9, 0xb8,0x0, 0x1a,0x54,0xf, 0xa, 0x3b, +0xa, 0x8f,0xbd,0x83,0x58,0x2, 0x81,0x83,0xda,0xf8,0x22,0xa, 0x8f,0x2e,0x85,0x2c, +0x9, 0xb8,0x0, 0x18,0x22,0x7e,0x24,0x0, 0xa, 0x2, 0x0, 0x46,0x7e,0x44,0x7f,0xff, +0x7e,0x70,0x2, 0x22,0x6c,0xaa,0x74,0x3, 0xa, 0x4a,0x19,0xb4,0x0, 0xc2,0x19,0xb4, +0x0, 0xc0,0x12,0x4d,0xac,0xac,0x7a,0x12,0x4d,0xd2,0xb, 0xa0,0xbe,0xa0,0x2, 0x40, +0xe5,0x22,0x59,0x43,0x0, 0xc4,0x59,0x43,0x0, 0xc8,0x22,0x7f,0x71,0x12,0xb, 0xb5, +0xbe,0x24,0x0, 0x8, 0x58,0x6, 0x7e,0x7, 0x4, 0xab,0x80,0x4, 0x7e,0x7, 0x4, 0x86, +0xbe,0x78,0x75,0x30,0x8, 0x0, 0xbe,0x78,0x0, 0x0, 0x58,0x4, 0x6d,0x11,0x80,0x6, +0x7f,0x17,0x2f,0x11,0x7d,0x13,0x7d,0x51,0x8d,0x50,0xbe,0x54,0x0, 0x64,0x28,0x4, +0x7e,0x54,0x0, 0x64,0x22,0x7d,0x2, 0x7d,0xf3,0x6d,0x44,0xd2,0xf, 0x12,0xb, 0xb5, +0xbe,0x24,0x0, 0x8, 0x48,0x2, 0xc2,0xf, 0xbe,0xf4,0x0, 0x20,0x40,0x21,0xbe,0xf4, +0x0, 0x4d,0x50,0x1b,0x7e,0x14,0x0, 0x4d,0x30,0xf, 0xa, 0x9d,0x1f,0x1b,0x14,0x2e, +0x14,0x1, 0xc1,0x80,0x2d,0x9d,0x1f,0x1b,0x14,0x2e,0x14,0x1, 0x67,0x80,0x23,0xbe, +0xf4,0x1, 0xb3,0x28,0x2f,0xbe,0xf4,0x1, 0xe0,0x38,0x29,0x7d,0x1f,0x30,0xf, 0xa, +0x9e,0x14,0x1, 0xb4,0x2e,0x14,0x1, 0x94,0x80,0x8, 0x9e,0x14,0x1, 0xb4,0x2e,0x14, +0x1, 0x3a,0x12,0x1d,0x79,0x1a,0x4b,0x7e,0x14,0x0, 0xa, 0x7d,0x34,0xad,0x31,0x12, +0x4d,0xa5,0x7d,0x43,0x7d,0x54,0x1a,0x4a,0x1a,0x48,0x12,0x4e,0x92,0x2f,0x12,0x2, +0x18,0x92,0x49,0x30,0x0, 0x2, 0xb, 0x8, 0x20,0x22,0x7e,0x34,0x0, 0x1, 0x7a,0x37, +0x4, 0xa9,0x7a,0x37,0x4, 0xab,0xe4,0x7a,0xb3,0x4, 0xad,0x7e,0xb3,0x4, 0xae,0x54, +0xf9,0x7a,0xb3,0x4, 0xae,0x54,0xfe,0x7a,0xb3,0x4, 0xae,0x7a,0x37,0x4, 0x84,0x7a, +0x37,0x4, 0x86,0xe4,0x7a,0xb3,0x4, 0x88,0x7e,0xb3,0x4, 0x89,0x54,0xf9,0x7a,0xb3, +0x4, 0x89,0x54,0xfe,0x7a,0xb3,0x4, 0x89,0x22,0x7e,0x45,0x2c,0x9, 0xa4,0x0, 0x1a, +0x5e,0xa0,0xf, 0x78,0x7, 0xe4,0x7a,0xb3,0x4, 0xa8,0x80,0x3d,0xbe,0xa0,0x1, 0x78, +0x1f,0xe4,0x7a,0xb3,0x4, 0x79,0x7e,0xb3,0x4, 0xa8,0x4, 0x7a,0xb3,0x4, 0xa8,0x7e, +0x73,0x4, 0xa8,0xbe,0x70,0xc8,0x28,0x25,0x74,0xc8,0x7a,0xb3,0x4, 0xa8,0x80,0x1d, +0xe4,0x7a,0xb3,0x4, 0xa8,0x7e,0xb3,0x4, 0x79,0x4, 0x7a,0xb3,0x4, 0x79,0x7e,0x73, +0x4, 0x79,0xbe,0x70,0xc8,0x28,0x6, 0x74,0xc8,0x7a,0xb3,0x4, 0x79,0x7e,0xb3,0x4, +0xa7,0x60,0x5, 0x14,0x7a,0xb3,0x4, 0xa7,0x22,0x2f,0x7, 0x12,0x0, 0x94,0x7a,0x1f, +0x2, 0xc2,0x7e,0x24,0x2, 0xc2,0x7e,0x37,0x2, 0xc6,0x7c,0xbc,0x7e,0x17,0x2, 0x8, +0x99,0x14,0x7e,0x1f,0x2, 0xc2,0x7c,0xbc,0x7e,0x17,0x2, 0xa, 0x89,0x14,0xe5,0x8, +0xa, 0x3b,0x9, 0xb3,0x2, 0x7d,0xf5,0xc, 0x7e,0xb3,0x2, 0xab,0x22,0xe5,0xe2,0xa, +0x7b,0x6d,0x66,0xe5,0xe2,0xf5,0xb, 0xe5,0xb, 0x7c,0x6b,0x6c,0x77,0x6d,0x22,0x22, +0x7e,0x73,0x5, 0x53,0xa, 0x27,0x1b,0x24,0xa, 0x3c,0xbd,0x32,0x7e,0x17,0x1, 0xfc, +0x1a,0x2, 0x22,0xe5,0x8, 0xa, 0x3b,0x9, 0x23,0x2, 0x7d,0x7a,0x21,0xc, 0x7e,0x30, +0x4, 0xac,0x23,0x22,0x1a,0x0, 0x7e,0x7f,0x2, 0xba,0x7f,0x17,0x12,0x0, 0x78,0x7e, +0xf, 0x2, 0xb6,0x22,0x1a,0x0, 0x7e,0x7f,0x2, 0xb6,0x7f,0x17,0x12,0x0, 0x78,0x7e, +0xf, 0x2, 0xba,0x22,0x1a,0x2, 0x7f,0x17,0x12,0x0, 0x78,0x7f,0x1, 0x7e,0x1f,0x2, +0xae,0x22,0x7e,0x31,0xc, 0x74,0x4, 0xac,0x3b,0x2e,0x14,0x0, 0xcc,0x22,0xa, 0x4f, +0xa, 0x5e,0x2d,0x54,0x3e,0x54,0x3e,0x54,0x22,0xa, 0x3d,0x9, 0xc3,0x0, 0x3a,0x7e, +0xa3,0x5, 0x53,0x22,0x7e,0xb3,0x2, 0xa3,0x54,0x1, 0x7e,0x70,0x1, 0x22,0x7e,0xa1, +0x8, 0x74,0x4, 0xa4,0x22,0xe4,0x12,0x2, 0xee,0x7e,0xb3,0x2, 0x54,0x22,0x59,0x35, +0x0, 0xce,0x59,0x25,0x0, 0xcc,0x22,0x49,0x31,0x0, 0xca,0x49,0x21,0x0, 0xc8,0x22, +0x49,0xb1,0x0, 0xce,0x49,0xa1,0x0, 0xcc,0x22,0x7e,0x34,0x0, 0x3c,0x7a,0x35,0x35, +0x22,0x59,0x34,0x0, 0x2, 0x1b,0x48,0x20,0x22,0x7e,0x8, 0x0, 0x4, 0x2, 0x0, 0xe5, +0xa, 0x2e,0xa, 0x3f,0x2, 0x0, 0x46,0x50,0x47,0xaf,0xb8,0x6d,0x92,0x12,0xd8, \ No newline at end of file diff --git a/drivers/input/touchscreen/focaltech/Ft5x16_720P_Ver0x0f_app.h b/drivers/input/touchscreen/focaltech/Ft5x16_720P_Ver0x0f_app.h new file mode 100644 index 00000000..4dac9880 --- /dev/null +++ b/drivers/input/touchscreen/focaltech/Ft5x16_720P_Ver0x0f_app.h @@ -0,0 +1,1275 @@ +0x2, 0x2, 0xf2,0x2, 0x4a,0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x18,0x8e,0x13,0x14, +0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x13,0x22,0x2, 0x49,0x8b,0x7d,0x23, +0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32,0x22,0x2, 0x3, +0xfe,0x22,0x22,0x2, 0x49,0xcf,0x7d,0x13,0x80,0x7, 0x1b,0x24,0x7a,0x19,0xb0,0xb, +0x14,0x4d,0x22,0x78,0xf5,0x22,0x2, 0x4, 0xa9,0xff,0xff,0x2, 0x4d,0x76,0x2, 0x4, +0xb0,0xff,0xff,0x2, 0x49,0xfa,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, 0xb2,0xd5,0x6e, +0x24,0xff,0xff,0xb, 0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e,0x34,0xff,0xff, +0xb, 0x34,0x8d,0x32,0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d,0x32,0x30,0xd5, +0x6, 0x6e,0x34,0xff,0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d,0x2, 0x7d,0x21, +0xad,0x5, 0x2d,0x12,0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31,0xad,0x10,0x2d, +0x21,0x22,0x6d,0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78,0x27,0x8d,0x31, +0x7d,0x12,0x6d,0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11,0x2d,0x44,0x50, +0x2, 0xa5,0xf, 0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78,0xed,0x7f,0x1, +0x6d,0x22,0x7d,0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, 0x2f,0x0, 0x40, +0x4, 0xbd,0x4, 0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d,0x23,0x7d,0x31, +0x7d,0x10,0x6d,0x0, 0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2,0xd5,0x9f,0x22, +0x9f,0x20,0x7f,0x2, 0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22,0x9f,0x21,0x7f, +0x12,0x12,0x0, 0xb4,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12,0x0, 0xb4,0x30, +0xd5,0x6, 0x9f,0x22,0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1a,0x1e, +0x54,0x68,0xe, 0xb, 0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15,0x1b,0x54,0x78, +0xf2,0x50,0x6, 0x7e,0x39,0x40,0x7a,0x19,0x40,0x22,0x6c,0xaa,0xbe,0x8, 0x0, 0x0, +0x68,0x20,0x1e,0x54,0xb, 0x54,0x50,0x16,0x7e,0x1b,0x80,0x7a,0xb, 0x80,0xb, 0x1c, +0xb, 0xc, 0x80,0xa, 0xb, 0x1a,0x40,0x1b,0xa, 0x40,0xb, 0x1d,0xb, 0xd, 0x1b,0x54, +0x78,0xf2,0x22,0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x2, 0x2, +0x2, 0x2, 0x1, 0x0, 0x1, 0x2, 0x3, 0x4, 0x4, 0x3, 0x2, 0x0, 0x2, 0x3, 0x5, 0x5, +0x5, 0x4, 0x2, 0x0, 0x2, 0x4, 0x6, 0x6, 0x6, 0x5, 0x3, 0x0, 0x3, 0x5, 0x7, 0x8, +0x7, 0x6, 0x3, 0x0, 0x3, 0x6, 0x8, 0x9, 0x9, 0x7, 0x4, 0x0, 0x4, 0x7, 0xa, 0xb, +0xa, 0x8, 0x4, 0x0, 0x4, 0x8, 0xb, 0xc, 0xb, 0x9, 0x5, 0x0, 0x5, 0x9, 0xc, 0xd, +0xd, 0xa, 0x5, 0x0, 0x5, 0xa, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, +0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, +0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, +0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, +0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, +0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, +0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, +0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, +0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, +0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, +0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, +0xe, 0xb, 0x6, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0, 0x9, +0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10, +0x11,0x12,0x13,0x14,0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, +0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x0, 0x0, 0x0, 0x78,0x2, 0x58,0x2, +0xd0,0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x50,0x0, 0x82,0x2, +0x76,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, +0x28,0x28,0x28,0x28,0x28,0x28,0xe, 0xe, 0xe, 0xe, 0xe, 0xe, 0xe, 0xe, 0xe, 0xe, +0xe, 0xe, 0x75,0x84,0x1, 0x7e,0x44,0x4, 0x1f,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78, +0xf9,0x7e,0xf8,0xc, 0xb2,0x75,0x1b,0x0, 0x75,0x16,0x0, 0xd2,0x0, 0x75,0xa, 0x0, +0x75,0xf, 0x0, 0x75,0x10,0x0, 0x75,0x14,0x0, 0xc2,0x2, 0x75,0x17,0x0, 0x75,0x18, +0x0, 0x75,0x1c,0x0, 0xc2,0x3, 0x7e,0x4, 0x0, 0xff,0x7e,0x14,0x3, 0xc2,0xb, 0xa, +0x40,0x5d,0x44,0x68,0x1a,0x69,0x20,0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e, +0xb, 0xb0,0x7a,0x29,0xb0,0xb, 0x24,0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, +0x4, 0x32,0x1a,0x1d,0x1f,0x20,0x1c,0x1b,0xe, 0x0, 0x64,0x64,0x64,0x64,0x64,0x64, +0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x7d,0x3, +0x80,0xa, 0x7e,0x29,0xb0,0x7a,0x9, 0xb0,0xb, 0x24,0xb, 0x4, 0x7d,0x51,0x1b,0x14, +0x4d,0x55,0x78,0xee,0x22,0x10,0x10,0x10,0x1c,0x19,0x14,0x10,0xe, 0xc, 0xb, 0xa, +0x9, 0x8, 0x7, 0x6, 0x0, 0x50,0x0, 0x50,0x0, 0x50,0x0, 0x50,0x0, 0x50,0x0, 0x50, +0x0, 0x50,0x13,0x14,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x13,0x13,0x14, +0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x13,0x1, 0x2, 0x4, 0x8, 0x10,0x20, +0x40,0x80,0x0, 0x1, 0xc, 0xac,0x0, 0x0, 0x1, 0xc, 0xad,0x0, 0x0, 0x2, 0xa, 0xd8, +0x0, 0x0, 0x0, 0x1, 0xb, 0xdf,0x0, 0x0, 0x1, 0xb, 0xe1,0x0, 0x0, 0x1, 0xb, 0xe4, +0x0, 0x0, 0x2, 0xb, 0xe5,0x0, 0x0, 0x0, 0x1, 0xb, 0xea,0x0, 0x0, 0x2, 0xc, 0xae, +0x0, 0x0, 0x0, 0x1, 0xc, 0xb0,0x0, 0x0, 0x1, 0xc, 0xb1,0x0, 0x0, 0x0, 0xc2,0x8e, +0x75,0x89,0x10,0x75,0x9b,0x0, 0x12,0x18,0x3d,0xd2,0xab,0x22,0x12,0x4, 0x12,0x2, +0x0, 0x3e,0x12,0x49,0xfd,0xe4,0x12,0x4a,0x37,0x12,0x4a,0x57,0x12,0x0, 0x42,0x12, +0x0, 0x2a,0x12,0x4a,0x63,0x74,0x1, 0x2, 0x4, 0x2a,0x70,0x3, 0xc2,0xaf,0x22,0xd2, +0xaf,0x22,0x12,0x17,0xbc,0x12,0x0, 0x56,0x12,0x4, 0xc, 0x12,0x0, 0x5e,0xa9,0xd3, +0xf7,0xc2,0xfb,0x12,0x4, 0xd6,0x12,0x4f,0x3e,0x12,0x8, 0xcc,0x12,0x1f,0xa6,0x7e, +0xb3,0xb, 0x33,0x24,0xfd,0x68,0x14,0x14,0x68,0x16,0x24,0xaf,0x68,0x2c,0x24,0xab, +0x68,0x13,0x24,0xa9,0x78,0xe9,0x12,0xa, 0xd2,0x80,0xe4,0x12,0x14,0x28,0x80,0xdf, +0x12,0x17,0x83,0x80,0xda,0x12,0x4, 0x9e,0xbe,0xb0,0xaa,0x68,0xd2,0xe4,0x7a,0xb3, +0x2, 0xc5,0x74,0xaa,0x7a,0xb3,0x3, 0xb6,0x80,0xc5,0x12,0x4, 0x9e,0xb4,0xaa,0xbf, +0x74,0x55,0x7a,0xb3,0x3, 0xb6,0x12,0x8, 0x5f,0x75,0xe9,0xff,0x80,0xb1,0x6d,0x33, +0x7a,0x37,0x3, 0xb4,0x7e,0xb3,0x3, 0xb6,0x22,0xa9,0xd0,0x99,0xa9,0xc6,0xdf,0x22, +0x43,0xdb,0x10,0xd2,0xd9,0xc2,0xdd,0xc2,0xdc,0xc2,0xdb,0xc2,0xda,0xd2,0xd8,0x75, +0xd7,0x6, 0xc2,0xea,0x2, 0x4, 0xc7,0xc2,0x3, 0x53,0xdb,0xfd,0xd2,0xeb,0xc2,0xc3, +0xa9,0xd3,0xf7,0xd2,0xfb,0x22,0xe4,0x7a,0xb3,0xb, 0xe7,0x12,0x7, 0x72,0x2, 0x4, +0xe1,0xca,0xf8,0x6d,0x33,0x7a,0x37,0xb, 0xe5,0xe4,0x12,0x6, 0x4d,0x7c,0xfb,0x5e, +0xf0,0x7, 0x78,0x5, 0x12,0x7, 0x68,0x80,0xd, 0xbe,0xf0,0x4, 0x40,0x8, 0xbe,0xf0, +0x5, 0x68,0x3, 0x12,0x7, 0x5e,0xe4,0x12,0x49,0xdf,0x74,0xaa,0x7a,0xb3,0xb, 0x92, +0x74,0xaa,0x7a,0xb3,0xb, 0x93,0x74,0xaa,0x7a,0xb3,0xb, 0xb6,0x74,0xaa,0x7a,0xb3, +0xb, 0xb7,0xda,0xf8,0x22,0xbe,0xb0,0x80,0x40,0xc, 0xbe,0xb0,0xbf,0x38,0x7, 0xa, +0x3b,0x9, 0xb3,0xa, 0x8c,0x22,0x7c,0xab,0xb, 0xa2,0x68,0x9, 0x1b,0xa2,0x78,0xa, +0x7e,0xb3,0xb, 0xe7,0x22,0x7e,0xb3,0xb, 0x33,0x22,0xb4,0x3, 0x11,0x30,0x2, 0x6, +0x7e,0x34,0xb, 0x92,0x80,0x4, 0x7e,0x34,0xb, 0xb6,0x7a,0x37,0xb, 0xe8,0xbe,0xb0, +0x3, 0x40,0x10,0xbe,0xb0,0x3e,0x38,0xb, 0xa, 0x3b,0x2e,0x37,0xb, 0xe8,0x9, 0xb3, +0x0, 0x2, 0x22,0x1b,0xb1,0x68,0x18,0x4, 0x78,0x2a,0x30,0x2, 0x6, 0x7e,0x34,0xb, +0x92,0x80,0x4, 0x7e,0x34,0xb, 0xb6,0x12,0x4f,0x69,0x9, 0xb3,0x0, 0x4, 0x22,0x30, +0x2, 0x6, 0x7e,0x34,0xb, 0x92,0x80,0x4, 0x7e,0x34,0xb, 0xb6,0x12,0x4f,0x69,0x9, +0xb3,0x0, 0x3, 0x22,0x74,0xff,0x22,0xca,0x79,0x30,0x90,0x67,0xc2,0x90,0x7e,0xb3, +0xb, 0xe1,0x4, 0x7a,0xb3,0xb, 0xe1,0x7e,0xf3,0xb, 0xe1,0xbe,0xf0,0x1, 0x78,0x8, +0xe5,0x91,0x7a,0xb3,0xb, 0xea,0x80,0x28,0x12,0x6, 0x51,0x7c,0xeb,0x5e,0xe0,0x7, +0x78,0xb, 0x12,0x4f,0x7b,0x7e,0x71,0x91,0x12,0x39,0xfc,0x80,0x13,0xbe,0xe0,0x4, +0x40,0xe, 0xbe,0xe0,0x5, 0x68,0x9, 0x12,0x4f,0x7b,0x7e,0x71,0x91,0x12,0x38,0x94, +0x12,0x6, 0x51,0x7c,0x5b,0x5e,0x50,0x7, 0xa5,0xbd,0x0, 0xa, 0x12,0x6, 0x59,0x68, +0x12,0x12,0x7, 0x68,0x80,0xd, 0xbe,0x50,0x4, 0x40,0x8, 0xbe,0x50,0x5, 0x68,0x3, +0x12,0x7, 0x5e,0x30,0x91,0x34,0xc2,0x91,0x7e,0xb3,0xb, 0xdf,0x4, 0x12,0x6, 0x4d, +0x7c,0x5b,0x5e,0x50,0x7, 0xa5,0xbd,0x0, 0xf, 0x12,0x6, 0x59,0x68,0x1c,0x12,0x4f, +0x72,0x12,0x5, 0x25,0xf5,0x91,0x80,0x12,0xbe,0x50,0x4, 0x40,0xd, 0xbe,0x50,0x5, +0x68,0x8, 0x12,0x4f,0x72,0x12,0x6, 0x61,0xf5,0x91,0xda,0x79,0x22,0x7a,0xb3,0xb, +0xdf,0x7e,0xb3,0xb, 0xe7,0xc4,0x54,0xf, 0x22,0xe4,0x12,0x5, 0x25,0xbe,0xb0,0x10, +0x22,0x7c,0x7b,0x14,0x68,0x3f,0x14,0x68,0x41,0x14,0x68,0x41,0x14,0x68,0x3e,0x14, +0x68,0x3b,0x14,0x68,0x38,0x14,0x68,0x35,0x14,0x68,0x32,0x14,0x68,0x2f,0x14,0x68, +0x2c,0x14,0x68,0x29,0x14,0x68,0x26,0x14,0x68,0x23,0x14,0x68,0x20,0x14,0x68,0x1d, +0x24,0xc3,0x68,0x25,0x1b,0xb1,0x68,0x2b,0x24,0x64,0x68,0x22,0x24,0xea,0x78,0x28, +0x7e,0xb3,0xb, 0xe7,0x22,0x7e,0xb3,0xb, 0xe4,0x22,0x74,0xff,0x22,0xa, 0x37,0x2e, +0x34,0x3, 0xb9,0x9e,0x34,0x0, 0x3, 0x80,0x33,0x7e,0xb3,0x3, 0xc6,0x22,0x7e,0xb3, +0xc, 0xa5,0x22,0x7e,0xb3,0x4, 0x24,0x22,0x12,0x6, 0x51,0x54,0x7, 0x12,0x3a,0x6c, +0x7c,0x6b,0xbe,0x70,0x10,0x40,0x19,0xbe,0x70,0x38,0x38,0x14,0x74,0x28,0xac,0xb6, +0xa, 0x37,0x2e,0x37,0xb, 0xe2,0x9e,0x34,0x0, 0x10,0x2d,0x35,0x7e,0x39,0xb0,0x22, +0xbe,0x70,0x50,0x40,0xf, 0xbe,0x70,0x63,0x38,0xa, 0x12,0x7, 0x57,0x2d,0x35,0x9, +0xb3,0x3, 0x79,0x22,0xbe,0x70,0x78,0x40,0xf, 0xbe,0x70,0x8b,0x38,0xa, 0x12,0x7, +0x57,0x2d,0x35,0x9, 0xb3,0x3, 0x66,0x22,0xbe,0x70,0xa0,0x40,0xf, 0xbe,0x70,0xb3, +0x38,0xa, 0x12,0x7, 0x57,0x2d,0x35,0x9, 0xb3,0x3, 0x53,0x22,0xbe,0x70,0xbf,0x40, +0xf, 0xbe,0x70,0xd2,0x38,0xa, 0x12,0x7, 0x57,0x2d,0x35,0x9, 0xb3,0x3, 0x40,0x22, +0xbe,0x70,0xd3,0x40,0xf, 0xbe,0x70,0xe6,0x38,0xa, 0x12,0x7, 0x57,0x2d,0x35,0x9, +0xb3,0x3, 0x41,0x22,0x74,0xff,0x22,0x74,0x14,0xac,0xb6,0xa, 0x37,0x22,0x7e,0xb3, +0xb, 0xea,0x12,0x6, 0x61,0xf5,0x91,0x22,0x7e,0xb3,0xb, 0xea,0x12,0x5, 0x25,0xf5, +0x91,0x22,0x2, 0x8, 0x0, 0xe5,0xf6,0x43,0xfa,0x80,0xc2,0xc9,0xd2,0xaf,0x22,0x2, +0x17,0xe2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xca,0x79,0x7e,0xf0,0x70,0x7e,0x34,0x78,0x0, 0x12,0x8, 0x48,0x7c,0xeb,0x7e,0x34, +0x78,0x1, 0x12,0x8, 0x48,0xbe,0xe0,0xff,0x68,0xc, 0x6c,0xbe,0xb4,0xff,0x7, 0x7c, +0xbe,0x20,0xe0,0x2, 0x7c,0xfe,0x75,0x91,0x0, 0xc2,0x90,0xc2,0x91,0xd2,0xce,0x7c, +0xbf,0x54,0xfe,0xf5,0x92,0xd2,0xad,0xd2,0xe8,0xc2,0xc0,0xa9,0xd0,0xf7,0xd2,0xf8, +0xa9,0xd5,0xb7,0xd2,0xbd,0xda,0x79,0x22,0xc2,0xaf,0xd2,0xc9,0xa, 0x56,0xf5,0xf1, +0x7c,0xb7,0x12,0x4d,0x6d,0x75,0xf5,0x1, 0xa9,0x37,0xf5,0xfc,0x2, 0x7, 0x75,0x7e, +0x34,0x6f,0xf8,0x74,0x66,0x12,0x8, 0x71,0x7e,0x34,0x6f,0xf9,0x74,0xbb,0x2, 0x8, +0x71,0x7c,0xab,0x7d,0x23,0x12,0x4f,0x27,0x7d,0x12,0x5e,0x14,0x0, 0x1, 0x68,0x2, +0x1b,0x24,0xa, 0x14,0x7c,0xb3,0xf5,0xf1,0x7c,0xb5,0xf5,0xf2,0x75,0xf3,0x80,0x75, +0xf4,0x1, 0x75,0xf5,0x0, 0x5e,0x34,0x0, 0x1, 0x68,0x8, 0x75,0xf6,0xff,0x7a,0xa1, +0xf6,0x80,0x6, 0x7a,0xa1,0xf6,0x75,0xf6,0xff,0xa9,0x36,0xf5,0xfc,0x43,0xfa,0x80, +0x2, 0x8, 0xb3,0x75,0xfd,0xf, 0x75,0xfe,0xf0,0xa9,0xc5,0xcb,0xc2,0xc9,0xd2,0xaf, +0x22,0x7d,0x36,0xb, 0x36,0x2e,0x34,0x7c,0x0, 0x2, 0x8, 0x48,0xca,0x3b,0x7e,0xe0, +0xff,0x7e,0xf0,0xff,0x53,0xdc,0xe0,0x43,0xdc,0x6, 0x6d,0x66,0x0, 0xb, 0x64,0xbe, +0x64,0x0, 0x12,0x78,0xf7,0x53,0xc9,0xfe,0x6d,0x33,0x12,0x8, 0xc5,0x7c,0xfb,0x7e, +0xb3,0xb, 0x2c,0x70,0x3, 0x7e,0xf0,0xff,0xbe,0xf0,0xff,0x68,0x38,0x7e,0x34,0x3, +0xf0,0x12,0x8, 0xc5,0xf5,0x27,0x7e,0x34,0x3, 0xf1,0x12,0x8, 0xc5,0xf5,0x28,0x65, +0x27,0xbe,0xb0,0xff,0x68,0x3, 0x7e,0xf0,0xff,0x75,0x28,0x0, 0x6d,0x66,0x12,0x8, +0xc1,0x62,0x28,0xb, 0x64,0xbe,0x64,0x2, 0x69,0x78,0xf3,0xe5,0x28,0xbe,0xb1,0x27, +0x68,0x3, 0x7e,0xf0,0xff,0xbe,0xf0,0xff,0x68,0x3, 0x12,0x47,0x14,0x74,0x15,0x7a, +0xb3,0x3, 0xb9,0x74,0xc, 0x7a,0xb3,0x3, 0xba,0x74,0x2, 0x7a,0xb3,0x3, 0xbb,0xe4, +0x7a,0xb3,0x3, 0xbc,0x74,0xa, 0x7a,0xb3,0x3, 0xbd,0x7e,0x34,0x21,0x34,0x7a,0x37, +0x3, 0xc7,0x12,0x4f,0x8d,0x12,0x4f,0x13,0x7a,0xb3,0x4, 0x29,0x6c,0xee,0xa, 0x3e, +0x2e,0x34,0x2, 0x8f,0x12,0x9, 0xde,0xa, 0x3e,0x19,0xb3,0x3, 0xc9,0x2e,0x34,0x2, +0xd1,0x12,0x9, 0xde,0xa, 0x3e,0x19,0xb3,0x3, 0xde,0x2e,0x34,0x2, 0xa4,0x12,0x9, +0xde,0xa, 0x3e,0x19,0xb3,0x3, 0xff,0xb, 0xe0,0xbe,0xe0,0x15,0x78,0xd0,0x6c,0xee, +0xa, 0x3e,0x2e,0x34,0x2, 0xc1,0x12,0x9, 0xde,0xa, 0x3e,0x19,0xb3,0x3, 0xf3,0xbe, +0xf0,0xff,0x78,0xf, 0xa, 0x3e,0x2e,0x34,0x2, 0xe6,0x12,0x9, 0xde,0xa, 0x3e,0x19, +0xb3,0x4, 0x14,0xb, 0xe0,0xbe,0xe0,0xc, 0x78,0xd6,0xbe,0xf0,0xff,0x78,0x6, 0x12, +0x4f,0x45,0x12,0x0, 0x46,0xda,0x3b,0x22,0xa, 0x3f,0x2e,0x34,0x2, 0x83,0x7a,0x71, +0x82,0x7a,0x61,0x83,0xe4,0x93,0x22,0x12,0x44,0x90,0x6d,0x33,0x7a,0x37,0x1, 0xab, +0x12,0x44,0xcb,0x7a,0xb3,0x1, 0xe8,0x7a,0xb3,0x1, 0xe9,0x7a,0xb3,0x1, 0xea,0x7a, +0xb3,0x1, 0xeb,0x7a,0xb3,0x1, 0xec,0x74,0x1, 0x7a,0xb3,0x1, 0xe6,0xe4,0x12,0x44, +0xb3,0x12,0x44,0xdc,0x6c,0xaa,0xbe,0xa0,0x7, 0x50,0x34,0xa, 0x3a,0x2e,0x34,0x3, +0x52,0x12,0x9, 0xde,0xa, 0x4a,0x19,0xb4,0x1, 0xad,0xa, 0x3a,0x2e,0x34,0x3, 0x59, +0x12,0x9, 0xde,0x19,0xb4,0x1, 0xd5,0xa, 0x3a,0x2e,0x34,0x3, 0x60,0x12,0x9, 0xde, +0x19,0xb4,0x1, 0xbd,0xa, 0x3a,0x2e,0x34,0x3, 0x67,0x12,0x9, 0xde,0x80,0x15,0x74, +0xff,0xa, 0x4a,0x19,0xb4,0x1, 0xad,0xe4,0x19,0xb4,0x1, 0xd5,0x74,0x2, 0x19,0xb4, +0x1, 0xbd,0x74,0x2, 0xa, 0x4a,0x19,0xb4,0x1, 0xdd,0xa, 0x3a,0x19,0xa3,0x1, 0xb5, +0x12,0xf, 0x7e,0x59,0x43,0x1, 0xc5,0xa, 0x3a,0x9, 0xb3,0x1, 0xad,0xbe,0xb3,0x4, +0x24,0x78,0x28,0xa, 0x3a,0x9, 0xb3,0x1, 0xd5,0xbe,0xb3,0x4, 0x27,0x78,0x1c,0xa, +0x3a,0x9, 0xb3,0x1, 0xdd,0xbe,0xb3,0x4, 0x29,0x78,0x10,0xa, 0x3a,0x9, 0xb3,0x1, +0xbd,0xbe,0xb3,0x4, 0x28,0x78,0x4, 0x7a,0xa3,0x1, 0xe8,0xb, 0xa0,0xbe,0xa0,0x8, +0x68,0x2, 0x41,0x16,0x6c,0xaa,0x12,0xf, 0x7e,0x59,0x43,0x2, 0x9c,0x7e,0x44,0x7f, +0xff,0x7e,0x70,0x2, 0xac,0x7a,0x59,0x43,0x2, 0x84,0xb, 0xa0,0xbe,0xa0,0xc, 0x40, +0xe5,0x22,0xca,0x3b,0x6c,0xff,0x6c,0xee,0x12,0x4f,0x35,0x12,0x47,0x2f,0x12,0x17, +0x16,0x12,0x1a,0xc0,0x7e,0x34,0x6, 0x22,0x12,0x3e,0x54,0xe4,0x7a,0xb3,0xc, 0xb2, +0x12,0x14,0xf3,0x12,0x1f,0xe8,0x12,0x1b,0x30,0x78,0xfb,0x12,0xe, 0xa3,0x12,0xf, +0x86,0x12,0x4f,0x8d,0x12,0x10,0x44,0x12,0x9, 0xe7,0x12,0x1b,0x37,0x12,0x17,0xb5, +0x12,0xf, 0x95,0x12,0xf, 0xb8,0x12,0x4e,0xff,0x12,0x1f,0xa6,0x6d,0x33,0x7a,0x35, +0xc, 0x7e,0xd3,0xb, 0x17,0x7a,0xd1,0xe, 0x7e,0xb3,0xb, 0x33,0xb4,0x1, 0x2, 0x80, +0x2, 0xc1,0x96,0x53,0xdb,0x7f,0x6d,0x33,0x7a,0x37,0x3, 0xb4,0x7e,0x34,0x0, 0x64, +0x7a,0x37,0x0, 0x3c,0x12,0x48,0x8a,0x75,0x12,0x0, 0x75,0x11,0x0, 0x7e,0xb3,0xb, +0x31,0x70,0x8, 0x7e,0xb3,0x2, 0xbe,0xf5,0x13,0x80,0x6, 0x7e,0xb3,0x2, 0xc0,0xf5, +0x13,0x7e,0xb3,0xb, 0x2c,0xbe,0xb0,0xff,0x68,0x9, 0x12,0x8, 0xcc,0x12,0xf, 0x6f, +0x12,0x4f,0x3e,0x12,0x44,0xee,0xe5,0xe, 0x70,0x2, 0x80,0x39,0x7e,0xb3,0x1, 0xec, +0xf5,0x21,0x7e,0xb3,0x2, 0xb5,0xf5,0x23,0x7e,0xb3,0x2, 0x82,0xf5,0x25,0x12,0x4a, +0x6f,0x7e,0xb3,0x1, 0xec,0xf5,0x22,0x7e,0xb3,0x2, 0xb5,0xf5,0x24,0x7e,0xb3,0x2, +0x82,0xf5,0x26,0xe5,0x21,0x7a,0xb3,0x1, 0xec,0xe5,0x23,0x7a,0xb3,0x2, 0xb5,0xe5, +0x25,0x7a,0xb3,0x2, 0x82,0x12,0xf, 0x92,0x12,0x11,0xa8,0x12,0x46,0xe2,0x7e,0x73, +0xa, 0xa6,0x7a,0x73,0xb, 0x35,0x7e,0xb3,0x2, 0xc4,0xb4,0x1, 0x4, 0xe4,0x12,0xf, +0x76,0x7e,0x63,0x1, 0xe8,0x7e,0x70,0x2, 0xac,0x67,0x2e,0x34,0x3, 0x94,0x7e,0x24, +0x0, 0xff,0xb, 0x1a,0x30,0x7a,0x37,0x6, 0x67,0x1e,0x34,0x1e,0x34,0x7a,0x73,0x6, +0x69,0x7a,0x73,0xb, 0xc, 0x12,0x2d,0x85,0x12,0x4c,0x34,0x12,0x2f,0xcb,0x7e,0x37, +0xa, 0xa4,0x7a,0x73,0xb, 0xf, 0x7e,0xb3,0xa, 0x9d,0x7a,0xb3,0xb, 0x10,0xb4,0x6, +0x17,0x12,0x1f,0xe0,0x50,0x3, 0x12,0x30,0xa8,0x12,0x3a,0x7f,0x7e,0xb3,0x0, 0x81, +0x30,0xe0,0x5, 0xe4,0x7a,0xb3,0xa, 0x9d,0x12,0x4f,0x4f,0x78,0x12,0x7e,0xb3,0xa, +0x9d,0xb4,0x4, 0xb, 0xe5,0xe, 0x70,0x7, 0x7e,0x34,0x0, 0xa, 0x7a,0x35,0xc, 0x7e, +0x35,0xc, 0xbe,0x34,0x0, 0x0, 0x28,0xb, 0x1b,0x34,0x7a,0x35,0xc, 0x74,0x4, 0x7a, +0xb3,0xa, 0x9d,0x7e,0x34,0x0, 0x3e,0x7a,0x37,0x3, 0x58,0x12,0x34,0x51,0x7a,0xb3, +0x3, 0xa9,0xe5,0xe, 0xb4,0x1, 0x12,0xe5,0x22,0x7a,0xb3,0x1, 0xec,0xe5,0x24,0x7a, +0xb3,0x2, 0xb5,0xe5,0x26,0x7a,0xb3,0x2, 0x82,0x74,0x1, 0x12,0x20,0x6e,0x12,0x22, +0xee,0x12,0x46,0x8c,0xb4,0x1, 0x12,0x7e,0xb3,0x3, 0xad,0xbe,0xb0,0x2, 0x68,0x15, +0xbe,0xb0,0x1, 0x68,0x10,0x74,0x3, 0x80,0x8, 0x7e,0xb3,0x3, 0xad,0xb4,0x3, 0x5, +0xe4,0x7a,0xb3,0x3, 0xad,0x7e,0xb3,0x3, 0xb3,0xb4,0x5, 0xe, 0x74,0x1e,0x7a,0xb3, +0x6, 0x69,0x7e,0x73,0x6, 0x69,0x7a,0x73,0xb, 0xc, 0x12,0x27,0x80,0x12,0x27,0x5d, +0x7e,0xb3,0xa, 0x9d,0xb4,0x6, 0xe, 0x7e,0x73,0x0, 0x7f,0xbe,0x70,0x1, 0x28,0x5, +0xe4,0x7a,0xb3,0xa, 0x9d,0x12,0xf, 0x95,0x7e,0x14,0x6, 0x67,0x12,0x4a,0xed,0x12, +0x4f,0x4f,0x78,0xc, 0x7e,0x73,0x0, 0x80,0xbe,0x73,0x0, 0x7f,0x50,0x5, 0x80,0x0, +0x12,0x2b,0xe6,0x7e,0x73,0x0, 0x7f,0x7a,0x73,0x0, 0x80,0x12,0x4f,0x84,0xe5,0xe, +0xb4,0x1, 0x2, 0x80,0x2, 0xa1,0x91,0x7e,0xb3,0x3, 0xa4,0x12,0x41,0x27,0x7e,0x73, +0x1, 0xec,0xa, 0x37,0x9, 0x73,0x1, 0xb5,0xbe,0x73,0x1, 0xe8,0x78,0x36,0x7e,0x73, +0x3, 0xa4,0xbe,0x70,0x0, 0x28,0x2d,0x7e,0x37,0x1, 0xf0,0x7a,0x35,0xf, 0xbe,0x34, +0x0, 0x50,0x28,0x8, 0x74,0x2, 0x7a,0xb3,0x3, 0xad,0x6c,0xee,0x7e,0x35,0xf, 0xbe, +0x34,0x0, 0x28,0x50,0xf, 0xbe,0xe0,0x14,0x50,0x4, 0xb, 0xe0,0x80,0x6, 0x74,0x1, +0x7a,0xb3,0x3, 0xad,0x7e,0x37,0x1, 0xa9,0xbe,0x34,0x0, 0x3, 0x78,0x6, 0x74,0x2, +0x7a,0xb3,0x3, 0xad,0x7e,0xb3,0xb, 0x1b,0xb4,0x1, 0x26,0xe4,0x7a,0xb3,0xb, 0x1b, +0x7e,0x73,0xb, 0x16,0x7a,0x73,0x4, 0x24,0x7e,0x73,0xb, 0x19,0x7a,0x73,0x4, 0x27, +0x12,0x44,0xe5,0x7e,0x73,0xb, 0x18,0x7a,0x73,0x4, 0x29,0x12,0x9, 0xe7,0x12,0xf, +0x6f,0x7e,0xb3,0xb, 0x17,0x70,0x10,0xbe,0xd0,0x1, 0x78,0xb, 0xe4,0x7a,0xb3,0x3, +0xb3,0x7e,0xf0,0x1, 0x12,0xf, 0x6f,0x7e,0x73,0xb, 0x17,0xbc,0x7d,0x68,0x11,0x7c, +0xd7,0xbe,0xd0,0x1, 0x78,0x4, 0x74,0x2, 0x80,0x2, 0x74,0x1, 0x7a,0xb3,0x3, 0xad, +0x7e,0xa3,0xb, 0x17,0xbe,0xa1,0xe, 0x68,0x9, 0x7e,0xb3,0x3, 0xac,0x70,0x3, 0x7a, +0xa1,0xe, 0x12,0x38,0x4, 0x7e,0x73,0x3, 0xa4,0x7a,0x73,0x0, 0x7f,0x7e,0x34,0x2, +0xef,0x7a,0x37,0x6, 0x65,0x12,0x1f,0x26,0x7e,0x34,0x6, 0x22,0x7a,0x37,0x3, 0x58, +0x12,0x4f,0x84,0x12,0x1b,0x4a,0x12,0x40,0x34,0x7e,0xa3,0x3, 0xad,0x4c,0xaa,0x78, +0x4, 0x74,0x1, 0x80,0x13,0xbe,0xa0,0x2, 0x78,0x4, 0x74,0x5, 0x80,0xa, 0xbe,0xa0, +0x3, 0x78,0x4, 0x74,0x2, 0x80,0x1, 0xe4,0x7a,0xb3,0x3, 0xb3,0x7e,0xb3,0x3, 0xa4, +0xb4,0x1, 0xe, 0x7e,0xb3,0x3, 0xa5,0x70,0x8, 0x7e,0x73,0x3, 0xb3,0x7a,0x73,0x3, +0xae,0x7e,0x34,0x3, 0x58,0x7e,0x24,0x2, 0xef,0x12,0x3a,0xc8,0x12,0x19,0x99,0x7e, +0xb3,0x3, 0xac,0xb4,0x1, 0x2, 0x80,0x2, 0x61,0x28,0x7e,0xb3,0x0, 0x80,0x60,0x2, +0x61,0x28,0xbe,0xf0,0x1, 0x78,0x35,0x6c,0xff,0x6c,0xcc,0xa, 0x2c,0x2e,0x24,0x3, +0xde,0x12,0x4a,0xe2,0xb, 0xc0,0xbe,0xc0,0x15,0x78,0xf0,0x12,0x4f,0x13,0x7a,0xb3, +0x4, 0x29,0x12,0x9, 0xe7,0x74,0x1a,0x7a,0xb3,0xb, 0x16,0xe4,0x7a,0xb3,0xb, 0x19, +0x74,0x2, 0x7a,0xb3,0xb, 0x1a,0x74,0x2, 0x7a,0xb3,0xb, 0x18,0x12,0xf, 0x9e,0xe4, +0x7a,0xb3,0x3, 0xac,0x61,0x28,0x12,0x4e,0xb6,0xe4,0x12,0xf, 0x76,0x12,0x0, 0x41, +0xda,0x3b,0x22,0x74,0x23,0x7a,0xb3,0xa, 0xd5,0x12,0x40,0xa8,0x7e,0x34,0x2, 0xf8, +0xca,0x3b,0x7d,0x73,0x6c,0xdd,0x49,0x37,0x0, 0x5d,0x12,0x1e,0xfd,0x1e,0x34,0x7c, +0xc7,0xe4,0x7e,0x79,0x70,0x12,0xf, 0x5f,0x74,0x2, 0x9, 0x77,0x0, 0x2, 0x12,0xf, +0x5f,0x74,0x3, 0x9, 0x77,0x0, 0x3, 0x12,0xf, 0x5f,0x74,0x4, 0x9, 0x77,0x0, 0x4, +0x12,0xf, 0x5f,0x74,0x5, 0x9, 0x77,0x0, 0x5, 0x12,0xf, 0x5f,0x74,0x6, 0x9, 0x77, +0x0, 0x5f,0x12,0xf, 0x5f,0x74,0x8, 0x9, 0x77,0x0, 0x6, 0x12,0xf, 0x5f,0x74,0x9, +0x9, 0x77,0x0, 0x7, 0x12,0xf, 0x5f,0x74,0xa, 0x7c,0x7c,0x12,0xf, 0x5f,0x74,0x1, +0x6c,0x77,0x12,0xf, 0x5f,0x6c,0xcc,0x80,0x3b,0x12,0xf, 0x68,0x24,0x10,0xa, 0x3c, +0x2d,0x37,0x9, 0x73,0x0, 0x47,0x12,0xf, 0x65,0x24,0x11,0xa, 0x3c,0x2d,0x37,0x9, +0x73,0x0, 0x8, 0x12,0xf, 0x65,0x24,0x12,0xa, 0x3c,0x2d,0x37,0x9, 0x73,0x0, 0x1d, +0x12,0xf, 0x65,0x24,0x13,0xa, 0x3c,0x2d,0x37,0x9, 0x73,0x0, 0x32,0x12,0xf, 0x5f, +0xb, 0xd0,0xb, 0xc0,0x9, 0x77,0x0, 0x5, 0xbc,0x7c,0x38,0xbd,0xda,0x3b,0x22,0xf5, +0xd9,0x7a,0x71,0xda,0x22,0x12,0xf, 0x5f,0x7c,0xbd,0x3e,0xb0,0x3e,0xb0,0x22,0x74, +0x1, 0x7a,0xb3,0x3, 0xac,0x22,0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86,0x22,0x6d,0x44, +0x7e,0x70,0x2, 0xac,0x7a,0x22,0x53,0xdb,0xfd,0xd2,0xeb,0x43,0xdb,0x1, 0x43,0xdb, +0x20,0x22,0x12,0xf, 0x86,0x7e,0x34,0xa, 0xa7,0x7e,0x24,0x6, 0x8a,0x22,0x12,0x14, +0x1e,0x60,0xfb,0x12,0x15,0xfb,0x12,0x14,0xf0,0x12,0xe, 0xa3,0x12,0xf, 0x86,0x12, +0x17,0xb5,0x12,0xf, 0x95,0x2, 0xf, 0xb8,0xca,0x3b,0x7d,0x62,0x7d,0x73,0x9, 0x77, +0x0, 0x2c,0x7a,0x73,0xc, 0x44,0x9, 0xb7,0x0, 0x2b,0xf5,0x2c,0xe4,0x19,0xb7,0x0, +0x2c,0x19,0xb7,0x0, 0x2b,0x7d,0x36,0x2e,0x34,0x1, 0xf8,0x7a,0x37,0xc, 0x42,0x7a, +0x67,0xc, 0x40,0x75,0x29,0x1, 0x12,0x14,0x1e,0x60,0xfb,0x7d,0x37,0x7d,0x26,0x12, +0x11,0xa8,0x12,0xf, 0x86,0x6d,0x33,0x7a,0x35,0x2a,0x7e,0x25,0x2a,0x3e,0x24,0x7d, +0x32,0x2e,0x37,0xc, 0x42,0xb, 0x38,0x10,0xe, 0x14,0xe, 0x14,0x2e,0x27,0xc, 0x40, +0x12,0x10,0x3b,0x7e,0x35,0x2a,0xb, 0x34,0x7a,0x35,0x2a,0xbe,0x34,0x0, 0xfc,0x78, +0xd9,0x5, 0x29,0xe5,0x29,0xbe,0xb0,0x4, 0x28,0xbc,0x7e,0x73,0xc, 0x44,0x19,0x77, +0x0, 0x2c,0xe5,0x2c,0x19,0xb7,0x0, 0x2b,0xda,0x3b,0x22,0xb, 0x28,0x30,0x2d,0x31, +0x1b,0x28,0x30,0x22,0xca,0x3b,0x7e,0xb3,0xa, 0xd2,0xf5,0x27,0x7e,0xb3,0xa, 0xd3, +0xf5,0x28,0x74,0x1, 0x12,0x4f,0x5f,0x6c,0xee,0x6c,0xff,0xa, 0x3f,0x9, 0x73,0x3, +0xff,0xbc,0x7e,0x40,0x2, 0x7c,0xe7,0xb, 0xf0,0xbe,0xf0,0x15,0x78,0xed,0xbe,0xe0, +0x3f,0x50,0xc, 0xa, 0x2e,0x7e,0x34,0x0, 0x3f,0x9d,0x32,0x7c,0xe7,0x80,0x2, 0x6c, +0xee,0x7c,0xde,0x21,0x75,0x12,0x17,0xbc,0x12,0x19,0x8c,0x12,0x14,0x1e,0x60,0xfb, +0x12,0xf, 0x95,0x12,0x11,0xa8,0x6c,0xff,0x6c,0xcc,0x4c,0xff,0x78,0xa, 0x6d,0x33, +0x74,0x2, 0xac,0xbc,0x59,0x35,0xc, 0x40,0x7e,0x50,0x2, 0xac,0x5c,0x7e,0x70,0x18, +0xac,0x7f,0x2d,0x32,0x49,0x13,0x8, 0x82,0xe, 0x14,0xe, 0x14,0xe, 0x14,0xe, 0x14, +0xe, 0x14,0x2e,0x24,0xc, 0x40,0x12,0x10,0x3b,0xb, 0xc0,0xbe,0xc0,0xc, 0x78,0xca, +0xb, 0xf0,0xbe,0xf0,0x15,0x78,0xc1,0x6c,0xcc,0x6c,0xff,0x7e,0x4, 0x0, 0x15,0x74, +0x2, 0xac,0xbf,0x7d,0x35,0x2e,0x34,0xc, 0x40,0xb, 0x38,0x10,0x8d,0x10,0x1b,0x38, +0x10,0xb, 0x38,0x40,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x1b,0x38, +0x40,0x49,0x25,0xc, 0x40,0x7e,0x37,0x3, 0xc7,0x9e,0x37,0x4, 0x25,0xbd,0x23,0x50, +0x18,0x12,0x9, 0xd8,0xa, 0x3b,0x9, 0xb3,0x2, 0xd2,0xbc,0xbe,0x50,0x7, 0x2e,0x34, +0x2, 0xd2,0x4, 0x80,0x23,0xb, 0xc0,0x80,0x2a,0x7e,0x37,0x4, 0x25,0x2e,0x37,0x3, +0xc7,0xbd,0x23,0x28,0x1c,0x12,0x9, 0xd8,0xa, 0x3b,0x9, 0xb3,0x2, 0xd2,0xbe,0xb0, +0x0, 0x28,0xa, 0x2e,0x34,0x2, 0xd2,0x14,0x7a,0x39,0xb0,0x80,0x6, 0xb, 0xc0,0x80, +0x2, 0xb, 0xc0,0xb, 0xf0,0xbe,0xf0,0xc, 0x78,0x81,0x53,0xdb,0xf0,0x12,0x16,0xc5, +0xa9,0xc5,0xcb,0x7e,0xb3,0x4, 0x24,0x12,0x7, 0x7f,0x7e,0xf0,0x14,0x12,0xf, 0x86, +0xbe,0xc0,0xc, 0x68,0xa, 0x7c,0xad,0x1b,0xd0,0x4c,0xaa,0x68,0x2, 0x1, 0x85,0x6c, +0xff,0x12,0x9, 0xd8,0xa, 0x3b,0x9, 0x73,0x2, 0xd2,0xa, 0x2f,0x19,0x72,0x4, 0x14, +0xb, 0xf0,0xbe,0xf0,0xc, 0x40,0xea,0xe5,0x27,0x7a,0xb3,0xa, 0xd2,0xe5,0x28,0x7a, +0xb3,0xa, 0xd3,0x74,0x1, 0xda,0x3b,0x22,0xca,0xf8,0x7d,0x3, 0xc2,0x4, 0x6d,0x11, +0x9, 0x80,0x0, 0x1, 0x7e,0x9, 0x90,0x9, 0xa0,0x0, 0x2c,0xa9,0x33,0xdd,0x5, 0xa9, +0xc3,0xdd,0x80,0x3, 0xa9,0xd3,0xdd,0xe5,0x1c,0x19,0xb2,0x4, 0x1c,0xe5,0x1c,0x70, +0x17,0x75,0x1c,0x1, 0x74,0x20,0x12,0x4d,0x59,0xbe,0xb0,0xff,0x68,0x13,0xbe,0xb0, +0x1f,0x68,0xe, 0x75,0x1c,0xee,0x80,0x9, 0xe5,0x1c,0xb4,0xee,0x4, 0x74,0xee,0x41, +0xdb,0x9, 0xf0,0x0, 0x1a,0x9, 0xb0,0x0, 0x19,0xbc,0xbf,0x28,0xe, 0xd2,0x4, 0xa, +0x18,0x2d,0x10,0x9, 0x31,0x0, 0x18,0xa, 0x13,0x80,0x2, 0xa, 0x1b,0x75,0xc3,0x0, +0x9, 0xb0,0x0, 0x2f,0xc4,0x33,0x54,0xe0,0x4c,0xb8,0xf5,0xc3,0x7a,0x91,0xc4,0x3e, +0x14,0x2e,0x14,0x10,0x0, 0x9, 0xb0,0x0, 0x2b,0x70,0x64,0x49,0x32,0x4, 0x11,0xa, +0x6, 0x7c,0xb1,0xf5,0xba,0x7c,0xb7,0xf5,0xb9,0x7d,0x42,0x2e,0x44,0x1, 0xf8,0x7d, +0x34,0xa, 0x6, 0x7c,0xb1,0x12,0x12,0xe4,0x30,0x4, 0x3, 0x75,0xc2,0x10,0x43,0xc2, +0x5, 0x80,0x3, 0x43,0xc2,0x1, 0x0, 0x0, 0x0, 0x0, 0xe5,0xc2,0x30,0xe7,0xf4,0x75, +0xc2,0x0, 0xa, 0x2, 0x7a,0x11,0xba,0x7c,0xb3,0xf5,0xb9,0x7d,0x34,0xa, 0x48,0x7c, +0xb9,0xf5,0xbc,0x7c,0xb7,0xf5,0xbb,0x7a,0x11,0xc1,0x7c,0xb3,0xf5,0xbd,0x80,0x0, +0x43,0xc2,0x1, 0x0, 0x0, 0x0, 0x0, 0xe5,0xc2,0x30,0xe7,0xf4,0x75,0xc2,0x0, 0x4c, +0xaa,0x68,0x27,0x12,0x12,0xeb,0xa, 0x56,0xf5,0xbc,0x7c,0xb7,0xf5,0xbb,0x12,0x12, +0xde,0x30,0x4, 0x3, 0x75,0xc2,0x10,0x43,0xc2,0x3, 0x80,0x3, 0x43,0xc2,0x1, 0x0, +0x0, 0x0, 0x0, 0xe5,0xc2,0x30,0xe7,0xf4,0x80,0x1d,0x12,0x12,0xeb,0x12,0x12,0xde, +0x30,0x4, 0x3, 0x75,0xc2,0x10,0x43,0xc2,0x5, 0x80,0x3, 0x43,0xc2,0x1, 0x0, 0x0, +0x0, 0x0, 0xe5,0xc2,0x30,0xe7,0xf4,0x75,0xc2,0x0, 0xe4,0xda,0xf8,0x22,0x2e,0x34, +0x1, 0xf8,0xa, 0x56,0xf5,0xc1,0x7c,0xb7,0xf5,0xbd,0x22,0xa, 0x52,0xf5,0xba,0x7c, +0xb3,0xf5,0xb9,0x7d,0x32,0x22,0xca,0x3b,0x7c,0xcb,0x12,0x4f,0x45,0x12,0x0, 0x46, +0x12,0x14,0x1e,0x60,0xfb,0x12,0xf, 0x86,0x12,0x14,0x1e,0x60,0xfb,0x12,0xf, 0x95, +0x12,0x11,0xa8,0x12,0x14,0xe7,0x6d,0x33,0x7d,0x73,0x6c,0xdd,0x4d,0x77,0x78,0xa, +0x6d,0x11,0x12,0x14,0x17,0xa, 0x2b,0x1b,0x28,0x10,0xa, 0x2d,0x2e,0x24,0x3, 0xae, +0x12,0x16,0xbd,0x93,0xa, 0x2b,0xbd,0x27,0x40,0x25,0x7e,0x14,0x0, 0xc, 0xad,0x17, +0x3e,0x14,0x7e,0x50,0x2, 0xac,0x5d,0x2d,0x21,0x2e,0x27,0xc, 0x80,0xb, 0x28,0x10, +0x12,0x14,0x17,0xa, 0x2b,0xb, 0x28,0x0, 0xbd,0x10,0x28,0x3, 0x1b,0x28,0x10,0xb, +0xd0,0xbe,0xd0,0xc, 0x78,0xb6,0xb, 0x74,0xbe,0x74,0x0, 0x15,0x78,0xac,0x7d,0x73, +0x6c,0xdd,0xa, 0x3d,0x2e,0x34,0x3, 0xae,0x12,0x9, 0xde,0xa, 0x3b,0xbd,0x37,0x40, +0x31,0x7e,0xf4,0x0, 0xc, 0xad,0xf7,0x7d,0xef,0x3e,0xe4,0x74,0x2, 0xac,0xbd,0x2d, +0xe5,0x2e,0xe7,0xc, 0x80,0xb, 0xe8,0x20,0x12,0x14,0x17,0xa, 0x3b,0xb, 0x38,0x30, +0x9d,0x32,0x7d,0x23,0x5e,0x24,0xff,0xf8,0xa, 0x1d,0x2d,0x1f,0x3e,0x14,0x59,0x21, +0x4, 0x2a,0xb, 0xd0,0xbe,0xd0,0xc, 0x78,0xb9,0xb, 0x74,0xbe,0x74,0x0, 0x15,0x78, +0xaf,0x7e,0x34,0x3, 0xb9,0x7a,0x35,0x21,0x75,0x23,0x0, 0x6d,0x77,0x7e,0x35,0x21, +0x7e,0x39,0x70,0x7c,0xb7,0x62,0x23,0xa, 0x3c,0x2d,0x37,0x7e,0x25,0x21,0x7d,0x12, +0xb, 0x14,0x7a,0x15,0x21,0x7e,0x29,0xb0,0x12,0x14,0x10,0xb, 0x74,0xbe,0x74,0x2, +0x69,0x40,0xda,0x7e,0x34,0x3, 0xf0,0xe5,0x23,0x12,0x14,0x10,0x7e,0x34,0x3, 0xf1, +0x74,0xff,0x9e,0xb1,0x23,0x12,0x14,0x10,0x12,0xf, 0x86,0x74,0x1, 0xda,0x3b,0x22, +0x2e,0x34,0x7c,0x0, 0x2, 0x8, 0x71,0x7c,0xbd,0x3e,0xb0,0x24,0x24,0x22,0x30,0x3, +0x5, 0xc2,0x3, 0x74,0x1, 0x22,0xe4,0x22,0xca,0xf8,0x12,0x14,0xe7,0x12,0x4f,0x35, +0x53,0xdb,0xf0,0x12,0x38,0x42,0x12,0x38,0x5e,0x12,0x17,0x16,0x12,0x14,0xf3,0x12, +0xe, 0xa9,0x12,0x1b,0x29,0x53,0xdb,0x7f,0x12,0xf, 0x86,0x74,0xc, 0x7a,0xb3,0xc, +0xa0,0x74,0x15,0x7a,0xb3,0xc, 0x9f,0x12,0x4f,0xa, 0x12,0x38,0x56,0x7a,0xb3,0xa, +0xd3,0x12,0x17,0xbc,0x7e,0xb3,0xc, 0x9c,0x70,0x24,0x12,0x19,0x8c,0x74,0x1, 0x7a, +0xb3,0xc, 0x9c,0x7e,0x34,0x7c,0x0, 0x12,0x1f,0xfb,0x74,0x4, 0x12,0x12,0xf6,0x6d, +0x33,0xe4,0x12,0x14,0x10,0x12,0x47,0x14,0x74,0xff,0x7a,0xb3,0xc, 0x9c,0x7e,0xf3, +0xc, 0x9d,0xbe,0xf0,0x3, 0x78,0x46,0x7e,0xb3,0xb, 0xe7,0x30,0xe7,0xc3,0x12,0x17, +0x16,0x80,0x3, 0x43,0x87,0x1, 0x12,0x14,0x1e,0x60,0xf8,0x53,0xdb,0xf0,0x12,0x14, +0xf3,0x12,0xe, 0xa9,0x12,0x1b,0x29,0x7e,0xb3,0xc, 0xa5,0x70,0x3, 0xe4,0x80,0x2, +0x74,0x1, 0x12,0x4f,0x5f,0x12,0xf, 0x95,0x12,0x11,0xa8,0x12,0xf, 0x86,0x12,0x14, +0xe7,0x7e,0xb3,0xb, 0xe7,0x54,0x7f,0x7a,0xb3,0xb, 0xe7,0x80,0x84,0x7a,0xf3,0xb, +0x33,0x12,0x4e,0xb6,0xda,0xf8,0x22,0x7e,0x34,0x8, 0x82,0x7a,0x37,0xc, 0x80,0x22, +0x12,0x17,0x16,0xca,0xd8,0xca,0x79,0x7e,0x34,0x2, 0xd2,0x12,0x4f,0x9f,0x7e,0x34, +0x2, 0xc6,0x12,0x4f,0x9f,0x6c,0x77,0x80,0x22,0xa, 0x27,0x9, 0x62,0x3, 0xf3,0x12, +0x16,0xb9,0x93,0xa, 0x2b,0x19,0x62,0x2, 0xc6,0xa, 0x27,0x9, 0x62,0x4, 0x14,0x12, +0x16,0xb9,0x93,0xa, 0x2b,0x19,0x62,0x2, 0xd2,0xb, 0x70,0x7e,0x63,0x3, 0xba,0xbc, +0x67,0x38,0xd6,0x7e,0x73,0x3, 0xbb,0x7a,0x73,0x2, 0xde,0x7e,0x73,0x3, 0xde,0x7a, +0x73,0x2, 0xdf,0x7e,0x73,0x3, 0xff,0x7a,0x73,0x2, 0xe0,0x74,0xa, 0x7a,0xb3,0x2, +0xe1,0x7e,0x73,0x3, 0xbd,0x7a,0x73,0x2, 0xe2,0x74,0x10,0x7a,0xb3,0x2, 0xe4,0xe4, +0x7a,0xb3,0x2, 0xe6,0x6d,0x77,0x6c,0x77,0x80,0x15,0xa, 0x27,0x12,0x16,0xb9,0x93, +0x7e,0x24,0x0, 0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x4d,0x72,0xb, 0x70,0x7e, +0x63,0x3, 0xba,0xbc,0x67,0x38,0xe3,0x7d,0x37,0x5e,0x34,0x0, 0x1, 0x78,0xe, 0x74, +0xf, 0x7a,0xb3,0x2, 0xe7,0x74,0xff,0x7a,0xb3,0x2, 0xe8,0x80,0xc, 0xa, 0x3e,0x7a, +0x73,0x2, 0xe7,0x7c,0x7f,0x7a,0x73,0x2, 0xe8,0x74,0xa, 0x7a,0xb3,0x2, 0xe3,0x7e, +0x73,0x4, 0x28,0x7a,0x73,0x2, 0xe5,0x74,0x1, 0x7a,0xb3,0x2, 0xe9,0x74,0xf8,0x7a, +0xb3,0x2, 0xea,0x74,0x81,0x7a,0xb3,0x2, 0xeb,0x74,0xff,0x7a,0xb3,0x2, 0xec,0x74, +0x14,0x7a,0xb3,0x2, 0xed,0x74,0xeb,0x7a,0xb3,0x2, 0xee,0x12,0x16,0xc5,0x7c,0xdb, +0x74,0x12,0x12,0x4e,0x99,0x7c,0x7b,0x5e,0x70,0xfc,0xb, 0x71,0x74,0x12,0x12,0x16, +0x4, 0xa9,0xc5,0xcb,0x7c,0xbd,0xda,0x79,0xda,0xd8,0x22,0x53,0xdb,0xf0,0x74,0xe, +0x7e,0x73,0x4, 0x28,0x12,0x4e,0x70,0x44,0x40,0xf5,0xd6,0xe5,0xdb,0x30,0xe3,0xfb, +0x53,0xdb,0xf3,0x7a,0x71,0xd6,0xe5,0xdb,0x30,0xe3,0xfb,0x53,0xdb,0xf3,0x43,0xd7, +0x4, 0x22,0xca,0x79,0x7d,0x73,0x74,0x6, 0x9, 0x77,0x0, 0x19,0x12,0x16,0x4, 0x74, +0xa, 0x9, 0x77,0x0, 0x1a,0x12,0x16,0x4, 0x74,0x8, 0x9, 0x77,0x0, 0x20,0x12,0x16, +0x4, 0x74,0x2a,0x9, 0x77,0x0, 0x1b,0x12,0x16,0x4, 0x74,0xc, 0x9, 0x77,0x0, 0x1c, +0x12,0x16,0x4, 0x74,0x2a,0x9, 0x77,0x0, 0x1d,0x12,0x16,0x4, 0x74,0x2e,0x9, 0x77, +0x0, 0x1e,0x12,0x16,0x4, 0x74,0x2, 0x9, 0x77,0x0, 0x21,0x12,0x16,0x4, 0x74,0x4, +0x9, 0x77,0x0, 0x22,0x12,0x16,0x4, 0x74,0x24,0x9, 0x77,0x0, 0x23,0x12,0x16,0x4, +0x74,0x1e,0x9, 0x77,0x0, 0x24,0x12,0x16,0x4, 0x74,0x18,0x9, 0x77,0x0, 0x25,0x12, +0x16,0x4, 0x74,0x20,0x9, 0x77,0x0, 0x26,0x12,0x16,0x4, 0x74,0x22,0x9, 0x77,0x0, +0x27,0x12,0x16,0x4, 0x74,0xe, 0x9, 0x77,0x0, 0x1f,0x12,0x16,0x4, 0x74,0x1c,0x9, +0x77,0x0, 0x28,0x12,0x16,0x4, 0xda,0x79,0x22,0x2e,0x24,0x2, 0x83,0x7a,0x51,0x82, +0x7a,0x41,0x83,0xe4,0x22,0xa9,0xd5,0xcb,0x7e,0x34,0x2, 0xc6,0xca,0x79,0x7d,0x73, +0xe4,0x12,0x4d,0x99,0x9, 0xb7,0x0, 0x18,0x12,0x4e,0xf3,0x74,0x1, 0x12,0x4d,0x81, +0x12,0x4e,0xd8,0x70,0x3, 0xe4,0x80,0x2b,0x74,0x14,0x7e,0x70,0x7f,0x12,0x17,0xcb, +0x70,0x3, 0xe4,0x80,0x1e,0x7d,0x37,0x7d,0x27,0x2e,0x24,0x0, 0xc, 0x12,0x4d,0xca, +0x7d,0x37,0x12,0x16,0x22,0xe4,0x12,0x4d,0x81,0x12,0x4e,0xe6,0x60,0x4, 0x74,0x1, +0x80,0x1, 0xe4,0xda,0x79,0x22,0x12,0x4e,0xff,0x7e,0x73,0x3, 0xb9,0x7a,0x73,0xa, +0xa7,0x7e,0x73,0x3, 0xba,0x7a,0x73,0xa, 0xa8,0x7e,0x24,0x3, 0xc9,0x7e,0x34,0xa, +0xab,0x12,0x44,0xd3,0x6c,0xaa,0x80,0x11,0xa, 0x3a,0x2e,0x34,0x2, 0x83,0x12,0x9, +0xde,0xa, 0x4a,0x19,0xb4,0xa, 0xc0,0xb, 0xa0,0x7e,0xb3,0x3, 0xba,0xbc,0xba,0x38, +0xe7,0x7e,0x73,0x3, 0xbc,0x7a,0x73,0xa, 0xcc,0x7e,0x73,0x3, 0xff,0x7a,0x73,0xa, +0xcd,0x7e,0x73,0x3, 0xbd,0x7a,0x73,0xa, 0xce,0x7e,0x73,0x3, 0xbd,0x7a,0x73,0xa, +0xcf,0x7e,0x73,0x3, 0xbd,0x7a,0x73,0xa, 0xd0,0xe4,0x7a,0xb3,0xa, 0xd6,0x7a,0xb3, +0xa, 0xd7,0x22,0x12,0x17,0xbc,0x12,0x4f,0x35,0x53,0xdb,0xf0,0x12,0x14,0xf0,0x7e, +0xb3,0x4, 0x24,0x12,0x7, 0x7f,0x12,0xf, 0x86,0x7e,0x34,0x0, 0xc8,0x7a,0x37,0x4, +0x25,0x12,0x10,0x44,0x12,0x4e,0xb6,0x12,0x1f,0xa6,0x7e,0xb3,0xb, 0xe7,0x54,0x8f, +0x7a,0xb3,0xb, 0xe7,0x22,0x7e,0x34,0x6, 0x8a,0x12,0x45,0xc, 0x6d,0x33,0x7a,0x37, +0x3, 0xb4,0x7e,0x34,0xd, 0xac,0x7a,0x37,0x0, 0x3c,0x22,0x7c,0x67,0x7c,0xab,0x12, +0x16,0x4, 0x7c,0xba,0x12,0x4e,0x99,0x7c,0x7b,0xbc,0x67,0x78,0x3, 0x74,0x1, 0x22, +0xe4,0x22,0x53,0xdc,0xe0,0x43,0xdc,0x6, 0x7e,0xa0,0x12,0x0, 0x1b,0xa0,0x78,0xfb, +0x53,0xc9,0xfe,0xbe,0xb0,0xf, 0x40,0x13,0xbe,0xb0,0x2e,0x38,0xe, 0x53,0xc9,0xfe, +0x53,0xdc,0xe0,0xa, 0x3b,0x9e,0x34,0x0, 0xf, 0x80,0x13,0x43,0xc9,0x1, 0x53,0xdc, +0xe0,0xbe,0xb0,0xe, 0x38,0xd, 0xa, 0x2b,0x7e,0x34,0x0, 0x1f,0x9d,0x32,0x7c,0xb7, +0x42,0xdc,0x22,0xb4,0x2f,0x4, 0x43,0xdc,0x3, 0x22,0xb4,0x30,0x4, 0x43,0xdc,0x2, +0x22,0x43,0xdc,0xa, 0x22,0x2, 0x18,0x38,0xc2,0x8e,0x2, 0x18,0x3d,0xe5,0x9b,0xa, +0x3b,0x6d,0x22,0xb, 0x1c,0x7e,0x14,0x0, 0xc, 0x12,0x0, 0xa9,0x7e,0xb4,0x3, 0xe8, +0x7d,0x1b,0x12,0x0, 0xa9,0x7f,0x1, 0x7e,0xd4,0x36,0x0, 0x7e,0xc4,0x1, 0x6e,0x7f, +0x16,0x12,0x1, 0x5, 0x7f,0x1, 0x7e,0x78,0xff,0xff,0x7f,0x17,0x9f,0x10,0x7c,0xb6, +0xf5,0x8d,0xe5,0x9b,0xa, 0xb, 0xb, 0x4, 0x7e,0x14,0x0, 0xc, 0xad,0x10,0xad,0x1b, +0x7f,0x16,0x12,0x1, 0x5, 0x7f,0x27,0x9f,0x21,0xf5,0x8b,0xd2,0x8e,0x22,0xca,0x7b, +0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83, +0xc0,0x82,0x12,0x18,0x35,0x12,0x19,0x83,0x20,0x93,0x8, 0x6d,0x33,0x7a,0x37,0xc, +0xae,0x80,0x13,0x7e,0x37,0xc, 0xae,0xb, 0x34,0x7a,0x37,0xc, 0xae,0xbe,0x34,0x3, +0xe8,0x28,0x3, 0x75,0xe9,0xff,0xe5,0xcc,0xb4,0x2, 0x3, 0x12,0x19,0x83,0x12,0x1b, +0x30,0x68,0x6, 0x1b,0x34,0x7a,0x37,0xa, 0xd8,0x7e,0x35,0x17,0xbe,0x34,0x3, 0xe8, +0x40,0xe, 0x6d,0x33,0x7a,0x35,0x17,0xe5,0xb, 0xbe,0xb0,0x64,0x50,0x2, 0x5, 0xb, +0x7e,0x37,0x3, 0xb4,0xb, 0x34,0x7a,0x37,0x3, 0xb4,0x7e,0x37,0x0, 0x3c,0xbe,0x37, +0x3, 0xb4,0x28,0x3, 0x12,0x19,0x8c,0x7e,0x37,0x3, 0xb7,0x4d,0x33,0x68,0xe, 0xbe, +0x34,0x0, 0x1, 0x78,0x2, 0xd2,0x1, 0x1b,0x34,0x7a,0x37,0x3, 0xb7,0x12,0x1f,0xe0, +0x50,0x5, 0xb, 0x34,0x7a,0x35,0x8, 0x7e,0xb3,0xb, 0x33,0xb4,0xaa,0x13,0x7e,0xa3, +0x2, 0xc5,0x7c,0xba,0x4, 0x7a,0xb3,0x2, 0xc5,0xbe,0xa0,0x64,0x28,0x3, 0x12,0x1f, +0xa6,0xe5,0x13,0xbe,0xb1,0x12,0x28,0xb, 0x5, 0x12,0xe5,0xcc,0xb4,0x2, 0x7, 0x5, +0x12,0x80,0x3, 0x75,0x11,0x1, 0x7e,0xb3,0xb, 0xe0,0x60,0x12,0xbe,0xb0,0x28,0x50, +0x7, 0x4, 0x7a,0xb3,0xb, 0xe0,0x80,0x6, 0x12,0x4, 0xe1,0x12,0x38,0x5e,0xd0,0x82, +0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b, +0xda,0x7b,0x32,0x7e,0x35,0x17,0xb, 0x34,0x7a,0x35,0x17,0x22,0x2, 0x19,0x8f,0xe5, +0x9a,0x60,0x5, 0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0xca,0x79,0x7e,0xf1,0xcc,0x7e,0x37, +0x2, 0xba,0x4d,0x33,0x78,0x35,0x7e,0x53,0x3, 0xa4,0xbe,0x50,0x0, 0x28,0x5, 0x75, +0xb, 0x0, 0x41,0x69,0x7e,0xb3,0x2, 0xbc,0x20,0xe0,0x2, 0x41,0x69,0x7e,0x53,0x2, +0xc2,0xbe,0x51,0xb, 0x28,0x2, 0x41,0x69,0x75,0xb, 0x0, 0x7e,0x24,0x0, 0x1, 0x7a, +0x27,0x2, 0xba,0x74,0x1, 0x7a,0xb3,0xb, 0x31,0x41,0x69,0xbe,0x34,0x0, 0x1, 0x78, +0x1b,0x7e,0xb3,0x3, 0xa4,0x70,0x2, 0x41,0x69,0x6d,0x22,0x7a,0x27,0x2, 0xba,0xe4, +0x7a,0xb3,0xb, 0x31,0x75,0x12,0x22,0x75,0x11,0x1, 0x80,0x6d,0xbe,0x34,0x0, 0x3, +0x78,0x67,0x12,0x17,0xbc,0x12,0x19,0x8c,0xa9,0xd6,0xeb,0xa9,0xc6,0xac,0xa9,0xc6, +0xec,0xc2,0x96,0xc2,0x89,0xd2,0xb8,0xa9,0xd0,0xb7,0xd2,0xa8,0x12,0x14,0x1e,0x60, +0xfb,0x20,0x93,0xfd,0x53,0xca,0xfe,0x53,0xc9,0xfd,0x75,0x87,0x2, 0x0, 0x0, 0x0, +0x0, 0xc2,0xa8,0xc2,0x95,0x43,0xca,0x1, 0x12,0x4a,0x57,0x12,0x17,0xbc,0x12,0x19, +0x8c,0x12,0x1a,0xb8,0x53,0xdb,0xf0,0x43,0xc9,0x2, 0x12,0xf, 0x86,0x12,0x1a,0xc0, +0x6d,0x33,0x7a,0x37,0x2, 0xba,0xe4,0x7a,0xb3,0xb, 0x31,0x12,0x1b,0x37,0x12,0x1f, +0xe8,0x12,0x1b,0x30,0x78,0xfb,0x12,0xf, 0x6f,0x6c,0xee,0xa9,0xc6,0xcb,0x80,0x1d, +0xe4,0x12,0x49,0xe8,0xa9,0x25,0xdd,0x15,0xa9,0x21,0xdb,0x11,0xc2,0xcd,0xa9,0xc7, +0xcb,0xc2,0xcc,0x4c,0xee,0x78,0x6, 0x7e,0xe0,0x1, 0x75,0xcc,0x2, 0xe5,0x11,0x60, +0xdf,0x12,0x1a,0xb8,0xa9,0xd6,0xcb,0x75,0x12,0x0, 0x75,0x11,0x0, 0x7a,0xf1,0xcc, +0x7e,0xb3,0x3, 0xa8,0x54,0xef,0x7a,0xb3,0x3, 0xa8,0x7e,0x73,0x3, 0xa4,0x7a,0x73, +0x3, 0xa5,0x12,0x1b,0x29,0xda,0x79,0x22,0xd2,0xcd,0xa9,0xd7,0xcb,0xd2,0xcc,0x22, +0x7e,0x34,0x0, 0x3e,0x7e,0x24,0x1, 0x6b,0xe4,0x12,0x0, 0x46,0x7e,0x34,0x3, 0x58, +0x7e,0x24,0x0, 0x5c,0xe4,0x12,0x0, 0x46,0x7e,0x34,0x0, 0x5c,0x12,0x1b,0x20,0x7e, +0x34,0x3, 0x5c,0x12,0x1b,0x20,0x7e,0x34,0x3, 0x7f,0x12,0x1b,0x20,0x74,0x1, 0x7a, +0xb3,0x3, 0xaa,0x75,0x12,0x0, 0x75,0x13,0x0, 0x75,0x11,0x0, 0x75,0xb, 0x0, 0x6d, +0x33,0x7a,0x37,0x3, 0xb4,0x7e,0x24,0xd, 0xac,0x7a,0x27,0x0, 0x3c,0xe4,0x7a,0xb3, +0x2, 0xc5,0x7a,0xb3,0x3, 0xb6,0x7a,0x37,0x3, 0xb7,0xc2,0x1, 0x7a,0x35,0x8, 0x22, +0x7e,0x24,0x0, 0x23,0x74,0xff,0x2, 0x0, 0x46,0x74,0x23,0x7a,0xb3,0xa, 0xd5,0x22, +0x7e,0x37,0xa, 0xd8,0x4d,0x33,0x22,0x12,0x1f,0xf1,0x74,0x6, 0x7a,0xb3,0xa, 0x9d, +0x6d,0x33,0x7a,0x37,0xa, 0xa4,0x75,0x15,0x2, 0x22,0xca,0x3b,0x7e,0xb3,0x3, 0xa4, +0xf5,0x2d,0x7e,0xd3,0x3, 0xa5,0x7e,0x34,0xc, 0x40,0x12,0x1b,0x20,0x7e,0x34,0x0, +0x2f,0x7e,0x24,0x0, 0x5, 0xe4,0x12,0x0, 0x46,0xe5,0x2d,0x70,0x45,0x6c,0xee,0x12, +0x1e,0x65,0xac,0xbe,0x12,0x1e,0x61,0xac,0xbe,0x12,0x1e,0xe7,0xac,0xbe,0x12,0x1e, +0xde,0x59,0x35,0xc, 0x9, 0xb, 0xe0,0xbe,0xe0,0x5, 0x78,0xe3,0xbe,0xd0,0x0, 0x38, +0x2, 0xc1,0x4e,0x7e,0x34,0x3, 0x7f,0x12,0x1b,0x20,0x7e,0xb3,0x3, 0xa8,0x44,0x4, +0x7a,0xb3,0x3, 0xa8,0x54,0xf7,0x7a,0xb3,0x3, 0xa8,0x54,0xdf,0x7a,0xb3,0x3, 0xa8, +0xc1,0x4e,0x6c,0xee,0x80,0x26,0x7e,0x50,0x7, 0xac,0x5e,0x2e,0x24,0x0, 0x5c,0xb, +0x28,0x30,0x12,0x1f,0xa, 0x1b,0x28,0x30,0x7e,0x50,0x7, 0xac,0x5e,0x2e,0x24,0x0, +0x5e,0xb, 0x28,0x30,0x12,0x1f,0xa, 0x1b,0x28,0x30,0xb, 0xe0,0xe5,0x2d,0xbc,0xbe, +0x38,0xd4,0x4c,0xdd,0x78,0xa, 0x7e,0xb3,0x3, 0xa8,0x44,0x10,0x7a,0xb3,0x3, 0xa8, +0x6c,0x11,0x6c,0xee,0x6c,0xff,0x80,0x11,0x12,0x1f,0x13,0x78,0xa, 0xbe,0x0, 0xff, +0x68,0x5, 0x12,0x1f,0x5b,0x80,0x8, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xe9,0xb, +0xe0,0xbe,0xe0,0x5, 0x78,0xde,0x6c,0xee,0x7e,0xf1,0x2d,0x80,0x11,0x12,0x1f,0x13, +0x78,0xa, 0xbe,0x0, 0xff,0x68,0x5, 0x12,0x1f,0x5b,0x80,0x7, 0xb, 0xf0,0xbe,0xf0, +0x5, 0x40,0xea,0xb, 0xe0,0xbe,0xe0,0x5, 0x78,0xde,0x6c,0xff,0x6c,0xee,0x80,0x17, +0x74,0x7, 0xac,0xbe,0x9, 0xa5,0xc, 0x44,0x7e,0x70,0x7, 0xac,0x7f,0x9, 0x3, 0x0, +0x60,0xbc,0xa, 0x68,0x6, 0xb, 0xe0,0xbc,0x1e,0x38,0xe5,0xbc,0x1e,0x78,0x19,0x7e, +0x70,0x7, 0xac,0x7f,0x2e,0x34,0x0, 0x5c,0x7e,0x30,0x7, 0xac,0x31,0x2e,0x14,0xc, +0x40,0x74,0x7, 0x12,0x1, 0x39,0xb, 0x10,0xb, 0xf0,0xbe,0xf0,0x5, 0x78,0xbd,0x7e, +0x24,0xc, 0x40,0x7e,0x34,0x3, 0x7f,0x12,0x1e,0x51,0x4c,0xdd,0x78,0xd, 0x7e,0x24, +0x0, 0x5c,0x7e,0x34,0x3, 0x7f,0x12,0x1e,0x51,0xa1,0xc2,0x7e,0xb3,0x3, 0xa8,0x30, +0xe3,0x2, 0xa1,0xc2,0x6c,0xff,0xa1,0xba,0x6c,0xee,0x7e,0x70,0x7, 0xac,0x7f,0x9, +0x43,0x0, 0x60,0x74,0x7, 0xac,0xbe,0x9, 0x55,0x3, 0x83,0xbc,0x54,0x68,0x7, 0xb, +0xe0,0xbe,0xe0,0x5, 0x40,0xe4,0x7e,0x50,0x7, 0xac,0x5e,0x9, 0x12,0x3, 0x83,0x7a, +0x11,0x2e,0x2e,0x10,0x2f,0x74,0x1, 0xa5,0xf7,0x49,0x33,0x0, 0x5e,0x49,0x22,0x3, +0x81,0x12,0x1e,0x6c,0x7d,0x63,0x12,0x1e,0x58,0x74,0x7, 0xac,0xbe,0x49,0x25,0x3, +0x7f,0x12,0x1e,0xa4,0x7a,0x35,0x29,0x12,0x1e,0x9b,0x7e,0xa1,0x2e,0x74,0x7, 0xa4, +0x49,0x25,0xc, 0x15,0x12,0x1e,0x6c,0x7d,0x63,0x12,0x1e,0x58,0x7e,0xa1,0x2e,0x74, +0x7, 0xa4,0x49,0x25,0xc, 0x13,0x12,0x1e,0xa4,0x7e,0x17,0x2, 0xf0,0xbe,0x15,0x27, +0x38,0x9, 0x7e,0x4, 0x1, 0x0, 0x7a,0x5, 0x2b,0x80,0x1e,0x7e,0x35,0x29,0x6d,0x22, +0x7c,0x56,0x7c,0x67,0x6c,0x77,0x12,0x0, 0xb2,0x7a,0x35,0x2b,0xbe,0x34,0x0, 0x10, +0x50,0x7, 0x7e,0x34,0x0, 0x10,0x7a,0x35,0x2b,0x7e,0x35,0x2b,0xbe,0x34,0x1, 0x0, +0x28,0x7, 0x7e,0x34,0x1, 0x0, 0x7a,0x35,0x2b,0x7e,0xa1,0x2e,0x74,0x2, 0xa4,0x49, +0x45,0xc, 0x36,0xbe,0x45,0x27,0x28,0x9, 0x49,0x45,0xc, 0x9, 0x7a,0x45,0x2b,0x80, +0x7, 0x7e,0x45,0x2b,0x59,0x45,0xc, 0x9, 0x7e,0x35,0x27,0x59,0x35,0xc, 0x36,0x12, +0x1e,0x58,0x7e,0x50,0x7, 0xac,0x5e,0x2e,0x24,0x3, 0x7f,0x7e,0x15,0x2b,0x12,0x1e, +0xad,0x12,0x1e,0x9b,0x7e,0x50,0x7, 0xac,0x5e,0x2e,0x24,0x3, 0x81,0x7e,0x15,0x2b, +0x12,0x1e,0xad,0x12,0x1e,0xf0,0x7e,0x71,0x2e,0x74,0x7, 0xac,0x7b,0x2e,0x34,0xc, +0x13,0x7e,0x14,0x0, 0x7, 0x12,0x3, 0x6e,0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x28,0x2, +0x81,0xa8,0x7e,0x24,0x3, 0x7f,0x7e,0x34,0x0, 0x5c,0x12,0x1e,0x51,0x6c,0xff,0x12, +0x1e,0xf0,0x12,0x1e,0xfa,0x1b,0x28,0x30,0x7e,0x50,0x7, 0xac,0x5f,0x2e,0x24,0x0, +0x5e,0x12,0x1e,0xfa,0x1b,0x28,0x30,0x7c,0x1f,0x2e,0x10,0x2f,0xa5,0xe7,0x70,0x16, +0x12,0x1e,0x65,0xac,0xbf,0x12,0x1e,0x61,0xac,0xbf,0x12,0x1e,0xe7,0xac,0xbf,0x12, +0x1e,0xde,0x59,0x35,0xc, 0x9, 0xb, 0xf0,0xbe,0xf0,0x5, 0x78,0xc2,0x7e,0xb3,0x3, +0xa8,0x44,0x1, 0x7a,0xb3,0x3, 0xa8,0xe5,0x2d,0xbe,0xb0,0x0, 0x28,0x30,0x7e,0x24, +0x0, 0x5c,0x7e,0x34,0x3, 0x5c,0x12,0x1e,0x51,0x6c,0xff,0x12,0x1e,0x58,0x12,0x1f, +0xb4,0x74,0x7, 0xac,0xbf,0x59,0x35,0x3, 0x5c,0x12,0x1e,0x9b,0x12,0x27,0x2d,0x74, +0x7, 0xac,0xbf,0x59,0x35,0x3, 0x5e,0xb, 0xf0,0xbe,0xf0,0x5, 0x78,0xdd,0xda,0x3b, +0x22,0x7e,0x14,0x0, 0x23,0x2, 0x3, 0x6e,0x74,0x7, 0xac,0xbf,0x49,0x35,0x0, 0x5c, +0x22,0x59,0x35,0xc, 0x13,0x7e,0x34,0xff,0xff,0x74,0x7, 0x22,0x7d,0x13,0xbd,0x21, +0x50,0x5, 0x7d,0x31,0x9d,0x32,0x22,0x7d,0x32,0x9d,0x31,0x22,0x3e,0x34,0x9, 0x73, +0xc, 0x41,0x7e,0x60,0x2, 0x7c,0xa6,0x7c,0x57,0xa, 0x3b,0xa, 0x25,0x12,0x1e,0x6c, +0xa, 0x2a,0xbd,0x32,0x38,0x3, 0x74,0x1, 0x22,0xe4,0x22,0x74,0x7, 0xac,0xbf,0x49, +0x35,0x0, 0x5e,0x22,0x12,0x1e,0x6c,0x2d,0x36,0x7a,0x35,0x27,0x22,0xca,0x3b,0x7a, +0x15,0x34,0x7d,0x72,0x7d,0x63,0xb, 0x78,0x20,0x12,0x1e,0x6c,0x7d,0x23,0x7e,0x35, +0x34,0xad,0x23,0x12,0x1f,0xad,0x7d,0x23,0xb, 0x78,0x30,0xbd,0x36,0x50,0x7, 0x2d, +0x23,0x1b,0x78,0x20,0x80,0x5, 0x9d,0x32,0x1b,0x78,0x30,0xda,0x3b,0x22,0x59,0x45, +0xc, 0x36,0x7e,0x34,0x1, 0x0, 0x22,0x59,0x35,0xc, 0x15,0x6d,0x44,0x74,0x2, 0x22, +0x7e,0x50,0x7, 0xac,0x5f,0x2e,0x24,0x0, 0x5c,0x22,0xb, 0x28,0x30,0x1e,0x34,0x1e, +0x34,0x1e,0x34,0x1e,0x34,0x22,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x22,0x74,0x7, 0xac,0xbf,0x9, 0x75,0x0, 0x60,0x74,0x7, 0xac,0xbe,0x9, +0x5, 0x3, 0x83,0xbc,0x7, 0x22,0x7e,0x73,0x0, 0x7f,0x7a,0x73,0x6, 0x63,0x7e,0x24, +0x0, 0x5c,0x7e,0x34,0x6, 0x22,0x12,0x1e,0x51,0x12,0x24,0xe8,0x12,0x3e,0x92,0x7e, +0x24,0x6, 0x22,0x7e,0x34,0x0, 0x5c,0x12,0x1e,0x51,0x7e,0x73,0x6, 0x63,0x7a,0x73, +0x6, 0x64,0x7e,0x73,0x6, 0x63,0x7a,0x73,0x0, 0x7f,0x22,0x74,0x7, 0xac,0xb1,0x19, +0x5, 0xc, 0x44,0x74,0x7, 0xac,0xbe,0x49,0x35,0x3, 0x7f,0x74,0x7, 0xac,0xb1,0x59, +0x35,0xc, 0x40,0x74,0x7, 0xac,0xbe,0x49,0x35,0x3, 0x81,0x74,0x7, 0xac,0xb1,0x59, +0x35,0xc, 0x42,0x74,0x7, 0xac,0xbf,0x9, 0x5, 0x0, 0x61,0x74,0x7, 0xac,0xb1,0x19, +0x5, 0xc, 0x45,0x74,0x7, 0xac,0xbf,0x9, 0x5, 0x0, 0x62,0x74,0x7, 0xac,0xb1,0x19, +0x5, 0xc, 0x46,0xb, 0x10,0x22,0x74,0x1, 0x7a,0xb3,0xb, 0x33,0x22,0x7c,0x76,0x7c, +0x65,0xa, 0x24,0x22,0xbe,0x34,0x0, 0x0, 0x40,0x2, 0x80,0x2, 0x6d,0x33,0x6d,0x22, +0x7e,0x14,0xcf,0x0, 0x7e,0x4, 0x0, 0x2, 0x12,0x0, 0x98,0x7e,0x14,0x2, 0xff,0x12, +0x0, 0xb2,0x12,0x1f,0xad,0xbe,0x18,0x2, 0xd0,0x40,0x4, 0x7e,0x18,0x2, 0xcf,0x22, +0x7e,0x35,0x8, 0xbe,0x34,0x9c,0x40,0x22,0x7e,0x34,0x0, 0xa, 0x7a,0x37,0xa, 0xd8, +0x22,0xe4,0x7a,0xb3,0xa, 0x9f,0x7a,0xb3,0xa, 0x9e,0x22,0x2, 0x1f,0xfe,0x12,0x4f, +0x27,0x75,0xf3,0x0, 0xa, 0x56,0x1e,0x54,0x1e,0x54,0x3e,0x54,0x3e,0x54,0xf5,0xf1, +0x75,0xf2,0x0, 0x75,0xf9,0x0, 0x75,0xf9,0x10,0x75,0xf9,0x50,0x74,0xa, 0x12,0x20, +0x46,0x75,0xf9,0x51,0x74,0x2d,0x12,0x20,0x5b,0x75,0xf9,0x11,0x74,0xa, 0x12,0x20, +0x46,0x75,0xf9,0x10,0x75,0xf9,0x0, 0x74,0x1, 0x12,0x20,0x46,0x2, 0x8, 0xb3,0x74, +0xfa,0x12,0x20,0x46,0x74,0xfa,0x7c,0xab,0x80,0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x7c,0x7a,0x1b,0xa0,0xa5,0xbf,0x0, 0xf0,0x22,0x7c,0x6b,0x80,0x6, 0x12, +0x20,0x3f,0x12,0x20,0x3f,0x7c,0x76,0x1b,0x60,0xa5,0xbf,0x0, 0xf2,0x22,0xca,0x3b, +0x7c,0xfb,0x7e,0xb3,0x0, 0x7f,0xbe,0xb0,0x2, 0x50,0x2, 0x41,0xca,0xf5,0x32,0x7e, +0x64,0x8, 0x82,0x7e,0x73,0x0, 0x3e,0x7a,0x73,0xc, 0x40,0x7e,0x73,0x0, 0x3f,0x7a, +0x73,0xc, 0x41,0x75,0x2f,0x1, 0x7e,0xf0,0x1, 0x41,0x91,0x74,0x2, 0xac,0xbf,0x9, +0x65,0x0, 0x3e,0x7a,0x61,0x35,0x9, 0x55,0x0, 0x3f,0x7a,0x51,0x36,0x1e,0x60,0x7e, +0x70,0xc, 0xac,0x67,0x1e,0x50,0xa, 0x25,0x2d,0x32,0x7a,0x35,0x33,0x6c,0xee,0x41, +0x6b,0x12,0x22,0xcd,0x7e,0x60,0x2, 0x12,0x1e,0x85,0x60,0x43,0xe5,0x36,0x1a,0x3e, +0x12,0x1e,0x7c,0x60,0x3a,0x1a,0x3e,0x3e,0x34,0x9, 0x43,0xc, 0x40,0x1e,0x40,0x7e, +0x50,0xc, 0xac,0x45,0x9, 0x33,0xc, 0x41,0x1e,0x30,0xa, 0x13,0x2d,0x21,0x3e,0x24, +0x2d,0x26,0xb, 0x28,0x10,0x7e,0x25,0x33,0x12,0x22,0xdc,0xbd,0x12,0x48,0x2, 0x41, +0x64,0xe5,0x35,0x19,0xb3,0xc, 0x40,0xe5,0x36,0x19,0xb3,0xc, 0x41,0x41,0x64,0x12, +0x22,0xcd,0x7e,0x60,0x6, 0x12,0x1e,0x85,0x70,0x2, 0x41,0x69,0xe5,0x36,0x1a,0x3e, +0x3e,0x34,0x9, 0x73,0xc, 0x41,0x7e,0x60,0x6, 0x12,0x1e,0x85,0x70,0x2, 0x41,0x69, +0x1a,0x2e,0x3e,0x24,0x9, 0x72,0xc, 0x40,0x1e,0x70,0xa, 0x47,0x7e,0x70,0x2, 0xac, +0x7f,0x9, 0x33,0x0, 0x3e,0x1e,0x30,0xa, 0x53,0x2d,0x54,0xf5,0x30,0x9, 0x52,0xc, +0x41,0x1e,0x50,0xa, 0x45,0x9, 0x73,0x0, 0x3f,0x1e,0x70,0xa, 0x57,0x2d,0x54,0xf5, +0x31,0x6d,0x33,0x80,0x2b,0x1a,0x3e,0xbe,0x35,0x27,0x68,0x1f,0xe5,0x30,0x7e,0x35, +0x27,0x12,0x22,0xd1,0x7e,0x60,0x2, 0x12,0x1e,0x85,0x60,0xf, 0xe5,0x31,0x7e,0x35, +0x27,0x12,0x1e,0x7c,0x60,0x5, 0x75,0x30,0xff,0x80,0x11,0x7e,0x35,0x27,0xb, 0x34, +0x7a,0x35,0x27,0xe5,0x2f,0xa, 0x3b,0xbe,0x35,0x27,0x18,0xc9,0xe5,0x30,0xbe,0xb0, +0xff,0x78,0x2, 0x41,0x69,0x1a,0x1e,0x3e,0x14,0x9, 0x1, 0xc, 0x40,0x1e,0x0, 0x7e, +0x10,0xc, 0xac,0x1, 0x9, 0x71,0xc, 0x41,0x1e,0x70,0xa, 0x37,0x2d,0x3, 0x3e,0x4, +0x2d,0x6, 0xb, 0x8, 0x20,0x7e,0x35,0x33,0x3e,0x34,0x2d,0x36,0xb, 0x38,0x30,0xbd, +0x23,0x8, 0x5, 0x7a,0x25,0x29,0x80,0x3, 0x7a,0x35,0x29,0x7e,0x35,0x29,0x7d,0x23, +0xe, 0x24,0xe, 0x24,0xe, 0x34,0x2d,0x32,0x7a,0x35,0x29,0xbe,0x34,0x0, 0x50,0x58, +0x7, 0x7e,0x34,0x0, 0x50,0x7a,0x35,0x29,0xe5,0x30,0x1a,0x1b,0xb, 0x14,0xe, 0x14, +0x7e,0x44,0x0, 0xc, 0xad,0x14,0x7e,0x71,0x31,0x1e,0x70,0xa, 0x37,0x12,0x22,0xd8, +0x7e,0x11,0x30,0xe, 0x10,0x1a,0x1, 0x7d,0x50,0xad,0x54,0x2d,0x35,0x12,0x22,0xe4, +0x7a,0x35,0x2b,0xe, 0x34,0x7a,0x35,0x2b,0xe5,0x31,0xa, 0x3b,0xb, 0x34,0xe, 0x34, +0x12,0x22,0xd8,0x7e,0x14,0x0, 0xc, 0xad,0x10,0x2d,0x31,0x12,0x22,0xe4,0x7a,0x35, +0x2d,0xe, 0x34,0x7a,0x35,0x2d,0x2e,0x35,0x2b,0xe, 0x34,0xbe,0x35,0x29,0x48,0x19, +0xe5,0x30,0x1a,0x3e,0x3e,0x34,0x19,0xb3,0xc, 0x40,0xe5,0x31,0x1a,0x3e,0x3e,0x34, +0x19,0xb3,0xc, 0x41,0x7e,0xe0,0xff,0x80,0xa, 0xb, 0xe0,0xe5,0x2f,0xbc,0xbe,0x8, +0x2, 0x1, 0xc1,0xe5,0x2f,0xbc,0xbe,0x78,0x16,0x7e,0xa1,0x35,0x7e,0x71,0x2f,0x74, +0x2, 0xac,0x7b,0x19,0xa3,0xc, 0x40,0xe5,0x36,0x19,0xb3,0xc, 0x41,0x5, 0x2f,0xb, +0xf0,0xe5,0x32,0xbc,0xbf,0x28,0x2, 0x1, 0x9b,0xe5,0x2f,0xbe,0xb0,0x0, 0x28,0x24, +0x6c,0xff,0x80,0x1a,0x74,0x2, 0xac,0xbf,0x9, 0x75,0xc, 0x40,0x19,0x75,0x0, 0x3e, +0x74,0x2, 0xac,0xbf,0x9, 0x75,0xc, 0x41,0x19,0x75,0x0, 0x3f,0xb, 0xf0,0xe5,0x2f, +0xbc,0xbf,0x38,0xe0,0xe5,0x2f,0x7a,0xb3,0x0, 0x7f,0xda,0x3b,0x22,0xe5,0x35,0x1a, +0x3e,0x3e,0x34,0x9, 0x73,0xc, 0x40,0x22,0x7d,0x21,0x2d,0x23,0x3e,0x24,0x2d,0x26, +0xb, 0x28,0x20,0x22,0x3e,0x34,0x2d,0x36,0xb, 0x38,0x30,0x2d,0x32,0x22,0xca,0x3b, +0x6d,0x33,0x7a,0x35,0x27,0x75,0x2b,0x0, 0x75,0x2c,0x0, 0x7e,0x23,0x0, 0x7f,0x7a, +0x21,0x29,0x7e,0x34,0x8, 0x82,0x7a,0x37,0xc, 0x40,0x7e,0x30,0x2, 0xac,0x23,0x7e, +0x24,0x0, 0x3e,0x7e,0x34,0xc, 0x42,0x12,0x3, 0x6e,0xe5,0x29,0xbe,0xb0,0x5, 0x38, +0x2, 0x81,0xa1,0x75,0x2a,0x0, 0x6c,0xff,0x61,0xd8,0x7e,0x34,0x3, 0xff,0x7a,0x35, +0x2d,0x75,0x2c,0xff,0x6c,0xee,0x80,0x52,0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0xc, +0x42,0xbe,0xb0,0xff,0x68,0x42,0x9, 0x73,0xc, 0x43,0xa, 0x27,0x74,0x2, 0xac,0xbf, +0x9, 0x75,0xb, 0xec,0xa, 0x37,0x12,0x27,0x1b,0x74,0x2, 0xac,0xbe,0x9, 0x75,0xc, +0x42,0xa, 0x27,0x74,0x2, 0xac,0xbf,0x9, 0x75,0xb, 0xeb,0xa, 0x37,0x9d,0x32,0x12, +0x0, 0x2e,0x2d,0x36,0x7a,0x35,0x2f,0x7e,0x35,0x2d,0xbe,0x35,0x2f,0x28,0x9, 0x7e, +0x35,0x2f,0x7a,0x35,0x2d,0x7a,0xe1,0x2c,0xb, 0xe0,0xe5,0x29,0xbc,0xbe,0x38,0xa8, +0xe5,0x2c,0xbe,0xb0,0xff,0x68,0x3f,0x7e,0x71,0x2c,0x74,0x2, 0xac,0x7b,0x9, 0x33, +0xc, 0x42,0x7c,0x43,0x1e,0x40,0x7e,0x50,0xc, 0xac,0x45,0x9, 0xa3,0xc, 0x43,0x7c, +0x2a,0x1e,0x20,0xa, 0x2, 0x2d,0x20,0x12,0x27,0x23,0xbe,0x24,0x0, 0x50,0x48,0x16, +0xe5,0x2a,0x1a,0x2b,0x3e,0x24,0x19,0x32,0xc, 0x60,0x19,0xa2,0xc, 0x61,0x74,0xff, +0x19,0xb3,0xc, 0x42,0x5, 0x2a,0xb, 0xf0,0xe5,0x1b,0xbc,0xbf,0x28,0x2, 0x61,0x2a, +0x7e,0xf1,0x2a,0x81,0x88,0x6d,0x33,0x7a,0x35,0x27,0x7e,0xa0,0xff,0x6c,0xee,0x80, +0x6c,0x7e,0x90,0x2, 0xac,0x9e,0x9, 0x44,0xc, 0x42,0xbe,0x40,0xff,0x68,0x5c,0x1e, +0x40,0x7e,0x50,0xc, 0xac,0x45,0x9, 0xb4,0xc, 0x43,0x1e,0xb0,0xa, 0x3b,0x2d,0x23, +0x3e,0x24,0x2e,0x27,0xc, 0x40,0xb, 0x28,0x30,0xbe,0x34,0x0, 0x0, 0x58,0x5, 0x6d, +0x33,0x1b,0x28,0x30,0x7e,0x50,0x2, 0xac,0x5e,0x9, 0x62,0xc, 0x42,0x7c,0x76,0x1e, +0x70,0x7e,0x30,0xc, 0xac,0x37,0x9, 0x72,0xc, 0x43,0x7c,0xb7,0x1e,0xb0,0xa, 0xb, +0x2d,0x10,0x3e,0x14,0x2e,0x17,0xc, 0x40,0xb, 0x18,0x40,0xbe,0x45,0x27,0x48,0xb, +0x7a,0x61,0x2b,0x7a,0x71,0x2c,0x7a,0x45,0x27,0x7c,0xae,0xb, 0xe0,0xe5,0x29,0xbc, +0xbe,0x38,0x8e,0xbe,0xa0,0xff,0x68,0x1e,0x7e,0x71,0x2b,0x7e,0x90,0x2, 0xac,0x9f, +0x19,0x74,0xc, 0x60,0xe5,0x2c,0x19,0xb4,0xc, 0x61,0x7e,0x70,0xff,0x7e,0x50,0x2, +0xac,0x5a,0x19,0x72,0xc, 0x42,0xb, 0xf0,0xbe,0xf0,0x5, 0x50,0x2, 0x61,0xe5,0x7e, +0x24,0xc, 0x60,0x7e,0x34,0xc, 0x42,0x7e,0x14,0x0, 0x1e,0x12,0x3, 0x6e,0x75,0x29, +0x5, 0x7e,0x34,0xb, 0xeb,0x12,0x24,0xdf,0xe5,0x29,0xbe,0xb0,0x0, 0x28,0x1c,0x12, +0x24,0xd7,0x7e,0x24,0xc, 0x42,0x7e,0x34,0x0, 0x3e,0x12,0x3, 0x6e,0x12,0x24,0xd7, +0x7e,0x24,0xc, 0x42,0x7e,0x34,0xb, 0xeb,0x12,0x3, 0x6e,0x85,0x29,0x1b,0xe5,0x29, +0x7a,0xb3,0x0, 0x7f,0xda,0x3b,0x22,0x7e,0x31,0x29,0x74,0x2, 0xac,0x3b,0x22,0x7e, +0x24,0x0, 0xa, 0x74,0xff,0x2, 0x0, 0x46,0xca,0x3b,0x6c,0xdd,0x7e,0xa0,0xff,0x7e, +0x70,0x7, 0xac,0x7d,0x19,0xa3,0x6, 0x26,0x7c,0x1d,0x2e,0x10,0x27,0xe4,0xa5,0xf7, +0xb, 0xd0,0xbe,0xd0,0x5, 0x78,0xe5,0x7e,0xc3,0x6, 0x63,0x4c,0xcc,0x78,0x18,0x7e, +0xb3,0x6, 0x64,0x70,0x2, 0xc1,0x91,0x7e,0x34,0x6, 0x4f,0x12,0x24,0xdf,0x7e,0x34, +0x6, 0x59,0x12,0x24,0xdf,0xc1,0x91,0x7e,0xb3,0x6, 0x64,0x70,0x1f,0xbe,0xc0,0x1, +0x78,0x1a,0x7e,0x37,0x6, 0x22,0x7a,0x37,0x6, 0x4f,0x7e,0x37,0x6, 0x24,0x7a,0x37, +0x6, 0x59,0x75,0x27,0x1, 0xe4,0x7a,0xb3,0x6, 0x26,0xc1,0x91,0x6c,0xdd,0x7e,0x34, +0xff,0xff,0x7e,0x50,0x2, 0xac,0x5d,0x59,0x32,0xc, 0x54,0x7c,0xbd,0x7c,0xad,0x20, +0xe0,0xb, 0x1e,0xa0,0x74,0x2, 0xa4,0x49,0x35,0x6, 0x4f,0x80,0x9, 0x1e,0xa0,0x74, +0x2, 0xa4,0x49,0x35,0x6, 0x59,0x59,0x32,0xc, 0x40,0xb, 0xd0,0xbe,0xd0,0xa, 0x78, +0xcd,0x6c,0xdd,0x80,0x25,0x7c,0xbd,0x7c,0xad,0x20,0xe0,0xb, 0x1e,0xa0,0x74,0x7, +0xa4,0x49,0x35,0x6, 0x22,0x80,0x9, 0x1e,0xa0,0x74,0x7, 0xa4,0x49,0x35,0x6, 0x24, +0x74,0x2, 0xac,0xbd,0x59,0x35,0xc, 0x54,0xb, 0xd0,0x7e,0x73,0x6, 0x63,0xa, 0x27, +0x3e,0x24,0xa, 0x3d,0xbd,0x32,0x40,0xcd,0x7e,0x34,0xc, 0x40,0x7c,0xb7,0xf5,0xb9, +0xa, 0x56,0xf5,0xba,0x7e,0x34,0xc, 0x54,0x7c,0xb7,0xf5,0xbb,0xa, 0x56,0xf5,0xbc, +0x75,0xc3,0x5, 0x75,0xc2,0x2b,0x80,0x3, 0x75,0xc2,0xb, 0x0, 0x0, 0x0, 0x0, 0xe5, +0xc2,0x30,0xe7,0xf4,0x75,0xc2,0x0, 0x75,0xc5,0xe, 0xe5,0xc6,0xa, 0x1b,0xe5,0xc6, +0xa, 0xb, 0x7c,0x1, 0x6c,0x11,0x4d,0x10,0x6c,0xdd,0x74,0x3, 0xac,0xbd,0x7d,0x31, +0x60,0x5, 0x1e,0x34,0x14,0x78,0xfb,0x5e,0x34,0x0, 0x7, 0xa, 0x57,0x1b,0x54,0x7c, +0xab,0x7e,0xb3,0x6, 0x63,0xbc,0xba,0x28,0x4c,0x7e,0x10,0x2, 0xac,0x1d,0x12,0x27, +0x12,0x78,0x19,0x6c,0xff,0x7e,0x10,0x2, 0xac,0x1f,0x12,0x27,0x12,0x78,0x4, 0x7c, +0xef,0x80,0xb, 0xb, 0xf0,0xbe,0xf0,0x5, 0x40,0xeb,0x80,0x2, 0x7c,0xed,0x7e,0x50, +0x7, 0xac,0x5a,0x19,0xe2,0x6, 0x26,0x7c,0x1e,0x2e,0x10,0x27,0x74,0x1, 0xa5,0xf7, +0x49,0x2, 0x6, 0x22,0x7e,0x70,0x2, 0xac,0x7e,0x59,0x3, 0x6, 0x4f,0x49,0x2, 0x6, +0x24,0x59,0x3, 0x6, 0x59,0xb, 0xd0,0xbe,0xd0,0x5, 0x78,0x8e,0x6c,0xdd,0x12,0x27, +0xa, 0xbe,0xb0,0x1, 0x68,0x14,0x7e,0x44,0xff,0xff,0x74,0x2, 0xac,0xbd,0x59,0x45, +0x6, 0x4f,0x7e,0x34,0xff,0xff,0x59,0x35,0x6, 0x59,0xb, 0xd0,0xbe,0xd0,0x5, 0x78, +0xdd,0x7e,0xf3,0x6, 0x63,0x6c,0xdd,0x12,0x27,0xa, 0xb4,0x1, 0x2d,0xa, 0x3d,0x9, +0xb3,0x6, 0x4a,0xb4,0x1, 0x8, 0x74,0x3, 0xa, 0x3d,0x19,0xb3,0x6, 0x4a,0xa, 0x3d, +0x9, 0xa3,0x6, 0x4a,0xbe,0xa0,0x3, 0x78,0x9, 0xe4,0xa, 0x4d,0x19,0xb4,0x6, 0x45, +0x80,0x32,0x4c,0xaa,0x78,0x2e,0x74,0x2, 0x80,0x24,0xa, 0x3d,0x9, 0xb3,0x6, 0x4a, +0xbe,0xb0,0x2, 0x68,0x2, 0x70,0x15,0x74,0x1, 0xa, 0x3d,0x19,0xb3,0x6, 0x45,0x7c, +0xaf,0xb, 0xf0,0x74,0x7, 0xa4,0x19,0xd5,0x6, 0x26,0x80,0x8, 0x74,0x3, 0xa, 0x3d, +0x19,0xb3,0x6, 0x45,0xa, 0x3d,0x9, 0x73,0x6, 0x45,0xa, 0x2d,0x19,0x72,0x6, 0x4a, +0xb, 0xd0,0xbe,0xd0,0x5, 0x40,0x90,0xda,0x3b,0x22,0x7c,0x1d,0x2e,0x10,0x27,0xa5, +0xe7,0x22,0x49,0x0, 0x6, 0x4f,0xbe,0x4, 0xff,0xff,0x22,0x9d,0x32,0x12,0x0, 0x2e, +0x7d,0x63,0x22,0x3e,0x24,0x2e,0x27,0xc, 0x40,0xb, 0x28,0x20,0x22,0xbe,0x34,0x0, +0xa, 0x40,0x6, 0x9e,0x34,0x0, 0xa, 0x80,0x2, 0x6d,0x33,0x6d,0x22,0x7e,0x14,0xff, +0x0, 0x7e,0x4, 0x0, 0x4, 0x12,0x0, 0x98,0x7e,0x14,0x4, 0xeb,0x12,0x0, 0xb2,0x12, +0x1f,0xad,0xbe,0x18,0x5, 0x8c,0x40,0x4, 0x7e,0x18,0x5, 0x8b,0x22,0x6c,0xaa,0x80, +0x16,0x7e,0x30,0x7, 0xac,0x3a,0x49,0x31,0x0, 0x5c,0x49,0x21,0x0, 0x5e,0x2e,0x14, +0x0, 0x5c,0x12,0x2d,0x96,0xb, 0xa0,0x7e,0xb3,0x0, 0x7f,0xbc,0xba,0x38,0xe2,0x22, +0xca,0x3b,0x7e,0xb3,0x0, 0x7f,0xf5,0x28,0x7e,0x67,0x6, 0x67,0x7e,0xb3,0xa, 0xa7, +0xf5,0x2d,0x7e,0xb3,0xa, 0xa8,0xf5,0x2e,0x15,0x2d,0x7e,0x24,0xa, 0x62,0x7e,0x34, +0xc, 0x40,0x12,0x2b,0xd5,0xe5,0x28,0xbe,0xb0,0x0, 0x38,0x3, 0x2, 0x28,0x9f,0x6c, +0xff,0x6c,0xee,0x2, 0x28,0x92,0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0x0, 0x3e,0x1e, +0xb0,0xf5,0x29,0x9, 0xb3,0x0, 0x3f,0x1e,0xb0,0xf5,0x2a,0x74,0x2, 0x12,0x2b,0xc4, +0x7e,0x51,0x2a,0x74,0x2, 0xac,0x5b,0x7e,0x71,0x29,0x12,0x34,0x4a,0x49,0x33,0x8, +0x82,0xbd,0x36,0x50,0x3, 0x2, 0x28,0x8b,0xe5,0x29,0xbe,0xb0,0x1, 0x28,0x23,0xe5, +0x2d,0xa, 0x2b,0x1b,0x25,0xe5,0x29,0xa, 0x3b,0xbd,0x32,0x58,0x15,0xe5,0x2a,0xbe, +0xb0,0x1, 0x28,0xe, 0xe5,0x2e,0xa, 0x2b,0x1b,0x25,0xe5,0x2a,0xa, 0x3b,0xbd,0x32, +0x48,0x5, 0x74,0x1, 0x12,0x2b,0xc4,0x75,0x27,0x0, 0x80,0x3a,0xbe,0xe1,0x27,0x68, +0x33,0x7e,0xa1,0x27,0x12,0x2b,0xdc,0x7a,0x71,0x2b,0x9, 0xb5,0x0, 0x3f,0x1e,0xb0, +0xf5,0x2c,0xe5,0x29,0x7e,0x60,0x3, 0x12,0x1e,0x85,0xbe,0xb0,0x1, 0x68,0xe, 0xe5, +0x2a,0x7e,0x71,0x2c,0x7e,0x60,0x3, 0x12,0x1e,0x85,0xb4,0x1, 0x7, 0x74,0x1, 0x12, +0x2b,0xc4,0x80,0x9, 0x5, 0x27,0xe5,0x28,0xbe,0xb1,0x27,0x38,0xbf,0x7a,0xe3,0x1, +0xa7,0x7a,0xf3,0x1, 0xa8,0xe5,0x29,0xbe,0xb0,0x14,0x50,0xc, 0x7e,0x34,0xa, 0x62, +0x7e,0x24,0x0, 0x18,0xe4,0x12,0x0, 0x46,0x12,0x2d,0x85,0x12,0x28,0xa2,0x7e,0x24, +0xc, 0x40,0x7e,0x34,0xa, 0x62,0x12,0x2b,0xd5,0xb, 0xf0,0xbe,0xf0,0x5, 0x50,0xb, +0xb, 0xe0,0xe5,0x28,0xbc,0xbe,0x28,0x3, 0x2, 0x27,0xb6,0x7a,0xf3,0x0, 0x7f,0xda, +0x3b,0x22,0xca,0x3b,0x7d,0xd0,0x7d,0xc1,0x7d,0x93,0x6c,0xaa,0x6c,0x77,0x6d,0x88, +0x7a,0x87,0xc, 0x58,0x7a,0x87,0xc, 0x5a,0x7e,0xa4,0x0, 0x1, 0x9, 0x6d,0x1, 0x69, +0x9, 0xbd,0x1, 0x6a,0xf5,0x2f,0xa, 0x46,0x2d,0x4d,0x9, 0x34,0x1, 0x5a,0x49,0x4c, +0x0, 0x13,0x7d,0x9, 0x2e,0x4, 0x1, 0xf8,0x7d,0xb9,0x2e,0xb4,0x3, 0xf0,0x6c,0x22, +0x7e,0xf0,0x7, 0xac,0xfb,0x7d,0x87,0x2d,0x8d,0x19,0x28,0x0, 0x23,0xe4,0x7d,0x87, +0x2d,0x8d,0x19,0xb8,0x0, 0x24,0x7e,0xf0,0x2, 0xac,0xf6,0x7d,0x87,0x2d,0x8d,0x7e, +0x89,0x20,0x1e,0x20,0x7e,0xd0,0xc, 0xac,0xd2,0x9, 0x28,0x0, 0x1, 0x1e,0x20,0xa, +0x82,0x2d,0x86,0x7a,0xb3,0xc, 0x68,0x3e,0x84,0x2d,0x80,0xb, 0x88,0x60,0xb, 0xc8, +0x80,0xbd,0x68,0x48,0x6, 0x74,0x1, 0x7a,0xb3,0xc, 0x68,0x7d,0xa9,0x2e,0xa4,0x1, +0xf8,0x7d,0x6a,0xa, 0x6c,0x7c,0xbd,0xf5,0xba,0x7d,0x6a,0x7c,0xbd,0xf5,0xb9,0x7d, +0x97,0x2d,0x9d,0x12,0x2b,0xb9,0xbd,0x89,0x40,0x15,0x12,0x2b,0xaf,0x9, 0x79,0x0, +0x1, 0x1e,0x70,0xa, 0x97,0xa, 0x83,0x9d,0x98,0x7d,0x79,0x7c,0x7f,0x80,0x2, 0x6c, +0x77,0x7a,0x71,0xbb,0x12,0x2b,0xaf,0x7e,0x99,0x20,0x12,0x2b,0xbd,0xbd,0x89,0x40, +0xa, 0xa, 0x93,0x7d,0x58,0x9d,0x59,0x7c,0xab,0x80,0x2, 0x6c,0xaa,0x1a,0x9a,0x3e, +0x94,0x3e,0x94,0x3e,0x94,0x3e,0x94,0x7d,0x79,0x7c,0x2f,0x7c,0xb2,0x42,0xbb,0x7c, +0xba,0xe, 0xb0,0xe, 0xb0,0xe, 0xb0,0xe, 0xb0,0xf5,0xbc,0x9, 0x2c,0x0, 0x22,0xa, +0x92,0x3e,0x94,0x3e,0x94,0x5e,0x94,0x0, 0xf0,0x7d,0x79,0x7c,0x2f,0x7c,0xb2,0x42, +0xbc,0x75,0xc3,0x0, 0x12,0x2b,0xaf,0x12,0x2b,0xb9,0x2d,0x98,0x9, 0x22,0x0, 0x1, +0xa, 0x82,0xbd,0x98,0x50,0x2, 0x80,0x4, 0xa, 0x92,0x1b,0x94,0x7d,0x79,0x7c,0xbf, +0xf5,0x31,0x9, 0x22,0x0, 0x2f,0x7c,0xb2,0xc4,0x33,0x54,0xe0,0x7c,0x2b,0xe5,0x31, +0x9c,0xb7,0x4, 0x4c,0xb2,0xf5,0xc3,0x12,0x2b,0xaf,0x7e,0x99,0x20,0x12,0x2b,0xbd, +0x2d,0x98,0x7e,0x29,0x20,0xa, 0x82,0xbd,0x98,0x50,0x4, 0x7d,0x79,0x80,0x6, 0xa, +0xa2,0x1b,0xa4,0x7d,0x7a,0x7c,0xbf,0xf5,0x30,0x1a,0x9a,0xe5,0x30,0x1a,0xab,0x9d, +0xa9,0xb, 0xa4,0x7d,0x7a,0x7c,0xbf,0xf5,0xc4,0x7e,0xa4,0xc, 0x69,0x7d,0x7a,0xa, +0x7e,0x7c,0xbf,0xf5,0xc1,0x7d,0x7a,0x7c,0xbf,0xf5,0xbd,0x75,0xc2,0x7, 0x80,0x3, +0x43,0xc2,0x1, 0x0, 0x0, 0x0, 0x0, 0xe5,0xc2,0x30,0xe7,0xf4,0x75,0xc2,0x0, 0x7e, +0x7f,0xc, 0x71,0x7a,0x7f,0xc, 0x64,0x7e,0x7f,0xc, 0x75,0x7a,0x7f,0xc, 0x5c,0x7e, +0x7f,0xc, 0x6d,0x7a,0x7f,0xc, 0x60,0x7e,0x7f,0xc, 0x69,0x74,0x2, 0xac,0xb6,0x2d, +0x5d,0x7e,0x59,0xa0,0x1e,0xa0,0x9c,0xa3,0x61,0x7, 0x12,0x2b,0xcb,0x9, 0x7a,0x0, +0x1, 0x1e,0x70,0x9c,0x73,0x80,0x79,0xbe,0xa0,0x0, 0x48,0x72,0x7e,0x29,0x20,0xbc, +0x2a,0x8, 0x6b,0xbe,0x70,0x0, 0x48,0x66,0x9, 0x22,0x0, 0x1, 0xbc,0x27,0x8, 0x5e, +0x1a,0x8a,0x7e,0x94,0x0, 0xc, 0xad,0x98,0x1a,0xa7,0x2d,0xa9,0x7d,0x9a,0x3e,0x94, +0x2d,0x90,0xb, 0x98,0x90,0xbd,0x94,0x48,0x16,0x7e,0xf1,0x2f,0x74,0x7, 0xac,0xfb, +0x7d,0x97,0x2d,0x9d,0x2e,0x94,0x0, 0x24,0x7e,0x99,0xb0,0x4, 0x7a,0x99,0xb0,0x7e, +0xb3,0xc, 0x68,0xb4,0x1, 0x28,0x7d,0x9a,0x5e,0x94,0x0, 0x7, 0x2e,0x94,0x3, 0xba, +0x7d,0x79,0x7a,0xf1,0x82,0x7a,0xe1,0x83,0xe4,0x93,0x64,0xff,0x7d,0x9a,0x1e,0x94, +0x1e,0x94,0x1e,0x94,0x2d,0x9b,0x7e,0x99,0x20,0x5c,0x2b,0x7a,0x99,0x20,0xb, 0x70, +0x12,0x2b,0xaf,0x9, 0xb9,0x0, 0x1, 0x1e,0xb0,0x2c,0xb3,0x1a,0x8b,0x1a,0x97,0xbd, +0x98,0x18,0x2, 0x41,0x77,0xb, 0xa0,0x12,0x2b,0xcb,0x7e,0xa9,0xb0,0x1e,0xb0,0x2c, +0xb3,0x1a,0x9b,0x1a,0xaa,0xbd,0xa9,0x18,0x2, 0x41,0x6a,0x74,0x6, 0x7e,0x1f,0xc, +0x5c,0x2f,0x11,0x14,0x78,0xfb,0x7a,0x1f,0xc, 0x5c,0x7e,0xf, 0xc, 0x64,0x7e,0x1f, +0xc, 0x5c,0x12,0x0, 0xb4,0x7d,0xb3,0x2e,0xb4,0x0, 0x20,0x7a,0xb7,0xc, 0x58,0x74, +0x6, 0x7e,0x1f,0xc, 0x60,0x2f,0x11,0x14,0x78,0xfb,0x7a,0x1f,0xc, 0x60,0x7f,0x7, +0x12,0x0, 0xb4,0x7d,0x23,0x2e,0x24,0x0, 0x20,0x7a,0x27,0xc, 0x5a,0x7e,0x71,0x2f, +0x74,0x7, 0xac,0x7b,0x7d,0xa3,0x2d,0xad,0x59,0xba,0x0, 0x1e,0x7d,0x13,0x2d,0x1d, +0x59,0x21,0x0, 0x20,0x9, 0xbc,0x0, 0x12,0x60,0xd, 0x1e,0xf4,0x1e,0xe4,0x50,0x4, +0x4e,0xf4,0x80,0x0, 0x14,0x78,0xf3,0xbe,0x78,0x0, 0x7f,0x28,0x4, 0x7e,0x78,0x0, +0x7f,0x7d,0x2f,0x7d,0xc3,0x2d,0xcd,0x19,0x5c,0x0, 0x23,0x2d,0x3d,0x9, 0x53,0x0, +0x24,0xbe,0x50,0xf, 0x28,0x6, 0x74,0xf, 0x19,0xb3,0x0, 0x24,0xda,0x3b,0x22,0x7e, +0xf0,0x2, 0xac,0xf6,0x7d,0x97,0x2d,0x9d,0x22,0x9, 0x29,0x0, 0x1, 0x1e,0x20,0xa, +0x82,0xa, 0x93,0x22,0xa, 0x3e,0x19,0xb3,0x1, 0x98,0x22,0x7e,0xf0,0x2, 0xac,0xf6, +0x7d,0xa7,0x2d,0xad,0x22,0x7e,0x14,0x0, 0x18,0x2, 0x3, 0x6e,0x74,0x2, 0xa4,0x9, +0x75,0x0, 0x3e,0x1e,0x70,0x22,0xca,0x3b,0x75,0x29,0x0, 0x75,0x27,0x0, 0x12,0x2d, +0x6c,0x9, 0xb6,0x0, 0x7, 0xb4,0x3, 0x8, 0xe4,0x19,0xb6,0x0, 0x7, 0x75,0x29,0x1, +0x5, 0x27,0xe5,0x27,0xb4,0xf, 0xe7,0x75,0x27,0x0, 0xe5,0x27,0xbe,0xb0,0xf, 0x50, +0x5, 0x12,0x2d,0x6c,0x80,0x62,0x12,0x2d,0x6c,0x9, 0xb6,0x0, 0x7, 0xb4,0x2, 0x58, +0x75,0x28,0x0, 0x80,0x4a,0x7e,0xa1,0x28,0x12,0x2b,0xdc,0xa, 0x37,0x9, 0x56,0x0, +0x1, 0xa, 0x25,0x9d,0x32,0x12,0x0, 0x2e,0x7c,0xe7,0x7e,0xa1,0x28,0x74,0x2, 0xa4, +0x9, 0x75,0x0, 0x3f,0x1e,0x70,0xa, 0x37,0x9, 0x56,0x0, 0x2, 0xa, 0x25,0x9d,0x32, +0x12,0x0, 0x2e,0x7c,0xf7,0xbe,0xe0,0x2, 0x18,0x13,0xbe,0xf0,0x2, 0x18,0xe, 0xe4, +0x19,0xb6,0x0, 0x7, 0x7e,0x34,0x1, 0x73,0x12,0x2d,0x78,0x80,0xb, 0x5, 0x28,0x7e, +0x73,0x0, 0x7f,0xbe,0x71,0x28,0x38,0xad,0x9, 0xb6,0x0, 0x7, 0xb4,0x2, 0x2, 0x80, +0x2, 0xa1,0x5e,0xe5,0x27,0xbe,0xb0,0xf, 0x50,0x6, 0x7e,0x34,0x1, 0x72,0x80,0x4, +0x7e,0x34,0x1, 0x73,0x12,0x2d,0x78,0xe4,0x19,0xb6,0x0, 0x7, 0xe5,0x29,0xbe,0xb0, +0x1, 0x78,0x2, 0xa1,0x5e,0x9, 0x76,0x0, 0x2, 0x1a,0x37,0x1b,0x35,0x7c,0xe7,0xa1, +0x4e,0x9, 0x76,0x0, 0x1, 0x1a,0x37,0x1b,0x35,0x7c,0xf7,0x80,0x7f,0xbe,0xe0,0x0, +0x48,0x78,0xbe,0xe0,0x15,0x58,0x73,0xbe,0xf0,0x0, 0x48,0x6e,0xbe,0xf0,0xc, 0x58, +0x69,0x1a,0x5f,0x7d,0x15,0x3e,0x14,0x1a,0xe, 0x7e,0x34,0x0, 0x18,0xad,0x30,0x7d, +0x23,0x2d,0x21,0x49,0x32,0x8, 0x82,0xbe,0x34,0x0, 0x0, 0x8, 0x1a,0x7e,0x14,0x0, +0xc, 0xad,0x10,0x7d,0x1, 0x2d,0x5, 0x3e,0x4, 0x2e,0x4, 0x6, 0x8a,0xb, 0x8, 0x10, +0x2d,0x13,0x1b,0x8, 0x10,0x80,0x1f,0x12,0x0, 0x2e,0x7d,0x13,0x1a,0x2e,0x7e,0x34, +0x0, 0xc, 0xad,0x32,0x1a,0x2f,0x2d,0x23,0x3e,0x24,0x2e,0x24,0x6, 0x8a,0xb, 0x28, +0x30,0x9d,0x31,0x1b,0x28,0x30,0x6d,0x33,0x1a,0x2f,0x3e,0x24,0x1a,0xe, 0x7e,0x14, +0x0, 0x18,0xad,0x10,0x2d,0x21,0x59,0x32,0x8, 0x82,0xb, 0xf0,0x9, 0x76,0x0, 0x1, +0xa, 0x27,0xb, 0x25,0x1a,0x3f,0xbd,0x32,0x18,0x2, 0x81,0xbd,0xb, 0xe0,0x9, 0x76, +0x0, 0x2, 0xa, 0x27,0xb, 0x25,0x1a,0x3e,0xbd,0x32,0x18,0x2, 0x81,0xb1,0x5, 0x27, +0xe5,0x27,0xbe,0xb0,0x1e,0x50,0x2, 0x81,0xa, 0xda,0x3b,0x22,0x7e,0xd1,0x27,0x74, +0x8, 0xac,0xdb,0x2e,0x64,0x0, 0x82,0x22,0x7e,0x39,0xb0,0xbe,0xb0,0x0, 0x28,0x4, +0x14,0x7a,0x39,0xb0,0x22,0x7e,0x34,0x6, 0x8a,0x7e,0x24,0xa, 0xa7,0x7e,0x14,0x6, +0x67,0x7e,0x4, 0x0, 0x3e,0x22,0x7d,0x1, 0x7d,0x12,0x7d,0x23,0xbe,0x24,0x0, 0x0, +0x50,0x2, 0x6d,0x22,0xbe,0x14,0x0, 0x0, 0x50,0x2, 0x6d,0x11,0xbe,0x24,0x0, 0x3f, +0x38,0xd, 0x7d,0x32,0x12,0x2e,0x19,0x58,0x2, 0x6d,0x33,0x7d,0x23,0x80,0x1a,0xbe, +0x24,0x2, 0xc0,0x40,0x14,0x7d,0x32,0x9e,0x34,0x2, 0xc0,0x2d,0x32,0xbe,0x34,0x2, +0xfd,0x8, 0x4, 0x7e,0x34,0x2, 0xff,0x7d,0x23,0xbe,0x14,0x0, 0x3f,0x38,0xd, 0x7d, +0x31,0x12,0x2e,0x19,0x58,0x2, 0x6d,0x33,0x7d,0x13,0x80,0x20,0xbe,0x14,0x4, 0xc0, +0x40,0x1a,0xbe,0x14,0x4, 0xff,0x38,0x14,0x7d,0x31,0x9e,0x34,0x4, 0xc0,0x2d,0x31, +0xbe,0x34,0x4, 0xfd,0x8, 0x4, 0x7e,0x34,0x4, 0xff,0x7d,0x13,0x1b,0x8, 0x20,0x7d, +0x20,0xb, 0x25,0x7d,0x2, 0x1b,0x28,0x10,0x22,0x3e,0x34,0x9e,0x34,0x0, 0x3f,0xbe, +0x34,0x0, 0x2, 0x22,0x2, 0x2e,0x27,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0x22,0xca, +0x3b,0x7d,0x71,0x7a,0x25,0x27,0x7d,0x63,0x7e,0x34,0xc, 0x40,0x7d,0x27,0x2e,0x24, +0x0, 0x8, 0x7e,0x14,0x0, 0x15,0x12,0x3, 0x6e,0x7e,0x34,0xc, 0x55,0x7d,0x27,0x2e, +0x24,0x0, 0x1d,0x7e,0x14,0x0, 0x15,0x12,0x3, 0x6e,0x7e,0x34,0xc, 0x6a,0x7d,0x27, +0x2e,0x24,0x0, 0x32,0x7e,0x14,0x0, 0x15,0x12,0x3, 0x6e,0x9, 0xb6,0x1, 0x10,0x70, +0x9, 0x7d,0x36,0x12,0x2f,0xc3,0x4, 0x7a,0x39,0xb0,0xe4,0x19,0xb6,0x1, 0x10,0x9, +0x66,0x0, 0x3d,0x9, 0x76,0x0, 0x43,0xbc,0x76,0x40,0x32,0x7d,0x36,0x2e,0x34,0x0, +0x40,0x12,0x2e,0x27,0x9, 0x76,0x0, 0x40,0xbe,0x70,0x8, 0x40,0x1b,0xe4,0x19,0xb6, +0x0, 0x40,0x9, 0xa6,0x0, 0x3e,0x9, 0xb6,0x0, 0x44,0xbc,0xba,0x50,0xa, 0x7d,0x36, +0x2e,0x34,0x0, 0x44,0x4, 0x7a,0x39,0xb0,0xe4,0x19,0xb6,0x0, 0x43,0x7e,0x35,0x27, +0x7e,0x39,0x70,0xa, 0x27,0x7d,0x32,0x12,0x1e,0xff,0x74,0x8, 0xac,0xb7,0x9d,0x25, +0x7c,0x65,0x19,0x76,0x1, 0xc, 0x9, 0xb6,0x0, 0x40,0xac,0xb7,0x7c,0x7b,0x19,0x76, +0x0, 0xd9,0x9, 0x76,0x0, 0x40,0xbc,0x76,0x7d,0x26,0x50,0x1f,0x2e,0x24,0x1, 0xc, +0x7e,0x29,0xb0,0x4, 0x7a,0x29,0xb0,0x9, 0x36,0x0, 0x40,0x7d,0x26,0x2e,0x24,0x0, +0xd9,0x7e,0x29,0x70,0x2c,0x73,0x7a,0x29,0x70,0x80,0xc, 0x2e,0x24,0x0, 0xd9,0x7e, +0x29,0xb0,0x2c,0xb6,0x7a,0x29,0xb0,0x9, 0x76,0x0, 0x43,0xa, 0x37,0x2d,0x36,0x9, +0x73,0x0, 0xc, 0xa, 0x37,0x2d,0x36,0x9, 0xa3,0x0, 0x2c,0x6c,0x66,0x80,0x7f,0x9, +0x76,0x0, 0xd9,0xa, 0x17,0xa, 0x26,0x2d,0x21,0xa, 0x45,0x2e,0x44,0xc, 0x40,0x7e, +0x49,0xb0,0x2c,0xba,0x7a,0x49,0xb0,0x7c,0x46,0x3e,0x40,0xa, 0xf5,0x2e,0xf5,0x27, +0x9, 0x3f,0x0, 0x4, 0xa, 0x4, 0x2d,0x7, 0x19,0x30,0x0, 0x47,0xa, 0x5, 0x9, 0xb0, +0xc, 0x40,0xa, 0x44,0x2d,0x47,0x19,0xb4,0x0, 0x8, 0xa, 0x45,0x9, 0x74,0xc, 0x55, +0xa, 0x44,0x2d,0x47,0x19,0x74,0x0, 0x1d,0xa, 0x45,0x9, 0x24,0xc, 0x6a,0xa, 0x4, +0x2d,0x7, 0x19,0x20,0x0, 0x32,0xa, 0x44,0x2d,0x47,0x19,0x34,0x0, 0x48,0xa, 0x44, +0x2d,0x47,0x19,0xb4,0x0, 0x9, 0xa, 0x14,0x2d,0x17,0x19,0x71,0x0, 0x1e,0xa, 0x15, +0x9, 0x71,0xc, 0x6a,0xa, 0x14,0x2d,0x17,0x19,0x71,0x0, 0x33,0xb, 0x60,0x9, 0x76, +0x1, 0xc, 0xbc,0x76,0x28,0x2, 0xe1,0x2f,0x3e,0x70,0x19,0x77,0x0, 0x5, 0xda,0x3b, +0x22,0x7d,0x30,0x2e,0x34,0x0, 0x43,0x7e,0x39,0xb0,0x22,0xca,0xd8,0xca,0x79,0x7e, +0xf0,0x1, 0x12,0x35,0xeb,0x7c,0xdb,0x12,0x37,0x61,0x7c,0xeb,0x12,0x4f,0x4f,0x78, +0x52,0x74,0x1, 0x7a,0xb3,0xa, 0x9d,0xbe,0xd0,0x2, 0x78,0xa, 0x74,0x6, 0x7a,0xb3, +0xa, 0x9d,0x6c,0xff,0x80,0x36,0x7e,0xb3,0x0, 0x7f,0x70,0x2a,0x7e,0xb3,0x1, 0x78, +0x70,0x24,0xe5,0xe, 0xb4,0x1, 0x2, 0x80,0xe, 0x7e,0xa3,0xc, 0xad,0xbe,0xa0,0x2, +0x40,0xf, 0xe4,0x7a,0xb3,0xc, 0xad,0x7e,0x24,0x0, 0x1, 0x7a,0x27,0xa, 0xa4,0x80, +0x76,0x7c,0xba,0x4, 0x80,0x7, 0x74,0x4, 0x7a,0xb3,0xa, 0x9d,0xe4,0x7a,0xb3,0xc, +0xad,0x80,0x64,0xbe,0x34,0x0, 0x1, 0x78,0x2e,0xe4,0x7a,0xb3,0xa, 0x9d,0x4c,0xee, +0x68,0x6, 0x7e,0x34,0x0, 0x3, 0x80,0x4b,0xbe,0xd0,0x2, 0x78,0x3, 0xe4,0x80,0x39, +0x7e,0xb3,0x0, 0x7f,0x70,0xa, 0x7e,0xb3,0x1, 0x78,0x70,0x4, 0x74,0x1, 0x80,0x29, +0x12,0x30,0xa8,0x6c,0xff,0x80,0x30,0x7e,0x37,0xa, 0xa4,0xbe,0x34,0x0, 0x3, 0x78, +0x26,0xbe,0xd0,0x1, 0x78,0x5, 0x12,0x30,0xa8,0x6c,0xff,0x1b,0xe1,0x68,0x8, 0xb, +0xe0,0x78,0xc, 0x74,0x3, 0x80,0x2, 0x74,0x2, 0x7a,0xb3,0xa, 0x9d,0x80,0x8, 0x7e, +0x34,0x0, 0x1, 0x7a,0x37,0xa, 0xa4,0xbe,0xf0,0x1, 0x78,0x7, 0x12,0x33,0xf7,0x7a, +0xb3,0x1, 0x74,0xda,0x79,0xda,0xd8,0x22,0xca,0x3b,0x7e,0xa3,0x0, 0x7f,0x7e,0x53, +0x1, 0x78,0x6c,0x44,0x6c,0x33,0x7e,0xc3,0xb, 0x17,0x7e,0xb3,0x2, 0x82,0xf5,0x33, +0x7e,0xb3,0x2, 0xb7,0x70,0x7, 0xbe,0xc0,0x1, 0x78,0x2, 0x61,0xf4,0xbe,0xa0,0x0, +0x38,0x7, 0xbe,0x50,0x0, 0x38,0x2, 0x61,0xec,0xbe,0xc0,0x1, 0x78,0x8, 0x74,0x5, +0x7a,0xb3,0x1, 0x74,0x80,0x7, 0x7e,0x34,0x1, 0x74,0x12,0x2e,0x24,0x7e,0xb3,0x1, +0x74,0xb4,0x5, 0x2, 0x80,0x2, 0x61,0xf4,0xe4,0x7a,0xb3,0x1, 0x74,0x7e,0xb3,0x1, +0x72,0x60,0x2, 0x41,0x21,0x7e,0xb3,0x1, 0x73,0x60,0x2, 0x41,0x21,0xe4,0x7a,0xb3, +0x1, 0x75,0x7a,0xa3,0x1, 0x72,0x7a,0x53,0x1, 0x73,0x6c,0xdd,0x41,0x11,0xbc,0xad, +0x7e,0xf0,0x8, 0x28,0x19,0xac,0xf4,0x2e,0x74,0x0, 0x82,0x7e,0x70,0x2, 0xac,0x7d, +0x9, 0xb3,0x0, 0x3e,0x1e,0xb0,0xf5,0x2b,0x9, 0xb3,0x0, 0x3f,0x80,0x1a,0xac,0xf3, +0x2e,0x74,0x0, 0xfa,0xa, 0xa, 0xa, 0x3d,0x9d,0x30,0x3e,0x34,0x9, 0xb3,0x1, 0x79, +0x1e,0xb0,0xf5,0x2b,0x9, 0xb3,0x1, 0x7a,0x1e,0xb0,0xf5,0x2a,0xe5,0x2b,0x19,0xb7, +0x0, 0x2, 0xe5,0x2a,0x19,0xb7,0x0, 0x1, 0xe4,0x19,0xb7,0x0, 0x7, 0xbe,0xc0,0x1, +0x78,0x67,0x6c,0x22,0x80,0x34,0xe5,0x33,0xa, 0x3b,0xa, 0x2, 0x2d,0x3, 0x9, 0xb7, +0x0, 0x2, 0xa, 0x3b,0xbd,0x3, 0x78,0x20,0x74,0x1, 0x19,0xb7,0x0, 0x7, 0x9, 0x7, +0x0, 0x1, 0x7e,0x10,0x2, 0xac,0x1, 0x7e,0x70,0x18,0xac,0x72,0x2d,0x30,0x49,0x33, +0x1, 0xf2,0x59,0x37,0x0, 0x5, 0x80,0xa, 0xb, 0x20,0x7e,0xb3,0x2, 0xb5,0xbc,0xb2, +0x38,0xc4,0x7e,0xb3,0x2, 0xb5,0xbc,0xb2,0x38,0x13,0xbc,0xad,0x28,0x6, 0x7e,0x34, +0x1, 0x72,0x80,0x4, 0x7e,0x34,0x1, 0x73,0x12,0x2d,0x78,0x80,0x1c,0xbc,0xad,0x28, +0x4, 0xb, 0x40,0x80,0x14,0xb, 0x30,0x80,0x10,0xbc,0xad,0x28,0x4, 0xb, 0x40,0x80, +0x2, 0xb, 0x30,0x74,0x1, 0x19,0xb7,0x0, 0x7, 0x4c,0xcc,0x78,0x16,0x7e,0x11,0x2a, +0x74,0x2, 0xac,0x1b,0x7e,0x71,0x2b,0x74,0x18,0xac,0x7b,0x2d,0x30,0x49,0x33,0x8, +0x82,0x80,0x8, 0xe4,0x7a,0x79,0xb0,0xe5,0x33,0xa, 0x3b,0x59,0x37,0x0, 0x3, 0xb, +0xd0,0xa, 0x35,0xa, 0xa, 0x2d,0x3, 0xa, 0x3d,0xbd,0x30,0x50,0x2, 0x21,0x1e,0x61, +0xf4,0x7e,0x73,0x1, 0x73,0xa, 0x47,0x7e,0x73,0x1, 0x72,0xa, 0x57,0x2d,0x54,0xf5, +0x27,0x6c,0xdd,0x61,0x84,0x7e,0xa3,0x1, 0x72,0xbc,0xad,0x28,0x5, 0x12,0x34,0x23, +0x80,0x3, 0x12,0x34,0x2d,0x9, 0x77,0x0, 0x1, 0x7e,0x90,0x2, 0xac,0x97,0x9, 0xa7, +0x0, 0x2, 0x7e,0x50,0x18,0xac,0x5a,0x2d,0x24,0x49,0x22,0x8, 0x82,0x7a,0x25,0x28, +0x9, 0xb7,0x0, 0x7, 0x70,0x4, 0x15,0x27,0x61,0x82,0x4c,0xcc,0x68,0x2, 0x61,0x11, +0x75,0x2c,0x0, 0x75,0x30,0x0, 0x7a,0x71,0x31,0x7a,0xa1,0x32,0x75,0x2f,0x0, 0xe5, +0x32,0xbe,0xb1,0x2f,0x68,0x5b,0x7e,0x31,0x31,0x74,0x2, 0xac,0x3b,0x7e,0x11,0x2f, +0x74,0x18,0xac,0x1b,0x2d,0x1, 0x49,0x30,0x8, 0x82,0x7e,0x51,0x2f,0x74,0xc, 0xac, +0x5b,0xe5,0x31,0xa, 0xb, 0x2d,0x20,0x3e,0x24,0x49,0x22,0x6, 0x8a,0x2d,0x23,0x7e, +0x71,0x32,0x74,0x18,0xac,0x7b,0x2d,0x31,0x49,0x13,0x8, 0x82,0x7e,0x71,0x32,0x74, +0xc, 0xac,0x7b,0x2d,0x30,0x3e,0x34,0x49,0x33,0x6, 0x8a,0x2d,0x31,0x9d,0x32,0x7a, +0x35,0x2d,0x7e,0x73,0x1, 0x72,0xbc,0x7d,0x28,0x7, 0x12,0x34,0x9, 0x58,0x2, 0x5, +0x2c,0x5, 0x2f,0xe5,0x2f,0xb4,0x15,0x97,0xe5,0x2c,0xbe,0xb0,0xa, 0x40,0xb, 0x12, +0x34,0x1, 0x68,0x6, 0x74,0x3, 0x19,0xb7,0x0, 0x7, 0x49,0x27,0x0, 0x3, 0x7e,0x35, +0x28,0x12,0x34,0x1a,0xbe,0x34,0x0, 0x23,0x8, 0x78,0xe4,0x19,0xb7,0x0, 0x7, 0x80, +0x71,0x75,0x2c,0x0, 0x80,0x3f,0xe5,0x33,0xa, 0x3b,0xe5,0x2c,0xa, 0x2b,0x2d,0x23, +0x9, 0x77,0x0, 0x2, 0xbd,0x23,0x78,0x16,0x12,0x34,0x3e,0x12,0x34,0x11,0x12,0x34, +0x1a,0xbe,0x34,0x0, 0x23,0x8, 0x1c,0xe4,0x19,0xb7,0x0, 0x7, 0x80,0x15,0x12,0x34, +0x3e,0x12,0x34,0x11,0x9d,0x32,0x7a,0x35,0x2d,0x12,0x34,0x9, 0x58,0x5, 0x7d,0x37, +0x12,0x2e,0x24,0x5, 0x2c,0x7e,0x73,0x2, 0xb5,0xbe,0x71,0x2c,0x38,0xb8,0x49,0x27, +0x0, 0x3, 0xe5,0x33,0xa, 0x3b,0xbd,0x23,0x78,0x18,0x7e,0x79,0x70,0xbe,0x70,0xa, +0x28,0xb, 0x12,0x34,0x1, 0x68,0x6, 0x74,0x3, 0x19,0xb7,0x0, 0x7, 0x74,0x1, 0x7a, +0x79,0xb0,0xb, 0xd0,0x12,0x35,0xd8,0x50,0x2, 0x41,0x35,0xe5,0x27,0x70,0x5, 0x12, +0x33,0xf7,0x80,0x60,0x7e,0xb3,0x1, 0x75,0xf5,0x2f,0xbe,0xc0,0x1, 0x78,0x6, 0xe5, +0x2f,0x1e,0xb0,0xf5,0x2f,0xe5,0x2f,0xbe,0xb0,0x4, 0x40,0x37,0x6c,0xdd,0x80,0x2c, +0x7e,0xa3,0x1, 0x72,0xbc,0xad,0x28,0x12,0x12,0x34,0x23,0x9, 0xb7,0x0, 0x7, 0xb4, +0x1, 0x18,0x74,0x2, 0x19,0xb7,0x0, 0x7, 0x80,0x10,0x12,0x34,0x2d,0x9, 0xb7,0x0, +0x7, 0xb4,0x1, 0x6, 0x74,0x2, 0x19,0xb7,0x0, 0x7, 0xb, 0xd0,0x12,0x35,0xd8,0x40, +0xcf,0x80,0x11,0x7e,0x34,0x1, 0x75,0x12,0x2e,0x24,0x80,0x8, 0xe4,0x7a,0xb3,0x1, +0x75,0x12,0x33,0xf8,0xda,0x3b,0x22,0xe4,0x7a,0xb3,0x1, 0x72,0x7a,0xb3,0x1, 0x73, +0x22,0x7e,0xb3,0xa, 0x9d,0xbe,0xb0,0x6, 0x22,0x7e,0x37,0x6, 0x67,0xbe,0x35,0x2d, +0x22,0x49,0x23,0x1, 0xf2,0x49,0x37,0x0, 0x5, 0x22,0x9d,0x32,0x12,0x0, 0x2e,0x7a, +0x35,0x28,0x22,0x7e,0xf0,0x8, 0xac,0xfd,0x2e,0x74,0x0, 0x82,0x22,0xa, 0x3a,0xa, +0x7d,0x9d,0x73,0x3e,0x74,0x3e,0x74,0x3e,0x74,0x2e,0x74,0x0, 0xfa,0x22,0x9, 0x47, +0x0, 0x1, 0x7e,0x50,0x2, 0xac,0x45,0x7e,0x71,0x2c,0x74,0x18,0xac,0x7b,0x2d,0x32, +0x22,0xca,0x3b,0x6d,0x33,0x7a,0x35,0x29,0x7e,0x18,0x80,0x0, 0x7e,0x8, 0xc, 0x40, +0x74,0x10,0x12,0x1, 0x5a,0x7e,0xb3,0x0, 0x7f,0x70,0x2, 0xa1,0x26,0x7e,0xb3,0x3, +0xa5,0x60,0x2, 0xa1,0x26,0x7e,0xb3,0x0, 0x3e,0x1e,0xb0,0xf5,0x27,0x7e,0x73,0x0, +0x3f,0x1e,0x70,0x7a,0x71,0x28,0x6d,0x66,0x75,0x2b,0x0, 0x75,0x2c,0x0, 0xa, 0x37, +0x7d,0x73,0x80,0x31,0x7d,0x17,0x3e,0x14,0x12,0x35,0xc8,0x2d,0x21,0x49,0x12,0x8, +0x82,0xbe,0x14,0x0, 0x3c,0x8, 0x24,0x12,0x35,0xd0,0x28,0x8, 0x49,0x12,0x8, 0x6a, +0x2d,0x61,0x5, 0x2c,0xe5,0x27,0xbe,0xb0,0x14,0x50,0x8, 0x49,0x22,0x8, 0x9a,0x2d, +0x62,0x5, 0x2c,0x1b,0x74,0xbe,0x74,0x0, 0x0, 0x58,0xc9,0x7d,0x73,0x80,0x30,0x7d, +0x27,0x3e,0x24,0x7e,0x71,0x27,0x12,0x34,0x4a,0x49,0x23,0x8, 0x82,0xbe,0x24,0x0, +0x3c,0x8, 0x28,0x12,0x35,0xd0,0x28,0x8, 0x49,0x23,0x8, 0x6a,0x2d,0x62,0x5, 0x2c, +0xe5,0x27,0xbe,0xb0,0x14,0x50,0x8, 0x49,0x33,0x8, 0x9a,0x2d,0x63,0x5, 0x2c,0x7d, +0x37,0xb, 0x34,0x7d,0x73,0xbe,0x34,0x0, 0xc, 0x48,0xc4,0xe5,0x2b,0xbe,0xb0,0x3, +0x50,0x2, 0x80,0x12,0x7d,0x36,0x12,0x0, 0x2e,0xe5,0x2c,0xa, 0x2b,0x12,0x0, 0x66, +0xbe,0x34,0x0, 0xf, 0x8, 0x6, 0x75,0x14,0x0, 0xe4,0xa1,0xbe,0x6d,0x33,0xe5,0x27, +0xbe,0xb0,0x0, 0x28,0xb, 0x12,0x35,0xc1,0x2d,0x21,0x49,0x22,0x8, 0x6a,0x2d,0x32, +0xe5,0x27,0xbe,0xb0,0x14,0x50,0xb, 0x12,0x35,0xc1,0x2d,0x21,0x49,0x22,0x8, 0x9a, +0x2d,0x32,0x7e,0xa0,0x8, 0x80,0x1b,0x7e,0x50,0x2, 0xac,0x5a,0x9, 0xb2,0xc, 0x40, +0x1a,0x1b,0xbd,0x13,0x8, 0xc, 0x9, 0xb2,0xc, 0x41,0x1a,0x2b,0x2e,0x25,0x29,0x7a, +0x25,0x29,0x7c,0x5a,0x1b,0xa0,0xa5,0xbd,0x0, 0xdd,0x7e,0x51,0x28,0x74,0x2, 0xac, +0x5b,0x7e,0x71,0x27,0x12,0x34,0x4a,0x49,0x33,0x8, 0x82,0x12,0x0, 0x2e,0xbe,0x34, +0x3, 0xe8,0x8, 0xa, 0x7e,0x35,0x29,0x2e,0x34,0x0, 0x28,0x7a,0x35,0x29,0x7e,0x35, +0x29,0xbe,0x34,0x0, 0xfa,0x28,0x7, 0x7e,0x34,0x0, 0xfa,0x7a,0x35,0x29,0xe5,0x14, +0xa, 0x3b,0xbe,0x35,0x29,0x50,0x5, 0x7e,0x55,0x29,0xf5,0x14,0xe5,0x14,0xda,0x3b, +0x22,0x7e,0x31,0x28,0x74,0x2, 0xac,0x3b,0x7e,0x51,0x27,0x74,0x18,0xac,0x5b,0x22, +0x5, 0x2b,0xe5,0x27,0xbe,0xb0,0x0, 0x22,0x7e,0x73,0x1, 0x73,0xa, 0x37,0x7e,0x53, +0x1, 0x72,0xa, 0x25,0x2d,0x23,0xa, 0x3d,0xbd,0x32,0x22,0xca,0x3b,0x7e,0xb3,0x6, +0x81,0xf5,0x27,0x7e,0xe3,0x6, 0x82,0x7e,0xa1,0xe, 0x7e,0xf3,0xa, 0xa7,0x7e,0xe4, +0x6, 0x8a,0x7e,0x44,0x8, 0x82,0x7e,0xf4,0x2, 0x9c,0x7e,0x34,0x2, 0x84,0x7e,0x53, +0x2, 0xb5,0x7e,0x43,0x2, 0x82,0x7e,0xb3,0x2, 0xb7,0x70,0x9, 0xbe,0xa0,0x1, 0x78, +0x4, 0xe5,0x15,0xe1,0x56,0x4c,0xaa,0x78,0x2b,0x6c,0x44,0xe5,0x27,0xa, 0xb, 0xa, +0x1e,0x9d,0x10,0xb, 0x14,0x7c,0x53,0x74,0x1, 0x7a,0xb3,0x2, 0xb8,0x7e,0xb3,0xc, +0xac,0xbe,0xb0,0x2, 0x50,0x9, 0x4, 0x7a,0xb3,0xc, 0xac,0xe5,0x15,0xe1,0x56,0xe4, +0x7a,0xb3,0xc, 0xac,0x6c,0xff,0xa, 0x1f,0x2e,0x14,0x0, 0x1e,0x7a,0x31,0x82,0x7a, +0x21,0x83,0xe4,0x93,0x7c,0x3b,0x6c,0x22,0xc1,0xf2,0xa5,0xba,0x0, 0x4, 0x6d,0x0, +0x80,0x7, 0x7e,0x5, 0x2a,0x2e,0x4, 0x0, 0xc, 0x7a,0x5, 0x2a,0xa, 0x4, 0xa, 0xd2, +0x2d,0xd0,0xe5,0x27,0xa, 0xb, 0xbd,0xd0,0x40,0x66,0xa, 0xe, 0xbd,0xd0,0x38,0x60, +0xa, 0x3, 0xbd,0xd0,0x38,0x5a,0xbe,0xa0,0x1, 0x78,0x12,0x7e,0xd0,0x2, 0xac,0xdf, +0x7e,0x10,0x18,0xac,0x12,0x2d,0x6, 0x49,0x0, 0x1, 0xf2,0x80,0x1a,0x7e,0xd5,0x2a, +0x3e,0xd4,0x7e,0x10,0x2, 0xac,0x1f,0x2d,0xd, 0x7d,0xd0,0x2d,0xd4,0xb, 0xd8,0xd0, +0x2d,0xe, 0xb, 0x8, 0x0, 0x2d,0xd, 0x7a,0x5, 0x28,0x12,0x37,0x59,0x2d,0xdf,0xb, +0xd8,0x0, 0xbe,0x5, 0x28,0x50,0x6, 0x7e,0x5, 0x28,0x1b,0xd8,0x0, 0x12,0x37,0x59, +0x2d,0xd3,0xb, 0xd8,0x0, 0xbe,0x5, 0x28,0x28,0x6, 0x7e,0x5, 0x28,0x1b,0xd8,0x0, +0xb, 0x20,0xbc,0x52,0x28,0x2, 0xc1,0x6a,0xb, 0xf0,0xbe,0xf0,0xb, 0x38,0x2, 0xc1, +0x56,0x6c,0xff,0x74,0x2, 0xac,0xbf,0x49,0x25,0x2, 0x84,0x49,0x35,0x2, 0x9c,0x9d, +0x32,0x12,0x0, 0x2e,0xbe,0x34,0x0, 0xfa,0x8, 0x5, 0x75,0x15,0x2, 0x80,0x7, 0xb, +0xf0,0xbe,0xf0,0xb, 0x28,0xdd,0x7e,0xb3,0x2, 0xb8,0xb4,0x1, 0x27,0xbe,0xf0,0xc, +0x78,0x3, 0x75,0x15,0x1, 0x6c,0xff,0x6d,0x33,0x74,0x2, 0xac,0xbf,0x59,0x35,0x2, +0x9c,0x7e,0x34,0x7f,0xff,0x74,0x2, 0xac,0xbf,0x59,0x35,0x2, 0x84,0xb, 0xf0,0xbe, +0xf0,0xc, 0x78,0xe3,0xe5,0x15,0xda,0x3b,0x22,0x7e,0x10,0x2, 0xac,0x1f,0x7d,0xd0, +0x22,0x7e,0x50,0x5, 0x7e,0x40,0x3, 0x6c,0x66,0x6c,0xaa,0x6c,0x77,0xa5,0xbc,0x0, +0x3, 0x7e,0x40,0x1, 0x6c,0x33,0x6c,0x22,0x7e,0x10,0x2, 0xac,0x12,0x7e,0x90,0x18, +0xac,0x93,0x2d,0x40,0x49,0x4, 0x8, 0x82,0xbe,0x4, 0x0, 0x14,0x8, 0x4, 0xb, 0x60, +0x80,0x8, 0xbe,0x4, 0xff,0xec,0x58,0x2, 0xb, 0xa0,0xb, 0x70,0x2c,0x24,0xbe,0x20, +0xc, 0x40,0xd5,0x2c,0x35,0xbe,0x30,0x15,0x40,0xcc,0x7c,0xb7,0x1e,0xb0,0xa, 0x2b, +0xa, 0x16,0xbd,0x12,0x28,0x1e,0xe4,0x7a,0xb3,0xa, 0x9f,0x7e,0x73,0xa, 0x9e,0xbe, +0x70,0x5, 0x50,0x6, 0x7e,0x34,0xa, 0x9e,0x80,0x22,0xe4,0x7a,0xb3,0xa, 0x9e,0x75, +0x16,0x1, 0x80,0x2d,0xa, 0x3a,0xbd,0x32,0x28,0x21,0xe4,0x7a,0xb3,0xa, 0x9e,0x7e, +0x73,0xa, 0x9f,0xbe,0x70,0x5, 0x50,0x9, 0x7e,0x34,0xa, 0x9f,0x12,0x2e,0x24,0x80, +0x10,0xe4,0x7a,0xb3,0xa, 0x9f,0x75,0x16,0x2, 0x80,0x6, 0x12,0x1f,0xf1,0x75,0x16, +0x0, 0xe5,0x16,0x22,0x7e,0xa3,0x3, 0xa5,0xbe,0xa0,0x0, 0x38,0x34,0xbe,0xa3,0x3, +0xa4,0x50,0x19,0x7e,0xb3,0x3, 0xa9,0xbe,0xb3,0xc, 0xb2,0x28,0x14,0x7e,0xb3,0xc, +0xb2,0x4, 0x7a,0xb3,0xc, 0xb2,0x7a,0xa3,0x3, 0xa4,0x80,0x5, 0xe4,0x7a,0xb3,0xc, +0xb2,0x7e,0xb3,0x3, 0xa4,0x70,0xa, 0x7e,0xb3,0x3, 0xa8,0x54,0xfe,0x7a,0xb3,0x3, +0xa8,0x22,0x12,0x38,0x56,0x7a,0xb3,0xc, 0xa4,0x74,0xff,0x7a,0xb3,0xc, 0x9c,0x74, +0x1, 0x7a,0xb3,0xc, 0xa5,0x22,0x74,0x3, 0x7a,0xb3,0xc, 0x9d,0xe4,0x22,0x6d,0x33, +0x7a,0x37,0xc, 0xa6,0xe4,0x7a,0xb3,0xc, 0x7f,0x22,0xbe,0xb0,0xa, 0x50,0x7, 0xa, +0x2b,0x19,0x72,0xc, 0x9c,0x22,0xa, 0x2b,0x9e,0x24,0x0, 0xa, 0x7c,0x65,0xa, 0x26, +0xbe,0x24,0x2, 0x69,0x50,0xd, 0xa5,0xbe,0x7d,0x3, 0x2, 0x3a,0x48,0xa, 0x26,0x19, +0x72,0x3, 0xb9,0x22,0xca,0x79,0x7c,0x6b,0x14,0x68,0x53,0x14,0x68,0x62,0x14,0x68, +0x7a,0x14,0x68,0x77,0x14,0x68,0x74,0x14,0x68,0x71,0x14,0x68,0x6e,0x14,0x68,0x6b, +0x14,0x68,0x68,0x14,0x68,0x65,0x14,0x68,0x62,0x14,0x68,0x5f,0x14,0x68,0x5c,0x14, +0x68,0x59,0x14,0x68,0x56,0x24,0xc3,0x68,0x61,0x1b,0xb1,0x68,0x69,0x14,0x68,0x6c, +0x24,0x65,0x68,0x5c,0x24,0xea,0x78,0x69,0x12,0x3a,0x5a,0x4c,0x77,0x68,0x4, 0xa5, +0xbf,0x1, 0x4, 0x74,0x1, 0x80,0x2, 0x74,0x3, 0x12,0x39,0xb3,0x21,0xa8,0x7a,0x73, +0xb, 0xe4,0x74,0x18,0xac,0x7b,0x2e,0x37,0xc, 0x80,0x7a,0x37,0xb, 0xe2,0x21,0xa8, +0xa5,0xbf,0x4, 0x7, 0x74,0x1, 0x7e,0x70,0x4, 0x80,0xb, 0xa5,0xbf,0x5, 0x2, 0x80, +0x2, 0x21,0xa8,0xe4,0x6c,0x77,0x12,0x38,0x6a,0x21,0xa8,0xa, 0x26,0x2e,0x24,0x3, +0xb9,0x9e,0x24,0x0, 0x3, 0x7a,0x29,0x70,0x80,0x7e,0x7a,0x73,0x3, 0xc6,0x80,0x78, +0x7a,0x73,0xc, 0xa5,0x80,0x72,0x7a,0x73,0x4, 0x24,0x80,0x6c,0x12,0x3a,0x48,0x80, +0x67,0x12,0x6, 0x51,0x54,0x7, 0x12,0x3a,0x6c,0x7c,0xab,0xbe,0x60,0x50,0x40,0xe, +0xbe,0x60,0x63,0x38,0x9, 0x12,0x39,0xab,0x19,0x72,0x3, 0x79,0x80,0x4a,0xbe,0x60, +0x78,0x40,0xe, 0xbe,0x60,0x8b,0x38,0x9, 0x12,0x39,0xab,0x19,0x72,0x3, 0x66,0x80, +0x37,0xbe,0x60,0xa0,0x40,0xe, 0xbe,0x60,0xb3,0x38,0x9, 0x12,0x39,0xab,0x19,0x72, +0x3, 0x53,0x80,0x24,0xbe,0x60,0xbf,0x40,0xe, 0xbe,0x60,0xd2,0x38,0x9, 0x12,0x39, +0xab,0x19,0x72,0x3, 0x40,0x80,0x11,0xbe,0x60,0xd3,0x40,0xc, 0xbe,0x60,0xe6,0x38, +0x7, 0x12,0x39,0xab,0x19,0x72,0x3, 0x41,0xda,0x79,0x22,0x74,0x14,0xa4,0xa, 0x26, +0x2d,0x25,0x22,0x7c,0x7b,0x7e,0xb3,0xb, 0x33,0xb4,0x3, 0x5, 0x74,0x1, 0x2, 0x38, +0x6a,0x74,0x27,0x2, 0x39,0xc6,0xbe,0xb0,0x7f,0x38,0x30,0x7c,0x6b,0x2e,0x60,0xfd, +0x68,0x29,0x1b,0x60,0x68,0x25,0x2e,0x60,0xe1,0x68,0x20,0x2e,0x60,0xfd,0x68,0x1b, +0x1b,0x61,0x68,0x17,0x2e,0x60,0xf9,0x68,0x12,0x80,0x0, 0xa, 0x2b,0x19,0x72,0xb, +0xc, 0x7e,0xb3,0xb, 0x8c,0x44,0x1, 0x7a,0xb3,0xb, 0x8c,0x22,0xca,0x79,0xbe,0xb0, +0x80,0x40,0x1d,0xbe,0xb0,0xbf,0x38,0x18,0xbe,0xb0,0x26,0x68,0x38,0xbe,0xb0,0x28, +0x68,0x33,0xbe,0xb0,0x23,0x68,0x2e,0xbe,0xb0,0x2f,0x68,0x29,0x24,0x80,0x80,0x22, +0xb, 0xb2,0x68,0x1c,0x1b,0xb2,0x78,0x1d,0x12,0x3a,0x5a,0xbe,0x70,0x4, 0x40,0x9, +0xbe,0x70,0x5, 0x68,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0x12,0x39,0xb3,0x80,0x5, +0x74,0x27,0x12,0x39,0xc6,0xda,0x79,0x22,0x30,0x0, 0x8, 0x74,0x1, 0x12,0xf, 0x76, +0xc2,0x0, 0x22,0xe4,0x12,0xf, 0x76,0xd2,0x0, 0x22,0x7e,0x74,0xb, 0xe7,0x7a,0x79, +0x70,0x5e,0x70,0x70,0x7c,0xb7,0xc4,0x54,0xf, 0x7c,0x7b,0x22,0xb4,0x4, 0x2, 0xe4, +0x22,0xb4,0x6, 0x3, 0x74,0x1, 0x22,0xb4,0x7, 0x3, 0x74,0x2, 0x22,0xe4,0x22,0x7e, +0xb3,0x0, 0x81,0x30,0xe0,0x23,0x7e,0x37,0x3, 0xa6,0xbe,0x34,0x0, 0x3c,0x50,0x8, +0xb, 0x34,0x7a,0x37,0x3, 0xa6,0x80,0x11,0x12,0xf, 0x6f,0x6d,0x33,0x7a,0x37,0x3, +0xa6,0x7e,0x34,0x5, 0xdc,0x7a,0x37,0x3, 0xb7,0x7e,0xb3,0x0, 0x81,0x20,0xe0,0x17, +0x6d,0x33,0x7a,0x37,0x3, 0xa6,0x30,0x1, 0xe, 0xc2,0x1, 0x7e,0x73,0x0, 0x7f,0xbe, +0x70,0x0, 0x28,0x3, 0x12,0xf, 0x6f,0x22,0xca,0x3b,0x7d,0x62,0x7d,0x73,0x75,0x2b, +0x0, 0x75,0x2d,0x0, 0x75,0x30,0x0, 0x75,0x31,0x0, 0xb, 0x78,0x30,0x7a,0x37,0xc, +0x40,0x9, 0xb7,0x0, 0x50,0x20,0xe0,0x8, 0x20,0xe2,0x5, 0x20,0xe1,0x2, 0xa1,0xa7, +0x20,0x2, 0x6, 0x7e,0x34,0xb, 0x92,0x80,0x4, 0x7e,0x34,0xb, 0xb6,0x7a,0x35,0x2e, +0x75,0x27,0x0, 0x7e,0xa0,0xff,0x12,0x3d,0xd8,0x7a,0x39,0xa0,0x5, 0x27,0xe5,0x27, +0xb4,0x24,0xf0,0x74,0xaa,0x7e,0x35,0x2e,0x7a,0x39,0xb0,0x74,0xaa,0x7e,0x35,0x2e, +0x19,0xb3,0x0, 0x1, 0x9, 0x77,0x0, 0x4a,0x7e,0x25,0x2e,0x19,0x72,0x0, 0x4, 0x75, +0x2c,0x0, 0x75,0x27,0x0, 0x7e,0x91,0x27,0x74,0x7, 0xac,0x9b,0x7d,0x34,0x2d,0x37, +0x9, 0xa3,0x0, 0x8, 0x7c,0xba,0x54,0xf0,0xbe,0xb0,0x0, 0x28,0x2b,0xb4,0xb0,0x2, +0x80,0x2, 0xa1,0x3a,0x2e,0x34,0x0, 0x8, 0x7c,0xba,0x54,0xf, 0x7a,0x39,0xb0,0x7d, +0x54,0x2d,0x57,0x9, 0x75,0x0, 0x8, 0xa, 0x57,0x2e,0x57,0xc, 0x40,0x9, 0xb5,0x0, +0x23,0xb4,0x1, 0x2, 0x80,0x2, 0xa1,0x3a,0x2d,0x47,0x9, 0xa4,0x0, 0x8, 0xa, 0x3a, +0x2e,0x37,0xc, 0x40,0x9, 0xb3,0x0, 0x23,0xbe,0xb0,0x3, 0x78,0x2, 0xa1,0x3a,0x7a, +0xa1,0x32,0xa, 0x3a,0x12,0x3d,0xf3,0xf5,0x33,0x60,0x5, 0xe5,0x33,0xb4,0x2, 0x3a, +0x7d,0x43,0x2d,0x47,0x9, 0x34,0x0, 0x56,0x9, 0xa7,0x0, 0x5b,0xbc,0x3a,0x50,0xe, +0x7d,0x4, 0x2e,0x4, 0x0, 0x56,0x7c,0xb3,0x4, 0x7a,0x9, 0xb0,0xa1,0x3a,0xbc,0x3a, +0x78,0x9, 0x4c,0xaa,0x68,0x5, 0xe4,0x19,0xb2,0x0, 0x23,0x7e,0xa0,0xff,0xe5,0x32, +0xa, 0x2b,0x2d,0x27,0x19,0xa2,0x0, 0x56,0x80,0x1a,0x2d,0x37,0x9, 0x43,0x0, 0x56, +0x9, 0x57,0x0, 0x5b,0xbc,0x45,0x38,0x7, 0xe4,0x19,0xb3,0x0, 0x56,0xa1,0x3a,0xe4, +0x19,0xb3,0x0, 0x56,0x7e,0xa1,0x2c,0x74,0x6, 0xa4,0xf5,0x28,0x12,0x3d,0xc1,0x9, +0xb3,0x0, 0x9, 0xf5,0x30,0x12,0x3d,0xc1,0x9, 0xb3,0x0, 0xa, 0xc4,0x54,0xf0,0xf5, +0x31,0xe5,0x32,0xbe,0xb0,0x5, 0x50,0x64,0x9, 0xb7,0x0, 0x50,0x20,0xe3,0x2a,0x7e, +0x8, 0x0, 0x30,0xe5,0x32,0xa, 0x3b,0x2e,0x34,0xb, 0x8d,0x74,0x1, 0x7e,0x50,0xf, +0x12,0x3d,0xfe,0x7e,0x8, 0x0, 0x31,0xe5,0x32,0xa, 0x3b,0x2e,0x34,0xb, 0xda,0x74, +0x10,0x7e,0x50,0x20,0x12,0x3d,0xfe,0x80,0x14,0xe5,0x32,0xa, 0x3b,0x9, 0xb3,0xb, +0x8d,0xf5,0x30,0xe5,0x32,0xa, 0x3b,0x9, 0xb3,0xb, 0xda,0xf5,0x31,0xe5,0x32,0xa, +0x3b,0x12,0x3d,0xf3,0xb4,0x1, 0x15,0xe4,0x19,0xb3,0xb, 0x8d,0x6c,0xaa,0xe5,0x32, +0xa, 0x3b,0x19,0xa3,0xb, 0xda,0x75,0x30,0x0, 0x75,0x31,0x0, 0x9, 0xb6,0x0, 0x6, +0xb4,0xff,0x14,0x12,0x3d,0xc1,0x9, 0xb3,0x0, 0x8, 0xbe,0xb0,0xff,0x68,0x5, 0x75, +0x30,0x1, 0x80,0x3, 0x75,0x30,0x0, 0x12,0x3d,0xc1,0x49,0x33,0x0, 0x4, 0x12,0x3d, +0xae,0x19,0xa3,0x0, 0x5, 0x7e,0x55,0x29,0x12,0x3d,0xb7,0x19,0xa3,0x0, 0x6, 0x12, +0x3d,0xc1,0x49,0x33,0x0, 0x6, 0x12,0x3d,0xae,0x19,0xa3,0x0, 0x7, 0x7e,0x55,0x29, +0x12,0x3d,0xb7,0x19,0xa3,0x0, 0x8, 0x7e,0xa1,0x30,0x12,0x3d,0xb9,0x19,0xa3,0x0, +0x9, 0x7e,0xa1,0x31,0x12,0x3d,0xb9,0x19,0xa3,0x0, 0xa, 0x12,0x3d,0xc1,0x9, 0x63, +0x0, 0x8, 0x7c,0xb6,0xc4,0x54,0xf0,0x12,0x3d,0xe9,0x2e,0x24,0x0, 0x7, 0x12,0x3d, +0xe0,0x7e,0x51,0x27,0x74,0x7, 0xac,0x5b,0x2d,0x27,0x9, 0x72,0x0, 0x8, 0xbe,0x70, +0xff,0x68,0x26,0xa, 0x17,0x2e,0x17,0xc, 0x40,0x9, 0x61,0x0, 0x23,0xbe,0x60,0x1, +0x68,0x2, 0x5, 0x2b,0x5, 0x2d,0x7c,0xb6,0xc4,0x33,0x33,0x54,0xc0,0x12,0x3d,0xe9, +0x2e,0x24,0x0, 0x5, 0x12,0x3d,0xe0,0x80,0xf, 0x12,0x3d,0xb9,0x2e,0x34,0x0, 0x5, +0x7e,0x39,0xb0,0x24,0xc0,0x7a,0x39,0xb0,0x5, 0x2c,0x5, 0x27,0xe5,0x27,0xb4,0x5, +0x2, 0x80,0x2, 0x61,0x35,0xe5,0x2b,0x7e,0x35,0x2e,0x19,0xb3,0x0, 0x3, 0x74,0x24, +0x7e,0x35,0x2e,0x19,0xb3,0x0, 0x2, 0xe4,0x7e,0x35,0x2e,0x19,0xb3,0x0, 0x23,0x75, +0x27,0x0, 0x12,0x3d,0xd8,0x7e,0x39,0x60,0x7e,0x25,0x2e,0x2e,0x24,0x0, 0x23,0x7e, +0x29,0x70,0x6c,0x76,0x7a,0x29,0x70,0x5, 0x27,0xe5,0x27,0xb4,0x23,0xe4,0xb2,0x2, +0x74,0x1, 0x12,0xf, 0x76,0x9, 0xb7,0x0, 0x50,0x30,0xe2,0x7, 0x7e,0x37,0xc, 0x40, +0x12,0x3e,0x54,0x12,0x3d,0xce,0x54,0xfe,0x12,0x3d,0xcb,0x54,0xfb,0x12,0x3d,0xcb, +0x54,0xfd,0x7a,0x39,0xb0,0x80,0x4, 0xe4,0x12,0xf, 0x76,0xda,0x3b,0x22,0x7a,0x35, +0x29,0xa, 0x56,0x5e,0x54,0x0, 0xf, 0x7c,0xab,0xe5,0x28,0xa, 0x3b,0x2e,0x35,0x2e, +0x22,0x7e,0x71,0x27,0x74,0x7, 0xac,0x7b,0x2d,0x37,0x22,0x7a,0x39,0xb0,0x7d,0x37, +0x2e,0x34,0x0, 0x50,0x7e,0x39,0xb0,0x22,0xe5,0x27,0xa, 0x3b,0x2e,0x35,0x2e,0x22, +0x7e,0x29,0x70,0x2c,0x76,0x7a,0x29,0x70,0x22,0x7c,0x6b,0xe5,0x28,0xa, 0x2b,0x2e, +0x25,0x2e,0x22,0x7d,0x23,0x2e,0x27,0xc, 0x40,0x9, 0xb2,0x0, 0x23,0x22,0xca,0x3b, +0x7c,0xc5,0x7c,0xdb,0x7d,0x73,0x7a,0xd, 0x34,0x7e,0x79,0x50,0xa5,0xbd,0x0, 0xb, +0x7e,0xd, 0x34,0x7e,0xb, 0x40,0x7a,0x79,0x40,0x80,0x36,0x7e,0xd, 0x34,0x7e,0xb, +0x40,0xa, 0x34,0xa, 0x25,0x9d,0x32,0x12,0x0, 0x2e,0xa, 0x2c,0xbd,0x32,0x8, 0x18, +0x7e,0x1d,0x34,0x7e,0x1b,0xb0,0x7e,0x79,0xa0,0xbc,0xba,0x7c,0xba,0x28,0x4, 0x2c, +0xbd,0x80,0x2, 0x9c,0xbd,0x7a,0x79,0xb0,0x7e,0x79,0x30,0x7e,0x1d,0x34,0x7a,0x1b, +0x30,0xda,0x3b,0x22,0x6c,0xaa,0x74,0x3, 0xa, 0x2a,0x2d,0x23,0x19,0xb2,0x0, 0x28, +0x74,0x3, 0xa, 0x2a,0x2d,0x23,0x19,0xb2,0x0, 0x23,0x7e,0x24,0xff,0xff,0x7e,0x30, +0x2, 0xac,0x3a,0x7d,0x1, 0x2d,0x3, 0x59,0x20,0x0, 0x2d,0x2d,0x13,0x59,0x21,0x0, +0x37,0xb, 0xa0,0xbe,0xa0,0x5, 0x40,0xce,0xe4,0x19,0xb3,0x0, 0x41,0x19,0xb3,0x0, +0x42,0x22,0xca,0x3b,0x6d,0x0, 0x7e,0xb3,0x6, 0x63,0x7c,0xeb,0x70,0x27,0x6c,0xff, +0x6d,0x11,0x74,0x2, 0xac,0xbf,0x59,0x15,0xa, 0xfd,0x7e,0xa0,0xff,0x7e,0x30,0x7, +0xac,0x3f,0x19,0xa1,0xa, 0xde,0x74,0x2, 0xa, 0x1f,0x19,0xb1,0xb, 0x7, 0xb, 0xf0, +0xbe,0xf0,0x5, 0x78,0xdb,0x6c,0xff,0xe1,0xe7,0x74,0x7, 0xac,0xbf,0x9, 0xb5,0x6, +0x26,0xf5,0x28,0xbe,0xb0,0xff,0x78,0x2, 0xe1,0xe5,0x12,0x4f,0x96,0xbe,0xb0,0x1, +0x78,0x2, 0xe1,0xe5,0x75,0x27,0x0, 0x7e,0x31,0x27,0x74,0x7, 0xac,0x3b,0x9, 0x71, +0xa, 0xde,0x7a,0x71,0x29,0xbe,0x71,0x28,0x68,0x2, 0xe1,0xda,0x49,0x21,0xa, 0xdc, +0x74,0x7, 0xac,0xbf,0x49,0x35,0x6, 0x24,0x12,0x27,0x1b,0x7e,0xa1,0x27,0x74,0x7, +0xa4,0x49,0x25,0xa, 0xda,0x74,0x7, 0xac,0xbf,0x49,0x35,0x6, 0x22,0x9d,0x32,0x12, +0x0, 0x2e,0x7d,0x3, 0x2d,0x6, 0xe5,0x29,0xa, 0x1b,0x9, 0xa1,0xb, 0x7, 0xbe,0xa0, +0x0, 0x28,0x17,0x7e,0x71,0x29,0x74,0x2, 0xac,0x7b,0x59,0x3, 0xa, 0xfd,0x2e,0x14, +0xb, 0x7, 0x7c,0xba,0x14,0x7a,0x19,0xb0,0xe1,0xe5,0x7e,0xa1,0x29,0x74,0x2, 0xa4, +0x49,0x15,0xa, 0xfd,0xbe,0x14,0x0, 0x64,0x28,0x8, 0xbe,0x4, 0x0, 0x64,0x28,0x2, +0x80,0x72,0x7d,0x41,0x2e,0x44,0x0, 0x32,0xbd,0x40,0x50,0x8, 0xbe,0x14,0x0, 0x32, +0x28,0x2, 0x80,0x60,0x7e,0x17,0x2, 0xf3,0xbd,0x10,0x50,0x52,0x12,0x4f,0x96,0x70, +0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0x19,0xb1,0x6, 0x45,0x7e,0xa0,0x3, 0xe5,0x28, +0xa, 0x1b,0x19,0xa1,0x6, 0x4a,0x7e,0x70,0x7, 0xac,0x7f,0x2e,0x34,0x6, 0x22,0x7e, +0x14,0xc, 0x40,0x74,0x7, 0x12,0x1, 0x39,0xbe,0xe0,0x0, 0x28,0x21,0x1b,0xe0,0x7e, +0x70,0x7, 0xac,0x7e,0x2e,0x34,0x6, 0x22,0x7e,0x30,0x7, 0xac,0x3f,0x12,0x4f,0x56, +0x7e,0x34,0xc, 0x40,0x7e,0x30,0x7, 0xac,0x3e,0x12,0x4f,0x56,0x1b,0xf0,0x7e,0xa1, +0x29,0x74,0x2, 0xa4,0x59,0x5, 0xa, 0xfd,0x80,0xb, 0x5, 0x27,0xe5,0x27,0xbe,0xb0, +0x5, 0x50,0x2, 0xc1,0xe7,0xb, 0xf0,0x7e,0x73,0x6, 0x63,0xbc,0x7f,0x28,0x2, 0xc1, +0xc9,0x7a,0xe3,0x6, 0x63,0x7e,0x24,0x6, 0x22,0x7e,0x34,0xa, 0xda,0x12,0x1e,0x51, +0xda,0x3b,0x22,0x6c,0xaa,0x7e,0x30,0x4, 0xac,0x3a,0x7d,0xf1,0x2e,0xf4,0x2, 0xb9, +0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x20,0xbd,0x23,0x38,0xf, 0x2e,0x14,0x2, 0xbb,0x7e, +0x4, 0x0, 0xff,0xb, 0xa, 0x20,0xbd,0x23,0x50,0x7, 0xb, 0xa0,0xbe,0xa0,0x2, 0x40, +0xd4,0x7c,0xba,0x22,0xca,0x79,0x6c,0x99,0x80,0x63,0x7e,0xf0,0x7, 0xac,0xf9,0x49, +0xc7,0x3, 0x5e,0xbe,0xc4,0x5, 0xa, 0x40,0x44,0x49,0xd7,0x3, 0x5c,0x7d,0x3d,0x12, +0x40,0x3, 0x7c,0x8b,0xbe,0x80,0x2, 0x40,0xe, 0x7e,0xd4,0x4, 0xff,0x74,0x7, 0xac, +0xb9,0x59,0xd5,0x3, 0x5e,0x80,0x3e,0x7e,0x70,0x2, 0xac,0x78,0x2e,0x34,0x2, 0xcd, +0x7e,0x24,0x0, 0xff,0xb, 0x1a,0xd0,0x74,0x7, 0xac,0xb9,0x59,0xd5,0x3, 0x5c,0x7e, +0x34,0x5, 0x50,0x74,0x7, 0xac,0xb9,0x59,0x35,0x3, 0x5e,0x80,0xe, 0xbe,0xc4,0x5, +0x0, 0x40,0x8, 0x7e,0x54,0x4, 0xff,0x59,0x57,0x3, 0x5e,0xb, 0x90,0x7e,0x73,0x3, +0xa4,0xbc,0x79,0x38,0x95,0xda,0x79,0x22,0x6c,0xaa,0xa, 0x3a,0x9, 0xb3,0x3, 0xde, +0xa, 0x4a,0x19,0xb4,0x3, 0x0, 0x9, 0xb3,0x3, 0xff,0x19,0xb4,0x3, 0x15,0x2e,0x34, +0x0, 0x6, 0x12,0x9, 0xde,0x19,0xb4,0x3, 0x2a,0xb, 0xa0,0xbe,0xa0,0x15,0x78,0xda, +0x74,0x2, 0x7a,0xb3,0x2, 0xfc,0x7e,0xb3,0x4, 0x29,0xb4,0x1, 0x4, 0x74,0x3f,0x80, +0x2, 0x74,0x7f,0x7a,0xb3,0x2, 0xf8,0x7e,0x34,0x1, 0x2c,0x7a,0x37,0x3, 0x55,0x74, +0xc8,0x7a,0xb3,0x2, 0xfe,0xe4,0x7a,0xb3,0x2, 0xff,0x74,0xeb,0x7a,0xb3,0x2, 0xfa, +0x7e,0xb3,0x4, 0x24,0x12,0x7, 0x7f,0x74,0x5d,0x7a,0xb3,0x2, 0xfb,0x7e,0x73,0x3, +0xb9,0x7a,0x73,0x2, 0xfd,0x7e,0x24,0x3, 0xc9,0x7e,0x34,0x3, 0x3f,0x12,0x44,0xd3, +0x74,0xc8,0x7a,0xb3,0x3, 0x57,0x22,0xca,0x3b,0x7c,0xdb,0x6c,0xcc,0x12,0x44,0x99, +0x78,0x3e,0x7e,0x27,0x1, 0xab,0xbe,0x24,0x0, 0x1, 0x78,0x2, 0x61,0x58,0x7e,0x24, +0x0, 0x1, 0x7a,0x27,0x1, 0xab,0x7e,0xb3,0x1, 0xe8,0x60,0x10,0x74,0x2, 0x7a,0xb3, +0x1, 0xe6,0x7e,0x53,0x1, 0xe8,0x7a,0x53,0x1, 0xb6,0x80,0x6, 0x74,0x1, 0x7a,0xb3, +0x1, 0xe6,0xe4,0x7a,0xb3,0x1, 0xb5,0x7a,0xb3,0x1, 0xec,0x12,0x44,0xab,0x61,0x58, +0xbe,0x34,0x0, 0x2, 0x78,0x56,0x7e,0x27,0x1, 0xab,0xbe,0x24,0x0, 0x2, 0x68,0x36, +0x7e,0x24,0x0, 0x2, 0x7a,0x27,0x1, 0xab,0x74,0x7, 0x7a,0xb3,0x1, 0xe6,0xe4,0x7a, +0xb3,0x1, 0xec,0x12,0x44,0xcb,0x7a,0xb3,0x1, 0xed,0x12,0x44,0xab,0x6c,0xff,0x6d, +0x22,0x74,0x2, 0xac,0xbf,0x59,0x25,0x1, 0xc5,0xa, 0x2f,0x19,0xf2,0x1, 0xb5,0xb, +0xf0,0xbe,0xf0,0x7, 0x78,0xe9,0x7e,0x53,0x1, 0xe7,0xbe,0x53,0x1, 0xef,0x28,0x2, +0x61,0x58,0x7e,0x24,0x0, 0x3, 0x7a,0x27,0x1, 0xa9,0x61,0x58,0xbe,0x34,0x0, 0x3, +0x68,0x2, 0x61,0x40,0x7e,0x37,0x1, 0xab,0xbe,0x34,0x0, 0x3, 0x78,0x2, 0x61,0x58, +0x7e,0x34,0x7f,0xff,0x7e,0xe0,0xff,0x6d,0x22,0x7a,0x25,0x27,0x6c,0xff,0x80,0x17, +0xa, 0x1f,0x9, 0xa1,0x1, 0xb5,0x74,0x2, 0xa4,0x49,0x25,0x1, 0xc5,0xbe,0x25,0x27, +0x28,0x3, 0x7a,0x25,0x27,0xb, 0xf0,0x7e,0xa3,0x1, 0xe6,0xbc,0xaf,0x38,0xe1,0x6c, +0xff,0x80,0x44,0x7e,0x44,0x0, 0x1, 0x7c,0xbf,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb, +0x7e,0xb3,0x1, 0xee,0xa, 0x2b,0x5d,0x24,0x78,0x2b,0xa, 0x4f,0x9, 0x54,0x1, 0xb5, +0x7e,0x30,0x2, 0xac,0x35,0x49,0x11,0x1, 0xc5,0xbd,0x13,0x50,0x18,0x7c,0xe5,0x7e, +0x70,0x2, 0xac,0x7e,0x49,0x33,0x1, 0xc5,0x7e,0x43,0x1, 0xe7,0x7e,0x50,0x14,0xac, +0x45,0xbd,0x23,0x38,0x6, 0xb, 0xf0,0xbc,0xaf,0x38,0xb8,0xbe,0xe0,0xff,0x78,0x2, +0x61,0x2e,0x7e,0xa3,0x1, 0xe8,0xbc,0xae,0x78,0x2, 0x61,0x2e,0x7e,0x35,0x27,0xbe, +0x34,0x0, 0x64,0x38,0x2, 0x61,0x2e,0x74,0x2, 0xa4,0x49,0x25,0x1, 0xc5,0x74,0x2, +0xac,0xbe,0x49,0x35,0x1, 0xc5,0x9d,0x32,0x12,0x0, 0x2e,0x7e,0xa3,0x1, 0xe8,0x74, +0x2, 0xa4,0x49,0x25,0x1, 0xc5,0x1e,0x24,0xbd,0x32,0x38,0x2, 0x61,0x2e,0x4c,0xdd, +0x68,0x2, 0x61,0x2b,0x7e,0x34,0x0, 0x4, 0x7a,0x37,0x1, 0xa9,0xa, 0x3e,0x9, 0x53, +0x1, 0xad,0x7a,0x53,0x4, 0x24,0x9, 0x53,0x1, 0xdd,0x7a,0x53,0x4, 0x29,0x7a,0x53, +0xb, 0x18,0x7e,0x53,0x4, 0x24,0x7a,0x53,0xb, 0x16,0x9, 0x73,0x1, 0xbd,0x7a,0x73, +0xb, 0x1a,0x7a,0xe3,0x1, 0xe8,0xa, 0x3e,0x9, 0xe3,0x1, 0xd5,0x6c,0xff,0xa, 0x3f, +0x2e,0x34,0x3, 0xde,0x7e,0x39,0x50,0x9e,0x53,0x4, 0x27,0x7a,0x39,0x50,0x7e,0x39, +0xb0,0x2c,0xbe,0x7a,0x39,0xb0,0xb, 0xf0,0xbe,0xf0,0x15,0x78,0xe1,0x7a,0xe3,0x4, +0x27,0x7a,0xe3,0xb, 0x19,0x12,0x44,0xe5,0x12,0x14,0x1e,0x60,0xfb,0x12,0x15,0xfb, +0x12,0x17,0xb5,0x12,0x17,0x16,0x12,0xe, 0xa9,0x12,0xf, 0x92,0x12,0xf, 0xb8,0x7e, +0x34,0x0, 0x3, 0x7a,0x37,0x1, 0xab,0x74,0x1, 0x81,0x8d,0x7e,0xc0,0x1, 0x4c,0xcc, +0x78,0x26,0x12,0x44,0xa2,0x68,0x3, 0x12,0x44,0x90,0x7e,0x34,0x0, 0x3, 0x80,0x14, +0x12,0x44,0xa2,0x78,0x13,0x7e,0x37,0x1, 0xab,0xbe,0x34,0x0, 0x4, 0x68,0x9, 0x12, +0x44,0x90,0x6d,0x33,0x7a,0x37,0x1, 0xab,0x12,0x44,0xee,0x12,0x15,0xfb,0x12,0x17, +0x16,0x12,0xe, 0xa9,0x12,0xf, 0x86,0xe4,0x7a,0xb3,0xa, 0xd3,0x74,0x1, 0x7a,0xb3, +0xa, 0xd2,0x12,0xf, 0x95,0x12,0x11,0xa8,0x7e,0x34,0x1, 0xa9,0x7e,0x24,0x6, 0x8a, +0x7e,0x14,0xa, 0xa7,0x12,0x45,0x43,0x74,0x1, 0x7a,0xb3,0xa, 0xd3,0xe4,0x7a,0xb3, +0xa, 0xd2,0x12,0x44,0x99,0x78,0x53,0x7e,0x53,0x1, 0xec,0xa, 0x25,0x9, 0x52,0x1, +0xb5,0xbe,0x53,0x1, 0xe8,0x68,0x2, 0x81,0x8c,0x7e,0xb3,0xc, 0xb1,0xbe,0xb0,0xc8, +0x50,0x16,0x4, 0x7a,0xb3,0xc, 0xb1,0x7e,0x27,0x1, 0xf0,0xbe,0x24,0x0, 0x78,0x28, +0x10,0x7e,0xb3,0xc, 0xb0,0x4, 0x80,0x5, 0xe4,0x7a,0xb3,0xc, 0xb1,0x7a,0xb3,0xc, +0xb0,0x7e,0x53,0xc, 0xb0,0xbe,0x50,0x3, 0x50,0x2, 0x81,0x8c,0x7e,0x24,0x0, 0x2, +0x7a,0x27,0x1, 0xa9,0xe4,0x12,0x44,0xdc,0x81,0x8c,0xbe,0x34,0x0, 0x2, 0x68,0xe, +0xbe,0x34,0x0, 0x6, 0x68,0x8, 0xbe,0x34,0x0, 0x5, 0x68,0x2, 0x81,0x8c,0x7e,0xb3, +0x1, 0xef,0xbe,0xb3,0x1, 0xed,0x28,0x2, 0x81,0x8c,0xbe,0xd0,0x0, 0x28,0x7d,0x7e, +0xa3,0x1, 0xe7,0xbe,0xa3,0x1, 0xef,0x28,0x13,0xbe,0xb3,0x1, 0xed,0x50,0xd, 0x4, +0x7a,0xb3,0x1, 0xef,0x7e,0x73,0x1, 0xef,0x7a,0x73,0x1, 0xed,0x7e,0x63,0x1, 0xec, +0xa, 0x26,0x9, 0x72,0x1, 0xb5,0x4c,0x77,0x68,0x24,0xbe,0x73,0x1, 0xe8,0x68,0x1e, +0x7e,0x27,0x1, 0xf0,0xbe,0x24,0x1, 0x2c,0x28,0x14,0x7e,0x70,0x1, 0x7c,0xb6,0x60, +0x5, 0x3e,0x70,0x14,0x78,0xfb,0x4e,0x73,0x1, 0xee,0x7a,0x73,0x1, 0xee,0x7e,0x73, +0x1, 0xec,0xa, 0x27,0x9, 0xa2,0x1, 0xb5,0x74,0x2, 0xa4,0x49,0x45,0x1, 0xc5,0x2e, +0x47,0x1, 0xf0,0xbe,0x44,0x7f,0xff,0x50,0xb, 0x7d,0x35,0x2e,0x34,0x1, 0xc5,0x1b, +0x38,0x40,0x80,0x8, 0x7e,0x34,0x7f,0xff,0x59,0x35,0x1, 0xc5,0xe4,0xda,0x3b,0x22, +0x7e,0x34,0x0, 0x1, 0x7a,0x37,0x1, 0xa9,0x22,0x7e,0x37,0x1, 0xa9,0xbe,0x34,0x0, +0x1, 0x22,0x7e,0x37,0x1, 0xa9,0xbe,0x34,0x0, 0x4, 0x22,0x7a,0xb3,0x1, 0xe9,0x7a, +0xb3,0x1, 0xea,0x7a,0xb3,0x2, 0xb7,0x7a,0xb3,0x2, 0xb8,0x74,0x1, 0x7a,0xb3,0x2, +0xb9,0xe4,0x7a,0xb3,0x1, 0xee,0x7a,0xb3,0x1, 0xef,0x22,0x74,0x2, 0x7a,0xb3,0x1, +0xe7,0xe4,0x22,0x7e,0x33,0x3, 0xb9,0xa, 0x13,0x2, 0x3, 0x6e,0x7a,0xb3,0xc, 0xb1, +0x7a,0xb3,0xc, 0xb0,0x22,0x7e,0x73,0xb, 0x1a,0x7a,0x73,0x4, 0x28,0x22,0xca,0x79, +0x6c,0xee,0x7e,0xf1,0xcc,0x80,0xa, 0x4c,0xee,0x78,0x3, 0x7e,0xe0,0x1, 0x43,0x87, +0x1, 0x12,0x14,0x1e,0x60,0xf1,0x7a,0xf1,0xcc,0xda,0x79,0x22,0x7d,0x23,0x74,0x30, +0x7a,0xb3,0xb, 0x2d,0x74,0xf8,0x7a,0xb3,0xb, 0x2e,0x2e,0x24,0x3, 0xf0,0x6d,0x11, +0x6d,0x55,0x7d,0x1, 0x3e,0x4, 0x2d,0x3, 0x1b,0x8, 0x50,0x74,0xff,0x7d,0x1, 0x1e, +0x4, 0x1e,0x4, 0x1e,0x4, 0x2d,0x2, 0x7a,0x9, 0xb0,0xb, 0x14,0xbe,0x14,0x0, 0xfc, +0x40,0xde,0x22,0xca,0x3b,0x7d,0x61,0x7d,0x73,0x7e,0x34,0xd8,0xf0,0x7a,0x35,0x29, +0x7e,0x34,0x27,0x10,0x7a,0x35,0x2b,0x6d,0x33,0x7a,0x35,0x2d,0x9, 0xb7,0x0, 0xd9, +0xf5,0x35,0x9, 0x77,0x0, 0x43,0x2d,0x37,0x9, 0xb3,0x0, 0xc, 0xf5,0x36,0x7d,0x32, +0x2e,0x34,0x1, 0xf8,0x7a,0x37,0xc, 0x40,0x7d,0x37,0x2e,0x34,0x0, 0x49,0x7a,0x37, +0xc, 0x42,0x49,0x32,0x4, 0x11,0x7a,0x37,0xc, 0x44,0x75,0x31,0x0, 0xc1,0x35,0xe5, +0x31,0xa, 0x2b,0x3e,0x24,0x7e,0x34,0x0, 0xc, 0xad,0x32,0x7a,0x35,0x33,0x75,0x32, +0x0, 0xc1,0x26,0xe5,0x32,0xa, 0x3b,0x2e,0x35,0x33,0x3e,0x34,0x2e,0x37,0xc, 0x40, +0x49,0x23,0x0, 0x18,0xb, 0x38,0x30,0x9d,0x32,0x7a,0x35,0x2f,0x7e,0x35,0x29,0xbe, +0x35,0x2f,0x58,0x6, 0x7e,0x35,0x2f,0x7a,0x35,0x29,0x7e,0x35,0x2b,0xbe,0x35,0x2f, +0x8, 0x6, 0x7e,0x35,0x2f,0x7a,0x35,0x2b,0x7e,0x35,0x2f,0x12,0x0, 0x2e,0xbe,0x35, +0x2d,0x28,0x9, 0x7e,0x35,0x2f,0x12,0x0, 0x2e,0x7a,0x35,0x2d,0xe5,0x36,0x70,0x34, +0x7e,0x11,0x35,0x74,0xc, 0xac,0x1b,0xe5,0x32,0xa, 0x1b,0x2d,0x1, 0x3e,0x4, 0x2e, +0x7, 0xc, 0x44,0xb, 0x8, 0x30,0xe5,0x32,0xa, 0x2b,0x2e,0x25,0x33,0x12,0x27,0x23, +0x2d,0x23,0x7e,0x71,0x31,0x74,0xc, 0xac,0x7b,0x2d,0x31,0x3e,0x34,0x2e,0x37,0xc, +0x42,0x1b,0x38,0x20,0x5, 0x32,0x9, 0x76,0x0, 0x1, 0xbe,0x71,0x32,0x28,0x2, 0xa1, +0xa3,0x5, 0x35,0x5, 0x31,0x9, 0x77,0x1, 0xc, 0xbe,0x71,0x31,0x28,0x2, 0xa1,0x8f, +0xb, 0x78,0x30,0xbe,0x34,0x0, 0x1, 0x78,0x8, 0x7e,0x35,0x29,0x9e,0x35,0x2b,0x80, +0x3, 0x7e,0x35,0x2d,0x59,0x37,0x0, 0x47,0xe5,0x36,0x70,0x24,0x74,0x1, 0x19,0xb7, +0x1, 0xe, 0xe4,0x19,0xb7,0x1, 0xf, 0x9, 0x77,0x0, 0xd9,0xa, 0x37,0x9, 0x57,0x1, +0xc, 0xa, 0x25,0x2d,0x23,0x7e,0x69,0x70,0xbd,0x23,0x40,0xd, 0x74,0x1, 0x80,0x5, +0xe4,0x19,0xb7,0x1, 0xe, 0x19,0xb7,0x1, 0xf, 0xda,0x3b,0x22,0xca,0x3b,0x7e,0xf3, +0x0, 0x7f,0x6c,0xee,0x80,0x44,0x74,0x2, 0xac,0xbe,0x9, 0xb5,0x0, 0x3f,0xf5,0x27, +0x7e,0xd0,0x1, 0x6c,0xcc,0x80,0x2d,0xbc,0xce,0x68,0x27,0x74,0x2, 0xac,0xbc,0x9, +0x75,0x0, 0x3f,0x7a,0x71,0x28,0xa, 0x27,0xe5,0x27,0xa, 0x3b,0x9d,0x32,0x12,0x0, +0x2e,0xbe,0x34,0x0, 0x2, 0x18,0x2, 0xb, 0xd0,0xbe,0xd0,0x2, 0x40,0x4, 0x74,0x1, +0x80,0xd, 0xb, 0xc0,0xbc,0xfc,0x38,0xcf,0xb, 0xe0,0xbc,0xfe,0x38,0xb8,0xe4,0xda, +0x3b,0x22,0x6c,0xaa,0xa, 0x3a,0x2e,0x34,0x3, 0xa2,0x12,0x9, 0xde,0xa, 0x3b,0xb, +0x34,0x80,0x14,0x6d,0x44,0x7e,0x30,0x2, 0xac,0x3a,0x7e,0x50,0x18,0xac,0x57,0x2d, +0x21,0x59,0x42,0x8, 0x82,0xb, 0x70,0xbe,0x70,0x15,0x40,0xe7,0xb, 0xa0,0xbe,0xa0, +0xc, 0x40,0xd1,0x22,0xca,0x3b,0x7e,0x74,0x3, 0xb9,0x6d,0x66,0x12,0x8, 0xc1,0x7a, +0x79,0xb0,0xb, 0x74,0xb, 0x64,0xbe,0x64,0x2, 0x69,0x40,0xf0,0xda,0x3b,0x22,0x74, +0x14,0x7a,0xb3,0xb, 0xc, 0x74,0x3c,0x7a,0xb3,0xb, 0xd, 0xe4,0x7a,0xb3,0xb, 0xf, +0x74,0x6, 0x7a,0xb3,0xb, 0x10,0x74,0xa0,0x7a,0xb3,0xb, 0x11,0x74,0x1, 0x7a,0xb3, +0xb, 0x12,0x74,0xa, 0x7a,0xb3,0xb, 0x13,0x74,0x8, 0x7a,0xb3,0xb, 0x14,0x74,0x14, +0x7a,0xb3,0xb, 0x15,0x12,0x4f,0x3e,0x74,0xa, 0x7a,0xb3,0xb, 0x2f,0x74,0x1, 0x7a, +0xb3,0xb, 0x30,0xe4,0x7a,0xb3,0xb, 0x31,0x74,0xf, 0x7a,0xb3,0xb, 0x32,0x12,0x1f, +0xa6,0x74,0x79,0x7a,0xb3,0xb, 0x34,0xe4,0x7a,0xb3,0xb, 0x35,0x7a,0xb3,0xb, 0x36, +0x74,0x1, 0x7a,0xb3,0xb, 0x3b,0x74,0xc8,0x7a,0xb3,0xb, 0x3a,0xe4,0x7a,0xb3,0xb, +0x3e,0x74,0x64,0x7a,0xb3,0xb, 0x3f,0x74,0x32,0x7a,0xb3,0xb, 0x40,0x6d,0x33,0x7a, +0x37,0x2, 0xba,0x74,0x1, 0x7a,0xb3,0x2, 0xbc,0xe4,0x7a,0xb3,0x2, 0xc3,0x74,0xc, +0x7a,0xb3,0x2, 0xbe,0x74,0x8, 0x7a,0xb3,0x2, 0xbf,0x74,0x14,0x7a,0xb3,0x2, 0xc0, +0x74,0x14,0x7a,0xb3,0x2, 0xc1,0x74,0xa, 0x7a,0xb3,0x2, 0xc2,0x74,0x1, 0x7a,0xb3, +0x2, 0xc4,0x7e,0x34,0x0, 0x50,0x7a,0x37,0x6, 0x67,0x74,0x14,0x7a,0xb3,0x6, 0x69, +0x7e,0x34,0x0, 0x3c,0x7a,0x37,0x6, 0x6a,0xe4,0x7a,0xb3,0x6, 0x89,0x74,0x3, 0x7a, +0xb3,0x6, 0x7c,0x74,0x3, 0x7a,0xb3,0x6, 0x7d,0xe4,0x7a,0xb3,0x6, 0x81,0x74,0x14, +0x7a,0xb3,0x6, 0x82,0xe4,0x7a,0xb3,0x6, 0x7e,0x7a,0xb3,0x6, 0x76,0x74,0x3, 0x7a, +0xb3,0x6, 0x77,0xe4,0x7a,0xb3,0x6, 0x78,0x74,0x4, 0x7a,0xb3,0x6, 0x79,0x7e,0x34, +0x0, 0x64,0x7a,0x37,0x6, 0x7a,0x7a,0x37,0x6, 0x72,0x74,0x32,0x7a,0xb3,0x6, 0x74, +0x74,0x5, 0x7a,0xb3,0x2, 0xef,0x7e,0x34,0xa, 0x0, 0x7a,0x37,0x2, 0xf0,0x74,0xa0, +0x7a,0xb3,0x2, 0xf2,0x7e,0x34,0x0, 0xc8,0x7a,0x37,0x2, 0xf3,0xe4,0x7a,0xb3,0x2, +0xf5,0x7a,0xb3,0xb, 0x17,0x7e,0x73,0x4, 0x24,0x7a,0x73,0xb, 0x16,0x7e,0x73,0x4, +0x27,0x7a,0x73,0xb, 0x19,0x7e,0x73,0x4, 0x28,0x7a,0x73,0xb, 0x1a,0x7a,0xb3,0xb, +0x1b,0x7e,0x73,0x4, 0x29,0x7a,0x73,0xb, 0x18,0x22,0x7e,0x24,0xb, 0xc, 0x7e,0xb3, +0xb, 0x8c,0x20,0xe0,0x2, 0x21,0x8a,0x54,0xfe,0x7a,0xb3,0xb, 0x8c,0x7e,0x29,0x70, +0xbe,0x73,0x6, 0x69,0x68,0xe, 0x7a,0x73,0x6, 0x69,0xa, 0x37,0x3e,0x34,0x3e,0x34, +0x7a,0x37,0x6, 0x67,0x9, 0x72,0x0, 0x1, 0xa, 0x37,0xbe,0x37,0x6, 0x6a,0x68,0x4, +0x7a,0x37,0x6, 0x6a,0x9, 0x72,0x0, 0x5, 0xbe,0x73,0x2, 0xf2,0x68,0xb, 0x7a,0x73, +0x2, 0xf2,0x12,0x1f,0x6, 0x7a,0x37,0x2, 0xf0,0x9, 0x72,0x0, 0x2e,0xa, 0x37,0xbe, +0x37,0x2, 0xf3,0x68,0x4, 0x7a,0x37,0x2, 0xf3,0x9, 0x72,0x0, 0x25,0xa, 0x37,0xbe, +0x37,0x2, 0xba,0x68,0x4, 0x7a,0x37,0x2, 0xba,0x9, 0x72,0x0, 0x6, 0xbe,0x73,0x2, +0xbc,0x68,0x4, 0x7a,0x73,0x2, 0xbc,0x9, 0x72,0x0, 0x8, 0xbe,0x73,0x2, 0xbf,0x68, +0x1f,0x7a,0x73,0x2, 0xbf,0xbe,0x70,0xf, 0x40,0x5, 0xe4,0x19,0xb2,0x0, 0x8, 0x9, +0x72,0x0, 0x8, 0xa, 0x37,0x2e,0x34,0x3, 0x85,0x12,0x9, 0xde,0x7a,0xb3,0x2, 0xbe, +0x9, 0x72,0x0, 0x9, 0xbe,0x73,0x2, 0xc1,0x68,0x8, 0x7a,0x73,0x2, 0xc1,0x7a,0x73, +0x2, 0xc0,0x9, 0x72,0x0, 0x7, 0xbe,0x73,0x2, 0xc2,0x68,0x4, 0x7a,0x73,0x2, 0xc2, +0x9, 0x72,0x0, 0x24,0xbe,0x73,0x2, 0xc4,0x68,0x4, 0x7a,0x73,0x2, 0xc4,0x9, 0x72, +0x0, 0x32,0xbe,0x73,0x2, 0xf5,0x68,0x4, 0x7a,0x73,0x2, 0xf5,0x9, 0x72,0x0, 0x33, +0xa, 0x37,0xbe,0x37,0x6, 0x72,0x68,0x4, 0x7a,0x37,0x6, 0x72,0x9, 0x72,0x0, 0x34, +0xbe,0x73,0x6, 0x74,0x68,0x4, 0x7a,0x73,0x6, 0x74,0x22,0xca,0x7b,0xca,0x6b,0xca, +0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xe5, +0xcc,0xb4,0x2, 0x3, 0x75,0xcc,0x0, 0x12,0x5, 0xa7,0x30,0x90,0x2, 0xc2,0x90,0x30, +0x91,0x2, 0xc2,0x91,0x74,0x1, 0x7a,0xb3,0xb, 0xe0,0xd0,0x82,0xd0,0x83,0xd0,0xd0, +0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0xca, +0xb8,0xa9,0xc0,0x93,0xe4,0x7a,0xb3,0xb, 0xdf,0x12,0x49,0xdf,0xda,0xb8,0x32,0x7a, +0xb3,0xb, 0xe1,0x7a,0xb3,0xb, 0xe0,0x22,0x70,0x3, 0x43,0x87,0x1, 0xb4,0x1, 0x3, +0x43,0x87,0x2, 0xb4,0x2, 0x3, 0x43,0x87,0x2, 0x22,0xc2,0xec,0x32,0xa9,0xc6,0xdb, +0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0, +0xd0,0xc0,0x83,0xc0,0x82,0x12,0x19,0x8f,0x7e,0xb3,0xb, 0xe7,0x54,0xfd,0x7a,0xb3, +0xb, 0xe7,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b, +0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x75,0xcb,0xc0,0x75,0xc8,0xb8,0x14,0x68,0xa, +0x14,0x68,0xc, 0xb, 0xb1,0x75,0xcc,0x0, 0x80,0x8, 0x75,0xcc,0x2, 0x80,0x3, 0x75, +0xcc,0x1, 0x0, 0x0, 0x0, 0x0, 0x22,0xa9,0xc6,0xeb,0xa9,0xd6,0xac,0xa9,0xd6,0xec, +0xd2,0x86,0x22,0x75,0x9a,0xe8,0xa9,0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0xca, +0x79,0x6c,0xff,0xa, 0x2f,0x2e,0x24,0x3, 0x0, 0x12,0x4a,0xe2,0xb, 0xf0,0xbe,0xf0, +0x15,0x78,0xf0,0x7e,0x34,0x1, 0xa9,0x7e,0x24,0xa, 0xa7,0x7e,0x14,0x2, 0xf8,0x12, +0x2e,0x2f,0x7e,0x73,0x1, 0xec,0xa, 0x37,0x9, 0xe3,0x1, 0xb5,0xa, 0x3e,0x9, 0xb3, +0x1, 0xad,0x12,0x7, 0x7f,0x53,0xdb,0xf0,0x74,0xe, 0x7e,0x70,0x2, 0x12,0x16,0x4, +0xa, 0x3e,0x9, 0xb3,0x1, 0xdd,0xb4,0x1, 0x4, 0x74,0x3f,0x80,0x2, 0x74,0x7f,0x7a, +0xb3,0x2, 0xf8,0x12,0xe, 0xac,0x6c,0xff,0xa, 0x2f,0x2e,0x24,0x3, 0x0, 0x7e,0x29, +0x70,0x2e,0x73,0x4, 0x27,0x7a,0x29,0x70,0xb, 0xf0,0xbe,0xf0,0x15,0x40,0xe9,0xda, +0x79,0x22,0x7e,0x29,0x70,0x9e,0x73,0x4, 0x27,0x7a,0x29,0x70,0x22,0xca,0x3b,0x7d, +0x2, 0x9, 0xb0,0x4, 0x13,0x7c,0xab,0x9, 0x51,0x0, 0x15,0x9, 0x41,0x0, 0x16,0x70, +0x2, 0x81,0x1d,0xb4,0x4, 0x6, 0x3e,0x50,0x3e,0x50,0x3e,0x50,0x7d,0x40,0x7d,0x10, +0x2e,0x14,0x1, 0xf8,0x2e,0x4, 0x3, 0xf0,0x6c,0xff,0x81,0x14,0x7e,0xd0,0xc, 0xac, +0xdf,0x7d,0xf6,0x75,0x27,0x0, 0x81,0x7, 0xbe,0xa0,0x3, 0x78,0x8, 0xa, 0xc5,0x7d, +0xdf,0x3e,0xd4,0x80,0x18,0xbe,0xa0,0x2, 0x78,0x8, 0xa, 0xc5,0x7d,0xdf,0x3e,0xd4, +0x61,0xf9,0xbe,0xa0,0x5, 0x78,0xf, 0x12,0x4c,0x20,0xb, 0xe8,0xc0,0x2d,0xd4,0xb, +0xd8,0xe0,0x2d,0xec,0x81,0x0, 0xbe,0xa0,0x6, 0x78,0x74,0x7d,0xef,0x5e,0xe4,0x0, +0x7, 0x2e,0xe4,0x3, 0xba,0x12,0x4c,0x29,0x7c,0xeb,0x7d,0xdf,0x1e,0xd4,0x1e,0xd4, +0x1e,0xd4,0x2d,0xd0,0x7e,0xd9,0xb0,0x5c,0xbe,0x68,0x3b,0x7d,0xcf,0x3e,0xc4,0x7d, +0xdc,0x2d,0xd1,0xb, 0xd8,0xb0,0xa, 0xd4,0xbd,0xbd,0x8, 0x10,0xa, 0x95,0x7d,0xac, +0x2d,0xa4,0xb, 0xa8,0xd0,0x2d,0xd9,0x1b,0xa8,0xd0,0x80,0x67,0xa, 0xd4,0x6e,0xd4, +0xff,0xff,0xb, 0xd4,0xbd,0xbd,0x58,0x5b,0xa, 0xb5,0x2d,0xc4,0xb, 0xc8,0xd0,0x9d, +0xdb,0x1b,0xc8,0xd0,0x80,0x4d,0x12,0x4c,0x29,0x7c,0xeb,0x7d,0xef,0x1e,0xe4,0x1e, +0xe4,0x1e,0xe4,0x2d,0xe0,0x7e,0xe9,0xb0,0x4c,0xbe,0x7a,0xe9,0xb0,0x80,0x34,0x12, +0x4c,0x20,0xb, 0xe8,0xc0,0xa, 0xe4,0xbd,0xce,0x8, 0x10,0xa, 0xa5,0x7d,0xbd,0x2d, +0xb4,0xb, 0xb8,0xe0,0x2d,0xea,0x1b,0xb8,0xe0,0x80,0x18,0xa, 0xe4,0x6e,0xe4,0xff, +0xff,0xb, 0xe4,0xbd,0xce,0x58,0xc, 0xa, 0xc5,0x2d,0xd4,0xb, 0xd8,0xe0,0x9d,0xec, +0x1b,0xd8,0xe0,0xb, 0xf4,0x5, 0x27,0x9, 0xb3,0x0, 0x1, 0xbe,0xb1,0x27,0x28,0x2, +0x61,0x28,0xb, 0xf0,0x7e,0x39,0xb0,0xbc,0xbf,0x28,0x2, 0x61,0x1c,0xda,0x3b,0x22, +0x7d,0xdf,0x3e,0xd4,0x7d,0xed,0x2d,0xe1,0x22,0x7d,0x6e,0x7a,0xd1,0x82,0x7a,0xc1, +0x83,0xe4,0x93,0x22,0xca,0x3b,0x7d,0x42,0x7d,0xf3,0x49,0x21,0x0, 0xb, 0x6d,0x33, +0x2e,0xf4,0x1, 0xf8,0x7d,0x5f,0xf5,0xb9,0xa, 0x5a,0xf5,0xba,0x75,0xbb,0xf, 0x75, +0xbc,0x5, 0x7e,0xf4,0xc, 0x40,0x7d,0x5f,0xf5,0xbd,0xa, 0x5a,0xf5,0xc1,0x75,0xc3, +0x0, 0x9, 0xa4,0x0, 0x2f,0x7c,0xba,0xc4,0x33,0x54,0xe0,0x7c,0xab,0x9, 0xb4,0x0, +0x1, 0x4c,0xba,0xf5,0xc3,0x7e,0x49,0xb0,0xf5,0xc4,0x75,0xc5,0x40,0x75,0xc5,0x1, +0x49,0x41,0x0, 0x3, 0x7c,0xb9,0xf5,0xc6,0x1a,0x58,0xf5,0xc6,0x6e,0x44,0xff,0xff, +0xb, 0x44,0x7d,0x54,0x5e,0x54,0x0, 0xff,0xf5,0xc6,0x1a,0x58,0x5e,0x54,0x0, 0xff, +0xf5,0xc6,0x7c,0xb5,0xf5,0xc6,0xa, 0x54,0xf5,0xc6,0x75,0xc2,0x9, 0x80,0x7, 0x43, +0xc2,0x1, 0x0, 0x0, 0x0, 0x0, 0xe5,0xc2,0x30,0xe7,0xf4,0x75,0xc2,0x0, 0x75,0xc5, +0xc, 0x7e,0x51,0xc6,0x7e,0xa1,0xc6,0x6c,0x44,0x80,0x29,0x7e,0xf0,0x2, 0xac,0xf4, +0x49,0x47,0xc, 0x40,0x7d,0x64,0xa, 0x6c,0x7c,0xbd,0x3e,0xb0,0x7d,0xf7,0x2d,0xf0, +0x7a,0xf9,0xb0,0x3e,0x90,0x7e,0xf0,0x2, 0xac,0xf4,0x7d,0xf7,0x2d,0xf0,0x19,0x9f, +0x0, 0x1, 0xb, 0x40,0xbc,0x54,0x38,0xd3,0x6c,0x44,0x80,0x27,0x7e,0x90,0x2, 0xac, +0x94,0x49,0xf4,0xc, 0x5e,0x7d,0x7f,0xa, 0x7e,0x7c,0xbf,0x3e,0xb0,0x7d,0xe4,0x2d, +0xe0,0x19,0xbe,0x1, 0x3b,0x7d,0x7f,0x7c,0xbf,0x3e,0xb0,0x2d,0x40,0x19,0xb4,0x1, +0x3c,0xb, 0x40,0xbc,0xa4,0x38,0xd5,0x19,0x50,0x0, 0x41,0x19,0xa0,0x1, 0x3a,0x12, +0x2f,0xc1,0x54,0xfe,0x7a,0x39,0xb0,0x75,0xc5,0xa, 0xe5,0xc6,0xa, 0x3b,0xe5,0xc6, +0xa, 0x2b,0x2d,0x32,0x9, 0x51,0x0, 0xd, 0xa, 0x15,0xbd,0x13,0x50,0x8, 0x12,0x2f, +0xc1,0x44,0x1, 0x7a,0x39,0xb0,0xda,0x3b,0x22,0xd2,0xc9,0xc2,0xaf,0x75,0xf1,0x0, +0x12,0x4d,0x6d,0x75,0xf5,0x3, 0xa9,0x37,0xf5,0xfc,0x2, 0x7, 0x75,0xf5,0xf2,0x75, +0xf3,0x80,0x75,0xf4,0x0, 0x22,0xd2,0x3, 0xa9,0xc1,0xdb,0xc2,0xc3,0x53,0xdb,0xbf, +0x32,0x60,0x5, 0x7e,0xa0,0xa, 0x80,0x2, 0x6c,0xaa,0xe5,0xdc,0x54,0xe0,0xa, 0x2b, +0xa, 0x3a,0x2d,0x32,0x7c,0xb7,0xf5,0xdc,0x22,0x70,0x4, 0x53,0xdb,0xbf,0x22,0x43, +0xdb,0x40,0x22,0x12,0x4e,0x70,0xf5,0xd6,0xe5,0xdb,0x30,0xe3,0xfb,0xe5,0xd6,0xf5, +0x19,0x53,0xdb,0xf3,0x7a,0x71,0xd6,0xe5,0xdb,0x30,0xe3,0xfb,0xe5,0xd6,0xf5,0x1a, +0x53,0xdb,0xf3,0x43,0xd7,0x4, 0x7e,0x35,0x19,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63, +0x6d,0x33,0x7a,0x35,0x29,0xe4,0x7e,0x35,0x29,0x2d,0x36,0x7e,0x39,0x70,0x12,0x4e, +0x85,0x7a,0x35,0x2b,0x7e,0x35,0x29,0x4d,0x33,0x78,0xa, 0x7e,0x35,0x2b,0x4e,0x34, +0x20,0x0, 0x7a,0x35,0x2b,0x7e,0x35,0x2b,0x12,0x4e,0x62,0xbe,0x34,0x0, 0xc, 0x78, +0xd4,0x7e,0x34,0x0, 0xc, 0x7a,0x35,0x29,0x74,0xc0,0x6c,0x77,0x12,0x4e,0x64,0xbe, +0x34,0x0, 0x24,0x78,0xf3,0x6d,0x33,0x7a,0x35,0x29,0x7e,0x35,0x29,0x3e,0x34,0x2d, +0x37,0x7e,0x39,0xb0,0x9, 0x73,0x0, 0x1, 0x12,0x4e,0x77,0x7a,0x35,0x2b,0x12,0x4e, +0x62,0xbe,0x34,0x0, 0x6, 0x78,0xe3,0x75,0x9d,0x0, 0x75,0x9e,0x0, 0x6d,0x33,0x7a, +0x35,0x29,0x7e,0x35,0x29,0x7d,0x23,0x2e,0x24,0x1, 0x83,0x12,0x16,0xbd,0x93,0xf5, +0x9f,0xb, 0x34,0x7a,0x35,0x29,0xbe,0x34,0x1, 0x0, 0x40,0xe6,0x75,0x9d,0x1, 0xda, +0x3b,0x22,0xa, 0x56,0x12,0x4d,0xa3,0x7e,0x35,0x29,0xb, 0x34,0x7a,0x35,0x29,0x22, +0x53,0xd7,0x3, 0x53,0xdb,0xf3,0x22,0x12,0x1f,0x6, 0x3e,0x34,0x2e,0x34,0xc0,0x0, +0xa, 0x2b,0x2d,0x32,0x22,0x7c,0xa7,0xa, 0x3b,0x12,0x1f,0x8, 0x3e,0x34,0x3e,0x34, +0x2e,0x34,0xc0,0x0, 0xa, 0x2a,0x2d,0x32,0x22,0x12,0x4e,0x70,0x44,0x80,0xf5,0xd6, +0xe5,0xdb,0x30,0xe3,0xfb,0x53,0xdb,0xf3,0x75,0xd6,0x0, 0xe5,0xdb,0x30,0xe3,0xfb, +0xe5,0xd6,0x43,0xd7,0x4, 0x22,0x6c,0x77,0x6d,0x22,0x80,0xe, 0xb, 0x70,0xa5,0xbf, +0xff,0x2, 0xb, 0x24,0xbe,0x24,0x3, 0xe8,0x68,0x3, 0x30,0x3, 0xef,0xc2,0x3, 0x53, +0xdb,0xfe,0x53,0xdb,0xfd,0xc2,0xeb,0x22,0xe4,0x7e,0x70,0x3, 0x12,0x17,0xcb,0x60, +0x3, 0x74,0x1, 0x22,0xe4,0x22,0xe4,0x6c,0x77,0x12,0x17,0xcb,0x60,0x3, 0x74,0x1, +0x22,0xe4,0x22,0x75,0xca,0x0, 0xa, 0x5b,0x3e,0x54,0xb, 0x54,0xf5,0xca,0x22,0xe4, +0x7a,0xb3,0xa, 0xd2,0x74,0x1, 0x7a,0xb3,0xa, 0xd3,0x7e,0x73,0x4, 0x24,0x7a,0x73, +0xa, 0xd4,0x22,0x74,0x1a,0x7a,0xb3,0x4, 0x24,0xe4,0x7a,0xb3,0x4, 0x27,0x74,0x2, +0x7a,0xb3,0x4, 0x28,0x74,0x2, 0x22,0xc2,0xaf,0xd2,0xc9,0xa9,0xd5,0xcb,0x75,0xfd, +0xf, 0x75,0xfe,0xf, 0x22,0x7e,0x34,0x4, 0x2a,0x7a,0x37,0xa, 0x9b,0x22,0x74,0xff, +0x7a,0xb3,0xb, 0x2c,0x22,0x7e,0x34,0x4, 0x2a,0x7e,0x24,0x1, 0xf8,0xe4,0x22,0x7e, +0x37,0xa, 0xa4,0x4d,0x33,0x22,0x2e,0x14,0x6, 0x22,0x74,0x7, 0x2, 0x1, 0x39,0x7a, +0xb3,0xa, 0xd2,0xe4,0x7a,0xb3,0xa, 0xd3,0x22,0x7a,0x37,0xb, 0xe8,0x7e,0x37,0xb, +0xe8,0x22,0x7e,0xb3,0xb, 0xdf,0x2e,0xb3,0xb, 0xea,0x22,0x7c,0xbf,0x2e,0xb3,0xb, +0xea,0x24,0xfe,0x22,0x7e,0x73,0x0, 0x7f,0x7a,0x73,0x3, 0xa4,0x22,0x7e,0x34,0x3, +0xe8,0x7a,0x37,0x4, 0x25,0x22,0xe5,0x28,0xa, 0x1b,0x9, 0xb1,0x6, 0x45,0x22,0x7e, +0x24,0x0, 0xc, 0xe4,0x2, 0x0, 0x46,0x4f,0xa7,0xb0,0x58,0xe3,0x1c,0xf, 0x79, \ No newline at end of file diff --git a/drivers/input/touchscreen/focaltech/Ft5x16_720P_Ver0x23_test_app.h b/drivers/input/touchscreen/focaltech/Ft5x16_720P_Ver0x23_test_app.h new file mode 100644 index 00000000..869eae4b --- /dev/null +++ b/drivers/input/touchscreen/focaltech/Ft5x16_720P_Ver0x23_test_app.h @@ -0,0 +1,1485 @@ +0x2, 0x2, 0x7f,0x2, 0x4f,0xa4,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x18,0x60,0x13,0x14, +0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x13,0x22,0x2, 0x4f,0x10,0x7d,0x23, +0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32,0x22,0x2, 0x5, +0x94,0x22,0x22,0x2, 0x4f,0x54,0x7d,0x13,0x80,0x7, 0x1b,0x24,0x7a,0x19,0xb0,0xb, +0x14,0x4d,0x22,0x78,0xf5,0x22,0x2, 0x6, 0xa9,0xff,0xff,0x2, 0x59,0x76,0x2, 0x6, +0xb0,0xff,0xff,0x2, 0x4f,0x9d,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, 0xb2,0xd5,0x6e, +0x24,0xff,0xff,0xb, 0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e,0x34,0xff,0xff, +0xb, 0x34,0x8d,0x32,0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d,0x32,0x30,0xd5, +0x6, 0x6e,0x34,0xff,0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d,0x2, 0x7d,0x21, +0xad,0x5, 0x2d,0x12,0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31,0xad,0x10,0x2d, +0x21,0x22,0x6d,0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78,0x27,0x8d,0x31, +0x7d,0x12,0x6d,0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11,0x2d,0x44,0x50, +0x2, 0xa5,0xf, 0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78,0xed,0x7f,0x1, +0x6d,0x22,0x7d,0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, 0x2f,0x0, 0x40, +0x4, 0xbd,0x4, 0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d,0x23,0x7d,0x31, +0x7d,0x10,0x6d,0x0, 0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2,0xd5,0x9f,0x22, +0x9f,0x20,0x7f,0x2, 0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22,0x9f,0x21,0x7f, +0x12,0x12,0x0, 0xb4,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12,0x0, 0xb4,0x30, +0xd5,0x6, 0x9f,0x22,0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1a,0x1e, +0x54,0x68,0xe, 0xb, 0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15,0x1b,0x54,0x78, +0xf2,0x50,0x6, 0x7e,0x39,0x40,0x7a,0x19,0x40,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1e, +0x1e,0x54,0x50,0xc, 0x7e,0x1b,0x0, 0x7a,0x19,0x0, 0x68,0x12,0xb, 0x1c,0xb, 0x14, +0xb, 0x1a,0x0, 0x1b,0x18,0x0, 0xb, 0x1d,0xb, 0x15,0x1b,0x54,0x78,0xf2,0x22,0x0, +0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x2, 0x2, 0x2, 0x2, 0x1, 0x0, +0x1, 0x2, 0x3, 0x4, 0x4, 0x3, 0x2, 0x0, 0x2, 0x3, 0x5, 0x5, 0x5, 0x4, 0x2, 0x0, +0x2, 0x4, 0x6, 0x6, 0x6, 0x5, 0x3, 0x0, 0x3, 0x5, 0x7, 0x8, 0x7, 0x6, 0x3, 0x0, +0x3, 0x6, 0x8, 0x9, 0x9, 0x7, 0x4, 0x0, 0x4, 0x7, 0xa, 0xb, 0xa, 0x8, 0x4, 0x0, +0x4, 0x8, 0xb, 0xc, 0xb, 0x9, 0x5, 0x0, 0x5, 0x9, 0xc, 0xd, 0xd, 0xa, 0x5, 0x0, +0x5, 0xa, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, +0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, +0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, +0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, +0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, +0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, +0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, +0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, +0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, +0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, +0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x0, 0x6, 0xb, 0xe, 0xf, 0xe, 0xb, 0x6, 0x75, +0x84,0x1, 0x7e,0x44,0x4, 0x1f,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78,0xf9,0x7e,0xf8, +0xe, 0x7b,0x75,0x5c,0x0, 0x75,0x57,0x0, 0x75,0x1d,0x0, 0xd2,0x0, 0x75,0x8, 0xb, +0x75,0x9, 0xb8,0x75,0xc, 0x0, 0x75,0xd, 0x0, 0x75,0xe, 0x0, 0x75,0xf, 0x0, 0x75, +0x14,0x0, 0x75,0x15,0x0, 0x75,0x18,0x0, 0x75,0x19,0x0, 0x75,0x1a,0x0, 0x75,0x1c, +0x1, 0xc2,0x2, 0x75,0x58,0x0, 0x75,0x59,0x0, 0x75,0x5d,0x0, 0x75,0x5e,0x0, 0xc2, +0x3, 0x7e,0x4, 0x0, 0xff,0x7e,0x14,0x3, 0xdc,0xb, 0xa, 0x40,0x5d,0x44,0x68,0x1a, +0x69,0x20,0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29,0xb0, +0xb, 0x24,0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x5, 0xc8,0xb, 0xa, 0x9, +0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, +0x2, 0x1, 0x0, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x2, 0x2, +0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, +0x2, 0x2, 0x2, 0x0, 0x0, 0x0, 0x78,0x2, 0x58,0x2, 0xd0,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x0, 0x82,0x2, 0x76,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0xe, 0xe, 0xe, 0xe, 0xe, 0xe, 0xe, 0xe, 0xe, 0xe, 0xe, 0xe, 0x22,0x1d,0x1f,0x20, +0x1c,0x1b,0xe, 0x0, 0x64,0x64,0x64,0x64,0x64,0x64,0x2, 0x2, 0x2, 0x2, 0x2, 0x2, +0x2, 0x1, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x7d,0x3, 0x80,0xa, 0x7e,0x29,0xb0,0x7a, +0x9, 0xb0,0xb, 0x24,0xb, 0x4, 0x7d,0x51,0x1b,0x14,0x4d,0x55,0x78,0xee,0x22,0x10, +0x10,0x10,0x1c,0x19,0x14,0x10,0xe, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x0, 0x55, +0x0, 0x50,0x0, 0x50,0x0, 0x50,0x0, 0x50,0x0, 0x50,0x0, 0x50,0x13,0x14,0x13,0x13, +0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x13,0x13,0x14,0x13,0x13,0x13,0x13,0x13,0x13, +0x13,0x13,0x14,0x13,0x1, 0x2, 0x4, 0x8, 0x10,0x20,0x40,0x80,0x0, 0x1, 0xe, 0x76, +0x0, 0x0, 0x1, 0xe, 0x77,0x0, 0x0, 0x2, 0x6, 0x92,0x0, 0x1, 0x0, 0x2, 0xb, 0x9, +0x0, 0x0, 0x0, 0x1, 0xd, 0x6b,0x0, 0x0, 0x1, 0xd, 0x6d,0x0, 0x0, 0x2, 0xd, 0x6e, +0x0, 0x0, 0x0, 0x1, 0xd, 0x72,0x0, 0x0, 0x2, 0xd, 0x73,0x0, 0x0, 0x0, 0x1, 0xd, +0x78,0x0, 0x0, 0x1, 0xd, 0x79,0x0, 0x0, 0x2, 0xe, 0x78,0x0, 0x0, 0x0, 0x1, 0xe, +0x7a,0x0, 0x0, 0x1, 0xe, 0x7b,0x0, 0x0, 0x2, 0xe, 0x65,0x0, 0x0, 0x0, 0x2, 0xb, +0x3d,0xb, 0x43,0x1, 0x40,0xb, 0x43,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,0xc, 0x83,0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc, 0x93,0x0, +0x0, 0x0, 0x0, 0x0, 0xc2,0x8e,0x75,0x89,0x10,0x75,0x9b,0x0, 0x12,0x18,0xf, 0xd2, +0xab,0x22,0x12,0x5, 0xa8,0x2, 0x0, 0x3e,0x12,0x4f,0xa0,0xe4,0x12,0x4f,0xda,0x12, +0x4f,0xf8,0x12,0x0, 0x42,0x12,0x0, 0x2a,0x12,0x50,0x4, 0x74,0x1, 0x2, 0x5, 0xc0, +0x70,0x3, 0xc2,0xaf,0x22,0xd2,0xaf,0x22,0x12,0x15,0xc9,0x12,0x0, 0x56,0x12,0x5, +0xa2,0x12,0x0, 0x5e,0xa9,0xd3,0xf7,0xc2,0xfb,0x12,0x6, 0xd6,0x12,0x1b,0x8a,0x12, +0x13,0xd, 0x12,0x1a,0x12,0x7e,0xb3,0xc, 0xbf,0x24,0xfd,0x68,0x14,0x14,0x68,0x16, +0x24,0xaf,0x68,0x30,0x24,0xab,0x68,0x13,0x24,0xa9,0x78,0xe9,0x12,0x39,0x7a,0x80, +0xe4,0x12,0x9, 0xf0,0x80,0xdf,0x12,0x15,0x97,0x80,0xda,0x12,0x6, 0x3c,0x7e,0xb3, +0x3, 0xe1,0xbe,0xb0,0xaa,0x68,0xce,0xe4,0x7a,0xb3,0x2, 0xe8,0x74,0xaa,0x7a,0xb3, +0x3, 0xe1,0x80,0xc1,0x12,0x6, 0x3c,0x7e,0xb3,0x3, 0xe1,0xb4,0xaa,0xb7,0x74,0x55, +0x7a,0xb3,0x3, 0xe1,0x12,0x7, 0x70,0x75,0xe9,0xff,0x80,0xa9,0x6d,0x33,0x7a,0x37, +0x3, 0xdf,0x22,0x7e,0x34,0x0, 0x61,0x7e,0x24,0x1, 0x6b,0xe4,0x12,0x0, 0x46,0x7e, +0x34,0x3, 0x83,0x7e,0x24,0x0, 0x5c,0xe4,0x12,0x0, 0x46,0x7e,0x34,0x0, 0x7f,0x12, +0x6, 0xa0,0x7e,0x34,0x3, 0x87,0x12,0x6, 0xa0,0x7e,0x34,0x3, 0xaa,0x12,0x6, 0xa0, +0x74,0x1, 0x7a,0xb3,0x3, 0xd5,0x75,0x17,0x0, 0x75,0x1b,0x0, 0x75,0x16,0x0, 0x75, +0x10,0x0, 0x12,0x6, 0x3c,0x7e,0x24,0xd, 0xac,0x7a,0x27,0x0, 0x5f,0xe4,0x7a,0xb3, +0x2, 0xe8,0x7a,0xb3,0x3, 0xe1,0x7a,0x37,0x3, 0xe2,0xc2,0x1, 0x7a,0x35,0xa, 0x22, +0x7e,0x24,0x0, 0x23,0x74,0xff,0x2, 0x0, 0x46,0xa9,0xd0,0x99,0xa9,0xc6,0xdf,0x22, +0x43,0xdb,0x10,0xd2,0xd9,0xc2,0xdd,0xc2,0xdc,0xc2,0xdb,0xc2,0xda,0xd2,0xd8,0x75, +0xd7,0x6, 0xc2,0xea,0x2, 0x6, 0xc7,0xc2,0x3, 0x53,0xdb,0xfd,0xd2,0xeb,0xc2,0xc3, +0xa9,0xd3,0xf7,0xd2,0xfb,0x22,0xe4,0x7a,0xb3,0xd, 0x75,0x12,0x7, 0x25,0x2, 0x6, +0xe1,0xca,0xf8,0x6d,0x33,0x7a,0x37,0xd, 0x73,0xe4,0x7a,0xb3,0xd, 0x6b,0x7e,0xb3, +0xd, 0x75,0xc4,0x7c,0xfb,0x5e,0xf0,0x7, 0x78,0x5, 0x12,0x4e,0xec,0x80,0xd, 0xbe, +0xf0,0x4, 0x40,0x8, 0xbe,0xf0,0x5, 0x68,0x3, 0x12,0x4e,0xe2,0xe4,0x12,0x4f,0x64, +0x74,0xaa,0x7a,0xb3,0xd, 0x1e,0x7a,0xb3,0xd, 0x1f,0x7a,0xb3,0xd, 0x42,0x7a,0xb3, +0xd, 0x43,0xda,0xf8,0x22,0x2, 0x7, 0x28,0xca,0x79,0x7e,0xf0,0x70,0x7e,0x34,0x78, +0x0, 0x12,0x14,0x1b,0x7c,0xeb,0x7e,0x34,0x78,0x1, 0x12,0x14,0x1b,0xbe,0xe0,0xff, +0x68,0xc, 0x6c,0xbe,0xb4,0xff,0x7, 0x7c,0xbe,0x20,0xe0,0x2, 0x7c,0xfe,0x75,0x91, +0x0, 0xc2,0x90,0xc2,0x91,0xd2,0xce,0x7c,0xbf,0x54,0xfe,0xf5,0x92,0xd2,0xad,0xd2, +0xe8,0xc2,0xc0,0xa9,0xd0,0xf7,0xd2,0xf8,0xa9,0xd5,0xb7,0xd2,0xbd,0xda,0x79,0x22, +0x7e,0x34,0x6f,0xf8,0x74,0x66,0x12,0x8, 0x0, 0x7e,0x34,0x6f,0xf9,0x74,0xbb,0x2, +0x8, 0x0, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x7c,0xab,0x7d,0x23,0x12,0x5c,0x51,0x7d,0x12,0x5e,0x14,0x0, 0x1, 0x68,0x2, 0x1b, +0x24,0xa, 0x14,0x7c,0xb3,0xf5,0xf1,0x7c,0xb5,0xf5,0xf2,0x75,0xf3,0x80,0x75,0xf4, +0x1, 0x75,0xf5,0x0, 0x5e,0x34,0x0, 0x1, 0x68,0x8, 0x75,0xf6,0xff,0x7a,0xa1,0xf6, +0x80,0x6, 0x7a,0xa1,0xf6,0x75,0xf6,0xff,0xa9,0x36,0xf5,0xfc,0x43,0xfa,0x80,0x2, +0x8, 0x42,0x75,0xfd,0xf, 0x75,0xfe,0xf0,0xa9,0xc5,0xcb,0xc2,0xc9,0xd2,0xaf,0x22, +0x12,0x5c,0x51,0x75,0xf3,0x0, 0xa, 0x56,0x1e,0x54,0x1e,0x54,0x3e,0x54,0x3e,0x54, +0xf5,0xf1,0x75,0xf2,0x0, 0x75,0xf9,0x0, 0x75,0xf9,0x10,0x75,0xf9,0x50,0x74,0xa, +0x12,0x8, 0x91,0x75,0xf9,0x51,0x74,0x2d,0x12,0x8, 0xa6,0x75,0xf9,0x11,0x74,0xa, +0x12,0x8, 0x91,0x75,0xf9,0x10,0x75,0xf9,0x0, 0x74,0x1, 0x12,0x8, 0x91,0x2, 0x8, +0x42,0x7c,0xab,0x80,0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,0x7a,0x1b, +0xa0,0xa5,0xbf,0x0, 0xf0,0x22,0x7c,0x6b,0x80,0xe, 0x74,0xfa,0x12,0x8, 0x91,0x12, +0x8, 0x91,0x12,0x8, 0x91,0x12,0x8, 0x91,0x7c,0x76,0x1b,0x60,0xa5,0xbf,0x0, 0xea, +0x22,0x2e,0x34,0x7c,0x0, 0x2, 0x8, 0x0, 0xca,0x3b,0x7c,0xcb,0x12,0x5c,0x71,0x12, +0x9, 0xe6,0x60,0xfb,0x12,0xb, 0x82,0x12,0x9, 0xe6,0x60,0xfb,0x12,0xf, 0xb8,0x12, +0x10,0x5e,0x12,0x5c,0x5f,0x6d,0x33,0x7d,0x73,0x6c,0xdd,0x4d,0x77,0x78,0xa, 0x6d, +0x11,0x12,0x9, 0xdf,0xa, 0x2b,0x1b,0x28,0x10,0xa, 0x2d,0x2e,0x24,0x3, 0xc8,0x12, +0x17,0x54,0x93,0xa, 0x2b,0xbd,0x27,0x40,0x25,0x7e,0x14,0x0, 0xc, 0xad,0x17,0x3e, +0x14,0x7e,0x50,0x2, 0xac,0x5d,0x2d,0x21,0x2e,0x27,0xe, 0xf, 0xb, 0x28,0x10,0x12, +0x9, 0xdf,0xa, 0x2b,0xb, 0x28,0x0, 0xbd,0x10,0x28,0x3, 0x1b,0x28,0x10,0xb, 0xd0, +0xbe,0xd0,0xc, 0x78,0xb6,0xb, 0x74,0xbe,0x74,0x0, 0x15,0x78,0xac,0x7d,0x73,0x6c, +0xdd,0xa, 0x3d,0x2e,0x34,0x3, 0xc8,0x12,0x13,0x4, 0xa, 0x3b,0xbd,0x37,0x40,0x31, +0x7e,0xf4,0x0, 0xc, 0xad,0xf7,0x7d,0xef,0x3e,0xe4,0x74,0x2, 0xac,0xbd,0x2d,0xe5, +0x2e,0xe7,0xe, 0xf, 0xb, 0xe8,0x20,0x12,0x9, 0xdf,0xa, 0x3b,0xb, 0x38,0x30,0x9d, +0x32,0x7d,0x23,0x5e,0x24,0xff,0xf8,0xa, 0x1d,0x2d,0x1f,0x3e,0x14,0x59,0x21,0x4, +0x55,0xb, 0xd0,0xbe,0xd0,0xc, 0x78,0xb9,0xb, 0x74,0xbe,0x74,0x0, 0x15,0x78,0xaf, +0x7e,0x34,0x3, 0xe4,0x7a,0x35,0x21,0x75,0x23,0x0, 0x6d,0x77,0x7e,0x35,0x21,0x7e, +0x39,0x70,0x7c,0xb7,0x62,0x23,0xa, 0x3c,0x2d,0x37,0x7e,0x25,0x21,0x7d,0x12,0xb, +0x14,0x7a,0x15,0x21,0x7e,0x29,0xb0,0x12,0x8, 0xc1,0xb, 0x74,0xbe,0x74,0x2, 0x69, +0x40,0xda,0x7e,0x34,0x3, 0xf0,0xe5,0x23,0x12,0x8, 0xc1,0x7e,0x34,0x3, 0xf1,0x74, +0xff,0x9e,0xb1,0x23,0x12,0x8, 0xc1,0x12,0xb, 0x82,0x74,0x1, 0xda,0x3b,0x22,0x7c, +0xbd,0x3e,0xb0,0x24,0x24,0x22,0x30,0x3, 0x5, 0xc2,0x3, 0x74,0x1, 0x22,0xe4,0x22, +0xca,0xf8,0x12,0x5c,0x5f,0x12,0x5c,0x68,0x53,0xdb,0xf0,0x12,0x41,0x41,0x12,0x1b, +0x99,0x12,0x15,0xd8,0x12,0x16,0x48,0x12,0xa, 0xb5,0x12,0x37,0xe7,0x53,0xdb,0x7f, +0x12,0xb, 0x82,0x74,0xc, 0x7a,0xb3,0xe, 0x2f,0x74,0x15,0x7a,0xb3,0xe, 0x2e,0x12, +0x5c,0x1f,0x12,0x41,0x55,0x7a,0xb3,0xb, 0x4, 0x12,0x15,0xc9,0x7e,0xb3,0xe, 0x2b, +0x70,0x24,0x12,0x17,0xfa,0x74,0x1, 0x7a,0xb3,0xe, 0x2b,0x7e,0x34,0x7c,0x0, 0x12, +0x1b,0xa5,0x74,0x4, 0x12,0x8, 0xc8,0x6d,0x33,0xe4,0x12,0x8, 0xc1,0x12,0x17,0x76, +0x74,0xff,0x7a,0xb3,0xe, 0x2b,0x7e,0xf3,0xe, 0x2c,0xbe,0xf0,0x3, 0x78,0x46,0x7e, +0xb3,0xd, 0x75,0x30,0xe7,0xc3,0x12,0x15,0xd8,0x80,0x3, 0x43,0x87,0x1, 0x12,0x9, +0xe6,0x60,0xf8,0x53,0xdb,0xf0,0x12,0x16,0x48,0x12,0xa, 0xb5,0x12,0x37,0xe7,0x7e, +0xb3,0xe, 0x34,0x70,0x3, 0xe4,0x80,0x2, 0x74,0x1, 0x12,0x5c,0x7d,0x12,0xf, 0xb8, +0x12,0x10,0x5e,0x12,0xb, 0x82,0x12,0x5c,0x5f,0x7e,0xb3,0xd, 0x75,0x54,0x7f,0x7a, +0xb3,0xd, 0x75,0x80,0x84,0x7a,0xf3,0xc, 0xbf,0x12,0x5a,0xc2,0xda,0xf8,0x22,0x74, +0x23,0x7a,0xb3,0xb, 0x6, 0x12,0x48,0x72,0x7e,0x34,0x3, 0x21,0xca,0x3b,0x7d,0x73, +0x6c,0xdd,0x49,0x37,0x0, 0x5d,0x12,0x1f,0x2c,0x1e,0x34,0x7c,0xc7,0xe4,0x7e,0x79, +0x70,0x12,0xb, 0x6b,0x74,0x2, 0x9, 0x77,0x0, 0x2, 0x12,0xb, 0x6b,0x74,0x3, 0x9, +0x77,0x0, 0x3, 0x12,0xb, 0x6b,0x74,0x4, 0x9, 0x77,0x0, 0x4, 0x12,0xb, 0x6b,0x74, +0x5, 0x9, 0x77,0x0, 0x5, 0x12,0xb, 0x6b,0x74,0x6, 0x9, 0x77,0x0, 0x5f,0x12,0xb, +0x6b,0x74,0x8, 0x9, 0x77,0x0, 0x6, 0x12,0xb, 0x6b,0x74,0x9, 0x9, 0x77,0x0, 0x7, +0x12,0xb, 0x6b,0x74,0xa, 0x7c,0x7c,0x12,0xb, 0x6b,0x74,0x1, 0x6c,0x77,0x12,0xb, +0x6b,0x6c,0xcc,0x80,0x3b,0x12,0xb, 0x74,0x24,0x10,0xa, 0x3c,0x2d,0x37,0x9, 0x73, +0x0, 0x47,0x12,0xb, 0x71,0x24,0x11,0xa, 0x3c,0x2d,0x37,0x9, 0x73,0x0, 0x8, 0x12, +0xb, 0x71,0x24,0x12,0xa, 0x3c,0x2d,0x37,0x9, 0x73,0x0, 0x1d,0x12,0xb, 0x71,0x24, +0x13,0xa, 0x3c,0x2d,0x37,0x9, 0x73,0x0, 0x32,0x12,0xb, 0x6b,0xb, 0xd0,0xb, 0xc0, +0x9, 0x77,0x0, 0x5, 0xbc,0x7c,0x38,0xbd,0xda,0x3b,0x22,0xf5,0xd9,0x7a,0x71,0xda, +0x22,0x12,0xb, 0x6b,0x7c,0xbd,0x3e,0xb0,0x3e,0xb0,0x22,0x7e,0xb3,0x4, 0x4f,0x12, +0x15,0x41,0x53,0xdb,0xfd,0xd2,0xeb,0x43,0xdb,0x1, 0x43,0xdb,0x20,0x22,0xca,0x3b, +0x7c,0xdb,0x6c,0xcc,0x12,0x5c,0x90,0x78,0x3e,0x7e,0x27,0x1, 0xce,0xbe,0x24,0x0, +0x1, 0x78,0x2, 0xa1,0xbf,0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x1, 0xce,0x7e,0xb3,0x2, +0xb, 0x60,0x10,0x74,0x2, 0x7a,0xb3,0x2, 0x9, 0x7e,0x53,0x2, 0xb, 0x7a,0x53,0x1, +0xd9,0x80,0x6, 0x74,0x1, 0x7a,0xb3,0x2, 0x9, 0xe4,0x7a,0xb3,0x1, 0xd8,0x7a,0xb3, +0x2, 0xf, 0x12,0x5b,0xf4,0xa1,0xbf,0xbe,0x34,0x0, 0x2, 0x78,0x56,0x7e,0x27,0x1, +0xce,0xbe,0x24,0x0, 0x2, 0x68,0x36,0x7e,0x24,0x0, 0x2, 0x7a,0x27,0x1, 0xce,0x74, +0x7, 0x7a,0xb3,0x2, 0x9, 0xe4,0x7a,0xb3,0x2, 0xf, 0x12,0x5c,0xb4,0x7a,0xb3,0x2, +0x10,0x12,0x5b,0xf4,0x6c,0xff,0x6d,0x22,0x74,0x2, 0xac,0xbf,0x59,0x25,0x1, 0xe8, +0xa, 0x2f,0x19,0xf2,0x1, 0xd8,0xb, 0xf0,0xbe,0xf0,0x7, 0x78,0xe9,0x7e,0x53,0x2, +0xa, 0xbe,0x53,0x2, 0x12,0x28,0x2, 0xa1,0xbf,0x7e,0x24,0x0, 0x3, 0x7a,0x27,0x1, +0xcc,0xa1,0xbf,0xbe,0x34,0x0, 0x3, 0x68,0x2, 0xa1,0xa7,0x7e,0x37,0x1, 0xce,0xbe, +0x34,0x0, 0x3, 0x78,0x2, 0xa1,0xbf,0x7e,0x34,0x7f,0xff,0x7e,0xe0,0xff,0x6d,0x22, +0x7a,0x25,0x27,0x6c,0xff,0x80,0x17,0xa, 0x1f,0x9, 0xa1,0x1, 0xd8,0x74,0x2, 0xa4, +0x49,0x25,0x1, 0xe8,0xbe,0x25,0x27,0x28,0x3, 0x7a,0x25,0x27,0xb, 0xf0,0x7e,0xa3, +0x2, 0x9, 0xbc,0xaf,0x38,0xe1,0x6c,0xff,0x80,0x44,0x7e,0x44,0x0, 0x1, 0x7c,0xbf, +0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7e,0xb3,0x2, 0x11,0xa, 0x2b,0x5d,0x24,0x78, +0x2b,0xa, 0x4f,0x9, 0x54,0x1, 0xd8,0x7e,0x30,0x2, 0xac,0x35,0x49,0x11,0x1, 0xe8, +0xbd,0x13,0x50,0x18,0x7c,0xe5,0x7e,0x70,0x2, 0xac,0x7e,0x49,0x33,0x1, 0xe8,0x7e, +0x43,0x2, 0xa, 0x7e,0x50,0x14,0xac,0x45,0xbd,0x23,0x38,0x6, 0xb, 0xf0,0xbc,0xaf, +0x38,0xb8,0xbe,0xe0,0xff,0x78,0x2, 0xa1,0x95,0x7e,0xa3,0x2, 0xb, 0xbc,0xae,0x78, +0x2, 0xa1,0x95,0x7e,0x35,0x27,0xbe,0x34,0x0, 0x64,0x38,0x2, 0xa1,0x95,0x74,0x2, +0xa4,0x49,0x25,0x1, 0xe8,0x74,0x2, 0xac,0xbe,0x49,0x35,0x1, 0xe8,0x9d,0x32,0x12, +0x0, 0x2e,0x7e,0xa3,0x2, 0xb, 0x74,0x2, 0xa4,0x49,0x25,0x1, 0xe8,0x1e,0x24,0xbd, +0x32,0x38,0x2, 0xa1,0x95,0x4c,0xdd,0x68,0x2, 0xa1,0x92,0x7e,0x34,0x0, 0x4, 0x7a, +0x37,0x1, 0xcc,0xa, 0x3e,0x9, 0x53,0x1, 0xd0,0x7a,0x53,0x4, 0x4f,0x9, 0x53,0x2, +0x0, 0x7a,0x53,0x4, 0x54,0x7a,0x53,0xc, 0xa4,0x7e,0x53,0x4, 0x4f,0x7a,0x53,0xc, +0xa2,0x9, 0x73,0x1, 0xe0,0x7a,0x73,0xc, 0xa6,0x7a,0xe3,0x2, 0xb, 0xa, 0x3e,0x9, +0xe3,0x1, 0xf8,0x6c,0xff,0xa, 0x3f,0x2e,0x34,0x4, 0x9, 0x7e,0x39,0x50,0x9e,0x53, +0x4, 0x52,0x7a,0x39,0x50,0x7e,0x39,0xb0,0x2c,0xbe,0x7a,0x39,0xb0,0xb, 0xf0,0xbe, +0xf0,0x15,0x78,0xe1,0x7a,0xe3,0x4, 0x52,0x7a,0xe3,0xc, 0xa5,0x12,0x5c,0xa2,0x12, +0x9, 0xe6,0x60,0xfb,0x12,0xe, 0xf7,0x12,0x15,0xc2,0x12,0x15,0xd8,0x12,0xa, 0xb5, +0x12,0xf, 0xb5,0x12,0xf, 0xdb,0x7e,0x34,0x0, 0x3, 0x7a,0x37,0x1, 0xce,0x74,0x1, +0xc1,0xf4,0x7e,0xc0,0x1, 0x4c,0xcc,0x78,0x26,0x12,0x5c,0x99,0x68,0x3, 0x12,0x5c, +0x48,0x7e,0x34,0x0, 0x3, 0x80,0x14,0x12,0x5c,0x99,0x78,0x13,0x7e,0x37,0x1, 0xce, +0xbe,0x34,0x0, 0x4, 0x68,0x9, 0x12,0x5c,0x48,0x6d,0x33,0x7a,0x37,0x1, 0xce,0x12, +0x4f,0x6d,0x12,0xe, 0xf7,0x12,0x15,0xd8,0x12,0xa, 0xb5,0x12,0xb, 0x82,0xe4,0x7a, +0xb3,0xb, 0x4, 0x74,0x1, 0x7a,0xb3,0xb, 0x3, 0x12,0xf, 0xb8,0x12,0x10,0x5e,0x7e, +0x34,0x1, 0xcc,0x7e,0x24,0x6, 0xb7,0x7e,0x14,0xa, 0xd8,0x12,0x2d,0x45,0x74,0x1, +0x7a,0xb3,0xb, 0x4, 0xe4,0x7a,0xb3,0xb, 0x3, 0x12,0x5c,0x90,0x78,0x53,0x7e,0x53, +0x2, 0xf, 0xa, 0x25,0x9, 0x52,0x1, 0xd8,0xbe,0x53,0x2, 0xb, 0x68,0x2, 0xc1,0xf3, +0x7e,0xb3,0xe, 0x7b,0xbe,0xb0,0xc8,0x50,0x16,0x4, 0x7a,0xb3,0xe, 0x7b,0x7e,0x27, +0x2, 0x13,0xbe,0x24,0x0, 0x78,0x28,0x10,0x7e,0xb3,0xe, 0x7a,0x4, 0x80,0x5, 0xe4, +0x7a,0xb3,0xe, 0x7b,0x7a,0xb3,0xe, 0x7a,0x7e,0x53,0xe, 0x7a,0xbe,0x50,0x3, 0x50, +0x2, 0xc1,0xf3,0x7e,0x24,0x0, 0x2, 0x7a,0x27,0x1, 0xcc,0xe4,0x12,0x5c,0x87,0xc1, +0xf3,0xbe,0x34,0x0, 0x2, 0x68,0xe, 0xbe,0x34,0x0, 0x6, 0x68,0x8, 0xbe,0x34,0x0, +0x5, 0x68,0x2, 0xc1,0xf3,0x7e,0xb3,0x2, 0x12,0xbe,0xb3,0x2, 0x10,0x28,0x2, 0xc1, +0xf3,0xbe,0xd0,0x0, 0x28,0x7d,0x7e,0xa3,0x2, 0xa, 0xbe,0xa3,0x2, 0x12,0x28,0x13, +0xbe,0xb3,0x2, 0x10,0x50,0xd, 0x4, 0x7a,0xb3,0x2, 0x12,0x7e,0x73,0x2, 0x12,0x7a, +0x73,0x2, 0x10,0x7e,0x63,0x2, 0xf, 0xa, 0x26,0x9, 0x72,0x1, 0xd8,0x4c,0x77,0x68, +0x24,0xbe,0x73,0x2, 0xb, 0x68,0x1e,0x7e,0x27,0x2, 0x13,0xbe,0x24,0x1, 0x2c,0x28, +0x14,0x7e,0x70,0x1, 0x7c,0xb6,0x60,0x5, 0x3e,0x70,0x14,0x78,0xfb,0x4e,0x73,0x2, +0x11,0x7a,0x73,0x2, 0x11,0x7e,0x73,0x2, 0xf, 0xa, 0x27,0x9, 0xa2,0x1, 0xd8,0x74, +0x2, 0xa4,0x49,0x45,0x1, 0xe8,0x2e,0x47,0x2, 0x13,0xbe,0x44,0x7f,0xff,0x50,0xb, +0x7d,0x35,0x2e,0x34,0x1, 0xe8,0x1b,0x38,0x40,0x80,0x8, 0x7e,0x34,0x7f,0xff,0x59, +0x35,0x1, 0xe8,0xe4,0xda,0x3b,0x22,0x53,0xdb,0xf0,0x74,0xe, 0x7e,0x73,0x4, 0x53, +0x12,0x59,0xbf,0x44,0x40,0xf5,0xd6,0xe5,0xdb,0x30,0xe3,0xfb,0x53,0xdb,0xf3,0x7a, +0x71,0xd6,0xe5,0xdb,0x30,0xe3,0xfb,0x53,0xdb,0xf3,0x43,0xd7,0x4, 0x22,0xca,0x79, +0x7d,0x73,0x74,0x6, 0x9, 0x77,0x0, 0x19,0x12,0xf, 0x0, 0x74,0xa, 0x9, 0x77,0x0, +0x1a,0x12,0xf, 0x0, 0x74,0x8, 0x9, 0x77,0x0, 0x20,0x12,0xf, 0x0, 0x74,0x2a,0x9, +0x77,0x0, 0x1b,0x12,0xf, 0x0, 0x74,0xc, 0x9, 0x77,0x0, 0x1c,0x12,0xf, 0x0, 0x74, +0x2a,0x9, 0x77,0x0, 0x1d,0x12,0xf, 0x0, 0x74,0x2e,0x9, 0x77,0x0, 0x1e,0x12,0xf, +0x0, 0x74,0x2, 0x9, 0x77,0x0, 0x21,0x12,0xf, 0x0, 0x74,0x4, 0x9, 0x77,0x0, 0x22, +0x12,0xf, 0x0, 0x74,0x24,0x9, 0x77,0x0, 0x23,0x12,0xf, 0x0, 0x74,0x1e,0x9, 0x77, +0x0, 0x24,0x12,0xf, 0x0, 0x74,0x18,0x9, 0x77,0x0, 0x25,0x12,0xf, 0x0, 0x74,0x20, +0x9, 0x77,0x0, 0x26,0x12,0xf, 0x0, 0x74,0x22,0x9, 0x77,0x0, 0x27,0x12,0xf, 0x0, +0x74,0xe, 0x9, 0x77,0x0, 0x1f,0x12,0xf, 0x0, 0x74,0x1c,0x9, 0x77,0x0, 0x28,0x12, +0xf, 0x0, 0xda,0x79,0x22,0x12,0xb, 0x82,0x7e,0x34,0xa, 0xd8,0x7e,0x24,0x6, 0xb7, +0x22,0x12,0x9, 0xe6,0x60,0xfb,0x12,0xe, 0xf7,0x12,0x16,0x45,0x12,0xa, 0xaf,0x12, +0xb, 0x82,0x12,0x15,0xc2,0x12,0xf, 0xb8,0x2, 0xf, 0xdb,0xca,0x3b,0x7d,0x62,0x7d, +0x73,0x9, 0x77,0x0, 0x2c,0x7a,0x73,0xd, 0xd3,0x9, 0xb7,0x0, 0x2b,0xf5,0x2c,0xe4, +0x19,0xb7,0x0, 0x2c,0x19,0xb7,0x0, 0x2b,0x7d,0x36,0x2e,0x34,0x1, 0xf8,0x7a,0x37, +0xd, 0xd1,0x7a,0x67,0xd, 0xcf,0x75,0x29,0x1, 0x12,0x9, 0xe6,0x60,0xfb,0x7d,0x37, +0x7d,0x26,0x12,0x10,0x5e,0x12,0xb, 0x82,0x6d,0x33,0x7a,0x35,0x2a,0x7e,0x25,0x2a, +0x3e,0x24,0x7d,0x32,0x2e,0x37,0xd, 0xd1,0xb, 0x38,0x10,0xe, 0x14,0xe, 0x14,0x2e, +0x27,0xd, 0xcf,0x12,0x17,0x6d,0x7e,0x35,0x2a,0xb, 0x34,0x7a,0x35,0x2a,0xbe,0x34, +0x0, 0xfc,0x78,0xd9,0x5, 0x29,0xe5,0x29,0xbe,0xb0,0x4, 0x28,0xbc,0x7e,0x73,0xd, +0xd3,0x19,0x77,0x0, 0x2c,0xe5,0x2c,0x19,0xb7,0x0, 0x2b,0xda,0x3b,0x22,0xca,0xf8, +0x7d,0x3, 0xc2,0x4, 0x6d,0x11,0x9, 0x80,0x0, 0x1, 0x7e,0x9, 0x90,0x9, 0xa0,0x0, +0x2c,0xa9,0x33,0xdd,0x5, 0xa9,0xc3,0xdd,0x80,0x3, 0xa9,0xd3,0xdd,0xe5,0x5e,0x19, +0xb2,0x4, 0x1c,0xe5,0x5e,0x70,0x17,0x75,0x5e,0x1, 0x74,0x20,0x12,0x15,0x2d,0xbe, +0xb0,0xff,0x68,0x13,0xbe,0xb0,0x1f,0x68,0xe, 0x75,0x5e,0xee,0x80,0x9, 0xe5,0x5e, +0xb4,0xee,0x4, 0x74,0xee,0x21,0x91,0x9, 0xf0,0x0, 0x1a,0x9, 0xb0,0x0, 0x19,0xbc, +0xbf,0x28,0xe, 0xd2,0x4, 0xa, 0x18,0x2d,0x10,0x9, 0x31,0x0, 0x18,0xa, 0x13,0x80, +0x2, 0xa, 0x1b,0x75,0xc3,0x0, 0x9, 0xb0,0x0, 0x2f,0xc4,0x33,0x54,0xe0,0x4c,0xb8, +0xf5,0xc3,0x7a,0x91,0xc4,0x3e,0x14,0x2e,0x14,0x10,0x0, 0x9, 0xb0,0x0, 0x2b,0x70, +0x64,0x49,0x32,0x4, 0x11,0xa, 0x6, 0x7c,0xb1,0xf5,0xba,0x7c,0xb7,0xf5,0xb9,0x7d, +0x42,0x2e,0x44,0x1, 0xf8,0x7d,0x34,0xa, 0x6, 0x7c,0xb1,0x12,0x11,0x9a,0x30,0x4, +0x3, 0x75,0xc2,0x10,0x43,0xc2,0x5, 0x80,0x3, 0x43,0xc2,0x1, 0x0, 0x0, 0x0, 0x0, +0xe5,0xc2,0x30,0xe7,0xf4,0x75,0xc2,0x0, 0xa, 0x2, 0x7a,0x11,0xba,0x7c,0xb3,0xf5, +0xb9,0x7d,0x34,0xa, 0x48,0x7c,0xb9,0xf5,0xbc,0x7c,0xb7,0xf5,0xbb,0x7a,0x11,0xc1, +0x7c,0xb3,0xf5,0xbd,0x80,0x0, 0x43,0xc2,0x1, 0x0, 0x0, 0x0, 0x0, 0xe5,0xc2,0x30, +0xe7,0xf4,0x75,0xc2,0x0, 0x4c,0xaa,0x68,0x27,0x12,0x11,0xa1,0xa, 0x56,0xf5,0xbc, +0x7c,0xb7,0xf5,0xbb,0x12,0x11,0x94,0x30,0x4, 0x3, 0x75,0xc2,0x10,0x43,0xc2,0x3, +0x80,0x3, 0x43,0xc2,0x1, 0x0, 0x0, 0x0, 0x0, 0xe5,0xc2,0x30,0xe7,0xf4,0x80,0x1d, +0x12,0x11,0xa1,0x12,0x11,0x94,0x30,0x4, 0x3, 0x75,0xc2,0x10,0x43,0xc2,0x5, 0x80, +0x3, 0x43,0xc2,0x1, 0x0, 0x0, 0x0, 0x0, 0xe5,0xc2,0x30,0xe7,0xf4,0x75,0xc2,0x0, +0xe4,0xda,0xf8,0x22,0x2e,0x34,0x1, 0xf8,0xa, 0x56,0xf5,0xc1,0x7c,0xb7,0xf5,0xbd, +0x22,0xa, 0x52,0xf5,0xba,0x7c,0xb3,0xf5,0xb9,0x7d,0x32,0x22,0xca,0x3b,0x7e,0xb3, +0xb, 0x3, 0xf5,0x27,0x7e,0xb3,0xb, 0x4, 0xf5,0x28,0x74,0x1, 0x12,0x5c,0x7d,0x6c, +0xee,0x6c,0xff,0xa, 0x3f,0x9, 0x73,0x4, 0x2a,0xbc,0x7e,0x40,0x2, 0x7c,0xe7,0xb, +0xf0,0xbe,0xf0,0x15,0x78,0xed,0xbe,0xe0,0x3f,0x50,0x8, 0x74,0x3f,0x9c,0xbe,0x7c, +0xeb,0x80,0x2, 0x6c,0xee,0x7c,0xde,0x41,0xcb,0x12,0x15,0xc9,0x12,0x17,0xfa,0x12, +0x9, 0xe6,0x60,0xfb,0x12,0xf, 0xb8,0x12,0x10,0x5e,0x6c,0xff,0x6c,0xcc,0x4c,0xff, +0x78,0xa, 0x6d,0x33,0x74,0x2, 0xac,0xbc,0x59,0x35,0xd, 0xcf,0x7e,0x50,0x2, 0xac, +0x5c,0x12,0x2d,0x3d,0x49,0x13,0x8, 0xaf,0xe, 0x14,0xe, 0x14,0xe, 0x14,0xe, 0x14, +0xe, 0x14,0x2e,0x24,0xd, 0xcf,0x12,0x17,0x6d,0xb, 0xc0,0xbe,0xc0,0xc, 0x78,0xce, +0xb, 0xf0,0xbe,0xf0,0x15,0x78,0xc5,0x6c,0xcc,0x6c,0xff,0x7e,0x4, 0x0, 0x15,0x74, +0x2, 0xac,0xbf,0x7d,0x35,0x2e,0x34,0xd, 0xcf,0xb, 0x38,0x10,0x8d,0x10,0x1b,0x38, +0x10,0xb, 0x38,0x40,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x1b,0x38, +0x40,0x49,0x25,0xd, 0xcf,0x7e,0x37,0x3, 0xf2,0x9e,0x37,0x4, 0x50,0xbd,0x23,0x50, +0x18,0x12,0x12,0xfe,0xa, 0x3b,0x9, 0xb3,0x2, 0xf9,0xbc,0xbe,0x50,0x7, 0x2e,0x34, +0x2, 0xf9,0x4, 0x80,0x23,0xb, 0xc0,0x80,0x2a,0x7e,0x37,0x4, 0x50,0x2e,0x37,0x3, +0xf2,0xbd,0x23,0x28,0x1c,0x12,0x12,0xfe,0xa, 0x3b,0x9, 0xb3,0x2, 0xf9,0xbe,0xb0, +0x0, 0x28,0xa, 0x2e,0x34,0x2, 0xf9,0x14,0x7a,0x39,0xb0,0x80,0x6, 0xb, 0xc0,0x80, +0x2, 0xb, 0xc0,0xb, 0xf0,0xbe,0xf0,0xc, 0x78,0x81,0x53,0xdb,0xf0,0x12,0x17,0x91, +0xa9,0xc5,0xcb,0x12,0xb, 0x7b,0xbe,0xc0,0xc, 0x68,0xa, 0x7c,0xad,0x1b,0xd0,0x4c, +0xaa,0x68,0x2, 0x21,0xe9,0x6c,0xff,0x12,0x12,0xfe,0xa, 0x3b,0x9, 0x73,0x2, 0xf9, +0xa, 0x2f,0x19,0x72,0x4, 0x3f,0xb, 0xf0,0xbe,0xf0,0xc, 0x40,0xea,0xe5,0x27,0x7a, +0xb3,0xb, 0x3, 0xe5,0x28,0x7a,0xb3,0xb, 0x4, 0x74,0x1, 0xda,0x3b,0x22,0xa, 0x3f, +0x2e,0x34,0x2, 0xfd,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x22,0xca,0x3b,0x53, +0xdc,0xe0,0x43,0xdc,0x6, 0x6d,0x66,0x0, 0xb, 0x64,0xbe,0x64,0x0, 0x12,0x78,0xf7, +0x53,0xc9,0xfe,0x6d,0x33,0x12,0x14,0x14,0x7c,0xfb,0x7e,0xb3,0xc, 0xb8,0x70,0x3, +0x7e,0xf0,0xff,0xbe,0xf0,0xff,0x68,0x38,0x7e,0x34,0x3, 0xf0,0x12,0x14,0x14,0xf5, +0x27,0x7e,0x34,0x3, 0xf1,0x12,0x14,0x14,0xf5,0x28,0x65,0x27,0xbe,0xb0,0xff,0x68, +0x3, 0x7e,0xf0,0xff,0x75,0x28,0x0, 0x6d,0x66,0x12,0x14,0x10,0x62,0x28,0xb, 0x64, +0xbe,0x64,0x2, 0x69,0x78,0xf3,0xe5,0x28,0xbe,0xb1,0x27,0x68,0x3, 0x7e,0xf0,0xff, +0xbe,0xf0,0xff,0x68,0x3, 0x12,0x17,0x76,0x74,0x15,0x7a,0xb3,0x3, 0xe4,0x74,0xc, +0x7a,0xb3,0x3, 0xe5,0x74,0x2, 0x7a,0xb3,0x3, 0xe6,0xe4,0x7a,0xb3,0x3, 0xe7,0x74, +0xc, 0x7a,0xb3,0x3, 0xe8,0x7e,0x34,0x21,0x34,0x7a,0x37,0x3, 0xf2,0x12,0x5c,0xab, +0x12,0x5c,0x28,0x7a,0xb3,0x4, 0x54,0x6c,0xee,0xa, 0x3e,0x2e,0x34,0x3, 0x9, 0x12, +0x13,0x4, 0xa, 0x3e,0x19,0xb3,0x3, 0xf4,0x2e,0x34,0x3, 0x4b,0x12,0x13,0x4, 0xa, +0x3e,0x19,0xb3,0x4, 0x9, 0x2e,0x34,0x3, 0x1e,0x12,0x13,0x4, 0xa, 0x3e,0x19,0xb3, +0x4, 0x2a,0xb, 0xe0,0xbe,0xe0,0x15,0x78,0xd0,0x6c,0xee,0xa, 0x3e,0x2e,0x34,0x3, +0x3b,0x12,0x13,0x4, 0xa, 0x3e,0x19,0xb3,0x4, 0x1e,0xbe,0xf0,0xff,0x78,0xf, 0xa, +0x3e,0x2e,0x34,0x3, 0x60,0x12,0x13,0x4, 0xa, 0x3e,0x19,0xb3,0x4, 0x3f,0xb, 0xe0, +0xbe,0xe0,0xc, 0x78,0xd6,0xbe,0xf0,0xff,0x78,0x3, 0x12,0x5c,0x71,0xda,0x3b,0x22, +0x7d,0x36,0xb, 0x36,0x2e,0x34,0x7c,0x0, 0x2, 0x14,0x1b,0xc2,0xaf,0xd2,0xc9,0xa, +0x56,0xf5,0xf1,0x7c,0xb7,0x12,0x17,0x64,0x75,0xf5,0x1, 0xa9,0x37,0xf5,0xfc,0x2, +0x14,0x32,0xe5,0xf6,0x43,0xfa,0x80,0xc2,0xc9,0xd2,0xaf,0x22,0x12,0x5c,0x48,0x6d, +0x33,0x7a,0x37,0x1, 0xce,0x12,0x5c,0xb4,0x7a,0xb3,0x2, 0xb, 0x7a,0xb3,0x2, 0xc, +0x7a,0xb3,0x2, 0xd, 0x7a,0xb3,0x2, 0xe, 0x7a,0xb3,0x2, 0xf, 0x74,0x1, 0x7a,0xb3, +0x2, 0x9, 0xe4,0x12,0x5b,0xfc,0x12,0x5c,0x87,0x6c,0xaa,0xbe,0xa0,0x7, 0x50,0x34, +0xa, 0x3a,0x2e,0x34,0x3, 0x6c,0x12,0x13,0x4, 0xa, 0x4a,0x19,0xb4,0x1, 0xd0,0xa, +0x3a,0x2e,0x34,0x3, 0x73,0x12,0x13,0x4, 0x19,0xb4,0x1, 0xf8,0xa, 0x3a,0x2e,0x34, +0x3, 0x7a,0x12,0x13,0x4, 0x19,0xb4,0x1, 0xe0,0xa, 0x3a,0x2e,0x34,0x3, 0x81,0x12, +0x13,0x4, 0x80,0x13,0x74,0xff,0xa, 0x4a,0x19,0xb4,0x1, 0xd0,0xe4,0x19,0xb4,0x1, +0xf8,0x74,0x2, 0x19,0xb4,0x1, 0xe0,0xa, 0x4a,0x19,0xb4,0x2, 0x0, 0xa, 0x3a,0x19, +0xa3,0x1, 0xd8,0x12,0x15,0x25,0x59,0x43,0x1, 0xe8,0xa, 0x3a,0x9, 0xb3,0x1, 0xd0, +0xbe,0xb3,0x4, 0x4f,0x78,0x28,0xa, 0x3a,0x9, 0xb3,0x1, 0xf8,0xbe,0xb3,0x4, 0x52, +0x78,0x1c,0xa, 0x3a,0x9, 0xb3,0x2, 0x0, 0xbe,0xb3,0x4, 0x54,0x78,0x10,0xa, 0x3a, +0x9, 0xb3,0x1, 0xe0,0xbe,0xb3,0x4, 0x53,0x78,0x4, 0x7a,0xa3,0x2, 0xb, 0xb, 0xa0, +0xbe,0xa0,0x8, 0x68,0x2, 0x81,0x6b,0x6c,0xaa,0x12,0x15,0x25,0x59,0x43,0x2, 0xbf, +0x7e,0x44,0x7f,0xff,0x7e,0x70,0x2, 0xac,0x7a,0x59,0x43,0x2, 0xa7,0xb, 0xa0,0xbe, +0xa0,0xc, 0x40,0xe5,0x22,0x6d,0x44,0x7e,0x70,0x2, 0xac,0x7a,0x22,0xd2,0xc9,0xc2, +0xaf,0x75,0xf1,0x0, 0x12,0x17,0x64,0x75,0xf5,0x3, 0xa9,0x37,0xf5,0xfc,0x2, 0x14, +0x32,0x2, 0x15,0x44,0x53,0xdc,0xe0,0x43,0xdc,0x6, 0x7e,0xa0,0x12,0x0, 0x1b,0xa0, +0x78,0xfb,0x53,0xc9,0xfe,0xbe,0xb0,0xf, 0x40,0x13,0xbe,0xb0,0x2e,0x38,0xe, 0x53, +0xc9,0xfe,0x53,0xdc,0xe0,0xa, 0x3b,0x9e,0x34,0x0, 0xf, 0x80,0x13,0x43,0xc9,0x1, +0x53,0xdc,0xe0,0xbe,0xb0,0xe, 0x38,0xd, 0xa, 0x2b,0x7e,0x34,0x0, 0x1f,0x9d,0x32, +0x7c,0xb7,0x42,0xdc,0x22,0xb4,0x2f,0x4, 0x43,0xdc,0x3, 0x22,0xb4,0x30,0x4, 0x43, +0xdc,0x2, 0x22,0x43,0xdc,0xa, 0x22,0x12,0x15,0xc9,0x12,0x5c,0x68,0x53,0xdb,0xf0, +0x12,0x16,0x45,0x12,0xb, 0x7b,0x7e,0x34,0x0, 0xc8,0x7a,0x37,0x4, 0x50,0x12,0x11, +0xac,0x12,0x5a,0xc2,0x12,0x1a,0x12,0x7e,0xb3,0xd, 0x75,0x54,0x8f,0x7a,0xb3,0xd, +0x75,0x22,0x7e,0x34,0x6, 0xb7,0x12,0x57,0xfa,0x6d,0x33,0x7a,0x37,0x3, 0xdf,0x7e, +0x34,0xd, 0xac,0x7a,0x37,0x0, 0x5f,0x22,0x12,0x5c,0x14,0x7e,0x73,0x3, 0xe4,0x7a, +0x73,0xa, 0xd8,0x7e,0x73,0x3, 0xe5,0x7a,0x73,0xa, 0xd9,0x7e,0x24,0x3, 0xf4,0x7e, +0x34,0xa, 0xdc,0x12,0x48,0xf1,0x6c,0xaa,0x80,0x11,0xa, 0x3a,0x2e,0x34,0x2, 0xfd, +0x12,0x13,0x4, 0xa, 0x4a,0x19,0xb4,0xa, 0xf1,0xb, 0xa0,0x7e,0xb3,0x3, 0xe5,0xbc, +0xba,0x38,0xe7,0x7e,0x73,0x3, 0xe7,0x7a,0x73,0xa, 0xfd,0x7e,0x73,0x4, 0x2a,0x7a, +0x73,0xa, 0xfe,0x7e,0x73,0x3, 0xe8,0x7a,0x73,0xa, 0xff,0x7e,0x73,0x3, 0xe8,0x7a, +0x73,0xb, 0x0, 0x7e,0x73,0x3, 0xe8,0x7a,0x73,0xb, 0x1, 0xe4,0x7a,0xb3,0xb, 0x7, +0x7a,0xb3,0xb, 0x8, 0x22,0x12,0x15,0xd8,0xca,0xd8,0xca,0x79,0x7e,0x34,0x2, 0xf9, +0x12,0x17,0x5c,0x7e,0x34,0x2, 0xed,0x12,0x17,0x5c,0x6c,0x77,0x80,0x22,0xa, 0x27, +0x9, 0x62,0x4, 0x1e,0x12,0x17,0x50,0x93,0xa, 0x2b,0x19,0x62,0x2, 0xed,0xa, 0x27, +0x9, 0x62,0x4, 0x3f,0x12,0x17,0x50,0x93,0xa, 0x2b,0x19,0x62,0x2, 0xf9,0xb, 0x70, +0x7e,0x63,0x3, 0xe5,0xbc,0x67,0x38,0xd6,0x7e,0x73,0x3, 0xe6,0x7a,0x73,0x3, 0x5, +0x7e,0x73,0x4, 0x9, 0x7a,0x73,0x3, 0x6, 0x7e,0x73,0x4, 0x2a,0x7a,0x73,0x3, 0x7, +0x74,0xa, 0x7a,0xb3,0x3, 0x8, 0x7e,0x73,0x3, 0xe8,0x7a,0x73,0x3, 0x9, 0x74,0x10, +0x7a,0xb3,0x3, 0xb, 0xe4,0x7a,0xb3,0x3, 0xd, 0x6d,0x77,0x6c,0x77,0x80,0x15,0xa, +0x27,0x12,0x17,0x50,0x93,0x7e,0x24,0x0, 0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb, +0x4d,0x72,0xb, 0x70,0x7e,0x63,0x3, 0xe5,0xbc,0x67,0x38,0xe3,0x7d,0x37,0x5e,0x34, +0x0, 0x1, 0x78,0xe, 0x74,0xf, 0x7a,0xb3,0x3, 0xe, 0x74,0xff,0x7a,0xb3,0x3, 0xf, +0x80,0xc, 0xa, 0x3e,0x7a,0x73,0x3, 0xe, 0x7c,0x7f,0x7a,0x73,0x3, 0xf, 0x74,0xa, +0x7a,0xb3,0x3, 0xa, 0x7e,0x73,0x4, 0x53,0x7a,0x73,0x3, 0xc, 0x74,0x1, 0x7a,0xb3, +0x3, 0x10,0x74,0xfc,0x7a,0xb3,0x3, 0x11,0x74,0x81,0x7a,0xb3,0x3, 0x12,0x74,0xff, +0x7a,0xb3,0x3, 0x13,0x74,0x14,0x7a,0xb3,0x3, 0x14,0x74,0xeb,0x7a,0xb3,0x3, 0x15, +0x12,0x17,0x91,0x7c,0xdb,0x74,0x12,0x12,0x59,0xa2,0x7c,0x7b,0x5e,0x70,0xfc,0xb, +0x71,0x74,0x12,0x12,0xf, 0x0, 0xa9,0xc5,0xcb,0x7c,0xbd,0xda,0x79,0xda,0xd8,0x22, +0x2e,0x24,0x2, 0xfd,0x7a,0x51,0x82,0x7a,0x41,0x83,0xe4,0x22,0x7e,0x24,0x0, 0xc, +0xe4,0x2, 0x0, 0x46,0xf5,0xf2,0x75,0xf3,0x80,0x75,0xf4,0x0, 0x22,0xb, 0x28,0x30, +0x2d,0x31,0x1b,0x28,0x30,0x22,0xca,0x3b,0x7e,0x74,0x3, 0xe4,0x6d,0x66,0x12,0x14, +0x10,0x7a,0x79,0xb0,0xb, 0x74,0xb, 0x64,0xbe,0x64,0x2, 0x69,0x40,0xf0,0xda,0x3b, +0x22,0xa9,0xd5,0xcb,0x7e,0x34,0x2, 0xed,0xca,0x79,0x7d,0x73,0xe4,0x12,0x59,0x81, +0x9, 0xb7,0x0, 0x18,0x12,0x5a,0xe4,0x74,0x1, 0x12,0x17,0xe2,0x12,0x5a,0xa0,0x70, +0x3, 0xe4,0x80,0x2b,0x74,0x14,0x7e,0x70,0x7f,0x12,0x59,0x8b,0x70,0x3, 0xe4,0x80, +0x1e,0x7d,0x37,0x7d,0x27,0x2e,0x24,0x0, 0xc, 0x12,0x59,0xed,0x7d,0x37,0x12,0xf, +0x1e,0xe4,0x12,0x17,0xe2,0x12,0x5a,0x93,0x60,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0xda, +0x79,0x22,0x60,0x5, 0x7e,0xa0,0xa, 0x80,0x2, 0x6c,0xaa,0xe5,0xdc,0x54,0xe0,0xa, +0x2b,0xa, 0x3a,0x2d,0x32,0x7c,0xb7,0xf5,0xdc,0x22,0x2, 0x17,0xfd,0xe5,0x9a,0x60, +0x5, 0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0x2, 0x18,0xa, 0xc2,0x8e,0x2, 0x18,0xf, 0xe5, +0x9b,0xa, 0x3b,0x6d,0x22,0xb, 0x1c,0x7e,0x14,0x0, 0xc, 0x12,0x0, 0xa9,0x7e,0xb4, +0x3, 0xe8,0x7d,0x1b,0x12,0x0, 0xa9,0x7f,0x1, 0x7e,0xd4,0x36,0x0, 0x7e,0xc4,0x1, +0x6e,0x7f,0x16,0x12,0x1, 0x5, 0x7f,0x1, 0x7e,0x78,0xff,0xff,0x7f,0x17,0x9f,0x10, +0x7c,0xb6,0xf5,0x8d,0xe5,0x9b,0xa, 0xb, 0xb, 0x4, 0x7e,0x14,0x0, 0xc, 0xad,0x10, +0xad,0x1b,0x7f,0x16,0x12,0x1, 0x5, 0x7f,0x27,0x9f,0x21,0xf5,0x8b,0xd2,0x8e,0x22, +0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0, +0xc0,0x83,0xc0,0x82,0x12,0x18,0x7, 0x12,0x1a,0x9, 0x7e,0x37,0x3, 0x81,0xb, 0x34, +0x7a,0x37,0x3, 0x81,0x20,0x93,0x8, 0x6d,0x33,0x7a,0x37,0xe, 0x78,0x80,0x13,0x7e, +0x37,0xe, 0x78,0xb, 0x34,0x7a,0x37,0xe, 0x78,0xbe,0x34,0x3, 0xe8,0x28,0x3, 0x75, +0xe9,0xff,0xe5,0xcc,0xb4,0x2, 0x3, 0x12,0x1a,0x9, 0x7e,0x35,0x58,0x7e,0x4, 0x0, +0xa, 0x7d,0x13,0x8d,0x10,0x4d,0x0, 0x78,0x38,0x7e,0xb3,0xc, 0x97,0xbe,0xb0,0x0, +0x28,0x5, 0x14,0x7a,0xb3,0xc, 0x97,0x7e,0xb3,0xe, 0x68,0xbe,0xb0,0x0, 0x28,0x5, +0x14,0x7a,0xb3,0xe, 0x68,0x7e,0xb3,0xe, 0x71,0xbe,0xb0,0x0, 0x28,0x5, 0x14,0x7a, +0xb3,0xe, 0x71,0x7e,0xb3,0xe, 0x67,0xbe,0xb0,0x0, 0x28,0x5, 0x14,0x7a,0xb3,0xe, +0x67,0x7e,0x27,0xb, 0x9, 0x4d,0x22,0x68,0x6, 0x1b,0x24,0x7a,0x27,0xb, 0x9, 0xbe, +0x34,0x3, 0xe8,0x40,0xe, 0x6d,0x33,0x7a,0x35,0x58,0xe5,0x10,0xbe,0xb0,0x64,0x50, +0x2, 0x5, 0x10,0x7e,0x37,0x3, 0xdf,0xb, 0x34,0x7a,0x37,0x3, 0xdf,0x7e,0x37,0x0, +0x5f,0xbe,0x37,0x3, 0xdf,0x28,0x3, 0x12,0x17,0xfa,0x7e,0x37,0x3, 0xe2,0x4d,0x33, +0x68,0xe, 0xbe,0x34,0x0, 0x1, 0x78,0x2, 0xd2,0x1, 0x1b,0x34,0x7a,0x37,0x3, 0xe2, +0x7e,0x35,0xd, 0xbe,0x34,0x0, 0x0, 0x28,0x18,0x1b,0x34,0x7a,0x35,0xd, 0xe5,0xcc, +0xb4,0x2, 0xe, 0x7e,0x35,0xd, 0xbe,0x34,0x0, 0x0, 0x28,0x5, 0x1b,0x34,0x7a,0x35, +0xd, 0x7e,0x35,0x19,0xbe,0x34,0x0, 0x0, 0x28,0x18,0x1b,0x34,0x7a,0x35,0x19,0xe5, +0xcc,0xb4,0x2, 0xe, 0x7e,0x35,0x19,0xbe,0x34,0x0, 0x0, 0x28,0x5, 0x1b,0x34,0x7a, +0x35,0x19,0x12,0x1a,0x1, 0x28,0x14,0x1b,0x34,0x7a,0x35,0x8, 0xe5,0xcc,0xb4,0x2, +0xa, 0x12,0x1a,0x1, 0x28,0x5, 0x1b,0x34,0x7a,0x35,0x8, 0x12,0x1b,0x91,0x50,0x5, +0xb, 0x34,0x7a,0x35,0xa, 0x7e,0xb3,0xc, 0xbf,0xb4,0xaa,0x13,0x7e,0xa3,0x2, 0xe8, +0x7c,0xba,0x4, 0x7a,0xb3,0x2, 0xe8,0xbe,0xa0,0x64,0x28,0x3, 0x12,0x1a,0x12,0xe5, +0x1b,0xbe,0xb1,0x17,0x28,0xb, 0x5, 0x17,0xe5,0xcc,0xb4,0x2, 0x7, 0x5, 0x17,0x80, +0x3, 0x75,0x16,0x1, 0x7e,0xb3,0xd, 0x6c,0x60,0x12,0xbe,0xb0,0x28,0x50,0x7, 0x4, +0x7a,0xb3,0xd, 0x6c,0x80,0x6, 0x12,0x6, 0xe1,0x12,0x1b,0x99,0xd0,0x82,0xd0,0x83, +0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b, +0x32,0x7e,0x35,0x8, 0xbe,0x34,0x0, 0x0, 0x22,0x7e,0x35,0x58,0xb, 0x34,0x7a,0x35, +0x58,0x22,0x74,0x1, 0x7a,0xb3,0xc, 0xbf,0x22,0x74,0xff,0x7a,0xb3,0xc, 0xce,0x74, +0x15,0x7a,0xb3,0xc, 0x98,0x74,0x3c,0x7a,0xb3,0xc, 0x99,0xe4,0x7a,0xb3,0xc, 0x9b, +0x74,0x6, 0x7a,0xb3,0xc, 0x9c,0x74,0xa0,0x7a,0xb3,0xc, 0x9d,0x74,0x1, 0x7a,0xb3, +0xc, 0x9e,0x74,0xa, 0x7a,0xb3,0xc, 0x9f,0x7a,0xb3,0xc, 0xa0,0x74,0x14,0x7a,0xb3, +0xc, 0xa1,0x12,0x1b,0x8a,0x74,0xa, 0x7a,0xb3,0xc, 0xbb,0x74,0x1, 0x7a,0xb3,0xc, +0xbc,0xe4,0x7a,0xb3,0xc, 0xbd,0x74,0x23,0x7a,0xb3,0xc, 0xbe,0x12,0x1a,0x12,0x74, +0x79,0x7a,0xb3,0xc, 0xc0,0xe4,0x7a,0xb3,0xc, 0xc1,0x7a,0xb3,0xc, 0xc2,0x74,0x1, +0x7a,0xb3,0xc, 0xc7,0x74,0xc8,0x7a,0xb3,0xc, 0xc6,0x74,0x5, 0x7a,0xb3,0xc, 0xa8, +0x74,0x3, 0x7a,0xb3,0xc, 0xa9,0xe4,0x7a,0xb3,0xc, 0xca,0x74,0x64,0x7a,0xb3,0xc, +0xcb,0x74,0x32,0x7a,0xb3,0xc, 0xcc,0x6d,0x33,0x7a,0x37,0x2, 0xdd,0x74,0x1, 0x7a, +0xb3,0x2, 0xdf,0xe4,0x7a,0xb3,0x2, 0xe6,0x74,0xa, 0x7a,0xb3,0x2, 0xe1,0x7a,0xb3, +0x2, 0xe2,0x74,0x14,0x7a,0xb3,0x2, 0xe3,0x7a,0xb3,0x2, 0xe4,0x74,0xa, 0x7a,0xb3, +0x2, 0xe5,0x74,0x1, 0x7a,0xb3,0x2, 0xe7,0x7e,0x34,0x0, 0x55,0x7a,0x37,0x6, 0x94, +0x74,0x15,0x7a,0xb3,0x6, 0x96,0x7e,0x34,0x0, 0x3c,0x7a,0x37,0x6, 0x97,0xe4,0x7a, +0xb3,0x6, 0xb6,0x74,0x3, 0x7a,0xb3,0x6, 0xa9,0x7a,0xb3,0x6, 0xaa,0xe4,0x7a,0xb3, +0x6, 0xae,0x74,0x14,0x7a,0xb3,0x6, 0xaf,0xe4,0x7a,0xb3,0x6, 0xab,0x7a,0xb3,0x6, +0xa3,0x74,0x3, 0x7a,0xb3,0x6, 0xa4,0xe4,0x7a,0xb3,0x6, 0xa5,0x74,0x4, 0x7a,0xb3, +0x6, 0xa6,0x7e,0x34,0x0, 0x64,0x7a,0x37,0x6, 0xa7,0x7a,0x37,0x6, 0x9f,0x74,0x32, +0x7a,0xb3,0x6, 0xa1,0x74,0x5, 0x7a,0xb3,0x3, 0x16,0x7e,0x34,0xa, 0x0, 0x7a,0x37, +0x3, 0x17,0x74,0xa0,0x7a,0xb3,0x3, 0x19,0x7e,0x34,0x0, 0xc8,0x7a,0x37,0x3, 0x1a, +0x74,0x5, 0x7a,0xb3,0x3, 0x1d,0x74,0x3, 0x7a,0xb3,0x3, 0x1e,0xe4,0x7a,0xb3,0x3, +0x1c,0x7a,0xb3,0xc, 0xa3,0x7e,0x73,0x4, 0x4f,0x7a,0x73,0xc, 0xa2,0x7e,0x73,0x4, +0x52,0x7a,0x73,0xc, 0xa5,0x7e,0x73,0x4, 0x53,0x7a,0x73,0xc, 0xa6,0x7a,0xb3,0xc, +0xa7,0x7e,0x73,0x4, 0x54,0x7a,0x73,0xc, 0xa4,0x22,0x74,0xff,0x7a,0xb3,0xc, 0xb8, +0x22,0x7e,0x35,0xa, 0xbe,0x34,0x9c,0x40,0x22,0x6d,0x33,0x7a,0x37,0xe, 0x35,0xe4, +0x7a,0xb3,0xe, 0xe, 0x22,0x2, 0x8, 0x50,0xca,0x3b,0x7e,0xb3,0x3, 0xcf,0xf5,0x2d, +0x7e,0xd3,0x3, 0xd0,0x7e,0x34,0xd, 0xcf,0x12,0x6, 0xa0,0x7e,0x34,0x0, 0x2f,0x7e, +0x24,0x0, 0x5, 0xe4,0x12,0x0, 0x46,0xe5,0x2d,0x70,0x47,0x6c,0xee,0x7e,0x34,0xff, +0xff,0x74,0x7, 0xac,0xbe,0x59,0x35,0xd, 0xa2,0x74,0x7, 0xac,0xbe,0x12,0x1f,0x16, +0xac,0xbe,0x12,0x1f,0x42,0xb, 0xe0,0xbe,0xe0,0x5, 0x78,0xe1,0xbe,0xd0,0x0, 0x38, +0x2, 0xc1,0xb0,0x7e,0x34,0x3, 0xaa,0x12,0x6, 0xa0,0x7e,0xb3,0x3, 0xd3,0x44,0x4, +0x7a,0xb3,0x3, 0xd3,0x54,0xf7,0x7a,0xb3,0x3, 0xd3,0x54,0xdf,0x7a,0xb3,0x3, 0xd3, +0xc1,0xb0,0x6c,0xee,0x80,0x26,0x7e,0x50,0x7, 0xac,0x5e,0x2e,0x24,0x0, 0x7f,0xb, +0x28,0x30,0x12,0x1f,0x39,0x1b,0x28,0x30,0x7e,0x50,0x7, 0xac,0x5e,0x2e,0x24,0x0, +0x81,0xb, 0x28,0x30,0x12,0x1f,0x39,0x1b,0x28,0x30,0xb, 0xe0,0xe5,0x2d,0xbc,0xbe, +0x38,0xd4,0x4c,0xdd,0x78,0xa, 0x7e,0xb3,0x3, 0xd3,0x44,0x10,0x7a,0xb3,0x3, 0xd3, +0x6c,0x11,0x6c,0xee,0x6c,0xff,0x80,0x11,0x12,0x1f,0x4f,0x78,0xa, 0xbe,0x0, 0xff, +0x68,0x5, 0x12,0x1f,0x97,0x80,0x8, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xe9,0xb, +0xe0,0xbe,0xe0,0x5, 0x78,0xde,0x6c,0xee,0x7e,0xf1,0x2d,0x80,0x11,0x12,0x1f,0x4f, +0x78,0xa, 0xbe,0x0, 0xff,0x68,0x5, 0x12,0x1f,0x97,0x80,0x7, 0xb, 0xf0,0xbe,0xf0, +0x5, 0x40,0xea,0xb, 0xe0,0xbe,0xe0,0x5, 0x78,0xde,0x6c,0xff,0x6c,0xee,0x80,0x17, +0x74,0x7, 0xac,0xbe,0x9, 0xa5,0xd, 0xd3,0x7e,0x70,0x7, 0xac,0x7f,0x9, 0x3, 0x0, +0x83,0xbc,0xa, 0x68,0x6, 0xb, 0xe0,0xbc,0x1e,0x38,0xe5,0xbc,0x1e,0x78,0x19,0x7e, +0x70,0x7, 0xac,0x7f,0x2e,0x34,0x0, 0x7f,0x7e,0x30,0x7, 0xac,0x31,0x2e,0x14,0xd, +0xcf,0x74,0x7, 0x12,0x1, 0x39,0xb, 0x10,0xb, 0xf0,0xbe,0xf0,0x5, 0x78,0xbd,0x7e, +0x24,0xd, 0xcf,0x7e,0x34,0x3, 0xaa,0x12,0x1e,0xb3,0x4c,0xdd,0x78,0xd, 0x7e,0x24, +0x0, 0x7f,0x7e,0x34,0x3, 0xaa,0x12,0x1e,0xb3,0xc1,0x22,0x7e,0xb3,0x3, 0xd3,0x30, +0xe3,0x2, 0xc1,0x22,0x6c,0xff,0xc1,0x1a,0x6c,0xee,0x7e,0x70,0x7, 0xac,0x7f,0x9, +0x43,0x0, 0x83,0x74,0x7, 0xac,0xbe,0x9, 0x55,0x3, 0xae,0xbc,0x54,0x68,0x7, 0xb, +0xe0,0xbe,0xe0,0x5, 0x40,0xe4,0x7e,0x50,0x7, 0xac,0x5e,0x9, 0x12,0x3, 0xae,0x7a, +0x11,0x2e,0x2e,0x10,0x2f,0x74,0x1, 0xa5,0xf7,0x49,0x33,0x0, 0x81,0x49,0x22,0x3, +0xac,0x12,0x1e,0xc3,0x7d,0x63,0x12,0x1e,0xba,0x74,0x7, 0xac,0xbe,0x49,0x25,0x3, +0xaa,0x12,0x1e,0xdc,0x7a,0x35,0x29,0x12,0x1e,0xd3,0x7e,0xa1,0x2e,0x74,0x7, 0xa4, +0x49,0x25,0xd, 0xa4,0x12,0x1e,0xc3,0x7d,0x63,0x12,0x1e,0xba,0x7e,0xa1,0x2e,0x74, +0x7, 0xa4,0x49,0x25,0xd, 0xa2,0x12,0x1e,0xdc,0x7e,0x17,0x3, 0x17,0xbe,0x15,0x27, +0x38,0x9, 0x7e,0x4, 0x1, 0x0, 0x7a,0x5, 0x2b,0x80,0x1e,0x7e,0x35,0x29,0x6d,0x22, +0x7c,0x56,0x7c,0x67,0x6c,0x77,0x12,0x0, 0xb2,0x7a,0x35,0x2b,0xbe,0x34,0x0, 0x10, +0x50,0x7, 0x7e,0x34,0x0, 0x10,0x7a,0x35,0x2b,0x7e,0x35,0x2b,0xbe,0x34,0x1, 0x0, +0x28,0x7, 0x7e,0x34,0x1, 0x0, 0x7a,0x35,0x2b,0x7e,0xa1,0x2e,0x74,0x2, 0xa4,0x49, +0x45,0xd, 0xc5,0xbe,0x45,0x27,0x28,0x9, 0x49,0x45,0xd, 0x98,0x7a,0x45,0x2b,0x80, +0x7, 0x7e,0x45,0x2b,0x59,0x45,0xd, 0x98,0x7e,0x35,0x27,0x59,0x35,0xd, 0xc5,0x12, +0x1e,0xba,0x7e,0x50,0x7, 0xac,0x5e,0x2e,0x24,0x3, 0xaa,0x7e,0x15,0x2b,0x12,0x1e, +0xe5,0x12,0x1e,0xd3,0x7e,0x50,0x7, 0xac,0x5e,0x2e,0x24,0x3, 0xac,0x7e,0x15,0x2b, +0x12,0x1e,0xe5,0x12,0x1f,0x1f,0x7e,0x71,0x2e,0x74,0x7, 0xac,0x7b,0x2e,0x34,0xd, +0xa2,0x7e,0x14,0x0, 0x7, 0x12,0x3, 0x88,0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x28,0x2, +0xa1,0x8, 0x7e,0x24,0x3, 0xaa,0x7e,0x34,0x0, 0x7f,0x12,0x1e,0xb3,0x6c,0xff,0x12, +0x1f,0x1f,0x12,0x1f,0x29,0x1b,0x28,0x30,0x7e,0x50,0x7, 0xac,0x5f,0x2e,0x24,0x0, +0x81,0x12,0x1f,0x29,0x1b,0x28,0x30,0x7c,0x1f,0x2e,0x10,0x2f,0xa5,0xe7,0x70,0x18, +0x7e,0x34,0xff,0xff,0x74,0x7, 0xac,0xbf,0x59,0x35,0xd, 0xa2,0x74,0x7, 0xac,0xbf, +0x12,0x1f,0x16,0xac,0xbf,0x12,0x1f,0x42,0xb, 0xf0,0xbe,0xf0,0x5, 0x78,0xc0,0x7e, +0xb3,0x3, 0xd3,0x44,0x1, 0x7a,0xb3,0x3, 0xd3,0xe5,0x2d,0xbe,0xb0,0x0, 0x28,0x30, +0x7e,0x24,0x0, 0x7f,0x7e,0x34,0x3, 0x87,0x12,0x1e,0xb3,0x6c,0xff,0x12,0x1e,0xba, +0x12,0x2e,0x95,0x74,0x7, 0xac,0xbf,0x59,0x35,0x3, 0x87,0x12,0x1e,0xd3,0x12,0x2e, +0xbe,0x74,0x7, 0xac,0xbf,0x59,0x35,0x3, 0x89,0xb, 0xf0,0xbe,0xf0,0x5, 0x78,0xdd, +0xda,0x3b,0x22,0x7e,0x14,0x0, 0x23,0x2, 0x3, 0x88,0x74,0x7, 0xac,0xbf,0x49,0x35, +0x0, 0x7f,0x22,0x7d,0x13,0xbd,0x21,0x50,0x5, 0x7d,0x31,0x9d,0x32,0x22,0x7d,0x32, +0x9d,0x31,0x22,0x74,0x7, 0xac,0xbf,0x49,0x35,0x0, 0x81,0x22,0x12,0x1e,0xc3,0x2d, +0x36,0x7a,0x35,0x27,0x22,0xca,0x3b,0x7a,0x15,0x34,0x7d,0x72,0x7d,0x63,0xb, 0x78, +0x20,0x12,0x1e,0xc3,0x7d,0x23,0x7e,0x35,0x34,0xad,0x23,0x12,0x1f,0xe5,0x7d,0x23, +0xb, 0x78,0x30,0xbd,0x36,0x50,0x7, 0x2d,0x23,0x1b,0x78,0x20,0x80,0x5, 0x9d,0x32, +0x1b,0x78,0x30,0xda,0x3b,0x22,0x59,0x35,0xd, 0xa4,0x6d,0x44,0x74,0x2, 0x22,0x7e, +0x50,0x7, 0xac,0x5f,0x2e,0x24,0x0, 0x7f,0x22,0xb, 0x28,0x30,0x1e,0x34,0x1e,0x34, +0x1e,0x34,0x1e,0x34,0x22,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e, +0x34,0x22,0x59,0x45,0xd, 0xc5,0x7e,0x34,0x1, 0x0, 0x59,0x35,0xd, 0x98,0x22,0x74, +0x7, 0xac,0xbf,0x9, 0x75,0x0, 0x83,0x74,0x7, 0xac,0xbe,0x9, 0x5, 0x3, 0xae,0xbc, +0x7, 0x22,0x7e,0x73,0x0, 0xa2,0x7a,0x73,0x6, 0x8e,0x7e,0x24,0x0, 0x7f,0x7e,0x34, +0x6, 0x4d,0x12,0x1e,0xb3,0x12,0x29,0xe, 0x12,0x46,0x44,0x7e,0x24,0x6, 0x4d,0x7e, +0x34,0x0, 0x7f,0x12,0x1e,0xb3,0x7e,0x73,0x6, 0x8e,0x7a,0x73,0x6, 0x8f,0x7e,0x73, +0x6, 0x8e,0x7a,0x73,0x0, 0xa2,0x22,0x74,0x7, 0xac,0xb1,0x19,0x5, 0xd, 0xd3,0x74, +0x7, 0xac,0xbe,0x49,0x35,0x3, 0xaa,0x74,0x7, 0xac,0xb1,0x59,0x35,0xd, 0xcf,0x74, +0x7, 0xac,0xbe,0x49,0x35,0x3, 0xac,0x74,0x7, 0xac,0xb1,0x59,0x35,0xd, 0xd1,0x74, +0x7, 0xac,0xbf,0x9, 0x5, 0x0, 0x84,0x74,0x7, 0xac,0xb1,0x19,0x5, 0xd, 0xd4,0x74, +0x7, 0xac,0xbf,0x9, 0x5, 0x0, 0x85,0x74,0x7, 0xac,0xb1,0x19,0x5, 0xd, 0xd5,0xb, +0x10,0x22,0x12,0x0, 0xb2,0x7c,0x76,0x7c,0x65,0xa, 0x24,0x22,0x12,0x1f,0x35,0x3e, +0x34,0x2e,0x34,0xc0,0x0, 0xa, 0x2b,0x2d,0x32,0x22,0xca,0x3b,0x7e,0xb3,0x0, 0xa2, +0xbe,0xb0,0x2, 0x50,0x2, 0x41,0x46,0xf5,0x32,0x7e,0x64,0x8, 0xaf,0x7e,0x73,0x0, +0x61,0x7a,0x73,0xd, 0xcf,0x7e,0x73,0x0, 0x62,0x7a,0x73,0xd, 0xd0,0x75,0x2f,0x1, +0x7e,0xf0,0x1, 0x41,0xd, 0x74,0x2, 0xac,0xbf,0x9, 0x65,0x0, 0x61,0x7a,0x61,0x35, +0x9, 0x55,0x0, 0x62,0x7a,0x51,0x36,0x1e,0x60,0x7e,0x70,0xc, 0xac,0x67,0x1e,0x50, +0xa, 0x25,0x2d,0x32,0x7a,0x35,0x33,0x6c,0xee,0x21,0xe7,0x12,0x22,0x70,0x12,0x22, +0x4f,0x68,0x43,0xe5,0x36,0x1a,0x3e,0x12,0x22,0x49,0x68,0x3a,0x1a,0x3e,0x3e,0x34, +0x9, 0x43,0xd, 0xcf,0x1e,0x40,0x7e,0x50,0xc, 0xac,0x45,0x9, 0x33,0xd, 0xd0,0x1e, +0x30,0xa, 0x13,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x10,0x7e,0x25,0x33,0x12, +0x22,0x7f,0xbd,0x12,0x48,0x2, 0x21,0xe0,0xe5,0x35,0x19,0xb3,0xd, 0xcf,0xe5,0x36, +0x19,0xb3,0xd, 0xd0,0x21,0xe0,0x12,0x22,0x70,0x7e,0x60,0x6, 0x12,0x22,0x52,0x78, +0x2, 0x21,0xe5,0xe5,0x36,0x1a,0x3e,0x3e,0x34,0x9, 0x73,0xd, 0xd0,0x7e,0x60,0x6, +0x12,0x22,0x52,0x78,0x2, 0x21,0xe5,0x1a,0x3e,0x3e,0x34,0x9, 0xa3,0xd, 0xcf,0x1e, +0xa0,0x7e,0x90,0x2, 0xac,0x9f,0x9, 0xb4,0x0, 0x61,0x1e,0xb0,0x2c,0xba,0xf5,0x30, +0x9, 0xa3,0xd, 0xd0,0x1e,0xa0,0x9, 0xb4,0x0, 0x62,0x1e,0xb0,0x2c,0xba,0xf5,0x31, +0x6d,0x33,0x80,0x28,0x1a,0x3e,0xbe,0x35,0x27,0x68,0x1c,0xe5,0x30,0x7e,0x35,0x27, +0x12,0x22,0x74,0x12,0x22,0x4f,0x68,0xf, 0xe5,0x31,0x7e,0x35,0x27,0x12,0x22,0x49, +0x68,0x5, 0x75,0x30,0xff,0x80,0x11,0x7e,0x35,0x27,0xb, 0x34,0x7a,0x35,0x27,0xe5, +0x2f,0xa, 0x3b,0xbe,0x35,0x27,0x18,0xcc,0xe5,0x30,0xbe,0xb0,0xff,0x78,0x2, 0x21, +0xe5,0x1a,0x1e,0x3e,0x14,0x9, 0x1, 0xd, 0xcf,0x1e,0x0, 0x7e,0x10,0xc, 0xac,0x1, +0x9, 0x71,0xd, 0xd0,0x1e,0x70,0xa, 0x37,0x2d,0x3, 0x3e,0x4, 0x2d,0x6, 0xb, 0x8, +0x20,0x7e,0x35,0x33,0x3e,0x34,0x2d,0x36,0xb, 0x38,0x30,0xbd,0x23,0x8, 0x5, 0x7a, +0x25,0x29,0x80,0x3, 0x7a,0x35,0x29,0x7e,0x35,0x29,0x7d,0x23,0xe, 0x24,0xe, 0x24, +0xe, 0x34,0x2d,0x32,0x7a,0x35,0x29,0xbe,0x34,0x0, 0x55,0x58,0x7, 0x7e,0x34,0x0, +0x55,0x7a,0x35,0x29,0xe5,0x30,0x1a,0x1b,0xb, 0x14,0xe, 0x14,0x7e,0x44,0x0, 0xc, +0xad,0x14,0x7e,0x71,0x31,0x1e,0x70,0xa, 0x37,0x12,0x22,0x7b,0x7e,0x11,0x30,0xe, +0x10,0x1a,0x1, 0x7d,0x50,0xad,0x54,0x2d,0x35,0x12,0x26,0xdd,0x7a,0x35,0x2b,0xe, +0x34,0x7a,0x35,0x2b,0xe5,0x31,0xa, 0x3b,0xb, 0x34,0xe, 0x34,0x12,0x22,0x7b,0x7e, +0x14,0x0, 0xc, 0xad,0x10,0x2d,0x31,0x12,0x26,0xdd,0x7a,0x35,0x2d,0xe, 0x34,0x7a, +0x35,0x2d,0x2e,0x35,0x2b,0xe, 0x34,0xbe,0x35,0x29,0x48,0x19,0xe5,0x30,0x1a,0x3e, +0x3e,0x34,0x19,0xb3,0xd, 0xcf,0xe5,0x31,0x1a,0x3e,0x3e,0x34,0x19,0xb3,0xd, 0xd0, +0x7e,0xe0,0xff,0x80,0xa, 0xb, 0xe0,0xe5,0x2f,0xbc,0xbe,0x8, 0x2, 0x1, 0x4b,0xe5, +0x2f,0xbc,0xbe,0x78,0x16,0x7e,0xa1,0x35,0x7e,0x71,0x2f,0x74,0x2, 0xac,0x7b,0x19, +0xa3,0xd, 0xcf,0xe5,0x36,0x19,0xb3,0xd, 0xd0,0x5, 0x2f,0xb, 0xf0,0xe5,0x32,0xbc, +0xbf,0x28,0x2, 0x1, 0x25,0xe5,0x2f,0xbe,0xb0,0x0, 0x28,0x24,0x6c,0xff,0x80,0x1a, +0x74,0x2, 0xac,0xbf,0x9, 0x75,0xd, 0xcf,0x19,0x75,0x0, 0x61,0x74,0x2, 0xac,0xbf, +0x9, 0x75,0xd, 0xd0,0x19,0x75,0x0, 0x62,0xb, 0xf0,0xe5,0x2f,0xbc,0xbf,0x38,0xe0, +0xe5,0x2f,0x7a,0xb3,0x0, 0xa2,0xda,0x3b,0x22,0x3e,0x34,0x9, 0x73,0xd, 0xd0,0x7e, +0x60,0x2, 0x12,0x22,0x5a,0xa, 0x3b,0x4d,0x33,0x22,0x7c,0xa6,0x7c,0x57,0xa, 0x3b, +0xa, 0x25,0x12,0x1e,0xc3,0xa, 0x2a,0xbd,0x32,0x38,0x3, 0x74,0x1, 0x22,0xe4,0x22, +0xe5,0x35,0x1a,0x3e,0x3e,0x34,0x9, 0x73,0xd, 0xcf,0x22,0x7d,0x21,0x2d,0x23,0x3e, +0x24,0x2d,0x26,0xb, 0x28,0x20,0x22,0xca,0x3b,0x7e,0xb3,0x0, 0xa2,0xf5,0x28,0x7e, +0x67,0x6, 0x94,0x7e,0xb3,0xa, 0xd8,0xf5,0x2d,0x7e,0xb3,0xa, 0xd9,0xf5,0x2e,0x15, +0x2d,0x7e,0x24,0xa, 0x8f,0x7e,0x34,0xd, 0xcf,0x12,0x26,0xcc,0xe5,0x28,0xbe,0xb0, +0x0, 0x38,0x2, 0x61,0xa0,0x6c,0xff,0x6c,0xee,0x61,0x94,0x7e,0x70,0x2, 0xac,0x7e, +0x9, 0xb3,0x0, 0x61,0x1e,0xb0,0xf5,0x29,0x9, 0xb3,0x0, 0x62,0x1e,0xb0,0xf5,0x2a, +0x74,0x2, 0x12,0x23,0xa3,0x7e,0x51,0x2a,0xac,0x5b,0x7e,0x71,0x29,0x12,0x27,0xe, +0x49,0x33,0x8, 0xaf,0xbd,0x36,0x50,0x2, 0x61,0x8d,0xe5,0x29,0xbe,0xb0,0x1, 0x28, +0x23,0xe5,0x2d,0xa, 0x2b,0x1b,0x25,0xe5,0x29,0xa, 0x3b,0xbd,0x32,0x58,0x15,0xe5, +0x2a,0xbe,0xb0,0x1, 0x28,0xe, 0xe5,0x2e,0xa, 0x2b,0x1b,0x25,0xe5,0x2a,0xa, 0x3b, +0xbd,0x32,0x48,0x5, 0x74,0x1, 0x12,0x23,0xa3,0x75,0x27,0x0, 0x80,0x3a,0xbe,0xe1, +0x27,0x68,0x33,0x7e,0xa1,0x27,0x12,0x26,0xe7,0x7a,0x71,0x2b,0x9, 0xb5,0x0, 0x62, +0x1e,0xb0,0xf5,0x2c,0xe5,0x29,0x7e,0x60,0x3, 0x12,0x22,0x5a,0xbe,0xb0,0x1, 0x68, +0xe, 0xe5,0x2a,0x7e,0x71,0x2c,0x7e,0x60,0x3, 0x12,0x22,0x5a,0xb4,0x1, 0x7, 0x74, +0x1, 0x12,0x23,0xa3,0x80,0x9, 0x5, 0x27,0xe5,0x28,0xbe,0xb1,0x27,0x38,0xbf,0x7a, +0xe3,0x1, 0xca,0x7a,0xf3,0x1, 0xcb,0xe5,0x29,0xbe,0xb0,0x14,0x50,0xc, 0x7e,0x34, +0xa, 0x8f,0x7e,0x24,0x0, 0x18,0xe4,0x12,0x0, 0x46,0x12,0x26,0xf1,0x12,0x23,0xaa, +0x7e,0x24,0xd, 0xcf,0x7e,0x34,0xa, 0x8f,0x12,0x26,0xcc,0xb, 0xf0,0xbe,0xf0,0x5, +0x50,0xa, 0xb, 0xe0,0xe5,0x28,0xbc,0xbe,0x28,0x2, 0x41,0xbb,0x7a,0xf3,0x0, 0xa2, +0xda,0x3b,0x22,0xa, 0x3e,0x19,0xb3,0x1, 0xbb,0x22,0xca,0x3b,0x7d,0xd0,0x7d,0xc1, +0x7d,0x93,0x6c,0xaa,0x6c,0x77,0x6d,0x88,0x7a,0x87,0xd, 0xe7,0x7a,0x87,0xd, 0xe9, +0x7e,0xa4,0x0, 0x1, 0x9, 0x6d,0x1, 0x69,0x9, 0xbd,0x1, 0x6a,0xf5,0x2f,0xa, 0x46, +0x2d,0x4d,0x9, 0x34,0x1, 0x5a,0x49,0x4c,0x0, 0x13,0x7d,0x9, 0x2e,0x4, 0x1, 0xf8, +0x7d,0xb9,0x2e,0xb4,0x3, 0xf0,0x6c,0x22,0x7e,0xf0,0x7, 0xac,0xfb,0x7d,0x87,0x2d, +0x8d,0x19,0x28,0x0, 0x23,0xe4,0x7d,0x87,0x2d,0x8d,0x19,0xb8,0x0, 0x24,0x7e,0xf0, +0x2, 0xac,0xf6,0x7d,0x87,0x2d,0x8d,0x7e,0x89,0x20,0x1e,0x20,0x7e,0xd0,0xc, 0xac, +0xd2,0x9, 0x28,0x0, 0x1, 0x1e,0x20,0xa, 0x82,0x2d,0x86,0x7a,0xb3,0xd, 0xf7,0x3e, +0x84,0x2d,0x80,0xb, 0x88,0x60,0xb, 0xc8,0x80,0xbd,0x68,0x48,0x6, 0x74,0x1, 0x7a, +0xb3,0xd, 0xf7,0x7d,0xa9,0x2e,0xa4,0x1, 0xf8,0x7d,0x6a,0xa, 0x6c,0x7c,0xbd,0xf5, +0xba,0x7d,0x6a,0x7c,0xbd,0xf5,0xb9,0x7d,0x97,0x2d,0x9d,0x12,0x26,0xc1,0xbd,0x89, +0x40,0x15,0x12,0x26,0xb7,0x9, 0x79,0x0, 0x1, 0x1e,0x70,0xa, 0x97,0xa, 0x83,0x9d, +0x98,0x7d,0x79,0x7c,0x7f,0x80,0x2, 0x6c,0x77,0x7a,0x71,0xbb,0x12,0x26,0xb7,0x7e, +0x99,0x20,0x12,0x26,0xc5,0xbd,0x89,0x40,0xa, 0xa, 0x93,0x7d,0x58,0x9d,0x59,0x7c, +0xab,0x80,0x2, 0x6c,0xaa,0x1a,0x9a,0x3e,0x94,0x3e,0x94,0x3e,0x94,0x3e,0x94,0x7d, +0x79,0x7c,0x2f,0x7c,0xb2,0x42,0xbb,0x7c,0xba,0xe, 0xb0,0xe, 0xb0,0xe, 0xb0,0xe, +0xb0,0xf5,0xbc,0x9, 0x2c,0x0, 0x22,0xa, 0x92,0x3e,0x94,0x3e,0x94,0x5e,0x94,0x0, +0xf0,0x7d,0x79,0x7c,0x2f,0x7c,0xb2,0x42,0xbc,0x75,0xc3,0x0, 0x12,0x26,0xb7,0x12, +0x26,0xc1,0x2d,0x98,0x9, 0x22,0x0, 0x1, 0xa, 0x82,0xbd,0x98,0x50,0x2, 0x80,0x4, +0xa, 0x92,0x1b,0x94,0x7d,0x79,0x7c,0xbf,0xf5,0x31,0x9, 0x22,0x0, 0x2f,0x7c,0xb2, +0xc4,0x33,0x54,0xe0,0x7c,0x2b,0xe5,0x31,0x9c,0xb7,0x4, 0x4c,0xb2,0xf5,0xc3,0x12, +0x26,0xb7,0x7e,0x99,0x20,0x12,0x26,0xc5,0x2d,0x98,0x7e,0x29,0x20,0xa, 0x82,0xbd, +0x98,0x50,0x4, 0x7d,0x79,0x80,0x6, 0xa, 0xa2,0x1b,0xa4,0x7d,0x7a,0x7c,0xbf,0xf5, +0x30,0x1a,0x9a,0xe5,0x30,0x1a,0xab,0x9d,0xa9,0xb, 0xa4,0x7d,0x7a,0x7c,0xbf,0xf5, +0xc4,0x7e,0xa4,0xd, 0xf8,0x7d,0x7a,0xa, 0x7e,0x7c,0xbf,0xf5,0xc1,0x7d,0x7a,0x7c, +0xbf,0xf5,0xbd,0x75,0xc2,0x7, 0x80,0x3, 0x43,0xc2,0x1, 0x0, 0x0, 0x0, 0x0, 0xe5, +0xc2,0x30,0xe7,0xf4,0x75,0xc2,0x0, 0x7e,0x7f,0xe, 0x0, 0x7a,0x7f,0xd, 0xf3,0x7e, +0x7f,0xe, 0x4, 0x7a,0x7f,0xd, 0xeb,0x7e,0x7f,0xd, 0xfc,0x7a,0x7f,0xd, 0xef,0x7e, +0x7f,0xd, 0xf8,0x74,0x2, 0xac,0xb6,0x2d,0x5d,0x7e,0x59,0xa0,0x1e,0xa0,0x9c,0xa3, +0xc1,0xf, 0x12,0x26,0xd3,0x9, 0x7a,0x0, 0x1, 0x1e,0x70,0x9c,0x73,0x80,0x79,0xbe, +0xa0,0x0, 0x48,0x72,0x7e,0x29,0x20,0xbc,0x2a,0x8, 0x6b,0xbe,0x70,0x0, 0x48,0x66, +0x9, 0x22,0x0, 0x1, 0xbc,0x27,0x8, 0x5e,0x1a,0x8a,0x7e,0x94,0x0, 0xc, 0xad,0x98, +0x1a,0xa7,0x2d,0xa9,0x7d,0x9a,0x3e,0x94,0x2d,0x90,0xb, 0x98,0x90,0xbd,0x94,0x48, +0x16,0x7e,0xf1,0x2f,0x74,0x7, 0xac,0xfb,0x7d,0x97,0x2d,0x9d,0x2e,0x94,0x0, 0x24, +0x7e,0x99,0xb0,0x4, 0x7a,0x99,0xb0,0x7e,0xb3,0xd, 0xf7,0xb4,0x1, 0x28,0x7d,0x9a, +0x5e,0x94,0x0, 0x7, 0x2e,0x94,0x3, 0xd4,0x7d,0x79,0x7a,0xf1,0x82,0x7a,0xe1,0x83, +0xe4,0x93,0x64,0xff,0x7d,0x9a,0x1e,0x94,0x1e,0x94,0x1e,0x94,0x2d,0x9b,0x7e,0x99, +0x20,0x5c,0x2b,0x7a,0x99,0x20,0xb, 0x70,0x12,0x26,0xb7,0x9, 0xb9,0x0, 0x1, 0x1e, +0xb0,0x2c,0xb3,0x1a,0x8b,0x1a,0x97,0xbd,0x98,0x18,0x2, 0xa1,0x7f,0xb, 0xa0,0x12, +0x26,0xd3,0x7e,0xa9,0xb0,0x1e,0xb0,0x2c,0xb3,0x1a,0x9b,0x1a,0xaa,0xbd,0xa9,0x18, +0x2, 0xa1,0x72,0x74,0x6, 0x7e,0x1f,0xd, 0xeb,0x2f,0x11,0x14,0x78,0xfb,0x7a,0x1f, +0xd, 0xeb,0x7e,0xf, 0xd, 0xf3,0x7e,0x1f,0xd, 0xeb,0x12,0x0, 0xb4,0x7d,0xb3,0x2e, +0xb4,0x0, 0x20,0x7a,0xb7,0xd, 0xe7,0x74,0x6, 0x7e,0x1f,0xd, 0xef,0x2f,0x11,0x14, +0x78,0xfb,0x7a,0x1f,0xd, 0xef,0x7f,0x7, 0x12,0x0, 0xb4,0x7d,0x23,0x2e,0x24,0x0, +0x20,0x7a,0x27,0xd, 0xe9,0x7e,0x71,0x2f,0x74,0x7, 0xac,0x7b,0x7d,0xa3,0x2d,0xad, +0x59,0xba,0x0, 0x1e,0x7d,0x13,0x2d,0x1d,0x59,0x21,0x0, 0x20,0x9, 0xbc,0x0, 0x12, +0x60,0xd, 0x1e,0xf4,0x1e,0xe4,0x50,0x4, 0x4e,0xf4,0x80,0x0, 0x14,0x78,0xf3,0xbe, +0x78,0x0, 0x7f,0x28,0x4, 0x7e,0x78,0x0, 0x7f,0x7d,0x2f,0x7d,0xc3,0x2d,0xcd,0x19, +0x5c,0x0, 0x23,0x2d,0x3d,0x9, 0x53,0x0, 0x24,0xbe,0x50,0xf, 0x28,0x6, 0x74,0xf, +0x19,0xb3,0x0, 0x24,0xda,0x3b,0x22,0x7e,0xf0,0x2, 0xac,0xf6,0x7d,0x97,0x2d,0x9d, +0x22,0x9, 0x29,0x0, 0x1, 0x1e,0x20,0xa, 0x82,0xa, 0x93,0x22,0x7e,0x14,0x0, 0x18, +0x2, 0x3, 0x88,0x7e,0xf0,0x2, 0xac,0xf6,0x7d,0xa7,0x2d,0xad,0x22,0x3e,0x34,0x2d, +0x36,0xb, 0x38,0x30,0x2d,0x32,0x22,0x74,0x2, 0xa4,0x9, 0x75,0x0, 0x61,0x1e,0x70, +0x22,0x7e,0x34,0x6, 0xb7,0x7e,0x24,0xa, 0xd8,0x7e,0x14,0x6, 0x94,0x7e,0x4, 0x0, +0x61,0x22,0x9, 0x47,0x0, 0x1, 0x7e,0x50,0x2, 0xac,0x45,0x7e,0x71,0x2c,0x74,0x18, +0xac,0x7b,0x2d,0x32,0x22,0xca,0x3b,0x6d,0x33,0x7a,0x35,0x27,0x75,0x2b,0x0, 0x75, +0x2c,0x0, 0x7e,0x23,0x0, 0xa2,0x7a,0x21,0x29,0x7e,0x34,0x8, 0xaf,0x7a,0x37,0xd, +0xcf,0x7e,0x30,0x2, 0xac,0x23,0x7e,0x24,0x0, 0x61,0x7e,0x34,0xd, 0xd1,0x12,0x3, +0x88,0xe5,0x29,0xbe,0xb0,0x5, 0x38,0x3, 0x2, 0x28,0xcb,0x75,0x2a,0x0, 0x6c,0xff, +0x2, 0x28,0x1, 0x7e,0x34,0x3, 0xff,0x7a,0x35,0x2d,0x75,0x2c,0xff,0x6c,0xee,0x80, +0x52,0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0xd, 0xd1,0xbe,0xb0,0xff,0x68,0x42,0x9, +0x73,0xd, 0xd2,0xa, 0x27,0x74,0x2, 0xac,0xbf,0x9, 0x75,0xd, 0x7b,0xa, 0x37,0x12, +0x47,0xc5,0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0xd1,0xa, 0x27,0x74,0x2, 0xac,0xbf, +0x9, 0x75,0xd, 0x7a,0xa, 0x37,0x9d,0x32,0x12,0x0, 0x2e,0x2d,0x36,0x7a,0x35,0x2f, +0x7e,0x35,0x2d,0xbe,0x35,0x2f,0x28,0x9, 0x7e,0x35,0x2f,0x7a,0x35,0x2d,0x7a,0xe1, +0x2c,0xb, 0xe0,0xe5,0x29,0xbc,0xbe,0x38,0xa8,0xe5,0x2c,0xbe,0xb0,0xff,0x68,0x3f, +0x7e,0x71,0x2c,0x74,0x2, 0xac,0x7b,0x9, 0x33,0xd, 0xd1,0x7c,0x43,0x1e,0x40,0x7e, +0x50,0xc, 0xac,0x45,0x9, 0xa3,0xd, 0xd2,0x7c,0x2a,0x1e,0x20,0xa, 0x2, 0x2d,0x20, +0x12,0x2e,0x8b,0xbe,0x24,0x0, 0x55,0x48,0x16,0xe5,0x2a,0x1a,0x2b,0x3e,0x24,0x19, +0x32,0xd, 0xef,0x19,0xa2,0xd, 0xf0,0x74,0xff,0x19,0xb3,0xd, 0xd1,0x5, 0x2a,0xb, +0xf0,0xe5,0x5c,0xbc,0xbf,0x28,0x3, 0x2, 0x27,0x53,0x7e,0xf1,0x2a,0x1, 0xb2,0x6d, +0x33,0x7a,0x35,0x27,0x7e,0xa0,0xff,0x6c,0xee,0x80,0x6c,0x7e,0x90,0x2, 0xac,0x9e, +0x9, 0x44,0xd, 0xd1,0xbe,0x40,0xff,0x68,0x5c,0x1e,0x40,0x7e,0x50,0xc, 0xac,0x45, +0x9, 0xb4,0xd, 0xd2,0x1e,0xb0,0xa, 0x3b,0x2d,0x23,0x3e,0x24,0x2e,0x27,0xd, 0xcf, +0xb, 0x28,0x30,0xbe,0x34,0x0, 0x0, 0x58,0x5, 0x6d,0x33,0x1b,0x28,0x30,0x7e,0x50, +0x2, 0xac,0x5e,0x9, 0x62,0xd, 0xd1,0x7c,0x76,0x1e,0x70,0x7e,0x30,0xc, 0xac,0x37, +0x9, 0x72,0xd, 0xd2,0x7c,0xb7,0x1e,0xb0,0xa, 0xb, 0x2d,0x10,0x3e,0x14,0x2e,0x17, +0xd, 0xcf,0xb, 0x18,0x40,0xbe,0x45,0x27,0x48,0xb, 0x7a,0x61,0x2b,0x7a,0x71,0x2c, +0x7a,0x45,0x27,0x7c,0xae,0xb, 0xe0,0xe5,0x29,0xbc,0xbe,0x38,0x8e,0xbe,0xa0,0xff, +0x68,0x1e,0x7e,0x71,0x2b,0x7e,0x90,0x2, 0xac,0x9f,0x19,0x74,0xd, 0xef,0xe5,0x2c, +0x19,0xb4,0xd, 0xf0,0x7e,0x70,0xff,0x7e,0x50,0x2, 0xac,0x5a,0x19,0x72,0xd, 0xd1, +0xb, 0xf0,0xbe,0xf0,0x5, 0x50,0x2, 0x1, 0xf, 0x7e,0x24,0xd, 0xef,0x7e,0x34,0xd, +0xd1,0x7e,0x14,0x0, 0x1e,0x12,0x3, 0x88,0x75,0x29,0x5, 0x7e,0x34,0xd, 0x7a,0x12, +0x29,0x5, 0xe5,0x29,0xbe,0xb0,0x0, 0x28,0x18,0x12,0x28,0xfd,0x7e,0x24,0xd, 0xd1, +0x12,0x2b,0x3f,0x12,0x28,0xfd,0x7e,0x24,0xd, 0xd1,0x7e,0x34,0xd, 0x7a,0x12,0x3, +0x88,0x85,0x29,0x5c,0xe5,0x29,0x7a,0xb3,0x0, 0xa2,0xda,0x3b,0x22,0x7e,0x31,0x29, +0x74,0x2, 0xac,0x3b,0x22,0x7e,0x24,0x0, 0xa, 0x74,0xff,0x2, 0x0, 0x46,0xca,0x3b, +0x6c,0xdd,0x7e,0xa0,0xff,0x7e,0x70,0x7, 0xac,0x7d,0x19,0xa3,0x6, 0x51,0x7c,0x1d, +0x2e,0x10,0x27,0xe4,0xa5,0xf7,0xb, 0xd0,0xbe,0xd0,0x5, 0x78,0xe5,0x7e,0xc3,0x6, +0x8e,0x4c,0xcc,0x78,0x18,0x7e,0xb3,0x6, 0x8f,0x70,0x2, 0x41,0xb5,0x7e,0x34,0x6, +0x7a,0x12,0x29,0x5, 0x7e,0x34,0x6, 0x84,0x12,0x29,0x5, 0x41,0xb5,0x7e,0xb3,0x6, +0x8f,0x70,0x1f,0xbe,0xc0,0x1, 0x78,0x1a,0x7e,0x37,0x6, 0x4d,0x7a,0x37,0x6, 0x7a, +0x7e,0x37,0x6, 0x4f,0x7a,0x37,0x6, 0x84,0x75,0x27,0x1, 0xe4,0x7a,0xb3,0x6, 0x51, +0x41,0xb5,0x6c,0xdd,0x7e,0x34,0xff,0xff,0x7e,0x50,0x2, 0xac,0x5d,0x59,0x32,0xd, +0xe3,0x7c,0xbd,0x7c,0xad,0x20,0xe0,0xb, 0x1e,0xa0,0x74,0x2, 0xa4,0x49,0x35,0x6, +0x7a,0x80,0x9, 0x1e,0xa0,0x74,0x2, 0xa4,0x49,0x35,0x6, 0x84,0x59,0x32,0xd, 0xcf, +0xb, 0xd0,0xbe,0xd0,0xa, 0x78,0xcd,0x6c,0xdd,0x80,0x25,0x7c,0xbd,0x7c,0xad,0x20, +0xe0,0xb, 0x1e,0xa0,0x74,0x7, 0xa4,0x49,0x35,0x6, 0x4d,0x80,0x9, 0x1e,0xa0,0x74, +0x7, 0xa4,0x49,0x35,0x6, 0x4f,0x74,0x2, 0xac,0xbd,0x59,0x35,0xd, 0xe3,0xb, 0xd0, +0x7e,0x73,0x6, 0x8e,0xa, 0x27,0x3e,0x24,0xa, 0x3d,0xbd,0x32,0x40,0xcd,0x7e,0x34, +0xd, 0xcf,0x7c,0xb7,0xf5,0xb9,0xa, 0x56,0xf5,0xba,0x7e,0x34,0xd, 0xe3,0x7c,0xb7, +0xf5,0xbb,0xa, 0x56,0xf5,0xbc,0x75,0xc3,0x5, 0x75,0xc2,0x2b,0x80,0x3, 0x75,0xc2, +0xb, 0x0, 0x0, 0x0, 0x0, 0xe5,0xc2,0x30,0xe7,0xf4,0x75,0xc2,0x0, 0x75,0xc5,0xe, +0xe5,0xc6,0xa, 0x1b,0xe5,0xc6,0x7c,0xb, 0x6c,0x11,0x4d,0x10,0x6c,0xdd,0x74,0x3, +0xac,0xbd,0x7d,0x1, 0x60,0x5, 0x1e,0x4, 0x14,0x78,0xfb,0x7d,0x50,0x5e,0x54,0x0, +0x7, 0x7c,0xab,0x1b,0xa0,0x7e,0xb3,0x6, 0x8e,0xbc,0xba,0x28,0x4c,0x7e,0x10,0x2, +0xac,0x1d,0x12,0x2b,0x36,0x78,0x19,0x6c,0xff,0x7e,0x10,0x2, 0xac,0x1f,0x12,0x2b, +0x36,0x78,0x4, 0x7c,0xef,0x80,0xb, 0xb, 0xf0,0xbe,0xf0,0x5, 0x40,0xeb,0x80,0x2, +0x7c,0xed,0x7e,0x50,0x7, 0xac,0x5a,0x19,0xe2,0x6, 0x51,0x7c,0x1e,0x2e,0x10,0x27, +0x74,0x1, 0xa5,0xf7,0x49,0x2, 0x6, 0x4d,0x7e,0x70,0x2, 0xac,0x7e,0x59,0x3, 0x6, +0x7a,0x49,0x2, 0x6, 0x4f,0x59,0x3, 0x6, 0x84,0xb, 0xd0,0xbe,0xd0,0x5, 0x78,0x8e, +0x6c,0xdd,0x12,0x2b,0x2e,0xbe,0xb0,0x1, 0x68,0x14,0x7e,0x44,0xff,0xff,0x74,0x2, +0xac,0xbd,0x59,0x45,0x6, 0x7a,0x7e,0x34,0xff,0xff,0x59,0x35,0x6, 0x84,0xb, 0xd0, +0xbe,0xd0,0x5, 0x78,0xdd,0x7e,0xf3,0x6, 0x8e,0x6c,0xdd,0x12,0x2b,0x2e,0xb4,0x1, +0x2d,0xa, 0x3d,0x9, 0xb3,0x6, 0x75,0xb4,0x1, 0x8, 0x74,0x3, 0xa, 0x3d,0x19,0xb3, +0x6, 0x75,0xa, 0x3d,0x9, 0xa3,0x6, 0x75,0xbe,0xa0,0x3, 0x78,0x9, 0xe4,0xa, 0x4d, +0x19,0xb4,0x6, 0x70,0x80,0x32,0x4c,0xaa,0x78,0x2e,0x74,0x2, 0x80,0x24,0xa, 0x3d, +0x9, 0xb3,0x6, 0x75,0xbe,0xb0,0x2, 0x68,0x2, 0x70,0x15,0x74,0x1, 0xa, 0x3d,0x19, +0xb3,0x6, 0x70,0x7c,0xaf,0xb, 0xf0,0x74,0x7, 0xa4,0x19,0xd5,0x6, 0x51,0x80,0x8, +0x74,0x3, 0xa, 0x3d,0x19,0xb3,0x6, 0x70,0xa, 0x3d,0x9, 0x73,0x6, 0x70,0xa, 0x2d, +0x19,0x72,0x6, 0x75,0xb, 0xd0,0xbe,0xd0,0x5, 0x40,0x90,0xda,0x3b,0x22,0x7c,0x1d, +0x2e,0x10,0x27,0xa5,0xe7,0x22,0x49,0x0, 0x6, 0x7a,0xbe,0x4, 0xff,0xff,0x22,0x7e, +0x34,0x0, 0x61,0x2, 0x3, 0x88,0xca,0x3b,0x7e,0xb3,0x0, 0xa2,0xf5,0x28,0x75,0x47, +0x0, 0x7e,0x35,0xd, 0xbe,0x34,0x0, 0x0, 0x28,0x3, 0x75,0xc, 0x1, 0x7e,0x35,0x19, +0xbe,0x34,0x0, 0x0, 0x28,0x3, 0x75,0x18,0x1, 0x6d,0x33,0x7a,0x35,0x50,0x7a,0x35, +0x54,0x7a,0x35,0x4c,0x6c,0xff,0x6c,0xee,0x1a,0x2e,0x3e,0x24,0x12,0x2d,0x3d,0x49, +0x63,0x8, 0xaf,0xbe,0x64,0x0, 0x32,0x48,0xa, 0x7d,0x36,0x2e,0x35,0x54,0x7a,0x35, +0x54,0x80,0x11,0xbe,0x64,0xff,0xce,0x18,0xb, 0x7d,0x36,0x12,0x0, 0x2e,0x2e,0x35, +0x50,0x7a,0x35,0x50,0xbe,0x64,0xff,0x9c,0x58,0x18,0x7e,0x35,0x4c,0xb, 0x34,0x7a, +0x35,0x4c,0xbe,0x34,0x0, 0xa, 0x28,0xa, 0x75,0xc, 0x1, 0x7e,0x34,0x3, 0xe8,0x7a, +0x35,0xd, 0xb, 0xe0,0xbe,0xe0,0xc, 0x78,0xaf,0xb, 0xf0,0xbe,0xf0,0x15,0x78,0xa6, +0xe5,0x28,0xbe,0xb0,0x0, 0x38,0x2, 0xa1,0x20,0x6c,0xff,0x81,0xed,0x74,0x2, 0xac, +0xbf,0x9, 0xe5,0x0, 0x61,0x1e,0xe0,0x7a,0xe1,0x48,0x9, 0x75,0x0, 0x62,0x1e,0x70, +0x7a,0x71,0x49,0x1a,0x17,0x12,0x2d,0x29,0x49,0x33,0x8, 0xaf,0x7a,0x35,0x4a,0x6d, +0x33,0x7a,0x35,0x4e,0x7a,0x35,0x52,0x1b,0xe0,0x80,0x62,0xe5,0x49,0x14,0xf5,0x27, +0x80,0x4b,0xbe,0xe0,0x0, 0x48,0x44,0xbe,0xe0,0x15,0x58,0x3f,0xe5,0x27,0xbe,0xb0, +0x0, 0x48,0x38,0xe5,0x27,0xbe,0xb0,0xc, 0x58,0x31,0xe5,0x48,0xbc,0xbe,0x78,0x7, +0xe5,0x49,0xbe,0xb1,0x27,0x68,0x24,0xe5,0x27,0x1a,0x1b,0x12,0x2d,0x29,0x49,0x63, +0x8, 0xaf,0xbe,0x64,0x0, 0x0, 0x7d,0x36,0x58,0xb, 0x12,0x0, 0x2e,0x2e,0x35,0x4e, +0x7a,0x35,0x4e,0x80,0x6, 0x2e,0x35,0x52,0x7a,0x35,0x52,0x5, 0x27,0xe5,0x49,0x1a, +0x2b,0xb, 0x24,0xe5,0x27,0x1a,0x3b,0xbd,0x32,0x8, 0xa7,0xb, 0xe0,0xe5,0x48,0x1a, +0x2b,0xb, 0x24,0x1a,0x3e,0xbd,0x32,0x8, 0x92,0x7e,0x35,0x54,0x2e,0x34,0x0, 0x64, +0xbe,0x35,0x50,0x58,0x1d,0x7e,0x25,0x4a,0xbe,0x24,0x0, 0xa0,0x50,0x9, 0x7e,0x35, +0x52,0xbe,0x34,0x1, 0x90,0x48,0x54,0x12,0x2d,0x36,0x12,0x1f,0x2c,0xbe,0x35,0x4e, +0x48,0x49,0x7e,0x35,0x52,0xbe,0x35,0x4e,0x48,0x41,0xe5,0xc, 0xbe,0xb0,0x1, 0x68, +0x5, 0xe5,0x18,0xb4,0x1, 0x11,0xbe,0x34,0x1, 0x90,0x8, 0x2f,0x7e,0x35,0x4a,0xbe, +0x34,0x0, 0xa0,0x28,0x26,0x80,0x0, 0x7e,0x30,0x2, 0xac,0x3f,0x9, 0xa1,0x0, 0x61, +0x7e,0x11,0x47,0x3e,0x10,0x7c,0x1, 0x2e,0x0, 0x29,0x7c,0xba,0xa5,0xf6,0x9, 0x1, +0x0, 0x62,0x2e,0x10,0x2a,0x7c,0xb0,0xa5,0xf7,0x5, 0x47,0xb, 0xf0,0xe5,0x28,0xbc, +0xbf,0x28,0x2, 0x61,0xdd,0xe5,0x47,0xbe,0xb0,0x0, 0x28,0xf, 0xe5,0x47,0xa, 0x1b, +0x3e,0x14,0x7e,0x24,0x0, 0x29,0x12,0x2b,0x3f,0x80,0xf, 0x7e,0x35,0x54,0xbe,0x35, +0x50,0x58,0x7, 0x7e,0x34,0x3, 0xe8,0x7a,0x35,0x19,0xe5,0x47,0x7a,0xb3,0x0, 0xa2, +0x75,0xc, 0x0, 0x75,0x18,0x0, 0xda,0x3b,0x22,0x3e,0x14,0x1a,0x2e,0x7e,0x34,0x0, +0x18,0xad,0x32,0x2d,0x31,0x22,0x7e,0x34,0x0, 0xc, 0xad,0x32,0x22,0x7e,0x70,0x18, +0xac,0x7f,0x2d,0x32,0x22,0xca,0x3b,0x7d,0x61,0x7d,0x73,0x7e,0x34,0xd8,0xf0,0x7a, +0x35,0x29,0x7e,0x34,0x27,0x10,0x7a,0x35,0x2b,0x6d,0x33,0x7a,0x35,0x2d,0x9, 0xb7, +0x0, 0xd9,0xf5,0x35,0x9, 0x77,0x0, 0x43,0x2d,0x37,0x9, 0xb3,0x0, 0xc, 0xf5,0x36, +0x7d,0x32,0x2e,0x34,0x1, 0xf8,0x7a,0x37,0xd, 0xcf,0x7d,0x37,0x2e,0x34,0x0, 0x49, +0x7a,0x37,0xd, 0xd1,0x49,0x32,0x4, 0x11,0x7a,0x37,0xd, 0xd3,0x75,0x31,0x0, 0xc1, +0x34,0xe5,0x31,0xa, 0x2b,0x3e,0x24,0x12,0x2d,0x36,0x7a,0x35,0x33,0x75,0x32,0x0, +0xc1,0x25,0xe5,0x32,0xa, 0x3b,0x2e,0x35,0x33,0x3e,0x34,0x2e,0x37,0xd, 0xcf,0x49, +0x23,0x0, 0x18,0xb, 0x38,0x30,0x9d,0x32,0x7a,0x35,0x2f,0x7e,0x35,0x29,0xbe,0x35, +0x2f,0x58,0x6, 0x7e,0x35,0x2f,0x7a,0x35,0x29,0x7e,0x35,0x2b,0xbe,0x35,0x2f,0x8, +0x6, 0x7e,0x35,0x2f,0x7a,0x35,0x2b,0x7e,0x35,0x2f,0x12,0x0, 0x2e,0xbe,0x35,0x2d, +0x28,0x9, 0x7e,0x35,0x2f,0x12,0x0, 0x2e,0x7a,0x35,0x2d,0xe5,0x36,0x70,0x34,0x7e, +0x11,0x35,0x74,0xc, 0xac,0x1b,0xe5,0x32,0xa, 0x1b,0x2d,0x1, 0x3e,0x4, 0x2e,0x7, +0xd, 0xd3,0xb, 0x8, 0x30,0xe5,0x32,0xa, 0x2b,0x2e,0x25,0x33,0x12,0x2e,0x8b,0x2d, +0x23,0x7e,0x71,0x31,0x74,0xc, 0xac,0x7b,0x2d,0x31,0x3e,0x34,0x2e,0x37,0xd, 0xd1, +0x1b,0x38,0x20,0x5, 0x32,0x9, 0x76,0x0, 0x1, 0xbe,0x71,0x32,0x28,0x2, 0xa1,0xa2, +0x5, 0x35,0x5, 0x31,0x9, 0x77,0x1, 0xc, 0xbe,0x71,0x31,0x28,0x2, 0xa1,0x91,0xb, +0x78,0x30,0xbe,0x34,0x0, 0x1, 0x78,0x8, 0x7e,0x35,0x29,0x9e,0x35,0x2b,0x80,0x3, +0x7e,0x35,0x2d,0x59,0x37,0x0, 0x47,0xe5,0x36,0x70,0x24,0x74,0x1, 0x19,0xb7,0x1, +0xe, 0xe4,0x19,0xb7,0x1, 0xf, 0x9, 0x77,0x0, 0xd9,0xa, 0x37,0x9, 0x57,0x1, 0xc, +0xa, 0x25,0x2d,0x23,0x7e,0x69,0x70,0xbd,0x23,0x40,0xd, 0x74,0x1, 0x80,0x5, 0xe4, +0x19,0xb7,0x1, 0xe, 0x19,0xb7,0x1, 0xf, 0xda,0x3b,0x22,0x3e,0x24,0x2e,0x27,0xd, +0xcf,0xb, 0x28,0x20,0x22,0xbe,0x34,0x0, 0x0, 0x40,0x2, 0x80,0x2, 0x6d,0x33,0x6d, +0x22,0x7e,0x14,0xcf,0x0, 0x7e,0x4, 0x0, 0x2, 0x12,0x0, 0x98,0x7e,0x14,0x2, 0xff, +0x12,0x1f,0xe2,0xbe,0x18,0x2, 0xd0,0x40,0x4, 0x7e,0x18,0x2, 0xcf,0x22,0xbe,0x34, +0x0, 0xa, 0x40,0x6, 0x9e,0x34,0x0, 0xa, 0x80,0x2, 0x6d,0x33,0x6d,0x22,0x7e,0x14, +0xff,0x0, 0x7e,0x4, 0x0, 0x4, 0x12,0x0, 0x98,0x7e,0x14,0x4, 0xeb,0x12,0x1f,0xe2, +0xbe,0x18,0x5, 0x8c,0x40,0x4, 0x7e,0x18,0x5, 0x8b,0x22,0x6c,0xaa,0x80,0x16,0x7e, +0x30,0x7, 0xac,0x3a,0x49,0x31,0x0, 0x7f,0x49,0x21,0x0, 0x81,0x2e,0x14,0x0, 0x7f, +0x12,0x2f,0xe, 0xb, 0xa0,0x7e,0xb3,0x0, 0xa2,0xbc,0xba,0x38,0xe2,0x22,0x7d,0x1, +0x7d,0x12,0x7d,0x23,0xbe,0x24,0x0, 0x0, 0x50,0x2, 0x6d,0x22,0xbe,0x14,0x0, 0x0, +0x50,0x2, 0x6d,0x11,0xbe,0x24,0x0, 0x3f,0x38,0xd, 0x7d,0x32,0x12,0x2f,0x8f,0x58, +0x2, 0x6d,0x33,0x7d,0x23,0x80,0x1a,0xbe,0x24,0x2, 0xc0,0x40,0x14,0x7d,0x32,0x9e, +0x34,0x2, 0xc0,0x2d,0x32,0xbe,0x34,0x2, 0xfd,0x8, 0x4, 0x7e,0x34,0x2, 0xff,0x7d, +0x23,0xbe,0x14,0x0, 0x3f,0x38,0xd, 0x7d,0x31,0x12,0x2f,0x8f,0x58,0x2, 0x6d,0x33, +0x7d,0x13,0x80,0x20,0xbe,0x14,0x4, 0xc0,0x40,0x1a,0xbe,0x14,0x4, 0xff,0x38,0x14, +0x7d,0x31,0x9e,0x34,0x4, 0xc0,0x2d,0x31,0xbe,0x34,0x4, 0xfd,0x8, 0x4, 0x7e,0x34, +0x4, 0xff,0x7d,0x13,0x1b,0x8, 0x20,0x7d,0x20,0xb, 0x25,0x1b,0x28,0x10,0x22,0x3e, +0x34,0x9e,0x34,0x0, 0x3f,0xbe,0x34,0x0, 0x2, 0x22,0x7e,0x39,0xb0,0xbe,0xb0,0x0, +0x28,0x4, 0x14,0x7a,0x39,0xb0,0x22,0xca,0x3b,0x75,0x29,0x0, 0x75,0x27,0x0, 0x12, +0x5c,0x3c,0x9, 0xb6,0x0, 0x7, 0xb4,0x3, 0x8, 0xe4,0x19,0xb6,0x0, 0x7, 0x75,0x29, +0x1, 0x5, 0x27,0xe5,0x27,0xb4,0xf, 0xe7,0x75,0x27,0x0, 0xe5,0x27,0xbe,0xb0,0xf, +0x50,0x5, 0x12,0x5c,0x3c,0x80,0x62,0x12,0x5c,0x3c,0x9, 0xb6,0x0, 0x7, 0xb4,0x2, +0x58,0x75,0x28,0x0, 0x80,0x4a,0x7e,0xa1,0x28,0x12,0x26,0xe7,0xa, 0x37,0x9, 0x56, +0x0, 0x1, 0xa, 0x25,0x9d,0x32,0x12,0x0, 0x2e,0x7c,0xe7,0x7e,0xa1,0x28,0x74,0x2, +0xa4,0x9, 0x75,0x0, 0x62,0x1e,0x70,0xa, 0x37,0x9, 0x56,0x0, 0x2, 0xa, 0x25,0x9d, +0x32,0x12,0x0, 0x2e,0x7c,0xf7,0xbe,0xe0,0x2, 0x18,0x13,0xbe,0xf0,0x2, 0x18,0xe, +0xe4,0x19,0xb6,0x0, 0x7, 0x7e,0x34,0x1, 0x96,0x12,0x2f,0x9a,0x80,0xb, 0x5, 0x28, +0x7e,0x73,0x0, 0xa2,0xbe,0x71,0x28,0x38,0xad,0x9, 0xb6,0x0, 0x7, 0xb4,0x2, 0x2, +0x80,0x2, 0x21,0x1b,0xe5,0x27,0xbe,0xb0,0xf, 0x50,0x6, 0x7e,0x34,0x1, 0x95,0x80, +0x4, 0x7e,0x34,0x1, 0x96,0x12,0x2f,0x9a,0xe4,0x19,0xb6,0x0, 0x7, 0xe5,0x29,0xbe, +0xb0,0x1, 0x78,0x2, 0x21,0x1b,0x9, 0xe6,0x0, 0x2, 0x1b,0xe1,0x21,0xb, 0x9, 0xf6, +0x0, 0x1, 0x1b,0xf1,0x1, 0xf9,0xbe,0xe0,0x0, 0x48,0x7c,0xbe,0xe0,0x15,0x58,0x77, +0xbe,0xf0,0x0, 0x48,0x72,0xbe,0xf0,0xc, 0x58,0x6d,0x1a,0x5f,0x7d,0x15,0x3e,0x14, +0x1a,0xe, 0x7e,0x34,0x0, 0x18,0xad,0x30,0x7d,0x23,0x2d,0x21,0x49,0x32,0x8, 0xaf, +0xbe,0x34,0x0, 0x0, 0x8, 0x1a,0x7e,0x14,0x0, 0xc, 0xad,0x10,0x7d,0x1, 0x2d,0x5, +0x3e,0x4, 0x2e,0x4, 0x6, 0xb7,0xb, 0x8, 0x10,0x2d,0x13,0x1b,0x8, 0x10,0x80,0x23, +0x7e,0x15,0xd, 0x4d,0x11,0x78,0x1c,0x12,0x0, 0x2e,0x7d,0x13,0x1a,0x2e,0x12,0x2d, +0x36,0x1a,0x2f,0x2d,0x23,0x3e,0x24,0x2e,0x24,0x6, 0xb7,0xb, 0x28,0x30,0x9d,0x31, +0x1b,0x28,0x30,0x6d,0x33,0x1a,0x2f,0x3e,0x24,0x1a,0xe, 0x7e,0x14,0x0, 0x18,0xad, +0x10,0x2d,0x21,0x59,0x32,0x8, 0xaf,0xb, 0xf0,0x9, 0x76,0x0, 0x1, 0xa, 0x27,0xb, +0x25,0x1a,0x3f,0xbd,0x32,0x18,0x2, 0x1, 0x76,0xb, 0xe0,0x9, 0x76,0x0, 0x2, 0xa, +0x27,0xb, 0x25,0x1a,0x3e,0xbd,0x32,0x18,0x2, 0x1, 0x6e,0x5, 0x27,0xe5,0x27,0xbe, +0xb0,0x1e,0x50,0x3, 0x2, 0x2f,0xcb,0xda,0x3b,0x22,0x2, 0x31,0x2d,0x7e,0x39,0xb0, +0x4, 0x7a,0x39,0xb0,0x22,0xca,0x3b,0x7e,0xa3,0x0, 0xa2,0x7e,0x53,0x1, 0x9b,0x6c, +0x44,0x6c,0x33,0x7e,0xc3,0xc, 0xa3,0x7e,0xb3,0x2, 0xa5,0xf5,0x33,0x7e,0xb3,0x2, +0xda,0x70,0x7, 0xbe,0xc0,0x1, 0x78,0x2, 0x81,0x73,0xbe,0xa0,0x0, 0x38,0x7, 0xbe, +0x50,0x0, 0x38,0x2, 0x81,0x6b,0xbe,0xc0,0x1, 0x78,0x8, 0x74,0x5, 0x7a,0xb3,0x1, +0x97,0x80,0x7, 0x7e,0x34,0x1, 0x97,0x12,0x31,0x2a,0x7e,0xb3,0x1, 0x97,0xb4,0x5, +0x2, 0x80,0x2, 0x81,0x73,0xe4,0x7a,0xb3,0x1, 0x97,0x7e,0xb3,0x1, 0x95,0x60,0x2, +0x41,0xae,0x7e,0xb3,0x1, 0x96,0x60,0x2, 0x41,0xae,0xe4,0x7a,0xb3,0x1, 0x98,0x7a, +0xa3,0x1, 0x95,0x7a,0x53,0x1, 0x96,0x6c,0xdd,0x41,0x9e,0xbc,0xad,0x7e,0xf0,0x8, +0x28,0x19,0xac,0xf4,0x2e,0x74,0x0, 0xa5,0x7e,0x70,0x2, 0xac,0x7d,0x9, 0xb3,0x0, +0x61,0x1e,0xb0,0xf5,0x2b,0x9, 0xb3,0x0, 0x62,0x80,0x1a,0xac,0xf3,0x2e,0x74,0x1, +0x1d,0xa, 0xa, 0xa, 0x3d,0x9d,0x30,0x3e,0x34,0x9, 0xb3,0x1, 0x9c,0x1e,0xb0,0xf5, +0x2b,0x9, 0xb3,0x1, 0x9d,0x1e,0xb0,0xf5,0x2a,0xe5,0x2b,0x19,0xb7,0x0, 0x2, 0xe5, +0x2a,0x19,0xb7,0x0, 0x1, 0xe4,0x19,0xb7,0x0, 0x7, 0xbe,0xc0,0x1, 0x78,0x67,0x6c, +0x22,0x80,0x34,0xe5,0x33,0xa, 0x3b,0xa, 0x2, 0x2d,0x3, 0x9, 0xb7,0x0, 0x2, 0xa, +0x3b,0xbd,0x3, 0x78,0x20,0x74,0x1, 0x19,0xb7,0x0, 0x7, 0x9, 0x7, 0x0, 0x1, 0x7e, +0x10,0x2, 0xac,0x1, 0x7e,0x70,0x18,0xac,0x72,0x2d,0x30,0x49,0x33,0x2, 0x15,0x59, +0x37,0x0, 0x5, 0x80,0xa, 0xb, 0x20,0x7e,0xb3,0x2, 0xd8,0xbc,0xb2,0x38,0xc4,0x7e, +0xb3,0x2, 0xd8,0xbc,0xb2,0x38,0x13,0xbc,0xad,0x28,0x6, 0x7e,0x34,0x1, 0x95,0x80, +0x4, 0x7e,0x34,0x1, 0x96,0x12,0x2f,0x9a,0x80,0x1c,0xbc,0xad,0x28,0x4, 0xb, 0x40, +0x80,0x14,0xb, 0x30,0x80,0x10,0xbc,0xad,0x28,0x4, 0xb, 0x40,0x80,0x2, 0xb, 0x30, +0x74,0x1, 0x19,0xb7,0x0, 0x7, 0x4c,0xcc,0x78,0x16,0x7e,0x11,0x2a,0x74,0x2, 0xac, +0x1b,0x7e,0x71,0x2b,0x74,0x18,0xac,0x7b,0x2d,0x30,0x49,0x33,0x8, 0xaf,0x80,0x8, +0xe4,0x7a,0x79,0xb0,0xe5,0x33,0xa, 0x3b,0x59,0x37,0x0, 0x3, 0xb, 0xd0,0xa, 0x35, +0xa, 0xa, 0x2d,0x3, 0xa, 0x3d,0xbd,0x30,0x50,0x2, 0x21,0xab,0x81,0x73,0x7e,0xb3, +0x1, 0x96,0x2e,0xb3,0x1, 0x95,0xf5,0x27,0x6c,0xdd,0x81,0x3, 0x7e,0xa3,0x1, 0x95, +0xbc,0xad,0x28,0x5, 0x12,0x35,0x76,0x80,0x3, 0x12,0x35,0x8d,0x9, 0x77,0x0, 0x1, +0x7e,0x90,0x2, 0xac,0x97,0x9, 0xa7,0x0, 0x2, 0x7e,0x50,0x18,0xac,0x5a,0x2d,0x24, +0x49,0x22,0x8, 0xaf,0x7a,0x25,0x28,0x9, 0xb7,0x0, 0x7, 0x70,0x4, 0x15,0x27,0x81, +0x1, 0x4c,0xcc,0x68,0x2, 0x61,0x94,0x75,0x2c,0x0, 0x75,0x30,0x0, 0x7a,0x71,0x31, +0x7a,0xa1,0x32,0x75,0x2f,0x0, 0xe5,0x32,0xbe,0xb1,0x2f,0x68,0x5b,0x7e,0x31,0x31, +0x74,0x2, 0xac,0x3b,0x7e,0x11,0x2f,0x74,0x18,0xac,0x1b,0x2d,0x1, 0x49,0x30,0x8, +0xaf,0x7e,0x51,0x2f,0x74,0xc, 0xac,0x5b,0xe5,0x31,0xa, 0xb, 0x2d,0x20,0x3e,0x24, +0x49,0x22,0x6, 0xb7,0x2d,0x23,0x7e,0x71,0x32,0x74,0x18,0xac,0x7b,0x2d,0x31,0x49, +0x13,0x8, 0xaf,0x7e,0x71,0x32,0x74,0xc, 0xac,0x7b,0x2d,0x30,0x3e,0x34,0x49,0x33, +0x6, 0xb7,0x2d,0x31,0x9d,0x32,0x7a,0x35,0x2d,0x7e,0x73,0x1, 0x95,0xbc,0x7d,0x28, +0x7, 0x12,0x34,0x7e,0x58,0x2, 0x5, 0x2c,0x5, 0x2f,0xe5,0x2f,0xb4,0x15,0x97,0xe5, +0x2c,0xbe,0xb0,0xa, 0x40,0xb, 0x12,0x34,0x76,0x68,0x6, 0x74,0x3, 0x19,0xb7,0x0, +0x7, 0x49,0x27,0x0, 0x3, 0x7e,0x35,0x28,0x12,0x35,0x80,0x8, 0x74,0xe4,0x19,0xb7, +0x0, 0x7, 0x80,0x6d,0x75,0x2c,0x0, 0x80,0x3b,0xe5,0x33,0xa, 0x3b,0xe5,0x2c,0xa, +0x2b,0x2d,0x23,0x9, 0x77,0x0, 0x2, 0xbd,0x23,0x78,0x12,0x12,0x27,0x2, 0x12,0x34, +0x86,0x12,0x35,0x80,0x8, 0x1c,0xe4,0x19,0xb7,0x0, 0x7, 0x80,0x15,0x12,0x27,0x2, +0x12,0x34,0x86,0x9d,0x32,0x7a,0x35,0x2d,0x12,0x34,0x7e,0x58,0x5, 0x7d,0x37,0x12, +0x31,0x2a,0x5, 0x2c,0x7e,0x73,0x2, 0xd8,0xbe,0x71,0x2c,0x38,0xbc,0x49,0x27,0x0, +0x3, 0xe5,0x33,0xa, 0x3b,0xbd,0x23,0x78,0x18,0x7e,0x79,0x70,0xbe,0x70,0xa, 0x28, +0xb, 0x12,0x34,0x76,0x68,0x6, 0x74,0x3, 0x19,0xb7,0x0, 0x7, 0x74,0x1, 0x7a,0x79, +0xb0,0xb, 0xd0,0x12,0x35,0x9e,0x50,0x2, 0x41,0xbc,0xe5,0x27,0x70,0x5, 0x12,0x34, +0x8f,0x80,0x60,0x7e,0xb3,0x1, 0x98,0xf5,0x2f,0xbe,0xc0,0x1, 0x78,0x6, 0xe5,0x2f, +0x1e,0xb0,0xf5,0x2f,0xe5,0x2f,0xbe,0xb0,0x4, 0x40,0x37,0x6c,0xdd,0x80,0x2c,0x7e, +0xa3,0x1, 0x95,0xbc,0xad,0x28,0x12,0x12,0x35,0x76,0x9, 0xb7,0x0, 0x7, 0xb4,0x1, +0x18,0x74,0x2, 0x19,0xb7,0x0, 0x7, 0x80,0x10,0x12,0x35,0x8d,0x9, 0xb7,0x0, 0x7, +0xb4,0x1, 0x6, 0x74,0x2, 0x19,0xb7,0x0, 0x7, 0xb, 0xd0,0x12,0x35,0x9e,0x40,0xcf, +0x80,0x11,0x7e,0x34,0x1, 0x98,0x12,0x31,0x2a,0x80,0x8, 0xe4,0x7a,0xb3,0x1, 0x98, +0x12,0x34,0x90,0xda,0x3b,0x22,0x7e,0xb3,0xa, 0xca,0xbe,0xb0,0x6, 0x22,0x7e,0x37, +0x6, 0x94,0xbe,0x35,0x2d,0x22,0x49,0x23,0x2, 0x15,0x49,0x37,0x0, 0x5, 0x22,0xe4, +0x7a,0xb3,0x1, 0x95,0x7a,0xb3,0x1, 0x96,0x22,0xca,0xd8,0xca,0x79,0x7e,0xf0,0x1, +0x12,0x37,0xf7,0x7c,0xdb,0x12,0x35,0xb1,0x7c,0xeb,0x12,0x36,0x54,0x78,0x52,0x74, +0x1, 0x7a,0xb3,0xa, 0xca,0xbe,0xd0,0x2, 0x78,0xa, 0x74,0x6, 0x7a,0xb3,0xa, 0xca, +0x6c,0xff,0x80,0x36,0x7e,0xb3,0x0, 0xa2,0x70,0x2a,0x7e,0xb3,0x1, 0x9b,0x70,0x24, +0xe5,0x13,0xb4,0x1, 0x2, 0x80,0xe, 0x7e,0xa3,0xe, 0x77,0xbe,0xa0,0x2, 0x40,0xf, +0xe4,0x7a,0xb3,0xe, 0x77,0x7e,0x24,0x0, 0x1, 0x7a,0x27,0xa, 0xd1,0x80,0x76,0x7c, +0xba,0x4, 0x80,0x7, 0x74,0x4, 0x7a,0xb3,0xa, 0xca,0xe4,0x7a,0xb3,0xe, 0x77,0x80, +0x64,0xbe,0x34,0x0, 0x1, 0x78,0x2e,0xe4,0x7a,0xb3,0xa, 0xca,0x4c,0xee,0x68,0x6, +0x7e,0x34,0x0, 0x3, 0x80,0x4b,0xbe,0xd0,0x2, 0x78,0x3, 0xe4,0x80,0x39,0x7e,0xb3, +0x0, 0xa2,0x70,0xa, 0x7e,0xb3,0x1, 0x9b,0x70,0x4, 0x74,0x1, 0x80,0x29,0x12,0x31, +0x35,0x6c,0xff,0x80,0x30,0x7e,0x37,0xa, 0xd1,0xbe,0x34,0x0, 0x3, 0x78,0x26,0xbe, +0xd0,0x1, 0x78,0x5, 0x12,0x31,0x35,0x6c,0xff,0x1b,0xe1,0x68,0x8, 0xb, 0xe0,0x78, +0xc, 0x74,0x3, 0x80,0x2, 0x74,0x2, 0x7a,0xb3,0xa, 0xca,0x80,0x8, 0x7e,0x34,0x0, +0x1, 0x7a,0x37,0xa, 0xd1,0xbe,0xf0,0x1, 0x78,0x7, 0x12,0x34,0x8f,0x7a,0xb3,0x1, +0x97,0xda,0x79,0xda,0xd8,0x22,0x7e,0xf0,0x8, 0xac,0xfd,0x2e,0x74,0x0, 0xa5,0x22, +0x9d,0x32,0x12,0x0, 0x2e,0x7a,0x35,0x28,0xbe,0x34,0x0, 0x23,0x22,0xa, 0x3a,0xa, +0x7d,0x9d,0x73,0x3e,0x74,0x3e,0x74,0x3e,0x74,0x2e,0x74,0x1, 0x1d,0x22,0x7e,0x73, +0x1, 0x96,0xa, 0x37,0x7e,0x53,0x1, 0x95,0xa, 0x25,0x2d,0x23,0xa, 0x3d,0xbd,0x32, +0x22,0x7e,0x50,0x5, 0x7e,0x40,0x3, 0x6c,0x66,0x6c,0xaa,0x6c,0x77,0xa5,0xbc,0x0, +0x3, 0x7e,0x40,0x1, 0x6c,0x33,0x6c,0x22,0x7e,0x10,0x2, 0xac,0x12,0x7e,0x90,0x18, +0xac,0x93,0x2d,0x40,0x49,0x4, 0x8, 0xaf,0xbe,0x4, 0x0, 0x14,0x8, 0x4, 0xb, 0x60, +0x80,0x8, 0xbe,0x4, 0xff,0xec,0x58,0x2, 0xb, 0xa0,0xb, 0x70,0x2c,0x24,0xbe,0x20, +0xc, 0x40,0xd5,0x2c,0x35,0xbe,0x30,0x15,0x40,0xcc,0x7c,0xb7,0x1e,0xb0,0xa, 0x2b, +0xa, 0x16,0xbd,0x12,0x28,0x1e,0xe4,0x7a,0xb3,0xa, 0xcc,0x7e,0x73,0xa, 0xcb,0xbe, +0x70,0x5, 0x50,0x6, 0x7e,0x34,0xa, 0xcb,0x80,0x22,0xe4,0x7a,0xb3,0xa, 0xcb,0x75, +0x57,0x1, 0x80,0x2d,0xa, 0x3a,0xbd,0x32,0x28,0x21,0xe4,0x7a,0xb3,0xa, 0xcb,0x7e, +0x73,0xa, 0xcc,0xbe,0x70,0x5, 0x50,0x9, 0x7e,0x34,0xa, 0xcc,0x12,0x31,0x2a,0x80, +0x10,0xe4,0x7a,0xb3,0xa, 0xcc,0x75,0x57,0x2, 0x80,0x6, 0x12,0x36,0x5b,0x75,0x57, +0x0, 0xe5,0x57,0x22,0x7e,0x37,0xa, 0xd1,0x4d,0x33,0x22,0xe4,0x7a,0xb3,0xa, 0xcc, +0x7a,0xb3,0xa, 0xcb,0x22,0x12,0x36,0x5b,0x74,0x6, 0x7a,0xb3,0xa, 0xca,0x6d,0x33, +0x7a,0x37,0xa, 0xd1,0x75,0x56,0x2, 0x22,0xca,0x79,0x7e,0xf1,0xcc,0x7e,0x37,0x2, +0xdd,0x4d,0x33,0x78,0x65,0x7e,0xa3,0x3, 0xcf,0xbe,0xa0,0x0, 0x28,0x14,0x7e,0xb3, +0xc, 0xcd,0x60,0x9, 0xb4,0x1, 0xb, 0x7e,0xb3,0x3, 0xd0,0x70,0x5, 0x75,0x10,0x0, +0xe1,0x89,0x7e,0xb3,0x2, 0xdf,0x20,0xe0,0x2, 0xe1,0x89,0x7e,0xb3,0xc, 0xcd,0x70, +0x9, 0x7e,0x53,0x2, 0xe5,0xbe,0x51,0x10,0x68,0x1d,0xb4,0x1, 0x2, 0x80,0x2, 0xe1, +0x89,0xe5,0x10,0xbe,0xb0,0x3, 0x50,0xf, 0x4c,0xaa,0x68,0x2, 0xe1,0x89,0xe5,0x10, +0xbe,0xb0,0x2, 0x50,0x2, 0xe1,0x89,0x75,0x10,0x0, 0x7e,0x24,0x0, 0x1, 0x7a,0x27, +0x2, 0xdd,0x74,0x1, 0x7a,0xb3,0xc, 0xbd,0xe1,0x89,0xbe,0x34,0x0, 0x1, 0x78,0x29, +0x7e,0x53,0x3, 0xcf,0xbe,0x50,0x0, 0x38,0x2, 0xe1,0x89,0x7e,0xb3,0xc, 0xcd,0x60, +0x2, 0xe1,0x89,0x6d,0x22,0x7a,0x27,0x2, 0xdd,0xe4,0x7a,0xb3,0xc, 0xbd,0x75,0x10, +0x0, 0x75,0x17,0x24,0x75,0x16,0x1, 0x80,0x70,0xbe,0x34,0x0, 0x3, 0x78,0x6a,0x12, +0x15,0xc9,0x12,0x17,0xfa,0xa9,0xd6,0xeb,0xa9,0xc6,0xac,0xa9,0xc6,0xec,0xc2,0x96, +0xc2,0x89,0xd2,0xb8,0xa9,0xd0,0xb7,0xd2,0xa8,0x12,0x9, 0xe6,0x60,0xfb,0x20,0x93, +0xfd,0x53,0xca,0xfe,0x53,0xc9,0xfd,0x75,0x87,0x2, 0x0, 0x0, 0x0, 0x0, 0xc2,0xa8, +0xc2,0x95,0x43,0xca,0x1, 0x12,0x4f,0xf8,0x12,0x15,0xc9,0x12,0x17,0xfa,0x12,0x37, +0xd8,0x53,0xdb,0xf0,0x43,0xc9,0x2, 0x12,0xb, 0x82,0x12,0x6, 0x43,0x6d,0x33,0x7a, +0x37,0x2, 0xdd,0xe4,0x7a,0xb3,0xc, 0xbd,0x12,0x36,0x65,0x12,0x37,0xee,0x7e,0x37, +0xb, 0x9, 0x4d,0x33,0x78,0xf8,0x12,0x37,0xe0,0x6c,0xee,0xa9,0xc6,0xcb,0x80,0x1d, +0xe4,0x12,0x4f,0x8b,0xa9,0x25,0xdd,0x15,0xa9,0x21,0xdb,0x11,0xc2,0xcd,0xa9,0xc7, +0xcb,0xc2,0xcc,0x4c,0xee,0x78,0x6, 0x7e,0xe0,0x1, 0x75,0xcc,0x2, 0xe5,0x16,0x60, +0xdf,0x12,0x37,0xd8,0xa9,0xd6,0xcb,0x75,0x17,0x0, 0x75,0x16,0x0, 0x7a,0xf1,0xcc, +0x7e,0xb3,0x3, 0xd3,0x54,0xef,0x7a,0xb3,0x3, 0xd3,0x7e,0x73,0x3, 0xcf,0x7a,0x73, +0x3, 0xd0,0x12,0x37,0xe7,0xda,0x79,0x22,0xd2,0xcd,0xa9,0xd7,0xcb,0xd2,0xcc,0x22, +0x74,0x1, 0x7a,0xb3,0x3, 0xd7,0x22,0x74,0x23,0x7a,0xb3,0xb, 0x6, 0x22,0x7e,0x34, +0x0, 0xa, 0x7a,0x37,0xb, 0x9, 0x22,0xca,0x69,0xca,0xf8,0x7e,0xb3,0x6, 0xae,0xf5, +0x28,0x7e,0x83,0x6, 0xaf,0x7e,0xa1,0x13,0x7e,0x84,0x6, 0xb7,0x7e,0x94,0x8, 0xaf, +0x7e,0x34,0x2, 0xbf,0x7e,0x24,0x2, 0xa7,0x7e,0x93,0x2, 0xd8,0x7e,0x33,0x2, 0xa5, +0x7e,0xb3,0x2, 0xda,0x70,0x9, 0xbe,0xa0,0x1, 0x78,0x4, 0xe5,0x56,0x21,0x63,0x4c, +0xaa,0x78,0x26,0x6c,0x33,0x7c,0x98,0x9e,0x91,0x28,0xb, 0x90,0x74,0x1, 0x7a,0xb3, +0x2, 0xdb,0x7e,0xb3,0xe, 0x76,0xbe,0xb0,0x2, 0x50,0x9, 0x4, 0x7a,0xb3,0xe, 0x76, +0xe5,0x56,0x21,0x63,0xe4,0x7a,0xb3,0xe, 0x76,0x6c,0xff,0xa, 0xf, 0x2e,0x4, 0x0, +0x1e,0x7a,0x11,0x82,0x7a,0x1, 0x83,0xe4,0x93,0xf5,0x2d,0x75,0x27,0x0, 0x1, 0xfe, +0xe5,0x27,0x70,0x4, 0x6d,0x0, 0x80,0x7, 0x7e,0x5, 0x2b,0x2e,0x4, 0x0, 0xc, 0x7a, +0x5, 0x2b,0xa, 0xe3,0xe5,0x27,0xa, 0xfb,0x2d,0xfe,0xe5,0x28,0xa, 0xeb,0xbd,0xfe, +0x40,0x6a,0xa, 0xe8,0xbd,0xfe,0x38,0x64,0xe5,0x2d,0xa, 0xb, 0xbd,0xf0,0x38,0x5c, +0xbe,0xa0,0x1, 0x78,0x14,0x7e,0xd0,0x2, 0xac,0xdf,0x7e,0x11,0x27,0x74,0x18,0xac, +0x1b,0x2d,0x6, 0x49,0x0, 0x2, 0x15,0x80,0x1a,0x7e,0xe5,0x2b,0x3e,0xe4,0x7e,0x10, +0x2, 0xac,0x1f,0x2d,0xe0,0x7d,0xfe,0x2d,0xf9,0xb, 0xf8,0xf0,0x2d,0xe8,0xb, 0xe8, +0x0, 0x2d,0xf, 0x7a,0x5, 0x29,0x12,0x39,0x68,0x2d,0xf3,0xb, 0xf8,0xe0,0xbe,0xe5, +0x29,0x50,0x6, 0x7e,0x5, 0x29,0x1b,0xf8,0x0, 0x12,0x39,0x68,0x2d,0xf2,0xb, 0xf8, +0xe0,0xbe,0xe5,0x29,0x28,0x6, 0x7e,0x5, 0x29,0x1b,0xf8,0x0, 0x5, 0x27,0xbe,0x91, +0x27,0x28,0x2, 0x1, 0x70,0xb, 0xf0,0xbe,0xf0,0xb, 0x38,0x2, 0x1, 0x5b,0x6c,0xff, +0x74,0x2, 0xac,0xbf,0x49,0x25,0x2, 0xa7,0x49,0x35,0x2, 0xbf,0x9d,0x32,0x12,0x0, +0x2e,0xbe,0x34,0x0, 0xfa,0x8, 0x5, 0x75,0x56,0x2, 0x80,0x7, 0xb, 0xf0,0xbe,0xf0, +0xb, 0x28,0xdd,0x7e,0xb3,0x2, 0xdb,0xb4,0x1, 0x27,0xbe,0xf0,0xc, 0x78,0x3, 0x75, +0x56,0x1, 0x6c,0xff,0x6d,0x33,0x74,0x2, 0xac,0xbf,0x59,0x35,0x2, 0xbf,0x7e,0x34, +0x7f,0xff,0x74,0x2, 0xac,0xbf,0x59,0x35,0x2, 0xa7,0xb, 0xf0,0xbe,0xf0,0xc, 0x78, +0xe3,0xe5,0x56,0xda,0xf8,0xda,0x69,0x22,0x7e,0x10,0x2, 0xac,0x1f,0x7d,0xf0,0x22, +0x7e,0xb3,0x3, 0x1d,0xf5,0x1e,0x75,0x1f,0x0, 0x22,0xca,0x3b,0x6c,0xff,0x6c,0xee, +0x12,0x5c,0x68,0x12,0x1a,0x19,0x12,0x57,0x9c,0x12,0x15,0xd8,0x12,0x6, 0x43,0x7e, +0x34,0x6, 0x4d,0x12,0x46,0x8, 0xe4,0x7a,0xb3,0xe, 0x3b,0x12,0x16,0x48,0x12,0x37, +0xee,0x7e,0x37,0xb, 0x9, 0x4d,0x33,0x78,0xf8,0x12,0xa, 0xaf,0x12,0xb, 0x82,0x12, +0x5c,0xab,0x12,0x11,0xac,0x12,0x14,0x3c,0x12,0x36,0x65,0x12,0x15,0xc2,0x12,0xf, +0xb8,0x12,0xf, 0xdb,0x12,0x5c,0x14,0x7a,0xb3,0xc, 0xbf,0x6d,0x33,0x7a,0x35,0x11, +0x12,0x39,0x70,0x7e,0xd3,0xc, 0xa3,0x7a,0xd1,0x13,0x7e,0xb3,0xc, 0xbf,0xb4,0x1, +0x2, 0x80,0x2, 0xa1,0x75,0x53,0xdb,0x7f,0x12,0x6, 0x3c,0x7e,0x34,0x0, 0x64,0x7a, +0x37,0x0, 0x5f,0x12,0x4b,0x10,0x75,0x17,0x0, 0x75,0x16,0x0, 0x7e,0xa3,0xc, 0xbd, +0x4c,0xaa,0x78,0x8, 0x7e,0xb3,0x2, 0xe1,0xf5,0x1b,0x80,0x6, 0x7e,0xb3,0x2, 0xe3, +0xf5,0x1b,0x7e,0xb3,0xc, 0xcd,0xb4,0x1, 0xc, 0x4c,0xaa,0x78,0x5, 0x75,0x1b,0xa, +0x80,0x3, 0x75,0x1b,0x32,0x7e,0xb3,0xc, 0xb8,0xbe,0xb0,0xff,0x68,0x9, 0x12,0x13, +0xd, 0x12,0x37,0xe0,0x12,0x1b,0x8a,0x12,0x4f,0x6d,0xe5,0x13,0x70,0x2, 0x80,0x39, +0x7e,0xb3,0x2, 0xf, 0xf5,0x21,0x7e,0xb3,0x2, 0xd8,0xf5,0x23,0x7e,0xb3,0x2, 0xa5, +0xf5,0x25,0x12,0x50,0x10,0x7e,0xb3,0x2, 0xf, 0xf5,0x22,0x7e,0xb3,0x2, 0xd8,0xf5, +0x24,0x7e,0xb3,0x2, 0xa5,0xf5,0x26,0xe5,0x21,0x7a,0xb3,0x2, 0xf, 0xe5,0x23,0x7a, +0xb3,0x2, 0xd8,0xe5,0x25,0x7a,0xb3,0x2, 0xa5,0x12,0xf, 0xb5,0x12,0x10,0x5e,0x12, +0x49,0x50,0x7e,0x73,0xa, 0xd3,0x7a,0x73,0xc, 0xc1,0x7e,0xb3,0x2, 0xe7,0xb4,0x1, +0x4, 0xe4,0x12,0x3d,0x82,0x7e,0x63,0x2, 0xb, 0x7e,0x70,0x2, 0xac,0x67,0x2e,0x34, +0x3, 0xae,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7a,0x37,0x6, 0x94,0x1e,0x34,0x1e, +0x34,0x7a,0x73,0x6, 0x96,0x7a,0x73,0xc, 0x98,0x12,0x26,0xf1,0x12,0x52,0x1f,0x12, +0x34,0x99,0x7e,0x37,0xa, 0xd1,0x7a,0x73,0xc, 0x9b,0x7e,0xb3,0xa, 0xca,0x7a,0xb3, +0xc, 0x9c,0xb4,0x6, 0x17,0x12,0x1b,0x91,0x50,0x3, 0x12,0x31,0x35,0x12,0x41,0x5d, +0x7e,0xb3,0x0, 0xa4,0x30,0xe0,0x5, 0xe4,0x7a,0xb3,0xa, 0xca,0x12,0x36,0x54,0x78, +0x12,0x7e,0xb3,0xa, 0xca,0xb4,0x4, 0xb, 0xe5,0x13,0x70,0x7, 0x7e,0x34,0x0, 0xa, +0x7a,0x35,0x11,0x7e,0x35,0x11,0xbe,0x34,0x0, 0x0, 0x28,0xb, 0x1b,0x34,0x7a,0x35, +0x11,0x74,0x4, 0x7a,0xb3,0xa, 0xca,0x7e,0x34,0x0, 0x61,0x7a,0x37,0x3, 0x83,0x12, +0x49,0x82,0x7a,0xb3,0x3, 0xd4,0xe5,0x13,0xb4,0x1, 0x12,0xe5,0x22,0x7a,0xb3,0x2, +0xf, 0xe5,0x24,0x7a,0xb3,0x2, 0xd8,0xe5,0x26,0x7a,0xb3,0x2, 0xa5,0x7e,0x35,0x8, +0x4d,0x33,0x78,0x3, 0x12,0x2b,0x46,0x74,0x1, 0x12,0x1f,0xfa,0x12,0x27,0x15,0x12, +0x48,0xfa,0xb4,0x1, 0x12,0x7e,0xb3,0x3, 0xd8,0xbe,0xb0,0x2, 0x68,0x15,0xbe,0xb0, +0x1, 0x68,0x10,0x74,0x3, 0x80,0x8, 0x7e,0xb3,0x3, 0xd8,0xb4,0x3, 0x5, 0xe4,0x7a, +0xb3,0x3, 0xd8,0x7e,0xb3,0x3, 0xde,0xb4,0x5, 0xe, 0x74,0x1e,0x7a,0xb3,0x6, 0x96, +0x7e,0x73,0x6, 0x96,0x7a,0x73,0xc, 0x98,0x12,0x22,0x87,0x12,0x2e,0xeb,0x7e,0xb3, +0xa, 0xca,0xb4,0x6, 0xe, 0x7e,0x73,0x0, 0xa2,0xbe,0x70,0x1, 0x28,0x5, 0xe4,0x7a, +0xb3,0xa, 0xca,0x12,0xf, 0xb8,0x7e,0x14,0x6, 0x94,0x12,0x58,0x31,0x12,0x36,0x54, +0x78,0xc, 0x7e,0x73,0x0, 0xa3,0xbe,0x73,0x0, 0xa2,0x50,0x5, 0x80,0x0, 0x12,0x2f, +0xa7,0x7e,0x73,0x0, 0xa2,0x7a,0x73,0x0, 0xa3,0x12,0x3d,0x8a,0xe5,0x13,0xb4,0x1, +0x2, 0x80,0x2, 0x81,0x5f,0x7e,0xb3,0x3, 0xcf,0x12,0xb, 0x8e,0x7e,0x73,0x2, 0xf, +0xa, 0x37,0x9, 0x73,0x1, 0xd8,0xbe,0x73,0x2, 0xb, 0x78,0x36,0x7e,0x73,0x3, 0xcf, +0xbe,0x70,0x0, 0x28,0x2d,0x7e,0x37,0x2, 0x13,0x7a,0x35,0x14,0xbe,0x34,0x0, 0x50, +0x28,0x8, 0x74,0x2, 0x7a,0xb3,0x3, 0xd8,0x6c,0xee,0x7e,0x35,0x14,0xbe,0x34,0x0, +0x28,0x50,0xf, 0xbe,0xe0,0x14,0x50,0x4, 0xb, 0xe0,0x80,0x6, 0x74,0x1, 0x7a,0xb3, +0x3, 0xd8,0x7e,0x37,0x1, 0xcc,0xbe,0x34,0x0, 0x3, 0x78,0x6, 0x74,0x2, 0x7a,0xb3, +0x3, 0xd8,0x7e,0xb3,0xc, 0xa7,0xb4,0x1, 0x26,0xe4,0x7a,0xb3,0xc, 0xa7,0x7e,0x73, +0xc, 0xa2,0x7a,0x73,0x4, 0x4f,0x7e,0x73,0xc, 0xa5,0x7a,0x73,0x4, 0x52,0x12,0x5c, +0xa2,0x7e,0x73,0xc, 0xa4,0x7a,0x73,0x4, 0x54,0x12,0x14,0x3c,0x12,0x37,0xe0,0x7e, +0xb3,0xc, 0xa3,0x70,0x10,0xbe,0xd0,0x1, 0x78,0xb, 0xe4,0x7a,0xb3,0x3, 0xde,0x7e, +0xf0,0x1, 0x12,0x37,0xe0,0x7e,0x73,0xc, 0xa3,0xbc,0x7d,0x68,0x11,0x7c,0xd7,0xbe, +0xd0,0x1, 0x78,0x4, 0x74,0x2, 0x80,0x2, 0x74,0x1, 0x7a,0xb3,0x3, 0xd8,0x7e,0xa3, +0xc, 0xa3,0xbe,0xa1,0x13,0x68,0x9, 0x7e,0xb3,0x3, 0xd7,0x70,0x3, 0x7a,0xa1,0x13, +0x12,0x41,0xf, 0x12,0x40,0xcd,0x7e,0x73,0x3, 0xcf,0x7a,0x73,0x0, 0xa2,0x7e,0x34, +0x3, 0x16,0x7a,0x37,0x6, 0x90,0x12,0x1f,0x62,0x7e,0x34,0x6, 0x4d,0x7a,0x37,0x3, +0x83,0x12,0x3d,0x8a,0x12,0x1b,0xa8,0x12,0x47,0xfe,0x7e,0x34,0x3, 0x16,0x7a,0x37, +0x3, 0x85,0x12,0x3f,0x8d,0x7e,0xa3,0x3, 0xd8,0x4c,0xaa,0x78,0x4, 0x74,0x1, 0x80, +0x13,0xbe,0xa0,0x2, 0x78,0x4, 0x74,0x5, 0x80,0xa, 0xbe,0xa0,0x3, 0x78,0x4, 0x74, +0x2, 0x80,0x1, 0xe4,0x7a,0xb3,0x3, 0xde,0x7e,0xb3,0x3, 0xcf,0xb4,0x1, 0xe, 0x7e, +0xb3,0x3, 0xd0,0x70,0x8, 0x7e,0x73,0x3, 0xde,0x7a,0x73,0x3, 0xd9,0x12,0x53,0x52, +0x7e,0x34,0x3, 0x83,0x7e,0x24,0x3, 0x16,0x12,0x42,0x46,0x12,0x36,0x78,0x7e,0xb3, +0x3, 0xd7,0xb4,0x1, 0x2, 0x80,0x2, 0x21,0xda,0x7e,0xb3,0x0, 0xa3,0x60,0x2, 0x21, +0xda,0xbe,0xf0,0x1, 0x78,0x35,0x6c,0xff,0x6c,0xcc,0xa, 0x2c,0x2e,0x24,0x4, 0x9, +0x12,0x53,0x44,0xb, 0xc0,0xbe,0xc0,0x15,0x78,0xf0,0x12,0x5c,0x28,0x7a,0xb3,0x4, +0x54,0x12,0x14,0x3c,0x74,0x22,0x7a,0xb3,0xc, 0xa2,0xe4,0x7a,0xb3,0xc, 0xa5,0x74, +0x2, 0x7a,0xb3,0xc, 0xa6,0x74,0x1, 0x7a,0xb3,0xc, 0xa4,0x12,0xf, 0xc1,0xe4,0x7a, +0xb3,0x3, 0xd7,0x21,0xda,0x12,0x5a,0xc2,0xe4,0x12,0x3d,0x82,0x12,0x0, 0x41,0xda, +0x3b,0x22,0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86,0x22,0x7e,0x73,0x0, 0xa2,0x7a,0x73, +0x3, 0xcf,0x22,0x30,0x0, 0x8, 0x74,0x1, 0x12,0x3d,0x82,0xc2,0x0, 0x22,0xe4,0x12, +0x3d,0x82,0xd2,0x0, 0x22,0xca,0x79,0x7c,0x6b,0x14,0x68,0x53,0x14,0x68,0x62,0x14, +0x68,0x7a,0x14,0x68,0x77,0x14,0x68,0x74,0x14,0x68,0x71,0x14,0x68,0x6e,0x14,0x68, +0x6b,0x14,0x68,0x68,0x14,0x68,0x65,0x14,0x68,0x62,0x14,0x68,0x5f,0x14,0x68,0x5c, +0x14,0x68,0x59,0x14,0x68,0x56,0x24,0xc3,0x68,0x61,0x1b,0xb1,0x68,0x69,0x14,0x68, +0x6c,0x24,0x65,0x68,0x5c,0x24,0xea,0x78,0x69,0x12,0x3f,0x7b,0x4c,0x77,0x68,0x4, +0xa5,0xbf,0x1, 0x4, 0x74,0x1, 0x80,0x2, 0x74,0x3, 0x12,0x3e,0xbf,0xc1,0xb4,0x7a, +0x73,0xd, 0x72,0x74,0x18,0xac,0x7b,0x2e,0x37,0xe, 0xf, 0x7a,0x37,0xd, 0x70,0xc1, +0xb4,0xa5,0xbf,0x4, 0x7, 0x74,0x1, 0x7e,0x70,0x4, 0x80,0xb, 0xa5,0xbf,0x5, 0x2, +0x80,0x2, 0xc1,0xb4,0xe4,0x6c,0x77,0x12,0x3f,0x8, 0xc1,0xb4,0xa, 0x26,0x2e,0x24, +0x3, 0xe4,0x9e,0x24,0x0, 0x3, 0x7a,0x29,0x70,0x80,0x79,0x7a,0x73,0x3, 0xf1,0x80, +0x73,0x7a,0x73,0xe, 0x34,0x80,0x6d,0x7a,0x73,0x4, 0x4f,0x80,0x67,0x12,0x3d,0x93, +0x80,0x62,0x12,0x4e,0xf6,0x7c,0xab,0xbe,0x60,0x50,0x40,0xe, 0xbe,0x60,0x63,0x38, +0x9, 0x12,0x3e,0xb7,0x19,0x72,0x3, 0xa4,0x80,0x4a,0xbe,0x60,0x78,0x40,0xe, 0xbe, +0x60,0x8b,0x38,0x9, 0x12,0x3e,0xb7,0x19,0x72,0x3, 0x91,0x80,0x37,0xbe,0x60,0xa0, +0x40,0xe, 0xbe,0x60,0xb3,0x38,0x9, 0x12,0x3e,0xb7,0x19,0x72,0x3, 0x7e,0x80,0x24, +0xbe,0x60,0xbf,0x40,0xe, 0xbe,0x60,0xd2,0x38,0x9, 0x12,0x3e,0xb7,0x19,0x72,0x3, +0x6b,0x80,0x11,0xbe,0x60,0xd3,0x40,0xc, 0xbe,0x60,0xe6,0x38,0x7, 0x12,0x3e,0xb7, +0x19,0x72,0x3, 0x6c,0xda,0x79,0x22,0x74,0x14,0xa4,0xa, 0x26,0x2d,0x25,0x22,0x7c, +0x7b,0x7e,0xb3,0xc, 0xbf,0xb4,0x3, 0x5, 0x74,0x1, 0x2, 0x3f,0x8, 0x74,0x27,0x2, +0x3e,0xd2,0xbe,0xb0,0x7f,0x38,0x30,0x7c,0x6b,0x2e,0x60,0xfd,0x68,0x29,0x1b,0x60, +0x68,0x25,0x2e,0x60,0xe1,0x68,0x20,0x2e,0x60,0xfd,0x68,0x1b,0x1b,0x61,0x68,0x17, +0x2e,0x60,0xf9,0x68,0x12,0x80,0x0, 0xa, 0x2b,0x19,0x72,0xc, 0x98,0x7e,0xb3,0xd, +0x18,0x44,0x1, 0x7a,0xb3,0xd, 0x18,0x22,0xbe,0xb0,0xa, 0x50,0x7, 0xa, 0x2b,0x19, +0x72,0xe, 0x2b,0x22,0x7c,0x6b,0x9e,0x60,0xa, 0xa, 0x26,0xbe,0x24,0x2, 0x69,0x50, +0xd, 0xa5,0xbe,0x7d,0x3, 0x2, 0x3d,0x93,0xa, 0x26,0x19,0x72,0x3, 0xe4,0x22,0xca, +0x79,0xbe,0xb0,0x80,0x40,0x1d,0xbe,0xb0,0xbf,0x38,0x18,0xbe,0xb0,0x26,0x68,0x38, +0xbe,0xb0,0x28,0x68,0x33,0xbe,0xb0,0x23,0x68,0x2e,0xbe,0xb0,0x2f,0x68,0x29,0x24, +0x80,0x80,0x22,0xb, 0xb2,0x68,0x1c,0x1b,0xb2,0x78,0x1d,0x12,0x3f,0x7b,0xbe,0x70, +0x4, 0x40,0x9, 0xbe,0x70,0x5, 0x68,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0x12,0x3e, +0xbf,0x80,0x5, 0x74,0x27,0x12,0x3e,0xd2,0xda,0x79,0x22,0x7e,0x74,0xd, 0x75,0x7a, +0x79,0x70,0x5e,0x70,0x70,0x7c,0xb7,0xc4,0x54,0xf, 0x7c,0x7b,0x22,0xca,0xd8,0xca, +0x79,0x7e,0xf3,0x3, 0xcf,0x4c,0xff,0x78,0x6, 0x12,0x39,0x70,0x2, 0x40,0xc8,0x6c, +0xee,0x7e,0x50,0x7, 0xac,0x5e,0x9, 0xd2,0x3, 0x8b,0xbe,0xd0,0xff,0x68,0x3a,0xa, +0x3d,0x9, 0xa3,0x6, 0x70,0x4c,0xaa,0x78,0x17,0x49,0x32,0x3, 0x87,0x7e,0x30,0x4, +0xac,0x3d,0x59,0x31,0xe, 0x3c,0x49,0x32,0x3, 0x89,0x59,0x31,0xe, 0x3e,0x80,0x19, +0xbe,0xa0,0x1, 0x78,0x14,0x74,0x4, 0xac,0xbd,0x49,0x35,0xe, 0x3c,0x59,0x32,0x3, +0x87,0x49,0x35,0xe, 0x3e,0x59,0x32,0x3, 0x89,0xb, 0xe0,0xbe,0xe0,0x5, 0x78,0xb1, +0x6c,0xee,0x7e,0x70,0x7, 0xac,0x7e,0x9, 0xd3,0x3, 0x8b,0xbe,0xd0,0xff,0x78,0x2, +0x1, 0xbe,0xa, 0x2d,0x9, 0xb2,0x6, 0x70,0xb4,0x2, 0x2, 0x80,0x2, 0x1, 0xbe,0x49, +0x33,0x3, 0x87,0x74,0x4, 0xac,0xbd,0x49,0x25,0xe, 0x3c,0x12,0x1e,0xc3,0x7a,0x35, +0x27,0x74,0x7, 0xac,0xbe,0x49,0x35,0x3, 0x89,0x74,0x4, 0xac,0xbd,0x49,0x25,0xe, +0x3e,0x12,0x1e,0xc3,0x7a,0x35,0x29,0xe5,0x1e,0xa, 0x3b,0xbe,0x35,0x27,0x28,0x48, +0xbe,0x35,0x29,0x28,0x43,0x7e,0x90,0x4, 0xac,0x9d,0x49,0x34,0xe, 0x3c,0x74,0x7, +0xac,0xbe,0x59,0x35,0x3, 0x87,0x49,0x34,0xe, 0x3e,0x59,0x35,0x3, 0x89,0xa, 0x3d, +0x9, 0xb3,0x6, 0x70,0xb4,0x2, 0x7, 0xbe,0xf0,0x0, 0x28,0x2, 0x1b,0xf0,0x4c,0xff, +0x78,0x4c,0x5, 0x1f,0x7e,0x73,0x3, 0x1e,0xbe,0x71,0x1e,0x28,0x41,0xe5,0x1f,0xbe, +0xb0,0x32,0x40,0x3a,0x5, 0x1e,0x80,0x33,0x7e,0x90,0x7, 0xac,0x9e,0x49,0x34,0x3, +0x87,0x74,0x4, 0xac,0xbd,0x59,0x35,0xe, 0x3c,0x49,0x34,0x3, 0x89,0x59,0x35,0xe, +0x3e,0x7e,0x73,0x3, 0x1d,0xbe,0x71,0x1e,0x78,0x8, 0x7e,0xb3,0x3, 0x1e,0xf5,0x1e, +0x80,0x9, 0xe5,0x1e,0xbe,0xb0,0x1, 0x28,0x2, 0x15,0x1e,0x75,0x1f,0x0, 0xb, 0xe0, +0xbe,0xe0,0x5, 0x68,0x3, 0x2, 0x3f,0xf2,0xda,0x79,0xda,0xd8,0x22,0x12,0x41,0x7, +0x38,0x34,0xbe,0xa3,0x3, 0xcf,0x50,0x19,0x7e,0xb3,0x3, 0xd4,0xbe,0xb3,0xe, 0x3b, +0x28,0x14,0x7e,0xb3,0xe, 0x3b,0x4, 0x7a,0xb3,0xe, 0x3b,0x7a,0xa3,0x3, 0xcf,0x80, +0x5, 0xe4,0x7a,0xb3,0xe, 0x3b,0x7e,0xb3,0x3, 0xcf,0x70,0xa, 0x7e,0xb3,0x3, 0xd3, +0x54,0xfe,0x7a,0xb3,0x3, 0xd3,0x22,0x7e,0xa3,0x3, 0xd0,0xbe,0xa0,0x0, 0x22,0x7e, +0xb3,0x3, 0xcf,0x70,0x1e,0x12,0x41,0x7, 0x28,0x19,0xe5,0x1d,0x70,0x11,0x7a,0xa3, +0x3, 0xcf,0x7e,0xb3,0x3, 0xd3,0x44,0x8, 0x7a,0xb3,0x3, 0xd3,0x5, 0x1d,0x22,0x75, +0x1d,0x0, 0x22,0x75,0x1d,0x0, 0x7e,0xb3,0x3, 0xd3,0x54,0xf7,0x7a,0xb3,0x3, 0xd3, +0x22,0x12,0x41,0x55,0x7a,0xb3,0xe, 0x33,0x74,0xff,0x7a,0xb3,0xe, 0x2b,0x74,0x1, +0x7a,0xb3,0xe, 0x34,0x22,0x74,0x3, 0x7a,0xb3,0xe, 0x2c,0xe4,0x22,0x7e,0xb3,0x3, +0xd3,0x20,0xe6,0x1d,0x7e,0xb3,0x0, 0xa4,0x30,0xe0,0x9, 0x12,0x41,0xfe,0x7a,0x1f, +0xa, 0xd4,0x80,0xd, 0x7e,0xb3,0x0, 0xa2,0x70,0x7, 0x12,0x41,0xfe,0x7a,0x1f,0x2, +0xe9,0x7e,0xb3,0x0, 0xa4,0x30,0xe0,0x48,0xe4,0x7a,0xb3,0x0, 0xa2,0x7e,0x37,0x3, +0xd1,0xbe,0x34,0x5, 0xdc,0x50,0x8, 0xb, 0x34,0x7a,0x37,0x3, 0xd1,0x80,0x6, 0x12, +0x37,0xe0,0x12,0x41,0xf5,0x7e,0xb3,0x3, 0xd3,0x20,0xe6,0x2a,0x7e,0x37,0x3, 0xd1, +0xbe,0x34,0x0, 0x28,0x40,0x20,0x44,0x40,0x7a,0xb3,0x3, 0xd3,0x7e,0xf, 0x2, 0xe9, +0x7e,0x1f,0xa, 0xd4,0xbf,0x10,0x50,0xe, 0x12,0x37,0xe0,0x12,0x41,0xf5,0x80,0x6, +0x6d,0x33,0x7a,0x37,0x3, 0xd1,0x7e,0xb3,0x0, 0xa4,0x20,0xe0,0x17,0x6d,0x33,0x7a, +0x37,0x3, 0xd1,0x30,0x1, 0xe, 0xc2,0x1, 0x7e,0x73,0x0, 0xa2,0xbe,0x70,0x0, 0x28, +0x3, 0x12,0x37,0xe0,0x22,0x7e,0x34,0x5, 0xdc,0x7a,0x37,0x3, 0xe2,0x22,0xca,0xf8, +0x7e,0x14,0x6, 0xb7,0x7e,0x4, 0x8, 0xaf,0x9f,0x11,0x6c,0xaa,0x80,0x2d,0x7e,0x90, +0xc, 0xac,0x9a,0x6c,0xff,0x80,0x1a,0x7d,0xf4,0x3e,0xf4,0x7d,0xef,0x2d,0xe0,0xb, +0xe8,0xe0,0x2d,0xf1,0xb, 0xf8,0xf0,0x2d,0xfe,0x6d,0xee,0x2f,0x17,0xb, 0x44,0xb, +0xf0,0x7e,0xb3,0xa, 0xd9,0xbc,0xbf,0x38,0xde,0xb, 0xa0,0x7e,0xb3,0xa, 0xd8,0xbc, +0xba,0x38,0xcb,0xda,0xf8,0x22,0xca,0x3b,0x7d,0x62,0x7d,0x73,0x75,0x2b,0x0, 0x75, +0x2d,0x0, 0x75,0x30,0x0, 0x75,0x31,0x0, 0xb, 0x78,0x30,0x7a,0x37,0xd, 0xcf,0x9, +0xb7,0x0, 0x50,0x20,0xe0,0x8, 0x20,0xe2,0x5, 0x20,0xe1,0x2, 0xa1,0x5b,0x20,0xe0, +0xf, 0x30,0xe2,0x1a,0x80,0xa, 0x7e,0x37,0x3, 0x81,0xbe,0x34,0x0, 0xf, 0x38,0x8, +0x7e,0x37,0x6, 0x92,0x4d,0x33,0x68,0xee,0x6d,0x33,0x7a,0x37,0x6, 0x92,0x20,0x2, +0x6, 0x7e,0x34,0xd, 0x1e,0x80,0x4, 0x7e,0x34,0xd, 0x42,0x7a,0x35,0x2e,0x75,0x27, +0x0, 0x7e,0xa0,0xff,0x12,0x45,0x8c,0x7a,0x39,0xa0,0x5, 0x27,0xe5,0x27,0xb4,0x24, +0xf0,0x74,0xaa,0x7e,0x35,0x2e,0x7a,0x39,0xb0,0x7e,0x35,0x2e,0x19,0xb3,0x0, 0x1, +0x9, 0x77,0x0, 0x4a,0x7e,0x25,0x2e,0x19,0x72,0x0, 0x4, 0x75,0x2c,0x0, 0x75,0x27, +0x0, 0x7e,0x91,0x27,0x74,0x7, 0xac,0x9b,0x7d,0x34,0x2d,0x37,0x9, 0xa3,0x0, 0x8, +0x7c,0xba,0x54,0xf0,0xbe,0xb0,0x0, 0x28,0x2b,0xb4,0xb0,0x2, 0x80,0x2, 0x81,0xd5, +0x2e,0x34,0x0, 0x8, 0x7c,0xba,0x54,0xf, 0x7a,0x39,0xb0,0x7d,0x54,0x2d,0x57,0x9, +0x75,0x0, 0x8, 0xa, 0x57,0x2e,0x57,0xd, 0xcf,0x9, 0xb5,0x0, 0x23,0xb4,0x1, 0x2, +0x80,0x2, 0x81,0xd5,0x2d,0x47,0x9, 0xa4,0x0, 0x8, 0xa, 0x3a,0x2e,0x37,0xd, 0xcf, +0x9, 0xb3,0x0, 0x23,0xbe,0xb0,0x3, 0x78,0x2, 0x81,0xd5,0x7a,0xa1,0x32,0xa, 0x3a, +0x12,0x45,0xa7,0xf5,0x33,0x60,0x5, 0xe5,0x33,0xb4,0x2, 0x3a,0x7d,0x43,0x2d,0x47, +0x9, 0x34,0x0, 0x56,0x9, 0xa7,0x0, 0x5b,0xbc,0x3a,0x50,0xe, 0x7d,0x4, 0x2e,0x4, +0x0, 0x56,0x7c,0xb3,0x4, 0x7a,0x9, 0xb0,0x81,0xd5,0xbc,0x3a,0x78,0x9, 0x4c,0xaa, +0x68,0x5, 0xe4,0x19,0xb2,0x0, 0x23,0x7e,0xa0,0xff,0xe5,0x32,0xa, 0x2b,0x2d,0x27, +0x19,0xa2,0x0, 0x56,0x80,0x1a,0x2d,0x37,0x9, 0x43,0x0, 0x56,0x9, 0x57,0x0, 0x5b, +0xbc,0x45,0x38,0x7, 0xe4,0x19,0xb3,0x0, 0x56,0x81,0xd5,0xe4,0x19,0xb3,0x0, 0x56, +0x7e,0xa1,0x2c,0x74,0x6, 0xa4,0xf5,0x28,0x12,0x45,0x75,0x9, 0xb3,0x0, 0x9, 0xf5, +0x30,0x12,0x45,0x75,0x9, 0xb3,0x0, 0xa, 0xc4,0x54,0xf0,0xf5,0x31,0xe5,0x32,0xbe, +0xb0,0x5, 0x50,0x64,0x9, 0xb7,0x0, 0x50,0x20,0xe3,0x2a,0x7e,0x8, 0x0, 0x30,0xe5, +0x32,0xa, 0x3b,0x2e,0x34,0xd, 0x19,0x74,0x1, 0x7e,0x50,0xf, 0x12,0x45,0xb2,0x7e, +0x8, 0x0, 0x31,0xe5,0x32,0xa, 0x3b,0x2e,0x34,0xd, 0x66,0x74,0x10,0x7e,0x50,0x20, +0x12,0x45,0xb2,0x80,0x14,0xe5,0x32,0xa, 0x3b,0x9, 0xb3,0xd, 0x19,0xf5,0x30,0xe5, +0x32,0xa, 0x3b,0x9, 0xb3,0xd, 0x66,0xf5,0x31,0xe5,0x32,0xa, 0x3b,0x12,0x45,0xa7, +0xb4,0x1, 0x15,0xe4,0x19,0xb3,0xd, 0x19,0x6c,0xaa,0xe5,0x32,0xa, 0x3b,0x19,0xa3, +0xd, 0x66,0x75,0x30,0x0, 0x75,0x31,0x0, 0x9, 0xb6,0x0, 0x6, 0xb4,0xff,0x14,0x12, +0x45,0x75,0x9, 0xb3,0x0, 0x8, 0xbe,0xb0,0xff,0x68,0x5, 0x75,0x30,0x1, 0x80,0x3, +0x75,0x30,0x0, 0x12,0x45,0x75,0x49,0x33,0x0, 0x4, 0x12,0x45,0x62,0x19,0xa3,0x0, +0x5, 0x7e,0x55,0x29,0x12,0x45,0x6b,0x19,0xa3,0x0, 0x6, 0x12,0x45,0x75,0x49,0x33, +0x0, 0x6, 0x12,0x45,0x62,0x19,0xa3,0x0, 0x7, 0x7e,0x55,0x29,0x12,0x45,0x6b,0x19, +0xa3,0x0, 0x8, 0x7e,0xa1,0x30,0x12,0x45,0x6d,0x19,0xa3,0x0, 0x9, 0x7e,0xa1,0x31, +0x12,0x45,0x6d,0x19,0xa3,0x0, 0xa, 0x12,0x45,0x75,0x9, 0x63,0x0, 0x8, 0x7c,0xb6, +0xc4,0x54,0xf0,0x12,0x45,0x9d,0x2e,0x24,0x0, 0x7, 0x12,0x45,0x94,0x7e,0x51,0x27, +0x74,0x7, 0xac,0x5b,0x2d,0x27,0x9, 0x72,0x0, 0x8, 0xbe,0x70,0xff,0x68,0x25,0xa, +0x17,0x2e,0x17,0xd, 0xcf,0x9, 0x61,0x0, 0x23,0xbe,0x60,0x1, 0x68,0x2, 0x5, 0x2b, +0x5, 0x2d,0x7c,0xb6,0x3, 0x3, 0x54,0xc0,0x12,0x45,0x9d,0x2e,0x24,0x0, 0x5, 0x12, +0x45,0x94,0x80,0xf, 0x12,0x45,0x6d,0x2e,0x34,0x0, 0x5, 0x7e,0x39,0xb0,0x24,0xc0, +0x7a,0x39,0xb0,0x5, 0x2c,0x5, 0x27,0xe5,0x27,0xb4,0x5, 0x2, 0x80,0x2, 0x41,0xd1, +0xe5,0x2b,0x7e,0x35,0x2e,0x19,0xb3,0x0, 0x3, 0x74,0x24,0x7e,0x35,0x2e,0x19,0xb3, +0x0, 0x2, 0xe4,0x7e,0x35,0x2e,0x19,0xb3,0x0, 0x23,0x75,0x27,0x0, 0x12,0x45,0x8c, +0x7e,0x39,0x60,0x7e,0x25,0x2e,0x2e,0x24,0x0, 0x23,0x7e,0x29,0x70,0x6c,0x76,0x7a, +0x29,0x70,0x5, 0x27,0xe5,0x27,0xb4,0x23,0xe4,0xb2,0x2, 0x7e,0xb3,0xc, 0xcd,0xb4, +0x1, 0x12,0xe5,0x5d,0xb4,0x1, 0x12,0x75,0x10,0x0, 0x74,0x1, 0x12,0x3d,0x82,0x75, +0x5d,0x0, 0x80,0x5, 0x74,0x1, 0x12,0x3d,0x82,0x9, 0xb7,0x0, 0x50,0x30,0xe2,0x7, +0x7e,0x37,0xd, 0xcf,0x12,0x46,0x8, 0x12,0x45,0x82,0x54,0xfe,0x12,0x45,0x7f,0x54, +0xfb,0x12,0x45,0x7f,0x54,0xfd,0x7a,0x39,0xb0,0x80,0x4, 0xe4,0x12,0x3d,0x82,0xda, +0x3b,0x22,0x7a,0x35,0x29,0xa, 0x56,0x5e,0x54,0x0, 0xf, 0x7c,0xab,0xe5,0x28,0xa, +0x3b,0x2e,0x35,0x2e,0x22,0x7e,0x71,0x27,0x74,0x7, 0xac,0x7b,0x2d,0x37,0x22,0x7a, +0x39,0xb0,0x7d,0x37,0x2e,0x34,0x0, 0x50,0x7e,0x39,0xb0,0x22,0xe5,0x27,0xa, 0x3b, +0x2e,0x35,0x2e,0x22,0x7e,0x29,0x70,0x2c,0x76,0x7a,0x29,0x70,0x22,0x7c,0x6b,0xe5, +0x28,0xa, 0x2b,0x2e,0x25,0x2e,0x22,0x7d,0x23,0x2e,0x27,0xd, 0xcf,0x9, 0xb2,0x0, +0x23,0x22,0xca,0x3b,0x7c,0xc5,0x7c,0xdb,0x7d,0x73,0x7a,0xd, 0x34,0x7e,0x79,0x50, +0xa5,0xbd,0x0, 0xb, 0x7e,0xd, 0x34,0x7e,0xb, 0x40,0x7a,0x79,0x40,0x80,0x36,0x7e, +0xd, 0x34,0x7e,0xb, 0x40,0xa, 0x34,0xa, 0x25,0x9d,0x32,0x12,0x0, 0x2e,0xa, 0x2c, +0xbd,0x32,0x8, 0x18,0x7e,0x1d,0x34,0x7e,0x1b,0xb0,0x7e,0x79,0xa0,0xbc,0xba,0x7c, +0xba,0x28,0x4, 0x2c,0xbd,0x80,0x2, 0x9c,0xbd,0x7a,0x79,0xb0,0x7e,0x79,0x30,0x7e, +0x1d,0x34,0x7a,0x1b,0x30,0xda,0x3b,0x22,0x6c,0xaa,0x74,0x3, 0xa, 0x2a,0x2d,0x23, +0x19,0xb2,0x0, 0x28,0xa, 0x2a,0x2d,0x23,0x19,0xb2,0x0, 0x23,0x7e,0x24,0xff,0xff, +0x7e,0x30,0x2, 0xac,0x3a,0x7d,0x1, 0x2d,0x3, 0x59,0x20,0x0, 0x2d,0x2d,0x13,0x59, +0x21,0x0, 0x37,0xb, 0xa0,0xbe,0xa0,0x5, 0x40,0xd0,0xe4,0x19,0xb3,0x0, 0x41,0x19, +0xb3,0x0, 0x42,0x22,0xca,0x3b,0x7e,0xb3,0x6, 0x8e,0x7c,0xeb,0x70,0x27,0x6c,0xff, +0x6d,0x11,0x74,0x2, 0xac,0xbf,0x59,0x15,0xb, 0x2e,0x7e,0xa0,0xff,0x7e,0x30,0x7, +0xac,0x3f,0x19,0xa1,0xb, 0xf, 0x74,0x2, 0xa, 0x1f,0x19,0xb1,0xb, 0x38,0xb, 0xf0, +0xbe,0xf0,0x5, 0x78,0xdb,0x6c,0xff,0xe1,0x97,0x74,0x7, 0xac,0xbf,0x9, 0xb5,0x6, +0x51,0xf5,0x28,0xbe,0xb0,0xff,0x78,0x2, 0xe1,0x95,0x12,0x47,0xbc,0xbe,0xb0,0x1, +0x78,0x2, 0xe1,0x95,0x75,0x27,0x0, 0x7e,0x31,0x27,0x74,0x7, 0xac,0x3b,0x9, 0x71, +0xb, 0xf, 0x7a,0x71,0x29,0xbe,0x71,0x28,0x68,0x2, 0xe1,0x8a,0x49,0x21,0xb, 0xd, +0x74,0x7, 0xac,0xbf,0x49,0x35,0x6, 0x4f,0x12,0x47,0xc5,0x7e,0xa1,0x27,0x74,0x7, +0xa4,0x49,0x25,0xb, 0xb, 0x74,0x7, 0xac,0xbf,0x49,0x35,0x6, 0x4d,0x9d,0x32,0x12, +0x0, 0x2e,0x7d,0x3, 0x2d,0x6, 0xe5,0x29,0xa, 0x1b,0x9, 0xa1,0xb, 0x38,0xbe,0xa0, +0x0, 0x28,0x17,0x7e,0x71,0x29,0x74,0x2, 0xac,0x7b,0x59,0x3, 0xb, 0x2e,0x2e,0x14, +0xb, 0x38,0x7c,0xba,0x14,0x7a,0x19,0xb0,0xe1,0x95,0x7e,0xa1,0x29,0x74,0x2, 0xa4, +0x49,0x15,0xb, 0x2e,0xbe,0x14,0x0, 0x64,0x28,0x8, 0xbe,0x4, 0x0, 0x64,0x28,0x2, +0x80,0x72,0x7d,0x41,0x2e,0x44,0x0, 0x32,0xbd,0x40,0x50,0x8, 0xbe,0x14,0x0, 0x32, +0x28,0x2, 0x80,0x60,0x7e,0x17,0x3, 0x1a,0xbd,0x10,0x50,0x52,0x12,0x47,0xbc,0x70, +0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0x19,0xb1,0x6, 0x70,0x7e,0xa0,0x3, 0xe5,0x28, +0xa, 0x1b,0x19,0xa1,0x6, 0x75,0x7e,0x70,0x7, 0xac,0x7f,0x2e,0x34,0x6, 0x4d,0x7e, +0x14,0xd, 0xcf,0x74,0x7, 0x12,0x1, 0x39,0xbe,0xe0,0x0, 0x28,0x21,0x1b,0xe0,0x7e, +0x70,0x7, 0xac,0x7e,0x2e,0x34,0x6, 0x4d,0x7e,0x30,0x7, 0xac,0x3f,0x12,0x47,0xb3, +0x7e,0x34,0xd, 0xcf,0x7e,0x30,0x7, 0xac,0x3e,0x12,0x47,0xb3,0x1b,0xf0,0x7e,0xa1, +0x29,0x74,0x2, 0xa4,0x59,0x5, 0xb, 0x2e,0x80,0xb, 0x5, 0x27,0xe5,0x27,0xbe,0xb0, +0x5, 0x50,0x2, 0xc1,0x97,0xb, 0xf0,0x7e,0x73,0x6, 0x8e,0xbc,0x7f,0x28,0x2, 0xc1, +0x79,0x7a,0xe3,0x6, 0x8e,0x7e,0x24,0x6, 0x4d,0x7e,0x34,0xb, 0xb, 0x12,0x1e,0xb3, +0xda,0x3b,0x22,0x2e,0x14,0x6, 0x4d,0x74,0x7, 0x2, 0x1, 0x39,0xe5,0x28,0xa, 0x1b, +0x9, 0xb1,0x6, 0x70,0x22,0x9d,0x32,0x12,0x0, 0x2e,0x7d,0x63,0x22,0x6c,0xaa,0x7e, +0x30,0x4, 0xac,0x3a,0x7d,0xf1,0x2e,0xf4,0x3, 0x33,0x7e,0xe4,0x0, 0xff,0xb, 0x7a, +0x20,0xbd,0x23,0x38,0xf, 0x2e,0x14,0x3, 0x35,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x20, +0xbd,0x23,0x50,0x7, 0xb, 0xa0,0xbe,0xa0,0x2, 0x40,0xd4,0x7c,0xba,0x22,0xca,0x79, +0x6c,0x99,0x80,0x63,0x7e,0xf0,0x7, 0xac,0xf9,0x49,0xc7,0x3, 0x89,0xbe,0xc4,0x5, +0xa, 0x40,0x44,0x49,0xd7,0x3, 0x87,0x7d,0x3d,0x12,0x47,0xcd,0x7c,0x8b,0xbe,0x80, +0x2, 0x40,0xe, 0x7e,0xd4,0x4, 0xff,0x74,0x7, 0xac,0xb9,0x59,0xd5,0x3, 0x89,0x80, +0x3e,0x7e,0x70,0x2, 0xac,0x78,0x2e,0x34,0x3, 0x47,0x7e,0x24,0x0, 0xff,0xb, 0x1a, +0xd0,0x74,0x7, 0xac,0xb9,0x59,0xd5,0x3, 0x87,0x7e,0x34,0x5, 0x50,0x74,0x7, 0xac, +0xb9,0x59,0x35,0x3, 0x89,0x80,0xe, 0xbe,0xc4,0x5, 0x0, 0x40,0x8, 0x7e,0x54,0x4, +0xff,0x59,0x57,0x3, 0x89,0xb, 0x90,0x7e,0x73,0x3, 0xcf,0xbc,0x79,0x38,0x95,0xda, +0x79,0x22,0x6c,0xaa,0xa, 0x3a,0x9, 0xb3,0x4, 0x9, 0xa, 0x4a,0x19,0xb4,0x3, 0x29, +0x9, 0xb3,0x4, 0x2a,0x19,0xb4,0x3, 0x3e,0x2e,0x34,0x0, 0x6, 0x12,0x13,0x4, 0x19, +0xb4,0x3, 0x53,0xb, 0xa0,0xbe,0xa0,0x15,0x78,0xda,0x74,0x2, 0x7a,0xb3,0x3, 0x25, +0x7e,0xb3,0x4, 0x54,0xb4,0x1, 0x4, 0x74,0x3f,0x80,0x2, 0x74,0x7f,0x7a,0xb3,0x3, +0x21,0x7e,0x34,0x1, 0x2c,0x7a,0x37,0x3, 0x7e,0x74,0xc8,0x7a,0xb3,0x3, 0x27,0xe4, +0x7a,0xb3,0x3, 0x28,0x74,0xeb,0x7a,0xb3,0x3, 0x23,0x7e,0xb3,0x4, 0x4f,0x12,0x15, +0x41,0x74,0x5d,0x7a,0xb3,0x3, 0x24,0x7e,0x73,0x3, 0xe4,0x7a,0x73,0x3, 0x26,0x7e, +0x24,0x3, 0xf4,0x7e,0x34,0x3, 0x68,0x12,0x48,0xf1,0x74,0xc8,0x7a,0xb3,0x3, 0x80, +0x22,0x7e,0x33,0x3, 0xe4,0xa, 0x13,0x2, 0x3, 0x88,0xca,0x3b,0x7e,0xf3,0x0, 0xa2, +0x6c,0xee,0x80,0x44,0x74,0x2, 0xac,0xbe,0x9, 0xb5,0x0, 0x62,0xf5,0x27,0x7e,0xd0, +0x1, 0x6c,0xcc,0x80,0x2d,0xbc,0xce,0x68,0x27,0x74,0x2, 0xac,0xbc,0x9, 0x75,0x0, +0x62,0x7a,0x71,0x28,0xa, 0x27,0xe5,0x27,0xa, 0x3b,0x9d,0x32,0x12,0x0, 0x2e,0xbe, +0x34,0x0, 0x2, 0x18,0x2, 0xb, 0xd0,0xbe,0xd0,0x2, 0x40,0x4, 0x74,0x1, 0x80,0xd, +0xb, 0xc0,0xbc,0xfc,0x38,0xcf,0xb, 0xe0,0xbc,0xfe,0x38,0xb8,0xe4,0xda,0x3b,0x22, +0x6c,0xaa,0xa, 0x3a,0x2e,0x34,0x3, 0xbc,0x12,0x13,0x4, 0x7c,0x7b,0xb, 0x70,0x80, +0x14,0x6d,0x44,0x7e,0x30,0x2, 0xac,0x3a,0x7e,0x50,0x18,0xac,0x57,0x2d,0x21,0x59, +0x42,0x8, 0xaf,0xb, 0x70,0xbe,0x70,0x15,0x40,0xe7,0xb, 0xa0,0xbe,0xa0,0xc, 0x40, +0xd1,0x22,0xca,0x3b,0x6d,0x33,0x7a,0x35,0x29,0x7e,0x18,0x80,0x0, 0x7e,0x14,0xd, +0xcf,0x74,0x10,0x12,0x1, 0x5a,0x7e,0xb3,0xc, 0xcd,0xb4,0x1, 0x3, 0xe4,0x41,0xf4, +0x7e,0xb3,0x0, 0xa2,0x70,0x2, 0x41,0x5f,0x7e,0xb3,0x3, 0xd0,0x60,0x2, 0x41,0x5f, +0x7e,0xb3,0x0, 0x61,0x1e,0xb0,0xf5,0x27,0x7e,0x73,0x0, 0x62,0x1e,0x70,0x7a,0x71, +0x28,0x6d,0x66,0x75,0x2b,0x0, 0x75,0x2c,0x0, 0xa, 0x37,0x7d,0x73,0x80,0x2f,0x7d, +0x17,0x3e,0x14,0x12,0x4a,0xfe,0x49,0x12,0x8, 0xaf,0xbe,0x14,0x0, 0x3c,0x8, 0x24, +0x12,0x4b,0x8, 0x28,0x8, 0x49,0x12,0x8, 0x97,0x2d,0x61,0x5, 0x2c,0xe5,0x27,0xbe, +0xb0,0x14,0x50,0x8, 0x49,0x22,0x8, 0xc7,0x2d,0x62,0x5, 0x2c,0x1b,0x74,0xbe,0x74, +0x0, 0x0, 0x58,0xcb,0x7d,0x73,0x80,0x30,0x7d,0x27,0x3e,0x24,0x7e,0x71,0x27,0x12, +0x27,0xe, 0x49,0x23,0x8, 0xaf,0xbe,0x24,0x0, 0x3c,0x8, 0x28,0x12,0x4b,0x8, 0x28, +0x8, 0x49,0x23,0x8, 0x97,0x2d,0x62,0x5, 0x2c,0xe5,0x27,0xbe,0xb0,0x14,0x50,0x8, +0x49,0x33,0x8, 0xc7,0x2d,0x63,0x5, 0x2c,0x7d,0x37,0xb, 0x34,0x7d,0x73,0xbe,0x34, +0x0, 0xc, 0x48,0xc4,0xe5,0x2b,0xbe,0xb0,0x3, 0x50,0x2, 0x80,0x12,0x7d,0x36,0x12, +0x0, 0x2e,0xe5,0x2c,0xa, 0x2b,0x12,0x0, 0x66,0xbe,0x34,0x0, 0xf, 0x8, 0x7, 0x75, +0x1c,0x1, 0x74,0x1, 0x41,0xf4,0x6d,0x33,0xe5,0x27,0xbe,0xb0,0x0, 0x28,0x9, 0x12, +0x4a,0xf7,0x49,0x22,0x8, 0x97,0x2d,0x32,0xe5,0x27,0xbe,0xb0,0x14,0x50,0x9, 0x12, +0x4a,0xf7,0x49,0x22,0x8, 0xc7,0x2d,0x32,0x7e,0xa0,0x8, 0x80,0x1b,0x7e,0x50,0x2, +0xac,0x5a,0x9, 0xb2,0xd, 0xcf,0x1a,0x1b,0xbd,0x13,0x8, 0xc, 0x9, 0xb2,0xd, 0xd0, +0x1a,0x2b,0x2e,0x25,0x29,0x7a,0x25,0x29,0x7c,0x5a,0x1b,0xa0,0xa5,0xbd,0x0, 0xdd, +0x7e,0x51,0x28,0x74,0x2, 0xac,0x5b,0x7e,0x71,0x27,0x12,0x27,0xe, 0x49,0x33,0x8, +0xaf,0x12,0x0, 0x2e,0xbe,0x34,0x3, 0xe8,0x8, 0xa, 0x7e,0x35,0x29,0x2e,0x34,0x0, +0x28,0x7a,0x35,0x29,0x7e,0x35,0x29,0xbe,0x34,0x0, 0xfa,0x28,0x7, 0x7e,0x34,0x0, +0xfa,0x7a,0x35,0x29,0xe5,0x1c,0xa, 0x3b,0xbe,0x35,0x29,0x50,0x5, 0x7e,0x55,0x29, +0xf5,0x1c,0xe5,0x1c,0xda,0x3b,0x22,0x7e,0x31,0x28,0x74,0x2, 0xac,0x3b,0x7e,0x51, +0x27,0x74,0x18,0xac,0x5b,0x2d,0x21,0x22,0x5, 0x2b,0xe5,0x27,0xbe,0xb0,0x0, 0x22, +0x7e,0x24,0xc, 0x98,0x7e,0xb3,0xd, 0x18,0x20,0xe0,0x2, 0x81,0x10,0x54,0xfe,0x7a, +0xb3,0xd, 0x18,0x7e,0x29,0x70,0xbe,0x73,0x6, 0x96,0x68,0xe, 0x7a,0x73,0x6, 0x96, +0xa, 0x37,0x3e,0x34,0x3e,0x34,0x7a,0x37,0x6, 0x94,0x9, 0x72,0x0, 0x1, 0xa, 0x37, +0xbe,0x37,0x6, 0x97,0x68,0x4, 0x7a,0x37,0x6, 0x97,0x9, 0x72,0x0, 0x5, 0xbe,0x73, +0x3, 0x19,0x68,0xb, 0x7a,0x73,0x3, 0x19,0x12,0x1f,0x35,0x7a,0x37,0x3, 0x17,0x9, +0x72,0x0, 0x2e,0xa, 0x37,0xbe,0x37,0x3, 0x1a,0x68,0x4, 0x7a,0x37,0x3, 0x1a,0x9, +0x72,0x0, 0x25,0xa, 0x37,0xbe,0x37,0x2, 0xdd,0x68,0x4, 0x7a,0x37,0x2, 0xdd,0x9, +0x72,0x0, 0x6, 0xbe,0x73,0x2, 0xdf,0x68,0x4, 0x7a,0x73,0x2, 0xdf,0x9, 0x72,0x0, +0x8, 0xbe,0x73,0x2, 0xe2,0x68,0x1f,0x7a,0x73,0x2, 0xe2,0xbe,0x70,0xf, 0x40,0x5, +0xe4,0x19,0xb2,0x0, 0x8, 0x9, 0x72,0x0, 0x8, 0xa, 0x37,0x2e,0x34,0x3, 0x9f,0x12, +0x13,0x4, 0x7a,0xb3,0x2, 0xe1,0x9, 0x72,0x0, 0x9, 0xbe,0x73,0x2, 0xe4,0x68,0x8, +0x7a,0x73,0x2, 0xe4,0x7a,0x73,0x2, 0xe3,0x9, 0x72,0x0, 0x7, 0xbe,0x73,0x2, 0xe5, +0x68,0x4, 0x7a,0x73,0x2, 0xe5,0x9, 0x72,0x0, 0x24,0xbe,0x73,0x2, 0xe7,0x68,0x4, +0x7a,0x73,0x2, 0xe7,0x9, 0x72,0x0, 0x32,0xbe,0x73,0x3, 0x1c,0x68,0x4, 0x7a,0x73, +0x3, 0x1c,0x9, 0x72,0x0, 0x33,0xa, 0x37,0xbe,0x37,0x6, 0x9f,0x68,0x4, 0x7a,0x37, +0x6, 0x9f,0x9, 0x72,0x0, 0x34,0xbe,0x73,0x6, 0xa1,0x68,0x4, 0x7a,0x73,0x6, 0xa1, +0x22,0x7c,0x7b,0x14,0x68,0x3f,0x14,0x68,0x41,0x14,0x68,0x41,0x14,0x68,0x3e,0x14, +0x68,0x3b,0x14,0x68,0x38,0x14,0x68,0x35,0x14,0x68,0x32,0x14,0x68,0x2f,0x14,0x68, +0x2c,0x14,0x68,0x29,0x14,0x68,0x26,0x14,0x68,0x23,0x14,0x68,0x20,0x14,0x68,0x1d, +0x24,0xc3,0x68,0x25,0x1b,0xb1,0x68,0x2b,0x24,0x64,0x68,0x22,0x24,0xea,0x78,0x28, +0x7e,0xb3,0xd, 0x75,0x22,0x7e,0xb3,0xd, 0x72,0x22,0x74,0xff,0x22,0xa, 0x37,0x2e, +0x34,0x3, 0xe4,0x9e,0x34,0x0, 0x3, 0x80,0x2e,0x7e,0xb3,0x3, 0xf1,0x22,0x7e,0xb3, +0xe, 0x34,0x22,0x7e,0xb3,0x4, 0x4f,0x22,0x12,0x4e,0xf6,0x7c,0x6b,0xbe,0x70,0x10, +0x40,0x19,0xbe,0x70,0x38,0x38,0x14,0x74,0x28,0xac,0xb6,0xa, 0x37,0x2e,0x37,0xd, +0x70,0x9e,0x34,0x0, 0x10,0x2d,0x35,0x7e,0x39,0xb0,0x22,0xbe,0x70,0x50,0x40,0xf, +0xbe,0x70,0x63,0x38,0xa, 0x12,0x4d,0x2, 0x2d,0x35,0x9, 0xb3,0x3, 0xa4,0x22,0xbe, +0x70,0x78,0x40,0xf, 0xbe,0x70,0x8b,0x38,0xa, 0x12,0x4d,0x2, 0x2d,0x35,0x9, 0xb3, +0x3, 0x91,0x22,0xbe,0x70,0xa0,0x40,0xf, 0xbe,0x70,0xb3,0x38,0xa, 0x12,0x4d,0x2, +0x2d,0x35,0x9, 0xb3,0x3, 0x7e,0x22,0xbe,0x70,0xbf,0x40,0xf, 0xbe,0x70,0xd2,0x38, +0xa, 0x12,0x4d,0x2, 0x2d,0x35,0x9, 0xb3,0x3, 0x6b,0x22,0xbe,0x70,0xd3,0x40,0xf, +0xbe,0x70,0xe6,0x38,0xa, 0x12,0x4d,0x2, 0x2d,0x35,0x9, 0xb3,0x3, 0x6c,0x22,0x74, +0xff,0x22,0x74,0x14,0xac,0xb6,0xa, 0x37,0x22,0xca,0x79,0x20,0x90,0x2, 0xa1,0xb8, +0xc2,0x90,0x7e,0xb3,0xd, 0x6d,0x4, 0x7a,0xb3,0xd, 0x6d,0x7e,0xf3,0xd, 0x6d,0xbe, +0xf0,0x1, 0x78,0x3f,0xe5,0x91,0x7a,0xb3,0xd, 0x79,0x7e,0xb3,0xd, 0x75,0xc4,0x54, +0x7, 0x78,0x5a,0x7e,0xb3,0xd, 0x79,0xbe,0xb0,0xd0,0x40,0xb, 0xbe,0xb0,0xd5,0x38, +0x6, 0x24,0xe5,0x7a,0xb3,0xd, 0x79,0x7e,0xb3,0xd, 0x79,0xb4,0xb8,0xe, 0x74,0x1, +0x7a,0xb3,0xd, 0x78,0x6d,0x33,0x7a,0x37,0xd, 0x6e,0x80,0x31,0xe4,0x7a,0xb3,0xd, +0x78,0x80,0x2a,0x7e,0xb3,0xd, 0x75,0xc4,0x7c,0xeb,0x5e,0xe0,0x7, 0x78,0xb, 0x12, +0x4e,0xce,0x7e,0x71,0x91,0x12,0x3f,0x2f,0x80,0x13,0xbe,0xe0,0x4, 0x40,0xe, 0xbe, +0xe0,0x5, 0x68,0x9, 0x12,0x4e,0xce,0x7e,0x71,0x91,0x12,0x3d,0xa5,0x12,0x4e,0xd7, +0xa5,0xbd,0x0, 0xa, 0x12,0x4e,0xbd,0x68,0x12,0x12,0x4e,0xec,0x80,0xd, 0xbe,0x50, +0x4, 0x40,0x8, 0xbe,0x50,0x5, 0x68,0x3, 0x12,0x4e,0xe2,0x7e,0xb3,0xd, 0x79,0xb4, +0xb8,0x6, 0x7e,0xb3,0xc, 0xd0,0xf5,0x91,0x30,0x91,0x70,0xc2,0x91,0x7e,0xb3,0xd, +0x78,0xb4,0x1, 0x36,0x7e,0xa3,0xc, 0x96,0x7e,0x70,0x4, 0xac,0x7a,0xbe,0x37,0xd, +0x6e,0x40,0x22,0x7e,0x37,0xd, 0x6e,0x4d,0x33,0x78,0x5, 0x7a,0xa1,0x91,0x80,0xd, +0x7d,0x23,0x1b,0x24,0x2e,0x27,0xb, 0x3d,0x7e,0x29,0xb0,0xf5,0x91,0xb, 0x34,0x7a, +0x37,0xd, 0x6e,0x80,0x36,0x75,0x91,0xff,0x80,0x31,0x7e,0xb3,0xd, 0x6b,0x4, 0x7a, +0xb3,0xd, 0x6b,0x12,0x4e,0xd7,0xa5,0xbd,0x0, 0xf, 0x12,0x4e,0xbd,0x68,0x1c,0x12, +0x4e,0xc5,0x12,0x4e,0x2e,0xf5,0x91,0x80,0x12,0xbe,0x50,0x4, 0x40,0xd, 0xbe,0x50, +0x5, 0x68,0x8, 0x12,0x4e,0xc5,0x12,0x4c,0x11,0xf5,0x91,0xda,0x79,0x22,0xbe,0xb0, +0x80,0x40,0xc, 0xbe,0xb0,0xbf,0x38,0x7, 0xa, 0x3b,0x9, 0xb3,0xc, 0x18,0x22,0x7c, +0xab,0xb, 0xa2,0x68,0x9, 0x1b,0xa2,0x78,0xa, 0x7e,0xb3,0xd, 0x75,0x22,0x7e,0xb3, +0xc, 0xbf,0x22,0xb4,0x4, 0x8, 0x7e,0x34,0x0, 0x1, 0x7a,0x37,0x6, 0x92,0xb4,0x3, +0x11,0x30,0x2, 0x6, 0x7e,0x34,0xd, 0x1e,0x80,0x4, 0x7e,0x34,0xd, 0x42,0x7a,0x37, +0xd, 0x76,0xbe,0xb0,0x3, 0x40,0x10,0xbe,0xb0,0x3e,0x38,0xb, 0xa, 0x3b,0x2e,0x37, +0xd, 0x76,0x9, 0xb3,0x0, 0x2, 0x22,0x1b,0xb1,0x68,0x19,0x4, 0x78,0x2c,0x30,0x2, +0x6, 0x7e,0x34,0xd, 0x1e,0x80,0x4, 0x7e,0x34,0xd, 0x42,0x7a,0x37,0xd, 0x76,0x9, +0xb3,0x0, 0x4, 0x22,0x30,0x2, 0x6, 0x7e,0x34,0xd, 0x1e,0x80,0x4, 0x7e,0x34,0xd, +0x42,0x7a,0x37,0xd, 0x76,0x9, 0xb3,0x0, 0x3, 0x22,0x74,0xff,0x22,0xe4,0x12,0x4e, +0x2e,0xbe,0xb0,0x10,0x22,0x7e,0xb3,0xd, 0x6b,0x2e,0xb3,0xd, 0x79,0x22,0x7c,0xbf, +0x2e,0xb3,0xd, 0x79,0x24,0xfe,0x22,0x7e,0xb3,0xd, 0x75,0xc4,0x7c,0x5b,0x5e,0x50, +0x7, 0x22,0x7e,0xb3,0xd, 0x79,0x12,0x4c,0x11,0xf5,0x91,0x22,0x7e,0xb3,0xd, 0x79, +0x12,0x4e,0x2e,0xf5,0x91,0x22,0x7e,0xb3,0xd, 0x75,0xc4,0x54,0x7, 0xb4,0x4, 0x2, +0xe4,0x22,0xb4,0x6, 0x3, 0x74,0x1, 0x22,0xb4,0x7, 0x3, 0x74,0x2, 0x22,0xe4,0x22, +0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0, +0xc0,0x83,0xc0,0x82,0xe5,0xcc,0xb4,0x2, 0x3, 0x75,0xcc,0x0, 0x12,0x4d,0x9, 0x30, +0x90,0x2, 0xc2,0x90,0x30,0x91,0x2, 0xc2,0x91,0x74,0x1, 0x7a,0xb3,0xd, 0x6c,0xd0, +0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda, +0x6b,0xda,0x7b,0x32,0xca,0xb8,0xa9,0xc0,0x93,0xe4,0x7a,0xb3,0xd, 0x6b,0x12,0x4f, +0x64,0xda,0xb8,0x32,0x7a,0xb3,0xd, 0x6d,0x7a,0xb3,0xd, 0x6c,0x22,0xca,0x79,0x6c, +0xee,0x7e,0xf1,0xcc,0x80,0xa, 0x4c,0xee,0x78,0x3, 0x7e,0xe0,0x1, 0x43,0x87,0x1, +0x12,0x9, 0xe6,0x60,0xf1,0x7a,0xf1,0xcc,0xda,0x79,0x22,0x70,0x3, 0x43,0x87,0x1, +0xb4,0x1, 0x3, 0x43,0x87,0x2, 0xb4,0x2, 0x3, 0x43,0x87,0x2, 0x22,0xc2,0xec,0x32, +0xa9,0xc6,0xdb,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b, +0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x12,0x17,0xfd,0x7e,0xb3,0xd, 0x75,0x54, +0xfd,0x7a,0xb3,0xd, 0x75,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda, +0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x75,0xcb,0xc0,0x75,0xc8,0xb8, +0x14,0x68,0x8, 0x14,0x68,0xa, 0x75,0xcc,0x0, 0x80,0x8, 0x75,0xcc,0x2, 0x80,0x3, +0x75,0xcc,0x1, 0x0, 0x0, 0x0, 0x0, 0x22,0xa9,0xc6,0xeb,0xa9,0xd6,0xac,0xa9,0xd6, +0xec,0xd2,0x86,0x22,0x75,0x9a,0xe8,0xa9,0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0x22, +0xca,0x79,0x6c,0xff,0xa, 0x2f,0x2e,0x24,0x3, 0x29,0x12,0x53,0x44,0xb, 0xf0,0xbe, +0xf0,0x15,0x78,0xf0,0x7e,0x34,0x1, 0xcc,0x7e,0x24,0xa, 0xd8,0x7e,0x14,0x3, 0x21, +0x12,0x50,0x83,0x7e,0x73,0x2, 0xf, 0xa, 0x37,0x9, 0xe3,0x1, 0xd8,0xa, 0x3e,0x9, +0xb3,0x1, 0xd0,0x12,0x15,0x41,0x53,0xdb,0xf0,0x74,0xe, 0x7e,0x70,0x2, 0x12,0xf, +0x0, 0xa, 0x3e,0x9, 0xb3,0x2, 0x0, 0xb4,0x1, 0x4, 0x74,0x3f,0x80,0x2, 0x74,0x7f, +0x7a,0xb3,0x3, 0x21,0x12,0xa, 0xb8,0x6c,0xff,0xa, 0x2f,0x2e,0x24,0x3, 0x29,0x7e, +0x29,0x70,0x2e,0x73,0x4, 0x52,0x7a,0x29,0x70,0xb, 0xf0,0xbe,0xf0,0x15,0x40,0xe9, +0xda,0x79,0x22,0xca,0x3b,0x7d,0x71,0x7a,0x25,0x27,0x7d,0x63,0x7e,0x34,0xd, 0xcf, +0x7d,0x27,0x2e,0x24,0x0, 0x8, 0x7e,0x14,0x0, 0x15,0x12,0x3, 0x88,0x7e,0x34,0xd, +0xe4,0x7d,0x27,0x2e,0x24,0x0, 0x1d,0x7e,0x14,0x0, 0x15,0x12,0x3, 0x88,0x7e,0x34, +0xd, 0xf9,0x7d,0x27,0x2e,0x24,0x0, 0x32,0x7e,0x14,0x0, 0x15,0x12,0x3, 0x88,0x9, +0xb6,0x1, 0x10,0x70,0x9, 0x7d,0x36,0x12,0x52,0x17,0x4, 0x7a,0x39,0xb0,0xe4,0x19, +0xb6,0x1, 0x10,0x9, 0x66,0x0, 0x3d,0x9, 0x76,0x0, 0x43,0xbc,0x76,0x40,0x32,0x7d, +0x36,0x2e,0x34,0x0, 0x40,0x12,0x31,0x2d,0x9, 0x76,0x0, 0x40,0xbe,0x70,0x8, 0x40, +0x1b,0xe4,0x19,0xb6,0x0, 0x40,0x9, 0xa6,0x0, 0x3e,0x9, 0xb6,0x0, 0x44,0xbc,0xba, +0x50,0xa, 0x7d,0x36,0x2e,0x34,0x0, 0x44,0x4, 0x7a,0x39,0xb0,0xe4,0x19,0xb6,0x0, +0x43,0x7e,0x35,0x27,0x7e,0x39,0x70,0xa, 0x27,0x7d,0x32,0x12,0x1f,0x2e,0x74,0x8, +0xac,0xb7,0x9d,0x25,0x7c,0x65,0x19,0x76,0x1, 0xc, 0x9, 0xb6,0x0, 0x40,0xac,0xb7, +0x7c,0x7b,0x19,0x76,0x0, 0xd9,0x9, 0x76,0x0, 0x40,0xbc,0x76,0x7d,0x26,0x50,0x1f, +0x2e,0x24,0x1, 0xc, 0x7e,0x29,0xb0,0x4, 0x7a,0x29,0xb0,0x9, 0x36,0x0, 0x40,0x7d, +0x26,0x2e,0x24,0x0, 0xd9,0x7e,0x29,0x70,0x2c,0x73,0x7a,0x29,0x70,0x80,0xc, 0x2e, +0x24,0x0, 0xd9,0x7e,0x29,0xb0,0x2c,0xb6,0x7a,0x29,0xb0,0x9, 0x76,0x0, 0x43,0xa, +0x37,0x2d,0x36,0x9, 0x73,0x0, 0xc, 0xa, 0x37,0x2d,0x36,0x9, 0xa3,0x0, 0x2c,0x6c, +0x66,0x80,0x7f,0x9, 0x76,0x0, 0xd9,0xa, 0x17,0xa, 0x26,0x2d,0x21,0xa, 0x45,0x2e, +0x44,0xd, 0xcf,0x7e,0x49,0xb0,0x2c,0xba,0x7a,0x49,0xb0,0x7c,0x46,0x3e,0x40,0xa, +0xf5,0x2e,0xf5,0x27,0x9, 0x3f,0x0, 0x4, 0xa, 0x4, 0x2d,0x7, 0x19,0x30,0x0, 0x47, +0xa, 0x5, 0x9, 0xb0,0xd, 0xcf,0xa, 0x44,0x2d,0x47,0x19,0xb4,0x0, 0x8, 0xa, 0x45, +0x9, 0x74,0xd, 0xe4,0xa, 0x44,0x2d,0x47,0x19,0x74,0x0, 0x1d,0xa, 0x45,0x9, 0x24, +0xd, 0xf9,0xa, 0x4, 0x2d,0x7, 0x19,0x20,0x0, 0x32,0xa, 0x44,0x2d,0x47,0x19,0x34, +0x0, 0x48,0xa, 0x44,0x2d,0x47,0x19,0xb4,0x0, 0x9, 0xa, 0x14,0x2d,0x17,0x19,0x71, +0x0, 0x1e,0xa, 0x15,0x9, 0x71,0xd, 0xf9,0xa, 0x14,0x2d,0x17,0x19,0x71,0x0, 0x33, +0xb, 0x60,0x9, 0x76,0x1, 0xc, 0xbc,0x76,0x28,0x2, 0x21,0x83,0x3e,0x70,0x19,0x77, +0x0, 0x5, 0xda,0x3b,0x22,0x7d,0x30,0x2e,0x34,0x0, 0x43,0x7e,0x39,0xb0,0x22,0xca, +0x3b,0x7d,0x42,0x7d,0xf3,0x49,0x21,0x0, 0xb, 0x6d,0x33,0x2e,0xf4,0x1, 0xf8,0x7d, +0x5f,0xf5,0xb9,0xa, 0x5a,0xf5,0xba,0x75,0xbb,0xf, 0x75,0xbc,0x5, 0x7e,0xf4,0xd, +0xcf,0x7d,0x5f,0xf5,0xbd,0xa, 0x5a,0xf5,0xc1,0x75,0xc3,0x0, 0x9, 0xa4,0x0, 0x2f, +0x7c,0xba,0xc4,0x33,0x54,0xe0,0x7c,0xab,0x9, 0xb4,0x0, 0x1, 0x4c,0xba,0xf5,0xc3, +0x7e,0x49,0xb0,0xf5,0xc4,0x75,0xc5,0x40,0x75,0xc5,0x1, 0x49,0x41,0x0, 0x3, 0x7c, +0xb9,0xf5,0xc6,0x1a,0x58,0xf5,0xc6,0x6e,0x44,0xff,0xff,0xb, 0x44,0x7d,0x54,0x5e, +0x54,0x0, 0xff,0xf5,0xc6,0x1a,0x58,0x5e,0x54,0x0, 0xff,0xf5,0xc6,0x7c,0xb5,0xf5, +0xc6,0xa, 0x54,0xf5,0xc6,0x75,0xc2,0x9, 0x80,0x7, 0x43,0xc2,0x1, 0x0, 0x0, 0x0, +0x0, 0xe5,0xc2,0x30,0xe7,0xf4,0x75,0xc2,0x0, 0x75,0xc5,0xc, 0x7e,0x51,0xc6,0x7e, +0xa1,0xc6,0x6c,0x44,0x80,0x29,0x7e,0xf0,0x2, 0xac,0xf4,0x49,0x47,0xd, 0xcf,0x7d, +0x64,0xa, 0x6c,0x7c,0xbd,0x3e,0xb0,0x7d,0xf7,0x2d,0xf0,0x7a,0xf9,0xb0,0x3e,0x90, +0x7e,0xf0,0x2, 0xac,0xf4,0x7d,0xf7,0x2d,0xf0,0x19,0x9f,0x0, 0x1, 0xb, 0x40,0xbc, +0x54,0x38,0xd3,0x6c,0x44,0x80,0x27,0x7e,0x90,0x2, 0xac,0x94,0x49,0xf4,0xd, 0xed, +0x7d,0x7f,0xa, 0x7e,0x7c,0xbf,0x3e,0xb0,0x7d,0xe4,0x2d,0xe0,0x19,0xbe,0x1, 0x3b, +0x7d,0x7f,0x7c,0xbf,0x3e,0xb0,0x2d,0x40,0x19,0xb4,0x1, 0x3c,0xb, 0x40,0xbc,0xa4, +0x38,0xd5,0x19,0x50,0x0, 0x41,0x19,0xa0,0x1, 0x3a,0x12,0x52,0x15,0x54,0xfe,0x7a, +0x39,0xb0,0x75,0xc5,0xa, 0xe5,0xc6,0xa, 0x3b,0xe5,0xc6,0xa, 0x2b,0x2d,0x32,0x9, +0x51,0x0, 0xd, 0xa, 0x15,0xbd,0x13,0x50,0x8, 0x12,0x52,0x15,0x44,0x1, 0x7a,0x39, +0xb0,0xda,0x3b,0x22,0x7e,0x29,0x70,0x9e,0x73,0x4, 0x52,0x7a,0x29,0x70,0x22,0x74, +0xfe,0x22,0xca,0xf8,0x7e,0xb3,0xc, 0xcd,0x70,0x8, 0x12,0x53,0x8f,0x12,0x56,0x31, +0x80,0x2a,0x12,0x53,0x95,0x12,0x57,0x19,0xb4,0x1, 0xa, 0x12,0x53,0x4f,0x7c,0xfb, +0x12,0x53,0x8f,0x80,0x5, 0x12,0x54,0x9b,0x7c,0xfb,0x4c,0xff,0x68,0xe, 0x7c,0xbf, +0x12,0x57,0x25,0x60,0x7, 0x7a,0xf3,0xc, 0xd0,0x75,0x5d,0x1, 0xda,0xf8,0x22,0xe4, +0x7a,0xb3,0xc, 0x93,0x22,0xca,0x3b,0x7e,0xa3,0x3, 0xcf,0x7e,0x73,0x3, 0xd0,0xbe, +0xa0,0x1, 0x38,0x49,0xbe,0x70,0x1, 0x38,0x44,0x7e,0xb3,0xc, 0x93,0x60,0x6, 0x7e, +0xb3,0xc, 0x97,0x60,0x38,0x4c,0xaa,0x78,0x3b,0xa5,0xbf,0x1, 0x37,0x7e,0x73,0xc, +0x97,0xa, 0x37,0x7a,0x37,0xc, 0x94,0x7e,0xb3,0xc, 0x93,0xb4,0x3, 0x1f,0x7e,0x37, +0xc, 0x94,0xbe,0x34,0x0, 0x0, 0x28,0x15,0x74,0x4, 0x7a,0xb3,0xc, 0x93,0x7e,0x37, +0xc, 0x87,0x7e,0x27,0xc, 0x89,0x74,0xff,0x12,0x54,0x7e,0x81,0x75,0xe4,0x7a,0xb3, +0xc, 0x93,0x81,0x75,0x7e,0x67,0x3, 0x87,0x7e,0x77,0x3, 0x89,0x7e,0xb3,0xc, 0x93, +0x70,0x17,0xa5,0xbf,0x0, 0x4d,0xbe,0xa0,0x1, 0x78,0x48,0x7d,0x36,0x7d,0x27,0x12, +0x56,0x34,0x12,0x54,0x78,0x74,0x1, 0x80,0x25,0x7e,0xb3,0xc, 0x93,0xb4,0x1, 0x24, +0x7e,0x37,0xc, 0x8b,0x9e,0x37,0xc, 0x8f,0xbe,0x37,0xe, 0x51,0x38,0xe, 0x7e,0x37, +0xc, 0x8d,0x9e,0x37,0xc, 0x91,0xbe,0x37,0xe, 0x53,0x28,0x17,0x74,0x3, 0x7a,0xb3, +0xc, 0x93,0x80,0xf, 0x7e,0xb3,0xc, 0x93,0xb4,0x3, 0x8, 0x7a,0x67,0xc, 0x87,0x7a, +0x77,0xc, 0x89,0x7e,0xb3,0xc, 0x93,0x60,0x1c,0x7d,0x36,0x9e,0x37,0xb, 0x3f,0x12, +0x54,0x93,0x18,0xb, 0x7d,0x37,0x9e,0x37,0xb, 0x41,0x12,0x54,0x93,0x8, 0x6, 0x12, +0x54,0x78,0x12,0x56,0x89,0xda,0x3b,0x22,0x7d,0x36,0x7d,0x27,0x74,0xff,0xca,0x3b, +0x7d,0x72,0x7d,0x63,0x7d,0x27,0x12,0x56,0x92,0x7d,0x36,0x7d,0x27,0x12,0x57,0x6b, +0xda,0x3b,0x22,0x12,0x0, 0x2e,0xbe,0x34,0x0, 0x10,0x22,0xca,0x79,0x6c,0xaa,0x6d, +0x44,0x7d,0xf4,0x7e,0xf3,0x3, 0xcf,0x7e,0xe3,0x3, 0xd0,0x7e,0xe7,0xe, 0x65,0x4d, +0xee,0x68,0x6, 0x7e,0xb3,0xe, 0x71,0x60,0x1e,0xbe,0xf0,0x1, 0x78,0x14,0x7e,0xf7, +0x3, 0x87,0x7e,0x47,0x3, 0x89,0x7d,0x3f,0x7d,0x24,0x12,0x57,0x44,0xbe,0xb0,0x1, +0x68,0x5, 0xbe,0xf0,0x1, 0x28,0x7, 0x12,0x56,0x21,0x7c,0xba,0xa1,0xde,0x7e,0xe7, +0xe, 0x65,0x1b,0xe4,0x68,0x3c,0x1b,0xe4,0x68,0x65,0x1b,0xe4,0x78,0x2, 0xa1,0x9f, +0x2e,0xe4,0x0, 0x3, 0x68,0x2, 0xa1,0xc1,0xbe,0xf0,0x1, 0x68,0x2, 0xa1,0xc7,0x4c, +0xee,0x68,0x2, 0xa1,0xc7,0x7e,0xe4,0x0, 0x1, 0x7a,0xe7,0xe, 0x65,0x7a,0xf7,0xe, +0x72,0x7a,0x47,0xe, 0x74,0x12,0x55,0xe1,0x7e,0xb3,0xe, 0x64,0x7a,0xb3,0xe, 0x71, +0x80,0x73,0x4c,0xff,0x78,0x1a,0x7e,0xb3,0xe, 0x68,0x70,0x2, 0xa1,0xc1,0x7e,0x34, +0x0, 0x2, 0x7a,0x37,0xe, 0x65,0x7e,0xb3,0xe, 0x62,0x7a,0xb3,0xe, 0x67,0xa1,0xc7, +0x12,0x55,0xe1,0x12,0x56,0x28,0x12,0x56,0x17,0x4c,0x11,0x68,0x74,0x80,0x78,0xbe, +0xf0,0x1, 0x78,0x73,0x4c,0xee,0x78,0x6f,0x7a,0xf7,0xe, 0x6d,0x7a,0x47,0xe, 0x6f, +0x12,0x55,0xe1,0x7e,0x3, 0xe, 0x61,0xa, 0x20,0x7e,0x3, 0xe, 0x62,0xa, 0x30,0x9d, +0x32,0x7e,0xb3,0xe, 0x67,0xa, 0xeb,0xbd,0xe3,0x38,0x46,0x60,0x44,0x12,0x56,0x28, +0x7e,0xb3,0xe, 0x57,0x12,0x55,0xea,0x7c,0x1b,0x4c,0x11,0x68,0x34,0x7e,0x34,0x0, +0x3, 0x7a,0x37,0xe, 0x65,0x7e,0xb3,0xe, 0x63,0x7a,0xb3,0xe, 0x68,0x80,0x28,0x4c, +0xff,0x78,0xc, 0x7e,0xb3,0xe, 0x68,0x60,0x18,0x7e,0x34,0x0, 0x4, 0x80,0x14,0x12, +0x55,0xe1,0x7e,0x37,0xe, 0x6d,0x7e,0x27,0xe, 0x6f,0x12,0x56,0x17,0xa5,0xb9,0x0, +0x6, 0x6d,0x33,0x7a,0x37,0xe, 0x65,0x7e,0x37,0xe, 0x65,0xbe,0x34,0x0, 0x4, 0x78, +0xb, 0x7e,0xa0,0x24,0x12,0x56,0x21,0xe4,0x7a,0xb3,0xe, 0x71,0x7c,0xba,0xda,0x79, +0x22,0x7a,0xf7,0xe, 0x69,0x7a,0x47,0xe, 0x6b,0x22,0x7d,0x13,0xa, 0x3b,0x7d,0x1, +0x9d,0x3, 0xbe,0x7, 0xe, 0x69,0x38,0x1d,0x2d,0x13,0xbe,0x17,0xe, 0x69,0x40,0x15, +0x7d,0x12,0x9d,0x13,0xbe,0x17,0xe, 0x6b,0x38,0xb, 0x2d,0x32,0xbe,0x37,0xe, 0x6b, +0x40,0x3, 0x74,0x1, 0x22,0xe4,0x22,0x7e,0xb3,0xe, 0x58,0x12,0x55,0xea,0x7c,0x1b, +0x22,0x6d,0x33,0x7a,0x37,0xe, 0x65,0x22,0x7e,0x37,0xe, 0x72,0x7e,0x27,0xe, 0x74, +0x22,0x2, 0x56,0x21,0xca,0x3b,0x7d,0x72,0x7d,0x63,0x7e,0x34,0xc, 0x83,0x7e,0x24, +0x0, 0x10,0xe4,0x12,0x0, 0x46,0x7e,0x34,0xc, 0x93,0x7e,0x24,0x0, 0x3, 0xe4,0x12, +0x0, 0x46,0x7e,0x34,0xb, 0x43,0x7e,0x24,0x1, 0x40,0xe4,0x12,0x0, 0x46,0x7e,0x37, +0xe, 0x55,0x7a,0x73,0xc, 0x97,0x7a,0x67,0xc, 0x83,0x7a,0x77,0xc, 0x85,0x7a,0x67, +0xc, 0x8f,0x7a,0x67,0xc, 0x8b,0x7a,0x77,0xc, 0x91,0x7a,0x77,0xc, 0x8d,0x12,0x56, +0x89,0xe4,0x7a,0xb3,0xc, 0x96,0xda,0x3b,0x22,0x7a,0x67,0xb, 0x3f,0x7a,0x77,0xb, +0x41,0x22,0x7a,0x25,0x29,0x7a,0x35,0x27,0xe4,0x7e,0x23,0xc, 0x96,0xbe,0x20,0x50, +0x50,0x6e,0x7e,0x15,0x27,0x6e,0x14,0xff,0xff,0x5e,0x14,0x0, 0x7, 0x7e,0x70,0x18, +0xac,0x73,0x49,0x53,0x8, 0xaf,0x49,0x33,0x8, 0xb3,0x7c,0xa7,0x7e,0x25,0x27,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x54,0xf, 0xa, 0x3b,0x4d,0x32,0x7a,0x35,0x27, +0x7c,0xba,0x54,0xf, 0xa, 0x5b,0xc4,0x54,0xf0,0x7c,0xab,0xe4,0x7e,0x35,0x29,0x5e, +0x34,0xf, 0xff,0x4d,0x35,0x7a,0x35,0x29,0x7e,0x34,0x0, 0x27,0x7e,0x24,0x0, 0x29, +0x12,0x5a,0xf0,0x7e,0x35,0x27,0x12,0x57,0x11,0x59,0x35,0xb, 0x43,0x7e,0x35,0x29, +0x12,0x57,0x11,0x59,0x35,0xb, 0x45,0x7e,0xb3,0xc, 0x96,0x4, 0x7a,0xb3,0xc, 0x96, +0x22,0x7e,0xa3,0xc, 0x96,0x74,0x4, 0xa4,0x22,0x7e,0xb3,0xc, 0x93,0xb4,0x4, 0x3, +0x74,0x1, 0x22,0xe4,0x22,0x7c,0xab,0x54,0xf0,0xb4,0x20,0x15,0x7c,0xba,0x54,0xf, +0x7e,0xa0,0x1, 0x60,0x5, 0x3e,0xa0,0x14,0x78,0xfb,0x7c,0xba,0x5e,0xb3,0xc, 0xce, +0x22,0x74,0x1, 0x22,0x7d,0x13,0x7e,0x37,0xe, 0x59,0xbd,0x31,0x50,0x1a,0x7e,0x37, +0xe, 0x5b,0xbd,0x31,0x28,0x12,0x7e,0x37,0xe, 0x5d,0xbd,0x32,0x50,0xa, 0x7e,0x37, +0xe, 0x5f,0xbd,0x32,0x28,0x2, 0xe4,0x22,0x74,0x1, 0x22,0x7e,0x17,0xc, 0x8f,0xbd, +0x13,0x28,0x4, 0x7a,0x37,0xc, 0x8f,0x7e,0x17,0xc, 0x8b,0xbd,0x13,0x50,0x4, 0x7a, +0x37,0xc, 0x8b,0x7e,0x37,0xc, 0x91,0xbd,0x32,0x28,0x4, 0x7a,0x27,0xc, 0x91,0x7e, +0x37,0xc, 0x8d,0xbd,0x32,0x50,0x4, 0x7a,0x27,0xc, 0x8d,0x22,0x7e,0x34,0x0, 0xa0, +0x7a,0x37,0xe, 0x51,0x7a,0x37,0xe, 0x53,0x74,0x64,0x7a,0xb3,0xe, 0x50,0x7e,0x34, +0x0, 0x82,0x7a,0x37,0xe, 0x55,0x7e,0x34,0x0, 0x50,0x7a,0x37,0xe, 0x59,0x7e,0x24, +0x2, 0x80,0x7a,0x27,0xe, 0x5b,0x7a,0x37,0xe, 0x5d,0x7e,0x34,0x4, 0xb0,0x7a,0x37, +0xe, 0x5f,0x74,0x78,0x7a,0xb3,0xe, 0x57,0x74,0x1e,0x7a,0xb3,0xe, 0x58,0x74,0x5, +0x7a,0xb3,0xe, 0x61,0x74,0x2b,0x7a,0xb3,0xe, 0x62,0x7a,0xb3,0xe, 0x63,0x74,0x3f, +0x7a,0xb3,0xe, 0x64,0xe4,0x7a,0xb3,0xc, 0xcd,0x22,0x7d,0x23,0x74,0x30,0x7a,0xb3, +0xc, 0xb9,0x74,0xf8,0x7a,0xb3,0xc, 0xba,0x2e,0x24,0x3, 0xf0,0x6d,0x11,0x6d,0x55, +0x7d,0x1, 0x3e,0x4, 0x2d,0x3, 0x1b,0x8, 0x50,0x74,0xff,0x7d,0x1, 0x1e,0x4, 0x1e, +0x4, 0x1e,0x4, 0x2d,0x2, 0x7a,0x9, 0xb0,0xb, 0x14,0xbe,0x14,0x0, 0xfc,0x40,0xde, +0x22,0xca,0x3b,0x7d,0x2, 0x9, 0xb0,0x4, 0x13,0x7c,0xab,0x9, 0x51,0x0, 0x15,0x9, +0x41,0x0, 0x16,0x70,0x2, 0x21,0x5d,0xb4,0x4, 0x6, 0x3e,0x50,0x3e,0x50,0x3e,0x50, +0x7d,0x40,0x7d,0x10,0x2e,0x14,0x1, 0xf8,0x2e,0x4, 0x3, 0xf0,0x6c,0xff,0x21,0x54, +0x7e,0xd0,0xc, 0xac,0xdf,0x7d,0xf6,0x75,0x27,0x0, 0x21,0x47,0xbe,0xa0,0x3, 0x78, +0x8, 0xa, 0xc5,0x7d,0xdf,0x3e,0xd4,0x80,0x18,0xbe,0xa0,0x2, 0x78,0x8, 0xa, 0xc5, +0x7d,0xdf,0x3e,0xd4,0x21,0x39,0xbe,0xa0,0x5, 0x78,0xf, 0x12,0x59,0x60,0xb, 0xe8, +0xc0,0x2d,0xd4,0xb, 0xd8,0xe0,0x2d,0xec,0x21,0x40,0xbe,0xa0,0x6, 0x78,0x70,0x7d, +0xef,0x5e,0xe4,0x0, 0x7, 0x2e,0xe4,0x3, 0xd4,0x12,0x59,0x69,0x7d,0xdf,0x1e,0xd4, +0x1e,0xd4,0x1e,0xd4,0x2d,0xd0,0x7e,0xd9,0xb0,0x5c,0xbe,0x68,0x3b,0x7d,0xcf,0x3e, +0xc4,0x7d,0xdc,0x2d,0xd1,0xb, 0xd8,0xb0,0xa, 0xd4,0xbd,0xbd,0x8, 0x10,0xa, 0x95, +0x7d,0xac,0x2d,0xa4,0xb, 0xa8,0xd0,0x2d,0xd9,0x1b,0xa8,0xd0,0x80,0x65,0xa, 0xd4, +0x6e,0xd4,0xff,0xff,0xb, 0xd4,0xbd,0xbd,0x58,0x59,0xa, 0xb5,0x2d,0xc4,0xb, 0xc8, +0xd0,0x9d,0xdb,0x1b,0xc8,0xd0,0x80,0x4b,0x12,0x59,0x69,0x7d,0xef,0x1e,0xe4,0x1e, +0xe4,0x1e,0xe4,0x2d,0xe0,0x7e,0xe9,0xb0,0x4c,0xbe,0x7a,0xe9,0xb0,0x80,0x34,0x12, +0x59,0x60,0xb, 0xe8,0xc0,0xa, 0xe4,0xbd,0xce,0x8, 0x10,0xa, 0xa5,0x7d,0xbd,0x2d, +0xb4,0xb, 0xb8,0xe0,0x2d,0xea,0x1b,0xb8,0xe0,0x80,0x18,0xa, 0xe4,0x6e,0xe4,0xff, +0xff,0xb, 0xe4,0xbd,0xce,0x58,0xc, 0xa, 0xc5,0x2d,0xd4,0xb, 0xd8,0xe0,0x9d,0xec, +0x1b,0xd8,0xe0,0xb, 0xf4,0x5, 0x27,0x9, 0xb3,0x0, 0x1, 0xbe,0xb1,0x27,0x28,0x2, +0x1, 0x6c,0xb, 0xf0,0x7e,0x39,0xb0,0xbc,0xbf,0x28,0x2, 0x1, 0x60,0xda,0x3b,0x22, +0x7d,0xdf,0x3e,0xd4,0x7d,0xed,0x2d,0xe1,0x22,0x7d,0x6e,0x7a,0xd1,0x82,0x7a,0xc1, +0x83,0xe4,0x93,0x7c,0xeb,0x22,0xd2,0x3, 0xa9,0xc1,0xdb,0xc2,0xc3,0x53,0xdb,0xbf, +0x32,0x70,0x4, 0x53,0xdb,0xbf,0x22,0x43,0xdb,0x40,0x22,0x7c,0x67,0x7c,0xab,0x12, +0xf, 0x0, 0x7c,0xba,0x12,0x59,0xa2,0x7c,0x7b,0xbc,0x67,0x78,0x3, 0x74,0x1, 0x22, +0xe4,0x22,0x12,0x59,0xbf,0x44,0x80,0xf5,0xd6,0xe5,0xdb,0x30,0xe3,0xfb,0x53,0xdb, +0xf3,0x75,0xd6,0x0, 0xe5,0xdb,0x30,0xe3,0xfb,0xe5,0xd6,0x43,0xd7,0x4, 0x22,0x53, +0xd7,0x3, 0x53,0xdb,0xf3,0x22,0x12,0x59,0xbf,0xf5,0xd6,0xe5,0xdb,0x30,0xe3,0xfb, +0xe5,0xd6,0xf5,0x5a,0x53,0xdb,0xf3,0x7a,0x71,0xd6,0xe5,0xdb,0x30,0xe3,0xfb,0xe5, +0xd6,0xf5,0x5b,0x53,0xdb,0xf3,0x43,0xd7,0x4, 0x7e,0x35,0x5a,0x22,0xca,0x3b,0x7d, +0x72,0x7d,0x63,0x6d,0x33,0x7a,0x35,0x29,0xe4,0x7e,0x35,0x29,0x2d,0x36,0x7e,0x39, +0x70,0x12,0x5a,0xae,0x7a,0x35,0x2b,0x7e,0x35,0x29,0x4d,0x33,0x78,0xa, 0x7e,0x35, +0x2b,0x4e,0x34,0x20,0x0, 0x7a,0x35,0x2b,0x7e,0x35,0x2b,0x12,0x5a,0x85,0xbe,0x34, +0x0, 0xc, 0x78,0xd4,0x7e,0x34,0x0, 0xc, 0x7a,0x35,0x29,0x74,0xc0,0x6c,0x77,0x12, +0x5a,0x87,0xbe,0x34,0x0, 0x24,0x78,0xf3,0x6d,0x33,0x7a,0x35,0x29,0x7e,0x35,0x29, +0x3e,0x34,0x2d,0x37,0x7e,0x39,0xb0,0x9, 0x73,0x0, 0x1, 0x12,0x1f,0xec,0x7a,0x35, +0x2b,0x12,0x5a,0x85,0xbe,0x34,0x0, 0x6, 0x78,0xe3,0x75,0x9d,0x0, 0x75,0x9e,0x0, +0x6d,0x33,0x7a,0x35,0x29,0x7e,0x35,0x29,0x7d,0x23,0x2e,0x24,0x1, 0x7f,0x12,0x17, +0x54,0x93,0xf5,0x9f,0xb, 0x34,0x7a,0x35,0x29,0xbe,0x34,0x1, 0x0, 0x40,0xe6,0x75, +0x9d,0x1, 0xda,0x3b,0x22,0xa, 0x56,0x12,0x59,0xc6,0x7e,0x35,0x29,0xb, 0x34,0x7a, +0x35,0x29,0x22,0xe4,0x6c,0x77,0x12,0x59,0x8b,0x60,0x3, 0x74,0x1, 0x22,0xe4,0x22, +0xe4,0x7e,0x70,0x3, 0x12,0x59,0x8b,0x60,0x3, 0x74,0x1, 0x22,0xe4,0x22,0x7c,0xa7, +0xa, 0x3b,0x12,0x1f,0x37,0x3e,0x34,0x3e,0x34,0x2e,0x34,0xc0,0x0, 0xa, 0x2a,0x2d, +0x32,0x22,0x6c,0x77,0x6d,0x22,0x80,0xe, 0xb, 0x70,0xa5,0xbf,0xff,0x2, 0xb, 0x24, +0xbe,0x24,0x3, 0xe8,0x68,0x3, 0x30,0x3, 0xef,0xc2,0x3, 0x53,0xdb,0xfe,0x53,0xdb, +0xfd,0xc2,0xeb,0x22,0x75,0xca,0x0, 0xa, 0x5b,0x3e,0x54,0xb, 0x54,0xf5,0xca,0x22, +0xca,0x3b,0x7d,0x2, 0xb, 0x38,0x60,0x7d,0xf6,0x5e,0xf4,0xff,0x0, 0xb, 0x8, 0x70, +0x7d,0x17,0x5e,0x14,0xff,0x0, 0x6e,0xd0,0xea,0x7c,0xef,0x6e,0xe0,0xea,0x7c,0x5d, +0x1e,0x50,0x1e,0x50,0x7c,0xf5,0x5e,0xf0,0x3, 0x7a,0xf1,0x2b,0x7c,0x8e,0x1e,0x80, +0x1e,0x80,0x7c,0xa8,0x5e,0xa0,0x3, 0x7c,0x9d,0x5e,0x90,0x3, 0x7c,0x4e,0x5e,0x40, +0x3, 0x5e,0x50,0x3c,0x5e,0x80,0x3c,0x4c,0x59,0x4c,0x84,0xac,0xfa,0xa, 0xea,0x2d, +0xe7,0x2e,0xe4,0x0, 0xd, 0x7d,0x7e,0x7c,0x4f,0xac,0xf4,0x7c,0x4f,0x7c,0xb4,0x54, +0x1, 0xa, 0xdb,0x3e,0xd4,0xb, 0xd4,0x7c,0xb4,0x1e,0xb0,0x1e,0xb0,0x54,0x1, 0xa, +0xeb,0x2d,0xed,0x7d,0x7e,0x7c,0x4f,0xa5,0xbc,0x3, 0x3, 0x7e,0x40,0x2, 0x7e,0xd4, +0x0, 0x1, 0x7c,0xb4,0x7d,0x7d,0x60,0x5, 0x3e,0x74,0x14,0x78,0xfb,0x1b,0x74,0xa, +0xc4,0x7e,0xe4,0x0, 0x6, 0x9d,0xec,0x7d,0x6e,0x7c,0xed,0x7c,0x9f,0x5c,0x98,0x7c, +0xbe,0x60,0x5, 0x3e,0x90,0x14,0x78,0xfb,0x7c,0xbe,0x7d,0x7d,0x60,0x5, 0x3e,0x74, +0x14,0x78,0xfb,0x1b,0x74,0x5c,0xf5,0x7c,0xb4,0x60,0x5, 0x3e,0xf0,0x14,0x78,0xfb, +0x7a,0xf1,0x2c,0x7c,0xb4,0x60,0x5, 0x1e,0x80,0x14,0x78,0xfb,0x7c,0x48,0x7d,0x7e, +0x7c,0xbf,0x60,0x5, 0x1e,0x50,0x14,0x78,0xfb,0x7c,0xb4,0x4c,0xb9,0xa, 0xeb,0x3e, +0xe4,0x3e,0xe4,0xe5,0x2b,0xa, 0x4b,0x4d,0x4e,0x4d,0x4f,0x1b,0x8, 0x40,0x7c,0xb5, +0x45,0x2c,0xa, 0xb, 0x3e,0x4, 0x3e,0x4, 0xa, 0x2a,0x4d,0x20,0x4d,0x21,0x1b,0x38, +0x20,0xda,0x3b,0x22,0x7a,0xb3,0x2, 0xc, 0x7a,0xb3,0x2, 0xd, 0x7a,0xb3,0x2, 0xda, +0x7a,0xb3,0x2, 0xdb,0x74,0x1, 0x7a,0xb3,0x2, 0xdc,0xe4,0x7a,0xb3,0x2, 0x11,0x7a, +0xb3,0x2, 0x12,0x22,0xe4,0x7a,0xb3,0xb, 0x3, 0x74,0x1, 0x7a,0xb3,0xb, 0x4, 0x7e, +0x73,0x4, 0x4f,0x7a,0x73,0xb, 0x5, 0x22,0x74,0x22,0x7a,0xb3,0x4, 0x4f,0xe4,0x7a, +0xb3,0x4, 0x52,0x74,0x2, 0x7a,0xb3,0x4, 0x53,0x74,0x1, 0x22,0x7e,0xd1,0x27,0x74, +0x8, 0xac,0xdb,0x2e,0x64,0x0, 0xa5,0x22,0x7e,0x34,0x0, 0x1, 0x7a,0x37,0x1, 0xcc, +0x22,0xc2,0xaf,0xd2,0xc9,0xa9,0xd5,0xcb,0x75,0xfd,0xf, 0x75,0xfe,0xf, 0x22,0x7e, +0x34,0x8, 0xaf,0x7a,0x37,0xe, 0xf, 0x22,0x7e,0x34,0x4, 0x55,0x7a,0x37,0xa, 0xc8, +0x22,0x7e,0x34,0x4, 0x55,0x7e,0x24,0x1, 0xf8,0xe4,0x2, 0x0, 0x46,0x7a,0xb3,0xb, +0x3, 0xe4,0x7a,0xb3,0xb, 0x4, 0x22,0x7a,0xb3,0xe, 0x7b,0x7a,0xb3,0xe, 0x7a,0x22, +0x7e,0x37,0x1, 0xcc,0xbe,0x34,0x0, 0x1, 0x22,0x7e,0x37,0x1, 0xcc,0xbe,0x34,0x0, +0x4, 0x22,0x7e,0x73,0xc, 0xa6,0x7a,0x73,0x4, 0x53,0x22,0x7e,0x34,0x3, 0xe8,0x7a, +0x37,0x4, 0x50,0x22,0x74,0x2, 0x7a,0xb3,0x2, 0xa, 0xe4,0x22,0x5c,0xbc,0xa3,0x43, +0xed,0x12,0x23,0x79, \ No newline at end of file diff --git a/drivers/input/touchscreen/focaltech/Makefile b/drivers/input/touchscreen/focaltech/Makefile new file mode 100644 index 00000000..0b53d161 --- /dev/null +++ b/drivers/input/touchscreen/focaltech/Makefile @@ -0,0 +1,11 @@ +# +# Makefile for the input core drivers. +# + +# Each configuration option enables a list of files. +obj-$(CONFIG_TOUCHSCREEN_FOCALTECH) += focaltech_ts.o +#focaltech_ts-objs += focaltech.o focaltech_ctl.o focaltech_ex_fun.o +focaltech_ts-objs := focaltech.o +focaltech_ts-objs += focaltech_ctl.o +focaltech_ts-objs += focaltech_ex_fun.o +#focaltech_ts-y += focaltech.o focaltech_ctl.o focaltech_ex_fun.o diff --git a/drivers/input/touchscreen/focaltech/focaltech.c b/drivers/input/touchscreen/focaltech/focaltech.c new file mode 100644 index 00000000..c7fe683d --- /dev/null +++ b/drivers/input/touchscreen/focaltech/focaltech.c @@ -0,0 +1,1053 @@ +/* + * drivers/input/touchscreen/ft5x0x_ts.c + * + * FocalTech ft5x0x TouchScreen driver. + * + * Copyright (c) 2010 Focal tech Ltd. + * + * 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. + * + * VERSION DATE AUTHOR + * 1.0 2010-01-05 WenFS + * + * note: only support mulititouch Wenfs 2010-10-01 + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#if(defined(CONFIG_I2C_SPRD) ||defined(CONFIG_I2C_SPRD_V1)) +#include +#endif + +#ifdef CONFIG_HAS_EARLYSUSPEND +#include +#endif + +//#define FT53X6_DBG +#ifdef FT53X6_DBG +#define ENTER printk(KERN_INFO "[FT53X6_DBG] func: %s line: %04d\n", __func__, __LINE__); +#define PRINT_DBG(x...) printk(KERN_INFO "[FT53X6_DBG] " x) +#define PRINT_INFO(x...) printk(KERN_INFO "[FT53X6_INFO] " x) +#define PRINT_WARN(x...) printk(KERN_INFO "[FT53X6_WARN] " x) +#define PRINT_ERR(format,x...) printk(KERN_ERR "[FT53X6_ERR] func: %s line: %04d info: " format, __func__, __LINE__, ## x) +#else +#define ENTER +#define PRINT_DBG(x...) +#define PRINT_INFO(x...) printk(KERN_INFO "[FT53X6_INFO] " x) +#define PRINT_WARN(x...) printk(KERN_INFO "[FT53X6_WARN] " x) +#define PRINT_ERR(format,x...) printk(KERN_ERR "[FT53X6_ERR] func: %s line: %04d info: " format, __func__, __LINE__, ## x) +#endif + +#define APK_DEBUG +#define SPRD_AUTO_UPGRADE +#define SYSFS_DEBUG +#define FTS_CTL_IIC +#include +#include +#include + +#define USE_WAIT_QUEUE 1 +#define USE_THREADED_IRQ 0 +#define USE_WORK_QUEUE 0 + +#define TOUCH_VIRTUAL_KEYS +#define MULTI_PROTOCOL_TYPE_B 1 +#ifdef CONFIG_ARCH_SCX35LT8 +#define TS_MAX_FINGER 2 +#else +#define TS_MAX_FINGER 5 +#endif +#define FTS_PACKET_LENGTH 128 + +#if USE_WAIT_QUEUE +static struct task_struct *thread = NULL; +static DECLARE_WAIT_QUEUE_HEAD(waiter); +static int tpd_flag = 0; +#endif + +#if 0 +static unsigned char FT5316_FW[]= +{ +#include "ft5316_720p.i" +}; + +static unsigned char FT5306_FW[]= +{ +#include "ft5306_qHD.i" +}; + +static unsigned char *CTPM_FW = FT5306_FW; +#endif +//static int fw_size; + +static struct ft5x0x_ts_data *g_ft5x0x_ts; +static struct i2c_client *this_client; + +//static unsigned char suspend_flag = 0; + + + struct Upgrade_Info fts_updateinfo[] = +{ + {0x55,"FT5x06",TPD_MAX_POINTS_5,AUTO_CLB_NEED,50, 30, 0x79, 0x03, 1, 2000}, + {0x08,"FT5606",TPD_MAX_POINTS_5,AUTO_CLB_NEED,50, 30, 0x79, 0x06, 100, 2000}, + {0x0a,"FT5x16",TPD_MAX_POINTS_5,AUTO_CLB_NEED,50, 30, 0x79, 0x07, 1, 1500}, + {0x05,"FT6208",TPD_MAX_POINTS_2,AUTO_CLB_NONEED,60, 30, 0x79, 0x05, 10, 2000}, + {0x06,"FT6x06",TPD_MAX_POINTS_2,AUTO_CLB_NONEED,100, 30, 0x79, 0x08, 10, 2000}, + {0x55,"FT5x06i",TPD_MAX_POINTS_5,AUTO_CLB_NEED,50, 30, 0x79, 0x03, 1, 2000}, + {0x14,"FT5336",TPD_MAX_POINTS_5,AUTO_CLB_NEED,30, 30, 0x79, 0x11, 10, 2000}, + {0x13,"FT3316",TPD_MAX_POINTS_5,AUTO_CLB_NEED,30, 30, 0x79, 0x11, 10, 2000}, + {0x12,"FT5436i",TPD_MAX_POINTS_5,AUTO_CLB_NEED,30, 30, 0x79, 0x11, 10, 2000}, + {0x11,"FT5336i",TPD_MAX_POINTS_5,AUTO_CLB_NEED,30, 30, 0x79, 0x11, 10, 2000}, +}; + +struct Upgrade_Info fts_updateinfo_curr; +#if 0//dennis +/* Attribute */ +static ssize_t ft5x0x_show_suspend(struct device* cd,struct device_attribute *attr, char* buf); +static ssize_t ft5x0x_store_suspend(struct device* cd, struct device_attribute *attr,const char* buf, size_t len); +static ssize_t ft5x0x_show_version(struct device* cd,struct device_attribute *attr, char* buf); +static ssize_t ft5x0x_update(struct device* cd, struct device_attribute *attr, const char* buf, size_t len); +#endif +//static unsigned char ft5x0x_read_fw_ver(void); + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void ft5x0x_ts_suspend(struct early_suspend *handler); +static void ft5x0x_ts_resume(struct early_suspend *handler); +#endif +//static int fts_ctpm_fw_update(void); +//static int fts_ctpm_fw_upgrade_with_i_file(void); + +struct ts_event { + u16 x1; + u16 y1; + u16 x2; + u16 y2; + u16 x3; + u16 y3; + u16 x4; + u16 y4; + u16 x5; + u16 y5; + u16 pressure; + u8 touch_point; +}; + +struct ft5x0x_ts_data { + struct input_dev *input_dev; + struct i2c_client *client; + struct ts_event event; +#if USE_WORK_QUEUE + struct work_struct pen_event_work; + struct workqueue_struct *ts_workqueue; +#endif +#ifdef CONFIG_HAS_EARLYSUSPEND + struct work_struct resume_work; + struct workqueue_struct *ts_resume_workqueue; + struct early_suspend early_suspend; +#endif + struct ft5x0x_ts_platform_data *platform_data; +}; + +#if 0//dennis +static DEVICE_ATTR(suspend, S_IRUGO | S_IWUSR, ft5x0x_show_suspend, ft5x0x_store_suspend); +static DEVICE_ATTR(update, S_IRUGO | S_IWUSR, ft5x0x_show_version, ft5x0x_update); + +static ssize_t ft5x0x_show_suspend(struct device* cd, + struct device_attribute *attr, char* buf) +{ + ssize_t ret = 0; + + if(suspend_flag==1) + sprintf(buf, "FT5x0x Suspend\n"); + else + sprintf(buf, "FT5x0x Resume\n"); + + ret = strlen(buf) + 1; + + return ret; +} + +static ssize_t ft5x0x_store_suspend(struct device* cd, struct device_attribute *attr, + const char* buf, size_t len) +{ + unsigned long on_off = simple_strtoul(buf, NULL, 10); + suspend_flag = on_off; + + if(on_off==1) + { + pr_info("FT5x0x Entry Suspend\n"); + #ifdef CONFIG_HAS_EARLYSUSPEND + ft5x0x_ts_suspend(NULL); + #endif + } + else + { + pr_info("FT5x0x Entry Resume\n"); + #ifdef CONFIG_HAS_EARLYSUSPEND + ft5x0x_ts_resume(NULL); + #endif + } + + return len; +} + +static ssize_t ft5x0x_show_version(struct device* cd, + struct device_attribute *attr, char* buf) +{ + ssize_t ret = 0; + unsigned char uc_reg_value; + + uc_reg_value = ft5x0x_read_fw_ver(); + + sprintf(buf, "ft5x0x firmware id is V%x\n", uc_reg_value); + + ret = strlen(buf) + 1; + + return ret; +} + +static ssize_t ft5x0x_update(struct device* cd, struct device_attribute *attr, + const char* buf, size_t len) +{ + unsigned long on_off = simple_strtoul(buf, NULL, 10); + unsigned char uc_reg_value; + + uc_reg_value = ft5x0x_read_fw_ver(); + + if(on_off==1) + { + pr_info("ft5x0x update, current firmware id is V%x\n", uc_reg_value); + //fts_ctpm_fw_update(); + fts_ctpm_fw_upgrade_with_i_file(); + } + + return len; +} + +static int ft5x0x_create_sysfs(struct i2c_client *client) +{ + int err; + struct device *dev = &(client->dev); + + err = device_create_file(dev, &dev_attr_suspend); + err = device_create_file(dev, &dev_attr_update); + + return err; +} +#endif + +static int ft5x0x_i2c_rxdata(char *rxdata, int length) +{ + int ret = 0; + + struct i2c_msg msgs[] = { + { + .addr = this_client->addr, + .flags = 0, + .len = 1, + .buf = rxdata, + }, + { + .addr = this_client->addr, + .flags = I2C_M_RD, + .len = length, + .buf = rxdata, + }, + }; + + if (i2c_transfer(this_client->adapter, msgs, 2) != 2) { + ret = -EIO; + pr_err("msg %s i2c read error: %d\n", __func__, ret); + } + + return ret; +} + +static int ft5x0x_i2c_txdata(char *txdata, int length) +{ + int ret = 0; + + struct i2c_msg msg[] = { + { + .addr = this_client->addr, + .flags = 0, + .len = length, + .buf = txdata, + }, + }; + + if (i2c_transfer(this_client->adapter, msg, 1) != 1) { + ret = -EIO; + pr_err("%s i2c write error: %d\n", __func__, ret); + } + + return ret; +} + +/*********************************************************************************************** +Name : ft5x0x_write_reg + +Input : addr -- address + para -- parameter + +Output : + +function : write register of ft5x0x + +***********************************************************************************************/ +static int ft5x0x_write_reg(u8 addr, u8 para) +{ + u8 buf[3]; + int ret = -1; + + buf[0] = addr; + buf[1] = para; + ret = ft5x0x_i2c_txdata(buf, 2); + if (ret < 0) { + pr_err("write reg failed! %#x ret: %d", buf[0], ret); + return -1; + } + + return 0; +} + +/*********************************************************************************************** +Name : ft5x0x_read_reg + +Input : addr + pdata + +Output : + +function : read register of ft5x0x + +***********************************************************************************************/ +static int ft5x0x_read_reg(u8 addr, u8 *pdata) +{ + int ret = 0; + u8 buf[2] = {addr, 0}; + + struct i2c_msg msgs[] = { + { + .addr = this_client->addr, + .flags = 0, + .len = 1, + .buf = buf, + }, + { + .addr = this_client->addr, + .flags = I2C_M_RD, + .len = 1, + .buf = buf+1, + }, + }; + + if (i2c_transfer(this_client->adapter, msgs, 2) != 2) { + ret = -EIO; + pr_err("msg %s i2c read error: %d\n", __func__, ret); + } + + *pdata = buf[1]; + return ret; +} + + +#ifdef TOUCH_VIRTUAL_KEYS + +static ssize_t virtual_keys_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) +{ + struct ft5x0x_ts_data *data = i2c_get_clientdata(this_client); + struct ft5x0x_ts_platform_data *pdata = data->platform_data; + return sprintf(buf,"%s:%s:%d:%d:%d:%d:%s:%s:%d:%d:%d:%d:%s:%s:%d:%d:%d:%d\n" + ,__stringify(EV_KEY), __stringify(KEY_APPSELECT),pdata ->virtualkeys[0],pdata ->virtualkeys[1],pdata ->virtualkeys[2],pdata ->virtualkeys[3] + ,__stringify(EV_KEY), __stringify(KEY_HOMEPAGE),pdata ->virtualkeys[4],pdata ->virtualkeys[5],pdata ->virtualkeys[6],pdata ->virtualkeys[7] + ,__stringify(EV_KEY), __stringify(KEY_BACK),pdata ->virtualkeys[8],pdata ->virtualkeys[9],pdata ->virtualkeys[10],pdata ->virtualkeys[11]); +} + +static struct kobj_attribute virtual_keys_attr = { + .attr = { + .name = "virtualkeys.focaltech_ts", + .mode = S_IRUGO, + }, + .show = &virtual_keys_show, +}; + +static struct attribute *properties_attrs[] = { + &virtual_keys_attr.attr, + NULL +}; + +static struct attribute_group properties_attr_group = { + .attrs = properties_attrs, +}; + +static void ft5x0x_ts_virtual_keys_init(void) +{ + int ret = 0; + struct kobject *properties_kobj; + + pr_info("[FST] %s\n",__func__); + + properties_kobj = kobject_create_and_add("board_properties", NULL); + if (properties_kobj) + ret = sysfs_create_group(properties_kobj, + &properties_attr_group); + if (!properties_kobj || ret) + pr_err("failed to create board_properties\n"); +} + +#endif + +/*********************************************************************************************** +Name : ft5x0x_read_fw_ver + +Input : void + +Output : firmware version + +function : read TP firmware version + +***********************************************************************************************/ +/*static unsigned char ft5x0x_read_fw_ver(void) +{ + unsigned char ver; + ft5x0x_read_reg(FT5X0X_REG_FIRMID, &ver); + return(ver); +} +*/ + + +static void ft5x0x_clear_report_data(struct ft5x0x_ts_data *ft5x0x_ts) +{ + int i; + + for(i = 0; i < TS_MAX_FINGER; i++) { + #if MULTI_PROTOCOL_TYPE_B + input_mt_slot(ft5x0x_ts->input_dev, i); + input_mt_report_slot_state(ft5x0x_ts->input_dev, MT_TOOL_FINGER, false); + #endif + } + input_report_key(ft5x0x_ts->input_dev, BTN_TOUCH, 0); + #if !MULTI_PROTOCOL_TYPE_B + input_mt_sync(ft5x0x_ts->input_dev); + #endif + input_sync(ft5x0x_ts->input_dev); +} + +static int ft5x0x_update_data(void) +{ + struct ft5x0x_ts_data *data = i2c_get_clientdata(this_client); + struct ts_event *event = &data->event; + u8 buf[33] = {0}; + int ret = -1; + int i; + u16 x , y; + u8 ft_pressure , ft_size; + + ret = ft5x0x_i2c_rxdata(buf, 33); + + if (ret < 0) { + pr_err("%s read_data i2c_rxdata failed: %d\n", __func__, ret); + return ret; + } + + memset(event, 0, sizeof(struct ts_event)); + event->touch_point = buf[2] & 0x07; + + for(i = 0; i < TS_MAX_FINGER; i++) { + if((buf[6*i+3] & 0xc0) == 0xc0) + continue; + x = (s16)(buf[6*i+3] & 0x0F)<<8 | (s16)buf[6*i+4]; + y = (s16)(buf[6*i+5] & 0x0F)<<8 | (s16)buf[6*i+6]; + ft_pressure = buf[6*i+7]; + if(ft_pressure > 127) + ft_pressure = 127; + ft_size = (buf[6*i+8]>>4) & 0x0F; + if((buf[6*i+3] & 0x40) == 0x0) { + #if MULTI_PROTOCOL_TYPE_B + input_mt_slot(data->input_dev, buf[6*i+5]>>4); + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, true); + #endif + input_report_abs(data->input_dev, ABS_MT_POSITION_X, x); + input_report_abs(data->input_dev, ABS_MT_POSITION_Y, y); + input_report_key(data->input_dev, BTN_TOUCH, 1); + #if !MULTI_PROTOCOL_TYPE_B + input_mt_sync(data->input_dev); + #endif + pr_debug("===x%d = %d,y%d = %d ====",i, x, i, y); + } + else { + #if MULTI_PROTOCOL_TYPE_B + input_mt_slot(data->input_dev, buf[6*i+5]>>4); + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, false); + #endif + } + } + if(0 == event->touch_point) { + for(i = 0; i < TS_MAX_FINGER; i ++) { + #if MULTI_PROTOCOL_TYPE_B + input_mt_slot(data->input_dev, i); + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, false); + #endif + } + input_report_key(data->input_dev, BTN_TOUCH, 0); + #if !MULTI_PROTOCOL_TYPE_B + input_mt_sync(data->input_dev); + #endif + + } + input_sync(data->input_dev); + + return 0; +} + +#if USE_WAIT_QUEUE +static int touch_event_handler(void *unused) +{ + struct sched_param param = { .sched_priority = 5 }; + sched_setscheduler(current, SCHED_RR, ¶m); + + do { + set_current_state(TASK_INTERRUPTIBLE); + wait_event_interruptible(waiter, (0 != tpd_flag)); + tpd_flag = 0; + set_current_state(TASK_RUNNING); + ft5x0x_update_data(); + + } while (!kthread_should_stop()); + + return 0; +} +#endif + +#if USE_WORK_QUEUE +static void ft5x0x_ts_pen_irq_work(struct work_struct *work) +{ + ft5x0x_update_data(); + enable_irq(this_client->irq); +} +#endif + +static irqreturn_t ft5x0x_ts_interrupt(int irq, void *dev_id) +{ +#if USE_WAIT_QUEUE + tpd_flag = 1; + wake_up_interruptible(&waiter); + return IRQ_HANDLED; +#endif + +#if USE_WORK_QUEUE + struct ft5x0x_ts_data *ft5x0x_ts = (struct ft5x0x_ts_data *)dev_id; + + if (!work_pending(&ft5x0x_ts->pen_event_work)) { + queue_work(ft5x0x_ts->ts_workqueue, &ft5x0x_ts->pen_event_work); + } + return IRQ_HANDLED; +#endif + +#if USE_THREADED_IRQ + ft5x0x_update_data(); + return IRQ_HANDLED; +#endif + +} + +static void ft5x0x_ts_reset(void) +{ + struct ft5x0x_ts_platform_data *pdata = g_ft5x0x_ts->platform_data; + + gpio_direction_output(pdata->reset_gpio_number, 1); + msleep(1); + gpio_set_value(pdata->reset_gpio_number, 0); + msleep(10); + gpio_set_value(pdata->reset_gpio_number, 1); + msleep(200); +} + +#if 0 +//for future use + +struct regulator *vdd28 = NULL; + +static void ft53x6_power_off(void) +{ + if(vdd28 != NULL) + regulator_force_disable(vdd28); + PRINT_INFO("power off\n"); +} + +static void ft53x6_power_on(void) +{ + int err = 0; + + if(vdd28 == NULL) { + vdd28 = regulator_get(NULL, "vdd28"); + if (IS_ERR(vdd28)) { + PRINT_ERR("regulator_get failed\n"); + return; + } + err = regulator_set_voltage(vdd28,2800000,2800000); + if (err) + PRINT_ERR("regulator_set_voltage failed\n"); + } + regulator_enable(vdd28); + + PRINT_INFO("power on\n"); +} +#endif + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void ft5x0x_ts_suspend(struct early_suspend *handler) +{ + int ret = -1; + pr_info("==%s==\n", __FUNCTION__); + ret = ft5x0x_write_reg(FT5X0X_REG_PMODE, PMODE_HIBERNATE); + if(ret){ + PRINT_ERR("==ft5x0x_ts_suspend== ft5x0x_write_reg fail\n"); + } + disable_irq(this_client->irq); + ft5x0x_clear_report_data(g_ft5x0x_ts); + //gpio_set_value(g_ft5x0x_ts->platform_data->reset_gpio_number, 0);//for future use +} + +static void ft5x0x_ts_resume(struct early_suspend *handler) +{ + struct ft5x0x_ts_data *ft5x0x_ts = (struct ft5x0x_ts_data *)i2c_get_clientdata(this_client); + queue_work(ft5x0x_ts->ts_resume_workqueue, &ft5x0x_ts->resume_work); +} + +static void ft5x0x_ts_resume_work(struct work_struct *work) +{ + pr_info("==%s==\n", __FUNCTION__); + ft5x0x_ts_reset(); + //ft5x0x_write_reg(FT5X0X_REG_PERIODACTIVE, 7); + enable_irq(this_client->irq); + msleep(2); + ft5x0x_clear_report_data(g_ft5x0x_ts); +} +#endif + +static void ft5x0x_ts_hw_init(struct ft5x0x_ts_data *ft5x0x_ts) +{ + struct regulator *reg_vdd; + struct i2c_client *client = ft5x0x_ts->client; + struct ft5x0x_ts_platform_data *pdata = ft5x0x_ts->platform_data; + + pr_info("[FST] %s [irq=%d];[rst=%d]\n",__func__, + pdata->irq_gpio_number,pdata->reset_gpio_number); + gpio_request(pdata->irq_gpio_number, "ts_irq_pin"); + gpio_request(pdata->reset_gpio_number, "ts_rst_pin"); + gpio_direction_output(pdata->reset_gpio_number, 1); + gpio_direction_input(pdata->irq_gpio_number); + + reg_vdd = regulator_get(&client->dev, pdata->vdd_name); + if (!WARN(IS_ERR(reg_vdd), "[FST] ft5x0x_ts_hw_init regulator: failed to get %s.\n", pdata->vdd_name)) { + if(!strcmp(pdata->vdd_name,"vdd18")) + regulator_set_voltage(reg_vdd,1800000,1800000); + if(!strcmp(pdata->vdd_name,"vdd28")) + regulator_set_voltage(reg_vdd, 2800000, 2800000); + regulator_enable(reg_vdd); + } + msleep(100); + ft5x0x_ts_reset(); +} + +void focaltech_get_upgrade_array(struct i2c_client *client) +{ + + u8 chip_id; + u32 i; + + i2c_smbus_read_i2c_block_data(client,FT_REG_CHIP_ID,1,&chip_id); + + printk("%s chip_id = %x\n", __func__, chip_id); + + for(i=0;i= sizeof(fts_updateinfo)/sizeof(struct Upgrade_Info)) + { + memcpy(&fts_updateinfo_curr, &fts_updateinfo[0], sizeof(struct Upgrade_Info)); + } +} + +#ifdef CONFIG_OF +static struct ft5x0x_ts_platform_data *ft5x0x_ts_parse_dt(struct device *dev) +{ + struct ft5x0x_ts_platform_data *pdata; + struct device_node *np = dev->of_node; + int ret,i = 0; + u32 data[12] = {0}; + u32 tmp_val_u32; + pdata = kzalloc(sizeof(*pdata), GFP_KERNEL); + if (!pdata) { + dev_err(dev, "Could not allocate struct ft5x0x_ts_platform_data"); + return NULL; + } + pdata->reset_gpio_number = of_get_gpio(np, 0); + if(pdata->reset_gpio_number < 0){ + dev_err(dev, "fail to get reset_gpio_number\n"); + goto fail; + } + pdata->irq_gpio_number = of_get_gpio(np, 1); + if(pdata->irq_gpio_number < 0){ + dev_err(dev, "fail to get irq_gpio_number\n"); + goto fail; + } + ret = of_property_read_string(np, "vdd_name", &pdata->vdd_name); + if(ret){ + dev_err(dev, "fail to get vdd_name\n"); + goto fail; + } + ret = of_property_read_u32_array(np, "virtualkeys", data,12); + if(ret){ + dev_err(dev, "fail to get virtualkeys\n"); + goto fail; + } + for(i = 0; i < 12; i ++){ + pdata->virtualkeys[i] = data[i]; + } + ret = of_property_read_u32(np, "TP_MAX_X", &tmp_val_u32); + if(ret){ + dev_err(dev, "fail to get TP_MAX_X\n"); + goto fail; + } + pdata->TP_MAX_X = tmp_val_u32; + ret = of_property_read_u32(np, "TP_MAX_Y", &tmp_val_u32); + if(ret){ + dev_err(dev, "fail to get TP_MAX_Y\n"); + goto fail; + } + pdata->TP_MAX_Y = tmp_val_u32; + return pdata; +fail: + kfree(pdata); + return NULL; +} +#endif + + +static int ft5x0x_ts_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + struct ft5x0x_ts_data *ft5x0x_ts; + struct input_dev *input_dev; + struct ft5x0x_ts_platform_data *pdata = client->dev.platform_data; + int err = 0; + unsigned char uc_reg_value; + //u8 chip_id,i; + + pr_info("[FST] %s: probe\n",__func__); +#ifdef CONFIG_OF + if (client->dev.of_node && !pdata){ + pdata = ft5x0x_ts_parse_dt(&client->dev); + if(pdata){ + client->dev.platform_data = pdata; + } + else{ + err = -ENOMEM; + goto exit_alloc_platform_data_failed; + } + } +#endif + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + err = -ENODEV; + goto exit_check_functionality_failed; + } + + ft5x0x_ts = kzalloc(sizeof(*ft5x0x_ts), GFP_KERNEL); + if (!ft5x0x_ts) { + err = -ENOMEM; + goto exit_alloc_data_failed; + } + + g_ft5x0x_ts = ft5x0x_ts; + ft5x0x_ts->platform_data = pdata; + this_client = client; + ft5x0x_ts->client = client; + ft5x0x_ts_hw_init(ft5x0x_ts); + i2c_set_clientdata(client, ft5x0x_ts); + client->irq = gpio_to_irq(pdata->irq_gpio_number); + + #if(defined(CONFIG_I2C_SPRD) || defined(CONFIG_I2C_SPRD_V1)) + sprd_i2c_ctl_chg_clk(client->adapter->nr, 400000); + #endif + + err = ft5x0x_read_reg(FT5X0X_REG_CIPHER, &uc_reg_value); + if (err < 0) + { + pr_err("[FST] read chip id error %x\n", uc_reg_value); + err = -ENODEV; + goto exit_chip_check_failed; + } + + /* set report rate, about 70HZ */ + //ft5x0x_write_reg(FT5X0X_REG_PERIODACTIVE, 7); +#if USE_WORK_QUEUE + INIT_WORK(&ft5x0x_ts->pen_event_work, ft5x0x_ts_pen_irq_work); + + ft5x0x_ts->ts_workqueue = create_singlethread_workqueue("focal-work-queue"); + if (!ft5x0x_ts->ts_workqueue) { + err = -ESRCH; + goto exit_create_singlethread; + } +#endif + +#ifdef CONFIG_HAS_EARLYSUSPEND + INIT_WORK(&ft5x0x_ts->resume_work, ft5x0x_ts_resume_work); + ft5x0x_ts->ts_resume_workqueue = create_singlethread_workqueue("ft5x0x_ts_resume_work"); + if (!ft5x0x_ts->ts_resume_workqueue) { + err = -ESRCH; + goto exit_create_singlethread; + } +#endif + input_dev = input_allocate_device(); + if (!input_dev) { + err = -ENOMEM; + dev_err(&client->dev, "[FST] failed to allocate input device\n"); + goto exit_input_dev_alloc_failed; + } +#ifdef TOUCH_VIRTUAL_KEYS + ft5x0x_ts_virtual_keys_init(); +#endif + ft5x0x_ts->input_dev = input_dev; + + __set_bit(ABS_MT_TOUCH_MAJOR, input_dev->absbit); + __set_bit(ABS_MT_POSITION_X, input_dev->absbit); + __set_bit(ABS_MT_POSITION_Y, input_dev->absbit); + __set_bit(ABS_MT_WIDTH_MAJOR, input_dev->absbit); + __set_bit(KEY_MENU, input_dev->keybit); + __set_bit(KEY_BACK, input_dev->keybit); + __set_bit(KEY_HOMEPAGE, input_dev->keybit); + __set_bit(BTN_TOUCH, input_dev->keybit); + +#if MULTI_PROTOCOL_TYPE_B + input_mt_init_slots(input_dev, TS_MAX_FINGER,0); +#endif + input_set_abs_params(input_dev,ABS_MT_POSITION_X, 0, pdata->TP_MAX_X, 0, 0); + input_set_abs_params(input_dev,ABS_MT_POSITION_Y, 0, pdata->TP_MAX_Y, 0, 0); + input_set_abs_params(input_dev,ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(input_dev,ABS_MT_WIDTH_MAJOR, 0, 255, 0, 0); + #if 0 + /*ft5306's firmware is qhd, ft5316's firmware is 720p*/ + if (uc_reg_value == 0x0a || uc_reg_value == 0x0) { + input_set_abs_params(input_dev, + ABS_MT_POSITION_X, 0, 720, 0, 0); + input_set_abs_params(input_dev, + ABS_MT_POSITION_Y, 0, 1280, 0, 0); + } else { + input_set_abs_params(input_dev, + ABS_MT_POSITION_X, 0, 540, 0, 0); + input_set_abs_params(input_dev, + ABS_MT_POSITION_Y, 0, 960, 0, 0); + } + input_set_abs_params(input_dev, + ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(input_dev, + ABS_MT_WIDTH_MAJOR, 0, 255, 0, 0); + + #endif + + set_bit(EV_ABS, input_dev->evbit); + set_bit(EV_KEY, input_dev->evbit); + + input_dev->name = FOCALTECH_TS_NAME; + err = input_register_device(input_dev); + if (err) { + dev_err(&client->dev, + "[FST] ft5x0x_ts_probe: failed to register input device: %s\n", + dev_name(&client->dev)); + goto exit_input_register_device_failed; + } + +#if USE_THREADED_IRQ + err = request_threaded_irq(client->irq, NULL, ft5x0x_ts_interrupt, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, client->name, ft5x0x_ts); +#else + err = request_irq(client->irq, ft5x0x_ts_interrupt, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, client->name, ft5x0x_ts); +#endif + if (err < 0) { + dev_err(&client->dev, "[FST] ft5x0x_probe: request irq failed %d\n",err); + goto exit_irq_request_failed; + } + +#ifdef CONFIG_HAS_EARLYSUSPEND + ft5x0x_ts->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + ft5x0x_ts->early_suspend.suspend = ft5x0x_ts_suspend; + ft5x0x_ts->early_suspend.resume = ft5x0x_ts_resume; + register_early_suspend(&ft5x0x_ts->early_suspend); +#endif + +focaltech_get_upgrade_array(client); + +#ifdef SYSFS_DEBUG +fts_create_sysfs(client); +#endif + +#ifdef FTS_CTL_IIC +if (ft_rw_iic_drv_init(client) < 0) +{ + dev_err(&client->dev, "%s:[FTS] create fts control iic driver failed\n", __func__); +} +#endif + +#ifdef SPRD_AUTO_UPGRADE + printk("********************Enter CTP Auto Upgrade********************\n"); + fts_ctpm_auto_upgrade(client); +#endif + +#ifdef APK_DEBUG + ft5x0x_create_apk_debug_channel(client); +#endif + +#if USE_WAIT_QUEUE + thread = kthread_run(touch_event_handler, 0, "focal-wait-queue"); + if (IS_ERR(thread)) + { + err = PTR_ERR(thread); + PRINT_ERR("failed to create kernel thread: %d\n", err); + } +#endif + + return 0; + +exit_irq_request_failed: + input_unregister_device(input_dev); +exit_input_register_device_failed: + input_free_device(input_dev); +exit_input_dev_alloc_failed: +exit_create_singlethread: +exit_chip_check_failed: + gpio_free(pdata->irq_gpio_number); + gpio_free(pdata->reset_gpio_number); + kfree(ft5x0x_ts); +exit_alloc_data_failed: +exit_check_functionality_failed: + ft5x0x_ts = NULL; + i2c_set_clientdata(client, ft5x0x_ts); +exit_alloc_platform_data_failed: + return err; +} + +static int ft5x0x_ts_remove(struct i2c_client *client) +{ + struct ft5x0x_ts_data *ft5x0x_ts = i2c_get_clientdata(client); + + pr_info("==ft5x0x_ts_remove=\n"); + + #ifdef SYSFS_DEBUG + fts_release_sysfs(client); + #endif + #ifdef FTS_CTL_IIC + ft_rw_iic_drv_exit(); + #endif + #ifdef APK_DEBUG + ft5x0x_release_apk_debug_channel(); + #endif + +#ifdef CONFIG_HAS_EARLYSUSPEND + unregister_early_suspend(&ft5x0x_ts->early_suspend); +#endif + free_irq(client->irq, ft5x0x_ts); + input_unregister_device(ft5x0x_ts->input_dev); + input_free_device(ft5x0x_ts->input_dev); +#if USE_WORK_QUEUE + cancel_work_sync(&ft5x0x_ts->pen_event_work); + destroy_workqueue(ft5x0x_ts->ts_workqueue); +#endif +#ifdef CONFIG_HAS_EARLYSUSPEND + cancel_work_sync(&ft5x0x_ts->resume_work); + destroy_workqueue(ft5x0x_ts->ts_resume_workqueue); +#endif + kfree(ft5x0x_ts); + ft5x0x_ts = NULL; + i2c_set_clientdata(client, ft5x0x_ts); + + return 0; +} + +static const struct i2c_device_id ft5x0x_ts_id[] = { + { FOCALTECH_TS_NAME, 0 },{ } +}; + +static int ft5x0x_suspend(struct i2c_client *client, pm_message_t mesg) +{ + PRINT_INFO("ft5x0x_suspend\n"); + return 0; +} +static int ft5x0x_resume(struct i2c_client *client) +{ + PRINT_INFO("ft5x0x_resume\n"); + return 0; +} + +MODULE_DEVICE_TABLE(i2c, ft5x0x_ts_id); + +static const struct of_device_id focaltech_of_match[] = { + { .compatible = "focaltech,focaltech_ts", }, + { } +}; +MODULE_DEVICE_TABLE(of, focaltech_of_match); +static struct i2c_driver ft5x0x_ts_driver = { + .probe = ft5x0x_ts_probe, + .remove = ft5x0x_ts_remove, + .id_table = ft5x0x_ts_id, + .driver = { + .name = FOCALTECH_TS_NAME, + .owner = THIS_MODULE, + .of_match_table = focaltech_of_match, + }, + .suspend = NULL, + .resume = NULL, +}; + +static int __init ft5x0x_ts_init(void) +{ + return i2c_add_driver(&ft5x0x_ts_driver); +} + +static void __exit ft5x0x_ts_exit(void) +{ + i2c_del_driver(&ft5x0x_ts_driver); +} + +module_init(ft5x0x_ts_init); +module_exit(ft5x0x_ts_exit); + +MODULE_AUTHOR(""); +MODULE_DESCRIPTION("FocalTech ft5x0x TouchScreen driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/focaltech/focaltech_ctl.c b/drivers/input/touchscreen/focaltech/focaltech_ctl.c new file mode 100644 index 00000000..c654da28 --- /dev/null +++ b/drivers/input/touchscreen/focaltech/focaltech_ctl.c @@ -0,0 +1,334 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +static int ft_rw_iic_drv_major = FT_RW_IIC_DRV_MAJOR; +struct ft_rw_i2c_dev { + struct cdev cdev; + struct semaphore ft_rw_i2c_sem; + struct i2c_client *client; +}; +struct ft_rw_i2c_dev *ft_rw_i2c_dev_tt; +static struct class *fts_class; +#if 0 +int ft5x0x_i2c_Read(struct i2c_client *client, char *writebuf, + int writelen, char *readbuf, int readlen) +{ +int ret; + +if (writelen > 0) { +struct i2c_msg msgs[] = { +{ + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, +{ + .addr = client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, +}; +ret = i2c_transfer(client->adapter, msgs, 2); +if (ret < 0) +dev_err(&client->dev, "f%s: i2c read error.\n", +__func__); +} else { +struct i2c_msg msgs[] = { +{ + .addr = client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, +}; +ret = i2c_transfer(client->adapter, msgs, 1); +if (ret < 0) +dev_err(&client->dev, "%s:i2c read error.\n", __func__); +} +return ret; +} + +/*write data by i2c*/ +int ft5x0x_i2c_Write(struct i2c_client *client, char *writebuf, int writelen) +{ +int ret; + +struct i2c_msg msg[] = { +{ + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, +}; + +ret = i2c_transfer(client->adapter, msg, 1); +if (ret < 0) +dev_err(&client->dev, "%s i2c write error.\n", __func__); + +return ret; +} +#endif + +static int ft_rw_iic_drv_myread(struct i2c_client *client, u8 *buf, int length) +{ + int ret = 0; + ret = fts_i2c_Read(client, NULL, 0, buf, length); + + if(ret<0) + dev_err(&client->dev, "%s:IIC Read failed\n", + __func__); + return ret; +} + +static int ft_rw_iic_drv_mywrite(struct i2c_client *client, u8 *buf, int length) +{ + int ret = 0; + ret = fts_i2c_Write(client, buf, length); + if(ret<0) + dev_err(&client->dev, "%s:IIC Write failed\n", + __func__); + return ret; +} + +static int ft_rw_iic_drv_RDWR(struct i2c_client *client, unsigned long arg) +{ + struct ft_rw_i2c_queue i2c_rw_queue; + u8 __user **data_ptrs; + struct ft_rw_i2c * i2c_rw_msg; + int ret = 0; + int i,j; + + if (!access_ok(VERIFY_READ, (struct ft_rw_i2c_queue *)arg, sizeof(struct ft_rw_i2c_queue))) + return -EFAULT; + + if (copy_from_user(&i2c_rw_queue, + (struct ft_rw_i2c_queue *)arg, + sizeof(struct ft_rw_i2c_queue))) + return -EFAULT; + + if (i2c_rw_queue.queuenum > FT_I2C_RDWR_MAX_QUEUE) + return -EINVAL; + + + i2c_rw_msg = (struct ft_rw_i2c*) + kmalloc(i2c_rw_queue.queuenum *sizeof(struct ft_rw_i2c), + GFP_KERNEL); + if (!i2c_rw_msg) + return -ENOMEM; + + if (copy_from_user(i2c_rw_msg, i2c_rw_queue.i2c_queue, + i2c_rw_queue.queuenum*sizeof(struct ft_rw_i2c))) { + kfree(i2c_rw_msg); + i2c_rw_msg = NULL; + return -EFAULT; + } + + data_ptrs = kmalloc(i2c_rw_queue.queuenum * sizeof(u8 __user *), GFP_KERNEL); + if (data_ptrs == NULL) { + kfree(i2c_rw_msg); + i2c_rw_msg = NULL; + return -ENOMEM; + } + + ret = 0; + for (i=0; i< i2c_rw_queue.queuenum; i++) { + if ((i2c_rw_msg[i].length > 8192)|| + (i2c_rw_msg[i].flag & I2C_M_RECV_LEN)) { + ret = -EINVAL; + break; + } + data_ptrs[i] = (u8 __user *)i2c_rw_msg[i].buf; + i2c_rw_msg[i].buf = kmalloc(i2c_rw_msg[i].length, GFP_KERNEL); + if (i2c_rw_msg[i].buf == NULL) { + ret = -ENOMEM; + break; + } + + if (copy_from_user(i2c_rw_msg[i].buf, data_ptrs[i], i2c_rw_msg[i].length)) { + ++i; + ret = -EFAULT; + break; + } + } + + if (ret < 0) { + for (j=0; j=0) + ret = copy_to_user(data_ptrs[i], i2c_rw_msg[i].buf, i2c_rw_msg[i].length); + } + else + ret = ft_rw_iic_drv_mywrite(client, + i2c_rw_msg[i].buf, i2c_rw_msg[i].length); + } + for (j=0; jprivate_data = ft_rw_i2c_dev_tt; + return 0; +} + +/* +*char device close function interface +*/ +static int ft_rw_iic_drv_release(struct inode *inode, struct file *filp) +{ + + return 0; +} + +static int ft_rw_iic_drv_ioctl(struct file *filp, unsigned + int cmd, unsigned long arg) +{ + int ret = 0; + struct ft_rw_i2c_dev *ftdev = filp->private_data; + ftdev = filp->private_data; + + //down(&ft_rw_i2c_dev_tt->ft_rw_i2c_sem); + switch (cmd) + { + case FT_I2C_RW: + ret = ft_rw_iic_drv_RDWR(ftdev->client, arg); + break; + default: + ret = -ENOTTY; + break; + } + //up(&ft_rw_i2c_dev_tt->ft_rw_i2c_sem); + return ret; +} + + +/* +*char device file operation which will be put to register the char device +*/ +static const struct file_operations ft_rw_iic_drv_fops = { + .owner = THIS_MODULE, + .open = ft_rw_iic_drv_open, + .release = ft_rw_iic_drv_release, + .unlocked_ioctl = ft_rw_iic_drv_ioctl, +}; + + +static void ft_rw_iic_drv_setup_cdev(struct ft_rw_i2c_dev *dev, int index) +{ + int err, devno = MKDEV(ft_rw_iic_drv_major, index); + + cdev_init(&dev->cdev, &ft_rw_iic_drv_fops); + dev->cdev.owner = THIS_MODULE; + dev->cdev.ops = &ft_rw_iic_drv_fops; + err = cdev_add(&dev->cdev, devno, 1); + if (err) + printk(KERN_NOTICE "Error %d adding LED%d", err, index); +} + +static int ft_rw_iic_drv_myinitdev(struct i2c_client *client) +{ + int err = 0; + dev_t devno = MKDEV(ft_rw_iic_drv_major, 0); + + if (ft_rw_iic_drv_major) + err = register_chrdev_region(devno, 1, FT_RW_IIC_DRV); + else { + err = alloc_chrdev_region(&devno, 0, 1, FT_RW_IIC_DRV); + ft_rw_iic_drv_major = MAJOR(devno); + } + if (err < 0) { + dev_err(&client->dev, "%s:ft_rw_iic_drv failed error code=%d---\n", + __func__, err); + return err; + } + + ft_rw_i2c_dev_tt = kmalloc(sizeof(struct ft_rw_i2c_dev), GFP_KERNEL); + if (!ft_rw_i2c_dev_tt){ + err = -ENOMEM; + unregister_chrdev_region(devno, 1); + dev_err(&client->dev, "%s:ft_rw_iic_drv failed\n", + __func__); + return err; + } + ft_rw_i2c_dev_tt->client = client; + //init_MUTEX(&ft_rw_i2c_dev_tt->ft_rw_i2c_sem); + ft_rw_iic_drv_setup_cdev(ft_rw_i2c_dev_tt, 0); + + fts_class = class_create(THIS_MODULE, "fts_class"); + if (IS_ERR(fts_class)) { + dev_err(&client->dev, "%s:failed in creating class.\n", + __func__); + return -1; + } + /*create device node*/ + device_create(fts_class, NULL, MKDEV(ft_rw_iic_drv_major, 0), + NULL, FT_RW_IIC_DRV); + + return 0; +} + +int ft_rw_iic_drv_init(struct i2c_client *client) +{ + dev_dbg(&client->dev, "[FTS]----ft_rw_iic_drv init ---\n"); + return ft_rw_iic_drv_myinitdev(client); +} + +void ft_rw_iic_drv_exit(void) +{ + device_destroy(fts_class, MKDEV(ft_rw_iic_drv_major, 0)); + /*delete class created by us*/ + class_destroy(fts_class); + /*delet the cdev*/ + cdev_del(&ft_rw_i2c_dev_tt->cdev); + kfree(ft_rw_i2c_dev_tt); + unregister_chrdev_region(MKDEV(ft_rw_iic_drv_major, 0), 1); +} + diff --git a/drivers/input/touchscreen/focaltech/focaltech_ex_fun.c b/drivers/input/touchscreen/focaltech/focaltech_ex_fun.c new file mode 100644 index 00000000..6ec67594 --- /dev/null +++ b/drivers/input/touchscreen/focaltech/focaltech_ex_fun.c @@ -0,0 +1,1321 @@ +/* + *drivers/input/touchscreen/ft5x06_ex_fun.c + * + *FocalTech IC driver expand function for debug. + * + *Copyright (c) 2010 Focal tech Ltd. + * + *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. + * + *Note:the error code of EIO is the general error in this file. + */ + +//#include "tpd.h" +//#include "tpd_custom_fts.h" +#include +#include +//#include +#include +#include +#include +#include + +static struct mutex g_device_mutex; +extern void mt65xx_eint_unmask(unsigned int line); +extern void mt65xx_eint_mask(unsigned int line); + +u8 *I2CDMABuf_va = NULL; +volatile u32 I2CDMABuf_pa = NULL; + +extern struct Upgrade_Info fts_updateinfo_curr; + +int fts_ctpm_fw_upgrade(struct i2c_client *client, u8 *pbt_buf, + u32 dw_lenth); + +static unsigned char FT6306_FW[] = { +#include "FT6x06_4Column_Ver0x12_20150227_app.h" +}; + +static unsigned char FT5316_FW[] = { +#include "Ft5x16_720P_Ver0x23_test_app.h" +}; + +static unsigned char FT_FW_NULL[] = { +}; + +static unsigned char *CTPM_FW = FT_FW_NULL; +static u32 fw_size = 0; + +static DEFINE_MUTEX(g_device_mutex); + +/* +*fts_i2c_Read-read data and write data by i2c +*@client: handle of i2c +*@writebuf: Data that will be written to the slave +*@writelen: How many bytes to write +*@readbuf: Where to store data read from slave +*@readlen: How many bytes to read +* +*Returns negative errno, else the number of messages executed +* +* +*/ +int fts_i2c_Read(struct i2c_client *client, char *writebuf, + int writelen, char *readbuf, int readlen) +{ + int ret; + +#if 1//for normal I2c transfer + if (writelen > 0) { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + { + .addr = client->addr, + .flags = 1, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(client->adapter, msgs, 2); + if (ret < 0) + dev_err(&client->dev, "f%s: i2c read error.\n", + __func__); + } else { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = 1, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(client->adapter, msgs, 1); + if (ret < 0) + dev_err(&client->dev, "%s:i2c read error.\n", __func__); + } +#else// for DMA I2c transfer + if(writelen!=0) + { + //DMA Write + if(0)//if(writelen < 8 ) + { + + //MSE_ERR("Sensor non-dma write timing is %x!\r\n", this_client->timing); + ret= i2c_master_send(client, writebuf, writelen); + } + else + { + for(i = 0 ; i < writelen; i++) + { + I2CDMABuf_va[i] = writebuf[i]; + } + + client->addr = client->addr & I2C_MASK_FLAG | I2C_DMA_FLAG; + + if((ret=i2c_master_send(client, (unsigned char *)I2CDMABuf_pa, writelen))!=writelen) + dev_err(&client->dev, "###%s i2c write len=%x,buffaddr=%x\n", __func__,ret,I2CDMABuf_pa); + //MSE_ERR("Sensor dma timing is %x!\r\n", this_client->timing); + //return ret; + client->addr = client->addr & I2C_MASK_FLAG &(~ I2C_DMA_FLAG); + + } + } + //DMA Read + if(readlen!=0) + { + if(0)//if (readlen <8) { + { + ret = i2c_master_recv(client, (unsigned char *)readbuf, readlen); + } + else + { + + client->addr = client->addr & I2C_MASK_FLAG | I2C_DMA_FLAG; + ret = i2c_master_recv(client, (unsigned char *)I2CDMABuf_pa, readlen); + + for(i = 0; i < readlen; i++) + { + readbuf[i] = I2CDMABuf_va[i]; + } + client->addr = client->addr & I2C_MASK_FLAG &(~ I2C_DMA_FLAG); + + } + } + #endif + return ret; +} +/*write data by i2c*/ + +int fts_i2c_Write(struct i2c_client *client, char *writebuf, int writelen) +{ + int ret; + + //int i = 0; + + + //printk("fts_i2c_Write %d %x %x %x %x",writelen,writebuf,I2CDMABuf_va,I2CDMABuf_pa,client); + + // client->addr = client->addr & I2C_MASK_FLAG; + // client->ext_flag |= I2C_DIRECTION_FLAG; + // client->timing = 100; + #if 1 + struct i2c_msg msg[] = { + { + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + }; + + ret = i2c_transfer(client->adapter, msg, 1); + if (ret < 0) + dev_err(&client->dev, "%s i2c write error.\n", __func__); + #else + + if(0)//if(writelen < 8) + { + + //MSE_ERR("Sensor non-dma write timing is %x!\r\n", this_client->timing); + ret = i2c_master_send(client, writebuf, writelen); + } + else + { + for(i = 0 ; i < writelen; i++) + { + I2CDMABuf_va[i] = writebuf[i]; + } + + client->addr = client->addr & I2C_MASK_FLAG | I2C_DMA_FLAG; + + if((ret=i2c_master_send(client, (unsigned char *)I2CDMABuf_pa, writelen))!=writelen) + dev_err(&client->dev, "###%s i2c write len=%x,buffaddr=%x\n", __func__,ret,I2CDMABuf_pa); + //MSE_ERR("Sensor dma timing is %x!\r\n", this_client->timing); + client->addr = client->addr & I2C_MASK_FLAG &(~ I2C_DMA_FLAG); + + } + #endif + return ret; + +} + +int fts_write_reg(struct i2c_client *client, u8 regaddr, u8 regvalue) +{ + unsigned char buf[2] = {0}; + buf[0] = regaddr; + buf[1] = regvalue; + + return fts_i2c_Write(client, buf, sizeof(buf)); +} + + +int fts_read_reg(struct i2c_client *client, u8 regaddr, u8 *regvalue) +{ + return fts_i2c_Read(client, ®addr, 1, regvalue, 1); +} + +int fts_ctpm_auto_clb(struct i2c_client *client) +{ + unsigned char uc_temp = 0x00; + unsigned char i = 0; + + /*start auto CLB */ + msleep(200); + + fts_write_reg(client, 0, FTS_FACTORYMODE_VALUE); + /*make sure already enter factory mode */ + msleep(100); + /*write command to start calibration */ + fts_write_reg(client, 2, 0x4); + msleep(300); + if ((fts_updateinfo_curr.CHIP_ID==0x11) ||(fts_updateinfo_curr.CHIP_ID==0x12) ||(fts_updateinfo_curr.CHIP_ID==0x13) ||(fts_updateinfo_curr.CHIP_ID==0x14)) //5x36,5x36i + { + for(i=0;i<100;i++) + { + fts_read_reg(client, 0x02, &uc_temp); + if (0x02 == uc_temp || + 0xFF == uc_temp) + { + /*if 0x02, then auto clb ok, else 0xff, auto clb failure*/ + break; + } + msleep(20); + } + } else { + for(i=0;i<100;i++) + { + fts_read_reg(client, 0, &uc_temp); + if (0x0 == ((uc_temp&0x70)>>4)) /*return to normal mode, calibration finish*/ + { + break; + } + msleep(20); + } + } + /*calibration OK*/ + fts_write_reg(client, 0, 0x40); /*goto factory mode for store*/ + msleep(200); /*make sure already enter factory mode*/ + fts_write_reg(client, 2, 0x5); /*store CLB result*/ + msleep(300); + fts_write_reg(client, 0, FTS_WORKMODE_VALUE); /*return to normal mode */ + msleep(300); + + /*store CLB result OK */ + return 0; +} + + +/* +upgrade with *.i file +*/ +int fts_ctpm_fw_upgrade_with_i_file(struct i2c_client *client) +{ + u8 *pbt_buf = NULL; + int i_ret; + //int fw_len = sizeof(CTPM_FW); + + /*judge the fw that will be upgraded + * if illegal, then stop upgrade and return. + */ + if (fw_size < 8 || fw_size > 32 * 1024) { + dev_err(&client->dev, "%s:FW length error\n", __func__); + return -EIO; + } + + if ((CTPM_FW[fw_size - 8] ^ CTPM_FW[fw_size - 6]) == 0xFF + && (CTPM_FW[fw_size - 7] ^ CTPM_FW[fw_size - 5]) == 0xFF + && (CTPM_FW[fw_size - 3] ^ CTPM_FW[fw_size - 4]) == 0xFF) { + /*FW upgrade */ + pbt_buf = CTPM_FW; + /*call the upgrade function */ + i_ret = fts_ctpm_fw_upgrade(client, pbt_buf, fw_size); + if (i_ret != 0) + dev_err(&client->dev, "%s:upgrade failed. err.\n", + __func__); + else if(fts_updateinfo_curr.AUTO_CLB==AUTO_CLB_NEED) + fts_ctpm_auto_clb(client); /*start auto CLB */ + + } else { + dev_err(&client->dev, "%s:FW format error\n", __func__); + return -EBADFD; + } + + return i_ret; +} + +u8 fts_ctpm_get_i_file_ver(void) +{ + u16 ui_sz; + //ui_sz = sizeof(CTPM_FW); + ui_sz = fw_size; + if (ui_sz > 2) + return CTPM_FW[ui_sz - 2]; + + return 0x00; /*default value */ +} + +/*update project setting +*only update these settings for COB project, or for some special case +*/ +int fts_ctpm_update_project_setting(struct i2c_client *client) +{ + u8 uc_i2c_addr; /*I2C slave address (7 bit address)*/ + u8 uc_io_voltage; /*IO Voltage 0---3.3v; 1----1.8v*/ + u8 uc_panel_factory_id; /*TP panel factory ID*/ + u8 buf[FTS_SETTING_BUF_LEN]; + u8 reg_val[2] = {0}; + u8 auc_i2c_write_buf[10] = {0}; + u8 packet_buf[FTS_SETTING_BUF_LEN + 6]; + u32 i = 0; + int i_ret; + + uc_i2c_addr = client->addr; + uc_io_voltage = 0x0; + uc_panel_factory_id = 0x5a; + + + /*Step 1:Reset CTPM + *write 0xaa to register 0xfc + */ + fts_write_reg(client, 0xfc, 0xaa); + msleep(50); + + /*write 0x55 to register 0xfc */ + fts_write_reg(client, 0xfc, 0x55); + msleep(30); + + /*********Step 2:Enter upgrade mode *****/ + auc_i2c_write_buf[0] = 0x55; + auc_i2c_write_buf[1] = 0xaa; + do { + i++; + i_ret = fts_i2c_Write(client, auc_i2c_write_buf, 2); + msleep(5); + } while (i_ret <= 0 && i < 5); + + + /*********Step 3:check READ-ID***********************/ + auc_i2c_write_buf[0] = 0x90; + auc_i2c_write_buf[1] = auc_i2c_write_buf[2] = auc_i2c_write_buf[3] = + 0x00; + + fts_i2c_Read(client, auc_i2c_write_buf, 4, reg_val, 2); + + if (reg_val[0] == 0x79 && reg_val[1] == 0x3) + dev_dbg(&client->dev, "[FTS] Step 3: CTPM ID,ID1 = 0x%x,ID2 = 0x%x\n", + reg_val[0], reg_val[1]); + else + return -EIO; + + auc_i2c_write_buf[0] = 0xcd; + fts_i2c_Read(client, auc_i2c_write_buf, 1, reg_val, 1); + dev_dbg(&client->dev, "bootloader version = 0x%x\n", reg_val[0]); + + /*--------- read current project setting ---------- */ + /*set read start address */ + buf[0] = 0x3; + buf[1] = 0x0; + buf[2] = 0x78; + buf[3] = 0x0; + + fts_i2c_Read(client, buf, 4, buf, FTS_SETTING_BUF_LEN); + dev_dbg(&client->dev, "[FTS] old setting: uc_i2c_addr = 0x%x,\ + uc_io_voltage = %d, uc_panel_factory_id = 0x%x\n", + buf[0], buf[2], buf[4]); + + /*--------- Step 4:erase project setting --------------*/ + auc_i2c_write_buf[0] = 0x63; + fts_i2c_Write(client, auc_i2c_write_buf, 1); + msleep(100); + + /*---------- Set new settings ---------------*/ + buf[0] = uc_i2c_addr; + buf[1] = ~uc_i2c_addr; + buf[2] = uc_io_voltage; + buf[3] = ~uc_io_voltage; + buf[4] = uc_panel_factory_id; + buf[5] = ~uc_panel_factory_id; + packet_buf[0] = 0xbf; + packet_buf[1] = 0x00; + packet_buf[2] = 0x78; + packet_buf[3] = 0x0; + packet_buf[4] = 0; + packet_buf[5] = FTS_SETTING_BUF_LEN; + + for (i = 0; i < FTS_SETTING_BUF_LEN; i++) + packet_buf[6 + i] = buf[i]; + + fts_i2c_Write(client, packet_buf, FTS_SETTING_BUF_LEN + 6); + msleep(100); + + /********* reset the new FW***********************/ + auc_i2c_write_buf[0] = 0x07; + fts_i2c_Write(client, auc_i2c_write_buf, 1); + + msleep(200); + return 0; +} + +int fts_ctpm_auto_upgrade(struct i2c_client *client) +{ + u8 uc_host_fm_ver = FT_REG_FW_VER; + u8 uc_tp_fm_ver; + int i_ret; + unsigned char uc_reg_value; + + fts_read_reg(client, FT5X0X_REG_CIPHER, &uc_reg_value); + printk("[FTS] read chip id is %x\n",uc_reg_value); +#ifdef CONFIG_TOUCHSCREEN_FIRMWARE_UPGRADE +/*the chip id of FT6306 is 0x06*/ + if (uc_reg_value == 0x06) + { + CTPM_FW = FT6306_FW; + fw_size = sizeof(FT6306_FW); + } + if (uc_reg_value == 0x0a) + { + CTPM_FW = FT5316_FW; + fw_size = sizeof(FT5316_FW); + } +#endif + fts_read_reg(client, FT_REG_FW_VER, &uc_tp_fm_ver); + uc_host_fm_ver = fts_ctpm_get_i_file_ver(); + + printk("[FTS] uc_tp_fm_ver = 0x%x, uc_host_fm_ver = 0x%x\n",uc_tp_fm_ver, uc_host_fm_ver); +/* +*avoid the old module about 500pcs to upgrade the firmware, +*the firmware version of old module is from 0x01 to 0x03, +*but the new module firmware version is more than 0x10. +*bug385939 +*/ + if (uc_reg_value == 0x06) { + if (uc_tp_fm_ver < 0x04) + return 0; + } + + if (/*the firmware in touch panel maybe corrupted */ + uc_tp_fm_ver == FT_REG_FW_VER || + /*the firmware in host flash is new, need upgrade */ + uc_tp_fm_ver < uc_host_fm_ver + ) { + msleep(100); + dev_dbg(&client->dev, "[FTS] uc_tp_fm_ver = 0x%x, uc_host_fm_ver = 0x%x\n", + uc_tp_fm_ver, uc_host_fm_ver); + i_ret = fts_ctpm_fw_upgrade_with_i_file(client); + if (i_ret == 0) { + msleep(300); + uc_host_fm_ver = fts_ctpm_get_i_file_ver(); + dev_dbg(&client->dev, "[FTS] upgrade to new version 0x%x\n", + uc_host_fm_ver); + } else { + pr_err("[FTS] upgrade failed ret=%d.\n", i_ret); + return -EIO; + } + } + + return 0; +} + +void delay_qt_ms(unsigned long w_ms) +{ + unsigned long i; + unsigned long j; + + for (i = 0; i < w_ms; i++) + { + for (j = 0; j < 1000; j++) + { + udelay(1); + } + } +} + +extern void focaltech_get_upgrade_array(struct i2c_client *client); + +int fts_ctpm_fw_upgrade(struct i2c_client *client, u8 *pbt_buf, + u32 dw_lenth) +{ + u8 reg_val[2] = {0}; + u32 i = 0; + u8 is_5336_new_bootloader = 0; + u8 is_5336_fwsize_30 = 0; + u32 packet_number; + u32 j=0; + u32 temp; + u32 lenght; + u8 packet_buf[FTS_PACKET_LENGTH + 6]; + u8 auc_i2c_write_buf[10]; + u8 bt_ecc; + int i_ret; + // struct Upgrade_Info upgradeinfo; + + //fts_get_upgrade_info(&upgradeinfo); + + focaltech_get_upgrade_array(client); + + if(*(pbt_buf+dw_lenth-12) == 30) + { + is_5336_fwsize_30 = 1; + } + else + { + is_5336_fwsize_30 = 0; + } + for (i = 0; i < FTS_UPGRADE_LOOP; i++) + { + msleep(100); + printk("[FTS] Step 1:Reset CTPM\n"); + /*********Step 1:Reset CTPM *****/ + /*write 0xaa to register 0xfc */ + //if (DEVICE_IC_TYPE == IC_FT6208 || DEVICE_IC_TYPE == IC_FT6x06) + if(fts_updateinfo_curr.CHIP_ID==0x05 || fts_updateinfo_curr.CHIP_ID==0x06 ) + fts_write_reg(client, 0xbc, FT_UPGRADE_AA); + else + fts_write_reg(client, 0xfc, FT_UPGRADE_AA); + msleep(fts_updateinfo_curr.delay_aa); + + + /*write 0x55 to register 0xfc */ + //if(DEVICE_IC_TYPE == IC_FT6208 || DEVICE_IC_TYPE == IC_FT6x06) + if(fts_updateinfo_curr.CHIP_ID==0x05 || fts_updateinfo_curr.CHIP_ID==0x06 ) + fts_write_reg(client, 0xbc, FT_UPGRADE_55); + else + fts_write_reg(client, 0xfc, FT_UPGRADE_55); + if(i<=15) + { + msleep(fts_updateinfo_curr.delay_55+i*3); + } + else + { + msleep(fts_updateinfo_curr.delay_55-(i-15)*2); + } + + + /*********Step 2:Enter upgrade mode *****/ + printk("[FTS] Step 2:Enter upgrade mode \n"); + #if 0 + auc_i2c_write_buf[0] = FT_UPGRADE_55; + auc_i2c_write_buf[1] = FT_UPGRADE_AA; + do { + j++; + i_ret = fts_i2c_Write(client, auc_i2c_write_buf, 2); + msleep(5); + } while (i_ret <= 0 && j < 5); + #else + auc_i2c_write_buf[0] = FT_UPGRADE_55; + fts_i2c_Write(client, auc_i2c_write_buf, 1); + msleep(5); + auc_i2c_write_buf[0] = FT_UPGRADE_AA; + fts_i2c_Write(client, auc_i2c_write_buf, 1); + #endif + +#if 1 + /*********Step 3:check READ-ID***********************/ + msleep(fts_updateinfo_curr.delay_readid); + auc_i2c_write_buf[0] = 0x90; + auc_i2c_write_buf[1] = auc_i2c_write_buf[2] = auc_i2c_write_buf[3] =0x00; + fts_i2c_Read(client, auc_i2c_write_buf, 4, reg_val, 2); + + printk("[FTS] Step 3: CTPM ID,ID1 = 0x%x,ID2 = 0x%x\n",reg_val[0], reg_val[1]); + if (reg_val[0] == fts_updateinfo_curr.upgrade_id_1 + && reg_val[1] == fts_updateinfo_curr.upgrade_id_2) { + //dev_dbg(&client->dev, "[FTS] Step 3: CTPM ID,ID1 = 0x%x,ID2 = 0x%x\n", + //reg_val[0], reg_val[1]); + printk("[FTS] Step 3: CTPM ID,ID1 = 0x%x,ID2 = 0x%x\n", + reg_val[0], reg_val[1]); + break; + } else { + dev_err(&client->dev, "[FTS] Step 3: CTPM ID,ID1 = 0x%x,ID2 = 0x%x\n", + reg_val[0], reg_val[1]); + } +#endif + } + if (i >= FTS_UPGRADE_LOOP) + return -EIO; + + auc_i2c_write_buf[0] = 0xcd; + fts_i2c_Read(client, auc_i2c_write_buf, 1, reg_val, 1); + /*********0705 mshl ********************/ + /*if (reg_val[0] > 4) + is_5336_new_bootloader = 1;*/ + + if (reg_val[0] <= 4) + { + is_5336_new_bootloader = BL_VERSION_LZ4 ; + } + else if(reg_val[0] == 7) + { + is_5336_new_bootloader = BL_VERSION_Z7 ; + } + else if(reg_val[0] >= 0x0f && ((fts_updateinfo_curr.CHIP_ID==0x11) ||(fts_updateinfo_curr.CHIP_ID==0x12) ||(fts_updateinfo_curr.CHIP_ID==0x13) ||(fts_updateinfo_curr.CHIP_ID==0x14))) + { + is_5336_new_bootloader = BL_VERSION_GZF ; + } + else + { + is_5336_new_bootloader = BL_VERSION_LZ4 ; + } + + + printk("[FTS] Step 4:erase app and panel paramenter area\n"); + /*Step 4:erase app and panel paramenter area*/ + printk("Step 4:erase app and panel paramenter area\n"); + auc_i2c_write_buf[0] = 0x61; + fts_i2c_Write(client, auc_i2c_write_buf, 1); /*erase app area */ + msleep(fts_updateinfo_curr.delay_earse_flash); + /*erase panel parameter area */ + if(is_5336_fwsize_30) + { + auc_i2c_write_buf[0] = 0x63; + fts_i2c_Write(client, auc_i2c_write_buf, 1); + } + msleep(100); + + printk("[FTS] Step 5:write firmware(FW) to ctpm flash\n"); + /*********Step 5:write firmware(FW) to ctpm flash*********/ + bt_ecc = 0; + printk("Step 5:write firmware(FW) to ctpm flash\n"); + + //dw_lenth = dw_lenth - 8; + if(is_5336_new_bootloader == BL_VERSION_LZ4 || is_5336_new_bootloader == BL_VERSION_Z7 ) + { + dw_lenth = dw_lenth - 8; + } + else if(is_5336_new_bootloader == BL_VERSION_GZF) + { + dw_lenth = dw_lenth - 14; + } + packet_number = (dw_lenth) / FTS_PACKET_LENGTH; + packet_buf[0] = 0xbf; + packet_buf[1] = 0x00; + + for (j = 0; j < packet_number; j++) { + temp = j * FTS_PACKET_LENGTH; + packet_buf[2] = (u8) (temp >> 8); + packet_buf[3] = (u8) temp; + lenght = FTS_PACKET_LENGTH; + packet_buf[4] = (u8) (lenght >> 8); + packet_buf[5] = (u8) lenght; + + for (i = 0; i < FTS_PACKET_LENGTH; i++) { + packet_buf[6 + i] = pbt_buf[j * FTS_PACKET_LENGTH + i]; + bt_ecc ^= packet_buf[6 + i]; + } + + fts_i2c_Write(client, packet_buf, FTS_PACKET_LENGTH + 6); + msleep(FTS_PACKET_LENGTH / 6 + 1); + if((((j+1) * FTS_PACKET_LENGTH)%1024)==0) + printk("write bytes:0x%04x\n", (j+1) * FTS_PACKET_LENGTH); + //delay_qt_ms(FTS_PACKET_LENGTH / 6 + 1); + } + + if ((dw_lenth) % FTS_PACKET_LENGTH > 0) { + temp = packet_number * FTS_PACKET_LENGTH; + packet_buf[2] = (u8) (temp >> 8); + packet_buf[3] = (u8) temp; + temp = (dw_lenth) % FTS_PACKET_LENGTH; + packet_buf[4] = (u8) (temp >> 8); + packet_buf[5] = (u8) temp; + + for (i = 0; i < temp; i++) { + packet_buf[6 + i] = pbt_buf[packet_number * FTS_PACKET_LENGTH + i]; + bt_ecc ^= packet_buf[6 + i]; + } + + fts_i2c_Write(client, packet_buf, temp + 6); + msleep(20); + } +#if 0 + /*send the last six byte*/ + for (i = 0; i<6; i++) + { + if (is_5336_new_bootloader && ((fts_updateinfo_curr.CHIP_ID==0x11) ||(fts_updateinfo_curr.CHIP_ID==0x12) ||(fts_updateinfo_curr.CHIP_ID==0x13) ||(fts_updateinfo_curr.CHIP_ID==0x14)))//5x36,5x36i + temp = 0x7bfa + i; + else + temp = 0x6ffa + i; + packet_buf[2] = (u8)(temp>>8); + packet_buf[3] = (u8)temp; + temp =1; + packet_buf[4] = (u8)(temp>>8); + packet_buf[5] = (u8)temp; + packet_buf[6] = pbt_buf[ dw_lenth + i]; + bt_ecc ^= packet_buf[6]; + fts_i2c_Write(client, packet_buf, 7); + msleep(20); + } +#else + /*send the last six byte*/ + if(is_5336_new_bootloader == BL_VERSION_LZ4 || is_5336_new_bootloader == BL_VERSION_Z7 ) + { + for (i = 0; i<6; i++) + { + if (is_5336_new_bootloader == BL_VERSION_Z7 ) + { + temp = 0x7bfa + i; + } + else if(is_5336_new_bootloader == BL_VERSION_LZ4) + { + temp = 0x6ffa + i; + } + packet_buf[2] = (u8)(temp>>8); + packet_buf[3] = (u8)temp; + temp =1; + packet_buf[4] = (u8)(temp>>8); + packet_buf[5] = (u8)temp; + packet_buf[6] = pbt_buf[ dw_lenth + i]; + bt_ecc ^= packet_buf[6]; + + fts_i2c_Write(client, packet_buf, 7); + msleep(20); + } + } + else if(is_5336_new_bootloader == BL_VERSION_GZF) + { + + for (i = 0; i<12; i++) + { + if (is_5336_fwsize_30) + { + temp = 0x7ff4 + i; + } + else + { + temp = 0x7bf4 + i; + } + packet_buf[2] = (u8)(temp>>8); + packet_buf[3] = (u8)temp; + temp =1; + packet_buf[4] = (u8)(temp>>8); + packet_buf[5] = (u8)temp; + packet_buf[6] = pbt_buf[ dw_lenth + i]; + bt_ecc ^= packet_buf[6]; + + fts_i2c_Write(client, packet_buf, 7); + msleep(20); + + } + } + +#endif + printk("[FTS] Step 6: read out checksum\n"); + /*********Step 6: read out checksum***********************/ + /*send the opration head */ + printk("Step 6: read out checksum\n"); + auc_i2c_write_buf[0] = 0xcc; + fts_i2c_Read(client, auc_i2c_write_buf, 1, reg_val, 1); + if (reg_val[0] != bt_ecc) { + dev_err(&client->dev, "[FTS]--ecc error! FW=%02x bt_ecc=%02x\n", + reg_val[0], + bt_ecc); + return -EIO; + } + + printk("[FTS] Step 7: reset the new FW\n"); + /*********Step 7: reset the new FW***********************/ + printk("Step 7: reset the new FW\n"); + auc_i2c_write_buf[0] = 0x07; + fts_i2c_Write(client, auc_i2c_write_buf, 1); + msleep(300); /*make sure CTP startup normally */ + + return 0; +} +/*sysfs debug*/ + +/* +*get firmware size + +@firmware_name:firmware name +*note:the firmware default path is sdcard. + if you want to change the dir, please modify by yourself. +*/ +static int fts_GetFirmwareSize(char *firmware_name) +{ + struct file *pfile = NULL; + struct inode *inode; + unsigned long magic; + off_t fsize = 0; + char filepath[128]; + memset(filepath, 0, sizeof(filepath)); + + sprintf(filepath, "%s", firmware_name); + + if (NULL == pfile) + pfile = filp_open(filepath, O_RDONLY, 0); + + if (IS_ERR(pfile)) { + pr_err("error occured while opening file %s.\n", filepath); + return -EIO; + } + + inode = pfile->f_dentry->d_inode; + magic = inode->i_sb->s_magic; + fsize = inode->i_size; + filp_close(pfile, NULL); + return fsize; +} + + + +/* +*read firmware buf for .bin file. + +@firmware_name: fireware name +@firmware_buf: data buf of fireware + +note:the firmware default path is sdcard. + if you want to change the dir, please modify by yourself. +*/ +static int fts_ReadFirmware(char *firmware_name, + unsigned char *firmware_buf) +{ + struct file *pfile = NULL; + struct inode *inode; + unsigned long magic; + off_t fsize; + char filepath[128]; + loff_t pos; + mm_segment_t old_fs; + + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s", firmware_name); + if (NULL == pfile) + pfile = filp_open(filepath, O_RDONLY, 0); + if (IS_ERR(pfile)) { + pr_err("error occured while opening file %s.\n", filepath); + return -EIO; + } + + inode = pfile->f_dentry->d_inode; + magic = inode->i_sb->s_magic; + fsize = inode->i_size; + old_fs = get_fs(); + set_fs(KERNEL_DS); + pos = 0; + vfs_read(pfile, firmware_buf, fsize, &pos); + filp_close(pfile, NULL); + set_fs(old_fs); + + return 0; +} + + + +/* +upgrade with *.bin file +*/ + +int fts_ctpm_fw_upgrade_with_app_file(struct i2c_client *client, + char *firmware_name) +{ + u8 *pbt_buf = NULL; + int i_ret=0; + int fwsize = fts_GetFirmwareSize(firmware_name); + + if (fwsize <= 0) { + dev_err(&client->dev, "%s ERROR:Get firmware size failed\n", + __func__); + return -EIO; + } + + if (fwsize < 8 || fwsize > 32 * 1024) { + dev_dbg(&client->dev, "%s:FW length error\n", __func__); + return -EIO; + } + + + /*=========FW upgrade========================*/ + pbt_buf = kmalloc(fwsize + 1, GFP_ATOMIC); + + if (fts_ReadFirmware(firmware_name, pbt_buf)) { + dev_err(&client->dev, "%s() - ERROR: request_firmware failed\n", + __func__); + kfree(pbt_buf); + pbt_buf = NULL; + //return -EIO; + i_ret = -EIO; + goto err_ret; + } + + /*call the upgrade function */ + i_ret = fts_ctpm_fw_upgrade(client, pbt_buf, fwsize); + if (i_ret != 0) + dev_err(&client->dev, "%s() - ERROR:[FTS] upgrade failed..\n", + __func__); + else if(fts_updateinfo_curr.AUTO_CLB==AUTO_CLB_NEED) + fts_ctpm_auto_clb(client); + +err_ret: + + + if(pbt_buf != NULL) + kfree(pbt_buf); + + return i_ret; +} + +static ssize_t fts_tpfwver_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + ssize_t num_read_chars = 0; + u8 fwver = 0; + struct i2c_client *client = container_of(dev, struct i2c_client, dev); + + mutex_lock(&g_device_mutex); + + if (fts_read_reg(client, FT_REG_FW_VER, &fwver) < 0) + num_read_chars = snprintf(buf, PAGE_SIZE, + "get tp fw version fail!\n"); + else + num_read_chars = snprintf(buf, PAGE_SIZE, "%02X\n", fwver); + + mutex_unlock(&g_device_mutex); + + return num_read_chars; +} + +static ssize_t fts_tpfwver_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + /*place holder for future use*/ + return -EPERM; +} + + + +static ssize_t fts_tprwreg_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + /*place holder for future use*/ + return -EPERM; +} + +static ssize_t fts_tprwreg_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct i2c_client *client = container_of(dev, struct i2c_client, dev); + ssize_t num_read_chars = 0; + int retval; + long unsigned int wmreg = 0; + u8 regaddr = 0xff, regvalue = 0xff; + u8 valbuf[5] = {0}; + + memset(valbuf, 0, sizeof(valbuf)); + mutex_lock(&g_device_mutex); + num_read_chars = count - 1; + + if (num_read_chars != 2) { + if (num_read_chars != 4) { + pr_info("please input 2 or 4 character\n"); + goto error_return; + } + } + + memcpy(valbuf, buf, num_read_chars); + retval = strict_strtoul(valbuf, 16, &wmreg); + + if (0 != retval) { + dev_err(&client->dev, "%s() - ERROR: Could not convert the "\ + "given input to a number." \ + "The given input was: \"%s\"\n", + __func__, buf); + goto error_return; + } + + if (2 == num_read_chars) { + /*read register*/ + regaddr = wmreg; + if (fts_read_reg(client, regaddr, ®value) < 0) + dev_err(&client->dev, "Could not read the register(0x%02x)\n", + regaddr); + else + pr_info("the register(0x%02x) is 0x%02x\n", + regaddr, regvalue); + } else { + regaddr = wmreg >> 8; + regvalue = wmreg; + if (fts_write_reg(client, regaddr, regvalue) < 0) + dev_err(&client->dev, "Could not write the register(0x%02x)\n", + regaddr); + else + dev_err(&client->dev, "Write 0x%02x into register(0x%02x) successful\n", + regvalue, regaddr); + } + +error_return: + mutex_unlock(&g_device_mutex); + + return count; +} + +static ssize_t fts_fwupdate_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + /* place holder for future use */ + return -EPERM; +} + +/*upgrade from *.i*/ +static ssize_t fts_fwupdate_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + //struct fts_ts_data *data = NULL; + u8 uc_host_fm_ver; + int i_ret; + struct i2c_client *client = container_of(dev, struct i2c_client, dev); + + //data = (struct fts_ts_data *)i2c_get_clientdata(client); + + mutex_lock(&g_device_mutex); + + disable_irq(client->irq); + //mt65xx_eint_mask(CUST_EINT_TOUCH_PANEL_NUM); + i_ret = fts_ctpm_fw_upgrade_with_i_file(client); + if (i_ret == 0) { + msleep(300); + uc_host_fm_ver = fts_ctpm_get_i_file_ver(); + pr_info("%s [FTS] upgrade to new version 0x%x\n", __func__, + uc_host_fm_ver); + } else + dev_err(&client->dev, "%s ERROR:[FTS] upgrade failed.\n", + __func__); + + enable_irq(client->irq); + //mt65xx_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM); + mutex_unlock(&g_device_mutex); + + return count; +} + +static ssize_t fts_fwupgradeapp_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + /*place holder for future use*/ + return -EPERM; +} + + +/*upgrade from app.bin*/ +static ssize_t fts_fwupgradeapp_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + ssize_t num_read_chars = 0; + char fwname[128]; + struct i2c_client *client = container_of(dev, struct i2c_client, dev); + + memset(fwname, 0, sizeof(fwname)); + sprintf(fwname, "%s", buf); + fwname[count - 1] = '\0'; + + mutex_lock(&g_device_mutex); + disable_irq(client->irq); + //mt65xx_eint_mask(CUST_EINT_TOUCH_PANEL_NUM); + if(0==fts_ctpm_fw_upgrade_with_app_file(client, fwname)) + { + num_read_chars = snprintf(buf, PAGE_SIZE, + "FTP firmware upgrade success!\n"); + } + else + { + num_read_chars = snprintf(buf, PAGE_SIZE, + "FTP firmware upgrade fail!\n"); + } + + enable_irq(client->irq); + //mt65xx_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM); + mutex_unlock(&g_device_mutex); + + return num_read_chars; +} + + +/*sysfs */ +/*get the fw version +*example:cat ftstpfwver +*/ +static DEVICE_ATTR(ftstpfwver, S_IRUGO | S_IWUSR, fts_tpfwver_show, + fts_tpfwver_store); + +/*upgrade from *.i +*example: echo 1 > ftsfwupdate +*/ +static DEVICE_ATTR(ftsfwupdate, S_IRUGO | S_IWUSR, fts_fwupdate_show, + fts_fwupdate_store); + +/*read and write register +*read example: echo 88 > ftstprwreg ---read register 0x88 +*write example:echo 8807 > ftstprwreg ---write 0x07 into register 0x88 +* +*note:the number of input must be 2 or 4.if it not enough,please fill in the 0. +*/ +static DEVICE_ATTR(ftstprwreg, S_IRUGO | S_IWUSR, fts_tprwreg_show, + fts_tprwreg_store); + + +/*upgrade from app.bin +*example:echo "*_app.bin" > ftsfwupgradeapp +*/ +static DEVICE_ATTR(ftsfwupgradeapp, S_IRUGO | S_IWUSR, fts_fwupgradeapp_show, + fts_fwupgradeapp_store); + + +/*add your attr in here*/ +static struct attribute *fts_attributes[] = { + &dev_attr_ftstpfwver.attr, + &dev_attr_ftsfwupdate.attr, + &dev_attr_ftstprwreg.attr, + &dev_attr_ftsfwupgradeapp.attr, + NULL +}; + +static struct attribute_group fts_attribute_group = { + .attrs = fts_attributes +}; + +/*create sysfs for debug*/ +int fts_create_sysfs(struct i2c_client *client) +{ + int err; + + err = sysfs_create_group(&client->dev.kobj, &fts_attribute_group); + if (0 != err) { + dev_err(&client->dev, + "%s() - ERROR: sysfs_create_group() failed.\n", + __func__); + sysfs_remove_group(&client->dev.kobj, &fts_attribute_group); + return -EIO; + } else { + mutex_init(&g_device_mutex); + pr_info("ft6x06:%s() - sysfs_create_group() succeeded.\n", + __func__); + } + return err; +} + +void fts_release_sysfs(struct i2c_client *client) +{ + sysfs_remove_group(&client->dev.kobj, &fts_attribute_group); + mutex_destroy(&g_device_mutex); + + +} +/*create apk debug channel*/ + +#define PROC_UPGRADE 0 +#define PROC_READ_REGISTER 1 +#define PROC_WRITE_REGISTER 2 +#define PROC_RAWDATA 3 +#define PROC_AUTOCLB 4 + +#define PROC_NAME "ft5x0x-debug" +static unsigned char proc_operate_mode = PROC_RAWDATA; +static struct proc_dir_entry *ft5x0x_proc_entry; +/*interface of write proc*/ +static ssize_t ft5x0x_debug_write(struct file *filp, const char __user *buff, size_t len, loff_t *ops) +{ + struct i2c_client *client = (struct i2c_client *)PDE_DATA(file_inode(filp)); + unsigned char writebuf[FTS_PACKET_LENGTH]; + int buflen = len; + int writelen = 0; + int ret = 0; + + if (copy_from_user(&writebuf, buff, buflen)) { + dev_err(&client->dev, "%s:copy from user error\n", __func__); + return -EFAULT; + } + proc_operate_mode = writebuf[0]; + + switch (proc_operate_mode) { + case PROC_UPGRADE: + { + char upgrade_file_path[128]; + memset(upgrade_file_path, 0, sizeof(upgrade_file_path)); + sprintf(upgrade_file_path, "%s", writebuf + 1); + upgrade_file_path[buflen-1] = '\0'; + printk("%s\n", upgrade_file_path); + disable_irq(client->irq); + + ret = fts_ctpm_fw_upgrade_with_app_file(client, upgrade_file_path); + + enable_irq(client->irq); + if (ret < 0) { + dev_err(&client->dev, "%s:upgrade failed.\n", __func__); + return ret; + } + } + break; + case PROC_READ_REGISTER: + writelen = 1; + printk("%s:register addr=0x%02x\n", __func__, writebuf[1]); + ret = fts_i2c_Write(client, writebuf + 1, writelen); + if (ret < 0) { + dev_err(&client->dev, "%s:write iic error\n", __func__); + return ret; + } + break; + case PROC_WRITE_REGISTER: + writelen = 2; + ret = fts_i2c_Write(client, writebuf + 1, writelen); + if (ret < 0) { + dev_err(&client->dev, "%s:write iic error\n", __func__); + return ret; + } + break; + case PROC_RAWDATA: + break; + case PROC_AUTOCLB: + fts_ctpm_auto_clb(client); + break; + + default: + break; + } + + + return len; +} + +/*interface of read proc*/ +static ssize_t ft5x0x_debug_read(struct file *filp, char __user *page, size_t len, loff_t *pos) +{ + struct i2c_client *client = (struct i2c_client *)PDE_DATA(file_inode(filp)); + int ret = 0; + + //u8 tx = 0, rx = 0; + //int i, j; + + unsigned char buf[PAGE_SIZE]; + int num_read_chars = 0; + int readlen = 0; + u8 regvalue = 0x00, regaddr = 0x00; + switch (proc_operate_mode) { + case PROC_UPGRADE: + /*after calling ft5x0x_debug_write to upgrade*/ + regaddr = 0xA6; + ret = fts_read_reg(client, regaddr, ®value); + if (ret < 0) + num_read_chars = sprintf(buf, "%s", "get fw version failed.\n"); + else + num_read_chars = sprintf(buf, "current fw version:0x%02x\n", regvalue); + break; + case PROC_READ_REGISTER: + readlen = 1; + ret = fts_i2c_Read(client, NULL, 0, buf, readlen); + if (ret < 0) { + dev_err(&client->dev, "%s:read iic error\n", __func__); + return ret; + } else + printk("%s:value=0x%02x\n", __func__, buf[0]); + num_read_chars = 1; + break; + case PROC_RAWDATA: + break; + default: + break; + } + + memcpy(page, buf, num_read_chars); + + return num_read_chars; +} +static struct file_operations proc_ops = { + .read = ft5x0x_debug_read, + .write = ft5x0x_debug_write, +}; +int ft5x0x_create_apk_debug_channel(struct i2c_client * client) +{ + ft5x0x_proc_entry = proc_create_data(PROC_NAME, 0777 | S_IFREG, NULL, &proc_ops, (void *)client); + if (NULL == ft5x0x_proc_entry) { + dev_err(&client->dev, "Couldn't create proc entry!\n"); + return -ENOMEM; + } + return 0; +} + +void ft5x0x_release_apk_debug_channel(void) +{ +#if 0 + if (ft5x0x_proc_entry) + remove_proc_entry(PROC_NAME, NULL); +#endif +} + diff --git a/drivers/input/touchscreen/ft5x0x_ts_v1.c b/drivers/input/touchscreen/ft5x0x_ts_v1.c new file mode 100644 index 00000000..135b79d2 --- /dev/null +++ b/drivers/input/touchscreen/ft5x0x_ts_v1.c @@ -0,0 +1,1691 @@ +/* + * Copyright (C) 2012 Spreadtrum Communications Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +/*********************************Bee-0928-TOP****************************************/ + +static unsigned char debug_level=PIXCIR_DEBUG; + +#define CONFIG_FT5X0X_MULTITOUCH + +#define PIXCIR_DBG(format, ...) \ + if(debug_level == 1) \ + printk(KERN_INFO "PIXCIR " format "\n", ## __VA_ARGS__) + +static struct i2c_client *this_client; +static struct ft5x0x_ts_struct *g_ft5x0x_ts; +static unsigned char status_reg = 0; +static struct point_node_t point_slot[MAX_FINGER_NUM*2]; +static struct point_node_t point_slot_back[MAX_FINGER_NUM*2]; +static int distance[5]={0}; +static int touch_flage[5]={0}; +static struct i2c_driver ft5x0x_i2c_ts_driver; +static struct class *i2c_dev_class; +static LIST_HEAD( i2c_dev_list); +static DEFINE_SPINLOCK( i2c_dev_list_lock); + + +static ssize_t ft5x0x_set_calibrate(struct device* cd, struct device_attribute *attr,const char* buf, size_t len); +static ssize_t ft5x0x_show_suspend(struct device* cd,struct device_attribute *attr, char* buf); +static ssize_t ft5x0x_store_suspend(struct device* cd, struct device_attribute *attr,const char* buf, size_t len); + + +static int ft5x0x_read_data(struct ft5x0x_ts_struct *data); +static void ft5x0x_report_value(struct ft5x0x_ts_struct *data); + +static void ft5x0x_reset(int reset_pin); +static void ft5x0x_ts_suspend(struct early_suspend *handler); +static void ft5x0x_ts_resume(struct early_suspend *handler); +static void ft5x0x_ts_pwron(struct regulator *reg_vdd); +static void ft5x0x_ts_pwroff(struct regulator *reg_vdd); +static int ft5x0x_tx_config(void); +//static DEVICE_ATTR(calibrate, S_IRUGO | S_IWUSR, NULL, pixcir_set_calibrate); +//static DEVICE_ATTR(suspend, S_IRUGO | S_IWUSR, pixcir_show_suspend, pixcir_store_suspend); +//static DEVICE_ATTR(debug, S_IRUGO | S_IWUSR, pixcir_show_debug, pixcir_store_debug); + +#define FTS_FW_DOWNLOAD +#ifdef FTS_FW_DOWNLOAD +#define FTS_PACKET_LENGTH 128 +#define FT5x0x_TX_NUM 28 +#define FT5x0x_RX_NUM 16 +static unsigned char CTPM_FW[]= +{ + #include "ft5x0x_fw_0x16.dat" +}; +#endif + + +/* pixcir_i2c_rxdata -- read data from i2c + * @rxdata: read buffer, first output variable + * @length: read length, second input variable + * @return: eror value, 0 means successful + */ +static int ft5x0x_i2c_rxdata(char *rxdata, int length) +{ + int ret; + struct i2c_msg msgs[] = { + { + .addr = g_ft5x0x_ts->client->addr, + .flags = 0, + .len = 1, + .buf = rxdata, + }, + { + .addr = g_ft5x0x_ts->client->addr, + .flags = I2C_M_RD, + .len = length, + .buf = rxdata, + }, + }; + + ret = i2c_transfer(g_ft5x0x_ts->client->adapter, msgs,2); + if (ret < 0) + pr_err("%s i2c read error: %d\n", __func__, ret); + + return ret; +} + +/* pixcir_i2c_txdata -- write data to i2c + * @rxdata: write buffer, first input variable + * @length: length length, second input variable + * @return: eror value, 0 means successful + */ +static int ft5x0x_i2c_txdata(char *txdata, int length) +{ + int ret; + struct i2c_msg msg[] = { + { + .addr = g_ft5x0x_ts->client->addr, + .flags = 0, + .len = length, + .buf = txdata, + }, + }; + + ret = i2c_transfer(g_ft5x0x_ts->client->adapter, msg, 1); + if (ret < 0) + pr_err("%s i2c write error: %d\n", __func__, ret); + + return ret; +} + + +/* pixcir_i2c_write_data -- write one byte to i2c + * @rxdata: the register address of the i2c device , first input variable + * @length: the data to write , second input variable + * @return: eror value, 0 means successful + */ +static int ft5x0x_i2c_write_data(unsigned char addr, unsigned char data) +{ + unsigned char buf[2]; + buf[0]=addr; + buf[1]=data; + return ft5x0x_i2c_txdata(buf, 2); +} + +static DEVICE_ATTR(calibrate, S_IRUGO | S_IWUSR, NULL, ft5x0x_set_calibrate); +static DEVICE_ATTR(suspend, S_IRUGO | S_IWUSR, ft5x0x_show_suspend, ft5x0x_store_suspend); + +static ssize_t ft5x0x_set_calibrate(struct device* cd, struct device_attribute *attr, + const char* buf, size_t len) +{ + unsigned long on_off = simple_strtoul(buf, NULL, 10); + + if(on_off==1) + { + PIXCIR_DBG("%s: PIXCIR calibrate\n",__func__); + ft5x0x_i2c_write_data(0x3a , 0x03); + msleep(5*1000); + } + + return len; +} + + +/* pixcir_show_suspend -- for suspend/resume debug + * show current status + * params: no care + * @return: len + */ +static ssize_t ft5x0x_show_suspend(struct device* cd, + struct device_attribute *attr, char* buf) +{ + ssize_t ret = 0; + + if(g_ft5x0x_ts->suspend_flag==1) + sprintf(buf, "Pixcir Suspend\n"); + else + sprintf(buf, "Pixcir Resume\n"); + + ret = strlen(buf) + 1; + + return ret; +} + + +/* pixcir_store_suspend -- for suspend/resume debug + * set suspend/resume + * params: no care + * @return: len + */ +static ssize_t ft5x0x_store_suspend(struct device* cd, struct device_attribute *attr, + const char* buf, size_t len) +{ + unsigned long on_off = simple_strtoul(buf, NULL, 10); + g_ft5x0x_ts->suspend_flag= on_off; + + if(on_off==1) + { + PIXCIR_DBG(KERN_INFO "Pixcir Entry Suspend\n"); + ft5x0x_ts_suspend(NULL); + } + else + { + PIXCIR_DBG(KERN_INFO "Pixcir Entry Resume\n"); + ft5x0x_ts_resume(NULL); + } + + return len; +} + + +/* pixcir_create_sysfs -- create sysfs attribute + * client: i2c client + * @return: len + */ +static int ft5x0x_create_sysfs(struct i2c_client *client) +{ + int err; + struct device *dev = &(client->dev); + + PIXCIR_DBG("%s", __func__); + + err = device_create_file(dev, &dev_attr_calibrate); + err = device_create_file(dev, &dev_attr_suspend); + + return err; +} + +/* pixcir_ts_sleep -- set pixicir into sleep mode + * @return: none + */ +static void ft5x0x_ts_sleep(void) +{ + PIXCIR_DBG(KERN_INFO "==%s==\n", __func__); + //pixcir_i2c_write_data(PIXCIR_PWR_MODE_REG , PIXCIR_PWR_SLEEP_MODE); +} + +/* pixcir_ts_suspend -- set pixicr into suspend + * @return: none + */ +static void ft5x0x_ts_suspend(struct early_suspend *handler) +{ + disable_irq_nosync(g_ft5x0x_ts->ft5x0x_irq); + ft5x0x_ts_pwroff(g_ft5x0x_ts->reg_vdd); +} + +/* pixcir_ts_resume -- set pixicr to resume + * @return: none + */ +static void ft5x0x_ts_resume(struct early_suspend *handler) +{ + ft5x0x_ts_pwron(g_ft5x0x_ts->reg_vdd); + gpio_direction_input(g_ft5x0x_ts->platform_data->irq_gpio_number); + ft5x0x_reset(g_ft5x0x_ts->platform_data->reset_gpio_number); + msleep(100); + //pixcir_tx_config(); + enable_irq(g_ft5x0x_ts->ft5x0x_irq); +} + + +#ifdef TOUCH_VIRTUAL_KEYS +#define SC8810_KEY_HOME 102 +#define SC8810_KEY_MENU 30 +#define SC8810_KEY_BACK 17 +#define SC8810_KEY_SEARCH 217 + +static ssize_t virtual_keys_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) +{ + return sprintf(buf, + __stringify(EV_KEY) ":" __stringify(KEY_HOME) ":120:500:50:100" + ":" __stringify(EV_KEY) ":" __stringify(KEY_MENU) ":40:500:50:100" + ":" __stringify(EV_KEY) ":" __stringify(KEY_BACK) ":200:500:50:100" + ":" __stringify(EV_KEY) ":" __stringify(KEY_SEARCH) ":280:500:50:100" + "\n"); +} + +static struct kobj_attribute virtual_keys_attr = { + .attr = { + .name = "virtualkeys.ft5x0x_ts", + .mode = S_IRUGO, + }, + .show = &virtual_keys_show, +}; + +static struct attribute *properties_attrs[] = { + &virtual_keys_attr.attr, + NULL +}; + +static struct attribute_group properties_attr_group = { + .attrs = properties_attrs, +}; + + +/* pixcir_ts_virtual_keys_init -- register virutal keys to system + * @return: none + */ +static void ft5x0x_ts_virtual_keys_init(void) +{ + int ret; + struct kobject *properties_kobj; + + PIXCIR_DBG("%s\n",__func__); + + properties_kobj = kobject_create_and_add("board_properties", NULL); + if (properties_kobj) + ret = sysfs_create_group(properties_kobj, + &properties_attr_group); + if (!properties_kobj || ret) + pr_err("failed to create board_properties\n"); +} + + +#endif + + +/* pxicir_ts_pininit -- gpio request + * irq_pin: irq gpio number + * rst_pin: reset gpio number + * @return: none + */ +static void pxicir_ts_pininit(int irq_pin, int rst_pin) +{ + gpio_request(irq_pin, TS_IRQ_PIN); + gpio_request(rst_pin, TS_RESET_PIN); + gpio_direction_input(irq_pin); +} + +/* pixcir_ts_pwron -- power on pixcir chip + * reg_vdd: regulator + * @return: none + */ +struct regulator *tsp_regulator_33 = NULL; +static void ft5x0x_ts_pwroff(struct regulator *reg_vdd) +{ + PIXCIR_DBG(KERN_INFO "%s\n",__func__); + regulator_disable(tsp_regulator_33); + msleep(20); +} +static void ft5x0x_ts_pwron(struct regulator *reg_vdd) +{ + int err = 0; + PIXCIR_DBG(KERN_INFO "%s\n",__func__); + tsp_regulator_33 = regulator_get(NULL, REGU_NAME_TP); + if (IS_ERR(tsp_regulator_33)) { + pr_err("zinitix:could not get 3.3v regulator\n"); + return; + } + err =regulator_set_voltage(tsp_regulator_33,3000000,3000000); + if (err) + pr_err("zinitix:could not set to 3300mv.\n"); + //regulator_set_voltage(reg_vdd, 3000000, 3000000); + regulator_enable(tsp_regulator_33); + //__raw_writel(((__raw_readl(0x82000628) &0xfffff0ff)|(0x00000900)), 0x82000628); + + msleep(20); +} + +/* attb_read_val -- read the interrupt pin level + * gpio_pin: pin number + * @return: 1 or 0 + */ +static int attb_read_val(int gpio_pin) +{ + return gpio_get_value(gpio_pin); +} + +/* pixcir_reset -- set pixcir reset + * reset_pin: pin number + * @return: none + */ +static void ft5x0x_reset(int reset_pin) +{ + PIXCIR_DBG(KERN_INFO "%s\n",__func__); + #if 0 + gpio_direction_output(reset_pin, 0); + msleep(3); + gpio_set_value(reset_pin, 1); + msleep(10); + gpio_set_value(reset_pin,0); + msleep(10); + #endif +} + +/* pixcir_tx_config -- initialize the pixcir register + * @return: error code + */ +static int ft5x0x_tx_config(void) +{ + int error; + unsigned char buf; +#if 0 + error=pixcir_i2c_write_data(PIXCIR_INT_MODE_REG, PIXCIR_INT_MODE); + buf = PIXCIR_INT_MODE_REG; + error=pixcir_i2c_rxdata(&buf, 1); + PIXCIR_DBG("%s: buf=0x%x",__func__, buf); + return error; +#endif + return 0; +} + + +static void return_i2c_dev(struct i2c_dev *i2c_dev) +{ + spin_lock(&i2c_dev_list_lock); + list_del(&i2c_dev->list); + spin_unlock(&i2c_dev_list_lock); + kfree(i2c_dev); +} + +static struct i2c_dev *i2c_dev_get_by_minor(unsigned index) +{ + struct i2c_dev *i2c_dev; + i2c_dev = NULL; + + spin_lock(&i2c_dev_list_lock); + list_for_each_entry(i2c_dev, &i2c_dev_list, list) + { + if (i2c_dev->adap->nr == index) + goto found; + } + i2c_dev = NULL; + found: spin_unlock(&i2c_dev_list_lock); + return i2c_dev; +} + +static struct i2c_dev *get_free_i2c_dev(struct i2c_adapter *adap) +{ + struct i2c_dev *i2c_dev; + + if (adap->nr >= I2C_MINORS) { + printk(KERN_ERR "%s: i2c-dev: Out of device minors\n",__func__); + return ERR_PTR(-ENODEV); + } + + i2c_dev = kzalloc(sizeof(*i2c_dev), GFP_KERNEL); + if (!i2c_dev) + return ERR_PTR(-ENOMEM); + + i2c_dev->adap = adap; + + spin_lock(&i2c_dev_list_lock); + list_add_tail(&i2c_dev->list, &i2c_dev_list); + spin_unlock(&i2c_dev_list_lock); + return i2c_dev; +} +/*********************************Bee-0928-bottom**************************************/ + + +/* pixcir_ts_poscheck -- check it finger on TP and it's position, + * report event to input system + * pixcir_ts_struct: pixicir data struct + * @return: none + */ +static void ft5x0x_ts_poscheck(struct ft5x0x_ts_struct *data) +{ + int ret = 0; + struct ft5x0x_ts_struct *tsdata = data; + PIXCIR_DBG("%s\n", __func__); + ret = ft5x0x_read_data(tsdata); + if (ret == 0) { + ft5x0x_report_value(tsdata); + } +} +static void ft5x0x_ts_release(struct ft5x0x_ts_struct *data) +{ +#ifdef CONFIG_FT5X0X_MULTITOUCH + input_report_key(data->input, BTN_TOUCH, 0); + input_report_abs(data->input, ABS_MT_TOUCH_MAJOR, 0); +#else + input_report_abs(data->input, ABS_PRESSURE, 0); + input_report_key(data->input, BTN_TOUCH, 0); +#endif + input_sync(data->input); +} +static int ft5x0x_read_data(struct ft5x0x_ts_struct *data) +{ + struct ts_event *event = &data->event; + u8 buf[32] = {0}; + int ret = -1; + int touch_point = 0; + + /*printk("==read data=\n"); */ +#ifdef CONFIG_FT5X0X_MULTITOUCH + ret = ft5x0x_i2c_rxdata(buf, 31); +#else + ret = ft5x0x_i2c_rxdata(buf, 7); +#endif + if (ret < 0) { + printk("%s read_data i2c_rxdata failed: %d\n", __func__, ret); + return ret; + } +#if 0 + event->touch_point = buf[2] & 0x03;/* 0000 0011*/ +#endif + touch_point = buf[2] & 0x07;// 000 0111 + + if (touch_point == 0) { + ft5x0x_ts_release(data); + return 1; + } + memset(event, 0, sizeof(struct ts_event)); + event->touch_point = touch_point; +#ifdef CONFIG_FT5X0X_MULTITOUCH + switch (event->touch_point) { +#ifdef CONFIG_TOUCHSCREEN_FT5206_WVGA +//jixwei_add for Q100 ft5x06 convert from WVGA to HVGA + case 5: + event->x5 = (s16)(buf[0x1b] & 0x0F)<<8 | (s16)buf[0x1c]; + event->y5 = (s16)(buf[0x1d] & 0x0F)<<8 | (s16)buf[0x1e]; + event->x5 = event->x5*2/3; + event->y5 = event->y5*3/5; + case 4: + event->x4 = (s16)(buf[0x15] & 0x0F)<<8 | (s16)buf[0x16]; + event->y4 = (s16)(buf[0x17] & 0x0F)<<8 | (s16)buf[0x18]; + event->x4 = event->x4*2/3; + event->y4 = event->y4*3/5; + case 3: + event->x3 = (s16)(buf[0x0f] & 0x0F)<<8 | (s16)buf[0x10]; + event->y3 = (s16)(buf[0x11] & 0x0F)<<8 | (s16)buf[0x12]; + event->x3 = event->x3*2/3; + event->y3 = event->y3*3/5; + case 2: + event->x2 = (s16)(buf[9] & 0x0F)<<8 | (s16)buf[10]; + event->y2 = (s16)(buf[11] & 0x0F)<<8 | (s16)buf[12]; + event->x2 = event->x2*2/3; + event->y2 = event->y2*3/5; + case 1: + event->x1 = (s16)(buf[3] & 0x0F)<<8 | (s16)buf[4]; + event->y1 = (s16)(buf[5] & 0x0F)<<8 | (s16)buf[6]; + event->x1 = event->x1*2/3; + event->y1 = event->y1*3/5; +#else + case 5: + event->x5 = (s16)(buf[0x1b] & 0x0F)<<8 | (s16)buf[0x1c]; + event->y5 = (s16)(buf[0x1d] & 0x0F)<<8 | (s16)buf[0x1e]; + case 4: + event->x4 = (s16)(buf[0x15] & 0x0F)<<8 | (s16)buf[0x16]; + event->y4 = (s16)(buf[0x17] & 0x0F)<<8 | (s16)buf[0x18]; + case 3: + event->x3 = (s16)(buf[0x0f] & 0x0F)<<8 | (s16)buf[0x10]; + event->y3 = (s16)(buf[0x11] & 0x0F)<<8 | (s16)buf[0x12]; + case 2: + event->x2 = (s16)(buf[9] & 0x0F)<<8 | (s16)buf[10]; + event->y2 = (s16)(buf[11] & 0x0F)<<8 | (s16)buf[12]; + case 1: + event->x1 = (s16)(buf[3] & 0x0F)<<8 | (s16)buf[4]; + event->y1 = (s16)(buf[5] & 0x0F)<<8 | (s16)buf[6]; +#endif + break; + default: + return -1; + } +#else + if (event->touch_point == 1) { + event->x1 = (s16)(buf[3] & 0x0F)<<8 | (s16)buf[4]; + event->y1 = (s16)(buf[5] & 0x0F)<<8 | (s16)buf[6]; + } +#endif + event->pressure = 200; + + PIXCIR_DBG("%d (%d, %d), (%d, %d)\n", event->touch_point, event->x1, event->y1, event->x2, event->y2); + + return 0; +} +static void ft5x0x_report_value(struct ft5x0x_ts_struct *data) +{ + struct ts_event *event = &data->event; + /*lilonghui delet the log for debug2011-12-26*/ + PIXCIR_DBG("==ft5x0x_report_value =\n"); +#ifdef CONFIG_FT5X0X_MULTITOUCH + input_report_key(data->input, BTN_TOUCH, 1); + switch(event->touch_point) { + case 5: + input_report_abs(data->input, ABS_MT_TOUCH_MAJOR, event->pressure); + input_report_abs(data->input, ABS_MT_POSITION_X, event->x5); + input_report_abs(data->input, ABS_MT_POSITION_Y, event->y5); + input_report_abs(data->input, ABS_MT_WIDTH_MAJOR, 1); + input_mt_sync(data->input); + PIXCIR_DBG("===x5 = %d,y5 = %d ====\n",event->x5,event->y5); + case 4: + input_report_abs(data->input, ABS_MT_TOUCH_MAJOR, event->pressure); + input_report_abs(data->input, ABS_MT_POSITION_X, event->x4); + input_report_abs(data->input, ABS_MT_POSITION_Y, event->y4); + input_report_abs(data->input, ABS_MT_WIDTH_MAJOR, 1); + input_mt_sync(data->input); + PIXCIR_DBG("===x4 = %d,y4 = %d ====\n",event->x4,event->y4); + case 3: + input_report_abs(data->input, ABS_MT_TOUCH_MAJOR, event->pressure); + input_report_abs(data->input, ABS_MT_POSITION_X, event->x3); + input_report_abs(data->input, ABS_MT_POSITION_Y, event->y3); + input_report_abs(data->input, ABS_MT_WIDTH_MAJOR, 1); + input_mt_sync(data->input); + PIXCIR_DBG("===x3 = %d,y3 = %d ====\n",event->x3,event->y3); + case 2: + input_report_abs(data->input, ABS_MT_TOUCH_MAJOR, event->pressure); + input_report_abs(data->input, ABS_MT_POSITION_X, event->x2); + input_report_abs(data->input, ABS_MT_POSITION_Y, event->y2); + input_report_abs(data->input, ABS_MT_WIDTH_MAJOR, 1); + input_mt_sync(data->input); + PIXCIR_DBG("===x2 = %d,y2 = %d ====\n",event->x2,event->y2); + case 1: + input_report_abs(data->input, ABS_MT_TOUCH_MAJOR, event->pressure); + input_report_abs(data->input, ABS_MT_POSITION_X, event->x1); + input_report_abs(data->input, ABS_MT_POSITION_Y, event->y1); + input_report_abs(data->input, ABS_MT_WIDTH_MAJOR, 1); + input_mt_sync(data->input); + PIXCIR_DBG("===x1 = %d,y1 = %d ====\n",event->x1,event->y1); + default: + PIXCIR_DBG("==touch_point default =\n"); + break; + } + + input_report_abs(data->input, ABS_PRESSURE, event->pressure); +#if 0 + input_report_key(data->input, BTN_TOUCH, 1); +#endif +#else /* CONFIG_FT5X0X_MULTITOUCH*/ + if (event->touch_point == 1) { + input_report_abs(data->input, ABS_X, event->x1); + input_report_abs(data->input, ABS_Y, event->y1); + input_report_abs(data->input, ABS_PRESSURE, event->pressure); + } + input_report_key(data->input, BTN_TOUCH, 1); +#endif /* CONFIG_FT5X0X_MULTITOUCH*/ + input_sync(data->input); + + dev_dbg(&this_client->dev, "%s: 1:%d %d 2:%d %d \n", __func__, + event->x1, event->y1, event->x2, event->y2); +} +/* pixcir_ts_isr -- disable irq, and schedule + * irq: irq number + * dev_id: param when request_irq + * @return: IRQ status + */ +static irqreturn_t ft5x0x_ts_isr(int irq, void *dev_id) +{ + int ret = 0; + struct ft5x0x_ts_struct *tsdata = (struct ft5x0x_ts_struct *)dev_id; + PIXCIR_DBG("%s\n", __func__); + /*disable irq*/ + disable_irq_nosync(irq); +#if 1 + if (!work_pending(&tsdata->pen_event_work)) { + queue_work(tsdata->ts_workqueue, &tsdata->pen_event_work); + } +#else + { + ret = ft5x0x_read_data(tsdata); + if (ret == 0) { + ft5x0x_report_value(tsdata); + } +#if 0 + if (attb_read_val()) { + PIXCIR_DBG("%s: release\n",__func__); + input_report_key(tsdata->input, BTN_TOUCH, 0); + input_report_abs(tsdata->input, ABS_MT_TOUCH_MAJOR, 0); + input_sync(tsdata->input); + break; + } +#endif + } + enable_irq(irq); +#endif + return IRQ_HANDLED; + +} + + +/* pixcir_ts_irq_work -- read tp register and report event + + * @return: none + */ + #if 1 +static void ft5x0x_ts_irq_work(struct work_struct *work) +{ + struct ft5x0x_ts_struct *tsdata = g_ft5x0x_ts; + ft5x0x_ts_poscheck(tsdata); + enable_irq(tsdata->client->irq); +} +#endif +#ifdef CONFIG_PM_SLEEP +static int ft5x0x_i2c_ts_suspend(struct device *dev) +{ +#if 1 + struct i2c_client *client = to_i2c_client(dev); + unsigned char wrbuf[2] = { 0 }; + int ret; + + //wrbuf[0] = 0x33; + //wrbuf[1] = 0x03; //enter into freeze mode; + /************************************************************** + wrbuf[1]: 0x00: Active mode + 0x01: Sleep mode + 0xA4: Sleep mode automatically switch + 0x03: Freeze mode + More details see application note 710 power manangement section + ****************************************************************/ +/* + ret = i2c_master_send(client, wrbuf, 2); + if(ret!=2) { + dev_err(&client->dev, + "%s: i2c_master_send failed(), ret=%d\n", + __func__, ret); + } +*/ + if (device_may_wakeup(&client->dev)) + enable_irq_wake(client->irq); +#endif + return 0; +} + +static int ft5x0x_i2c_ts_resume(struct device *dev) +{ +#if 1 + struct i2c_client *client = to_i2c_client(dev); + + PIXCIR_DBG(KERN_INFO "%s\n",__func__); + ft5x0x_reset(g_ft5x0x_ts->platform_data->reset_gpio_number); + if (device_may_wakeup(&client->dev)) + disable_irq_wake(client->irq); +#endif + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(ft5x0x_dev_pm_ops, + ft5x0x_i2c_ts_suspend, ft5x0x_i2c_ts_resume); + + +#ifdef FTS_FW_DOWNLOAD +void delay_qt_ms(unsigned long w_ms) +{ + unsigned long i; + unsigned long j; + + for (i = 0; i < w_ms; i++) + { + for (j = 0; j < 1000; j++) + { + udelay(1); + } + } +} + +int ft5x0x_i2c_Write(char *writebuf, int writelen) +{ + int ret; + + struct i2c_msg msg[] = { + { + .addr = this_client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + }; + + ret = i2c_transfer(this_client->adapter, msg, 1); + if (ret < 0) + printk("[FTS] %s i2c write error: %d\n", __func__, ret); + + return ret; +}EXPORT_SYMBOL(ft5x0x_i2c_Write); + +int ft5x0x_write_reg(unsigned char regaddr, unsigned char regvalue) +{ + unsigned char buf[2]; + buf[0] = regaddr; + buf[1] = regvalue; + return ft5x0x_i2c_Write(buf, sizeof(buf)); +} + +int ft5x0x_i2c_Read(char * writebuf, int writelen, char *readbuf, int readlen) +{ + int ret; + + if(writelen > 0) + { + struct i2c_msg msgs[] = { + { + .addr = this_client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + { + .addr = this_client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(this_client->adapter, msgs, 2); + if (ret < 0) + printk("[FTS] msg %s i2c read error: %d\n", __func__, ret); + } + else + { + struct i2c_msg msgs[] = { + { + .addr = this_client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(this_client->adapter, msgs, 1); + if (ret < 0) + printk("[FTS] msg %s i2c read error: %d\n", __func__, ret); + } + return ret; +}EXPORT_SYMBOL(ft5x0x_i2c_Read); + +int ft5x0x_read_reg(unsigned char regaddr, unsigned char * regvalue) +{ + return ft5x0x_i2c_Read(®addr, 1, regvalue, 1); +} + +int fts_ctpm_auto_clb(void) +{ + unsigned char uc_temp; + unsigned char i ; + + printk("[FTS] start auto CLB.\n"); + msleep(200); + ft5x0x_write_reg(0, 0x40); + delay_qt_ms(100); //make sure already enter factory mode + ft5x0x_write_reg(2, 0x4); //write command to start calibration + delay_qt_ms(300); + for(i=0;i<100;i++) + { + ft5x0x_read_reg(0,&uc_temp); + if ( ((uc_temp&0x70)>>4) == 0x0) //return to normal mode, calibration finish + { + break; + } + delay_qt_ms(200); + printk("[FTS] waiting calibration %d\n",i); + } + + printk("[FTS] calibration OK.\n"); + + msleep(300); + ft5x0x_write_reg(0, 0x40); //goto factory mode + delay_qt_ms(100); //make sure already enter factory mode + ft5x0x_write_reg(2, 0x5); //store CLB result + delay_qt_ms(300); + ft5x0x_write_reg(0, 0x0); //return to normal mode + msleep(300); + printk("[FTS] store CLB result OK.\n"); + return 0; +} +unsigned char fts_ctpm_get_i_file_ver(void) +{ + unsigned int ui_sz; + ui_sz = sizeof(CTPM_FW); + if (ui_sz > 2) + { + return CTPM_FW[ui_sz - 2]; + } + else + { + //TBD, error handling? + return 0xff; //default value + } +} +E_UPGRADE_ERR_TYPE fts_ctpm_fw_upgrade(FTS_BYTE* pbt_buf, FTS_DWRD dw_lenth) +{ + + FTS_BYTE reg_val[2] = {0}; + FTS_DWRD i = 0; + + FTS_DWRD packet_number; + FTS_DWRD j; + FTS_DWRD temp; + FTS_DWRD lenght; + FTS_BYTE packet_buf[FTS_PACKET_LENGTH + 6]; + FTS_BYTE auc_i2c_write_buf[10]; + FTS_BYTE bt_ecc; + int i_ret; + + /*********Step 1:Reset CTPM *****/ + /*write 0xaa to register 0xfc*/ + ft5x0x_write_reg(0xfc,0xaa); + delay_qt_ms(50); + /*write 0x55 to register 0xfc*/ + ft5x0x_write_reg(0xfc,0x55); + printk("[FTS] Step 1: Reset CTPM test\n"); + + delay_qt_ms(30); + + + /*********Step 2:Enter upgrade mode *****/ + auc_i2c_write_buf[0] = 0x55; + auc_i2c_write_buf[1] = 0xaa; + do + { + i ++; + i_ret = ft5x0x_i2c_Write(auc_i2c_write_buf, 2); + delay_qt_ms(5); + }while(i_ret <= 0 && i < 5 ); + + /*********Step 3:check READ-ID***********************/ + auc_i2c_write_buf[0] = 0x90; + auc_i2c_write_buf[1] = auc_i2c_write_buf[2] = auc_i2c_write_buf[3] = 0x00; + //ft5x0x_i2c_Write(auc_i2c_write_buf, 4); + + ft5x0x_i2c_Read(auc_i2c_write_buf, 4, reg_val, 2); + if (reg_val[0] == 0x79 && reg_val[1] == 0x3) + { + printk("[FTS] Step 3: CTPM ID,ID1 = 0x%x,ID2 = 0x%x\n",reg_val[0],reg_val[1]); + } + else + { + return ERR_READID; + } + auc_i2c_write_buf[0] = 0xcd; + ft5x0x_i2c_Read(auc_i2c_write_buf, 1, reg_val, 1); + printk("[FTS] bootloader version = 0x%x\n", reg_val[0]); + + /*********Step 4:erase app and panel paramenter area ********************/ + auc_i2c_write_buf[0] = 0x61; + ft5x0x_i2c_Write(auc_i2c_write_buf, 1); //erase app area + delay_qt_ms(1500); + + auc_i2c_write_buf[0] = 0x63; + ft5x0x_i2c_Write(auc_i2c_write_buf, 1); //erase panel parameter area + delay_qt_ms(100); + printk("[FTS] Step 4: erase. \n"); + + /*********Step 5:write firmware(FW) to ctpm flash*********/ + bt_ecc = 0; + printk("[FTS] Step 5: start upgrade. \n"); + dw_lenth = dw_lenth - 8; + packet_number = (dw_lenth) / FTS_PACKET_LENGTH; + packet_buf[0] = 0xbf; + packet_buf[1] = 0x00; + for (j=0;j>8); + packet_buf[3] = (FTS_BYTE)temp; + lenght = FTS_PACKET_LENGTH; + packet_buf[4] = (FTS_BYTE)(lenght>>8); + packet_buf[5] = (FTS_BYTE)lenght; + + for (i=0;i 0) + { + temp = packet_number * FTS_PACKET_LENGTH; + packet_buf[2] = (FTS_BYTE)(temp>>8); + packet_buf[3] = (FTS_BYTE)temp; + + temp = (dw_lenth) % FTS_PACKET_LENGTH; + packet_buf[4] = (FTS_BYTE)(temp>>8); + packet_buf[5] = (FTS_BYTE)temp; + + for (i=0;i>8); + packet_buf[3] = (FTS_BYTE)temp; + temp =1; + packet_buf[4] = (FTS_BYTE)(temp>>8); + packet_buf[5] = (FTS_BYTE)temp; + packet_buf[6] = pbt_buf[ dw_lenth + i]; + bt_ecc ^= packet_buf[6]; + + ft5x0x_i2c_Write(packet_buf, 7); + delay_qt_ms(20); + } + + /*********Step 6: read out checksum***********************/ + /*send the opration head*/ + auc_i2c_write_buf[0] = 0xcc; + ft5x0x_i2c_Read(auc_i2c_write_buf, 1, reg_val, 1); + + printk("[FTS] Step 6: ecc read 0x%x, new firmware 0x%x. \n", reg_val[0], bt_ecc); + if(reg_val[0] != bt_ecc) + { + return ERR_ECC; + } + + /*********Step 7: reset the new FW***********************/ + auc_i2c_write_buf[0] = 0x07; + ft5x0x_i2c_Write(auc_i2c_write_buf, 1); + msleep(300); //make sure CTP startup normally + + return ERR_OK; +} + +int fts_ctpm_fw_upgrade_with_i_file(void) +{ + FTS_BYTE* pbt_buf = NULL; + int i_ret; + + //=========FW upgrade========================*/ + pbt_buf = CTPM_FW; + /*call the upgrade function*/ + i_ret = fts_ctpm_fw_upgrade(pbt_buf,sizeof(CTPM_FW)); + if (i_ret != 0) + { + printk("[FTS] upgrade failed i_ret = %d.\n", i_ret); + //error handling ... + //TBD + } + else + { + printk("[FTS] upgrade successfully.\n"); + fts_ctpm_auto_clb(); //start auto CLB + } + + return i_ret; +} +int fts_ctpm_auto_upg(void) +{ + unsigned char uc_host_fm_ver=FT5x0x_REG_FW_VER; + unsigned char uc_tp_fm_ver; + int i_ret; + + ft5x0x_read_reg(FT5x0x_REG_FW_VER, &uc_tp_fm_ver); + uc_host_fm_ver = fts_ctpm_get_i_file_ver(); + if ( uc_tp_fm_ver == FT5x0x_REG_FW_VER || //the firmware in touch panel maybe corrupted + uc_tp_fm_ver < uc_host_fm_ver //the firmware in host flash is new, need upgrade + ) + { + msleep(100); + printk("[FTS] uc_tp_fm_ver = 0x%x, uc_host_fm_ver = 0x%x\n", + uc_tp_fm_ver, uc_host_fm_ver); + i_ret = fts_ctpm_fw_upgrade_with_i_file(); + if (i_ret == 0) + { + msleep(300); + uc_host_fm_ver = fts_ctpm_get_i_file_ver(); + printk("[FTS] upgrade to new version 0x%x\n", uc_host_fm_ver); + } + else + { + printk("[FTS] upgrade failed ret=%d.\n", i_ret); + } + } + + return 0; +} +#define FTS_SETTING_BUF_LEN 128 + +unsigned char FTS_CTPM_GetVendorID_Info(void) +{ + unsigned char buf[FTS_SETTING_BUF_LEN]; + unsigned char reg_val[2] = {0}; + unsigned char auc_i2c_write_buf[10]; + unsigned char packet_buf[FTS_SETTING_BUF_LEN + 6]; + unsigned int i = 0; + int i_ret; + + /*********Step 1:Reset CTPM *****/ + /*write 0xaa to register 0xfc*/ + ft5x0x_write_reg(0xfc,0xaa); + delay_qt_ms(50); + /*write 0x55 to register 0xfc*/ + ft5x0x_write_reg(0xfc,0x55); + printk("[FTS] Step 1: GetVendorID Reset CTPM test\n"); + + delay_qt_ms(30); + + /*********Step 2:Enter upgrade mode *****/ + auc_i2c_write_buf[0] = 0x55; + auc_i2c_write_buf[1] = 0xaa; + do + { + i ++; + //i_ret = ft5x0x_i2c_txdata(auc_i2c_write_buf, 2); + i_ret = ft5x0x_i2c_Write(auc_i2c_write_buf, 2); + delay_qt_ms(5); + }while(i_ret <= 0 && i < 5 ); + + /*********Step 3:check READ-ID***********************/ + auc_i2c_write_buf[0] = 0x90; + auc_i2c_write_buf[1] = auc_i2c_write_buf[2] = auc_i2c_write_buf[3] = 0x00; + ft5x0x_i2c_Read(auc_i2c_write_buf, 4, reg_val, 2); + if (reg_val[0] == 0x79 && reg_val[1] == 0x3) + { + printk("[FTS] Step 3: CTPM ID,ID1 = 0x%x,ID2 = 0x%x\n",reg_val[0],reg_val[1]); + } + else + { + return ERR_READID; + } + auc_i2c_write_buf[0] = 0xcd; + ft5x0x_i2c_Read(auc_i2c_write_buf, 1, reg_val, 1); + printk("bootloader version = 0x%x\n", reg_val[0]); + + /* --------- read current project setting ---------- */ + //set read start address + buf[0] = 0x3; + buf[1] = 0x0; + buf[2] = 0x78; + buf[3] = 0x4; + //ft5x0x_i2c_Write(buf, 4); + //byte_read(buf, FTS_SETTING_BUF_LEN); + ft5x0x_i2c_Read(buf, 4, buf, 1); + //I2C slave address (8 bit address) + //IO Voltage 0---3.3v; 1----1.8v + //TP panel factory ID + printk("[FTS] old setting: uc_panel_factory_id = 0x%x\n", buf[0]); + + /********* reset the new FW***********************/ + auc_i2c_write_buf[0] = 0x07; + ft5x0x_i2c_Write(auc_i2c_write_buf, 1); + + msleep(300); + + return buf[0]; //TP panel factory ID +} +#endif + + +/* pixcir_i2c_ts_probe -- pixcir probe function + * initalize PIXCIR hardware configuration + * register input system, and request irq + * @return: error code; 0: successful + */ +static int __devinit ft5x0x_i2c_ts_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct ft5x0x_ts_platform_data *pdata = client->dev.platform_data; + struct ft5x0x_ts_struct *tsdata; + struct input_dev *input; + struct device *dev; + struct i2c_dev *i2c_dev; + int i, error; + + PIXCIR_DBG(KERN_INFO "%s: probe\n",__func__); + + for(i=0; idev, "Failed to allocate driver data!\n"); + error = -ENOMEM; + goto err_free_mem; + } + g_ft5x0x_ts = tsdata; + + PIXCIR_DBG("%s: irq_pin=%d; reset_pin=%d", \ + __func__, pdata->irq_gpio_number,pdata->reset_gpio_number); + + tsdata->platform_data = pdata; + + /*pin init*/ + pxicir_ts_pininit(pdata->irq_gpio_number,pdata->reset_gpio_number); +#if 0 + /*get regulator*/ + tsdata->reg_vdd = regulator_get(&client->dev, REGU_NAME_TP); +#endif + /*enable VDD*/ + ft5x0x_ts_pwron(tsdata->reg_vdd); + + /*reset TP chip*/ + ft5x0x_reset(pdata->reset_gpio_number); + //msleep(100); + msleep(300); + + //get irq number + client->irq = gpio_to_irq(pdata->irq_gpio_number); + tsdata->ft5x0x_irq = client->irq; + PIXCIR_DBG("%s: irq=%d",__func__, client->irq); + + //register virtual keys +#ifdef TOUCH_VIRTUAL_KEYS + ft5x0x_ts_virtual_keys_init(); +#endif + + tsdata->client = client; + tsdata->input = input; + + input->name = client->name; + input->id.bustype = BUS_I2C; + input->dev.parent = &client->dev; + + __set_bit(EV_KEY, input->evbit); + __set_bit(EV_ABS, input->evbit); + __set_bit(EV_SYN, input->evbit); + __set_bit(BTN_TOUCH, input->keybit); + + __set_bit(ABS_MT_TOUCH_MAJOR, input->absbit); + __set_bit(ABS_MT_POSITION_X, input->absbit); + __set_bit(ABS_MT_POSITION_Y, input->absbit); + __set_bit(ABS_MT_WIDTH_MAJOR, input->absbit); + + __set_bit(KEY_MENU, input->keybit); + __set_bit(KEY_BACK, input->keybit); + __set_bit(KEY_HOME, input->keybit); + __set_bit(KEY_SEARCH, input->keybit); + + input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(input, ABS_MT_POSITION_X, 0, X_MAX, 0, 0); + input_set_abs_params(input, ABS_MT_POSITION_Y, 0, Y_MAX, 0, 0); + input_set_abs_params(input, ABS_MT_WIDTH_MAJOR, 0, 200, 0, 0); + + + input_set_drvdata(input, tsdata); +#if 1 + INIT_WORK(&tsdata->pen_event_work, ft5x0x_ts_irq_work); + tsdata->ts_workqueue = create_singlethread_workqueue(dev_name(&client->dev)); +#endif + error = request_irq(client->irq, ft5x0x_ts_isr, IRQF_TRIGGER_FALLING, client->name, tsdata); + if (error) { + printk(KERN_ERR "%s:Unable to request touchscreen IRQ.\n",__func__); + goto err_free_mem; + } + + disable_irq_nosync(client->irq); + + error = input_register_device(input); + if (error) + goto err_free_irq; + i2c_set_clientdata(client, tsdata); + device_init_wakeup(&client->dev, 1); + +#ifdef FTS_FW_DOWNLOAD +{ + unsigned char uc_reg_addr; + unsigned char uc_reg_value; + unsigned char vendor_ID = ERR_READID; + vendor_ID = FTS_CTPM_GetVendorID_Info(); + printk("[FTS] FTS_CTPM_GetVendorID_Info = 0x%x\n", vendor_ID); + + if(vendor_ID != ERR_READID) + { + if(vendor_ID == 0x57) + fts_ctpm_auto_upg(); + } + + uc_reg_addr = FT5x0x_REG_FW_VER; + ft5x0x_i2c_Read(&uc_reg_addr, 1, &uc_reg_value, 1); + printk("[FTS] Firmware version = 0x%x\n", uc_reg_value); + } +#endif + + + /*********************************Bee-0928-TOP****************************************/ + i2c_dev = get_free_i2c_dev(client->adapter); + if (IS_ERR(i2c_dev)) { + error = PTR_ERR(i2c_dev); + return error; + } + dev = device_create(i2c_dev_class, &client->adapter->dev, MKDEV(I2C_MAJOR, + client->adapter->nr), NULL, "ft5x0x_i2c_ts%d", 0); + if (IS_ERR(dev)) { + error = PTR_ERR(dev); + return error; + } + /*********************************Bee-0928-BOTTOM****************************************/ + tsdata->ft5x0x_early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + tsdata->ft5x0x_early_suspend.suspend = ft5x0x_ts_suspend; + tsdata->ft5x0x_early_suspend.resume = ft5x0x_ts_resume; + register_early_suspend(&tsdata->ft5x0x_early_suspend); + + if((error=ft5x0x_tx_config())<0) { + printk(KERN_ERR "%s: I2C error\n",__func__); + goto err_i2c; + } + ft5x0x_create_sysfs(client); + + PIXCIR_DBG(KERN_INFO "%s:insmod successfully!\n",__func__); + + enable_irq(client->irq); + return 0; + + printk(KERN_ERR "%s:insmod Fail!\n",__func__); + +err_i2c: + unregister_early_suspend(&tsdata->ft5x0x_early_suspend); +err_free_irq: + free_irq(client->irq, tsdata); +err_free_mem: + input_free_device(input); + kfree(tsdata); + return error; +} + + +/* pixcir_i2c_ts_remove -- remove pixcir from device list + * @return: error code; 0: successful + */ +static int __devexit ft5x0x_i2c_ts_remove(struct i2c_client *client) +{ + int error; + struct i2c_dev *i2c_dev; + struct ft5x0x_ts_struct *tsdata = i2c_get_clientdata(client); + + device_init_wakeup(&client->dev, 0); + + tsdata->exiting = true; + mb(); + free_irq(client->irq, tsdata); + + /*********************************Bee-0928-TOP****************************************/ + i2c_dev = get_free_i2c_dev(client->adapter); + if (IS_ERR(i2c_dev)) { + error = PTR_ERR(i2c_dev); + return error; + } + + return_i2c_dev(i2c_dev); + device_destroy(i2c_dev_class, MKDEV(I2C_MAJOR, client->adapter->nr)); + /*********************************Bee-0928-BOTTOM****************************************/ + unregister_early_suspend(&tsdata->ft5x0x_early_suspend); + //sprd_free_gpio_irq(pixcir_irq); + input_unregister_device(tsdata->input); + kfree(tsdata); + + return 0; +} + +/*************************************Bee-0928****************************************/ +/* pixcir_open */ +/*************************************Bee-0928****************************************/ +static int ft5x0x_open(struct inode *inode, struct file *file) +{ + int subminor; + struct i2c_client *client; + struct i2c_adapter *adapter; + struct i2c_dev *i2c_dev; + int ret = 0; + PIXCIR_DBG("enter ft5x0x_open function\n"); + + subminor = iminor(inode); + + i2c_dev = i2c_dev_get_by_minor(subminor); + if (!i2c_dev) { + printk(KERN_ERR "error i2c_dev\n"); + return -ENODEV; + } + + adapter = i2c_get_adapter(i2c_dev->adap->nr); + if (!adapter) { + return -ENODEV; + } + + client = kzalloc(sizeof(*client), GFP_KERNEL); + if (!client) { + i2c_put_adapter(adapter); + ret = -ENOMEM; + } + + snprintf(client->name, I2C_NAME_SIZE, "ft5x0x_i2c_ts%d", adapter->nr); + client->driver = &ft5x0x_i2c_ts_driver; + client->adapter = adapter; + + file->private_data = client; + + return 0; +} + +/*************************************Bee-0928****************************************/ +/* pixcir_ioctl */ +/*************************************Bee-0928****************************************/ +static long ft5x0x_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + struct i2c_client *client = (struct i2c_client *) file->private_data; + + PIXCIR_DBG("ft5x0x_ioctl(),cmd = %d,arg = %ld\n", cmd, arg); + + + switch (cmd) + { + case CALIBRATION_FLAG: //CALIBRATION_FLAG = 1 + client->addr = SLAVE_ADDR; + status_reg = CALIBRATION_FLAG; + break; + + case BOOTLOADER: //BOOTLOADER = 7 + client->addr = BOOTLOADER_ADDR; + status_reg = BOOTLOADER; + + ft5x0x_reset(g_ft5x0x_ts->platform_data->reset_gpio_number); + mdelay(5); + break; + + case RESET_TP: //RESET_TP = 9 + ft5x0x_reset(g_ft5x0x_ts->platform_data->reset_gpio_number); + break; + + case ENABLE_IRQ: //ENABLE_IRQ = 10 + status_reg = 0; + enable_irq(g_ft5x0x_ts->client->irq); + break; + + case DISABLE_IRQ: //DISABLE_IRQ = 11 + disable_irq_nosync(g_ft5x0x_ts->client->irq); + break; + + case BOOTLOADER_STU: //BOOTLOADER_STU = 12 + client->addr = BOOTLOADER_ADDR; + status_reg = BOOTLOADER_STU; + + ft5x0x_reset(g_ft5x0x_ts->platform_data->reset_gpio_number); + mdelay(5); + + case ATTB_VALUE: //ATTB_VALUE = 13 + client->addr = SLAVE_ADDR; + status_reg = ATTB_VALUE; + break; + + default: + client->addr = SLAVE_ADDR; + status_reg = 0; + break; + } + return 0; +} + +/***********************************Bee-0928****************************************/ +/* pixcir_read */ +/***********************************Bee-0928****************************************/ +static ssize_t ft5x0x_read (struct file *file, char __user *buf, size_t count,loff_t *offset) +{ + struct i2c_client *client = (struct i2c_client *)file->private_data; + unsigned char *tmp, bootloader_stu[4], attb_value[1]; + int ret = 0; + + switch(status_reg) + { + case BOOTLOADER_STU: + i2c_master_recv(client, bootloader_stu, sizeof(bootloader_stu)); + if (ret!=sizeof(bootloader_stu)) { + dev_err(&client->dev, + "%s: BOOTLOADER_STU: i2c_master_recv() failed, ret=%d\n", + __func__, ret); + return -EFAULT; + } + + ret = copy_to_user(buf, bootloader_stu, sizeof(bootloader_stu)); + if(ret) { + dev_err(&client->dev, + "%s: BOOTLOADER_STU: copy_to_user() failed.\n", __func__); + return -EFAULT; + }else { + ret = 4; + } + break; + + case ATTB_VALUE: + attb_value[0] = attb_read_val(g_ft5x0x_ts->platform_data->irq_gpio_number); + if(copy_to_user(buf, attb_value, sizeof(attb_value))) { + dev_err(&client->dev, + "%s: ATTB_VALUE: copy_to_user() failed.\n", __func__); + return -EFAULT; + }else { + ret = 1; + } + break; + + default: + tmp = kmalloc(count,GFP_KERNEL); + if (tmp==NULL) + return -ENOMEM; + + ret = i2c_master_recv(client, tmp, count); + if (ret != count) { + dev_err(&client->dev, + "%s: default: i2c_master_recv() failed, ret=%d\n", + __func__, ret); + return -EFAULT; + } + + if(copy_to_user(buf, tmp, count)) { + dev_err(&client->dev, + "%s: default: copy_to_user() failed.\n", __func__); + kfree(tmp); + return -EFAULT; + } + kfree(tmp); + break; + } + return ret; +} + +/***********************************Bee-0928****************************************/ +/* ft5x0x_write */ +/***********************************Bee-0928****************************************/ +static ssize_t ft5x0x_write(struct file *file,const char __user *buf,size_t count, loff_t *ppos) +{ + struct i2c_client *client; + unsigned char *tmp, bootload_data[143]; + int ret=0, i=0; + + client = file->private_data; + + switch(status_reg) + { + case CALIBRATION_FLAG: //CALIBRATION_FLAG=1 +#if 0 + tmp = kmalloc(count,GFP_KERNEL); + if (tmp==NULL) + return -ENOMEM; + + if (copy_from_user(tmp,buf,count)) { + dev_err(&client->dev, + "%s: CALIBRATION_FLAG: copy_from_user() failed.\n", __func__); + kfree(tmp); + return -EFAULT; + } + + ret = i2c_master_send(client,tmp,count); + if (ret!=count ) { + dev_err(&client->dev, + "%s: CALIBRATION: i2c_master_send() failed, ret=%d\n", + __func__, ret); + kfree(tmp); + return -EFAULT; + } + + while(!attb_read_val(g_pixcir_ts->platform_data->irq_gpio_number)) { + msleep(100); + i++; + if(i>99) + break; //10s no high aatb break + } //waiting to finish the calibration.(pixcir application_note_710_v3 p43) + + kfree(tmp); +#endif + break; + + case BOOTLOADER: +#if 0 + memset(bootload_data, 0, sizeof(bootload_data)); + + if (copy_from_user(bootload_data, buf, count)) { + dev_err(&client->dev, + "%s: BOOTLOADER: copy_from_user() failed.\n", __func__); + return -EFAULT; + } + + ret = i2c_master_send(client, bootload_data, count); + if(ret!=count) { + dev_err(&client->dev, + "%s: BOOTLOADER: i2c_master_send() failed, ret = %d\n", + __func__, ret); + return -EFAULT; + } +#endif + break; + + default: + tmp = kmalloc(count,GFP_KERNEL); + if (tmp==NULL) + return -ENOMEM; + + if (copy_from_user(tmp,buf,count)) { + dev_err(&client->dev, + "%s: default: copy_from_user() failed.\n", __func__); + kfree(tmp); + return -EFAULT; + } + + ret = i2c_master_send(client,tmp,count); + if (ret!=count ) { + dev_err(&client->dev, + "%s: default: i2c_master_send() failed, ret=%d\n", + __func__, ret); + kfree(tmp); + return -EFAULT; + } + kfree(tmp); + break; + } + return ret; +} + +/***********************************Bee-0928****************************************/ +/* pixcir_release */ +/***********************************Bee-0928****************************************/ +static int ft5x0x_release(struct inode *inode, struct file *file) +{ + struct i2c_client *client = file->private_data; + + PIXCIR_DBG("enter ft5x0x_release funtion\n"); + + i2c_put_adapter(client->adapter); + kfree(client); + file->private_data = NULL; + + return 0; +} + +/*********************************Bee-0928-TOP****************************************/ +static const struct file_operations ft5x0x_i2c_ts_fops = +{ .owner = THIS_MODULE, + .read = ft5x0x_read, + .write = ft5x0x_write, + .open = ft5x0x_open, + .unlocked_ioctl = ft5x0x_ioctl, + .release = ft5x0x_release, +}; +/*********************************Bee-0928-BOTTOM****************************************/ + + +static const struct i2c_device_id ft5x0x_i2c_ts_id[] = { + { FT5X0X_DEVICE_NAME, 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, ft5x0x_i2c_ts_id); + +static struct i2c_driver ft5x0x_i2c_ts_driver = { + .driver = { + .owner = THIS_MODULE, + .name = "ft5x0x_i2c_ts_v3.2.0A", + }, + .probe = ft5x0x_i2c_ts_probe, + .remove = __devexit_p(ft5x0x_i2c_ts_remove), + .id_table = ft5x0x_i2c_ts_id, +}; + +static int __init ft5x0x_i2c_ts_init(void) +{ + int ret; + PIXCIR_DBG("%s",__func__); + /*********************************Bee-0928-TOP****************************************/ + ret = register_chrdev(I2C_MAJOR,"ft5x0x_i2c_ts",&ft5x0x_i2c_ts_fops); + if (ret) { + printk(KERN_ERR "%s:register chrdev failed\n",__func__); + return ret; + } + + i2c_dev_class = class_create(THIS_MODULE, "ft5x0x_i2c_dev"); + if (IS_ERR(i2c_dev_class)) { + ret = PTR_ERR(i2c_dev_class); + class_destroy(i2c_dev_class); + } + /********************************Bee-0928-BOTTOM******************************************/ + return i2c_add_driver(&ft5x0x_i2c_ts_driver); +} + +static void __exit ft5x0x_i2c_ts_exit(void) +{ + i2c_del_driver(&ft5x0x_i2c_ts_driver); + /********************************Bee-0928-TOP******************************************/ + class_destroy(i2c_dev_class); + unregister_chrdev(I2C_MAJOR,"ft5x0x_i2c_ts"); + /********************************Bee-0928-BOTTOM******************************************/ +} + +module_init(ft5x0x_i2c_ts_init); +module_exit(ft5x0x_i2c_ts_exit); + +MODULE_AUTHOR("Yunlong wang "); +MODULE_DESCRIPTION("Pixcir I2C Touchscreen Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/fujitsu_ts.c b/drivers/input/touchscreen/fujitsu_ts.c new file mode 100644 index 00000000..10794ddb --- /dev/null +++ b/drivers/input/touchscreen/fujitsu_ts.c @@ -0,0 +1,178 @@ +/* + * Fujitsu serial touchscreen driver + * + * Copyright (c) Dmitry Torokhov + */ + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include + +#define DRIVER_DESC "Fujitsu serial touchscreen driver" + +MODULE_AUTHOR("Dmitry Torokhov "); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL"); + +#define FUJITSU_LENGTH 5 + +/* + * Per-touchscreen data. + */ +struct fujitsu { + struct input_dev *dev; + struct serio *serio; + int idx; + unsigned char data[FUJITSU_LENGTH]; + char phys[32]; +}; + +/* + * Decode serial data (5 bytes per packet) + * First byte + * 1 C 0 0 R S S S + * Where C is 1 while in calibration mode (which we don't use) + * R is 1 when no coordinate corection was done. + * S are button state + */ +static irqreturn_t fujitsu_interrupt(struct serio *serio, + unsigned char data, unsigned int flags) +{ + struct fujitsu *fujitsu = serio_get_drvdata(serio); + struct input_dev *dev = fujitsu->dev; + + if (fujitsu->idx == 0) { + /* resync skip until start of frame */ + if ((data & 0xf0) != 0x80) + return IRQ_HANDLED; + } else { + /* resync skip garbage */ + if (data & 0x80) { + fujitsu->idx = 0; + return IRQ_HANDLED; + } + } + + fujitsu->data[fujitsu->idx++] = data; + if (fujitsu->idx == FUJITSU_LENGTH) { + input_report_abs(dev, ABS_X, + (fujitsu->data[2] << 7) | fujitsu->data[1]); + input_report_abs(dev, ABS_Y, + (fujitsu->data[4] << 7) | fujitsu->data[3]); + input_report_key(dev, BTN_TOUCH, + (fujitsu->data[0] & 0x03) != 2); + input_sync(dev); + fujitsu->idx = 0; + } + + return IRQ_HANDLED; +} + +/* + * fujitsu_disconnect() is the opposite of fujitsu_connect() + */ +static void fujitsu_disconnect(struct serio *serio) +{ + struct fujitsu *fujitsu = serio_get_drvdata(serio); + + input_get_device(fujitsu->dev); + input_unregister_device(fujitsu->dev); + serio_close(serio); + serio_set_drvdata(serio, NULL); + input_put_device(fujitsu->dev); + kfree(fujitsu); +} + +/* + * fujitsu_connect() is the routine that is called when someone adds a + * new serio device that supports the Fujitsu protocol and registers it + * as input device. + */ +static int fujitsu_connect(struct serio *serio, struct serio_driver *drv) +{ + struct fujitsu *fujitsu; + struct input_dev *input_dev; + int err; + + fujitsu = kzalloc(sizeof(struct fujitsu), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!fujitsu || !input_dev) { + err = -ENOMEM; + goto fail1; + } + + fujitsu->serio = serio; + fujitsu->dev = input_dev; + snprintf(fujitsu->phys, sizeof(fujitsu->phys), + "%s/input0", serio->phys); + + input_dev->name = "Fujitsu Serial Touchscreen"; + input_dev->phys = fujitsu->phys; + input_dev->id.bustype = BUS_RS232; + input_dev->id.vendor = SERIO_FUJITSU; + input_dev->id.product = 0; + input_dev->id.version = 0x0100; + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + + input_set_abs_params(input_dev, ABS_X, 0, 4096, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 0, 4096, 0, 0); + serio_set_drvdata(serio, fujitsu); + + err = serio_open(serio, drv); + if (err) + goto fail2; + + err = input_register_device(fujitsu->dev); + if (err) + goto fail3; + + return 0; + + fail3: + serio_close(serio); + fail2: + serio_set_drvdata(serio, NULL); + fail1: + input_free_device(input_dev); + kfree(fujitsu); + return err; +} + +/* + * The serio driver structure. + */ +static struct serio_device_id fujitsu_serio_ids[] = { + { + .type = SERIO_RS232, + .proto = SERIO_FUJITSU, + .id = SERIO_ANY, + .extra = SERIO_ANY, + }, + { 0 } +}; + +MODULE_DEVICE_TABLE(serio, fujitsu_serio_ids); + +static struct serio_driver fujitsu_drv = { + .driver = { + .name = "fujitsu_ts", + }, + .description = DRIVER_DESC, + .id_table = fujitsu_serio_ids, + .interrupt = fujitsu_interrupt, + .connect = fujitsu_connect, + .disconnect = fujitsu_disconnect, +}; + +module_serio_driver(fujitsu_drv); diff --git a/drivers/input/touchscreen/goodix/Makefile b/drivers/input/touchscreen/goodix/Makefile new file mode 100644 index 00000000..2fb522e6 --- /dev/null +++ b/drivers/input/touchscreen/goodix/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_TOUCHSCREEN_GOODIX) += goodix_ts.o + +goodix_ts-objs := gt9xx.o +goodix_ts-objs += gt9xx_update.o +goodix_ts-objs += goodix_tool.o diff --git a/drivers/input/touchscreen/goodix/goodix_tool.c b/drivers/input/touchscreen/goodix/goodix_tool.c new file mode 100644 index 00000000..586aac34 --- /dev/null +++ b/drivers/input/touchscreen/goodix/goodix_tool.c @@ -0,0 +1,548 @@ +/* drivers/input/touchscreen/goodix_tool.c + * + * 2010 - 2012 Goodix Technology. + * + * 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 a reference + * to you, when you are integrating the GOODiX's CTP IC into your system, + * 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. + * + * Version:1.6 + * V1.0:2012/05/01,create file. + * V1.2:2012/06/08,modify some warning. + * V1.4:2012/08/28,modified to support GT9XX + * V1.6:new proc name + */ + +#include "gt9xx.h" + +#define DATA_LENGTH_UINT 512 +#define CMD_HEAD_LENGTH (sizeof(st_cmd_head) - sizeof(u8*)) +static char procname[20] = {0}; + +#define UPDATE_FUNCTIONS + +#ifdef UPDATE_FUNCTIONS +extern s32 gup_enter_update_mode(struct i2c_client *client); +extern void gup_leave_update_mode(void); +extern s32 gup_update_proc(void *dir); +#endif + +extern void gtp_irq_disable(struct goodix_ts_data *); +extern void gtp_irq_enable(struct goodix_ts_data *); + +#pragma pack(1) +typedef struct { + u8 wr; //write read flag£¬0:R 1:W 2:PID 3: + u8 flag; //0:no need flag/int 1: need flag 2:need int + u8 flag_addr[2]; //flag address + u8 flag_val; //flag val + u8 flag_relation; //flag_val:flag 0:not equal 1:equal 2:> 3:< + u16 circle; //polling cycle + u8 times; //plling times + u8 retry; //I2C retry times + u16 delay; //delay befor read or after write + u16 data_len; //data length + u8 addr_len; //address length + u8 addr[2]; //address + u8 res[3]; //reserved + u8* data; //data pointer +} st_cmd_head; +#pragma pack() +st_cmd_head cmd_head; + +static struct i2c_client *gt_client = NULL; + +static struct proc_dir_entry *goodix_proc_entry; + +static s32 goodix_tool_write(struct file *filp, const char __user *buff, unsigned long len, void *data); +static s32 goodix_tool_read( char *page, char **start, off_t off, int count, int *eof, void *data ); +static s32 (*tool_i2c_read)(u8 *, u16); +static s32 (*tool_i2c_write)(u8 *, u16); + +#if GTP_ESD_PROTECT +extern void gtp_esd_switch(struct i2c_client *, s32); +#endif +s32 DATA_LENGTH = 0; +s8 IC_TYPE[16] = "GT9XX"; + +static void tool_set_proc_name(char * procname) +{ + char *months[12] = {"Jan", "Feb", "Mar", "Apr", "May", + "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" + }; + char date[20] = {0}; + char month[4] = {0}; + int i = 0, n_month = 1, n_day = 0, n_year = 0; + + sprintf(date, "%s", __DATE__); + + //GTP_DEBUG("compile date: %s", date); + + sscanf(date, "%s %d %d", month, &n_day, &n_year); + + for (i = 0; i < 12; ++i) { + if (!memcmp(months[i], month, 3)) { + n_month = i+1; + break; + } + } + + sprintf(procname, "gmnode%04d%02d%02d", n_year, n_month, n_day); + + //GTP_DEBUG("procname = %s", procname); +} + + +static s32 tool_i2c_read_no_extra(u8* buf, u16 len) +{ + s32 ret = -1; + s32 i = 0; + struct i2c_msg msgs[2]; + + msgs[0].flags = !I2C_M_RD; + msgs[0].addr = gt_client->addr; + msgs[0].len = cmd_head.addr_len; + msgs[0].buf = &buf[0]; + + msgs[1].flags = I2C_M_RD; + msgs[1].addr = gt_client->addr; + msgs[1].len = len; + msgs[1].buf = &buf[GTP_ADDR_LENGTH]; + + for (i = 0; i < cmd_head.retry; i++) { + ret=i2c_transfer(gt_client->adapter, msgs, 2); + if (ret > 0) { + break; + } + } + return ret; +} + +static s32 tool_i2c_write_no_extra(u8* buf, u16 len) +{ + s32 ret = -1; + s32 i = 0; + struct i2c_msg msg; + + msg.flags = !I2C_M_RD; + msg.addr = gt_client->addr; + msg.len = len; + msg.buf = buf; + + for (i = 0; i < cmd_head.retry; i++) { + ret=i2c_transfer(gt_client->adapter, &msg, 1); + if (ret > 0) { + break; + } + } + return ret; +} + +static s32 tool_i2c_read_with_extra(u8* buf, u16 len) +{ + s32 ret = -1; + u8 pre[2] = {0x0f, 0xff}; + u8 end[2] = {0x80, 0x00}; + + tool_i2c_write_no_extra(pre, 2); + ret = tool_i2c_read_no_extra(buf, len); + tool_i2c_write_no_extra(end, 2); + + return ret; +} + +static s32 tool_i2c_write_with_extra(u8* buf, u16 len) +{ + s32 ret = -1; + u8 pre[2] = {0x0f, 0xff}; + u8 end[2] = {0x80, 0x00}; + + tool_i2c_write_no_extra(pre, 2); + ret = tool_i2c_write_no_extra(buf, len); + tool_i2c_write_no_extra(end, 2); + + return ret; +} + +static void register_i2c_func(void) +{ +// if (!strncmp(IC_TYPE, "GT818", 5) || !strncmp(IC_TYPE, "GT816", 5) +// || !strncmp(IC_TYPE, "GT811", 5) || !strncmp(IC_TYPE, "GT818F", 6) +// || !strncmp(IC_TYPE, "GT827", 5) || !strncmp(IC_TYPE,"GT828", 5) +// || !strncmp(IC_TYPE, "GT813", 5)) + if (strncmp(IC_TYPE, "GT8110", 6) && strncmp(IC_TYPE, "GT8105", 6) + && strncmp(IC_TYPE, "GT801", 5) && strncmp(IC_TYPE, "GT800", 5) + && strncmp(IC_TYPE, "GT801PLUS", 9) && strncmp(IC_TYPE, "GT811", 5) + && strncmp(IC_TYPE, "GTxxx", 5) && strncmp(IC_TYPE, "GT9XX", 5)) { + tool_i2c_read = tool_i2c_read_with_extra; + tool_i2c_write = tool_i2c_write_with_extra; + GTP_DEBUG("I2C function: with pre and end cmd!"); + } else { + tool_i2c_read = tool_i2c_read_no_extra; + tool_i2c_write = tool_i2c_write_no_extra; + GTP_INFO("I2C function: without pre and end cmd!"); + } +} + +static void unregister_i2c_func(void) +{ + tool_i2c_read = NULL; + tool_i2c_write = NULL; + GTP_INFO("I2C function: unregister i2c transfer function!"); +} + + +static const struct file_operations goodix_ops = { + .owner = THIS_MODULE, + .read = goodix_tool_read, + .write = goodix_tool_write, +}; + +s32 init_wr_node(struct i2c_client *client) +{ + s32 i; + + gt_client = client; + memset(&cmd_head, 0, sizeof(cmd_head)); + cmd_head.data = NULL; + + i = 5; + while ((!cmd_head.data) && i) { + cmd_head.data = kzalloc(i * DATA_LENGTH_UINT, GFP_KERNEL); + if (NULL != cmd_head.data) { + break; + } + i--; + } + if (i) { + DATA_LENGTH = i * DATA_LENGTH_UINT + GTP_ADDR_LENGTH; + GTP_INFO("Applied memory size:%d.", DATA_LENGTH); + } else { + GTP_ERROR("Apply for memory failed."); + return FAIL; + } + + cmd_head.addr_len = 2; + cmd_head.retry = 5; + + register_i2c_func(); + + tool_set_proc_name(procname); + goodix_proc_entry = proc_create(procname, 0666, NULL,&goodix_ops); /*create_proc_entry(procname, 0666, NULL);*/ + if (goodix_proc_entry == NULL) { + GTP_ERROR("Couldn't create proc entry!"); + return FAIL; + } else { + GTP_INFO("Create proc entry success!"); + //goodix_proc_entry->write_proc = goodix_tool_write; + //goodix_proc_entry->read_proc = goodix_tool_read; + } + + return SUCCESS; +} + +void uninit_wr_node(void) +{ + kfree(cmd_head.data); + cmd_head.data = NULL; + unregister_i2c_func(); + remove_proc_entry(procname, NULL); +} + +static u8 relation(u8 src, u8 dst, u8 rlt) +{ + u8 ret = 0; + + switch (rlt) { + case 0: + ret = (src != dst) ? true : false; + break; + + case 1: + ret = (src == dst) ? true : false; + GTP_DEBUG("equal:src:0x%02x dst:0x%02x ret:%d.", src, dst, (s32)ret); + break; + + case 2: + ret = (src > dst) ? true : false; + break; + + case 3: + ret = (src < dst) ? true : false; + break; + + case 4: + ret = (src & dst) ? true : false; + break; + + case 5: + ret = (!(src | dst)) ? true : false; + break; + + default: + ret = false; + break; + } + + return ret; +} + +/******************************************************* +Function: + Comfirm function. +Input: + None. +Output: + Return write length. +********************************************************/ +static u8 comfirm(void) +{ + s32 i = 0; + u8 buf[32]; + +// memcpy(&buf[GTP_ADDR_LENGTH - cmd_head.addr_len], &cmd_head.flag_addr, cmd_head.addr_len); +// memcpy(buf, &cmd_head.flag_addr, cmd_head.addr_len);//Modified by Scott, 2012-02-17 + memcpy(buf, cmd_head.flag_addr, cmd_head.addr_len); + + for (i = 0; i < cmd_head.times; i++) { + if (tool_i2c_read(buf, 1) <= 0) { + GTP_ERROR("Read flag data failed!"); + return FAIL; + } + if (true == relation(buf[GTP_ADDR_LENGTH], cmd_head.flag_val, cmd_head.flag_relation)) { + GTP_DEBUG("value at flag addr:0x%02x.", buf[GTP_ADDR_LENGTH]); + GTP_DEBUG("flag value:0x%02x.", cmd_head.flag_val); + break; + } + + msleep(cmd_head.circle); + } + + if (i >= cmd_head.times) { + GTP_ERROR("Didn't get the flag to continue!"); + return FAIL; + } + + return SUCCESS; +} + +/******************************************************* +Function: + Goodix tool write function. +Input: + standard proc write function param. +Output: + Return write length. +********************************************************/ +static s32 goodix_tool_write(struct file *filp, const char __user *buff, unsigned long len, void *data) +{ + s32 ret = 0; + GTP_DEBUG_FUNC(); + GTP_DEBUG_ARRAY((u8*)buff, len); + + ret = copy_from_user(&cmd_head, buff, CMD_HEAD_LENGTH); + if(ret) { + GTP_ERROR("copy_from_user failed."); + } + + GTP_DEBUG("wr :0x%02x.", cmd_head.wr); + GTP_DEBUG("flag:0x%02x.", cmd_head.flag); + GTP_DEBUG("flag addr:0x%02x%02x.", cmd_head.flag_addr[0], cmd_head.flag_addr[1]); + GTP_DEBUG("flag val:0x%02x.", cmd_head.flag_val); + GTP_DEBUG("flag rel:0x%02x.", cmd_head.flag_relation); + GTP_DEBUG("circle :%d.", (s32)cmd_head.circle); + GTP_DEBUG("times :%d.", (s32)cmd_head.times); + GTP_DEBUG("retry :%d.", (s32)cmd_head.retry); + GTP_DEBUG("delay :%d.", (s32)cmd_head.delay); + GTP_DEBUG("data len:%d.", (s32)cmd_head.data_len); + GTP_DEBUG("addr len:%d.", (s32)cmd_head.addr_len); + GTP_DEBUG("addr:0x%02x%02x.", cmd_head.addr[0], cmd_head.addr[1]); + GTP_DEBUG("len:%d.", (s32)len); + GTP_DEBUG("buf[20]:0x%02x.", buff[CMD_HEAD_LENGTH]); + + if (1 == cmd_head.wr) { + // copy_from_user(&cmd_head.data[cmd_head.addr_len], &buff[CMD_HEAD_LENGTH], cmd_head.data_len); + ret = copy_from_user(&cmd_head.data[GTP_ADDR_LENGTH], &buff[CMD_HEAD_LENGTH], cmd_head.data_len); + if(ret) { + GTP_ERROR("copy_from_user failed."); + } + memcpy(&cmd_head.data[GTP_ADDR_LENGTH - cmd_head.addr_len], cmd_head.addr, cmd_head.addr_len); + + GTP_DEBUG_ARRAY(cmd_head.data, cmd_head.data_len + cmd_head.addr_len); + GTP_DEBUG_ARRAY((u8*)&buff[CMD_HEAD_LENGTH], cmd_head.data_len); + + if (1 == cmd_head.flag) { + if (FAIL == comfirm()) { + GTP_ERROR("[WRITE]Comfirm fail!"); + return FAIL; + } + } else if (2 == cmd_head.flag) { + //Need interrupt! + } + if (tool_i2c_write(&cmd_head.data[GTP_ADDR_LENGTH - cmd_head.addr_len], + cmd_head.data_len + cmd_head.addr_len) <= 0) { + GTP_ERROR("[WRITE]Write data failed!"); + return FAIL; + } + + GTP_DEBUG_ARRAY(&cmd_head.data[GTP_ADDR_LENGTH - cmd_head.addr_len],cmd_head.data_len + cmd_head.addr_len); + if (cmd_head.delay) { + msleep(cmd_head.delay); + } + + return cmd_head.data_len + CMD_HEAD_LENGTH; + } else if (3 == cmd_head.wr) { //Write ic type + ret = copy_from_user(&cmd_head.data[0], &buff[CMD_HEAD_LENGTH], cmd_head.data_len); + if(ret) { + GTP_ERROR("copy_from_user failed."); + } + memcpy(IC_TYPE, cmd_head.data, cmd_head.data_len); + + register_i2c_func(); + + return cmd_head.data_len + CMD_HEAD_LENGTH; + } else if (5 == cmd_head.wr) { + //memcpy(IC_TYPE, cmd_head.data, cmd_head.data_len); + + return cmd_head.data_len + CMD_HEAD_LENGTH; + } else if (7 == cmd_head.wr) { //disable irq! + gtp_irq_disable(i2c_get_clientdata(gt_client)); + +#if GTP_ESD_PROTECT + gtp_esd_switch(gt_client, SWITCH_OFF); +#endif + return CMD_HEAD_LENGTH; + } else if (9 == cmd_head.wr) { //enable irq! + gtp_irq_enable(i2c_get_clientdata(gt_client)); + +#if GTP_ESD_PROTECT + gtp_esd_switch(gt_client, SWITCH_ON); +#endif + return CMD_HEAD_LENGTH; + } else if(17 == cmd_head.wr) { + struct goodix_ts_data *ts = i2c_get_clientdata(gt_client); + ret = copy_from_user(&cmd_head.data[GTP_ADDR_LENGTH], &buff[CMD_HEAD_LENGTH], cmd_head.data_len); + if(ret) { + GTP_DEBUG("copy_from_user failed."); + } + if(cmd_head.data[GTP_ADDR_LENGTH]) { + GTP_DEBUG("gtp enter rawdiff."); + ts->gtp_rawdiff_mode = true; + } else { + ts->gtp_rawdiff_mode = false; + GTP_DEBUG("gtp leave rawdiff."); + } + return CMD_HEAD_LENGTH; + } +#ifdef UPDATE_FUNCTIONS + else if (11 == cmd_head.wr) { //Enter update mode! + if (FAIL == gup_enter_update_mode(gt_client)) { + return FAIL; + } + } else if (13 == cmd_head.wr) { //Leave update mode! + gup_leave_update_mode(); + } else if (15 == cmd_head.wr) { //Update firmware! + show_len = 0; + total_len = 0; + memset(cmd_head.data, 0, cmd_head.data_len + 1); + memcpy(cmd_head.data, &buff[CMD_HEAD_LENGTH], cmd_head.data_len); + + if (FAIL == gup_update_proc((void*)cmd_head.data)) { + return FAIL; + } + } +#endif + + return CMD_HEAD_LENGTH; +} + +/******************************************************* +Function: + Goodix tool read function. +Input: + standard proc read function param. +Output: + Return read length. +********************************************************/ +static s32 goodix_tool_read( char *page, char **start, off_t off, int count, int *eof, void *data ) +{ + GTP_DEBUG_FUNC(); + + if (cmd_head.wr % 2) { + return FAIL; + } else if (!cmd_head.wr) { + u16 len = 0; + s16 data_len = 0; + u16 loc = 0; + + if (1 == cmd_head.flag) { + if (FAIL == comfirm()) { + GTP_ERROR("[READ]Comfirm fail!"); + return FAIL; + } + } else if (2 == cmd_head.flag) { + //Need interrupt! + } + + memcpy(cmd_head.data, cmd_head.addr, cmd_head.addr_len); + + GTP_DEBUG("[CMD HEAD DATA] ADDR:0x%02x%02x.", cmd_head.data[0], cmd_head.data[1]); + GTP_DEBUG("[CMD HEAD ADDR] ADDR:0x%02x%02x.", cmd_head.addr[0], cmd_head.addr[1]); + + if (cmd_head.delay) { + msleep(cmd_head.delay); + } + + data_len = cmd_head.data_len; + while(data_len > 0) { + if (data_len > DATA_LENGTH) { + len = DATA_LENGTH; + } else { + len = data_len; + } + data_len -= DATA_LENGTH; + + if (tool_i2c_read(cmd_head.data, len) <= 0) { + GTP_ERROR("[READ]Read data failed!"); + return FAIL; + } + memcpy(&page[loc], &cmd_head.data[GTP_ADDR_LENGTH], len); + loc += len; + + GTP_DEBUG_ARRAY(&cmd_head.data[GTP_ADDR_LENGTH], len); + GTP_DEBUG_ARRAY(page, len); + } + } else if (2 == cmd_head.wr) { + // memcpy(page, "gt8", cmd_head.data_len); + // memcpy(page, "GT818", 5); + // page[5] = 0; + + GTP_DEBUG("Return ic type:%s len:%d.", page, (s32)cmd_head.data_len); + return cmd_head.data_len; + //return sizeof(IC_TYPE_NAME); + } else if (4 == cmd_head.wr) { + page[0] = show_len >> 8; + page[1] = show_len & 0xff; + page[2] = total_len >> 8; + page[3] = total_len & 0xff; + + return cmd_head.data_len; + } else if (6 == cmd_head.wr) { + //Read error code! + } else if (8 == cmd_head.wr) { //Read driver version + // memcpy(page, GTP_DRIVER_VERSION, strlen(GTP_DRIVER_VERSION)); + s32 tmp_len; + tmp_len = strlen(GTP_DRIVER_VERSION); + memcpy(page, GTP_DRIVER_VERSION, tmp_len); + page[tmp_len] = 0; + } + + return cmd_head.data_len; +} diff --git a/drivers/input/touchscreen/goodix/gt9xx.c b/drivers/input/touchscreen/goodix/gt9xx.c new file mode 100644 index 00000000..71befd38 --- /dev/null +++ b/drivers/input/touchscreen/goodix/gt9xx.c @@ -0,0 +1,2408 @@ +/* drivers/input/touchscreen/gt9xx.c + * + * 2010 - 2013 Goodix Technology. + * + * 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 a reference + * to you, when you are integrating the GOODiX's CTP IC into your system, + * 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. + * + * Version: 2.0 + * Authors: andrew@goodix.com, meta@goodix.com + * Release Date: 2013/04/25 + * Revision record: + * V1.0: + * first Release. By Andrew, 2012/08/31 + * V1.2: + * modify gtp_reset_guitar,slot report,tracking_id & 0x0F. By Andrew, 2012/10/15 + * V1.4: + * modify gt9xx_update.c. By Andrew, 2012/12/12 + * V1.6: + * 1. new heartbeat/esd_protect mechanism(add external watchdog) + * 2. doze mode, sliding wakeup + * 3. 3 more cfg_group(GT9 Sensor_ID: 0~5) + * 3. config length verification + * 4. names & comments + * By Meta, 2013/03/11 + * V1.8: + * 1. pen/stylus identification + * 2. read double check & fixed config support + * 3. new esd & slide wakeup optimization + * By Meta, 2013/06/08 + * V2.0: + * 1. compatible with GT9XXF + * 2. send config after resume + * By Meta, 2013/08/06 + */ + +#include +#include "gt9xx.h" + +#if GTP_ICS_SLOT_REPORT +#include +#endif + +static const char *goodix_ts_name = GTP_I2C_NAME; +static struct workqueue_struct *goodix_wq; +struct i2c_client * i2c_connect_client = NULL; +u8 config[GTP_CONFIG_MAX_LENGTH + GTP_ADDR_LENGTH] += {GTP_REG_CONFIG_DATA >> 8, GTP_REG_CONFIG_DATA & 0xff}; + +#if GTP_HAVE_TOUCH_KEY +static const u16 touch_key_array[] = GTP_KEY_TAB; +#define GTP_MAX_KEY_NUM (sizeof(touch_key_array)/sizeof(touch_key_array[0])) + +#if GTP_DEBUG_ON +static const int key_codes[] = {KEY_HOME, KEY_BACK, KEY_MENU, KEY_SEARCH}; +static const char *key_names[] = {"Key_Home", "Key_Back", "Key_Menu", "Key_Search"}; +#endif + +#endif + +static s8 gtp_i2c_test(struct i2c_client *client); +void gtp_reset_guitar(struct i2c_client *client, s32 ms); +s32 gtp_send_cfg(struct i2c_client *client); +void gtp_int_sync(s32 ms); + +#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 + +#if GTP_CREATE_WR_NODE +extern s32 init_wr_node(struct i2c_client*); +extern void uninit_wr_node(void); +#endif + +#if GTP_AUTO_UPDATE +extern u8 gup_init_update_proc(struct goodix_ts_data *); +#endif + +#if GTP_ESD_PROTECT +static struct delayed_work gtp_esd_check_work; +static struct workqueue_struct * gtp_esd_check_workqueue = NULL; +static void gtp_esd_check_func(struct work_struct *); +static s32 gtp_init_ext_watchdog(struct i2c_client *client); +void gtp_esd_switch(struct i2c_client *, s32); +#endif + +//*********** For GT9XXF Start **********// +#if GTP_COMPATIBLE_MODE +extern s32 i2c_read_bytes(struct i2c_client *client, u16 addr, u8 *buf, s32 len); +extern s32 i2c_write_bytes(struct i2c_client *client, u16 addr, u8 *buf, s32 len); +extern s32 gup_clk_calibration(void); +extern s32 gup_fw_download_proc(void *dir, u8 dwn_mode); +extern u8 gup_check_fs_mounted(char *path_name); + +void gtp_recovery_reset(struct i2c_client *client); +static s32 gtp_esd_recovery(struct i2c_client *client); +s32 gtp_fw_startup(struct i2c_client *client); +static s32 gtp_main_clk_proc(struct goodix_ts_data *ts); +static s32 gtp_bak_ref_proc(struct goodix_ts_data *ts, u8 mode); +#endif +//********** For GT9XXF End **********// + +#if GTP_SLIDE_WAKEUP +typedef enum { + DOZE_DISABLED = 0, + DOZE_ENABLED = 1, + DOZE_WAKEUP = 2, +} DOZE_T; +static DOZE_T doze_status = DOZE_DISABLED; +static s8 gtp_enter_doze(struct goodix_ts_data *ts); +#endif + +static u8 chip_gt9xxs = 0; // true if ic is gt9xxs, like gt915s +u8 grp_cfg_version = 0; + +/******************************************************* +Function: + Read data from the i2c slave device. +Input: + client: i2c device. + buf[0~1]: read start address. + buf[2~len-1]: read data buffer. + len: GTP_ADDR_LENGTH + read bytes count +Output: + numbers of i2c_msgs to transfer: + 2: succeed, otherwise: failed +*********************************************************/ +s32 gtp_i2c_read(struct i2c_client *client, u8 *buf, s32 len) +{ + struct i2c_msg msgs[2]; + s32 ret=-1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msgs[0].flags = !I2C_M_RD; + msgs[0].addr = client->addr; + msgs[0].len = GTP_ADDR_LENGTH; + msgs[0].buf = &buf[0]; + //msgs[0].scl_rate = 300 * 1000; // for Rockchip, etc. + + msgs[1].flags = I2C_M_RD; + msgs[1].addr = client->addr; + msgs[1].len = len - GTP_ADDR_LENGTH; + msgs[1].buf = &buf[GTP_ADDR_LENGTH]; + //msgs[1].scl_rate = 300 * 1000; + + while(retries < 5) { + ret = i2c_transfer(client->adapter, msgs, 2); + if(ret == 2)break; + retries++; + } + if((retries >= 5)) { +#if GTP_COMPATIBLE_MODE + struct goodix_ts_data *ts = i2c_get_clientdata(client); +#endif + +#if GTP_SLIDE_WAKEUP + // reset chip would quit doze mode + if (DOZE_ENABLED == doze_status) { + return ret; + } +#endif + GTP_ERROR("I2C Read: 0x%04X, %d bytes failed, errcode: %d! Process reset.", (((u16)(buf[0] << 8)) | buf[1]), len-2, ret); +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + gtp_recovery_reset(client); + } else +#endif + { + gtp_reset_guitar(client, 10); + } + } + return ret; +} + + + +/******************************************************* +Function: + Write data to the i2c slave device. +Input: + client: i2c device. + buf[0~1]: write start address. + buf[2~len-1]: data buffer + len: GTP_ADDR_LENGTH + write bytes count +Output: + numbers of i2c_msgs to transfer: + 1: succeed, otherwise: failed +*********************************************************/ +s32 gtp_i2c_write(struct i2c_client *client,u8 *buf,s32 len) +{ + struct i2c_msg msg; + s32 ret = -1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msg.flags = !I2C_M_RD; + msg.addr = client->addr; + msg.len = len; + msg.buf = buf; + //msg.scl_rate = 300 * 1000; // for Rockchip, etc + + while(retries < 5) { + ret = i2c_transfer(client->adapter, &msg, 1); + if (ret == 1)break; + retries++; + } + if((retries >= 5)) { +#if GTP_COMPATIBLE_MODE + struct goodix_ts_data *ts = i2c_get_clientdata(client); +#endif + +#if GTP_SLIDE_WAKEUP + if (DOZE_ENABLED == doze_status) { + return ret; + } +#endif + GTP_ERROR("I2C Write: 0x%04X, %d bytes failed, errcode: %d! Process reset.", (((u16)(buf[0] << 8)) | buf[1]), len-2, ret); +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + gtp_recovery_reset(client); + } else +#endif + { + gtp_reset_guitar(client, 10); + } + } + return ret; +} + + +/******************************************************* +Function: + i2c read twice, compare the results +Input: + client: i2c device + addr: operate address + rxbuf: read data to store, if compare successful + len: bytes to read +Output: + FAIL: read failed + SUCCESS: read successful +*********************************************************/ +s32 gtp_i2c_read_dbl_check(struct i2c_client *client, u16 addr, u8 *rxbuf, int len) +{ + u8 buf[16] = {0}; + u8 confirm_buf[16] = {0}; + u8 retry = 0; + + while (retry++ < 3) { + memset(buf, 0xAA, 16); + buf[0] = (u8)(addr >> 8); + buf[1] = (u8)(addr & 0xFF); + gtp_i2c_read(client, buf, len + 2); + + memset(confirm_buf, 0xAB, 16); + confirm_buf[0] = (u8)(addr >> 8); + confirm_buf[1] = (u8)(addr & 0xFF); + gtp_i2c_read(client, confirm_buf, len + 2); + + if (!memcmp(buf, confirm_buf, len+2)) { + memcpy(rxbuf, confirm_buf+2, len); + return SUCCESS; + } + } + GTP_ERROR("I2C read 0x%04X, %d bytes, double check failed!", addr, len); + return FAIL; +} + +/******************************************************* +Function: + Send config. +Input: + client: i2c device. +Output: + result of i2c write operation. + 1: succeed, otherwise: failed +*********************************************************/ + +s32 gtp_send_cfg(struct i2c_client *client) +{ + s32 ret = 2; + +#if GTP_DRIVER_SEND_CFG + s32 retry = 0; + struct goodix_ts_data *ts = i2c_get_clientdata(client); + + if (ts->fixed_cfg) { + GTP_INFO("Ic fixed config, no config sent!"); + return 0; + } else if (ts->pnl_init_error) { + GTP_INFO("Error occured in init_panel, no config sent"); + return 0; + } + + GTP_INFO("Driver send config."); + for (retry = 0; retry < 5; retry++) { + ret = gtp_i2c_write(client, config , GTP_CONFIG_MAX_LENGTH + GTP_ADDR_LENGTH); + if (ret > 0) { + break; + } + } +#endif + return ret; +} +/******************************************************* +Function: + Disable irq function +Input: + ts: goodix i2c_client private data +Output: + None. +*********************************************************/ +void gtp_irq_disable(struct goodix_ts_data *ts) +{ + unsigned long irqflags; + + GTP_DEBUG_FUNC(); + + spin_lock_irqsave(&ts->irq_lock, irqflags); + if (!ts->irq_is_disable) { + ts->irq_is_disable = 1; + disable_irq_nosync(ts->client->irq); + } + spin_unlock_irqrestore(&ts->irq_lock, irqflags); +} + +/******************************************************* +Function: + Enable irq function +Input: + ts: goodix i2c_client private data +Output: + None. +*********************************************************/ +void gtp_irq_enable(struct goodix_ts_data *ts) +{ + unsigned long irqflags = 0; + + GTP_DEBUG_FUNC(); + + spin_lock_irqsave(&ts->irq_lock, irqflags); + if (ts->irq_is_disable) { + enable_irq(ts->client->irq); + ts->irq_is_disable = 0; + } + spin_unlock_irqrestore(&ts->irq_lock, irqflags); +} + + +/******************************************************* +Function: + Report touch point event +Input: + ts: goodix i2c_client private data + id: trackId + x: input x coordinate + y: input y coordinate + w: input pressure +Output: + None. +*********************************************************/ +static void gtp_touch_down(struct goodix_ts_data* ts,s32 id,s32 x,s32 y,s32 w) +{ +#if GTP_CHANGE_X2Y + GTP_SWAP(x, y); +#endif + +#if GTP_ICS_SLOT_REPORT + input_mt_slot(ts->input_dev, id); + input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, id); + 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_TOUCH_MAJOR, w); + input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, w); +#else + 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_TOUCH_MAJOR, w); + input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, w); + input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, id); + input_mt_sync(ts->input_dev); +#endif + + GTP_DEBUG("ID:%d, X:%d, Y:%d, W:%d", id, x, y, w); +} + +/******************************************************* +Function: + Report touch release event +Input: + ts: goodix i2c_client private data +Output: + None. +*********************************************************/ +static void gtp_touch_up(struct goodix_ts_data* ts, s32 id) +{ +#if GTP_ICS_SLOT_REPORT + input_mt_slot(ts->input_dev, id); + input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, -1); + GTP_DEBUG("Touch id[%2d] release!", id); +#else + //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(ts->input_dev); +#endif +} + + +/******************************************************* +Function: + Goodix touchscreen work function +Input: + work: work struct of goodix_workqueue +Output: + None. +*********************************************************/ +static void goodix_ts_work_func(struct work_struct *work) +{ + u8 end_cmd[3] = {GTP_READ_COOR_ADDR >> 8, GTP_READ_COOR_ADDR & 0xFF, 0}; + u8 point_data[2 + 1 + 8 * GTP_MAX_TOUCH + 1]= {GTP_READ_COOR_ADDR >> 8, GTP_READ_COOR_ADDR & 0xFF}; + u8 touch_num = 0; + u8 finger = 0; + static u16 pre_touch = 0; + static u8 pre_key = 0; +#if GTP_WITH_PEN + static u8 pre_pen = 0; +#endif + u8 key_value = 0; + u8* coor_data = NULL; + s32 input_x = 0; + s32 input_y = 0; + s32 input_w = 0; + s32 id = 0; + s32 i = 0; + s32 ret = -1; + struct goodix_ts_data *ts = NULL; + +#if GTP_COMPATIBLE_MODE + u8 rqst_buf[3] = {0x80, 0x43}; // for GT9XXF +#endif + +#if GTP_SLIDE_WAKEUP + u8 doze_buf[3] = {0x81, 0x4B}; +#endif + + GTP_DEBUG_FUNC(); + ts = container_of(work, struct goodix_ts_data, work); + if (ts->enter_update) { + return; + } +#if GTP_SLIDE_WAKEUP + if (DOZE_ENABLED == doze_status) { + ret = gtp_i2c_read(i2c_connect_client, doze_buf, 3); + GTP_DEBUG("0x814B = 0x%02X", doze_buf[2]); + if (ret > 0) { + if (doze_buf[2] == 0xAA) { + GTP_INFO("Forward slide to light up the screen!"); + doze_status = DOZE_WAKEUP; + input_report_key(ts->input_dev, KEY_POWER, 1); + input_sync(ts->input_dev); + input_report_key(ts->input_dev, KEY_POWER, 0); + input_sync(ts->input_dev); + // clear 0x814B + doze_buf[2] = 0x00; + gtp_i2c_write(i2c_connect_client, doze_buf, 3); + } else if (doze_buf[2] == 0xBB) { + GTP_INFO("Backward slide to light up the screen!"); + doze_status = DOZE_WAKEUP; + input_report_key(ts->input_dev, KEY_POWER, 1); + input_sync(ts->input_dev); + input_report_key(ts->input_dev, KEY_POWER, 0); + input_sync(ts->input_dev); + // clear 0x814B + doze_buf[2] = 0x00; + gtp_i2c_write(i2c_connect_client, doze_buf, 3); + } else if (0xC0 == (doze_buf[2] & 0xC0)) { + GTP_INFO("Double click to light up the screen!"); + doze_status = DOZE_WAKEUP; + input_report_key(ts->input_dev, KEY_POWER, 1); + input_sync(ts->input_dev); + input_report_key(ts->input_dev, KEY_POWER, 0); + input_sync(ts->input_dev); + // clear 0x814B + doze_buf[2] = 0x00; + gtp_i2c_write(i2c_connect_client, doze_buf, 3); + } else { + gtp_enter_doze(ts); + } + } + if (ts->use_irq) { + gtp_irq_enable(ts); + } + return; + } +#endif + + ret = gtp_i2c_read(ts->client, point_data, 12); + if (ret < 0) { + GTP_ERROR("I2C transfer error. errno:%d\n ", ret); + goto exit_work_func; + } + + finger = point_data[GTP_ADDR_LENGTH]; + +#if GTP_COMPATIBLE_MODE + // GT9XXF + if ((finger == 0x00) && (CHIP_TYPE_GT9F == ts->chip_type)) { // request arrived + ret = gtp_i2c_read(ts->client, rqst_buf, 3); + if (ret < 0) { + GTP_ERROR("Read request status error!"); + goto exit_work_func; + } + + switch (rqst_buf[2] & 0x0F) { + case GTP_RQST_CONFIG: + GTP_INFO("Request for config."); + ret = gtp_send_cfg(ts->client); + if (ret < 0) { + GTP_ERROR("Request for config unresponded!"); + } else { + rqst_buf[2] = GTP_RQST_RESPONDED; + gtp_i2c_write(ts->client, rqst_buf, 3); + GTP_INFO("Request for config responded!"); + } + break; + + case GTP_RQST_BAK_REF: + GTP_INFO("Request for backup reference."); + ret = gtp_bak_ref_proc(ts, GTP_BAK_REF_SEND); + if (SUCCESS == ret) { + rqst_buf[2] = GTP_RQST_RESPONDED; + gtp_i2c_write(ts->client, rqst_buf, 3); + GTP_INFO("Request for backup reference responded!"); + } else { + GTP_ERROR("Requeset for backup reference unresponed!"); + } + break; + + case GTP_RQST_RESET: + GTP_INFO("Request for reset."); + gtp_recovery_reset(ts->client); + break; + + case GTP_RQST_MAIN_CLOCK: + GTP_INFO("Request for main clock."); + ts->rqst_processing = 1; + ret = gtp_main_clk_proc(ts); + if (FAIL == ret) { + GTP_ERROR("Request for main clock unresponded!"); + } else { + GTP_INFO("Request for main clock responded!"); + rqst_buf[2] = GTP_RQST_RESPONDED; + gtp_i2c_write(ts->client, rqst_buf, 3); + ts->rqst_processing = 0; + ts->clk_chk_fs_times = 0; + } + break; + + case GTP_RQST_IDLE: + default: + break; + } + } +#endif + + if((finger & 0x80) == 0) { + goto exit_work_func; + } + + touch_num = finger & 0x0f; + if (touch_num > GTP_MAX_TOUCH) { + goto exit_work_func; + } + + if (touch_num > 1) { + u8 buf[8 * GTP_MAX_TOUCH] = {(GTP_READ_COOR_ADDR + 10) >> 8, (GTP_READ_COOR_ADDR + 10) & 0xff}; + + ret = gtp_i2c_read(ts->client, buf, 2 + 8 * (touch_num - 1)); + memcpy(&point_data[12], &buf[2], 8 * (touch_num - 1)); + } + +#if GTP_HAVE_TOUCH_KEY + key_value = point_data[3 + 8 * touch_num]; + + if(key_value || pre_key) { + for (i = 0; i < GTP_MAX_KEY_NUM; i++) { +#if GTP_DEBUG_ON + for (ret = 0; ret < 4; ++ret) { + if (key_codes[ret] == touch_key_array[i]) { + GTP_DEBUG("Key: %s %s", key_names[ret], (key_value & (0x01 << i)) ? "Down" : "Up"); + break; + } + } +#endif + input_report_key(ts->input_dev, touch_key_array[i], key_value & (0x01<input_dev, BTN_TOOL_PEN, 0); + input_mt_slot(ts->input_dev, 5); + input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, -1); + pre_pen = 0; + } +#endif + if (pre_touch || touch_num) { + s32 pos = 0; + u16 touch_index = 0; + u8 report_num = 0; + coor_data = &point_data[3]; + + if(touch_num) { + id = coor_data[pos] & 0x0F; + +#if GTP_WITH_PEN + id = coor_data[pos]; + if ((id & 0x80)) { + GTP_DEBUG("Pen touch DOWN(Slot)!"); + input_x = coor_data[pos + 1] | (coor_data[pos + 2] << 8); + input_y = coor_data[pos + 3] | (coor_data[pos + 4] << 8); + input_w = coor_data[pos + 5] | (coor_data[pos + 6] << 8); + + input_report_key(ts->input_dev, BTN_TOOL_PEN, 1); + input_mt_slot(ts->input_dev, 5); + input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, 5); + input_report_abs(ts->input_dev, ABS_MT_POSITION_X, input_x); + input_report_abs(ts->input_dev, ABS_MT_POSITION_Y, input_y); + input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, input_w); + GTP_DEBUG("Pen/Stylus: (%d, %d)[%d]", input_x, input_y, input_w); + pre_pen = 1; + pre_touch = 0; + } +#endif + + touch_index |= (0x01<input_dev, BTN_TOUCH, (touch_num || key_value)); + if (touch_num) { + for (i = 0; i < touch_num; i++) { + coor_data = &point_data[i * 8 + 3]; + + id = coor_data[0] & 0x0F; + input_x = coor_data[1] | (coor_data[2] << 8); + input_y = coor_data[3] | (coor_data[4] << 8); + input_w = coor_data[5] | (coor_data[6] << 8); + +#if GTP_WITH_PEN + id = coor_data[0]; + if (id & 0x80) { + GTP_DEBUG("Pen touch DOWN!"); + input_report_key(ts->input_dev, BTN_TOOL_PEN, 1); + pre_pen = 1; + id = 0; + } +#endif + + gtp_touch_down(ts, id, input_x, input_y, input_w); + } + } else if (pre_touch) { + +#if GTP_WITH_PEN + if (pre_pen == 1) { + GTP_DEBUG("Pen touch UP!"); + input_report_key(ts->input_dev, BTN_TOOL_PEN, 0); + pre_pen = 0; + } +#endif + + GTP_DEBUG("Touch Release!"); + gtp_touch_up(ts, 0); + } + + pre_touch = touch_num; +#endif + + input_sync(ts->input_dev); + +exit_work_func: + if(!ts->gtp_rawdiff_mode) { + ret = gtp_i2c_write(ts->client, end_cmd, 3); + if (ret < 0) { + GTP_INFO("I2C write end_cmd error!"); + } + } + if (ts->use_irq) { + gtp_irq_enable(ts); + } +} + +/******************************************************* +Function: + Timer interrupt service routine for polling mode. +Input: + timer: timer struct pointer +Output: + Timer work mode. + HRTIMER_NORESTART: no restart mode +*********************************************************/ +static enum hrtimer_restart goodix_ts_timer_handler(struct hrtimer *timer) +{ + struct goodix_ts_data *ts = container_of(timer, struct goodix_ts_data, timer); + + GTP_DEBUG_FUNC(); + + queue_work(goodix_wq, &ts->work); + hrtimer_start(&ts->timer, ktime_set(0, (GTP_POLL_TIME+6)*1000000), HRTIMER_MODE_REL); + return HRTIMER_NORESTART; +} + +/******************************************************* +Function: + External interrupt service routine for interrupt mode. +Input: + irq: interrupt number. + dev_id: private data pointer +Output: + Handle Result. + IRQ_HANDLED: interrupt handled successfully +*********************************************************/ +static irqreturn_t goodix_ts_irq_handler(int irq, void *dev_id) +{ + struct goodix_ts_data *ts = dev_id; + + GTP_DEBUG_FUNC(); + + gtp_irq_disable(ts); + + queue_work(goodix_wq, &ts->work); + + return IRQ_HANDLED; +} +/******************************************************* +Function: + Synchronization. +Input: + ms: synchronization time in millisecond. +Output: + None. +*******************************************************/ +void gtp_int_sync(s32 ms) +{ + GTP_GPIO_OUTPUT(GTP_INT_PORT, 0); + msleep(ms); + GTP_GPIO_AS_INT(GTP_INT_PORT); +} + + +/******************************************************* +Function: + Reset chip. +Input: + ms: reset time in millisecond +Output: + None. +*******************************************************/ +void gtp_reset_guitar(struct i2c_client *client, s32 ms) +{ +#if GTP_COMPATIBLE_MODE + struct goodix_ts_data *ts = i2c_get_clientdata(client); +#endif + + GTP_DEBUG_FUNC(); + GTP_INFO("Guitar reset"); + GTP_GPIO_OUTPUT(GTP_RST_PORT, 0); // begin select I2C slave addr + msleep(ms); // T2: > 10ms + // HIGH: 0x28/0x29, LOW: 0xBA/0xBB + GTP_GPIO_OUTPUT(GTP_INT_PORT, client->addr == 0x14); + + msleep(2); // T3: > 100us + GTP_GPIO_OUTPUT(GTP_RST_PORT, 1); + + msleep(6); // T4: > 5ms + + GTP_GPIO_AS_INPUT(GTP_RST_PORT); // end select I2C slave addr + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + return; + } +#endif + + gtp_int_sync(50); +#if GTP_ESD_PROTECT + gtp_init_ext_watchdog(client); +#endif +} + +#if GTP_SLIDE_WAKEUP +/******************************************************* +Function: + Enter doze mode for sliding wakeup. +Input: + ts: goodix tp private data +Output: + 1: succeed, otherwise failed +*******************************************************/ +static s8 gtp_enter_doze(struct goodix_ts_data *ts) +{ + s8 ret = -1; + s8 retry = 0; + u8 i2c_control_buf[3] = {(u8)(GTP_REG_SLEEP >> 8), (u8)GTP_REG_SLEEP, 8}; + + GTP_DEBUG_FUNC(); + +#if GTP_DBL_CLK_WAKEUP + i2c_control_buf[2] = 0x09; +#endif + + gtp_irq_disable(ts); + + GTP_DEBUG("Entering doze mode."); + while(retry++ < 5) { + i2c_control_buf[0] = 0x80; + i2c_control_buf[1] = 0x46; + ret = gtp_i2c_write(ts->client, i2c_control_buf, 3); + if (ret < 0) { + GTP_DEBUG("failed to set doze flag into 0x8046, %d", retry); + continue; + } + i2c_control_buf[0] = 0x80; + i2c_control_buf[1] = 0x40; + ret = gtp_i2c_write(ts->client, i2c_control_buf, 3); + if (ret > 0) { + doze_status = DOZE_ENABLED; + GTP_INFO("GTP has been working in doze mode!"); + gtp_irq_enable(ts); + return ret; + } + msleep(10); + } + GTP_ERROR("GTP send doze cmd failed."); + gtp_irq_enable(ts); + return ret; +} +#else +/******************************************************* +Function: + Enter sleep mode. +Input: + ts: private data. +Output: + Executive outcomes. + 1: succeed, otherwise failed. +*******************************************************/ +static s8 gtp_enter_sleep(struct goodix_ts_data * ts) +{ + s8 ret = -1; + s8 retry = 0; + u8 i2c_control_buf[3] = {(u8)(GTP_REG_SLEEP >> 8), (u8)GTP_REG_SLEEP, 5}; + +#if GTP_COMPATIBLE_MODE + u8 status_buf[3] = {0x80, 0x44}; +#endif + + GTP_DEBUG_FUNC(); + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + // GT9XXF: host interact with ic + ret = gtp_i2c_read(ts->client, status_buf, 3); + if (ret < 0) { + GTP_ERROR("failed to get backup-reference status"); + } + + if (status_buf[2] & 0x80) { + ret = gtp_bak_ref_proc(ts, GTP_BAK_REF_STORE); + if (FAIL == ret) { + GTP_ERROR("failed to store bak_ref"); + } + } + } +#endif + + GTP_GPIO_OUTPUT(GTP_INT_PORT, 0); + msleep(5); + + while(retry++ < 5) { + ret = gtp_i2c_write(ts->client, i2c_control_buf, 3); + if (ret > 0) { + GTP_INFO("GTP enter sleep!"); + + return ret; + } + msleep(10); + } + GTP_ERROR("GTP send sleep cmd failed."); + return ret; +} +#endif +/******************************************************* +Function: + Wakeup from sleep. +Input: + ts: private data. +Output: + Executive outcomes. + >0: succeed, otherwise: failed. +*******************************************************/ +static s8 gtp_wakeup_sleep(struct goodix_ts_data * ts) +{ + u8 retry = 0; + s8 ret = -1; + + GTP_DEBUG_FUNC(); + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + u8 opr_buf[3] = {0x41, 0x80}; + + GTP_GPIO_OUTPUT(GTP_INT_PORT, 1); + msleep(5); + + for (retry = 0; retry < 20; ++retry) { + // hold ss51 & dsp + opr_buf[2] = 0x0C; + ret = gtp_i2c_write(ts->client, opr_buf, 3); + if (FAIL == ret) { + GTP_ERROR("failed to hold ss51 & dsp!"); + continue; + } + opr_buf[2] = 0x00; + ret = gtp_i2c_read(ts->client, opr_buf, 3); + if (FAIL == ret) { + GTP_ERROR("failed to get ss51 & dsp status!"); + continue; + } + if (0x0C != opr_buf[2]) { + GTP_DEBUG("ss51 & dsp not been hold, %d", retry+1); + continue; + } + GTP_DEBUG("ss51 & dsp confirmed hold"); + + ret = gtp_fw_startup(ts->client); + if (FAIL == ret) { + GTP_ERROR("failed to startup GT9XXF, process recovery"); + gtp_esd_recovery(ts->client); + } + break; + } + if (retry >= 10) { + GTP_ERROR("failed to wakeup, processing esd recovery"); + gtp_esd_recovery(ts->client); + } else { + GTP_INFO("GT9XXF gtp wakeup success"); + } + return ret; + } +#endif + +#if GTP_POWER_CTRL_SLEEP + while(retry++ < 5) { + gtp_reset_guitar(ts->client, 20); + + GTP_INFO("GTP wakeup sleep."); + return 1; + } +#else + while(retry++ < 10) { +#if GTP_SLIDE_WAKEUP + if (DOZE_WAKEUP != doze_status) { // wakeup not by slide + GTP_DEBUG("wakeup by power, reset guitar"); + doze_status = DOZE_DISABLED; + gtp_irq_disable(ts); + gtp_reset_guitar(ts->client, 10); + gtp_irq_enable(ts); + } else { // wakeup by slide + GTP_DEBUG("wakeup by slide/double-click, no reset guitar"); + doze_status = DOZE_DISABLED; +#if GTP_ESD_PROTECT + gtp_init_ext_watchdog(ts->client); +#endif + } + +#else + if (chip_gt9xxs == 1) { + gtp_reset_guitar(ts->client, 10); + } else { + GTP_GPIO_OUTPUT(GTP_INT_PORT, 1); + msleep(5); + } +#endif + + ret = gtp_i2c_test(ts->client); + if (ret > 0) { + GTP_INFO("GTP wakeup sleep."); + +#if (!GTP_SLIDE_WAKEUP) + if (chip_gt9xxs == 0) { + gtp_int_sync(25); +#if GTP_ESD_PROTECT + gtp_init_ext_watchdog(ts->client); +#endif + } +#endif + + return ret; + } + gtp_reset_guitar(ts->client, 20); + } +#endif + + GTP_ERROR("GTP wakeup sleep failed."); + return ret; +} +#if GTP_DRIVER_SEND_CFG +static s32 gtp_get_info(struct goodix_ts_data *ts) +{ + u8 opr_buf[6] = {0}; + s32 ret = 0; + + opr_buf[0] = (u8)((GTP_REG_CONFIG_DATA+1) >> 8); + opr_buf[1] = (u8)((GTP_REG_CONFIG_DATA+1) & 0xFF); + + ret = gtp_i2c_read(ts->client, opr_buf, 6); + if (ret < 0) { + return FAIL; + } + + ts->abs_x_max = (opr_buf[3] << 8) + opr_buf[2]; + ts->abs_y_max = (opr_buf[5] << 8) + opr_buf[4]; + + opr_buf[0] = (u8)((GTP_REG_CONFIG_DATA+6) >> 8); + opr_buf[1] = (u8)((GTP_REG_CONFIG_DATA+6) & 0xFF); + + ret = gtp_i2c_read(ts->client, opr_buf, 3); + if (ret < 0) { + return FAIL; + } + ts->int_trigger_type = opr_buf[2] & 0x03; + + GTP_INFO("X_MAX = %d, Y_MAX = %d, TRIGGER = 0x%02x", + ts->abs_x_max,ts->abs_y_max,ts->int_trigger_type); + + return SUCCESS; +} +#endif + +/******************************************************* +Function: + Initialize gtp. +Input: + ts: goodix private data +Output: + Executive outcomes. + 0: succeed, otherwise: failed +*******************************************************/ +static s32 gtp_init_panel(struct goodix_ts_data *ts) +{ + s32 ret = -1; + +#if GTP_DRIVER_SEND_CFG + s32 i = 0; + u8 check_sum = 0; + u8 opr_buf[16] = {0}; + u8 sensor_id = 0; + + u8 cfg_info_group1[] = CTP_CFG_GROUP1; + u8 cfg_info_group2[] = CTP_CFG_GROUP2; + u8 cfg_info_group3[] = CTP_CFG_GROUP3; + u8 cfg_info_group4[] = CTP_CFG_GROUP4; + u8 cfg_info_group5[] = CTP_CFG_GROUP5; + u8 cfg_info_group6[] = CTP_CFG_GROUP6; + u8 *send_cfg_buf[] = {cfg_info_group1, cfg_info_group2, cfg_info_group3, + cfg_info_group4, cfg_info_group5, cfg_info_group6 + }; + u8 cfg_info_len[] = { CFG_GROUP_LEN(cfg_info_group1), + CFG_GROUP_LEN(cfg_info_group2), + CFG_GROUP_LEN(cfg_info_group3), + CFG_GROUP_LEN(cfg_info_group4), + CFG_GROUP_LEN(cfg_info_group5), + CFG_GROUP_LEN(cfg_info_group6) + }; + + GTP_DEBUG_FUNC(); + GTP_DEBUG("Config Groups\' Lengths: %d, %d, %d, %d, %d, %d", + cfg_info_len[0], cfg_info_len[1], cfg_info_len[2], cfg_info_len[3], + cfg_info_len[4], cfg_info_len[5]); + + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + ts->fw_error = 0; + } else +#endif + { + ret = gtp_i2c_read_dbl_check(ts->client, 0x41E4, opr_buf, 1); + if (SUCCESS == ret) { + if (opr_buf[0] != 0xBE) { + ts->fw_error = 1; + GTP_ERROR("Firmware error, no config sent!"); + return -1; + } + } + } + + if ((!cfg_info_len[1]) && (!cfg_info_len[2]) && + (!cfg_info_len[3]) && (!cfg_info_len[4]) && + (!cfg_info_len[5])) { + sensor_id = 0; + } else { +#if GTP_COMPATIBLE_MODE + msleep(50); +#endif + ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_SENSOR_ID, &sensor_id, 1); + if (SUCCESS == ret) { + if (sensor_id >= 0x06) { + GTP_ERROR("Invalid sensor_id(0x%02X), No Config Sent!", sensor_id); + ts->pnl_init_error = 1; +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + return -1; + } else +#endif + { + gtp_get_info(ts); + } + return 0; + } + } else { + GTP_ERROR("Failed to get sensor_id, No config sent!"); + ts->pnl_init_error = 1; + return -1; + } + GTP_INFO("Sensor_ID: %d", sensor_id); + } + ts->gtp_cfg_len = cfg_info_len[sensor_id]; + GTP_INFO("CTP_CONFIG_GROUP%d used, config length: %d", sensor_id + 1, ts->gtp_cfg_len); + + if (ts->gtp_cfg_len < GTP_CONFIG_MIN_LENGTH) { + GTP_ERROR("Config Group%d is INVALID CONFIG GROUP(Len: %d)! NO Config Sent! You need to check you header file CFG_GROUP section!", sensor_id+1, ts->gtp_cfg_len); + ts->pnl_init_error = 1; + return -1; + } + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + ts->fixed_cfg = 0; + } else +#endif + { + ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_CONFIG_DATA, &opr_buf[0], 1); + + if (ret == SUCCESS) { + GTP_DEBUG("CFG_GROUP%d Config Version: %d, 0x%02X; IC Config Version: %d, 0x%02X", sensor_id+1, + send_cfg_buf[sensor_id][0], send_cfg_buf[sensor_id][0], opr_buf[0], opr_buf[0]); + + if (opr_buf[0] < 90) { + grp_cfg_version = send_cfg_buf[sensor_id][0]; // backup group config version + send_cfg_buf[sensor_id][0] = 0x00; + ts->fixed_cfg = 0; + } else { // treated as fixed config, not send config + GTP_INFO("Ic fixed config with config version(%d, 0x%02X)", opr_buf[0], opr_buf[0]); + ts->fixed_cfg = 1; + gtp_get_info(ts); + return 0; + } + } else { + GTP_ERROR("Failed to get ic config version!No config sent!"); + return -1; + } + } + + memset(&config[GTP_ADDR_LENGTH], 0, GTP_CONFIG_MAX_LENGTH); + memcpy(&config[GTP_ADDR_LENGTH], send_cfg_buf[sensor_id], ts->gtp_cfg_len); + +#if GTP_CUSTOM_CFG + config[RESOLUTION_LOC] = (u8)GTP_MAX_WIDTH; + config[RESOLUTION_LOC + 1] = (u8)(GTP_MAX_WIDTH>>8); + config[RESOLUTION_LOC + 2] = (u8)GTP_MAX_HEIGHT; + config[RESOLUTION_LOC + 3] = (u8)(GTP_MAX_HEIGHT>>8); + + if (GTP_INT_TRIGGER == 0) { //RISING + config[TRIGGER_LOC] &= 0xfe; + } else if (GTP_INT_TRIGGER == 1) { //FALLING + config[TRIGGER_LOC] |= 0x01; + } +#endif // GTP_CUSTOM_CFG + + check_sum = 0; + for (i = GTP_ADDR_LENGTH; i < ts->gtp_cfg_len; i++) { + check_sum += config[i]; + } + config[ts->gtp_cfg_len] = (~check_sum) + 1; + +#else // driver not send config + + ts->gtp_cfg_len = GTP_CONFIG_MAX_LENGTH; + ret = gtp_i2c_read(ts->client, config, ts->gtp_cfg_len + GTP_ADDR_LENGTH); + if (ret < 0) { + GTP_ERROR("Read Config Failed, Using Default Resolution & INT Trigger!"); + ts->abs_x_max = GTP_MAX_WIDTH; + ts->abs_y_max = GTP_MAX_HEIGHT; + ts->int_trigger_type = GTP_INT_TRIGGER; + } + +#endif // GTP_DRIVER_SEND_CFG + + if ((ts->abs_x_max == 0) && (ts->abs_y_max == 0)) { + ts->abs_x_max = (config[RESOLUTION_LOC + 1] << 8) + config[RESOLUTION_LOC]; + ts->abs_y_max = (config[RESOLUTION_LOC + 3] << 8) + config[RESOLUTION_LOC + 2]; + ts->int_trigger_type = (config[TRIGGER_LOC]) & 0x03; + } + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + u8 sensor_num = 0; + u8 driver_num = 0; + u8 have_key = 0; + + have_key = (config[GTP_REG_HAVE_KEY - GTP_REG_CONFIG_DATA + 2] & 0x01); + + if (1 == ts->is_950) { + driver_num = config[GTP_REG_MATRIX_DRVNUM - GTP_REG_CONFIG_DATA + 2]; + sensor_num = config[GTP_REG_MATRIX_SENNUM - GTP_REG_CONFIG_DATA + 2]; + if (have_key) { + driver_num--; + } + ts->bak_ref_len = (driver_num * (sensor_num - 1) + 2) * 2 * 6; + } else { + driver_num = (config[CFG_LOC_DRVA_NUM] & 0x1F) + (config[CFG_LOC_DRVB_NUM]&0x1F); + if (have_key) { + driver_num--; + } + sensor_num = (config[CFG_LOC_SENS_NUM] & 0x0F) + ((config[CFG_LOC_SENS_NUM] >> 4) & 0x0F); + ts->bak_ref_len = (driver_num * (sensor_num - 2) + 2) * 2; + } + + GTP_INFO("Drv * Sen: %d * %d(key: %d), X_MAX: %d, Y_MAX: %d, TRIGGER: 0x%02x", + driver_num, sensor_num, have_key, ts->abs_x_max,ts->abs_y_max,ts->int_trigger_type); + return 0; + } else +#endif + { +#if GTP_DRIVER_SEND_CFG + ret = gtp_send_cfg(ts->client); + if (ret < 0) { + GTP_ERROR("Send config error."); + } + // set config version to CTP_CFG_GROUP, for resume to send config + config[GTP_ADDR_LENGTH] = grp_cfg_version; + check_sum = 0; + for (i = GTP_ADDR_LENGTH; i < ts->gtp_cfg_len; i++) { + check_sum += config[i]; + } + config[ts->gtp_cfg_len] = (~check_sum) + 1; +#endif + GTP_INFO("X_MAX: %d, Y_MAX: %d, TRIGGER: 0x%02x", ts->abs_x_max,ts->abs_y_max,ts->int_trigger_type); + } + + msleep(10); + return 0; +} + +/******************************************************* +Function: + Read chip version. +Input: + client: i2c device + version: buffer to keep ic firmware version +Output: + read operation return. + 2: succeed, otherwise: failed +*******************************************************/ +s32 gtp_read_version(struct i2c_client *client, u16* version) +{ + s32 ret = -1; + u8 buf[8] = {GTP_REG_VERSION >> 8, GTP_REG_VERSION & 0xff}; + + GTP_DEBUG_FUNC(); + + ret = gtp_i2c_read(client, buf, sizeof(buf)); + if (ret < 0) { + GTP_ERROR("GTP read version failed"); + return ret; + } + + if (version) { + *version = (buf[7] << 8) | buf[6]; + } + + if (buf[5] == 0x00) { + GTP_INFO("IC Version: %c%c%c_%02x%02x", buf[2], buf[3], buf[4], buf[7], buf[6]); + } else { + if (buf[5] == 'S' || buf[5] == 's') { + chip_gt9xxs = 1; + } + GTP_INFO("IC Version: %c%c%c%c_%02x%02x", buf[2], buf[3], buf[4], buf[5], buf[7], buf[6]); + } + return ret; +} + +/******************************************************* +Function: + I2c test Function. +Input: + client:i2c client. +Output: + Executive outcomes. + 2: succeed, otherwise failed. +*******************************************************/ +static s8 gtp_i2c_test(struct i2c_client *client) +{ + u8 test[3] = {GTP_REG_CONFIG_DATA >> 8, GTP_REG_CONFIG_DATA & 0xff}; + u8 retry = 0; + s8 ret = -1; + + GTP_DEBUG_FUNC(); + + while(retry++ < 5) { + ret = gtp_i2c_read(client, test, 3); + if (ret > 0) { + return ret; + } + GTP_ERROR("GTP i2c test failed time %d.",retry); + msleep(10); + } + return ret; +} + +/******************************************************* +Function: + Request gpio(INT & RST) ports. +Input: + ts: private data. +Output: + Executive outcomes. + >= 0: succeed, < 0: failed +*******************************************************/ +static s8 gtp_request_io_port(struct goodix_ts_data *ts) +{ + s32 ret = 0; + + GTP_DEBUG_FUNC(); + ret = GTP_GPIO_REQUEST(GTP_INT_PORT, "GTP_INT_IRQ"); + if (ret < 0) { + GTP_ERROR("Failed to request GPIO:%d, ERRNO:%d", (s32)GTP_INT_PORT, ret); + ret = -ENODEV; + } else { + GTP_GPIO_AS_INT(GTP_INT_PORT); + ts->client->irq = GTP_INT_IRQ; + } + + ret = GTP_GPIO_REQUEST(GTP_RST_PORT, "GTP_RST_PORT"); + if (ret < 0) { + GTP_ERROR("Failed to request GPIO:%d, ERRNO:%d",(s32)GTP_RST_PORT,ret); + ret = -ENODEV; + } + + GTP_GPIO_AS_INPUT(GTP_RST_PORT); + + gtp_reset_guitar(ts->client, 20); + + if(ret < 0) { + GTP_GPIO_FREE(GTP_RST_PORT); + GTP_GPIO_FREE(GTP_INT_PORT); + } + + return ret; +} + +/******************************************************* +Function: + Request interrupt. +Input: + ts: private data. +Output: + Executive outcomes. + 0: succeed, -1: failed. +*******************************************************/ +static s8 gtp_request_irq(struct goodix_ts_data *ts) +{ + s32 ret = -1; + const u8 irq_table[] = GTP_IRQ_TAB; + + GTP_DEBUG_FUNC(); + GTP_DEBUG("INT trigger type:%x", ts->int_trigger_type); + + ret = request_irq(ts->client->irq, + goodix_ts_irq_handler, + irq_table[ts->int_trigger_type], + ts->client->name, + ts); + if (ret) { + GTP_ERROR("Request IRQ failed!ERRNO:%d.", ret); + GTP_GPIO_AS_INPUT(GTP_INT_PORT); + GTP_GPIO_FREE(GTP_INT_PORT); + + hrtimer_init(&ts->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + ts->timer.function = goodix_ts_timer_handler; + hrtimer_start(&ts->timer, ktime_set(1, 0), HRTIMER_MODE_REL); + return -1; + } else { + gtp_irq_disable(ts); + ts->use_irq = 1; + return 0; + } +} + +/******************************************************* +Function: + Request input device Function. +Input: + ts:private data. +Output: + Executive outcomes. + 0: succeed, otherwise: failed. +*******************************************************/ +static s8 gtp_request_input_dev(struct goodix_ts_data *ts) +{ + s8 ret = -1; + s8 phys[32]; +#if GTP_HAVE_TOUCH_KEY + u8 index = 0; +#endif + + GTP_DEBUG_FUNC(); + + ts->input_dev = input_allocate_device(); + if (ts->input_dev == NULL) { + GTP_ERROR("Failed to allocate input device."); + return -ENOMEM; + } + + ts->input_dev->evbit[0] = BIT_MASK(EV_SYN) | BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS) ; +#if GTP_ICS_SLOT_REPORT + __set_bit(INPUT_PROP_DIRECT, ts->input_dev->propbit); + input_mt_init_slots(ts->input_dev, 16); // in case of "out of memory" +#else + ts->input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); +#endif + +#if GTP_HAVE_TOUCH_KEY + for (index = 0; index < GTP_MAX_KEY_NUM; index++) { + input_set_capability(ts->input_dev, EV_KEY, touch_key_array[index]); + } +#endif + +#if GTP_SLIDE_WAKEUP + input_set_capability(ts->input_dev, EV_KEY, KEY_POWER); +#endif + +#if GTP_WITH_PEN + // pen support + __set_bit(BTN_TOOL_PEN, ts->input_dev->keybit); + __set_bit(INPUT_PROP_DIRECT, ts->input_dev->propbit); + //__set_bit(INPUT_PROP_POINTER, ts->input_dev->propbit); +#endif + +#if GTP_CHANGE_X2Y + GTP_SWAP(ts->abs_x_max, ts->abs_y_max); +#endif + + 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); + 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_TRACKING_ID, 0, 255, 0, 0); + + sprintf(phys, "input/ts"); + ts->input_dev->name = goodix_ts_name; + ts->input_dev->phys = 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; + + ret = input_register_device(ts->input_dev); + if (ret) { + GTP_ERROR("Register %s input device failed", ts->input_dev->name); + return -ENODEV; + } + + return 0; +} + +//************** For GT9XXF Start *************// +#if GTP_COMPATIBLE_MODE + +s32 gtp_fw_startup(struct i2c_client *client) +{ + u8 opr_buf[4]; + s32 ret = 0; + + //init sw WDT + opr_buf[0] = 0xAA; + ret = i2c_write_bytes(client, 0x8041, opr_buf, 1); + if (ret < 0) { + return FAIL; + } + + //release SS51 & DSP + opr_buf[0] = 0x00; + ret = i2c_write_bytes(client, 0x4180, opr_buf, 1); + if (ret < 0) { + return FAIL; + } + //int sync + gtp_int_sync(25); + + //check fw run status + ret = i2c_read_bytes(client, 0x8041, opr_buf, 1); + if (ret < 0) { + return FAIL; + } + if(0xAA == opr_buf[0]) { + GTP_ERROR("IC works abnormally,startup failed."); + return FAIL; + } else { + GTP_INFO("IC works normally, Startup success."); + opr_buf[0] = 0xAA; + i2c_write_bytes(client, 0x8041, opr_buf, 1); + return SUCCESS; + } +} + +static s32 gtp_esd_recovery(struct i2c_client *client) +{ + s32 retry = 0; + s32 ret = 0; + struct goodix_ts_data *ts; + + ts = i2c_get_clientdata(client); + + gtp_irq_disable(ts); + + GTP_INFO("GT9XXF esd recovery mode"); + gtp_reset_guitar(client, 20); // reset & select I2C addr + for (retry = 0; retry < 5; ++retry) { + ret = gup_fw_download_proc(NULL, GTP_FL_ESD_RECOVERY); + if (FAIL == ret) { + GTP_ERROR("esd recovery failed %d", retry+1); + continue; + } + ret = gtp_fw_startup(ts->client); + if (FAIL == ret) { + GTP_ERROR("GT9XXF start up failed %d", retry+1); + continue; + } + break; + } + gtp_irq_enable(ts); + + if (retry >= 5) { + GTP_ERROR("failed to esd recovery"); + return FAIL; + } + + GTP_INFO("Esd recovery successful"); + return SUCCESS; +} + +void gtp_recovery_reset(struct i2c_client *client) +{ +#if GTP_ESD_PROTECT + gtp_esd_switch(client, SWITCH_OFF); +#endif + GTP_DEBUG_FUNC(); + + gtp_esd_recovery(client); + +#if GTP_ESD_PROTECT + gtp_esd_switch(client, SWITCH_ON); +#endif +} + +static s32 gtp_bak_ref_proc(struct goodix_ts_data *ts, u8 mode) +{ + s32 ret = 0; + s32 i = 0; + s32 j = 0; + u16 ref_sum = 0; + u16 learn_cnt = 0; + u16 chksum = 0; + s32 ref_seg_len = 0; + s32 ref_grps = 0; + struct file *ref_filp = NULL; + u8 *p_bak_ref; + + ret = gup_check_fs_mounted("/data"); + if (FAIL == ret) { + ts->ref_chk_fs_times++; + GTP_DEBUG("Ref check /data times/MAX_TIMES: %d / %d", ts->ref_chk_fs_times, GTP_CHK_FS_MNT_MAX); + if (ts->ref_chk_fs_times < GTP_CHK_FS_MNT_MAX) { + msleep(50); + GTP_INFO("/data not mounted."); + return FAIL; + } + GTP_INFO("check /data mount timeout..."); + } else { + GTP_INFO("/data mounted!!!(%d/%d)", ts->ref_chk_fs_times, GTP_CHK_FS_MNT_MAX); + } + + p_bak_ref = (u8 *)kzalloc(ts->bak_ref_len, GFP_KERNEL); + + if (NULL == p_bak_ref) { + GTP_ERROR("Allocate memory for p_bak_ref failed!"); + return FAIL; + } + + if (ts->is_950) { + ref_seg_len = ts->bak_ref_len / 6; + ref_grps = 6; + } else { + ref_seg_len = ts->bak_ref_len; + ref_grps = 1; + } + ref_filp = filp_open(GTP_BAK_REF_PATH, O_RDWR | O_CREAT, 0666); + if (IS_ERR(ref_filp)) { + GTP_INFO("%s is unavailable, default backup-reference used", GTP_BAK_REF_PATH); + goto bak_ref_default; + } + + switch (mode) { + case GTP_BAK_REF_SEND: + GTP_INFO("Send backup-reference"); + ref_filp->f_op->llseek(ref_filp, 0, SEEK_SET); + ret = ref_filp->f_op->read(ref_filp, (char*)p_bak_ref, ts->bak_ref_len, &ref_filp->f_pos); + if (ret < 0) { + GTP_ERROR("failed to read bak_ref info from file, sending defualt bak_ref"); + goto bak_ref_default; + } + for (j = 0; j < ref_grps; ++j) { + ref_sum = 0; + for (i = 0; i < (ref_seg_len); i += 2) { + ref_sum += (p_bak_ref[i + j * ref_seg_len] << 8) + p_bak_ref[i+1 + j * ref_seg_len]; + } + learn_cnt = (p_bak_ref[j * ref_seg_len + ref_seg_len -4] << 8) + (p_bak_ref[j * ref_seg_len + ref_seg_len -3]); + chksum = (p_bak_ref[j * ref_seg_len + ref_seg_len -2] << 8) + (p_bak_ref[j * ref_seg_len + ref_seg_len -1]); + GTP_DEBUG("learn count = %d", learn_cnt); + GTP_DEBUG("chksum = %d", chksum); + GTP_DEBUG("ref_sum = 0x%04X", ref_sum & 0xFFFF); + // Sum(1~ref_seg_len) == 1 + if (1 != ref_sum) { + GTP_INFO("wrong chksum for bak_ref, reset to 0x00 bak_ref"); + memset(&p_bak_ref[j * ref_seg_len], 0, ref_seg_len); + p_bak_ref[ref_seg_len + j * ref_seg_len - 1] = 0x01; + } else { + if (j == (ref_grps - 1)) { + GTP_INFO("backup-reference data in %s used", GTP_BAK_REF_PATH); + } + } + } + ret = i2c_write_bytes(ts->client, GTP_REG_BAK_REF, p_bak_ref, ts->bak_ref_len); + if (FAIL == ret) { + GTP_ERROR("failed to send bak_ref because of iic comm error"); + filp_close(ref_filp, NULL); + return FAIL; + } + break; + + case GTP_BAK_REF_STORE: + GTP_INFO("Store backup-reference"); + ret = i2c_read_bytes(ts->client, GTP_REG_BAK_REF, p_bak_ref, ts->bak_ref_len); + if (ret < 0) { + GTP_ERROR("failed to read bak_ref info, sending default back-reference"); + goto bak_ref_default; + } + ref_filp->f_op->llseek(ref_filp, 0, SEEK_SET); + ref_filp->f_op->write(ref_filp, (char*)p_bak_ref, ts->bak_ref_len, &ref_filp->f_pos); + break; + + default: + GTP_ERROR("invalid backup-reference request"); + break; + } + filp_close(ref_filp, NULL); + return SUCCESS; + +bak_ref_default: + + for (j = 0; j < ref_grps; ++j) { + memset(&p_bak_ref[j * ref_seg_len], 0, ref_seg_len); + p_bak_ref[j * ref_seg_len + ref_seg_len - 1] = 0x01; // checksum = 1 + } + ret = i2c_write_bytes(ts->client, GTP_REG_BAK_REF, p_bak_ref, ts->bak_ref_len); + if (!IS_ERR(ref_filp)) { + GTP_INFO("write backup-reference data into %s", GTP_BAK_REF_PATH); + ref_filp->f_op->llseek(ref_filp, 0, SEEK_SET); + ref_filp->f_op->write(ref_filp, (char*)p_bak_ref, ts->bak_ref_len, &ref_filp->f_pos); + filp_close(ref_filp, NULL); + } + if (ret == FAIL) { + GTP_ERROR("failed to load the default backup reference"); + return FAIL; + } + return SUCCESS; +} + + +static s32 gtp_verify_main_clk(u8 *p_main_clk) +{ + u8 chksum = 0; + u8 main_clock = p_main_clk[0]; + s32 i = 0; + + if (main_clock < 50 || main_clock > 120) { + return FAIL; + } + + for (i = 0; i < 5; ++i) { + if (main_clock != p_main_clk[i]) { + return FAIL; + } + chksum += p_main_clk[i]; + } + chksum += p_main_clk[5]; + if ( (chksum) == 0) { + return SUCCESS; + } else { + return FAIL; + } +} + +static s32 gtp_main_clk_proc(struct goodix_ts_data *ts) +{ + s32 ret = 0; + s32 i = 0; + s32 clk_chksum = 0; + struct file *clk_filp = NULL; + u8 p_main_clk[6] = {0}; + + ret = gup_check_fs_mounted("/data"); + if (FAIL == ret) { + ts->clk_chk_fs_times++; + GTP_DEBUG("Clock check /data times/MAX_TIMES: %d / %d", ts->clk_chk_fs_times, GTP_CHK_FS_MNT_MAX); + if (ts->clk_chk_fs_times < GTP_CHK_FS_MNT_MAX) { + msleep(50); + GTP_INFO("/data not mounted."); + return FAIL; + } + GTP_INFO("Check /data mount timeout!"); + } else { + GTP_INFO("/data mounted!!!(%d/%d)", ts->clk_chk_fs_times, GTP_CHK_FS_MNT_MAX); + } + + clk_filp = filp_open(GTP_MAIN_CLK_PATH, O_RDWR | O_CREAT, 0666); + if (IS_ERR(clk_filp)) { + GTP_ERROR("%s is unavailable, calculate main clock", GTP_MAIN_CLK_PATH); + } else { + clk_filp->f_op->llseek(clk_filp, 0, SEEK_SET); + clk_filp->f_op->read(clk_filp, (char *)p_main_clk, 6, &clk_filp->f_pos); + + ret = gtp_verify_main_clk(p_main_clk); + if (FAIL == ret) { + // recalculate main clock & rewrite main clock data to file + GTP_ERROR("main clock data in %s is wrong, recalculate main clock", GTP_MAIN_CLK_PATH); + } else { + GTP_INFO("main clock data in %s used, main clock freq: %d", GTP_MAIN_CLK_PATH, p_main_clk[0]); + filp_close(clk_filp, NULL); + goto update_main_clk; + } + } + +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_OFF); +#endif + ret = gup_clk_calibration(); + gtp_esd_recovery(ts->client); + +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_ON); +#endif + + GTP_INFO("calibrate main clock: %d", ret); + if (ret < 50 || ret > 120) { + GTP_ERROR("wrong main clock: %d", ret); + goto exit_main_clk; + } + + // Sum{0x8020~0x8025} = 0 + for (i = 0; i < 5; ++i) { + p_main_clk[i] = ret; + clk_chksum += p_main_clk[i]; + } + p_main_clk[5] = 0 - clk_chksum; + + if (!IS_ERR(clk_filp)) { + GTP_DEBUG("write main clock data into %s", GTP_MAIN_CLK_PATH); + clk_filp->f_op->llseek(clk_filp, 0, SEEK_SET); + clk_filp->f_op->write(clk_filp, (char *)p_main_clk, 6, &clk_filp->f_pos); + filp_close(clk_filp, NULL); + } + +update_main_clk: + ret = i2c_write_bytes(ts->client, GTP_REG_MAIN_CLK, p_main_clk, 6); + if (FAIL == ret) { + GTP_ERROR("update main clock failed!"); + return FAIL; + } + return SUCCESS; + +exit_main_clk: + if (!IS_ERR(clk_filp)) { + filp_close(clk_filp, NULL); + } + return FAIL; +} + +s32 gtp_gt9xxf_init(struct i2c_client *client) +{ + s32 ret = 0; + + ret = gup_fw_download_proc(NULL, GTP_FL_FW_BURN); + if (FAIL == ret) { + return FAIL; + } + + ret = gtp_fw_startup(client); + if (FAIL == ret) { + return FAIL; + } + return SUCCESS; +} + +void gtp_get_chip_type(struct goodix_ts_data *ts) +{ + u8 opr_buf[10] = {0x00}; + s32 ret = 0; + + msleep(10); + + ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_CHIP_TYPE, opr_buf, 10); + + if (FAIL == ret) { + GTP_ERROR("Failed to get chip-type, set chip type default: GOODIX_GT9"); + ts->chip_type = CHIP_TYPE_GT9; + return; + } + + if (!memcmp(opr_buf, "GOODIX_GT9", 10)) { + ts->chip_type = CHIP_TYPE_GT9; + } else { // GT9XXF + ts->chip_type = CHIP_TYPE_GT9F; + } + GTP_INFO("Chip Type: %s", (ts->chip_type == CHIP_TYPE_GT9) ? "GOODIX_GT9" : "GOODIX_GT9F"); +} + +#endif +//************* For GT9XXF End ************// + +/******************************************************* +Function: + I2c probe. +Input: + client: i2c device struct. + id: device id. +Output: + Executive outcomes. + 0: succeed. +*******************************************************/ +static int goodix_ts_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + s32 ret = -1; + struct goodix_ts_data *ts; + u16 version_info; + + GTP_DEBUG_FUNC(); + + //do NOT remove these logs + GTP_INFO("GTP Driver Version: %s", GTP_DRIVER_VERSION); + GTP_INFO("GTP Driver Built@%s, %s", __TIME__, __DATE__); + GTP_INFO("GTP I2C Address: 0x%02x", client->addr); + + i2c_connect_client = client; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + GTP_ERROR("I2C check functionality failed."); + return -ENODEV; + } + ts = kzalloc(sizeof(*ts), GFP_KERNEL); + if (ts == NULL) { + GTP_ERROR("Alloc GFP_KERNEL memory failed."); + return -ENOMEM; + } + + memset(ts, 0, sizeof(*ts)); + INIT_WORK(&ts->work, goodix_ts_work_func); + ts->client = client; + spin_lock_init(&ts->irq_lock); // 2.6.39 later + // ts->irq_lock = SPIN_LOCK_UNLOCKED; // 2.6.39 & before +#if GTP_ESD_PROTECT + ts->clk_tick_cnt = 2 * HZ; // HZ: clock ticks in 1 second generated by system + GTP_DEBUG("Clock ticks for an esd cycle: %d", ts->clk_tick_cnt); + spin_lock_init(&ts->esd_lock); + // ts->esd_lock = SPIN_LOCK_UNLOCKED; +#endif + i2c_set_clientdata(client, ts); + + ts->gtp_rawdiff_mode = 0; + + ret = gtp_request_io_port(ts); + if (ret < 0) { + GTP_ERROR("GTP request IO port failed."); + kfree(ts); + return ret; + } + +#if GTP_COMPATIBLE_MODE + gtp_get_chip_type(ts); + + if (CHIP_TYPE_GT9F == ts->chip_type) { + ret = gtp_gt9xxf_init(ts->client); + if (FAIL == ret) { + GTP_INFO("Failed to init GT9XXF."); + } + } +#endif + + ret = gtp_i2c_test(client); + if (ret < 0) { + GTP_ERROR("I2C communication ERROR!"); + } + + ret = gtp_read_version(client, &version_info); + if (ret < 0) { + GTP_ERROR("Read version failed."); + } + + ret = gtp_init_panel(ts); + if (ret < 0) { + GTP_ERROR("GTP init panel failed."); + ts->abs_x_max = GTP_MAX_WIDTH; + ts->abs_y_max = GTP_MAX_HEIGHT; + ts->int_trigger_type = GTP_INT_TRIGGER; + } + +#if GTP_AUTO_UPDATE + ret = gup_init_update_proc(ts); + if (ret < 0) { + GTP_ERROR("Create update thread error."); + } +#endif + + ret = gtp_request_input_dev(ts); + if (ret < 0) { + GTP_ERROR("GTP request input dev failed"); + } + +#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 + + ret = gtp_request_irq(ts); + if (ret < 0) { + GTP_INFO("GTP works in polling mode."); + } else { + GTP_INFO("GTP works in interrupt mode."); + } + + if (ts->use_irq) { + gtp_irq_enable(ts); + } + +#if GTP_CREATE_WR_NODE + init_wr_node(client); +#endif + +#if GTP_ESD_PROTECT + gtp_esd_switch(client, SWITCH_ON); +#endif + return 0; +} + + +/******************************************************* +Function: + Goodix touchscreen driver release function. +Input: + client: i2c device struct. +Output: + Executive outcomes. 0---succeed. +*******************************************************/ +static int goodix_ts_remove(struct i2c_client *client) +{ + struct goodix_ts_data *ts = i2c_get_clientdata(client); + + GTP_DEBUG_FUNC(); + +#ifdef CONFIG_HAS_EARLYSUSPEND + unregister_early_suspend(&ts->early_suspend); +#endif + +#if GTP_CREATE_WR_NODE + uninit_wr_node(); +#endif + +#if GTP_ESD_PROTECT + destroy_workqueue(gtp_esd_check_workqueue); +#endif + + if (ts) { + if (ts->use_irq) { + GTP_GPIO_AS_INPUT(GTP_INT_PORT); + GTP_GPIO_FREE(GTP_INT_PORT); + free_irq(client->irq, ts); + } else { + hrtimer_cancel(&ts->timer); + } + } + + GTP_INFO("GTP driver removing..."); + i2c_set_clientdata(client, NULL); + input_unregister_device(ts->input_dev); + kfree(ts); + + return 0; +} + +#ifdef CONFIG_HAS_EARLYSUSPEND +/******************************************************* +Function: + Early suspend function. +Input: + h: early_suspend struct. +Output: + None. +*******************************************************/ +static void goodix_ts_early_suspend(struct early_suspend *h) +{ + struct goodix_ts_data *ts; + s8 ret = -1; + ts = container_of(h, struct goodix_ts_data, early_suspend); + + GTP_DEBUG_FUNC(); + +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_OFF); +#endif + ts->gtp_is_suspend = 1; + +#if GTP_SLIDE_WAKEUP + ret = gtp_enter_doze(ts); +#else + if (ts->use_irq) { + gtp_irq_disable(ts); + } else { + hrtimer_cancel(&ts->timer); + } + ret = gtp_enter_sleep(ts); +#endif + if (ret < 0) { + GTP_ERROR("GTP early suspend failed."); + } + // to avoid waking up while not sleeping + // delay 48 + 10ms to ensure reliability + msleep(58); +} + +/******************************************************* +Function: + Late resume function. +Input: + h: early_suspend struct. +Output: + None. +*******************************************************/ +static void goodix_ts_late_resume(struct early_suspend *h) +{ + struct goodix_ts_data *ts; + s8 ret = -1; + ts = container_of(h, struct goodix_ts_data, early_suspend); + + GTP_DEBUG_FUNC(); + + ret = gtp_wakeup_sleep(ts); + +#if GTP_SLIDE_WAKEUP + doze_status = DOZE_DISABLED; +#endif + + if (ret < 0) { + GTP_ERROR("GTP later resume failed."); + } +#if (GTP_COMPATIBLE_MODE) + if (CHIP_TYPE_GT9F == ts->chip_type) { + // do nothing + } else +#endif + { + gtp_send_cfg(ts->client); + } + + if (ts->use_irq) { + gtp_irq_enable(ts); + } else { + hrtimer_start(&ts->timer, ktime_set(1, 0), HRTIMER_MODE_REL); + } + + ts->gtp_is_suspend = 0; +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_ON); +#endif +} +#endif + +#if GTP_ESD_PROTECT +s32 gtp_i2c_read_no_rst(struct i2c_client *client, u8 *buf, s32 len) +{ + struct i2c_msg msgs[2]; + s32 ret=-1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msgs[0].flags = !I2C_M_RD; + msgs[0].addr = client->addr; + msgs[0].len = GTP_ADDR_LENGTH; + msgs[0].buf = &buf[0]; + //msgs[0].scl_rate = 300 * 1000; // for Rockchip, etc. + + msgs[1].flags = I2C_M_RD; + msgs[1].addr = client->addr; + msgs[1].len = len - GTP_ADDR_LENGTH; + msgs[1].buf = &buf[GTP_ADDR_LENGTH]; + //msgs[1].scl_rate = 300 * 1000; + + while(retries < 5) { + ret = i2c_transfer(client->adapter, msgs, 2); + if(ret == 2)break; + retries++; + } + if ((retries >= 5)) { + GTP_ERROR("I2C Read: 0x%04X, %d bytes failed, errcode: %d!", (((u16)(buf[0] << 8)) | buf[1]), len-2, ret); + } + return ret; +} + +s32 gtp_i2c_write_no_rst(struct i2c_client *client,u8 *buf,s32 len) +{ + struct i2c_msg msg; + s32 ret = -1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msg.flags = !I2C_M_RD; + msg.addr = client->addr; + msg.len = len; + msg.buf = buf; + //msg.scl_rate = 300 * 1000; // for Rockchip, etc + + while(retries < 5) { + ret = i2c_transfer(client->adapter, &msg, 1); + if (ret == 1)break; + retries++; + } + if((retries >= 5)) { + GTP_ERROR("I2C Write: 0x%04X, %d bytes failed, errcode: %d!", (((u16)(buf[0] << 8)) | buf[1]), len-2, ret); + } + return ret; +} +/******************************************************* +Function: + switch on & off esd delayed work +Input: + client: i2c device + on: SWITCH_ON / SWITCH_OFF +Output: + void +*********************************************************/ +void gtp_esd_switch(struct i2c_client *client, s32 on) +{ + struct goodix_ts_data *ts; + + ts = i2c_get_clientdata(client); + spin_lock(&ts->esd_lock); + + if (SWITCH_ON == on) { // switch on esd + if (!ts->esd_running) { + ts->esd_running = 1; + spin_unlock(&ts->esd_lock); + GTP_INFO("Esd started"); + queue_delayed_work(gtp_esd_check_workqueue, >p_esd_check_work, ts->clk_tick_cnt); + } else { + spin_unlock(&ts->esd_lock); + } + } else { // switch off esd + if (ts->esd_running) { + ts->esd_running = 0; + spin_unlock(&ts->esd_lock); + GTP_INFO("Esd cancelled"); + cancel_delayed_work_sync(>p_esd_check_work); + } else { + spin_unlock(&ts->esd_lock); + } + } +} + +/******************************************************* +Function: + Initialize external watchdog for esd protect +Input: + client: i2c device. +Output: + result of i2c write operation. + 1: succeed, otherwise: failed +*********************************************************/ +static s32 gtp_init_ext_watchdog(struct i2c_client *client) +{ + u8 opr_buffer[3] = {0x80, 0x41, 0xAA}; + GTP_DEBUG("[Esd]Init external watchdog"); + return gtp_i2c_write_no_rst(client, opr_buffer, 3); +} + +/******************************************************* +Function: + Esd protect function. + External watchdog added by meta, 2013/03/07 +Input: + work: delayed work +Output: + None. +*******************************************************/ +static void gtp_esd_check_func(struct work_struct *work) +{ + s32 i; + s32 ret = -1; + struct goodix_ts_data *ts = NULL; + u8 esd_buf[4] = {0x80, 0x40}; + + GTP_DEBUG_FUNC(); + + ts = i2c_get_clientdata(i2c_connect_client); + + if (ts->gtp_is_suspend) { + GTP_INFO("Esd suspended!"); + return; + } + + for (i = 0; i < 3; i++) { + ret = gtp_i2c_read_no_rst(ts->client, esd_buf, 4); + + GTP_DEBUG("[Esd]0x8040 = 0x%02X, 0x8041 = 0x%02X", esd_buf[2], esd_buf[3]); + if ((ret < 0)) { + // IIC communication problem + continue; + } else { + if ((esd_buf[2] == 0xAA) || (esd_buf[3] != 0xAA)) { + // IC works abnormally.. + u8 chk_buf[4] = {0x80, 0x40}; + + gtp_i2c_read_no_rst(ts->client, chk_buf, 4); + + GTP_DEBUG("[Check]0x8040 = 0x%02X, 0x8041 = 0x%02X", chk_buf[2], chk_buf[3]); + + if ((chk_buf[2] == 0xAA) || (chk_buf[3] != 0xAA)) { + i = 3; + break; + } else { + continue; + } + } else { + // IC works normally, Write 0x8040 0xAA, feed the dog + esd_buf[2] = 0xAA; + gtp_i2c_write_no_rst(ts->client, esd_buf, 3); + break; + } + } + } + if (i >= 3) { +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + if (ts->rqst_processing) { + GTP_INFO("Request processing, no esd recovery"); + } else { + GTP_ERROR("IC working abnormally! Process esd recovery."); + gtp_esd_recovery(ts->client); + } + } else +#endif + { + GTP_ERROR("IC working abnormally! Process reset guitar."); + gtp_reset_guitar(ts->client, 50); + } + } + + if(!ts->gtp_is_suspend) { + queue_delayed_work(gtp_esd_check_workqueue, >p_esd_check_work, ts->clk_tick_cnt); + } else { + GTP_INFO("Esd suspended!"); + } + return; +} +#endif + +static const struct i2c_device_id goodix_ts_id[] = { + { GTP_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_early_suspend, + .resume = goodix_ts_late_resume, +#endif + .id_table = goodix_ts_id, + .driver = { + .name = GTP_I2C_NAME, + .owner = THIS_MODULE, + }, +}; + +/******************************************************* +Function: + Driver Install function. +Input: + None. +Output: + Executive Outcomes. 0---succeed. +********************************************************/ +static int /*__devinit*/ goodix_ts_init(void) +{ + s32 ret; + + GTP_DEBUG_FUNC(); + GTP_INFO("GTP driver installing..."); + goodix_wq = create_singlethread_workqueue("goodix_wq"); + if (!goodix_wq) { + GTP_ERROR("Creat workqueue failed."); + return -ENOMEM; + } +#if GTP_ESD_PROTECT + INIT_DELAYED_WORK(>p_esd_check_work, gtp_esd_check_func); + gtp_esd_check_workqueue = create_workqueue("gtp_esd_check"); +#endif + ret = i2c_add_driver(&goodix_ts_driver); + return ret; +} + +/******************************************************* +Function: + Driver uninstall function. +Input: + None. +Output: + Executive Outcomes. 0---succeed. +********************************************************/ +static void __exit goodix_ts_exit(void) +{ + GTP_DEBUG_FUNC(); + GTP_INFO("GTP driver exited."); + i2c_del_driver(&goodix_ts_driver); + if (goodix_wq) { + destroy_workqueue(goodix_wq); + } +} + +late_initcall(goodix_ts_init); +module_exit(goodix_ts_exit); + +MODULE_DESCRIPTION("GTP Series Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/goodix/gt9xx.h b/drivers/input/touchscreen/goodix/gt9xx.h new file mode 100644 index 00000000..8dac7063 --- /dev/null +++ b/drivers/input/touchscreen/goodix/gt9xx.h @@ -0,0 +1,340 @@ +/* drivers/input/touchscreen/gt9xx.h + * + * 2010 - 2013 Goodix Technology. + * + * 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 a reference + * to you, when you are integrating the GOODiX's CTP IC into your system, + * 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 _GOODIX_GT9XX_H_ +#define _GOODIX_GT9XX_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//***************************PART1:ON/OFF define******************************* +#define GTP_CUSTOM_CFG 0 +#define GTP_CHANGE_X2Y 0 +#define GTP_DRIVER_SEND_CFG 1 +#define GTP_HAVE_TOUCH_KEY 0 +#define GTP_POWER_CTRL_SLEEP 0 +#define GTP_ICS_SLOT_REPORT 0 + +#define GTP_AUTO_UPDATE 1 // auto update fw by .bin file as default +#define GTP_HEADER_FW_UPDATE 0 // auto update fw by gtp_default_FW in gt9xx_firmware.h, function together with GTP_AUTO_UPDATE +#define GTP_AUTO_UPDATE_CFG 0 // auto update config by .cfg file, function together with GTP_AUTO_UPDATE + +#define GTP_COMPATIBLE_MODE 0 // compatible with GT9XXF + +#define GTP_CREATE_WR_NODE 1 +#define GTP_ESD_PROTECT 0 // esd protection with a cycle of 2 seconds +#define GTP_WITH_PEN 0 + +#define GTP_SLIDE_WAKEUP 0 +#define GTP_DBL_CLK_WAKEUP 0 // double-click wakeup, function together with GTP_SLIDE_WAKEUP + +#define GTP_DEBUG_ON 0 +#define GTP_DEBUG_ARRAY_ON 0 +#define GTP_DEBUG_FUNC_ON 0 + +#if GTP_COMPATIBLE_MODE +typedef enum { + CHIP_TYPE_GT9 = 0, + CHIP_TYPE_GT9F = 1, +} CHIP_TYPE_T; +#endif + +struct goodix_ts_data { + spinlock_t irq_lock; + struct i2c_client *client; + struct input_dev *input_dev; + struct hrtimer timer; + struct work_struct work; + struct early_suspend early_suspend; + s32 irq_is_disable; + s32 use_irq; + u16 abs_x_max; + u16 abs_y_max; + u8 max_touch_num; + u8 int_trigger_type; + u8 green_wake_mode; + u8 enter_update; + u8 gtp_is_suspend; + u8 gtp_rawdiff_mode; + u8 gtp_cfg_len; + u8 fixed_cfg; + u8 fw_error; + u8 pnl_init_error; + +#if GTP_ESD_PROTECT + spinlock_t esd_lock; + u8 esd_running; + s32 clk_tick_cnt; +#endif + +#if GTP_COMPATIBLE_MODE + u16 bak_ref_len; + s32 ref_chk_fs_times; + s32 clk_chk_fs_times; + CHIP_TYPE_T chip_type; + u8 rqst_processing; + u8 is_950; +#endif + +}; + +extern u16 show_len; +extern u16 total_len; + + +//*************************** PART2:TODO define ********************************** +// STEP_1(REQUIRED): Define Configuration Information Group(s) +// Sensor_ID Map: +/* sensor_opt1 sensor_opt2 Sensor_ID + GND GND 0 + VDDIO GND 1 + NC GND 2 + GND NC/300K 3 + VDDIO NC/300K 4 + NC NC/300K 5 +*/ +// TODO: define your own default or for Sensor_ID == 0 config here. +// unused group7: GT911_Config_20130701_185822_QDTP.cfg +#define CTP_CFG_GROUP7 {\ + 0x42,0xFC,0x03,0x00,0x03,0x05,0x39,0x00,0x01,0x3F,\ + 0x1C,0x0F,0x50,0x32,0x03,0x05,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x17,0x19,0x1C,0x14,0x8C,0x2E,0x0E,\ + 0x28,0x2A,0x7C,0x08,0x00,0x00,0x00,0x9B,0x02,0x1D,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x1E,0x46,0x94,0x05,0x02,0x08,0x00,0x00,0xF9,\ + 0x08,0x1C,0xA2,0x09,0x1E,0x22,0x0A,0x23,0xFC,0x0A,\ + 0x26,0xA5,0x0C,0x26,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x1C,0x1A,0x18,0x16,0x14,0x12,0x10,0x0E,\ + 0x0C,0x0A,0x08,0x06,0x04,0x02,0xFF,0xFF,0xFF,0xFF,\ + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\ + 0xFF,0xFF,0x2A,0x29,0x28,0x26,0x24,0x22,0x21,0x20,\ + 0x1F,0x1E,0x1D,0x1C,0x18,0x16,0x14,0x13,0x12,0x10,\ + 0x0F,0x0C,0x0A,0x08,0x06,0x04,0x02,0x00,0xFF,0xFF,\ + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\ + 0xFF,0xFF,0xFF,0xFF,0x92,0x01\ + } + +// TODO: define your config for Sensor_ID == 1 here, if needed +// unused group8: GT911_Config_20130701_185822_QDTP.cfg (mirror_x_y) +#define CTP_CFG_GROUP8 {\ + 0x42,0xFC,0x03,0x00,0x03,0x05,0x39,0x00,0x01,0x3F,\ + 0x1C,0x0F,0x50,0x32,0x03,0x05,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x17,0x19,0x1C,0x14,0x8C,0x2E,0x0E,\ + 0x28,0x2A,0x7C,0x08,0x00,0x00,0x00,0x9B,0x02,0x1D,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x1E,0x46,0x94,0x05,0x02,0x08,0x00,0x00,0xF9,\ + 0x08,0x1C,0xA2,0x09,0x1E,0x22,0x0A,0x23,0xFC,0x0A,\ + 0x26,0xA5,0x0C,0x26,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x02,0x04,0x06,0x08,0x0A,0x0C,0x0E,0x10,\ + 0x12,0x14,0x16,0x18,0x1A,0x1C,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x02,0x04,0x06,0x08,0x0A,0x0C,0x0F,\ + 0x10,0x12,0x13,0x14,0x16,0x18,0x1C,0x1D,0x1E,0x1F,\ + 0x20,0x21,0x22,0x24,0x26,0x28,0x29,0x2A,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x72,0x01\ + } + +// TODO: define your config for Sensor_ID == 1 here, if needed +// group1 is in use: GT911_Config_20130701_185822_QDTP.cfg (mirror_x_y & x_2_y) +#define CTP_CFG_GROUP1 {\ + 0x42,0xFC,0x03,0x00,0x03,0x05,0x35,0x00,0x01,0x3F,\ + 0x1C,0x0F,0x50,0x32,0x03,0x05,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x17,0x19,0x1C,0x14,0x8C,0x2E,0x0E,\ + 0x28,0x2A,0x7C,0x08,0x00,0x00,0x00,0x9B,0x02,0x1D,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x1E,0x46,0x94,0x05,0x02,0x08,0x00,0x00,0xF9,\ + 0x08,0x1C,0xA2,0x09,0x1E,0x22,0x0A,0x23,0xFC,0x0A,\ + 0x26,0xA5,0x0C,0x26,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x02,0x04,0x06,0x08,0x0A,0x0C,0x0E,0x10,\ + 0x12,0x14,0x16,0x18,0x1A,0x1C,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x02,0x04,0x06,0x08,0x0A,0x0C,0x0F,\ + 0x10,0x12,0x13,0x14,0x16,0x18,0x1C,0x1D,0x1E,0x1F,\ + 0x20,0x21,0x22,0x24,0x26,0x28,0x29,0x2A,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x76,0x01\ + } + +// TODO: define your config for Sensor_ID == 2 here, if needed +#define CTP_CFG_GROUP2 {\ + } + +// TODO: define your config for Sensor_ID == 2 here, if needed +#define CTP_CFG_GROUP3 {\ + } + +// TODO: define your config for Sensor_ID == 3 here, if needed +#define CTP_CFG_GROUP4 {\ + } + +// TODO: define your config for Sensor_ID == 4 here, if needed +#define CTP_CFG_GROUP5 {\ + } + +// TODO: define your config for Sensor_ID == 5 here, if needed +#define CTP_CFG_GROUP6 {\ + } + +// STEP_2(REQUIRED): Customize your I/O ports & I/O operations +#define GTP_RST_PORT GPIO_TOUCH_RESET +#define GTP_INT_PORT GPIO_TOUCH_IRQ +#define GTP_INT_IRQ gpio_to_irq(GTP_INT_PORT) + +#define GTP_GPIO_AS_INPUT(pin) do{\ + gpio_direction_input(pin);\ + }while(0) +#define GTP_GPIO_AS_INT(pin) do{\ + GTP_GPIO_AS_INPUT(pin);\ + }while(0) +#define GTP_GPIO_GET_VALUE(pin) gpio_get_value(pin) +#define GTP_GPIO_OUTPUT(pin,level) gpio_direction_output(pin,level) +#define GTP_GPIO_REQUEST(pin, label) gpio_request(pin, label) +#define GTP_GPIO_FREE(pin) gpio_free(pin) +#define GTP_IRQ_TAB {IRQ_TYPE_EDGE_RISING, IRQ_TYPE_EDGE_FALLING, IRQ_TYPE_LEVEL_LOW, IRQ_TYPE_LEVEL_HIGH} + +// STEP_3(optional): Specify your special config info if needed +#if GTP_CUSTOM_CFG +#define GTP_MAX_HEIGHT 800 +#define GTP_MAX_WIDTH 480 +#define GTP_INT_TRIGGER 0 // 0: Rising 1: Falling +#else +#define GTP_MAX_HEIGHT 4096 +#define GTP_MAX_WIDTH 4096 +#define GTP_INT_TRIGGER 1 +#endif +#define GTP_MAX_TOUCH 5 + +// STEP_4(optional): If keys are available and reported as keys, config your key info here +#if GTP_HAVE_TOUCH_KEY +#define GTP_KEY_TAB {KEY_MENU, KEY_HOME, KEY_BACK} +#endif + +//***************************PART3:OTHER define********************************* +#define GTP_DRIVER_VERSION "V2.0<2013/08/28>" +#define GTP_I2C_NAME "goodix_ts" +#define GTP_POLL_TIME 10 +#define GTP_ADDR_LENGTH 2 +#define GTP_CONFIG_MIN_LENGTH 186 +#define GTP_CONFIG_MAX_LENGTH 240 +#define FAIL 0 +#define SUCCESS 1 +#define SWITCH_OFF 0 +#define SWITCH_ON 1 + +//******************** For GT9XXF Start **********************// +#define GTP_REG_BAK_REF 0x99D0 +#define GTP_REG_MAIN_CLK 0x8020 +#define GTP_REG_CHIP_TYPE 0x8000 +#define GTP_REG_HAVE_KEY 0x804E +#define GTP_REG_MATRIX_DRVNUM 0x8069 +#define GTP_REG_MATRIX_SENNUM 0x806A + +#define GTP_FL_FW_BURN 0x00 +#define GTP_FL_ESD_RECOVERY 0x01 +#define GTP_FL_READ_REPAIR 0x02 + +#define GTP_BAK_REF_SEND 0 +#define GTP_BAK_REF_STORE 1 +#define CFG_LOC_DRVA_NUM 29 +#define CFG_LOC_DRVB_NUM 30 +#define CFG_LOC_SENS_NUM 31 + +#define GTP_CHK_FW_MAX 40 +#define GTP_CHK_FS_MNT_MAX 300 +#define GTP_BAK_REF_PATH "/data/gtp_ref.bin" +#define GTP_MAIN_CLK_PATH "/data/gtp_clk.bin" +#define GTP_RQST_CONFIG 0x01 +#define GTP_RQST_BAK_REF 0x02 +#define GTP_RQST_RESET 0x03 +#define GTP_RQST_MAIN_CLOCK 0x04 +#define GTP_RQST_RESPONDED 0x00 +#define GTP_RQST_IDLE 0xFF + +//******************** For GT9XXF End **********************// +// Registers define +#define GTP_READ_COOR_ADDR 0x814E +#define GTP_REG_SLEEP 0x8040 +#define GTP_REG_SENSOR_ID 0x814A +#define GTP_REG_CONFIG_DATA 0x8047 +#define GTP_REG_VERSION 0x8140 + +#define RESOLUTION_LOC 3 +#define TRIGGER_LOC 8 + +#define CFG_GROUP_LEN(p_cfg_grp) (sizeof(p_cfg_grp) / sizeof(p_cfg_grp[0])) +// Log define +#define GTP_INFO(fmt,arg...) printk("<<-GTP-INFO->> "fmt"\n",##arg) +#define GTP_ERROR(fmt,arg...) printk("<<-GTP-ERROR->> "fmt"\n",##arg) +#define GTP_DEBUG(fmt,arg...) do{\ + if(GTP_DEBUG_ON)\ + printk("<<-GTP-DEBUG->> [%d]"fmt"\n",__LINE__, ##arg);\ + }while(0) +#define GTP_DEBUG_ARRAY(array, num) do{\ + s32 i;\ + u8* a = array;\ + if(GTP_DEBUG_ARRAY_ON)\ + {\ + printk("<<-GTP-DEBUG-ARRAY->>\n");\ + for (i = 0; i < (num); i++)\ + {\ + printk("%02x ", (a)[i]);\ + if ((i + 1 ) %10 == 0)\ + {\ + printk("\n");\ + }\ + }\ + printk("\n");\ + }\ + }while(0) +#define GTP_DEBUG_FUNC() do{\ + if(GTP_DEBUG_FUNC_ON)\ + printk("<<-GTP-FUNC->> Func:%s@Line:%d\n",__func__,__LINE__);\ + }while(0) +#define GTP_SWAP(x, y) do{\ + typeof(x) z = x;\ + x = y;\ + y = z;\ + }while (0) + +//*****************************End of Part III******************************** + +#endif /* _GOODIX_GT9XX_H_ */ diff --git a/drivers/input/touchscreen/goodix/gt9xx_update.c b/drivers/input/touchscreen/goodix/gt9xx_update.c new file mode 100644 index 00000000..9413fc1b --- /dev/null +++ b/drivers/input/touchscreen/goodix/gt9xx_update.c @@ -0,0 +1,2716 @@ +/* drivers/input/touchscreen/gt9xx_update.c + * + * 2010 - 2012 Goodix Technology. + * + * 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 a reference + * to you, when you are integrating the GOODiX's CTP IC into your system, + * 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. + * + * Latest Version:1.6 + * Author: andrew@goodix.com + * Revision Record: + * V1.0: + * first release. By Andrew, 2012/08/31 + * V1.2: + * add force update,GT9110P pid map. By Andrew, 2012/10/15 + * V1.4: + * 1. add config auto update function; + * 2. modify enter_update_mode; + * 3. add update file cal checksum. + * By Andrew, 2012/12/12 + * V1.6: + * 1. replace guitar_client with i2c_connect_client; + * 2. support firmware header array update. + * By Meta, 2013/03/11 + */ +#include +#include +#include +#include +#include "gt9xx.h" +#if ((GTP_AUTO_UPDATE && GTP_HEADER_FW_UPDATE) || GTP_COMPATIBLE_MODE) +#include "gt9xx_firmware.h" +#endif + +#define GUP_REG_HW_INFO 0x4220 +#define GUP_REG_FW_MSG 0x41E4 +#define GUP_REG_PID_VID 0x8140 + +#define GUP_SEARCH_FILE_TIMES 50 + +#define UPDATE_FILE_PATH_1 "/data/_goodix_update_.bin" +#define UPDATE_FILE_PATH_2 "/sdcard/_goodix_update_.bin" + +#define CONFIG_FILE_PATH_1 "/data/_goodix_config_.cfg" +#define CONFIG_FILE_PATH_2 "/sdcard/_goodix_config_.cfg" + +#define FW_HEAD_LENGTH 14 +#define FW_SECTION_LENGTH 0x2000 +#define FW_DSP_ISP_LENGTH 0x1000 +#define FW_DSP_LENGTH 0x1000 +#define FW_BOOT_LENGTH 0x800 + +#define PACK_SIZE 256 +#define MAX_FRAME_CHECK_TIME 5 + + +#define _bRW_MISCTL__SRAM_BANK 0x4048 +#define _bRW_MISCTL__MEM_CD_EN 0x4049 +#define _bRW_MISCTL__CACHE_EN 0x404B +#define _bRW_MISCTL__TMR0_EN 0x40B0 +#define _rRW_MISCTL__SWRST_B0_ 0x4180 +#define _bWO_MISCTL__CPU_SWRST_PULSE 0x4184 +#define _rRW_MISCTL__BOOTCTL_B0_ 0x4190 +#define _rRW_MISCTL__BOOT_OPT_B0_ 0x4218 +#define _rRW_MISCTL__BOOT_CTL_ 0x5094 + +#define AUTO_SEARCH_BIN 0x01 +#define AUTO_SEARCH_CFG 0x02 +#define BIN_FILE_READY 0x80 +#define CFG_FILE_READY 0x08 +#define HEADER_FW_READY 0x00 + +#pragma pack(1) +typedef struct { + u8 hw_info[4]; //hardware info// + u8 pid[8]; //product id // + u16 vid; //version id // +} st_fw_head; +#pragma pack() + +typedef struct { + u8 force_update; + u8 fw_flag; + struct file *file; + struct file *cfg_file; + st_fw_head ic_fw_msg; + mm_segment_t old_fs; +} st_update_msg; + +st_update_msg update_msg; +u16 show_len; +u16 total_len; +u8 got_file_flag = 0; +u8 searching_file = 0; + +extern u8 config[GTP_CONFIG_MAX_LENGTH + GTP_ADDR_LENGTH]; +extern void gtp_reset_guitar(struct i2c_client *client, s32 ms); +extern s32 gtp_send_cfg(struct i2c_client *client); +extern s32 gtp_read_version(struct i2c_client *, u16* ); +extern struct i2c_client * i2c_connect_client; +extern void gtp_irq_enable(struct goodix_ts_data *ts); +extern void gtp_irq_disable(struct goodix_ts_data *ts); +extern s32 gtp_i2c_read_dbl_check(struct i2c_client *, u16, u8 *, int); + +#define _CLOSE_FILE(p_file) if (p_file && !IS_ERR(p_file)) \ + { \ + filp_close(p_file, NULL); \ + } + +#if GTP_ESD_PROTECT +extern void gtp_esd_switch(struct i2c_client *, s32); +#endif + +#if GTP_COMPATIBLE_MODE +s32 gup_fw_download_proc(void *dir, u8 dwn_mode); +#endif +/******************************************************* +Function: + Read data from the i2c slave device. +Input: + client: i2c device. + buf[0~1]: read start address. + buf[2~len-1]: read data buffer. + len: GTP_ADDR_LENGTH + read bytes count +Output: + numbers of i2c_msgs to transfer: + 2: succeed, otherwise: failed +*********************************************************/ +s32 gup_i2c_read(struct i2c_client *client, u8 *buf, s32 len) +{ + struct i2c_msg msgs[2]; + s32 ret=-1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msgs[0].flags = !I2C_M_RD; + msgs[0].addr = client->addr; + msgs[0].len = GTP_ADDR_LENGTH; + msgs[0].buf = &buf[0]; + //msgs[0].scl_rate = 300 * 1000; // for Rockchip, etc + + msgs[1].flags = I2C_M_RD; + msgs[1].addr = client->addr; + msgs[1].len = len - GTP_ADDR_LENGTH; + msgs[1].buf = &buf[GTP_ADDR_LENGTH]; + //msgs[1].scl_rate = 300 * 1000; // for Rockchip, etc. + + while(retries < 5) { + ret = i2c_transfer(client->adapter, msgs, 2); + if(ret == 2)break; + retries++; + } + + return ret; +} + +/******************************************************* +Function: + Write data to the i2c slave device. +Input: + client: i2c device. + buf[0~1]: write start address. + buf[2~len-1]: data buffer + len: GTP_ADDR_LENGTH + write bytes count +Output: + numbers of i2c_msgs to transfer: + 1: succeed, otherwise: failed +*********************************************************/ +s32 gup_i2c_write(struct i2c_client *client,u8 *buf,s32 len) +{ + struct i2c_msg msg; + s32 ret=-1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msg.flags = !I2C_M_RD; + msg.addr = client->addr; + msg.len = len; + msg.buf = buf; + //msg.scl_rate = 300 * 1000; // for Rockchip, etc + + while(retries < 5) { + ret = i2c_transfer(client->adapter, &msg, 1); + if (ret == 1)break; + retries++; + } + + return ret; +} + +static s32 gup_init_panel(struct goodix_ts_data *ts) +{ + s32 ret = 0; + s32 i = 0; + u8 check_sum = 0; + u8 opr_buf[16]; + u8 sensor_id = 0; + u16 version = 0; + + u8 cfg_info_group1[] = CTP_CFG_GROUP1; + u8 cfg_info_group2[] = CTP_CFG_GROUP2; + u8 cfg_info_group3[] = CTP_CFG_GROUP3; + u8 cfg_info_group4[] = CTP_CFG_GROUP4; + u8 cfg_info_group5[] = CTP_CFG_GROUP5; + u8 cfg_info_group6[] = CTP_CFG_GROUP6; + u8 *send_cfg_buf[] = {cfg_info_group1, cfg_info_group2, cfg_info_group3, + cfg_info_group4, cfg_info_group5, cfg_info_group6 + }; + u8 cfg_info_len[] = { CFG_GROUP_LEN(cfg_info_group1), + CFG_GROUP_LEN(cfg_info_group2), + CFG_GROUP_LEN(cfg_info_group3), + CFG_GROUP_LEN(cfg_info_group4), + CFG_GROUP_LEN(cfg_info_group5), + CFG_GROUP_LEN(cfg_info_group6) + }; + + if ((!cfg_info_len[1]) && (!cfg_info_len[2]) && + (!cfg_info_len[3]) && (!cfg_info_len[4]) && + (!cfg_info_len[5])) { + sensor_id = 0; + } else { + ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_SENSOR_ID, &sensor_id, 1); + if (SUCCESS == ret) { + if (sensor_id >= 0x06) { + GTP_ERROR("Invalid sensor_id(0x%02X), No Config Sent!", sensor_id); + return -1; + } + } else { + GTP_ERROR("Failed to get sensor_id, No config sent!"); + return -1; + } + } + + GTP_DEBUG("Sensor_ID: %d", sensor_id); + + ts->gtp_cfg_len = cfg_info_len[sensor_id]; + + if (ts->gtp_cfg_len < GTP_CONFIG_MIN_LENGTH) { + GTP_ERROR("Sensor_ID(%d) matches with NULL or INVALID CONFIG GROUP! NO Config Sent! You need to check you header file CFG_GROUP section!", sensor_id); + return -1; + } + + ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_CONFIG_DATA, &opr_buf[0], 1); + + if (ret == SUCCESS) { + GTP_DEBUG("CFG_GROUP%d Config Version: %d, IC Config Version: %d", sensor_id+1, + send_cfg_buf[sensor_id][0], opr_buf[0]); + + send_cfg_buf[sensor_id][0] = opr_buf[0]; + ts->fixed_cfg = 0; + } else { + GTP_ERROR("Failed to get ic config version!No config sent!"); + return -1; + } + + memset(&config[GTP_ADDR_LENGTH], 0, GTP_CONFIG_MAX_LENGTH); + memcpy(&config[GTP_ADDR_LENGTH], send_cfg_buf[sensor_id], ts->gtp_cfg_len); + + GTP_DEBUG("X_MAX = %d, Y_MAX = %d, TRIGGER = 0x%02x", + ts->abs_x_max, ts->abs_y_max, ts->int_trigger_type); + + config[RESOLUTION_LOC] = (u8)GTP_MAX_WIDTH; + config[RESOLUTION_LOC + 1] = (u8)(GTP_MAX_WIDTH>>8); + config[RESOLUTION_LOC + 2] = (u8)GTP_MAX_HEIGHT; + config[RESOLUTION_LOC + 3] = (u8)(GTP_MAX_HEIGHT>>8); + + if (GTP_INT_TRIGGER == 0) { //RISING + config[TRIGGER_LOC] &= 0xfe; + } else if (GTP_INT_TRIGGER == 1) { //FALLING + config[TRIGGER_LOC] |= 0x01; + } + + check_sum = 0; + for (i = GTP_ADDR_LENGTH; i < ts->gtp_cfg_len; i++) { + check_sum += config[i]; + } + config[ts->gtp_cfg_len] = (~check_sum) + 1; + + GTP_DEBUG_FUNC(); + ret = gtp_send_cfg(ts->client); + if (ret < 0) { + GTP_ERROR("Send config error."); + } + gtp_read_version(ts->client, &version); + msleep(10); + return 0; +} + + +static u8 gup_get_ic_msg(struct i2c_client *client, u16 addr, u8* msg, s32 len) +{ + s32 i = 0; + + msg[0] = (addr >> 8) & 0xff; + msg[1] = addr & 0xff; + + for (i = 0; i < 5; i++) { + if (gup_i2c_read(client, msg, GTP_ADDR_LENGTH + len) > 0) { + break; + } + } + + if (i >= 5) { + GTP_ERROR("Read data from 0x%02x%02x failed!", msg[0], msg[1]); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_set_ic_msg(struct i2c_client *client, u16 addr, u8 val) +{ + s32 i = 0; + u8 msg[3]; + + msg[0] = (addr >> 8) & 0xff; + msg[1] = addr & 0xff; + msg[2] = val; + + for (i = 0; i < 5; i++) { + if (gup_i2c_write(client, msg, GTP_ADDR_LENGTH + 1) > 0) { + break; + } + } + + if (i >= 5) { + GTP_ERROR("Set data to 0x%02x%02x failed!", msg[0], msg[1]); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_get_ic_fw_msg(struct i2c_client *client) +{ + s32 ret = -1; + u8 retry = 0; + u8 buf[16]; + u8 i; + + // step1:get hardware info + ret = gtp_i2c_read_dbl_check(client, GUP_REG_HW_INFO, &buf[GTP_ADDR_LENGTH], 4); + if (FAIL == ret) { + GTP_ERROR("[get_ic_fw_msg]get hw_info failed,exit"); + return FAIL; + } + + // buf[2~5]: 00 06 90 00 + // hw_info: 00 90 06 00 + for(i=0; i<4; i++) { + update_msg.ic_fw_msg.hw_info[i] = buf[GTP_ADDR_LENGTH + 3 - i]; + } + GTP_DEBUG("IC Hardware info:%02x%02x%02x%02x", update_msg.ic_fw_msg.hw_info[0], update_msg.ic_fw_msg.hw_info[1], + update_msg.ic_fw_msg.hw_info[2], update_msg.ic_fw_msg.hw_info[3]); + // step2:get firmware message + for(retry=0; retry<2; retry++) { + ret = gup_get_ic_msg(client, GUP_REG_FW_MSG, buf, 1); + if(FAIL == ret) { + GTP_ERROR("Read firmware message fail."); + return ret; + } + + update_msg.force_update = buf[GTP_ADDR_LENGTH]; + if((0xBE != update_msg.force_update)&&(!retry)) { + GTP_INFO("The check sum in ic is error."); + GTP_INFO("The IC will be updated by force."); + continue; + } + break; + } + GTP_DEBUG("IC force update flag:0x%x", update_msg.force_update); + + // step3:get pid & vid + ret = gtp_i2c_read_dbl_check(client, GUP_REG_PID_VID, &buf[GTP_ADDR_LENGTH], 6); + if (FAIL == ret) { + GTP_ERROR("[get_ic_fw_msg]get pid & vid failed,exit"); + return FAIL; + } + + memset(update_msg.ic_fw_msg.pid, 0, sizeof(update_msg.ic_fw_msg.pid)); + memcpy(update_msg.ic_fw_msg.pid, &buf[GTP_ADDR_LENGTH], 4); + GTP_DEBUG("IC Product id:%s", update_msg.ic_fw_msg.pid); + + //GT9XX PID MAPPING + /*|-----FLASH-----RAM-----| + |------918------918-----| + |------968------968-----| + |------913------913-----| + |------913P-----913P----| + |------927------927-----| + |------927P-----927P----| + |------9110-----9110----| + |------9110P----9111----|*/ + if(update_msg.ic_fw_msg.pid[0] != 0) { + if(!memcmp(update_msg.ic_fw_msg.pid, "9111", 4)) { + GTP_DEBUG("IC Mapping Product id:%s", update_msg.ic_fw_msg.pid); + memcpy(update_msg.ic_fw_msg.pid, "9110P", 5); + } + } + + update_msg.ic_fw_msg.vid = buf[GTP_ADDR_LENGTH+4] + (buf[GTP_ADDR_LENGTH+5]<<8); + GTP_DEBUG("IC version id:%04x", update_msg.ic_fw_msg.vid); + + return SUCCESS; +} + +s32 gup_enter_update_mode(struct i2c_client *client) +{ + s32 ret = -1; + s32 retry = 0; + u8 rd_buf[3]; + + //step1:RST output low last at least 2ms + GTP_GPIO_OUTPUT(GTP_RST_PORT, 0); + msleep(2); + + //step2:select I2C slave addr,INT:0--0xBA;1--0x28. + GTP_GPIO_OUTPUT(GTP_INT_PORT, (client->addr == 0x14)); + msleep(2); + + //step3:RST output high reset guitar + GTP_GPIO_OUTPUT(GTP_RST_PORT, 1); + + //20121211 modify start + msleep(5); + while(retry++ < 200) { + //step4:Hold ss51 & dsp + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if(ret <= 0) { + GTP_DEBUG("Hold ss51 & dsp I2C error,retry:%d", retry); + continue; + } + + //step5:Confirm hold + ret = gup_get_ic_msg(client, _rRW_MISCTL__SWRST_B0_, rd_buf, 1); + if(ret <= 0) { + GTP_DEBUG("Hold ss51 & dsp I2C error,retry:%d", retry); + continue; + } + if(0x0C == rd_buf[GTP_ADDR_LENGTH]) { + GTP_DEBUG("Hold ss51 & dsp confirm SUCCESS"); + break; + } + GTP_DEBUG("Hold ss51 & dsp confirm 0x4180 failed,value:%d", rd_buf[GTP_ADDR_LENGTH]); + } + if(retry >= 200) { + GTP_ERROR("Enter update Hold ss51 failed."); + return FAIL; + } + + //step6:DSP_CK and DSP_ALU_CK PowerOn + ret = gup_set_ic_msg(client, 0x4010, 0x00); + + //20121211 modify end + return ret; +} + +void gup_leave_update_mode(void) +{ + GTP_GPIO_AS_INT(GTP_INT_PORT); + + GTP_DEBUG("[leave_update_mode]reset chip."); + gtp_reset_guitar(i2c_connect_client, 20); +} + +// Get the correct nvram data +// The correct conditions: +// 1. the hardware info is the same +// 2. the product id is the same +// 3. the firmware version in update file is greater than the firmware version in ic +// or the check sum in ic is wrong +/* Update Conditions: + 1. Same hardware info + 2. Same PID + 3. File VID > IC VID + Force Update Conditions: + 1. Wrong ic firmware checksum + 2. INVALID IC PID or VID + 3. (IC PID == 91XX || File PID == 91XX) && (File VID > IC VID) +*/ + +static u8 gup_enter_update_judge(st_fw_head *fw_head) +{ + u16 u16_tmp; + s32 i = 0; + s32 pid_cmp_len = 0; + u16_tmp = fw_head->vid; + fw_head->vid = (u16)(u16_tmp>>8) + (u16)(u16_tmp<<8); + + GTP_DEBUG("FILE HARDWARE INFO:%02x%02x%02x%02x", fw_head->hw_info[0], fw_head->hw_info[1], fw_head->hw_info[2], fw_head->hw_info[3]); + GTP_DEBUG("FILE PID:%s", fw_head->pid); + GTP_DEBUG("FILE VID:%04x", fw_head->vid); + + GTP_DEBUG("IC HARDWARE INFO:%02x%02x%02x%02x", update_msg.ic_fw_msg.hw_info[0], update_msg.ic_fw_msg.hw_info[1], + update_msg.ic_fw_msg.hw_info[2], update_msg.ic_fw_msg.hw_info[3]); + GTP_DEBUG("IC PID:%s", update_msg.ic_fw_msg.pid); + GTP_DEBUG("IC VID:%04x", update_msg.ic_fw_msg.vid); + + //First two conditions + if ( !memcmp(fw_head->hw_info, update_msg.ic_fw_msg.hw_info, sizeof(update_msg.ic_fw_msg.hw_info))) { + GTP_DEBUG("Get the same hardware info."); + if( update_msg.force_update != 0xBE ) { + GTP_INFO("FW chksum error,need enter update."); + return SUCCESS; + } + + // 20130523 start + if (strlen(update_msg.ic_fw_msg.pid) < 3) { + GTP_INFO("Illegal IC pid, need enter update"); + return SUCCESS; + } else { + for (i = 0; i < 3; i++) { + if ((update_msg.ic_fw_msg.pid[i] < 0x30) || (update_msg.ic_fw_msg.pid[i] > 0x39)) { + GTP_INFO("Illegal IC pid, out of bound, need enter update"); + return SUCCESS; + } + } + } + // 20130523 end + + // avoid situations like gt9xx to gt9xxP, gt9xxS etc. + pid_cmp_len = strlen(fw_head->pid); + if (pid_cmp_len < strlen(update_msg.ic_fw_msg.pid)) { + pid_cmp_len = strlen(update_msg.ic_fw_msg.pid); + } + + if (( !memcmp(fw_head->pid, update_msg.ic_fw_msg.pid, pid_cmp_len)) || + (!memcmp(update_msg.ic_fw_msg.pid, "91XX", 4))|| + (!memcmp(fw_head->pid, "91XX", 4))) { + if(!memcmp(fw_head->pid, "91XX", 4)) { + GTP_DEBUG("Force none same pid update mode."); + } else { + GTP_DEBUG("Get the same pid."); + } + //The third condition + if (fw_head->vid > update_msg.ic_fw_msg.vid) { + GTP_INFO("Need enter update."); + return SUCCESS; + } + GTP_ERROR("Don't meet the third condition."); + GTP_ERROR("File VID <= Ic VID, update aborted!"); + } else { + GTP_ERROR("File PID != Ic PID, update aborted!"); + } + } else { + GTP_ERROR("Different Hardware, update aborted!"); + } + return FAIL; +} + + + +#if GTP_AUTO_UPDATE_CFG +static u8 ascii2hex(u8 a) +{ + s8 value = 0; + + if(a >= '0' && a <= '9') { + value = a - '0'; + } else if(a >= 'A' && a <= 'F') { + value = a - 'A' + 0x0A; + } else if(a >= 'a' && a <= 'f') { + value = a - 'a' + 0x0A; + } else { + value = 0xff; + } + + return value; +} + +static s8 gup_update_config(struct i2c_client *client) +{ + s32 file_len = 0; + s32 ret = 0; + s32 i = 0; + s32 file_cfg_len = 0; + s32 chip_cfg_len = 0; + s32 count = 0; + u8 *buf; + u8 *pre_buf; + u8 *file_config; + //u8 checksum = 0; + u8 pid[8]; + + if(NULL == update_msg.cfg_file) { + GTP_ERROR("[update_cfg]No need to upgrade config!"); + return FAIL; + } + file_len = update_msg.cfg_file->f_op->llseek(update_msg.cfg_file, 0, SEEK_END); + + ret = gup_get_ic_msg(client, GUP_REG_PID_VID, pid, 6); + if(FAIL == ret) { + GTP_ERROR("[update_cfg]Read product id & version id fail."); + return FAIL; + } + pid[5] = '\0'; + GTP_DEBUG("update cfg get pid:%s", &pid[GTP_ADDR_LENGTH]); + + chip_cfg_len = 186; + if(!memcmp(&pid[GTP_ADDR_LENGTH], "968", 3) || + !memcmp(&pid[GTP_ADDR_LENGTH], "910", 3) || + !memcmp(&pid[GTP_ADDR_LENGTH], "960", 3)) { + chip_cfg_len = 228; + } + GTP_DEBUG("[update_cfg]config file len:%d", file_len); + GTP_DEBUG("[update_cfg]need config len:%d",chip_cfg_len); + if((file_len+5) < chip_cfg_len*5) { + GTP_ERROR("Config length error"); + return -1; + } + + buf = (u8*)kzalloc(file_len, GFP_KERNEL); + pre_buf = (u8*)kzalloc(file_len, GFP_KERNEL); + file_config = (u8*)kzalloc(chip_cfg_len + GTP_ADDR_LENGTH, GFP_KERNEL); + update_msg.cfg_file->f_op->llseek(update_msg.cfg_file, 0, SEEK_SET); + + GTP_DEBUG("[update_cfg]Read config from file."); + ret = update_msg.cfg_file->f_op->read(update_msg.cfg_file, (char*)pre_buf, file_len, &update_msg.cfg_file->f_pos); + if(ret<0) { + GTP_ERROR("[update_cfg]Read config file failed."); + goto update_cfg_file_failed; + } + + GTP_DEBUG("[update_cfg]Delete illgal charactor."); + for(i=0,count=0; i> 8; + file_config[1] = GTP_REG_CONFIG_DATA & 0xff; + for(i=0,file_cfg_len=GTP_ADDR_LENGTH; i 0) { + GTP_INFO("[update_cfg]Send config SUCCESS."); + break; + } + GTP_ERROR("[update_cfg]Send config i2c error."); + } + +update_cfg_file_failed: + kfree(pre_buf); + kfree(buf); + kfree(file_config); + return ret; +} + +#endif + +#if GTP_AUTO_UPDATE +static void gup_search_file(s32 search_type) +{ + s32 i = 0; + struct file *pfile = NULL; + + got_file_flag = 0x00; + + searching_file = 1; + for (i = 0; i < GUP_SEARCH_FILE_TIMES; ++i) { + if (0 == searching_file) { + GTP_INFO("Force exiting file searching"); + got_file_flag = 0x00; + return; + } + + if (search_type & AUTO_SEARCH_BIN) { + + GTP_DEBUG("Search for %s, %s for fw update.(%d/%d)", UPDATE_FILE_PATH_1, UPDATE_FILE_PATH_2, i+1, GUP_SEARCH_FILE_TIMES); + pfile = filp_open(UPDATE_FILE_PATH_1, O_RDONLY, 0); + if (IS_ERR(pfile)) { + pfile = filp_open(UPDATE_FILE_PATH_2, O_RDONLY, 0); + if (!IS_ERR(pfile)) { + GTP_INFO("Bin file: %s for fw update.", UPDATE_FILE_PATH_2); + got_file_flag |= BIN_FILE_READY; + update_msg.file = pfile; + } + } else { + GTP_INFO("Bin file: %s for fw update.", UPDATE_FILE_PATH_1); + got_file_flag |= BIN_FILE_READY; + update_msg.file = pfile; + } + if (got_file_flag & BIN_FILE_READY) { +#if GTP_AUTO_UPDATE_CFG + if (search_type & AUTO_SEARCH_CFG) { + i = GUP_SEARCH_FILE_TIMES; // Bin & Cfg File required to be in the same directory + } else +#endif + { + searching_file = 0; + return; + } + } + } + +#if GTP_AUTO_UPDATE_CFG + if ( (search_type & AUTO_SEARCH_CFG) && !(got_file_flag & CFG_FILE_READY) ) { + GTP_DEBUG("Search for %s, %s for config update.(%d/%d)", CONFIG_FILE_PATH_1, CONFIG_FILE_PATH_2, i+1, GUP_SEARCH_FILE_TIMES); + pfile = filp_open(CONFIG_FILE_PATH_1, O_RDONLY, 0); + if (IS_ERR(pfile)) { + pfile = filp_open(CONFIG_FILE_PATH_2, O_RDONLY, 0); + if (!IS_ERR(pfile)) { + GTP_INFO("Cfg file: %s for config update.", CONFIG_FILE_PATH_2); + got_file_flag |= CFG_FILE_READY; + update_msg.cfg_file = pfile; + } + } else { + GTP_INFO("Cfg file: %s for config update.", CONFIG_FILE_PATH_1); + got_file_flag |= CFG_FILE_READY; + update_msg.cfg_file = pfile; + } + if (got_file_flag & CFG_FILE_READY) { + searching_file = 0; + return; + } + } +#endif + msleep(3000); + } + searching_file = 0; +} +#endif + + +static u8 gup_check_update_file(struct i2c_client *client, st_fw_head* fw_head, u8* path) +{ + s32 ret = 0; + s32 i = 0; + s32 fw_checksum = 0; + u8 buf[FW_HEAD_LENGTH]; + + if (path) { + GTP_DEBUG("Update File path:%s, %d", path, strlen(path)); + update_msg.file = filp_open(path, O_RDONLY, 0); + + if (IS_ERR(update_msg.file)) { + GTP_ERROR("Open update file(%s) error!", path); + return FAIL; + } + got_file_flag = BIN_FILE_READY; + } else { +#if GTP_AUTO_UPDATE +#if GTP_HEADER_FW_UPDATE + if (sizeof(gtp_default_FW) < (FW_HEAD_LENGTH+FW_SECTION_LENGTH*4+FW_DSP_ISP_LENGTH+FW_DSP_LENGTH+FW_BOOT_LENGTH)) { + GTP_ERROR("INVALID header_fw_array, check your gt9xx_firmware.h file!"); + return FAIL; + } + + got_file_flag = HEADER_FW_READY; + + memcpy(fw_head, >p_default_FW[0], FW_HEAD_LENGTH); + + //check firmware legality + fw_checksum = 0; + for(i=0; if_op->llseek(update_msg.file, 0, SEEK_SET); + + ret = update_msg.file->f_op->read(update_msg.file, (char*)buf, FW_HEAD_LENGTH, &update_msg.file->f_pos); + if (ret < 0) { + GTP_ERROR("Read firmware head in update file error."); + goto load_failed; + } + memcpy(fw_head, buf, FW_HEAD_LENGTH); + + //check firmware legality + fw_checksum = 0; + for(i=0; if_op->read(update_msg.file, (char*)buf, 2, &update_msg.file->f_pos); + if (ret < 0) { + GTP_ERROR("Read firmware file error."); + goto load_failed; + } + //GTP_DEBUG("BUF[0]:%x", buf[0]); + temp = (buf[0]<<8) + buf[1]; + fw_checksum += temp; + } + + GTP_DEBUG("firmware checksum:%x", fw_checksum&0xFFFF); + if(fw_checksum&0xFFFF) { + GTP_ERROR("Illegal firmware file."); + goto load_failed; + } + + return SUCCESS; + +load_failed: + set_fs(update_msg.old_fs); + _CLOSE_FILE(update_msg.file); + + return FAIL; +} + + + +static u8 gup_burn_proc(struct i2c_client *client, u8 *burn_buf, u16 start_addr, u16 total_length) +{ + s32 ret = 0; + u16 burn_addr = start_addr; + u16 frame_length = 0; + u16 burn_length = 0; + u8 wr_buf[PACK_SIZE + GTP_ADDR_LENGTH]; + u8 rd_buf[PACK_SIZE + GTP_ADDR_LENGTH]; + u8 retry = 0; + + GTP_DEBUG("Begin burn %dk data to addr 0x%x", (total_length/1024), start_addr); + while(burn_length < total_length) { + GTP_DEBUG("B/T:%04d/%04d", burn_length, total_length); + frame_length = ((total_length - burn_length) > PACK_SIZE) ? PACK_SIZE : (total_length - burn_length); + wr_buf[0] = (u8)(burn_addr>>8); + rd_buf[0] = wr_buf[0]; + wr_buf[1] = (u8)burn_addr; + rd_buf[1] = wr_buf[1]; + memcpy(&wr_buf[GTP_ADDR_LENGTH], &burn_buf[burn_length], frame_length); + + for(retry = 0; retry < MAX_FRAME_CHECK_TIME; retry++) { + ret = gup_i2c_write(client, wr_buf, GTP_ADDR_LENGTH + frame_length); + if(ret <= 0) { + GTP_ERROR("Write frame data i2c error."); + continue; + } + ret = gup_i2c_read(client, rd_buf, GTP_ADDR_LENGTH + frame_length); + if(ret <= 0) { + GTP_ERROR("Read back frame data i2c error."); + continue; + } + + if(memcmp(&wr_buf[GTP_ADDR_LENGTH], &rd_buf[GTP_ADDR_LENGTH], frame_length)) { + GTP_ERROR("Check frame data fail,not equal."); + GTP_DEBUG("write array:"); + GTP_DEBUG_ARRAY(&wr_buf[GTP_ADDR_LENGTH], frame_length); + GTP_DEBUG("read array:"); + GTP_DEBUG_ARRAY(&rd_buf[GTP_ADDR_LENGTH], frame_length); + continue; + } else { + //GTP_DEBUG("Check frame data success."); + break; + } + } + if(retry >= MAX_FRAME_CHECK_TIME) { + GTP_ERROR("Burn frame data time out,exit."); + return FAIL; + } + burn_length += frame_length; + burn_addr += frame_length; + } + return SUCCESS; +} + +static u8 gup_load_section_file(u8* buf, u16 offset, u16 length) +{ + s32 ret = 0; + +#if GTP_HEADER_FW_UPDATE + if (got_file_flag == HEADER_FW_READY) { + memcpy(buf, >p_default_FW[FW_HEAD_LENGTH + offset], length); + return SUCCESS; + } +#endif + if( (update_msg.file == NULL) || IS_ERR(update_msg.file) ) { + GTP_ERROR("cannot find update file,load section file fail."); + return FAIL; + } + update_msg.file->f_pos = FW_HEAD_LENGTH + offset; + + ret = update_msg.file->f_op->read(update_msg.file, (char*)buf, length, &update_msg.file->f_pos); + if(ret < 0) { + GTP_ERROR("Read update file fail."); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_recall_check(struct i2c_client *client, u8* chk_src, u16 start_rd_addr, u16 chk_length) +{ + u8 rd_buf[PACK_SIZE + GTP_ADDR_LENGTH]; + s32 ret = 0; + u16 recall_addr = start_rd_addr; + u16 recall_length = 0; + u16 frame_length = 0; + + while(recall_length < chk_length) { + frame_length = ((chk_length - recall_length) > PACK_SIZE) ? PACK_SIZE : (chk_length - recall_length); + ret = gup_get_ic_msg(client, recall_addr, rd_buf, frame_length); + if(ret <= 0) { + GTP_ERROR("recall i2c error,exit"); + return FAIL; + } + + if(memcmp(&rd_buf[GTP_ADDR_LENGTH], &chk_src[recall_length], frame_length)) { + GTP_ERROR("Recall frame data fail,not equal."); + GTP_DEBUG("chk_src array:"); + GTP_DEBUG_ARRAY(&chk_src[recall_length], frame_length); + GTP_DEBUG("recall array:"); + GTP_DEBUG_ARRAY(&rd_buf[GTP_ADDR_LENGTH], frame_length); + return FAIL; + } + + recall_length += frame_length; + recall_addr += frame_length; + } + GTP_DEBUG("Recall check %dk firmware success.", (chk_length/1024)); + + return SUCCESS; +} + +static u8 gup_burn_fw_section(struct i2c_client *client, u8 *fw_section, u16 start_addr, u8 bank_cmd ) +{ + s32 ret = 0; + u8 rd_buf[5]; + + //step1:hold ss51 & dsp + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if(ret <= 0) { + GTP_ERROR("[burn_fw_section]hold ss51 & dsp fail."); + return FAIL; + } + + //step2:set scramble + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if(ret <= 0) { + GTP_ERROR("[burn_fw_section]set scramble fail."); + return FAIL; + } + + //step3:select bank + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, (bank_cmd >> 4)&0x0F); + if(ret <= 0) { + GTP_ERROR("[burn_fw_section]select bank %d fail.", (bank_cmd >> 4)&0x0F); + return FAIL; + } + + //step4:enable accessing code + ret = gup_set_ic_msg(client, _bRW_MISCTL__MEM_CD_EN, 0x01); + if(ret <= 0) { + GTP_ERROR("[burn_fw_section]enable accessing code fail."); + return FAIL; + } + + //step5:burn 8k fw section + ret = gup_burn_proc(client, fw_section, start_addr, FW_SECTION_LENGTH); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_section]burn fw_section fail."); + return FAIL; + } + + //step6:hold ss51 & release dsp + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x04); + if(ret <= 0) { + GTP_ERROR("[burn_fw_section]hold ss51 & release dsp fail."); + return FAIL; + } + //must delay + msleep(1); + + //step7:send burn cmd to move data to flash from sram + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, bank_cmd&0x0f); + if(ret <= 0) { + GTP_ERROR("[burn_fw_section]send burn cmd fail."); + return FAIL; + } + GTP_DEBUG("[burn_fw_section]Wait for the burn is complete......"); + do { + ret = gup_get_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, rd_buf, 1); + if(ret <= 0) { + GTP_ERROR("[burn_fw_section]Get burn state fail"); + return FAIL; + } + msleep(10); + //GTP_DEBUG("[burn_fw_section]Get burn state:%d.", rd_buf[GTP_ADDR_LENGTH]); + } while(rd_buf[GTP_ADDR_LENGTH]); + + //step8:select bank + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, (bank_cmd >> 4)&0x0F); + if(ret <= 0) { + GTP_ERROR("[burn_fw_section]select bank %d fail.", (bank_cmd >> 4)&0x0F); + return FAIL; + } + + //step9:enable accessing code + ret = gup_set_ic_msg(client, _bRW_MISCTL__MEM_CD_EN, 0x01); + if(ret <= 0) { + GTP_ERROR("[burn_fw_section]enable accessing code fail."); + return FAIL; + } + + //step10:recall 8k fw section + ret = gup_recall_check(client, fw_section, start_addr, FW_SECTION_LENGTH); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_section]recall check 8k firmware fail."); + return FAIL; + } + + //step11:disable accessing code + ret = gup_set_ic_msg(client, _bRW_MISCTL__MEM_CD_EN, 0x00); + if(ret <= 0) { + GTP_ERROR("[burn_fw_section]disable accessing code fail."); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_burn_dsp_isp(struct i2c_client *client) +{ + s32 ret = 0; + u8* fw_dsp_isp = NULL; + u8 retry = 0; + + GTP_DEBUG("[burn_dsp_isp]Begin burn dsp isp---->>"); + + //step1:alloc memory + GTP_DEBUG("[burn_dsp_isp]step1:alloc memory"); + while(retry++ < 5) { + fw_dsp_isp = (u8*)kzalloc(FW_DSP_ISP_LENGTH, GFP_KERNEL); + if(fw_dsp_isp == NULL) { + continue; + } else { + GTP_INFO("[burn_dsp_isp]Alloc %dk byte memory success.", (FW_DSP_ISP_LENGTH/1024)); + break; + } + } + if(retry >= 5) { + GTP_ERROR("[burn_dsp_isp]Alloc memory fail,exit."); + return FAIL; + } + + //step2:load dsp isp file data + GTP_DEBUG("[burn_dsp_isp]step2:load dsp isp file data"); + ret = gup_load_section_file(fw_dsp_isp, (4*FW_SECTION_LENGTH+FW_DSP_LENGTH+FW_BOOT_LENGTH), FW_DSP_ISP_LENGTH); + if(FAIL == ret) { + GTP_ERROR("[burn_dsp_isp]load firmware dsp_isp fail."); + goto exit_burn_dsp_isp; + } + + //step3:disable wdt,clear cache enable + GTP_DEBUG("[burn_dsp_isp]step3:disable wdt,clear cache enable"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__TMR0_EN, 0x00); + if(ret <= 0) { + GTP_ERROR("[burn_dsp_isp]disable wdt fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + ret = gup_set_ic_msg(client, _bRW_MISCTL__CACHE_EN, 0x00); + if(ret <= 0) { + GTP_ERROR("[burn_dsp_isp]clear cache enable fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + //step4:hold ss51 & dsp + GTP_DEBUG("[burn_dsp_isp]step4:hold ss51 & dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if(ret <= 0) { + GTP_ERROR("[burn_dsp_isp]hold ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + //step5:set boot from sram + GTP_DEBUG("[burn_dsp_isp]step5:set boot from sram"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOTCTL_B0_, 0x02); + if(ret <= 0) { + GTP_ERROR("[burn_dsp_isp]set boot from sram fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + //step6:software reboot + GTP_DEBUG("[burn_dsp_isp]step6:software reboot"); + ret = gup_set_ic_msg(client, _bWO_MISCTL__CPU_SWRST_PULSE, 0x01); + if(ret <= 0) { + GTP_ERROR("[burn_dsp_isp]software reboot fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + //step7:select bank2 + GTP_DEBUG("[burn_dsp_isp]step7:select bank2"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, 0x02); + if(ret <= 0) { + GTP_ERROR("[burn_dsp_isp]select bank2 fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + //step8:enable accessing code + GTP_DEBUG("[burn_dsp_isp]step8:enable accessing code"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__MEM_CD_EN, 0x01); + if(ret <= 0) { + GTP_ERROR("[burn_dsp_isp]enable accessing code fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + //step9:burn 4k dsp_isp + GTP_DEBUG("[burn_dsp_isp]step9:burn 4k dsp_isp"); + ret = gup_burn_proc(client, fw_dsp_isp, 0xC000, FW_DSP_ISP_LENGTH); + if(FAIL == ret) { + GTP_ERROR("[burn_dsp_isp]burn dsp_isp fail."); + goto exit_burn_dsp_isp; + } + + //step10:set scramble + GTP_DEBUG("[burn_dsp_isp]step10:set scramble"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if(ret <= 0) { + GTP_ERROR("[burn_dsp_isp]set scramble fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + ret = SUCCESS; + +exit_burn_dsp_isp: + kfree(fw_dsp_isp); + return ret; +} + +static u8 gup_burn_fw_ss51(struct i2c_client *client) +{ + u8* fw_ss51 = NULL; + u8 retry = 0; + s32 ret = 0; + + GTP_DEBUG("[burn_fw_ss51]Begin burn ss51 firmware---->>"); + + //step1:alloc memory + GTP_DEBUG("[burn_fw_ss51]step1:alloc memory"); + while(retry++ < 5) { + fw_ss51 = (u8*)kzalloc(FW_SECTION_LENGTH, GFP_KERNEL); + if(fw_ss51 == NULL) { + continue; + } else { + GTP_INFO("[burn_fw_ss51]Alloc %dk byte memory success.", (FW_SECTION_LENGTH/1024)); + break; + } + } + if(retry >= 5) { + GTP_ERROR("[burn_fw_ss51]Alloc memory fail,exit."); + return FAIL; + } + + //step2:load ss51 firmware section 1 file data + GTP_DEBUG("[burn_fw_ss51]step2:load ss51 firmware section 1 file data"); + ret = gup_load_section_file(fw_ss51, 0, FW_SECTION_LENGTH); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]load ss51 firmware section 1 fail."); + goto exit_burn_fw_ss51; + } + + //step3:clear control flag + GTP_DEBUG("[burn_fw_ss51]step3:clear control flag"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x00); + if(ret <= 0) { + GTP_ERROR("[burn_fw_ss51]clear control flag fail."); + ret = FAIL; + goto exit_burn_fw_ss51; + } + + //step4:burn ss51 firmware section 1 + GTP_DEBUG("[burn_fw_ss51]step4:burn ss51 firmware section 1"); + ret = gup_burn_fw_section(client, fw_ss51, 0xC000, 0x01); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]burn ss51 firmware section 1 fail."); + goto exit_burn_fw_ss51; + } + + //step5:load ss51 firmware section 2 file data + GTP_DEBUG("[burn_fw_ss51]step5:load ss51 firmware section 2 file data"); + ret = gup_load_section_file(fw_ss51, FW_SECTION_LENGTH, FW_SECTION_LENGTH); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]load ss51 firmware section 2 fail."); + goto exit_burn_fw_ss51; + } + + //step6:burn ss51 firmware section 2 + GTP_DEBUG("[burn_fw_ss51]step6:burn ss51 firmware section 2"); + ret = gup_burn_fw_section(client, fw_ss51, 0xE000, 0x02); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]burn ss51 firmware section 2 fail."); + goto exit_burn_fw_ss51; + } + + //step7:load ss51 firmware section 3 file data + GTP_DEBUG("[burn_fw_ss51]step7:load ss51 firmware section 3 file data"); + ret = gup_load_section_file(fw_ss51, 2*FW_SECTION_LENGTH, FW_SECTION_LENGTH); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]load ss51 firmware section 3 fail."); + goto exit_burn_fw_ss51; + } + + //step8:burn ss51 firmware section 3 + GTP_DEBUG("[burn_fw_ss51]step8:burn ss51 firmware section 3"); + ret = gup_burn_fw_section(client, fw_ss51, 0xC000, 0x13); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]burn ss51 firmware section 3 fail."); + goto exit_burn_fw_ss51; + } + + //step9:load ss51 firmware section 4 file data + GTP_DEBUG("[burn_fw_ss51]step9:load ss51 firmware section 4 file data"); + ret = gup_load_section_file(fw_ss51, 3*FW_SECTION_LENGTH, FW_SECTION_LENGTH); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]load ss51 firmware section 4 fail."); + goto exit_burn_fw_ss51; + } + + //step10:burn ss51 firmware section 4 + GTP_DEBUG("[burn_fw_ss51]step10:burn ss51 firmware section 4"); + ret = gup_burn_fw_section(client, fw_ss51, 0xE000, 0x14); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]burn ss51 firmware section 4 fail."); + goto exit_burn_fw_ss51; + } + + ret = SUCCESS; + +exit_burn_fw_ss51: + kfree(fw_ss51); + return ret; +} + +static u8 gup_burn_fw_dsp(struct i2c_client *client) +{ + s32 ret = 0; + u8* fw_dsp = NULL; + u8 retry = 0; + u8 rd_buf[5]; + + GTP_DEBUG("[burn_fw_dsp]Begin burn dsp firmware---->>"); + //step1:alloc memory + GTP_DEBUG("[burn_fw_dsp]step1:alloc memory"); + while(retry++ < 5) { + fw_dsp = (u8*)kzalloc(FW_DSP_LENGTH, GFP_KERNEL); + if(fw_dsp == NULL) { + continue; + } else { + GTP_INFO("[burn_fw_dsp]Alloc %dk byte memory success.", (FW_SECTION_LENGTH/1024)); + break; + } + } + if(retry >= 5) { + GTP_ERROR("[burn_fw_dsp]Alloc memory fail,exit."); + return FAIL; + } + + //step2:load firmware dsp + GTP_DEBUG("[burn_fw_dsp]step2:load firmware dsp"); + ret = gup_load_section_file(fw_dsp, 4*FW_SECTION_LENGTH, FW_DSP_LENGTH); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_dsp]load firmware dsp fail."); + goto exit_burn_fw_dsp; + } + + //step3:select bank3 + GTP_DEBUG("[burn_fw_dsp]step3:select bank3"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, 0x03); + if(ret <= 0) { + GTP_ERROR("[burn_fw_dsp]select bank3 fail."); + ret = FAIL; + goto exit_burn_fw_dsp; + } + + //step4:hold ss51 & dsp + GTP_DEBUG("[burn_fw_dsp]step4:hold ss51 & dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if(ret <= 0) { + GTP_ERROR("[burn_fw_dsp]hold ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_dsp; + } + + //step5:set scramble + GTP_DEBUG("[burn_fw_dsp]step5:set scramble"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if(ret <= 0) { + GTP_ERROR("[burn_fw_dsp]set scramble fail."); + ret = FAIL; + goto exit_burn_fw_dsp; + } + + //step6:release ss51 & dsp + GTP_DEBUG("[burn_fw_dsp]step6:release ss51 & dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x04); //20121211 + if(ret <= 0) { + GTP_ERROR("[burn_fw_dsp]release ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_dsp; + } + //must delay + msleep(1); + + //step7:burn 4k dsp firmware + GTP_DEBUG("[burn_fw_dsp]step7:burn 4k dsp firmware"); + ret = gup_burn_proc(client, fw_dsp, 0x9000, FW_DSP_LENGTH); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_dsp]burn fw_section fail."); + goto exit_burn_fw_dsp; + } + + //step8:send burn cmd to move data to flash from sram + GTP_DEBUG("[burn_fw_dsp]step8:send burn cmd to move data to flash from sram"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x05); + if(ret <= 0) { + GTP_ERROR("[burn_fw_dsp]send burn cmd fail."); + goto exit_burn_fw_dsp; + } + GTP_DEBUG("[burn_fw_dsp]Wait for the burn is complete......"); + do { + ret = gup_get_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, rd_buf, 1); + if(ret <= 0) { + GTP_ERROR("[burn_fw_dsp]Get burn state fail"); + goto exit_burn_fw_dsp; + } + msleep(10); + //GTP_DEBUG("[burn_fw_dsp]Get burn state:%d.", rd_buf[GTP_ADDR_LENGTH]); + } while(rd_buf[GTP_ADDR_LENGTH]); + + //step9:recall check 4k dsp firmware + GTP_DEBUG("[burn_fw_dsp]step9:recall check 4k dsp firmware"); + ret = gup_recall_check(client, fw_dsp, 0x9000, FW_DSP_LENGTH); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_dsp]recall check 4k dsp firmware fail."); + goto exit_burn_fw_dsp; + } + + ret = SUCCESS; + +exit_burn_fw_dsp: + kfree(fw_dsp); + return ret; +} + +static u8 gup_burn_fw_boot(struct i2c_client *client) +{ + s32 ret = 0; + u8* fw_boot = NULL; + u8 retry = 0; + u8 rd_buf[5]; + + GTP_DEBUG("[burn_fw_boot]Begin burn bootloader firmware---->>"); + + //step1:Alloc memory + GTP_DEBUG("[burn_fw_boot]step1:Alloc memory"); + while(retry++ < 5) { + fw_boot = (u8*)kzalloc(FW_BOOT_LENGTH, GFP_KERNEL); + if(fw_boot == NULL) { + continue; + } else { + GTP_INFO("[burn_fw_boot]Alloc %dk byte memory success.", (FW_BOOT_LENGTH/1024)); + break; + } + } + if(retry >= 5) { + GTP_ERROR("[burn_fw_boot]Alloc memory fail,exit."); + return FAIL; + } + + //step2:load firmware bootloader + GTP_DEBUG("[burn_fw_boot]step2:load firmware bootloader"); + ret = gup_load_section_file(fw_boot, (4*FW_SECTION_LENGTH+FW_DSP_LENGTH), FW_BOOT_LENGTH); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_boot]load firmware dsp fail."); + goto exit_burn_fw_boot; + } + + //step3:hold ss51 & dsp + GTP_DEBUG("[burn_fw_boot]step3:hold ss51 & dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if(ret <= 0) { + GTP_ERROR("[burn_fw_boot]hold ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_boot; + } + + //step4:set scramble + GTP_DEBUG("[burn_fw_boot]step4:set scramble"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if(ret <= 0) { + GTP_ERROR("[burn_fw_boot]set scramble fail."); + ret = FAIL; + goto exit_burn_fw_boot; + } + + //step5:release ss51 & dsp + GTP_DEBUG("[burn_fw_boot]step5:release ss51 & dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x04); //20121211 + if(ret <= 0) { + GTP_ERROR("[burn_fw_boot]release ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_boot; + } + //must delay + msleep(1); + + //step6:select bank3 + GTP_DEBUG("[burn_fw_boot]step6:select bank3"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, 0x03); + if(ret <= 0) { + GTP_ERROR("[burn_fw_boot]select bank3 fail."); + ret = FAIL; + goto exit_burn_fw_boot; + } + + //step7:burn 2k bootloader firmware + GTP_DEBUG("[burn_fw_boot]step7:burn 2k bootloader firmware"); + ret = gup_burn_proc(client, fw_boot, 0x9000, FW_BOOT_LENGTH); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_boot]burn fw_section fail."); + goto exit_burn_fw_boot; + } + + //step7:send burn cmd to move data to flash from sram + GTP_DEBUG("[burn_fw_boot]step7:send burn cmd to move data to flash from sram"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x06); + if(ret <= 0) { + GTP_ERROR("[burn_fw_boot]send burn cmd fail."); + goto exit_burn_fw_boot; + } + GTP_DEBUG("[burn_fw_boot]Wait for the burn is complete......"); + do { + ret = gup_get_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, rd_buf, 1); + if(ret <= 0) { + GTP_ERROR("[burn_fw_boot]Get burn state fail"); + goto exit_burn_fw_boot; + } + msleep(10); + //GTP_DEBUG("[burn_fw_boot]Get burn state:%d.", rd_buf[GTP_ADDR_LENGTH]); + } while(rd_buf[GTP_ADDR_LENGTH]); + + //step8:recall check 2k bootloader firmware + GTP_DEBUG("[burn_fw_boot]step8:recall check 2k bootloader firmware"); + ret = gup_recall_check(client, fw_boot, 0x9000, FW_BOOT_LENGTH); + if(FAIL == ret) { + GTP_ERROR("[burn_fw_boot]recall check 4k dsp firmware fail."); + goto exit_burn_fw_boot; + } + + //step9:enable download DSP code + GTP_DEBUG("[burn_fw_boot]step9:enable download DSP code "); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x99); + if(ret <= 0) { + GTP_ERROR("[burn_fw_boot]enable download DSP code fail."); + ret = FAIL; + goto exit_burn_fw_boot; + } + + //step10:release ss51 & hold dsp + GTP_DEBUG("[burn_fw_boot]step10:release ss51 & hold dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x08); + if(ret <= 0) { + GTP_ERROR("[burn_fw_boot]release ss51 & hold dsp fail."); + ret = FAIL; + goto exit_burn_fw_boot; + } + + ret = SUCCESS; + +exit_burn_fw_boot: + kfree(fw_boot); + return ret; +} + +s32 gup_update_proc(void *dir) +{ + s32 ret = 0; + s32 update_ret = FAIL; + u8 retry = 0; + st_fw_head fw_head; + struct goodix_ts_data *ts = NULL; + + GTP_DEBUG("[update_proc]Begin update ......"); + + ts = i2c_get_clientdata(i2c_connect_client); + +#if GTP_AUTO_UPDATE + if (searching_file) { + u8 timeout = 0; + searching_file = 0; // exit .bin update file searching + GTP_INFO("Exiting searching .bin update file..."); + while ((show_len != 200) && (show_len != 100) && (timeout++ < 100)) { // wait for auto update quitted completely + msleep(100); + } + } +#endif + + show_len = 1; + total_len = 100; + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + return gup_fw_download_proc(dir, GTP_FL_FW_BURN); + } +#endif + + update_msg.file = NULL; + ret = gup_check_update_file(i2c_connect_client, &fw_head, (u8*)dir); //20121211 + if(FAIL == ret) { + GTP_ERROR("[update_proc]check update file fail."); + goto file_fail; + } + + ret = gup_get_ic_fw_msg(i2c_connect_client); + if(FAIL == ret) { + GTP_ERROR("[update_proc]get ic message fail."); + goto file_fail; + } + + ret = gup_enter_update_judge(&fw_head); + if(FAIL == ret) { + GTP_ERROR("[update_proc]Check *.bin file fail."); + goto file_fail; + } + + ts->enter_update = 1; + gtp_irq_disable(ts); +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_OFF); +#endif + ret = gup_enter_update_mode(i2c_connect_client); + if(FAIL == ret) { + GTP_ERROR("[update_proc]enter update mode fail."); + goto update_fail; + } + + while(retry++ < 5) { + show_len = 10; + total_len = 100; + ret = gup_burn_dsp_isp(i2c_connect_client); + if(FAIL == ret) { + GTP_ERROR("[update_proc]burn dsp isp fail."); + continue; + } + + show_len += 10; + ret = gup_burn_fw_ss51(i2c_connect_client); + if(FAIL == ret) { + GTP_ERROR("[update_proc]burn ss51 firmware fail."); + continue; + } + + show_len += 40; + ret = gup_burn_fw_dsp(i2c_connect_client); + if(FAIL == ret) { + GTP_ERROR("[update_proc]burn dsp firmware fail."); + continue; + } + + show_len += 20; + ret = gup_burn_fw_boot(i2c_connect_client); + if(FAIL == ret) { + GTP_ERROR("[update_proc]burn bootloader firmware fail."); + continue; + } + show_len += 10; + GTP_INFO("[update_proc]UPDATE SUCCESS."); + break; + } + + if (retry >= 5) { + GTP_ERROR("[update_proc]retry timeout,UPDATE FAIL."); + update_ret = FAIL; + } else { + update_ret = SUCCESS; + } + +update_fail: + if (got_file_flag & BIN_FILE_READY) { + if (update_msg.old_fs) { + set_fs(update_msg.old_fs); + } + } + GTP_DEBUG("[update_proc]leave update mode."); + gup_leave_update_mode(); + + if (SUCCESS == update_ret) { + if (ts->fw_error) { + GTP_INFO("firmware error auto update, resent config!"); + gup_init_panel(ts); + } else { + GTP_DEBUG("[update_proc]send config."); + ret = gtp_send_cfg(i2c_connect_client); + if (ret < 0) { + GTP_ERROR("[update_proc]send config fail."); + } else { + msleep(100); + } + } + } + ts->enter_update = 0; + gtp_irq_enable(ts); + +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_ON); +#endif + +file_fail: + _CLOSE_FILE(update_msg.file); + +#if (GTP_AUTO_UPDATE && GTP_AUTO_UPDATE_CFG && GTP_HEADER_FW_UPDATE) + if (NULL == dir) { + gup_search_file(AUTO_SEARCH_CFG); + if (got_file_flag & CFG_FILE_READY) { + ret = gup_update_config(i2c_connect_client); + if(ret <= 0) { + GTP_ERROR("Update config failed."); + } + _CLOSE_FILE(update_msg.cfg_file); + msleep(500); //waiting config to be stored in FLASH. + } + } +#endif + + total_len = 100; + if (SUCCESS == update_ret) { + show_len = 100; + return SUCCESS; + } else { + show_len = 200; + return FAIL; + } +} + +#if GTP_AUTO_UPDATE +u8 gup_init_update_proc(struct goodix_ts_data *ts) +{ + struct task_struct *thread = NULL; + + GTP_INFO("Ready to run update thread."); + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + thread = kthread_run(gup_update_proc, "update", "fl update"); + } else +#endif + { + thread = kthread_run(gup_update_proc, (void*)NULL, "guitar_update"); + } + if (IS_ERR(thread)) { + GTP_ERROR("Failed to create update thread.\n"); + return -1; + } + + return 0; +} +#endif + + +//************************** For GT9XXF Start ***********************// +#define FW_DOWNLOAD_LENGTH 0x4000 +#define FW_SS51_SECTION_LEN 0x2000 // 4 section, each 8k +#define FL_PACK_SIZE 1024 +#define GUP_FW_CHK_SIZE FL_PACK_SIZE //FL_PACK_SIZE + +#define FL_UPDATE_PATH "/data/_fl_update_.bin" +#define FL_UPDATE_PATH_SD "/sdcard/_fl_update_.bin" +//for clk cal +#define PULSE_LENGTH (200) +#define INIT_CLK_DAC (50) +#define MAX_CLK_DAC (120) +#define CLK_AVG_TIME (1) +#define MILLION 1000000 + +#define _wRW_MISCTL__RG_DMY 0x4282 +#define _bRW_MISCTL__RG_OSC_CALIB 0x4268 +#define _fRW_MISCTL__GIO0 0x41e9 +#define _fRW_MISCTL__GIO1 0x41ed +#define _fRW_MISCTL__GIO2 0x41f1 +#define _fRW_MISCTL__GIO3 0x41f5 +#define _fRW_MISCTL__GIO4 0x41f9 +#define _fRW_MISCTL__GIO5 0x41fd +#define _fRW_MISCTL__GIO6 0x4201 +#define _fRW_MISCTL__GIO7 0x4205 +#define _fRW_MISCTL__GIO8 0x4209 +#define _fRW_MISCTL__GIO9 0x420d +#define _fRW_MISCTL__MEA 0x41a0 +#define _bRW_MISCTL__MEA_MODE 0x41a1 +#define _wRW_MISCTL__MEA_MAX_NUM 0x41a4 +#define _dRO_MISCTL__MEA_VAL 0x41b0 +#define _bRW_MISCTL__MEA_SRCSEL 0x41a3 +#define _bRO_MISCTL__MEA_RDY 0x41a8 +#define _rRW_MISCTL__ANA_RXADC_B0_ 0x4250 +#define _bRW_MISCTL__RG_LDO_A18_PWD 0x426f +#define _bRW_MISCTL__RG_BG_PWD 0x426a +#define _bRW_MISCTL__RG_CLKGEN_PWD 0x4269 +#define _fRW_MISCTL__RG_RXADC_PWD 0x426a +#define _bRW_MISCTL__OSC_CK_SEL 0x4030 +#define _rRW_MISCTL_RG_DMY83 0x4283 +#define _rRW_MISCTL__GIO1CTL_B2_ 0x41ee +#define _rRW_MISCTL__GIO1CTL_B1_ 0x41ed + + +#if GTP_COMPATIBLE_MODE + +u8 i2c_opr_buf[GTP_ADDR_LENGTH + FL_PACK_SIZE] = {0}; +u8 chk_cmp_buf[FL_PACK_SIZE] = {0}; + +extern s32 gtp_fw_startup(struct i2c_client *client); +static u8 gup_download_fw_dsp(struct i2c_client *client, u8 dwn_mode); +static s32 gup_burn_fw_proc(struct i2c_client *client, u16 start_addr, s32 start_index, s32 burn_len); +static s32 gup_check_and_repair(struct i2c_client *client, u16 start_addr, s32 start_index, s32 chk_len); + + +u8 gup_check_fs_mounted(char *path_name) +{ + struct path root_path; + struct path path; + int err; + err = kern_path("/", LOOKUP_FOLLOW, &root_path); + + if (err) { + GTP_DEBUG("\"/\" NOT Mounted: %d", err); + return FAIL; + } + err = kern_path(path_name, LOOKUP_FOLLOW, &path); + + if (err) { + GTP_DEBUG("%s NOT Mounted: %d", path_name, err); + return FAIL; + } + +#if 1 + return SUCCESS; +#else + if (path.mnt->mnt_sb == root_path.mnt->mnt_sb) { + //-- not mounted + return FAIL; + } else { + return SUCCESS; + } +#endif +} + +s32 i2c_write_bytes(struct i2c_client *client, u16 addr, u8 *buf, s32 len) +{ + s32 ret = 0; + s32 write_bytes = 0; + s32 retry = 0; + u8 *tx_buf = buf; + + while (len > 0) { + i2c_opr_buf[0] = (u8)(addr >> 8); + i2c_opr_buf[1] = (u8)(addr & 0xFF); + if (len > FL_PACK_SIZE) { + write_bytes = FL_PACK_SIZE; + } else { + write_bytes = len; + } + memcpy(i2c_opr_buf + 2, tx_buf, write_bytes); + for (retry = 0; retry < 5; ++retry) { + ret = gup_i2c_write(client, i2c_opr_buf, write_bytes + GTP_ADDR_LENGTH); + if (ret == 1) { + break; + } + } + if (retry >= 5) { + GTP_ERROR("retry timeout, I2C write 0x%04X %d bytes failed!", addr, write_bytes); + return -1; + } + addr += write_bytes; + len -= write_bytes; + tx_buf += write_bytes; + } + + return 1; +} + +s32 i2c_read_bytes(struct i2c_client *client, u16 addr, u8 *buf, s32 len) +{ + s32 ret = 0; + s32 read_bytes = 0; + s32 retry = 0; + u8 *tx_buf = buf; + + while (len > 0) { + i2c_opr_buf[0] = (u8)(addr >> 8); + i2c_opr_buf[1] = (u8)(addr & 0xFF); + if (len > FL_PACK_SIZE) { + read_bytes = FL_PACK_SIZE; + } else { + read_bytes = len; + } + for (retry = 0; retry < 5; ++retry) { + ret = gup_i2c_read(client, i2c_opr_buf, read_bytes + GTP_ADDR_LENGTH); + if (ret == 2) { + break; + } + } + if (retry >= 5) { + GTP_ERROR("retry timeout, I2C read 0x%04X %d bytes failed!", addr, read_bytes); + return -1; + } + memcpy(tx_buf, i2c_opr_buf + 2, read_bytes); + addr += read_bytes; + len -= read_bytes; + tx_buf += read_bytes; + } + return 2; +} + + + +// main clock calibration +// bit: 0~7, val: 0/1 +static void gup_bit_write(s32 addr, s32 bit, s32 val) +{ + u8 buf; + i2c_read_bytes(i2c_connect_client, addr, &buf, 1); + + buf = (buf & (~((u8)1 << bit))) | ((u8)val << bit); + + i2c_write_bytes(i2c_connect_client, addr, &buf, 1); +} + +static void gup_clk_count_init(s32 bCh, s32 bCNT) +{ + u8 buf; + + //_fRW_MISCTL__MEA_EN = 0; //Frequency measure enable + gup_bit_write(_fRW_MISCTL__MEA, 0, 0); + //_fRW_MISCTL__MEA_CLR = 1; //Frequency measure clear + gup_bit_write(_fRW_MISCTL__MEA, 1, 1); + //_bRW_MISCTL__MEA_MODE = 0; //Pulse mode + buf = 0; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__MEA_MODE, &buf, 1); + //_bRW_MISCTL__MEA_SRCSEL = 8 + bCh; //From GIO1 + buf = 8 + bCh; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__MEA_SRCSEL, &buf, 1); + //_wRW_MISCTL__MEA_MAX_NUM = bCNT; //Set the Measure Counts = 1 + buf = bCNT; + i2c_write_bytes(i2c_connect_client, _wRW_MISCTL__MEA_MAX_NUM, &buf, 1); + //_fRW_MISCTL__MEA_CLR = 0; //Frequency measure not clear + gup_bit_write(_fRW_MISCTL__MEA, 1, 0); + //_fRW_MISCTL__MEA_EN = 1; + gup_bit_write(_fRW_MISCTL__MEA, 0, 1); +} + +static u32 gup_clk_count_get(void) +{ + s32 ready = 0; + s32 temp; + s8 buf[4]; + + while ((ready == 0)) { //Wait for measurement complete + i2c_read_bytes(i2c_connect_client, _bRO_MISCTL__MEA_RDY, buf, 1); + ready = buf[0]; + } + + msleep(50); + + //_fRW_MISCTL__MEA_EN = 0; + gup_bit_write(_fRW_MISCTL__MEA, 0, 0); + i2c_read_bytes(i2c_connect_client, _dRO_MISCTL__MEA_VAL, buf, 4); + GTP_DEBUG("Clk_count 0: %2X", buf[0]); + GTP_DEBUG("Clk_count 1: %2X", buf[1]); + GTP_DEBUG("Clk_count 2: %2X", buf[2]); + GTP_DEBUG("Clk_count 3: %2X", buf[3]); + + temp = (s32)buf[0] + ((s32)buf[1] << 8) + ((s32)buf[2] << 16) + ((s32)buf[3] << 24); + GTP_INFO("Clk_count : %d", temp); + return temp; +} +u8 gup_clk_dac_setting(int dac) +{ + s8 buf1, buf2; + + i2c_read_bytes(i2c_connect_client, _wRW_MISCTL__RG_DMY, &buf1, 1); + i2c_read_bytes(i2c_connect_client, _bRW_MISCTL__RG_OSC_CALIB, &buf2, 1); + + buf1 = (buf1 & 0xFFCF) | ((dac & 0x03) << 4); + buf2 = (dac >> 2) & 0x3f; + + i2c_write_bytes(i2c_connect_client, _wRW_MISCTL__RG_DMY, &buf1, 1); + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__RG_OSC_CALIB, &buf2, 1); + + return 0; +} + +static u8 gup_clk_calibration_pin_select(s32 bCh) +{ + s32 i2c_addr; + + switch (bCh) { + case 0: + i2c_addr = _fRW_MISCTL__GIO0; + break; + + case 1: + i2c_addr = _fRW_MISCTL__GIO1; + break; + + case 2: + i2c_addr = _fRW_MISCTL__GIO2; + break; + + case 3: + i2c_addr = _fRW_MISCTL__GIO3; + break; + + case 4: + i2c_addr = _fRW_MISCTL__GIO4; + break; + + case 5: + i2c_addr = _fRW_MISCTL__GIO5; + break; + + case 6: + i2c_addr = _fRW_MISCTL__GIO6; + break; + + case 7: + i2c_addr = _fRW_MISCTL__GIO7; + break; + + case 8: + i2c_addr = _fRW_MISCTL__GIO8; + break; + + case 9: + i2c_addr = _fRW_MISCTL__GIO9; + break; + } + + gup_bit_write(i2c_addr, 1, 0); + + return 0; +} + +void gup_output_pulse(int t) +{ + unsigned long flags; + //s32 i; + + GTP_GPIO_OUTPUT(GTP_INT_PORT, 0); + msleep(10); + + local_irq_save(flags); + + GTP_GPIO_OUTPUT(GTP_INT_PORT, 1); + msleep(50); + GTP_GPIO_OUTPUT(GTP_INT_PORT, 0); + msleep(t - 50); + GTP_GPIO_OUTPUT(GTP_INT_PORT, 1); + + local_irq_restore(flags); + + msleep(20); + GTP_GPIO_OUTPUT(GTP_INT_PORT, 0); +} + +static void gup_sys_clk_init(void) +{ + u8 buf; + + //_fRW_MISCTL__RG_RXADC_CKMUX = 0; + gup_bit_write(_rRW_MISCTL__ANA_RXADC_B0_, 5, 0); + //_bRW_MISCTL__RG_LDO_A18_PWD = 0; //DrvMISCTL_A18_PowerON + buf = 0; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__RG_LDO_A18_PWD, &buf, 1); + //_bRW_MISCTL__RG_BG_PWD = 0; //DrvMISCTL_BG_PowerON + buf = 0; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__RG_BG_PWD, &buf, 1); + //_bRW_MISCTL__RG_CLKGEN_PWD = 0; //DrvMISCTL_CLKGEN_PowerON + buf = 0; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__RG_CLKGEN_PWD, &buf, 1); + //_fRW_MISCTL__RG_RXADC_PWD = 0; //DrvMISCTL_RX_ADC_PowerON + gup_bit_write(_rRW_MISCTL__ANA_RXADC_B0_, 0, 0); + //_fRW_MISCTL__RG_RXADC_REF_PWD = 0; //DrvMISCTL_RX_ADCREF_PowerON + gup_bit_write(_rRW_MISCTL__ANA_RXADC_B0_, 1, 0); + //gup_clk_dac_setting(60); + //_bRW_MISCTL__OSC_CK_SEL = 1;; + buf = 1; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__OSC_CK_SEL, &buf, 1); +} + +s32 gup_clk_calibration(void) +{ + u8 buf; + //u8 trigger; + s32 i; + struct timeval start, end; + s32 count; + s32 count_ref; + s32 sec; + s32 usec; + //unsigned long flags; + struct goodix_ts_data *ts; + + buf = 0x0C; // hold ss51 and dsp + i2c_write_bytes(i2c_connect_client, _rRW_MISCTL__SWRST_B0_, &buf, 1); + + //_fRW_MISCTL__CLK_BIAS = 0; //disable clock bias + gup_bit_write(_rRW_MISCTL_RG_DMY83, 7, 0); + + //_fRW_MISCTL__GIO1_PU = 0; //set TOUCH INT PIN MODE as input + gup_bit_write(_rRW_MISCTL__GIO1CTL_B2_, 0, 0); + + //_fRW_MISCTL__GIO1_OE = 0; //set TOUCH INT PIN MODE as input + gup_bit_write(_rRW_MISCTL__GIO1CTL_B1_, 1, 0); + + //buf = 0x00; + //i2c_write_bytes(i2c_connect_client, _rRW_MISCTL__SWRST_B0_, &buf, 1); + //msleep(1000); + + GTP_INFO("CLK calibration GO"); + gup_sys_clk_init(); + gup_clk_calibration_pin_select(1);//use GIO1 to do the calibration + + GTP_GPIO_OUTPUT(GTP_INT_PORT, 0); + + ts = i2c_get_clientdata(i2c_connect_client); + + for (i = INIT_CLK_DAC; i < MAX_CLK_DAC; i++) { + GTP_INFO("CLK calibration DAC %d", i); + + if (ts->gtp_is_suspend) { + i = 80; // if sleeping while calibrating main clock, set it default 80 + break; + } + + gup_clk_dac_setting(i); + gup_clk_count_init(1, CLK_AVG_TIME); + +#if 0 + gup_output_pulse(PULSE_LENGTH); + count = gup_clk_count_get(); + + if (count > PULSE_LENGTH * 60) { //60= 60Mhz * 1us + break; + } + +#else + GTP_GPIO_OUTPUT(GTP_INT_PORT, 0); + + //local_irq_save(flags); + do_gettimeofday(&start); + GTP_GPIO_OUTPUT(GTP_INT_PORT, 1); + //local_irq_restore(flags); + + msleep(1); + GTP_GPIO_OUTPUT(GTP_INT_PORT, 0); + msleep(1); + + //local_irq_save(flags); + do_gettimeofday(&end); + GTP_GPIO_OUTPUT(GTP_INT_PORT, 1); + //local_irq_restore(flags); + + count = gup_clk_count_get(); + msleep(20); + GTP_GPIO_OUTPUT(GTP_INT_PORT, 0); + + usec = end.tv_usec - start.tv_usec; + sec = end.tv_sec - start.tv_sec; + count_ref = 60 * (usec+ sec * MILLION);//60= 60Mhz * 1us + + GTP_DEBUG("== time %d, %d, %d", sec, usec, count_ref); + + if (count > count_ref) { + GTP_DEBUG("== count_diff %d", count - count_ref); + break; + } + +#endif + } + + //clk_dac = i; + + gtp_reset_guitar(i2c_connect_client, 20); + +#if 0//for debug + //-- ouput clk to GPIO 4 + buf = 0x00; + i2c_write_bytes(i2c_connect_client, 0x41FA, &buf, 1); + buf = 0x00; + i2c_write_bytes(i2c_connect_client, 0x4104, &buf, 1); + buf = 0x00; + i2c_write_bytes(i2c_connect_client, 0x4105, &buf, 1); + buf = 0x00; + i2c_write_bytes(i2c_connect_client, 0x4106, &buf, 1); + buf = 0x01; + i2c_write_bytes(i2c_connect_client, 0x4107, &buf, 1); + buf = 0x06; + i2c_write_bytes(i2c_connect_client, 0x41F8, &buf, 1); + buf = 0x02; + i2c_write_bytes(i2c_connect_client, 0x41F9, &buf, 1); +#endif + + GTP_GPIO_AS_INT(GTP_INT_PORT); + return i; +} + + + +s32 gup_hold_ss51_dsp(struct i2c_client *client) +{ + s32 ret = -1; + s32 retry = 0; + u8 rd_buf[3]; + + while(retry++ < 200) { + // step4:Hold ss51 & dsp + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if(ret <= 0) { + GTP_DEBUG("Hold ss51 & dsp I2C error,retry:%d", retry); + continue; + } + + // step5:Confirm hold + ret = gup_get_ic_msg(client, _rRW_MISCTL__SWRST_B0_, rd_buf, 1); + if (ret <= 0) { + GTP_DEBUG("Hold ss51 & dsp I2C error,retry:%d", retry); + continue; + } + if (0x0C == rd_buf[GTP_ADDR_LENGTH]) { + GTP_DEBUG("[enter_update_mode]Hold ss51 & dsp confirm SUCCESS"); + break; + } + GTP_DEBUG("Hold ss51 & dsp confirm 0x4180 failed,value:%d", rd_buf[GTP_ADDR_LENGTH]); + } + if(retry >= 200) { + GTP_ERROR("Enter update Hold ss51 failed."); + return FAIL; + } + //DSP_CK and DSP_ALU_CK PowerOn + ret = gup_set_ic_msg(client, 0x4010, 0x00); + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]DSP_CK and DSP_ALU_CK PowerOn fail."); + return FAIL; + } + + //disable wdt + ret = gup_set_ic_msg(client, _bRW_MISCTL__TMR0_EN, 0x00); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]disable wdt fail."); + return FAIL; + } + + //clear cache enable + ret = gup_set_ic_msg(client, _bRW_MISCTL__CACHE_EN, 0x00); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]clear cache enable fail."); + return FAIL; + } + + //set boot from sram + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOTCTL_B0_, 0x02); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]set boot from sram fail."); + return FAIL; + } + + //software reboot + ret = gup_set_ic_msg(client, _bWO_MISCTL__CPU_SWRST_PULSE, 0x01); + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]software reboot fail."); + return FAIL; + } + + return SUCCESS; +} + +s32 gup_enter_update_mode_fl(struct i2c_client *client) +{ + s32 ret = -1; + //s32 retry = 0; + //u8 rd_buf[3]; + + //step1:RST output low last at least 2ms + GTP_GPIO_OUTPUT(GTP_RST_PORT, 0); + msleep(2); + + //step2:select I2C slave addr,INT:0--0xBA;1--0x28. + GTP_GPIO_OUTPUT(GTP_INT_PORT, (client->addr == 0x14)); + msleep(2); + + //step3:RST output high reset guitar + GTP_GPIO_OUTPUT(GTP_RST_PORT, 1); + + msleep(5); + + //select addr & hold ss51_dsp + ret = gup_hold_ss51_dsp(client); + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]hold ss51 & dsp failed."); + return FAIL; + } + + //clear control flag + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x00); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]clear control flag fail."); + return FAIL; + } + + //set scramble + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]set scramble fail."); + return FAIL; + } + + //enable accessing code + ret = gup_set_ic_msg(client, _bRW_MISCTL__MEM_CD_EN, 0x01); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]enable accessing code fail."); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_download_fw_dsp(struct i2c_client *client, u8 dwn_mode) +{ + s32 ret = 0; + + //step1:select bank2 + GTP_DEBUG("[download_fw_dsp]step1:select bank2"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, 0x02); + if (ret == FAIL) { + GTP_ERROR("select bank 2 fail"); + return FAIL; + } + + if (GTP_FL_FW_BURN == dwn_mode) { + GTP_INFO("[download_fw_dsp]Begin download dsp fw---->>"); + + if (ret <= 0) { + GTP_ERROR("[download_fw_dsp]select bank2 fail."); + return FAIL; + } + GTP_DEBUG("burn fw dsp"); + ret = gup_burn_fw_proc(client, 0xC000, 2 * FW_DOWNLOAD_LENGTH, FW_DSP_LENGTH); // write the second ban + if (FAIL == ret) { + GTP_ERROR("[download_fw_dsp]download FW dsp fail."); + return FAIL; + } + GTP_INFO("check firmware dsp"); + ret = gup_check_and_repair(client, 0xC000, 2 * FW_DOWNLOAD_LENGTH, FW_DSP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("check fw dsp failed!"); + return FAIL; + } + } else if (GTP_FL_ESD_RECOVERY == dwn_mode) { + GTP_INFO("[download_fw_dsp]Begin esd check dsp fw---->>"); + //GTP_INFO("esd recovery: check fw dsp"); + //ret = gup_check_and_repair(client, 0xC000, 2 * FW_DOWNLOAD_LENGTH, FW_DSP_LENGTH); + + //if(FAIL == ret) + { + //GTP_ERROR("[download_fw_dsp]Checked FW dsp fail, redownload fw dsp"); + GTP_INFO("esd recovery redownload firmware dsp code"); + ret = gup_burn_fw_proc(client, 0xC000, 2 * FW_DOWNLOAD_LENGTH, FW_DSP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("redownload fw dsp failed!"); + return FAIL; + } + } + } else { + //msleep(100); + GTP_INFO("check firmware dsp"); + ret = gup_check_and_repair(client, 0xC000, 2 * FW_DOWNLOAD_LENGTH, FW_DSP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("check fw dsp failed!"); + return FAIL; + } + } + return SUCCESS; +} + +static s32 gup_burn_fw_proc(struct i2c_client *client, u16 start_addr, s32 start_index, s32 burn_len) +{ + s32 ret = 0; + + GTP_DEBUG("burn firmware: 0x%04X, %d bytes, start_index: 0x%04X", start_addr, burn_len, start_index); + + ret = i2c_write_bytes(client, start_addr, (u8*)>p_default_FW_fl[FW_HEAD_LENGTH + start_index], burn_len); + if (ret < 0) { + GTP_ERROR("burn 0x%04X, %d bytes failed!", start_addr, burn_len); + return FAIL; + } + return SUCCESS; +} + +static s32 gup_check_and_repair(struct i2c_client *client, u16 start_addr, s32 start_index, s32 chk_len) +{ + s32 ret = 0; + s32 cmp_len = 0; + u16 cmp_addr = start_addr; + s32 i = 0; + s32 chked_times = 0; + u8 chk_fail = 0; + + GTP_DEBUG("check firmware: start 0x%04X, %d bytes", start_addr, chk_len); + while ((chk_len > 0) && (chked_times < GTP_CHK_FW_MAX)) { + if (chk_len >= GUP_FW_CHK_SIZE) { + cmp_len = GUP_FW_CHK_SIZE; + } else { + cmp_len = chk_len; + } + ret = i2c_read_bytes(client, cmp_addr, chk_cmp_buf, cmp_len); + if (ret < 0) { + chk_fail = 1; + break; + } + for (i = 0; i < cmp_len; ++i) { + if (chk_cmp_buf[i] != gtp_default_FW_fl[FW_HEAD_LENGTH + start_index +i]) { + chk_fail = 1; + i2c_write_bytes(client, cmp_addr+i, >p_default_FW_fl[FW_HEAD_LENGTH + start_index + i], cmp_len-i); + GTP_ERROR("Check failed index: %d(%d != %d), redownload chuck", i, chk_cmp_buf[i], + gtp_default_FW_fl[FW_HEAD_LENGTH + start_index +i]); + break; + } + } + if (chk_fail == 1) { + chk_fail = 0; + chked_times++; + } else { + cmp_addr += cmp_len; + start_index += cmp_len; + chk_len -= cmp_len; + } + } + if (chk_len > 0) { + GTP_ERROR("cmp_addr: 0x%04X, start_index: 0x%02X, chk_len: 0x%04X", cmp_addr, + start_index, chk_len); + return FAIL; + } + return SUCCESS; +} + +static u8 gup_download_fw_ss51(struct i2c_client *client, u8 dwn_mode) +{ + s32 section = 0; + s32 ret = 0; + s32 start_index = 0; + u8 bank = 0; + u16 burn_addr = 0xC000; + + if (GTP_FL_FW_BURN == dwn_mode) { + GTP_INFO("download firmware ss51"); + } else { + GTP_INFO("check firmware ss51"); + } + for (section = 1; section <= 4; section += 2) { + switch (section) { + case 1: + bank = 0x00; + burn_addr = (section - 1) * FW_SS51_SECTION_LEN + 0xC000; + break; + case 3: + bank = 0x01; + burn_addr = (section - 3) * FW_SS51_SECTION_LEN + 0xC000; + break; + } + start_index = (section - 1) * FW_SS51_SECTION_LEN; + + GTP_DEBUG("download firmware ss51: select bank%d", bank); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, bank); + if (GTP_FL_FW_BURN == dwn_mode) { + GTP_INFO("download firmware ss51 section%d & %d", section, section+1); + ret = gup_burn_fw_proc(client, burn_addr, start_index, 2 * FW_SS51_SECTION_LEN); + if (ret == FAIL) { + GTP_ERROR("download fw ss51 section%d & %d failed!", section, section+1); + return FAIL; + } + GTP_INFO("check firmware ss51 section%d & %d", section, section+1); + ret = gup_check_and_repair(client, burn_addr, start_index, 2 * FW_SS51_SECTION_LEN); + if (ret == FAIL) { + GTP_ERROR("check ss51 section%d & %d failed!", section, section+1); + return FAIL; + } + } else if (GTP_FL_ESD_RECOVERY == dwn_mode) { // esd recovery mode + // GTP_INFO("esd recovery check ss51 section%d & %d", section, section+1); + // ret = gup_check_and_repair(client, burn_addr, start_index, FW_SS51_SECTION_LEN); + // if (ret == FAIL) + { + // GTP_ERROR("check ss51 section%d failed, redownload section%d", section, section); + GTP_INFO("esd recovery redownload ss51 section%d & %d", section, section+1); + ret = gup_burn_fw_proc(client, burn_addr, start_index, 2 * FW_SS51_SECTION_LEN); + if (ret == FAIL) { + GTP_ERROR("download fw ss51 section%d failed!", section); + return FAIL; + } + } + } else { + GTP_INFO("check firmware ss51 section%d & %d", section, section+1); + ret = gup_check_and_repair(client, burn_addr, start_index, 2 * FW_SS51_SECTION_LEN); + if (ret == FAIL) { + GTP_ERROR("check ss51 section%d & %d failed!", section, section+1); + return FAIL; + } + } + } + + return SUCCESS; +} + + +static s32 gup_prepare_fl_fw(char *path, st_fw_head *fw_head) +{ + s32 ret = 0; + s32 i = 0; + s32 timeout = 0; + struct goodix_ts_data *ts = i2c_get_clientdata(i2c_connect_client); + + if (!memcmp(path, "update", 6)) { + GTP_INFO("Search for GT9XXF firmware file to update"); + + searching_file = 1; + for (i = 0; i < GUP_SEARCH_FILE_TIMES; ++i) { + if (0 == searching_file) { + GTP_INFO("Force terminate auto update for GT9XXF..."); + return FAIL; + } + GTP_DEBUG("Search for %s, %s for fw update.(%d/%d)", FL_UPDATE_PATH, FL_UPDATE_PATH_SD, i+1, GUP_SEARCH_FILE_TIMES); + update_msg.file = filp_open(FL_UPDATE_PATH, O_RDONLY, 0); + if (IS_ERR(update_msg.file)) { + update_msg.file = filp_open(FL_UPDATE_PATH_SD, O_RDONLY, 0); + if (IS_ERR(update_msg.file)) { + msleep(3000); + continue; + } else { + path = FL_UPDATE_PATH_SD; + break; + } + } else { + path = FL_UPDATE_PATH; + break; + } + } + searching_file = 0; + if (i == 50) { + GTP_INFO("Search timeout, update aborted"); + return FAIL; + } else { + GTP_INFO("GT9XXF firmware file %s found!", path); + _CLOSE_FILE(update_msg.file); + } + while (ts->rqst_processing && (timeout++ < 5)) { + GTP_DEBUG("request processing, waiting for accomplishment"); + msleep(1000); + } + } + GTP_INFO("Firmware update file path: %s", path); + + update_msg.file = filp_open(path, O_RDONLY, 0); + + if (IS_ERR(update_msg.file)) { + GTP_ERROR("Open update file(%s) error!", path); + return FAIL; + } + ret = gup_get_ic_fw_msg(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("failed to get ic firmware info"); + _CLOSE_FILE(update_msg.file); + return FAIL; + } + + update_msg.old_fs = get_fs(); + set_fs(KERNEL_DS); + update_msg.file->f_op->llseek(update_msg.file, 0, SEEK_SET); + update_msg.file->f_op->read(update_msg.file, (char*)fw_head, FW_HEAD_LENGTH, &update_msg.file->f_pos); + + update_msg.force_update = 0xBE; // GT9XXF ignore the 0xBE + + ret = gup_enter_update_judge(fw_head); + if (FAIL == ret) { + set_fs(update_msg.old_fs); + _CLOSE_FILE(update_msg.file); + return FAIL; + } + + update_msg.file->f_op->llseek(update_msg.file, 0, SEEK_SET); + ret = update_msg.file->f_op->read(update_msg.file, (char*)gtp_default_FW_fl, + FW_HEAD_LENGTH+2*FW_DOWNLOAD_LENGTH+FW_DSP_LENGTH, + &update_msg.file->f_pos); + set_fs(update_msg.old_fs); + _CLOSE_FILE(update_msg.file); + + if (ret < 0) { + GTP_ERROR("read %s failed, err-code: %d", path, ret); + return FAIL; + } + return SUCCESS; +} +static u8 gup_check_update_file_fl(struct i2c_client *client, st_fw_head* fw_head, char* path) +{ + s32 ret = 0; + s32 i = 0; + s32 fw_checksum = 0; + + if (NULL != path) { + ret = gup_prepare_fl_fw(path, fw_head); + if (FAIL == ret) { + return FAIL; + } + } else { + memcpy(fw_head, gtp_default_FW_fl, FW_HEAD_LENGTH); + GTP_INFO("FILE HARDWARE INFO: %02x%02x%02x%02x", fw_head->hw_info[0], fw_head->hw_info[1], fw_head->hw_info[2], fw_head->hw_info[3]); + GTP_INFO("FILE PID: %s", fw_head->pid); + fw_head->vid = ((fw_head->vid & 0xFF00) >> 8) + ((fw_head->vid & 0x00FF) << 8); + GTP_INFO("FILE VID: %04x", fw_head->vid); + } + + //check firmware legality + fw_checksum = 0; + for(i = FW_HEAD_LENGTH; i < (FW_HEAD_LENGTH+FW_SECTION_LENGTH*4+FW_DSP_LENGTH); i += 2) { + fw_checksum += (gtp_default_FW_fl[i] << 8) + gtp_default_FW_fl[i+1]; + } + ret = SUCCESS; + + GTP_DEBUG("firmware checksum: %x", fw_checksum&0xFFFF); + if (fw_checksum & 0xFFFF) { + GTP_ERROR("Illegal firmware file."); + ret = FAIL; + } + + return ret; +} + + + +s32 gup_fw_download_proc(void *dir, u8 dwn_mode) +{ + s32 ret = 0; + u8 retry = 0; + st_fw_head fw_head; + struct goodix_ts_data *ts; + + ts = i2c_get_clientdata(i2c_connect_client); + if (NULL == dir) { + if(GTP_FL_FW_BURN == dwn_mode) { // GT9XXF firmware burn mode + GTP_INFO("[fw_download_proc]Begin fw download ......"); + } else if (GTP_FL_ESD_RECOVERY == dwn_mode) { // GTP_FL_ESD_RECOVERY: GT9XXF esd recovery mode + GTP_INFO("[fw_download_proc]Begin fw esd recovery check ......"); + } else { + GTP_INFO("[fw_download_proc]Being fw repair check......"); + } + } else { + GTP_INFO("[fw_download_proc]Begin firmware update by bin file"); + } + + total_len = 100; + show_len = 0; + + ret = gup_check_update_file_fl(i2c_connect_client, &fw_head, (char *)dir); + show_len = 10; + + if (FAIL == ret) { + GTP_ERROR("[fw_download_proc]check update file fail."); + goto file_fail; + } + + if (!memcmp(fw_head.pid, "950", 3)) { + ts->is_950 = 1; + GTP_DEBUG("GT9XXF Ic Type: gt950"); + } else { + ts->is_950 = 0; + } + + gtp_irq_disable(ts); +#if GTP_ESD_PROTECT + if (NULL != dir) { + gtp_esd_switch(ts->client, SWITCH_OFF); + } +#endif + + ret = gup_enter_update_mode_fl(i2c_connect_client); + show_len = 20; + if (FAIL == ret) { + GTP_ERROR("[fw_download_proc]enter update mode fail."); + goto download_fail; + } + + while (retry++ < 5) { + ret = gup_download_fw_ss51(i2c_connect_client, dwn_mode); + show_len = 60; + if (FAIL == ret) { + GTP_ERROR("[fw_download_proc]burn ss51 firmware fail."); + continue; + } + + ret = gup_download_fw_dsp(i2c_connect_client, dwn_mode); + show_len = 80; + if (FAIL == ret) { + GTP_ERROR("[fw_download_proc]burn dsp firmware fail."); + continue; + } + + GTP_INFO("[fw_download_proc]UPDATE SUCCESS."); + break; + } + + if (retry >= 5) { + GTP_ERROR("[fw_download_proc]retry timeout,UPDATE FAIL."); + goto download_fail; + } + + if (NULL != dir) { + gtp_fw_startup(ts->client); +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_ON); +#endif + } + gtp_irq_enable(ts); + show_len = 100; + return SUCCESS; + +download_fail: + if (NULL != dir) { + gtp_fw_startup(ts->client); +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_ON); +#endif + } + gtp_irq_enable(ts); +file_fail: + show_len = 200; + + //ts->enter_udpate = 0; + return FAIL; +} + +#endif + +//**************** For GT9XXF End ********************// \ No newline at end of file diff --git a/drivers/input/touchscreen/gunze.c b/drivers/input/touchscreen/gunze.c new file mode 100644 index 00000000..41c71766 --- /dev/null +++ b/drivers/input/touchscreen/gunze.c @@ -0,0 +1,189 @@ +/* + * Copyright (c) 2000-2001 Vojtech Pavlik + */ + +/* + * Gunze AHL-51S touchscreen driver for Linux + */ + +/* + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Should you need to contact me, the author, you can do so either by + * e-mail - mail your message to , or by paper mail: + * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic + */ + +#include +#include +#include +#include +#include +#include +#include + +#define DRIVER_DESC "Gunze AHL-51S touchscreen driver" + +MODULE_AUTHOR("Vojtech Pavlik "); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL"); + +/* + * Definitions & global arrays. + */ + +#define GUNZE_MAX_LENGTH 10 + +/* + * Per-touchscreen data. + */ + +struct gunze { + struct input_dev *dev; + struct serio *serio; + int idx; + unsigned char data[GUNZE_MAX_LENGTH]; + char phys[32]; +}; + +static void gunze_process_packet(struct gunze* gunze) +{ + struct input_dev *dev = gunze->dev; + + if (gunze->idx != GUNZE_MAX_LENGTH || gunze->data[5] != ',' || + (gunze->data[0] != 'T' && gunze->data[0] != 'R')) { + printk(KERN_WARNING "gunze.c: bad packet: >%.*s<\n", GUNZE_MAX_LENGTH, gunze->data); + return; + } + + input_report_abs(dev, ABS_X, simple_strtoul(gunze->data + 1, NULL, 10)); + input_report_abs(dev, ABS_Y, 1024 - simple_strtoul(gunze->data + 6, NULL, 10)); + input_report_key(dev, BTN_TOUCH, gunze->data[0] == 'T'); + input_sync(dev); +} + +static irqreturn_t gunze_interrupt(struct serio *serio, + unsigned char data, unsigned int flags) +{ + struct gunze* gunze = serio_get_drvdata(serio); + + if (data == '\r') { + gunze_process_packet(gunze); + gunze->idx = 0; + } else { + if (gunze->idx < GUNZE_MAX_LENGTH) + gunze->data[gunze->idx++] = data; + } + return IRQ_HANDLED; +} + +/* + * gunze_disconnect() is the opposite of gunze_connect() + */ + +static void gunze_disconnect(struct serio *serio) +{ + struct gunze *gunze = serio_get_drvdata(serio); + + input_get_device(gunze->dev); + input_unregister_device(gunze->dev); + serio_close(serio); + serio_set_drvdata(serio, NULL); + input_put_device(gunze->dev); + kfree(gunze); +} + +/* + * gunze_connect() is the routine that is called when someone adds a + * new serio device that supports Gunze protocol and registers it as + * an input device. + */ + +static int gunze_connect(struct serio *serio, struct serio_driver *drv) +{ + struct gunze *gunze; + struct input_dev *input_dev; + int err; + + gunze = kzalloc(sizeof(struct gunze), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!gunze || !input_dev) { + err = -ENOMEM; + goto fail1; + } + + gunze->serio = serio; + gunze->dev = input_dev; + snprintf(gunze->phys, sizeof(serio->phys), "%s/input0", serio->phys); + + input_dev->name = "Gunze AHL-51S TouchScreen"; + input_dev->phys = gunze->phys; + input_dev->id.bustype = BUS_RS232; + input_dev->id.vendor = SERIO_GUNZE; + input_dev->id.product = 0x0051; + input_dev->id.version = 0x0100; + input_dev->dev.parent = &serio->dev; + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(input_dev, ABS_X, 24, 1000, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 24, 1000, 0, 0); + + serio_set_drvdata(serio, gunze); + + err = serio_open(serio, drv); + if (err) + goto fail2; + + err = input_register_device(gunze->dev); + if (err) + goto fail3; + + return 0; + + fail3: serio_close(serio); + fail2: serio_set_drvdata(serio, NULL); + fail1: input_free_device(input_dev); + kfree(gunze); + return err; +} + +/* + * The serio driver structure. + */ + +static struct serio_device_id gunze_serio_ids[] = { + { + .type = SERIO_RS232, + .proto = SERIO_GUNZE, + .id = SERIO_ANY, + .extra = SERIO_ANY, + }, + { 0 } +}; + +MODULE_DEVICE_TABLE(serio, gunze_serio_ids); + +static struct serio_driver gunze_drv = { + .driver = { + .name = "gunze", + }, + .description = DRIVER_DESC, + .id_table = gunze_serio_ids, + .interrupt = gunze_interrupt, + .connect = gunze_connect, + .disconnect = gunze_disconnect, +}; + +module_serio_driver(gunze_drv); diff --git a/drivers/input/touchscreen/hampshire.c b/drivers/input/touchscreen/hampshire.c new file mode 100644 index 00000000..0cc47ea9 --- /dev/null +++ b/drivers/input/touchscreen/hampshire.c @@ -0,0 +1,190 @@ +/* + * Hampshire serial touchscreen driver + * + * Copyright (c) 2010 Adam Bennett + * Based on the dynapro driver (c) Tias Guns + * + */ + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +/* + * 2010/04/08 Adam Bennett + * Copied dynapro.c and edited for Hampshire 4-byte protocol + */ + +#include +#include +#include +#include +#include +#include +#include + +#define DRIVER_DESC "Hampshire serial touchscreen driver" + +MODULE_AUTHOR("Adam Bennett "); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL"); + +/* + * Definitions & global arrays. + */ + +#define HAMPSHIRE_FORMAT_TOUCH_BIT 0x40 +#define HAMPSHIRE_FORMAT_LENGTH 4 +#define HAMPSHIRE_RESPONSE_BEGIN_BYTE 0x80 + +#define HAMPSHIRE_MIN_XC 0 +#define HAMPSHIRE_MAX_XC 0x1000 +#define HAMPSHIRE_MIN_YC 0 +#define HAMPSHIRE_MAX_YC 0x1000 + +#define HAMPSHIRE_GET_XC(data) (((data[3] & 0x0c) >> 2) | (data[1] << 2) | ((data[0] & 0x38) << 6)) +#define HAMPSHIRE_GET_YC(data) ((data[3] & 0x03) | (data[2] << 2) | ((data[0] & 0x07) << 9)) +#define HAMPSHIRE_GET_TOUCHED(data) (HAMPSHIRE_FORMAT_TOUCH_BIT & data[0]) + +/* + * Per-touchscreen data. + */ + +struct hampshire { + struct input_dev *dev; + struct serio *serio; + int idx; + unsigned char data[HAMPSHIRE_FORMAT_LENGTH]; + char phys[32]; +}; + +static void hampshire_process_data(struct hampshire *phampshire) +{ + struct input_dev *dev = phampshire->dev; + + if (HAMPSHIRE_FORMAT_LENGTH == ++phampshire->idx) { + input_report_abs(dev, ABS_X, HAMPSHIRE_GET_XC(phampshire->data)); + input_report_abs(dev, ABS_Y, HAMPSHIRE_GET_YC(phampshire->data)); + input_report_key(dev, BTN_TOUCH, + HAMPSHIRE_GET_TOUCHED(phampshire->data)); + input_sync(dev); + + phampshire->idx = 0; + } +} + +static irqreturn_t hampshire_interrupt(struct serio *serio, + unsigned char data, unsigned int flags) +{ + struct hampshire *phampshire = serio_get_drvdata(serio); + + phampshire->data[phampshire->idx] = data; + + if (HAMPSHIRE_RESPONSE_BEGIN_BYTE & phampshire->data[0]) + hampshire_process_data(phampshire); + else + dev_dbg(&serio->dev, "unknown/unsynchronized data: %x\n", + phampshire->data[0]); + + return IRQ_HANDLED; +} + +static void hampshire_disconnect(struct serio *serio) +{ + struct hampshire *phampshire = serio_get_drvdata(serio); + + input_get_device(phampshire->dev); + input_unregister_device(phampshire->dev); + serio_close(serio); + serio_set_drvdata(serio, NULL); + input_put_device(phampshire->dev); + kfree(phampshire); +} + +/* + * hampshire_connect() is the routine that is called when someone adds a + * new serio device that supports hampshire protocol and registers it as + * an input device. This is usually accomplished using inputattach. + */ + +static int hampshire_connect(struct serio *serio, struct serio_driver *drv) +{ + struct hampshire *phampshire; + struct input_dev *input_dev; + int err; + + phampshire = kzalloc(sizeof(struct hampshire), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!phampshire || !input_dev) { + err = -ENOMEM; + goto fail1; + } + + phampshire->serio = serio; + phampshire->dev = input_dev; + snprintf(phampshire->phys, sizeof(phampshire->phys), + "%s/input0", serio->phys); + + input_dev->name = "Hampshire Serial TouchScreen"; + input_dev->phys = phampshire->phys; + input_dev->id.bustype = BUS_RS232; + input_dev->id.vendor = SERIO_HAMPSHIRE; + input_dev->id.product = 0; + input_dev->id.version = 0x0001; + input_dev->dev.parent = &serio->dev; + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(phampshire->dev, ABS_X, + HAMPSHIRE_MIN_XC, HAMPSHIRE_MAX_XC, 0, 0); + input_set_abs_params(phampshire->dev, ABS_Y, + HAMPSHIRE_MIN_YC, HAMPSHIRE_MAX_YC, 0, 0); + + serio_set_drvdata(serio, phampshire); + + err = serio_open(serio, drv); + if (err) + goto fail2; + + err = input_register_device(phampshire->dev); + if (err) + goto fail3; + + return 0; + + fail3: serio_close(serio); + fail2: serio_set_drvdata(serio, NULL); + fail1: input_free_device(input_dev); + kfree(phampshire); + return err; +} + +/* + * The serio driver structure. + */ + +static struct serio_device_id hampshire_serio_ids[] = { + { + .type = SERIO_RS232, + .proto = SERIO_HAMPSHIRE, + .id = SERIO_ANY, + .extra = SERIO_ANY, + }, + { 0 } +}; + +MODULE_DEVICE_TABLE(serio, hampshire_serio_ids); + +static struct serio_driver hampshire_drv = { + .driver = { + .name = "hampshire", + }, + .description = DRIVER_DESC, + .id_table = hampshire_serio_ids, + .interrupt = hampshire_interrupt, + .connect = hampshire_connect, + .disconnect = hampshire_disconnect, +}; + +module_serio_driver(hampshire_drv); diff --git a/drivers/input/touchscreen/hp680_ts_input.c b/drivers/input/touchscreen/hp680_ts_input.c new file mode 100644 index 00000000..85cf9bee --- /dev/null +++ b/drivers/input/touchscreen/hp680_ts_input.c @@ -0,0 +1,127 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#define MODNAME "hp680_ts_input" + +#define HP680_TS_ABS_X_MIN 40 +#define HP680_TS_ABS_X_MAX 950 +#define HP680_TS_ABS_Y_MIN 80 +#define HP680_TS_ABS_Y_MAX 910 + +#define PHDR 0xa400012e +#define SCPDR 0xa4000136 + +static void do_softint(struct work_struct *work); + +static struct input_dev *hp680_ts_dev; +static DECLARE_DELAYED_WORK(work, do_softint); + +static void do_softint(struct work_struct *work) +{ + int absx = 0, absy = 0; + u8 scpdr; + int touched = 0; + + if (__raw_readb(PHDR) & PHDR_TS_PEN_DOWN) { + scpdr = __raw_readb(SCPDR); + scpdr |= SCPDR_TS_SCAN_ENABLE; + scpdr &= ~SCPDR_TS_SCAN_Y; + __raw_writeb(scpdr, SCPDR); + udelay(30); + + absy = adc_single(ADC_CHANNEL_TS_Y); + + scpdr = __raw_readb(SCPDR); + scpdr |= SCPDR_TS_SCAN_Y; + scpdr &= ~SCPDR_TS_SCAN_X; + __raw_writeb(scpdr, SCPDR); + udelay(30); + + absx = adc_single(ADC_CHANNEL_TS_X); + + scpdr = __raw_readb(SCPDR); + scpdr |= SCPDR_TS_SCAN_X; + scpdr &= ~SCPDR_TS_SCAN_ENABLE; + __raw_writeb(scpdr, SCPDR); + udelay(100); + touched = __raw_readb(PHDR) & PHDR_TS_PEN_DOWN; + } + + if (touched) { + input_report_key(hp680_ts_dev, BTN_TOUCH, 1); + input_report_abs(hp680_ts_dev, ABS_X, absx); + input_report_abs(hp680_ts_dev, ABS_Y, absy); + } else { + input_report_key(hp680_ts_dev, BTN_TOUCH, 0); + } + + input_sync(hp680_ts_dev); + enable_irq(HP680_TS_IRQ); +} + +static irqreturn_t hp680_ts_interrupt(int irq, void *dev) +{ + disable_irq_nosync(irq); + schedule_delayed_work(&work, HZ / 20); + + return IRQ_HANDLED; +} + +static int __init hp680_ts_init(void) +{ + int err; + + hp680_ts_dev = input_allocate_device(); + if (!hp680_ts_dev) + return -ENOMEM; + + hp680_ts_dev->evbit[0] = BIT_MASK(EV_ABS) | BIT_MASK(EV_KEY); + hp680_ts_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + + input_set_abs_params(hp680_ts_dev, ABS_X, + HP680_TS_ABS_X_MIN, HP680_TS_ABS_X_MAX, 0, 0); + input_set_abs_params(hp680_ts_dev, ABS_Y, + HP680_TS_ABS_Y_MIN, HP680_TS_ABS_Y_MAX, 0, 0); + + hp680_ts_dev->name = "HP Jornada touchscreen"; + hp680_ts_dev->phys = "hp680_ts/input0"; + + if (request_irq(HP680_TS_IRQ, hp680_ts_interrupt, + 0, MODNAME, NULL) < 0) { + printk(KERN_ERR "hp680_touchscreen.c: Can't allocate irq %d\n", + HP680_TS_IRQ); + err = -EBUSY; + goto fail1; + } + + err = input_register_device(hp680_ts_dev); + if (err) + goto fail2; + + return 0; + + fail2: free_irq(HP680_TS_IRQ, NULL); + cancel_delayed_work_sync(&work); + fail1: input_free_device(hp680_ts_dev); + return err; +} + +static void __exit hp680_ts_exit(void) +{ + free_irq(HP680_TS_IRQ, NULL); + cancel_delayed_work_sync(&work); + input_unregister_device(hp680_ts_dev); +} + +module_init(hp680_ts_init); +module_exit(hp680_ts_exit); + +MODULE_AUTHOR("Andriy Skulysh, askulysh@image.kiev.ua"); +MODULE_DESCRIPTION("HP Jornada 680 touchscreen driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/htcpen.c b/drivers/input/touchscreen/htcpen.c new file mode 100644 index 00000000..6c4fb843 --- /dev/null +++ b/drivers/input/touchscreen/htcpen.c @@ -0,0 +1,250 @@ +/* + * HTC Shift touchscreen driver + * + * Copyright (C) 2008 Pau Oliva Fora + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +MODULE_AUTHOR("Pau Oliva Fora "); +MODULE_DESCRIPTION("HTC Shift touchscreen driver"); +MODULE_LICENSE("GPL"); + +#define HTCPEN_PORT_IRQ_CLEAR 0x068 +#define HTCPEN_PORT_INIT 0x06c +#define HTCPEN_PORT_INDEX 0x0250 +#define HTCPEN_PORT_DATA 0x0251 +#define HTCPEN_IRQ 3 + +#define DEVICE_ENABLE 0xa2 +#define DEVICE_DISABLE 0xa3 + +#define X_INDEX 3 +#define Y_INDEX 5 +#define TOUCH_INDEX 0xb +#define LSB_XY_INDEX 0xc +#define X_AXIS_MAX 2040 +#define Y_AXIS_MAX 2040 + +static bool invert_x; +module_param(invert_x, bool, 0644); +MODULE_PARM_DESC(invert_x, "If set, X axis is inverted"); +static bool invert_y; +module_param(invert_y, bool, 0644); +MODULE_PARM_DESC(invert_y, "If set, Y axis is inverted"); + +static irqreturn_t htcpen_interrupt(int irq, void *handle) +{ + struct input_dev *htcpen_dev = handle; + unsigned short x, y, xy; + + /* 0 = press; 1 = release */ + outb_p(TOUCH_INDEX, HTCPEN_PORT_INDEX); + + if (inb_p(HTCPEN_PORT_DATA)) { + input_report_key(htcpen_dev, BTN_TOUCH, 0); + } else { + outb_p(X_INDEX, HTCPEN_PORT_INDEX); + x = inb_p(HTCPEN_PORT_DATA); + + outb_p(Y_INDEX, HTCPEN_PORT_INDEX); + y = inb_p(HTCPEN_PORT_DATA); + + outb_p(LSB_XY_INDEX, HTCPEN_PORT_INDEX); + xy = inb_p(HTCPEN_PORT_DATA); + + /* get high resolution value of X and Y using LSB */ + x = X_AXIS_MAX - ((x * 8) + ((xy >> 4) & 0xf)); + y = (y * 8) + (xy & 0xf); + if (invert_x) + x = X_AXIS_MAX - x; + if (invert_y) + y = Y_AXIS_MAX - y; + + if (x != X_AXIS_MAX && x != 0) { + input_report_key(htcpen_dev, BTN_TOUCH, 1); + input_report_abs(htcpen_dev, ABS_X, x); + input_report_abs(htcpen_dev, ABS_Y, y); + } + } + + input_sync(htcpen_dev); + + inb_p(HTCPEN_PORT_IRQ_CLEAR); + + return IRQ_HANDLED; +} + +static int htcpen_open(struct input_dev *dev) +{ + outb_p(DEVICE_ENABLE, HTCPEN_PORT_INIT); + + return 0; +} + +static void htcpen_close(struct input_dev *dev) +{ + outb_p(DEVICE_DISABLE, HTCPEN_PORT_INIT); + synchronize_irq(HTCPEN_IRQ); +} + +static int htcpen_isa_probe(struct device *dev, unsigned int id) +{ + struct input_dev *htcpen_dev; + int err = -EBUSY; + + if (!request_region(HTCPEN_PORT_IRQ_CLEAR, 1, "htcpen")) { + printk(KERN_ERR "htcpen: unable to get IO region 0x%x\n", + HTCPEN_PORT_IRQ_CLEAR); + goto request_region1_failed; + } + + if (!request_region(HTCPEN_PORT_INIT, 1, "htcpen")) { + printk(KERN_ERR "htcpen: unable to get IO region 0x%x\n", + HTCPEN_PORT_INIT); + goto request_region2_failed; + } + + if (!request_region(HTCPEN_PORT_INDEX, 2, "htcpen")) { + printk(KERN_ERR "htcpen: unable to get IO region 0x%x\n", + HTCPEN_PORT_INDEX); + goto request_region3_failed; + } + + htcpen_dev = input_allocate_device(); + if (!htcpen_dev) { + printk(KERN_ERR "htcpen: can't allocate device\n"); + err = -ENOMEM; + goto input_alloc_failed; + } + + htcpen_dev->name = "HTC Shift EC TouchScreen"; + htcpen_dev->id.bustype = BUS_ISA; + + htcpen_dev->evbit[0] = BIT_MASK(EV_ABS) | BIT_MASK(EV_KEY); + htcpen_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(htcpen_dev, ABS_X, 0, X_AXIS_MAX, 0, 0); + input_set_abs_params(htcpen_dev, ABS_Y, 0, Y_AXIS_MAX, 0, 0); + + htcpen_dev->open = htcpen_open; + htcpen_dev->close = htcpen_close; + + err = request_irq(HTCPEN_IRQ, htcpen_interrupt, 0, "htcpen", + htcpen_dev); + if (err) { + printk(KERN_ERR "htcpen: irq busy\n"); + goto request_irq_failed; + } + + inb_p(HTCPEN_PORT_IRQ_CLEAR); + + err = input_register_device(htcpen_dev); + if (err) + goto input_register_failed; + + dev_set_drvdata(dev, htcpen_dev); + + return 0; + + input_register_failed: + free_irq(HTCPEN_IRQ, htcpen_dev); + request_irq_failed: + input_free_device(htcpen_dev); + input_alloc_failed: + release_region(HTCPEN_PORT_INDEX, 2); + request_region3_failed: + release_region(HTCPEN_PORT_INIT, 1); + request_region2_failed: + release_region(HTCPEN_PORT_IRQ_CLEAR, 1); + request_region1_failed: + return err; +} + +static int htcpen_isa_remove(struct device *dev, unsigned int id) +{ + struct input_dev *htcpen_dev = dev_get_drvdata(dev); + + input_unregister_device(htcpen_dev); + + free_irq(HTCPEN_IRQ, htcpen_dev); + + release_region(HTCPEN_PORT_INDEX, 2); + release_region(HTCPEN_PORT_INIT, 1); + release_region(HTCPEN_PORT_IRQ_CLEAR, 1); + + dev_set_drvdata(dev, NULL); + + return 0; +} + +#ifdef CONFIG_PM +static int htcpen_isa_suspend(struct device *dev, unsigned int n, + pm_message_t state) +{ + outb_p(DEVICE_DISABLE, HTCPEN_PORT_INIT); + + return 0; +} + +static int htcpen_isa_resume(struct device *dev, unsigned int n) +{ + outb_p(DEVICE_ENABLE, HTCPEN_PORT_INIT); + + return 0; +} +#endif + +static struct isa_driver htcpen_isa_driver = { + .probe = htcpen_isa_probe, + .remove = htcpen_isa_remove, +#ifdef CONFIG_PM + .suspend = htcpen_isa_suspend, + .resume = htcpen_isa_resume, +#endif + .driver = { + .owner = THIS_MODULE, + .name = "htcpen", + } +}; + +static struct dmi_system_id __initdata htcshift_dmi_table[] = { + { + .ident = "Shift", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "High Tech Computer Corp"), + DMI_MATCH(DMI_PRODUCT_NAME, "Shift"), + }, + }, + { } +}; +MODULE_DEVICE_TABLE(dmi, htcshift_dmi_table); + +static int __init htcpen_isa_init(void) +{ + if (!dmi_check_system(htcshift_dmi_table)) + return -ENODEV; + + return isa_register_driver(&htcpen_isa_driver, 1); +} + +static void __exit htcpen_isa_exit(void) +{ + isa_unregister_driver(&htcpen_isa_driver); +} + +module_init(htcpen_isa_init); +module_exit(htcpen_isa_exit); diff --git a/drivers/input/touchscreen/ili210x.c b/drivers/input/touchscreen/ili210x.c new file mode 100644 index 00000000..1418bdda --- /dev/null +++ b/drivers/input/touchscreen/ili210x.c @@ -0,0 +1,360 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MAX_TOUCHES 2 +#define DEFAULT_POLL_PERIOD 20 + +/* Touchscreen commands */ +#define REG_TOUCHDATA 0x10 +#define REG_PANEL_INFO 0x20 +#define REG_FIRMWARE_VERSION 0x40 +#define REG_CALIBRATE 0xcc + +struct finger { + u8 x_low; + u8 x_high; + u8 y_low; + u8 y_high; +} __packed; + +struct touchdata { + u8 status; + struct finger finger[MAX_TOUCHES]; +} __packed; + +struct panel_info { + struct finger finger_max; + u8 xchannel_num; + u8 ychannel_num; +} __packed; + +struct firmware_version { + u8 id; + u8 major; + u8 minor; +} __packed; + +struct ili210x { + struct i2c_client *client; + struct input_dev *input; + bool (*get_pendown_state)(void); + unsigned int poll_period; + struct delayed_work dwork; +}; + +static int ili210x_read_reg(struct i2c_client *client, u8 reg, void *buf, + size_t len) +{ + struct i2c_msg msg[2] = { + { + .addr = client->addr, + .flags = 0, + .len = 1, + .buf = ®, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = len, + .buf = buf, + } + }; + + if (i2c_transfer(client->adapter, msg, 2) != 2) { + dev_err(&client->dev, "i2c transfer failed\n"); + return -EIO; + } + + return 0; +} + +static void ili210x_report_events(struct input_dev *input, + const struct touchdata *touchdata) +{ + int i; + bool touch; + unsigned int x, y; + const struct finger *finger; + + for (i = 0; i < MAX_TOUCHES; i++) { + input_mt_slot(input, i); + + finger = &touchdata->finger[i]; + + touch = touchdata->status & (1 << i); + input_mt_report_slot_state(input, MT_TOOL_FINGER, touch); + if (touch) { + x = finger->x_low | (finger->x_high << 8); + y = finger->y_low | (finger->y_high << 8); + + input_report_abs(input, ABS_MT_POSITION_X, x); + input_report_abs(input, ABS_MT_POSITION_Y, y); + } + } + + input_mt_report_pointer_emulation(input, false); + input_sync(input); +} + +static bool get_pendown_state(const struct ili210x *priv) +{ + bool state = false; + + if (priv->get_pendown_state) + state = priv->get_pendown_state(); + + return state; +} + +static void ili210x_work(struct work_struct *work) +{ + struct ili210x *priv = container_of(work, struct ili210x, + dwork.work); + struct i2c_client *client = priv->client; + struct touchdata touchdata; + int error; + + error = ili210x_read_reg(client, REG_TOUCHDATA, + &touchdata, sizeof(touchdata)); + if (error) { + dev_err(&client->dev, + "Unable to get touchdata, err = %d\n", error); + return; + } + + ili210x_report_events(priv->input, &touchdata); + + if ((touchdata.status & 0xf3) || get_pendown_state(priv)) + schedule_delayed_work(&priv->dwork, + msecs_to_jiffies(priv->poll_period)); +} + +static irqreturn_t ili210x_irq(int irq, void *irq_data) +{ + struct ili210x *priv = irq_data; + + schedule_delayed_work(&priv->dwork, 0); + + return IRQ_HANDLED; +} + +static ssize_t ili210x_calibrate(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct i2c_client *client = to_i2c_client(dev); + struct ili210x *priv = i2c_get_clientdata(client); + unsigned long calibrate; + int rc; + u8 cmd = REG_CALIBRATE; + + if (kstrtoul(buf, 10, &calibrate)) + return -EINVAL; + + if (calibrate > 1) + return -EINVAL; + + if (calibrate) { + rc = i2c_master_send(priv->client, &cmd, sizeof(cmd)); + if (rc != sizeof(cmd)) + return -EIO; + } + + return count; +} +static DEVICE_ATTR(calibrate, 0644, NULL, ili210x_calibrate); + +static struct attribute *ili210x_attributes[] = { + &dev_attr_calibrate.attr, + NULL, +}; + +static const struct attribute_group ili210x_attr_group = { + .attrs = ili210x_attributes, +}; + +static int ili210x_i2c_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct device *dev = &client->dev; + const struct ili210x_platform_data *pdata = dev->platform_data; + struct ili210x *priv; + struct input_dev *input; + struct panel_info panel; + struct firmware_version firmware; + int xmax, ymax; + int error; + + dev_dbg(dev, "Probing for ILI210X I2C Touschreen driver"); + + if (!pdata) { + dev_err(dev, "No platform data!\n"); + return -EINVAL; + } + + if (client->irq <= 0) { + dev_err(dev, "No IRQ!\n"); + return -EINVAL; + } + + /* Get firmware version */ + error = ili210x_read_reg(client, REG_FIRMWARE_VERSION, + &firmware, sizeof(firmware)); + if (error) { + dev_err(dev, "Failed to get firmware version, err: %d\n", + error); + return error; + } + + /* get panel info */ + error = ili210x_read_reg(client, REG_PANEL_INFO, &panel, sizeof(panel)); + if (error) { + dev_err(dev, "Failed to get panel informations, err: %d\n", + error); + return error; + } + + xmax = panel.finger_max.x_low | (panel.finger_max.x_high << 8); + ymax = panel.finger_max.y_low | (panel.finger_max.y_high << 8); + + priv = kzalloc(sizeof(*priv), GFP_KERNEL); + input = input_allocate_device(); + if (!priv || !input) { + error = -ENOMEM; + goto err_free_mem; + } + + priv->client = client; + priv->input = input; + priv->get_pendown_state = pdata->get_pendown_state; + priv->poll_period = pdata->poll_period ? : DEFAULT_POLL_PERIOD; + INIT_DELAYED_WORK(&priv->dwork, ili210x_work); + + /* Setup input device */ + input->name = "ILI210x Touchscreen"; + input->id.bustype = BUS_I2C; + input->dev.parent = dev; + + __set_bit(EV_SYN, input->evbit); + __set_bit(EV_KEY, input->evbit); + __set_bit(EV_ABS, input->evbit); + __set_bit(BTN_TOUCH, input->keybit); + + /* Single touch */ + input_set_abs_params(input, ABS_X, 0, xmax, 0, 0); + input_set_abs_params(input, ABS_Y, 0, ymax, 0, 0); + + /* Multi touch */ + input_mt_init_slots(input, MAX_TOUCHES, 0); + input_set_abs_params(input, ABS_MT_POSITION_X, 0, xmax, 0, 0); + input_set_abs_params(input, ABS_MT_POSITION_Y, 0, ymax, 0, 0); + + input_set_drvdata(input, priv); + i2c_set_clientdata(client, priv); + + error = request_irq(client->irq, ili210x_irq, pdata->irq_flags, + client->name, priv); + if (error) { + dev_err(dev, "Unable to request touchscreen IRQ, err: %d\n", + error); + goto err_free_mem; + } + + error = sysfs_create_group(&dev->kobj, &ili210x_attr_group); + if (error) { + dev_err(dev, "Unable to create sysfs attributes, err: %d\n", + error); + goto err_free_irq; + } + + error = input_register_device(priv->input); + if (error) { + dev_err(dev, "Cannot regiser input device, err: %d\n", error); + goto err_remove_sysfs; + } + + device_init_wakeup(&client->dev, 1); + + dev_dbg(dev, + "ILI210x initialized (IRQ: %d), firmware version %d.%d.%d", + client->irq, firmware.id, firmware.major, firmware.minor); + + return 0; + +err_remove_sysfs: + sysfs_remove_group(&dev->kobj, &ili210x_attr_group); +err_free_irq: + free_irq(client->irq, priv); +err_free_mem: + input_free_device(input); + kfree(priv); + return error; +} + +static int ili210x_i2c_remove(struct i2c_client *client) +{ + struct ili210x *priv = i2c_get_clientdata(client); + + sysfs_remove_group(&client->dev.kobj, &ili210x_attr_group); + free_irq(priv->client->irq, priv); + cancel_delayed_work_sync(&priv->dwork); + input_unregister_device(priv->input); + kfree(priv); + + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int ili210x_i2c_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + + if (device_may_wakeup(&client->dev)) + enable_irq_wake(client->irq); + + return 0; +} + +static int ili210x_i2c_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + + if (device_may_wakeup(&client->dev)) + disable_irq_wake(client->irq); + + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(ili210x_i2c_pm, + ili210x_i2c_suspend, ili210x_i2c_resume); + +static const struct i2c_device_id ili210x_i2c_id[] = { + { "ili210x", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, ili210x_i2c_id); + +static struct i2c_driver ili210x_ts_driver = { + .driver = { + .name = "ili210x_i2c", + .owner = THIS_MODULE, + .pm = &ili210x_i2c_pm, + }, + .id_table = ili210x_i2c_id, + .probe = ili210x_i2c_probe, + .remove = ili210x_i2c_remove, +}; + +module_i2c_driver(ili210x_ts_driver); + +MODULE_AUTHOR("Olivier Sobrie "); +MODULE_DESCRIPTION("ILI210X I2C Touchscreen Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/inexio.c b/drivers/input/touchscreen/inexio.c new file mode 100644 index 00000000..a29c99c3 --- /dev/null +++ b/drivers/input/touchscreen/inexio.c @@ -0,0 +1,192 @@ +/* + * iNexio serial touchscreen driver + * + * Copyright (c) 2008 Richard Lemon + * Based on the mtouch driver (c) Vojtech Pavlik and Dan Streetman + * + */ + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +/* + * 2008/06/19 Richard Lemon + * Copied mtouch.c and edited for iNexio protocol + */ + +#include +#include +#include +#include +#include +#include +#include + +#define DRIVER_DESC "iNexio serial touchscreen driver" + +MODULE_AUTHOR("Richard Lemon "); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL"); + +/* + * Definitions & global arrays. + */ + +#define INEXIO_FORMAT_TOUCH_BIT 0x01 +#define INEXIO_FORMAT_LENGTH 5 +#define INEXIO_RESPONSE_BEGIN_BYTE 0x80 + +/* todo: check specs for max length of all responses */ +#define INEXIO_MAX_LENGTH 16 + +#define INEXIO_MIN_XC 0 +#define INEXIO_MAX_XC 0x3fff +#define INEXIO_MIN_YC 0 +#define INEXIO_MAX_YC 0x3fff + +#define INEXIO_GET_XC(data) (((data[1])<<7) | data[2]) +#define INEXIO_GET_YC(data) (((data[3])<<7) | data[4]) +#define INEXIO_GET_TOUCHED(data) (INEXIO_FORMAT_TOUCH_BIT & data[0]) + +/* + * Per-touchscreen data. + */ + +struct inexio { + struct input_dev *dev; + struct serio *serio; + int idx; + unsigned char data[INEXIO_MAX_LENGTH]; + char phys[32]; +}; + +static void inexio_process_data(struct inexio *pinexio) +{ + struct input_dev *dev = pinexio->dev; + + if (INEXIO_FORMAT_LENGTH == ++pinexio->idx) { + input_report_abs(dev, ABS_X, INEXIO_GET_XC(pinexio->data)); + input_report_abs(dev, ABS_Y, INEXIO_GET_YC(pinexio->data)); + input_report_key(dev, BTN_TOUCH, INEXIO_GET_TOUCHED(pinexio->data)); + input_sync(dev); + + pinexio->idx = 0; + } +} + +static irqreturn_t inexio_interrupt(struct serio *serio, + unsigned char data, unsigned int flags) +{ + struct inexio* pinexio = serio_get_drvdata(serio); + + pinexio->data[pinexio->idx] = data; + + if (INEXIO_RESPONSE_BEGIN_BYTE&pinexio->data[0]) + inexio_process_data(pinexio); + else + printk(KERN_DEBUG "inexio.c: unknown/unsynchronized data from device, byte %x\n",pinexio->data[0]); + + return IRQ_HANDLED; +} + +/* + * inexio_disconnect() is the opposite of inexio_connect() + */ + +static void inexio_disconnect(struct serio *serio) +{ + struct inexio* pinexio = serio_get_drvdata(serio); + + input_get_device(pinexio->dev); + input_unregister_device(pinexio->dev); + serio_close(serio); + serio_set_drvdata(serio, NULL); + input_put_device(pinexio->dev); + kfree(pinexio); +} + +/* + * inexio_connect() is the routine that is called when someone adds a + * new serio device that supports iNexio protocol and registers it as + * an input device. This is usually accomplished using inputattach. + */ + +static int inexio_connect(struct serio *serio, struct serio_driver *drv) +{ + struct inexio *pinexio; + struct input_dev *input_dev; + int err; + + pinexio = kzalloc(sizeof(struct inexio), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!pinexio || !input_dev) { + err = -ENOMEM; + goto fail1; + } + + pinexio->serio = serio; + pinexio->dev = input_dev; + snprintf(pinexio->phys, sizeof(pinexio->phys), "%s/input0", serio->phys); + + input_dev->name = "iNexio Serial TouchScreen"; + input_dev->phys = pinexio->phys; + input_dev->id.bustype = BUS_RS232; + input_dev->id.vendor = SERIO_INEXIO; + input_dev->id.product = 0; + input_dev->id.version = 0x0001; + input_dev->dev.parent = &serio->dev; + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(pinexio->dev, ABS_X, INEXIO_MIN_XC, INEXIO_MAX_XC, 0, 0); + input_set_abs_params(pinexio->dev, ABS_Y, INEXIO_MIN_YC, INEXIO_MAX_YC, 0, 0); + + serio_set_drvdata(serio, pinexio); + + err = serio_open(serio, drv); + if (err) + goto fail2; + + err = input_register_device(pinexio->dev); + if (err) + goto fail3; + + return 0; + + fail3: serio_close(serio); + fail2: serio_set_drvdata(serio, NULL); + fail1: input_free_device(input_dev); + kfree(pinexio); + return err; +} + +/* + * The serio driver structure. + */ + +static struct serio_device_id inexio_serio_ids[] = { + { + .type = SERIO_RS232, + .proto = SERIO_INEXIO, + .id = SERIO_ANY, + .extra = SERIO_ANY, + }, + { 0 } +}; + +MODULE_DEVICE_TABLE(serio, inexio_serio_ids); + +static struct serio_driver inexio_drv = { + .driver = { + .name = "inexio", + }, + .description = DRIVER_DESC, + .id_table = inexio_serio_ids, + .interrupt = inexio_interrupt, + .connect = inexio_connect, + .disconnect = inexio_disconnect, +}; + +module_serio_driver(inexio_drv); diff --git a/drivers/input/touchscreen/intel-mid-touch.c b/drivers/input/touchscreen/intel-mid-touch.c new file mode 100644 index 00000000..465db5db --- /dev/null +++ b/drivers/input/touchscreen/intel-mid-touch.c @@ -0,0 +1,671 @@ +/* + * Intel MID Resistive Touch Screen Driver + * + * Copyright (C) 2008 Intel Corp + * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * + * 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; version 2 of the License. + * + * 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. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + * + * Questions/Comments/Bug fixes to Sreedhara (sreedhara.ds@intel.com) + * Ramesh Agarwal (ramesh.agarwal@intel.com) + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * + * TODO: + * review conversion of r/m/w sequences + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* PMIC Interrupt registers */ +#define PMIC_REG_ID1 0x00 /* PMIC ID1 register */ + +/* PMIC Interrupt registers */ +#define PMIC_REG_INT 0x04 /* PMIC interrupt register */ +#define PMIC_REG_MINT 0x05 /* PMIC interrupt mask register */ + +/* ADC Interrupt registers */ +#define PMIC_REG_ADCINT 0x5F /* ADC interrupt register */ +#define PMIC_REG_MADCINT 0x60 /* ADC interrupt mask register */ + +/* ADC Control registers */ +#define PMIC_REG_ADCCNTL1 0x61 /* ADC control register */ + +/* ADC Channel Selection registers */ +#define PMICADDR0 0xA4 +#define END_OF_CHANNEL 0x1F + +/* ADC Result register */ +#define PMIC_REG_ADCSNS0H 0x64 + +/* ADC channels for touch screen */ +#define MRST_TS_CHAN10 0xA /* Touch screen X+ connection */ +#define MRST_TS_CHAN11 0xB /* Touch screen X- connection */ +#define MRST_TS_CHAN12 0xC /* Touch screen Y+ connection */ +#define MRST_TS_CHAN13 0xD /* Touch screen Y- connection */ + +/* Touch screen channel BIAS constants */ +#define MRST_XBIAS 0x20 +#define MRST_YBIAS 0x40 +#define MRST_ZBIAS 0x80 + +/* Touch screen coordinates */ +#define MRST_X_MIN 10 +#define MRST_X_MAX 1024 +#define MRST_X_FUZZ 5 +#define MRST_Y_MIN 10 +#define MRST_Y_MAX 1024 +#define MRST_Y_FUZZ 5 +#define MRST_PRESSURE_MIN 0 +#define MRST_PRESSURE_NOMINAL 50 +#define MRST_PRESSURE_MAX 100 + +#define WAIT_ADC_COMPLETION 10 /* msec */ + +/* PMIC ADC round robin delays */ +#define ADC_LOOP_DELAY0 0x0 /* Continuous loop */ +#define ADC_LOOP_DELAY1 0x1 /* 4.5 ms approximate */ + +/* PMIC Vendor Identifiers */ +#define PMIC_VENDOR_FS 0 /* PMIC vendor FreeScale */ +#define PMIC_VENDOR_MAXIM 1 /* PMIC vendor MAXIM */ +#define PMIC_VENDOR_NEC 2 /* PMIC vendor NEC */ +#define MRSTOUCH_MAX_CHANNELS 32 /* Maximum ADC channels */ + +/* Touch screen device structure */ +struct mrstouch_dev { + struct device *dev; /* device associated with touch screen */ + struct input_dev *input; + char phys[32]; + u16 asr; /* Address selection register */ + int irq; + unsigned int vendor; /* PMIC vendor */ + unsigned int rev; /* PMIC revision */ + + int (*read_prepare)(struct mrstouch_dev *tsdev); + int (*read)(struct mrstouch_dev *tsdev, u16 *x, u16 *y, u16 *z); + int (*read_finish)(struct mrstouch_dev *tsdev); +}; + + +/*************************** NEC and Maxim Interface ************************/ + +static int mrstouch_nec_adc_read_prepare(struct mrstouch_dev *tsdev) +{ + return intel_scu_ipc_update_register(PMIC_REG_MADCINT, 0, 0x20); +} + +/* + * Enables PENDET interrupt. + */ +static int mrstouch_nec_adc_read_finish(struct mrstouch_dev *tsdev) +{ + int err; + + err = intel_scu_ipc_update_register(PMIC_REG_MADCINT, 0x20, 0x20); + if (!err) + err = intel_scu_ipc_update_register(PMIC_REG_ADCCNTL1, 0, 0x05); + + return err; +} + +/* + * Reads PMIC ADC touch screen result + * Reads ADC storage registers for higher 7 and lower 3 bits and + * converts the two readings into a single value and turns off gain bit + */ +static int mrstouch_ts_chan_read(u16 offset, u16 chan, u16 *vp, u16 *vm) +{ + int err; + u16 result; + u32 res; + + result = PMIC_REG_ADCSNS0H + offset; + + if (chan == MRST_TS_CHAN12) + result += 4; + + err = intel_scu_ipc_ioread32(result, &res); + if (err) + return err; + + /* Mash the bits up */ + + *vp = (res & 0xFF) << 3; /* Highest 7 bits */ + *vp |= (res >> 8) & 0x07; /* Lower 3 bits */ + *vp &= 0x3FF; + + res >>= 16; + + *vm = (res & 0xFF) << 3; /* Highest 7 bits */ + *vm |= (res >> 8) & 0x07; /* Lower 3 bits */ + *vm &= 0x3FF; + + return 0; +} + +/* + * Enables X, Y and Z bias values + * Enables YPYM for X channels and XPXM for Y channels + */ +static int mrstouch_ts_bias_set(uint offset, uint bias) +{ + int count; + u16 chan, start; + u16 reg[4]; + u8 data[4]; + + chan = PMICADDR0 + offset; + start = MRST_TS_CHAN10; + + for (count = 0; count <= 3; count++) { + reg[count] = chan++; + data[count] = bias | (start + count); + } + + return intel_scu_ipc_writev(reg, data, 4); +} + +/* To read touch screen channel values */ +static int mrstouch_nec_adc_read(struct mrstouch_dev *tsdev, + u16 *x, u16 *y, u16 *z) +{ + int err; + u16 xm, ym, zm; + + /* configure Y bias for X channels */ + err = mrstouch_ts_bias_set(tsdev->asr, MRST_YBIAS); + if (err) + goto ipc_error; + + msleep(WAIT_ADC_COMPLETION); + + /* read x+ and x- channels */ + err = mrstouch_ts_chan_read(tsdev->asr, MRST_TS_CHAN10, x, &xm); + if (err) + goto ipc_error; + + /* configure x bias for y channels */ + err = mrstouch_ts_bias_set(tsdev->asr, MRST_XBIAS); + if (err) + goto ipc_error; + + msleep(WAIT_ADC_COMPLETION); + + /* read y+ and y- channels */ + err = mrstouch_ts_chan_read(tsdev->asr, MRST_TS_CHAN12, y, &ym); + if (err) + goto ipc_error; + + /* configure z bias for x and y channels */ + err = mrstouch_ts_bias_set(tsdev->asr, MRST_ZBIAS); + if (err) + goto ipc_error; + + msleep(WAIT_ADC_COMPLETION); + + /* read z+ and z- channels */ + err = mrstouch_ts_chan_read(tsdev->asr, MRST_TS_CHAN10, z, &zm); + if (err) + goto ipc_error; + + return 0; + +ipc_error: + dev_err(tsdev->dev, "ipc error during adc read\n"); + return err; +} + + +/*************************** Freescale Interface ************************/ + +static int mrstouch_fs_adc_read_prepare(struct mrstouch_dev *tsdev) +{ + int err, count; + u16 chan; + u16 reg[5]; + u8 data[5]; + + /* Stop the ADC */ + err = intel_scu_ipc_update_register(PMIC_REG_MADCINT, 0x00, 0x02); + if (err) + goto ipc_error; + + chan = PMICADDR0 + tsdev->asr; + + /* Set X BIAS */ + for (count = 0; count <= 3; count++) { + reg[count] = chan++; + data[count] = 0x2A; + } + reg[count] = chan++; /* Dummy */ + data[count] = 0; + + err = intel_scu_ipc_writev(reg, data, 5); + if (err) + goto ipc_error; + + msleep(WAIT_ADC_COMPLETION); + + /* Set Y BIAS */ + for (count = 0; count <= 3; count++) { + reg[count] = chan++; + data[count] = 0x4A; + } + reg[count] = chan++; /* Dummy */ + data[count] = 0; + + err = intel_scu_ipc_writev(reg, data, 5); + if (err) + goto ipc_error; + + msleep(WAIT_ADC_COMPLETION); + + /* Set Z BIAS */ + err = intel_scu_ipc_iowrite32(chan + 2, 0x8A8A8A8A); + if (err) + goto ipc_error; + + msleep(WAIT_ADC_COMPLETION); + + return 0; + +ipc_error: + dev_err(tsdev->dev, "ipc error during %s\n", __func__); + return err; +} + +static int mrstouch_fs_adc_read(struct mrstouch_dev *tsdev, + u16 *x, u16 *y, u16 *z) +{ + int err; + u16 result; + u16 reg[4]; + u8 data[4]; + + result = PMIC_REG_ADCSNS0H + tsdev->asr; + + reg[0] = result + 4; + reg[1] = result + 5; + reg[2] = result + 16; + reg[3] = result + 17; + + err = intel_scu_ipc_readv(reg, data, 4); + if (err) + goto ipc_error; + + *x = data[0] << 3; /* Higher 7 bits */ + *x |= data[1] & 0x7; /* Lower 3 bits */ + *x &= 0x3FF; + + *y = data[2] << 3; /* Higher 7 bits */ + *y |= data[3] & 0x7; /* Lower 3 bits */ + *y &= 0x3FF; + + /* Read Z value */ + reg[0] = result + 28; + reg[1] = result + 29; + + err = intel_scu_ipc_readv(reg, data, 4); + if (err) + goto ipc_error; + + *z = data[0] << 3; /* Higher 7 bits */ + *z |= data[1] & 0x7; /* Lower 3 bits */ + *z &= 0x3FF; + + return 0; + +ipc_error: + dev_err(tsdev->dev, "ipc error during %s\n", __func__); + return err; +} + +static int mrstouch_fs_adc_read_finish(struct mrstouch_dev *tsdev) +{ + int err, count; + u16 chan; + u16 reg[5]; + u8 data[5]; + + /* Clear all TS channels */ + chan = PMICADDR0 + tsdev->asr; + for (count = 0; count <= 4; count++) { + reg[count] = chan++; + data[count] = 0; + } + err = intel_scu_ipc_writev(reg, data, 5); + if (err) + goto ipc_error; + + for (count = 0; count <= 4; count++) { + reg[count] = chan++; + data[count] = 0; + } + err = intel_scu_ipc_writev(reg, data, 5); + if (err) + goto ipc_error; + + err = intel_scu_ipc_iowrite32(chan + 2, 0x00000000); + if (err) + goto ipc_error; + + /* Start ADC */ + err = intel_scu_ipc_update_register(PMIC_REG_MADCINT, 0x02, 0x02); + if (err) + goto ipc_error; + + return 0; + +ipc_error: + dev_err(tsdev->dev, "ipc error during %s\n", __func__); + return err; +} + +static void mrstouch_report_event(struct input_dev *input, + unsigned int x, unsigned int y, unsigned int z) +{ + if (z > MRST_PRESSURE_NOMINAL) { + /* Pen touched, report button touch and coordinates */ + input_report_key(input, BTN_TOUCH, 1); + input_report_abs(input, ABS_X, x); + input_report_abs(input, ABS_Y, y); + } else { + input_report_key(input, BTN_TOUCH, 0); + } + + input_report_abs(input, ABS_PRESSURE, z); + input_sync(input); +} + +/* PENDET interrupt handler */ +static irqreturn_t mrstouch_pendet_irq(int irq, void *dev_id) +{ + struct mrstouch_dev *tsdev = dev_id; + u16 x, y, z; + + /* + * Should we lower thread priority? Probably not, since we are + * not spinning but sleeping... + */ + + if (tsdev->read_prepare(tsdev)) + goto out; + + do { + if (tsdev->read(tsdev, &x, &y, &z)) + break; + + mrstouch_report_event(tsdev->input, x, y, z); + } while (z > MRST_PRESSURE_NOMINAL); + + tsdev->read_finish(tsdev); + +out: + return IRQ_HANDLED; +} + +/* Utility to read PMIC ID */ +static int mrstouch_read_pmic_id(uint *vendor, uint *rev) +{ + int err; + u8 r; + + err = intel_scu_ipc_ioread8(PMIC_REG_ID1, &r); + if (err) + return err; + + *vendor = r & 0x7; + *rev = (r >> 3) & 0x7; + + return 0; +} + +/* + * Parse ADC channels to find end of the channel configured by other ADC user + * NEC and MAXIM requires 4 channels and FreeScale needs 18 channels + */ +static int mrstouch_chan_parse(struct mrstouch_dev *tsdev) +{ + int found = 0; + int err, i; + u8 r8; + + for (i = 0; i < MRSTOUCH_MAX_CHANNELS; i++) { + err = intel_scu_ipc_ioread8(PMICADDR0 + i, &r8); + if (err) + return err; + + if (r8 == END_OF_CHANNEL) { + found = i; + break; + } + } + + if (tsdev->vendor == PMIC_VENDOR_FS) { + if (found > MRSTOUCH_MAX_CHANNELS - 18) + return -ENOSPC; + } else { + if (found > MRSTOUCH_MAX_CHANNELS - 4) + return -ENOSPC; + } + + return found; +} + + +/* + * Writes touch screen channels to ADC address selection registers + */ +static int mrstouch_ts_chan_set(uint offset) +{ + u16 chan; + + int ret, count; + + chan = PMICADDR0 + offset; + for (count = 0; count <= 3; count++) { + ret = intel_scu_ipc_iowrite8(chan++, MRST_TS_CHAN10 + count); + if (ret) + return ret; + } + return intel_scu_ipc_iowrite8(chan++, END_OF_CHANNEL); +} + +/* Initialize ADC */ +static int mrstouch_adc_init(struct mrstouch_dev *tsdev) +{ + int err, start; + u8 ra, rm; + + err = mrstouch_read_pmic_id(&tsdev->vendor, &tsdev->rev); + if (err) { + dev_err(tsdev->dev, "Unable to read PMIC id\n"); + return err; + } + + switch (tsdev->vendor) { + case PMIC_VENDOR_NEC: + case PMIC_VENDOR_MAXIM: + tsdev->read_prepare = mrstouch_nec_adc_read_prepare; + tsdev->read = mrstouch_nec_adc_read; + tsdev->read_finish = mrstouch_nec_adc_read_finish; + break; + + case PMIC_VENDOR_FS: + tsdev->read_prepare = mrstouch_fs_adc_read_prepare; + tsdev->read = mrstouch_fs_adc_read; + tsdev->read_finish = mrstouch_fs_adc_read_finish; + break; + + default: + dev_err(tsdev->dev, + "Unsupported touchscreen: %d\n", tsdev->vendor); + return -ENXIO; + } + + start = mrstouch_chan_parse(tsdev); + if (start < 0) { + dev_err(tsdev->dev, "Unable to parse channels\n"); + return start; + } + + tsdev->asr = start; + + /* + * ADC power on, start, enable PENDET and set loop delay + * ADC loop delay is set to 4.5 ms approximately + * Loop delay more than this results in jitter in adc readings + * Setting loop delay to 0 (continuous loop) in MAXIM stops PENDET + * interrupt generation sometimes. + */ + + if (tsdev->vendor == PMIC_VENDOR_FS) { + ra = 0xE0 | ADC_LOOP_DELAY0; + rm = 0x5; + } else { + /* NEC and MAXIm not consistent with loop delay 0 */ + ra = 0xE0 | ADC_LOOP_DELAY1; + rm = 0x0; + + /* configure touch screen channels */ + err = mrstouch_ts_chan_set(tsdev->asr); + if (err) + return err; + } + + err = intel_scu_ipc_update_register(PMIC_REG_ADCCNTL1, ra, 0xE7); + if (err) + return err; + + err = intel_scu_ipc_update_register(PMIC_REG_MADCINT, rm, 0x03); + if (err) + return err; + + return 0; +} + + +/* Probe function for touch screen driver */ +static int mrstouch_probe(struct platform_device *pdev) +{ + struct mrstouch_dev *tsdev; + struct input_dev *input; + int err; + int irq; + + irq = platform_get_irq(pdev, 0); + if (irq < 0) { + dev_err(&pdev->dev, "no interrupt assigned\n"); + return -EINVAL; + } + + tsdev = kzalloc(sizeof(struct mrstouch_dev), GFP_KERNEL); + input = input_allocate_device(); + if (!tsdev || !input) { + dev_err(&pdev->dev, "unable to allocate memory\n"); + err = -ENOMEM; + goto err_free_mem; + } + + tsdev->dev = &pdev->dev; + tsdev->input = input; + tsdev->irq = irq; + + snprintf(tsdev->phys, sizeof(tsdev->phys), + "%s/input0", dev_name(tsdev->dev)); + + err = mrstouch_adc_init(tsdev); + if (err) { + dev_err(&pdev->dev, "ADC initialization failed\n"); + goto err_free_mem; + } + + input->name = "mrst_touchscreen"; + input->phys = tsdev->phys; + input->dev.parent = tsdev->dev; + + input->id.vendor = tsdev->vendor; + input->id.version = tsdev->rev; + + input->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + + input_set_abs_params(tsdev->input, ABS_X, + MRST_X_MIN, MRST_X_MAX, MRST_X_FUZZ, 0); + input_set_abs_params(tsdev->input, ABS_Y, + MRST_Y_MIN, MRST_Y_MAX, MRST_Y_FUZZ, 0); + input_set_abs_params(tsdev->input, ABS_PRESSURE, + MRST_PRESSURE_MIN, MRST_PRESSURE_MAX, 0, 0); + + err = request_threaded_irq(tsdev->irq, NULL, mrstouch_pendet_irq, + IRQF_ONESHOT, "mrstouch", tsdev); + if (err) { + dev_err(tsdev->dev, "unable to allocate irq\n"); + goto err_free_mem; + } + + err = input_register_device(tsdev->input); + if (err) { + dev_err(tsdev->dev, "unable to register input device\n"); + goto err_free_irq; + } + + platform_set_drvdata(pdev, tsdev); + return 0; + +err_free_irq: + free_irq(tsdev->irq, tsdev); +err_free_mem: + input_free_device(input); + kfree(tsdev); + return err; +} + +static int mrstouch_remove(struct platform_device *pdev) +{ + struct mrstouch_dev *tsdev = platform_get_drvdata(pdev); + + free_irq(tsdev->irq, tsdev); + input_unregister_device(tsdev->input); + kfree(tsdev); + + platform_set_drvdata(pdev, NULL); + + return 0; +} + +static struct platform_driver mrstouch_driver = { + .driver = { + .name = "pmic_touch", + .owner = THIS_MODULE, + }, + .probe = mrstouch_probe, + .remove = mrstouch_remove, +}; +module_platform_driver(mrstouch_driver); + +MODULE_AUTHOR("Sreedhara Murthy. D.S, sreedhara.ds@intel.com"); +MODULE_DESCRIPTION("Intel Moorestown Resistive Touch Screen Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/ist30xx/Makefile b/drivers/input/touchscreen/ist30xx/Makefile new file mode 100644 index 00000000..e233462a --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/Makefile @@ -0,0 +1,7 @@ +# +# Makefile for the imagis kanas driver. +# + +# Each configuration option enables a list of files. + +obj-y += ist30xx.o ist30xx_misc.o ist30xx_sec.o ist30xx_sys.o ist30xx_tracking.o ist30xx_update.o diff --git a/drivers/input/touchscreen/ist30xx/firmware/IST3038_FW_KANAS.h b/drivers/input/touchscreen/ist30xx/firmware/IST3038_FW_KANAS.h new file mode 100644 index 00000000..f227bc28 --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/firmware/IST3038_FW_KANAS.h @@ -0,0 +1,2572 @@ +#ifndef __IST30XXB_FW_H__ +#define __IST30XXB_FW_H__ + +/* ist30xxb binary: KANAS_GF , f/w 15(00040000) */ +static unsigned char ist30xxb_fw[] = { + 0x06,0x00,0x00,0xEA,0x2C,0x00,0x00,0xEA,0x2B,0x00,0x00,0xEA,0x2A,0x00,0x00,0xEA, + 0x29,0x00,0x00,0xEA,0x28,0x00,0x00,0xEA,0x27,0x00,0x00,0xEA,0x3E,0x00,0x00,0xEA, + 0x14,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0xA0,0xE1,0x00,0x00,0x00,0xEA,0x0C,0x20,0x00,0x40, + 0x11,0x01,0xA0,0xE3,0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0xC1,0x01,0xA0,0xE3, + 0x1C,0x10,0x9F,0xE5,0x00,0x10,0x80,0xE5,0x18,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0xF1,0x01,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0x01,0x00,0x00,0xEA,0xC8,0x74,0x00,0x00,0x4C,0x00,0x00,0x40,0x00,0x00,0x0F,0xE1, + 0x1F,0x00,0xC0,0xE3,0xD1,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x1C,0xD0,0x9F,0xE5, + 0xD3,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x14,0xD0,0x9F,0xE5,0x00,0x00,0x0F,0xE1, + 0xC0,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x08,0x00,0x9F,0xE5,0x10,0xFF,0x2F,0xE1, + 0xFC,0x0F,0x00,0x20,0xC0,0x0F,0x00,0x20,0xAD,0x01,0x00,0x00,0x11,0x01,0xA0,0xE3, + 0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x5C,0x30,0x9F,0xE5,0x5C,0x40,0x9F,0xE5, + 0x00,0x40,0x83,0xE5,0x91,0x01,0xA0,0xE3,0x33,0x16,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0xAC,0x00,0x1F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0x00,0x40,0x83,0xE5, + 0xFF,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x03,0x00,0x00,0xEB,0xFE,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0x00,0xEB,0xF7,0xFF,0xFF,0xEA,0x01,0x29,0xA0,0xE3, + 0x01,0x20,0x52,0xE2,0xFD,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0xFF,0x40,0x2D,0xE9, + 0xC6,0x00,0x00,0xEB,0xFF,0x40,0xBD,0xE8,0x04,0xF0,0x5E,0xE2,0x1C,0x40,0x00,0x30, + 0x70,0xE9,0x1C,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x39,0x4A,0x37,0x48,0x37,0x49,0x92,0x08,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x35,0x48,0x01,0x21,0x89,0x07,0xC8,0x61, + 0x34,0x48,0xC9,0x14,0x01,0x62,0x00,0x21,0x01,0x62,0x01,0x62,0x32,0x49,0x33,0x48, + 0x01,0x60,0x20,0x21,0x41,0x60,0xA0,0x21,0x81,0x60,0x70,0x47,0xF8,0xB5,0x2D,0x4B, + 0x9F,0x6A,0x2F,0x48,0x00,0x69,0x42,0x08,0x58,0x69,0x19,0x15,0x08,0x43,0x58,0x61, + 0xFF,0xF7,0xE2,0xFF,0x58,0x69,0xFF,0x21,0x81,0x31,0x08,0x43,0x58,0x61,0x29,0x48, + 0x29,0x4C,0x20,0x60,0xFF,0x20,0x90,0x30,0x60,0x60,0x13,0x20,0xA0,0x60,0xA0,0x68, + 0xA6,0x15,0x30,0x43,0xA0,0x60,0x21,0x4D,0x5F,0x23,0x00,0x2F,0x27,0xD1,0x23,0x4F, + 0x21,0xE0,0x68,0x68,0x00,0x07,0x1E,0xD5,0xE8,0x68,0x40,0x28,0x04,0xD1,0xEA,0x61, + 0x68,0x69,0x18,0x42,0xFC,0xD1,0x14,0xE0,0x20,0x28,0x04,0xD3,0xEF,0x61,0x68,0x69, + 0x18,0x42,0xFC,0xD1,0x0D,0xE0,0x0D,0x28,0x08,0xD1,0x2E,0x20,0x68,0x60,0x68,0x69, + 0x80,0x06,0xFC,0xD4,0x68,0x68,0x80,0x07,0xFC,0xD5,0x08,0xE0,0x68,0x68,0x80,0x07, + 0xFC,0xD5,0xFF,0xF7,0xA9,0xFF,0xE0,0x68,0x11,0x49,0x88,0x42,0xD9,0xD3,0xFF,0xF7, + 0xA3,0xFF,0xA0,0x68,0xB0,0x43,0xA0,0x60,0x00,0xF0,0x3A,0xF9,0xF8,0xBC,0x08,0xBC, + 0x00,0x20,0x18,0x47,0x00,0x00,0x00,0x10,0x84,0x02,0x00,0x00,0xEC,0x00,0x00,0x00, + 0x5C,0x0A,0x00,0x00,0x40,0x00,0x00,0x40,0xDE,0x10,0x05,0x00,0x00,0x40,0x00,0x30, + 0x00,0x20,0x00,0x40,0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40,0xFF,0x03,0xFF,0x2F, + 0x50,0xC3,0x00,0x00,0x38,0x48,0x41,0x6B,0xC9,0x07,0xFC,0xD0,0x41,0x6B,0x01,0x22, + 0x11,0x43,0x41,0x63,0x70,0x47,0x34,0x48,0xC2,0x69,0x41,0x14,0x8A,0x43,0xC2,0x61, + 0xC2,0x69,0x0A,0x43,0xC2,0x61,0xC2,0x69,0x8A,0x43,0xC2,0x61,0x70,0x47,0x10,0xB4, + 0x2D,0x4C,0x40,0x23,0x60,0x60,0x20,0x68,0x80,0x0A,0x80,0x02,0x10,0x43,0xA8,0x22, + 0x10,0x43,0x20,0x60,0x02,0xE0,0x08,0x78,0xA0,0x60,0x49,0x1C,0x5B,0x1E,0xFA,0xD2, + 0x10,0xBC,0x70,0x47,0xF0,0xB5,0x05,0x00,0x0E,0x00,0x1F,0x00,0x94,0x09,0x81,0x06, + 0x22,0x48,0x12,0xD1,0x91,0x06,0x10,0xD1,0x0C,0xE0,0x3A,0x00,0x31,0x00,0x28,0x00, + 0xFF,0xF7,0xDD,0xFF,0x40,0x35,0x2D,0x04,0x2D,0x0C,0x40,0x36,0xFF,0xF7,0xC2,0xFF, + 0xFF,0xF7,0xC9,0xFF,0x64,0x1E,0x60,0x1C,0xEF,0xD1,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x15,0x4B,0x40,0x22,0x58,0x60,0x18,0x68,0x80,0x0A,0x80,0x02,0x08,0x43,0xA4,0x21, + 0x08,0x43,0x18,0x60,0x00,0x21,0x00,0xE0,0x99,0x60,0x52,0x1E,0xFC,0xD2,0x70,0x47, + 0x70,0xB5,0x05,0x00,0x16,0x00,0x8C,0x09,0x82,0x06,0x0C,0x48,0x10,0xD1,0x89,0x06, + 0x0E,0xD1,0x0A,0xE0,0x31,0x00,0x28,0x00,0xFF,0xF7,0xE2,0xFF,0x40,0x35,0x2D,0x04, + 0x2D,0x0C,0xFF,0xF7,0x97,0xFF,0xFF,0xF7,0x9E,0xFF,0x64,0x1E,0x60,0x1C,0xF1,0xD1, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0xF8,0xB5,0xFF,0x20,0x00,0xF0,0x6E,0xFE, + 0x03,0x25,0x0F,0x4E,0x2D,0x07,0x01,0x27,0xF0,0x6A,0x00,0x28,0x15,0xD0,0xF0,0x6B, + 0xE9,0x68,0x80,0x08,0x3C,0x00,0x84,0x40,0x21,0x43,0xE9,0x60,0x69,0x68,0x21,0x42, + 0x00,0xD0,0x34,0x63,0x81,0x00,0x07,0x48,0x40,0x58,0x00,0x28,0x01,0xD0,0x08,0xF0, + 0x3A,0xFD,0xE8,0x68,0xA0,0x43,0xE8,0x60,0xE6,0xE7,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x40,0x00,0x00,0x30,0x70,0x06,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF8,0xB5,0x54,0x4A,0x51,0x48,0x52,0x49,0x92,0x10,0x01,0xE0,0x08,0xC9,0x08,0xC0, + 0x52,0x1E,0xFB,0xD2,0x00,0xF0,0x16,0xFE,0x07,0x00,0x03,0xF0,0xB1,0xFF,0x03,0xF0, + 0xA3,0xFF,0x04,0xF0,0x35,0xF8,0x4C,0x4A,0x4C,0x49,0x4D,0x48,0x00,0xF0,0x00,0xFA, + 0x05,0x21,0x49,0x03,0x00,0x20,0x00,0xF0,0x01,0xFA,0x4A,0x4C,0x4A,0x49,0xA0,0x62, + 0x00,0x20,0x00,0xF0,0xFB,0xF9,0x49,0x4B,0x49,0x49,0xD8,0x63,0x49,0x48,0x00,0xF0, + 0xF5,0xF9,0xD9,0x6B,0x00,0x04,0x08,0x43,0xD8,0x63,0x03,0xF0,0xF5,0xFF,0x46,0x4A, + 0x46,0x48,0x00,0x21,0x00,0xF0,0xF2,0xF9,0x07,0xF0,0x88,0xFF,0x04,0xF0,0xA4,0xF8, + 0x43,0x48,0x00,0x26,0x81,0x7A,0x01,0x25,0x6D,0x07,0xE1,0x73,0xC1,0x7A,0x21,0x74, + 0x41,0x7A,0x61,0x74,0xA6,0x73,0xA6,0x74,0xE6,0x74,0x26,0x75,0x66,0x75,0xA6,0x75, + 0xE6,0x75,0x01,0x8F,0x61,0x83,0xC0,0x8E,0xA0,0x83,0x38,0x48,0x68,0x63,0xFF,0x20, + 0xE8,0x63,0xE8,0x14,0x00,0xF0,0xAA,0xFD,0x36,0x48,0x06,0x70,0xFF,0x20,0x81,0x30, + 0x00,0xF0,0xA4,0xFD,0x34,0x49,0x02,0x20,0x08,0xF0,0x0A,0xFB,0x02,0x20,0x08,0xF0, + 0x0F,0xFB,0x60,0x7C,0x00,0x28,0x01,0xD0,0x08,0xF0,0x74,0xFC,0x00,0x2F,0x1F,0xD1, + 0x2E,0x4E,0xB7,0x15,0x60,0x7C,0x00,0x28,0x02,0xD0,0x2D,0x49,0xE0,0x6F,0x88,0x60, + 0xE8,0x6B,0x0B,0x28,0x14,0xD0,0x2B,0x48,0x40,0x68,0x00,0x07,0x01,0xD5,0x02,0xF0, + 0x3D,0xFD,0xF0,0x68,0x28,0x49,0x88,0x42,0xEC,0xD9,0x28,0x48,0xC0,0x68,0xFF,0x28, + 0x06,0xD1,0xB0,0x68,0xB8,0x43,0xB0,0x60,0xB0,0x68,0x38,0x43,0xB0,0x60,0xE1,0xE7, + 0x20,0x7C,0x00,0x28,0x03,0xD1,0x01,0x20,0x80,0x02,0x00,0xF0,0x67,0xFD,0x60,0x7C, + 0x00,0x28,0x01,0xD0,0x08,0xF0,0x4E,0xFC,0x02,0x20,0x08,0xF0,0xE9,0xFA,0xFF,0x20, + 0x81,0x30,0x00,0xF0,0x5B,0xFD,0x1A,0x49,0x05,0x20,0x03,0xF0,0x71,0xFD,0x0B,0x20, + 0xE8,0x63,0x03,0xF0,0x27,0xFE,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xB0,0x05,0x00,0x10, + 0x40,0x90,0x00,0x00,0x80,0x01,0x00,0x00,0x28,0x00,0x00,0x00,0x18,0x90,0x00,0x00, + 0x00,0x00,0x00,0x10,0x8C,0x05,0x00,0x20,0xC0,0x92,0x00,0x00,0xC0,0x0F,0x00,0x20, + 0x00,0x9D,0x00,0x00,0x00,0x93,0x00,0x00,0x4C,0x05,0x00,0x00,0x40,0x00,0x00,0x20, + 0x00,0x93,0x00,0x00,0xF5,0x06,0x00,0x20,0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40, + 0x00,0x30,0x00,0x40,0x00,0x40,0x00,0x30,0x50,0xC3,0x00,0x00,0xC0,0x92,0x00,0x00, + 0x65,0x8B,0x00,0x00,0x78,0x47,0xC0,0x46,0x01,0x30,0x90,0xE1,0x4C,0x00,0x00,0x4A, + 0x00,0x20,0xB0,0xE3,0xA0,0x30,0x71,0xE0,0x43,0x00,0x00,0x3A,0x20,0x32,0x71,0xE0, + 0x34,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0,0x26,0x00,0x00,0x3A,0x20,0x36,0x71,0xE0, + 0x17,0x00,0x00,0x3A,0x20,0x38,0x71,0xE0,0x09,0x00,0x00,0x3A,0x01,0x14,0xA0,0xE1, + 0x20,0x38,0x71,0xE0,0xFF,0x24,0x82,0xE3,0xFF,0x28,0x82,0x23,0x01,0x14,0xA0,0x21, + 0x20,0x36,0x71,0xE0,0x0E,0x00,0x00,0x3A,0x00,0x30,0x71,0xE2,0x6F,0x00,0x00,0x2A, + 0x21,0x14,0xA0,0x21,0xA0,0x37,0x71,0xE0,0x81,0x07,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x37,0x71,0xE0,0x01,0x07,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x36,0x71,0xE0, + 0x81,0x06,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x36,0x71,0xE0,0x01,0x06,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x35,0x71,0xE0,0x81,0x05,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x35,0x71,0xE0,0x01,0x05,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x34,0x71,0xE0, + 0x81,0x04,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x34,0x71,0xE0,0x01,0x04,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xE5,0xFF,0xFF,0x2A,0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0, + 0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0, + 0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0,0x1E,0xFF,0x2F,0xE1,0x01,0x10,0x50,0xE0, + 0x01,0x00,0xA0,0x23,0x1E,0xFF,0x2F,0x21,0x00,0x10,0xA0,0xE1,0x00,0x00,0xB0,0xE3, + 0x1E,0xFF,0x2F,0xE1,0x02,0x21,0x11,0xE2,0x00,0x10,0x61,0x42,0x40,0xC0,0x32,0xE0, + 0x00,0x00,0x60,0x22,0x20,0x32,0x71,0xE0,0x1D,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0, + 0x0F,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x23,0x82,0xE3, + 0x0B,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x26,0x82,0xE3, + 0x07,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x29,0x82,0xE3, + 0x01,0x13,0xA0,0x21,0x3F,0x2C,0x82,0x23,0x00,0x30,0x71,0xE2,0x1D,0x00,0x00,0x2A, + 0x21,0x13,0xA0,0x21,0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0, + 0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xEB,0xFF,0xFF,0x2A, + 0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0, + 0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42, + 0x00,0x10,0x61,0x22,0x1E,0xFF,0x2F,0xE1,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42, + 0x01,0x40,0x2D,0xE9,0x00,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB,0x02,0x40,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0xA0,0xE1,0x07,0x40,0x2D,0xE9,0x02,0x00,0xB0,0xE3, + 0x01,0x00,0x00,0xEB,0x07,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x10,0xB5,0x02,0x20,0x08,0xF0,0x2B,0xFB,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46,0x00,0x20,0xB0,0xE3,0x20,0x32,0x71,0xE0, + 0xA0,0xFF,0xFF,0x3A,0x20,0x34,0x71,0xE0,0x92,0xFF,0xFF,0x3A,0x20,0x36,0x71,0xE0, + 0x83,0xFF,0xFF,0x3A,0x20,0x38,0x71,0xE0,0x75,0xFF,0xFF,0x3A,0x6A,0xFF,0xFF,0xEA, + 0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0x48,0x06,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x04,0xF0,0x1F,0xE5,0xB0,0x05,0x00,0x10,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5, + 0x1C,0xFF,0x2F,0xE1,0xAD,0x00,0x00,0x10,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5, + 0x1C,0xFF,0x2F,0xE1,0x51,0x00,0x00,0x10,0x04,0xF0,0x1F,0xE5,0xB0,0x05,0x00,0x10, + 0x04,0xF0,0x1F,0xE5,0x0C,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5, + 0xF0,0x05,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0x88,0x06,0x00,0x10, + 0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0x28,0x06,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x04,0xF0,0x1F,0xE5,0x0C,0x06,0x00,0x10,0x04,0xF0,0x1F,0xE5,0x88,0x06,0x00,0x10, + 0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0xF0,0x06,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x04,0xF0,0x1F,0xE5,0xA8,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0xC6,0xFD,0xFF,0xEA, + 0x02,0x48,0x01,0x68,0x02,0x4A,0x11,0x40,0x01,0x60,0x70,0x47,0x00,0xA0,0x00,0x40, + 0xFE,0xFF,0xEF,0xFF,0x07,0x49,0x10,0xB5,0x08,0x68,0x07,0x4A,0x10,0x43,0x08,0x60, + 0x0B,0x24,0x02,0xF0,0x1D,0xFB,0x64,0x1E,0x00,0x2C,0xFA,0xDC,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0xA0,0x00,0x40,0x01,0x00,0x10,0x00,0xF0,0xB5,0x01,0x27, + 0x7F,0x07,0x3D,0x68,0x17,0x4E,0xB0,0x79,0xC0,0x07,0x26,0xD0,0x70,0x78,0x00,0x28, + 0x21,0xD0,0xBA,0x00,0x01,0x2D,0x02,0xD1,0x79,0x68,0x11,0x43,0xB9,0x60,0x00,0x04, + 0x02,0x43,0x90,0x0A,0x80,0x02,0xA9,0x05,0x89,0x0D,0x08,0x43,0x78,0x60,0x01,0x24, + 0x08,0xE0,0x0D,0x49,0xE0,0x00,0x40,0x18,0x0C,0x49,0x41,0x18,0x28,0x19,0x07,0xF0, + 0x3B,0xFE,0x64,0x1C,0x70,0x78,0xA0,0x42,0xF3,0xDA,0x70,0x78,0x01,0x28,0x02,0xD1, + 0x00,0x2D,0x00,0xD1,0x01,0x25,0x70,0x78,0x45,0x19,0x3D,0x60,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xE0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0xD2,0x04,0x00,0x00, + 0x70,0xB4,0x1C,0x4B,0xDA,0x88,0xD2,0x07,0x2F,0xD1,0x1B,0x4A,0x05,0x78,0x54,0x78, + 0xE4,0x00,0xE6,0x18,0x13,0x24,0xA4,0x01,0x36,0x19,0xB5,0x76,0x56,0x78,0x45,0x88, + 0xF6,0x00,0xF6,0x18,0x36,0x19,0xB5,0x83,0x56,0x78,0x85,0x88,0xF6,0x00,0xF6,0x18, + 0x34,0x19,0xE5,0x83,0x54,0x78,0xE4,0x00,0xE5,0x18,0x27,0x24,0x64,0x01,0x2D,0x19, + 0x29,0x70,0x55,0x78,0xC1,0x79,0xED,0x00,0xEB,0x18,0x1B,0x19,0x59,0x70,0x51,0x78, + 0x00,0x23,0x49,0x1C,0x51,0x70,0xC0,0x79,0x01,0x21,0x06,0x28,0x07,0xD0,0x0A,0x28, + 0x01,0xD0,0x12,0x28,0x01,0xD1,0x93,0x70,0xD1,0x70,0x70,0xBC,0x70,0x47,0x91,0x70, + 0xD3,0x70,0xFA,0xE7,0x40,0x00,0x00,0x20,0xE0,0x04,0x00,0x20,0xF0,0x00,0x2D,0xE9, + 0x70,0x60,0x9F,0xE5,0x01,0xC1,0x81,0xE0,0x8C,0xC0,0x86,0xE0,0x81,0x40,0x86,0xE0, + 0x84,0x21,0xCC,0xE5,0xB4,0x5F,0xD4,0xE1,0xCD,0x70,0xA0,0xE3,0x33,0x7B,0x87,0xE2, + 0x97,0x05,0x05,0xE0,0xA5,0x79,0xA0,0xE1,0x01,0x5C,0x8C,0xE2,0x01,0x4C,0x84,0xE2, + 0xB6,0x78,0xC5,0xE1,0xB6,0x40,0xD4,0xE1,0xCD,0x70,0xA0,0xE3,0x33,0x7B,0x87,0xE2, + 0x97,0x04,0x04,0xE0,0xA4,0x49,0xA0,0xE1,0xB8,0x48,0xC5,0xE1,0x01,0x40,0x86,0xE0, + 0x38,0x41,0xD4,0xE5,0x85,0x41,0xCC,0xE5,0x8A,0x31,0xCC,0xE5,0x01,0x20,0xC0,0xE7, + 0x02,0x00,0x86,0xE0,0x9B,0x12,0xC0,0xE5,0x00,0x10,0xA0,0xE3,0x92,0x12,0xC0,0xE5, + 0xF0,0x00,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20,0x08,0x4A,0x07,0x49, + 0x12,0x78,0x08,0x68,0x0F,0x23,0x40,0x1C,0x12,0x07,0x12,0x0A,0x9B,0x06,0xD2,0x18, + 0x00,0x03,0x00,0x0B,0x02,0x43,0x0A,0x60,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0x6C,0x06,0x00,0x20,0xF1,0xB5,0x78,0x20,0x94,0xB0,0x07,0x90,0xE2,0x48,0x13,0x90, + 0x40,0x7C,0x03,0x90,0x13,0x98,0xC0,0x7C,0x02,0x90,0x13,0x98,0x00,0x7C,0x01,0x90, + 0xDE,0x48,0x00,0x68,0x00,0x88,0x00,0x05,0x7E,0xD5,0x14,0x98,0x01,0x28,0x00,0xD0, + 0x02,0x20,0x04,0x90,0x00,0x20,0x08,0x90,0xA6,0xE1,0x04,0x98,0x81,0x00,0x01,0x20, + 0x40,0x07,0x08,0x18,0x12,0x90,0x00,0x68,0x81,0x00,0x11,0x90,0x0C,0x0F,0x80,0x0F, + 0xC0,0x07,0x03,0xD1,0x20,0x00,0x01,0xF0,0x37,0xFD,0x8E,0xE1,0xD0,0x48,0xA5,0x00, + 0x40,0x5F,0x00,0x28,0x84,0x46,0x0F,0xDA,0x11,0x98,0xCD,0x49,0x80,0x01,0x80,0x0D, + 0x48,0x53,0x11,0x98,0x6A,0x18,0x80,0x05,0x80,0x0D,0x50,0x80,0x4A,0x5B,0x24,0x31, + 0x4A,0x53,0x69,0x18,0x48,0x80,0x78,0xE1,0x03,0x9F,0xC5,0x49,0x00,0x20,0x7F,0x1E, + 0x48,0x31,0x69,0x18,0x06,0xE0,0x83,0x00,0xCA,0x18,0x96,0x88,0x40,0x1C,0xCE,0x52, + 0xD3,0x88,0x53,0x80,0xB8,0x42,0xF6,0xDB,0x11,0x98,0x62,0x46,0x80,0x01,0x80,0x0D, + 0x82,0x1A,0x10,0x90,0x03,0x98,0xBA,0x4B,0x80,0x00,0x08,0x18,0x20,0x38,0x82,0x83, + 0x11,0x9A,0xEB,0x18,0x92,0x05,0x92,0x0D,0x0E,0x93,0x0F,0x92,0x5B,0x88,0xD2,0x1A, + 0xC2,0x83,0x00,0x20,0x07,0x00,0x02,0x00,0x07,0xE0,0x93,0x00,0xCE,0x5E,0x30,0x18, + 0xCE,0x18,0x02,0x23,0xF3,0x5E,0xDF,0x19,0x52,0x1C,0x03,0x9B,0x9A,0x42,0xF4,0xDB, + 0x19,0x00,0xFF,0xF7,0xFF,0xFC,0x06,0x90,0x03,0x99,0x38,0x00,0xFF,0xF7,0xFA,0xFC, + 0x05,0x90,0x06,0x98,0x00,0x28,0x00,0xDC,0x40,0x42,0x13,0x99,0x89,0x7C,0x88,0x42, + 0x14,0xDA,0x05,0x98,0x00,0x28,0x00,0xDC,0x40,0x42,0x88,0x42,0x0E,0xDA,0xA0,0x4B, + 0x60,0x00,0x1C,0x3B,0x19,0x5E,0x00,0xE0,0x32,0xE1,0x13,0x9A,0x02,0x9E,0x12,0x7D, + 0xB6,0x1A,0xB1,0x42,0x0A,0xDA,0x89,0x18,0x19,0x52,0x07,0xE0,0x98,0x49,0x13,0x9B, + 0x60,0x00,0x1C,0x39,0x0A,0x5A,0x5B,0x7D,0xD2,0x1A,0x0A,0x52,0x94,0x49,0x60,0x00, + 0x1C,0x39,0x0A,0x5E,0x00,0x2A,0x01,0xDC,0x00,0x22,0x0A,0x52,0x08,0x5E,0x02,0x99, + 0x88,0x42,0x0D,0x90,0x01,0xDB,0x05,0x20,0x28,0xE0,0x88,0x00,0x05,0x21,0xFF,0xF7, + 0xF1,0xFD,0x0D,0x99,0x88,0x42,0x01,0xDC,0x04,0x20,0x1F,0xE0,0x02,0x98,0x41,0x00, + 0x40,0x18,0x05,0x21,0xFF,0xF7,0xE6,0xFD,0x0D,0x99,0x88,0x42,0x01,0xDC,0x03,0x20, + 0x14,0xE0,0x02,0x98,0x05,0x21,0x40,0x00,0xFF,0xF7,0xDC,0xFD,0x0D,0x99,0x88,0x42, + 0x01,0xDC,0x02,0x20,0x0A,0xE0,0x02,0x98,0x05,0x21,0xFF,0xF7,0xD3,0xFD,0x0D,0x99, + 0x88,0x42,0x01,0xDC,0x01,0x20,0x01,0xE0,0x08,0x00,0x02,0xD1,0x78,0x49,0x0A,0x39, + 0x08,0x55,0x77,0x49,0x10,0x9A,0x24,0x31,0x48,0x5F,0x17,0x1A,0x0C,0x90,0x68,0x18, + 0x02,0x21,0x0B,0x90,0x41,0x5E,0x0F,0x9A,0x71,0x48,0x56,0x1A,0x0A,0x38,0x0A,0x91, + 0x01,0x5D,0x13,0x98,0x80,0x7D,0x81,0x42,0x27,0xD3,0x00,0x2F,0x01,0xD1,0x00,0x24, + 0x0D,0xE0,0x38,0x1E,0x00,0xDC,0x78,0x42,0x01,0x99,0x88,0x42,0x01,0xDA,0x01,0x24, + 0x05,0xE0,0x38,0x1E,0x00,0xDC,0x78,0x42,0xFF,0xF7,0x74,0xFC,0x04,0x00,0x00,0x2E, + 0x01,0xD1,0x00,0x20,0x0C,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42,0x01,0x99,0x88,0x42, + 0x01,0xDA,0x01,0x20,0x04,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42,0xFF,0xF7,0x62,0xFC, + 0x0C,0x99,0x00,0x2F,0x1D,0xDB,0x09,0x19,0x1C,0xE0,0x0D,0x98,0xFF,0x21,0x91,0x31, + 0x48,0x43,0x05,0x21,0xFF,0xF7,0x56,0xFC,0x02,0x99,0xFF,0xF7,0x53,0xFC,0x64,0x21, + 0x08,0x1A,0x39,0x1E,0x09,0x90,0x00,0xDC,0x79,0x42,0x48,0x43,0x64,0x21,0xFF,0xF7, + 0x49,0xFC,0x09,0x9A,0x04,0x00,0x30,0x1E,0x00,0xDC,0x70,0x42,0x50,0x43,0x64,0x21, + 0xDC,0xE7,0x09,0x1B,0x0C,0x00,0x0A,0x99,0x00,0x2E,0x01,0xDB,0x08,0x18,0x00,0xE0, + 0x08,0x1A,0x05,0x2F,0x01,0xDC,0x05,0x2E,0x5F,0xDD,0x14,0x99,0x01,0x29,0x5C,0xD1, + 0x43,0x49,0x6C,0x31,0x8A,0x68,0x92,0x19,0x8A,0x60,0x0A,0x68,0x92,0x00,0x52,0x18, + 0x97,0x81,0x0A,0x68,0x92,0x00,0x52,0x18,0xD6,0x81,0x49,0x68,0x0E,0x00,0x02,0x29, + 0x41,0xD9,0x3B,0x4A,0x6C,0x32,0x91,0x68,0x00,0x29,0x00,0xDC,0x49,0x42,0x64,0x29, + 0x39,0xDA,0x00,0x20,0x81,0x00,0x89,0x18,0x0C,0x23,0xCB,0x5E,0x06,0x9C,0x40,0x1C, + 0x1B,0x19,0x06,0x93,0x0E,0x23,0xCB,0x5E,0x05,0x99,0x59,0x18,0x03,0x28,0x05,0x91, + 0xF0,0xDB,0x10,0x98,0x3C,0x28,0x0E,0xD3,0x2B,0x49,0x02,0x00,0xA0,0x39,0x08,0x8C, + 0x3C,0x38,0x82,0x42,0x07,0xDB,0x0F,0x98,0x3C,0x28,0x04,0xD3,0x02,0x00,0x48,0x8C, + 0x3C,0x38,0x82,0x42,0x01,0xDA,0xC8,0x20,0x07,0x90,0x06,0x98,0x64,0x21,0x48,0x43, + 0x03,0x21,0xFF,0xF7,0xEF,0xFB,0x07,0x99,0xFF,0xF7,0xEC,0xFB,0x0C,0x99,0x44,0x18, + 0x05,0x98,0x64,0x21,0x48,0x43,0x03,0x21,0xFF,0xF7,0xE4,0xFB,0x07,0x99,0xFF,0xF7, + 0xE1,0xFB,0x0A,0x99,0x40,0x18,0x1A,0x4B,0x00,0x21,0x6C,0x33,0x1A,0x68,0x02,0x2A, + 0x00,0xD0,0x51,0x1C,0x19,0x60,0x71,0x1C,0x59,0x60,0x15,0x49,0x10,0x9A,0x4A,0x53, + 0x0E,0x9A,0x0F,0x99,0x51,0x80,0x12,0x4A,0x24,0x32,0x54,0x53,0x0B,0x99,0x11,0x4A, + 0x48,0x80,0x11,0x99,0x80,0x05,0x11,0x40,0xA2,0x05,0x92,0x09,0x11,0x43,0x89,0x0A, + 0x89,0x02,0x80,0x0D,0x01,0x43,0x12,0x98,0x01,0x60,0x08,0x98,0x40,0x1C,0x08,0x90, + 0x04,0x98,0x40,0x1C,0x04,0x90,0x08,0x98,0x14,0x99,0x88,0x42,0x00,0xDA,0x54,0xE6, + 0x15,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x93,0x00,0x00,0xF0,0x06,0x00,0x20, + 0xF8,0x09,0x00,0x20,0xFF,0xFF,0x00,0xFC,0x10,0x4B,0x30,0xB4,0x15,0x21,0xDA,0x88, + 0x89,0x01,0x80,0x24,0x59,0x18,0x00,0x28,0x0E,0xD0,0x0D,0x48,0x45,0x7B,0x0D,0x80, + 0xC5,0x89,0x4D,0x80,0x05,0x8A,0x8D,0x80,0x40,0x8A,0xC8,0x80,0x08,0x48,0x20,0x30, + 0x00,0x89,0x22,0x43,0x08,0x81,0x06,0xE0,0x00,0x20,0x08,0x80,0x48,0x80,0x88,0x80, + 0xC8,0x80,0xA2,0x43,0x08,0x81,0xDA,0x80,0x30,0xBC,0x70,0x47,0x40,0x00,0x00,0x20, + 0x80,0x93,0x00,0x00,0x7F,0xB5,0x25,0x4D,0x06,0x00,0x1A,0x28,0x0C,0xD1,0x28,0x6A, + 0x00,0x28,0x09,0xD1,0x68,0x6A,0x00,0x28,0x06,0xD1,0x21,0x4C,0x02,0xF0,0x34,0xF8, + 0x64,0x1E,0xFB,0xD2,0xFF,0x24,0x12,0xE0,0x06,0xF0,0x4C,0xFC,0x01,0xF0,0xFA,0xFE, + 0x01,0xF0,0x00,0xFF,0x03,0xAA,0x01,0xA9,0x02,0xA8,0x05,0xF0,0xB3,0xF9,0x04,0x00, + 0x03,0x00,0x01,0x9A,0x02,0x99,0x03,0x98,0x00,0x96,0x00,0xF0,0x33,0xF8,0x02,0x20, + 0x07,0xF0,0x06,0xFE,0x02,0x20,0x07,0xF0,0xF3,0xFD,0x12,0x49,0xE8,0x68,0xC8,0x61, + 0x28,0x69,0xC8,0x61,0x10,0x48,0xC2,0x68,0x52,0x08,0x52,0x00,0xC2,0x60,0x0F,0x4B, + 0x0F,0x48,0x02,0xE0,0xDA,0x68,0x82,0x42,0x02,0xD8,0x4A,0x69,0x92,0x06,0xF9,0xD5, + 0x48,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0x1F,0xF8,0x01,0x20,0x00,0xF0,0x6E,0xF8, + 0x20,0x00,0x04,0xB0,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x92,0x00,0x00, + 0xE7,0x03,0x00,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40, + 0x50,0xC3,0x00,0x00,0xFF,0xB5,0x05,0x00,0x0E,0x00,0x91,0xB0,0xFF,0xF7,0xAA,0xF8, + 0x1C,0x48,0x03,0x27,0x04,0x04,0x24,0x0C,0x3F,0x02,0x00,0x22,0x39,0x00,0x20,0x00, + 0xFF,0xF7,0x72,0xFC,0x18,0x49,0x3A,0x00,0x20,0x00,0x00,0x23,0xFF,0xF7,0x74,0xFC, + 0x16,0x49,0x40,0x22,0x01,0xA8,0xFF,0xF7,0x53,0xFC,0x14,0x99,0x28,0x04,0x09,0x03, + 0x08,0x43,0x13,0x49,0x08,0x43,0x04,0x90,0x13,0x99,0x30,0x04,0x08,0x43,0x05,0x90, + 0x10,0x48,0x11,0x49,0xC0,0x6B,0x10,0x90,0x0C,0x48,0x80,0x69,0x40,0x1C,0x07,0x90, + 0x00,0x20,0x8D,0x42,0x09,0x90,0x02,0xD1,0x06,0x99,0x49,0x1C,0x06,0x91,0x1A,0x99, + 0x1A,0x29,0x00,0xD1,0x0A,0x90,0x01,0xA8,0x07,0xF0,0xCA,0xFE,0x15,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x9D,0x00,0x00,0x00,0x00,0x10,0x40,0xC0,0x92,0x00,0x00, + 0xAB,0x0C,0x00,0x80,0xC0,0x0F,0x00,0x20,0xEC,0x0D,0x00,0x00,0x02,0x4A,0x51,0x69, + 0x81,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x4A,0x51,0x69, + 0x01,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x78,0x47,0xC0,0x46, + 0x01,0x21,0xA0,0xE3,0x50,0x30,0x92,0xE5,0x0C,0x10,0xA0,0xE3,0x03,0x00,0x80,0xE1, + 0x50,0x00,0x82,0xE5,0x00,0x00,0x00,0xEA,0x00,0x00,0xA0,0xE1,0x01,0x10,0x51,0xE2, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x01,0x48,0x40,0x69,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x01,0x48,0x80,0x6A,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x02,0x49,0x08,0x62,0x00,0x20,0x08,0x62,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x01,0x49,0x48,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x07,0x49,0xFF,0x28, + 0x04,0xD1,0x01,0x20,0xC8,0x60,0x00,0x20,0x88,0x61,0x70,0x47,0x8A,0x69,0x12,0x07, + 0x12,0x0F,0x02,0x43,0x8A,0x61,0x02,0x20,0xC8,0x60,0x70,0x47,0x40,0x00,0x00,0x40, + 0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x65,0xDF,0x4D,0xE2,0x00,0x00,0xA0,0xE3, + 0x68,0x01,0x8D,0xE5,0x0C,0x08,0x9F,0xE5,0x0C,0x28,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0xB0,0x24,0xD2,0xE1,0x78,0x10,0xD0,0xE5,0x77,0x70,0xD0,0xE5,0xFC,0x97,0x9F,0xE5, + 0x02,0x10,0x81,0xE0,0xFF,0x80,0x01,0xE2,0x79,0x10,0xD0,0xE5,0x00,0x50,0xE0,0xE3, + 0x00,0xB0,0xA0,0xE3,0x08,0x10,0x8D,0xE5,0x7A,0x00,0xD0,0xE5,0x04,0x00,0x8D,0xE5, + 0xDC,0x07,0x9F,0xE5,0x04,0x40,0xD9,0xE5,0x00,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3, + 0x03,0x00,0x00,0x1A,0xCC,0x07,0x9F,0xE5,0x00,0x00,0x90,0xE5,0xFA,0x00,0x50,0xE3, + 0x02,0x00,0x00,0x9A,0x03,0x80,0xA0,0xE3,0x08,0x80,0x8D,0xE5,0x0A,0x00,0x00,0xEA, + 0xB4,0x07,0x9F,0xE5,0x00,0x00,0xD0,0xE5,0x01,0x00,0x50,0xE3,0x02,0x80,0xA0,0x03, + 0x03,0x00,0xA0,0x03,0x03,0x00,0x00,0x0A,0xC8,0x02,0xD9,0xE5,0x00,0x00,0x50,0xE3, + 0x01,0x00,0x00,0x0A,0x00,0x00,0xA0,0xE3,0x08,0x00,0x8D,0xE5,0x82,0x01,0xD9,0xE5, + 0x01,0x60,0xA0,0xE3,0x01,0x00,0x50,0xE3,0x0E,0x00,0x00,0xBA,0x06,0x01,0x86,0xE0, + 0x80,0x00,0x89,0xE0,0x38,0x12,0xD0,0xE5,0x00,0x00,0x51,0xE3,0x05,0x00,0x00,0x0A, + 0x02,0x0C,0x80,0xE2,0x3E,0x00,0x80,0xE2,0x3C,0x0C,0x00,0xEB,0x00,0x00,0x50,0xE3, + 0x01,0x00,0x8B,0x12,0xFF,0xB0,0x00,0x12,0x82,0x01,0xD9,0xE5,0x01,0x60,0x86,0xE2, + 0x06,0x00,0x50,0xE1,0xF0,0xFF,0xFF,0xAA,0x40,0x07,0x9F,0xE5,0x00,0xA0,0xA0,0xE3, + 0xB4,0x3B,0xD0,0xE1,0xB8,0x2B,0xD0,0xE1,0x01,0x60,0xA0,0xE3,0x02,0x10,0x43,0xE0, + 0x00,0x00,0x51,0xE3,0x03,0x10,0x42,0xD0,0x01,0x28,0xA0,0xE1,0xB6,0x1B,0xD0,0xE1, + 0xBA,0x3B,0xD0,0xE1,0x22,0x28,0xA0,0xE1,0xB3,0xA2,0xC9,0xE5,0x03,0x00,0x41,0xE0, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x43,0xD0,0x00,0x00,0x5B,0xE3,0x00,0x08,0xA0,0xE1, + 0x28,0x00,0x52,0x13,0x20,0x08,0xA0,0xE1,0x06,0x00,0x00,0x2A,0x32,0x00,0x50,0xE3, + 0xB3,0x62,0xC9,0x35,0x03,0x00,0x00,0x3A,0x64,0x00,0x50,0xE3,0x03,0x00,0xA0,0x23, + 0x02,0x00,0xA0,0x33,0xB3,0x02,0xC9,0xE5,0xB2,0x02,0xD9,0xE5,0x00,0x00,0x50,0xE3, + 0x0B,0x00,0x00,0x1A,0xB3,0x02,0xD9,0xE5,0x01,0x00,0x50,0xE3,0x01,0x00,0x87,0x02, + 0xFF,0x70,0x00,0x02,0x06,0x00,0x00,0x0A,0x02,0x00,0x50,0xE3,0x02,0x00,0x87,0x02, + 0x02,0x00,0x00,0x0A,0x03,0x00,0x50,0xE3,0x01,0x00,0x00,0x1A,0x03,0x00,0x87,0xE2, + 0xFF,0x70,0x00,0xE2,0x09,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x57,0x0F,0x8D,0xE2, + 0x8C,0xFD,0xFF,0xEB,0xB6,0x00,0xD9,0xE1,0x84,0xB6,0x9F,0xE5,0x46,0x0F,0x10,0xE3, + 0x04,0x00,0x00,0x0A,0xD8,0x04,0x00,0xEB,0x00,0x60,0xCB,0xE5,0x65,0xDF,0x8D,0xE2, + 0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x50,0x06,0x9F,0xE5,0x00,0xA0,0xCB,0xE5, + 0x83,0x01,0xD0,0xE5,0x00,0x00,0x50,0xE3,0x40,0x16,0x9F,0x15,0x01,0x00,0x40,0x12, + 0x83,0x01,0xC1,0x15,0x00,0x00,0x54,0xE3,0x04,0x00,0x00,0x1A,0x2C,0x06,0x9F,0xE5, + 0x81,0x01,0xD0,0xE5,0x00,0x00,0x50,0xE3,0x7C,0x01,0x00,0x0A,0x17,0x00,0x00,0xEA, + 0x18,0x96,0x9F,0xE5,0x81,0x01,0xD9,0xE5,0x00,0x00,0x50,0xE3,0x13,0x00,0x00,0x1A, + 0x20,0x06,0x9F,0xE5,0x5A,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x6D,0xFD,0xFF,0xEB, + 0x83,0x01,0xD9,0xE5,0x00,0x00,0x50,0xE3,0x70,0x01,0x00,0x1A,0x01,0x00,0x54,0xE3, + 0x01,0x50,0xA0,0xE3,0x07,0x00,0x00,0xBA,0xFF,0x20,0x05,0xE2,0xFF,0x10,0x05,0xE2, + 0x14,0x30,0xA0,0xE3,0x57,0x0F,0x8D,0xE2,0xC7,0xFD,0xFF,0xEB,0x01,0x50,0x85,0xE2, + 0x04,0x00,0x55,0xE1,0xF7,0xFF,0xFF,0xDA,0x80,0x41,0xC9,0xE5,0x63,0x01,0x00,0xEA, + 0x09,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x15,0x0E,0x8D,0xE2,0x59,0xFD,0xFF,0xEB, + 0x01,0x00,0x87,0xE2,0x90,0x01,0x8D,0xE5,0x02,0x00,0x88,0xE2,0x8C,0x01,0x8D,0xE5, + 0xB4,0x05,0x9F,0xE5,0x01,0x60,0xA0,0xE3,0x88,0x01,0x8D,0xE5,0x09,0x00,0x40,0xE2, + 0x84,0x01,0x8D,0xE5,0x08,0x70,0xA0,0xE3,0x0C,0x80,0x8D,0xE2,0x87,0x01,0x87,0xE0, + 0x0C,0x10,0x8D,0xE2,0x00,0x01,0x81,0xE0,0x24,0x20,0xA0,0xE3,0x00,0x10,0xE0,0xE3, + 0x48,0xFD,0xFF,0xEB,0x01,0x70,0x57,0xE2,0xF7,0xFF,0xFF,0x5A,0x06,0x00,0xA0,0xE1, + 0x5F,0x06,0x00,0xEB,0x01,0x00,0x54,0xE3,0x00,0x80,0xA0,0xE1,0x01,0x90,0xA0,0xE3, + 0x47,0x00,0x00,0xBA,0x44,0x05,0x9F,0xE5,0x08,0xA0,0xA0,0xE1,0x82,0x11,0xD0,0xE5, + 0x01,0x70,0xA0,0xE3,0x01,0x00,0x51,0xE3,0x3E,0x00,0x00,0xBA,0x89,0x00,0x80,0xE0, + 0x80,0x01,0x8D,0xE5,0x01,0x0C,0x80,0xE2,0x7C,0x01,0x8D,0xE5,0x89,0x01,0x89,0xE0, + 0x0C,0x10,0x8D,0xE2,0x78,0x01,0x8D,0xE5,0x00,0x01,0x81,0xE0,0x74,0x01,0x8D,0xE5, + 0x08,0x15,0x9F,0xE5,0x07,0x01,0x87,0xE0,0x80,0xB0,0x81,0xE0,0x38,0x02,0xDB,0xE5, + 0x00,0x00,0x50,0xE3,0x2A,0x00,0x00,0x0A,0x02,0x0C,0x8B,0xE2,0x3E,0x00,0x80,0xE2, + 0x70,0x01,0x8D,0xE5,0xA1,0x0B,0x00,0xEB,0x06,0x00,0x90,0xE1,0x04,0x00,0x00,0x0A, + 0x70,0x01,0x9D,0xE5,0x9D,0x0B,0x00,0xEB,0x00,0x00,0x50,0xE3,0x00,0x00,0x56,0x13, + 0x1F,0x00,0x00,0x0A,0x80,0x01,0x9D,0xE5,0xCD,0x10,0xA0,0xE3,0xB4,0x0F,0xD0,0xE1, + 0x33,0x1B,0x81,0xE2,0x91,0x00,0x00,0xE0,0xA0,0x29,0xA0,0xE1,0x02,0x0C,0x8B,0xE2, + 0xBA,0x33,0xD0,0xE1,0x02,0x10,0x43,0xE0,0x00,0x00,0x51,0xE3,0x03,0x10,0x42,0xD0, + 0x7C,0x21,0x9D,0xE5,0xCD,0x30,0xA0,0xE3,0xB6,0x20,0xD2,0xE1,0x33,0x3B,0x83,0xE2, + 0x93,0x02,0x02,0xE0,0xBC,0x33,0xD0,0xE1,0xA2,0x29,0xA0,0xE1,0x02,0x00,0x43,0xE0, + 0x00,0x00,0x50,0xE3,0x03,0x00,0x42,0xD0,0x91,0x01,0x02,0xE0,0x00,0x10,0xA0,0xE1, + 0x91,0x20,0x20,0xE0,0x0A,0x00,0x50,0xE1,0x03,0x00,0x00,0xAA,0x78,0x11,0x9D,0xE5, + 0x0C,0x20,0x8D,0xE2,0x00,0xA0,0xA0,0xE1,0x01,0x71,0x82,0xE7,0x74,0x11,0x9D,0xE5, + 0x07,0x01,0x81,0xE7,0x44,0x04,0x9F,0xE5,0x01,0x70,0x87,0xE2,0x82,0x01,0xD0,0xE5, + 0x07,0x00,0x50,0xE1,0xC9,0xFF,0xFF,0xAA,0x01,0x90,0x89,0xE2,0x04,0x00,0x59,0xE1, + 0xB7,0xFF,0xFF,0xDA,0x01,0x00,0xA0,0xE3,0x01,0x00,0x54,0xE3,0x6C,0x01,0x8D,0xE5, + 0x7D,0x00,0x00,0xBA,0x0C,0x70,0x8D,0xE2,0x01,0xC0,0xA0,0xE3,0x01,0x00,0x54,0xE3, + 0x08,0x30,0xA0,0xE1,0x0C,0x00,0xA0,0xE1,0x72,0x00,0x00,0xBA,0x57,0x1F,0x8D,0xE2, + 0x00,0x10,0xD1,0xE7,0x00,0x00,0x51,0xE3,0x0B,0x00,0x00,0x1A,0x80,0x11,0x80,0xE0, + 0x01,0x21,0x97,0xE7,0x01,0x91,0x87,0xE0,0x02,0x11,0x99,0xE7,0x03,0x00,0x51,0xE1, + 0x05,0x00,0x00,0xAA,0x00,0x00,0x51,0xE3,0x00,0x00,0x52,0xA3,0x02,0x00,0x00,0xBA, + 0x00,0x50,0xA0,0xE1,0x01,0x30,0xA0,0xE1,0x00,0xC0,0xA0,0xE3,0x01,0x00,0x80,0xE2, + 0x04,0x00,0x50,0xE1,0xEC,0xFF,0xFF,0xDA,0x00,0x00,0x5C,0xE3,0x5D,0x00,0x00,0x1A, + 0x68,0x01,0x9D,0xE5,0x85,0x91,0x85,0xE0,0x01,0x00,0x80,0xE2,0x68,0x01,0x8D,0xE5, + 0x09,0x01,0x97,0xE7,0x94,0xB3,0x9F,0xE5,0x00,0x01,0x80,0xE0,0x80,0x00,0x8B,0xE0, + 0x01,0x1C,0x80,0xE2,0x05,0x01,0x85,0xE0,0x80,0xA0,0x8B,0xE0,0xDE,0x10,0x81,0xE2, + 0x61,0x0F,0x8A,0xE2,0x0A,0x20,0xA0,0xE3,0xCC,0xFC,0xFF,0xEB,0x85,0x00,0x8B,0xE0, + 0xB4,0x1F,0xD0,0xE1,0xCD,0x20,0xA0,0xE3,0x33,0x2B,0x82,0xE2,0x92,0x01,0x01,0xE0, + 0xA1,0x29,0xA0,0xE1,0x01,0x1C,0x8A,0xE2,0x01,0x0C,0x80,0xE2,0xB6,0x28,0xC1,0xE1, + 0xB6,0x00,0xD0,0xE1,0xCD,0x20,0xA0,0xE3,0x33,0x2B,0x82,0xE2,0x92,0x00,0x00,0xE0, + 0xA0,0x09,0xA0,0xE1,0xB8,0x08,0xC1,0xE1,0x05,0x00,0x8B,0xE0,0x38,0x01,0xD0,0xE5, + 0x85,0x01,0xCA,0xE5,0x8A,0x01,0xDA,0xE5,0x90,0x11,0x9D,0xE5,0x01,0x00,0x50,0xE1, + 0x01,0x00,0x80,0x32,0x8A,0x01,0xCA,0x35,0x8A,0x01,0xDA,0xE5,0x13,0x00,0x50,0xE3, + 0x06,0x00,0x00,0x9A,0xCD,0x10,0xA0,0xE3,0x90,0x01,0x01,0xE0,0x8C,0x21,0x9D,0xE5, + 0x21,0x16,0xA0,0xE1,0x02,0x00,0x51,0xE1,0x14,0x00,0x80,0x32,0x8A,0x01,0xCA,0x35, + 0x84,0x01,0xDA,0xE5,0x57,0xEF,0x8D,0xE2,0x01,0x00,0x54,0xE3,0x05,0x00,0xCE,0xE7, + 0x88,0x11,0x9D,0xE5,0x01,0x50,0xC0,0xE7,0x84,0x21,0xDA,0xE5,0x84,0x11,0x9D,0xE5, + 0x00,0x00,0xA0,0xE3,0x01,0x00,0xC2,0xE7,0x09,0x11,0x97,0xE7,0x15,0x2E,0x8D,0xE2, + 0x01,0x00,0xC2,0xE7,0x01,0x00,0xA0,0xE3,0x19,0x00,0x00,0xBA,0xAC,0x12,0x9F,0xE5, + 0x82,0xC1,0xD1,0xE5,0x09,0x21,0x97,0xE7,0x80,0xA1,0x80,0xE0,0x00,0x10,0xE0,0xE3, + 0x0A,0xB1,0x87,0xE0,0x02,0x11,0x8B,0xE7,0x00,0x10,0xDE,0xE7,0x08,0x30,0xA0,0xE1, + 0x00,0x00,0x51,0xE3,0x0B,0x00,0x00,0x1A,0x01,0x00,0x5C,0xE3,0x01,0x10,0xA0,0xE3, + 0x08,0x00,0x00,0xBA,0x01,0x21,0x9B,0xE7,0x01,0x00,0x72,0xE3,0x02,0x00,0x00,0xDA, + 0x03,0x00,0x52,0xE1,0x02,0x30,0xA0,0xB1,0x0A,0x11,0x87,0xB7,0x01,0x10,0x81,0xE2, + 0x01,0x00,0x5C,0xE1,0xF6,0xFF,0xFF,0xAA,0x01,0x00,0x80,0xE2,0x04,0x00,0x50,0xE1, + 0xE7,0xFF,0xFF,0xDA,0x44,0x02,0x9F,0xE5,0x68,0x11,0x9D,0xE5,0x82,0x01,0xD0,0xE5, + 0x01,0x00,0x50,0xE1,0x04,0x00,0x00,0xDA,0x6C,0x01,0x9D,0xE5,0x01,0x00,0x80,0xE2, + 0x04,0x00,0x50,0xE1,0x6C,0x01,0x8D,0xE5,0x82,0xFF,0xFF,0xDA,0x06,0x00,0xB0,0xE1, + 0x01,0x10,0x46,0xE2,0xFF,0x60,0x01,0xE2,0x21,0xFF,0xFF,0x1A,0x0C,0x82,0x9F,0xE5, + 0x01,0x60,0xA0,0xE3,0x82,0x01,0xD8,0xE5,0x00,0x70,0xA0,0xE3,0x06,0xA0,0xA0,0xE1, + 0x01,0x00,0x50,0xE3,0x43,0x00,0x00,0xBA,0x15,0x0E,0x8D,0xE2,0x06,0x00,0xD0,0xE7, + 0x00,0x00,0x50,0xE3,0x3B,0x00,0x00,0x0A,0x06,0x01,0x86,0xE0,0x80,0x50,0x88,0xE0, + 0x38,0x02,0xD5,0xE5,0x84,0x11,0x9D,0xE5,0x0A,0x90,0x84,0xE0,0x01,0x00,0xD0,0xE7, + 0x08,0x10,0x9D,0xE5,0x01,0x00,0x50,0xE1,0x23,0x00,0x00,0x2A,0x08,0x00,0x59,0xE3, + 0x21,0x00,0x00,0xCA,0x02,0x0C,0x85,0xE2,0x3E,0x00,0x80,0xE2,0xD3,0x0A,0x00,0xEB, + 0x00,0x00,0x50,0xE3,0x1C,0x00,0x00,0x0A,0x38,0x02,0xD5,0xE5,0x84,0x11,0x9D,0xE5, + 0x84,0x21,0x9D,0xE5,0x01,0x10,0xD0,0xE7,0x01,0x10,0x81,0xE2,0x02,0x10,0xC0,0xE7, + 0x09,0x01,0x89,0xE0,0x80,0xB0,0x88,0xE0,0x8E,0x1F,0x85,0xE2,0x61,0x0F,0x8B,0xE2, + 0x0A,0x20,0xA0,0xE3,0x4D,0xFC,0xFF,0xEB,0xE5,0x01,0xD5,0xE5,0x57,0x1F,0x8D,0xE2, + 0x01,0xA0,0x8A,0xE2,0x8B,0x01,0xCB,0xE5,0xE6,0x01,0xD5,0xE5,0x01,0x70,0x87,0xE2, + 0x8C,0x01,0xCB,0xE5,0x38,0x02,0xD5,0xE5,0x09,0x00,0xC1,0xE7,0x88,0x11,0x9D,0xE5, + 0x01,0x90,0xC0,0xE7,0x64,0x01,0x9F,0xE5,0x00,0x10,0xD0,0xE5,0x00,0x00,0x51,0xE3, + 0x01,0x10,0xA0,0x03,0x00,0x10,0xC0,0x05,0x0E,0x00,0x00,0xEA,0x02,0x0C,0x85,0xE2, + 0x3E,0x00,0x80,0xE2,0xB1,0x0A,0x00,0xEB,0x00,0x00,0x50,0xE3,0x09,0x00,0x00,0x0A, + 0x01,0x00,0xA0,0xE3,0xB1,0x02,0xC8,0xE5,0x3E,0x02,0xD5,0xE5,0x13,0x00,0x50,0xE3, + 0x04,0x00,0x00,0x9A,0x81,0x01,0xD8,0xE5,0x01,0x00,0x50,0xE3,0xB6,0x00,0xD8,0x01, + 0x04,0x00,0x80,0x03,0xB6,0x00,0xC8,0x01,0x82,0x01,0xD8,0xE5,0x01,0x60,0x86,0xE2, + 0x06,0x00,0x50,0xE1,0xBB,0xFF,0xFF,0xAA,0xB6,0x00,0xD8,0xE1,0x04,0x00,0x10,0xE3, + 0x03,0x00,0x00,0x0A,0x04,0x10,0x9D,0xE5,0x04,0x00,0xC0,0xE3,0x83,0x11,0xC8,0xE5, + 0xB6,0x00,0xC8,0xE1,0x01,0x00,0x54,0xE3,0x01,0x50,0xA0,0xE3,0x21,0x00,0x00,0xBA, + 0x57,0x6F,0x8D,0xE2,0x01,0x90,0xA0,0xE3,0x05,0x00,0xD6,0xE7,0x00,0x00,0x50,0xE3, + 0x0F,0x00,0x00,0x1A,0x01,0x00,0xA0,0xE3,0x00,0x10,0x88,0xE0,0x9B,0x22,0xD1,0xE5, + 0x00,0x00,0x52,0xE3,0xA4,0x12,0xD1,0x05,0x00,0x00,0x51,0x03,0x05,0x00,0x00,0x1A, + 0xFF,0x20,0x00,0xE2,0xFF,0x10,0x05,0xE2,0x01,0x30,0xA0,0xE3,0x57,0x0F,0x8D,0xE2, + 0x71,0xFC,0xFF,0xEB,0x02,0x00,0x00,0xEA,0x01,0x00,0x80,0xE2,0x09,0x00,0x50,0xE3, + 0xF0,0xFF,0xFF,0xBA,0x83,0x01,0xD8,0xE5,0x00,0x00,0x50,0xE3,0x06,0x00,0x00,0x0A, + 0x05,0x01,0x85,0xE0,0x80,0xA0,0x88,0xE0,0x01,0x0C,0x8A,0xE2,0x8A,0x00,0x80,0xE2, + 0x7A,0x0A,0x00,0xEB,0x00,0x00,0x50,0xE3,0x8A,0x91,0xCA,0x05,0x01,0x50,0x85,0xE2, + 0x04,0x00,0x55,0xE1,0xDF,0xFF,0xFF,0xDA,0x07,0x00,0x84,0xE0,0x80,0x01,0xC8,0xE5, + 0x28,0x00,0x9F,0xE5,0x5A,0x20,0xA0,0xE3,0x80,0x11,0xD0,0xE5,0x82,0x11,0xC0,0xE5, + 0x61,0x1F,0x80,0xE2,0x8E,0x0F,0x80,0xE2,0xF4,0xFB,0xFF,0xEB,0x65,0xDF,0x8D,0xE2, + 0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0xF0,0x06,0x00,0x20,0x40,0x05,0x00,0x20, + 0x40,0x00,0x00,0x20,0xA3,0x05,0x00,0x20,0xDC,0x05,0x00,0x20,0x95,0x05,0x00,0x20, + 0x40,0x02,0x00,0x20,0x8E,0x05,0x00,0x20,0x1E,0x02,0x00,0x20,0xDB,0x02,0x00,0x20, + 0x6C,0x06,0x00,0x20,0xF1,0xB5,0x38,0x48,0x86,0xB0,0x05,0x90,0x00,0x20,0x04,0x90, + 0x36,0x48,0x41,0x7F,0x01,0x91,0x01,0x00,0x20,0x39,0x49,0x7F,0x00,0x91,0x00,0x21, + 0x02,0x91,0x01,0x7D,0x00,0x20,0xC0,0x43,0x00,0x29,0x06,0x99,0x03,0xD1,0x00,0x29, + 0x03,0xD1,0x01,0x20,0x01,0xE0,0x00,0x29,0xFB,0xD1,0x03,0x90,0x01,0xF0,0x6C,0xF9, + 0x01,0xF0,0xD8,0xF9,0x00,0x24,0x27,0x00,0x00,0x26,0x31,0x00,0x38,0x00,0x02,0xF0, + 0x6F,0xF9,0x00,0x28,0x28,0xD0,0x0E,0x21,0x79,0x43,0x05,0x9A,0x89,0x19,0x89,0x00, + 0x51,0x58,0x09,0x05,0x09,0x0D,0x0D,0x1A,0x06,0x98,0x00,0x28,0x0D,0xD0,0x00,0x2D, + 0x1A,0xDA,0x03,0x9A,0x31,0x00,0x38,0x00,0x06,0xF0,0xA8,0xFE,0x40,0x1C,0x14,0xD1, + 0x00,0x98,0x28,0x18,0x10,0xD5,0x02,0x20,0x0D,0xE0,0x00,0x2D,0x0C,0xDD,0x03,0x9A, + 0x31,0x00,0x38,0x00,0x06,0xF0,0x9A,0xFE,0x40,0x1C,0x06,0xD1,0x01,0x98,0x28,0x1A, + 0x00,0x28,0x01,0xDD,0x03,0x20,0x04,0x90,0x64,0x1C,0x76,0x1C,0x0E,0x2E,0xCC,0xD3, + 0x7F,0x1C,0x15,0x2F,0xC8,0xD3,0x20,0x00,0xFF,0x38,0x27,0x38,0x04,0xD1,0x04,0x98, + 0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x02,0x98,0x41,0x1C,0x02,0x91,0x01,0x21, + 0x49,0x02,0x88,0x42,0xB2,0xD9,0x06,0x98,0x00,0x28,0x01,0xD0,0x02,0x20,0x00,0xE0, + 0x03,0x20,0x04,0x90,0xEC,0xE7,0x00,0x00,0xD4,0x02,0x10,0x40,0x20,0x93,0x00,0x00, + 0xF0,0xB5,0x7B,0x4A,0xFF,0xB0,0xBC,0xB0,0x40,0x18,0xB9,0x92,0x42,0x00,0x80,0x18, + 0xB8,0x90,0x48,0x42,0xB7,0x90,0x77,0x48,0x77,0x4E,0x07,0x7D,0x02,0xA8,0x01,0x90, + 0x76,0x48,0xBA,0x90,0x00,0x7D,0x00,0x28,0x02,0xD1,0xB7,0x98,0x40,0x42,0xB7,0x90, + 0x73,0x4A,0x00,0x21,0x30,0x00,0xFE,0xF7,0x3F,0xFF,0x00,0x25,0x00,0x24,0x6F,0x48, + 0x20,0x38,0x01,0x7D,0xC9,0x07,0x14,0xD0,0x6E,0x49,0x09,0x78,0x00,0x29,0x16,0xD0, + 0xBD,0x42,0x0E,0xD1,0x81,0x7D,0xA1,0x42,0x0B,0xD0,0xC1,0x7D,0xA1,0x42,0x08,0xD0, + 0x01,0x7E,0xA1,0x42,0x05,0xD0,0x41,0x7E,0xA1,0x42,0x02,0xD0,0x80,0x7E,0xA0,0x42, + 0x16,0xD1,0xB7,0x9A,0x21,0x00,0x28,0x00,0x06,0xF0,0x30,0xFE,0x10,0xE0,0xBC,0x42, + 0xF7,0xD1,0x81,0x7D,0xA9,0x42,0xF4,0xD0,0xC1,0x7D,0xA9,0x42,0xF1,0xD0,0x01,0x7E, + 0xA9,0x42,0xEE,0xD0,0x41,0x7E,0xA9,0x42,0xEB,0xD0,0x80,0x7E,0xA8,0x42,0xE8,0xD0, + 0x64,0x1C,0x0E,0x2C,0xCB,0xD3,0x6D,0x1C,0x15,0x2D,0xC7,0xD3,0x01,0xF0,0xBC,0xF8, + 0x01,0xF0,0x28,0xF9,0x00,0x25,0x00,0x24,0x0E,0x20,0x2F,0x00,0x47,0x43,0x21,0x00, + 0x28,0x00,0x02,0xF0,0xBD,0xF8,0x00,0x28,0x0F,0xD0,0xB9,0x9B,0x3A,0x19,0x91,0x00, + 0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D,0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD, + 0x08,0x1A,0x00,0xE0,0x40,0x1A,0x51,0x00,0x70,0x52,0x21,0x00,0x28,0x00,0x02,0xF0, + 0xED,0xF8,0x39,0x19,0x01,0x9A,0x49,0x00,0x64,0x1C,0x0E,0x2C,0x50,0x52,0xDE,0xD3, + 0x6D,0x1C,0x15,0x2D,0xD7,0xD3,0x00,0x20,0x00,0x90,0x01,0xF0,0xFB,0xF8,0x00,0x25, + 0x00,0x24,0x21,0x00,0x28,0x00,0x02,0xF0,0x93,0xF8,0x00,0x28,0x3E,0xD0,0x0E,0x21, + 0x69,0x43,0xB9,0x9B,0x0A,0x19,0x91,0x00,0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D, + 0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0,0x40,0x1A,0x57,0x00, + 0xF1,0x5B,0x00,0x04,0x00,0x0C,0x81,0x42,0x06,0xD9,0xF0,0x53,0x21,0x00,0x28,0x00, + 0x02,0xF0,0xBC,0xF8,0x01,0x99,0xC8,0x53,0x00,0x98,0x03,0x21,0xFE,0xF7,0x6A,0xFE, + 0x00,0x29,0x01,0xD0,0x02,0x29,0x0D,0xD1,0xBA,0x98,0x00,0x7D,0x00,0x28,0x02,0xD1, + 0x00,0x22,0x43,0x1E,0x01,0xE0,0x01,0x22,0x00,0x23,0x21,0x00,0x28,0x00,0x06,0xF0, + 0x85,0xFD,0x0B,0xE0,0x00,0x22,0xD2,0x43,0x00,0x23,0x21,0x00,0x28,0x00,0x06,0xF0, + 0x7D,0xFD,0x00,0x28,0x02,0xD1,0x00,0x22,0x01,0x23,0xEE,0xE7,0x64,0x1C,0x0E,0x2C, + 0xB7,0xD3,0x6D,0x1C,0x15,0x2D,0xB3,0xD3,0x00,0x98,0x40,0x1C,0x00,0x90,0xB8,0x98, + 0x40,0x1E,0xB8,0x90,0x18,0xD2,0x00,0x25,0x00,0x24,0x0E,0x20,0x2E,0x00,0x46,0x43, + 0x01,0x99,0x30,0x19,0x40,0x00,0x0A,0x5A,0x21,0x00,0x28,0x00,0x06,0xF0,0x7A,0xFD, + 0x64,0x1C,0x0E,0x2C,0xF4,0xD3,0x6D,0x1C,0x15,0x2D,0xED,0xD3,0x7F,0xB0,0x3C,0xB0, + 0xF0,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x01,0xF0,0x1E,0xF8,0x8D,0xE7,0x00,0x00, + 0xD4,0x02,0x10,0x40,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x10,0x20,0x93,0x00,0x00, + 0xD2,0x02,0x00,0x00,0x99,0x05,0x00,0x20,0xF8,0xB5,0x01,0x22,0x52,0x07,0x10,0x68, + 0x01,0x28,0x03,0xD0,0x10,0x68,0x01,0x28,0x43,0xD9,0x02,0x20,0x86,0x46,0x22,0x48, + 0x00,0x90,0x80,0x7D,0x00,0x28,0x3C,0xD0,0x00,0x21,0x05,0x25,0x1F,0x4F,0x2D,0x02, + 0x32,0xE0,0x72,0x46,0x8A,0x18,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F, + 0xC0,0x07,0x28,0xD1,0x00,0x9C,0x93,0x00,0xA6,0x7D,0x1B,0x0F,0x21,0xE0,0x84,0x00, + 0xE4,0x19,0x64,0x19,0xA4,0x69,0xA4,0x00,0x24,0x0F,0xA3,0x42,0x18,0xD1,0x80,0x00, + 0xC0,0x19,0x40,0x19,0x80,0x69,0x92,0x0A,0x83,0x05,0x92,0x02,0x9B,0x0D,0x1A,0x43, + 0x0F,0x4B,0x1A,0x40,0x83,0x01,0x9B,0x0D,0x1B,0x04,0x1A,0x43,0x3F,0x23,0x9B,0x02, + 0x00,0x04,0x80,0x0E,0x9A,0x43,0x80,0x02,0x02,0x43,0x60,0x46,0x02,0x60,0x02,0xE0, + 0x40,0x1C,0x86,0x42,0xDB,0xD8,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42, + 0xC7,0xD8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x40,0x05,0x00,0x20,0x40,0x00,0x00,0x20, + 0xFF,0xFF,0x00,0xFC,0xFC,0xB5,0x04,0x00,0x60,0x48,0x8E,0x46,0x02,0x8C,0x60,0x49, + 0x40,0x8C,0x01,0x91,0x4B,0x8A,0x20,0x39,0x00,0x91,0x89,0x79,0x00,0x25,0x2F,0x00, + 0xC9,0x07,0x01,0x26,0x00,0x29,0xAC,0x46,0x01,0xD1,0xE6,0x71,0xAA,0xE0,0x01,0x99, + 0x09,0x7C,0x00,0x29,0x0D,0xD0,0x01,0x29,0x0F,0xD0,0x02,0x29,0x07,0xD0,0x03,0x29, + 0xF4,0xD1,0x17,0x00,0xD1,0x18,0x0A,0x04,0x12,0x0C,0x03,0x00,0x05,0xE0,0x1A,0x00, + 0xFB,0xE7,0x84,0x46,0xC0,0x18,0x03,0x04,0x1B,0x0C,0x60,0x88,0xA1,0x88,0x87,0x42, + 0x5C,0xDC,0x82,0x42,0x5A,0xDB,0x8C,0x45,0x58,0xDC,0x8B,0x42,0x56,0xDB,0x01,0x25, + 0x72,0x46,0x00,0x2A,0x7B,0xD0,0x06,0x27,0x01,0x2A,0x0E,0xD0,0x02,0x2A,0x18,0xD0, + 0x03,0x2A,0x76,0xD1,0xE2,0x79,0xD3,0x07,0x2D,0xD0,0x01,0x2A,0x01,0xD0,0x05,0x2A, + 0x27,0xD1,0x09,0x20,0x00,0x25,0xE0,0x71,0x6B,0xE0,0x00,0x9A,0x92,0x78,0x00,0x2A, + 0x67,0xD1,0x00,0xF0,0x79,0xF8,0x06,0x00,0x0F,0xD1,0x02,0x20,0xE0,0x71,0x26,0x72, + 0x5F,0xE0,0xE2,0x79,0xD3,0x07,0xE8,0xD1,0x92,0x07,0x5A,0xD5,0x00,0xF0,0x6C,0xF8, + 0x06,0x00,0x08,0xD0,0x20,0x7A,0x00,0x28,0x05,0xD1,0x31,0x00,0x20,0x00,0xE7,0x71, + 0xFE,0xF7,0x1E,0xFE,0xEB,0xE7,0x31,0x00,0x20,0x00,0xE7,0x71,0xFE,0xF7,0x18,0xFE, + 0x47,0xE0,0x11,0x20,0x44,0xE0,0x92,0x07,0x43,0xD5,0x00,0xF0,0x55,0xF8,0x21,0x7A, + 0x00,0x28,0x0A,0xD0,0x00,0x29,0x0C,0xD0,0x81,0x42,0x08,0xD1,0x0A,0x20,0xE0,0x71, + 0x20,0x00,0xFE,0xF7,0x05,0xFE,0xA6,0x71,0x05,0xE0,0x00,0x29,0x01,0xD0,0x12,0x20, + 0xF5,0xE7,0x02,0x20,0xE0,0x71,0x00,0x20,0x20,0x72,0x2A,0xE0,0x70,0x46,0x00,0x28, + 0x25,0xD0,0x01,0x28,0x06,0xD0,0x02,0x28,0x06,0xD0,0x03,0x28,0x21,0xD1,0xE0,0x79, + 0x80,0x07,0x0E,0xD4,0xE6,0x71,0x1C,0xE0,0xE0,0x79,0x80,0x07,0xFA,0xD5,0x21,0x7A, + 0x00,0x29,0x04,0xD0,0x12,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0xE1,0xFD,0xE6,0x71, + 0x09,0xE0,0x02,0x20,0xE0,0x71,0x21,0x7A,0x00,0x29,0x04,0xD0,0x0A,0x20,0xE0,0x71, + 0x20,0x00,0xFE,0xF7,0xD5,0xFD,0x01,0x25,0xA6,0x71,0x02,0xE0,0xFF,0xE7,0x00,0x20, + 0xE0,0x71,0x08,0x49,0xC8,0x88,0x82,0x07,0x04,0xD1,0xE2,0x79,0x92,0x07,0x92,0x0F, + 0x10,0x43,0xC8,0x80,0x28,0x00,0xFC,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00, + 0x00,0x05,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB4,0x16,0x4B,0x04,0x00,0xDE,0x79, + 0x00,0x22,0x10,0x00,0x00,0x2E,0x23,0xD0,0x1B,0x78,0x00,0x2B,0x20,0xD1,0x12,0x4F, + 0x1C,0xE0,0xD3,0x00,0xDD,0x19,0x25,0x23,0x5B,0x01,0xEB,0x18,0x08,0x25,0x5D,0x5F, + 0xA5,0x42,0x0E,0xDC,0x0C,0x25,0x5D,0x5F,0xA5,0x42,0x0A,0xDB,0x0A,0x25,0x5D,0x5F, + 0x8D,0x42,0x06,0xDC,0x0E,0x25,0x5D,0x5F,0x8D,0x42,0x02,0xDB,0x50,0x1C,0x00,0x06, + 0x00,0x0E,0x00,0x28,0x04,0xD1,0x52,0x1C,0x12,0x06,0x12,0x0E,0x96,0x42,0xE0,0xD8, + 0xF0,0xBC,0x70,0x47,0xE0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB5,0x00,0x20, + 0x8F,0xB0,0xB5,0x4D,0x0D,0x90,0x0C,0x90,0x29,0x68,0x08,0x88,0x0B,0x90,0x08,0x00, + 0x40,0x30,0xC2,0x7F,0x60,0x31,0x0A,0x92,0x82,0x7F,0x09,0x92,0x49,0x78,0x08,0x91, + 0x81,0x7D,0x07,0x91,0xAD,0x49,0xCA,0x88,0x09,0x79,0x13,0x07,0x05,0xD5,0xAB,0x4B, + 0x00,0x29,0x02,0xD1,0x08,0x24,0xA2,0x43,0xDA,0x80,0xA9,0x4A,0x12,0x78,0x00,0x2A, + 0x07,0xD0,0xFF,0x20,0x06,0x90,0x05,0x90,0x08,0x20,0x04,0x90,0xA5,0x4F,0x96,0x20, + 0x07,0xE0,0x02,0x7C,0x47,0x8B,0x06,0x92,0x42,0x7C,0x05,0x92,0x82,0x7C,0x04,0x92, + 0xC0,0x7C,0x03,0x90,0x0B,0x98,0x80,0x04,0x7E,0xD5,0x9F,0x4A,0x00,0x20,0x52,0x78, + 0x00,0x2A,0x02,0xD1,0x00,0x29,0x00,0xD1,0x01,0x20,0x00,0x90,0x00,0xF0,0x3C,0xF9, + 0x96,0x48,0x9A,0x4C,0x00,0x79,0x00,0x28,0x0E,0x90,0x4A,0xD0,0x93,0x49,0x01,0x20, + 0x0E,0x89,0xBE,0x42,0x00,0xD3,0x00,0x20,0x02,0x90,0x30,0x00,0x0A,0x22,0x1A,0x21, + 0x50,0x43,0x61,0x5E,0x0F,0x00,0xFE,0xF7,0x3D,0xFB,0x06,0x99,0x88,0x42,0x01,0xDA, + 0x01,0x20,0x00,0xE0,0x00,0x20,0x01,0x90,0xF0,0x1B,0x0A,0x21,0xFE,0xF7,0x32,0xFB, + 0x05,0x99,0x88,0x42,0x01,0xDA,0x01,0x21,0x00,0xE0,0x00,0x21,0xA3,0x8A,0x04,0x9E, + 0x01,0x22,0x10,0x00,0xB3,0x42,0x00,0xD8,0x00,0x20,0xE3,0x69,0x03,0x9E,0xB3,0x42, + 0x00,0xDB,0x00,0x22,0x02,0x9B,0x00,0x2B,0x1B,0xD0,0x01,0x9B,0x00,0x2B,0x18,0xD0, + 0x00,0x29,0x16,0xD0,0x00,0x28,0x14,0xD0,0x00,0x2A,0x12,0xD0,0x77,0x48,0xC0,0x30, + 0xC0,0x6A,0x00,0x28,0x0D,0xD1,0x7A,0x48,0x00,0x88,0x1E,0x28,0x09,0xD2,0x60,0x7E, + 0x00,0x28,0x1C,0xD0,0x29,0x68,0x40,0x31,0x49,0x7E,0x88,0x42,0x17,0xD8,0x40,0x1E, + 0x14,0xE0,0x29,0x68,0xE0,0x69,0x40,0x31,0x0A,0x7D,0x90,0x42,0x0F,0xDB,0x0E,0x98, + 0x6A,0x4A,0x00,0x28,0x0B,0xD0,0xD0,0x88,0xC0,0x06,0x08,0xD4,0x60,0x7E,0xC9,0x7D, + 0x88,0x42,0x04,0xD2,0x07,0x99,0x88,0x42,0x01,0xD9,0x40,0x1C,0x60,0x76,0x60,0x7E, + 0x07,0x99,0x10,0x22,0x88,0x42,0x0D,0xD8,0x00,0x98,0x00,0x28,0x0A,0xD1,0x5F,0x48, + 0xC1,0x88,0x11,0x43,0xC1,0x80,0x00,0xE0,0x11,0xE0,0x28,0x68,0x40,0x30,0x00,0x7E, + 0x20,0x76,0x0F,0xE0,0x59,0x4B,0xD8,0x88,0xC1,0x06,0x0B,0xD5,0x21,0x7E,0x00,0x29, + 0x06,0xD1,0x90,0x43,0xD8,0x80,0x28,0x68,0x40,0x30,0x40,0x7D,0x60,0x76,0x01,0xE0, + 0x49,0x1E,0x21,0x76,0x51,0x4F,0x38,0x79,0x00,0x28,0x7E,0xD0,0xF8,0x88,0x80,0x06, + 0x09,0xD5,0x08,0x99,0x09,0x98,0x88,0x42,0x03,0xD9,0x40,0x1A,0x00,0x06,0x00,0x0E, + 0x00,0xE0,0x01,0x20,0x09,0x90,0x01,0x22,0x50,0x00,0xC0,0x19,0x84,0x46,0xFF,0x30, + 0x61,0x30,0xC1,0x89,0x03,0x00,0x00,0x29,0x77,0xD0,0x0B,0x9C,0x00,0x20,0xA4,0x07, + 0x10,0xD5,0x43,0x4C,0x24,0x78,0x00,0x2C,0x03,0xD1,0x0A,0x9C,0xA1,0x42,0x09,0xD9, + 0x01,0xE0,0x0F,0x29,0x06,0xD9,0x00,0x20,0x38,0x71,0xF8,0x88,0x08,0x21,0x08,0x43, + 0xF8,0x80,0x01,0x20,0x0B,0x99,0x49,0x07,0x5F,0xD5,0x00,0x28,0x5D,0xD1,0xD8,0x89, + 0x09,0x99,0x88,0x42,0x59,0xD3,0x3B,0x48,0x00,0x88,0x00,0x28,0x55,0xD0,0x00,0x23, + 0x01,0x20,0x29,0xE0,0xFF,0x24,0x39,0x18,0x66,0x34,0x64,0x5C,0x94,0x42,0x22,0xD1, + 0x5B,0x1C,0xFF,0x31,0x21,0x31,0x09,0x7E,0x0D,0x91,0x01,0x00,0x14,0xE0,0x4C,0x00, + 0xE4,0x19,0x25,0x00,0xE0,0x35,0xEE,0x8A,0xFF,0x34,0x01,0x34,0xAE,0x82,0x26,0x89, + 0xE6,0x80,0x7C,0x18,0x25,0x00,0xFF,0x35,0x21,0x35,0x6E,0x7E,0xFF,0x34,0x61,0x34, + 0x2E,0x76,0xA6,0x79,0x49,0x1C,0x66,0x71,0x3C,0x79,0x8C,0x42,0xE7,0xDA,0x39,0x79, + 0x49,0x1E,0x40,0x1E,0x39,0x71,0x40,0x1C,0x39,0x79,0x81,0x42,0xD2,0xDA,0x00,0x2B, + 0x23,0xDD,0x01,0x2B,0x05,0xDD,0x01,0x20,0x0C,0x90,0xF8,0x88,0x20,0x21,0x08,0x43, + 0xF8,0x80,0x39,0x79,0x60,0x46,0xFF,0x30,0x49,0x1C,0x41,0x30,0x09,0x06,0xC3,0x88, + 0x09,0x0E,0x39,0x71,0x49,0x00,0xC9,0x19,0x01,0xE0,0x19,0xE0,0x0D,0xE0,0xE0,0x31, + 0x8B,0x82,0xC1,0x8A,0x38,0x79,0x40,0x00,0xC0,0x19,0xFF,0x30,0x01,0x30,0xC1,0x80, + 0x3B,0x79,0x0D,0x49,0x0D,0x98,0x48,0x39,0x58,0x54,0x52,0x1C,0x08,0x2A,0x00,0xDA, + 0x7A,0xE7,0x0C,0x98,0x00,0x28,0x03,0xD1,0xF8,0x88,0x20,0x21,0x88,0x43,0xF8,0x80, + 0x0F,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xF0,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0xA3,0x05,0x00,0x20,0xDC,0x05,0x00,0x00,0xC0,0x01,0x00,0x20,0xC0,0x04,0x00,0x20, + 0xAE,0x05,0x00,0x20,0x18,0x06,0x00,0x20,0xF0,0xB5,0x60,0x48,0x60,0x4C,0x01,0x78, + 0x20,0x68,0x05,0x22,0x60,0x30,0x00,0x29,0xB7,0xB0,0x00,0xD1,0x02,0x79,0x33,0x92, + 0x02,0x22,0x00,0x29,0x00,0xD1,0x42,0x79,0x5A,0x4E,0x00,0x20,0x32,0x92,0x70,0x83, + 0xF0,0x61,0x31,0x90,0x30,0x90,0x60,0x21,0x18,0xA8,0xFE,0xF7,0x73,0xFB,0x60,0x21, + 0x68,0x46,0xFE,0xF7,0x6F,0xFB,0x20,0x68,0x71,0x7E,0x40,0x30,0xC0,0x7D,0x81,0x42, + 0x78,0xD0,0x32,0x9D,0x0E,0x21,0x48,0x1B,0x34,0x90,0x5D,0xE0,0x33,0x98,0x15,0x22, + 0x11,0x1A,0x36,0x91,0x32,0x99,0x69,0x1A,0x8C,0x00,0x1A,0xE0,0x4A,0x4F,0x6A,0x00, + 0xD2,0x19,0xB8,0x23,0xD3,0x5E,0x0E,0x21,0x42,0x00,0x41,0x43,0xD2,0x19,0x88,0x27, + 0xD7,0x5F,0x49,0x19,0x09,0x04,0xDA,0x19,0x44,0x4B,0x09,0x14,0x49,0x00,0x59,0x5E, + 0x51,0x18,0x31,0x9A,0x52,0x18,0x31,0x92,0x18,0xAA,0x13,0x59,0x59,0x18,0x40,0x1C, + 0x11,0x51,0x36,0x99,0x81,0x42,0xE1,0xDC,0x33,0x98,0x15,0x21,0x40,0x00,0x09,0x1A, + 0x18,0xAF,0x35,0x90,0x38,0x59,0xFE,0xF7,0xBD,0xF9,0x38,0x51,0x33,0x99,0x84,0x46, + 0x1A,0xE0,0x0E,0x20,0x48,0x43,0x35,0x4A,0x40,0x19,0x40,0x00,0x12,0x5E,0x60,0x46, + 0x31,0x4B,0x12,0x1A,0x68,0x00,0xC0,0x18,0xB8,0x23,0xC3,0x5E,0x2E,0x48,0x4F,0x00, + 0x3F,0x18,0x88,0x20,0x38,0x5E,0x18,0x18,0x12,0x18,0x17,0x00,0x57,0x43,0x68,0x46, + 0x03,0x59,0xDA,0x19,0x49,0x1C,0x02,0x51,0x36,0x98,0x88,0x42,0xE1,0xDC,0x35,0x98, + 0x14,0x21,0x09,0x1A,0x6F,0x46,0x38,0x59,0xFE,0xF7,0x94,0xF9,0x38,0x51,0x30,0x99, + 0x40,0x18,0x30,0x90,0x34,0x98,0x6D,0x1C,0xA8,0x42,0x9F,0xDC,0x33,0x98,0x41,0x00, + 0x15,0x20,0x41,0x1A,0x32,0x98,0x45,0x00,0x0E,0x20,0x44,0x1B,0x61,0x43,0x31,0x98, + 0xFE,0xF7,0x80,0xF9,0x70,0x83,0x30,0x98,0x21,0x00,0xFE,0xF7,0x7B,0xF9,0x00,0x21, + 0x6B,0x46,0x09,0xE0,0x18,0xE0,0x8A,0x00,0x9A,0x58,0x82,0x1A,0x17,0x00,0x57,0x43, + 0xF2,0x69,0xBA,0x18,0x49,0x1C,0xF2,0x61,0x8C,0x42,0xF4,0xDC,0x0D,0x20,0x41,0x1B, + 0xF0,0x69,0xFE,0xF7,0x67,0xF9,0x33,0x9B,0x15,0x22,0x34,0x99,0xD2,0x1A,0x12,0x03, + 0x51,0x43,0xFE,0xF7,0x5F,0xF9,0xF0,0x61,0x1A,0x20,0x30,0x5E,0x00,0x28,0x01,0xD1, + 0x40,0x1C,0x70,0x83,0x37,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xA3,0x05,0x00,0x20, + 0xF0,0x06,0x00,0x20,0xC0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10, + 0x10,0xB5,0x00,0x28,0x06,0xD1,0x14,0x48,0x00,0x69,0x00,0x04,0x00,0x0E,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x11,0x49,0x09,0x6B,0x11,0x4A,0x12,0x4B,0x8A,0x18,0x9A,0x42, + 0x16,0xD2,0x00,0x04,0x00,0x0C,0x48,0x43,0x59,0x1E,0xFE,0xF7,0x63,0xFA,0x04,0x00, + 0x0A,0x21,0xFE,0xF7,0x5F,0xFA,0x04,0x29,0x00,0xD9,0x0A,0x34,0x0A,0x21,0x20,0x00, + 0xFE,0xF7,0x58,0xFA,0x08,0x49,0x49,0x7C,0x08,0x18,0xFF,0x28,0x00,0xD9,0xFF,0x20, + 0x00,0x06,0x00,0x0E,0xDB,0xE7,0x00,0x00,0x00,0x90,0x00,0x40,0x00,0x70,0x00,0x40, + 0x90,0x6B,0xFF,0xFF,0xA1,0x0F,0x00,0x00,0x60,0x93,0x00,0x00,0xF8,0xB5,0x74,0x4C, + 0x00,0x25,0x60,0x7C,0x00,0x28,0x06,0xD0,0xE0,0x6F,0x00,0x04,0x00,0x0C,0x06,0xF0, + 0x21,0xFD,0x06,0xF0,0x0F,0xFD,0x01,0x20,0x40,0x03,0xFE,0xF7,0x2F,0xFE,0xFE,0xF7, + 0xA9,0xFA,0x05,0xF0,0x9B,0xFF,0x05,0xF0,0xAF,0xFF,0x06,0xF0,0xF7,0xF9,0x69,0x48, + 0x01,0x26,0x86,0x60,0x1F,0x20,0x01,0xF0,0x19,0xFE,0x67,0x48,0x67,0x4F,0x00,0x90, + 0xB7,0xE0,0x67,0x48,0x41,0x68,0x09,0x07,0x0B,0xD5,0xC1,0x68,0x00,0x29,0x08,0xD0, + 0xC0,0x68,0x07,0x28,0x03,0xD1,0x01,0x21,0x49,0x07,0xC8,0x63,0xAE,0xE0,0x05,0xF0, + 0x51,0xFB,0x60,0x7C,0x00,0x28,0x04,0xD0,0xE0,0x6F,0x00,0x04,0x00,0x0C,0x06,0xF0, + 0xF1,0xFC,0x80,0x20,0xFE,0xF7,0x02,0xFE,0x03,0x20,0x06,0xF0,0x71,0xFB,0x01,0x20, + 0x40,0x03,0xFE,0xF7,0xFB,0xFD,0xE0,0x7D,0x00,0x28,0x01,0xD0,0x06,0x20,0x0A,0xE0, + 0x54,0x48,0xC0,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5, + 0x04,0x20,0x00,0xE0,0x02,0x20,0x06,0xF0,0xCB,0xF9,0x00,0xF0,0x17,0xFC,0x00,0xF0, + 0xD3,0xFB,0x00,0xF0,0xE1,0xFB,0x3E,0x61,0x00,0xF0,0x4C,0xFC,0x00,0xF0,0xC4,0xFB, + 0x01,0x20,0x80,0x03,0xFE,0xF7,0xDA,0xFD,0x00,0xF0,0xD6,0xFB,0x00,0xF0,0x42,0xFC, + 0xFE,0xF7,0x1C,0xFB,0xA0,0x7D,0x00,0x28,0x05,0xD1,0x00,0x98,0x00,0x7B,0x00,0x28, + 0x01,0xD0,0x05,0xF0,0x8B,0xF9,0x03,0xF0,0xC1,0xFE,0x00,0x28,0x00,0xD0,0x26,0x70, + 0x20,0x8C,0x3D,0x49,0x88,0x42,0x01,0xD2,0x40,0x1C,0x20,0x84,0x20,0x78,0x00,0x28, + 0x05,0xD1,0x00,0x22,0x11,0x00,0x10,0x00,0x01,0x23,0x00,0xF0,0x73,0xF9,0x03,0x20, + 0x40,0x03,0xFE,0xF7,0xAB,0xFD,0x20,0x78,0x00,0x28,0x05,0xD0,0xA0,0x7D,0x00,0x09, + 0x04,0x28,0x4B,0xD1,0x00,0x20,0x20,0x70,0x03,0x20,0x06,0xF0,0xF3,0xFA,0xA0,0x67, + 0x03,0x20,0x06,0xF0,0x25,0xFB,0x80,0x20,0xFE,0xF7,0x98,0xFD,0x29,0x49,0xC8,0x8B, + 0x00,0x28,0x02,0xD0,0x40,0x1E,0xC8,0x83,0x33,0xE0,0xA0,0x7B,0x00,0x28,0x30,0xD1, + 0x60,0x6B,0x00,0x28,0x2D,0xD0,0x25,0x49,0x28,0x00,0x6D,0x1C,0x88,0x42,0xA0,0x6F, + 0x01,0xD3,0x23,0x49,0x00,0xE0,0x23,0x49,0x0C,0x1A,0xFF,0x20,0x91,0x30,0x84,0x42, + 0x1F,0xDD,0xFF,0x20,0x01,0x30,0xFE,0xF7,0x81,0xFD,0x02,0x20,0x06,0xF0,0x00,0xFB, + 0x0A,0x21,0x20,0x00,0xFE,0xF7,0x4E,0xF8,0x41,0x11,0x02,0x20,0x06,0xF0,0xE0,0xFA, + 0x04,0x20,0xFE,0xF7,0xAB,0xFD,0x02,0x20,0x06,0xF0,0xE2,0xFA,0x3E,0x61,0xFF,0x20, + 0xFE,0xF7,0xA4,0xFD,0x02,0x20,0x06,0xF0,0xEB,0xFA,0xFF,0x20,0x01,0x30,0xFE,0xF7, + 0x5D,0xFD,0x07,0x4C,0x20,0x78,0x00,0x28,0x00,0xD1,0x42,0xE7,0x04,0x48,0x40,0x7C, + 0x00,0x28,0x01,0xD0,0x06,0xF0,0x3E,0xFC,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x8C,0x05,0x00,0x20,0x00,0x90,0x00,0x40,0x80,0x93,0x00,0x00,0x40,0x00,0x00,0x40, + 0x00,0x40,0x00,0x30,0x40,0x00,0x00,0x20,0x10,0x27,0x00,0x00,0x01,0x03,0x00,0x00, + 0x30,0x75,0x00,0x00,0xC8,0x32,0x00,0x00,0x10,0xB4,0x0F,0x4B,0x00,0x22,0xD2,0x43, + 0x81,0x00,0x5A,0x52,0xCB,0x18,0x5A,0x80,0x0B,0x4B,0x0B,0x4C,0x24,0x33,0x5A,0x52, + 0xCB,0x18,0x5A,0x80,0x00,0x23,0x42,0x00,0x1C,0x3C,0xA3,0x52,0x22,0x00,0x12,0x32, + 0x13,0x54,0x18,0x00,0x52,0x32,0x8A,0x18,0x81,0x00,0x53,0x52,0x51,0x18,0x40,0x1E, + 0x4B,0x80,0xF9,0xD5,0x10,0xBC,0x70,0x47,0xF8,0x09,0x00,0x20,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x10,0xB5,0x0C,0x48,0x09,0x22,0x00,0x21,0xFE,0xF7,0x3E,0xF9, + 0x0A,0x48,0x5A,0x22,0x00,0x21,0xFE,0xF7,0x39,0xF9,0x08,0x48,0x00,0x24,0x00,0x1F, + 0x04,0x70,0x07,0x48,0x28,0x22,0x21,0x00,0xFE,0xF7,0x30,0xF9,0x04,0x48,0x3A,0x38, + 0x44,0x70,0x10,0xBC,0x08,0xBC,0x18,0x47,0xDB,0x02,0x00,0x20,0xC4,0x01,0x00,0x20, + 0x1A,0x05,0x00,0x20,0x10,0xB5,0x17,0x48,0x12,0x22,0x00,0x21,0xFE,0xF7,0x1E,0xF9, + 0x14,0x48,0x12,0x22,0x00,0x21,0x12,0x30,0xFE,0xF7,0x18,0xF9,0x11,0x48,0x09,0x22, + 0x00,0x21,0x44,0x30,0xFE,0xF7,0x12,0xF9,0x0E,0x48,0x20,0x22,0x00,0x21,0x24,0x30, + 0xFE,0xF7,0x0C,0xF9,0x0B,0x48,0x10,0x22,0x00,0x21,0x52,0x30,0xFE,0xF7,0x06,0xF9, + 0x08,0x48,0x10,0x22,0x00,0x21,0x62,0x30,0xFE,0xF7,0x00,0xF9,0x05,0x49,0x00,0x20, + 0x6C,0x31,0xC8,0x83,0xFF,0x39,0x61,0x39,0x08,0x71,0x88,0x83,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x34,0x01,0x00,0x20,0x8C,0x10,0x9F,0xE5,0x10,0x40,0x2D,0xE9, + 0x00,0x10,0x91,0xE5,0x84,0xC0,0x9F,0xE5,0x7E,0xE0,0xD1,0xE5,0x08,0x10,0xA0,0xE3, + 0x00,0x30,0xA0,0xE3,0x01,0x22,0x8C,0xE0,0x80,0x20,0x82,0xE0,0xB5,0x4F,0xA0,0xE3, + 0xB2,0x30,0x84,0xE1,0x03,0x2C,0x82,0xE2,0x01,0x10,0x51,0xE2,0xB4,0x36,0xC2,0xE1, + 0xF7,0xFF,0xFF,0x5A,0x01,0x20,0xA0,0xE3,0x00,0x10,0x8C,0xE0,0xCC,0x22,0xC1,0xE5, + 0x80,0x20,0x8C,0xE0,0x03,0x2C,0x82,0xE2,0xB4,0x3F,0xC2,0xE1,0x04,0xE4,0xC1,0xE5, + 0x0C,0x34,0xC1,0xE5,0x05,0x10,0xA0,0xE3,0x01,0x22,0x8C,0xE0,0x80,0x20,0x82,0xE0, + 0x01,0x2B,0x82,0xE2,0x01,0x10,0x51,0xE2,0xB4,0x31,0xC2,0xE1,0xF9,0xFF,0xFF,0x5A, + 0x00,0x01,0x8C,0xE0,0x00,0x10,0xE0,0xE3,0x01,0x0B,0x80,0xE2,0xB4,0x17,0xC0,0xE1, + 0xB6,0x17,0xC0,0xE1,0x10,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0xF0,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0x10,0xB5,0x06,0x48,0x1E,0x22,0x00,0x21,0xFE,0xF7,0x9E,0xF8, + 0x04,0x48,0x00,0x21,0x81,0x74,0x41,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xEE,0x02,0x00,0x20,0x20,0x01,0x00,0x20,0x10,0xB5,0x06,0xF0,0x21,0xFA,0x05,0xF0, + 0x9B,0xF8,0xFF,0xF7,0x47,0xFF,0x05,0xF0,0xFD,0xF9,0x01,0xF0,0x71,0xFE,0x01,0xF0, + 0xE9,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x09,0x4B,0x10,0xB4,0x1B,0x68,0x80,0x33, + 0x1B,0x7B,0x04,0x1E,0x00,0xDC,0x44,0x42,0x9C,0x42,0x06,0xDD,0x98,0x42,0x01,0xDD, + 0xC8,0x1A,0x00,0xE0,0xC8,0x18,0x02,0x04,0x12,0x0C,0x10,0xBC,0x10,0x00,0x70,0x47, + 0xF0,0x06,0x00,0x20,0xFF,0xB5,0x8A,0x48,0xFF,0xB0,0x00,0x7D,0xC2,0xB0,0x00,0x28, + 0x03,0xD0,0x01,0x20,0xBC,0x90,0x00,0x20,0x02,0xE0,0x00,0x20,0xBC,0x90,0x01,0x20, + 0xBB,0x90,0x84,0x48,0x00,0x26,0xBE,0x90,0x83,0x48,0x35,0x00,0x01,0x8B,0x05,0x91, + 0x41,0x8B,0x04,0x91,0x81,0x8A,0x03,0x91,0xC0,0x8A,0x02,0x90,0x7F,0x48,0x00,0x7D, + 0x01,0x90,0x00,0x24,0x0E,0x20,0x68,0x43,0xC0,0x90,0x00,0x19,0xBD,0x90,0x21,0x00, + 0x28,0x00,0x01,0xF0,0x25,0xFA,0x7A,0x49,0x07,0x00,0xC9,0x7D,0x00,0x29,0xBF,0x91, + 0x05,0xD0,0xFF,0x21,0x2D,0x31,0xC8,0x22,0xFF,0x23,0xF5,0x33,0x02,0xE0,0x00,0x21, + 0x0A,0x00,0x0B,0x00,0x04,0x2D,0x05,0xD1,0x01,0x2C,0x0D,0xDB,0x0B,0x2C,0x0B,0xDC, + 0x47,0x18,0x0C,0xE0,0x03,0x2D,0x01,0xD0,0x05,0x2D,0x03,0xD1,0x01,0x2C,0x01,0xDB, + 0x0B,0x2C,0x04,0xDD,0x11,0x2D,0x01,0xDC,0xC7,0x1A,0x00,0xE0,0x87,0x1A,0x00,0x20, + 0x00,0x90,0x63,0x48,0x20,0x38,0x01,0x7D,0xC9,0x07,0x29,0xD0,0x64,0x49,0x49,0x7B, + 0x00,0x29,0x01,0x99,0x11,0xD0,0x8D,0x42,0x22,0xD1,0x81,0x7D,0xA1,0x42,0x1D,0xD0, + 0xC1,0x7D,0xA1,0x42,0x1A,0xD0,0x01,0x7E,0xA1,0x42,0x17,0xD0,0x41,0x7E,0xA1,0x42, + 0x14,0xD0,0x80,0x7E,0xA0,0x42,0x62,0xD1,0x10,0xE0,0x8C,0x42,0x10,0xD1,0x81,0x7D, + 0xA9,0x42,0x0B,0xD0,0xC1,0x7D,0xA9,0x42,0x08,0xD0,0x01,0x7E,0xA9,0x42,0x05,0xD0, + 0x41,0x7E,0xA9,0x42,0x02,0xD0,0x80,0x7E,0xA8,0x42,0x50,0xD1,0x01,0x20,0x00,0x90, + 0xC3,0x98,0x00,0x28,0x14,0xD0,0x4E,0x48,0xAF,0x21,0x00,0x8C,0x89,0x00,0x88,0x42, + 0x0E,0xD3,0x11,0x2D,0x0C,0xDB,0x00,0x2C,0x01,0xD0,0x0C,0x2C,0x08,0xD1,0x02,0x98, + 0x14,0x21,0x48,0x43,0x0A,0x21,0xFD,0xF7,0xB5,0xFF,0x00,0x04,0x00,0x0C,0x00,0xE0, + 0x02,0x98,0xBF,0x9A,0x03,0x99,0x00,0x2A,0x01,0xD0,0x96,0x21,0x32,0x20,0x00,0x9A, + 0x01,0x2A,0x05,0xD1,0x05,0x98,0x38,0x18,0x01,0x04,0x04,0x98,0x09,0x0C,0x02,0xE0, + 0x79,0x18,0x09,0x04,0x09,0x0C,0x38,0x1A,0x02,0x04,0xBD,0x98,0xBE,0x9B,0x80,0x00, + 0x18,0x58,0xC2,0x9B,0x12,0x0C,0x00,0x2B,0x02,0xD0,0x00,0x05,0x00,0x0D,0x01,0xE0, + 0x00,0x01,0x00,0x0D,0xC4,0x9B,0x00,0x2B,0x0C,0xD0,0x90,0x42,0x02,0xDA,0xC1,0x9B, + 0xBC,0x9A,0x03,0xE0,0x88,0x42,0x0A,0xDD,0xC1,0x9B,0xBB,0x9A,0x21,0x00,0x28,0x00, + 0x00,0xF0,0x7E,0xF8,0xBD,0x98,0x71,0x00,0x06,0xAA,0x76,0x1C,0x50,0x52,0x64,0x1C, + 0x0E,0x2C,0x01,0xDA,0xC0,0x98,0x50,0xE7,0x6D,0x1C,0x15,0x2D,0x00,0xDA,0x48,0xE7, + 0x00,0x2E,0x38,0xDD,0xC3,0x98,0x00,0x28,0x35,0xD1,0x00,0xF0,0x4D,0xF9,0x00,0xF0, + 0x63,0xF9,0x00,0xF0,0xCF,0xF9,0x2C,0xE0,0x70,0x00,0x06,0xA9,0x08,0x5A,0x87,0x00, + 0xBE,0x98,0xC0,0x59,0x01,0x01,0x05,0x05,0xC4,0x98,0x0C,0x0D,0x2D,0x0D,0x02,0x28, + 0x01,0xD1,0x64,0x21,0x04,0xE0,0x01,0x28,0x01,0xD1,0x1E,0x21,0x00,0xE0,0x00,0x21, + 0xAC,0x42,0x06,0xD2,0x28,0x1B,0x64,0x21,0x48,0x43,0xFD,0xF7,0x1B,0xFE,0x00,0x19, + 0x05,0xE0,0x60,0x1B,0x48,0x43,0x64,0x21,0xFD,0xF7,0x14,0xFE,0x20,0x1A,0x0D,0x49, + 0x00,0x04,0x00,0x0C,0x88,0x42,0x00,0xD9,0x08,0x00,0xBE,0x99,0x00,0x04,0x28,0x43, + 0xC8,0x51,0x76,0x1E,0xD0,0xD5,0x7F,0xB0,0x46,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x20,0x93,0x00,0x00,0xD4,0x02,0x10,0x40,0xE0,0x95,0x00,0x00,0x00,0x05,0x00,0x20, + 0x8C,0x05,0x00,0x20,0xFF,0x0F,0x00,0x00,0x7C,0xB5,0x01,0x25,0x6D,0x07,0x28,0x68, + 0x02,0x28,0x17,0xD1,0xAC,0x68,0x69,0x46,0x20,0x05,0x00,0x0D,0x00,0x90,0x20,0x02, + 0x00,0x0D,0x01,0x90,0x01,0xA8,0x05,0xF0,0x1F,0xFA,0x08,0x48,0x00,0x99,0x04,0x40, + 0x01,0x98,0x09,0x05,0x00,0x05,0x00,0x0A,0x04,0x43,0x20,0x0B,0x00,0x03,0x09,0x0D, + 0x08,0x43,0xA8,0x60,0x7C,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xFF,0x0F,0x00,0xFF, + 0x30,0xB4,0x0E,0x25,0x68,0x43,0x14,0x4C,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06, + 0x09,0x0E,0x00,0x0A,0x00,0x2B,0x07,0xD0,0x00,0x2A,0x02,0xD0,0xC9,0x18,0xC0,0x18, + 0x0F,0xE0,0xC0,0x1A,0xC9,0x1A,0x0C,0xE0,0x00,0x2A,0x05,0xD0,0x88,0x42,0x01,0xDD, + 0x49,0x1C,0x06,0xE0,0x40,0x1C,0x04,0xE0,0x88,0x42,0x01,0xDD,0x40,0x1E,0x00,0xE0, + 0x49,0x1E,0x4A,0x1E,0xFF,0x2A,0x05,0xD2,0x42,0x1E,0xFF,0x2A,0x02,0xD2,0x00,0x02, + 0x08,0x43,0x60,0x53,0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0xF0,0xB5,0x8B,0xB0, + 0x0E,0x27,0x15,0x20,0x04,0xA9,0x81,0xC1,0x06,0x90,0x53,0x48,0x53,0x49,0x0A,0x90, + 0x80,0x79,0x09,0x91,0xC2,0x07,0x0A,0xD0,0x80,0x07,0x03,0xD5,0x0D,0x20,0x03,0x21, + 0x05,0x90,0x02,0xE0,0x14,0x20,0x00,0x21,0x04,0x90,0x09,0x98,0x01,0x74,0x4C,0x48, + 0x0A,0x22,0x01,0x8C,0x40,0x8C,0x51,0x43,0x50,0x43,0x00,0x04,0x00,0x0C,0x01,0x90, + 0x05,0x98,0x0E,0x04,0x36,0x0C,0x00,0x28,0x7E,0xD0,0x04,0x98,0x00,0x28,0x7F,0xD0, + 0x05,0x98,0x41,0x00,0x30,0x00,0xFD,0xF7,0x75,0xFD,0x05,0x04,0x2D,0x0C,0x00,0x24, + 0xBF,0x1C,0x0A,0xE0,0x30,0x00,0x60,0x43,0x05,0x99,0xFD,0xF7,0x6B,0xFD,0x3D,0x4A, + 0x61,0x00,0x40,0x19,0x89,0x18,0x64,0x1C,0x08,0x84,0xBC,0x42,0xF2,0xDB,0x04,0x98, + 0x41,0x00,0x01,0x98,0xFD,0xF7,0x5E,0xFD,0x06,0x9F,0x06,0x04,0x36,0x0C,0x00,0x24, + 0xBF,0x1C,0x0B,0xE0,0x01,0x98,0x04,0x99,0x60,0x43,0xFD,0xF7,0x53,0xFD,0x31,0x4A, + 0x81,0x19,0x60,0x00,0x80,0x18,0x40,0x30,0x64,0x1C,0x81,0x82,0xBC,0x42,0xF1,0xDB, + 0x0A,0x98,0x80,0x79,0xC0,0x07,0x4B,0xD0,0x00,0x24,0x43,0xE0,0x29,0x4A,0x13,0x21, + 0x10,0x19,0x89,0x01,0x40,0x18,0x41,0x7D,0x0A,0x98,0x80,0x79,0x80,0x07,0x03,0xD5, + 0x05,0x98,0x02,0x95,0x03,0x91,0x03,0xE0,0x08,0x00,0x04,0x99,0x02,0x96,0x03,0x91, + 0x20,0x49,0x40,0x00,0x40,0x18,0x08,0x90,0x00,0x8C,0x0A,0x21,0x40,0x1B,0xFD,0xF7, + 0x29,0xFD,0x1C,0x4A,0xE1,0x00,0x89,0x18,0x25,0x22,0x52,0x01,0x8F,0x18,0x38,0x81, + 0x03,0x98,0x18,0x49,0x40,0x00,0x40,0x18,0x40,0x30,0x07,0x90,0x80,0x8A,0x0A,0x21, + 0x80,0x1B,0xFD,0xF7,0x17,0xFD,0x78,0x81,0x08,0x98,0x0A,0x21,0x00,0x8C,0x40,0x19, + 0xFD,0xF7,0x40,0xFE,0xB8,0x81,0x07,0x98,0x0A,0x21,0x80,0x8A,0x80,0x19,0xFD,0xF7, + 0x39,0xFE,0xF8,0x81,0x02,0x98,0x0A,0x21,0x40,0x00,0xFD,0xF7,0x33,0xFE,0x09,0x99, + 0x64,0x1C,0x48,0x82,0x0A,0x98,0x00,0xE0,0x02,0xE0,0xC0,0x79,0xA0,0x42,0xB5,0xDC, + 0x0B,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xE0,0x04,0x00,0x20,0x00,0x05,0x00,0x20, + 0x00,0x93,0x00,0x00,0x40,0x00,0x00,0x20,0x02,0x49,0x08,0x68,0x04,0x22,0x90,0x43, + 0x08,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x04,0x22,0x11,0x43, + 0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x01,0x22,0x11,0x43, + 0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0x01,0x49,0xC8,0x68,0xC8,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x08,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0xB5,0x22,0x10,0xB5,0x07,0x49,0x08,0x48,0x92,0x00,0xFD,0xF7, + 0x07,0xFE,0x07,0x48,0x07,0x4A,0xC0,0x8E,0x01,0x04,0x01,0x43,0x06,0x48,0xFD,0xF7, + 0x2B,0xFE,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x9D,0x00,0x00,0x00,0x00,0x10,0x40, + 0x00,0x93,0x00,0x00,0xA4,0x05,0x00,0x00,0xD4,0x02,0x10,0x40,0x02,0x48,0x81,0x6B, + 0x49,0x08,0x49,0x00,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x02,0x48,0x81,0x6B, + 0x01,0x22,0x11,0x43,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x10,0xB5,0x0A,0x49, + 0x0A,0x48,0xFC,0x22,0xFD,0xF7,0xDC,0xFD,0xFF,0x22,0x09,0x49,0x09,0x48,0xF1,0x32, + 0xFD,0xF7,0xD6,0xFD,0x71,0x22,0x08,0x49,0x08,0x48,0xD2,0x00,0xFD,0xF7,0xD0,0xFD, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x04,0x96,0x00,0x00,0x04,0x90,0x00,0x40, + 0x00,0x97,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x99,0x00,0x00,0x78,0x08,0x10,0x40, + 0x03,0x48,0x41,0x68,0x01,0x22,0x12,0x04,0x11,0x43,0x41,0x60,0x70,0x47,0x00,0x00, + 0x00,0xA0,0x00,0x40,0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0x70,0x47,0x00,0x00, + 0x00,0x90,0x00,0x40,0xF0,0x47,0x2D,0xE9,0x00,0x80,0xA0,0xE1,0x1C,0x02,0x9F,0xE5, + 0x1C,0x72,0x9F,0xE5,0x00,0x00,0x90,0xE5,0x00,0x40,0xA0,0xE3,0xB4,0x67,0xD0,0xE1, + 0x76,0x00,0xD0,0xE5,0x01,0x50,0xA0,0xE3,0x90,0x00,0x01,0xE0,0x82,0x01,0xD7,0xE5, + 0xFF,0x90,0x01,0xE2,0x01,0x00,0x50,0xE3,0x0E,0x00,0x00,0xBA,0x05,0x01,0x85,0xE0, + 0x80,0x00,0x87,0xE0,0x38,0x12,0xD0,0xE5,0x00,0x00,0x51,0xE3,0x05,0x00,0x00,0x0A, + 0x02,0x0C,0x80,0xE2,0x3E,0x00,0x80,0xE2,0x48,0x05,0x00,0xEB,0x00,0x00,0x50,0xE3, + 0x01,0x00,0x84,0x12,0xFF,0x40,0x00,0x12,0x82,0x01,0xD7,0xE5,0x01,0x50,0x85,0xE2, + 0x05,0x00,0x50,0xE1,0xF0,0xFF,0xFF,0xAA,0xB8,0x01,0x9F,0xE5,0x00,0x40,0x80,0xE5, + 0xB4,0x01,0x9F,0xE5,0xBC,0x1B,0xD0,0xE1,0xB0,0x3C,0xD0,0xE1,0xBE,0xCB,0xD0,0xE1, + 0x03,0x20,0x41,0xE0,0x00,0x00,0x52,0xE3,0x01,0x20,0x43,0xD0,0xB2,0x3C,0xD0,0xE1, + 0x02,0x18,0xA0,0xE1,0x21,0x18,0xA0,0xE1,0x03,0x20,0x4C,0xE0,0x00,0x00,0x52,0xE3, + 0x0C,0x20,0x43,0xD0,0xC8,0x32,0xD7,0xE5,0x02,0x28,0xA0,0xE1,0x22,0x28,0xA0,0xE1, + 0x00,0x00,0x53,0xE3,0xCB,0x32,0xD7,0x15,0xC8,0x00,0x53,0x13,0x01,0x00,0x00,0x2A, + 0x01,0x30,0x83,0xE2,0xCB,0x32,0xC7,0xE5,0xBE,0x3A,0xD0,0xE1,0x01,0xC0,0xA0,0xE3, + 0x14,0x00,0x53,0xE3,0x02,0x00,0x00,0x2A,0xB1,0x32,0xD7,0xE5,0x00,0x00,0x53,0xE3, + 0xB2,0xC2,0xC7,0x15,0x19,0x00,0x51,0xE3,0x19,0x00,0x52,0x93,0x03,0x00,0x00,0x9A, + 0xB0,0x32,0xD7,0xE5,0xC8,0x00,0x53,0xE3,0x01,0x30,0x83,0x32,0xB0,0x32,0xC7,0x35, + 0xF6,0x3C,0xD0,0xE1,0x02,0x00,0x54,0xE3,0x19,0x00,0x51,0x33,0x19,0x00,0x52,0x33, + 0x03,0x00,0x00,0x2A,0x04,0x00,0x53,0xE3,0x05,0x00,0x00,0xAA,0x01,0x30,0x83,0xE2, + 0x02,0x00,0x00,0xEA,0x03,0x00,0x73,0xE3,0x01,0x00,0x00,0xDA,0x01,0x30,0x43,0xE2, + 0xB6,0x3C,0xC0,0xE1,0xCB,0x32,0xD7,0xE5,0x01,0x00,0x53,0xE3,0x78,0x10,0xA0,0x83, + 0x0D,0x00,0x00,0x8A,0x02,0x00,0x54,0xE3,0x0C,0x00,0x00,0x2A,0xF6,0x3C,0xD0,0xE1, + 0x02,0x00,0x53,0xE3,0x09,0x00,0x00,0xDA,0xB0,0x32,0xD7,0xE5,0x14,0x00,0x53,0xE3, + 0x06,0x00,0x00,0x2A,0x47,0x10,0x41,0xE2,0x95,0x00,0x51,0xE3,0x47,0x10,0x42,0x22, + 0x95,0x00,0x51,0x23,0x01,0x00,0x00,0x2A,0x77,0x10,0xE0,0xE3,0xB4,0x1C,0xC0,0xE1, + 0x00,0x10,0xA0,0xE3,0x02,0x00,0x54,0xE3,0xCA,0x12,0xC7,0xE5,0x0A,0x00,0x00,0x2A, + 0xF4,0x1C,0xD0,0xE1,0x78,0x00,0x71,0xE3,0x03,0x00,0x00,0x1A,0xC9,0x12,0xD7,0xE5, + 0xC8,0x00,0x51,0xE3,0x01,0x10,0x81,0x32,0xC9,0x12,0xC7,0x35,0xC9,0x12,0xD7,0xE5, + 0x02,0x00,0x51,0xE3,0xCA,0xC2,0xC7,0x05,0x01,0x00,0x00,0xEA,0x3B,0x10,0xE0,0x83, + 0xB4,0x1C,0xC0,0x81,0xF4,0x0C,0xD0,0xE1,0x06,0x10,0x80,0xE0,0x91,0x01,0x00,0xE0, + 0x58,0x10,0x9F,0xE5,0x00,0x10,0xD1,0xE5,0x00,0x00,0x51,0xE3,0x50,0x10,0x9F,0xE5, + 0x96,0x06,0x00,0x10,0x00,0x10,0xD1,0xE5,0x01,0x00,0x51,0xE3,0xF0,0x47,0xBD,0x08, + 0x64,0x00,0xA0,0x03,0x1E,0xFF,0x2F,0x01,0x00,0x00,0x58,0xE3,0xF0,0x47,0xBD,0x18, + 0x1E,0xFF,0x2F,0x11,0x04,0x10,0xD7,0xE5,0x01,0x00,0x51,0xE3,0xF0,0x47,0xBD,0x08, + 0x1E,0xFF,0x2F,0x01,0x09,0x10,0xA0,0xE1,0xF0,0x47,0xBD,0xE8,0xA5,0xF5,0xFF,0xEA, + 0xF0,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xE0,0x05,0x00,0x20,0x40,0x02,0x00,0x20, + 0xA3,0x05,0x00,0x20,0x95,0x05,0x00,0x20,0x78,0x47,0xC0,0x46,0xD2,0x10,0xA0,0xE3, + 0x01,0x00,0xB0,0xE1,0x01,0x10,0x41,0xE2,0xFC,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1, + 0x78,0x47,0xC0,0x46,0x11,0x10,0xA0,0xE3,0x01,0x00,0xB0,0xE1,0x01,0x10,0x41,0xE2, + 0xFC,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0x02,0x48,0x41,0x6B,0x01,0x22,0x11,0x43, + 0x41,0x63,0x70,0x47,0x00,0x70,0x00,0x40,0x70,0x47,0x00,0x00,0x13,0x48,0x10,0xB5, + 0xC0,0x68,0x00,0x28,0x1F,0xD0,0x01,0x06,0x09,0x0F,0x03,0x29,0x01,0xD0,0x04,0x29, + 0x02,0xD1,0x00,0xF0,0xAF,0xF8,0x08,0xE0,0xF0,0x21,0x01,0x40,0x20,0x29,0x02,0xD2, + 0x00,0xF0,0x1A,0xF8,0x01,0xE0,0x04,0xF0,0x75,0xFD,0x09,0x48,0x82,0x68,0x81,0x15, + 0x8A,0x43,0x82,0x60,0x82,0x68,0x0A,0x43,0x82,0x60,0x06,0x48,0x40,0x7C,0x00,0x28, + 0x01,0xD0,0x05,0xF0,0xFF,0xFE,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30, + 0x00,0x40,0x00,0x40,0x8C,0x05,0x00,0x20,0xF1,0xB5,0x44,0x48,0x2E,0x21,0x41,0x60, + 0x41,0x69,0x89,0x06,0xFC,0xD4,0x00,0x99,0x01,0x26,0x76,0x07,0xF1,0x63,0x84,0x69, + 0x3E,0x48,0x40,0x68,0x80,0x07,0xFB,0xD5,0x04,0xF0,0x4C,0xFD,0x3C,0x4D,0x68,0x7C, + 0x00,0x28,0x01,0xD0,0x05,0xF0,0xE6,0xFE,0x00,0x9B,0x00,0x20,0x9B,0x1E,0xFF,0x27, + 0x42,0x1E,0x01,0x21,0x05,0xF0,0x18,0xFF,0x1E,0x15,0x15,0x15,0x15,0x15,0x13,0x15, + 0x15,0x17,0x10,0x15,0x15,0x26,0x15,0x37,0x1B,0x3D,0x43,0x49,0x15,0x4F,0x15,0x55, + 0x5B,0x1B,0x15,0x15,0x15,0x15,0x61,0x15,0x0B,0x20,0xF0,0x63,0x1D,0xE0,0x00,0xF0, + 0xD7,0xF8,0xF7,0x63,0x19,0xE0,0x2A,0x48,0x80,0x30,0x04,0x60,0xF9,0xE7,0x03,0x20, + 0x00,0x07,0xC2,0x60,0x01,0x20,0x40,0x03,0xFD,0xF7,0xD8,0xFF,0x00,0x98,0xFD,0xF7, + 0x29,0xFF,0x0A,0xE0,0x03,0x20,0x00,0x07,0xC2,0x60,0x01,0x20,0x40,0x03,0xFD,0xF7, + 0xCD,0xFF,0x00,0xF0,0x9D,0xFE,0x00,0xF0,0xD7,0xF8,0x1C,0x48,0x41,0x68,0x41,0x60, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x2C,0x01,0xD0,0xA9,0x73,0xD9,0xE7,0xA8,0x73, + 0xD7,0xE7,0x00,0x2C,0x01,0xD0,0xE9,0x73,0xD3,0xE7,0xE8,0x73,0xD1,0xE7,0x00,0x2C, + 0x01,0xD0,0x29,0x74,0xCD,0xE7,0x28,0x74,0xCB,0xE7,0x00,0x2C,0x01,0xD0,0x69,0x74, + 0xC7,0xE7,0x68,0x74,0xC5,0xE7,0x00,0x2C,0x01,0xD0,0xE9,0x74,0xC1,0xE7,0xE8,0x74, + 0xBF,0xE7,0x00,0x2C,0x01,0xD0,0x29,0x75,0xBB,0xE7,0x28,0x75,0xB9,0xE7,0x00,0x2C, + 0x01,0xD0,0x69,0x75,0xB5,0xE7,0x68,0x75,0xB3,0xE7,0x00,0x2C,0x01,0xD0,0xAC,0x75, + 0x00,0xE0,0xA8,0x75,0x05,0xF0,0xFA,0xF9,0xAB,0xE7,0x00,0x00,0x00,0x40,0x00,0x30, + 0x8C,0x05,0x00,0x20,0xF0,0xB5,0x34,0x4C,0x30,0x38,0x34,0x4A,0x34,0x4E,0x35,0x4F, + 0x35,0x49,0x25,0x68,0x03,0x00,0x05,0xF0,0x9F,0xFE,0x12,0x0A,0x0C,0x0E,0x12,0x16, + 0x1A,0x1C,0x18,0x1E,0x20,0x30,0x3B,0x16,0x3E,0x43,0x47,0x4D,0x50,0x0A,0xCD,0x61, + 0x21,0xE0,0x60,0x68,0x01,0xE0,0x2D,0x48,0xC0,0x6B,0xC8,0x61,0x1B,0xE0,0x10,0x8C, + 0x52,0x8C,0x00,0x04,0x34,0xE0,0xCE,0x61,0x15,0xE0,0xE0,0x68,0xF5,0xE7,0x50,0x68, + 0xF3,0xE7,0xA0,0x68,0xF1,0xE7,0xD0,0x7B,0xEF,0xE7,0x25,0x48,0x03,0x7D,0x10,0x7D, + 0x52,0x7D,0xC4,0x07,0xE4,0x09,0x80,0x07,0x12,0x04,0xC0,0x0F,0x00,0x02,0x23,0x43, + 0x02,0x43,0x13,0x43,0xCB,0x61,0x5F,0x22,0x22,0xE0,0x93,0x7D,0x50,0x7E,0x1B,0x06, + 0x18,0x43,0xD3,0x7D,0x12,0x7E,0x1B,0x04,0x12,0x02,0x13,0x43,0x18,0x43,0xD4,0xE7, + 0x90,0x7E,0x00,0x06,0xD1,0xE7,0x17,0x48,0x00,0x69,0xC0,0x07,0xC0,0x0F,0xCC,0xE7, + 0x38,0x69,0x40,0x08,0x00,0x02,0xC8,0xE7,0x13,0x48,0xA2,0x69,0xC0,0x8B,0x00,0x04, + 0x10,0x43,0xC2,0xE7,0x38,0x69,0x40,0x08,0xBF,0xE7,0x10,0x48,0x80,0x6A,0xBC,0xE7, + 0x48,0x69,0x10,0x42,0xFC,0xD1,0x04,0xF0,0x6D,0xFC,0xFF,0x20,0x01,0x21,0x49,0x07, + 0xC8,0x63,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xC0,0x92,0x00,0x00,0x00,0x93,0x00,0x00, + 0x15,0x00,0x0E,0x00,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x30,0xC0,0x0F,0x00,0x20, + 0x00,0x05,0x00,0x20,0x00,0x96,0x00,0x00,0xE0,0x95,0x00,0x00,0x8C,0x05,0x00,0x20, + 0x70,0xB5,0x03,0x24,0x24,0x07,0xE5,0x68,0x00,0x20,0xC0,0x43,0xE0,0x60,0xFD,0xF7, + 0x23,0xFF,0x06,0x00,0xCB,0x20,0xC0,0x01,0xFD,0xF7,0x00,0xFF,0x04,0xF0,0xB2,0xFA, + 0x00,0xF0,0xF8,0xFD,0x04,0xF0,0xA4,0xFA,0x30,0x00,0xFD,0xF7,0x29,0xFF,0xE5,0x60, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x20,0x03,0x21,0x10,0xB5,0xC0,0x43, + 0x09,0x07,0xC8,0x60,0x04,0xF0,0x9E,0xFA,0xFF,0xF7,0x4C,0xFD,0x05,0x48,0xC1,0x68, + 0xC9,0x07,0xFC,0xD0,0x01,0x20,0x40,0x07,0x05,0xF0,0xFD,0xFD,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0x90,0x00,0x40,0xFF,0xB5,0x00,0x20,0x02,0x90,0x23,0x20, + 0x01,0x90,0xFF,0x20,0xBE,0x30,0x00,0x90,0x4C,0x48,0x00,0x68,0x00,0x88,0xC0,0x06, + 0x7E,0xD5,0x4B,0x4E,0x00,0x20,0x31,0x78,0x72,0x78,0x01,0x29,0x02,0xD1,0x00,0x2A, + 0x00,0xD1,0x01,0x20,0x47,0x4B,0x00,0x28,0x18,0x60,0x08,0xD0,0x01,0x29,0x06,0xD1, + 0x43,0x48,0x0A,0x30,0xC1,0x88,0x18,0x00,0x08,0x30,0x81,0x80,0x01,0xE0,0x00,0x29, + 0x79,0xD0,0x00,0x2A,0x77,0xD0,0x01,0x25,0x67,0xE0,0x0A,0x22,0x6A,0x43,0x3E,0x4F, + 0x01,0x20,0xD4,0x19,0xFF,0x34,0x71,0x78,0x81,0x34,0x5B,0xE0,0x0A,0x22,0x42,0x43, + 0xD2,0x19,0xFF,0x32,0xC1,0x32,0x23,0x79,0x92,0x7F,0x93,0x42,0x51,0xD1,0x0A,0x23, + 0x58,0x43,0xC7,0x19,0xFF,0x37,0x06,0x21,0xE1,0x37,0x00,0x20,0x61,0x5E,0x38,0x5E, + 0x02,0x22,0xBA,0x5E,0x08,0x1A,0x08,0x21,0x61,0x5E,0x89,0x1A,0x03,0x91,0x3A,0x88, + 0xE1,0x88,0xFF,0xF7,0x31,0xFA,0xE0,0x80,0x7A,0x88,0x21,0x89,0x03,0x98,0xFF,0xF7, + 0x2B,0xFA,0x20,0x81,0x30,0x78,0x01,0x28,0x0A,0xD1,0x26,0x49,0x04,0x20,0x08,0x31, + 0x08,0x5E,0xE1,0x88,0x40,0x1A,0x0C,0x30,0x18,0x28,0x01,0xD9,0x00,0x20,0x25,0xE0, + 0xE0,0x88,0xFF,0x21,0xE1,0x31,0x88,0x42,0x26,0xD2,0xFF,0x21,0xAF,0x31,0x88,0x42, + 0x0A,0xD9,0x21,0x89,0xA5,0x22,0x92,0x00,0x91,0x42,0x05,0xD9,0x1B,0x4A,0x91,0x42, + 0x02,0xD2,0xFF,0x21,0xCD,0x31,0x00,0x91,0x01,0x99,0x88,0x42,0x02,0xD3,0x00,0x99, + 0x88,0x42,0x11,0xD9,0x39,0x88,0x08,0x1A,0x09,0x30,0x12,0x28,0x0C,0xD8,0x78,0x88, + 0x21,0x89,0x40,0x1A,0x00,0x1D,0x08,0x28,0x06,0xD8,0x01,0x20,0x02,0x90,0x03,0xE0, + 0x11,0xE0,0x40,0x1C,0x81,0x42,0xA1,0xDA,0x6D,0x1C,0x30,0x78,0xA8,0x42,0x94,0xDA, + 0x02,0x98,0x08,0x49,0x00,0x28,0x48,0x68,0x01,0xD0,0x40,0x1C,0x02,0xE0,0x00,0x28, + 0x01,0xD0,0x40,0x1E,0x48,0x60,0xFF,0xBC,0x08,0xBC,0x18,0x47,0xF0,0x06,0x00,0x20, + 0xC0,0x01,0x00,0x20,0xF8,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xCB,0x02,0x00,0x00, + 0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x9C,0xD0,0x4D,0xE2,0x00,0x00,0xA0,0xE3, + 0x34,0x00,0x8D,0xE5,0x30,0x00,0x8D,0xE5,0x2C,0x00,0x8D,0xE5,0x28,0x00,0x8D,0xE5, + 0x3C,0x08,0x9F,0xE5,0xB0,0x12,0xD0,0xE1,0x20,0x10,0x8D,0xE5,0xB2,0x02,0xD0,0xE1, + 0x1C,0x00,0x8D,0xE5,0x2C,0x08,0x9F,0xE5,0x00,0x00,0x90,0xE5,0x8A,0x20,0xD0,0xE5, + 0x7C,0x10,0xD0,0xE5,0x7D,0xB0,0xD0,0xE5,0x18,0x20,0x8D,0xE5,0x89,0x20,0xD0,0xE5, + 0x14,0x20,0x8D,0xE5,0xB0,0x20,0xD0,0xE1,0x08,0x00,0x12,0xE3,0x23,0x00,0x00,0x0A, + 0x7F,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x88,0x20,0x8D,0xE5,0x80,0x20,0xD0,0xE5, + 0x91,0x02,0x02,0xE0,0x84,0x20,0x8D,0xE5,0x81,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0, + 0x80,0x20,0x8D,0xE5,0x82,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x7C,0x20,0x8D,0xE5, + 0x83,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x78,0x20,0x8D,0xE5,0x84,0x20,0xD0,0xE5, + 0x91,0x02,0x02,0xE0,0x74,0x20,0x8D,0xE5,0x85,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0, + 0x70,0x20,0x8D,0xE5,0x86,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x6C,0x20,0x8D,0xE5, + 0x87,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x68,0x20,0x8D,0xE5,0x88,0x00,0xD0,0xE5, + 0x91,0x00,0x00,0xE0,0x64,0x00,0x8D,0xE5,0x8C,0x07,0x9F,0xE5,0x80,0x11,0xD0,0xE5, + 0x00,0x00,0x51,0xE3,0x00,0x60,0xA0,0x13,0x03,0x00,0x00,0x1A,0xE4,0x03,0x00,0xEB, + 0x9C,0xD0,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x68,0xA7,0x9F,0xE5, + 0x06,0x50,0x8A,0xE0,0x9C,0x42,0xD5,0xE5,0x00,0x00,0x54,0xE3,0x0C,0x00,0x00,0x0A, + 0x18,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x06,0x00,0x00,0x1A,0x04,0x01,0x84,0xE0, + 0x80,0x00,0x8A,0xE0,0x01,0x0C,0x80,0xE2,0x8A,0x00,0x80,0xE2,0x63,0x03,0x00,0xEB, + 0x00,0x00,0x50,0xE3,0x02,0x00,0x00,0x0A,0xCA,0x02,0xDA,0xE5,0x00,0x00,0x50,0xE3, + 0x01,0x00,0x00,0x0A,0x06,0x00,0xA0,0xE1,0x18,0x00,0x00,0xEA,0x07,0x00,0xA0,0xE3, + 0x00,0x12,0x8A,0xE0,0x86,0x10,0x81,0xE0,0x02,0x2C,0x81,0xE2,0xB4,0x3D,0xD2,0xE1, + 0x03,0x1C,0x81,0xE2,0x01,0x00,0x50,0xE2,0xB4,0x3E,0xC2,0xE1,0xB4,0x26,0xD1,0xE1, + 0xB4,0x27,0xC1,0xE1,0xF5,0xFF,0xFF,0x5A,0x04,0x01,0x84,0xE0,0x80,0x80,0x8A,0xE0, + 0x01,0x7C,0x88,0xE2,0xB6,0x08,0xD7,0xE1,0x20,0x10,0x9D,0xE5,0x01,0x10,0x41,0xE2, + 0x01,0x00,0x50,0xE1,0xB8,0x18,0xD7,0xD1,0x1C,0x00,0x9D,0xD5,0x01,0x00,0x40,0xD2, + 0x00,0x00,0x51,0xD1,0x03,0x00,0x00,0xDA,0x84,0x01,0xD8,0xE5,0x01,0x00,0x40,0xE2, + 0x44,0xFC,0xFF,0xEB,0x84,0x01,0x00,0xEA,0xB6,0x18,0xD7,0xE1,0x86,0x00,0x8A,0xE0, + 0x02,0x9C,0x80,0xE2,0x98,0x00,0x8D,0xE5,0xB4,0x1D,0xC9,0xE1,0xB8,0x18,0xD7,0xE1, + 0x03,0x4C,0x80,0xE2,0x00,0x30,0xA0,0xE3,0x02,0xCB,0xA0,0xE3,0xB4,0x16,0xC4,0xE1, + 0x03,0x10,0xA0,0xE1,0x0C,0x20,0xA0,0xE1,0x07,0x00,0xA0,0xE3,0x78,0xE6,0x9F,0xE5, + 0x00,0xE2,0x8E,0xE0,0x86,0xE0,0x8E,0xE0,0x94,0xE0,0x8D,0xE5,0x02,0xEC,0x8E,0xE2, + 0xF4,0xAD,0xDE,0xE1,0x00,0x00,0x5A,0xE3,0x03,0x00,0x00,0xDA,0x03,0x00,0x5A,0xE1, + 0xB4,0x3D,0xDE,0xC1,0x0C,0x00,0x5A,0xE1,0xB4,0xCD,0xDE,0xB1,0x94,0xE0,0x9D,0xE5, + 0x03,0xEC,0x8E,0xE2,0xF4,0xA6,0xDE,0xE1,0x00,0x00,0x5A,0xE3,0x03,0x00,0x00,0xDA, + 0x01,0x00,0x5A,0xE1,0xB4,0x16,0xDE,0xC1,0x02,0x00,0x5A,0xE1,0xB4,0x26,0xDE,0xB1, + 0x01,0x00,0x50,0xE2,0xE8,0xFF,0xFF,0x5A,0x0C,0x00,0x43,0xE0,0xF0,0x00,0x50,0xE3, + 0x02,0x30,0x41,0xD0,0xF0,0x00,0x53,0xD3,0x0C,0xC6,0x9F,0xC5,0x01,0x30,0xA0,0xC3, + 0xC8,0x32,0xCC,0xC5,0x1E,0x00,0x50,0xE3,0x02,0x00,0x41,0xB0,0x1E,0x00,0x50,0xB3, + 0xF4,0x15,0x9F,0xA5,0x00,0x00,0xA0,0xA3,0xF1,0x00,0xC1,0xA5,0xE8,0x05,0x9F,0xB5, + 0x01,0x10,0xA0,0xB3,0xF1,0x10,0xC0,0xB5,0xCC,0x02,0xD5,0xE5,0x01,0x00,0x50,0xE3, + 0x64,0xA0,0xA0,0x93,0x24,0xA0,0x8D,0x95,0x0E,0x00,0x00,0x9A,0xF4,0x2D,0xD9,0xE1, + 0xF4,0x3E,0xD9,0xE1,0x03,0x00,0x42,0xE0,0x00,0x00,0x50,0xE3,0x02,0x00,0x43,0xD0, + 0xF4,0x36,0xD4,0xE1,0xF4,0x27,0xD4,0xE1,0x00,0xA8,0xA0,0xE1,0x4A,0xA8,0xA0,0xE1, + 0x02,0x00,0x43,0xE0,0x00,0x00,0x50,0xE3,0x03,0x00,0x42,0xD0,0x00,0x08,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x24,0x00,0x8D,0xE5,0xF4,0x1E,0xD9,0xE1,0xF4,0x0D,0xD9,0xE1, + 0x06,0x11,0x00,0xEB,0x3C,0x00,0x8D,0xE5,0xF4,0x17,0xD4,0xE1,0xF4,0x06,0xD4,0xE1, + 0x02,0x11,0x00,0xEB,0x38,0x00,0x8D,0xE5,0xF4,0x1F,0xD9,0xE1,0x3C,0x00,0x9D,0xE5, + 0xFE,0x10,0x00,0xEB,0x44,0x00,0x8D,0xE5,0xF4,0x18,0xD4,0xE1,0x38,0x00,0x9D,0xE5, + 0xFA,0x10,0x00,0xEB,0x40,0x00,0x8D,0xE5,0xF4,0x21,0xD4,0xE1,0xF4,0x10,0xD4,0xE1, + 0x44,0x00,0x9D,0xE5,0xF8,0x10,0x00,0xEB,0x4C,0x00,0x8D,0xE5,0xF4,0x2A,0xD4,0xE1, + 0xF4,0x19,0xD4,0xE1,0x40,0x00,0x9D,0xE5,0xF3,0x10,0x00,0xEB,0x48,0x00,0x8D,0xE5, + 0xF4,0x23,0xD4,0xE1,0xF4,0x12,0xD4,0xE1,0x4C,0x00,0x9D,0xE5,0xEE,0x10,0x00,0xEB, + 0x54,0x00,0x8D,0xE5,0xF4,0x2C,0xD4,0xE1,0xF4,0x1B,0xD4,0xE1,0x48,0x00,0x9D,0xE5, + 0xE9,0x10,0x00,0xEB,0x50,0x00,0x8D,0xE5,0xF4,0x25,0xD4,0xE1,0xF4,0x14,0xD4,0xE1, + 0x54,0x00,0x9D,0xE5,0xE4,0x10,0x00,0xEB,0x5C,0x00,0x8D,0xE5,0xF4,0x2E,0xD4,0xE1, + 0xF4,0x1D,0xD4,0xE1,0x50,0x00,0x9D,0xE5,0xDF,0x10,0x00,0xEB,0x58,0x00,0x8D,0xE5, + 0x24,0x10,0x9D,0xE5,0x0A,0x00,0xA0,0xE1,0x32,0x04,0x00,0xEB,0xC8,0x34,0x9F,0xE5, + 0x04,0x10,0xA0,0xE3,0x01,0x22,0x83,0xE0,0x86,0x20,0x82,0xE0,0x01,0x2B,0x82,0xE2, + 0xB4,0xC1,0xD2,0xE1,0x01,0x10,0x51,0xE2,0xB4,0xC2,0xC2,0xE1,0xF8,0xFF,0xFF,0x5A, + 0x98,0x10,0x9D,0xE5,0x01,0x1B,0x81,0xE2,0xB4,0x01,0xC1,0xE1,0x0C,0x14,0xD5,0xE5, + 0x00,0x00,0xA0,0xE3,0x00,0x20,0x51,0xE2,0x06,0x00,0x00,0xBA,0x01,0xC2,0x83,0xE0, + 0x86,0xC0,0x8C,0xE0,0x01,0xCB,0x8C,0xE2,0xF4,0xC1,0xDC,0xE1,0x01,0x10,0x51,0xE2, + 0x0C,0x00,0x80,0xE0,0xF8,0xFF,0xFF,0x5A,0x01,0x10,0x82,0xE2,0x81,0xF3,0xFF,0xEB, + 0x84,0x10,0x9D,0xE5,0x00,0xA0,0xA0,0xE1,0x01,0x00,0x50,0xE1,0x01,0x00,0xA0,0xD3, + 0x0B,0x00,0x00,0xDA,0x7C,0x00,0x9D,0xE5,0x00,0x00,0x5A,0xE1,0x02,0x00,0xA0,0xD3, + 0x07,0x00,0x00,0xDA,0x74,0x00,0x9D,0xE5,0x00,0x00,0x5A,0xE1,0x03,0x00,0xA0,0xD3, + 0x03,0x00,0x00,0xDA,0x6C,0x00,0x9D,0xE5,0x00,0x00,0x5A,0xE1,0x05,0x00,0xA0,0xC3, + 0x04,0x00,0xA0,0xD3,0x04,0x14,0xD5,0xE5,0x01,0x10,0x40,0xE0,0x00,0x00,0x51,0xE3, + 0x00,0x00,0x6B,0xE2,0x06,0x00,0x00,0xDA,0xF4,0x1F,0xD4,0xE1,0x0B,0x00,0x51,0xE1, + 0x01,0x00,0x00,0x1A,0x00,0x10,0xA0,0xE3,0x06,0x00,0x00,0xEA,0x01,0x10,0x81,0xE2, + 0x04,0x00,0x00,0xEA,0xF4,0x1F,0xD4,0xE1,0x04,0x00,0x00,0xAA,0x00,0x00,0x51,0xE1, + 0xF7,0xFF,0xFF,0x0A,0x01,0x10,0x41,0xE2,0xB4,0x1F,0xC4,0xE1,0x02,0x00,0x00,0xEA, + 0x00,0x00,0x51,0xE3,0xFA,0xFF,0xFF,0xCA,0xF3,0xFF,0xFF,0xBA,0xF4,0x3F,0xD4,0xE1, + 0x0B,0x00,0x53,0xE1,0x03,0x00,0x00,0x1A,0x04,0x14,0xD5,0xE5,0x05,0x00,0x51,0xE3, + 0x01,0x00,0x81,0x32,0x05,0x00,0x00,0x3A,0x00,0x00,0x53,0xE1,0x04,0x00,0x00,0x1A, + 0x04,0x04,0xD5,0xE5,0x01,0x00,0x50,0xE3,0x01,0x00,0x00,0x9A,0x01,0x00,0x40,0xE2, + 0x04,0x04,0xC5,0xE5,0x58,0x30,0x8D,0xE2,0x09,0x00,0x93,0xE8,0x60,0x00,0x8D,0xE5, + 0xCC,0x02,0xD5,0xE5,0x00,0x10,0xA0,0xE1,0x90,0x00,0x8D,0xE5,0x8C,0x00,0x8D,0xE5, + 0x03,0x00,0xA0,0xE1,0x43,0xF3,0xFF,0xEB,0x34,0x00,0x8D,0xE5,0x2C,0x00,0x8D,0xE5, + 0x60,0x00,0x9D,0xE5,0x8C,0x10,0x9D,0xE5,0x3E,0xF3,0xFF,0xEB,0x30,0x00,0x8D,0xE5, + 0x28,0x00,0x8D,0xE5,0x04,0x04,0xD5,0xE5,0x01,0x00,0x50,0xE3,0x18,0x00,0x00,0x1A, + 0x28,0x30,0x8D,0xE2,0x2C,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5, + 0x5C,0x20,0x9D,0xE5,0x58,0x30,0x9D,0xE5,0x09,0x10,0xA0,0xE3,0x0D,0x13,0x00,0xEB, + 0x30,0x30,0x8D,0xE2,0x34,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0xCC,0x02,0xD5,0xE5, + 0x54,0x20,0x9D,0xE5,0x50,0x30,0x9D,0xE5,0x07,0x10,0xA0,0xE3,0x05,0x13,0x00,0xEB, + 0xF4,0x03,0xDD,0xE1,0xF0,0x13,0xDD,0xE1,0xF8,0x32,0xDD,0xE1,0xFC,0x22,0xDD,0xE1, + 0x0F,0x00,0x8D,0xE8,0x88,0x20,0x9D,0xE5,0x84,0x30,0x9D,0xE5,0x61,0x0F,0x88,0xE2, + 0x60,0x00,0x00,0xEA,0x02,0x00,0x50,0xE3,0x18,0x00,0x00,0x1A,0x28,0x30,0x8D,0xE2, + 0x2C,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5,0x54,0x20,0x9D,0xE5, + 0x50,0x30,0x9D,0xE5,0x07,0x10,0xA0,0xE3,0xF2,0x12,0x00,0xEB,0x30,0x30,0x8D,0xE2, + 0x34,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0xCC,0x02,0xD5,0xE5,0x4C,0x20,0x9D,0xE5, + 0x48,0x30,0x9D,0xE5,0x05,0x10,0xA0,0xE3,0xEA,0x12,0x00,0xEB,0xF4,0x03,0xDD,0xE1, + 0xF0,0x13,0xDD,0xE1,0xF8,0x32,0xDD,0xE1,0xFC,0x22,0xDD,0xE1,0x0F,0x00,0x8D,0xE8, + 0x80,0x20,0x9D,0xE5,0x7C,0x30,0x9D,0xE5,0x61,0x0F,0x88,0xE2,0x45,0x00,0x00,0xEA, + 0x03,0x00,0x50,0xE3,0x18,0x00,0x00,0x1A,0x28,0x30,0x8D,0xE2,0x2C,0x20,0x8D,0xE2, + 0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5,0x4C,0x20,0x9D,0xE5,0x48,0x30,0x9D,0xE5, + 0x05,0x10,0xA0,0xE3,0xD7,0x12,0x00,0xEB,0x30,0x30,0x8D,0xE2,0x34,0x20,0x8D,0xE2, + 0x0C,0x00,0x8D,0xE8,0xCC,0x02,0xD5,0xE5,0x44,0x20,0x9D,0xE5,0x40,0x30,0x9D,0xE5, + 0x03,0x10,0xA0,0xE3,0xCF,0x12,0x00,0xEB,0xF4,0x03,0xDD,0xE1,0xF0,0x13,0xDD,0xE1, + 0xF8,0x32,0xDD,0xE1,0xFC,0x22,0xDD,0xE1,0x0F,0x00,0x8D,0xE8,0x78,0x20,0x9D,0xE5, + 0x74,0x30,0x9D,0xE5,0x61,0x0F,0x88,0xE2,0x2A,0x00,0x00,0xEA,0x04,0x00,0x50,0xE3, + 0x18,0x00,0x00,0x1A,0x28,0x30,0x8D,0xE2,0x2C,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8, + 0x90,0x00,0x9D,0xE5,0x44,0x20,0x9D,0xE5,0x40,0x30,0x9D,0xE5,0x03,0x10,0xA0,0xE3, + 0xBC,0x12,0x00,0xEB,0x30,0x30,0x8D,0xE2,0x34,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8, + 0xCC,0x02,0xD5,0xE5,0x3C,0x20,0x9D,0xE5,0x38,0x30,0x9D,0xE5,0x02,0x10,0xA0,0xE3, + 0xB4,0x12,0x00,0xEB,0xF4,0x03,0xDD,0xE1,0xF0,0x13,0xDD,0xE1,0xF8,0x32,0xDD,0xE1, + 0xFC,0x22,0xDD,0xE1,0x0F,0x00,0x8D,0xE8,0x70,0x20,0x9D,0xE5,0x6C,0x30,0x9D,0xE5, + 0x61,0x0F,0x88,0xE2,0x0F,0x00,0x00,0xEA,0x30,0x30,0x8D,0xE2,0x34,0x20,0x8D,0xE2, + 0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5,0x3C,0x20,0x9D,0xE5,0x38,0x30,0x9D,0xE5, + 0x02,0x10,0xA0,0xE3,0xA3,0x12,0x00,0xEB,0xF4,0x0D,0xD9,0xE1,0xF4,0x16,0xD4,0xE1, + 0xF0,0x33,0xDD,0xE1,0xF4,0x23,0xDD,0xE1,0x0F,0x00,0x8D,0xE8,0x68,0x20,0x9D,0xE5, + 0x64,0x30,0x9D,0xE5,0x61,0x0F,0x88,0xE2,0x0A,0x10,0xA0,0xE1,0xAB,0x12,0x00,0xEB, + 0xCC,0x02,0xD5,0xE5,0x50,0x11,0x9F,0xE5,0x09,0x00,0x50,0xE3,0x01,0x00,0x80,0x32, + 0xCC,0x02,0xC5,0x35,0x0C,0x04,0xD5,0xE5,0x05,0x00,0x50,0xE3,0x01,0x00,0x80,0x32, + 0x0C,0x04,0xC5,0x35,0x84,0x01,0xD8,0xE5,0x01,0x00,0x40,0xE2,0x00,0x01,0x81,0xE0, + 0x01,0x4B,0x80,0xE2,0xF4,0x07,0xD4,0xE1,0x01,0x00,0x70,0xE3,0xF6,0x17,0xD4,0xC1, + 0x01,0x00,0x71,0xC3,0x18,0x00,0x00,0xDA,0x14,0x10,0x9D,0xE5,0x64,0x50,0x61,0xE2, + 0x95,0x00,0x00,0xE0,0x64,0x10,0xA0,0xE3,0xA6,0xF2,0xFF,0xEB,0x00,0x80,0xA0,0xE1, + 0xB6,0x08,0xD7,0xE1,0x14,0x10,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x64,0x10,0xA0,0xE3, + 0x38,0xF3,0xFF,0xEB,0x08,0x00,0x80,0xE0,0xB6,0x08,0xC7,0xE1,0xF6,0x07,0xD4,0xE1, + 0x64,0x10,0xA0,0xE3,0x95,0x00,0x00,0xE0,0x9A,0xF2,0xFF,0xEB,0x00,0x50,0xA0,0xE1, + 0xB8,0x08,0xD7,0xE1,0x14,0x10,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x64,0x10,0xA0,0xE3, + 0x2C,0xF3,0xFF,0xEB,0x05,0x00,0x80,0xE0,0xB8,0x08,0xC7,0xE1,0xB6,0x08,0xD7,0xE1, + 0xB4,0x07,0xC4,0xE1,0xB8,0x08,0xD7,0xE1,0xB6,0x07,0xC4,0xE1,0x01,0x60,0x86,0xE2, + 0x08,0x00,0x56,0xE3,0x48,0xFE,0xFF,0xBA,0x8C,0x30,0x9F,0xE5,0x80,0x21,0xD3,0xE5, + 0x00,0x00,0x83,0xE2,0x01,0x1C,0x80,0xE2,0x01,0x00,0x52,0xE3,0x02,0x0C,0x80,0xE2, + 0x10,0x00,0x00,0x1A,0x8E,0x21,0xD3,0xE5,0x82,0x30,0x83,0xE0,0x02,0x2C,0x83,0xE2, + 0xB2,0xCD,0xD2,0xE1,0x03,0x3C,0x83,0xE2,0xBC,0xCB,0xC0,0xE1,0xB2,0xC6,0xD3,0xE1, + 0xBE,0xCB,0xC0,0xE1,0xB2,0x2E,0xD2,0xE1,0xB0,0x2C,0xC0,0xE1,0xB2,0x27,0xD3,0xE1, + 0xB2,0x2C,0xC0,0xE1,0xB0,0x29,0xD1,0xE1,0xB4,0x2B,0xC0,0xE1,0xB2,0x19,0xD1,0xE1, + 0xB6,0x1B,0xC0,0xE1,0x2D,0xFE,0xFF,0xEA,0x02,0x00,0x52,0xE3,0x2B,0xFE,0xFF,0x1A, + 0xB0,0x29,0xD1,0xE1,0xB4,0x2B,0xC0,0xE1,0xB2,0x29,0xD1,0xE1,0xB6,0x2B,0xC0,0xE1, + 0xBA,0x29,0xD1,0xE1,0xB8,0x2B,0xC0,0xE1,0xBC,0x19,0xD1,0xE1,0xBA,0x1B,0xC0,0xE1, + 0x22,0xFE,0xFF,0xEA,0x00,0x93,0x00,0x00,0xF0,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0xF8,0xB5,0x1E,0x4B,0x1C,0x4A,0x1B,0x7D,0x12,0x88,0xDB,0x07,0x32,0xD0,0x1C,0x4B, + 0x1C,0x88,0x1C,0x4B,0x1B,0x7D,0x9E,0x46,0x1B,0x4B,0x1E,0x78,0x17,0x4B,0x9D,0x7D, + 0x00,0x2E,0x76,0x46,0xAC,0x46,0xDD,0x7D,0x00,0x95,0x1D,0x7E,0x5F,0x7E,0x9B,0x7E, + 0x12,0xD0,0xB0,0x42,0x1E,0xD1,0x8C,0x45,0x08,0xD0,0x00,0x98,0x88,0x42,0x05,0xD0, + 0x8D,0x42,0x03,0xD0,0x8F,0x42,0x01,0xD0,0x8B,0x42,0x03,0xD1,0x20,0x00,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x20,0xFA,0xE7,0xB1,0x42,0x0B,0xD1,0x84,0x45,0xF5,0xD0, + 0x00,0x99,0x81,0x42,0xF2,0xD0,0x85,0x42,0xF0,0xD0,0x87,0x42,0xEE,0xD0,0x83,0x42, + 0xF0,0xD1,0xEB,0xE7,0x10,0x00,0xEA,0xE7,0xA8,0x05,0x00,0x20,0x00,0x93,0x00,0x00, + 0xA6,0x05,0x00,0x20,0x00,0x05,0x00,0x20,0x99,0x05,0x00,0x20,0x0E,0x23,0x58,0x43, + 0x02,0x4A,0x40,0x18,0x40,0x00,0x10,0x5A,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0x70,0xB5,0x2E,0x49,0x00,0x20,0x4A,0x78,0x2D,0x49,0x00,0x2A,0x15,0xD1,0x0A,0x89, + 0x00,0x2A,0x0F,0xD0,0x2B,0x49,0x8A,0x42,0x0C,0xD0,0x10,0x00,0x32,0x21,0x48,0x43, + 0x64,0x21,0xFC,0xF7,0x97,0xFD,0xFF,0x30,0x4B,0x21,0x7D,0x30,0xC9,0x00,0x88,0x42, + 0x00,0xD9,0x08,0x00,0x70,0xBC,0x08,0xBC,0x18,0x47,0x88,0x89,0x01,0x21,0x49,0x07, + 0x89,0x68,0x21,0x4C,0x89,0x00,0x0A,0x0F,0x1D,0x49,0x89,0x89,0xFF,0x39,0xE2,0x39, + 0x01,0x2A,0x16,0xD1,0x1D,0x4A,0x1E,0x4D,0x91,0x42,0x07,0xD8,0x29,0x1A,0x08,0x00, + 0x48,0x43,0x51,0x1C,0xFC,0xF7,0x76,0xFD,0x28,0x1A,0x06,0xE0,0xA8,0x42,0x04,0xD9, + 0x17,0x49,0x49,0x42,0x40,0x18,0x80,0x08,0x40,0x19,0xA0,0x42,0xDA,0xD9,0x0D,0x21, + 0x18,0xE0,0x02,0x2A,0xD6,0xD1,0x12,0x4A,0x11,0x4D,0xE7,0x3A,0xFA,0x35,0x91,0x42, + 0x07,0xD8,0x29,0x1A,0x08,0x00,0x48,0x43,0x51,0x1C,0xFC,0xF7,0x5B,0xFD,0x28,0x1A, + 0x05,0xE0,0xA8,0x42,0x03,0xD9,0x0B,0x49,0x40,0x18,0x80,0x08,0x40,0x19,0xA0,0x42, + 0xC0,0xD9,0x11,0x21,0xFC,0xF7,0x4E,0xFD,0x60,0x1A,0xBB,0xE7,0xE0,0x04,0x00,0x20, + 0x40,0x00,0x00,0x20,0xFF,0x0F,0x00,0x00,0x10,0x27,0x00,0x00,0xC9,0x03,0x00,0x00, + 0xAA,0x05,0x00,0x00,0x5C,0xF9,0xFF,0xFF,0x04,0x48,0x41,0x69,0x49,0x06,0x01,0xD5, + 0x10,0x20,0x70,0x47,0x40,0x69,0xC0,0x06,0xC0,0x0E,0x70,0x47,0x00,0x40,0x00,0x30, + 0x70,0xB5,0x12,0x4D,0x00,0x24,0x01,0x21,0x49,0x07,0x68,0x69,0x80,0x06,0xFC,0xD4, + 0xE8,0x68,0x6A,0x68,0x6A,0x60,0x05,0xE0,0x6A,0x69,0x92,0x06,0xFC,0xD4,0xAA,0x69, + 0x04,0xC1,0xA4,0x18,0x02,0x00,0x40,0x1E,0x01,0x2A,0xF5,0xD8,0x2E,0x20,0x68,0x60, + 0x68,0x68,0x80,0x07,0xFC,0xD5,0x03,0xF0,0x55,0xFE,0x05,0x48,0xE8,0x61,0xEC,0x61, + 0x68,0x69,0x80,0x06,0xFC,0xD4,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30, + 0xAB,0xFC,0xFF,0x8F,0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9,0xB0,0x40,0x9F,0xE5, + 0x0C,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3,0xFC,0xFF,0xFF,0x0A,0x04,0x00,0x94,0xE5, + 0x04,0x00,0x84,0xE5,0x04,0x00,0x94,0xE5,0x04,0x00,0x10,0xE3,0x10,0x00,0x00,0x0A, + 0x0C,0x00,0x94,0xE5,0x04,0x10,0x90,0xE4,0x1C,0x10,0x84,0xE5,0x02,0x12,0xA0,0xE3, + 0x38,0x10,0x91,0xE5,0x04,0x00,0x00,0xEA,0x04,0x20,0x90,0xE4,0x1C,0x20,0x84,0xE5, + 0x14,0x20,0x94,0xE5,0x40,0x00,0x12,0xE3,0xFC,0xFF,0xFF,0x1A,0x01,0x10,0x51,0xE2, + 0xF8,0xFF,0xFF,0x1A,0x14,0x00,0x94,0xE5,0x5F,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x1A, + 0x11,0x00,0x00,0xEA,0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3,0xE8,0xFF,0xFF,0x0A, + 0x14,0x00,0x94,0xE5,0x20,0x00,0x10,0xE3,0xE5,0xFF,0xFF,0x1A,0x0C,0x00,0x94,0xE5, + 0x08,0x00,0x50,0xE3,0x10,0x40,0xBD,0x08,0xFB,0x0E,0x00,0x0A,0x14,0x10,0x94,0xE5, + 0x5F,0x00,0x11,0xE3,0x18,0x10,0x94,0x15,0x04,0x10,0x80,0x14,0xFA,0xFF,0xFF,0x1A, + 0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x0A,0xF2,0x0E,0x00,0xEB, + 0xD2,0xFF,0xFF,0xEA,0x00,0x40,0x00,0x30,0x01,0x49,0x20,0x20,0x48,0x61,0x70,0x47, + 0x00,0x40,0x00,0x30,0xF8,0xB5,0x01,0x22,0x52,0x07,0x11,0x68,0x3D,0x48,0x01,0x29, + 0x80,0x7D,0x01,0xD1,0x01,0x25,0x03,0xE0,0x11,0x68,0x01,0x29,0x06,0xD9,0x02,0x25, + 0x00,0x28,0x0B,0xD0,0x00,0x21,0x05,0x27,0x3F,0x02,0x3B,0xE0,0x00,0x28,0x05,0xD1, + 0x34,0x48,0x09,0x22,0x00,0x21,0x00,0x1D,0xFC,0xF7,0xA8,0xFC,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x4A,0x19,0x00,0x24,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F, + 0xC0,0x07,0x26,0xD0,0x01,0x20,0x93,0x00,0x1B,0x0F,0x2B,0x4E,0x36,0x18,0xF6,0x19, + 0x36,0x79,0x9E,0x42,0x01,0xD1,0x04,0x00,0x02,0xE0,0x40,0x1C,0x08,0x28,0xF4,0xD9, + 0x00,0x2C,0x06,0xD0,0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43, + 0x0D,0xE0,0x21,0x4C,0x01,0x20,0x26,0x18,0xF6,0x19,0x36,0x79,0x00,0x2E,0x03,0xD1, + 0x24,0x18,0xE4,0x19,0x23,0x71,0xED,0xE7,0x40,0x1C,0x08,0x28,0xF3,0xD9,0x60,0x46, + 0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42,0xC9,0xD8,0x00,0x21, + 0x21,0xE0,0x4A,0x19,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07, + 0x18,0xD1,0x11,0x4E,0x01,0x20,0x93,0x00,0x1C,0x0F,0x33,0x18,0xDB,0x19,0x1B,0x79, + 0xA3,0x42,0x0A,0xD1,0x34,0x18,0x00,0x23,0xE4,0x19,0x23,0x71,0x0F,0x23,0x9B,0x06, + 0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43,0x02,0xE0,0x40,0x1C,0x08,0x28,0xEC,0xD9, + 0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42,0xD8,0xD8, + 0x9C,0xE7,0x00,0x00,0x40,0x05,0x00,0x20,0x40,0x00,0x00,0x20,0x03,0x22,0x12,0x07, + 0xD3,0x68,0x01,0x21,0x81,0x40,0x0B,0x43,0xD3,0x60,0x50,0x68,0x08,0x42,0x01,0xD0, + 0x01,0x48,0x01,0x63,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x30,0x03,0x23,0x1B,0x07, + 0xDA,0x68,0x01,0x21,0x81,0x40,0x8A,0x43,0xDA,0x60,0x70,0x47,0x10,0xB4,0x0F,0x24, + 0x03,0x23,0x1B,0x07,0x1C,0x60,0x05,0x4C,0x60,0x63,0x19,0x61,0x9A,0x60,0x00,0x20, + 0xC0,0x43,0xD8,0x60,0x00,0x20,0x18,0x60,0x10,0xBC,0x70,0x47,0x40,0x00,0x00,0x30, + 0x03,0x4B,0x00,0xB5,0x82,0x00,0x99,0x50,0xFF,0xF7,0xE0,0xFF,0x08,0xBC,0x18,0x47, + 0x70,0x06,0x00,0x20,0xF0,0xB5,0x87,0xB0,0xFE,0xF7,0xE4,0xFA,0xFE,0xF7,0xC2,0xFA, + 0x02,0xF0,0x5C,0xF9,0x03,0xF0,0xAA,0xFB,0x00,0xF0,0xAE,0xFE,0x00,0xF0,0xFA,0xFB, + 0xFD,0xF7,0x14,0xFF,0xFD,0xF7,0x1C,0xF8,0x47,0x48,0x00,0x68,0x80,0x30,0x40,0x7B, + 0x00,0x28,0x04,0xD1,0xFF,0xF7,0x9C,0xF9,0xFF,0xF7,0xEE,0xF8,0x03,0xE0,0xFF,0xF7, + 0xEB,0xF8,0xFF,0xF7,0x95,0xF9,0x01,0x25,0x6D,0x07,0x68,0x68,0x6B,0x46,0x03,0x90, + 0x00,0x20,0xD8,0x73,0x03,0x98,0x68,0x60,0x03,0xF0,0x10,0xFF,0x03,0xF0,0x52,0xFD, + 0x28,0x68,0x00,0x28,0x07,0xD0,0x68,0x68,0x80,0x0F,0x80,0x07,0x03,0xD5,0x2E,0x68, + 0x02,0x24,0x76,0x1C,0x4F,0xE0,0x01,0x24,0x26,0x00,0xA0,0x00,0x40,0x19,0x06,0x90, + 0x07,0x68,0xB8,0x01,0x80,0x0D,0x05,0x90,0xB8,0x05,0x80,0x0D,0x04,0x90,0x2F,0x48, + 0x00,0x78,0x00,0x28,0x03,0xD1,0x04,0xA9,0x05,0xA8,0x03,0xF0,0x79,0xFD,0x2C,0x4B, + 0x00,0x21,0x58,0x8C,0x40,0x1E,0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0,0x18,0x8C, + 0x0A,0x00,0x04,0xA9,0x40,0x1E,0x03,0x04,0x1B,0x0C,0x05,0xA8,0x04,0xF0,0x8D,0xFE, + 0x04,0xA9,0x05,0xA8,0x04,0xF0,0xB0,0xFC,0x05,0x98,0x22,0x49,0x80,0x05,0x04,0x9A, + 0x0F,0x40,0x80,0x09,0x07,0x43,0xB8,0x0A,0x92,0x05,0x80,0x02,0x92,0x0D,0x10,0x43, + 0x1D,0x4A,0x12,0x78,0x00,0x2A,0x13,0xD0,0x82,0x01,0x92,0x0D,0x9B,0x2A,0x03,0xD2, + 0x73,0x22,0x08,0x40,0x12,0x04,0x80,0x18,0x82,0x01,0xFF,0x23,0x92,0x0D,0x46,0x33, + 0x9A,0x42,0x02,0xD9,0x08,0x40,0x15,0x49,0x40,0x18,0x80,0x0A,0x80,0x02,0x9E,0x30, + 0x06,0x99,0x08,0x60,0x64,0x1C,0xB4,0x42,0xAF,0xD9,0xFD,0xF7,0x45,0xFD,0x03,0xF0, + 0xC1,0xFC,0x01,0x24,0x28,0x68,0xFC,0xF7,0xAD,0xFC,0x64,0x1E,0xFA,0xD2,0xFF,0xF7, + 0xB1,0xFE,0xFC,0xF7,0xDB,0xFB,0x04,0xF0,0x2B,0xFD,0x09,0x48,0x40,0x79,0x07,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xF0,0x06,0x00,0x20,0xA0,0x05,0x00,0x20, + 0x00,0x93,0x00,0x00,0xFF,0xFF,0x00,0xFC,0xA3,0x05,0x00,0x20,0x00,0x00,0x6D,0x01, + 0x40,0x00,0x00,0x20,0xF8,0xB5,0x03,0xF0,0xE5,0xFA,0x04,0xF0,0x99,0xFB,0x2C,0x48, + 0x2C,0x4D,0x00,0x7C,0x41,0x1E,0xFF,0x29,0x00,0xD3,0x00,0x20,0xFE,0xF7,0xB0,0xF8, + 0x28,0x73,0x29,0x48,0x01,0x69,0xFF,0x22,0x12,0x02,0x91,0x43,0x01,0x61,0x01,0x69, + 0x2A,0x7B,0x12,0x02,0x11,0x43,0x01,0x61,0xFE,0xF7,0xFE,0xFC,0xFE,0xF7,0x7A,0xFD, + 0xFE,0xF7,0x80,0xFD,0x1E,0x48,0xE9,0x7D,0x60,0x38,0xC0,0x7F,0x00,0x29,0x03,0xD0, + 0x03,0x21,0xFC,0xF7,0x0F,0xFB,0xFF,0xE7,0x04,0xF0,0xBA,0xFB,0x1B,0x4F,0xFC,0x03, + 0x00,0x20,0x28,0x70,0xE8,0x62,0x28,0x7C,0x00,0x28,0x1D,0xD0,0x01,0x26,0x18,0xE0, + 0x78,0x68,0x00,0x07,0x15,0xD5,0xA6,0x63,0xF8,0x68,0x07,0x28,0x09,0xD1,0x78,0x68, + 0x80,0x07,0xFC,0xD5,0x03,0xF0,0x36,0xFC,0xFE,0xF7,0xE2,0xFF,0xFF,0x20,0xE0,0x63, + 0x07,0xE0,0x0B,0x28,0x10,0xD1,0xE0,0x63,0x78,0x68,0x80,0x07,0xFC,0xD5,0x03,0xF0, + 0x29,0xFC,0xE0,0x6B,0x0B,0x28,0xE3,0xD1,0xFE,0xF7,0xA0,0xF8,0x28,0x78,0x00,0x28, + 0xD6,0xD0,0x02,0xF0,0x9D,0xFE,0xD3,0xE7,0x78,0x68,0x80,0x07,0xFC,0xD5,0xEE,0xE7, + 0x60,0x93,0x00,0x00,0x8C,0x05,0x00,0x20,0x00,0x90,0x00,0x40,0x00,0x40,0x00,0x30, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x70,0xB5,0x06,0x00,0x23,0x48,0x24,0x4A, + 0x00,0x68,0x12,0x88,0x60,0x30,0x01,0x7E,0xC0,0x7D,0x34,0x78,0x89,0x18,0x0D,0x06, + 0x20,0x49,0x2D,0x0E,0x09,0x78,0x00,0x29,0x05,0xD1,0x1F,0x49,0xFF,0x22,0x09,0x68, + 0x2D,0x32,0x91,0x42,0x01,0xD9,0x03,0x25,0x04,0xE0,0x1C,0x49,0x09,0x78,0x01,0x29, + 0x00,0xD1,0x02,0x25,0x1A,0x49,0x8A,0x7C,0x00,0x2A,0x0D,0xD1,0xC9,0x7C,0x01,0x29, + 0x01,0xD1,0x40,0x1C,0x06,0xE0,0x02,0x29,0x01,0xD1,0x80,0x1C,0x02,0xE0,0x03,0x29, + 0x02,0xD1,0xC0,0x1C,0x00,0x06,0x00,0x0E,0x00,0x2C,0x0A,0xD0,0x84,0x42,0x08,0xD3, + 0x14,0x21,0x20,0x00,0xFC,0xF7,0x96,0xFA,0x6D,0x1C,0xA8,0x42,0x05,0xD2,0x14,0x2C, + 0x07,0xD3,0x00,0x20,0x70,0xBC,0x08,0xBC,0x18,0x47,0x14,0x2C,0x01,0xD3,0xF0,0x20, + 0x00,0xE0,0x13,0x20,0x30,0x70,0x01,0x20,0xF4,0xE7,0x00,0x00,0xF0,0x06,0x00,0x20, + 0x80,0x05,0x00,0x20,0xA3,0x05,0x00,0x20,0xDC,0x05,0x00,0x20,0x95,0x05,0x00,0x20, + 0xE0,0x02,0x00,0x20,0x10,0xB5,0x08,0x24,0x20,0x00,0xFE,0xF7,0x2D,0xF9,0x64,0x1E, + 0xFA,0xD5,0x05,0x48,0x01,0x22,0x41,0x7C,0x01,0x29,0x01,0xD8,0x00,0x29,0x00,0xD1, + 0x42,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x93,0x00,0x00,0x10,0xB5,0x07,0x4C, + 0x07,0x48,0x22,0x00,0x00,0x21,0xFC,0xF7,0x81,0xFA,0x06,0x48,0x22,0x00,0x00,0x21, + 0xFC,0xF7,0x7C,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD2,0x02,0x00,0x00, + 0x00,0x00,0x00,0x10,0x08,0x07,0x00,0x20,0x10,0xB5,0x40,0x22,0xD4,0x05,0x00,0x21, + 0x20,0x00,0xFC,0xF7,0x6B,0xFA,0x01,0x20,0xA0,0x63,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x14,0x48,0x10,0xB5,0x44,0x08,0x14,0x49,0x14,0x48,0x62,0x00,0xFC,0xF7,0x88,0xFA, + 0x10,0x48,0xC0,0x07,0x08,0xD0,0x0F,0x48,0xC2,0x07,0x0F,0x48,0xD2,0x0F,0x01,0x19, + 0x0E,0x48,0x00,0x19,0xFC,0xF7,0x82,0xFA,0x0D,0x48,0x00,0x21,0x84,0x08,0x0D,0x48, + 0xA2,0x00,0xFC,0xF7,0x69,0xFA,0x0A,0x48,0x80,0x07,0x07,0xD0,0x08,0x48,0x00,0x21, + 0x82,0x07,0x08,0x48,0x92,0x0F,0x00,0x19,0xFC,0xF7,0x40,0xFA,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x91,0x00,0x00,0x40,0x00,0x00,0x20, + 0x3C,0x0A,0x00,0x00,0x40,0x00,0x00,0x20,0x33,0x21,0x09,0x05,0x01,0x20,0x80,0x07, + 0x41,0x62,0x04,0x49,0x81,0x62,0x04,0x48,0xFF,0x21,0xC1,0x60,0x00,0x21,0x41,0x61, + 0x70,0x47,0x00,0x00,0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x40,0x02,0x49,0x03,0x48, + 0x01,0x60,0x20,0x21,0x41,0x60,0x70,0x47,0xDE,0x10,0x05,0x00,0x00,0x40,0x00,0x30, + 0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9,0x00,0x40,0xA0,0xE3,0x04,0x00,0xA0,0xE1, + 0x8C,0xF8,0xFF,0xEB,0x01,0x40,0x84,0xE2,0x08,0x00,0x54,0xE3,0xFA,0xFF,0xFF,0xBA, + 0x10,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x10,0xB5,0x01,0x24,0x64,0x03,0x20,0x00, + 0xFC,0xF7,0xD4,0xFD,0xFE,0xF7,0x02,0xFC,0xFE,0xF7,0xDC,0xFB,0xFE,0xF7,0x06,0xFC, + 0xFE,0xF7,0xFC,0xFB,0xFE,0xF7,0xCE,0xFB,0x07,0x48,0x01,0x68,0xF0,0x22,0x91,0x43, + 0x06,0x4A,0x12,0x7B,0x12,0x07,0x12,0x0E,0x11,0x43,0x01,0x60,0x20,0x00,0xFC,0xF7, + 0xB5,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xA0,0x00,0x40,0x00,0x93,0x00,0x00, + 0x10,0xB5,0x03,0xF0,0x51,0xF9,0x03,0xF0,0x43,0xF9,0x03,0xF0,0x39,0xF9,0xFF,0x20, + 0xFC,0xF7,0xE4,0xFD,0xFF,0xF7,0xA0,0xFF,0x13,0x48,0x80,0x22,0x00,0x21,0xFC,0xF7, + 0xEB,0xF9,0x08,0x20,0xFC,0xF7,0xA2,0xFD,0x00,0x22,0x10,0x49,0xD2,0x43,0x00,0x20, + 0xFF,0xF7,0x9C,0xFD,0x00,0xF0,0x20,0xF8,0x0D,0x48,0x40,0x7A,0x00,0x28,0x04,0xD0, + 0x40,0x20,0xFC,0xF7,0x93,0xFD,0x00,0xF0,0x53,0xF8,0x00,0xF0,0x3D,0xF8,0x10,0x20, + 0x03,0xF0,0x23,0xF9,0x07,0x49,0xC8,0x69,0xCA,0x13,0x90,0x43,0xC8,0x61,0xFE,0xF7, + 0x33,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x70,0x06,0x00,0x20,0x02,0x03,0x0F,0x0F, + 0x00,0x93,0x00,0x00,0x00,0x70,0x00,0x40,0xF8,0xB5,0x03,0x24,0xE6,0x01,0x13,0x25, + 0x30,0x00,0xFC,0xF7,0x73,0xFD,0x20,0x02,0xFC,0xF7,0x9A,0xFD,0x0C,0x48,0x0A,0x21, + 0x00,0x6B,0xFC,0xF7,0x6F,0xF9,0x02,0x00,0xFF,0x21,0x90,0x31,0x02,0x20,0x00,0x23, + 0x00,0x95,0x04,0xF0,0xBD,0xFA,0x07,0x4A,0x27,0x21,0x03,0x20,0x00,0x23,0x00,0x94, + 0x04,0xF0,0xB6,0xFA,0x30,0x00,0xFC,0xF7,0x51,0xFD,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x93,0x00,0x00,0xE8,0xFD,0x00,0x00,0x10,0xB5,0x07,0x49,0x00,0x20,0xFF,0xF7, + 0x5F,0xFD,0x04,0xF0,0x4B,0xFC,0x05,0x48,0x04,0xF0,0x42,0xFC,0x00,0x20,0xFF,0xF7, + 0x3D,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0xA5,0x8E,0x00,0x00,0xC8,0x32,0x00,0x00, + 0x0A,0x48,0x10,0xB5,0x00,0x6B,0x0A,0x49,0x0A,0x4C,0x88,0x42,0x05,0xD9,0x7D,0x21, + 0xC9,0x00,0xFC,0xF7,0x37,0xF9,0x64,0x30,0x01,0xE0,0xFF,0x20,0xF5,0x30,0xE0,0x67, + 0x04,0xF0,0xFC,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x93,0x00,0x00, + 0x07,0xA5,0x07,0x00,0x8C,0x05,0x00,0x20,0x10,0xB5,0xFF,0xF7,0xBF,0xFE,0x11,0x48, + 0x00,0x7A,0x04,0xF0,0xB1,0xF9,0xFF,0xF7,0x2B,0xFF,0x0E,0x48,0x0E,0x4A,0xA0,0x30, + 0x41,0x89,0xD1,0x83,0x0D,0x49,0x0E,0x4A,0x09,0x68,0x40,0x31,0x49,0x7D,0x51,0x76, + 0x01,0x00,0x20,0x39,0x0A,0x8B,0x0A,0x49,0x80,0x31,0x8A,0x63,0x00,0x88,0xC8,0x63, + 0xFF,0xF7,0x90,0xFE,0xFE,0xF7,0x32,0xFA,0x06,0x49,0x00,0x20,0x08,0x70,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00,0x40,0x00,0x00,0x20,0xF0,0x06,0x00,0x20, + 0xC0,0x04,0x00,0x20,0x8D,0x05,0x00,0x20,0xF7,0xB5,0x2C,0x48,0x86,0xB0,0x04,0x90, + 0x00,0x20,0x2B,0x4E,0x07,0x00,0x02,0x90,0x03,0x90,0x05,0x90,0xFE,0xF7,0xE4,0xFA, + 0xFE,0xF7,0x50,0xFB,0x27,0x48,0x40,0x7F,0x01,0x90,0x26,0x48,0x20,0x38,0x40,0x7F, + 0x00,0x25,0x00,0x90,0x00,0x24,0x21,0x00,0x28,0x00,0xFF,0xF7,0xE1,0xFA,0x00,0x28, + 0x1B,0xD0,0x0E,0x21,0x69,0x43,0x04,0x9A,0x09,0x19,0x89,0x00,0x51,0x58,0x09,0x05, + 0x09,0x0D,0x08,0x1A,0x01,0x1E,0x00,0xDC,0x41,0x42,0x00,0x28,0x01,0xDB,0x01,0x98, + 0x00,0xE0,0x00,0x98,0x81,0x42,0x01,0xDD,0x01,0x22,0x05,0x92,0x08,0x1A,0xB0,0x42, + 0x03,0xDD,0x06,0x00,0x2F,0x00,0x02,0x94,0x03,0x91,0x64,0x1C,0x0E,0x2C,0xDA,0xD3, + 0x6D,0x1C,0x15,0x2D,0xD6,0xD3,0x03,0x99,0x08,0x98,0x01,0x60,0x0E,0x48,0x00,0x69, + 0xC0,0x07,0x05,0xD0,0x07,0x99,0x02,0x98,0x08,0x60,0x06,0x98,0x07,0x60,0x04,0xE0, + 0x07,0x98,0x07,0x60,0x06,0x99,0x02,0x98,0x08,0x60,0x05,0x98,0x00,0x28,0x00,0xD0, + 0x04,0x20,0x09,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD4,0x02,0x10,0x40, + 0x78,0xEC,0xFF,0xFF,0x20,0x93,0x00,0x00,0x00,0x90,0x00,0x40,0x78,0x47,0xC0,0x46, + 0xF8,0xC0,0x9F,0xE5,0x00,0x00,0x9C,0xE5,0xF4,0x30,0x9F,0xE5,0xA6,0x04,0xD3,0xE5, + 0x01,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3,0xA7,0x14,0xD3,0x15,0x00,0x00,0xA0,0x13, + 0x00,0x00,0x51,0x13,0x1E,0xFF,0x2F,0x91,0xF0,0x03,0x2D,0xE9,0xD4,0x50,0x9F,0xE5, + 0xD4,0x60,0x9F,0xE5,0xD4,0x40,0x9F,0xE5,0xB7,0x70,0xA0,0xE3,0xEE,0x8E,0xA0,0xE3, + 0x0B,0x7C,0x87,0xE2,0x02,0x8A,0x88,0xE2,0xA6,0x24,0xD3,0xE5,0x00,0x10,0x83,0xE0, + 0xD5,0x14,0xD1,0xE5,0x02,0x00,0x12,0xE3,0xD4,0x24,0xD3,0xE5,0x82,0x21,0x62,0x00, + 0x82,0x10,0x81,0x00,0x81,0x11,0x61,0x10,0x81,0x10,0x82,0x10,0x00,0x20,0xD5,0xE5, + 0x00,0x00,0x52,0xE3,0x04,0x00,0x00,0x1A,0x01,0x11,0x9C,0xE7,0x80,0x20,0x83,0xE0, + 0x02,0x19,0xC1,0xE3,0xB0,0x11,0xC2,0xE1,0x03,0x00,0x00,0xEA,0x81,0x10,0x86,0xE0, + 0xB0,0x10,0xD1,0xE1,0x80,0x20,0x83,0xE0,0xB0,0x11,0xC2,0xE1,0x80,0x10,0x83,0xE0, + 0xB0,0x21,0xD1,0xE1,0x23,0x9C,0x42,0xE2,0x29,0x90,0x49,0xE2,0x07,0x00,0x59,0xE1, + 0x04,0x00,0x00,0x2A,0x02,0x21,0x82,0xE0,0x02,0x22,0xA0,0xE1,0x94,0x92,0x82,0xE0, + 0xA2,0x22,0xA0,0xE1,0xB0,0x21,0xC1,0xE1,0xB0,0x21,0xD1,0xE1,0x08,0x00,0x52,0xE1, + 0x04,0x00,0x00,0x3A,0x46,0x90,0xA0,0xE3,0x99,0x02,0x02,0xE0,0x94,0x92,0x82,0xE0, + 0xA2,0x22,0xA0,0xE1,0xB0,0x21,0xC1,0xE1,0xA7,0x14,0xD3,0xE5,0x01,0x00,0x80,0xE2, + 0x00,0x00,0x51,0xE1,0xD3,0xFF,0xFF,0x8A,0xF0,0x03,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x00,0x10,0x10,0x40,0x40,0x00,0x00,0x20,0x8C,0x05,0x00,0x20,0x08,0x07,0x00,0x20, + 0x1F,0x85,0xEB,0x51,0x03,0x49,0x30,0x20,0xC8,0x75,0x02,0x49,0x20,0x31,0x48,0x71, + 0x70,0x47,0x00,0x00,0x78,0x09,0x10,0x40,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x88,0x42,0x00,0xDA,0x08,0x00,0x70,0x47,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42, + 0x00,0xDA,0x10,0x00,0x70,0x47,0x10,0xB5,0x02,0x9C,0x88,0x42,0x00,0xDA,0x08,0x00, + 0x90,0x42,0x00,0xDA,0x10,0x00,0x22,0x00,0x19,0x00,0xFF,0xF7,0xED,0xFF,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x85,0xDF,0x4D,0xE2, + 0x00,0x00,0xA0,0xE3,0xF8,0x01,0x8D,0xE5,0x24,0x05,0x9F,0xE5,0x6C,0x60,0x8D,0xE2, + 0xBE,0x03,0x90,0xE8,0xBE,0x03,0x86,0xE8,0x18,0x05,0x9F,0xE5,0x69,0x20,0xA0,0xE3, + 0x00,0x00,0x90,0xE5,0x01,0x2C,0x82,0xE2,0xBC,0x45,0xD0,0xE1,0x62,0x50,0xD0,0xE5, + 0x04,0x05,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x00,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3, + 0x32,0x40,0xA0,0x13,0x8C,0x00,0x8D,0xE2,0xF6,0xEF,0xFF,0xEB,0xEC,0x04,0x9F,0xE5, + 0x08,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xF2,0xEF,0xFF,0xEB,0xE0,0x04,0x9F,0xE5, + 0x10,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xEE,0xEF,0xFF,0xEB,0x24,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x48,0x00,0x8D,0xE2,0xEA,0xEF,0xFF,0xEB,0x24,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x24,0x00,0x8D,0xE2,0xE6,0xEF,0xFF,0xEB,0x24,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x0D,0x00,0xA0,0xE1,0xE2,0xEF,0xFF,0xEB,0xA4,0x14,0x9F,0xE5, + 0x04,0x00,0xD1,0xE5,0x00,0x00,0x50,0xE3,0x85,0xDF,0x8D,0x02,0xF0,0x4F,0xBD,0x08, + 0x1E,0xFF,0x2F,0x01,0xB6,0x00,0xD1,0xE1,0x20,0x00,0x10,0xE3,0x05,0x00,0x44,0x10, + 0x00,0x48,0xA0,0x11,0xB8,0x00,0xD1,0xE1,0x24,0x48,0xA0,0x11,0x78,0x24,0x9F,0xE5, + 0x94,0x00,0x00,0xE0,0x92,0x30,0xC0,0xE0,0xC0,0x22,0xA0,0xE1,0xC0,0x0F,0x42,0xE0, + 0x68,0x24,0x9F,0xE5,0x00,0x40,0xA0,0xE3,0x10,0x22,0x8D,0xE5,0xBE,0x20,0xD1,0xE1, + 0x02,0x00,0x80,0xE0,0x10,0x22,0x9D,0xE5,0xBE,0x07,0xC2,0xE1,0x04,0x00,0xA0,0xE1, + 0x04,0x42,0x8D,0xE5,0x80,0x01,0x60,0xE0,0x00,0x70,0xA0,0xE3,0x0C,0x02,0x8D,0xE5, + 0x0C,0x12,0x9D,0xE5,0x00,0x00,0xA0,0xE3,0x81,0x20,0x87,0xE0,0x30,0x14,0x9F,0xE5, + 0x82,0xC0,0x81,0xE0,0x10,0x12,0x9D,0xE5,0xF0,0x30,0xDC,0xE1,0xFE,0x17,0xD1,0xE1, + 0x01,0x00,0x53,0xE1,0x01,0x00,0x43,0xC0,0x00,0x08,0xA0,0xC1,0x40,0x08,0xA0,0xC1, + 0x00,0x00,0x57,0xE3,0x06,0x00,0x00,0x1A,0x00,0x00,0x50,0xE3,0x83,0x00,0x00,0x0A, + 0x8C,0x00,0x8D,0xE2,0x02,0x00,0xD0,0xE7,0x00,0x00,0x50,0xE3,0x7F,0x00,0x00,0x1A, + 0x0C,0x00,0x00,0xEA,0xF2,0x30,0x5C,0xE1,0x01,0x00,0x53,0xE1,0x03,0x00,0x00,0xDA, + 0x01,0x10,0x43,0xE0,0x01,0x18,0xA0,0xE1,0x41,0x18,0xB0,0xE1,0x77,0x00,0x00,0x1A, + 0x00,0x00,0x50,0xE3,0x75,0x00,0x00,0x0A,0x8C,0x00,0x8D,0xE2,0x02,0x00,0xD0,0xE7, + 0x00,0x00,0x50,0xE3,0x71,0x00,0x00,0x1A,0x04,0x02,0x9D,0xE5,0x07,0x38,0xA0,0xE1, + 0x00,0xC8,0xA0,0xE1,0x01,0x00,0x84,0xE2,0x00,0x48,0xA0,0xE1,0x44,0x48,0xA0,0xE1, + 0x08,0x00,0x54,0xE3,0x43,0x38,0xA0,0xE1,0x4C,0xC8,0xA0,0xE1,0x04,0x10,0xA0,0xE3, + 0x00,0x60,0xA0,0xD3,0x00,0x32,0x8D,0xE5,0xFC,0xC1,0x8D,0xE5,0x03,0x00,0x00,0xDA, + 0x01,0x00,0x44,0xE2,0x00,0x48,0xA0,0xE1,0x44,0x48,0xA0,0xE1,0x6A,0x00,0x00,0xEA, + 0x04,0x0C,0xA0,0xE1,0x40,0x0C,0xA0,0xE1,0x08,0x02,0x8D,0xE5,0x54,0x03,0x9F,0xE5, + 0x84,0x00,0x80,0xE0,0x01,0xAC,0x80,0xE2,0x01,0x00,0x86,0xE2,0x00,0x68,0xA0,0xE1, + 0x46,0x68,0xA0,0xE1,0x09,0x0D,0x56,0xE3,0x00,0x80,0xA0,0xE3,0x53,0x00,0x00,0xCA, + 0x10,0x02,0x9D,0xE5,0x00,0x90,0xA0,0xE3,0xFE,0x57,0xD0,0xE1,0x6C,0x00,0x8D,0xE2, + 0x01,0x01,0x80,0xE0,0xB2,0x20,0xD0,0xE1,0xB0,0x00,0xD0,0xE1,0x0C,0x20,0x82,0xE0, + 0x02,0x28,0xA0,0xE1,0x03,0x00,0x80,0xE0,0x42,0x28,0xA0,0xE1,0x00,0x08,0xA0,0xE1, + 0x15,0x00,0x52,0xE3,0x40,0x08,0xA0,0xE1,0x15,0x00,0x00,0x2A,0x00,0x00,0x50,0xE3, + 0x13,0x00,0x00,0xBA,0x0E,0x00,0x50,0xE3,0x11,0x00,0x00,0xAA,0xF0,0xE2,0x9F,0xE5, + 0x82,0xB1,0x62,0xE0,0x8B,0xB0,0x80,0xE0,0x8B,0xE0,0x8E,0xE0,0xF0,0xE0,0xDE,0xE1, + 0x05,0x00,0x5E,0xE1,0x0A,0x00,0x00,0xDA,0x8C,0xE0,0x8D,0xE2,0xDB,0xB0,0x9E,0xE1, + 0x04,0x00,0x5B,0xE1,0x00,0x00,0x5B,0x13,0x05,0x00,0x00,0x1A,0xFC,0x91,0x9D,0xE5, + 0x09,0x00,0x52,0xE1,0x00,0x92,0x9D,0x05,0x09,0x00,0x50,0x01,0x01,0x80,0xA0,0x13, + 0x04,0x00,0x00,0xEA,0x01,0x90,0x89,0xE2,0x01,0x10,0x81,0xE2,0x08,0x00,0x59,0xE3, + 0x07,0x10,0x01,0xE2,0xD8,0xFF,0xFF,0xBA,0x8C,0x91,0x6C,0xE0,0x89,0x90,0x83,0xE0, + 0x8C,0xE0,0x8D,0xE2,0x09,0xB0,0xDE,0xE7,0x00,0x00,0x5B,0xE3,0x1C,0x00,0x00,0x1A, + 0x08,0xB2,0x9D,0xE5,0x09,0xB0,0xCE,0xE7,0x74,0xB2,0x9F,0xE5,0x48,0xE0,0x8D,0xE2, + 0x89,0x90,0x8B,0xE0,0xF0,0x90,0xD9,0xE1,0x04,0xB1,0x9E,0xE7,0x05,0x00,0x59,0xE1, + 0x05,0x50,0x49,0xC0,0x4C,0x92,0x9F,0xE5,0x05,0x58,0xA0,0xC1,0x83,0x30,0x89,0xE0, + 0xB0,0x32,0xD3,0xE1,0x00,0x50,0xA0,0xD3,0x25,0x58,0xA0,0xC1,0x95,0xB3,0x23,0xE0, + 0x04,0x31,0x8E,0xE7,0x8C,0xC0,0x89,0xE0,0xB4,0xC5,0xDC,0xE1,0x24,0x30,0x8D,0xE2, + 0x04,0xB1,0x93,0xE7,0x95,0xBC,0x2C,0xE0,0x04,0xC1,0x83,0xE7,0x04,0xC1,0x9D,0xE7, + 0x05,0xC0,0x8C,0xE0,0x04,0xC1,0x8D,0xE7,0xBE,0x36,0xDA,0xE1,0x01,0x30,0x83,0xE2, + 0xBE,0x36,0xCA,0xE1,0x00,0x00,0x58,0xE3,0x04,0x00,0x00,0x0A,0xFF,0x30,0x00,0xE2, + 0x05,0x00,0x81,0xE2,0xFF,0xC0,0x02,0xE2,0x07,0x10,0x00,0xE2,0xA5,0xFF,0xFF,0xEA, + 0x01,0x70,0x87,0xE2,0x0E,0x00,0x57,0xE3,0x68,0xFF,0xFF,0xBA,0xF8,0x01,0x9D,0xE5, + 0x00,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0x04,0x02,0x9D,0xE5,0x01,0x00,0x80,0xE2, + 0x15,0x00,0x50,0xE3,0x04,0x02,0x8D,0xE5,0x5D,0xFF,0xFF,0xBA,0x00,0x00,0x54,0xE3, + 0x49,0x00,0x00,0xDA,0xAC,0x51,0x9F,0xE5,0x00,0x30,0xA0,0xE3,0x48,0x60,0x8D,0xE2, + 0x24,0xE0,0x8D,0xE2,0x00,0x20,0xA0,0xE3,0x83,0xA0,0x85,0xE0,0x83,0xB1,0x63,0xE0, + 0x9C,0x01,0x9F,0xE5,0x8B,0xC0,0x82,0xE0,0x8C,0x70,0x80,0xE0,0x10,0x02,0x9D,0xE5, + 0xF2,0x70,0xD7,0xE1,0xFE,0x07,0xD0,0xE1,0x00,0x10,0xA0,0xE3,0x00,0x00,0x57,0xE1, + 0x00,0x00,0x47,0xC0,0x00,0x18,0xA0,0xC1,0x8C,0x70,0x8D,0xE2,0xDC,0x00,0x97,0xE1, + 0x07,0xC0,0x8C,0xE0,0x01,0x70,0xDC,0xE5,0x41,0x18,0xA0,0xC1,0x00,0x00,0x57,0xE3, + 0x14,0x00,0x00,0x1A,0x00,0x00,0x51,0xE3,0x00,0x00,0x50,0x13,0x11,0x00,0x00,0x0A, + 0x82,0x80,0x85,0xE0,0xB2,0x82,0xD8,0xE1,0x00,0x71,0x96,0xE7,0x91,0x78,0x27,0xE0, + 0x00,0x71,0x86,0xE7,0xB4,0x85,0xDA,0xE1,0x00,0x71,0x9E,0xE7,0x91,0x78,0x27,0xE0, + 0x00,0x71,0x8E,0xE7,0x00,0x81,0x9D,0xE7,0x08,0x10,0x81,0xE0,0x00,0x11,0x8D,0xE7, + 0x80,0x10,0x85,0xE0,0x01,0x1C,0x81,0xE2,0xBE,0x76,0xD1,0xE1,0x01,0x70,0x87,0xE2, + 0xBE,0x76,0xC1,0xE1,0x01,0x00,0xCC,0xE5,0x01,0x20,0x82,0xE2,0x0E,0x00,0x52,0xE3, + 0xD6,0xFF,0xFF,0xBA,0x01,0x30,0x83,0xE2,0x15,0x00,0x53,0xE3,0xD0,0xFF,0xFF,0xBA, + 0x01,0x00,0x54,0xE3,0x01,0x70,0xA0,0xE3,0x13,0x00,0x00,0xBA,0x0D,0x90,0xA0,0xE1, + 0x0E,0xA0,0xA0,0xE1,0x07,0x81,0x99,0xE7,0x07,0x01,0x96,0xE7,0x00,0x00,0x58,0xE3, + 0x01,0x10,0xA0,0x03,0x08,0x10,0xA0,0x11,0xCA,0xEE,0xFF,0xEB,0x87,0x10,0x85,0xE0, + 0x01,0xBC,0x81,0xE2,0x00,0x00,0x58,0xE3,0xB6,0x04,0xCB,0xE1,0x07,0x01,0x9A,0xE7, + 0x01,0x10,0xA0,0x03,0x08,0x10,0xA0,0x11,0xC2,0xEE,0xFF,0xEB,0x01,0x70,0x87,0xE2, + 0x04,0x00,0x57,0xE1,0xB6,0x05,0xCB,0xE1,0xED,0xFF,0xFF,0xDA,0x84,0x30,0x9F,0xE5, + 0x04,0x00,0xD3,0xE5,0x01,0x00,0x50,0xE3,0x85,0xDF,0x8D,0xB2,0xF0,0x4F,0xBD,0xB8, + 0x1E,0xFF,0x2F,0xB1,0x8C,0xC0,0x8D,0xE2,0x00,0x11,0x83,0xE0,0x01,0x2C,0x81,0xE2, + 0xF6,0x11,0xD2,0xE1,0xF4,0x21,0xD2,0xE1,0x81,0x11,0x61,0xE0,0x81,0x10,0x82,0xE0, + 0x01,0x10,0xDC,0xE7,0x00,0x20,0x83,0xE0,0x01,0x00,0x40,0xE2,0x65,0x11,0xC2,0xE5, + 0x81,0x10,0x83,0xE0,0x01,0x1C,0x81,0xE2,0xBE,0x16,0xD1,0xE1,0xFF,0x10,0x01,0xE2, + 0x38,0x11,0xC2,0xE5,0xBC,0x21,0xD3,0xE1,0x02,0x00,0x51,0xE1,0xBC,0x11,0xC3,0x81, + 0x01,0x00,0x50,0xE3,0xEB,0xFF,0xFF,0xAA,0x85,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0xF8,0x8F,0x00,0x00,0xF0,0x06,0x00,0x20,0xA3,0x05,0x00,0x20, + 0xA6,0x01,0x00,0x20,0xAE,0x01,0x00,0x20,0x40,0x00,0x00,0x20,0x1F,0x85,0xEB,0x51, + 0x40,0x01,0x00,0x20,0x00,0x00,0x00,0x10,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9, + 0x00,0x00,0xA0,0xE3,0x5B,0xDF,0x4D,0xE2,0x00,0x10,0xA0,0xE1,0x18,0x00,0x8D,0xE5, + 0x14,0x00,0x8D,0xE5,0x0C,0x00,0x8D,0xE5,0x08,0x00,0x8D,0xE5,0x2E,0x20,0xA0,0xE3, + 0x34,0x00,0x8D,0xE2,0xA7,0xEE,0xFF,0xEB,0x9C,0x9F,0x9F,0xE5,0x0F,0x0A,0xE0,0xE3, + 0x00,0x80,0xA0,0xE3,0xB8,0x00,0xC9,0xE1,0xBC,0x80,0xC9,0xE1,0xBA,0x8E,0xC9,0xE1, + 0x81,0x11,0xD9,0xE5,0x84,0x7F,0x9F,0xE5,0x05,0x0C,0x89,0xE2,0x02,0x00,0x51,0xE3, + 0x00,0x10,0x97,0x85,0xB2,0x12,0xD1,0x81,0x0B,0x00,0x00,0x8A,0x00,0x10,0x97,0x05, + 0xB6,0x24,0xD0,0x01,0xB0,0x12,0xD1,0x01,0x06,0x00,0x00,0x0A,0x60,0x1F,0x9F,0xE5, + 0x00,0x10,0xD1,0xE5,0x00,0x00,0x51,0xE3,0x38,0x00,0x00,0x0A,0x54,0x1F,0x9F,0xE5, + 0xB4,0x24,0xD0,0xE1,0xBC,0x1A,0xD1,0xE1,0x02,0x10,0x81,0xE0,0x10,0x10,0x8D,0xE5, + 0x44,0x1F,0x9F,0xE5,0x68,0x11,0x8D,0xE5,0xB4,0x24,0xD1,0xE1,0x10,0x10,0x9D,0xE5, + 0xB8,0x04,0xD0,0xE1,0x02,0x10,0x81,0xE0,0x00,0x20,0x97,0xE5,0xA6,0xC4,0xD9,0xE5, + 0xBA,0x34,0xD2,0xE1,0xFE,0x60,0xD9,0xE1,0x03,0x00,0x80,0xE0,0x01,0x00,0x50,0xE1, + 0x01,0x30,0xA0,0xE1,0x01,0x00,0x1C,0xE3,0x00,0x10,0xA0,0x31,0x03,0x00,0x00,0x0A, + 0x02,0x00,0x1C,0xE3,0x02,0xC0,0xA0,0x03,0x01,0xC0,0xA0,0x13,0x08,0xC0,0x8D,0xE5, + 0xF8,0x4E,0x9F,0xE5,0xF8,0xAE,0x9F,0xE5,0x64,0x41,0x8D,0xE5,0xB4,0x89,0xC4,0xE1, + 0xBA,0x40,0xD9,0xE1,0x4E,0xC0,0xD2,0xE5,0x01,0x18,0xA0,0xE1,0x00,0x08,0xA0,0xE1, + 0x94,0x0C,0x0C,0xE0,0x9A,0x4C,0x8C,0xE0,0x64,0x41,0x9D,0xE5,0x8C,0xC5,0xA0,0xE1, + 0x4C,0xC8,0xA0,0xE1,0xB6,0xC9,0xC4,0xE1,0xBC,0x44,0xD2,0xE1,0x41,0x18,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x04,0x00,0x5C,0xE1,0xBC,0x24,0xD2,0xB1,0x64,0xC1,0x9D,0xB5, + 0x00,0x50,0xA0,0xE3,0xB6,0x29,0xCC,0xB1,0xA8,0x2E,0x9F,0xE5,0xA8,0xCE,0x9F,0xE5, + 0x00,0x80,0x82,0xE5,0x57,0x2F,0x8D,0xE2,0x00,0x80,0x8C,0xE5,0x03,0x00,0x82,0xE8, + 0x03,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x58,0x01,0x8D,0xE5,0x04,0x00,0x00,0xEA, + 0x00,0x10,0x97,0xE5,0xBE,0x21,0xD1,0xE1,0xB4,0x14,0xD0,0xE1,0x02,0x10,0x81,0xE0, + 0xC5,0xFF,0xFF,0xEA,0x85,0x01,0x65,0xE0,0x54,0x01,0x8D,0xE5,0x48,0x0E,0x9F,0xE5, + 0x00,0x40,0xA0,0xE3,0x85,0x00,0x80,0xE0,0x50,0x01,0x8D,0xE5,0x54,0x01,0x9D,0xE5, + 0x58,0x2E,0x9F,0xE5,0x80,0x00,0x84,0xE0,0x00,0x38,0xA0,0xE1,0x64,0x11,0x9D,0xE5, + 0x43,0x38,0xA0,0xE1,0x83,0x00,0x82,0xE0,0xF0,0x00,0xD0,0xE1,0xF6,0x19,0xD1,0xE1, + 0x01,0x00,0x50,0xE1,0x04,0x00,0x00,0xDA,0x64,0x11,0x9D,0xE5,0x64,0xC1,0x9D,0xE5, + 0xB4,0x19,0xD1,0xE1,0x01,0x10,0x81,0xE2,0xB4,0x19,0xCC,0xE1,0x00,0x00,0x50,0xE3, + 0x03,0x00,0x00,0xDA,0x18,0x1E,0x9F,0xE5,0xB0,0x00,0xD1,0xE1,0x01,0x00,0x80,0xE2, + 0xB0,0x00,0xC1,0xE1,0x0C,0xBE,0x9F,0xE5,0x83,0x00,0x8B,0xE0,0xF0,0xA0,0xD0,0xE1, + 0x60,0x01,0x9D,0xE5,0x00,0x00,0x5A,0xE1,0xAB,0x03,0x00,0xBA,0x00,0x00,0x55,0xE3, + 0x00,0x00,0xA0,0xE3,0x15,0x00,0x00,0xDA,0x34,0x20,0x8D,0xE2,0x0E,0x00,0x43,0xE2, + 0xC0,0x11,0xD2,0xE7,0x07,0x00,0x00,0xE2,0x01,0xC0,0xA0,0xE3,0x1C,0x00,0x01,0xE0, + 0x00,0x00,0x54,0xE3,0x05,0x00,0x00,0xDA,0x0F,0x10,0x43,0xE2,0xC1,0x71,0xD2,0xE7, + 0x07,0x10,0x01,0xE2,0x1C,0x11,0x07,0xE0,0x01,0x00,0x80,0xE0,0xFF,0x00,0x00,0xE2, + 0x0D,0x00,0x54,0xE3,0x07,0x00,0x00,0xAA,0x0D,0x10,0x43,0xE2,0xC1,0x21,0xD2,0xE7, + 0x07,0x10,0x01,0xE2,0x1C,0x11,0x02,0xE0,0x01,0x00,0x80,0xE0,0xFF,0x00,0x00,0xE2, + 0x00,0x00,0x54,0xE3,0x07,0x00,0x00,0xDA,0x34,0x20,0x8D,0xE2,0x01,0x10,0x43,0xE2, + 0xC1,0x21,0xD2,0xE7,0x07,0x10,0x01,0xE2,0x01,0xC0,0xA0,0xE3,0x1C,0x11,0x02,0xE0, + 0x01,0x00,0x80,0xE0,0xFF,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3,0x86,0x03,0x00,0x1A, + 0x00,0xC0,0xA0,0xE3,0x0C,0x70,0xA0,0xE1,0x0E,0x90,0xA0,0xE3,0x00,0x00,0xA0,0xE3, + 0x07,0x80,0x85,0xE0,0x00,0x10,0x84,0xE0,0x01,0x20,0x58,0xE2,0x01,0x10,0x41,0xE2, + 0x0B,0x00,0x00,0x4A,0x15,0x00,0x52,0xE3,0x09,0x00,0x00,0xCA,0x00,0x00,0x51,0xE3, + 0x07,0x00,0x00,0xBA,0x0E,0x00,0x51,0xE3,0x0E,0x90,0xA0,0xE3,0x04,0x00,0x00,0xCA, + 0x92,0x19,0x21,0xE0,0x81,0x10,0x8B,0xE0,0xF0,0x10,0xD1,0xE1,0x0C,0x00,0x51,0xE1, + 0x01,0xC0,0xA0,0xC1,0x01,0x00,0x80,0xE2,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x03,0x00,0x50,0xE3,0xEA,0xFF,0xFF,0xBA,0x01,0x00,0x87,0xE2,0x00,0x78,0xA0,0xE1, + 0x47,0x78,0xA0,0xE1,0x03,0x00,0x57,0xE3,0xE3,0xFF,0xFF,0xBA,0x0C,0x08,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x00,0x00,0x5A,0xE1,0x63,0x03,0x00,0x1A,0xA8,0x1C,0x9F,0xE5, + 0xBC,0x10,0xD1,0xE1,0x00,0x00,0x51,0xE1,0x05,0x00,0x00,0xCA,0x98,0x1C,0x9F,0xE5, + 0xBC,0x00,0xC1,0xE1,0x04,0x00,0xD1,0xE5,0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2, + 0x18,0x00,0x8D,0xE5,0x34,0x10,0x8D,0xE2,0xC3,0x21,0xD1,0xE7,0x07,0xC0,0x03,0xE2, + 0x01,0x00,0xA0,0xE3,0x10,0x0C,0x82,0xE1,0xC3,0x01,0xC1,0xE7,0x08,0x00,0x9D,0xE5, + 0x00,0x70,0xA0,0xE3,0x01,0x00,0x10,0xE3,0x05,0x00,0x00,0x0A,0x0D,0x00,0x54,0xE3, + 0x0D,0x70,0xA0,0x03,0x07,0x00,0x00,0x0A,0x0C,0x00,0x54,0xE3,0x03,0x77,0x87,0x03, + 0x04,0x00,0x00,0xEA,0x14,0x00,0x55,0xE3,0x14,0x70,0xA0,0x03,0x01,0x00,0x00,0x0A, + 0x13,0x00,0x55,0xE3,0x13,0x78,0x87,0x03,0x07,0x08,0xB0,0xE1,0x03,0x00,0x00,0x0A, + 0x5C,0x01,0x9D,0xE5,0x00,0x00,0x5A,0xE1,0x3F,0x03,0x00,0xBA,0x02,0x00,0x00,0xEA, + 0x58,0x01,0x9D,0xE5,0x00,0x00,0x5A,0xE1,0x3B,0x03,0x00,0xBA,0x0C,0x0C,0x9F,0xE5, + 0x00,0x30,0xA0,0xE3,0x00,0x90,0x90,0xE5,0x03,0x10,0x85,0xE0,0x02,0xB0,0x41,0xE2, + 0x03,0x11,0x83,0xE0,0x0B,0xCC,0xA0,0xE1,0xEC,0x20,0x8D,0xE2,0x4C,0xCC,0xA0,0xE1, + 0x88,0x80,0x8D,0xE2,0x00,0x00,0xA0,0xE3,0x01,0x21,0x82,0xE0,0x8C,0xC1,0x6C,0xE0, + 0x01,0x81,0x88,0xE0,0x00,0x10,0x84,0xE0,0x0B,0xAC,0xA0,0xE1,0x02,0x10,0x41,0xE2, + 0x4A,0xAC,0xA0,0xE1,0x01,0x1C,0xA0,0xE1,0x15,0x00,0x5A,0xE3,0x41,0x1C,0xA0,0xE1, + 0x03,0x00,0x00,0x2A,0x00,0x00,0x51,0xE3,0x01,0x00,0x00,0xBA,0x0E,0x00,0x51,0xE3, + 0x02,0x00,0x00,0xBA,0x00,0x10,0xA0,0xE3,0x00,0x11,0x82,0xE7,0x23,0x00,0x00,0xEA, + 0xB0,0xA0,0xD9,0xE1,0x01,0x09,0x1A,0xE3,0x8C,0xA0,0x81,0xE0,0x05,0x00,0x00,0x0A, + 0xB0,0xEB,0x9F,0xE5,0x8A,0xA0,0x8E,0xE0,0xF0,0xA0,0xDA,0xE1,0x06,0xA0,0x4A,0xE0, + 0x00,0xA1,0x82,0xE7,0x04,0x00,0x00,0xEA,0x90,0xEB,0x9F,0xE5,0x8A,0xA0,0x8E,0xE0, + 0xF0,0xA0,0xDA,0xE1,0x06,0xA0,0x4A,0xE0,0x00,0xA1,0x82,0xE7,0x00,0x00,0x5A,0xE3, + 0x00,0xA0,0xA0,0xB3,0x00,0xA1,0x82,0xB7,0xB0,0xA0,0xD9,0xE1,0x8C,0x10,0x81,0xE0, + 0x02,0x09,0x1A,0xE3,0x05,0x00,0x00,0x0A,0x68,0xAB,0x9F,0xE5,0x81,0x10,0x8A,0xE0, + 0xF0,0x10,0xD1,0xE1,0x06,0x10,0x41,0xE0,0x00,0x11,0x88,0xE7,0x04,0x00,0x00,0xEA, + 0x48,0xAB,0x9F,0xE5,0x81,0x10,0x8A,0xE0,0xF0,0x10,0xD1,0xE1,0x06,0x10,0x41,0xE0, + 0x00,0x11,0x88,0xE7,0x00,0x00,0x51,0xE3,0x00,0x10,0xA0,0xB3,0x00,0x11,0x88,0xB7, + 0x01,0x00,0x80,0xE2,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x05,0x00,0x50,0xE3, + 0xC7,0xFF,0xFF,0xBA,0x01,0x00,0x83,0xE2,0x00,0x38,0xA0,0xE1,0x43,0x38,0xA0,0xE1, + 0x05,0x00,0x53,0xE3,0xB7,0xFF,0xFF,0xBA,0x0C,0x0B,0x9F,0xE5,0x00,0x00,0xD0,0xE5, + 0x00,0x00,0x50,0xE3,0xBE,0x00,0x00,0x1A,0x00,0x0B,0x9F,0xE5,0x00,0x20,0xD0,0xE5, + 0x00,0x00,0x52,0xE3,0x16,0x00,0x00,0x0A,0x01,0x00,0x44,0xE2,0x02,0x00,0x50,0xE3, + 0x04,0x00,0x00,0x8A,0x04,0x00,0x55,0xE3,0x05,0x00,0x55,0x13,0xE0,0x1A,0x9F,0x05, + 0x01,0x00,0xA0,0x03,0x00,0x00,0xC1,0x05,0x09,0x00,0x44,0xE2,0x02,0x00,0x50,0xE3, + 0x04,0x00,0x00,0x8A,0x04,0x00,0x55,0xE3,0x05,0x00,0x55,0x13,0xC4,0x0A,0x9F,0x05, + 0x01,0x10,0xA0,0x03,0x00,0x10,0xC0,0x05,0xB4,0x0A,0x9F,0xE5,0x00,0x00,0xD0,0xE5, + 0x00,0x00,0x50,0xE3,0xAC,0x0A,0x9F,0x05,0x00,0x00,0xD0,0x05,0x00,0x00,0x50,0x03, + 0xD1,0x02,0x00,0x0A,0x11,0x00,0x55,0xE3,0x12,0x00,0x55,0x13,0x2F,0x00,0x00,0x1A, + 0x00,0x00,0x54,0xE3,0x01,0x00,0x54,0x13,0x2C,0x00,0x00,0x1A,0x88,0x0A,0x9F,0xE5, + 0x00,0x00,0x90,0xE5,0xC8,0x00,0x50,0xE3,0x80,0x0A,0x9F,0x35,0x00,0x00,0x90,0x35, + 0xC8,0x00,0x50,0x33,0x78,0x0A,0x9F,0x35,0x00,0x00,0x90,0x35,0xC8,0x00,0x50,0x33, + 0x22,0x00,0x00,0x2A,0x6C,0x0A,0x9F,0xE5,0x1C,0x31,0x9D,0xE5,0x00,0x10,0x90,0xE5, + 0x01,0x00,0x43,0xE0,0x00,0x00,0x50,0xE3,0x03,0x00,0x41,0xD0,0xC8,0x00,0x50,0xE3, + 0x1A,0x00,0x00,0xAA,0x50,0x1A,0x9F,0xE5,0x00,0x10,0x91,0xE5,0x01,0x00,0x43,0xE0, + 0x00,0x00,0x50,0xE3,0x03,0x00,0x41,0xD0,0xC8,0x00,0x50,0xE3,0x13,0x00,0x00,0xAA, + 0x38,0x0A,0x9F,0xE5,0x00,0x00,0x90,0xE5,0xC0,0x1F,0xA0,0xE1,0x21,0x1F,0x80,0xE0, + 0x41,0x01,0x43,0xE0,0x00,0x00,0x50,0xE3,0x41,0x01,0x63,0xD0,0xC8,0x00,0x50,0xE3, + 0x0A,0x00,0x00,0xAA,0x64,0x00,0x53,0xE3,0x03,0x00,0xA0,0xE1,0x07,0x00,0x00,0xDA, + 0xFA,0x00,0x50,0xE3,0x05,0x00,0x00,0xAA,0x04,0x0A,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0x32,0x00,0x50,0xE3,0xBC,0x19,0x9F,0x35,0x01,0x00,0xA0,0x33,0x00,0x00,0x81,0x35, + 0xF0,0x09,0x9F,0xE5,0xEE,0x1F,0xA0,0xE3,0x00,0x00,0x90,0xE5,0x02,0x1B,0x81,0xE2, + 0x01,0x00,0x50,0xE1,0x0A,0x00,0x00,0x9A,0x11,0x00,0x55,0xE3,0x12,0x00,0x55,0x13, + 0x13,0x00,0x55,0x13,0x06,0x00,0x00,0x1A,0x0C,0x00,0x54,0xE3,0x04,0x00,0x00,0x1A, + 0x1C,0x01,0x9D,0xE5,0x4B,0x0F,0x50,0xE3,0x7C,0x19,0x9F,0xB5,0x01,0x00,0xA0,0xB3, + 0x00,0x00,0x81,0xB5,0x13,0x00,0x55,0xE3,0x14,0x00,0x55,0x13,0x2F,0x00,0x00,0x1A, + 0x0B,0x00,0x54,0xE3,0x0C,0x00,0x54,0x13,0x2C,0x00,0x00,0x1A,0x98,0x09,0x9F,0xE5, + 0x00,0x00,0x90,0xE5,0x96,0x00,0x50,0xE3,0x90,0x09,0x9F,0x35,0x00,0x00,0x90,0x35, + 0x96,0x00,0x50,0x33,0x68,0x09,0x9F,0x35,0x00,0x00,0x90,0x35,0xC8,0x00,0x50,0x33, + 0x22,0x00,0x00,0x2A,0x78,0x09,0x9F,0xE5,0x1C,0x31,0x9D,0xE5,0x00,0x10,0x90,0xE5, + 0x01,0x00,0x43,0xE0,0x00,0x00,0x50,0xE3,0x03,0x00,0x41,0xD0,0x96,0x00,0x50,0xE3, + 0x1A,0x00,0x00,0xAA,0x5C,0x09,0x9F,0xE5,0x00,0x10,0x90,0xE5,0x01,0x00,0x43,0xE0, + 0x00,0x00,0x50,0xE3,0x03,0x00,0x41,0xD0,0x96,0x00,0x50,0xE3,0x13,0x00,0x00,0xAA, + 0x44,0x09,0x9F,0xE5,0x00,0x00,0x90,0xE5,0xC0,0x1F,0xA0,0xE1,0x21,0x1F,0x80,0xE0, + 0x41,0x01,0x43,0xE0,0x00,0x00,0x50,0xE3,0x41,0x01,0x63,0xD0,0x96,0x00,0x50,0xE3, + 0x0A,0x00,0x00,0xAA,0x64,0x00,0x53,0xE3,0x03,0x00,0xA0,0xE1,0x07,0x00,0x00,0xDA, + 0xC8,0x00,0x50,0xE3,0x05,0x00,0x00,0xAA,0x10,0x09,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0x32,0x00,0x50,0xE3,0xB0,0x18,0x9F,0x35,0x01,0x00,0xA0,0x33,0x00,0x00,0x81,0x35, + 0x11,0x00,0x55,0xE3,0x0E,0x00,0x00,0xBA,0x00,0x00,0x54,0xE3,0x0C,0x00,0x54,0x13, + 0x0B,0x00,0x00,0x1A,0xE8,0x08,0x9F,0xE5,0x00,0x00,0x90,0xE5,0x4B,0x0F,0x50,0xE3, + 0x07,0x00,0x00,0x3A,0x1C,0x01,0x9D,0xE5,0x4B,0x0F,0x50,0xE3,0x04,0x00,0x00,0xAA, + 0x70,0x18,0x9F,0xE5,0x01,0x00,0xA0,0xE3,0x00,0x00,0x81,0xE5,0x68,0x18,0x9F,0xE5, + 0x00,0x00,0x81,0xE5,0x00,0x00,0x52,0xE3,0x09,0x00,0x00,0x1A,0x54,0x08,0x9F,0xE5, + 0x54,0x18,0x9F,0xE5,0x00,0x00,0x90,0xE5,0x00,0x10,0x91,0xE5,0x01,0x00,0x80,0xE1, + 0x00,0x00,0x50,0xE3,0x9C,0x08,0x9F,0x15,0xB0,0x00,0xD0,0x11,0xAF,0x0F,0x50,0x13, + 0x3D,0x02,0x00,0x3A,0x12,0x00,0x55,0xE3,0x05,0x00,0x00,0x1A,0x00,0x00,0x54,0xE3, + 0x01,0x00,0x54,0x13,0x0A,0x00,0x00,0x1A,0x7C,0x18,0x9F,0xE5,0x01,0x00,0xA0,0xE3, + 0x06,0x00,0x00,0xEA,0x13,0x00,0x55,0xE3,0x05,0x00,0x00,0x1A,0x0B,0x00,0x54,0xE3, + 0x0C,0x00,0x54,0x13,0x02,0x00,0x00,0x1A,0x60,0x18,0x9F,0xE5,0x01,0x00,0xA0,0xE3, + 0x00,0x00,0x81,0xE5,0x12,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x64,0x00,0x8D,0xE2, + 0xB0,0xEC,0xFF,0xEB,0xA0,0x00,0x9D,0xE5,0xC0,0x17,0x9F,0xE5,0x64,0x00,0x8D,0xE5, + 0xA4,0x00,0x9D,0xE5,0xC8,0x37,0x9F,0xE5,0x68,0x00,0x8D,0xE5,0xA8,0x00,0x9D,0xE5, + 0x00,0x00,0x54,0xE3,0x6C,0x00,0x8D,0xE5,0xB4,0x00,0x9D,0xE5,0x70,0x00,0x8D,0xE5, + 0xBC,0x00,0x9D,0xE5,0x78,0x00,0x8D,0xE5,0xC8,0x00,0x9D,0xE5,0x7C,0x00,0x8D,0xE5, + 0xCC,0x00,0x9D,0xE5,0x80,0x00,0x8D,0xE5,0xD0,0x00,0x9D,0xE5,0x84,0x00,0x8D,0xE5, + 0x00,0x10,0x91,0xE5,0xB8,0x00,0x9D,0xE5,0xBC,0x11,0xD1,0xE1,0x91,0x00,0x00,0xE0, + 0x93,0x10,0xC0,0xE0,0xC0,0x12,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x74,0x00,0x8D,0xE5, + 0x0D,0x00,0x00,0x1A,0x42,0x1F,0x8D,0xE2,0x03,0x00,0x91,0xE8,0x1C,0x21,0x9D,0xE5, + 0x02,0x10,0x81,0xE0,0x80,0x00,0x81,0xE0,0x20,0x11,0x9D,0xE5,0x02,0x00,0x80,0xE0, + 0x01,0x00,0x80,0xE0,0x30,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x01,0x00,0x80,0xE0, + 0x34,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x1D,0x00,0x00,0xEA,0x41,0x1F,0x8D,0xE2, + 0x03,0x00,0x91,0xE8,0x0C,0x00,0x54,0xE3,0x01,0x00,0x80,0xE0,0x0A,0x00,0x00,0x1A, + 0x18,0x21,0x9D,0xE5,0x02,0x10,0x81,0xE0,0x01,0x00,0x80,0xE0,0x1C,0x11,0x9D,0xE5, + 0x01,0x00,0x80,0xE0,0x01,0x00,0x80,0xE0,0x2C,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0, + 0x30,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x0C,0x00,0x00,0xEA,0x0C,0x11,0x9D,0xE5, + 0x18,0x21,0x9D,0xE5,0x02,0x10,0x81,0xE0,0x01,0x00,0x80,0xE0,0x1C,0x11,0x9D,0xE5, + 0x01,0x00,0x80,0xE0,0x20,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x2C,0x11,0x9D,0xE5, + 0x01,0x00,0x80,0xE0,0x30,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x34,0x11,0x9D,0xE5, + 0x01,0x00,0x80,0xE0,0x28,0x17,0x9F,0xE5,0x91,0x20,0xC0,0xE0,0xC0,0x10,0xA0,0xE1, + 0xC0,0x0F,0x41,0xE0,0xC4,0x16,0x9F,0xE5,0x00,0x10,0xD1,0xE5,0x00,0x00,0x51,0xE3, + 0x89,0x00,0x00,0x1A,0x80,0x16,0x9F,0xE5,0xB6,0x10,0xD1,0xE1,0x40,0x00,0x11,0xE3, + 0x45,0x00,0x00,0x0A,0xEE,0x1F,0xA0,0xE3,0x02,0x1B,0x81,0xE2,0x01,0x00,0x50,0xE1, + 0xF0,0x26,0x9F,0xA5,0x06,0x10,0xA0,0xA3,0x00,0x10,0xC2,0xA5,0x20,0x00,0x00,0xAA, + 0x71,0x1F,0xA0,0xE3,0x02,0x1B,0x81,0xE2,0x01,0x00,0x50,0xE1,0xD4,0x26,0x9F,0xA5, + 0x05,0x10,0xA0,0xA3,0x00,0x10,0xC2,0xA5,0x1E,0x00,0x00,0xAA,0x7D,0x0E,0x50,0xE3, + 0xC0,0x16,0x9F,0xA5,0x04,0x00,0xA0,0xA3,0x00,0x00,0xC1,0xA5,0x72,0x00,0x00,0xAA, + 0x77,0x1F,0xA0,0xE3,0x01,0x1B,0x81,0xE2,0x01,0x00,0x50,0xE1,0xA4,0x26,0x9F,0xA5, + 0x03,0x10,0xA0,0xA3,0x00,0x10,0xC2,0xA5,0x1E,0x00,0x00,0xAA,0xFA,0x0F,0x50,0xE3, + 0x90,0x26,0x9F,0xA5,0x02,0x10,0xA0,0xA3,0x00,0x10,0xC2,0xA5,0x1E,0x00,0x00,0xAA, + 0x7D,0x0F,0x50,0xE3,0x7C,0x26,0x9F,0xA5,0x01,0x10,0xA0,0xA3,0x00,0x10,0xC2,0xA5, + 0x1E,0x00,0x00,0xAA,0x6C,0x16,0x9F,0xE5,0x00,0x10,0xD1,0xE5,0x06,0x00,0x51,0xE3, + 0x02,0x00,0x00,0x1A,0xFA,0x0F,0x50,0xE3,0xAB,0x01,0x00,0xBA,0x5A,0x00,0x00,0xEA, + 0x05,0x00,0x51,0xE3,0x04,0x00,0x00,0x1A,0xEE,0x10,0xA0,0xE3,0x02,0x1C,0x81,0xE2, + 0x01,0x00,0x50,0xE1,0xA4,0x01,0x00,0xBA,0x53,0x00,0x00,0xEA,0x04,0x00,0x51,0xE3, + 0x02,0x00,0x00,0x1A,0x7D,0x0F,0x50,0xE3,0x9F,0x01,0x00,0xBA,0x4E,0x00,0x00,0xEA, + 0x03,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0xFA,0x00,0x50,0xE3,0x9A,0x01,0x00,0xBA, + 0x49,0x00,0x00,0xEA,0x02,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0x96,0x00,0x50,0xE3, + 0x95,0x01,0x00,0xBA,0x44,0x00,0x00,0xEA,0x01,0x00,0x51,0xE3,0x42,0x00,0x00,0x1A, + 0x4B,0x00,0x50,0xE3,0x90,0x01,0x00,0xBA,0x3F,0x00,0x00,0xEA,0x71,0x1F,0xA0,0xE3, + 0x02,0x1B,0x81,0xE2,0x01,0x00,0x50,0xE1,0xD8,0x25,0x9F,0xA5,0x06,0x10,0xA0,0xA3, + 0x00,0x10,0xC2,0xA5,0x1B,0x00,0x00,0xAA,0xD6,0x10,0xA0,0xE3,0x06,0x1C,0x81,0xE2, + 0x01,0x00,0x50,0xE1,0xBC,0x25,0x9F,0xA5,0x05,0x10,0xA0,0xA3,0x00,0x10,0xC2,0xA5, + 0x19,0x00,0x00,0xAA,0x6B,0x10,0xA0,0xE3,0x03,0x1C,0x81,0xE2,0x01,0x00,0x50,0xE1, + 0xA0,0x25,0x9F,0xA5,0x04,0x10,0xA0,0xA3,0x00,0x10,0xC2,0xA5,0x19,0x00,0x00,0xAA, + 0x7D,0x0F,0x50,0xE3,0x8C,0x05,0x9F,0xA5,0x03,0x10,0xA0,0xA3,0x00,0x10,0xC0,0xA5, + 0x25,0x00,0x00,0xAA,0x4B,0x0F,0x50,0xE3,0x78,0x25,0x9F,0xA5,0x02,0x10,0xA0,0xA3, + 0x00,0x10,0xC2,0xA5,0x19,0x00,0x00,0xAA,0x68,0x15,0x9F,0xE5,0x00,0x10,0xD1,0xE5, + 0x06,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0x7D,0x0F,0x50,0xE3,0x6A,0x01,0x00,0xBA, + 0x19,0x00,0x00,0xEA,0x05,0x00,0x51,0xE3,0x04,0x00,0x00,0x1A,0x5E,0x10,0xA0,0xE3, + 0x01,0x1C,0x81,0xE2,0x01,0x00,0x50,0xE1,0x63,0x01,0x00,0xBA,0x12,0x00,0x00,0xEA, + 0x04,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0xFA,0x00,0x50,0xE3,0x5E,0x01,0x00,0xBA, + 0x0D,0x00,0x00,0xEA,0x03,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0x96,0x00,0x50,0xE3, + 0x59,0x01,0x00,0xBA,0x08,0x00,0x00,0xEA,0x02,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A, + 0x64,0x00,0x50,0xE3,0x54,0x01,0x00,0xBA,0x03,0x00,0x00,0xEA,0x01,0x00,0x51,0xE3, + 0x01,0x00,0x00,0x1A,0x32,0x00,0x50,0xE3,0x4F,0x01,0x00,0xBA,0x14,0x00,0x55,0xE3, + 0x10,0x00,0x00,0x1A,0x01,0xCA,0xA0,0xE3,0x04,0x00,0xA0,0xE3,0x01,0xC0,0x4C,0xE2, + 0xEC,0x80,0x8D,0xE2,0x00,0x11,0x88,0xE0,0x28,0x20,0x91,0xE5,0x01,0x00,0x40,0xE2, + 0x02,0x24,0x62,0xE0,0x93,0x92,0xC2,0xE0,0xC2,0x92,0xA0,0xE1,0xC2,0x2F,0x49,0xE0, + 0x0C,0x00,0x52,0xE1,0x28,0x20,0x81,0xE5,0x00,0x08,0xA0,0xE1,0x28,0xC0,0x81,0xA5, + 0x40,0x08,0xB0,0xE1,0xF2,0xFF,0xFF,0x5A,0x00,0x00,0x57,0xE3,0x1F,0x00,0x00,0x0A, + 0x08,0x00,0x9D,0xE5,0x01,0x00,0x10,0xE3,0x04,0x00,0xA0,0xE3,0x0D,0x00,0x00,0x0A, + 0xEC,0x30,0x8D,0xE2,0x00,0x20,0xA0,0xE3,0x07,0x18,0xB0,0xE1,0x00,0x11,0x80,0xE0, + 0x01,0x21,0x83,0x17,0x01,0x11,0x83,0xE0,0x0C,0x20,0x81,0x05,0x01,0x00,0x40,0xE2, + 0x10,0x20,0x81,0x05,0x00,0x08,0xA0,0xE1,0x04,0x20,0x81,0x15,0x40,0x08,0xB0,0xE1, + 0xF4,0xFF,0xFF,0x5A,0x0D,0x00,0x00,0xEA,0xEC,0x30,0x8D,0xE2,0x00,0x20,0xA0,0xE3, + 0x07,0x18,0xB0,0xE1,0x00,0x11,0x83,0x10,0x00,0x21,0x83,0x17,0x14,0x20,0x81,0x15, + 0x02,0x00,0x00,0x1A,0x00,0x11,0x83,0xE0,0x3C,0x20,0x81,0xE5,0x50,0x20,0x81,0xE5, + 0x01,0x00,0x40,0xE2,0x00,0x08,0xA0,0xE1,0x40,0x08,0xB0,0xE1,0xF3,0xFF,0xFF,0x5A, + 0xA8,0xA3,0x9F,0xE5,0x00,0xC0,0xA0,0xE3,0x0C,0x70,0xA0,0xE1,0x0E,0x90,0xA0,0xE3, + 0x00,0x00,0xA0,0xE3,0x07,0x80,0x85,0xE0,0x00,0x10,0x84,0xE0,0x01,0x20,0x58,0xE2, + 0x01,0x10,0x41,0xE2,0x0A,0x00,0x00,0x4A,0x15,0x00,0x52,0xE3,0x08,0x00,0x00,0xCA, + 0x00,0x00,0x51,0xE3,0x06,0x00,0x00,0xBA,0x0E,0x00,0x51,0xE3,0x04,0x00,0x00,0xCA, + 0x92,0x19,0x21,0xE0,0x81,0x10,0x8A,0xE0,0xF0,0x30,0xD1,0xE1,0x0C,0x00,0x53,0xE1, + 0x03,0xC0,0xA0,0xC1,0x01,0x00,0x80,0xE2,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x03,0x00,0x50,0xE3,0xEB,0xFF,0xFF,0xBA,0x01,0x00,0x87,0xE2,0x00,0x78,0xA0,0xE1, + 0x47,0x78,0xA0,0xE1,0x03,0x00,0x57,0xE3,0xE4,0xFF,0xFF,0xBA,0x08,0x73,0x9F,0xE5, + 0x0C,0x08,0xA0,0xE1,0xB8,0x10,0xD7,0xE1,0x40,0x08,0xA0,0xE1,0x70,0x20,0x8D,0xE2, + 0x00,0x00,0x51,0xE1,0xB8,0x00,0xC7,0xC1,0xBA,0x10,0xD7,0xE1,0xEC,0x30,0x8D,0xE2, + 0x00,0x00,0x51,0xE1,0xBA,0x00,0xC7,0xB1,0x04,0x00,0xD7,0xE5,0x01,0x00,0x80,0xE2, + 0xFF,0x00,0x00,0xE2,0x04,0x00,0xC7,0xE5,0x00,0x01,0x87,0xE0,0x01,0x0C,0x80,0xE2, + 0xB4,0x41,0xC0,0xE1,0x04,0x00,0xD7,0xE5,0x00,0x01,0x87,0xE0,0x01,0x0C,0x80,0xE2, + 0xB6,0x51,0xC0,0xE1,0x06,0x00,0x92,0xE8,0x00,0x00,0xA0,0xE3,0x02,0x00,0x51,0xE1, + 0x64,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x7C,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1, + 0x78,0x10,0x9D,0xE5,0xC0,0x00,0xA0,0xC3,0x02,0x00,0x51,0xE1,0x6C,0x10,0x9D,0xD5, + 0x02,0x00,0x51,0xD1,0x84,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x68,0x10,0x9D,0xE5, + 0x30,0x00,0x80,0xC3,0x02,0x00,0x51,0xE1,0x64,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1, + 0x6C,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x80,0x10,0x9D,0xE5,0x0C,0x00,0x80,0xC3, + 0x02,0x00,0x51,0xE1,0x7C,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x84,0x10,0x9D,0xD5, + 0x02,0x00,0x51,0xD1,0x03,0x00,0x80,0xC3,0x04,0x10,0xA0,0xE3,0x00,0x20,0xA0,0xE3, + 0xC0,0x00,0x10,0xE3,0x01,0xC1,0x81,0x00,0x0C,0x21,0x83,0x07,0x30,0x00,0x10,0xE3, + 0x01,0xC1,0x81,0x00,0x0C,0xC1,0x83,0x00,0x10,0x20,0x8C,0x05,0x0C,0x00,0x10,0xE3, + 0x01,0x21,0x83,0x07,0x03,0x00,0x10,0xE3,0x01,0xC1,0x83,0x00,0x01,0x10,0x41,0xE2, + 0x01,0x18,0xA0,0xE1,0x50,0x20,0x8C,0x05,0x41,0x18,0xB0,0xE1,0xEF,0xFF,0xFF,0x5A, + 0xFC,0x30,0x9D,0xE5,0x00,0x30,0x8D,0xE5,0xEC,0x30,0x8D,0xE2,0x0F,0x00,0x93,0xE8, + 0xC9,0x07,0x00,0xEB,0x10,0x31,0x9D,0xE5,0x00,0xA0,0xA0,0xE1,0x00,0x30,0x8D,0xE5, + 0x01,0x3C,0x8D,0xE2,0x0F,0x00,0x93,0xE8,0xC3,0x07,0x00,0xEB,0x24,0x31,0x9D,0xE5, + 0x00,0xB0,0xA0,0xE1,0x00,0x30,0x8D,0xE5,0x45,0x3F,0x8D,0xE2,0x0F,0x00,0x93,0xE8, + 0xBD,0x07,0x00,0xEB,0x38,0x31,0x9D,0xE5,0x00,0x90,0xA0,0xE1,0x00,0x30,0x8D,0xE5, + 0x4A,0x3F,0x8D,0xE2,0x0F,0x00,0x93,0xE8,0xB7,0x07,0x00,0xEB,0x4C,0x31,0x9D,0xE5, + 0x30,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5,0x4F,0x3F,0x8D,0xE2,0x0F,0x00,0x93,0xE8, + 0xB1,0x07,0x00,0xEB,0x2C,0x00,0x8D,0xE5,0x00,0x00,0x8D,0xE5,0x30,0x30,0x9D,0xE5, + 0x09,0x20,0xA0,0xE1,0x0B,0x10,0xA0,0xE1,0x0A,0x00,0xA0,0xE1,0xAA,0x07,0x00,0xEB, + 0x00,0x80,0xB0,0xE1,0x06,0x00,0x00,0x1A,0x64,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3, + 0xEC,0x00,0x8D,0xE2,0x13,0xEB,0xFF,0xEB,0x0A,0x90,0xA0,0xE3,0x09,0x80,0xA0,0xE1, + 0x1C,0x91,0x8D,0xE5,0x3C,0x31,0x9D,0xE5,0xEC,0x00,0x9D,0xE5,0x00,0x30,0x8D,0xE5, + 0x00,0x11,0x9D,0xE5,0x14,0x21,0x9D,0xE5,0x28,0x31,0x9D,0xE5,0x9A,0x07,0x00,0xEB, + 0x24,0x11,0x9F,0xE5,0x84,0x70,0x81,0xE0,0xBE,0x11,0xD7,0xE1,0x91,0x00,0x00,0xE0, + 0x28,0x00,0x8D,0xE5,0x40,0x31,0x9D,0xE5,0x00,0x30,0x8D,0xE5,0xF0,0x00,0x9D,0xE5, + 0x04,0x11,0x9D,0xE5,0x18,0x21,0x9D,0xE5,0x2C,0x31,0x9D,0xE5,0x8E,0x07,0x00,0xEB, + 0xB0,0x12,0xD7,0xE1,0x44,0x31,0x9D,0xE5,0x1C,0x21,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x24,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5,0xF4,0x00,0x9D,0xE5,0x08,0x11,0x9D,0xE5, + 0x30,0x31,0x9D,0xE5,0x84,0x07,0x00,0xEB,0xB2,0x12,0xD7,0xE1,0x48,0x31,0x9D,0xE5, + 0x20,0x21,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x20,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5, + 0xF8,0x00,0x9D,0xE5,0x0C,0x11,0x9D,0xE5,0x34,0x31,0x9D,0xE5,0x7A,0x07,0x00,0xEB, + 0xB4,0x12,0xD7,0xE1,0x4C,0x31,0x9D,0xE5,0x24,0x21,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x1C,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5,0xFC,0x00,0x9D,0xE5,0x10,0x11,0x9D,0xE5, + 0x38,0x31,0x9D,0xE5,0x70,0x07,0x00,0xEB,0xB6,0x12,0xD7,0xE1,0x20,0x20,0x9D,0xE5, + 0x90,0x01,0x03,0xE0,0x00,0x30,0x8D,0xE5,0x28,0x00,0x9D,0xE5,0x24,0x10,0x9D,0xE5, + 0x1C,0x30,0x9D,0xE5,0x68,0x07,0x00,0xEB,0x08,0x10,0xA0,0xE1,0x21,0xEA,0xFF,0xEB, + 0x54,0x10,0x9F,0xE5,0x50,0x70,0x9F,0xE5,0xB0,0x12,0xD1,0xE1,0x00,0x10,0x61,0xE2, + 0x81,0x00,0x90,0xE0,0x04,0x10,0xD7,0xE5,0x00,0x00,0xA0,0x43,0x81,0x10,0x87,0xE0, + 0xB4,0x0F,0xC1,0xE1,0x50,0x01,0x9D,0xE5,0x50,0x11,0x9D,0xE5,0x50,0x21,0x9D,0xE5, + 0x50,0x31,0x9D,0xE5,0xB2,0x05,0xD0,0xE1,0xB4,0x15,0xD1,0xE1,0xB6,0x25,0xD2,0xE1, + 0xB8,0x35,0xD3,0xE1,0x30,0xC0,0x9D,0xE5,0x9A,0x00,0x00,0xE0,0x9B,0x01,0x01,0xE0, + 0x99,0x02,0x02,0xE0,0x93,0x0C,0x0C,0xE0,0x23,0x00,0x00,0xEA,0x40,0x00,0x00,0x20, + 0xF0,0x06,0x00,0x20,0xA1,0x05,0x00,0x20,0x00,0x95,0x00,0x00,0x40,0x01,0x00,0x20, + 0x40,0x04,0x00,0x20,0x1F,0x85,0xEB,0x51,0xE8,0x05,0x00,0x20,0xEC,0x05,0x00,0x20, + 0x00,0x00,0x00,0x10,0x18,0x06,0x00,0x20,0x08,0x07,0x00,0x20,0xA2,0x05,0x00,0x20, + 0xA3,0x05,0x00,0x20,0x93,0x05,0x00,0x20,0x94,0x05,0x00,0x20,0x28,0x06,0x00,0x20, + 0x2C,0x06,0x00,0x20,0xD8,0x05,0x00,0x20,0x20,0x06,0x00,0x20,0x24,0x06,0x00,0x20, + 0x40,0x06,0x00,0x20,0x48,0x06,0x00,0x20,0x1C,0x06,0x00,0x20,0x30,0x06,0x00,0x20, + 0x34,0x06,0x00,0x20,0x38,0x06,0x00,0x20,0x3C,0x06,0x00,0x20,0x44,0x06,0x00,0x20, + 0x4C,0x06,0x00,0x20,0x60,0x06,0x00,0x20,0xAC,0x05,0x00,0x20,0xF8,0x05,0x00,0x20, + 0xFC,0x05,0x00,0x20,0x39,0x8E,0xE3,0x38,0x8F,0x05,0x00,0x20,0x50,0x31,0x9D,0xE5, + 0x2C,0x90,0x9D,0xE5,0xBA,0x35,0xD3,0xE1,0x99,0x03,0x03,0xE0,0x00,0x30,0x8D,0xE5, + 0x0C,0x30,0xA0,0xE1,0x24,0x07,0x00,0xEB,0x08,0x10,0xA0,0xE1,0xDD,0xE9,0xFF,0xEB, + 0xB4,0x15,0xD7,0xE1,0x00,0x10,0x61,0xE2,0x81,0x00,0x90,0xE0,0x04,0x10,0xD7,0xE5, + 0x00,0x00,0xA0,0x43,0x81,0x10,0x87,0xE0,0x01,0x1C,0x81,0xE2,0xB6,0x00,0xC1,0xE1, + 0x04,0x00,0xD7,0xE5,0x08,0x00,0x50,0xE3,0x0C,0x00,0x00,0x2A,0x01,0x00,0x84,0xE2, + 0x00,0x48,0xA0,0xE1,0x44,0x48,0xA0,0xE1,0x0E,0x00,0x54,0xE3,0x32,0xFC,0xFF,0xBA, + 0x14,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0x01,0x00,0x85,0xE2, + 0x00,0x58,0xA0,0xE1,0x45,0x58,0xA0,0xE1,0x15,0x00,0x55,0xE3,0x24,0xFC,0xFF,0xBA, + 0x18,0x01,0x1F,0xE5,0x00,0x40,0x90,0xE5,0xB0,0x00,0xD4,0xE1,0x80,0x00,0x10,0xE3, + 0x3F,0x00,0x00,0x0A,0x30,0x51,0x1F,0xE5,0x04,0x00,0xD5,0xE5,0x00,0x00,0x50,0xE3, + 0x08,0x00,0x00,0x1A,0x68,0x01,0x9D,0xE5,0xB4,0x04,0xD0,0xE1,0x00,0x00,0x50,0xE3, + 0x41,0x01,0xD5,0x15,0x3C,0x10,0xD4,0x15,0x01,0x00,0x50,0x11,0x2F,0x00,0x00,0x2A, + 0x01,0x00,0x80,0xE2,0x2B,0x00,0x00,0xEA,0x42,0x01,0xD5,0xE5,0x34,0x10,0xD4,0xE5, + 0x01,0x00,0x50,0xE1,0x26,0x00,0x00,0x8A,0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2, + 0x42,0x01,0xC5,0xE5,0x35,0x10,0xD4,0xE5,0x00,0x00,0x51,0xE1,0x03,0x00,0x00,0x2A, + 0xBC,0x30,0xD5,0xE1,0x0C,0x20,0x9D,0xE5,0x03,0x20,0x82,0xE0,0x0C,0x20,0x8D,0xE5, + 0x34,0x20,0xD4,0xE5,0x02,0x00,0x50,0xE1,0x19,0x00,0x00,0x1A,0x01,0x00,0x50,0xE1, + 0x17,0x00,0x00,0x0A,0x01,0x10,0x40,0xE0,0x0C,0x00,0x9D,0xE5,0x35,0xEA,0xFF,0xEB, + 0x68,0x11,0x9D,0xE5,0x00,0x20,0xA0,0xE3,0xB4,0x24,0xC1,0xE1,0xB8,0x13,0xD4,0xE1, + 0x00,0x00,0x51,0xE1,0x0E,0x00,0x00,0x2A,0x10,0x10,0x9D,0xE5,0x01,0x00,0x40,0xE0, + 0x36,0x10,0xD4,0xE5,0x90,0x01,0x01,0xE0,0xCC,0x01,0x1F,0xE5,0x90,0x21,0x81,0xE0, + 0xA1,0x02,0xA0,0xE1,0x68,0x11,0x9D,0xE5,0xB4,0x04,0xC1,0xE1,0x68,0x01,0x9D,0xE5, + 0xB4,0x14,0xD0,0xE1,0xBA,0x03,0xD4,0xE1,0x00,0x00,0x51,0xE1,0x68,0x11,0x9D,0x85, + 0xB4,0x04,0xC1,0x81,0x00,0x00,0xA0,0xE3,0x41,0x01,0xC5,0xE5,0x04,0x00,0x00,0xEA, + 0x00,0x00,0xA0,0xE3,0x42,0x01,0xC5,0xE5,0x41,0x01,0xC5,0xE5,0x68,0x11,0x9D,0xE5, + 0xB4,0x04,0xC1,0xE1,0x30,0x52,0x1F,0xE5,0x00,0xC0,0xA0,0xE3,0x04,0xA0,0xD5,0xE5, + 0x0C,0x80,0xA0,0xE1,0x01,0x20,0xA0,0xE3,0x01,0x00,0x5A,0xE3,0x37,0x00,0x00,0xBA, + 0xA7,0x94,0xD5,0xE5,0x2C,0xB2,0x1F,0xE5,0x01,0xE0,0xA0,0xE3,0x82,0x00,0x85,0xE0, + 0xB4,0x1F,0xD0,0xE1,0xCD,0x30,0xA0,0xE3,0x33,0x3B,0x83,0xE2,0x01,0x0C,0x80,0xE2, + 0xB6,0x00,0xD0,0xE1,0x93,0x01,0x01,0xE0,0x93,0x00,0x00,0xE0,0xA0,0x79,0xA0,0xE1, + 0x00,0x80,0xA0,0xE3,0x00,0x00,0x59,0xE3,0xA1,0x69,0xA0,0xE1,0x08,0x00,0xA0,0xE1, + 0x21,0x00,0x00,0xDA,0x02,0x11,0x85,0xE0,0x01,0x4C,0x81,0xE2,0x80,0x11,0x85,0xE0, + 0x01,0x1B,0x81,0xE2,0xF8,0x3A,0xD1,0xE1,0x06,0x00,0x53,0xE1,0x15,0x00,0x00,0xCA, + 0xFC,0x3A,0xD1,0xE1,0x06,0x00,0x53,0xE1,0x12,0x00,0x00,0xBA,0xFA,0x3A,0xD1,0xE1, + 0x07,0x00,0x53,0xE1,0x0F,0x00,0x00,0xCA,0xFE,0x1A,0xD1,0xE1,0x07,0x00,0x51,0xE1, + 0x0C,0x00,0x00,0xBA,0xF6,0x11,0xD4,0xE1,0xF4,0x31,0xD4,0xE1,0x81,0x11,0x61,0xE0, + 0x81,0x10,0x83,0xE0,0x81,0x10,0x8B,0xE0,0xF0,0x30,0xD1,0xE1,0x0C,0x00,0x53,0xE1, + 0x04,0x00,0x00,0xDA,0x74,0x11,0x9F,0xE5,0x03,0xC0,0xA0,0xE1,0x00,0xE0,0xC1,0xE5, + 0xFF,0x80,0x02,0xE2,0xA5,0x04,0xC5,0xE5,0x01,0x00,0x80,0xE2,0x00,0x08,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x00,0x00,0x59,0xE1,0xDF,0xFF,0xFF,0xCA,0x01,0x00,0x82,0xE2, + 0x00,0x28,0xA0,0xE1,0x42,0x28,0xA0,0xE1,0x02,0x00,0x5A,0xE1,0xCA,0xFF,0xFF,0xAA, + 0x2C,0x03,0x1F,0xE5,0xBA,0x10,0xD5,0xE1,0x01,0x6C,0x80,0xE2,0x01,0x4C,0x80,0xE2, + 0x0C,0x00,0x51,0xE1,0x06,0x60,0x86,0xE2,0x02,0x40,0x84,0xE2,0x13,0x00,0x00,0xCA, + 0x00,0x00,0x58,0xE3,0x11,0x00,0x00,0x0A,0x88,0x00,0x85,0xE0,0xB4,0x7F,0xD0,0xE1, + 0x01,0x0C,0x80,0xE2,0xB6,0x80,0xD0,0xE1,0x12,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3, + 0xF4,0x00,0x85,0xE2,0xE3,0xE9,0xFF,0xEB,0x12,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3, + 0x06,0x00,0xA0,0xE1,0xDF,0xE9,0xFF,0xEB,0x01,0x00,0xA0,0xE3,0x04,0x00,0xC5,0xE5, + 0x8C,0x03,0x1F,0xE5,0xB6,0x7F,0xC0,0xE1,0xB6,0x80,0xC4,0xE1,0x1C,0x00,0x00,0xEA, + 0x05,0x00,0xD5,0xE5,0x00,0x00,0x50,0xE3,0x19,0x00,0x00,0x1A,0x01,0x00,0x5A,0xE3, + 0x17,0x00,0x00,0x9A,0x82,0x01,0xD5,0xE5,0x00,0x00,0x50,0xE3,0x14,0x00,0x00,0x1A, + 0x18,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x11,0x00,0x00,0x0A,0x18,0x10,0x9D,0xE5, + 0x12,0x20,0xA0,0xE3,0x81,0x00,0x85,0xE0,0xB4,0x7F,0xD0,0xE1,0x01,0x0C,0x80,0xE2, + 0xB6,0x80,0xD0,0xE1,0x00,0x10,0xA0,0xE3,0xF4,0x00,0x85,0xE2,0xC5,0xE9,0xFF,0xEB, + 0x12,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0xC1,0xE9,0xFF,0xEB, + 0x01,0x00,0xA0,0xE3,0x04,0x00,0xC5,0xE5,0x04,0x04,0x1F,0xE5,0xB6,0x7F,0xC0,0xE1, + 0xB6,0x80,0xC4,0xE1,0xA3,0x04,0xD5,0xE5,0x05,0x30,0xA0,0xE1,0x00,0x00,0x50,0xE3, + 0x0B,0x00,0x00,0x0A,0x44,0x00,0x9F,0xE5,0x00,0x20,0xA0,0xE3,0x04,0x20,0xC3,0xE5, + 0x3C,0xC0,0x9F,0xE5,0x00,0x20,0xC0,0xE5,0xA4,0x04,0xD3,0xE5,0x1E,0xC0,0xDC,0xE5, + 0x03,0x10,0xA0,0xE1,0x0C,0x00,0x50,0xE1,0x01,0x00,0x80,0xE2,0xA3,0x24,0xC1,0x25, + 0xA4,0x04,0xC1,0xE5,0x04,0x00,0xD3,0xE5,0x18,0x10,0x9F,0xE5,0x05,0x00,0xC3,0xE5, + 0x00,0x00,0xC1,0xE5,0x5B,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x95,0x05,0x00,0x20,0x00,0x93,0x00,0x00,0x6C,0x06,0x00,0x20,0x10,0xB5,0x0F,0x48, + 0x0F,0x49,0x80,0x88,0x49,0x88,0x00,0x24,0x40,0x18,0x0E,0x49,0x09,0x78,0x00,0x29, + 0x02,0xD0,0x0D,0x49,0x49,0x89,0x02,0xE0,0x0C,0x49,0x09,0x68,0x49,0x88,0x08,0x18, + 0x0B,0x49,0xC9,0x6B,0x49,0x04,0x49,0x0C,0x81,0x42,0x00,0xD3,0x01,0x24,0xFE,0xF7, + 0x5D,0xFA,0x20,0x00,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x80,0x01,0x00,0x20, + 0x80,0x05,0x00,0x20,0xA1,0x05,0x00,0x20,0xA0,0x95,0x00,0x00,0xF0,0x06,0x00,0x20, + 0xC0,0x90,0x00,0x40,0xF7,0xB5,0x27,0x4B,0x27,0x49,0x18,0x8F,0x82,0xB0,0x1E,0x00, + 0x08,0x80,0xD8,0x8E,0x25,0x49,0x20,0x36,0x08,0x80,0xB0,0x7F,0xF1,0x7F,0x00,0x02, + 0x08,0x43,0x02,0xF0,0x8F,0xFA,0x18,0x7D,0xC0,0x07,0x0A,0xD0,0x20,0x48,0x01,0x78, + 0x20,0x48,0x00,0x7D,0x00,0x29,0x02,0xD0,0x02,0xF0,0x34,0xFA,0x01,0xE0,0x02,0xF0, + 0x59,0xFA,0x18,0x49,0x01,0x25,0x08,0x00,0xC0,0x30,0x01,0x90,0x05,0x20,0xC0,0x01, + 0x19,0x4F,0x08,0x18,0x00,0x90,0x00,0x20,0xF8,0x62,0x01,0x98,0x80,0x68,0x38,0x62, + 0x00,0x98,0x00,0x6B,0x78,0x62,0x03,0x24,0xE0,0x07,0xC0,0x0F,0xFB,0xF7,0x1A,0xFB, + 0x64,0x1E,0xF9,0xD5,0x02,0x20,0xF8,0x62,0x30,0x7F,0x01,0x00,0xFB,0xF7,0x88,0xFB, + 0x01,0x24,0x02,0xA8,0x07,0xC8,0xFE,0xF7,0xA7,0xF9,0x00,0x28,0x01,0xD1,0x00,0x24, + 0x25,0x00,0x64,0x1E,0xF5,0xD5,0x6D,0x1E,0xDD,0xD5,0x05,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0x93,0x00,0x00,0xA6,0x05,0x00,0x20,0xA8,0x05,0x00,0x20, + 0x99,0x05,0x00,0x20,0x00,0x05,0x00,0x20,0x80,0x90,0x00,0x40,0x78,0x47,0xC0,0x46, + 0xF0,0x4F,0x2D,0xE9,0x00,0x40,0xA0,0xE3,0x77,0xDF,0x4D,0xE2,0xCC,0x41,0x8D,0xE5, + 0xC8,0x41,0x8D,0xE5,0x3C,0x40,0x8D,0xE5,0x38,0x40,0x8D,0xE5,0x34,0x40,0x8D,0xE5, + 0x2C,0x40,0x8D,0xE5,0x28,0x40,0x8D,0xE5,0x01,0x00,0xA0,0xE3,0x0C,0x10,0x8D,0xE2, + 0x30,0x40,0x8D,0xE5,0x24,0x40,0x8D,0xE5,0x20,0x40,0x8D,0xE5,0x18,0x40,0x8D,0xE5, + 0x14,0x40,0x8D,0xE5,0x11,0x00,0x81,0xE8,0x00,0x00,0xA0,0xE3,0x7C,0x9B,0x9F,0xE5, + 0x00,0x10,0xA0,0xE1,0x08,0x00,0x8D,0xE5,0x04,0x00,0x8D,0xE5,0x04,0x50,0xA0,0xE1, + 0x04,0x70,0xA0,0xE1,0x04,0x80,0xA0,0xE1,0x30,0x20,0xA0,0xE3,0x88,0x00,0x89,0xE2, + 0x40,0xE9,0xFF,0xEB,0x30,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xB8,0x00,0x89,0xE2, + 0x3C,0xE9,0xFF,0xEB,0x00,0x60,0xA0,0xE3,0x60,0x10,0xA0,0xE3,0x16,0x0E,0x8D,0xE2, + 0xB8,0x6E,0xC9,0xE1,0x47,0xE9,0xFF,0xEB,0x60,0x10,0xA0,0xE3,0x01,0x0C,0x8D,0xE2, + 0x44,0xE9,0xFF,0xEB,0x60,0x10,0xA0,0xE3,0xA0,0x00,0x8D,0xE2,0x41,0xE9,0xFF,0xEB, + 0x60,0x10,0xA0,0xE3,0x40,0x00,0x8D,0xE2,0x3E,0xE9,0xFF,0xEB,0x10,0x0B,0x9F,0xE5, + 0x10,0x1B,0x9F,0xE5,0x00,0x00,0xD0,0xE5,0xD8,0x11,0x8D,0xE5,0x00,0x00,0x50,0xE3, + 0x03,0x00,0x00,0x0A,0xF8,0x0A,0xD1,0xE1,0xC4,0x01,0x8D,0xE5,0xB6,0x0A,0xD1,0xE1, + 0x04,0x00,0x00,0xEA,0xF0,0x0A,0x9F,0xE5,0x00,0x00,0x90,0xE5,0xF6,0x12,0xD0,0xE1, + 0xC4,0x11,0x8D,0xE5,0xB4,0x02,0xD0,0xE1,0xD8,0x11,0x9D,0xE5,0x1C,0x3B,0x9F,0xE5, + 0xC0,0x01,0x8D,0xE5,0xC4,0x0A,0x9F,0xE5,0x14,0xCB,0x9F,0xE5,0xB6,0x00,0xD0,0xE1, + 0x10,0xAB,0x9F,0xE5,0x10,0x2B,0x9F,0xE5,0x40,0x00,0x10,0xE3,0xB0,0xB8,0xD1,0x01, + 0xB0,0x18,0xD1,0x11,0x01,0x08,0xE0,0xE3,0x00,0x90,0xA0,0xE3,0x81,0xB0,0x00,0x10, + 0x8B,0x00,0x00,0xE0,0xA4,0x1A,0x9F,0xE5,0x1C,0x00,0x8D,0xE5,0x00,0x00,0xA0,0xE3, + 0x00,0x00,0xC1,0xE5,0x98,0x1A,0x9F,0xE5,0x00,0x00,0x81,0xE5,0x94,0x1A,0x9F,0xE5, + 0x00,0x00,0x81,0xE5,0x90,0x1A,0x9F,0xE5,0x00,0x00,0x81,0xE5,0x8C,0x1A,0x9F,0xE5, + 0x00,0x00,0x81,0xE5,0x88,0x1A,0x9F,0xE5,0x00,0x00,0x81,0xE5,0x84,0x1A,0x9F,0xE5, + 0x00,0x00,0x81,0xE5,0x80,0x1A,0x9F,0xE5,0x00,0x00,0x81,0xE5,0x7C,0x1A,0x9F,0xE5, + 0x00,0x00,0x81,0xE5,0x78,0x1A,0x9F,0xE5,0x00,0x00,0x81,0xE5,0x74,0x1A,0x9F,0xE5, + 0x00,0x00,0x81,0xE5,0x70,0x1A,0x9F,0xE5,0x00,0x00,0x81,0xE5,0x6C,0x1A,0x9F,0xE5, + 0x00,0x00,0x81,0xE5,0x68,0x1A,0x9F,0xE5,0x00,0x00,0x81,0xE5,0x64,0x1A,0x9F,0xE5, + 0x00,0x00,0x81,0xE5,0x60,0x1A,0x9F,0xE5,0x00,0x00,0x81,0xE5,0x00,0x00,0x83,0xE5, + 0x00,0x00,0x8C,0xE5,0x00,0x00,0x8A,0xE5,0x00,0x00,0x82,0xE5,0x5C,0x2A,0x9F,0xE5, + 0x00,0x00,0x82,0xE5,0x58,0x2A,0x9F,0xE5,0x00,0x00,0x82,0xE5,0x54,0x2A,0x9F,0xE5, + 0x01,0x00,0xA0,0xE3,0x00,0x00,0x82,0xE5,0x4C,0x2A,0x9F,0xE5,0x00,0x00,0x82,0xE5, + 0x09,0x20,0xA0,0xE1,0x00,0x00,0xA0,0xE3,0x40,0x1A,0x9F,0xE5,0x89,0x10,0x81,0xE0, + 0xD4,0x11,0x8D,0xE5,0xB0,0x10,0xD1,0xE1,0x01,0xCA,0xA0,0xE1,0x30,0x1A,0x9F,0xE5, + 0x2C,0xCA,0xA0,0xE1,0x89,0x10,0x81,0xE0,0xB0,0x10,0xD1,0xE1,0x0F,0x3A,0xC1,0xE3, + 0x03,0x10,0x4C,0xE0,0x06,0x00,0x51,0xE1,0x0C,0x30,0x43,0xE0,0x3C,0x00,0x8D,0xC5, + 0x38,0x20,0x8D,0xC5,0x01,0x60,0xA0,0xC1,0x01,0xCC,0x8D,0xE2,0x00,0xA1,0x9C,0xE7, + 0x00,0x00,0x51,0xE3,0x00,0x10,0xA0,0xB3,0x01,0xA0,0x8A,0xE0,0x00,0xA1,0x8C,0xE7, + 0x16,0xAE,0x8D,0xE2,0x02,0xC1,0x9A,0xE7,0x00,0x00,0x53,0xE3,0x01,0xC0,0x8C,0xE0, + 0x02,0xC1,0x8A,0xE7,0x40,0xC0,0x8D,0xE2,0x00,0xA1,0x9C,0xE7,0x00,0x30,0xA0,0xB3, + 0x03,0xA0,0x8A,0xE0,0x00,0xA1,0x8C,0xE7,0xA0,0xC0,0x8D,0xE2,0x02,0xA1,0x9C,0xE7, + 0x0D,0x00,0x50,0xE3,0x03,0xA0,0x8A,0xE0,0x02,0xA1,0x8C,0xE7,0x04,0x00,0x00,0x2A, + 0xCC,0xC1,0x9D,0xE5,0x01,0x00,0x5C,0xE1,0xCC,0x11,0x8D,0x35,0x03,0x00,0x54,0xE1, + 0x03,0x40,0xA0,0x31,0x8F,0xC0,0xA0,0xE3,0x65,0xA0,0x41,0xE2,0x01,0xCC,0x8C,0xE2, + 0x0C,0x00,0x5A,0xE1,0x00,0xC0,0xA0,0x23,0x64,0xC0,0xA0,0x33,0x11,0x00,0x52,0xE3, + 0x07,0x00,0x00,0x1A,0x00,0x00,0x50,0xE3,0x0C,0x00,0x50,0x13,0x22,0x00,0x00,0x2A, + 0x40,0xE9,0x9F,0xE5,0x00,0xE0,0x9E,0xE5,0x0E,0xC0,0x8C,0xE0,0x34,0xE9,0x9F,0xE5, + 0x1C,0x00,0x00,0xEA,0x12,0x00,0x52,0xE3,0x07,0x00,0x00,0x1A,0x00,0x00,0x50,0xE3, + 0x0C,0x00,0x50,0x13,0x18,0x00,0x00,0x2A,0x1C,0xE9,0x9F,0xE5,0x00,0xE0,0x9E,0xE5, + 0x0E,0xC0,0x8C,0xE0,0x10,0xE9,0x9F,0xE5,0x12,0x00,0x00,0xEA,0x13,0x00,0x52,0xE3, + 0x07,0x00,0x00,0x1A,0x00,0x00,0x50,0xE3,0x0C,0x00,0x50,0x13,0x0E,0x00,0x00,0x2A, + 0xF8,0xE8,0x9F,0xE5,0x00,0xE0,0x9E,0xE5,0x0E,0xC0,0x8C,0xE0,0xEC,0xE8,0x9F,0xE5, + 0x08,0x00,0x00,0xEA,0x14,0x00,0x52,0xE3,0x07,0x00,0x00,0x1A,0x00,0x00,0x50,0xE3, + 0x0C,0x00,0x50,0x13,0x04,0x00,0x00,0x2A,0xD4,0xE8,0x9F,0xE5,0x00,0xE0,0x9E,0xE5, + 0x0E,0xC0,0x8C,0xE0,0xC8,0xE8,0x9F,0xE5,0x00,0xC0,0x8E,0xE5,0x57,0xC0,0xA0,0xE3, + 0x02,0xCC,0x8C,0xE2,0x0C,0x00,0x5A,0xE1,0xB8,0xE8,0x9F,0xE5,0x00,0xC0,0xA0,0x23, + 0x64,0xC0,0xA0,0x33,0x00,0xE0,0x9E,0xE5,0x03,0x00,0x54,0xE1,0x0E,0xC0,0x8C,0xE0, + 0xA0,0xE8,0x9F,0xE5,0x03,0x40,0xA0,0x31,0x00,0xC0,0x8E,0xE5,0xC7,0x00,0x5A,0xE3, + 0x01,0xC0,0xA0,0xE1,0x64,0xC0,0xA0,0x33,0x11,0x00,0x52,0xE3,0x56,0x00,0x00,0x3A, + 0x00,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0x58,0xE8,0x9F,0xE5,0x00,0xA0,0x9E,0xE5, + 0x0A,0xC0,0x8C,0xE0,0x00,0xC0,0x8E,0xE5,0x08,0x00,0x00,0xEA,0x0C,0x00,0x50,0xE3, + 0x04,0x00,0x00,0x1A,0x40,0xE8,0x9F,0xE5,0x00,0xA0,0x9E,0xE5,0x0A,0xC0,0x8C,0xE0, + 0x00,0xC0,0x8E,0xE5,0x08,0x00,0x00,0xEA,0x00,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A, + 0x28,0xC8,0x9F,0xE5,0x00,0xA0,0x9C,0xE5,0x03,0xA0,0x8A,0xE0,0x00,0xA0,0x8C,0xE5, + 0x05,0x00,0x00,0xEA,0x0C,0x00,0x50,0xE3,0x03,0x00,0x00,0x1A,0x10,0xC8,0x9F,0xE5, + 0x00,0xA0,0x9C,0xE5,0x03,0xA0,0x8A,0xE0,0x00,0xA0,0x8C,0xE5,0x11,0x00,0x52,0xE3, + 0x03,0x00,0x00,0x1A,0x00,0x00,0x50,0xE3,0xC8,0xC7,0x9F,0x05,0x35,0x00,0x00,0x0A, + 0x1F,0x00,0x00,0xEA,0x14,0x00,0x52,0xE3,0x03,0x00,0x00,0x1A,0x00,0x00,0x50,0xE3, + 0xB4,0xC7,0x9F,0x05,0x2F,0x00,0x00,0x0A,0x07,0x00,0x00,0xEA,0x13,0x00,0x52,0xE3, + 0x03,0x00,0x00,0x1A,0x01,0x00,0x50,0xE3,0xA0,0xC7,0x9F,0x05,0x29,0x00,0x00,0x0A, + 0x07,0x00,0x00,0xEA,0x14,0x00,0x52,0xE3,0x03,0x00,0x00,0x1A,0x01,0x00,0x50,0xE3, + 0x8C,0xC7,0x9F,0x05,0x23,0x00,0x00,0x0A,0x07,0x00,0x00,0xEA,0x13,0x00,0x52,0xE3, + 0x03,0x00,0x00,0x1A,0x0B,0x00,0x50,0xE3,0x78,0xC7,0x9F,0x05,0x1D,0x00,0x00,0x0A, + 0x13,0x00,0x00,0xEA,0x14,0x00,0x52,0xE3,0x03,0x00,0x00,0x1A,0x0B,0x00,0x50,0xE3, + 0x64,0xC7,0x9F,0x05,0x17,0x00,0x00,0x0A,0x07,0x00,0x00,0xEA,0x11,0x00,0x52,0xE3, + 0x03,0x00,0x00,0x1A,0x0C,0x00,0x50,0xE3,0x13,0x00,0x00,0x1A,0x4C,0xC7,0x9F,0xE5, + 0x10,0x00,0x00,0xEA,0x14,0x00,0x52,0xE3,0x03,0x00,0x00,0x1A,0x0C,0x00,0x50,0xE3, + 0x3C,0xC7,0x9F,0x05,0x0B,0x00,0x00,0x0A,0x07,0x00,0x00,0xEA,0x13,0x00,0x52,0xE3, + 0x03,0x00,0x00,0x1A,0x0D,0x00,0x50,0xE3,0x07,0x00,0x00,0x1A,0x64,0xC7,0x9F,0xE5, + 0x04,0x00,0x00,0xEA,0x14,0x00,0x52,0xE3,0x03,0x00,0x00,0x1A,0x0D,0x00,0x50,0xE3, + 0x01,0x00,0x00,0x1A,0x50,0xC7,0x9F,0xE5,0x00,0x10,0x8C,0xE5,0x0B,0x00,0x53,0xE1, + 0x01,0xC0,0x85,0xC2,0x01,0x58,0xCC,0xC3,0x0B,0x00,0x51,0xE1,0x01,0xC0,0x87,0xC2, + 0x01,0x78,0xCC,0xC3,0x1C,0xC0,0x9D,0xE5,0x0C,0x00,0x53,0xE1,0x01,0xC0,0x88,0xC2, + 0x01,0x88,0xCC,0xC3,0x1C,0xC0,0x9D,0xE5,0x0C,0x00,0x51,0xE1,0x03,0x00,0x00,0xDA, + 0x18,0xC0,0x9D,0xE5,0x01,0xC0,0x8C,0xE2,0x01,0xC8,0xCC,0xE3,0x18,0xC0,0x8D,0xE5, + 0x14,0xC0,0x9D,0xE5,0x96,0x00,0x53,0xE3,0x01,0xC0,0x8C,0xE0,0x14,0xC0,0x8D,0xE5, + 0x10,0xC0,0x9D,0xE5,0x03,0xC0,0x8C,0xE0,0x10,0xC0,0x8D,0xE5,0x03,0x00,0x00,0xDA, + 0xE8,0xC6,0x9F,0xE5,0xB0,0x30,0xDC,0xE1,0x01,0x30,0x83,0xE2,0xB0,0x30,0xCC,0xE1, + 0xD4,0x31,0x9D,0xE5,0x01,0x00,0x80,0xE2,0xB0,0x10,0xC3,0xE1,0xC4,0x31,0x9D,0xE5, + 0x0E,0x00,0x50,0xE3,0x03,0x10,0x81,0xE0,0xC8,0x31,0x9D,0xE5,0x01,0x90,0x89,0xE2, + 0x03,0x10,0x81,0xE0,0xC8,0x11,0x8D,0xE5,0x16,0xFF,0xFF,0x3A,0x01,0x20,0x82,0xE2, + 0x15,0x00,0x52,0xE3,0x12,0xFF,0xFF,0x3A,0x7C,0x16,0x9F,0xE5,0x74,0x00,0x9D,0xE5, + 0x2C,0x26,0x9F,0xE5,0x00,0x00,0x81,0xE5,0x70,0x16,0x9F,0xE5,0xCC,0x01,0x9D,0xE5, + 0x00,0x00,0x81,0xE5,0x68,0x16,0x9F,0xE5,0xFA,0x0F,0x50,0xE3,0x00,0x40,0x81,0xE5, + 0x10,0x10,0x9D,0xE5,0x00,0x10,0x82,0xE5,0x48,0x16,0x9F,0x85,0x00,0x20,0xA0,0x83, + 0x00,0x20,0x81,0x85,0x2C,0x16,0x9F,0xE5,0x00,0x10,0x91,0xE5,0xAF,0x2F,0x41,0xE2, + 0x45,0x1F,0xA0,0xE3,0x01,0x1B,0x81,0xE2,0x01,0x00,0x52,0xE1,0x0E,0x00,0x00,0x9A, + 0x14,0x26,0x9F,0xE5,0x00,0x20,0x92,0xE5,0xAF,0x2F,0x42,0xE2,0x01,0x00,0x52,0xE1, + 0x09,0x00,0x00,0x9A,0x04,0x26,0x9F,0xE5,0x00,0x20,0x92,0xE5,0xAF,0x2F,0x42,0xE2, + 0x01,0x00,0x52,0xE1,0x04,0x00,0x00,0x9A,0xF4,0x25,0x9F,0xE5,0x00,0x20,0x92,0xE5, + 0xAF,0x2F,0x42,0xE2,0x01,0x00,0x52,0xE1,0x0A,0x00,0x00,0x8A,0x7D,0x0F,0x50,0xE3, + 0x08,0x00,0x00,0x2A,0x08,0x06,0x9F,0xE5,0x00,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3, + 0x04,0x00,0x00,0x1A,0xFC,0x15,0x9F,0xE5,0x00,0x00,0x91,0xE5,0xC8,0x00,0x50,0xE3, + 0x01,0x00,0x80,0x32,0x00,0x00,0x81,0x35,0xEC,0x05,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0x03,0x00,0x50,0xE3,0x15,0x00,0x00,0x2A,0xE0,0x15,0x9F,0xE5,0x96,0x00,0x54,0xE3, + 0x00,0x00,0x91,0x35,0xFA,0x00,0x50,0x33,0x03,0x00,0x00,0x2A,0x00,0x00,0x50,0xE3, + 0x0E,0x00,0x00,0x0A,0x01,0x00,0x40,0xE2,0x0B,0x00,0x00,0xEA,0xFA,0x00,0x54,0xE3, + 0x03,0x00,0x00,0x9A,0x00,0x00,0x91,0xE5,0x7D,0x0F,0x50,0xE3,0x07,0x00,0x00,0x2A, + 0x04,0x00,0x00,0xEA,0xC8,0x00,0x54,0xE3,0x04,0x00,0x00,0x9A,0x00,0x00,0x91,0xE5, + 0x4B,0x0F,0x50,0xE3,0x01,0x00,0x00,0x2A,0x01,0x00,0x80,0xE2,0x00,0x00,0x81,0xE5, + 0x42,0xF7,0xFF,0xEB,0x88,0x05,0x9F,0xE5,0xD5,0x9A,0xD0,0xE1,0x00,0x00,0x59,0xE3, + 0x2D,0x00,0x00,0xBA,0x01,0x3B,0x40,0xE2,0xD5,0x04,0xD3,0xE5,0xA7,0x34,0xD3,0xE5, + 0x0D,0x10,0xA0,0xE3,0x80,0x01,0x60,0xE0,0x80,0x00,0x81,0xE0,0x00,0x00,0x53,0xE3, + 0x00,0x10,0xA0,0xE1,0x00,0x20,0xA0,0xE3,0x11,0x00,0x00,0x9A,0x2C,0xA5,0x9F,0xE5, + 0x0C,0xB0,0x9D,0xE5,0x80,0x40,0x8A,0xE0,0xF0,0xC0,0xD4,0xE1,0x0B,0x00,0x5C,0xE1, + 0x03,0x00,0x00,0xDA,0x08,0xB0,0x9D,0xE5,0x01,0xB0,0x8B,0xE2,0xFF,0xB0,0x0B,0xE2, + 0x08,0xB0,0x8D,0xE5,0x04,0xB0,0x9D,0xE5,0x01,0x20,0x82,0xE2,0x0B,0x00,0x5C,0xE1, + 0xB0,0xC0,0xD4,0xC1,0x0E,0x00,0x80,0xE2,0x04,0xC0,0x8D,0xC5,0x02,0x00,0x53,0xE1, + 0xEE,0xFF,0xFF,0x8A,0x08,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x00,0x00,0xA0,0x13, + 0x00,0x00,0x53,0x13,0x0C,0x00,0x00,0x9A,0x04,0x20,0x9D,0xE5,0xCC,0xC4,0x9F,0xE5, + 0x02,0x28,0xA0,0xE1,0x42,0x28,0xA0,0xE1,0x00,0x40,0xA0,0xE3,0x00,0x00,0x59,0xE1, + 0x81,0xA0,0x8C,0xE0,0xB0,0x20,0xCA,0x01,0x01,0x00,0x80,0xE2,0xB0,0x40,0xCA,0x11, + 0x00,0x00,0x53,0xE1,0x0E,0x10,0x81,0xE2,0xF7,0xFF,0xFF,0x8A,0x38,0x04,0x9F,0xE5, + 0x28,0x94,0x9F,0xE5,0x00,0x40,0x90,0xE5,0xB4,0x00,0xD4,0xE1,0xBE,0x00,0xC9,0xE1, + 0xB0,0x00,0xD4,0xE1,0x01,0x00,0x10,0xE3,0x08,0x00,0x00,0x0A,0xC0,0x01,0x9D,0xE5, + 0xC8,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x98,0x14,0x9F,0xE5,0x91,0x20,0x80,0xE0, + 0xB4,0x10,0xD4,0xE1,0x20,0x06,0xA0,0xE1,0x00,0x00,0x51,0xE1,0xBE,0x00,0xC9,0x81, + 0x84,0xA4,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0x16,0xBE,0x8D,0xE2,0xA0,0xE0,0x8D,0xE2, + 0x08,0x20,0xD4,0xE5,0x00,0x11,0x9B,0xE7,0x92,0x01,0x01,0xE0,0x9A,0x31,0x82,0xE0, + 0xA2,0x34,0xA0,0xE1,0xB0,0x21,0xD4,0xE1,0x02,0x00,0x53,0xE1,0x9A,0x21,0x81,0x90, + 0x09,0x30,0xD4,0xE5,0xA1,0x24,0xA0,0x91,0x00,0x11,0x9E,0xE7,0x91,0x03,0x03,0xE0, + 0x9A,0xC3,0x81,0xE0,0xA1,0xC4,0xA0,0xE1,0xB2,0x11,0xD4,0xE1,0x01,0x00,0x5C,0xE1, + 0x9A,0x33,0x81,0x90,0xA1,0x14,0xA0,0x91,0x01,0x10,0x42,0xE0,0xBC,0x20,0xD4,0xE1, + 0x92,0x01,0x01,0xE0,0x01,0x18,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x01,0x25,0x61,0xE0, + 0x02,0x21,0x82,0xE0,0x81,0x13,0x82,0xE0,0xC1,0x29,0xA0,0xE1,0xC1,0x1F,0x42,0xE0, + 0x80,0x20,0x89,0xE0,0x01,0x00,0x80,0xE2,0x15,0x00,0x50,0xE3,0xB8,0x18,0xC2,0xE1, + 0xDE,0xFF,0xFF,0x3A,0xF4,0x33,0x9F,0xE5,0x00,0xA0,0xA0,0xE3,0x01,0x2C,0x8D,0xE2, + 0x0A,0x10,0xD4,0xE5,0x0A,0x01,0x92,0xE7,0x91,0x00,0x00,0xE0,0x93,0xC0,0x81,0xE0, + 0xA1,0xC5,0xA0,0xE1,0xB4,0x11,0xD4,0xE1,0x01,0x00,0x5C,0xE1,0x93,0x10,0x80,0x90, + 0xA0,0x15,0xA0,0x91,0x0B,0xC0,0xD4,0xE5,0x40,0x00,0x8D,0xE2,0x0A,0x01,0x90,0xE7, + 0x90,0x0C,0x0C,0xE0,0x93,0xBC,0x80,0xE0,0xA0,0xB5,0xA0,0xE1,0xB6,0x01,0xD4,0xE1, + 0x00,0x00,0x5B,0xE1,0x93,0xCC,0x80,0x90,0xA0,0x05,0xA0,0x91,0x00,0x00,0x41,0xE0, + 0xBE,0x10,0xD4,0xE1,0x91,0x00,0x00,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x00,0x15,0x60,0xE0,0x01,0x11,0x81,0xE0,0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1, + 0xC0,0x0F,0x41,0xE0,0x8A,0x10,0x89,0xE0,0x01,0xA0,0x8A,0xE2,0x0D,0x00,0x5A,0xE3, + 0xB8,0x0B,0xC1,0xE1,0xDD,0xFF,0xFF,0x3A,0x0A,0x10,0xD4,0xE5,0x0A,0x01,0x92,0xE7, + 0x64,0x20,0xA0,0xE3,0x91,0x00,0x00,0xE0,0x54,0x13,0x9F,0xE5,0x15,0x10,0xD1,0xE5, + 0x92,0x01,0x01,0xE0,0xD0,0x11,0x8D,0xE5,0xF6,0xE6,0xFF,0xEB,0xB4,0x11,0xD4,0xE1, + 0x01,0x00,0x50,0xE1,0x00,0xB0,0xA0,0x91,0x01,0xB0,0xA0,0x81,0x0B,0x10,0xD4,0xE5, + 0x40,0x00,0x8D,0xE2,0x0A,0x01,0x90,0xE7,0x91,0x00,0x00,0xE0,0xD0,0x11,0x9D,0xE5, + 0xEC,0xE6,0xFF,0xEB,0xB6,0x11,0xD4,0xE1,0x01,0x00,0x50,0xE1,0x01,0x00,0xA0,0x81, + 0xBE,0x10,0xD4,0xE1,0x00,0x00,0x4B,0xE0,0x00,0x00,0x56,0xE3,0x91,0x00,0x00,0xE0, + 0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x00,0x15,0x60,0xE0,0x01,0x11,0x81,0xE0, + 0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x8A,0x10,0x89,0xE0, + 0xB8,0x0B,0xC1,0xE1,0x0C,0x00,0x00,0xDA,0x3C,0x00,0x9D,0xE5,0x38,0x10,0x9D,0xE5, + 0x80,0x00,0x89,0xE0,0x81,0x10,0x89,0xE0,0xB8,0x0B,0xD0,0xE1,0xB8,0x18,0xD1,0xE1, + 0x01,0x00,0x80,0xE0,0x00,0x00,0x46,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xB0,0xE1, + 0xB8,0x0E,0xC9,0xE1,0x00,0x00,0xA0,0x43,0xB8,0x0E,0xC9,0x41,0x11,0x60,0xA0,0xE3, + 0x01,0x6C,0x86,0xE2,0x10,0x00,0x9D,0xE5,0x06,0x10,0xA0,0xE1,0xC9,0xE6,0xFF,0xEB, + 0x00,0x40,0xA0,0xE1,0x14,0x00,0x9D,0xE5,0x06,0x10,0xA0,0xE1,0xC5,0xE6,0xFF,0xEB, + 0x00,0x10,0xA0,0xE1,0xB6,0x00,0xD9,0xE1,0x40,0x00,0x10,0xE3,0x0F,0x00,0x00,0x0A, + 0x87,0x00,0x55,0xE1,0x01,0x20,0xA0,0x83,0x30,0x20,0x8D,0x85,0x4B,0x0F,0x54,0xE3, + 0x01,0x20,0xA0,0x83,0x2C,0x20,0x8D,0x85,0x28,0x00,0x58,0xE3,0x01,0x20,0xA0,0x83, + 0x28,0x20,0x8D,0x85,0x18,0x20,0x9D,0xE5,0x28,0x00,0x52,0xE3,0x01,0x20,0xA0,0x33, + 0x24,0x20,0x8D,0x35,0x14,0x00,0x55,0xE3,0x12,0x00,0x00,0x9A,0x0F,0x00,0x00,0xEA, + 0x07,0x00,0x55,0xE1,0x08,0x00,0x55,0x83,0x01,0x20,0xA0,0x83,0x30,0x20,0x8D,0x85, + 0x96,0x00,0x54,0xE3,0x01,0x20,0xA0,0x83,0x2C,0x20,0x8D,0x85,0x14,0x00,0x58,0xE3, + 0x01,0x20,0xA0,0x83,0x28,0x20,0x8D,0x85,0x18,0x20,0x9D,0xE5,0x14,0x00,0x52,0xE3, + 0x01,0x20,0xA0,0x33,0x24,0x20,0x8D,0x35,0x0A,0x00,0x55,0xE3,0x01,0x00,0x00,0x9A, + 0x01,0x20,0xA0,0xE3,0x20,0x20,0x8D,0xE5,0xF1,0x20,0xD9,0xE5,0x00,0x00,0x52,0xE3, + 0x03,0x00,0x00,0x1A,0xB8,0x21,0x9F,0xE5,0x00,0x20,0xD2,0xE5,0x01,0x00,0x52,0xE3, + 0x04,0x00,0x00,0x1A,0xF2,0x20,0xD9,0xE5,0xFA,0x00,0x52,0xE3,0x06,0x00,0x00,0x2A, + 0x01,0x20,0x82,0xE2,0x03,0x00,0x00,0xEA,0xF2,0x20,0xD9,0xE5,0x00,0x00,0x52,0xE3, + 0x01,0x00,0x00,0x0A,0x01,0x20,0x42,0xE2,0xF2,0x20,0xC9,0xE5,0x2C,0x30,0x8D,0xE2, + 0x0C,0x00,0x93,0xE8,0x10,0x00,0x10,0xE3,0x20,0x00,0x9D,0x15,0x02,0x30,0x83,0xE1, + 0x28,0x20,0x9D,0xE5,0x24,0xC0,0x9D,0xE5,0x00,0x00,0x50,0x13,0x0C,0x20,0x02,0xE0, + 0x03,0x20,0x82,0xE1,0x00,0x00,0xA0,0x03,0x01,0x00,0xA0,0x13,0x02,0x00,0x80,0xE1, + 0x00,0x00,0x50,0xE3,0xF2,0x00,0xD9,0x15,0x05,0x00,0x50,0x13,0x08,0x00,0x00,0x9A, + 0x60,0x01,0x9F,0xE5,0x81,0x10,0x81,0xE0,0x90,0x21,0x81,0xE0,0xA1,0x01,0xA0,0xE1, + 0x04,0x00,0x50,0xE1,0x50,0x01,0x9F,0x35,0xB0,0x00,0xD0,0x31,0xAF,0x0F,0x50,0x33, + 0x02,0x00,0x00,0x3A,0x34,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x07,0x00,0x00,0x0A, + 0xEC,0x00,0x99,0xE5,0x01,0x00,0x80,0xE2,0xEC,0x00,0x89,0xE5,0xF0,0x00,0xD9,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0x12,0xF0,0x00,0xC9,0x15,0x0D,0x00,0x00,0xEA, + 0xF0,0x00,0xD9,0xE5,0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2,0xF0,0x00,0xC9,0xE5, + 0xD8,0x11,0x9D,0xE5,0xB4,0x18,0xD1,0xE1,0x01,0x00,0x50,0xE1,0x05,0x00,0x00,0x1A, + 0x00,0x00,0xA0,0xE3,0xF0,0x00,0xC9,0xE5,0xEC,0x00,0x99,0xE5,0x00,0x00,0x50,0xE3, + 0x01,0x00,0x40,0xC2,0xEC,0x00,0x89,0xC5,0xF2,0x00,0xD9,0xE5,0x0A,0x00,0x50,0xE3, + 0x77,0xDF,0x8D,0x22,0xF0,0x4F,0xBD,0x28,0x1E,0xFF,0x2F,0x21,0xEC,0x00,0x99,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0xA0,0xC3,0xEC,0x00,0x89,0xC5,0x00,0x00,0xA0,0xE3, + 0xF0,0x00,0xC9,0xE5,0x77,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x40,0x00,0x00,0x20,0xA1,0x05,0x00,0x20,0x00,0x95,0x00,0x00,0xF0,0x06,0x00,0x20, + 0x6D,0x06,0x00,0x20,0x1C,0x06,0x00,0x20,0x20,0x06,0x00,0x20,0x24,0x06,0x00,0x20, + 0x28,0x06,0x00,0x20,0x2C,0x06,0x00,0x20,0x30,0x06,0x00,0x20,0x34,0x06,0x00,0x20, + 0x38,0x06,0x00,0x20,0x3C,0x06,0x00,0x20,0x40,0x06,0x00,0x20,0x44,0x06,0x00,0x20, + 0x48,0x06,0x00,0x20,0x4C,0x06,0x00,0x20,0x50,0x06,0x00,0x20,0x54,0x06,0x00,0x20, + 0x58,0x06,0x00,0x20,0x5C,0x06,0x00,0x20,0xC8,0x05,0x00,0x20,0x60,0x06,0x00,0x20, + 0xD4,0x05,0x00,0x20,0xD8,0x05,0x00,0x20,0x64,0x06,0x00,0x20,0x68,0x06,0x00,0x20, + 0x00,0x00,0x00,0x10,0xD2,0x02,0x00,0x10,0xCC,0x05,0x00,0x20,0xD0,0x05,0x00,0x20, + 0xAE,0x05,0x00,0x20,0x8E,0x05,0x00,0x20,0xE4,0x05,0x00,0x20,0xE0,0x05,0x00,0x20, + 0xDC,0x05,0x00,0x20,0x40,0x04,0x00,0x20,0x2B,0x75,0xAA,0x23,0x91,0x73,0x9F,0x5D, + 0x2D,0x34,0xA9,0xF9,0x00,0x93,0x00,0x00,0xCD,0xCC,0xCC,0xCC,0xAC,0x05,0x00,0x20, + 0xF0,0xB5,0x00,0x20,0x8D,0xB0,0x06,0x00,0x06,0x90,0x05,0x90,0xFF,0x48,0x00,0x68, + 0x80,0x79,0x03,0x90,0xFE,0x48,0x42,0x79,0x04,0x00,0xC0,0x34,0x00,0x92,0x82,0x79, + 0x80,0x30,0x01,0x7B,0xC0,0x38,0xA3,0x7A,0x00,0x7A,0xFD,0xF7,0x3C,0xFC,0x00,0x06, + 0x61,0x7A,0x00,0x0E,0xFD,0xF7,0x2C,0xFC,0x21,0x00,0x20,0x39,0x0A,0x7A,0x00,0x06, + 0xC0,0x39,0x09,0x79,0x00,0x0E,0xFD,0xF7,0x27,0xFC,0x21,0x00,0x80,0x39,0x8A,0x7D, + 0x00,0x06,0xC0,0x39,0x89,0x7C,0x00,0x0E,0xFD,0xF7,0x1E,0xFC,0x00,0x06,0x00,0x0E, + 0x02,0x90,0xEC,0x48,0x00,0x27,0x05,0x00,0x80,0x3D,0x87,0x60,0x68,0x7D,0x00,0x28, + 0x03,0xD0,0x20,0x00,0x80,0x30,0x40,0x89,0x07,0xE0,0xE4,0x48,0xE6,0x49,0x00,0x68, + 0x49,0x88,0x40,0x88,0x40,0x18,0x00,0x04,0x00,0x0C,0x04,0x90,0x6F,0x62,0x0F,0x20, + 0xA8,0x72,0xE2,0x48,0x18,0x22,0x00,0x21,0xF9,0xF7,0x18,0xFC,0xE0,0x48,0x08,0x22, + 0x00,0x21,0xF9,0xF7,0x13,0xFC,0xDF,0x48,0x07,0x60,0x68,0x7C,0x00,0x28,0x06,0xD0, + 0xE8,0x6F,0x00,0x04,0x00,0x0C,0x01,0xF0,0xCD,0xFE,0x01,0xF0,0xBB,0xFE,0x01,0x24, + 0x2C,0x63,0xFB,0xF7,0x5F,0xFB,0x00,0x27,0x2F,0x71,0x6F,0x71,0xEF,0x70,0xAF,0x65, + 0xC8,0x20,0x6F,0x65,0x28,0x65,0xEF,0x83,0xEF,0x65,0x2F,0x66,0xCE,0x48,0x6F,0x66, + 0xAF,0x66,0xA0,0x38,0x6F,0x72,0xFF,0x21,0x0C,0x90,0x41,0x71,0x2F,0x64,0x6F,0x64, + 0xEF,0x66,0x2F,0x67,0x6F,0x67,0xCC,0x4A,0xEF,0x71,0x2F,0x72,0xD0,0x88,0x08,0x21, + 0x88,0x43,0xD0,0x80,0x88,0x02,0xF9,0xF7,0xB9,0xFF,0xF9,0xF7,0x33,0xFC,0xF9,0xF7, + 0x17,0xFC,0x01,0xF0,0x39,0xF9,0x01,0xF0,0x81,0xFB,0x01,0xF0,0x9F,0xF8,0xC3,0x48, + 0x87,0x60,0xE8,0x7D,0x00,0x28,0x01,0xD0,0x0A,0x20,0x02,0x90,0xBE,0x49,0x05,0x22, + 0x08,0x00,0xC0,0x30,0x0A,0x90,0xBE,0x48,0xD2,0x01,0x82,0x18,0x80,0x30,0x08,0xAB, + 0x05,0xC3,0x02,0x98,0xC0,0x1C,0x07,0x90,0x15,0x20,0x40,0x01,0x0F,0x18,0xF4,0xE2, + 0x68,0x7C,0x00,0x28,0x04,0xD0,0xE8,0x6F,0x00,0x04,0x00,0x0C,0x01,0xF0,0x7A,0xFE, + 0x80,0x20,0xF9,0xF7,0x8B,0xFF,0x03,0x20,0x01,0xF0,0xFA,0xFC,0x01,0x20,0x40,0x03, + 0xF9,0xF7,0x84,0xFF,0xF9,0xF7,0xEA,0xFB,0xA6,0x48,0x80,0x38,0xC0,0x7D,0x00,0x28, + 0x01,0xD0,0x06,0x20,0x3A,0xE0,0xA8,0x48,0xC0,0x88,0x01,0x06,0x06,0xD4,0xA1,0x49, + 0x80,0x39,0x09,0x6D,0x64,0x29,0x03,0xD2,0x42,0x06,0x01,0xD4,0x01,0x20,0x2D,0xE0, + 0xFF,0x22,0xC3,0x32,0x91,0x42,0x0E,0xD9,0x40,0x06,0x05,0xD5,0x9F,0x48,0xA1,0x49, + 0x80,0x30,0x01,0x62,0x27,0x21,0x18,0xE0,0x9C,0x48,0xFF,0x21,0x01,0x31,0x80,0x30, + 0x01,0x62,0x2B,0x21,0x11,0xE0,0xFF,0x22,0x5F,0x32,0x91,0x42,0x11,0xD9,0x40,0x06, + 0x05,0xD5,0x96,0x48,0x97,0x49,0x80,0x30,0x01,0x62,0x26,0x21,0x05,0xE0,0x93,0x48, + 0xFF,0x21,0x01,0x31,0x80,0x30,0x01,0x62,0x2A,0x21,0x41,0x62,0x05,0x21,0xC1,0x62, + 0x06,0xE0,0x40,0x06,0x01,0xD5,0x05,0x20,0x00,0xE0,0x03,0x20,0x01,0xF0,0x20,0xFB, + 0x84,0x48,0x80,0x68,0x00,0x28,0x01,0xD1,0xFB,0xF7,0x60,0xFD,0x8A,0x48,0x04,0x99, + 0x80,0x88,0x85,0x4D,0x40,0x18,0xA9,0x89,0x88,0x42,0x12,0xD9,0x86,0x48,0x40,0x30, + 0x40,0x78,0x00,0x28,0x0D,0xD1,0xE8,0x88,0xFF,0x21,0x19,0x31,0x08,0x42,0x08,0xD1, + 0x03,0x98,0x76,0x1C,0x86,0x42,0x05,0xDD,0xFB,0xF7,0x50,0xFD,0x01,0x20,0x05,0x90, + 0x00,0xE0,0x00,0x26,0x01,0xF0,0x8A,0xF8,0x77,0x48,0x09,0x99,0xC0,0x88,0x49,0x88, + 0x40,0x06,0x00,0x28,0x0A,0x98,0xC0,0x6A,0x01,0xDA,0x49,0x00,0xFF,0xE7,0x88,0x42, + 0x02,0xDB,0x6C,0x48,0x80,0x38,0x44,0x70,0x05,0x98,0x00,0x28,0x03,0xD0,0xF9,0xF7, + 0x67,0xFB,0x00,0x20,0x05,0x90,0xFB,0xF7,0xEF,0xFC,0xFB,0xF7,0xFD,0xFC,0x65,0x48, + 0x00,0x25,0x80,0x38,0x45,0x84,0xFC,0xF7,0x15,0xFF,0x00,0x28,0x6B,0x48,0x06,0xD0, + 0x45,0x62,0xF8,0x89,0xC8,0x28,0x35,0xD2,0x40,0x1C,0xF8,0x81,0x32,0xE0,0x41,0x6A, + 0x49,0x1C,0x41,0x62,0x41,0x6A,0x01,0x29,0x02,0xD1,0x45,0x72,0x05,0x64,0x45,0x64, + 0x41,0x6A,0x02,0x29,0x04,0xD9,0x0C,0x9A,0xFF,0x21,0x51,0x71,0xC5,0x71,0x05,0x72, + 0x41,0x6A,0x01,0x29,0x02,0xD1,0x5E,0x49,0x8D,0x72,0x45,0x65,0x5B,0x48,0x40,0x6A, + 0x05,0x28,0x02,0xD9,0xFB,0xF7,0x56,0xFA,0xFD,0x81,0x58,0x48,0x42,0x6A,0x02,0x99, + 0x49,0x1C,0x8A,0x42,0x0E,0xD1,0xC5,0x70,0x85,0x65,0xC5,0x83,0xC5,0x65,0x05,0x66, + 0x45,0x66,0xC8,0x21,0x85,0x66,0x01,0x65,0x05,0x71,0x45,0x71,0xC5,0x66,0x05,0x67, + 0x45,0x67,0x10,0xE0,0x4D,0x49,0xC8,0x6E,0x00,0x28,0x07,0xD0,0x08,0x6F,0x00,0x28, + 0x04,0xD0,0x48,0x6F,0xC8,0x28,0x06,0xD2,0x40,0x1C,0x03,0xE0,0x48,0x6F,0x00,0x28, + 0x01,0xD0,0x40,0x1E,0x48,0x67,0x45,0x49,0x0A,0x6E,0xC8,0x6D,0x10,0x43,0x88,0x6E, + 0x0E,0xD1,0x03,0x28,0x01,0xD1,0x8D,0x66,0x13,0xE0,0x40,0x1C,0x03,0x28,0x88,0x66, + 0x0F,0xD1,0x8D,0x66,0x48,0x6E,0x00,0x28,0x0B,0xD0,0x40,0x1E,0x48,0x66,0x08,0xE0, + 0x00,0x28,0x01,0xD0,0x40,0x1E,0x88,0x66,0x48,0x6E,0xFA,0x28,0x01,0xD2,0x40,0x1C, + 0xF4,0xE7,0x38,0x48,0xCA,0x6B,0x10,0x18,0x7D,0x22,0x12,0x01,0x90,0x42,0x07,0xD8, + 0x88,0x6C,0x92,0x10,0x90,0x42,0x03,0xD2,0x96,0x28,0x08,0xD9,0x0C,0x71,0x09,0xE0, + 0x88,0x6C,0xFF,0x22,0xF5,0x32,0x90,0x42,0x01,0xD3,0x0D,0x71,0x08,0xE0,0x08,0x79, + 0x00,0x28,0x05,0xD0,0x48,0x79,0xFF,0x28,0x03,0xD2,0x40,0x1C,0x48,0x71,0x00,0xE0, + 0x4D,0x71,0x08,0x8C,0x28,0x4A,0x90,0x42,0x01,0xD2,0x40,0x1C,0x08,0x84,0x22,0x48, + 0x60,0x38,0x40,0x7C,0x00,0x28,0x88,0x79,0x03,0xD0,0xFA,0x28,0x05,0xD2,0x40,0x1C, + 0x02,0xE0,0x00,0x28,0x01,0xD0,0x40,0x1E,0x88,0x71,0x88,0x78,0xCA,0x8B,0x00,0x28, + 0x03,0xD0,0x64,0x2A,0x05,0xD2,0x52,0x1C,0x02,0xE0,0x00,0x2A,0x01,0xD0,0x52,0x1E, + 0xCA,0x83,0x16,0x49,0x09,0x8C,0x23,0x29,0x04,0xD2,0x14,0x4A,0x93,0x79,0x19,0x2B, + 0x00,0xD9,0x54,0x70,0x0C,0x4A,0x40,0x23,0xD2,0x88,0x0B,0x92,0x1A,0x40,0x0F,0x4B, + 0xDB,0x7D,0x1A,0x43,0x9C,0x46,0x37,0xD1,0x0C,0x4B,0x1F,0xE0,0xF0,0x06,0x00,0x20, + 0x60,0x94,0x00,0x00,0x0C,0x06,0x00,0x20,0x80,0x05,0x00,0x20,0x64,0x0A,0x00,0x20, + 0x00,0x07,0x00,0x20,0xF8,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x90,0x00,0x40, + 0x00,0x93,0x00,0x00,0x01,0x02,0x00,0x00,0x80,0x01,0x00,0x20,0x8C,0x05,0x00,0x20, + 0x00,0x03,0x00,0x20,0x48,0xF4,0xFF,0xFF,0x10,0x27,0x00,0x00,0x1A,0x79,0x00,0x2A, + 0x12,0xD0,0x5A,0x79,0x8C,0x2A,0x0F,0xD9,0x1A,0x00,0x92,0x6C,0xAF,0x23,0x9B,0x00, + 0x9A,0x42,0x01,0xD2,0xC0,0x4B,0x5C,0x70,0xAF,0x23,0x9B,0x00,0x9A,0x42,0x03,0xD2, + 0xBD,0x4A,0x00,0x28,0x00,0xD0,0x54,0x70,0x62,0x46,0x00,0x2A,0x5D,0xD1,0x00,0x28, + 0x25,0xD0,0xB9,0x4A,0x92,0x79,0x46,0x2A,0x0E,0xD9,0xAF,0x22,0x92,0x00,0x91,0x42, + 0x0A,0xD2,0xB5,0x4A,0xAF,0x23,0x92,0x6C,0x9B,0x00,0x9A,0x42,0x04,0xD2,0xB2,0x4A, + 0xD3,0x6C,0x96,0x2B,0x00,0xD9,0x54,0x70,0xAF,0x4B,0xDA,0x8B,0x46,0x2A,0x0E,0xD9, + 0xAF,0x22,0x92,0x00,0x91,0x42,0x0A,0xD2,0x1A,0x00,0x92,0x6C,0xAF,0x23,0x9B,0x00, + 0x9A,0x42,0x04,0xD2,0xA8,0x4A,0xD3,0x6C,0x96,0x2B,0x00,0xD9,0x54,0x70,0xA6,0x4A, + 0x52,0x6E,0x14,0x2A,0x0A,0xD9,0xA4,0x4A,0xFF,0x23,0x92,0x6C,0x2D,0x33,0x9A,0x42, + 0x04,0xD2,0xA1,0x4A,0x13,0x6D,0xFA,0x2B,0x00,0xD2,0x54,0x70,0x9E,0x4A,0x93,0x6D, + 0x46,0x2B,0x04,0xD9,0xAF,0x23,0x9B,0x00,0x99,0x42,0x00,0xD2,0x54,0x70,0x00,0x28, + 0x0E,0xD0,0xD0,0x8B,0x32,0x28,0x0B,0xD9,0x50,0x6F,0x32,0x28,0x08,0xD9,0x90,0x79, + 0x46,0x28,0x05,0xD9,0x90,0x6C,0xAF,0x21,0x89,0x00,0x88,0x42,0x00,0xD2,0x54,0x70, + 0x50,0x6F,0x64,0x28,0x1A,0xD9,0x90,0x79,0x64,0x28,0x17,0xD9,0x90,0x6C,0xAF,0x21, + 0x89,0x00,0x88,0x42,0x12,0xD2,0x54,0x70,0x10,0xE0,0x8B,0x49,0x00,0x28,0x0D,0xD0, + 0x4C,0x70,0x0B,0x99,0x89,0x48,0x08,0x22,0x91,0x43,0xC1,0x80,0xC1,0x88,0x52,0x01, + 0x91,0x43,0xC1,0x80,0xC1,0x88,0x10,0x22,0x91,0x43,0xC1,0x80,0x83,0x48,0xC0,0x88, + 0x01,0x07,0x0C,0xD5,0x80,0x4A,0x80,0x32,0x51,0x68,0x49,0x1C,0x32,0x29,0x51,0x60, + 0x08,0xD9,0x7E,0x49,0x08,0x22,0xC8,0x88,0x90,0x43,0xC8,0x80,0xE3,0xE0,0x7A,0x49, + 0x80,0x31,0x4D,0x60,0x40,0x06,0x08,0xD4,0x79,0x48,0x01,0x68,0x46,0x29,0x04,0xD9, + 0x75,0x49,0x05,0x60,0x41,0x20,0x80,0x31,0x88,0x60,0x73,0x4D,0x68,0x78,0x00,0x28, + 0x10,0xD0,0xFB,0xF7,0xD7,0xFB,0xFB,0xF7,0x4F,0xFB,0x01,0x20,0x80,0x03,0xF9,0xF7, + 0x65,0xFD,0xFB,0xF7,0x61,0xFB,0xFB,0xF7,0xCD,0xFB,0xF9,0xF7,0xA7,0xFA,0xFB,0xF7, + 0xF3,0xF8,0x31,0xE0,0x6B,0x48,0x41,0x68,0x09,0x07,0x0C,0xD5,0xC1,0x68,0x00,0x29, + 0x09,0xD0,0xC0,0x68,0x07,0x28,0x03,0xD1,0x01,0x21,0x49,0x07,0xC8,0x63,0x09,0xE0, + 0x00,0xF0,0x90,0xFA,0x06,0xE0,0x01,0xF0,0x77,0xF9,0xA8,0x7D,0x80,0x28,0x01,0xD1, + 0xFB,0xF7,0x22,0xFA,0xFB,0xF7,0xAE,0xFB,0x5B,0x49,0x80,0x31,0x88,0x68,0x00,0x28, + 0x03,0xD0,0x40,0x1E,0x88,0x60,0xFB,0xF7,0x69,0xFB,0xFB,0xF7,0x1D,0xFB,0x01,0x20, + 0x80,0x03,0xF9,0xF7,0x33,0xFD,0xFB,0xF7,0x2F,0xFB,0x00,0xF0,0x65,0xF9,0x06,0x90, + 0xFB,0xF7,0x98,0xFB,0xF9,0xF7,0x72,0xFA,0x68,0x78,0x00,0x28,0x23,0xD0,0xFB,0xF7, + 0x55,0xFB,0x00,0x22,0x01,0x21,0x10,0x00,0x13,0x00,0xFB,0xF7,0xDB,0xF8,0xFB,0xF7, + 0x45,0xFB,0x49,0x49,0x00,0x20,0x48,0x70,0x08,0x84,0x88,0x71,0xC8,0x70,0xC8,0x83, + 0xC8,0x65,0x08,0x66,0x48,0x66,0x88,0x66,0xC8,0x66,0x08,0x67,0xC8,0x22,0x48,0x67, + 0x0A,0x65,0x42,0x4A,0x88,0x65,0x48,0x72,0xD1,0x88,0x08,0x23,0x99,0x43,0xD1,0x80, + 0x0A,0x99,0xC8,0x62,0x67,0xE0,0x08,0x98,0x00,0x7B,0x00,0x28,0x04,0xD0,0x68,0x7D, + 0x00,0x28,0x01,0xD1,0x00,0xF0,0xBA,0xF8,0x01,0x20,0x40,0x07,0xC0,0x6B,0x0B,0x28, + 0x59,0xD1,0x03,0x20,0x40,0x03,0xF9,0xF7,0xE9,0xFC,0x03,0x20,0x01,0xF0,0x3A,0xFA, + 0xA8,0x67,0x03,0x20,0x01,0xF0,0x6C,0xFA,0x80,0x20,0xF9,0xF7,0xDF,0xFC,0x06,0x98, + 0x00,0x28,0x0D,0xD0,0x0A,0x21,0x48,0x43,0xA9,0x6F,0x08,0x1A,0xA8,0x67,0x06,0x98, + 0xFF,0x21,0x41,0x31,0x48,0x43,0xA9,0x6F,0x40,0x18,0xFF,0x38,0x7D,0x38,0xA8,0x67, + 0x29,0x48,0x00,0x78,0xA9,0x7B,0x08,0x43,0x2F,0xD1,0xA8,0x6B,0x00,0x28,0x2C,0xD0, + 0x22,0x48,0xC0,0x88,0x40,0x06,0xA8,0x6F,0x24,0x49,0x0D,0x1A,0xFF,0x20,0x91,0x30, + 0x85,0x42,0x22,0xDD,0xFF,0x20,0x01,0x30,0xF9,0xF7,0xC0,0xFC,0x02,0x20,0x01,0xF0, + 0x3F,0xFA,0x0A,0x21,0x28,0x00,0xF8,0xF7,0x8D,0xFF,0x41,0x11,0x02,0x20,0x01,0xF0, + 0x1F,0xFA,0x04,0x20,0xF9,0xF7,0xEA,0xFC,0x19,0x49,0x88,0x68,0x8A,0x15,0x10,0x43, + 0x88,0x60,0x18,0x48,0x04,0x61,0xFF,0x20,0xF9,0xF7,0xE0,0xFC,0x02,0x20,0x01,0xF0, + 0x27,0xFA,0xFF,0x20,0x01,0x30,0xF9,0xF7,0x99,0xFC,0x0B,0x4D,0x68,0x6A,0x07,0x99, + 0x88,0x42,0x00,0xD2,0x04,0xE5,0x10,0x48,0x10,0x49,0x00,0x68,0x40,0x30,0x40,0x7D, + 0x48,0x76,0x05,0x48,0x40,0x7C,0x00,0x28,0x01,0xD0,0x01,0xF0,0x73,0xFB,0x0D,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x8C,0x05,0x00,0x20,0x40,0x00,0x00,0x20, + 0xFC,0x06,0x00,0x20,0x00,0x40,0x00,0x30,0xF5,0x06,0x00,0x20,0x8C,0x3C,0x00,0x00, + 0x00,0x40,0x00,0x40,0x40,0x00,0x00,0x40,0xF0,0x06,0x00,0x20,0xC0,0x04,0x00,0x20, + 0x01,0x20,0x80,0x07,0x01,0x6B,0x81,0x22,0xD2,0x01,0x11,0x43,0x01,0x63,0x70,0x47, + 0x00,0x20,0x01,0x21,0x89,0x07,0x48,0x60,0x70,0x47,0x01,0x22,0x92,0x07,0x91,0x68, + 0x01,0x43,0x91,0x60,0x70,0x47,0x00,0x00,0x01,0x20,0x80,0x07,0x01,0x6B,0x03,0x4A, + 0x89,0x09,0x52,0x7B,0x89,0x01,0x11,0x43,0x01,0x63,0x70,0x47,0x00,0x93,0x00,0x00, + 0x10,0xB5,0xF9,0xF7,0xC5,0xF8,0x03,0x20,0x40,0x03,0xF9,0xF7,0x47,0xFC,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x03,0x20,0x10,0xB5,0x40,0x03,0xF9,0xF7,0x47,0xFC,0xF9,0xF7, + 0xC1,0xF8,0xFB,0xF7,0x39,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xB5,0x00,0xF0, + 0x85,0xFC,0x05,0x49,0x80,0x22,0xC9,0x88,0x11,0x40,0x81,0x42,0x01,0xD0,0xF9,0xF7, + 0x63,0xFB,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0x78,0x47,0xC0,0x46, + 0xF0,0x0F,0x2D,0xE9,0xAC,0x60,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0xBA,0x00,0xC6,0xE1, + 0xA4,0x00,0x9F,0xE5,0xA4,0xA0,0x9F,0xE5,0x14,0x80,0xD0,0xE5,0xA0,0xB0,0x9F,0xE5, + 0x26,0x20,0xA0,0xE3,0x01,0x2C,0x82,0xE2,0x14,0x10,0xA0,0xE3,0x01,0x90,0xA0,0xE3, + 0x0D,0x00,0xA0,0xE3,0x81,0x70,0x86,0xE0,0x01,0x20,0x42,0xE2,0x80,0x40,0x86,0xE0, + 0xF8,0x4B,0xD4,0xE1,0xF8,0x58,0xD7,0xE1,0x82,0x30,0x8B,0xE0,0xF0,0xC0,0xD3,0xE1, + 0x05,0x40,0x84,0xE0,0x02,0x00,0x18,0xE3,0x04,0xC0,0x4C,0xE0,0x04,0x00,0x00,0x0A, + 0x0D,0x00,0x50,0xE3,0x07,0x00,0x00,0x0A,0xC8,0x00,0x5C,0xE3,0x05,0x00,0x00,0xBA, + 0x03,0x00,0x00,0xEA,0x14,0x00,0x51,0xE3,0x02,0x00,0x00,0x0A,0xC8,0x00,0x5C,0xE3, + 0x00,0x00,0x00,0xBA,0x00,0x90,0xCA,0xE5,0x00,0x00,0x5C,0xE3,0x00,0xC0,0xA0,0xB3, + 0xB0,0xC0,0xC3,0xE1,0xBA,0x30,0xD6,0xE1,0x0C,0x00,0x53,0xE1,0xBA,0xC0,0xC6,0xB1, + 0x01,0x00,0x50,0xE2,0xE3,0xFF,0xFF,0x5A,0x01,0x10,0x51,0xE2,0xDF,0xFF,0xFF,0x5A, + 0xF0,0x0F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00, + 0x6D,0x06,0x00,0x20,0x00,0x00,0x00,0x10,0xF8,0xB5,0x7C,0x4C,0x00,0x26,0x00,0x96, + 0xE0,0x68,0x07,0x28,0x03,0xD0,0xE0,0x03,0x05,0x68,0x00,0x2D,0x03,0xD1,0x00,0x20, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0xFF,0x20,0x01,0x30,0xF9,0xF7,0xB7,0xFB,0x02,0x20, + 0x01,0xF0,0x36,0xF9,0x00,0xF0,0xF6,0xF8,0x71,0x4F,0x05,0x2D,0xB8,0x7C,0x50,0xD8, + 0x00,0x28,0x50,0xD1,0x01,0x20,0x41,0x07,0x04,0xE0,0x82,0x00,0x52,0x18,0x12,0x68, + 0xE2,0x61,0x40,0x1C,0xA8,0x42,0xF8,0xD9,0x6A,0x48,0x20,0x60,0x21,0x20,0x80,0x02, + 0x20,0x61,0x03,0x20,0xFC,0xF7,0x92,0xFB,0x67,0x48,0x0A,0x21,0x00,0x6B,0xF8,0xF7, + 0x99,0xFF,0x41,0x09,0x02,0x20,0x01,0xF0,0xFB,0xF8,0x64,0x4D,0xE8,0x68,0x40,0x08, + 0x40,0x00,0xE8,0x60,0x02,0x20,0x01,0xF0,0xFB,0xF8,0x04,0x20,0xF9,0xF7,0xBE,0xFB, + 0x5F,0x48,0x01,0x26,0x06,0x61,0x03,0x21,0x09,0x07,0xC8,0x68,0x08,0x22,0x10,0x43, + 0xC8,0x60,0x02,0x20,0x01,0xF0,0xC6,0xF8,0x00,0x90,0x60,0x68,0x60,0x60,0x60,0x69, + 0x60,0x61,0xFC,0xF7,0x7B,0xFD,0x02,0x20,0x01,0xF0,0xF2,0xF8,0x03,0x20,0xFC,0xF7, + 0x55,0xFB,0xE8,0x68,0x30,0x43,0xE8,0x60,0x52,0x48,0x00,0x78,0x00,0x28,0x07,0xD0, + 0x78,0x7C,0x00,0x28,0xFB,0xD0,0xF8,0x6F,0x00,0x04,0x00,0x0C,0x01,0xF0,0x4A,0xFA, + 0x86,0xE0,0x00,0x28,0x03,0xD0,0x6D,0x1C,0xFC,0xF7,0xB2,0xF9,0x06,0x00,0x4A,0x48, + 0x01,0x68,0x42,0x48,0xC1,0x61,0x44,0x48,0x02,0x24,0x00,0x6B,0x0A,0x21,0xF8,0xF7, + 0x51,0xFF,0x01,0x00,0x02,0x20,0x01,0xF0,0xB3,0xF8,0x02,0x20,0x01,0xF0,0xB8,0xF8, + 0x3E,0x48,0xC1,0x68,0x49,0x08,0x49,0x00,0xC1,0x60,0x39,0x48,0x37,0x4F,0x80,0x7C, + 0x21,0x07,0x1D,0xE0,0x7A,0x69,0x52,0x06,0x0A,0xD4,0x00,0x28,0x01,0xD0,0xAC,0x42, + 0x04,0xD2,0xA2,0x00,0x52,0x18,0x12,0x68,0xFA,0x61,0x00,0xE0,0xFE,0x61,0x64,0x1C, + 0x34,0x4A,0x12,0x78,0x00,0x2A,0x0B,0xD0,0xFC,0xF7,0x86,0xFA,0x2C,0x48,0x41,0x7C, + 0x00,0x29,0x07,0xD0,0xC0,0x6F,0x00,0x04,0x00,0x0C,0x01,0xF0,0x0B,0xFA,0x01,0xE0, + 0xAC,0x42,0xDF,0xD9,0x02,0x20,0x01,0xF0,0x9B,0xF8,0x2A,0x4D,0x28,0x78,0x00,0x28, + 0x37,0xD1,0xFC,0xF7,0xD9,0xF9,0x00,0x28,0x33,0xD0,0x23,0x48,0x0A,0x21,0x00,0x6B, + 0xF8,0xF7,0x10,0xFF,0x01,0x00,0x02,0x20,0x01,0xF0,0x72,0xF8,0x02,0x20,0x01,0xF0, + 0x77,0xF8,0x1B,0x4C,0x0C,0xE0,0x28,0x78,0x00,0x28,0x09,0xD0,0xFC,0xF7,0x5C,0xFA, + 0x60,0x7C,0x00,0x28,0x04,0xD0,0xE0,0x6F,0x00,0x04,0x00,0x0C,0x01,0xF0,0xE2,0xF9, + 0xFC,0xF7,0xBA,0xF9,0x00,0x28,0xEE,0xD1,0x78,0x68,0x78,0x60,0x0B,0xE0,0x28,0x78, + 0x00,0x28,0x08,0xD0,0x60,0x7C,0x00,0x28,0x08,0xD0,0xE0,0x6F,0x00,0x04,0x00,0x0C, + 0x01,0xF0,0xD0,0xF9,0x02,0xE0,0x78,0x68,0xC0,0x03,0xF0,0xD5,0x02,0x20,0x01,0xF0, + 0x5F,0xF8,0x00,0xF0,0x1F,0xF8,0x09,0x49,0xC8,0x68,0x01,0x22,0x10,0x43,0xC8,0x60, + 0xFF,0x20,0x01,0x30,0xF9,0xF7,0xCA,0xFA,0x00,0x98,0x11,0xE7,0x00,0x40,0x00,0x30, + 0x8C,0x05,0x00,0x20,0xD0,0x10,0x05,0x00,0x00,0x93,0x00,0x00,0x00,0x20,0x00,0x40, + 0x40,0x00,0x00,0x40,0xF5,0x06,0x00,0x20,0x04,0x00,0x00,0x20,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x05,0x48,0x01,0x21,0x00,0xB5,0xC9,0x02,0x01,0x62,0x00,0x21, + 0x01,0x62,0xFC,0xF7,0xBB,0xFC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x40,0x18,0x70,0x47,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x40,0x18,0x80,0x18,0x70,0x47,0x00,0x00,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x10,0xB4,0x40,0x18,0x01,0x9C,0x80,0x18,0xC0,0x18,0x00,0x19, + 0x10,0xBC,0x70,0x47,0xF8,0xB5,0x00,0x21,0x01,0x23,0x5B,0x07,0x18,0x68,0x13,0x4A, + 0x90,0x75,0x90,0x7D,0x01,0x28,0x01,0xD1,0x01,0x21,0x0D,0xE0,0x01,0x28,0x00,0xD9, + 0x02,0x21,0x00,0x28,0x08,0xD1,0x0D,0x48,0x20,0x22,0x00,0x21,0x18,0x30,0xF8,0xF7, + 0xA5,0xFE,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x05,0x25,0x08,0x4C,0x2D,0x02, + 0x08,0xE0,0x46,0x18,0xB6,0x00,0xF6,0x18,0x36,0x68,0x87,0x00,0x3F,0x19,0x7F,0x19, + 0x40,0x1C,0xBE,0x61,0x96,0x7D,0x86,0x42,0xF3,0xD8,0xEA,0xE7,0x40,0x05,0x00,0x20, + 0x40,0x00,0x00,0x20,0x70,0xB5,0x1F,0x49,0x1D,0x4C,0x0D,0x00,0x20,0x78,0xA9,0x22, + 0xFF,0x35,0x92,0x00,0xDF,0x35,0x8E,0x18,0x00,0x28,0x0E,0xD0,0x5A,0x22,0x21,0x1D, + 0x28,0x00,0xF8,0xF7,0xAB,0xFE,0x18,0x49,0x09,0x22,0x30,0x00,0xF8,0xF7,0xA6,0xFE, + 0x20,0x78,0x60,0x70,0x70,0xBC,0x08,0xBC,0x18,0x47,0x09,0x22,0x00,0x21,0x30,0x00, + 0xF8,0xF7,0x6C,0xFE,0x5A,0x22,0x00,0x21,0x28,0x00,0xF8,0xF7,0x67,0xFE,0x0E,0x48, + 0x5A,0x22,0x00,0x21,0x63,0x38,0xF8,0xF7,0x61,0xFE,0x0B,0x48,0x09,0x22,0x00,0x21, + 0x09,0x38,0xF8,0xF7,0x5B,0xFE,0x00,0x21,0x06,0x48,0x61,0x70,0xA1,0x70,0xC2,0x88, + 0x23,0x23,0x9A,0x43,0xC2,0x80,0x05,0x48,0x81,0x70,0xC1,0x70,0xDA,0xE7,0x00,0x00, + 0xC0,0x01,0x00,0x20,0x40,0x00,0x00,0x20,0xDB,0x02,0x00,0x20,0xE0,0x04,0x00,0x20, + 0xF3,0xB5,0x90,0x48,0x91,0xB0,0x40,0x7E,0x02,0x90,0x8F,0x48,0x00,0x78,0x00,0x28, + 0x8E,0x48,0x18,0xD0,0x0B,0x21,0x89,0x01,0x40,0x18,0x01,0x8A,0x8C,0x4A,0x1A,0x26, + 0x07,0x91,0x41,0x8A,0x1C,0x27,0x06,0x91,0x81,0x8A,0x05,0x91,0x1E,0x21,0x41,0x5E, + 0x04,0x91,0x00,0x21,0x51,0x5E,0x03,0x91,0x16,0x21,0x18,0x22,0x86,0x5F,0xC7,0x5F, + 0x41,0x5E,0x82,0x5E,0x16,0xE0,0x60,0x30,0xC1,0x8A,0x04,0x22,0x00,0x26,0x07,0x91, + 0x01,0x8B,0x02,0x27,0x06,0x91,0x41,0x8B,0x05,0x91,0x7A,0x49,0x20,0x39,0x8A,0x5E, + 0x04,0x92,0x06,0x22,0x8A,0x5E,0x03,0x92,0x8E,0x5F,0xCF,0x5F,0x1C,0x21,0x1E,0x22, + 0x41,0x5E,0x82,0x5E,0x11,0x98,0x75,0x4C,0x00,0x68,0x41,0x18,0x11,0x98,0x01,0x60, + 0x12,0x98,0x00,0x68,0x81,0x18,0x12,0x98,0x01,0x60,0x60,0x8C,0x00,0x21,0x40,0x1E, + 0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0,0x20,0x8C,0x0A,0x00,0x40,0x1E,0x03,0x04, + 0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x01,0xF0,0xD0,0xF8,0x20,0x8C,0x64,0x21,0x0A,0x90, + 0x60,0x8C,0x09,0x90,0x0A,0x98,0x44,0x08,0x09,0x98,0x45,0x08,0x06,0x98,0x64,0x38, + 0x00,0x28,0x01,0xDC,0x06,0x98,0x08,0x1A,0x0F,0x90,0x05,0x98,0x64,0x38,0x00,0x28, + 0x01,0xDC,0x05,0x98,0x08,0x1A,0x0E,0x90,0x15,0x20,0x08,0x90,0x5D,0x48,0x0E,0x21, + 0x80,0x79,0xC2,0x07,0x05,0xD0,0x80,0x07,0x01,0xD5,0x0D,0x21,0x01,0xE0,0x14,0x20, + 0x08,0x90,0x20,0x00,0xF8,0xF7,0x76,0xFC,0x0A,0x99,0x08,0x1A,0x40,0x1E,0x0C,0x90, + 0x08,0x99,0x28,0x00,0xF8,0xF7,0x6E,0xFC,0x09,0x99,0x08,0x1A,0x40,0x1E,0x31,0x1E, + 0x0B,0x90,0x00,0xDD,0xA1,0x1B,0x00,0x2F,0x0D,0x97,0x01,0xDD,0xE8,0x1B,0x0D,0x90, + 0x11,0x98,0x00,0x68,0xA0,0x42,0x10,0x90,0x01,0xDB,0x00,0x1B,0x01,0xE0,0x00,0x1B, + 0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x22,0x06,0x00,0x56,0x43,0x37,0x00, + 0x88,0x42,0x0D,0xDD,0x42,0x1A,0x0F,0x98,0x50,0x43,0x86,0x19,0x10,0x00,0x50,0x43, + 0x0F,0x9A,0x50,0x43,0x0C,0x9A,0x12,0x1B,0x51,0x1A,0xF8,0xF7,0x43,0xFC,0xC7,0x19, + 0x04,0x98,0x00,0x28,0x01,0xD1,0x30,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x38,0x00, + 0x01,0xE0,0x70,0x00,0xC0,0x1B,0x64,0x21,0xF8,0xF7,0x34,0xFC,0x07,0x99,0xC9,0x07, + 0x0A,0xD0,0x10,0x99,0xA1,0x42,0x03,0xDB,0x21,0x18,0x11,0x98,0x01,0x60,0x03,0xE0, + 0x11,0x99,0x20,0x1A,0x40,0x1E,0x08,0x60,0x12,0x98,0x07,0x68,0xAF,0x42,0x01,0xDB, + 0x78,0x1B,0x01,0xE0,0x78,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x21, + 0x04,0x00,0x4C,0x43,0x0D,0x99,0x26,0x00,0x88,0x42,0x0E,0xDD,0x41,0x1A,0x0E,0x98, + 0x0D,0x9A,0x48,0x43,0x04,0x19,0x08,0x00,0x48,0x43,0x0E,0x99,0x48,0x43,0x0B,0x99, + 0x49,0x1B,0x89,0x1A,0xF8,0xF7,0x06,0xFC,0x86,0x19,0x03,0x98,0x00,0x28,0x01,0xD1, + 0x20,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x30,0x00,0x01,0xE0,0x60,0x00,0x80,0x1B, + 0x64,0x21,0xF8,0xF7,0xF7,0xFB,0x07,0x99,0x89,0x07,0x09,0xD5,0xAF,0x42,0x03,0xDB, + 0x29,0x18,0x12,0x98,0x01,0x60,0x03,0xE0,0x12,0x99,0x28,0x1A,0x40,0x1E,0x08,0x60, + 0x0E,0x48,0x02,0x99,0x42,0x8C,0x6B,0x46,0x51,0x1A,0x49,0x1E,0x0A,0x04,0x02,0x99, + 0x12,0x0C,0x06,0xC3,0x01,0x8C,0x02,0x98,0x02,0x9A,0x08,0x1A,0x40,0x1E,0x03,0x04, + 0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x01,0xF0,0x08,0xF8,0x13,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xA0,0x93,0x00,0x00,0xA1,0x05,0x00,0x20,0x00,0x93,0x00,0x00, + 0xE0,0x95,0x00,0x00,0xE0,0x04,0x00,0x20,0xF3,0xB5,0x23,0x4E,0x05,0x68,0x00,0x22, + 0x81,0xB0,0x86,0x46,0x20,0x4B,0x00,0x21,0x2A,0x3B,0x50,0x00,0x1F,0x5A,0x84,0x46, + 0xBD,0x42,0x2F,0xD9,0x1C,0x4B,0x64,0x46,0x0E,0x3B,0x1B,0x5B,0x9D,0x42,0x29,0xD2, + 0x02,0x98,0x4C,0x00,0x03,0x68,0x30,0x5B,0x83,0x42,0x23,0xD9,0x16,0x48,0x2C,0x30, + 0x00,0x5B,0x83,0x42,0x1E,0xD2,0x50,0x00,0x13,0x4A,0x1C,0x3A,0x10,0x5A,0x42,0x00, + 0x80,0x18,0x40,0x19,0x82,0x08,0x70,0x46,0x02,0x60,0x48,0x00,0x0E,0x49,0x16,0x31, + 0x08,0x5A,0x41,0x00,0x02,0x98,0x00,0x68,0x08,0x18,0x03,0x21,0xF8,0xF7,0xC2,0xFC, + 0x09,0x49,0x42,0x31,0x09,0x5F,0x41,0x18,0x02,0x98,0x01,0x60,0x01,0x20,0xFE,0xBC, + 0x08,0xBC,0x18,0x47,0x49,0x1C,0x0B,0x29,0xCA,0xD3,0x52,0x1C,0x07,0x2A,0xC1,0xD3, + 0x00,0x20,0xC0,0x43,0xF3,0xE7,0x00,0x00,0x9E,0x8F,0x00,0x00,0xFE,0xB5,0x74,0x4D, + 0x72,0x48,0x00,0x26,0x29,0x00,0xFF,0x31,0x00,0x96,0x42,0x7B,0x81,0x31,0x08,0x78, + 0x33,0x00,0x00,0x2A,0x33,0xD1,0x00,0x28,0x31,0xD0,0x01,0x24,0x0A,0x20,0x60,0x43, + 0x47,0x19,0x38,0x00,0xFF,0x30,0x8B,0x30,0xFC,0xF7,0xC6,0xF9,0x00,0x28,0x22,0xD0, + 0x68,0x48,0x00,0x78,0x00,0x28,0x04,0xD0,0x00,0x98,0x40,0x1C,0x02,0x28,0x1D,0xD8, + 0x05,0xE0,0x65,0x48,0x81,0x7B,0x00,0x98,0x40,0x1C,0x81,0x42,0x16,0xD3,0x00,0x98, + 0xA9,0x19,0x40,0x1C,0x05,0x22,0x00,0x90,0xFF,0x20,0x12,0x02,0x85,0x30,0x89,0x18, + 0xC0,0x5D,0x3A,0x00,0xFF,0x32,0x48,0x73,0x76,0x1C,0x85,0x32,0x03,0x20,0x01,0x23, + 0x69,0x46,0x00,0xF0,0x55,0xFA,0x64,0x1C,0x09,0x2C,0xCF,0xDB,0xA0,0xE0,0x49,0x78, + 0x00,0x29,0x01,0xD1,0x00,0x28,0x7E,0xD0,0x0B,0x20,0x80,0x01,0x00,0x24,0x2E,0x18, + 0x05,0x27,0x3F,0x02,0x28,0x19,0xC0,0x19,0x40,0x7B,0x00,0x28,0x3F,0xD0,0x05,0x21, + 0x28,0x18,0xC9,0x01,0x41,0x18,0xC9,0x7E,0x00,0x29,0x02,0xD0,0xB2,0x7A,0x00,0x2A, + 0x14,0xD0,0x15,0x21,0x49,0x01,0x40,0x18,0x00,0x99,0x00,0x79,0x49,0x1C,0x00,0x91, + 0x0A,0x21,0x48,0x43,0x42,0x19,0xFF,0x32,0xDF,0x32,0x02,0x20,0x03,0x23,0x69,0x46, + 0x00,0xF0,0x26,0xFA,0x20,0x00,0x14,0x2C,0x1E,0xD0,0x1A,0xE0,0x0A,0x20,0x41,0x43, + 0x48,0x19,0x02,0x90,0xFF,0x30,0x8B,0x30,0xFC,0xF7,0x66,0xF9,0x00,0x28,0x13,0xD0, + 0x00,0x98,0x02,0x9A,0x40,0x1C,0xFF,0x32,0x00,0x90,0x85,0x32,0x03,0x20,0x02,0x23, + 0x69,0x46,0x00,0xF0,0x0D,0xFA,0x07,0xE0,0x29,0x18,0xC9,0x19,0x8A,0x7B,0x40,0x1C, + 0x4A,0x73,0x08,0x28,0xF8,0xDB,0x64,0x1E,0x64,0x1C,0x08,0x2C,0xBA,0xDB,0x01,0x24, + 0x2B,0x49,0x05,0x22,0x08,0x19,0xD2,0x01,0x80,0x18,0xC0,0x7E,0x00,0x22,0x01,0x92, + 0x00,0x28,0x3E,0xD0,0xB2,0x7A,0x00,0x2A,0x3B,0xD1,0x0A,0x22,0x50,0x43,0x45,0x18, + 0x28,0x00,0xFF,0x30,0x8B,0x30,0xFC,0xF7,0x37,0xF9,0x00,0x28,0x31,0xD0,0x21,0x48, + 0x00,0x78,0x00,0x28,0x04,0xD0,0x00,0x98,0x40,0x1C,0x02,0x28,0x30,0xD8,0x05,0xE0, + 0x1D,0x48,0x81,0x7B,0x00,0x98,0x40,0x1C,0x81,0x42,0x29,0xD3,0x18,0x4A,0x00,0x20, + 0x11,0x18,0xC9,0x19,0x49,0x7B,0xA1,0x42,0x0D,0xD0,0x00,0x29,0x08,0xD1,0xFF,0x21, + 0x85,0x31,0x49,0x5D,0x00,0xE0,0x18,0xE0,0x10,0x18,0xC0,0x19,0x41,0x73,0x05,0xE0, + 0x40,0x1C,0x08,0x28,0xEC,0xDB,0x01,0x98,0x00,0x28,0x0A,0xD0,0x00,0x98,0x2A,0x00, + 0x40,0x1C,0xFF,0x32,0x00,0x90,0x85,0x32,0x03,0x20,0x01,0x23,0x69,0x46,0x00,0xF0, + 0xB7,0xF9,0x64,0x1C,0x09,0x2C,0xB3,0xDB,0x02,0xE0,0x01,0x20,0x40,0x07,0x43,0x60, + 0x00,0x98,0x00,0xF0,0x51,0xFD,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x40,0x05,0x00,0x20, + 0x40,0x00,0x00,0x20,0xA3,0x05,0x00,0x20,0x00,0x93,0x00,0x00,0xFC,0xB5,0x4E,0x48, + 0x4E,0x4F,0x80,0x8B,0x00,0x26,0x0E,0x24,0x05,0x04,0x15,0x20,0x84,0x46,0x4C,0x48, + 0x2D,0x14,0x82,0x7D,0x86,0x46,0x4B,0x48,0x81,0x79,0xC8,0x07,0x05,0xD0,0x88,0x07, + 0x01,0xD5,0x0D,0x24,0x01,0xE0,0x14,0x20,0x84,0x46,0x00,0x21,0x27,0xE0,0x00,0x20, + 0x22,0xE0,0x91,0x42,0x05,0xD2,0x90,0x42,0x1D,0xD3,0xA3,0x1A,0x5B,0x1E,0x83,0x42, + 0x19,0xD3,0x63,0x46,0x9B,0x1A,0x5B,0x1E,0x8B,0x42,0x01,0xD2,0x90,0x42,0x12,0xD3, + 0x8B,0x42,0x03,0xD2,0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x0C,0xD3,0x0B,0x00,0x63,0x43, + 0x1B,0x18,0x9B,0x00,0xFB,0x58,0x1B,0x01,0x1B,0x0D,0xB3,0x42,0x00,0xDD,0x1E,0x00, + 0xAB,0x42,0x00,0xDA,0x1D,0x00,0x40,0x1C,0xA0,0x42,0xDA,0xD3,0x49,0x1C,0x61,0x45, + 0xD5,0xD3,0x1E,0x24,0x70,0x46,0x04,0x5F,0x2D,0x4B,0x2F,0x48,0x20,0x33,0xC0,0x88, + 0x06,0x22,0x9A,0x5E,0x40,0x06,0x07,0xD5,0x70,0x46,0x80,0x8A,0x01,0x19,0x0C,0x04, + 0x10,0x1A,0x24,0x14,0x02,0x04,0x12,0x14,0x26,0x48,0x60,0x30,0x81,0x6B,0xA6,0x42, + 0x05,0xDD,0x74,0x46,0x64,0x8B,0xA1,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29, + 0x01,0xDD,0x49,0x1E,0x81,0x63,0x1F,0x49,0x60,0x31,0xC9,0x6B,0x95,0x42,0x04,0xDA, + 0x5A,0x88,0x91,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E, + 0xC1,0x63,0x74,0x46,0xA4,0x8B,0x85,0x6B,0x01,0x22,0x11,0x00,0xA5,0x42,0x00,0xDC, + 0x00,0x21,0x9B,0x88,0xC0,0x6B,0x98,0x42,0x00,0xDC,0x00,0x22,0x00,0x20,0x6B,0x46, + 0x18,0x70,0x59,0x70,0x00,0x29,0x9A,0x70,0x02,0xD0,0x00,0x2A,0x00,0xD0,0x01,0x20, + 0x6B,0x46,0x11,0x43,0xD8,0x70,0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x6B,0x46, + 0x18,0x71,0x70,0x46,0x00,0x7B,0x69,0x46,0x08,0x5C,0x00,0x28,0x00,0xD0,0x80,0x20, + 0xFC,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x8C,0x05,0x00,0x20,0xD4,0x02,0x10,0x40, + 0x80,0x93,0x00,0x00,0xE0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0xF8,0xB5,0x34,0x4D, + 0x01,0x21,0x2C,0x00,0xFF,0x34,0x81,0x34,0x20,0x6A,0x49,0x05,0x88,0x43,0x86,0x46, + 0x09,0x20,0x80,0x01,0x29,0x18,0x48,0x6B,0xFF,0x27,0x84,0x46,0xA8,0x6A,0x41,0x37, + 0x2A,0x4E,0x78,0x43,0xF3,0x7D,0xE2,0x69,0x00,0x2B,0x0D,0xD0,0x29,0x4B,0x2A,0x49, + 0x4B,0x61,0x2A,0x4B,0x8B,0x61,0x73,0x46,0xCB,0x61,0x29,0x4B,0x0B,0x62,0xCA,0x60, + 0x62,0x46,0x0A,0x61,0x27,0x4A,0x27,0xE0,0x27,0x4B,0xDB,0x88,0x5B,0x06,0x16,0xD5, + 0x21,0x48,0x8A,0x69,0x42,0x61,0xCA,0x69,0x82,0x61,0x4A,0x6A,0x01,0x23,0x5B,0x05, + 0x9A,0x43,0xC2,0x61,0x8A,0x6A,0x02,0x62,0x0A,0x6A,0xC2,0x60,0x89,0x6B,0x01,0x61, + 0x1E,0x49,0x81,0x62,0xE8,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x0D,0xE0,0x16,0x49, + 0x63,0x69,0x4B,0x61,0xA3,0x69,0x8B,0x61,0x73,0x46,0xCB,0x61,0x63,0x6A,0x0B,0x62, + 0xCA,0x60,0x62,0x46,0x0A,0x61,0x16,0x4A,0x8A,0x62,0x16,0x49,0xF8,0xF7,0xC2,0xFA, + 0xB0,0x63,0x70,0x7D,0x00,0x28,0x05,0xD0,0x13,0x49,0x0B,0x48,0xC1,0x60,0x01,0x21, + 0x09,0x05,0x01,0x61,0x68,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x0D,0x49,0xF8,0xF7, + 0xB1,0xFA,0x70,0x63,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x8C,0x05,0x00,0x20, + 0x00,0x93,0x00,0x00,0x90,0x01,0x50,0x00,0xC0,0x90,0x00,0x40,0x20,0x03,0x58,0x02, + 0x10,0x3F,0x10,0x3F,0x00,0x00,0x01,0x80,0x40,0x00,0x00,0x20,0x00,0x00,0x08,0x84, + 0x00,0x00,0x04,0x82,0x10,0x27,0x00,0x00,0x41,0x40,0x01,0x00,0x07,0x48,0x41,0x78, + 0x07,0x48,0x02,0x29,0x01,0xD9,0x00,0x6A,0x04,0xE0,0x02,0x29,0x01,0xD1,0xC0,0x69, + 0x00,0xE0,0x80,0x69,0x03,0x49,0x48,0x62,0x70,0x47,0x00,0x00,0xC0,0x01,0x00,0x20, + 0xC0,0x94,0x00,0x00,0xC0,0x90,0x00,0x40,0x16,0x48,0x30,0xB4,0xC5,0x7D,0x01,0x22, + 0x15,0x4C,0x16,0x4B,0x16,0x48,0x00,0x21,0x12,0x04,0x00,0x2D,0x09,0xD0,0x03,0x61, + 0x44,0x61,0x53,0x10,0x83,0x61,0x13,0x4B,0xC3,0x61,0x02,0x62,0x0E,0x4A,0xFA,0x3A, + 0x12,0xE0,0x11,0x4D,0xED,0x88,0x03,0x61,0x6D,0x06,0x05,0xD5,0x44,0x61,0x81,0x61, + 0xC1,0x61,0x02,0x62,0x44,0x62,0x08,0xE0,0x07,0x4B,0x64,0x3B,0x43,0x61,0x81,0x61, + 0xC1,0x61,0x02,0x62,0x04,0x4A,0xC8,0x3A,0x42,0x62,0x81,0x62,0xC1,0x62,0x30,0xBC, + 0x70,0x47,0x00,0x00,0x8C,0x05,0x00,0x20,0x2C,0x01,0x01,0x00,0x00,0x00,0x01,0x03, + 0x40,0xA1,0x00,0x40,0x64,0x80,0x00,0x00,0x40,0x00,0x00,0x20,0x10,0x49,0x10,0xB4, + 0x0A,0x7D,0x10,0x48,0x82,0x71,0x4A,0x7D,0xC2,0x71,0x82,0x79,0x0E,0x48,0xD3,0x07, + 0x0A,0xD0,0x93,0x07,0x0D,0x4A,0x03,0xD5,0x0D,0x23,0x03,0x75,0x00,0x23,0x02,0xE0, + 0x14,0x23,0x03,0x75,0x01,0x23,0x53,0x73,0x8A,0x7D,0x42,0x75,0xCA,0x7D,0x82,0x75, + 0x0A,0x7E,0xC2,0x75,0x4A,0x7E,0x02,0x76,0x89,0x7E,0x41,0x76,0x10,0xBC,0x70,0x47, + 0x00,0x93,0x00,0x00,0xE0,0x04,0x00,0x20,0x00,0x05,0x00,0x20,0x8C,0x05,0x00,0x20, + 0xFF,0xB5,0x05,0x00,0x14,0x00,0x19,0x00,0x10,0x00,0x81,0xB0,0xF9,0xF7,0x52,0xFC, + 0x00,0x28,0x08,0xD0,0x02,0x98,0x02,0x99,0x00,0x68,0x40,0x1E,0x08,0x60,0x05,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x29,0x48,0x80,0x79,0xC0,0x07,0x23,0xD0,0xE0,0x79, + 0x05,0x28,0x1E,0xD0,0x09,0x28,0x1E,0xD1,0x6D,0x08,0x6D,0x00,0x23,0x78,0x24,0x4F, + 0x01,0x20,0x12,0xE0,0x0A,0x21,0x41,0x43,0x22,0x4A,0x89,0x18,0x0A,0x00,0xFF,0x32, + 0xC1,0x32,0x96,0x7F,0xB3,0x42,0x07,0xD1,0xFF,0x31,0xE1,0x31,0x0E,0x88,0x66,0x80, + 0xD2,0x7F,0x62,0x70,0x49,0x88,0xA1,0x80,0x40,0x1C,0x79,0x78,0x81,0x42,0xE9,0xDA, + 0x01,0xE0,0x01,0x20,0x05,0x43,0x0F,0x21,0xA8,0x07,0x89,0x06,0x88,0x43,0x21,0x78, + 0x62,0x78,0x09,0x07,0x89,0x08,0x08,0x43,0x13,0x49,0x92,0x06,0x08,0x40,0x61,0x88, + 0x12,0x0C,0x89,0x05,0x89,0x09,0x08,0x43,0x3F,0x21,0x89,0x02,0x88,0x43,0x10,0x43, + 0x02,0x04,0x92,0x0E,0x0F,0x2A,0x03,0xD9,0x88,0x43,0x0F,0x21,0x89,0x02,0x40,0x18, + 0xA1,0x88,0x80,0x0A,0x80,0x02,0x89,0x05,0x89,0x0D,0x08,0x43,0x02,0x99,0x01,0x22, + 0x09,0x68,0x52,0x07,0x89,0x00,0x89,0x18,0x48,0x60,0xA8,0xE7,0xE0,0x04,0x00,0x20, + 0xC0,0x01,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0xFF,0x00,0xFC,0x00,0x28,0x07,0xD0, + 0x04,0x48,0x05,0x49,0x00,0x22,0x08,0xC8,0x52,0x1C,0x08,0xC1,0x15,0x2A,0xFA,0xD3, + 0x70,0x47,0x00,0x00,0x20,0x8F,0x00,0x00,0x78,0x08,0x10,0x40,0x10,0x49,0x10,0xB5, + 0x88,0x7D,0x00,0x28,0x14,0xD0,0x00,0x09,0x00,0x01,0x00,0x23,0x01,0x22,0x40,0x28, + 0x0B,0xD0,0x80,0x28,0x0C,0xD1,0x8A,0x74,0xCA,0x74,0x0A,0x48,0x0A,0x75,0x0A,0x74, + 0x00,0x78,0x00,0x28,0x07,0xD1,0x4B,0x75,0x06,0xE0,0xCB,0x73,0x0A,0x74,0x4B,0x74, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x4A,0x75,0x00,0x20,0x00,0xF0,0x0D,0xFA,0xF7,0xE7, + 0x8C,0x05,0x00,0x20,0xA0,0x95,0x00,0x00,0xF0,0x41,0x2D,0xE9,0x00,0xC0,0xA0,0xE1, + 0x1C,0x50,0x9D,0xE5,0x18,0x60,0x9D,0xE5,0x01,0x00,0x5C,0xE1,0x01,0x40,0xA0,0xE1, + 0x02,0x00,0xA0,0xE1,0x03,0x70,0xA0,0xE1,0x06,0x00,0x00,0x3A,0x04,0x10,0xA0,0xE1, + 0x18,0xE0,0xFF,0xEB,0xB0,0x00,0xC6,0xE1,0x04,0x10,0xA0,0xE1,0x07,0x00,0xA0,0xE1, + 0x14,0xE0,0xFF,0xEB,0xB0,0x00,0xC5,0xE1,0xF0,0x41,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0xF0,0x47,0x2D,0xE9,0x00,0x40,0xA0,0xE1,0x20,0x80,0x8D,0xE2,0x28,0x60,0x8D,0xE2, + 0x01,0x01,0x98,0xE8,0x60,0x00,0x96,0xE8,0x02,0x00,0x51,0xE1,0xB2,0x50,0xC4,0xB1, + 0xB4,0x60,0xC4,0xB1,0x11,0x00,0x00,0xBA,0x03,0x00,0x51,0xE1,0xB2,0x00,0xC4,0xA1, + 0xB4,0x80,0xC4,0xA1,0x0D,0x00,0x00,0xAA,0x02,0x70,0x41,0xE0,0x05,0x00,0x40,0xE0, + 0x97,0x00,0x00,0xE0,0x02,0x90,0x43,0xE0,0x09,0x10,0xA0,0xE1,0xFD,0xDF,0xFF,0xEB, + 0x05,0x00,0x80,0xE0,0xB2,0x00,0xC4,0xE1,0x06,0x00,0x48,0xE0,0x97,0x00,0x00,0xE0, + 0x09,0x10,0xA0,0xE1,0xF7,0xDF,0xFF,0xEB,0x06,0x00,0x80,0xE0,0xB4,0x00,0xC4,0xE1, + 0xF0,0x47,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x30,0xB4,0x8A,0x79,0x12,0x4B,0x00,0x25, + 0x12,0x07,0x92,0x08,0x1A,0x40,0xCB,0x79,0x92,0x0A,0x92,0x02,0x5C,0x07,0x06,0xD5, + 0x0E,0x4C,0xA4,0x89,0x00,0x2C,0x02,0xD0,0xA4,0x05,0xA4,0x0D,0x22,0x43,0x3F,0x24, + 0xA4,0x02,0x9B,0x06,0xA2,0x43,0x1B,0x0C,0x1A,0x43,0x01,0x23,0x80,0x00,0x5B,0x07, + 0xC0,0x18,0x42,0x60,0xC8,0x79,0xC0,0x06,0x80,0x0F,0x03,0xD0,0x04,0x48,0x01,0x21, + 0xC1,0x70,0x05,0x71,0x30,0xBC,0x70,0x47,0xFF,0xFF,0x00,0xFC,0x40,0x00,0x00,0x20, + 0xE0,0x04,0x00,0x20,0x00,0xB5,0x0E,0x28,0x0B,0xDA,0x0B,0x28,0x09,0xDD,0x0C,0x28, + 0x01,0xD0,0x0D,0x28,0x05,0xD1,0x04,0x49,0xE1,0x20,0x80,0x00,0x48,0x83,0xFC,0xF7, + 0xD1,0xF8,0x08,0xBC,0x18,0x47,0x00,0x00,0x8C,0x05,0x00,0x20,0x30,0xB4,0x0E,0x25, + 0x68,0x43,0x0B,0x4C,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x00,0x0A,0x09,0x0E, + 0x82,0x18,0xC9,0x18,0x00,0x20,0x4B,0x1E,0xC0,0x43,0xFF,0x2B,0x06,0xD2,0x53,0x1E, + 0xFF,0x2B,0x03,0xD2,0x10,0x02,0x08,0x43,0x60,0x53,0x00,0x20,0x30,0xBC,0x70,0x47, + 0x00,0x00,0x10,0x40,0x10,0xB4,0x0E,0x24,0x60,0x43,0x03,0x4B,0x40,0x18,0x40,0x00, + 0x1A,0x52,0x10,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x0E,0x23,0x58,0x43, + 0x30,0xB4,0x0B,0x4C,0x40,0x18,0x43,0x00,0xE0,0x5A,0x01,0x06,0x09,0x0E,0x89,0x18, + 0x00,0x0A,0x82,0x18,0x00,0x20,0x4D,0x1E,0xC0,0x43,0xFF,0x2D,0x06,0xD2,0x55,0x1E, + 0xFF,0x2D,0x03,0xD2,0x10,0x02,0x08,0x43,0xE0,0x52,0x00,0x20,0x30,0xBC,0x70,0x47, + 0x00,0x00,0x10,0x40,0x70,0xB4,0x12,0x4A,0x11,0x4D,0x52,0x7D,0x00,0x21,0x20,0x3D, + 0x14,0x02,0x14,0x43,0x0E,0x22,0x50,0x43,0x0C,0x4B,0x86,0x18,0x12,0xE0,0xAA,0x7D, + 0x8A,0x42,0x0D,0xD0,0xEA,0x7D,0x8A,0x42,0x0A,0xD0,0x2A,0x7E,0x8A,0x42,0x07,0xD0, + 0x6A,0x7E,0x8A,0x42,0x04,0xD0,0xAA,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00,0x9C,0x52, + 0x40,0x1C,0x49,0x1C,0x86,0x42,0xEA,0xD8,0x70,0xBC,0x70,0x47,0x00,0x00,0x10,0x40, + 0x20,0x93,0x00,0x00,0x70,0xB4,0x12,0x4A,0x11,0x4B,0x52,0x7D,0x00,0x21,0x20,0x3B, + 0x15,0x02,0x15,0x43,0xFF,0x26,0x0D,0x4C,0x27,0x36,0x12,0xE0,0x9A,0x7D,0x8A,0x42, + 0x0D,0xD0,0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E,0x8A,0x42,0x07,0xD0,0x5A,0x7E, + 0x8A,0x42,0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00,0xA5,0x52,0x0E,0x30, + 0x49,0x1C,0xB0,0x42,0xEA,0xD3,0x70,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0x20,0x93,0x00,0x00,0x02,0x04,0x04,0x49,0x02,0x43,0x00,0x20,0x40,0x1C,0x04,0xC1, + 0xB5,0x28,0xFB,0xD3,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x05,0x48,0x07,0x49, + 0xC0,0x88,0x42,0x06,0x04,0x48,0x01,0xD5,0x40,0x68,0x00,0xE0,0x00,0x68,0x48,0x60, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0xC0,0x93,0x00,0x00,0x00,0x90,0x00,0x40, + 0xF0,0xB5,0x03,0x00,0x22,0x49,0x05,0x20,0xC0,0x01,0x0C,0x18,0x0B,0x20,0x80,0x01, + 0x0D,0x18,0xC0,0x31,0x1D,0x4A,0x4F,0x6A,0x0E,0x6A,0x88,0x6A,0x00,0xF0,0x2C,0xFB, + 0x07,0x05,0x0B,0x15,0x19,0x21,0x25,0x2C,0x12,0x00,0xC8,0x68,0x10,0x62,0x60,0x6B, + 0x50,0x62,0x02,0x20,0x04,0xE0,0xC8,0x69,0x10,0x62,0x68,0x68,0x50,0x62,0x04,0x20, + 0xD0,0x62,0x56,0x63,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x08,0x69,0x10,0x62,0xA0,0x6B, + 0x02,0xE0,0x48,0x69,0x10,0x62,0xE0,0x6B,0x50,0x62,0x04,0x20,0xD0,0x62,0x57,0x63, + 0xF0,0xE7,0x0C,0x49,0x11,0x62,0x24,0x21,0x02,0xE0,0x89,0x69,0x11,0x62,0x29,0x68, + 0x51,0x62,0x05,0x21,0xD1,0x62,0x07,0xE0,0x06,0x48,0x10,0x62,0x26,0x20,0x50,0x62, + 0x05,0x20,0xD0,0x62,0xF5,0x20,0x00,0x01,0x50,0x63,0xDB,0xE7,0x80,0x90,0x00,0x40, + 0x00,0x93,0x00,0x00,0x01,0x02,0x00,0x00,0x70,0xB4,0x01,0x23,0x5B,0x07,0x58,0x68, + 0x59,0x68,0xC0,0x02,0xC0,0x0E,0x09,0x02,0x4C,0x0F,0x18,0x49,0x01,0x26,0x00,0x22, + 0x00,0x2C,0x10,0xD0,0xCC,0x7A,0x35,0x00,0x00,0x2C,0x00,0xD0,0x00,0x25,0x85,0x42, + 0x07,0xD0,0x45,0x08,0x64,0x08,0xA5,0x42,0x03,0xD1,0xC8,0x72,0x1A,0x60,0x70,0xBC, + 0x70,0x47,0xC8,0x72,0x00,0xE0,0xCA,0x72,0x58,0x68,0x00,0x04,0x00,0x0F,0x58,0x68, + 0x03,0xD0,0x00,0x04,0x00,0x0F,0x40,0x1C,0x0C,0xE0,0xC0,0x02,0xC0,0x0E,0x01,0xD0, + 0x01,0x20,0x07,0xE0,0x88,0x7A,0x00,0x28,0x02,0xD1,0x01,0x20,0x8E,0x72,0x02,0xE0, + 0x0F,0x22,0x00,0x20,0x8A,0x72,0x18,0x60,0xE1,0xE7,0x00,0x00,0x8C,0x05,0x00,0x20, + 0x70,0xB5,0x12,0x48,0x04,0x68,0xE0,0x07,0x05,0xD0,0x11,0x48,0x00,0x7E,0x00,0x28, + 0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x00,0xF0,0x1E,0xF8,0x0D,0x4D,0x60,0x07, + 0x08,0xD5,0x01,0x20,0xFF,0xF7,0xDA,0xFD,0x01,0x20,0xE8,0x75,0x00,0x20,0x00,0xF0, + 0x13,0xF8,0x04,0xE0,0x00,0x20,0xFF,0xF7,0xD1,0xFD,0x00,0x20,0xE8,0x75,0x20,0x0C, + 0xFF,0xF7,0x90,0xFE,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x0C,0x06,0x00,0x20, + 0xA0,0x93,0x00,0x00,0x8C,0x05,0x00,0x20,0x0A,0x4A,0x10,0xB5,0xD1,0x88,0x0A,0x4B, + 0x40,0x24,0x00,0x28,0x03,0xD0,0x21,0x43,0x08,0x48,0xD1,0x80,0x03,0xE0,0x07,0x48, + 0xA1,0x43,0xC4,0x38,0xD1,0x80,0x18,0x60,0xFF,0xF7,0x48,0xFC,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0xF0,0x06,0x00,0x20,0xB0,0x94,0x00,0x00, + 0xFE,0xB5,0x04,0x00,0x39,0x48,0x07,0x6A,0x41,0x6A,0x02,0x91,0x41,0x6B,0x01,0x91, + 0xC0,0x6A,0x00,0x90,0x00,0x20,0xFF,0xF7,0x23,0xFF,0xFA,0xF7,0x6F,0xF9,0x34,0x4E, + 0x25,0x00,0x42,0xE0,0x68,0x1E,0x84,0x42,0x01,0xD1,0xFA,0xF7,0x91,0xF9,0xFA,0xF7, + 0x33,0xF9,0xFA,0xF7,0x9F,0xF9,0xF0,0x7D,0x00,0x28,0x07,0xD0,0x68,0x00,0xA0,0x42, + 0x29,0xD9,0x01,0x22,0x11,0x00,0x00,0x20,0x02,0x23,0x2C,0xE0,0xA8,0x00,0x05,0x21, + 0xF7,0xF7,0x28,0xFF,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x04,0x20,0xF3,0xE7, + 0x68,0x00,0x28,0x18,0x05,0x21,0xF7,0xF7,0x1D,0xFF,0xA0,0x42,0x03,0xD8,0x01,0x22, + 0x11,0x00,0x03,0x20,0xE8,0xE7,0x68,0x00,0x05,0x21,0xF7,0xF7,0x13,0xFF,0xA0,0x42, + 0x03,0xD8,0x01,0x22,0x11,0x00,0x02,0x20,0xDE,0xE7,0x05,0x21,0x28,0x00,0xF7,0xF7, + 0x09,0xFF,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x10,0x00,0xD4,0xE7,0x01,0x22, + 0x11,0x00,0x00,0x20,0x13,0x00,0xF9,0xF7,0xB5,0xFE,0x64,0x1E,0xBA,0xD2,0x11,0x48, + 0x44,0x88,0x03,0xE0,0xFA,0xF7,0xF0,0xF8,0xFA,0xF7,0x5C,0xF9,0x64,0x1E,0xF9,0xD2, + 0xFA,0xF7,0x14,0xF9,0x09,0x48,0x07,0x62,0x02,0x99,0x41,0x62,0x01,0x99,0x41,0x63, + 0x00,0x99,0xC1,0x62,0x00,0x20,0x30,0x84,0xB0,0x71,0xF0,0x70,0xC8,0x21,0xF0,0x83, + 0x31,0x65,0x30,0x71,0x70,0x71,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x80,0x90,0x00,0x40, + 0x8C,0x05,0x00,0x20,0xE0,0x95,0x00,0x00,0x30,0xB4,0x0D,0x4D,0xEC,0x7B,0x00,0x2C, + 0x13,0xD0,0x02,0x68,0x0B,0x68,0xA4,0x07,0x03,0xD5,0x2C,0x8C,0xA2,0x1A,0x52,0x1E, + 0x02,0x60,0xEC,0x7B,0x64,0x07,0x03,0xD5,0x6C,0x8C,0xE3,0x1A,0x5B,0x1E,0x0B,0x60, + 0xEC,0x7B,0xE4,0x07,0x01,0xD0,0x03,0x60,0x0A,0x60,0x30,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x93,0x00,0x00,0x02,0x49,0x00,0x03,0x40,0x18,0xC0,0x68,0x70,0x47,0x00,0x00, + 0x00,0x20,0x00,0x40,0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47,0xF5,0x06,0x00,0x20, + 0x30,0xB4,0x05,0x03,0x05,0x48,0x02,0x9C,0x28,0x18,0x02,0x60,0x41,0x60,0x00,0x2B, + 0x00,0xD0,0x03,0x61,0x84,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x02,0x4A,0x00,0x03,0x80,0x18,0x01,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x05,0x49,0x00,0x03,0x40,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x11,0x43,0x81,0x60, + 0x02,0x49,0x00,0x20,0x08,0x70,0x70,0x47,0x00,0x20,0x00,0x40,0xF5,0x06,0x00,0x20, + 0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x91,0x43,0x81,0x60, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x13,0x49,0x01,0x22,0x09,0x78,0x52,0x07, + 0x00,0x29,0x03,0xD0,0x02,0x28,0x06,0xD9,0x02,0x20,0x15,0xE0,0x0F,0x49,0x89,0x7B, + 0x81,0x42,0x00,0xD2,0x08,0x00,0x01,0x28,0x0C,0xD1,0x91,0x68,0x8B,0x0F,0xDB,0x07, + 0x04,0xD0,0x89,0x00,0x89,0x08,0x83,0x07,0xC9,0x18,0x01,0xE0,0x89,0x00,0x89,0x08, + 0x51,0x60,0x07,0xE0,0x01,0x28,0x05,0xD9,0x01,0x21,0xC9,0x07,0x83,0x05,0x9B,0x0D, + 0x19,0x43,0xF5,0xE7,0x10,0x60,0x70,0x47,0xA3,0x05,0x00,0x20,0x00,0x93,0x00,0x00, + 0x38,0xB5,0x00,0x24,0x71,0x20,0x6B,0x46,0x00,0x94,0xD8,0x70,0x00,0x98,0x01,0x25, + 0x6D,0x07,0x68,0x60,0x0D,0x48,0x09,0x22,0x21,0x00,0xF7,0xF7,0x5F,0xFE,0x0B,0x48, + 0x09,0x22,0x00,0x21,0x09,0x38,0xF7,0xF7,0x59,0xFE,0x08,0x49,0x0D,0x39,0x88,0x7D, + 0x00,0x28,0x08,0xD0,0x00,0x20,0x03,0xE0,0x82,0x00,0x52,0x19,0x94,0x60,0x40,0x1C, + 0x8A,0x7D,0x82,0x42,0xF8,0xDC,0x38,0xBC,0x08,0xBC,0x18,0x47,0x4D,0x05,0x00,0x20, + 0xF0,0xB5,0x00,0x24,0x25,0x00,0x20,0x00,0x01,0x21,0x89,0xB0,0x49,0x07,0x08,0x94, + 0x4F,0x68,0x61,0x4E,0xB9,0x0F,0x89,0x07,0x7E,0xD5,0x20,0x22,0x00,0x21,0x68,0x46, + 0xF7,0xF7,0x34,0xFE,0x07,0x21,0xB8,0x01,0x49,0x05,0x40,0x08,0x08,0x40,0x31,0x00, + 0x88,0x43,0x39,0x07,0x09,0x0C,0x08,0x43,0x08,0x90,0x00,0x20,0x33,0xE0,0x01,0x22, + 0x81,0x00,0x52,0x07,0x89,0x18,0x89,0x68,0x8E,0x00,0x32,0x0F,0x2A,0xD0,0x32,0x0F, + 0x94,0x46,0x92,0x00,0x6B,0x46,0xD2,0x18,0x40,0x3A,0xD3,0x6B,0x36,0x0F,0x1B,0x01, + 0x1B,0x09,0x36,0x07,0x33,0x43,0x0F,0x27,0x3F,0x06,0x0E,0x04,0xB6,0x08,0xBB,0x43, + 0x3E,0x40,0x33,0x43,0x49,0x4E,0x33,0x40,0x8E,0x01,0xB6,0x0D,0x36,0x03,0x33,0x43, + 0x1B,0x0B,0x89,0x05,0x1B,0x03,0x89,0x0D,0x0B,0x43,0xD3,0x63,0x62,0x46,0x52,0x1E, + 0x01,0x23,0x93,0x40,0x9A,0x05,0x92,0x0D,0x71,0x46,0x11,0x43,0x6D,0x1C,0x2D,0x06, + 0x2D,0x0E,0x08,0x91,0x40,0x1C,0x08,0x99,0x8E,0x46,0x09,0x04,0x09,0x0F,0x81,0x42, + 0xC5,0xD8,0x08,0x98,0x01,0x27,0x00,0x04,0x00,0x0F,0x7B,0x07,0x0F,0xE0,0x82,0x00, + 0xD2,0x18,0x92,0x68,0x3E,0x00,0x92,0x00,0x12,0x0F,0x52,0x1E,0x96,0x40,0xF2,0x06, + 0xD2,0x0A,0x64,0x1C,0x11,0x43,0x24,0x06,0x24,0x0E,0x40,0x1C,0x08,0x91,0x08,0x99, + 0x0A,0x04,0x0E,0x02,0x12,0x0F,0x76,0x0F,0x92,0x19,0x82,0x42,0xE7,0xD8,0x00,0x21, + 0x08,0x00,0x6E,0x46,0x82,0x00,0xB2,0x58,0x00,0x2A,0x03,0xD0,0x8F,0x00,0xFF,0x18, + 0xBA,0x60,0x49,0x1C,0x40,0x1C,0x08,0x28,0xF4,0xD3,0x23,0x49,0x08,0x98,0x88,0x43, + 0x29,0x07,0x09,0x0C,0x08,0x43,0x00,0xE0,0x07,0xE0,0x07,0x21,0x49,0x05,0x88,0x43, + 0x61,0x07,0x09,0x0A,0x08,0x43,0x08,0x90,0x2B,0xE0,0xB9,0x0F,0xC9,0x07,0x25,0xD0, + 0x01,0x23,0x5B,0x07,0x58,0x68,0x19,0x4C,0x82,0x00,0x11,0x0F,0x09,0x07,0x21,0x40, + 0x84,0x01,0xA4,0x0D,0x24,0x03,0x21,0x43,0x84,0x05,0x09,0x0B,0x09,0x03,0xA4,0x0D, + 0x21,0x43,0x0F,0x24,0x24,0x06,0x00,0x04,0x80,0x08,0xA1,0x43,0x20,0x40,0x01,0x43, + 0x08,0x0F,0x09,0xD0,0x12,0x0F,0x52,0x1E,0x01,0x20,0x90,0x40,0x80,0x05,0x80,0x0D, + 0xB0,0x43,0x5A,0x14,0x80,0x18,0x08,0x90,0x99,0x60,0x02,0xE0,0x01,0x21,0x49,0x07, + 0x88,0x60,0x71,0x20,0x08,0xAB,0xD8,0x70,0x08,0x99,0x40,0x07,0x41,0x60,0x09,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0xF0,0x00,0x00,0xFF,0x0F,0x00,0xFF, + 0x70,0xB5,0x05,0x00,0x08,0x48,0x00,0x22,0x04,0x04,0x24,0x0C,0x40,0x21,0x20,0x00, + 0xF7,0xF7,0x72,0xFD,0x40,0x22,0x29,0x00,0x20,0x00,0x00,0x23,0xF7,0xF7,0x74,0xFD, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x92,0x00,0x00,0x02,0x4B,0x58,0x60, + 0x99,0x60,0x1A,0x60,0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40,0x01,0x04,0x00,0xB5, + 0x03,0x48,0x02,0x22,0x09,0x0C,0xFF,0xF7,0xF1,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xE1,0x04,0x00,0x00,0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x30,0x00,0x40,0x02,0x48,0x01,0x68,0x49,0x08,0x49,0x00,0x01,0x60,0x70,0x47, + 0x00,0x30,0x00,0x40,0x02,0x49,0x02,0x22,0x0A,0x61,0x88,0x60,0x70,0x47,0x00,0x00, + 0x00,0x30,0x00,0x40,0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47,0xF4,0x06,0x00,0x20, + 0x00,0x04,0x00,0x0C,0x01,0x21,0x89,0x07,0x08,0x61,0x70,0x47,0x01,0x21,0x89,0x07, + 0x88,0x68,0x8A,0x15,0x90,0x43,0x88,0x60,0x70,0x47,0x70,0xB4,0x03,0xAC,0x30,0xCC, + 0x06,0x68,0x96,0x42,0x01,0xDB,0x32,0x00,0x00,0xE0,0x02,0x60,0x9A,0x42,0x00,0xDD, + 0x03,0x60,0x08,0x68,0xA0,0x42,0x00,0xDA,0x0C,0x60,0x08,0x68,0xA8,0x42,0x00,0xDD, + 0x0D,0x60,0x70,0xBC,0x70,0x47,0x00,0x47,0x78,0x47,0xC0,0x46,0x01,0xC0,0x5E,0xE5, + 0x0C,0x00,0x53,0xE1,0x03,0x30,0xDE,0x37,0x0C,0x30,0xDE,0x27,0x83,0xC0,0x8E,0xE0, + 0x1C,0xFF,0x2F,0xE1,0x10,0xB5,0xF7,0xF7,0x3F,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0x28,0x3F,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x3F,0x01,0x00,0x4B,0x00,0x95,0x00,0xD5,0x00,0x0C,0x01,0x4D,0x01, + 0x97,0x01,0x25,0x00,0x6F,0x00,0xB9,0x00,0xF0,0x00,0x27,0x01,0x71,0x01,0xBB,0x01, + 0x49,0x00,0x93,0x00,0xD4,0x00,0x0B,0x01,0x4B,0x01,0x95,0x01,0xDF,0x01,0x01,0x00, + 0x46,0x00,0x92,0x00,0xDE,0x00,0x2A,0x01,0x6D,0x01,0xA6,0x01,0xE9,0x01,0x35,0x02, + 0x81,0x02,0xCD,0x02,0x20,0x00,0x6C,0x00,0xB8,0x00,0x04,0x01,0x50,0x01,0x89,0x01, + 0xC2,0x01,0x0E,0x02,0x5A,0x02,0xA6,0x02,0xF2,0x02,0x45,0x00,0x91,0x00,0xDD,0x00, + 0x29,0x01,0x6B,0x01,0xA4,0x01,0xE7,0x01,0x33,0x02,0x7F,0x02,0xCB,0x02,0x17,0x03, + 0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFD,0xFF,0xFD,0xFF,0xFC,0xFF, + 0x00,0x00,0xFE,0xFF,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0xFF,0xFF, + 0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x01,0x00, + 0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x89,0x08,0x49,0x1E,0x49,0x04,0x01,0x22, + 0x49,0x08,0xD2,0x07,0x89,0x18,0x00,0x04,0x00,0x0C,0x01,0x43,0x03,0x48,0x41,0x61, + 0x41,0x69,0x00,0x29,0xFC,0xDB,0x80,0x6B,0x70,0x47,0x00,0x00,0x00,0x70,0x00,0x40, + 0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0xFF,0x10,0x01,0xE2,0x01,0x20,0x52,0xE2, + 0x01,0x10,0xC0,0xE4,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0xC2,0x20,0xA0,0xE1, + 0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0x01,0x18,0xA0,0xE1,0x21,0x18,0xA0,0xE1, + 0x01,0x20,0x52,0xE2,0xB2,0x10,0xC0,0xE0,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1, + 0x42,0x21,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0x01,0x20,0x52,0xE2, + 0x04,0x10,0x80,0xE4,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0x01,0x30,0xD1,0xE4,0x01,0x20,0x52,0xE2,0x01,0x30,0xC0,0xE4, + 0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0xB2,0x30,0xD1,0xE0,0x01,0x20,0x52,0xE2,0xB2,0x30,0xC0,0xE0, + 0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x42,0x21,0xA0,0xE1,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0x04,0x30,0x91,0xE4,0x01,0x20,0x52,0xE2,0x04,0x30,0x80,0xE4, + 0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0xB2,0x30,0xD1,0xE0,0x01,0x20,0x52,0xE2,0x04,0x30,0x80,0xE4, + 0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x41,0x11,0xA0,0xE1,0x01,0x10,0x51,0xE2, + 0x1E,0xFF,0x2F,0x31,0x00,0x20,0xA0,0xE3,0x01,0x10,0x51,0xE2,0x04,0x20,0x80,0xE4, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x70,0x20,0x9F,0xE5,0x30,0x00,0x2D,0xE9, + 0x64,0xC0,0x9F,0xE5,0x00,0x00,0x92,0xE5,0x64,0x40,0x9F,0xE5,0x64,0x30,0x9F,0xE5, + 0x25,0x00,0xA0,0xE3,0x01,0x0C,0x80,0xE2,0x00,0x11,0x92,0xE7,0x80,0x50,0x84,0xE0, + 0xB0,0x10,0xC5,0xE1,0x00,0x11,0x9C,0xE7,0x80,0x50,0x83,0xE0,0x01,0x00,0x50,0xE2, + 0xB0,0x10,0xC5,0xE1,0xF7,0xFF,0xFF,0x5A,0x30,0x00,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x24,0x20,0x9F,0xE5,0x30,0x10,0x9F,0xE5,0x25,0x00,0xA0,0xE3,0x01,0x0C,0x80,0xE2, + 0x00,0x31,0x92,0xE7,0x80,0xC0,0x81,0xE0,0x23,0x38,0xA0,0xE1,0x01,0x00,0x50,0xE2, + 0xB0,0x30,0xCC,0xE1,0xF9,0xFF,0xFF,0x5A,0x1E,0xFF,0x2F,0xE1,0xD4,0x02,0x10,0x40, + 0x00,0x10,0x10,0x40,0x08,0x07,0x00,0x20,0x00,0x00,0x00,0x10,0xD2,0x02,0x00,0x10, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0B,0x38,0x30,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,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,0xFF,0x00,0x00,0x00, + 0x00,0x00,0x04,0x00,0x15,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x01,0x08,0x05,0x00, + 0x00,0x00,0x00,0x00,0x03,0x02,0x13,0x14,0xFF,0xFF,0xFF,0x00,0x00,0xC8,0x05,0x1E, + 0xE0,0x01,0x20,0x03,0xC8,0x32,0x00,0x00,0x8C,0x3C,0x00,0x00,0x8C,0x3C,0x00,0x00, + 0xE0,0x93,0x04,0x00,0x01,0x5A,0xE8,0x03,0x1A,0x04,0x00,0x00,0x04,0xC8,0x65,0x65, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x78,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x66,0x00,0x67,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x32,0x00, + 0x2C,0x01,0x2C,0x01,0x00,0x00,0x00,0x00,0x50,0x00,0x5A,0x00,0x32,0x00,0xB8,0x0B, + 0x50,0x00,0x5A,0x00,0x32,0x00,0xE8,0x03,0x64,0x00,0x14,0x00,0x00,0x00,0x00,0x00, + 0x05,0x02,0x05,0x0A,0x01,0x01,0x04,0x00,0x01,0x02,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x01,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x01,0x00,0x00, + 0x00,0x0E,0x00,0x00,0x80,0x0F,0x00,0x00,0x60,0x0F,0x00,0x00,0x9F,0xB9,0x5E,0x01, + 0x01,0x00,0x14,0x00,0x64,0x64,0x64,0x64,0x46,0x00,0x32,0x00,0x32,0x00,0x05,0x00, + 0x19,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x3C,0x00,0x90,0x01,0x90,0x01,0x90,0x01, + 0x2C,0x01,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00, + 0x0A,0x01,0x32,0x00,0x88,0x13,0xE8,0x03,0x0A,0x00,0x96,0x96,0x96,0x96,0x00,0x96, + 0x96,0x96,0xB4,0x00,0xFF,0x0F,0x90,0x01,0x50,0x00,0x0A,0x00,0xFF,0xFF,0x14,0x96, + 0x00,0x05,0x04,0x0A,0x0A,0x06,0xF4,0x01,0x3C,0x00,0x03,0x23,0x00,0x02,0x14,0x00, + 0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xDC,0x00,0x05,0x02,0x01,0x02,0x01,0x00,0x02,0x04,0x03,0x00,0x05,0x05,0x0A,0x0A, + 0x0F,0x0F,0x14,0x14,0x64,0x55,0x01,0x00,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,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x41,0x42,0x01,0x00, + 0x18,0x18,0x88,0x00,0x30,0x7F,0x10,0x3F,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00, + 0x9F,0x99,0x5E,0x01,0x01,0x00,0x14,0x00,0x64,0x64,0x64,0x64,0x46,0x00,0x32,0x00, + 0x96,0x00,0x14,0x00,0x32,0x00,0x14,0x00,0x01,0x00,0x0A,0x02,0x50,0x00,0x90,0x01, + 0x90,0x01,0x90,0x01,0x90,0x01,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00, + 0x10,0x00,0x10,0x00,0x0A,0x01,0x32,0x00,0x88,0x13,0xF4,0x01,0x0A,0x00,0x96,0x96, + 0x96,0x96,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x0F,0x90,0x01,0xC8,0x00,0x1E,0x00, + 0xFA,0xFA,0x0D,0xA0,0x00,0x05,0x04,0x0A,0x02,0x06,0xE8,0x03,0x3C,0x00,0x03,0x28, + 0x00,0x02,0x1E,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xDC,0x00,0x05,0x06,0x01,0x02,0x01,0x00,0x03,0x04,0x03,0x00, + 0x05,0x05,0x0A,0x0A,0x0F,0x0F,0x14,0x14,0x64,0x5A,0x01,0x00,0x03,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03, + 0x41,0x22,0x01,0x00,0x10,0x10,0x88,0x00,0x30,0x7F,0x10,0x3F,0x00,0x00,0x00,0x00, + 0x01,0x00,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00, + 0x8C,0x00,0x0F,0x00,0x05,0x00,0x00,0x00,0x0A,0x00,0xC8,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x00,0x00,0x2C,0x01,0x00,0x00,0x2C,0x01,0x5E,0x01,0x00,0x00, + 0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00, + 0x25,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x64,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x0A,0x00,0x00,0x5A,0x5A,0x5A,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x32,0x00,0x50,0x00,0x32,0x00,0x50,0x00,0x0A,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x41,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x15,0x0E,0x15,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFF,0x0F,0xFF,0x0F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x22,0x01,0x00, + 0x00,0x00,0x10,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x1C,0x1C,0xA8,0x00, + 0x30,0x3F,0x30,0x3F,0x64,0x14,0x10,0x00,0x00,0x00,0x04,0x81,0x00,0x00,0xFF,0x0F, + 0x01,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xC8,0x00,0x40,0x06,0x00,0x00,0x08,0x20, + 0x11,0x30,0x10,0x00,0x61,0x80,0x01,0x00,0xFF,0xFF,0xFF,0x10,0xFF,0xFF,0xFF,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x54,0x55,0x45,0x00,0x10,0x10,0x00,0x00,0x00,0x70,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x14,0x00,0x00,0x0C,0x0C,0x06,0x00, + 0x00,0x01,0x03,0x02,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0xC0,0xDA,0x00,0x00, + 0x50,0x31,0x20,0x01,0x50,0x37,0x20,0x07,0x50,0x31,0x20,0x01,0x50,0x31,0x20,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, + 0xD0,0x07,0x08,0x00,0x12,0x12,0xC8,0x01,0x90,0x81,0x0C,0x00,0x00,0x08,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x03,0xC8,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x00,0x64,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,0x10,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x3F,0x26,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26, + 0x26,0x3F,0x26,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x26,0x3F, + 0x26,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x26,0x3F,0x26,0x26, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x26,0x3F,0x26,0x26,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x26,0x3F,0x26,0x26,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x26,0x26,0x3F,0x26,0x26,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x26,0x26,0x3F,0x26,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x26,0x26,0x3F,0x26,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26, + 0x26,0x3F,0x26,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x26,0x3F, + 0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x3F,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x3F,0x28,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x28,0x3F,0x2C,0x26,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x22,0x28,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x26,0x26,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x44,0xC8,0x61,0x14,0x44, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0x00,0xC0,0xA1,0x5F, + 0x21,0x2C,0xA2,0x5F,0x42,0xBC,0xA2,0x5F,0x63,0x28,0xA3,0x5F,0x84,0xB8,0xA3,0x5F, + 0xA5,0x24,0xA4,0x5F,0xC6,0xB4,0xA4,0x5F,0xE7,0x20,0xA5,0x5F,0x08,0xB1,0xA5,0x5F, + 0x29,0x9D,0xA8,0x5F,0x4A,0x01,0xA9,0x5F,0x6B,0x99,0xA9,0x5F,0x8C,0x05,0xAA,0x5F, + 0xAD,0x95,0xAA,0x5F,0xCE,0x09,0xA0,0x5F,0xEF,0x11,0xA0,0x5F,0x10,0x0E,0xA0,0x5F, + 0x31,0x46,0xA0,0x5F,0x52,0x52,0xA0,0x5F,0x73,0x4A,0xA0,0x5F,0x94,0x4E,0xA0,0x5F, + 0xB5,0x02,0xA0,0x5F,0xD6,0x02,0xA0,0x5F,0xF7,0x02,0xA0,0x5F,0x00,0x08,0x00,0x00, + 0x00,0x80,0x01,0x00,0x00,0x0C,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x06,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x30,0x00,0x00,0x80,0x01,0x00,0x00, + 0x01,0x10,0x00,0x00,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00,0x02,0x00, + 0x08,0x00,0x10,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x1E,0x00, + 0xF8,0x0F,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x30, + 0x6F,0x68,0x07,0x00,0x00,0x00,0x00,0x00,0x30,0x60,0x30,0x60,0x60,0x30,0x60,0x30, + 0x00,0x00,0x00,0x00,0x57,0x50,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47,0x40,0x04,0x00,0x00,0xC0,0x9B,0x00,0x00, + 0xC0,0x92,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x03,0x00,0x00, + 0x00,0x96,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x02,0x00,0x00, + 0x00,0x99,0x00,0x00,0x00,0x04,0x00,0x00,0x0B,0x00,0xBE,0x00,0x00,0x00,0x00,0x00, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47}; + +#endif // __IST30XXB_FW_H__ diff --git a/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0001_20140225.h b/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0001_20140225.h new file mode 100644 index 00000000..7eff4e55 --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0001_20140225.h @@ -0,0 +1,2572 @@ +#ifndef __IST30XXB_FW_H__ +#define __IST30XXB_FW_H__ + +/* ist30xxb binary: KANAS MELFAS, f/w 1(00040000) */ +static unsigned char ist30xxb_fw[] = { + 0x06,0x00,0x00,0xEA,0x2C,0x00,0x00,0xEA,0x2B,0x00,0x00,0xEA,0x2A,0x00,0x00,0xEA, + 0x29,0x00,0x00,0xEA,0x28,0x00,0x00,0xEA,0x27,0x00,0x00,0xEA,0x3E,0x00,0x00,0xEA, + 0x14,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0xA0,0xE1,0x00,0x00,0x00,0xEA,0x0C,0x20,0x00,0x40, + 0x11,0x01,0xA0,0xE3,0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0xC1,0x01,0xA0,0xE3, + 0x1C,0x10,0x9F,0xE5,0x00,0x10,0x80,0xE5,0x18,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0xF1,0x01,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0x01,0x00,0x00,0xEA,0xC8,0x74,0x00,0x00,0x4C,0x00,0x00,0x40,0x00,0x00,0x0F,0xE1, + 0x1F,0x00,0xC0,0xE3,0xD1,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x1C,0xD0,0x9F,0xE5, + 0xD3,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x14,0xD0,0x9F,0xE5,0x00,0x00,0x0F,0xE1, + 0xC0,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x08,0x00,0x9F,0xE5,0x10,0xFF,0x2F,0xE1, + 0xFC,0x0F,0x00,0x20,0xC0,0x0F,0x00,0x20,0xA7,0x01,0x00,0x00,0x11,0x01,0xA0,0xE3, + 0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x5C,0x30,0x9F,0xE5,0x5C,0x40,0x9F,0xE5, + 0x00,0x40,0x83,0xE5,0x91,0x01,0xA0,0xE3,0x33,0x16,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0xAC,0x00,0x1F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0x00,0x40,0x83,0xE5, + 0xFF,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x03,0x00,0x00,0xEB,0xFE,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0x00,0xEB,0xF7,0xFF,0xFF,0xEA,0x01,0x29,0xA0,0xE3, + 0x01,0x20,0x52,0xE2,0xFD,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0xFF,0x40,0x2D,0xE9, + 0xC6,0x00,0x00,0xEB,0xFF,0x40,0xBD,0xE8,0x04,0xF0,0x5E,0xE2,0x1C,0x40,0x00,0x30, + 0x70,0xE9,0x1C,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x3C,0x4A,0x3A,0x48,0x3A,0x49,0x92,0x08,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x38,0x48,0x01,0x21,0xC9,0x02,0x01,0x62, + 0x00,0x21,0x01,0x62,0x01,0x62,0x36,0x49,0x36,0x48,0x01,0x60,0x20,0x21,0x41,0x60, + 0xA0,0x21,0x81,0x60,0x70,0x47,0xF8,0xB5,0x30,0x4B,0x9F,0x6A,0x32,0x48,0x00,0x69, + 0x42,0x08,0x58,0x69,0x19,0x15,0x08,0x43,0x58,0x61,0xFF,0xF7,0xE5,0xFF,0x58,0x69, + 0xFF,0x21,0x81,0x31,0x08,0x43,0x58,0x61,0x2C,0x48,0x2D,0x4C,0x20,0x60,0xFF,0x20, + 0x90,0x30,0x60,0x60,0x13,0x20,0xA0,0x60,0xA0,0x68,0xA6,0x15,0x30,0x43,0xA0,0x60, + 0x24,0x4D,0x5F,0x23,0x00,0x2F,0x27,0xD1,0x26,0x4F,0x21,0xE0,0x68,0x68,0x00,0x07, + 0x1E,0xD5,0xE8,0x68,0x40,0x28,0x04,0xD1,0xEA,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1, + 0x14,0xE0,0x20,0x28,0x04,0xD3,0xEF,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1,0x0D,0xE0, + 0x0D,0x28,0x08,0xD1,0x2E,0x20,0x68,0x60,0x68,0x69,0x80,0x06,0xFC,0xD4,0x68,0x68, + 0x80,0x07,0xFC,0xD5,0x08,0xE0,0x68,0x68,0x80,0x07,0xFC,0xD5,0xFF,0xF7,0xAC,0xFF, + 0xE0,0x68,0x15,0x49,0x88,0x42,0xD9,0xD3,0xFF,0xF7,0xA6,0xFF,0xA0,0x68,0xB0,0x43, + 0xA0,0x60,0x00,0xF0,0x3D,0xF9,0xF8,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x0F,0x49, + 0x0F,0x4A,0x00,0x20,0x01,0xE0,0x08,0xC9,0x18,0x18,0x91,0x42,0xFB,0xD3,0x70,0x47, + 0x00,0x00,0x00,0x10,0x94,0x02,0x00,0x00,0xEC,0x00,0x00,0x00,0x40,0x00,0x00,0x40, + 0xDE,0x10,0x05,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0xFF,0xFF,0x00,0x00, + 0x00,0x40,0x00,0x40,0xFF,0x03,0xFF,0x2F,0x50,0xC3,0x00,0x00,0x40,0x04,0x00,0x00, + 0xC0,0x92,0x00,0x00,0x38,0x48,0x41,0x6B,0xC9,0x07,0xFC,0xD0,0x41,0x6B,0x01,0x22, + 0x11,0x43,0x41,0x63,0x70,0x47,0x34,0x48,0xC2,0x69,0x41,0x14,0x8A,0x43,0xC2,0x61, + 0xC2,0x69,0x0A,0x43,0xC2,0x61,0xC2,0x69,0x8A,0x43,0xC2,0x61,0x70,0x47,0x10,0xB4, + 0x2D,0x4C,0x40,0x23,0x60,0x60,0x20,0x68,0x80,0x0A,0x80,0x02,0x10,0x43,0xA8,0x22, + 0x10,0x43,0x20,0x60,0x02,0xE0,0x08,0x78,0xA0,0x60,0x49,0x1C,0x5B,0x1E,0xFA,0xD2, + 0x10,0xBC,0x70,0x47,0xF0,0xB5,0x05,0x00,0x0E,0x00,0x1F,0x00,0x94,0x09,0x81,0x06, + 0x22,0x48,0x12,0xD1,0x91,0x06,0x10,0xD1,0x0C,0xE0,0x3A,0x00,0x31,0x00,0x28,0x00, + 0xFF,0xF7,0xDD,0xFF,0x40,0x35,0x2D,0x04,0x2D,0x0C,0x40,0x36,0xFF,0xF7,0xC2,0xFF, + 0xFF,0xF7,0xC9,0xFF,0x64,0x1E,0x60,0x1C,0xEF,0xD1,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x15,0x4B,0x40,0x22,0x58,0x60,0x18,0x68,0x80,0x0A,0x80,0x02,0x08,0x43,0xA4,0x21, + 0x08,0x43,0x18,0x60,0x00,0x21,0x00,0xE0,0x99,0x60,0x52,0x1E,0xFC,0xD2,0x70,0x47, + 0x70,0xB5,0x05,0x00,0x16,0x00,0x8C,0x09,0x82,0x06,0x0C,0x48,0x10,0xD1,0x89,0x06, + 0x0E,0xD1,0x0A,0xE0,0x31,0x00,0x28,0x00,0xFF,0xF7,0xE2,0xFF,0x40,0x35,0x2D,0x04, + 0x2D,0x0C,0xFF,0xF7,0x97,0xFF,0xFF,0xF7,0x9E,0xFF,0x64,0x1E,0x60,0x1C,0xF1,0xD1, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0xF8,0xB5,0x03,0x25,0x0F,0x4E,0x2D,0x07, + 0x01,0x27,0xF0,0x6A,0x00,0x28,0x15,0xD0,0xF0,0x6B,0xE9,0x68,0x80,0x08,0x3C,0x00, + 0x84,0x40,0x21,0x43,0xE9,0x60,0x69,0x68,0x21,0x42,0x00,0xD0,0x34,0x63,0x81,0x00, + 0x07,0x48,0x40,0x58,0x00,0x28,0x01,0xD0,0x07,0xF0,0x30,0xFA,0xE8,0x68,0xA0,0x43, + 0xE8,0x60,0xE6,0xE7,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x30, + 0x4C,0x07,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF8,0xB5,0x00,0xF0,0x55,0xFD,0x07,0x00,0x03,0xF0,0x48,0xFC,0x03,0xF0,0x3A,0xFC, + 0x03,0xF0,0xC4,0xFC,0x47,0x4A,0x48,0x49,0x48,0x48,0x05,0xF0,0x7D,0xF9,0x48,0x4D, + 0x00,0x26,0x05,0x21,0x49,0x03,0x30,0x00,0x2E,0x82,0x00,0xF0,0xEF,0xF9,0xA8,0x61, + 0x44,0x49,0x00,0x20,0x00,0xF0,0xEA,0xF9,0x43,0x4B,0x44,0x49,0xD8,0x63,0x44,0x48, + 0x00,0xF0,0xE4,0xF9,0xD9,0x6B,0x00,0x04,0x08,0x43,0xD8,0x63,0x03,0xF0,0x82,0xFC, + 0x40,0x4A,0x41,0x48,0x00,0x21,0x05,0xF0,0x71,0xF9,0x06,0xF0,0x07,0xFD,0x03,0xF0, + 0x29,0xFD,0x3E,0x48,0x01,0x24,0x81,0x7A,0x64,0x07,0xA9,0x71,0xC1,0x7A,0xE9,0x71, + 0x40,0x7A,0x28,0x72,0x6E,0x71,0x6E,0x72,0xAE,0x72,0xEE,0x72,0x36,0x48,0x2E,0x73, + 0x6E,0x73,0x60,0x63,0xFF,0x20,0xE0,0x63,0xE0,0x14,0x00,0xF0,0xED,0xFC,0x34,0x48, + 0x06,0x70,0xFF,0x20,0x81,0x30,0x00,0xF0,0xE7,0xFC,0x32,0x49,0x02,0x20,0x06,0xF0, + 0xED,0xFF,0x02,0x20,0x06,0xF0,0xF2,0xFF,0x28,0x7A,0x00,0x28,0x01,0xD0,0x07,0xF0, + 0x6D,0xF9,0x00,0x2F,0x1F,0xD1,0x2C,0x4F,0xBE,0x15,0x28,0x7A,0x00,0x28,0x02,0xD0, + 0x2A,0x49,0x28,0x6B,0x88,0x60,0xE0,0x6B,0x0B,0x28,0x14,0xD0,0x28,0x48,0x40,0x68, + 0x00,0x07,0x01,0xD5,0x02,0xF0,0xFC,0xFA,0xF8,0x68,0x26,0x49,0x88,0x42,0xEC,0xD9, + 0x25,0x48,0xC0,0x68,0xFF,0x28,0x06,0xD1,0xB8,0x68,0xB0,0x43,0xB8,0x60,0xB8,0x68, + 0x30,0x43,0xB8,0x60,0xE1,0xE7,0xE8,0x79,0x00,0x28,0x03,0xD1,0x01,0x20,0x80,0x02, + 0x00,0xF0,0xAA,0xFC,0x28,0x7A,0x00,0x28,0x01,0xD0,0x07,0xF0,0x47,0xF9,0x02,0x20, + 0x06,0xF0,0xC8,0xFF,0xFF,0x20,0x81,0x30,0x00,0xF0,0x9E,0xFC,0x17,0x49,0x05,0x20, + 0x03,0xF0,0x6A,0xFA,0x0B,0x20,0xE0,0x63,0x03,0xF0,0x00,0xFB,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x28,0x00,0x00,0x00,0xDC,0x79,0x00,0x00,0x00,0x00,0x00,0x10, + 0x14,0x07,0x00,0x20,0xC0,0x92,0x00,0x00,0xC0,0x0F,0x00,0x20,0x00,0x9D,0x00,0x00, + 0x00,0x93,0x00,0x00,0xD4,0x06,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00, + 0xD1,0x07,0x00,0x20,0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x30,0x00,0x40, + 0x00,0x40,0x00,0x30,0x50,0xC3,0x00,0x00,0xC0,0x92,0x00,0x00,0x11,0x75,0x00,0x00, + 0x78,0x47,0xC0,0x46,0x01,0x30,0x90,0xE1,0x4C,0x00,0x00,0x4A,0x00,0x20,0xB0,0xE3, + 0xA0,0x30,0x71,0xE0,0x43,0x00,0x00,0x3A,0x20,0x32,0x71,0xE0,0x34,0x00,0x00,0x3A, + 0x20,0x34,0x71,0xE0,0x26,0x00,0x00,0x3A,0x20,0x36,0x71,0xE0,0x17,0x00,0x00,0x3A, + 0x20,0x38,0x71,0xE0,0x09,0x00,0x00,0x3A,0x01,0x14,0xA0,0xE1,0x20,0x38,0x71,0xE0, + 0xFF,0x24,0x82,0xE3,0xFF,0x28,0x82,0x23,0x01,0x14,0xA0,0x21,0x20,0x36,0x71,0xE0, + 0x0E,0x00,0x00,0x3A,0x00,0x30,0x71,0xE2,0x6F,0x00,0x00,0x2A,0x21,0x14,0xA0,0x21, + 0xA0,0x37,0x71,0xE0,0x81,0x07,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x37,0x71,0xE0, + 0x01,0x07,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x36,0x71,0xE0,0x81,0x06,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x36,0x71,0xE0,0x01,0x06,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x35,0x71,0xE0,0x81,0x05,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x35,0x71,0xE0, + 0x01,0x05,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x34,0x71,0xE0,0x81,0x04,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x34,0x71,0xE0,0x01,0x04,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xE5,0xFF,0xFF,0x2A,0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0, + 0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x30,0x71,0xE0, + 0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31, + 0x02,0x00,0xA2,0xE0,0x1E,0xFF,0x2F,0xE1,0x01,0x10,0x50,0xE0,0x01,0x00,0xA0,0x23, + 0x1E,0xFF,0x2F,0x21,0x00,0x10,0xA0,0xE1,0x00,0x00,0xB0,0xE3,0x1E,0xFF,0x2F,0xE1, + 0x02,0x21,0x11,0xE2,0x00,0x10,0x61,0x42,0x40,0xC0,0x32,0xE0,0x00,0x00,0x60,0x22, + 0x20,0x32,0x71,0xE0,0x1D,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0,0x0F,0x00,0x00,0x3A, + 0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x23,0x82,0xE3,0x0B,0x00,0x00,0x3A, + 0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x26,0x82,0xE3,0x07,0x00,0x00,0x3A, + 0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x29,0x82,0xE3,0x01,0x13,0xA0,0x21, + 0x3F,0x2C,0x82,0x23,0x00,0x30,0x71,0xE2,0x1D,0x00,0x00,0x2A,0x21,0x13,0xA0,0x21, + 0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0, + 0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0, + 0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xEB,0xFF,0xFF,0x2A,0xA0,0x30,0x71,0xE0, + 0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31, + 0x02,0x00,0xA2,0xE0,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x00,0x10,0x61,0x22, + 0x1E,0xFF,0x2F,0xE1,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x01,0x40,0x2D,0xE9, + 0x00,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB,0x02,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x00,0x00,0xA0,0xE1,0x07,0x40,0x2D,0xE9,0x02,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB, + 0x07,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x01,0x00,0x10,0xB5,0x02,0x20,0x07,0xF0,0x67,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x78,0x47,0xC0,0x46,0x00,0x20,0xB0,0xE3,0x20,0x32,0x71,0xE0,0xA0,0xFF,0xFF,0x3A, + 0x20,0x34,0x71,0xE0,0x92,0xFF,0xFF,0x3A,0x20,0x36,0x71,0xE0,0x83,0xFF,0xFF,0x3A, + 0x20,0x38,0x71,0xE0,0x75,0xFF,0xFF,0x3A,0x6A,0xFF,0xFF,0xEA,0x78,0x47,0xC0,0x46, + 0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0xAD,0x00,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x51,0x00,0x00,0x10,0x78,0x47,0xC0,0x46, + 0xED,0xFD,0xFF,0xEA,0x02,0x48,0x01,0x68,0x02,0x4A,0x11,0x40,0x01,0x60,0x70,0x47, + 0x00,0xA0,0x00,0x40,0xFE,0xFF,0xEF,0xFF,0x07,0x49,0x10,0xB5,0x08,0x68,0x07,0x4A, + 0x10,0x43,0x08,0x60,0x0B,0x24,0x02,0xF0,0xCF,0xF8,0x64,0x1E,0x00,0x2C,0xFA,0xDC, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0xA0,0x00,0x40,0x01,0x00,0x10,0x00, + 0xF0,0xB5,0x01,0x27,0x7F,0x07,0x3D,0x68,0x17,0x4E,0xB0,0x7B,0xC0,0x07,0x26,0xD0, + 0x70,0x7A,0x00,0x28,0x21,0xD0,0xBA,0x00,0x01,0x2D,0x02,0xD1,0x79,0x68,0x11,0x43, + 0xB9,0x60,0x00,0x04,0x02,0x43,0x90,0x0A,0x80,0x02,0xA9,0x05,0x89,0x0D,0x08,0x43, + 0x78,0x60,0x01,0x24,0x08,0xE0,0x0D,0x49,0xE0,0x00,0x40,0x18,0x0C,0x49,0x41,0x18, + 0x28,0x19,0x06,0xF0,0xC7,0xFB,0x64,0x1C,0x70,0x7A,0xA0,0x42,0xF3,0xDA,0x70,0x7A, + 0x01,0x28,0x02,0xD1,0x00,0x2D,0x00,0xD1,0x01,0x25,0x70,0x7A,0x45,0x19,0x3D,0x60, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0x3A,0x06,0x00,0x00,0x70,0xB4,0x1A,0x4B,0xDA,0x88,0xD2,0x07,0x2B,0xD1,0x19,0x4A, + 0x05,0x78,0x54,0x7A,0xE4,0x00,0xE6,0x18,0x19,0x24,0xA4,0x01,0x36,0x19,0xB5,0x70, + 0x56,0x7A,0x45,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0xB5,0x80,0x56,0x7A,0x85,0x88, + 0xF6,0x00,0xF6,0x18,0x36,0x19,0xF5,0x80,0x55,0x7A,0xED,0x00,0xED,0x18,0x2D,0x19, + 0x29,0x72,0x55,0x7A,0xC1,0x79,0xED,0x00,0xEB,0x18,0x1B,0x19,0x59,0x72,0x51,0x7A, + 0x49,0x1C,0x51,0x72,0xC0,0x79,0x06,0x28,0x07,0xD0,0x0A,0x28,0x01,0xD0,0x12,0x28, + 0x01,0xD1,0x00,0x20,0x90,0x72,0x70,0xBC,0x70,0x47,0x01,0x20,0xFA,0xE7,0x00,0x00, + 0x40,0x00,0x00,0x20,0x40,0x06,0x00,0x20,0xFF,0xB5,0x0A,0x20,0x48,0x43,0x16,0x4F, + 0x81,0xB0,0xC5,0x19,0xFF,0x35,0x48,0x00,0xC1,0x35,0xC0,0x19,0x2A,0x73,0x00,0x90, + 0x0C,0x00,0xE0,0x30,0x80,0x8A,0x16,0x00,0x0A,0x21,0xFF,0xF7,0x29,0xFF,0xE8,0x81, + 0x00,0x98,0x0A,0x21,0xFF,0x30,0x01,0x30,0xC0,0x89,0xFF,0xF7,0x21,0xFF,0x28,0x82, + 0x38,0x19,0xFF,0x30,0x41,0x30,0x00,0x7E,0xB9,0x19,0x68,0x73,0x04,0x98,0xA8,0x74, + 0x01,0x98,0x06,0x55,0x0D,0x20,0x80,0x01,0x08,0x18,0x00,0x21,0xC4,0x77,0x81,0x74, + 0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20,0x06,0x48,0x0F,0x23, + 0x42,0x79,0x01,0x68,0x9B,0x06,0x49,0x1C,0x12,0x07,0x12,0x0A,0xD2,0x18,0x09,0x03, + 0x09,0x0B,0x0A,0x43,0x02,0x60,0x70,0x47,0x40,0x00,0x00,0x20,0xF1,0xB5,0xB1,0x48, + 0x90,0xB0,0x0F,0x90,0x40,0x7C,0x02,0x90,0x0F,0x98,0xC0,0x7C,0x01,0x90,0x0F,0x98, + 0x00,0x7C,0x00,0x90,0xAC,0x48,0x00,0x68,0x00,0x88,0x00,0x05,0x7E,0xD5,0x10,0x98, + 0x01,0x28,0x00,0xD0,0x02,0x20,0x03,0x90,0x00,0x20,0x04,0x90,0x41,0xE1,0x03,0x98, + 0x81,0x00,0x01,0x20,0x40,0x07,0x08,0x18,0x0E,0x90,0x00,0x68,0x81,0x00,0x0D,0x90, + 0x0C,0x0F,0x80,0x0F,0xC0,0x07,0x03,0xD1,0x20,0x00,0x01,0xF0,0x05,0xFB,0x29,0xE1, + 0x9E,0x48,0xA5,0x00,0x40,0x5F,0x00,0x28,0x84,0x46,0x0F,0xDA,0x0D,0x98,0x9B,0x49, + 0x80,0x01,0x80,0x0D,0x48,0x53,0x0D,0x98,0x6A,0x18,0x80,0x05,0x80,0x0D,0x50,0x80, + 0x4A,0x5B,0x34,0x31,0x4A,0x53,0x69,0x18,0x48,0x80,0x13,0xE1,0x02,0x9F,0x93,0x49, + 0x00,0x20,0x7F,0x1E,0x68,0x31,0x69,0x18,0x06,0xE0,0x83,0x00,0xCA,0x18,0x96,0x88, + 0x40,0x1C,0xCE,0x52,0xD3,0x88,0x53,0x80,0xB8,0x42,0xF6,0xDB,0x0D,0x98,0x62,0x46, + 0x80,0x01,0x80,0x0D,0x0C,0x90,0x80,0x1A,0x02,0x9A,0x88,0x4E,0x92,0x00,0x8B,0x18, + 0x20,0x3B,0x98,0x83,0x0D,0x98,0xAA,0x19,0x80,0x05,0x80,0x0D,0x0A,0x92,0x0B,0x90, + 0x52,0x88,0x80,0x1A,0xD8,0x83,0x00,0x20,0x06,0x00,0x02,0x00,0x07,0xE0,0x93,0x00, + 0xCF,0x5E,0x38,0x18,0xCF,0x18,0x02,0x23,0xFB,0x5E,0x9E,0x19,0x52,0x1C,0x02,0x9B, + 0x9A,0x42,0xF4,0xDB,0x19,0x00,0xFF,0xF7,0x53,0xFD,0x07,0x00,0x02,0x99,0x30,0x00, + 0xFF,0xF7,0x4E,0xFD,0x00,0x2F,0x00,0xDC,0x7F,0x42,0x0F,0x99,0x89,0x7C,0x8F,0x42, + 0x17,0xDA,0x00,0x28,0x00,0xDC,0x40,0x42,0x88,0x42,0x12,0xDA,0x01,0x98,0x0C,0x21, + 0x48,0x43,0x0A,0x21,0xFF,0xF7,0x6C,0xFE,0x62,0x00,0x00,0xE0,0xCD,0xE0,0x6B,0x4B, + 0x28,0x3B,0x99,0x5E,0x88,0x42,0x0C,0xDD,0x0F,0x98,0x00,0x7D,0x08,0x18,0x98,0x52, + 0x07,0xE0,0x66,0x49,0x0F,0x9B,0x60,0x00,0x28,0x39,0x0A,0x5A,0x5B,0x7D,0xD2,0x1A, + 0x0A,0x52,0x62,0x49,0x60,0x00,0x28,0x39,0x0A,0x5E,0x00,0x2A,0x01,0xDC,0x00,0x22, + 0x0A,0x52,0x08,0x5E,0x01,0x99,0x88,0x42,0x09,0x90,0x04,0xDB,0x5B,0x48,0x05,0x21, + 0x0E,0x38,0x01,0x55,0x2B,0xE0,0x88,0x00,0x05,0x21,0xFF,0xF7,0x41,0xFE,0x09,0x99, + 0x88,0x42,0x01,0xDC,0x04,0x20,0x1F,0xE0,0x01,0x98,0x41,0x00,0x40,0x18,0x05,0x21, + 0xFF,0xF7,0x36,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x03,0x20,0x14,0xE0,0x01,0x98, + 0x05,0x21,0x40,0x00,0xFF,0xF7,0x2C,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x02,0x20, + 0x0A,0xE0,0x01,0x98,0x05,0x21,0xFF,0xF7,0x23,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC, + 0x01,0x20,0x01,0xE0,0x08,0x00,0x02,0xD1,0x44,0x49,0x0E,0x39,0x08,0x55,0x43,0x49, + 0x0C,0x9A,0x34,0x31,0x48,0x5F,0x16,0x1A,0x08,0x90,0x68,0x18,0x02,0x21,0x07,0x90, + 0x41,0x5E,0x0B,0x9A,0x3D,0x48,0x57,0x1A,0x0E,0x38,0x06,0x91,0x01,0x5D,0x0F,0x98, + 0x80,0x7D,0x81,0x42,0x27,0xD3,0x00,0x2E,0x01,0xD1,0x00,0x24,0x0D,0xE0,0x30,0x1E, + 0x00,0xDC,0x70,0x42,0x00,0x99,0x88,0x42,0x01,0xDA,0x01,0x24,0x05,0xE0,0x30,0x1E, + 0x00,0xDC,0x70,0x42,0xFF,0xF7,0xC4,0xFC,0x04,0x00,0x00,0x2F,0x01,0xD1,0x00,0x20, + 0x0C,0xE0,0x38,0x1E,0x00,0xDC,0x78,0x42,0x00,0x99,0x88,0x42,0x01,0xDA,0x01,0x20, + 0x04,0xE0,0x38,0x1E,0x00,0xDC,0x78,0x42,0xFF,0xF7,0xB2,0xFC,0x08,0x99,0x00,0x2E, + 0x19,0xDB,0x09,0x19,0x18,0xE0,0x09,0x98,0x64,0x21,0x48,0x43,0x01,0x99,0xFF,0xF7, + 0xA7,0xFC,0x64,0x21,0x08,0x1A,0x31,0x1E,0x05,0x90,0x00,0xDC,0x71,0x42,0x48,0x43, + 0x64,0x21,0xFF,0xF7,0x9D,0xFC,0x05,0x9A,0x04,0x00,0x38,0x1E,0x00,0xDC,0x78,0x42, + 0x50,0x43,0x64,0x21,0xE0,0xE7,0x09,0x1B,0x06,0x9A,0x00,0x2F,0x01,0xDB,0x10,0x18, + 0x00,0xE0,0x10,0x1A,0x15,0x4A,0x0C,0x9B,0x53,0x53,0x0A,0x9B,0x0B,0x9A,0x5A,0x80, + 0x12,0x4A,0x13,0x4B,0x34,0x32,0x51,0x53,0x07,0x9A,0x89,0x05,0x50,0x80,0x0D,0x9A, + 0x89,0x09,0x1A,0x40,0x0A,0x43,0x91,0x0A,0x89,0x02,0x80,0x05,0x80,0x0D,0x01,0x43, + 0x0E,0x98,0x01,0x60,0x04,0x98,0x40,0x1C,0x04,0x90,0x03,0x98,0x40,0x1C,0x03,0x90, + 0x04,0x98,0x10,0x99,0x88,0x42,0x00,0xDA,0xB9,0xE6,0x11,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xA0,0x93,0x00,0x00,0xCC,0x07,0x00,0x20,0xCC,0x0A,0x00,0x20, + 0xFF,0xFF,0x00,0xFC,0x10,0x4B,0x30,0xB4,0x1B,0x21,0xDA,0x88,0x89,0x01,0x80,0x24, + 0x59,0x18,0x00,0x28,0x0E,0xD0,0x0D,0x48,0x45,0x7B,0x0D,0x80,0xC5,0x89,0x4D,0x80, + 0x05,0x8A,0x8D,0x80,0x40,0x8A,0xC8,0x80,0x08,0x48,0x20,0x30,0x00,0x89,0x22,0x43, + 0x08,0x81,0x06,0xE0,0x00,0x20,0x08,0x80,0x48,0x80,0x88,0x80,0xC8,0x80,0xA2,0x43, + 0x08,0x81,0xDA,0x80,0x30,0xBC,0x70,0x47,0x40,0x00,0x00,0x20,0x80,0x93,0x00,0x00, + 0x7F,0xB5,0x25,0x4D,0x06,0x00,0x1A,0x28,0x0C,0xD1,0x28,0x6A,0x00,0x28,0x09,0xD1, + 0x68,0x6A,0x00,0x28,0x06,0xD1,0x21,0x4C,0x01,0xF0,0x62,0xFE,0x64,0x1E,0xFB,0xD2, + 0xFF,0x24,0x12,0xE0,0x05,0xF0,0x62,0xFB,0x01,0xF0,0x5A,0xFD,0x01,0xF0,0xA2,0xFD, + 0x03,0xAA,0x01,0xA9,0x02,0xA8,0x04,0xF0,0x45,0xFD,0x04,0x00,0x03,0x00,0x01,0x9A, + 0x02,0x99,0x03,0x98,0x00,0x96,0x00,0xF0,0x33,0xF8,0x02,0x20,0x06,0xF0,0xA2,0xFB, + 0x02,0x20,0x06,0xF0,0x93,0xFB,0x12,0x49,0xE8,0x68,0xC8,0x61,0x28,0x69,0xC8,0x61, + 0x10,0x48,0xC2,0x68,0x52,0x08,0x52,0x00,0xC2,0x60,0x0F,0x4B,0x0F,0x48,0x02,0xE0, + 0xDA,0x68,0x82,0x42,0x02,0xD8,0x4A,0x69,0x92,0x06,0xF9,0xD5,0x48,0x68,0x80,0x07, + 0xFC,0xD5,0x01,0xF0,0x4D,0xFE,0x01,0x20,0x00,0xF0,0x6E,0xF8,0x20,0x00,0x04,0xB0, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x92,0x00,0x00,0xE7,0x03,0x00,0x00, + 0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40,0x50,0xC3,0x00,0x00, + 0xFF,0xB5,0x05,0x00,0x0E,0x00,0x91,0xB0,0xFF,0xF7,0x74,0xF9,0x1C,0x48,0x03,0x27, + 0x04,0x04,0x24,0x0C,0x3F,0x02,0x00,0x22,0x39,0x00,0x20,0x00,0xFF,0xF7,0x1E,0xFD, + 0x18,0x49,0x3A,0x00,0x20,0x00,0x00,0x23,0xFF,0xF7,0x20,0xFD,0x16,0x49,0x40,0x22, + 0x01,0xA8,0x04,0xF0,0x91,0xFC,0x14,0x99,0x28,0x04,0x09,0x03,0x08,0x43,0x13,0x49, + 0x08,0x43,0x04,0x90,0x13,0x99,0x30,0x04,0x08,0x43,0x05,0x90,0x10,0x48,0x11,0x49, + 0xC0,0x6B,0x10,0x90,0x0C,0x48,0x80,0x69,0x40,0x1C,0x07,0x90,0x00,0x20,0x8D,0x42, + 0x09,0x90,0x02,0xD1,0x06,0x99,0x49,0x1C,0x06,0x91,0x1A,0x99,0x1A,0x29,0x00,0xD1, + 0x0A,0x90,0x01,0xA8,0x06,0xF0,0x80,0xFC,0x15,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x9D,0x00,0x00,0x00,0x00,0x10,0x40,0xC0,0x92,0x00,0x00,0xAB,0x0C,0x00,0x80, + 0xC0,0x0F,0x00,0x20,0xEC,0x0D,0x00,0x00,0x02,0x4A,0x51,0x69,0x81,0x43,0x51,0x61, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x4A,0x51,0x69,0x01,0x43,0x51,0x61, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x78,0x47,0xC0,0x46,0x01,0x21,0xA0,0xE3, + 0x50,0x30,0x92,0xE5,0x0C,0x10,0xA0,0xE3,0x03,0x00,0x80,0xE1,0x50,0x00,0x82,0xE5, + 0x00,0x00,0x00,0xEA,0x00,0x00,0xA0,0xE1,0x01,0x10,0x51,0xE2,0xFC,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x01,0x48,0x40,0x69,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x01,0x48,0x80,0x6A,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x49,0x08,0x62, + 0x00,0x20,0x08,0x62,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x01,0x49,0x48,0x61, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x07,0x49,0xFF,0x28,0x04,0xD1,0x01,0x20, + 0xC8,0x60,0x00,0x20,0x88,0x61,0x70,0x47,0x8A,0x69,0x12,0x07,0x12,0x0F,0x02,0x43, + 0x8A,0x61,0x02,0x20,0xC8,0x60,0x70,0x47,0x40,0x00,0x00,0x40,0xF0,0xB5,0xFF,0xB0, + 0x00,0x20,0xCC,0xB0,0xBC,0x90,0x40,0x1E,0xB8,0x90,0xFF,0x48,0xFF,0x4A,0x00,0x68, + 0xFF,0x4F,0x60,0x30,0xC1,0x7D,0xFF,0x4C,0x05,0x91,0x01,0x7E,0x12,0x88,0x89,0x18, + 0x09,0x06,0x09,0x0E,0x04,0x91,0x41,0x7E,0x03,0x91,0x80,0x7E,0x02,0x90,0x00,0x20, + 0x3D,0x79,0x01,0x26,0x01,0x90,0x14,0xE0,0x0A,0x20,0x70,0x43,0x0B,0x21,0xC0,0x19, + 0x89,0x01,0x41,0x18,0x09,0x7C,0x00,0x29,0x0A,0xD0,0xF3,0x49,0x40,0x18,0x02,0xF0, + 0x31,0xFE,0x00,0x28,0x04,0xD0,0x01,0x98,0x40,0x1C,0x00,0x06,0x00,0x0E,0x01,0x90, + 0x76,0x1C,0xA0,0x7A,0xB0,0x42,0xE7,0xDA,0xEC,0x48,0x01,0x88,0x82,0x88,0x8E,0x1A, + 0x00,0x2E,0x00,0xDC,0x56,0x1A,0x41,0x88,0xC0,0x88,0x36,0x04,0x36,0x0C,0x0A,0x1A, + 0x00,0x2A,0x00,0xDC,0x42,0x1A,0xE5,0x49,0x10,0x04,0x20,0x39,0x00,0x22,0xCA,0x91, + 0x8A,0x77,0x01,0x99,0x00,0x0C,0x00,0x29,0x0C,0xD0,0x1E,0x2E,0x0A,0xD2,0x32,0x28, + 0x01,0xD2,0x01,0x21,0x04,0xE0,0x64,0x28,0x01,0xD2,0x02,0x21,0x00,0xE0,0x03,0x21, + 0xCA,0x98,0x81,0x77,0xCA,0x98,0x40,0x7F,0x00,0x28,0x12,0xD1,0xCA,0x98,0x80,0x7F, + 0x01,0x28,0x02,0xD1,0x05,0x98,0x80,0x1C,0x08,0xE0,0x02,0x28,0x02,0xD1,0x05,0x98, + 0x00,0x1D,0x03,0xE0,0x03,0x28,0x04,0xD1,0x05,0x98,0x80,0x1D,0x00,0x06,0x00,0x0E, + 0x05,0x90,0x0D,0x22,0x00,0x21,0xB4,0xA8,0x04,0xF0,0xA8,0xFB,0xF8,0x88,0xFF,0x21, + 0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06,0x06,0xD5,0x01,0xF0,0x47,0xF8,0x7F,0xB0, + 0x4C,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xE0,0x7A,0x00,0x28,0x01,0xD0,0x40,0x1E, + 0xE0,0x72,0x60,0x7A,0x00,0x2D,0x02,0xD1,0x00,0x28,0x18,0xD0,0x18,0xE0,0x00,0x28, + 0x16,0xD1,0xBC,0x48,0x82,0x22,0x00,0x21,0x8E,0x30,0x04,0xF0,0x87,0xFB,0xE0,0x7A, + 0x00,0x28,0x0C,0xD1,0x01,0x26,0x07,0xE0,0x31,0x06,0x09,0x0E,0x0A,0x00,0x14,0x23, + 0xB4,0xA8,0xFF,0xF7,0x91,0xFC,0x76,0x1C,0xAE,0x42,0xF5,0xDD,0x25,0x72,0xE6,0xE1, + 0x0D,0x22,0x01,0x21,0xB0,0xA8,0x04,0xF0,0x71,0xFB,0x02,0x20,0xAE,0x49,0x06,0x90, + 0xAB,0x48,0x89,0x31,0x41,0x18,0xC9,0x91,0xAB,0x49,0x7C,0x31,0x40,0x18,0xC8,0x90, + 0x14,0xE1,0x0C,0x26,0x07,0xAF,0x34,0x20,0x70,0x43,0x07,0xA9,0x40,0x18,0x00,0x21, + 0x34,0x22,0xC9,0x43,0x04,0xF0,0x5A,0xFB,0x76,0x1E,0xF4,0xD5,0x06,0x98,0x01,0xF0, + 0x05,0xFC,0x01,0x27,0xB9,0x90,0x54,0xE0,0xB9,0x98,0x01,0x26,0xBA,0x90,0x4C,0xE0, + 0x0A,0x20,0x70,0x43,0x9A,0x4A,0x0B,0x21,0x80,0x18,0x89,0x01,0x41,0x18,0xC7,0x91, + 0x09,0x7C,0x00,0x29,0x40,0xD0,0x98,0x49,0x40,0x18,0xC6,0x90,0x02,0xF0,0x7A,0xFD, + 0x06,0x99,0x08,0x43,0x07,0xD0,0xC6,0x98,0x02,0xF0,0x74,0xFD,0x00,0x28,0x33,0xD0, + 0x06,0x98,0x00,0x28,0x30,0xD0,0x8E,0x49,0x78,0x00,0x40,0x18,0xC5,0x90,0xE0,0x30, + 0x80,0x8A,0x0A,0x21,0xFF,0xF7,0x7C,0xFB,0xC7,0x99,0x49,0x8A,0x0A,0x1A,0x00,0x2A, + 0x00,0xDC,0x42,0x1A,0xBB,0x92,0xC5,0x98,0x0A,0x21,0xFF,0x30,0x01,0x30,0xC0,0x89, + 0xFF,0xF7,0x6E,0xFB,0xC7,0x99,0x8A,0x8A,0x11,0x1A,0x00,0x29,0x00,0xDC,0x81,0x1A, + 0xBB,0x9A,0x10,0x00,0x50,0x43,0x0A,0x00,0x4A,0x43,0xBA,0x99,0x80,0x18,0x88,0x42, + 0x04,0xDA,0x34,0x21,0x79,0x43,0x07,0xAA,0x56,0x50,0xBA,0x90,0x34,0x21,0x79,0x43, + 0x07,0xAA,0x89,0x18,0xB2,0x00,0x88,0x50,0x76,0x1C,0xA0,0x7A,0xB0,0x42,0xAF,0xDA, + 0x7F,0x1C,0xAF,0x42,0xA8,0xDD,0x01,0x20,0xA4,0xE0,0x01,0x22,0xB9,0x99,0x10,0x00, + 0x15,0xE0,0xB4,0xAE,0x33,0x5C,0x00,0x2B,0x10,0xD1,0x34,0x23,0x06,0x00,0x5E,0x43, + 0x07,0xAB,0xF7,0x18,0x9E,0x59,0xB3,0x00,0xFF,0x58,0x8F,0x42,0x06,0xDA,0x00,0x2F, + 0x04,0xDB,0x00,0x2E,0x02,0xDB,0x39,0x00,0x00,0x22,0xB8,0x90,0x40,0x1C,0xA8,0x42, + 0xE7,0xDD,0x00,0x2A,0x7E,0xD1,0xBC,0x98,0x34,0x21,0x40,0x1C,0xBC,0x90,0xB8,0x98, + 0x5F,0x4F,0x48,0x43,0x07,0xA9,0xC4,0x90,0x08,0x58,0x0A,0x21,0x48,0x43,0x5E,0x49, + 0xC0,0x19,0x88,0x39,0x41,0x18,0xB8,0x98,0x0A,0x22,0x50,0x43,0xC6,0x19,0x30,0x00, + 0xFF,0x30,0xCD,0x30,0x04,0xF0,0x8E,0xFA,0xB8,0x98,0x0A,0x21,0x40,0x00,0xC0,0x19, + 0xC3,0x90,0xE0,0x30,0x80,0x8A,0xFF,0xF7,0x0B,0xFB,0xFF,0x36,0xC1,0x36,0xF0,0x81, + 0xC3,0x98,0x0A,0x21,0xFF,0x30,0x01,0x30,0xC0,0x89,0xFF,0xF7,0x01,0xFB,0x30,0x82, + 0xB8,0x98,0x38,0x18,0xFF,0x30,0x41,0x30,0x00,0x7E,0x70,0x73,0xB0,0x7C,0x05,0x99, + 0x49,0x1C,0x88,0x42,0x01,0xD2,0x40,0x1C,0xB0,0x74,0xB7,0x7C,0x13,0x2F,0x09,0xD9, + 0x14,0x21,0x38,0x00,0xFF,0xF7,0xEC,0xFA,0x04,0x99,0x89,0x1C,0x88,0x42,0x01,0xD2, + 0x14,0x37,0xB7,0x74,0x30,0x7B,0xB8,0x9A,0xB4,0xA9,0x88,0x54,0xC9,0x9A,0xB8,0x99, + 0x81,0x54,0x31,0x7B,0xC8,0x9A,0x00,0x20,0x88,0x54,0xC4,0x99,0x07,0xAA,0x51,0x58, + 0xB0,0xAA,0x50,0x54,0x01,0x21,0x23,0xE0,0x08,0x00,0x34,0x23,0x58,0x43,0xC4,0x9B, + 0x07,0xAE,0xC2,0x90,0xF3,0x58,0x00,0x22,0x80,0x19,0xD2,0x43,0x9B,0x00,0x84,0x46, + 0xC2,0x50,0xB4,0xA8,0x40,0x5C,0xB9,0x9E,0x00,0x28,0x10,0xD1,0xA7,0x7A,0x01,0x20, + 0x0B,0xE0,0x83,0x00,0x62,0x46,0xD2,0x58,0x00,0x2A,0x05,0xDB,0xB2,0x42,0x03,0xDA, + 0xC2,0x9B,0x07,0xAE,0xF0,0x50,0x16,0x00,0x40,0x1C,0x87,0x42,0xF1,0xDA,0x49,0x1C, + 0xA9,0x42,0x00,0xE0,0x04,0xE0,0xD7,0xDD,0xA0,0x7A,0xBC,0x99,0x88,0x42,0x05,0xDD, + 0xBE,0x98,0x40,0x1C,0xA8,0x42,0xBE,0x90,0x00,0xDC,0x56,0xE7,0x06,0x98,0x41,0x1E, + 0x09,0x06,0x09,0x0E,0x00,0x28,0x06,0x91,0x00,0xD0,0xE2,0xE6,0x01,0x26,0xBF,0x96, + 0xBD,0x90,0x6E,0xE0,0xB0,0xA8,0x80,0x5D,0x00,0x28,0x69,0xD0,0xBF,0x98,0x14,0x49, + 0x28,0x18,0xBE,0x90,0x0A,0x20,0x70,0x43,0x47,0x18,0x0B,0x20,0x80,0x01,0x38,0x18, + 0xC1,0x90,0x00,0x7C,0xC8,0x99,0x40,0x5C,0x03,0x99,0x88,0x42,0x43,0xD2,0xBE,0x98, + 0x0C,0x28,0x40,0xDC,0x0C,0x48,0x38,0x18,0x02,0xF0,0x64,0xFC,0x00,0x28,0x3A,0xD0, + 0xC1,0x98,0xC8,0x99,0x00,0x7C,0xC8,0x9B,0x05,0x4A,0x41,0x5C,0x49,0x1C,0xC1,0x54, + 0x2D,0x20,0x00,0x01,0x39,0x18,0x0B,0xE0,0xCC,0x07,0x00,0x20,0x00,0x07,0x00,0x20, + 0x40,0x00,0x00,0x20,0x00,0x02,0x00,0x20,0xD6,0x02,0x00,0x00,0xC0,0x03,0x00,0x20, + 0xBE,0x98,0x0A,0x23,0x58,0x43,0x80,0x18,0xC0,0x90,0xFF,0x30,0xCD,0x30,0x1A,0x00, + 0x04,0xF0,0xD0,0xF9,0x09,0x20,0x80,0x01,0x39,0x18,0xC0,0x98,0x4A,0x7D,0xFF,0x30, + 0xC1,0x30,0xC2,0x74,0x89,0x7D,0x01,0x75,0xC1,0x98,0xBE,0x9A,0x00,0x7C,0xB4,0xA9, + 0x88,0x54,0xC9,0x9A,0xBE,0x99,0x81,0x54,0xBF,0x98,0x40,0x1C,0xBF,0x90,0xBD,0x98, + 0x40,0x1C,0xBD,0x90,0x14,0xE0,0x32,0x48,0x38,0x18,0x02,0xF0,0x23,0xFC,0x00,0x28, + 0x0E,0xD0,0xCA,0x99,0x01,0x20,0x08,0x77,0xC1,0x99,0x2E,0x48,0x89,0x7D,0x13,0x29, + 0x06,0xD9,0x61,0x7A,0x01,0x29,0x03,0xD1,0xC1,0x88,0x04,0x22,0x11,0x43,0xC1,0x80, + 0x76,0x1C,0xA0,0x7A,0xB0,0x42,0x8D,0xDA,0x26,0x48,0xC0,0x88,0x41,0x07,0x05,0xD5, + 0x02,0x99,0x04,0x22,0xE1,0x72,0x23,0x49,0x90,0x43,0xC8,0x80,0x01,0x26,0x31,0xE0, + 0xB4,0xA8,0x80,0x5D,0x00,0x28,0x1A,0xD1,0x0D,0x22,0x01,0x20,0x92,0x01,0x1B,0x27, + 0x7F,0x01,0x1C,0x49,0x09,0x18,0x8B,0x18,0xDB,0x7F,0x00,0x2B,0x0C,0xD1,0xC9,0x19, + 0x09,0x7B,0x00,0x29,0x08,0xD1,0x02,0x06,0x31,0x06,0x12,0x0E,0x09,0x0E,0x01,0x23, + 0xB4,0xA8,0xFF,0xF7,0xC1,0xFA,0x02,0xE0,0x40,0x1C,0x0D,0x28,0xE9,0xDB,0xE0,0x7A, + 0x00,0x28,0x0E,0xD0,0x0A,0x20,0x70,0x43,0x0E,0x49,0x47,0x18,0x38,0x00,0xFF,0x30, + 0xD3,0x30,0x02,0xF0,0xD7,0xFB,0x00,0x28,0x03,0xD1,0x01,0x20,0xFF,0x37,0xC1,0x37, + 0xB8,0x74,0x76,0x1C,0xAE,0x42,0xCB,0xDD,0xBD,0x98,0x28,0x18,0x20,0x72,0x20,0x7A, + 0x05,0x49,0x82,0x22,0xA0,0x72,0xC8,0x1D,0xFD,0x30,0x04,0xF0,0x53,0xF9,0xE6,0xE5, + 0xD6,0x02,0x00,0x00,0x40,0x00,0x00,0x20,0x0C,0x02,0x00,0x20,0xF1,0xB5,0x38,0x48, + 0x86,0xB0,0x05,0x90,0x00,0x20,0x04,0x90,0x36,0x48,0x41,0x7F,0x01,0x91,0x01,0x00, + 0x20,0x39,0x49,0x7F,0x00,0x91,0x00,0x21,0x02,0x91,0x01,0x7D,0x00,0x20,0xC0,0x43, + 0x00,0x29,0x06,0x99,0x03,0xD1,0x00,0x29,0x03,0xD1,0x01,0x20,0x01,0xE0,0x00,0x29, + 0xFB,0xD1,0x03,0x90,0x01,0xF0,0x2E,0xF9,0x01,0xF0,0x04,0xFA,0x00,0x24,0x27,0x00, + 0x00,0x26,0x31,0x00,0x38,0x00,0x02,0xF0,0xA1,0xF8,0x00,0x28,0x28,0xD0,0x0E,0x21, + 0x79,0x43,0x05,0x9A,0x89,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x0D,0x1A, + 0x06,0x98,0x00,0x28,0x0D,0xD0,0x00,0x2D,0x1A,0xDA,0x03,0x9A,0x31,0x00,0x38,0x00, + 0x05,0xF0,0x2A,0xFE,0x40,0x1C,0x14,0xD1,0x00,0x98,0x28,0x18,0x10,0xD5,0x02,0x20, + 0x0D,0xE0,0x00,0x2D,0x0C,0xDD,0x03,0x9A,0x31,0x00,0x38,0x00,0x05,0xF0,0x1C,0xFE, + 0x40,0x1C,0x06,0xD1,0x01,0x98,0x28,0x1A,0x00,0x28,0x01,0xDD,0x03,0x20,0x04,0x90, + 0x64,0x1C,0x76,0x1C,0x0E,0x2E,0xCC,0xD3,0x7F,0x1C,0x15,0x2F,0xC8,0xD3,0x20,0x00, + 0xFF,0x38,0x27,0x38,0x04,0xD1,0x04,0x98,0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x02,0x98,0x41,0x1C,0x02,0x91,0x01,0x21,0x49,0x02,0x88,0x42,0xB2,0xD9,0x06,0x98, + 0x00,0x28,0x01,0xD0,0x02,0x20,0x00,0xE0,0x03,0x20,0x04,0x90,0xEC,0xE7,0x00,0x00, + 0xD4,0x02,0x10,0x40,0x20,0x93,0x00,0x00,0xF0,0xB5,0x7B,0x4A,0xFF,0xB0,0xBC,0xB0, + 0x40,0x18,0xB9,0x92,0x42,0x00,0x80,0x18,0xB8,0x90,0x48,0x42,0xB7,0x90,0x77,0x48, + 0x77,0x4E,0x07,0x7F,0x02,0xA8,0x01,0x90,0x76,0x48,0xBA,0x90,0x00,0x7D,0x00,0x28, + 0x02,0xD1,0xB7,0x98,0x40,0x42,0xB7,0x90,0x73,0x4A,0x00,0x21,0x30,0x00,0x04,0xF0, + 0xFD,0xF8,0x00,0x25,0x00,0x24,0x6F,0x48,0x20,0x38,0x01,0x7D,0xC9,0x07,0x14,0xD0, + 0x6E,0x49,0x09,0x78,0x00,0x29,0x16,0xD0,0xBD,0x42,0x0E,0xD1,0x81,0x7D,0xA1,0x42, + 0x0B,0xD0,0xC1,0x7D,0xA1,0x42,0x08,0xD0,0x01,0x7E,0xA1,0x42,0x05,0xD0,0x41,0x7E, + 0xA1,0x42,0x02,0xD0,0x80,0x7E,0xA0,0x42,0x16,0xD1,0xB7,0x9A,0x21,0x00,0x28,0x00, + 0x05,0xF0,0xB2,0xFD,0x10,0xE0,0xBC,0x42,0xF7,0xD1,0x81,0x7D,0xA9,0x42,0xF4,0xD0, + 0xC1,0x7D,0xA9,0x42,0xF1,0xD0,0x01,0x7E,0xA9,0x42,0xEE,0xD0,0x41,0x7E,0xA9,0x42, + 0xEB,0xD0,0x80,0x7E,0xA8,0x42,0xE8,0xD0,0x64,0x1C,0x0E,0x2C,0xCB,0xD3,0x6D,0x1C, + 0x15,0x2D,0xC7,0xD3,0x01,0xF0,0x7E,0xF8,0x01,0xF0,0x54,0xF9,0x00,0x25,0x00,0x24, + 0x0E,0x20,0x2F,0x00,0x47,0x43,0x21,0x00,0x28,0x00,0x01,0xF0,0xEF,0xFF,0x00,0x28, + 0x0F,0xD0,0xB9,0x9B,0x3A,0x19,0x91,0x00,0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D, + 0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0,0x40,0x1A,0x51,0x00, + 0x70,0x52,0x21,0x00,0x28,0x00,0x02,0xF0,0x19,0xF8,0x39,0x19,0x01,0x9A,0x49,0x00, + 0x64,0x1C,0x0E,0x2C,0x50,0x52,0xDE,0xD3,0x6D,0x1C,0x15,0x2D,0xD7,0xD3,0x00,0x20, + 0x00,0x90,0x01,0xF0,0x27,0xF9,0x00,0x25,0x00,0x24,0x21,0x00,0x28,0x00,0x01,0xF0, + 0xC5,0xFF,0x00,0x28,0x3E,0xD0,0x0E,0x21,0x69,0x43,0xB9,0x9B,0x0A,0x19,0x91,0x00, + 0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D,0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD, + 0x08,0x1A,0x00,0xE0,0x40,0x1A,0x57,0x00,0xF1,0x5B,0x00,0x04,0x00,0x0C,0x81,0x42, + 0x06,0xD9,0xF0,0x53,0x21,0x00,0x28,0x00,0x01,0xF0,0xE8,0xFF,0x01,0x99,0xC8,0x53, + 0x00,0x98,0x03,0x21,0xFF,0xF7,0xAC,0xF8,0x00,0x29,0x01,0xD0,0x02,0x29,0x0D,0xD1, + 0xBA,0x98,0x00,0x7D,0x00,0x28,0x02,0xD1,0x00,0x22,0x43,0x1E,0x01,0xE0,0x01,0x22, + 0x00,0x23,0x21,0x00,0x28,0x00,0x05,0xF0,0x07,0xFD,0x0B,0xE0,0x00,0x22,0xD2,0x43, + 0x00,0x23,0x21,0x00,0x28,0x00,0x05,0xF0,0xFF,0xFC,0x00,0x28,0x02,0xD1,0x00,0x22, + 0x01,0x23,0xEE,0xE7,0x64,0x1C,0x0E,0x2C,0xB7,0xD3,0x6D,0x1C,0x15,0x2D,0xB3,0xD3, + 0x00,0x98,0x40,0x1C,0x00,0x90,0xB8,0x98,0x40,0x1E,0xB8,0x90,0x18,0xD2,0x00,0x25, + 0x00,0x24,0x0E,0x20,0x2E,0x00,0x46,0x43,0x01,0x99,0x30,0x19,0x40,0x00,0x0A,0x5A, + 0x21,0x00,0x28,0x00,0x05,0xF0,0xFC,0xFC,0x64,0x1C,0x0E,0x2C,0xF4,0xD3,0x6D,0x1C, + 0x15,0x2D,0xED,0xD3,0x7F,0xB0,0x3C,0xB0,0xF0,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47, + 0x00,0xF0,0xE0,0xFF,0x8D,0xE7,0x00,0x00,0xD4,0x02,0x10,0x40,0x60,0x06,0x00,0x20, + 0x00,0x00,0x00,0x10,0x20,0x93,0x00,0x00,0xD2,0x02,0x00,0x00,0x18,0x07,0x00,0x20, + 0xF8,0xB5,0x01,0x22,0x52,0x07,0x10,0x68,0x01,0x28,0x03,0xD0,0x10,0x68,0x01,0x28, + 0x43,0xD9,0x02,0x20,0x86,0x46,0x22,0x48,0x00,0x90,0x80,0x79,0x00,0x28,0x3C,0xD0, + 0x00,0x21,0x0D,0x25,0x1F,0x4F,0xED,0x01,0x32,0xE0,0x72,0x46,0x8A,0x18,0x92,0x00, + 0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x28,0xD1,0x00,0x9C,0x93,0x00, + 0xA6,0x79,0x1B,0x0F,0x21,0xE0,0x84,0x00,0xE4,0x19,0x64,0x19,0xA4,0x68,0xA4,0x00, + 0x24,0x0F,0xA3,0x42,0x18,0xD1,0x80,0x00,0xC0,0x19,0x40,0x19,0x80,0x68,0x92,0x0A, + 0x83,0x05,0x92,0x02,0x9B,0x0D,0x1A,0x43,0x0F,0x4B,0x1A,0x40,0x83,0x01,0x9B,0x0D, + 0x1B,0x04,0x1A,0x43,0x3F,0x23,0x9B,0x02,0x00,0x04,0x80,0x0E,0x9A,0x43,0x80,0x02, + 0x02,0x43,0x60,0x46,0x02,0x60,0x02,0xE0,0x40,0x1C,0x86,0x42,0xDB,0xD8,0x49,0x1C, + 0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42,0xC7,0xD8,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0xC0,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0xFF,0x00,0xFC,0xFC,0xB5,0x04,0x00, + 0x60,0x48,0x8E,0x46,0x02,0x8C,0x60,0x49,0x40,0x8C,0x01,0x91,0x4B,0x8B,0x20,0x39, + 0x00,0x91,0x89,0x7B,0x00,0x25,0x2F,0x00,0xC9,0x07,0x01,0x26,0x00,0x29,0xAC,0x46, + 0x01,0xD1,0xE6,0x71,0xAA,0xE0,0x01,0x99,0x09,0x7E,0x00,0x29,0x0D,0xD0,0x01,0x29, + 0x0F,0xD0,0x02,0x29,0x07,0xD0,0x03,0x29,0xF4,0xD1,0x17,0x00,0xD1,0x18,0x0A,0x04, + 0x12,0x0C,0x03,0x00,0x05,0xE0,0x1A,0x00,0xFB,0xE7,0x84,0x46,0xC0,0x18,0x03,0x04, + 0x1B,0x0C,0x60,0x88,0xA1,0x88,0x87,0x42,0x5C,0xDC,0x82,0x42,0x5A,0xDB,0x8C,0x45, + 0x58,0xDC,0x8B,0x42,0x56,0xDB,0x01,0x25,0x72,0x46,0x00,0x2A,0x7B,0xD0,0x06,0x27, + 0x01,0x2A,0x0E,0xD0,0x02,0x2A,0x18,0xD0,0x03,0x2A,0x76,0xD1,0xE2,0x79,0xD3,0x07, + 0x2D,0xD0,0x01,0x2A,0x01,0xD0,0x05,0x2A,0x27,0xD1,0x09,0x20,0x00,0x25,0xE0,0x71, + 0x6B,0xE0,0x00,0x9A,0x92,0x7A,0x00,0x2A,0x67,0xD1,0x00,0xF0,0x9D,0xF8,0x06,0x00, + 0x0F,0xD1,0x02,0x20,0xE0,0x71,0x26,0x72,0x5F,0xE0,0xE2,0x79,0xD3,0x07,0xE8,0xD1, + 0x92,0x07,0x5A,0xD5,0x00,0xF0,0x90,0xF8,0x06,0x00,0x08,0xD0,0x20,0x7A,0x00,0x28, + 0x05,0xD1,0x31,0x00,0x20,0x00,0xE7,0x71,0xFF,0xF7,0x24,0xF8,0xEB,0xE7,0x31,0x00, + 0x20,0x00,0xE7,0x71,0xFF,0xF7,0x1E,0xF8,0x47,0xE0,0x11,0x20,0x44,0xE0,0x92,0x07, + 0x43,0xD5,0x00,0xF0,0x79,0xF8,0x21,0x7A,0x00,0x28,0x0A,0xD0,0x00,0x29,0x0C,0xD0, + 0x81,0x42,0x08,0xD1,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFF,0xF7,0x0B,0xF8,0xA6,0x71, + 0x05,0xE0,0x00,0x29,0x01,0xD0,0x12,0x20,0xF5,0xE7,0x02,0x20,0xE0,0x71,0x00,0x20, + 0x20,0x72,0x2A,0xE0,0x70,0x46,0x00,0x28,0x25,0xD0,0x01,0x28,0x06,0xD0,0x02,0x28, + 0x06,0xD0,0x03,0x28,0x21,0xD1,0xE0,0x79,0x80,0x07,0x0E,0xD4,0xE6,0x71,0x1C,0xE0, + 0xE0,0x79,0x80,0x07,0xFA,0xD5,0x21,0x7A,0x00,0x29,0x04,0xD0,0x12,0x20,0xE0,0x71, + 0x20,0x00,0xFE,0xF7,0xE7,0xFF,0xE6,0x71,0x09,0xE0,0x02,0x20,0xE0,0x71,0x21,0x7A, + 0x00,0x29,0x04,0xD0,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0xDB,0xFF,0x01,0x25, + 0xA6,0x71,0x02,0xE0,0xFF,0xE7,0x00,0x20,0xE0,0x71,0x08,0x49,0xC8,0x88,0x82,0x07, + 0x04,0xD1,0xE2,0x79,0x92,0x07,0x92,0x0F,0x10,0x43,0xC8,0x80,0x28,0x00,0xFC,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00,0x60,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0x03,0x48,0xC0,0x68,0x40,0x07,0x01,0xD5,0x01,0x20,0x70,0x47,0x00,0x20,0x70,0x47, + 0x00,0x90,0x00,0x40,0x06,0x48,0x40,0x8B,0x00,0x28,0x06,0xD0,0x05,0x48,0xC0,0x88, + 0x00,0x06,0x80,0x0F,0x01,0xD0,0x00,0x20,0x70,0x47,0x01,0x20,0x70,0x47,0x00,0x00, + 0xA0,0x93,0x00,0x00,0x40,0x00,0x00,0x20,0x02,0x48,0xC0,0x68,0xC0,0x07,0x00,0xD0, + 0x01,0x20,0x70,0x47,0x00,0x90,0x00,0x40,0xF0,0xB4,0x16,0x4B,0x04,0x00,0xDE,0x7B, + 0x00,0x22,0x10,0x00,0x00,0x2E,0x23,0xD0,0x1B,0x7A,0x00,0x2B,0x20,0xD1,0x12,0x4F, + 0x1C,0xE0,0xD3,0x00,0xDD,0x19,0x03,0x23,0x5B,0x02,0xEB,0x18,0x10,0x25,0x5D,0x5F, + 0xA5,0x42,0x0E,0xDC,0x14,0x25,0x5D,0x5F,0xA5,0x42,0x0A,0xDB,0x12,0x25,0x5D,0x5F, + 0x8D,0x42,0x06,0xDC,0x16,0x25,0x5D,0x5F,0x8D,0x42,0x02,0xDB,0x50,0x1C,0x00,0x06, + 0x00,0x0E,0x00,0x28,0x04,0xD1,0x52,0x1C,0x12,0x06,0x12,0x0E,0x96,0x42,0xE0,0xD8, + 0xF0,0xBC,0x70,0x47,0x40,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB5,0x00,0x20, + 0x8D,0xB0,0xBB,0x4E,0x0A,0x90,0x09,0x90,0x30,0x68,0x01,0x88,0x08,0x91,0x01,0x00, + 0x40,0x31,0xCA,0x7F,0x60,0x30,0x07,0x92,0x8A,0x7F,0x06,0x92,0x40,0x78,0x05,0x90, + 0x88,0x7D,0x04,0x90,0xB3,0x48,0xC1,0x88,0x00,0x79,0x0A,0x07,0x05,0xD5,0xB1,0x4A, + 0x00,0x28,0x02,0xD1,0x08,0x23,0x99,0x43,0xD1,0x80,0xAF,0x4D,0x00,0x21,0x69,0x5E, + 0xFF,0x22,0x01,0x32,0x28,0x29,0x03,0xDD,0x02,0x21,0x69,0x5E,0x1E,0x29,0x03,0xDC, + 0x04,0x21,0x69,0x5E,0x28,0x29,0x05,0xDD,0xA6,0x49,0xCB,0x88,0x13,0x43,0xCB,0x80, + 0x00,0x21,0x04,0xE0,0x06,0x21,0x69,0x5E,0x00,0x29,0x02,0xD0,0x49,0x1E,0xE9,0x80, + 0x03,0xE0,0xA0,0x4B,0xD9,0x88,0x91,0x43,0xD9,0x80,0x08,0x99,0x89,0x04,0x7E,0xD5, + 0x6A,0x7A,0x00,0x21,0x00,0x2A,0x02,0xD1,0x00,0x28,0x00,0xD1,0x01,0x21,0x01,0x91, + 0x00,0xF0,0x40,0xF9,0x97,0x48,0x99,0x4C,0x00,0x79,0x01,0x28,0x0C,0x90,0x4D,0xD1, + 0x94,0x49,0x09,0x89,0x0B,0x91,0x35,0x68,0x40,0x35,0x6A,0x8B,0x91,0x42,0x00,0xD3, + 0x00,0x20,0x03,0x90,0x0B,0x98,0x0A,0x22,0x02,0x21,0x50,0x43,0x61,0x5E,0x0F,0x00, + 0xFE,0xF7,0x4E,0xFD,0x29,0x7C,0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20, + 0x02,0x90,0x0B,0x98,0x0A,0x21,0xC0,0x1B,0xFE,0xF7,0x42,0xFD,0x69,0x7C,0x88,0x42, + 0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x07,0x00,0x84,0x48,0xAB,0x7C,0x20,0x38, + 0x80,0x8B,0x01,0x21,0x98,0x42,0x00,0xD8,0x00,0x21,0xEB,0x7C,0x62,0x68,0x01,0x20, + 0x9A,0x42,0x00,0xDB,0x00,0x20,0x03,0x9A,0x00,0x2A,0x2A,0xD0,0x02,0x9A,0x00,0x2A, + 0x27,0xD0,0x00,0x2F,0x25,0xD0,0x00,0x29,0x23,0xD0,0x76,0x4A,0x01,0x21,0xC0,0x32, + 0xD2,0x6A,0x00,0x2A,0x00,0xD0,0x00,0x21,0x01,0x42,0x1A,0xD0,0x60,0x78,0x00,0x28, + 0x2F,0xD0,0x69,0x7E,0x88,0x42,0x2C,0xD8,0x40,0x1E,0x29,0xE0,0x01,0x28,0x10,0xD9, + 0x68,0x7A,0x01,0x28,0x0D,0xD9,0x31,0x68,0x60,0x78,0x40,0x31,0xC9,0x7D,0x88,0x42, + 0x01,0xD2,0x40,0x1C,0x60,0x70,0x60,0x78,0x00,0x28,0x02,0xD0,0x20,0x78,0x40,0x1E, + 0x20,0x70,0x31,0x68,0x60,0x68,0x40,0x31,0x0A,0x7D,0x90,0x42,0x11,0xDB,0x0C,0x9A, + 0x60,0x48,0x00,0x2A,0x0D,0xD0,0xC0,0x88,0xC0,0x06,0x0A,0xD4,0x00,0xE0,0x25,0xE0, + 0x60,0x78,0xC9,0x7D,0x88,0x42,0x04,0xD2,0x04,0x99,0x88,0x42,0x01,0xD9,0x40,0x1C, + 0x60,0x70,0x60,0x78,0x04,0x99,0x10,0x23,0x88,0x42,0x0A,0xD8,0x01,0x98,0x00,0x28, + 0x07,0xD1,0x54,0x49,0xC8,0x88,0x18,0x43,0xC8,0x80,0x30,0x68,0x40,0x30,0x00,0x7E, + 0x0E,0xE0,0x50,0x4A,0xD1,0x88,0xC8,0x06,0x0B,0xD5,0x20,0x78,0x00,0x28,0x06,0xD1, + 0x99,0x43,0xD1,0x80,0x30,0x68,0x40,0x30,0x40,0x7D,0x60,0x70,0x01,0xE0,0x40,0x1E, + 0x20,0x70,0x48,0x4F,0x38,0x79,0x00,0x28,0x7E,0xD0,0xF8,0x88,0x80,0x06,0x05,0xD5, + 0x05,0x99,0x06,0x98,0x40,0x1A,0x00,0x06,0x00,0x0E,0x06,0x90,0x01,0x22,0x50,0x00, + 0xC0,0x19,0x84,0x46,0xFF,0x30,0xA1,0x30,0xC0,0x88,0x00,0x28,0x68,0xD0,0x07,0x99, + 0x88,0x42,0x09,0xD9,0x08,0x98,0x80,0x07,0x62,0xD5,0x00,0x20,0x38,0x71,0xF8,0x88, + 0x08,0x21,0x08,0x43,0xF8,0x80,0x5B,0xE0,0x06,0x99,0x88,0x42,0x58,0xD3,0x08,0x98, + 0x40,0x07,0x55,0xD5,0x00,0x23,0x01,0x20,0x29,0xE0,0xFF,0x24,0x39,0x18,0x9A,0x34, + 0x64,0x5C,0x94,0x42,0x22,0xD1,0x5B,0x1C,0xFF,0x31,0x41,0x31,0x09,0x7E,0x0A,0x91, + 0x01,0x00,0x14,0xE0,0x4C,0x00,0xE4,0x19,0x25,0x00,0xE0,0x35,0xEE,0x8A,0xFF,0x34, + 0x01,0x34,0xAE,0x82,0x26,0x8A,0xE6,0x81,0x7C,0x18,0x25,0x00,0xFF,0x35,0x41,0x35, + 0x6E,0x7E,0xFF,0x34,0x81,0x34,0x2E,0x76,0xA6,0x7E,0x49,0x1C,0x66,0x76,0x3C,0x79, + 0x8C,0x42,0xE7,0xDA,0x39,0x79,0x49,0x1E,0x40,0x1E,0x39,0x71,0x40,0x1C,0x39,0x79, + 0x81,0x42,0xD2,0xDA,0x00,0x2B,0x23,0xDD,0x01,0x2B,0x05,0xDD,0x01,0x20,0x09,0x90, + 0xF8,0x88,0x20,0x21,0x08,0x43,0xF8,0x80,0x60,0x46,0xFF,0x30,0x61,0x30,0x41,0x89, + 0x38,0x79,0x40,0x1C,0x00,0x06,0x00,0x0E,0x38,0x71,0x40,0x00,0xC0,0x19,0xE0,0x30, + 0x81,0x82,0x60,0x46,0xFF,0x30,0x81,0x30,0x41,0x88,0x38,0x79,0x40,0x00,0xC0,0x19, + 0xFF,0x30,0x01,0x30,0xC1,0x81,0x3B,0x79,0x0B,0x49,0x0A,0x98,0x68,0x39,0x58,0x54, + 0x52,0x1C,0x0C,0x2A,0x8B,0xDB,0x00,0xE0,0x06,0xE0,0x09,0x98,0x00,0x28,0x03,0xD1, + 0xF8,0x88,0x20,0x21,0x88,0x43,0xF8,0x80,0x0D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0xCC,0x07,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x02,0x00,0x20,0x40,0x06,0x00,0x20, + 0x03,0x48,0xC0,0x68,0x00,0x03,0x01,0xD5,0x01,0x20,0x70,0x47,0x00,0x20,0x70,0x47, + 0x00,0x90,0x00,0x40,0xF0,0xB5,0x59,0x48,0xB7,0xB0,0x00,0x68,0x00,0x21,0x60,0x30, + 0x45,0x79,0x07,0x79,0x56,0x48,0x31,0x95,0x36,0x90,0x41,0x80,0x36,0x98,0x41,0x60, + 0x30,0x91,0x60,0x21,0x18,0xA8,0x03,0xF0,0xAB,0xFC,0x60,0x21,0x68,0x46,0x03,0xF0, + 0xA7,0xFC,0x31,0x9D,0x0E,0x21,0x48,0x1B,0x33,0x90,0x58,0xE0,0x15,0x21,0xC9,0x1B, + 0x35,0x91,0x31,0x99,0x38,0x00,0x69,0x1A,0x8C,0x00,0x17,0xE0,0x49,0x4A,0x6B,0x00, + 0x9E,0x18,0xB8,0x23,0xF3,0x5E,0x0E,0x21,0x46,0x00,0x41,0x43,0xB2,0x18,0x88,0x26, + 0x96,0x5F,0x49,0x19,0x09,0x04,0x9A,0x19,0x43,0x4B,0x09,0x14,0x49,0x00,0x59,0x5E, + 0x51,0x18,0x18,0xAA,0x13,0x59,0x59,0x18,0x40,0x1C,0x11,0x51,0x35,0x99,0x81,0x42, + 0xE4,0xDC,0x78,0x00,0x15,0x21,0x09,0x1A,0x18,0xAE,0x34,0x90,0x30,0x59,0xFE,0xF7, + 0xDF,0xFB,0x30,0x51,0x3E,0x00,0x84,0x46,0x19,0xE0,0x0E,0x20,0x70,0x43,0x36,0x49, + 0x40,0x19,0x40,0x00,0x09,0x5E,0x60,0x46,0x6A,0x00,0x09,0x1A,0x31,0x48,0x13,0x18, + 0xB8,0x22,0x9A,0x5E,0x73,0x00,0x1B,0x18,0x88,0x20,0x18,0x5E,0x10,0x18,0x09,0x18, + 0x0B,0x00,0x4B,0x43,0x68,0x46,0x02,0x59,0xD1,0x18,0x76,0x1C,0x01,0x51,0x35,0x98, + 0xB0,0x42,0xE2,0xDC,0x34,0x98,0x14,0x21,0x09,0x1A,0x6E,0x46,0x30,0x59,0xFE,0xF7, + 0xB7,0xFB,0x30,0x51,0x30,0x99,0x40,0x18,0x30,0x90,0x33,0x98,0x6D,0x1C,0xA8,0x42, + 0xA4,0xDC,0x79,0x00,0x15,0x20,0x41,0x1A,0x31,0x98,0x0E,0x22,0x40,0x00,0x14,0x1A, + 0x61,0x43,0x32,0x90,0x30,0x98,0xFE,0xF7,0xA3,0xFB,0x05,0x04,0x36,0x98,0x2D,0x14, + 0x45,0x80,0x30,0x98,0x21,0x00,0xFE,0xF7,0x9B,0xFB,0x00,0x21,0x6B,0x46,0x0A,0xE0, + 0x8A,0x00,0x9A,0x58,0x82,0x1A,0x16,0x00,0x56,0x43,0x36,0x9A,0x52,0x68,0xB2,0x18, + 0x36,0x9E,0x49,0x1C,0x72,0x60,0x8C,0x42,0xF2,0xDC,0x32,0x98,0x0D,0x21,0x09,0x1A, + 0x36,0x98,0x40,0x68,0xFE,0xF7,0x84,0xFB,0x15,0x22,0x33,0x99,0xD2,0x1B,0x92,0x02, + 0x51,0x43,0xFE,0xF7,0x7D,0xFB,0x36,0x99,0x00,0x2D,0x48,0x60,0x02,0xD1,0x36,0x98, + 0x6D,0x1C,0x45,0x80,0x37,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xCC,0x07,0x00,0x20, + 0x40,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10,0xF8,0xB5,0x5E,0x4D, + 0x28,0x7A,0x00,0x28,0x06,0xD0,0x28,0x6B,0x00,0x04,0x00,0x0C,0x05,0xF0,0x76,0xFC, + 0x05,0xF0,0x64,0xFC,0x04,0xF0,0x9A,0xFA,0x04,0xF0,0x9A,0xFF,0x57,0x4E,0x01,0x27, + 0x9D,0xE0,0x57,0x48,0x41,0x68,0x09,0x07,0x0D,0xD5,0xC1,0x68,0x00,0x29,0x0A,0xD0, + 0xC0,0x68,0x07,0x28,0x05,0xD1,0x52,0x48,0xC0,0x68,0x01,0x21,0x49,0x07,0xC8,0x63, + 0x91,0xE0,0x04,0xF0,0xCB,0xFB,0x28,0x7A,0x00,0x28,0x04,0xD0,0x28,0x6B,0x00,0x04, + 0x00,0x0C,0x05,0xF0,0x53,0xFC,0xFF,0x20,0x81,0x30,0xFE,0xF7,0xAD,0xFF,0x03,0x20, + 0x05,0xF0,0xBC,0xFA,0x47,0x4C,0xE0,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0, + 0x40,0x06,0x01,0xD5,0x04,0x20,0x00,0xE0,0x02,0x20,0x05,0xF0,0x77,0xF9,0x00,0xF0, + 0x1F,0xFC,0x04,0xF0,0x7B,0xFF,0x05,0xF0,0x5F,0xF9,0x00,0xF0,0xCB,0xFB,0x00,0xF0, + 0xA1,0xFC,0x68,0x7B,0x00,0x28,0x04,0xD1,0x30,0x7B,0x00,0x28,0x01,0xD0,0x04,0xF0, + 0x61,0xFA,0x03,0xF0,0x13,0xFC,0x00,0x28,0x00,0xD0,0x2F,0x70,0x28,0x78,0x00,0x28, + 0x04,0xD1,0x00,0x22,0x11,0x00,0x10,0x00,0x00,0xF0,0x90,0xF9,0x28,0x78,0x00,0x28, + 0x05,0xD0,0x68,0x7B,0x00,0x09,0x04,0x28,0x4D,0xD1,0x00,0x20,0x28,0x70,0x03,0x20, + 0x05,0xF0,0x5E,0xFA,0xE8,0x62,0x03,0x20,0x05,0xF0,0x8C,0xFA,0xFF,0x20,0x81,0x30, + 0xFE,0xF7,0x62,0xFF,0xE0,0x8B,0x00,0x28,0x02,0xD0,0x40,0x1E,0xE0,0x83,0x36,0xE0, + 0xFF,0xF7,0xF0,0xFC,0x00,0x28,0x32,0xD0,0x68,0x79,0x00,0x28,0x2F,0xD1,0x6C,0x6A, + 0x00,0x2C,0x2C,0xD0,0xE8,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x1E,0x49,0xFE,0xF7, + 0x0F,0xFC,0x24,0x1A,0x14,0x2C,0x22,0xDD,0x04,0xF0,0x0C,0xFA,0x20,0x00,0x05,0xF0, + 0xFB,0xFB,0x05,0xF0,0xFF,0xFB,0xA8,0x79,0x00,0x28,0x0D,0xD0,0x04,0xF0,0xE0,0xF9, + 0x04,0xF0,0xE3,0xF9,0x04,0xF0,0xEB,0xF9,0x14,0x4C,0x67,0x60,0x01,0x20,0xFE,0xF7, + 0x43,0xFF,0x13,0x48,0x60,0x60,0x03,0xE0,0x12,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0, + 0x05,0xF0,0xEF,0xFB,0x0F,0x48,0x00,0x21,0x01,0x70,0x04,0xF0,0xF7,0xF9,0x28,0x78, + 0x00,0x28,0x00,0xD1,0x5D,0xE7,0x28,0x7A,0x00,0x28,0x01,0xD0,0x05,0xF0,0xBE,0xFB, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x14,0x07,0x00,0x20,0x80,0x93,0x00,0x00, + 0x00,0x40,0x00,0x30,0x40,0x00,0x00,0x20,0x10,0x27,0x00,0x00,0x00,0x30,0x00,0x40, + 0xE1,0x04,0x00,0x00,0xD0,0x07,0x00,0x20,0x10,0xB4,0x0F,0x4B,0x00,0x22,0xD2,0x43, + 0x81,0x00,0x5A,0x52,0xCB,0x18,0x5A,0x80,0x0B,0x4B,0x0B,0x4C,0x34,0x33,0x5A,0x52, + 0xCB,0x18,0x5A,0x80,0x00,0x23,0x42,0x00,0x28,0x3C,0xA3,0x52,0x22,0x00,0x1A,0x32, + 0x13,0x54,0x18,0x00,0x76,0x32,0x8A,0x18,0x81,0x00,0x53,0x52,0x51,0x18,0x40,0x1E, + 0x4B,0x80,0xF9,0xD5,0x10,0xBC,0x70,0x47,0xCC,0x0A,0x00,0x20,0x10,0xB5,0x0C,0x48, + 0x0D,0x22,0x00,0x21,0x03,0xF0,0x52,0xFB,0x0A,0x48,0x82,0x22,0x00,0x21,0x03,0xF0, + 0x4D,0xFB,0x08,0x48,0x00,0x24,0x0C,0x38,0x04,0x72,0x07,0x48,0x28,0x22,0x21,0x00, + 0x03,0xF0,0x44,0xFB,0x04,0x48,0x42,0x38,0x44,0x72,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x9F,0x03,0x00,0x20,0x0C,0x02,0x00,0x20,0x82,0x06,0x00,0x20,0x10,0xB5,0x17,0x48, + 0x1A,0x22,0x00,0x21,0x03,0xF0,0x32,0xFB,0x14,0x48,0x1A,0x22,0x00,0x21,0x1A,0x30, + 0x03,0xF0,0x2C,0xFB,0x11,0x48,0x0D,0x22,0x00,0x21,0x64,0x30,0x03,0xF0,0x26,0xFB, + 0x0E,0x48,0x30,0x22,0x00,0x21,0x34,0x30,0x03,0xF0,0x20,0xFB,0x0B,0x48,0x18,0x22, + 0x00,0x21,0x76,0x30,0x03,0xF0,0x1A,0xFB,0x08,0x48,0x18,0x22,0x00,0x21,0x8E,0x30, + 0x03,0xF0,0x14,0xFB,0x05,0x49,0x00,0x20,0xAC,0x31,0xC8,0x83,0xFF,0x39,0xA1,0x39, + 0x08,0x71,0x88,0x83,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x34,0x01,0x00,0x20, + 0xF0,0xB4,0x1E,0x49,0x1E,0x4E,0x09,0x68,0x00,0x24,0x60,0x31,0x8F,0x7F,0x08,0x21, + 0x42,0x00,0x18,0x23,0x4B,0x43,0x9B,0x19,0x1D,0x25,0x9B,0x18,0x6D,0x01,0x5D,0x19, + 0x6C,0x80,0x23,0x25,0x6D,0x01,0x5B,0x19,0x49,0x1E,0x5C,0x83,0xF1,0xD5,0x07,0x25, + 0x31,0x18,0xED,0x01,0x01,0x23,0x4D,0x19,0xAB,0x75,0x15,0x25,0x93,0x19,0xAD,0x01, + 0x5B,0x19,0x5C,0x82,0x2B,0x23,0x5B,0x01,0xC9,0x18,0x8F,0x72,0x8C,0x75,0x02,0x21, + 0x0B,0x23,0xDB,0x01,0x18,0x25,0x4D,0x43,0xAD,0x19,0xAD,0x18,0xED,0x18,0x49,0x1E, + 0x6C,0x80,0xF7,0xD5,0x80,0x00,0x82,0x19,0x00,0x21,0x17,0x20,0xC9,0x43,0x80,0x01, + 0x10,0x18,0x41,0x81,0x81,0x81,0xF0,0xBC,0x70,0x47,0x00,0x00,0xCC,0x07,0x00,0x20, + 0x40,0x00,0x00,0x20,0x10,0xB5,0x06,0x48,0x1C,0x22,0x00,0x21,0x03,0xF0,0xBE,0xFA, + 0x04,0x48,0x00,0x21,0x81,0x74,0x41,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xBA,0x03,0x00,0x20,0x20,0x01,0x00,0x20,0x10,0xB5,0x05,0xF0,0x91,0xF9,0x04,0xF0, + 0x8F,0xF9,0xFF,0xF7,0x53,0xFF,0x04,0xF0,0xA7,0xFA,0x01,0xF0,0xA7,0xFD,0x01,0xF0, + 0x1F,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46,0x20,0x30,0x9F,0xE5, + 0x20,0x20,0x9F,0xE5,0x25,0x00,0xA0,0xE3,0x01,0x0C,0x80,0xE2,0x00,0x11,0x93,0xE7, + 0x80,0xC0,0x82,0xE0,0x01,0x00,0x50,0xE2,0xB0,0x10,0xCC,0xE1,0xFA,0xFF,0xFF,0x5A, + 0x1E,0xFF,0x2F,0xE1,0x00,0x10,0x10,0x40,0xD2,0x07,0x00,0x20,0x78,0x47,0xC0,0x46, + 0x20,0x30,0x9F,0xE5,0x20,0x20,0x9F,0xE5,0x25,0x00,0xA0,0xE3,0x01,0x0C,0x80,0xE2, + 0x00,0x11,0x93,0xE7,0x80,0xC0,0x82,0xE0,0x01,0x00,0x50,0xE2,0xB0,0x10,0xCC,0xE1, + 0xFA,0xFF,0xFF,0x5A,0x1E,0xFF,0x2F,0xE1,0xD4,0x02,0x10,0x40,0x00,0x00,0x00,0x10, + 0x09,0x4B,0x10,0xB4,0x1B,0x68,0x80,0x33,0x1B,0x7B,0x04,0x1E,0x00,0xDC,0x44,0x42, + 0x9C,0x42,0x06,0xDD,0x98,0x42,0x01,0xDD,0xC8,0x1A,0x00,0xE0,0xC8,0x18,0x02,0x04, + 0x12,0x0C,0x10,0xBC,0x10,0x00,0x70,0x47,0xCC,0x07,0x00,0x20,0xF7,0xB5,0x61,0x48, + 0xE6,0xB0,0x00,0x7D,0x00,0x28,0x03,0xD0,0x01,0x20,0x62,0x90,0x00,0x20,0x02,0xE0, + 0x00,0x20,0x62,0x90,0x01,0x20,0x61,0x90,0x5B,0x48,0x00,0x26,0x64,0x90,0x5B,0x48, + 0x35,0x00,0x01,0x8B,0x04,0x91,0x41,0x8B,0x03,0x91,0x81,0x8A,0x02,0x91,0xC1,0x8A, + 0x01,0x91,0x80,0x8B,0x60,0x90,0x56,0x48,0x00,0x7F,0x63,0x96,0x00,0x90,0x00,0x24, + 0x0E,0x20,0x68,0x43,0x65,0x90,0x07,0x19,0x21,0x00,0x28,0x00,0x01,0xF0,0x76,0xF9, + 0x4C,0x49,0x20,0x39,0x0A,0x7D,0xD2,0x07,0x2D,0xD0,0x4E,0x4A,0x12,0x79,0x00,0x2A, + 0x00,0x9A,0x11,0xD0,0x95,0x42,0x26,0xD1,0x8A,0x7D,0xA2,0x42,0x1D,0xD0,0xCA,0x7D, + 0xA2,0x42,0x1A,0xD0,0x0A,0x7E,0xA2,0x42,0x17,0xD0,0x4A,0x7E,0xA2,0x42,0x14,0xD0, + 0x89,0x7E,0xA1,0x42,0x42,0xD1,0x10,0xE0,0x94,0x42,0x14,0xD1,0x8A,0x7D,0xAA,0x42, + 0x0B,0xD0,0xCA,0x7D,0xAA,0x42,0x08,0xD0,0x0A,0x7E,0xAA,0x42,0x05,0xD0,0x4A,0x7E, + 0xAA,0x42,0x02,0xD0,0x89,0x7E,0xA9,0x42,0x30,0xD1,0x04,0x99,0x03,0x9A,0x41,0x18, + 0x09,0x04,0x09,0x0C,0x04,0xE0,0x02,0x99,0x01,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C, + 0x80,0x1A,0x64,0x9B,0x02,0x04,0xB8,0x00,0x18,0x58,0x67,0x9B,0x12,0x0C,0x00,0x2B, + 0x02,0xD0,0x00,0x05,0x00,0x0D,0x01,0xE0,0x00,0x01,0x00,0x0D,0x66,0x9B,0x05,0x2B, + 0x0E,0xD8,0x90,0x42,0x01,0xDA,0x62,0x9A,0x02,0xE0,0x88,0x42,0x0E,0xDD,0x61,0x9A, + 0x21,0x00,0x28,0x00,0x00,0xF0,0x7E,0xF8,0x05,0xA8,0x87,0x55,0x76,0x1C,0x05,0xE0, + 0x63,0x99,0x05,0xA8,0x47,0x54,0x63,0x98,0x40,0x1C,0x63,0x90,0x64,0x1C,0x0E,0x2C, + 0x01,0xDA,0x65,0x98,0x97,0xE7,0x6D,0x1C,0x15,0x2D,0x90,0xDB,0x66,0x98,0x05,0x28, + 0x03,0xD9,0x00,0x04,0x63,0x9E,0x00,0x0C,0x60,0x90,0x00,0x2E,0x25,0xDD,0x68,0x98, + 0x00,0x28,0x22,0xD1,0x00,0xF0,0x4A,0xF9,0x00,0xF0,0x84,0xF9,0x00,0xF0,0x5A,0xFA, + 0x76,0x1E,0x14,0xD4,0x14,0x4C,0x05,0xAB,0x98,0x5D,0x82,0x00,0x64,0x98,0x80,0x58, + 0x01,0x05,0x60,0x98,0x09,0x0D,0x08,0x18,0x00,0x04,0x00,0x0C,0xA0,0x42,0x00,0xD9, + 0x20,0x00,0x00,0x04,0x08,0x43,0x64,0x99,0x76,0x1E,0x88,0x50,0xEC,0xD5,0x00,0xF0, + 0x25,0xF9,0x00,0xF0,0x67,0xF9,0x00,0xF0,0x3D,0xFA,0x69,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x20,0x93,0x00,0x00,0xD4,0x02,0x10,0x40,0xE0,0x95,0x00,0x00, + 0x60,0x06,0x00,0x20,0x14,0x07,0x00,0x20,0xFF,0x0F,0x00,0x00,0xF0,0xB5,0x01,0x26, + 0x76,0x07,0x30,0x68,0x02,0x28,0x1D,0xD1,0xB4,0x68,0x20,0x02,0x27,0x05,0x05,0x0D, + 0x3F,0x0D,0x39,0x00,0x28,0x00,0x04,0xF0,0xE9,0xFA,0x41,0x1C,0x12,0xD0,0x0B,0x4A, + 0x80,0x00,0x83,0x18,0x5B,0x88,0x10,0x5A,0x21,0x0B,0xDB,0x19,0xDB,0x04,0x09,0x03, + 0x1B,0x0D,0x19,0x43,0x40,0x19,0x06,0x4B,0x40,0x08,0x00,0x05,0x19,0x40,0x00,0x0A, + 0x01,0x43,0xB1,0x60,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x74,0x79,0x00,0x00, + 0xFF,0x0F,0x00,0xFF,0x30,0xB4,0x0E,0x25,0x68,0x43,0x14,0x4C,0x40,0x18,0x45,0x00, + 0x60,0x5B,0x01,0x06,0x09,0x0E,0x00,0x0A,0x00,0x2B,0x07,0xD0,0x00,0x2A,0x02,0xD0, + 0xC9,0x18,0xC0,0x18,0x0F,0xE0,0xC0,0x1A,0xC9,0x1A,0x0C,0xE0,0x00,0x2A,0x05,0xD0, + 0x88,0x42,0x01,0xDD,0x49,0x1C,0x06,0xE0,0x40,0x1C,0x04,0xE0,0x88,0x42,0x01,0xDD, + 0x40,0x1E,0x00,0xE0,0x49,0x1E,0x4A,0x1E,0xFF,0x2A,0x05,0xD2,0x42,0x1E,0xFF,0x2A, + 0x02,0xD2,0x00,0x02,0x08,0x43,0x60,0x53,0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40, + 0xF0,0xB5,0x8B,0xB0,0x0E,0x27,0x15,0x20,0x04,0xA9,0x81,0xC1,0x06,0x90,0x53,0x48, + 0x53,0x49,0x0A,0x90,0x80,0x7B,0x09,0x91,0xC2,0x07,0x0A,0xD0,0x80,0x07,0x03,0xD5, + 0x0D,0x20,0x03,0x21,0x05,0x90,0x02,0xE0,0x14,0x20,0x00,0x21,0x04,0x90,0x09,0x98, + 0x01,0x76,0x4C,0x48,0x0A,0x22,0x01,0x8C,0x40,0x8C,0x51,0x43,0x50,0x43,0x00,0x04, + 0x00,0x0C,0x01,0x90,0x05,0x98,0x0E,0x04,0x36,0x0C,0x00,0x28,0x7E,0xD0,0x04,0x98, + 0x00,0x28,0x7F,0xD0,0x05,0x98,0x41,0x00,0x30,0x00,0xFE,0xF7,0x21,0xF8,0x05,0x04, + 0x2D,0x0C,0x00,0x24,0xBF,0x1C,0x0A,0xE0,0x30,0x00,0x60,0x43,0x05,0x99,0xFE,0xF7, + 0x17,0xF8,0x3D,0x4A,0x61,0x00,0x40,0x19,0x89,0x18,0x64,0x1C,0x08,0x84,0xBC,0x42, + 0xF2,0xDB,0x04,0x98,0x41,0x00,0x01,0x98,0xFE,0xF7,0x0A,0xF8,0x06,0x9F,0x06,0x04, + 0x36,0x0C,0x00,0x24,0xBF,0x1C,0x0B,0xE0,0x01,0x98,0x04,0x99,0x60,0x43,0xFD,0xF7, + 0xFF,0xFF,0x31,0x4A,0x81,0x19,0x60,0x00,0x80,0x18,0x40,0x30,0x64,0x1C,0x81,0x82, + 0xBC,0x42,0xF1,0xDB,0x0A,0x98,0x80,0x7B,0xC0,0x07,0x4B,0xD0,0x00,0x24,0x43,0xE0, + 0x29,0x4A,0x31,0x21,0x10,0x19,0x49,0x01,0x40,0x18,0x41,0x7F,0x0A,0x98,0x80,0x7B, + 0x80,0x07,0x03,0xD5,0x05,0x98,0x02,0x95,0x03,0x91,0x03,0xE0,0x08,0x00,0x04,0x99, + 0x02,0x96,0x03,0x91,0x20,0x49,0x40,0x00,0x40,0x18,0x08,0x90,0x00,0x8C,0x0A,0x21, + 0x40,0x1B,0xFD,0xF7,0xD5,0xFF,0x1C,0x4A,0xE1,0x00,0x89,0x18,0x03,0x22,0x52,0x02, + 0x8F,0x18,0x38,0x82,0x03,0x98,0x18,0x49,0x40,0x00,0x40,0x18,0x40,0x30,0x07,0x90, + 0x80,0x8A,0x0A,0x21,0x80,0x1B,0xFD,0xF7,0xC3,0xFF,0x78,0x82,0x08,0x98,0x0A,0x21, + 0x00,0x8C,0x40,0x19,0xFE,0xF7,0xEC,0xF8,0xB8,0x82,0x07,0x98,0x0A,0x21,0x80,0x8A, + 0x80,0x19,0xFE,0xF7,0xE5,0xF8,0xF8,0x82,0x02,0x98,0x0A,0x21,0x40,0x00,0xFE,0xF7, + 0xDF,0xF8,0x09,0x99,0x64,0x1C,0x48,0x83,0x0A,0x98,0x00,0xE0,0x02,0xE0,0xC0,0x7B, + 0xA0,0x42,0xB5,0xDC,0x0B,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x40,0x06,0x00,0x20, + 0x60,0x06,0x00,0x20,0x00,0x93,0x00,0x00,0x40,0x00,0x00,0x20,0x02,0x49,0x08,0x68, + 0x04,0x22,0x90,0x43,0x08,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68, + 0x04,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0xC1,0x68, + 0x49,0x08,0x49,0x00,0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68, + 0x01,0x22,0x11,0x43,0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0xFF,0x20,0x06,0x49, + 0x06,0x4A,0x6A,0x30,0x03,0xE0,0x0B,0x88,0x13,0x80,0x92,0x1C,0x09,0x1D,0x03,0x00, + 0x40,0x1E,0x00,0x2B,0xF7,0xDC,0x70,0x47,0xD6,0x02,0x10,0x40,0xD2,0x02,0x00,0x10, + 0xFF,0x20,0x06,0x49,0x06,0x4A,0x6A,0x30,0x03,0xE0,0x13,0x88,0x92,0x1C,0x0B,0x80, + 0x09,0x1D,0x03,0x00,0x40,0x1E,0x00,0x2B,0xF7,0xDC,0x70,0x47,0xD6,0x02,0x10,0x40, + 0xD2,0x02,0x00,0x10,0x01,0x49,0xC8,0x68,0xC8,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x04,0x49,0x40,0x22,0x00,0x28,0x48,0x6A,0x01,0xD0,0x10,0x43,0x00,0xE0,0x90,0x43, + 0x48,0x62,0x70,0x47,0x80,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x08,0x22,0x11,0x43, + 0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0xB5,0x22,0x10,0xB5,0x07,0x49,0x08,0x48, + 0x92,0x00,0x03,0xF0,0x01,0xF8,0x07,0x48,0x07,0x4A,0xC0,0x8E,0x01,0x04,0x01,0x43, + 0x06,0x48,0x03,0xF0,0x1B,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x9D,0x00,0x00, + 0x00,0x00,0x10,0x40,0x00,0x93,0x00,0x00,0xA4,0x05,0x00,0x00,0xD4,0x02,0x10,0x40, + 0x06,0x49,0x00,0x28,0x08,0x69,0x03,0xD0,0x13,0x22,0x12,0x06,0x10,0x43,0x02,0xE0, + 0x03,0x22,0x12,0x06,0x90,0x43,0x08,0x61,0x70,0x47,0x00,0x00,0x40,0xA1,0x00,0x40, + 0x02,0x48,0x81,0x6B,0x49,0x08,0x49,0x00,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40, + 0x02,0x48,0x81,0x6B,0x01,0x22,0x11,0x43,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40, + 0x10,0xB5,0x0A,0x49,0x0A,0x48,0xFC,0x22,0x02,0xF0,0xC6,0xFF,0xFF,0x22,0x09,0x49, + 0x09,0x48,0xF1,0x32,0x02,0xF0,0xC0,0xFF,0x71,0x22,0x08,0x49,0x08,0x48,0xD2,0x00, + 0x02,0xF0,0xBA,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x04,0x96,0x00,0x00, + 0x04,0x90,0x00,0x40,0x00,0x97,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x99,0x00,0x00, + 0x78,0x08,0x10,0x40,0x04,0x49,0x02,0x22,0x00,0x28,0x08,0x68,0x01,0xD0,0x10,0x43, + 0x00,0xE0,0x90,0x43,0x08,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x03,0x48,0x41,0x68, + 0x01,0x22,0x12,0x04,0x11,0x43,0x41,0x60,0x70,0x47,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x70,0xB5,0x1A,0x4C,0x20,0x68,0x40,0x08,0x40,0x00,0x20,0x60,0x18,0x48,0xA6,0x15, + 0x05,0x04,0x2D,0x0C,0x00,0x22,0x31,0x00,0x28,0x00,0xFD,0xF7,0xFF,0xFF,0x32,0x00, + 0x21,0x00,0x28,0x00,0x00,0x23,0xFE,0xF7,0x01,0xF8,0x12,0x48,0x75,0x00,0x04,0x04, + 0x24,0x0C,0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0xF0,0xFF,0x0E,0x49,0x2A,0x00, + 0x20,0x00,0x00,0x23,0xFD,0xF7,0xF2,0xFF,0x0C,0x48,0x6D,0x00,0x04,0x04,0x24,0x0C, + 0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0xE1,0xFF,0x09,0x49,0x2A,0x00,0x20,0x00, + 0x00,0x23,0xFD,0xF7,0xE3,0xFF,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40, + 0x00,0x96,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x99,0x00,0x00, + 0x78,0x08,0x10,0x40,0x04,0x48,0x10,0xB5,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0xFE,0xF7, + 0x9D,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40,0xF1,0xB5,0x4F,0x48, + 0x82,0xB0,0x00,0x68,0x00,0x25,0x60,0x30,0x81,0x8A,0x2E,0x00,0x4C,0x4F,0x01,0x91, + 0x80,0x7D,0x01,0x00,0x41,0x43,0x08,0x06,0x00,0x0E,0x01,0x24,0x00,0x90,0x13,0xE0, + 0x0A,0x20,0x60,0x43,0x47,0x49,0x40,0x18,0x0B,0x21,0x89,0x01,0x41,0x18,0x09,0x7C, + 0x00,0x29,0x08,0xD0,0x44,0x49,0x40,0x18,0x01,0xF0,0x6C,0xF9,0x00,0x28,0x02,0xD0, + 0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x64,0x1C,0xB8,0x7A,0xA0,0x42,0xE8,0xDA,0x3F,0x48, + 0x03,0x89,0x81,0x89,0x5A,0x1A,0x00,0x2A,0x00,0xDC,0xCA,0x1A,0x41,0x89,0xC3,0x89, + 0x12,0x04,0x12,0x0C,0xCC,0x1A,0x00,0x2C,0x00,0xDC,0x5C,0x1A,0x81,0x7C,0x23,0x04, + 0x1B,0x0C,0x00,0x29,0x04,0xD0,0x41,0x7D,0xC8,0x29,0x01,0xD2,0x49,0x1C,0x41,0x75, + 0x32,0x49,0x20,0x39,0x8C,0x7E,0x14,0x2C,0x04,0xD2,0x0C,0x7F,0x00,0x2C,0x01,0xD0, + 0x01,0x24,0x4C,0x77,0x14,0x2A,0x01,0xD8,0x14,0x2B,0x04,0xD9,0xCC,0x7E,0xC8,0x2C, + 0x01,0xD2,0x64,0x1C,0xCC,0x76,0x02,0x2D,0x09,0xD2,0x14,0x2A,0x07,0xD2,0x14,0x2B, + 0x05,0xD2,0x10,0x24,0x04,0x5F,0x04,0x2C,0x07,0xDA,0x64,0x1C,0x04,0xE0,0x10,0x24, + 0x04,0x5F,0xE7,0x1C,0x01,0xDD,0x64,0x1E,0x04,0x82,0x44,0x7D,0x01,0x2C,0x01,0xD9, + 0x78,0x26,0x10,0xE0,0x02,0x2D,0x0E,0xD2,0x10,0x24,0x04,0x5F,0x02,0x2C,0x0A,0xDD, + 0xC9,0x7E,0x14,0x29,0x07,0xD2,0x51,0x3A,0x8B,0x2A,0x02,0xD3,0x51,0x3B,0x8B,0x2B, + 0x01,0xD2,0x77,0x26,0xF6,0x43,0x00,0x21,0x02,0x2D,0x01,0x75,0x0D,0xD2,0x31,0x00, + 0x78,0x31,0x04,0xD1,0xC1,0x7C,0xC8,0x29,0x01,0xD2,0x49,0x1C,0xC1,0x74,0xC1,0x7C, + 0x49,0x1E,0x02,0x29,0x01,0xD2,0x01,0x21,0x01,0x75,0x01,0x98,0x81,0x19,0x08,0x00, + 0x48,0x43,0x02,0x99,0x00,0x29,0x06,0xD1,0x06,0x49,0x09,0x79,0x01,0x29,0x02,0xD0, + 0x00,0x99,0xFD,0xF7,0xD5,0xFD,0xFE,0xBC,0x08,0xBC,0x18,0x47,0xCC,0x07,0x00,0x20, + 0x00,0x02,0x00,0x20,0x40,0x00,0x00,0x20,0xD6,0x02,0x00,0x00,0xC0,0x03,0x00,0x20, + 0x78,0x47,0xC0,0x46,0xD2,0x10,0xA0,0xE3,0x01,0x00,0xB0,0xE1,0x01,0x10,0x41,0xE2, + 0xFC,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x11,0x10,0xA0,0xE3, + 0x01,0x00,0xB0,0xE1,0x01,0x10,0x41,0xE2,0xFC,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1, + 0x02,0x48,0x41,0x6B,0x01,0x22,0x11,0x43,0x41,0x63,0x70,0x47,0x00,0x70,0x00,0x40, + 0x70,0x47,0x00,0x00,0xFE,0xB5,0x1B,0x48,0x1B,0x49,0x00,0x68,0x09,0x88,0x60,0x30, + 0x00,0x7E,0x00,0x25,0x2E,0x00,0x40,0x18,0x01,0x06,0x18,0x48,0x2F,0x00,0x00,0x7A, + 0x09,0x0E,0x00,0x28,0x01,0x90,0x21,0xD0,0x01,0x24,0x49,0x1C,0x00,0x91,0x13,0xE0, + 0x0A,0x20,0x60,0x43,0x12,0x49,0x40,0x18,0xFF,0x30,0xC1,0x30,0x80,0x7C,0x14,0x28, + 0x01,0xD2,0x01,0x26,0x07,0xE0,0x01,0x27,0x14,0x21,0xFD,0xF7,0xB1,0xFE,0x00,0x99, + 0x88,0x42,0x00,0xD3,0x01,0x25,0x64,0x1C,0x01,0x98,0xA0,0x42,0xE8,0xDA,0x00,0x2F, + 0x02,0xD1,0x00,0x2E,0x00,0xD0,0x02,0x25,0x28,0x06,0x00,0x0E,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xCC,0x07,0x00,0x20,0x00,0x07,0x00,0x20,0x00,0x02,0x00,0x20, + 0x40,0x00,0x00,0x20,0x10,0xB5,0xFF,0xF7,0x0D,0xFE,0x04,0x49,0x08,0x68,0x06,0x22, + 0x90,0x43,0x08,0x60,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x90,0x00,0x40, + 0x13,0x48,0x10,0xB5,0xC0,0x68,0x00,0x28,0x1F,0xD0,0x01,0x06,0x09,0x0F,0x03,0x29, + 0x01,0xD0,0x04,0x29,0x02,0xD1,0x00,0xF0,0xF1,0xF8,0x08,0xE0,0xF0,0x21,0x01,0x40, + 0x20,0x29,0x02,0xD2,0x00,0xF0,0x1A,0xF8,0x01,0xE0,0x03,0xF0,0xC7,0xFD,0x09,0x48, + 0x82,0x68,0x81,0x15,0x8A,0x43,0x82,0x60,0x82,0x68,0x0A,0x43,0x82,0x60,0x06,0x48, + 0x00,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0,0x39,0xFE,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x40,0x14,0x07,0x00,0x20,0xF1,0xB5,0x61,0x48, + 0x2E,0x21,0x90,0xB0,0x41,0x60,0x41,0x69,0x89,0x06,0xFC,0xD4,0x10,0x99,0x01,0x26, + 0x76,0x07,0xF1,0x63,0x84,0x69,0x5B,0x48,0x40,0x68,0x80,0x07,0xFB,0xD5,0x03,0xF0, + 0x9D,0xFD,0x59,0x4D,0x28,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0,0x1F,0xFE,0x10,0x9B, + 0x00,0x21,0x01,0x20,0x9B,0x1E,0xFF,0x27,0x4A,0x1E,0x40,0x03,0x04,0xF0,0x7E,0xFE, + 0x1E,0x16,0x40,0x40,0x40,0x40,0x13,0x40,0x40,0x42,0x10,0x40,0x40,0x58,0x40,0x68, + 0x4F,0x6F,0x76,0x7D,0x40,0x84,0x40,0x8B,0x92,0x4F,0x40,0x40,0x40,0x40,0x99,0x40, + 0x0B,0x20,0xF0,0x63,0x4D,0xE0,0x00,0xF0,0x28,0xF9,0x29,0xE0,0x03,0x21,0x09,0x07, + 0xCA,0x60,0xFE,0xF7,0x61,0xF9,0x00,0xF0,0x35,0xFE,0x44,0x48,0x44,0x4A,0x41,0x68, + 0x52,0x68,0x91,0x42,0x1C,0xD0,0x43,0x49,0x17,0x22,0xC9,0x8B,0x52,0x01,0x80,0x18, + 0x49,0x1C,0xC1,0x83,0xFD,0xF7,0x76,0xFA,0xA8,0x78,0xC0,0x07,0x01,0xD0,0xFF,0xF7, + 0x17,0xFE,0xA8,0x78,0x80,0x07,0x01,0xD5,0x04,0xF0,0x96,0xFD,0x3A,0x49,0x40,0x22, + 0x68,0x46,0x02,0xF0,0x99,0xFD,0x01,0x20,0x08,0x90,0x68,0x46,0x04,0xF0,0xA4,0xFD, + 0xF7,0x63,0x1E,0xE0,0x32,0x48,0xA0,0x30,0x00,0x7E,0x00,0x28,0xF8,0xD0,0x00,0x2C, + 0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x04,0xF0,0x6A,0xFB,0xF0,0xE7,0x03,0x21, + 0x09,0x07,0xCA,0x60,0xFE,0xF7,0x28,0xF9,0x10,0x98,0xFE,0xF7,0x79,0xF8,0x08,0xE0, + 0x03,0x21,0x09,0x07,0xCA,0x60,0xFE,0xF7,0x1F,0xF9,0x00,0xF0,0x67,0xFD,0x00,0xF0, + 0xF7,0xF8,0x20,0x48,0x41,0x68,0x41,0x60,0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x2C,0x02,0xD0,0x01,0x20,0x68,0x71,0xD2,0xE7,0x69,0x71,0xD0,0xE7,0x00,0x2C, + 0x02,0xD0,0x01,0x20,0xA8,0x71,0xCB,0xE7,0xA9,0x71,0xC9,0xE7,0x00,0x2C,0x02,0xD0, + 0x01,0x20,0xE8,0x71,0xC4,0xE7,0xE9,0x71,0xC2,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20, + 0x28,0x72,0xBD,0xE7,0x29,0x72,0xBB,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xA8,0x72, + 0xB6,0xE7,0xA9,0x72,0xB4,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xE8,0x72,0xAF,0xE7, + 0xE9,0x72,0xAD,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x73,0xA8,0xE7,0x29,0x73, + 0xA6,0xE7,0x00,0x2C,0x01,0xD0,0x6C,0x73,0x00,0xE0,0x69,0x73,0x04,0xF0,0x78,0xF9, + 0x9E,0xE7,0x00,0x00,0x00,0x40,0x00,0x30,0x14,0x07,0x00,0x20,0x00,0x00,0x00,0x10, + 0x00,0x93,0x00,0x00,0xE0,0x95,0x00,0x00,0xC0,0x92,0x00,0x00,0xF0,0xB5,0x36,0x4C, + 0x03,0x00,0x36,0x4A,0x36,0x4E,0x37,0x4F,0x37,0x48,0x38,0x49,0x25,0x68,0x30,0x3B, + 0x04,0xF0,0xC4,0xFD,0x12,0x0A,0x0C,0x0E,0x12,0x16,0x1A,0x1C,0x18,0x1E,0x20,0x2E, + 0x3A,0x16,0x3D,0x42,0x4A,0x50,0x53,0x0A,0xCD,0x61,0x3B,0xE0,0x60,0x68,0x01,0xE0, + 0x2F,0x48,0xC0,0x6B,0xC8,0x61,0x35,0xE0,0x10,0x8C,0x52,0x8C,0x00,0x04,0x37,0xE0, + 0xCE,0x61,0x2F,0xE0,0xE0,0x68,0xF5,0xE7,0x50,0x68,0xF3,0xE7,0xA0,0x68,0xF1,0xE7, + 0xD0,0x7B,0xEF,0xE7,0x27,0x48,0x03,0x7F,0x10,0x7D,0x52,0x7D,0xC4,0x07,0xE4,0x09, + 0x80,0x07,0x12,0x04,0xC0,0x0F,0x00,0x02,0x23,0x43,0x02,0x43,0x13,0x43,0x09,0xE0, + 0x90,0x7D,0x53,0x7E,0x00,0x06,0x03,0x43,0xD0,0x7D,0x12,0x7E,0x00,0x04,0x12,0x02, + 0x10,0x43,0x03,0x43,0xCB,0x61,0x0D,0xE0,0x90,0x7E,0x00,0x06,0xD2,0xE7,0x1A,0x48, + 0x00,0x69,0xC0,0x07,0xC0,0x0F,0xCD,0xE7,0x3A,0x69,0x00,0x8A,0x52,0x08,0x12,0x02, + 0x02,0x43,0xCA,0x61,0x5F,0x22,0x0A,0xE0,0x14,0x48,0xA2,0x69,0xC0,0x8B,0x00,0x04, + 0x10,0x43,0xBF,0xE7,0x38,0x69,0x40,0x08,0xBC,0xE7,0x80,0x69,0xBA,0xE7,0x48,0x69, + 0x10,0x42,0xFC,0xD1,0x03,0xF0,0x7A,0xFC,0xFF,0x20,0x01,0x21,0x49,0x07,0xC8,0x63, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x92,0x00,0x00,0x00,0x93,0x00,0x00, + 0x15,0x00,0x0E,0x00,0x00,0x20,0x00,0x40,0x14,0x07,0x00,0x20,0x00,0x40,0x00,0x30, + 0xC0,0x0F,0x00,0x20,0x60,0x06,0x00,0x20,0x00,0x96,0x00,0x00,0xE0,0x95,0x00,0x00, + 0x10,0xB5,0x00,0x20,0xFF,0xF7,0x84,0xFC,0x01,0x20,0xFF,0xF7,0xF3,0xFC,0x01,0x20, + 0xFF,0xF7,0xAE,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x70,0xB5,0x03,0x24,0x24,0x07, + 0xE5,0x68,0x00,0x20,0xC0,0x43,0xE0,0x60,0xFE,0xF7,0x54,0xF8,0x06,0x00,0xCB,0x20, + 0xC0,0x01,0xFE,0xF7,0x31,0xF8,0x03,0xF0,0xF9,0xFA,0x00,0xF0,0xA1,0xFC,0x03,0xF0, + 0xE9,0xFA,0x30,0x00,0xFE,0xF7,0x5A,0xF8,0xE5,0x60,0x70,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x20,0x03,0x21,0x10,0xB5,0xC0,0x43,0x09,0x07,0xC8,0x60,0x03,0xF0,0xE6,0xFA, + 0xFF,0xF7,0xDE,0xFC,0x05,0x48,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0x01,0x20,0x40,0x07, + 0x04,0xF0,0xEC,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x90,0x00,0x40, + 0xF8,0xB5,0x23,0x48,0x00,0x68,0x00,0x88,0xC0,0x06,0x3E,0xD5,0x21,0x4E,0x30,0x7A, + 0x00,0x28,0x3A,0xD0,0x70,0x7A,0x00,0x28,0x37,0xD0,0x01,0x25,0x32,0xE0,0x71,0x7A, + 0x1D,0x4F,0x09,0x23,0x8C,0x46,0x0A,0x21,0x69,0x43,0xCC,0x19,0x01,0x20,0x9B,0x01, + 0xFF,0x34,0xC1,0x34,0x23,0xE0,0x0A,0x22,0x42,0x43,0xD2,0x19,0xD2,0x18,0x21,0x7B, + 0x92,0x7B,0x91,0x42,0x1A,0xD1,0x0A,0x22,0x50,0x43,0xC0,0x19,0xC7,0x18,0x0E,0x21, + 0x10,0x20,0x61,0x5E,0x38,0x5E,0x12,0x22,0xBA,0x5E,0x08,0x1A,0x10,0x21,0x61,0x5E, + 0x89,0x1A,0x00,0x91,0x3A,0x8A,0xE1,0x89,0xFF,0xF7,0xD2,0xF9,0xE0,0x81,0x7A,0x8A, + 0x21,0x8A,0x00,0x98,0xFF,0xF7,0xCC,0xF9,0x20,0x82,0x02,0xE0,0x40,0x1C,0x84,0x45, + 0xD9,0xDA,0x6D,0x1C,0x30,0x7A,0xA8,0x42,0xC9,0xDA,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0xCC,0x07,0x00,0x20,0x00,0x02,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB5,0x00,0x20, + 0xB1,0xB0,0x10,0x90,0x0F,0x90,0x0E,0x90,0x0D,0x90,0xFC,0x48,0x01,0x8C,0x0A,0x91, + 0x40,0x8C,0x09,0x90,0xFA,0x48,0x02,0x68,0x13,0x00,0x60,0x33,0x59,0x7F,0x18,0x7F, + 0x08,0x91,0x11,0x00,0x80,0x31,0x8C,0x7A,0x07,0x94,0x4C,0x7A,0x06,0x94,0x12,0x88, + 0x12,0x07,0x24,0xD5,0xDA,0x7F,0x42,0x43,0x24,0x92,0x0A,0x78,0x42,0x43,0x23,0x92, + 0x4A,0x78,0x42,0x43,0x22,0x92,0x8A,0x78,0x42,0x43,0x21,0x92,0xCA,0x78,0x42,0x43, + 0x20,0x92,0x0A,0x79,0x42,0x43,0x1F,0x92,0x4A,0x79,0x42,0x43,0x1E,0x92,0x8A,0x79, + 0x42,0x43,0x1D,0x92,0xCA,0x79,0x42,0x43,0x1C,0x92,0x09,0x7A,0x41,0x43,0xE5,0x48, + 0x1B,0x91,0x30,0x90,0x00,0x7A,0x00,0x28,0x05,0xD1,0x00,0xF0,0xE7,0xFE,0x31,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x25,0x90,0xDE,0x48,0xE0,0x38,0x2F,0x90, + 0xDD,0x48,0x2E,0x90,0xDD,0x4D,0x25,0x98,0x1B,0x21,0x28,0x18,0x49,0x01,0x2D,0x90, + 0x40,0x18,0x04,0x78,0x00,0x2C,0x0F,0xD0,0x07,0x98,0x00,0x28,0x08,0xD1,0x0A,0x20, + 0x60,0x43,0x40,0x19,0xFF,0x30,0xD3,0x30,0x00,0xF0,0x04,0xFE,0x00,0x28,0x03,0xD0, + 0x2E,0x98,0x00,0x7D,0x00,0x28,0x03,0xD0,0x25,0x98,0xFF,0xF7,0xB9,0xF8,0xC2,0xE2, + 0x25,0x99,0x1D,0x27,0x07,0x20,0x7F,0x01,0x4E,0x00,0x18,0x21,0x41,0x43,0x49,0x19, + 0x89,0x19,0xCA,0x19,0x53,0x88,0x53,0x83,0x23,0x22,0x52,0x01,0x8A,0x18,0x09,0x23, + 0x52,0x8B,0xDB,0x01,0xC9,0x18,0x40,0x1E,0x4A,0x82,0xEE,0xD5,0x0A,0x20,0x44,0x43, + 0x65,0x19,0x2C,0x95,0xFF,0x35,0xC1,0x35,0xEA,0x89,0x0A,0x98,0x40,0x1E,0x82,0x42, + 0xDD,0xDC,0x2A,0x8A,0x09,0x98,0x40,0x1E,0x82,0x42,0xD8,0xDC,0xBB,0x48,0xE9,0x89, + 0x34,0x18,0xE0,0x19,0x2B,0x90,0x23,0x23,0x41,0x80,0x5B,0x01,0x29,0x8A,0xE0,0x18, + 0x2A,0x90,0x41,0x83,0x00,0x20,0x01,0x22,0xD2,0x02,0x01,0x00,0x05,0x90,0x07,0x20, + 0x04,0x92,0x18,0x23,0x43,0x43,0xB1,0x4F,0xDB,0x19,0x9B,0x19,0x1D,0x27,0x7F,0x01, + 0xDF,0x19,0x29,0x93,0x02,0x23,0xFB,0x5E,0xBC,0x46,0x00,0x2B,0x0B,0xDD,0x05,0x9F, + 0xBB,0x42,0x02,0xDD,0x67,0x46,0x7F,0x88,0x05,0x97,0x04,0x9F,0xBB,0x42,0x02,0xDA, + 0x63,0x46,0x5B,0x88,0x04,0x93,0x29,0x9F,0x23,0x23,0x5B,0x01,0xFF,0x18,0x1A,0x23, + 0xFB,0x5E,0x00,0x2B,0x05,0xDD,0x8B,0x42,0x00,0xDD,0x79,0x8B,0x93,0x42,0x00,0xDA, + 0x7A,0x8B,0x40,0x1E,0xD5,0xD5,0x04,0x9B,0x05,0x98,0xC0,0x1A,0xF0,0x28,0x02,0xDC, + 0x8B,0x1A,0xF0,0x2B,0x02,0xDD,0x2E,0x9F,0x01,0x23,0xBB,0x74,0x14,0x28,0x04,0xDA, + 0x88,0x1A,0x14,0x28,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x2F,0x99,0x48,0x74, + 0x2D,0x99,0x07,0x20,0xC0,0x01,0x08,0x18,0x28,0x90,0x80,0x7D,0x01,0x28,0x1B,0xD9, + 0x2B,0x98,0x02,0x21,0x1A,0x23,0x41,0x5E,0xC3,0x5E,0xC8,0x1A,0x00,0x28,0x00,0xDC, + 0x58,0x1A,0x00,0x04,0x00,0x14,0x0C,0x90,0x2A,0x99,0x1A,0x20,0x08,0x5E,0x09,0x21, + 0xC9,0x01,0x63,0x18,0x12,0x21,0x59,0x5E,0x43,0x1A,0x00,0x2B,0x00,0xDC,0x0B,0x1A, + 0x18,0x04,0x00,0x14,0x0B,0x90,0x02,0xE0,0x64,0x20,0x0B,0x90,0x0C,0x90,0x2B,0x98, + 0x1A,0x21,0x41,0x5E,0x02,0x00,0x02,0x20,0x10,0x5E,0x03,0xF0,0xD7,0xFA,0x12,0x90, + 0x09,0x20,0xC0,0x01,0x20,0x18,0x12,0x21,0x41,0x5E,0x2A,0x9A,0x1A,0x20,0x10,0x5E, + 0x03,0xF0,0xCC,0xFA,0x11,0x90,0x0F,0x20,0x80,0x01,0x20,0x18,0x12,0x21,0x41,0x5E, + 0x12,0x98,0x03,0xF0,0xC3,0xFA,0x14,0x90,0x25,0x20,0x40,0x01,0x20,0x18,0x0A,0x21, + 0x41,0x5E,0x11,0x98,0x03,0xF0,0xBA,0xFA,0x13,0x90,0x01,0x20,0x80,0x02,0x27,0x18, + 0x1F,0x20,0x40,0x01,0x20,0x18,0x0A,0x21,0x41,0x5E,0x02,0x22,0xBA,0x5E,0x14,0x98, + 0x03,0xF0,0xAE,0xFA,0x00,0x04,0x00,0x14,0x16,0x90,0x13,0x20,0x80,0x01,0x20,0x18, + 0x1A,0x22,0x02,0x21,0x82,0x5E,0x41,0x5E,0x13,0x98,0x03,0xF0,0xA1,0xFA,0x00,0x04, + 0x00,0x14,0x15,0x90,0x21,0x20,0x40,0x01,0x20,0x18,0x12,0x22,0x82,0x5E,0x1A,0x21, + 0x79,0x5E,0x16,0x98,0x03,0xF0,0x94,0xFA,0x00,0x04,0x00,0x14,0x18,0x90,0x05,0x20, + 0x00,0x02,0x20,0x18,0x0A,0x22,0x82,0x5E,0x27,0x20,0x40,0x01,0x20,0x18,0x12,0x21, + 0x41,0x5E,0x15,0x98,0x03,0xF0,0x84,0xFA,0x00,0x04,0x00,0x14,0x17,0x90,0x2A,0x98, + 0x02,0x22,0x82,0x5E,0x11,0x20,0x80,0x01,0x20,0x18,0x0A,0x21,0x41,0x5E,0x18,0x98, + 0x03,0xF0,0x76,0xFA,0x00,0x04,0x00,0x14,0x1A,0x90,0x29,0x20,0x40,0x01,0x20,0x18, + 0x1A,0x22,0x02,0x21,0x82,0x5E,0x41,0x5E,0x17,0x98,0x03,0xF0,0x69,0xFA,0x00,0x04, + 0x00,0x14,0x19,0x90,0x0B,0x99,0x0C,0x98,0x00,0xF0,0xB8,0xFF,0x3F,0x4F,0x01,0x21, + 0x18,0x22,0x4A,0x43,0xD2,0x19,0x0B,0x23,0x92,0x19,0xDB,0x01,0xD2,0x18,0x53,0x88, + 0x49,0x1E,0x53,0x83,0xF4,0xD5,0x0B,0x21,0xC9,0x01,0x61,0x18,0x48,0x80,0x2D,0x9A, + 0x2B,0x21,0x49,0x01,0x57,0x18,0xBA,0x7D,0x00,0x20,0x00,0x2A,0x94,0x46,0x0D,0xDB, + 0x18,0x21,0x13,0x00,0x4B,0x43,0x31,0x49,0x59,0x18,0x8B,0x19,0x0B,0x21,0xC9,0x01, + 0x5B,0x18,0x02,0x21,0x59,0x5E,0x08,0x18,0x52,0x1E,0xF1,0xD5,0x61,0x46,0x49,0x1C, + 0xFD,0xF7,0x96,0xF9,0x23,0x99,0x06,0x00,0x88,0x42,0x01,0xDC,0x01,0x20,0x0F,0xE0, + 0x21,0x98,0x86,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x1F,0x98,0x86,0x42,0x01,0xDC, + 0x03,0x20,0x05,0xE0,0x1D,0x98,0x86,0x42,0x01,0xDC,0x04,0x20,0x00,0xE0,0x05,0x20, + 0xB9,0x7A,0x40,0x1A,0x08,0x99,0x49,0x42,0x00,0x28,0x0B,0xDD,0x15,0x20,0x80,0x01, + 0x20,0x18,0x12,0x22,0x82,0x5E,0x08,0x9B,0x9A,0x42,0x01,0xD1,0x00,0x22,0x0A,0xE0, + 0x52,0x1C,0x08,0xE0,0x00,0x28,0x16,0x48,0x07,0xDA,0x20,0x18,0x12,0x22,0x82,0x5E, + 0x8A,0x42,0xF3,0xD0,0x52,0x1E,0x42,0x82,0x0A,0xE0,0x22,0x18,0x12,0x20,0x10,0x5E, + 0x00,0x28,0x01,0xDD,0x40,0x1E,0x02,0xE0,0x00,0x28,0x01,0xDA,0x40,0x1C,0x50,0x82, + 0x0B,0x48,0x22,0x18,0x12,0x20,0x10,0x5E,0x08,0x9A,0x90,0x42,0x12,0xD1,0xBA,0x7A, + 0x05,0x2A,0x0F,0xD2,0x52,0x1C,0xBA,0x72,0x13,0xE0,0x00,0x00,0x00,0x93,0x00,0x00, + 0xCC,0x07,0x00,0x20,0x00,0x02,0x00,0x20,0xC0,0x03,0x00,0x20,0x40,0x00,0x00,0x20, + 0x40,0x05,0x00,0x00,0x88,0x42,0x04,0xD1,0xB8,0x7A,0x01,0x28,0x01,0xD9,0x40,0x1E, + 0xB8,0x72,0x28,0x98,0x1A,0x9A,0x80,0x7D,0x19,0x9C,0x01,0x00,0x27,0x90,0x26,0x90, + 0x10,0x00,0xFD,0xF7,0x2D,0xF9,0x10,0x90,0x0E,0x90,0x26,0x99,0x20,0x00,0xFD,0xF7, + 0x27,0xF9,0x0F,0x90,0x0D,0x90,0xB8,0x7A,0x01,0x28,0x27,0xD1,0x0D,0xAA,0x0E,0xA9, + 0x6B,0x46,0x06,0xC3,0x19,0x9B,0x1A,0x9A,0x27,0x98,0x09,0x21,0x03,0xF0,0x4A,0xFE, + 0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0,0x28,0x98,0x17,0x9B,0x80,0x7D,0x18,0x9A, + 0x07,0x21,0x03,0xF0,0x3F,0xFE,0x3C,0x20,0x6B,0x46,0x18,0x5E,0x38,0x21,0x59,0x5E, + 0x34,0x22,0x9A,0x5E,0x01,0xAC,0x07,0xC4,0x00,0x22,0x10,0xAB,0x9A,0x5E,0x2C,0x98, + 0x00,0x92,0xFF,0x30,0x23,0x9B,0x24,0x9A,0xCD,0x30,0x9B,0xE0,0x02,0x28,0x27,0xD1, + 0x0D,0xAA,0x0E,0xA9,0x6B,0x46,0x06,0xC3,0x17,0x9B,0x18,0x9A,0x27,0x98,0x07,0x21, + 0x03,0xF0,0x20,0xFE,0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0,0x28,0x98,0x15,0x9B, + 0x80,0x7D,0x16,0x9A,0x05,0x21,0x03,0xF0,0x15,0xFE,0x3C,0x20,0x6B,0x46,0x18,0x5E, + 0x38,0x21,0x59,0x5E,0x34,0x22,0x9A,0x5E,0x01,0xAC,0x07,0xC4,0x00,0x22,0x10,0xAB, + 0x9A,0x5E,0x2C,0x98,0x21,0x9B,0xFF,0x30,0x00,0x92,0x22,0x9A,0xCD,0x30,0x71,0xE0, + 0x03,0x28,0x27,0xD1,0x0D,0xAA,0x0E,0xA9,0x6B,0x46,0x06,0xC3,0x15,0x9B,0x16,0x9A, + 0x27,0x98,0x05,0x21,0x03,0xF0,0xF6,0xFD,0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0, + 0x28,0x98,0x13,0x9B,0x80,0x7D,0x14,0x9A,0x03,0x21,0x03,0xF0,0xEB,0xFD,0x3C,0x20, + 0x6B,0x46,0x18,0x5E,0x38,0x21,0x59,0x5E,0x34,0x22,0x9A,0x5E,0x01,0xAC,0x07,0xC4, + 0x00,0x22,0x10,0xAB,0x9A,0x5E,0x2C,0x98,0x1F,0x9B,0xFF,0x30,0x00,0x92,0x20,0x9A, + 0xCD,0x30,0x47,0xE0,0x04,0x28,0x27,0xD1,0x0D,0xAA,0x0E,0xA9,0x68,0x46,0x06,0xC0, + 0x13,0x9B,0x14,0x9A,0x27,0x98,0x03,0x21,0x03,0xF0,0xCC,0xFD,0x0F,0xAA,0x10,0xA9, + 0x68,0x46,0x06,0xC0,0x28,0x98,0x11,0x9B,0x80,0x7D,0x12,0x9A,0x02,0x21,0x03,0xF0, + 0xC1,0xFD,0x3C,0x20,0x6B,0x46,0x18,0x5E,0x38,0x21,0x59,0x5E,0x34,0x22,0x9A,0x5E, + 0x01,0xAC,0x07,0xC4,0x00,0x22,0x10,0xAB,0x9A,0x5E,0x2C,0x98,0x1D,0x9B,0xFF,0x30, + 0x00,0x92,0x1E,0x9A,0xCD,0x30,0x1D,0xE0,0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0, + 0x11,0x9B,0x12,0x9A,0x27,0x98,0x02,0x21,0x03,0xF0,0xA4,0xFD,0x3C,0x22,0x6B,0x46, + 0x9A,0x5E,0x00,0x21,0x10,0xAB,0x59,0x5E,0x2A,0x9B,0x1A,0x20,0x18,0x5E,0x01,0xAB, + 0x07,0xC3,0x2B,0x98,0x02,0x22,0x82,0x5E,0x2C,0x98,0x1B,0x9B,0x00,0x92,0x1C,0x9A, + 0xFF,0x30,0xCD,0x30,0x31,0x00,0x03,0xF0,0xA1,0xFD,0x28,0x98,0x3D,0x49,0x80,0x7D, + 0x09,0x28,0x02,0xD2,0x28,0x9A,0x40,0x1C,0x90,0x75,0xB8,0x7D,0x02,0x28,0x01,0xD2, + 0x40,0x1C,0xB8,0x75,0x28,0x7B,0x40,0x1E,0x80,0x00,0x40,0x18,0x17,0x21,0x89,0x01, + 0x44,0x18,0x0A,0x20,0x20,0x5E,0x00,0x28,0x21,0xDB,0x0C,0x21,0x61,0x5E,0x00,0x29, + 0x1D,0xDB,0x06,0x9A,0x64,0x21,0x8E,0x1A,0x70,0x43,0xFD,0xF7,0x39,0xF8,0x07,0x00, + 0xE8,0x89,0x06,0x99,0x48,0x43,0x64,0x21,0xFD,0xF7,0x62,0xF9,0x38,0x18,0xE8,0x81, + 0x0C,0x20,0x20,0x5E,0x64,0x21,0x70,0x43,0xFD,0xF7,0x2A,0xF8,0x06,0x00,0x28,0x8A, + 0x06,0x99,0x48,0x43,0x64,0x21,0xFD,0xF7,0x53,0xF9,0x30,0x18,0x28,0x82,0xE8,0x89, + 0x60,0x81,0x28,0x8A,0xA0,0x81,0x25,0x98,0x40,0x1C,0x0C,0x28,0x25,0x90,0x00,0xDA, + 0x18,0xE5,0x30,0x98,0x00,0x7A,0x01,0x28,0x22,0xD1,0x30,0x98,0x2E,0x9A,0x80,0x7D, + 0x41,0x00,0x18,0x48,0x08,0x18,0x1D,0x21,0x49,0x01,0x41,0x18,0x0B,0x88,0x13,0x81, + 0x23,0x22,0x52,0x01,0x82,0x18,0x12,0x8B,0x2E,0x9B,0x5A,0x81,0x0A,0x8B,0x2E,0x99, + 0x8A,0x81,0x09,0x21,0xC9,0x01,0x40,0x18,0x00,0x8A,0x2E,0x99,0xC8,0x81,0x30,0x98, + 0x01,0x8B,0x2E,0x98,0x01,0x80,0x30,0x98,0x41,0x8B,0x2E,0x98,0x41,0x80,0xE6,0xE4, + 0x02,0x28,0xFC,0xD1,0x30,0x98,0x01,0x8B,0x2E,0x98,0x01,0x80,0x30,0x98,0x41,0x8B, + 0x2E,0x98,0x41,0x80,0x04,0x48,0x2E,0x99,0x42,0x88,0x8A,0x80,0x81,0x88,0x2E,0x98, + 0xC1,0x80,0xD4,0xE4,0x40,0x00,0x00,0x20,0x20,0x02,0x00,0x20,0xF8,0xB5,0x1C,0x4B, + 0x1C,0x7D,0xDA,0x8E,0xE4,0x07,0x31,0xD0,0x1C,0x8F,0x1A,0x4B,0x1B,0x7F,0x9E,0x46, + 0x19,0x4B,0x1E,0x78,0x16,0x4B,0x9D,0x7D,0x00,0x2E,0x76,0x46,0xAC,0x46,0xDD,0x7D, + 0x00,0x95,0x1D,0x7E,0x5F,0x7E,0x9B,0x7E,0x12,0xD0,0xB0,0x42,0x1E,0xD1,0x8C,0x45, + 0x08,0xD0,0x00,0x98,0x88,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0,0x8F,0x42,0x01,0xD0, + 0x8B,0x42,0x03,0xD1,0x20,0x00,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0xFA,0xE7, + 0xB1,0x42,0x0B,0xD1,0x84,0x45,0xF5,0xD0,0x00,0x99,0x81,0x42,0xF2,0xD0,0x85,0x42, + 0xF0,0xD0,0x87,0x42,0xEE,0xD0,0x83,0x42,0xF0,0xD1,0xEB,0xE7,0x10,0x00,0xEA,0xE7, + 0x00,0x93,0x00,0x00,0x60,0x06,0x00,0x20,0x18,0x07,0x00,0x20,0x0E,0x23,0x58,0x43, + 0x02,0x4A,0x40,0x18,0x40,0x00,0x10,0x5A,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0x1C,0x49,0x10,0xB5,0x4A,0x7A,0x1C,0x49,0x00,0x20,0x00,0x2A,0x15,0xD1,0x0A,0x89, + 0x00,0x2A,0x0F,0xD0,0x19,0x49,0x8A,0x42,0x0C,0xD0,0x10,0x00,0x1E,0x21,0x48,0x43, + 0x64,0x21,0xFD,0xF7,0xAD,0xF8,0xFF,0x30,0x4B,0x21,0x91,0x30,0xC9,0x00,0x88,0x42, + 0x00,0xD9,0x08,0x00,0x10,0xBC,0x08,0xBC,0x18,0x47,0x0F,0x4C,0x88,0x89,0xA4,0x89, + 0x0F,0x4A,0x01,0x00,0xA2,0x18,0x0E,0x4C,0xFF,0x39,0x7D,0x23,0xA6,0x39,0xDB,0x00, + 0x64,0x42,0x99,0x42,0x06,0xD8,0x10,0x00,0x50,0x43,0x59,0x1C,0xFD,0xF7,0x90,0xF8, + 0x20,0x1A,0xE7,0xE7,0xA0,0x42,0xE5,0xD9,0x03,0x21,0x10,0x00,0xFD,0xF7,0x88,0xF8, + 0x00,0x19,0xDF,0xE7,0x40,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0x0F,0x00,0x00, + 0x73,0xFA,0xFF,0xFF,0x04,0x48,0x41,0x69,0x49,0x06,0x01,0xD5,0x10,0x20,0x70,0x47, + 0x40,0x69,0xC0,0x06,0xC0,0x0E,0x70,0x47,0x00,0x40,0x00,0x30,0x70,0xB5,0x12,0x4D, + 0x00,0x24,0x01,0x21,0x49,0x07,0x68,0x69,0x80,0x06,0xFC,0xD4,0xE8,0x68,0x6A,0x68, + 0x6A,0x60,0x05,0xE0,0x6A,0x69,0x92,0x06,0xFC,0xD4,0xAA,0x69,0x04,0xC1,0xA4,0x18, + 0x02,0x00,0x40,0x1E,0x01,0x2A,0xF5,0xD8,0x2E,0x20,0x68,0x60,0x68,0x68,0x80,0x07, + 0xFC,0xD5,0x02,0xF0,0xAB,0xFF,0x05,0x48,0xE8,0x61,0xEC,0x61,0x68,0x69,0x80,0x06, + 0xFC,0xD4,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30,0xAB,0xFC,0xFF,0x8F, + 0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9,0xB0,0x40,0x9F,0xE5,0x0C,0x00,0x94,0xE5, + 0x00,0x00,0x50,0xE3,0xFC,0xFF,0xFF,0x0A,0x04,0x00,0x94,0xE5,0x04,0x00,0x84,0xE5, + 0x04,0x00,0x94,0xE5,0x04,0x00,0x10,0xE3,0x10,0x00,0x00,0x0A,0x0C,0x00,0x94,0xE5, + 0x04,0x10,0x90,0xE4,0x1C,0x10,0x84,0xE5,0x02,0x12,0xA0,0xE3,0x38,0x10,0x91,0xE5, + 0x04,0x00,0x00,0xEA,0x04,0x20,0x90,0xE4,0x1C,0x20,0x84,0xE5,0x14,0x20,0x94,0xE5, + 0x40,0x00,0x12,0xE3,0xFC,0xFF,0xFF,0x1A,0x01,0x10,0x51,0xE2,0xF8,0xFF,0xFF,0x1A, + 0x14,0x00,0x94,0xE5,0x5F,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x1A,0x11,0x00,0x00,0xEA, + 0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3,0xE8,0xFF,0xFF,0x0A,0x14,0x00,0x94,0xE5, + 0x20,0x00,0x10,0xE3,0xE5,0xFF,0xFF,0x1A,0x0C,0x00,0x94,0xE5,0x08,0x00,0x50,0xE3, + 0x10,0x40,0xBD,0x08,0xA6,0x0B,0x00,0x0A,0x14,0x10,0x94,0xE5,0x5F,0x00,0x11,0xE3, + 0x18,0x10,0x94,0x15,0x04,0x10,0x80,0x14,0xFA,0xFF,0xFF,0x1A,0x04,0x00,0x94,0xE5, + 0x02,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x0A,0x9D,0x0B,0x00,0xEB,0xD2,0xFF,0xFF,0xEA, + 0x00,0x40,0x00,0x30,0xF8,0xB5,0x20,0x4E,0x20,0x4F,0x00,0x25,0x2C,0x00,0x78,0x69, + 0x80,0x06,0xFC,0xD4,0x78,0x68,0x78,0x60,0xF8,0x68,0x04,0x28,0x0E,0xD1,0x1C,0x48, + 0x40,0x21,0x04,0xE0,0x7A,0x69,0x92,0x06,0xFC,0xD4,0xBA,0x69,0x04,0xC0,0x49,0x1E, + 0xF8,0xD2,0x20,0x25,0x17,0x4C,0x30,0x78,0x01,0x21,0x06,0xE0,0x05,0x28,0x07,0xD1, + 0x15,0x48,0x16,0x4C,0x85,0x08,0x30,0x78,0x02,0x21,0x08,0x43,0x30,0x70,0x10,0xE0, + 0x03,0x28,0x0E,0xD1,0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0, + 0x0D,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x78,0x69,0x80,0x06,0xFC,0xD4,0xB8,0x69, + 0x01,0xC4,0x6D,0x1E,0xF8,0xD2,0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5, + 0x02,0xF0,0xFC,0xFE,0xC3,0xE7,0x00,0x00,0x16,0x07,0x00,0x20,0x00,0x40,0x00,0x30, + 0x00,0x90,0x00,0x40,0x00,0xA0,0x00,0x40,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x10, + 0x01,0x49,0x20,0x20,0x48,0x61,0x70,0x47,0x00,0x40,0x00,0x30,0xF8,0xB5,0x01,0x22, + 0x52,0x07,0x11,0x68,0x3D,0x48,0x01,0x29,0x80,0x79,0x01,0xD1,0x01,0x25,0x03,0xE0, + 0x11,0x68,0x01,0x29,0x06,0xD9,0x02,0x25,0x00,0x28,0x0B,0xD0,0x00,0x21,0x33,0x27, + 0x7F,0x01,0x3B,0xE0,0x00,0x28,0x05,0xD1,0x34,0x48,0x0D,0x22,0x00,0x21,0x14,0x38, + 0x01,0xF0,0x24,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x4A,0x19,0x00,0x24,0x92,0x00, + 0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x26,0xD0,0x01,0x20,0x93,0x00, + 0x1B,0x0F,0x2B,0x4E,0x36,0x18,0xF6,0x19,0x36,0x7B,0x9E,0x42,0x01,0xD1,0x04,0x00, + 0x02,0xE0,0x40,0x1C,0x0C,0x28,0xF4,0xD9,0x00,0x2C,0x06,0xD0,0x0F,0x23,0x9B,0x06, + 0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43,0x0D,0xE0,0x21,0x4C,0x01,0x20,0x26,0x18, + 0xF6,0x19,0x36,0x7B,0x00,0x2E,0x03,0xD1,0x24,0x18,0xE4,0x19,0x23,0x73,0xED,0xE7, + 0x40,0x1C,0x0C,0x28,0xF3,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07, + 0x02,0x68,0x8A,0x42,0xC9,0xD8,0x00,0x21,0x21,0xE0,0x4A,0x19,0x92,0x00,0x10,0x18, + 0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x18,0xD1,0x11,0x4E,0x01,0x20,0x93,0x00, + 0x1C,0x0F,0x33,0x18,0xDB,0x19,0x1B,0x7B,0xA3,0x42,0x0A,0xD1,0x34,0x18,0x00,0x23, + 0xE4,0x19,0x23,0x73,0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43, + 0x02,0xE0,0x40,0x1C,0x0C,0x28,0xEC,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20, + 0x40,0x07,0x02,0x68,0x8A,0x42,0xD8,0xD8,0x9C,0xE7,0x00,0x00,0xC0,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0x03,0x23,0x1B,0x07,0xDA,0x68,0x01,0x21,0x81,0x40,0x8A,0x43, + 0xDA,0x60,0x70,0x47,0x10,0xB4,0x0F,0x24,0x03,0x23,0x1B,0x07,0x1C,0x60,0x05,0x4C, + 0x60,0x63,0x19,0x61,0x9A,0x60,0x00,0x20,0xC0,0x43,0xD8,0x60,0x00,0x20,0x18,0x60, + 0x10,0xBC,0x70,0x47,0x40,0x00,0x00,0x30,0x03,0x4B,0x00,0xB5,0x82,0x00,0x99,0x50, + 0xFF,0xF7,0xE0,0xFF,0x08,0xBC,0x18,0x47,0x4C,0x07,0x00,0x20,0xF0,0xB5,0x87,0xB0, + 0xFE,0xF7,0x5C,0xFB,0xFE,0xF7,0x3A,0xFB,0x01,0xF0,0x2E,0xFF,0x02,0xF0,0x0A,0xFD, + 0x00,0xF0,0xBA,0xFD,0x00,0xF0,0xC8,0xFB,0xFD,0xF7,0xF8,0xFF,0xFD,0xF7,0x66,0xFA, + 0x39,0x48,0x00,0x68,0x80,0x30,0x40,0x7B,0x00,0x28,0x04,0xD1,0xFF,0xF7,0x56,0xFA, + 0xFF,0xF7,0x06,0xFA,0x03,0xE0,0xFF,0xF7,0x03,0xFA,0xFF,0xF7,0x4F,0xFA,0x01,0x27, + 0x7F,0x07,0x78,0x68,0x6B,0x46,0x03,0x90,0x00,0x20,0xD8,0x73,0x03,0x98,0x78,0x60, + 0x02,0xF0,0xF8,0xFF,0x02,0xF0,0x68,0xFE,0x38,0x68,0x00,0x28,0x07,0xD0,0x78,0x68, + 0x80,0x0F,0x80,0x07,0x03,0xD5,0x3E,0x68,0x02,0x24,0x76,0x1C,0x37,0xE0,0x01,0x24, + 0x26,0x00,0xA0,0x00,0xC0,0x19,0x06,0x90,0x05,0x68,0xA8,0x01,0x80,0x0D,0x05,0x90, + 0xA8,0x05,0x80,0x0D,0x04,0x90,0x21,0x48,0x00,0x78,0x00,0x28,0x03,0xD1,0x04,0xA9, + 0x05,0xA8,0x02,0xF0,0x8F,0xFE,0x1E,0x4B,0x00,0x21,0x58,0x8C,0x40,0x1E,0x02,0x04, + 0x12,0x0C,0x68,0x46,0x06,0xC0,0x18,0x8C,0x0A,0x00,0x04,0xA9,0x40,0x1E,0x03,0x04, + 0x1B,0x0C,0x05,0xA8,0x03,0xF0,0x94,0xFE,0x04,0xA9,0x05,0xA8,0x03,0xF0,0x9A,0xFC, + 0x14,0x48,0x04,0x99,0x05,0x40,0x05,0x98,0x89,0x05,0x80,0x05,0x80,0x09,0x05,0x43, + 0xA8,0x0A,0x80,0x02,0x89,0x0D,0x08,0x43,0x06,0x99,0x08,0x60,0x64,0x1C,0xB4,0x42, + 0xC7,0xD9,0x38,0x68,0xFC,0xF7,0x7A,0xFF,0xFD,0xF7,0x1A,0xFE,0x02,0xF0,0xEC,0xFD, + 0xFF,0xF7,0xDC,0xFE,0xFC,0xF7,0xBC,0xFE,0x03,0xF0,0x2E,0xFD,0x06,0x48,0x40,0x79, + 0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xCC,0x07,0x00,0x20,0x1F,0x07,0x00,0x20, + 0x00,0x93,0x00,0x00,0xFF,0xFF,0x00,0xFC,0x40,0x00,0x00,0x20,0xF8,0xB5,0x02,0xF0, + 0x65,0xFC,0xFE,0xF7,0x8B,0xFD,0xFE,0xF7,0x5B,0xFE,0xFE,0xF7,0xA3,0xFE,0x1A,0x48, + 0x00,0x21,0xC0,0x7F,0x03,0xF0,0xE8,0xFB,0x18,0x4F,0x19,0x4D,0xFC,0x03,0x00,0x20, + 0x28,0x70,0xE8,0x61,0xE8,0x79,0x00,0x28,0x1A,0xD0,0x01,0x26,0x15,0xE0,0x78,0x68, + 0x00,0x07,0x12,0xD5,0xA6,0x63,0xF8,0x68,0x07,0x28,0x06,0xD1,0x02,0xF0,0x8E,0xFD, + 0xFF,0xF7,0x3B,0xF9,0xFF,0x20,0xE0,0x63,0x07,0xE0,0x0B,0x28,0x10,0xD1,0xE0,0x63, + 0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0x81,0xFD,0xE0,0x6B,0x0B,0x28,0xE6,0xD1, + 0xFE,0xF7,0x8C,0xF9,0x28,0x78,0x00,0x28,0xD9,0xD0,0x02,0xF0,0x27,0xFA,0xD6,0xE7, + 0x78,0x68,0x80,0x07,0xFC,0xD5,0xEE,0xE7,0x00,0x93,0x00,0x00,0x00,0x40,0x00,0x30, + 0x14,0x07,0x00,0x20,0x70,0xB5,0x05,0x00,0x1A,0x48,0x1B,0x4A,0x00,0x68,0x12,0x88, + 0x60,0x30,0x01,0x7E,0xC0,0x7D,0x2C,0x78,0x89,0x18,0x0E,0x06,0x17,0x49,0x36,0x0E, + 0x4A,0x7F,0x00,0x2A,0x0D,0xD1,0x89,0x7F,0x01,0x29,0x01,0xD1,0x80,0x1C,0x06,0xE0, + 0x02,0x29,0x01,0xD1,0x00,0x1D,0x02,0xE0,0x03,0x29,0x02,0xD1,0x80,0x1D,0x00,0x06, + 0x00,0x0E,0x00,0x2C,0x0A,0xD0,0x84,0x42,0x08,0xD3,0x14,0x21,0x20,0x00,0xFC,0xF7, + 0xEF,0xFD,0x76,0x1C,0xB0,0x42,0x05,0xD2,0x14,0x2C,0x07,0xD3,0x00,0x20,0x70,0xBC, + 0x08,0xBC,0x18,0x47,0x14,0x2C,0x01,0xD3,0xF0,0x20,0x00,0xE0,0x13,0x20,0x28,0x70, + 0x01,0x20,0xF4,0xE7,0xCC,0x07,0x00,0x20,0x00,0x07,0x00,0x20,0xA0,0x03,0x00,0x20, + 0x10,0xB5,0x0C,0x24,0x20,0x00,0xFE,0xF7,0x07,0xFA,0x64,0x1E,0xFA,0xD5,0x05,0x48, + 0x01,0x22,0x41,0x7C,0x01,0x29,0x01,0xD8,0x00,0x29,0x00,0xD1,0x42,0x74,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0xA0,0x93,0x00,0x00,0x10,0xB5,0x07,0x4C,0x07,0x48,0x22,0x00, + 0x00,0x21,0x01,0xF0,0x6B,0xFD,0x06,0x48,0x22,0x00,0x00,0x21,0x01,0xF0,0x66,0xFD, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD2,0x02,0x00,0x00,0x00,0x00,0x00,0x10, + 0xD2,0x07,0x00,0x20,0x10,0xB5,0x40,0x22,0xD4,0x05,0x00,0x21,0x20,0x00,0x01,0xF0, + 0x55,0xFD,0x01,0x20,0xA0,0x63,0x10,0xBC,0x08,0xBC,0x18,0x47,0x14,0x48,0x10,0xB5, + 0x44,0x08,0x14,0x49,0x14,0x48,0x62,0x00,0x01,0xF0,0x24,0xFD,0x10,0x48,0xC0,0x07, + 0x08,0xD0,0x0F,0x48,0xC2,0x07,0x0F,0x48,0xD2,0x0F,0x01,0x19,0x0E,0x48,0x00,0x19, + 0x01,0xF0,0x08,0xFD,0x0D,0x48,0x00,0x21,0x84,0x08,0x0D,0x48,0xA2,0x00,0x01,0xF0, + 0x45,0xFD,0x0A,0x48,0x80,0x07,0x07,0xD0,0x08,0x48,0x00,0x21,0x82,0x07,0x08,0x48, + 0x92,0x0F,0x00,0x19,0x01,0xF0,0x2A,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0x00,0x00,0x00,0x04,0x7A,0x00,0x00,0x40,0x00,0x00,0x20,0x28,0x0B,0x00,0x00, + 0x40,0x00,0x00,0x20,0x05,0x49,0xC8,0x05,0x41,0x62,0x05,0x49,0x81,0x62,0x05,0x48, + 0xFF,0x21,0xC1,0x60,0x00,0x21,0x41,0x61,0x70,0x47,0x00,0x00,0x80,0x88,0x3C,0x03, + 0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x40,0x02,0x49,0x03,0x48,0x01,0x60,0x20,0x21, + 0x41,0x60,0x70,0x47,0xDE,0x10,0x05,0x00,0x00,0x40,0x00,0x30,0x10,0xB5,0x00,0x24, + 0x20,0x00,0xFE,0xF7,0xF5,0xF9,0x64,0x1C,0x0C,0x2C,0xF9,0xDB,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x10,0xB5,0x01,0x24,0x64,0x03,0x20,0x00,0xFD,0xF7,0x84,0xF8, + 0xFE,0xF7,0x06,0xFD,0xFE,0xF7,0xD0,0xFC,0xFE,0xF7,0x0A,0xFD,0xFE,0xF7,0x00,0xFD, + 0xFE,0xF7,0xC2,0xFC,0x07,0x48,0x01,0x68,0xF0,0x22,0x91,0x43,0x06,0x4A,0x12,0x7B, + 0x12,0x07,0x12,0x0E,0x11,0x43,0x01,0x60,0x20,0x00,0xFD,0xF7,0x65,0xF8,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0xA0,0x00,0x40,0x00,0x93,0x00,0x00,0x10,0xB5,0x02,0xF0, + 0x15,0xFB,0x02,0xF0,0xF5,0xFA,0xFF,0x20,0xFD,0xF7,0x96,0xF8,0xFF,0xF7,0xAA,0xFF, + 0x11,0x48,0x80,0x22,0x00,0x21,0x01,0xF0,0xD1,0xFC,0x08,0x20,0xFD,0xF7,0x54,0xF8, + 0x00,0x22,0x0E,0x49,0xD2,0x43,0x00,0x20,0xFF,0xF7,0x04,0xFE,0x00,0xF0,0x1A,0xF8, + 0x0B,0x48,0x40,0x7A,0x00,0x28,0x04,0xD0,0x40,0x20,0xFD,0xF7,0x45,0xF8,0x00,0xF0, + 0x4D,0xF8,0x00,0xF0,0x37,0xF8,0x10,0x20,0x02,0xF0,0xE3,0xFA,0xFE,0xF7,0x18,0xFE, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x4C,0x07,0x00,0x20,0x02,0x03,0x0F,0x0F, + 0x00,0x93,0x00,0x00,0xF8,0xB5,0x03,0x24,0xE6,0x01,0x13,0x25,0x30,0x00,0xFD,0xF7, + 0x2B,0xF8,0x20,0x02,0xFD,0xF7,0x52,0xF8,0x0C,0x48,0x0A,0x21,0x00,0x6B,0xFC,0xF7, + 0xDF,0xFC,0x02,0x00,0xFF,0x21,0x90,0x31,0x02,0x20,0x00,0x23,0x00,0x95,0x03,0xF0, + 0x15,0xFB,0x07,0x4A,0x27,0x21,0x03,0x20,0x00,0x23,0x00,0x94,0x03,0xF0,0x0E,0xFB, + 0x30,0x00,0xFD,0xF7,0x09,0xF8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00, + 0xE8,0xFD,0x00,0x00,0x10,0xB5,0x08,0x49,0x00,0x20,0xFF,0xF7,0xCD,0xFD,0x03,0xF0, + 0xC0,0xFC,0x7D,0x20,0xC0,0x00,0x03,0xF0,0xAF,0xFC,0x00,0x20,0xFF,0xF7,0xAA,0xFD, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x7D,0x78,0x00,0x00,0x0A,0x48,0x10,0xB5, + 0x00,0x6B,0x0A,0x49,0x0A,0x4C,0x88,0x42,0x05,0xD9,0x7D,0x21,0xC9,0x00,0xFC,0xF7, + 0xA7,0xFC,0x64,0x30,0x01,0xE0,0xFF,0x20,0xF5,0x30,0x20,0x63,0x03,0xF0,0x6A,0xFC, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x93,0x00,0x00,0x07,0xA5,0x07,0x00, + 0x14,0x07,0x00,0x20,0x10,0xB5,0xFF,0xF7,0xCF,0xFE,0x14,0x48,0x00,0x7A,0x03,0xF0, + 0x0F,0xFA,0xFF,0xF7,0x3B,0xFF,0x11,0x48,0x11,0x4A,0xA0,0x30,0x41,0x89,0x00,0x24, + 0xD1,0x83,0x10,0x49,0x0F,0x4A,0xCC,0x60,0x0C,0x61,0x0F,0x49,0xC0,0x3A,0x09,0x68, + 0x40,0x31,0x49,0x7D,0x51,0x70,0x01,0x00,0x20,0x39,0x0A,0x8B,0x09,0x49,0x40,0x39, + 0x8A,0x63,0x00,0x88,0xC8,0x63,0xFF,0xF7,0x9B,0xFE,0x08,0x48,0xC4,0x80,0xFE,0xF7, + 0xEF,0xFA,0x07,0x48,0x04,0x70,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00, + 0x40,0x00,0x00,0x20,0x00,0x07,0x00,0x20,0xCC,0x07,0x00,0x20,0x00,0x02,0x00,0x20, + 0x15,0x07,0x00,0x20,0xF7,0xB5,0x2C,0x48,0x86,0xB0,0x04,0x90,0x00,0x20,0x2B,0x4E, + 0x07,0x00,0x02,0x90,0x03,0x90,0x05,0x90,0xFE,0xF7,0xCC,0xFB,0xFE,0xF7,0xA2,0xFC, + 0x27,0x48,0x40,0x7F,0x01,0x90,0x26,0x48,0x20,0x38,0x40,0x7F,0x00,0x25,0x00,0x90, + 0x00,0x24,0x21,0x00,0x28,0x00,0xFF,0xF7,0x39,0xFB,0x00,0x28,0x1B,0xD0,0x0E,0x21, + 0x69,0x43,0x04,0x9A,0x09,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A, + 0x01,0x1E,0x00,0xDC,0x41,0x42,0x00,0x28,0x01,0xDB,0x01,0x98,0x00,0xE0,0x00,0x98, + 0x81,0x42,0x01,0xDD,0x01,0x22,0x05,0x92,0x08,0x1A,0xB0,0x42,0x03,0xDD,0x06,0x00, + 0x2F,0x00,0x02,0x94,0x03,0x91,0x64,0x1C,0x0E,0x2C,0xDA,0xD3,0x6D,0x1C,0x15,0x2D, + 0xD6,0xD3,0x03,0x99,0x08,0x98,0x01,0x60,0x0E,0x48,0x00,0x69,0xC0,0x07,0x05,0xD0, + 0x07,0x99,0x02,0x98,0x08,0x60,0x06,0x98,0x07,0x60,0x04,0xE0,0x07,0x98,0x07,0x60, + 0x06,0x99,0x02,0x98,0x08,0x60,0x05,0x98,0x00,0x28,0x00,0xD0,0x04,0x20,0x09,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD4,0x02,0x10,0x40,0x78,0xEC,0xFF,0xFF, + 0x20,0x93,0x00,0x00,0x00,0x90,0x00,0x40,0x78,0x47,0xC0,0x46,0x68,0x30,0x9F,0xE5, + 0x60,0xC0,0x9F,0xE5,0x0E,0x06,0xD3,0xE5,0x01,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3, + 0x0F,0x16,0xD3,0x15,0x00,0x00,0xA0,0x13,0x00,0x00,0x51,0x13,0x1E,0xFF,0x2F,0x91, + 0x0E,0x26,0xD3,0xE5,0x00,0x10,0x83,0xE0,0x3D,0x16,0xD1,0xE5,0x02,0x00,0x12,0xE3, + 0x3C,0x26,0xD3,0xE5,0x82,0x21,0x62,0x00,0x82,0x10,0x81,0x00,0x81,0x11,0x61,0x10, + 0x81,0x10,0x82,0x10,0x01,0x11,0x9C,0xE7,0x80,0x20,0x83,0xE0,0x02,0x19,0xC1,0xE3, + 0xB0,0x11,0xC2,0xE1,0x0F,0x16,0xD3,0xE5,0x01,0x00,0x80,0xE2,0x00,0x00,0x51,0xE1, + 0xEE,0xFF,0xFF,0x8A,0x1E,0xFF,0x2F,0xE1,0x00,0x10,0x10,0x40,0x40,0x00,0x00,0x20, + 0x10,0xB4,0x0E,0x24,0x62,0x43,0x51,0x18,0x0A,0x4A,0x49,0x00,0x52,0x5E,0x0A,0x49, + 0x1E,0x24,0x0C,0x5F,0xA2,0x42,0x0B,0xDD,0x01,0x78,0x00,0x29,0x08,0xD1,0x03,0x70, + 0x06,0x48,0x59,0x00,0x08,0x18,0xFF,0x30,0xA1,0x30,0xC1,0x88,0x49,0x1C,0xC1,0x80, + 0x10,0xBC,0x70,0x47,0x00,0x00,0x00,0x10,0xE0,0x01,0x00,0x20,0x40,0x00,0x00,0x20, + 0xF0,0xB4,0x9D,0x00,0x2E,0x4B,0x0A,0x27,0xEB,0x18,0xFF,0x33,0x21,0x33,0x08,0x25, + 0x5D,0x5F,0xDF,0x5F,0x00,0x24,0x84,0x46,0x04,0x9E,0x05,0x98,0x23,0x00,0x01,0x2A, + 0x0E,0xD0,0x02,0x2A,0x3A,0xD0,0x03,0x2A,0x3E,0xD0,0x04,0x2A,0x11,0xD1,0xAB,0x19, + 0x1B,0x06,0x1B,0x16,0x0E,0x2B,0x3B,0xDC,0x0E,0x24,0x67,0x43,0xFC,0x18,0x06,0xE0, + 0xBB,0x1B,0x1B,0x06,0x1B,0x16,0x33,0xD4,0x0E,0x24,0x5C,0x43,0x64,0x19,0x24,0x06, + 0x24,0x0E,0x1C,0x4D,0x64,0x00,0x2D,0x5F,0x1B,0x4C,0x1E,0x26,0xA6,0x5F,0xB5,0x42, + 0x26,0xDD,0x64,0x46,0x24,0x78,0x00,0x2C,0x22,0xD1,0x84,0x00,0x01,0x2A,0x21,0xD0, + 0x84,0x00,0x61,0x18,0x02,0x2A,0x1F,0xD0,0x03,0x2A,0x1F,0xD0,0x04,0x2A,0x00,0xD1, + 0xCB,0x70,0x61,0x46,0x08,0x70,0x41,0x00,0x0D,0x48,0x08,0x18,0xFF,0x30,0xA1,0x30, + 0xC1,0x88,0x49,0x1C,0xC1,0x80,0x01,0x20,0xF0,0xBC,0x70,0x47,0xBB,0x19,0x1B,0x06, + 0x1B,0x16,0x15,0x2B,0xD0,0xDD,0x03,0xE0,0xAB,0x1B,0x1B,0x06,0x1B,0x16,0xC3,0xD5, + 0x00,0x20,0xF1,0xE7,0x0B,0x55,0xE4,0xE7,0x4B,0x70,0xE2,0xE7,0x8B,0x70,0xE0,0xE7, + 0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10,0xE0,0x01,0x00,0x20,0x88,0x42,0x00,0xDA, + 0x08,0x00,0x70,0x47,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00, + 0x70,0x47,0x10,0xB5,0x02,0x9C,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA, + 0x10,0x00,0x22,0x00,0x19,0x00,0xFF,0xF7,0xED,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x22,0x03,0xE0,0x03,0x78,0x40,0x1C,0x9A,0x18,0x49,0x1E,0x00,0x29,0xF9,0xDC, + 0x10,0x06,0x00,0x0E,0x70,0x47,0x00,0x00,0xF0,0xB5,0xF3,0x48,0xFF,0xB0,0x00,0x68, + 0x9E,0xB0,0x40,0x30,0x85,0x8B,0x00,0x20,0x96,0x90,0x15,0x20,0x95,0x90,0xEF,0x48, + 0x0C,0x22,0x00,0x21,0x01,0xF0,0xB2,0xFA,0xEC,0x48,0x18,0x22,0x00,0x21,0x0C,0x30, + 0x01,0xF0,0xAC,0xFA,0xFF,0x22,0x6A,0x32,0x00,0x21,0x36,0xA8,0x01,0xF0,0xA6,0xFA, + 0x34,0x22,0x00,0x21,0x29,0xA8,0x01,0xF0,0xA1,0xFA,0x34,0x22,0x00,0x21,0x1C,0xA8, + 0x01,0xF0,0x9C,0xFA,0x34,0x22,0x00,0x21,0x0F,0xA8,0x01,0xF0,0x97,0xFA,0x34,0x22, + 0x00,0x21,0x02,0xA8,0x01,0xF0,0x92,0xFA,0xDD,0x4C,0x64,0x21,0x20,0x89,0x68,0x43, + 0xFC,0xF7,0xAE,0xF9,0xD9,0x49,0x89,0x1D,0x9C,0x91,0xE1,0x89,0x40,0x18,0x9C,0x99, + 0xC8,0x83,0x20,0x79,0x00,0x28,0x7E,0xD0,0x00,0x26,0xF7,0xE0,0xB3,0x00,0x9B,0x18, + 0xFF,0x33,0x21,0x33,0x08,0x22,0x9A,0x5E,0x00,0x21,0x08,0x00,0x00,0x2A,0x03,0xDB, + 0x0E,0x20,0x0E,0x2A,0x00,0xDC,0x10,0x00,0x04,0x06,0x0A,0x20,0x18,0x5E,0x24,0x0E, + 0x00,0x28,0x03,0xDB,0x15,0x21,0x15,0x28,0x00,0xDC,0x01,0x00,0x0D,0x06,0x2D,0x0E, + 0x28,0x00,0x0E,0x21,0x48,0x43,0x9B,0x90,0x00,0x19,0x36,0xA9,0x08,0x5C,0x00,0x28, + 0x04,0xD1,0x96,0x98,0x40,0x1C,0x00,0x06,0x00,0x0E,0x96,0x90,0x01,0x20,0x91,0x90, + 0x94,0x90,0x93,0x90,0x96,0x98,0x29,0xAF,0x83,0x00,0x9A,0x93,0xD8,0x19,0xFD,0x54, + 0x99,0x90,0x45,0x70,0x84,0x70,0xC4,0x70,0x96,0x9A,0x00,0x21,0x68,0x46,0x06,0xC0, + 0xF8,0x5C,0x0E,0x21,0x33,0x00,0x48,0x43,0x00,0x19,0x36,0xA9,0x40,0x18,0x01,0x22, + 0x29,0xA9,0xFF,0xF7,0xED,0xFE,0x00,0x2D,0x92,0x90,0x1D,0xD0,0x00,0x2C,0x0D,0xD0, + 0x68,0x1E,0x0E,0x21,0x48,0x43,0x00,0x19,0x36,0xA9,0x40,0x18,0x96,0x9B,0x40,0x1E, + 0x6A,0x1E,0x61,0x1E,0xFF,0xF7,0xBC,0xFE,0x0E,0x2C,0x0B,0xD2,0x68,0x1E,0x0E,0x21, + 0x48,0x43,0x00,0x19,0x36,0xA9,0x40,0x18,0x96,0x9B,0x40,0x1C,0x6A,0x1E,0x61,0x1C, + 0xFF,0xF7,0xAE,0xFE,0x15,0x2D,0x1D,0xD2,0x00,0x2C,0x0D,0xD0,0x68,0x1C,0x0E,0x21, + 0x48,0x43,0x00,0x19,0x36,0xA9,0x40,0x18,0x96,0x9B,0x40,0x1E,0x6A,0x1C,0x61,0x1E, + 0xFF,0xF7,0x9E,0xFE,0x0E,0x2C,0x0D,0xD2,0x68,0x1C,0x0E,0x21,0x48,0x43,0x00,0x19, + 0x36,0xA9,0x40,0x18,0x00,0xE0,0x22,0xE1,0x96,0x9B,0x40,0x1C,0x6A,0x1C,0x61,0x1C, + 0xFF,0xF7,0x8E,0xFE,0x01,0x27,0x6B,0xE0,0x92,0x98,0x00,0x28,0x13,0xD0,0xBC,0x42, + 0x11,0xD3,0x96,0x9A,0x9A,0x98,0x01,0x92,0x29,0xA9,0x00,0x97,0x08,0x5C,0x0E,0x21, + 0x33,0x00,0x40,0x1E,0x48,0x43,0x00,0x19,0x36,0xA9,0x40,0x18,0x01,0x22,0x29,0xA9, + 0xFF,0xF7,0x96,0xFE,0x00,0xE0,0x00,0x20,0x92,0x90,0x91,0x98,0x00,0x28,0x13,0xD0, + 0xE8,0x19,0x15,0x28,0x10,0xD2,0x96,0x9A,0x99,0x98,0x01,0x92,0x00,0x97,0x40,0x78, + 0x0E,0x21,0x33,0x00,0x40,0x1C,0x48,0x43,0x00,0x19,0x36,0xA9,0x40,0x18,0x02,0x22, + 0x29,0xA9,0xFF,0xF7,0x7D,0xFE,0x00,0xE0,0x00,0x20,0x91,0x90,0x94,0x98,0x00,0x28, + 0x11,0xD0,0xBC,0x42,0x0F,0xD3,0x96,0x9A,0x99,0x98,0x00,0x97,0x01,0x92,0x80,0x78, + 0x36,0xA9,0x33,0x00,0x41,0x18,0x9B,0x98,0x03,0x22,0x40,0x1E,0x08,0x18,0x29,0xA9, + 0xFF,0xF7,0x66,0xFE,0x00,0xE0,0x00,0x20,0x94,0x90,0x93,0x98,0x00,0x28,0x12,0xD0, + 0xE0,0x19,0x0E,0x28,0x0F,0xD2,0x96,0x9A,0x99,0x98,0x00,0x97,0x01,0x92,0xC0,0x78, + 0x36,0xA9,0x33,0x00,0x41,0x18,0x9B,0x98,0x04,0x22,0x40,0x1C,0x08,0x18,0x29,0xA9, + 0xFF,0xF7,0x4E,0xFE,0x00,0xE0,0x00,0x20,0x93,0x90,0x91,0x99,0x92,0x98,0x40,0x18, + 0x94,0x99,0x40,0x18,0x93,0x99,0x40,0x18,0x05,0xD0,0x7F,0x1C,0x3F,0x06,0x3F,0x0E, + 0x95,0x98,0x87,0x42,0x90,0xD3,0x76,0x1C,0x36,0x06,0x36,0x0E,0x58,0x4A,0x10,0x79, + 0xB0,0x42,0x00,0xD9,0x02,0xE7,0x14,0x00,0x20,0x79,0x35,0xE0,0x83,0x00,0x1D,0x19, + 0xFF,0x35,0x21,0x35,0x06,0x23,0xEB,0x5E,0x00,0x22,0x11,0x00,0x00,0x2B,0x03,0xDB, + 0x15,0x21,0x15,0x2B,0x00,0xDC,0x19,0x00,0x0B,0x06,0x04,0x21,0x69,0x5E,0x1B,0x0E, + 0x00,0x29,0x03,0xDB,0x0E,0x22,0x0E,0x29,0x00,0xDC,0x0A,0x00,0x11,0x06,0x0E,0x22, + 0x53,0x43,0x09,0x0E,0x59,0x18,0x36,0xAA,0x51,0x5C,0x22,0x18,0x13,0x00,0xFF,0x32, + 0x81,0x32,0x51,0x76,0x51,0x7E,0xFF,0x22,0x59,0x32,0x49,0x00,0x09,0x19,0xFF,0x31, + 0xA1,0x31,0xC9,0x88,0x09,0x06,0x09,0x0E,0xD1,0x54,0xA2,0x8B,0x91,0x42,0x00,0xD9, + 0xA1,0x83,0x40,0x1E,0x00,0x06,0x00,0x0E,0x00,0x28,0xC7,0xD1,0x01,0x25,0x62,0xE0, + 0xAC,0x00,0x29,0xA8,0x01,0x5D,0x20,0x18,0x84,0x46,0x40,0x78,0x97,0x90,0x39,0xE0, + 0x62,0x46,0xD2,0x78,0x60,0x46,0x80,0x78,0x98,0x92,0x2D,0xE0,0x0E,0x22,0x4A,0x43, + 0x12,0x18,0x36,0xAB,0x9B,0x5C,0xAB,0x42,0x22,0xD1,0x2E,0x4B,0x52,0x00,0x9A,0x5E, + 0x9C,0x9E,0x1E,0x23,0xF3,0x5E,0x9A,0x42,0x1A,0xDD,0x29,0x4F,0xD2,0x1A,0x46,0x00, + 0xF6,0x19,0x36,0x8C,0x12,0x04,0x12,0x0C,0x56,0x43,0x1C,0xAB,0x1B,0x59,0x9B,0x19, + 0x1C,0xAE,0x33,0x51,0x4E,0x00,0xF6,0x19,0x40,0x36,0xB6,0x8A,0x0F,0xAB,0x1B,0x59, + 0x56,0x43,0x9B,0x19,0x0F,0xAE,0x33,0x51,0x02,0xAE,0x33,0x59,0x9A,0x18,0x32,0x51, + 0x40,0x1C,0x98,0x9A,0x00,0x06,0x00,0x0E,0x82,0x42,0xCF,0xD2,0x49,0x1C,0x97,0x98, + 0x09,0x06,0x09,0x0E,0x88,0x42,0xC3,0xD2,0x02,0xA8,0x06,0x59,0x00,0x2E,0x12,0xD0, + 0x1C,0xA8,0x00,0x59,0x31,0x00,0xFC,0xF7,0x4B,0xF9,0x11,0x49,0x6A,0x00,0x57,0x18, + 0xFF,0x21,0x6B,0x31,0xC8,0x53,0x0F,0xA8,0x00,0x59,0x31,0x00,0xFC,0xF7,0x40,0xF9, + 0xFF,0x37,0x81,0x37,0x78,0x80,0x0A,0x48,0x40,0x19,0xFF,0x30,0x81,0x30,0x45,0x76, + 0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x06,0x48,0x00,0x79,0xA8,0x42,0x98,0xD2,0x7F,0xB0, + 0x1E,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xCC,0x07,0x00,0x20,0xDA,0x01,0x00,0x20, + 0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10,0xF0,0xB5,0x00,0x20,0xF3,0xB0,0x0E,0x90, + 0x01,0x24,0x0F,0x90,0x0B,0x90,0x09,0x90,0xFF,0x4D,0x07,0x90,0x28,0x78,0xFF,0x4F, + 0x00,0x28,0x0A,0xD0,0xFE,0x48,0x01,0x79,0x06,0x91,0x41,0x79,0x05,0x91,0x81,0x79, + 0x04,0x91,0xC1,0x79,0x03,0x91,0x00,0x7A,0x0C,0xE0,0x38,0x68,0x01,0x00,0x20,0x30, + 0x42,0x7F,0x40,0x31,0x06,0x92,0x82,0x7F,0x05,0x92,0xC0,0x7F,0x04,0x90,0x08,0x78, + 0x03,0x90,0x48,0x78,0x2E,0x22,0x00,0x21,0x02,0x90,0x1C,0xA8,0x01,0xF0,0xA6,0xF8, + 0xF0,0x48,0xF1,0x49,0x00,0x22,0x08,0x81,0xF0,0x48,0x8A,0x81,0x72,0x90,0x42,0x81, + 0xEF,0x48,0xF0,0x4A,0x71,0x90,0x40,0x7A,0x70,0x92,0x02,0x28,0x02,0xD9,0x3A,0x68, + 0x52,0x8C,0x10,0xE0,0x02,0x28,0x06,0xD1,0x3A,0x68,0x70,0x9B,0x12,0x8C,0xDB,0x88, + 0xD2,0x18,0x0C,0x92,0x0F,0xE0,0x2A,0x78,0x00,0x2A,0x06,0xD0,0xE6,0x4A,0x70,0x9B, + 0x92,0x89,0x9B,0x88,0xD2,0x18,0x0C,0x92,0x05,0xE0,0x3A,0x68,0x70,0x9B,0xD2,0x8B, + 0x9B,0x88,0xD2,0x18,0x0C,0x92,0xE1,0x4A,0x0C,0x9B,0x6F,0x92,0x12,0x89,0xDA,0x49, + 0x0E,0x26,0xD2,0x18,0x0D,0x92,0x8E,0x5F,0x01,0x28,0x06,0xD9,0x39,0x68,0xC9,0x7E, + 0x48,0x43,0x04,0x06,0x24,0x0E,0x00,0xD1,0x01,0x24,0x72,0x99,0x3D,0x68,0x08,0x20, + 0x08,0x5E,0xA9,0x7E,0x48,0x43,0x03,0xF0,0xD3,0xF8,0x08,0x04,0x29,0x8B,0x00,0x0C, + 0x81,0x42,0x00,0xD9,0x08,0x00,0x21,0x00,0xFC,0xF7,0xAA,0xF8,0x72,0x99,0x48,0x81, + 0x21,0x00,0x30,0x00,0xFB,0xF7,0x74,0xFF,0x00,0x04,0x00,0x14,0x70,0x99,0x0A,0x90, + 0x40,0x35,0x68,0x89,0x09,0x89,0x0D,0x9E,0x44,0x18,0xB4,0x42,0x00,0xD2,0x0D,0x94, + 0xC7,0x48,0x6E,0x90,0x80,0x7B,0xC1,0x07,0x05,0xD0,0x80,0x07,0x01,0xD5,0x01,0x20, + 0x00,0xE0,0x02,0x20,0x09,0x90,0xC3,0x49,0x00,0x20,0x6D,0x91,0xBA,0x4F,0x88,0x83, + 0x78,0x89,0xA9,0x7B,0x48,0x43,0x03,0xF0,0xD7,0xF8,0x08,0x04,0x6D,0x99,0x00,0x14, + 0xC8,0x83,0xA9,0x89,0x88,0x42,0x02,0xDA,0xA8,0x89,0x6D,0x99,0xC8,0x83,0x0D,0x98, + 0x0C,0x21,0x00,0x04,0x00,0x14,0x6C,0x90,0x20,0x04,0x00,0x14,0x6B,0x90,0x30,0x04, + 0x00,0x14,0x6A,0x90,0x09,0x98,0x00,0x25,0xC0,0x07,0xC0,0x0F,0x09,0x1A,0x69,0x91, + 0x0D,0x21,0x08,0x1A,0x68,0x90,0x09,0x98,0x13,0x21,0x80,0x07,0xC0,0x0F,0x09,0x1A, + 0x67,0x91,0x14,0x21,0x08,0x1A,0x66,0x90,0xAB,0x48,0x65,0x90,0x0E,0x20,0x68,0x43, + 0xA1,0x49,0x64,0x90,0x68,0x00,0x00,0x24,0x40,0x18,0x40,0x30,0x63,0x90,0x64,0x98, + 0xA6,0x49,0x00,0x19,0x00,0x04,0x00,0x14,0x1B,0x90,0x40,0x00,0x62,0x90,0x08,0x5E, + 0x6D,0x99,0x1E,0x22,0x8A,0x5E,0x90,0x42,0x02,0xDD,0x88,0x8B,0x40,0x1C,0x88,0x83, + 0x9F,0x49,0x62,0x98,0x08,0x5E,0x6C,0x99,0x88,0x42,0x61,0x90,0x00,0xDA,0xFE,0xE3, + 0x00,0x20,0x00,0x2D,0x25,0xDD,0x1B,0x99,0x01,0x26,0x0E,0x39,0xC8,0x10,0x4B,0x07, + 0x1C,0xAA,0x10,0x5C,0x5B,0x0F,0x31,0x00,0x99,0x40,0x08,0x40,0x00,0x2C,0x0B,0xDD, + 0x1B,0x99,0x0F,0x39,0xCB,0x10,0xD7,0x5C,0x49,0x07,0x49,0x0F,0x33,0x00,0x8B,0x40, + 0x1F,0x40,0x38,0x18,0x00,0x06,0x00,0x0E,0x0D,0x2C,0x0C,0xDA,0x1B,0x99,0x0D,0x39, + 0xCB,0x10,0x49,0x07,0xD2,0x5C,0x49,0x0F,0x8E,0x40,0x32,0x40,0x10,0x18,0x00,0x06, + 0x00,0x0E,0x00,0x2C,0x0C,0xDD,0x1B,0x99,0x1C,0xAB,0x49,0x1E,0xCA,0x10,0x9A,0x5C, + 0x4B,0x07,0x5B,0x0F,0x01,0x21,0x99,0x40,0x0A,0x40,0x10,0x18,0x00,0x06,0x00,0x0E, + 0x00,0x28,0x00,0xD0,0xC3,0xE3,0x7F,0x48,0x00,0x7D,0x80,0x07,0x06,0xD5,0x0D,0x2C, + 0x0E,0xD1,0x7D,0x48,0x00,0x78,0x01,0x28,0x0A,0xD1,0x05,0xE0,0x14,0x2D,0x07,0xD1, + 0x79,0x48,0x00,0x78,0x01,0x28,0x03,0xD1,0x74,0x4A,0x62,0x99,0x00,0x20,0x50,0x52, + 0x00,0x26,0x37,0x00,0xE9,0x19,0x8C,0x46,0x00,0x20,0x49,0x1E,0x0E,0x22,0x51,0x43, + 0x60,0x91,0x21,0x18,0x62,0x46,0x52,0x1E,0x49,0x1E,0x00,0x2A,0x0D,0xDB,0x15,0x2A, + 0x0B,0xDC,0x00,0x29,0x09,0xDB,0x0E,0x29,0x07,0xDC,0x60,0x9A,0x51,0x18,0x4A,0x00, + 0x67,0x49,0x89,0x5E,0xB1,0x42,0x00,0xDD,0x0E,0x00,0x40,0x1C,0x00,0x04,0x00,0x14, + 0x03,0x28,0xE6,0xDB,0x7F,0x1C,0x3F,0x04,0x3F,0x14,0x03,0x2F,0xDA,0xDB,0x61,0x99, + 0x30,0x04,0x00,0x14,0x81,0x42,0x00,0xD0,0x81,0xE3,0x53,0x49,0x89,0x89,0x81,0x42, + 0x06,0xDC,0x51,0x49,0x88,0x81,0x08,0x79,0x40,0x1C,0x00,0x06,0x00,0x0E,0x0F,0x90, + 0x1B,0x98,0x1B,0x99,0xC0,0x10,0x4B,0x07,0x1C,0xAA,0x16,0x5C,0x5B,0x0F,0x01,0x21, + 0x99,0x40,0x0E,0x43,0x16,0x54,0x00,0x20,0x08,0x90,0x09,0x98,0xC0,0x07,0x0A,0xD0, + 0x0D,0x2C,0x01,0xD1,0x0D,0x20,0x09,0xE0,0x0C,0x2C,0x0F,0xD1,0x08,0x98,0x21,0x04, + 0x08,0x43,0x08,0x90,0x0A,0xE0,0x14,0x2D,0x02,0xD1,0x14,0x20,0x08,0x90,0x05,0xE0, + 0x13,0x2D,0x03,0xD1,0x08,0x98,0x29,0x04,0x08,0x43,0x08,0x90,0x08,0x98,0x00,0x04, + 0x61,0x98,0x04,0xD0,0x6B,0x99,0x88,0x42,0x00,0xDA,0x48,0xE3,0x03,0xE0,0x6A,0x99, + 0x88,0x42,0x00,0xDA,0x43,0xE3,0x31,0x49,0x08,0x68,0x5F,0x90,0x00,0x88,0x40,0x04, + 0x04,0xD5,0x31,0x4A,0x61,0x98,0xD2,0x89,0x80,0x1A,0x05,0xE0,0x37,0x4A,0x62,0x98, + 0x10,0x5E,0x2D,0x4A,0xD2,0x89,0x80,0x1A,0x00,0x28,0x00,0xDC,0x2F,0xE3,0x72,0x9B, + 0x0A,0x22,0x9A,0x5E,0x82,0x42,0x00,0xDB,0x29,0xE3,0x00,0x20,0x84,0x46,0x10,0x90, + 0x61,0x46,0x69,0x18,0x89,0x1E,0x09,0x06,0x09,0x16,0x0E,0x22,0x5E,0x91,0x51,0x43, + 0x5D,0x91,0x0A,0x23,0x61,0x46,0x59,0x43,0x2D,0xAA,0x8A,0x18,0x5C,0x92,0x00,0x20, + 0x3A,0xAA,0x8E,0x18,0x21,0x18,0x89,0x1E,0x5E,0x9A,0x09,0x06,0x09,0x16,0x16,0x2A, + 0x03,0xD2,0x00,0x29,0x01,0xDB,0x0E,0x29,0x03,0xDD,0x00,0x21,0x42,0x00,0xB1,0x52, + 0x69,0xE0,0x5F,0x9A,0x12,0x88,0x52,0x04,0x5D,0x9A,0x08,0xD5,0x1C,0x4B,0x52,0x18, + 0x52,0x00,0x9A,0x5A,0x0A,0x9B,0xD2,0x1A,0x43,0x00,0xF2,0x52,0x07,0xE0,0x17,0x4B, + 0x52,0x18,0x52,0x00,0x9A,0x5A,0x0A,0x9B,0xD2,0x1A,0x43,0x00,0xF2,0x52,0x42,0x00, + 0xB3,0x5E,0x00,0x2B,0x01,0xDA,0x00,0x27,0xB7,0x52,0x5F,0x9B,0x5D,0x9F,0x1B,0x88, + 0x1B,0x04,0x2B,0xD5,0x79,0x18,0x21,0xE0,0x20,0x07,0x00,0x20,0xCC,0x07,0x00,0x20, + 0xE0,0x95,0x00,0x00,0xFF,0x0F,0x00,0x00,0x40,0x00,0x00,0x20,0x20,0x01,0x00,0x20, + 0x00,0x02,0x00,0x20,0x00,0x07,0x00,0x20,0xA0,0x95,0x00,0x00,0xA0,0x01,0x00,0x20, + 0x40,0x06,0x00,0x20,0x20,0x06,0x00,0x20,0x80,0x00,0x00,0x20,0x00,0x00,0x00,0x10, + 0xD2,0x07,0x00,0x20,0x00,0x93,0x00,0x00,0x48,0x07,0x00,0x20,0xFF,0x4B,0x49,0x00, + 0x59,0x5A,0x0A,0x9B,0x5C,0x9F,0xC9,0x1A,0xB9,0x52,0x07,0xE0,0xFC,0x4B,0x79,0x18, + 0x49,0x00,0x59,0x5A,0x0A,0x9B,0x5C,0x9F,0xC9,0x1A,0xB9,0x52,0x5C,0x99,0x89,0x5E, + 0x00,0x29,0x02,0xDA,0x5C,0x9F,0x00,0x21,0xB9,0x52,0x61,0x46,0x00,0x29,0x0A,0xD0, + 0x04,0x29,0x08,0xD0,0x00,0x28,0x06,0xD0,0x04,0x28,0x04,0xD0,0x10,0x99,0x49,0x1C, + 0x09,0x06,0x09,0x0E,0x10,0x91,0x40,0x1C,0x00,0x04,0x00,0x14,0x05,0x28,0x81,0xDB, + 0x60,0x46,0x40,0x1C,0x00,0x04,0x00,0x14,0x05,0x28,0x84,0x46,0x00,0xDA,0x67,0xE7, + 0xE8,0x48,0x00,0x78,0x00,0x28,0x39,0xD1,0x10,0x98,0x40,0x1E,0x07,0x06,0x3F,0x0E, + 0x00,0xD1,0x01,0x27,0x02,0x22,0x40,0xAB,0x9A,0x5E,0x30,0xAB,0x3E,0x26,0x00,0x92, + 0x9E,0x5F,0x38,0x22,0x36,0x21,0x34,0x20,0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00, + 0x01,0xF0,0x21,0xFE,0x40,0xAB,0x06,0x00,0x0C,0x22,0x0A,0x21,0x08,0x20,0x9A,0x5E, + 0x59,0x5E,0x18,0x5E,0x01,0xF0,0x14,0xFE,0x30,0x18,0x39,0x00,0xFB,0xF7,0x70,0xFD, + 0x01,0x04,0x00,0x20,0x40,0xAB,0x18,0x5E,0x09,0x0C,0x42,0x1A,0x00,0x2A,0x00,0xDC, + 0x0A,0x1A,0xD1,0x49,0x09,0x68,0xC0,0x31,0x0B,0x88,0x9A,0x42,0x06,0xDA,0x49,0x88, + 0x88,0x42,0x03,0xDA,0x08,0x98,0x00,0x04,0x00,0xD1,0x50,0xE2,0x12,0x22,0x00,0x21, + 0x28,0xA8,0x00,0xF0,0x33,0xFE,0x30,0xAB,0x18,0x88,0x20,0xAB,0xC6,0x49,0x18,0x84, + 0x30,0xAB,0x58,0x88,0x20,0xAB,0x58,0x84,0x30,0xAB,0x98,0x88,0x20,0xAB,0x98,0x84, + 0x30,0xAB,0x58,0x89,0x20,0xAB,0xD8,0x84,0x30,0xAB,0xD8,0x89,0x20,0xAB,0x58,0x85, + 0x30,0xAB,0x98,0x8A,0x20,0xAB,0x98,0x85,0x30,0xAB,0xD8,0x8A,0x20,0xAB,0xD8,0x85, + 0x30,0xAB,0x18,0x8B,0x20,0xAB,0x18,0x86,0x09,0x68,0x0C,0x20,0x30,0xAB,0x18,0x5E, + 0x89,0x8B,0x48,0x43,0x02,0xF0,0x7C,0xFE,0x20,0xAB,0x19,0x85,0x02,0x22,0x40,0xAB, + 0x9A,0x5E,0x30,0xAB,0x3E,0x26,0x00,0x92,0x9E,0x5F,0x38,0x22,0x36,0x21,0x34,0x20, + 0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00,0xFF,0xF7,0x1B,0xFB,0x40,0xAB,0x06,0x00, + 0x0C,0x22,0x0A,0x21,0x08,0x20,0x9A,0x5E,0x59,0x5E,0x18,0x5E,0xFF,0xF7,0x0A,0xFB, + 0x01,0x00,0x30,0x00,0xFF,0xF7,0x02,0xFB,0x00,0x21,0x40,0xAB,0x59,0x5E,0x7D,0x22, + 0x52,0x01,0x91,0x42,0x07,0xDD,0x81,0x42,0x05,0xDD,0x08,0x1A,0x51,0x10,0x88,0x42, + 0x01,0xDD,0x01,0x20,0x07,0x90,0x9D,0x48,0xFF,0x21,0xC0,0x88,0x09,0x31,0x08,0x42, + 0x01,0xD1,0xC0,0x06,0x01,0xD5,0x01,0x20,0x07,0x90,0x68,0x98,0x04,0x26,0x14,0x90, + 0x66,0x98,0x13,0x90,0x06,0x98,0x80,0x07,0x42,0xD5,0x00,0x2C,0x1E,0xD1,0x0A,0x20, + 0x70,0x43,0x3A,0xA9,0x47,0x18,0x04,0x21,0x79,0x5E,0x06,0x20,0x64,0x22,0x5B,0x91, + 0x38,0x5E,0x49,0x1C,0x50,0x43,0xFB,0xF7,0xDB,0xFC,0x64,0x21,0x08,0x1A,0x01,0x04, + 0x09,0x14,0x00,0xD5,0x00,0x21,0x03,0x9A,0x5B,0x98,0x51,0x43,0x48,0x43,0x02,0xF0, + 0x31,0xFE,0x02,0x20,0x38,0x5E,0x88,0x42,0x00,0xDA,0x79,0x80,0x14,0x98,0x84,0x42, + 0x1E,0xD1,0x0A,0x20,0x70,0x43,0x3A,0xA9,0x47,0x18,0x04,0x21,0x79,0x5E,0x02,0x20, + 0x64,0x22,0x5A,0x91,0x38,0x5E,0x49,0x1C,0x50,0x43,0xFB,0xF7,0xB9,0xFC,0x64,0x21, + 0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x02,0x9A,0x5A,0x98,0x51,0x43, + 0x48,0x43,0x02,0xF0,0x0F,0xFE,0x06,0x20,0x38,0x5E,0x88,0x42,0x00,0xDA,0xF9,0x80, + 0x06,0x98,0xC0,0x07,0x40,0xD0,0x00,0x2D,0x1D,0xD1,0x70,0x00,0x3A,0xA9,0x47,0x18, + 0x14,0x21,0x79,0x5E,0x1E,0x20,0x64,0x22,0x59,0x91,0x38,0x5E,0x49,0x1C,0x50,0x43, + 0xFB,0xF7,0x96,0xFC,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21, + 0x05,0x9A,0x59,0x98,0x51,0x43,0x48,0x43,0x02,0xF0,0xEC,0xFD,0x0A,0x20,0x38,0x5E, + 0x88,0x42,0x00,0xDA,0x79,0x81,0x13,0x98,0x85,0x42,0x1D,0xD1,0x70,0x00,0x3A,0xA9, + 0x47,0x18,0x14,0x21,0x79,0x5E,0x0A,0x20,0x64,0x22,0x58,0x91,0x38,0x5E,0x49,0x1C, + 0x50,0x43,0xFB,0xF7,0x75,0xFC,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5, + 0x00,0x21,0x04,0x9A,0x58,0x98,0x51,0x43,0x48,0x43,0x02,0xF0,0xCB,0xFD,0x1E,0x20, + 0x38,0x5E,0x88,0x42,0x00,0xDA,0xF9,0x83,0x76,0x1E,0x36,0x04,0x36,0x14,0x00,0xD4, + 0x70,0xE7,0x06,0x98,0x00,0x26,0x80,0x07,0x00,0xD5,0xF0,0x26,0x06,0x98,0xC0,0x07, + 0x01,0xD0,0x3C,0x20,0x06,0x43,0xB0,0x09,0x1F,0xD0,0x14,0x98,0x84,0x42,0x1C,0xD1, + 0x00,0x2D,0x1A,0xD1,0x40,0xAB,0x08,0x20,0x18,0x5E,0x64,0x22,0x5F,0x5F,0x50,0x43, + 0x79,0x1C,0xFB,0xF7,0x45,0xFC,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5, + 0x00,0x21,0x02,0x9A,0x38,0x00,0x51,0x43,0x48,0x43,0x02,0xF0,0x9B,0xFD,0x38,0x20, + 0x30,0xAB,0x18,0x5E,0x88,0x42,0x00,0xDA,0x19,0x87,0xB0,0x06,0x80,0x0F,0x22,0xD0, + 0x14,0x98,0x84,0x42,0x1F,0xD1,0x13,0x98,0x85,0x42,0x1C,0xD1,0x00,0x27,0x40,0xAB, + 0xDF,0x5F,0x34,0x20,0x30,0xAB,0x18,0x5E,0x64,0x22,0x79,0x1C,0x50,0x43,0xFB,0xF7, + 0x1F,0xFC,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x02,0x9A, + 0x38,0x00,0x51,0x43,0x48,0x43,0x02,0xF0,0x75,0xFD,0x0C,0x20,0x40,0xAB,0x18,0x5E, + 0x88,0x42,0x00,0xDA,0x99,0x81,0x30,0x07,0x80,0x0F,0x20,0xD0,0x13,0x98,0x85,0x42, + 0x1D,0xD1,0x00,0x2C,0x1B,0xD1,0x40,0xAB,0x1E,0x5F,0x38,0x20,0x30,0xAB,0x18,0x5E, + 0x64,0x22,0x71,0x1C,0x50,0x43,0xFB,0xF7,0xFB,0xFB,0x64,0x21,0x08,0x1A,0x01,0x04, + 0x09,0x14,0x00,0xD5,0x00,0x21,0x04,0x9A,0x30,0x00,0x51,0x43,0x48,0x43,0x02,0xF0, + 0x51,0xFD,0x08,0x20,0x40,0xAB,0x18,0x5E,0x88,0x42,0x00,0xDA,0x19,0x81,0x12,0x48, + 0x04,0x27,0x06,0x68,0x40,0x36,0xB0,0x78,0x80,0x06,0x31,0xD5,0x00,0x2C,0x2F,0xD1, + 0x0A,0x20,0x78,0x43,0x3A,0xA9,0x40,0x18,0x57,0x90,0x04,0x21,0x06,0x22,0x41,0x5E, + 0x82,0x5E,0x64,0x20,0x49,0x1C,0x50,0x43,0x56,0x92,0xFB,0xF7,0xD1,0xFB,0x64,0x21, + 0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x09,0xE0,0xD2,0x07,0x00,0x20, + 0x00,0x00,0x00,0x10,0x21,0x07,0x00,0x20,0xCC,0x07,0x00,0x20,0x40,0x00,0x00,0x20, + 0x72,0x79,0x56,0x98,0x50,0x43,0x48,0x43,0x02,0xF0,0x1C,0xFD,0x56,0x98,0x40,0x1A, + 0x57,0x99,0x00,0x04,0x00,0x14,0xC8,0x80,0x02,0xD5,0x57,0x99,0x00,0x20,0xC8,0x80, + 0xB0,0x78,0xC0,0x06,0x24,0xD5,0x01,0x2C,0x22,0xD1,0x0A,0x20,0x78,0x43,0x3A,0xA9, + 0x40,0x18,0x72,0x79,0x06,0x21,0x55,0x90,0x41,0x5E,0x4A,0x43,0x04,0x21,0x41,0x5E, + 0x10,0x00,0x49,0x1C,0xFB,0xF7,0x9C,0xFB,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14, + 0x00,0xD5,0x00,0x21,0x55,0x9A,0x02,0x20,0x10,0x5E,0x48,0x43,0x02,0xF0,0xE0,0xFC, + 0x08,0x04,0x55,0x99,0x00,0x14,0x48,0x80,0x02,0xD5,0x55,0x99,0x00,0x20,0x48,0x80, + 0xB0,0x78,0x40,0x06,0x25,0xD5,0x69,0x98,0xA0,0x42,0x22,0xD1,0x0A,0x20,0x78,0x43, + 0x3A,0xA9,0x40,0x18,0xB2,0x79,0x02,0x21,0x54,0x90,0x41,0x5E,0x4A,0x43,0x04,0x21, + 0x41,0x5E,0x10,0x00,0x49,0x1C,0xFB,0xF7,0x73,0xFB,0x64,0x21,0x08,0x1A,0x01,0x04, + 0x09,0x14,0x00,0xD5,0x00,0x21,0x54,0x9A,0x06,0x20,0x10,0x5E,0x48,0x43,0x02,0xF0, + 0xB7,0xFC,0x08,0x04,0x54,0x99,0x00,0x14,0xC8,0x80,0x02,0xD5,0x54,0x99,0x00,0x20, + 0xC8,0x80,0xB0,0x78,0x00,0x06,0x27,0xD5,0x68,0x98,0xA0,0x42,0x24,0xD1,0x0A,0x20, + 0x78,0x43,0x3A,0xA9,0x40,0x18,0x53,0x90,0x04,0x21,0x02,0x22,0x41,0x5E,0x82,0x5E, + 0x64,0x20,0x49,0x1C,0x50,0x43,0x52,0x92,0xFB,0xF7,0x4A,0xFB,0x64,0x21,0x08,0x1A, + 0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0xB2,0x79,0x52,0x98,0x50,0x43,0x48,0x43, + 0x02,0xF0,0xA0,0xFC,0x52,0x98,0x40,0x1A,0x53,0x99,0x00,0x04,0x00,0x14,0x48,0x80, + 0x02,0xD5,0x53,0x99,0x00,0x20,0x48,0x80,0xB0,0x78,0x80,0x07,0x25,0xD5,0x00,0x2D, + 0x23,0xD1,0x79,0x00,0x3A,0xA8,0x08,0x18,0x51,0x90,0x14,0x21,0x1E,0x22,0x41,0x5E, + 0x82,0x5E,0x64,0x20,0x49,0x1C,0x50,0x43,0x50,0x92,0xFB,0xF7,0x21,0xFB,0x64,0x21, + 0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0xF2,0x78,0x50,0x98,0x50,0x43, + 0x48,0x43,0x02,0xF0,0x77,0xFC,0x50,0x98,0x40,0x1A,0x51,0x99,0x00,0x04,0x00,0x14, + 0xC8,0x83,0x02,0xD5,0x51,0x99,0x00,0x20,0xC8,0x83,0xB0,0x78,0x00,0xE0,0x59,0xE2, + 0xC0,0x07,0x23,0xD0,0x01,0x2D,0x21,0xD1,0x79,0x00,0x3A,0xA8,0x08,0x18,0xF2,0x78, + 0x1E,0x21,0x4F,0x90,0x41,0x5E,0x4A,0x43,0x14,0x21,0x41,0x5E,0x10,0x00,0x49,0x1C, + 0xFB,0xF7,0xF6,0xFA,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21, + 0x4F,0x9A,0x0A,0x20,0x10,0x5E,0x48,0x43,0x02,0xF0,0x3A,0xFC,0x08,0x04,0x4F,0x99, + 0x00,0x14,0x48,0x81,0x02,0xD5,0x4F,0x99,0x00,0x20,0x48,0x81,0xB0,0x78,0x40,0x07, + 0x24,0xD5,0x67,0x98,0xA8,0x42,0x21,0xD1,0x78,0x00,0x3A,0xA9,0x40,0x18,0x32,0x79, + 0x0A,0x21,0x4E,0x90,0x41,0x5E,0x4A,0x43,0x14,0x21,0x41,0x5E,0x10,0x00,0x49,0x1C, + 0xFB,0xF7,0xCE,0xFA,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21, + 0x4E,0x9A,0x1E,0x20,0x10,0x5E,0x48,0x43,0x02,0xF0,0x12,0xFC,0x08,0x04,0x4E,0x99, + 0x00,0x14,0xC8,0x83,0x02,0xD5,0x4E,0x99,0x00,0x20,0xC8,0x83,0xB0,0x78,0x00,0x07, + 0x26,0xD5,0x66,0x98,0xA8,0x42,0x23,0xD1,0x78,0x00,0x3A,0xA9,0x40,0x18,0x4D,0x90, + 0x14,0x21,0x0A,0x22,0x41,0x5E,0x82,0x5E,0x64,0x20,0x49,0x1C,0x50,0x43,0x4C,0x92, + 0xFB,0xF7,0xA6,0xFA,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21, + 0x32,0x79,0x4C,0x98,0x50,0x43,0x48,0x43,0x02,0xF0,0xFC,0xFB,0x4C,0x98,0x40,0x1A, + 0x4D,0x99,0x00,0x04,0x00,0x14,0x48,0x81,0x02,0xD5,0x4D,0x99,0x00,0x20,0x48,0x81, + 0x7F,0x1E,0x3F,0x04,0x3F,0x14,0x00,0xD4,0xA5,0xE6,0x08,0x98,0x00,0x28,0x2C,0xD0, + 0x09,0x98,0xC0,0x07,0x16,0xD0,0x04,0x20,0x00,0x22,0x3A,0xAE,0x08,0x99,0x09,0x04, + 0x06,0xD0,0x0A,0x23,0x01,0x00,0x59,0x43,0x72,0x52,0x89,0x19,0x4A,0x80,0x04,0xE0, + 0x0A,0x21,0x41,0x43,0x89,0x19,0xCA,0x80,0x0A,0x81,0x40,0x1E,0x00,0x04,0x00,0x14, + 0xEC,0xD5,0x12,0xE0,0x04,0x20,0x00,0x22,0x3A,0xAE,0x08,0x99,0x09,0x04,0x04,0xD0, + 0x41,0x00,0x72,0x52,0x89,0x19,0x4A,0x81,0x03,0xE0,0x41,0x00,0x89,0x19,0xCA,0x83, + 0x0A,0x85,0x40,0x1E,0x00,0x04,0x00,0x14,0xEF,0xD5,0x00,0x26,0x37,0x00,0xE9,0x19, + 0x4B,0x91,0x00,0x20,0x49,0x1E,0x0E,0x22,0x51,0x43,0x8C,0x46,0x4B,0x9A,0x21,0x18, + 0x52,0x1E,0x49,0x1E,0x00,0x2A,0x0C,0xDB,0x15,0x2A,0x0A,0xDC,0x00,0x29,0x08,0xDB, + 0x0E,0x29,0x06,0xDC,0xF9,0x4A,0x61,0x44,0x49,0x00,0x51,0x5E,0xB1,0x42,0x00,0xDD, + 0x0E,0x00,0x40,0x1C,0x00,0x04,0x00,0x14,0x03,0x28,0xE7,0xDB,0x7F,0x1C,0x3F,0x04, + 0x3F,0x14,0x03,0x2F,0xDB,0xDB,0xF2,0x49,0x30,0x04,0x0A,0x89,0x00,0x14,0x82,0x42, + 0x00,0xDD,0x08,0x81,0x4A,0x89,0x82,0x42,0x00,0xDA,0x48,0x81,0xEC,0x49,0x20,0xAB, + 0x08,0x79,0x26,0x22,0x40,0x1C,0x00,0x06,0x00,0x0E,0x08,0x71,0x80,0x00,0x40,0x18, + 0xFF,0x30,0x21,0x30,0x84,0x80,0x08,0x79,0x80,0x00,0x40,0x18,0xFF,0x30,0x21,0x30, + 0xC5,0x80,0x28,0x20,0x9A,0x5E,0x18,0x5E,0x00,0x21,0x82,0x42,0x07,0xDC,0x20,0x22, + 0x9A,0x5E,0x82,0x42,0x03,0xDC,0x2C,0x22,0x9A,0x5E,0x82,0x42,0x00,0xDD,0xC0,0x21, + 0x2A,0x22,0x20,0xAB,0x9A,0x5E,0x82,0x42,0x07,0xDC,0x24,0x22,0x9A,0x5E,0x82,0x42, + 0x03,0xDC,0x30,0x22,0x9A,0x5E,0x82,0x42,0x01,0xDD,0x30,0x22,0x11,0x43,0x22,0x22, + 0x20,0xAB,0x9A,0x5E,0x82,0x42,0x07,0xDC,0x20,0x22,0x9A,0x5E,0x82,0x42,0x03,0xDC, + 0x24,0x22,0x9A,0x5E,0x82,0x42,0x01,0xDD,0x0C,0x22,0x11,0x43,0x2E,0x22,0x20,0xAB, + 0x9A,0x5E,0x82,0x42,0x07,0xDC,0x2C,0x22,0x9A,0x5E,0x82,0x42,0x03,0xDC,0x30,0x22, + 0x9A,0x5E,0x82,0x42,0x01,0xDD,0x03,0x20,0x01,0x43,0x8F,0x06,0x0A,0x07,0x04,0x20, + 0x94,0x46,0x00,0x22,0x8B,0x09,0x04,0xD1,0x0A,0x26,0x03,0x00,0x73,0x43,0x3A,0xAE, + 0xF2,0x52,0xBB,0x0F,0x05,0xD1,0x0A,0x26,0x03,0x00,0x73,0x43,0x3A,0xAE,0x9B,0x19, + 0x1A,0x81,0x63,0x46,0x9B,0x0F,0x02,0xD1,0x43,0x00,0x3A,0xAE,0xF2,0x52,0x8B,0x07, + 0x03,0xD1,0x43,0x00,0x3A,0xAE,0x9B,0x19,0x1A,0x85,0x40,0x1E,0x00,0x04,0x00,0x14, + 0xE0,0xD5,0x30,0x22,0x30,0xAB,0x9A,0x5E,0x2E,0x26,0x2A,0x21,0x00,0x92,0x9E,0x5F, + 0x2C,0x22,0x28,0x20,0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0,0x4B,0xFA, + 0x3A,0x22,0x30,0xAB,0x19,0x90,0x9A,0x5E,0x38,0x26,0x34,0x21,0x00,0x92,0x9E,0x5F, + 0x36,0x22,0x32,0x20,0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0,0x3B,0xFA, + 0x04,0x22,0x40,0xAB,0x18,0x90,0x9A,0x5E,0x02,0x26,0x3E,0x21,0x00,0x92,0x00,0x22, + 0x9E,0x5F,0x9A,0x5E,0x30,0xAB,0x3C,0x20,0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0, + 0x2A,0xFA,0x0E,0x22,0x40,0xAB,0x17,0x90,0x9A,0x5E,0x0C,0x26,0x08,0x21,0x00,0x92, + 0x9E,0x5F,0x0A,0x22,0x06,0x20,0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0, + 0x1A,0xFA,0x18,0x22,0x40,0xAB,0x16,0x90,0x9A,0x5E,0x16,0x26,0x12,0x21,0x00,0x92, + 0x9E,0x5F,0x14,0x22,0x10,0x20,0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0, + 0x0A,0xFA,0x15,0x90,0x00,0x90,0x16,0x9B,0x17,0x9A,0x18,0x99,0x19,0x98,0x01,0xF0, + 0x02,0xFA,0x00,0x28,0x1A,0x90,0x09,0xD1,0x32,0x22,0x00,0x21,0x3A,0xA8,0x00,0xF0, + 0x35,0xFA,0x0A,0x20,0x40,0xAB,0x17,0x90,0x18,0x80,0x1A,0x90,0x10,0x22,0x40,0xAB, + 0x9A,0x5E,0x06,0x26,0x32,0x21,0x00,0x92,0x9E,0x5F,0x30,0xAB,0x3C,0x22,0x28,0x20, + 0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0,0xE5,0xF9,0x78,0x4A,0x61,0x00, + 0x8E,0x18,0xF1,0x8B,0x12,0x22,0x40,0xAB,0x48,0x43,0x14,0x90,0x9A,0x5E,0x08,0x27, + 0x34,0x21,0x00,0x92,0xDF,0x5F,0x30,0xAB,0x3E,0x22,0x2A,0x20,0x9A,0x5E,0x59,0x5E, + 0x18,0x5E,0x3B,0x00,0x01,0xF0,0xCF,0xF9,0x31,0x8C,0x14,0x22,0x40,0xAB,0x48,0x43, + 0x13,0x90,0x9A,0x5E,0x0A,0x27,0x36,0x21,0x00,0x92,0x00,0x22,0xDF,0x5F,0x9A,0x5E, + 0x30,0xAB,0x2C,0x20,0x59,0x5E,0x18,0x5E,0x3B,0x00,0x01,0xF0,0xBC,0xF9,0x71,0x8C, + 0x16,0x22,0x40,0xAB,0x48,0x43,0x12,0x90,0x9A,0x5E,0x0C,0x27,0x38,0x21,0x00,0x92, + 0x02,0x22,0xDF,0x5F,0x9A,0x5E,0x30,0xAB,0x2E,0x20,0x59,0x5E,0x18,0x5E,0x3B,0x00, + 0x01,0xF0,0xA9,0xF9,0xB1,0x8C,0x07,0x00,0x18,0x22,0x4F,0x43,0x40,0xAB,0x11,0x97, + 0x9A,0x5E,0x0E,0x27,0x3A,0x21,0x00,0x92,0x04,0x22,0xDF,0x5F,0x9A,0x5E,0x30,0xAB, + 0x30,0x20,0x59,0x5E,0x18,0x5E,0x3B,0x00,0x01,0xF0,0x95,0xF9,0xF1,0x8C,0x11,0x9B, + 0x12,0x9A,0x48,0x43,0x00,0x90,0x13,0x99,0x14,0x98,0x01,0xF0,0x8C,0xF9,0x1A,0x99, + 0xFB,0xF7,0xE6,0xF8,0x4A,0x49,0x09,0x8C,0x49,0x00,0x40,0x1A,0x00,0xD5,0x00,0x20, + 0x47,0x4F,0x39,0x79,0x49,0x00,0xC9,0x19,0xE0,0x31,0x88,0x82,0x63,0x98,0x19,0x99, + 0x40,0x8A,0x18,0x9A,0x17,0x9B,0x48,0x43,0x63,0x99,0x89,0x8A,0x51,0x43,0x63,0x9A, + 0xD2,0x8A,0x5A,0x43,0x94,0x46,0x63,0x9A,0x15,0x9B,0x16,0x8B,0x16,0x9A,0x56,0x43, + 0x63,0x9A,0x52,0x8B,0x5A,0x43,0x00,0x92,0x33,0x00,0x62,0x46,0x01,0xF0,0x63,0xF9, + 0x1A,0x99,0xFB,0xF7,0xBD,0xF8,0x65,0x99,0x89,0x8A,0x49,0x00,0x40,0x1A,0x00,0xD5, + 0x00,0x20,0x39,0x79,0x49,0x00,0xC9,0x19,0xFF,0x31,0x01,0x31,0xC8,0x81,0x38,0x79, + 0x0C,0x28,0x10,0xD2,0x64,0x1C,0x24,0x04,0x24,0x14,0x0E,0x2C,0x01,0xDA,0xFF,0xF7, + 0x86,0xF9,0x0E,0x98,0x00,0x28,0x06,0xD1,0x6D,0x1C,0x2D,0x04,0x2D,0x14,0x15,0x2D, + 0x01,0xDA,0xFF,0xF7,0x73,0xF9,0x27,0x48,0x04,0x68,0x20,0x88,0x00,0x06,0x52,0xD5, + 0x23,0x4A,0x10,0x79,0x00,0x28,0x6F,0x98,0x0C,0xD1,0x00,0x89,0x00,0x28,0x43,0xD0, + 0x6F,0x98,0x20,0x34,0x40,0x79,0x21,0x7F,0x88,0x42,0x3D,0xD2,0x6F,0x99,0x40,0x1C, + 0x48,0x71,0x40,0xE0,0x25,0x00,0x20,0x35,0x80,0x79,0x29,0x7D,0x88,0x42,0x29,0xD8, + 0x40,0x1C,0x6F,0x99,0x00,0x06,0x00,0x0E,0x88,0x71,0x69,0x7D,0x81,0x42,0x03,0xD2, + 0x92,0x89,0x0B,0x9B,0xD2,0x18,0x0B,0x92,0x2A,0x7D,0x90,0x42,0x1A,0xD1,0x88,0x42, + 0x18,0xD0,0x41,0x1A,0x0B,0x98,0xFB,0xF7,0x9B,0xF9,0x6F,0x9A,0x00,0x21,0x11,0x81, + 0x21,0x8F,0x81,0x42,0x0E,0xD2,0x0C,0x99,0x40,0x1A,0xA9,0x7D,0x48,0x43,0x02,0xF0, + 0xE3,0xF9,0x08,0x04,0x6F,0x99,0x00,0x0C,0x08,0x81,0x61,0x8F,0x88,0x42,0x01,0xD9, + 0x6F,0x98,0x01,0x81,0x6F,0x98,0x00,0x21,0x41,0x71,0x0C,0xE0,0x00,0x00,0x00,0x10, + 0x40,0x00,0x00,0x20,0xCC,0x07,0x00,0x20,0x6F,0x99,0x00,0x20,0x88,0x71,0x6F,0x99, + 0x48,0x71,0x6F,0x99,0x08,0x81,0x00,0x20,0x84,0x46,0x09,0x90,0x67,0x48,0x01,0x22, + 0x00,0x79,0x01,0x28,0x4A,0x90,0x4E,0xDB,0x6E,0x98,0xC0,0x7B,0x49,0x90,0x63,0x49, + 0x50,0x00,0x40,0x18,0xF4,0x23,0x1B,0x5A,0x61,0x4C,0xFF,0x30,0x63,0x43,0x01,0x30, + 0xC0,0x89,0xDD,0x0C,0x23,0x00,0x58,0x43,0xC6,0x0C,0x49,0x9B,0x00,0x20,0x00,0x2B, + 0x09,0x90,0x32,0xDD,0x14,0x06,0x59,0x4B,0x24,0x0E,0x91,0x00,0x48,0x94,0xCC,0x18, + 0xFF,0x34,0x21,0x34,0x55,0x49,0xC3,0x00,0x59,0x18,0x03,0x23,0x5B,0x02,0xC9,0x18, + 0x10,0x27,0xCF,0x5F,0xAF,0x42,0x1A,0xDC,0x14,0x27,0xCF,0x5F,0xAF,0x42,0x16,0xDB, + 0x12,0x27,0xCF,0x5F,0xB7,0x42,0x12,0xDC,0x16,0x27,0xCF,0x5F,0xB7,0x42,0x0E,0xDB, + 0x06,0x21,0x61,0x5E,0x0E,0x23,0x59,0x43,0x04,0x23,0xE3,0x5E,0xC9,0x18,0x4B,0x00, + 0x48,0x49,0xC9,0x5E,0x61,0x45,0x02,0xDD,0x8C,0x46,0x48,0x99,0x09,0x91,0x40,0x1C, + 0x49,0x99,0x00,0x04,0x00,0x14,0x81,0x42,0xD4,0xDC,0x52,0x1C,0x4A,0x98,0x12,0x04, + 0x12,0x14,0x90,0x42,0xB3,0xDA,0x3D,0x48,0x41,0x89,0x05,0x00,0x28,0x00,0xF4,0x30, + 0x04,0x00,0x1A,0x34,0xAD,0x1C,0x47,0x94,0x2C,0x00,0xFF,0x35,0xE0,0x34,0x01,0x35, + 0x61,0x45,0x19,0xDC,0x09,0x99,0x00,0x29,0x16,0xD0,0x34,0x4A,0x49,0x00,0x89,0x18, + 0xF4,0x22,0x56,0x5A,0xFF,0x31,0x01,0x31,0xCF,0x89,0x1A,0x22,0x00,0x21,0x00,0xF0, + 0xAD,0xF8,0x47,0x98,0x1A,0x22,0x00,0x21,0x00,0xF0,0xA8,0xF8,0x2B,0x49,0x01,0x20, + 0x08,0x71,0xA6,0x82,0xEF,0x81,0x22,0xE0,0x28,0x49,0x4A,0x79,0x00,0x2A,0x1E,0xD1, + 0x4A,0x9A,0x01,0x2A,0x1B,0xD9,0x71,0x9A,0x92,0x7A,0x00,0x2A,0x17,0xD1,0x0F,0x9A, + 0x00,0x2A,0x14,0xD0,0x52,0x00,0x51,0x18,0xF4,0x22,0x56,0x5A,0xFF,0x31,0x01,0x31, + 0xCF,0x89,0x1A,0x22,0x00,0x21,0x00,0xF0,0x89,0xF8,0x47,0x98,0x1A,0x22,0x00,0x21, + 0x00,0xF0,0x84,0xF8,0x19,0x49,0x01,0x20,0x08,0x71,0xA6,0x82,0xEF,0x81,0x6E,0x98, + 0xC0,0x7A,0x00,0x28,0x0D,0xD0,0x15,0x48,0x00,0x21,0x01,0x71,0x6E,0x98,0x16,0x4A, + 0x00,0x7B,0x92,0x7F,0x90,0x42,0x01,0xD3,0x6E,0x9A,0xD1,0x72,0x6E,0x99,0x40,0x1C, + 0x08,0x73,0x07,0x98,0x00,0x28,0x0E,0xD0,0x0C,0x48,0x00,0x79,0x00,0x28,0x0A,0xD0, + 0x0E,0x49,0x70,0x98,0x49,0x89,0xC0,0x68,0x0A,0x31,0x88,0x42,0x06,0xDA,0x70,0x99, + 0x40,0x1C,0xC8,0x60,0x02,0xE0,0x70,0x98,0x00,0x21,0xC1,0x60,0x03,0x48,0x01,0x79, + 0x41,0x71,0x73,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0xCD,0xCC,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x93,0x00,0x00,0x80,0x95,0x00,0x00, + 0x78,0x47,0xC0,0x46,0x41,0x11,0xA0,0xE1,0x01,0x10,0x51,0xE2,0x1E,0xFF,0x2F,0x31, + 0x00,0x20,0xA0,0xE3,0x01,0x10,0x51,0xE2,0x04,0x20,0x80,0xE4,0xFC,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0x01,0x30,0xD1,0xE4,0x01,0x20,0x52,0xE2,0x01,0x30,0xC0,0xE4,0xFB,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0xB2,0x30,0xD1,0xE0,0x01,0x20,0x52,0xE2,0xB2,0x30,0xC0,0xE0, + 0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x42,0x21,0xA0,0xE1, + 0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0x04,0x30,0x91,0xE4,0x01,0x20,0x52,0xE2, + 0x04,0x30,0x80,0xE4,0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46, + 0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0xFF,0x10,0x01,0xE2,0x01,0x20,0x52,0xE2, + 0x01,0x10,0xC0,0xE4,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46, + 0x42,0x21,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0x01,0x20,0x52,0xE2, + 0x04,0x10,0x80,0xE4,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x10,0xB5,0x0F,0x48, + 0x0F,0x49,0x00,0x89,0x49,0x88,0x00,0x24,0x40,0x18,0x0E,0x49,0x09,0x78,0x00,0x29, + 0x02,0xD0,0x0D,0x49,0x49,0x89,0x02,0xE0,0x0C,0x49,0x09,0x68,0x49,0x88,0x08,0x18, + 0x0B,0x49,0xC9,0x6B,0x49,0x04,0x49,0x0C,0x81,0x42,0x00,0xD3,0x01,0x24,0xFE,0xF7, + 0x1B,0xFC,0x20,0x00,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x01,0x00,0x20, + 0x00,0x07,0x00,0x20,0x20,0x07,0x00,0x20,0xA0,0x95,0x00,0x00,0xCC,0x07,0x00,0x20, + 0xC0,0x90,0x00,0x40,0xF7,0xB5,0x24,0x4E,0x82,0xB0,0xB0,0x7F,0xF1,0x7F,0x00,0x02, + 0x08,0x43,0x01,0xF0,0xFD,0xFC,0x30,0x00,0x20,0x38,0x00,0x7D,0xC0,0x07,0x0A,0xD0, + 0x1E,0x48,0x01,0x78,0x1E,0x48,0x00,0x7F,0x00,0x29,0x02,0xD0,0x01,0xF0,0xA0,0xFC, + 0x01,0xE0,0x01,0xF0,0xC5,0xFC,0x18,0x49,0x01,0x25,0x20,0x39,0x08,0x00,0xC0,0x30, + 0x01,0x90,0x05,0x20,0xC0,0x01,0x17,0x4F,0x08,0x18,0x00,0x90,0x00,0x20,0xF8,0x62, + 0x01,0x98,0x80,0x68,0x38,0x62,0x00,0x98,0x00,0x6B,0x78,0x62,0x03,0x24,0xE0,0x07, + 0xC0,0x0F,0xFB,0xF7,0x03,0xFE,0x64,0x1E,0xF9,0xD5,0x01,0x20,0xF8,0x62,0x30,0x7F, + 0x01,0x00,0xFB,0xF7,0x71,0xFE,0x01,0x24,0x02,0xA8,0x07,0xC8,0xFE,0xF7,0x6A,0xFB, + 0x00,0x28,0x01,0xD1,0x00,0x24,0x25,0x00,0x64,0x1E,0xF5,0xD5,0x6D,0x1E,0xDD,0xD5, + 0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x20,0x93,0x00,0x00,0x18,0x07,0x00,0x20, + 0x60,0x06,0x00,0x20,0x80,0x90,0x00,0x40,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9, + 0x00,0x00,0xA0,0xE3,0x73,0xDF,0x4D,0xE2,0xB8,0x01,0x8D,0xE5,0x2C,0x00,0x8D,0xE5, + 0x28,0x00,0x8D,0xE5,0x24,0x00,0x8D,0xE5,0x1C,0x00,0x8D,0xE5,0x18,0x00,0x8D,0xE5, + 0x14,0x00,0x8D,0xE5,0x00,0x50,0xA0,0xE1,0x00,0x70,0xA0,0xE1,0x00,0x80,0xA0,0xE1, + 0x00,0x90,0xA0,0xE1,0x00,0xA0,0xA0,0xE1,0x00,0x10,0xA0,0xE1,0x20,0x00,0x8D,0xE5, + 0x10,0x00,0x8D,0xE5,0x08,0x00,0x8D,0xE5,0x04,0x00,0x8D,0xE5,0x00,0x00,0x8D,0xE5, + 0x7C,0x06,0x9F,0xE5,0x7C,0x46,0x9F,0xE5,0xC8,0x01,0x8D,0xE5,0xB0,0x1C,0xC0,0xE1, + 0xC8,0x01,0x9D,0xE5,0x30,0x20,0xA0,0xE3,0xB2,0x1C,0xC0,0xE1,0xC8,0x01,0x9D,0xE5, + 0xB4,0x1C,0xC0,0xE1,0x00,0x10,0xA0,0xE3,0x88,0x00,0x84,0xE2,0x8F,0xFF,0xFF,0xEB, + 0x30,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xB8,0x00,0x84,0xE2,0x8B,0xFF,0xFF,0xEB, + 0x00,0x60,0xA0,0xE3,0x60,0x10,0xA0,0xE3,0x15,0x0E,0x8D,0xE2,0xB8,0x6E,0xC4,0xE1, + 0x63,0xFF,0xFF,0xEB,0x60,0x10,0xA0,0xE3,0xF0,0x00,0x8D,0xE2,0x60,0xFF,0xFF,0xEB, + 0x60,0x10,0xA0,0xE3,0x90,0x00,0x8D,0xE2,0x5D,0xFF,0xFF,0xEB,0x60,0x10,0xA0,0xE3, + 0x30,0x00,0x8D,0xE2,0x5A,0xFF,0xFF,0xEB,0x0C,0x06,0x9F,0xE5,0x0C,0x16,0x9F,0xE5, + 0x00,0x00,0xD0,0xE5,0xC4,0x11,0x8D,0xE5,0x00,0x00,0x50,0xE3,0x03,0x00,0x00,0x0A, + 0xF8,0x0A,0xD1,0xE1,0xB4,0x01,0x8D,0xE5,0xB6,0x0A,0xD1,0xE1,0x04,0x00,0x00,0xEA, + 0xEC,0x05,0x9F,0xE5,0x00,0x00,0x90,0xE5,0xF6,0x12,0xD0,0xE1,0xB4,0x11,0x8D,0xE5, + 0xB4,0x02,0xD0,0xE1,0x01,0x18,0xE0,0xE3,0xB0,0x01,0x8D,0xE5,0xC4,0x05,0x9F,0xE5, + 0xB6,0x00,0xD0,0xE1,0x40,0x00,0x10,0xE3,0xC4,0x01,0x9D,0xE5,0xB0,0xB8,0xD0,0x01, + 0xB0,0x08,0xD0,0x11,0x80,0xB0,0x01,0x10,0x8B,0x00,0x01,0xE0,0x0C,0x00,0x8D,0xE5, + 0x00,0x00,0xA0,0xE3,0xAC,0x15,0x9F,0xE5,0x00,0x30,0xA0,0xE1,0x00,0x20,0xA0,0xE1, + 0x00,0x00,0xC1,0xE5,0x00,0x10,0xA0,0xE3,0x9C,0x05,0x9F,0xE5,0x9C,0xC5,0x9F,0xE5, + 0x83,0x00,0x80,0xE0,0xC0,0x01,0x8D,0xE5,0xB0,0x00,0xD0,0xE1,0x83,0xC0,0x8C,0xE0, + 0xB0,0xC0,0xDC,0xE1,0x00,0x0A,0xA0,0xE1,0x20,0x0A,0xA0,0xE1,0x0F,0xCA,0xCC,0xE3, + 0x0C,0x40,0x40,0xE0,0x06,0x00,0x54,0xE1,0x04,0x60,0xA0,0xC1,0x2C,0x10,0x8D,0xC5, + 0x28,0x20,0x8D,0xC5,0xC8,0x00,0x54,0xE3,0x00,0x00,0x4C,0xE0,0x01,0xA0,0x8A,0xC2, + 0x96,0x00,0x50,0xE3,0x04,0xC0,0x9D,0xC5,0x01,0x30,0x83,0xE2,0x01,0xC0,0x8C,0xC2, + 0x04,0xC0,0x8D,0xC5,0x19,0x0E,0x54,0xE3,0x00,0xC0,0x9D,0xC5,0x01,0xC0,0x8C,0xC2, + 0x00,0xC0,0x8D,0xC5,0xF0,0xC0,0x8D,0xE2,0x01,0xE1,0x9C,0xE7,0x00,0x00,0x54,0xE3, + 0x00,0x40,0xA0,0xB3,0x04,0xE0,0x8E,0xE0,0x01,0xE1,0x8C,0xE7,0x15,0xCE,0x8D,0xE2, + 0x02,0xE1,0x9C,0xE7,0x00,0x00,0x50,0xE3,0x04,0xE0,0x8E,0xE0,0x02,0xE1,0x8C,0xE7, + 0x30,0xC0,0x8D,0xE2,0x01,0xE1,0x9C,0xE7,0x00,0x00,0xA0,0xB3,0x00,0xE0,0x8E,0xE0, + 0x01,0xE1,0x8C,0xE7,0x90,0xC0,0x8D,0xE2,0x02,0xE1,0x9C,0xE7,0x0B,0x00,0x50,0xE1, + 0x00,0xE0,0x8E,0xE0,0x02,0xE1,0x8C,0xE7,0x01,0xC0,0x85,0xC2,0x01,0x58,0xCC,0xC3, + 0x0B,0x00,0x54,0xE1,0x01,0xC0,0x87,0xC2,0x01,0x78,0xCC,0xC3,0x0C,0xC0,0x9D,0xE5, + 0x01,0x10,0x81,0xE2,0x0C,0x00,0x50,0xE1,0x01,0xC0,0x88,0xC2,0x01,0x88,0xCC,0xC3, + 0x0C,0xC0,0x9D,0xE5,0x0C,0x00,0x54,0xE1,0x01,0xC0,0x89,0xC2,0x01,0x98,0xCC,0xC3, + 0x08,0xC0,0x9D,0xE5,0x0E,0x00,0x51,0xE3,0x0C,0x00,0x80,0xE0,0x08,0x00,0x8D,0xE5, + 0xC0,0x01,0x9D,0xE5,0xB0,0x40,0xC0,0xE1,0xB4,0x01,0x9D,0xE5,0xB8,0xC1,0x9D,0xE5, + 0x04,0x00,0x80,0xE0,0x0C,0x00,0x80,0xE0,0xB8,0x01,0x8D,0xE5,0xB5,0xFF,0xFF,0x3A, + 0x01,0x20,0x82,0xE2,0x15,0x00,0x52,0xE3,0xB1,0xFF,0xFF,0x3A,0x70,0xC4,0x9F,0xE5, + 0x64,0x44,0x9F,0xE5,0x01,0xEA,0xA0,0xE3,0x0E,0x00,0x43,0xE2,0x00,0x10,0xA0,0xE3, + 0x01,0xE0,0x4E,0xE2,0x80,0x20,0x84,0xE0,0xF0,0x30,0xD2,0xE1,0x01,0x10,0x81,0xE2, + 0x01,0x00,0x80,0xE2,0x03,0x31,0x83,0xE0,0x03,0x32,0xA0,0xE1,0x9C,0xB3,0xC3,0xE0, + 0xC3,0xB2,0xA0,0xE1,0xC3,0x3F,0x4B,0xE0,0x01,0x0A,0x53,0xE3,0x0E,0x30,0xA0,0xA1, + 0x0E,0x00,0x51,0xE3,0xB0,0x30,0xC2,0xE1,0xF1,0xFF,0xFF,0x3A,0xC8,0x01,0x9D,0xE5, + 0xB0,0xAC,0xC0,0xE1,0x04,0x00,0x9D,0xE5,0xC8,0x11,0x9D,0xE5,0xB2,0x0C,0xC1,0xE1, + 0xC8,0x01,0x9D,0xE5,0x00,0x10,0x9D,0xE5,0xB4,0x1C,0xC0,0xE1,0x1E,0xF9,0xFF,0xEB, + 0xEC,0x03,0x9F,0xE5,0xDC,0xC3,0x9F,0xE5,0x00,0x40,0x90,0xE5,0xB4,0x00,0xD4,0xE1, + 0xBE,0x00,0xCC,0xE1,0xB0,0x00,0xD4,0xE1,0x01,0x00,0x10,0xE3,0x08,0x00,0x00,0x0A, + 0xB8,0x01,0x9D,0xE5,0xB0,0x11,0x9D,0xE5,0x90,0x01,0x01,0xE0,0xD4,0x03,0x9F,0xE5, + 0x90,0x21,0x81,0xE0,0x21,0x06,0xA0,0xE1,0xB4,0x10,0xD4,0xE1,0x00,0x00,0x51,0xE1, + 0xBE,0x00,0xCC,0x81,0xC0,0xA3,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0x90,0xE0,0x8D,0xE2, + 0x08,0x20,0xD4,0xE5,0x15,0x1E,0x8D,0xE2,0x00,0x11,0x91,0xE7,0x92,0x01,0x01,0xE0, + 0x9A,0x31,0x82,0xE0,0xA2,0x34,0xA0,0xE1,0xB0,0x21,0xD4,0xE1,0x02,0x00,0x53,0xE1, + 0x9A,0x21,0x81,0x90,0x09,0x30,0xD4,0xE5,0xA1,0x24,0xA0,0x91,0x00,0x11,0x9E,0xE7, + 0x91,0x03,0x03,0xE0,0x9A,0xB3,0x81,0xE0,0xA1,0xB4,0xA0,0xE1,0xB2,0x11,0xD4,0xE1, + 0x01,0x00,0x5B,0xE1,0x9A,0x33,0x81,0x90,0xA1,0x14,0xA0,0x91,0x01,0x10,0x42,0xE0, + 0xBC,0x20,0xD4,0xE1,0x92,0x01,0x01,0xE0,0x01,0x18,0xA0,0xE1,0x41,0x18,0xA0,0xE1, + 0x01,0x25,0x61,0xE0,0x02,0x21,0x82,0xE0,0x81,0x13,0x82,0xE0,0xC1,0x29,0xA0,0xE1, + 0xC1,0x1F,0x42,0xE0,0x80,0x20,0x8C,0xE0,0x01,0x00,0x80,0xE2,0x15,0x00,0x50,0xE3, + 0xB8,0x18,0xC2,0xE1,0xDD,0xFF,0xFF,0x3A,0x30,0x23,0x9F,0xE5,0x00,0xA0,0xA0,0xE3, + 0xF0,0xB0,0x8D,0xE2,0x0A,0x10,0xD4,0xE5,0x0A,0x01,0x9B,0xE7,0x90,0x01,0x01,0xE0, + 0x92,0x31,0x80,0xE0,0xA0,0x35,0xA0,0xE1,0xB4,0x01,0xD4,0xE1,0x00,0x00,0x53,0xE1, + 0x92,0x11,0x80,0x90,0x0B,0x30,0xD4,0xE5,0x30,0x10,0x8D,0xE2,0x0A,0x11,0x91,0xE7, + 0xA0,0x05,0xA0,0x91,0x91,0x03,0x03,0xE0,0x92,0xC3,0x81,0xE0,0xA1,0xC5,0xA0,0xE1, + 0xB6,0x11,0xD4,0xE1,0x01,0x00,0x5C,0xE1,0x92,0x33,0x81,0x90,0xA1,0x15,0xA0,0x91, + 0x01,0x00,0x40,0xE0,0xBE,0x10,0xD4,0xE1,0x91,0x00,0x00,0xE0,0x00,0x08,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x00,0x15,0x60,0xE0,0x01,0x11,0x81,0xE0,0x80,0x03,0x81,0xE0, + 0xC0,0x19,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x88,0x12,0x9F,0xE5,0x8A,0x10,0x81,0xE0, + 0x01,0xA0,0x8A,0xE2,0x0D,0x00,0x5A,0xE3,0xB8,0x0B,0xC1,0xE1,0xDC,0xFF,0xFF,0x3A, + 0x0A,0x00,0xD4,0xE5,0x0A,0x11,0x9B,0xE7,0x64,0x20,0xA0,0xE3,0x91,0x00,0x00,0xE0, + 0x8C,0x12,0x9F,0xE5,0x15,0x10,0xD1,0xE5,0x92,0x01,0x01,0xE0,0xBC,0x11,0x8D,0xE5, + 0xB7,0xEA,0xFF,0xEB,0xB4,0x11,0xD4,0xE1,0x01,0x00,0x50,0xE1,0x00,0xB0,0xA0,0x91, + 0x01,0xB0,0xA0,0x81,0x0B,0x10,0xD4,0xE5,0x30,0x00,0x8D,0xE2,0x0A,0x01,0x90,0xE7, + 0x91,0x00,0x00,0xE0,0xBC,0x11,0x9D,0xE5,0xAD,0xEA,0xFF,0xEB,0xB6,0x11,0xD4,0xE1, + 0x01,0x00,0x50,0xE1,0x01,0x00,0xA0,0x81,0xBE,0x10,0xD4,0xE1,0x00,0x00,0x4B,0xE0, + 0x10,0x42,0x9F,0xE5,0x91,0x00,0x00,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x00,0x15,0x60,0xE0,0x01,0x11,0x81,0xE0,0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1, + 0xC0,0x0F,0x41,0xE0,0x8A,0x10,0x84,0xE0,0x00,0x00,0x56,0xE3,0xB8,0x0B,0xC1,0xE1, + 0x0C,0x00,0x00,0xDA,0x2C,0x00,0x9D,0xE5,0x80,0x00,0x84,0xE0,0xB8,0x1B,0xD0,0xE1, + 0x28,0x00,0x9D,0xE5,0x80,0x00,0x84,0xE0,0xB8,0x08,0xD0,0xE1,0x01,0x00,0x80,0xE0, + 0x00,0x00,0x46,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xB0,0xE1,0xB8,0x0E,0xC4,0xE1, + 0x00,0x00,0xA0,0x43,0xB8,0x0E,0xC4,0x41,0x11,0x10,0xA0,0xE3,0x08,0x00,0x9D,0xE5, + 0x01,0x1C,0x81,0xE2,0x8A,0xEA,0xFF,0xEB,0xB6,0x10,0xD4,0xE1,0x40,0x00,0x11,0xE3, + 0x0E,0x00,0x00,0x0A,0x87,0x00,0x55,0xE1,0x01,0x20,0xA0,0x83,0x20,0x20,0x8D,0x85, + 0xFA,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83,0x1C,0x00,0x8D,0x85,0x23,0x00,0x58,0xE3, + 0x01,0x00,0xA0,0x83,0x18,0x00,0x8D,0x85,0x23,0x00,0x59,0xE3,0x01,0x00,0xA0,0x33, + 0x14,0x00,0x8D,0x35,0x14,0x00,0x55,0xE3,0x11,0x00,0x00,0x9A,0x0E,0x00,0x00,0xEA, + 0x07,0x00,0x55,0xE1,0x08,0x00,0x55,0x83,0x01,0x20,0xA0,0x83,0x20,0x20,0x8D,0x85, + 0x96,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83,0x1C,0x00,0x8D,0x85,0x14,0x00,0x58,0xE3, + 0x01,0x00,0xA0,0x83,0x18,0x00,0x8D,0x85,0x14,0x00,0x59,0xE3,0x01,0x00,0xA0,0x33, + 0x14,0x00,0x8D,0x35,0x0A,0x00,0x55,0xE3,0x01,0x00,0x00,0x9A,0x01,0x00,0xA0,0xE3, + 0x10,0x00,0x8D,0xE5,0xF1,0x00,0xD4,0xE5,0x00,0x00,0x50,0xE3,0xF2,0x00,0xD4,0xE5, + 0x03,0x00,0x00,0x0A,0xFA,0x00,0x50,0xE3,0x05,0x00,0x00,0x2A,0x01,0x00,0x80,0xE2, + 0x02,0x00,0x00,0xEA,0x00,0x00,0x50,0xE3,0x01,0x00,0x00,0x0A,0x01,0x00,0x40,0xE2, + 0xF2,0x00,0xC4,0xE5,0x1C,0x20,0x8D,0xE2,0x05,0x00,0x92,0xE8,0x14,0x30,0x9D,0xE5, + 0x00,0x20,0x82,0xE1,0x18,0x00,0x9D,0xE5,0x10,0x00,0x11,0xE3,0x03,0x00,0x00,0xE0, + 0x00,0x20,0x82,0xE1,0x10,0x00,0x9D,0x15,0x00,0x00,0x50,0x13,0x00,0x00,0xA0,0x03, + 0x01,0x00,0xA0,0x13,0x02,0x00,0x80,0xE1,0x00,0x00,0x50,0xE3,0xF2,0x00,0xD4,0x15, + 0x05,0x00,0x50,0x13,0x02,0x00,0x00,0x8A,0x24,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3, + 0x07,0x00,0x00,0x0A,0xEC,0x00,0x94,0xE5,0x01,0x00,0x80,0xE2,0xEC,0x00,0x84,0xE5, + 0xF0,0x00,0xD4,0xE5,0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0x12,0xF0,0x00,0xC4,0x15, + 0x0D,0x00,0x00,0xEA,0xF0,0x00,0xD4,0xE5,0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2, + 0xF0,0x00,0xC4,0xE5,0xC4,0x11,0x9D,0xE5,0xB4,0x18,0xD1,0xE1,0x01,0x00,0x50,0xE1, + 0x05,0x00,0x00,0x1A,0x00,0x00,0xA0,0xE3,0xF0,0x00,0xC4,0xE5,0xEC,0x00,0x94,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0xC2,0xEC,0x00,0x84,0xC5,0xF2,0x00,0xD4,0xE5, + 0x0A,0x00,0x50,0xE3,0x73,0xDF,0x8D,0x22,0xF0,0x4F,0xBD,0x28,0x1E,0xFF,0x2F,0x21, + 0xEC,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3,0x01,0x00,0xA0,0xC3,0xEC,0x00,0x84,0xC5, + 0x00,0x00,0xA0,0xE3,0xF0,0x00,0xC4,0xE5,0x73,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x40,0x01,0x00,0x20,0x40,0x00,0x00,0x20,0x20,0x07,0x00,0x20, + 0x00,0x95,0x00,0x00,0xCC,0x07,0x00,0x20,0x48,0x07,0x00,0x20,0x00,0x00,0x00,0x10, + 0xD2,0x02,0x00,0x10,0x1F,0x85,0xEB,0x51,0x2B,0x75,0xAA,0x23,0x91,0x73,0x9F,0x5D, + 0x2D,0x34,0xA9,0xF9,0x00,0x93,0x00,0x00,0x10,0xB5,0x16,0x4C,0xA0,0x7B,0x00,0x28, + 0x07,0xD1,0xFB,0xF7,0xED,0xFC,0x00,0x28,0x0F,0xD0,0xFC,0xF7,0x19,0xFF,0x01,0x20, + 0x0A,0xE0,0x01,0x28,0x0C,0xD1,0xFB,0xF7,0xFF,0xFC,0x00,0x28,0x05,0xD0,0xFC,0xF7, + 0x7F,0xFB,0x00,0xF0,0x79,0xFB,0x02,0x20,0xA0,0x73,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x02,0x28,0x07,0xD1,0xFB,0xF7,0xAC,0xFE,0x00,0x28,0xF6,0xD0,0xFC,0xF7,0x72,0xFD, + 0x03,0x20,0xF1,0xE7,0x03,0x28,0xF0,0xD1,0x03,0x48,0xC0,0x68,0xC0,0x07,0xEC,0xD0, + 0x04,0x20,0xE9,0xE7,0x14,0x07,0x00,0x20,0x00,0x90,0x00,0x40,0xF0,0xB5,0xD9,0x48, + 0x8B,0xB0,0x00,0x68,0x00,0x27,0x80,0x79,0x3D,0x00,0x02,0x90,0xD6,0x48,0x42,0x79, + 0x04,0x00,0xC0,0x34,0x00,0x92,0x82,0x79,0x80,0x30,0x01,0x7B,0xC0,0x38,0xA3,0x7A, + 0x00,0x7A,0xFE,0xF7,0xB6,0xF8,0x00,0x06,0x61,0x7A,0x00,0x0E,0xFE,0xF7,0xA6,0xF8, + 0x21,0x00,0x20,0x39,0x0A,0x7A,0x00,0x06,0xC0,0x39,0x09,0x79,0x00,0x0E,0xFE,0xF7, + 0xA1,0xF8,0x21,0x00,0x80,0x39,0x8A,0x7D,0x00,0x06,0xC0,0x39,0x89,0x7C,0x00,0x0E, + 0xFE,0xF7,0x98,0xF8,0x00,0x06,0xC5,0x4E,0x00,0x0E,0x01,0x90,0x30,0x7B,0xC4,0x4C, + 0x00,0x28,0x02,0xD0,0xC3,0x48,0x40,0x89,0x06,0xE0,0xBE,0x48,0x61,0x88,0x00,0x68, + 0x40,0x88,0x40,0x18,0x00,0x04,0x00,0x0C,0x03,0x90,0x00,0x20,0x70,0x61,0x0F,0x20, + 0xF0,0x70,0x30,0x7A,0x00,0x28,0x06,0xD0,0x30,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0, + 0x95,0xFB,0x01,0xF0,0x83,0xFB,0x01,0x20,0x30,0x62,0xFC,0xF7,0x93,0xF8,0x00,0xF0, + 0xB5,0xF9,0xFC,0xF7,0xFB,0xFA,0xB4,0x48,0x05,0x21,0x09,0x90,0xB3,0x48,0xC9,0x01, + 0x41,0x18,0x08,0x91,0xB2,0x49,0x80,0x30,0x06,0xAA,0x03,0xC2,0x01,0x98,0xC0,0x1C, + 0x05,0x90,0xB0,0x48,0x04,0x90,0x36,0xE1,0x30,0x7A,0x00,0x28,0x04,0xD0,0x30,0x6B, + 0x00,0x04,0x00,0x0C,0x01,0xF0,0x72,0xFB,0xFF,0x20,0x81,0x30,0xFA,0xF7,0xCC,0xFE, + 0x03,0x20,0x01,0xF0,0xDB,0xF9,0xFC,0xF7,0xA9,0xF8,0xFC,0xF7,0x8D,0xF8,0xA4,0x48, + 0xC0,0x38,0xC0,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5, + 0x05,0x20,0x00,0xE0,0x03,0x20,0x01,0xF0,0x91,0xF8,0xFC,0xF7,0x31,0xFB,0x9A,0x48, + 0x03,0x99,0x60,0x38,0x00,0x89,0x40,0x18,0x99,0x49,0xC0,0x39,0x89,0x89,0x88,0x42, + 0x12,0xD9,0x09,0x98,0x40,0x7A,0x00,0x28,0x0E,0xD1,0x95,0x48,0xFF,0x21,0xC0,0x38, + 0xC0,0x88,0x19,0x31,0x08,0x42,0x07,0xD1,0x02,0x98,0x6D,0x1C,0x85,0x42,0x04,0xDD, + 0xFC,0xF7,0x1E,0xFB,0x01,0x27,0x00,0xE0,0x00,0x25,0x00,0xF0,0x77,0xFE,0x01,0xF0, + 0x5B,0xF8,0x00,0xF0,0x07,0xFE,0x00,0xF0,0x5B,0xFE,0x08,0x99,0x07,0x98,0x49,0x88, + 0xC0,0x6A,0x88,0x42,0x0B,0xDB,0x09,0x98,0x40,0x7A,0x00,0x28,0x05,0xD1,0x84,0x48, + 0x46,0x21,0xC0,0x38,0xC0,0x88,0x08,0x42,0x01,0xD0,0x01,0x20,0x70,0x70,0x00,0x2F, + 0x02,0xD0,0xFC,0xF7,0x8B,0xFA,0x00,0x27,0xFC,0xF7,0x70,0xFA,0x00,0x20,0xFC,0xF7, + 0xDF,0xFA,0xFC,0xF7,0xA7,0xFA,0x01,0x20,0xB0,0x73,0xFD,0xF7,0x3F,0xFC,0x00,0x28, + 0x09,0xD0,0x00,0x20,0x70,0x61,0x04,0x98,0x80,0x7E,0xC8,0x28,0x12,0xD2,0x04,0x99, + 0x40,0x1C,0x88,0x76,0x0E,0xE0,0x70,0x69,0x40,0x1C,0x70,0x61,0x70,0x69,0x01,0x28, + 0x03,0xD1,0x70,0x49,0x00,0x20,0x20,0x31,0x08,0x75,0x70,0x69,0x05,0x28,0x01,0xD9, + 0xFB,0xF7,0xF8,0xFF,0x01,0x20,0x40,0x07,0x00,0x68,0x00,0x28,0x07,0xD1,0x20,0x69, + 0xFF,0x21,0xFF,0x31,0x88,0x42,0x04,0xDA,0x40,0x1C,0x20,0x61,0x01,0xE0,0x00,0x20, + 0xFB,0xE7,0x08,0x99,0xE0,0x68,0x49,0x89,0x88,0x42,0x0C,0xDD,0x20,0x69,0xFF,0x21, + 0xF5,0x31,0x88,0x42,0x07,0xDD,0x01,0x21,0x00,0x20,0x71,0x70,0xE0,0x60,0x20,0x61, + 0x07,0x98,0xC1,0x62,0x02,0xE0,0x70,0x78,0x00,0x28,0x02,0xD0,0xFB,0xF7,0xE4,0xFF, + 0x20,0xE0,0x59,0x48,0x41,0x68,0x09,0x07,0x0D,0xD5,0xC1,0x68,0x00,0x29,0x0A,0xD0, + 0xC1,0x68,0x07,0x29,0x04,0xD1,0xC0,0x68,0x01,0x21,0x49,0x07,0xC8,0x63,0x0E,0xE0, + 0x00,0xF0,0x2C,0xFA,0x0B,0xE0,0x01,0xF0,0x33,0xF8,0x70,0x7B,0x80,0x28,0x01,0xD1, + 0xFC,0xF7,0xF4,0xF8,0x00,0xF0,0x5C,0xF9,0x01,0xE0,0xFF,0xF7,0x9D,0xFE,0xB0,0x7B, + 0x03,0x28,0xFA,0xD1,0xFC,0xF7,0x16,0xFB,0x70,0x78,0x00,0x28,0x0B,0xD0,0x43,0x48, + 0x01,0x21,0xC0,0x7F,0x40,0x08,0x01,0xF0,0x57,0xF8,0x3C,0x49,0x00,0x20,0x48,0x70, + 0x07,0x99,0xC8,0x62,0x5D,0xE0,0x06,0x98,0x00,0x7B,0x00,0x28,0x04,0xD0,0x30,0x7B, + 0x00,0x28,0x01,0xD1,0x00,0xF0,0xC6,0xF8,0x01,0x20,0x40,0x07,0xC0,0x6B,0x0B,0x28, + 0x4F,0xD1,0x03,0x20,0x01,0xF0,0xD4,0xF8,0xF0,0x62,0x03,0x20,0x01,0xF0,0x02,0xF9, + 0xFF,0x20,0x81,0x30,0xFA,0xF7,0xD8,0xFD,0x34,0x48,0x00,0x78,0x00,0x28,0x3A,0xD1, + 0xFC,0xF7,0xC0,0xFB,0x00,0x28,0x36,0xD0,0x70,0x79,0x00,0x28,0x33,0xD1,0xB0,0x6A, + 0x00,0x28,0x0A,0x90,0x2F,0xD0,0x25,0x48,0xC0,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43, + 0x2B,0x49,0xFA,0xF7,0x85,0xFA,0x0A,0x99,0x0E,0x1A,0x32,0x2E,0x23,0xDD,0x00,0xF0, + 0x81,0xF8,0x30,0x00,0x01,0xF0,0x70,0xFA,0x01,0xF0,0x74,0xFA,0x1B,0x48,0x80,0x79, + 0x00,0x28,0x0D,0xD0,0x00,0xF0,0x54,0xF8,0x00,0xF0,0x57,0xF8,0x00,0xF0,0x5F,0xF8, + 0x20,0x4E,0x01,0x20,0x70,0x60,0xFA,0xF7,0xB7,0xFD,0x1F,0x48,0x70,0x60,0x03,0xE0, + 0x1E,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0,0x01,0xF0,0x63,0xFA,0x1B,0x49,0x00,0x20, + 0x08,0x70,0x00,0xF0,0x6B,0xF8,0x0D,0x4E,0x70,0x69,0x05,0x99,0x88,0x42,0x00,0xD2, + 0xC2,0xE6,0x08,0x48,0x0A,0x49,0x00,0x68,0xC0,0x39,0x40,0x30,0x40,0x7D,0x48,0x70, + 0x06,0x48,0x00,0x7A,0x00,0x28,0x01,0xD0,0x01,0xF0,0x28,0xFA,0x0B,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0xCC,0x07,0x00,0x20,0x60,0x94,0x00,0x00,0x14,0x07,0x00,0x20, + 0x00,0x07,0x00,0x20,0xA0,0x95,0x00,0x00,0x00,0x02,0x00,0x20,0x00,0x93,0x00,0x00, + 0x00,0x01,0x00,0x20,0xA0,0x03,0x00,0x20,0x00,0x40,0x00,0x30,0xD1,0x07,0x00,0x20, + 0x10,0x27,0x00,0x00,0x00,0x30,0x00,0x40,0xE1,0x04,0x00,0x00,0xD0,0x07,0x00,0x20, + 0x01,0x20,0x80,0x07,0x01,0x6B,0x81,0x22,0xD2,0x01,0x11,0x43,0x01,0x63,0x70,0x47, + 0x00,0x20,0x01,0x21,0x89,0x07,0x48,0x60,0x70,0x47,0x10,0x20,0x81,0x06,0x48,0x60, + 0x70,0x47,0x01,0x22,0x92,0x07,0x91,0x68,0x01,0x43,0x91,0x60,0x70,0x47,0x01,0x20, + 0x80,0x07,0x41,0x68,0x02,0x22,0x11,0x43,0x41,0x60,0x70,0x47,0x01,0x20,0x80,0x07, + 0x01,0x6B,0x03,0x4A,0x89,0x09,0x52,0x7B,0x89,0x01,0x11,0x43,0x01,0x63,0x70,0x47, + 0x00,0x93,0x00,0x00,0x10,0xB5,0xFC,0xF7,0x41,0xF9,0xFA,0xF7,0x2B,0xFA,0x03,0x20, + 0x40,0x03,0xFA,0xF7,0x31,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x03,0x20,0x10,0xB5, + 0x40,0x03,0xFA,0xF7,0x31,0xFD,0xFA,0xF7,0x27,0xFA,0xFC,0xF7,0x37,0xF9,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0xB5,0x00,0xF0,0xF7,0xFB,0x05,0x49,0x80,0x22,0xC9,0x88, + 0x11,0x40,0x81,0x42,0x01,0xD0,0xFA,0xF7,0x4D,0xFC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x40,0x00,0x00,0x20,0x78,0x47,0xC0,0x46,0xF0,0x0F,0x2D,0xE9,0xAC,0x60,0x9F,0xE5, + 0x00,0x00,0xA0,0xE3,0xBA,0x00,0xC6,0xE1,0xA4,0x00,0x9F,0xE5,0xA4,0xA0,0x9F,0xE5, + 0x14,0x80,0xD0,0xE5,0xA0,0xB0,0x9F,0xE5,0x26,0x20,0xA0,0xE3,0x01,0x2C,0x82,0xE2, + 0x14,0x10,0xA0,0xE3,0x01,0x90,0xA0,0xE3,0x0D,0x00,0xA0,0xE3,0x81,0x70,0x86,0xE0, + 0x01,0x20,0x42,0xE2,0x80,0x40,0x86,0xE0,0xF8,0x4B,0xD4,0xE1,0xF8,0x58,0xD7,0xE1, + 0x82,0x30,0x8B,0xE0,0xF0,0xC0,0xD3,0xE1,0x05,0x40,0x84,0xE0,0x02,0x00,0x18,0xE3, + 0x04,0xC0,0x4C,0xE0,0x04,0x00,0x00,0x0A,0x0D,0x00,0x50,0xE3,0x07,0x00,0x00,0x0A, + 0xC8,0x00,0x5C,0xE3,0x05,0x00,0x00,0xBA,0x03,0x00,0x00,0xEA,0x14,0x00,0x51,0xE3, + 0x02,0x00,0x00,0x0A,0xC8,0x00,0x5C,0xE3,0x00,0x00,0x00,0xBA,0x00,0x90,0xCA,0xE5, + 0x00,0x00,0x5C,0xE3,0x00,0xC0,0xA0,0xB3,0xB0,0xC0,0xC3,0xE1,0xBA,0x30,0xD6,0xE1, + 0x0C,0x00,0x53,0xE1,0xBA,0xC0,0xC6,0xB1,0x01,0x00,0x50,0xE2,0xE3,0xFF,0xFF,0x5A, + 0x01,0x10,0x51,0xE2,0xDF,0xFF,0xFF,0x5A,0xF0,0x0F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00,0x48,0x07,0x00,0x20,0x00,0x00,0x00,0x10, + 0xF8,0xB5,0xFD,0xF7,0xAD,0xF8,0x06,0x00,0x01,0x24,0x64,0x07,0x25,0x68,0x00,0x2D, + 0x71,0xD0,0x55,0x48,0x00,0x21,0x01,0x70,0x02,0x20,0x00,0xF0,0xC3,0xFF,0x53,0x48, + 0x0A,0x21,0x00,0x6B,0xFA,0xF7,0x5C,0xF9,0x01,0x00,0x02,0x20,0x00,0xF0,0xA6,0xFF, + 0x60,0x68,0x00,0x02,0x00,0x0A,0x60,0x60,0xA9,0x00,0x20,0x1D,0xFD,0xF7,0x30,0xFE, + 0x61,0x68,0x00,0x06,0x01,0x43,0x61,0x60,0x49,0x4F,0x78,0x7A,0x00,0x28,0x00,0xD0, + 0x6D,0x1C,0xF8,0x79,0x00,0x28,0x04,0xD1,0x46,0x49,0x48,0x69,0x0A,0x15,0x10,0x43, + 0x48,0x61,0x00,0xF0,0x93,0xF8,0x44,0x48,0x01,0x68,0x44,0x48,0xC1,0x61,0x02,0x24, + 0x20,0x00,0x00,0xF0,0x8B,0xFF,0x42,0x48,0xC1,0x68,0x49,0x08,0x49,0x00,0xC1,0x60, + 0x79,0x7A,0x02,0x04,0x1D,0xE0,0x3D,0x48,0x43,0x69,0x5B,0x06,0x0A,0xD4,0x00,0x29, + 0x01,0xD0,0xAC,0x42,0x04,0xD2,0xA3,0x00,0x9B,0x18,0x1B,0x68,0xC3,0x61,0x00,0xE0, + 0xC6,0x61,0x64,0x1C,0x30,0x48,0x00,0x78,0x00,0x28,0x0A,0xD0,0xFD,0xF7,0x80,0xF9, + 0x38,0x7A,0x00,0x28,0x07,0xD0,0x38,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0xF6,0xF8, + 0x01,0xE0,0xAC,0x42,0xDF,0xD9,0x02,0x20,0x00,0xF0,0x6C,0xFF,0x26,0x4C,0x20,0x78, + 0x00,0x28,0x38,0xD1,0xFD,0xF7,0x86,0xF8,0x00,0x28,0x34,0xD0,0x23,0x48,0x0A,0x21, + 0x00,0x6B,0xFA,0xF7,0xFD,0xF8,0x01,0x00,0x02,0x20,0x00,0xF0,0x47,0xFF,0x02,0x20, + 0x00,0xF0,0x4C,0xFF,0x0D,0xE0,0x33,0xE0,0x20,0x78,0x00,0x28,0x09,0xD0,0xFD,0xF7, + 0x57,0xF9,0x38,0x7A,0x00,0x28,0x04,0xD0,0x38,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0, + 0xCD,0xF8,0xFD,0xF7,0x67,0xF8,0x00,0x28,0xEE,0xD1,0x18,0x49,0x48,0x68,0x48,0x60, + 0x0B,0xE0,0x20,0x78,0x00,0x28,0x08,0xD0,0x38,0x7A,0x00,0x28,0x08,0xD0,0x38,0x6B, + 0x00,0x04,0x00,0x0C,0x01,0xF0,0xBA,0xF8,0x02,0xE0,0x48,0x68,0xC0,0x03,0xF0,0xD5, + 0x02,0x20,0x00,0xF0,0x2F,0xFF,0x00,0xF0,0x21,0xF8,0x0D,0x48,0xC1,0x68,0x01,0x22, + 0x11,0x43,0xC1,0x60,0xF8,0x79,0x00,0x28,0x02,0xD1,0x90,0x02,0xFA,0xF7,0xFC,0xFB, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD1,0x07,0x00,0x20,0x00,0x93,0x00,0x00, + 0x14,0x07,0x00,0x20,0x40,0x00,0x00,0x40,0x04,0x00,0x00,0x20,0x00,0x40,0x00,0x30, + 0x00,0x20,0x00,0x40,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x05,0x48,0x01,0x21, + 0x00,0xB5,0xC9,0x02,0x01,0x62,0x00,0x21,0x01,0x62,0xFD,0xF7,0x45,0xFB,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x10,0xB5,0x01,0x20,0xFC,0xF7,0x8A,0xF8, + 0x01,0x20,0xFC,0xF7,0x45,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x40,0x18,0x70,0x47, + 0x40,0x18,0x80,0x18,0x70,0x47,0x10,0xB4,0x40,0x18,0x01,0x9C,0x80,0x18,0xC0,0x18, + 0x00,0x19,0x10,0xBC,0x70,0x47,0x00,0x00,0xF8,0xB5,0x00,0x21,0x01,0x23,0x5B,0x07, + 0x18,0x68,0x13,0x4A,0x90,0x71,0x90,0x79,0x01,0x28,0x01,0xD1,0x01,0x21,0x0D,0xE0, + 0x01,0x28,0x00,0xD9,0x02,0x21,0x00,0x28,0x08,0xD1,0x0D,0x48,0x30,0x22,0x00,0x21, + 0x08,0x30,0xFF,0xF7,0x1B,0xF8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x0D,0x25, + 0x08,0x4C,0xED,0x01,0x08,0xE0,0x46,0x18,0xB6,0x00,0xF6,0x18,0x36,0x68,0x87,0x00, + 0x3F,0x19,0x7F,0x19,0x40,0x1C,0xBE,0x60,0x96,0x79,0x86,0x42,0xF3,0xD8,0xEA,0xE7, + 0xC0,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x70,0xB5,0x1E,0x4A,0x1E,0x48,0x1C,0x4C, + 0x85,0x18,0x21,0x7A,0xDB,0x22,0x92,0x00,0x86,0x18,0x00,0x29,0x0F,0xD0,0x21,0x00, + 0x82,0x22,0x0C,0x31,0x28,0x00,0xFE,0xF7,0xBD,0xFF,0x18,0x49,0x0D,0x22,0x30,0x00, + 0xFE,0xF7,0xB8,0xFF,0x20,0x7A,0x60,0x72,0x70,0xBC,0x08,0xBC,0x18,0x47,0x0D,0x22, + 0x00,0x21,0x30,0x00,0xFE,0xF7,0xE2,0xFF,0x82,0x22,0x00,0x21,0x28,0x00,0xFE,0xF7, + 0xDD,0xFF,0x0E,0x48,0x82,0x22,0x00,0x21,0x8F,0x38,0xFE,0xF7,0xD7,0xFF,0x0B,0x48, + 0x0D,0x22,0x00,0x21,0x0D,0x38,0xFE,0xF7,0xD1,0xFF,0x00,0x20,0x06,0x49,0x60,0x72, + 0xA0,0x72,0xCA,0x88,0x23,0x23,0x9A,0x43,0xCA,0x80,0x05,0x49,0x88,0x72,0xDB,0xE7, + 0x00,0x02,0x00,0x20,0x4E,0x02,0x00,0x00,0x40,0x00,0x00,0x20,0x9F,0x03,0x00,0x20, + 0x40,0x06,0x00,0x20,0xF3,0xB5,0x90,0x48,0x91,0xB0,0x40,0x7E,0x02,0x90,0x8F,0x48, + 0x00,0x78,0x00,0x28,0x8E,0x48,0x18,0xD0,0x0B,0x21,0x89,0x01,0x40,0x18,0x01,0x8A, + 0x8C,0x4A,0x1A,0x26,0x07,0x91,0x41,0x8A,0x1C,0x27,0x06,0x91,0x81,0x8A,0x05,0x91, + 0x1E,0x21,0x41,0x5E,0x04,0x91,0x00,0x21,0x51,0x5E,0x03,0x91,0x16,0x21,0x18,0x22, + 0x86,0x5F,0xC7,0x5F,0x41,0x5E,0x82,0x5E,0x16,0xE0,0x60,0x30,0xC1,0x8A,0x04,0x22, + 0x00,0x26,0x07,0x91,0x01,0x8B,0x02,0x27,0x06,0x91,0x41,0x8B,0x05,0x91,0x7A,0x49, + 0x20,0x39,0x8A,0x5E,0x04,0x92,0x06,0x22,0x8A,0x5E,0x03,0x92,0x8E,0x5F,0xCF,0x5F, + 0x1C,0x21,0x1E,0x22,0x41,0x5E,0x82,0x5E,0x11,0x98,0x75,0x4C,0x00,0x68,0x41,0x18, + 0x11,0x98,0x01,0x60,0x12,0x98,0x00,0x68,0x81,0x18,0x12,0x98,0x01,0x60,0x60,0x8C, + 0x00,0x21,0x40,0x1E,0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0,0x20,0x8C,0x0A,0x00, + 0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0,0xC1,0xFF,0x20,0x8C, + 0x64,0x21,0x0A,0x90,0x60,0x8C,0x09,0x90,0x0A,0x98,0x44,0x08,0x09,0x98,0x45,0x08, + 0x06,0x98,0x64,0x38,0x00,0x28,0x01,0xDC,0x06,0x98,0x08,0x1A,0x0F,0x90,0x05,0x98, + 0x64,0x38,0x00,0x28,0x01,0xDC,0x05,0x98,0x08,0x1A,0x0E,0x90,0x15,0x20,0x08,0x90, + 0x5D,0x48,0x0E,0x21,0x80,0x7B,0xC2,0x07,0x05,0xD0,0x80,0x07,0x01,0xD5,0x0D,0x21, + 0x01,0xE0,0x14,0x20,0x08,0x90,0x20,0x00,0xF9,0xF7,0x62,0xFE,0x0A,0x99,0x08,0x1A, + 0x40,0x1E,0x0C,0x90,0x08,0x99,0x28,0x00,0xF9,0xF7,0x5A,0xFE,0x09,0x99,0x08,0x1A, + 0x40,0x1E,0x31,0x1E,0x0B,0x90,0x00,0xDD,0xA1,0x1B,0x00,0x2F,0x0D,0x97,0x01,0xDD, + 0xE8,0x1B,0x0D,0x90,0x11,0x98,0x00,0x68,0xA0,0x42,0x10,0x90,0x01,0xDB,0x00,0x1B, + 0x01,0xE0,0x00,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x22,0x06,0x00, + 0x56,0x43,0x37,0x00,0x88,0x42,0x0D,0xDD,0x42,0x1A,0x0F,0x98,0x50,0x43,0x86,0x19, + 0x10,0x00,0x50,0x43,0x0F,0x9A,0x50,0x43,0x0C,0x9A,0x12,0x1B,0x51,0x1A,0xF9,0xF7, + 0x2F,0xFE,0xC7,0x19,0x04,0x98,0x00,0x28,0x01,0xD1,0x30,0x00,0x05,0xE0,0x01,0x28, + 0x01,0xD1,0x38,0x00,0x01,0xE0,0x70,0x00,0xC0,0x1B,0x64,0x21,0xF9,0xF7,0x20,0xFE, + 0x07,0x99,0xC9,0x07,0x0A,0xD0,0x10,0x99,0xA1,0x42,0x03,0xDB,0x21,0x18,0x11,0x98, + 0x01,0x60,0x03,0xE0,0x11,0x99,0x20,0x1A,0x40,0x1E,0x08,0x60,0x12,0x98,0x07,0x68, + 0xAF,0x42,0x01,0xDB,0x78,0x1B,0x01,0xE0,0x78,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC, + 0x40,0x42,0x64,0x21,0x04,0x00,0x4C,0x43,0x0D,0x99,0x26,0x00,0x88,0x42,0x0E,0xDD, + 0x41,0x1A,0x0E,0x98,0x0D,0x9A,0x48,0x43,0x04,0x19,0x08,0x00,0x48,0x43,0x0E,0x99, + 0x48,0x43,0x0B,0x99,0x49,0x1B,0x89,0x1A,0xF9,0xF7,0xF2,0xFD,0x86,0x19,0x03,0x98, + 0x00,0x28,0x01,0xD1,0x20,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x30,0x00,0x01,0xE0, + 0x60,0x00,0x80,0x1B,0x64,0x21,0xF9,0xF7,0xE3,0xFD,0x07,0x99,0x89,0x07,0x09,0xD5, + 0xAF,0x42,0x03,0xDB,0x29,0x18,0x12,0x98,0x01,0x60,0x03,0xE0,0x12,0x99,0x28,0x1A, + 0x40,0x1E,0x08,0x60,0x0E,0x48,0x02,0x99,0x42,0x8C,0x6B,0x46,0x51,0x1A,0x49,0x1E, + 0x0A,0x04,0x02,0x99,0x12,0x0C,0x06,0xC3,0x01,0x8C,0x02,0x98,0x02,0x9A,0x08,0x1A, + 0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0,0xF9,0xFE,0x13,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x93,0x00,0x00,0x20,0x07,0x00,0x20, + 0x00,0x93,0x00,0x00,0xE0,0x95,0x00,0x00,0x40,0x06,0x00,0x20,0xF0,0xB4,0x05,0x00, + 0x0B,0x4C,0x00,0x20,0xFF,0x26,0x91,0x36,0x82,0x00,0xA3,0x5A,0x12,0x19,0x52,0x88, + 0x5B,0x1B,0x1F,0x00,0x5F,0x43,0x52,0x1A,0x13,0x00,0x53,0x43,0xFA,0x18,0xB2,0x42, + 0x04,0xDB,0x40,0x1C,0x1A,0x28,0xEF,0xD3,0x00,0x20,0xC0,0x43,0xF0,0xBC,0x70,0x47, + 0x74,0x79,0x00,0x00,0xFE,0xB5,0x69,0x4D,0x67,0x48,0x00,0x26,0x29,0x00,0xFF,0x31, + 0x00,0x96,0x42,0x7E,0xC1,0x31,0x08,0x7A,0x33,0x00,0x00,0x2A,0x28,0xD1,0x00,0x28, + 0x26,0xD0,0x01,0x24,0x0A,0x20,0x60,0x43,0x47,0x19,0x38,0x00,0xFF,0x30,0xD3,0x30, + 0xFD,0xF7,0x98,0xF8,0x00,0x28,0x17,0xD0,0x5D,0x48,0x81,0x7B,0x00,0x98,0x40,0x1C, + 0x81,0x42,0x14,0xD3,0xA9,0x19,0x33,0x22,0x00,0x90,0xFF,0x20,0x52,0x01,0xCD,0x30, + 0x89,0x18,0xC0,0x5D,0x3A,0x00,0xFF,0x32,0x48,0x76,0x76,0x1C,0xCD,0x32,0x03,0x20, + 0x01,0x23,0x69,0x46,0x00,0xF0,0x06,0xFA,0x64,0x1C,0x0D,0x2C,0xDA,0xDB,0x94,0xE0, + 0x49,0x7A,0x00,0x29,0x01,0xD1,0x00,0x28,0x78,0xD0,0x07,0x20,0xC0,0x01,0x00,0x24, + 0x2E,0x18,0x33,0x27,0x7F,0x01,0x28,0x19,0xC0,0x19,0x40,0x7E,0x00,0x28,0x3F,0xD0, + 0x0D,0x21,0x28,0x18,0x89,0x01,0x41,0x18,0xC9,0x7F,0x00,0x29,0x02,0xD0,0x32,0x7D, + 0x00,0x2A,0x14,0xD0,0x1B,0x21,0x49,0x01,0x40,0x18,0x00,0x99,0x00,0x7B,0x49,0x1C, + 0x00,0x91,0x0A,0x21,0x48,0x43,0x3F,0x49,0x40,0x19,0x42,0x18,0x02,0x20,0x03,0x23, + 0x69,0x46,0x00,0xF0,0xD7,0xF9,0x20,0x00,0x14,0x2C,0x1E,0xD0,0x1A,0xE0,0x0A,0x20, + 0x41,0x43,0x48,0x19,0x02,0x90,0xFF,0x30,0xD3,0x30,0xFD,0xF7,0x43,0xF8,0x00,0x28, + 0x13,0xD0,0x00,0x98,0x02,0x9A,0x40,0x1C,0xFF,0x32,0x00,0x90,0xCD,0x32,0x03,0x20, + 0x02,0x23,0x69,0x46,0x00,0xF0,0xBE,0xF9,0x07,0xE0,0x29,0x18,0xC9,0x19,0x8A,0x7E, + 0x40,0x1C,0x4A,0x76,0x0C,0x28,0xF8,0xDB,0x64,0x1E,0x64,0x1C,0x0C,0x2C,0xBA,0xDB, + 0x01,0x24,0x26,0x49,0x0D,0x20,0x0A,0x19,0x80,0x01,0x10,0x18,0xC0,0x7F,0x00,0x22, + 0x01,0x92,0x00,0x28,0x32,0xD0,0x32,0x7D,0x00,0x2A,0x2F,0xD1,0x0A,0x22,0x50,0x43, + 0x45,0x18,0x28,0x00,0xFF,0x30,0xD3,0x30,0xFD,0xF7,0x14,0xF8,0x00,0x28,0x25,0xD0, + 0x1B,0x48,0x00,0x9B,0x80,0x7B,0x5B,0x1C,0x98,0x42,0x26,0xD3,0x17,0x4A,0x00,0x20, + 0x11,0x18,0xC9,0x19,0x49,0x7E,0xA1,0x42,0x0C,0xD0,0x00,0x29,0x07,0xD1,0xFF,0x21, + 0xCD,0x31,0x49,0x5D,0x10,0x18,0xC0,0x19,0x41,0x76,0x06,0xE0,0x12,0xE0,0x40,0x1C, + 0x0C,0x28,0xED,0xDB,0x01,0x98,0x00,0x28,0x08,0xD0,0x2A,0x00,0xFF,0x32,0x00,0x93, + 0xCD,0x32,0x03,0x20,0x01,0x23,0x69,0x46,0x00,0xF0,0x74,0xF9,0x64,0x1C,0x0D,0x2C, + 0xBF,0xDB,0x02,0xE0,0x01,0x20,0x40,0x07,0x43,0x60,0x00,0x98,0x00,0xF0,0x66,0xFC, + 0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0x00,0x93,0x00,0x00,0x4E,0x02,0x00,0x00,0xFC,0xB5,0x4E,0x48,0x36,0x25,0x45,0x5F, + 0x15,0x20,0x84,0x46,0x4B,0x48,0x4C,0x4F,0x80,0x30,0x82,0x7D,0x86,0x46,0x4B,0x48, + 0x00,0x26,0x81,0x7B,0x0E,0x24,0xC8,0x07,0x05,0xD0,0x88,0x07,0x01,0xD5,0x0D,0x24, + 0x01,0xE0,0x14,0x20,0x84,0x46,0x00,0x21,0x27,0xE0,0x00,0x20,0x22,0xE0,0x91,0x42, + 0x05,0xD2,0x90,0x42,0x1D,0xD3,0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x19,0xD3,0x63,0x46, + 0x9B,0x1A,0x5B,0x1E,0x8B,0x42,0x01,0xD2,0x90,0x42,0x12,0xD3,0x8B,0x42,0x03,0xD2, + 0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x0C,0xD3,0x0B,0x00,0x63,0x43,0x1B,0x18,0x9B,0x00, + 0xFB,0x58,0x1B,0x01,0x1B,0x0D,0xB3,0x42,0x00,0xDD,0x1E,0x00,0xAB,0x42,0x00,0xDA, + 0x1D,0x00,0x40,0x1C,0xA0,0x42,0xDA,0xD3,0x49,0x1C,0x61,0x45,0xD5,0xD3,0x1E,0x24, + 0x70,0x46,0x04,0x5F,0x2B,0x4B,0x2E,0x48,0xA0,0x33,0xC0,0x88,0x06,0x22,0x9A,0x5E, + 0x40,0x06,0x07,0xD5,0x70,0x46,0x80,0x8A,0x01,0x19,0x0C,0x04,0x10,0x1A,0x24,0x14, + 0x02,0x04,0x12,0x14,0x25,0x48,0x80,0x30,0x81,0x6B,0xA6,0x42,0x05,0xDD,0x74,0x46, + 0x64,0x8B,0xA1,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E, + 0x81,0x63,0x1E,0x49,0x80,0x31,0xC9,0x6B,0x95,0x42,0x04,0xDA,0x5A,0x88,0x91,0x42, + 0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E,0xC1,0x63,0x74,0x46, + 0xA4,0x8B,0x85,0x6B,0x01,0x22,0x11,0x00,0xA5,0x42,0x00,0xDC,0x00,0x21,0x9B,0x88, + 0xC0,0x6B,0x98,0x42,0x00,0xDC,0x00,0x22,0x00,0x20,0x6B,0x46,0x18,0x70,0x59,0x70, + 0x00,0x29,0x9A,0x70,0x02,0xD0,0x00,0x2A,0x00,0xD0,0x01,0x20,0x6B,0x46,0x11,0x43, + 0xD8,0x70,0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x6B,0x46,0x18,0x71,0x70,0x46, + 0x00,0x7B,0x69,0x46,0x08,0x5C,0x00,0x28,0x00,0xD0,0x80,0x20,0xFC,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0x93,0x00,0x00,0xD4,0x02,0x10,0x40,0x40,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0xF8,0xB5,0x22,0x48,0x22,0x4C,0xC0,0x88,0x01,0x23,0x22,0x4D, + 0x41,0x06,0x09,0x20,0x80,0x01,0x21,0x4F,0x21,0x4E,0x5B,0x05,0x20,0x18,0x00,0x29, + 0x0E,0xDA,0x81,0x69,0x69,0x61,0xC1,0x69,0xA9,0x61,0x41,0x6A,0x99,0x43,0xE9,0x61, + 0x81,0x6A,0x29,0x62,0x01,0x6A,0xE9,0x60,0x80,0x6B,0x28,0x61,0xE0,0x6A,0x0E,0xE0, + 0x18,0x49,0x4A,0x69,0x6A,0x61,0x8A,0x69,0xAA,0x61,0x0A,0x6A,0x9A,0x43,0xEA,0x61, + 0x4A,0x6A,0x2A,0x62,0xC9,0x69,0xE9,0x60,0x40,0x6B,0x28,0x61,0xA0,0x6A,0xFF,0x21, + 0x41,0x31,0x48,0x43,0x39,0x00,0xF9,0xF7,0x13,0xFD,0xB0,0x62,0x30,0x7B,0x00,0x28, + 0x03,0xD0,0x0D,0x48,0xE8,0x60,0x0D,0x48,0x28,0x61,0x60,0x6A,0xFF,0x21,0x41,0x31, + 0x48,0x43,0x39,0x00,0xF9,0xF7,0x04,0xFD,0x70,0x62,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00,0xC0,0x90,0x00,0x40,0x10,0x27,0x00,0x00, + 0x14,0x07,0x00,0x20,0x80,0x94,0x00,0x00,0x41,0xA0,0x00,0x00,0x10,0x00,0x10,0x00, + 0x07,0x48,0x41,0x7A,0x07,0x48,0x02,0x29,0x01,0xD9,0x00,0x6A,0x04,0xE0,0x02,0x29, + 0x01,0xD1,0xC0,0x69,0x00,0xE0,0x80,0x69,0x03,0x49,0x48,0x62,0x70,0x47,0x00,0x00, + 0x00,0x02,0x00,0x20,0xC0,0x94,0x00,0x00,0xC0,0x90,0x00,0x40,0xF0,0xB4,0x0B,0x48, + 0x0D,0x4B,0xC0,0x88,0x0A,0x49,0x0C,0x4F,0x42,0x06,0x0A,0x48,0x01,0x24,0xE4,0x03, + 0x32,0x25,0x5E,0x00,0x32,0x3F,0x01,0x61,0x43,0x61,0x84,0x61,0xC5,0x61,0x04,0x62, + 0x46,0x62,0x84,0x62,0xC7,0x62,0xF0,0xBC,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0x00,0x80,0x00,0x03,0x40,0xA1,0x00,0x40,0x64,0x40,0x00,0x00,0x11,0x49,0x10,0xB4, + 0x0A,0x7D,0x11,0x48,0x82,0x73,0x4A,0x7D,0xC2,0x73,0x82,0x7B,0x0F,0x48,0xD3,0x07, + 0x0A,0xD0,0x93,0x07,0x0E,0x4A,0x03,0xD5,0x0D,0x23,0x03,0x77,0x00,0x23,0x02,0xE0, + 0x14,0x23,0x03,0x77,0x01,0x23,0x13,0x71,0x8A,0x7D,0x42,0x77,0xCA,0x7D,0x82,0x77, + 0x0A,0x7E,0xC2,0x77,0x4A,0x7E,0x05,0x48,0x20,0x30,0x02,0x70,0x89,0x7E,0x41,0x70, + 0x10,0xBC,0x70,0x47,0x00,0x93,0x00,0x00,0x40,0x06,0x00,0x20,0x60,0x06,0x00,0x20, + 0x14,0x07,0x00,0x20,0xFF,0xB5,0x05,0x00,0x14,0x00,0x19,0x00,0x10,0x00,0x81,0xB0, + 0xFA,0xF7,0x84,0xFC,0x00,0x28,0x08,0xD0,0x02,0x98,0x02,0x99,0x00,0x68,0x40,0x1E, + 0x08,0x60,0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x29,0x48,0x80,0x7B,0xC0,0x07, + 0x22,0xD0,0xE0,0x79,0x05,0x28,0x1D,0xD0,0x09,0x28,0x1D,0xD1,0x6D,0x08,0x6D,0x00, + 0x01,0x20,0x09,0x27,0x22,0x78,0x23,0x4E,0xBF,0x01,0x0F,0xE0,0x0A,0x23,0x01,0x00, + 0x59,0x43,0x21,0x4B,0xC9,0x18,0xC9,0x19,0x8B,0x7B,0x9A,0x42,0x05,0xD1,0x0B,0x8A, + 0x63,0x80,0xCB,0x7B,0x63,0x70,0x49,0x8A,0xA1,0x80,0x40,0x1C,0x71,0x7A,0x81,0x42, + 0xEC,0xDA,0x01,0xE0,0x01,0x20,0x05,0x43,0x0F,0x21,0xA8,0x07,0x89,0x06,0x88,0x43, + 0x21,0x78,0x62,0x78,0x09,0x07,0x89,0x08,0x08,0x43,0x14,0x49,0x92,0x06,0x08,0x40, + 0x61,0x88,0x12,0x0C,0x89,0x05,0x89,0x09,0x08,0x43,0x3F,0x21,0x89,0x02,0x88,0x43, + 0x10,0x43,0x02,0x04,0x92,0x0E,0x0F,0x2A,0x03,0xD9,0x88,0x43,0x0F,0x21,0x89,0x02, + 0x40,0x18,0xA1,0x88,0x80,0x0A,0x80,0x02,0x89,0x05,0x89,0x0D,0x08,0x43,0x02,0x99, + 0x01,0x22,0x09,0x68,0x52,0x07,0x89,0x00,0x89,0x18,0x48,0x60,0xA9,0xE7,0x00,0x00, + 0x40,0x06,0x00,0x20,0x00,0x02,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0xFF,0x00,0xFC, + 0x0E,0x49,0x10,0xB4,0x48,0x7B,0x00,0x28,0x10,0xD0,0x00,0x09,0x00,0x01,0x00,0x23, + 0x01,0x22,0x40,0x28,0x0C,0xD0,0x80,0x28,0x08,0xD1,0x4A,0x72,0x8A,0x72,0x08,0x48, + 0xCA,0x72,0xCA,0x71,0x00,0x78,0x00,0x28,0x06,0xD1,0x0B,0x73,0x10,0xBC,0x70,0x47, + 0x8B,0x71,0xCA,0x71,0x0B,0x72,0xF9,0xE7,0x0A,0x73,0xF7,0xE7,0x14,0x07,0x00,0x20, + 0xA0,0x95,0x00,0x00,0xF8,0xB5,0x06,0x9F,0x07,0x9D,0x0C,0x00,0x1E,0x00,0x88,0x42, + 0x09,0xD3,0x21,0x00,0x10,0x00,0xF9,0xF7,0xC3,0xFA,0x38,0x80,0x21,0x00,0x30,0x00, + 0xF9,0xF7,0xBE,0xFA,0x28,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xF8,0xB5,0x08,0xAD, + 0x60,0xCD,0x04,0x00,0x06,0x98,0x91,0x42,0x04,0xDA,0x65,0x80,0xA6,0x80,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x99,0x42,0x02,0xDB,0x60,0x80,0x07,0x98,0x0F,0xE0,0x8F,0x1A, + 0x40,0x1B,0x78,0x43,0x99,0x1A,0x00,0x91,0xF9,0xF7,0xA2,0xFA,0x40,0x19,0x60,0x80, + 0x07,0x98,0x00,0x99,0x80,0x1B,0x78,0x43,0xF9,0xF7,0x9A,0xFA,0x80,0x19,0xA0,0x80, + 0xE5,0xE7,0x00,0x00,0xF0,0xB4,0x8C,0x79,0x14,0x4B,0x00,0x26,0x22,0x07,0x92,0x08, + 0x1A,0x40,0xCB,0x79,0x92,0x0A,0x92,0x02,0x5B,0x07,0x09,0xD5,0x10,0x4D,0xAB,0x89, + 0x00,0x2B,0x05,0xD0,0x9F,0x05,0xBF,0x0D,0x3A,0x43,0x64,0x00,0x64,0x19,0xE3,0x81, + 0x3F,0x23,0x9B,0x02,0x9A,0x43,0xCB,0x79,0x80,0x00,0x9B,0x06,0x1B,0x0C,0x1A,0x43, + 0x01,0x23,0x5B,0x07,0xC0,0x18,0x42,0x60,0xC8,0x79,0xC0,0x06,0x80,0x0F,0x03,0xD0, + 0x04,0x48,0x01,0x21,0xC1,0x72,0x06,0x73,0xF0,0xBC,0x70,0x47,0xFF,0xFF,0x00,0xFC, + 0x40,0x00,0x00,0x20,0x40,0x06,0x00,0x20,0x30,0xB4,0x0E,0x25,0x68,0x43,0x0B,0x4C, + 0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x00,0x0A,0x09,0x0E,0x82,0x18,0xC9,0x18, + 0x00,0x20,0x4B,0x1E,0xC0,0x43,0xFF,0x2B,0x06,0xD2,0x53,0x1E,0xFF,0x2B,0x03,0xD2, + 0x10,0x02,0x08,0x43,0x60,0x53,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40, + 0x10,0xB4,0x0E,0x24,0x60,0x43,0x03,0x4B,0x40,0x18,0x40,0x00,0x1A,0x52,0x10,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x0E,0x23,0x58,0x43,0x30,0xB4,0x0B,0x4C, + 0x40,0x18,0x43,0x00,0xE0,0x5A,0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18, + 0x00,0x20,0x4D,0x1E,0xC0,0x43,0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2, + 0x10,0x02,0x08,0x43,0xE0,0x52,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40, + 0x70,0xB4,0x12,0x4A,0x11,0x4D,0x52,0x7D,0x00,0x21,0x20,0x3D,0x14,0x02,0x14,0x43, + 0x0E,0x22,0x50,0x43,0x0C,0x4B,0x86,0x18,0x12,0xE0,0xAA,0x7D,0x8A,0x42,0x0D,0xD0, + 0xEA,0x7D,0x8A,0x42,0x0A,0xD0,0x2A,0x7E,0x8A,0x42,0x07,0xD0,0x6A,0x7E,0x8A,0x42, + 0x04,0xD0,0xAA,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00,0x9C,0x52,0x40,0x1C,0x49,0x1C, + 0x86,0x42,0xEA,0xD8,0x70,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0x20,0x93,0x00,0x00, + 0x70,0xB4,0x12,0x4A,0x11,0x4B,0x52,0x7D,0x00,0x21,0x20,0x3B,0x15,0x02,0x15,0x43, + 0xFF,0x26,0x0D,0x4C,0x27,0x36,0x12,0xE0,0x9A,0x7D,0x8A,0x42,0x0D,0xD0,0xDA,0x7D, + 0x8A,0x42,0x0A,0xD0,0x1A,0x7E,0x8A,0x42,0x07,0xD0,0x5A,0x7E,0x8A,0x42,0x04,0xD0, + 0x9A,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00,0xA5,0x52,0x0E,0x30,0x49,0x1C,0xB0,0x42, + 0xEA,0xD3,0x70,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x20,0x93,0x00,0x00, + 0x02,0x04,0x04,0x49,0x02,0x43,0x00,0x20,0x40,0x1C,0x04,0xC1,0xB5,0x28,0xFB,0xD3, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x05,0x48,0x07,0x49,0xC0,0x88,0x42,0x06, + 0x04,0x48,0x01,0xD5,0x40,0x68,0x00,0xE0,0x00,0x68,0x48,0x60,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x20,0xC0,0x93,0x00,0x00,0x00,0x90,0x00,0x40,0xF8,0xB5,0x03,0x00, + 0x1E,0x49,0x05,0x20,0xC0,0x01,0x0A,0x18,0x0B,0x20,0x80,0x01,0x0D,0x18,0xC0,0x31, + 0x08,0x6A,0x19,0x4C,0x00,0x90,0x4F,0x6A,0x0E,0x69,0x28,0x68,0x00,0xF0,0x16,0xFB, + 0x06,0x04,0x0A,0x12,0x15,0x1F,0x26,0x1C,0xC8,0x68,0x20,0x62,0x50,0x6B,0x60,0x62, + 0x02,0x20,0x04,0xE0,0xC8,0x69,0x20,0x62,0x68,0x68,0x60,0x62,0x04,0x20,0xE0,0x62, + 0x00,0x98,0x11,0xE0,0x26,0x62,0x90,0x6B,0x02,0xE0,0x48,0x69,0x20,0x62,0xD0,0x6B, + 0x60,0x62,0x04,0x20,0xE0,0x62,0x67,0x63,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x26,0x62, + 0x60,0x62,0x04,0x20,0xE0,0x62,0x88,0x6A,0x60,0x63,0xF5,0xE7,0x89,0x69,0x21,0x62, + 0x60,0x62,0x05,0x20,0xE0,0x62,0xEF,0xE7,0x80,0x90,0x00,0x40,0x00,0x93,0x00,0x00, + 0x01,0x21,0x49,0x07,0x48,0x68,0x00,0x23,0x00,0x04,0x00,0x0F,0x00,0x28,0x0B,0x4A, + 0x48,0x68,0x03,0xD0,0x00,0x04,0x00,0x0F,0x40,0x1C,0x0C,0xE0,0xC0,0x02,0xC0,0x0E, + 0x01,0xD0,0x01,0x20,0x07,0xE0,0xD0,0x78,0x00,0x28,0x02,0xD1,0x01,0x20,0x03,0x00, + 0x01,0xE0,0x0F,0x23,0x00,0x20,0xD3,0x70,0x08,0x60,0x70,0x47,0x14,0x07,0x00,0x20, + 0x0A,0x4A,0x10,0xB5,0xD1,0x88,0x0A,0x4B,0x40,0x24,0x00,0x28,0x03,0xD0,0x21,0x43, + 0x08,0x48,0xD1,0x80,0x03,0xE0,0x07,0x48,0xA1,0x43,0xC4,0x38,0xD1,0x80,0x18,0x60, + 0xFF,0xF7,0x28,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0xCC,0x07,0x00,0x20,0xB0,0x94,0x00,0x00,0xFE,0xB5,0x04,0x00,0x37,0x48,0x0E,0x00, + 0x07,0x6A,0x41,0x6A,0x02,0x91,0x41,0x6B,0x01,0x91,0xC0,0x6A,0x00,0x90,0x00,0x20, + 0xFF,0xF7,0x74,0xFF,0xFB,0xF7,0x1C,0xFA,0x25,0x00,0x46,0xE0,0x68,0x1E,0x84,0x42, + 0x01,0xD1,0xFB,0xF7,0x4B,0xFA,0xFB,0xF7,0xC5,0xF9,0xFB,0xF7,0x9B,0xFA,0x00,0x2E, + 0x2E,0xD1,0xA8,0x00,0x05,0x21,0xF9,0xF7,0x43,0xFA,0xA0,0x42,0x03,0xD8,0x01,0x22, + 0x11,0x00,0x04,0x20,0x21,0xE0,0x68,0x00,0x28,0x18,0x05,0x21,0xF9,0xF7,0x38,0xFA, + 0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x03,0x20,0x16,0xE0,0x68,0x00,0x05,0x21, + 0xF9,0xF7,0x2E,0xFA,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x02,0x20,0x0C,0xE0, + 0x05,0x21,0x28,0x00,0xF9,0xF7,0x24,0xFA,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00, + 0x10,0x00,0x02,0xE0,0x01,0x22,0x11,0x00,0x00,0x20,0xFA,0xF7,0x6F,0xFF,0x0C,0xE0, + 0x68,0x00,0x03,0x21,0xF9,0xF7,0x14,0xFA,0xA0,0x42,0xDB,0xD9,0x03,0x21,0x28,0x00, + 0xF9,0xF7,0x0E,0xFA,0xA0,0x42,0xE9,0xD8,0xDE,0xE7,0x64,0x1E,0xB6,0xD2,0x0C,0x48, + 0x44,0x88,0x03,0xE0,0xFB,0xF7,0x7E,0xF9,0xFB,0xF7,0x54,0xFA,0x64,0x1E,0xF9,0xD2, + 0xFB,0xF7,0xBE,0xF9,0x05,0x48,0x07,0x62,0x02,0x99,0x41,0x62,0x01,0x99,0x41,0x63, + 0x00,0x99,0xC1,0x62,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x80,0x90,0x00,0x40, + 0xE0,0x95,0x00,0x00,0x30,0xB4,0x0D,0x4D,0xEC,0x7B,0x00,0x2C,0x13,0xD0,0x02,0x68, + 0x0B,0x68,0xA4,0x07,0x03,0xD5,0x2C,0x8C,0xA2,0x1A,0x52,0x1E,0x02,0x60,0xEC,0x7B, + 0x64,0x07,0x03,0xD5,0x6C,0x8C,0xE3,0x1A,0x5B,0x1E,0x0B,0x60,0xEC,0x7B,0xE4,0x07, + 0x01,0xD0,0x03,0x60,0x0A,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x93,0x00,0x00, + 0x02,0x49,0x00,0x03,0x40,0x18,0xC0,0x68,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47,0xD1,0x07,0x00,0x20,0x30,0xB4,0x05,0x03, + 0x05,0x48,0x02,0x9C,0x28,0x18,0x02,0x60,0x41,0x60,0x00,0x2B,0x00,0xD0,0x03,0x61, + 0x84,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x02,0x4A,0x00,0x03, + 0x80,0x18,0x01,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x03,0x04,0x48, + 0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x11,0x43,0x81,0x60,0x70,0x47,0x00,0x00, + 0x00,0x20,0x00,0x40,0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32, + 0x91,0x43,0x81,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x0F,0x49,0x89,0x7B, + 0x81,0x42,0x00,0xD2,0x08,0x00,0x01,0x22,0x52,0x07,0x01,0x28,0x0C,0xD1,0x91,0x68, + 0x8B,0x0F,0xDB,0x07,0x04,0xD0,0x89,0x00,0x89,0x08,0x83,0x07,0xC9,0x18,0x01,0xE0, + 0x89,0x00,0x89,0x08,0x51,0x60,0x07,0xE0,0x01,0x28,0x05,0xD9,0x01,0x21,0xC9,0x07, + 0x83,0x05,0x9B,0x0D,0x19,0x43,0xF5,0xE7,0x10,0x60,0x70,0x47,0x00,0x93,0x00,0x00, + 0xF8,0xB5,0x17,0x4B,0x00,0x24,0x98,0x79,0x00,0x28,0x25,0xD0,0x00,0x20,0x0D,0x26, + 0x14,0x4D,0xF6,0x01,0x12,0xE0,0x81,0x00,0x49,0x19,0x89,0x19,0x8A,0x68,0x97,0x0F, + 0xFF,0x07,0x0A,0xD0,0x92,0x00,0x01,0x27,0x92,0x08,0xFF,0x07,0xD2,0x19,0x64,0x1C, + 0x8A,0x60,0xA1,0x00,0xBF,0x08,0xC9,0x19,0x4A,0x60,0x40,0x1C,0x99,0x79,0x81,0x42, + 0xE9,0xDC,0x07,0x48,0x0D,0x22,0x00,0x21,0xC0,0x1F,0xFE,0xF7,0xF7,0xF8,0x20,0x00, + 0xFF,0xF7,0xB4,0xFF,0xFC,0xF7,0xB2,0xF9,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xC0,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB5,0x00,0x24,0x25,0x00,0x20,0x00, + 0x01,0x21,0x8D,0xB0,0x49,0x07,0x0C,0x94,0x4F,0x68,0x61,0x4E,0xB9,0x0F,0x89,0x07, + 0x7E,0xD5,0x30,0x22,0x00,0x21,0x68,0x46,0xFE,0xF7,0xD8,0xF8,0x07,0x21,0xB8,0x01, + 0x49,0x05,0x40,0x08,0x08,0x40,0x31,0x00,0x88,0x43,0x39,0x07,0x09,0x0C,0x08,0x43, + 0x0C,0x90,0x00,0x20,0x33,0xE0,0x01,0x22,0x81,0x00,0x52,0x07,0x89,0x18,0x89,0x68, + 0x8E,0x00,0x32,0x0F,0x2A,0xD0,0x32,0x0F,0x94,0x46,0x92,0x00,0x6B,0x46,0xD2,0x18, + 0x40,0x3A,0xD3,0x6B,0x36,0x0F,0x1B,0x01,0x1B,0x09,0x36,0x07,0x33,0x43,0x0F,0x27, + 0x3F,0x06,0x0E,0x04,0xB6,0x08,0xBB,0x43,0x3E,0x40,0x33,0x43,0x49,0x4E,0x33,0x40, + 0x8E,0x01,0xB6,0x0D,0x36,0x03,0x33,0x43,0x1B,0x0B,0x89,0x05,0x1B,0x03,0x89,0x0D, + 0x0B,0x43,0xD3,0x63,0x62,0x46,0x52,0x1E,0x01,0x23,0x93,0x40,0x9A,0x05,0x92,0x0D, + 0x71,0x46,0x11,0x43,0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x0C,0x91,0x40,0x1C,0x0C,0x99, + 0x8E,0x46,0x09,0x04,0x09,0x0F,0x81,0x42,0xC5,0xD8,0x0C,0x98,0x01,0x27,0x00,0x04, + 0x00,0x0F,0x7B,0x07,0x0F,0xE0,0x82,0x00,0xD2,0x18,0x92,0x68,0x3E,0x00,0x92,0x00, + 0x12,0x0F,0x52,0x1E,0x96,0x40,0xF2,0x06,0xD2,0x0A,0x64,0x1C,0x11,0x43,0x24,0x06, + 0x24,0x0E,0x40,0x1C,0x0C,0x91,0x0C,0x99,0x0A,0x04,0x0E,0x02,0x12,0x0F,0x76,0x0F, + 0x92,0x19,0x82,0x42,0xE7,0xD8,0x00,0x21,0x08,0x00,0x6E,0x46,0x82,0x00,0xB2,0x58, + 0x00,0x2A,0x03,0xD0,0x8F,0x00,0xFF,0x18,0xBA,0x60,0x49,0x1C,0x40,0x1C,0x0C,0x28, + 0xF4,0xD3,0x23,0x49,0x0C,0x98,0x88,0x43,0x29,0x07,0x09,0x0C,0x08,0x43,0x00,0xE0, + 0x07,0xE0,0x07,0x21,0x49,0x05,0x88,0x43,0x61,0x07,0x09,0x0A,0x08,0x43,0x0C,0x90, + 0x2B,0xE0,0xB9,0x0F,0xC9,0x07,0x25,0xD0,0x01,0x23,0x5B,0x07,0x58,0x68,0x19,0x4C, + 0x82,0x00,0x11,0x0F,0x09,0x07,0x21,0x40,0x84,0x01,0xA4,0x0D,0x24,0x03,0x21,0x43, + 0x84,0x05,0x09,0x0B,0x09,0x03,0xA4,0x0D,0x21,0x43,0x0F,0x24,0x24,0x06,0x00,0x04, + 0x80,0x08,0xA1,0x43,0x20,0x40,0x01,0x43,0x08,0x0F,0x09,0xD0,0x12,0x0F,0x52,0x1E, + 0x01,0x20,0x90,0x40,0x80,0x05,0x80,0x0D,0xB0,0x43,0x5A,0x14,0x80,0x18,0x0C,0x90, + 0x99,0x60,0x02,0xE0,0x01,0x21,0x49,0x07,0x88,0x60,0x71,0x20,0x08,0xAB,0xD8,0x74, + 0x0C,0x99,0x40,0x07,0x41,0x60,0x0D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0xF0,0x00,0x00,0xFF,0x0F,0x00,0xFF,0x08,0x48,0x10,0xB5,0x04,0x04,0x24,0x0C, + 0x07,0x49,0x00,0x22,0x20,0x00,0xF9,0xF7,0x81,0xF8,0x05,0x4A,0x05,0x49,0x20,0x00, + 0x00,0x23,0xF9,0xF7,0x83,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00, + 0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x10,0x70,0xB5,0x05,0x00,0x08,0x48,0x00,0x22, + 0x04,0x04,0x24,0x0C,0x40,0x21,0x20,0x00,0xF9,0xF7,0x68,0xF8,0x40,0x22,0x29,0x00, + 0x20,0x00,0x00,0x23,0xF9,0xF7,0x6A,0xF8,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xC0,0x92,0x00,0x00,0x02,0x4B,0x58,0x60,0x99,0x60,0x1A,0x60,0x70,0x47,0x00,0x00, + 0x00,0x30,0x00,0x40,0x01,0x04,0x00,0xB5,0x03,0x48,0x02,0x22,0x09,0x0C,0xFF,0xF7, + 0xF1,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00,0xE1,0x04,0x00,0x00,0x02,0x48,0x01,0x68, + 0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x48,0x01,0x68, + 0x49,0x08,0x49,0x00,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x49,0x02,0x22, + 0x0A,0x61,0x88,0x60,0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40,0x01,0x49,0x01,0x20, + 0x08,0x70,0x70,0x47,0xD0,0x07,0x00,0x20,0x00,0x04,0x00,0x0C,0x01,0x21,0x89,0x07, + 0x08,0x61,0x70,0x47,0x01,0x20,0x80,0x07,0x81,0x68,0x82,0x15,0x11,0x43,0x81,0x60, + 0x70,0x47,0x01,0x21,0x89,0x07,0x88,0x68,0x8A,0x15,0x90,0x43,0x88,0x60,0x70,0x47, + 0x70,0xB4,0x03,0xAC,0x30,0xCC,0x06,0x68,0x96,0x42,0x01,0xDB,0x32,0x00,0x00,0xE0, + 0x02,0x60,0x9A,0x42,0x00,0xDD,0x03,0x60,0x08,0x68,0xA0,0x42,0x00,0xDA,0x0C,0x60, + 0x08,0x68,0xA8,0x42,0x00,0xDD,0x0D,0x60,0x70,0xBC,0x70,0x47,0x00,0x47,0x00,0x00, + 0x78,0x47,0xC0,0x46,0x14,0x30,0x9F,0xE5,0xC0,0x2F,0xA0,0xE1,0x93,0xC0,0xC1,0xE0, + 0x63,0x30,0xE0,0xE3,0xC1,0x12,0x62,0xE0,0x93,0x01,0x20,0xE0,0x1E,0xFF,0x2F,0xE1, + 0x1F,0x85,0xEB,0x51,0x78,0x47,0xC0,0x46,0x18,0x30,0x9F,0xE5,0xC0,0x2F,0xA0,0xE1, + 0x93,0xC0,0xC1,0xE0,0x0F,0x30,0xE0,0xE3,0x27,0x3C,0x43,0xE2,0x41,0x16,0x62,0xE0, + 0x93,0x01,0x20,0xE0,0x1E,0xFF,0x2F,0xE1,0xAD,0x8B,0xDB,0x68,0x78,0x47,0xC0,0x46, + 0x01,0xC0,0x5E,0xE5,0x0C,0x00,0x53,0xE1,0x03,0x30,0xDE,0x37,0x0C,0x30,0xDE,0x27, + 0x83,0xC0,0x8E,0xE0,0x1C,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x10,0x30,0x9F,0xE5, + 0x93,0x10,0x82,0xE0,0x63,0x30,0xE0,0xE3,0xA2,0x12,0xA0,0xE1,0x93,0x01,0x20,0xE0, + 0x1E,0xFF,0x2F,0xE1,0x1F,0x85,0xEB,0x51,0x10,0xB5,0xF8,0xF7,0xC7,0xFF,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x13,0x00,0x13,0x00,0xA0,0x00,0x13,0x00,0x2D,0x01,0x13,0x00, + 0x2B,0x01,0x41,0x00,0x2B,0x01,0x70,0x00,0x5A,0x00,0x82,0x00,0xA0,0x00,0x82,0x00, + 0x2B,0x01,0xA0,0x00,0x2B,0x01,0xD0,0x00,0xA0,0x00,0xF0,0x00,0x2D,0x01,0x00,0x01, + 0x13,0x00,0x20,0x01,0x13,0x00,0x50,0x01,0xA0,0x00,0x5E,0x01,0xE6,0x00,0x5E,0x01, + 0x13,0x00,0x80,0x01,0x13,0x00,0xCA,0x01,0x30,0x00,0xA7,0x01,0x50,0x00,0xCA,0x01, + 0x70,0x00,0xA7,0x01,0x90,0x00,0xCA,0x01,0xB0,0x00,0xA7,0x01,0xD0,0x00,0xCA,0x01, + 0xF0,0x00,0xA7,0x01,0x10,0x01,0xCA,0x01,0x2D,0x01,0xA7,0x01,0x89,0x08,0x49,0x1E, + 0x49,0x04,0x01,0x22,0x49,0x08,0xD2,0x07,0x89,0x18,0x00,0x04,0x00,0x0C,0x01,0x43, + 0x03,0x48,0x41,0x61,0x41,0x69,0x00,0x29,0xFC,0xDB,0x80,0x6B,0x70,0x47,0x00,0x00, + 0x00,0x70,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0B,0x38,0x30,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,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,0xFF,0x00,0x00,0x00, + 0x00,0x00,0x04,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x01,0x08,0x05,0x00, + 0x00,0x00,0x00,0x00,0x03,0x02,0x13,0x14,0xFF,0xFF,0xFF,0x00,0x00,0xC8,0x05,0x1E, + 0xE0,0x01,0x20,0x03,0xE8,0x03,0x00,0x00,0xE8,0x03,0x00,0x00,0xE8,0x03,0x00,0x00, + 0xE0,0x93,0x04,0x00,0x01,0x5A,0x14,0x05,0x14,0x05,0x00,0x00,0x04,0xC8,0x65,0x65, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x6E,0x00,0x7A,0x00,0x01,0x00,0x04,0x00, + 0x78,0x00,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x15,0x00,0x02,0x32,0x00, + 0x2C,0x01,0x2C,0x01,0x00,0x00,0x00,0x00,0x50,0x00,0x5A,0x00,0x32,0x00,0xB8,0x0B, + 0x50,0x00,0x5A,0x00,0x32,0x00,0xE8,0x03,0x64,0x00,0x32,0x00,0x00,0x00,0x00,0x00, + 0x04,0x01,0x05,0x0F,0x01,0x01,0x04,0x00,0x01,0x05,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x00,0x0E,0x00,0x00,0x60,0x0F,0x00,0x00,0x60,0x0F,0x00,0x00,0x9D,0x39,0xFA,0x00, + 0x28,0x00,0x1D,0x00,0x64,0x32,0x64,0x32,0x1E,0x00,0x46,0x00,0x32,0x00,0x05,0x00, + 0x64,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x3C,0x00,0x5E,0x01,0x90,0x01,0x90,0x01, + 0x90,0x01,0x00,0x00,0x64,0x3C,0x00,0x00,0x64,0x3C,0x00,0x00,0x64,0x3C,0x00,0x00, + 0x0A,0x02,0x32,0x00,0xB8,0x0B,0xBC,0x02,0x0A,0x00,0x96,0x96,0x96,0x96,0x00,0xFF, + 0xFF,0xFF,0xFF,0x00,0xFF,0x0F,0x2C,0x01,0x3C,0x00,0x1E,0x00,0x28,0xFA,0x0C,0x78, + 0x00,0x05,0x04,0x0A,0x01,0x06,0x20,0x03,0x3C,0x00,0x0A,0x3C,0x00,0x05,0x1E,0x00, + 0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xDC,0x00,0x05,0x02,0x01,0x01,0x01,0x00,0x02,0x03,0x05,0x00,0x03,0x03,0x06,0x06, + 0x09,0x09,0x0C,0x0C,0x0F,0x55,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x41,0xC2,0x00,0x00, + 0x1F,0x1F,0xB8,0x00,0x00,0x3F,0x00,0x3F,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00, + 0x99,0x19,0x90,0x01,0x32,0x00,0x1D,0x00,0x64,0x32,0x64,0x32,0x23,0x00,0x41,0x00, + 0x46,0x00,0x05,0x00,0x64,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x50,0x00,0xF4,0x01, + 0xF4,0x01,0xF4,0x01,0x90,0x01,0x00,0x00,0x64,0x3C,0x00,0x00,0x64,0x3C,0x00,0x00, + 0x64,0x3C,0x00,0x00,0x08,0x02,0x32,0x00,0xDC,0x05,0xF4,0x01,0x0A,0x00,0x96,0x96, + 0x96,0x96,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x0F,0xC2,0x01,0x28,0x00,0x14,0x00, + 0xFF,0xFF,0x0D,0xFF,0x00,0x05,0x04,0x0A,0x02,0x06,0xD0,0x07,0x3C,0x00,0x0F,0x3C, + 0x00,0x05,0x1E,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xDC,0x00,0x05,0x04,0x01,0x01,0x01,0x00,0x04,0x03,0x01,0x00, + 0x04,0x04,0x08,0x08,0x0C,0x0C,0x10,0x10,0x14,0x55,0x01,0x00,0x05,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03, + 0x41,0x80,0x00,0x00,0x18,0x10,0xB8,0x00,0x00,0x3F,0x00,0x3F,0x00,0x00,0x00,0x00, + 0x32,0x00,0x19,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x96,0x00,0x0F,0x00,0x05,0x00,0x00,0x00,0x1E,0x00,0xC8,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0xB4,0x00,0xFA,0x00,0x00,0x00, + 0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00, + 0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x64,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x14,0x00,0x00,0x5A,0x5A,0x5A,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x28,0x00,0x50,0x00,0x1E,0x00,0x50,0x00,0x14,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x00,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x41,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x05,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xF0,0x0F,0x02,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x15,0x0E,0x15,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x00,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x8D,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0xC2,0x00,0x00, + 0x20,0x00,0x20,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x1F,0x1F,0xB8,0x00, + 0x10,0x3F,0x10,0x3F,0x64,0x14,0x10,0x00,0x00,0x00,0x10,0x08,0x00,0x00,0xFF,0x0F, + 0x00,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0xC8,0x00,0x40,0x06,0x00,0x00,0x08,0x20, + 0x11,0x30,0x10,0x00,0x41,0x80,0x01,0x00,0xFF,0xFF,0xFF,0x10,0xFF,0xFF,0xFF,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x54,0x55,0x45,0x00,0x10,0x30,0x00,0x00,0x00,0x70,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x14,0x00,0x00,0x0C,0x0C,0x06,0x00, + 0x00,0x04,0x7C,0x74,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0xC0,0xDA,0x00,0x00, + 0x60,0x38,0x30,0x08,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,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, + 0xD0,0x07,0x08,0x00,0x12,0x12,0xC8,0x01,0x90,0x81,0x0C,0x00,0x00,0x08,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x80,0x00,0x03,0x64,0x40,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x00,0x00,0x00, + 0x00,0x80,0x00,0x00,0xC8,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x40,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x58,0x30,0x28,0x00,0x58,0x30,0x28,0x00,0x58,0x30,0x28,0x00,0x58,0x30,0x28,0x00, + 0x58,0x30,0x28,0x00,0x56,0x31,0x26,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x58,0x31,0x28,0x01, + 0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00,0x50,0x31,0x20,0x01, + 0x60,0x30,0x30,0x00,0x48,0x31,0x18,0x01,0x48,0x31,0x18,0x01,0x60,0x37,0x30,0x07, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x20,0x1A,0x1A, + 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x20,0x1A,0x1A,0x1A,0x1A, + 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x20,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, + 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x20,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, + 0x1E,0x1E,0x1E,0x1E,0x1E,0x20,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, + 0x1E,0x1E,0x1E,0x20,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, + 0x1E,0x20,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x20, + 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x20,0x1E,0x1E, + 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x20,0x1E,0x1E,0x1E,0x1E, + 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x20,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, + 0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x20,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, + 0x1C,0x1C,0x1C,0x1C,0x1C,0x20,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, + 0x1C,0x1C,0x1C,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x20,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x20,0x24,0x24,0x24,0x24, + 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x20,0x22,0x22,0x22,0x22,0x22,0x22, + 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A, + 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xC8,0x61,0x24,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x44,0xC8,0x61,0x24,0x44, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0x00,0xC0,0x91,0xE7, + 0x21,0x2C,0x92,0xE7,0x42,0xBC,0x92,0xE7,0x63,0x28,0x93,0xE7,0x84,0xB8,0x93,0xE7, + 0xA5,0x24,0x94,0xE7,0xC6,0xB4,0x94,0xE7,0xE7,0x20,0x95,0xE7,0x08,0xB1,0x95,0xE7, + 0x29,0x9D,0x98,0xE7,0x4A,0x01,0x99,0xE7,0x6B,0x99,0x99,0xE7,0x8C,0x05,0x9A,0xE7, + 0xAD,0x95,0x9A,0xE7,0xCE,0x09,0x90,0xE7,0xEF,0x11,0x90,0xE7,0x10,0x0E,0x90,0xE7, + 0x31,0x46,0x90,0xE7,0x52,0x52,0x90,0xE7,0x73,0x4A,0x90,0xE7,0x94,0x4E,0x90,0xE7, + 0xB5,0x02,0x90,0xE7,0xD6,0x02,0x90,0xE7,0xF7,0x02,0x90,0xE7,0x00,0x08,0x00,0x00, + 0x00,0x80,0x01,0x00,0x00,0x0C,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x06,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x30,0x00,0x00,0x80,0x01,0x00,0x00, + 0x01,0x10,0x00,0x00,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00,0x02,0x00, + 0x08,0x00,0x10,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x1E,0x00, + 0xF8,0x0F,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x30, + 0x33,0x30,0x03,0x00,0x00,0x00,0x00,0x00,0x30,0x68,0x30,0x68,0x70,0x28,0x70,0x28, + 0x32,0x30,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47,0x40,0x04,0x00,0x00,0xC0,0x9B,0x00,0x00, + 0xC0,0x92,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x03,0x00,0x00, + 0x00,0x96,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x02,0x00,0x00, + 0x00,0x99,0x00,0x00,0x00,0x04,0x00,0x00,0x20,0x00,0x94,0x00,0x00,0x00,0x00,0x00, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47}; + +#endif // __IST30XXB_FW_H__ diff --git a/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0001_20140226.h b/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0001_20140226.h new file mode 100644 index 00000000..322b7f5f --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0001_20140226.h @@ -0,0 +1,2572 @@ +#ifndef __IST30XXB_FW_H__ +#define __IST30XXB_FW_H__ + +/* ist30xxb binary: KANAS_GF MELFAS, f/w 1(00040000) */ +static unsigned char ist30xxb_fw[] = { + 0x06,0x00,0x00,0xEA,0x2C,0x00,0x00,0xEA,0x2B,0x00,0x00,0xEA,0x2A,0x00,0x00,0xEA, + 0x29,0x00,0x00,0xEA,0x28,0x00,0x00,0xEA,0x27,0x00,0x00,0xEA,0x3E,0x00,0x00,0xEA, + 0x14,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0xA0,0xE1,0x00,0x00,0x00,0xEA,0x0C,0x20,0x00,0x40, + 0x11,0x01,0xA0,0xE3,0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0xC1,0x01,0xA0,0xE3, + 0x1C,0x10,0x9F,0xE5,0x00,0x10,0x80,0xE5,0x18,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0xF1,0x01,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0x01,0x00,0x00,0xEA,0xC8,0x74,0x00,0x00,0x4C,0x00,0x00,0x40,0x00,0x00,0x0F,0xE1, + 0x1F,0x00,0xC0,0xE3,0xD1,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x1C,0xD0,0x9F,0xE5, + 0xD3,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x14,0xD0,0x9F,0xE5,0x00,0x00,0x0F,0xE1, + 0xC0,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x08,0x00,0x9F,0xE5,0x10,0xFF,0x2F,0xE1, + 0xFC,0x0F,0x00,0x20,0xC0,0x0F,0x00,0x20,0xA7,0x01,0x00,0x00,0x11,0x01,0xA0,0xE3, + 0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x5C,0x30,0x9F,0xE5,0x5C,0x40,0x9F,0xE5, + 0x00,0x40,0x83,0xE5,0x91,0x01,0xA0,0xE3,0x33,0x16,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0xAC,0x00,0x1F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0x00,0x40,0x83,0xE5, + 0xFF,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x03,0x00,0x00,0xEB,0xFE,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0x00,0xEB,0xF7,0xFF,0xFF,0xEA,0x01,0x29,0xA0,0xE3, + 0x01,0x20,0x52,0xE2,0xFD,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0xFF,0x40,0x2D,0xE9, + 0xC6,0x00,0x00,0xEB,0xFF,0x40,0xBD,0xE8,0x04,0xF0,0x5E,0xE2,0x1C,0x40,0x00,0x30, + 0x70,0xE9,0x1C,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x3C,0x4A,0x3A,0x48,0x3A,0x49,0x92,0x08,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x38,0x48,0x01,0x21,0xC9,0x02,0x01,0x62, + 0x00,0x21,0x01,0x62,0x01,0x62,0x36,0x49,0x36,0x48,0x01,0x60,0x20,0x21,0x41,0x60, + 0xA0,0x21,0x81,0x60,0x70,0x47,0xF8,0xB5,0x30,0x4B,0x9F,0x6A,0x32,0x48,0x00,0x69, + 0x42,0x08,0x58,0x69,0x19,0x15,0x08,0x43,0x58,0x61,0xFF,0xF7,0xE5,0xFF,0x58,0x69, + 0xFF,0x21,0x81,0x31,0x08,0x43,0x58,0x61,0x2C,0x48,0x2D,0x4C,0x20,0x60,0xFF,0x20, + 0x90,0x30,0x60,0x60,0x13,0x20,0xA0,0x60,0xA0,0x68,0xA6,0x15,0x30,0x43,0xA0,0x60, + 0x24,0x4D,0x5F,0x23,0x00,0x2F,0x27,0xD1,0x26,0x4F,0x21,0xE0,0x68,0x68,0x00,0x07, + 0x1E,0xD5,0xE8,0x68,0x40,0x28,0x04,0xD1,0xEA,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1, + 0x14,0xE0,0x20,0x28,0x04,0xD3,0xEF,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1,0x0D,0xE0, + 0x0D,0x28,0x08,0xD1,0x2E,0x20,0x68,0x60,0x68,0x69,0x80,0x06,0xFC,0xD4,0x68,0x68, + 0x80,0x07,0xFC,0xD5,0x08,0xE0,0x68,0x68,0x80,0x07,0xFC,0xD5,0xFF,0xF7,0xAC,0xFF, + 0xE0,0x68,0x15,0x49,0x88,0x42,0xD9,0xD3,0xFF,0xF7,0xA6,0xFF,0xA0,0x68,0xB0,0x43, + 0xA0,0x60,0x00,0xF0,0x3D,0xF9,0xF8,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x0F,0x49, + 0x0F,0x4A,0x00,0x20,0x01,0xE0,0x08,0xC9,0x18,0x18,0x91,0x42,0xFB,0xD3,0x70,0x47, + 0x00,0x00,0x00,0x10,0x94,0x02,0x00,0x00,0xEC,0x00,0x00,0x00,0x40,0x00,0x00,0x40, + 0xDE,0x10,0x05,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0xFF,0xFF,0x00,0x00, + 0x00,0x40,0x00,0x40,0xFF,0x03,0xFF,0x2F,0x50,0xC3,0x00,0x00,0x40,0x04,0x00,0x00, + 0xC0,0x92,0x00,0x00,0x38,0x48,0x41,0x6B,0xC9,0x07,0xFC,0xD0,0x41,0x6B,0x01,0x22, + 0x11,0x43,0x41,0x63,0x70,0x47,0x34,0x48,0xC2,0x69,0x41,0x14,0x8A,0x43,0xC2,0x61, + 0xC2,0x69,0x0A,0x43,0xC2,0x61,0xC2,0x69,0x8A,0x43,0xC2,0x61,0x70,0x47,0x10,0xB4, + 0x2D,0x4C,0x40,0x23,0x60,0x60,0x20,0x68,0x80,0x0A,0x80,0x02,0x10,0x43,0xA8,0x22, + 0x10,0x43,0x20,0x60,0x02,0xE0,0x08,0x78,0xA0,0x60,0x49,0x1C,0x5B,0x1E,0xFA,0xD2, + 0x10,0xBC,0x70,0x47,0xF0,0xB5,0x05,0x00,0x0E,0x00,0x1F,0x00,0x94,0x09,0x81,0x06, + 0x22,0x48,0x12,0xD1,0x91,0x06,0x10,0xD1,0x0C,0xE0,0x3A,0x00,0x31,0x00,0x28,0x00, + 0xFF,0xF7,0xDD,0xFF,0x40,0x35,0x2D,0x04,0x2D,0x0C,0x40,0x36,0xFF,0xF7,0xC2,0xFF, + 0xFF,0xF7,0xC9,0xFF,0x64,0x1E,0x60,0x1C,0xEF,0xD1,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x15,0x4B,0x40,0x22,0x58,0x60,0x18,0x68,0x80,0x0A,0x80,0x02,0x08,0x43,0xA4,0x21, + 0x08,0x43,0x18,0x60,0x00,0x21,0x00,0xE0,0x99,0x60,0x52,0x1E,0xFC,0xD2,0x70,0x47, + 0x70,0xB5,0x05,0x00,0x16,0x00,0x8C,0x09,0x82,0x06,0x0C,0x48,0x10,0xD1,0x89,0x06, + 0x0E,0xD1,0x0A,0xE0,0x31,0x00,0x28,0x00,0xFF,0xF7,0xE2,0xFF,0x40,0x35,0x2D,0x04, + 0x2D,0x0C,0xFF,0xF7,0x97,0xFF,0xFF,0xF7,0x9E,0xFF,0x64,0x1E,0x60,0x1C,0xF1,0xD1, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0xF8,0xB5,0x03,0x25,0x0F,0x4E,0x2D,0x07, + 0x01,0x27,0xF0,0x6A,0x00,0x28,0x15,0xD0,0xF0,0x6B,0xE9,0x68,0x80,0x08,0x3C,0x00, + 0x84,0x40,0x21,0x43,0xE9,0x60,0x69,0x68,0x21,0x42,0x00,0xD0,0x34,0x63,0x81,0x00, + 0x07,0x48,0x40,0x58,0x00,0x28,0x01,0xD0,0x07,0xF0,0x18,0xFA,0xE8,0x68,0xA0,0x43, + 0xE8,0x60,0xE6,0xE7,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x30, + 0x4C,0x07,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF8,0xB5,0x00,0xF0,0x55,0xFD,0x07,0x00,0x03,0xF0,0x48,0xFC,0x03,0xF0,0x3A,0xFC, + 0x03,0xF0,0xC4,0xFC,0x47,0x4A,0x48,0x49,0x48,0x48,0x05,0xF0,0x71,0xF9,0x48,0x4D, + 0x00,0x26,0x05,0x21,0x49,0x03,0x30,0x00,0x2E,0x82,0x00,0xF0,0xEF,0xF9,0xA8,0x61, + 0x44,0x49,0x00,0x20,0x00,0xF0,0xEA,0xF9,0x43,0x4B,0x44,0x49,0xD8,0x63,0x44,0x48, + 0x00,0xF0,0xE4,0xF9,0xD9,0x6B,0x00,0x04,0x08,0x43,0xD8,0x63,0x03,0xF0,0x82,0xFC, + 0x40,0x4A,0x41,0x48,0x00,0x21,0x05,0xF0,0x65,0xF9,0x06,0xF0,0xEF,0xFC,0x03,0xF0, + 0x29,0xFD,0x3E,0x48,0x01,0x24,0x81,0x7A,0x64,0x07,0xA9,0x71,0xC1,0x7A,0xE9,0x71, + 0x40,0x7A,0x28,0x72,0x6E,0x71,0x6E,0x72,0xAE,0x72,0xEE,0x72,0x36,0x48,0x2E,0x73, + 0x6E,0x73,0x60,0x63,0xFF,0x20,0xE0,0x63,0xE0,0x14,0x00,0xF0,0xED,0xFC,0x34,0x48, + 0x06,0x70,0xFF,0x20,0x81,0x30,0x00,0xF0,0xE7,0xFC,0x32,0x49,0x02,0x20,0x06,0xF0, + 0xD5,0xFF,0x02,0x20,0x06,0xF0,0xDA,0xFF,0x28,0x7A,0x00,0x28,0x01,0xD0,0x07,0xF0, + 0x55,0xF9,0x00,0x2F,0x1F,0xD1,0x2C,0x4F,0xBE,0x15,0x28,0x7A,0x00,0x28,0x02,0xD0, + 0x2A,0x49,0x28,0x6B,0x88,0x60,0xE0,0x6B,0x0B,0x28,0x14,0xD0,0x28,0x48,0x40,0x68, + 0x00,0x07,0x01,0xD5,0x02,0xF0,0xFC,0xFA,0xF8,0x68,0x26,0x49,0x88,0x42,0xEC,0xD9, + 0x25,0x48,0xC0,0x68,0xFF,0x28,0x06,0xD1,0xB8,0x68,0xB0,0x43,0xB8,0x60,0xB8,0x68, + 0x30,0x43,0xB8,0x60,0xE1,0xE7,0xE8,0x79,0x00,0x28,0x03,0xD1,0x01,0x20,0x80,0x02, + 0x00,0xF0,0xAA,0xFC,0x28,0x7A,0x00,0x28,0x01,0xD0,0x07,0xF0,0x2F,0xF9,0x02,0x20, + 0x06,0xF0,0xB0,0xFF,0xFF,0x20,0x81,0x30,0x00,0xF0,0x9E,0xFC,0x17,0x49,0x05,0x20, + 0x03,0xF0,0x6A,0xFA,0x0B,0x20,0xE0,0x63,0x03,0xF0,0x00,0xFB,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x28,0x00,0x00,0x00,0xAC,0x79,0x00,0x00,0x00,0x00,0x00,0x10, + 0x14,0x07,0x00,0x20,0xC0,0x92,0x00,0x00,0xC0,0x0F,0x00,0x20,0x00,0x9D,0x00,0x00, + 0x00,0x93,0x00,0x00,0xD4,0x06,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00, + 0xD1,0x07,0x00,0x20,0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x30,0x00,0x40, + 0x00,0x40,0x00,0x30,0x50,0xC3,0x00,0x00,0xC0,0x92,0x00,0x00,0xE1,0x74,0x00,0x00, + 0x78,0x47,0xC0,0x46,0x01,0x30,0x90,0xE1,0x4C,0x00,0x00,0x4A,0x00,0x20,0xB0,0xE3, + 0xA0,0x30,0x71,0xE0,0x43,0x00,0x00,0x3A,0x20,0x32,0x71,0xE0,0x34,0x00,0x00,0x3A, + 0x20,0x34,0x71,0xE0,0x26,0x00,0x00,0x3A,0x20,0x36,0x71,0xE0,0x17,0x00,0x00,0x3A, + 0x20,0x38,0x71,0xE0,0x09,0x00,0x00,0x3A,0x01,0x14,0xA0,0xE1,0x20,0x38,0x71,0xE0, + 0xFF,0x24,0x82,0xE3,0xFF,0x28,0x82,0x23,0x01,0x14,0xA0,0x21,0x20,0x36,0x71,0xE0, + 0x0E,0x00,0x00,0x3A,0x00,0x30,0x71,0xE2,0x6F,0x00,0x00,0x2A,0x21,0x14,0xA0,0x21, + 0xA0,0x37,0x71,0xE0,0x81,0x07,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x37,0x71,0xE0, + 0x01,0x07,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x36,0x71,0xE0,0x81,0x06,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x36,0x71,0xE0,0x01,0x06,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x35,0x71,0xE0,0x81,0x05,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x35,0x71,0xE0, + 0x01,0x05,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x34,0x71,0xE0,0x81,0x04,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x34,0x71,0xE0,0x01,0x04,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xE5,0xFF,0xFF,0x2A,0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0, + 0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x30,0x71,0xE0, + 0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31, + 0x02,0x00,0xA2,0xE0,0x1E,0xFF,0x2F,0xE1,0x01,0x10,0x50,0xE0,0x01,0x00,0xA0,0x23, + 0x1E,0xFF,0x2F,0x21,0x00,0x10,0xA0,0xE1,0x00,0x00,0xB0,0xE3,0x1E,0xFF,0x2F,0xE1, + 0x02,0x21,0x11,0xE2,0x00,0x10,0x61,0x42,0x40,0xC0,0x32,0xE0,0x00,0x00,0x60,0x22, + 0x20,0x32,0x71,0xE0,0x1D,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0,0x0F,0x00,0x00,0x3A, + 0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x23,0x82,0xE3,0x0B,0x00,0x00,0x3A, + 0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x26,0x82,0xE3,0x07,0x00,0x00,0x3A, + 0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x29,0x82,0xE3,0x01,0x13,0xA0,0x21, + 0x3F,0x2C,0x82,0x23,0x00,0x30,0x71,0xE2,0x1D,0x00,0x00,0x2A,0x21,0x13,0xA0,0x21, + 0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0, + 0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0, + 0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xEB,0xFF,0xFF,0x2A,0xA0,0x30,0x71,0xE0, + 0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31, + 0x02,0x00,0xA2,0xE0,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x00,0x10,0x61,0x22, + 0x1E,0xFF,0x2F,0xE1,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x01,0x40,0x2D,0xE9, + 0x00,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB,0x02,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x00,0x00,0xA0,0xE1,0x07,0x40,0x2D,0xE9,0x02,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB, + 0x07,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x01,0x00,0x10,0xB5,0x02,0x20,0x07,0xF0,0x4F,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x78,0x47,0xC0,0x46,0x00,0x20,0xB0,0xE3,0x20,0x32,0x71,0xE0,0xA0,0xFF,0xFF,0x3A, + 0x20,0x34,0x71,0xE0,0x92,0xFF,0xFF,0x3A,0x20,0x36,0x71,0xE0,0x83,0xFF,0xFF,0x3A, + 0x20,0x38,0x71,0xE0,0x75,0xFF,0xFF,0x3A,0x6A,0xFF,0xFF,0xEA,0x78,0x47,0xC0,0x46, + 0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0xAD,0x00,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x51,0x00,0x00,0x10,0x78,0x47,0xC0,0x46, + 0xED,0xFD,0xFF,0xEA,0x02,0x48,0x01,0x68,0x02,0x4A,0x11,0x40,0x01,0x60,0x70,0x47, + 0x00,0xA0,0x00,0x40,0xFE,0xFF,0xEF,0xFF,0x07,0x49,0x10,0xB5,0x08,0x68,0x07,0x4A, + 0x10,0x43,0x08,0x60,0x0B,0x24,0x02,0xF0,0xCF,0xF8,0x64,0x1E,0x00,0x2C,0xFA,0xDC, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0xA0,0x00,0x40,0x01,0x00,0x10,0x00, + 0xF0,0xB5,0x01,0x27,0x7F,0x07,0x3D,0x68,0x17,0x4E,0xB0,0x7B,0xC0,0x07,0x26,0xD0, + 0x70,0x7A,0x00,0x28,0x21,0xD0,0xBA,0x00,0x01,0x2D,0x02,0xD1,0x79,0x68,0x11,0x43, + 0xB9,0x60,0x00,0x04,0x02,0x43,0x90,0x0A,0x80,0x02,0xA9,0x05,0x89,0x0D,0x08,0x43, + 0x78,0x60,0x01,0x24,0x08,0xE0,0x0D,0x49,0xE0,0x00,0x40,0x18,0x0C,0x49,0x41,0x18, + 0x28,0x19,0x06,0xF0,0xAF,0xFB,0x64,0x1C,0x70,0x7A,0xA0,0x42,0xF3,0xDA,0x70,0x7A, + 0x01,0x28,0x02,0xD1,0x00,0x2D,0x00,0xD1,0x01,0x25,0x70,0x7A,0x45,0x19,0x3D,0x60, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0x3A,0x06,0x00,0x00,0x70,0xB4,0x1A,0x4B,0xDA,0x88,0xD2,0x07,0x2B,0xD1,0x19,0x4A, + 0x05,0x78,0x54,0x7A,0xE4,0x00,0xE6,0x18,0x19,0x24,0xA4,0x01,0x36,0x19,0xB5,0x70, + 0x56,0x7A,0x45,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0xB5,0x80,0x56,0x7A,0x85,0x88, + 0xF6,0x00,0xF6,0x18,0x36,0x19,0xF5,0x80,0x55,0x7A,0xED,0x00,0xED,0x18,0x2D,0x19, + 0x29,0x72,0x55,0x7A,0xC1,0x79,0xED,0x00,0xEB,0x18,0x1B,0x19,0x59,0x72,0x51,0x7A, + 0x49,0x1C,0x51,0x72,0xC0,0x79,0x06,0x28,0x07,0xD0,0x0A,0x28,0x01,0xD0,0x12,0x28, + 0x01,0xD1,0x00,0x20,0x90,0x72,0x70,0xBC,0x70,0x47,0x01,0x20,0xFA,0xE7,0x00,0x00, + 0x40,0x00,0x00,0x20,0x40,0x06,0x00,0x20,0xFF,0xB5,0x0A,0x20,0x48,0x43,0x16,0x4F, + 0x81,0xB0,0xC5,0x19,0xFF,0x35,0x48,0x00,0xC1,0x35,0xC0,0x19,0x2A,0x73,0x00,0x90, + 0x0C,0x00,0xE0,0x30,0x80,0x8A,0x16,0x00,0x0A,0x21,0xFF,0xF7,0x29,0xFF,0xE8,0x81, + 0x00,0x98,0x0A,0x21,0xFF,0x30,0x01,0x30,0xC0,0x89,0xFF,0xF7,0x21,0xFF,0x28,0x82, + 0x38,0x19,0xFF,0x30,0x41,0x30,0x00,0x7E,0xB9,0x19,0x68,0x73,0x04,0x98,0xA8,0x74, + 0x01,0x98,0x06,0x55,0x0D,0x20,0x80,0x01,0x08,0x18,0x00,0x21,0xC4,0x77,0x81,0x74, + 0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20,0x06,0x48,0x0F,0x23, + 0x42,0x79,0x01,0x68,0x9B,0x06,0x49,0x1C,0x12,0x07,0x12,0x0A,0xD2,0x18,0x09,0x03, + 0x09,0x0B,0x0A,0x43,0x02,0x60,0x70,0x47,0x40,0x00,0x00,0x20,0xF1,0xB5,0xB1,0x48, + 0x90,0xB0,0x0F,0x90,0x40,0x7C,0x02,0x90,0x0F,0x98,0xC0,0x7C,0x01,0x90,0x0F,0x98, + 0x00,0x7C,0x00,0x90,0xAC,0x48,0x00,0x68,0x00,0x88,0x00,0x05,0x7E,0xD5,0x10,0x98, + 0x01,0x28,0x00,0xD0,0x02,0x20,0x03,0x90,0x00,0x20,0x04,0x90,0x41,0xE1,0x03,0x98, + 0x81,0x00,0x01,0x20,0x40,0x07,0x08,0x18,0x0E,0x90,0x00,0x68,0x81,0x00,0x0D,0x90, + 0x0C,0x0F,0x80,0x0F,0xC0,0x07,0x03,0xD1,0x20,0x00,0x01,0xF0,0x05,0xFB,0x29,0xE1, + 0x9E,0x48,0xA5,0x00,0x40,0x5F,0x00,0x28,0x84,0x46,0x0F,0xDA,0x0D,0x98,0x9B,0x49, + 0x80,0x01,0x80,0x0D,0x48,0x53,0x0D,0x98,0x6A,0x18,0x80,0x05,0x80,0x0D,0x50,0x80, + 0x4A,0x5B,0x34,0x31,0x4A,0x53,0x69,0x18,0x48,0x80,0x13,0xE1,0x02,0x9F,0x93,0x49, + 0x00,0x20,0x7F,0x1E,0x68,0x31,0x69,0x18,0x06,0xE0,0x83,0x00,0xCA,0x18,0x96,0x88, + 0x40,0x1C,0xCE,0x52,0xD3,0x88,0x53,0x80,0xB8,0x42,0xF6,0xDB,0x0D,0x98,0x62,0x46, + 0x80,0x01,0x80,0x0D,0x0C,0x90,0x80,0x1A,0x02,0x9A,0x88,0x4E,0x92,0x00,0x8B,0x18, + 0x20,0x3B,0x98,0x83,0x0D,0x98,0xAA,0x19,0x80,0x05,0x80,0x0D,0x0A,0x92,0x0B,0x90, + 0x52,0x88,0x80,0x1A,0xD8,0x83,0x00,0x20,0x06,0x00,0x02,0x00,0x07,0xE0,0x93,0x00, + 0xCF,0x5E,0x38,0x18,0xCF,0x18,0x02,0x23,0xFB,0x5E,0x9E,0x19,0x52,0x1C,0x02,0x9B, + 0x9A,0x42,0xF4,0xDB,0x19,0x00,0xFF,0xF7,0x53,0xFD,0x07,0x00,0x02,0x99,0x30,0x00, + 0xFF,0xF7,0x4E,0xFD,0x00,0x2F,0x00,0xDC,0x7F,0x42,0x0F,0x99,0x89,0x7C,0x8F,0x42, + 0x17,0xDA,0x00,0x28,0x00,0xDC,0x40,0x42,0x88,0x42,0x12,0xDA,0x01,0x98,0x0C,0x21, + 0x48,0x43,0x0A,0x21,0xFF,0xF7,0x6C,0xFE,0x62,0x00,0x00,0xE0,0xCD,0xE0,0x6B,0x4B, + 0x28,0x3B,0x99,0x5E,0x88,0x42,0x0C,0xDD,0x0F,0x98,0x00,0x7D,0x08,0x18,0x98,0x52, + 0x07,0xE0,0x66,0x49,0x0F,0x9B,0x60,0x00,0x28,0x39,0x0A,0x5A,0x5B,0x7D,0xD2,0x1A, + 0x0A,0x52,0x62,0x49,0x60,0x00,0x28,0x39,0x0A,0x5E,0x00,0x2A,0x01,0xDC,0x00,0x22, + 0x0A,0x52,0x08,0x5E,0x01,0x99,0x88,0x42,0x09,0x90,0x04,0xDB,0x5B,0x48,0x05,0x21, + 0x0E,0x38,0x01,0x55,0x2B,0xE0,0x88,0x00,0x05,0x21,0xFF,0xF7,0x41,0xFE,0x09,0x99, + 0x88,0x42,0x01,0xDC,0x04,0x20,0x1F,0xE0,0x01,0x98,0x41,0x00,0x40,0x18,0x05,0x21, + 0xFF,0xF7,0x36,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x03,0x20,0x14,0xE0,0x01,0x98, + 0x05,0x21,0x40,0x00,0xFF,0xF7,0x2C,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x02,0x20, + 0x0A,0xE0,0x01,0x98,0x05,0x21,0xFF,0xF7,0x23,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC, + 0x01,0x20,0x01,0xE0,0x08,0x00,0x02,0xD1,0x44,0x49,0x0E,0x39,0x08,0x55,0x43,0x49, + 0x0C,0x9A,0x34,0x31,0x48,0x5F,0x16,0x1A,0x08,0x90,0x68,0x18,0x02,0x21,0x07,0x90, + 0x41,0x5E,0x0B,0x9A,0x3D,0x48,0x57,0x1A,0x0E,0x38,0x06,0x91,0x01,0x5D,0x0F,0x98, + 0x80,0x7D,0x81,0x42,0x27,0xD3,0x00,0x2E,0x01,0xD1,0x00,0x24,0x0D,0xE0,0x30,0x1E, + 0x00,0xDC,0x70,0x42,0x00,0x99,0x88,0x42,0x01,0xDA,0x01,0x24,0x05,0xE0,0x30,0x1E, + 0x00,0xDC,0x70,0x42,0xFF,0xF7,0xC4,0xFC,0x04,0x00,0x00,0x2F,0x01,0xD1,0x00,0x20, + 0x0C,0xE0,0x38,0x1E,0x00,0xDC,0x78,0x42,0x00,0x99,0x88,0x42,0x01,0xDA,0x01,0x20, + 0x04,0xE0,0x38,0x1E,0x00,0xDC,0x78,0x42,0xFF,0xF7,0xB2,0xFC,0x08,0x99,0x00,0x2E, + 0x19,0xDB,0x09,0x19,0x18,0xE0,0x09,0x98,0x64,0x21,0x48,0x43,0x01,0x99,0xFF,0xF7, + 0xA7,0xFC,0x64,0x21,0x08,0x1A,0x31,0x1E,0x05,0x90,0x00,0xDC,0x71,0x42,0x48,0x43, + 0x64,0x21,0xFF,0xF7,0x9D,0xFC,0x05,0x9A,0x04,0x00,0x38,0x1E,0x00,0xDC,0x78,0x42, + 0x50,0x43,0x64,0x21,0xE0,0xE7,0x09,0x1B,0x06,0x9A,0x00,0x2F,0x01,0xDB,0x10,0x18, + 0x00,0xE0,0x10,0x1A,0x15,0x4A,0x0C,0x9B,0x53,0x53,0x0A,0x9B,0x0B,0x9A,0x5A,0x80, + 0x12,0x4A,0x13,0x4B,0x34,0x32,0x51,0x53,0x07,0x9A,0x89,0x05,0x50,0x80,0x0D,0x9A, + 0x89,0x09,0x1A,0x40,0x0A,0x43,0x91,0x0A,0x89,0x02,0x80,0x05,0x80,0x0D,0x01,0x43, + 0x0E,0x98,0x01,0x60,0x04,0x98,0x40,0x1C,0x04,0x90,0x03,0x98,0x40,0x1C,0x03,0x90, + 0x04,0x98,0x10,0x99,0x88,0x42,0x00,0xDA,0xB9,0xE6,0x11,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xA0,0x93,0x00,0x00,0xCC,0x07,0x00,0x20,0xCC,0x0A,0x00,0x20, + 0xFF,0xFF,0x00,0xFC,0x10,0x4B,0x30,0xB4,0x1B,0x21,0xDA,0x88,0x89,0x01,0x80,0x24, + 0x59,0x18,0x00,0x28,0x0E,0xD0,0x0D,0x48,0x45,0x7B,0x0D,0x80,0xC5,0x89,0x4D,0x80, + 0x05,0x8A,0x8D,0x80,0x40,0x8A,0xC8,0x80,0x08,0x48,0x20,0x30,0x00,0x89,0x22,0x43, + 0x08,0x81,0x06,0xE0,0x00,0x20,0x08,0x80,0x48,0x80,0x88,0x80,0xC8,0x80,0xA2,0x43, + 0x08,0x81,0xDA,0x80,0x30,0xBC,0x70,0x47,0x40,0x00,0x00,0x20,0x80,0x93,0x00,0x00, + 0x7F,0xB5,0x25,0x4D,0x06,0x00,0x1A,0x28,0x0C,0xD1,0x28,0x6A,0x00,0x28,0x09,0xD1, + 0x68,0x6A,0x00,0x28,0x06,0xD1,0x21,0x4C,0x01,0xF0,0x62,0xFE,0x64,0x1E,0xFB,0xD2, + 0xFF,0x24,0x12,0xE0,0x05,0xF0,0x56,0xFB,0x01,0xF0,0x5A,0xFD,0x01,0xF0,0xA2,0xFD, + 0x03,0xAA,0x01,0xA9,0x02,0xA8,0x04,0xF0,0x39,0xFD,0x04,0x00,0x03,0x00,0x01,0x9A, + 0x02,0x99,0x03,0x98,0x00,0x96,0x00,0xF0,0x33,0xF8,0x02,0x20,0x06,0xF0,0x8A,0xFB, + 0x02,0x20,0x06,0xF0,0x7B,0xFB,0x12,0x49,0xE8,0x68,0xC8,0x61,0x28,0x69,0xC8,0x61, + 0x10,0x48,0xC2,0x68,0x52,0x08,0x52,0x00,0xC2,0x60,0x0F,0x4B,0x0F,0x48,0x02,0xE0, + 0xDA,0x68,0x82,0x42,0x02,0xD8,0x4A,0x69,0x92,0x06,0xF9,0xD5,0x48,0x68,0x80,0x07, + 0xFC,0xD5,0x01,0xF0,0x4D,0xFE,0x01,0x20,0x00,0xF0,0x6E,0xF8,0x20,0x00,0x04,0xB0, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x92,0x00,0x00,0xE7,0x03,0x00,0x00, + 0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40,0x50,0xC3,0x00,0x00, + 0xFF,0xB5,0x05,0x00,0x0E,0x00,0x91,0xB0,0xFF,0xF7,0x74,0xF9,0x1C,0x48,0x03,0x27, + 0x04,0x04,0x24,0x0C,0x3F,0x02,0x00,0x22,0x39,0x00,0x20,0x00,0xFF,0xF7,0x1E,0xFD, + 0x18,0x49,0x3A,0x00,0x20,0x00,0x00,0x23,0xFF,0xF7,0x20,0xFD,0x16,0x49,0x40,0x22, + 0x01,0xA8,0x04,0xF0,0x85,0xFC,0x14,0x99,0x28,0x04,0x09,0x03,0x08,0x43,0x13,0x49, + 0x08,0x43,0x04,0x90,0x13,0x99,0x30,0x04,0x08,0x43,0x05,0x90,0x10,0x48,0x11,0x49, + 0xC0,0x6B,0x10,0x90,0x0C,0x48,0x80,0x69,0x40,0x1C,0x07,0x90,0x00,0x20,0x8D,0x42, + 0x09,0x90,0x02,0xD1,0x06,0x99,0x49,0x1C,0x06,0x91,0x1A,0x99,0x1A,0x29,0x00,0xD1, + 0x0A,0x90,0x01,0xA8,0x06,0xF0,0x68,0xFC,0x15,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x9D,0x00,0x00,0x00,0x00,0x10,0x40,0xC0,0x92,0x00,0x00,0xAB,0x0C,0x00,0x80, + 0xC0,0x0F,0x00,0x20,0xEC,0x0D,0x00,0x00,0x02,0x4A,0x51,0x69,0x81,0x43,0x51,0x61, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x4A,0x51,0x69,0x01,0x43,0x51,0x61, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x78,0x47,0xC0,0x46,0x01,0x21,0xA0,0xE3, + 0x50,0x30,0x92,0xE5,0x0C,0x10,0xA0,0xE3,0x03,0x00,0x80,0xE1,0x50,0x00,0x82,0xE5, + 0x00,0x00,0x00,0xEA,0x00,0x00,0xA0,0xE1,0x01,0x10,0x51,0xE2,0xFC,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x01,0x48,0x40,0x69,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x01,0x48,0x80,0x6A,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x49,0x08,0x62, + 0x00,0x20,0x08,0x62,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x01,0x49,0x48,0x61, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x07,0x49,0xFF,0x28,0x04,0xD1,0x01,0x20, + 0xC8,0x60,0x00,0x20,0x88,0x61,0x70,0x47,0x8A,0x69,0x12,0x07,0x12,0x0F,0x02,0x43, + 0x8A,0x61,0x02,0x20,0xC8,0x60,0x70,0x47,0x40,0x00,0x00,0x40,0xF0,0xB5,0xFF,0xB0, + 0x00,0x20,0xCC,0xB0,0xBC,0x90,0x40,0x1E,0xB8,0x90,0xFF,0x48,0xFF,0x4A,0x00,0x68, + 0xFF,0x4F,0x60,0x30,0xC1,0x7D,0xFF,0x4C,0x05,0x91,0x01,0x7E,0x12,0x88,0x89,0x18, + 0x09,0x06,0x09,0x0E,0x04,0x91,0x41,0x7E,0x03,0x91,0x80,0x7E,0x02,0x90,0x00,0x20, + 0x3D,0x79,0x01,0x26,0x01,0x90,0x14,0xE0,0x0A,0x20,0x70,0x43,0x0B,0x21,0xC0,0x19, + 0x89,0x01,0x41,0x18,0x09,0x7C,0x00,0x29,0x0A,0xD0,0xF3,0x49,0x40,0x18,0x02,0xF0, + 0x31,0xFE,0x00,0x28,0x04,0xD0,0x01,0x98,0x40,0x1C,0x00,0x06,0x00,0x0E,0x01,0x90, + 0x76,0x1C,0xA0,0x7A,0xB0,0x42,0xE7,0xDA,0xEC,0x48,0x01,0x88,0x82,0x88,0x8E,0x1A, + 0x00,0x2E,0x00,0xDC,0x56,0x1A,0x41,0x88,0xC0,0x88,0x36,0x04,0x36,0x0C,0x0A,0x1A, + 0x00,0x2A,0x00,0xDC,0x42,0x1A,0xE5,0x49,0x10,0x04,0x20,0x39,0x00,0x22,0xCA,0x91, + 0x8A,0x77,0x01,0x99,0x00,0x0C,0x00,0x29,0x0C,0xD0,0x1E,0x2E,0x0A,0xD2,0x32,0x28, + 0x01,0xD2,0x01,0x21,0x04,0xE0,0x64,0x28,0x01,0xD2,0x02,0x21,0x00,0xE0,0x03,0x21, + 0xCA,0x98,0x81,0x77,0xCA,0x98,0x40,0x7F,0x00,0x28,0x12,0xD1,0xCA,0x98,0x80,0x7F, + 0x01,0x28,0x02,0xD1,0x05,0x98,0x80,0x1C,0x08,0xE0,0x02,0x28,0x02,0xD1,0x05,0x98, + 0x00,0x1D,0x03,0xE0,0x03,0x28,0x04,0xD1,0x05,0x98,0x80,0x1D,0x00,0x06,0x00,0x0E, + 0x05,0x90,0x0D,0x22,0x00,0x21,0xB4,0xA8,0x04,0xF0,0x9C,0xFB,0xF8,0x88,0xFF,0x21, + 0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06,0x06,0xD5,0x01,0xF0,0x47,0xF8,0x7F,0xB0, + 0x4C,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xE0,0x7A,0x00,0x28,0x01,0xD0,0x40,0x1E, + 0xE0,0x72,0x60,0x7A,0x00,0x2D,0x02,0xD1,0x00,0x28,0x18,0xD0,0x18,0xE0,0x00,0x28, + 0x16,0xD1,0xBC,0x48,0x82,0x22,0x00,0x21,0x8E,0x30,0x04,0xF0,0x7B,0xFB,0xE0,0x7A, + 0x00,0x28,0x0C,0xD1,0x01,0x26,0x07,0xE0,0x31,0x06,0x09,0x0E,0x0A,0x00,0x14,0x23, + 0xB4,0xA8,0xFF,0xF7,0x91,0xFC,0x76,0x1C,0xAE,0x42,0xF5,0xDD,0x25,0x72,0xE6,0xE1, + 0x0D,0x22,0x01,0x21,0xB0,0xA8,0x04,0xF0,0x65,0xFB,0x02,0x20,0xAE,0x49,0x06,0x90, + 0xAB,0x48,0x89,0x31,0x41,0x18,0xC9,0x91,0xAB,0x49,0x7C,0x31,0x40,0x18,0xC8,0x90, + 0x14,0xE1,0x0C,0x26,0x07,0xAF,0x34,0x20,0x70,0x43,0x07,0xA9,0x40,0x18,0x00,0x21, + 0x34,0x22,0xC9,0x43,0x04,0xF0,0x4E,0xFB,0x76,0x1E,0xF4,0xD5,0x06,0x98,0x01,0xF0, + 0x05,0xFC,0x01,0x27,0xB9,0x90,0x54,0xE0,0xB9,0x98,0x01,0x26,0xBA,0x90,0x4C,0xE0, + 0x0A,0x20,0x70,0x43,0x9A,0x4A,0x0B,0x21,0x80,0x18,0x89,0x01,0x41,0x18,0xC7,0x91, + 0x09,0x7C,0x00,0x29,0x40,0xD0,0x98,0x49,0x40,0x18,0xC6,0x90,0x02,0xF0,0x7A,0xFD, + 0x06,0x99,0x08,0x43,0x07,0xD0,0xC6,0x98,0x02,0xF0,0x74,0xFD,0x00,0x28,0x33,0xD0, + 0x06,0x98,0x00,0x28,0x30,0xD0,0x8E,0x49,0x78,0x00,0x40,0x18,0xC5,0x90,0xE0,0x30, + 0x80,0x8A,0x0A,0x21,0xFF,0xF7,0x7C,0xFB,0xC7,0x99,0x49,0x8A,0x0A,0x1A,0x00,0x2A, + 0x00,0xDC,0x42,0x1A,0xBB,0x92,0xC5,0x98,0x0A,0x21,0xFF,0x30,0x01,0x30,0xC0,0x89, + 0xFF,0xF7,0x6E,0xFB,0xC7,0x99,0x8A,0x8A,0x11,0x1A,0x00,0x29,0x00,0xDC,0x81,0x1A, + 0xBB,0x9A,0x10,0x00,0x50,0x43,0x0A,0x00,0x4A,0x43,0xBA,0x99,0x80,0x18,0x88,0x42, + 0x04,0xDA,0x34,0x21,0x79,0x43,0x07,0xAA,0x56,0x50,0xBA,0x90,0x34,0x21,0x79,0x43, + 0x07,0xAA,0x89,0x18,0xB2,0x00,0x88,0x50,0x76,0x1C,0xA0,0x7A,0xB0,0x42,0xAF,0xDA, + 0x7F,0x1C,0xAF,0x42,0xA8,0xDD,0x01,0x20,0xA4,0xE0,0x01,0x22,0xB9,0x99,0x10,0x00, + 0x15,0xE0,0xB4,0xAE,0x33,0x5C,0x00,0x2B,0x10,0xD1,0x34,0x23,0x06,0x00,0x5E,0x43, + 0x07,0xAB,0xF7,0x18,0x9E,0x59,0xB3,0x00,0xFF,0x58,0x8F,0x42,0x06,0xDA,0x00,0x2F, + 0x04,0xDB,0x00,0x2E,0x02,0xDB,0x39,0x00,0x00,0x22,0xB8,0x90,0x40,0x1C,0xA8,0x42, + 0xE7,0xDD,0x00,0x2A,0x7E,0xD1,0xBC,0x98,0x34,0x21,0x40,0x1C,0xBC,0x90,0xB8,0x98, + 0x5F,0x4F,0x48,0x43,0x07,0xA9,0xC4,0x90,0x08,0x58,0x0A,0x21,0x48,0x43,0x5E,0x49, + 0xC0,0x19,0x88,0x39,0x41,0x18,0xB8,0x98,0x0A,0x22,0x50,0x43,0xC6,0x19,0x30,0x00, + 0xFF,0x30,0xCD,0x30,0x04,0xF0,0x82,0xFA,0xB8,0x98,0x0A,0x21,0x40,0x00,0xC0,0x19, + 0xC3,0x90,0xE0,0x30,0x80,0x8A,0xFF,0xF7,0x0B,0xFB,0xFF,0x36,0xC1,0x36,0xF0,0x81, + 0xC3,0x98,0x0A,0x21,0xFF,0x30,0x01,0x30,0xC0,0x89,0xFF,0xF7,0x01,0xFB,0x30,0x82, + 0xB8,0x98,0x38,0x18,0xFF,0x30,0x41,0x30,0x00,0x7E,0x70,0x73,0xB0,0x7C,0x05,0x99, + 0x49,0x1C,0x88,0x42,0x01,0xD2,0x40,0x1C,0xB0,0x74,0xB7,0x7C,0x13,0x2F,0x09,0xD9, + 0x14,0x21,0x38,0x00,0xFF,0xF7,0xEC,0xFA,0x04,0x99,0x89,0x1C,0x88,0x42,0x01,0xD2, + 0x14,0x37,0xB7,0x74,0x30,0x7B,0xB8,0x9A,0xB4,0xA9,0x88,0x54,0xC9,0x9A,0xB8,0x99, + 0x81,0x54,0x31,0x7B,0xC8,0x9A,0x00,0x20,0x88,0x54,0xC4,0x99,0x07,0xAA,0x51,0x58, + 0xB0,0xAA,0x50,0x54,0x01,0x21,0x23,0xE0,0x08,0x00,0x34,0x23,0x58,0x43,0xC4,0x9B, + 0x07,0xAE,0xC2,0x90,0xF3,0x58,0x00,0x22,0x80,0x19,0xD2,0x43,0x9B,0x00,0x84,0x46, + 0xC2,0x50,0xB4,0xA8,0x40,0x5C,0xB9,0x9E,0x00,0x28,0x10,0xD1,0xA7,0x7A,0x01,0x20, + 0x0B,0xE0,0x83,0x00,0x62,0x46,0xD2,0x58,0x00,0x2A,0x05,0xDB,0xB2,0x42,0x03,0xDA, + 0xC2,0x9B,0x07,0xAE,0xF0,0x50,0x16,0x00,0x40,0x1C,0x87,0x42,0xF1,0xDA,0x49,0x1C, + 0xA9,0x42,0x00,0xE0,0x04,0xE0,0xD7,0xDD,0xA0,0x7A,0xBC,0x99,0x88,0x42,0x05,0xDD, + 0xBE,0x98,0x40,0x1C,0xA8,0x42,0xBE,0x90,0x00,0xDC,0x56,0xE7,0x06,0x98,0x41,0x1E, + 0x09,0x06,0x09,0x0E,0x00,0x28,0x06,0x91,0x00,0xD0,0xE2,0xE6,0x01,0x26,0xBF,0x96, + 0xBD,0x90,0x6E,0xE0,0xB0,0xA8,0x80,0x5D,0x00,0x28,0x69,0xD0,0xBF,0x98,0x14,0x49, + 0x28,0x18,0xBE,0x90,0x0A,0x20,0x70,0x43,0x47,0x18,0x0B,0x20,0x80,0x01,0x38,0x18, + 0xC1,0x90,0x00,0x7C,0xC8,0x99,0x40,0x5C,0x03,0x99,0x88,0x42,0x43,0xD2,0xBE,0x98, + 0x0C,0x28,0x40,0xDC,0x0C,0x48,0x38,0x18,0x02,0xF0,0x64,0xFC,0x00,0x28,0x3A,0xD0, + 0xC1,0x98,0xC8,0x99,0x00,0x7C,0xC8,0x9B,0x05,0x4A,0x41,0x5C,0x49,0x1C,0xC1,0x54, + 0x2D,0x20,0x00,0x01,0x39,0x18,0x0B,0xE0,0xCC,0x07,0x00,0x20,0x00,0x07,0x00,0x20, + 0x40,0x00,0x00,0x20,0x00,0x02,0x00,0x20,0xD6,0x02,0x00,0x00,0xC0,0x03,0x00,0x20, + 0xBE,0x98,0x0A,0x23,0x58,0x43,0x80,0x18,0xC0,0x90,0xFF,0x30,0xCD,0x30,0x1A,0x00, + 0x04,0xF0,0xC4,0xF9,0x09,0x20,0x80,0x01,0x39,0x18,0xC0,0x98,0x4A,0x7D,0xFF,0x30, + 0xC1,0x30,0xC2,0x74,0x89,0x7D,0x01,0x75,0xC1,0x98,0xBE,0x9A,0x00,0x7C,0xB4,0xA9, + 0x88,0x54,0xC9,0x9A,0xBE,0x99,0x81,0x54,0xBF,0x98,0x40,0x1C,0xBF,0x90,0xBD,0x98, + 0x40,0x1C,0xBD,0x90,0x14,0xE0,0x32,0x48,0x38,0x18,0x02,0xF0,0x23,0xFC,0x00,0x28, + 0x0E,0xD0,0xCA,0x99,0x01,0x20,0x08,0x77,0xC1,0x99,0x2E,0x48,0x89,0x7D,0x13,0x29, + 0x06,0xD9,0x61,0x7A,0x01,0x29,0x03,0xD1,0xC1,0x88,0x04,0x22,0x11,0x43,0xC1,0x80, + 0x76,0x1C,0xA0,0x7A,0xB0,0x42,0x8D,0xDA,0x26,0x48,0xC0,0x88,0x41,0x07,0x05,0xD5, + 0x02,0x99,0x04,0x22,0xE1,0x72,0x23,0x49,0x90,0x43,0xC8,0x80,0x01,0x26,0x31,0xE0, + 0xB4,0xA8,0x80,0x5D,0x00,0x28,0x1A,0xD1,0x0D,0x22,0x01,0x20,0x92,0x01,0x1B,0x27, + 0x7F,0x01,0x1C,0x49,0x09,0x18,0x8B,0x18,0xDB,0x7F,0x00,0x2B,0x0C,0xD1,0xC9,0x19, + 0x09,0x7B,0x00,0x29,0x08,0xD1,0x02,0x06,0x31,0x06,0x12,0x0E,0x09,0x0E,0x01,0x23, + 0xB4,0xA8,0xFF,0xF7,0xC1,0xFA,0x02,0xE0,0x40,0x1C,0x0D,0x28,0xE9,0xDB,0xE0,0x7A, + 0x00,0x28,0x0E,0xD0,0x0A,0x20,0x70,0x43,0x0E,0x49,0x47,0x18,0x38,0x00,0xFF,0x30, + 0xD3,0x30,0x02,0xF0,0xD7,0xFB,0x00,0x28,0x03,0xD1,0x01,0x20,0xFF,0x37,0xC1,0x37, + 0xB8,0x74,0x76,0x1C,0xAE,0x42,0xCB,0xDD,0xBD,0x98,0x28,0x18,0x20,0x72,0x20,0x7A, + 0x05,0x49,0x82,0x22,0xA0,0x72,0xC8,0x1D,0xFD,0x30,0x04,0xF0,0x47,0xF9,0xE6,0xE5, + 0xD6,0x02,0x00,0x00,0x40,0x00,0x00,0x20,0x0C,0x02,0x00,0x20,0xF1,0xB5,0x38,0x48, + 0x86,0xB0,0x05,0x90,0x00,0x20,0x04,0x90,0x36,0x48,0x41,0x7F,0x01,0x91,0x01,0x00, + 0x20,0x39,0x49,0x7F,0x00,0x91,0x00,0x21,0x02,0x91,0x01,0x7D,0x00,0x20,0xC0,0x43, + 0x00,0x29,0x06,0x99,0x03,0xD1,0x00,0x29,0x03,0xD1,0x01,0x20,0x01,0xE0,0x00,0x29, + 0xFB,0xD1,0x03,0x90,0x01,0xF0,0x2E,0xF9,0x01,0xF0,0x04,0xFA,0x00,0x24,0x27,0x00, + 0x00,0x26,0x31,0x00,0x38,0x00,0x02,0xF0,0xA1,0xF8,0x00,0x28,0x28,0xD0,0x0E,0x21, + 0x79,0x43,0x05,0x9A,0x89,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x0D,0x1A, + 0x06,0x98,0x00,0x28,0x0D,0xD0,0x00,0x2D,0x1A,0xDA,0x03,0x9A,0x31,0x00,0x38,0x00, + 0x05,0xF0,0x12,0xFE,0x40,0x1C,0x14,0xD1,0x00,0x98,0x28,0x18,0x10,0xD5,0x02,0x20, + 0x0D,0xE0,0x00,0x2D,0x0C,0xDD,0x03,0x9A,0x31,0x00,0x38,0x00,0x05,0xF0,0x04,0xFE, + 0x40,0x1C,0x06,0xD1,0x01,0x98,0x28,0x1A,0x00,0x28,0x01,0xDD,0x03,0x20,0x04,0x90, + 0x64,0x1C,0x76,0x1C,0x0E,0x2E,0xCC,0xD3,0x7F,0x1C,0x15,0x2F,0xC8,0xD3,0x20,0x00, + 0xFF,0x38,0x27,0x38,0x04,0xD1,0x04,0x98,0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x02,0x98,0x41,0x1C,0x02,0x91,0x01,0x21,0x49,0x02,0x88,0x42,0xB2,0xD9,0x06,0x98, + 0x00,0x28,0x01,0xD0,0x02,0x20,0x00,0xE0,0x03,0x20,0x04,0x90,0xEC,0xE7,0x00,0x00, + 0xD4,0x02,0x10,0x40,0x20,0x93,0x00,0x00,0xF0,0xB5,0x7B,0x4A,0xFF,0xB0,0xBC,0xB0, + 0x40,0x18,0xB9,0x92,0x42,0x00,0x80,0x18,0xB8,0x90,0x48,0x42,0xB7,0x90,0x77,0x48, + 0x77,0x4E,0x07,0x7F,0x02,0xA8,0x01,0x90,0x76,0x48,0xBA,0x90,0x00,0x7D,0x00,0x28, + 0x02,0xD1,0xB7,0x98,0x40,0x42,0xB7,0x90,0x73,0x4A,0x00,0x21,0x30,0x00,0x04,0xF0, + 0xF1,0xF8,0x00,0x25,0x00,0x24,0x6F,0x48,0x20,0x38,0x01,0x7D,0xC9,0x07,0x14,0xD0, + 0x6E,0x49,0x09,0x78,0x00,0x29,0x16,0xD0,0xBD,0x42,0x0E,0xD1,0x81,0x7D,0xA1,0x42, + 0x0B,0xD0,0xC1,0x7D,0xA1,0x42,0x08,0xD0,0x01,0x7E,0xA1,0x42,0x05,0xD0,0x41,0x7E, + 0xA1,0x42,0x02,0xD0,0x80,0x7E,0xA0,0x42,0x16,0xD1,0xB7,0x9A,0x21,0x00,0x28,0x00, + 0x05,0xF0,0x9A,0xFD,0x10,0xE0,0xBC,0x42,0xF7,0xD1,0x81,0x7D,0xA9,0x42,0xF4,0xD0, + 0xC1,0x7D,0xA9,0x42,0xF1,0xD0,0x01,0x7E,0xA9,0x42,0xEE,0xD0,0x41,0x7E,0xA9,0x42, + 0xEB,0xD0,0x80,0x7E,0xA8,0x42,0xE8,0xD0,0x64,0x1C,0x0E,0x2C,0xCB,0xD3,0x6D,0x1C, + 0x15,0x2D,0xC7,0xD3,0x01,0xF0,0x7E,0xF8,0x01,0xF0,0x54,0xF9,0x00,0x25,0x00,0x24, + 0x0E,0x20,0x2F,0x00,0x47,0x43,0x21,0x00,0x28,0x00,0x01,0xF0,0xEF,0xFF,0x00,0x28, + 0x0F,0xD0,0xB9,0x9B,0x3A,0x19,0x91,0x00,0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D, + 0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0,0x40,0x1A,0x51,0x00, + 0x70,0x52,0x21,0x00,0x28,0x00,0x02,0xF0,0x19,0xF8,0x39,0x19,0x01,0x9A,0x49,0x00, + 0x64,0x1C,0x0E,0x2C,0x50,0x52,0xDE,0xD3,0x6D,0x1C,0x15,0x2D,0xD7,0xD3,0x00,0x20, + 0x00,0x90,0x01,0xF0,0x27,0xF9,0x00,0x25,0x00,0x24,0x21,0x00,0x28,0x00,0x01,0xF0, + 0xC5,0xFF,0x00,0x28,0x3E,0xD0,0x0E,0x21,0x69,0x43,0xB9,0x9B,0x0A,0x19,0x91,0x00, + 0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D,0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD, + 0x08,0x1A,0x00,0xE0,0x40,0x1A,0x57,0x00,0xF1,0x5B,0x00,0x04,0x00,0x0C,0x81,0x42, + 0x06,0xD9,0xF0,0x53,0x21,0x00,0x28,0x00,0x01,0xF0,0xE8,0xFF,0x01,0x99,0xC8,0x53, + 0x00,0x98,0x03,0x21,0xFF,0xF7,0xAC,0xF8,0x00,0x29,0x01,0xD0,0x02,0x29,0x0D,0xD1, + 0xBA,0x98,0x00,0x7D,0x00,0x28,0x02,0xD1,0x00,0x22,0x43,0x1E,0x01,0xE0,0x01,0x22, + 0x00,0x23,0x21,0x00,0x28,0x00,0x05,0xF0,0xEF,0xFC,0x0B,0xE0,0x00,0x22,0xD2,0x43, + 0x00,0x23,0x21,0x00,0x28,0x00,0x05,0xF0,0xE7,0xFC,0x00,0x28,0x02,0xD1,0x00,0x22, + 0x01,0x23,0xEE,0xE7,0x64,0x1C,0x0E,0x2C,0xB7,0xD3,0x6D,0x1C,0x15,0x2D,0xB3,0xD3, + 0x00,0x98,0x40,0x1C,0x00,0x90,0xB8,0x98,0x40,0x1E,0xB8,0x90,0x18,0xD2,0x00,0x25, + 0x00,0x24,0x0E,0x20,0x2E,0x00,0x46,0x43,0x01,0x99,0x30,0x19,0x40,0x00,0x0A,0x5A, + 0x21,0x00,0x28,0x00,0x05,0xF0,0xE4,0xFC,0x64,0x1C,0x0E,0x2C,0xF4,0xD3,0x6D,0x1C, + 0x15,0x2D,0xED,0xD3,0x7F,0xB0,0x3C,0xB0,0xF0,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47, + 0x00,0xF0,0xE0,0xFF,0x8D,0xE7,0x00,0x00,0xD4,0x02,0x10,0x40,0x60,0x06,0x00,0x20, + 0x00,0x00,0x00,0x10,0x20,0x93,0x00,0x00,0xD2,0x02,0x00,0x00,0x18,0x07,0x00,0x20, + 0xF8,0xB5,0x01,0x22,0x52,0x07,0x10,0x68,0x01,0x28,0x03,0xD0,0x10,0x68,0x01,0x28, + 0x43,0xD9,0x02,0x20,0x86,0x46,0x22,0x48,0x00,0x90,0x80,0x79,0x00,0x28,0x3C,0xD0, + 0x00,0x21,0x0D,0x25,0x1F,0x4F,0xED,0x01,0x32,0xE0,0x72,0x46,0x8A,0x18,0x92,0x00, + 0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x28,0xD1,0x00,0x9C,0x93,0x00, + 0xA6,0x79,0x1B,0x0F,0x21,0xE0,0x84,0x00,0xE4,0x19,0x64,0x19,0xA4,0x68,0xA4,0x00, + 0x24,0x0F,0xA3,0x42,0x18,0xD1,0x80,0x00,0xC0,0x19,0x40,0x19,0x80,0x68,0x92,0x0A, + 0x83,0x05,0x92,0x02,0x9B,0x0D,0x1A,0x43,0x0F,0x4B,0x1A,0x40,0x83,0x01,0x9B,0x0D, + 0x1B,0x04,0x1A,0x43,0x3F,0x23,0x9B,0x02,0x00,0x04,0x80,0x0E,0x9A,0x43,0x80,0x02, + 0x02,0x43,0x60,0x46,0x02,0x60,0x02,0xE0,0x40,0x1C,0x86,0x42,0xDB,0xD8,0x49,0x1C, + 0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42,0xC7,0xD8,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0xC0,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0xFF,0x00,0xFC,0xFC,0xB5,0x04,0x00, + 0x60,0x48,0x8E,0x46,0x02,0x8C,0x60,0x49,0x40,0x8C,0x01,0x91,0x4B,0x8B,0x20,0x39, + 0x00,0x91,0x89,0x7B,0x00,0x25,0x2F,0x00,0xC9,0x07,0x01,0x26,0x00,0x29,0xAC,0x46, + 0x01,0xD1,0xE6,0x71,0xAA,0xE0,0x01,0x99,0x09,0x7E,0x00,0x29,0x0D,0xD0,0x01,0x29, + 0x0F,0xD0,0x02,0x29,0x07,0xD0,0x03,0x29,0xF4,0xD1,0x17,0x00,0xD1,0x18,0x0A,0x04, + 0x12,0x0C,0x03,0x00,0x05,0xE0,0x1A,0x00,0xFB,0xE7,0x84,0x46,0xC0,0x18,0x03,0x04, + 0x1B,0x0C,0x60,0x88,0xA1,0x88,0x87,0x42,0x5C,0xDC,0x82,0x42,0x5A,0xDB,0x8C,0x45, + 0x58,0xDC,0x8B,0x42,0x56,0xDB,0x01,0x25,0x72,0x46,0x00,0x2A,0x7B,0xD0,0x06,0x27, + 0x01,0x2A,0x0E,0xD0,0x02,0x2A,0x18,0xD0,0x03,0x2A,0x76,0xD1,0xE2,0x79,0xD3,0x07, + 0x2D,0xD0,0x01,0x2A,0x01,0xD0,0x05,0x2A,0x27,0xD1,0x09,0x20,0x00,0x25,0xE0,0x71, + 0x6B,0xE0,0x00,0x9A,0x92,0x7A,0x00,0x2A,0x67,0xD1,0x00,0xF0,0x9D,0xF8,0x06,0x00, + 0x0F,0xD1,0x02,0x20,0xE0,0x71,0x26,0x72,0x5F,0xE0,0xE2,0x79,0xD3,0x07,0xE8,0xD1, + 0x92,0x07,0x5A,0xD5,0x00,0xF0,0x90,0xF8,0x06,0x00,0x08,0xD0,0x20,0x7A,0x00,0x28, + 0x05,0xD1,0x31,0x00,0x20,0x00,0xE7,0x71,0xFF,0xF7,0x24,0xF8,0xEB,0xE7,0x31,0x00, + 0x20,0x00,0xE7,0x71,0xFF,0xF7,0x1E,0xF8,0x47,0xE0,0x11,0x20,0x44,0xE0,0x92,0x07, + 0x43,0xD5,0x00,0xF0,0x79,0xF8,0x21,0x7A,0x00,0x28,0x0A,0xD0,0x00,0x29,0x0C,0xD0, + 0x81,0x42,0x08,0xD1,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFF,0xF7,0x0B,0xF8,0xA6,0x71, + 0x05,0xE0,0x00,0x29,0x01,0xD0,0x12,0x20,0xF5,0xE7,0x02,0x20,0xE0,0x71,0x00,0x20, + 0x20,0x72,0x2A,0xE0,0x70,0x46,0x00,0x28,0x25,0xD0,0x01,0x28,0x06,0xD0,0x02,0x28, + 0x06,0xD0,0x03,0x28,0x21,0xD1,0xE0,0x79,0x80,0x07,0x0E,0xD4,0xE6,0x71,0x1C,0xE0, + 0xE0,0x79,0x80,0x07,0xFA,0xD5,0x21,0x7A,0x00,0x29,0x04,0xD0,0x12,0x20,0xE0,0x71, + 0x20,0x00,0xFE,0xF7,0xE7,0xFF,0xE6,0x71,0x09,0xE0,0x02,0x20,0xE0,0x71,0x21,0x7A, + 0x00,0x29,0x04,0xD0,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0xDB,0xFF,0x01,0x25, + 0xA6,0x71,0x02,0xE0,0xFF,0xE7,0x00,0x20,0xE0,0x71,0x08,0x49,0xC8,0x88,0x82,0x07, + 0x04,0xD1,0xE2,0x79,0x92,0x07,0x92,0x0F,0x10,0x43,0xC8,0x80,0x28,0x00,0xFC,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00,0x60,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0x03,0x48,0xC0,0x68,0x40,0x07,0x01,0xD5,0x01,0x20,0x70,0x47,0x00,0x20,0x70,0x47, + 0x00,0x90,0x00,0x40,0x06,0x48,0x40,0x8B,0x00,0x28,0x06,0xD0,0x05,0x48,0xC0,0x88, + 0x00,0x06,0x80,0x0F,0x01,0xD0,0x00,0x20,0x70,0x47,0x01,0x20,0x70,0x47,0x00,0x00, + 0xA0,0x93,0x00,0x00,0x40,0x00,0x00,0x20,0x02,0x48,0xC0,0x68,0xC0,0x07,0x00,0xD0, + 0x01,0x20,0x70,0x47,0x00,0x90,0x00,0x40,0xF0,0xB4,0x16,0x4B,0x04,0x00,0xDE,0x7B, + 0x00,0x22,0x10,0x00,0x00,0x2E,0x23,0xD0,0x1B,0x7A,0x00,0x2B,0x20,0xD1,0x12,0x4F, + 0x1C,0xE0,0xD3,0x00,0xDD,0x19,0x03,0x23,0x5B,0x02,0xEB,0x18,0x10,0x25,0x5D,0x5F, + 0xA5,0x42,0x0E,0xDC,0x14,0x25,0x5D,0x5F,0xA5,0x42,0x0A,0xDB,0x12,0x25,0x5D,0x5F, + 0x8D,0x42,0x06,0xDC,0x16,0x25,0x5D,0x5F,0x8D,0x42,0x02,0xDB,0x50,0x1C,0x00,0x06, + 0x00,0x0E,0x00,0x28,0x04,0xD1,0x52,0x1C,0x12,0x06,0x12,0x0E,0x96,0x42,0xE0,0xD8, + 0xF0,0xBC,0x70,0x47,0x40,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB5,0x00,0x20, + 0x8D,0xB0,0xBB,0x4E,0x0A,0x90,0x09,0x90,0x30,0x68,0x01,0x88,0x08,0x91,0x01,0x00, + 0x40,0x31,0xCA,0x7F,0x60,0x30,0x07,0x92,0x8A,0x7F,0x06,0x92,0x40,0x78,0x05,0x90, + 0x88,0x7D,0x04,0x90,0xB3,0x48,0xC1,0x88,0x00,0x79,0x0A,0x07,0x05,0xD5,0xB1,0x4A, + 0x00,0x28,0x02,0xD1,0x08,0x23,0x99,0x43,0xD1,0x80,0xAF,0x4D,0x00,0x21,0x69,0x5E, + 0xFF,0x22,0x01,0x32,0x28,0x29,0x03,0xDD,0x02,0x21,0x69,0x5E,0x1E,0x29,0x03,0xDC, + 0x04,0x21,0x69,0x5E,0x28,0x29,0x05,0xDD,0xA6,0x49,0xCB,0x88,0x13,0x43,0xCB,0x80, + 0x00,0x21,0x04,0xE0,0x06,0x21,0x69,0x5E,0x00,0x29,0x02,0xD0,0x49,0x1E,0xE9,0x80, + 0x03,0xE0,0xA0,0x4B,0xD9,0x88,0x91,0x43,0xD9,0x80,0x08,0x99,0x89,0x04,0x7E,0xD5, + 0x6A,0x7A,0x00,0x21,0x00,0x2A,0x02,0xD1,0x00,0x28,0x00,0xD1,0x01,0x21,0x01,0x91, + 0x00,0xF0,0x40,0xF9,0x97,0x48,0x99,0x4C,0x00,0x79,0x01,0x28,0x0C,0x90,0x4D,0xD1, + 0x94,0x49,0x09,0x89,0x0B,0x91,0x35,0x68,0x40,0x35,0x6A,0x8B,0x91,0x42,0x00,0xD3, + 0x00,0x20,0x03,0x90,0x0B,0x98,0x0A,0x22,0x02,0x21,0x50,0x43,0x61,0x5E,0x0F,0x00, + 0xFE,0xF7,0x4E,0xFD,0x29,0x7C,0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20, + 0x02,0x90,0x0B,0x98,0x0A,0x21,0xC0,0x1B,0xFE,0xF7,0x42,0xFD,0x69,0x7C,0x88,0x42, + 0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x07,0x00,0x84,0x48,0xAB,0x7C,0x20,0x38, + 0x80,0x8B,0x01,0x21,0x98,0x42,0x00,0xD8,0x00,0x21,0xEB,0x7C,0x62,0x68,0x01,0x20, + 0x9A,0x42,0x00,0xDB,0x00,0x20,0x03,0x9A,0x00,0x2A,0x2A,0xD0,0x02,0x9A,0x00,0x2A, + 0x27,0xD0,0x00,0x2F,0x25,0xD0,0x00,0x29,0x23,0xD0,0x76,0x4A,0x01,0x21,0xC0,0x32, + 0xD2,0x6A,0x00,0x2A,0x00,0xD0,0x00,0x21,0x01,0x42,0x1A,0xD0,0x60,0x78,0x00,0x28, + 0x2F,0xD0,0x69,0x7E,0x88,0x42,0x2C,0xD8,0x40,0x1E,0x29,0xE0,0x01,0x28,0x10,0xD9, + 0x68,0x7A,0x01,0x28,0x0D,0xD9,0x31,0x68,0x60,0x78,0x40,0x31,0xC9,0x7D,0x88,0x42, + 0x01,0xD2,0x40,0x1C,0x60,0x70,0x60,0x78,0x00,0x28,0x02,0xD0,0x20,0x78,0x40,0x1E, + 0x20,0x70,0x31,0x68,0x60,0x68,0x40,0x31,0x0A,0x7D,0x90,0x42,0x11,0xDB,0x0C,0x9A, + 0x60,0x48,0x00,0x2A,0x0D,0xD0,0xC0,0x88,0xC0,0x06,0x0A,0xD4,0x00,0xE0,0x25,0xE0, + 0x60,0x78,0xC9,0x7D,0x88,0x42,0x04,0xD2,0x04,0x99,0x88,0x42,0x01,0xD9,0x40,0x1C, + 0x60,0x70,0x60,0x78,0x04,0x99,0x10,0x23,0x88,0x42,0x0A,0xD8,0x01,0x98,0x00,0x28, + 0x07,0xD1,0x54,0x49,0xC8,0x88,0x18,0x43,0xC8,0x80,0x30,0x68,0x40,0x30,0x00,0x7E, + 0x0E,0xE0,0x50,0x4A,0xD1,0x88,0xC8,0x06,0x0B,0xD5,0x20,0x78,0x00,0x28,0x06,0xD1, + 0x99,0x43,0xD1,0x80,0x30,0x68,0x40,0x30,0x40,0x7D,0x60,0x70,0x01,0xE0,0x40,0x1E, + 0x20,0x70,0x48,0x4F,0x38,0x79,0x00,0x28,0x7E,0xD0,0xF8,0x88,0x80,0x06,0x05,0xD5, + 0x05,0x99,0x06,0x98,0x40,0x1A,0x00,0x06,0x00,0x0E,0x06,0x90,0x01,0x22,0x50,0x00, + 0xC0,0x19,0x84,0x46,0xFF,0x30,0xA1,0x30,0xC0,0x88,0x00,0x28,0x68,0xD0,0x07,0x99, + 0x88,0x42,0x09,0xD9,0x08,0x98,0x80,0x07,0x62,0xD5,0x00,0x20,0x38,0x71,0xF8,0x88, + 0x08,0x21,0x08,0x43,0xF8,0x80,0x5B,0xE0,0x06,0x99,0x88,0x42,0x58,0xD3,0x08,0x98, + 0x40,0x07,0x55,0xD5,0x00,0x23,0x01,0x20,0x29,0xE0,0xFF,0x24,0x39,0x18,0x9A,0x34, + 0x64,0x5C,0x94,0x42,0x22,0xD1,0x5B,0x1C,0xFF,0x31,0x41,0x31,0x09,0x7E,0x0A,0x91, + 0x01,0x00,0x14,0xE0,0x4C,0x00,0xE4,0x19,0x25,0x00,0xE0,0x35,0xEE,0x8A,0xFF,0x34, + 0x01,0x34,0xAE,0x82,0x26,0x8A,0xE6,0x81,0x7C,0x18,0x25,0x00,0xFF,0x35,0x41,0x35, + 0x6E,0x7E,0xFF,0x34,0x81,0x34,0x2E,0x76,0xA6,0x7E,0x49,0x1C,0x66,0x76,0x3C,0x79, + 0x8C,0x42,0xE7,0xDA,0x39,0x79,0x49,0x1E,0x40,0x1E,0x39,0x71,0x40,0x1C,0x39,0x79, + 0x81,0x42,0xD2,0xDA,0x00,0x2B,0x23,0xDD,0x01,0x2B,0x05,0xDD,0x01,0x20,0x09,0x90, + 0xF8,0x88,0x20,0x21,0x08,0x43,0xF8,0x80,0x60,0x46,0xFF,0x30,0x61,0x30,0x41,0x89, + 0x38,0x79,0x40,0x1C,0x00,0x06,0x00,0x0E,0x38,0x71,0x40,0x00,0xC0,0x19,0xE0,0x30, + 0x81,0x82,0x60,0x46,0xFF,0x30,0x81,0x30,0x41,0x88,0x38,0x79,0x40,0x00,0xC0,0x19, + 0xFF,0x30,0x01,0x30,0xC1,0x81,0x3B,0x79,0x0B,0x49,0x0A,0x98,0x68,0x39,0x58,0x54, + 0x52,0x1C,0x0C,0x2A,0x8B,0xDB,0x00,0xE0,0x06,0xE0,0x09,0x98,0x00,0x28,0x03,0xD1, + 0xF8,0x88,0x20,0x21,0x88,0x43,0xF8,0x80,0x0D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0xCC,0x07,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x02,0x00,0x20,0x40,0x06,0x00,0x20, + 0x03,0x48,0xC0,0x68,0x00,0x03,0x01,0xD5,0x01,0x20,0x70,0x47,0x00,0x20,0x70,0x47, + 0x00,0x90,0x00,0x40,0xF0,0xB5,0x59,0x48,0xB7,0xB0,0x00,0x68,0x00,0x21,0x60,0x30, + 0x45,0x79,0x07,0x79,0x56,0x48,0x31,0x95,0x36,0x90,0x41,0x80,0x36,0x98,0x41,0x60, + 0x30,0x91,0x60,0x21,0x18,0xA8,0x03,0xF0,0x9F,0xFC,0x60,0x21,0x68,0x46,0x03,0xF0, + 0x9B,0xFC,0x31,0x9D,0x0E,0x21,0x48,0x1B,0x33,0x90,0x58,0xE0,0x15,0x21,0xC9,0x1B, + 0x35,0x91,0x31,0x99,0x38,0x00,0x69,0x1A,0x8C,0x00,0x17,0xE0,0x49,0x4A,0x6B,0x00, + 0x9E,0x18,0xB8,0x23,0xF3,0x5E,0x0E,0x21,0x46,0x00,0x41,0x43,0xB2,0x18,0x88,0x26, + 0x96,0x5F,0x49,0x19,0x09,0x04,0x9A,0x19,0x43,0x4B,0x09,0x14,0x49,0x00,0x59,0x5E, + 0x51,0x18,0x18,0xAA,0x13,0x59,0x59,0x18,0x40,0x1C,0x11,0x51,0x35,0x99,0x81,0x42, + 0xE4,0xDC,0x78,0x00,0x15,0x21,0x09,0x1A,0x18,0xAE,0x34,0x90,0x30,0x59,0xFE,0xF7, + 0xDF,0xFB,0x30,0x51,0x3E,0x00,0x84,0x46,0x19,0xE0,0x0E,0x20,0x70,0x43,0x36,0x49, + 0x40,0x19,0x40,0x00,0x09,0x5E,0x60,0x46,0x6A,0x00,0x09,0x1A,0x31,0x48,0x13,0x18, + 0xB8,0x22,0x9A,0x5E,0x73,0x00,0x1B,0x18,0x88,0x20,0x18,0x5E,0x10,0x18,0x09,0x18, + 0x0B,0x00,0x4B,0x43,0x68,0x46,0x02,0x59,0xD1,0x18,0x76,0x1C,0x01,0x51,0x35,0x98, + 0xB0,0x42,0xE2,0xDC,0x34,0x98,0x14,0x21,0x09,0x1A,0x6E,0x46,0x30,0x59,0xFE,0xF7, + 0xB7,0xFB,0x30,0x51,0x30,0x99,0x40,0x18,0x30,0x90,0x33,0x98,0x6D,0x1C,0xA8,0x42, + 0xA4,0xDC,0x79,0x00,0x15,0x20,0x41,0x1A,0x31,0x98,0x0E,0x22,0x40,0x00,0x14,0x1A, + 0x61,0x43,0x32,0x90,0x30,0x98,0xFE,0xF7,0xA3,0xFB,0x05,0x04,0x36,0x98,0x2D,0x14, + 0x45,0x80,0x30,0x98,0x21,0x00,0xFE,0xF7,0x9B,0xFB,0x00,0x21,0x6B,0x46,0x0A,0xE0, + 0x8A,0x00,0x9A,0x58,0x82,0x1A,0x16,0x00,0x56,0x43,0x36,0x9A,0x52,0x68,0xB2,0x18, + 0x36,0x9E,0x49,0x1C,0x72,0x60,0x8C,0x42,0xF2,0xDC,0x32,0x98,0x0D,0x21,0x09,0x1A, + 0x36,0x98,0x40,0x68,0xFE,0xF7,0x84,0xFB,0x15,0x22,0x33,0x99,0xD2,0x1B,0x92,0x02, + 0x51,0x43,0xFE,0xF7,0x7D,0xFB,0x36,0x99,0x00,0x2D,0x48,0x60,0x02,0xD1,0x36,0x98, + 0x6D,0x1C,0x45,0x80,0x37,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xCC,0x07,0x00,0x20, + 0x40,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10,0xF8,0xB5,0x5E,0x4D, + 0x28,0x7A,0x00,0x28,0x06,0xD0,0x28,0x6B,0x00,0x04,0x00,0x0C,0x05,0xF0,0x5E,0xFC, + 0x05,0xF0,0x4C,0xFC,0x04,0xF0,0x8E,0xFA,0x04,0xF0,0x82,0xFF,0x57,0x4E,0x01,0x27, + 0x9D,0xE0,0x57,0x48,0x41,0x68,0x09,0x07,0x0D,0xD5,0xC1,0x68,0x00,0x29,0x0A,0xD0, + 0xC0,0x68,0x07,0x28,0x05,0xD1,0x52,0x48,0xC0,0x68,0x01,0x21,0x49,0x07,0xC8,0x63, + 0x91,0xE0,0x04,0xF0,0xB3,0xFB,0x28,0x7A,0x00,0x28,0x04,0xD0,0x28,0x6B,0x00,0x04, + 0x00,0x0C,0x05,0xF0,0x3B,0xFC,0xFF,0x20,0x81,0x30,0xFE,0xF7,0xAD,0xFF,0x03,0x20, + 0x05,0xF0,0xA4,0xFA,0x47,0x4C,0xE0,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0, + 0x40,0x06,0x01,0xD5,0x04,0x20,0x00,0xE0,0x02,0x20,0x05,0xF0,0x5F,0xF9,0x00,0xF0, + 0x1F,0xFC,0x04,0xF0,0x63,0xFF,0x05,0xF0,0x47,0xF9,0x00,0xF0,0xCB,0xFB,0x00,0xF0, + 0xA1,0xFC,0x68,0x7B,0x00,0x28,0x04,0xD1,0x30,0x7B,0x00,0x28,0x01,0xD0,0x04,0xF0, + 0x55,0xFA,0x03,0xF0,0x07,0xFC,0x00,0x28,0x00,0xD0,0x2F,0x70,0x28,0x78,0x00,0x28, + 0x04,0xD1,0x00,0x22,0x11,0x00,0x10,0x00,0x00,0xF0,0x90,0xF9,0x28,0x78,0x00,0x28, + 0x05,0xD0,0x68,0x7B,0x00,0x09,0x04,0x28,0x4D,0xD1,0x00,0x20,0x28,0x70,0x03,0x20, + 0x05,0xF0,0x46,0xFA,0xE8,0x62,0x03,0x20,0x05,0xF0,0x74,0xFA,0xFF,0x20,0x81,0x30, + 0xFE,0xF7,0x62,0xFF,0xE0,0x8B,0x00,0x28,0x02,0xD0,0x40,0x1E,0xE0,0x83,0x36,0xE0, + 0xFF,0xF7,0xF0,0xFC,0x00,0x28,0x32,0xD0,0x68,0x79,0x00,0x28,0x2F,0xD1,0x6C,0x6A, + 0x00,0x2C,0x2C,0xD0,0xE8,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x1E,0x49,0xFE,0xF7, + 0x0F,0xFC,0x24,0x1A,0x14,0x2C,0x22,0xDD,0x04,0xF0,0x00,0xFA,0x20,0x00,0x05,0xF0, + 0xE3,0xFB,0x05,0xF0,0xE7,0xFB,0xA8,0x79,0x00,0x28,0x0D,0xD0,0x04,0xF0,0xD4,0xF9, + 0x04,0xF0,0xD7,0xF9,0x04,0xF0,0xDF,0xF9,0x14,0x4C,0x67,0x60,0x01,0x20,0xFE,0xF7, + 0x43,0xFF,0x13,0x48,0x60,0x60,0x03,0xE0,0x12,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0, + 0x05,0xF0,0xD7,0xFB,0x0F,0x48,0x00,0x21,0x01,0x70,0x04,0xF0,0xEB,0xF9,0x28,0x78, + 0x00,0x28,0x00,0xD1,0x5D,0xE7,0x28,0x7A,0x00,0x28,0x01,0xD0,0x05,0xF0,0xA6,0xFB, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x14,0x07,0x00,0x20,0x80,0x93,0x00,0x00, + 0x00,0x40,0x00,0x30,0x40,0x00,0x00,0x20,0x10,0x27,0x00,0x00,0x00,0x30,0x00,0x40, + 0xE1,0x04,0x00,0x00,0xD0,0x07,0x00,0x20,0x10,0xB4,0x0F,0x4B,0x00,0x22,0xD2,0x43, + 0x81,0x00,0x5A,0x52,0xCB,0x18,0x5A,0x80,0x0B,0x4B,0x0B,0x4C,0x34,0x33,0x5A,0x52, + 0xCB,0x18,0x5A,0x80,0x00,0x23,0x42,0x00,0x28,0x3C,0xA3,0x52,0x22,0x00,0x1A,0x32, + 0x13,0x54,0x18,0x00,0x76,0x32,0x8A,0x18,0x81,0x00,0x53,0x52,0x51,0x18,0x40,0x1E, + 0x4B,0x80,0xF9,0xD5,0x10,0xBC,0x70,0x47,0xCC,0x0A,0x00,0x20,0x10,0xB5,0x0C,0x48, + 0x0D,0x22,0x00,0x21,0x03,0xF0,0x46,0xFB,0x0A,0x48,0x82,0x22,0x00,0x21,0x03,0xF0, + 0x41,0xFB,0x08,0x48,0x00,0x24,0x0C,0x38,0x04,0x72,0x07,0x48,0x28,0x22,0x21,0x00, + 0x03,0xF0,0x38,0xFB,0x04,0x48,0x42,0x38,0x44,0x72,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x9F,0x03,0x00,0x20,0x0C,0x02,0x00,0x20,0x82,0x06,0x00,0x20,0x10,0xB5,0x17,0x48, + 0x1A,0x22,0x00,0x21,0x03,0xF0,0x26,0xFB,0x14,0x48,0x1A,0x22,0x00,0x21,0x1A,0x30, + 0x03,0xF0,0x20,0xFB,0x11,0x48,0x0D,0x22,0x00,0x21,0x64,0x30,0x03,0xF0,0x1A,0xFB, + 0x0E,0x48,0x30,0x22,0x00,0x21,0x34,0x30,0x03,0xF0,0x14,0xFB,0x0B,0x48,0x18,0x22, + 0x00,0x21,0x76,0x30,0x03,0xF0,0x0E,0xFB,0x08,0x48,0x18,0x22,0x00,0x21,0x8E,0x30, + 0x03,0xF0,0x08,0xFB,0x05,0x49,0x00,0x20,0xAC,0x31,0xC8,0x83,0xFF,0x39,0xA1,0x39, + 0x08,0x71,0x88,0x83,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x34,0x01,0x00,0x20, + 0xF0,0xB4,0x1E,0x49,0x1E,0x4E,0x09,0x68,0x00,0x24,0x60,0x31,0x8F,0x7F,0x08,0x21, + 0x42,0x00,0x18,0x23,0x4B,0x43,0x9B,0x19,0x1D,0x25,0x9B,0x18,0x6D,0x01,0x5D,0x19, + 0x6C,0x80,0x23,0x25,0x6D,0x01,0x5B,0x19,0x49,0x1E,0x5C,0x83,0xF1,0xD5,0x07,0x25, + 0x31,0x18,0xED,0x01,0x01,0x23,0x4D,0x19,0xAB,0x75,0x15,0x25,0x93,0x19,0xAD,0x01, + 0x5B,0x19,0x5C,0x82,0x2B,0x23,0x5B,0x01,0xC9,0x18,0x8F,0x72,0x8C,0x75,0x02,0x21, + 0x0B,0x23,0xDB,0x01,0x18,0x25,0x4D,0x43,0xAD,0x19,0xAD,0x18,0xED,0x18,0x49,0x1E, + 0x6C,0x80,0xF7,0xD5,0x80,0x00,0x82,0x19,0x00,0x21,0x17,0x20,0xC9,0x43,0x80,0x01, + 0x10,0x18,0x41,0x81,0x81,0x81,0xF0,0xBC,0x70,0x47,0x00,0x00,0xCC,0x07,0x00,0x20, + 0x40,0x00,0x00,0x20,0x10,0xB5,0x06,0x48,0x1C,0x22,0x00,0x21,0x03,0xF0,0xB2,0xFA, + 0x04,0x48,0x00,0x21,0x81,0x74,0x41,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xBA,0x03,0x00,0x20,0x20,0x01,0x00,0x20,0x10,0xB5,0x05,0xF0,0x79,0xF9,0x04,0xF0, + 0x83,0xF9,0xFF,0xF7,0x53,0xFF,0x04,0xF0,0x8F,0xFA,0x01,0xF0,0xA7,0xFD,0x01,0xF0, + 0x1F,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46,0x20,0x30,0x9F,0xE5, + 0x20,0x20,0x9F,0xE5,0x25,0x00,0xA0,0xE3,0x01,0x0C,0x80,0xE2,0x00,0x11,0x93,0xE7, + 0x80,0xC0,0x82,0xE0,0x01,0x00,0x50,0xE2,0xB0,0x10,0xCC,0xE1,0xFA,0xFF,0xFF,0x5A, + 0x1E,0xFF,0x2F,0xE1,0x00,0x10,0x10,0x40,0xD2,0x07,0x00,0x20,0x78,0x47,0xC0,0x46, + 0x20,0x30,0x9F,0xE5,0x20,0x20,0x9F,0xE5,0x25,0x00,0xA0,0xE3,0x01,0x0C,0x80,0xE2, + 0x00,0x11,0x93,0xE7,0x80,0xC0,0x82,0xE0,0x01,0x00,0x50,0xE2,0xB0,0x10,0xCC,0xE1, + 0xFA,0xFF,0xFF,0x5A,0x1E,0xFF,0x2F,0xE1,0xD4,0x02,0x10,0x40,0x00,0x00,0x00,0x10, + 0x09,0x4B,0x10,0xB4,0x1B,0x68,0x80,0x33,0x1B,0x7B,0x04,0x1E,0x00,0xDC,0x44,0x42, + 0x9C,0x42,0x06,0xDD,0x98,0x42,0x01,0xDD,0xC8,0x1A,0x00,0xE0,0xC8,0x18,0x02,0x04, + 0x12,0x0C,0x10,0xBC,0x10,0x00,0x70,0x47,0xCC,0x07,0x00,0x20,0xF7,0xB5,0x61,0x48, + 0xE6,0xB0,0x00,0x7D,0x00,0x28,0x03,0xD0,0x01,0x20,0x62,0x90,0x00,0x20,0x02,0xE0, + 0x00,0x20,0x62,0x90,0x01,0x20,0x61,0x90,0x5B,0x48,0x00,0x26,0x64,0x90,0x5B,0x48, + 0x35,0x00,0x01,0x8B,0x04,0x91,0x41,0x8B,0x03,0x91,0x81,0x8A,0x02,0x91,0xC1,0x8A, + 0x01,0x91,0x80,0x8B,0x60,0x90,0x56,0x48,0x00,0x7F,0x63,0x96,0x00,0x90,0x00,0x24, + 0x0E,0x20,0x68,0x43,0x65,0x90,0x07,0x19,0x21,0x00,0x28,0x00,0x01,0xF0,0x76,0xF9, + 0x4C,0x49,0x20,0x39,0x0A,0x7D,0xD2,0x07,0x2D,0xD0,0x4E,0x4A,0x12,0x79,0x00,0x2A, + 0x00,0x9A,0x11,0xD0,0x95,0x42,0x26,0xD1,0x8A,0x7D,0xA2,0x42,0x1D,0xD0,0xCA,0x7D, + 0xA2,0x42,0x1A,0xD0,0x0A,0x7E,0xA2,0x42,0x17,0xD0,0x4A,0x7E,0xA2,0x42,0x14,0xD0, + 0x89,0x7E,0xA1,0x42,0x42,0xD1,0x10,0xE0,0x94,0x42,0x14,0xD1,0x8A,0x7D,0xAA,0x42, + 0x0B,0xD0,0xCA,0x7D,0xAA,0x42,0x08,0xD0,0x0A,0x7E,0xAA,0x42,0x05,0xD0,0x4A,0x7E, + 0xAA,0x42,0x02,0xD0,0x89,0x7E,0xA9,0x42,0x30,0xD1,0x04,0x99,0x03,0x9A,0x41,0x18, + 0x09,0x04,0x09,0x0C,0x04,0xE0,0x02,0x99,0x01,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C, + 0x80,0x1A,0x64,0x9B,0x02,0x04,0xB8,0x00,0x18,0x58,0x67,0x9B,0x12,0x0C,0x00,0x2B, + 0x02,0xD0,0x00,0x05,0x00,0x0D,0x01,0xE0,0x00,0x01,0x00,0x0D,0x66,0x9B,0x05,0x2B, + 0x0E,0xD8,0x90,0x42,0x01,0xDA,0x62,0x9A,0x02,0xE0,0x88,0x42,0x0E,0xDD,0x61,0x9A, + 0x21,0x00,0x28,0x00,0x00,0xF0,0x7E,0xF8,0x05,0xA8,0x87,0x55,0x76,0x1C,0x05,0xE0, + 0x63,0x99,0x05,0xA8,0x47,0x54,0x63,0x98,0x40,0x1C,0x63,0x90,0x64,0x1C,0x0E,0x2C, + 0x01,0xDA,0x65,0x98,0x97,0xE7,0x6D,0x1C,0x15,0x2D,0x90,0xDB,0x66,0x98,0x05,0x28, + 0x03,0xD9,0x00,0x04,0x63,0x9E,0x00,0x0C,0x60,0x90,0x00,0x2E,0x25,0xDD,0x68,0x98, + 0x00,0x28,0x22,0xD1,0x00,0xF0,0x4A,0xF9,0x00,0xF0,0x84,0xF9,0x00,0xF0,0x5A,0xFA, + 0x76,0x1E,0x14,0xD4,0x14,0x4C,0x05,0xAB,0x98,0x5D,0x82,0x00,0x64,0x98,0x80,0x58, + 0x01,0x05,0x60,0x98,0x09,0x0D,0x08,0x18,0x00,0x04,0x00,0x0C,0xA0,0x42,0x00,0xD9, + 0x20,0x00,0x00,0x04,0x08,0x43,0x64,0x99,0x76,0x1E,0x88,0x50,0xEC,0xD5,0x00,0xF0, + 0x25,0xF9,0x00,0xF0,0x67,0xF9,0x00,0xF0,0x3D,0xFA,0x69,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x20,0x93,0x00,0x00,0xD4,0x02,0x10,0x40,0xE0,0x95,0x00,0x00, + 0x60,0x06,0x00,0x20,0x14,0x07,0x00,0x20,0xFF,0x0F,0x00,0x00,0xF0,0xB5,0x01,0x26, + 0x76,0x07,0x30,0x68,0x02,0x28,0x1D,0xD1,0xB4,0x68,0x20,0x02,0x27,0x05,0x05,0x0D, + 0x3F,0x0D,0x39,0x00,0x28,0x00,0x04,0xF0,0xD1,0xFA,0x41,0x1C,0x12,0xD0,0x0B,0x4A, + 0x80,0x00,0x83,0x18,0x5B,0x88,0x10,0x5A,0x21,0x0B,0xDB,0x19,0xDB,0x04,0x09,0x03, + 0x1B,0x0D,0x19,0x43,0x40,0x19,0x06,0x4B,0x40,0x08,0x00,0x05,0x19,0x40,0x00,0x0A, + 0x01,0x43,0xB1,0x60,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x44,0x79,0x00,0x00, + 0xFF,0x0F,0x00,0xFF,0x30,0xB4,0x0E,0x25,0x68,0x43,0x14,0x4C,0x40,0x18,0x45,0x00, + 0x60,0x5B,0x01,0x06,0x09,0x0E,0x00,0x0A,0x00,0x2B,0x07,0xD0,0x00,0x2A,0x02,0xD0, + 0xC9,0x18,0xC0,0x18,0x0F,0xE0,0xC0,0x1A,0xC9,0x1A,0x0C,0xE0,0x00,0x2A,0x05,0xD0, + 0x88,0x42,0x01,0xDD,0x49,0x1C,0x06,0xE0,0x40,0x1C,0x04,0xE0,0x88,0x42,0x01,0xDD, + 0x40,0x1E,0x00,0xE0,0x49,0x1E,0x4A,0x1E,0xFF,0x2A,0x05,0xD2,0x42,0x1E,0xFF,0x2A, + 0x02,0xD2,0x00,0x02,0x08,0x43,0x60,0x53,0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40, + 0xF0,0xB5,0x8B,0xB0,0x0E,0x27,0x15,0x20,0x04,0xA9,0x81,0xC1,0x06,0x90,0x53,0x48, + 0x53,0x49,0x0A,0x90,0x80,0x7B,0x09,0x91,0xC2,0x07,0x0A,0xD0,0x80,0x07,0x03,0xD5, + 0x0D,0x20,0x03,0x21,0x05,0x90,0x02,0xE0,0x14,0x20,0x00,0x21,0x04,0x90,0x09,0x98, + 0x01,0x76,0x4C,0x48,0x0A,0x22,0x01,0x8C,0x40,0x8C,0x51,0x43,0x50,0x43,0x00,0x04, + 0x00,0x0C,0x01,0x90,0x05,0x98,0x0E,0x04,0x36,0x0C,0x00,0x28,0x7E,0xD0,0x04,0x98, + 0x00,0x28,0x7F,0xD0,0x05,0x98,0x41,0x00,0x30,0x00,0xFE,0xF7,0x21,0xF8,0x05,0x04, + 0x2D,0x0C,0x00,0x24,0xBF,0x1C,0x0A,0xE0,0x30,0x00,0x60,0x43,0x05,0x99,0xFE,0xF7, + 0x17,0xF8,0x3D,0x4A,0x61,0x00,0x40,0x19,0x89,0x18,0x64,0x1C,0x08,0x84,0xBC,0x42, + 0xF2,0xDB,0x04,0x98,0x41,0x00,0x01,0x98,0xFE,0xF7,0x0A,0xF8,0x06,0x9F,0x06,0x04, + 0x36,0x0C,0x00,0x24,0xBF,0x1C,0x0B,0xE0,0x01,0x98,0x04,0x99,0x60,0x43,0xFD,0xF7, + 0xFF,0xFF,0x31,0x4A,0x81,0x19,0x60,0x00,0x80,0x18,0x40,0x30,0x64,0x1C,0x81,0x82, + 0xBC,0x42,0xF1,0xDB,0x0A,0x98,0x80,0x7B,0xC0,0x07,0x4B,0xD0,0x00,0x24,0x43,0xE0, + 0x29,0x4A,0x31,0x21,0x10,0x19,0x49,0x01,0x40,0x18,0x41,0x7F,0x0A,0x98,0x80,0x7B, + 0x80,0x07,0x03,0xD5,0x05,0x98,0x02,0x95,0x03,0x91,0x03,0xE0,0x08,0x00,0x04,0x99, + 0x02,0x96,0x03,0x91,0x20,0x49,0x40,0x00,0x40,0x18,0x08,0x90,0x00,0x8C,0x0A,0x21, + 0x40,0x1B,0xFD,0xF7,0xD5,0xFF,0x1C,0x4A,0xE1,0x00,0x89,0x18,0x03,0x22,0x52,0x02, + 0x8F,0x18,0x38,0x82,0x03,0x98,0x18,0x49,0x40,0x00,0x40,0x18,0x40,0x30,0x07,0x90, + 0x80,0x8A,0x0A,0x21,0x80,0x1B,0xFD,0xF7,0xC3,0xFF,0x78,0x82,0x08,0x98,0x0A,0x21, + 0x00,0x8C,0x40,0x19,0xFE,0xF7,0xEC,0xF8,0xB8,0x82,0x07,0x98,0x0A,0x21,0x80,0x8A, + 0x80,0x19,0xFE,0xF7,0xE5,0xF8,0xF8,0x82,0x02,0x98,0x0A,0x21,0x40,0x00,0xFE,0xF7, + 0xDF,0xF8,0x09,0x99,0x64,0x1C,0x48,0x83,0x0A,0x98,0x00,0xE0,0x02,0xE0,0xC0,0x7B, + 0xA0,0x42,0xB5,0xDC,0x0B,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x40,0x06,0x00,0x20, + 0x60,0x06,0x00,0x20,0x00,0x93,0x00,0x00,0x40,0x00,0x00,0x20,0x02,0x49,0x08,0x68, + 0x04,0x22,0x90,0x43,0x08,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68, + 0x04,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0xC1,0x68, + 0x49,0x08,0x49,0x00,0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68, + 0x01,0x22,0x11,0x43,0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0xFF,0x20,0x06,0x49, + 0x06,0x4A,0x6A,0x30,0x03,0xE0,0x0B,0x88,0x13,0x80,0x92,0x1C,0x09,0x1D,0x03,0x00, + 0x40,0x1E,0x00,0x2B,0xF7,0xDC,0x70,0x47,0xD6,0x02,0x10,0x40,0xD2,0x02,0x00,0x10, + 0xFF,0x20,0x06,0x49,0x06,0x4A,0x6A,0x30,0x03,0xE0,0x13,0x88,0x92,0x1C,0x0B,0x80, + 0x09,0x1D,0x03,0x00,0x40,0x1E,0x00,0x2B,0xF7,0xDC,0x70,0x47,0xD6,0x02,0x10,0x40, + 0xD2,0x02,0x00,0x10,0x01,0x49,0xC8,0x68,0xC8,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x04,0x49,0x40,0x22,0x00,0x28,0x48,0x6A,0x01,0xD0,0x10,0x43,0x00,0xE0,0x90,0x43, + 0x48,0x62,0x70,0x47,0x80,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x08,0x22,0x11,0x43, + 0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0xB5,0x22,0x10,0xB5,0x07,0x49,0x08,0x48, + 0x92,0x00,0x02,0xF0,0xF5,0xFF,0x07,0x48,0x07,0x4A,0xC0,0x8E,0x01,0x04,0x01,0x43, + 0x06,0x48,0x03,0xF0,0x0F,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x9D,0x00,0x00, + 0x00,0x00,0x10,0x40,0x00,0x93,0x00,0x00,0xA4,0x05,0x00,0x00,0xD4,0x02,0x10,0x40, + 0x06,0x49,0x00,0x28,0x08,0x69,0x03,0xD0,0x13,0x22,0x12,0x06,0x10,0x43,0x02,0xE0, + 0x03,0x22,0x12,0x06,0x90,0x43,0x08,0x61,0x70,0x47,0x00,0x00,0x40,0xA1,0x00,0x40, + 0x02,0x48,0x81,0x6B,0x49,0x08,0x49,0x00,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40, + 0x02,0x48,0x81,0x6B,0x01,0x22,0x11,0x43,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40, + 0x10,0xB5,0x0A,0x49,0x0A,0x48,0xFC,0x22,0x02,0xF0,0xBA,0xFF,0xFF,0x22,0x09,0x49, + 0x09,0x48,0xF1,0x32,0x02,0xF0,0xB4,0xFF,0x71,0x22,0x08,0x49,0x08,0x48,0xD2,0x00, + 0x02,0xF0,0xAE,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x04,0x96,0x00,0x00, + 0x04,0x90,0x00,0x40,0x00,0x97,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x99,0x00,0x00, + 0x78,0x08,0x10,0x40,0x04,0x49,0x02,0x22,0x00,0x28,0x08,0x68,0x01,0xD0,0x10,0x43, + 0x00,0xE0,0x90,0x43,0x08,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x03,0x48,0x41,0x68, + 0x01,0x22,0x12,0x04,0x11,0x43,0x41,0x60,0x70,0x47,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x70,0xB5,0x1A,0x4C,0x20,0x68,0x40,0x08,0x40,0x00,0x20,0x60,0x18,0x48,0xA6,0x15, + 0x05,0x04,0x2D,0x0C,0x00,0x22,0x31,0x00,0x28,0x00,0xFD,0xF7,0xFF,0xFF,0x32,0x00, + 0x21,0x00,0x28,0x00,0x00,0x23,0xFE,0xF7,0x01,0xF8,0x12,0x48,0x75,0x00,0x04,0x04, + 0x24,0x0C,0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0xF0,0xFF,0x0E,0x49,0x2A,0x00, + 0x20,0x00,0x00,0x23,0xFD,0xF7,0xF2,0xFF,0x0C,0x48,0x6D,0x00,0x04,0x04,0x24,0x0C, + 0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0xE1,0xFF,0x09,0x49,0x2A,0x00,0x20,0x00, + 0x00,0x23,0xFD,0xF7,0xE3,0xFF,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40, + 0x00,0x96,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x99,0x00,0x00, + 0x78,0x08,0x10,0x40,0x04,0x48,0x10,0xB5,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0xFE,0xF7, + 0x9D,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40,0xF1,0xB5,0x4F,0x48, + 0x82,0xB0,0x00,0x68,0x00,0x25,0x60,0x30,0x81,0x8A,0x2E,0x00,0x4C,0x4F,0x01,0x91, + 0x80,0x7D,0x01,0x00,0x41,0x43,0x08,0x06,0x00,0x0E,0x01,0x24,0x00,0x90,0x13,0xE0, + 0x0A,0x20,0x60,0x43,0x47,0x49,0x40,0x18,0x0B,0x21,0x89,0x01,0x41,0x18,0x09,0x7C, + 0x00,0x29,0x08,0xD0,0x44,0x49,0x40,0x18,0x01,0xF0,0x6C,0xF9,0x00,0x28,0x02,0xD0, + 0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x64,0x1C,0xB8,0x7A,0xA0,0x42,0xE8,0xDA,0x3F,0x48, + 0x03,0x89,0x81,0x89,0x5A,0x1A,0x00,0x2A,0x00,0xDC,0xCA,0x1A,0x41,0x89,0xC3,0x89, + 0x12,0x04,0x12,0x0C,0xCC,0x1A,0x00,0x2C,0x00,0xDC,0x5C,0x1A,0x81,0x7C,0x23,0x04, + 0x1B,0x0C,0x00,0x29,0x04,0xD0,0x41,0x7D,0xC8,0x29,0x01,0xD2,0x49,0x1C,0x41,0x75, + 0x32,0x49,0x20,0x39,0x8C,0x7E,0x14,0x2C,0x04,0xD2,0x0C,0x7F,0x00,0x2C,0x01,0xD0, + 0x01,0x24,0x4C,0x77,0x14,0x2A,0x01,0xD8,0x14,0x2B,0x04,0xD9,0xCC,0x7E,0xC8,0x2C, + 0x01,0xD2,0x64,0x1C,0xCC,0x76,0x02,0x2D,0x09,0xD2,0x14,0x2A,0x07,0xD2,0x14,0x2B, + 0x05,0xD2,0x10,0x24,0x04,0x5F,0x04,0x2C,0x07,0xDA,0x64,0x1C,0x04,0xE0,0x10,0x24, + 0x04,0x5F,0xE7,0x1C,0x01,0xDD,0x64,0x1E,0x04,0x82,0x44,0x7D,0x01,0x2C,0x01,0xD9, + 0x78,0x26,0x10,0xE0,0x02,0x2D,0x0E,0xD2,0x10,0x24,0x04,0x5F,0x02,0x2C,0x0A,0xDD, + 0xC9,0x7E,0x14,0x29,0x07,0xD2,0x51,0x3A,0x8B,0x2A,0x02,0xD3,0x51,0x3B,0x8B,0x2B, + 0x01,0xD2,0x77,0x26,0xF6,0x43,0x00,0x21,0x02,0x2D,0x01,0x75,0x0D,0xD2,0x31,0x00, + 0x78,0x31,0x04,0xD1,0xC1,0x7C,0xC8,0x29,0x01,0xD2,0x49,0x1C,0xC1,0x74,0xC1,0x7C, + 0x49,0x1E,0x02,0x29,0x01,0xD2,0x01,0x21,0x01,0x75,0x01,0x98,0x81,0x19,0x08,0x00, + 0x48,0x43,0x02,0x99,0x00,0x29,0x06,0xD1,0x06,0x49,0x09,0x79,0x01,0x29,0x02,0xD0, + 0x00,0x99,0xFD,0xF7,0xD5,0xFD,0xFE,0xBC,0x08,0xBC,0x18,0x47,0xCC,0x07,0x00,0x20, + 0x00,0x02,0x00,0x20,0x40,0x00,0x00,0x20,0xD6,0x02,0x00,0x00,0xC0,0x03,0x00,0x20, + 0x78,0x47,0xC0,0x46,0xD2,0x10,0xA0,0xE3,0x01,0x00,0xB0,0xE1,0x01,0x10,0x41,0xE2, + 0xFC,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x11,0x10,0xA0,0xE3, + 0x01,0x00,0xB0,0xE1,0x01,0x10,0x41,0xE2,0xFC,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1, + 0x02,0x48,0x41,0x6B,0x01,0x22,0x11,0x43,0x41,0x63,0x70,0x47,0x00,0x70,0x00,0x40, + 0x70,0x47,0x00,0x00,0xFE,0xB5,0x1B,0x48,0x1B,0x49,0x00,0x68,0x09,0x88,0x60,0x30, + 0x00,0x7E,0x00,0x25,0x2E,0x00,0x40,0x18,0x01,0x06,0x18,0x48,0x2F,0x00,0x00,0x7A, + 0x09,0x0E,0x00,0x28,0x01,0x90,0x21,0xD0,0x01,0x24,0x49,0x1C,0x00,0x91,0x13,0xE0, + 0x0A,0x20,0x60,0x43,0x12,0x49,0x40,0x18,0xFF,0x30,0xC1,0x30,0x80,0x7C,0x14,0x28, + 0x01,0xD2,0x01,0x26,0x07,0xE0,0x01,0x27,0x14,0x21,0xFD,0xF7,0xB1,0xFE,0x00,0x99, + 0x88,0x42,0x00,0xD3,0x01,0x25,0x64,0x1C,0x01,0x98,0xA0,0x42,0xE8,0xDA,0x00,0x2F, + 0x02,0xD1,0x00,0x2E,0x00,0xD0,0x02,0x25,0x28,0x06,0x00,0x0E,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xCC,0x07,0x00,0x20,0x00,0x07,0x00,0x20,0x00,0x02,0x00,0x20, + 0x40,0x00,0x00,0x20,0x10,0xB5,0xFF,0xF7,0x0D,0xFE,0x04,0x49,0x08,0x68,0x06,0x22, + 0x90,0x43,0x08,0x60,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x90,0x00,0x40, + 0x13,0x48,0x10,0xB5,0xC0,0x68,0x00,0x28,0x1F,0xD0,0x01,0x06,0x09,0x0F,0x03,0x29, + 0x01,0xD0,0x04,0x29,0x02,0xD1,0x00,0xF0,0xF1,0xF8,0x08,0xE0,0xF0,0x21,0x01,0x40, + 0x20,0x29,0x02,0xD2,0x00,0xF0,0x1A,0xF8,0x01,0xE0,0x03,0xF0,0xAF,0xFD,0x09,0x48, + 0x82,0x68,0x81,0x15,0x8A,0x43,0x82,0x60,0x82,0x68,0x0A,0x43,0x82,0x60,0x06,0x48, + 0x00,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0,0x21,0xFE,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x40,0x14,0x07,0x00,0x20,0xF1,0xB5,0x61,0x48, + 0x2E,0x21,0x90,0xB0,0x41,0x60,0x41,0x69,0x89,0x06,0xFC,0xD4,0x10,0x99,0x01,0x26, + 0x76,0x07,0xF1,0x63,0x84,0x69,0x5B,0x48,0x40,0x68,0x80,0x07,0xFB,0xD5,0x03,0xF0, + 0x85,0xFD,0x59,0x4D,0x28,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0,0x07,0xFE,0x10,0x9B, + 0x00,0x21,0x01,0x20,0x9B,0x1E,0xFF,0x27,0x4A,0x1E,0x40,0x03,0x04,0xF0,0x66,0xFE, + 0x1E,0x16,0x40,0x40,0x40,0x40,0x13,0x40,0x40,0x42,0x10,0x40,0x40,0x58,0x40,0x68, + 0x4F,0x6F,0x76,0x7D,0x40,0x84,0x40,0x8B,0x92,0x4F,0x40,0x40,0x40,0x40,0x99,0x40, + 0x0B,0x20,0xF0,0x63,0x4D,0xE0,0x00,0xF0,0x28,0xF9,0x29,0xE0,0x03,0x21,0x09,0x07, + 0xCA,0x60,0xFE,0xF7,0x61,0xF9,0x00,0xF0,0x35,0xFE,0x44,0x48,0x44,0x4A,0x41,0x68, + 0x52,0x68,0x91,0x42,0x1C,0xD0,0x43,0x49,0x17,0x22,0xC9,0x8B,0x52,0x01,0x80,0x18, + 0x49,0x1C,0xC1,0x83,0xFD,0xF7,0x76,0xFA,0xA8,0x78,0xC0,0x07,0x01,0xD0,0xFF,0xF7, + 0x17,0xFE,0xA8,0x78,0x80,0x07,0x01,0xD5,0x04,0xF0,0x7E,0xFD,0x3A,0x49,0x40,0x22, + 0x68,0x46,0x02,0xF0,0x8D,0xFD,0x01,0x20,0x08,0x90,0x68,0x46,0x04,0xF0,0x8C,0xFD, + 0xF7,0x63,0x1E,0xE0,0x32,0x48,0xA0,0x30,0x00,0x7E,0x00,0x28,0xF8,0xD0,0x00,0x2C, + 0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x04,0xF0,0x52,0xFB,0xF0,0xE7,0x03,0x21, + 0x09,0x07,0xCA,0x60,0xFE,0xF7,0x28,0xF9,0x10,0x98,0xFE,0xF7,0x79,0xF8,0x08,0xE0, + 0x03,0x21,0x09,0x07,0xCA,0x60,0xFE,0xF7,0x1F,0xF9,0x00,0xF0,0x67,0xFD,0x00,0xF0, + 0xF7,0xF8,0x20,0x48,0x41,0x68,0x41,0x60,0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x2C,0x02,0xD0,0x01,0x20,0x68,0x71,0xD2,0xE7,0x69,0x71,0xD0,0xE7,0x00,0x2C, + 0x02,0xD0,0x01,0x20,0xA8,0x71,0xCB,0xE7,0xA9,0x71,0xC9,0xE7,0x00,0x2C,0x02,0xD0, + 0x01,0x20,0xE8,0x71,0xC4,0xE7,0xE9,0x71,0xC2,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20, + 0x28,0x72,0xBD,0xE7,0x29,0x72,0xBB,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xA8,0x72, + 0xB6,0xE7,0xA9,0x72,0xB4,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xE8,0x72,0xAF,0xE7, + 0xE9,0x72,0xAD,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x73,0xA8,0xE7,0x29,0x73, + 0xA6,0xE7,0x00,0x2C,0x01,0xD0,0x6C,0x73,0x00,0xE0,0x69,0x73,0x04,0xF0,0x60,0xF9, + 0x9E,0xE7,0x00,0x00,0x00,0x40,0x00,0x30,0x14,0x07,0x00,0x20,0x00,0x00,0x00,0x10, + 0x00,0x93,0x00,0x00,0xE0,0x95,0x00,0x00,0xC0,0x92,0x00,0x00,0xF0,0xB5,0x36,0x4C, + 0x03,0x00,0x36,0x4A,0x36,0x4E,0x37,0x4F,0x37,0x48,0x38,0x49,0x25,0x68,0x30,0x3B, + 0x04,0xF0,0xAC,0xFD,0x12,0x0A,0x0C,0x0E,0x12,0x16,0x1A,0x1C,0x18,0x1E,0x20,0x2E, + 0x3A,0x16,0x3D,0x42,0x4A,0x50,0x53,0x0A,0xCD,0x61,0x3B,0xE0,0x60,0x68,0x01,0xE0, + 0x2F,0x48,0xC0,0x6B,0xC8,0x61,0x35,0xE0,0x10,0x8C,0x52,0x8C,0x00,0x04,0x37,0xE0, + 0xCE,0x61,0x2F,0xE0,0xE0,0x68,0xF5,0xE7,0x50,0x68,0xF3,0xE7,0xA0,0x68,0xF1,0xE7, + 0xD0,0x7B,0xEF,0xE7,0x27,0x48,0x03,0x7F,0x10,0x7D,0x52,0x7D,0xC4,0x07,0xE4,0x09, + 0x80,0x07,0x12,0x04,0xC0,0x0F,0x00,0x02,0x23,0x43,0x02,0x43,0x13,0x43,0x09,0xE0, + 0x90,0x7D,0x53,0x7E,0x00,0x06,0x03,0x43,0xD0,0x7D,0x12,0x7E,0x00,0x04,0x12,0x02, + 0x10,0x43,0x03,0x43,0xCB,0x61,0x0D,0xE0,0x90,0x7E,0x00,0x06,0xD2,0xE7,0x1A,0x48, + 0x00,0x69,0xC0,0x07,0xC0,0x0F,0xCD,0xE7,0x3A,0x69,0x00,0x8A,0x52,0x08,0x12,0x02, + 0x02,0x43,0xCA,0x61,0x5F,0x22,0x0A,0xE0,0x14,0x48,0xA2,0x69,0xC0,0x8B,0x00,0x04, + 0x10,0x43,0xBF,0xE7,0x38,0x69,0x40,0x08,0xBC,0xE7,0x80,0x69,0xBA,0xE7,0x48,0x69, + 0x10,0x42,0xFC,0xD1,0x03,0xF0,0x62,0xFC,0xFF,0x20,0x01,0x21,0x49,0x07,0xC8,0x63, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x92,0x00,0x00,0x00,0x93,0x00,0x00, + 0x15,0x00,0x0E,0x00,0x00,0x20,0x00,0x40,0x14,0x07,0x00,0x20,0x00,0x40,0x00,0x30, + 0xC0,0x0F,0x00,0x20,0x60,0x06,0x00,0x20,0x00,0x96,0x00,0x00,0xE0,0x95,0x00,0x00, + 0x10,0xB5,0x00,0x20,0xFF,0xF7,0x84,0xFC,0x01,0x20,0xFF,0xF7,0xF3,0xFC,0x01,0x20, + 0xFF,0xF7,0xAE,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x70,0xB5,0x03,0x24,0x24,0x07, + 0xE5,0x68,0x00,0x20,0xC0,0x43,0xE0,0x60,0xFE,0xF7,0x54,0xF8,0x06,0x00,0xCB,0x20, + 0xC0,0x01,0xFE,0xF7,0x31,0xF8,0x03,0xF0,0xED,0xFA,0x00,0xF0,0xA1,0xFC,0x03,0xF0, + 0xDD,0xFA,0x30,0x00,0xFE,0xF7,0x5A,0xF8,0xE5,0x60,0x70,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x20,0x03,0x21,0x10,0xB5,0xC0,0x43,0x09,0x07,0xC8,0x60,0x03,0xF0,0xDA,0xFA, + 0xFF,0xF7,0xDE,0xFC,0x05,0x48,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0x01,0x20,0x40,0x07, + 0x04,0xF0,0xD4,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x90,0x00,0x40, + 0xF8,0xB5,0x23,0x48,0x00,0x68,0x00,0x88,0xC0,0x06,0x3E,0xD5,0x21,0x4E,0x30,0x7A, + 0x00,0x28,0x3A,0xD0,0x70,0x7A,0x00,0x28,0x37,0xD0,0x01,0x25,0x32,0xE0,0x71,0x7A, + 0x1D,0x4F,0x09,0x23,0x8C,0x46,0x0A,0x21,0x69,0x43,0xCC,0x19,0x01,0x20,0x9B,0x01, + 0xFF,0x34,0xC1,0x34,0x23,0xE0,0x0A,0x22,0x42,0x43,0xD2,0x19,0xD2,0x18,0x21,0x7B, + 0x92,0x7B,0x91,0x42,0x1A,0xD1,0x0A,0x22,0x50,0x43,0xC0,0x19,0xC7,0x18,0x0E,0x21, + 0x10,0x20,0x61,0x5E,0x38,0x5E,0x12,0x22,0xBA,0x5E,0x08,0x1A,0x10,0x21,0x61,0x5E, + 0x89,0x1A,0x00,0x91,0x3A,0x8A,0xE1,0x89,0xFF,0xF7,0xD2,0xF9,0xE0,0x81,0x7A,0x8A, + 0x21,0x8A,0x00,0x98,0xFF,0xF7,0xCC,0xF9,0x20,0x82,0x02,0xE0,0x40,0x1C,0x84,0x45, + 0xD9,0xDA,0x6D,0x1C,0x30,0x7A,0xA8,0x42,0xC9,0xDA,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0xCC,0x07,0x00,0x20,0x00,0x02,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB5,0x00,0x20, + 0xB1,0xB0,0x10,0x90,0x0F,0x90,0x0E,0x90,0x0D,0x90,0xFC,0x48,0x01,0x8C,0x0A,0x91, + 0x40,0x8C,0x09,0x90,0xFA,0x48,0x02,0x68,0x13,0x00,0x60,0x33,0x59,0x7F,0x18,0x7F, + 0x08,0x91,0x11,0x00,0x80,0x31,0x8C,0x7A,0x07,0x94,0x4C,0x7A,0x06,0x94,0x12,0x88, + 0x12,0x07,0x24,0xD5,0xDA,0x7F,0x42,0x43,0x24,0x92,0x0A,0x78,0x42,0x43,0x23,0x92, + 0x4A,0x78,0x42,0x43,0x22,0x92,0x8A,0x78,0x42,0x43,0x21,0x92,0xCA,0x78,0x42,0x43, + 0x20,0x92,0x0A,0x79,0x42,0x43,0x1F,0x92,0x4A,0x79,0x42,0x43,0x1E,0x92,0x8A,0x79, + 0x42,0x43,0x1D,0x92,0xCA,0x79,0x42,0x43,0x1C,0x92,0x09,0x7A,0x41,0x43,0xE5,0x48, + 0x1B,0x91,0x30,0x90,0x00,0x7A,0x00,0x28,0x05,0xD1,0x00,0xF0,0xE7,0xFE,0x31,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x25,0x90,0xDE,0x48,0xE0,0x38,0x2F,0x90, + 0xDD,0x48,0x2E,0x90,0xDD,0x4D,0x25,0x98,0x1B,0x21,0x28,0x18,0x49,0x01,0x2D,0x90, + 0x40,0x18,0x04,0x78,0x00,0x2C,0x0F,0xD0,0x07,0x98,0x00,0x28,0x08,0xD1,0x0A,0x20, + 0x60,0x43,0x40,0x19,0xFF,0x30,0xD3,0x30,0x00,0xF0,0x04,0xFE,0x00,0x28,0x03,0xD0, + 0x2E,0x98,0x00,0x7D,0x00,0x28,0x03,0xD0,0x25,0x98,0xFF,0xF7,0xB9,0xF8,0xC2,0xE2, + 0x25,0x99,0x1D,0x27,0x07,0x20,0x7F,0x01,0x4E,0x00,0x18,0x21,0x41,0x43,0x49,0x19, + 0x89,0x19,0xCA,0x19,0x53,0x88,0x53,0x83,0x23,0x22,0x52,0x01,0x8A,0x18,0x09,0x23, + 0x52,0x8B,0xDB,0x01,0xC9,0x18,0x40,0x1E,0x4A,0x82,0xEE,0xD5,0x0A,0x20,0x44,0x43, + 0x65,0x19,0x2C,0x95,0xFF,0x35,0xC1,0x35,0xEA,0x89,0x0A,0x98,0x40,0x1E,0x82,0x42, + 0xDD,0xDC,0x2A,0x8A,0x09,0x98,0x40,0x1E,0x82,0x42,0xD8,0xDC,0xBB,0x48,0xE9,0x89, + 0x34,0x18,0xE0,0x19,0x2B,0x90,0x23,0x23,0x41,0x80,0x5B,0x01,0x29,0x8A,0xE0,0x18, + 0x2A,0x90,0x41,0x83,0x00,0x20,0x01,0x22,0xD2,0x02,0x01,0x00,0x05,0x90,0x07,0x20, + 0x04,0x92,0x18,0x23,0x43,0x43,0xB1,0x4F,0xDB,0x19,0x9B,0x19,0x1D,0x27,0x7F,0x01, + 0xDF,0x19,0x29,0x93,0x02,0x23,0xFB,0x5E,0xBC,0x46,0x00,0x2B,0x0B,0xDD,0x05,0x9F, + 0xBB,0x42,0x02,0xDD,0x67,0x46,0x7F,0x88,0x05,0x97,0x04,0x9F,0xBB,0x42,0x02,0xDA, + 0x63,0x46,0x5B,0x88,0x04,0x93,0x29,0x9F,0x23,0x23,0x5B,0x01,0xFF,0x18,0x1A,0x23, + 0xFB,0x5E,0x00,0x2B,0x05,0xDD,0x8B,0x42,0x00,0xDD,0x79,0x8B,0x93,0x42,0x00,0xDA, + 0x7A,0x8B,0x40,0x1E,0xD5,0xD5,0x04,0x9B,0x05,0x98,0xC0,0x1A,0xF0,0x28,0x02,0xDC, + 0x8B,0x1A,0xF0,0x2B,0x02,0xDD,0x2E,0x9F,0x01,0x23,0xBB,0x74,0x14,0x28,0x04,0xDA, + 0x88,0x1A,0x14,0x28,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x2F,0x99,0x48,0x74, + 0x2D,0x99,0x07,0x20,0xC0,0x01,0x08,0x18,0x28,0x90,0x80,0x7D,0x01,0x28,0x1B,0xD9, + 0x2B,0x98,0x02,0x21,0x1A,0x23,0x41,0x5E,0xC3,0x5E,0xC8,0x1A,0x00,0x28,0x00,0xDC, + 0x58,0x1A,0x00,0x04,0x00,0x14,0x0C,0x90,0x2A,0x99,0x1A,0x20,0x08,0x5E,0x09,0x21, + 0xC9,0x01,0x63,0x18,0x12,0x21,0x59,0x5E,0x43,0x1A,0x00,0x2B,0x00,0xDC,0x0B,0x1A, + 0x18,0x04,0x00,0x14,0x0B,0x90,0x02,0xE0,0x64,0x20,0x0B,0x90,0x0C,0x90,0x2B,0x98, + 0x1A,0x21,0x41,0x5E,0x02,0x00,0x02,0x20,0x10,0x5E,0x03,0xF0,0xBF,0xFA,0x12,0x90, + 0x09,0x20,0xC0,0x01,0x20,0x18,0x12,0x21,0x41,0x5E,0x2A,0x9A,0x1A,0x20,0x10,0x5E, + 0x03,0xF0,0xB4,0xFA,0x11,0x90,0x0F,0x20,0x80,0x01,0x20,0x18,0x12,0x21,0x41,0x5E, + 0x12,0x98,0x03,0xF0,0xAB,0xFA,0x14,0x90,0x25,0x20,0x40,0x01,0x20,0x18,0x0A,0x21, + 0x41,0x5E,0x11,0x98,0x03,0xF0,0xA2,0xFA,0x13,0x90,0x01,0x20,0x80,0x02,0x27,0x18, + 0x1F,0x20,0x40,0x01,0x20,0x18,0x0A,0x21,0x41,0x5E,0x02,0x22,0xBA,0x5E,0x14,0x98, + 0x03,0xF0,0x96,0xFA,0x00,0x04,0x00,0x14,0x16,0x90,0x13,0x20,0x80,0x01,0x20,0x18, + 0x1A,0x22,0x02,0x21,0x82,0x5E,0x41,0x5E,0x13,0x98,0x03,0xF0,0x89,0xFA,0x00,0x04, + 0x00,0x14,0x15,0x90,0x21,0x20,0x40,0x01,0x20,0x18,0x12,0x22,0x82,0x5E,0x1A,0x21, + 0x79,0x5E,0x16,0x98,0x03,0xF0,0x7C,0xFA,0x00,0x04,0x00,0x14,0x18,0x90,0x05,0x20, + 0x00,0x02,0x20,0x18,0x0A,0x22,0x82,0x5E,0x27,0x20,0x40,0x01,0x20,0x18,0x12,0x21, + 0x41,0x5E,0x15,0x98,0x03,0xF0,0x6C,0xFA,0x00,0x04,0x00,0x14,0x17,0x90,0x2A,0x98, + 0x02,0x22,0x82,0x5E,0x11,0x20,0x80,0x01,0x20,0x18,0x0A,0x21,0x41,0x5E,0x18,0x98, + 0x03,0xF0,0x5E,0xFA,0x00,0x04,0x00,0x14,0x1A,0x90,0x29,0x20,0x40,0x01,0x20,0x18, + 0x1A,0x22,0x02,0x21,0x82,0x5E,0x41,0x5E,0x17,0x98,0x03,0xF0,0x51,0xFA,0x00,0x04, + 0x00,0x14,0x19,0x90,0x0B,0x99,0x0C,0x98,0x00,0xF0,0xB8,0xFF,0x3F,0x4F,0x01,0x21, + 0x18,0x22,0x4A,0x43,0xD2,0x19,0x0B,0x23,0x92,0x19,0xDB,0x01,0xD2,0x18,0x53,0x88, + 0x49,0x1E,0x53,0x83,0xF4,0xD5,0x0B,0x21,0xC9,0x01,0x61,0x18,0x48,0x80,0x2D,0x9A, + 0x2B,0x21,0x49,0x01,0x57,0x18,0xBA,0x7D,0x00,0x20,0x00,0x2A,0x94,0x46,0x0D,0xDB, + 0x18,0x21,0x13,0x00,0x4B,0x43,0x31,0x49,0x59,0x18,0x8B,0x19,0x0B,0x21,0xC9,0x01, + 0x5B,0x18,0x02,0x21,0x59,0x5E,0x08,0x18,0x52,0x1E,0xF1,0xD5,0x61,0x46,0x49,0x1C, + 0xFD,0xF7,0x96,0xF9,0x23,0x99,0x06,0x00,0x88,0x42,0x01,0xDC,0x01,0x20,0x0F,0xE0, + 0x21,0x98,0x86,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x1F,0x98,0x86,0x42,0x01,0xDC, + 0x03,0x20,0x05,0xE0,0x1D,0x98,0x86,0x42,0x01,0xDC,0x04,0x20,0x00,0xE0,0x05,0x20, + 0xB9,0x7A,0x40,0x1A,0x08,0x99,0x49,0x42,0x00,0x28,0x0B,0xDD,0x15,0x20,0x80,0x01, + 0x20,0x18,0x12,0x22,0x82,0x5E,0x08,0x9B,0x9A,0x42,0x01,0xD1,0x00,0x22,0x0A,0xE0, + 0x52,0x1C,0x08,0xE0,0x00,0x28,0x16,0x48,0x07,0xDA,0x20,0x18,0x12,0x22,0x82,0x5E, + 0x8A,0x42,0xF3,0xD0,0x52,0x1E,0x42,0x82,0x0A,0xE0,0x22,0x18,0x12,0x20,0x10,0x5E, + 0x00,0x28,0x01,0xDD,0x40,0x1E,0x02,0xE0,0x00,0x28,0x01,0xDA,0x40,0x1C,0x50,0x82, + 0x0B,0x48,0x22,0x18,0x12,0x20,0x10,0x5E,0x08,0x9A,0x90,0x42,0x12,0xD1,0xBA,0x7A, + 0x05,0x2A,0x0F,0xD2,0x52,0x1C,0xBA,0x72,0x13,0xE0,0x00,0x00,0x00,0x93,0x00,0x00, + 0xCC,0x07,0x00,0x20,0x00,0x02,0x00,0x20,0xC0,0x03,0x00,0x20,0x40,0x00,0x00,0x20, + 0x40,0x05,0x00,0x00,0x88,0x42,0x04,0xD1,0xB8,0x7A,0x01,0x28,0x01,0xD9,0x40,0x1E, + 0xB8,0x72,0x28,0x98,0x1A,0x9A,0x80,0x7D,0x19,0x9C,0x01,0x00,0x27,0x90,0x26,0x90, + 0x10,0x00,0xFD,0xF7,0x2D,0xF9,0x10,0x90,0x0E,0x90,0x26,0x99,0x20,0x00,0xFD,0xF7, + 0x27,0xF9,0x0F,0x90,0x0D,0x90,0xB8,0x7A,0x01,0x28,0x27,0xD1,0x0D,0xAA,0x0E,0xA9, + 0x6B,0x46,0x06,0xC3,0x19,0x9B,0x1A,0x9A,0x27,0x98,0x09,0x21,0x03,0xF0,0x32,0xFE, + 0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0,0x28,0x98,0x17,0x9B,0x80,0x7D,0x18,0x9A, + 0x07,0x21,0x03,0xF0,0x27,0xFE,0x3C,0x20,0x6B,0x46,0x18,0x5E,0x38,0x21,0x59,0x5E, + 0x34,0x22,0x9A,0x5E,0x01,0xAC,0x07,0xC4,0x00,0x22,0x10,0xAB,0x9A,0x5E,0x2C,0x98, + 0x00,0x92,0xFF,0x30,0x23,0x9B,0x24,0x9A,0xCD,0x30,0x9B,0xE0,0x02,0x28,0x27,0xD1, + 0x0D,0xAA,0x0E,0xA9,0x6B,0x46,0x06,0xC3,0x17,0x9B,0x18,0x9A,0x27,0x98,0x07,0x21, + 0x03,0xF0,0x08,0xFE,0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0,0x28,0x98,0x15,0x9B, + 0x80,0x7D,0x16,0x9A,0x05,0x21,0x03,0xF0,0xFD,0xFD,0x3C,0x20,0x6B,0x46,0x18,0x5E, + 0x38,0x21,0x59,0x5E,0x34,0x22,0x9A,0x5E,0x01,0xAC,0x07,0xC4,0x00,0x22,0x10,0xAB, + 0x9A,0x5E,0x2C,0x98,0x21,0x9B,0xFF,0x30,0x00,0x92,0x22,0x9A,0xCD,0x30,0x71,0xE0, + 0x03,0x28,0x27,0xD1,0x0D,0xAA,0x0E,0xA9,0x6B,0x46,0x06,0xC3,0x15,0x9B,0x16,0x9A, + 0x27,0x98,0x05,0x21,0x03,0xF0,0xDE,0xFD,0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0, + 0x28,0x98,0x13,0x9B,0x80,0x7D,0x14,0x9A,0x03,0x21,0x03,0xF0,0xD3,0xFD,0x3C,0x20, + 0x6B,0x46,0x18,0x5E,0x38,0x21,0x59,0x5E,0x34,0x22,0x9A,0x5E,0x01,0xAC,0x07,0xC4, + 0x00,0x22,0x10,0xAB,0x9A,0x5E,0x2C,0x98,0x1F,0x9B,0xFF,0x30,0x00,0x92,0x20,0x9A, + 0xCD,0x30,0x47,0xE0,0x04,0x28,0x27,0xD1,0x0D,0xAA,0x0E,0xA9,0x68,0x46,0x06,0xC0, + 0x13,0x9B,0x14,0x9A,0x27,0x98,0x03,0x21,0x03,0xF0,0xB4,0xFD,0x0F,0xAA,0x10,0xA9, + 0x68,0x46,0x06,0xC0,0x28,0x98,0x11,0x9B,0x80,0x7D,0x12,0x9A,0x02,0x21,0x03,0xF0, + 0xA9,0xFD,0x3C,0x20,0x6B,0x46,0x18,0x5E,0x38,0x21,0x59,0x5E,0x34,0x22,0x9A,0x5E, + 0x01,0xAC,0x07,0xC4,0x00,0x22,0x10,0xAB,0x9A,0x5E,0x2C,0x98,0x1D,0x9B,0xFF,0x30, + 0x00,0x92,0x1E,0x9A,0xCD,0x30,0x1D,0xE0,0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0, + 0x11,0x9B,0x12,0x9A,0x27,0x98,0x02,0x21,0x03,0xF0,0x8C,0xFD,0x3C,0x22,0x6B,0x46, + 0x9A,0x5E,0x00,0x21,0x10,0xAB,0x59,0x5E,0x2A,0x9B,0x1A,0x20,0x18,0x5E,0x01,0xAB, + 0x07,0xC3,0x2B,0x98,0x02,0x22,0x82,0x5E,0x2C,0x98,0x1B,0x9B,0x00,0x92,0x1C,0x9A, + 0xFF,0x30,0xCD,0x30,0x31,0x00,0x03,0xF0,0x89,0xFD,0x28,0x98,0x3D,0x49,0x80,0x7D, + 0x09,0x28,0x02,0xD2,0x28,0x9A,0x40,0x1C,0x90,0x75,0xB8,0x7D,0x02,0x28,0x01,0xD2, + 0x40,0x1C,0xB8,0x75,0x28,0x7B,0x40,0x1E,0x80,0x00,0x40,0x18,0x17,0x21,0x89,0x01, + 0x44,0x18,0x0A,0x20,0x20,0x5E,0x00,0x28,0x21,0xDB,0x0C,0x21,0x61,0x5E,0x00,0x29, + 0x1D,0xDB,0x06,0x9A,0x64,0x21,0x8E,0x1A,0x70,0x43,0xFD,0xF7,0x39,0xF8,0x07,0x00, + 0xE8,0x89,0x06,0x99,0x48,0x43,0x64,0x21,0xFD,0xF7,0x62,0xF9,0x38,0x18,0xE8,0x81, + 0x0C,0x20,0x20,0x5E,0x64,0x21,0x70,0x43,0xFD,0xF7,0x2A,0xF8,0x06,0x00,0x28,0x8A, + 0x06,0x99,0x48,0x43,0x64,0x21,0xFD,0xF7,0x53,0xF9,0x30,0x18,0x28,0x82,0xE8,0x89, + 0x60,0x81,0x28,0x8A,0xA0,0x81,0x25,0x98,0x40,0x1C,0x0C,0x28,0x25,0x90,0x00,0xDA, + 0x18,0xE5,0x30,0x98,0x00,0x7A,0x01,0x28,0x22,0xD1,0x30,0x98,0x2E,0x9A,0x80,0x7D, + 0x41,0x00,0x18,0x48,0x08,0x18,0x1D,0x21,0x49,0x01,0x41,0x18,0x0B,0x88,0x13,0x81, + 0x23,0x22,0x52,0x01,0x82,0x18,0x12,0x8B,0x2E,0x9B,0x5A,0x81,0x0A,0x8B,0x2E,0x99, + 0x8A,0x81,0x09,0x21,0xC9,0x01,0x40,0x18,0x00,0x8A,0x2E,0x99,0xC8,0x81,0x30,0x98, + 0x01,0x8B,0x2E,0x98,0x01,0x80,0x30,0x98,0x41,0x8B,0x2E,0x98,0x41,0x80,0xE6,0xE4, + 0x02,0x28,0xFC,0xD1,0x30,0x98,0x01,0x8B,0x2E,0x98,0x01,0x80,0x30,0x98,0x41,0x8B, + 0x2E,0x98,0x41,0x80,0x04,0x48,0x2E,0x99,0x42,0x88,0x8A,0x80,0x81,0x88,0x2E,0x98, + 0xC1,0x80,0xD4,0xE4,0x40,0x00,0x00,0x20,0x20,0x02,0x00,0x20,0xF8,0xB5,0x1C,0x4B, + 0x1C,0x7D,0xDA,0x8E,0xE4,0x07,0x31,0xD0,0x1C,0x8F,0x1A,0x4B,0x1B,0x7F,0x9E,0x46, + 0x19,0x4B,0x1E,0x78,0x16,0x4B,0x9D,0x7D,0x00,0x2E,0x76,0x46,0xAC,0x46,0xDD,0x7D, + 0x00,0x95,0x1D,0x7E,0x5F,0x7E,0x9B,0x7E,0x12,0xD0,0xB0,0x42,0x1E,0xD1,0x8C,0x45, + 0x08,0xD0,0x00,0x98,0x88,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0,0x8F,0x42,0x01,0xD0, + 0x8B,0x42,0x03,0xD1,0x20,0x00,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0xFA,0xE7, + 0xB1,0x42,0x0B,0xD1,0x84,0x45,0xF5,0xD0,0x00,0x99,0x81,0x42,0xF2,0xD0,0x85,0x42, + 0xF0,0xD0,0x87,0x42,0xEE,0xD0,0x83,0x42,0xF0,0xD1,0xEB,0xE7,0x10,0x00,0xEA,0xE7, + 0x00,0x93,0x00,0x00,0x60,0x06,0x00,0x20,0x18,0x07,0x00,0x20,0x0E,0x23,0x58,0x43, + 0x02,0x4A,0x40,0x18,0x40,0x00,0x10,0x5A,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0x1C,0x49,0x10,0xB5,0x4A,0x7A,0x1C,0x49,0x00,0x20,0x00,0x2A,0x15,0xD1,0x0A,0x89, + 0x00,0x2A,0x0F,0xD0,0x19,0x49,0x8A,0x42,0x0C,0xD0,0x10,0x00,0x1E,0x21,0x48,0x43, + 0x64,0x21,0xFD,0xF7,0xAD,0xF8,0xFF,0x30,0x4B,0x21,0x91,0x30,0xC9,0x00,0x88,0x42, + 0x00,0xD9,0x08,0x00,0x10,0xBC,0x08,0xBC,0x18,0x47,0x0F,0x4C,0x88,0x89,0xA4,0x89, + 0x0F,0x4A,0x01,0x00,0xA2,0x18,0x0E,0x4C,0xFF,0x39,0x7D,0x23,0xA6,0x39,0xDB,0x00, + 0x64,0x42,0x99,0x42,0x06,0xD8,0x10,0x00,0x50,0x43,0x59,0x1C,0xFD,0xF7,0x90,0xF8, + 0x20,0x1A,0xE7,0xE7,0xA0,0x42,0xE5,0xD9,0x03,0x21,0x10,0x00,0xFD,0xF7,0x88,0xF8, + 0x00,0x19,0xDF,0xE7,0x40,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0x0F,0x00,0x00, + 0x73,0xFA,0xFF,0xFF,0x04,0x48,0x41,0x69,0x49,0x06,0x01,0xD5,0x10,0x20,0x70,0x47, + 0x40,0x69,0xC0,0x06,0xC0,0x0E,0x70,0x47,0x00,0x40,0x00,0x30,0x70,0xB5,0x12,0x4D, + 0x00,0x24,0x01,0x21,0x49,0x07,0x68,0x69,0x80,0x06,0xFC,0xD4,0xE8,0x68,0x6A,0x68, + 0x6A,0x60,0x05,0xE0,0x6A,0x69,0x92,0x06,0xFC,0xD4,0xAA,0x69,0x04,0xC1,0xA4,0x18, + 0x02,0x00,0x40,0x1E,0x01,0x2A,0xF5,0xD8,0x2E,0x20,0x68,0x60,0x68,0x68,0x80,0x07, + 0xFC,0xD5,0x02,0xF0,0x93,0xFF,0x05,0x48,0xE8,0x61,0xEC,0x61,0x68,0x69,0x80,0x06, + 0xFC,0xD4,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30,0xAB,0xFC,0xFF,0x8F, + 0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9,0xB0,0x40,0x9F,0xE5,0x0C,0x00,0x94,0xE5, + 0x00,0x00,0x50,0xE3,0xFC,0xFF,0xFF,0x0A,0x04,0x00,0x94,0xE5,0x04,0x00,0x84,0xE5, + 0x04,0x00,0x94,0xE5,0x04,0x00,0x10,0xE3,0x10,0x00,0x00,0x0A,0x0C,0x00,0x94,0xE5, + 0x04,0x10,0x90,0xE4,0x1C,0x10,0x84,0xE5,0x02,0x12,0xA0,0xE3,0x38,0x10,0x91,0xE5, + 0x04,0x00,0x00,0xEA,0x04,0x20,0x90,0xE4,0x1C,0x20,0x84,0xE5,0x14,0x20,0x94,0xE5, + 0x40,0x00,0x12,0xE3,0xFC,0xFF,0xFF,0x1A,0x01,0x10,0x51,0xE2,0xF8,0xFF,0xFF,0x1A, + 0x14,0x00,0x94,0xE5,0x5F,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x1A,0x11,0x00,0x00,0xEA, + 0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3,0xE8,0xFF,0xFF,0x0A,0x14,0x00,0x94,0xE5, + 0x20,0x00,0x10,0xE3,0xE5,0xFF,0xFF,0x1A,0x0C,0x00,0x94,0xE5,0x08,0x00,0x50,0xE3, + 0x10,0x40,0xBD,0x08,0x9A,0x0B,0x00,0x0A,0x14,0x10,0x94,0xE5,0x5F,0x00,0x11,0xE3, + 0x18,0x10,0x94,0x15,0x04,0x10,0x80,0x14,0xFA,0xFF,0xFF,0x1A,0x04,0x00,0x94,0xE5, + 0x02,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x0A,0x91,0x0B,0x00,0xEB,0xD2,0xFF,0xFF,0xEA, + 0x00,0x40,0x00,0x30,0xF8,0xB5,0x20,0x4E,0x20,0x4F,0x00,0x25,0x2C,0x00,0x78,0x69, + 0x80,0x06,0xFC,0xD4,0x78,0x68,0x78,0x60,0xF8,0x68,0x04,0x28,0x0E,0xD1,0x1C,0x48, + 0x40,0x21,0x04,0xE0,0x7A,0x69,0x92,0x06,0xFC,0xD4,0xBA,0x69,0x04,0xC0,0x49,0x1E, + 0xF8,0xD2,0x20,0x25,0x17,0x4C,0x30,0x78,0x01,0x21,0x06,0xE0,0x05,0x28,0x07,0xD1, + 0x15,0x48,0x16,0x4C,0x85,0x08,0x30,0x78,0x02,0x21,0x08,0x43,0x30,0x70,0x10,0xE0, + 0x03,0x28,0x0E,0xD1,0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0, + 0xF5,0xFE,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x78,0x69,0x80,0x06,0xFC,0xD4,0xB8,0x69, + 0x01,0xC4,0x6D,0x1E,0xF8,0xD2,0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5, + 0x02,0xF0,0xE4,0xFE,0xC3,0xE7,0x00,0x00,0x16,0x07,0x00,0x20,0x00,0x40,0x00,0x30, + 0x00,0x90,0x00,0x40,0x00,0xA0,0x00,0x40,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x10, + 0x01,0x49,0x20,0x20,0x48,0x61,0x70,0x47,0x00,0x40,0x00,0x30,0xF8,0xB5,0x01,0x22, + 0x52,0x07,0x11,0x68,0x3D,0x48,0x01,0x29,0x80,0x79,0x01,0xD1,0x01,0x25,0x03,0xE0, + 0x11,0x68,0x01,0x29,0x06,0xD9,0x02,0x25,0x00,0x28,0x0B,0xD0,0x00,0x21,0x33,0x27, + 0x7F,0x01,0x3B,0xE0,0x00,0x28,0x05,0xD1,0x34,0x48,0x0D,0x22,0x00,0x21,0x14,0x38, + 0x01,0xF0,0x18,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x4A,0x19,0x00,0x24,0x92,0x00, + 0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x26,0xD0,0x01,0x20,0x93,0x00, + 0x1B,0x0F,0x2B,0x4E,0x36,0x18,0xF6,0x19,0x36,0x7B,0x9E,0x42,0x01,0xD1,0x04,0x00, + 0x02,0xE0,0x40,0x1C,0x0C,0x28,0xF4,0xD9,0x00,0x2C,0x06,0xD0,0x0F,0x23,0x9B,0x06, + 0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43,0x0D,0xE0,0x21,0x4C,0x01,0x20,0x26,0x18, + 0xF6,0x19,0x36,0x7B,0x00,0x2E,0x03,0xD1,0x24,0x18,0xE4,0x19,0x23,0x73,0xED,0xE7, + 0x40,0x1C,0x0C,0x28,0xF3,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07, + 0x02,0x68,0x8A,0x42,0xC9,0xD8,0x00,0x21,0x21,0xE0,0x4A,0x19,0x92,0x00,0x10,0x18, + 0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x18,0xD1,0x11,0x4E,0x01,0x20,0x93,0x00, + 0x1C,0x0F,0x33,0x18,0xDB,0x19,0x1B,0x7B,0xA3,0x42,0x0A,0xD1,0x34,0x18,0x00,0x23, + 0xE4,0x19,0x23,0x73,0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43, + 0x02,0xE0,0x40,0x1C,0x0C,0x28,0xEC,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20, + 0x40,0x07,0x02,0x68,0x8A,0x42,0xD8,0xD8,0x9C,0xE7,0x00,0x00,0xC0,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0x03,0x23,0x1B,0x07,0xDA,0x68,0x01,0x21,0x81,0x40,0x8A,0x43, + 0xDA,0x60,0x70,0x47,0x10,0xB4,0x0F,0x24,0x03,0x23,0x1B,0x07,0x1C,0x60,0x05,0x4C, + 0x60,0x63,0x19,0x61,0x9A,0x60,0x00,0x20,0xC0,0x43,0xD8,0x60,0x00,0x20,0x18,0x60, + 0x10,0xBC,0x70,0x47,0x40,0x00,0x00,0x30,0x03,0x4B,0x00,0xB5,0x82,0x00,0x99,0x50, + 0xFF,0xF7,0xE0,0xFF,0x08,0xBC,0x18,0x47,0x4C,0x07,0x00,0x20,0xF0,0xB5,0x87,0xB0, + 0xFE,0xF7,0x5C,0xFB,0xFE,0xF7,0x3A,0xFB,0x01,0xF0,0x22,0xFF,0x02,0xF0,0xFE,0xFC, + 0x00,0xF0,0xAE,0xFD,0x00,0xF0,0xBC,0xFB,0xFD,0xF7,0xF8,0xFF,0xFD,0xF7,0x66,0xFA, + 0x39,0x48,0x00,0x68,0x80,0x30,0x40,0x7B,0x00,0x28,0x04,0xD1,0xFF,0xF7,0x56,0xFA, + 0xFF,0xF7,0x06,0xFA,0x03,0xE0,0xFF,0xF7,0x03,0xFA,0xFF,0xF7,0x4F,0xFA,0x01,0x27, + 0x7F,0x07,0x78,0x68,0x6B,0x46,0x03,0x90,0x00,0x20,0xD8,0x73,0x03,0x98,0x78,0x60, + 0x02,0xF0,0xE0,0xFF,0x02,0xF0,0x50,0xFE,0x38,0x68,0x00,0x28,0x07,0xD0,0x78,0x68, + 0x80,0x0F,0x80,0x07,0x03,0xD5,0x3E,0x68,0x02,0x24,0x76,0x1C,0x37,0xE0,0x01,0x24, + 0x26,0x00,0xA0,0x00,0xC0,0x19,0x06,0x90,0x05,0x68,0xA8,0x01,0x80,0x0D,0x05,0x90, + 0xA8,0x05,0x80,0x0D,0x04,0x90,0x21,0x48,0x00,0x78,0x00,0x28,0x03,0xD1,0x04,0xA9, + 0x05,0xA8,0x02,0xF0,0x77,0xFE,0x1E,0x4B,0x00,0x21,0x58,0x8C,0x40,0x1E,0x02,0x04, + 0x12,0x0C,0x68,0x46,0x06,0xC0,0x18,0x8C,0x0A,0x00,0x04,0xA9,0x40,0x1E,0x03,0x04, + 0x1B,0x0C,0x05,0xA8,0x03,0xF0,0x7C,0xFE,0x04,0xA9,0x05,0xA8,0x03,0xF0,0x82,0xFC, + 0x14,0x48,0x04,0x99,0x05,0x40,0x05,0x98,0x89,0x05,0x80,0x05,0x80,0x09,0x05,0x43, + 0xA8,0x0A,0x80,0x02,0x89,0x0D,0x08,0x43,0x06,0x99,0x08,0x60,0x64,0x1C,0xB4,0x42, + 0xC7,0xD9,0x38,0x68,0xFC,0xF7,0x7A,0xFF,0xFD,0xF7,0x1A,0xFE,0x02,0xF0,0xD4,0xFD, + 0xFF,0xF7,0xDC,0xFE,0xFC,0xF7,0xBC,0xFE,0x03,0xF0,0x16,0xFD,0x06,0x48,0x40,0x79, + 0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xCC,0x07,0x00,0x20,0x1F,0x07,0x00,0x20, + 0x00,0x93,0x00,0x00,0xFF,0xFF,0x00,0xFC,0x40,0x00,0x00,0x20,0xF8,0xB5,0x02,0xF0, + 0x59,0xFC,0xFE,0xF7,0x8B,0xFD,0xFE,0xF7,0x5B,0xFE,0xFE,0xF7,0xA3,0xFE,0x1A,0x48, + 0x00,0x21,0xC0,0x7F,0x03,0xF0,0xD0,0xFB,0x18,0x4F,0x19,0x4D,0xFC,0x03,0x00,0x20, + 0x28,0x70,0xE8,0x61,0xE8,0x79,0x00,0x28,0x1A,0xD0,0x01,0x26,0x15,0xE0,0x78,0x68, + 0x00,0x07,0x12,0xD5,0xA6,0x63,0xF8,0x68,0x07,0x28,0x06,0xD1,0x02,0xF0,0x76,0xFD, + 0xFF,0xF7,0x3B,0xF9,0xFF,0x20,0xE0,0x63,0x07,0xE0,0x0B,0x28,0x10,0xD1,0xE0,0x63, + 0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0x69,0xFD,0xE0,0x6B,0x0B,0x28,0xE6,0xD1, + 0xFE,0xF7,0x8C,0xF9,0x28,0x78,0x00,0x28,0xD9,0xD0,0x02,0xF0,0x1B,0xFA,0xD6,0xE7, + 0x78,0x68,0x80,0x07,0xFC,0xD5,0xEE,0xE7,0x00,0x93,0x00,0x00,0x00,0x40,0x00,0x30, + 0x14,0x07,0x00,0x20,0x70,0xB5,0x05,0x00,0x1A,0x48,0x1B,0x4A,0x00,0x68,0x12,0x88, + 0x60,0x30,0x01,0x7E,0xC0,0x7D,0x2C,0x78,0x89,0x18,0x0E,0x06,0x17,0x49,0x36,0x0E, + 0x4A,0x7F,0x00,0x2A,0x0D,0xD1,0x89,0x7F,0x01,0x29,0x01,0xD1,0x80,0x1C,0x06,0xE0, + 0x02,0x29,0x01,0xD1,0x00,0x1D,0x02,0xE0,0x03,0x29,0x02,0xD1,0x80,0x1D,0x00,0x06, + 0x00,0x0E,0x00,0x2C,0x0A,0xD0,0x84,0x42,0x08,0xD3,0x14,0x21,0x20,0x00,0xFC,0xF7, + 0xEF,0xFD,0x76,0x1C,0xB0,0x42,0x05,0xD2,0x14,0x2C,0x07,0xD3,0x00,0x20,0x70,0xBC, + 0x08,0xBC,0x18,0x47,0x14,0x2C,0x01,0xD3,0xF0,0x20,0x00,0xE0,0x13,0x20,0x28,0x70, + 0x01,0x20,0xF4,0xE7,0xCC,0x07,0x00,0x20,0x00,0x07,0x00,0x20,0xA0,0x03,0x00,0x20, + 0x10,0xB5,0x0C,0x24,0x20,0x00,0xFE,0xF7,0x07,0xFA,0x64,0x1E,0xFA,0xD5,0x05,0x48, + 0x01,0x22,0x41,0x7C,0x01,0x29,0x01,0xD8,0x00,0x29,0x00,0xD1,0x42,0x74,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0xA0,0x93,0x00,0x00,0x10,0xB5,0x07,0x4C,0x07,0x48,0x22,0x00, + 0x00,0x21,0x01,0xF0,0x5F,0xFD,0x06,0x48,0x22,0x00,0x00,0x21,0x01,0xF0,0x5A,0xFD, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD2,0x02,0x00,0x00,0x00,0x00,0x00,0x10, + 0xD2,0x07,0x00,0x20,0x10,0xB5,0x40,0x22,0xD4,0x05,0x00,0x21,0x20,0x00,0x01,0xF0, + 0x49,0xFD,0x01,0x20,0xA0,0x63,0x10,0xBC,0x08,0xBC,0x18,0x47,0x14,0x48,0x10,0xB5, + 0x44,0x08,0x14,0x49,0x14,0x48,0x62,0x00,0x01,0xF0,0x18,0xFD,0x10,0x48,0xC0,0x07, + 0x08,0xD0,0x0F,0x48,0xC2,0x07,0x0F,0x48,0xD2,0x0F,0x01,0x19,0x0E,0x48,0x00,0x19, + 0x01,0xF0,0xFC,0xFC,0x0D,0x48,0x00,0x21,0x84,0x08,0x0D,0x48,0xA2,0x00,0x01,0xF0, + 0x39,0xFD,0x0A,0x48,0x80,0x07,0x07,0xD0,0x08,0x48,0x00,0x21,0x82,0x07,0x08,0x48, + 0x92,0x0F,0x00,0x19,0x01,0xF0,0x1E,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0x00,0x00,0x00,0xD4,0x79,0x00,0x00,0x40,0x00,0x00,0x20,0x28,0x0B,0x00,0x00, + 0x40,0x00,0x00,0x20,0x05,0x49,0xC8,0x05,0x41,0x62,0x05,0x49,0x81,0x62,0x05,0x48, + 0xFF,0x21,0xC1,0x60,0x00,0x21,0x41,0x61,0x70,0x47,0x00,0x00,0x80,0x88,0x3C,0x03, + 0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x40,0x02,0x49,0x03,0x48,0x01,0x60,0x20,0x21, + 0x41,0x60,0x70,0x47,0xDE,0x10,0x05,0x00,0x00,0x40,0x00,0x30,0x10,0xB5,0x00,0x24, + 0x20,0x00,0xFE,0xF7,0xF5,0xF9,0x64,0x1C,0x0C,0x2C,0xF9,0xDB,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x10,0xB5,0x01,0x24,0x64,0x03,0x20,0x00,0xFD,0xF7,0x84,0xF8, + 0xFE,0xF7,0x06,0xFD,0xFE,0xF7,0xD0,0xFC,0xFE,0xF7,0x0A,0xFD,0xFE,0xF7,0x00,0xFD, + 0xFE,0xF7,0xC2,0xFC,0x07,0x48,0x01,0x68,0xF0,0x22,0x91,0x43,0x06,0x4A,0x12,0x7B, + 0x12,0x07,0x12,0x0E,0x11,0x43,0x01,0x60,0x20,0x00,0xFD,0xF7,0x65,0xF8,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0xA0,0x00,0x40,0x00,0x93,0x00,0x00,0x10,0xB5,0x02,0xF0, + 0x09,0xFB,0x02,0xF0,0xE9,0xFA,0xFF,0x20,0xFD,0xF7,0x96,0xF8,0xFF,0xF7,0xAA,0xFF, + 0x11,0x48,0x80,0x22,0x00,0x21,0x01,0xF0,0xC5,0xFC,0x08,0x20,0xFD,0xF7,0x54,0xF8, + 0x00,0x22,0x0E,0x49,0xD2,0x43,0x00,0x20,0xFF,0xF7,0x04,0xFE,0x00,0xF0,0x1A,0xF8, + 0x0B,0x48,0x40,0x7A,0x00,0x28,0x04,0xD0,0x40,0x20,0xFD,0xF7,0x45,0xF8,0x00,0xF0, + 0x4D,0xF8,0x00,0xF0,0x37,0xF8,0x10,0x20,0x02,0xF0,0xD7,0xFA,0xFE,0xF7,0x18,0xFE, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x4C,0x07,0x00,0x20,0x02,0x03,0x0F,0x0F, + 0x00,0x93,0x00,0x00,0xF8,0xB5,0x03,0x24,0xE6,0x01,0x13,0x25,0x30,0x00,0xFD,0xF7, + 0x2B,0xF8,0x20,0x02,0xFD,0xF7,0x52,0xF8,0x0C,0x48,0x0A,0x21,0x00,0x6B,0xFC,0xF7, + 0xDF,0xFC,0x02,0x00,0xFF,0x21,0x90,0x31,0x02,0x20,0x00,0x23,0x00,0x95,0x03,0xF0, + 0xFD,0xFA,0x07,0x4A,0x27,0x21,0x03,0x20,0x00,0x23,0x00,0x94,0x03,0xF0,0xF6,0xFA, + 0x30,0x00,0xFD,0xF7,0x09,0xF8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00, + 0xE8,0xFD,0x00,0x00,0x10,0xB5,0x08,0x49,0x00,0x20,0xFF,0xF7,0xCD,0xFD,0x03,0xF0, + 0xA8,0xFC,0x7D,0x20,0xC0,0x00,0x03,0xF0,0x97,0xFC,0x00,0x20,0xFF,0xF7,0xAA,0xFD, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x4D,0x78,0x00,0x00,0x0A,0x48,0x10,0xB5, + 0x00,0x6B,0x0A,0x49,0x0A,0x4C,0x88,0x42,0x05,0xD9,0x7D,0x21,0xC9,0x00,0xFC,0xF7, + 0xA7,0xFC,0x64,0x30,0x01,0xE0,0xFF,0x20,0xF5,0x30,0x20,0x63,0x03,0xF0,0x52,0xFC, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x93,0x00,0x00,0x07,0xA5,0x07,0x00, + 0x14,0x07,0x00,0x20,0x10,0xB5,0xFF,0xF7,0xCF,0xFE,0x14,0x48,0x00,0x7A,0x03,0xF0, + 0xF7,0xF9,0xFF,0xF7,0x3B,0xFF,0x11,0x48,0x11,0x4A,0xA0,0x30,0x41,0x89,0x00,0x24, + 0xD1,0x83,0x10,0x49,0x0F,0x4A,0xCC,0x60,0x0C,0x61,0x0F,0x49,0xC0,0x3A,0x09,0x68, + 0x40,0x31,0x49,0x7D,0x51,0x70,0x01,0x00,0x20,0x39,0x0A,0x8B,0x09,0x49,0x40,0x39, + 0x8A,0x63,0x00,0x88,0xC8,0x63,0xFF,0xF7,0x9B,0xFE,0x08,0x48,0xC4,0x80,0xFE,0xF7, + 0xEF,0xFA,0x07,0x48,0x04,0x70,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00, + 0x40,0x00,0x00,0x20,0x00,0x07,0x00,0x20,0xCC,0x07,0x00,0x20,0x00,0x02,0x00,0x20, + 0x15,0x07,0x00,0x20,0xF7,0xB5,0x2C,0x48,0x86,0xB0,0x04,0x90,0x00,0x20,0x2B,0x4E, + 0x07,0x00,0x02,0x90,0x03,0x90,0x05,0x90,0xFE,0xF7,0xCC,0xFB,0xFE,0xF7,0xA2,0xFC, + 0x27,0x48,0x40,0x7F,0x01,0x90,0x26,0x48,0x20,0x38,0x40,0x7F,0x00,0x25,0x00,0x90, + 0x00,0x24,0x21,0x00,0x28,0x00,0xFF,0xF7,0x39,0xFB,0x00,0x28,0x1B,0xD0,0x0E,0x21, + 0x69,0x43,0x04,0x9A,0x09,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A, + 0x01,0x1E,0x00,0xDC,0x41,0x42,0x00,0x28,0x01,0xDB,0x01,0x98,0x00,0xE0,0x00,0x98, + 0x81,0x42,0x01,0xDD,0x01,0x22,0x05,0x92,0x08,0x1A,0xB0,0x42,0x03,0xDD,0x06,0x00, + 0x2F,0x00,0x02,0x94,0x03,0x91,0x64,0x1C,0x0E,0x2C,0xDA,0xD3,0x6D,0x1C,0x15,0x2D, + 0xD6,0xD3,0x03,0x99,0x08,0x98,0x01,0x60,0x0E,0x48,0x00,0x69,0xC0,0x07,0x05,0xD0, + 0x07,0x99,0x02,0x98,0x08,0x60,0x06,0x98,0x07,0x60,0x04,0xE0,0x07,0x98,0x07,0x60, + 0x06,0x99,0x02,0x98,0x08,0x60,0x05,0x98,0x00,0x28,0x00,0xD0,0x04,0x20,0x09,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD4,0x02,0x10,0x40,0x78,0xEC,0xFF,0xFF, + 0x20,0x93,0x00,0x00,0x00,0x90,0x00,0x40,0x78,0x47,0xC0,0x46,0x68,0x30,0x9F,0xE5, + 0x60,0xC0,0x9F,0xE5,0x0E,0x06,0xD3,0xE5,0x01,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3, + 0x0F,0x16,0xD3,0x15,0x00,0x00,0xA0,0x13,0x00,0x00,0x51,0x13,0x1E,0xFF,0x2F,0x91, + 0x0E,0x26,0xD3,0xE5,0x00,0x10,0x83,0xE0,0x3D,0x16,0xD1,0xE5,0x02,0x00,0x12,0xE3, + 0x3C,0x26,0xD3,0xE5,0x82,0x21,0x62,0x00,0x82,0x10,0x81,0x00,0x81,0x11,0x61,0x10, + 0x81,0x10,0x82,0x10,0x01,0x11,0x9C,0xE7,0x80,0x20,0x83,0xE0,0x02,0x19,0xC1,0xE3, + 0xB0,0x11,0xC2,0xE1,0x0F,0x16,0xD3,0xE5,0x01,0x00,0x80,0xE2,0x00,0x00,0x51,0xE1, + 0xEE,0xFF,0xFF,0x8A,0x1E,0xFF,0x2F,0xE1,0x00,0x10,0x10,0x40,0x40,0x00,0x00,0x20, + 0x10,0xB4,0x0E,0x24,0x62,0x43,0x51,0x18,0x0A,0x4A,0x49,0x00,0x52,0x5E,0x0A,0x49, + 0x1E,0x24,0x0C,0x5F,0xA2,0x42,0x0B,0xDD,0x01,0x78,0x00,0x29,0x08,0xD1,0x03,0x70, + 0x06,0x48,0x59,0x00,0x08,0x18,0xFF,0x30,0xA1,0x30,0xC1,0x88,0x49,0x1C,0xC1,0x80, + 0x10,0xBC,0x70,0x47,0x00,0x00,0x00,0x10,0xE0,0x01,0x00,0x20,0x40,0x00,0x00,0x20, + 0xF0,0xB4,0x9D,0x00,0x2E,0x4B,0x0A,0x27,0xEB,0x18,0xFF,0x33,0x21,0x33,0x08,0x25, + 0x5D,0x5F,0xDF,0x5F,0x00,0x24,0x84,0x46,0x04,0x9E,0x05,0x98,0x23,0x00,0x01,0x2A, + 0x0E,0xD0,0x02,0x2A,0x3A,0xD0,0x03,0x2A,0x3E,0xD0,0x04,0x2A,0x11,0xD1,0xAB,0x19, + 0x1B,0x06,0x1B,0x16,0x0E,0x2B,0x3B,0xDC,0x0E,0x24,0x67,0x43,0xFC,0x18,0x06,0xE0, + 0xBB,0x1B,0x1B,0x06,0x1B,0x16,0x33,0xD4,0x0E,0x24,0x5C,0x43,0x64,0x19,0x24,0x06, + 0x24,0x0E,0x1C,0x4D,0x64,0x00,0x2D,0x5F,0x1B,0x4C,0x1E,0x26,0xA6,0x5F,0xB5,0x42, + 0x26,0xDD,0x64,0x46,0x24,0x78,0x00,0x2C,0x22,0xD1,0x84,0x00,0x01,0x2A,0x21,0xD0, + 0x84,0x00,0x61,0x18,0x02,0x2A,0x1F,0xD0,0x03,0x2A,0x1F,0xD0,0x04,0x2A,0x00,0xD1, + 0xCB,0x70,0x61,0x46,0x08,0x70,0x41,0x00,0x0D,0x48,0x08,0x18,0xFF,0x30,0xA1,0x30, + 0xC1,0x88,0x49,0x1C,0xC1,0x80,0x01,0x20,0xF0,0xBC,0x70,0x47,0xBB,0x19,0x1B,0x06, + 0x1B,0x16,0x15,0x2B,0xD0,0xDD,0x03,0xE0,0xAB,0x1B,0x1B,0x06,0x1B,0x16,0xC3,0xD5, + 0x00,0x20,0xF1,0xE7,0x0B,0x55,0xE4,0xE7,0x4B,0x70,0xE2,0xE7,0x8B,0x70,0xE0,0xE7, + 0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10,0xE0,0x01,0x00,0x20,0x88,0x42,0x00,0xDA, + 0x08,0x00,0x70,0x47,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00, + 0x70,0x47,0x10,0xB5,0x02,0x9C,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA, + 0x10,0x00,0x22,0x00,0x19,0x00,0xFF,0xF7,0xED,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0xF0,0xB5,0xF3,0x48,0xFF,0xB0,0x00,0x68,0x9E,0xB0,0x40,0x30,0x85,0x8B,0x00,0x20, + 0x96,0x90,0x15,0x20,0x95,0x90,0xEF,0x48,0x0C,0x22,0x00,0x21,0x01,0xF0,0xB2,0xFA, + 0xEC,0x48,0x18,0x22,0x00,0x21,0x0C,0x30,0x01,0xF0,0xAC,0xFA,0xFF,0x22,0x6A,0x32, + 0x00,0x21,0x36,0xA8,0x01,0xF0,0xA6,0xFA,0x34,0x22,0x00,0x21,0x29,0xA8,0x01,0xF0, + 0xA1,0xFA,0x34,0x22,0x00,0x21,0x1C,0xA8,0x01,0xF0,0x9C,0xFA,0x34,0x22,0x00,0x21, + 0x0F,0xA8,0x01,0xF0,0x97,0xFA,0x34,0x22,0x00,0x21,0x02,0xA8,0x01,0xF0,0x92,0xFA, + 0xDD,0x4C,0x64,0x21,0x20,0x89,0x68,0x43,0xFC,0xF7,0xBA,0xF9,0xD9,0x49,0x89,0x1D, + 0x9C,0x91,0xE1,0x89,0x40,0x18,0x9C,0x99,0xC8,0x83,0x20,0x79,0x00,0x28,0x7E,0xD0, + 0x00,0x26,0xF7,0xE0,0xB3,0x00,0x9B,0x18,0xFF,0x33,0x21,0x33,0x08,0x22,0x9A,0x5E, + 0x00,0x21,0x08,0x00,0x00,0x2A,0x03,0xDB,0x0E,0x20,0x0E,0x2A,0x00,0xDC,0x10,0x00, + 0x04,0x06,0x0A,0x20,0x18,0x5E,0x24,0x0E,0x00,0x28,0x03,0xDB,0x15,0x21,0x15,0x28, + 0x00,0xDC,0x01,0x00,0x0D,0x06,0x2D,0x0E,0x28,0x00,0x0E,0x21,0x48,0x43,0x9B,0x90, + 0x00,0x19,0x36,0xA9,0x08,0x5C,0x00,0x28,0x04,0xD1,0x96,0x98,0x40,0x1C,0x00,0x06, + 0x00,0x0E,0x96,0x90,0x01,0x20,0x91,0x90,0x94,0x90,0x93,0x90,0x96,0x98,0x29,0xAF, + 0x83,0x00,0x9A,0x93,0xD8,0x19,0xFD,0x54,0x99,0x90,0x45,0x70,0x84,0x70,0xC4,0x70, + 0x96,0x9A,0x00,0x21,0x68,0x46,0x06,0xC0,0xF8,0x5C,0x0E,0x21,0x33,0x00,0x48,0x43, + 0x00,0x19,0x36,0xA9,0x40,0x18,0x01,0x22,0x29,0xA9,0xFF,0xF7,0xF9,0xFE,0x00,0x2D, + 0x92,0x90,0x1D,0xD0,0x00,0x2C,0x0D,0xD0,0x68,0x1E,0x0E,0x21,0x48,0x43,0x00,0x19, + 0x36,0xA9,0x40,0x18,0x96,0x9B,0x40,0x1E,0x6A,0x1E,0x61,0x1E,0xFF,0xF7,0xC8,0xFE, + 0x0E,0x2C,0x0B,0xD2,0x68,0x1E,0x0E,0x21,0x48,0x43,0x00,0x19,0x36,0xA9,0x40,0x18, + 0x96,0x9B,0x40,0x1C,0x6A,0x1E,0x61,0x1C,0xFF,0xF7,0xBA,0xFE,0x15,0x2D,0x1D,0xD2, + 0x00,0x2C,0x0D,0xD0,0x68,0x1C,0x0E,0x21,0x48,0x43,0x00,0x19,0x36,0xA9,0x40,0x18, + 0x96,0x9B,0x40,0x1E,0x6A,0x1C,0x61,0x1E,0xFF,0xF7,0xAA,0xFE,0x0E,0x2C,0x0D,0xD2, + 0x68,0x1C,0x0E,0x21,0x48,0x43,0x00,0x19,0x36,0xA9,0x40,0x18,0x00,0xE0,0x22,0xE1, + 0x96,0x9B,0x40,0x1C,0x6A,0x1C,0x61,0x1C,0xFF,0xF7,0x9A,0xFE,0x01,0x27,0x6B,0xE0, + 0x92,0x98,0x00,0x28,0x13,0xD0,0xBC,0x42,0x11,0xD3,0x96,0x9A,0x9A,0x98,0x01,0x92, + 0x29,0xA9,0x00,0x97,0x08,0x5C,0x0E,0x21,0x33,0x00,0x40,0x1E,0x48,0x43,0x00,0x19, + 0x36,0xA9,0x40,0x18,0x01,0x22,0x29,0xA9,0xFF,0xF7,0xA2,0xFE,0x00,0xE0,0x00,0x20, + 0x92,0x90,0x91,0x98,0x00,0x28,0x13,0xD0,0xE8,0x19,0x15,0x28,0x10,0xD2,0x96,0x9A, + 0x99,0x98,0x01,0x92,0x00,0x97,0x40,0x78,0x0E,0x21,0x33,0x00,0x40,0x1C,0x48,0x43, + 0x00,0x19,0x36,0xA9,0x40,0x18,0x02,0x22,0x29,0xA9,0xFF,0xF7,0x89,0xFE,0x00,0xE0, + 0x00,0x20,0x91,0x90,0x94,0x98,0x00,0x28,0x11,0xD0,0xBC,0x42,0x0F,0xD3,0x96,0x9A, + 0x99,0x98,0x00,0x97,0x01,0x92,0x80,0x78,0x36,0xA9,0x33,0x00,0x41,0x18,0x9B,0x98, + 0x03,0x22,0x40,0x1E,0x08,0x18,0x29,0xA9,0xFF,0xF7,0x72,0xFE,0x00,0xE0,0x00,0x20, + 0x94,0x90,0x93,0x98,0x00,0x28,0x12,0xD0,0xE0,0x19,0x0E,0x28,0x0F,0xD2,0x96,0x9A, + 0x99,0x98,0x00,0x97,0x01,0x92,0xC0,0x78,0x36,0xA9,0x33,0x00,0x41,0x18,0x9B,0x98, + 0x04,0x22,0x40,0x1C,0x08,0x18,0x29,0xA9,0xFF,0xF7,0x5A,0xFE,0x00,0xE0,0x00,0x20, + 0x93,0x90,0x91,0x99,0x92,0x98,0x40,0x18,0x94,0x99,0x40,0x18,0x93,0x99,0x40,0x18, + 0x05,0xD0,0x7F,0x1C,0x3F,0x06,0x3F,0x0E,0x95,0x98,0x87,0x42,0x90,0xD3,0x76,0x1C, + 0x36,0x06,0x36,0x0E,0x58,0x4A,0x10,0x79,0xB0,0x42,0x00,0xD9,0x02,0xE7,0x14,0x00, + 0x20,0x79,0x35,0xE0,0x83,0x00,0x1D,0x19,0xFF,0x35,0x21,0x35,0x06,0x23,0xEB,0x5E, + 0x00,0x22,0x11,0x00,0x00,0x2B,0x03,0xDB,0x15,0x21,0x15,0x2B,0x00,0xDC,0x19,0x00, + 0x0B,0x06,0x04,0x21,0x69,0x5E,0x1B,0x0E,0x00,0x29,0x03,0xDB,0x0E,0x22,0x0E,0x29, + 0x00,0xDC,0x0A,0x00,0x11,0x06,0x0E,0x22,0x53,0x43,0x09,0x0E,0x59,0x18,0x36,0xAA, + 0x51,0x5C,0x22,0x18,0x13,0x00,0xFF,0x32,0x81,0x32,0x51,0x76,0x51,0x7E,0xFF,0x22, + 0x59,0x32,0x49,0x00,0x09,0x19,0xFF,0x31,0xA1,0x31,0xC9,0x88,0x09,0x06,0x09,0x0E, + 0xD1,0x54,0xA2,0x8B,0x91,0x42,0x00,0xD9,0xA1,0x83,0x40,0x1E,0x00,0x06,0x00,0x0E, + 0x00,0x28,0xC7,0xD1,0x01,0x25,0x62,0xE0,0xAC,0x00,0x29,0xA8,0x01,0x5D,0x20,0x18, + 0x84,0x46,0x40,0x78,0x97,0x90,0x39,0xE0,0x62,0x46,0xD2,0x78,0x60,0x46,0x80,0x78, + 0x98,0x92,0x2D,0xE0,0x0E,0x22,0x4A,0x43,0x12,0x18,0x36,0xAB,0x9B,0x5C,0xAB,0x42, + 0x22,0xD1,0x2E,0x4B,0x52,0x00,0x9A,0x5E,0x9C,0x9E,0x1E,0x23,0xF3,0x5E,0x9A,0x42, + 0x1A,0xDD,0x29,0x4F,0xD2,0x1A,0x46,0x00,0xF6,0x19,0x36,0x8C,0x12,0x04,0x12,0x0C, + 0x56,0x43,0x1C,0xAB,0x1B,0x59,0x9B,0x19,0x1C,0xAE,0x33,0x51,0x4E,0x00,0xF6,0x19, + 0x40,0x36,0xB6,0x8A,0x0F,0xAB,0x1B,0x59,0x56,0x43,0x9B,0x19,0x0F,0xAE,0x33,0x51, + 0x02,0xAE,0x33,0x59,0x9A,0x18,0x32,0x51,0x40,0x1C,0x98,0x9A,0x00,0x06,0x00,0x0E, + 0x82,0x42,0xCF,0xD2,0x49,0x1C,0x97,0x98,0x09,0x06,0x09,0x0E,0x88,0x42,0xC3,0xD2, + 0x02,0xA8,0x06,0x59,0x00,0x2E,0x12,0xD0,0x1C,0xA8,0x00,0x59,0x31,0x00,0xFC,0xF7, + 0x57,0xF9,0x11,0x49,0x6A,0x00,0x57,0x18,0xFF,0x21,0x6B,0x31,0xC8,0x53,0x0F,0xA8, + 0x00,0x59,0x31,0x00,0xFC,0xF7,0x4C,0xF9,0xFF,0x37,0x81,0x37,0x78,0x80,0x0A,0x48, + 0x40,0x19,0xFF,0x30,0x81,0x30,0x45,0x76,0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x06,0x48, + 0x00,0x79,0xA8,0x42,0x98,0xD2,0x7F,0xB0,0x1E,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0xCC,0x07,0x00,0x20,0xDA,0x01,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10, + 0xF0,0xB5,0x00,0x20,0xF3,0xB0,0x0E,0x90,0x01,0x24,0x0F,0x90,0x0B,0x90,0x09,0x90, + 0xFF,0x4D,0x07,0x90,0x28,0x78,0xFF,0x4F,0x00,0x28,0x0A,0xD0,0xFE,0x48,0x01,0x79, + 0x06,0x91,0x41,0x79,0x05,0x91,0x81,0x79,0x04,0x91,0xC1,0x79,0x03,0x91,0x00,0x7A, + 0x0C,0xE0,0x38,0x68,0x01,0x00,0x20,0x30,0x42,0x7F,0x40,0x31,0x06,0x92,0x82,0x7F, + 0x05,0x92,0xC0,0x7F,0x04,0x90,0x08,0x78,0x03,0x90,0x48,0x78,0x2E,0x22,0x00,0x21, + 0x02,0x90,0x1C,0xA8,0x01,0xF0,0xA6,0xF8,0xF0,0x48,0xF1,0x49,0x00,0x22,0x08,0x81, + 0xF0,0x48,0x8A,0x81,0x72,0x90,0x42,0x81,0xEF,0x48,0xF0,0x4A,0x71,0x90,0x40,0x7A, + 0x70,0x92,0x02,0x28,0x02,0xD9,0x3A,0x68,0x52,0x8C,0x10,0xE0,0x02,0x28,0x06,0xD1, + 0x3A,0x68,0x70,0x9B,0x12,0x8C,0xDB,0x88,0xD2,0x18,0x0C,0x92,0x0F,0xE0,0x2A,0x78, + 0x00,0x2A,0x06,0xD0,0xE6,0x4A,0x70,0x9B,0x92,0x89,0x9B,0x88,0xD2,0x18,0x0C,0x92, + 0x05,0xE0,0x3A,0x68,0x70,0x9B,0xD2,0x8B,0x9B,0x88,0xD2,0x18,0x0C,0x92,0xE1,0x4A, + 0x0C,0x9B,0x6F,0x92,0x12,0x89,0xDA,0x49,0x0E,0x26,0xD2,0x18,0x0D,0x92,0x8E,0x5F, + 0x01,0x28,0x06,0xD9,0x39,0x68,0xC9,0x7E,0x48,0x43,0x04,0x06,0x24,0x0E,0x00,0xD1, + 0x01,0x24,0x72,0x99,0x3D,0x68,0x08,0x20,0x08,0x5E,0xA9,0x7E,0x48,0x43,0x03,0xF0, + 0xC7,0xF8,0x08,0x04,0x29,0x8B,0x00,0x0C,0x81,0x42,0x00,0xD9,0x08,0x00,0x21,0x00, + 0xFC,0xF7,0xB6,0xF8,0x72,0x99,0x48,0x81,0x21,0x00,0x30,0x00,0xFB,0xF7,0x80,0xFF, + 0x00,0x04,0x00,0x14,0x70,0x99,0x0A,0x90,0x40,0x35,0x68,0x89,0x09,0x89,0x0D,0x9E, + 0x44,0x18,0xB4,0x42,0x00,0xD2,0x0D,0x94,0xC7,0x48,0x6E,0x90,0x80,0x7B,0xC1,0x07, + 0x05,0xD0,0x80,0x07,0x01,0xD5,0x01,0x20,0x00,0xE0,0x02,0x20,0x09,0x90,0xC3,0x49, + 0x00,0x20,0x6D,0x91,0xBA,0x4F,0x88,0x83,0x78,0x89,0xA9,0x7B,0x48,0x43,0x03,0xF0, + 0xCB,0xF8,0x08,0x04,0x6D,0x99,0x00,0x14,0xC8,0x83,0xA9,0x89,0x88,0x42,0x02,0xDA, + 0xA8,0x89,0x6D,0x99,0xC8,0x83,0x0D,0x98,0x0C,0x21,0x00,0x04,0x00,0x14,0x6C,0x90, + 0x20,0x04,0x00,0x14,0x6B,0x90,0x30,0x04,0x00,0x14,0x6A,0x90,0x09,0x98,0x00,0x25, + 0xC0,0x07,0xC0,0x0F,0x09,0x1A,0x69,0x91,0x0D,0x21,0x08,0x1A,0x68,0x90,0x09,0x98, + 0x13,0x21,0x80,0x07,0xC0,0x0F,0x09,0x1A,0x67,0x91,0x14,0x21,0x08,0x1A,0x66,0x90, + 0xAB,0x48,0x65,0x90,0x0E,0x20,0x68,0x43,0xA1,0x49,0x64,0x90,0x68,0x00,0x00,0x24, + 0x40,0x18,0x40,0x30,0x63,0x90,0x64,0x98,0xA6,0x49,0x00,0x19,0x00,0x04,0x00,0x14, + 0x1B,0x90,0x40,0x00,0x62,0x90,0x08,0x5E,0x6D,0x99,0x1E,0x22,0x8A,0x5E,0x90,0x42, + 0x02,0xDD,0x88,0x8B,0x40,0x1C,0x88,0x83,0x9F,0x49,0x62,0x98,0x08,0x5E,0x6C,0x99, + 0x88,0x42,0x61,0x90,0x00,0xDA,0xFE,0xE3,0x00,0x20,0x00,0x2D,0x25,0xDD,0x1B,0x99, + 0x01,0x26,0x0E,0x39,0xC8,0x10,0x4B,0x07,0x1C,0xAA,0x10,0x5C,0x5B,0x0F,0x31,0x00, + 0x99,0x40,0x08,0x40,0x00,0x2C,0x0B,0xDD,0x1B,0x99,0x0F,0x39,0xCB,0x10,0xD7,0x5C, + 0x49,0x07,0x49,0x0F,0x33,0x00,0x8B,0x40,0x1F,0x40,0x38,0x18,0x00,0x06,0x00,0x0E, + 0x0D,0x2C,0x0C,0xDA,0x1B,0x99,0x0D,0x39,0xCB,0x10,0x49,0x07,0xD2,0x5C,0x49,0x0F, + 0x8E,0x40,0x32,0x40,0x10,0x18,0x00,0x06,0x00,0x0E,0x00,0x2C,0x0C,0xDD,0x1B,0x99, + 0x1C,0xAB,0x49,0x1E,0xCA,0x10,0x9A,0x5C,0x4B,0x07,0x5B,0x0F,0x01,0x21,0x99,0x40, + 0x0A,0x40,0x10,0x18,0x00,0x06,0x00,0x0E,0x00,0x28,0x00,0xD0,0xC3,0xE3,0x7F,0x48, + 0x00,0x7D,0x80,0x07,0x06,0xD5,0x0D,0x2C,0x0E,0xD1,0x7D,0x48,0x00,0x78,0x01,0x28, + 0x0A,0xD1,0x05,0xE0,0x14,0x2D,0x07,0xD1,0x79,0x48,0x00,0x78,0x01,0x28,0x03,0xD1, + 0x74,0x4A,0x62,0x99,0x00,0x20,0x50,0x52,0x00,0x26,0x37,0x00,0xE9,0x19,0x8C,0x46, + 0x00,0x20,0x49,0x1E,0x0E,0x22,0x51,0x43,0x60,0x91,0x21,0x18,0x62,0x46,0x52,0x1E, + 0x49,0x1E,0x00,0x2A,0x0D,0xDB,0x15,0x2A,0x0B,0xDC,0x00,0x29,0x09,0xDB,0x0E,0x29, + 0x07,0xDC,0x60,0x9A,0x51,0x18,0x4A,0x00,0x67,0x49,0x89,0x5E,0xB1,0x42,0x00,0xDD, + 0x0E,0x00,0x40,0x1C,0x00,0x04,0x00,0x14,0x03,0x28,0xE6,0xDB,0x7F,0x1C,0x3F,0x04, + 0x3F,0x14,0x03,0x2F,0xDA,0xDB,0x61,0x99,0x30,0x04,0x00,0x14,0x81,0x42,0x00,0xD0, + 0x81,0xE3,0x53,0x49,0x89,0x89,0x81,0x42,0x06,0xDC,0x51,0x49,0x88,0x81,0x08,0x79, + 0x40,0x1C,0x00,0x06,0x00,0x0E,0x0F,0x90,0x1B,0x98,0x1B,0x99,0xC0,0x10,0x4B,0x07, + 0x1C,0xAA,0x16,0x5C,0x5B,0x0F,0x01,0x21,0x99,0x40,0x0E,0x43,0x16,0x54,0x00,0x20, + 0x08,0x90,0x09,0x98,0xC0,0x07,0x0A,0xD0,0x0D,0x2C,0x01,0xD1,0x0D,0x20,0x09,0xE0, + 0x0C,0x2C,0x0F,0xD1,0x08,0x98,0x21,0x04,0x08,0x43,0x08,0x90,0x0A,0xE0,0x14,0x2D, + 0x02,0xD1,0x14,0x20,0x08,0x90,0x05,0xE0,0x13,0x2D,0x03,0xD1,0x08,0x98,0x29,0x04, + 0x08,0x43,0x08,0x90,0x08,0x98,0x00,0x04,0x61,0x98,0x04,0xD0,0x6B,0x99,0x88,0x42, + 0x00,0xDA,0x48,0xE3,0x03,0xE0,0x6A,0x99,0x88,0x42,0x00,0xDA,0x43,0xE3,0x31,0x49, + 0x08,0x68,0x5F,0x90,0x00,0x88,0x40,0x04,0x04,0xD5,0x31,0x4A,0x61,0x98,0xD2,0x89, + 0x80,0x1A,0x05,0xE0,0x37,0x4A,0x62,0x98,0x10,0x5E,0x2D,0x4A,0xD2,0x89,0x80,0x1A, + 0x00,0x28,0x00,0xDC,0x2F,0xE3,0x72,0x9B,0x0A,0x22,0x9A,0x5E,0x82,0x42,0x00,0xDB, + 0x29,0xE3,0x00,0x20,0x84,0x46,0x10,0x90,0x61,0x46,0x69,0x18,0x89,0x1E,0x09,0x06, + 0x09,0x16,0x0E,0x22,0x5E,0x91,0x51,0x43,0x5D,0x91,0x0A,0x23,0x61,0x46,0x59,0x43, + 0x2D,0xAA,0x8A,0x18,0x5C,0x92,0x00,0x20,0x3A,0xAA,0x8E,0x18,0x21,0x18,0x89,0x1E, + 0x5E,0x9A,0x09,0x06,0x09,0x16,0x16,0x2A,0x03,0xD2,0x00,0x29,0x01,0xDB,0x0E,0x29, + 0x03,0xDD,0x00,0x21,0x42,0x00,0xB1,0x52,0x69,0xE0,0x5F,0x9A,0x12,0x88,0x52,0x04, + 0x5D,0x9A,0x08,0xD5,0x1C,0x4B,0x52,0x18,0x52,0x00,0x9A,0x5A,0x0A,0x9B,0xD2,0x1A, + 0x43,0x00,0xF2,0x52,0x07,0xE0,0x17,0x4B,0x52,0x18,0x52,0x00,0x9A,0x5A,0x0A,0x9B, + 0xD2,0x1A,0x43,0x00,0xF2,0x52,0x42,0x00,0xB3,0x5E,0x00,0x2B,0x01,0xDA,0x00,0x27, + 0xB7,0x52,0x5F,0x9B,0x5D,0x9F,0x1B,0x88,0x1B,0x04,0x2B,0xD5,0x79,0x18,0x21,0xE0, + 0x20,0x07,0x00,0x20,0xCC,0x07,0x00,0x20,0xE0,0x95,0x00,0x00,0xFF,0x0F,0x00,0x00, + 0x40,0x00,0x00,0x20,0x20,0x01,0x00,0x20,0x00,0x02,0x00,0x20,0x00,0x07,0x00,0x20, + 0xA0,0x95,0x00,0x00,0xA0,0x01,0x00,0x20,0x40,0x06,0x00,0x20,0x20,0x06,0x00,0x20, + 0x80,0x00,0x00,0x20,0x00,0x00,0x00,0x10,0xD2,0x07,0x00,0x20,0x00,0x93,0x00,0x00, + 0x48,0x07,0x00,0x20,0xFF,0x4B,0x49,0x00,0x59,0x5A,0x0A,0x9B,0x5C,0x9F,0xC9,0x1A, + 0xB9,0x52,0x07,0xE0,0xFC,0x4B,0x79,0x18,0x49,0x00,0x59,0x5A,0x0A,0x9B,0x5C,0x9F, + 0xC9,0x1A,0xB9,0x52,0x5C,0x99,0x89,0x5E,0x00,0x29,0x02,0xDA,0x5C,0x9F,0x00,0x21, + 0xB9,0x52,0x61,0x46,0x00,0x29,0x0A,0xD0,0x04,0x29,0x08,0xD0,0x00,0x28,0x06,0xD0, + 0x04,0x28,0x04,0xD0,0x10,0x99,0x49,0x1C,0x09,0x06,0x09,0x0E,0x10,0x91,0x40,0x1C, + 0x00,0x04,0x00,0x14,0x05,0x28,0x81,0xDB,0x60,0x46,0x40,0x1C,0x00,0x04,0x00,0x14, + 0x05,0x28,0x84,0x46,0x00,0xDA,0x67,0xE7,0xE8,0x48,0x00,0x78,0x00,0x28,0x39,0xD1, + 0x10,0x98,0x40,0x1E,0x07,0x06,0x3F,0x0E,0x00,0xD1,0x01,0x27,0x02,0x22,0x40,0xAB, + 0x9A,0x5E,0x30,0xAB,0x3E,0x26,0x00,0x92,0x9E,0x5F,0x38,0x22,0x36,0x21,0x34,0x20, + 0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0,0x15,0xFE,0x40,0xAB,0x06,0x00, + 0x0C,0x22,0x0A,0x21,0x08,0x20,0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x01,0xF0,0x08,0xFE, + 0x30,0x18,0x39,0x00,0xFB,0xF7,0x7C,0xFD,0x01,0x04,0x00,0x20,0x40,0xAB,0x18,0x5E, + 0x09,0x0C,0x42,0x1A,0x00,0x2A,0x00,0xDC,0x0A,0x1A,0xD1,0x49,0x09,0x68,0xC0,0x31, + 0x0B,0x88,0x9A,0x42,0x06,0xDA,0x49,0x88,0x88,0x42,0x03,0xDA,0x08,0x98,0x00,0x04, + 0x00,0xD1,0x50,0xE2,0x12,0x22,0x00,0x21,0x28,0xA8,0x00,0xF0,0x33,0xFE,0x30,0xAB, + 0x18,0x88,0x20,0xAB,0xC6,0x49,0x18,0x84,0x30,0xAB,0x58,0x88,0x20,0xAB,0x58,0x84, + 0x30,0xAB,0x98,0x88,0x20,0xAB,0x98,0x84,0x30,0xAB,0x58,0x89,0x20,0xAB,0xD8,0x84, + 0x30,0xAB,0xD8,0x89,0x20,0xAB,0x58,0x85,0x30,0xAB,0x98,0x8A,0x20,0xAB,0x98,0x85, + 0x30,0xAB,0xD8,0x8A,0x20,0xAB,0xD8,0x85,0x30,0xAB,0x18,0x8B,0x20,0xAB,0x18,0x86, + 0x09,0x68,0x0C,0x20,0x30,0xAB,0x18,0x5E,0x89,0x8B,0x48,0x43,0x02,0xF0,0x70,0xFE, + 0x20,0xAB,0x19,0x85,0x02,0x22,0x40,0xAB,0x9A,0x5E,0x30,0xAB,0x3E,0x26,0x00,0x92, + 0x9E,0x5F,0x38,0x22,0x36,0x21,0x34,0x20,0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00, + 0xFF,0xF7,0x27,0xFB,0x40,0xAB,0x06,0x00,0x0C,0x22,0x0A,0x21,0x08,0x20,0x9A,0x5E, + 0x59,0x5E,0x18,0x5E,0xFF,0xF7,0x16,0xFB,0x01,0x00,0x30,0x00,0xFF,0xF7,0x0E,0xFB, + 0x00,0x21,0x40,0xAB,0x59,0x5E,0x7D,0x22,0x52,0x01,0x91,0x42,0x07,0xDD,0x81,0x42, + 0x05,0xDD,0x08,0x1A,0x51,0x10,0x88,0x42,0x01,0xDD,0x01,0x20,0x07,0x90,0x9D,0x48, + 0xFF,0x21,0xC0,0x88,0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06,0x01,0xD5,0x01,0x20, + 0x07,0x90,0x68,0x98,0x04,0x26,0x14,0x90,0x66,0x98,0x13,0x90,0x06,0x98,0x80,0x07, + 0x42,0xD5,0x00,0x2C,0x1E,0xD1,0x0A,0x20,0x70,0x43,0x3A,0xA9,0x47,0x18,0x04,0x21, + 0x79,0x5E,0x06,0x20,0x64,0x22,0x5B,0x91,0x38,0x5E,0x49,0x1C,0x50,0x43,0xFB,0xF7, + 0xE7,0xFC,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x03,0x9A, + 0x5B,0x98,0x51,0x43,0x48,0x43,0x02,0xF0,0x25,0xFE,0x02,0x20,0x38,0x5E,0x88,0x42, + 0x00,0xDA,0x79,0x80,0x14,0x98,0x84,0x42,0x1E,0xD1,0x0A,0x20,0x70,0x43,0x3A,0xA9, + 0x47,0x18,0x04,0x21,0x79,0x5E,0x02,0x20,0x64,0x22,0x5A,0x91,0x38,0x5E,0x49,0x1C, + 0x50,0x43,0xFB,0xF7,0xC5,0xFC,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5, + 0x00,0x21,0x02,0x9A,0x5A,0x98,0x51,0x43,0x48,0x43,0x02,0xF0,0x03,0xFE,0x06,0x20, + 0x38,0x5E,0x88,0x42,0x00,0xDA,0xF9,0x80,0x06,0x98,0xC0,0x07,0x40,0xD0,0x00,0x2D, + 0x1D,0xD1,0x70,0x00,0x3A,0xA9,0x47,0x18,0x14,0x21,0x79,0x5E,0x1E,0x20,0x64,0x22, + 0x59,0x91,0x38,0x5E,0x49,0x1C,0x50,0x43,0xFB,0xF7,0xA2,0xFC,0x64,0x21,0x08,0x1A, + 0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x05,0x9A,0x59,0x98,0x51,0x43,0x48,0x43, + 0x02,0xF0,0xE0,0xFD,0x0A,0x20,0x38,0x5E,0x88,0x42,0x00,0xDA,0x79,0x81,0x13,0x98, + 0x85,0x42,0x1D,0xD1,0x70,0x00,0x3A,0xA9,0x47,0x18,0x14,0x21,0x79,0x5E,0x0A,0x20, + 0x64,0x22,0x58,0x91,0x38,0x5E,0x49,0x1C,0x50,0x43,0xFB,0xF7,0x81,0xFC,0x64,0x21, + 0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x04,0x9A,0x58,0x98,0x51,0x43, + 0x48,0x43,0x02,0xF0,0xBF,0xFD,0x1E,0x20,0x38,0x5E,0x88,0x42,0x00,0xDA,0xF9,0x83, + 0x76,0x1E,0x36,0x04,0x36,0x14,0x00,0xD4,0x70,0xE7,0x06,0x98,0x00,0x26,0x80,0x07, + 0x00,0xD5,0xF0,0x26,0x06,0x98,0xC0,0x07,0x01,0xD0,0x3C,0x20,0x06,0x43,0xB0,0x09, + 0x1F,0xD0,0x14,0x98,0x84,0x42,0x1C,0xD1,0x00,0x2D,0x1A,0xD1,0x40,0xAB,0x08,0x20, + 0x18,0x5E,0x64,0x22,0x5F,0x5F,0x50,0x43,0x79,0x1C,0xFB,0xF7,0x51,0xFC,0x64,0x21, + 0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x02,0x9A,0x38,0x00,0x51,0x43, + 0x48,0x43,0x02,0xF0,0x8F,0xFD,0x38,0x20,0x30,0xAB,0x18,0x5E,0x88,0x42,0x00,0xDA, + 0x19,0x87,0xB0,0x06,0x80,0x0F,0x22,0xD0,0x14,0x98,0x84,0x42,0x1F,0xD1,0x13,0x98, + 0x85,0x42,0x1C,0xD1,0x00,0x27,0x40,0xAB,0xDF,0x5F,0x34,0x20,0x30,0xAB,0x18,0x5E, + 0x64,0x22,0x79,0x1C,0x50,0x43,0xFB,0xF7,0x2B,0xFC,0x64,0x21,0x08,0x1A,0x01,0x04, + 0x09,0x14,0x00,0xD5,0x00,0x21,0x02,0x9A,0x38,0x00,0x51,0x43,0x48,0x43,0x02,0xF0, + 0x69,0xFD,0x0C,0x20,0x40,0xAB,0x18,0x5E,0x88,0x42,0x00,0xDA,0x99,0x81,0x30,0x07, + 0x80,0x0F,0x20,0xD0,0x13,0x98,0x85,0x42,0x1D,0xD1,0x00,0x2C,0x1B,0xD1,0x40,0xAB, + 0x1E,0x5F,0x38,0x20,0x30,0xAB,0x18,0x5E,0x64,0x22,0x71,0x1C,0x50,0x43,0xFB,0xF7, + 0x07,0xFC,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x04,0x9A, + 0x30,0x00,0x51,0x43,0x48,0x43,0x02,0xF0,0x45,0xFD,0x08,0x20,0x40,0xAB,0x18,0x5E, + 0x88,0x42,0x00,0xDA,0x19,0x81,0x12,0x48,0x04,0x27,0x06,0x68,0x40,0x36,0xB0,0x78, + 0x80,0x06,0x31,0xD5,0x00,0x2C,0x2F,0xD1,0x0A,0x20,0x78,0x43,0x3A,0xA9,0x40,0x18, + 0x57,0x90,0x04,0x21,0x06,0x22,0x41,0x5E,0x82,0x5E,0x64,0x20,0x49,0x1C,0x50,0x43, + 0x56,0x92,0xFB,0xF7,0xDD,0xFB,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5, + 0x00,0x21,0x09,0xE0,0xD2,0x07,0x00,0x20,0x00,0x00,0x00,0x10,0x21,0x07,0x00,0x20, + 0xCC,0x07,0x00,0x20,0x40,0x00,0x00,0x20,0x72,0x79,0x56,0x98,0x50,0x43,0x48,0x43, + 0x02,0xF0,0x10,0xFD,0x56,0x98,0x40,0x1A,0x57,0x99,0x00,0x04,0x00,0x14,0xC8,0x80, + 0x02,0xD5,0x57,0x99,0x00,0x20,0xC8,0x80,0xB0,0x78,0xC0,0x06,0x24,0xD5,0x01,0x2C, + 0x22,0xD1,0x0A,0x20,0x78,0x43,0x3A,0xA9,0x40,0x18,0x72,0x79,0x06,0x21,0x55,0x90, + 0x41,0x5E,0x4A,0x43,0x04,0x21,0x41,0x5E,0x10,0x00,0x49,0x1C,0xFB,0xF7,0xA8,0xFB, + 0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x55,0x9A,0x02,0x20, + 0x10,0x5E,0x48,0x43,0x02,0xF0,0xD4,0xFC,0x08,0x04,0x55,0x99,0x00,0x14,0x48,0x80, + 0x02,0xD5,0x55,0x99,0x00,0x20,0x48,0x80,0xB0,0x78,0x40,0x06,0x25,0xD5,0x69,0x98, + 0xA0,0x42,0x22,0xD1,0x0A,0x20,0x78,0x43,0x3A,0xA9,0x40,0x18,0xB2,0x79,0x02,0x21, + 0x54,0x90,0x41,0x5E,0x4A,0x43,0x04,0x21,0x41,0x5E,0x10,0x00,0x49,0x1C,0xFB,0xF7, + 0x7F,0xFB,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x54,0x9A, + 0x06,0x20,0x10,0x5E,0x48,0x43,0x02,0xF0,0xAB,0xFC,0x08,0x04,0x54,0x99,0x00,0x14, + 0xC8,0x80,0x02,0xD5,0x54,0x99,0x00,0x20,0xC8,0x80,0xB0,0x78,0x00,0x06,0x27,0xD5, + 0x68,0x98,0xA0,0x42,0x24,0xD1,0x0A,0x20,0x78,0x43,0x3A,0xA9,0x40,0x18,0x53,0x90, + 0x04,0x21,0x02,0x22,0x41,0x5E,0x82,0x5E,0x64,0x20,0x49,0x1C,0x50,0x43,0x52,0x92, + 0xFB,0xF7,0x56,0xFB,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21, + 0xB2,0x79,0x52,0x98,0x50,0x43,0x48,0x43,0x02,0xF0,0x94,0xFC,0x52,0x98,0x40,0x1A, + 0x53,0x99,0x00,0x04,0x00,0x14,0x48,0x80,0x02,0xD5,0x53,0x99,0x00,0x20,0x48,0x80, + 0xB0,0x78,0x80,0x07,0x25,0xD5,0x00,0x2D,0x23,0xD1,0x79,0x00,0x3A,0xA8,0x08,0x18, + 0x51,0x90,0x14,0x21,0x1E,0x22,0x41,0x5E,0x82,0x5E,0x64,0x20,0x49,0x1C,0x50,0x43, + 0x50,0x92,0xFB,0xF7,0x2D,0xFB,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5, + 0x00,0x21,0xF2,0x78,0x50,0x98,0x50,0x43,0x48,0x43,0x02,0xF0,0x6B,0xFC,0x50,0x98, + 0x40,0x1A,0x51,0x99,0x00,0x04,0x00,0x14,0xC8,0x83,0x02,0xD5,0x51,0x99,0x00,0x20, + 0xC8,0x83,0xB0,0x78,0x00,0xE0,0x59,0xE2,0xC0,0x07,0x23,0xD0,0x01,0x2D,0x21,0xD1, + 0x79,0x00,0x3A,0xA8,0x08,0x18,0xF2,0x78,0x1E,0x21,0x4F,0x90,0x41,0x5E,0x4A,0x43, + 0x14,0x21,0x41,0x5E,0x10,0x00,0x49,0x1C,0xFB,0xF7,0x02,0xFB,0x64,0x21,0x08,0x1A, + 0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x4F,0x9A,0x0A,0x20,0x10,0x5E,0x48,0x43, + 0x02,0xF0,0x2E,0xFC,0x08,0x04,0x4F,0x99,0x00,0x14,0x48,0x81,0x02,0xD5,0x4F,0x99, + 0x00,0x20,0x48,0x81,0xB0,0x78,0x40,0x07,0x24,0xD5,0x67,0x98,0xA8,0x42,0x21,0xD1, + 0x78,0x00,0x3A,0xA9,0x40,0x18,0x32,0x79,0x0A,0x21,0x4E,0x90,0x41,0x5E,0x4A,0x43, + 0x14,0x21,0x41,0x5E,0x10,0x00,0x49,0x1C,0xFB,0xF7,0xDA,0xFA,0x64,0x21,0x08,0x1A, + 0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x4E,0x9A,0x1E,0x20,0x10,0x5E,0x48,0x43, + 0x02,0xF0,0x06,0xFC,0x08,0x04,0x4E,0x99,0x00,0x14,0xC8,0x83,0x02,0xD5,0x4E,0x99, + 0x00,0x20,0xC8,0x83,0xB0,0x78,0x00,0x07,0x26,0xD5,0x66,0x98,0xA8,0x42,0x23,0xD1, + 0x78,0x00,0x3A,0xA9,0x40,0x18,0x4D,0x90,0x14,0x21,0x0A,0x22,0x41,0x5E,0x82,0x5E, + 0x64,0x20,0x49,0x1C,0x50,0x43,0x4C,0x92,0xFB,0xF7,0xB2,0xFA,0x64,0x21,0x08,0x1A, + 0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x32,0x79,0x4C,0x98,0x50,0x43,0x48,0x43, + 0x02,0xF0,0xF0,0xFB,0x4C,0x98,0x40,0x1A,0x4D,0x99,0x00,0x04,0x00,0x14,0x48,0x81, + 0x02,0xD5,0x4D,0x99,0x00,0x20,0x48,0x81,0x7F,0x1E,0x3F,0x04,0x3F,0x14,0x00,0xD4, + 0xA5,0xE6,0x08,0x98,0x00,0x28,0x2C,0xD0,0x09,0x98,0xC0,0x07,0x16,0xD0,0x04,0x20, + 0x00,0x22,0x3A,0xAE,0x08,0x99,0x09,0x04,0x06,0xD0,0x0A,0x23,0x01,0x00,0x59,0x43, + 0x72,0x52,0x89,0x19,0x4A,0x80,0x04,0xE0,0x0A,0x21,0x41,0x43,0x89,0x19,0xCA,0x80, + 0x0A,0x81,0x40,0x1E,0x00,0x04,0x00,0x14,0xEC,0xD5,0x12,0xE0,0x04,0x20,0x00,0x22, + 0x3A,0xAE,0x08,0x99,0x09,0x04,0x04,0xD0,0x41,0x00,0x72,0x52,0x89,0x19,0x4A,0x81, + 0x03,0xE0,0x41,0x00,0x89,0x19,0xCA,0x83,0x0A,0x85,0x40,0x1E,0x00,0x04,0x00,0x14, + 0xEF,0xD5,0x00,0x26,0x37,0x00,0xE9,0x19,0x4B,0x91,0x00,0x20,0x49,0x1E,0x0E,0x22, + 0x51,0x43,0x8C,0x46,0x4B,0x9A,0x21,0x18,0x52,0x1E,0x49,0x1E,0x00,0x2A,0x0C,0xDB, + 0x15,0x2A,0x0A,0xDC,0x00,0x29,0x08,0xDB,0x0E,0x29,0x06,0xDC,0xF9,0x4A,0x61,0x44, + 0x49,0x00,0x51,0x5E,0xB1,0x42,0x00,0xDD,0x0E,0x00,0x40,0x1C,0x00,0x04,0x00,0x14, + 0x03,0x28,0xE7,0xDB,0x7F,0x1C,0x3F,0x04,0x3F,0x14,0x03,0x2F,0xDB,0xDB,0xF2,0x49, + 0x30,0x04,0x0A,0x89,0x00,0x14,0x82,0x42,0x00,0xDD,0x08,0x81,0x4A,0x89,0x82,0x42, + 0x00,0xDA,0x48,0x81,0xEC,0x49,0x20,0xAB,0x08,0x79,0x26,0x22,0x40,0x1C,0x00,0x06, + 0x00,0x0E,0x08,0x71,0x80,0x00,0x40,0x18,0xFF,0x30,0x21,0x30,0x84,0x80,0x08,0x79, + 0x80,0x00,0x40,0x18,0xFF,0x30,0x21,0x30,0xC5,0x80,0x28,0x20,0x9A,0x5E,0x18,0x5E, + 0x00,0x21,0x82,0x42,0x07,0xDC,0x20,0x22,0x9A,0x5E,0x82,0x42,0x03,0xDC,0x2C,0x22, + 0x9A,0x5E,0x82,0x42,0x00,0xDD,0xC0,0x21,0x2A,0x22,0x20,0xAB,0x9A,0x5E,0x82,0x42, + 0x07,0xDC,0x24,0x22,0x9A,0x5E,0x82,0x42,0x03,0xDC,0x30,0x22,0x9A,0x5E,0x82,0x42, + 0x01,0xDD,0x30,0x22,0x11,0x43,0x22,0x22,0x20,0xAB,0x9A,0x5E,0x82,0x42,0x07,0xDC, + 0x20,0x22,0x9A,0x5E,0x82,0x42,0x03,0xDC,0x24,0x22,0x9A,0x5E,0x82,0x42,0x01,0xDD, + 0x0C,0x22,0x11,0x43,0x2E,0x22,0x20,0xAB,0x9A,0x5E,0x82,0x42,0x07,0xDC,0x2C,0x22, + 0x9A,0x5E,0x82,0x42,0x03,0xDC,0x30,0x22,0x9A,0x5E,0x82,0x42,0x01,0xDD,0x03,0x20, + 0x01,0x43,0x8F,0x06,0x0A,0x07,0x04,0x20,0x94,0x46,0x00,0x22,0x8B,0x09,0x04,0xD1, + 0x0A,0x26,0x03,0x00,0x73,0x43,0x3A,0xAE,0xF2,0x52,0xBB,0x0F,0x05,0xD1,0x0A,0x26, + 0x03,0x00,0x73,0x43,0x3A,0xAE,0x9B,0x19,0x1A,0x81,0x63,0x46,0x9B,0x0F,0x02,0xD1, + 0x43,0x00,0x3A,0xAE,0xF2,0x52,0x8B,0x07,0x03,0xD1,0x43,0x00,0x3A,0xAE,0x9B,0x19, + 0x1A,0x85,0x40,0x1E,0x00,0x04,0x00,0x14,0xE0,0xD5,0x30,0x22,0x30,0xAB,0x9A,0x5E, + 0x2E,0x26,0x2A,0x21,0x00,0x92,0x9E,0x5F,0x2C,0x22,0x28,0x20,0x9A,0x5E,0x59,0x5E, + 0x18,0x5E,0x33,0x00,0x01,0xF0,0x3F,0xFA,0x3A,0x22,0x30,0xAB,0x19,0x90,0x9A,0x5E, + 0x38,0x26,0x34,0x21,0x00,0x92,0x9E,0x5F,0x36,0x22,0x32,0x20,0x9A,0x5E,0x59,0x5E, + 0x18,0x5E,0x33,0x00,0x01,0xF0,0x2F,0xFA,0x04,0x22,0x40,0xAB,0x18,0x90,0x9A,0x5E, + 0x02,0x26,0x3E,0x21,0x00,0x92,0x00,0x22,0x9E,0x5F,0x9A,0x5E,0x30,0xAB,0x3C,0x20, + 0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0,0x1E,0xFA,0x0E,0x22,0x40,0xAB,0x17,0x90, + 0x9A,0x5E,0x0C,0x26,0x08,0x21,0x00,0x92,0x9E,0x5F,0x0A,0x22,0x06,0x20,0x9A,0x5E, + 0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0,0x0E,0xFA,0x18,0x22,0x40,0xAB,0x16,0x90, + 0x9A,0x5E,0x16,0x26,0x12,0x21,0x00,0x92,0x9E,0x5F,0x14,0x22,0x10,0x20,0x9A,0x5E, + 0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0,0xFE,0xF9,0x15,0x90,0x00,0x90,0x16,0x9B, + 0x17,0x9A,0x18,0x99,0x19,0x98,0x01,0xF0,0xF6,0xF9,0x00,0x28,0x1A,0x90,0x09,0xD1, + 0x32,0x22,0x00,0x21,0x3A,0xA8,0x00,0xF0,0x35,0xFA,0x0A,0x20,0x40,0xAB,0x17,0x90, + 0x18,0x80,0x1A,0x90,0x10,0x22,0x40,0xAB,0x9A,0x5E,0x06,0x26,0x32,0x21,0x00,0x92, + 0x9E,0x5F,0x30,0xAB,0x3C,0x22,0x28,0x20,0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00, + 0x01,0xF0,0xD9,0xF9,0x78,0x4A,0x61,0x00,0x8E,0x18,0xF1,0x8B,0x12,0x22,0x40,0xAB, + 0x48,0x43,0x14,0x90,0x9A,0x5E,0x08,0x27,0x34,0x21,0x00,0x92,0xDF,0x5F,0x30,0xAB, + 0x3E,0x22,0x2A,0x20,0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x3B,0x00,0x01,0xF0,0xC3,0xF9, + 0x31,0x8C,0x14,0x22,0x40,0xAB,0x48,0x43,0x13,0x90,0x9A,0x5E,0x0A,0x27,0x36,0x21, + 0x00,0x92,0x00,0x22,0xDF,0x5F,0x9A,0x5E,0x30,0xAB,0x2C,0x20,0x59,0x5E,0x18,0x5E, + 0x3B,0x00,0x01,0xF0,0xB0,0xF9,0x71,0x8C,0x16,0x22,0x40,0xAB,0x48,0x43,0x12,0x90, + 0x9A,0x5E,0x0C,0x27,0x38,0x21,0x00,0x92,0x02,0x22,0xDF,0x5F,0x9A,0x5E,0x30,0xAB, + 0x2E,0x20,0x59,0x5E,0x18,0x5E,0x3B,0x00,0x01,0xF0,0x9D,0xF9,0xB1,0x8C,0x07,0x00, + 0x18,0x22,0x4F,0x43,0x40,0xAB,0x11,0x97,0x9A,0x5E,0x0E,0x27,0x3A,0x21,0x00,0x92, + 0x04,0x22,0xDF,0x5F,0x9A,0x5E,0x30,0xAB,0x30,0x20,0x59,0x5E,0x18,0x5E,0x3B,0x00, + 0x01,0xF0,0x89,0xF9,0xF1,0x8C,0x11,0x9B,0x12,0x9A,0x48,0x43,0x00,0x90,0x13,0x99, + 0x14,0x98,0x01,0xF0,0x80,0xF9,0x1A,0x99,0xFB,0xF7,0xF2,0xF8,0x4A,0x49,0x09,0x8C, + 0x49,0x00,0x40,0x1A,0x00,0xD5,0x00,0x20,0x47,0x4F,0x39,0x79,0x49,0x00,0xC9,0x19, + 0xE0,0x31,0x88,0x82,0x63,0x98,0x19,0x99,0x40,0x8A,0x18,0x9A,0x17,0x9B,0x48,0x43, + 0x63,0x99,0x89,0x8A,0x51,0x43,0x63,0x9A,0xD2,0x8A,0x5A,0x43,0x94,0x46,0x63,0x9A, + 0x15,0x9B,0x16,0x8B,0x16,0x9A,0x56,0x43,0x63,0x9A,0x52,0x8B,0x5A,0x43,0x00,0x92, + 0x33,0x00,0x62,0x46,0x01,0xF0,0x57,0xF9,0x1A,0x99,0xFB,0xF7,0xC9,0xF8,0x65,0x99, + 0x89,0x8A,0x49,0x00,0x40,0x1A,0x00,0xD5,0x00,0x20,0x39,0x79,0x49,0x00,0xC9,0x19, + 0xFF,0x31,0x01,0x31,0xC8,0x81,0x38,0x79,0x0C,0x28,0x10,0xD2,0x64,0x1C,0x24,0x04, + 0x24,0x14,0x0E,0x2C,0x01,0xDA,0xFF,0xF7,0x86,0xF9,0x0E,0x98,0x00,0x28,0x06,0xD1, + 0x6D,0x1C,0x2D,0x04,0x2D,0x14,0x15,0x2D,0x01,0xDA,0xFF,0xF7,0x73,0xF9,0x27,0x48, + 0x04,0x68,0x20,0x88,0x00,0x06,0x52,0xD5,0x23,0x4A,0x10,0x79,0x00,0x28,0x6F,0x98, + 0x0C,0xD1,0x00,0x89,0x00,0x28,0x43,0xD0,0x6F,0x98,0x20,0x34,0x40,0x79,0x21,0x7F, + 0x88,0x42,0x3D,0xD2,0x6F,0x99,0x40,0x1C,0x48,0x71,0x40,0xE0,0x25,0x00,0x20,0x35, + 0x80,0x79,0x29,0x7D,0x88,0x42,0x29,0xD8,0x40,0x1C,0x6F,0x99,0x00,0x06,0x00,0x0E, + 0x88,0x71,0x69,0x7D,0x81,0x42,0x03,0xD2,0x92,0x89,0x0B,0x9B,0xD2,0x18,0x0B,0x92, + 0x2A,0x7D,0x90,0x42,0x1A,0xD1,0x88,0x42,0x18,0xD0,0x41,0x1A,0x0B,0x98,0xFB,0xF7, + 0xA7,0xF9,0x6F,0x9A,0x00,0x21,0x11,0x81,0x21,0x8F,0x81,0x42,0x0E,0xD2,0x0C,0x99, + 0x40,0x1A,0xA9,0x7D,0x48,0x43,0x02,0xF0,0xD7,0xF9,0x08,0x04,0x6F,0x99,0x00,0x0C, + 0x08,0x81,0x61,0x8F,0x88,0x42,0x01,0xD9,0x6F,0x98,0x01,0x81,0x6F,0x98,0x00,0x21, + 0x41,0x71,0x0C,0xE0,0x00,0x00,0x00,0x10,0x40,0x00,0x00,0x20,0xCC,0x07,0x00,0x20, + 0x6F,0x99,0x00,0x20,0x88,0x71,0x6F,0x99,0x48,0x71,0x6F,0x99,0x08,0x81,0x00,0x20, + 0x84,0x46,0x09,0x90,0x67,0x48,0x01,0x22,0x00,0x79,0x01,0x28,0x4A,0x90,0x4E,0xDB, + 0x6E,0x98,0xC0,0x7B,0x49,0x90,0x63,0x49,0x50,0x00,0x40,0x18,0xF4,0x23,0x1B,0x5A, + 0x61,0x4C,0xFF,0x30,0x63,0x43,0x01,0x30,0xC0,0x89,0xDD,0x0C,0x23,0x00,0x58,0x43, + 0xC6,0x0C,0x49,0x9B,0x00,0x20,0x00,0x2B,0x09,0x90,0x32,0xDD,0x14,0x06,0x59,0x4B, + 0x24,0x0E,0x91,0x00,0x48,0x94,0xCC,0x18,0xFF,0x34,0x21,0x34,0x55,0x49,0xC3,0x00, + 0x59,0x18,0x03,0x23,0x5B,0x02,0xC9,0x18,0x10,0x27,0xCF,0x5F,0xAF,0x42,0x1A,0xDC, + 0x14,0x27,0xCF,0x5F,0xAF,0x42,0x16,0xDB,0x12,0x27,0xCF,0x5F,0xB7,0x42,0x12,0xDC, + 0x16,0x27,0xCF,0x5F,0xB7,0x42,0x0E,0xDB,0x06,0x21,0x61,0x5E,0x0E,0x23,0x59,0x43, + 0x04,0x23,0xE3,0x5E,0xC9,0x18,0x4B,0x00,0x48,0x49,0xC9,0x5E,0x61,0x45,0x02,0xDD, + 0x8C,0x46,0x48,0x99,0x09,0x91,0x40,0x1C,0x49,0x99,0x00,0x04,0x00,0x14,0x81,0x42, + 0xD4,0xDC,0x52,0x1C,0x4A,0x98,0x12,0x04,0x12,0x14,0x90,0x42,0xB3,0xDA,0x3D,0x48, + 0x41,0x89,0x05,0x00,0x28,0x00,0xF4,0x30,0x04,0x00,0x1A,0x34,0xAD,0x1C,0x47,0x94, + 0x2C,0x00,0xFF,0x35,0xE0,0x34,0x01,0x35,0x61,0x45,0x19,0xDC,0x09,0x99,0x00,0x29, + 0x16,0xD0,0x34,0x4A,0x49,0x00,0x89,0x18,0xF4,0x22,0x56,0x5A,0xFF,0x31,0x01,0x31, + 0xCF,0x89,0x1A,0x22,0x00,0x21,0x00,0xF0,0xAD,0xF8,0x47,0x98,0x1A,0x22,0x00,0x21, + 0x00,0xF0,0xA8,0xF8,0x2B,0x49,0x01,0x20,0x08,0x71,0xA6,0x82,0xEF,0x81,0x22,0xE0, + 0x28,0x49,0x4A,0x79,0x00,0x2A,0x1E,0xD1,0x4A,0x9A,0x01,0x2A,0x1B,0xD9,0x71,0x9A, + 0x92,0x7A,0x00,0x2A,0x17,0xD1,0x0F,0x9A,0x00,0x2A,0x14,0xD0,0x52,0x00,0x51,0x18, + 0xF4,0x22,0x56,0x5A,0xFF,0x31,0x01,0x31,0xCF,0x89,0x1A,0x22,0x00,0x21,0x00,0xF0, + 0x89,0xF8,0x47,0x98,0x1A,0x22,0x00,0x21,0x00,0xF0,0x84,0xF8,0x19,0x49,0x01,0x20, + 0x08,0x71,0xA6,0x82,0xEF,0x81,0x6E,0x98,0xC0,0x7A,0x00,0x28,0x0D,0xD0,0x15,0x48, + 0x00,0x21,0x01,0x71,0x6E,0x98,0x16,0x4A,0x00,0x7B,0x92,0x7F,0x90,0x42,0x01,0xD3, + 0x6E,0x9A,0xD1,0x72,0x6E,0x99,0x40,0x1C,0x08,0x73,0x07,0x98,0x00,0x28,0x0E,0xD0, + 0x0C,0x48,0x00,0x79,0x00,0x28,0x0A,0xD0,0x0E,0x49,0x70,0x98,0x49,0x89,0xC0,0x68, + 0x0A,0x31,0x88,0x42,0x06,0xDA,0x70,0x99,0x40,0x1C,0xC8,0x60,0x02,0xE0,0x70,0x98, + 0x00,0x21,0xC1,0x60,0x03,0x48,0x01,0x79,0x41,0x71,0x73,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0xCD,0xCC,0x00,0x00,0x00,0x00,0x00,0x10, + 0x00,0x93,0x00,0x00,0x80,0x95,0x00,0x00,0x78,0x47,0xC0,0x46,0x41,0x11,0xA0,0xE1, + 0x01,0x10,0x51,0xE2,0x1E,0xFF,0x2F,0x31,0x00,0x20,0xA0,0xE3,0x01,0x10,0x51,0xE2, + 0x04,0x20,0x80,0xE4,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46, + 0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0x01,0x30,0xD1,0xE4,0x01,0x20,0x52,0xE2, + 0x01,0x30,0xC0,0xE4,0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46, + 0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0xB2,0x30,0xD1,0xE0, + 0x01,0x20,0x52,0xE2,0xB2,0x30,0xC0,0xE0,0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1, + 0x78,0x47,0xC0,0x46,0x42,0x21,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0x04,0x30,0x91,0xE4,0x01,0x20,0x52,0xE2,0x04,0x30,0x80,0xE4,0xFB,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0xFF,0x10,0x01,0xE2,0x01,0x20,0x52,0xE2,0x01,0x10,0xC0,0xE4,0xFC,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x42,0x21,0xA0,0xE1,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0x01,0x20,0x52,0xE2,0x04,0x10,0x80,0xE4,0xFC,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x10,0xB5,0x0F,0x48,0x0F,0x49,0x00,0x89,0x49,0x88,0x00,0x24, + 0x40,0x18,0x0E,0x49,0x09,0x78,0x00,0x29,0x02,0xD0,0x0D,0x49,0x49,0x89,0x02,0xE0, + 0x0C,0x49,0x09,0x68,0x49,0x88,0x08,0x18,0x0B,0x49,0xC9,0x6B,0x49,0x04,0x49,0x0C, + 0x81,0x42,0x00,0xD3,0x01,0x24,0xFE,0xF7,0x27,0xFC,0x20,0x00,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xA0,0x01,0x00,0x20,0x00,0x07,0x00,0x20,0x20,0x07,0x00,0x20, + 0xA0,0x95,0x00,0x00,0xCC,0x07,0x00,0x20,0xC0,0x90,0x00,0x40,0xF7,0xB5,0x24,0x4E, + 0x82,0xB0,0xB0,0x7F,0xF1,0x7F,0x00,0x02,0x08,0x43,0x01,0xF0,0xF1,0xFC,0x30,0x00, + 0x20,0x38,0x00,0x7D,0xC0,0x07,0x0A,0xD0,0x1E,0x48,0x01,0x78,0x1E,0x48,0x00,0x7F, + 0x00,0x29,0x02,0xD0,0x01,0xF0,0x94,0xFC,0x01,0xE0,0x01,0xF0,0xB9,0xFC,0x18,0x49, + 0x01,0x25,0x20,0x39,0x08,0x00,0xC0,0x30,0x01,0x90,0x05,0x20,0xC0,0x01,0x17,0x4F, + 0x08,0x18,0x00,0x90,0x00,0x20,0xF8,0x62,0x01,0x98,0x80,0x68,0x38,0x62,0x00,0x98, + 0x00,0x6B,0x78,0x62,0x03,0x24,0xE0,0x07,0xC0,0x0F,0xFB,0xF7,0x0F,0xFE,0x64,0x1E, + 0xF9,0xD5,0x01,0x20,0xF8,0x62,0x30,0x7F,0x01,0x00,0xFB,0xF7,0x7D,0xFE,0x01,0x24, + 0x02,0xA8,0x07,0xC8,0xFE,0xF7,0x76,0xFB,0x00,0x28,0x01,0xD1,0x00,0x24,0x25,0x00, + 0x64,0x1E,0xF5,0xD5,0x6D,0x1E,0xDD,0xD5,0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x20,0x93,0x00,0x00,0x18,0x07,0x00,0x20,0x60,0x06,0x00,0x20,0x80,0x90,0x00,0x40, + 0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x00,0x00,0xA0,0xE3,0x73,0xDF,0x4D,0xE2, + 0xB8,0x01,0x8D,0xE5,0x2C,0x00,0x8D,0xE5,0x28,0x00,0x8D,0xE5,0x24,0x00,0x8D,0xE5, + 0x1C,0x00,0x8D,0xE5,0x18,0x00,0x8D,0xE5,0x14,0x00,0x8D,0xE5,0x00,0x50,0xA0,0xE1, + 0x00,0x70,0xA0,0xE1,0x00,0x80,0xA0,0xE1,0x00,0x90,0xA0,0xE1,0x00,0xA0,0xA0,0xE1, + 0x00,0x10,0xA0,0xE1,0x20,0x00,0x8D,0xE5,0x10,0x00,0x8D,0xE5,0x08,0x00,0x8D,0xE5, + 0x04,0x00,0x8D,0xE5,0x00,0x00,0x8D,0xE5,0x7C,0x06,0x9F,0xE5,0x7C,0x46,0x9F,0xE5, + 0xC8,0x01,0x8D,0xE5,0xB0,0x1C,0xC0,0xE1,0xC8,0x01,0x9D,0xE5,0x30,0x20,0xA0,0xE3, + 0xB2,0x1C,0xC0,0xE1,0xC8,0x01,0x9D,0xE5,0xB4,0x1C,0xC0,0xE1,0x00,0x10,0xA0,0xE3, + 0x88,0x00,0x84,0xE2,0x8F,0xFF,0xFF,0xEB,0x30,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3, + 0xB8,0x00,0x84,0xE2,0x8B,0xFF,0xFF,0xEB,0x00,0x60,0xA0,0xE3,0x60,0x10,0xA0,0xE3, + 0x15,0x0E,0x8D,0xE2,0xB8,0x6E,0xC4,0xE1,0x63,0xFF,0xFF,0xEB,0x60,0x10,0xA0,0xE3, + 0xF0,0x00,0x8D,0xE2,0x60,0xFF,0xFF,0xEB,0x60,0x10,0xA0,0xE3,0x90,0x00,0x8D,0xE2, + 0x5D,0xFF,0xFF,0xEB,0x60,0x10,0xA0,0xE3,0x30,0x00,0x8D,0xE2,0x5A,0xFF,0xFF,0xEB, + 0x0C,0x06,0x9F,0xE5,0x0C,0x16,0x9F,0xE5,0x00,0x00,0xD0,0xE5,0xC4,0x11,0x8D,0xE5, + 0x00,0x00,0x50,0xE3,0x03,0x00,0x00,0x0A,0xF8,0x0A,0xD1,0xE1,0xB4,0x01,0x8D,0xE5, + 0xB6,0x0A,0xD1,0xE1,0x04,0x00,0x00,0xEA,0xEC,0x05,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0xF6,0x12,0xD0,0xE1,0xB4,0x11,0x8D,0xE5,0xB4,0x02,0xD0,0xE1,0x01,0x18,0xE0,0xE3, + 0xB0,0x01,0x8D,0xE5,0xC4,0x05,0x9F,0xE5,0xB6,0x00,0xD0,0xE1,0x40,0x00,0x10,0xE3, + 0xC4,0x01,0x9D,0xE5,0xB0,0xB8,0xD0,0x01,0xB0,0x08,0xD0,0x11,0x80,0xB0,0x01,0x10, + 0x8B,0x00,0x01,0xE0,0x0C,0x00,0x8D,0xE5,0x00,0x00,0xA0,0xE3,0xAC,0x15,0x9F,0xE5, + 0x00,0x30,0xA0,0xE1,0x00,0x20,0xA0,0xE1,0x00,0x00,0xC1,0xE5,0x00,0x10,0xA0,0xE3, + 0x9C,0x05,0x9F,0xE5,0x9C,0xC5,0x9F,0xE5,0x83,0x00,0x80,0xE0,0xC0,0x01,0x8D,0xE5, + 0xB0,0x00,0xD0,0xE1,0x83,0xC0,0x8C,0xE0,0xB0,0xC0,0xDC,0xE1,0x00,0x0A,0xA0,0xE1, + 0x20,0x0A,0xA0,0xE1,0x0F,0xCA,0xCC,0xE3,0x0C,0x40,0x40,0xE0,0x06,0x00,0x54,0xE1, + 0x04,0x60,0xA0,0xC1,0x2C,0x10,0x8D,0xC5,0x28,0x20,0x8D,0xC5,0xC8,0x00,0x54,0xE3, + 0x00,0x00,0x4C,0xE0,0x01,0xA0,0x8A,0xC2,0x96,0x00,0x50,0xE3,0x04,0xC0,0x9D,0xC5, + 0x01,0x30,0x83,0xE2,0x01,0xC0,0x8C,0xC2,0x04,0xC0,0x8D,0xC5,0x19,0x0E,0x54,0xE3, + 0x00,0xC0,0x9D,0xC5,0x01,0xC0,0x8C,0xC2,0x00,0xC0,0x8D,0xC5,0xF0,0xC0,0x8D,0xE2, + 0x01,0xE1,0x9C,0xE7,0x00,0x00,0x54,0xE3,0x00,0x40,0xA0,0xB3,0x04,0xE0,0x8E,0xE0, + 0x01,0xE1,0x8C,0xE7,0x15,0xCE,0x8D,0xE2,0x02,0xE1,0x9C,0xE7,0x00,0x00,0x50,0xE3, + 0x04,0xE0,0x8E,0xE0,0x02,0xE1,0x8C,0xE7,0x30,0xC0,0x8D,0xE2,0x01,0xE1,0x9C,0xE7, + 0x00,0x00,0xA0,0xB3,0x00,0xE0,0x8E,0xE0,0x01,0xE1,0x8C,0xE7,0x90,0xC0,0x8D,0xE2, + 0x02,0xE1,0x9C,0xE7,0x0B,0x00,0x50,0xE1,0x00,0xE0,0x8E,0xE0,0x02,0xE1,0x8C,0xE7, + 0x01,0xC0,0x85,0xC2,0x01,0x58,0xCC,0xC3,0x0B,0x00,0x54,0xE1,0x01,0xC0,0x87,0xC2, + 0x01,0x78,0xCC,0xC3,0x0C,0xC0,0x9D,0xE5,0x01,0x10,0x81,0xE2,0x0C,0x00,0x50,0xE1, + 0x01,0xC0,0x88,0xC2,0x01,0x88,0xCC,0xC3,0x0C,0xC0,0x9D,0xE5,0x0C,0x00,0x54,0xE1, + 0x01,0xC0,0x89,0xC2,0x01,0x98,0xCC,0xC3,0x08,0xC0,0x9D,0xE5,0x0E,0x00,0x51,0xE3, + 0x0C,0x00,0x80,0xE0,0x08,0x00,0x8D,0xE5,0xC0,0x01,0x9D,0xE5,0xB0,0x40,0xC0,0xE1, + 0xB4,0x01,0x9D,0xE5,0xB8,0xC1,0x9D,0xE5,0x04,0x00,0x80,0xE0,0x0C,0x00,0x80,0xE0, + 0xB8,0x01,0x8D,0xE5,0xB5,0xFF,0xFF,0x3A,0x01,0x20,0x82,0xE2,0x15,0x00,0x52,0xE3, + 0xB1,0xFF,0xFF,0x3A,0x70,0xC4,0x9F,0xE5,0x64,0x44,0x9F,0xE5,0x01,0xEA,0xA0,0xE3, + 0x0E,0x00,0x43,0xE2,0x00,0x10,0xA0,0xE3,0x01,0xE0,0x4E,0xE2,0x80,0x20,0x84,0xE0, + 0xF0,0x30,0xD2,0xE1,0x01,0x10,0x81,0xE2,0x01,0x00,0x80,0xE2,0x03,0x31,0x83,0xE0, + 0x03,0x32,0xA0,0xE1,0x9C,0xB3,0xC3,0xE0,0xC3,0xB2,0xA0,0xE1,0xC3,0x3F,0x4B,0xE0, + 0x01,0x0A,0x53,0xE3,0x0E,0x30,0xA0,0xA1,0x0E,0x00,0x51,0xE3,0xB0,0x30,0xC2,0xE1, + 0xF1,0xFF,0xFF,0x3A,0xC8,0x01,0x9D,0xE5,0xB0,0xAC,0xC0,0xE1,0x04,0x00,0x9D,0xE5, + 0xC8,0x11,0x9D,0xE5,0xB2,0x0C,0xC1,0xE1,0xC8,0x01,0x9D,0xE5,0x00,0x10,0x9D,0xE5, + 0xB4,0x1C,0xC0,0xE1,0x24,0xF9,0xFF,0xEB,0xEC,0x03,0x9F,0xE5,0xDC,0xC3,0x9F,0xE5, + 0x00,0x40,0x90,0xE5,0xB4,0x00,0xD4,0xE1,0xBE,0x00,0xCC,0xE1,0xB0,0x00,0xD4,0xE1, + 0x01,0x00,0x10,0xE3,0x08,0x00,0x00,0x0A,0xB8,0x01,0x9D,0xE5,0xB0,0x11,0x9D,0xE5, + 0x90,0x01,0x01,0xE0,0xD4,0x03,0x9F,0xE5,0x90,0x21,0x81,0xE0,0x21,0x06,0xA0,0xE1, + 0xB4,0x10,0xD4,0xE1,0x00,0x00,0x51,0xE1,0xBE,0x00,0xCC,0x81,0xC0,0xA3,0x9F,0xE5, + 0x00,0x00,0xA0,0xE3,0x90,0xE0,0x8D,0xE2,0x08,0x20,0xD4,0xE5,0x15,0x1E,0x8D,0xE2, + 0x00,0x11,0x91,0xE7,0x92,0x01,0x01,0xE0,0x9A,0x31,0x82,0xE0,0xA2,0x34,0xA0,0xE1, + 0xB0,0x21,0xD4,0xE1,0x02,0x00,0x53,0xE1,0x9A,0x21,0x81,0x90,0x09,0x30,0xD4,0xE5, + 0xA1,0x24,0xA0,0x91,0x00,0x11,0x9E,0xE7,0x91,0x03,0x03,0xE0,0x9A,0xB3,0x81,0xE0, + 0xA1,0xB4,0xA0,0xE1,0xB2,0x11,0xD4,0xE1,0x01,0x00,0x5B,0xE1,0x9A,0x33,0x81,0x90, + 0xA1,0x14,0xA0,0x91,0x01,0x10,0x42,0xE0,0xBC,0x20,0xD4,0xE1,0x92,0x01,0x01,0xE0, + 0x01,0x18,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x01,0x25,0x61,0xE0,0x02,0x21,0x82,0xE0, + 0x81,0x13,0x82,0xE0,0xC1,0x29,0xA0,0xE1,0xC1,0x1F,0x42,0xE0,0x80,0x20,0x8C,0xE0, + 0x01,0x00,0x80,0xE2,0x15,0x00,0x50,0xE3,0xB8,0x18,0xC2,0xE1,0xDD,0xFF,0xFF,0x3A, + 0x30,0x23,0x9F,0xE5,0x00,0xA0,0xA0,0xE3,0xF0,0xB0,0x8D,0xE2,0x0A,0x10,0xD4,0xE5, + 0x0A,0x01,0x9B,0xE7,0x90,0x01,0x01,0xE0,0x92,0x31,0x80,0xE0,0xA0,0x35,0xA0,0xE1, + 0xB4,0x01,0xD4,0xE1,0x00,0x00,0x53,0xE1,0x92,0x11,0x80,0x90,0x0B,0x30,0xD4,0xE5, + 0x30,0x10,0x8D,0xE2,0x0A,0x11,0x91,0xE7,0xA0,0x05,0xA0,0x91,0x91,0x03,0x03,0xE0, + 0x92,0xC3,0x81,0xE0,0xA1,0xC5,0xA0,0xE1,0xB6,0x11,0xD4,0xE1,0x01,0x00,0x5C,0xE1, + 0x92,0x33,0x81,0x90,0xA1,0x15,0xA0,0x91,0x01,0x00,0x40,0xE0,0xBE,0x10,0xD4,0xE1, + 0x91,0x00,0x00,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x00,0x15,0x60,0xE0, + 0x01,0x11,0x81,0xE0,0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1,0xC0,0x0F,0x41,0xE0, + 0x88,0x12,0x9F,0xE5,0x8A,0x10,0x81,0xE0,0x01,0xA0,0x8A,0xE2,0x0D,0x00,0x5A,0xE3, + 0xB8,0x0B,0xC1,0xE1,0xDC,0xFF,0xFF,0x3A,0x0A,0x00,0xD4,0xE5,0x0A,0x11,0x9B,0xE7, + 0x64,0x20,0xA0,0xE3,0x91,0x00,0x00,0xE0,0x8C,0x12,0x9F,0xE5,0x15,0x10,0xD1,0xE5, + 0x92,0x01,0x01,0xE0,0xBC,0x11,0x8D,0xE5,0xBD,0xEA,0xFF,0xEB,0xB4,0x11,0xD4,0xE1, + 0x01,0x00,0x50,0xE1,0x00,0xB0,0xA0,0x91,0x01,0xB0,0xA0,0x81,0x0B,0x10,0xD4,0xE5, + 0x30,0x00,0x8D,0xE2,0x0A,0x01,0x90,0xE7,0x91,0x00,0x00,0xE0,0xBC,0x11,0x9D,0xE5, + 0xB3,0xEA,0xFF,0xEB,0xB6,0x11,0xD4,0xE1,0x01,0x00,0x50,0xE1,0x01,0x00,0xA0,0x81, + 0xBE,0x10,0xD4,0xE1,0x00,0x00,0x4B,0xE0,0x10,0x42,0x9F,0xE5,0x91,0x00,0x00,0xE0, + 0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x00,0x15,0x60,0xE0,0x01,0x11,0x81,0xE0, + 0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x8A,0x10,0x84,0xE0, + 0x00,0x00,0x56,0xE3,0xB8,0x0B,0xC1,0xE1,0x0C,0x00,0x00,0xDA,0x2C,0x00,0x9D,0xE5, + 0x80,0x00,0x84,0xE0,0xB8,0x1B,0xD0,0xE1,0x28,0x00,0x9D,0xE5,0x80,0x00,0x84,0xE0, + 0xB8,0x08,0xD0,0xE1,0x01,0x00,0x80,0xE0,0x00,0x00,0x46,0xE0,0x00,0x08,0xA0,0xE1, + 0x40,0x08,0xB0,0xE1,0xB8,0x0E,0xC4,0xE1,0x00,0x00,0xA0,0x43,0xB8,0x0E,0xC4,0x41, + 0x11,0x10,0xA0,0xE3,0x08,0x00,0x9D,0xE5,0x01,0x1C,0x81,0xE2,0x90,0xEA,0xFF,0xEB, + 0xB6,0x10,0xD4,0xE1,0x40,0x00,0x11,0xE3,0x0E,0x00,0x00,0x0A,0x87,0x00,0x55,0xE1, + 0x01,0x20,0xA0,0x83,0x20,0x20,0x8D,0x85,0xFA,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83, + 0x1C,0x00,0x8D,0x85,0x23,0x00,0x58,0xE3,0x01,0x00,0xA0,0x83,0x18,0x00,0x8D,0x85, + 0x23,0x00,0x59,0xE3,0x01,0x00,0xA0,0x33,0x14,0x00,0x8D,0x35,0x14,0x00,0x55,0xE3, + 0x11,0x00,0x00,0x9A,0x0E,0x00,0x00,0xEA,0x07,0x00,0x55,0xE1,0x08,0x00,0x55,0x83, + 0x01,0x20,0xA0,0x83,0x20,0x20,0x8D,0x85,0x96,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83, + 0x1C,0x00,0x8D,0x85,0x14,0x00,0x58,0xE3,0x01,0x00,0xA0,0x83,0x18,0x00,0x8D,0x85, + 0x14,0x00,0x59,0xE3,0x01,0x00,0xA0,0x33,0x14,0x00,0x8D,0x35,0x0A,0x00,0x55,0xE3, + 0x01,0x00,0x00,0x9A,0x01,0x00,0xA0,0xE3,0x10,0x00,0x8D,0xE5,0xF1,0x00,0xD4,0xE5, + 0x00,0x00,0x50,0xE3,0xF2,0x00,0xD4,0xE5,0x03,0x00,0x00,0x0A,0xFA,0x00,0x50,0xE3, + 0x05,0x00,0x00,0x2A,0x01,0x00,0x80,0xE2,0x02,0x00,0x00,0xEA,0x00,0x00,0x50,0xE3, + 0x01,0x00,0x00,0x0A,0x01,0x00,0x40,0xE2,0xF2,0x00,0xC4,0xE5,0x1C,0x20,0x8D,0xE2, + 0x05,0x00,0x92,0xE8,0x14,0x30,0x9D,0xE5,0x00,0x20,0x82,0xE1,0x18,0x00,0x9D,0xE5, + 0x10,0x00,0x11,0xE3,0x03,0x00,0x00,0xE0,0x00,0x20,0x82,0xE1,0x10,0x00,0x9D,0x15, + 0x00,0x00,0x50,0x13,0x00,0x00,0xA0,0x03,0x01,0x00,0xA0,0x13,0x02,0x00,0x80,0xE1, + 0x00,0x00,0x50,0xE3,0xF2,0x00,0xD4,0x15,0x05,0x00,0x50,0x13,0x02,0x00,0x00,0x8A, + 0x24,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x07,0x00,0x00,0x0A,0xEC,0x00,0x94,0xE5, + 0x01,0x00,0x80,0xE2,0xEC,0x00,0x84,0xE5,0xF0,0x00,0xD4,0xE5,0x00,0x00,0x50,0xE3, + 0x01,0x00,0x40,0x12,0xF0,0x00,0xC4,0x15,0x0D,0x00,0x00,0xEA,0xF0,0x00,0xD4,0xE5, + 0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2,0xF0,0x00,0xC4,0xE5,0xC4,0x11,0x9D,0xE5, + 0xB4,0x18,0xD1,0xE1,0x01,0x00,0x50,0xE1,0x05,0x00,0x00,0x1A,0x00,0x00,0xA0,0xE3, + 0xF0,0x00,0xC4,0xE5,0xEC,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0xC2, + 0xEC,0x00,0x84,0xC5,0xF2,0x00,0xD4,0xE5,0x0A,0x00,0x50,0xE3,0x73,0xDF,0x8D,0x22, + 0xF0,0x4F,0xBD,0x28,0x1E,0xFF,0x2F,0x21,0xEC,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0xC3,0xEC,0x00,0x84,0xC5,0x00,0x00,0xA0,0xE3,0xF0,0x00,0xC4,0xE5, + 0x73,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x40,0x01,0x00,0x20, + 0x40,0x00,0x00,0x20,0x20,0x07,0x00,0x20,0x00,0x95,0x00,0x00,0xCC,0x07,0x00,0x20, + 0x48,0x07,0x00,0x20,0x00,0x00,0x00,0x10,0xD2,0x02,0x00,0x10,0x1F,0x85,0xEB,0x51, + 0x2B,0x75,0xAA,0x23,0x91,0x73,0x9F,0x5D,0x2D,0x34,0xA9,0xF9,0x00,0x93,0x00,0x00, + 0x10,0xB5,0x16,0x4C,0xA0,0x7B,0x00,0x28,0x07,0xD1,0xFB,0xF7,0xF9,0xFC,0x00,0x28, + 0x0F,0xD0,0xFC,0xF7,0x25,0xFF,0x01,0x20,0x0A,0xE0,0x01,0x28,0x0C,0xD1,0xFB,0xF7, + 0x0B,0xFD,0x00,0x28,0x05,0xD0,0xFC,0xF7,0x8B,0xFB,0x00,0xF0,0x6D,0xFB,0x02,0x20, + 0xA0,0x73,0x10,0xBC,0x08,0xBC,0x18,0x47,0x02,0x28,0x07,0xD1,0xFB,0xF7,0xB8,0xFE, + 0x00,0x28,0xF6,0xD0,0xFC,0xF7,0x7E,0xFD,0x03,0x20,0xF1,0xE7,0x03,0x28,0xF0,0xD1, + 0x03,0x48,0xC0,0x68,0xC0,0x07,0xEC,0xD0,0x04,0x20,0xE9,0xE7,0x14,0x07,0x00,0x20, + 0x00,0x90,0x00,0x40,0xF0,0xB5,0xD9,0x48,0x8B,0xB0,0x00,0x68,0x00,0x27,0x80,0x79, + 0x3D,0x00,0x02,0x90,0xD6,0x48,0x42,0x79,0x04,0x00,0xC0,0x34,0x00,0x92,0x82,0x79, + 0x80,0x30,0x01,0x7B,0xC0,0x38,0xA3,0x7A,0x00,0x7A,0xFE,0xF7,0xC2,0xF8,0x00,0x06, + 0x61,0x7A,0x00,0x0E,0xFE,0xF7,0xB2,0xF8,0x21,0x00,0x20,0x39,0x0A,0x7A,0x00,0x06, + 0xC0,0x39,0x09,0x79,0x00,0x0E,0xFE,0xF7,0xAD,0xF8,0x21,0x00,0x80,0x39,0x8A,0x7D, + 0x00,0x06,0xC0,0x39,0x89,0x7C,0x00,0x0E,0xFE,0xF7,0xA4,0xF8,0x00,0x06,0xC5,0x4E, + 0x00,0x0E,0x01,0x90,0x30,0x7B,0xC4,0x4C,0x00,0x28,0x02,0xD0,0xC3,0x48,0x40,0x89, + 0x06,0xE0,0xBE,0x48,0x61,0x88,0x00,0x68,0x40,0x88,0x40,0x18,0x00,0x04,0x00,0x0C, + 0x03,0x90,0x00,0x20,0x70,0x61,0x0F,0x20,0xF0,0x70,0x30,0x7A,0x00,0x28,0x06,0xD0, + 0x30,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0x89,0xFB,0x01,0xF0,0x77,0xFB,0x01,0x20, + 0x30,0x62,0xFC,0xF7,0x9F,0xF8,0x00,0xF0,0xB5,0xF9,0xFC,0xF7,0x07,0xFB,0xB4,0x48, + 0x05,0x21,0x09,0x90,0xB3,0x48,0xC9,0x01,0x41,0x18,0x08,0x91,0xB2,0x49,0x80,0x30, + 0x06,0xAA,0x03,0xC2,0x01,0x98,0xC0,0x1C,0x05,0x90,0xB0,0x48,0x04,0x90,0x36,0xE1, + 0x30,0x7A,0x00,0x28,0x04,0xD0,0x30,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0x66,0xFB, + 0xFF,0x20,0x81,0x30,0xFA,0xF7,0xD8,0xFE,0x03,0x20,0x01,0xF0,0xCF,0xF9,0xFC,0xF7, + 0xB5,0xF8,0xFC,0xF7,0x99,0xF8,0xA4,0x48,0xC0,0x38,0xC0,0x88,0x01,0x06,0x01,0xD5, + 0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5,0x05,0x20,0x00,0xE0,0x03,0x20,0x01,0xF0, + 0x85,0xF8,0xFC,0xF7,0x3D,0xFB,0x9A,0x48,0x03,0x99,0x60,0x38,0x00,0x89,0x40,0x18, + 0x99,0x49,0xC0,0x39,0x89,0x89,0x88,0x42,0x12,0xD9,0x09,0x98,0x40,0x7A,0x00,0x28, + 0x0E,0xD1,0x95,0x48,0xFF,0x21,0xC0,0x38,0xC0,0x88,0x19,0x31,0x08,0x42,0x07,0xD1, + 0x02,0x98,0x6D,0x1C,0x85,0x42,0x04,0xDD,0xFC,0xF7,0x2A,0xFB,0x01,0x27,0x00,0xE0, + 0x00,0x25,0x00,0xF0,0x6B,0xFE,0x01,0xF0,0x4F,0xF8,0x00,0xF0,0xFB,0xFD,0x00,0xF0, + 0x4F,0xFE,0x08,0x99,0x07,0x98,0x49,0x88,0xC0,0x6A,0x88,0x42,0x0B,0xDB,0x09,0x98, + 0x40,0x7A,0x00,0x28,0x05,0xD1,0x84,0x48,0x46,0x21,0xC0,0x38,0xC0,0x88,0x08,0x42, + 0x01,0xD0,0x01,0x20,0x70,0x70,0x00,0x2F,0x02,0xD0,0xFC,0xF7,0x97,0xFA,0x00,0x27, + 0xFC,0xF7,0x7C,0xFA,0x00,0x20,0xFC,0xF7,0xEB,0xFA,0xFC,0xF7,0xB3,0xFA,0x01,0x20, + 0xB0,0x73,0xFD,0xF7,0x4B,0xFC,0x00,0x28,0x09,0xD0,0x00,0x20,0x70,0x61,0x04,0x98, + 0x80,0x7E,0xC8,0x28,0x12,0xD2,0x04,0x99,0x40,0x1C,0x88,0x76,0x0E,0xE0,0x70,0x69, + 0x40,0x1C,0x70,0x61,0x70,0x69,0x01,0x28,0x03,0xD1,0x70,0x49,0x00,0x20,0x20,0x31, + 0x08,0x75,0x70,0x69,0x05,0x28,0x01,0xD9,0xFC,0xF7,0x04,0xF8,0x01,0x20,0x40,0x07, + 0x00,0x68,0x00,0x28,0x07,0xD1,0x20,0x69,0xFF,0x21,0xFF,0x31,0x88,0x42,0x04,0xDA, + 0x40,0x1C,0x20,0x61,0x01,0xE0,0x00,0x20,0xFB,0xE7,0x08,0x99,0xE0,0x68,0x49,0x89, + 0x88,0x42,0x0C,0xDD,0x20,0x69,0xFF,0x21,0xF5,0x31,0x88,0x42,0x07,0xDD,0x01,0x21, + 0x00,0x20,0x71,0x70,0xE0,0x60,0x20,0x61,0x07,0x98,0xC1,0x62,0x02,0xE0,0x70,0x78, + 0x00,0x28,0x02,0xD0,0xFB,0xF7,0xF0,0xFF,0x20,0xE0,0x59,0x48,0x41,0x68,0x09,0x07, + 0x0D,0xD5,0xC1,0x68,0x00,0x29,0x0A,0xD0,0xC1,0x68,0x07,0x29,0x04,0xD1,0xC0,0x68, + 0x01,0x21,0x49,0x07,0xC8,0x63,0x0E,0xE0,0x00,0xF0,0x20,0xFA,0x0B,0xE0,0x01,0xF0, + 0x27,0xF8,0x70,0x7B,0x80,0x28,0x01,0xD1,0xFC,0xF7,0x00,0xF9,0x00,0xF0,0x5C,0xF9, + 0x01,0xE0,0xFF,0xF7,0x9D,0xFE,0xB0,0x7B,0x03,0x28,0xFA,0xD1,0xFC,0xF7,0x22,0xFB, + 0x70,0x78,0x00,0x28,0x0B,0xD0,0x43,0x48,0x01,0x21,0xC0,0x7F,0x40,0x08,0x01,0xF0, + 0x4B,0xF8,0x3C,0x49,0x00,0x20,0x48,0x70,0x07,0x99,0xC8,0x62,0x5D,0xE0,0x06,0x98, + 0x00,0x7B,0x00,0x28,0x04,0xD0,0x30,0x7B,0x00,0x28,0x01,0xD1,0x00,0xF0,0xC6,0xF8, + 0x01,0x20,0x40,0x07,0xC0,0x6B,0x0B,0x28,0x4F,0xD1,0x03,0x20,0x01,0xF0,0xC8,0xF8, + 0xF0,0x62,0x03,0x20,0x01,0xF0,0xF6,0xF8,0xFF,0x20,0x81,0x30,0xFA,0xF7,0xE4,0xFD, + 0x34,0x48,0x00,0x78,0x00,0x28,0x3A,0xD1,0xFC,0xF7,0xCC,0xFB,0x00,0x28,0x36,0xD0, + 0x70,0x79,0x00,0x28,0x33,0xD1,0xB0,0x6A,0x00,0x28,0x0A,0x90,0x2F,0xD0,0x25,0x48, + 0xC0,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x2B,0x49,0xFA,0xF7,0x91,0xFA,0x0A,0x99, + 0x0E,0x1A,0x32,0x2E,0x23,0xDD,0x00,0xF0,0x81,0xF8,0x30,0x00,0x01,0xF0,0x64,0xFA, + 0x01,0xF0,0x68,0xFA,0x1B,0x48,0x80,0x79,0x00,0x28,0x0D,0xD0,0x00,0xF0,0x54,0xF8, + 0x00,0xF0,0x57,0xF8,0x00,0xF0,0x5F,0xF8,0x20,0x4E,0x01,0x20,0x70,0x60,0xFA,0xF7, + 0xC3,0xFD,0x1F,0x48,0x70,0x60,0x03,0xE0,0x1E,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0, + 0x01,0xF0,0x57,0xFA,0x1B,0x49,0x00,0x20,0x08,0x70,0x00,0xF0,0x6B,0xF8,0x0D,0x4E, + 0x70,0x69,0x05,0x99,0x88,0x42,0x00,0xD2,0xC2,0xE6,0x08,0x48,0x0A,0x49,0x00,0x68, + 0xC0,0x39,0x40,0x30,0x40,0x7D,0x48,0x70,0x06,0x48,0x00,0x7A,0x00,0x28,0x01,0xD0, + 0x01,0xF0,0x1C,0xFA,0x0B,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xCC,0x07,0x00,0x20, + 0x60,0x94,0x00,0x00,0x14,0x07,0x00,0x20,0x00,0x07,0x00,0x20,0xA0,0x95,0x00,0x00, + 0x00,0x02,0x00,0x20,0x00,0x93,0x00,0x00,0x00,0x01,0x00,0x20,0xA0,0x03,0x00,0x20, + 0x00,0x40,0x00,0x30,0xD1,0x07,0x00,0x20,0x10,0x27,0x00,0x00,0x00,0x30,0x00,0x40, + 0xE1,0x04,0x00,0x00,0xD0,0x07,0x00,0x20,0x01,0x20,0x80,0x07,0x01,0x6B,0x81,0x22, + 0xD2,0x01,0x11,0x43,0x01,0x63,0x70,0x47,0x00,0x20,0x01,0x21,0x89,0x07,0x48,0x60, + 0x70,0x47,0x10,0x20,0x81,0x06,0x48,0x60,0x70,0x47,0x01,0x22,0x92,0x07,0x91,0x68, + 0x01,0x43,0x91,0x60,0x70,0x47,0x01,0x20,0x80,0x07,0x41,0x68,0x02,0x22,0x11,0x43, + 0x41,0x60,0x70,0x47,0x01,0x20,0x80,0x07,0x01,0x6B,0x03,0x4A,0x89,0x09,0x52,0x7B, + 0x89,0x01,0x11,0x43,0x01,0x63,0x70,0x47,0x00,0x93,0x00,0x00,0x10,0xB5,0xFC,0xF7, + 0x4D,0xF9,0xFA,0xF7,0x37,0xFA,0x03,0x20,0x40,0x03,0xFA,0xF7,0x3D,0xFD,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x03,0x20,0x10,0xB5,0x40,0x03,0xFA,0xF7,0x3D,0xFD,0xFA,0xF7, + 0x33,0xFA,0xFC,0xF7,0x43,0xF9,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xB5,0x00,0xF0, + 0xEB,0xFB,0x05,0x49,0x80,0x22,0xC9,0x88,0x11,0x40,0x81,0x42,0x01,0xD0,0xFA,0xF7, + 0x59,0xFC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0x78,0x47,0xC0,0x46, + 0xF0,0x0F,0x2D,0xE9,0xAC,0x60,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0xBA,0x00,0xC6,0xE1, + 0xA4,0x00,0x9F,0xE5,0xA4,0xA0,0x9F,0xE5,0x14,0x80,0xD0,0xE5,0xA0,0xB0,0x9F,0xE5, + 0x26,0x20,0xA0,0xE3,0x01,0x2C,0x82,0xE2,0x14,0x10,0xA0,0xE3,0x01,0x90,0xA0,0xE3, + 0x0D,0x00,0xA0,0xE3,0x81,0x70,0x86,0xE0,0x01,0x20,0x42,0xE2,0x80,0x40,0x86,0xE0, + 0xF8,0x4B,0xD4,0xE1,0xF8,0x58,0xD7,0xE1,0x82,0x30,0x8B,0xE0,0xF0,0xC0,0xD3,0xE1, + 0x05,0x40,0x84,0xE0,0x02,0x00,0x18,0xE3,0x04,0xC0,0x4C,0xE0,0x04,0x00,0x00,0x0A, + 0x0D,0x00,0x50,0xE3,0x07,0x00,0x00,0x0A,0xC8,0x00,0x5C,0xE3,0x05,0x00,0x00,0xBA, + 0x03,0x00,0x00,0xEA,0x14,0x00,0x51,0xE3,0x02,0x00,0x00,0x0A,0xC8,0x00,0x5C,0xE3, + 0x00,0x00,0x00,0xBA,0x00,0x90,0xCA,0xE5,0x00,0x00,0x5C,0xE3,0x00,0xC0,0xA0,0xB3, + 0xB0,0xC0,0xC3,0xE1,0xBA,0x30,0xD6,0xE1,0x0C,0x00,0x53,0xE1,0xBA,0xC0,0xC6,0xB1, + 0x01,0x00,0x50,0xE2,0xE3,0xFF,0xFF,0x5A,0x01,0x10,0x51,0xE2,0xDF,0xFF,0xFF,0x5A, + 0xF0,0x0F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00, + 0x48,0x07,0x00,0x20,0x00,0x00,0x00,0x10,0xF8,0xB5,0xFD,0xF7,0xB9,0xF8,0x06,0x00, + 0x01,0x24,0x64,0x07,0x25,0x68,0x00,0x2D,0x7A,0xD0,0x4F,0x48,0x00,0x21,0x01,0x70, + 0x02,0x20,0x00,0xF0,0xB7,0xFF,0x4D,0x48,0x0A,0x21,0x00,0x6B,0xFA,0xF7,0x68,0xF9, + 0x01,0x00,0x02,0x20,0x00,0xF0,0x9A,0xFF,0x49,0x4F,0x78,0x7A,0x00,0x28,0x00,0xD0, + 0x6D,0x1C,0xF8,0x79,0x00,0x28,0x04,0xD1,0x46,0x49,0x48,0x69,0x0A,0x15,0x10,0x43, + 0x48,0x61,0x00,0xF0,0x93,0xF8,0x44,0x48,0x01,0x68,0x44,0x48,0xC1,0x61,0x02,0x24, + 0x20,0x00,0x00,0xF0,0x8B,0xFF,0x42,0x48,0xC1,0x68,0x49,0x08,0x49,0x00,0xC1,0x60, + 0x79,0x7A,0x02,0x04,0x1D,0xE0,0x3D,0x48,0x43,0x69,0x5B,0x06,0x0A,0xD4,0x00,0x29, + 0x01,0xD0,0xAC,0x42,0x04,0xD2,0xA3,0x00,0x9B,0x18,0x1B,0x68,0xC3,0x61,0x00,0xE0, + 0xC6,0x61,0x64,0x1C,0x30,0x48,0x00,0x78,0x00,0x28,0x0A,0xD0,0xFD,0xF7,0x98,0xF9, + 0x38,0x7A,0x00,0x28,0x07,0xD0,0x38,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0xF6,0xF8, + 0x01,0xE0,0xAC,0x42,0xDF,0xD9,0x02,0x20,0x00,0xF0,0x6C,0xFF,0x26,0x4C,0x20,0x78, + 0x00,0x28,0x38,0xD1,0xFD,0xF7,0x9E,0xF8,0x00,0x28,0x34,0xD0,0x23,0x48,0x0A,0x21, + 0x00,0x6B,0xFA,0xF7,0x15,0xF9,0x01,0x00,0x02,0x20,0x00,0xF0,0x47,0xFF,0x02,0x20, + 0x00,0xF0,0x4C,0xFF,0x0C,0xE0,0x20,0x78,0x00,0x28,0x09,0xD0,0xFD,0xF7,0x70,0xF9, + 0x38,0x7A,0x00,0x28,0x04,0xD0,0x38,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0xCE,0xF8, + 0xFD,0xF7,0x80,0xF8,0x00,0x28,0xEE,0xD1,0x18,0x48,0x41,0x68,0x41,0x60,0x0C,0xE0, + 0x1E,0xE0,0x21,0x78,0x00,0x29,0x08,0xD0,0x38,0x7A,0x00,0x28,0x08,0xD0,0x38,0x6B, + 0x00,0x04,0x00,0x0C,0x01,0xF0,0xBA,0xF8,0x02,0xE0,0x41,0x68,0xC9,0x03,0xF0,0xD5, + 0x02,0x20,0x00,0xF0,0x2F,0xFF,0x00,0xF0,0x21,0xF8,0x0D,0x49,0xC8,0x68,0x01,0x22, + 0x10,0x43,0xC8,0x60,0xF8,0x79,0x00,0x28,0x02,0xD1,0x08,0x15,0xFA,0xF7,0x14,0xFC, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD1,0x07,0x00,0x20,0x00,0x93,0x00,0x00, + 0x14,0x07,0x00,0x20,0x40,0x00,0x00,0x40,0x04,0x00,0x00,0x20,0x00,0x40,0x00,0x30, + 0x00,0x20,0x00,0x40,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x05,0x48,0x01,0x21, + 0x00,0xB5,0xC9,0x02,0x01,0x62,0x00,0x21,0x01,0x62,0xFD,0xF7,0x5D,0xFB,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x10,0xB5,0x01,0x20,0xFC,0xF7,0xA2,0xF8, + 0x01,0x20,0xFC,0xF7,0x5D,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x40,0x18,0x70,0x47, + 0x40,0x18,0x80,0x18,0x70,0x47,0x10,0xB4,0x40,0x18,0x01,0x9C,0x80,0x18,0xC0,0x18, + 0x00,0x19,0x10,0xBC,0x70,0x47,0x00,0x00,0xF8,0xB5,0x00,0x21,0x01,0x23,0x5B,0x07, + 0x18,0x68,0x13,0x4A,0x90,0x71,0x90,0x79,0x01,0x28,0x01,0xD1,0x01,0x21,0x0D,0xE0, + 0x01,0x28,0x00,0xD9,0x02,0x21,0x00,0x28,0x08,0xD1,0x0D,0x48,0x30,0x22,0x00,0x21, + 0x08,0x30,0xFF,0xF7,0x27,0xF8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x0D,0x25, + 0x08,0x4C,0xED,0x01,0x08,0xE0,0x46,0x18,0xB6,0x00,0xF6,0x18,0x36,0x68,0x87,0x00, + 0x3F,0x19,0x7F,0x19,0x40,0x1C,0xBE,0x60,0x96,0x79,0x86,0x42,0xF3,0xD8,0xEA,0xE7, + 0xC0,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x70,0xB5,0x1E,0x4A,0x1E,0x48,0x1C,0x4C, + 0x85,0x18,0x21,0x7A,0xDB,0x22,0x92,0x00,0x86,0x18,0x00,0x29,0x0F,0xD0,0x21,0x00, + 0x82,0x22,0x0C,0x31,0x28,0x00,0xFE,0xF7,0xC9,0xFF,0x18,0x49,0x0D,0x22,0x30,0x00, + 0xFE,0xF7,0xC4,0xFF,0x20,0x7A,0x60,0x72,0x70,0xBC,0x08,0xBC,0x18,0x47,0x0D,0x22, + 0x00,0x21,0x30,0x00,0xFE,0xF7,0xEE,0xFF,0x82,0x22,0x00,0x21,0x28,0x00,0xFE,0xF7, + 0xE9,0xFF,0x0E,0x48,0x82,0x22,0x00,0x21,0x8F,0x38,0xFE,0xF7,0xE3,0xFF,0x0B,0x48, + 0x0D,0x22,0x00,0x21,0x0D,0x38,0xFE,0xF7,0xDD,0xFF,0x00,0x20,0x06,0x49,0x60,0x72, + 0xA0,0x72,0xCA,0x88,0x23,0x23,0x9A,0x43,0xCA,0x80,0x05,0x49,0x88,0x72,0xDB,0xE7, + 0x00,0x02,0x00,0x20,0x4E,0x02,0x00,0x00,0x40,0x00,0x00,0x20,0x9F,0x03,0x00,0x20, + 0x40,0x06,0x00,0x20,0xF3,0xB5,0x90,0x48,0x91,0xB0,0x40,0x7E,0x02,0x90,0x8F,0x48, + 0x00,0x78,0x00,0x28,0x8E,0x48,0x18,0xD0,0x0B,0x21,0x89,0x01,0x40,0x18,0x01,0x8A, + 0x8C,0x4A,0x1A,0x26,0x07,0x91,0x41,0x8A,0x1C,0x27,0x06,0x91,0x81,0x8A,0x05,0x91, + 0x1E,0x21,0x41,0x5E,0x04,0x91,0x00,0x21,0x51,0x5E,0x03,0x91,0x16,0x21,0x18,0x22, + 0x86,0x5F,0xC7,0x5F,0x41,0x5E,0x82,0x5E,0x16,0xE0,0x60,0x30,0xC1,0x8A,0x04,0x22, + 0x00,0x26,0x07,0x91,0x01,0x8B,0x02,0x27,0x06,0x91,0x41,0x8B,0x05,0x91,0x7A,0x49, + 0x20,0x39,0x8A,0x5E,0x04,0x92,0x06,0x22,0x8A,0x5E,0x03,0x92,0x8E,0x5F,0xCF,0x5F, + 0x1C,0x21,0x1E,0x22,0x41,0x5E,0x82,0x5E,0x11,0x98,0x75,0x4C,0x00,0x68,0x41,0x18, + 0x11,0x98,0x01,0x60,0x12,0x98,0x00,0x68,0x81,0x18,0x12,0x98,0x01,0x60,0x60,0x8C, + 0x00,0x21,0x40,0x1E,0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0,0x20,0x8C,0x0A,0x00, + 0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0,0xC1,0xFF,0x20,0x8C, + 0x64,0x21,0x0A,0x90,0x60,0x8C,0x09,0x90,0x0A,0x98,0x44,0x08,0x09,0x98,0x45,0x08, + 0x06,0x98,0x64,0x38,0x00,0x28,0x01,0xDC,0x06,0x98,0x08,0x1A,0x0F,0x90,0x05,0x98, + 0x64,0x38,0x00,0x28,0x01,0xDC,0x05,0x98,0x08,0x1A,0x0E,0x90,0x15,0x20,0x08,0x90, + 0x5D,0x48,0x0E,0x21,0x80,0x7B,0xC2,0x07,0x05,0xD0,0x80,0x07,0x01,0xD5,0x0D,0x21, + 0x01,0xE0,0x14,0x20,0x08,0x90,0x20,0x00,0xF9,0xF7,0x7A,0xFE,0x0A,0x99,0x08,0x1A, + 0x40,0x1E,0x0C,0x90,0x08,0x99,0x28,0x00,0xF9,0xF7,0x72,0xFE,0x09,0x99,0x08,0x1A, + 0x40,0x1E,0x31,0x1E,0x0B,0x90,0x00,0xDD,0xA1,0x1B,0x00,0x2F,0x0D,0x97,0x01,0xDD, + 0xE8,0x1B,0x0D,0x90,0x11,0x98,0x00,0x68,0xA0,0x42,0x10,0x90,0x01,0xDB,0x00,0x1B, + 0x01,0xE0,0x00,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x22,0x06,0x00, + 0x56,0x43,0x37,0x00,0x88,0x42,0x0D,0xDD,0x42,0x1A,0x0F,0x98,0x50,0x43,0x86,0x19, + 0x10,0x00,0x50,0x43,0x0F,0x9A,0x50,0x43,0x0C,0x9A,0x12,0x1B,0x51,0x1A,0xF9,0xF7, + 0x47,0xFE,0xC7,0x19,0x04,0x98,0x00,0x28,0x01,0xD1,0x30,0x00,0x05,0xE0,0x01,0x28, + 0x01,0xD1,0x38,0x00,0x01,0xE0,0x70,0x00,0xC0,0x1B,0x64,0x21,0xF9,0xF7,0x38,0xFE, + 0x07,0x99,0xC9,0x07,0x0A,0xD0,0x10,0x99,0xA1,0x42,0x03,0xDB,0x21,0x18,0x11,0x98, + 0x01,0x60,0x03,0xE0,0x11,0x99,0x20,0x1A,0x40,0x1E,0x08,0x60,0x12,0x98,0x07,0x68, + 0xAF,0x42,0x01,0xDB,0x78,0x1B,0x01,0xE0,0x78,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC, + 0x40,0x42,0x64,0x21,0x04,0x00,0x4C,0x43,0x0D,0x99,0x26,0x00,0x88,0x42,0x0E,0xDD, + 0x41,0x1A,0x0E,0x98,0x0D,0x9A,0x48,0x43,0x04,0x19,0x08,0x00,0x48,0x43,0x0E,0x99, + 0x48,0x43,0x0B,0x99,0x49,0x1B,0x89,0x1A,0xF9,0xF7,0x0A,0xFE,0x86,0x19,0x03,0x98, + 0x00,0x28,0x01,0xD1,0x20,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x30,0x00,0x01,0xE0, + 0x60,0x00,0x80,0x1B,0x64,0x21,0xF9,0xF7,0xFB,0xFD,0x07,0x99,0x89,0x07,0x09,0xD5, + 0xAF,0x42,0x03,0xDB,0x29,0x18,0x12,0x98,0x01,0x60,0x03,0xE0,0x12,0x99,0x28,0x1A, + 0x40,0x1E,0x08,0x60,0x0E,0x48,0x02,0x99,0x42,0x8C,0x6B,0x46,0x51,0x1A,0x49,0x1E, + 0x0A,0x04,0x02,0x99,0x12,0x0C,0x06,0xC3,0x01,0x8C,0x02,0x98,0x02,0x9A,0x08,0x1A, + 0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0,0xF9,0xFE,0x13,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x93,0x00,0x00,0x20,0x07,0x00,0x20, + 0x00,0x93,0x00,0x00,0xE0,0x95,0x00,0x00,0x40,0x06,0x00,0x20,0xF0,0xB4,0x05,0x00, + 0x0B,0x4C,0x00,0x20,0xFF,0x26,0x91,0x36,0x82,0x00,0xA3,0x5A,0x12,0x19,0x52,0x88, + 0x5B,0x1B,0x1F,0x00,0x5F,0x43,0x52,0x1A,0x13,0x00,0x53,0x43,0xFA,0x18,0xB2,0x42, + 0x04,0xDB,0x40,0x1C,0x1A,0x28,0xEF,0xD3,0x00,0x20,0xC0,0x43,0xF0,0xBC,0x70,0x47, + 0x44,0x79,0x00,0x00,0xFE,0xB5,0x69,0x4D,0x67,0x48,0x00,0x26,0x29,0x00,0xFF,0x31, + 0x00,0x96,0x42,0x7E,0xC1,0x31,0x08,0x7A,0x33,0x00,0x00,0x2A,0x28,0xD1,0x00,0x28, + 0x26,0xD0,0x01,0x24,0x0A,0x20,0x60,0x43,0x47,0x19,0x38,0x00,0xFF,0x30,0xD3,0x30, + 0xFD,0xF7,0xB0,0xF8,0x00,0x28,0x17,0xD0,0x5D,0x48,0x81,0x7B,0x00,0x98,0x40,0x1C, + 0x81,0x42,0x14,0xD3,0xA9,0x19,0x33,0x22,0x00,0x90,0xFF,0x20,0x52,0x01,0xCD,0x30, + 0x89,0x18,0xC0,0x5D,0x3A,0x00,0xFF,0x32,0x48,0x76,0x76,0x1C,0xCD,0x32,0x03,0x20, + 0x01,0x23,0x69,0x46,0x00,0xF0,0x06,0xFA,0x64,0x1C,0x0D,0x2C,0xDA,0xDB,0x94,0xE0, + 0x49,0x7A,0x00,0x29,0x01,0xD1,0x00,0x28,0x78,0xD0,0x07,0x20,0xC0,0x01,0x00,0x24, + 0x2E,0x18,0x33,0x27,0x7F,0x01,0x28,0x19,0xC0,0x19,0x40,0x7E,0x00,0x28,0x3F,0xD0, + 0x0D,0x21,0x28,0x18,0x89,0x01,0x41,0x18,0xC9,0x7F,0x00,0x29,0x02,0xD0,0x32,0x7D, + 0x00,0x2A,0x14,0xD0,0x1B,0x21,0x49,0x01,0x40,0x18,0x00,0x99,0x00,0x7B,0x49,0x1C, + 0x00,0x91,0x0A,0x21,0x48,0x43,0x3F,0x49,0x40,0x19,0x42,0x18,0x02,0x20,0x03,0x23, + 0x69,0x46,0x00,0xF0,0xD7,0xF9,0x20,0x00,0x14,0x2C,0x1E,0xD0,0x1A,0xE0,0x0A,0x20, + 0x41,0x43,0x48,0x19,0x02,0x90,0xFF,0x30,0xD3,0x30,0xFD,0xF7,0x5B,0xF8,0x00,0x28, + 0x13,0xD0,0x00,0x98,0x02,0x9A,0x40,0x1C,0xFF,0x32,0x00,0x90,0xCD,0x32,0x03,0x20, + 0x02,0x23,0x69,0x46,0x00,0xF0,0xBE,0xF9,0x07,0xE0,0x29,0x18,0xC9,0x19,0x8A,0x7E, + 0x40,0x1C,0x4A,0x76,0x0C,0x28,0xF8,0xDB,0x64,0x1E,0x64,0x1C,0x0C,0x2C,0xBA,0xDB, + 0x01,0x24,0x26,0x49,0x0D,0x20,0x0A,0x19,0x80,0x01,0x10,0x18,0xC0,0x7F,0x00,0x22, + 0x01,0x92,0x00,0x28,0x32,0xD0,0x32,0x7D,0x00,0x2A,0x2F,0xD1,0x0A,0x22,0x50,0x43, + 0x45,0x18,0x28,0x00,0xFF,0x30,0xD3,0x30,0xFD,0xF7,0x2C,0xF8,0x00,0x28,0x25,0xD0, + 0x1B,0x48,0x00,0x9B,0x80,0x7B,0x5B,0x1C,0x98,0x42,0x26,0xD3,0x17,0x4A,0x00,0x20, + 0x11,0x18,0xC9,0x19,0x49,0x7E,0xA1,0x42,0x0C,0xD0,0x00,0x29,0x07,0xD1,0xFF,0x21, + 0xCD,0x31,0x49,0x5D,0x10,0x18,0xC0,0x19,0x41,0x76,0x06,0xE0,0x12,0xE0,0x40,0x1C, + 0x0C,0x28,0xED,0xDB,0x01,0x98,0x00,0x28,0x08,0xD0,0x2A,0x00,0xFF,0x32,0x00,0x93, + 0xCD,0x32,0x03,0x20,0x01,0x23,0x69,0x46,0x00,0xF0,0x74,0xF9,0x64,0x1C,0x0D,0x2C, + 0xBF,0xDB,0x02,0xE0,0x01,0x20,0x40,0x07,0x43,0x60,0x00,0x98,0x00,0xF0,0x66,0xFC, + 0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0x00,0x93,0x00,0x00,0x4E,0x02,0x00,0x00,0xFC,0xB5,0x4E,0x48,0x36,0x25,0x45,0x5F, + 0x15,0x20,0x84,0x46,0x4B,0x48,0x4C,0x4F,0x80,0x30,0x82,0x7D,0x86,0x46,0x4B,0x48, + 0x00,0x26,0x81,0x7B,0x0E,0x24,0xC8,0x07,0x05,0xD0,0x88,0x07,0x01,0xD5,0x0D,0x24, + 0x01,0xE0,0x14,0x20,0x84,0x46,0x00,0x21,0x27,0xE0,0x00,0x20,0x22,0xE0,0x91,0x42, + 0x05,0xD2,0x90,0x42,0x1D,0xD3,0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x19,0xD3,0x63,0x46, + 0x9B,0x1A,0x5B,0x1E,0x8B,0x42,0x01,0xD2,0x90,0x42,0x12,0xD3,0x8B,0x42,0x03,0xD2, + 0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x0C,0xD3,0x0B,0x00,0x63,0x43,0x1B,0x18,0x9B,0x00, + 0xFB,0x58,0x1B,0x01,0x1B,0x0D,0xB3,0x42,0x00,0xDD,0x1E,0x00,0xAB,0x42,0x00,0xDA, + 0x1D,0x00,0x40,0x1C,0xA0,0x42,0xDA,0xD3,0x49,0x1C,0x61,0x45,0xD5,0xD3,0x1E,0x24, + 0x70,0x46,0x04,0x5F,0x2B,0x4B,0x2E,0x48,0xA0,0x33,0xC0,0x88,0x06,0x22,0x9A,0x5E, + 0x40,0x06,0x07,0xD5,0x70,0x46,0x80,0x8A,0x01,0x19,0x0C,0x04,0x10,0x1A,0x24,0x14, + 0x02,0x04,0x12,0x14,0x25,0x48,0x80,0x30,0x81,0x6B,0xA6,0x42,0x05,0xDD,0x74,0x46, + 0x64,0x8B,0xA1,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E, + 0x81,0x63,0x1E,0x49,0x80,0x31,0xC9,0x6B,0x95,0x42,0x04,0xDA,0x5A,0x88,0x91,0x42, + 0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E,0xC1,0x63,0x74,0x46, + 0xA4,0x8B,0x85,0x6B,0x01,0x22,0x11,0x00,0xA5,0x42,0x00,0xDC,0x00,0x21,0x9B,0x88, + 0xC0,0x6B,0x98,0x42,0x00,0xDC,0x00,0x22,0x00,0x20,0x6B,0x46,0x18,0x70,0x59,0x70, + 0x00,0x29,0x9A,0x70,0x02,0xD0,0x00,0x2A,0x00,0xD0,0x01,0x20,0x6B,0x46,0x11,0x43, + 0xD8,0x70,0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x6B,0x46,0x18,0x71,0x70,0x46, + 0x00,0x7B,0x69,0x46,0x08,0x5C,0x00,0x28,0x00,0xD0,0x80,0x20,0xFC,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0x93,0x00,0x00,0xD4,0x02,0x10,0x40,0x40,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0xF8,0xB5,0x22,0x48,0x22,0x4C,0xC0,0x88,0x01,0x23,0x22,0x4D, + 0x41,0x06,0x09,0x20,0x80,0x01,0x21,0x4F,0x21,0x4E,0x5B,0x05,0x20,0x18,0x00,0x29, + 0x0E,0xDA,0x81,0x69,0x69,0x61,0xC1,0x69,0xA9,0x61,0x41,0x6A,0x99,0x43,0xE9,0x61, + 0x81,0x6A,0x29,0x62,0x01,0x6A,0xE9,0x60,0x80,0x6B,0x28,0x61,0xE0,0x6A,0x0E,0xE0, + 0x18,0x49,0x4A,0x69,0x6A,0x61,0x8A,0x69,0xAA,0x61,0x0A,0x6A,0x9A,0x43,0xEA,0x61, + 0x4A,0x6A,0x2A,0x62,0xC9,0x69,0xE9,0x60,0x40,0x6B,0x28,0x61,0xA0,0x6A,0xFF,0x21, + 0x41,0x31,0x48,0x43,0x39,0x00,0xF9,0xF7,0x2B,0xFD,0xB0,0x62,0x30,0x7B,0x00,0x28, + 0x03,0xD0,0x0D,0x48,0xE8,0x60,0x0D,0x48,0x28,0x61,0x60,0x6A,0xFF,0x21,0x41,0x31, + 0x48,0x43,0x39,0x00,0xF9,0xF7,0x1C,0xFD,0x70,0x62,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00,0xC0,0x90,0x00,0x40,0x10,0x27,0x00,0x00, + 0x14,0x07,0x00,0x20,0x80,0x94,0x00,0x00,0x41,0xA0,0x00,0x00,0x10,0x00,0x10,0x00, + 0x07,0x48,0x41,0x7A,0x07,0x48,0x02,0x29,0x01,0xD9,0x00,0x6A,0x04,0xE0,0x02,0x29, + 0x01,0xD1,0xC0,0x69,0x00,0xE0,0x80,0x69,0x03,0x49,0x48,0x62,0x70,0x47,0x00,0x00, + 0x00,0x02,0x00,0x20,0xC0,0x94,0x00,0x00,0xC0,0x90,0x00,0x40,0xF0,0xB4,0x0B,0x48, + 0x0D,0x4B,0xC0,0x88,0x0A,0x49,0x0C,0x4F,0x42,0x06,0x0A,0x48,0x01,0x24,0xE4,0x03, + 0x32,0x25,0x5E,0x00,0x32,0x3F,0x01,0x61,0x43,0x61,0x84,0x61,0xC5,0x61,0x04,0x62, + 0x46,0x62,0x84,0x62,0xC7,0x62,0xF0,0xBC,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0x00,0x80,0x00,0x03,0x40,0xA1,0x00,0x40,0x64,0x40,0x00,0x00,0x11,0x49,0x10,0xB4, + 0x0A,0x7D,0x11,0x48,0x82,0x73,0x4A,0x7D,0xC2,0x73,0x82,0x7B,0x0F,0x48,0xD3,0x07, + 0x0A,0xD0,0x93,0x07,0x0E,0x4A,0x03,0xD5,0x0D,0x23,0x03,0x77,0x00,0x23,0x02,0xE0, + 0x14,0x23,0x03,0x77,0x01,0x23,0x13,0x71,0x8A,0x7D,0x42,0x77,0xCA,0x7D,0x82,0x77, + 0x0A,0x7E,0xC2,0x77,0x4A,0x7E,0x05,0x48,0x20,0x30,0x02,0x70,0x89,0x7E,0x41,0x70, + 0x10,0xBC,0x70,0x47,0x00,0x93,0x00,0x00,0x40,0x06,0x00,0x20,0x60,0x06,0x00,0x20, + 0x14,0x07,0x00,0x20,0xFF,0xB5,0x05,0x00,0x14,0x00,0x19,0x00,0x10,0x00,0x81,0xB0, + 0xFA,0xF7,0x9C,0xFC,0x00,0x28,0x08,0xD0,0x02,0x98,0x02,0x99,0x00,0x68,0x40,0x1E, + 0x08,0x60,0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x29,0x48,0x80,0x7B,0xC0,0x07, + 0x22,0xD0,0xE0,0x79,0x05,0x28,0x1D,0xD0,0x09,0x28,0x1D,0xD1,0x6D,0x08,0x6D,0x00, + 0x01,0x20,0x09,0x27,0x22,0x78,0x23,0x4E,0xBF,0x01,0x0F,0xE0,0x0A,0x23,0x01,0x00, + 0x59,0x43,0x21,0x4B,0xC9,0x18,0xC9,0x19,0x8B,0x7B,0x9A,0x42,0x05,0xD1,0x0B,0x8A, + 0x63,0x80,0xCB,0x7B,0x63,0x70,0x49,0x8A,0xA1,0x80,0x40,0x1C,0x71,0x7A,0x81,0x42, + 0xEC,0xDA,0x01,0xE0,0x01,0x20,0x05,0x43,0x0F,0x21,0xA8,0x07,0x89,0x06,0x88,0x43, + 0x21,0x78,0x62,0x78,0x09,0x07,0x89,0x08,0x08,0x43,0x14,0x49,0x92,0x06,0x08,0x40, + 0x61,0x88,0x12,0x0C,0x89,0x05,0x89,0x09,0x08,0x43,0x3F,0x21,0x89,0x02,0x88,0x43, + 0x10,0x43,0x02,0x04,0x92,0x0E,0x0F,0x2A,0x03,0xD9,0x88,0x43,0x0F,0x21,0x89,0x02, + 0x40,0x18,0xA1,0x88,0x80,0x0A,0x80,0x02,0x89,0x05,0x89,0x0D,0x08,0x43,0x02,0x99, + 0x01,0x22,0x09,0x68,0x52,0x07,0x89,0x00,0x89,0x18,0x48,0x60,0xA9,0xE7,0x00,0x00, + 0x40,0x06,0x00,0x20,0x00,0x02,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0xFF,0x00,0xFC, + 0x0E,0x49,0x10,0xB4,0x48,0x7B,0x00,0x28,0x10,0xD0,0x00,0x09,0x00,0x01,0x00,0x23, + 0x01,0x22,0x40,0x28,0x0C,0xD0,0x80,0x28,0x08,0xD1,0x4A,0x72,0x8A,0x72,0x08,0x48, + 0xCA,0x72,0xCA,0x71,0x00,0x78,0x00,0x28,0x06,0xD1,0x0B,0x73,0x10,0xBC,0x70,0x47, + 0x8B,0x71,0xCA,0x71,0x0B,0x72,0xF9,0xE7,0x0A,0x73,0xF7,0xE7,0x14,0x07,0x00,0x20, + 0xA0,0x95,0x00,0x00,0xF8,0xB5,0x06,0x9F,0x07,0x9D,0x0C,0x00,0x1E,0x00,0x88,0x42, + 0x09,0xD3,0x21,0x00,0x10,0x00,0xF9,0xF7,0xDB,0xFA,0x38,0x80,0x21,0x00,0x30,0x00, + 0xF9,0xF7,0xD6,0xFA,0x28,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xF8,0xB5,0x08,0xAD, + 0x60,0xCD,0x04,0x00,0x06,0x98,0x91,0x42,0x04,0xDA,0x65,0x80,0xA6,0x80,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x99,0x42,0x02,0xDB,0x60,0x80,0x07,0x98,0x0F,0xE0,0x8F,0x1A, + 0x40,0x1B,0x78,0x43,0x99,0x1A,0x00,0x91,0xF9,0xF7,0xBA,0xFA,0x40,0x19,0x60,0x80, + 0x07,0x98,0x00,0x99,0x80,0x1B,0x78,0x43,0xF9,0xF7,0xB2,0xFA,0x80,0x19,0xA0,0x80, + 0xE5,0xE7,0x00,0x00,0xF0,0xB4,0x8C,0x79,0x14,0x4B,0x00,0x26,0x22,0x07,0x92,0x08, + 0x1A,0x40,0xCB,0x79,0x92,0x0A,0x92,0x02,0x5B,0x07,0x09,0xD5,0x10,0x4D,0xAB,0x89, + 0x00,0x2B,0x05,0xD0,0x9F,0x05,0xBF,0x0D,0x3A,0x43,0x64,0x00,0x64,0x19,0xE3,0x81, + 0x3F,0x23,0x9B,0x02,0x9A,0x43,0xCB,0x79,0x80,0x00,0x9B,0x06,0x1B,0x0C,0x1A,0x43, + 0x01,0x23,0x5B,0x07,0xC0,0x18,0x42,0x60,0xC8,0x79,0xC0,0x06,0x80,0x0F,0x03,0xD0, + 0x04,0x48,0x01,0x21,0xC1,0x72,0x06,0x73,0xF0,0xBC,0x70,0x47,0xFF,0xFF,0x00,0xFC, + 0x40,0x00,0x00,0x20,0x40,0x06,0x00,0x20,0x30,0xB4,0x0E,0x25,0x68,0x43,0x0B,0x4C, + 0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x00,0x0A,0x09,0x0E,0x82,0x18,0xC9,0x18, + 0x00,0x20,0x4B,0x1E,0xC0,0x43,0xFF,0x2B,0x06,0xD2,0x53,0x1E,0xFF,0x2B,0x03,0xD2, + 0x10,0x02,0x08,0x43,0x60,0x53,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40, + 0x10,0xB4,0x0E,0x24,0x60,0x43,0x03,0x4B,0x40,0x18,0x40,0x00,0x1A,0x52,0x10,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x0E,0x23,0x58,0x43,0x30,0xB4,0x0B,0x4C, + 0x40,0x18,0x43,0x00,0xE0,0x5A,0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18, + 0x00,0x20,0x4D,0x1E,0xC0,0x43,0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2, + 0x10,0x02,0x08,0x43,0xE0,0x52,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40, + 0x70,0xB4,0x12,0x4A,0x11,0x4D,0x52,0x7D,0x00,0x21,0x20,0x3D,0x14,0x02,0x14,0x43, + 0x0E,0x22,0x50,0x43,0x0C,0x4B,0x86,0x18,0x12,0xE0,0xAA,0x7D,0x8A,0x42,0x0D,0xD0, + 0xEA,0x7D,0x8A,0x42,0x0A,0xD0,0x2A,0x7E,0x8A,0x42,0x07,0xD0,0x6A,0x7E,0x8A,0x42, + 0x04,0xD0,0xAA,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00,0x9C,0x52,0x40,0x1C,0x49,0x1C, + 0x86,0x42,0xEA,0xD8,0x70,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0x20,0x93,0x00,0x00, + 0x70,0xB4,0x12,0x4A,0x11,0x4B,0x52,0x7D,0x00,0x21,0x20,0x3B,0x15,0x02,0x15,0x43, + 0xFF,0x26,0x0D,0x4C,0x27,0x36,0x12,0xE0,0x9A,0x7D,0x8A,0x42,0x0D,0xD0,0xDA,0x7D, + 0x8A,0x42,0x0A,0xD0,0x1A,0x7E,0x8A,0x42,0x07,0xD0,0x5A,0x7E,0x8A,0x42,0x04,0xD0, + 0x9A,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00,0xA5,0x52,0x0E,0x30,0x49,0x1C,0xB0,0x42, + 0xEA,0xD3,0x70,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x20,0x93,0x00,0x00, + 0x02,0x04,0x04,0x49,0x02,0x43,0x00,0x20,0x40,0x1C,0x04,0xC1,0xB5,0x28,0xFB,0xD3, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x05,0x48,0x07,0x49,0xC0,0x88,0x42,0x06, + 0x04,0x48,0x01,0xD5,0x40,0x68,0x00,0xE0,0x00,0x68,0x48,0x60,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x20,0xC0,0x93,0x00,0x00,0x00,0x90,0x00,0x40,0xF8,0xB5,0x03,0x00, + 0x1E,0x49,0x05,0x20,0xC0,0x01,0x0A,0x18,0x0B,0x20,0x80,0x01,0x0D,0x18,0xC0,0x31, + 0x08,0x6A,0x19,0x4C,0x00,0x90,0x4F,0x6A,0x0E,0x69,0x28,0x68,0x00,0xF0,0x16,0xFB, + 0x06,0x04,0x0A,0x12,0x15,0x1F,0x26,0x1C,0xC8,0x68,0x20,0x62,0x50,0x6B,0x60,0x62, + 0x02,0x20,0x04,0xE0,0xC8,0x69,0x20,0x62,0x68,0x68,0x60,0x62,0x04,0x20,0xE0,0x62, + 0x00,0x98,0x11,0xE0,0x26,0x62,0x90,0x6B,0x02,0xE0,0x48,0x69,0x20,0x62,0xD0,0x6B, + 0x60,0x62,0x04,0x20,0xE0,0x62,0x67,0x63,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x26,0x62, + 0x60,0x62,0x04,0x20,0xE0,0x62,0x88,0x6A,0x60,0x63,0xF5,0xE7,0x89,0x69,0x21,0x62, + 0x60,0x62,0x05,0x20,0xE0,0x62,0xEF,0xE7,0x80,0x90,0x00,0x40,0x00,0x93,0x00,0x00, + 0x01,0x21,0x49,0x07,0x48,0x68,0x00,0x23,0x00,0x04,0x00,0x0F,0x00,0x28,0x0B,0x4A, + 0x48,0x68,0x03,0xD0,0x00,0x04,0x00,0x0F,0x40,0x1C,0x0C,0xE0,0xC0,0x02,0xC0,0x0E, + 0x01,0xD0,0x01,0x20,0x07,0xE0,0xD0,0x78,0x00,0x28,0x02,0xD1,0x01,0x20,0x03,0x00, + 0x01,0xE0,0x0F,0x23,0x00,0x20,0xD3,0x70,0x08,0x60,0x70,0x47,0x14,0x07,0x00,0x20, + 0x0A,0x4A,0x10,0xB5,0xD1,0x88,0x0A,0x4B,0x40,0x24,0x00,0x28,0x03,0xD0,0x21,0x43, + 0x08,0x48,0xD1,0x80,0x03,0xE0,0x07,0x48,0xA1,0x43,0xC4,0x38,0xD1,0x80,0x18,0x60, + 0xFF,0xF7,0x28,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0xCC,0x07,0x00,0x20,0xB0,0x94,0x00,0x00,0xFE,0xB5,0x04,0x00,0x37,0x48,0x0E,0x00, + 0x07,0x6A,0x41,0x6A,0x02,0x91,0x41,0x6B,0x01,0x91,0xC0,0x6A,0x00,0x90,0x00,0x20, + 0xFF,0xF7,0x74,0xFF,0xFB,0xF7,0x34,0xFA,0x25,0x00,0x46,0xE0,0x68,0x1E,0x84,0x42, + 0x01,0xD1,0xFB,0xF7,0x63,0xFA,0xFB,0xF7,0xDD,0xF9,0xFB,0xF7,0xB3,0xFA,0x00,0x2E, + 0x2E,0xD1,0xA8,0x00,0x05,0x21,0xF9,0xF7,0x5B,0xFA,0xA0,0x42,0x03,0xD8,0x01,0x22, + 0x11,0x00,0x04,0x20,0x21,0xE0,0x68,0x00,0x28,0x18,0x05,0x21,0xF9,0xF7,0x50,0xFA, + 0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x03,0x20,0x16,0xE0,0x68,0x00,0x05,0x21, + 0xF9,0xF7,0x46,0xFA,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x02,0x20,0x0C,0xE0, + 0x05,0x21,0x28,0x00,0xF9,0xF7,0x3C,0xFA,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00, + 0x10,0x00,0x02,0xE0,0x01,0x22,0x11,0x00,0x00,0x20,0xFA,0xF7,0x87,0xFF,0x0C,0xE0, + 0x68,0x00,0x03,0x21,0xF9,0xF7,0x2C,0xFA,0xA0,0x42,0xDB,0xD9,0x03,0x21,0x28,0x00, + 0xF9,0xF7,0x26,0xFA,0xA0,0x42,0xE9,0xD8,0xDE,0xE7,0x64,0x1E,0xB6,0xD2,0x0C,0x48, + 0x44,0x88,0x03,0xE0,0xFB,0xF7,0x96,0xF9,0xFB,0xF7,0x6C,0xFA,0x64,0x1E,0xF9,0xD2, + 0xFB,0xF7,0xD6,0xF9,0x05,0x48,0x07,0x62,0x02,0x99,0x41,0x62,0x01,0x99,0x41,0x63, + 0x00,0x99,0xC1,0x62,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x80,0x90,0x00,0x40, + 0xE0,0x95,0x00,0x00,0x30,0xB4,0x0D,0x4D,0xEC,0x7B,0x00,0x2C,0x13,0xD0,0x02,0x68, + 0x0B,0x68,0xA4,0x07,0x03,0xD5,0x2C,0x8C,0xA2,0x1A,0x52,0x1E,0x02,0x60,0xEC,0x7B, + 0x64,0x07,0x03,0xD5,0x6C,0x8C,0xE3,0x1A,0x5B,0x1E,0x0B,0x60,0xEC,0x7B,0xE4,0x07, + 0x01,0xD0,0x03,0x60,0x0A,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x93,0x00,0x00, + 0x02,0x49,0x00,0x03,0x40,0x18,0xC0,0x68,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47,0xD1,0x07,0x00,0x20,0x30,0xB4,0x05,0x03, + 0x05,0x48,0x02,0x9C,0x28,0x18,0x02,0x60,0x41,0x60,0x00,0x2B,0x00,0xD0,0x03,0x61, + 0x84,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x02,0x4A,0x00,0x03, + 0x80,0x18,0x01,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x03,0x04,0x48, + 0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x11,0x43,0x81,0x60,0x70,0x47,0x00,0x00, + 0x00,0x20,0x00,0x40,0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32, + 0x91,0x43,0x81,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x0F,0x49,0x89,0x7B, + 0x81,0x42,0x00,0xD2,0x08,0x00,0x01,0x22,0x52,0x07,0x01,0x28,0x0C,0xD1,0x91,0x68, + 0x8B,0x0F,0xDB,0x07,0x04,0xD0,0x89,0x00,0x89,0x08,0x83,0x07,0xC9,0x18,0x01,0xE0, + 0x89,0x00,0x89,0x08,0x51,0x60,0x07,0xE0,0x01,0x28,0x05,0xD9,0x01,0x21,0xC9,0x07, + 0x83,0x05,0x9B,0x0D,0x19,0x43,0xF5,0xE7,0x10,0x60,0x70,0x47,0x00,0x93,0x00,0x00, + 0xF8,0xB5,0x17,0x4B,0x00,0x24,0x98,0x79,0x00,0x28,0x25,0xD0,0x00,0x20,0x0D,0x26, + 0x14,0x4D,0xF6,0x01,0x12,0xE0,0x81,0x00,0x49,0x19,0x89,0x19,0x8A,0x68,0x97,0x0F, + 0xFF,0x07,0x0A,0xD0,0x92,0x00,0x01,0x27,0x92,0x08,0xFF,0x07,0xD2,0x19,0x64,0x1C, + 0x8A,0x60,0xA1,0x00,0xBF,0x08,0xC9,0x19,0x4A,0x60,0x40,0x1C,0x99,0x79,0x81,0x42, + 0xE9,0xDC,0x07,0x48,0x0D,0x22,0x00,0x21,0xC0,0x1F,0xFE,0xF7,0x03,0xF9,0x20,0x00, + 0xFF,0xF7,0xB4,0xFF,0xFC,0xF7,0xCA,0xF9,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xC0,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB5,0x00,0x24,0x25,0x00,0x20,0x00, + 0x01,0x21,0x8D,0xB0,0x49,0x07,0x0C,0x94,0x4F,0x68,0x61,0x4E,0xB9,0x0F,0x89,0x07, + 0x7E,0xD5,0x30,0x22,0x00,0x21,0x68,0x46,0xFE,0xF7,0xE4,0xF8,0x07,0x21,0xB8,0x01, + 0x49,0x05,0x40,0x08,0x08,0x40,0x31,0x00,0x88,0x43,0x39,0x07,0x09,0x0C,0x08,0x43, + 0x0C,0x90,0x00,0x20,0x33,0xE0,0x01,0x22,0x81,0x00,0x52,0x07,0x89,0x18,0x89,0x68, + 0x8E,0x00,0x32,0x0F,0x2A,0xD0,0x32,0x0F,0x94,0x46,0x92,0x00,0x6B,0x46,0xD2,0x18, + 0x40,0x3A,0xD3,0x6B,0x36,0x0F,0x1B,0x01,0x1B,0x09,0x36,0x07,0x33,0x43,0x0F,0x27, + 0x3F,0x06,0x0E,0x04,0xB6,0x08,0xBB,0x43,0x3E,0x40,0x33,0x43,0x49,0x4E,0x33,0x40, + 0x8E,0x01,0xB6,0x0D,0x36,0x03,0x33,0x43,0x1B,0x0B,0x89,0x05,0x1B,0x03,0x89,0x0D, + 0x0B,0x43,0xD3,0x63,0x62,0x46,0x52,0x1E,0x01,0x23,0x93,0x40,0x9A,0x05,0x92,0x0D, + 0x71,0x46,0x11,0x43,0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x0C,0x91,0x40,0x1C,0x0C,0x99, + 0x8E,0x46,0x09,0x04,0x09,0x0F,0x81,0x42,0xC5,0xD8,0x0C,0x98,0x01,0x27,0x00,0x04, + 0x00,0x0F,0x7B,0x07,0x0F,0xE0,0x82,0x00,0xD2,0x18,0x92,0x68,0x3E,0x00,0x92,0x00, + 0x12,0x0F,0x52,0x1E,0x96,0x40,0xF2,0x06,0xD2,0x0A,0x64,0x1C,0x11,0x43,0x24,0x06, + 0x24,0x0E,0x40,0x1C,0x0C,0x91,0x0C,0x99,0x0A,0x04,0x0E,0x02,0x12,0x0F,0x76,0x0F, + 0x92,0x19,0x82,0x42,0xE7,0xD8,0x00,0x21,0x08,0x00,0x6E,0x46,0x82,0x00,0xB2,0x58, + 0x00,0x2A,0x03,0xD0,0x8F,0x00,0xFF,0x18,0xBA,0x60,0x49,0x1C,0x40,0x1C,0x0C,0x28, + 0xF4,0xD3,0x23,0x49,0x0C,0x98,0x88,0x43,0x29,0x07,0x09,0x0C,0x08,0x43,0x00,0xE0, + 0x07,0xE0,0x07,0x21,0x49,0x05,0x88,0x43,0x61,0x07,0x09,0x0A,0x08,0x43,0x0C,0x90, + 0x2B,0xE0,0xB9,0x0F,0xC9,0x07,0x25,0xD0,0x01,0x23,0x5B,0x07,0x58,0x68,0x19,0x4C, + 0x82,0x00,0x11,0x0F,0x09,0x07,0x21,0x40,0x84,0x01,0xA4,0x0D,0x24,0x03,0x21,0x43, + 0x84,0x05,0x09,0x0B,0x09,0x03,0xA4,0x0D,0x21,0x43,0x0F,0x24,0x24,0x06,0x00,0x04, + 0x80,0x08,0xA1,0x43,0x20,0x40,0x01,0x43,0x08,0x0F,0x09,0xD0,0x12,0x0F,0x52,0x1E, + 0x01,0x20,0x90,0x40,0x80,0x05,0x80,0x0D,0xB0,0x43,0x5A,0x14,0x80,0x18,0x0C,0x90, + 0x99,0x60,0x02,0xE0,0x01,0x21,0x49,0x07,0x88,0x60,0x71,0x20,0x08,0xAB,0xD8,0x74, + 0x0C,0x99,0x40,0x07,0x41,0x60,0x0D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0xF0,0x00,0x00,0xFF,0x0F,0x00,0xFF,0x08,0x48,0x10,0xB5,0x04,0x04,0x24,0x0C, + 0x07,0x49,0x00,0x22,0x20,0x00,0xF9,0xF7,0x99,0xF8,0x05,0x4A,0x05,0x49,0x20,0x00, + 0x00,0x23,0xF9,0xF7,0x9B,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00, + 0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x10,0x70,0xB5,0x05,0x00,0x08,0x48,0x00,0x22, + 0x04,0x04,0x24,0x0C,0x40,0x21,0x20,0x00,0xF9,0xF7,0x80,0xF8,0x40,0x22,0x29,0x00, + 0x20,0x00,0x00,0x23,0xF9,0xF7,0x82,0xF8,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xC0,0x92,0x00,0x00,0x02,0x4B,0x58,0x60,0x99,0x60,0x1A,0x60,0x70,0x47,0x00,0x00, + 0x00,0x30,0x00,0x40,0x01,0x04,0x00,0xB5,0x03,0x48,0x02,0x22,0x09,0x0C,0xFF,0xF7, + 0xF1,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00,0xE1,0x04,0x00,0x00,0x02,0x48,0x01,0x68, + 0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x48,0x01,0x68, + 0x49,0x08,0x49,0x00,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x49,0x02,0x22, + 0x0A,0x61,0x88,0x60,0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40,0x01,0x49,0x01,0x20, + 0x08,0x70,0x70,0x47,0xD0,0x07,0x00,0x20,0x00,0x04,0x00,0x0C,0x01,0x21,0x89,0x07, + 0x08,0x61,0x70,0x47,0x01,0x20,0x80,0x07,0x81,0x68,0x82,0x15,0x11,0x43,0x81,0x60, + 0x70,0x47,0x01,0x21,0x89,0x07,0x88,0x68,0x8A,0x15,0x90,0x43,0x88,0x60,0x70,0x47, + 0x70,0xB4,0x03,0xAC,0x30,0xCC,0x06,0x68,0x96,0x42,0x01,0xDB,0x32,0x00,0x00,0xE0, + 0x02,0x60,0x9A,0x42,0x00,0xDD,0x03,0x60,0x08,0x68,0xA0,0x42,0x00,0xDA,0x0C,0x60, + 0x08,0x68,0xA8,0x42,0x00,0xDD,0x0D,0x60,0x70,0xBC,0x70,0x47,0x00,0x47,0x00,0x00, + 0x78,0x47,0xC0,0x46,0x14,0x30,0x9F,0xE5,0xC0,0x2F,0xA0,0xE1,0x93,0xC0,0xC1,0xE0, + 0x63,0x30,0xE0,0xE3,0xC1,0x12,0x62,0xE0,0x93,0x01,0x20,0xE0,0x1E,0xFF,0x2F,0xE1, + 0x1F,0x85,0xEB,0x51,0x78,0x47,0xC0,0x46,0x18,0x30,0x9F,0xE5,0xC0,0x2F,0xA0,0xE1, + 0x93,0xC0,0xC1,0xE0,0x0F,0x30,0xE0,0xE3,0x27,0x3C,0x43,0xE2,0x41,0x16,0x62,0xE0, + 0x93,0x01,0x20,0xE0,0x1E,0xFF,0x2F,0xE1,0xAD,0x8B,0xDB,0x68,0x78,0x47,0xC0,0x46, + 0x01,0xC0,0x5E,0xE5,0x0C,0x00,0x53,0xE1,0x03,0x30,0xDE,0x37,0x0C,0x30,0xDE,0x27, + 0x83,0xC0,0x8E,0xE0,0x1C,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x10,0x30,0x9F,0xE5, + 0x93,0x10,0x82,0xE0,0x63,0x30,0xE0,0xE3,0xA2,0x12,0xA0,0xE1,0x93,0x01,0x20,0xE0, + 0x1E,0xFF,0x2F,0xE1,0x1F,0x85,0xEB,0x51,0x10,0xB5,0xF8,0xF7,0xDF,0xFF,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x13,0x00,0x13,0x00,0xA0,0x00,0x13,0x00,0x2D,0x01,0x13,0x00, + 0x2B,0x01,0x41,0x00,0x2B,0x01,0x70,0x00,0x5A,0x00,0x82,0x00,0xA0,0x00,0x82,0x00, + 0x2B,0x01,0xA0,0x00,0x2B,0x01,0xD0,0x00,0xA0,0x00,0xF0,0x00,0x2D,0x01,0x00,0x01, + 0x13,0x00,0x20,0x01,0x13,0x00,0x50,0x01,0xA0,0x00,0x5E,0x01,0xE6,0x00,0x5E,0x01, + 0x13,0x00,0x80,0x01,0x13,0x00,0xCA,0x01,0x30,0x00,0xA7,0x01,0x50,0x00,0xCA,0x01, + 0x70,0x00,0xA7,0x01,0x90,0x00,0xCA,0x01,0xB0,0x00,0xA7,0x01,0xD0,0x00,0xCA,0x01, + 0xF0,0x00,0xA7,0x01,0x10,0x01,0xCA,0x01,0x2D,0x01,0xA7,0x01,0x89,0x08,0x49,0x1E, + 0x49,0x04,0x01,0x22,0x49,0x08,0xD2,0x07,0x89,0x18,0x00,0x04,0x00,0x0C,0x01,0x43, + 0x03,0x48,0x41,0x61,0x41,0x69,0x00,0x29,0xFC,0xDB,0x80,0x6B,0x70,0x47,0x00,0x00, + 0x00,0x70,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0B,0x38,0x30,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,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,0xFF,0x00,0x00,0x00, + 0x00,0x00,0x04,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x01,0x08,0x05,0x00, + 0x00,0x00,0x00,0x00,0x03,0x02,0x13,0x14,0xFF,0xFF,0xFF,0x00,0x00,0xC8,0x05,0x1E, + 0xE0,0x01,0x20,0x03,0xE8,0x03,0x00,0x00,0xE8,0x03,0x00,0x00,0xE8,0x03,0x00,0x00, + 0xE0,0x93,0x04,0x00,0x01,0x5A,0x14,0x05,0x14,0x05,0x00,0x00,0x04,0xC8,0x65,0x65, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x6E,0x00,0x7A,0x00,0x01,0x00,0x04,0x00, + 0x78,0x00,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x15,0x00,0x02,0x32,0x00, + 0x2C,0x01,0x2C,0x01,0x00,0x00,0x00,0x00,0x50,0x00,0x5A,0x00,0x32,0x00,0xB8,0x0B, + 0x50,0x00,0x5A,0x00,0x32,0x00,0xE8,0x03,0x64,0x00,0x32,0x00,0x00,0x00,0x00,0x00, + 0x04,0x01,0x05,0x0F,0x01,0x01,0x04,0x00,0x01,0x05,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x00,0x0E,0x00,0x00,0x60,0x0F,0x00,0x00,0x60,0x0F,0x00,0x00,0x9D,0x39,0xFA,0x00, + 0x28,0x00,0x1D,0x00,0x64,0x32,0x64,0x32,0x1E,0x00,0x46,0x00,0x32,0x00,0x05,0x00, + 0x64,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x3C,0x00,0x5E,0x01,0x90,0x01,0x90,0x01, + 0x90,0x01,0x00,0x00,0x64,0x3C,0x00,0x00,0x64,0x3C,0x00,0x00,0x64,0x3C,0x00,0x00, + 0x0A,0x02,0x32,0x00,0xB8,0x0B,0xBC,0x02,0x0A,0x00,0x96,0x96,0x96,0x96,0x00,0xFF, + 0xFF,0xFF,0xFF,0x00,0xFF,0x0F,0x2C,0x01,0x3C,0x00,0x1E,0x00,0x28,0xFA,0x0C,0x78, + 0x00,0x05,0x04,0x0A,0x01,0x06,0x20,0x03,0x3C,0x00,0x0A,0x3C,0x00,0x05,0x1E,0x00, + 0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xDC,0x00,0x05,0x02,0x01,0x01,0x01,0x00,0x02,0x03,0x05,0x00,0x03,0x03,0x06,0x06, + 0x09,0x09,0x0C,0x0C,0x0F,0x55,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x41,0xC2,0x00,0x00, + 0x1F,0x1F,0xB8,0x00,0x00,0x3F,0x00,0x3F,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00, + 0x99,0x19,0x90,0x01,0x32,0x00,0x1D,0x00,0x64,0x32,0x64,0x32,0x23,0x00,0x41,0x00, + 0x46,0x00,0x05,0x00,0x64,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x50,0x00,0xF4,0x01, + 0xF4,0x01,0xF4,0x01,0x90,0x01,0x00,0x00,0x64,0x3C,0x00,0x00,0x64,0x3C,0x00,0x00, + 0x64,0x3C,0x00,0x00,0x08,0x02,0x32,0x00,0xDC,0x05,0xF4,0x01,0x0A,0x00,0x96,0x96, + 0x96,0x96,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x0F,0xC2,0x01,0x28,0x00,0x14,0x00, + 0xFF,0xFF,0x0D,0xFF,0x00,0x05,0x04,0x0A,0x02,0x06,0xD0,0x07,0x3C,0x00,0x0F,0x3C, + 0x00,0x05,0x1E,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xDC,0x00,0x05,0x04,0x01,0x01,0x01,0x00,0x04,0x03,0x01,0x00, + 0x04,0x04,0x08,0x08,0x0C,0x0C,0x10,0x10,0x14,0x55,0x01,0x00,0x05,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03, + 0x41,0x80,0x00,0x00,0x18,0x10,0xB8,0x00,0x00,0x3F,0x00,0x3F,0x00,0x00,0x00,0x00, + 0x32,0x00,0x19,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x96,0x00,0x0F,0x00,0x05,0x00,0x00,0x00,0x1E,0x00,0xC8,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0xB4,0x00,0xFA,0x00,0x00,0x00, + 0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00, + 0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x64,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x14,0x00,0x00,0x5A,0x5A,0x5A,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x28,0x00,0x50,0x00,0x1E,0x00,0x50,0x00,0x14,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x00,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x41,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x05,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xF0,0x0F,0x02,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x15,0x0E,0x15,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x00,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x8D,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0xC2,0x00,0x00, + 0x20,0x00,0x20,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x1F,0x1F,0xB8,0x00, + 0x10,0x3F,0x10,0x3F,0x64,0x14,0x10,0x00,0x00,0x00,0x10,0x08,0x00,0x00,0xFF,0x0F, + 0x00,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0xC8,0x00,0x40,0x06,0x00,0x00,0x08,0x20, + 0x11,0x30,0x10,0x00,0x41,0x80,0x01,0x00,0xFF,0xFF,0xFF,0x10,0xFF,0xFF,0xFF,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x54,0x55,0x45,0x00,0x10,0x30,0x00,0x00,0x00,0x70,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x14,0x00,0x00,0x0C,0x0C,0x06,0x00, + 0x00,0x04,0x7C,0x74,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0xC0,0xDA,0x00,0x00, + 0x60,0x38,0x30,0x08,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,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, + 0xD0,0x07,0x08,0x00,0x12,0x12,0xC8,0x01,0x90,0x81,0x0C,0x00,0x00,0x08,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x80,0x00,0x03,0x64,0x40,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x00,0x00,0x00, + 0x00,0x80,0x00,0x00,0xC8,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x40,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x58,0x30,0x28,0x00,0x58,0x30,0x28,0x00,0x58,0x30,0x28,0x00,0x58,0x30,0x28,0x00, + 0x58,0x30,0x28,0x00,0x56,0x31,0x26,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x58,0x31,0x28,0x01, + 0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00,0x50,0x31,0x20,0x01, + 0x60,0x30,0x30,0x00,0x48,0x31,0x18,0x01,0x48,0x31,0x18,0x01,0x60,0x37,0x30,0x07, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x20,0x1A,0x1A, + 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x20,0x1A,0x1A,0x1A,0x1A, + 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x20,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, + 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x20,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, + 0x1E,0x1E,0x1E,0x1E,0x1E,0x20,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, + 0x1E,0x1E,0x1E,0x20,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, + 0x1E,0x20,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x20, + 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x20,0x1E,0x1E, + 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x20,0x1E,0x1E,0x1E,0x1E, + 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x20,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, + 0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x20,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, + 0x1C,0x1C,0x1C,0x1C,0x1C,0x20,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, + 0x1C,0x1C,0x1C,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x20,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x20,0x24,0x24,0x24,0x24, + 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x20,0x22,0x22,0x22,0x22,0x22,0x22, + 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A, + 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xC8,0x61,0x24,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x44,0xC8,0x61,0x24,0x44, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0x00,0xC0,0x91,0xE7, + 0x21,0x2C,0x92,0xE7,0x42,0xBC,0x92,0xE7,0x63,0x28,0x93,0xE7,0x84,0xB8,0x93,0xE7, + 0xA5,0x24,0x94,0xE7,0xC6,0xB4,0x94,0xE7,0xE7,0x20,0x95,0xE7,0x08,0xB1,0x95,0xE7, + 0x29,0x9D,0x98,0xE7,0x4A,0x01,0x99,0xE7,0x6B,0x99,0x99,0xE7,0x8C,0x05,0x9A,0xE7, + 0xAD,0x95,0x9A,0xE7,0xCE,0x09,0x90,0xE7,0xEF,0x11,0x90,0xE7,0x10,0x0E,0x90,0xE7, + 0x31,0x46,0x90,0xE7,0x52,0x52,0x90,0xE7,0x73,0x4A,0x90,0xE7,0x94,0x4E,0x90,0xE7, + 0xB5,0x02,0x90,0xE7,0xD6,0x02,0x90,0xE7,0xF7,0x02,0x90,0xE7,0x00,0x08,0x00,0x00, + 0x00,0x80,0x01,0x00,0x00,0x0C,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x06,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x30,0x00,0x00,0x80,0x01,0x00,0x00, + 0x01,0x10,0x00,0x00,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00,0x02,0x00, + 0x08,0x00,0x10,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x1E,0x00, + 0xF8,0x0F,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x30, + 0x33,0x30,0x03,0x00,0x00,0x00,0x00,0x00,0x30,0x68,0x30,0x68,0x70,0x28,0x70,0x28, + 0x32,0x30,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47,0x40,0x04,0x00,0x00,0xC0,0x9B,0x00,0x00, + 0xC0,0x92,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x03,0x00,0x00, + 0x00,0x96,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x02,0x00,0x00, + 0x00,0x99,0x00,0x00,0x00,0x04,0x00,0x00,0x01,0x00,0x94,0x00,0x00,0x00,0x00,0x00, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47}; + +#endif // __IST30XXB_FW_H__ diff --git a/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0002_20140301.h b/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0002_20140301.h new file mode 100644 index 00000000..fa177ac2 --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0002_20140301.h @@ -0,0 +1,2572 @@ +#ifndef __IST30XXB_FW_H__ +#define __IST30XXB_FW_H__ + +/* ist30xxb binary: KANAS_GF MELFAS, f/w 2(00040000) */ +static unsigned char ist30xxb_fw[] = { + 0x06,0x00,0x00,0xEA,0x2C,0x00,0x00,0xEA,0x2B,0x00,0x00,0xEA,0x2A,0x00,0x00,0xEA, + 0x29,0x00,0x00,0xEA,0x28,0x00,0x00,0xEA,0x27,0x00,0x00,0xEA,0x3E,0x00,0x00,0xEA, + 0x14,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0xA0,0xE1,0x00,0x00,0x00,0xEA,0x0C,0x20,0x00,0x40, + 0x11,0x01,0xA0,0xE3,0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0xC1,0x01,0xA0,0xE3, + 0x1C,0x10,0x9F,0xE5,0x00,0x10,0x80,0xE5,0x18,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0xF1,0x01,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0x01,0x00,0x00,0xEA,0xC8,0x74,0x00,0x00,0x4C,0x00,0x00,0x40,0x00,0x00,0x0F,0xE1, + 0x1F,0x00,0xC0,0xE3,0xD1,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x1C,0xD0,0x9F,0xE5, + 0xD3,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x14,0xD0,0x9F,0xE5,0x00,0x00,0x0F,0xE1, + 0xC0,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x08,0x00,0x9F,0xE5,0x10,0xFF,0x2F,0xE1, + 0xFC,0x0F,0x00,0x20,0xC0,0x0F,0x00,0x20,0xA7,0x01,0x00,0x00,0x11,0x01,0xA0,0xE3, + 0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x5C,0x30,0x9F,0xE5,0x5C,0x40,0x9F,0xE5, + 0x00,0x40,0x83,0xE5,0x91,0x01,0xA0,0xE3,0x33,0x16,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0xAC,0x00,0x1F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0x00,0x40,0x83,0xE5, + 0xFF,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x03,0x00,0x00,0xEB,0xFE,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0x00,0xEB,0xF7,0xFF,0xFF,0xEA,0x01,0x29,0xA0,0xE3, + 0x01,0x20,0x52,0xE2,0xFD,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0xFF,0x40,0x2D,0xE9, + 0xC6,0x00,0x00,0xEB,0xFF,0x40,0xBD,0xE8,0x04,0xF0,0x5E,0xE2,0x1C,0x40,0x00,0x30, + 0x70,0xE9,0x1C,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x38,0x4A,0x36,0x48,0x36,0x49,0x92,0x08,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x34,0x48,0x01,0x21,0xC9,0x02,0x01,0x62, + 0x00,0x21,0x01,0x62,0x01,0x62,0x32,0x49,0x32,0x48,0x01,0x60,0x20,0x21,0x41,0x60, + 0xA0,0x21,0x81,0x60,0x70,0x47,0xF8,0xB5,0x2C,0x4B,0x9F,0x6A,0x2E,0x48,0x00,0x69, + 0x42,0x08,0x58,0x69,0x19,0x15,0x08,0x43,0x58,0x61,0xFF,0xF7,0xE5,0xFF,0x58,0x69, + 0xFF,0x21,0x81,0x31,0x08,0x43,0x58,0x61,0x28,0x48,0x29,0x4C,0x20,0x60,0xFF,0x20, + 0x90,0x30,0x60,0x60,0x13,0x20,0xA0,0x60,0xA0,0x68,0xA6,0x15,0x30,0x43,0xA0,0x60, + 0x20,0x4D,0x5F,0x23,0x00,0x2F,0x27,0xD1,0x22,0x4F,0x21,0xE0,0x68,0x68,0x00,0x07, + 0x1E,0xD5,0xE8,0x68,0x40,0x28,0x04,0xD1,0xEA,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1, + 0x14,0xE0,0x20,0x28,0x04,0xD3,0xEF,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1,0x0D,0xE0, + 0x0D,0x28,0x08,0xD1,0x2E,0x20,0x68,0x60,0x68,0x69,0x80,0x06,0xFC,0xD4,0x68,0x68, + 0x80,0x07,0xFC,0xD5,0x08,0xE0,0x68,0x68,0x80,0x07,0xFC,0xD5,0xFF,0xF7,0xAC,0xFF, + 0xE0,0x68,0x11,0x49,0x88,0x42,0xD9,0xD3,0xFF,0xF7,0xA6,0xFF,0xA0,0x68,0xB0,0x43, + 0xA0,0x60,0x00,0xF0,0x3D,0xF9,0xF8,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x00,0x00, + 0x00,0x00,0x00,0x10,0x7C,0x02,0x00,0x00,0xEC,0x00,0x00,0x00,0x40,0x00,0x00,0x40, + 0xDE,0x10,0x05,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0xFF,0xFF,0x00,0x00, + 0x00,0x40,0x00,0x40,0xFF,0x03,0xFF,0x2F,0x50,0xC3,0x00,0x00,0x38,0x48,0x41,0x6B, + 0xC9,0x07,0xFC,0xD0,0x41,0x6B,0x01,0x22,0x11,0x43,0x41,0x63,0x70,0x47,0x34,0x48, + 0xC2,0x69,0x41,0x14,0x8A,0x43,0xC2,0x61,0xC2,0x69,0x0A,0x43,0xC2,0x61,0xC2,0x69, + 0x8A,0x43,0xC2,0x61,0x70,0x47,0x10,0xB4,0x2D,0x4C,0x40,0x23,0x60,0x60,0x20,0x68, + 0x80,0x0A,0x80,0x02,0x10,0x43,0xA8,0x22,0x10,0x43,0x20,0x60,0x02,0xE0,0x08,0x78, + 0xA0,0x60,0x49,0x1C,0x5B,0x1E,0xFA,0xD2,0x10,0xBC,0x70,0x47,0xF0,0xB5,0x05,0x00, + 0x0E,0x00,0x1F,0x00,0x94,0x09,0x81,0x06,0x22,0x48,0x12,0xD1,0x91,0x06,0x10,0xD1, + 0x0C,0xE0,0x3A,0x00,0x31,0x00,0x28,0x00,0xFF,0xF7,0xDD,0xFF,0x40,0x35,0x2D,0x04, + 0x2D,0x0C,0x40,0x36,0xFF,0xF7,0xC2,0xFF,0xFF,0xF7,0xC9,0xFF,0x64,0x1E,0x60,0x1C, + 0xEF,0xD1,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x15,0x4B,0x40,0x22,0x58,0x60,0x18,0x68, + 0x80,0x0A,0x80,0x02,0x08,0x43,0xA4,0x21,0x08,0x43,0x18,0x60,0x00,0x21,0x00,0xE0, + 0x99,0x60,0x52,0x1E,0xFC,0xD2,0x70,0x47,0x70,0xB5,0x05,0x00,0x16,0x00,0x8C,0x09, + 0x82,0x06,0x0C,0x48,0x10,0xD1,0x89,0x06,0x0E,0xD1,0x0A,0xE0,0x31,0x00,0x28,0x00, + 0xFF,0xF7,0xE2,0xFF,0x40,0x35,0x2D,0x04,0x2D,0x0C,0xFF,0xF7,0x97,0xFF,0xFF,0xF7, + 0x9E,0xFF,0x64,0x1E,0x60,0x1C,0xF1,0xD1,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0x70,0x00,0x40,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0xF8,0xB5,0x03,0x25,0x0F,0x4E,0x2D,0x07, + 0x01,0x27,0xF0,0x6A,0x00,0x28,0x15,0xD0,0xF0,0x6B,0xE9,0x68,0x80,0x08,0x3C,0x00, + 0x84,0x40,0x21,0x43,0xE9,0x60,0x69,0x68,0x21,0x42,0x00,0xD0,0x34,0x63,0x81,0x00, + 0x07,0x48,0x40,0x58,0x00,0x28,0x01,0xD0,0x07,0xF0,0xBE,0xF9,0xE8,0x68,0xA0,0x43, + 0xE8,0x60,0xE6,0xE7,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x30, + 0x48,0x07,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF8,0xB5,0x00,0xF0,0x53,0xFD,0x07,0x00,0x03,0xF0,0x5A,0xFC,0x03,0xF0,0x4C,0xFC, + 0x03,0xF0,0xD6,0xFC,0x46,0x4A,0x47,0x49,0x47,0x48,0x05,0xF0,0xCF,0xF8,0x05,0x21, + 0x49,0x03,0x00,0x20,0x00,0xF0,0xF0,0xF9,0x44,0x4C,0x45,0x49,0x60,0x61,0x00,0x20, + 0x00,0xF0,0xEA,0xF9,0x43,0x4B,0x44,0x49,0xD8,0x63,0x44,0x48,0x00,0xF0,0xE4,0xF9, + 0xD9,0x6B,0x00,0x04,0x08,0x43,0xD8,0x63,0x03,0xF0,0x96,0xFC,0x40,0x4A,0x41,0x48, + 0x00,0x21,0x05,0xF0,0xC5,0xF8,0x06,0xF0,0x8F,0xFC,0x03,0xF0,0x3D,0xFD,0x3E,0x48, + 0x00,0x26,0x81,0x7A,0x01,0x25,0x6D,0x07,0xA1,0x71,0xC1,0x7A,0xE1,0x71,0x40,0x7A, + 0x20,0x72,0x66,0x71,0x66,0x72,0xA6,0x72,0xE6,0x72,0x36,0x48,0x26,0x73,0x66,0x73, + 0x68,0x63,0xFF,0x20,0xE8,0x63,0xE8,0x14,0x00,0xF0,0xEC,0xFC,0x33,0x48,0x06,0x70, + 0xFF,0x20,0x81,0x30,0x00,0xF0,0xE6,0xFC,0x31,0x49,0x02,0x20,0x06,0xF0,0x7C,0xFF, + 0x02,0x20,0x06,0xF0,0x81,0xFF,0x20,0x7A,0x00,0x28,0x01,0xD0,0x07,0xF0,0xFC,0xF8, + 0x00,0x2F,0x1F,0xD1,0x2B,0x4E,0xB7,0x15,0x20,0x7A,0x00,0x28,0x02,0xD0,0x2A,0x49, + 0xE0,0x6A,0x88,0x60,0xE8,0x6B,0x0B,0x28,0x14,0xD0,0x28,0x48,0x40,0x68,0x00,0x07, + 0x01,0xD5,0x02,0xF0,0x15,0xFB,0xF0,0x68,0x25,0x49,0x88,0x42,0xEC,0xD9,0x25,0x48, + 0xC0,0x68,0xFF,0x28,0x06,0xD1,0xB0,0x68,0xB8,0x43,0xB0,0x60,0xB0,0x68,0x38,0x43, + 0xB0,0x60,0xE1,0xE7,0xE0,0x79,0x00,0x28,0x03,0xD1,0x01,0x20,0x80,0x02,0x00,0xF0, + 0xA9,0xFC,0x20,0x7A,0x00,0x28,0x01,0xD0,0x07,0xF0,0xD6,0xF8,0x02,0x20,0x06,0xF0, + 0x57,0xFF,0xFF,0x20,0x81,0x30,0x00,0xF0,0x9D,0xFC,0x17,0x49,0x05,0x20,0x03,0xF0, + 0x79,0xFA,0x0B,0x20,0xE8,0x63,0x03,0xF0,0x0F,0xFB,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x28,0x00,0x00,0x00,0xCC,0x78,0x00,0x00,0x00,0x00,0x00,0x10,0x14,0x07,0x00,0x20, + 0xC0,0x92,0x00,0x00,0xC0,0x0F,0x00,0x20,0x00,0x9D,0x00,0x00,0x00,0x93,0x00,0x00, + 0xD4,0x06,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00,0xCD,0x07,0x00,0x20, + 0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x40,0x00,0x30, + 0x50,0xC3,0x00,0x00,0xC0,0x92,0x00,0x00,0x2D,0x74,0x00,0x00,0x78,0x47,0xC0,0x46, + 0x01,0x30,0x90,0xE1,0x4C,0x00,0x00,0x4A,0x00,0x20,0xB0,0xE3,0xA0,0x30,0x71,0xE0, + 0x43,0x00,0x00,0x3A,0x20,0x32,0x71,0xE0,0x34,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0, + 0x26,0x00,0x00,0x3A,0x20,0x36,0x71,0xE0,0x17,0x00,0x00,0x3A,0x20,0x38,0x71,0xE0, + 0x09,0x00,0x00,0x3A,0x01,0x14,0xA0,0xE1,0x20,0x38,0x71,0xE0,0xFF,0x24,0x82,0xE3, + 0xFF,0x28,0x82,0x23,0x01,0x14,0xA0,0x21,0x20,0x36,0x71,0xE0,0x0E,0x00,0x00,0x3A, + 0x00,0x30,0x71,0xE2,0x6F,0x00,0x00,0x2A,0x21,0x14,0xA0,0x21,0xA0,0x37,0x71,0xE0, + 0x81,0x07,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x37,0x71,0xE0,0x01,0x07,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x36,0x71,0xE0,0x81,0x06,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x36,0x71,0xE0,0x01,0x06,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x35,0x71,0xE0, + 0x81,0x05,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x35,0x71,0xE0,0x01,0x05,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x34,0x71,0xE0,0x81,0x04,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x34,0x71,0xE0,0x01,0x04,0x40,0x20,0x02,0x20,0xB2,0xE0,0xE5,0xFF,0xFF,0x2A, + 0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0, + 0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0, + 0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0, + 0x1E,0xFF,0x2F,0xE1,0x01,0x10,0x50,0xE0,0x01,0x00,0xA0,0x23,0x1E,0xFF,0x2F,0x21, + 0x00,0x10,0xA0,0xE1,0x00,0x00,0xB0,0xE3,0x1E,0xFF,0x2F,0xE1,0x02,0x21,0x11,0xE2, + 0x00,0x10,0x61,0x42,0x40,0xC0,0x32,0xE0,0x00,0x00,0x60,0x22,0x20,0x32,0x71,0xE0, + 0x1D,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0,0x0F,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1, + 0x20,0x34,0x71,0xE0,0x3F,0x23,0x82,0xE3,0x0B,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1, + 0x20,0x34,0x71,0xE0,0x3F,0x26,0x82,0xE3,0x07,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1, + 0x20,0x34,0x71,0xE0,0x3F,0x29,0x82,0xE3,0x01,0x13,0xA0,0x21,0x3F,0x2C,0x82,0x23, + 0x00,0x30,0x71,0xE2,0x1D,0x00,0x00,0x2A,0x21,0x13,0xA0,0x21,0xA0,0x33,0x71,0xE0, + 0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0, + 0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xEB,0xFF,0xFF,0x2A,0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0, + 0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x00,0x10,0x61,0x22,0x1E,0xFF,0x2F,0xE1, + 0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x01,0x40,0x2D,0xE9,0x00,0x00,0xB0,0xE3, + 0x01,0x00,0x00,0xEB,0x02,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x00,0x00,0xA0,0xE1, + 0x07,0x40,0x2D,0xE9,0x02,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB,0x07,0x40,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x10,0xB5, + 0x02,0x20,0x06,0xF0,0xF7,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46, + 0x00,0x20,0xB0,0xE3,0x20,0x32,0x71,0xE0,0xA0,0xFF,0xFF,0x3A,0x20,0x34,0x71,0xE0, + 0x92,0xFF,0xFF,0x3A,0x20,0x36,0x71,0xE0,0x83,0xFF,0xFF,0x3A,0x20,0x38,0x71,0xE0, + 0x75,0xFF,0xFF,0x3A,0x6A,0xFF,0xFF,0xEA,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5, + 0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x00,0x10,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5, + 0x1C,0xFF,0x2F,0xE1,0xAD,0x00,0x00,0x10,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5, + 0x1C,0xFF,0x2F,0xE1,0x51,0x00,0x00,0x10,0x78,0x47,0xC0,0x46,0xEE,0xFD,0xFF,0xEA, + 0x02,0x48,0x01,0x68,0x02,0x4A,0x11,0x40,0x01,0x60,0x70,0x47,0x00,0xA0,0x00,0x40, + 0xFE,0xFF,0xEF,0xFF,0x07,0x49,0x10,0xB5,0x08,0x68,0x07,0x4A,0x10,0x43,0x08,0x60, + 0x0B,0x24,0x02,0xF0,0x29,0xF9,0x64,0x1E,0x00,0x2C,0xFA,0xDC,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0xA0,0x00,0x40,0x01,0x00,0x10,0x00,0xF0,0xB5,0x01,0x27, + 0x7F,0x07,0x3D,0x68,0x17,0x4E,0xB0,0x7B,0xC0,0x07,0x26,0xD0,0x70,0x7A,0x00,0x28, + 0x21,0xD0,0xBA,0x00,0x01,0x2D,0x02,0xD1,0x79,0x68,0x11,0x43,0xB9,0x60,0x00,0x04, + 0x02,0x43,0x90,0x0A,0x80,0x02,0xA9,0x05,0x89,0x0D,0x08,0x43,0x78,0x60,0x01,0x24, + 0x08,0xE0,0x0D,0x49,0xE0,0x00,0x40,0x18,0x0C,0x49,0x41,0x18,0x28,0x19,0x06,0xF0, + 0x4F,0xFB,0x64,0x1C,0x70,0x7A,0xA0,0x42,0xF3,0xDA,0x70,0x7A,0x01,0x28,0x02,0xD1, + 0x00,0x2D,0x00,0xD1,0x01,0x25,0x70,0x7A,0x45,0x19,0x3D,0x60,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x40,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x3A,0x06,0x00,0x00, + 0x70,0xB4,0x1A,0x4B,0xDA,0x88,0xD2,0x07,0x2B,0xD1,0x19,0x4A,0x05,0x78,0x54,0x7A, + 0xE4,0x00,0xE6,0x18,0x19,0x24,0xA4,0x01,0x36,0x19,0xB5,0x70,0x56,0x7A,0x45,0x88, + 0xF6,0x00,0xF6,0x18,0x36,0x19,0xB5,0x80,0x56,0x7A,0x85,0x88,0xF6,0x00,0xF6,0x18, + 0x36,0x19,0xF5,0x80,0x55,0x7A,0xED,0x00,0xED,0x18,0x2D,0x19,0x29,0x72,0x55,0x7A, + 0xC1,0x79,0xED,0x00,0xEB,0x18,0x1B,0x19,0x59,0x72,0x51,0x7A,0x49,0x1C,0x51,0x72, + 0xC0,0x79,0x06,0x28,0x07,0xD0,0x0A,0x28,0x01,0xD0,0x12,0x28,0x01,0xD1,0x00,0x20, + 0x90,0x72,0x70,0xBC,0x70,0x47,0x01,0x20,0xFA,0xE7,0x00,0x00,0x40,0x00,0x00,0x20, + 0x40,0x06,0x00,0x20,0xFF,0xB5,0x0A,0x20,0x48,0x43,0x16,0x4F,0x81,0xB0,0xC5,0x19, + 0xFF,0x35,0x48,0x00,0xC1,0x35,0xC0,0x19,0x2A,0x73,0x00,0x90,0x0C,0x00,0xE0,0x30, + 0x80,0x8A,0x16,0x00,0x0A,0x21,0xFF,0xF7,0x29,0xFF,0xE8,0x81,0x00,0x98,0x0A,0x21, + 0xFF,0x30,0x01,0x30,0xC0,0x89,0xFF,0xF7,0x21,0xFF,0x28,0x82,0x38,0x19,0xFF,0x30, + 0x41,0x30,0x00,0x7E,0xB9,0x19,0x68,0x73,0x04,0x98,0xA8,0x74,0x01,0x98,0x06,0x55, + 0x0D,0x20,0x80,0x01,0x08,0x18,0x00,0x21,0xC4,0x77,0x81,0x74,0x05,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20,0x06,0x48,0x0F,0x23,0x42,0x79,0x01,0x68, + 0x9B,0x06,0x49,0x1C,0x12,0x07,0x12,0x0A,0xD2,0x18,0x09,0x03,0x09,0x0B,0x0A,0x43, + 0x02,0x60,0x70,0x47,0x40,0x00,0x00,0x20,0xF1,0xB5,0xB1,0x48,0x90,0xB0,0x0F,0x90, + 0x40,0x7C,0x02,0x90,0x0F,0x98,0xC0,0x7C,0x01,0x90,0x0F,0x98,0x00,0x7C,0x00,0x90, + 0xAC,0x48,0x00,0x68,0x00,0x88,0x00,0x05,0x7E,0xD5,0x10,0x98,0x01,0x28,0x00,0xD0, + 0x02,0x20,0x03,0x90,0x00,0x20,0x04,0x90,0x41,0xE1,0x03,0x98,0x81,0x00,0x01,0x20, + 0x40,0x07,0x08,0x18,0x0E,0x90,0x00,0x68,0x81,0x00,0x0D,0x90,0x0C,0x0F,0x80,0x0F, + 0xC0,0x07,0x03,0xD1,0x20,0x00,0x01,0xF0,0x47,0xFB,0x29,0xE1,0x9E,0x48,0xA5,0x00, + 0x40,0x5F,0x00,0x28,0x84,0x46,0x0F,0xDA,0x0D,0x98,0x9B,0x49,0x80,0x01,0x80,0x0D, + 0x48,0x53,0x0D,0x98,0x6A,0x18,0x80,0x05,0x80,0x0D,0x50,0x80,0x4A,0x5B,0x34,0x31, + 0x4A,0x53,0x69,0x18,0x48,0x80,0x13,0xE1,0x02,0x9F,0x93,0x49,0x00,0x20,0x7F,0x1E, + 0x68,0x31,0x69,0x18,0x06,0xE0,0x83,0x00,0xCA,0x18,0x96,0x88,0x40,0x1C,0xCE,0x52, + 0xD3,0x88,0x53,0x80,0xB8,0x42,0xF6,0xDB,0x0D,0x98,0x62,0x46,0x80,0x01,0x80,0x0D, + 0x0C,0x90,0x80,0x1A,0x02,0x9A,0x88,0x4E,0x92,0x00,0x8B,0x18,0x20,0x3B,0x98,0x83, + 0x0D,0x98,0xAA,0x19,0x80,0x05,0x80,0x0D,0x0A,0x92,0x0B,0x90,0x52,0x88,0x80,0x1A, + 0xD8,0x83,0x00,0x20,0x06,0x00,0x02,0x00,0x07,0xE0,0x93,0x00,0xCF,0x5E,0x38,0x18, + 0xCF,0x18,0x02,0x23,0xFB,0x5E,0x9E,0x19,0x52,0x1C,0x02,0x9B,0x9A,0x42,0xF4,0xDB, + 0x19,0x00,0xFF,0xF7,0x53,0xFD,0x07,0x00,0x02,0x99,0x30,0x00,0xFF,0xF7,0x4E,0xFD, + 0x00,0x2F,0x00,0xDC,0x7F,0x42,0x0F,0x99,0x89,0x7C,0x8F,0x42,0x17,0xDA,0x00,0x28, + 0x00,0xDC,0x40,0x42,0x88,0x42,0x12,0xDA,0x01,0x98,0x0C,0x21,0x48,0x43,0x0A,0x21, + 0xFF,0xF7,0x6C,0xFE,0x62,0x00,0x00,0xE0,0xCD,0xE0,0x6B,0x4B,0x28,0x3B,0x99,0x5E, + 0x88,0x42,0x0C,0xDD,0x0F,0x98,0x00,0x7D,0x08,0x18,0x98,0x52,0x07,0xE0,0x66,0x49, + 0x0F,0x9B,0x60,0x00,0x28,0x39,0x0A,0x5A,0x5B,0x7D,0xD2,0x1A,0x0A,0x52,0x62,0x49, + 0x60,0x00,0x28,0x39,0x0A,0x5E,0x00,0x2A,0x01,0xDC,0x00,0x22,0x0A,0x52,0x08,0x5E, + 0x01,0x99,0x88,0x42,0x09,0x90,0x04,0xDB,0x5B,0x48,0x05,0x21,0x0E,0x38,0x01,0x55, + 0x2B,0xE0,0x88,0x00,0x05,0x21,0xFF,0xF7,0x41,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC, + 0x04,0x20,0x1F,0xE0,0x01,0x98,0x41,0x00,0x40,0x18,0x05,0x21,0xFF,0xF7,0x36,0xFE, + 0x09,0x99,0x88,0x42,0x01,0xDC,0x03,0x20,0x14,0xE0,0x01,0x98,0x05,0x21,0x40,0x00, + 0xFF,0xF7,0x2C,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x01,0x98, + 0x05,0x21,0xFF,0xF7,0x23,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x01,0x20,0x01,0xE0, + 0x08,0x00,0x02,0xD1,0x44,0x49,0x0E,0x39,0x08,0x55,0x43,0x49,0x0C,0x9A,0x34,0x31, + 0x48,0x5F,0x16,0x1A,0x08,0x90,0x68,0x18,0x02,0x21,0x07,0x90,0x41,0x5E,0x0B,0x9A, + 0x3D,0x48,0x57,0x1A,0x0E,0x38,0x06,0x91,0x01,0x5D,0x0F,0x98,0x80,0x7D,0x81,0x42, + 0x27,0xD3,0x00,0x2E,0x01,0xD1,0x00,0x24,0x0D,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42, + 0x00,0x99,0x88,0x42,0x01,0xDA,0x01,0x24,0x05,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42, + 0xFF,0xF7,0xC4,0xFC,0x04,0x00,0x00,0x2F,0x01,0xD1,0x00,0x20,0x0C,0xE0,0x38,0x1E, + 0x00,0xDC,0x78,0x42,0x00,0x99,0x88,0x42,0x01,0xDA,0x01,0x20,0x04,0xE0,0x38,0x1E, + 0x00,0xDC,0x78,0x42,0xFF,0xF7,0xB2,0xFC,0x08,0x99,0x00,0x2E,0x19,0xDB,0x09,0x19, + 0x18,0xE0,0x09,0x98,0x64,0x21,0x48,0x43,0x01,0x99,0xFF,0xF7,0xA7,0xFC,0x64,0x21, + 0x08,0x1A,0x31,0x1E,0x05,0x90,0x00,0xDC,0x71,0x42,0x48,0x43,0x64,0x21,0xFF,0xF7, + 0x9D,0xFC,0x05,0x9A,0x04,0x00,0x38,0x1E,0x00,0xDC,0x78,0x42,0x50,0x43,0x64,0x21, + 0xE0,0xE7,0x09,0x1B,0x06,0x9A,0x00,0x2F,0x01,0xDB,0x10,0x18,0x00,0xE0,0x10,0x1A, + 0x15,0x4A,0x0C,0x9B,0x53,0x53,0x0A,0x9B,0x0B,0x9A,0x5A,0x80,0x12,0x4A,0x13,0x4B, + 0x34,0x32,0x51,0x53,0x07,0x9A,0x89,0x05,0x50,0x80,0x0D,0x9A,0x89,0x09,0x1A,0x40, + 0x0A,0x43,0x91,0x0A,0x89,0x02,0x80,0x05,0x80,0x0D,0x01,0x43,0x0E,0x98,0x01,0x60, + 0x04,0x98,0x40,0x1C,0x04,0x90,0x03,0x98,0x40,0x1C,0x03,0x90,0x04,0x98,0x10,0x99, + 0x88,0x42,0x00,0xDA,0xB9,0xE6,0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xA0,0x93,0x00,0x00,0xC8,0x07,0x00,0x20,0xC8,0x0A,0x00,0x20,0xFF,0xFF,0x00,0xFC, + 0x10,0x4B,0x30,0xB4,0x1B,0x21,0xDA,0x88,0x89,0x01,0x80,0x24,0x59,0x18,0x00,0x28, + 0x0E,0xD0,0x0D,0x48,0x45,0x7B,0x0D,0x80,0xC5,0x89,0x4D,0x80,0x05,0x8A,0x8D,0x80, + 0x40,0x8A,0xC8,0x80,0x08,0x48,0x20,0x30,0x00,0x89,0x22,0x43,0x08,0x81,0x06,0xE0, + 0x00,0x20,0x08,0x80,0x48,0x80,0x88,0x80,0xC8,0x80,0xA2,0x43,0x08,0x81,0xDA,0x80, + 0x30,0xBC,0x70,0x47,0x40,0x00,0x00,0x20,0x80,0x93,0x00,0x00,0x7F,0xB5,0x25,0x4D, + 0x06,0x00,0x1A,0x28,0x0C,0xD1,0x28,0x6A,0x00,0x28,0x09,0xD1,0x68,0x6A,0x00,0x28, + 0x06,0xD1,0x21,0x4C,0x01,0xF0,0xBC,0xFE,0x64,0x1E,0xFB,0xD2,0xFF,0x24,0x12,0xE0, + 0x05,0xF0,0xD2,0xFA,0x01,0xF0,0xB2,0xFD,0x01,0xF0,0xFA,0xFD,0x03,0xAA,0x01,0xA9, + 0x02,0xA8,0x04,0xF0,0xB5,0xFC,0x04,0x00,0x03,0x00,0x01,0x9A,0x02,0x99,0x03,0x98, + 0x00,0x96,0x00,0xF0,0x33,0xF8,0x02,0x20,0x06,0xF0,0x32,0xFB,0x02,0x20,0x06,0xF0, + 0x23,0xFB,0x12,0x49,0xE8,0x68,0xC8,0x61,0x28,0x69,0xC8,0x61,0x10,0x48,0xC2,0x68, + 0x52,0x08,0x52,0x00,0xC2,0x60,0x0F,0x4B,0x0F,0x48,0x02,0xE0,0xDA,0x68,0x82,0x42, + 0x02,0xD8,0x4A,0x69,0x92,0x06,0xF9,0xD5,0x48,0x68,0x80,0x07,0xFC,0xD5,0x01,0xF0, + 0xA7,0xFE,0x01,0x20,0x00,0xF0,0x6E,0xF8,0x20,0x00,0x04,0xB0,0x70,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xC0,0x92,0x00,0x00,0xE7,0x03,0x00,0x00,0x00,0x40,0x00,0x30, + 0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40,0x50,0xC3,0x00,0x00,0xFF,0xB5,0x05,0x00, + 0x0E,0x00,0x91,0xB0,0xFF,0xF7,0x76,0xF9,0x1C,0x48,0x03,0x27,0x04,0x04,0x24,0x0C, + 0x3F,0x02,0x00,0x22,0x39,0x00,0x20,0x00,0xFF,0xF7,0x1E,0xFD,0x18,0x49,0x3A,0x00, + 0x20,0x00,0x00,0x23,0xFF,0xF7,0x20,0xFD,0x16,0x49,0x40,0x22,0x01,0xA8,0x04,0xF0, + 0xE5,0xFB,0x14,0x99,0x28,0x04,0x09,0x03,0x08,0x43,0x13,0x49,0x08,0x43,0x04,0x90, + 0x13,0x99,0x30,0x04,0x08,0x43,0x05,0x90,0x10,0x48,0x11,0x49,0xC0,0x6B,0x10,0x90, + 0x0C,0x48,0x80,0x69,0x40,0x1C,0x07,0x90,0x00,0x20,0x8D,0x42,0x09,0x90,0x02,0xD1, + 0x06,0x99,0x49,0x1C,0x06,0x91,0x1A,0x99,0x1A,0x29,0x00,0xD1,0x0A,0x90,0x01,0xA8, + 0x06,0xF0,0x10,0xFC,0x15,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x9D,0x00,0x00, + 0x00,0x00,0x10,0x40,0xC0,0x92,0x00,0x00,0xAB,0x0C,0x00,0x80,0xC0,0x0F,0x00,0x20, + 0xEC,0x0D,0x00,0x00,0x02,0x4A,0x51,0x69,0x81,0x43,0x51,0x61,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x02,0x4A,0x51,0x69,0x01,0x43,0x51,0x61,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x78,0x47,0xC0,0x46,0x01,0x21,0xA0,0xE3,0x50,0x30,0x92,0xE5, + 0x0C,0x10,0xA0,0xE3,0x03,0x00,0x80,0xE1,0x50,0x00,0x82,0xE5,0x00,0x00,0x00,0xEA, + 0x00,0x00,0xA0,0xE1,0x01,0x10,0x51,0xE2,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1, + 0x01,0x48,0x40,0x69,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x01,0x48,0x80,0x6A, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x49,0x08,0x62,0x00,0x20,0x08,0x62, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x01,0x49,0x48,0x61,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x07,0x49,0xFF,0x28,0x04,0xD1,0x01,0x20,0xC8,0x60,0x00,0x20, + 0x88,0x61,0x70,0x47,0x8A,0x69,0x12,0x07,0x12,0x0F,0x02,0x43,0x8A,0x61,0x02,0x20, + 0xC8,0x60,0x70,0x47,0x40,0x00,0x00,0x40,0xF0,0xB5,0xFF,0xB0,0x00,0x20,0xCC,0xB0, + 0xBC,0x90,0x40,0x1E,0xB8,0x90,0xFF,0x48,0xFF,0x4A,0x00,0x68,0xFF,0x4F,0x60,0x30, + 0xC1,0x7D,0xFF,0x4C,0x05,0x91,0x01,0x7E,0x12,0x88,0x89,0x18,0x09,0x06,0x09,0x0E, + 0x04,0x91,0x41,0x7E,0x03,0x91,0x80,0x7E,0x02,0x90,0x00,0x20,0x3D,0x79,0x01,0x26, + 0x01,0x90,0x14,0xE0,0x0A,0x20,0x70,0x43,0x0B,0x21,0xC0,0x19,0x89,0x01,0x41,0x18, + 0x09,0x7C,0x00,0x29,0x0A,0xD0,0xF3,0x49,0x40,0x18,0x02,0xF0,0x45,0xFE,0x00,0x28, + 0x04,0xD0,0x01,0x98,0x40,0x1C,0x00,0x06,0x00,0x0E,0x01,0x90,0x76,0x1C,0xA0,0x7A, + 0xB0,0x42,0xE7,0xDA,0xEC,0x48,0x01,0x88,0x82,0x88,0x8E,0x1A,0x00,0x2E,0x00,0xDC, + 0x56,0x1A,0x41,0x88,0xC0,0x88,0x36,0x04,0x36,0x0C,0x0A,0x1A,0x00,0x2A,0x00,0xDC, + 0x42,0x1A,0xE5,0x49,0x10,0x04,0x20,0x39,0x00,0x22,0xCA,0x91,0x8A,0x77,0x01,0x99, + 0x00,0x0C,0x00,0x29,0x0C,0xD0,0x1E,0x2E,0x0A,0xD2,0x32,0x28,0x01,0xD2,0x01,0x21, + 0x04,0xE0,0x64,0x28,0x01,0xD2,0x02,0x21,0x00,0xE0,0x03,0x21,0xCA,0x98,0x81,0x77, + 0xCA,0x98,0x40,0x7F,0x00,0x28,0x12,0xD1,0xCA,0x98,0x80,0x7F,0x01,0x28,0x02,0xD1, + 0x05,0x98,0x80,0x1C,0x08,0xE0,0x02,0x28,0x02,0xD1,0x05,0x98,0x00,0x1D,0x03,0xE0, + 0x03,0x28,0x04,0xD1,0x05,0x98,0x80,0x1D,0x00,0x06,0x00,0x0E,0x05,0x90,0x0D,0x22, + 0x00,0x21,0xB4,0xA8,0x04,0xF0,0xFC,0xFA,0xF8,0x88,0xFF,0x21,0x09,0x31,0x08,0x42, + 0x01,0xD1,0xC0,0x06,0x06,0xD5,0x01,0xF0,0x89,0xF8,0x7F,0xB0,0x4C,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0xE0,0x7A,0x00,0x28,0x01,0xD0,0x40,0x1E,0xE0,0x72,0x60,0x7A, + 0x00,0x2D,0x02,0xD1,0x00,0x28,0x18,0xD0,0x18,0xE0,0x00,0x28,0x16,0xD1,0xBC,0x48, + 0x82,0x22,0x00,0x21,0x8E,0x30,0x04,0xF0,0xDB,0xFA,0xE0,0x7A,0x00,0x28,0x0C,0xD1, + 0x01,0x26,0x07,0xE0,0x31,0x06,0x09,0x0E,0x0A,0x00,0x14,0x23,0xB4,0xA8,0xFF,0xF7, + 0x91,0xFC,0x76,0x1C,0xAE,0x42,0xF5,0xDD,0x25,0x72,0xE6,0xE1,0x0D,0x22,0x01,0x21, + 0xB0,0xA8,0x04,0xF0,0xC5,0xFA,0x02,0x20,0xAE,0x49,0x06,0x90,0xAB,0x48,0x89,0x31, + 0x41,0x18,0xC9,0x91,0xAB,0x49,0x7C,0x31,0x40,0x18,0xC8,0x90,0x14,0xE1,0x0C,0x26, + 0x07,0xAF,0x34,0x20,0x70,0x43,0x07,0xA9,0x40,0x18,0x00,0x21,0x34,0x22,0xC9,0x43, + 0x04,0xF0,0xAE,0xFA,0x76,0x1E,0xF4,0xD5,0x06,0x98,0x01,0xF0,0x5D,0xFC,0x01,0x27, + 0xB9,0x90,0x54,0xE0,0xB9,0x98,0x01,0x26,0xBA,0x90,0x4C,0xE0,0x0A,0x20,0x70,0x43, + 0x9A,0x4A,0x0B,0x21,0x80,0x18,0x89,0x01,0x41,0x18,0xC7,0x91,0x09,0x7C,0x00,0x29, + 0x40,0xD0,0x98,0x49,0x40,0x18,0xC6,0x90,0x02,0xF0,0x8E,0xFD,0x06,0x99,0x08,0x43, + 0x07,0xD0,0xC6,0x98,0x02,0xF0,0x88,0xFD,0x00,0x28,0x33,0xD0,0x06,0x98,0x00,0x28, + 0x30,0xD0,0x8E,0x49,0x78,0x00,0x40,0x18,0xC5,0x90,0xE0,0x30,0x80,0x8A,0x0A,0x21, + 0xFF,0xF7,0x7C,0xFB,0xC7,0x99,0x49,0x8A,0x0A,0x1A,0x00,0x2A,0x00,0xDC,0x42,0x1A, + 0xBB,0x92,0xC5,0x98,0x0A,0x21,0xFF,0x30,0x01,0x30,0xC0,0x89,0xFF,0xF7,0x6E,0xFB, + 0xC7,0x99,0x8A,0x8A,0x11,0x1A,0x00,0x29,0x00,0xDC,0x81,0x1A,0xBB,0x9A,0x10,0x00, + 0x50,0x43,0x0A,0x00,0x4A,0x43,0xBA,0x99,0x80,0x18,0x88,0x42,0x04,0xDA,0x34,0x21, + 0x79,0x43,0x07,0xAA,0x56,0x50,0xBA,0x90,0x34,0x21,0x79,0x43,0x07,0xAA,0x89,0x18, + 0xB2,0x00,0x88,0x50,0x76,0x1C,0xA0,0x7A,0xB0,0x42,0xAF,0xDA,0x7F,0x1C,0xAF,0x42, + 0xA8,0xDD,0x01,0x20,0xA4,0xE0,0x01,0x22,0xB9,0x99,0x10,0x00,0x15,0xE0,0xB4,0xAE, + 0x33,0x5C,0x00,0x2B,0x10,0xD1,0x34,0x23,0x06,0x00,0x5E,0x43,0x07,0xAB,0xF7,0x18, + 0x9E,0x59,0xB3,0x00,0xFF,0x58,0x8F,0x42,0x06,0xDA,0x00,0x2F,0x04,0xDB,0x00,0x2E, + 0x02,0xDB,0x39,0x00,0x00,0x22,0xB8,0x90,0x40,0x1C,0xA8,0x42,0xE7,0xDD,0x00,0x2A, + 0x7E,0xD1,0xBC,0x98,0x34,0x21,0x40,0x1C,0xBC,0x90,0xB8,0x98,0x5F,0x4F,0x48,0x43, + 0x07,0xA9,0xC4,0x90,0x08,0x58,0x0A,0x21,0x48,0x43,0x5E,0x49,0xC0,0x19,0x88,0x39, + 0x41,0x18,0xB8,0x98,0x0A,0x22,0x50,0x43,0xC6,0x19,0x30,0x00,0xFF,0x30,0xCD,0x30, + 0x04,0xF0,0xE2,0xF9,0xB8,0x98,0x0A,0x21,0x40,0x00,0xC0,0x19,0xC3,0x90,0xE0,0x30, + 0x80,0x8A,0xFF,0xF7,0x0B,0xFB,0xFF,0x36,0xC1,0x36,0xF0,0x81,0xC3,0x98,0x0A,0x21, + 0xFF,0x30,0x01,0x30,0xC0,0x89,0xFF,0xF7,0x01,0xFB,0x30,0x82,0xB8,0x98,0x38,0x18, + 0xFF,0x30,0x41,0x30,0x00,0x7E,0x70,0x73,0xB0,0x7C,0x05,0x99,0x49,0x1C,0x88,0x42, + 0x01,0xD2,0x40,0x1C,0xB0,0x74,0xB7,0x7C,0x13,0x2F,0x09,0xD9,0x14,0x21,0x38,0x00, + 0xFF,0xF7,0xEC,0xFA,0x04,0x99,0x89,0x1C,0x88,0x42,0x01,0xD2,0x14,0x37,0xB7,0x74, + 0x30,0x7B,0xB8,0x9A,0xB4,0xA9,0x88,0x54,0xC9,0x9A,0xB8,0x99,0x81,0x54,0x31,0x7B, + 0xC8,0x9A,0x00,0x20,0x88,0x54,0xC4,0x99,0x07,0xAA,0x51,0x58,0xB0,0xAA,0x50,0x54, + 0x01,0x21,0x23,0xE0,0x08,0x00,0x34,0x23,0x58,0x43,0xC4,0x9B,0x07,0xAE,0xC2,0x90, + 0xF3,0x58,0x00,0x22,0x80,0x19,0xD2,0x43,0x9B,0x00,0x84,0x46,0xC2,0x50,0xB4,0xA8, + 0x40,0x5C,0xB9,0x9E,0x00,0x28,0x10,0xD1,0xA7,0x7A,0x01,0x20,0x0B,0xE0,0x83,0x00, + 0x62,0x46,0xD2,0x58,0x00,0x2A,0x05,0xDB,0xB2,0x42,0x03,0xDA,0xC2,0x9B,0x07,0xAE, + 0xF0,0x50,0x16,0x00,0x40,0x1C,0x87,0x42,0xF1,0xDA,0x49,0x1C,0xA9,0x42,0x00,0xE0, + 0x04,0xE0,0xD7,0xDD,0xA0,0x7A,0xBC,0x99,0x88,0x42,0x05,0xDD,0xBE,0x98,0x40,0x1C, + 0xA8,0x42,0xBE,0x90,0x00,0xDC,0x56,0xE7,0x06,0x98,0x41,0x1E,0x09,0x06,0x09,0x0E, + 0x00,0x28,0x06,0x91,0x00,0xD0,0xE2,0xE6,0x01,0x26,0xBF,0x96,0xBD,0x90,0x6E,0xE0, + 0xB0,0xA8,0x80,0x5D,0x00,0x28,0x69,0xD0,0xBF,0x98,0x14,0x49,0x28,0x18,0xBE,0x90, + 0x0A,0x20,0x70,0x43,0x47,0x18,0x0B,0x20,0x80,0x01,0x38,0x18,0xC1,0x90,0x00,0x7C, + 0xC8,0x99,0x40,0x5C,0x03,0x99,0x88,0x42,0x43,0xD2,0xBE,0x98,0x0C,0x28,0x40,0xDC, + 0x0C,0x48,0x38,0x18,0x02,0xF0,0x78,0xFC,0x00,0x28,0x3A,0xD0,0xC1,0x98,0xC8,0x99, + 0x00,0x7C,0xC8,0x9B,0x05,0x4A,0x41,0x5C,0x49,0x1C,0xC1,0x54,0x2D,0x20,0x00,0x01, + 0x39,0x18,0x0B,0xE0,0xC8,0x07,0x00,0x20,0x00,0x07,0x00,0x20,0x40,0x00,0x00,0x20, + 0x00,0x02,0x00,0x20,0xD6,0x02,0x00,0x00,0xC0,0x03,0x00,0x20,0xBE,0x98,0x0A,0x23, + 0x58,0x43,0x80,0x18,0xC0,0x90,0xFF,0x30,0xCD,0x30,0x1A,0x00,0x04,0xF0,0x24,0xF9, + 0x09,0x20,0x80,0x01,0x39,0x18,0xC0,0x98,0x4A,0x7D,0xFF,0x30,0xC1,0x30,0xC2,0x74, + 0x89,0x7D,0x01,0x75,0xC1,0x98,0xBE,0x9A,0x00,0x7C,0xB4,0xA9,0x88,0x54,0xC9,0x9A, + 0xBE,0x99,0x81,0x54,0xBF,0x98,0x40,0x1C,0xBF,0x90,0xBD,0x98,0x40,0x1C,0xBD,0x90, + 0x14,0xE0,0x32,0x48,0x38,0x18,0x02,0xF0,0x37,0xFC,0x00,0x28,0x0E,0xD0,0xCA,0x99, + 0x01,0x20,0x08,0x77,0xC1,0x99,0x2E,0x48,0x89,0x7D,0x13,0x29,0x06,0xD9,0x61,0x7A, + 0x01,0x29,0x03,0xD1,0xC1,0x88,0x04,0x22,0x11,0x43,0xC1,0x80,0x76,0x1C,0xA0,0x7A, + 0xB0,0x42,0x8D,0xDA,0x26,0x48,0xC0,0x88,0x41,0x07,0x05,0xD5,0x02,0x99,0x04,0x22, + 0xE1,0x72,0x23,0x49,0x90,0x43,0xC8,0x80,0x01,0x26,0x31,0xE0,0xB4,0xA8,0x80,0x5D, + 0x00,0x28,0x1A,0xD1,0x0D,0x22,0x01,0x20,0x92,0x01,0x1B,0x27,0x7F,0x01,0x1C,0x49, + 0x09,0x18,0x8B,0x18,0xDB,0x7F,0x00,0x2B,0x0C,0xD1,0xC9,0x19,0x09,0x7B,0x00,0x29, + 0x08,0xD1,0x02,0x06,0x31,0x06,0x12,0x0E,0x09,0x0E,0x01,0x23,0xB4,0xA8,0xFF,0xF7, + 0xC1,0xFA,0x02,0xE0,0x40,0x1C,0x0D,0x28,0xE9,0xDB,0xE0,0x7A,0x00,0x28,0x0E,0xD0, + 0x0A,0x20,0x70,0x43,0x0E,0x49,0x47,0x18,0x38,0x00,0xFF,0x30,0xD3,0x30,0x02,0xF0, + 0xEB,0xFB,0x00,0x28,0x03,0xD1,0x01,0x20,0xFF,0x37,0xC1,0x37,0xB8,0x74,0x76,0x1C, + 0xAE,0x42,0xCB,0xDD,0xBD,0x98,0x28,0x18,0x20,0x72,0x20,0x7A,0x05,0x49,0x82,0x22, + 0xA0,0x72,0xC8,0x1D,0xFD,0x30,0x04,0xF0,0xA7,0xF8,0xE6,0xE5,0xD6,0x02,0x00,0x00, + 0x40,0x00,0x00,0x20,0x0C,0x02,0x00,0x20,0xF1,0xB5,0x38,0x48,0x86,0xB0,0x05,0x90, + 0x00,0x20,0x04,0x90,0x36,0x48,0x41,0x7F,0x01,0x91,0x01,0x00,0x20,0x39,0x49,0x7F, + 0x00,0x91,0x00,0x21,0x02,0x91,0x01,0x7D,0x00,0x20,0xC0,0x43,0x00,0x29,0x06,0x99, + 0x03,0xD1,0x00,0x29,0x03,0xD1,0x01,0x20,0x01,0xE0,0x00,0x29,0xFB,0xD1,0x03,0x90, + 0x01,0xF0,0x86,0xF9,0x01,0xF0,0x5C,0xFA,0x00,0x24,0x27,0x00,0x00,0x26,0x31,0x00, + 0x38,0x00,0x02,0xF0,0xB3,0xF8,0x00,0x28,0x28,0xD0,0x0E,0x21,0x79,0x43,0x05,0x9A, + 0x89,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x0D,0x1A,0x06,0x98,0x00,0x28, + 0x0D,0xD0,0x00,0x2D,0x1A,0xDA,0x03,0x9A,0x31,0x00,0x38,0x00,0x05,0xF0,0xB2,0xFD, + 0x40,0x1C,0x14,0xD1,0x00,0x98,0x28,0x18,0x10,0xD5,0x02,0x20,0x0D,0xE0,0x00,0x2D, + 0x0C,0xDD,0x03,0x9A,0x31,0x00,0x38,0x00,0x05,0xF0,0xA4,0xFD,0x40,0x1C,0x06,0xD1, + 0x01,0x98,0x28,0x1A,0x00,0x28,0x01,0xDD,0x03,0x20,0x04,0x90,0x64,0x1C,0x76,0x1C, + 0x0E,0x2E,0xCC,0xD3,0x7F,0x1C,0x15,0x2F,0xC8,0xD3,0x20,0x00,0xFF,0x38,0x27,0x38, + 0x04,0xD1,0x04,0x98,0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x02,0x98,0x41,0x1C, + 0x02,0x91,0x01,0x21,0x49,0x02,0x88,0x42,0xB2,0xD9,0x06,0x98,0x00,0x28,0x01,0xD0, + 0x02,0x20,0x00,0xE0,0x03,0x20,0x04,0x90,0xEC,0xE7,0x00,0x00,0xD4,0x02,0x10,0x40, + 0x20,0x93,0x00,0x00,0xF0,0xB5,0x7B,0x4A,0xFF,0xB0,0xBC,0xB0,0x40,0x18,0xB9,0x92, + 0x42,0x00,0x80,0x18,0xB8,0x90,0x48,0x42,0xB7,0x90,0x77,0x48,0x77,0x4E,0x07,0x7F, + 0x02,0xA8,0x01,0x90,0x76,0x48,0xBA,0x90,0x00,0x7D,0x00,0x28,0x02,0xD1,0xB7,0x98, + 0x40,0x42,0xB7,0x90,0x73,0x4A,0x00,0x21,0x30,0x00,0x04,0xF0,0x51,0xF8,0x00,0x25, + 0x00,0x24,0x6F,0x48,0x20,0x38,0x01,0x7D,0xC9,0x07,0x14,0xD0,0x6E,0x49,0x09,0x78, + 0x00,0x29,0x16,0xD0,0xBD,0x42,0x0E,0xD1,0x81,0x7D,0xA1,0x42,0x0B,0xD0,0xC1,0x7D, + 0xA1,0x42,0x08,0xD0,0x01,0x7E,0xA1,0x42,0x05,0xD0,0x41,0x7E,0xA1,0x42,0x02,0xD0, + 0x80,0x7E,0xA0,0x42,0x16,0xD1,0xB7,0x9A,0x21,0x00,0x28,0x00,0x05,0xF0,0x3A,0xFD, + 0x10,0xE0,0xBC,0x42,0xF7,0xD1,0x81,0x7D,0xA9,0x42,0xF4,0xD0,0xC1,0x7D,0xA9,0x42, + 0xF1,0xD0,0x01,0x7E,0xA9,0x42,0xEE,0xD0,0x41,0x7E,0xA9,0x42,0xEB,0xD0,0x80,0x7E, + 0xA8,0x42,0xE8,0xD0,0x64,0x1C,0x0E,0x2C,0xCB,0xD3,0x6D,0x1C,0x15,0x2D,0xC7,0xD3, + 0x01,0xF0,0xD6,0xF8,0x01,0xF0,0xAC,0xF9,0x00,0x25,0x00,0x24,0x0E,0x20,0x2F,0x00, + 0x47,0x43,0x21,0x00,0x28,0x00,0x02,0xF0,0x01,0xF8,0x00,0x28,0x0F,0xD0,0xB9,0x9B, + 0x3A,0x19,0x91,0x00,0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D,0x1B,0x0C,0xCB,0x1A, + 0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0,0x40,0x1A,0x51,0x00,0x70,0x52,0x21,0x00, + 0x28,0x00,0x02,0xF0,0x2B,0xF8,0x39,0x19,0x01,0x9A,0x49,0x00,0x64,0x1C,0x0E,0x2C, + 0x50,0x52,0xDE,0xD3,0x6D,0x1C,0x15,0x2D,0xD7,0xD3,0x00,0x20,0x00,0x90,0x01,0xF0, + 0x7F,0xF9,0x00,0x25,0x00,0x24,0x21,0x00,0x28,0x00,0x01,0xF0,0xD7,0xFF,0x00,0x28, + 0x3E,0xD0,0x0E,0x21,0x69,0x43,0xB9,0x9B,0x0A,0x19,0x91,0x00,0x59,0x58,0x03,0x04, + 0x09,0x05,0x09,0x0D,0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0, + 0x40,0x1A,0x57,0x00,0xF1,0x5B,0x00,0x04,0x00,0x0C,0x81,0x42,0x06,0xD9,0xF0,0x53, + 0x21,0x00,0x28,0x00,0x01,0xF0,0xFA,0xFF,0x01,0x99,0xC8,0x53,0x00,0x98,0x03,0x21, + 0xFF,0xF7,0xAC,0xF8,0x00,0x29,0x01,0xD0,0x02,0x29,0x0D,0xD1,0xBA,0x98,0x00,0x7D, + 0x00,0x28,0x02,0xD1,0x00,0x22,0x43,0x1E,0x01,0xE0,0x01,0x22,0x00,0x23,0x21,0x00, + 0x28,0x00,0x05,0xF0,0x8F,0xFC,0x0B,0xE0,0x00,0x22,0xD2,0x43,0x00,0x23,0x21,0x00, + 0x28,0x00,0x05,0xF0,0x87,0xFC,0x00,0x28,0x02,0xD1,0x00,0x22,0x01,0x23,0xEE,0xE7, + 0x64,0x1C,0x0E,0x2C,0xB7,0xD3,0x6D,0x1C,0x15,0x2D,0xB3,0xD3,0x00,0x98,0x40,0x1C, + 0x00,0x90,0xB8,0x98,0x40,0x1E,0xB8,0x90,0x18,0xD2,0x00,0x25,0x00,0x24,0x0E,0x20, + 0x2E,0x00,0x46,0x43,0x01,0x99,0x30,0x19,0x40,0x00,0x0A,0x5A,0x21,0x00,0x28,0x00, + 0x05,0xF0,0x84,0xFC,0x64,0x1C,0x0E,0x2C,0xF4,0xD3,0x6D,0x1C,0x15,0x2D,0xED,0xD3, + 0x7F,0xB0,0x3C,0xB0,0xF0,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x01,0xF0,0x38,0xF8, + 0x8D,0xE7,0x00,0x00,0xD4,0x02,0x10,0x40,0x60,0x06,0x00,0x20,0x00,0x00,0x00,0x10, + 0x20,0x93,0x00,0x00,0xD2,0x02,0x00,0x00,0x18,0x07,0x00,0x20,0xF8,0xB5,0x01,0x22, + 0x52,0x07,0x10,0x68,0x01,0x28,0x03,0xD0,0x10,0x68,0x01,0x28,0x43,0xD9,0x02,0x20, + 0x86,0x46,0x22,0x48,0x00,0x90,0x80,0x79,0x00,0x28,0x3C,0xD0,0x00,0x21,0x0D,0x25, + 0x1F,0x4F,0xED,0x01,0x32,0xE0,0x72,0x46,0x8A,0x18,0x92,0x00,0x10,0x18,0x02,0x68, + 0x84,0x46,0x90,0x0F,0xC0,0x07,0x28,0xD1,0x00,0x9C,0x93,0x00,0xA6,0x79,0x1B,0x0F, + 0x21,0xE0,0x84,0x00,0xE4,0x19,0x64,0x19,0xA4,0x68,0xA4,0x00,0x24,0x0F,0xA3,0x42, + 0x18,0xD1,0x80,0x00,0xC0,0x19,0x40,0x19,0x80,0x68,0x92,0x0A,0x83,0x05,0x92,0x02, + 0x9B,0x0D,0x1A,0x43,0x0F,0x4B,0x1A,0x40,0x83,0x01,0x9B,0x0D,0x1B,0x04,0x1A,0x43, + 0x3F,0x23,0x9B,0x02,0x00,0x04,0x80,0x0E,0x9A,0x43,0x80,0x02,0x02,0x43,0x60,0x46, + 0x02,0x60,0x02,0xE0,0x40,0x1C,0x86,0x42,0xDB,0xD8,0x49,0x1C,0x01,0x20,0x40,0x07, + 0x02,0x68,0x8A,0x42,0xC7,0xD8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xC0,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0xFF,0xFF,0x00,0xFC,0xFC,0xB5,0x04,0x00,0x60,0x48,0x8E,0x46, + 0x02,0x8C,0x60,0x49,0x40,0x8C,0x01,0x91,0x4B,0x8B,0x20,0x39,0x00,0x91,0x89,0x7B, + 0x00,0x25,0x2F,0x00,0xC9,0x07,0x01,0x26,0x00,0x29,0xAC,0x46,0x01,0xD1,0xE6,0x71, + 0xAA,0xE0,0x01,0x99,0x09,0x7E,0x00,0x29,0x0D,0xD0,0x01,0x29,0x0F,0xD0,0x02,0x29, + 0x07,0xD0,0x03,0x29,0xF4,0xD1,0x17,0x00,0xD1,0x18,0x0A,0x04,0x12,0x0C,0x03,0x00, + 0x05,0xE0,0x1A,0x00,0xFB,0xE7,0x84,0x46,0xC0,0x18,0x03,0x04,0x1B,0x0C,0x60,0x88, + 0xA1,0x88,0x87,0x42,0x5C,0xDC,0x82,0x42,0x5A,0xDB,0x8C,0x45,0x58,0xDC,0x8B,0x42, + 0x56,0xDB,0x01,0x25,0x72,0x46,0x00,0x2A,0x7B,0xD0,0x06,0x27,0x01,0x2A,0x0E,0xD0, + 0x02,0x2A,0x18,0xD0,0x03,0x2A,0x76,0xD1,0xE2,0x79,0xD3,0x07,0x2D,0xD0,0x01,0x2A, + 0x01,0xD0,0x05,0x2A,0x27,0xD1,0x09,0x20,0x00,0x25,0xE0,0x71,0x6B,0xE0,0x00,0x9A, + 0x92,0x7A,0x00,0x2A,0x67,0xD1,0x00,0xF0,0x8B,0xF8,0x06,0x00,0x0F,0xD1,0x02,0x20, + 0xE0,0x71,0x26,0x72,0x5F,0xE0,0xE2,0x79,0xD3,0x07,0xE8,0xD1,0x92,0x07,0x5A,0xD5, + 0x00,0xF0,0x7E,0xF8,0x06,0x00,0x08,0xD0,0x20,0x7A,0x00,0x28,0x05,0xD1,0x31,0x00, + 0x20,0x00,0xE7,0x71,0xFF,0xF7,0x24,0xF8,0xEB,0xE7,0x31,0x00,0x20,0x00,0xE7,0x71, + 0xFF,0xF7,0x1E,0xF8,0x47,0xE0,0x11,0x20,0x44,0xE0,0x92,0x07,0x43,0xD5,0x00,0xF0, + 0x67,0xF8,0x21,0x7A,0x00,0x28,0x0A,0xD0,0x00,0x29,0x0C,0xD0,0x81,0x42,0x08,0xD1, + 0x0A,0x20,0xE0,0x71,0x20,0x00,0xFF,0xF7,0x0B,0xF8,0xA6,0x71,0x05,0xE0,0x00,0x29, + 0x01,0xD0,0x12,0x20,0xF5,0xE7,0x02,0x20,0xE0,0x71,0x00,0x20,0x20,0x72,0x2A,0xE0, + 0x70,0x46,0x00,0x28,0x25,0xD0,0x01,0x28,0x06,0xD0,0x02,0x28,0x06,0xD0,0x03,0x28, + 0x21,0xD1,0xE0,0x79,0x80,0x07,0x0E,0xD4,0xE6,0x71,0x1C,0xE0,0xE0,0x79,0x80,0x07, + 0xFA,0xD5,0x21,0x7A,0x00,0x29,0x04,0xD0,0x12,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7, + 0xE7,0xFF,0xE6,0x71,0x09,0xE0,0x02,0x20,0xE0,0x71,0x21,0x7A,0x00,0x29,0x04,0xD0, + 0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0xDB,0xFF,0x01,0x25,0xA6,0x71,0x02,0xE0, + 0xFF,0xE7,0x00,0x20,0xE0,0x71,0x08,0x49,0xC8,0x88,0x82,0x07,0x04,0xD1,0xE2,0x79, + 0x92,0x07,0x92,0x0F,0x10,0x43,0xC8,0x80,0x28,0x00,0xFC,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x93,0x00,0x00,0x60,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x03,0x48,0xC0,0x68, + 0x40,0x07,0x01,0xD5,0x01,0x20,0x70,0x47,0x00,0x20,0x70,0x47,0x00,0x90,0x00,0x40, + 0x02,0x48,0xC0,0x68,0xC0,0x07,0x00,0xD0,0x01,0x20,0x70,0x47,0x00,0x90,0x00,0x40, + 0xF0,0xB4,0x16,0x4B,0x04,0x00,0xDE,0x7B,0x00,0x22,0x10,0x00,0x00,0x2E,0x23,0xD0, + 0x1B,0x7A,0x00,0x2B,0x20,0xD1,0x12,0x4F,0x1C,0xE0,0xD3,0x00,0xDD,0x19,0x03,0x23, + 0x5B,0x02,0xEB,0x18,0x10,0x25,0x5D,0x5F,0xA5,0x42,0x0E,0xDC,0x14,0x25,0x5D,0x5F, + 0xA5,0x42,0x0A,0xDB,0x12,0x25,0x5D,0x5F,0x8D,0x42,0x06,0xDC,0x16,0x25,0x5D,0x5F, + 0x8D,0x42,0x02,0xDB,0x50,0x1C,0x00,0x06,0x00,0x0E,0x00,0x28,0x04,0xD1,0x52,0x1C, + 0x12,0x06,0x12,0x0E,0x96,0x42,0xE0,0xD8,0xF0,0xBC,0x70,0x47,0x40,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0xF0,0xB5,0x00,0x20,0x8D,0xB0,0xBC,0x4E,0x0A,0x90,0x09,0x90, + 0x30,0x68,0x01,0x88,0x08,0x91,0x01,0x00,0x40,0x31,0xCA,0x7F,0x60,0x30,0x07,0x92, + 0x8A,0x7F,0x06,0x92,0x40,0x78,0x05,0x90,0x88,0x7D,0x04,0x90,0xB4,0x48,0xC1,0x88, + 0x00,0x79,0x0A,0x07,0x05,0xD5,0xB2,0x4A,0x00,0x28,0x02,0xD1,0x08,0x23,0x99,0x43, + 0xD1,0x80,0xB0,0x4D,0x00,0x21,0x69,0x5E,0xFF,0x22,0x01,0x32,0x28,0x29,0x03,0xDD, + 0x02,0x21,0x69,0x5E,0x1E,0x29,0x03,0xDC,0x04,0x21,0x69,0x5E,0x28,0x29,0x05,0xDD, + 0xA7,0x4B,0xD9,0x88,0x11,0x43,0xD9,0x80,0x0F,0x21,0x04,0xE0,0x06,0x21,0x69,0x5E, + 0x00,0x29,0x02,0xD0,0x49,0x1E,0xE9,0x80,0x03,0xE0,0xA1,0x4B,0xD9,0x88,0x91,0x43, + 0xD9,0x80,0x08,0x99,0x89,0x04,0x7E,0xD5,0x6A,0x7A,0x00,0x21,0x00,0x2A,0x02,0xD1, + 0x00,0x28,0x00,0xD1,0x01,0x21,0x01,0x91,0x00,0xF0,0x42,0xF9,0x98,0x48,0x9A,0x4C, + 0x00,0x79,0x01,0x28,0x0C,0x90,0x4D,0xD1,0x95,0x49,0x09,0x89,0x0B,0x91,0x35,0x68, + 0x40,0x35,0x6A,0x8B,0x91,0x42,0x00,0xD3,0x00,0x20,0x03,0x90,0x0B,0x98,0x0A,0x22, + 0x02,0x21,0x50,0x43,0x61,0x5E,0x0F,0x00,0xFE,0xF7,0x60,0xFD,0x29,0x7C,0x88,0x42, + 0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x02,0x90,0x0B,0x98,0x0A,0x21,0xC0,0x1B, + 0xFE,0xF7,0x54,0xFD,0x69,0x7C,0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20, + 0x07,0x00,0x85,0x48,0xAB,0x7C,0x20,0x38,0x80,0x8B,0x01,0x21,0x98,0x42,0x00,0xD8, + 0x00,0x21,0xEB,0x7C,0x62,0x68,0x01,0x20,0x9A,0x42,0x00,0xDB,0x00,0x20,0x03,0x9A, + 0x00,0x2A,0x2A,0xD0,0x02,0x9A,0x00,0x2A,0x27,0xD0,0x00,0x2F,0x25,0xD0,0x00,0x29, + 0x23,0xD0,0x77,0x4A,0x01,0x21,0xC0,0x32,0xD2,0x6A,0x00,0x2A,0x00,0xD0,0x00,0x21, + 0x01,0x42,0x1A,0xD0,0x60,0x78,0x00,0x28,0x2F,0xD0,0x69,0x7E,0x88,0x42,0x2C,0xD8, + 0x40,0x1E,0x29,0xE0,0x01,0x28,0x10,0xD9,0x68,0x7A,0x01,0x28,0x0D,0xD9,0x31,0x68, + 0x60,0x78,0x40,0x31,0xC9,0x7D,0x88,0x42,0x01,0xD2,0x40,0x1C,0x60,0x70,0x60,0x78, + 0x00,0x28,0x02,0xD0,0x20,0x78,0x40,0x1E,0x20,0x70,0x31,0x68,0x60,0x68,0x40,0x31, + 0x0A,0x7D,0x90,0x42,0x11,0xDB,0x0C,0x98,0x61,0x4A,0x00,0x28,0x0D,0xD0,0xD0,0x88, + 0xC0,0x06,0x0A,0xD4,0x00,0xE0,0x26,0xE0,0x60,0x78,0xC9,0x7D,0x88,0x42,0x04,0xD2, + 0x04,0x99,0x88,0x42,0x01,0xD9,0x40,0x1C,0x60,0x70,0x60,0x78,0x04,0x99,0x10,0x23, + 0x88,0x42,0x0B,0xD8,0x01,0x98,0x00,0x28,0x08,0xD1,0x55,0x49,0xC8,0x88,0x18,0x43, + 0xC8,0x80,0x30,0x68,0x40,0x30,0x00,0x7E,0x20,0x70,0x0F,0xE0,0x50,0x4A,0xD0,0x88, + 0xC1,0x06,0x0B,0xD5,0x21,0x78,0x00,0x29,0x06,0xD1,0x98,0x43,0xD0,0x80,0x30,0x68, + 0x40,0x30,0x40,0x7D,0x60,0x70,0x01,0xE0,0x49,0x1E,0x21,0x70,0x48,0x4F,0x38,0x79, + 0x00,0x28,0x7E,0xD0,0xF8,0x88,0x80,0x06,0x05,0xD5,0x05,0x99,0x06,0x98,0x40,0x1A, + 0x00,0x06,0x00,0x0E,0x06,0x90,0x01,0x22,0x50,0x00,0xC0,0x19,0x84,0x46,0xFF,0x30, + 0xA1,0x30,0xC0,0x88,0x00,0x28,0x68,0xD0,0x07,0x99,0x88,0x42,0x09,0xD9,0x08,0x98, + 0x80,0x07,0x62,0xD5,0x00,0x20,0x38,0x71,0xF8,0x88,0x08,0x21,0x08,0x43,0xF8,0x80, + 0x5B,0xE0,0x06,0x99,0x88,0x42,0x58,0xD3,0x08,0x98,0x40,0x07,0x55,0xD5,0x00,0x23, + 0x01,0x20,0x29,0xE0,0xFF,0x24,0x39,0x18,0x9A,0x34,0x64,0x5C,0x94,0x42,0x22,0xD1, + 0x5B,0x1C,0xFF,0x31,0x41,0x31,0x09,0x7E,0x0A,0x91,0x01,0x00,0x14,0xE0,0x4C,0x00, + 0xE4,0x19,0x25,0x00,0xE0,0x35,0xEE,0x8A,0xFF,0x34,0x01,0x34,0xAE,0x82,0x26,0x8A, + 0xE6,0x81,0x7C,0x18,0x25,0x00,0xFF,0x35,0x41,0x35,0x6E,0x7E,0xFF,0x34,0x81,0x34, + 0x2E,0x76,0xA6,0x7E,0x49,0x1C,0x66,0x76,0x3C,0x79,0x8C,0x42,0xE7,0xDA,0x39,0x79, + 0x49,0x1E,0x40,0x1E,0x39,0x71,0x40,0x1C,0x39,0x79,0x81,0x42,0xD2,0xDA,0x00,0x2B, + 0x23,0xDD,0x01,0x2B,0x05,0xDD,0x01,0x20,0x09,0x90,0xF8,0x88,0x20,0x21,0x08,0x43, + 0xF8,0x80,0x60,0x46,0xFF,0x30,0x61,0x30,0x41,0x89,0x38,0x79,0x40,0x1C,0x00,0x06, + 0x00,0x0E,0x38,0x71,0x40,0x00,0xC0,0x19,0xE0,0x30,0x81,0x82,0x60,0x46,0xFF,0x30, + 0x81,0x30,0x41,0x88,0x38,0x79,0x40,0x00,0xC0,0x19,0xFF,0x30,0x01,0x30,0xC1,0x81, + 0x3B,0x79,0x0C,0x49,0x0A,0x98,0x68,0x39,0x58,0x54,0x52,0x1C,0x0C,0x2A,0x8B,0xDB, + 0x00,0xE0,0x06,0xE0,0x09,0x98,0x00,0x28,0x03,0xD1,0xF8,0x88,0x20,0x21,0x88,0x43, + 0xF8,0x80,0x0D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC8,0x07,0x00,0x20, + 0x40,0x00,0x00,0x20,0x00,0x02,0x00,0x20,0x40,0x06,0x00,0x20,0x03,0x48,0xC0,0x68, + 0x00,0x03,0x01,0xD5,0x01,0x20,0x70,0x47,0x00,0x20,0x70,0x47,0x00,0x90,0x00,0x40, + 0xF0,0xB5,0x59,0x48,0xB7,0xB0,0x00,0x68,0x00,0x21,0x60,0x30,0x45,0x79,0x07,0x79, + 0x56,0x48,0x31,0x95,0x36,0x90,0x41,0x80,0x36,0x98,0x41,0x60,0x30,0x91,0x60,0x21, + 0x18,0xA8,0x03,0xF0,0x0F,0xFC,0x60,0x21,0x68,0x46,0x03,0xF0,0x0B,0xFC,0x31,0x9D, + 0x0E,0x21,0x48,0x1B,0x33,0x90,0x58,0xE0,0x15,0x21,0xC9,0x1B,0x35,0x91,0x31,0x99, + 0x38,0x00,0x69,0x1A,0x8C,0x00,0x17,0xE0,0x49,0x4A,0x6B,0x00,0x9E,0x18,0xB8,0x23, + 0xF3,0x5E,0x0E,0x21,0x46,0x00,0x41,0x43,0xB2,0x18,0x88,0x26,0x96,0x5F,0x49,0x19, + 0x09,0x04,0x9A,0x19,0x43,0x4B,0x09,0x14,0x49,0x00,0x59,0x5E,0x51,0x18,0x18,0xAA, + 0x13,0x59,0x59,0x18,0x40,0x1C,0x11,0x51,0x35,0x99,0x81,0x42,0xE4,0xDC,0x78,0x00, + 0x15,0x21,0x09,0x1A,0x18,0xAE,0x34,0x90,0x30,0x59,0xFE,0xF7,0xEF,0xFB,0x30,0x51, + 0x3E,0x00,0x84,0x46,0x19,0xE0,0x0E,0x20,0x70,0x43,0x36,0x49,0x40,0x19,0x40,0x00, + 0x09,0x5E,0x60,0x46,0x6A,0x00,0x09,0x1A,0x31,0x48,0x13,0x18,0xB8,0x22,0x9A,0x5E, + 0x73,0x00,0x1B,0x18,0x88,0x20,0x18,0x5E,0x10,0x18,0x09,0x18,0x0B,0x00,0x4B,0x43, + 0x68,0x46,0x02,0x59,0xD1,0x18,0x76,0x1C,0x01,0x51,0x35,0x98,0xB0,0x42,0xE2,0xDC, + 0x34,0x98,0x14,0x21,0x09,0x1A,0x6E,0x46,0x30,0x59,0xFE,0xF7,0xC7,0xFB,0x30,0x51, + 0x30,0x99,0x40,0x18,0x30,0x90,0x33,0x98,0x6D,0x1C,0xA8,0x42,0xA4,0xDC,0x79,0x00, + 0x15,0x20,0x41,0x1A,0x31,0x98,0x0E,0x22,0x40,0x00,0x14,0x1A,0x61,0x43,0x32,0x90, + 0x30,0x98,0xFE,0xF7,0xB3,0xFB,0x05,0x04,0x36,0x98,0x2D,0x14,0x45,0x80,0x30,0x98, + 0x21,0x00,0xFE,0xF7,0xAB,0xFB,0x00,0x21,0x6B,0x46,0x0A,0xE0,0x8A,0x00,0x9A,0x58, + 0x82,0x1A,0x16,0x00,0x56,0x43,0x36,0x9A,0x52,0x68,0xB2,0x18,0x36,0x9E,0x49,0x1C, + 0x72,0x60,0x8C,0x42,0xF2,0xDC,0x32,0x98,0x0D,0x21,0x09,0x1A,0x36,0x98,0x40,0x68, + 0xFE,0xF7,0x94,0xFB,0x15,0x22,0x33,0x99,0xD2,0x1B,0x92,0x02,0x51,0x43,0xFE,0xF7, + 0x8D,0xFB,0x36,0x99,0x00,0x2D,0x48,0x60,0x02,0xD1,0x36,0x98,0x6D,0x1C,0x45,0x80, + 0x37,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xC8,0x07,0x00,0x20,0x40,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10,0xF8,0xB5,0x00,0x25,0x01,0x26,0x76,0x07, + 0x34,0x68,0x1B,0x48,0x00,0x68,0x00,0x88,0xC0,0x05,0x24,0xD5,0x19,0x48,0x00,0x78, + 0x00,0x28,0x20,0xD1,0x01,0x2C,0x01,0xD1,0x01,0x27,0x02,0xE0,0x01,0x2C,0x1B,0xD9, + 0x02,0x27,0x15,0x48,0x80,0x79,0xA0,0x42,0x15,0xD1,0x00,0x23,0x10,0xE0,0xD8,0x19, + 0x80,0x00,0x80,0x19,0x00,0x68,0x11,0x49,0x00,0x90,0x98,0x00,0x40,0x18,0xD1,0x21, + 0xC9,0x00,0x40,0x18,0x69,0x46,0x00,0xF0,0xCF,0xF9,0x01,0x28,0x03,0xD0,0x5B,0x1C, + 0xA3,0x42,0xEC,0xD3,0x00,0xE0,0x01,0x25,0x04,0xF0,0x58,0xFB,0x00,0x2D,0x03,0xD0, + 0x34,0x60,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x30,0x60,0xF9,0xE7,0x00,0x00, + 0xC8,0x07,0x00,0x20,0x1E,0x07,0x00,0x20,0xC0,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0xF8,0xB5,0x64,0x4E,0x00,0x25,0x30,0x7A,0x00,0x28,0x06,0xD0,0xF0,0x6A,0x00,0x04, + 0x00,0x0C,0x05,0xF0,0xD1,0xFB,0x05,0xF0,0xBF,0xFB,0x04,0xF0,0xD5,0xF9,0x04,0xF0, + 0xED,0xFE,0x5D,0x4F,0xAA,0xE0,0x5D,0x48,0x41,0x68,0x09,0x07,0x0D,0xD5,0xC1,0x68, + 0x00,0x29,0x0A,0xD0,0xC0,0x68,0x07,0x28,0x05,0xD1,0x58,0x48,0xC0,0x68,0x01,0x21, + 0x49,0x07,0xC8,0x63,0x9E,0xE0,0x04,0xF0,0xFB,0xFA,0x30,0x7A,0x00,0x28,0x04,0xD0, + 0xF0,0x6A,0x00,0x04,0x00,0x0C,0x05,0xF0,0xAF,0xFB,0xFF,0x20,0x81,0x30,0xFE,0xF7, + 0x79,0xFF,0x03,0x20,0x05,0xF0,0x18,0xFA,0x4D,0x4C,0xE0,0x88,0x01,0x06,0x01,0xD5, + 0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5,0x04,0x20,0x00,0xE0,0x02,0x20,0x05,0xF0, + 0xCB,0xF8,0x00,0xF0,0x43,0xFC,0x04,0xF0,0xCF,0xFE,0x05,0xF0,0xB3,0xF8,0x00,0xF0, + 0xEF,0xFB,0x00,0xF0,0xC5,0xFC,0x70,0x7B,0x00,0x28,0x04,0xD1,0x38,0x7B,0x00,0x28, + 0x01,0xD0,0x04,0xF0,0x9D,0xF9,0x38,0x7A,0x00,0x28,0x01,0xD0,0x03,0xF0,0x30,0xFB, + 0x03,0xF0,0x4A,0xFB,0x00,0x28,0x01,0xD0,0x01,0x20,0x30,0x70,0x30,0x78,0x00,0x28, + 0x04,0xD1,0x00,0x22,0x11,0x00,0x10,0x00,0x00,0xF0,0xA6,0xF9,0x30,0x78,0x00,0x28, + 0x05,0xD0,0x70,0x7B,0x00,0x09,0x04,0x28,0x54,0xD1,0x00,0x20,0x30,0x70,0x03,0x20, + 0x05,0xF0,0xB4,0xF9,0xB0,0x62,0x03,0x20,0x05,0xF0,0xE2,0xF9,0xFF,0x20,0x81,0x30, + 0xFE,0xF7,0x28,0xFF,0xE0,0x8B,0x00,0x28,0x02,0xD0,0x40,0x1E,0xE0,0x83,0x3D,0xE0, + 0x70,0x79,0x00,0x28,0x3A,0xD1,0x34,0x6A,0x00,0x2C,0x37,0xD0,0x28,0x00,0x6D,0x1C, + 0x64,0x28,0xB0,0x6A,0x23,0x49,0x07,0xDB,0x48,0x43,0x23,0x49,0xFE,0xF7,0xD6,0xFB, + 0x0F,0x21,0xC9,0x01,0x0C,0x1A,0x04,0xE0,0x48,0x43,0x1F,0x49,0xFE,0xF7,0xCE,0xFB, + 0x24,0x1A,0x14,0x2C,0x22,0xDD,0x04,0xF0,0x3B,0xF9,0x20,0x00,0x05,0xF0,0x4A,0xFB, + 0x05,0xF0,0x4E,0xFB,0xB0,0x79,0x00,0x28,0x0D,0xD0,0x04,0xF0,0x0F,0xF9,0x04,0xF0, + 0x12,0xF9,0x04,0xF0,0x1A,0xF9,0x15,0x4C,0x01,0x20,0x60,0x60,0xFE,0xF7,0x02,0xFF, + 0x13,0x48,0x60,0x60,0x03,0xE0,0x13,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0,0x05,0xF0, + 0x3E,0xFB,0x10,0x49,0x00,0x20,0x08,0x70,0x04,0xF0,0x26,0xF9,0x30,0x78,0x00,0x28, + 0x00,0xD1,0x50,0xE7,0x30,0x7A,0x00,0x28,0x01,0xD0,0x05,0xF0,0x0D,0xFB,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x14,0x07,0x00,0x20,0x80,0x93,0x00,0x00,0x00,0x40,0x00,0x30, + 0x40,0x00,0x00,0x20,0x40,0x01,0x00,0x00,0x10,0x27,0x00,0x00,0x00,0x30,0x00,0x40, + 0xE1,0x04,0x00,0x00,0xCC,0x07,0x00,0x20,0x10,0xB4,0x0F,0x4B,0x00,0x22,0xD2,0x43, + 0x81,0x00,0x5A,0x52,0xCB,0x18,0x5A,0x80,0x0B,0x4B,0x0B,0x4C,0x34,0x33,0x5A,0x52, + 0xCB,0x18,0x5A,0x80,0x00,0x23,0x42,0x00,0x28,0x3C,0xA3,0x52,0x22,0x00,0x1A,0x32, + 0x13,0x54,0x18,0x00,0x76,0x32,0x8A,0x18,0x81,0x00,0x53,0x52,0x51,0x18,0x40,0x1E, + 0x4B,0x80,0xF9,0xD5,0x10,0xBC,0x70,0x47,0xC8,0x0A,0x00,0x20,0x10,0xB5,0x0C,0x48, + 0x0D,0x22,0x00,0x21,0x03,0xF0,0x64,0xFA,0x0A,0x48,0x82,0x22,0x00,0x21,0x03,0xF0, + 0x5F,0xFA,0x08,0x48,0x00,0x24,0x0C,0x38,0x04,0x72,0x07,0x48,0x28,0x22,0x21,0x00, + 0x03,0xF0,0x56,0xFA,0x04,0x48,0x42,0x38,0x44,0x72,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x9F,0x03,0x00,0x20,0x0C,0x02,0x00,0x20,0x82,0x06,0x00,0x20,0x10,0xB5,0x17,0x48, + 0x1A,0x22,0x00,0x21,0x03,0xF0,0x44,0xFA,0x14,0x48,0x1A,0x22,0x00,0x21,0x1A,0x30, + 0x03,0xF0,0x3E,0xFA,0x11,0x48,0x0D,0x22,0x00,0x21,0x64,0x30,0x03,0xF0,0x38,0xFA, + 0x0E,0x48,0x30,0x22,0x00,0x21,0x34,0x30,0x03,0xF0,0x32,0xFA,0x0B,0x48,0x18,0x22, + 0x00,0x21,0x76,0x30,0x03,0xF0,0x2C,0xFA,0x08,0x48,0x18,0x22,0x00,0x21,0x8E,0x30, + 0x03,0xF0,0x26,0xFA,0x05,0x49,0x00,0x20,0xAC,0x31,0xC8,0x83,0xFF,0x39,0xA1,0x39, + 0x08,0x71,0x88,0x83,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x34,0x01,0x00,0x20, + 0xF0,0xB4,0x1E,0x49,0x1E,0x4E,0x09,0x68,0x00,0x24,0x60,0x31,0x8F,0x7F,0x08,0x21, + 0x42,0x00,0x18,0x23,0x4B,0x43,0x9B,0x19,0x1D,0x25,0x9B,0x18,0x6D,0x01,0x5D,0x19, + 0xAC,0x80,0x23,0x25,0x6D,0x01,0x5B,0x19,0x49,0x1E,0x9C,0x83,0xF1,0xD5,0x07,0x25, + 0x31,0x18,0xED,0x01,0x01,0x23,0x4D,0x19,0x2B,0x76,0x15,0x25,0x93,0x19,0xAD,0x01, + 0x5B,0x19,0x9C,0x82,0x2B,0x23,0x5B,0x01,0xC9,0x18,0x0F,0x73,0x0C,0x76,0x02,0x21, + 0x0B,0x23,0xDB,0x01,0x18,0x25,0x4D,0x43,0xAD,0x19,0xAD,0x18,0xED,0x18,0x49,0x1E, + 0xAC,0x80,0xF7,0xD5,0x80,0x00,0x82,0x19,0x00,0x21,0x17,0x20,0xC9,0x43,0x80,0x01, + 0x10,0x18,0x81,0x81,0xC1,0x81,0xF0,0xBC,0x70,0x47,0x00,0x00,0xC8,0x07,0x00,0x20, + 0x40,0x00,0x00,0x20,0x10,0xB5,0x06,0x48,0x1E,0x22,0x00,0x21,0x03,0xF0,0xD0,0xF9, + 0x04,0x48,0x00,0x21,0x81,0x74,0x41,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xBA,0x03,0x00,0x20,0x20,0x01,0x00,0x20,0x10,0xB5,0x05,0xF0,0xDF,0xF8,0x04,0xF0, + 0xBD,0xF8,0xFF,0xF7,0x53,0xFF,0x04,0xF0,0xC9,0xF9,0x01,0xF0,0x79,0xFD,0x01,0xF0, + 0xF1,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x02,0x68,0x3F,0x20,0x09,0x68,0x80,0x02, + 0x82,0x43,0x81,0x43,0x8A,0x42,0x01,0xD1,0x00,0x20,0x70,0x47,0x01,0x20,0x70,0x47, + 0x78,0x47,0xC0,0x46,0x24,0x20,0x9F,0xE5,0x00,0x00,0x92,0xE5,0x20,0x30,0x9F,0xE5, + 0x25,0x00,0xA0,0xE3,0x01,0x0C,0x80,0xE2,0x00,0x11,0x92,0xE7,0x80,0xC0,0x83,0xE0, + 0x01,0x00,0x50,0xE2,0xB0,0x10,0xCC,0xE1,0xFA,0xFF,0xFF,0x5A,0x1E,0xFF,0x2F,0xE1, + 0x00,0x10,0x10,0x40,0xCE,0x07,0x00,0x20,0x78,0x47,0xC0,0x46,0x20,0x30,0x9F,0xE5, + 0x20,0x20,0x9F,0xE5,0x25,0x00,0xA0,0xE3,0x01,0x0C,0x80,0xE2,0x00,0x11,0x93,0xE7, + 0x80,0xC0,0x82,0xE0,0x01,0x00,0x50,0xE2,0xB0,0x10,0xCC,0xE1,0xFA,0xFF,0xFF,0x5A, + 0x1E,0xFF,0x2F,0xE1,0xD4,0x02,0x10,0x40,0x00,0x00,0x00,0x10,0x09,0x4B,0x10,0xB4, + 0x1B,0x68,0x80,0x33,0x1B,0x7B,0x04,0x1E,0x00,0xDC,0x44,0x42,0x9C,0x42,0x06,0xDD, + 0x98,0x42,0x01,0xDD,0xC8,0x1A,0x00,0xE0,0xC8,0x18,0x02,0x04,0x12,0x0C,0x10,0xBC, + 0x10,0x00,0x70,0x47,0xC8,0x07,0x00,0x20,0xF7,0xB5,0x61,0x48,0xE6,0xB0,0x00,0x7D, + 0x00,0x28,0x03,0xD0,0x01,0x20,0x62,0x90,0x00,0x20,0x02,0xE0,0x00,0x20,0x62,0x90, + 0x01,0x20,0x61,0x90,0x5B,0x48,0x00,0x26,0x64,0x90,0x5B,0x48,0x35,0x00,0x01,0x8B, + 0x04,0x91,0x41,0x8B,0x03,0x91,0x81,0x8A,0x02,0x91,0xC1,0x8A,0x01,0x91,0x80,0x8B, + 0x60,0x90,0x56,0x48,0x00,0x7F,0x63,0x96,0x00,0x90,0x00,0x24,0x0E,0x20,0x68,0x43, + 0x65,0x90,0x07,0x19,0x21,0x00,0x28,0x00,0x01,0xF0,0x38,0xF9,0x4C,0x49,0x20,0x39, + 0x0A,0x7D,0xD2,0x07,0x2D,0xD0,0x4E,0x4A,0x12,0x79,0x00,0x2A,0x00,0x9A,0x11,0xD0, + 0x95,0x42,0x26,0xD1,0x8A,0x7D,0xA2,0x42,0x1D,0xD0,0xCA,0x7D,0xA2,0x42,0x1A,0xD0, + 0x0A,0x7E,0xA2,0x42,0x17,0xD0,0x4A,0x7E,0xA2,0x42,0x14,0xD0,0x89,0x7E,0xA1,0x42, + 0x42,0xD1,0x10,0xE0,0x94,0x42,0x14,0xD1,0x8A,0x7D,0xAA,0x42,0x0B,0xD0,0xCA,0x7D, + 0xAA,0x42,0x08,0xD0,0x0A,0x7E,0xAA,0x42,0x05,0xD0,0x4A,0x7E,0xAA,0x42,0x02,0xD0, + 0x89,0x7E,0xA9,0x42,0x30,0xD1,0x04,0x99,0x03,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C, + 0x04,0xE0,0x02,0x99,0x01,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C,0x80,0x1A,0x64,0x9B, + 0x02,0x04,0xB8,0x00,0x18,0x58,0x67,0x9B,0x12,0x0C,0x00,0x2B,0x02,0xD0,0x00,0x05, + 0x00,0x0D,0x01,0xE0,0x00,0x01,0x00,0x0D,0x66,0x9B,0x05,0x2B,0x0E,0xD8,0x90,0x42, + 0x01,0xDA,0x62,0x9A,0x02,0xE0,0x88,0x42,0x0E,0xDD,0x61,0x9A,0x21,0x00,0x28,0x00, + 0x00,0xF0,0x86,0xF8,0x05,0xA8,0x87,0x55,0x76,0x1C,0x05,0xE0,0x63,0x99,0x05,0xA8, + 0x47,0x54,0x63,0x98,0x40,0x1C,0x63,0x90,0x64,0x1C,0x0E,0x2C,0x01,0xDA,0x65,0x98, + 0x97,0xE7,0x6D,0x1C,0x15,0x2D,0x90,0xDB,0x66,0x98,0x05,0x28,0x03,0xD9,0x00,0x04, + 0x63,0x9E,0x00,0x0C,0x60,0x90,0x00,0x2E,0x25,0xDD,0x68,0x98,0x00,0x28,0x22,0xD1, + 0x00,0xF0,0x52,0xF9,0x00,0xF0,0x8C,0xF9,0x00,0xF0,0x62,0xFA,0x76,0x1E,0x14,0xD4, + 0x14,0x4C,0x05,0xAB,0x98,0x5D,0x82,0x00,0x64,0x98,0x80,0x58,0x01,0x05,0x60,0x98, + 0x09,0x0D,0x08,0x18,0x00,0x04,0x00,0x0C,0xA0,0x42,0x00,0xD9,0x20,0x00,0x00,0x04, + 0x08,0x43,0x64,0x99,0x76,0x1E,0x88,0x50,0xEC,0xD5,0x00,0xF0,0x2D,0xF9,0x00,0xF0, + 0x6F,0xF9,0x00,0xF0,0x45,0xFA,0x69,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x20,0x93,0x00,0x00,0xD4,0x02,0x10,0x40,0xE0,0x95,0x00,0x00,0x60,0x06,0x00,0x20, + 0x14,0x07,0x00,0x20,0xFF,0x0F,0x00,0x00,0x7F,0xB5,0x01,0x25,0x6D,0x07,0x28,0x68, + 0x02,0x28,0x27,0xD1,0xAC,0x68,0x01,0xAA,0x20,0x05,0x00,0x0D,0x02,0x90,0x20,0x02, + 0x00,0x0D,0x03,0x90,0x02,0xA9,0x03,0xA8,0x6B,0x46,0x04,0xF0,0xF9,0xF9,0x40,0x1C, + 0x18,0xD0,0x01,0x98,0x03,0x99,0x40,0x00,0x40,0x18,0x03,0x21,0xFE,0xF7,0x6E,0xF9, + 0x00,0x05,0x06,0x0A,0x09,0x48,0x02,0x99,0x04,0x40,0x00,0x98,0x26,0x43,0x40,0x00, + 0x40,0x18,0x03,0x21,0xFE,0xF7,0x62,0xF9,0x00,0x05,0x00,0x0D,0x31,0x0B,0x09,0x03, + 0x08,0x43,0xA8,0x60,0x7F,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xFF,0x0F,0x00,0xFF, + 0x30,0xB4,0x0E,0x25,0x68,0x43,0x14,0x4C,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06, + 0x09,0x0E,0x00,0x0A,0x00,0x2B,0x07,0xD0,0x00,0x2A,0x02,0xD0,0xC9,0x18,0xC0,0x18, + 0x0F,0xE0,0xC0,0x1A,0xC9,0x1A,0x0C,0xE0,0x00,0x2A,0x05,0xD0,0x88,0x42,0x01,0xDD, + 0x49,0x1C,0x06,0xE0,0x40,0x1C,0x04,0xE0,0x88,0x42,0x01,0xDD,0x40,0x1E,0x00,0xE0, + 0x49,0x1E,0x4A,0x1E,0xFF,0x2A,0x05,0xD2,0x42,0x1E,0xFF,0x2A,0x02,0xD2,0x00,0x02, + 0x08,0x43,0x60,0x53,0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0xF0,0xB5,0x8B,0xB0, + 0x0E,0x27,0x15,0x20,0x04,0xA9,0x81,0xC1,0x06,0x90,0x53,0x48,0x53,0x49,0x0A,0x90, + 0x80,0x7B,0x09,0x91,0xC2,0x07,0x0A,0xD0,0x80,0x07,0x03,0xD5,0x0D,0x20,0x03,0x21, + 0x05,0x90,0x02,0xE0,0x14,0x20,0x00,0x21,0x04,0x90,0x09,0x98,0x01,0x76,0x4C,0x48, + 0x0A,0x22,0x01,0x8C,0x40,0x8C,0x51,0x43,0x50,0x43,0x00,0x04,0x00,0x0C,0x01,0x90, + 0x05,0x98,0x0E,0x04,0x36,0x0C,0x00,0x28,0x7E,0xD0,0x04,0x98,0x00,0x28,0x7F,0xD0, + 0x05,0x98,0x41,0x00,0x30,0x00,0xFD,0xF7,0xC9,0xFF,0x05,0x04,0x2D,0x0C,0x00,0x24, + 0xBF,0x1C,0x0A,0xE0,0x30,0x00,0x60,0x43,0x05,0x99,0xFD,0xF7,0xBF,0xFF,0x3D,0x4A, + 0x61,0x00,0x40,0x19,0x89,0x18,0x64,0x1C,0x08,0x84,0xBC,0x42,0xF2,0xDB,0x04,0x98, + 0x41,0x00,0x01,0x98,0xFD,0xF7,0xB2,0xFF,0x06,0x9F,0x06,0x04,0x36,0x0C,0x00,0x24, + 0xBF,0x1C,0x0B,0xE0,0x01,0x98,0x04,0x99,0x60,0x43,0xFD,0xF7,0xA7,0xFF,0x31,0x4A, + 0x81,0x19,0x60,0x00,0x80,0x18,0x40,0x30,0x64,0x1C,0x81,0x82,0xBC,0x42,0xF1,0xDB, + 0x0A,0x98,0x80,0x7B,0xC0,0x07,0x4B,0xD0,0x00,0x24,0x43,0xE0,0x29,0x4A,0x31,0x21, + 0x10,0x19,0x49,0x01,0x40,0x18,0x41,0x7F,0x0A,0x98,0x80,0x7B,0x80,0x07,0x03,0xD5, + 0x05,0x98,0x02,0x95,0x03,0x91,0x03,0xE0,0x08,0x00,0x04,0x99,0x02,0x96,0x03,0x91, + 0x20,0x49,0x40,0x00,0x40,0x18,0x08,0x90,0x00,0x8C,0x0A,0x21,0x40,0x1B,0xFD,0xF7, + 0x7D,0xFF,0x1C,0x4A,0xE1,0x00,0x89,0x18,0x03,0x22,0x52,0x02,0x8F,0x18,0x38,0x82, + 0x03,0x98,0x18,0x49,0x40,0x00,0x40,0x18,0x40,0x30,0x07,0x90,0x80,0x8A,0x0A,0x21, + 0x80,0x1B,0xFD,0xF7,0x6B,0xFF,0x78,0x82,0x08,0x98,0x0A,0x21,0x00,0x8C,0x40,0x19, + 0xFE,0xF7,0x94,0xF8,0xB8,0x82,0x07,0x98,0x0A,0x21,0x80,0x8A,0x80,0x19,0xFE,0xF7, + 0x8D,0xF8,0xF8,0x82,0x02,0x98,0x0A,0x21,0x40,0x00,0xFE,0xF7,0x87,0xF8,0x09,0x99, + 0x64,0x1C,0x48,0x83,0x0A,0x98,0x00,0xE0,0x02,0xE0,0xC0,0x7B,0xA0,0x42,0xB5,0xDC, + 0x0B,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x40,0x06,0x00,0x20,0x60,0x06,0x00,0x20, + 0x00,0x93,0x00,0x00,0x40,0x00,0x00,0x20,0x02,0x49,0x08,0x68,0x04,0x22,0x90,0x43, + 0x08,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x04,0x22,0x11,0x43, + 0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x49,0x08,0x49,0x00, + 0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x01,0x22,0x11,0x43, + 0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0xFF,0x20,0x06,0x49,0x06,0x4A,0x6A,0x30, + 0x03,0xE0,0x0B,0x88,0x13,0x80,0x92,0x1C,0x09,0x1D,0x03,0x00,0x40,0x1E,0x00,0x2B, + 0xF7,0xDC,0x70,0x47,0xD6,0x02,0x10,0x40,0xD2,0x02,0x00,0x10,0xFF,0x20,0x06,0x49, + 0x06,0x4A,0x6A,0x30,0x03,0xE0,0x13,0x88,0x92,0x1C,0x0B,0x80,0x09,0x1D,0x03,0x00, + 0x40,0x1E,0x00,0x2B,0xF7,0xDC,0x70,0x47,0xD6,0x02,0x10,0x40,0xD2,0x02,0x00,0x10, + 0x01,0x49,0xC8,0x68,0xC8,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x04,0x49,0x40,0x22, + 0x00,0x28,0x48,0x6A,0x01,0xD0,0x10,0x43,0x00,0xE0,0x90,0x43,0x48,0x62,0x70,0x47, + 0x80,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x08,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0xB5,0x22,0x10,0xB5,0x07,0x49,0x08,0x48,0x92,0x00,0x02,0xF0, + 0xFD,0xFE,0x07,0x48,0x07,0x4A,0xC0,0x8E,0x01,0x04,0x01,0x43,0x06,0x48,0x02,0xF0, + 0x17,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x9D,0x00,0x00,0x00,0x00,0x10,0x40, + 0x00,0x93,0x00,0x00,0xA4,0x05,0x00,0x00,0xD4,0x02,0x10,0x40,0x06,0x49,0x00,0x28, + 0x08,0x69,0x03,0xD0,0x13,0x22,0x12,0x06,0x10,0x43,0x02,0xE0,0x03,0x22,0x12,0x06, + 0x90,0x43,0x08,0x61,0x70,0x47,0x00,0x00,0x40,0xA1,0x00,0x40,0x02,0x48,0x81,0x6B, + 0x49,0x08,0x49,0x00,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x02,0x48,0x81,0x6B, + 0x01,0x22,0x11,0x43,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x10,0xB5,0x0A,0x49, + 0x0A,0x48,0xFC,0x22,0x02,0xF0,0xC2,0xFE,0xFF,0x22,0x09,0x49,0x09,0x48,0xF1,0x32, + 0x02,0xF0,0xBC,0xFE,0x71,0x22,0x08,0x49,0x08,0x48,0xD2,0x00,0x02,0xF0,0xB6,0xFE, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x04,0x96,0x00,0x00,0x04,0x90,0x00,0x40, + 0x00,0x97,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x99,0x00,0x00,0x78,0x08,0x10,0x40, + 0x04,0x49,0x02,0x22,0x00,0x28,0x08,0x68,0x01,0xD0,0x10,0x43,0x00,0xE0,0x90,0x43, + 0x08,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x03,0x48,0x41,0x68,0x01,0x22,0x12,0x04, + 0x11,0x43,0x41,0x60,0x70,0x47,0x00,0x00,0x00,0xA0,0x00,0x40,0x02,0x48,0x01,0x68, + 0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x70,0xB5,0x1A,0x4C, + 0x20,0x68,0x40,0x08,0x40,0x00,0x20,0x60,0x18,0x48,0xA6,0x15,0x05,0x04,0x2D,0x0C, + 0x00,0x22,0x31,0x00,0x28,0x00,0xFD,0xF7,0xA7,0xFF,0x32,0x00,0x21,0x00,0x28,0x00, + 0x00,0x23,0xFD,0xF7,0xA9,0xFF,0x12,0x48,0x75,0x00,0x04,0x04,0x24,0x0C,0x00,0x22, + 0x29,0x00,0x20,0x00,0xFD,0xF7,0x98,0xFF,0x0E,0x49,0x2A,0x00,0x20,0x00,0x00,0x23, + 0xFD,0xF7,0x9A,0xFF,0x0C,0x48,0x6D,0x00,0x04,0x04,0x24,0x0C,0x00,0x22,0x29,0x00, + 0x20,0x00,0xFD,0xF7,0x89,0xFF,0x09,0x49,0x2A,0x00,0x20,0x00,0x00,0x23,0xFD,0xF7, + 0x8B,0xFF,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40,0x00,0x96,0x00,0x00, + 0x00,0x97,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x99,0x00,0x00,0x78,0x08,0x10,0x40, + 0x04,0x48,0x10,0xB5,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0xFE,0xF7,0x45,0xF8,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40,0xF1,0xB5,0x51,0x48,0x82,0xB0,0x00,0x68, + 0x50,0x4E,0x60,0x30,0x81,0x8A,0x37,0x00,0x00,0x25,0x01,0x91,0x80,0x7D,0x01,0x24, + 0xFF,0x37,0x01,0x00,0x41,0x43,0x08,0x06,0x00,0x0E,0xC1,0x37,0x00,0x90,0x12,0xE0, + 0x0A,0x20,0x60,0x43,0x0B,0x21,0x80,0x19,0x89,0x01,0x41,0x18,0x09,0x7C,0x00,0x29, + 0x08,0xD0,0x45,0x49,0x40,0x18,0x01,0xF0,0x27,0xF9,0x00,0x28,0x02,0xD0,0x6D,0x1C, + 0x2D,0x06,0x2D,0x0E,0x64,0x1C,0xB8,0x7A,0xA0,0x42,0xE9,0xDA,0x3F,0x48,0x03,0x89, + 0x81,0x89,0x5A,0x1A,0x00,0x2A,0x00,0xDC,0xCA,0x1A,0x41,0x89,0xC3,0x89,0x12,0x04, + 0x12,0x0C,0xCC,0x1A,0x00,0x2C,0x00,0xDC,0x5C,0x1A,0x01,0x7D,0x23,0x04,0x1B,0x0C, + 0x00,0x29,0x04,0xD0,0xC1,0x7D,0xC8,0x29,0x01,0xD2,0x49,0x1C,0xC1,0x75,0x33,0x49, + 0x20,0x39,0x8C,0x7E,0x14,0x2C,0x04,0xD2,0x0C,0x7F,0x00,0x2C,0x01,0xD0,0x01,0x24, + 0x4C,0x77,0x14,0x2A,0x01,0xD8,0x14,0x2B,0x04,0xD9,0xCC,0x7E,0xC8,0x2C,0x01,0xD2, + 0x64,0x1C,0xCC,0x76,0x02,0x2D,0x09,0xD2,0x14,0x2A,0x07,0xD2,0x14,0x2B,0x05,0xD2, + 0x12,0x24,0x04,0x5F,0x04,0x2C,0x07,0xDA,0x64,0x1C,0x04,0xE0,0x12,0x24,0x04,0x5F, + 0xE7,0x1C,0x01,0xDD,0x64,0x1E,0x44,0x82,0xC4,0x7D,0x01,0x2C,0x01,0xD9,0x78,0x21, + 0x10,0xE0,0x02,0x2D,0x0F,0xD2,0x12,0x24,0x04,0x5F,0x02,0x2C,0x0B,0xDD,0xC9,0x7E, + 0x14,0x29,0x08,0xD2,0x51,0x3A,0x8B,0x2A,0x02,0xD3,0x51,0x3B,0x8B,0x2B,0x02,0xD2, + 0x77,0x21,0xC9,0x43,0x01,0x82,0x00,0x21,0x02,0x2D,0x81,0x75,0x0E,0xD2,0x10,0x21, + 0x41,0x5E,0x78,0x31,0x04,0xD1,0x41,0x7D,0xC8,0x29,0x01,0xD2,0x49,0x1C,0x41,0x75, + 0x41,0x7D,0x49,0x1E,0x02,0x29,0x01,0xD2,0x01,0x21,0x81,0x75,0x10,0x21,0x41,0x5E, + 0x01,0x98,0x09,0x18,0x08,0x00,0x48,0x43,0x02,0x99,0x00,0x29,0x05,0xD1,0x31,0x79, + 0x01,0x29,0x02,0xD0,0x00,0x99,0xFD,0xF7,0x79,0xFD,0xFE,0xBC,0x08,0xBC,0x18,0x47, + 0xC8,0x07,0x00,0x20,0x40,0x00,0x00,0x20,0xD6,0x02,0x00,0x00,0xC0,0x03,0x00,0x20, + 0x78,0x47,0xC0,0x46,0xD2,0x10,0xA0,0xE3,0x01,0x00,0xB0,0xE1,0x01,0x10,0x41,0xE2, + 0xFC,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x11,0x10,0xA0,0xE3, + 0x01,0x00,0xB0,0xE1,0x01,0x10,0x41,0xE2,0xFC,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1, + 0x02,0x48,0x41,0x6B,0x01,0x22,0x11,0x43,0x41,0x63,0x70,0x47,0x00,0x70,0x00,0x40, + 0x70,0x47,0x00,0x00,0x10,0xB5,0xFF,0xF7,0x4B,0xFE,0x04,0x49,0x08,0x68,0x06,0x22, + 0x90,0x43,0x08,0x60,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x90,0x00,0x40, + 0x13,0x48,0x10,0xB5,0xC0,0x68,0x00,0x28,0x1F,0xD0,0x01,0x06,0x09,0x0F,0x03,0x29, + 0x01,0xD0,0x04,0x29,0x02,0xD1,0x00,0xF0,0xF1,0xF8,0x08,0xE0,0xF0,0x21,0x01,0x40, + 0x20,0x29,0x02,0xD2,0x00,0xF0,0x1A,0xF8,0x01,0xE0,0x03,0xF0,0x11,0xFD,0x09,0x48, + 0x82,0x68,0x81,0x15,0x8A,0x43,0x82,0x60,0x82,0x68,0x0A,0x43,0x82,0x60,0x06,0x48, + 0x00,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0,0xAF,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x40,0x14,0x07,0x00,0x20,0xF1,0xB5,0x61,0x48, + 0x2E,0x21,0x90,0xB0,0x41,0x60,0x41,0x69,0x89,0x06,0xFC,0xD4,0x10,0x99,0x01,0x26, + 0x76,0x07,0xF1,0x63,0x84,0x69,0x5B,0x48,0x40,0x68,0x80,0x07,0xFB,0xD5,0x03,0xF0, + 0xE7,0xFC,0x59,0x4D,0x28,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0,0x95,0xFD,0x10,0x9B, + 0x00,0x21,0x01,0x20,0x9B,0x1E,0xFF,0x27,0x4A,0x1E,0x40,0x03,0x04,0xF0,0xF4,0xFD, + 0x1E,0x16,0x40,0x40,0x40,0x40,0x13,0x40,0x40,0x42,0x10,0x40,0x40,0x58,0x40,0x68, + 0x4F,0x6F,0x76,0x7D,0x40,0x84,0x40,0x8B,0x92,0x4F,0x40,0x40,0x40,0x40,0x99,0x40, + 0x0B,0x20,0xF0,0x63,0x4D,0xE0,0x00,0xF0,0x24,0xF9,0x29,0xE0,0x03,0x21,0x09,0x07, + 0xCA,0x60,0xFE,0xF7,0x47,0xF9,0x00,0xF0,0x2B,0xFE,0x44,0x48,0x44,0x4A,0x41,0x68, + 0x52,0x68,0x91,0x42,0x1C,0xD0,0x43,0x49,0x17,0x22,0xC9,0x8B,0x52,0x01,0x80,0x18, + 0x49,0x1C,0xC1,0x83,0xFD,0xF7,0x5E,0xFA,0xA8,0x78,0xC0,0x07,0x01,0xD0,0xFF,0xF7, + 0x55,0xFE,0xA8,0x78,0x80,0x07,0x01,0xD5,0x04,0xF0,0x0C,0xFD,0x3A,0x49,0x40,0x22, + 0x68,0x46,0x02,0xF0,0xD3,0xFC,0x01,0x20,0x08,0x90,0x68,0x46,0x04,0xF0,0x1A,0xFD, + 0xF7,0x63,0x1E,0xE0,0x32,0x48,0xA0,0x30,0x00,0x7E,0x00,0x28,0xF8,0xD0,0x00,0x2C, + 0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x04,0xF0,0xD8,0xFA,0xF0,0xE7,0x03,0x21, + 0x09,0x07,0xCA,0x60,0xFE,0xF7,0x0E,0xF9,0x10,0x98,0xFE,0xF7,0x5F,0xF8,0x08,0xE0, + 0x03,0x21,0x09,0x07,0xCA,0x60,0xFE,0xF7,0x05,0xF9,0x00,0xF0,0x5D,0xFD,0x00,0xF0, + 0xF3,0xF8,0x20,0x48,0x41,0x68,0x41,0x60,0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x2C,0x02,0xD0,0x01,0x20,0x68,0x71,0xD2,0xE7,0x69,0x71,0xD0,0xE7,0x00,0x2C, + 0x02,0xD0,0x01,0x20,0xA8,0x71,0xCB,0xE7,0xA9,0x71,0xC9,0xE7,0x00,0x2C,0x02,0xD0, + 0x01,0x20,0xE8,0x71,0xC4,0xE7,0xE9,0x71,0xC2,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20, + 0x28,0x72,0xBD,0xE7,0x29,0x72,0xBB,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xA8,0x72, + 0xB6,0xE7,0xA9,0x72,0xB4,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xE8,0x72,0xAF,0xE7, + 0xE9,0x72,0xAD,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x73,0xA8,0xE7,0x29,0x73, + 0xA6,0xE7,0x00,0x2C,0x01,0xD0,0x6C,0x73,0x00,0xE0,0x69,0x73,0x04,0xF0,0xE6,0xF8, + 0x9E,0xE7,0x00,0x00,0x00,0x40,0x00,0x30,0x14,0x07,0x00,0x20,0x00,0x00,0x00,0x10, + 0x00,0x93,0x00,0x00,0xE0,0x95,0x00,0x00,0xC0,0x92,0x00,0x00,0xF0,0xB5,0x34,0x4C, + 0x30,0x38,0x34,0x4A,0x34,0x4E,0x35,0x4F,0x35,0x49,0x25,0x68,0x03,0x00,0x04,0xF0, + 0x3B,0xFD,0x12,0x0A,0x0C,0x0E,0x12,0x16,0x1A,0x1C,0x18,0x1E,0x20,0x30,0x3B,0x16, + 0x3E,0x43,0x47,0x4D,0x50,0x0A,0xCD,0x61,0x21,0xE0,0x60,0x68,0x01,0xE0,0x2D,0x48, + 0xC0,0x6B,0xC8,0x61,0x1B,0xE0,0x10,0x8C,0x52,0x8C,0x00,0x04,0x34,0xE0,0xCE,0x61, + 0x15,0xE0,0xE0,0x68,0xF5,0xE7,0x50,0x68,0xF3,0xE7,0xA0,0x68,0xF1,0xE7,0xD0,0x7B, + 0xEF,0xE7,0x25,0x48,0x03,0x7F,0x10,0x7D,0x52,0x7D,0xC4,0x07,0xE4,0x09,0x80,0x07, + 0x12,0x04,0xC0,0x0F,0x00,0x02,0x23,0x43,0x02,0x43,0x13,0x43,0xCB,0x61,0x5F,0x22, + 0x22,0xE0,0x93,0x7D,0x50,0x7E,0x1B,0x06,0x18,0x43,0xD3,0x7D,0x12,0x7E,0x1B,0x04, + 0x12,0x02,0x13,0x43,0x18,0x43,0xD4,0xE7,0x90,0x7E,0x00,0x06,0xD1,0xE7,0x17,0x48, + 0x00,0x69,0xC0,0x07,0xC0,0x0F,0xCC,0xE7,0x38,0x69,0x40,0x08,0x00,0x02,0xC8,0xE7, + 0x13,0x48,0xA2,0x69,0xC0,0x8B,0x00,0x04,0x10,0x43,0xC2,0xE7,0x38,0x69,0x40,0x08, + 0xBF,0xE7,0x10,0x48,0x40,0x69,0xBC,0xE7,0x48,0x69,0x10,0x42,0xFC,0xD1,0x03,0xF0, + 0xC7,0xFB,0xFF,0x20,0x01,0x21,0x49,0x07,0xC8,0x63,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0xC0,0x92,0x00,0x00,0x00,0x93,0x00,0x00,0x15,0x00,0x0E,0x00,0x00,0x20,0x00,0x40, + 0x00,0x40,0x00,0x30,0xC0,0x0F,0x00,0x20,0x60,0x06,0x00,0x20,0x00,0x96,0x00,0x00, + 0xE0,0x95,0x00,0x00,0x14,0x07,0x00,0x20,0x10,0xB5,0x00,0x20,0xFF,0xF7,0xC6,0xFC, + 0x01,0x20,0xFF,0xF7,0x35,0xFD,0x01,0x20,0xFF,0xF7,0xF0,0xFC,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x70,0xB5,0x03,0x24,0x24,0x07,0xE5,0x68,0x00,0x20,0xC0,0x43,0xE0,0x60, + 0xFE,0xF7,0x3E,0xF8,0x06,0x00,0xCB,0x20,0xC0,0x01,0xFE,0xF7,0x1B,0xF8,0x03,0xF0, + 0x53,0xFA,0x00,0xF0,0x9B,0xFC,0x03,0xF0,0x43,0xFA,0x30,0x00,0xFE,0xF7,0x44,0xF8, + 0xE5,0x60,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x03,0x21,0x10,0xB5,0xC0,0x43, + 0x09,0x07,0xC8,0x60,0x03,0xF0,0x40,0xFA,0xFF,0xF7,0x20,0xFD,0x05,0x48,0xC1,0x68, + 0xC9,0x07,0xFC,0xD0,0x01,0x20,0x40,0x07,0x04,0xF0,0x66,0xFC,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0x90,0x00,0x40,0xF8,0xB5,0x23,0x48,0x00,0x68,0x00,0x88, + 0xC0,0x06,0x3E,0xD5,0x21,0x4E,0x30,0x7A,0x00,0x28,0x3A,0xD0,0x70,0x7A,0x00,0x28, + 0x37,0xD0,0x01,0x25,0x32,0xE0,0x71,0x7A,0x1D,0x4F,0x09,0x23,0x8C,0x46,0x0A,0x21, + 0x69,0x43,0xCC,0x19,0x01,0x20,0x9B,0x01,0xFF,0x34,0xC1,0x34,0x23,0xE0,0x0A,0x22, + 0x42,0x43,0xD2,0x19,0xD2,0x18,0x21,0x7B,0x92,0x7B,0x91,0x42,0x1A,0xD1,0x0A,0x22, + 0x50,0x43,0xC0,0x19,0xC7,0x18,0x0E,0x21,0x10,0x20,0x61,0x5E,0x38,0x5E,0x12,0x22, + 0xBA,0x5E,0x08,0x1A,0x10,0x21,0x61,0x5E,0x89,0x1A,0x00,0x91,0x3A,0x8A,0xE1,0x89, + 0xFF,0xF7,0x0C,0xFA,0xE0,0x81,0x7A,0x8A,0x21,0x8A,0x00,0x98,0xFF,0xF7,0x06,0xFA, + 0x20,0x82,0x02,0xE0,0x40,0x1C,0x84,0x45,0xD9,0xDA,0x6D,0x1C,0x30,0x7A,0xA8,0x42, + 0xC9,0xDA,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xC8,0x07,0x00,0x20,0x00,0x02,0x00,0x20, + 0x40,0x00,0x00,0x20,0xF0,0xB5,0x00,0x20,0xB1,0xB0,0x10,0x90,0x0F,0x90,0x0E,0x90, + 0x0D,0x90,0xFC,0x48,0x01,0x8C,0x0A,0x91,0x40,0x8C,0x09,0x90,0xFA,0x48,0x02,0x68, + 0x13,0x00,0x60,0x33,0x59,0x7F,0x18,0x7F,0x08,0x91,0x11,0x00,0x80,0x31,0x8C,0x7A, + 0x07,0x94,0x4C,0x7A,0x06,0x94,0x12,0x88,0x12,0x07,0x24,0xD5,0xDA,0x7F,0x42,0x43, + 0x24,0x92,0x0A,0x78,0x42,0x43,0x23,0x92,0x4A,0x78,0x42,0x43,0x22,0x92,0x8A,0x78, + 0x42,0x43,0x21,0x92,0xCA,0x78,0x42,0x43,0x20,0x92,0x0A,0x79,0x42,0x43,0x1F,0x92, + 0x4A,0x79,0x42,0x43,0x1E,0x92,0x8A,0x79,0x42,0x43,0x1D,0x92,0xCA,0x79,0x42,0x43, + 0x1C,0x92,0x09,0x7A,0x41,0x43,0xE5,0x48,0x1B,0x91,0x30,0x90,0x00,0x7A,0x00,0x28, + 0x05,0xD1,0x00,0xF0,0xE5,0xFE,0x31,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20, + 0x25,0x90,0xDE,0x48,0xE0,0x38,0x2F,0x90,0xDD,0x48,0x2E,0x90,0xDD,0x4D,0x25,0x98, + 0x1B,0x21,0x28,0x18,0x49,0x01,0x2D,0x90,0x40,0x18,0x04,0x78,0x00,0x2C,0x0F,0xD0, + 0x07,0x98,0x00,0x28,0x08,0xD1,0x0A,0x20,0x60,0x43,0x40,0x19,0xFF,0x30,0xD3,0x30, + 0x00,0xF0,0x02,0xFE,0x00,0x28,0x03,0xD0,0x2E,0x98,0x80,0x7D,0x00,0x28,0x03,0xD0, + 0x25,0x98,0xFF,0xF7,0xE5,0xF8,0xC2,0xE2,0x25,0x99,0x1D,0x27,0x07,0x20,0x7F,0x01, + 0x4E,0x00,0x18,0x21,0x41,0x43,0x49,0x19,0x89,0x19,0xCA,0x19,0x93,0x88,0x93,0x83, + 0x23,0x22,0x52,0x01,0x8A,0x18,0x09,0x23,0x92,0x8B,0xDB,0x01,0xC9,0x18,0x40,0x1E, + 0x8A,0x82,0xEE,0xD5,0x0A,0x20,0x44,0x43,0x65,0x19,0x2C,0x95,0xFF,0x35,0xC1,0x35, + 0xEA,0x89,0x0A,0x98,0x40,0x1E,0x82,0x42,0xDD,0xDC,0x2A,0x8A,0x09,0x98,0x40,0x1E, + 0x82,0x42,0xD8,0xDC,0xBB,0x48,0xE9,0x89,0x34,0x18,0xE0,0x19,0x2B,0x90,0x23,0x23, + 0x81,0x80,0x5B,0x01,0x29,0x8A,0xE0,0x18,0x2A,0x90,0x81,0x83,0x00,0x20,0x01,0x22, + 0xD2,0x02,0x01,0x00,0x05,0x90,0x07,0x20,0x04,0x92,0x18,0x23,0x43,0x43,0xB1,0x4F, + 0xDB,0x19,0x9B,0x19,0x1D,0x27,0x7F,0x01,0xDF,0x19,0x29,0x93,0x04,0x23,0xFB,0x5E, + 0xBC,0x46,0x00,0x2B,0x0B,0xDD,0x05,0x9F,0xBB,0x42,0x02,0xDD,0x67,0x46,0xBF,0x88, + 0x05,0x97,0x04,0x9F,0xBB,0x42,0x02,0xDA,0x63,0x46,0x9B,0x88,0x04,0x93,0x29,0x9B, + 0x23,0x27,0x7F,0x01,0xDF,0x19,0x1C,0x23,0xFB,0x5E,0x00,0x2B,0x05,0xDD,0x8B,0x42, + 0x00,0xDD,0xB9,0x8B,0x93,0x42,0x00,0xDA,0xBA,0x8B,0x40,0x1E,0xD5,0xD5,0x04,0x9B, + 0x05,0x98,0xC0,0x1A,0xF0,0x28,0x02,0xDC,0x8B,0x1A,0xF0,0x2B,0x02,0xDD,0x2E,0x9F, + 0x01,0x23,0x3B,0x75,0x14,0x28,0x04,0xDA,0x88,0x1A,0x14,0x28,0x01,0xDA,0x01,0x20, + 0x00,0xE0,0x00,0x20,0x2F,0x99,0x48,0x74,0x2D,0x98,0x07,0x21,0xC9,0x01,0x40,0x18, + 0x28,0x90,0x00,0x7E,0x01,0x28,0x1C,0xD9,0x2B,0x99,0x04,0x20,0x08,0x5E,0x0A,0x00, + 0x1C,0x21,0x51,0x5E,0x42,0x1A,0x00,0x2A,0x00,0xDC,0x0A,0x1A,0x10,0x04,0x00,0x14, + 0x0C,0x90,0x2A,0x98,0x1C,0x21,0x41,0x5E,0x09,0x20,0xC0,0x01,0x20,0x18,0x14,0x22, + 0x82,0x5E,0x88,0x1A,0x00,0x28,0x00,0xDC,0x50,0x1A,0x00,0x04,0x00,0x14,0x0B,0x90, + 0x02,0xE0,0x64,0x20,0x0B,0x90,0x0C,0x90,0x2B,0x98,0x1C,0x21,0x41,0x5E,0x02,0x00, + 0x04,0x20,0x10,0x5E,0x03,0xF0,0x24,0xFA,0x12,0x90,0x09,0x20,0xC0,0x01,0x20,0x18, + 0x14,0x21,0x41,0x5E,0x2A,0x9A,0x1C,0x20,0x10,0x5E,0x03,0xF0,0x19,0xFA,0x11,0x90, + 0x0F,0x20,0x80,0x01,0x20,0x18,0x14,0x21,0x41,0x5E,0x12,0x98,0x03,0xF0,0x10,0xFA, + 0x14,0x90,0x25,0x20,0x40,0x01,0x20,0x18,0x0C,0x21,0x41,0x5E,0x11,0x98,0x03,0xF0, + 0x07,0xFA,0x13,0x90,0x01,0x20,0x80,0x02,0x27,0x18,0x1F,0x20,0x40,0x01,0x20,0x18, + 0x0C,0x21,0x41,0x5E,0x04,0x22,0xBA,0x5E,0x14,0x98,0x03,0xF0,0xFB,0xF9,0x00,0x04, + 0x00,0x14,0x16,0x90,0x13,0x20,0x80,0x01,0x20,0x18,0x1C,0x22,0x04,0x21,0x82,0x5E, + 0x41,0x5E,0x13,0x98,0x03,0xF0,0xEE,0xF9,0x00,0x04,0x00,0x14,0x15,0x90,0x21,0x20, + 0x40,0x01,0x20,0x18,0x14,0x22,0x82,0x5E,0x1C,0x21,0x79,0x5E,0x16,0x98,0x03,0xF0, + 0xE1,0xF9,0x00,0x04,0x00,0x14,0x18,0x90,0x05,0x20,0x00,0x02,0x20,0x18,0x0C,0x22, + 0x82,0x5E,0x27,0x20,0x40,0x01,0x20,0x18,0x14,0x21,0x41,0x5E,0x15,0x98,0x03,0xF0, + 0xD1,0xF9,0x00,0x04,0x00,0x14,0x17,0x90,0x2A,0x98,0x04,0x22,0x82,0x5E,0x11,0x20, + 0x80,0x01,0x20,0x18,0x0C,0x21,0x41,0x5E,0x18,0x98,0x03,0xF0,0xC3,0xF9,0x00,0x04, + 0x00,0x14,0x1A,0x90,0x29,0x20,0x40,0x01,0x20,0x18,0x1C,0x22,0x04,0x21,0x82,0x5E, + 0x41,0x5E,0x17,0x98,0x03,0xF0,0xB6,0xF9,0x00,0x04,0x00,0x14,0x19,0x90,0x0B,0x99, + 0x0C,0x98,0x00,0xF0,0xB7,0xFF,0x3F,0x4F,0x01,0x21,0x18,0x22,0x4A,0x43,0xD2,0x19, + 0x0B,0x23,0x92,0x19,0xDB,0x01,0xD2,0x18,0x93,0x88,0x49,0x1E,0x93,0x83,0xF4,0xD5, + 0x0B,0x21,0xC9,0x01,0x61,0x18,0x88,0x80,0x2D,0x9A,0x2B,0x21,0x49,0x01,0x57,0x18, + 0x3A,0x7E,0x00,0x20,0x00,0x2A,0x94,0x46,0x0D,0xDB,0x18,0x21,0x13,0x00,0x4B,0x43, + 0x30,0x49,0x59,0x18,0x8B,0x19,0x0B,0x21,0xC9,0x01,0x5B,0x18,0x04,0x21,0x59,0x5E, + 0x08,0x18,0x52,0x1E,0xF1,0xD5,0x61,0x46,0x49,0x1C,0xFD,0xF7,0x7F,0xF9,0x23,0x99, + 0x06,0x00,0x88,0x42,0x01,0xDC,0x01,0x20,0x0F,0xE0,0x21,0x98,0x86,0x42,0x01,0xDC, + 0x02,0x20,0x0A,0xE0,0x1F,0x98,0x86,0x42,0x01,0xDC,0x03,0x20,0x05,0xE0,0x1D,0x98, + 0x86,0x42,0x01,0xDC,0x04,0x20,0x00,0xE0,0x05,0x20,0x39,0x7B,0x40,0x1A,0x08,0x99, + 0x49,0x42,0x00,0x28,0x0B,0xDD,0x15,0x20,0x80,0x01,0x20,0x18,0x14,0x22,0x82,0x5E, + 0x08,0x9B,0x9A,0x42,0x01,0xD1,0x00,0x22,0x0A,0xE0,0x52,0x1C,0x08,0xE0,0x00,0x28, + 0x15,0x48,0x07,0xDA,0x20,0x18,0x14,0x22,0x82,0x5E,0x8A,0x42,0xF3,0xD0,0x52,0x1E, + 0x82,0x82,0x0A,0xE0,0x22,0x18,0x14,0x20,0x10,0x5E,0x00,0x28,0x01,0xDD,0x40,0x1E, + 0x02,0xE0,0x00,0x28,0x01,0xDA,0x40,0x1C,0x90,0x82,0x0B,0x48,0x22,0x18,0x14,0x20, + 0x10,0x5E,0x08,0x9A,0x90,0x42,0x11,0xD1,0x3A,0x7B,0x05,0x2A,0x0E,0xD2,0x52,0x1C, + 0x3A,0x73,0x12,0xE0,0x00,0x93,0x00,0x00,0xC8,0x07,0x00,0x20,0x00,0x02,0x00,0x20, + 0xC0,0x03,0x00,0x20,0x40,0x00,0x00,0x20,0x40,0x05,0x00,0x00,0x88,0x42,0x04,0xD1, + 0x38,0x7B,0x01,0x28,0x01,0xD9,0x40,0x1E,0x38,0x73,0x28,0x98,0x1A,0x9A,0x00,0x7E, + 0x19,0x9C,0x01,0x00,0x27,0x90,0x26,0x90,0x10,0x00,0xFD,0xF7,0x17,0xF9,0x10,0x90, + 0x0E,0x90,0x26,0x99,0x20,0x00,0xFD,0xF7,0x11,0xF9,0x0F,0x90,0x0D,0x90,0x38,0x7B, + 0x01,0x28,0x27,0xD1,0x0D,0xAA,0x0E,0xA9,0x6B,0x46,0x06,0xC3,0x19,0x9B,0x1A,0x9A, + 0x27,0x98,0x09,0x21,0x03,0xF0,0xBC,0xFD,0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0, + 0x28,0x98,0x17,0x9B,0x00,0x7E,0x18,0x9A,0x07,0x21,0x03,0xF0,0xB1,0xFD,0x3C,0x20, + 0x6B,0x46,0x18,0x5E,0x38,0x21,0x59,0x5E,0x34,0x22,0x9A,0x5E,0x01,0xAC,0x07,0xC4, + 0x00,0x22,0x10,0xAB,0x9A,0x5E,0x2C,0x98,0x00,0x92,0xFF,0x30,0x23,0x9B,0x24,0x9A, + 0xCD,0x30,0x9B,0xE0,0x02,0x28,0x27,0xD1,0x0D,0xAA,0x0E,0xA9,0x6B,0x46,0x06,0xC3, + 0x17,0x9B,0x18,0x9A,0x27,0x98,0x07,0x21,0x03,0xF0,0x92,0xFD,0x0F,0xAA,0x10,0xA9, + 0x68,0x46,0x06,0xC0,0x28,0x98,0x15,0x9B,0x00,0x7E,0x16,0x9A,0x05,0x21,0x03,0xF0, + 0x87,0xFD,0x3C,0x20,0x6B,0x46,0x18,0x5E,0x38,0x21,0x59,0x5E,0x34,0x22,0x9A,0x5E, + 0x01,0xAC,0x07,0xC4,0x00,0x22,0x10,0xAB,0x9A,0x5E,0x2C,0x98,0x21,0x9B,0xFF,0x30, + 0x00,0x92,0x22,0x9A,0xCD,0x30,0x71,0xE0,0x03,0x28,0x27,0xD1,0x0D,0xAA,0x0E,0xA9, + 0x6B,0x46,0x06,0xC3,0x15,0x9B,0x16,0x9A,0x27,0x98,0x05,0x21,0x03,0xF0,0x68,0xFD, + 0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0,0x28,0x98,0x13,0x9B,0x00,0x7E,0x14,0x9A, + 0x03,0x21,0x03,0xF0,0x5D,0xFD,0x3C,0x20,0x6B,0x46,0x18,0x5E,0x38,0x21,0x59,0x5E, + 0x34,0x22,0x9A,0x5E,0x01,0xAC,0x07,0xC4,0x00,0x22,0x10,0xAB,0x9A,0x5E,0x2C,0x98, + 0x1F,0x9B,0xFF,0x30,0x00,0x92,0x20,0x9A,0xCD,0x30,0x47,0xE0,0x04,0x28,0x27,0xD1, + 0x0D,0xAA,0x0E,0xA9,0x68,0x46,0x06,0xC0,0x13,0x9B,0x14,0x9A,0x27,0x98,0x03,0x21, + 0x03,0xF0,0x3E,0xFD,0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0,0x28,0x98,0x11,0x9B, + 0x00,0x7E,0x12,0x9A,0x02,0x21,0x03,0xF0,0x33,0xFD,0x3C,0x20,0x6B,0x46,0x18,0x5E, + 0x38,0x21,0x59,0x5E,0x34,0x22,0x9A,0x5E,0x01,0xAC,0x07,0xC4,0x00,0x22,0x10,0xAB, + 0x9A,0x5E,0x2C,0x98,0x1D,0x9B,0xFF,0x30,0x00,0x92,0x1E,0x9A,0xCD,0x30,0x1D,0xE0, + 0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0,0x11,0x9B,0x12,0x9A,0x27,0x98,0x02,0x21, + 0x03,0xF0,0x16,0xFD,0x3C,0x22,0x6B,0x46,0x9A,0x5E,0x00,0x21,0x10,0xAB,0x59,0x5E, + 0x2A,0x9B,0x1C,0x20,0x18,0x5E,0x01,0xAB,0x07,0xC3,0x2B,0x98,0x04,0x22,0x82,0x5E, + 0x2C,0x98,0x1B,0x9B,0x00,0x92,0x1C,0x9A,0xFF,0x30,0xCD,0x30,0x31,0x00,0x03,0xF0, + 0x13,0xFD,0x28,0x98,0x3B,0x49,0x00,0x7E,0x09,0x28,0x02,0xD2,0x28,0x9A,0x40,0x1C, + 0x10,0x76,0x38,0x7E,0x02,0x28,0x01,0xD2,0x40,0x1C,0x38,0x76,0x28,0x7B,0x40,0x1E, + 0x80,0x00,0x41,0x18,0x17,0x20,0x80,0x01,0x0C,0x18,0x0C,0x20,0x20,0x5E,0x00,0x28, + 0x21,0xDB,0x0E,0x21,0x61,0x5E,0x00,0x29,0x1D,0xDB,0x06,0x9A,0x64,0x21,0x8E,0x1A, + 0x70,0x43,0xFD,0xF7,0x23,0xF8,0x07,0x00,0xE8,0x89,0x06,0x99,0x48,0x43,0x64,0x21, + 0xFD,0xF7,0x4C,0xF9,0x38,0x18,0xE8,0x81,0x0E,0x20,0x20,0x5E,0x64,0x21,0x70,0x43, + 0xFD,0xF7,0x14,0xF8,0x06,0x00,0x28,0x8A,0x06,0x99,0x48,0x43,0x64,0x21,0xFD,0xF7, + 0x3D,0xF9,0x30,0x18,0x28,0x82,0xE8,0x89,0xA0,0x81,0x28,0x8A,0xE0,0x81,0x25,0x98, + 0x40,0x1C,0x0C,0x28,0x25,0x90,0x00,0xDA,0x18,0xE5,0x30,0x98,0x01,0x7A,0x00,0x29, + 0x00,0xD1,0x08,0xE5,0x80,0x7D,0x2E,0x9C,0x42,0x00,0x16,0x48,0x10,0x18,0x1D,0x22, + 0x52,0x01,0x82,0x18,0x53,0x88,0x23,0x81,0x23,0x23,0x5B,0x01,0xC3,0x18,0x5B,0x8B, + 0x2E,0x9C,0x63,0x81,0x53,0x8B,0x2E,0x9A,0x93,0x81,0x09,0x22,0xD2,0x01,0x80,0x18, + 0x42,0x8A,0x2E,0x98,0x02,0x29,0xC2,0x81,0x30,0x98,0x2E,0x9A,0x00,0x8B,0x10,0x80, + 0x30,0x9A,0x2E,0x9B,0x52,0x8B,0x5A,0x80,0xDB,0xD1,0x2E,0x99,0x08,0x80,0x2E,0x98, + 0x42,0x80,0x05,0x48,0x2E,0x99,0x42,0x88,0x8A,0x80,0x81,0x88,0x2E,0x98,0xC1,0x80, + 0xD9,0xE4,0x00,0x00,0x40,0x00,0x00,0x20,0x20,0x02,0x00,0x20,0xF8,0xB5,0x1C,0x4B, + 0x1C,0x7D,0xDA,0x8E,0xE4,0x07,0x31,0xD0,0x1C,0x8F,0x1A,0x4B,0x1B,0x7F,0x9E,0x46, + 0x19,0x4B,0x1E,0x78,0x16,0x4B,0x9D,0x7D,0x00,0x2E,0x76,0x46,0xAC,0x46,0xDD,0x7D, + 0x00,0x95,0x1D,0x7E,0x5F,0x7E,0x9B,0x7E,0x12,0xD0,0xB0,0x42,0x1E,0xD1,0x8C,0x45, + 0x08,0xD0,0x00,0x98,0x88,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0,0x8F,0x42,0x01,0xD0, + 0x8B,0x42,0x03,0xD1,0x20,0x00,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0xFA,0xE7, + 0xB1,0x42,0x0B,0xD1,0x84,0x45,0xF5,0xD0,0x00,0x99,0x81,0x42,0xF2,0xD0,0x85,0x42, + 0xF0,0xD0,0x87,0x42,0xEE,0xD0,0x83,0x42,0xF0,0xD1,0xEB,0xE7,0x10,0x00,0xEA,0xE7, + 0x00,0x93,0x00,0x00,0x60,0x06,0x00,0x20,0x18,0x07,0x00,0x20,0x0E,0x23,0x58,0x43, + 0x02,0x4A,0x40,0x18,0x40,0x00,0x10,0x5A,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0x1C,0x49,0x10,0xB5,0x4A,0x7A,0x1C,0x49,0x00,0x20,0x00,0x2A,0x15,0xD1,0x0A,0x89, + 0x00,0x2A,0x0F,0xD0,0x19,0x49,0x8A,0x42,0x0C,0xD0,0x10,0x00,0x1E,0x21,0x48,0x43, + 0x64,0x21,0xFD,0xF7,0x9B,0xF8,0xFF,0x30,0x4B,0x21,0x91,0x30,0xC9,0x00,0x88,0x42, + 0x00,0xD9,0x08,0x00,0x10,0xBC,0x08,0xBC,0x18,0x47,0x88,0x89,0x0E,0x4A,0xE1,0x24, + 0x92,0x89,0x01,0x00,0xFF,0x39,0xFF,0x23,0xA4,0x00,0xA6,0x39,0xE0,0x33,0x12,0x1B, + 0x99,0x42,0x06,0xD8,0x10,0x00,0x50,0x43,0x59,0x1C,0xFD,0xF7,0x7F,0xF8,0x20,0x1A, + 0xE8,0xE7,0xA0,0x42,0xE6,0xD9,0x03,0x21,0x10,0x00,0xFD,0xF7,0x77,0xF8,0x00,0x19, + 0xE0,0xE7,0x00,0x00,0x40,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0x0F,0x00,0x00, + 0x04,0x48,0x41,0x69,0x49,0x06,0x01,0xD5,0x10,0x20,0x70,0x47,0x40,0x69,0xC0,0x06, + 0xC0,0x0E,0x70,0x47,0x00,0x40,0x00,0x30,0x70,0xB5,0x12,0x4D,0x00,0x24,0x01,0x21, + 0x49,0x07,0x68,0x69,0x80,0x06,0xFC,0xD4,0xE8,0x68,0x6A,0x68,0x6A,0x60,0x05,0xE0, + 0x6A,0x69,0x92,0x06,0xFC,0xD4,0xAA,0x69,0x04,0xC1,0xA4,0x18,0x02,0x00,0x40,0x1E, + 0x01,0x2A,0xF5,0xD8,0x2E,0x20,0x68,0x60,0x68,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0, + 0xFF,0xFE,0x05,0x48,0xE8,0x61,0xEC,0x61,0x68,0x69,0x80,0x06,0xFC,0xD4,0x70,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30,0xAB,0xFC,0xFF,0x8F,0x78,0x47,0xC0,0x46, + 0x10,0x40,0x2D,0xE9,0xB0,0x40,0x9F,0xE5,0x0C,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3, + 0xFC,0xFF,0xFF,0x0A,0x04,0x00,0x94,0xE5,0x04,0x00,0x84,0xE5,0x04,0x00,0x94,0xE5, + 0x04,0x00,0x10,0xE3,0x10,0x00,0x00,0x0A,0x0C,0x00,0x94,0xE5,0x04,0x10,0x90,0xE4, + 0x1C,0x10,0x84,0xE5,0x02,0x12,0xA0,0xE3,0x38,0x10,0x91,0xE5,0x04,0x00,0x00,0xEA, + 0x04,0x20,0x90,0xE4,0x1C,0x20,0x84,0xE5,0x14,0x20,0x94,0xE5,0x40,0x00,0x12,0xE3, + 0xFC,0xFF,0xFF,0x1A,0x01,0x10,0x51,0xE2,0xF8,0xFF,0xFF,0x1A,0x14,0x00,0x94,0xE5, + 0x5F,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x1A,0x11,0x00,0x00,0xEA,0x04,0x00,0x94,0xE5, + 0x02,0x00,0x10,0xE3,0xE8,0xFF,0xFF,0x0A,0x14,0x00,0x94,0xE5,0x20,0x00,0x10,0xE3, + 0xE5,0xFF,0xFF,0x1A,0x0C,0x00,0x94,0xE5,0x08,0x00,0x50,0xE3,0x10,0x40,0xBD,0x08, + 0x50,0x0B,0x00,0x0A,0x14,0x10,0x94,0xE5,0x5F,0x00,0x11,0xE3,0x18,0x10,0x94,0x15, + 0x04,0x10,0x80,0x14,0xFA,0xFF,0xFF,0x1A,0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3, + 0xFC,0xFF,0xFF,0x0A,0x47,0x0B,0x00,0xEB,0xD2,0xFF,0xFF,0xEA,0x00,0x40,0x00,0x30, + 0xF8,0xB5,0x20,0x4E,0x20,0x4F,0x00,0x25,0x2C,0x00,0x78,0x69,0x80,0x06,0xFC,0xD4, + 0x78,0x68,0x78,0x60,0xF8,0x68,0x04,0x28,0x0E,0xD1,0x1C,0x48,0x40,0x21,0x04,0xE0, + 0x7A,0x69,0x92,0x06,0xFC,0xD4,0xBA,0x69,0x04,0xC0,0x49,0x1E,0xF8,0xD2,0x20,0x25, + 0x17,0x4C,0x30,0x78,0x01,0x21,0x06,0xE0,0x05,0x28,0x07,0xD1,0x15,0x48,0x16,0x4C, + 0x85,0x08,0x30,0x78,0x02,0x21,0x08,0x43,0x30,0x70,0x10,0xE0,0x03,0x28,0x0E,0xD1, + 0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0x61,0xFE,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x78,0x69,0x80,0x06,0xFC,0xD4,0xB8,0x69,0x01,0xC4,0x6D,0x1E, + 0xF8,0xD2,0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0x50,0xFE, + 0xC3,0xE7,0x00,0x00,0x16,0x07,0x00,0x20,0x00,0x40,0x00,0x30,0x00,0x90,0x00,0x40, + 0x00,0xA0,0x00,0x40,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x10,0x01,0x49,0x20,0x20, + 0x48,0x61,0x70,0x47,0x00,0x40,0x00,0x30,0xF8,0xB5,0x01,0x22,0x52,0x07,0x11,0x68, + 0x3D,0x48,0x01,0x29,0x80,0x79,0x01,0xD1,0x01,0x25,0x03,0xE0,0x11,0x68,0x01,0x29, + 0x06,0xD9,0x02,0x25,0x00,0x28,0x0B,0xD0,0x00,0x21,0x33,0x27,0x7F,0x01,0x3B,0xE0, + 0x00,0x28,0x05,0xD1,0x34,0x48,0x0D,0x22,0x00,0x21,0x14,0x38,0x01,0xF0,0x68,0xFE, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x4A,0x19,0x00,0x24,0x92,0x00,0x10,0x18,0x02,0x68, + 0x84,0x46,0x90,0x0F,0xC0,0x07,0x26,0xD0,0x01,0x20,0x93,0x00,0x1B,0x0F,0x2B,0x4E, + 0x36,0x18,0xF6,0x19,0x36,0x7B,0x9E,0x42,0x01,0xD1,0x04,0x00,0x02,0xE0,0x40,0x1C, + 0x0C,0x28,0xF4,0xD9,0x00,0x2C,0x06,0xD0,0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43, + 0x80,0x08,0x02,0x43,0x0D,0xE0,0x21,0x4C,0x01,0x20,0x26,0x18,0xF6,0x19,0x36,0x7B, + 0x00,0x2E,0x03,0xD1,0x24,0x18,0xE4,0x19,0x23,0x73,0xED,0xE7,0x40,0x1C,0x0C,0x28, + 0xF3,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42, + 0xC9,0xD8,0x00,0x21,0x21,0xE0,0x4A,0x19,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46, + 0x90,0x0F,0xC0,0x07,0x18,0xD1,0x11,0x4E,0x01,0x20,0x93,0x00,0x1C,0x0F,0x33,0x18, + 0xDB,0x19,0x1B,0x7B,0xA3,0x42,0x0A,0xD1,0x34,0x18,0x00,0x23,0xE4,0x19,0x23,0x73, + 0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43,0x02,0xE0,0x40,0x1C, + 0x0C,0x28,0xEC,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68, + 0x8A,0x42,0xD8,0xD8,0x9C,0xE7,0x00,0x00,0xC0,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0x03,0x23,0x1B,0x07,0xDA,0x68,0x01,0x21,0x81,0x40,0x8A,0x43,0xDA,0x60,0x70,0x47, + 0x10,0xB4,0x0F,0x24,0x03,0x23,0x1B,0x07,0x1C,0x60,0x05,0x4C,0x60,0x63,0x19,0x61, + 0x9A,0x60,0x00,0x20,0xC0,0x43,0xD8,0x60,0x00,0x20,0x18,0x60,0x10,0xBC,0x70,0x47, + 0x40,0x00,0x00,0x30,0x03,0x4B,0x00,0xB5,0x82,0x00,0x99,0x50,0xFF,0xF7,0xE0,0xFF, + 0x08,0xBC,0x18,0x47,0x48,0x07,0x00,0x20,0xF0,0xB5,0x87,0xB0,0xFE,0xF7,0x8E,0xFB, + 0xFE,0xF7,0x6C,0xFB,0x01,0xF0,0x8E,0xFE,0x02,0xF0,0x6A,0xFC,0x00,0xF0,0xB4,0xFD, + 0x00,0xF0,0xC2,0xFB,0xFD,0xF7,0xD6,0xFF,0xFD,0xF7,0x56,0xFA,0x39,0x48,0x00,0x68, + 0x80,0x30,0x40,0x7B,0x00,0x28,0x04,0xD1,0xFF,0xF7,0x5C,0xFA,0xFF,0xF7,0x0C,0xFA, + 0x03,0xE0,0xFF,0xF7,0x09,0xFA,0xFF,0xF7,0x55,0xFA,0x01,0x27,0x7F,0x07,0x78,0x68, + 0x6B,0x46,0x03,0x90,0x00,0x20,0xD8,0x73,0x03,0x98,0x78,0x60,0x02,0xF0,0x70,0xFF, + 0x02,0xF0,0xBC,0xFD,0x38,0x68,0x00,0x28,0x07,0xD0,0x78,0x68,0x80,0x0F,0x80,0x07, + 0x03,0xD5,0x3E,0x68,0x02,0x24,0x76,0x1C,0x37,0xE0,0x01,0x24,0x26,0x00,0xA0,0x00, + 0xC0,0x19,0x06,0x90,0x05,0x68,0xA8,0x01,0x80,0x0D,0x05,0x90,0xA8,0x05,0x80,0x0D, + 0x04,0x90,0x21,0x48,0x00,0x78,0x00,0x28,0x03,0xD1,0x04,0xA9,0x05,0xA8,0x02,0xF0, + 0xE3,0xFD,0x1E,0x4B,0x00,0x21,0x58,0x8C,0x40,0x1E,0x02,0x04,0x12,0x0C,0x68,0x46, + 0x06,0xC0,0x18,0x8C,0x0A,0x00,0x04,0xA9,0x40,0x1E,0x03,0x04,0x1B,0x0C,0x05,0xA8, + 0x03,0xF0,0x14,0xFE,0x04,0xA9,0x05,0xA8,0x03,0xF0,0x1A,0xFC,0x14,0x48,0x04,0x99, + 0x05,0x40,0x05,0x98,0x89,0x05,0x80,0x05,0x80,0x09,0x05,0x43,0xA8,0x0A,0x80,0x02, + 0x89,0x0D,0x08,0x43,0x06,0x99,0x08,0x60,0x64,0x1C,0xB4,0x42,0xC7,0xD9,0xFD,0xF7, + 0x0D,0xFE,0xFE,0xF7,0xB9,0xF9,0x38,0x68,0xFC,0xF7,0x66,0xFF,0xFF,0xF7,0xDC,0xFE, + 0xFC,0xF7,0xAC,0xFE,0x03,0xF0,0xAE,0xFC,0x06,0x48,0x40,0x79,0x07,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0xC8,0x07,0x00,0x20,0x1F,0x07,0x00,0x20,0x00,0x93,0x00,0x00, + 0xFF,0xFF,0x00,0xFC,0x40,0x00,0x00,0x20,0xF8,0xB5,0x02,0xF0,0xC5,0xFB,0xFE,0xF7, + 0xD3,0xFD,0xFE,0xF7,0xA3,0xFE,0xFE,0xF7,0xEB,0xFE,0x1C,0x48,0x00,0x21,0xC0,0x7F, + 0x03,0xF0,0x60,0xFB,0x1A,0x4F,0x1B,0x4D,0xFC,0x03,0x00,0x20,0x28,0x70,0xA8,0x61, + 0xE8,0x79,0x00,0x28,0x1D,0xD0,0x01,0x26,0x18,0xE0,0x78,0x68,0x00,0x07,0x15,0xD5, + 0xA6,0x63,0xF8,0x68,0x07,0x28,0x09,0xD1,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0, + 0xDF,0xFC,0xFF,0xF7,0x3E,0xF9,0xFF,0x20,0xE0,0x63,0x07,0xE0,0x0B,0x28,0x10,0xD1, + 0xE0,0x63,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0xD2,0xFC,0xE0,0x6B,0x0B,0x28, + 0xE3,0xD1,0xFE,0xF7,0xAD,0xF9,0x28,0x78,0x00,0x28,0xD6,0xD0,0x02,0xF0,0x84,0xF9, + 0xD3,0xE7,0x78,0x68,0x80,0x07,0xFC,0xD5,0xEE,0xE7,0x00,0x00,0x00,0x93,0x00,0x00, + 0x00,0x40,0x00,0x30,0x14,0x07,0x00,0x20,0x70,0xB5,0x05,0x00,0x1A,0x48,0x1B,0x4A, + 0x00,0x68,0x12,0x88,0x60,0x30,0x01,0x7E,0xC0,0x7D,0x2C,0x78,0x89,0x18,0x0E,0x06, + 0x17,0x49,0x36,0x0E,0x4A,0x7F,0x00,0x2A,0x0D,0xD1,0x89,0x7F,0x01,0x29,0x01,0xD1, + 0x80,0x1C,0x06,0xE0,0x02,0x29,0x01,0xD1,0x00,0x1D,0x02,0xE0,0x03,0x29,0x02,0xD1, + 0x80,0x1D,0x00,0x06,0x00,0x0E,0x00,0x2C,0x0A,0xD0,0x84,0x42,0x08,0xD3,0x14,0x21, + 0x20,0x00,0xFC,0xF7,0xDB,0xFD,0x76,0x1C,0xB0,0x42,0x05,0xD2,0x14,0x2C,0x07,0xD3, + 0x00,0x20,0x70,0xBC,0x08,0xBC,0x18,0x47,0x14,0x2C,0x01,0xD3,0xF0,0x20,0x00,0xE0, + 0x13,0x20,0x28,0x70,0x01,0x20,0xF4,0xE7,0xC8,0x07,0x00,0x20,0x00,0x07,0x00,0x20, + 0xA0,0x03,0x00,0x20,0x10,0xB5,0x0C,0x24,0x20,0x00,0xFE,0xF7,0x35,0xFA,0x64,0x1E, + 0xFA,0xD5,0x05,0x48,0x01,0x22,0x41,0x7C,0x01,0x29,0x01,0xD8,0x00,0x29,0x00,0xD1, + 0x42,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x93,0x00,0x00,0x10,0xB5,0x07,0x4C, + 0x07,0x48,0x22,0x00,0x00,0x21,0x01,0xF0,0xAB,0xFC,0x06,0x48,0x22,0x00,0x00,0x21, + 0x01,0xF0,0xA6,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD2,0x02,0x00,0x00, + 0x00,0x00,0x00,0x10,0xCE,0x07,0x00,0x20,0x10,0xB5,0x40,0x22,0xD4,0x05,0x00,0x21, + 0x20,0x00,0x01,0xF0,0x95,0xFC,0x01,0x20,0xA0,0x63,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x14,0x48,0x10,0xB5,0x44,0x08,0x14,0x49,0x14,0x48,0x62,0x00,0x01,0xF0,0x64,0xFC, + 0x10,0x48,0xC0,0x07,0x08,0xD0,0x0F,0x48,0xC2,0x07,0x0F,0x48,0xD2,0x0F,0x01,0x19, + 0x0E,0x48,0x00,0x19,0x01,0xF0,0x48,0xFC,0x0D,0x48,0x00,0x21,0x84,0x08,0x0D,0x48, + 0xA2,0x00,0x01,0xF0,0x85,0xFC,0x0A,0x48,0x80,0x07,0x07,0xD0,0x08,0x48,0x00,0x21, + 0x82,0x07,0x08,0x48,0x92,0x0F,0x00,0x19,0x01,0xF0,0x6A,0xFC,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0xF4,0x78,0x00,0x00,0x40,0x00,0x00,0x20, + 0x24,0x0B,0x00,0x00,0x40,0x00,0x00,0x20,0x05,0x49,0xC8,0x05,0x41,0x62,0x05,0x49, + 0x81,0x62,0x05,0x48,0xFF,0x21,0xC1,0x60,0x00,0x21,0x41,0x61,0x70,0x47,0x00,0x00, + 0x80,0x88,0x3C,0x03,0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x40,0x02,0x49,0x03,0x48, + 0x01,0x60,0x20,0x21,0x41,0x60,0x70,0x47,0xDE,0x10,0x05,0x00,0x00,0x40,0x00,0x30, + 0x10,0xB5,0x00,0x24,0x20,0x00,0xFE,0xF7,0x23,0xFA,0x64,0x1C,0x0C,0x2C,0xF9,0xDB, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x10,0xB5,0x01,0x24,0x64,0x03,0x20,0x00, + 0xFD,0xF7,0x70,0xF8,0xFE,0xF7,0x4A,0xFD,0xFE,0xF7,0x14,0xFD,0xFE,0xF7,0x4E,0xFD, + 0xFE,0xF7,0x44,0xFD,0xFE,0xF7,0x06,0xFD,0x07,0x48,0x01,0x68,0xF0,0x22,0x91,0x43, + 0x06,0x4A,0x12,0x7B,0x12,0x07,0x12,0x0E,0x11,0x43,0x01,0x60,0x20,0x00,0xFD,0xF7, + 0x51,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xA0,0x00,0x40,0x00,0x93,0x00,0x00, + 0x10,0xB5,0x02,0xF0,0x71,0xFA,0x02,0xF0,0x51,0xFA,0xFF,0x20,0xFD,0xF7,0x82,0xF8, + 0xFF,0xF7,0xAA,0xFF,0x11,0x48,0x80,0x22,0x00,0x21,0x01,0xF0,0x11,0xFC,0x08,0x20, + 0xFD,0xF7,0x40,0xF8,0x00,0x22,0x0E,0x49,0xD2,0x43,0x00,0x20,0xFF,0xF7,0x00,0xFE, + 0x00,0xF0,0x1A,0xF8,0x0B,0x48,0x40,0x7A,0x00,0x28,0x04,0xD0,0x40,0x20,0xFD,0xF7, + 0x31,0xF8,0x00,0xF0,0x4D,0xF8,0x00,0xF0,0x37,0xF8,0x10,0x20,0x02,0xF0,0x3F,0xFA, + 0xFE,0xF7,0x5E,0xFE,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x48,0x07,0x00,0x20, + 0x02,0x03,0x0F,0x0F,0x00,0x93,0x00,0x00,0xF8,0xB5,0x03,0x24,0xE6,0x01,0x13,0x25, + 0x30,0x00,0xFD,0xF7,0x17,0xF8,0x20,0x02,0xFD,0xF7,0x3E,0xF8,0x0C,0x48,0x0A,0x21, + 0x00,0x6B,0xFC,0xF7,0xCB,0xFC,0x02,0x00,0xFF,0x21,0x90,0x31,0x02,0x20,0x00,0x23, + 0x00,0x95,0x03,0xF0,0x91,0xFA,0x07,0x4A,0x27,0x21,0x03,0x20,0x00,0x23,0x00,0x94, + 0x03,0xF0,0x8A,0xFA,0x30,0x00,0xFC,0xF7,0xF5,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x93,0x00,0x00,0xE8,0xFD,0x00,0x00,0x10,0xB5,0x07,0x49,0x00,0x20,0xFF,0xF7, + 0xC9,0xFD,0x03,0xF0,0x3C,0xFC,0x05,0x48,0x03,0xF0,0x2C,0xFC,0x00,0x20,0xFF,0xF7, + 0xA7,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x99,0x77,0x00,0x00,0x50,0x46,0x00,0x00, + 0x0A,0x48,0x10,0xB5,0x00,0x6B,0x0A,0x49,0x0A,0x4C,0x88,0x42,0x05,0xD9,0x7D,0x21, + 0xC9,0x00,0xFC,0xF7,0x93,0xFC,0x64,0x30,0x01,0xE0,0xFF,0x20,0xF5,0x30,0xE0,0x62, + 0x03,0xF0,0xE6,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x93,0x00,0x00, + 0x07,0xA5,0x07,0x00,0x14,0x07,0x00,0x20,0x10,0xB5,0xFF,0xF7,0xCF,0xFE,0x14,0x48, + 0x00,0x7A,0x03,0xF0,0x83,0xF9,0xFF,0xF7,0x3B,0xFF,0x11,0x48,0x11,0x4A,0xA0,0x30, + 0x41,0x89,0x00,0x24,0xD1,0x83,0x10,0x49,0x0F,0x4A,0xCC,0x60,0x0C,0x61,0x0F,0x49, + 0xC0,0x3A,0x09,0x68,0x40,0x31,0x49,0x7D,0x51,0x70,0x01,0x00,0x20,0x39,0x0A,0x8B, + 0x09,0x49,0x40,0x39,0x8A,0x63,0x00,0x88,0xC8,0x63,0xFF,0xF7,0x9B,0xFE,0x08,0x48, + 0xC4,0x80,0xFE,0xF7,0x33,0xFB,0x07,0x48,0x04,0x70,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x93,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x07,0x00,0x20,0xC8,0x07,0x00,0x20, + 0x00,0x02,0x00,0x20,0x15,0x07,0x00,0x20,0xF7,0xB5,0x2C,0x48,0x86,0xB0,0x04,0x90, + 0x00,0x20,0x2B,0x4E,0x07,0x00,0x02,0x90,0x03,0x90,0x05,0x90,0xFE,0xF7,0x10,0xFC, + 0xFE,0xF7,0xE6,0xFC,0x27,0x48,0x40,0x7F,0x01,0x90,0x26,0x48,0x20,0x38,0x40,0x7F, + 0x00,0x25,0x00,0x90,0x00,0x24,0x21,0x00,0x28,0x00,0xFF,0xF7,0x37,0xFB,0x00,0x28, + 0x1B,0xD0,0x0E,0x21,0x69,0x43,0x04,0x9A,0x09,0x19,0x89,0x00,0x51,0x58,0x09,0x05, + 0x09,0x0D,0x08,0x1A,0x01,0x1E,0x00,0xDC,0x41,0x42,0x00,0x28,0x01,0xDB,0x01,0x98, + 0x00,0xE0,0x00,0x98,0x81,0x42,0x01,0xDD,0x01,0x22,0x05,0x92,0x08,0x1A,0xB0,0x42, + 0x03,0xDD,0x06,0x00,0x2F,0x00,0x02,0x94,0x03,0x91,0x64,0x1C,0x0E,0x2C,0xDA,0xD3, + 0x6D,0x1C,0x15,0x2D,0xD6,0xD3,0x03,0x99,0x08,0x98,0x01,0x60,0x0E,0x48,0x00,0x69, + 0xC0,0x07,0x05,0xD0,0x07,0x99,0x02,0x98,0x08,0x60,0x06,0x98,0x07,0x60,0x04,0xE0, + 0x07,0x98,0x07,0x60,0x06,0x99,0x02,0x98,0x08,0x60,0x05,0x98,0x00,0x28,0x00,0xD0, + 0x04,0x20,0x09,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD4,0x02,0x10,0x40, + 0x78,0xEC,0xFF,0xFF,0x20,0x93,0x00,0x00,0x00,0x90,0x00,0x40,0x78,0x47,0xC0,0x46, + 0x68,0xC0,0x9F,0xE5,0x00,0x00,0x9C,0xE5,0x64,0x30,0x9F,0xE5,0x0E,0x06,0xD3,0xE5, + 0x01,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3,0x0F,0x16,0xD3,0x15,0x00,0x00,0xA0,0x13, + 0x00,0x00,0x51,0x13,0x1E,0xFF,0x2F,0x91,0x0E,0x26,0xD3,0xE5,0x00,0x10,0x83,0xE0, + 0x3D,0x16,0xD1,0xE5,0x02,0x00,0x12,0xE3,0x3C,0x26,0xD3,0xE5,0x82,0x21,0x62,0x00, + 0x82,0x10,0x81,0x00,0x81,0x11,0x61,0x10,0x81,0x10,0x82,0x10,0x01,0x11,0x9C,0xE7, + 0x80,0x20,0x83,0xE0,0x02,0x19,0xC1,0xE3,0xB0,0x11,0xC2,0xE1,0x0F,0x16,0xD3,0xE5, + 0x01,0x00,0x80,0xE2,0x00,0x00,0x51,0xE1,0xEE,0xFF,0xFF,0x8A,0x1E,0xFF,0x2F,0xE1, + 0x00,0x10,0x10,0x40,0x40,0x00,0x00,0x20,0x10,0xB4,0x0E,0x24,0x62,0x43,0x51,0x18, + 0x0A,0x4A,0x49,0x00,0x52,0x5E,0x0A,0x49,0x1E,0x24,0x0C,0x5F,0xA2,0x42,0x0B,0xDD, + 0x01,0x78,0x00,0x29,0x08,0xD1,0x03,0x70,0x06,0x48,0x59,0x00,0x08,0x18,0xFF,0x30, + 0xA1,0x30,0xC1,0x88,0x49,0x1C,0xC1,0x80,0x10,0xBC,0x70,0x47,0x00,0x00,0x00,0x10, + 0xE0,0x01,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB4,0x9D,0x00,0x2E,0x4B,0x0A,0x27, + 0xEB,0x18,0xFF,0x33,0x21,0x33,0x08,0x25,0x5D,0x5F,0xDF,0x5F,0x00,0x24,0x84,0x46, + 0x04,0x9E,0x05,0x98,0x23,0x00,0x01,0x2A,0x0E,0xD0,0x02,0x2A,0x3A,0xD0,0x03,0x2A, + 0x3E,0xD0,0x04,0x2A,0x11,0xD1,0xAB,0x19,0x1B,0x06,0x1B,0x16,0x0E,0x2B,0x3B,0xDC, + 0x0E,0x24,0x67,0x43,0xFC,0x18,0x06,0xE0,0xBB,0x1B,0x1B,0x06,0x1B,0x16,0x33,0xD4, + 0x0E,0x24,0x5C,0x43,0x64,0x19,0x24,0x06,0x24,0x0E,0x1C,0x4D,0x64,0x00,0x2D,0x5F, + 0x1B,0x4C,0x1E,0x26,0xA6,0x5F,0xB5,0x42,0x26,0xDD,0x64,0x46,0x24,0x78,0x00,0x2C, + 0x22,0xD1,0x84,0x00,0x01,0x2A,0x21,0xD0,0x84,0x00,0x61,0x18,0x02,0x2A,0x1F,0xD0, + 0x03,0x2A,0x1F,0xD0,0x04,0x2A,0x00,0xD1,0xCB,0x70,0x61,0x46,0x08,0x70,0x41,0x00, + 0x0D,0x48,0x08,0x18,0xFF,0x30,0xA1,0x30,0xC1,0x88,0x49,0x1C,0xC1,0x80,0x01,0x20, + 0xF0,0xBC,0x70,0x47,0xBB,0x19,0x1B,0x06,0x1B,0x16,0x15,0x2B,0xD0,0xDD,0x03,0xE0, + 0xAB,0x1B,0x1B,0x06,0x1B,0x16,0xC3,0xD5,0x00,0x20,0xF1,0xE7,0x0B,0x55,0xE4,0xE7, + 0x4B,0x70,0xE2,0xE7,0x8B,0x70,0xE0,0xE7,0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10, + 0xE0,0x01,0x00,0x20,0x88,0x42,0x00,0xDA,0x08,0x00,0x70,0x47,0x88,0x42,0x00,0xDA, + 0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00,0x70,0x47,0x10,0xB5,0x02,0x9C,0x88,0x42, + 0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00,0x22,0x00,0x19,0x00,0xFF,0xF7, + 0xED,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47,0xF0,0xB5,0xF3,0x48,0xFF,0xB0,0x00,0x68, + 0x9E,0xB0,0x40,0x30,0x85,0x8B,0x00,0x20,0x96,0x90,0x15,0x20,0x95,0x90,0xEF,0x48, + 0x0C,0x22,0x00,0x21,0x01,0xF0,0xFC,0xF9,0xEC,0x48,0x18,0x22,0x00,0x21,0x0C,0x30, + 0x01,0xF0,0xF6,0xF9,0xFF,0x22,0x6A,0x32,0x00,0x21,0x36,0xA8,0x01,0xF0,0xF0,0xF9, + 0x34,0x22,0x00,0x21,0x29,0xA8,0x01,0xF0,0xEB,0xF9,0x34,0x22,0x00,0x21,0x1C,0xA8, + 0x01,0xF0,0xE6,0xF9,0x34,0x22,0x00,0x21,0x0F,0xA8,0x01,0xF0,0xE1,0xF9,0x34,0x22, + 0x00,0x21,0x02,0xA8,0x01,0xF0,0xDC,0xF9,0xDD,0x4C,0x64,0x21,0x20,0x89,0x68,0x43, + 0xFC,0xF7,0xA4,0xF9,0xD9,0x49,0x89,0x1D,0x9C,0x91,0xE1,0x89,0x40,0x18,0x9C,0x99, + 0xC8,0x83,0x20,0x79,0x00,0x28,0x7E,0xD0,0x00,0x26,0xF7,0xE0,0xB3,0x00,0x9B,0x18, + 0xFF,0x33,0x21,0x33,0x08,0x22,0x9A,0x5E,0x00,0x21,0x08,0x00,0x00,0x2A,0x03,0xDB, + 0x0E,0x20,0x0E,0x2A,0x00,0xDC,0x10,0x00,0x04,0x06,0x0A,0x20,0x18,0x5E,0x24,0x0E, + 0x00,0x28,0x03,0xDB,0x15,0x21,0x15,0x28,0x00,0xDC,0x01,0x00,0x0D,0x06,0x2D,0x0E, + 0x28,0x00,0x0E,0x21,0x48,0x43,0x9B,0x90,0x00,0x19,0x36,0xA9,0x08,0x5C,0x00,0x28, + 0x04,0xD1,0x96,0x98,0x40,0x1C,0x00,0x06,0x00,0x0E,0x96,0x90,0x01,0x20,0x91,0x90, + 0x94,0x90,0x93,0x90,0x96,0x98,0x29,0xAF,0x83,0x00,0x9A,0x93,0xD8,0x19,0xFD,0x54, + 0x99,0x90,0x45,0x70,0x84,0x70,0xC4,0x70,0x96,0x9A,0x00,0x21,0x68,0x46,0x06,0xC0, + 0xF8,0x5C,0x0E,0x21,0x33,0x00,0x48,0x43,0x00,0x19,0x36,0xA9,0x40,0x18,0x01,0x22, + 0x29,0xA9,0xFF,0xF7,0xF9,0xFE,0x00,0x2D,0x92,0x90,0x1D,0xD0,0x00,0x2C,0x0D,0xD0, + 0x68,0x1E,0x0E,0x21,0x48,0x43,0x00,0x19,0x36,0xA9,0x40,0x18,0x96,0x9B,0x40,0x1E, + 0x6A,0x1E,0x61,0x1E,0xFF,0xF7,0xC8,0xFE,0x0E,0x2C,0x0B,0xD2,0x68,0x1E,0x0E,0x21, + 0x48,0x43,0x00,0x19,0x36,0xA9,0x40,0x18,0x96,0x9B,0x40,0x1C,0x6A,0x1E,0x61,0x1C, + 0xFF,0xF7,0xBA,0xFE,0x15,0x2D,0x1D,0xD2,0x00,0x2C,0x0D,0xD0,0x68,0x1C,0x0E,0x21, + 0x48,0x43,0x00,0x19,0x36,0xA9,0x40,0x18,0x96,0x9B,0x40,0x1E,0x6A,0x1C,0x61,0x1E, + 0xFF,0xF7,0xAA,0xFE,0x0E,0x2C,0x0D,0xD2,0x68,0x1C,0x0E,0x21,0x48,0x43,0x00,0x19, + 0x36,0xA9,0x40,0x18,0x00,0xE0,0x22,0xE1,0x96,0x9B,0x40,0x1C,0x6A,0x1C,0x61,0x1C, + 0xFF,0xF7,0x9A,0xFE,0x01,0x27,0x6B,0xE0,0x92,0x98,0x00,0x28,0x13,0xD0,0xBC,0x42, + 0x11,0xD3,0x96,0x9A,0x9A,0x98,0x01,0x92,0x29,0xA9,0x00,0x97,0x08,0x5C,0x0E,0x21, + 0x33,0x00,0x40,0x1E,0x48,0x43,0x00,0x19,0x36,0xA9,0x40,0x18,0x01,0x22,0x29,0xA9, + 0xFF,0xF7,0xA2,0xFE,0x00,0xE0,0x00,0x20,0x92,0x90,0x91,0x98,0x00,0x28,0x13,0xD0, + 0xE8,0x19,0x15,0x28,0x10,0xD2,0x96,0x9A,0x99,0x98,0x01,0x92,0x00,0x97,0x40,0x78, + 0x0E,0x21,0x33,0x00,0x40,0x1C,0x48,0x43,0x00,0x19,0x36,0xA9,0x40,0x18,0x02,0x22, + 0x29,0xA9,0xFF,0xF7,0x89,0xFE,0x00,0xE0,0x00,0x20,0x91,0x90,0x94,0x98,0x00,0x28, + 0x11,0xD0,0xBC,0x42,0x0F,0xD3,0x96,0x9A,0x99,0x98,0x00,0x97,0x01,0x92,0x80,0x78, + 0x36,0xA9,0x33,0x00,0x41,0x18,0x9B,0x98,0x03,0x22,0x40,0x1E,0x08,0x18,0x29,0xA9, + 0xFF,0xF7,0x72,0xFE,0x00,0xE0,0x00,0x20,0x94,0x90,0x93,0x98,0x00,0x28,0x12,0xD0, + 0xE0,0x19,0x0E,0x28,0x0F,0xD2,0x96,0x9A,0x99,0x98,0x00,0x97,0x01,0x92,0xC0,0x78, + 0x36,0xA9,0x33,0x00,0x41,0x18,0x9B,0x98,0x04,0x22,0x40,0x1C,0x08,0x18,0x29,0xA9, + 0xFF,0xF7,0x5A,0xFE,0x00,0xE0,0x00,0x20,0x93,0x90,0x91,0x99,0x92,0x98,0x40,0x18, + 0x94,0x99,0x40,0x18,0x93,0x99,0x40,0x18,0x05,0xD0,0x7F,0x1C,0x3F,0x06,0x3F,0x0E, + 0x95,0x98,0x87,0x42,0x90,0xD3,0x76,0x1C,0x36,0x06,0x36,0x0E,0x58,0x4A,0x10,0x79, + 0xB0,0x42,0x00,0xD9,0x02,0xE7,0x14,0x00,0x20,0x79,0x35,0xE0,0x83,0x00,0x1D,0x19, + 0xFF,0x35,0x21,0x35,0x06,0x23,0xEB,0x5E,0x00,0x22,0x11,0x00,0x00,0x2B,0x03,0xDB, + 0x15,0x21,0x15,0x2B,0x00,0xDC,0x19,0x00,0x0B,0x06,0x04,0x21,0x69,0x5E,0x1B,0x0E, + 0x00,0x29,0x03,0xDB,0x0E,0x22,0x0E,0x29,0x00,0xDC,0x0A,0x00,0x11,0x06,0x0E,0x22, + 0x53,0x43,0x09,0x0E,0x59,0x18,0x36,0xAA,0x51,0x5C,0x22,0x18,0x13,0x00,0xFF,0x32, + 0x81,0x32,0x51,0x76,0x51,0x7E,0xFF,0x22,0x59,0x32,0x49,0x00,0x09,0x19,0xFF,0x31, + 0xA1,0x31,0xC9,0x88,0x09,0x06,0x09,0x0E,0xD1,0x54,0xA2,0x8B,0x91,0x42,0x00,0xD9, + 0xA1,0x83,0x40,0x1E,0x00,0x06,0x00,0x0E,0x00,0x28,0xC7,0xD1,0x01,0x25,0x62,0xE0, + 0xAC,0x00,0x29,0xA8,0x01,0x5D,0x20,0x18,0x84,0x46,0x40,0x78,0x97,0x90,0x39,0xE0, + 0x62,0x46,0xD2,0x78,0x60,0x46,0x80,0x78,0x98,0x92,0x2D,0xE0,0x0E,0x22,0x4A,0x43, + 0x12,0x18,0x36,0xAB,0x9B,0x5C,0xAB,0x42,0x22,0xD1,0x2E,0x4B,0x52,0x00,0x9A,0x5E, + 0x9C,0x9E,0x1E,0x23,0xF3,0x5E,0x9A,0x42,0x1A,0xDD,0x29,0x4F,0xD2,0x1A,0x46,0x00, + 0xF6,0x19,0x36,0x8C,0x12,0x04,0x12,0x0C,0x56,0x43,0x1C,0xAB,0x1B,0x59,0x9B,0x19, + 0x1C,0xAE,0x33,0x51,0x4E,0x00,0xF6,0x19,0x40,0x36,0xB6,0x8A,0x0F,0xAB,0x1B,0x59, + 0x56,0x43,0x9B,0x19,0x0F,0xAE,0x33,0x51,0x02,0xAE,0x33,0x59,0x9A,0x18,0x32,0x51, + 0x40,0x1C,0x98,0x9A,0x00,0x06,0x00,0x0E,0x82,0x42,0xCF,0xD2,0x49,0x1C,0x97,0x98, + 0x09,0x06,0x09,0x0E,0x88,0x42,0xC3,0xD2,0x02,0xA8,0x06,0x59,0x00,0x2E,0x12,0xD0, + 0x1C,0xA8,0x00,0x59,0x31,0x00,0xFC,0xF7,0x41,0xF9,0x11,0x49,0x6A,0x00,0x57,0x18, + 0xFF,0x21,0x6B,0x31,0xC8,0x53,0x0F,0xA8,0x00,0x59,0x31,0x00,0xFC,0xF7,0x36,0xF9, + 0xFF,0x37,0x81,0x37,0x78,0x80,0x0A,0x48,0x40,0x19,0xFF,0x30,0x81,0x30,0x45,0x76, + 0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x06,0x48,0x00,0x79,0xA8,0x42,0x98,0xD2,0x7F,0xB0, + 0x1E,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xC8,0x07,0x00,0x20,0xDA,0x01,0x00,0x20, + 0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10,0xF0,0xB5,0x00,0x20,0xFF,0xB0,0x92,0xB0, + 0x0E,0x90,0x01,0x24,0x0F,0x90,0x0B,0x90,0x09,0x90,0x07,0x90,0xFF,0x4D,0x06,0x90, + 0x28,0x78,0xFF,0x4F,0x00,0x28,0x0A,0xD0,0xFE,0x48,0x01,0x79,0x05,0x91,0x41,0x79, + 0x04,0x91,0x81,0x79,0x03,0x91,0xC1,0x79,0x02,0x91,0x00,0x7A,0x0C,0xE0,0x38,0x68, + 0x01,0x00,0x20,0x30,0x42,0x7F,0x40,0x31,0x05,0x92,0x82,0x7F,0x04,0x92,0xC0,0x7F, + 0x03,0x90,0x08,0x78,0x02,0x90,0x48,0x78,0x2E,0x22,0x00,0x21,0x01,0x90,0x1C,0xA8, + 0x00,0xF0,0xEE,0xFF,0xF0,0x48,0xF1,0x49,0x00,0x22,0x08,0x81,0xF0,0x48,0x8A,0x81, + 0x90,0x90,0x42,0x81,0xEF,0x48,0xF0,0x4A,0x8F,0x90,0x40,0x7A,0x8E,0x92,0x02,0x28, + 0x02,0xD9,0x3A,0x68,0x52,0x8C,0x10,0xE0,0x02,0x28,0x06,0xD1,0x3A,0x68,0x8E,0x9B, + 0x12,0x8C,0xDB,0x88,0xD2,0x18,0x0C,0x92,0x0F,0xE0,0x2A,0x78,0x00,0x2A,0x06,0xD0, + 0xE6,0x4A,0x8E,0x9B,0x92,0x89,0x9B,0x88,0xD2,0x18,0x0C,0x92,0x05,0xE0,0x3A,0x68, + 0x8E,0x9B,0xD2,0x8B,0x9B,0x88,0xD2,0x18,0x0C,0x92,0xE1,0x4A,0x0C,0x9B,0x8D,0x92, + 0x12,0x89,0xDA,0x49,0x0E,0x26,0xD2,0x18,0x0D,0x92,0x8E,0x5F,0x01,0x28,0x06,0xD9, + 0x39,0x68,0xC9,0x7E,0x48,0x43,0x04,0x06,0x24,0x0E,0x00,0xD1,0x01,0x24,0x90,0x99, + 0x3D,0x68,0x08,0x20,0x08,0x5E,0xA9,0x7E,0x48,0x43,0x03,0xF0,0x57,0xF8,0x08,0x04, + 0x29,0x8B,0x00,0x0C,0x81,0x42,0x00,0xD9,0x08,0x00,0x21,0x00,0xFC,0xF7,0x9E,0xF8, + 0x90,0x99,0x48,0x81,0x21,0x00,0x30,0x00,0xFB,0xF7,0x68,0xFF,0x00,0x04,0x00,0x14, + 0x8E,0x99,0x0A,0x90,0x40,0x35,0x68,0x89,0x09,0x89,0x0D,0x9E,0x44,0x18,0xB4,0x42, + 0x00,0xD2,0x0D,0x94,0xC7,0x48,0x8C,0x90,0x80,0x7B,0xC1,0x07,0x05,0xD0,0x80,0x07, + 0x01,0xD5,0x01,0x20,0x00,0xE0,0x02,0x20,0x09,0x90,0xC3,0x49,0x00,0x20,0x8B,0x91, + 0xBA,0x4F,0x88,0x83,0x78,0x89,0xA9,0x7B,0x48,0x43,0x03,0xF0,0x5B,0xF8,0x08,0x04, + 0x8B,0x99,0x00,0x14,0xC8,0x83,0xA9,0x89,0x88,0x42,0x02,0xDA,0xA8,0x89,0x8B,0x99, + 0xC8,0x83,0x0D,0x98,0x0C,0x21,0x00,0x04,0x00,0x14,0x8A,0x90,0x20,0x04,0x00,0x14, + 0x89,0x90,0x30,0x04,0x00,0x14,0x88,0x90,0x09,0x98,0x00,0x25,0xC0,0x07,0xC0,0x0F, + 0x09,0x1A,0x87,0x91,0x0D,0x21,0x08,0x1A,0x86,0x90,0x09,0x98,0x13,0x21,0x80,0x07, + 0xC0,0x0F,0x09,0x1A,0x85,0x91,0x14,0x21,0x08,0x1A,0x84,0x90,0xAB,0x48,0x83,0x90, + 0x0E,0x20,0x68,0x43,0xA1,0x49,0x82,0x90,0x68,0x00,0x00,0x24,0x40,0x18,0x40,0x30, + 0x81,0x90,0x82,0x98,0xA6,0x49,0x00,0x19,0x00,0x04,0x00,0x14,0x1B,0x90,0x40,0x00, + 0x80,0x90,0x08,0x5E,0x8B,0x99,0x1E,0x22,0x8A,0x5E,0x90,0x42,0x02,0xDD,0x88,0x8B, + 0x40,0x1C,0x88,0x83,0x9F,0x49,0x80,0x98,0x08,0x5E,0x8A,0x99,0x88,0x42,0x7F,0x90, + 0x00,0xDA,0xFE,0xE3,0x00,0x20,0x00,0x2D,0x25,0xDD,0x1B,0x99,0x01,0x22,0x0E,0x39, + 0xC8,0x10,0x4B,0x07,0x1C,0xAF,0x38,0x5C,0x5B,0x0F,0x11,0x00,0x99,0x40,0x08,0x40, + 0x00,0x2C,0x0B,0xDD,0x1B,0x99,0x0F,0x39,0xCB,0x10,0xFE,0x5C,0x4B,0x07,0x5B,0x0F, + 0x11,0x00,0x99,0x40,0x0E,0x40,0x30,0x18,0x00,0x06,0x00,0x0E,0x0D,0x2C,0x0C,0xDA, + 0x1B,0x99,0x0D,0x39,0xCB,0x10,0x49,0x07,0xFE,0x5C,0x49,0x0F,0x8A,0x40,0x16,0x40, + 0x30,0x18,0x00,0x06,0x00,0x0E,0x00,0x2C,0x0C,0xDD,0x1B,0x99,0x1C,0xAB,0x49,0x1E, + 0xCA,0x10,0x9A,0x5C,0x4B,0x07,0x5B,0x0F,0x01,0x21,0x99,0x40,0x0A,0x40,0x10,0x18, + 0x00,0x06,0x00,0x0E,0x00,0x28,0x00,0xD0,0xC3,0xE3,0x7F,0x48,0x00,0x7D,0x80,0x07, + 0x06,0xD5,0x0D,0x2C,0x0E,0xD1,0x7D,0x48,0x00,0x78,0x01,0x28,0x0A,0xD1,0x05,0xE0, + 0x14,0x2D,0x07,0xD1,0x79,0x48,0x00,0x78,0x01,0x28,0x03,0xD1,0x74,0x4A,0x80,0x99, + 0x00,0x20,0x50,0x52,0x00,0x26,0x37,0x00,0xE9,0x19,0x8C,0x46,0x00,0x20,0x49,0x1E, + 0x0E,0x22,0x51,0x43,0x7E,0x91,0x21,0x18,0x62,0x46,0x52,0x1E,0x49,0x1E,0x00,0x2A, + 0x0D,0xDB,0x15,0x2A,0x0B,0xDC,0x00,0x29,0x09,0xDB,0x0E,0x29,0x07,0xDC,0x7E,0x9A, + 0x51,0x18,0x68,0x4A,0x49,0x00,0x51,0x5E,0xB1,0x42,0x00,0xDD,0x0E,0x00,0x40,0x1C, + 0x00,0x04,0x00,0x14,0x03,0x28,0xE6,0xDB,0x7F,0x1C,0x3F,0x04,0x3F,0x14,0x03,0x2F, + 0xDA,0xDB,0x7F,0x99,0x30,0x04,0x00,0x14,0x81,0x42,0x00,0xD0,0x81,0xE3,0x53,0x49, + 0x89,0x89,0x81,0x42,0x06,0xDC,0x51,0x49,0x88,0x81,0x08,0x79,0x40,0x1C,0x00,0x06, + 0x00,0x0E,0x0F,0x90,0x1B,0x98,0x1B,0x9B,0xC0,0x10,0x5E,0x07,0x1C,0xAA,0x11,0x5C, + 0x76,0x0F,0x01,0x23,0xB3,0x40,0x19,0x43,0x11,0x54,0x00,0x20,0x08,0x90,0x09,0x98, + 0xC0,0x07,0x0A,0xD0,0x0D,0x2C,0x01,0xD1,0x0D,0x20,0x09,0xE0,0x0C,0x2C,0x0F,0xD1, + 0x08,0x98,0x21,0x04,0x08,0x43,0x08,0x90,0x0A,0xE0,0x14,0x2D,0x02,0xD1,0x14,0x20, + 0x08,0x90,0x05,0xE0,0x13,0x2D,0x03,0xD1,0x08,0x98,0x29,0x04,0x08,0x43,0x08,0x90, + 0x08,0x98,0x00,0x04,0x7F,0x98,0x04,0xD0,0x89,0x99,0x88,0x42,0x00,0xDA,0x48,0xE3, + 0x03,0xE0,0x88,0x99,0x88,0x42,0x00,0xDA,0x43,0xE3,0x31,0x49,0x08,0x68,0x7D,0x90, + 0x00,0x88,0x40,0x04,0x04,0xD5,0x31,0x4A,0x7F,0x98,0xD2,0x89,0x80,0x1A,0x05,0xE0, + 0x37,0x4A,0x80,0x98,0x10,0x5E,0x2D,0x4A,0xD2,0x89,0x80,0x1A,0x00,0x28,0x00,0xDC, + 0x2F,0xE3,0x90,0x9B,0x0A,0x22,0x9A,0x5E,0x82,0x42,0x00,0xDB,0x29,0xE3,0x00,0x20, + 0x84,0x46,0x10,0x90,0x7D,0x98,0x40,0x30,0x7C,0x90,0x61,0x46,0x69,0x18,0x89,0x1E, + 0x09,0x06,0x09,0x16,0x0E,0x22,0x7B,0x91,0x51,0x43,0x7A,0x91,0x14,0x23,0x61,0x46, + 0x59,0x43,0x31,0xAA,0x8A,0x18,0x79,0x92,0x00,0x20,0x4A,0xAA,0x8A,0x18,0x23,0x18, + 0x9B,0x1E,0x7B,0x99,0x1E,0x06,0x36,0x16,0x16,0x29,0x03,0xD2,0x00,0x2E,0x01,0xDB, + 0x0E,0x2E,0x03,0xDD,0x00,0x21,0x83,0x00,0xD1,0x50,0x6F,0xE0,0x7D,0x99,0x09,0x88, + 0x49,0x04,0x7A,0x99,0x08,0xD5,0x1B,0x4B,0x89,0x19,0x49,0x00,0x59,0x5E,0x0A,0x9B, + 0xC9,0x1A,0x83,0x00,0xD1,0x50,0x07,0xE0,0x15,0x4B,0x89,0x19,0x49,0x00,0x59,0x5E, + 0x0A,0x9B,0xC9,0x1A,0x83,0x00,0xD1,0x50,0x81,0x00,0x53,0x58,0x00,0x2B,0x01,0xDA, + 0x00,0x27,0x57,0x50,0x7D,0x9B,0x1B,0x88,0x1B,0x04,0x21,0xE0,0x20,0x07,0x00,0x20, + 0xC8,0x07,0x00,0x20,0xE0,0x95,0x00,0x00,0xFF,0x0F,0x00,0x00,0x40,0x00,0x00,0x20, + 0x20,0x01,0x00,0x20,0x00,0x02,0x00,0x20,0x00,0x07,0x00,0x20,0xA0,0x95,0x00,0x00, + 0xA0,0x01,0x00,0x20,0x40,0x06,0x00,0x20,0x20,0x06,0x00,0x20,0x80,0x00,0x00,0x20, + 0x00,0x00,0x00,0x10,0xCE,0x07,0x00,0x20,0x00,0x93,0x00,0x00,0x44,0x07,0x00,0x20, + 0x7A,0x9F,0x08,0xD5,0xBB,0x19,0x5B,0x00,0xFF,0x4E,0x79,0x9F,0xF6,0x5E,0x0A,0x9B, + 0xF6,0x1A,0x7E,0x50,0x07,0xE0,0xBB,0x19,0xFC,0x4E,0x5B,0x00,0xF6,0x5E,0x0A,0x9B, + 0x79,0x9F,0xF6,0x1A,0x7E,0x50,0x79,0x9E,0x73,0x58,0x00,0x2B,0x02,0xDA,0x79,0x9F, + 0x00,0x26,0x7E,0x50,0x7C,0x9B,0x57,0x58,0x1E,0x89,0xB7,0x42,0x00,0xDD,0x56,0x50, + 0x61,0x46,0x00,0x29,0x0A,0xD0,0x04,0x29,0x08,0xD0,0x00,0x28,0x06,0xD0,0x04,0x28, + 0x04,0xD0,0x10,0x99,0x49,0x1C,0x09,0x06,0x09,0x0E,0x10,0x91,0x40,0x1C,0x00,0x04, + 0x00,0x14,0x05,0x28,0x00,0xDA,0x7A,0xE7,0x60,0x46,0x40,0x1C,0x00,0x04,0x00,0x14, + 0x05,0x28,0x84,0x46,0x00,0xDA,0x60,0xE7,0xE5,0x48,0x00,0x78,0x00,0x28,0x29,0xD1, + 0x10,0x98,0x40,0x1E,0x07,0x06,0x3F,0x0E,0x00,0xD1,0x01,0x27,0x57,0x9A,0x50,0xA8, + 0x00,0x92,0x07,0xC8,0x55,0x9B,0x01,0xF0,0x78,0xFD,0x06,0x00,0x5A,0xA8,0x07,0xC8, + 0x01,0xF0,0x70,0xFD,0x30,0x18,0x39,0x00,0xFB,0xF7,0x68,0xFD,0x56,0x99,0x09,0x1A, + 0x00,0x29,0x01,0xDC,0x56,0x99,0x41,0x1A,0xD6,0x48,0x00,0x68,0xC0,0x30,0x02,0x88, + 0x91,0x42,0x07,0xDA,0x40,0x88,0x56,0x99,0x81,0x42,0x03,0xDA,0x08,0x98,0x00,0x04, + 0x00,0xD1,0xF1,0xE3,0x12,0x22,0x00,0x21,0x28,0xA8,0x00,0xF0,0x81,0xFD,0x37,0x98, + 0xCC,0x49,0x28,0x90,0x38,0x98,0x29,0x90,0x39,0x98,0x2A,0x90,0x3C,0x98,0x2B,0x90, + 0x3E,0x98,0x2D,0x90,0x41,0x98,0x2E,0x90,0x42,0x98,0x2F,0x90,0x43,0x98,0x30,0x90, + 0x09,0x68,0x3D,0x98,0x89,0x8B,0x48,0x43,0x02,0xF0,0x18,0xFE,0x57,0x98,0x2C,0x91, + 0x02,0x04,0x12,0x14,0x00,0x92,0x55,0x98,0x06,0x04,0x52,0x98,0x33,0x14,0x02,0x04, + 0x51,0x98,0x12,0x14,0x01,0x04,0x50,0x98,0x09,0x14,0x00,0x04,0x00,0x14,0xFF,0xF7, + 0x3C,0xFB,0x06,0x00,0x5C,0x98,0x02,0x04,0x5B,0x98,0x12,0x14,0x01,0x04,0x5A,0x98, + 0x09,0x14,0x00,0x04,0x00,0x14,0xFF,0xF7,0x29,0xFB,0x01,0x00,0x30,0x00,0xFF,0xF7, + 0x21,0xFB,0x56,0x99,0x7D,0x22,0x52,0x01,0x91,0x42,0x07,0xDD,0x81,0x42,0x05,0xDD, + 0x08,0x1A,0x51,0x10,0x88,0x42,0x01,0xDD,0x01,0x20,0x06,0x90,0xAA,0x48,0xFF,0x21, + 0xC0,0x88,0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06,0x01,0xD5,0x01,0x20,0x06,0x90, + 0x86,0x98,0x04,0x26,0x14,0x90,0x84,0x98,0x13,0x90,0x05,0x98,0x80,0x07,0x3C,0xD5, + 0x00,0x2C,0x1B,0xD1,0x14,0x20,0x70,0x43,0x4A,0xA9,0x40,0x18,0x78,0x90,0x87,0x68, + 0xC0,0x68,0x64,0x22,0x50,0x43,0x79,0x1C,0xFB,0xF7,0xE8,0xFC,0x64,0x21,0x09,0x1A, + 0x00,0xD5,0x00,0x21,0x02,0x9A,0x38,0x00,0x51,0x43,0x48,0x43,0x02,0xF0,0xD0,0xFD, + 0x78,0x98,0x40,0x68,0x88,0x42,0x01,0xDA,0x78,0x98,0x41,0x60,0x14,0x98,0x84,0x42, + 0x1B,0xD1,0x14,0x20,0x70,0x43,0x4A,0xA9,0x40,0x18,0x77,0x90,0x87,0x68,0x40,0x68, + 0x64,0x22,0x50,0x43,0x79,0x1C,0xFB,0xF7,0xC9,0xFC,0x64,0x21,0x09,0x1A,0x00,0xD5, + 0x00,0x21,0x01,0x9A,0x38,0x00,0x51,0x43,0x48,0x43,0x02,0xF0,0xB1,0xFD,0x77,0x98, + 0xC0,0x68,0x88,0x42,0x01,0xDA,0x77,0x98,0xC1,0x60,0x05,0x98,0xC0,0x07,0x3A,0xD0, + 0x00,0x2D,0x1A,0xD1,0xB0,0x00,0x4A,0xA9,0x40,0x18,0x76,0x90,0x87,0x6A,0xC0,0x6B, + 0x64,0x22,0x50,0x43,0x79,0x1C,0xFB,0xF7,0xA9,0xFC,0x64,0x21,0x09,0x1A,0x00,0xD5, + 0x00,0x21,0x04,0x9A,0x38,0x00,0x51,0x43,0x48,0x43,0x02,0xF0,0x91,0xFD,0x76,0x98, + 0x40,0x69,0x88,0x42,0x01,0xDA,0x76,0x98,0x41,0x61,0x13,0x98,0x85,0x42,0x1A,0xD1, + 0xB0,0x00,0x4A,0xA9,0x40,0x18,0x75,0x90,0x87,0x6A,0x40,0x69,0x64,0x22,0x50,0x43, + 0x79,0x1C,0xFB,0xF7,0x8B,0xFC,0x64,0x21,0x09,0x1A,0x00,0xD5,0x00,0x21,0x03,0x9A, + 0x38,0x00,0x51,0x43,0x48,0x43,0x02,0xF0,0x73,0xFD,0x75,0x98,0xC0,0x6B,0x88,0x42, + 0x01,0xDA,0x75,0x98,0xC1,0x63,0x76,0x1E,0x36,0x04,0x36,0x14,0x00,0xD4,0x7C,0xE7, + 0x05,0x98,0x00,0x26,0x80,0x07,0x00,0xD5,0xF0,0x26,0x05,0x98,0xC0,0x07,0x01,0xD0, + 0x3C,0x20,0x06,0x43,0xB0,0x09,0x19,0xD0,0x14,0x98,0x84,0x42,0x16,0xD1,0x00,0x2D, + 0x14,0xD1,0x5A,0x98,0x64,0x22,0x50,0x43,0x56,0x99,0x49,0x1C,0xFB,0xF7,0x5E,0xFC, + 0x64,0x21,0x09,0x1A,0x00,0xD5,0x00,0x21,0x01,0x9A,0x56,0x98,0x51,0x43,0x48,0x43, + 0x02,0xF0,0x46,0xFD,0x52,0x98,0x88,0x42,0x00,0xDA,0x52,0x91,0xB0,0x06,0x80,0x0F, + 0x1A,0xD0,0x14,0x98,0x84,0x42,0x17,0xD1,0x13,0x98,0x85,0x42,0x14,0xD1,0x50,0x98, + 0x64,0x22,0x50,0x43,0x56,0x99,0x49,0x1C,0xFB,0xF7,0x40,0xFC,0x64,0x21,0x09,0x1A, + 0x00,0xD5,0x00,0x21,0x01,0x9A,0x56,0x98,0x51,0x43,0x48,0x43,0x02,0xF0,0x28,0xFD, + 0x5C,0x98,0x88,0x42,0x00,0xDA,0x5C,0x91,0x30,0x07,0x80,0x0F,0x19,0xD0,0x13,0x98, + 0x85,0x42,0x16,0xD1,0x00,0x2C,0x14,0xD1,0x52,0x98,0x64,0x22,0x50,0x43,0x56,0x99, + 0x49,0x1C,0xFB,0xF7,0x23,0xFC,0x64,0x21,0x09,0x1A,0x00,0xD5,0x00,0x21,0x03,0x9A, + 0x56,0x98,0x51,0x43,0x48,0x43,0x02,0xF0,0x0B,0xFD,0x5A,0x98,0x88,0x42,0x00,0xDA, + 0x5A,0x91,0x30,0x48,0x04,0x27,0x06,0x68,0x40,0x36,0xB0,0x78,0x80,0x06,0x22,0xD5, + 0x00,0x2C,0x20,0xD1,0x14,0x20,0x78,0x43,0x4A,0xA9,0x40,0x18,0x74,0x90,0x81,0x68, + 0xC0,0x68,0x64,0x22,0x73,0x90,0x50,0x43,0x49,0x1C,0xFB,0xF7,0xFF,0xFB,0x64,0x21, + 0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x72,0x79,0x73,0x98,0x50,0x43, + 0x48,0x43,0x02,0xF0,0xE5,0xFC,0x73,0x98,0x40,0x1A,0x74,0x99,0xC8,0x60,0x02,0xD5, + 0x74,0x99,0x00,0x20,0xC8,0x60,0xB0,0x78,0xC0,0x06,0x20,0xD5,0x01,0x2C,0x1E,0xD1, + 0x14,0x20,0x78,0x43,0x4A,0xA9,0x72,0x79,0x40,0x18,0x72,0x90,0xC1,0x68,0x4A,0x43, + 0x81,0x68,0x10,0x00,0x49,0x1C,0xFB,0xF7,0xD9,0xFB,0x64,0x21,0x08,0x1A,0x01,0x04, + 0x09,0x14,0x00,0xD5,0x00,0x21,0x72,0x98,0x40,0x68,0x48,0x43,0x02,0xF0,0xAE,0xFC, + 0x72,0x98,0x00,0x29,0x41,0x60,0x02,0xDA,0x72,0x99,0x00,0x20,0x48,0x60,0xB0,0x78, + 0x40,0x06,0x2C,0xD5,0x87,0x98,0xA0,0x42,0x29,0xD1,0x14,0x20,0x78,0x43,0x4A,0xA9, + 0xB2,0x79,0x40,0x18,0x71,0x90,0x09,0xE0,0xCE,0x07,0x00,0x20,0x00,0x00,0x00,0x10, + 0x21,0x07,0x00,0x20,0xC8,0x07,0x00,0x20,0x40,0x00,0x00,0x20,0x41,0x68,0x4A,0x43, + 0x81,0x68,0x10,0x00,0x49,0x1C,0xFB,0xF7,0xA9,0xFB,0x64,0x21,0x08,0x1A,0x01,0x04, + 0x09,0x14,0x00,0xD5,0x00,0x21,0x71,0x98,0xC0,0x68,0x48,0x43,0x02,0xF0,0x7E,0xFC, + 0x71,0x98,0x00,0x29,0xC1,0x60,0x02,0xDA,0x71,0x99,0x00,0x20,0xC8,0x60,0xB0,0x78, + 0x00,0x06,0x23,0xD5,0x86,0x98,0xA0,0x42,0x20,0xD1,0x14,0x20,0x78,0x43,0x4A,0xA9, + 0x40,0x18,0x70,0x90,0x81,0x68,0x40,0x68,0x64,0x22,0x6F,0x90,0x50,0x43,0x49,0x1C, + 0xFB,0xF7,0x84,0xFB,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21, + 0xB2,0x79,0x6F,0x98,0x50,0x43,0x48,0x43,0x02,0xF0,0x6A,0xFC,0x6F,0x98,0x40,0x1A, + 0x70,0x99,0x48,0x60,0x02,0xD5,0x70,0x99,0x00,0x20,0x48,0x60,0xB0,0x78,0x80,0x07, + 0x21,0xD5,0x00,0x2D,0x1F,0xD1,0xB8,0x00,0x4A,0xA9,0x40,0x18,0x6E,0x90,0x81,0x6A, + 0xC0,0x6B,0x64,0x22,0x6D,0x90,0x50,0x43,0x49,0x1C,0xFB,0xF7,0x5F,0xFB,0x64,0x21, + 0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0xF2,0x78,0x6D,0x98,0x50,0x43, + 0x48,0x43,0x02,0xF0,0x45,0xFC,0x6D,0x98,0x40,0x1A,0x6E,0x99,0xC8,0x63,0x02,0xD5, + 0x6E,0x99,0x00,0x20,0xC8,0x63,0xB0,0x78,0xC0,0x07,0x1F,0xD0,0x01,0x2D,0x1D,0xD1, + 0xB8,0x00,0x4A,0xA9,0xF2,0x78,0x40,0x18,0x6C,0x90,0xC1,0x6B,0x4A,0x43,0x81,0x6A, + 0x10,0x00,0x49,0x1C,0xFB,0xF7,0x3A,0xFB,0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14, + 0x00,0xD5,0x00,0x21,0x6C,0x98,0x40,0x69,0x48,0x43,0x02,0xF0,0x0F,0xFC,0x6C,0x98, + 0x00,0x29,0x41,0x61,0x02,0xDA,0x6C,0x99,0x00,0x20,0x48,0x61,0xB0,0x78,0x40,0x07, + 0x20,0xD5,0x85,0x98,0xA8,0x42,0x1D,0xD1,0xB8,0x00,0x4A,0xA9,0x32,0x79,0x40,0x18, + 0x6B,0x90,0x41,0x69,0x4A,0x43,0x81,0x6A,0x10,0x00,0x49,0x1C,0xFB,0xF7,0x16,0xFB, + 0x64,0x21,0x08,0x1A,0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x6B,0x98,0xC0,0x6B, + 0x48,0x43,0x02,0xF0,0xEB,0xFB,0x6B,0x98,0x00,0x29,0xC1,0x63,0x02,0xDA,0x6B,0x99, + 0x00,0x20,0xC8,0x63,0xB0,0x78,0x00,0x07,0x24,0xD5,0x84,0x98,0xA8,0x42,0x21,0xD1, + 0x00,0xE0,0x99,0xE1,0xB8,0x00,0x4A,0xA9,0x40,0x18,0x6A,0x90,0x81,0x6A,0x40,0x69, + 0x64,0x22,0x69,0x90,0x50,0x43,0x49,0x1C,0xFB,0xF7,0xF0,0xFA,0x64,0x21,0x08,0x1A, + 0x01,0x04,0x09,0x14,0x00,0xD5,0x00,0x21,0x32,0x79,0x69,0x98,0x50,0x43,0x48,0x43, + 0x02,0xF0,0xD6,0xFB,0x69,0x98,0x40,0x1A,0x6A,0x99,0x48,0x61,0x02,0xD5,0x6A,0x99, + 0x00,0x20,0x48,0x61,0x7F,0x1E,0x3F,0x04,0x3F,0x14,0x00,0xD4,0xC5,0xE6,0x08,0x98, + 0x00,0x28,0x2C,0xD0,0x09,0x98,0xC0,0x07,0x16,0xD0,0x04,0x20,0x00,0x22,0x4A,0xAE, + 0x08,0x99,0x09,0x04,0x06,0xD0,0x14,0x23,0x01,0x00,0x59,0x43,0x72,0x50,0x89,0x19, + 0x4A,0x60,0x04,0xE0,0x14,0x21,0x41,0x43,0x89,0x19,0xCA,0x60,0x0A,0x61,0x40,0x1E, + 0x00,0x04,0x00,0x14,0xEC,0xD5,0x12,0xE0,0x04,0x20,0x00,0x22,0x4A,0xAE,0x08,0x99, + 0x09,0x04,0x04,0xD0,0x81,0x00,0x72,0x50,0x89,0x19,0x4A,0x61,0x03,0xE0,0x81,0x00, + 0x89,0x19,0xCA,0x63,0x0A,0x65,0x40,0x1E,0x00,0x04,0x00,0x14,0xEF,0xD5,0x00,0x26, + 0x37,0x00,0xE9,0x19,0x68,0x91,0x00,0x20,0x49,0x1E,0x0E,0x22,0x51,0x43,0x8C,0x46, + 0x68,0x9A,0x21,0x18,0x52,0x1E,0x49,0x1E,0x00,0x2A,0x0C,0xDB,0x15,0x2A,0x0A,0xDC, + 0x00,0x29,0x08,0xDB,0x0E,0x29,0x06,0xDC,0x61,0x44,0x49,0x00,0xFF,0x4A,0x51,0x5E, + 0xB1,0x42,0x00,0xDD,0x0E,0x00,0x40,0x1C,0x00,0x04,0x00,0x14,0x03,0x28,0xE7,0xDB, + 0x7F,0x1C,0x3F,0x04,0x3F,0x14,0x03,0x2F,0xDB,0xDB,0xF9,0x49,0x30,0x04,0x0A,0x89, + 0x00,0x14,0x82,0x42,0x00,0xDD,0x08,0x81,0x4A,0x89,0x82,0x42,0x00,0xDA,0x48,0x81, + 0xF3,0x49,0x08,0x79,0x40,0x1C,0x00,0x06,0x00,0x0E,0x08,0x71,0x80,0x00,0x40,0x18, + 0xFF,0x30,0x21,0x30,0x84,0x80,0x08,0x79,0x80,0x00,0x40,0x18,0xFF,0x30,0x21,0x30, + 0xC5,0x80,0x2B,0xA8,0x05,0xC8,0x00,0x21,0x90,0x42,0x05,0xDC,0x28,0x98,0x90,0x42, + 0x02,0xDC,0x2E,0x98,0x90,0x42,0x00,0xDD,0xC0,0x21,0x2D,0x98,0x90,0x42,0x05,0xDC, + 0x2A,0x98,0x90,0x42,0x02,0xDC,0x30,0x98,0x90,0x42,0x01,0xDD,0x30,0x20,0x01,0x43, + 0x29,0x98,0x90,0x42,0x05,0xDC,0x28,0x98,0x90,0x42,0x02,0xDC,0x2A,0x98,0x90,0x42, + 0x01,0xDD,0x0C,0x20,0x01,0x43,0x2F,0x98,0x90,0x42,0x05,0xDC,0x2E,0x98,0x90,0x42, + 0x02,0xDC,0x30,0x98,0x90,0x42,0x01,0xDD,0x03,0x20,0x01,0x43,0x8F,0x06,0x0A,0x07, + 0x04,0x20,0x94,0x46,0x00,0x22,0x8B,0x09,0x04,0xD1,0x14,0x26,0x03,0x00,0x73,0x43, + 0x4A,0xAE,0xF2,0x50,0xBB,0x0F,0x05,0xD1,0x14,0x26,0x03,0x00,0x73,0x43,0x4A,0xAE, + 0x9B,0x19,0x1A,0x61,0x63,0x46,0x9B,0x0F,0x02,0xD1,0x83,0x00,0x4A,0xAE,0xF2,0x50, + 0x8B,0x07,0x03,0xD1,0x83,0x00,0x4A,0xAE,0x9B,0x19,0x1A,0x65,0x40,0x1E,0x00,0x04, + 0x00,0x14,0xE0,0xD5,0x4E,0x9A,0x4A,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0x15,0xFA, + 0x53,0x9A,0x19,0x90,0x4F,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0x0E,0xFA,0x58,0x9A, + 0x18,0x90,0x54,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0x07,0xFA,0x17,0x90,0x5D,0x9A, + 0x59,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0x00,0xFA,0x62,0x9A,0x16,0x90,0x5E,0xA8, + 0x00,0x92,0x0F,0xC8,0x01,0xF0,0xF9,0xF9,0x15,0x90,0x00,0x90,0x16,0x9B,0x17,0x9A, + 0x18,0x99,0x19,0x98,0x01,0xF0,0xF1,0xF9,0x00,0x28,0x1A,0x90,0x08,0xD1,0x64,0x22, + 0x00,0x21,0x4A,0xA8,0x00,0xF0,0x14,0xFA,0x0A,0x20,0x56,0x90,0x17,0x90,0x1A,0x90, + 0x5E,0x9A,0x59,0x9B,0x00,0x92,0x54,0x9A,0x4F,0x99,0x4A,0x98,0x01,0xF0,0xDD,0xF9, + 0xA3,0x4A,0x61,0x00,0x8E,0x18,0xF1,0x8B,0x48,0x43,0x14,0x90,0x5F,0x9A,0x00,0x92, + 0x5A,0x9B,0x55,0x9A,0x50,0x99,0x4B,0x98,0x01,0xF0,0xCF,0xF9,0x31,0x8C,0x60,0x9A, + 0x5B,0x9B,0x48,0x43,0x13,0x90,0x00,0x92,0x56,0x9A,0x51,0x99,0x4C,0x98,0x01,0xF0, + 0xC4,0xF9,0x71,0x8C,0x61,0x9A,0x5C,0x9B,0x48,0x43,0x12,0x90,0x00,0x92,0x57,0x9A, + 0x52,0x99,0x4D,0x98,0x01,0xF0,0xB9,0xF9,0xB1,0x8C,0x07,0x00,0x62,0x9A,0x4F,0x43, + 0x00,0x92,0x5D,0x9B,0x58,0x9A,0x53,0x99,0x4E,0x98,0x11,0x97,0x01,0xF0,0xAD,0xF9, + 0xF1,0x8C,0x11,0x9B,0x12,0x9A,0x48,0x43,0x00,0x90,0x13,0x99,0x14,0x98,0x01,0xF0, + 0xA4,0xF9,0x1A,0x99,0xFB,0xF7,0x9A,0xF9,0x85,0x49,0x09,0x8C,0x49,0x00,0x40,0x1A, + 0x00,0xD5,0x00,0x20,0x82,0x4F,0x39,0x79,0x49,0x00,0xC9,0x19,0xE0,0x31,0x88,0x82, + 0x81,0x98,0x19,0x99,0x40,0x8A,0x18,0x9A,0x17,0x9B,0x48,0x43,0x81,0x99,0x89,0x8A, + 0x51,0x43,0x81,0x9A,0xD2,0x8A,0x5A,0x43,0x94,0x46,0x81,0x9A,0x15,0x9B,0x16,0x8B, + 0x16,0x9A,0x56,0x43,0x81,0x9A,0x52,0x8B,0x5A,0x43,0x00,0x92,0x33,0x00,0x62,0x46, + 0x01,0xF0,0x7B,0xF9,0x1A,0x99,0xFB,0xF7,0x71,0xF9,0x83,0x99,0x89,0x8A,0x49,0x00, + 0x40,0x1A,0x00,0xD5,0x00,0x20,0x39,0x79,0x49,0x00,0xC9,0x19,0xFF,0x31,0x01,0x31, + 0xC8,0x81,0x38,0x79,0x0C,0x28,0x10,0xD2,0x64,0x1C,0x24,0x04,0x24,0x14,0x0E,0x2C, + 0x01,0xDA,0xFF,0xF7,0x46,0xFA,0x0E,0x98,0x00,0x28,0x06,0xD1,0x6D,0x1C,0x2D,0x04, + 0x2D,0x14,0x15,0x2D,0x01,0xDA,0xFF,0xF7,0x33,0xFA,0x62,0x48,0x04,0x68,0x20,0x88, + 0x00,0x06,0x4C,0xD5,0x5E,0x4A,0x10,0x79,0x00,0x28,0x8D,0x98,0x0C,0xD1,0x00,0x89, + 0x00,0x28,0x3D,0xD0,0x8D,0x98,0x20,0x34,0x40,0x79,0x21,0x7F,0x88,0x42,0x37,0xD2, + 0x8D,0x99,0x40,0x1C,0x48,0x71,0x3A,0xE0,0x25,0x00,0x20,0x35,0x80,0x79,0x29,0x7D, + 0x88,0x42,0x29,0xD8,0x40,0x1C,0x8D,0x99,0x00,0x06,0x00,0x0E,0x88,0x71,0x69,0x7D, + 0x81,0x42,0x03,0xD2,0x92,0x89,0x0B,0x9B,0xD2,0x18,0x0B,0x92,0x2A,0x7D,0x90,0x42, + 0x1A,0xD1,0x88,0x42,0x18,0xD0,0x41,0x1A,0x0B,0x98,0xFB,0xF7,0x4F,0xFA,0x8D,0x9A, + 0x00,0x21,0x11,0x81,0x21,0x8F,0x81,0x42,0x0E,0xD2,0x0C,0x99,0x40,0x1A,0xA9,0x7D, + 0x48,0x43,0x02,0xF0,0x27,0xFA,0x8D,0x98,0x09,0x04,0x09,0x0C,0x01,0x81,0x60,0x8F, + 0x81,0x42,0x01,0xD9,0x8D,0x99,0x08,0x81,0x8D,0x98,0x00,0x21,0x41,0x71,0x06,0xE0, + 0x8D,0x99,0x00,0x20,0x88,0x71,0x8D,0x99,0x48,0x71,0x8D,0x99,0x08,0x81,0x00,0x20, + 0x84,0x46,0x09,0x90,0x36,0x48,0x01,0x22,0x00,0x79,0x01,0x28,0x67,0x90,0x53,0xDB, + 0x8C,0x98,0xC0,0x7B,0x66,0x90,0x32,0x49,0x50,0x00,0x40,0x18,0xF4,0x23,0x1B,0x5A, + 0x31,0x4C,0xFF,0x30,0x63,0x43,0x01,0x30,0xC0,0x89,0xDD,0x0C,0x23,0x00,0x58,0x43, + 0xC6,0x0C,0x66,0x9B,0x00,0x20,0x00,0x2B,0x09,0x90,0x37,0xDD,0x14,0x06,0x28,0x4B, + 0x24,0x0E,0x91,0x00,0x65,0x94,0xCC,0x18,0xFF,0x34,0x21,0x34,0x24,0x4B,0xC1,0x00, + 0xCB,0x18,0x03,0x21,0x49,0x02,0x59,0x18,0x10,0x27,0xCF,0x5F,0xAF,0x42,0x1D,0xDC, + 0x14,0x27,0xCF,0x5F,0xAF,0x42,0x19,0xDB,0x12,0x27,0xCF,0x5F,0xB7,0x42,0x15,0xDC, + 0x16,0x27,0xCF,0x5F,0xB7,0x42,0x11,0xDB,0x06,0x21,0x61,0x5E,0x0E,0x23,0x59,0x43, + 0x04,0x23,0xE3,0x5E,0xC9,0x18,0x4B,0x00,0x14,0x49,0xC9,0x5E,0x61,0x45,0x07,0xDD, + 0x8C,0x46,0x65,0x99,0x09,0x91,0x00,0x21,0x07,0x91,0x01,0xE0,0x01,0x21,0xFB,0xE7, + 0x40,0x1C,0x66,0x99,0x00,0x04,0x00,0x14,0x81,0x42,0xCF,0xDC,0x52,0x1C,0x67,0x98, + 0x12,0x04,0x12,0x14,0x90,0x42,0xAE,0xDA,0x09,0x48,0x41,0x89,0x05,0x00,0x28,0x00, + 0xF4,0x30,0x04,0x00,0x1A,0x34,0xAD,0x1C,0x64,0x94,0x2C,0x00,0xFF,0x35,0xE0,0x34, + 0x01,0x35,0x61,0x45,0x22,0xDC,0x09,0x99,0x00,0x29,0x07,0xE0,0x00,0x00,0x00,0x10, + 0x40,0x00,0x00,0x20,0xC8,0x07,0x00,0x20,0xCD,0xCC,0x00,0x00,0x16,0xD0,0x36,0x4A, + 0x49,0x00,0x89,0x18,0xF4,0x22,0x56,0x5A,0xFF,0x31,0x01,0x31,0xCF,0x89,0x1A,0x22, + 0x00,0x21,0x00,0xF0,0xAD,0xF8,0x64,0x98,0x1A,0x22,0x00,0x21,0x00,0xF0,0xA8,0xF8, + 0x2D,0x49,0x01,0x20,0x08,0x71,0xA6,0x82,0xEF,0x81,0x23,0xE0,0x2A,0x4F,0x79,0x79, + 0x00,0x29,0x1F,0xD1,0x67,0x99,0x01,0x29,0x1C,0xD9,0x8F,0x99,0x89,0x7A,0x00,0x29, + 0x18,0xD1,0x0F,0x99,0x00,0x29,0x15,0xD0,0x49,0x00,0xC9,0x19,0xF4,0x22,0x52,0x5A, + 0xFF,0x31,0x01,0x31,0x63,0x92,0xCE,0x89,0x1A,0x22,0x00,0x21,0x00,0xF0,0x88,0xF8, + 0x64,0x98,0x1A,0x22,0x00,0x21,0x00,0xF0,0x83,0xF8,0x01,0x20,0x38,0x71,0x63,0x9A, + 0xA2,0x82,0xEE,0x81,0x8C,0x98,0x80,0x7A,0x00,0x28,0x10,0xD0,0x07,0x98,0x00,0x28, + 0x0D,0xD0,0x15,0x48,0x00,0x21,0x01,0x71,0x8C,0x98,0x14,0x4A,0x00,0x7B,0x92,0x7F, + 0x90,0x42,0x01,0xD3,0x8C,0x9A,0xD1,0x72,0x8C,0x99,0x40,0x1C,0x08,0x73,0x06,0x98, + 0x00,0x28,0x0E,0xD0,0x0C,0x48,0x00,0x79,0x00,0x28,0x0A,0xD0,0x0C,0x49,0x8E,0x98, + 0x49,0x89,0xC0,0x68,0x0A,0x31,0x88,0x42,0x06,0xDA,0x8E,0x99,0x40,0x1C,0xC8,0x60, + 0x02,0xE0,0x8E,0x98,0x00,0x21,0xC1,0x60,0x03,0x48,0x01,0x79,0x41,0x71,0x7F,0xB0, + 0x12,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00, + 0x80,0x95,0x00,0x00,0x78,0x47,0xC0,0x46,0x41,0x11,0xA0,0xE1,0x01,0x10,0x51,0xE2, + 0x1E,0xFF,0x2F,0x31,0x00,0x20,0xA0,0xE3,0x01,0x10,0x51,0xE2,0x04,0x20,0x80,0xE4, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0x01,0x30,0xD1,0xE4,0x01,0x20,0x52,0xE2,0x01,0x30,0xC0,0xE4, + 0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0xC2,0x20,0xA0,0xE1, + 0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0xB2,0x30,0xD1,0xE0,0x01,0x20,0x52,0xE2, + 0xB2,0x30,0xC0,0xE0,0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46, + 0x42,0x21,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0x04,0x30,0x91,0xE4, + 0x01,0x20,0x52,0xE2,0x04,0x30,0x80,0xE4,0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1, + 0x78,0x47,0xC0,0x46,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0xFF,0x10,0x01,0xE2, + 0x01,0x20,0x52,0xE2,0x01,0x10,0xC0,0xE4,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1, + 0x78,0x47,0xC0,0x46,0x42,0x21,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0x01,0x20,0x52,0xE2,0x04,0x10,0x80,0xE4,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1, + 0x0A,0x49,0x00,0x20,0xC9,0x88,0x4A,0x06,0x09,0x49,0x00,0xD5,0xC8,0x7A,0x89,0x7A, + 0x08,0x18,0x00,0x06,0x01,0x0C,0x07,0x48,0x02,0x69,0xFF,0x23,0x1B,0x02,0x9A,0x43, + 0x02,0x61,0x02,0x69,0x0A,0x43,0x02,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0x80,0x93,0x00,0x00,0x00,0x90,0x00,0x40,0x10,0xB5,0x0F,0x48,0x0F,0x49,0x00,0x89, + 0x49,0x88,0x00,0x24,0x40,0x18,0x0E,0x49,0x09,0x78,0x00,0x29,0x02,0xD0,0x0D,0x49, + 0x49,0x89,0x02,0xE0,0x0C,0x49,0x09,0x68,0x49,0x88,0x08,0x18,0x0B,0x49,0xC9,0x6B, + 0x49,0x04,0x49,0x0C,0x81,0x42,0x00,0xD3,0x01,0x24,0xFE,0xF7,0xBF,0xFC,0x20,0x00, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x01,0x00,0x20,0x00,0x07,0x00,0x20, + 0x20,0x07,0x00,0x20,0xA0,0x95,0x00,0x00,0xC8,0x07,0x00,0x20,0xC0,0x90,0x00,0x40, + 0xF7,0xB5,0x24,0x4E,0x82,0xB0,0xB0,0x7F,0xF1,0x7F,0x00,0x02,0x08,0x43,0x01,0xF0, + 0x15,0xFD,0x30,0x00,0x20,0x38,0x00,0x7D,0xC0,0x07,0x0A,0xD0,0x1E,0x48,0x01,0x78, + 0x1E,0x48,0x00,0x7F,0x00,0x29,0x02,0xD0,0x01,0xF0,0xB8,0xFC,0x01,0xE0,0x01,0xF0, + 0xDD,0xFC,0x18,0x49,0x01,0x25,0x20,0x39,0x08,0x00,0xC0,0x30,0x01,0x90,0x05,0x20, + 0xC0,0x01,0x17,0x4F,0x08,0x18,0x00,0x90,0x00,0x20,0xF8,0x62,0x01,0x98,0x80,0x68, + 0x38,0x62,0x00,0x98,0x00,0x6B,0x78,0x62,0x03,0x24,0xE0,0x07,0xC0,0x0F,0xFB,0xF7, + 0x93,0xFE,0x64,0x1E,0xF9,0xD5,0x01,0x20,0xF8,0x62,0x30,0x7F,0x01,0x00,0xFB,0xF7, + 0x01,0xFF,0x01,0x24,0x02,0xA8,0x07,0xC8,0xFE,0xF7,0x0E,0xFC,0x00,0x28,0x01,0xD1, + 0x00,0x24,0x25,0x00,0x64,0x1E,0xF5,0xD5,0x6D,0x1E,0xDD,0xD5,0x05,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x20,0x93,0x00,0x00,0x18,0x07,0x00,0x20,0x60,0x06,0x00,0x20, + 0x80,0x90,0x00,0x40,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x00,0x00,0xA0,0xE3, + 0x73,0xDF,0x4D,0xE2,0xB8,0x01,0x8D,0xE5,0x2C,0x00,0x8D,0xE5,0x28,0x00,0x8D,0xE5, + 0x24,0x00,0x8D,0xE5,0x1C,0x00,0x8D,0xE5,0x18,0x00,0x8D,0xE5,0x14,0x00,0x8D,0xE5, + 0x00,0x50,0xA0,0xE1,0x00,0x70,0xA0,0xE1,0x00,0x80,0xA0,0xE1,0x00,0x90,0xA0,0xE1, + 0x00,0xA0,0xA0,0xE1,0x00,0x10,0xA0,0xE1,0x20,0x00,0x8D,0xE5,0x10,0x00,0x8D,0xE5, + 0x08,0x00,0x8D,0xE5,0x04,0x00,0x8D,0xE5,0x00,0x00,0x8D,0xE5,0x7C,0x06,0x9F,0xE5, + 0x7C,0x46,0x9F,0xE5,0xC8,0x01,0x8D,0xE5,0xB0,0x1C,0xC0,0xE1,0xC8,0x01,0x9D,0xE5, + 0x30,0x20,0xA0,0xE3,0xB2,0x1C,0xC0,0xE1,0xC8,0x01,0x9D,0xE5,0xB4,0x1C,0xC0,0xE1, + 0x00,0x10,0xA0,0xE3,0x88,0x00,0x84,0xE2,0x81,0xFF,0xFF,0xEB,0x30,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0xB8,0x00,0x84,0xE2,0x7D,0xFF,0xFF,0xEB,0x00,0x60,0xA0,0xE3, + 0x60,0x10,0xA0,0xE3,0x15,0x0E,0x8D,0xE2,0xB8,0x6E,0xC4,0xE1,0x55,0xFF,0xFF,0xEB, + 0x60,0x10,0xA0,0xE3,0xF0,0x00,0x8D,0xE2,0x52,0xFF,0xFF,0xEB,0x60,0x10,0xA0,0xE3, + 0x90,0x00,0x8D,0xE2,0x4F,0xFF,0xFF,0xEB,0x60,0x10,0xA0,0xE3,0x30,0x00,0x8D,0xE2, + 0x4C,0xFF,0xFF,0xEB,0x0C,0x06,0x9F,0xE5,0x0C,0x16,0x9F,0xE5,0x00,0x00,0xD0,0xE5, + 0xC4,0x11,0x8D,0xE5,0x00,0x00,0x50,0xE3,0x03,0x00,0x00,0x0A,0xF8,0x0A,0xD1,0xE1, + 0xB4,0x01,0x8D,0xE5,0xB6,0x0A,0xD1,0xE1,0x04,0x00,0x00,0xEA,0xEC,0x05,0x9F,0xE5, + 0x00,0x00,0x90,0xE5,0xF6,0x12,0xD0,0xE1,0xB4,0x11,0x8D,0xE5,0xB4,0x02,0xD0,0xE1, + 0x01,0x18,0xE0,0xE3,0xB0,0x01,0x8D,0xE5,0xC4,0x05,0x9F,0xE5,0xB6,0x00,0xD0,0xE1, + 0x40,0x00,0x10,0xE3,0xC4,0x01,0x9D,0xE5,0xB0,0xB8,0xD0,0x01,0xB0,0x08,0xD0,0x11, + 0x80,0xB0,0x01,0x10,0x8B,0x00,0x01,0xE0,0x0C,0x00,0x8D,0xE5,0x00,0x00,0xA0,0xE3, + 0xAC,0x15,0x9F,0xE5,0x00,0x30,0xA0,0xE1,0x00,0x20,0xA0,0xE1,0x00,0x00,0xC1,0xE5, + 0x00,0x10,0xA0,0xE3,0x9C,0x05,0x9F,0xE5,0x9C,0xC5,0x9F,0xE5,0x83,0x00,0x80,0xE0, + 0xC0,0x01,0x8D,0xE5,0xB0,0x00,0xD0,0xE1,0x83,0xC0,0x8C,0xE0,0xB0,0xC0,0xDC,0xE1, + 0x00,0x0A,0xA0,0xE1,0x20,0x0A,0xA0,0xE1,0x0F,0xCA,0xCC,0xE3,0x0C,0x40,0x40,0xE0, + 0x06,0x00,0x54,0xE1,0x04,0x60,0xA0,0xC1,0x2C,0x10,0x8D,0xC5,0x28,0x20,0x8D,0xC5, + 0xC8,0x00,0x54,0xE3,0x00,0x00,0x4C,0xE0,0x01,0xA0,0x8A,0xC2,0x96,0x00,0x50,0xE3, + 0x04,0xC0,0x9D,0xC5,0x01,0x30,0x83,0xE2,0x01,0xC0,0x8C,0xC2,0x04,0xC0,0x8D,0xC5, + 0x19,0x0E,0x54,0xE3,0x00,0xC0,0x9D,0xC5,0x01,0xC0,0x8C,0xC2,0x00,0xC0,0x8D,0xC5, + 0xF0,0xC0,0x8D,0xE2,0x01,0xE1,0x9C,0xE7,0x00,0x00,0x54,0xE3,0x00,0x40,0xA0,0xB3, + 0x04,0xE0,0x8E,0xE0,0x01,0xE1,0x8C,0xE7,0x15,0xCE,0x8D,0xE2,0x02,0xE1,0x9C,0xE7, + 0x00,0x00,0x50,0xE3,0x04,0xE0,0x8E,0xE0,0x02,0xE1,0x8C,0xE7,0x30,0xC0,0x8D,0xE2, + 0x01,0xE1,0x9C,0xE7,0x00,0x00,0xA0,0xB3,0x00,0xE0,0x8E,0xE0,0x01,0xE1,0x8C,0xE7, + 0x90,0xC0,0x8D,0xE2,0x02,0xE1,0x9C,0xE7,0x0B,0x00,0x50,0xE1,0x00,0xE0,0x8E,0xE0, + 0x02,0xE1,0x8C,0xE7,0x01,0xC0,0x85,0xC2,0x01,0x58,0xCC,0xC3,0x0B,0x00,0x54,0xE1, + 0x01,0xC0,0x87,0xC2,0x01,0x78,0xCC,0xC3,0x0C,0xC0,0x9D,0xE5,0x01,0x10,0x81,0xE2, + 0x0C,0x00,0x50,0xE1,0x01,0xC0,0x88,0xC2,0x01,0x88,0xCC,0xC3,0x0C,0xC0,0x9D,0xE5, + 0x0C,0x00,0x54,0xE1,0x01,0xC0,0x89,0xC2,0x01,0x98,0xCC,0xC3,0x08,0xC0,0x9D,0xE5, + 0x0E,0x00,0x51,0xE3,0x0C,0x00,0x80,0xE0,0x08,0x00,0x8D,0xE5,0xC0,0x01,0x9D,0xE5, + 0xB0,0x40,0xC0,0xE1,0xB4,0x01,0x9D,0xE5,0xB8,0xC1,0x9D,0xE5,0x04,0x00,0x80,0xE0, + 0x0C,0x00,0x80,0xE0,0xB8,0x01,0x8D,0xE5,0xB5,0xFF,0xFF,0x3A,0x01,0x20,0x82,0xE2, + 0x15,0x00,0x52,0xE3,0xB1,0xFF,0xFF,0x3A,0x70,0xC4,0x9F,0xE5,0x64,0x44,0x9F,0xE5, + 0x01,0xEA,0xA0,0xE3,0x0E,0x00,0x43,0xE2,0x00,0x10,0xA0,0xE3,0x01,0xE0,0x4E,0xE2, + 0x80,0x20,0x84,0xE0,0xF0,0x30,0xD2,0xE1,0x01,0x10,0x81,0xE2,0x01,0x00,0x80,0xE2, + 0x03,0x31,0x83,0xE0,0x03,0x32,0xA0,0xE1,0x9C,0xB3,0xC3,0xE0,0xC3,0xB2,0xA0,0xE1, + 0xC3,0x3F,0x4B,0xE0,0x01,0x0A,0x53,0xE3,0x0E,0x30,0xA0,0xA1,0x0E,0x00,0x51,0xE3, + 0xB0,0x30,0xC2,0xE1,0xF1,0xFF,0xFF,0x3A,0xC8,0x01,0x9D,0xE5,0xB0,0xAC,0xC0,0xE1, + 0x04,0x00,0x9D,0xE5,0xC8,0x11,0x9D,0xE5,0xB2,0x0C,0xC1,0xE1,0xC8,0x01,0x9D,0xE5, + 0x00,0x10,0x9D,0xE5,0xB4,0x1C,0xC0,0xE1,0x70,0xF9,0xFF,0xEB,0xEC,0x03,0x9F,0xE5, + 0xDC,0xC3,0x9F,0xE5,0x00,0x40,0x90,0xE5,0xB4,0x00,0xD4,0xE1,0xBE,0x00,0xCC,0xE1, + 0xB0,0x00,0xD4,0xE1,0x01,0x00,0x10,0xE3,0x08,0x00,0x00,0x0A,0xB8,0x01,0x9D,0xE5, + 0xB0,0x11,0x9D,0xE5,0x90,0x01,0x01,0xE0,0xD4,0x03,0x9F,0xE5,0x90,0x21,0x81,0xE0, + 0x21,0x06,0xA0,0xE1,0xB4,0x10,0xD4,0xE1,0x00,0x00,0x51,0xE1,0xBE,0x00,0xCC,0x81, + 0xC0,0xA3,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0x90,0xE0,0x8D,0xE2,0x08,0x20,0xD4,0xE5, + 0x15,0x1E,0x8D,0xE2,0x00,0x11,0x91,0xE7,0x92,0x01,0x01,0xE0,0x9A,0x31,0x82,0xE0, + 0xA2,0x34,0xA0,0xE1,0xB0,0x21,0xD4,0xE1,0x02,0x00,0x53,0xE1,0x9A,0x21,0x81,0x90, + 0x09,0x30,0xD4,0xE5,0xA1,0x24,0xA0,0x91,0x00,0x11,0x9E,0xE7,0x91,0x03,0x03,0xE0, + 0x9A,0xB3,0x81,0xE0,0xA1,0xB4,0xA0,0xE1,0xB2,0x11,0xD4,0xE1,0x01,0x00,0x5B,0xE1, + 0x9A,0x33,0x81,0x90,0xA1,0x14,0xA0,0x91,0x01,0x10,0x42,0xE0,0xBC,0x20,0xD4,0xE1, + 0x92,0x01,0x01,0xE0,0x01,0x18,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x01,0x25,0x61,0xE0, + 0x02,0x21,0x82,0xE0,0x81,0x13,0x82,0xE0,0xC1,0x29,0xA0,0xE1,0xC1,0x1F,0x42,0xE0, + 0x80,0x20,0x8C,0xE0,0x01,0x00,0x80,0xE2,0x15,0x00,0x50,0xE3,0xB8,0x18,0xC2,0xE1, + 0xDD,0xFF,0xFF,0x3A,0x30,0x23,0x9F,0xE5,0x00,0xA0,0xA0,0xE3,0xF0,0xB0,0x8D,0xE2, + 0x0A,0x10,0xD4,0xE5,0x0A,0x01,0x9B,0xE7,0x90,0x01,0x01,0xE0,0x92,0x31,0x80,0xE0, + 0xA0,0x35,0xA0,0xE1,0xB4,0x01,0xD4,0xE1,0x00,0x00,0x53,0xE1,0x92,0x11,0x80,0x90, + 0x0B,0x30,0xD4,0xE5,0x30,0x10,0x8D,0xE2,0x0A,0x11,0x91,0xE7,0xA0,0x05,0xA0,0x91, + 0x91,0x03,0x03,0xE0,0x92,0xC3,0x81,0xE0,0xA1,0xC5,0xA0,0xE1,0xB6,0x11,0xD4,0xE1, + 0x01,0x00,0x5C,0xE1,0x92,0x33,0x81,0x90,0xA1,0x15,0xA0,0x91,0x01,0x00,0x40,0xE0, + 0xBE,0x10,0xD4,0xE1,0x91,0x00,0x00,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x00,0x15,0x60,0xE0,0x01,0x11,0x81,0xE0,0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1, + 0xC0,0x0F,0x41,0xE0,0x88,0x12,0x9F,0xE5,0x8A,0x10,0x81,0xE0,0x01,0xA0,0x8A,0xE2, + 0x0D,0x00,0x5A,0xE3,0xB8,0x0B,0xC1,0xE1,0xDC,0xFF,0xFF,0x3A,0x0A,0x00,0xD4,0xE5, + 0x0A,0x11,0x9B,0xE7,0x64,0x20,0xA0,0xE3,0x91,0x00,0x00,0xE0,0x8C,0x12,0x9F,0xE5, + 0x15,0x10,0xD1,0xE5,0x92,0x01,0x01,0xE0,0xBC,0x11,0x8D,0xE5,0xFF,0xEA,0xFF,0xEB, + 0xB4,0x11,0xD4,0xE1,0x01,0x00,0x50,0xE1,0x00,0xB0,0xA0,0x91,0x01,0xB0,0xA0,0x81, + 0x0B,0x10,0xD4,0xE5,0x30,0x00,0x8D,0xE2,0x0A,0x01,0x90,0xE7,0x91,0x00,0x00,0xE0, + 0xBC,0x11,0x9D,0xE5,0xF5,0xEA,0xFF,0xEB,0xB6,0x11,0xD4,0xE1,0x01,0x00,0x50,0xE1, + 0x01,0x00,0xA0,0x81,0xBE,0x10,0xD4,0xE1,0x00,0x00,0x4B,0xE0,0x10,0x42,0x9F,0xE5, + 0x91,0x00,0x00,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x00,0x15,0x60,0xE0, + 0x01,0x11,0x81,0xE0,0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1,0xC0,0x0F,0x41,0xE0, + 0x8A,0x10,0x84,0xE0,0x00,0x00,0x56,0xE3,0xB8,0x0B,0xC1,0xE1,0x0C,0x00,0x00,0xDA, + 0x2C,0x00,0x9D,0xE5,0x80,0x00,0x84,0xE0,0xB8,0x1B,0xD0,0xE1,0x28,0x00,0x9D,0xE5, + 0x80,0x00,0x84,0xE0,0xB8,0x08,0xD0,0xE1,0x01,0x00,0x80,0xE0,0x00,0x00,0x46,0xE0, + 0x00,0x08,0xA0,0xE1,0x40,0x08,0xB0,0xE1,0xB8,0x0E,0xC4,0xE1,0x00,0x00,0xA0,0x43, + 0xB8,0x0E,0xC4,0x41,0x11,0x10,0xA0,0xE3,0x08,0x00,0x9D,0xE5,0x01,0x1C,0x81,0xE2, + 0xD2,0xEA,0xFF,0xEB,0xB6,0x10,0xD4,0xE1,0x40,0x00,0x11,0xE3,0x0E,0x00,0x00,0x0A, + 0x87,0x00,0x55,0xE1,0x01,0x20,0xA0,0x83,0x20,0x20,0x8D,0x85,0xFA,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x83,0x1C,0x00,0x8D,0x85,0x23,0x00,0x58,0xE3,0x01,0x00,0xA0,0x83, + 0x18,0x00,0x8D,0x85,0x23,0x00,0x59,0xE3,0x01,0x00,0xA0,0x33,0x14,0x00,0x8D,0x35, + 0x14,0x00,0x55,0xE3,0x11,0x00,0x00,0x9A,0x0E,0x00,0x00,0xEA,0x07,0x00,0x55,0xE1, + 0x08,0x00,0x55,0x83,0x01,0x20,0xA0,0x83,0x20,0x20,0x8D,0x85,0x96,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x83,0x1C,0x00,0x8D,0x85,0x14,0x00,0x58,0xE3,0x01,0x00,0xA0,0x83, + 0x18,0x00,0x8D,0x85,0x14,0x00,0x59,0xE3,0x01,0x00,0xA0,0x33,0x14,0x00,0x8D,0x35, + 0x0A,0x00,0x55,0xE3,0x01,0x00,0x00,0x9A,0x01,0x00,0xA0,0xE3,0x10,0x00,0x8D,0xE5, + 0xF1,0x00,0xD4,0xE5,0x00,0x00,0x50,0xE3,0xF2,0x00,0xD4,0xE5,0x03,0x00,0x00,0x0A, + 0xFA,0x00,0x50,0xE3,0x05,0x00,0x00,0x2A,0x01,0x00,0x80,0xE2,0x02,0x00,0x00,0xEA, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x00,0x0A,0x01,0x00,0x40,0xE2,0xF2,0x00,0xC4,0xE5, + 0x1C,0x20,0x8D,0xE2,0x05,0x00,0x92,0xE8,0x14,0x30,0x9D,0xE5,0x00,0x20,0x82,0xE1, + 0x18,0x00,0x9D,0xE5,0x10,0x00,0x11,0xE3,0x03,0x00,0x00,0xE0,0x00,0x20,0x82,0xE1, + 0x10,0x00,0x9D,0x15,0x00,0x00,0x50,0x13,0x00,0x00,0xA0,0x03,0x01,0x00,0xA0,0x13, + 0x02,0x00,0x80,0xE1,0x00,0x00,0x50,0xE3,0xF2,0x00,0xD4,0x15,0x05,0x00,0x50,0x13, + 0x02,0x00,0x00,0x8A,0x24,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x07,0x00,0x00,0x0A, + 0xEC,0x00,0x94,0xE5,0x01,0x00,0x80,0xE2,0xEC,0x00,0x84,0xE5,0xF0,0x00,0xD4,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0x12,0xF0,0x00,0xC4,0x15,0x0D,0x00,0x00,0xEA, + 0xF0,0x00,0xD4,0xE5,0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2,0xF0,0x00,0xC4,0xE5, + 0xC4,0x11,0x9D,0xE5,0xB4,0x18,0xD1,0xE1,0x01,0x00,0x50,0xE1,0x05,0x00,0x00,0x1A, + 0x00,0x00,0xA0,0xE3,0xF0,0x00,0xC4,0xE5,0xEC,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3, + 0x01,0x00,0x40,0xC2,0xEC,0x00,0x84,0xC5,0xF2,0x00,0xD4,0xE5,0x0A,0x00,0x50,0xE3, + 0x73,0xDF,0x8D,0x22,0xF0,0x4F,0xBD,0x28,0x1E,0xFF,0x2F,0x21,0xEC,0x00,0x94,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0xA0,0xC3,0xEC,0x00,0x84,0xC5,0x00,0x00,0xA0,0xE3, + 0xF0,0x00,0xC4,0xE5,0x73,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x40,0x01,0x00,0x20,0x40,0x00,0x00,0x20,0x20,0x07,0x00,0x20,0x00,0x95,0x00,0x00, + 0xC8,0x07,0x00,0x20,0x44,0x07,0x00,0x20,0x00,0x00,0x00,0x10,0xD2,0x02,0x00,0x10, + 0x1F,0x85,0xEB,0x51,0x2B,0x75,0xAA,0x23,0x91,0x73,0x9F,0x5D,0x2D,0x34,0xA9,0xF9, + 0x00,0x93,0x00,0x00,0x10,0xB5,0x16,0x4C,0xA0,0x7B,0x00,0x28,0x07,0xD1,0xFB,0xF7, + 0x7D,0xFD,0x00,0x28,0x0F,0xD0,0xFC,0xF7,0xBF,0xFF,0x01,0x20,0x0A,0xE0,0x01,0x28, + 0x0C,0xD1,0xFB,0xF7,0x7D,0xFD,0x00,0x28,0x05,0xD0,0xFC,0xF7,0x67,0xFC,0x00,0xF0, + 0x6D,0xFB,0x02,0x20,0xA0,0x73,0x10,0xBC,0x08,0xBC,0x18,0x47,0x02,0x28,0x07,0xD1, + 0xFB,0xF7,0x2C,0xFF,0x00,0x28,0xF6,0xD0,0xFC,0xF7,0x1C,0xFE,0x03,0x20,0xF1,0xE7, + 0x03,0x28,0xF0,0xD1,0x03,0x48,0xC0,0x68,0xC0,0x07,0xEC,0xD0,0x04,0x20,0xE9,0xE7, + 0x14,0x07,0x00,0x20,0x00,0x90,0x00,0x40,0xF0,0xB5,0xD9,0x48,0x8B,0xB0,0x00,0x68, + 0x00,0x27,0x80,0x79,0x3D,0x00,0x02,0x90,0xD6,0x48,0x42,0x79,0x04,0x00,0xC0,0x34, + 0x00,0x92,0x82,0x79,0x80,0x30,0x01,0x7B,0xC0,0x38,0xA3,0x7A,0x00,0x7A,0xFE,0xF7, + 0x5C,0xF9,0x00,0x06,0x61,0x7A,0x00,0x0E,0xFE,0xF7,0x4C,0xF9,0x21,0x00,0x20,0x39, + 0x0A,0x7A,0x00,0x06,0xC0,0x39,0x09,0x79,0x00,0x0E,0xFE,0xF7,0x47,0xF9,0x21,0x00, + 0x80,0x39,0x8A,0x7D,0x00,0x06,0xC0,0x39,0x89,0x7C,0x00,0x0E,0xFE,0xF7,0x3E,0xF9, + 0x00,0x06,0xC5,0x4E,0x00,0x0E,0x01,0x90,0x30,0x7B,0xC4,0x4C,0x00,0x28,0x02,0xD0, + 0xC3,0x48,0x40,0x89,0x06,0xE0,0xBE,0x48,0x61,0x88,0x00,0x68,0x40,0x88,0x40,0x18, + 0x00,0x04,0x00,0x0C,0x03,0x90,0x00,0x20,0x30,0x61,0x0F,0x20,0xF0,0x70,0x30,0x7A, + 0x00,0x28,0x06,0xD0,0xF0,0x6A,0x00,0x04,0x00,0x0C,0x01,0xF0,0xB5,0xFB,0x01,0xF0, + 0xA3,0xFB,0x01,0x20,0xF0,0x61,0xFC,0xF7,0x65,0xF9,0x00,0xF0,0xB5,0xF9,0xFC,0xF7, + 0xE3,0xFB,0xB4,0x48,0x05,0x21,0x09,0x90,0xB3,0x48,0xC9,0x01,0x41,0x18,0x08,0x91, + 0xB2,0x49,0x80,0x30,0x06,0xAA,0x03,0xC2,0x01,0x98,0xC0,0x1C,0x05,0x90,0xB0,0x48, + 0x04,0x90,0x36,0xE1,0x30,0x7A,0x00,0x28,0x04,0xD0,0xF0,0x6A,0x00,0x04,0x00,0x0C, + 0x01,0xF0,0x92,0xFB,0xFF,0x20,0x81,0x30,0xFA,0xF7,0x5C,0xFF,0x03,0x20,0x01,0xF0, + 0xFB,0xF9,0xFC,0xF7,0x89,0xF9,0xFC,0xF7,0x6B,0xF9,0xA4,0x48,0xC0,0x38,0xC0,0x88, + 0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5,0x05,0x20,0x00,0xE0, + 0x03,0x20,0x01,0xF0,0xA9,0xF8,0xFC,0xF7,0x19,0xFC,0x9A,0x48,0x03,0x99,0x60,0x38, + 0x00,0x89,0x40,0x18,0x99,0x49,0xC0,0x39,0x89,0x89,0x88,0x42,0x12,0xD9,0x09,0x98, + 0x40,0x7A,0x00,0x28,0x0E,0xD1,0x95,0x48,0xFF,0x21,0xC0,0x38,0xC0,0x88,0x19,0x31, + 0x08,0x42,0x07,0xD1,0x02,0x98,0x6D,0x1C,0x85,0x42,0x04,0xDD,0xFC,0xF7,0x06,0xFC, + 0x01,0x27,0x00,0xE0,0x00,0x25,0x00,0xF0,0x8F,0xFE,0x01,0xF0,0x73,0xF8,0x00,0xF0, + 0x1F,0xFE,0x00,0xF0,0x73,0xFE,0x08,0x99,0x07,0x98,0x49,0x88,0xC0,0x6A,0x88,0x42, + 0x0B,0xDB,0x09,0x98,0x40,0x7A,0x00,0x28,0x05,0xD1,0x84,0x48,0x46,0x21,0xC0,0x38, + 0xC0,0x88,0x08,0x42,0x01,0xD0,0x01,0x20,0x70,0x70,0x00,0x2F,0x02,0xD0,0xFC,0xF7, + 0x73,0xFB,0x00,0x27,0xFC,0xF7,0x58,0xFB,0x00,0x20,0xFC,0xF7,0xC7,0xFB,0xFC,0xF7, + 0x8F,0xFB,0x01,0x20,0xB0,0x73,0xFD,0xF7,0xDF,0xFC,0x00,0x28,0x09,0xD0,0x00,0x20, + 0x30,0x61,0x04,0x98,0x80,0x7E,0xC8,0x28,0x12,0xD2,0x04,0x99,0x40,0x1C,0x88,0x76, + 0x0E,0xE0,0x30,0x69,0x40,0x1C,0x30,0x61,0x30,0x69,0x01,0x28,0x03,0xD1,0x70,0x49, + 0x00,0x20,0x20,0x31,0x88,0x75,0x30,0x69,0x05,0x28,0x01,0xD9,0xFC,0xF7,0xCA,0xF8, + 0x01,0x20,0x40,0x07,0x00,0x68,0x00,0x28,0x07,0xD1,0x20,0x69,0xFF,0x21,0xFF,0x31, + 0x88,0x42,0x04,0xDA,0x40,0x1C,0x20,0x61,0x01,0xE0,0x00,0x20,0xFB,0xE7,0x08,0x98, + 0xE1,0x68,0x40,0x89,0x81,0x42,0x0C,0xDD,0x20,0x69,0xFF,0x21,0xF5,0x31,0x88,0x42, + 0x07,0xDD,0x01,0x21,0x00,0x20,0x71,0x70,0xE0,0x60,0x20,0x61,0x07,0x98,0xC1,0x62, + 0x02,0xE0,0x70,0x78,0x00,0x28,0x02,0xD0,0xFC,0xF7,0xB6,0xF8,0x20,0xE0,0x59,0x48, + 0x41,0x68,0x09,0x07,0x0D,0xD5,0xC1,0x68,0x00,0x29,0x0A,0xD0,0xC1,0x68,0x07,0x29, + 0x04,0xD1,0xC0,0x68,0x01,0x21,0x49,0x07,0xC8,0x63,0x0E,0xE0,0x00,0xF0,0x20,0xFA, + 0x0B,0xE0,0x01,0xF0,0x4B,0xF8,0x70,0x7B,0x80,0x28,0x01,0xD1,0xFC,0xF7,0xD4,0xF9, + 0x00,0xF0,0x5C,0xF9,0x01,0xE0,0xFF,0xF7,0x9D,0xFE,0xB0,0x7B,0x03,0x28,0xFA,0xD1, + 0xFC,0xF7,0xFE,0xFB,0x70,0x78,0x00,0x28,0x0B,0xD0,0x43,0x48,0x01,0x21,0xC0,0x7F, + 0x40,0x08,0x01,0xF0,0x6F,0xF8,0x3C,0x49,0x00,0x20,0x48,0x70,0x07,0x99,0xC8,0x62, + 0x5D,0xE0,0x06,0x98,0x00,0x7B,0x00,0x28,0x04,0xD0,0x30,0x7B,0x00,0x28,0x01,0xD1, + 0x00,0xF0,0xC6,0xF8,0x01,0x20,0x40,0x07,0xC0,0x6B,0x0B,0x28,0x4F,0xD1,0x06,0x98, + 0x00,0x7A,0x00,0x28,0x01,0xD0,0xFF,0xF7,0x53,0xFA,0x03,0x20,0x01,0xF0,0xEE,0xF8, + 0xB0,0x62,0x03,0x20,0x01,0xF0,0x1C,0xF9,0xFF,0x20,0x81,0x30,0xFA,0xF7,0x62,0xFE, + 0x31,0x48,0x00,0x78,0x71,0x79,0x08,0x43,0x33,0xD1,0x70,0x6A,0x00,0x28,0x0A,0x90, + 0x2F,0xD0,0x25,0x48,0x80,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x2B,0x49,0xFA,0xF7, + 0x15,0xFB,0x0A,0x99,0x0E,0x1A,0x32,0x2E,0x23,0xDD,0x00,0xF0,0x81,0xF8,0x30,0x00, + 0x01,0xF0,0x90,0xFA,0x01,0xF0,0x94,0xFA,0x1B,0x48,0x80,0x79,0x00,0x28,0x0D,0xD0, + 0x00,0xF0,0x54,0xF8,0x00,0xF0,0x57,0xF8,0x00,0xF0,0x5F,0xF8,0x20,0x4E,0x01,0x20, + 0x70,0x60,0xFA,0xF7,0x47,0xFE,0x1F,0x48,0x70,0x60,0x03,0xE0,0x1E,0x48,0x01,0x78, + 0x00,0x29,0xFC,0xD0,0x01,0xF0,0x83,0xFA,0x1B,0x49,0x00,0x20,0x08,0x70,0x00,0xF0, + 0x6B,0xF8,0x0D,0x4E,0x30,0x69,0x05,0x99,0x88,0x42,0x00,0xD2,0xC2,0xE6,0x08,0x48, + 0x0A,0x49,0x00,0x68,0xC0,0x39,0x40,0x30,0x40,0x7D,0x48,0x70,0x06,0x48,0x00,0x7A, + 0x00,0x28,0x01,0xD0,0x01,0xF0,0x48,0xFA,0x0B,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0xC8,0x07,0x00,0x20,0x60,0x94,0x00,0x00,0x14,0x07,0x00,0x20,0x00,0x07,0x00,0x20, + 0xA0,0x95,0x00,0x00,0x00,0x02,0x00,0x20,0x00,0x93,0x00,0x00,0x00,0x01,0x00,0x20, + 0xA0,0x03,0x00,0x20,0x00,0x40,0x00,0x30,0xCD,0x07,0x00,0x20,0x10,0x27,0x00,0x00, + 0x00,0x30,0x00,0x40,0xE1,0x04,0x00,0x00,0xCC,0x07,0x00,0x20,0x01,0x20,0x80,0x07, + 0x01,0x6B,0x81,0x22,0xD2,0x01,0x11,0x43,0x01,0x63,0x70,0x47,0x00,0x20,0x01,0x21, + 0x89,0x07,0x48,0x60,0x70,0x47,0x10,0x20,0x81,0x06,0x48,0x60,0x70,0x47,0x01,0x22, + 0x92,0x07,0x91,0x68,0x01,0x43,0x91,0x60,0x70,0x47,0x01,0x20,0x80,0x07,0x41,0x68, + 0x02,0x22,0x11,0x43,0x41,0x60,0x70,0x47,0x01,0x20,0x80,0x07,0x01,0x6B,0x03,0x4A, + 0x89,0x09,0x52,0x7B,0x89,0x01,0x11,0x43,0x01,0x63,0x70,0x47,0x00,0x93,0x00,0x00, + 0x10,0xB5,0xFC,0xF7,0x29,0xFA,0xFA,0xF7,0xBB,0xFA,0x03,0x20,0x40,0x03,0xFA,0xF7, + 0xC1,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x03,0x20,0x10,0xB5,0x40,0x03,0xFA,0xF7, + 0xC1,0xFD,0xFA,0xF7,0xB7,0xFA,0xFC,0xF7,0x1F,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0xB5,0x00,0xF0,0x0F,0xFC,0x05,0x49,0x80,0x22,0xC9,0x88,0x11,0x40,0x81,0x42, + 0x01,0xD0,0xFA,0xF7,0xDD,0xFC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0x78,0x47,0xC0,0x46,0xF0,0x0F,0x2D,0xE9,0xAC,0x60,0x9F,0xE5,0x00,0x00,0xA0,0xE3, + 0xBA,0x00,0xC6,0xE1,0xA4,0x00,0x9F,0xE5,0xA4,0xA0,0x9F,0xE5,0x14,0x80,0xD0,0xE5, + 0xA0,0xB0,0x9F,0xE5,0x26,0x20,0xA0,0xE3,0x01,0x2C,0x82,0xE2,0x14,0x10,0xA0,0xE3, + 0x01,0x90,0xA0,0xE3,0x0D,0x00,0xA0,0xE3,0x81,0x70,0x86,0xE0,0x01,0x20,0x42,0xE2, + 0x80,0x40,0x86,0xE0,0xF8,0x4B,0xD4,0xE1,0xF8,0x58,0xD7,0xE1,0x82,0x30,0x8B,0xE0, + 0xF0,0xC0,0xD3,0xE1,0x05,0x40,0x84,0xE0,0x02,0x00,0x18,0xE3,0x04,0xC0,0x4C,0xE0, + 0x04,0x00,0x00,0x0A,0x0D,0x00,0x50,0xE3,0x07,0x00,0x00,0x0A,0xC8,0x00,0x5C,0xE3, + 0x05,0x00,0x00,0xBA,0x03,0x00,0x00,0xEA,0x14,0x00,0x51,0xE3,0x02,0x00,0x00,0x0A, + 0xC8,0x00,0x5C,0xE3,0x00,0x00,0x00,0xBA,0x00,0x90,0xCA,0xE5,0x00,0x00,0x5C,0xE3, + 0x00,0xC0,0xA0,0xB3,0xB0,0xC0,0xC3,0xE1,0xBA,0x30,0xD6,0xE1,0x0C,0x00,0x53,0xE1, + 0xBA,0xC0,0xC6,0xB1,0x01,0x00,0x50,0xE2,0xE3,0xFF,0xFF,0x5A,0x01,0x10,0x51,0xE2, + 0xDF,0xFF,0xFF,0x5A,0xF0,0x0F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20, + 0x00,0x93,0x00,0x00,0x44,0x07,0x00,0x20,0x00,0x00,0x00,0x10,0xF8,0xB5,0xFD,0xF7, + 0x4F,0xF9,0x06,0x00,0x01,0x24,0x64,0x07,0x25,0x68,0x00,0x2D,0x7A,0xD0,0x4F,0x48, + 0x00,0x21,0x01,0x70,0x02,0x20,0x00,0xF0,0xE3,0xFF,0x4D,0x48,0x0A,0x21,0x00,0x6B, + 0xFA,0xF7,0xEC,0xF9,0x01,0x00,0x02,0x20,0x00,0xF0,0xC6,0xFF,0x49,0x4F,0x78,0x7A, + 0x00,0x28,0x00,0xD0,0x6D,0x1C,0xF8,0x79,0x00,0x28,0x04,0xD1,0x46,0x49,0x48,0x69, + 0x0A,0x15,0x10,0x43,0x48,0x61,0x00,0xF0,0x93,0xF8,0x44,0x48,0x01,0x68,0x44,0x48, + 0xC1,0x61,0x02,0x24,0x20,0x00,0x00,0xF0,0xB7,0xFF,0x42,0x48,0xC1,0x68,0x49,0x08, + 0x49,0x00,0xC1,0x60,0x79,0x7A,0x02,0x04,0x1D,0xE0,0x3D,0x48,0x43,0x69,0x5B,0x06, + 0x0A,0xD4,0x00,0x29,0x01,0xD0,0xAC,0x42,0x04,0xD2,0xA3,0x00,0x9B,0x18,0x1B,0x68, + 0xC3,0x61,0x00,0xE0,0xC6,0x61,0x64,0x1C,0x30,0x48,0x00,0x78,0x00,0x28,0x0A,0xD0, + 0xFD,0xF7,0x2C,0xFA,0x38,0x7A,0x00,0x28,0x07,0xD0,0xF8,0x6A,0x00,0x04,0x00,0x0C, + 0x01,0xF0,0x22,0xF9,0x01,0xE0,0xAC,0x42,0xDF,0xD9,0x02,0x20,0x00,0xF0,0x98,0xFF, + 0x26,0x4C,0x20,0x78,0x00,0x28,0x38,0xD1,0xFD,0xF7,0x32,0xF9,0x00,0x28,0x34,0xD0, + 0x23,0x48,0x0A,0x21,0x00,0x6B,0xFA,0xF7,0x99,0xF9,0x01,0x00,0x02,0x20,0x00,0xF0, + 0x73,0xFF,0x02,0x20,0x00,0xF0,0x78,0xFF,0x0C,0xE0,0x20,0x78,0x00,0x28,0x09,0xD0, + 0xFD,0xF7,0x04,0xFA,0x38,0x7A,0x00,0x28,0x04,0xD0,0xF8,0x6A,0x00,0x04,0x00,0x0C, + 0x01,0xF0,0xFA,0xF8,0xFD,0xF7,0x14,0xF9,0x00,0x28,0xEE,0xD1,0x18,0x48,0x41,0x68, + 0x41,0x60,0x0C,0xE0,0x1E,0xE0,0x21,0x78,0x00,0x29,0x08,0xD0,0x38,0x7A,0x00,0x28, + 0x08,0xD0,0xF8,0x6A,0x00,0x04,0x00,0x0C,0x01,0xF0,0xE6,0xF8,0x02,0xE0,0x41,0x68, + 0xC9,0x03,0xF0,0xD5,0x02,0x20,0x00,0xF0,0x5B,0xFF,0x00,0xF0,0x21,0xF8,0x0D,0x49, + 0xC8,0x68,0x01,0x22,0x10,0x43,0xC8,0x60,0xF8,0x79,0x00,0x28,0x02,0xD1,0x08,0x15, + 0xFA,0xF7,0x98,0xFC,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xCD,0x07,0x00,0x20, + 0x00,0x93,0x00,0x00,0x14,0x07,0x00,0x20,0x40,0x00,0x00,0x40,0x04,0x00,0x00,0x20, + 0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x05,0x48,0x01,0x21,0x00,0xB5,0xC9,0x02,0x01,0x62,0x00,0x21,0x01,0x62,0xFD,0xF7, + 0xF5,0xFB,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x10,0xB5,0x01,0x20, + 0xFC,0xF7,0x7E,0xF9,0x01,0x20,0xFC,0xF7,0x39,0xF9,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x40,0x18,0x70,0x47,0x40,0x18,0x80,0x18,0x70,0x47,0x10,0xB4,0x40,0x18,0x01,0x9C, + 0x80,0x18,0xC0,0x18,0x00,0x19,0x10,0xBC,0x70,0x47,0x00,0x00,0xF8,0xB5,0x00,0x21, + 0x01,0x23,0x5B,0x07,0x18,0x68,0x13,0x4A,0x90,0x71,0x90,0x79,0x01,0x28,0x01,0xD1, + 0x01,0x21,0x0D,0xE0,0x01,0x28,0x00,0xD9,0x02,0x21,0x00,0x28,0x08,0xD1,0x0D,0x48, + 0x30,0x22,0x00,0x21,0x08,0x30,0xFF,0xF7,0x0B,0xF8,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x20,0x0D,0x25,0x08,0x4C,0xED,0x01,0x08,0xE0,0x46,0x18,0xB6,0x00,0xF6,0x18, + 0x36,0x68,0x87,0x00,0x3F,0x19,0x7F,0x19,0x40,0x1C,0xBE,0x60,0x96,0x79,0x86,0x42, + 0xF3,0xD8,0xEA,0xE7,0xC0,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x70,0xB5,0x1E,0x4A, + 0x1E,0x48,0x1C,0x4C,0x85,0x18,0x21,0x7A,0xDB,0x22,0x92,0x00,0x86,0x18,0x00,0x29, + 0x0F,0xD0,0x21,0x00,0x82,0x22,0x0C,0x31,0x28,0x00,0xFE,0xF7,0xAD,0xFF,0x18,0x49, + 0x0D,0x22,0x30,0x00,0xFE,0xF7,0xA8,0xFF,0x20,0x7A,0x60,0x72,0x70,0xBC,0x08,0xBC, + 0x18,0x47,0x0D,0x22,0x00,0x21,0x30,0x00,0xFE,0xF7,0xD2,0xFF,0x82,0x22,0x00,0x21, + 0x28,0x00,0xFE,0xF7,0xCD,0xFF,0x0E,0x48,0x82,0x22,0x00,0x21,0x8F,0x38,0xFE,0xF7, + 0xC7,0xFF,0x0B,0x48,0x0D,0x22,0x00,0x21,0x0D,0x38,0xFE,0xF7,0xC1,0xFF,0x00,0x20, + 0x06,0x49,0x60,0x72,0xA0,0x72,0xCA,0x88,0x23,0x23,0x9A,0x43,0xCA,0x80,0x05,0x49, + 0x88,0x72,0xDB,0xE7,0x00,0x02,0x00,0x20,0x4E,0x02,0x00,0x00,0x40,0x00,0x00,0x20, + 0x9F,0x03,0x00,0x20,0x40,0x06,0x00,0x20,0xF3,0xB5,0x90,0x48,0x91,0xB0,0x40,0x7E, + 0x02,0x90,0x8F,0x48,0x00,0x78,0x00,0x28,0x8E,0x48,0x18,0xD0,0x0B,0x21,0x89,0x01, + 0x40,0x18,0x01,0x8A,0x8C,0x4A,0x1A,0x26,0x07,0x91,0x41,0x8A,0x1C,0x27,0x06,0x91, + 0x81,0x8A,0x05,0x91,0x1E,0x21,0x41,0x5E,0x04,0x91,0x00,0x21,0x51,0x5E,0x03,0x91, + 0x16,0x21,0x18,0x22,0x86,0x5F,0xC7,0x5F,0x41,0x5E,0x82,0x5E,0x16,0xE0,0x60,0x30, + 0xC1,0x8A,0x04,0x22,0x00,0x26,0x07,0x91,0x01,0x8B,0x02,0x27,0x06,0x91,0x41,0x8B, + 0x05,0x91,0x7A,0x49,0x20,0x39,0x8A,0x5E,0x04,0x92,0x06,0x22,0x8A,0x5E,0x03,0x92, + 0x8E,0x5F,0xCF,0x5F,0x1C,0x21,0x1E,0x22,0x41,0x5E,0x82,0x5E,0x11,0x98,0x75,0x4C, + 0x00,0x68,0x41,0x18,0x11,0x98,0x01,0x60,0x12,0x98,0x00,0x68,0x81,0x18,0x12,0x98, + 0x01,0x60,0x60,0x8C,0x00,0x21,0x40,0x1E,0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0, + 0x20,0x8C,0x0A,0x00,0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0, + 0xED,0xFF,0x20,0x8C,0x64,0x21,0x0A,0x90,0x60,0x8C,0x09,0x90,0x0A,0x98,0x44,0x08, + 0x09,0x98,0x45,0x08,0x06,0x98,0x64,0x38,0x00,0x28,0x01,0xDC,0x06,0x98,0x08,0x1A, + 0x0F,0x90,0x05,0x98,0x64,0x38,0x00,0x28,0x01,0xDC,0x05,0x98,0x08,0x1A,0x0E,0x90, + 0x15,0x20,0x08,0x90,0x5D,0x48,0x0E,0x21,0x80,0x7B,0xC2,0x07,0x05,0xD0,0x80,0x07, + 0x01,0xD5,0x0D,0x21,0x01,0xE0,0x14,0x20,0x08,0x90,0x20,0x00,0xF9,0xF7,0xFE,0xFE, + 0x0A,0x99,0x08,0x1A,0x40,0x1E,0x0C,0x90,0x08,0x99,0x28,0x00,0xF9,0xF7,0xF6,0xFE, + 0x09,0x99,0x08,0x1A,0x40,0x1E,0x31,0x1E,0x0B,0x90,0x00,0xDD,0xA1,0x1B,0x00,0x2F, + 0x0D,0x97,0x01,0xDD,0xE8,0x1B,0x0D,0x90,0x11,0x98,0x00,0x68,0xA0,0x42,0x10,0x90, + 0x01,0xDB,0x00,0x1B,0x01,0xE0,0x00,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42, + 0x64,0x22,0x06,0x00,0x56,0x43,0x37,0x00,0x88,0x42,0x0D,0xDD,0x42,0x1A,0x0F,0x98, + 0x50,0x43,0x86,0x19,0x10,0x00,0x50,0x43,0x0F,0x9A,0x50,0x43,0x0C,0x9A,0x12,0x1B, + 0x51,0x1A,0xF9,0xF7,0xCB,0xFE,0xC7,0x19,0x04,0x98,0x00,0x28,0x01,0xD1,0x30,0x00, + 0x05,0xE0,0x01,0x28,0x01,0xD1,0x38,0x00,0x01,0xE0,0x70,0x00,0xC0,0x1B,0x64,0x21, + 0xF9,0xF7,0xBC,0xFE,0x07,0x99,0xC9,0x07,0x0A,0xD0,0x10,0x99,0xA1,0x42,0x03,0xDB, + 0x21,0x18,0x11,0x98,0x01,0x60,0x03,0xE0,0x11,0x99,0x20,0x1A,0x40,0x1E,0x08,0x60, + 0x12,0x98,0x07,0x68,0xAF,0x42,0x01,0xDB,0x78,0x1B,0x01,0xE0,0x78,0x1B,0x40,0x1C, + 0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x21,0x04,0x00,0x4C,0x43,0x0D,0x99,0x26,0x00, + 0x88,0x42,0x0E,0xDD,0x41,0x1A,0x0E,0x98,0x0D,0x9A,0x48,0x43,0x04,0x19,0x08,0x00, + 0x48,0x43,0x0E,0x99,0x48,0x43,0x0B,0x99,0x49,0x1B,0x89,0x1A,0xF9,0xF7,0x8E,0xFE, + 0x86,0x19,0x03,0x98,0x00,0x28,0x01,0xD1,0x20,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1, + 0x30,0x00,0x01,0xE0,0x60,0x00,0x80,0x1B,0x64,0x21,0xF9,0xF7,0x7F,0xFE,0x07,0x99, + 0x89,0x07,0x09,0xD5,0xAF,0x42,0x03,0xDB,0x29,0x18,0x12,0x98,0x01,0x60,0x03,0xE0, + 0x12,0x99,0x28,0x1A,0x40,0x1E,0x08,0x60,0x0E,0x48,0x02,0x99,0x42,0x8C,0x6B,0x46, + 0x51,0x1A,0x49,0x1E,0x0A,0x04,0x02,0x99,0x12,0x0C,0x06,0xC3,0x01,0x8C,0x02,0x98, + 0x02,0x9A,0x08,0x1A,0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0, + 0x25,0xFF,0x13,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x93,0x00,0x00, + 0x20,0x07,0x00,0x20,0x00,0x93,0x00,0x00,0xE0,0x95,0x00,0x00,0x40,0x06,0x00,0x20, + 0xFF,0xB5,0x00,0x68,0x8E,0x46,0x84,0x46,0x70,0x46,0x1B,0x4B,0x1B,0x49,0x05,0x68, + 0x00,0x22,0x19,0x4E,0x54,0x00,0x24,0x3E,0x34,0x5B,0x66,0x46,0x00,0x20,0x34,0x1B, + 0x26,0x00,0x74,0x43,0x46,0x00,0x9E,0x5B,0xAE,0x1B,0x37,0x00,0x77,0x43,0xE6,0x19, + 0x8E,0x42,0x18,0xD2,0x51,0x00,0x10,0x4A,0x40,0x00,0x24,0x3A,0x52,0x5A,0x02,0x99, + 0x0A,0x60,0x0D,0x49,0x03,0x9A,0x16,0x39,0x0C,0x5A,0x14,0x60,0x09,0x5A,0x72,0x46, + 0x12,0x68,0x18,0x5A,0x51,0x18,0x09,0x1A,0x70,0x46,0x01,0x60,0x01,0x20,0x04,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x40,0x1C,0x0B,0x28,0xDB,0xD3,0x52,0x1C,0x07,0x2A, + 0xCF,0xD3,0x00,0x20,0xC0,0x43,0xF2,0xE7,0xB4,0x78,0x00,0x00,0x11,0x02,0x00,0x00, + 0xFE,0xB5,0x69,0x4D,0x67,0x48,0x00,0x26,0x29,0x00,0xFF,0x31,0x00,0x96,0x42,0x7E, + 0xC1,0x31,0x08,0x7A,0x33,0x00,0x00,0x2A,0x28,0xD1,0x00,0x28,0x26,0xD0,0x01,0x24, + 0x0A,0x20,0x60,0x43,0x47,0x19,0x38,0x00,0xFF,0x30,0xD3,0x30,0xFD,0xF7,0x24,0xF9, + 0x00,0x28,0x17,0xD0,0x5D,0x48,0x81,0x7B,0x00,0x98,0x40,0x1C,0x81,0x42,0x14,0xD3, + 0xA9,0x19,0x33,0x22,0x00,0x90,0xFF,0x20,0x52,0x01,0xCD,0x30,0x89,0x18,0xC0,0x5D, + 0x3A,0x00,0xFF,0x32,0x48,0x76,0x76,0x1C,0xCD,0x32,0x03,0x20,0x01,0x23,0x69,0x46, + 0x00,0xF0,0x06,0xFA,0x64,0x1C,0x0D,0x2C,0xDA,0xDB,0x94,0xE0,0x49,0x7A,0x00,0x29, + 0x01,0xD1,0x00,0x28,0x78,0xD0,0x07,0x20,0xC0,0x01,0x00,0x24,0x2E,0x18,0x33,0x27, + 0x7F,0x01,0x28,0x19,0xC0,0x19,0x40,0x7E,0x00,0x28,0x3F,0xD0,0x0D,0x21,0x28,0x18, + 0x89,0x01,0x41,0x18,0xC9,0x7F,0x00,0x29,0x02,0xD0,0xB2,0x7D,0x00,0x2A,0x14,0xD0, + 0x1B,0x21,0x49,0x01,0x40,0x18,0x00,0x99,0x00,0x7B,0x49,0x1C,0x00,0x91,0x0A,0x21, + 0x48,0x43,0x3F,0x49,0x40,0x19,0x42,0x18,0x02,0x20,0x03,0x23,0x69,0x46,0x00,0xF0, + 0xD7,0xF9,0x20,0x00,0x14,0x2C,0x1E,0xD0,0x1A,0xE0,0x0A,0x20,0x41,0x43,0x48,0x19, + 0x02,0x90,0xFF,0x30,0xD3,0x30,0xFD,0xF7,0xCF,0xF8,0x00,0x28,0x13,0xD0,0x00,0x98, + 0x02,0x9A,0x40,0x1C,0xFF,0x32,0x00,0x90,0xCD,0x32,0x03,0x20,0x02,0x23,0x69,0x46, + 0x00,0xF0,0xBE,0xF9,0x07,0xE0,0x29,0x18,0xC9,0x19,0x8A,0x7E,0x40,0x1C,0x4A,0x76, + 0x0C,0x28,0xF8,0xDB,0x64,0x1E,0x64,0x1C,0x0C,0x2C,0xBA,0xDB,0x01,0x24,0x26,0x49, + 0x0D,0x20,0x0A,0x19,0x80,0x01,0x10,0x18,0xC0,0x7F,0x00,0x22,0x01,0x92,0x00,0x28, + 0x32,0xD0,0xB2,0x7D,0x00,0x2A,0x2F,0xD1,0x0A,0x22,0x50,0x43,0x45,0x18,0x28,0x00, + 0xFF,0x30,0xD3,0x30,0xFD,0xF7,0xA0,0xF8,0x00,0x28,0x25,0xD0,0x1B,0x48,0x00,0x9B, + 0x80,0x7B,0x5B,0x1C,0x98,0x42,0x26,0xD3,0x17,0x4A,0x00,0x20,0x11,0x18,0xC9,0x19, + 0x49,0x7E,0xA1,0x42,0x0C,0xD0,0x00,0x29,0x07,0xD1,0xFF,0x21,0xCD,0x31,0x49,0x5D, + 0x10,0x18,0xC0,0x19,0x41,0x76,0x06,0xE0,0x12,0xE0,0x40,0x1C,0x0C,0x28,0xED,0xDB, + 0x01,0x98,0x00,0x28,0x08,0xD0,0x2A,0x00,0xFF,0x32,0x00,0x93,0xCD,0x32,0x03,0x20, + 0x01,0x23,0x69,0x46,0x00,0xF0,0x74,0xF9,0x64,0x1C,0x0D,0x2C,0xBF,0xDB,0x02,0xE0, + 0x01,0x20,0x40,0x07,0x43,0x60,0x00,0x98,0x00,0xF0,0x6E,0xFC,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xA0,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00, + 0x4E,0x02,0x00,0x00,0xFC,0xB5,0x4E,0x48,0x36,0x25,0x45,0x5F,0x15,0x20,0x84,0x46, + 0x4B,0x48,0x4C,0x4F,0x80,0x30,0x82,0x7D,0x86,0x46,0x4B,0x48,0x00,0x26,0x81,0x7B, + 0x0E,0x24,0xC8,0x07,0x05,0xD0,0x88,0x07,0x01,0xD5,0x0D,0x24,0x01,0xE0,0x14,0x20, + 0x84,0x46,0x00,0x21,0x27,0xE0,0x00,0x20,0x22,0xE0,0x91,0x42,0x05,0xD2,0x90,0x42, + 0x1D,0xD3,0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x19,0xD3,0x63,0x46,0x9B,0x1A,0x5B,0x1E, + 0x8B,0x42,0x01,0xD2,0x90,0x42,0x12,0xD3,0x8B,0x42,0x03,0xD2,0xA3,0x1A,0x5B,0x1E, + 0x83,0x42,0x0C,0xD3,0x0B,0x00,0x63,0x43,0x1B,0x18,0x9B,0x00,0xFB,0x58,0x1B,0x01, + 0x1B,0x0D,0xB3,0x42,0x00,0xDD,0x1E,0x00,0xAB,0x42,0x00,0xDA,0x1D,0x00,0x40,0x1C, + 0xA0,0x42,0xDA,0xD3,0x49,0x1C,0x61,0x45,0xD5,0xD3,0x1E,0x24,0x70,0x46,0x04,0x5F, + 0x2B,0x4B,0x2E,0x48,0xA0,0x33,0xC0,0x88,0x06,0x22,0x9A,0x5E,0x40,0x06,0x07,0xD5, + 0x70,0x46,0x80,0x8A,0x01,0x19,0x0C,0x04,0x10,0x1A,0x24,0x14,0x02,0x04,0x12,0x14, + 0x25,0x48,0x80,0x30,0x81,0x6B,0xA6,0x42,0x05,0xDD,0x74,0x46,0x64,0x8B,0xA1,0x42, + 0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E,0x81,0x63,0x1E,0x49, + 0x80,0x31,0xC9,0x6B,0x95,0x42,0x04,0xDA,0x5A,0x88,0x91,0x42,0x05,0xDA,0x49,0x1C, + 0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E,0xC1,0x63,0x74,0x46,0xA4,0x8B,0x85,0x6B, + 0x01,0x22,0x11,0x00,0xA5,0x42,0x00,0xDC,0x00,0x21,0x9B,0x88,0xC0,0x6B,0x98,0x42, + 0x00,0xDC,0x00,0x22,0x00,0x20,0x6B,0x46,0x18,0x70,0x59,0x70,0x00,0x29,0x9A,0x70, + 0x02,0xD0,0x00,0x2A,0x00,0xD0,0x01,0x20,0x6B,0x46,0x11,0x43,0xD8,0x70,0x01,0xD0, + 0x01,0x20,0x00,0xE0,0x00,0x20,0x6B,0x46,0x18,0x71,0x70,0x46,0x00,0x7B,0x69,0x46, + 0x08,0x5C,0x00,0x28,0x00,0xD0,0x80,0x20,0xFC,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0x93,0x00,0x00,0xD4,0x02,0x10,0x40,0x40,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0xF8,0xB5,0x22,0x48,0x22,0x4C,0xC0,0x88,0x01,0x23,0x22,0x4D,0x41,0x06,0x09,0x20, + 0x80,0x01,0x21,0x4F,0x21,0x4E,0x5B,0x05,0x20,0x18,0x00,0x29,0x0E,0xDA,0x81,0x69, + 0x69,0x61,0xC1,0x69,0xA9,0x61,0x41,0x6A,0x99,0x43,0xE9,0x61,0x81,0x6A,0x29,0x62, + 0x01,0x6A,0xE9,0x60,0x80,0x6B,0x28,0x61,0xE0,0x6A,0x0E,0xE0,0x18,0x49,0x4A,0x69, + 0x6A,0x61,0x8A,0x69,0xAA,0x61,0x0A,0x6A,0x9A,0x43,0xEA,0x61,0x4A,0x6A,0x2A,0x62, + 0xC9,0x69,0xE9,0x60,0x40,0x6B,0x28,0x61,0xA0,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43, + 0x39,0x00,0xF9,0xF7,0x8B,0xFD,0x70,0x62,0x30,0x7B,0x00,0x28,0x03,0xD0,0x0D,0x48, + 0xE8,0x60,0x0D,0x48,0x28,0x61,0x60,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x39,0x00, + 0xF9,0xF7,0x7C,0xFD,0x30,0x62,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20, + 0x00,0x93,0x00,0x00,0xC0,0x90,0x00,0x40,0x10,0x27,0x00,0x00,0x14,0x07,0x00,0x20, + 0x80,0x94,0x00,0x00,0x41,0xA0,0x00,0x00,0x10,0x00,0x10,0x00,0x07,0x48,0x41,0x7A, + 0x07,0x48,0x02,0x29,0x01,0xD9,0x00,0x6A,0x04,0xE0,0x02,0x29,0x01,0xD1,0xC0,0x69, + 0x00,0xE0,0x80,0x69,0x03,0x49,0x48,0x62,0x70,0x47,0x00,0x00,0x00,0x02,0x00,0x20, + 0xC0,0x94,0x00,0x00,0xC0,0x90,0x00,0x40,0xF0,0xB4,0x0B,0x48,0x0D,0x4B,0xC0,0x88, + 0x0A,0x49,0x0C,0x4F,0x42,0x06,0x0A,0x48,0x01,0x24,0xE4,0x03,0x32,0x25,0x5E,0x00, + 0x32,0x3F,0x01,0x61,0x43,0x61,0x84,0x61,0xC5,0x61,0x04,0x62,0x46,0x62,0x84,0x62, + 0xC7,0x62,0xF0,0xBC,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x80,0x00,0x03, + 0x40,0xA1,0x00,0x40,0x64,0x40,0x00,0x00,0x11,0x49,0x10,0xB4,0x0A,0x7D,0x11,0x48, + 0x82,0x73,0x4A,0x7D,0xC2,0x73,0x82,0x7B,0x0F,0x48,0xD3,0x07,0x0A,0xD0,0x93,0x07, + 0x0E,0x4A,0x03,0xD5,0x0D,0x23,0x03,0x77,0x00,0x23,0x02,0xE0,0x14,0x23,0x03,0x77, + 0x01,0x23,0x13,0x71,0x8A,0x7D,0x42,0x77,0xCA,0x7D,0x82,0x77,0x0A,0x7E,0xC2,0x77, + 0x4A,0x7E,0x05,0x48,0x20,0x30,0x02,0x70,0x89,0x7E,0x41,0x70,0x10,0xBC,0x70,0x47, + 0x00,0x93,0x00,0x00,0x40,0x06,0x00,0x20,0x60,0x06,0x00,0x20,0x14,0x07,0x00,0x20, + 0xFF,0xB5,0x05,0x00,0x14,0x00,0x19,0x00,0x10,0x00,0x81,0xB0,0xFA,0xF7,0xFC,0xFC, + 0x00,0x28,0x08,0xD0,0x02,0x98,0x02,0x99,0x00,0x68,0x40,0x1E,0x08,0x60,0x05,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x29,0x48,0x80,0x7B,0xC0,0x07,0x22,0xD0,0xE0,0x79, + 0x05,0x28,0x1D,0xD0,0x09,0x28,0x1D,0xD1,0x6D,0x08,0x6D,0x00,0x01,0x20,0x09,0x27, + 0x22,0x78,0x23,0x4E,0xBF,0x01,0x0F,0xE0,0x0A,0x23,0x01,0x00,0x59,0x43,0x21,0x4B, + 0xC9,0x18,0xC9,0x19,0x8B,0x7B,0x9A,0x42,0x05,0xD1,0x0B,0x8A,0x63,0x80,0xCB,0x7B, + 0x63,0x70,0x49,0x8A,0xA1,0x80,0x40,0x1C,0x71,0x7A,0x81,0x42,0xEC,0xDA,0x01,0xE0, + 0x01,0x20,0x05,0x43,0x0F,0x21,0xA8,0x07,0x89,0x06,0x88,0x43,0x21,0x78,0x62,0x78, + 0x09,0x07,0x89,0x08,0x08,0x43,0x14,0x49,0x92,0x06,0x08,0x40,0x61,0x88,0x12,0x0C, + 0x89,0x05,0x89,0x09,0x08,0x43,0x3F,0x21,0x89,0x02,0x88,0x43,0x10,0x43,0x02,0x04, + 0x92,0x0E,0x0F,0x2A,0x03,0xD9,0x88,0x43,0x0F,0x21,0x89,0x02,0x40,0x18,0xA1,0x88, + 0x80,0x0A,0x80,0x02,0x89,0x05,0x89,0x0D,0x08,0x43,0x02,0x99,0x01,0x22,0x09,0x68, + 0x52,0x07,0x89,0x00,0x89,0x18,0x48,0x60,0xA9,0xE7,0x00,0x00,0x40,0x06,0x00,0x20, + 0x00,0x02,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0xFF,0x00,0xFC,0x0E,0x49,0x10,0xB4, + 0x48,0x7B,0x00,0x28,0x10,0xD0,0x00,0x09,0x00,0x01,0x00,0x23,0x01,0x22,0x40,0x28, + 0x0C,0xD0,0x80,0x28,0x08,0xD1,0x4A,0x72,0x8A,0x72,0x08,0x48,0xCA,0x72,0xCA,0x71, + 0x00,0x78,0x00,0x28,0x06,0xD1,0x0B,0x73,0x10,0xBC,0x70,0x47,0x8B,0x71,0xCA,0x71, + 0x0B,0x72,0xF9,0xE7,0x0A,0x73,0xF7,0xE7,0x14,0x07,0x00,0x20,0xA0,0x95,0x00,0x00, + 0xF8,0xB5,0x06,0x9F,0x07,0x9D,0x0C,0x00,0x1E,0x00,0x88,0x42,0x09,0xD3,0x21,0x00, + 0x10,0x00,0xF9,0xF7,0x3B,0xFB,0x38,0x80,0x21,0x00,0x30,0x00,0xF9,0xF7,0x36,0xFB, + 0x28,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xF8,0xB5,0x08,0xAD,0x60,0xCD,0x04,0x00, + 0x06,0x98,0x91,0x42,0x04,0xDA,0x65,0x80,0xA6,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x99,0x42,0x02,0xDB,0x60,0x80,0x07,0x98,0x0F,0xE0,0x8F,0x1A,0x40,0x1B,0x78,0x43, + 0x99,0x1A,0x00,0x91,0xF9,0xF7,0x1A,0xFB,0x40,0x19,0x60,0x80,0x07,0x98,0x00,0x99, + 0x80,0x1B,0x78,0x43,0xF9,0xF7,0x12,0xFB,0x80,0x19,0xA0,0x80,0xE5,0xE7,0x00,0x00, + 0xF0,0xB4,0x8C,0x79,0x14,0x4B,0x00,0x26,0x22,0x07,0x92,0x08,0x1A,0x40,0xCB,0x79, + 0x92,0x0A,0x92,0x02,0x5B,0x07,0x09,0xD5,0x10,0x4D,0xAB,0x89,0x00,0x2B,0x05,0xD0, + 0x9F,0x05,0xBF,0x0D,0x3A,0x43,0x64,0x00,0x64,0x19,0xE3,0x81,0x3F,0x23,0x9B,0x02, + 0x9A,0x43,0xCB,0x79,0x80,0x00,0x9B,0x06,0x1B,0x0C,0x1A,0x43,0x01,0x23,0x5B,0x07, + 0xC0,0x18,0x42,0x60,0xC8,0x79,0xC0,0x06,0x80,0x0F,0x03,0xD0,0x04,0x48,0x01,0x21, + 0xC1,0x72,0x06,0x73,0xF0,0xBC,0x70,0x47,0xFF,0xFF,0x00,0xFC,0x40,0x00,0x00,0x20, + 0x40,0x06,0x00,0x20,0x30,0xB4,0x0E,0x25,0x68,0x43,0x0B,0x4C,0x40,0x18,0x45,0x00, + 0x60,0x5B,0x01,0x06,0x00,0x0A,0x09,0x0E,0x82,0x18,0xC9,0x18,0x00,0x20,0x4B,0x1E, + 0xC0,0x43,0xFF,0x2B,0x06,0xD2,0x53,0x1E,0xFF,0x2B,0x03,0xD2,0x10,0x02,0x08,0x43, + 0x60,0x53,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0x10,0xB4,0x0E,0x24, + 0x60,0x43,0x03,0x4B,0x40,0x18,0x40,0x00,0x1A,0x52,0x10,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0x0E,0x23,0x58,0x43,0x30,0xB4,0x0B,0x4C,0x40,0x18,0x43,0x00, + 0xE0,0x5A,0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18,0x00,0x20,0x4D,0x1E, + 0xC0,0x43,0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2,0x10,0x02,0x08,0x43, + 0xE0,0x52,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0x70,0xB4,0x12,0x4A, + 0x11,0x4D,0x52,0x7D,0x00,0x21,0x20,0x3D,0x14,0x02,0x14,0x43,0x0E,0x22,0x50,0x43, + 0x0C,0x4B,0x86,0x18,0x12,0xE0,0xAA,0x7D,0x8A,0x42,0x0D,0xD0,0xEA,0x7D,0x8A,0x42, + 0x0A,0xD0,0x2A,0x7E,0x8A,0x42,0x07,0xD0,0x6A,0x7E,0x8A,0x42,0x04,0xD0,0xAA,0x7E, + 0x8A,0x42,0x01,0xD0,0x42,0x00,0x9C,0x52,0x40,0x1C,0x49,0x1C,0x86,0x42,0xEA,0xD8, + 0x70,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0x20,0x93,0x00,0x00,0x70,0xB4,0x12,0x4A, + 0x11,0x4B,0x52,0x7D,0x00,0x21,0x20,0x3B,0x15,0x02,0x15,0x43,0xFF,0x26,0x0D,0x4C, + 0x27,0x36,0x12,0xE0,0x9A,0x7D,0x8A,0x42,0x0D,0xD0,0xDA,0x7D,0x8A,0x42,0x0A,0xD0, + 0x1A,0x7E,0x8A,0x42,0x07,0xD0,0x5A,0x7E,0x8A,0x42,0x04,0xD0,0x9A,0x7E,0x8A,0x42, + 0x01,0xD0,0x42,0x00,0xA5,0x52,0x0E,0x30,0x49,0x1C,0xB0,0x42,0xEA,0xD3,0x70,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x20,0x93,0x00,0x00,0x02,0x04,0x04,0x49, + 0x02,0x43,0x00,0x20,0x40,0x1C,0x04,0xC1,0xB5,0x28,0xFB,0xD3,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0x05,0x48,0x07,0x49,0xC0,0x88,0x42,0x06,0x04,0x48,0x01,0xD5, + 0x40,0x68,0x00,0xE0,0x00,0x68,0x48,0x60,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0xC0,0x93,0x00,0x00,0x00,0x90,0x00,0x40,0xF8,0xB5,0x03,0x00,0x1E,0x49,0x05,0x20, + 0xC0,0x01,0x0A,0x18,0x0B,0x20,0x80,0x01,0x0D,0x18,0xC0,0x31,0x08,0x6A,0x19,0x4C, + 0x00,0x90,0x4F,0x6A,0x0E,0x69,0x28,0x68,0x00,0xF0,0x1E,0xFB,0x06,0x04,0x0A,0x12, + 0x15,0x1F,0x26,0x1C,0xC8,0x68,0x20,0x62,0x50,0x6B,0x60,0x62,0x02,0x20,0x04,0xE0, + 0xC8,0x69,0x20,0x62,0x68,0x68,0x60,0x62,0x04,0x20,0xE0,0x62,0x00,0x98,0x11,0xE0, + 0x26,0x62,0x90,0x6B,0x02,0xE0,0x48,0x69,0x20,0x62,0xD0,0x6B,0x60,0x62,0x04,0x20, + 0xE0,0x62,0x67,0x63,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x26,0x62,0x60,0x62,0x04,0x20, + 0xE0,0x62,0x88,0x6A,0x60,0x63,0xF5,0xE7,0x89,0x69,0x21,0x62,0x60,0x62,0x05,0x20, + 0xE0,0x62,0xEF,0xE7,0x80,0x90,0x00,0x40,0x00,0x93,0x00,0x00,0x01,0x21,0x49,0x07, + 0x48,0x68,0x00,0x23,0x00,0x04,0x00,0x0F,0x00,0x28,0x0B,0x4A,0x48,0x68,0x03,0xD0, + 0x00,0x04,0x00,0x0F,0x40,0x1C,0x0C,0xE0,0xC0,0x02,0xC0,0x0E,0x01,0xD0,0x01,0x20, + 0x07,0xE0,0xD0,0x78,0x00,0x28,0x02,0xD1,0x01,0x20,0x03,0x00,0x01,0xE0,0x0F,0x23, + 0x00,0x20,0xD3,0x70,0x08,0x60,0x70,0x47,0x14,0x07,0x00,0x20,0x0A,0x4A,0x10,0xB5, + 0xD1,0x88,0x0A,0x4B,0x40,0x24,0x00,0x28,0x03,0xD0,0x21,0x43,0x08,0x48,0xD1,0x80, + 0x03,0xE0,0x07,0x48,0xA1,0x43,0xC4,0x38,0xD1,0x80,0x18,0x60,0xFF,0xF7,0x28,0xFD, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0xC8,0x07,0x00,0x20, + 0xB0,0x94,0x00,0x00,0xFE,0xB5,0x04,0x00,0x3A,0x48,0x0E,0x00,0x07,0x6A,0x41,0x6A, + 0x02,0x91,0x41,0x6B,0x01,0x91,0xC0,0x6A,0x00,0x90,0x00,0x20,0xFF,0xF7,0x74,0xFF, + 0x35,0x48,0x00,0x7A,0x00,0x28,0x01,0xD0,0xFE,0xF7,0xEA,0xF9,0xFB,0xF7,0xE6,0xFA, + 0x25,0x00,0x46,0xE0,0x68,0x1E,0x84,0x42,0x01,0xD1,0xFB,0xF7,0x15,0xFB,0xFB,0xF7, + 0x8F,0xFA,0xFB,0xF7,0x65,0xFB,0x00,0x2E,0x2E,0xD1,0xA8,0x00,0x05,0x21,0xF9,0xF7, + 0xB5,0xFA,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x04,0x20,0x21,0xE0,0x68,0x00, + 0x28,0x18,0x05,0x21,0xF9,0xF7,0xAA,0xFA,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00, + 0x03,0x20,0x16,0xE0,0x68,0x00,0x05,0x21,0xF9,0xF7,0xA0,0xFA,0xA0,0x42,0x03,0xD8, + 0x01,0x22,0x11,0x00,0x02,0x20,0x0C,0xE0,0x05,0x21,0x28,0x00,0xF9,0xF7,0x96,0xFA, + 0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x10,0x00,0x02,0xE0,0x01,0x22,0x11,0x00, + 0x00,0x20,0xFB,0xF7,0x31,0xF8,0x0C,0xE0,0x68,0x00,0x03,0x21,0xF9,0xF7,0x86,0xFA, + 0xA0,0x42,0xDB,0xD9,0x03,0x21,0x28,0x00,0xF9,0xF7,0x80,0xFA,0xA0,0x42,0xE9,0xD8, + 0xDE,0xE7,0x64,0x1E,0xB6,0xD2,0x0D,0x48,0x44,0x88,0x03,0xE0,0xFB,0xF7,0x48,0xFA, + 0xFB,0xF7,0x1E,0xFB,0x64,0x1E,0xF9,0xD2,0xFB,0xF7,0x88,0xFA,0x05,0x48,0x07,0x62, + 0x02,0x99,0x41,0x62,0x01,0x99,0x41,0x63,0x00,0x99,0xC1,0x62,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x80,0x90,0x00,0x40,0x80,0x93,0x00,0x00,0xE0,0x95,0x00,0x00, + 0x30,0xB4,0x0D,0x4D,0xEC,0x7B,0x00,0x2C,0x13,0xD0,0x02,0x68,0x0B,0x68,0xA4,0x07, + 0x03,0xD5,0x2C,0x8C,0xA2,0x1A,0x52,0x1E,0x02,0x60,0xEC,0x7B,0x64,0x07,0x03,0xD5, + 0x6C,0x8C,0xE3,0x1A,0x5B,0x1E,0x0B,0x60,0xEC,0x7B,0xE4,0x07,0x01,0xD0,0x03,0x60, + 0x0A,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x93,0x00,0x00,0x02,0x49,0x00,0x03, + 0x40,0x18,0xC0,0x68,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x49,0x01,0x20, + 0x08,0x70,0x70,0x47,0xCD,0x07,0x00,0x20,0x30,0xB4,0x05,0x03,0x05,0x48,0x02,0x9C, + 0x28,0x18,0x02,0x60,0x41,0x60,0x00,0x2B,0x00,0xD0,0x03,0x61,0x84,0x60,0x30,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x02,0x4A,0x00,0x03,0x80,0x18,0x01,0x60, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68, + 0xFF,0x22,0x01,0x32,0x11,0x43,0x81,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x91,0x43,0x81,0x60, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x0F,0x49,0x89,0x7B,0x81,0x42,0x00,0xD2, + 0x08,0x00,0x01,0x22,0x52,0x07,0x01,0x28,0x0C,0xD1,0x91,0x68,0x8B,0x0F,0xDB,0x07, + 0x04,0xD0,0x89,0x00,0x89,0x08,0x83,0x07,0xC9,0x18,0x01,0xE0,0x89,0x00,0x89,0x08, + 0x51,0x60,0x07,0xE0,0x01,0x28,0x05,0xD9,0x01,0x21,0xC9,0x07,0x83,0x05,0x9B,0x0D, + 0x19,0x43,0xF5,0xE7,0x10,0x60,0x70,0x47,0x00,0x93,0x00,0x00,0xF8,0xB5,0x17,0x4B, + 0x00,0x24,0x98,0x79,0x00,0x28,0x25,0xD0,0x00,0x20,0x0D,0x26,0x14,0x4D,0xF6,0x01, + 0x12,0xE0,0x81,0x00,0x49,0x19,0x89,0x19,0x8A,0x68,0x97,0x0F,0xFF,0x07,0x0A,0xD0, + 0x92,0x00,0x01,0x27,0x92,0x08,0xFF,0x07,0xD2,0x19,0x64,0x1C,0x8A,0x60,0xA1,0x00, + 0xBF,0x08,0xC9,0x19,0x4A,0x60,0x40,0x1C,0x99,0x79,0x81,0x42,0xE9,0xDC,0x07,0x48, + 0x0D,0x22,0x00,0x21,0xC0,0x1F,0xFE,0xF7,0xBB,0xF8,0x20,0x00,0xFF,0xF7,0xB4,0xFF, + 0xFC,0xF7,0x32,0xFA,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0xF0,0xB5,0x00,0x24,0x25,0x00,0x20,0x00,0x01,0x21,0x8D,0xB0, + 0x49,0x07,0x0C,0x94,0x4F,0x68,0x61,0x4E,0xB9,0x0F,0x89,0x07,0x7E,0xD5,0x30,0x22, + 0x00,0x21,0x68,0x46,0xFE,0xF7,0x9C,0xF8,0x07,0x21,0xB8,0x01,0x49,0x05,0x40,0x08, + 0x08,0x40,0x31,0x00,0x88,0x43,0x39,0x07,0x09,0x0C,0x08,0x43,0x0C,0x90,0x00,0x20, + 0x33,0xE0,0x01,0x22,0x81,0x00,0x52,0x07,0x89,0x18,0x89,0x68,0x8E,0x00,0x32,0x0F, + 0x2A,0xD0,0x32,0x0F,0x94,0x46,0x92,0x00,0x6B,0x46,0xD2,0x18,0x40,0x3A,0xD3,0x6B, + 0x36,0x0F,0x1B,0x01,0x1B,0x09,0x36,0x07,0x33,0x43,0x0F,0x27,0x3F,0x06,0x0E,0x04, + 0xB6,0x08,0xBB,0x43,0x3E,0x40,0x33,0x43,0x49,0x4E,0x33,0x40,0x8E,0x01,0xB6,0x0D, + 0x36,0x03,0x33,0x43,0x1B,0x0B,0x89,0x05,0x1B,0x03,0x89,0x0D,0x0B,0x43,0xD3,0x63, + 0x62,0x46,0x52,0x1E,0x01,0x23,0x93,0x40,0x9A,0x05,0x92,0x0D,0x71,0x46,0x11,0x43, + 0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x0C,0x91,0x40,0x1C,0x0C,0x99,0x8E,0x46,0x09,0x04, + 0x09,0x0F,0x81,0x42,0xC5,0xD8,0x0C,0x98,0x01,0x27,0x00,0x04,0x00,0x0F,0x7B,0x07, + 0x0F,0xE0,0x82,0x00,0xD2,0x18,0x92,0x68,0x3E,0x00,0x92,0x00,0x12,0x0F,0x52,0x1E, + 0x96,0x40,0xF2,0x06,0xD2,0x0A,0x64,0x1C,0x11,0x43,0x24,0x06,0x24,0x0E,0x40,0x1C, + 0x0C,0x91,0x0C,0x99,0x0A,0x04,0x0E,0x02,0x12,0x0F,0x76,0x0F,0x92,0x19,0x82,0x42, + 0xE7,0xD8,0x00,0x21,0x08,0x00,0x6E,0x46,0x82,0x00,0xB2,0x58,0x00,0x2A,0x03,0xD0, + 0x8F,0x00,0xFF,0x18,0xBA,0x60,0x49,0x1C,0x40,0x1C,0x0C,0x28,0xF4,0xD3,0x23,0x49, + 0x0C,0x98,0x88,0x43,0x29,0x07,0x09,0x0C,0x08,0x43,0x00,0xE0,0x07,0xE0,0x07,0x21, + 0x49,0x05,0x88,0x43,0x61,0x07,0x09,0x0A,0x08,0x43,0x0C,0x90,0x2B,0xE0,0xB9,0x0F, + 0xC9,0x07,0x25,0xD0,0x01,0x23,0x5B,0x07,0x58,0x68,0x19,0x4C,0x82,0x00,0x11,0x0F, + 0x09,0x07,0x21,0x40,0x84,0x01,0xA4,0x0D,0x24,0x03,0x21,0x43,0x84,0x05,0x09,0x0B, + 0x09,0x03,0xA4,0x0D,0x21,0x43,0x0F,0x24,0x24,0x06,0x00,0x04,0x80,0x08,0xA1,0x43, + 0x20,0x40,0x01,0x43,0x08,0x0F,0x09,0xD0,0x12,0x0F,0x52,0x1E,0x01,0x20,0x90,0x40, + 0x80,0x05,0x80,0x0D,0xB0,0x43,0x5A,0x14,0x80,0x18,0x0C,0x90,0x99,0x60,0x02,0xE0, + 0x01,0x21,0x49,0x07,0x88,0x60,0x71,0x20,0x08,0xAB,0xD8,0x74,0x0C,0x99,0x40,0x07, + 0x41,0x60,0x0D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0xF0,0x00,0x00, + 0xFF,0x0F,0x00,0xFF,0x08,0x48,0x10,0xB5,0x04,0x04,0x24,0x0C,0x07,0x49,0x00,0x22, + 0x20,0x00,0xF9,0xF7,0xF1,0xF8,0x05,0x4A,0x05,0x49,0x20,0x00,0x00,0x23,0xF9,0xF7, + 0xF3,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00,0x00,0x03,0x00,0x00, + 0x00,0x00,0x00,0x10,0x70,0xB5,0x05,0x00,0x08,0x48,0x00,0x22,0x04,0x04,0x24,0x0C, + 0x40,0x21,0x20,0x00,0xF9,0xF7,0xD8,0xF8,0x40,0x22,0x29,0x00,0x20,0x00,0x00,0x23, + 0xF9,0xF7,0xDA,0xF8,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x92,0x00,0x00, + 0x02,0x4B,0x58,0x60,0x99,0x60,0x1A,0x60,0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40, + 0x01,0x04,0x00,0xB5,0x03,0x48,0x02,0x22,0x09,0x0C,0xFF,0xF7,0xF1,0xFF,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xE1,0x04,0x00,0x00,0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43, + 0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x48,0x01,0x68,0x49,0x08,0x49,0x00, + 0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x49,0x02,0x22,0x0A,0x61,0x88,0x60, + 0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40,0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47, + 0xCC,0x07,0x00,0x20,0x00,0x04,0x00,0x0C,0x01,0x21,0x89,0x07,0x08,0x61,0x70,0x47, + 0x01,0x20,0x80,0x07,0x81,0x68,0x82,0x15,0x11,0x43,0x81,0x60,0x70,0x47,0x01,0x21, + 0x89,0x07,0x88,0x68,0x8A,0x15,0x90,0x43,0x88,0x60,0x70,0x47,0x70,0xB4,0x03,0xAC, + 0x30,0xCC,0x06,0x68,0x96,0x42,0x01,0xDB,0x32,0x00,0x00,0xE0,0x02,0x60,0x9A,0x42, + 0x00,0xDD,0x03,0x60,0x08,0x68,0xA0,0x42,0x00,0xDA,0x0C,0x60,0x08,0x68,0xA8,0x42, + 0x00,0xDD,0x0D,0x60,0x70,0xBC,0x70,0x47,0x00,0x47,0x00,0x00,0x78,0x47,0xC0,0x46, + 0x14,0x30,0x9F,0xE5,0xC0,0x2F,0xA0,0xE1,0x93,0xC0,0xC1,0xE0,0x63,0x30,0xE0,0xE3, + 0xC1,0x12,0x62,0xE0,0x93,0x01,0x20,0xE0,0x1E,0xFF,0x2F,0xE1,0x1F,0x85,0xEB,0x51, + 0x78,0x47,0xC0,0x46,0x18,0x30,0x9F,0xE5,0xC0,0x2F,0xA0,0xE1,0x93,0xC0,0xC1,0xE0, + 0x0F,0x30,0xE0,0xE3,0x27,0x3C,0x43,0xE2,0x41,0x16,0x62,0xE0,0x93,0x01,0x20,0xE0, + 0x1E,0xFF,0x2F,0xE1,0xAD,0x8B,0xDB,0x68,0x78,0x47,0xC0,0x46,0x01,0xC0,0x5E,0xE5, + 0x0C,0x00,0x53,0xE1,0x03,0x30,0xDE,0x37,0x0C,0x30,0xDE,0x27,0x83,0xC0,0x8E,0xE0, + 0x1C,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x10,0x30,0x9F,0xE5,0x93,0x10,0x82,0xE0, + 0x63,0x30,0xE0,0xE3,0xA2,0x12,0xA0,0xE1,0x93,0x01,0x20,0xE0,0x1E,0xFF,0x2F,0xE1, + 0x1F,0x85,0xEB,0x51,0x10,0xB5,0xF9,0xF7,0x37,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x25,0x00,0x6F,0x00,0xB9,0x00,0xF0,0x00,0x27,0x01,0x71,0x01,0xBB,0x01,0x20,0x00, + 0x6C,0x00,0xB8,0x00,0x04,0x01,0x50,0x01,0x89,0x01,0xC2,0x01,0x0E,0x02,0x5A,0x02, + 0xA6,0x02,0xF2,0x02,0x26,0x00,0x72,0x00,0xC0,0x00,0x0C,0x01,0x5A,0x01,0x93,0x01, + 0xD1,0x01,0x28,0x02,0x5D,0x02,0xA6,0x02,0xE1,0x02,0x00,0x00,0x89,0x08,0x49,0x1E, + 0x49,0x04,0x01,0x22,0x49,0x08,0xD2,0x07,0x89,0x18,0x00,0x04,0x00,0x0C,0x01,0x43, + 0x03,0x48,0x41,0x61,0x41,0x69,0x00,0x29,0xFC,0xDB,0x80,0x6B,0x70,0x47,0x00,0x00, + 0x00,0x70,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0B,0x38,0x30,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,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,0xFF,0x00,0x00,0x00, + 0x00,0x00,0x04,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x01,0x08,0x05,0x00, + 0x00,0x00,0x00,0x00,0x03,0x02,0x13,0x14,0xFF,0xFF,0xFF,0x00,0x00,0xC8,0x05,0x1E, + 0xE0,0x01,0x20,0x03,0x50,0x46,0x00,0x00,0x78,0x37,0x00,0x00,0xE8,0x03,0x00,0x00, + 0xE0,0x93,0x04,0x00,0x01,0x5A,0x14,0x05,0x14,0x05,0x00,0x00,0x04,0xC8,0x65,0x65, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x6E,0x00,0x7A,0x00,0x01,0x00,0x04,0x00, + 0x78,0x00,0xA0,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x15,0x00,0x02,0x32,0x00, + 0x2C,0x01,0x2C,0x01,0x00,0x00,0x00,0x00,0x50,0x00,0x5A,0x00,0x32,0x00,0xB8,0x0B, + 0x50,0x00,0x5A,0x00,0x32,0x00,0xE8,0x03,0x64,0x00,0x32,0x00,0x00,0x00,0x00,0x00, + 0x04,0x01,0x05,0x0F,0x01,0x01,0x04,0x00,0x01,0x05,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x00,0x0E,0x00,0x00,0x60,0x0F,0x00,0x00,0x60,0x0F,0x00,0x00,0x9D,0x39,0xFA,0x00, + 0x28,0x00,0x1D,0x00,0x64,0x32,0x64,0x32,0x1E,0x00,0x46,0x00,0x32,0x00,0x05,0x00, + 0x64,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x50,0x00,0x5E,0x01,0x90,0x01,0x90,0x01, + 0x90,0x01,0x00,0x00,0x64,0x3C,0x00,0x00,0x64,0x3C,0x00,0x00,0x64,0x3C,0x00,0x00, + 0x0A,0x02,0x32,0x00,0xB8,0x0B,0xBC,0x02,0x0A,0x00,0x96,0x96,0x96,0x96,0x00,0xFF, + 0xFF,0xFF,0xFF,0x00,0xFF,0x0F,0x2C,0x01,0x3C,0x00,0x1E,0x00,0x28,0xFA,0x0C,0x78, + 0x00,0x05,0x04,0x0A,0x01,0x06,0x20,0x03,0x3C,0x00,0x0A,0x3C,0x00,0x05,0x1E,0x00, + 0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xDC,0x00,0x05,0x02,0x01,0x01,0x01,0x00,0x02,0x03,0x05,0x00,0x03,0x03,0x06,0x06, + 0x09,0x09,0x0C,0x0C,0x0F,0x50,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x41,0xC2,0x00,0x00, + 0x10,0x10,0xB8,0x00,0x10,0x3F,0x10,0x3F,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00, + 0x99,0x19,0x90,0x01,0x32,0x00,0x1D,0x00,0x64,0x32,0x64,0x32,0x23,0x00,0x41,0x00, + 0x46,0x00,0x05,0x00,0x64,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x50,0x00,0xF4,0x01, + 0xF4,0x01,0xF4,0x01,0x90,0x01,0x00,0x00,0x64,0x3C,0x00,0x00,0x64,0x3C,0x00,0x00, + 0x64,0x3C,0x00,0x00,0x08,0x02,0x32,0x00,0xDC,0x05,0xF4,0x01,0x0A,0x00,0x96,0x96, + 0x96,0x96,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x0F,0xC2,0x01,0x28,0x00,0x14,0x00, + 0xFF,0xFF,0x0D,0xFF,0x00,0x05,0x04,0x0A,0x02,0x06,0xD0,0x07,0x3C,0x00,0x0F,0x3C, + 0x00,0x05,0x1E,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xDC,0x00,0x05,0x04,0x01,0x01,0x01,0x00,0x04,0x03,0x01,0x00, + 0x04,0x04,0x08,0x08,0x0C,0x0C,0x10,0x10,0x14,0x55,0x01,0x00,0x05,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03, + 0x41,0x80,0x00,0x00,0x18,0x10,0xB8,0x00,0x10,0x3F,0x10,0x3F,0x00,0x00,0x00,0x00, + 0x32,0x00,0x19,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x96,0x00,0x0F,0x00,0x05,0x00,0x00,0x00,0x1E,0x00,0xC8,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0xB4,0x00,0xFA,0x00,0x00,0x00, + 0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00, + 0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x64,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x14,0x00,0x00,0x5A,0x5A,0x5A,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x28,0x00,0x50,0x00,0x1E,0x00,0x50,0x00,0x14,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x00,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x41,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x05,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xF0,0x0F,0x02,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x15,0x0E,0x15,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x00,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x8D,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0xC2,0x00,0x00, + 0x20,0x00,0x20,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x10,0x10,0xA8,0x00, + 0x10,0x3F,0x10,0x3F,0x64,0x14,0x10,0x00,0x00,0x00,0x10,0x08,0x00,0x00,0xFF,0x0F, + 0x01,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0xC8,0x00,0x40,0x06,0x00,0x00,0x08,0x20, + 0x11,0x30,0x10,0x00,0x41,0x80,0x01,0x00,0xFF,0xFF,0xFF,0x10,0xFF,0xFF,0xFF,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x54,0x55,0x45,0x00,0x10,0x30,0x00,0x00,0x00,0x70,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x14,0x00,0x00,0x0C,0x0C,0x06,0x00, + 0x00,0x04,0x7C,0x74,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0xC0,0xDA,0x00,0x00, + 0x60,0x38,0x30,0x08,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,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, + 0xD0,0x07,0x08,0x00,0x12,0x12,0xC8,0x01,0x90,0x81,0x0C,0x00,0x00,0x08,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x80,0x00,0x03,0x64,0x40,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x00,0x00,0x00, + 0x00,0x80,0x00,0x00,0xC8,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x40,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x58,0x30,0x28,0x00,0x58,0x30,0x28,0x00,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01, + 0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01, + 0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01, + 0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01, + 0x60,0x30,0x30,0x00,0x48,0x31,0x18,0x01,0x48,0x31,0x18,0x01,0x60,0x37,0x30,0x07, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x20,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x20,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x20,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A, + 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x20,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A, + 0x1A,0x1A,0x1A,0x1A,0x1A,0x20,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A, + 0x1A,0x1A,0x1A,0x20,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, + 0x1E,0x20,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x20, + 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x20,0x1E,0x1E, + 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x20,0x1E,0x1E,0x1E,0x1E, + 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x20,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, + 0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x20,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, + 0x1C,0x1C,0x1C,0x1C,0x1C,0x20,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, + 0x1C,0x1C,0x1C,0x20,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, + 0x1C,0x20,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x20, + 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x20,0x1B,0x1B, + 0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x20,0x1C,0x1C,0x1C,0x1C, + 0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x20,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, + 0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x16,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A, + 0x1A,0x1A,0x1A,0x1A,0x1A,0x16,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xC8,0x61,0x24,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x44,0xC8,0x61,0x24,0x44, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0x00,0xC0,0x91,0xE7, + 0x21,0x2C,0x92,0xE7,0x42,0xBC,0x92,0xE7,0x63,0x28,0x93,0xE7,0x84,0xB8,0x93,0xE7, + 0xA5,0x24,0x94,0xE7,0xC6,0xB4,0x94,0xE7,0xE7,0x20,0x95,0xE7,0x08,0xB1,0x95,0xE7, + 0x29,0x9D,0x98,0xE7,0x4A,0x01,0x99,0xE7,0x6B,0x99,0x99,0xE7,0x8C,0x05,0x9A,0xE7, + 0xAD,0x95,0x9A,0xE7,0xCE,0x09,0x90,0xE7,0xEF,0x11,0x90,0xE7,0x10,0x0E,0x90,0xE7, + 0x31,0x46,0x90,0xE7,0x52,0x52,0x90,0xE7,0x73,0x4A,0x90,0xE7,0x94,0x4E,0x90,0xE7, + 0xB5,0x02,0x90,0xE7,0xD6,0x02,0x90,0xE7,0xF7,0x02,0x90,0xE7,0x00,0x08,0x00,0x00, + 0x00,0x80,0x01,0x00,0x00,0x0C,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x06,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x30,0x00,0x00,0x80,0x01,0x00,0x00, + 0x01,0x10,0x00,0x00,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00,0x02,0x00, + 0x08,0x00,0x10,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x1E,0x00, + 0xF8,0x0F,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x30, + 0x33,0x30,0x03,0x00,0x00,0x00,0x00,0x00,0x30,0x68,0x30,0x68,0x70,0x28,0x70,0x28, + 0x32,0x30,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47,0x40,0x04,0x00,0x00,0xC0,0x9B,0x00,0x00, + 0xC0,0x92,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x03,0x00,0x00, + 0x00,0x96,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x02,0x00,0x00, + 0x00,0x99,0x00,0x00,0x00,0x04,0x00,0x00,0xC4,0x00,0x82,0x00,0x00,0x00,0x00,0x00, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47}; + +#endif // __IST30XXB_FW_H__ diff --git a/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0003_20140310.h b/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0003_20140310.h new file mode 100644 index 00000000..b1d3fe21 --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0003_20140310.h @@ -0,0 +1,2572 @@ +#ifndef __IST30XXB_FW_H__ +#define __IST30XXB_FW_H__ + +/* ist30xxb binary: KANAS_GF MELFAS, f/w 3(00040000) */ +static unsigned char ist30xxb_fw[] = { + 0x06,0x00,0x00,0xEA,0x2C,0x00,0x00,0xEA,0x2B,0x00,0x00,0xEA,0x2A,0x00,0x00,0xEA, + 0x29,0x00,0x00,0xEA,0x28,0x00,0x00,0xEA,0x27,0x00,0x00,0xEA,0x3E,0x00,0x00,0xEA, + 0x14,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0xA0,0xE1,0x00,0x00,0x00,0xEA,0x0C,0x20,0x00,0x40, + 0x11,0x01,0xA0,0xE3,0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0xC1,0x01,0xA0,0xE3, + 0x1C,0x10,0x9F,0xE5,0x00,0x10,0x80,0xE5,0x18,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0xF1,0x01,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0x01,0x00,0x00,0xEA,0xC8,0x74,0x00,0x00,0x4C,0x00,0x00,0x40,0x00,0x00,0x0F,0xE1, + 0x1F,0x00,0xC0,0xE3,0xD1,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x1C,0xD0,0x9F,0xE5, + 0xD3,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x14,0xD0,0x9F,0xE5,0x00,0x00,0x0F,0xE1, + 0xC0,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x08,0x00,0x9F,0xE5,0x10,0xFF,0x2F,0xE1, + 0xFC,0x0F,0x00,0x20,0xC0,0x0F,0x00,0x20,0xA7,0x01,0x00,0x00,0x11,0x01,0xA0,0xE3, + 0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x5C,0x30,0x9F,0xE5,0x5C,0x40,0x9F,0xE5, + 0x00,0x40,0x83,0xE5,0x91,0x01,0xA0,0xE3,0x33,0x16,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0xAC,0x00,0x1F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0x00,0x40,0x83,0xE5, + 0xFF,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x03,0x00,0x00,0xEB,0xFE,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0x00,0xEB,0xF7,0xFF,0xFF,0xEA,0x01,0x29,0xA0,0xE3, + 0x01,0x20,0x52,0xE2,0xFD,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0xFF,0x40,0x2D,0xE9, + 0xC6,0x00,0x00,0xEB,0xFF,0x40,0xBD,0xE8,0x04,0xF0,0x5E,0xE2,0x1C,0x40,0x00,0x30, + 0x70,0xE9,0x1C,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x38,0x4A,0x36,0x48,0x36,0x49,0x92,0x08,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x34,0x48,0x01,0x21,0xC9,0x02,0x01,0x62, + 0x00,0x21,0x01,0x62,0x01,0x62,0x32,0x49,0x32,0x48,0x01,0x60,0x20,0x21,0x41,0x60, + 0xA0,0x21,0x81,0x60,0x70,0x47,0xF8,0xB5,0x2C,0x4B,0x9F,0x6A,0x2E,0x48,0x00,0x69, + 0x42,0x08,0x58,0x69,0x19,0x15,0x08,0x43,0x58,0x61,0xFF,0xF7,0xE5,0xFF,0x58,0x69, + 0xFF,0x21,0x81,0x31,0x08,0x43,0x58,0x61,0x28,0x48,0x29,0x4C,0x20,0x60,0xFF,0x20, + 0x90,0x30,0x60,0x60,0x13,0x20,0xA0,0x60,0xA0,0x68,0xA6,0x15,0x30,0x43,0xA0,0x60, + 0x20,0x4D,0x5F,0x23,0x00,0x2F,0x27,0xD1,0x22,0x4F,0x21,0xE0,0x68,0x68,0x00,0x07, + 0x1E,0xD5,0xE8,0x68,0x40,0x28,0x04,0xD1,0xEA,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1, + 0x14,0xE0,0x20,0x28,0x04,0xD3,0xEF,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1,0x0D,0xE0, + 0x0D,0x28,0x08,0xD1,0x2E,0x20,0x68,0x60,0x68,0x69,0x80,0x06,0xFC,0xD4,0x68,0x68, + 0x80,0x07,0xFC,0xD5,0x08,0xE0,0x68,0x68,0x80,0x07,0xFC,0xD5,0xFF,0xF7,0xAC,0xFF, + 0xE0,0x68,0x11,0x49,0x88,0x42,0xD9,0xD3,0xFF,0xF7,0xA6,0xFF,0xA0,0x68,0xB0,0x43, + 0xA0,0x60,0x00,0xF0,0x3D,0xF9,0xF8,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x00,0x00, + 0x00,0x00,0x00,0x10,0x7C,0x02,0x00,0x00,0xEC,0x00,0x00,0x00,0x40,0x00,0x00,0x40, + 0xDE,0x10,0x05,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0xFF,0xFF,0x00,0x00, + 0x00,0x40,0x00,0x40,0xFF,0x03,0xFF,0x2F,0x50,0xC3,0x00,0x00,0x38,0x48,0x41,0x6B, + 0xC9,0x07,0xFC,0xD0,0x41,0x6B,0x01,0x22,0x11,0x43,0x41,0x63,0x70,0x47,0x34,0x48, + 0xC2,0x69,0x41,0x14,0x8A,0x43,0xC2,0x61,0xC2,0x69,0x0A,0x43,0xC2,0x61,0xC2,0x69, + 0x8A,0x43,0xC2,0x61,0x70,0x47,0x10,0xB4,0x2D,0x4C,0x40,0x23,0x60,0x60,0x20,0x68, + 0x80,0x0A,0x80,0x02,0x10,0x43,0xA8,0x22,0x10,0x43,0x20,0x60,0x02,0xE0,0x08,0x78, + 0xA0,0x60,0x49,0x1C,0x5B,0x1E,0xFA,0xD2,0x10,0xBC,0x70,0x47,0xF0,0xB5,0x05,0x00, + 0x0E,0x00,0x1F,0x00,0x94,0x09,0x81,0x06,0x22,0x48,0x12,0xD1,0x91,0x06,0x10,0xD1, + 0x0C,0xE0,0x3A,0x00,0x31,0x00,0x28,0x00,0xFF,0xF7,0xDD,0xFF,0x40,0x35,0x2D,0x04, + 0x2D,0x0C,0x40,0x36,0xFF,0xF7,0xC2,0xFF,0xFF,0xF7,0xC9,0xFF,0x64,0x1E,0x60,0x1C, + 0xEF,0xD1,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x15,0x4B,0x40,0x22,0x58,0x60,0x18,0x68, + 0x80,0x0A,0x80,0x02,0x08,0x43,0xA4,0x21,0x08,0x43,0x18,0x60,0x00,0x21,0x00,0xE0, + 0x99,0x60,0x52,0x1E,0xFC,0xD2,0x70,0x47,0x70,0xB5,0x05,0x00,0x16,0x00,0x8C,0x09, + 0x82,0x06,0x0C,0x48,0x10,0xD1,0x89,0x06,0x0E,0xD1,0x0A,0xE0,0x31,0x00,0x28,0x00, + 0xFF,0xF7,0xE2,0xFF,0x40,0x35,0x2D,0x04,0x2D,0x0C,0xFF,0xF7,0x97,0xFF,0xFF,0xF7, + 0x9E,0xFF,0x64,0x1E,0x60,0x1C,0xF1,0xD1,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0x70,0x00,0x40,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0xF8,0xB5,0x03,0x25,0x0F,0x4E,0x2D,0x07, + 0x01,0x27,0xF0,0x6A,0x00,0x28,0x15,0xD0,0xF0,0x6B,0xE9,0x68,0x80,0x08,0x3C,0x00, + 0x84,0x40,0x21,0x43,0xE9,0x60,0x69,0x68,0x21,0x42,0x00,0xD0,0x34,0x63,0x81,0x00, + 0x07,0x48,0x40,0x58,0x00,0x28,0x01,0xD0,0x06,0xF0,0xC2,0xFE,0xE8,0x68,0xA0,0x43, + 0xE8,0x60,0xE6,0xE7,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x30, + 0x54,0x07,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF8,0xB5,0x00,0xF0,0x87,0xFD,0x07,0x00,0x03,0xF0,0x3C,0xFC,0x03,0xF0,0x2E,0xFC, + 0x03,0xF0,0xB8,0xFC,0x46,0x4A,0x47,0x49,0x47,0x48,0x04,0xF0,0xDB,0xFD,0x05,0x21, + 0x49,0x03,0x00,0x20,0x00,0xF0,0x24,0xFA,0x44,0x4C,0x45,0x49,0xA0,0x61,0x00,0x20, + 0x00,0xF0,0x1E,0xFA,0x43,0x4B,0x44,0x49,0xD8,0x63,0x44,0x48,0x00,0xF0,0x18,0xFA, + 0xD9,0x6B,0x00,0x04,0x08,0x43,0xD8,0x63,0x03,0xF0,0x78,0xFC,0x40,0x4A,0x41,0x48, + 0x00,0x21,0x04,0xF0,0xD1,0xFD,0x06,0xF0,0xA5,0xF9,0x03,0xF0,0x1F,0xFD,0x3E,0x48, + 0x00,0x26,0x81,0x7A,0x01,0x25,0x6D,0x07,0xE1,0x71,0xC1,0x7A,0x21,0x72,0x40,0x7A, + 0x60,0x72,0xA6,0x71,0xA6,0x72,0xE6,0x72,0x26,0x73,0x36,0x48,0x66,0x73,0xA6,0x73, + 0x68,0x63,0xFF,0x20,0xE8,0x63,0xE8,0x14,0x00,0xF0,0x20,0xFD,0x33,0x48,0x06,0x70, + 0xFF,0x20,0x81,0x30,0x00,0xF0,0x1A,0xFD,0x31,0x49,0x02,0x20,0x06,0xF0,0x8C,0xFC, + 0x02,0x20,0x06,0xF0,0x91,0xFC,0x60,0x7A,0x00,0x28,0x01,0xD0,0x06,0xF0,0x00,0xFE, + 0x00,0x2F,0x1F,0xD1,0x2B,0x4E,0xB7,0x15,0x60,0x7A,0x00,0x28,0x02,0xD0,0x2A,0x49, + 0x20,0x6B,0x88,0x60,0xE8,0x6B,0x0B,0x28,0x14,0xD0,0x28,0x48,0x40,0x68,0x00,0x07, + 0x01,0xD5,0x02,0xF0,0xF7,0xFA,0xF0,0x68,0x25,0x49,0x88,0x42,0xEC,0xD9,0x25,0x48, + 0xC0,0x68,0xFF,0x28,0x06,0xD1,0xB0,0x68,0xB8,0x43,0xB0,0x60,0xB0,0x68,0x38,0x43, + 0xB0,0x60,0xE1,0xE7,0x20,0x7A,0x00,0x28,0x03,0xD1,0x01,0x20,0x80,0x02,0x00,0xF0, + 0xDD,0xFC,0x60,0x7A,0x00,0x28,0x01,0xD0,0x06,0xF0,0xDA,0xFD,0x02,0x20,0x06,0xF0, + 0x67,0xFC,0xFF,0x20,0x81,0x30,0x00,0xF0,0xD1,0xFC,0x17,0x49,0x05,0x20,0x03,0xF0, + 0x5B,0xFA,0x0B,0x20,0xE8,0x63,0x03,0xF0,0xF1,0xFA,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x28,0x00,0x00,0x00,0xCC,0x72,0x00,0x00,0x00,0x00,0x00,0x10,0x0C,0x07,0x00,0x20, + 0xC0,0x92,0x00,0x00,0xC0,0x0F,0x00,0x20,0x00,0x9D,0x00,0x00,0x00,0x93,0x00,0x00, + 0xCC,0x06,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00,0xD9,0x07,0x00,0x20, + 0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x40,0x00,0x30, + 0x50,0xC3,0x00,0x00,0xC0,0x92,0x00,0x00,0x4D,0x6E,0x00,0x00,0x78,0x47,0xC0,0x46, + 0x10,0x40,0x2D,0xE9,0x20,0x20,0x52,0xE2,0x05,0x00,0x00,0x3A,0x18,0x50,0xB1,0xE8, + 0x20,0x20,0x52,0xE2,0x18,0x50,0xA0,0xE8,0x18,0x50,0xB1,0xE8,0x18,0x50,0xA0,0xE8, + 0xF9,0xFF,0xFF,0x2A,0x02,0xCE,0xB0,0xE1,0x18,0x50,0xB1,0x28,0x18,0x50,0xA0,0x28, + 0x18,0x00,0xB1,0x48,0x18,0x00,0xA0,0x48,0x10,0x40,0xBD,0xE8,0x02,0xCF,0xB0,0xE1, + 0x04,0x30,0x91,0x24,0x04,0x30,0x80,0x24,0x1E,0xFF,0x2F,0x01,0x82,0x2F,0xB0,0xE1, + 0xB2,0x30,0xD1,0x20,0x01,0x20,0xD1,0x44,0xB2,0x30,0xC0,0x20,0x01,0x20,0xC0,0x44, + 0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x01,0x30,0x90,0xE1,0x4C,0x00,0x00,0x4A, + 0x00,0x20,0xB0,0xE3,0xA0,0x30,0x71,0xE0,0x43,0x00,0x00,0x3A,0x20,0x32,0x71,0xE0, + 0x34,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0,0x26,0x00,0x00,0x3A,0x20,0x36,0x71,0xE0, + 0x17,0x00,0x00,0x3A,0x20,0x38,0x71,0xE0,0x09,0x00,0x00,0x3A,0x01,0x14,0xA0,0xE1, + 0x20,0x38,0x71,0xE0,0xFF,0x24,0x82,0xE3,0xFF,0x28,0x82,0x23,0x01,0x14,0xA0,0x21, + 0x20,0x36,0x71,0xE0,0x0E,0x00,0x00,0x3A,0x00,0x30,0x71,0xE2,0x6F,0x00,0x00,0x2A, + 0x21,0x14,0xA0,0x21,0xA0,0x37,0x71,0xE0,0x81,0x07,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x37,0x71,0xE0,0x01,0x07,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x36,0x71,0xE0, + 0x81,0x06,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x36,0x71,0xE0,0x01,0x06,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x35,0x71,0xE0,0x81,0x05,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x35,0x71,0xE0,0x01,0x05,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x34,0x71,0xE0, + 0x81,0x04,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x34,0x71,0xE0,0x01,0x04,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xE5,0xFF,0xFF,0x2A,0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0, + 0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0, + 0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0,0x1E,0xFF,0x2F,0xE1,0x01,0x10,0x50,0xE0, + 0x01,0x00,0xA0,0x23,0x1E,0xFF,0x2F,0x21,0x00,0x10,0xA0,0xE1,0x00,0x00,0xB0,0xE3, + 0x1E,0xFF,0x2F,0xE1,0x02,0x21,0x11,0xE2,0x00,0x10,0x61,0x42,0x40,0xC0,0x32,0xE0, + 0x00,0x00,0x60,0x22,0x20,0x32,0x71,0xE0,0x1D,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0, + 0x0F,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x23,0x82,0xE3, + 0x0B,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x26,0x82,0xE3, + 0x07,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x29,0x82,0xE3, + 0x01,0x13,0xA0,0x21,0x3F,0x2C,0x82,0x23,0x00,0x30,0x71,0xE2,0x1D,0x00,0x00,0x2A, + 0x21,0x13,0xA0,0x21,0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0, + 0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xEB,0xFF,0xFF,0x2A, + 0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0, + 0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42, + 0x00,0x10,0x61,0x22,0x1E,0xFF,0x2F,0xE1,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42, + 0x01,0x40,0x2D,0xE9,0x00,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB,0x02,0x40,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0xA0,0xE1,0x07,0x40,0x2D,0xE9,0x02,0x00,0xB0,0xE3, + 0x01,0x00,0x00,0xEB,0x07,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x10,0xB5,0x02,0x20,0x06,0xF0,0xB3,0xFC,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46,0x00,0x20,0xB0,0xE3,0x20,0x32,0x71,0xE0, + 0xA0,0xFF,0xFF,0x3A,0x20,0x34,0x71,0xE0,0x92,0xFF,0xFF,0x3A,0x20,0x36,0x71,0xE0, + 0x83,0xFF,0xFF,0x3A,0x20,0x38,0x71,0xE0,0x75,0xFF,0xFF,0x3A,0x6A,0xFF,0xFF,0xEA, + 0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x00,0x10, + 0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0xAD,0x00,0x00,0x10, + 0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x51,0x00,0x00,0x10, + 0x78,0x47,0xC0,0x46,0xD4,0xFD,0xFF,0xEA,0x02,0x48,0x01,0x68,0x02,0x4A,0x11,0x40, + 0x01,0x60,0x70,0x47,0x00,0xA0,0x00,0x40,0xFE,0xFF,0xEF,0xFF,0x07,0x49,0x10,0xB5, + 0x08,0x68,0x07,0x4A,0x10,0x43,0x08,0x60,0x0B,0x24,0x02,0xF0,0xD7,0xF8,0x64,0x1E, + 0x00,0x2C,0xFA,0xDC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x01,0x00,0x10,0x00,0xF0,0xB5,0x01,0x27,0x7F,0x07,0x3D,0x68,0x17,0x4E,0xB0,0x7B, + 0xC0,0x07,0x26,0xD0,0x70,0x7A,0x00,0x28,0x21,0xD0,0xBA,0x00,0x01,0x2D,0x02,0xD1, + 0x79,0x68,0x11,0x43,0xB9,0x60,0x00,0x04,0x02,0x43,0x90,0x0A,0x80,0x02,0xA9,0x05, + 0x89,0x0D,0x08,0x43,0x78,0x60,0x01,0x24,0x08,0xE0,0x0D,0x49,0xE0,0x00,0x40,0x18, + 0x0C,0x49,0x41,0x18,0x28,0x19,0x06,0xF0,0x31,0xF8,0x64,0x1C,0x70,0x7A,0xA0,0x42, + 0xF3,0xDA,0x70,0x7A,0x01,0x28,0x02,0xD1,0x00,0x2D,0x00,0xD1,0x01,0x25,0x70,0x7A, + 0x45,0x19,0x3D,0x60,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0x3A,0x06,0x00,0x00,0x70,0xB4,0x1A,0x4B,0xDA,0x88,0xD2,0x07, + 0x2B,0xD1,0x19,0x4A,0x05,0x78,0x54,0x7A,0xE4,0x00,0xE6,0x18,0x19,0x24,0xA4,0x01, + 0x36,0x19,0xB5,0x70,0x56,0x7A,0x45,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0xB5,0x80, + 0x56,0x7A,0x85,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0xF5,0x80,0x55,0x7A,0xED,0x00, + 0xED,0x18,0x2D,0x19,0x29,0x72,0x55,0x7A,0xC1,0x79,0xED,0x00,0xEB,0x18,0x1B,0x19, + 0x59,0x72,0x51,0x7A,0x49,0x1C,0x51,0x72,0xC0,0x79,0x06,0x28,0x07,0xD0,0x0A,0x28, + 0x01,0xD0,0x12,0x28,0x01,0xD1,0x00,0x20,0x90,0x72,0x70,0xBC,0x70,0x47,0x01,0x20, + 0xFA,0xE7,0x00,0x00,0x40,0x00,0x00,0x20,0x40,0x06,0x00,0x20,0xFF,0xB5,0x0A,0x20, + 0x48,0x43,0x16,0x4F,0x81,0xB0,0xC5,0x19,0xFF,0x35,0x48,0x00,0xC1,0x35,0xC0,0x19, + 0x2A,0x73,0x00,0x90,0x0C,0x00,0xE0,0x30,0x80,0x8A,0x16,0x00,0x0A,0x21,0xFF,0xF7, + 0x29,0xFF,0xE8,0x81,0x00,0x98,0x0A,0x21,0xFF,0x30,0x01,0x30,0xC0,0x89,0xFF,0xF7, + 0x21,0xFF,0x28,0x82,0x38,0x19,0xFF,0x30,0x41,0x30,0x00,0x7E,0xB9,0x19,0x68,0x73, + 0x04,0x98,0xA8,0x74,0x01,0x98,0x06,0x55,0x0D,0x20,0x80,0x01,0x08,0x18,0x00,0x21, + 0xC4,0x77,0x81,0x74,0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20, + 0x06,0x48,0x0F,0x23,0x42,0x79,0x01,0x68,0x9B,0x06,0x49,0x1C,0x12,0x07,0x12,0x0A, + 0xD2,0x18,0x09,0x03,0x09,0x0B,0x0A,0x43,0x02,0x60,0x70,0x47,0x40,0x00,0x00,0x20, + 0xF1,0xB5,0xB1,0x48,0x90,0xB0,0x0F,0x90,0x40,0x7C,0x02,0x90,0x0F,0x98,0xC0,0x7C, + 0x01,0x90,0x0F,0x98,0x00,0x7C,0x00,0x90,0xAC,0x48,0x00,0x68,0x00,0x88,0x00,0x05, + 0x7E,0xD5,0x10,0x98,0x01,0x28,0x00,0xD0,0x02,0x20,0x03,0x90,0x00,0x20,0x04,0x90, + 0x41,0xE1,0x03,0x98,0x01,0x21,0x80,0x00,0x49,0x07,0x40,0x18,0x0E,0x90,0x00,0x68, + 0x81,0x00,0x0D,0x90,0x0C,0x0F,0x80,0x0F,0xC0,0x07,0x03,0xD1,0x20,0x00,0x01,0xF0, + 0x03,0xFB,0x29,0xE1,0x9E,0x48,0xA5,0x00,0x40,0x5F,0x00,0x28,0x84,0x46,0x0F,0xDA, + 0x0D,0x98,0x9B,0x49,0x80,0x01,0x80,0x0D,0x48,0x53,0x0D,0x98,0x6A,0x18,0x80,0x05, + 0x80,0x0D,0x50,0x80,0x4A,0x5B,0x34,0x31,0x4A,0x53,0x69,0x18,0x48,0x80,0x13,0xE1, + 0x02,0x9F,0x93,0x49,0x00,0x20,0x7F,0x1E,0x68,0x31,0x69,0x18,0x06,0xE0,0x83,0x00, + 0xCA,0x18,0x96,0x88,0x40,0x1C,0xCE,0x52,0xD3,0x88,0x53,0x80,0xB8,0x42,0xF6,0xDB, + 0x0D,0x98,0x62,0x46,0x80,0x01,0x80,0x0D,0x0C,0x90,0x80,0x1A,0x02,0x9A,0x88,0x4E, + 0x92,0x00,0x8B,0x18,0x20,0x3B,0x98,0x83,0x0D,0x98,0xAA,0x19,0x80,0x05,0x80,0x0D, + 0x0A,0x92,0x0B,0x90,0x52,0x88,0x80,0x1A,0xD8,0x83,0x00,0x20,0x06,0x00,0x02,0x00, + 0x07,0xE0,0x93,0x00,0xCF,0x5E,0x38,0x18,0xCF,0x18,0x02,0x23,0xFB,0x5E,0x9E,0x19, + 0x52,0x1C,0x02,0x9B,0x9A,0x42,0xF4,0xDB,0x19,0x00,0xFF,0xF7,0x53,0xFD,0x07,0x00, + 0x02,0x99,0x30,0x00,0xFF,0xF7,0x4E,0xFD,0x00,0x2F,0x00,0xDC,0x7F,0x42,0x0F,0x99, + 0x89,0x7C,0x8F,0x42,0x13,0xDA,0x00,0x28,0x00,0xDC,0x40,0x42,0x88,0x42,0x0E,0xDA, + 0x6F,0x4B,0x0F,0x9A,0x61,0x00,0x28,0x3B,0x58,0x5E,0x12,0x7D,0x01,0x9E,0x00,0xE0, + 0xCD,0xE0,0xB6,0x1A,0xB0,0x42,0x0A,0xDA,0x80,0x18,0x58,0x52,0x07,0xE0,0x68,0x49, + 0x0F,0x9B,0x60,0x00,0x28,0x39,0x0A,0x5A,0x5B,0x7D,0xD2,0x1A,0x0A,0x52,0x64,0x49, + 0x60,0x00,0x28,0x39,0x0A,0x5E,0x00,0x2A,0x01,0xDC,0x00,0x22,0x0A,0x52,0x08,0x5E, + 0x01,0x99,0x88,0x42,0x09,0x90,0x01,0xDB,0x05,0x20,0x2B,0xE0,0x88,0x00,0x05,0x21, + 0xFF,0xF7,0x48,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x04,0x20,0x22,0xE0,0x01,0x98, + 0x41,0x00,0x40,0x18,0x05,0x21,0xFF,0xF7,0x3D,0xFE,0x09,0x99,0x88,0x42,0x04,0xDC, + 0x53,0x48,0x03,0x21,0x0E,0x38,0x01,0x55,0x17,0xE0,0x01,0x98,0x05,0x21,0x40,0x00, + 0xFF,0xF7,0x30,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x01,0x98, + 0x05,0x21,0xFF,0xF7,0x27,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x01,0x20,0x01,0xE0, + 0x08,0x00,0x02,0xD1,0x46,0x49,0x0E,0x39,0x08,0x55,0x45,0x49,0x0C,0x9A,0x34,0x31, + 0x48,0x5F,0x16,0x1A,0x08,0x90,0x68,0x18,0x02,0x21,0x07,0x90,0x41,0x5E,0x0B,0x9A, + 0x3F,0x48,0x57,0x1A,0x0E,0x38,0x06,0x91,0x01,0x5D,0x0F,0x98,0x80,0x7D,0x81,0x42, + 0x27,0xD3,0x00,0x2E,0x01,0xD1,0x00,0x24,0x0D,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42, + 0x00,0x99,0x88,0x42,0x01,0xDA,0x01,0x24,0x05,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42, + 0xFF,0xF7,0xC8,0xFC,0x04,0x00,0x00,0x2F,0x01,0xD1,0x00,0x20,0x0C,0xE0,0x38,0x1E, + 0x00,0xDC,0x78,0x42,0x00,0x99,0x88,0x42,0x01,0xDA,0x01,0x20,0x04,0xE0,0x38,0x1E, + 0x00,0xDC,0x78,0x42,0xFF,0xF7,0xB6,0xFC,0x08,0x99,0x00,0x2E,0x1D,0xDB,0x09,0x19, + 0x1C,0xE0,0x09,0x98,0xFF,0x21,0x91,0x31,0x48,0x43,0x05,0x21,0xFF,0xF7,0xAA,0xFC, + 0x01,0x99,0xFF,0xF7,0xA7,0xFC,0x64,0x21,0x08,0x1A,0x31,0x1E,0x05,0x90,0x00,0xDC, + 0x71,0x42,0x48,0x43,0x64,0x21,0xFF,0xF7,0x9D,0xFC,0x05,0x9A,0x04,0x00,0x38,0x1E, + 0x00,0xDC,0x78,0x42,0x50,0x43,0x64,0x21,0xDC,0xE7,0x09,0x1B,0x06,0x9A,0x00,0x2F, + 0x01,0xDB,0x10,0x18,0x00,0xE0,0x10,0x1A,0x15,0x4A,0x0C,0x9B,0x53,0x53,0x0A,0x9B, + 0x0B,0x9A,0x5A,0x80,0x12,0x4A,0x13,0x4B,0x34,0x32,0x51,0x53,0x07,0x9A,0x89,0x05, + 0x50,0x80,0x0D,0x9A,0x89,0x09,0x1A,0x40,0x0A,0x43,0x91,0x0A,0x89,0x02,0x80,0x05, + 0x80,0x0D,0x01,0x43,0x0E,0x98,0x01,0x60,0x04,0x98,0x40,0x1C,0x04,0x90,0x03,0x98, + 0x40,0x1C,0x03,0x90,0x04,0x98,0x10,0x99,0x88,0x42,0x00,0xDA,0xB9,0xE6,0x11,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x93,0x00,0x00,0xD4,0x07,0x00,0x20, + 0xD4,0x0A,0x00,0x20,0xFF,0xFF,0x00,0xFC,0x10,0x4B,0x30,0xB4,0x1B,0x21,0xDA,0x88, + 0x89,0x01,0x80,0x24,0x59,0x18,0x00,0x28,0x0E,0xD0,0x0D,0x48,0x45,0x7B,0x0D,0x80, + 0xC5,0x89,0x4D,0x80,0x05,0x8A,0x8D,0x80,0x40,0x8A,0xC8,0x80,0x08,0x48,0x20,0x30, + 0x00,0x89,0x22,0x43,0x08,0x81,0x06,0xE0,0x00,0x20,0x08,0x80,0x48,0x80,0x88,0x80, + 0xC8,0x80,0xA2,0x43,0x08,0x81,0xDA,0x80,0x30,0xBC,0x70,0x47,0x40,0x00,0x00,0x20, + 0x80,0x93,0x00,0x00,0x7F,0xB5,0x25,0x4D,0x06,0x00,0x1A,0x28,0x0C,0xD1,0x28,0x6A, + 0x00,0x28,0x09,0xD1,0x68,0x6A,0x00,0x28,0x06,0xD1,0x21,0x4C,0x01,0xF0,0x6A,0xFE, + 0x64,0x1E,0xFB,0xD2,0xFF,0x24,0x12,0xE0,0x04,0xF0,0xA4,0xFF,0x01,0xF0,0x60,0xFD, + 0x01,0xF0,0xA8,0xFD,0x03,0xAA,0x01,0xA9,0x02,0xA8,0x04,0xF0,0x71,0xF9,0x04,0x00, + 0x03,0x00,0x01,0x9A,0x02,0x99,0x03,0x98,0x00,0x96,0x00,0xF0,0x33,0xF8,0x02,0x20, + 0x06,0xF0,0x0E,0xF8,0x02,0x20,0x05,0xF0,0xFF,0xFF,0x12,0x49,0xE8,0x68,0xC8,0x61, + 0x28,0x69,0xC8,0x61,0x10,0x48,0xC2,0x68,0x52,0x08,0x52,0x00,0xC2,0x60,0x0F,0x4B, + 0x0F,0x48,0x02,0xE0,0xDA,0x68,0x82,0x42,0x02,0xD8,0x4A,0x69,0x92,0x06,0xF9,0xD5, + 0x48,0x68,0x80,0x07,0xFC,0xD5,0x01,0xF0,0x55,0xFE,0x01,0x20,0x00,0xF0,0x6E,0xF8, + 0x20,0x00,0x04,0xB0,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x92,0x00,0x00, + 0xE7,0x03,0x00,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40, + 0x50,0xC3,0x00,0x00,0xFF,0xB5,0x05,0x00,0x0E,0x00,0x91,0xB0,0xFF,0xF7,0x42,0xF9, + 0x1C,0x48,0x03,0x27,0x04,0x04,0x24,0x0C,0x3F,0x02,0x00,0x22,0x39,0x00,0x20,0x00, + 0xFF,0xF7,0x1E,0xFD,0x18,0x49,0x3A,0x00,0x20,0x00,0x00,0x23,0xFF,0xF7,0x20,0xFD, + 0x16,0x49,0x40,0x22,0x01,0xA8,0x04,0xF0,0xBD,0xF8,0x14,0x99,0x28,0x04,0x09,0x03, + 0x08,0x43,0x13,0x49,0x08,0x43,0x04,0x90,0x13,0x99,0x30,0x04,0x08,0x43,0x05,0x90, + 0x10,0x48,0x11,0x49,0xC0,0x6B,0x10,0x90,0x0C,0x48,0x80,0x69,0x40,0x1C,0x07,0x90, + 0x00,0x20,0x8D,0x42,0x09,0x90,0x02,0xD1,0x06,0x99,0x49,0x1C,0x06,0x91,0x1A,0x99, + 0x1A,0x29,0x00,0xD1,0x0A,0x90,0x01,0xA8,0x06,0xF0,0xE0,0xF8,0x15,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x9D,0x00,0x00,0x00,0x00,0x10,0x40,0xC0,0x92,0x00,0x00, + 0xAB,0x0C,0x00,0x80,0xC0,0x0F,0x00,0x20,0xEC,0x0D,0x00,0x00,0x02,0x4A,0x51,0x69, + 0x81,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x4A,0x51,0x69, + 0x01,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x78,0x47,0xC0,0x46, + 0x01,0x21,0xA0,0xE3,0x50,0x30,0x92,0xE5,0x0C,0x10,0xA0,0xE3,0x03,0x00,0x80,0xE1, + 0x50,0x00,0x82,0xE5,0x00,0x00,0x00,0xEA,0x00,0x00,0xA0,0xE1,0x01,0x10,0x51,0xE2, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x01,0x48,0x40,0x69,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x01,0x48,0x80,0x6A,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x02,0x49,0x08,0x62,0x00,0x20,0x08,0x62,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x01,0x49,0x48,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x07,0x49,0xFF,0x28, + 0x04,0xD1,0x01,0x20,0xC8,0x60,0x00,0x20,0x88,0x61,0x70,0x47,0x8A,0x69,0x12,0x07, + 0x12,0x0F,0x02,0x43,0x8A,0x61,0x02,0x20,0xC8,0x60,0x70,0x47,0x40,0x00,0x00,0x40, + 0xF0,0xB5,0xFF,0xB0,0x00,0x20,0xCC,0xB0,0xBB,0x90,0x40,0x1E,0xB7,0x90,0xFF,0x48, + 0xFF,0x4A,0x00,0x68,0xFF,0x4F,0x60,0x30,0xC1,0x7D,0xFF,0x4C,0x04,0x91,0x01,0x7E, + 0x12,0x88,0x89,0x18,0x09,0x06,0x09,0x0E,0x03,0x91,0x41,0x7E,0x02,0x91,0x80,0x7E, + 0x01,0x90,0x00,0x20,0x3D,0x79,0x01,0x26,0x00,0x90,0x14,0xE0,0x0A,0x20,0x70,0x43, + 0x0B,0x21,0xC0,0x19,0x89,0x01,0x41,0x18,0x09,0x7C,0x00,0x29,0x0A,0xD0,0xF3,0x49, + 0x40,0x18,0x02,0xF0,0xF3,0xFD,0x00,0x28,0x04,0xD0,0x00,0x98,0x40,0x1C,0x00,0x06, + 0x00,0x0E,0x00,0x90,0x76,0x1C,0xA0,0x7A,0xB0,0x42,0xE7,0xDA,0xEC,0x48,0x01,0x88, + 0x82,0x88,0x8E,0x1A,0x00,0x2E,0x00,0xDC,0x56,0x1A,0x42,0x88,0xC0,0x88,0x31,0x04, + 0x09,0x0C,0x8C,0x46,0x11,0x1A,0x00,0x29,0x00,0xDC,0x81,0x1A,0x08,0x04,0xE4,0x49, + 0x00,0x26,0x20,0x39,0xCA,0x91,0x8E,0x77,0x00,0x99,0x00,0x0C,0x00,0x29,0x0D,0xD0, + 0x61,0x46,0x1E,0x29,0x0A,0xD2,0x32,0x28,0x01,0xD2,0x01,0x20,0x04,0xE0,0x64,0x28, + 0x01,0xD2,0x02,0x20,0x00,0xE0,0x03,0x20,0xCA,0x99,0x88,0x77,0xCA,0x98,0x40,0x7F, + 0x00,0x28,0x12,0xD1,0xCA,0x98,0x80,0x7F,0x01,0x28,0x02,0xD1,0x04,0x98,0x80,0x1C, + 0x08,0xE0,0x02,0x28,0x02,0xD1,0x04,0x98,0x00,0x1D,0x03,0xE0,0x03,0x28,0x04,0xD1, + 0x04,0x98,0x80,0x1D,0x00,0x06,0x00,0x0E,0x04,0x90,0x0D,0x22,0x00,0x21,0xB3,0xA8, + 0x03,0xF0,0xD2,0xFF,0xF8,0x88,0xFF,0x21,0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06, + 0x09,0xD5,0x01,0xF0,0x43,0xF8,0xC7,0x49,0x01,0x20,0x08,0x70,0x7F,0xB0,0x4C,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0xC3,0x49,0x00,0x20,0x08,0x70,0xE0,0x7A,0x00,0x28, + 0x01,0xD0,0x40,0x1E,0xE0,0x72,0x60,0x7A,0x00,0x2D,0x02,0xD1,0x00,0x28,0x18,0xD0, + 0x18,0xE0,0x00,0x28,0x16,0xD1,0xB8,0x48,0x82,0x22,0x00,0x21,0x8E,0x30,0x03,0xF0, + 0xAB,0xFF,0xE0,0x7A,0x00,0x28,0x0C,0xD1,0x01,0x26,0x07,0xE0,0x31,0x06,0x09,0x0E, + 0x0A,0x00,0x14,0x23,0xB3,0xA8,0xFF,0xF7,0x89,0xFC,0x76,0x1C,0xAE,0x42,0xF5,0xDD, + 0x25,0x72,0xE8,0xE1,0x0D,0x22,0x01,0x21,0xAF,0xA8,0x03,0xF0,0x95,0xFF,0x02,0x20, + 0xAA,0x49,0x05,0x90,0xA7,0x48,0x89,0x31,0x41,0x18,0xC9,0x91,0xA7,0x49,0x7C,0x31, + 0x40,0x18,0xC8,0x90,0x14,0xE1,0x0C,0x26,0x06,0xAF,0x34,0x20,0x70,0x43,0x06,0xA9, + 0x40,0x18,0x00,0x21,0x34,0x22,0xC9,0x43,0x03,0xF0,0x7E,0xFF,0x76,0x1E,0xF4,0xD5, + 0x05,0x98,0x01,0xF0,0x03,0xFC,0x01,0x27,0xB8,0x90,0x54,0xE0,0xB8,0x98,0x01,0x26, + 0xB9,0x90,0x4C,0xE0,0x0A,0x20,0x70,0x43,0x96,0x4A,0x0B,0x21,0x80,0x18,0x89,0x01, + 0x41,0x18,0xC7,0x91,0x09,0x7C,0x00,0x29,0x40,0xD0,0x94,0x49,0x40,0x18,0xC6,0x90, + 0x02,0xF0,0x34,0xFD,0x05,0x99,0x08,0x43,0x07,0xD0,0xC6,0x98,0x02,0xF0,0x2E,0xFD, + 0x00,0x28,0x33,0xD0,0x05,0x98,0x00,0x28,0x30,0xD0,0x8A,0x49,0x78,0x00,0x40,0x18, + 0xC5,0x90,0xE0,0x30,0x80,0x8A,0x0A,0x21,0xFF,0xF7,0x74,0xFB,0xC7,0x99,0x4A,0x8A, + 0x11,0x1A,0x00,0x29,0x00,0xDC,0x81,0x1A,0xC5,0x98,0xBA,0x91,0xFF,0x30,0x01,0x30, + 0xC0,0x89,0x0A,0x21,0xFF,0xF7,0x66,0xFB,0xC7,0x99,0x8A,0x8A,0x11,0x1A,0x00,0x29, + 0x00,0xDC,0x81,0x1A,0xBA,0x9A,0x10,0x00,0x50,0x43,0x0A,0x00,0x4A,0x43,0xB9,0x99, + 0x80,0x18,0x88,0x42,0x04,0xDA,0x34,0x21,0x79,0x43,0x06,0xAA,0x56,0x50,0xB9,0x90, + 0x34,0x21,0x79,0x43,0x06,0xAA,0x89,0x18,0xB2,0x00,0x88,0x50,0x76,0x1C,0xA0,0x7A, + 0xB0,0x42,0xAF,0xDA,0x7F,0x1C,0xAF,0x42,0xA8,0xDD,0x01,0x20,0xA4,0xE0,0x01,0x22, + 0xB8,0x99,0x10,0x00,0x15,0xE0,0xB3,0xAE,0x33,0x5C,0x00,0x2B,0x10,0xD1,0x34,0x23, + 0x06,0x00,0x5E,0x43,0x06,0xAB,0xF7,0x18,0x9E,0x59,0xB3,0x00,0xFF,0x58,0x8F,0x42, + 0x06,0xDA,0x00,0x2F,0x04,0xDB,0x00,0x2E,0x02,0xDB,0x39,0x00,0x00,0x22,0xB7,0x90, + 0x40,0x1C,0xA8,0x42,0xE7,0xDD,0x00,0x2A,0x7E,0xD1,0xBB,0x98,0x34,0x21,0x40,0x1C, + 0xBB,0x90,0xB7,0x98,0x5B,0x4F,0x48,0x43,0x06,0xA9,0xC4,0x90,0x08,0x58,0x0A,0x21, + 0x48,0x43,0x5A,0x49,0xC0,0x19,0x88,0x39,0x41,0x18,0xB7,0x98,0x0A,0x22,0x50,0x43, + 0xC6,0x19,0x30,0x00,0xFF,0x30,0xCD,0x30,0x03,0xF0,0xB2,0xFE,0xB7,0x98,0x0A,0x21, + 0x40,0x00,0xC0,0x19,0xC3,0x90,0xE0,0x30,0x80,0x8A,0xFF,0xF7,0x03,0xFB,0xFF,0x36, + 0xC1,0x36,0xF0,0x81,0xC3,0x98,0x0A,0x21,0xFF,0x30,0x01,0x30,0xC0,0x89,0xFF,0xF7, + 0xF9,0xFA,0x30,0x82,0xB7,0x98,0x38,0x18,0xFF,0x30,0x41,0x30,0x00,0x7E,0x70,0x73, + 0xB0,0x7C,0x04,0x99,0x49,0x1C,0x88,0x42,0x01,0xD2,0x40,0x1C,0xB0,0x74,0xB7,0x7C, + 0x13,0x2F,0x09,0xD9,0x14,0x21,0x38,0x00,0xFF,0xF7,0xE4,0xFA,0x03,0x99,0x89,0x1C, + 0x88,0x42,0x01,0xD2,0x14,0x37,0xB7,0x74,0x30,0x7B,0xB7,0x9A,0xB3,0xA9,0x88,0x54, + 0xC9,0x9A,0xB7,0x99,0x81,0x54,0x31,0x7B,0xC8,0x9A,0x00,0x20,0x88,0x54,0xC4,0x99, + 0x06,0xAA,0x51,0x58,0xAF,0xAA,0x50,0x54,0x01,0x21,0x23,0xE0,0x08,0x00,0x34,0x23, + 0x58,0x43,0xC4,0x9B,0x06,0xAE,0xC2,0x90,0xF3,0x58,0x00,0x22,0x80,0x19,0xD2,0x43, + 0x9B,0x00,0x84,0x46,0xC2,0x50,0xB3,0xA8,0x40,0x5C,0xB8,0x9E,0x00,0x28,0x10,0xD1, + 0xA7,0x7A,0x01,0x20,0x0B,0xE0,0x83,0x00,0x62,0x46,0xD2,0x58,0x00,0x2A,0x05,0xDB, + 0xB2,0x42,0x03,0xDA,0xC2,0x9B,0x06,0xAE,0xF0,0x50,0x16,0x00,0x40,0x1C,0x87,0x42, + 0xF1,0xDA,0x49,0x1C,0xA9,0x42,0x00,0xE0,0x04,0xE0,0xD7,0xDD,0xA0,0x7A,0xBB,0x99, + 0x88,0x42,0x05,0xDD,0xBD,0x98,0x40,0x1C,0xA8,0x42,0xBD,0x90,0x00,0xDC,0x56,0xE7, + 0x05,0x98,0x41,0x1E,0x09,0x06,0x09,0x0E,0x00,0x28,0x05,0x91,0x00,0xD0,0xE2,0xE6, + 0x01,0x26,0xBE,0x96,0xBC,0x90,0x70,0xE0,0xAF,0xA8,0x80,0x5D,0x00,0x28,0x6B,0xD0, + 0xBE,0x98,0x10,0x49,0x2F,0x18,0x0A,0x20,0x70,0x43,0x40,0x18,0x0B,0x21,0x89,0x01, + 0xC1,0x90,0x40,0x18,0xC0,0x90,0x01,0x7C,0xC8,0x98,0x08,0x5C,0x02,0x99,0x88,0x42, + 0x44,0xD2,0x0C,0x2F,0x42,0xDC,0x09,0x49,0xC1,0x98,0x40,0x18,0x02,0xF0,0x1E,0xFC, + 0x00,0x28,0x3B,0xD0,0xC0,0x98,0x03,0x4A,0x00,0x7C,0x0D,0xE0,0xD4,0x07,0x00,0x20, + 0x00,0x07,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x02,0x00,0x20,0xD6,0x02,0x00,0x00, + 0xC0,0x03,0x00,0x20,0x40,0x07,0x00,0x20,0xC8,0x99,0xC8,0x9B,0x41,0x5C,0x49,0x1C, + 0xC1,0x54,0xC1,0x98,0x2D,0x21,0x09,0x01,0x41,0x18,0x0A,0x20,0x78,0x43,0x80,0x18, + 0xBF,0x90,0xFF,0x30,0xCD,0x30,0x0A,0x22,0x03,0xF0,0xF2,0xFD,0xC1,0x98,0x09,0x21, + 0x89,0x01,0x41,0x18,0xBF,0x98,0x4A,0x7D,0xFF,0x30,0xC1,0x30,0xC2,0x74,0x89,0x7D, + 0x01,0x75,0xC0,0x98,0xB3,0xA9,0x00,0x7C,0xC8,0x55,0xC9,0x99,0x47,0x54,0xBE,0x98, + 0x40,0x1C,0xBE,0x90,0xBC,0x98,0x40,0x1C,0xBC,0x90,0x15,0xE0,0x33,0x49,0xC1,0x98, + 0x31,0x4F,0x40,0x18,0x02,0xF0,0xDA,0xFB,0x00,0x28,0x0D,0xD0,0xCA,0x98,0x01,0x21, + 0x01,0x77,0xC0,0x98,0x80,0x7D,0x13,0x28,0x06,0xD9,0x60,0x7A,0x01,0x28,0x03,0xD1, + 0xF8,0x88,0x04,0x21,0x08,0x43,0xF8,0x80,0x76,0x1C,0xA0,0x7A,0xB0,0x42,0x8B,0xDA, + 0x25,0x48,0xC0,0x88,0x41,0x07,0x05,0xD5,0x01,0x99,0x04,0x22,0xE1,0x72,0x22,0x49, + 0x90,0x43,0xC8,0x80,0x01,0x26,0x31,0xE0,0xB3,0xA8,0x80,0x5D,0x00,0x28,0x1A,0xD1, + 0x1D,0x4F,0x01,0x20,0x0D,0x22,0x92,0x01,0x39,0x18,0x8B,0x18,0xDB,0x7F,0x00,0x2B, + 0x0E,0xD1,0x1B,0x23,0x5B,0x01,0xC9,0x18,0x09,0x7B,0x00,0x29,0x08,0xD1,0x02,0x06, + 0x31,0x06,0x12,0x0E,0x09,0x0E,0x01,0x23,0xB3,0xA8,0xFF,0xF7,0xB7,0xFA,0x02,0xE0, + 0x40,0x1C,0x0D,0x28,0xE8,0xDB,0xE0,0x7A,0x00,0x28,0x0E,0xD0,0x0A,0x20,0x70,0x43, + 0x0D,0x49,0x47,0x18,0x38,0x00,0xFF,0x30,0xD3,0x30,0x02,0xF0,0x8F,0xFB,0x00,0x28, + 0x03,0xD1,0x01,0x20,0xFF,0x37,0xC1,0x37,0xB8,0x74,0x76,0x1C,0xAE,0x42,0xCB,0xDD, + 0xBC,0x98,0x28,0x18,0x20,0x72,0x20,0x7A,0x05,0x49,0x82,0x22,0xA0,0x72,0xC8,0x1D, + 0xFD,0x30,0x03,0xF0,0x75,0xFD,0xE1,0xE5,0x40,0x00,0x00,0x20,0xD6,0x02,0x00,0x00, + 0x0C,0x02,0x00,0x20,0xF1,0xB5,0x38,0x48,0x86,0xB0,0x05,0x90,0x00,0x20,0x04,0x90, + 0x36,0x48,0x41,0x7F,0x01,0x91,0x01,0x00,0x20,0x39,0x49,0x7F,0x00,0x91,0x00,0x21, + 0x02,0x91,0x01,0x7D,0x00,0x20,0xC0,0x43,0x00,0x29,0x06,0x99,0x03,0xD1,0x00,0x29, + 0x03,0xD1,0x01,0x20,0x01,0xE0,0x00,0x29,0xFB,0xD1,0x03,0x90,0x01,0xF0,0x2A,0xF9, + 0x01,0xF0,0x00,0xFA,0x00,0x24,0x27,0x00,0x00,0x26,0x31,0x00,0x38,0x00,0x02,0xF0, + 0x57,0xF8,0x00,0x28,0x28,0xD0,0x0E,0x21,0x79,0x43,0x05,0x9A,0x89,0x19,0x89,0x00, + 0x51,0x58,0x09,0x05,0x09,0x0D,0x0D,0x1A,0x06,0x98,0x00,0x28,0x0D,0xD0,0x00,0x2D, + 0x1A,0xDA,0x03,0x9A,0x31,0x00,0x38,0x00,0x05,0xF0,0x8A,0xFA,0x40,0x1C,0x14,0xD1, + 0x00,0x98,0x28,0x18,0x10,0xD5,0x02,0x20,0x0D,0xE0,0x00,0x2D,0x0C,0xDD,0x03,0x9A, + 0x31,0x00,0x38,0x00,0x05,0xF0,0x7C,0xFA,0x40,0x1C,0x06,0xD1,0x01,0x98,0x28,0x1A, + 0x00,0x28,0x01,0xDD,0x03,0x20,0x04,0x90,0x64,0x1C,0x76,0x1C,0x0E,0x2E,0xCC,0xD3, + 0x7F,0x1C,0x15,0x2F,0xC8,0xD3,0x20,0x00,0xFF,0x38,0x27,0x38,0x04,0xD1,0x04,0x98, + 0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x02,0x98,0x41,0x1C,0x02,0x91,0x01,0x21, + 0x49,0x02,0x88,0x42,0xB2,0xD9,0x06,0x98,0x00,0x28,0x01,0xD0,0x02,0x20,0x00,0xE0, + 0x03,0x20,0x04,0x90,0xEC,0xE7,0x00,0x00,0xD4,0x02,0x10,0x40,0x20,0x93,0x00,0x00, + 0xF0,0xB5,0x7B,0x4A,0xFF,0xB0,0xBC,0xB0,0x40,0x18,0xB9,0x92,0x42,0x00,0x80,0x18, + 0xB8,0x90,0x48,0x42,0xB7,0x90,0x77,0x48,0x77,0x4E,0x07,0x7F,0x02,0xA8,0x01,0x90, + 0x76,0x48,0xBA,0x90,0x00,0x7D,0x00,0x28,0x02,0xD1,0xB7,0x98,0x40,0x42,0xB7,0x90, + 0x73,0x4A,0x00,0x21,0x30,0x00,0x03,0xF0,0x1F,0xFD,0x00,0x25,0x00,0x24,0x6F,0x48, + 0x20,0x38,0x01,0x7D,0xC9,0x07,0x14,0xD0,0x6E,0x49,0x09,0x78,0x00,0x29,0x16,0xD0, + 0xBD,0x42,0x0E,0xD1,0x81,0x7D,0xA1,0x42,0x0B,0xD0,0xC1,0x7D,0xA1,0x42,0x08,0xD0, + 0x01,0x7E,0xA1,0x42,0x05,0xD0,0x41,0x7E,0xA1,0x42,0x02,0xD0,0x80,0x7E,0xA0,0x42, + 0x16,0xD1,0xB7,0x9A,0x21,0x00,0x28,0x00,0x05,0xF0,0x12,0xFA,0x10,0xE0,0xBC,0x42, + 0xF7,0xD1,0x81,0x7D,0xA9,0x42,0xF4,0xD0,0xC1,0x7D,0xA9,0x42,0xF1,0xD0,0x01,0x7E, + 0xA9,0x42,0xEE,0xD0,0x41,0x7E,0xA9,0x42,0xEB,0xD0,0x80,0x7E,0xA8,0x42,0xE8,0xD0, + 0x64,0x1C,0x0E,0x2C,0xCB,0xD3,0x6D,0x1C,0x15,0x2D,0xC7,0xD3,0x01,0xF0,0x7A,0xF8, + 0x01,0xF0,0x50,0xF9,0x00,0x25,0x00,0x24,0x0E,0x20,0x2F,0x00,0x47,0x43,0x21,0x00, + 0x28,0x00,0x01,0xF0,0xA5,0xFF,0x00,0x28,0x0F,0xD0,0xB9,0x9B,0x3A,0x19,0x91,0x00, + 0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D,0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD, + 0x08,0x1A,0x00,0xE0,0x40,0x1A,0x51,0x00,0x70,0x52,0x21,0x00,0x28,0x00,0x01,0xF0, + 0xCF,0xFF,0x39,0x19,0x01,0x9A,0x49,0x00,0x64,0x1C,0x0E,0x2C,0x50,0x52,0xDE,0xD3, + 0x6D,0x1C,0x15,0x2D,0xD7,0xD3,0x00,0x20,0x00,0x90,0x01,0xF0,0x23,0xF9,0x00,0x25, + 0x00,0x24,0x21,0x00,0x28,0x00,0x01,0xF0,0x7B,0xFF,0x00,0x28,0x3E,0xD0,0x0E,0x21, + 0x69,0x43,0xB9,0x9B,0x0A,0x19,0x91,0x00,0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D, + 0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0,0x40,0x1A,0x57,0x00, + 0xF1,0x5B,0x00,0x04,0x00,0x0C,0x81,0x42,0x06,0xD9,0xF0,0x53,0x21,0x00,0x28,0x00, + 0x01,0xF0,0x9E,0xFF,0x01,0x99,0xC8,0x53,0x00,0x98,0x03,0x21,0xFF,0xF7,0xA2,0xF8, + 0x00,0x29,0x01,0xD0,0x02,0x29,0x0D,0xD1,0xBA,0x98,0x00,0x7D,0x00,0x28,0x02,0xD1, + 0x00,0x22,0x43,0x1E,0x01,0xE0,0x01,0x22,0x00,0x23,0x21,0x00,0x28,0x00,0x05,0xF0, + 0x67,0xF9,0x0B,0xE0,0x00,0x22,0xD2,0x43,0x00,0x23,0x21,0x00,0x28,0x00,0x05,0xF0, + 0x5F,0xF9,0x00,0x28,0x02,0xD1,0x00,0x22,0x01,0x23,0xEE,0xE7,0x64,0x1C,0x0E,0x2C, + 0xB7,0xD3,0x6D,0x1C,0x15,0x2D,0xB3,0xD3,0x00,0x98,0x40,0x1C,0x00,0x90,0xB8,0x98, + 0x40,0x1E,0xB8,0x90,0x18,0xD2,0x00,0x25,0x00,0x24,0x0E,0x20,0x2E,0x00,0x46,0x43, + 0x01,0x99,0x30,0x19,0x40,0x00,0x0A,0x5A,0x21,0x00,0x28,0x00,0x05,0xF0,0x5C,0xF9, + 0x64,0x1C,0x0E,0x2C,0xF4,0xD3,0x6D,0x1C,0x15,0x2D,0xED,0xD3,0x7F,0xB0,0x3C,0xB0, + 0xF0,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x00,0xF0,0xDC,0xFF,0x8D,0xE7,0x00,0x00, + 0xD4,0x02,0x10,0x40,0x60,0x06,0x00,0x20,0x00,0x00,0x00,0x10,0x20,0x93,0x00,0x00, + 0xD2,0x02,0x00,0x00,0x11,0x07,0x00,0x20,0xF8,0xB5,0x01,0x22,0x52,0x07,0x10,0x68, + 0x01,0x28,0x03,0xD0,0x10,0x68,0x01,0x28,0x43,0xD9,0x02,0x20,0x86,0x46,0x22,0x48, + 0x00,0x90,0x80,0x79,0x00,0x28,0x3C,0xD0,0x00,0x21,0x0D,0x25,0x1F,0x4F,0xED,0x01, + 0x32,0xE0,0x72,0x46,0x8A,0x18,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F, + 0xC0,0x07,0x28,0xD1,0x00,0x9C,0x93,0x00,0xA6,0x79,0x1B,0x0F,0x21,0xE0,0x84,0x00, + 0xE4,0x19,0x64,0x19,0xA4,0x68,0xA4,0x00,0x24,0x0F,0xA3,0x42,0x18,0xD1,0x80,0x00, + 0xC0,0x19,0x40,0x19,0x80,0x68,0x92,0x0A,0x83,0x05,0x92,0x02,0x9B,0x0D,0x1A,0x43, + 0x0F,0x4B,0x1A,0x40,0x83,0x01,0x9B,0x0D,0x1B,0x04,0x1A,0x43,0x3F,0x23,0x9B,0x02, + 0x00,0x04,0x80,0x0E,0x9A,0x43,0x80,0x02,0x02,0x43,0x60,0x46,0x02,0x60,0x02,0xE0, + 0x40,0x1C,0x86,0x42,0xDB,0xD8,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42, + 0xC7,0xD8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xC0,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0xFF,0xFF,0x00,0xFC,0xFC,0xB5,0x04,0x00,0x60,0x48,0x8E,0x46,0x02,0x8C,0x60,0x49, + 0x40,0x8C,0x01,0x91,0x4B,0x8B,0x20,0x39,0x00,0x91,0x89,0x7B,0x00,0x25,0x2F,0x00, + 0xC9,0x07,0x01,0x26,0x00,0x29,0xAC,0x46,0x01,0xD1,0xE6,0x71,0xAA,0xE0,0x01,0x99, + 0x09,0x7E,0x00,0x29,0x0D,0xD0,0x01,0x29,0x0F,0xD0,0x02,0x29,0x07,0xD0,0x03,0x29, + 0xF4,0xD1,0x17,0x00,0xD1,0x18,0x0A,0x04,0x12,0x0C,0x03,0x00,0x05,0xE0,0x1A,0x00, + 0xFB,0xE7,0x84,0x46,0xC0,0x18,0x03,0x04,0x1B,0x0C,0x60,0x88,0xA1,0x88,0x87,0x42, + 0x5C,0xDC,0x82,0x42,0x5A,0xDB,0x8C,0x45,0x58,0xDC,0x8B,0x42,0x56,0xDB,0x01,0x25, + 0x72,0x46,0x00,0x2A,0x7B,0xD0,0x06,0x27,0x01,0x2A,0x0E,0xD0,0x02,0x2A,0x18,0xD0, + 0x03,0x2A,0x76,0xD1,0xE2,0x79,0xD3,0x07,0x2D,0xD0,0x01,0x2A,0x01,0xD0,0x05,0x2A, + 0x27,0xD1,0x09,0x20,0x00,0x25,0xE0,0x71,0x6B,0xE0,0x00,0x9A,0x92,0x7A,0x00,0x2A, + 0x67,0xD1,0x00,0xF0,0x8B,0xF8,0x06,0x00,0x0F,0xD1,0x02,0x20,0xE0,0x71,0x26,0x72, + 0x5F,0xE0,0xE2,0x79,0xD3,0x07,0xE8,0xD1,0x92,0x07,0x5A,0xD5,0x00,0xF0,0x7E,0xF8, + 0x06,0x00,0x08,0xD0,0x20,0x7A,0x00,0x28,0x05,0xD1,0x31,0x00,0x20,0x00,0xE7,0x71, + 0xFF,0xF7,0x1A,0xF8,0xEB,0xE7,0x31,0x00,0x20,0x00,0xE7,0x71,0xFF,0xF7,0x14,0xF8, + 0x47,0xE0,0x11,0x20,0x44,0xE0,0x92,0x07,0x43,0xD5,0x00,0xF0,0x67,0xF8,0x21,0x7A, + 0x00,0x28,0x0A,0xD0,0x00,0x29,0x0C,0xD0,0x81,0x42,0x08,0xD1,0x0A,0x20,0xE0,0x71, + 0x20,0x00,0xFF,0xF7,0x01,0xF8,0xA6,0x71,0x05,0xE0,0x00,0x29,0x01,0xD0,0x12,0x20, + 0xF5,0xE7,0x02,0x20,0xE0,0x71,0x00,0x20,0x20,0x72,0x2A,0xE0,0x70,0x46,0x00,0x28, + 0x25,0xD0,0x01,0x28,0x06,0xD0,0x02,0x28,0x06,0xD0,0x03,0x28,0x21,0xD1,0xE0,0x79, + 0x80,0x07,0x0E,0xD4,0xE6,0x71,0x1C,0xE0,0xE0,0x79,0x80,0x07,0xFA,0xD5,0x21,0x7A, + 0x00,0x29,0x04,0xD0,0x12,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0xDD,0xFF,0xE6,0x71, + 0x09,0xE0,0x02,0x20,0xE0,0x71,0x21,0x7A,0x00,0x29,0x04,0xD0,0x0A,0x20,0xE0,0x71, + 0x20,0x00,0xFE,0xF7,0xD1,0xFF,0x01,0x25,0xA6,0x71,0x02,0xE0,0xFF,0xE7,0x00,0x20, + 0xE0,0x71,0x08,0x49,0xC8,0x88,0x82,0x07,0x04,0xD1,0xE2,0x79,0x92,0x07,0x92,0x0F, + 0x10,0x43,0xC8,0x80,0x28,0x00,0xFC,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00, + 0x60,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x03,0x48,0xC0,0x68,0x40,0x07,0x01,0xD5, + 0x01,0x20,0x70,0x47,0x00,0x20,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0xC0,0x68, + 0xC0,0x07,0x00,0xD0,0x01,0x20,0x70,0x47,0x00,0x90,0x00,0x40,0xF0,0xB4,0x16,0x4B, + 0x04,0x00,0xDE,0x7B,0x00,0x22,0x10,0x00,0x00,0x2E,0x23,0xD0,0x1B,0x7A,0x00,0x2B, + 0x20,0xD1,0x12,0x4F,0x1C,0xE0,0xD3,0x00,0xDD,0x19,0x03,0x23,0x5B,0x02,0xEB,0x18, + 0x10,0x25,0x5D,0x5F,0xA5,0x42,0x0E,0xDC,0x14,0x25,0x5D,0x5F,0xA5,0x42,0x0A,0xDB, + 0x12,0x25,0x5D,0x5F,0x8D,0x42,0x06,0xDC,0x16,0x25,0x5D,0x5F,0x8D,0x42,0x02,0xDB, + 0x50,0x1C,0x00,0x06,0x00,0x0E,0x00,0x28,0x04,0xD1,0x52,0x1C,0x12,0x06,0x12,0x0E, + 0x96,0x42,0xE0,0xD8,0xF0,0xBC,0x70,0x47,0x40,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0xF0,0xB5,0x00,0x20,0x8D,0xB0,0x0A,0x90,0x09,0x90,0xB0,0x48,0xB0,0x4C,0x00,0x68, + 0x01,0x88,0x08,0x91,0x01,0x00,0x40,0x31,0xCA,0x7F,0x60,0x30,0x07,0x92,0x8A,0x7F, + 0x06,0x92,0x40,0x78,0x05,0x90,0x88,0x7D,0xA9,0x49,0x04,0x90,0xE0,0x88,0x09,0x79, + 0x02,0x07,0x04,0xD5,0x00,0x29,0x02,0xD1,0x08,0x22,0x90,0x43,0xE0,0x80,0xA5,0x48, + 0x00,0x22,0x82,0x5E,0xFF,0x23,0x01,0x33,0x0F,0x2A,0x03,0xDD,0x02,0x22,0x82,0x5E, + 0x0F,0x2A,0x03,0xDC,0x04,0x22,0x82,0x5E,0x1E,0x2A,0x04,0xDD,0xE2,0x88,0x1A,0x43, + 0xE2,0x80,0x0A,0x22,0x04,0xE0,0x06,0x22,0x82,0x5E,0x00,0x2A,0x02,0xD0,0x52,0x1E, + 0xC2,0x80,0x02,0xE0,0xE2,0x88,0x9A,0x43,0xE2,0x80,0x08,0x9A,0x92,0x04,0x7E,0xD5, + 0x40,0x7A,0x00,0x22,0x00,0x28,0x02,0xD1,0x00,0x29,0x00,0xD1,0x01,0x22,0x01,0x92, + 0x00,0xF0,0x30,0xF9,0x20,0x79,0x90,0x4D,0x00,0x28,0x0C,0x90,0x4F,0xD0,0x21,0x89, + 0x8A,0x4A,0x01,0x20,0x0B,0x91,0x16,0x68,0x40,0x36,0x72,0x8B,0x91,0x42,0x00,0xD3, + 0x00,0x20,0x03,0x90,0x0B,0x98,0x0A,0x22,0x02,0x21,0x50,0x43,0x69,0x5E,0x0F,0x00, + 0xFE,0xF7,0x58,0xFD,0x31,0x7C,0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20, + 0x02,0x90,0x0B,0x98,0x0A,0x21,0xC0,0x1B,0xFE,0xF7,0x4C,0xFD,0x71,0x7C,0x88,0x42, + 0x01,0xDA,0x01,0x27,0x00,0xE0,0x00,0x27,0x7B,0x4A,0xB3,0x7C,0x20,0x3A,0x92,0x8B, + 0x01,0x20,0x01,0x00,0x9A,0x42,0x00,0xD8,0x00,0x21,0xF3,0x7C,0x6A,0x68,0x9A,0x42, + 0x00,0xDB,0x00,0x20,0x03,0x9A,0x00,0x2A,0x19,0xD0,0x02,0x9A,0x00,0x2A,0x16,0xD0, + 0x00,0x2F,0x14,0xD0,0x00,0x29,0x12,0xD0,0x00,0x28,0x10,0xD0,0x6C,0x48,0xC0,0x30, + 0xC0,0x6A,0x00,0x28,0x0B,0xD1,0x6D,0x48,0x00,0x88,0x1E,0x28,0x07,0xD2,0x68,0x78, + 0x00,0x28,0x1A,0xD0,0x71,0x7E,0x88,0x42,0x17,0xD8,0x40,0x1E,0x14,0xE0,0x63,0x48, + 0x6A,0x68,0x01,0x68,0x40,0x31,0x08,0x7D,0x82,0x42,0x0E,0xDB,0x0C,0x98,0x00,0x28, + 0x0B,0xD0,0xE0,0x88,0xC0,0x06,0x08,0xD4,0x68,0x78,0xC9,0x7D,0x88,0x42,0x04,0xD2, + 0x04,0x99,0x88,0x42,0x01,0xD9,0x40,0x1C,0x68,0x70,0x68,0x78,0x04,0x99,0x10,0x22, + 0x88,0x42,0x0C,0xD8,0x01,0x98,0x00,0x28,0x09,0xD1,0xE0,0x88,0x00,0xE0,0x13,0xE0, + 0x10,0x43,0xE0,0x80,0x51,0x48,0x00,0x68,0x40,0x30,0x00,0x7E,0x0E,0xE0,0xE1,0x88, + 0xC8,0x06,0x0C,0xD5,0x28,0x78,0x00,0x28,0x07,0xD1,0x4C,0x48,0x91,0x43,0xE1,0x80, + 0x00,0x68,0x40,0x30,0x40,0x7D,0x68,0x70,0x01,0xE0,0x40,0x1E,0x28,0x70,0x20,0x79, + 0x00,0x28,0x7E,0xD0,0xE0,0x88,0x80,0x06,0x05,0xD5,0x05,0x99,0x06,0x98,0x40,0x1A, + 0x00,0x06,0x00,0x0E,0x06,0x90,0x01,0x22,0x50,0x00,0x00,0x19,0x84,0x46,0xFF,0x30, + 0xA1,0x30,0xC0,0x88,0x00,0x28,0x68,0xD0,0x07,0x99,0x88,0x42,0x09,0xD9,0x08,0x98, + 0x80,0x07,0x62,0xD5,0x00,0x20,0x20,0x71,0xE0,0x88,0x08,0x21,0x08,0x43,0xE0,0x80, + 0x5B,0xE0,0x06,0x99,0x88,0x42,0x58,0xD3,0x08,0x98,0x40,0x07,0x55,0xD5,0x00,0x23, + 0x01,0x20,0x29,0xE0,0xFF,0x25,0x21,0x18,0x9A,0x35,0x6D,0x5C,0x95,0x42,0x22,0xD1, + 0x5B,0x1C,0xFF,0x31,0x41,0x31,0x09,0x7E,0x0A,0x91,0x01,0x00,0x14,0xE0,0x4D,0x00, + 0x2D,0x19,0x2E,0x00,0xE0,0x36,0xF7,0x8A,0xFF,0x35,0x01,0x35,0xB7,0x82,0x2F,0x8A, + 0xEF,0x81,0x65,0x18,0x2E,0x00,0xFF,0x36,0x41,0x36,0x77,0x7E,0xFF,0x35,0x81,0x35, + 0x37,0x76,0xAF,0x7E,0x49,0x1C,0x6F,0x76,0x25,0x79,0x8D,0x42,0xE7,0xDA,0x21,0x79, + 0x49,0x1E,0x40,0x1E,0x21,0x71,0x40,0x1C,0x21,0x79,0x81,0x42,0xD2,0xDA,0x00,0x2B, + 0x23,0xDD,0x01,0x2B,0x05,0xDD,0x01,0x20,0x09,0x90,0xE0,0x88,0x20,0x21,0x08,0x43, + 0xE0,0x80,0x60,0x46,0xFF,0x30,0x61,0x30,0x41,0x89,0x20,0x79,0x40,0x1C,0x00,0x06, + 0x00,0x0E,0x20,0x71,0x40,0x00,0x00,0x19,0xE0,0x30,0x81,0x82,0x60,0x46,0xFF,0x30, + 0x81,0x30,0x41,0x88,0x20,0x79,0x40,0x00,0x00,0x19,0xFF,0x30,0x01,0x30,0xC1,0x81, + 0x23,0x79,0x0C,0x49,0x0A,0x98,0x68,0x39,0x58,0x54,0x52,0x1C,0x0C,0x2A,0x8B,0xDB, + 0x00,0xE0,0x06,0xE0,0x09,0x98,0x00,0x28,0x03,0xD1,0xE0,0x88,0x20,0x21,0x88,0x43, + 0xE0,0x80,0x0D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD4,0x07,0x00,0x20, + 0x40,0x00,0x00,0x20,0x00,0x02,0x00,0x20,0x40,0x06,0x00,0x20,0x1C,0x07,0x00,0x20, + 0x03,0x48,0xC0,0x68,0x00,0x03,0x01,0xD5,0x01,0x20,0x70,0x47,0x00,0x20,0x70,0x47, + 0x00,0x90,0x00,0x40,0xF0,0xB5,0x5C,0x4C,0xB7,0xB0,0x20,0x68,0x5B,0x4E,0x60,0x30, + 0x01,0x79,0x33,0x91,0x40,0x79,0x60,0x21,0x32,0x90,0x00,0x20,0x70,0x80,0x70,0x60, + 0x31,0x90,0x30,0x90,0x18,0xA8,0x03,0xF0,0xF1,0xF8,0x60,0x21,0x68,0x46,0x03,0xF0, + 0xED,0xF8,0x20,0x68,0x71,0x78,0x40,0x30,0xC0,0x7D,0x81,0x42,0x78,0xD0,0x32,0x9D, + 0x0E,0x21,0x48,0x1B,0x34,0x90,0x5D,0xE0,0x33,0x98,0x15,0x22,0x11,0x1A,0x36,0x91, + 0x32,0x99,0x69,0x1A,0x8C,0x00,0x1A,0xE0,0x49,0x4F,0x6A,0x00,0xD2,0x19,0xB8,0x23, + 0xD3,0x5E,0x0E,0x21,0x42,0x00,0x41,0x43,0xD2,0x19,0x88,0x27,0xD7,0x5F,0x49,0x19, + 0x09,0x04,0xDA,0x19,0x43,0x4B,0x09,0x14,0x49,0x00,0x59,0x5E,0x51,0x18,0x31,0x9A, + 0x52,0x18,0x31,0x92,0x18,0xAA,0x13,0x59,0x59,0x18,0x40,0x1C,0x11,0x51,0x36,0x99, + 0x81,0x42,0xE1,0xDC,0x33,0x98,0x15,0x21,0x40,0x00,0x09,0x1A,0x18,0xAF,0x35,0x90, + 0x38,0x59,0xFE,0xF7,0xEF,0xFB,0x38,0x51,0x33,0x99,0x84,0x46,0x1A,0xE0,0x0E,0x20, + 0x48,0x43,0x34,0x4A,0x40,0x19,0x40,0x00,0x12,0x5E,0x60,0x46,0x30,0x4B,0x12,0x1A, + 0x68,0x00,0xC0,0x18,0xB8,0x23,0xC3,0x5E,0x2D,0x48,0x4F,0x00,0x3F,0x18,0x88,0x20, + 0x38,0x5E,0x18,0x18,0x12,0x18,0x17,0x00,0x57,0x43,0x68,0x46,0x03,0x59,0xDA,0x19, + 0x49,0x1C,0x02,0x51,0x36,0x98,0x88,0x42,0xE1,0xDC,0x35,0x98,0x14,0x21,0x09,0x1A, + 0x6F,0x46,0x38,0x59,0xFE,0xF7,0xC6,0xFB,0x38,0x51,0x30,0x99,0x40,0x18,0x30,0x90, + 0x34,0x98,0x6D,0x1C,0xA8,0x42,0x9F,0xDC,0x33,0x98,0x15,0x21,0x40,0x00,0x09,0x1A, + 0x32,0x98,0x45,0x00,0x0E,0x20,0x44,0x1B,0x61,0x43,0x31,0x98,0xFE,0xF7,0xB2,0xFB, + 0x70,0x80,0x30,0x98,0x21,0x00,0xFE,0xF7,0xAD,0xFB,0x00,0x21,0x6B,0x46,0x09,0xE0, + 0x18,0xE0,0x8A,0x00,0x9A,0x58,0x82,0x1A,0x17,0x00,0x57,0x43,0x72,0x68,0xBA,0x18, + 0x49,0x1C,0x72,0x60,0x8C,0x42,0xF4,0xDC,0x0D,0x20,0x41,0x1B,0x70,0x68,0xFE,0xF7, + 0x99,0xFB,0x33,0x9A,0x15,0x23,0x34,0x99,0x9A,0x1A,0x92,0x02,0x51,0x43,0xFE,0xF7, + 0x91,0xFB,0x70,0x60,0x02,0x20,0x30,0x5E,0x00,0x28,0x01,0xD1,0x40,0x1C,0x70,0x80, + 0x37,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xD4,0x07,0x00,0x20,0x40,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10,0xFE,0xB5,0x66,0x4C,0x60,0x7A,0x00,0x28, + 0x06,0xD0,0x20,0x6B,0x00,0x04,0x00,0x0C,0x05,0xF0,0xEA,0xF8,0x05,0xF0,0xD8,0xF8, + 0x03,0xF0,0xF0,0xFE,0x04,0xF0,0x10,0xFC,0x5F,0x48,0x01,0x90,0xAB,0xE0,0x5F,0x48, + 0x41,0x68,0x09,0x07,0x0C,0xD5,0xC1,0x68,0x00,0x29,0x09,0xD0,0xC0,0x68,0x07,0x28, + 0x04,0xD1,0x5A,0x48,0xC1,0x68,0xC0,0x03,0xC1,0x63,0xA1,0xE0,0x04,0xF0,0x16,0xF8, + 0x60,0x7A,0x00,0x28,0x04,0xD0,0x20,0x6B,0x00,0x04,0x00,0x0C,0x05,0xF0,0xC8,0xF8, + 0xFF,0x20,0x81,0x30,0xFE,0xF7,0xC2,0xFF,0x03,0x20,0x04,0xF0,0x3D,0xFF,0x50,0x48, + 0xC0,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5,0x04,0x20, + 0x00,0xE0,0x02,0x20,0x04,0xF0,0xF6,0xFD,0x00,0xF0,0x3A,0xFC,0x04,0xF0,0xF2,0xFB, + 0x04,0xF0,0xDE,0xFD,0x00,0xF0,0xE6,0xFB,0x00,0xF0,0xBC,0xFC,0xA0,0x7B,0x00,0x28, + 0x05,0xD1,0x01,0x98,0x00,0x7B,0x00,0x28,0x01,0xD0,0x03,0xF0,0xB7,0xFE,0x03,0xF0, + 0x53,0xF8,0x00,0x28,0x01,0xD0,0x01,0x20,0x20,0x70,0x3A,0x48,0x00,0x78,0x00,0x28, + 0x12,0xD1,0x3C,0x4C,0x26,0x6A,0x65,0x6A,0x67,0x6B,0xE0,0x6A,0x00,0x90,0x00,0x20, + 0x04,0xF0,0xD0,0xFD,0x00,0x22,0x11,0x00,0x10,0x00,0x00,0xF0,0x99,0xF9,0x26,0x62, + 0x65,0x62,0x67,0x63,0x00,0x98,0xE0,0x62,0x2E,0x4D,0x28,0x78,0x00,0x28,0x05,0xD0, + 0xA8,0x7B,0x00,0x09,0x04,0x28,0x4B,0xD1,0x00,0x20,0x28,0x70,0x03,0x20,0x04,0xF0, + 0xCD,0xFE,0xE8,0x62,0x03,0x20,0x04,0xF0,0xFB,0xFE,0xFF,0x20,0x81,0x30,0xFE,0xF7, + 0x65,0xFF,0x27,0x49,0xC8,0x8B,0x00,0x28,0x02,0xD0,0x40,0x1E,0xC8,0x83,0x32,0xE0, + 0xA8,0x79,0x00,0x28,0x2F,0xD1,0x6C,0x6A,0x00,0x2C,0x2C,0xD0,0xE8,0x6A,0xFF,0x21, + 0x41,0x31,0x48,0x43,0x20,0x49,0xFE,0xF7,0x15,0xFC,0x24,0x1A,0x14,0x2C,0x22,0xDD, + 0x03,0xF0,0x54,0xFE,0x20,0x00,0x05,0xF0,0x61,0xF8,0x05,0xF0,0x65,0xF8,0xE8,0x79, + 0x00,0x28,0x0D,0xD0,0x03,0xF0,0x28,0xFE,0x03,0xF0,0x2B,0xFE,0x03,0xF0,0x33,0xFE, + 0x16,0x4C,0x01,0x20,0x60,0x60,0xFE,0xF7,0x49,0xFF,0x15,0x48,0x60,0x60,0x03,0xE0, + 0x14,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0,0x05,0xF0,0x55,0xF8,0x11,0x49,0x00,0x20, + 0x08,0x70,0x03,0xF0,0x3F,0xFE,0x07,0x4C,0x20,0x78,0x00,0x28,0x00,0xD1,0x4E,0xE7, + 0x04,0x48,0x40,0x7A,0x00,0x28,0x01,0xD0,0x05,0xF0,0x22,0xF8,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x0C,0x07,0x00,0x20,0x80,0x93,0x00,0x00,0x00,0x40,0x00,0x30, + 0x40,0x00,0x00,0x20,0x80,0x90,0x00,0x40,0x10,0x27,0x00,0x00,0x00,0x30,0x00,0x40, + 0xE1,0x04,0x00,0x00,0xD8,0x07,0x00,0x20,0x10,0xB4,0x0F,0x4B,0x00,0x22,0xD2,0x43, + 0x81,0x00,0x5A,0x52,0xCB,0x18,0x5A,0x80,0x0B,0x4B,0x0B,0x4C,0x34,0x33,0x5A,0x52, + 0xCB,0x18,0x5A,0x80,0x00,0x23,0x42,0x00,0x28,0x3C,0xA3,0x52,0x22,0x00,0x1A,0x32, + 0x13,0x54,0x18,0x00,0x76,0x32,0x8A,0x18,0x81,0x00,0x53,0x52,0x51,0x18,0x40,0x1E, + 0x4B,0x80,0xF9,0xD5,0x10,0xBC,0x70,0x47,0xD4,0x0A,0x00,0x20,0x10,0xB5,0x0C,0x48, + 0x0D,0x22,0x00,0x21,0x02,0xF0,0x80,0xFF,0x0A,0x48,0x82,0x22,0x00,0x21,0x02,0xF0, + 0x7B,0xFF,0x08,0x48,0x00,0x24,0x0C,0x38,0x04,0x72,0x07,0x48,0x28,0x22,0x21,0x00, + 0x02,0xF0,0x72,0xFF,0x04,0x48,0x42,0x38,0x44,0x72,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x9F,0x03,0x00,0x20,0x0C,0x02,0x00,0x20,0x82,0x06,0x00,0x20,0x10,0xB5,0x17,0x48, + 0x1A,0x22,0x00,0x21,0x02,0xF0,0x60,0xFF,0x14,0x48,0x1A,0x22,0x00,0x21,0x1A,0x30, + 0x02,0xF0,0x5A,0xFF,0x11,0x48,0x0D,0x22,0x00,0x21,0x64,0x30,0x02,0xF0,0x54,0xFF, + 0x0E,0x48,0x30,0x22,0x00,0x21,0x34,0x30,0x02,0xF0,0x4E,0xFF,0x0B,0x48,0x18,0x22, + 0x00,0x21,0x76,0x30,0x02,0xF0,0x48,0xFF,0x08,0x48,0x18,0x22,0x00,0x21,0x8E,0x30, + 0x02,0xF0,0x42,0xFF,0x05,0x49,0x00,0x20,0xAC,0x31,0xC8,0x83,0xFF,0x39,0xA1,0x39, + 0x08,0x71,0x88,0x83,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x34,0x01,0x00,0x20, + 0xF0,0xB4,0x1E,0x49,0x1E,0x4E,0x09,0x68,0x00,0x24,0x60,0x31,0x8F,0x7F,0x08,0x21, + 0x42,0x00,0x18,0x23,0x4B,0x43,0x9B,0x19,0x1D,0x25,0x9B,0x18,0x6D,0x01,0x5D,0x19, + 0xAC,0x80,0x23,0x25,0x6D,0x01,0x5B,0x19,0x49,0x1E,0x9C,0x83,0xF1,0xD5,0x07,0x25, + 0x31,0x18,0xED,0x01,0x01,0x23,0x4D,0x19,0x2B,0x76,0x15,0x25,0x93,0x19,0xAD,0x01, + 0x5B,0x19,0x9C,0x82,0x2B,0x23,0x5B,0x01,0xC9,0x18,0x0F,0x73,0x0C,0x76,0x02,0x21, + 0x0B,0x23,0xDB,0x01,0x18,0x25,0x4D,0x43,0xAD,0x19,0xAD,0x18,0xED,0x18,0x49,0x1E, + 0xAC,0x80,0xF7,0xD5,0x80,0x00,0x82,0x19,0x00,0x21,0x17,0x20,0xC9,0x43,0x80,0x01, + 0x10,0x18,0x81,0x81,0xC1,0x81,0xF0,0xBC,0x70,0x47,0x00,0x00,0xD4,0x07,0x00,0x20, + 0x40,0x00,0x00,0x20,0x10,0xB5,0x06,0x48,0x1E,0x22,0x00,0x21,0x02,0xF0,0xEC,0xFE, + 0x04,0x48,0x00,0x21,0x81,0x74,0x41,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xBA,0x03,0x00,0x20,0x20,0x01,0x00,0x20,0x10,0xB5,0x04,0xF0,0xFF,0xFD,0x03,0xF0, + 0xD3,0xFD,0xFF,0xF7,0x53,0xFF,0x03,0xF0,0xDF,0xFE,0x01,0xF0,0x6B,0xFD,0x01,0xF0, + 0xE3,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46,0x24,0x20,0x9F,0xE5, + 0x00,0x00,0x92,0xE5,0x20,0x30,0x9F,0xE5,0x25,0x00,0xA0,0xE3,0x01,0x0C,0x80,0xE2, + 0x00,0x11,0x92,0xE7,0x80,0xC0,0x83,0xE0,0x01,0x00,0x50,0xE2,0xB0,0x10,0xCC,0xE1, + 0xFA,0xFF,0xFF,0x5A,0x1E,0xFF,0x2F,0xE1,0x00,0x10,0x10,0x40,0xDA,0x07,0x00,0x20, + 0x78,0x47,0xC0,0x46,0x20,0x30,0x9F,0xE5,0x20,0x20,0x9F,0xE5,0x25,0x00,0xA0,0xE3, + 0x01,0x0C,0x80,0xE2,0x00,0x11,0x93,0xE7,0x80,0xC0,0x82,0xE0,0x01,0x00,0x50,0xE2, + 0xB0,0x10,0xCC,0xE1,0xFA,0xFF,0xFF,0x5A,0x1E,0xFF,0x2F,0xE1,0xD4,0x02,0x10,0x40, + 0x00,0x00,0x00,0x10,0x09,0x4B,0x10,0xB4,0x1B,0x68,0x80,0x33,0x1B,0x7B,0x04,0x1E, + 0x00,0xDC,0x44,0x42,0x9C,0x42,0x06,0xDD,0x98,0x42,0x01,0xDD,0xC8,0x1A,0x00,0xE0, + 0xC8,0x18,0x02,0x04,0x12,0x0C,0x10,0xBC,0x10,0x00,0x70,0x47,0xD4,0x07,0x00,0x20, + 0xF7,0xB5,0x60,0x48,0xE6,0xB0,0x00,0x7D,0x00,0x28,0x03,0xD0,0x01,0x20,0x62,0x90, + 0x00,0x20,0x02,0xE0,0x00,0x20,0x62,0x90,0x01,0x20,0x61,0x90,0x5A,0x48,0x00,0x26, + 0x64,0x90,0x5A,0x48,0x35,0x00,0x01,0x8B,0x04,0x91,0x41,0x8B,0x03,0x91,0x81,0x8A, + 0x02,0x91,0xC1,0x8A,0x01,0x91,0x80,0x8B,0x60,0x90,0x55,0x48,0x00,0x7F,0x63,0x96, + 0x00,0x90,0x00,0x24,0x0E,0x20,0x68,0x43,0x65,0x90,0x07,0x19,0x21,0x00,0x28,0x00, + 0x01,0xF0,0x36,0xF9,0x4B,0x49,0x20,0x39,0x0A,0x7D,0xD2,0x07,0x2D,0xD0,0x4D,0x4A, + 0x52,0x79,0x00,0x2A,0x00,0x9A,0x11,0xD0,0x95,0x42,0x26,0xD1,0x8A,0x7D,0xA2,0x42, + 0x1D,0xD0,0xCA,0x7D,0xA2,0x42,0x1A,0xD0,0x0A,0x7E,0xA2,0x42,0x17,0xD0,0x4A,0x7E, + 0xA2,0x42,0x14,0xD0,0x89,0x7E,0xA1,0x42,0x42,0xD1,0x10,0xE0,0x94,0x42,0x14,0xD1, + 0x8A,0x7D,0xAA,0x42,0x0B,0xD0,0xCA,0x7D,0xAA,0x42,0x08,0xD0,0x0A,0x7E,0xAA,0x42, + 0x05,0xD0,0x4A,0x7E,0xAA,0x42,0x02,0xD0,0x89,0x7E,0xA9,0x42,0x30,0xD1,0x04,0x99, + 0x03,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C,0x04,0xE0,0x02,0x99,0x01,0x9A,0x41,0x18, + 0x09,0x04,0x09,0x0C,0x80,0x1A,0x64,0x9B,0x02,0x04,0xB8,0x00,0x18,0x58,0x67,0x9B, + 0x12,0x0C,0x00,0x2B,0x02,0xD0,0x00,0x05,0x00,0x0D,0x01,0xE0,0x00,0x01,0x00,0x0D, + 0x66,0x9B,0x05,0x2B,0x0E,0xD8,0x90,0x42,0x01,0xDA,0x62,0x9A,0x02,0xE0,0x88,0x42, + 0x0E,0xDD,0x61,0x9A,0x21,0x00,0x28,0x00,0x00,0xF0,0x84,0xF8,0x05,0xA8,0x87,0x55, + 0x76,0x1C,0x05,0xE0,0x63,0x99,0x05,0xA8,0x47,0x54,0x63,0x98,0x40,0x1C,0x63,0x90, + 0x64,0x1C,0x0E,0x2C,0x01,0xDA,0x65,0x98,0x97,0xE7,0x6D,0x1C,0x15,0x2D,0x90,0xDB, + 0x66,0x98,0x05,0x28,0x03,0xD9,0x00,0x04,0x63,0x9E,0x00,0x0C,0x60,0x90,0x00,0x2E, + 0x24,0xDD,0x68,0x98,0x00,0x28,0x21,0xD1,0x00,0xF0,0x48,0xF9,0x00,0xF0,0x8A,0xF9, + 0x00,0xF0,0x60,0xFA,0x10,0x4B,0x76,0x1E,0x12,0xD4,0x13,0x4D,0x05,0xAC,0xA0,0x5D, + 0x81,0x00,0x58,0x58,0x02,0x05,0x60,0x98,0x12,0x0D,0x10,0x18,0x00,0x04,0x00,0x0C, + 0xA8,0x42,0x00,0xD9,0x28,0x00,0x00,0x04,0x10,0x43,0x76,0x1E,0x58,0x50,0xEE,0xD5, + 0x00,0xF0,0x2C,0xF9,0x00,0xF0,0x6E,0xF9,0x00,0xF0,0x44,0xFA,0x69,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x20,0x93,0x00,0x00,0xD4,0x02,0x10,0x40,0xE0,0x95,0x00,0x00, + 0x60,0x06,0x00,0x20,0x0C,0x07,0x00,0x20,0xFF,0x0F,0x00,0x00,0x7F,0xB5,0x01,0x25, + 0x6D,0x07,0x28,0x68,0x02,0x28,0x27,0xD1,0xAC,0x68,0x01,0xAA,0x20,0x05,0x00,0x0D, + 0x02,0x90,0x20,0x02,0x00,0x0D,0x03,0x90,0x02,0xA9,0x03,0xA8,0x6B,0x46,0x03,0xF0, + 0x1D,0xFF,0x40,0x1C,0x18,0xD0,0x01,0x98,0x03,0x99,0x40,0x00,0x40,0x18,0x03,0x21, + 0xFE,0xF7,0xC0,0xF9,0x00,0x05,0x06,0x0A,0x09,0x48,0x02,0x99,0x04,0x40,0x00,0x98, + 0x26,0x43,0x40,0x00,0x40,0x18,0x03,0x21,0xFE,0xF7,0xB4,0xF9,0x00,0x05,0x00,0x0D, + 0x31,0x0B,0x09,0x03,0x08,0x43,0xA8,0x60,0x7F,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xFF,0x0F,0x00,0xFF,0x30,0xB4,0x0E,0x25,0x68,0x43,0x14,0x4C,0x40,0x18,0x45,0x00, + 0x60,0x5B,0x01,0x06,0x09,0x0E,0x00,0x0A,0x00,0x2B,0x07,0xD0,0x00,0x2A,0x02,0xD0, + 0xC9,0x18,0xC0,0x18,0x0F,0xE0,0xC0,0x1A,0xC9,0x1A,0x0C,0xE0,0x00,0x2A,0x05,0xD0, + 0x88,0x42,0x01,0xDD,0x49,0x1C,0x06,0xE0,0x40,0x1C,0x04,0xE0,0x88,0x42,0x01,0xDD, + 0x40,0x1E,0x00,0xE0,0x49,0x1E,0x4A,0x1E,0xFF,0x2A,0x05,0xD2,0x42,0x1E,0xFF,0x2A, + 0x02,0xD2,0x00,0x02,0x08,0x43,0x60,0x53,0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40, + 0xF0,0xB5,0x8B,0xB0,0x0E,0x27,0x15,0x20,0x04,0xA9,0x81,0xC1,0x06,0x90,0x53,0x48, + 0x53,0x49,0x0A,0x90,0x80,0x7B,0x09,0x91,0xC2,0x07,0x0A,0xD0,0x80,0x07,0x03,0xD5, + 0x0D,0x20,0x03,0x21,0x05,0x90,0x02,0xE0,0x14,0x20,0x00,0x21,0x04,0x90,0x09,0x98, + 0x01,0x76,0x4C,0x48,0x0A,0x22,0x01,0x8C,0x40,0x8C,0x51,0x43,0x50,0x43,0x00,0x04, + 0x00,0x0C,0x01,0x90,0x05,0x98,0x0E,0x04,0x36,0x0C,0x00,0x28,0x7E,0xD0,0x04,0x98, + 0x00,0x28,0x7F,0xD0,0x05,0x98,0x41,0x00,0x30,0x00,0xFE,0xF7,0x1B,0xF8,0x05,0x04, + 0x2D,0x0C,0x00,0x24,0xBF,0x1C,0x0A,0xE0,0x30,0x00,0x60,0x43,0x05,0x99,0xFE,0xF7, + 0x11,0xF8,0x3D,0x4A,0x61,0x00,0x40,0x19,0x89,0x18,0x64,0x1C,0x08,0x84,0xBC,0x42, + 0xF2,0xDB,0x04,0x98,0x41,0x00,0x01,0x98,0xFE,0xF7,0x04,0xF8,0x06,0x9F,0x06,0x04, + 0x36,0x0C,0x00,0x24,0xBF,0x1C,0x0B,0xE0,0x01,0x98,0x04,0x99,0x60,0x43,0xFD,0xF7, + 0xF9,0xFF,0x31,0x4A,0x81,0x19,0x60,0x00,0x80,0x18,0x40,0x30,0x64,0x1C,0x81,0x82, + 0xBC,0x42,0xF1,0xDB,0x0A,0x98,0x80,0x7B,0xC0,0x07,0x4B,0xD0,0x00,0x24,0x43,0xE0, + 0x29,0x4A,0x31,0x21,0x10,0x19,0x49,0x01,0x40,0x18,0x41,0x7F,0x0A,0x98,0x80,0x7B, + 0x80,0x07,0x03,0xD5,0x05,0x98,0x02,0x95,0x03,0x91,0x03,0xE0,0x08,0x00,0x04,0x99, + 0x02,0x96,0x03,0x91,0x20,0x49,0x40,0x00,0x40,0x18,0x08,0x90,0x00,0x8C,0x0A,0x21, + 0x40,0x1B,0xFD,0xF7,0xCF,0xFF,0x1C,0x4A,0xE1,0x00,0x89,0x18,0x03,0x22,0x52,0x02, + 0x8F,0x18,0x38,0x82,0x03,0x98,0x18,0x49,0x40,0x00,0x40,0x18,0x40,0x30,0x07,0x90, + 0x80,0x8A,0x0A,0x21,0x80,0x1B,0xFD,0xF7,0xBD,0xFF,0x78,0x82,0x08,0x98,0x0A,0x21, + 0x00,0x8C,0x40,0x19,0xFE,0xF7,0xE6,0xF8,0xB8,0x82,0x07,0x98,0x0A,0x21,0x80,0x8A, + 0x80,0x19,0xFE,0xF7,0xDF,0xF8,0xF8,0x82,0x02,0x98,0x0A,0x21,0x40,0x00,0xFE,0xF7, + 0xD9,0xF8,0x09,0x99,0x64,0x1C,0x48,0x83,0x0A,0x98,0x00,0xE0,0x02,0xE0,0xC0,0x7B, + 0xA0,0x42,0xB5,0xDC,0x0B,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x40,0x06,0x00,0x20, + 0x60,0x06,0x00,0x20,0x00,0x93,0x00,0x00,0x40,0x00,0x00,0x20,0x02,0x49,0x08,0x68, + 0x04,0x22,0x90,0x43,0x08,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68, + 0x04,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0xC1,0x68, + 0x49,0x08,0x49,0x00,0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68, + 0x01,0x22,0x11,0x43,0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0xFF,0x20,0x06,0x49, + 0x06,0x4A,0x6A,0x30,0x03,0xE0,0x0B,0x88,0x13,0x80,0x92,0x1C,0x09,0x1D,0x03,0x00, + 0x40,0x1E,0x00,0x2B,0xF7,0xDC,0x70,0x47,0xD6,0x02,0x10,0x40,0xD2,0x02,0x00,0x10, + 0xFF,0x20,0x06,0x49,0x06,0x4A,0x6A,0x30,0x03,0xE0,0x13,0x88,0x92,0x1C,0x0B,0x80, + 0x09,0x1D,0x03,0x00,0x40,0x1E,0x00,0x2B,0xF7,0xDC,0x70,0x47,0xD6,0x02,0x10,0x40, + 0xD2,0x02,0x00,0x10,0x01,0x49,0xC8,0x68,0xC8,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x04,0x49,0x40,0x22,0x00,0x28,0x48,0x6A,0x01,0xD0,0x10,0x43,0x00,0xE0,0x90,0x43, + 0x48,0x62,0x70,0x47,0x80,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x08,0x22,0x11,0x43, + 0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0xB5,0x22,0x10,0xB5,0x07,0x49,0x08,0x48, + 0x92,0x00,0x02,0xF0,0x27,0xFC,0x07,0x48,0x07,0x4A,0xC0,0x8E,0x01,0x04,0x01,0x43, + 0x06,0x48,0x02,0xF0,0x41,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x9D,0x00,0x00, + 0x00,0x00,0x10,0x40,0x00,0x93,0x00,0x00,0xA4,0x05,0x00,0x00,0xD4,0x02,0x10,0x40, + 0x06,0x49,0x00,0x28,0x08,0x69,0x03,0xD0,0x13,0x22,0x12,0x06,0x10,0x43,0x02,0xE0, + 0x03,0x22,0x12,0x06,0x90,0x43,0x08,0x61,0x70,0x47,0x00,0x00,0x40,0xA1,0x00,0x40, + 0x02,0x48,0x81,0x6B,0x49,0x08,0x49,0x00,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40, + 0x02,0x48,0x81,0x6B,0x01,0x22,0x11,0x43,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40, + 0x10,0xB5,0x0A,0x49,0x0A,0x48,0xFC,0x22,0x02,0xF0,0xEC,0xFB,0xFF,0x22,0x09,0x49, + 0x09,0x48,0xF1,0x32,0x02,0xF0,0xE6,0xFB,0x71,0x22,0x08,0x49,0x08,0x48,0xD2,0x00, + 0x02,0xF0,0xE0,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x04,0x96,0x00,0x00, + 0x04,0x90,0x00,0x40,0x00,0x97,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x99,0x00,0x00, + 0x78,0x08,0x10,0x40,0x04,0x49,0x02,0x22,0x00,0x28,0x08,0x68,0x01,0xD0,0x10,0x43, + 0x00,0xE0,0x90,0x43,0x08,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x03,0x48,0x41,0x68, + 0x01,0x22,0x12,0x04,0x11,0x43,0x41,0x60,0x70,0x47,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x70,0xB5,0x1A,0x4C,0x20,0x68,0x40,0x08,0x40,0x00,0x20,0x60,0x18,0x48,0xA6,0x15, + 0x05,0x04,0x2D,0x0C,0x00,0x22,0x31,0x00,0x28,0x00,0xFD,0xF7,0xF9,0xFF,0x32,0x00, + 0x21,0x00,0x28,0x00,0x00,0x23,0xFD,0xF7,0xFB,0xFF,0x12,0x48,0x75,0x00,0x04,0x04, + 0x24,0x0C,0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0xEA,0xFF,0x0E,0x49,0x2A,0x00, + 0x20,0x00,0x00,0x23,0xFD,0xF7,0xEC,0xFF,0x0C,0x48,0x6D,0x00,0x04,0x04,0x24,0x0C, + 0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0xDB,0xFF,0x09,0x49,0x2A,0x00,0x20,0x00, + 0x00,0x23,0xFD,0xF7,0xDD,0xFF,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40, + 0x00,0x96,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x99,0x00,0x00, + 0x78,0x08,0x10,0x40,0x04,0x48,0x10,0xB5,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0xFE,0xF7, + 0x97,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40,0xF1,0xB5,0x51,0x48, + 0x82,0xB0,0x00,0x68,0x50,0x4E,0x60,0x30,0x81,0x8A,0x37,0x00,0x00,0x25,0x01,0x91, + 0x80,0x7D,0x01,0x24,0xFF,0x37,0x01,0x00,0x41,0x43,0x08,0x06,0x00,0x0E,0xC1,0x37, + 0x00,0x90,0x12,0xE0,0x0A,0x20,0x60,0x43,0x0B,0x21,0x80,0x19,0x89,0x01,0x41,0x18, + 0x09,0x7C,0x00,0x29,0x08,0xD0,0x45,0x49,0x40,0x18,0x01,0xF0,0x27,0xF9,0x00,0x28, + 0x02,0xD0,0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x64,0x1C,0xB8,0x7A,0xA0,0x42,0xE9,0xDA, + 0x3F,0x48,0x03,0x89,0x81,0x89,0x5A,0x1A,0x00,0x2A,0x00,0xDC,0xCA,0x1A,0x41,0x89, + 0xC3,0x89,0x12,0x04,0x12,0x0C,0xCC,0x1A,0x00,0x2C,0x00,0xDC,0x5C,0x1A,0x01,0x7D, + 0x23,0x04,0x1B,0x0C,0x00,0x29,0x04,0xD0,0xC1,0x7D,0xC8,0x29,0x01,0xD2,0x49,0x1C, + 0xC1,0x75,0x33,0x49,0x20,0x39,0x8C,0x7E,0x14,0x2C,0x04,0xD2,0x0C,0x7F,0x00,0x2C, + 0x01,0xD0,0x01,0x24,0x4C,0x77,0x14,0x2A,0x01,0xD8,0x14,0x2B,0x04,0xD9,0xCC,0x7E, + 0xC8,0x2C,0x01,0xD2,0x64,0x1C,0xCC,0x76,0x02,0x2D,0x09,0xD2,0x14,0x2A,0x07,0xD2, + 0x14,0x2B,0x05,0xD2,0x12,0x24,0x04,0x5F,0x04,0x2C,0x07,0xDA,0x64,0x1C,0x04,0xE0, + 0x12,0x24,0x04,0x5F,0xE7,0x1C,0x01,0xDD,0x64,0x1E,0x44,0x82,0xC4,0x7D,0x01,0x2C, + 0x01,0xD9,0x78,0x21,0x10,0xE0,0x02,0x2D,0x0F,0xD2,0x12,0x24,0x04,0x5F,0x02,0x2C, + 0x0B,0xDD,0xC9,0x7E,0x14,0x29,0x08,0xD2,0x51,0x3A,0x8B,0x2A,0x02,0xD3,0x51,0x3B, + 0x8B,0x2B,0x02,0xD2,0x77,0x21,0xC9,0x43,0x01,0x82,0x00,0x21,0x02,0x2D,0x81,0x75, + 0x0E,0xD2,0x10,0x21,0x41,0x5E,0x78,0x31,0x04,0xD1,0x41,0x7D,0xC8,0x29,0x01,0xD2, + 0x49,0x1C,0x41,0x75,0x41,0x7D,0x49,0x1E,0x02,0x29,0x01,0xD2,0x01,0x21,0x81,0x75, + 0x10,0x21,0x41,0x5E,0x01,0x98,0x09,0x18,0x08,0x00,0x48,0x43,0x02,0x99,0x00,0x29, + 0x05,0xD1,0x31,0x79,0x01,0x29,0x02,0xD0,0x00,0x99,0xFD,0xF7,0xCB,0xFD,0xFE,0xBC, + 0x08,0xBC,0x18,0x47,0xD4,0x07,0x00,0x20,0x40,0x00,0x00,0x20,0xD6,0x02,0x00,0x00, + 0xC0,0x03,0x00,0x20,0x78,0x47,0xC0,0x46,0xD2,0x10,0xA0,0xE3,0x01,0x00,0xB0,0xE1, + 0x01,0x10,0x41,0xE2,0xFC,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46, + 0x11,0x10,0xA0,0xE3,0x01,0x00,0xB0,0xE1,0x01,0x10,0x41,0xE2,0xFC,0xFF,0xFF,0x1A, + 0x1E,0xFF,0x2F,0xE1,0x02,0x48,0x41,0x6B,0x01,0x22,0x11,0x43,0x41,0x63,0x70,0x47, + 0x00,0x70,0x00,0x40,0x70,0x47,0x00,0x00,0x10,0xB5,0xFF,0xF7,0x4B,0xFE,0x04,0x49, + 0x08,0x68,0x06,0x22,0x90,0x43,0x08,0x60,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0x90,0x00,0x40,0x13,0x48,0x10,0xB5,0xC0,0x68,0x00,0x28,0x1F,0xD0,0x01,0x06, + 0x09,0x0F,0x03,0x29,0x01,0xD0,0x04,0x29,0x02,0xD1,0x00,0xF0,0xF1,0xF8,0x08,0xE0, + 0xF0,0x21,0x01,0x40,0x20,0x29,0x02,0xD2,0x00,0xF0,0x1A,0xF8,0x01,0xE0,0x03,0xF0, + 0x35,0xFA,0x09,0x48,0x82,0x68,0x81,0x15,0x8A,0x43,0x82,0x60,0x82,0x68,0x0A,0x43, + 0x82,0x60,0x06,0x48,0x40,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0,0xD1,0xFA,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x40,0x0C,0x07,0x00,0x20, + 0xF1,0xB5,0x61,0x48,0x2E,0x21,0x90,0xB0,0x41,0x60,0x41,0x69,0x89,0x06,0xFC,0xD4, + 0x10,0x99,0x01,0x26,0x76,0x07,0xF1,0x63,0x84,0x69,0x5B,0x48,0x40,0x68,0x80,0x07, + 0xFB,0xD5,0x03,0xF0,0x0B,0xFA,0x59,0x4D,0x68,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0, + 0xB7,0xFA,0x10,0x9B,0x00,0x21,0x01,0x20,0x9B,0x1E,0xFF,0x27,0x4A,0x1E,0x40,0x03, + 0x04,0xF0,0x02,0xFB,0x1E,0x16,0x40,0x40,0x40,0x40,0x13,0x40,0x40,0x42,0x10,0x40, + 0x40,0x58,0x40,0x68,0x4F,0x6F,0x76,0x7D,0x40,0x84,0x40,0x8B,0x92,0x4F,0x40,0x40, + 0x40,0x40,0x99,0x40,0x0B,0x20,0xF0,0x63,0x4D,0xE0,0x00,0xF0,0x24,0xF9,0x29,0xE0, + 0x03,0x21,0x09,0x07,0xCA,0x60,0xFE,0xF7,0x99,0xF9,0x00,0xF0,0x2B,0xFE,0x44,0x48, + 0x44,0x4A,0x41,0x68,0x52,0x68,0x91,0x42,0x1C,0xD0,0x43,0x49,0x17,0x22,0xC9,0x8B, + 0x52,0x01,0x80,0x18,0x49,0x1C,0xC1,0x83,0xFD,0xF7,0x7C,0xFA,0xA8,0x78,0xC0,0x07, + 0x01,0xD0,0xFF,0xF7,0x55,0xFE,0xA8,0x78,0x80,0x07,0x01,0xD5,0x04,0xF0,0x2E,0xFA, + 0x3A,0x49,0x40,0x22,0x68,0x46,0x02,0xF0,0xFD,0xF9,0x01,0x20,0x08,0x90,0x68,0x46, + 0x04,0xF0,0x3C,0xFA,0xF7,0x63,0x1E,0xE0,0x32,0x48,0xA0,0x30,0x00,0x7E,0x00,0x28, + 0xF8,0xD0,0x00,0x2C,0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x04,0xF0,0x0E,0xF8, + 0xF0,0xE7,0x03,0x21,0x09,0x07,0xCA,0x60,0xFE,0xF7,0x60,0xF9,0x10,0x98,0xFE,0xF7, + 0xB1,0xF8,0x08,0xE0,0x03,0x21,0x09,0x07,0xCA,0x60,0xFE,0xF7,0x57,0xF9,0x00,0xF0, + 0x5D,0xFD,0x00,0xF0,0xF3,0xF8,0x20,0x48,0x41,0x68,0x41,0x60,0x11,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x2C,0x02,0xD0,0x01,0x20,0xA8,0x71,0xD2,0xE7,0xA9,0x71, + 0xD0,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xE8,0x71,0xCB,0xE7,0xE9,0x71,0xC9,0xE7, + 0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x72,0xC4,0xE7,0x29,0x72,0xC2,0xE7,0x00,0x2C, + 0x02,0xD0,0x01,0x20,0x68,0x72,0xBD,0xE7,0x69,0x72,0xBB,0xE7,0x00,0x2C,0x02,0xD0, + 0x01,0x20,0xE8,0x72,0xB6,0xE7,0xE9,0x72,0xB4,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20, + 0x28,0x73,0xAF,0xE7,0x29,0x73,0xAD,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x68,0x73, + 0xA8,0xE7,0x69,0x73,0xA6,0xE7,0x00,0x2C,0x01,0xD0,0xAC,0x73,0x00,0xE0,0xA9,0x73, + 0x03,0xF0,0x1A,0xFE,0x9E,0xE7,0x00,0x00,0x00,0x40,0x00,0x30,0x0C,0x07,0x00,0x20, + 0x00,0x00,0x00,0x10,0x00,0x93,0x00,0x00,0xE0,0x95,0x00,0x00,0xC0,0x92,0x00,0x00, + 0xF0,0xB5,0x34,0x4C,0x30,0x38,0x34,0x4A,0x34,0x4E,0x35,0x4F,0x35,0x49,0x25,0x68, + 0x03,0x00,0x04,0xF0,0x49,0xFA,0x12,0x0A,0x0C,0x0E,0x12,0x16,0x1A,0x1C,0x18,0x1E, + 0x20,0x30,0x3B,0x16,0x3E,0x43,0x47,0x4D,0x50,0x0A,0xCD,0x61,0x21,0xE0,0x60,0x68, + 0x01,0xE0,0x2D,0x48,0xC0,0x6B,0xC8,0x61,0x1B,0xE0,0x10,0x8C,0x52,0x8C,0x00,0x04, + 0x34,0xE0,0xCE,0x61,0x15,0xE0,0xE0,0x68,0xF5,0xE7,0x50,0x68,0xF3,0xE7,0xA0,0x68, + 0xF1,0xE7,0xD0,0x7B,0xEF,0xE7,0x25,0x48,0x03,0x7F,0x10,0x7D,0x52,0x7D,0xC4,0x07, + 0xE4,0x09,0x80,0x07,0x12,0x04,0xC0,0x0F,0x00,0x02,0x23,0x43,0x02,0x43,0x13,0x43, + 0xCB,0x61,0x5F,0x22,0x22,0xE0,0x93,0x7D,0x50,0x7E,0x1B,0x06,0x18,0x43,0xD3,0x7D, + 0x12,0x7E,0x1B,0x04,0x12,0x02,0x13,0x43,0x18,0x43,0xD4,0xE7,0x90,0x7E,0x00,0x06, + 0xD1,0xE7,0x17,0x48,0x00,0x69,0xC0,0x07,0xC0,0x0F,0xCC,0xE7,0x38,0x69,0x40,0x08, + 0x00,0x02,0xC8,0xE7,0x13,0x48,0xA2,0x69,0xC0,0x8B,0x00,0x04,0x10,0x43,0xC2,0xE7, + 0x38,0x69,0x40,0x08,0xBF,0xE7,0x10,0x48,0x80,0x69,0xBC,0xE7,0x48,0x69,0x10,0x42, + 0xFC,0xD1,0x03,0xF0,0xEB,0xF8,0xFF,0x20,0x01,0x21,0x49,0x07,0xC8,0x63,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0xC0,0x92,0x00,0x00,0x00,0x93,0x00,0x00,0x15,0x00,0x0E,0x00, + 0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x30,0xC0,0x0F,0x00,0x20,0x60,0x06,0x00,0x20, + 0x00,0x96,0x00,0x00,0xE0,0x95,0x00,0x00,0x0C,0x07,0x00,0x20,0x10,0xB5,0x00,0x20, + 0xFF,0xF7,0xC6,0xFC,0x01,0x20,0xFF,0xF7,0x35,0xFD,0x01,0x20,0xFF,0xF7,0xF0,0xFC, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x70,0xB5,0x03,0x24,0x24,0x07,0xE5,0x68,0x00,0x20, + 0xC0,0x43,0xE0,0x60,0xFE,0xF7,0x90,0xF8,0x06,0x00,0xCB,0x20,0xC0,0x01,0xFE,0xF7, + 0x6D,0xF8,0x02,0xF0,0x77,0xFF,0x00,0xF0,0x9B,0xFC,0x02,0xF0,0x67,0xFF,0x30,0x00, + 0xFE,0xF7,0x96,0xF8,0xE5,0x60,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x03,0x21, + 0x10,0xB5,0xC0,0x43,0x09,0x07,0xC8,0x60,0x02,0xF0,0x64,0xFF,0xFF,0xF7,0x20,0xFD, + 0x05,0x48,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0x01,0x20,0x40,0x07,0x04,0xF0,0x88,0xF9, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x90,0x00,0x40,0xF8,0xB5,0x23,0x48, + 0x00,0x68,0x00,0x88,0xC0,0x06,0x3E,0xD5,0x21,0x4E,0x30,0x7A,0x00,0x28,0x3A,0xD0, + 0x70,0x7A,0x00,0x28,0x37,0xD0,0x01,0x25,0x32,0xE0,0x71,0x7A,0x1D,0x4F,0x09,0x23, + 0x8C,0x46,0x0A,0x21,0x69,0x43,0xCC,0x19,0x01,0x20,0x9B,0x01,0xFF,0x34,0xC1,0x34, + 0x23,0xE0,0x0A,0x22,0x42,0x43,0xD2,0x19,0xD2,0x18,0x21,0x7B,0x92,0x7B,0x91,0x42, + 0x1A,0xD1,0x0A,0x22,0x50,0x43,0xC0,0x19,0xC7,0x18,0x0E,0x21,0x10,0x20,0x61,0x5E, + 0x38,0x5E,0x12,0x22,0xBA,0x5E,0x08,0x1A,0x10,0x21,0x61,0x5E,0x89,0x1A,0x00,0x91, + 0x3A,0x8A,0xE1,0x89,0xFF,0xF7,0x0E,0xFA,0xE0,0x81,0x7A,0x8A,0x21,0x8A,0x00,0x98, + 0xFF,0xF7,0x08,0xFA,0x20,0x82,0x02,0xE0,0x40,0x1C,0x84,0x45,0xD9,0xDA,0x6D,0x1C, + 0x30,0x7A,0xA8,0x42,0xC9,0xDA,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xD4,0x07,0x00,0x20, + 0x00,0x02,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB5,0x00,0x20,0xB1,0xB0,0x10,0x90, + 0x0F,0x90,0x0E,0x90,0x0D,0x90,0xFC,0x48,0x01,0x8C,0x0A,0x91,0x40,0x8C,0x09,0x90, + 0xFA,0x48,0x02,0x68,0x13,0x00,0x60,0x33,0x59,0x7F,0x18,0x7F,0x08,0x91,0x11,0x00, + 0x80,0x31,0x8C,0x7A,0x07,0x94,0x4C,0x7A,0x06,0x94,0x12,0x88,0x12,0x07,0x24,0xD5, + 0xDA,0x7F,0x42,0x43,0x24,0x92,0x0A,0x78,0x42,0x43,0x23,0x92,0x4A,0x78,0x42,0x43, + 0x22,0x92,0x8A,0x78,0x42,0x43,0x21,0x92,0xCA,0x78,0x42,0x43,0x20,0x92,0x0A,0x79, + 0x42,0x43,0x1F,0x92,0x4A,0x79,0x42,0x43,0x1E,0x92,0x8A,0x79,0x42,0x43,0x1D,0x92, + 0xCA,0x79,0x42,0x43,0x1C,0x92,0x09,0x7A,0x41,0x43,0xE5,0x48,0x1B,0x91,0x30,0x90, + 0x00,0x7A,0x00,0x28,0x05,0xD1,0x00,0xF0,0xE5,0xFE,0x31,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x20,0x25,0x90,0xDE,0x48,0xE0,0x38,0x2F,0x90,0xDD,0x48,0x2E,0x90, + 0xDD,0x4D,0x25,0x98,0x1B,0x21,0x28,0x18,0x49,0x01,0x2D,0x90,0x40,0x18,0x04,0x78, + 0x00,0x2C,0x0F,0xD0,0x07,0x98,0x00,0x28,0x08,0xD1,0x0A,0x20,0x60,0x43,0x40,0x19, + 0xFF,0x30,0xD3,0x30,0x00,0xF0,0x02,0xFE,0x00,0x28,0x03,0xD0,0x2E,0x98,0x80,0x7D, + 0x00,0x28,0x03,0xD0,0x25,0x98,0xFF,0xF7,0xF3,0xF8,0xC2,0xE2,0x25,0x99,0x1D,0x27, + 0x07,0x20,0x7F,0x01,0x4E,0x00,0x18,0x21,0x41,0x43,0x49,0x19,0x89,0x19,0xCA,0x19, + 0x93,0x88,0x93,0x83,0x23,0x22,0x52,0x01,0x8A,0x18,0x09,0x23,0x92,0x8B,0xDB,0x01, + 0xC9,0x18,0x40,0x1E,0x8A,0x82,0xEE,0xD5,0x0A,0x20,0x44,0x43,0x65,0x19,0x2C,0x95, + 0xFF,0x35,0xC1,0x35,0xEA,0x89,0x0A,0x98,0x40,0x1E,0x82,0x42,0xDD,0xDC,0x2A,0x8A, + 0x09,0x98,0x40,0x1E,0x82,0x42,0xD8,0xDC,0xBB,0x48,0xE9,0x89,0x34,0x18,0xE0,0x19, + 0x2B,0x90,0x23,0x23,0x81,0x80,0x5B,0x01,0x29,0x8A,0xE0,0x18,0x2A,0x90,0x81,0x83, + 0x00,0x20,0x01,0x22,0xD2,0x02,0x01,0x00,0x05,0x90,0x07,0x20,0x04,0x92,0x18,0x23, + 0x43,0x43,0xB1,0x4F,0xDB,0x19,0x9B,0x19,0x1D,0x27,0x7F,0x01,0xDF,0x19,0x29,0x93, + 0x04,0x23,0xFB,0x5E,0xBC,0x46,0x00,0x2B,0x0B,0xDD,0x05,0x9F,0xBB,0x42,0x02,0xDD, + 0x67,0x46,0xBF,0x88,0x05,0x97,0x04,0x9F,0xBB,0x42,0x02,0xDA,0x63,0x46,0x9B,0x88, + 0x04,0x93,0x29,0x9B,0x23,0x27,0x7F,0x01,0xDF,0x19,0x1C,0x23,0xFB,0x5E,0x00,0x2B, + 0x05,0xDD,0x8B,0x42,0x00,0xDD,0xB9,0x8B,0x93,0x42,0x00,0xDA,0xBA,0x8B,0x40,0x1E, + 0xD5,0xD5,0x04,0x9B,0x05,0x98,0xC0,0x1A,0xF0,0x28,0x02,0xDC,0x8B,0x1A,0xF0,0x2B, + 0x02,0xDD,0x2E,0x9F,0x01,0x23,0x3B,0x75,0x1E,0x28,0x04,0xDA,0x88,0x1A,0x1E,0x28, + 0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x2F,0x99,0x48,0x74,0x2D,0x98,0x07,0x21, + 0xC9,0x01,0x40,0x18,0x28,0x90,0x00,0x7E,0x01,0x28,0x1C,0xD9,0x2B,0x99,0x04,0x20, + 0x08,0x5E,0x0A,0x00,0x1C,0x21,0x51,0x5E,0x42,0x1A,0x00,0x2A,0x00,0xDC,0x0A,0x1A, + 0x10,0x04,0x00,0x14,0x0C,0x90,0x2A,0x98,0x1C,0x21,0x41,0x5E,0x09,0x20,0xC0,0x01, + 0x20,0x18,0x14,0x22,0x82,0x5E,0x88,0x1A,0x00,0x28,0x00,0xDC,0x50,0x1A,0x00,0x04, + 0x00,0x14,0x0B,0x90,0x02,0xE0,0x64,0x20,0x0B,0x90,0x0C,0x90,0x2B,0x98,0x1C,0x21, + 0x41,0x5E,0x02,0x00,0x04,0x20,0x10,0x5E,0x02,0xF0,0x48,0xFF,0x12,0x90,0x09,0x20, + 0xC0,0x01,0x20,0x18,0x14,0x21,0x41,0x5E,0x2A,0x9A,0x1C,0x20,0x10,0x5E,0x02,0xF0, + 0x3D,0xFF,0x11,0x90,0x0F,0x20,0x80,0x01,0x20,0x18,0x14,0x21,0x41,0x5E,0x12,0x98, + 0x02,0xF0,0x34,0xFF,0x14,0x90,0x25,0x20,0x40,0x01,0x20,0x18,0x0C,0x21,0x41,0x5E, + 0x11,0x98,0x02,0xF0,0x2B,0xFF,0x13,0x90,0x01,0x20,0x80,0x02,0x27,0x18,0x1F,0x20, + 0x40,0x01,0x20,0x18,0x0C,0x21,0x41,0x5E,0x04,0x22,0xBA,0x5E,0x14,0x98,0x02,0xF0, + 0x1F,0xFF,0x00,0x04,0x00,0x14,0x16,0x90,0x13,0x20,0x80,0x01,0x20,0x18,0x1C,0x22, + 0x04,0x21,0x82,0x5E,0x41,0x5E,0x13,0x98,0x02,0xF0,0x12,0xFF,0x00,0x04,0x00,0x14, + 0x15,0x90,0x21,0x20,0x40,0x01,0x20,0x18,0x14,0x22,0x82,0x5E,0x1C,0x21,0x79,0x5E, + 0x16,0x98,0x02,0xF0,0x05,0xFF,0x00,0x04,0x00,0x14,0x18,0x90,0x05,0x20,0x00,0x02, + 0x20,0x18,0x0C,0x22,0x82,0x5E,0x27,0x20,0x40,0x01,0x20,0x18,0x14,0x21,0x41,0x5E, + 0x15,0x98,0x02,0xF0,0xF5,0xFE,0x00,0x04,0x00,0x14,0x17,0x90,0x2A,0x98,0x04,0x22, + 0x82,0x5E,0x11,0x20,0x80,0x01,0x20,0x18,0x0C,0x21,0x41,0x5E,0x18,0x98,0x02,0xF0, + 0xE7,0xFE,0x00,0x04,0x00,0x14,0x1A,0x90,0x29,0x20,0x40,0x01,0x20,0x18,0x1C,0x22, + 0x04,0x21,0x82,0x5E,0x41,0x5E,0x17,0x98,0x02,0xF0,0xDA,0xFE,0x00,0x04,0x00,0x14, + 0x19,0x90,0x0B,0x99,0x0C,0x98,0x00,0xF0,0x2D,0xFF,0x3F,0x4F,0x01,0x21,0x18,0x22, + 0x4A,0x43,0xD2,0x19,0x0B,0x23,0x92,0x19,0xDB,0x01,0xD2,0x18,0x93,0x88,0x49,0x1E, + 0x93,0x83,0xF4,0xD5,0x0B,0x21,0xC9,0x01,0x61,0x18,0x88,0x80,0x2D,0x9A,0x2B,0x21, + 0x49,0x01,0x57,0x18,0x3A,0x7E,0x00,0x20,0x00,0x2A,0x94,0x46,0x0D,0xDB,0x18,0x21, + 0x13,0x00,0x4B,0x43,0x30,0x49,0x59,0x18,0x8B,0x19,0x0B,0x21,0xC9,0x01,0x5B,0x18, + 0x04,0x21,0x59,0x5E,0x08,0x18,0x52,0x1E,0xF1,0xD5,0x61,0x46,0x49,0x1C,0xFD,0xF7, + 0xD1,0xF9,0x23,0x99,0x06,0x00,0x88,0x42,0x01,0xDC,0x01,0x20,0x0F,0xE0,0x21,0x98, + 0x86,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x1F,0x98,0x86,0x42,0x01,0xDC,0x03,0x20, + 0x05,0xE0,0x1D,0x98,0x86,0x42,0x01,0xDC,0x04,0x20,0x00,0xE0,0x05,0x20,0x39,0x7B, + 0x40,0x1A,0x08,0x99,0x49,0x42,0x00,0x28,0x0B,0xDD,0x15,0x20,0x80,0x01,0x20,0x18, + 0x14,0x22,0x82,0x5E,0x08,0x9B,0x9A,0x42,0x01,0xD1,0x00,0x22,0x0A,0xE0,0x52,0x1C, + 0x08,0xE0,0x00,0x28,0x15,0x48,0x07,0xDA,0x20,0x18,0x14,0x22,0x82,0x5E,0x8A,0x42, + 0xF3,0xD0,0x52,0x1E,0x82,0x82,0x0A,0xE0,0x22,0x18,0x14,0x20,0x10,0x5E,0x00,0x28, + 0x01,0xDD,0x40,0x1E,0x02,0xE0,0x00,0x28,0x01,0xDA,0x40,0x1C,0x90,0x82,0x0B,0x48, + 0x22,0x18,0x14,0x20,0x10,0x5E,0x08,0x9A,0x90,0x42,0x11,0xD1,0x3A,0x7B,0x05,0x2A, + 0x0E,0xD2,0x52,0x1C,0x3A,0x73,0x12,0xE0,0x00,0x93,0x00,0x00,0xD4,0x07,0x00,0x20, + 0x00,0x02,0x00,0x20,0xC0,0x03,0x00,0x20,0x40,0x00,0x00,0x20,0x40,0x05,0x00,0x00, + 0x88,0x42,0x04,0xD1,0x38,0x7B,0x01,0x28,0x01,0xD9,0x40,0x1E,0x38,0x73,0x28,0x98, + 0x1A,0x9A,0x00,0x7E,0x19,0x9C,0x01,0x00,0x27,0x90,0x26,0x90,0x10,0x00,0xFD,0xF7, + 0x69,0xF9,0x10,0x90,0x0E,0x90,0x26,0x99,0x20,0x00,0xFD,0xF7,0x63,0xF9,0x0F,0x90, + 0x0D,0x90,0x38,0x7B,0x01,0x28,0x27,0xD1,0x0D,0xAA,0x0E,0xA9,0x6B,0x46,0x06,0xC3, + 0x19,0x9B,0x1A,0x9A,0x27,0x98,0x09,0x21,0x03,0xF0,0xF0,0xFA,0x0F,0xAA,0x10,0xA9, + 0x68,0x46,0x06,0xC0,0x28,0x98,0x17,0x9B,0x00,0x7E,0x18,0x9A,0x07,0x21,0x03,0xF0, + 0xE5,0xFA,0x3C,0x20,0x6B,0x46,0x18,0x5E,0x38,0x21,0x59,0x5E,0x34,0x22,0x9A,0x5E, + 0x01,0xAC,0x07,0xC4,0x00,0x22,0x10,0xAB,0x9A,0x5E,0x2C,0x98,0x00,0x92,0xFF,0x30, + 0x23,0x9B,0x24,0x9A,0xCD,0x30,0x9B,0xE0,0x02,0x28,0x27,0xD1,0x0D,0xAA,0x0E,0xA9, + 0x6B,0x46,0x06,0xC3,0x17,0x9B,0x18,0x9A,0x27,0x98,0x07,0x21,0x03,0xF0,0xC6,0xFA, + 0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0,0x28,0x98,0x15,0x9B,0x00,0x7E,0x16,0x9A, + 0x05,0x21,0x03,0xF0,0xBB,0xFA,0x3C,0x20,0x6B,0x46,0x18,0x5E,0x38,0x21,0x59,0x5E, + 0x34,0x22,0x9A,0x5E,0x01,0xAC,0x07,0xC4,0x00,0x22,0x10,0xAB,0x9A,0x5E,0x2C,0x98, + 0x21,0x9B,0xFF,0x30,0x00,0x92,0x22,0x9A,0xCD,0x30,0x71,0xE0,0x03,0x28,0x27,0xD1, + 0x0D,0xAA,0x0E,0xA9,0x6B,0x46,0x06,0xC3,0x15,0x9B,0x16,0x9A,0x27,0x98,0x05,0x21, + 0x03,0xF0,0x9C,0xFA,0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0,0x28,0x98,0x13,0x9B, + 0x00,0x7E,0x14,0x9A,0x03,0x21,0x03,0xF0,0x91,0xFA,0x3C,0x20,0x6B,0x46,0x18,0x5E, + 0x38,0x21,0x59,0x5E,0x34,0x22,0x9A,0x5E,0x01,0xAC,0x07,0xC4,0x00,0x22,0x10,0xAB, + 0x9A,0x5E,0x2C,0x98,0x1F,0x9B,0xFF,0x30,0x00,0x92,0x20,0x9A,0xCD,0x30,0x47,0xE0, + 0x04,0x28,0x27,0xD1,0x0D,0xAA,0x0E,0xA9,0x68,0x46,0x06,0xC0,0x13,0x9B,0x14,0x9A, + 0x27,0x98,0x03,0x21,0x03,0xF0,0x72,0xFA,0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0, + 0x28,0x98,0x11,0x9B,0x00,0x7E,0x12,0x9A,0x02,0x21,0x03,0xF0,0x67,0xFA,0x3C,0x20, + 0x6B,0x46,0x18,0x5E,0x38,0x21,0x59,0x5E,0x34,0x22,0x9A,0x5E,0x01,0xAC,0x07,0xC4, + 0x00,0x22,0x10,0xAB,0x9A,0x5E,0x2C,0x98,0x1D,0x9B,0xFF,0x30,0x00,0x92,0x1E,0x9A, + 0xCD,0x30,0x1D,0xE0,0x0F,0xAA,0x10,0xA9,0x68,0x46,0x06,0xC0,0x11,0x9B,0x12,0x9A, + 0x27,0x98,0x02,0x21,0x03,0xF0,0x4A,0xFA,0x3C,0x22,0x6B,0x46,0x9A,0x5E,0x00,0x21, + 0x10,0xAB,0x59,0x5E,0x2A,0x9B,0x1C,0x20,0x18,0x5E,0x01,0xAB,0x07,0xC3,0x2B,0x98, + 0x04,0x22,0x82,0x5E,0x2C,0x98,0x1B,0x9B,0x00,0x92,0x1C,0x9A,0xFF,0x30,0xCD,0x30, + 0x31,0x00,0x03,0xF0,0x47,0xFA,0x28,0x98,0x3B,0x49,0x00,0x7E,0x09,0x28,0x02,0xD2, + 0x28,0x9A,0x40,0x1C,0x10,0x76,0x38,0x7E,0x02,0x28,0x01,0xD2,0x40,0x1C,0x38,0x76, + 0x28,0x7B,0x40,0x1E,0x80,0x00,0x41,0x18,0x17,0x20,0x80,0x01,0x0C,0x18,0x0C,0x20, + 0x20,0x5E,0x00,0x28,0x21,0xDB,0x0E,0x21,0x61,0x5E,0x00,0x29,0x1D,0xDB,0x06,0x9A, + 0x64,0x21,0x8E,0x1A,0x70,0x43,0xFD,0xF7,0x75,0xF8,0x07,0x00,0xE8,0x89,0x06,0x99, + 0x48,0x43,0x64,0x21,0xFD,0xF7,0x9E,0xF9,0x38,0x18,0xE8,0x81,0x0E,0x20,0x20,0x5E, + 0x64,0x21,0x70,0x43,0xFD,0xF7,0x66,0xF8,0x06,0x00,0x28,0x8A,0x06,0x99,0x48,0x43, + 0x64,0x21,0xFD,0xF7,0x8F,0xF9,0x30,0x18,0x28,0x82,0xE8,0x89,0xA0,0x81,0x28,0x8A, + 0xE0,0x81,0x25,0x98,0x40,0x1C,0x0C,0x28,0x25,0x90,0x00,0xDA,0x18,0xE5,0x30,0x98, + 0x01,0x7A,0x00,0x29,0x00,0xD1,0x08,0xE5,0x80,0x7D,0x2E,0x9C,0x42,0x00,0x16,0x48, + 0x10,0x18,0x1D,0x22,0x52,0x01,0x82,0x18,0x53,0x88,0x23,0x81,0x23,0x23,0x5B,0x01, + 0xC3,0x18,0x5B,0x8B,0x2E,0x9C,0x63,0x81,0x53,0x8B,0x2E,0x9A,0x93,0x81,0x09,0x22, + 0xD2,0x01,0x80,0x18,0x42,0x8A,0x2E,0x98,0x02,0x29,0xC2,0x81,0x30,0x98,0x2E,0x9A, + 0x00,0x8B,0x10,0x80,0x30,0x9A,0x2E,0x9B,0x52,0x8B,0x5A,0x80,0xDB,0xD1,0x2E,0x99, + 0x08,0x80,0x2E,0x98,0x42,0x80,0x05,0x48,0x2E,0x99,0x42,0x88,0x8A,0x80,0x81,0x88, + 0x2E,0x98,0xC1,0x80,0xD9,0xE4,0x00,0x00,0x40,0x00,0x00,0x20,0x20,0x02,0x00,0x20, + 0xF8,0xB5,0x1C,0x4B,0x1C,0x7D,0xDA,0x8E,0xE4,0x07,0x31,0xD0,0x1C,0x8F,0x1A,0x4B, + 0x1B,0x7F,0x9E,0x46,0x19,0x4B,0x1E,0x78,0x16,0x4B,0x9D,0x7D,0x00,0x2E,0x76,0x46, + 0xAC,0x46,0xDD,0x7D,0x00,0x95,0x1D,0x7E,0x5F,0x7E,0x9B,0x7E,0x12,0xD0,0xB0,0x42, + 0x1E,0xD1,0x8C,0x45,0x08,0xD0,0x00,0x98,0x88,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0, + 0x8F,0x42,0x01,0xD0,0x8B,0x42,0x03,0xD1,0x20,0x00,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x20,0xFA,0xE7,0xB1,0x42,0x0B,0xD1,0x84,0x45,0xF5,0xD0,0x00,0x99,0x81,0x42, + 0xF2,0xD0,0x85,0x42,0xF0,0xD0,0x87,0x42,0xEE,0xD0,0x83,0x42,0xF0,0xD1,0xEB,0xE7, + 0x10,0x00,0xEA,0xE7,0x00,0x93,0x00,0x00,0x60,0x06,0x00,0x20,0x11,0x07,0x00,0x20, + 0x0E,0x23,0x58,0x43,0x02,0x4A,0x40,0x18,0x40,0x00,0x10,0x5A,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0x1B,0x49,0x10,0xB5,0x4A,0x7A,0x1B,0x49,0x00,0x20,0x00,0x2A, + 0x15,0xD1,0x0A,0x89,0x00,0x2A,0x0F,0xD0,0x18,0x49,0x8A,0x42,0x0C,0xD0,0x10,0x00, + 0x1E,0x21,0x48,0x43,0x64,0x21,0xFD,0xF7,0xED,0xF8,0xFF,0x30,0x4B,0x21,0x91,0x30, + 0xC9,0x00,0x88,0x42,0x00,0xD9,0x08,0x00,0x10,0xBC,0x08,0xBC,0x18,0x47,0x88,0x89, + 0x0D,0x4A,0x73,0x24,0x92,0x89,0x01,0x00,0x0D,0x4B,0xFF,0x39,0xE4,0x00,0x6A,0x39, + 0x12,0x1B,0x99,0x42,0x06,0xD8,0x10,0x00,0x50,0x43,0x59,0x1C,0xFD,0xF7,0xD2,0xF8, + 0x20,0x1A,0xE9,0xE7,0xA0,0x42,0xE7,0xD9,0x03,0x21,0x10,0x00,0xFD,0xF7,0xCA,0xF8, + 0x00,0x19,0xE1,0xE7,0x40,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0x0F,0x00,0x00, + 0x2F,0x02,0x00,0x00,0x04,0x48,0x41,0x69,0x49,0x06,0x01,0xD5,0x10,0x20,0x70,0x47, + 0x40,0x69,0xC0,0x06,0xC0,0x0E,0x70,0x47,0x00,0x40,0x00,0x30,0x70,0xB5,0x12,0x4D, + 0x00,0x24,0x01,0x21,0x49,0x07,0x68,0x69,0x80,0x06,0xFC,0xD4,0xE8,0x68,0x6A,0x68, + 0x6A,0x60,0x05,0xE0,0x6A,0x69,0x92,0x06,0xFC,0xD4,0xAA,0x69,0x04,0xC1,0xA4,0x18, + 0x02,0x00,0x40,0x1E,0x01,0x2A,0xF5,0xD8,0x2E,0x20,0x68,0x60,0x68,0x68,0x80,0x07, + 0xFC,0xD5,0x02,0xF0,0x23,0xFC,0x05,0x48,0xE8,0x61,0xEC,0x61,0x68,0x69,0x80,0x06, + 0xFC,0xD4,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30,0xAB,0xFC,0xFF,0x8F, + 0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9,0xB0,0x40,0x9F,0xE5,0x0C,0x00,0x94,0xE5, + 0x00,0x00,0x50,0xE3,0xFC,0xFF,0xFF,0x0A,0x04,0x00,0x94,0xE5,0x04,0x00,0x84,0xE5, + 0x04,0x00,0x94,0xE5,0x04,0x00,0x10,0xE3,0x10,0x00,0x00,0x0A,0x0C,0x00,0x94,0xE5, + 0x04,0x10,0x90,0xE4,0x1C,0x10,0x84,0xE5,0x02,0x12,0xA0,0xE3,0x38,0x10,0x91,0xE5, + 0x04,0x00,0x00,0xEA,0x04,0x20,0x90,0xE4,0x1C,0x20,0x84,0xE5,0x14,0x20,0x94,0xE5, + 0x40,0x00,0x12,0xE3,0xFC,0xFF,0xFF,0x1A,0x01,0x10,0x51,0xE2,0xF8,0xFF,0xFF,0x1A, + 0x14,0x00,0x94,0xE5,0x5F,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x1A,0x11,0x00,0x00,0xEA, + 0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3,0xE8,0xFF,0xFF,0x0A,0x14,0x00,0x94,0xE5, + 0x20,0x00,0x10,0xE3,0xE5,0xFF,0xFF,0x1A,0x0C,0x00,0x94,0xE5,0x08,0x00,0x50,0xE3, + 0x10,0x40,0xBD,0x08,0xE2,0x09,0x00,0x0A,0x14,0x10,0x94,0xE5,0x5F,0x00,0x11,0xE3, + 0x18,0x10,0x94,0x15,0x04,0x10,0x80,0x14,0xFA,0xFF,0xFF,0x1A,0x04,0x00,0x94,0xE5, + 0x02,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x0A,0xD9,0x09,0x00,0xEB,0xD2,0xFF,0xFF,0xEA, + 0x00,0x40,0x00,0x30,0xF8,0xB5,0x20,0x4E,0x20,0x4F,0x00,0x25,0x2C,0x00,0x78,0x69, + 0x80,0x06,0xFC,0xD4,0x78,0x68,0x78,0x60,0xF8,0x68,0x04,0x28,0x0E,0xD1,0x1C,0x48, + 0x40,0x21,0x04,0xE0,0x7A,0x69,0x92,0x06,0xFC,0xD4,0xBA,0x69,0x04,0xC0,0x49,0x1E, + 0xF8,0xD2,0x20,0x25,0x17,0x4C,0x30,0x78,0x01,0x21,0x06,0xE0,0x05,0x28,0x07,0xD1, + 0x15,0x48,0x16,0x4C,0x85,0x08,0x30,0x78,0x02,0x21,0x08,0x43,0x30,0x70,0x10,0xE0, + 0x03,0x28,0x0E,0xD1,0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0, + 0x85,0xFB,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x78,0x69,0x80,0x06,0xFC,0xD4,0xB8,0x69, + 0x01,0xC4,0x6D,0x1E,0xF8,0xD2,0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5, + 0x02,0xF0,0x74,0xFB,0xC3,0xE7,0x00,0x00,0x0E,0x07,0x00,0x20,0x00,0x40,0x00,0x30, + 0x00,0x90,0x00,0x40,0x00,0xA0,0x00,0x40,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x10, + 0x01,0x49,0x20,0x20,0x48,0x61,0x70,0x47,0x00,0x40,0x00,0x30,0xF8,0xB5,0x01,0x22, + 0x52,0x07,0x11,0x68,0x3D,0x48,0x01,0x29,0x80,0x79,0x01,0xD1,0x01,0x25,0x03,0xE0, + 0x11,0x68,0x01,0x29,0x06,0xD9,0x02,0x25,0x00,0x28,0x0B,0xD0,0x00,0x21,0x33,0x27, + 0x7F,0x01,0x3B,0xE0,0x00,0x28,0x05,0xD1,0x34,0x48,0x0D,0x22,0x00,0x21,0x14,0x38, + 0x01,0xF0,0x92,0xFB,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x4A,0x19,0x00,0x24,0x92,0x00, + 0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x26,0xD0,0x01,0x20,0x93,0x00, + 0x1B,0x0F,0x2B,0x4E,0x36,0x18,0xF6,0x19,0x36,0x7B,0x9E,0x42,0x01,0xD1,0x04,0x00, + 0x02,0xE0,0x40,0x1C,0x0C,0x28,0xF4,0xD9,0x00,0x2C,0x06,0xD0,0x0F,0x23,0x9B,0x06, + 0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43,0x0D,0xE0,0x21,0x4C,0x01,0x20,0x26,0x18, + 0xF6,0x19,0x36,0x7B,0x00,0x2E,0x03,0xD1,0x24,0x18,0xE4,0x19,0x23,0x73,0xED,0xE7, + 0x40,0x1C,0x0C,0x28,0xF3,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07, + 0x02,0x68,0x8A,0x42,0xC9,0xD8,0x00,0x21,0x21,0xE0,0x4A,0x19,0x92,0x00,0x10,0x18, + 0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x18,0xD1,0x11,0x4E,0x01,0x20,0x93,0x00, + 0x1C,0x0F,0x33,0x18,0xDB,0x19,0x1B,0x7B,0xA3,0x42,0x0A,0xD1,0x34,0x18,0x00,0x23, + 0xE4,0x19,0x23,0x73,0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43, + 0x02,0xE0,0x40,0x1C,0x0C,0x28,0xEC,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20, + 0x40,0x07,0x02,0x68,0x8A,0x42,0xD8,0xD8,0x9C,0xE7,0x00,0x00,0xC0,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0x03,0x23,0x1B,0x07,0xDA,0x68,0x01,0x21,0x81,0x40,0x8A,0x43, + 0xDA,0x60,0x70,0x47,0x10,0xB4,0x0F,0x24,0x03,0x23,0x1B,0x07,0x1C,0x60,0x05,0x4C, + 0x60,0x63,0x19,0x61,0x9A,0x60,0x00,0x20,0xC0,0x43,0xD8,0x60,0x00,0x20,0x18,0x60, + 0x10,0xBC,0x70,0x47,0x40,0x00,0x00,0x30,0x03,0x4B,0x00,0xB5,0x82,0x00,0x99,0x50, + 0xFF,0xF7,0xE0,0xFF,0x08,0xBC,0x18,0x47,0x54,0x07,0x00,0x20,0xF0,0xB5,0x87,0xB0, + 0xFE,0xF7,0x9C,0xFB,0xFE,0xF7,0x7A,0xFB,0x01,0xF0,0x9C,0xFB,0x02,0xF0,0x8E,0xF9, + 0x00,0xF0,0x0E,0xFD,0x00,0xF0,0x38,0xFB,0xFE,0xF7,0x32,0xF8,0xFD,0xF7,0xA8,0xFA, + 0x39,0x48,0x00,0x68,0x80,0x30,0x40,0x7B,0x00,0x28,0x04,0xD1,0xFF,0xF7,0x5C,0xFA, + 0xFF,0xF7,0x0C,0xFA,0x03,0xE0,0xFF,0xF7,0x09,0xFA,0xFF,0xF7,0x55,0xFA,0x01,0x27, + 0x7F,0x07,0x78,0x68,0x6B,0x46,0x03,0x90,0x00,0x20,0xD8,0x73,0x03,0x98,0x78,0x60, + 0x02,0xF0,0x94,0xFC,0x02,0xF0,0xE0,0xFA,0x38,0x68,0x00,0x28,0x07,0xD0,0x78,0x68, + 0x80,0x0F,0x80,0x07,0x03,0xD5,0x3E,0x68,0x02,0x24,0x76,0x1C,0x37,0xE0,0x01,0x24, + 0x26,0x00,0xA0,0x00,0xC0,0x19,0x06,0x90,0x05,0x68,0xA8,0x01,0x80,0x0D,0x05,0x90, + 0xA8,0x05,0x80,0x0D,0x04,0x90,0x21,0x48,0x00,0x78,0x00,0x28,0x03,0xD1,0x04,0xA9, + 0x05,0xA8,0x02,0xF0,0x07,0xFB,0x1E,0x4B,0x00,0x21,0x58,0x8C,0x40,0x1E,0x02,0x04, + 0x12,0x0C,0x68,0x46,0x06,0xC0,0x18,0x8C,0x0A,0x00,0x04,0xA9,0x40,0x1E,0x03,0x04, + 0x1B,0x0C,0x05,0xA8,0x03,0xF0,0x36,0xFB,0x04,0xA9,0x05,0xA8,0x03,0xF0,0x48,0xF9, + 0x14,0x48,0x04,0x99,0x05,0x40,0x05,0x98,0x89,0x05,0x80,0x05,0x80,0x09,0x05,0x43, + 0xA8,0x0A,0x80,0x02,0x89,0x0D,0x08,0x43,0x06,0x99,0x08,0x60,0x64,0x1C,0xB4,0x42, + 0xC7,0xD9,0xFD,0xF7,0x69,0xFE,0x02,0xF0,0x67,0xFA,0x38,0x68,0xFC,0xF7,0xB8,0xFF, + 0xFF,0xF7,0xDC,0xFE,0xFC,0xF7,0xFE,0xFE,0x03,0xF0,0xD0,0xF9,0x06,0x48,0x40,0x79, + 0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xD4,0x07,0x00,0x20,0x18,0x07,0x00,0x20, + 0x00,0x93,0x00,0x00,0xFF,0xFF,0x00,0xFC,0x40,0x00,0x00,0x20,0xF8,0xB5,0x02,0xF0, + 0xE9,0xF8,0xFE,0xF7,0xD3,0xFD,0xFE,0xF7,0xA3,0xFE,0xFE,0xF7,0xEB,0xFE,0x1C,0x48, + 0x00,0x21,0xC0,0x7F,0x03,0xF0,0x96,0xF8,0x1A,0x4F,0x1B,0x4D,0xFC,0x03,0x00,0x20, + 0x28,0x70,0xE8,0x61,0x28,0x7A,0x00,0x28,0x1D,0xD0,0x01,0x26,0x18,0xE0,0x78,0x68, + 0x00,0x07,0x15,0xD5,0xA6,0x63,0xF8,0x68,0x07,0x28,0x09,0xD1,0x78,0x68,0x80,0x07, + 0xFC,0xD5,0x02,0xF0,0x03,0xFA,0xFF,0xF7,0x3E,0xF9,0xFF,0x20,0xE0,0x63,0x07,0xE0, + 0x0B,0x28,0x10,0xD1,0xE0,0x63,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0xF6,0xF9, + 0xE0,0x6B,0x0B,0x28,0xE3,0xD1,0xFE,0xF7,0xB7,0xF9,0x28,0x78,0x00,0x28,0xD6,0xD0, + 0x01,0xF0,0xBC,0xFE,0xD3,0xE7,0x78,0x68,0x80,0x07,0xFC,0xD5,0xEE,0xE7,0x00,0x00, + 0x00,0x93,0x00,0x00,0x00,0x40,0x00,0x30,0x0C,0x07,0x00,0x20,0x70,0xB5,0x05,0x00, + 0x1A,0x48,0x1B,0x4A,0x00,0x68,0x12,0x88,0x60,0x30,0x01,0x7E,0xC0,0x7D,0x2C,0x78, + 0x89,0x18,0x0E,0x06,0x17,0x49,0x36,0x0E,0x4A,0x7F,0x00,0x2A,0x0D,0xD1,0x89,0x7F, + 0x01,0x29,0x01,0xD1,0x80,0x1C,0x06,0xE0,0x02,0x29,0x01,0xD1,0x00,0x1D,0x02,0xE0, + 0x03,0x29,0x02,0xD1,0x80,0x1D,0x00,0x06,0x00,0x0E,0x00,0x2C,0x0A,0xD0,0x84,0x42, + 0x08,0xD3,0x14,0x21,0x20,0x00,0xFC,0xF7,0x2D,0xFE,0x76,0x1C,0xB0,0x42,0x05,0xD2, + 0x14,0x2C,0x07,0xD3,0x00,0x20,0x70,0xBC,0x08,0xBC,0x18,0x47,0x14,0x2C,0x01,0xD3, + 0xF0,0x20,0x00,0xE0,0x13,0x20,0x28,0x70,0x01,0x20,0xF4,0xE7,0xD4,0x07,0x00,0x20, + 0x00,0x07,0x00,0x20,0xA0,0x03,0x00,0x20,0x10,0xB5,0x0C,0x24,0x20,0x00,0xFE,0xF7, + 0x43,0xFA,0x64,0x1E,0xFA,0xD5,0x05,0x48,0x01,0x22,0x41,0x7C,0x01,0x29,0x01,0xD8, + 0x00,0x29,0x00,0xD1,0x42,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x93,0x00,0x00, + 0x10,0xB5,0x07,0x4C,0x07,0x48,0x22,0x00,0x00,0x21,0x01,0xF0,0xD5,0xF9,0x06,0x48, + 0x22,0x00,0x00,0x21,0x01,0xF0,0xD0,0xF9,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xD2,0x02,0x00,0x00,0x00,0x00,0x00,0x10,0xDA,0x07,0x00,0x20,0x10,0xB5,0x40,0x22, + 0xD4,0x05,0x00,0x21,0x20,0x00,0x01,0xF0,0xBF,0xF9,0x01,0x20,0xA0,0x63,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x14,0x48,0x10,0xB5,0x44,0x08,0x14,0x49,0x14,0x48,0x62,0x00, + 0x01,0xF0,0x8E,0xF9,0x10,0x48,0xC0,0x07,0x08,0xD0,0x0F,0x48,0xC2,0x07,0x0F,0x48, + 0xD2,0x0F,0x01,0x19,0x0E,0x48,0x00,0x19,0x01,0xF0,0x72,0xF9,0x0D,0x48,0x00,0x21, + 0x84,0x08,0x0D,0x48,0xA2,0x00,0x01,0xF0,0xAF,0xF9,0x0A,0x48,0x80,0x07,0x07,0xD0, + 0x08,0x48,0x00,0x21,0x82,0x07,0x08,0x48,0x92,0x0F,0x00,0x19,0x01,0xF0,0x94,0xF9, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0xF4,0x72,0x00,0x00, + 0x40,0x00,0x00,0x20,0x30,0x0B,0x00,0x00,0x40,0x00,0x00,0x20,0x05,0x49,0xC8,0x05, + 0x41,0x62,0x05,0x49,0x81,0x62,0x05,0x48,0xFF,0x21,0xC1,0x60,0x00,0x21,0x41,0x61, + 0x70,0x47,0x00,0x00,0x80,0x88,0x3C,0x03,0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x40, + 0x02,0x49,0x03,0x48,0x01,0x60,0x20,0x21,0x41,0x60,0x70,0x47,0xDE,0x10,0x05,0x00, + 0x00,0x40,0x00,0x30,0x10,0xB5,0x00,0x24,0x20,0x00,0xFE,0xF7,0x31,0xFA,0x64,0x1C, + 0x0C,0x2C,0xF9,0xDB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x10,0xB5,0x01,0x24, + 0x64,0x03,0x20,0x00,0xFD,0xF7,0xC2,0xF8,0xFE,0xF7,0x4A,0xFD,0xFE,0xF7,0x14,0xFD, + 0xFE,0xF7,0x4E,0xFD,0xFE,0xF7,0x44,0xFD,0xFE,0xF7,0x06,0xFD,0x07,0x48,0x01,0x68, + 0xF0,0x22,0x91,0x43,0x06,0x4A,0x12,0x7B,0x12,0x07,0x12,0x0E,0x11,0x43,0x01,0x60, + 0x20,0x00,0xFD,0xF7,0xA3,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xA0,0x00,0x40, + 0x00,0x93,0x00,0x00,0x10,0xB5,0x01,0xF0,0x95,0xFF,0x01,0xF0,0x75,0xFF,0xFF,0x20, + 0xFD,0xF7,0xD4,0xF8,0xFF,0xF7,0xAA,0xFF,0x11,0x48,0x80,0x22,0x00,0x21,0x01,0xF0, + 0x3B,0xF9,0x08,0x20,0xFD,0xF7,0x92,0xF8,0x00,0x22,0x0E,0x49,0xD2,0x43,0x00,0x20, + 0xFF,0xF7,0x00,0xFE,0x00,0xF0,0x1A,0xF8,0x0B,0x48,0x40,0x7A,0x00,0x28,0x04,0xD0, + 0x40,0x20,0xFD,0xF7,0x83,0xF8,0x00,0xF0,0x4D,0xF8,0x00,0xF0,0x37,0xF8,0x10,0x20, + 0x01,0xF0,0x63,0xFF,0xFE,0xF7,0x5E,0xFE,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x54,0x07,0x00,0x20,0x02,0x03,0x0F,0x0F,0x00,0x93,0x00,0x00,0xF8,0xB5,0x03,0x24, + 0xE6,0x01,0x13,0x25,0x30,0x00,0xFD,0xF7,0x69,0xF8,0x20,0x02,0xFD,0xF7,0x90,0xF8, + 0x0C,0x48,0x0A,0x21,0x00,0x6B,0xFC,0xF7,0x1D,0xFD,0x02,0x00,0xFF,0x21,0x90,0x31, + 0x02,0x20,0x00,0x23,0x00,0x95,0x02,0xF0,0xBF,0xFF,0x07,0x4A,0x27,0x21,0x03,0x20, + 0x00,0x23,0x00,0x94,0x02,0xF0,0xB8,0xFF,0x30,0x00,0xFD,0xF7,0x47,0xF8,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00,0xE8,0xFD,0x00,0x00,0x10,0xB5,0x07,0x49, + 0x00,0x20,0xFF,0xF7,0xC9,0xFD,0x03,0xF0,0x5E,0xF9,0x05,0x48,0x03,0xF0,0x4E,0xF9, + 0x00,0x20,0xFF,0xF7,0xA7,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0xA1,0x71,0x00,0x00, + 0x78,0x37,0x00,0x00,0x0A,0x48,0x10,0xB5,0x00,0x6B,0x0A,0x49,0x0A,0x4C,0x88,0x42, + 0x05,0xD9,0x7D,0x21,0xC9,0x00,0xFC,0xF7,0xE5,0xFC,0x64,0x30,0x01,0xE0,0xFF,0x20, + 0xF5,0x30,0x20,0x63,0x03,0xF0,0x08,0xF9,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0x93,0x00,0x00,0x07,0xA5,0x07,0x00,0x0C,0x07,0x00,0x20,0x10,0xB5,0xFF,0xF7, + 0xCF,0xFE,0x12,0x48,0x00,0x7A,0x02,0xF0,0xB9,0xFE,0xFF,0xF7,0x3B,0xFF,0x0F,0x48, + 0x0F,0x4A,0xA0,0x30,0x41,0x89,0xD1,0x83,0x0E,0x49,0x0F,0x4A,0x09,0x68,0x40,0x31, + 0x49,0x7D,0x51,0x70,0x01,0x00,0x20,0x39,0x0A,0x8B,0x0B,0x49,0x80,0x31,0x8A,0x63, + 0x00,0x88,0xC8,0x63,0xFF,0xF7,0xA0,0xFE,0x08,0x48,0x00,0x24,0xC4,0x80,0xFE,0xF7, + 0x37,0xFB,0x07,0x48,0x04,0x70,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00, + 0x40,0x00,0x00,0x20,0xD4,0x07,0x00,0x20,0x40,0x06,0x00,0x20,0x00,0x02,0x00,0x20, + 0x0D,0x07,0x00,0x20,0xF7,0xB5,0x2C,0x48,0x86,0xB0,0x04,0x90,0x00,0x20,0x2B,0x4E, + 0x07,0x00,0x02,0x90,0x03,0x90,0x05,0x90,0xFE,0xF7,0x14,0xFC,0xFE,0xF7,0xEA,0xFC, + 0x27,0x48,0x40,0x7F,0x01,0x90,0x26,0x48,0x20,0x38,0x40,0x7F,0x00,0x25,0x00,0x90, + 0x00,0x24,0x21,0x00,0x28,0x00,0xFF,0xF7,0x3B,0xFB,0x00,0x28,0x1B,0xD0,0x0E,0x21, + 0x69,0x43,0x04,0x9A,0x09,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A, + 0x01,0x1E,0x00,0xDC,0x41,0x42,0x00,0x28,0x01,0xDB,0x01,0x98,0x00,0xE0,0x00,0x98, + 0x81,0x42,0x01,0xDD,0x01,0x22,0x05,0x92,0x08,0x1A,0xB0,0x42,0x03,0xDD,0x06,0x00, + 0x2F,0x00,0x02,0x94,0x03,0x91,0x64,0x1C,0x0E,0x2C,0xDA,0xD3,0x6D,0x1C,0x15,0x2D, + 0xD6,0xD3,0x03,0x99,0x08,0x98,0x01,0x60,0x0E,0x48,0x00,0x69,0xC0,0x07,0x05,0xD0, + 0x07,0x99,0x02,0x98,0x08,0x60,0x06,0x98,0x07,0x60,0x04,0xE0,0x07,0x98,0x07,0x60, + 0x06,0x99,0x02,0x98,0x08,0x60,0x05,0x98,0x00,0x28,0x00,0xD0,0x04,0x20,0x09,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD4,0x02,0x10,0x40,0x78,0xEC,0xFF,0xFF, + 0x20,0x93,0x00,0x00,0x00,0x90,0x00,0x40,0x78,0x47,0xC0,0x46,0x68,0xC0,0x9F,0xE5, + 0x00,0x00,0x9C,0xE5,0x64,0x30,0x9F,0xE5,0x0E,0x06,0xD3,0xE5,0x01,0x00,0x00,0xE2, + 0x00,0x00,0x50,0xE3,0x0F,0x16,0xD3,0x15,0x00,0x00,0xA0,0x13,0x00,0x00,0x51,0x13, + 0x1E,0xFF,0x2F,0x91,0x0E,0x26,0xD3,0xE5,0x00,0x10,0x83,0xE0,0x3D,0x16,0xD1,0xE5, + 0x02,0x00,0x12,0xE3,0x3C,0x26,0xD3,0xE5,0x82,0x21,0x62,0x00,0x82,0x10,0x81,0x00, + 0x81,0x11,0x61,0x10,0x81,0x10,0x82,0x10,0x01,0x11,0x9C,0xE7,0x80,0x20,0x83,0xE0, + 0x02,0x19,0xC1,0xE3,0xB0,0x11,0xC2,0xE1,0x0F,0x16,0xD3,0xE5,0x01,0x00,0x80,0xE2, + 0x00,0x00,0x51,0xE1,0xEE,0xFF,0xFF,0x8A,0x1E,0xFF,0x2F,0xE1,0x00,0x10,0x10,0x40, + 0x40,0x00,0x00,0x20,0x88,0x42,0x00,0xDA,0x08,0x00,0x70,0x47,0x88,0x42,0x00,0xDA, + 0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00,0x70,0x47,0x10,0xB5,0x02,0x9C,0x88,0x42, + 0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00,0x22,0x00,0x19,0x00,0xFF,0xF7, + 0xED,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47,0xF0,0xB5,0xFF,0xB0,0x00,0x20,0x9A,0xB0, + 0x8D,0x90,0xE2,0x49,0x20,0x22,0x28,0xA8,0xFC,0xF7,0x78,0xFA,0xE0,0x48,0x5C,0x21, + 0x00,0x68,0xFF,0x22,0x0C,0x5A,0x60,0x30,0x85,0x78,0x6A,0x32,0x00,0x21,0x30,0xA8, + 0x00,0xF0,0xAA,0xFF,0xDB,0x48,0x0C,0x22,0x00,0x21,0x00,0xF0,0xA5,0xFF,0xD9,0x48, + 0x18,0x22,0x00,0x21,0x0C,0x30,0x00,0xF0,0x9F,0xFF,0x34,0x22,0x00,0x21,0x1B,0xA8, + 0x00,0xF0,0x9A,0xFF,0x34,0x22,0x00,0x21,0x0E,0xA8,0x00,0xF0,0x95,0xFF,0x34,0x22, + 0x00,0x21,0x01,0xA8,0x00,0xF0,0x90,0xFF,0xCF,0x48,0x01,0x79,0x00,0x29,0x7E,0xD0, + 0xC1,0x88,0x89,0x06,0x02,0xD5,0x61,0x1B,0x0C,0x04,0x24,0x0C,0xCA,0x4D,0x64,0x21, + 0x28,0x89,0x60,0x43,0xFC,0xF7,0x76,0xFA,0xC6,0x49,0x89,0x1D,0x98,0x91,0xE9,0x89, + 0x40,0x18,0x98,0x99,0x00,0x24,0xC8,0x83,0x91,0x94,0x00,0x20,0x92,0x90,0x91,0x98, + 0x0E,0x21,0x48,0x43,0x97,0x90,0x92,0x9A,0x97,0x99,0x98,0x9E,0x8B,0x18,0xBF,0x49, + 0x5D,0x00,0x4A,0x5F,0x1E,0x21,0x71,0x5E,0x00,0x20,0x8A,0x42,0x02,0xDD,0x50,0x1A, + 0x00,0x04,0x00,0x14,0x92,0x9A,0x00,0x2A,0x05,0xD1,0x00,0x28,0x7E,0xD0,0x97,0x98, + 0x30,0xA9,0x08,0x5C,0x0E,0xE0,0xB5,0x4A,0xAD,0x18,0x20,0x3D,0x1E,0x22,0xAA,0x5E, + 0x8A,0x42,0x03,0xDD,0x51,0x1A,0x09,0x04,0x09,0x14,0x6F,0xD1,0x00,0x28,0xED,0xD0, + 0x30,0xA8,0xC0,0x5C,0x00,0x28,0xF8,0xD1,0x92,0x98,0x64,0x1C,0x06,0x04,0x91,0x98, + 0x36,0x14,0x00,0x04,0x00,0x14,0x24,0x04,0x04,0x21,0x24,0x14,0x0C,0x2C,0x90,0x96, + 0x8F,0x90,0x8C,0x90,0x03,0xDD,0x64,0x1E,0x24,0x04,0x24,0x14,0x9F,0xE0,0x00,0x20, + 0x8B,0x90,0x00,0x20,0x8E,0x90,0x8B,0x98,0x09,0x22,0x40,0x1C,0x00,0x04,0x00,0x14, + 0x92,0x01,0x90,0x42,0x8B,0x90,0x49,0xDC,0x00,0x20,0x84,0x46,0x88,0x00,0x28,0xAA, + 0x83,0x18,0x5B,0x88,0x10,0x5A,0x8C,0x9D,0x5B,0x19,0x80,0x19,0x1B,0x04,0x00,0x04, + 0x1B,0x14,0x00,0x14,0x15,0x2B,0x21,0xD2,0x00,0x28,0x1F,0xDB,0x0E,0x28,0x1D,0xDA, + 0x0E,0x22,0x5A,0x43,0x12,0x18,0x96,0x92,0x90,0x4D,0x52,0x00,0x00,0xE0,0x10,0xE1, + 0xAA,0x5E,0x98,0x9D,0x1E,0x27,0xEF,0x5F,0xBA,0x42,0x0F,0xDD,0x96,0x9A,0x30,0xAD, + 0xAA,0x56,0xA2,0x42,0x01,0xD0,0x00,0x2A,0x08,0xD1,0x8F,0x9A,0x93,0x42,0x02,0xD1, + 0x90,0x9A,0x90,0x42,0x0A,0xD0,0x01,0x22,0x8E,0x92,0x07,0xE0,0x49,0x1C,0x62,0x46, + 0x52,0x1C,0x49,0x07,0x49,0x0F,0x08,0x2A,0x94,0x46,0xC7,0xDB,0x8C,0x9A,0x0E,0x25, + 0x6A,0x43,0x92,0x19,0x30,0xAD,0xAF,0x5C,0x00,0x2F,0x35,0xD1,0xAC,0x54,0x7B,0x4D, + 0x52,0x00,0xAA,0x5E,0x98,0x9F,0x1E,0x25,0x7D,0x5F,0x00,0xE0,0x38,0xE0,0xAA,0x42, + 0x03,0xDD,0x52,0x1B,0x12,0x04,0x12,0x0C,0x00,0xE0,0x00,0x22,0x72,0x4F,0x76,0x00, + 0x94,0x46,0xF6,0x19,0x36,0x8C,0x67,0x46,0xA2,0x00,0x7E,0x43,0x1B,0xAD,0xAD,0x58, + 0x6D,0x4F,0xAD,0x19,0x1B,0xAE,0xB5,0x50,0x8C,0x9E,0x0E,0xAD,0x76,0x00,0xF6,0x19, + 0x40,0x36,0xB6,0x8A,0x67,0x46,0xAD,0x58,0x7E,0x43,0xAD,0x19,0x0E,0xAE,0xB5,0x50, + 0x01,0xAD,0xAE,0x58,0x66,0x44,0xAE,0x50,0x63,0x4D,0x62,0x00,0x52,0x19,0xFF,0x32, + 0xA1,0x32,0xD5,0x88,0x6D,0x1C,0xD5,0x80,0x8E,0x9A,0x00,0x2A,0x08,0xD0,0x1A,0x06, + 0x12,0x0E,0x06,0x06,0x49,0x1D,0x36,0x0E,0x49,0x07,0x49,0x0F,0x8C,0x92,0x70,0xE7, + 0x92,0x98,0x40,0x1C,0x0E,0x28,0x92,0x90,0x00,0xDA,0x2C,0xE7,0x8D,0x98,0x00,0x28, + 0x05,0xD1,0x91,0x98,0x40,0x1C,0x15,0x28,0x91,0x90,0x00,0xDA,0x1D,0xE7,0x00,0x2C, + 0x70,0xDD,0x00,0x20,0x84,0x46,0x00,0x22,0x0E,0x21,0x60,0x46,0x48,0x43,0x95,0x90, + 0x95,0x99,0x98,0x9E,0x4D,0x4D,0x89,0x18,0x1E,0x23,0xF3,0x5E,0x4F,0x00,0x7E,0x19, + 0x02,0x25,0x75,0x5F,0x00,0x20,0x9D,0x42,0x02,0xDD,0xE8,0x1A,0x00,0x04,0x00,0x14, + 0x30,0xAD,0x6B,0x56,0x49,0x19,0x94,0x91,0x4D,0x78,0x00,0x2D,0x26,0xD1,0x00,0x28, + 0x24,0xD0,0x00,0x2B,0x22,0xD0,0x40,0x4F,0x56,0x00,0xF6,0x19,0x76,0x8C,0x99,0x00, + 0x1B,0xAD,0x46,0x43,0x6D,0x58,0xAD,0x19,0x1B,0xAE,0x75,0x50,0x66,0x46,0x76,0x00, + 0xF6,0x19,0x40,0x36,0xB6,0x8A,0x0E,0xAD,0x6D,0x58,0x46,0x43,0xAD,0x19,0x0E,0xAE, + 0x75,0x50,0x01,0xAD,0x6E,0x58,0x30,0x18,0x68,0x50,0x58,0x00,0xC0,0x19,0xFF,0x30, + 0xA1,0x30,0xC1,0x88,0x49,0x1C,0xC1,0x80,0x94,0x98,0x43,0x70,0x52,0x1C,0x0E,0x2A, + 0xBE,0xDB,0x60,0x46,0x40,0x1C,0x15,0x28,0x84,0x46,0xB4,0xDB,0x01,0x25,0x1F,0xE0, + 0xAF,0x00,0x01,0xA9,0xCE,0x59,0x01,0x20,0x00,0x2E,0x00,0xD0,0x30,0x00,0x01,0x00, + 0x1B,0xA8,0xC0,0x59,0xFC,0xF7,0x5E,0xFA,0x23,0x49,0x6A,0x00,0x51,0x18,0x93,0x91, + 0xFF,0x31,0x61,0x31,0x48,0x81,0x01,0x21,0x00,0x2E,0x00,0xD0,0x31,0x00,0x0E,0xA8, + 0xC0,0x59,0xFC,0xF7,0x4F,0xFA,0x93,0x99,0xFF,0x31,0x81,0x31,0x6D,0x1C,0x48,0x80, + 0xA5,0x42,0xDD,0xDD,0x18,0x4B,0x18,0x79,0x21,0xE0,0x81,0x00,0xC9,0x18,0xFF,0x31, + 0x21,0x31,0x06,0x24,0x0C,0x5F,0x04,0x22,0x8A,0x5E,0x0E,0x21,0x4C,0x43,0xA1,0x18, + 0x30,0xAA,0x51,0x5C,0x1A,0x18,0x14,0x00,0xFF,0x32,0x81,0x32,0x51,0x76,0x51,0x7E, + 0xFF,0x22,0x59,0x32,0x49,0x00,0xC9,0x18,0xFF,0x31,0xA1,0x31,0xC9,0x88,0x09,0x06, + 0x09,0x0E,0x11,0x55,0x9A,0x8B,0x91,0x42,0x00,0xD9,0x99,0x83,0x40,0x1E,0x01,0x28, + 0xDB,0xDA,0x7F,0xB0,0x1A,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xAC,0x72,0x00,0x00, + 0xD4,0x07,0x00,0x20,0xDA,0x01,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10, + 0xF0,0xB5,0x00,0x20,0xEF,0xB0,0x0C,0x90,0x01,0x00,0x0B,0x90,0x08,0x90,0x02,0x90, + 0x2E,0x22,0x15,0xA8,0x00,0xF0,0xE0,0xFD,0xFE,0x48,0xFF,0x4E,0x00,0x21,0x30,0x81, + 0xFE,0x48,0xB1,0x81,0x41,0x81,0xFE,0x48,0xFF,0x4B,0x6E,0x90,0x42,0x7A,0xFD,0x48, + 0x02,0x2A,0x02,0xD9,0x1A,0x68,0x52,0x8C,0x0F,0xE0,0x02,0x2A,0x05,0xD1,0x1A,0x68, + 0xC4,0x88,0x12,0x8C,0x12,0x19,0x0A,0x92,0x0E,0xE0,0xF8,0x4A,0x12,0x78,0x00,0x2A, + 0x05,0xD0,0xF7,0x4A,0x84,0x88,0x92,0x89,0x12,0x19,0x0A,0x92,0x04,0xE0,0x1A,0x68, + 0x84,0x88,0xD2,0x8B,0x12,0x19,0x0A,0x92,0xF2,0x4A,0x0A,0x9C,0x6D,0x92,0x12,0x89, + 0x14,0x19,0x0E,0x22,0xB2,0x5E,0x07,0x92,0x1D,0x68,0x00,0x89,0x40,0x35,0x6A,0x89, + 0x09,0x94,0x17,0x18,0xA7,0x42,0x00,0xD2,0x3C,0x00,0xEB,0x48,0x6C,0x90,0x80,0x7B, + 0xC2,0x07,0x05,0xD0,0x80,0x07,0x01,0xD5,0x01,0x20,0x00,0xE0,0x02,0x20,0x02,0x90, + 0xE6,0x49,0x00,0x20,0x6B,0x91,0x88,0x83,0x70,0x89,0xA9,0x7B,0x48,0x43,0x02,0xF0, + 0x59,0xFE,0x08,0x04,0x6B,0x99,0x00,0x14,0xC8,0x83,0xA9,0x89,0x88,0x42,0x02,0xDA, + 0xA9,0x89,0x6B,0x98,0xC1,0x83,0x00,0x20,0x5C,0x90,0x20,0x04,0x00,0x14,0x6A,0x90, + 0x38,0x04,0x00,0x14,0x69,0x90,0x09,0x98,0x00,0x04,0x00,0x14,0x68,0x90,0xD8,0x48, + 0x67,0x90,0x5C,0x98,0x0E,0x21,0x48,0x43,0x66,0x90,0x5C,0x98,0xCA,0x49,0x40,0x00, + 0x00,0x24,0x40,0x18,0x40,0x30,0x65,0x90,0x66,0x98,0xD2,0x49,0x00,0x19,0x00,0x04, + 0x00,0x14,0x6B,0x9A,0x84,0x46,0x40,0x00,0x1E,0x23,0x09,0x5E,0xD3,0x5E,0x99,0x42, + 0x02,0xDD,0x91,0x8B,0x49,0x1C,0x91,0x83,0xCB,0x49,0x08,0x5E,0x6A,0x99,0x88,0x42, + 0x64,0x90,0x00,0xDA,0xE7,0xE3,0x5C,0x99,0x00,0x20,0x00,0x29,0x25,0xDD,0x61,0x46, + 0x0E,0x39,0xC8,0x10,0x4D,0x07,0x01,0x23,0x15,0xAA,0x10,0x5C,0x6D,0x0F,0x19,0x00, + 0xA9,0x40,0x08,0x40,0x00,0x2C,0x0B,0xDD,0x61,0x46,0x0F,0x39,0xCD,0x10,0x4E,0x07, + 0x55,0x5D,0x76,0x0F,0x19,0x00,0xB1,0x40,0x0D,0x40,0x28,0x18,0x00,0x06,0x00,0x0E, + 0x0D,0x2C,0x0C,0xDA,0x61,0x46,0x0D,0x39,0xCD,0x10,0x49,0x07,0x52,0x5D,0x49,0x0F, + 0x8B,0x40,0x1A,0x40,0x10,0x18,0x00,0x06,0x00,0x0E,0x00,0x2C,0x0C,0xDD,0x61,0x46, + 0x49,0x1E,0xCA,0x10,0x15,0xAB,0x9A,0x5C,0x4B,0x07,0x5B,0x0F,0x01,0x21,0x99,0x40, + 0x0A,0x40,0x10,0x18,0x00,0x06,0x00,0x0E,0x00,0x28,0x00,0xD0,0xAB,0xE3,0xAB,0x48, + 0x00,0x7D,0x80,0x07,0x09,0xD5,0x0D,0x2C,0x07,0xD1,0x5C,0x98,0x14,0x28,0x04,0xDB, + 0xA7,0x48,0x00,0x78,0x01,0x28,0x00,0xD1,0x9D,0xE3,0x00,0x23,0x1D,0x00,0x5C,0x99, + 0x0E,0x22,0x4E,0x19,0x71,0x1E,0x51,0x43,0x00,0x20,0x0F,0x00,0x21,0x18,0x72,0x1E, + 0x49,0x1E,0x00,0x2A,0x0C,0xDB,0x15,0x2A,0x0A,0xDC,0x00,0x29,0x08,0xDB,0x0E,0x29, + 0x06,0xDC,0x99,0x4A,0x79,0x18,0x49,0x00,0x51,0x5E,0x99,0x42,0x00,0xDD,0x0B,0x00, + 0x40,0x1C,0x00,0x04,0x00,0x14,0x03,0x28,0xE8,0xDB,0x6D,0x1C,0x2D,0x04,0x2D,0x14, + 0x03,0x2D,0xDC,0xDB,0x64,0x9A,0x18,0x04,0x00,0x14,0x82,0x42,0x00,0xD0,0x72,0xE3, + 0x81,0x4A,0x92,0x89,0x82,0x42,0x06,0xDC,0x7F,0x4A,0x90,0x81,0x10,0x79,0x40,0x1C, + 0x00,0x06,0x00,0x0E,0x0C,0x90,0x60,0x46,0x63,0x46,0xC0,0x10,0x5E,0x07,0x15,0xAD, + 0x2A,0x5C,0x76,0x0F,0x01,0x23,0xB3,0x40,0x1A,0x43,0x2A,0x54,0x00,0x20,0x01,0x90, + 0x02,0x98,0xC0,0x07,0x0A,0xD0,0x0D,0x2C,0x01,0xD1,0x0D,0x20,0x09,0xE0,0x0C,0x2C, + 0x10,0xD1,0x01,0x98,0x22,0x04,0x10,0x43,0x01,0x90,0x0B,0xE0,0x5C,0x98,0x14,0x28, + 0x01,0xD1,0x01,0x90,0x06,0xE0,0x13,0x28,0x04,0xD1,0x01,0x98,0x13,0x22,0x12,0x04, + 0x10,0x43,0x01,0x90,0x01,0x98,0x00,0x04,0x64,0x98,0x04,0xD0,0x69,0x9A,0x90,0x42, + 0x00,0xDA,0x38,0xE3,0x03,0xE0,0x68,0x9A,0x90,0x42,0x00,0xDA,0x33,0xE3,0x66,0x48, + 0x00,0x25,0x00,0x68,0x63,0x90,0x5C,0x99,0x0E,0x22,0x49,0x19,0x89,0x1E,0x09,0x06, + 0x09,0x16,0x62,0x91,0x51,0x43,0x8C,0x46,0x29,0x00,0x14,0x23,0x59,0x43,0x2A,0xAA, + 0x8F,0x18,0x00,0x20,0x43,0xAA,0x8B,0x18,0x21,0x18,0x89,0x1E,0x62,0x9A,0x09,0x06, + 0x09,0x16,0x15,0x2A,0x03,0xD2,0x00,0x29,0x01,0xDB,0x0E,0x29,0x03,0xDB,0x00,0x21, + 0x82,0x00,0x99,0x50,0x33,0xE0,0x63,0x9A,0x12,0x88,0x52,0x04,0x62,0x46,0x08,0xD5, + 0x59,0x4E,0x52,0x18,0x52,0x00,0xB2,0x5E,0x07,0x9E,0x92,0x1B,0x86,0x00,0x9A,0x51, + 0x07,0xE0,0x54,0x4E,0x52,0x18,0x52,0x00,0xB2,0x5E,0x07,0x9E,0x92,0x1B,0x86,0x00, + 0x9A,0x51,0x82,0x00,0x9E,0x58,0x00,0x2E,0x01,0xDA,0x00,0x26,0x9E,0x50,0x63,0x9E, + 0x36,0x88,0x36,0x04,0x66,0x46,0x07,0xD5,0x71,0x18,0x4B,0x4E,0x49,0x00,0x71,0x5E, + 0x07,0x9E,0x89,0x1B,0xB9,0x50,0x06,0xE0,0x71,0x18,0x46,0x4E,0x49,0x00,0x71,0x5E, + 0x07,0x9E,0x89,0x1B,0xB9,0x50,0x00,0x29,0x01,0xDA,0x00,0x21,0xB9,0x50,0x40,0x1C, + 0x00,0x04,0x00,0x14,0x05,0x28,0xB7,0xDB,0x6D,0x1C,0x2D,0x04,0x2D,0x14,0x05,0x2D, + 0xA1,0xDB,0x40,0x48,0x00,0x78,0x00,0x28,0x24,0xD1,0x5C,0x98,0x13,0x28,0x34,0xDB, + 0x00,0x2C,0x01,0xD0,0x0C,0x2C,0x1D,0xD1,0x3B,0x48,0x00,0x68,0x64,0x28,0x06,0xD3, + 0x3A,0x49,0x09,0x68,0x64,0x29,0x02,0xD3,0x4F,0x99,0xFA,0x29,0x72,0xDB,0x00,0x2C, + 0x01,0xD0,0x0C,0x2C,0x0E,0xD1,0x64,0x28,0x0C,0xD3,0x34,0x48,0x00,0x68,0x64,0x28, + 0x08,0xD3,0x33,0x48,0x00,0x68,0x64,0x28,0x04,0xD3,0x4F,0x98,0xFF,0x21,0xF5,0x31, + 0x88,0x42,0x5F,0xDB,0x5C,0x98,0x14,0x28,0x0F,0xD1,0x04,0x25,0x43,0xAF,0x14,0x20, + 0x68,0x43,0xC6,0x19,0xB0,0x68,0xFF,0x21,0x2D,0x31,0x48,0x43,0x02,0xF0,0xB2,0xFC, + 0x6D,0x1E,0x2D,0x04,0x2D,0x14,0xB1,0x60,0xF1,0xD5,0x12,0x22,0x00,0x21,0x21,0xA8, + 0x00,0xF0,0x02,0xFC,0x30,0x98,0x14,0x49,0x21,0x90,0x31,0x98,0x22,0x90,0x32,0x98, + 0x23,0x90,0x35,0x98,0x24,0x90,0x37,0x98,0x26,0x90,0x3A,0x98,0x27,0x90,0x3B,0x98, + 0x28,0x90,0x3C,0x98,0x29,0x90,0x09,0x68,0x36,0x98,0x89,0x8B,0x48,0x43,0x02,0xF0, + 0x91,0xFC,0x00,0x23,0x18,0x00,0x03,0x25,0x43,0xAF,0x25,0x91,0x03,0x21,0x14,0x22, + 0x6A,0x43,0x28,0xE0,0xFF,0x0F,0x00,0x00,0x40,0x00,0x00,0x20,0x20,0x01,0x00,0x20, + 0x00,0x02,0x00,0x20,0x00,0x07,0x00,0x20,0xD4,0x07,0x00,0x20,0x19,0x07,0x00,0x20, + 0xA0,0x95,0x00,0x00,0xA0,0x01,0x00,0x20,0x40,0x06,0x00,0x20,0x20,0x06,0x00,0x20, + 0x80,0x00,0x00,0x20,0x00,0x00,0x00,0x10,0xDA,0x07,0x00,0x20,0x00,0x93,0x00,0x00, + 0x50,0x07,0x00,0x20,0x1A,0x07,0x00,0x20,0x44,0x07,0x00,0x20,0x48,0x07,0x00,0x20, + 0x4C,0x07,0x00,0x20,0xAB,0xE0,0xD6,0x19,0x8A,0x00,0xB2,0x58,0x9A,0x42,0x01,0xDA, + 0x13,0x04,0x1B,0x0C,0x10,0x18,0x49,0x1E,0x00,0x04,0x09,0x04,0x00,0x0C,0x09,0x14, + 0x01,0x29,0xF1,0xDA,0x6D,0x1E,0x2D,0x04,0x2D,0x14,0x01,0x2D,0xBE,0xDA,0xFF,0x49, + 0xFF,0x22,0x41,0x43,0xC9,0x0C,0x2D,0x32,0x91,0x42,0x03,0xD3,0xFC,0x4B,0x03,0x22, + 0x1A,0x70,0x0A,0xE0,0xC8,0x29,0x03,0xD3,0xF9,0x4B,0x02,0x22,0x1A,0x70,0x04,0xE0, + 0x64,0x29,0x02,0xD3,0xF6,0x4B,0x01,0x22,0x1A,0x70,0xF6,0x4A,0xD2,0x88,0x52,0x06, + 0x03,0xD5,0xF3,0x4A,0x00,0x21,0x11,0x70,0x0F,0xE0,0xF1,0x4A,0x12,0x78,0x03,0x2A, + 0x02,0xD1,0xC8,0x29,0x73,0xD3,0x08,0xE0,0x02,0x2A,0x02,0xD1,0x64,0x29,0x6E,0xD3, + 0x03,0xE0,0x01,0x2A,0x01,0xD1,0x32,0x29,0x69,0xD3,0x5C,0x99,0x07,0x29,0x01,0xDD, + 0x11,0x29,0x06,0xDB,0x50,0x25,0x32,0x21,0x2E,0x00,0x2A,0x00,0x04,0x95,0x05,0x91, + 0x05,0xE0,0x64,0x21,0x0D,0x00,0x0E,0x00,0x0A,0x00,0x05,0x91,0x04,0x91,0x03,0x92, + 0x7D,0x22,0x12,0x01,0x90,0x42,0x7C,0xD2,0x48,0x43,0x02,0xF0,0x03,0xFC,0x0F,0x04, + 0x05,0x99,0x4F,0x98,0x3F,0x0C,0x48,0x43,0x02,0xF0,0xFC,0xFB,0x4F,0x91,0x4A,0x98, + 0x68,0x43,0x02,0xF0,0xF7,0xFB,0x4A,0x91,0x54,0x98,0x70,0x43,0x02,0xF0,0xF2,0xFB, + 0x54,0x91,0x45,0x98,0x1E,0x21,0x48,0x43,0x02,0xF0,0xEC,0xFB,0x45,0x91,0x59,0x98, + 0x1E,0x21,0x48,0x43,0x02,0xF0,0xE6,0xFB,0x4E,0x98,0x59,0x91,0xB8,0x42,0x01,0xDB, + 0x06,0x98,0x06,0xE0,0x04,0x99,0x48,0x43,0x02,0xF0,0xDC,0xFB,0x08,0x04,0x00,0x0C, + 0x06,0x90,0xB8,0x42,0x00,0xD2,0x4E,0x90,0x50,0x98,0xB8,0x42,0x01,0xDB,0x06,0x98, + 0x06,0xE0,0x04,0x99,0x48,0x43,0x02,0xF0,0xCD,0xFB,0x08,0x04,0x00,0x0C,0x06,0x90, + 0xB8,0x42,0x00,0xD2,0x50,0x90,0x49,0x98,0xB8,0x42,0x01,0xDB,0x06,0x98,0x06,0xE0, + 0x03,0x99,0x48,0x43,0x02,0xF0,0xBE,0xFB,0x08,0x04,0x00,0x0C,0x06,0x90,0xB8,0x42, + 0x00,0xD2,0x49,0x90,0x4B,0x98,0xB8,0x42,0x02,0xDB,0x06,0x98,0x07,0xE0,0x9A,0xE1, + 0x03,0x99,0x48,0x43,0x02,0xF0,0xAE,0xFB,0x08,0x04,0x00,0x0C,0x06,0x90,0xB8,0x42, + 0x00,0xD2,0x4B,0x90,0x53,0x98,0xB8,0x42,0x01,0xDB,0x06,0x98,0x06,0xE0,0x03,0x99, + 0x48,0x43,0x02,0xF0,0x9F,0xFB,0x08,0x04,0x00,0x0C,0x06,0x90,0xB8,0x42,0x00,0xD2, + 0x53,0x90,0x55,0x98,0xB8,0x42,0x02,0xDB,0x06,0x98,0x07,0xE0,0x09,0xE0,0x03,0x99, + 0x48,0x43,0x02,0xF0,0x8F,0xFB,0x08,0x04,0x00,0x0C,0x06,0x90,0xB8,0x42,0x00,0xD2, + 0x55,0x90,0x01,0x98,0x00,0x28,0x2B,0xD0,0x02,0x98,0xC0,0x07,0x15,0xD0,0x04,0x20, + 0x00,0x23,0x43,0xAA,0x01,0x99,0x09,0x04,0x05,0xD0,0x14,0x21,0x41,0x43,0x53,0x50, + 0x89,0x18,0x4B,0x60,0x04,0xE0,0x14,0x21,0x41,0x43,0x89,0x18,0xCB,0x60,0x0B,0x61, + 0x40,0x1E,0x00,0x04,0x00,0x14,0xED,0xD5,0x12,0xE0,0x04,0x20,0x00,0x22,0x43,0xAB, + 0x01,0x99,0x09,0x04,0x04,0xD0,0x81,0x00,0x5A,0x50,0xC9,0x18,0x4A,0x61,0x03,0xE0, + 0x81,0x00,0xC9,0x18,0xCA,0x63,0x0A,0x65,0x40,0x1E,0x00,0x04,0x00,0x14,0xEF,0xD5, + 0x00,0x23,0x1D,0x00,0x5C,0x99,0x00,0x20,0x4E,0x19,0x77,0x1E,0x0E,0x21,0x4F,0x43, + 0x21,0x18,0x72,0x1E,0x49,0x1E,0x00,0x2A,0x0C,0xDB,0x15,0x2A,0x0A,0xDC,0x00,0x29, + 0x08,0xDB,0x0E,0x29,0x06,0xDC,0x80,0x4A,0x79,0x18,0x49,0x00,0x51,0x5E,0x99,0x42, + 0x00,0xDD,0x0B,0x00,0x40,0x1C,0x00,0x04,0x00,0x14,0x03,0x28,0xE8,0xDB,0x6D,0x1C, + 0x2D,0x04,0x2D,0x14,0x03,0x2D,0xDD,0xDB,0x76,0x49,0x18,0x04,0x0A,0x89,0x00,0x14, + 0x82,0x42,0x00,0xDD,0x08,0x81,0x4A,0x89,0x82,0x42,0x00,0xDA,0x48,0x81,0x71,0x49, + 0x08,0x79,0x40,0x1C,0x00,0x06,0x00,0x0E,0x08,0x71,0x80,0x00,0x40,0x18,0xFF,0x30, + 0x21,0x30,0x84,0x80,0x08,0x79,0x5C,0x9A,0x80,0x00,0x40,0x18,0xFF,0x30,0x21,0x30, + 0xC2,0x80,0x24,0xA8,0x05,0xC8,0x00,0x21,0x90,0x42,0x05,0xDC,0x21,0x98,0x90,0x42, + 0x02,0xDC,0x27,0x98,0x90,0x42,0x00,0xDD,0xC0,0x21,0x26,0x98,0x90,0x42,0x05,0xDC, + 0x23,0x98,0x90,0x42,0x02,0xDC,0x29,0x98,0x90,0x42,0x01,0xDD,0x30,0x20,0x01,0x43, + 0x22,0x98,0x90,0x42,0x05,0xDC,0x21,0x98,0x90,0x42,0x02,0xDC,0x23,0x98,0x90,0x42, + 0x01,0xDD,0x0C,0x20,0x01,0x43,0x28,0x98,0x90,0x42,0x05,0xDC,0x27,0x98,0x90,0x42, + 0x02,0xDC,0x29,0x98,0x90,0x42,0x01,0xDD,0x03,0x20,0x01,0x43,0x04,0x20,0x8E,0x06, + 0x0F,0x07,0x43,0xAD,0x8A,0x09,0x02,0xD1,0x14,0x23,0x43,0x43,0xEA,0x50,0xB2,0x0F, + 0x03,0xD1,0x14,0x23,0x43,0x43,0x5B,0x19,0x1A,0x61,0xBA,0x0F,0x01,0xD1,0x83,0x00, + 0xEA,0x50,0x8A,0x07,0x02,0xD1,0x83,0x00,0x5B,0x19,0x1A,0x65,0x40,0x1E,0x00,0x04, + 0x00,0x14,0xE7,0xD5,0x47,0x9A,0x43,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xF3,0xF9, + 0x4C,0x9A,0x13,0x90,0x48,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xEC,0xF9,0x51,0x9A, + 0x12,0x90,0x4D,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xE5,0xF9,0x56,0x9A,0x11,0x90, + 0x52,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xDE,0xF9,0x10,0x90,0x5B,0x9A,0x57,0xA8, + 0x00,0x92,0x0F,0xC8,0x01,0xF0,0xD7,0xF9,0x0F,0x90,0x00,0x90,0x10,0x9B,0x11,0x9A, + 0x12,0x99,0x13,0x98,0x01,0xF0,0xCF,0xF9,0x00,0x28,0x14,0x90,0x08,0xD1,0x64,0x22, + 0x00,0x21,0x43,0xA8,0x00,0xF0,0xF8,0xF9,0x0A,0x20,0x11,0x90,0x4F,0x90,0x14,0x90, + 0x57,0x9A,0x52,0x9B,0x00,0x92,0x4D,0x9A,0x48,0x99,0x43,0x98,0x01,0xF0,0xBB,0xF9, + 0x24,0x4A,0x61,0x00,0x8D,0x18,0xE9,0x8B,0x58,0x9A,0x53,0x9B,0x48,0x43,0x0E,0x90, + 0x00,0x92,0x4E,0x9A,0x49,0x99,0x44,0x98,0x01,0xF0,0xAD,0xF9,0x29,0x8C,0x59,0x9A, + 0x54,0x9B,0x48,0x43,0x0D,0x90,0x00,0x92,0x4F,0x9A,0x4A,0x99,0x45,0x98,0x01,0xF0, + 0xA2,0xF9,0x69,0x8C,0x5A,0x9A,0x48,0x43,0x00,0x92,0x07,0x00,0x55,0x9B,0x50,0x9A, + 0x4B,0x99,0x46,0x98,0x01,0xF0,0x97,0xF9,0xA9,0x8C,0x03,0x00,0x5B,0x9A,0x4B,0x43, + 0x1E,0x00,0x00,0x92,0x56,0x9B,0x51,0x9A,0x4C,0x99,0x47,0x98,0x01,0xF0,0x8B,0xF9, + 0xE9,0x8C,0x33,0x00,0x3A,0x00,0x48,0x43,0x00,0x90,0x0D,0x99,0x0E,0x98,0x01,0xF0, + 0x82,0xF9,0x14,0x99,0xFB,0xF7,0xA6,0xFC,0x06,0x49,0x09,0x8C,0x49,0x00,0x40,0x1A, + 0x00,0xD5,0x00,0x20,0x03,0x4F,0x3A,0x79,0x52,0x00,0x07,0xE0,0x8F,0xE3,0x00,0x00, + 0x0F,0x07,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10,0xD1,0x19,0xE0,0x31, + 0x88,0x82,0x65,0x98,0x13,0x99,0x40,0x8A,0x12,0x9A,0x0F,0x9E,0x48,0x43,0x65,0x99, + 0x89,0x8A,0x51,0x43,0x65,0x9A,0xD5,0x8A,0x11,0x9A,0x55,0x43,0x65,0x9A,0x13,0x8B, + 0x10,0x9A,0x53,0x43,0x65,0x9A,0x52,0x8B,0x72,0x43,0x00,0x92,0x2A,0x00,0x01,0xF0, + 0x52,0xF9,0x14,0x99,0xFB,0xF7,0x76,0xFC,0x67,0x99,0x89,0x8A,0x49,0x00,0x40,0x1A, + 0x00,0xD5,0x00,0x20,0x3A,0x79,0x52,0x00,0xD2,0x19,0xFF,0x32,0x01,0x32,0xD0,0x81, + 0x38,0x79,0x0C,0x28,0x12,0xD2,0x64,0x1C,0x24,0x04,0x24,0x14,0x0E,0x2C,0x01,0xDA, + 0xFF,0xF7,0xFA,0xFB,0x0B,0x98,0x00,0x28,0x08,0xD1,0x5C,0x98,0x40,0x1C,0x00,0x04, + 0x00,0x14,0x15,0x28,0x5C,0x90,0x01,0xDA,0xFF,0xF7,0xE3,0xFB,0x86,0x48,0x04,0x68, + 0x20,0x88,0x00,0x06,0x4C,0xD5,0x85,0x4A,0x10,0x79,0x00,0x28,0x6D,0x98,0x0C,0xD1, + 0x00,0x89,0x00,0x28,0x3D,0xD0,0x6D,0x98,0x20,0x34,0x40,0x79,0x21,0x7F,0x88,0x42, + 0x37,0xD2,0x6D,0x99,0x40,0x1C,0x48,0x71,0x3A,0xE0,0x25,0x00,0x20,0x35,0x80,0x79, + 0x29,0x7D,0x88,0x42,0x29,0xD8,0x40,0x1C,0x6D,0x99,0x00,0x06,0x00,0x0E,0x88,0x71, + 0x69,0x7D,0x81,0x42,0x03,0xD2,0x92,0x89,0x08,0x9B,0xD2,0x18,0x08,0x92,0x2A,0x7D, + 0x90,0x42,0x1A,0xD1,0x88,0x42,0x18,0xD0,0x41,0x1A,0x08,0x98,0xFB,0xF7,0x52,0xFD, + 0x6D,0x99,0x00,0x22,0x0A,0x81,0x21,0x8F,0x81,0x42,0x0E,0xD2,0x0A,0x99,0x40,0x1A, + 0xA9,0x7D,0x48,0x43,0x02,0xF0,0xE6,0xF9,0x6D,0x98,0x09,0x04,0x09,0x0C,0x01,0x81, + 0x60,0x8F,0x81,0x42,0x01,0xD9,0x6D,0x99,0x08,0x81,0x6D,0x99,0x00,0x20,0x48,0x71, + 0x06,0xE0,0x6D,0x99,0x00,0x20,0x88,0x71,0x6D,0x99,0x48,0x71,0x6D,0x99,0x08,0x81, + 0x5E,0x48,0x00,0x26,0x00,0x79,0x01,0x22,0xB4,0x46,0x01,0x28,0x61,0x90,0x4E,0xDB, + 0x6C,0x98,0xC0,0x7B,0x60,0x90,0x59,0x49,0x50,0x00,0x40,0x18,0xF4,0x23,0x1B,0x5A, + 0x57,0x4C,0xFF,0x30,0x63,0x43,0x01,0x30,0xC0,0x89,0xDC,0x0C,0x54,0x4B,0x58,0x43, + 0xC5,0x0C,0x60,0x9B,0x00,0x20,0x00,0x2B,0x84,0x46,0x32,0xDD,0x13,0x06,0x1B,0x0E, + 0x5F,0x93,0x4E,0x4B,0x91,0x00,0xCB,0x18,0xFF,0x33,0x21,0x33,0x4B,0x4F,0xC1,0x00, + 0xC9,0x19,0x03,0x27,0x7F,0x02,0xC9,0x19,0x10,0x27,0xCF,0x5F,0xA7,0x42,0x1A,0xDC, + 0x14,0x27,0xCF,0x5F,0xA7,0x42,0x16,0xDB,0x12,0x27,0xCF,0x5F,0xAF,0x42,0x12,0xDC, + 0x16,0x27,0xCF,0x5F,0xAF,0x42,0x0E,0xDB,0x06,0x21,0x59,0x5E,0x0E,0x27,0x79,0x43, + 0x04,0x27,0xDF,0x5F,0xC9,0x19,0x3F,0x4F,0x49,0x00,0x79,0x5E,0xB1,0x42,0x02,0xDD, + 0x0E,0x00,0x5F,0x99,0x8C,0x46,0x40,0x1C,0x60,0x99,0x00,0x04,0x00,0x14,0x81,0x42, + 0xD4,0xDC,0x52,0x1C,0x61,0x98,0x12,0x04,0x12,0x14,0x90,0x42,0xB3,0xDA,0x33,0x4D, + 0x2F,0x00,0x3B,0x00,0xBF,0x1C,0xF4,0x33,0x3C,0x00,0x68,0x89,0x19,0x00,0x1A,0x31, + 0xFF,0x37,0xE0,0x34,0x01,0x37,0xB0,0x42,0x5E,0x91,0x1A,0xDC,0x60,0x46,0x00,0x28, + 0x17,0xD0,0x40,0x00,0x40,0x19,0xF4,0x21,0x09,0x5A,0xFF,0x30,0x01,0x30,0x5D,0x91, + 0xC6,0x89,0x1A,0x22,0x00,0x21,0x18,0x00,0x00,0xF0,0x96,0xF8,0x5E,0x98,0x1A,0x22, + 0x00,0x21,0x00,0xF0,0x91,0xF8,0x01,0x20,0x28,0x71,0x5D,0x99,0xA1,0x82,0xFE,0x81, + 0x23,0xE0,0x68,0x79,0x00,0x28,0x20,0xD1,0x61,0x98,0x01,0x28,0x1D,0xD9,0x6E,0x98, + 0x80,0x7A,0x00,0x28,0x19,0xD1,0x0C,0x98,0x00,0x28,0x16,0xD0,0x41,0x00,0x48,0x19, + 0xF4,0x21,0x09,0x5A,0xFF,0x30,0x01,0x30,0x5D,0x91,0xC6,0x89,0x1A,0x22,0x00,0x21, + 0x18,0x00,0x00,0xF0,0x71,0xF8,0x5E,0x98,0x1A,0x22,0x00,0x21,0x00,0xF0,0x6C,0xF8, + 0x01,0x20,0x28,0x71,0x5D,0x99,0xA1,0x82,0xFE,0x81,0x6C,0x98,0xC0,0x7A,0x00,0x28, + 0x0C,0xD0,0x00,0x21,0x29,0x71,0x6C,0x98,0x0B,0x4A,0x00,0x7B,0x92,0x7F,0x90,0x42, + 0x01,0xD3,0x6C,0x9A,0xD1,0x72,0x6C,0x99,0x40,0x1C,0x08,0x73,0x28,0x79,0x68,0x71, + 0x6F,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xD4,0x07,0x00,0x20,0x40,0x00,0x00,0x20, + 0xCD,0xCC,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x93,0x00,0x00,0x78,0x47,0xC0,0x46, + 0x41,0x11,0xA0,0xE1,0x01,0x10,0x51,0xE2,0x1E,0xFF,0x2F,0x31,0x00,0x20,0xA0,0xE3, + 0x01,0x10,0x51,0xE2,0x04,0x20,0x80,0xE4,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1, + 0x78,0x47,0xC0,0x46,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0x01,0x30,0xD1,0xE4, + 0x01,0x20,0x52,0xE2,0x01,0x30,0xC0,0xE4,0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1, + 0x78,0x47,0xC0,0x46,0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0xB2,0x30,0xD1,0xE0,0x01,0x20,0x52,0xE2,0xB2,0x30,0xC0,0xE0,0xFB,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x42,0x21,0xA0,0xE1,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0x04,0x30,0x91,0xE4,0x01,0x20,0x52,0xE2,0x04,0x30,0x80,0xE4, + 0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0xFF,0x10,0x01,0xE2,0x01,0x20,0x52,0xE2,0x01,0x10,0xC0,0xE4, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x42,0x21,0xA0,0xE1, + 0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0x01,0x20,0x52,0xE2,0x04,0x10,0x80,0xE4, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x10,0xB5,0x0F,0x48,0x0F,0x49,0x00,0x89, + 0x49,0x88,0x00,0x24,0x40,0x18,0x0E,0x49,0x09,0x78,0x00,0x29,0x02,0xD0,0x0D,0x49, + 0x49,0x89,0x02,0xE0,0x0C,0x49,0x09,0x68,0x49,0x88,0x08,0x18,0x0B,0x49,0xC9,0x6B, + 0x49,0x04,0x49,0x0C,0x81,0x42,0x00,0xD3,0x01,0x24,0xFE,0xF7,0xAD,0xFF,0x20,0x00, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x01,0x00,0x20,0x00,0x07,0x00,0x20, + 0x19,0x07,0x00,0x20,0xA0,0x95,0x00,0x00,0xD4,0x07,0x00,0x20,0xC0,0x90,0x00,0x40, + 0xF7,0xB5,0x24,0x4E,0x82,0xB0,0xB0,0x7F,0xF1,0x7F,0x00,0x02,0x08,0x43,0x01,0xF0, + 0x3B,0xFD,0x30,0x00,0x20,0x38,0x00,0x7D,0xC0,0x07,0x0A,0xD0,0x1E,0x48,0x01,0x78, + 0x1E,0x48,0x00,0x7F,0x00,0x29,0x02,0xD0,0x01,0xF0,0xDE,0xFC,0x01,0xE0,0x01,0xF0, + 0x03,0xFD,0x18,0x49,0x01,0x25,0x20,0x39,0x08,0x00,0xC0,0x30,0x01,0x90,0x05,0x20, + 0xC0,0x01,0x17,0x4F,0x08,0x18,0x00,0x90,0x00,0x20,0xF8,0x62,0x01,0x98,0x80,0x68, + 0x38,0x62,0x00,0x98,0x00,0x6B,0x78,0x62,0x03,0x24,0xE0,0x07,0xC0,0x0F,0xFC,0xF7, + 0xE1,0xF9,0x64,0x1E,0xF9,0xD5,0x02,0x20,0xF8,0x62,0x30,0x7F,0x01,0x00,0xFC,0xF7, + 0x4F,0xFA,0x01,0x24,0x02,0xA8,0x07,0xC8,0xFE,0xF7,0xFC,0xFE,0x00,0x28,0x01,0xD1, + 0x00,0x24,0x25,0x00,0x64,0x1E,0xF5,0xD5,0x6D,0x1E,0xDD,0xD5,0x05,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x20,0x93,0x00,0x00,0x11,0x07,0x00,0x20,0x60,0x06,0x00,0x20, + 0x80,0x90,0x00,0x40,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x00,0xA0,0xA0,0xE3, + 0x75,0xDF,0x4D,0xE2,0x08,0x07,0x9F,0xE5,0x2C,0xA0,0x8D,0xE5,0x34,0xA0,0x8D,0xE5, + 0x30,0xA0,0x8D,0xE5,0x18,0xA0,0x8D,0xE5,0x24,0xA0,0x8D,0xE5,0x20,0xA0,0x8D,0xE5, + 0x1C,0xA0,0x8D,0xE5,0xD0,0x01,0x8D,0xE5,0x00,0x10,0xA0,0xE3,0x28,0xA0,0x8D,0xE5, + 0x10,0xA0,0x8D,0xE5,0x0C,0xA0,0x8D,0xE5,0x08,0xA0,0x8D,0xE5,0x04,0xA0,0x8D,0xE5, + 0xB0,0x1C,0xC0,0xE1,0xD0,0x01,0x9D,0xE5,0xC8,0x46,0x9F,0xE5,0xB2,0x1C,0xC0,0xE1, + 0xD0,0x01,0x9D,0xE5,0x0A,0x50,0xA0,0xE1,0xB4,0x1C,0xC0,0xE1,0x0A,0x70,0xA0,0xE1, + 0x0A,0x80,0xA0,0xE1,0x0A,0x90,0xA0,0xE1,0x30,0x20,0xA0,0xE3,0x88,0x00,0x84,0xE2, + 0x91,0xFF,0xFF,0xEB,0x30,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xB8,0x00,0x84,0xE2, + 0x8D,0xFF,0xFF,0xEB,0x00,0x60,0xA0,0xE3,0x60,0x10,0xA0,0xE3,0x56,0x0F,0x8D,0xE2, + 0xB8,0x6E,0xC4,0xE1,0x65,0xFF,0xFF,0xEB,0x60,0x10,0xA0,0xE3,0xF8,0x00,0x8D,0xE2, + 0x62,0xFF,0xFF,0xEB,0x60,0x10,0xA0,0xE3,0x98,0x00,0x8D,0xE2,0x5F,0xFF,0xFF,0xEB, + 0x60,0x10,0xA0,0xE3,0x38,0x00,0x8D,0xE2,0x5C,0xFF,0xFF,0xEB,0x58,0x06,0x9F,0xE5, + 0x00,0x10,0xD0,0xE5,0x54,0x06,0x9F,0xE5,0x00,0x00,0x51,0xE3,0xCC,0x01,0x8D,0xE5, + 0x04,0x00,0x00,0x0A,0xF8,0x0A,0xD0,0xE1,0xBC,0x01,0x8D,0xE5,0xCC,0x01,0x9D,0xE5, + 0xB6,0x0A,0xD0,0xE1,0x04,0x00,0x00,0xEA,0x34,0x06,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0xF6,0x12,0xD0,0xE1,0xBC,0x11,0x8D,0xE5,0xB4,0x02,0xD0,0xE1,0xB8,0x01,0x8D,0xE5, + 0xB6,0x00,0xD4,0xE1,0xCC,0x11,0x9D,0xE5,0x40,0x00,0x10,0xE3,0xB0,0xB8,0xD1,0x01, + 0xB0,0x18,0xD1,0x11,0x01,0x08,0xE0,0xE3,0x81,0xB0,0x00,0x10,0x8B,0x00,0x00,0xE0, + 0x00,0x16,0x9F,0xE5,0x14,0x00,0x8D,0xE5,0x00,0x00,0xA0,0xE3,0x00,0x00,0xC1,0xE5, + 0xF4,0x15,0x9F,0xE5,0x00,0x30,0xA0,0xE1,0x00,0x00,0x81,0xE5,0xEC,0x15,0x9F,0xE5, + 0x00,0x20,0xA0,0xE1,0x00,0x00,0x81,0xE5,0xE4,0x15,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0xC0,0x05,0x9F,0xE5,0xBC,0x00,0xD0,0xE1,0xC8,0x01,0x8D,0xE5,0x00,0x10,0xA0,0xE3, + 0xD0,0x05,0x9F,0xE5,0xD0,0xC5,0x9F,0xE5,0x83,0x00,0x80,0xE0,0xC4,0x01,0x8D,0xE5, + 0xB0,0x00,0xD0,0xE1,0x83,0xC0,0x8C,0xE0,0xB0,0xC0,0xDC,0xE1,0x00,0x0A,0xA0,0xE1, + 0x20,0x0A,0xA0,0xE1,0x0F,0xCA,0xCC,0xE3,0x0C,0x40,0x40,0xE0,0x06,0x00,0x54,0xE1, + 0x04,0x60,0xA0,0xC1,0x34,0x10,0x8D,0xC5,0x30,0x20,0x8D,0xC5,0x64,0x00,0x54,0xE3, + 0x00,0x00,0x4C,0xE0,0x0C,0xC0,0x9D,0xC5,0x01,0xC0,0x8C,0xC2,0x0C,0xC0,0x8D,0xC5, + 0x64,0x00,0x50,0xE3,0x08,0xC0,0x9D,0xC5,0x01,0xC0,0x8C,0xC2,0x08,0xC0,0x8D,0xC5, + 0xC8,0xC1,0x9D,0xE5,0xFA,0x0F,0x5C,0xE3,0x4B,0xCF,0xA0,0x93,0x04,0x00,0x00,0x9A, + 0x77,0xEF,0xA0,0xE3,0x01,0xEB,0x8E,0xE2,0x0E,0x00,0x5C,0xE1,0x7D,0xCF,0xA0,0x83, + 0x19,0xCE,0xA0,0x93,0x0C,0x00,0x54,0xE1,0x04,0xC0,0x9D,0xC5,0xF8,0xE0,0x8D,0xE2, + 0x01,0xC0,0x8C,0xC2,0x04,0xC0,0x8D,0xC5,0x01,0xC1,0x9E,0xE7,0x00,0x00,0x54,0xE3, + 0x00,0x40,0xA0,0xB3,0x04,0xC0,0x8C,0xE0,0x01,0xC1,0x8E,0xE7,0x56,0xEF,0x8D,0xE2, + 0x02,0xC1,0x9E,0xE7,0x00,0x00,0x50,0xE3,0x04,0xC0,0x8C,0xE0,0x02,0xC1,0x8E,0xE7, + 0x38,0xE0,0x8D,0xE2,0x01,0xC1,0x9E,0xE7,0x00,0x00,0xA0,0xB3,0x00,0xC0,0x8C,0xE0, + 0x01,0xC1,0x8E,0xE7,0x98,0xE0,0x8D,0xE2,0x02,0xC1,0x9E,0xE7,0x0B,0x00,0x50,0xE1, + 0x00,0xC0,0x8C,0xE0,0x02,0xC1,0x8E,0xE7,0x01,0xC0,0x85,0xC2,0x01,0x58,0xCC,0xC3, + 0x0B,0x00,0x54,0xE1,0x01,0xC0,0x87,0xC2,0x01,0x78,0xCC,0xC3,0x14,0xC0,0x9D,0xE5, + 0x0C,0x00,0x50,0xE1,0x01,0xC0,0x88,0xC2,0x01,0x88,0xCC,0xC3,0x14,0xC0,0x9D,0xE5, + 0x0C,0x00,0x54,0xE1,0x01,0xC0,0x89,0xC2,0x01,0x98,0xCC,0xC3,0x10,0xC0,0x9D,0xE5, + 0x96,0x00,0x50,0xE3,0x00,0xC0,0x8C,0xE0,0x10,0xC0,0x8D,0xE5,0x03,0x00,0x00,0xDA, + 0xA8,0x04,0x9F,0xE5,0xB0,0xC0,0xD0,0xE1,0x01,0xC0,0x8C,0xE2,0xB0,0xC0,0xC0,0xE1, + 0xC4,0x01,0x9D,0xE5,0x01,0x10,0x81,0xE2,0xB0,0x40,0xC0,0xE1,0xBC,0x01,0x9D,0xE5, + 0x0E,0x00,0x51,0xE3,0x04,0x00,0x80,0xE0,0x00,0xA0,0x8A,0xE0,0x01,0x30,0x83,0xE2, + 0xA6,0xFF,0xFF,0x3A,0x01,0x20,0x82,0xE2,0x15,0x00,0x52,0xE3,0xA2,0xFF,0xFF,0x3A, + 0x54,0x14,0x9F,0xE5,0x38,0x00,0x9D,0xE5,0x00,0x00,0x81,0xE5,0x4C,0x14,0x9F,0xE5, + 0x68,0x00,0x9D,0xE5,0x00,0x00,0x81,0xE5,0x44,0x04,0x9F,0xE5,0x6C,0x10,0x9D,0xE5, + 0x00,0x10,0x80,0xE5,0x0C,0x00,0x9D,0xE5,0xD0,0x11,0x9D,0xE5,0xB0,0x0C,0xC1,0xE1, + 0x08,0x00,0x9D,0xE5,0xD0,0x11,0x9D,0xE5,0xB2,0x0C,0xC1,0xE1,0xD0,0x01,0x9D,0xE5, + 0x04,0x10,0x9D,0xE5,0xB4,0x1C,0xC0,0xE1,0xDB,0xFA,0xFF,0xEB,0x00,0x04,0x9F,0xE5, + 0xF0,0x13,0x9F,0xE5,0x00,0x40,0x90,0xE5,0xB4,0x00,0xD4,0xE1,0xBE,0x00,0xC1,0xE1, + 0xB0,0x00,0xD4,0xE1,0x01,0x00,0x10,0xE3,0x07,0x00,0x00,0x0A,0xB8,0x01,0x9D,0xE5, + 0x9A,0x00,0x02,0xE0,0xF8,0x03,0x9F,0xE5,0x90,0x32,0x82,0xE0,0x22,0x06,0xA0,0xE1, + 0xB4,0x20,0xD4,0xE1,0x00,0x00,0x52,0xE1,0xBE,0x00,0xC1,0x81,0xE4,0xA3,0x9F,0xE5, + 0x00,0x00,0xA0,0xE3,0x56,0xCF,0x8D,0xE2,0x01,0xE0,0xA0,0xE1,0x08,0x20,0xD4,0xE5, + 0x00,0x11,0x9C,0xE7,0x92,0x01,0x01,0xE0,0x9A,0x31,0x82,0xE0,0xA2,0x34,0xA0,0xE1, + 0xB0,0x21,0xD4,0xE1,0x02,0x00,0x53,0xE1,0x9A,0x21,0x81,0x90,0xA1,0x24,0xA0,0x91, + 0x09,0x30,0xD4,0xE5,0x98,0x10,0x8D,0xE2,0x00,0x11,0x91,0xE7,0x91,0x03,0x03,0xE0, + 0x9A,0xB3,0x81,0xE0,0xA1,0xB4,0xA0,0xE1,0xB2,0x11,0xD4,0xE1,0x01,0x00,0x5B,0xE1, + 0x9A,0x33,0x81,0x90,0xA1,0x14,0xA0,0x91,0x01,0x10,0x42,0xE0,0xBC,0x20,0xD4,0xE1, + 0x80,0x30,0x8E,0xE0,0x01,0x00,0x80,0xE2,0x92,0x01,0x01,0xE0,0x01,0x18,0xA0,0xE1, + 0x41,0x18,0xA0,0xE1,0x01,0x25,0x61,0xE0,0x02,0x21,0x82,0xE0,0x81,0x13,0x82,0xE0, + 0xC1,0x29,0xA0,0xE1,0xC1,0x1F,0x42,0xE0,0x15,0x00,0x50,0xE3,0xB8,0x18,0xC3,0xE1, + 0xDD,0xFF,0xFF,0x3A,0x50,0xC3,0x9F,0xE5,0x00,0xA0,0xA0,0xE3,0xF8,0x30,0x8D,0xE2, + 0x0A,0x10,0xD4,0xE5,0x0A,0x01,0x93,0xE7,0x90,0x01,0x01,0xE0,0x9C,0x21,0x80,0xE0, + 0xA0,0x25,0xA0,0xE1,0xB4,0x01,0xD4,0xE1,0x00,0x00,0x52,0xE1,0x9C,0x11,0x80,0x90, + 0x0B,0x20,0xD4,0xE5,0x38,0x10,0x8D,0xE2,0x0A,0x11,0x91,0xE7,0xA0,0x05,0xA0,0x91, + 0x92,0x01,0x01,0xE0,0x9C,0xB1,0x82,0xE0,0xA2,0xB5,0xA0,0xE1,0xB6,0x21,0xD4,0xE1, + 0x02,0x00,0x5B,0xE1,0x9C,0x21,0x81,0x90,0xA1,0x25,0xA0,0x91,0xBE,0x10,0xD4,0xE1, + 0x02,0x00,0x40,0xE0,0x91,0x00,0x00,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x00,0x15,0x60,0xE0,0x01,0x11,0x81,0xE0,0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1, + 0xC0,0x0F,0x41,0xE0,0x9C,0x12,0x9F,0xE5,0x8A,0x10,0x81,0xE0,0x01,0xA0,0x8A,0xE2, + 0x0D,0x00,0x5A,0xE3,0xB8,0x0B,0xC1,0xE1,0xDC,0xFF,0xFF,0x3A,0x0A,0x10,0xD4,0xE5, + 0x0A,0x01,0x93,0xE7,0x64,0x20,0xA0,0xE3,0x91,0x00,0x00,0xE0,0xAC,0x12,0x9F,0xE5, + 0x15,0x10,0xD1,0xE5,0x92,0x01,0x01,0xE0,0xC0,0x11,0x8D,0xE5,0x95,0xEC,0xFF,0xEB, + 0xB4,0x11,0xD4,0xE1,0x01,0x00,0x50,0xE1,0x00,0xB0,0xA0,0x91,0x01,0xB0,0xA0,0x81, + 0x0B,0x10,0xD4,0xE5,0x38,0x00,0x8D,0xE2,0x0A,0x01,0x90,0xE7,0x91,0x00,0x00,0xE0, + 0xC0,0x11,0x9D,0xE5,0x8B,0xEC,0xFF,0xEB,0xB6,0x11,0xD4,0xE1,0x01,0x00,0x50,0xE1, + 0x01,0x00,0xA0,0x81,0xBE,0x10,0xD4,0xE1,0x00,0x00,0x4B,0xE0,0x24,0x42,0x9F,0xE5, + 0x91,0x00,0x00,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x00,0x15,0x60,0xE0, + 0x01,0x11,0x81,0xE0,0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1,0xC0,0x0F,0x41,0xE0, + 0x8A,0x10,0x84,0xE0,0x00,0x00,0x56,0xE3,0xB8,0x0B,0xC1,0xE1,0x0C,0x00,0x00,0xDA, + 0x34,0x00,0x9D,0xE5,0x80,0x00,0x84,0xE0,0xB8,0x1B,0xD0,0xE1,0x30,0x00,0x9D,0xE5, + 0x80,0x00,0x84,0xE0,0xB8,0x08,0xD0,0xE1,0x01,0x00,0x80,0xE0,0x00,0x00,0x46,0xE0, + 0x00,0x08,0xA0,0xE1,0x40,0x08,0xB0,0xE1,0xB8,0x0E,0xC4,0xE1,0x00,0x00,0xA0,0x43, + 0xB8,0x0E,0xC4,0x41,0x11,0x10,0xA0,0xE3,0x10,0x00,0x9D,0xE5,0x01,0x1C,0x81,0xE2, + 0x68,0xEC,0xFF,0xEB,0xB6,0x10,0xD4,0xE1,0x40,0x00,0x11,0xE3,0x0E,0x00,0x00,0x0A, + 0x87,0x00,0x55,0xE1,0x01,0x20,0xA0,0x83,0x28,0x20,0x8D,0x85,0xFA,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x83,0x24,0x00,0x8D,0x85,0x23,0x00,0x58,0xE3,0x01,0x00,0xA0,0x83, + 0x20,0x00,0x8D,0x85,0x23,0x00,0x59,0xE3,0x01,0x00,0xA0,0x33,0x1C,0x00,0x8D,0x35, + 0x14,0x00,0x55,0xE3,0x11,0x00,0x00,0x9A,0x0E,0x00,0x00,0xEA,0x07,0x00,0x55,0xE1, + 0x08,0x00,0x55,0x83,0x01,0x20,0xA0,0x83,0x28,0x20,0x8D,0x85,0x96,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x83,0x24,0x00,0x8D,0x85,0x14,0x00,0x58,0xE3,0x01,0x00,0xA0,0x83, + 0x20,0x00,0x8D,0x85,0x14,0x00,0x59,0xE3,0x01,0x00,0xA0,0x33,0x1C,0x00,0x8D,0x35, + 0x0A,0x00,0x55,0xE3,0x01,0x00,0x00,0x9A,0x01,0x00,0xA0,0xE3,0x18,0x00,0x8D,0xE5, + 0xF1,0x00,0xD4,0xE5,0x00,0x00,0x50,0xE3,0x03,0x00,0x00,0x1A,0x50,0x01,0x9F,0xE5, + 0x00,0x00,0xD0,0xE5,0x01,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0xF2,0x00,0xD4,0xE5, + 0xFA,0x00,0x50,0xE3,0x06,0x00,0x00,0x2A,0x01,0x00,0x80,0xE2,0x03,0x00,0x00,0xEA, + 0xF2,0x00,0xD4,0xE5,0x00,0x00,0x50,0xE3,0x01,0x00,0x00,0x0A,0x01,0x00,0x40,0xE2, + 0xF2,0x00,0xC4,0xE5,0x28,0x00,0x9D,0xE5,0x24,0x20,0x9D,0xE5,0x1C,0x30,0x9D,0xE5, + 0x02,0x00,0x80,0xE1,0x20,0x20,0x9D,0xE5,0x10,0x00,0x11,0xE3,0x03,0x20,0x02,0xE0, + 0x00,0x20,0x82,0xE1,0x18,0x00,0x9D,0x15,0x00,0x00,0x50,0x13,0x00,0x00,0xA0,0x03, + 0x01,0x00,0xA0,0x13,0x02,0x00,0x80,0xE1,0x00,0x00,0x50,0xE3,0xF2,0x00,0xD4,0x15, + 0x05,0x00,0x50,0x13,0x02,0x00,0x00,0x8A,0x2C,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3, + 0x07,0x00,0x00,0x0A,0xEC,0x00,0x94,0xE5,0x01,0x00,0x80,0xE2,0xEC,0x00,0x84,0xE5, + 0xF0,0x00,0xD4,0xE5,0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0x12,0xF0,0x00,0xC4,0x15, + 0x0D,0x00,0x00,0xEA,0xF0,0x00,0xD4,0xE5,0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2, + 0xF0,0x00,0xC4,0xE5,0xCC,0x11,0x9D,0xE5,0xB4,0x18,0xD1,0xE1,0x01,0x00,0x50,0xE1, + 0x05,0x00,0x00,0x1A,0x00,0x00,0xA0,0xE3,0xF0,0x00,0xC4,0xE5,0xEC,0x00,0x94,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0xC2,0xEC,0x00,0x84,0xC5,0xF2,0x00,0xD4,0xE5, + 0x0A,0x00,0x50,0xE3,0x75,0xDF,0x8D,0x22,0xF0,0x4F,0xBD,0x28,0x1E,0xFF,0x2F,0x21, + 0xEC,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3,0x01,0x00,0xA0,0xC3,0xEC,0x00,0x84,0xC5, + 0x00,0x00,0xA0,0xE3,0xF0,0x00,0xC4,0xE5,0x75,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x40,0x01,0x00,0x20,0x40,0x00,0x00,0x20,0x19,0x07,0x00,0x20, + 0x00,0x95,0x00,0x00,0xD4,0x07,0x00,0x20,0x50,0x07,0x00,0x20,0x44,0x07,0x00,0x20, + 0x48,0x07,0x00,0x20,0x4C,0x07,0x00,0x20,0x00,0x00,0x00,0x10,0xD2,0x02,0x00,0x10, + 0x1C,0x07,0x00,0x20,0x2B,0x75,0xAA,0x23,0x91,0x73,0x9F,0x5D,0x2D,0x34,0xA9,0xF9, + 0x00,0x93,0x00,0x00,0x40,0x07,0x00,0x20,0x10,0xB5,0x16,0x4C,0xE0,0x7B,0x00,0x28, + 0x07,0xD1,0xFC,0xF7,0xA1,0xF8,0x00,0x28,0x0F,0xD0,0xFD,0xF7,0x87,0xFA,0x01,0x20, + 0x0A,0xE0,0x01,0x28,0x0C,0xD1,0xFC,0xF7,0xA1,0xF8,0x00,0x28,0x05,0xD0,0xFC,0xF7, + 0x2F,0xFF,0x00,0xF0,0x59,0xFB,0x02,0x20,0xE0,0x73,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x02,0x28,0x07,0xD1,0xFC,0xF7,0x3C,0xFA,0x00,0x28,0xF6,0xD0,0xFD,0xF7,0xE4,0xF8, + 0x03,0x20,0xF1,0xE7,0x03,0x28,0xF0,0xD1,0x03,0x48,0xC0,0x68,0xC0,0x07,0xEC,0xD0, + 0x04,0x20,0xE9,0xE7,0x0C,0x07,0x00,0x20,0x00,0x90,0x00,0x40,0xF0,0xB5,0xCF,0x48, + 0x89,0xB0,0x00,0x68,0x00,0x25,0x80,0x79,0x2C,0x00,0x02,0x90,0xCC,0x48,0x42,0x79, + 0x06,0x00,0xC0,0x36,0x00,0x92,0x82,0x79,0x80,0x30,0x01,0x7B,0xC0,0x38,0xB3,0x7A, + 0x00,0x7A,0xFE,0xF7,0x9A,0xFB,0x00,0x06,0x71,0x7A,0x00,0x0E,0xFE,0xF7,0x8A,0xFB, + 0x31,0x00,0x20,0x39,0x0A,0x7A,0x00,0x06,0xC0,0x39,0x09,0x79,0x00,0x0E,0xFE,0xF7, + 0x85,0xFB,0x31,0x00,0x80,0x39,0x8A,0x7D,0x00,0x06,0xC0,0x39,0x89,0x7C,0x00,0x0E, + 0xFE,0xF7,0x7C,0xFB,0xBB,0x4E,0x07,0x06,0x70,0x7B,0x3F,0x0E,0x00,0x28,0x02,0xD0, + 0xB9,0x48,0x40,0x89,0x07,0xE0,0xB5,0x48,0xB8,0x49,0x00,0x68,0x49,0x88,0x40,0x88, + 0x40,0x18,0x00,0x04,0x00,0x0C,0x03,0x90,0x00,0x20,0x70,0x61,0x0F,0x20,0x30,0x71, + 0x70,0x7A,0x00,0x28,0x06,0xD0,0x30,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0xA0,0xFB, + 0x01,0xF0,0x8E,0xFB,0x01,0x20,0x30,0x62,0xFC,0xF7,0x3C,0xFC,0x00,0x20,0xF0,0x70, + 0x00,0xF0,0xA0,0xF9,0xFC,0xF7,0xAA,0xFE,0xA9,0x48,0x08,0x90,0xA7,0x48,0xC0,0x38, + 0x07,0x90,0xA3,0x48,0xE0,0x38,0x06,0x90,0xA6,0x48,0xFF,0x1C,0x05,0x97,0x04,0x90, + 0x0F,0xE1,0x78,0x7A,0x00,0x28,0x04,0xD0,0x38,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0, + 0x7F,0xFB,0xFF,0x20,0x81,0x30,0xFB,0xF7,0x79,0xFA,0x03,0x20,0x01,0xF0,0xF4,0xF9, + 0xFC,0xF7,0x56,0xFC,0xFC,0xF7,0x38,0xFC,0x99,0x4E,0xC0,0x3E,0xF0,0x88,0x01,0x06, + 0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5,0x05,0x20,0x00,0xE0,0x03,0x20, + 0x01,0xF0,0xA8,0xF8,0xFC,0xF7,0xE4,0xFE,0x91,0x48,0xA0,0x30,0x01,0x89,0x03,0x98, + 0x08,0x18,0xB1,0x89,0x88,0x42,0x10,0xD9,0x8F,0x48,0x40,0x7A,0x00,0x28,0x0C,0xD1, + 0xF0,0x88,0xFF,0x21,0x19,0x31,0x08,0x42,0x07,0xD1,0x02,0x98,0x64,0x1C,0x84,0x42, + 0x04,0xDD,0xFC,0xF7,0xD5,0xFE,0x01,0x25,0x00,0xE0,0x00,0x24,0x00,0xF0,0x8A,0xFE, + 0x01,0xF0,0x76,0xF8,0x00,0xF0,0x12,0xFE,0x00,0xF0,0x6E,0xFE,0x7E,0x49,0x08,0x98, + 0x20,0x39,0x49,0x88,0xC0,0x6A,0x88,0x42,0x01,0xDB,0x01,0x20,0x78,0x70,0x00,0x2D, + 0x02,0xD0,0xFC,0xF7,0x4B,0xFE,0x00,0x25,0xFC,0xF7,0x30,0xFE,0x00,0x20,0xFC,0xF7, + 0x9F,0xFE,0xFC,0xF7,0x67,0xFE,0x01,0x20,0x00,0x26,0xF8,0x73,0x3E,0x82,0xFD,0xF7, + 0xB5,0xFF,0x00,0x28,0x08,0xD0,0x7E,0x61,0x04,0x98,0x80,0x7E,0xC8,0x28,0x11,0xD2, + 0x04,0x99,0x40,0x1C,0x88,0x76,0x0D,0xE0,0x78,0x69,0x40,0x1C,0x78,0x61,0x78,0x69, + 0x01,0x28,0x02,0xD1,0x6B,0x48,0x20,0x30,0x86,0x75,0x78,0x69,0x05,0x28,0x01,0xD9, + 0xFC,0xF7,0xB0,0xFB,0x78,0x78,0x00,0x28,0x02,0xD0,0xFC,0xF7,0xBD,0xFB,0x20,0xE0, + 0x66,0x48,0x41,0x68,0x09,0x07,0x0D,0xD5,0xC1,0x68,0x00,0x29,0x0A,0xD0,0xC1,0x68, + 0x07,0x29,0x04,0xD1,0xC0,0x68,0x01,0x21,0x49,0x07,0xC8,0x63,0x0E,0xE0,0x00,0xF0, + 0x3D,0xFA,0x0B,0xE0,0x01,0xF0,0x7A,0xF8,0xB8,0x7B,0x80,0x28,0x01,0xD1,0xFC,0xF7, + 0xCD,0xFC,0x00,0xF0,0x79,0xF9,0x01,0xE0,0xFF,0xF7,0xCE,0xFE,0xF8,0x7B,0x03,0x28, + 0xFA,0xD1,0xFC,0xF7,0xF7,0xFE,0x78,0x78,0x00,0x28,0x1B,0xD0,0x54,0x48,0x01,0x21, + 0xC0,0x7F,0x40,0x08,0x01,0xF0,0x9E,0xF8,0x4A,0x48,0x00,0x21,0x41,0x70,0x4C,0x48, + 0x08,0x23,0xC0,0x38,0xC2,0x88,0x9A,0x43,0xC2,0x80,0xC2,0x88,0x5B,0x01,0x9A,0x43, + 0xC2,0x80,0xC2,0x88,0x10,0x23,0x9A,0x43,0xC2,0x80,0x07,0x98,0x41,0x70,0x08,0x98, + 0xC1,0x62,0x54,0xE0,0x06,0x98,0x00,0x7B,0x00,0x28,0x04,0xD0,0x78,0x7B,0x00,0x28, + 0x01,0xD1,0x00,0xF0,0xD3,0xF8,0x01,0x20,0x40,0x07,0xC0,0x6B,0x0B,0x28,0x46,0xD1, + 0x03,0x20,0x01,0xF0,0x0B,0xF9,0xF8,0x62,0x03,0x20,0x01,0xF0,0x39,0xF9,0xFF,0x20, + 0x81,0x30,0xFB,0xF7,0xA3,0xF9,0x3B,0x48,0x00,0x78,0xB9,0x79,0x08,0x43,0x30,0xD1, + 0xB8,0x6A,0x07,0x00,0x2D,0xD0,0x2F,0x48,0xC0,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43, + 0x35,0x49,0xFA,0xF7,0x57,0xFE,0x3F,0x1A,0x32,0x2F,0x22,0xDD,0x00,0xF0,0x96,0xF8, + 0x38,0x00,0x01,0xF0,0xA3,0xFA,0x01,0xF0,0xA7,0xFA,0x26,0x48,0xC0,0x79,0x00,0x28, + 0x0D,0xD0,0x00,0xF0,0x69,0xF8,0x00,0xF0,0x6C,0xF8,0x00,0xF0,0x74,0xF8,0x2B,0x4F, + 0x01,0x20,0x78,0x60,0xFB,0xF7,0x8A,0xF9,0x29,0x48,0x78,0x60,0x03,0xE0,0x29,0x48, + 0x01,0x78,0x00,0x29,0xFC,0xD0,0x01,0xF0,0x96,0xFA,0x26,0x48,0x06,0x70,0x00,0xF0, + 0x81,0xF8,0x18,0x4F,0x78,0x69,0x05,0x99,0x88,0x42,0x00,0xD2,0xE9,0xE6,0x15,0x4D, + 0x05,0x24,0xE8,0x78,0x00,0x28,0x12,0xD0,0xFC,0xF7,0xF2,0xFD,0xFC,0xF7,0x26,0xFE, + 0x03,0xE0,0xFC,0xF7,0x9F,0xFD,0xFC,0xF7,0x75,0xFE,0x20,0x00,0x64,0x1E,0x24,0x06, + 0x24,0x0E,0x00,0x28,0xF5,0xD1,0xFC,0xF7,0xDB,0xFD,0x00,0x20,0xE8,0x70,0x07,0x48, + 0x00,0x68,0x40,0x30,0x41,0x7D,0x07,0x98,0x41,0x70,0x68,0x7A,0x00,0x28,0x01,0xD0, + 0x01,0xF0,0x46,0xFA,0x09,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xD4,0x07,0x00,0x20, + 0x60,0x94,0x00,0x00,0x0C,0x07,0x00,0x20,0xA0,0x95,0x00,0x00,0x00,0x07,0x00,0x20, + 0x00,0x01,0x00,0x20,0xA0,0x03,0x00,0x20,0x00,0x02,0x00,0x20,0x00,0x40,0x00,0x30, + 0x00,0x93,0x00,0x00,0xD9,0x07,0x00,0x20,0x10,0x27,0x00,0x00,0x00,0x30,0x00,0x40, + 0xE1,0x04,0x00,0x00,0xD8,0x07,0x00,0x20,0x01,0x20,0x80,0x07,0x01,0x6B,0x81,0x22, + 0xD2,0x01,0x11,0x43,0x01,0x63,0x70,0x47,0x00,0x20,0x01,0x21,0x89,0x07,0x48,0x60, + 0x70,0x47,0x10,0x20,0x81,0x06,0x48,0x60,0x70,0x47,0x01,0x22,0x92,0x07,0x91,0x68, + 0x01,0x43,0x91,0x60,0x70,0x47,0x01,0x20,0x80,0x07,0x41,0x68,0x02,0x22,0x11,0x43, + 0x41,0x60,0x70,0x47,0x01,0x20,0x80,0x07,0x01,0x6B,0x03,0x4A,0x89,0x09,0x52,0x7B, + 0x89,0x01,0x11,0x43,0x01,0x63,0x70,0x47,0x00,0x93,0x00,0x00,0x10,0xB5,0xFC,0xF7, + 0x05,0xFD,0xFA,0xF7,0xE9,0xFD,0x03,0x20,0x40,0x03,0xFB,0xF7,0xEF,0xF8,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x03,0x20,0x10,0xB5,0x40,0x03,0xFB,0xF7,0xEF,0xF8,0xFA,0xF7, + 0xE5,0xFD,0xFC,0xF7,0xFB,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xB5,0x00,0xF0, + 0x0F,0xFC,0x05,0x49,0x80,0x22,0xC9,0x88,0x11,0x40,0x81,0x42,0x01,0xD0,0xFB,0xF7, + 0x0B,0xF8,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0x78,0x47,0xC0,0x46, + 0xF0,0x0F,0x2D,0xE9,0xAC,0x60,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0xBA,0x00,0xC6,0xE1, + 0xA4,0x00,0x9F,0xE5,0xA4,0xA0,0x9F,0xE5,0x14,0x80,0xD0,0xE5,0xA0,0xB0,0x9F,0xE5, + 0x26,0x20,0xA0,0xE3,0x01,0x2C,0x82,0xE2,0x14,0x10,0xA0,0xE3,0x01,0x90,0xA0,0xE3, + 0x0D,0x00,0xA0,0xE3,0x81,0x70,0x86,0xE0,0x01,0x20,0x42,0xE2,0x80,0x40,0x86,0xE0, + 0xF8,0x4B,0xD4,0xE1,0xF8,0x58,0xD7,0xE1,0x82,0x30,0x8B,0xE0,0xF0,0xC0,0xD3,0xE1, + 0x05,0x40,0x84,0xE0,0x02,0x00,0x18,0xE3,0x04,0xC0,0x4C,0xE0,0x04,0x00,0x00,0x0A, + 0x0D,0x00,0x50,0xE3,0x07,0x00,0x00,0x0A,0xC8,0x00,0x5C,0xE3,0x05,0x00,0x00,0xBA, + 0x03,0x00,0x00,0xEA,0x14,0x00,0x51,0xE3,0x02,0x00,0x00,0x0A,0xC8,0x00,0x5C,0xE3, + 0x00,0x00,0x00,0xBA,0x00,0x90,0xCA,0xE5,0x00,0x00,0x5C,0xE3,0x00,0xC0,0xA0,0xB3, + 0xB0,0xC0,0xC3,0xE1,0xBA,0x30,0xD6,0xE1,0x0C,0x00,0x53,0xE1,0xBA,0xC0,0xC6,0xB1, + 0x01,0x00,0x50,0xE2,0xE3,0xFF,0xFF,0x5A,0x01,0x10,0x51,0xE2,0xDF,0xFF,0xFF,0x5A, + 0xF0,0x0F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00, + 0x50,0x07,0x00,0x20,0x00,0x00,0x00,0x10,0xF8,0xB5,0xFD,0xF7,0x2B,0xFC,0x06,0x00, + 0x01,0x24,0x64,0x07,0x25,0x68,0x00,0x2D,0x7A,0xD0,0x4F,0x48,0x00,0x21,0x01,0x70, + 0x02,0x20,0x00,0xF0,0xED,0xFF,0x4D,0x48,0x0A,0x21,0x00,0x6B,0xFA,0xF7,0x1A,0xFD, + 0x01,0x00,0x02,0x20,0x00,0xF0,0xD0,0xFF,0x49,0x4F,0xB8,0x7A,0x00,0x28,0x00,0xD0, + 0x6D,0x1C,0x38,0x7A,0x00,0x28,0x04,0xD1,0x46,0x49,0x48,0x69,0x0A,0x15,0x10,0x43, + 0x48,0x61,0x00,0xF0,0x93,0xF8,0x44,0x48,0x01,0x68,0x44,0x48,0xC1,0x61,0x02,0x24, + 0x20,0x00,0x00,0xF0,0xC1,0xFF,0x42,0x48,0xC1,0x68,0x49,0x08,0x49,0x00,0xC1,0x60, + 0xB9,0x7A,0x02,0x04,0x1D,0xE0,0x3D,0x48,0x43,0x69,0x5B,0x06,0x0A,0xD4,0x00,0x29, + 0x01,0xD0,0xAC,0x42,0x04,0xD2,0xA3,0x00,0x9B,0x18,0x1B,0x68,0xC3,0x61,0x00,0xE0, + 0xC6,0x61,0x64,0x1C,0x30,0x48,0x00,0x78,0x00,0x28,0x0A,0xD0,0xFD,0xF7,0x08,0xFD, + 0x78,0x7A,0x00,0x28,0x07,0xD0,0x38,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0x20,0xF9, + 0x01,0xE0,0xAC,0x42,0xDF,0xD9,0x02,0x20,0x00,0xF0,0xA2,0xFF,0x26,0x4C,0x20,0x78, + 0x00,0x28,0x38,0xD1,0xFD,0xF7,0x0E,0xFC,0x00,0x28,0x34,0xD0,0x23,0x48,0x0A,0x21, + 0x00,0x6B,0xFA,0xF7,0xC7,0xFC,0x01,0x00,0x02,0x20,0x00,0xF0,0x7D,0xFF,0x02,0x20, + 0x00,0xF0,0x82,0xFF,0x0C,0xE0,0x20,0x78,0x00,0x28,0x09,0xD0,0xFD,0xF7,0xE0,0xFC, + 0x78,0x7A,0x00,0x28,0x04,0xD0,0x38,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0xF8,0xF8, + 0xFD,0xF7,0xF0,0xFB,0x00,0x28,0xEE,0xD1,0x18,0x48,0x41,0x68,0x41,0x60,0x0C,0xE0, + 0x1E,0xE0,0x21,0x78,0x00,0x29,0x08,0xD0,0x78,0x7A,0x00,0x28,0x08,0xD0,0x38,0x6B, + 0x00,0x04,0x00,0x0C,0x01,0xF0,0xE4,0xF8,0x02,0xE0,0x41,0x68,0xC9,0x03,0xF0,0xD5, + 0x02,0x20,0x00,0xF0,0x65,0xFF,0x00,0xF0,0x21,0xF8,0x0D,0x49,0xC8,0x68,0x01,0x22, + 0x10,0x43,0xC8,0x60,0x38,0x7A,0x00,0x28,0x02,0xD1,0x08,0x15,0xFA,0xF7,0xC6,0xFF, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD9,0x07,0x00,0x20,0x00,0x93,0x00,0x00, + 0x0C,0x07,0x00,0x20,0x40,0x00,0x00,0x40,0x04,0x00,0x00,0x20,0x00,0x40,0x00,0x30, + 0x00,0x20,0x00,0x40,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x05,0x48,0x01,0x21, + 0x00,0xB5,0xC9,0x02,0x01,0x62,0x00,0x21,0x01,0x62,0xFD,0xF7,0xD1,0xFE,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x10,0xB5,0x01,0x20,0xFC,0xF7,0x5A,0xFC, + 0x01,0x20,0xFC,0xF7,0x15,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x40,0x18,0x70,0x47, + 0x40,0x18,0x80,0x18,0x70,0x47,0x10,0xB4,0x40,0x18,0x01,0x9C,0x80,0x18,0xC0,0x18, + 0x00,0x19,0x10,0xBC,0x70,0x47,0x00,0x00,0xF8,0xB5,0x00,0x21,0x01,0x23,0x5B,0x07, + 0x18,0x68,0x13,0x4A,0x90,0x71,0x90,0x79,0x01,0x28,0x01,0xD1,0x01,0x21,0x0D,0xE0, + 0x01,0x28,0x00,0xD9,0x02,0x21,0x00,0x28,0x08,0xD1,0x0D,0x48,0x30,0x22,0x00,0x21, + 0x08,0x30,0xFF,0xF7,0x11,0xF8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x0D,0x25, + 0x08,0x4C,0xED,0x01,0x08,0xE0,0x46,0x18,0xB6,0x00,0xF6,0x18,0x36,0x68,0x87,0x00, + 0x3F,0x19,0x7F,0x19,0x40,0x1C,0xBE,0x60,0x96,0x79,0x86,0x42,0xF3,0xD8,0xEA,0xE7, + 0xC0,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x70,0xB5,0x1E,0x4A,0x1E,0x48,0x1C,0x4C, + 0x85,0x18,0x21,0x7A,0xDB,0x22,0x92,0x00,0x86,0x18,0x00,0x29,0x0F,0xD0,0x21,0x00, + 0x82,0x22,0x0C,0x31,0x28,0x00,0xFE,0xF7,0xB3,0xFF,0x18,0x49,0x0D,0x22,0x30,0x00, + 0xFE,0xF7,0xAE,0xFF,0x20,0x7A,0x60,0x72,0x70,0xBC,0x08,0xBC,0x18,0x47,0x0D,0x22, + 0x00,0x21,0x30,0x00,0xFE,0xF7,0xD8,0xFF,0x82,0x22,0x00,0x21,0x28,0x00,0xFE,0xF7, + 0xD3,0xFF,0x0E,0x48,0x82,0x22,0x00,0x21,0x8F,0x38,0xFE,0xF7,0xCD,0xFF,0x0B,0x48, + 0x0D,0x22,0x00,0x21,0x0D,0x38,0xFE,0xF7,0xC7,0xFF,0x00,0x20,0x06,0x49,0x60,0x72, + 0xA0,0x72,0xCA,0x88,0x23,0x23,0x9A,0x43,0xCA,0x80,0x05,0x49,0x88,0x72,0xDB,0xE7, + 0x00,0x02,0x00,0x20,0x4E,0x02,0x00,0x00,0x40,0x00,0x00,0x20,0x9F,0x03,0x00,0x20, + 0x40,0x06,0x00,0x20,0xF3,0xB5,0x90,0x48,0x91,0xB0,0x40,0x7E,0x02,0x90,0x8F,0x48, + 0x00,0x78,0x00,0x28,0x8E,0x48,0x18,0xD0,0x0B,0x21,0x89,0x01,0x40,0x18,0x01,0x8A, + 0x8C,0x4A,0x1A,0x26,0x07,0x91,0x41,0x8A,0x1C,0x27,0x06,0x91,0x81,0x8A,0x05,0x91, + 0x1E,0x21,0x41,0x5E,0x04,0x91,0x00,0x21,0x51,0x5E,0x03,0x91,0x16,0x21,0x18,0x22, + 0x86,0x5F,0xC7,0x5F,0x41,0x5E,0x82,0x5E,0x16,0xE0,0x60,0x30,0xC1,0x8A,0x04,0x22, + 0x00,0x26,0x07,0x91,0x01,0x8B,0x02,0x27,0x06,0x91,0x41,0x8B,0x05,0x91,0x7A,0x49, + 0x20,0x39,0x8A,0x5E,0x04,0x92,0x06,0x22,0x8A,0x5E,0x03,0x92,0x8E,0x5F,0xCF,0x5F, + 0x1C,0x21,0x1E,0x22,0x41,0x5E,0x82,0x5E,0x11,0x98,0x75,0x4C,0x00,0x68,0x41,0x18, + 0x11,0x98,0x01,0x60,0x12,0x98,0x00,0x68,0x81,0x18,0x12,0x98,0x01,0x60,0x60,0x8C, + 0x00,0x21,0x40,0x1E,0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0,0x20,0x8C,0x0A,0x00, + 0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0,0xEB,0xFF,0x20,0x8C, + 0x64,0x21,0x0A,0x90,0x60,0x8C,0x09,0x90,0x0A,0x98,0x44,0x08,0x09,0x98,0x45,0x08, + 0x06,0x98,0x64,0x38,0x00,0x28,0x01,0xDC,0x06,0x98,0x08,0x1A,0x0F,0x90,0x05,0x98, + 0x64,0x38,0x00,0x28,0x01,0xDC,0x05,0x98,0x08,0x1A,0x0E,0x90,0x15,0x20,0x08,0x90, + 0x5D,0x48,0x0E,0x21,0x80,0x7B,0xC2,0x07,0x05,0xD0,0x80,0x07,0x01,0xD5,0x0D,0x21, + 0x01,0xE0,0x14,0x20,0x08,0x90,0x20,0x00,0xFA,0xF7,0x2C,0xFA,0x0A,0x99,0x08,0x1A, + 0x40,0x1E,0x0C,0x90,0x08,0x99,0x28,0x00,0xFA,0xF7,0x24,0xFA,0x09,0x99,0x08,0x1A, + 0x40,0x1E,0x31,0x1E,0x0B,0x90,0x00,0xDD,0xA1,0x1B,0x00,0x2F,0x0D,0x97,0x01,0xDD, + 0xE8,0x1B,0x0D,0x90,0x11,0x98,0x00,0x68,0xA0,0x42,0x10,0x90,0x01,0xDB,0x00,0x1B, + 0x01,0xE0,0x00,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x22,0x06,0x00, + 0x56,0x43,0x37,0x00,0x88,0x42,0x0D,0xDD,0x42,0x1A,0x0F,0x98,0x50,0x43,0x86,0x19, + 0x10,0x00,0x50,0x43,0x0F,0x9A,0x50,0x43,0x0C,0x9A,0x12,0x1B,0x51,0x1A,0xFA,0xF7, + 0xF9,0xF9,0xC7,0x19,0x04,0x98,0x00,0x28,0x01,0xD1,0x30,0x00,0x05,0xE0,0x01,0x28, + 0x01,0xD1,0x38,0x00,0x01,0xE0,0x70,0x00,0xC0,0x1B,0x64,0x21,0xFA,0xF7,0xEA,0xF9, + 0x07,0x99,0xC9,0x07,0x0A,0xD0,0x10,0x99,0xA1,0x42,0x03,0xDB,0x21,0x18,0x11,0x98, + 0x01,0x60,0x03,0xE0,0x11,0x99,0x20,0x1A,0x40,0x1E,0x08,0x60,0x12,0x98,0x07,0x68, + 0xAF,0x42,0x01,0xDB,0x78,0x1B,0x01,0xE0,0x78,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC, + 0x40,0x42,0x64,0x21,0x04,0x00,0x4C,0x43,0x0D,0x99,0x26,0x00,0x88,0x42,0x0E,0xDD, + 0x41,0x1A,0x0E,0x98,0x0D,0x9A,0x48,0x43,0x04,0x19,0x08,0x00,0x48,0x43,0x0E,0x99, + 0x48,0x43,0x0B,0x99,0x49,0x1B,0x89,0x1A,0xFA,0xF7,0xBC,0xF9,0x86,0x19,0x03,0x98, + 0x00,0x28,0x01,0xD1,0x20,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x30,0x00,0x01,0xE0, + 0x60,0x00,0x80,0x1B,0x64,0x21,0xFA,0xF7,0xAD,0xF9,0x07,0x99,0x89,0x07,0x09,0xD5, + 0xAF,0x42,0x03,0xDB,0x29,0x18,0x12,0x98,0x01,0x60,0x03,0xE0,0x12,0x99,0x28,0x1A, + 0x40,0x1E,0x08,0x60,0x0E,0x48,0x02,0x99,0x42,0x8C,0x6B,0x46,0x51,0x1A,0x49,0x1E, + 0x0A,0x04,0x02,0x99,0x12,0x0C,0x06,0xC3,0x01,0x8C,0x02,0x98,0x02,0x9A,0x08,0x1A, + 0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0,0x23,0xFF,0x13,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x93,0x00,0x00,0x19,0x07,0x00,0x20, + 0x00,0x93,0x00,0x00,0xE0,0x95,0x00,0x00,0x40,0x06,0x00,0x20,0xFF,0xB5,0x00,0x68, + 0x8E,0x46,0x84,0x46,0x70,0x46,0x1B,0x4B,0x1B,0x49,0x05,0x68,0x00,0x22,0x19,0x4E, + 0x54,0x00,0x24,0x3E,0x34,0x5B,0x66,0x46,0x00,0x20,0x34,0x1B,0x26,0x00,0x74,0x43, + 0x46,0x00,0x9E,0x5B,0xAE,0x1B,0x37,0x00,0x77,0x43,0xE6,0x19,0x8E,0x42,0x18,0xD2, + 0x51,0x00,0x10,0x4A,0x40,0x00,0x24,0x3A,0x52,0x5A,0x02,0x99,0x0A,0x60,0x0D,0x49, + 0x03,0x9A,0x16,0x39,0x0C,0x5A,0x14,0x60,0x09,0x5A,0x72,0x46,0x12,0x68,0x18,0x5A, + 0x51,0x18,0x09,0x1A,0x70,0x46,0x01,0x60,0x01,0x20,0x04,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x40,0x1C,0x0B,0x28,0xDB,0xD3,0x52,0x1C,0x07,0x2A,0xCF,0xD3,0x00,0x20, + 0xC0,0x43,0xF2,0xE7,0x94,0x72,0x00,0x00,0x11,0x02,0x00,0x00,0xFE,0xB5,0x69,0x4D, + 0x67,0x48,0x00,0x26,0x29,0x00,0xFF,0x31,0x00,0x96,0x42,0x7E,0xC1,0x31,0x08,0x7A, + 0x33,0x00,0x00,0x2A,0x28,0xD1,0x00,0x28,0x26,0xD0,0x01,0x24,0x0A,0x20,0x60,0x43, + 0x47,0x19,0x38,0x00,0xFF,0x30,0xD3,0x30,0xFD,0xF7,0x00,0xFC,0x00,0x28,0x17,0xD0, + 0x5D,0x48,0x81,0x7B,0x00,0x98,0x40,0x1C,0x81,0x42,0x14,0xD3,0xA9,0x19,0x33,0x22, + 0x00,0x90,0xFF,0x20,0x52,0x01,0xCD,0x30,0x89,0x18,0xC0,0x5D,0x3A,0x00,0xFF,0x32, + 0x48,0x76,0x76,0x1C,0xCD,0x32,0x03,0x20,0x01,0x23,0x69,0x46,0x00,0xF0,0x16,0xFA, + 0x64,0x1C,0x0D,0x2C,0xDA,0xDB,0x94,0xE0,0x49,0x7A,0x00,0x29,0x01,0xD1,0x00,0x28, + 0x78,0xD0,0x07,0x20,0xC0,0x01,0x00,0x24,0x2E,0x18,0x33,0x27,0x7F,0x01,0x28,0x19, + 0xC0,0x19,0x40,0x7E,0x00,0x28,0x3F,0xD0,0x0D,0x21,0x28,0x18,0x89,0x01,0x41,0x18, + 0xC9,0x7F,0x00,0x29,0x02,0xD0,0xB2,0x7D,0x00,0x2A,0x14,0xD0,0x1B,0x21,0x49,0x01, + 0x40,0x18,0x00,0x99,0x00,0x7B,0x49,0x1C,0x00,0x91,0x0A,0x21,0x48,0x43,0x3F,0x49, + 0x40,0x19,0x42,0x18,0x02,0x20,0x03,0x23,0x69,0x46,0x00,0xF0,0xE7,0xF9,0x20,0x00, + 0x14,0x2C,0x1E,0xD0,0x1A,0xE0,0x0A,0x20,0x41,0x43,0x48,0x19,0x02,0x90,0xFF,0x30, + 0xD3,0x30,0xFD,0xF7,0xAB,0xFB,0x00,0x28,0x13,0xD0,0x00,0x98,0x02,0x9A,0x40,0x1C, + 0xFF,0x32,0x00,0x90,0xCD,0x32,0x03,0x20,0x02,0x23,0x69,0x46,0x00,0xF0,0xCE,0xF9, + 0x07,0xE0,0x29,0x18,0xC9,0x19,0x8A,0x7E,0x40,0x1C,0x4A,0x76,0x0C,0x28,0xF8,0xDB, + 0x64,0x1E,0x64,0x1C,0x0C,0x2C,0xBA,0xDB,0x01,0x24,0x26,0x49,0x0D,0x20,0x0A,0x19, + 0x80,0x01,0x10,0x18,0xC0,0x7F,0x00,0x22,0x01,0x92,0x00,0x28,0x32,0xD0,0xB2,0x7D, + 0x00,0x2A,0x2F,0xD1,0x0A,0x22,0x50,0x43,0x45,0x18,0x28,0x00,0xFF,0x30,0xD3,0x30, + 0xFD,0xF7,0x7C,0xFB,0x00,0x28,0x25,0xD0,0x1B,0x48,0x00,0x9B,0x80,0x7B,0x5B,0x1C, + 0x98,0x42,0x26,0xD3,0x17,0x4A,0x00,0x20,0x11,0x18,0xC9,0x19,0x49,0x7E,0xA1,0x42, + 0x0C,0xD0,0x00,0x29,0x07,0xD1,0xFF,0x21,0xCD,0x31,0x49,0x5D,0x10,0x18,0xC0,0x19, + 0x41,0x76,0x06,0xE0,0x12,0xE0,0x40,0x1C,0x0C,0x28,0xED,0xDB,0x01,0x98,0x00,0x28, + 0x08,0xD0,0x2A,0x00,0xFF,0x32,0x00,0x93,0xCD,0x32,0x03,0x20,0x01,0x23,0x69,0x46, + 0x00,0xF0,0x84,0xF9,0x64,0x1C,0x0D,0x2C,0xBF,0xDB,0x02,0xE0,0x01,0x20,0x40,0x07, + 0x43,0x60,0x00,0x98,0x00,0xF0,0x78,0xFC,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xA0,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00,0x4E,0x02,0x00,0x00, + 0xFC,0xB5,0x4E,0x48,0x36,0x25,0x45,0x5F,0x15,0x20,0x84,0x46,0x4B,0x48,0x4C,0x4F, + 0x80,0x30,0x82,0x7D,0x86,0x46,0x4B,0x48,0x00,0x26,0x81,0x7B,0x0E,0x24,0xC8,0x07, + 0x05,0xD0,0x88,0x07,0x01,0xD5,0x0D,0x24,0x01,0xE0,0x14,0x20,0x84,0x46,0x00,0x21, + 0x27,0xE0,0x00,0x20,0x22,0xE0,0x91,0x42,0x05,0xD2,0x90,0x42,0x1D,0xD3,0xA3,0x1A, + 0x5B,0x1E,0x83,0x42,0x19,0xD3,0x63,0x46,0x9B,0x1A,0x5B,0x1E,0x8B,0x42,0x01,0xD2, + 0x90,0x42,0x12,0xD3,0x8B,0x42,0x03,0xD2,0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x0C,0xD3, + 0x0B,0x00,0x63,0x43,0x1B,0x18,0x9B,0x00,0xFB,0x58,0x1B,0x01,0x1B,0x0D,0xB3,0x42, + 0x00,0xDD,0x1E,0x00,0xAB,0x42,0x00,0xDA,0x1D,0x00,0x40,0x1C,0xA0,0x42,0xDA,0xD3, + 0x49,0x1C,0x61,0x45,0xD5,0xD3,0x1E,0x24,0x70,0x46,0x04,0x5F,0x2B,0x4B,0x2E,0x48, + 0xA0,0x33,0xC0,0x88,0x06,0x22,0x9A,0x5E,0x40,0x06,0x07,0xD5,0x70,0x46,0x80,0x8A, + 0x01,0x19,0x0C,0x04,0x10,0x1A,0x24,0x14,0x02,0x04,0x12,0x14,0x25,0x48,0x80,0x30, + 0x81,0x6B,0xA6,0x42,0x05,0xDD,0x74,0x46,0x64,0x8B,0xA1,0x42,0x05,0xDA,0x49,0x1C, + 0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E,0x81,0x63,0x1E,0x49,0x80,0x31,0xC9,0x6B, + 0x95,0x42,0x04,0xDA,0x5A,0x88,0x91,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29, + 0x01,0xDD,0x49,0x1E,0xC1,0x63,0x74,0x46,0xA4,0x8B,0x85,0x6B,0x01,0x22,0x11,0x00, + 0xA5,0x42,0x00,0xDC,0x00,0x21,0x9B,0x88,0xC0,0x6B,0x98,0x42,0x00,0xDC,0x00,0x22, + 0x00,0x20,0x6B,0x46,0x18,0x70,0x59,0x70,0x00,0x29,0x9A,0x70,0x02,0xD0,0x00,0x2A, + 0x00,0xD0,0x01,0x20,0x6B,0x46,0x11,0x43,0xD8,0x70,0x01,0xD0,0x01,0x20,0x00,0xE0, + 0x00,0x20,0x6B,0x46,0x18,0x71,0x70,0x46,0x00,0x7B,0x69,0x46,0x08,0x5C,0x00,0x28, + 0x00,0xD0,0x80,0x20,0xFC,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x93,0x00,0x00, + 0xD4,0x02,0x10,0x40,0x40,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xF8,0xB5,0x25,0x48, + 0x25,0x4C,0xC0,0x88,0x01,0x23,0x25,0x4D,0x41,0x06,0x09,0x20,0x80,0x01,0x24,0x4F, + 0x24,0x4E,0x5B,0x05,0x20,0x18,0x00,0x29,0x10,0xDA,0x81,0x69,0x69,0x61,0xC1,0x69, + 0xA9,0x61,0x41,0x6A,0x99,0x43,0xE9,0x61,0x81,0x6A,0x29,0x62,0x01,0x6A,0xE9,0x60, + 0x80,0x6B,0x28,0x61,0x1C,0x48,0xA8,0x62,0xE0,0x6A,0x10,0xE0,0x1B,0x49,0x4A,0x69, + 0x6A,0x61,0x8A,0x69,0xAA,0x61,0x0A,0x6A,0x9A,0x43,0xEA,0x61,0x4A,0x6A,0x2A,0x62, + 0xC9,0x69,0xE9,0x60,0x40,0x6B,0x28,0x61,0x15,0x48,0xA8,0x62,0xA0,0x6A,0xFF,0x21, + 0x41,0x31,0x48,0x43,0x39,0x00,0xFA,0xF7,0xB5,0xF8,0xB0,0x62,0x70,0x7B,0x00,0x28, + 0x04,0xD0,0x10,0x48,0xE8,0x60,0x03,0x20,0xC0,0x04,0x28,0x61,0x60,0x6A,0xFF,0x21, + 0x41,0x31,0x48,0x43,0x39,0x00,0xFA,0xF7,0xA5,0xF8,0x70,0x62,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00,0xC0,0x90,0x00,0x40, + 0x10,0x27,0x00,0x00,0x0C,0x07,0x00,0x20,0x00,0x00,0x08,0x84,0x80,0x94,0x00,0x00, + 0x00,0x00,0x04,0x82,0x41,0x20,0x01,0x00,0x07,0x48,0x41,0x7A,0x07,0x48,0x02,0x29, + 0x01,0xD9,0x00,0x6A,0x04,0xE0,0x02,0x29,0x01,0xD1,0xC0,0x69,0x00,0xE0,0x80,0x69, + 0x03,0x49,0x48,0x62,0x70,0x47,0x00,0x00,0x00,0x02,0x00,0x20,0xC0,0x94,0x00,0x00, + 0xC0,0x90,0x00,0x40,0x0F,0x48,0x30,0xB4,0xC0,0x88,0x0F,0x4A,0x01,0x23,0x45,0x06, + 0x0E,0x48,0x0F,0x4C,0x00,0x21,0x1B,0x04,0x00,0x2D,0x02,0x61,0x07,0xDA,0x0C,0x4A, + 0x64,0x32,0x42,0x61,0x81,0x61,0xC1,0x61,0x03,0x62,0x44,0x62,0x06,0xE0,0x44,0x61, + 0x81,0x61,0xC1,0x61,0x03,0x62,0x06,0x4A,0x64,0x3A,0x42,0x62,0x81,0x62,0xC1,0x62, + 0x30,0xBC,0x70,0x47,0x40,0x00,0x00,0x20,0x00,0x00,0x01,0x03,0x40,0xA1,0x00,0x40, + 0xC8,0x00,0x01,0x00,0x11,0x49,0x10,0xB4,0x0A,0x7D,0x11,0x48,0x82,0x73,0x4A,0x7D, + 0xC2,0x73,0x82,0x7B,0x0F,0x48,0xD3,0x07,0x0A,0xD0,0x93,0x07,0x0E,0x4A,0x03,0xD5, + 0x0D,0x23,0x03,0x77,0x00,0x23,0x02,0xE0,0x14,0x23,0x03,0x77,0x01,0x23,0x53,0x71, + 0x8A,0x7D,0x42,0x77,0xCA,0x7D,0x82,0x77,0x0A,0x7E,0xC2,0x77,0x4A,0x7E,0x05,0x48, + 0x20,0x30,0x02,0x70,0x89,0x7E,0x41,0x70,0x10,0xBC,0x70,0x47,0x00,0x93,0x00,0x00, + 0x40,0x06,0x00,0x20,0x60,0x06,0x00,0x20,0x0C,0x07,0x00,0x20,0xFF,0xB5,0x05,0x00, + 0x14,0x00,0x19,0x00,0x10,0x00,0x81,0xB0,0xFB,0xF7,0x24,0xF8,0x00,0x28,0x08,0xD0, + 0x02,0x98,0x02,0x99,0x00,0x68,0x40,0x1E,0x08,0x60,0x05,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x29,0x48,0x80,0x7B,0xC0,0x07,0x22,0xD0,0xE0,0x79,0x05,0x28,0x1D,0xD0, + 0x09,0x28,0x1D,0xD1,0x6D,0x08,0x6D,0x00,0x01,0x20,0x09,0x27,0x22,0x78,0x23,0x4E, + 0xBF,0x01,0x0F,0xE0,0x0A,0x23,0x01,0x00,0x59,0x43,0x21,0x4B,0xC9,0x18,0xC9,0x19, + 0x8B,0x7B,0x9A,0x42,0x05,0xD1,0x0B,0x8A,0x63,0x80,0xCB,0x7B,0x63,0x70,0x49,0x8A, + 0xA1,0x80,0x40,0x1C,0x71,0x7A,0x81,0x42,0xEC,0xDA,0x01,0xE0,0x01,0x20,0x05,0x43, + 0x0F,0x21,0xA8,0x07,0x89,0x06,0x88,0x43,0x21,0x78,0x62,0x78,0x09,0x07,0x89,0x08, + 0x08,0x43,0x14,0x49,0x92,0x06,0x08,0x40,0x61,0x88,0x12,0x0C,0x89,0x05,0x89,0x09, + 0x08,0x43,0x3F,0x21,0x89,0x02,0x88,0x43,0x10,0x43,0x02,0x04,0x92,0x0E,0x0F,0x2A, + 0x03,0xD9,0x88,0x43,0x0F,0x21,0x89,0x02,0x40,0x18,0xA1,0x88,0x80,0x0A,0x80,0x02, + 0x89,0x05,0x89,0x0D,0x08,0x43,0x02,0x99,0x01,0x22,0x09,0x68,0x52,0x07,0x89,0x00, + 0x89,0x18,0x48,0x60,0xA9,0xE7,0x00,0x00,0x40,0x06,0x00,0x20,0x00,0x02,0x00,0x20, + 0x40,0x00,0x00,0x20,0xFF,0xFF,0x00,0xFC,0x0E,0x49,0x10,0xB4,0x88,0x7B,0x00,0x28, + 0x10,0xD0,0x00,0x09,0x00,0x01,0x00,0x23,0x01,0x22,0x40,0x28,0x0C,0xD0,0x80,0x28, + 0x08,0xD1,0x8A,0x72,0xCA,0x72,0x08,0x48,0x0A,0x73,0x0A,0x72,0x00,0x78,0x00,0x28, + 0x06,0xD1,0x4B,0x73,0x10,0xBC,0x70,0x47,0xCB,0x71,0x0A,0x72,0x4B,0x72,0xF9,0xE7, + 0x4A,0x73,0xF7,0xE7,0x0C,0x07,0x00,0x20,0xA0,0x95,0x00,0x00,0xF8,0xB5,0x06,0x9F, + 0x07,0x9D,0x0C,0x00,0x1E,0x00,0x88,0x42,0x09,0xD3,0x21,0x00,0x10,0x00,0xF9,0xF7, + 0x59,0xFE,0x38,0x80,0x21,0x00,0x30,0x00,0xF9,0xF7,0x54,0xFE,0x28,0x80,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0xF8,0xB5,0x08,0xAD,0x60,0xCD,0x04,0x00,0x06,0x98,0x91,0x42, + 0x04,0xDA,0x65,0x80,0xA6,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x99,0x42,0x02,0xDB, + 0x60,0x80,0x07,0x98,0x0F,0xE0,0x8F,0x1A,0x40,0x1B,0x78,0x43,0x99,0x1A,0x00,0x91, + 0xF9,0xF7,0x38,0xFE,0x40,0x19,0x60,0x80,0x07,0x98,0x00,0x99,0x80,0x1B,0x78,0x43, + 0xF9,0xF7,0x30,0xFE,0x80,0x19,0xA0,0x80,0xE5,0xE7,0x00,0x00,0xF0,0xB4,0x8C,0x79, + 0x14,0x4B,0x00,0x26,0x22,0x07,0x92,0x08,0x1A,0x40,0xCB,0x79,0x92,0x0A,0x92,0x02, + 0x5B,0x07,0x09,0xD5,0x10,0x4D,0xAB,0x89,0x00,0x2B,0x05,0xD0,0x9F,0x05,0xBF,0x0D, + 0x3A,0x43,0x64,0x00,0x64,0x19,0xE3,0x81,0x3F,0x23,0x9B,0x02,0x9A,0x43,0xCB,0x79, + 0x80,0x00,0x9B,0x06,0x1B,0x0C,0x1A,0x43,0x01,0x23,0x5B,0x07,0xC0,0x18,0x42,0x60, + 0xC8,0x79,0xC0,0x06,0x80,0x0F,0x03,0xD0,0x04,0x48,0x01,0x21,0xC1,0x72,0x06,0x73, + 0xF0,0xBC,0x70,0x47,0xFF,0xFF,0x00,0xFC,0x40,0x00,0x00,0x20,0x40,0x06,0x00,0x20, + 0x30,0xB4,0x0E,0x25,0x68,0x43,0x0B,0x4C,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06, + 0x00,0x0A,0x09,0x0E,0x82,0x18,0xC9,0x18,0x00,0x20,0x4B,0x1E,0xC0,0x43,0xFF,0x2B, + 0x06,0xD2,0x53,0x1E,0xFF,0x2B,0x03,0xD2,0x10,0x02,0x08,0x43,0x60,0x53,0x00,0x20, + 0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0x10,0xB4,0x0E,0x24,0x60,0x43,0x03,0x4B, + 0x40,0x18,0x40,0x00,0x1A,0x52,0x10,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0x0E,0x23,0x58,0x43,0x30,0xB4,0x0B,0x4C,0x40,0x18,0x43,0x00,0xE0,0x5A,0x01,0x06, + 0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18,0x00,0x20,0x4D,0x1E,0xC0,0x43,0xFF,0x2D, + 0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2,0x10,0x02,0x08,0x43,0xE0,0x52,0x00,0x20, + 0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0x70,0xB4,0x12,0x4A,0x11,0x4D,0x52,0x7D, + 0x00,0x21,0x20,0x3D,0x14,0x02,0x14,0x43,0x0E,0x22,0x50,0x43,0x0C,0x4B,0x86,0x18, + 0x12,0xE0,0xAA,0x7D,0x8A,0x42,0x0D,0xD0,0xEA,0x7D,0x8A,0x42,0x0A,0xD0,0x2A,0x7E, + 0x8A,0x42,0x07,0xD0,0x6A,0x7E,0x8A,0x42,0x04,0xD0,0xAA,0x7E,0x8A,0x42,0x01,0xD0, + 0x42,0x00,0x9C,0x52,0x40,0x1C,0x49,0x1C,0x86,0x42,0xEA,0xD8,0x70,0xBC,0x70,0x47, + 0x00,0x00,0x10,0x40,0x20,0x93,0x00,0x00,0x70,0xB4,0x12,0x4A,0x11,0x4B,0x52,0x7D, + 0x00,0x21,0x20,0x3B,0x15,0x02,0x15,0x43,0xFF,0x26,0x0D,0x4C,0x27,0x36,0x12,0xE0, + 0x9A,0x7D,0x8A,0x42,0x0D,0xD0,0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E,0x8A,0x42, + 0x07,0xD0,0x5A,0x7E,0x8A,0x42,0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00, + 0xA5,0x52,0x0E,0x30,0x49,0x1C,0xB0,0x42,0xEA,0xD3,0x70,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0x20,0x93,0x00,0x00,0x02,0x04,0x04,0x49,0x02,0x43,0x00,0x20, + 0x40,0x1C,0x04,0xC1,0xB5,0x28,0xFB,0xD3,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0x05,0x48,0x07,0x49,0xC0,0x88,0x42,0x06,0x04,0x48,0x01,0xD5,0x40,0x68,0x00,0xE0, + 0x00,0x68,0x48,0x60,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0xC0,0x93,0x00,0x00, + 0x00,0x90,0x00,0x40,0x03,0x00,0xF0,0xB5,0x1F,0x49,0x05,0x20,0xC0,0x01,0x0A,0x18, + 0x0B,0x20,0x80,0x01,0x0D,0x18,0xC0,0x31,0x1A,0x4C,0x4F,0x6A,0x0E,0x6A,0x88,0x6A, + 0x00,0xF0,0xFA,0xFA,0x06,0x04,0x0A,0x14,0x1A,0x22,0x27,0x11,0xC8,0x68,0x20,0x62, + 0x50,0x6B,0x60,0x62,0x02,0x20,0x04,0xE0,0xC8,0x69,0x20,0x62,0x68,0x68,0x60,0x62, + 0x03,0x20,0xE0,0x62,0x66,0x63,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x08,0x69,0x20,0x62, + 0x90,0x6B,0x60,0x62,0x03,0x20,0x04,0xE0,0x48,0x69,0x20,0x62,0xD0,0x6B,0x60,0x62, + 0x04,0x20,0xE0,0x62,0x67,0x63,0xEE,0xE7,0xFF,0x21,0x01,0x31,0x21,0x62,0x2A,0x21, + 0x02,0xE0,0x89,0x69,0x21,0x62,0x29,0x68,0x61,0x62,0x05,0x21,0xE1,0x62,0x60,0x63, + 0xE1,0xE7,0x00,0x00,0x80,0x90,0x00,0x40,0x00,0x93,0x00,0x00,0x01,0x21,0x49,0x07, + 0x48,0x68,0x00,0x23,0x00,0x04,0x00,0x0F,0x00,0x28,0x0B,0x4A,0x48,0x68,0x03,0xD0, + 0x00,0x04,0x00,0x0F,0x40,0x1C,0x0C,0xE0,0xC0,0x02,0xC0,0x0E,0x01,0xD0,0x01,0x20, + 0x07,0xE0,0x10,0x79,0x00,0x28,0x02,0xD1,0x01,0x20,0x03,0x00,0x01,0xE0,0x0F,0x23, + 0x00,0x20,0x13,0x71,0x08,0x60,0x70,0x47,0x0C,0x07,0x00,0x20,0x0A,0x4A,0x10,0xB5, + 0xD1,0x88,0x0A,0x4B,0x40,0x24,0x00,0x28,0x03,0xD0,0x21,0x43,0x08,0x48,0xD1,0x80, + 0x03,0xE0,0x07,0x48,0xA1,0x43,0xC4,0x38,0xD1,0x80,0x18,0x60,0xFF,0xF7,0x16,0xFD, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0xD4,0x07,0x00,0x20, + 0xB0,0x94,0x00,0x00,0xFE,0xB5,0x04,0x00,0x37,0x48,0x0E,0x00,0x07,0x6A,0x41,0x6A, + 0x02,0x91,0x41,0x6B,0x01,0x91,0xC0,0x6A,0x00,0x90,0x00,0x20,0xFF,0xF7,0x72,0xFF, + 0xFB,0xF7,0xB6,0xFD,0x25,0x00,0x46,0xE0,0x68,0x1E,0x84,0x42,0x01,0xD1,0xFB,0xF7, + 0xE5,0xFD,0xFB,0xF7,0x5F,0xFD,0xFB,0xF7,0x35,0xFE,0x00,0x2E,0x2E,0xD1,0xA8,0x00, + 0x05,0x21,0xF9,0xF7,0xD7,0xFD,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x04,0x20, + 0x21,0xE0,0x68,0x00,0x28,0x18,0x05,0x21,0xF9,0xF7,0xCC,0xFD,0xA0,0x42,0x03,0xD8, + 0x01,0x22,0x11,0x00,0x03,0x20,0x16,0xE0,0x68,0x00,0x05,0x21,0xF9,0xF7,0xC2,0xFD, + 0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x02,0x20,0x0C,0xE0,0x05,0x21,0x28,0x00, + 0xF9,0xF7,0xB8,0xFD,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x10,0x00,0x02,0xE0, + 0x01,0x22,0x11,0x00,0x00,0x20,0xFB,0xF7,0x03,0xFB,0x0C,0xE0,0x68,0x00,0x03,0x21, + 0xF9,0xF7,0xA8,0xFD,0xA0,0x42,0xDB,0xD9,0x03,0x21,0x28,0x00,0xF9,0xF7,0xA2,0xFD, + 0xA0,0x42,0xE9,0xD8,0xDE,0xE7,0x64,0x1E,0xB6,0xD2,0x0C,0x48,0x44,0x88,0x03,0xE0, + 0xFB,0xF7,0x18,0xFD,0xFB,0xF7,0xEE,0xFD,0x64,0x1E,0xF9,0xD2,0xFB,0xF7,0x58,0xFD, + 0x05,0x48,0x07,0x62,0x02,0x99,0x41,0x62,0x01,0x99,0x41,0x63,0x00,0x99,0xC1,0x62, + 0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x80,0x90,0x00,0x40,0xE0,0x95,0x00,0x00, + 0x30,0xB4,0x0D,0x4D,0xEC,0x7B,0x00,0x2C,0x13,0xD0,0x02,0x68,0x0B,0x68,0xA4,0x07, + 0x03,0xD5,0x2C,0x8C,0xA2,0x1A,0x52,0x1E,0x02,0x60,0xEC,0x7B,0x64,0x07,0x03,0xD5, + 0x6C,0x8C,0xE3,0x1A,0x5B,0x1E,0x0B,0x60,0xEC,0x7B,0xE4,0x07,0x01,0xD0,0x03,0x60, + 0x0A,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x93,0x00,0x00,0x02,0x49,0x00,0x03, + 0x40,0x18,0xC0,0x68,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x49,0x01,0x20, + 0x08,0x70,0x70,0x47,0xD9,0x07,0x00,0x20,0x30,0xB4,0x05,0x03,0x05,0x48,0x02,0x9C, + 0x28,0x18,0x02,0x60,0x41,0x60,0x00,0x2B,0x00,0xD0,0x03,0x61,0x84,0x60,0x30,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x02,0x4A,0x00,0x03,0x80,0x18,0x01,0x60, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68, + 0xFF,0x22,0x01,0x32,0x11,0x43,0x81,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x91,0x43,0x81,0x60, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x0F,0x49,0x89,0x7B,0x81,0x42,0x00,0xD2, + 0x08,0x00,0x01,0x22,0x52,0x07,0x01,0x28,0x0C,0xD1,0x91,0x68,0x8B,0x0F,0xDB,0x07, + 0x04,0xD0,0x89,0x00,0x89,0x08,0x83,0x07,0xC9,0x18,0x01,0xE0,0x89,0x00,0x89,0x08, + 0x51,0x60,0x07,0xE0,0x01,0x28,0x05,0xD9,0x01,0x21,0xC9,0x07,0x83,0x05,0x9B,0x0D, + 0x19,0x43,0xF5,0xE7,0x10,0x60,0x70,0x47,0x00,0x93,0x00,0x00,0x38,0xB5,0x00,0x24, + 0x71,0x20,0x6B,0x46,0x00,0x94,0xD8,0x70,0x00,0x98,0x01,0x25,0x6D,0x07,0x68,0x60, + 0x0D,0x48,0x0D,0x22,0x21,0x00,0xFE,0xF7,0xCF,0xF8,0x0B,0x48,0x0D,0x22,0x00,0x21, + 0x0D,0x38,0xFE,0xF7,0xC9,0xF8,0x08,0x49,0xC9,0x1D,0x88,0x79,0x00,0x28,0x08,0xD0, + 0x00,0x20,0x03,0xE0,0x82,0x00,0x52,0x19,0x94,0x60,0x40,0x1C,0x8A,0x79,0x82,0x42, + 0xF8,0xDC,0x38,0xBC,0x08,0xBC,0x18,0x47,0xB9,0x06,0x00,0x20,0xF0,0xB5,0x00,0x24, + 0x25,0x00,0x20,0x00,0x01,0x21,0x8D,0xB0,0x49,0x07,0x0C,0x94,0x4F,0x68,0x61,0x4E, + 0xB9,0x0F,0x89,0x07,0x7E,0xD5,0x30,0x22,0x00,0x21,0x68,0x46,0xFE,0xF7,0xA4,0xF8, + 0x07,0x21,0xB8,0x01,0x49,0x05,0x40,0x08,0x08,0x40,0x31,0x00,0x88,0x43,0x39,0x07, + 0x09,0x0C,0x08,0x43,0x0C,0x90,0x00,0x20,0x33,0xE0,0x01,0x22,0x81,0x00,0x52,0x07, + 0x89,0x18,0x89,0x68,0x8E,0x00,0x32,0x0F,0x2A,0xD0,0x32,0x0F,0x94,0x46,0x92,0x00, + 0x6B,0x46,0xD2,0x18,0x40,0x3A,0xD3,0x6B,0x36,0x0F,0x1B,0x01,0x1B,0x09,0x36,0x07, + 0x33,0x43,0x0F,0x27,0x3F,0x06,0x0E,0x04,0xB6,0x08,0xBB,0x43,0x3E,0x40,0x33,0x43, + 0x49,0x4E,0x33,0x40,0x8E,0x01,0xB6,0x0D,0x36,0x03,0x33,0x43,0x1B,0x0B,0x89,0x05, + 0x1B,0x03,0x89,0x0D,0x0B,0x43,0xD3,0x63,0x62,0x46,0x52,0x1E,0x01,0x23,0x93,0x40, + 0x9A,0x05,0x92,0x0D,0x71,0x46,0x11,0x43,0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x0C,0x91, + 0x40,0x1C,0x0C,0x99,0x8E,0x46,0x09,0x04,0x09,0x0F,0x81,0x42,0xC5,0xD8,0x0C,0x98, + 0x01,0x27,0x00,0x04,0x00,0x0F,0x7B,0x07,0x0F,0xE0,0x82,0x00,0xD2,0x18,0x92,0x68, + 0x3E,0x00,0x92,0x00,0x12,0x0F,0x52,0x1E,0x96,0x40,0xF2,0x06,0xD2,0x0A,0x64,0x1C, + 0x11,0x43,0x24,0x06,0x24,0x0E,0x40,0x1C,0x0C,0x91,0x0C,0x99,0x0A,0x04,0x0E,0x02, + 0x12,0x0F,0x76,0x0F,0x92,0x19,0x82,0x42,0xE7,0xD8,0x00,0x21,0x08,0x00,0x6E,0x46, + 0x82,0x00,0xB2,0x58,0x00,0x2A,0x03,0xD0,0x8F,0x00,0xFF,0x18,0xBA,0x60,0x49,0x1C, + 0x40,0x1C,0x0C,0x28,0xF4,0xD3,0x23,0x49,0x0C,0x98,0x88,0x43,0x29,0x07,0x09,0x0C, + 0x08,0x43,0x00,0xE0,0x07,0xE0,0x07,0x21,0x49,0x05,0x88,0x43,0x61,0x07,0x09,0x0A, + 0x08,0x43,0x0C,0x90,0x2B,0xE0,0xB9,0x0F,0xC9,0x07,0x25,0xD0,0x01,0x23,0x5B,0x07, + 0x58,0x68,0x19,0x4C,0x82,0x00,0x11,0x0F,0x09,0x07,0x21,0x40,0x84,0x01,0xA4,0x0D, + 0x24,0x03,0x21,0x43,0x84,0x05,0x09,0x0B,0x09,0x03,0xA4,0x0D,0x21,0x43,0x0F,0x24, + 0x24,0x06,0x00,0x04,0x80,0x08,0xA1,0x43,0x20,0x40,0x01,0x43,0x08,0x0F,0x09,0xD0, + 0x12,0x0F,0x52,0x1E,0x01,0x20,0x90,0x40,0x80,0x05,0x80,0x0D,0xB0,0x43,0x5A,0x14, + 0x80,0x18,0x0C,0x90,0x99,0x60,0x02,0xE0,0x01,0x21,0x49,0x07,0x88,0x60,0x71,0x20, + 0x08,0xAB,0xD8,0x74,0x0C,0x99,0x40,0x07,0x41,0x60,0x0D,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0xF0,0x00,0x00,0xFF,0x0F,0x00,0xFF,0x08,0x48,0x10,0xB5, + 0x04,0x04,0x24,0x0C,0x07,0x49,0x00,0x22,0x20,0x00,0xF9,0xF7,0x21,0xFC,0x05,0x4A, + 0x05,0x49,0x20,0x00,0x00,0x23,0xF9,0xF7,0x23,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x93,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x10,0x70,0xB5,0x05,0x00, + 0x08,0x48,0x00,0x22,0x04,0x04,0x24,0x0C,0x40,0x21,0x20,0x00,0xF9,0xF7,0x08,0xFC, + 0x40,0x22,0x29,0x00,0x20,0x00,0x00,0x23,0xF9,0xF7,0x0A,0xFC,0x70,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xC0,0x92,0x00,0x00,0x02,0x4B,0x58,0x60,0x99,0x60,0x1A,0x60, + 0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40,0x01,0x04,0x00,0xB5,0x03,0x48,0x02,0x22, + 0x09,0x0C,0xFF,0xF7,0xF1,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00,0xE1,0x04,0x00,0x00, + 0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40, + 0x02,0x48,0x01,0x68,0x49,0x08,0x49,0x00,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40, + 0x02,0x49,0x02,0x22,0x0A,0x61,0x88,0x60,0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40, + 0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47,0xD8,0x07,0x00,0x20,0x00,0x04,0x00,0x0C, + 0x01,0x21,0x89,0x07,0x08,0x61,0x70,0x47,0x01,0x20,0x80,0x07,0x81,0x68,0x82,0x15, + 0x11,0x43,0x81,0x60,0x70,0x47,0x01,0x21,0x89,0x07,0x88,0x68,0x8A,0x15,0x90,0x43, + 0x88,0x60,0x70,0x47,0x70,0xB4,0x03,0xAC,0x30,0xCC,0x06,0x68,0x96,0x42,0x01,0xDB, + 0x32,0x00,0x00,0xE0,0x02,0x60,0x9A,0x42,0x00,0xDD,0x03,0x60,0x08,0x68,0xA0,0x42, + 0x00,0xDA,0x0C,0x60,0x08,0x68,0xA8,0x42,0x00,0xDD,0x0D,0x60,0x70,0xBC,0x70,0x47, + 0x00,0x47,0x00,0x00,0x78,0x47,0xC0,0x46,0x14,0x30,0x9F,0xE5,0xC0,0x2F,0xA0,0xE1, + 0x93,0xC0,0xC1,0xE0,0x63,0x30,0xE0,0xE3,0xC1,0x12,0x62,0xE0,0x93,0x01,0x20,0xE0, + 0x1E,0xFF,0x2F,0xE1,0x1F,0x85,0xEB,0x51,0x78,0x47,0xC0,0x46,0x01,0xC0,0x5E,0xE5, + 0x0C,0x00,0x53,0xE1,0x03,0x30,0xDE,0x37,0x0C,0x30,0xDE,0x27,0x83,0xC0,0x8E,0xE0, + 0x1C,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x10,0x30,0x9F,0xE5,0x93,0x10,0x82,0xE0, + 0x63,0x30,0xE0,0xE3,0xA2,0x12,0xA0,0xE1,0x93,0x01,0x20,0xE0,0x1E,0xFF,0x2F,0xE1, + 0x1F,0x85,0xEB,0x51,0x10,0xB5,0xF9,0xF7,0x7B,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x25,0x00,0x6F,0x00,0xB9,0x00,0xF0,0x00,0x27,0x01,0x71,0x01,0xBB,0x01,0x20,0x00, + 0x6C,0x00,0xB8,0x00,0x04,0x01,0x50,0x01,0x89,0x01,0xC2,0x01,0x0E,0x02,0x5A,0x02, + 0xA6,0x02,0xF2,0x02,0x24,0x00,0x72,0x00,0xBD,0x00,0x09,0x01,0x55,0x01,0x90,0x01, + 0xCC,0x01,0x19,0x02,0x59,0x02,0xAE,0x02,0xF4,0x02,0x00,0x00,0x01,0x00,0x00,0x00, + 0x01,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + 0xFF,0xFF,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x89,0x08,0x49,0x1E, + 0x49,0x04,0x01,0x22,0x49,0x08,0xD2,0x07,0x89,0x18,0x00,0x04,0x00,0x0C,0x01,0x43, + 0x03,0x48,0x41,0x61,0x41,0x69,0x00,0x29,0xFC,0xDB,0x80,0x6B,0x70,0x47,0x00,0x00, + 0x00,0x70,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0B,0x38,0x30,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,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,0xFF,0x00,0x00,0x00, + 0x00,0x00,0x04,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x01,0x08,0x05,0x00, + 0x00,0x00,0x00,0x00,0x03,0x02,0x13,0x14,0xFF,0xFF,0xFF,0x00,0x00,0x64,0x05,0x1E, + 0xE0,0x01,0x20,0x03,0x78,0x37,0x00,0x00,0x78,0x37,0x00,0x00,0x78,0x37,0x00,0x00, + 0xE0,0x93,0x04,0x00,0x01,0x5A,0x40,0x06,0x14,0x05,0x00,0x00,0x04,0x64,0x65,0x65, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x1D,0x00,0x02,0x32,0x00, + 0x2C,0x01,0x2C,0x01,0x00,0x00,0x00,0x00,0x50,0x00,0x5A,0x00,0x32,0x00,0xB8,0x0B, + 0x50,0x00,0x5A,0x00,0x32,0x00,0xE8,0x03,0x64,0x00,0x14,0x00,0x00,0x00,0x00,0x00, + 0x05,0x02,0x0A,0x0A,0x01,0x01,0x04,0x00,0x01,0x02,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x02,0x00,0x00, + 0x00,0x0E,0x00,0x00,0x60,0x0F,0x80,0x8F,0x40,0x0F,0x80,0x8F,0x9D,0xB9,0x2C,0x01, + 0x0A,0x00,0x1E,0x00,0x64,0x64,0x64,0x64,0x46,0x00,0x32,0x00,0x32,0x00,0x05,0x00, + 0x19,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x3C,0x00,0x5E,0x01,0x90,0x01,0x90,0x01, + 0x2C,0x01,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00, + 0x05,0x01,0x32,0x00,0xDC,0x05,0xE8,0x03,0x14,0x00,0x96,0x96,0x96,0x96,0x00,0x96, + 0x96,0x96,0xB4,0x00,0xFF,0x0F,0x58,0x02,0x32,0x00,0x14,0x00,0xFA,0xFA,0x19,0xA0, + 0x00,0x05,0x04,0x0A,0x0A,0x06,0xE8,0x03,0x46,0x00,0x06,0xFF,0x00,0x05,0x1E,0x00, + 0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xDC,0x00,0x05,0x02,0x01,0x02,0x01,0x00,0x01,0x03,0x01,0x00,0x05,0x05,0x0A,0x0A, + 0x0F,0x0F,0x14,0x14,0x64,0x55,0x01,0x00,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,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x41,0x82,0x01,0x00, + 0x1C,0x1F,0x98,0x00,0x10,0x3F,0x10,0x3F,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00, + 0x9D,0x99,0x2C,0x01,0x0A,0x00,0x1E,0x00,0x64,0x64,0x64,0x64,0x46,0x00,0x32,0x00, + 0x96,0x00,0x14,0x00,0x32,0x00,0x14,0x00,0x01,0x00,0x0A,0x02,0x46,0x00,0x5E,0x01, + 0x90,0x01,0x90,0x01,0x90,0x01,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00, + 0x10,0x00,0x10,0x00,0x04,0x01,0x32,0x00,0xDC,0x05,0x2C,0x01,0x14,0x00,0x96,0x96, + 0x96,0x96,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x0F,0x20,0x03,0xC8,0x00,0x1E,0x00, + 0xFA,0xFA,0x0D,0xA0,0x00,0x05,0x04,0x0A,0x02,0x06,0xE8,0x03,0x46,0x00,0x05,0x28, + 0x00,0x05,0x1E,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xDC,0x00,0x05,0x04,0x01,0x01,0x01,0x00,0x03,0x05,0x03,0x00, + 0x05,0x05,0x0A,0x0A,0x0F,0x0F,0x14,0x14,0x64,0x55,0x01,0x00,0x03,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03, + 0x41,0x82,0x01,0x00,0x1C,0x1F,0xA8,0x00,0x10,0x3F,0x10,0x3F,0x00,0x00,0x00,0x00, + 0x01,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00, + 0x64,0x00,0x0A,0x00,0x05,0x00,0x00,0x00,0x0A,0x00,0xC8,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x96,0x00,0xFA,0x00,0x00,0x00, + 0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x24,0x00,0x00,0x00, + 0x2A,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x64,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x0A,0x00,0x00,0x5A,0x5A,0x5A,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x32,0x00,0x32,0x00,0x32,0x00,0x32,0x00,0x0A,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xF0,0x0F,0x02,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x15,0x0E,0x15,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x00,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x8D,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x22,0x01,0x00, + 0x00,0x00,0x18,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x1C,0x18,0x98,0x00, + 0x30,0x3F,0x30,0x3F,0x64,0x14,0x10,0x00,0x00,0x00,0x04,0x82,0x00,0x00,0xFF,0x0F, + 0x01,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xC8,0x00,0x40,0x06,0x00,0x00,0x08,0x00, + 0x21,0x00,0x10,0x00,0x61,0x80,0x01,0x00,0xFF,0xFF,0xFF,0x10,0xFF,0xFF,0xFF,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x54,0x55,0x45,0x00,0x10,0x10,0x00,0x00,0x00,0x68,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x14,0x00,0x00,0x0C,0x0C,0x06,0x00, + 0x00,0x01,0x03,0x02,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0xC0,0xDA,0x00,0x00, + 0x50,0x30,0x20,0x00,0x50,0x37,0x20,0x07,0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xD0,0x07,0x08,0x00,0x12,0x12,0xC8,0x01,0x90,0x81,0x0C,0x00,0x00,0x08,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x03,0xC8,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x00,0x64,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,0x10,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00, + 0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00, + 0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00, + 0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00, + 0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00,0x50,0x30,0x20,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x3F,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x3F,0x2C,0x20,0x20,0x22,0x22,0x22,0x22,0x22,0x22,0x22, + 0x20,0x20,0x22,0x3F,0x22,0x20,0x20,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x20,0x20, + 0x24,0x3F,0x36,0x24,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x24,0x3F, + 0x24,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x34,0x3F,0x3F,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3F,0x2C,0x2C,0x2C,0x2C, + 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x34,0x3F,0x2C,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x44,0xC8,0x61,0x14,0x44, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0x00,0xC0,0x91,0xEB, + 0x21,0x2C,0x92,0xEB,0x42,0xBC,0x92,0xEB,0x63,0x28,0x93,0xEB,0x84,0xB8,0x93,0xEB, + 0xA5,0x24,0x94,0xEB,0xC6,0xB4,0x94,0xEB,0xE7,0x20,0x95,0xEB,0x08,0xB1,0x95,0xEB, + 0x29,0x9D,0x98,0xEB,0x4A,0x01,0x99,0xEB,0x6B,0x99,0x99,0xEB,0x8C,0x05,0x9A,0xEB, + 0xAD,0x95,0x9A,0xEB,0xCE,0x09,0x90,0xEB,0xEF,0x11,0x90,0xEB,0x10,0x0E,0x90,0xEB, + 0x31,0x46,0x90,0xEB,0x52,0x52,0x90,0xEB,0x73,0x4A,0x90,0xEB,0x94,0x4E,0x90,0xEB, + 0xB5,0x02,0x90,0xEB,0xD6,0x02,0x90,0xEB,0xF7,0x02,0x90,0xEB,0x00,0x08,0x00,0x00, + 0x00,0x80,0x01,0x00,0x00,0x0C,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x06,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x30,0x00,0x00,0x80,0x01,0x00,0x00, + 0x01,0x10,0x00,0x00,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00,0x02,0x00, + 0x08,0x00,0x10,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x1E,0x00, + 0xF8,0x0F,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x60,0x40, + 0x67,0x60,0x07,0x00,0x00,0x00,0x00,0x00,0x30,0x60,0x30,0x60,0x60,0x30,0x60,0x30, + 0x66,0x60,0x06,0x00,0x63,0x60,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47,0x40,0x04,0x00,0x00,0xC0,0x9B,0x00,0x00, + 0xC0,0x92,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x03,0x00,0x00, + 0x00,0x96,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x02,0x00,0x00, + 0x00,0x99,0x00,0x00,0x00,0x04,0x00,0x00,0xA5,0x00,0xB3,0x00,0x00,0x00,0x00,0x00, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47}; + +#endif // __IST30XXB_FW_H__ diff --git a/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0005_20140323.h b/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0005_20140323.h new file mode 100644 index 00000000..16a43cc1 --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0005_20140323.h @@ -0,0 +1,2572 @@ +#ifndef __IST30XXB_FW_H__ +#define __IST30XXB_FW_H__ + +/* ist30xxb binary: KANAS MELFAS, f/w 5(00040000) */ +static unsigned char ist30xxb_fw[] = { + 0x06,0x00,0x00,0xEA,0x2C,0x00,0x00,0xEA,0x2B,0x00,0x00,0xEA,0x2A,0x00,0x00,0xEA, + 0x29,0x00,0x00,0xEA,0x28,0x00,0x00,0xEA,0x27,0x00,0x00,0xEA,0x3E,0x00,0x00,0xEA, + 0x14,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0xA0,0xE1,0x00,0x00,0x00,0xEA,0x0C,0x20,0x00,0x40, + 0x11,0x01,0xA0,0xE3,0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0xC1,0x01,0xA0,0xE3, + 0x1C,0x10,0x9F,0xE5,0x00,0x10,0x80,0xE5,0x18,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0xF1,0x01,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0x01,0x00,0x00,0xEA,0xC8,0x74,0x00,0x00,0x4C,0x00,0x00,0x40,0x00,0x00,0x0F,0xE1, + 0x1F,0x00,0xC0,0xE3,0xD1,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x1C,0xD0,0x9F,0xE5, + 0xD3,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x14,0xD0,0x9F,0xE5,0x00,0x00,0x0F,0xE1, + 0xC0,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x08,0x00,0x9F,0xE5,0x10,0xFF,0x2F,0xE1, + 0xFC,0x0F,0x00,0x20,0xC0,0x0F,0x00,0x20,0xAD,0x01,0x00,0x00,0x11,0x01,0xA0,0xE3, + 0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x5C,0x30,0x9F,0xE5,0x5C,0x40,0x9F,0xE5, + 0x00,0x40,0x83,0xE5,0x91,0x01,0xA0,0xE3,0x33,0x16,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0xAC,0x00,0x1F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0x00,0x40,0x83,0xE5, + 0xFF,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x03,0x00,0x00,0xEB,0xFE,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0x00,0xEB,0xF7,0xFF,0xFF,0xEA,0x01,0x29,0xA0,0xE3, + 0x01,0x20,0x52,0xE2,0xFD,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0xFF,0x40,0x2D,0xE9, + 0xC6,0x00,0x00,0xEB,0xFF,0x40,0xBD,0xE8,0x04,0xF0,0x5E,0xE2,0x1C,0x40,0x00,0x30, + 0x70,0xE9,0x1C,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x39,0x4A,0x37,0x48,0x37,0x49,0x92,0x08,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x35,0x48,0x01,0x21,0x89,0x07,0xC8,0x61, + 0x34,0x48,0xC9,0x14,0x01,0x62,0x00,0x21,0x01,0x62,0x01,0x62,0x32,0x49,0x33,0x48, + 0x01,0x60,0x20,0x21,0x41,0x60,0xA0,0x21,0x81,0x60,0x70,0x47,0xF8,0xB5,0x2D,0x4B, + 0x9F,0x6A,0x2F,0x48,0x00,0x69,0x42,0x08,0x58,0x69,0x19,0x15,0x08,0x43,0x58,0x61, + 0xFF,0xF7,0xE2,0xFF,0x58,0x69,0xFF,0x21,0x81,0x31,0x08,0x43,0x58,0x61,0x29,0x48, + 0x29,0x4C,0x20,0x60,0xFF,0x20,0x90,0x30,0x60,0x60,0x13,0x20,0xA0,0x60,0xA0,0x68, + 0xA6,0x15,0x30,0x43,0xA0,0x60,0x21,0x4D,0x5F,0x23,0x00,0x2F,0x27,0xD1,0x23,0x4F, + 0x21,0xE0,0x68,0x68,0x00,0x07,0x1E,0xD5,0xE8,0x68,0x40,0x28,0x04,0xD1,0xEA,0x61, + 0x68,0x69,0x18,0x42,0xFC,0xD1,0x14,0xE0,0x20,0x28,0x04,0xD3,0xEF,0x61,0x68,0x69, + 0x18,0x42,0xFC,0xD1,0x0D,0xE0,0x0D,0x28,0x08,0xD1,0x2E,0x20,0x68,0x60,0x68,0x69, + 0x80,0x06,0xFC,0xD4,0x68,0x68,0x80,0x07,0xFC,0xD5,0x08,0xE0,0x68,0x68,0x80,0x07, + 0xFC,0xD5,0xFF,0xF7,0xA9,0xFF,0xE0,0x68,0x11,0x49,0x88,0x42,0xD9,0xD3,0xFF,0xF7, + 0xA3,0xFF,0xA0,0x68,0xB0,0x43,0xA0,0x60,0x00,0xF0,0x3A,0xF9,0xF8,0xBC,0x08,0xBC, + 0x00,0x20,0x18,0x47,0x00,0x00,0x00,0x10,0x84,0x02,0x00,0x00,0xEC,0x00,0x00,0x00, + 0x5C,0x0A,0x00,0x00,0x40,0x00,0x00,0x40,0xDE,0x10,0x05,0x00,0x00,0x40,0x00,0x30, + 0x00,0x20,0x00,0x40,0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40,0xFF,0x03,0xFF,0x2F, + 0x50,0xC3,0x00,0x00,0x38,0x48,0x41,0x6B,0xC9,0x07,0xFC,0xD0,0x41,0x6B,0x01,0x22, + 0x11,0x43,0x41,0x63,0x70,0x47,0x34,0x48,0xC2,0x69,0x41,0x14,0x8A,0x43,0xC2,0x61, + 0xC2,0x69,0x0A,0x43,0xC2,0x61,0xC2,0x69,0x8A,0x43,0xC2,0x61,0x70,0x47,0x10,0xB4, + 0x2D,0x4C,0x40,0x23,0x60,0x60,0x20,0x68,0x80,0x0A,0x80,0x02,0x10,0x43,0xA8,0x22, + 0x10,0x43,0x20,0x60,0x02,0xE0,0x08,0x78,0xA0,0x60,0x49,0x1C,0x5B,0x1E,0xFA,0xD2, + 0x10,0xBC,0x70,0x47,0xF0,0xB5,0x05,0x00,0x0E,0x00,0x1F,0x00,0x94,0x09,0x81,0x06, + 0x22,0x48,0x12,0xD1,0x91,0x06,0x10,0xD1,0x0C,0xE0,0x3A,0x00,0x31,0x00,0x28,0x00, + 0xFF,0xF7,0xDD,0xFF,0x40,0x35,0x2D,0x04,0x2D,0x0C,0x40,0x36,0xFF,0xF7,0xC2,0xFF, + 0xFF,0xF7,0xC9,0xFF,0x64,0x1E,0x60,0x1C,0xEF,0xD1,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x15,0x4B,0x40,0x22,0x58,0x60,0x18,0x68,0x80,0x0A,0x80,0x02,0x08,0x43,0xA4,0x21, + 0x08,0x43,0x18,0x60,0x00,0x21,0x00,0xE0,0x99,0x60,0x52,0x1E,0xFC,0xD2,0x70,0x47, + 0x70,0xB5,0x05,0x00,0x16,0x00,0x8C,0x09,0x82,0x06,0x0C,0x48,0x10,0xD1,0x89,0x06, + 0x0E,0xD1,0x0A,0xE0,0x31,0x00,0x28,0x00,0xFF,0xF7,0xE2,0xFF,0x40,0x35,0x2D,0x04, + 0x2D,0x0C,0xFF,0xF7,0x97,0xFF,0xFF,0xF7,0x9E,0xFF,0x64,0x1E,0x60,0x1C,0xF1,0xD1, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0xF8,0xB5,0xFF,0x20,0x00,0xF0,0x26,0xFF, + 0x03,0x25,0x0F,0x4E,0x2D,0x07,0x01,0x27,0xF0,0x6A,0x00,0x28,0x15,0xD0,0xF0,0x6B, + 0xE9,0x68,0x80,0x08,0x3C,0x00,0x84,0x40,0x21,0x43,0xE9,0x60,0x69,0x68,0x21,0x42, + 0x00,0xD0,0x34,0x63,0x81,0x00,0x07,0x48,0x40,0x58,0x00,0x28,0x01,0xD0,0x08,0xF0, + 0x26,0xFA,0xE8,0x68,0xA0,0x43,0xE8,0x60,0xE6,0xE7,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x40,0x00,0x00,0x30,0xF8,0x05,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF8,0xB5,0x52,0x4A,0x4F,0x48,0x50,0x49,0x92,0x10,0x01,0xE0,0x08,0xC9,0x08,0xC0, + 0x52,0x1E,0xFB,0xD2,0x00,0xF0,0xCE,0xFE,0x07,0x00,0x04,0xF0,0x41,0xF8,0x04,0xF0, + 0x33,0xF8,0x04,0xF0,0xC5,0xF8,0x4A,0x4A,0x4A,0x49,0x4B,0x48,0x00,0xF0,0xFC,0xF9, + 0x05,0x21,0x49,0x03,0x00,0x20,0x00,0xF0,0xFD,0xF9,0x48,0x4C,0x48,0x49,0x20,0x62, + 0x00,0x20,0x00,0xF0,0xF7,0xF9,0x47,0x4B,0x47,0x49,0xD8,0x63,0x47,0x48,0x00,0xF0, + 0xF1,0xF9,0xD9,0x6B,0x00,0x04,0x08,0x43,0xD8,0x63,0x04,0xF0,0x85,0xF8,0x44,0x4A, + 0x44,0x48,0x00,0x21,0x00,0xF0,0xEE,0xF9,0x07,0xF0,0xBC,0xFC,0x04,0xF0,0x34,0xF9, + 0x41,0x48,0x00,0x26,0x81,0x7A,0x01,0x25,0x6D,0x07,0xE1,0x72,0xC1,0x7A,0x21,0x73, + 0x40,0x7A,0x60,0x73,0xA6,0x72,0xA6,0x73,0xE6,0x73,0x26,0x74,0x39,0x48,0x66,0x74, + 0xA6,0x74,0x68,0x63,0xFF,0x20,0xE8,0x63,0xE8,0x14,0x00,0xF0,0x67,0xFE,0x37,0x48, + 0x06,0x70,0xFF,0x20,0x81,0x30,0x00,0xF0,0x61,0xFE,0x35,0x49,0x02,0x20,0x07,0xF0, + 0xED,0xFF,0x02,0x20,0x07,0xF0,0xF2,0xFF,0x60,0x7B,0x00,0x28,0x01,0xD0,0x08,0xF0, + 0x65,0xF9,0x00,0x2F,0x1F,0xD1,0x2F,0x4E,0xB7,0x15,0x60,0x7B,0x00,0x28,0x02,0xD0, + 0x2D,0x49,0xA0,0x6D,0x88,0x60,0xE8,0x6B,0x0B,0x28,0x14,0xD0,0x2B,0x48,0x40,0x68, + 0x00,0x07,0x01,0xD5,0x02,0xF0,0xA2,0xFD,0xF0,0x68,0x29,0x49,0x88,0x42,0xEC,0xD9, + 0x28,0x48,0xC0,0x68,0xFF,0x28,0x06,0xD1,0xB0,0x68,0xB8,0x43,0xB0,0x60,0xB0,0x68, + 0x38,0x43,0xB0,0x60,0xE1,0xE7,0x20,0x7B,0x00,0x28,0x03,0xD1,0x01,0x20,0x80,0x02, + 0x00,0xF0,0x24,0xFE,0x60,0x7B,0x00,0x28,0x01,0xD0,0x08,0xF0,0x3F,0xF9,0x02,0x20, + 0x07,0xF0,0xCC,0xFF,0xFF,0x20,0x81,0x30,0x00,0xF0,0x18,0xFE,0x1A,0x49,0x05,0x20, + 0x03,0xF0,0x08,0xFE,0x0B,0x20,0xE8,0x63,0x03,0xF0,0x9E,0xFE,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xB0,0x05,0x00,0x10,0x7C,0x89,0x00,0x00,0x80,0x01,0x00,0x00, + 0x28,0x00,0x00,0x00,0x54,0x89,0x00,0x00,0x00,0x00,0x00,0x10,0x64,0x05,0x00,0x20, + 0xC0,0x92,0x00,0x00,0xC0,0x0F,0x00,0x20,0x00,0x9D,0x00,0x00,0x00,0x93,0x00,0x00, + 0x24,0x05,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00,0x7D,0x06,0x00,0x20, + 0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x40,0x00,0x30, + 0x50,0xC3,0x00,0x00,0xC0,0x92,0x00,0x00,0x21,0x85,0x00,0x00,0x78,0x47,0xC0,0x46, + 0x01,0x30,0x90,0xE1,0x4C,0x00,0x00,0x4A,0x00,0x20,0xB0,0xE3,0xA0,0x30,0x71,0xE0, + 0x43,0x00,0x00,0x3A,0x20,0x32,0x71,0xE0,0x34,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0, + 0x26,0x00,0x00,0x3A,0x20,0x36,0x71,0xE0,0x17,0x00,0x00,0x3A,0x20,0x38,0x71,0xE0, + 0x09,0x00,0x00,0x3A,0x01,0x14,0xA0,0xE1,0x20,0x38,0x71,0xE0,0xFF,0x24,0x82,0xE3, + 0xFF,0x28,0x82,0x23,0x01,0x14,0xA0,0x21,0x20,0x36,0x71,0xE0,0x0E,0x00,0x00,0x3A, + 0x00,0x30,0x71,0xE2,0x6F,0x00,0x00,0x2A,0x21,0x14,0xA0,0x21,0xA0,0x37,0x71,0xE0, + 0x81,0x07,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x37,0x71,0xE0,0x01,0x07,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x36,0x71,0xE0,0x81,0x06,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x36,0x71,0xE0,0x01,0x06,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x35,0x71,0xE0, + 0x81,0x05,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x35,0x71,0xE0,0x01,0x05,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x34,0x71,0xE0,0x81,0x04,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x34,0x71,0xE0,0x01,0x04,0x40,0x20,0x02,0x20,0xB2,0xE0,0xE5,0xFF,0xFF,0x2A, + 0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0, + 0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0, + 0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0, + 0x1E,0xFF,0x2F,0xE1,0x01,0x10,0x50,0xE0,0x01,0x00,0xA0,0x23,0x1E,0xFF,0x2F,0x21, + 0x00,0x10,0xA0,0xE1,0x00,0x00,0xB0,0xE3,0x1E,0xFF,0x2F,0xE1,0x02,0x21,0x11,0xE2, + 0x00,0x10,0x61,0x42,0x40,0xC0,0x32,0xE0,0x00,0x00,0x60,0x22,0x20,0x32,0x71,0xE0, + 0x1D,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0,0x0F,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1, + 0x20,0x34,0x71,0xE0,0x3F,0x23,0x82,0xE3,0x0B,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1, + 0x20,0x34,0x71,0xE0,0x3F,0x26,0x82,0xE3,0x07,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1, + 0x20,0x34,0x71,0xE0,0x3F,0x29,0x82,0xE3,0x01,0x13,0xA0,0x21,0x3F,0x2C,0x82,0x23, + 0x00,0x30,0x71,0xE2,0x1D,0x00,0x00,0x2A,0x21,0x13,0xA0,0x21,0xA0,0x33,0x71,0xE0, + 0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0, + 0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xEB,0xFF,0xFF,0x2A,0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0, + 0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x00,0x10,0x61,0x22,0x1E,0xFF,0x2F,0xE1, + 0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x01,0x40,0x2D,0xE9,0x00,0x00,0xB0,0xE3, + 0x01,0x00,0x00,0xEB,0x02,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x00,0x00,0xA0,0xE1, + 0x07,0x40,0x2D,0xE9,0x02,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB,0x07,0x40,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x10,0xB5, + 0x02,0x20,0x08,0xF0,0x1B,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46, + 0x00,0x20,0xB0,0xE3,0x20,0x32,0x71,0xE0,0xA0,0xFF,0xFF,0x3A,0x20,0x34,0x71,0xE0, + 0x92,0xFF,0xFF,0x3A,0x20,0x36,0x71,0xE0,0x83,0xFF,0xFF,0x3A,0x20,0x38,0x71,0xE0, + 0x75,0xFF,0xFF,0x3A,0x6A,0xFF,0xFF,0xEA,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5, + 0x48,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1, + 0x01,0x00,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0xB0,0x05,0x00,0x10, + 0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0xAD,0x00,0x00,0x10, + 0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x51,0x00,0x00,0x10, + 0x04,0xF0,0x1F,0xE5,0xB0,0x05,0x00,0x10,0x04,0xF0,0x1F,0xE5,0x0C,0x06,0x00,0x10, + 0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0xF0,0x05,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x04,0xF0,0x1F,0xE5,0x88,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5, + 0x28,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0x0C,0x06,0x00,0x10, + 0x04,0xF0,0x1F,0xE5,0x88,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5, + 0xF0,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0xA8,0x06,0x00,0x10, + 0x78,0x47,0xC0,0x46,0xC8,0xFD,0xFF,0xEA,0x02,0x48,0x01,0x68,0x02,0x4A,0x11,0x40, + 0x01,0x60,0x70,0x47,0x00,0xA0,0x00,0x40,0xFE,0xFF,0xEF,0xFF,0x07,0x49,0x10,0xB5, + 0x08,0x68,0x07,0x4A,0x10,0x43,0x08,0x60,0x0B,0x24,0x02,0xF0,0x81,0xFB,0x64,0x1E, + 0x00,0x2C,0xFA,0xDC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x01,0x00,0x10,0x00,0xF0,0xB5,0x01,0x27,0x7F,0x07,0x3D,0x68,0x17,0x4E,0xB0,0x7F, + 0xC0,0x07,0x26,0xD0,0x70,0x7E,0x00,0x28,0x21,0xD0,0xBA,0x00,0x01,0x2D,0x02,0xD1, + 0x79,0x68,0x11,0x43,0xB9,0x60,0x00,0x04,0x02,0x43,0x90,0x0A,0x80,0x02,0xA9,0x05, + 0x89,0x0D,0x08,0x43,0x78,0x60,0x01,0x24,0x08,0xE0,0x0D,0x49,0xE0,0x00,0x40,0x18, + 0x0C,0x49,0x41,0x18,0x28,0x19,0x07,0xF0,0x61,0xFB,0x64,0x1C,0x70,0x7E,0xA0,0x42, + 0xF3,0xDA,0x70,0x7E,0x01,0x28,0x02,0xD1,0x00,0x2D,0x00,0xD1,0x01,0x25,0x70,0x7E, + 0x45,0x19,0x3D,0x60,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x04,0x00,0x20, + 0x40,0x00,0x00,0x20,0xAA,0x04,0x00,0x00,0x70,0xB4,0x1A,0x4B,0xDA,0x88,0xD2,0x07, + 0x2B,0xD1,0x19,0x4A,0x05,0x78,0x54,0x7E,0xE4,0x00,0xE6,0x18,0x25,0x24,0x64,0x01, + 0x36,0x19,0xB5,0x74,0x56,0x7E,0x45,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0xB5,0x82, + 0x56,0x7E,0x85,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0xF5,0x82,0x55,0x7E,0xED,0x00, + 0xED,0x18,0x2D,0x19,0x29,0x76,0x55,0x7E,0xC1,0x79,0xED,0x00,0xEB,0x18,0x1B,0x19, + 0x59,0x76,0x51,0x7E,0x49,0x1C,0x51,0x76,0xC0,0x79,0x06,0x28,0x07,0xD0,0x0A,0x28, + 0x01,0xD0,0x12,0x28,0x01,0xD1,0x00,0x20,0x90,0x76,0x70,0xBC,0x70,0x47,0x01,0x20, + 0xFA,0xE7,0x00,0x00,0x40,0x00,0x00,0x20,0xA0,0x04,0x00,0x20,0xF0,0x00,0x2D,0xE9, + 0x70,0x60,0x9F,0xE5,0x01,0xC1,0x81,0xE0,0x8C,0xC0,0x86,0xE0,0x81,0x40,0x86,0xE0, + 0x8C,0x21,0xCC,0xE5,0xB4,0x5F,0xD4,0xE1,0xCD,0x70,0xA0,0xE3,0x33,0x7B,0x87,0xE2, + 0x97,0x05,0x05,0xE0,0xA5,0x79,0xA0,0xE1,0x01,0x5C,0x8C,0xE2,0x01,0x4C,0x84,0xE2, + 0xBE,0x78,0xC5,0xE1,0xB6,0x40,0xD4,0xE1,0xCD,0x70,0xA0,0xE3,0x33,0x7B,0x87,0xE2, + 0x97,0x04,0x04,0xE0,0xA4,0x49,0xA0,0xE1,0xB0,0x49,0xC5,0xE1,0x01,0x40,0x86,0xE0, + 0x38,0x41,0xD4,0xE5,0x8D,0x41,0xCC,0xE5,0x92,0x31,0xCC,0xE5,0x01,0x20,0xC0,0xE7, + 0x02,0x00,0x86,0xE0,0xA3,0x12,0xC0,0xE5,0x00,0x10,0xA0,0xE3,0x9A,0x12,0xC0,0xE5, + 0xF0,0x00,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20,0x08,0x4A,0x07,0x49, + 0x12,0x78,0x08,0x68,0x0F,0x23,0x40,0x1C,0x12,0x07,0x12,0x0A,0x9B,0x06,0xD2,0x18, + 0x00,0x03,0x00,0x0B,0x02,0x43,0x0A,0x60,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0xF4,0x05,0x00,0x20,0x78,0x47,0xC0,0x46,0xF1,0x4F,0x2D,0xE9,0xE8,0x14,0x9F,0xE5, + 0x38,0xD0,0x4D,0xE2,0xB0,0x00,0xD1,0xE5,0xB1,0x90,0xD1,0xE5,0xB3,0xA0,0xD1,0xE5, + 0x00,0x00,0x8D,0xE5,0xD4,0x04,0x9F,0xE5,0x00,0x00,0x90,0xE5,0xB0,0x00,0xD0,0xE1, + 0x02,0x0B,0x10,0xE3,0x3C,0xD0,0x8D,0x02,0xF0,0x4F,0xBD,0x08,0x1E,0xFF,0x2F,0x01, + 0x38,0x00,0x9D,0xE5,0x00,0xB0,0xA0,0xE3,0x01,0x00,0x50,0xE3,0x02,0x00,0xA0,0x13, + 0x04,0x00,0x8D,0xE5,0x38,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x3C,0xD0,0x8D,0xD2, + 0xF0,0x4F,0xBD,0xD8,0x1E,0xFF,0x2F,0xD1,0x01,0x00,0x49,0xE2,0x34,0x00,0x8D,0xE5, + 0x0A,0x01,0xA0,0xE1,0xCD,0x20,0xA0,0xE3,0x92,0x00,0x00,0xE0,0x20,0x05,0xA0,0xE1, + 0x30,0x00,0x8D,0xE5,0x8A,0x00,0x8A,0xE0,0x92,0x00,0x00,0xE0,0x20,0x05,0xA0,0xE1, + 0x2C,0x00,0x8D,0xE5,0x8A,0x00,0xA0,0xE1,0x92,0x00,0x00,0xE0,0x20,0x05,0xA0,0xE1, + 0x28,0x00,0x8D,0xE5,0x9A,0x02,0x00,0xE0,0x20,0x05,0xA0,0xE1,0x24,0x00,0x8D,0xE5, + 0x04,0x10,0x9D,0xE5,0x02,0x02,0xA0,0xE3,0x01,0x01,0x80,0xE0,0x20,0x00,0x8D,0xE5, + 0x00,0x70,0x90,0xE5,0x07,0x01,0xA0,0xE1,0x01,0x01,0x17,0xE3,0x20,0x4E,0xA0,0xE1, + 0x17,0x00,0x00,0x1A,0x28,0x04,0x9F,0xE5,0x00,0x10,0xE0,0xE3,0x04,0x01,0x80,0xE0, + 0xB0,0x10,0xC0,0xE1,0xB2,0x10,0xC0,0xE1,0x18,0x04,0x9F,0xE5,0x00,0x20,0xA0,0xE3, + 0x04,0x01,0x80,0xE0,0xB0,0x10,0xC0,0xE1,0xB2,0x10,0xC0,0xE1,0x08,0x04,0x9F,0xE5, + 0x0C,0x14,0x9F,0xE5,0x84,0x00,0x80,0xE0,0xB0,0x20,0xC0,0xE1,0xFC,0x03,0x9F,0xE5, + 0x04,0x31,0x81,0xE0,0x04,0x20,0xC0,0xE7,0x02,0x00,0xA0,0xE1,0x00,0x11,0x83,0xE0, + 0xB0,0x20,0xC1,0xE1,0x01,0x00,0x50,0xE2,0xB2,0x20,0xC1,0xE1,0xFA,0xFF,0xFF,0x5A, + 0xE7,0x00,0x00,0xEA,0xC8,0x03,0x9F,0xE5,0x04,0x81,0x80,0xE0,0xF0,0x30,0xD8,0xE1, + 0x00,0x00,0x53,0xE3,0x09,0x00,0x00,0xAA,0x07,0x03,0xA0,0xE1,0xB4,0x23,0x9F,0xE5, + 0x20,0x0B,0xA0,0xE1,0x3F,0x1B,0xC7,0xE3,0xB0,0x00,0xC8,0xE1,0x04,0x21,0x82,0xE0, + 0xB2,0x10,0xC8,0xE1,0xB0,0x00,0xC2,0xE1,0xB2,0x10,0xC2,0xE1,0xD8,0x00,0x00,0xEA, + 0x34,0x10,0x9D,0xE5,0x00,0x00,0xA0,0xE3,0x00,0x00,0x51,0xE3,0x0A,0x00,0x00,0xDA, + 0x8C,0x13,0x9F,0xE5,0x04,0x21,0x81,0xE0,0x00,0x11,0x82,0xE0,0xB4,0xC0,0xD1,0xE1, + 0x01,0x00,0x80,0xE2,0xB0,0xC0,0xC1,0xE1,0xB6,0xC0,0xD1,0xE1,0xB2,0xC0,0xC1,0xE1, + 0x34,0x10,0x9D,0xE5,0x01,0x00,0x50,0xE1,0xF6,0xFF,0xFF,0xBA,0x07,0x03,0xA0,0xE1, + 0x20,0x1B,0x63,0xE0,0x1C,0x00,0x8D,0xE5,0x54,0x03,0x9F,0xE5,0x00,0x00,0x59,0xE3, + 0x04,0x31,0x80,0xE0,0x09,0x01,0x83,0xE0,0xB4,0x10,0x40,0xE1,0x07,0x1B,0xA0,0xE1, + 0x21,0x1B,0xA0,0xE1,0x18,0x10,0x8D,0xE5,0xB2,0x20,0xD8,0xE1,0x02,0x10,0x41,0xE0, + 0xB2,0x10,0x40,0xE1,0x00,0x00,0xA0,0xE3,0x00,0x50,0xA0,0xE1,0x00,0x10,0xA0,0xE1, + 0x07,0x00,0x00,0xDA,0x01,0x21,0x83,0xE0,0xF0,0xC0,0xD2,0xE1,0xF2,0x20,0xD2,0xE1, + 0x01,0x10,0x81,0xE2,0x09,0x00,0x51,0xE1,0x0C,0x00,0x80,0xE0,0x02,0x50,0x85,0xE0, + 0xF7,0xFF,0xFF,0xBA,0x09,0x10,0xA0,0xE1,0x38,0xFE,0xFF,0xEB,0x00,0x60,0xA0,0xE1, + 0x09,0x10,0xA0,0xE1,0x05,0x00,0xA0,0xE1,0x34,0xFE,0xFF,0xEB,0xC8,0x22,0x9F,0xE5, + 0x00,0x00,0x56,0xE3,0xB2,0x10,0xD2,0xE5,0x00,0x60,0x66,0xD2,0x01,0x00,0x56,0xE1, + 0x0C,0x00,0x00,0xAA,0x00,0x00,0x50,0xE3,0x00,0x00,0x60,0xD2,0x01,0x00,0x50,0xE1, + 0x08,0x00,0x00,0xAA,0xB0,0x02,0x9F,0xE5,0x84,0x10,0x80,0xE0,0xB4,0x00,0xD2,0xE5, + 0xF0,0x30,0xD1,0xE1,0x00,0xC0,0x4A,0xE0,0x0C,0x00,0x53,0xE1,0x03,0x00,0x80,0xB0, + 0xB0,0x00,0xC1,0xB1,0x05,0x00,0x00,0xEA,0x8C,0x02,0x9F,0xE5,0xB5,0x30,0xD2,0xE5, + 0x84,0x00,0x80,0xE0,0xB0,0x10,0xD0,0xE1,0x03,0x10,0x41,0xE0,0xB0,0x10,0xC0,0xE1, + 0x74,0x02,0x9F,0xE5,0x84,0x00,0x80,0xE0,0xF0,0x10,0xD0,0xE1,0x00,0x00,0x51,0xE3, + 0x00,0x10,0xA0,0xD3,0xB0,0x10,0xC0,0xD1,0xF0,0x00,0xD0,0xE1,0x0A,0x00,0x50,0xE1, + 0x58,0x32,0x9F,0xA5,0x05,0x10,0xA0,0xA3,0x04,0x10,0xC3,0xA7,0x1B,0x00,0x00,0xAA, + 0x30,0x10,0x9D,0xE5,0x00,0x00,0x51,0xE1,0x40,0x32,0x9F,0xD5,0x04,0x10,0xA0,0xD3, + 0x04,0x10,0xC3,0xD7,0x15,0x00,0x00,0xDA,0x2C,0x10,0x9D,0xE5,0x00,0x00,0x51,0xE1, + 0x28,0x32,0x9F,0xD5,0x03,0x10,0xA0,0xD3,0x04,0x10,0xC3,0xD7,0x0F,0x00,0x00,0xDA, + 0x28,0x10,0x9D,0xE5,0x00,0x00,0x51,0xE1,0x10,0x32,0x9F,0xD5,0x02,0x10,0xA0,0xD3, + 0x04,0x10,0xC3,0xD7,0x09,0x00,0x00,0xDA,0x24,0x10,0x9D,0xE5,0x00,0x00,0x51,0xE1, + 0xF8,0x31,0x9F,0xD5,0x01,0x10,0xA0,0xD3,0x04,0x10,0xC3,0xD7,0x03,0x00,0x00,0xDA, + 0x00,0x00,0x50,0xE3,0xE4,0x31,0x9F,0x05,0x00,0x10,0xA0,0x03,0x04,0x10,0xC3,0x07, + 0xD0,0x11,0x9F,0xE5,0x1C,0xC0,0x9D,0xE5,0x04,0x11,0x81,0xE0,0x14,0x10,0x8D,0xE5, + 0xF0,0x30,0xD1,0xE1,0x10,0x30,0x8D,0xE5,0xF2,0x10,0xD1,0xE1,0x2C,0x5B,0x63,0xE0, + 0x18,0x30,0x9D,0xE5,0x0C,0x10,0x8D,0xE5,0x01,0x60,0x43,0xE0,0xAC,0x11,0x9F,0xE5, + 0xB6,0x20,0xD2,0xE5,0x04,0x10,0xD1,0xE7,0x02,0x00,0x51,0xE1,0x1B,0x00,0x00,0x3A, + 0x00,0x00,0x55,0xE3,0x00,0x40,0xA0,0x03,0x0A,0x00,0x00,0x0A,0x00,0x10,0x9D,0xE5, + 0x00,0x00,0x65,0xD2,0x05,0x00,0xA0,0xC1,0x01,0x00,0x50,0xE1,0x01,0x40,0xA0,0xB3, + 0x04,0x00,0x00,0xBA,0x00,0x00,0x55,0xE3,0x00,0x00,0x65,0xD2,0x05,0x00,0xA0,0xC1, + 0xD6,0xFD,0xFF,0xEB,0x00,0x40,0xA0,0xE1,0x00,0x00,0x56,0xE3,0x00,0x00,0xA0,0x03, + 0x2C,0x00,0x00,0x0A,0x00,0x10,0x9D,0xE5,0x00,0x00,0x66,0xD2,0x06,0x00,0xA0,0xC1, + 0x01,0x00,0x50,0xE1,0x01,0x00,0xA0,0xB3,0x26,0x00,0x00,0xBA,0x00,0x00,0x56,0xE3, + 0x00,0x00,0x66,0xD2,0x06,0x00,0xA0,0xC1,0xC8,0xFD,0xFF,0xEB,0x21,0x00,0x00,0xEA, + 0x19,0x1E,0xA0,0xE3,0x91,0x00,0x00,0xE0,0x28,0x11,0x9F,0xE5,0x08,0x00,0x8D,0xE5, + 0x91,0x20,0xC0,0xE0,0xC0,0x10,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x0A,0x10,0xA0,0xE1, + 0xBE,0xFD,0xFF,0xEB,0x00,0x00,0x55,0xE3,0x64,0x10,0x60,0xE2,0x00,0x00,0x65,0xD2, + 0x05,0x00,0xA0,0xC1,0x91,0x00,0x00,0xE0,0xFC,0x10,0x9F,0xE5,0x91,0x20,0xC0,0xE0, + 0xC0,0x12,0xA0,0xE1,0xC0,0x4F,0x41,0xE0,0x08,0x00,0x9D,0xE5,0xE4,0x10,0x9F,0xE5, + 0x91,0x20,0xC0,0xE0,0xC0,0x10,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x0A,0x10,0xA0,0xE1, + 0xAE,0xFD,0xFF,0xEB,0x00,0x00,0x56,0xE3,0x64,0x10,0x60,0xE2,0x00,0x00,0x66,0xD2, + 0x06,0x00,0xA0,0xC1,0x91,0x00,0x00,0xE0,0xBC,0x10,0x9F,0xE5,0x91,0x20,0xC0,0xE0, + 0xC0,0x12,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x10,0x10,0x9D,0xE5,0x00,0x00,0x55,0xE3, + 0x04,0x10,0x41,0xB0,0x0C,0x20,0x9D,0xE5,0x04,0x10,0x81,0xA0,0x00,0x00,0x56,0xE3, + 0x00,0x00,0x42,0xB0,0x02,0x00,0x80,0xA0,0x1C,0x20,0x9D,0xE5,0x3F,0x33,0xE0,0xE3, + 0x22,0x2B,0xA0,0xE1,0xB0,0x20,0xC8,0xE1,0x18,0x20,0x9D,0xE5,0xB2,0x20,0xC8,0xE1, + 0x14,0x20,0x9D,0xE5,0xB0,0x10,0xC2,0xE1,0x14,0x20,0x9D,0xE5,0x01,0x18,0x03,0xE0, + 0xB2,0x00,0xC2,0xE1,0x03,0x24,0xC7,0xE3,0xFF,0x28,0xC2,0xE3,0x02,0x10,0x81,0xE1, + 0x03,0x15,0x01,0xE0,0x43,0x08,0x00,0xE0,0x01,0x00,0x80,0xE1,0x20,0x10,0x9D,0xE5, + 0x00,0x00,0x81,0xE5,0x04,0x00,0x9D,0xE5,0x01,0xB0,0x8B,0xE2,0x01,0x00,0x80,0xE2, + 0x04,0x00,0x8D,0xE5,0x38,0x00,0x9D,0xE5,0x00,0x00,0x5B,0xE1,0xEF,0xFE,0xFF,0xBA, + 0x3C,0xD0,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x00,0x93,0x00,0x00, + 0x78,0x06,0x00,0x20,0x6C,0x09,0x00,0x20,0x90,0x09,0x00,0x20,0x50,0x09,0x00,0x20, + 0x62,0x09,0x00,0x20,0xB4,0x09,0x00,0x20,0x67,0x66,0x66,0x66,0x1F,0x85,0xEB,0x51, + 0x12,0x4A,0x29,0x21,0x49,0x01,0x70,0xB4,0x53,0x18,0x05,0x21,0xD4,0x88,0x09,0x02, + 0x80,0x25,0x51,0x18,0x00,0x28,0x0E,0xD0,0x0D,0x48,0x46,0x7B,0x0E,0x83,0xC6,0x89, + 0x4E,0x83,0x06,0x8A,0x8E,0x83,0x40,0x8A,0xC8,0x83,0x09,0x48,0x20,0x30,0x00,0x89, + 0x2C,0x43,0x18,0x80,0x06,0xE0,0x00,0x20,0x08,0x83,0x48,0x83,0x88,0x83,0xC8,0x83, + 0xAC,0x43,0x18,0x80,0xD4,0x80,0x70,0xBC,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0x80,0x93,0x00,0x00,0x7F,0xB5,0x25,0x4D,0x06,0x00,0x1A,0x28,0x0C,0xD1,0x28,0x6A, + 0x00,0x28,0x09,0xD1,0x68,0x6A,0x00,0x28,0x06,0xD1,0x21,0x4C,0x01,0xF0,0xDC,0xFF, + 0x64,0x1E,0xFB,0xD2,0xFF,0x24,0x12,0xE0,0x06,0xF0,0x24,0xF9,0x01,0xF0,0x78,0xFE, + 0x01,0xF0,0xC0,0xFE,0x03,0xAA,0x01,0xA9,0x02,0xA8,0x05,0xF0,0x2B,0xF8,0x04,0x00, + 0x03,0x00,0x01,0x9A,0x02,0x99,0x03,0x98,0x00,0x96,0x00,0xF0,0x33,0xF8,0x02,0x20, + 0x07,0xF0,0x2C,0xFA,0x02,0x20,0x07,0xF0,0x19,0xFA,0x12,0x49,0xE8,0x68,0xC8,0x61, + 0x28,0x69,0xC8,0x61,0x10,0x48,0xC2,0x68,0x52,0x08,0x52,0x00,0xC2,0x60,0x0F,0x4B, + 0x0F,0x48,0x02,0xE0,0xDA,0x68,0x82,0x42,0x02,0xD8,0x4A,0x69,0x92,0x06,0xF9,0xD5, + 0x48,0x68,0x80,0x07,0xFC,0xD5,0x01,0xF0,0xC7,0xFF,0x01,0x20,0x00,0xF0,0x6E,0xF8, + 0x20,0x00,0x04,0xB0,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x92,0x00,0x00, + 0xE7,0x03,0x00,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40, + 0x50,0xC3,0x00,0x00,0xFF,0xB5,0x05,0x00,0x0E,0x00,0x91,0xB0,0xFE,0xF7,0xF2,0xFF, + 0x1C,0x48,0x03,0x27,0x04,0x04,0x24,0x0C,0x3F,0x02,0x00,0x22,0x39,0x00,0x20,0x00, + 0xFF,0xF7,0xB6,0xFB,0x18,0x49,0x3A,0x00,0x20,0x00,0x00,0x23,0xFF,0xF7,0xB8,0xFB, + 0x16,0x49,0x40,0x22,0x01,0xA8,0xFF,0xF7,0x97,0xFB,0x14,0x99,0x28,0x04,0x09,0x03, + 0x08,0x43,0x13,0x49,0x08,0x43,0x04,0x90,0x13,0x99,0x30,0x04,0x08,0x43,0x05,0x90, + 0x10,0x48,0x11,0x49,0xC0,0x6B,0x10,0x90,0x0C,0x48,0x80,0x69,0x40,0x1C,0x07,0x90, + 0x00,0x20,0x8D,0x42,0x09,0x90,0x02,0xD1,0x06,0x99,0x49,0x1C,0x06,0x91,0x1A,0x99, + 0x1A,0x29,0x00,0xD1,0x0A,0x90,0x01,0xA8,0x07,0xF0,0xFE,0xFA,0x15,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x9D,0x00,0x00,0x00,0x00,0x10,0x40,0xC0,0x92,0x00,0x00, + 0xAB,0x0C,0x00,0x80,0xC0,0x0F,0x00,0x20,0xEC,0x0D,0x00,0x00,0x02,0x4A,0x51,0x69, + 0x81,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x4A,0x51,0x69, + 0x01,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x78,0x47,0xC0,0x46, + 0x01,0x21,0xA0,0xE3,0x50,0x30,0x92,0xE5,0x0C,0x10,0xA0,0xE3,0x03,0x00,0x80,0xE1, + 0x50,0x00,0x82,0xE5,0x00,0x00,0x00,0xEA,0x00,0x00,0xA0,0xE1,0x01,0x10,0x51,0xE2, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x01,0x48,0x40,0x69,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x01,0x48,0x80,0x6A,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x02,0x49,0x08,0x62,0x00,0x20,0x08,0x62,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x01,0x49,0x48,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x07,0x49,0xFF,0x28, + 0x04,0xD1,0x01,0x20,0xC8,0x60,0x00,0x20,0x88,0x61,0x70,0x47,0x8A,0x69,0x12,0x07, + 0x12,0x0F,0x02,0x43,0x8A,0x61,0x02,0x20,0xC8,0x60,0x70,0x47,0x40,0x00,0x00,0x40, + 0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x65,0xDF,0x4D,0xE2,0x00,0x00,0xA0,0xE3, + 0x68,0x01,0x8D,0xE5,0xB4,0x07,0x9F,0xE5,0xB4,0x27,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0xB8,0x21,0xD2,0xE1,0x78,0x10,0xD0,0xE5,0x77,0x70,0xD0,0xE5,0xA4,0x97,0x9F,0xE5, + 0x02,0x10,0x81,0xE0,0xFF,0x80,0x01,0xE2,0x79,0x10,0xD0,0xE5,0x00,0x50,0xE0,0xE3, + 0x00,0xB0,0xA0,0xE3,0x08,0x10,0x8D,0xE5,0x7A,0x00,0xD0,0xE5,0x01,0x60,0xA0,0xE3, + 0x04,0x00,0x8D,0xE5,0x8A,0x01,0xD9,0xE5,0x04,0x40,0xD9,0xE5,0x01,0x00,0x50,0xE3, + 0x0E,0x00,0x00,0xBA,0x06,0x01,0x86,0xE0,0x80,0x00,0x89,0xE0,0x40,0x12,0xD0,0xE5, + 0x00,0x00,0x51,0xE3,0x05,0x00,0x00,0x0A,0x02,0x0C,0x80,0xE2,0x46,0x00,0x80,0xE2, + 0x2B,0x0C,0x00,0xEB,0x00,0x00,0x50,0xE3,0x01,0x00,0x8B,0x12,0xFF,0xB0,0x00,0x12, + 0x8A,0x01,0xD9,0xE5,0x01,0x60,0x86,0xE2,0x06,0x00,0x50,0xE1,0xF0,0xFF,0xFF,0xAA, + 0x34,0x07,0x9F,0xE5,0x00,0xA0,0xA0,0xE3,0xBC,0x3B,0xD0,0xE1,0xB0,0x2C,0xD0,0xE1, + 0x01,0x60,0xA0,0xE3,0x02,0x10,0x43,0xE0,0x00,0x00,0x51,0xE3,0x03,0x10,0x42,0xD0, + 0x01,0x28,0xA0,0xE1,0xBE,0x1B,0xD0,0xE1,0xB2,0x3C,0xD0,0xE1,0x22,0x28,0xA0,0xE1, + 0xBB,0xA2,0xC9,0xE5,0x03,0x00,0x41,0xE0,0x00,0x00,0x50,0xE3,0x01,0x00,0x43,0xD0, + 0x00,0x00,0x5B,0xE3,0x00,0x08,0xA0,0xE1,0x28,0x00,0x52,0x13,0x20,0x08,0xA0,0xE1, + 0x06,0x00,0x00,0x2A,0x32,0x00,0x50,0xE3,0xBB,0x62,0xC9,0x35,0x03,0x00,0x00,0x3A, + 0x64,0x00,0x50,0xE3,0x03,0x00,0xA0,0x23,0x02,0x00,0xA0,0x33,0xBB,0x02,0xC9,0xE5, + 0xBA,0x02,0xD9,0xE5,0x00,0x00,0x50,0xE3,0x0B,0x00,0x00,0x1A,0xBB,0x02,0xD9,0xE5, + 0x01,0x00,0x50,0xE3,0x05,0x00,0x87,0x02,0xFF,0x70,0x00,0x02,0x06,0x00,0x00,0x0A, + 0x02,0x00,0x50,0xE3,0x0A,0x00,0x87,0x02,0x02,0x00,0x00,0x0A,0x03,0x00,0x50,0xE3, + 0x01,0x00,0x00,0x1A,0x0F,0x00,0x87,0xE2,0xFF,0x70,0x00,0xE2,0x09,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x57,0x0F,0x8D,0xE2,0x44,0xFD,0xFF,0xEB,0xB6,0x00,0xD9,0xE1, + 0x78,0xB6,0x9F,0xE5,0x46,0x0F,0x10,0xE3,0x04,0x00,0x00,0x0A,0xC6,0x04,0x00,0xEB, + 0x00,0x60,0xCB,0xE5,0x65,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x50,0x06,0x9F,0xE5,0x00,0xA0,0xCB,0xE5,0x8B,0x01,0xD0,0xE5,0x00,0x00,0x50,0xE3, + 0x40,0x16,0x9F,0x15,0x01,0x00,0x40,0x12,0x8B,0x01,0xC1,0x15,0x00,0x00,0x54,0xE3, + 0x04,0x00,0x00,0x1A,0x2C,0x06,0x9F,0xE5,0x89,0x01,0xD0,0xE5,0x00,0x00,0x50,0xE3, + 0x7C,0x01,0x00,0x0A,0x17,0x00,0x00,0xEA,0x18,0x96,0x9F,0xE5,0x89,0x01,0xD9,0xE5, + 0x00,0x00,0x50,0xE3,0x13,0x00,0x00,0x1A,0x14,0x06,0x9F,0xE5,0x5A,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x25,0xFD,0xFF,0xEB,0x8B,0x01,0xD9,0xE5,0x00,0x00,0x50,0xE3, + 0x70,0x01,0x00,0x1A,0x01,0x00,0x54,0xE3,0x01,0x50,0xA0,0xE3,0x07,0x00,0x00,0xBA, + 0xFF,0x20,0x05,0xE2,0xFF,0x10,0x05,0xE2,0x14,0x30,0xA0,0xE3,0x57,0x0F,0x8D,0xE2, + 0x7D,0xFD,0xFF,0xEB,0x01,0x50,0x85,0xE2,0x04,0x00,0x55,0xE1,0xF7,0xFF,0xFF,0xDA, + 0x88,0x41,0xC9,0xE5,0x63,0x01,0x00,0xEA,0x09,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3, + 0x15,0x0E,0x8D,0xE2,0x11,0xFD,0xFF,0xEB,0x01,0x00,0x87,0xE2,0x90,0x01,0x8D,0xE5, + 0x02,0x00,0x88,0xE2,0x8C,0x01,0x8D,0xE5,0xA8,0x05,0x9F,0xE5,0x01,0x60,0xA0,0xE3, + 0x88,0x01,0x8D,0xE5,0x09,0x00,0x40,0xE2,0x84,0x01,0x8D,0xE5,0x08,0x70,0xA0,0xE3, + 0x0C,0x80,0x8D,0xE2,0x87,0x01,0x87,0xE0,0x0C,0x10,0x8D,0xE2,0x00,0x01,0x81,0xE0, + 0x24,0x20,0xA0,0xE3,0x00,0x10,0xE0,0xE3,0x00,0xFD,0xFF,0xEB,0x01,0x70,0x57,0xE2, + 0xF7,0xFF,0xFF,0x5A,0x06,0x00,0xA0,0xE1,0x55,0x06,0x00,0xEB,0x01,0x00,0x54,0xE3, + 0x00,0x80,0xA0,0xE1,0x01,0x90,0xA0,0xE3,0x47,0x00,0x00,0xBA,0x44,0x05,0x9F,0xE5, + 0x08,0xA0,0xA0,0xE1,0x8A,0x11,0xD0,0xE5,0x01,0x70,0xA0,0xE3,0x01,0x00,0x51,0xE3, + 0x3E,0x00,0x00,0xBA,0x89,0x00,0x80,0xE0,0x80,0x01,0x8D,0xE5,0x01,0x0C,0x80,0xE2, + 0x7C,0x01,0x8D,0xE5,0x89,0x01,0x89,0xE0,0x0C,0x10,0x8D,0xE2,0x78,0x01,0x8D,0xE5, + 0x00,0x01,0x81,0xE0,0x74,0x01,0x8D,0xE5,0x08,0x15,0x9F,0xE5,0x07,0x01,0x87,0xE0, + 0x80,0xB0,0x81,0xE0,0x40,0x02,0xDB,0xE5,0x00,0x00,0x50,0xE3,0x2A,0x00,0x00,0x0A, + 0x02,0x0C,0x8B,0xE2,0x46,0x00,0x80,0xE2,0x70,0x01,0x8D,0xE5,0x90,0x0B,0x00,0xEB, + 0x06,0x00,0x90,0xE1,0x04,0x00,0x00,0x0A,0x70,0x01,0x9D,0xE5,0x8C,0x0B,0x00,0xEB, + 0x00,0x00,0x50,0xE3,0x00,0x00,0x56,0x13,0x1F,0x00,0x00,0x0A,0x80,0x01,0x9D,0xE5, + 0xCD,0x10,0xA0,0xE3,0xB4,0x0F,0xD0,0xE1,0x33,0x1B,0x81,0xE2,0x02,0x3C,0x8B,0xE2, + 0x91,0x00,0x00,0xE0,0xB2,0x24,0xD3,0xE1,0xA0,0x09,0xA0,0xE1,0xB4,0x34,0xD3,0xE1, + 0x00,0x10,0x42,0xE0,0x00,0x00,0x51,0xE3,0x02,0x10,0x40,0xD0,0x7C,0x01,0x9D,0xE5, + 0xCD,0x20,0xA0,0xE3,0xB6,0x00,0xD0,0xE1,0x33,0x2B,0x82,0xE2,0x92,0x00,0x00,0xE0, + 0xA0,0x29,0xA0,0xE1,0x02,0x00,0x43,0xE0,0x00,0x00,0x50,0xE3,0x03,0x00,0x42,0xD0, + 0x91,0x01,0x02,0xE0,0x00,0x10,0xA0,0xE1,0x91,0x20,0x20,0xE0,0x0A,0x00,0x50,0xE1, + 0x03,0x00,0x00,0xAA,0x78,0x11,0x9D,0xE5,0x0C,0x20,0x8D,0xE2,0x00,0xA0,0xA0,0xE1, + 0x01,0x71,0x82,0xE7,0x74,0x11,0x9D,0xE5,0x07,0x01,0x81,0xE7,0x44,0x04,0x9F,0xE5, + 0x01,0x70,0x87,0xE2,0x8A,0x01,0xD0,0xE5,0x07,0x00,0x50,0xE1,0xC9,0xFF,0xFF,0xAA, + 0x01,0x90,0x89,0xE2,0x04,0x00,0x59,0xE1,0xB7,0xFF,0xFF,0xDA,0x01,0x00,0xA0,0xE3, + 0x01,0x00,0x54,0xE3,0x6C,0x01,0x8D,0xE5,0x7D,0x00,0x00,0xBA,0x0C,0x70,0x8D,0xE2, + 0x01,0xC0,0xA0,0xE3,0x01,0x00,0x54,0xE3,0x08,0x30,0xA0,0xE1,0x0C,0x00,0xA0,0xE1, + 0x72,0x00,0x00,0xBA,0x57,0x1F,0x8D,0xE2,0x00,0x10,0xD1,0xE7,0x00,0x00,0x51,0xE3, + 0x0B,0x00,0x00,0x1A,0x80,0x11,0x80,0xE0,0x01,0x21,0x97,0xE7,0x01,0x91,0x87,0xE0, + 0x02,0x11,0x99,0xE7,0x03,0x00,0x51,0xE1,0x05,0x00,0x00,0xAA,0x00,0x00,0x51,0xE3, + 0x00,0x00,0x52,0xA3,0x02,0x00,0x00,0xBA,0x00,0x50,0xA0,0xE1,0x01,0x30,0xA0,0xE1, + 0x00,0xC0,0xA0,0xE3,0x01,0x00,0x80,0xE2,0x04,0x00,0x50,0xE1,0xEC,0xFF,0xFF,0xDA, + 0x00,0x00,0x5C,0xE3,0x5D,0x00,0x00,0x1A,0x68,0x01,0x9D,0xE5,0x85,0x91,0x85,0xE0, + 0x01,0x00,0x80,0xE2,0x68,0x01,0x8D,0xE5,0x09,0x01,0x97,0xE7,0x94,0xB3,0x9F,0xE5, + 0x00,0x01,0x80,0xE0,0x80,0x00,0x8B,0xE0,0x01,0x1C,0x80,0xE2,0x05,0x01,0x85,0xE0, + 0x80,0xA0,0x8B,0xE0,0xE6,0x10,0x81,0xE2,0x63,0x0F,0x8A,0xE2,0x0A,0x20,0xA0,0xE3, + 0x84,0xFC,0xFF,0xEB,0x85,0x00,0x8B,0xE0,0xB4,0x1F,0xD0,0xE1,0xCD,0x20,0xA0,0xE3, + 0x33,0x2B,0x82,0xE2,0x92,0x01,0x01,0xE0,0xA1,0x29,0xA0,0xE1,0x01,0x1C,0x8A,0xE2, + 0x01,0x0C,0x80,0xE2,0xBE,0x28,0xC1,0xE1,0xB6,0x00,0xD0,0xE1,0xCD,0x20,0xA0,0xE3, + 0x33,0x2B,0x82,0xE2,0x92,0x00,0x00,0xE0,0xA0,0x09,0xA0,0xE1,0xB0,0x09,0xC1,0xE1, + 0x05,0x00,0x8B,0xE0,0x38,0x01,0xD0,0xE5,0x8D,0x01,0xCA,0xE5,0x92,0x01,0xDA,0xE5, + 0x90,0x11,0x9D,0xE5,0x01,0x00,0x50,0xE1,0x01,0x00,0x80,0x32,0x92,0x01,0xCA,0x35, + 0x92,0x01,0xDA,0xE5,0x13,0x00,0x50,0xE3,0x06,0x00,0x00,0x9A,0xCD,0x10,0xA0,0xE3, + 0x90,0x01,0x01,0xE0,0x8C,0x21,0x9D,0xE5,0x21,0x16,0xA0,0xE1,0x02,0x00,0x51,0xE1, + 0x14,0x00,0x80,0x32,0x92,0x01,0xCA,0x35,0x8C,0x01,0xDA,0xE5,0x57,0xEF,0x8D,0xE2, + 0x01,0x00,0x54,0xE3,0x05,0x00,0xCE,0xE7,0x88,0x11,0x9D,0xE5,0x01,0x50,0xC0,0xE7, + 0x8C,0x11,0xDA,0xE5,0x84,0x21,0x9D,0xE5,0x00,0x00,0xA0,0xE3,0x02,0x00,0xC1,0xE7, + 0x09,0x11,0x97,0xE7,0x15,0x2E,0x8D,0xE2,0x01,0x00,0xC2,0xE7,0x01,0x00,0xA0,0xE3, + 0x19,0x00,0x00,0xBA,0xAC,0x12,0x9F,0xE5,0x8A,0xC1,0xD1,0xE5,0x09,0x21,0x97,0xE7, + 0x80,0xA1,0x80,0xE0,0x00,0x10,0xE0,0xE3,0x0A,0xB1,0x87,0xE0,0x02,0x11,0x8B,0xE7, + 0x00,0x10,0xDE,0xE7,0x08,0x30,0xA0,0xE1,0x00,0x00,0x51,0xE3,0x0B,0x00,0x00,0x1A, + 0x01,0x00,0x5C,0xE3,0x01,0x10,0xA0,0xE3,0x08,0x00,0x00,0xBA,0x01,0x21,0x9B,0xE7, + 0x01,0x00,0x72,0xE3,0x02,0x00,0x00,0xDA,0x03,0x00,0x52,0xE1,0x02,0x30,0xA0,0xB1, + 0x0A,0x11,0x87,0xB7,0x01,0x10,0x81,0xE2,0x01,0x00,0x5C,0xE1,0xF6,0xFF,0xFF,0xAA, + 0x01,0x00,0x80,0xE2,0x04,0x00,0x50,0xE1,0xE7,0xFF,0xFF,0xDA,0x44,0x02,0x9F,0xE5, + 0x68,0x11,0x9D,0xE5,0x8A,0x01,0xD0,0xE5,0x01,0x00,0x50,0xE1,0x04,0x00,0x00,0xDA, + 0x6C,0x01,0x9D,0xE5,0x01,0x00,0x80,0xE2,0x04,0x00,0x50,0xE1,0x6C,0x01,0x8D,0xE5, + 0x82,0xFF,0xFF,0xDA,0x06,0x00,0xB0,0xE1,0x01,0x10,0x46,0xE2,0xFF,0x60,0x01,0xE2, + 0x21,0xFF,0xFF,0x1A,0x0C,0x82,0x9F,0xE5,0x01,0x60,0xA0,0xE3,0x8A,0x01,0xD8,0xE5, + 0x00,0x70,0xA0,0xE3,0x06,0xA0,0xA0,0xE1,0x01,0x00,0x50,0xE3,0x43,0x00,0x00,0xBA, + 0x15,0x0E,0x8D,0xE2,0x06,0x00,0xD0,0xE7,0x00,0x00,0x50,0xE3,0x3B,0x00,0x00,0x0A, + 0x06,0x01,0x86,0xE0,0x80,0x50,0x88,0xE0,0x40,0x12,0xD5,0xE5,0x84,0x01,0x9D,0xE5, + 0x0A,0x90,0x84,0xE0,0x00,0x10,0xD1,0xE7,0x08,0x00,0x9D,0xE5,0x00,0x00,0x51,0xE1, + 0x23,0x00,0x00,0x2A,0x08,0x00,0x59,0xE3,0x21,0x00,0x00,0xCA,0x02,0x0C,0x85,0xE2, + 0x46,0x00,0x80,0xE2,0xC2,0x0A,0x00,0xEB,0x00,0x00,0x50,0xE3,0x1C,0x00,0x00,0x0A, + 0x40,0x02,0xD5,0xE5,0x84,0x11,0x9D,0xE5,0x84,0x21,0x9D,0xE5,0x01,0x10,0xD0,0xE7, + 0x01,0x10,0x81,0xE2,0x02,0x10,0xC0,0xE7,0x09,0x01,0x89,0xE0,0x80,0xB0,0x88,0xE0, + 0x09,0x1D,0x85,0xE2,0x63,0x0F,0x8B,0xE2,0x0A,0x20,0xA0,0xE3,0x05,0xFC,0xFF,0xEB, + 0xED,0x01,0xD5,0xE5,0x57,0x1F,0x8D,0xE2,0x01,0xA0,0x8A,0xE2,0x93,0x01,0xCB,0xE5, + 0xEE,0x01,0xD5,0xE5,0x01,0x70,0x87,0xE2,0x94,0x01,0xCB,0xE5,0x40,0x02,0xD5,0xE5, + 0x09,0x00,0xC1,0xE7,0x88,0x11,0x9D,0xE5,0x01,0x90,0xC0,0xE7,0x58,0x01,0x9F,0xE5, + 0x00,0x10,0xD0,0xE5,0x00,0x00,0x51,0xE3,0x01,0x10,0xA0,0x03,0x00,0x10,0xC0,0x05, + 0x0E,0x00,0x00,0xEA,0x02,0x0C,0x85,0xE2,0x46,0x00,0x80,0xE2,0xA0,0x0A,0x00,0xEB, + 0x00,0x00,0x50,0xE3,0x09,0x00,0x00,0x0A,0x01,0x00,0xA0,0xE3,0xB9,0x02,0xC8,0xE5, + 0x46,0x02,0xD5,0xE5,0x13,0x00,0x50,0xE3,0x04,0x00,0x00,0x9A,0x89,0x01,0xD8,0xE5, + 0x01,0x00,0x50,0xE3,0xB6,0x00,0xD8,0x01,0x04,0x00,0x80,0x03,0xB6,0x00,0xC8,0x01, + 0x8A,0x01,0xD8,0xE5,0x01,0x60,0x86,0xE2,0x06,0x00,0x50,0xE1,0xBB,0xFF,0xFF,0xAA, + 0xB6,0x00,0xD8,0xE1,0x04,0x00,0x10,0xE3,0x03,0x00,0x00,0x0A,0x04,0x10,0x9D,0xE5, + 0x04,0x00,0xC0,0xE3,0x8B,0x11,0xC8,0xE5,0xB6,0x00,0xC8,0xE1,0x01,0x00,0x54,0xE3, + 0x01,0x50,0xA0,0xE3,0x21,0x00,0x00,0xBA,0x57,0x6F,0x8D,0xE2,0x01,0x90,0xA0,0xE3, + 0x05,0x00,0xD6,0xE7,0x00,0x00,0x50,0xE3,0x0F,0x00,0x00,0x1A,0x01,0x00,0xA0,0xE3, + 0x00,0x10,0x88,0xE0,0xA3,0x22,0xD1,0xE5,0x00,0x00,0x52,0xE3,0xAC,0x12,0xD1,0x05, + 0x00,0x00,0x51,0x03,0x05,0x00,0x00,0x1A,0xFF,0x20,0x00,0xE2,0xFF,0x10,0x05,0xE2, + 0x01,0x30,0xA0,0xE3,0x57,0x0F,0x8D,0xE2,0x27,0xFC,0xFF,0xEB,0x02,0x00,0x00,0xEA, + 0x01,0x00,0x80,0xE2,0x09,0x00,0x50,0xE3,0xF0,0xFF,0xFF,0xBA,0x8B,0x01,0xD8,0xE5, + 0x00,0x00,0x50,0xE3,0x06,0x00,0x00,0x0A,0x05,0x01,0x85,0xE0,0x80,0xA0,0x88,0xE0, + 0x01,0x0C,0x8A,0xE2,0x92,0x00,0x80,0xE2,0x69,0x0A,0x00,0xEB,0x00,0x00,0x50,0xE3, + 0x92,0x91,0xCA,0x05,0x01,0x50,0x85,0xE2,0x04,0x00,0x55,0xE1,0xDF,0xFF,0xFF,0xDA, + 0x07,0x00,0x84,0xE0,0x88,0x01,0xC8,0xE5,0x28,0x00,0x9F,0xE5,0x5A,0x20,0xA0,0xE3, + 0x88,0x11,0xD0,0xE5,0x8A,0x11,0xC0,0xE5,0x63,0x1F,0x80,0xE2,0x09,0x0D,0x80,0xE2, + 0xAC,0xFB,0xFF,0xEB,0x65,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x78,0x06,0x00,0x20,0x40,0x05,0x00,0x20,0x40,0x00,0x00,0x20,0x40,0x02,0x00,0x20, + 0x67,0x05,0x00,0x20,0x26,0x02,0x00,0x20,0xE3,0x02,0x00,0x20,0xF4,0x05,0x00,0x20, + 0xF1,0xB5,0x38,0x48,0x86,0xB0,0x05,0x90,0x00,0x20,0x04,0x90,0x36,0x48,0x41,0x7F, + 0x01,0x91,0x01,0x00,0x20,0x39,0x49,0x7F,0x00,0x91,0x00,0x21,0x02,0x91,0x01,0x7D, + 0x00,0x20,0xC0,0x43,0x00,0x29,0x06,0x99,0x03,0xD1,0x00,0x29,0x03,0xD1,0x01,0x20, + 0x01,0xE0,0x00,0x29,0xFB,0xD1,0x03,0x90,0x01,0xF0,0x1C,0xF9,0x01,0xF0,0xCA,0xF9, + 0x00,0x24,0x27,0x00,0x00,0x26,0x31,0x00,0x38,0x00,0x02,0xF0,0x2B,0xF9,0x00,0x28, + 0x28,0xD0,0x0E,0x21,0x79,0x43,0x05,0x9A,0x89,0x19,0x89,0x00,0x51,0x58,0x09,0x05, + 0x09,0x0D,0x0D,0x1A,0x06,0x98,0x00,0x28,0x0D,0xD0,0x00,0x2D,0x1A,0xDA,0x03,0x9A, + 0x31,0x00,0x38,0x00,0x06,0xF0,0x34,0xFB,0x40,0x1C,0x14,0xD1,0x00,0x98,0x28,0x18, + 0x10,0xD5,0x02,0x20,0x0D,0xE0,0x00,0x2D,0x0C,0xDD,0x03,0x9A,0x31,0x00,0x38,0x00, + 0x06,0xF0,0x26,0xFB,0x40,0x1C,0x06,0xD1,0x01,0x98,0x28,0x1A,0x00,0x28,0x01,0xDD, + 0x03,0x20,0x04,0x90,0x64,0x1C,0x76,0x1C,0x0E,0x2E,0xCC,0xD3,0x7F,0x1C,0x15,0x2F, + 0xC8,0xD3,0x20,0x00,0xFF,0x38,0x27,0x38,0x04,0xD1,0x04,0x98,0x07,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x02,0x98,0x41,0x1C,0x02,0x91,0x01,0x21,0x49,0x02,0x88,0x42, + 0xB2,0xD9,0x06,0x98,0x00,0x28,0x01,0xD0,0x02,0x20,0x00,0xE0,0x03,0x20,0x04,0x90, + 0xEC,0xE7,0x00,0x00,0xD4,0x02,0x10,0x40,0x20,0x93,0x00,0x00,0xF0,0xB5,0x7B,0x4A, + 0xFF,0xB0,0xBC,0xB0,0x40,0x18,0xB9,0x92,0x42,0x00,0x80,0x18,0xB8,0x90,0x48,0x42, + 0xB7,0x90,0x77,0x48,0x77,0x4E,0x07,0x7B,0x02,0xA8,0x01,0x90,0x76,0x48,0xBA,0x90, + 0x00,0x7D,0x00,0x28,0x02,0xD1,0xB7,0x98,0x40,0x42,0xB7,0x90,0x73,0x4A,0x00,0x21, + 0x30,0x00,0xFE,0xF7,0xB5,0xFE,0x00,0x25,0x00,0x24,0x6F,0x48,0x20,0x38,0x01,0x7D, + 0xC9,0x07,0x14,0xD0,0x6E,0x49,0x09,0x78,0x00,0x29,0x16,0xD0,0xBD,0x42,0x0E,0xD1, + 0x81,0x7D,0xA1,0x42,0x0B,0xD0,0xC1,0x7D,0xA1,0x42,0x08,0xD0,0x01,0x7E,0xA1,0x42, + 0x05,0xD0,0x41,0x7E,0xA1,0x42,0x02,0xD0,0x80,0x7E,0xA0,0x42,0x16,0xD1,0xB7,0x9A, + 0x21,0x00,0x28,0x00,0x06,0xF0,0xBC,0xFA,0x10,0xE0,0xBC,0x42,0xF7,0xD1,0x81,0x7D, + 0xA9,0x42,0xF4,0xD0,0xC1,0x7D,0xA9,0x42,0xF1,0xD0,0x01,0x7E,0xA9,0x42,0xEE,0xD0, + 0x41,0x7E,0xA9,0x42,0xEB,0xD0,0x80,0x7E,0xA8,0x42,0xE8,0xD0,0x64,0x1C,0x0E,0x2C, + 0xCB,0xD3,0x6D,0x1C,0x15,0x2D,0xC7,0xD3,0x01,0xF0,0x6C,0xF8,0x01,0xF0,0x1A,0xF9, + 0x00,0x25,0x00,0x24,0x0E,0x20,0x2F,0x00,0x47,0x43,0x21,0x00,0x28,0x00,0x02,0xF0, + 0x79,0xF8,0x00,0x28,0x0F,0xD0,0xB9,0x9B,0x3A,0x19,0x91,0x00,0x59,0x58,0x03,0x04, + 0x09,0x05,0x09,0x0D,0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0, + 0x40,0x1A,0x51,0x00,0x70,0x52,0x21,0x00,0x28,0x00,0x02,0xF0,0xA3,0xF8,0x39,0x19, + 0x01,0x9A,0x49,0x00,0x64,0x1C,0x0E,0x2C,0x50,0x52,0xDE,0xD3,0x6D,0x1C,0x15,0x2D, + 0xD7,0xD3,0x00,0x20,0x00,0x90,0x01,0xF0,0xED,0xF8,0x00,0x25,0x00,0x24,0x21,0x00, + 0x28,0x00,0x02,0xF0,0x4F,0xF8,0x00,0x28,0x3E,0xD0,0x0E,0x21,0x69,0x43,0xB9,0x9B, + 0x0A,0x19,0x91,0x00,0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D,0x1B,0x0C,0xCB,0x1A, + 0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0,0x40,0x1A,0x57,0x00,0xF1,0x5B,0x00,0x04, + 0x00,0x0C,0x81,0x42,0x06,0xD9,0xF0,0x53,0x21,0x00,0x28,0x00,0x02,0xF0,0x72,0xF8, + 0x01,0x99,0xC8,0x53,0x00,0x98,0x03,0x21,0xFE,0xF7,0xE0,0xFD,0x00,0x29,0x01,0xD0, + 0x02,0x29,0x0D,0xD1,0xBA,0x98,0x00,0x7D,0x00,0x28,0x02,0xD1,0x00,0x22,0x43,0x1E, + 0x01,0xE0,0x01,0x22,0x00,0x23,0x21,0x00,0x28,0x00,0x06,0xF0,0x11,0xFA,0x0B,0xE0, + 0x00,0x22,0xD2,0x43,0x00,0x23,0x21,0x00,0x28,0x00,0x06,0xF0,0x09,0xFA,0x00,0x28, + 0x02,0xD1,0x00,0x22,0x01,0x23,0xEE,0xE7,0x64,0x1C,0x0E,0x2C,0xB7,0xD3,0x6D,0x1C, + 0x15,0x2D,0xB3,0xD3,0x00,0x98,0x40,0x1C,0x00,0x90,0xB8,0x98,0x40,0x1E,0xB8,0x90, + 0x18,0xD2,0x00,0x25,0x00,0x24,0x0E,0x20,0x2E,0x00,0x46,0x43,0x01,0x99,0x30,0x19, + 0x40,0x00,0x0A,0x5A,0x21,0x00,0x28,0x00,0x06,0xF0,0x06,0xFA,0x64,0x1C,0x0E,0x2C, + 0xF4,0xD3,0x6D,0x1C,0x15,0x2D,0xED,0xD3,0x7F,0xB0,0x3C,0xB0,0xF0,0xBC,0x08,0xBC, + 0x00,0x20,0x18,0x47,0x00,0xF0,0xCE,0xFF,0x8D,0xE7,0x00,0x00,0xD4,0x02,0x10,0x40, + 0xE0,0x04,0x00,0x20,0x00,0x00,0x00,0x10,0x20,0x93,0x00,0x00,0xD2,0x02,0x00,0x00, + 0x6D,0x05,0x00,0x20,0xF8,0xB5,0x01,0x22,0x52,0x07,0x10,0x68,0x01,0x28,0x03,0xD0, + 0x10,0x68,0x01,0x28,0x43,0xD9,0x02,0x20,0x86,0x46,0x22,0x48,0x00,0x90,0x80,0x7B, + 0x00,0x28,0x3C,0xD0,0x00,0x21,0x13,0x25,0x1F,0x4F,0xAD,0x01,0x32,0xE0,0x72,0x46, + 0x8A,0x18,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x28,0xD1, + 0x00,0x9C,0x93,0x00,0xA6,0x7B,0x1B,0x0F,0x21,0xE0,0x84,0x00,0xE4,0x19,0x64,0x19, + 0x24,0x6B,0xA4,0x00,0x24,0x0F,0xA3,0x42,0x18,0xD1,0x80,0x00,0xC0,0x19,0x40,0x19, + 0x00,0x6B,0x92,0x0A,0x83,0x05,0x92,0x02,0x9B,0x0D,0x1A,0x43,0x0F,0x4B,0x1A,0x40, + 0x83,0x01,0x9B,0x0D,0x1B,0x04,0x1A,0x43,0x3F,0x23,0x9B,0x02,0x00,0x04,0x80,0x0E, + 0x9A,0x43,0x80,0x02,0x02,0x43,0x60,0x46,0x02,0x60,0x02,0xE0,0x40,0x1C,0x86,0x42, + 0xDB,0xD8,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42,0xC7,0xD8,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x20,0x05,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0xFF,0x00,0xFC, + 0xFC,0xB5,0x04,0x00,0x60,0x48,0x8E,0x46,0x02,0x8C,0x60,0x49,0x40,0x8C,0x01,0x91, + 0x4B,0x89,0x40,0x39,0x00,0x91,0x89,0x7F,0x00,0x25,0x2F,0x00,0xC9,0x07,0x01,0x26, + 0x00,0x29,0xAC,0x46,0x01,0xD1,0xE6,0x71,0xAA,0xE0,0x01,0x99,0x09,0x7A,0x00,0x29, + 0x0D,0xD0,0x01,0x29,0x0F,0xD0,0x02,0x29,0x07,0xD0,0x03,0x29,0xF4,0xD1,0x17,0x00, + 0xD1,0x18,0x0A,0x04,0x12,0x0C,0x03,0x00,0x05,0xE0,0x1A,0x00,0xFB,0xE7,0x84,0x46, + 0xC0,0x18,0x03,0x04,0x1B,0x0C,0x60,0x88,0xA1,0x88,0x87,0x42,0x5C,0xDC,0x82,0x42, + 0x5A,0xDB,0x8C,0x45,0x58,0xDC,0x8B,0x42,0x56,0xDB,0x01,0x25,0x72,0x46,0x00,0x2A, + 0x7B,0xD0,0x06,0x27,0x01,0x2A,0x0E,0xD0,0x02,0x2A,0x18,0xD0,0x03,0x2A,0x76,0xD1, + 0xE2,0x79,0xD3,0x07,0x2D,0xD0,0x01,0x2A,0x01,0xD0,0x05,0x2A,0x27,0xD1,0x09,0x20, + 0x00,0x25,0xE0,0x71,0x6B,0xE0,0x00,0x9A,0x92,0x7E,0x00,0x2A,0x67,0xD1,0x00,0xF0, + 0x79,0xF8,0x06,0x00,0x0F,0xD1,0x02,0x20,0xE0,0x71,0x26,0x72,0x5F,0xE0,0xE2,0x79, + 0xD3,0x07,0xE8,0xD1,0x92,0x07,0x5A,0xD5,0x00,0xF0,0x6C,0xF8,0x06,0x00,0x08,0xD0, + 0x20,0x7A,0x00,0x28,0x05,0xD1,0x31,0x00,0x20,0x00,0xE7,0x71,0xFE,0xF7,0x94,0xFD, + 0xEB,0xE7,0x31,0x00,0x20,0x00,0xE7,0x71,0xFE,0xF7,0x8E,0xFD,0x47,0xE0,0x11,0x20, + 0x44,0xE0,0x92,0x07,0x43,0xD5,0x00,0xF0,0x55,0xF8,0x21,0x7A,0x00,0x28,0x0A,0xD0, + 0x00,0x29,0x0C,0xD0,0x81,0x42,0x08,0xD1,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7, + 0x7B,0xFD,0xA6,0x71,0x05,0xE0,0x00,0x29,0x01,0xD0,0x12,0x20,0xF5,0xE7,0x02,0x20, + 0xE0,0x71,0x00,0x20,0x20,0x72,0x2A,0xE0,0x70,0x46,0x00,0x28,0x25,0xD0,0x01,0x28, + 0x06,0xD0,0x02,0x28,0x06,0xD0,0x03,0x28,0x21,0xD1,0xE0,0x79,0x80,0x07,0x0E,0xD4, + 0xE6,0x71,0x1C,0xE0,0xE0,0x79,0x80,0x07,0xFA,0xD5,0x21,0x7A,0x00,0x29,0x04,0xD0, + 0x12,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0x57,0xFD,0xE6,0x71,0x09,0xE0,0x02,0x20, + 0xE0,0x71,0x21,0x7A,0x00,0x29,0x04,0xD0,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7, + 0x4B,0xFD,0x01,0x25,0xA6,0x71,0x02,0xE0,0xFF,0xE7,0x00,0x20,0xE0,0x71,0x08,0x49, + 0xC8,0x88,0x82,0x07,0x04,0xD1,0xE2,0x79,0x92,0x07,0x92,0x0F,0x10,0x43,0xC8,0x80, + 0x28,0x00,0xFC,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00,0xE0,0x04,0x00,0x20, + 0x40,0x00,0x00,0x20,0xF0,0xB4,0x16,0x4B,0x04,0x00,0xDE,0x7F,0x00,0x22,0x10,0x00, + 0x00,0x2E,0x23,0xD0,0x1B,0x7E,0x00,0x2B,0x20,0xD1,0x12,0x4F,0x1C,0xE0,0xD3,0x00, + 0xDD,0x19,0x09,0x23,0xDB,0x01,0xEB,0x18,0x00,0x25,0x5D,0x5F,0xA5,0x42,0x0E,0xDC, + 0x04,0x25,0x5D,0x5F,0xA5,0x42,0x0A,0xDB,0x02,0x25,0x5D,0x5F,0x8D,0x42,0x06,0xDC, + 0x06,0x25,0x5D,0x5F,0x8D,0x42,0x02,0xDB,0x50,0x1C,0x00,0x06,0x00,0x0E,0x00,0x28, + 0x04,0xD1,0x52,0x1C,0x12,0x06,0x12,0x0E,0x96,0x42,0xE0,0xD8,0xF0,0xBC,0x70,0x47, + 0xA0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB5,0x00,0x20,0x8D,0xB0,0x09,0x90, + 0x08,0x90,0xBA,0x48,0xBA,0x4C,0x00,0x68,0x01,0x88,0x07,0x91,0x01,0x00,0x40,0x31, + 0xCA,0x7F,0x60,0x30,0x06,0x92,0x8A,0x7F,0x05,0x92,0x40,0x78,0x04,0x90,0x88,0x7D, + 0xB3,0x49,0x03,0x90,0xE0,0x88,0x09,0x79,0x02,0x07,0x04,0xD5,0x00,0x29,0x02,0xD1, + 0x08,0x22,0x90,0x43,0xE0,0x80,0xAF,0x48,0x00,0x25,0x45,0x5F,0xFF,0x22,0xFF,0x23, + 0x2D,0x32,0x01,0x33,0x95,0x42,0x03,0xDD,0x02,0x25,0x45,0x5F,0x95,0x42,0x03,0xDC, + 0x04,0x22,0x82,0x5E,0x0A,0x2A,0x04,0xDD,0xE2,0x88,0x1A,0x43,0xE2,0x80,0x0A,0x22, + 0x04,0xE0,0x06,0x22,0x82,0x5E,0x00,0x2A,0x02,0xD0,0x52,0x1E,0xC2,0x80,0x02,0xE0, + 0xE2,0x88,0x9A,0x43,0xE2,0x80,0x07,0x9A,0x92,0x04,0x7E,0xD5,0x40,0x7A,0x00,0x22, + 0x00,0x28,0x02,0xD1,0x00,0x29,0x00,0xD1,0x01,0x22,0x00,0x92,0x00,0xF0,0x38,0xF9, + 0x97,0x49,0x11,0x22,0x20,0x79,0x92,0x01,0x8A,0x18,0x0B,0x92,0x23,0x22,0x52,0x01, + 0x8D,0x18,0x00,0x28,0x0C,0x90,0x4F,0xD0,0x21,0x89,0x90,0x4A,0x01,0x20,0x0A,0x91, + 0x16,0x68,0x40,0x36,0x72,0x8B,0x91,0x42,0x00,0xD3,0x00,0x20,0x02,0x90,0x0A,0x98, + 0x0A,0x22,0x12,0x21,0x50,0x43,0x69,0x5E,0x0F,0x00,0xFE,0xF7,0x9F,0xFA,0x31,0x7C, + 0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x01,0x90,0x0A,0x98,0x0A,0x21, + 0xC0,0x1B,0xFE,0xF7,0x93,0xFA,0x71,0x7C,0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0, + 0x00,0x20,0xAA,0x89,0xB3,0x7C,0x07,0x00,0x01,0x21,0x08,0x00,0x9A,0x42,0x00,0xD8, + 0x00,0x20,0x0B,0x9A,0xF3,0x7C,0x52,0x6B,0x9A,0x42,0x00,0xDB,0x00,0x21,0x02,0x9A, + 0x00,0x2A,0x19,0xD0,0x01,0x9A,0x00,0x2A,0x16,0xD0,0x00,0x2F,0x14,0xD0,0x00,0x28, + 0x12,0xD0,0x00,0x29,0x10,0xD0,0x72,0x48,0xC0,0x30,0xC0,0x6A,0x00,0x28,0x0B,0xD1, + 0x71,0x48,0x00,0x88,0x1E,0x28,0x07,0xD2,0x68,0x7C,0x00,0x28,0x1B,0xD0,0x71,0x7E, + 0x88,0x42,0x18,0xD8,0x40,0x1E,0x15,0xE0,0x68,0x49,0x0B,0x98,0x09,0x68,0x40,0x6B, + 0x40,0x31,0x0A,0x7D,0x90,0x42,0x0E,0xDB,0x0C,0x98,0x00,0x28,0x0B,0xD0,0xE0,0x88, + 0xC0,0x06,0x08,0xD4,0x68,0x7C,0xC9,0x7D,0x88,0x42,0x04,0xD2,0x03,0x99,0x88,0x42, + 0x01,0xD9,0x40,0x1C,0x68,0x74,0x68,0x7C,0x00,0xE0,0x1B,0xE0,0x03,0x99,0x10,0x22, + 0x88,0x42,0x0A,0xD8,0x00,0x98,0x00,0x28,0x07,0xD1,0xE0,0x88,0x10,0x43,0xE0,0x80, + 0x56,0x48,0x00,0x68,0x40,0x30,0x00,0x7E,0x0E,0xE0,0xE1,0x88,0xC8,0x06,0x0C,0xD5, + 0x28,0x7C,0x00,0x28,0x07,0xD1,0x51,0x48,0x91,0x43,0xE1,0x80,0x00,0x68,0x40,0x30, + 0x40,0x7D,0x68,0x74,0x01,0xE0,0x40,0x1E,0x28,0x74,0x20,0x79,0x00,0x28,0x7E,0xD0, + 0xE0,0x88,0x80,0x06,0x0B,0xD5,0x04,0xA8,0x03,0xC8,0x81,0x42,0x05,0xD9,0x08,0x00, + 0x04,0x99,0x40,0x1A,0x00,0x06,0x00,0x0E,0x00,0xE0,0x01,0x20,0x05,0x90,0x01,0x22, + 0x50,0x00,0x01,0x19,0x8C,0x46,0xFF,0x31,0x61,0x31,0xCB,0x89,0x00,0x2B,0x6F,0xD0, + 0x07,0x9D,0x00,0x20,0xAD,0x07,0x08,0xD5,0x06,0x9D,0xAB,0x42,0x05,0xD9,0x20,0x71, + 0xE0,0x88,0x08,0x23,0x18,0x43,0xE0,0x80,0x01,0x20,0x07,0x9B,0x5B,0x07,0x5F,0xD5, + 0x00,0x28,0x5D,0xD1,0xC8,0x89,0x05,0x99,0x88,0x42,0x59,0xD3,0x37,0x48,0x00,0x88, + 0x06,0x28,0x55,0xD9,0x00,0x23,0x01,0x20,0x29,0xE0,0xFF,0x25,0x21,0x18,0x66,0x35, + 0x6D,0x5C,0x95,0x42,0x22,0xD1,0x5B,0x1C,0xFF,0x31,0x21,0x31,0x09,0x7E,0x09,0x91, + 0x01,0x00,0x14,0xE0,0x4D,0x00,0x2D,0x19,0x2E,0x00,0xE0,0x36,0xF7,0x8A,0xFF,0x35, + 0x01,0x35,0xB7,0x82,0x2F,0x89,0xEF,0x80,0x65,0x18,0x2E,0x00,0xFF,0x36,0x21,0x36, + 0x77,0x7E,0xFF,0x35,0x61,0x35,0x37,0x76,0xAF,0x79,0x49,0x1C,0x6F,0x71,0x25,0x79, + 0x8D,0x42,0xE7,0xDA,0x21,0x79,0x49,0x1E,0x40,0x1E,0x21,0x71,0x40,0x1C,0x21,0x79, + 0x81,0x42,0xD2,0xDA,0x00,0x2B,0x23,0xDD,0x01,0x2B,0x05,0xDD,0x01,0x20,0x08,0x90, + 0xE0,0x88,0x20,0x21,0x08,0x43,0xE0,0x80,0x21,0x79,0x60,0x46,0xFF,0x30,0x49,0x1C, + 0x41,0x30,0x09,0x06,0xC3,0x88,0x09,0x0E,0x21,0x71,0x49,0x00,0x09,0x19,0xE0,0x31, + 0x8B,0x82,0xC1,0x8A,0x20,0x79,0x40,0x00,0x00,0x19,0xFF,0x30,0x01,0xE0,0x11,0xE0, + 0x06,0xE0,0x01,0x30,0xC1,0x80,0x23,0x79,0x0A,0x49,0x09,0x98,0x48,0x39,0x58,0x54, + 0x52,0x1C,0x08,0x2A,0x84,0xDB,0x08,0x98,0x00,0x28,0x03,0xD1,0xE0,0x88,0x20,0x21, + 0x88,0x43,0xE0,0x80,0x0D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x78,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0xC0,0x01,0x00,0x20,0x7C,0x05,0x00,0x20,0xC0,0x05,0x00,0x20, + 0xF0,0xB5,0x5F,0x4C,0xB9,0xB0,0x20,0x68,0x00,0x21,0x60,0x30,0x07,0x79,0x40,0x79, + 0x33,0x90,0x5C,0x48,0x38,0x90,0x41,0x82,0x20,0x38,0x37,0x90,0x41,0x63,0x32,0x91, + 0x31,0x91,0x60,0x21,0x19,0xA8,0xFE,0xF7,0xE9,0xFA,0x60,0x21,0x01,0xA8,0xFE,0xF7, + 0xE5,0xFA,0x38,0x98,0x41,0x7C,0x20,0x68,0x40,0x30,0xC0,0x7D,0x81,0x42,0x77,0xD0, + 0x33,0x9D,0x0E,0x21,0x48,0x1B,0x34,0x90,0x5B,0xE0,0x15,0x21,0xC9,0x1B,0x36,0x91, + 0x33,0x99,0x38,0x00,0x69,0x1A,0x8C,0x00,0x1A,0xE0,0x4B,0x4A,0x6B,0x00,0x9E,0x18, + 0xB8,0x23,0xF3,0x5E,0x0E,0x21,0x46,0x00,0x41,0x43,0xB2,0x18,0x88,0x26,0x96,0x5F, + 0x49,0x19,0x09,0x04,0x9A,0x19,0x45,0x4B,0x09,0x14,0x49,0x00,0x59,0x5E,0x51,0x18, + 0x32,0x9A,0x52,0x18,0x32,0x92,0x19,0xAA,0x13,0x59,0x59,0x18,0x40,0x1C,0x11,0x51, + 0x36,0x99,0x81,0x42,0xE1,0xDC,0x78,0x00,0x15,0x21,0x09,0x1A,0x19,0xAE,0x35,0x90, + 0x30,0x59,0xFE,0xF7,0x33,0xF9,0x30,0x51,0x3E,0x00,0x84,0x46,0x19,0xE0,0x0E,0x20, + 0x70,0x43,0x36,0x49,0x40,0x19,0x40,0x00,0x09,0x5E,0x60,0x46,0x6A,0x00,0x09,0x1A, + 0x31,0x48,0x13,0x18,0xB8,0x22,0x9A,0x5E,0x73,0x00,0x1B,0x18,0x88,0x20,0x18,0x5E, + 0x10,0x18,0x09,0x18,0x0B,0x00,0x4B,0x43,0x01,0xA8,0x02,0x59,0xD1,0x18,0x76,0x1C, + 0x01,0x51,0x36,0x98,0xB0,0x42,0xE2,0xDC,0x35,0x98,0x14,0x21,0x09,0x1A,0x01,0xAE, + 0x30,0x59,0xFE,0xF7,0x0B,0xF9,0x30,0x51,0x31,0x99,0x40,0x18,0x31,0x90,0x34,0x98, + 0x6D,0x1C,0xA8,0x42,0xA1,0xDC,0x78,0x00,0x15,0x21,0x09,0x1A,0x33,0x98,0x0E,0x22, + 0x40,0x00,0x14,0x1A,0x61,0x43,0x06,0x00,0x32,0x98,0xFE,0xF7,0xF7,0xF8,0x38,0x99, + 0x48,0x82,0x31,0x98,0x21,0x00,0xFE,0xF7,0xF1,0xF8,0x00,0x21,0x01,0xAB,0x0B,0xE0, + 0x1B,0xE0,0x8A,0x00,0x9A,0x58,0x82,0x1A,0x15,0x00,0x55,0x43,0x37,0x9A,0x52,0x6B, + 0xAA,0x18,0x37,0x9D,0x49,0x1C,0x6A,0x63,0x8C,0x42,0xF2,0xDC,0x37,0x98,0x0D,0x21, + 0x40,0x6B,0x89,0x1B,0xFE,0xF7,0xDA,0xF8,0x15,0x22,0x34,0x99,0xD2,0x1B,0x92,0x02, + 0x51,0x43,0xFE,0xF7,0xD3,0xF8,0x37,0x99,0x48,0x63,0x38,0x99,0x12,0x20,0x08,0x5E, + 0x00,0x28,0x01,0xD1,0x40,0x1C,0x48,0x82,0x39,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x78,0x06,0x00,0x20,0xA0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10, + 0x10,0xB5,0x00,0x28,0x06,0xD1,0x14,0x48,0x00,0x69,0x00,0x04,0x00,0x0E,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x11,0x49,0x09,0x6B,0x11,0x4A,0x12,0x4B,0x8A,0x18,0x9A,0x42, + 0x16,0xD2,0x00,0x04,0x00,0x0C,0x48,0x43,0x59,0x1E,0xFE,0xF7,0xD7,0xF9,0x04,0x00, + 0x0A,0x21,0xFE,0xF7,0xD3,0xF9,0x04,0x29,0x00,0xD9,0x0A,0x34,0x0A,0x21,0x20,0x00, + 0xFE,0xF7,0xCC,0xF9,0x08,0x49,0x49,0x7C,0x08,0x18,0xFF,0x28,0x00,0xD9,0xFF,0x20, + 0x00,0x06,0x00,0x0E,0xDB,0xE7,0x00,0x00,0x00,0x90,0x00,0x40,0x00,0x70,0x00,0x40, + 0x90,0x6B,0xFF,0xFF,0xA1,0x0F,0x00,0x00,0x60,0x93,0x00,0x00,0xFE,0xB5,0x77,0x4C, + 0x60,0x7B,0x00,0x28,0x06,0xD0,0xA0,0x6D,0x00,0x04,0x00,0x0C,0x06,0xF0,0x86,0xF9, + 0x06,0xF0,0x74,0xF9,0x01,0x20,0x40,0x03,0xFE,0xF7,0x60,0xFE,0xFE,0xF7,0x1E,0xFA, + 0x05,0xF0,0x5A,0xFC,0x05,0xF0,0x6E,0xFC,0x05,0xF0,0x82,0xFE,0x6C,0x48,0x01,0x25, + 0x85,0x60,0x1F,0x20,0x01,0xF0,0x24,0xFE,0x6A,0x48,0x02,0x90,0xC0,0xE0,0x6A,0x48, + 0x41,0x68,0x09,0x07,0x0B,0xD5,0xC1,0x68,0x00,0x29,0x08,0xD0,0xC0,0x68,0x07,0x28, + 0x03,0xD1,0x01,0x21,0x49,0x07,0xC8,0x63,0xB7,0xE0,0x05,0xF0,0x5B,0xF8,0x60,0x7B, + 0x00,0x28,0x04,0xD0,0xA0,0x6D,0x00,0x04,0x00,0x0C,0x06,0xF0,0x57,0xF9,0x80,0x20, + 0xFE,0xF7,0x34,0xFE,0x03,0x20,0x05,0xF0,0xC9,0xFF,0x01,0x20,0x40,0x03,0xFE,0xF7, + 0x2D,0xFE,0x5A,0x48,0xC0,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06, + 0x01,0xD5,0x04,0x20,0x00,0xE0,0x02,0x20,0x05,0xF0,0x5C,0xFE,0x00,0xF0,0xCC,0xFB, + 0x00,0xF0,0x88,0xFB,0x00,0xF0,0x96,0xFB,0x51,0x48,0x05,0x61,0x00,0xF0,0x42,0xFC, + 0x00,0xF0,0x78,0xFB,0x01,0x20,0x80,0x03,0xFE,0xF7,0x10,0xFE,0x00,0xF0,0x8A,0xFB, + 0x00,0xF0,0x38,0xFC,0xFE,0xF7,0x92,0xFA,0xA0,0x7C,0x00,0x28,0x05,0xD1,0x02,0x98, + 0x00,0x7B,0x00,0x28,0x01,0xD0,0x04,0xF0,0x99,0xFE,0x03,0xF0,0x6F,0xFD,0x00,0x28, + 0x00,0xD0,0x25,0x70,0xE0,0x8A,0x43,0x49,0x88,0x42,0x01,0xD2,0x40,0x1C,0xE0,0x82, + 0x3A,0x48,0x00,0x78,0x00,0x28,0x16,0xD1,0x39,0x4C,0x80,0x34,0x26,0x6A,0x67,0x6A, + 0x60,0x6B,0x01,0x90,0xE0,0x6A,0x00,0x90,0x00,0x20,0x05,0xF0,0x23,0xFE,0x00,0x22, + 0x11,0x00,0x10,0x00,0x13,0x00,0x00,0xF0,0x4D,0xF9,0x26,0x62,0x67,0x62,0x01,0x98, + 0x60,0x63,0x00,0x98,0xE0,0x62,0x03,0x20,0x40,0x03,0xFE,0xF7,0xCF,0xFD,0x2B,0x4C, + 0x20,0x78,0x00,0x28,0x05,0xD0,0xA0,0x7C,0x00,0x09,0x04,0x28,0x45,0xD1,0x00,0x20, + 0x20,0x70,0x03,0x20,0x05,0xF0,0x3C,0xFF,0x60,0x65,0x03,0x20,0x05,0xF0,0x6E,0xFF, + 0x80,0x20,0xFE,0xF7,0xBB,0xFD,0x25,0x49,0xC8,0x8B,0x00,0x28,0x02,0xD0,0x40,0x1E, + 0xC8,0x83,0x2D,0xE0,0xA0,0x7A,0x00,0x28,0x2A,0xD1,0xE0,0x6A,0x00,0x28,0x27,0xD0, + 0x60,0x6D,0x21,0x49,0x0C,0x1A,0xFF,0x20,0x91,0x30,0x84,0x42,0x20,0xDD,0xFF,0x26, + 0x01,0x36,0x30,0x00,0xFE,0xF7,0xAA,0xFD,0x02,0x20,0x05,0xF0,0x4F,0xFF,0x0A,0x21, + 0x20,0x00,0xFD,0xF7,0xBB,0xFF,0x41,0x11,0x02,0x20,0x05,0xF0,0x2F,0xFF,0x04,0x20, + 0xFE,0xF7,0xD4,0xFD,0x02,0x20,0x05,0xF0,0x31,0xFF,0x11,0x48,0x05,0x61,0xFF,0x20, + 0xFE,0xF7,0xCC,0xFD,0x02,0x20,0x05,0xF0,0x39,0xFF,0x30,0x00,0xFE,0xF7,0x86,0xFD, + 0x06,0x4C,0x20,0x78,0x00,0x28,0x00,0xD1,0x39,0xE7,0x04,0x48,0x40,0x7B,0x00,0x28, + 0x01,0xD0,0x06,0xF0,0x9B,0xF8,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x64,0x05,0x00,0x20, + 0x00,0x90,0x00,0x40,0x80,0x93,0x00,0x00,0x00,0x40,0x00,0x30,0x40,0x00,0x00,0x20, + 0x40,0x00,0x00,0x40,0x10,0x27,0x00,0x00,0xFC,0x3A,0x00,0x00,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x10,0xB5,0x0C,0x48,0x09,0x22,0x00,0x21,0xFE,0xF7,0xD2,0xF8, + 0x0A,0x48,0x5A,0x22,0x00,0x21,0xFE,0xF7,0xCD,0xF8,0x08,0x48,0x00,0x24,0x0C,0x38, + 0x04,0x72,0x07,0x48,0x28,0x22,0x21,0x00,0xFE,0xF7,0xC4,0xF8,0x04,0x48,0x52,0x38, + 0x44,0x76,0x10,0xBC,0x08,0xBC,0x18,0x47,0xE3,0x02,0x00,0x20,0xCC,0x01,0x00,0x20, + 0xF2,0x04,0x00,0x20,0x10,0xB5,0x17,0x48,0x12,0x22,0x00,0x21,0xFE,0xF7,0xB2,0xF8, + 0x14,0x48,0x12,0x22,0x00,0x21,0x12,0x30,0xFE,0xF7,0xAC,0xF8,0x11,0x48,0x09,0x22, + 0x00,0x21,0x44,0x30,0xFE,0xF7,0xA6,0xF8,0x0E,0x48,0x20,0x22,0x00,0x21,0x24,0x30, + 0xFE,0xF7,0xA0,0xF8,0x0B,0x48,0x10,0x22,0x00,0x21,0x52,0x30,0xFE,0xF7,0x9A,0xF8, + 0x08,0x48,0x10,0x22,0x00,0x21,0x62,0x30,0xFE,0xF7,0x94,0xF8,0x05,0x49,0x00,0x20, + 0x6C,0x31,0xC8,0x83,0xFF,0x39,0x61,0x39,0x08,0x71,0x88,0x83,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x34,0x01,0x00,0x20,0x8C,0x10,0x9F,0xE5,0x10,0x40,0x2D,0xE9, + 0x00,0x10,0x91,0xE5,0x84,0xC0,0x9F,0xE5,0x7E,0xE0,0xD1,0xE5,0x08,0x10,0xA0,0xE3, + 0x00,0x30,0xA0,0xE3,0x01,0x22,0x8C,0xE0,0x80,0x20,0x82,0xE0,0xB7,0x4F,0xA0,0xE3, + 0xB2,0x30,0x84,0xE1,0x03,0x2C,0x82,0xE2,0x01,0x10,0x51,0xE2,0xBC,0x36,0xC2,0xE1, + 0xF7,0xFF,0xFF,0x5A,0x01,0x20,0xA0,0xE3,0x00,0x10,0x8C,0xE0,0xD4,0x22,0xC1,0xE5, + 0x80,0x20,0x8C,0xE0,0x03,0x2C,0x82,0xE2,0xBC,0x3F,0xC2,0xE1,0x0C,0xE4,0xC1,0xE5, + 0x14,0x34,0xC1,0xE5,0x02,0x10,0xA0,0xE3,0x01,0x22,0x8C,0xE0,0x80,0x20,0x82,0xE0, + 0x01,0x2B,0x82,0xE2,0x01,0x10,0x51,0xE2,0xBC,0x31,0xC2,0xE1,0xF9,0xFF,0xFF,0x5A, + 0x00,0x01,0x8C,0xE0,0x00,0x10,0xE0,0xE3,0x01,0x0B,0x80,0xE2,0xBC,0x14,0xC0,0xE1, + 0xBE,0x14,0xC0,0xE1,0x10,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x78,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0x10,0xB5,0x06,0x48,0x1E,0x22,0x00,0x21,0xFE,0xF7,0x32,0xF8, + 0x04,0x48,0x00,0x21,0x81,0x74,0x41,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xF6,0x02,0x00,0x20,0x20,0x01,0x00,0x20,0x10,0xB5,0x05,0xF0,0x8D,0xFE,0x04,0xF0, + 0xC3,0xFD,0xFF,0xF7,0x47,0xFF,0x04,0xF0,0x25,0xFF,0x01,0xF0,0x99,0xFE,0x01,0xF0, + 0xD3,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x09,0x4B,0x10,0xB4,0x1B,0x68,0x80,0x33, + 0x1B,0x7B,0x04,0x1E,0x00,0xDC,0x44,0x42,0x9C,0x42,0x06,0xDD,0x98,0x42,0x01,0xDD, + 0xC8,0x1A,0x00,0xE0,0xC8,0x18,0x02,0x04,0x12,0x0C,0x10,0xBC,0x10,0x00,0x70,0x47, + 0x78,0x06,0x00,0x20,0xFF,0xB5,0x69,0x48,0xE7,0xB0,0x00,0x7D,0x00,0x28,0x03,0xD0, + 0x01,0x20,0x62,0x90,0x00,0x20,0x02,0xE0,0x00,0x20,0x62,0x90,0x01,0x20,0x61,0x90, + 0x63,0x48,0x00,0x26,0x64,0x90,0x63,0x48,0x35,0x00,0x01,0x8B,0x05,0x91,0x41,0x8B, + 0x04,0x91,0x81,0x8A,0x03,0x91,0xC0,0x8A,0x02,0x90,0x5F,0x48,0x00,0x7B,0x63,0x96, + 0x01,0x90,0x00,0x24,0x28,0x00,0x0E,0x21,0x48,0x43,0x66,0x90,0x07,0x19,0x21,0x00, + 0x28,0x00,0x01,0xF0,0xFF,0xF9,0x55,0x49,0x20,0x39,0x0A,0x7D,0xD2,0x07,0x2D,0xD0, + 0x56,0x4A,0x52,0x7A,0x00,0x2A,0x01,0x9A,0x11,0xD0,0x95,0x42,0x26,0xD1,0x8A,0x7D, + 0xA2,0x42,0x1D,0xD0,0xCA,0x7D,0xA2,0x42,0x1A,0xD0,0x0A,0x7E,0xA2,0x42,0x17,0xD0, + 0x4A,0x7E,0xA2,0x42,0x14,0xD0,0x89,0x7E,0xA1,0x42,0x42,0xD1,0x10,0xE0,0x94,0x42, + 0x14,0xD1,0x8A,0x7D,0xAA,0x42,0x0B,0xD0,0xCA,0x7D,0xAA,0x42,0x08,0xD0,0x0A,0x7E, + 0xAA,0x42,0x05,0xD0,0x4A,0x7E,0xAA,0x42,0x02,0xD0,0x89,0x7E,0xA9,0x42,0x30,0xD1, + 0x05,0x99,0x04,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C,0x04,0xE0,0x03,0x99,0x02,0x9A, + 0x41,0x18,0x09,0x04,0x09,0x0C,0x80,0x1A,0x64,0x9B,0x02,0x04,0xB8,0x00,0x18,0x58, + 0x68,0x9B,0x12,0x0C,0x00,0x2B,0x02,0xD0,0x00,0x05,0x00,0x0D,0x01,0xE0,0x00,0x01, + 0x00,0x0D,0x67,0x9B,0x05,0x2B,0x0E,0xD8,0x90,0x42,0x01,0xDA,0x62,0x9A,0x02,0xE0, + 0x88,0x42,0x0E,0xDD,0x61,0x9A,0x21,0x00,0x28,0x00,0x00,0xF0,0x97,0xF8,0x06,0xA8, + 0x87,0x55,0x76,0x1C,0x05,0xE0,0x63,0x99,0x06,0xA8,0x47,0x54,0x63,0x98,0x40,0x1C, + 0x63,0x90,0x64,0x1C,0x0E,0x2C,0x01,0xDA,0x66,0x98,0x97,0xE7,0x6D,0x1C,0x15,0x2D, + 0x8F,0xDB,0x67,0x98,0x05,0x28,0x00,0xD9,0x63,0x9E,0x00,0x2E,0x3A,0xDD,0x69,0x98, + 0x00,0x28,0x37,0xD1,0x00,0xF0,0x5E,0xF9,0x00,0xF0,0x74,0xF9,0x00,0xF0,0x22,0xFA, + 0x1B,0x4D,0x27,0xE0,0x06,0xA8,0x80,0x5D,0x80,0x00,0x65,0x90,0x28,0x58,0x01,0x01, + 0x07,0x05,0x6A,0x98,0x0C,0x0D,0x3F,0x0D,0x00,0x28,0x01,0xD0,0x64,0x21,0x00,0xE0, + 0x32,0x21,0xBC,0x42,0x06,0xD9,0xE0,0x1B,0x48,0x43,0x64,0x21,0xFD,0xF7,0xF6,0xFD, + 0x20,0x1A,0x05,0xE0,0x38,0x1B,0x64,0x21,0x48,0x43,0xFD,0xF7,0xEF,0xFD,0x00,0x19, + 0x0F,0x49,0x00,0x04,0x00,0x0C,0x88,0x42,0x00,0xD9,0x08,0x00,0x65,0x99,0x00,0x04, + 0x38,0x43,0x68,0x50,0x76,0x1E,0xD5,0xD5,0x00,0xF0,0x2C,0xF9,0x00,0xF0,0x42,0xF9, + 0x00,0xF0,0xF0,0xF9,0x6B,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x20,0x93,0x00,0x00, + 0xD4,0x02,0x10,0x40,0xE0,0x95,0x00,0x00,0xE0,0x04,0x00,0x20,0x64,0x05,0x00,0x20, + 0xFF,0x0F,0x00,0x00,0x7F,0xB5,0x01,0x25,0x6D,0x07,0x28,0x68,0x02,0x28,0x27,0xD1, + 0xAC,0x68,0x01,0xAA,0x20,0x05,0x00,0x0D,0x02,0x90,0x20,0x02,0x00,0x0D,0x03,0x90, + 0x02,0xA9,0x03,0xA8,0x6B,0x46,0x04,0xF0,0x87,0xFF,0x40,0x1C,0x18,0xD0,0x01,0x98, + 0x03,0x99,0x40,0x00,0x40,0x18,0x03,0x21,0xFD,0xF7,0xE0,0xFE,0x00,0x05,0x06,0x0A, + 0x09,0x48,0x02,0x99,0x04,0x40,0x00,0x98,0x26,0x43,0x40,0x00,0x40,0x18,0x03,0x21, + 0xFD,0xF7,0xD4,0xFE,0x00,0x05,0x00,0x0D,0x31,0x0B,0x09,0x03,0x08,0x43,0xA8,0x60, + 0x7F,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xFF,0x0F,0x00,0xFF,0x30,0xB4,0x0E,0x25, + 0x68,0x43,0x14,0x4C,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x09,0x0E,0x00,0x0A, + 0x00,0x2B,0x07,0xD0,0x00,0x2A,0x02,0xD0,0xC9,0x18,0xC0,0x18,0x0F,0xE0,0xC0,0x1A, + 0xC9,0x1A,0x0C,0xE0,0x00,0x2A,0x05,0xD0,0x88,0x42,0x01,0xDD,0x49,0x1C,0x06,0xE0, + 0x40,0x1C,0x04,0xE0,0x88,0x42,0x01,0xDD,0x40,0x1E,0x00,0xE0,0x49,0x1E,0x4A,0x1E, + 0xFF,0x2A,0x05,0xD2,0x42,0x1E,0xFF,0x2A,0x02,0xD2,0x00,0x02,0x08,0x43,0x60,0x53, + 0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0xF0,0xB5,0x8B,0xB0,0x0E,0x27,0x15,0x20, + 0x04,0xA9,0x81,0xC1,0x06,0x90,0x53,0x48,0x53,0x49,0x0A,0x90,0x80,0x7F,0x09,0x91, + 0xC2,0x07,0x0A,0xD0,0x80,0x07,0x03,0xD5,0x0D,0x20,0x03,0x21,0x05,0x90,0x02,0xE0, + 0x14,0x20,0x00,0x21,0x04,0x90,0x09,0x98,0x01,0x72,0x4C,0x48,0x0A,0x22,0x01,0x8C, + 0x40,0x8C,0x51,0x43,0x50,0x43,0x00,0x04,0x00,0x0C,0x01,0x90,0x05,0x98,0x0E,0x04, + 0x36,0x0C,0x00,0x28,0x7E,0xD0,0x04,0x98,0x00,0x28,0x7F,0xD0,0x05,0x98,0x41,0x00, + 0x30,0x00,0xFD,0xF7,0x3B,0xFD,0x05,0x04,0x2D,0x0C,0x00,0x24,0xBF,0x1C,0x0A,0xE0, + 0x30,0x00,0x60,0x43,0x05,0x99,0xFD,0xF7,0x31,0xFD,0x3D,0x4A,0x61,0x00,0x40,0x19, + 0x89,0x18,0x64,0x1C,0x08,0x84,0xBC,0x42,0xF2,0xDB,0x04,0x98,0x41,0x00,0x01,0x98, + 0xFD,0xF7,0x24,0xFD,0x06,0x9F,0x06,0x04,0x36,0x0C,0x00,0x24,0xBF,0x1C,0x0B,0xE0, + 0x01,0x98,0x04,0x99,0x60,0x43,0xFD,0xF7,0x19,0xFD,0x31,0x4A,0x81,0x19,0x60,0x00, + 0x80,0x18,0x40,0x30,0x64,0x1C,0x81,0x82,0xBC,0x42,0xF1,0xDB,0x0A,0x98,0x80,0x7F, + 0xC0,0x07,0x4B,0xD0,0x00,0x24,0x43,0xE0,0x29,0x4A,0x25,0x21,0x10,0x19,0x49,0x01, + 0x40,0x18,0x41,0x7B,0x0A,0x98,0x80,0x7F,0x80,0x07,0x03,0xD5,0x05,0x98,0x02,0x95, + 0x03,0x91,0x03,0xE0,0x08,0x00,0x04,0x99,0x02,0x96,0x03,0x91,0x20,0x49,0x40,0x00, + 0x40,0x18,0x08,0x90,0x00,0x8C,0x0A,0x21,0x40,0x1B,0xFD,0xF7,0xEF,0xFC,0x1C,0x4A, + 0xE1,0x00,0x89,0x18,0x09,0x22,0xD2,0x01,0x8F,0x18,0x38,0x80,0x03,0x98,0x18,0x49, + 0x40,0x00,0x40,0x18,0x40,0x30,0x07,0x90,0x80,0x8A,0x0A,0x21,0x80,0x1B,0xFD,0xF7, + 0xDD,0xFC,0x78,0x80,0x08,0x98,0x0A,0x21,0x00,0x8C,0x40,0x19,0xFD,0xF7,0x06,0xFE, + 0xB8,0x80,0x07,0x98,0x0A,0x21,0x80,0x8A,0x80,0x19,0xFD,0xF7,0xFF,0xFD,0xF8,0x80, + 0x02,0x98,0x0A,0x21,0x40,0x00,0xFD,0xF7,0xF9,0xFD,0x09,0x99,0x64,0x1C,0x48,0x81, + 0x0A,0x98,0x00,0xE0,0x02,0xE0,0xC0,0x7F,0xA0,0x42,0xB5,0xDC,0x0B,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0xA0,0x04,0x00,0x20,0xE0,0x04,0x00,0x20,0x00,0x93,0x00,0x00, + 0x40,0x00,0x00,0x20,0x02,0x49,0x08,0x68,0x04,0x22,0x90,0x43,0x08,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x04,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x01,0x22,0x11,0x43,0xC1,0x60,0x70,0x47, + 0xC0,0x90,0x00,0x40,0x01,0x49,0xC8,0x68,0xC8,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x02,0x48,0x01,0x68,0x08,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0xB5,0x22,0x10,0xB5,0x07,0x49,0x08,0x48,0x92,0x00,0xFD,0xF7,0xCD,0xFD,0x07,0x48, + 0x07,0x4A,0xC0,0x8E,0x01,0x04,0x01,0x43,0x06,0x48,0xFD,0xF7,0xF1,0xFD,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x9D,0x00,0x00,0x00,0x00,0x10,0x40,0x00,0x93,0x00,0x00, + 0xA4,0x05,0x00,0x00,0xD4,0x02,0x10,0x40,0x02,0x48,0x81,0x6B,0x49,0x08,0x49,0x00, + 0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x02,0x48,0x81,0x6B,0x01,0x22,0x11,0x43, + 0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x10,0xB5,0x0A,0x49,0x0A,0x48,0xFC,0x22, + 0xFD,0xF7,0xA2,0xFD,0xFF,0x22,0x09,0x49,0x09,0x48,0xF1,0x32,0xFD,0xF7,0x9C,0xFD, + 0x71,0x22,0x08,0x49,0x08,0x48,0xD2,0x00,0xFD,0xF7,0x96,0xFD,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x04,0x96,0x00,0x00,0x04,0x90,0x00,0x40,0x00,0x97,0x00,0x00, + 0x00,0xA0,0x00,0x40,0x00,0x99,0x00,0x00,0x78,0x08,0x10,0x40,0x03,0x48,0x41,0x68, + 0x01,0x22,0x12,0x04,0x11,0x43,0x41,0x60,0x70,0x47,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x70,0xB5,0x1A,0x4C,0x20,0x68,0x40,0x08,0x40,0x00,0x20,0x60,0x18,0x48,0xA6,0x15, + 0x05,0x04,0x2D,0x0C,0x00,0x22,0x31,0x00,0x28,0x00,0xFD,0xF7,0x79,0xFD,0x32,0x00, + 0x21,0x00,0x28,0x00,0x00,0x23,0xFD,0xF7,0x7B,0xFD,0x12,0x48,0x75,0x00,0x04,0x04, + 0x24,0x0C,0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0x6A,0xFD,0x0E,0x49,0x2A,0x00, + 0x20,0x00,0x00,0x23,0xFD,0xF7,0x6C,0xFD,0x0C,0x48,0x6D,0x00,0x04,0x04,0x24,0x0C, + 0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0x5B,0xFD,0x09,0x49,0x2A,0x00,0x20,0x00, + 0x00,0x23,0xFD,0xF7,0x5D,0xFD,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40, + 0x00,0x96,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x99,0x00,0x00, + 0x78,0x08,0x10,0x40,0x02,0x48,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0x70,0x47,0x00,0x00, + 0x00,0x90,0x00,0x40,0xF0,0x47,0x2D,0xE9,0x00,0x80,0xA0,0xE1,0xF4,0x01,0x9F,0xE5, + 0xF4,0x71,0x9F,0xE5,0x00,0x00,0x90,0xE5,0x00,0x50,0xA0,0xE3,0xB4,0x67,0xD0,0xE1, + 0x76,0x00,0xD0,0xE5,0x01,0x40,0xA0,0xE3,0x90,0x00,0x01,0xE0,0x8A,0x01,0xD7,0xE5, + 0xFF,0x90,0x01,0xE2,0x01,0x00,0x50,0xE3,0x0E,0x00,0x00,0xBA,0x04,0x01,0x84,0xE0, + 0x80,0x00,0x87,0xE0,0x40,0x12,0xD0,0xE5,0x00,0x00,0x51,0xE3,0x05,0x00,0x00,0x0A, + 0x02,0x0C,0x80,0xE2,0x46,0x00,0x80,0xE2,0x41,0x05,0x00,0xEB,0x00,0x00,0x50,0xE3, + 0x01,0x00,0x85,0x12,0xFF,0x50,0x00,0x12,0x8A,0x01,0xD7,0xE5,0x01,0x40,0x84,0xE2, + 0x04,0x00,0x50,0xE1,0xF0,0xFF,0xFF,0xAA,0x90,0x01,0x9F,0xE5,0x00,0x50,0x80,0xE5, + 0x8C,0x01,0x9F,0xE5,0xB4,0x2C,0xD0,0xE1,0xB8,0x3C,0xD0,0xE1,0xBA,0xCC,0xD0,0xE1, + 0x03,0x10,0x42,0xE0,0x00,0x00,0x51,0xE3,0x02,0x10,0x43,0xD0,0xB6,0x3C,0xD0,0xE1, + 0x01,0x18,0xA0,0xE1,0x21,0x18,0xA0,0xE1,0x0C,0x20,0x43,0xE0,0x00,0x00,0x52,0xE3, + 0x03,0x20,0x4C,0xD0,0xD0,0x32,0xD7,0xE5,0x02,0x28,0xA0,0xE1,0x22,0x28,0xA0,0xE1, + 0x00,0x00,0x53,0xE3,0xD3,0x32,0xD7,0x15,0xC8,0x00,0x53,0x13,0x01,0x00,0x00,0x2A, + 0x01,0x30,0x83,0xE2,0xD3,0x32,0xC7,0xE5,0xB6,0x3B,0xD0,0xE1,0x01,0xC0,0xA0,0xE3, + 0x14,0x00,0x53,0xE3,0x02,0x00,0x00,0x2A,0xB9,0x32,0xD7,0xE5,0x00,0x00,0x53,0xE3, + 0xBA,0xC2,0xC7,0x15,0x19,0x00,0x51,0xE3,0x19,0x00,0x52,0x93,0x03,0x00,0x00,0x9A, + 0xB8,0x32,0xD7,0xE5,0xC8,0x00,0x53,0xE3,0x01,0x30,0x83,0x32,0xB8,0x32,0xC7,0x35, + 0xFE,0x3C,0xD0,0xE1,0x02,0x00,0x55,0xE3,0x19,0x00,0x51,0x33,0x19,0x00,0x52,0x33, + 0x03,0x00,0x00,0x2A,0x04,0x00,0x53,0xE3,0x05,0x00,0x00,0xAA,0x01,0x30,0x83,0xE2, + 0x02,0x00,0x00,0xEA,0x03,0x00,0x73,0xE3,0x01,0x00,0x00,0xDA,0x01,0x30,0x43,0xE2, + 0xBE,0x3C,0xC0,0xE1,0xD3,0x32,0xD7,0xE5,0x01,0x00,0x53,0xE3,0x78,0x10,0xA0,0x83, + 0x0D,0x00,0x00,0x8A,0x02,0x00,0x55,0xE3,0x0C,0x00,0x00,0x2A,0xFE,0x3C,0xD0,0xE1, + 0x02,0x00,0x53,0xE3,0x09,0x00,0x00,0xDA,0xB8,0x32,0xD7,0xE5,0x14,0x00,0x53,0xE3, + 0x06,0x00,0x00,0x2A,0x47,0x10,0x41,0xE2,0x95,0x00,0x51,0xE3,0x47,0x10,0x42,0x22, + 0x95,0x00,0x51,0x23,0x01,0x00,0x00,0x2A,0x77,0x10,0xE0,0xE3,0xBC,0x1C,0xC0,0xE1, + 0x00,0x10,0xA0,0xE3,0x02,0x00,0x55,0xE3,0xD2,0x12,0xC7,0xE5,0x0A,0x00,0x00,0x2A, + 0xFC,0x1C,0xD0,0xE1,0x78,0x00,0x71,0xE3,0x03,0x00,0x00,0x1A,0xD1,0x12,0xD7,0xE5, + 0xC8,0x00,0x51,0xE3,0x01,0x10,0x81,0x32,0xD1,0x12,0xC7,0x35,0xD1,0x12,0xD7,0xE5, + 0x02,0x00,0x51,0xE3,0xD2,0xC2,0xC7,0x05,0x01,0x00,0x00,0xEA,0x3B,0x10,0xE0,0x83, + 0xBC,0x1C,0xC0,0x81,0xFC,0x0C,0xD0,0xE1,0x00,0x00,0x58,0xE3,0x06,0x10,0x80,0xE0, + 0xF0,0x47,0xBD,0x18,0x91,0x01,0x00,0xE0,0x1E,0xFF,0x2F,0x11,0x04,0x10,0xD7,0xE5, + 0x01,0x00,0x51,0xE3,0xF0,0x47,0xBD,0x08,0x1E,0xFF,0x2F,0x01,0x09,0x10,0xA0,0xE1, + 0xF0,0x47,0xBD,0xE8,0x71,0xF5,0xFF,0xEA,0x78,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0xA0,0x05,0x00,0x20,0x40,0x02,0x00,0x20,0x78,0x47,0xC0,0x46,0xD2,0x10,0xA0,0xE3, + 0x01,0x00,0xB0,0xE1,0x01,0x10,0x41,0xE2,0xFC,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1, + 0x78,0x47,0xC0,0x46,0x11,0x10,0xA0,0xE3,0x01,0x00,0xB0,0xE1,0x01,0x10,0x41,0xE2, + 0xFC,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0x02,0x48,0x41,0x6B,0x01,0x22,0x11,0x43, + 0x41,0x63,0x70,0x47,0x00,0x70,0x00,0x40,0x70,0x47,0x00,0x00,0x13,0x48,0x10,0xB5, + 0xC0,0x68,0x00,0x28,0x1F,0xD0,0x01,0x06,0x09,0x0F,0x03,0x29,0x01,0xD0,0x04,0x29, + 0x02,0xD1,0x00,0xF0,0xF1,0xF8,0x08,0xE0,0xF0,0x21,0x01,0x40,0x20,0x29,0x02,0xD2, + 0x00,0xF0,0x1A,0xF8,0x01,0xE0,0x04,0xF0,0xA5,0xFA,0x09,0x48,0x82,0x68,0x81,0x15, + 0x8A,0x43,0x82,0x60,0x82,0x68,0x0A,0x43,0x82,0x60,0x06,0x48,0x40,0x7B,0x00,0x28, + 0x01,0xD0,0x05,0xF0,0x8B,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30, + 0x00,0x40,0x00,0x40,0x64,0x05,0x00,0x20,0xF1,0xB5,0x61,0x48,0x2E,0x21,0x90,0xB0, + 0x41,0x60,0x41,0x69,0x89,0x06,0xFC,0xD4,0x10,0x99,0x01,0x26,0x76,0x07,0xF1,0x63, + 0x84,0x69,0x5B,0x48,0x40,0x68,0x80,0x07,0xFB,0xD5,0x04,0xF0,0x7B,0xFA,0x59,0x4D, + 0x68,0x7B,0x00,0x28,0x01,0xD0,0x05,0xF0,0x71,0xFB,0x10,0x9B,0x00,0x21,0x01,0x20, + 0x9B,0x1E,0xFF,0x27,0x4A,0x1E,0x40,0x03,0x05,0xF0,0xA2,0xFB,0x1E,0x16,0x40,0x40, + 0x40,0x40,0x13,0x40,0x40,0x42,0x10,0x40,0x40,0x58,0x40,0x68,0x4F,0x6F,0x76,0x7D, + 0x40,0x84,0x40,0x8B,0x92,0x4F,0x40,0x40,0x40,0x40,0x99,0x40,0x0B,0x20,0xF0,0x63, + 0x4D,0xE0,0x00,0xF0,0x17,0xF9,0x29,0xE0,0x03,0x21,0x09,0x07,0xCA,0x60,0xFE,0xF7, + 0x35,0xF8,0x00,0xF0,0x1D,0xFF,0x44,0x48,0x44,0x4A,0x41,0x68,0x52,0x68,0x91,0x42, + 0x1C,0xD0,0x43,0x49,0x17,0x22,0xC9,0x8B,0x52,0x01,0x80,0x18,0x49,0x1C,0xC1,0x83, + 0xFC,0xF7,0xC8,0xFF,0xA8,0x78,0xC0,0x07,0x01,0xD0,0xFF,0xF7,0x09,0xFE,0xA8,0x78, + 0x80,0x07,0x01,0xD5,0x05,0xF0,0xE8,0xFA,0x3A,0x49,0x40,0x22,0x68,0x46,0xFD,0xF7, + 0x73,0xFB,0x01,0x20,0x08,0x90,0x68,0x46,0x05,0xF0,0xF6,0xFA,0xF7,0x63,0x1E,0xE0, + 0x32,0x48,0xA0,0x30,0x00,0x7E,0x00,0x28,0xF8,0xD0,0x00,0x2C,0x01,0xD0,0x01,0x20, + 0x00,0xE0,0x00,0x20,0x05,0xF0,0xBC,0xF8,0xF0,0xE7,0x03,0x21,0x09,0x07,0xCA,0x60, + 0xFD,0xF7,0xFC,0xFF,0x10,0x98,0xFD,0xF7,0x4D,0xFF,0x08,0xE0,0x03,0x21,0x09,0x07, + 0xCA,0x60,0xFD,0xF7,0xF3,0xFF,0x00,0xF0,0x4F,0xFE,0x00,0xF0,0xE7,0xF8,0x20,0x48, + 0x41,0x68,0x41,0x60,0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x2C,0x02,0xD0, + 0x01,0x20,0xA8,0x72,0xD2,0xE7,0xA9,0x72,0xD0,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20, + 0xE8,0x72,0xCB,0xE7,0xE9,0x72,0xC9,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x73, + 0xC4,0xE7,0x29,0x73,0xC2,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x68,0x73,0xBD,0xE7, + 0x69,0x73,0xBB,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xE8,0x73,0xB6,0xE7,0xE9,0x73, + 0xB4,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x74,0xAF,0xE7,0x29,0x74,0xAD,0xE7, + 0x00,0x2C,0x02,0xD0,0x01,0x20,0x68,0x74,0xA8,0xE7,0x69,0x74,0xA6,0xE7,0x00,0x2C, + 0x01,0xD0,0xAC,0x74,0x00,0xE0,0xA9,0x74,0x04,0xF0,0x82,0xFE,0x9E,0xE7,0x00,0x00, + 0x00,0x40,0x00,0x30,0x64,0x05,0x00,0x20,0x00,0x00,0x00,0x10,0x00,0x93,0x00,0x00, + 0xE0,0x95,0x00,0x00,0xC0,0x92,0x00,0x00,0xF0,0xB5,0x34,0x4C,0x30,0x38,0x34,0x4A, + 0x34,0x4E,0x35,0x4F,0x35,0x49,0x25,0x68,0x03,0x00,0x05,0xF0,0xE9,0xFA,0x12,0x0A, + 0x0C,0x0E,0x12,0x16,0x1A,0x1C,0x18,0x1E,0x20,0x30,0x3B,0x16,0x3E,0x43,0x47,0x4D, + 0x50,0x0A,0xCD,0x61,0x21,0xE0,0x60,0x68,0x01,0xE0,0x2D,0x48,0xC0,0x6B,0xC8,0x61, + 0x1B,0xE0,0x10,0x8C,0x52,0x8C,0x00,0x04,0x34,0xE0,0xCE,0x61,0x15,0xE0,0xE0,0x68, + 0xF5,0xE7,0x50,0x68,0xF3,0xE7,0xA0,0x68,0xF1,0xE7,0xD0,0x7B,0xEF,0xE7,0x25,0x48, + 0x03,0x7B,0x10,0x7D,0x52,0x7D,0xC4,0x07,0xE4,0x09,0x80,0x07,0x12,0x04,0xC0,0x0F, + 0x00,0x02,0x23,0x43,0x02,0x43,0x13,0x43,0xCB,0x61,0x5F,0x22,0x22,0xE0,0x93,0x7D, + 0x50,0x7E,0x1B,0x06,0x18,0x43,0xD3,0x7D,0x12,0x7E,0x1B,0x04,0x12,0x02,0x13,0x43, + 0x18,0x43,0xD4,0xE7,0x90,0x7E,0x00,0x06,0xD1,0xE7,0x17,0x48,0x00,0x69,0xC0,0x07, + 0xC0,0x0F,0xCC,0xE7,0x38,0x69,0x40,0x08,0x00,0x02,0xC8,0xE7,0x13,0x48,0xA2,0x69, + 0xC0,0x8B,0x00,0x04,0x10,0x43,0xC2,0xE7,0x38,0x69,0x40,0x08,0xBF,0xE7,0x10,0x48, + 0x00,0x6A,0xBC,0xE7,0x48,0x69,0x10,0x42,0xFC,0xD1,0x04,0xF0,0x5B,0xF9,0xFF,0x20, + 0x01,0x21,0x49,0x07,0xC8,0x63,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xC0,0x92,0x00,0x00, + 0x00,0x93,0x00,0x00,0x15,0x00,0x0E,0x00,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x30, + 0xC0,0x0F,0x00,0x20,0xE0,0x04,0x00,0x20,0x00,0x96,0x00,0x00,0xE0,0x95,0x00,0x00, + 0x64,0x05,0x00,0x20,0x70,0xB5,0x03,0x24,0x24,0x07,0xE5,0x68,0x00,0x20,0xC0,0x43, + 0xE0,0x60,0xFD,0xF7,0x39,0xFF,0x06,0x00,0xCB,0x20,0xC0,0x01,0xFD,0xF7,0x16,0xFF, + 0x03,0xF0,0xA0,0xFF,0x00,0xF0,0x9A,0xFD,0x03,0xF0,0x92,0xFF,0x30,0x00,0xFD,0xF7, + 0x3F,0xFF,0xE5,0x60,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x20,0x03,0x21, + 0x10,0xB5,0xC0,0x43,0x09,0x07,0xC8,0x60,0x03,0xF0,0x8C,0xFF,0xFF,0xF7,0xE0,0xFC, + 0x05,0x48,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0x01,0x20,0x40,0x07,0x05,0xF0,0x47,0xFA, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x90,0x00,0x40,0xF8,0xB5,0x22,0x48, + 0x00,0x68,0x00,0x88,0xC0,0x06,0x3C,0xD5,0x20,0x4E,0x30,0x7A,0x00,0x28,0x38,0xD0, + 0x70,0x7A,0x00,0x28,0x35,0xD0,0x01,0x25,0x30,0xE0,0x0A,0x21,0x69,0x43,0x1C,0x4B, + 0x01,0x20,0xCC,0x18,0xFF,0x34,0x77,0x7A,0x81,0x34,0x24,0xE0,0x0A,0x22,0x42,0x43, + 0xD2,0x18,0xFF,0x32,0xE1,0x32,0x21,0x7B,0x92,0x79,0x91,0x42,0x1A,0xD1,0x0A,0x22, + 0x50,0x43,0xC7,0x18,0xFF,0x37,0x0E,0x21,0xE1,0x37,0x08,0x20,0x61,0x5E,0x38,0x5E, + 0xBA,0x5E,0x08,0x1A,0x10,0x21,0x61,0x5E,0x89,0x1A,0x00,0x91,0x3A,0x89,0xE1,0x89, + 0xFF,0xF7,0x12,0xFA,0xE0,0x81,0x7A,0x89,0x21,0x8A,0x00,0x98,0xFF,0xF7,0x0C,0xFA, + 0x20,0x82,0x02,0xE0,0x40,0x1C,0x87,0x42,0xD8,0xDA,0x6D,0x1C,0x30,0x7A,0xA8,0x42, + 0xCB,0xDA,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x78,0x06,0x00,0x20,0xC0,0x01,0x00,0x20, + 0x40,0x00,0x00,0x20,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x9C,0xD0,0x4D,0xE2, + 0x00,0x00,0xA0,0xE3,0x34,0x00,0x8D,0xE5,0x30,0x00,0x8D,0xE5,0x2C,0x00,0x8D,0xE5, + 0x28,0x00,0x8D,0xE5,0x3C,0x08,0x9F,0xE5,0xB0,0x12,0xD0,0xE1,0x20,0x10,0x8D,0xE5, + 0xB2,0x02,0xD0,0xE1,0x1C,0x00,0x8D,0xE5,0x2C,0x08,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0x8A,0x20,0xD0,0xE5,0x7C,0x10,0xD0,0xE5,0x7D,0xB0,0xD0,0xE5,0x18,0x20,0x8D,0xE5, + 0x89,0x20,0xD0,0xE5,0x14,0x20,0x8D,0xE5,0xB0,0x20,0xD0,0xE1,0x08,0x00,0x12,0xE3, + 0x23,0x00,0x00,0x0A,0x7F,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x88,0x20,0x8D,0xE5, + 0x80,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x84,0x20,0x8D,0xE5,0x81,0x20,0xD0,0xE5, + 0x91,0x02,0x02,0xE0,0x80,0x20,0x8D,0xE5,0x82,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0, + 0x7C,0x20,0x8D,0xE5,0x83,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x78,0x20,0x8D,0xE5, + 0x84,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x74,0x20,0x8D,0xE5,0x85,0x20,0xD0,0xE5, + 0x91,0x02,0x02,0xE0,0x70,0x20,0x8D,0xE5,0x86,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0, + 0x6C,0x20,0x8D,0xE5,0x87,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x68,0x20,0x8D,0xE5, + 0x88,0x00,0xD0,0xE5,0x91,0x00,0x00,0xE0,0x64,0x00,0x8D,0xE5,0x8C,0x07,0x9F,0xE5, + 0x88,0x11,0xD0,0xE5,0x00,0x00,0x51,0xE3,0x00,0x60,0xA0,0x13,0x03,0x00,0x00,0x1A, + 0x0B,0x04,0x00,0xEB,0x9C,0xD0,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x68,0xA7,0x9F,0xE5,0x06,0x50,0x8A,0xE0,0xA4,0x42,0xD5,0xE5,0x00,0x00,0x54,0xE3, + 0x0C,0x00,0x00,0x0A,0x18,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x06,0x00,0x00,0x1A, + 0x04,0x01,0x84,0xE0,0x80,0x00,0x8A,0xE0,0x01,0x0C,0x80,0xE2,0x92,0x00,0x80,0xE2, + 0x77,0x03,0x00,0xEB,0x00,0x00,0x50,0xE3,0x02,0x00,0x00,0x0A,0xD2,0x02,0xDA,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x00,0x0A,0x06,0x00,0xA0,0xE1,0x18,0x00,0x00,0xEA, + 0x07,0x00,0xA0,0xE3,0x00,0x12,0x8A,0xE0,0x86,0x10,0x81,0xE0,0x02,0x2C,0x81,0xE2, + 0xBC,0x3D,0xD2,0xE1,0x03,0x1C,0x81,0xE2,0x01,0x00,0x50,0xE2,0xBC,0x3E,0xC2,0xE1, + 0xBC,0x26,0xD1,0xE1,0xBC,0x27,0xC1,0xE1,0xF5,0xFF,0xFF,0x5A,0x04,0x01,0x84,0xE0, + 0x80,0x80,0x8A,0xE0,0x01,0x7C,0x88,0xE2,0xBE,0x08,0xD7,0xE1,0x20,0x10,0x9D,0xE5, + 0x01,0x10,0x41,0xE2,0x01,0x00,0x50,0xE1,0xB0,0x19,0xD7,0xD1,0x1C,0x00,0x9D,0xD5, + 0x01,0x00,0x40,0xD2,0x00,0x00,0x51,0xD1,0x03,0x00,0x00,0xDA,0x8C,0x01,0xD8,0xE5, + 0x01,0x00,0x40,0xE2,0x57,0xFC,0xFF,0xEB,0x84,0x01,0x00,0xEA,0xBE,0x18,0xD7,0xE1, + 0x86,0x00,0x8A,0xE0,0x02,0x9C,0x80,0xE2,0x98,0x00,0x8D,0xE5,0xBC,0x1D,0xC9,0xE1, + 0xB0,0x19,0xD7,0xE1,0x03,0x4C,0x80,0xE2,0x00,0x30,0xA0,0xE3,0x02,0xCB,0xA0,0xE3, + 0xBC,0x16,0xC4,0xE1,0x03,0x10,0xA0,0xE1,0x0C,0x20,0xA0,0xE1,0x07,0x00,0xA0,0xE3, + 0x78,0xE6,0x9F,0xE5,0x00,0xE2,0x8E,0xE0,0x86,0xE0,0x8E,0xE0,0x94,0xE0,0x8D,0xE5, + 0x02,0xEC,0x8E,0xE2,0xFC,0xAD,0xDE,0xE1,0x00,0x00,0x5A,0xE3,0x03,0x00,0x00,0xDA, + 0x03,0x00,0x5A,0xE1,0xBC,0x3D,0xDE,0xC1,0x0C,0x00,0x5A,0xE1,0xBC,0xCD,0xDE,0xB1, + 0x94,0xE0,0x9D,0xE5,0x03,0xEC,0x8E,0xE2,0xFC,0xA6,0xDE,0xE1,0x00,0x00,0x5A,0xE3, + 0x03,0x00,0x00,0xDA,0x01,0x00,0x5A,0xE1,0xBC,0x16,0xDE,0xC1,0x02,0x00,0x5A,0xE1, + 0xBC,0x26,0xDE,0xB1,0x01,0x00,0x50,0xE2,0xE8,0xFF,0xFF,0x5A,0x0C,0x00,0x43,0xE0, + 0xF0,0x00,0x50,0xE3,0x02,0x30,0x41,0xD0,0xF0,0x00,0x53,0xD3,0x0C,0xC6,0x9F,0xC5, + 0x01,0x30,0xA0,0xC3,0xD0,0x32,0xCC,0xC5,0x1E,0x00,0x50,0xE3,0x02,0x00,0x41,0xB0, + 0x1E,0x00,0x50,0xB3,0xF4,0x15,0x9F,0xA5,0x00,0x00,0xA0,0xA3,0xF1,0x00,0xC1,0xA5, + 0xE8,0x05,0x9F,0xB5,0x01,0x10,0xA0,0xB3,0xF1,0x10,0xC0,0xB5,0xD4,0x02,0xD5,0xE5, + 0x01,0x00,0x50,0xE3,0x64,0xA0,0xA0,0x93,0x24,0xA0,0x8D,0x95,0x0E,0x00,0x00,0x9A, + 0xFC,0x2D,0xD9,0xE1,0xFC,0x3E,0xD9,0xE1,0x03,0x00,0x42,0xE0,0x00,0x00,0x50,0xE3, + 0x02,0x00,0x43,0xD0,0xFC,0x36,0xD4,0xE1,0xFC,0x27,0xD4,0xE1,0x00,0xA8,0xA0,0xE1, + 0x4A,0xA8,0xA0,0xE1,0x02,0x00,0x43,0xE0,0x00,0x00,0x50,0xE3,0x03,0x00,0x42,0xD0, + 0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x24,0x00,0x8D,0xE5,0xFC,0x1E,0xD9,0xE1, + 0xFC,0x0D,0xD9,0xE1,0xAD,0x0F,0x00,0xEB,0x3C,0x00,0x8D,0xE5,0xFC,0x17,0xD4,0xE1, + 0xFC,0x06,0xD4,0xE1,0xA9,0x0F,0x00,0xEB,0x38,0x00,0x8D,0xE5,0xFC,0x1F,0xD9,0xE1, + 0x3C,0x00,0x9D,0xE5,0xA5,0x0F,0x00,0xEB,0x44,0x00,0x8D,0xE5,0xFC,0x18,0xD4,0xE1, + 0x38,0x00,0x9D,0xE5,0xA1,0x0F,0x00,0xEB,0x40,0x00,0x8D,0xE5,0xFC,0x21,0xD4,0xE1, + 0xFC,0x10,0xD4,0xE1,0x44,0x00,0x9D,0xE5,0x9F,0x0F,0x00,0xEB,0x4C,0x00,0x8D,0xE5, + 0xFC,0x2A,0xD4,0xE1,0xFC,0x19,0xD4,0xE1,0x40,0x00,0x9D,0xE5,0x9A,0x0F,0x00,0xEB, + 0x48,0x00,0x8D,0xE5,0xFC,0x23,0xD4,0xE1,0xFC,0x12,0xD4,0xE1,0x4C,0x00,0x9D,0xE5, + 0x95,0x0F,0x00,0xEB,0x54,0x00,0x8D,0xE5,0xFC,0x2C,0xD4,0xE1,0xFC,0x1B,0xD4,0xE1, + 0x48,0x00,0x9D,0xE5,0x90,0x0F,0x00,0xEB,0x50,0x00,0x8D,0xE5,0xFC,0x25,0xD4,0xE1, + 0xFC,0x14,0xD4,0xE1,0x54,0x00,0x9D,0xE5,0x8B,0x0F,0x00,0xEB,0x5C,0x00,0x8D,0xE5, + 0xFC,0x2E,0xD4,0xE1,0xFC,0x1D,0xD4,0xE1,0x50,0x00,0x9D,0xE5,0x86,0x0F,0x00,0xEB, + 0x58,0x00,0x8D,0xE5,0x24,0x10,0x9D,0xE5,0x0A,0x00,0xA0,0xE1,0x3D,0x04,0x00,0xEB, + 0xC8,0x34,0x9F,0xE5,0x01,0x10,0xA0,0xE3,0x01,0x22,0x83,0xE0,0x86,0x20,0x82,0xE0, + 0x01,0x2B,0x82,0xE2,0xBC,0xC1,0xD2,0xE1,0x01,0x10,0x51,0xE2,0xBC,0xC2,0xC2,0xE1, + 0xF8,0xFF,0xFF,0x5A,0x98,0x10,0x9D,0xE5,0x01,0x1B,0x81,0xE2,0xBC,0x01,0xC1,0xE1, + 0x14,0x14,0xD5,0xE5,0x00,0x00,0xA0,0xE3,0x00,0x20,0x51,0xE2,0x06,0x00,0x00,0xBA, + 0x01,0xC2,0x83,0xE0,0x86,0xC0,0x8C,0xE0,0x01,0xCB,0x8C,0xE2,0xFC,0xC1,0xDC,0xE1, + 0x01,0x10,0x51,0xE2,0x0C,0x00,0x80,0xE0,0xF8,0xFF,0xFF,0x5A,0x01,0x10,0x82,0xE2, + 0x5E,0xF3,0xFF,0xEB,0x84,0x10,0x9D,0xE5,0x00,0xA0,0xA0,0xE1,0x01,0x00,0x50,0xE1, + 0x01,0x00,0xA0,0xD3,0x0B,0x00,0x00,0xDA,0x7C,0x00,0x9D,0xE5,0x00,0x00,0x5A,0xE1, + 0x02,0x00,0xA0,0xD3,0x07,0x00,0x00,0xDA,0x74,0x00,0x9D,0xE5,0x00,0x00,0x5A,0xE1, + 0x03,0x00,0xA0,0xD3,0x03,0x00,0x00,0xDA,0x6C,0x00,0x9D,0xE5,0x00,0x00,0x5A,0xE1, + 0x05,0x00,0xA0,0xC3,0x04,0x00,0xA0,0xD3,0x0C,0x14,0xD5,0xE5,0x01,0x10,0x40,0xE0, + 0x00,0x00,0x51,0xE3,0x00,0x00,0x6B,0xE2,0x06,0x00,0x00,0xDA,0xFC,0x1F,0xD4,0xE1, + 0x0B,0x00,0x51,0xE1,0x01,0x00,0x00,0x1A,0x00,0x10,0xA0,0xE3,0x06,0x00,0x00,0xEA, + 0x01,0x10,0x81,0xE2,0x04,0x00,0x00,0xEA,0xFC,0x1F,0xD4,0xE1,0x04,0x00,0x00,0xAA, + 0x00,0x00,0x51,0xE1,0xF7,0xFF,0xFF,0x0A,0x01,0x10,0x41,0xE2,0xBC,0x1F,0xC4,0xE1, + 0x02,0x00,0x00,0xEA,0x00,0x00,0x51,0xE3,0xFA,0xFF,0xFF,0xCA,0xF3,0xFF,0xFF,0xBA, + 0xFC,0x3F,0xD4,0xE1,0x0B,0x00,0x53,0xE1,0x03,0x00,0x00,0x1A,0x0C,0x14,0xD5,0xE5, + 0x05,0x00,0x51,0xE3,0x01,0x00,0x81,0x32,0x05,0x00,0x00,0x3A,0x00,0x00,0x53,0xE1, + 0x04,0x00,0x00,0x1A,0x0C,0x04,0xD5,0xE5,0x01,0x00,0x50,0xE3,0x01,0x00,0x00,0x9A, + 0x01,0x00,0x40,0xE2,0x0C,0x04,0xC5,0xE5,0x58,0x30,0x8D,0xE2,0x09,0x00,0x93,0xE8, + 0x60,0x00,0x8D,0xE5,0xD4,0x02,0xD5,0xE5,0x00,0x10,0xA0,0xE1,0x90,0x00,0x8D,0xE5, + 0x8C,0x00,0x8D,0xE5,0x03,0x00,0xA0,0xE1,0x20,0xF3,0xFF,0xEB,0x34,0x00,0x8D,0xE5, + 0x2C,0x00,0x8D,0xE5,0x60,0x00,0x9D,0xE5,0x8C,0x10,0x9D,0xE5,0x1B,0xF3,0xFF,0xEB, + 0x30,0x00,0x8D,0xE5,0x28,0x00,0x8D,0xE5,0x0C,0x04,0xD5,0xE5,0x01,0x00,0x50,0xE3, + 0x18,0x00,0x00,0x1A,0x28,0x30,0x8D,0xE2,0x2C,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8, + 0x90,0x00,0x9D,0xE5,0x5C,0x20,0x9D,0xE5,0x58,0x30,0x9D,0xE5,0x09,0x10,0xA0,0xE3, + 0x7D,0x11,0x00,0xEB,0x30,0x30,0x8D,0xE2,0x34,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8, + 0xD4,0x02,0xD5,0xE5,0x54,0x20,0x9D,0xE5,0x50,0x30,0x9D,0xE5,0x07,0x10,0xA0,0xE3, + 0x75,0x11,0x00,0xEB,0xF4,0x03,0xDD,0xE1,0xF0,0x13,0xDD,0xE1,0xF8,0x32,0xDD,0xE1, + 0xFC,0x22,0xDD,0xE1,0x0F,0x00,0x8D,0xE8,0x88,0x20,0x9D,0xE5,0x84,0x30,0x9D,0xE5, + 0x63,0x0F,0x88,0xE2,0x60,0x00,0x00,0xEA,0x02,0x00,0x50,0xE3,0x18,0x00,0x00,0x1A, + 0x28,0x30,0x8D,0xE2,0x2C,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5, + 0x54,0x20,0x9D,0xE5,0x50,0x30,0x9D,0xE5,0x07,0x10,0xA0,0xE3,0x62,0x11,0x00,0xEB, + 0x30,0x30,0x8D,0xE2,0x34,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0xD4,0x02,0xD5,0xE5, + 0x4C,0x20,0x9D,0xE5,0x48,0x30,0x9D,0xE5,0x05,0x10,0xA0,0xE3,0x5A,0x11,0x00,0xEB, + 0xF4,0x03,0xDD,0xE1,0xF0,0x13,0xDD,0xE1,0xF8,0x32,0xDD,0xE1,0xFC,0x22,0xDD,0xE1, + 0x0F,0x00,0x8D,0xE8,0x80,0x20,0x9D,0xE5,0x7C,0x30,0x9D,0xE5,0x63,0x0F,0x88,0xE2, + 0x45,0x00,0x00,0xEA,0x03,0x00,0x50,0xE3,0x18,0x00,0x00,0x1A,0x28,0x30,0x8D,0xE2, + 0x2C,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5,0x4C,0x20,0x9D,0xE5, + 0x48,0x30,0x9D,0xE5,0x05,0x10,0xA0,0xE3,0x47,0x11,0x00,0xEB,0x30,0x30,0x8D,0xE2, + 0x34,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0xD4,0x02,0xD5,0xE5,0x44,0x20,0x9D,0xE5, + 0x40,0x30,0x9D,0xE5,0x03,0x10,0xA0,0xE3,0x3F,0x11,0x00,0xEB,0xF4,0x03,0xDD,0xE1, + 0xF0,0x13,0xDD,0xE1,0xF8,0x32,0xDD,0xE1,0xFC,0x22,0xDD,0xE1,0x0F,0x00,0x8D,0xE8, + 0x78,0x20,0x9D,0xE5,0x74,0x30,0x9D,0xE5,0x63,0x0F,0x88,0xE2,0x2A,0x00,0x00,0xEA, + 0x04,0x00,0x50,0xE3,0x18,0x00,0x00,0x1A,0x28,0x30,0x8D,0xE2,0x2C,0x20,0x8D,0xE2, + 0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5,0x44,0x20,0x9D,0xE5,0x40,0x30,0x9D,0xE5, + 0x03,0x10,0xA0,0xE3,0x2C,0x11,0x00,0xEB,0x30,0x30,0x8D,0xE2,0x34,0x20,0x8D,0xE2, + 0x0C,0x00,0x8D,0xE8,0xD4,0x02,0xD5,0xE5,0x3C,0x20,0x9D,0xE5,0x38,0x30,0x9D,0xE5, + 0x02,0x10,0xA0,0xE3,0x24,0x11,0x00,0xEB,0xF4,0x03,0xDD,0xE1,0xF0,0x13,0xDD,0xE1, + 0xF8,0x32,0xDD,0xE1,0xFC,0x22,0xDD,0xE1,0x0F,0x00,0x8D,0xE8,0x70,0x20,0x9D,0xE5, + 0x6C,0x30,0x9D,0xE5,0x63,0x0F,0x88,0xE2,0x0F,0x00,0x00,0xEA,0x30,0x30,0x8D,0xE2, + 0x34,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5,0x3C,0x20,0x9D,0xE5, + 0x38,0x30,0x9D,0xE5,0x02,0x10,0xA0,0xE3,0x13,0x11,0x00,0xEB,0xFC,0x0D,0xD9,0xE1, + 0xFC,0x16,0xD4,0xE1,0xF0,0x33,0xDD,0xE1,0xF4,0x23,0xDD,0xE1,0x0F,0x00,0x8D,0xE8, + 0x68,0x20,0x9D,0xE5,0x64,0x30,0x9D,0xE5,0x63,0x0F,0x88,0xE2,0x0A,0x10,0xA0,0xE1, + 0x1B,0x11,0x00,0xEB,0xD4,0x02,0xD5,0xE5,0x50,0x11,0x9F,0xE5,0x09,0x00,0x50,0xE3, + 0x01,0x00,0x80,0x32,0xD4,0x02,0xC5,0x35,0x14,0x04,0xD5,0xE5,0x02,0x00,0x50,0xE3, + 0x01,0x00,0x80,0x32,0x14,0x04,0xC5,0x35,0x8C,0x01,0xD8,0xE5,0x01,0x00,0x40,0xE2, + 0x00,0x01,0x81,0xE0,0x01,0x4B,0x80,0xE2,0xFC,0x04,0xD4,0xE1,0x01,0x00,0x70,0xE3, + 0xFE,0x14,0xD4,0xC1,0x01,0x00,0x71,0xC3,0x18,0x00,0x00,0xDA,0x14,0x10,0x9D,0xE5, + 0x64,0x50,0x61,0xE2,0x95,0x00,0x00,0xE0,0x64,0x10,0xA0,0xE3,0x83,0xF2,0xFF,0xEB, + 0x00,0x80,0xA0,0xE1,0xBE,0x08,0xD7,0xE1,0x14,0x10,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x64,0x10,0xA0,0xE3,0x15,0xF3,0xFF,0xEB,0x08,0x00,0x80,0xE0,0xBE,0x08,0xC7,0xE1, + 0xFE,0x04,0xD4,0xE1,0x64,0x10,0xA0,0xE3,0x95,0x00,0x00,0xE0,0x77,0xF2,0xFF,0xEB, + 0x00,0x50,0xA0,0xE1,0xB0,0x09,0xD7,0xE1,0x14,0x10,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x64,0x10,0xA0,0xE3,0x09,0xF3,0xFF,0xEB,0x05,0x00,0x80,0xE0,0xB0,0x09,0xC7,0xE1, + 0xBE,0x08,0xD7,0xE1,0xBC,0x04,0xC4,0xE1,0xB0,0x09,0xD7,0xE1,0xBE,0x04,0xC4,0xE1, + 0x01,0x60,0x86,0xE2,0x08,0x00,0x56,0xE3,0x48,0xFE,0xFF,0xBA,0x8C,0x30,0x9F,0xE5, + 0x88,0x21,0xD3,0xE5,0x00,0x00,0x83,0xE2,0x01,0x1C,0x80,0xE2,0x01,0x00,0x52,0xE3, + 0x02,0x0C,0x80,0xE2,0x10,0x00,0x00,0x1A,0x96,0x21,0xD3,0xE5,0x82,0x30,0x83,0xE0, + 0x02,0x2C,0x83,0xE2,0xBA,0xCD,0xD2,0xE1,0x03,0x3C,0x83,0xE2,0xB4,0xCC,0xC0,0xE1, + 0xBA,0xC6,0xD3,0xE1,0xB6,0xCC,0xC0,0xE1,0xBA,0x2E,0xD2,0xE1,0xB8,0x2C,0xC0,0xE1, + 0xBA,0x27,0xD3,0xE1,0xBA,0x2C,0xC0,0xE1,0xB8,0x29,0xD1,0xE1,0xBC,0x2B,0xC0,0xE1, + 0xBA,0x19,0xD1,0xE1,0xBE,0x1B,0xC0,0xE1,0x2D,0xFE,0xFF,0xEA,0x02,0x00,0x52,0xE3, + 0x2B,0xFE,0xFF,0x1A,0xB8,0x29,0xD1,0xE1,0xBC,0x2B,0xC0,0xE1,0xBA,0x29,0xD1,0xE1, + 0xBE,0x2B,0xC0,0xE1,0xB2,0x2A,0xD1,0xE1,0xB0,0x2C,0xC0,0xE1,0xB4,0x1A,0xD1,0xE1, + 0xB2,0x1C,0xC0,0xE1,0x22,0xFE,0xFF,0xEA,0x00,0x93,0x00,0x00,0x78,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0xF8,0xB5,0x1C,0x4B,0x1C,0x7D,0xDA,0x8E,0xE4,0x07,0x31,0xD0, + 0x1C,0x8F,0x1A,0x4B,0x1B,0x7B,0x9E,0x46,0x19,0x4B,0x1E,0x78,0x16,0x4B,0x9D,0x7D, + 0x00,0x2E,0x76,0x46,0xAC,0x46,0xDD,0x7D,0x00,0x95,0x1D,0x7E,0x5F,0x7E,0x9B,0x7E, + 0x12,0xD0,0xB0,0x42,0x1E,0xD1,0x8C,0x45,0x08,0xD0,0x00,0x98,0x88,0x42,0x05,0xD0, + 0x8D,0x42,0x03,0xD0,0x8F,0x42,0x01,0xD0,0x8B,0x42,0x03,0xD1,0x20,0x00,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x20,0xFA,0xE7,0xB1,0x42,0x0B,0xD1,0x84,0x45,0xF5,0xD0, + 0x00,0x99,0x81,0x42,0xF2,0xD0,0x85,0x42,0xF0,0xD0,0x87,0x42,0xEE,0xD0,0x83,0x42, + 0xF0,0xD1,0xEB,0xE7,0x10,0x00,0xEA,0xE7,0x00,0x93,0x00,0x00,0xE0,0x04,0x00,0x20, + 0x6D,0x05,0x00,0x20,0x0E,0x23,0x58,0x43,0x02,0x4A,0x40,0x18,0x40,0x00,0x10,0x5A, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x31,0x49,0x10,0xB5,0x4A,0x7E,0x31,0x49, + 0x00,0x20,0x00,0x2A,0x15,0xD1,0x0A,0x89,0x00,0x2A,0x0F,0xD0,0x2E,0x49,0x8A,0x42, + 0x0C,0xD0,0x10,0x00,0x1E,0x21,0x48,0x43,0x64,0x21,0xFC,0xF7,0x57,0xFD,0xFF,0x30, + 0x4B,0x21,0x91,0x30,0xC9,0x00,0x88,0x42,0x00,0xD9,0x08,0x00,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x88,0x89,0x01,0x21,0x49,0x07,0x89,0x68,0x22,0x4B,0x89,0x00,0x9B,0x89, + 0x0A,0x0F,0x22,0x49,0x59,0x18,0x01,0x2A,0x1A,0xD1,0x21,0x4A,0x21,0x4C,0x91,0x42, + 0x07,0xD8,0x21,0x1A,0x08,0x00,0x48,0x43,0x51,0x1C,0xFC,0xF7,0x37,0xFD,0x20,0x1A, + 0x08,0xE0,0xA0,0x42,0x06,0xD9,0x1B,0x4A,0x03,0x21,0x52,0x42,0x80,0x18,0xFC,0xF7, + 0x2D,0xFD,0x00,0x19,0x7D,0x24,0x24,0x01,0xA0,0x42,0xD7,0xD9,0x0D,0x21,0x1B,0xE0, + 0x02,0x2A,0xD3,0xD1,0x13,0x4A,0x14,0x4C,0x15,0x3A,0x91,0x42,0x07,0xD8,0x21,0x1A, + 0x08,0x00,0x48,0x43,0x51,0x1C,0xFC,0xF7,0x19,0xFD,0x20,0x1A,0x08,0xE0,0xA0,0x42, + 0x06,0xD9,0x0D,0x4A,0x03,0x21,0x52,0x42,0x80,0x18,0xFC,0xF7,0x0F,0xFD,0x00,0x19, + 0x0A,0x4C,0xA0,0x42,0xBA,0xD9,0x11,0x21,0xFC,0xF7,0x08,0xFD,0x60,0x1A,0xB5,0xE7, + 0xA0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0x0F,0x00,0x00,0x2F,0xFD,0xFF,0xFF, + 0x0B,0x03,0x00,0x00,0xDC,0x05,0x00,0x00,0x98,0x08,0x00,0x00,0xB8,0x0B,0x00,0x00, + 0x04,0x48,0x41,0x69,0x49,0x06,0x01,0xD5,0x10,0x20,0x70,0x47,0x40,0x69,0xC0,0x06, + 0xC0,0x0E,0x70,0x47,0x00,0x40,0x00,0x30,0x70,0xB5,0x12,0x4D,0x00,0x24,0x01,0x21, + 0x49,0x07,0x68,0x69,0x80,0x06,0xFC,0xD4,0xE8,0x68,0x6A,0x68,0x6A,0x60,0x05,0xE0, + 0x6A,0x69,0x92,0x06,0xFC,0xD4,0xAA,0x69,0x04,0xC1,0xA4,0x18,0x02,0x00,0x40,0x1E, + 0x01,0x2A,0xF5,0xD8,0x2E,0x20,0x68,0x60,0x68,0x68,0x80,0x07,0xFC,0xD5,0x03,0xF0, + 0xA1,0xFB,0x05,0x48,0xE8,0x61,0xEC,0x61,0x68,0x69,0x80,0x06,0xFC,0xD4,0x70,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30,0xAB,0xFC,0xFF,0x8F,0x78,0x47,0xC0,0x46, + 0x10,0x40,0x2D,0xE9,0xB0,0x40,0x9F,0xE5,0x0C,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3, + 0xFC,0xFF,0xFF,0x0A,0x04,0x00,0x94,0xE5,0x04,0x00,0x84,0xE5,0x04,0x00,0x94,0xE5, + 0x04,0x00,0x10,0xE3,0x10,0x00,0x00,0x0A,0x0C,0x00,0x94,0xE5,0x04,0x10,0x90,0xE4, + 0x1C,0x10,0x84,0xE5,0x02,0x12,0xA0,0xE3,0x38,0x10,0x91,0xE5,0x04,0x00,0x00,0xEA, + 0x04,0x20,0x90,0xE4,0x1C,0x20,0x84,0xE5,0x14,0x20,0x94,0xE5,0x40,0x00,0x12,0xE3, + 0xFC,0xFF,0xFF,0x1A,0x01,0x10,0x51,0xE2,0xF8,0xFF,0xFF,0x1A,0x14,0x00,0x94,0xE5, + 0x5F,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x1A,0x11,0x00,0x00,0xEA,0x04,0x00,0x94,0xE5, + 0x02,0x00,0x10,0xE3,0xE8,0xFF,0xFF,0x0A,0x14,0x00,0x94,0xE5,0x20,0x00,0x10,0xE3, + 0xE5,0xFF,0xFF,0x1A,0x0C,0x00,0x94,0xE5,0x08,0x00,0x50,0xE3,0x10,0x40,0xBD,0x08, + 0xA1,0x0D,0x00,0x0A,0x14,0x10,0x94,0xE5,0x5F,0x00,0x11,0xE3,0x18,0x10,0x94,0x15, + 0x04,0x10,0x80,0x14,0xFA,0xFF,0xFF,0x1A,0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3, + 0xFC,0xFF,0xFF,0x0A,0x98,0x0D,0x00,0xEB,0xD2,0xFF,0xFF,0xEA,0x00,0x40,0x00,0x30, + 0xF8,0xB5,0x20,0x4E,0x20,0x4F,0x00,0x25,0x2C,0x00,0x78,0x69,0x80,0x06,0xFC,0xD4, + 0x78,0x68,0x78,0x60,0xF8,0x68,0x04,0x28,0x0E,0xD1,0x1C,0x48,0x40,0x21,0x04,0xE0, + 0x7A,0x69,0x92,0x06,0xFC,0xD4,0xBA,0x69,0x04,0xC0,0x49,0x1E,0xF8,0xD2,0x20,0x25, + 0x17,0x4C,0x30,0x78,0x01,0x21,0x06,0xE0,0x05,0x28,0x07,0xD1,0x15,0x48,0x16,0x4C, + 0x85,0x08,0x30,0x78,0x02,0x21,0x08,0x43,0x30,0x70,0x10,0xE0,0x03,0x28,0x0E,0xD1, + 0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x03,0xF0,0x03,0xFB,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x78,0x69,0x80,0x06,0xFC,0xD4,0xB8,0x69,0x01,0xC4,0x6D,0x1E, + 0xF8,0xD2,0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x03,0xF0,0xF2,0xFA, + 0xC3,0xE7,0x00,0x00,0x66,0x05,0x00,0x20,0x00,0x40,0x00,0x30,0x00,0x90,0x00,0x40, + 0x00,0xA0,0x00,0x40,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x10,0x01,0x49,0x20,0x20, + 0x48,0x61,0x70,0x47,0x00,0x40,0x00,0x30,0xF8,0xB5,0x01,0x22,0x52,0x07,0x11,0x68, + 0x3D,0x48,0x01,0x29,0x80,0x7B,0x01,0xD1,0x01,0x25,0x03,0xE0,0x11,0x68,0x01,0x29, + 0x06,0xD9,0x02,0x25,0x00,0x28,0x0B,0xD0,0x00,0x21,0x13,0x27,0xBF,0x01,0x3B,0xE0, + 0x00,0x28,0x05,0xD1,0x34,0x48,0x09,0x22,0x00,0x21,0x00,0x1F,0xFC,0xF7,0x12,0xFC, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x4A,0x19,0x00,0x24,0x92,0x00,0x10,0x18,0x02,0x68, + 0x84,0x46,0x90,0x0F,0xC0,0x07,0x26,0xD0,0x01,0x20,0x93,0x00,0x1B,0x0F,0x2B,0x4E, + 0x36,0x18,0xF6,0x19,0x36,0x7F,0x9E,0x42,0x01,0xD1,0x04,0x00,0x02,0xE0,0x40,0x1C, + 0x08,0x28,0xF4,0xD9,0x00,0x2C,0x06,0xD0,0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43, + 0x80,0x08,0x02,0x43,0x0D,0xE0,0x21,0x4C,0x01,0x20,0x26,0x18,0xF6,0x19,0x36,0x7F, + 0x00,0x2E,0x03,0xD1,0x24,0x18,0xE4,0x19,0x23,0x77,0xED,0xE7,0x40,0x1C,0x08,0x28, + 0xF3,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42, + 0xC9,0xD8,0x00,0x21,0x21,0xE0,0x4A,0x19,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46, + 0x90,0x0F,0xC0,0x07,0x18,0xD1,0x11,0x4E,0x01,0x20,0x93,0x00,0x1C,0x0F,0x33,0x18, + 0xDB,0x19,0x1B,0x7F,0xA3,0x42,0x0A,0xD1,0x34,0x18,0x00,0x23,0xE4,0x19,0x23,0x77, + 0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43,0x02,0xE0,0x40,0x1C, + 0x08,0x28,0xEC,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68, + 0x8A,0x42,0xD8,0xD8,0x9C,0xE7,0x00,0x00,0x20,0x05,0x00,0x20,0x40,0x00,0x00,0x20, + 0x03,0x22,0x12,0x07,0xD3,0x68,0x01,0x21,0x81,0x40,0x0B,0x43,0xD3,0x60,0x50,0x68, + 0x08,0x42,0x01,0xD0,0x01,0x48,0x01,0x63,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x30, + 0x03,0x23,0x1B,0x07,0xDA,0x68,0x01,0x21,0x81,0x40,0x8A,0x43,0xDA,0x60,0x70,0x47, + 0x10,0xB4,0x0F,0x24,0x03,0x23,0x1B,0x07,0x1C,0x60,0x05,0x4C,0x60,0x63,0x19,0x61, + 0x9A,0x60,0x00,0x20,0xC0,0x43,0xD8,0x60,0x00,0x20,0x18,0x60,0x10,0xBC,0x70,0x47, + 0x40,0x00,0x00,0x30,0x03,0x4B,0x00,0xB5,0x82,0x00,0x99,0x50,0xFF,0xF7,0xE0,0xFF, + 0x08,0xBC,0x18,0x47,0xF8,0x05,0x00,0x20,0xF0,0xB5,0x87,0xB0,0xFE,0xF7,0xBA,0xFA, + 0xFE,0xF7,0x98,0xFA,0x01,0xF0,0xF0,0xFF,0x03,0xF0,0xA8,0xF8,0x00,0xF0,0x6A,0xFE, + 0x00,0xF0,0xC0,0xFB,0xFD,0xF7,0x08,0xFF,0xFD,0xF7,0x42,0xF8,0x39,0x48,0x00,0x68, + 0x80,0x30,0x40,0x7B,0x00,0x28,0x04,0xD1,0xFF,0xF7,0x4C,0xF9,0xFF,0xF7,0xFE,0xF8, + 0x03,0xE0,0xFF,0xF7,0xFB,0xF8,0xFF,0xF7,0x45,0xF9,0x01,0x27,0x7F,0x07,0x78,0x68, + 0x6B,0x46,0x03,0x90,0x00,0x20,0xD8,0x73,0x03,0x98,0x78,0x60,0x03,0xF0,0x04,0xFC, + 0x03,0xF0,0x50,0xFA,0x38,0x68,0x00,0x28,0x07,0xD0,0x78,0x68,0x80,0x0F,0x80,0x07, + 0x03,0xD5,0x3E,0x68,0x02,0x24,0x76,0x1C,0x37,0xE0,0x01,0x24,0x26,0x00,0xA0,0x00, + 0xC0,0x19,0x06,0x90,0x05,0x68,0xA8,0x01,0x80,0x0D,0x05,0x90,0xA8,0x05,0x80,0x0D, + 0x04,0x90,0x21,0x48,0x00,0x78,0x00,0x28,0x03,0xD1,0x04,0xA9,0x05,0xA8,0x03,0xF0, + 0x77,0xFA,0x1E,0x4B,0x00,0x21,0x58,0x8C,0x40,0x1E,0x02,0x04,0x12,0x0C,0x68,0x46, + 0x06,0xC0,0x18,0x8C,0x0A,0x00,0x04,0xA9,0x40,0x1E,0x03,0x04,0x1B,0x0C,0x05,0xA8, + 0x04,0xF0,0xE7,0xFA,0x04,0xA9,0x05,0xA8,0x04,0xF0,0xFC,0xF8,0x14,0x48,0x04,0x99, + 0x05,0x40,0x05,0x98,0x89,0x05,0x80,0x05,0x80,0x09,0x05,0x43,0xA8,0x0A,0x80,0x02, + 0x89,0x0D,0x08,0x43,0x06,0x99,0x08,0x60,0x64,0x1C,0xB4,0x42,0xC7,0xD9,0xFD,0xF7, + 0x51,0xFD,0x03,0xF0,0xD7,0xF9,0x38,0x68,0xFC,0xF7,0x2C,0xFC,0xFF,0xF7,0xCC,0xFE, + 0xFC,0xF7,0x60,0xFB,0x04,0xF0,0x88,0xF9,0x06,0x48,0x40,0x79,0x07,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x78,0x06,0x00,0x20,0x74,0x05,0x00,0x20,0x00,0x93,0x00,0x00, + 0xFF,0xFF,0x00,0xFC,0x40,0x00,0x00,0x20,0xF8,0xB5,0x03,0xF0,0x03,0xF8,0x29,0x48, + 0x29,0x4D,0x00,0x7C,0x41,0x1E,0xFF,0x29,0x00,0xD3,0x00,0x20,0xFE,0xF7,0xC8,0xF8, + 0x28,0x72,0x26,0x48,0x01,0x69,0xFF,0x22,0x12,0x02,0x91,0x43,0x01,0x61,0x01,0x69, + 0x2A,0x7A,0x12,0x02,0x11,0x43,0x01,0x61,0xFE,0xF7,0xC4,0xFC,0xFE,0xF7,0x40,0xFD, + 0xFE,0xF7,0x88,0xFD,0x1B,0x48,0x00,0x21,0x60,0x38,0xC0,0x7F,0x04,0xF0,0x2C,0xF8, + 0x1B,0x4F,0xFC,0x03,0x00,0x20,0x28,0x70,0x68,0x62,0x28,0x7B,0x00,0x28,0x1D,0xD0, + 0x01,0x26,0x18,0xE0,0x78,0x68,0x00,0x07,0x15,0xD5,0xA6,0x63,0xF8,0x68,0x07,0x28, + 0x09,0xD1,0x78,0x68,0x80,0x07,0xFC,0xD5,0x03,0xF0,0x5C,0xF9,0xFF,0xF7,0x1A,0xF8, + 0xFF,0x20,0xE0,0x63,0x07,0xE0,0x0B,0x28,0x10,0xD1,0xE0,0x63,0x78,0x68,0x80,0x07, + 0xFC,0xD5,0x03,0xF0,0x4F,0xF9,0xE0,0x6B,0x0B,0x28,0xE3,0xD1,0xFE,0xF7,0xBE,0xF8, + 0x28,0x78,0x00,0x28,0xD6,0xD0,0x02,0xF0,0x05,0xFD,0xD3,0xE7,0x78,0x68,0x80,0x07, + 0xFC,0xD5,0xEE,0xE7,0x60,0x93,0x00,0x00,0x64,0x05,0x00,0x20,0x00,0x90,0x00,0x40, + 0x00,0x40,0x00,0x30,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x70,0xB5,0x05,0x00, + 0x1A,0x48,0x1B,0x4A,0x00,0x68,0x12,0x8B,0x60,0x30,0x01,0x7E,0xC0,0x7D,0x2C,0x78, + 0x89,0x18,0x0E,0x06,0x17,0x49,0x36,0x0E,0x8A,0x7E,0x00,0x2A,0x0D,0xD1,0xC9,0x7E, + 0x01,0x29,0x01,0xD1,0x40,0x1D,0x06,0xE0,0x02,0x29,0x01,0xD1,0x0A,0x30,0x02,0xE0, + 0x03,0x29,0x02,0xD1,0x0F,0x30,0x00,0x06,0x00,0x0E,0x00,0x2C,0x0A,0xD0,0x84,0x42, + 0x08,0xD3,0x14,0x21,0x20,0x00,0xFC,0xF7,0x39,0xFA,0x76,0x1C,0xB0,0x42,0x05,0xD2, + 0x14,0x2C,0x07,0xD3,0x00,0x20,0x70,0xBC,0x08,0xBC,0x18,0x47,0x14,0x2C,0x01,0xD3, + 0xF0,0x20,0x00,0xE0,0x13,0x20,0x28,0x70,0x01,0x20,0xF4,0xE7,0x78,0x06,0x00,0x20, + 0x40,0x05,0x00,0x20,0xE0,0x02,0x00,0x20,0x78,0x47,0xC0,0x46,0xF0,0x03,0x2D,0xE9, + 0x8C,0x50,0x9F,0xE5,0x08,0x10,0xA0,0xE3,0x24,0x60,0x85,0xE2,0x40,0x70,0x46,0xE2, + 0x12,0x80,0x87,0xE2,0x00,0x40,0xE0,0xE3,0x00,0x30,0xA0,0xE3,0x52,0x90,0x88,0xE2, + 0x01,0x01,0x85,0xE0,0xB0,0x40,0xC0,0xE1,0xB2,0x40,0xC0,0xE1,0x01,0x01,0x86,0xE0, + 0xB0,0x40,0xC0,0xE1,0xB2,0x40,0xC0,0xE1,0x81,0x00,0x87,0xE0,0xB0,0x30,0xC0,0xE1, + 0x00,0x00,0xA0,0xE3,0x01,0xC1,0x89,0xE0,0x01,0x30,0xC8,0xE7,0x00,0x21,0x8C,0xE0, + 0xB0,0x30,0xC2,0xE1,0x01,0x00,0x50,0xE2,0xB2,0x30,0xC2,0xE1,0xFA,0xFF,0xFF,0x5A, + 0x01,0x10,0x51,0xE2,0xED,0xFF,0xFF,0x5A,0x28,0x20,0x9F,0xE5,0x01,0x10,0xA0,0xE3, + 0xB1,0x00,0xD2,0xE5,0x01,0x00,0x50,0xE3,0x02,0x00,0x00,0x8A,0x00,0x00,0x50,0xE3, + 0xF0,0x03,0xBD,0x18,0x1E,0xFF,0x2F,0x11,0xB1,0x10,0xC2,0xE5,0xF0,0x03,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x6C,0x09,0x00,0x20,0x00,0x93,0x00,0x00,0x10,0xB5,0x07,0x4C, + 0x07,0x48,0x22,0x00,0x00,0x21,0xFC,0xF7,0xED,0xF9,0x06,0x48,0x22,0x00,0x00,0x21, + 0xFC,0xF7,0xE8,0xF9,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD2,0x02,0x00,0x00, + 0x00,0x00,0x00,0x10,0x7E,0x06,0x00,0x20,0x10,0xB5,0x40,0x22,0xD4,0x05,0x00,0x21, + 0x20,0x00,0xFC,0xF7,0xD7,0xF9,0x01,0x20,0xA0,0x63,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x14,0x48,0x10,0xB5,0x44,0x08,0x14,0x49,0x14,0x48,0x62,0x00,0xFC,0xF7,0xF4,0xF9, + 0x10,0x48,0xC0,0x07,0x08,0xD0,0x0F,0x48,0xC2,0x07,0x0F,0x48,0xD2,0x0F,0x01,0x19, + 0x0E,0x48,0x00,0x19,0xFC,0xF7,0xEE,0xF9,0x0D,0x48,0x00,0x21,0x84,0x08,0x0D,0x48, + 0xA2,0x00,0xFC,0xF7,0xD5,0xF9,0x0A,0x48,0x80,0x07,0x07,0xD0,0x08,0x48,0x00,0x21, + 0x82,0x07,0x08,0x48,0x92,0x0F,0x00,0x19,0xFC,0xF7,0xAC,0xF9,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x8A,0x00,0x00,0x40,0x00,0x00,0x20, + 0x98,0x09,0x00,0x00,0x40,0x00,0x00,0x20,0x05,0x49,0xC8,0x05,0x41,0x62,0x05,0x49, + 0x81,0x62,0x05,0x48,0xFF,0x21,0xC1,0x60,0x00,0x21,0x41,0x61,0x70,0x47,0x00,0x00, + 0x80,0x88,0x3C,0x03,0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x40,0x02,0x49,0x03,0x48, + 0x01,0x60,0x20,0x21,0x41,0x60,0x70,0x47,0xDE,0x10,0x05,0x00,0x00,0x40,0x00,0x30, + 0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9,0x00,0x40,0xA0,0xE3,0x04,0x00,0xA0,0xE1, + 0x78,0xF8,0xFF,0xEB,0x01,0x40,0x84,0xE2,0x08,0x00,0x54,0xE3,0xFA,0xFF,0xFF,0xBA, + 0x10,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x10,0xB5,0x01,0x24,0x64,0x03,0x20,0x00, + 0xFC,0xF7,0xFC,0xFD,0xFE,0xF7,0xA8,0xFB,0xFE,0xF7,0x82,0xFB,0xFE,0xF7,0xAC,0xFB, + 0xFE,0xF7,0xA2,0xFB,0xFE,0xF7,0x74,0xFB,0x07,0x48,0x01,0x68,0xF0,0x22,0x91,0x43, + 0x06,0x4A,0x12,0x7B,0x12,0x07,0x12,0x0E,0x11,0x43,0x01,0x60,0x20,0x00,0xFC,0xF7, + 0xDD,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xA0,0x00,0x40,0x00,0x93,0x00,0x00, + 0x10,0xB5,0x02,0xF0,0x51,0xFE,0x02,0xF0,0x43,0xFE,0x02,0xF0,0x39,0xFE,0xFF,0x20, + 0xFC,0xF7,0x0C,0xFE,0xFF,0xF7,0xA0,0xFF,0x13,0x48,0x80,0x22,0x00,0x21,0xFC,0xF7, + 0x57,0xF9,0x08,0x20,0xFC,0xF7,0xCA,0xFD,0x00,0x22,0x10,0x49,0xD2,0x43,0x00,0x20, + 0xFF,0xF7,0x9E,0xFD,0x00,0xF0,0x20,0xF8,0x0D,0x48,0x40,0x7A,0x00,0x28,0x04,0xD0, + 0x40,0x20,0xFC,0xF7,0xBB,0xFD,0x00,0xF0,0x53,0xF8,0x00,0xF0,0x3D,0xF8,0x10,0x20, + 0x02,0xF0,0x23,0xFE,0x07,0x49,0xC8,0x69,0xCA,0x13,0x90,0x43,0xC8,0x61,0xFE,0xF7, + 0x03,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0xF8,0x05,0x00,0x20,0x02,0x03,0x0F,0x0F, + 0x00,0x93,0x00,0x00,0x00,0x70,0x00,0x40,0xF8,0xB5,0x03,0x24,0xE6,0x01,0x13,0x25, + 0x30,0x00,0xFC,0xF7,0x9B,0xFD,0x20,0x02,0xFC,0xF7,0xC2,0xFD,0x0C,0x48,0x0A,0x21, + 0x00,0x6B,0xFC,0xF7,0xDB,0xF8,0x02,0x00,0xFF,0x21,0x90,0x31,0x02,0x20,0x00,0x23, + 0x00,0x95,0x03,0xF0,0x0B,0xFF,0x07,0x4A,0x27,0x21,0x03,0x20,0x00,0x23,0x00,0x94, + 0x03,0xF0,0x04,0xFF,0x30,0x00,0xFC,0xF7,0x79,0xFD,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x93,0x00,0x00,0xE8,0xFD,0x00,0x00,0x10,0xB5,0x07,0x49,0x00,0x20,0xFF,0xF7, + 0x61,0xFD,0x04,0xF0,0xA7,0xF8,0x05,0x48,0x04,0xF0,0x9E,0xF8,0x00,0x20,0xFF,0xF7, + 0x3F,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x7D,0x88,0x00,0x00,0xFC,0x3A,0x00,0x00, + 0x0A,0x48,0x10,0xB5,0x00,0x6B,0x0A,0x49,0x0A,0x4C,0x88,0x42,0x05,0xD9,0x7D,0x21, + 0xC9,0x00,0xFC,0xF7,0xA3,0xF8,0x64,0x30,0x01,0xE0,0xFF,0x20,0xF5,0x30,0xA0,0x65, + 0x04,0xF0,0x58,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x93,0x00,0x00, + 0x07,0xA5,0x07,0x00,0x64,0x05,0x00,0x20,0x10,0xB5,0xFF,0xF7,0xBF,0xFE,0x12,0x48, + 0x00,0x7A,0x03,0xF0,0xFD,0xFD,0xFF,0xF7,0x2B,0xFF,0x0F,0x48,0x0F,0x4A,0xA0,0x30, + 0x41,0x89,0xD1,0x83,0x0E,0x49,0x0F,0x4A,0x09,0x68,0x40,0x31,0x49,0x7D,0x51,0x74, + 0x01,0x00,0x20,0x39,0x0A,0x8B,0x0B,0x49,0xA0,0x31,0x0A,0x61,0x00,0x88,0x48,0x61, + 0xFF,0xF7,0x52,0xFE,0x08,0x48,0x00,0x24,0xC4,0x80,0xFE,0xF7,0xD5,0xF9,0x07,0x48, + 0x04,0x70,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00,0x40,0x00,0x00,0x20, + 0x78,0x06,0x00,0x20,0xA0,0x04,0x00,0x20,0xC0,0x01,0x00,0x20,0x65,0x05,0x00,0x20, + 0xF7,0xB5,0x2C,0x48,0x86,0xB0,0x04,0x90,0x00,0x20,0x2B,0x4E,0x07,0x00,0x02,0x90, + 0x03,0x90,0x05,0x90,0xFE,0xF7,0x86,0xFA,0xFE,0xF7,0x34,0xFB,0x27,0x48,0x40,0x7F, + 0x01,0x90,0x26,0x48,0x20,0x38,0x40,0x7F,0x00,0x25,0x00,0x90,0x00,0x24,0x21,0x00, + 0x28,0x00,0xFF,0xF7,0x8F,0xFA,0x00,0x28,0x1B,0xD0,0x0E,0x21,0x69,0x43,0x04,0x9A, + 0x09,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A,0x01,0x1E,0x00,0xDC, + 0x41,0x42,0x00,0x28,0x01,0xDB,0x01,0x98,0x00,0xE0,0x00,0x98,0x81,0x42,0x01,0xDD, + 0x01,0x22,0x05,0x92,0x08,0x1A,0xB0,0x42,0x03,0xDD,0x06,0x00,0x2F,0x00,0x02,0x94, + 0x03,0x91,0x64,0x1C,0x0E,0x2C,0xDA,0xD3,0x6D,0x1C,0x15,0x2D,0xD6,0xD3,0x03,0x99, + 0x08,0x98,0x01,0x60,0x0E,0x48,0x00,0x69,0xC0,0x07,0x05,0xD0,0x07,0x99,0x02,0x98, + 0x08,0x60,0x06,0x98,0x07,0x60,0x04,0xE0,0x07,0x98,0x07,0x60,0x06,0x99,0x02,0x98, + 0x08,0x60,0x05,0x98,0x00,0x28,0x00,0xD0,0x04,0x20,0x09,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xD4,0x02,0x10,0x40,0x78,0xEC,0xFF,0xFF,0x20,0x93,0x00,0x00, + 0x00,0x90,0x00,0x40,0x78,0x47,0xC0,0x46,0x98,0xC0,0x9F,0xE5,0x00,0x00,0x9C,0xE5, + 0x94,0x30,0x9F,0xE5,0x7E,0x04,0xD3,0xE5,0x01,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3, + 0x7F,0x14,0xD3,0x15,0x00,0x00,0xA0,0x13,0x00,0x00,0x51,0x13,0x1E,0xFF,0x2F,0x91, + 0x30,0x00,0x2D,0xE9,0x74,0x50,0x9F,0xE5,0x74,0x40,0x9F,0xE5,0x7E,0x24,0xD3,0xE5, + 0x00,0x10,0x83,0xE0,0xAD,0x14,0xD1,0xE5,0x02,0x00,0x12,0xE3,0xAC,0x24,0xD3,0xE5, + 0x82,0x21,0x62,0x00,0x82,0x10,0x81,0x00,0x81,0x11,0x61,0x10,0x81,0x10,0x82,0x10, + 0x00,0x20,0xD5,0xE5,0x00,0x00,0x52,0xE3,0x04,0x00,0x00,0x1A,0x01,0x11,0x9C,0xE7, + 0x80,0x20,0x83,0xE0,0x02,0x19,0xC1,0xE3,0xB0,0x11,0xC2,0xE1,0x03,0x00,0x00,0xEA, + 0x81,0x10,0x84,0xE0,0xB0,0x10,0xD1,0xE1,0x80,0x20,0x83,0xE0,0xB0,0x11,0xC2,0xE1, + 0x7F,0x14,0xD3,0xE5,0x01,0x00,0x80,0xE2,0x00,0x00,0x51,0xE1,0xE6,0xFF,0xFF,0x8A, + 0x30,0x00,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x00,0x10,0x10,0x40,0x40,0x00,0x00,0x20, + 0x64,0x05,0x00,0x20,0x7E,0x06,0x00,0x20,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x88,0x42,0x00,0xDA,0x08,0x00,0x70,0x47,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42, + 0x00,0xDA,0x10,0x00,0x70,0x47,0x10,0xB5,0x02,0x9C,0x88,0x42,0x00,0xDA,0x08,0x00, + 0x90,0x42,0x00,0xDA,0x10,0x00,0x22,0x00,0x19,0x00,0xFF,0xF7,0xED,0xFF,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x85,0xDF,0x4D,0xE2, + 0x00,0x00,0xA0,0xE3,0xF8,0x01,0x8D,0xE5,0x14,0x05,0x9F,0xE5,0x6C,0x60,0x8D,0xE2, + 0xBE,0x03,0x90,0xE8,0xBE,0x03,0x86,0xE8,0x08,0x05,0x9F,0xE5,0x69,0x20,0xA0,0xE3, + 0x00,0x00,0x90,0xE5,0x01,0x2C,0x82,0xE2,0xBC,0x45,0xD0,0xE1,0x62,0x50,0xD0,0xE5, + 0x00,0x10,0xA0,0xE3,0x8C,0x00,0x8D,0xE2,0xCC,0xEF,0xFF,0xEB,0xE8,0x04,0x9F,0xE5, + 0x08,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xC8,0xEF,0xFF,0xEB,0xDC,0x04,0x9F,0xE5, + 0x10,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xC4,0xEF,0xFF,0xEB,0x24,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x48,0x00,0x8D,0xE2,0xC0,0xEF,0xFF,0xEB,0x24,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x24,0x00,0x8D,0xE2,0xBC,0xEF,0xFF,0xEB,0x24,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x0D,0x00,0xA0,0xE1,0xB8,0xEF,0xFF,0xEB,0xA0,0x14,0x9F,0xE5, + 0x04,0x00,0xD1,0xE5,0x00,0x00,0x50,0xE3,0x85,0xDF,0x8D,0x02,0xF0,0x4F,0xBD,0x08, + 0x1E,0xFF,0x2F,0x01,0xB6,0x00,0xD1,0xE1,0x20,0x00,0x10,0xE3,0x05,0x00,0x44,0x10, + 0x00,0x48,0xA0,0x11,0xB8,0x00,0xD1,0xE1,0x24,0x48,0xA0,0x11,0x74,0x24,0x9F,0xE5, + 0x94,0x00,0x00,0xE0,0x92,0x30,0xC0,0xE0,0xC0,0x22,0xA0,0xE1,0xC0,0x0F,0x42,0xE0, + 0x64,0x24,0x9F,0xE5,0x00,0x40,0xA0,0xE3,0x10,0x22,0x8D,0xE5,0xBE,0x20,0xD1,0xE1, + 0x02,0x00,0x80,0xE0,0x10,0x22,0x9D,0xE5,0xBE,0x07,0xC2,0xE1,0x04,0x00,0xA0,0xE1, + 0x04,0x42,0x8D,0xE5,0x80,0x01,0x60,0xE0,0x00,0x70,0xA0,0xE3,0x0C,0x02,0x8D,0xE5, + 0x0C,0x12,0x9D,0xE5,0x00,0x00,0xA0,0xE3,0x81,0x20,0x87,0xE0,0x2C,0x14,0x9F,0xE5, + 0x82,0xC0,0x81,0xE0,0x10,0x12,0x9D,0xE5,0xF0,0x30,0xDC,0xE1,0xFE,0x17,0xD1,0xE1, + 0x01,0x00,0x53,0xE1,0x01,0x00,0x43,0xC0,0x00,0x08,0xA0,0xC1,0x40,0x08,0xA0,0xC1, + 0x00,0x00,0x57,0xE3,0x06,0x00,0x00,0x1A,0x00,0x00,0x50,0xE3,0x83,0x00,0x00,0x0A, + 0x8C,0x00,0x8D,0xE2,0x02,0x00,0xD0,0xE7,0x00,0x00,0x50,0xE3,0x7F,0x00,0x00,0x1A, + 0x0C,0x00,0x00,0xEA,0xF2,0x30,0x5C,0xE1,0x01,0x00,0x53,0xE1,0x03,0x00,0x00,0xDA, + 0x01,0x10,0x43,0xE0,0x01,0x18,0xA0,0xE1,0x41,0x18,0xB0,0xE1,0x77,0x00,0x00,0x1A, + 0x00,0x00,0x50,0xE3,0x75,0x00,0x00,0x0A,0x8C,0x00,0x8D,0xE2,0x02,0x00,0xD0,0xE7, + 0x00,0x00,0x50,0xE3,0x71,0x00,0x00,0x1A,0x04,0x02,0x9D,0xE5,0x07,0x38,0xA0,0xE1, + 0x00,0xC8,0xA0,0xE1,0x01,0x00,0x84,0xE2,0x00,0x48,0xA0,0xE1,0x44,0x48,0xA0,0xE1, + 0x08,0x00,0x54,0xE3,0x43,0x38,0xA0,0xE1,0x4C,0xC8,0xA0,0xE1,0x04,0x10,0xA0,0xE3, + 0x00,0x60,0xA0,0xD3,0x00,0x32,0x8D,0xE5,0xFC,0xC1,0x8D,0xE5,0x03,0x00,0x00,0xDA, + 0x01,0x00,0x44,0xE2,0x00,0x48,0xA0,0xE1,0x44,0x48,0xA0,0xE1,0x6A,0x00,0x00,0xEA, + 0x04,0x0C,0xA0,0xE1,0x40,0x0C,0xA0,0xE1,0x08,0x02,0x8D,0xE5,0x50,0x03,0x9F,0xE5, + 0x84,0x00,0x80,0xE0,0x01,0xAC,0x80,0xE2,0x01,0x00,0x86,0xE2,0x00,0x68,0xA0,0xE1, + 0x46,0x68,0xA0,0xE1,0x09,0x0D,0x56,0xE3,0x00,0x80,0xA0,0xE3,0x53,0x00,0x00,0xCA, + 0x10,0x02,0x9D,0xE5,0x00,0x90,0xA0,0xE3,0xFE,0x57,0xD0,0xE1,0x6C,0x00,0x8D,0xE2, + 0x01,0x01,0x80,0xE0,0xB2,0x20,0xD0,0xE1,0xB0,0x00,0xD0,0xE1,0x0C,0x20,0x82,0xE0, + 0x02,0x28,0xA0,0xE1,0x03,0x00,0x80,0xE0,0x42,0x28,0xA0,0xE1,0x00,0x08,0xA0,0xE1, + 0x15,0x00,0x52,0xE3,0x40,0x08,0xA0,0xE1,0x15,0x00,0x00,0x2A,0x00,0x00,0x50,0xE3, + 0x13,0x00,0x00,0xBA,0x0E,0x00,0x50,0xE3,0x11,0x00,0x00,0xAA,0xEC,0xE2,0x9F,0xE5, + 0x82,0xB1,0x62,0xE0,0x8B,0xB0,0x80,0xE0,0x8B,0xE0,0x8E,0xE0,0xF0,0xE0,0xDE,0xE1, + 0x05,0x00,0x5E,0xE1,0x0A,0x00,0x00,0xDA,0x8C,0xE0,0x8D,0xE2,0xDB,0xB0,0x9E,0xE1, + 0x04,0x00,0x5B,0xE1,0x00,0x00,0x5B,0x13,0x05,0x00,0x00,0x1A,0xFC,0x91,0x9D,0xE5, + 0x09,0x00,0x52,0xE1,0x00,0x92,0x9D,0x05,0x09,0x00,0x50,0x01,0x01,0x80,0xA0,0x13, + 0x04,0x00,0x00,0xEA,0x01,0x90,0x89,0xE2,0x01,0x10,0x81,0xE2,0x08,0x00,0x59,0xE3, + 0x07,0x10,0x01,0xE2,0xD8,0xFF,0xFF,0xBA,0x8C,0x91,0x6C,0xE0,0x89,0x90,0x83,0xE0, + 0x8C,0xE0,0x8D,0xE2,0x09,0xB0,0xDE,0xE7,0x00,0x00,0x5B,0xE3,0x1C,0x00,0x00,0x1A, + 0x08,0xB2,0x9D,0xE5,0x09,0xB0,0xCE,0xE7,0x70,0xB2,0x9F,0xE5,0x48,0xE0,0x8D,0xE2, + 0x89,0x90,0x8B,0xE0,0xF0,0x90,0xD9,0xE1,0x04,0xB1,0x9E,0xE7,0x05,0x00,0x59,0xE1, + 0x05,0x50,0x49,0xC0,0x48,0x92,0x9F,0xE5,0x05,0x58,0xA0,0xC1,0x83,0x30,0x89,0xE0, + 0xB0,0x32,0xD3,0xE1,0x00,0x50,0xA0,0xD3,0x25,0x58,0xA0,0xC1,0x95,0xB3,0x23,0xE0, + 0x04,0x31,0x8E,0xE7,0x8C,0xC0,0x89,0xE0,0xB4,0xC5,0xDC,0xE1,0x24,0x30,0x8D,0xE2, + 0x04,0xB1,0x93,0xE7,0x95,0xBC,0x2C,0xE0,0x04,0xC1,0x83,0xE7,0x04,0xC1,0x9D,0xE7, + 0x05,0xC0,0x8C,0xE0,0x04,0xC1,0x8D,0xE7,0xBE,0x36,0xDA,0xE1,0x01,0x30,0x83,0xE2, + 0xBE,0x36,0xCA,0xE1,0x00,0x00,0x58,0xE3,0x04,0x00,0x00,0x0A,0xFF,0x30,0x00,0xE2, + 0x05,0x00,0x81,0xE2,0xFF,0xC0,0x02,0xE2,0x07,0x10,0x00,0xE2,0xA5,0xFF,0xFF,0xEA, + 0x01,0x70,0x87,0xE2,0x0E,0x00,0x57,0xE3,0x68,0xFF,0xFF,0xBA,0xF8,0x01,0x9D,0xE5, + 0x00,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0x04,0x02,0x9D,0xE5,0x01,0x00,0x80,0xE2, + 0x15,0x00,0x50,0xE3,0x04,0x02,0x8D,0xE5,0x5D,0xFF,0xFF,0xBA,0x00,0x00,0x54,0xE3, + 0x49,0x00,0x00,0xDA,0xA8,0x51,0x9F,0xE5,0x00,0x30,0xA0,0xE3,0x48,0x60,0x8D,0xE2, + 0x24,0xE0,0x8D,0xE2,0x00,0x20,0xA0,0xE3,0x83,0xA0,0x85,0xE0,0x83,0xB1,0x63,0xE0, + 0x98,0x01,0x9F,0xE5,0x8B,0xC0,0x82,0xE0,0x8C,0x70,0x80,0xE0,0x10,0x02,0x9D,0xE5, + 0xF2,0x70,0xD7,0xE1,0xFE,0x07,0xD0,0xE1,0x00,0x10,0xA0,0xE3,0x00,0x00,0x57,0xE1, + 0x00,0x00,0x47,0xC0,0x00,0x18,0xA0,0xC1,0x8C,0x70,0x8D,0xE2,0xDC,0x00,0x97,0xE1, + 0x07,0xC0,0x8C,0xE0,0x01,0x70,0xDC,0xE5,0x41,0x18,0xA0,0xC1,0x00,0x00,0x57,0xE3, + 0x14,0x00,0x00,0x1A,0x00,0x00,0x51,0xE3,0x00,0x00,0x50,0x13,0x11,0x00,0x00,0x0A, + 0x82,0x80,0x85,0xE0,0xB2,0x82,0xD8,0xE1,0x00,0x71,0x96,0xE7,0x91,0x78,0x27,0xE0, + 0x00,0x71,0x86,0xE7,0xB4,0x85,0xDA,0xE1,0x00,0x71,0x9E,0xE7,0x91,0x78,0x27,0xE0, + 0x00,0x71,0x8E,0xE7,0x00,0x81,0x9D,0xE7,0x08,0x10,0x81,0xE0,0x00,0x11,0x8D,0xE7, + 0x80,0x10,0x85,0xE0,0x01,0x1C,0x81,0xE2,0xBE,0x76,0xD1,0xE1,0x01,0x70,0x87,0xE2, + 0xBE,0x76,0xC1,0xE1,0x01,0x00,0xCC,0xE5,0x01,0x20,0x82,0xE2,0x0E,0x00,0x52,0xE3, + 0xD6,0xFF,0xFF,0xBA,0x01,0x30,0x83,0xE2,0x15,0x00,0x53,0xE3,0xD0,0xFF,0xFF,0xBA, + 0x01,0x00,0x54,0xE3,0x01,0x70,0xA0,0xE3,0x13,0x00,0x00,0xBA,0x0D,0x90,0xA0,0xE1, + 0x0E,0xA0,0xA0,0xE1,0x07,0x81,0x99,0xE7,0x07,0x01,0x96,0xE7,0x00,0x00,0x58,0xE3, + 0x01,0x10,0xA0,0x03,0x08,0x10,0xA0,0x11,0xA0,0xEE,0xFF,0xEB,0x87,0x10,0x85,0xE0, + 0x01,0xBC,0x81,0xE2,0x00,0x00,0x58,0xE3,0xB6,0x04,0xCB,0xE1,0x07,0x01,0x9A,0xE7, + 0x01,0x10,0xA0,0x03,0x08,0x10,0xA0,0x11,0x98,0xEE,0xFF,0xEB,0x01,0x70,0x87,0xE2, + 0x04,0x00,0x57,0xE1,0xB6,0x05,0xCB,0xE1,0xED,0xFF,0xFF,0xDA,0x80,0x30,0x9F,0xE5, + 0x04,0x00,0xD3,0xE5,0x01,0x00,0x50,0xE3,0x85,0xDF,0x8D,0xB2,0xF0,0x4F,0xBD,0xB8, + 0x1E,0xFF,0x2F,0xB1,0x8C,0xC0,0x8D,0xE2,0x00,0x11,0x83,0xE0,0x01,0x2C,0x81,0xE2, + 0xF6,0x11,0xD2,0xE1,0xF4,0x21,0xD2,0xE1,0x81,0x11,0x61,0xE0,0x81,0x10,0x82,0xE0, + 0x01,0x10,0xDC,0xE7,0x00,0x20,0x83,0xE0,0x01,0x00,0x40,0xE2,0x65,0x11,0xC2,0xE5, + 0x81,0x10,0x83,0xE0,0x01,0x1C,0x81,0xE2,0xBE,0x16,0xD1,0xE1,0xFF,0x10,0x01,0xE2, + 0x38,0x11,0xC2,0xE5,0xBC,0x21,0xD3,0xE1,0x02,0x00,0x51,0xE1,0xBC,0x11,0xC3,0x81, + 0x01,0x00,0x50,0xE3,0xEB,0xFF,0xFF,0xAA,0x85,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x34,0x89,0x00,0x00,0x78,0x06,0x00,0x20,0xA6,0x01,0x00,0x20, + 0xAE,0x01,0x00,0x20,0x40,0x00,0x00,0x20,0x1F,0x85,0xEB,0x51,0x40,0x01,0x00,0x20, + 0x00,0x00,0x00,0x10,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x00,0x00,0xA0,0xE3, + 0x5B,0xDF,0x4D,0xE2,0x00,0x10,0xA0,0xE1,0x18,0x00,0x8D,0xE5,0x14,0x00,0x8D,0xE5, + 0x0C,0x00,0x8D,0xE5,0x08,0x00,0x8D,0xE5,0x2E,0x20,0xA0,0xE3,0x34,0x00,0x8D,0xE2, + 0x7E,0xEE,0xFF,0xEB,0x54,0x9F,0x9F,0xE5,0x0F,0x0A,0xE0,0xE3,0x00,0x80,0xA0,0xE3, + 0xB8,0x00,0xC9,0xE1,0xBC,0x80,0xC9,0xE1,0xBA,0x8E,0xC9,0xE1,0x89,0x11,0xD9,0xE5, + 0x3C,0x7F,0x9F,0xE5,0x05,0x0C,0x89,0xE2,0x02,0x00,0x51,0xE3,0x00,0x10,0x97,0x85, + 0xB2,0x12,0xD1,0x81,0x0B,0x00,0x00,0x8A,0x00,0x10,0x97,0x05,0xB0,0x22,0xD1,0x01, + 0xBE,0x11,0xD0,0x01,0x3B,0x00,0x00,0x0A,0x18,0x1F,0x9F,0xE5,0x00,0x10,0xD1,0xE5, + 0x00,0x00,0x51,0xE3,0x34,0x00,0x00,0x0A,0x0C,0x1F,0x9F,0xE5,0xBC,0x21,0xD0,0xE1, + 0xBC,0x1A,0xD1,0xE1,0x02,0x10,0x81,0xE0,0x10,0x10,0x8D,0xE5,0xFC,0x1E,0x9F,0xE5, + 0x68,0x11,0x8D,0xE5,0xB4,0x24,0xD1,0xE1,0x10,0x10,0x9D,0xE5,0xB0,0x02,0xD0,0xE1, + 0x02,0x10,0x81,0xE0,0x00,0x20,0x97,0xE5,0x7E,0xC4,0xD9,0xE5,0xBA,0x34,0xD2,0xE1, + 0xFE,0x60,0xD9,0xE1,0x03,0x00,0x80,0xE0,0x01,0x00,0x50,0xE1,0x01,0x30,0xA0,0xE1, + 0x01,0x00,0x1C,0xE3,0x00,0x10,0xA0,0x31,0x03,0x00,0x00,0x0A,0x02,0x00,0x1C,0xE3, + 0x02,0xC0,0xA0,0x03,0x01,0xC0,0xA0,0x13,0x08,0xC0,0x8D,0xE5,0xB0,0x4E,0x9F,0xE5, + 0xB0,0xAE,0x9F,0xE5,0x64,0x41,0x8D,0xE5,0xBC,0x86,0xC4,0xE1,0xBA,0x40,0xD9,0xE1, + 0x4E,0xC0,0xD2,0xE5,0x01,0x18,0xA0,0xE1,0x00,0x08,0xA0,0xE1,0x94,0x0C,0x0C,0xE0, + 0x9A,0x4C,0x8C,0xE0,0x64,0x41,0x9D,0xE5,0x8C,0xC5,0xA0,0xE1,0x4C,0xC8,0xA0,0xE1, + 0xBE,0xC6,0xC4,0xE1,0xBC,0x44,0xD2,0xE1,0x41,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x04,0x00,0x5C,0xE1,0xBC,0x24,0xD2,0xB1,0x64,0xC1,0x9D,0xB5,0x00,0x50,0xA0,0xE3, + 0xBE,0x26,0xCC,0xB1,0x57,0x2F,0x8D,0xE2,0x03,0x00,0x82,0xE8,0x03,0x08,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x58,0x01,0x8D,0xE5,0x04,0x00,0x00,0xEA,0x00,0x10,0x97,0xE5, + 0xBE,0x21,0xD1,0xE1,0xBC,0x11,0xD0,0xE1,0x02,0x10,0x81,0xE0,0xC9,0xFF,0xFF,0xEA, + 0x85,0x01,0x65,0xE0,0x54,0x01,0x8D,0xE5,0x10,0x0E,0x9F,0xE5,0x00,0x40,0xA0,0xE3, + 0x85,0x00,0x80,0xE0,0x50,0x01,0x8D,0xE5,0x54,0x01,0x9D,0xE5,0x18,0x2E,0x9F,0xE5, + 0x80,0x00,0x84,0xE0,0x00,0x38,0xA0,0xE1,0x64,0x11,0x9D,0xE5,0x43,0x38,0xA0,0xE1, + 0x83,0x00,0x82,0xE0,0xF0,0x00,0xD0,0xE1,0xFE,0x16,0xD1,0xE1,0x01,0x00,0x50,0xE1, + 0x04,0x00,0x00,0xDA,0x64,0x11,0x9D,0xE5,0x64,0xC1,0x9D,0xE5,0xBC,0x16,0xD1,0xE1, + 0x01,0x10,0x81,0xE2,0xBC,0x16,0xCC,0xE1,0x7D,0x0E,0x50,0xE3,0x03,0x00,0x00,0xDA, + 0xD8,0x1D,0x9F,0xE5,0xB0,0x00,0xD1,0xE1,0x01,0x00,0x80,0xE2,0xB0,0x00,0xC1,0xE1, + 0xCC,0xBD,0x9F,0xE5,0x83,0x00,0x8B,0xE0,0xF0,0xA0,0xD0,0xE1,0x60,0x01,0x9D,0xE5, + 0x00,0x00,0x5A,0xE1,0x17,0x03,0x00,0xBA,0x00,0x00,0x55,0xE3,0x00,0x00,0xA0,0xE3, + 0x15,0x00,0x00,0xDA,0x34,0x20,0x8D,0xE2,0x0E,0x00,0x43,0xE2,0xC0,0x11,0xD2,0xE7, + 0x07,0x00,0x00,0xE2,0x01,0xC0,0xA0,0xE3,0x1C,0x00,0x01,0xE0,0x00,0x00,0x54,0xE3, + 0x05,0x00,0x00,0xDA,0x0F,0x10,0x43,0xE2,0xC1,0x71,0xD2,0xE7,0x07,0x10,0x01,0xE2, + 0x1C,0x11,0x07,0xE0,0x01,0x00,0x80,0xE0,0xFF,0x00,0x00,0xE2,0x0D,0x00,0x54,0xE3, + 0x07,0x00,0x00,0xAA,0x0D,0x10,0x43,0xE2,0xC1,0x21,0xD2,0xE7,0x07,0x10,0x01,0xE2, + 0x1C,0x11,0x02,0xE0,0x01,0x00,0x80,0xE0,0xFF,0x00,0x00,0xE2,0x00,0x00,0x54,0xE3, + 0x07,0x00,0x00,0xDA,0x34,0x20,0x8D,0xE2,0x01,0x10,0x43,0xE2,0xC1,0x21,0xD2,0xE7, + 0x07,0x10,0x01,0xE2,0x01,0xC0,0xA0,0xE3,0x1C,0x11,0x02,0xE0,0x01,0x00,0x80,0xE0, + 0xFF,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3,0xF2,0x02,0x00,0x1A,0x00,0xC0,0xA0,0xE3, + 0x0C,0x70,0xA0,0xE1,0x0E,0x90,0xA0,0xE3,0x00,0x00,0xA0,0xE3,0x07,0x80,0x85,0xE0, + 0x00,0x10,0x84,0xE0,0x01,0x20,0x58,0xE2,0x01,0x10,0x41,0xE2,0x0B,0x00,0x00,0x4A, + 0x15,0x00,0x52,0xE3,0x09,0x00,0x00,0xCA,0x00,0x00,0x51,0xE3,0x07,0x00,0x00,0xBA, + 0x0E,0x00,0x51,0xE3,0x0E,0x90,0xA0,0xE3,0x04,0x00,0x00,0xCA,0x92,0x19,0x21,0xE0, + 0x81,0x10,0x8B,0xE0,0xF0,0x10,0xD1,0xE1,0x0C,0x00,0x51,0xE1,0x01,0xC0,0xA0,0xC1, + 0x01,0x00,0x80,0xE2,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x03,0x00,0x50,0xE3, + 0xEA,0xFF,0xFF,0xBA,0x01,0x00,0x87,0xE2,0x00,0x78,0xA0,0xE1,0x47,0x78,0xA0,0xE1, + 0x03,0x00,0x57,0xE3,0xE3,0xFF,0xFF,0xBA,0x0C,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x00,0x00,0x5A,0xE1,0xCF,0x02,0x00,0x1A,0x70,0x1C,0x9F,0xE5,0xBC,0x10,0xD1,0xE1, + 0x00,0x00,0x51,0xE1,0x05,0x00,0x00,0xCA,0x60,0x1C,0x9F,0xE5,0xBC,0x00,0xC1,0xE1, + 0x04,0x00,0xD1,0xE5,0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2,0x18,0x00,0x8D,0xE5, + 0x34,0x00,0x8D,0xE2,0xC3,0x11,0xD0,0xE7,0x07,0x20,0x03,0xE2,0x01,0xC0,0xA0,0xE3, + 0x1C,0x12,0x81,0xE1,0xC3,0x11,0xC0,0xE7,0x08,0x00,0x9D,0xE5,0x00,0x70,0xA0,0xE3, + 0x01,0x00,0x10,0xE3,0x05,0x00,0x00,0x0A,0x0D,0x00,0x54,0xE3,0x0D,0x70,0xA0,0x03, + 0x07,0x00,0x00,0x0A,0x0C,0x00,0x54,0xE3,0x03,0x77,0x87,0x03,0x04,0x00,0x00,0xEA, + 0x14,0x00,0x55,0xE3,0x14,0x70,0xA0,0x03,0x01,0x00,0x00,0x0A,0x13,0x00,0x55,0xE3, + 0x13,0x78,0x87,0x03,0x07,0x08,0xB0,0xE1,0x03,0x00,0x00,0x0A,0x5C,0x01,0x9D,0xE5, + 0x00,0x00,0x5A,0xE1,0xAB,0x02,0x00,0xBA,0x02,0x00,0x00,0xEA,0x58,0x01,0x9D,0xE5, + 0x00,0x00,0x5A,0xE1,0xA7,0x02,0x00,0xBA,0xD4,0x0B,0x9F,0xE5,0x00,0x30,0xA0,0xE3, + 0x00,0x90,0x90,0xE5,0x03,0x10,0x85,0xE0,0x02,0xB0,0x41,0xE2,0x03,0x11,0x83,0xE0, + 0x0B,0xCC,0xA0,0xE1,0xEC,0x20,0x8D,0xE2,0x4C,0xCC,0xA0,0xE1,0x88,0x80,0x8D,0xE2, + 0x00,0x00,0xA0,0xE3,0x01,0x21,0x82,0xE0,0x8C,0xC1,0x6C,0xE0,0x01,0x81,0x88,0xE0, + 0x00,0x10,0x84,0xE0,0x0B,0xAC,0xA0,0xE1,0x02,0x10,0x41,0xE2,0x4A,0xAC,0xA0,0xE1, + 0x01,0x1C,0xA0,0xE1,0x15,0x00,0x5A,0xE3,0x41,0x1C,0xA0,0xE1,0x03,0x00,0x00,0x2A, + 0x00,0x00,0x51,0xE3,0x01,0x00,0x00,0xBA,0x0E,0x00,0x51,0xE3,0x02,0x00,0x00,0xBA, + 0x00,0x10,0xA0,0xE3,0x00,0x11,0x82,0xE7,0x23,0x00,0x00,0xEA,0xB0,0xA0,0xD9,0xE1, + 0x01,0x09,0x1A,0xE3,0x8C,0xA0,0x81,0xE0,0x05,0x00,0x00,0x0A,0x70,0xEB,0x9F,0xE5, + 0x8A,0xA0,0x8E,0xE0,0xF0,0xA0,0xDA,0xE1,0x06,0xA0,0x4A,0xE0,0x00,0xA1,0x82,0xE7, + 0x04,0x00,0x00,0xEA,0x50,0xEB,0x9F,0xE5,0x8A,0xA0,0x8E,0xE0,0xF0,0xA0,0xDA,0xE1, + 0x06,0xA0,0x4A,0xE0,0x00,0xA1,0x82,0xE7,0x00,0x00,0x5A,0xE3,0x00,0xA0,0xA0,0xB3, + 0x00,0xA1,0x82,0xB7,0xB0,0xA0,0xD9,0xE1,0x8C,0x10,0x81,0xE0,0x02,0x09,0x1A,0xE3, + 0x05,0x00,0x00,0x0A,0x28,0xAB,0x9F,0xE5,0x81,0x10,0x8A,0xE0,0xF0,0x10,0xD1,0xE1, + 0x06,0x10,0x41,0xE0,0x00,0x11,0x88,0xE7,0x04,0x00,0x00,0xEA,0x08,0xAB,0x9F,0xE5, + 0x81,0x10,0x8A,0xE0,0xF0,0x10,0xD1,0xE1,0x06,0x10,0x41,0xE0,0x00,0x11,0x88,0xE7, + 0x00,0x00,0x51,0xE3,0x00,0x10,0xA0,0xB3,0x00,0x11,0x88,0xB7,0x01,0x00,0x80,0xE2, + 0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x05,0x00,0x50,0xE3,0xC7,0xFF,0xFF,0xBA, + 0x01,0x00,0x83,0xE2,0x00,0x38,0xA0,0xE1,0x43,0x38,0xA0,0xE1,0x05,0x00,0x53,0xE3, + 0xB7,0xFF,0xFF,0xBA,0xCC,0x0A,0x9F,0xE5,0x00,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3, + 0x49,0x00,0x00,0x1A,0x13,0x00,0x55,0xE3,0x00,0x00,0x54,0x03,0x0F,0x00,0x00,0x1A, + 0xB4,0x0A,0x9F,0xE5,0x1C,0x11,0x9D,0xE5,0x00,0x00,0x90,0xE5,0xC0,0x2F,0xA0,0xE1, + 0x22,0x0F,0x80,0xE0,0x40,0x01,0x41,0xE0,0xC8,0x00,0x50,0xE3,0x07,0x00,0x00,0xAA, + 0x32,0x00,0x51,0xE3,0x01,0x00,0xA0,0xE1,0x04,0x00,0x00,0xDA,0x19,0x0E,0x50,0xE3, + 0x88,0x0A,0x9F,0xB5,0x01,0x10,0xA0,0xB3,0x00,0x10,0x80,0xB5,0x02,0x00,0x00,0xBA, + 0x78,0x1A,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0x00,0x00,0x81,0xE5,0x14,0x00,0x55,0xE3, + 0x0C,0x00,0x54,0x03,0x0F,0x00,0x00,0x1A,0x64,0x0A,0x9F,0xE5,0x1C,0x11,0x9D,0xE5, + 0x00,0x00,0x90,0xE5,0xC0,0x2F,0xA0,0xE1,0x22,0x0F,0x80,0xE0,0x40,0x01,0x41,0xE0, + 0xC8,0x00,0x50,0xE3,0x07,0x00,0x00,0xAA,0x32,0x00,0x51,0xE3,0x01,0x00,0xA0,0xE1, + 0x04,0x00,0x00,0xDA,0x19,0x0E,0x50,0xE3,0x38,0x1A,0x9F,0xB5,0x01,0x00,0xA0,0xB3, + 0x00,0x00,0x81,0xB5,0x07,0x00,0x00,0xBA,0x28,0x1A,0x9F,0xE5,0x00,0x00,0xA0,0xE3, + 0x11,0x00,0x55,0xE3,0x00,0x00,0x81,0xE5,0x1B,0x00,0x00,0xBA,0x00,0x00,0x54,0xE3, + 0x0C,0x00,0x54,0x13,0x06,0x00,0x00,0x1A,0x0C,0x0A,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0x4B,0x0F,0x50,0xE3,0x02,0x00,0x00,0x3A,0x1C,0x01,0x9D,0xE5,0x7D,0x0F,0x50,0xE3, + 0x20,0x02,0x00,0xBA,0x13,0x00,0x55,0xE3,0x07,0x00,0x00,0x1A,0x0D,0x00,0x54,0xE3, + 0x0D,0x00,0x00,0x1A,0x1C,0x01,0x9D,0xE5,0x7D,0x0F,0x50,0xE3,0x30,0x01,0x9D,0xC5, + 0x4B,0x0F,0x50,0xC3,0x17,0x02,0x00,0xCA,0x07,0x00,0x00,0xEA,0x14,0x00,0x55,0xE3, + 0x0D,0x00,0x54,0x03,0x04,0x00,0x00,0x1A,0x1C,0x01,0x9D,0xE5,0x7D,0x0F,0x50,0xE3, + 0x08,0x01,0x9D,0xC5,0x4B,0x0F,0x50,0xC3,0x0E,0x02,0x00,0xCA,0x12,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x64,0x00,0x8D,0xE2,0x00,0xED,0xFF,0xEB,0xA0,0x00,0x9D,0xE5, + 0x5C,0x19,0x9F,0xE5,0x64,0x00,0x8D,0xE5,0xA4,0x00,0x9D,0xE5,0x64,0x39,0x9F,0xE5, + 0x68,0x00,0x8D,0xE5,0xA8,0x00,0x9D,0xE5,0x00,0x00,0x54,0xE3,0x6C,0x00,0x8D,0xE5, + 0xB4,0x00,0x9D,0xE5,0x70,0x00,0x8D,0xE5,0xBC,0x00,0x9D,0xE5,0x78,0x00,0x8D,0xE5, + 0xC8,0x00,0x9D,0xE5,0x7C,0x00,0x8D,0xE5,0xCC,0x00,0x9D,0xE5,0x80,0x00,0x8D,0xE5, + 0xD0,0x00,0x9D,0xE5,0x84,0x00,0x8D,0xE5,0x00,0x10,0x91,0xE5,0xB8,0x00,0x9D,0xE5, + 0xBC,0x11,0xD1,0xE1,0x91,0x00,0x00,0xE0,0x93,0x10,0xC0,0xE0,0xC0,0x12,0xA0,0xE1, + 0xC0,0x0F,0x41,0xE0,0x74,0x00,0x8D,0xE5,0x0F,0x00,0x00,0x1A,0x42,0x1F,0x8D,0xE2, + 0x03,0x00,0x91,0xE8,0x1C,0x21,0x9D,0xE5,0x02,0x10,0x81,0xE0,0x80,0x00,0x81,0xE0, + 0x20,0x11,0x9D,0xE5,0x02,0x00,0x80,0xE0,0x01,0x00,0x80,0xE0,0x30,0x11,0x9D,0xE5, + 0x01,0x00,0x80,0xE0,0x01,0x00,0x80,0xE0,0x34,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0, + 0x00,0x08,0xA0,0xE1,0x20,0x08,0xA0,0xE1,0x22,0x00,0x00,0xEA,0x41,0x1F,0x8D,0xE2, + 0x03,0x00,0x91,0xE8,0x0C,0x00,0x54,0xE3,0x01,0x00,0x80,0xE0,0x0D,0x00,0x00,0x1A, + 0x18,0x21,0x9D,0xE5,0x02,0x10,0x81,0xE0,0x01,0x00,0x80,0xE0,0x1C,0x11,0x9D,0xE5, + 0x01,0x00,0x80,0xE0,0x01,0x00,0x80,0xE0,0x2C,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0, + 0x30,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x01,0x00,0x80,0xE0,0x00,0x08,0xA0,0xE1, + 0x20,0x08,0xA0,0xE1,0x0F,0x00,0x00,0xEA,0x0C,0x11,0x9D,0xE5,0x18,0x21,0x9D,0xE5, + 0x02,0x10,0x81,0xE0,0x01,0x00,0x80,0xE0,0x1C,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0, + 0x20,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x2C,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0, + 0x30,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x34,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0, + 0x00,0x08,0xA0,0xE1,0x20,0x08,0xA0,0xE1,0x8F,0x10,0xA0,0xE3,0xE3,0x1C,0x81,0xE2, + 0x91,0x00,0x00,0xE0,0x14,0xA8,0x9F,0xE5,0xA0,0x09,0xA0,0xE1,0xB6,0x10,0xDA,0xE1, + 0x40,0x00,0x11,0xE3,0x45,0x00,0x00,0x0A,0xEE,0x1F,0xA0,0xE3,0x02,0x1B,0x81,0xE2, + 0x01,0x00,0x50,0xE1,0x34,0x28,0x9F,0x25,0x06,0x10,0xA0,0x23,0x00,0x10,0xC2,0x25, + 0x20,0x00,0x00,0x2A,0x71,0x1F,0xA0,0xE3,0x02,0x1B,0x81,0xE2,0x01,0x00,0x50,0xE1, + 0x18,0x18,0x9F,0x25,0x05,0x20,0xA0,0x23,0x00,0x20,0xC1,0x25,0x1E,0x00,0x00,0x2A, + 0x7D,0x0E,0x50,0xE3,0x04,0x08,0x9F,0x25,0x04,0x10,0xA0,0x23,0x00,0x10,0xC0,0x25, + 0x75,0x00,0x00,0x2A,0x77,0x1F,0xA0,0xE3,0x01,0x1B,0x81,0xE2,0x01,0x00,0x50,0xE1, + 0xE8,0x27,0x9F,0x25,0x03,0x10,0xA0,0x23,0x00,0x10,0xC2,0x25,0x1E,0x00,0x00,0x2A, + 0xFA,0x0F,0x50,0xE3,0xD4,0x27,0x9F,0x25,0x02,0x10,0xA0,0x23,0x00,0x10,0xC2,0x25, + 0x1E,0x00,0x00,0x2A,0x7D,0x0F,0x50,0xE3,0xC0,0x27,0x9F,0x25,0x01,0x10,0xA0,0x23, + 0x00,0x10,0xC2,0x25,0x1E,0x00,0x00,0x2A,0xB0,0x17,0x9F,0xE5,0x00,0x10,0xD1,0xE5, + 0x06,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0xFA,0x0F,0x50,0xE3,0x89,0x01,0x00,0x3A, + 0x5D,0x00,0x00,0xEA,0x05,0x00,0x51,0xE3,0x04,0x00,0x00,0x1A,0xEE,0x10,0xA0,0xE3, + 0x02,0x1C,0x81,0xE2,0x01,0x00,0x50,0xE1,0x82,0x01,0x00,0x3A,0x56,0x00,0x00,0xEA, + 0x04,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0x7D,0x0F,0x50,0xE3,0x7D,0x01,0x00,0x3A, + 0x51,0x00,0x00,0xEA,0x03,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0xFA,0x00,0x50,0xE3, + 0x78,0x01,0x00,0x3A,0x4C,0x00,0x00,0xEA,0x02,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A, + 0x96,0x00,0x50,0xE3,0x73,0x01,0x00,0x3A,0x47,0x00,0x00,0xEA,0x01,0x00,0x51,0xE3, + 0x45,0x00,0x00,0x1A,0x4B,0x00,0x50,0xE3,0x6E,0x01,0x00,0x3A,0x42,0x00,0x00,0xEA, + 0x71,0x1F,0xA0,0xE3,0x02,0x1B,0x81,0xE2,0x01,0x00,0x50,0xE1,0x1C,0x27,0x9F,0x25, + 0x06,0x10,0xA0,0x23,0x00,0x10,0xC2,0x25,0x20,0x00,0x00,0x2A,0xD6,0x10,0xA0,0xE3, + 0x06,0x1C,0x81,0xE2,0x01,0x00,0x50,0xE1,0x00,0x27,0x9F,0x25,0x05,0x10,0xA0,0x23, + 0x00,0x10,0xC2,0x25,0x1E,0x00,0x00,0x2A,0x6B,0x10,0xA0,0xE3,0x03,0x1C,0x81,0xE2, + 0x01,0x00,0x50,0xE1,0xE4,0x26,0x9F,0x25,0x04,0x10,0xA0,0x23,0x00,0x10,0xC2,0x25, + 0x1C,0x00,0x00,0x2A,0x7D,0x0F,0x50,0xE3,0xD0,0x26,0x9F,0x25,0x03,0x10,0xA0,0x23, + 0x00,0x10,0xC2,0x25,0x1C,0x00,0x00,0x2A,0x4B,0x0F,0x50,0xE3,0xBC,0x26,0x9F,0x25, + 0x02,0x10,0xA0,0x23,0x00,0x10,0xC2,0x25,0x1C,0x00,0x00,0x2A,0x96,0x00,0x50,0xE3, + 0xA8,0x26,0x9F,0x25,0x01,0x10,0xA0,0x23,0x00,0x10,0xC2,0x25,0x1C,0x00,0x00,0x2A, + 0x98,0x16,0x9F,0xE5,0x00,0x10,0xD1,0xE5,0x06,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A, + 0x7D,0x0F,0x50,0xE3,0x43,0x01,0x00,0x3A,0x17,0x00,0x00,0xEA,0x05,0x00,0x51,0xE3, + 0x02,0x00,0x00,0x1A,0xFA,0x00,0x50,0xE3,0x3E,0x01,0x00,0x3A,0x12,0x00,0x00,0xEA, + 0x04,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0xAF,0x00,0x50,0xE3,0x39,0x01,0x00,0x3A, + 0x0D,0x00,0x00,0xEA,0x03,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0x55,0x00,0x50,0xE3, + 0x34,0x01,0x00,0x3A,0x08,0x00,0x00,0xEA,0x02,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A, + 0x32,0x00,0x50,0xE3,0x2F,0x01,0x00,0x3A,0x03,0x00,0x00,0xEA,0x01,0x00,0x51,0xE3, + 0x01,0x00,0x00,0x1A,0x14,0x00,0x50,0xE3,0x2A,0x01,0x00,0x3A,0x14,0x00,0x55,0xE3, + 0x10,0x00,0x00,0x1A,0x01,0xCA,0xA0,0xE3,0x04,0x00,0xA0,0xE3,0x01,0xC0,0x4C,0xE2, + 0xEC,0x80,0x8D,0xE2,0x00,0x11,0x88,0xE0,0x28,0x20,0x91,0xE5,0x01,0x00,0x40,0xE2, + 0x02,0x24,0x62,0xE0,0x93,0x92,0xC2,0xE0,0xC2,0x92,0xA0,0xE1,0xC2,0x2F,0x49,0xE0, + 0x0C,0x00,0x52,0xE1,0x28,0x20,0x81,0xE5,0x00,0x08,0xA0,0xE1,0x28,0xC0,0x81,0xA5, + 0x40,0x08,0xB0,0xE1,0xF2,0xFF,0xFF,0x5A,0x00,0x00,0x57,0xE3,0x1F,0x00,0x00,0x0A, + 0x08,0x00,0x9D,0xE5,0x01,0x00,0x10,0xE3,0x04,0x00,0xA0,0xE3,0x0D,0x00,0x00,0x0A, + 0xEC,0x20,0x8D,0xE2,0x00,0x30,0xA0,0xE3,0x07,0x18,0xB0,0xE1,0x00,0x11,0x80,0xE0, + 0x01,0x31,0x82,0x17,0x01,0x11,0x82,0xE0,0x0C,0x30,0x81,0x05,0x01,0x00,0x40,0xE2, + 0x10,0x30,0x81,0x05,0x00,0x08,0xA0,0xE1,0x04,0x30,0x81,0x15,0x40,0x08,0xB0,0xE1, + 0xF4,0xFF,0xFF,0x5A,0x0D,0x00,0x00,0xEA,0xEC,0x30,0x8D,0xE2,0x00,0x20,0xA0,0xE3, + 0x07,0x18,0xB0,0xE1,0x00,0x11,0x83,0x10,0x00,0x21,0x83,0x17,0x14,0x20,0x81,0x15, + 0x02,0x00,0x00,0x1A,0x00,0x11,0x83,0xE0,0x3C,0x20,0x81,0xE5,0x50,0x20,0x81,0xE5, + 0x01,0x00,0x40,0xE2,0x00,0x08,0xA0,0xE1,0x40,0x08,0xB0,0xE1,0xF3,0xFF,0xFF,0x5A, + 0x24,0x95,0x9F,0xE5,0x00,0x30,0xA0,0xE3,0x03,0xC0,0xA0,0xE1,0x0E,0x80,0xA0,0xE3, + 0x00,0x00,0xA0,0xE3,0x0C,0x70,0x85,0xE0,0x00,0x10,0x84,0xE0,0x01,0x20,0x57,0xE2, + 0x01,0x10,0x41,0xE2,0x0A,0x00,0x00,0x4A,0x15,0x00,0x52,0xE3,0x08,0x00,0x00,0xCA, + 0x00,0x00,0x51,0xE3,0x06,0x00,0x00,0xBA,0x0E,0x00,0x51,0xE3,0x04,0x00,0x00,0xCA, + 0x92,0x18,0x21,0xE0,0x81,0x10,0x89,0xE0,0xF0,0x10,0xD1,0xE1,0x03,0x00,0x51,0xE1, + 0x01,0x30,0xA0,0xC1,0x01,0x00,0x80,0xE2,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x03,0x00,0x50,0xE3,0xEB,0xFF,0xFF,0xBA,0x01,0x00,0x8C,0xE2,0x00,0xC8,0xA0,0xE1, + 0x4C,0xC8,0xA0,0xE1,0x03,0x00,0x5C,0xE3,0xE4,0xFF,0xFF,0xBA,0xB8,0x10,0xDA,0xE1, + 0x03,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x00,0x00,0x51,0xE1,0xB8,0x00,0xCA,0xC1, + 0xBA,0x10,0xDA,0xE1,0x70,0x20,0x8D,0xE2,0x0A,0x70,0xA0,0xE1,0x00,0x00,0x51,0xE1, + 0xBA,0x00,0xCA,0xB1,0x04,0x00,0xDA,0xE5,0xEC,0x30,0x8D,0xE2,0x01,0x00,0x80,0xE2, + 0xFF,0x00,0x00,0xE2,0x04,0x00,0xCA,0xE5,0x00,0x01,0x8A,0xE0,0x01,0x0C,0x80,0xE2, + 0xB4,0x41,0xC0,0xE1,0x04,0x00,0xDA,0xE5,0x00,0x01,0x8A,0xE0,0x01,0x0C,0x80,0xE2, + 0xB6,0x51,0xC0,0xE1,0x06,0x00,0x92,0xE8,0x00,0x00,0xA0,0xE3,0x02,0x00,0x51,0xE1, + 0x64,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x7C,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1, + 0x78,0x10,0x9D,0xE5,0xC0,0x00,0xA0,0xC3,0x02,0x00,0x51,0xE1,0x6C,0x10,0x9D,0xD5, + 0x02,0x00,0x51,0xD1,0x84,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x68,0x10,0x9D,0xE5, + 0x30,0x00,0x80,0xC3,0x02,0x00,0x51,0xE1,0x64,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1, + 0x6C,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x80,0x10,0x9D,0xE5,0x0C,0x00,0x80,0xC3, + 0x02,0x00,0x51,0xE1,0x7C,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x84,0x10,0x9D,0xD5, + 0x02,0x00,0x51,0xD1,0x03,0x00,0x80,0xC3,0x04,0x10,0xA0,0xE3,0x00,0x20,0xA0,0xE3, + 0xC0,0x00,0x10,0xE3,0x01,0xC1,0x81,0x00,0x0C,0x21,0x83,0x07,0x30,0x00,0x10,0xE3, + 0x01,0xC1,0x81,0x00,0x0C,0xC1,0x83,0x00,0x10,0x20,0x8C,0x05,0x0C,0x00,0x10,0xE3, + 0x01,0x21,0x83,0x07,0x03,0x00,0x10,0xE3,0x01,0xC1,0x83,0x00,0x01,0x10,0x41,0xE2, + 0x01,0x18,0xA0,0xE1,0x50,0x20,0x8C,0x05,0x41,0x18,0xB0,0xE1,0xEF,0xFF,0xFF,0x5A, + 0xFC,0x30,0x9D,0xE5,0x00,0x30,0x8D,0xE5,0xEC,0x30,0x8D,0xE2,0x0F,0x00,0x93,0xE8, + 0xDD,0x06,0x00,0xEB,0x10,0x31,0x9D,0xE5,0x00,0xA0,0xA0,0xE1,0x00,0x30,0x8D,0xE5, + 0x01,0x3C,0x8D,0xE2,0x0F,0x00,0x93,0xE8,0xD7,0x06,0x00,0xEB,0x24,0x31,0x9D,0xE5, + 0x00,0xB0,0xA0,0xE1,0x00,0x30,0x8D,0xE5,0x45,0x3F,0x8D,0xE2,0x0F,0x00,0x93,0xE8, + 0xD1,0x06,0x00,0xEB,0x38,0x31,0x9D,0xE5,0x00,0x90,0xA0,0xE1,0x00,0x30,0x8D,0xE5, + 0x4A,0x3F,0x8D,0xE2,0x0F,0x00,0x93,0xE8,0xCB,0x06,0x00,0xEB,0x4C,0x31,0x9D,0xE5, + 0x30,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5,0x4F,0x3F,0x8D,0xE2,0x0F,0x00,0x93,0xE8, + 0xC5,0x06,0x00,0xEB,0x2C,0x00,0x8D,0xE5,0x00,0x00,0x8D,0xE5,0x30,0x30,0x9D,0xE5, + 0x09,0x20,0xA0,0xE1,0x0B,0x10,0xA0,0xE1,0x0A,0x00,0xA0,0xE1,0xBE,0x06,0x00,0xEB, + 0x00,0x80,0xB0,0xE1,0x06,0x00,0x00,0x1A,0x64,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3, + 0xEC,0x00,0x8D,0xE2,0x5D,0xEB,0xFF,0xEB,0x0A,0x90,0xA0,0xE3,0x09,0x80,0xA0,0xE1, + 0x1C,0x91,0x8D,0xE5,0x3C,0x31,0x9D,0xE5,0xEC,0x00,0x9D,0xE5,0x00,0x30,0x8D,0xE5, + 0x00,0x11,0x9D,0xE5,0x14,0x21,0x9D,0xE5,0x28,0x31,0x9D,0xE5,0xAE,0x06,0x00,0xEB, + 0xA8,0x12,0x9F,0xE5,0x84,0x70,0x81,0xE0,0xBE,0x11,0xD7,0xE1,0x91,0x00,0x00,0xE0, + 0x28,0x00,0x8D,0xE5,0x40,0x31,0x9D,0xE5,0x00,0x30,0x8D,0xE5,0xF0,0x00,0x9D,0xE5, + 0x04,0x11,0x9D,0xE5,0x18,0x21,0x9D,0xE5,0x2C,0x31,0x9D,0xE5,0xA2,0x06,0x00,0xEB, + 0xB0,0x12,0xD7,0xE1,0x44,0x31,0x9D,0xE5,0x1C,0x21,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x24,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5,0xF4,0x00,0x9D,0xE5,0x08,0x11,0x9D,0xE5, + 0x30,0x31,0x9D,0xE5,0x98,0x06,0x00,0xEB,0xB2,0x12,0xD7,0xE1,0x48,0x31,0x9D,0xE5, + 0x20,0x21,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x20,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5, + 0xF8,0x00,0x9D,0xE5,0x0C,0x11,0x9D,0xE5,0x34,0x31,0x9D,0xE5,0x8E,0x06,0x00,0xEB, + 0xB4,0x12,0xD7,0xE1,0x4C,0x31,0x9D,0xE5,0x24,0x21,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x1C,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5,0xFC,0x00,0x9D,0xE5,0x10,0x11,0x9D,0xE5, + 0x38,0x31,0x9D,0xE5,0x84,0x06,0x00,0xEB,0xB6,0x12,0xD7,0xE1,0x20,0x20,0x9D,0xE5, + 0x90,0x01,0x03,0xE0,0x00,0x30,0x8D,0xE5,0x28,0x00,0x9D,0xE5,0x24,0x10,0x9D,0xE5, + 0x1C,0x30,0x9D,0xE5,0x7C,0x06,0x00,0xEB,0x08,0x10,0xA0,0xE1,0x6B,0xEA,0xFF,0xEB, + 0xD8,0x11,0x9F,0xE5,0xD4,0x71,0x9F,0xE5,0xB0,0x12,0xD1,0xE1,0x00,0x10,0x61,0xE2, + 0x81,0x00,0x90,0xE0,0x04,0x10,0xD7,0xE5,0x00,0x00,0xA0,0x43,0x81,0x10,0x87,0xE0, + 0xB4,0x0F,0xC1,0xE1,0x50,0x31,0x9D,0xE5,0x50,0x21,0x9D,0xE5,0xB8,0x35,0xD3,0xE1, + 0x30,0xC0,0x9D,0xE5,0xB6,0x25,0xD2,0xE1,0x93,0x0C,0x0C,0xE0,0x99,0x02,0x02,0xE0, + 0x50,0x01,0x9D,0xE5,0x50,0x11,0x9D,0xE5,0x50,0x31,0x9D,0xE5,0xB2,0x05,0xD0,0xE1, + 0xB4,0x15,0xD1,0xE1,0xBA,0x35,0xD3,0xE1,0x2C,0x90,0x9D,0xE5,0x9A,0x00,0x00,0xE0, + 0x99,0x03,0x03,0xE0,0x9B,0x01,0x01,0xE0,0x00,0x30,0x8D,0xE5,0x0C,0x30,0xA0,0xE1, + 0x5D,0x06,0x00,0xEB,0x08,0x10,0xA0,0xE1,0x4C,0xEA,0xFF,0xEB,0xB4,0x15,0xD7,0xE1, + 0x00,0x10,0x61,0xE2,0x81,0x00,0x90,0xE0,0x04,0x10,0xD7,0xE5,0x00,0x00,0xA0,0x43, + 0x81,0x10,0x87,0xE0,0x01,0x1C,0x81,0xE2,0xB6,0x00,0xC1,0xE1,0x04,0x00,0xD7,0xE5, + 0x08,0x00,0x50,0xE3,0x0C,0x00,0x00,0x2A,0x01,0x00,0x84,0xE2,0x00,0x48,0xA0,0xE1, + 0x44,0x48,0xA0,0xE1,0x0E,0x00,0x54,0xE3,0xC6,0xFC,0xFF,0xBA,0x14,0x00,0x9D,0xE5, + 0x00,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0x01,0x00,0x85,0xE2,0x00,0x58,0xA0,0xE1, + 0x45,0x58,0xA0,0xE1,0x15,0x00,0x55,0xE3,0xB8,0xFC,0xFF,0xBA,0x00,0x01,0x9F,0xE5, + 0x00,0x40,0x90,0xE5,0xB0,0x00,0xD4,0xE1,0x80,0x00,0x10,0xE3,0x51,0x00,0x00,0x0A, + 0xE8,0x50,0x9F,0xE5,0x04,0x00,0xD5,0xE5,0x00,0x00,0x50,0xE3,0x08,0x00,0x00,0x1A, + 0x68,0x01,0x9D,0xE5,0xB4,0x04,0xD0,0xE1,0x00,0x00,0x50,0xE3,0x41,0x01,0xD5,0x15, + 0x3C,0x10,0xD4,0x15,0x01,0x00,0x50,0x11,0x41,0x00,0x00,0x2A,0x01,0x00,0x80,0xE2, + 0x2C,0x00,0x00,0xEA,0x42,0x01,0xD5,0xE5,0x34,0x10,0xD4,0xE5,0x01,0x00,0x50,0xE1, + 0x27,0x00,0x00,0x8A,0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2,0x42,0x01,0xC5,0xE5, + 0x35,0x10,0xD4,0xE5,0x05,0x20,0xA0,0xE1,0x00,0x00,0x51,0xE1,0x03,0x00,0x00,0x2A, + 0xBC,0x30,0xD2,0xE1,0x0C,0x20,0x9D,0xE5,0x03,0x20,0x82,0xE0,0x0C,0x20,0x8D,0xE5, + 0x34,0x20,0xD4,0xE5,0x02,0x00,0x50,0xE1,0x19,0x00,0x00,0x1A,0x01,0x00,0x50,0xE1, + 0x17,0x00,0x00,0x0A,0x01,0x10,0x40,0xE0,0x0C,0x00,0x9D,0xE5,0xA3,0xEA,0xFF,0xEB, + 0x68,0x21,0x9D,0xE5,0x00,0x10,0xA0,0xE3,0xB4,0x14,0xC2,0xE1,0xB8,0x13,0xD4,0xE1, + 0x00,0x00,0x51,0xE1,0x0E,0x00,0x00,0x2A,0x10,0x10,0x9D,0xE5,0x01,0x00,0x40,0xE0, + 0x36,0x10,0xD4,0xE5,0x90,0x01,0x01,0xE0,0x48,0x00,0x9F,0xE5,0x90,0x21,0x81,0xE0, + 0xA1,0x02,0xA0,0xE1,0x68,0x11,0x9D,0xE5,0xB4,0x04,0xC1,0xE1,0x68,0x01,0x9D,0xE5, + 0xB4,0x14,0xD0,0xE1,0xBA,0x03,0xD4,0xE1,0x00,0x00,0x51,0xE1,0x68,0x11,0x9D,0x85, + 0xB4,0x04,0xC1,0x81,0x00,0x00,0xA0,0xE3,0x41,0x01,0xC5,0xE5,0x15,0x00,0x00,0xEA, + 0x40,0x00,0x00,0x20,0x78,0x06,0x00,0x20,0x75,0x05,0x00,0x20,0x00,0x95,0x00,0x00, + 0x40,0x01,0x00,0x20,0x40,0x04,0x00,0x20,0x1F,0x85,0xEB,0x51,0x00,0x00,0x00,0x10, + 0xC0,0x05,0x00,0x20,0x7E,0x06,0x00,0x20,0x76,0x05,0x00,0x20,0xC4,0x05,0x00,0x20, + 0xAC,0x05,0x00,0x20,0xC8,0x05,0x00,0x20,0xB0,0x05,0x00,0x20,0xEC,0x05,0x00,0x20, + 0x68,0x05,0x00,0x20,0x00,0x00,0xA0,0xE3,0x42,0x01,0xC5,0xE5,0x41,0x01,0xC5,0xE5, + 0x68,0x11,0x9D,0xE5,0xB4,0x04,0xC1,0xE1,0x60,0x50,0x1F,0xE5,0x00,0xC0,0xA0,0xE3, + 0x04,0xA0,0xD5,0xE5,0x0C,0x80,0xA0,0xE1,0x01,0x20,0xA0,0xE3,0x01,0x00,0x5A,0xE3, + 0x32,0x00,0x00,0xBA,0x7F,0x94,0xD5,0xE5,0x64,0xB0,0x1F,0xE5,0x82,0x00,0x85,0xE0, + 0xB4,0x1F,0xD0,0xE1,0xCD,0x30,0xA0,0xE3,0x33,0x3B,0x83,0xE2,0x01,0x0C,0x80,0xE2, + 0xB6,0x00,0xD0,0xE1,0x93,0x01,0x01,0xE0,0x93,0x00,0x00,0xE0,0xA0,0x79,0xA0,0xE1, + 0x00,0x80,0xA0,0xE3,0x00,0x00,0x59,0xE3,0xA1,0x69,0xA0,0xE1,0x08,0x00,0xA0,0xE1, + 0x1D,0x00,0x00,0xDA,0x02,0x11,0x85,0xE0,0x01,0x4C,0x81,0xE2,0x80,0x11,0x85,0xE0, + 0x01,0x1B,0x81,0xE2,0xF0,0x38,0xD1,0xE1,0x06,0x00,0x53,0xE1,0x11,0x00,0x00,0xCA, + 0xF4,0x38,0xD1,0xE1,0x06,0x00,0x53,0xE1,0x0E,0x00,0x00,0xBA,0xF2,0x38,0xD1,0xE1, + 0x07,0x00,0x53,0xE1,0x0B,0x00,0x00,0xCA,0xF6,0x18,0xD1,0xE1,0x07,0x00,0x51,0xE1, + 0x08,0x00,0x00,0xBA,0xF6,0x11,0xD4,0xE1,0xF4,0x31,0xD4,0xE1,0x81,0x11,0x61,0xE0, + 0x81,0x10,0x83,0xE0,0x81,0x10,0x8B,0xE0,0xF0,0x30,0xD1,0xE1,0x0C,0x00,0x53,0xE1, + 0x03,0xC0,0xA0,0xC1,0xFF,0x80,0x02,0xC2,0x01,0x00,0x80,0xE2,0x00,0x08,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x00,0x00,0x59,0xE1,0xE3,0xFF,0xFF,0xCA,0x01,0x00,0x82,0xE2, + 0x00,0x28,0xA0,0xE1,0x42,0x28,0xA0,0xE1,0x02,0x00,0x5A,0xE1,0xCE,0xFF,0xFF,0xAA, + 0x48,0x01,0x1F,0xE5,0xBA,0x10,0xD5,0xE1,0x01,0x6C,0x80,0xE2,0x01,0x4C,0x80,0xE2, + 0x0C,0x00,0x51,0xE1,0x06,0x60,0x86,0xE2,0x02,0x40,0x84,0xE2,0x12,0x00,0x00,0xCA, + 0x00,0x00,0x58,0xE3,0x10,0x00,0x00,0x0A,0x88,0x00,0x85,0xE0,0xB4,0x8F,0xD0,0xE1, + 0x01,0x0C,0x80,0xE2,0xB6,0x70,0xD0,0xE1,0x12,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3, + 0xF4,0x00,0x85,0xE2,0x45,0xEA,0xFF,0xEB,0x12,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3, + 0x06,0x00,0xA0,0xE1,0x41,0xEA,0xFF,0xEB,0x01,0x00,0xA0,0xE3,0x04,0x00,0xC5,0xE5, + 0xA8,0x01,0x1F,0xE5,0xB6,0x8F,0xC0,0xE1,0x1B,0x00,0x00,0xEA,0x05,0x00,0xD5,0xE5, + 0x00,0x00,0x50,0xE3,0x19,0x00,0x00,0x1A,0x01,0x00,0x5A,0xE3,0x17,0x00,0x00,0x9A, + 0x8A,0x01,0xD5,0xE5,0x00,0x00,0x50,0xE3,0x14,0x00,0x00,0x1A,0x18,0x00,0x9D,0xE5, + 0x00,0x00,0x50,0xE3,0x11,0x00,0x00,0x0A,0x18,0x10,0x9D,0xE5,0x12,0x20,0xA0,0xE3, + 0x81,0x00,0x85,0xE0,0xB4,0x9F,0xD0,0xE1,0x01,0x0C,0x80,0xE2,0xB6,0x70,0xD0,0xE1, + 0x00,0x10,0xA0,0xE3,0xF4,0x00,0x85,0xE2,0x28,0xEA,0xFF,0xEB,0x12,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0x24,0xEA,0xFF,0xEB,0x01,0x00,0xA0,0xE3, + 0x04,0x00,0xC5,0xE5,0x1C,0x02,0x1F,0xE5,0xB6,0x9F,0xC0,0xE1,0xB6,0x70,0xC4,0xE1, + 0x7B,0x04,0xD5,0xE5,0x05,0x30,0xA0,0xE1,0x00,0x00,0x50,0xE3,0x09,0x00,0x00,0x0A, + 0x00,0x20,0xA0,0xE3,0x38,0xC0,0x9F,0xE5,0x04,0x20,0xC3,0xE5,0x7C,0x04,0xD3,0xE5, + 0x1E,0xC0,0xDC,0xE5,0x03,0x10,0xA0,0xE1,0x0C,0x00,0x50,0xE1,0x01,0x00,0x80,0xE2, + 0x7B,0x24,0xC1,0x25,0x7C,0x04,0xC1,0xE5,0x04,0x00,0xD3,0xE5,0x14,0x10,0x9F,0xE5, + 0x05,0x00,0xC3,0xE5,0x00,0x00,0xC1,0xE5,0x5B,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x00,0x93,0x00,0x00,0xF4,0x05,0x00,0x20,0x10,0xB5,0x0F,0x48, + 0x0F,0x49,0x80,0x88,0x49,0x8B,0x00,0x24,0x40,0x18,0x0E,0x49,0x09,0x78,0x00,0x29, + 0x02,0xD0,0x0D,0x49,0x49,0x89,0x02,0xE0,0x0C,0x49,0x09,0x68,0x49,0x88,0x08,0x18, + 0x0B,0x49,0xC9,0x6B,0x49,0x04,0x49,0x0C,0x81,0x42,0x00,0xD3,0x01,0x24,0xFE,0xF7, + 0xC1,0xFB,0x20,0x00,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x80,0x01,0x00,0x20, + 0x40,0x05,0x00,0x20,0x75,0x05,0x00,0x20,0xA0,0x95,0x00,0x00,0x78,0x06,0x00,0x20, + 0xC0,0x90,0x00,0x40,0xF7,0xB5,0x24,0x4E,0x82,0xB0,0xB0,0x7F,0xF1,0x7F,0x00,0x02, + 0x08,0x43,0x02,0xF0,0x79,0xF8,0x30,0x00,0x20,0x38,0x00,0x7D,0xC0,0x07,0x0A,0xD0, + 0x1E,0x48,0x01,0x78,0x1E,0x48,0x00,0x7B,0x00,0x29,0x02,0xD0,0x02,0xF0,0x1C,0xF8, + 0x01,0xE0,0x02,0xF0,0x41,0xF8,0x18,0x49,0x01,0x25,0x20,0x39,0x08,0x00,0xC0,0x30, + 0x01,0x90,0x05,0x20,0xC0,0x01,0x17,0x4F,0x08,0x18,0x00,0x90,0x00,0x20,0xF8,0x62, + 0x01,0x98,0x80,0x68,0x38,0x62,0x00,0x98,0x00,0x6B,0x78,0x62,0x03,0x24,0xE0,0x07, + 0xC0,0x0F,0xFB,0xF7,0x75,0xFC,0x64,0x1E,0xF9,0xD5,0x02,0x20,0xF8,0x62,0x30,0x7F, + 0x01,0x00,0xFB,0xF7,0xE3,0xFC,0x01,0x24,0x02,0xA8,0x07,0xC8,0xFE,0xF7,0x10,0xFB, + 0x00,0x28,0x01,0xD1,0x00,0x24,0x25,0x00,0x64,0x1E,0xF5,0xD5,0x6D,0x1E,0xDD,0xD5, + 0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x20,0x93,0x00,0x00,0x6D,0x05,0x00,0x20, + 0xE0,0x04,0x00,0x20,0x80,0x90,0x00,0x40,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9, + 0x00,0x60,0xA0,0xE3,0x7D,0xDF,0x4D,0xE2,0x00,0x00,0xA0,0xE3,0x30,0x60,0x8D,0xE5, + 0xC8,0x61,0x8D,0xE5,0x2C,0x60,0x8D,0xE5,0x1C,0x60,0x8D,0xE5,0x00,0x50,0xA0,0xE1, + 0x00,0x10,0xA0,0xE1,0xC4,0x61,0x8D,0xE5,0x38,0x60,0x8D,0xE5,0x08,0x00,0x8D,0xE5, + 0x04,0x00,0x8D,0xE5,0x10,0x0B,0x9F,0xE5,0x34,0x60,0x8D,0xE5,0x24,0x60,0x8D,0xE5, + 0x28,0x60,0x8D,0xE5,0x20,0x60,0x8D,0xE5,0x10,0x60,0x8D,0xE5,0x14,0x60,0x8D,0xE5, + 0x0C,0x60,0x8D,0xE5,0xF0,0x01,0x8D,0xE5,0xB0,0x18,0xC0,0xE1,0xF0,0x01,0x9D,0xE5, + 0xE8,0x4A,0x9F,0xE5,0xB2,0x18,0xC0,0xE1,0xF0,0x01,0x9D,0xE5,0x06,0x70,0xA0,0xE1, + 0xB4,0x18,0xC0,0xE1,0x06,0x90,0xA0,0xE1,0x06,0xA0,0xA0,0xE1,0x30,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x88,0x00,0x84,0xE2,0xA4,0xE9,0xFF,0xEB,0x30,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0xB8,0x00,0x84,0xE2,0xA0,0xE9,0xFF,0xEB,0x00,0x80,0xA0,0xE3, + 0x60,0x10,0xA0,0xE3,0x57,0x0F,0x8D,0xE2,0xB8,0x8E,0xC4,0xE1,0xAB,0xE9,0xFF,0xEB, + 0x60,0x10,0xA0,0xE3,0xFC,0x00,0x8D,0xE2,0xA8,0xE9,0xFF,0xEB,0x60,0x10,0xA0,0xE3, + 0x9C,0x00,0x8D,0xE2,0xA5,0xE9,0xFF,0xEB,0x60,0x10,0xA0,0xE3,0x3C,0x00,0x8D,0xE2, + 0xA2,0xE9,0xFF,0xEB,0x78,0x0A,0x9F,0xE5,0x00,0x10,0xD0,0xE5,0x74,0x0A,0x9F,0xE5, + 0x00,0x00,0x51,0xE3,0xEC,0x01,0x8D,0xE5,0x04,0x00,0x00,0x0A,0xF8,0x0A,0xD0,0xE1, + 0xC0,0x01,0x8D,0xE5,0xEC,0x01,0x9D,0xE5,0xB6,0x0A,0xD0,0xE1,0x04,0x00,0x00,0xEA, + 0x54,0x0A,0x9F,0xE5,0x00,0x00,0x90,0xE5,0xF6,0x12,0xD0,0xE1,0xC0,0x11,0x8D,0xE5, + 0xB4,0x02,0xD0,0xE1,0xEC,0x11,0x9D,0xE5,0x60,0x2A,0x9F,0xE5,0xBC,0x01,0x8D,0xE5, + 0x28,0x0A,0x9F,0xE5,0x58,0x3A,0x9F,0xE5,0xB6,0x00,0xD0,0xE1,0x58,0xCA,0x9F,0xE5, + 0x40,0x00,0x10,0xE3,0xB0,0xB8,0xD1,0x01,0xB0,0x18,0xD1,0x11,0x01,0x08,0xE0,0xE3, + 0x81,0xB0,0x00,0x10,0x8B,0x00,0x00,0xE0,0x10,0x1A,0x9F,0xE5,0x18,0x00,0x8D,0xE5, + 0x00,0x00,0xA0,0xE3,0x00,0x00,0xC1,0xE5,0x04,0x1A,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0x00,0x1A,0x9F,0xE5,0x00,0x00,0x81,0xE5,0xFC,0x19,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0xF8,0x19,0x9F,0xE5,0x00,0x00,0x81,0xE5,0xF4,0x19,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0xF0,0x19,0x9F,0xE5,0x00,0x00,0x81,0xE5,0xEC,0x19,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0xF0,0x19,0x9F,0xE5,0x00,0x00,0x82,0xE5,0x00,0x00,0x83,0xE5,0x00,0x00,0x81,0xE5, + 0x00,0x00,0x8C,0xE5,0xE4,0xC9,0x9F,0xE5,0x00,0x00,0x8C,0xE5,0xE0,0xC9,0x9F,0xE5, + 0x00,0x00,0x8C,0xE5,0x00,0xC0,0xA0,0xE3,0x0C,0x00,0xA0,0xE1,0x00,0x20,0xA0,0xE3, + 0xD0,0x19,0x9F,0xE5,0x8C,0x10,0x81,0xE0,0xE8,0x11,0x8D,0xE5,0xB0,0x10,0xD1,0xE1, + 0x01,0x3A,0xA0,0xE1,0xC0,0x19,0x9F,0xE5,0x23,0x3A,0xA0,0xE1,0x8C,0x10,0x81,0xE0, + 0xB0,0x10,0xD1,0xE1,0x0F,0x1A,0xC1,0xE3,0x01,0x40,0x43,0xE0,0x08,0x00,0x54,0xE1, + 0x03,0x10,0x41,0xE0,0x34,0x30,0x8D,0xC2,0x05,0x00,0x83,0xC8,0x04,0x80,0xA0,0xC1, + 0xFC,0x30,0x8D,0xE2,0x02,0xE1,0x93,0xE7,0x00,0x00,0x54,0xE3,0x00,0x40,0xA0,0xB3, + 0x04,0xE0,0x8E,0xE0,0x02,0xE1,0x83,0xE7,0x57,0xEF,0x8D,0xE2,0x00,0x31,0x9E,0xE7, + 0x00,0x00,0x51,0xE3,0x04,0x30,0x83,0xE0,0x00,0x31,0x8E,0xE7,0x3C,0x30,0x8D,0xE2, + 0x02,0xE1,0x93,0xE7,0x00,0x10,0xA0,0xB3,0x01,0xE0,0x8E,0xE0,0x02,0xE1,0x83,0xE7, + 0x9C,0xE0,0x8D,0xE2,0x00,0x31,0x9E,0xE7,0x01,0x30,0x83,0xE0,0x00,0x31,0x8E,0xE7, + 0xC8,0x31,0x9D,0xE5,0x04,0x00,0x53,0xE1,0xC8,0x41,0x8D,0x35,0x01,0x00,0x56,0xE1, + 0x01,0x60,0xA0,0x31,0x64,0x00,0x54,0xE3,0x04,0x30,0xA0,0xE1,0x64,0x30,0xA0,0xC3, + 0x11,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0xEC,0xE8,0x9F,0xE5,0x00,0xE0,0x9E,0xE5, + 0x0E,0x30,0x83,0xE0,0xE0,0xE8,0x9F,0xE5,0x13,0x00,0x00,0xEA,0x12,0x00,0x50,0xE3, + 0x04,0x00,0x00,0x1A,0xD4,0xE8,0x9F,0xE5,0x00,0xE0,0x9E,0xE5,0x0E,0x30,0x83,0xE0, + 0xC8,0xE8,0x9F,0xE5,0x0C,0x00,0x00,0xEA,0x13,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A, + 0xBC,0xE8,0x9F,0xE5,0x00,0xE0,0x9E,0xE5,0x0E,0x30,0x83,0xE0,0xB0,0xE8,0x9F,0xE5, + 0x05,0x00,0x00,0xEA,0x14,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0xA4,0xE8,0x9F,0xE5, + 0x00,0xE0,0x9E,0xE5,0x0E,0x30,0x83,0xE0,0x98,0xE8,0x9F,0xE5,0x00,0x30,0x8E,0xE5, + 0x32,0x00,0x54,0xE3,0x04,0x30,0xA0,0xE1,0x32,0x30,0xA0,0xC3,0x11,0x00,0x50,0xE3, + 0x04,0x00,0x00,0x1A,0x80,0xE8,0x9F,0xE5,0x00,0xE0,0x9E,0xE5,0x0E,0x30,0x83,0xE0, + 0x74,0xE8,0x9F,0xE5,0x13,0x00,0x00,0xEA,0x12,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A, + 0x68,0xE8,0x9F,0xE5,0x00,0xE0,0x9E,0xE5,0x0E,0x30,0x83,0xE0,0x5C,0xE8,0x9F,0xE5, + 0x0C,0x00,0x00,0xEA,0x13,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0x50,0xE8,0x9F,0xE5, + 0x00,0xE0,0x9E,0xE5,0x0E,0x30,0x83,0xE0,0x44,0xE8,0x9F,0xE5,0x05,0x00,0x00,0xEA, + 0x14,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0x38,0xE8,0x9F,0xE5,0x00,0xE0,0x9E,0xE5, + 0x0E,0x30,0x83,0xE0,0x2C,0xE8,0x9F,0xE5,0x00,0x30,0x8E,0xE5,0x01,0x00,0x56,0xE1, + 0x01,0x60,0xA0,0x31,0x11,0x00,0x50,0xE3,0x12,0x00,0x50,0x13,0x14,0x00,0x50,0x13, + 0x09,0x00,0x00,0x1A,0x00,0x00,0x52,0xE3,0x04,0x00,0x00,0x1A,0xE0,0x37,0x9F,0xE5, + 0xDC,0xE7,0x9F,0xE5,0x00,0x30,0x93,0xE5,0x04,0x30,0x83,0xE0,0x00,0x30,0x8E,0xE5, + 0x11,0x00,0x50,0xE3,0x12,0x00,0x50,0x13,0x01,0x00,0x00,0x0A,0x13,0x00,0x50,0xE3, + 0x06,0x00,0x00,0x1A,0x0C,0x00,0x52,0xE3,0x04,0x00,0x00,0x1A,0xB4,0x37,0x9F,0xE5, + 0xB0,0xE7,0x9F,0xE5,0x00,0x30,0x93,0xE5,0x04,0x30,0x83,0xE0,0x00,0x30,0x8E,0xE5, + 0x0B,0x00,0x51,0xE1,0x01,0x30,0x87,0xC2,0x01,0x78,0xC3,0xC3,0x0B,0x00,0x54,0xE1, + 0x01,0x30,0x89,0xC2,0x01,0x98,0xC3,0xC3,0x18,0x30,0x9D,0xE5,0x03,0x00,0x51,0xE1, + 0x03,0x00,0x00,0xDA,0x0C,0x30,0x9D,0xE5,0x01,0x30,0x83,0xE2,0x01,0x38,0xC3,0xE3, + 0x0C,0x30,0x8D,0xE5,0x18,0x30,0x9D,0xE5,0x03,0x00,0x54,0xE1,0x01,0x30,0x8A,0xC2, + 0x01,0xA8,0xC3,0xC3,0x14,0x30,0x9D,0xE5,0x96,0x00,0x51,0xE3,0x04,0x30,0x83,0xE0, + 0x14,0x30,0x8D,0xE5,0x10,0x30,0x9D,0xE5,0x01,0x30,0x83,0xE0,0x10,0x30,0x8D,0xE5, + 0x03,0x00,0x00,0xDA,0x74,0xE7,0x9F,0xE5,0xB0,0x30,0xDE,0xE1,0x01,0x30,0x83,0xE2, + 0xB0,0x30,0xCE,0xE1,0xE8,0x31,0x9D,0xE5,0x01,0x20,0x82,0xE2,0xB0,0x40,0xC3,0xE1, + 0xC0,0x31,0x9D,0xE5,0x0E,0x00,0x52,0xE3,0x04,0x30,0x83,0xE0,0xC4,0x41,0x9D,0xE5, + 0x01,0xC0,0x8C,0xE2,0x04,0x30,0x83,0xE0,0xC4,0x31,0x8D,0xE5,0x57,0xFF,0xFF,0x3A, + 0x01,0x00,0x80,0xE2,0x15,0x00,0x50,0xE3,0x53,0xFF,0xFF,0x3A,0x18,0x27,0x9F,0xE5, + 0x70,0x00,0x9D,0xE5,0x00,0x00,0x82,0xE5,0x10,0x07,0x9F,0xE5,0xC8,0x21,0x9D,0xE5, + 0x00,0x20,0x80,0xE5,0x08,0x07,0x9F,0xE5,0x00,0x60,0x80,0xE5,0xD8,0x06,0x9F,0xE5, + 0x00,0x00,0x90,0xE5,0x7D,0x0F,0x50,0xE3,0xD0,0x06,0x9F,0x25,0x00,0x00,0x90,0x25, + 0x7D,0x0F,0x50,0x23,0xC8,0x06,0x9F,0x25,0x00,0x00,0x90,0x25,0x7D,0x0F,0x50,0x23, + 0x08,0x00,0x00,0x3A,0xBC,0x06,0x9F,0xE5,0x00,0x00,0x90,0xE5,0x7D,0x0F,0x50,0xE3, + 0x04,0x00,0x00,0x3A,0xD8,0x36,0x9F,0xE5,0x00,0x00,0x93,0xE5,0xC8,0x00,0x50,0xE3, + 0x01,0x00,0x80,0x32,0x00,0x00,0x83,0x35,0x9C,0x06,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0xC8,0x00,0x50,0xE3,0x94,0x06,0x9F,0x25,0x00,0x00,0x90,0x25,0xC8,0x00,0x50,0x23, + 0x8C,0x06,0x9F,0x25,0x00,0x00,0x90,0x25,0xC8,0x00,0x50,0x23,0x08,0x00,0x00,0x3A, + 0x80,0x06,0x9F,0xE5,0x00,0x00,0x90,0xE5,0xC8,0x00,0x50,0xE3,0x04,0x00,0x00,0x3A, + 0x90,0x36,0x9F,0xE5,0x00,0x00,0x93,0xE5,0xC8,0x00,0x50,0xE3,0x01,0x00,0x80,0x32, + 0x00,0x00,0x83,0x35,0x80,0x06,0x9F,0xE5,0x00,0x00,0x90,0xE5,0x03,0x00,0x50,0xE3, + 0xE4,0x01,0x8D,0xE5,0x14,0x00,0x00,0x2A,0x70,0x36,0x9F,0xE5,0x64,0x00,0x56,0xE3, + 0x04,0x00,0x00,0x2A,0x00,0x00,0x93,0xE5,0x00,0x00,0x50,0xE3,0x0E,0x00,0x00,0x0A, + 0x01,0x00,0x40,0xE2,0x0B,0x00,0x00,0xEA,0xC8,0x00,0x56,0xE3,0x03,0x00,0x00,0x9A, + 0x00,0x00,0x93,0xE5,0x7D,0x0F,0x50,0xE3,0x07,0x00,0x00,0x2A,0x04,0x00,0x00,0xEA, + 0x96,0x00,0x56,0xE3,0x04,0x00,0x00,0x9A,0x00,0x00,0x93,0xE5,0x4B,0x0F,0x50,0xE3, + 0x01,0x00,0x00,0x2A,0x01,0x00,0x80,0xE2,0x00,0x00,0x83,0xE5,0x04,0x06,0x9F,0xE5, + 0x1C,0x46,0x9F,0xE5,0x8C,0x00,0x80,0xE0,0xB0,0x00,0xD0,0xE1,0x00,0xE0,0xA0,0xE3, + 0x00,0x0A,0xA0,0xE1,0x20,0x0A,0xA0,0xE1,0xE0,0x01,0x8D,0xE5,0x02,0x02,0x62,0xE0, + 0x00,0x61,0xA0,0xE1,0x02,0x02,0x62,0xE0,0x80,0x00,0x80,0xE0,0xDC,0x01,0x8D,0xE5, + 0x02,0x02,0x62,0xE0,0x80,0x00,0xA0,0xE1,0xD8,0x01,0x8D,0xE5,0x02,0x01,0x82,0xE0, + 0x00,0x01,0xA0,0xE1,0xD4,0x01,0x8D,0xE5,0x02,0x02,0x62,0xE0,0xD0,0x01,0x8D,0xE5, + 0x00,0x30,0xA0,0xE3,0xE4,0xC1,0x9D,0xE5,0x00,0x00,0x51,0xE3,0xE0,0x01,0x9D,0xE5, + 0x00,0x10,0xA0,0xB3,0x03,0x00,0x5C,0xE3,0x36,0x00,0x00,0x2A,0xEE,0xCF,0xA0,0xE3, + 0x02,0xCB,0x8C,0xE2,0x0C,0x00,0x52,0xE1,0x07,0x00,0x00,0x9A,0x94,0xB6,0xCC,0xE0, + 0xCC,0xB2,0xA0,0xE1,0xCC,0xCF,0x4B,0xE0,0x00,0x00,0x5C,0xE1,0x2F,0x00,0x00,0xAA, + 0x4B,0x0F,0x50,0xE3,0x2D,0x00,0x00,0xDA,0x28,0x00,0x00,0xEA,0x7D,0x0E,0x52,0xE3, + 0x08,0x00,0x00,0x9A,0xDC,0xC1,0x9D,0xE5,0x94,0xBC,0xCC,0xE0,0xCC,0xB2,0xA0,0xE1, + 0xCC,0xCF,0x4B,0xE0,0x00,0x00,0x5C,0xE1,0x24,0x00,0x00,0xAA,0xC8,0x00,0x50,0xE3, + 0x22,0x00,0x00,0xDA,0x1D,0x00,0x00,0xEA,0xFA,0x0F,0x52,0xE3,0x08,0x00,0x00,0x9A, + 0xD8,0xC1,0x9D,0xE5,0x94,0xBC,0xCC,0xE0,0xCC,0xB2,0xA0,0xE1,0xCC,0xCF,0x4B,0xE0, + 0x00,0x00,0x5C,0xE1,0x19,0x00,0x00,0xAA,0x64,0x00,0x50,0xE3,0x17,0x00,0x00,0xDA, + 0x12,0x00,0x00,0xEA,0x7D,0x0F,0x52,0xE3,0x08,0x00,0x00,0x9A,0xD4,0xC1,0x9D,0xE5, + 0x94,0xBC,0xCC,0xE0,0xCC,0xB2,0xA0,0xE1,0xCC,0xCF,0x4B,0xE0,0x00,0x00,0x5C,0xE1, + 0x0E,0x00,0x00,0xAA,0x64,0x00,0x50,0xE3,0x0C,0x00,0x00,0xDA,0x07,0x00,0x00,0xEA, + 0xD0,0xC1,0x9D,0xE5,0x94,0xBC,0xCC,0xE0,0xCC,0xB2,0xA0,0xE1,0xCC,0xCF,0x4B,0xE0, + 0x00,0x00,0x5C,0xE1,0x05,0x00,0x00,0xAA,0x64,0x00,0x50,0xE3,0x03,0x00,0x00,0xDA, + 0x01,0x50,0x85,0xE2,0x01,0x00,0x00,0xEA,0x00,0x00,0x55,0xE3,0x01,0x50,0x45,0x12, + 0x01,0x30,0x83,0xE2,0x0E,0x00,0x53,0xE3,0xBD,0xFF,0xFF,0x3A,0x01,0xE0,0x8E,0xE2, + 0x15,0x00,0x5E,0xE3,0xB9,0xFF,0xFF,0x3A,0x08,0x00,0x9D,0xE5,0xF0,0x11,0x9D,0xE5, + 0xB0,0x08,0xC1,0xE1,0x04,0x00,0x9D,0xE5,0xF0,0x11,0x9D,0xE5,0xB2,0x08,0xC1,0xE1, + 0xF0,0x01,0x9D,0xE5,0xB4,0x58,0xC0,0xE1,0xE6,0xF7,0xFF,0xEB,0x38,0x04,0x9F,0xE5, + 0x28,0x64,0x9F,0xE5,0x00,0x40,0x90,0xE5,0xB4,0x00,0xD4,0xE1,0xBE,0x00,0xC6,0xE1, + 0xB0,0x00,0xD4,0xE1,0x01,0x00,0x10,0xE3,0x08,0x00,0x00,0x0A,0xC4,0x01,0x9D,0xE5, + 0xBC,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x68,0x14,0x9F,0xE5,0x91,0x20,0x80,0xE0, + 0xB4,0x10,0xD4,0xE1,0x20,0x06,0xA0,0xE1,0x00,0x00,0x51,0xE1,0xBE,0x00,0xC6,0x81, + 0x54,0xC4,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0x57,0xEF,0x8D,0xE2,0x9C,0x30,0x8D,0xE2, + 0x08,0x20,0xD4,0xE5,0x00,0x11,0x9E,0xE7,0x92,0x01,0x01,0xE0,0x9C,0x51,0x82,0xE0, + 0xA2,0x54,0xA0,0xE1,0xB0,0x21,0xD4,0xE1,0x02,0x00,0x55,0xE1,0x9C,0x21,0x81,0x90, + 0x09,0x50,0xD4,0xE5,0xA1,0x24,0xA0,0x91,0x00,0x11,0x93,0xE7,0x91,0x05,0x05,0xE0, + 0x9C,0xB5,0x81,0xE0,0xA1,0xB4,0xA0,0xE1,0xB2,0x11,0xD4,0xE1,0x01,0x00,0x5B,0xE1, + 0x9C,0x55,0x81,0x90,0xA1,0x14,0xA0,0x91,0x01,0x10,0x42,0xE0,0xBC,0x20,0xD4,0xE1, + 0x92,0x01,0x01,0xE0,0x01,0x18,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x01,0x25,0x61,0xE0, + 0x02,0x21,0x82,0xE0,0x81,0x13,0x82,0xE0,0xC1,0x29,0xA0,0xE1,0xC1,0x1F,0x42,0xE0, + 0x80,0x20,0x86,0xE0,0x01,0x00,0x80,0xE2,0x15,0x00,0x50,0xE3,0xB8,0x18,0xC2,0xE1, + 0xDE,0xFF,0xFF,0x3A,0xC4,0xC3,0x9F,0xE5,0x00,0x50,0xA0,0xE3,0xFC,0x30,0x8D,0xE2, + 0x0A,0x10,0xD4,0xE5,0x05,0x01,0x93,0xE7,0x91,0x00,0x00,0xE0,0x9C,0x20,0x81,0xE0, + 0xA1,0x25,0xA0,0xE1,0xB4,0x11,0xD4,0xE1,0x01,0x00,0x52,0xE1,0x9C,0x10,0x80,0x90, + 0xA0,0x15,0xA0,0x91,0x0B,0x20,0xD4,0xE5,0x3C,0x00,0x8D,0xE2,0x05,0x01,0x90,0xE7, + 0x90,0x02,0x02,0xE0,0x9C,0xB2,0x80,0xE0,0xA0,0xB5,0xA0,0xE1,0xB6,0x01,0xD4,0xE1, + 0x00,0x00,0x5B,0xE1,0x9C,0x22,0x80,0x90,0xA0,0x05,0xA0,0x91,0x00,0x00,0x41,0xE0, + 0xBE,0x10,0xD4,0xE1,0x91,0x00,0x00,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x00,0x15,0x60,0xE0,0x01,0x11,0x81,0xE0,0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1, + 0xC0,0x0F,0x41,0xE0,0x85,0x10,0x86,0xE0,0x01,0x50,0x85,0xE2,0x0D,0x00,0x55,0xE3, + 0xB8,0x0B,0xC1,0xE1,0xDD,0xFF,0xFF,0x3A,0x0A,0x10,0xD4,0xE5,0x05,0x01,0x93,0xE7, + 0x64,0x20,0xA0,0xE3,0x91,0x00,0x00,0xE0,0x24,0x13,0x9F,0xE5,0x15,0x10,0xD1,0xE5, + 0x92,0x01,0x01,0xE0,0xCC,0x11,0x8D,0xE5,0x80,0xE7,0xFF,0xEB,0xB4,0x11,0xD4,0xE1, + 0x01,0x00,0x50,0xE1,0x00,0xB0,0xA0,0x91,0x01,0xB0,0xA0,0x81,0x0B,0x10,0xD4,0xE5, + 0x3C,0x00,0x8D,0xE2,0x05,0x01,0x90,0xE7,0x91,0x00,0x00,0xE0,0xCC,0x11,0x9D,0xE5, + 0x76,0xE7,0xFF,0xEB,0xB6,0x11,0xD4,0xE1,0x01,0x00,0x50,0xE1,0x01,0x00,0xA0,0x81, + 0xBE,0x10,0xD4,0xE1,0x00,0x00,0x4B,0xE0,0x00,0x00,0x58,0xE3,0x91,0x00,0x00,0xE0, + 0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x00,0x15,0x60,0xE0,0x01,0x11,0x81,0xE0, + 0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x85,0x10,0x86,0xE0, + 0xB8,0x0B,0xC1,0xE1,0x0C,0x00,0x00,0xDA,0x38,0x00,0x9D,0xE5,0x80,0x00,0x86,0xE0, + 0xB8,0x1B,0xD0,0xE1,0x34,0x00,0x9D,0xE5,0x80,0x00,0x86,0xE0,0xB8,0x08,0xD0,0xE1, + 0x01,0x00,0x80,0xE0,0x00,0x00,0x48,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xB0,0xE1, + 0xB8,0x0E,0xC6,0xE1,0x00,0x00,0xA0,0x43,0xB8,0x0E,0xC6,0x41,0x11,0x50,0xA0,0xE3, + 0x01,0x5C,0x85,0xE2,0x10,0x00,0x9D,0xE5,0x05,0x10,0xA0,0xE1,0x53,0xE7,0xFF,0xEB, + 0x00,0x40,0xA0,0xE1,0x14,0x00,0x9D,0xE5,0x05,0x10,0xA0,0xE1,0x4F,0xE7,0xFF,0xEB, + 0xB6,0x10,0xD6,0xE1,0x40,0x00,0x11,0xE3,0x0F,0x00,0x00,0x0A,0x89,0x00,0x57,0xE1, + 0x01,0x20,0xA0,0x83,0x2C,0x20,0x8D,0x85,0x4B,0x0F,0x54,0xE3,0x01,0x20,0xA0,0x83, + 0x28,0x20,0x8D,0x85,0x0C,0x20,0x9D,0xE5,0x28,0x00,0x52,0xE3,0x01,0x20,0xA0,0x83, + 0x24,0x20,0x8D,0x85,0x28,0x00,0x5A,0xE3,0x01,0x20,0xA0,0x33,0x20,0x20,0x8D,0x35, + 0x14,0x00,0x57,0xE3,0x12,0x00,0x00,0x9A,0x0F,0x00,0x00,0xEA,0x09,0x00,0x57,0xE1, + 0x08,0x00,0x57,0x83,0x01,0x20,0xA0,0x83,0x2C,0x20,0x8D,0x85,0x96,0x00,0x54,0xE3, + 0x01,0x20,0xA0,0x83,0x28,0x20,0x8D,0x85,0x0C,0x20,0x9D,0xE5,0x14,0x00,0x52,0xE3, + 0x01,0x20,0xA0,0x83,0x24,0x20,0x8D,0x85,0x14,0x00,0x5A,0xE3,0x01,0x20,0xA0,0x33, + 0x20,0x20,0x8D,0x35,0x0A,0x00,0x57,0xE3,0x01,0x00,0x00,0x9A,0x01,0x20,0xA0,0xE3, + 0x1C,0x20,0x8D,0xE5,0xF1,0x20,0xD6,0xE5,0x00,0x00,0x52,0xE3,0x03,0x00,0x00,0x1A, + 0xB0,0x21,0x9F,0xE5,0x00,0x20,0xD2,0xE5,0x01,0x00,0x52,0xE3,0x04,0x00,0x00,0x1A, + 0xF2,0x20,0xD6,0xE5,0xFA,0x00,0x52,0xE3,0x06,0x00,0x00,0x2A,0x01,0x20,0x82,0xE2, + 0x03,0x00,0x00,0xEA,0xF2,0x20,0xD6,0xE5,0x00,0x00,0x52,0xE3,0x01,0x00,0x00,0x0A, + 0x01,0x20,0x42,0xE2,0xF2,0x20,0xC6,0xE5,0x2C,0x20,0x9D,0xE5,0x28,0x30,0x9D,0xE5, + 0x10,0x00,0x11,0xE3,0x1C,0x10,0x9D,0x15,0x02,0x30,0x83,0xE1,0x24,0x20,0x9D,0xE5, + 0x20,0xC0,0x9D,0xE5,0x00,0x00,0x51,0x13,0x0C,0x20,0x02,0xE0,0x03,0x20,0x82,0xE1, + 0x00,0x10,0xA0,0x03,0x01,0x10,0xA0,0x13,0x02,0x10,0x81,0xE1,0x00,0x00,0x51,0xE3, + 0xF2,0x10,0xD6,0x15,0x05,0x00,0x51,0x13,0x08,0x00,0x00,0x9A,0x80,0x10,0x80,0xE0, + 0x34,0x01,0x9F,0xE5,0x90,0x21,0x81,0xE0,0xA1,0x01,0xA0,0xE1,0x04,0x00,0x50,0xE1, + 0x28,0x01,0x9F,0x35,0xB0,0x00,0xD0,0x31,0xAF,0x0F,0x50,0x33,0x02,0x00,0x00,0x3A, + 0x30,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x07,0x00,0x00,0x0A,0xEC,0x00,0x96,0xE5, + 0x01,0x00,0x80,0xE2,0xEC,0x00,0x86,0xE5,0xF0,0x00,0xD6,0xE5,0x00,0x00,0x50,0xE3, + 0x01,0x00,0x40,0x12,0xF0,0x00,0xC6,0x15,0x0D,0x00,0x00,0xEA,0xF0,0x00,0xD6,0xE5, + 0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2,0xF0,0x00,0xC6,0xE5,0xEC,0x11,0x9D,0xE5, + 0xB4,0x18,0xD1,0xE1,0x01,0x00,0x50,0xE1,0x05,0x00,0x00,0x1A,0x00,0x00,0xA0,0xE3, + 0xF0,0x00,0xC6,0xE5,0xEC,0x00,0x96,0xE5,0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0xC2, + 0xEC,0x00,0x86,0xC5,0xF2,0x00,0xD6,0xE5,0x0A,0x00,0x50,0xE3,0x7D,0xDF,0x8D,0x22, + 0xF0,0x4F,0xBD,0x28,0x1E,0xFF,0x2F,0x21,0xEC,0x00,0x96,0xE5,0x00,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0xC3,0xEC,0x00,0x86,0xC5,0x00,0x00,0xA0,0xE3,0xF0,0x00,0xC6,0xE5, + 0x7D,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x40,0x01,0x00,0x20, + 0x40,0x00,0x00,0x20,0x75,0x05,0x00,0x20,0x00,0x95,0x00,0x00,0x78,0x06,0x00,0x20, + 0xF5,0x05,0x00,0x20,0xC4,0x05,0x00,0x20,0xC8,0x05,0x00,0x20,0xCC,0x05,0x00,0x20, + 0xD0,0x05,0x00,0x20,0xD4,0x05,0x00,0x20,0xD8,0x05,0x00,0x20,0xDC,0x05,0x00,0x20, + 0xE0,0x05,0x00,0x20,0xE4,0x05,0x00,0x20,0xE8,0x05,0x00,0x20,0xEC,0x05,0x00,0x20, + 0x98,0x05,0x00,0x20,0xF0,0x05,0x00,0x20,0x00,0x00,0x00,0x10,0xD2,0x02,0x00,0x10, + 0x7C,0x05,0x00,0x20,0xA4,0x05,0x00,0x20,0xA8,0x05,0x00,0x20,0xA0,0x05,0x00,0x20, + 0x9C,0x05,0x00,0x20,0x1F,0x85,0xEB,0x51,0x2B,0x75,0xAA,0x23,0x91,0x73,0x9F,0x5D, + 0x2D,0x34,0xA9,0xF9,0x00,0x93,0x00,0x00,0x67,0x05,0x00,0x20,0xCD,0xCC,0xCC,0xCC, + 0x7A,0x05,0x00,0x20,0xF0,0xB5,0x00,0x27,0x3C,0x00,0x8B,0xB0,0xFF,0x48,0x04,0x97, + 0x00,0x68,0x80,0x79,0x02,0x90,0xFE,0x48,0x42,0x79,0x05,0x00,0xC0,0x35,0x00,0x92, + 0x82,0x79,0x80,0x30,0x01,0x7B,0xC0,0x38,0xAB,0x7A,0x00,0x7A,0xFD,0xF7,0xC3,0xFD, + 0x00,0x06,0x69,0x7A,0x00,0x0E,0xFD,0xF7,0xB3,0xFD,0x29,0x00,0x20,0x39,0x0A,0x7A, + 0x00,0x06,0xC0,0x39,0x09,0x79,0x00,0x0E,0xFD,0xF7,0xAE,0xFD,0x29,0x00,0x80,0x39, + 0x8A,0x7D,0x00,0x06,0xC0,0x39,0x89,0x7C,0x00,0x0E,0xFD,0xF7,0xA5,0xFD,0x00,0x06, + 0xEC,0x4E,0x00,0x0E,0x01,0x90,0x70,0x7C,0x00,0x28,0x03,0xD0,0x28,0x00,0x80,0x30, + 0x40,0x89,0x07,0xE0,0xE5,0x48,0xE8,0x49,0x00,0x68,0x49,0x8B,0x40,0x88,0x40,0x18, + 0x00,0x04,0x00,0x0C,0x03,0x90,0x00,0x20,0xF0,0x61,0x0F,0x20,0xB0,0x71,0x70,0x7B, + 0x00,0x28,0x06,0xD0,0xB0,0x6D,0x00,0x04,0x00,0x0C,0x01,0xF0,0xF7,0xFC,0x01,0xF0, + 0xE5,0xFC,0x01,0x25,0xB5,0x62,0xFB,0xF7,0x05,0xFD,0x00,0x20,0x30,0x71,0x30,0x64, + 0x70,0x64,0xC8,0x20,0xB0,0x63,0x00,0x20,0xF0,0x63,0xB0,0x82,0xB0,0x64,0xF0,0x64, + 0x30,0x65,0x68,0x03,0xFA,0xF7,0xC2,0xF9,0xF9,0xF7,0x80,0xFD,0xF9,0xF7,0x64,0xFD, + 0x00,0xF0,0xD0,0xFF,0x01,0xF0,0xE4,0xF9,0x00,0xF0,0x58,0xFF,0xCF,0x48,0x00,0x21, + 0x81,0x60,0xCF,0x48,0x05,0x21,0x0A,0x90,0xCE,0x48,0xC9,0x01,0x41,0x18,0x09,0x91, + 0xC9,0x49,0x80,0x30,0xA0,0x39,0x07,0xAA,0x03,0xC2,0x01,0x98,0xC0,0x1C,0x06,0x90, + 0xC9,0x48,0x05,0x90,0xDE,0xE1,0x70,0x7B,0x00,0x28,0x04,0xD0,0xB0,0x6D,0x00,0x04, + 0x00,0x0C,0x01,0xF0,0xBB,0xFC,0x80,0x20,0xFA,0xF7,0x98,0xF9,0x03,0x20,0x01,0xF0, + 0x2D,0xFB,0x01,0x20,0x40,0x03,0xFA,0xF7,0x91,0xF9,0xF9,0xF7,0x3B,0xFD,0xBC,0x48, + 0xC0,0x38,0xC0,0x88,0x01,0x06,0x04,0xD4,0xB1,0x6B,0x64,0x29,0x03,0xD2,0x42,0x06, + 0x01,0xD4,0x01,0x20,0x25,0xE0,0xFF,0x22,0xC3,0x32,0x91,0x42,0x0D,0xD9,0x40,0x06, + 0x05,0xD5,0xB2,0x48,0xB5,0x49,0x80,0x30,0x01,0x62,0x27,0x21,0x10,0xE0,0xAF,0x48, + 0xB2,0x49,0x80,0x30,0x01,0x62,0x26,0x21,0x0A,0xE0,0xFF,0x22,0x5F,0x32,0x91,0x42, + 0x0A,0xD9,0x40,0x06,0xF3,0xD4,0xA9,0x48,0xAC,0x49,0x80,0x30,0x01,0x62,0x25,0x21, + 0x41,0x62,0x05,0x21,0xC1,0x62,0x06,0xE0,0x40,0x06,0x01,0xD5,0x05,0x20,0x00,0xE0, + 0x03,0x20,0x01,0xF0,0x97,0xF9,0xFB,0xF7,0xFF,0xFE,0xA1,0x48,0x03,0x99,0x80,0x30, + 0x80,0x88,0x40,0x18,0x9E,0x49,0xC0,0x39,0x89,0x89,0x88,0x42,0x14,0xD9,0x9C,0x48, + 0xC0,0x30,0x40,0x7A,0x00,0x28,0x0F,0xD1,0x99,0x48,0xFF,0x21,0xC0,0x38,0xC0,0x88, + 0x19,0x31,0x08,0x42,0x08,0xD1,0x02,0x98,0x64,0x1C,0x84,0x42,0x05,0xDD,0xFB,0xF7, + 0xEB,0xFE,0x01,0x20,0x04,0x90,0x00,0xE0,0x00,0x24,0x00,0xF0,0x35,0xFF,0x90,0x48, + 0x09,0x99,0xC0,0x38,0xC0,0x88,0x49,0x88,0x40,0x06,0x00,0x28,0x0A,0x98,0xC0,0x6A, + 0x01,0xDA,0x49,0x00,0xFF,0xE7,0x88,0x42,0x00,0xDB,0x75,0x70,0x04,0x98,0x00,0x28, + 0x03,0xD0,0xF9,0xF7,0xC9,0xFC,0x00,0x20,0x04,0x90,0xFB,0xF7,0x8B,0xFE,0xFB,0xF7, + 0x99,0xFE,0x00,0x20,0x30,0x83,0xFD,0xF7,0x0F,0xF9,0x00,0x28,0x09,0xD0,0x00,0x20, + 0xF0,0x61,0x05,0x98,0xC0,0x8A,0xC8,0x28,0x25,0xD2,0x05,0x99,0x40,0x1C,0xC8,0x82, + 0x21,0xE0,0xF0,0x69,0x40,0x1C,0xF0,0x61,0xF0,0x69,0x01,0x28,0x04,0xD1,0x7A,0x49, + 0x00,0x20,0x20,0x31,0x88,0x74,0xF0,0x63,0xF0,0x69,0x05,0x28,0x04,0xD9,0xFB,0xF7, + 0x31,0xFC,0x05,0x99,0x00,0x20,0xC8,0x82,0xF1,0x69,0x01,0x98,0x40,0x1C,0x81,0x42, + 0x09,0xD1,0x00,0x20,0x30,0x71,0x30,0x64,0x70,0x64,0xB0,0x82,0xB0,0x64,0xF0,0x64, + 0x30,0x65,0xC8,0x20,0xB0,0x63,0xF1,0x6C,0xB0,0x6C,0x08,0x43,0x04,0xD0,0x30,0x6D, + 0xFA,0x28,0x01,0xD2,0x40,0x1C,0x30,0x65,0xF0,0x8A,0x69,0x49,0x88,0x42,0x01,0xD2, + 0x40,0x1C,0xF0,0x82,0x62,0x48,0x20,0x30,0x40,0x7C,0x00,0x28,0x70,0x79,0x03,0xD0, + 0xFA,0x28,0x05,0xD2,0x40,0x1C,0x02,0xE0,0x00,0x28,0x01,0xD0,0x40,0x1E,0x70,0x71, + 0xF1,0x78,0xB0,0x8A,0x00,0x29,0x05,0xD0,0x7D,0x22,0xD2,0x00,0x90,0x42,0x05,0xD2, + 0x40,0x1C,0x02,0xE0,0x00,0x28,0x01,0xD0,0x40,0x1E,0xB0,0x82,0xF0,0x8A,0x23,0x28, + 0x03,0xD2,0x72,0x79,0x19,0x2A,0x00,0xD9,0x75,0x70,0x00,0x29,0x0F,0xD0,0x71,0x79, + 0x4B,0x29,0x04,0xD9,0xAF,0x21,0x89,0x00,0x88,0x42,0x00,0xD2,0x75,0x70,0xB1,0x8A, + 0x4B,0x29,0x04,0xD9,0xAF,0x21,0x89,0x00,0x88,0x42,0x00,0xD2,0x75,0x70,0x30,0x6D, + 0x14,0x28,0x0B,0xD9,0x70,0x6B,0xFF,0x21,0x91,0x31,0x88,0x42,0x06,0xD2,0xB0,0x6B, + 0xFF,0x21,0x2D,0x31,0x88,0x42,0x01,0xD2,0x75,0x70,0x02,0xE0,0x70,0x78,0x00,0x28, + 0x10,0xD0,0xFB,0xF7,0xBF,0xFE,0xFB,0xF7,0xF5,0xFD,0x01,0x20,0x80,0x03,0xFA,0xF7, + 0x8D,0xF8,0xFB,0xF7,0x07,0xFE,0xFB,0xF7,0xB5,0xFE,0xF9,0xF7,0x0F,0xFD,0xFB,0xF7, + 0xCB,0xFB,0x28,0xE0,0x3B,0x48,0x41,0x68,0x09,0x07,0x0C,0xD5,0xC1,0x68,0x00,0x29, + 0x09,0xD0,0xC0,0x68,0x07,0x28,0x03,0xD1,0x01,0x21,0x49,0x07,0xC8,0x63,0x09,0xE0, + 0x00,0xF0,0x90,0xFA,0x06,0xE0,0x01,0xF0,0xEF,0xF8,0xB0,0x7C,0x80,0x28,0x01,0xD1, + 0xFB,0xF7,0xB8,0xFC,0xFB,0xF7,0x96,0xFE,0xFB,0xF7,0xCC,0xFD,0x01,0x20,0x80,0x03, + 0xFA,0xF7,0x64,0xF8,0xFB,0xF7,0xDE,0xFD,0x00,0xF0,0x6E,0xF9,0x07,0x00,0xFB,0xF7, + 0x89,0xFE,0xF9,0xF7,0xE3,0xFC,0x70,0x78,0x00,0x28,0x1B,0xD0,0x21,0x48,0x01,0x21, + 0xC0,0x7F,0x40,0x08,0x01,0xF0,0x28,0xF9,0x1A,0x48,0x00,0x21,0x41,0x70,0x1C,0x48, + 0x08,0x23,0xC0,0x38,0xC2,0x88,0x9A,0x43,0xC2,0x80,0xC2,0x88,0x5B,0x01,0x9A,0x43, + 0xC2,0x80,0xC2,0x88,0x10,0x23,0x9A,0x43,0xC2,0x80,0x08,0x98,0x41,0x74,0x0A,0x98, + 0xC1,0x62,0x7E,0xE0,0x07,0x98,0x00,0x7B,0x00,0x28,0x04,0xD0,0x70,0x7C,0x00,0x28, + 0x01,0xD1,0x00,0xF0,0xCB,0xF8,0x01,0x20,0x40,0x07,0xC0,0x6B,0x0B,0x28,0x70,0xD1, + 0x03,0x20,0x40,0x03,0xFA,0xF7,0x22,0xF8,0x03,0x20,0x01,0xF0,0x99,0xF9,0x70,0x65, + 0x03,0x20,0x01,0xF0,0xCB,0xF9,0x80,0x20,0x16,0xE0,0x00,0x00,0x78,0x06,0x00,0x20, + 0x60,0x94,0x00,0x00,0x64,0x05,0x00,0x20,0x40,0x05,0x00,0x20,0x00,0x90,0x00,0x40, + 0x00,0x01,0x00,0x20,0x00,0x93,0x00,0x00,0xE0,0x02,0x00,0x20,0x01,0x02,0x00,0x00, + 0x10,0x27,0x00,0x00,0x00,0x40,0x00,0x30,0xFA,0xF7,0x00,0xF8,0x00,0x2F,0x0C,0xD0, + 0x0A,0x20,0x78,0x43,0x71,0x6D,0x08,0x1A,0x70,0x65,0xFF,0x20,0x41,0x30,0x78,0x43, + 0x71,0x6D,0x40,0x18,0xFF,0x38,0x7D,0x38,0x70,0x65,0x26,0x48,0x00,0x78,0xB1,0x7A, + 0x08,0x43,0x2F,0xD1,0x30,0x6B,0x00,0x28,0x2C,0xD0,0x23,0x48,0xC0,0x88,0x40,0x06, + 0x70,0x6D,0x22,0x49,0x0E,0x1A,0xFF,0x20,0x91,0x30,0x86,0x42,0x22,0xDD,0xFF,0x20, + 0x01,0x30,0xF9,0xF7,0xE3,0xFF,0x02,0x20,0x01,0xF0,0x88,0xF9,0x0A,0x21,0x30,0x00, + 0xF9,0xF7,0xF4,0xF9,0x41,0x11,0x02,0x20,0x01,0xF0,0x68,0xF9,0x04,0x20,0xFA,0xF7, + 0x0D,0xF8,0x17,0x49,0x88,0x68,0x8A,0x15,0x10,0x43,0x88,0x60,0x15,0x48,0x05,0x61, + 0xFF,0x20,0xFA,0xF7,0x03,0xF8,0x02,0x20,0x01,0xF0,0x70,0xF9,0xFF,0x20,0x01,0x30, + 0xF9,0xF7,0xBC,0xFF,0x10,0x4E,0xF0,0x69,0x06,0x99,0x88,0x42,0x01,0xD2,0x1A,0xE6, + 0xFF,0xE7,0x0E,0x48,0x00,0x68,0x40,0x30,0x41,0x7D,0x08,0x98,0x41,0x74,0x0A,0x48, + 0x40,0x7B,0x00,0x28,0x01,0xD0,0x01,0xF0,0xC9,0xFA,0x0B,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x7D,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xFC,0x3A,0x00,0x00, + 0x00,0x40,0x00,0x40,0x40,0x00,0x00,0x40,0x64,0x05,0x00,0x20,0x78,0x06,0x00,0x20, + 0x01,0x20,0x80,0x07,0x01,0x6B,0x81,0x22,0xD2,0x01,0x11,0x43,0x01,0x63,0x70,0x47, + 0x00,0x20,0x01,0x21,0x89,0x07,0x48,0x60,0x70,0x47,0x01,0x22,0x92,0x07,0x91,0x68, + 0x01,0x43,0x91,0x60,0x70,0x47,0x00,0x00,0x01,0x20,0x80,0x07,0x01,0x6B,0x03,0x4A, + 0x89,0x09,0x52,0x7B,0x89,0x01,0x11,0x43,0x01,0x63,0x70,0x47,0x00,0x93,0x00,0x00, + 0x10,0xB5,0xF9,0xF7,0x31,0xFB,0x03,0x20,0x40,0x03,0xF9,0xF7,0x6F,0xFF,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x03,0x20,0x10,0xB5,0x40,0x03,0xF9,0xF7,0x6F,0xFF,0xF9,0xF7, + 0x2D,0xFB,0xFB,0xF7,0xDF,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xB5,0x00,0xF0, + 0x5F,0xFC,0x05,0x49,0x80,0x22,0xC9,0x88,0x11,0x40,0x81,0x42,0x01,0xD0,0xF9,0xF7, + 0x87,0xFE,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0x78,0x47,0xC0,0x46, + 0xF0,0x0F,0x2D,0xE9,0xAC,0x60,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0xBA,0x00,0xC6,0xE1, + 0xA4,0x00,0x9F,0xE5,0xA4,0xA0,0x9F,0xE5,0x14,0x80,0xD0,0xE5,0xA0,0xB0,0x9F,0xE5, + 0x26,0x20,0xA0,0xE3,0x01,0x2C,0x82,0xE2,0x14,0x10,0xA0,0xE3,0x01,0x90,0xA0,0xE3, + 0x0D,0x00,0xA0,0xE3,0x81,0x70,0x86,0xE0,0x01,0x20,0x42,0xE2,0x80,0x40,0x86,0xE0, + 0xF8,0x4B,0xD4,0xE1,0xF8,0x58,0xD7,0xE1,0x82,0x30,0x8B,0xE0,0xF0,0xC0,0xD3,0xE1, + 0x05,0x40,0x84,0xE0,0x02,0x00,0x18,0xE3,0x04,0xC0,0x4C,0xE0,0x04,0x00,0x00,0x0A, + 0x0D,0x00,0x50,0xE3,0x07,0x00,0x00,0x0A,0xC8,0x00,0x5C,0xE3,0x05,0x00,0x00,0xBA, + 0x03,0x00,0x00,0xEA,0x14,0x00,0x51,0xE3,0x02,0x00,0x00,0x0A,0xC8,0x00,0x5C,0xE3, + 0x00,0x00,0x00,0xBA,0x00,0x90,0xCA,0xE5,0x00,0x00,0x5C,0xE3,0x00,0xC0,0xA0,0xB3, + 0xB0,0xC0,0xC3,0xE1,0xBA,0x30,0xD6,0xE1,0x0C,0x00,0x53,0xE1,0xBA,0xC0,0xC6,0xB1, + 0x01,0x00,0x50,0xE2,0xE3,0xFF,0xFF,0x5A,0x01,0x10,0x51,0xE2,0xDF,0xFF,0xFF,0x5A, + 0xF0,0x0F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00, + 0xF5,0x05,0x00,0x20,0x00,0x00,0x00,0x10,0xF8,0xB5,0x7C,0x4C,0x00,0x26,0x00,0x96, + 0xE0,0x68,0x07,0x28,0x03,0xD0,0xE0,0x03,0x05,0x68,0x00,0x2D,0x03,0xD1,0x00,0x20, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0xFF,0x20,0x01,0x30,0xF9,0xF7,0xDF,0xFE,0x02,0x20, + 0x01,0xF0,0x84,0xF8,0x00,0xF0,0xF6,0xF8,0x71,0x4F,0x05,0x2D,0xB8,0x7B,0x50,0xD8, + 0x00,0x28,0x50,0xD1,0x01,0x20,0x41,0x07,0x04,0xE0,0x82,0x00,0x52,0x18,0x12,0x68, + 0xE2,0x61,0x40,0x1C,0xA8,0x42,0xF8,0xD9,0x6A,0x48,0x20,0x60,0x21,0x20,0x80,0x02, + 0x20,0x61,0x03,0x20,0xFC,0xF7,0x94,0xFE,0x67,0x48,0x0A,0x21,0x00,0x6B,0xF9,0xF7, + 0x05,0xFA,0x41,0x09,0x02,0x20,0x01,0xF0,0x49,0xF8,0x64,0x4D,0xE8,0x68,0x40,0x08, + 0x40,0x00,0xE8,0x60,0x02,0x20,0x01,0xF0,0x49,0xF8,0x04,0x20,0xF9,0xF7,0xE6,0xFE, + 0x5F,0x48,0x01,0x26,0x06,0x61,0x03,0x21,0x09,0x07,0xC8,0x68,0x08,0x22,0x10,0x43, + 0xC8,0x60,0x02,0x20,0x01,0xF0,0x14,0xF8,0x00,0x90,0x60,0x68,0x60,0x60,0x60,0x69, + 0x60,0x61,0xFD,0xF7,0x7B,0xF8,0x02,0x20,0x01,0xF0,0x40,0xF8,0x03,0x20,0xFC,0xF7, + 0x57,0xFE,0xE8,0x68,0x30,0x43,0xE8,0x60,0x52,0x48,0x00,0x78,0x00,0x28,0x07,0xD0, + 0x78,0x7B,0x00,0x28,0xFB,0xD0,0xB8,0x6D,0x00,0x04,0x00,0x0C,0x01,0xF0,0xA6,0xF9, + 0x86,0xE0,0x00,0x28,0x03,0xD0,0x6D,0x1C,0xFC,0xF7,0x5E,0xFC,0x06,0x00,0x4A,0x48, + 0x01,0x68,0x42,0x48,0xC1,0x61,0x44,0x48,0x02,0x24,0x00,0x6B,0x0A,0x21,0xF9,0xF7, + 0xBD,0xF9,0x01,0x00,0x02,0x20,0x01,0xF0,0x01,0xF8,0x02,0x20,0x01,0xF0,0x06,0xF8, + 0x3E,0x48,0xC1,0x68,0x49,0x08,0x49,0x00,0xC1,0x60,0x39,0x48,0x37,0x4F,0x80,0x7B, + 0x21,0x07,0x1D,0xE0,0x7A,0x69,0x52,0x06,0x0A,0xD4,0x00,0x28,0x01,0xD0,0xAC,0x42, + 0x04,0xD2,0xA2,0x00,0x52,0x18,0x12,0x68,0xFA,0x61,0x00,0xE0,0xFE,0x61,0x64,0x1C, + 0x34,0x4A,0x12,0x78,0x00,0x2A,0x0B,0xD0,0xFC,0xF7,0x88,0xFD,0x2C,0x48,0x41,0x7B, + 0x00,0x29,0x07,0xD0,0x80,0x6D,0x00,0x04,0x00,0x0C,0x01,0xF0,0x67,0xF9,0x01,0xE0, + 0xAC,0x42,0xDF,0xD9,0x02,0x20,0x00,0xF0,0xE9,0xFF,0x2A,0x4D,0x28,0x78,0x00,0x28, + 0x37,0xD1,0xFC,0xF7,0x8D,0xFC,0x00,0x28,0x33,0xD0,0x23,0x48,0x0A,0x21,0x00,0x6B, + 0xF9,0xF7,0x7C,0xF9,0x01,0x00,0x02,0x20,0x00,0xF0,0xC0,0xFF,0x02,0x20,0x00,0xF0, + 0xC5,0xFF,0x1B,0x4C,0x0C,0xE0,0x28,0x78,0x00,0x28,0x09,0xD0,0xFC,0xF7,0x5E,0xFD, + 0x60,0x7B,0x00,0x28,0x04,0xD0,0xA0,0x6D,0x00,0x04,0x00,0x0C,0x01,0xF0,0x3E,0xF9, + 0xFC,0xF7,0x6E,0xFC,0x00,0x28,0xEE,0xD1,0x78,0x68,0x78,0x60,0x0B,0xE0,0x28,0x78, + 0x00,0x28,0x08,0xD0,0x60,0x7B,0x00,0x28,0x08,0xD0,0xA0,0x6D,0x00,0x04,0x00,0x0C, + 0x01,0xF0,0x2C,0xF9,0x02,0xE0,0x78,0x68,0xC0,0x03,0xF0,0xD5,0x02,0x20,0x00,0xF0, + 0xAD,0xFF,0x00,0xF0,0x1F,0xF8,0x09,0x49,0xC8,0x68,0x01,0x22,0x10,0x43,0xC8,0x60, + 0xFF,0x20,0x01,0x30,0xF9,0xF7,0xF2,0xFD,0x00,0x98,0x11,0xE7,0x00,0x40,0x00,0x30, + 0x64,0x05,0x00,0x20,0xD0,0x10,0x05,0x00,0x00,0x93,0x00,0x00,0x00,0x20,0x00,0x40, + 0x40,0x00,0x00,0x40,0x7D,0x06,0x00,0x20,0x04,0x00,0x00,0x20,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x05,0x48,0x01,0x21,0x00,0xB5,0xC9,0x02,0x01,0x62,0x00,0x21, + 0x01,0x62,0xFC,0xF7,0xBB,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x40,0x18,0x70,0x47,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x40,0x18,0x80,0x18,0x70,0x47,0x00,0x00,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x10,0xB4,0x40,0x18,0x01,0x9C,0x80,0x18,0xC0,0x18,0x00,0x19, + 0x10,0xBC,0x70,0x47,0xF8,0xB5,0x00,0x21,0x01,0x23,0x5B,0x07,0x18,0x68,0x13,0x4A, + 0x90,0x73,0x90,0x7B,0x01,0x28,0x01,0xD1,0x01,0x21,0x0D,0xE0,0x01,0x28,0x00,0xD9, + 0x02,0x21,0x00,0x28,0x08,0xD1,0x0D,0x48,0x20,0x22,0x00,0x21,0x10,0x30,0xF9,0xF7, + 0x11,0xF9,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x13,0x25,0x08,0x4C,0xAD,0x01, + 0x08,0xE0,0x46,0x18,0xB6,0x00,0xF6,0x18,0x36,0x68,0x87,0x00,0x3F,0x19,0x7F,0x19, + 0x40,0x1C,0x3E,0x63,0x96,0x7B,0x86,0x42,0xF3,0xD8,0xEA,0xE7,0x20,0x05,0x00,0x20, + 0x40,0x00,0x00,0x20,0x70,0xB5,0x1F,0x49,0x1D,0x4C,0x0D,0x00,0x20,0x7A,0xAB,0x22, + 0xFF,0x35,0x92,0x00,0xE7,0x35,0x8E,0x18,0x00,0x28,0x0F,0xD0,0xFF,0x31,0x5A,0x22, + 0x8D,0x31,0x28,0x00,0xF9,0xF7,0x16,0xF9,0x17,0x49,0x09,0x22,0x30,0x00,0xF9,0xF7, + 0x11,0xF9,0x20,0x7A,0x60,0x72,0x70,0xBC,0x08,0xBC,0x18,0x47,0x09,0x22,0x00,0x21, + 0x30,0x00,0xF9,0xF7,0xD7,0xF8,0x5A,0x22,0x00,0x21,0x28,0x00,0xF9,0xF7,0xD2,0xF8, + 0x0D,0x48,0x5A,0x22,0x00,0x21,0x63,0x38,0xF9,0xF7,0xCC,0xF8,0x0A,0x48,0x09,0x22, + 0x00,0x21,0x09,0x38,0xF9,0xF7,0xC6,0xF8,0x00,0x20,0x06,0x49,0x60,0x72,0xA0,0x72, + 0xCA,0x88,0x23,0x23,0x9A,0x43,0xCA,0x80,0x04,0x49,0x88,0x76,0xDB,0xE7,0x00,0x00, + 0xC0,0x01,0x00,0x20,0x40,0x00,0x00,0x20,0xE3,0x02,0x00,0x20,0xA0,0x04,0x00,0x20, + 0xF3,0xB5,0x90,0x48,0x91,0xB0,0x40,0x7E,0x02,0x90,0x8F,0x48,0x00,0x78,0x00,0x28, + 0x8E,0x48,0x18,0xD0,0x0B,0x21,0x89,0x01,0x40,0x18,0x01,0x8A,0x8C,0x4A,0x1A,0x26, + 0x07,0x91,0x41,0x8A,0x1C,0x27,0x06,0x91,0x81,0x8A,0x05,0x91,0x1E,0x21,0x41,0x5E, + 0x04,0x91,0x00,0x21,0x51,0x5E,0x03,0x91,0x16,0x21,0x18,0x22,0x86,0x5F,0xC7,0x5F, + 0x41,0x5E,0x82,0x5E,0x16,0xE0,0x60,0x30,0xC1,0x8A,0x04,0x22,0x00,0x26,0x07,0x91, + 0x01,0x8B,0x02,0x27,0x06,0x91,0x41,0x8B,0x05,0x91,0x7A,0x49,0x20,0x39,0x8A,0x5E, + 0x04,0x92,0x06,0x22,0x8A,0x5E,0x03,0x92,0x8E,0x5F,0xCF,0x5F,0x1C,0x21,0x1E,0x22, + 0x41,0x5E,0x82,0x5E,0x11,0x98,0x75,0x4C,0x00,0x68,0x41,0x18,0x11,0x98,0x01,0x60, + 0x12,0x98,0x00,0x68,0x81,0x18,0x12,0x98,0x01,0x60,0x60,0x8C,0x00,0x21,0x40,0x1E, + 0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0,0x20,0x8C,0x0A,0x00,0x40,0x1E,0x03,0x04, + 0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x01,0xF0,0x2C,0xF8,0x20,0x8C,0x64,0x21,0x0A,0x90, + 0x60,0x8C,0x09,0x90,0x0A,0x98,0x44,0x08,0x09,0x98,0x45,0x08,0x06,0x98,0x64,0x38, + 0x00,0x28,0x01,0xDC,0x06,0x98,0x08,0x1A,0x0F,0x90,0x05,0x98,0x64,0x38,0x00,0x28, + 0x01,0xDC,0x05,0x98,0x08,0x1A,0x0E,0x90,0x15,0x20,0x08,0x90,0x5D,0x48,0x0E,0x21, + 0x80,0x7F,0xC2,0x07,0x05,0xD0,0x80,0x07,0x01,0xD5,0x0D,0x21,0x01,0xE0,0x14,0x20, + 0x08,0x90,0x20,0x00,0xF8,0xF7,0xE2,0xFE,0x0A,0x99,0x08,0x1A,0x40,0x1E,0x0C,0x90, + 0x08,0x99,0x28,0x00,0xF8,0xF7,0xDA,0xFE,0x09,0x99,0x08,0x1A,0x40,0x1E,0x31,0x1E, + 0x0B,0x90,0x00,0xDD,0xA1,0x1B,0x00,0x2F,0x0D,0x97,0x01,0xDD,0xE8,0x1B,0x0D,0x90, + 0x11,0x98,0x00,0x68,0xA0,0x42,0x10,0x90,0x01,0xDB,0x00,0x1B,0x01,0xE0,0x00,0x1B, + 0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x22,0x06,0x00,0x56,0x43,0x37,0x00, + 0x88,0x42,0x0D,0xDD,0x42,0x1A,0x0F,0x98,0x50,0x43,0x86,0x19,0x10,0x00,0x50,0x43, + 0x0F,0x9A,0x50,0x43,0x0C,0x9A,0x12,0x1B,0x51,0x1A,0xF8,0xF7,0xAF,0xFE,0xC7,0x19, + 0x04,0x98,0x00,0x28,0x01,0xD1,0x30,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x38,0x00, + 0x01,0xE0,0x70,0x00,0xC0,0x1B,0x64,0x21,0xF8,0xF7,0xA0,0xFE,0x07,0x99,0xC9,0x07, + 0x0A,0xD0,0x10,0x99,0xA1,0x42,0x03,0xDB,0x21,0x18,0x11,0x98,0x01,0x60,0x03,0xE0, + 0x11,0x99,0x20,0x1A,0x40,0x1E,0x08,0x60,0x12,0x98,0x07,0x68,0xAF,0x42,0x01,0xDB, + 0x78,0x1B,0x01,0xE0,0x78,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x21, + 0x04,0x00,0x4C,0x43,0x0D,0x99,0x26,0x00,0x88,0x42,0x0E,0xDD,0x41,0x1A,0x0E,0x98, + 0x0D,0x9A,0x48,0x43,0x04,0x19,0x08,0x00,0x48,0x43,0x0E,0x99,0x48,0x43,0x0B,0x99, + 0x49,0x1B,0x89,0x1A,0xF8,0xF7,0x72,0xFE,0x86,0x19,0x03,0x98,0x00,0x28,0x01,0xD1, + 0x20,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x30,0x00,0x01,0xE0,0x60,0x00,0x80,0x1B, + 0x64,0x21,0xF8,0xF7,0x63,0xFE,0x07,0x99,0x89,0x07,0x09,0xD5,0xAF,0x42,0x03,0xDB, + 0x29,0x18,0x12,0x98,0x01,0x60,0x03,0xE0,0x12,0x99,0x28,0x1A,0x40,0x1E,0x08,0x60, + 0x0E,0x48,0x02,0x99,0x42,0x8C,0x6B,0x46,0x51,0x1A,0x49,0x1E,0x0A,0x04,0x02,0x99, + 0x12,0x0C,0x06,0xC3,0x01,0x8C,0x02,0x98,0x02,0x9A,0x08,0x1A,0x40,0x1E,0x03,0x04, + 0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0,0x64,0xFF,0x13,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xA0,0x93,0x00,0x00,0x75,0x05,0x00,0x20,0x00,0x93,0x00,0x00, + 0xE0,0x95,0x00,0x00,0xA0,0x04,0x00,0x20,0xFF,0xB5,0x00,0x68,0x8E,0x46,0x84,0x46, + 0x70,0x46,0x1B,0x4B,0x1B,0x49,0x05,0x68,0x00,0x22,0x19,0x4E,0x54,0x00,0x24,0x3E, + 0x34,0x5B,0x66,0x46,0x00,0x20,0x34,0x1B,0x26,0x00,0x74,0x43,0x46,0x00,0x9E,0x5B, + 0xAE,0x1B,0x37,0x00,0x77,0x43,0xE6,0x19,0x8E,0x42,0x18,0xD2,0x51,0x00,0x10,0x4A, + 0x40,0x00,0x24,0x3A,0x52,0x5A,0x02,0x99,0x0A,0x60,0x0D,0x49,0x03,0x9A,0x16,0x39, + 0x0C,0x5A,0x14,0x60,0x09,0x5A,0x72,0x46,0x12,0x68,0x18,0x5A,0x51,0x18,0x09,0x1A, + 0x70,0x46,0x01,0x60,0x01,0x20,0x04,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x40,0x1C, + 0x0B,0x28,0xDB,0xD3,0x52,0x1C,0x07,0x2A,0xCF,0xD3,0x00,0x20,0xC0,0x43,0xF2,0xE7, + 0x1C,0x89,0x00,0x00,0x11,0x02,0x00,0x00,0xFE,0xB5,0x67,0x4D,0x65,0x48,0x00,0x26, + 0x29,0x00,0xFF,0x31,0x00,0x96,0x42,0x79,0x81,0x31,0x08,0x7A,0x33,0x00,0x00,0x2A, + 0x28,0xD1,0x00,0x28,0x26,0xD0,0x01,0x24,0x0A,0x20,0x60,0x43,0x47,0x19,0x38,0x00, + 0xFF,0x30,0x93,0x30,0xFC,0xF7,0xAA,0xFC,0x00,0x28,0x17,0xD0,0x5B,0x48,0x81,0x7B, + 0x00,0x98,0x40,0x1C,0x81,0x42,0x14,0xD3,0xA9,0x19,0x27,0x22,0x00,0x90,0xFF,0x20, + 0x52,0x01,0x8D,0x30,0x89,0x18,0xC0,0x5D,0x3A,0x00,0xFF,0x32,0x48,0x71,0x76,0x1C, + 0x8D,0x32,0x03,0x20,0x01,0x23,0x69,0x46,0x00,0xF0,0x0E,0xFA,0x64,0x1C,0x09,0x2C, + 0xDA,0xDB,0x91,0xE0,0x49,0x7A,0x00,0x29,0x01,0xD1,0x00,0x28,0x75,0xD0,0x0B,0x20, + 0x80,0x01,0x00,0x24,0x2E,0x18,0x27,0x27,0x7F,0x01,0x28,0x19,0xC0,0x19,0x40,0x79, + 0x00,0x28,0x3C,0xD0,0x29,0x18,0x15,0x20,0x40,0x01,0x08,0x18,0xC1,0x78,0x00,0x29, + 0x02,0xD0,0xB2,0x7C,0x00,0x2A,0x11,0xD0,0x00,0x99,0x00,0x7B,0x49,0x1C,0x00,0x91, + 0x0A,0x21,0x48,0x43,0x42,0x19,0xFF,0x32,0xE7,0x32,0x02,0x20,0x03,0x23,0x69,0x46, + 0x00,0xF0,0xE2,0xF9,0x20,0x00,0x14,0x2C,0x1E,0xD0,0x1A,0xE0,0x0A,0x20,0x41,0x43, + 0x48,0x19,0x02,0x90,0xFF,0x30,0x93,0x30,0xFC,0xF7,0x58,0xFC,0x00,0x28,0x13,0xD0, + 0x00,0x98,0x02,0x9A,0x40,0x1C,0xFF,0x32,0x00,0x90,0x8D,0x32,0x03,0x20,0x02,0x23, + 0x69,0x46,0x00,0xF0,0xC9,0xF9,0x07,0xE0,0x29,0x18,0xC9,0x19,0x8A,0x79,0x40,0x1C, + 0x4A,0x71,0x08,0x28,0xF8,0xDB,0x64,0x1E,0x64,0x1C,0x08,0x2C,0xBD,0xDB,0x01,0x24, + 0x25,0x49,0x15,0x20,0x0A,0x19,0x40,0x01,0x10,0x18,0xC0,0x78,0x00,0x22,0x01,0x92, + 0x00,0x28,0x32,0xD0,0xB2,0x7C,0x00,0x2A,0x2F,0xD1,0x0A,0x22,0x50,0x43,0x45,0x18, + 0x28,0x00,0xFF,0x30,0x93,0x30,0xFC,0xF7,0x29,0xFC,0x00,0x28,0x25,0xD0,0x1B,0x48, + 0x00,0x9B,0x80,0x7B,0x5B,0x1C,0x98,0x42,0x26,0xD3,0x17,0x4A,0x00,0x20,0x11,0x18, + 0xC9,0x19,0x49,0x79,0xA1,0x42,0x0C,0xD0,0x00,0x29,0x07,0xD1,0xFF,0x21,0x8D,0x31, + 0x49,0x5D,0x10,0x18,0xC0,0x19,0x41,0x71,0x06,0xE0,0x12,0xE0,0x40,0x1C,0x08,0x28, + 0xED,0xDB,0x01,0x98,0x00,0x28,0x08,0xD0,0x2A,0x00,0xFF,0x32,0x00,0x93,0x8D,0x32, + 0x03,0x20,0x01,0x23,0x69,0x46,0x00,0xF0,0x7F,0xF9,0x64,0x1C,0x09,0x2C,0xBF,0xDB, + 0x02,0xE0,0x01,0x20,0x40,0x07,0x43,0x60,0x00,0x98,0x00,0xF0,0xC3,0xFC,0xFE,0xBC, + 0x08,0xBC,0x18,0x47,0x20,0x05,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00, + 0xFC,0xB5,0x4E,0x48,0x36,0x25,0x45,0x5F,0x15,0x20,0x84,0x46,0x4B,0x48,0x4C,0x4F, + 0x80,0x30,0x82,0x7D,0x86,0x46,0x4B,0x48,0x00,0x26,0x81,0x7F,0x0E,0x24,0xC8,0x07, + 0x05,0xD0,0x88,0x07,0x01,0xD5,0x0D,0x24,0x01,0xE0,0x14,0x20,0x84,0x46,0x00,0x21, + 0x27,0xE0,0x00,0x20,0x22,0xE0,0x91,0x42,0x05,0xD2,0x90,0x42,0x1D,0xD3,0xA3,0x1A, + 0x5B,0x1E,0x83,0x42,0x19,0xD3,0x63,0x46,0x9B,0x1A,0x5B,0x1E,0x8B,0x42,0x01,0xD2, + 0x90,0x42,0x12,0xD3,0x8B,0x42,0x03,0xD2,0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x0C,0xD3, + 0x0B,0x00,0x63,0x43,0x1B,0x18,0x9B,0x00,0xFB,0x58,0x1B,0x01,0x1B,0x0D,0xB3,0x42, + 0x00,0xDD,0x1E,0x00,0xAB,0x42,0x00,0xDA,0x1D,0x00,0x40,0x1C,0xA0,0x42,0xDA,0xD3, + 0x49,0x1C,0x61,0x45,0xD5,0xD3,0x1E,0x24,0x70,0x46,0x04,0x5F,0x2B,0x4B,0x2E,0x48, + 0xA0,0x33,0xC0,0x88,0x06,0x22,0x9A,0x5E,0x40,0x06,0x07,0xD5,0x70,0x46,0x80,0x8A, + 0x01,0x19,0x0C,0x04,0x10,0x1A,0x24,0x14,0x02,0x04,0x12,0x14,0x25,0x48,0xA0,0x30, + 0x01,0x69,0xA6,0x42,0x05,0xDD,0x74,0x46,0x64,0x8B,0xA1,0x42,0x05,0xDA,0x49,0x1C, + 0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E,0x01,0x61,0x1E,0x49,0xA0,0x31,0x49,0x69, + 0x95,0x42,0x04,0xDA,0x5A,0x88,0x91,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29, + 0x01,0xDD,0x49,0x1E,0x41,0x61,0x74,0x46,0xA4,0x8B,0x05,0x69,0x01,0x22,0x11,0x00, + 0xA5,0x42,0x00,0xDC,0x00,0x21,0x9B,0x88,0x40,0x69,0x98,0x42,0x00,0xDC,0x00,0x22, + 0x00,0x20,0x6B,0x46,0x18,0x70,0x59,0x70,0x00,0x29,0x9A,0x70,0x02,0xD0,0x00,0x2A, + 0x00,0xD0,0x01,0x20,0x6B,0x46,0x11,0x43,0xD8,0x70,0x01,0xD0,0x01,0x20,0x00,0xE0, + 0x00,0x20,0x6B,0x46,0x18,0x71,0x70,0x46,0x00,0x7B,0x69,0x46,0x08,0x5C,0x00,0x28, + 0x00,0xD0,0x80,0x20,0xFC,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x93,0x00,0x00, + 0xD4,0x02,0x10,0x40,0xA0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0xF8,0xB5,0x25,0x48, + 0x25,0x4C,0xC0,0x88,0x01,0x23,0x25,0x4D,0x41,0x06,0x09,0x20,0x80,0x01,0x24,0x4F, + 0x24,0x4E,0x5B,0x05,0x20,0x18,0x00,0x29,0x10,0xDA,0x81,0x69,0x69,0x61,0xC1,0x69, + 0xA9,0x61,0x41,0x6A,0x99,0x43,0xE9,0x61,0x81,0x6A,0x29,0x62,0x01,0x6A,0xE9,0x60, + 0x80,0x6B,0x28,0x61,0x1C,0x48,0xA8,0x62,0xE0,0x6A,0x10,0xE0,0x1B,0x49,0x4A,0x69, + 0x6A,0x61,0x8A,0x69,0xAA,0x61,0x0A,0x6A,0x9A,0x43,0xEA,0x61,0x4A,0x6A,0x2A,0x62, + 0xC9,0x69,0xE9,0x60,0x40,0x6B,0x28,0x61,0x15,0x48,0xA8,0x62,0xA0,0x6A,0xFF,0x21, + 0x41,0x31,0x48,0x43,0x39,0x00,0xF8,0xF7,0x71,0xFD,0x30,0x63,0x70,0x7C,0x00,0x28, + 0x04,0xD0,0x10,0x48,0xE8,0x60,0x01,0x20,0x00,0x05,0x28,0x61,0x60,0x6A,0xFF,0x21, + 0x41,0x31,0x48,0x43,0x39,0x00,0xF8,0xF7,0x61,0xFD,0xF0,0x62,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00,0xC0,0x90,0x00,0x40, + 0x10,0x27,0x00,0x00,0x64,0x05,0x00,0x20,0x00,0x00,0x08,0x84,0x80,0x94,0x00,0x00, + 0x00,0x00,0x04,0x82,0x41,0x20,0x01,0x00,0x07,0x48,0x41,0x7A,0x07,0x48,0x02,0x29, + 0x01,0xD9,0x00,0x6A,0x04,0xE0,0x02,0x29,0x01,0xD1,0xC0,0x69,0x00,0xE0,0x80,0x69, + 0x03,0x49,0x48,0x62,0x70,0x47,0x00,0x00,0xC0,0x01,0x00,0x20,0xC0,0x94,0x00,0x00, + 0xC0,0x90,0x00,0x40,0x0F,0x48,0x10,0xB4,0xC0,0x88,0x0F,0x4A,0x01,0x23,0x44,0x06, + 0x0E,0x48,0x00,0x21,0x1B,0x04,0x00,0x2C,0x02,0x61,0x05,0xDA,0x0C,0x4A,0x42,0x61, + 0x81,0x61,0xC1,0x61,0x03,0x62,0x07,0xE0,0x09,0x4A,0x64,0x3A,0x42,0x61,0x81,0x61, + 0xC1,0x61,0x03,0x62,0x06,0x4A,0xC8,0x3A,0x42,0x62,0x81,0x62,0xC1,0x62,0x10,0xBC, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x00,0x01,0x03,0x40,0xA1,0x00,0x40, + 0x2C,0x01,0x01,0x00,0x10,0x49,0x10,0xB4,0x0A,0x7D,0x10,0x48,0x82,0x77,0x4A,0x7D, + 0xC2,0x77,0x82,0x7F,0x0E,0x48,0xD3,0x07,0x0A,0xD0,0x93,0x07,0x0D,0x4A,0x03,0xD5, + 0x0D,0x23,0x03,0x73,0x00,0x23,0x02,0xE0,0x14,0x23,0x03,0x73,0x01,0x23,0x53,0x72, + 0x8A,0x7D,0x42,0x73,0xCA,0x7D,0x82,0x73,0x0A,0x7E,0xC2,0x73,0x4A,0x7E,0x02,0x74, + 0x89,0x7E,0x41,0x74,0x10,0xBC,0x70,0x47,0x00,0x93,0x00,0x00,0xA0,0x04,0x00,0x20, + 0xE0,0x04,0x00,0x20,0x64,0x05,0x00,0x20,0xFF,0xB5,0x05,0x00,0x14,0x00,0x19,0x00, + 0x10,0x00,0x81,0xB0,0xF9,0xF7,0xA4,0xFF,0x00,0x28,0x08,0xD0,0x02,0x98,0x02,0x99, + 0x00,0x68,0x40,0x1E,0x08,0x60,0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x29,0x48, + 0x80,0x7F,0xC0,0x07,0x22,0xD0,0xE0,0x79,0x05,0x28,0x1D,0xD0,0x09,0x28,0x1D,0xD1, + 0x25,0x4F,0x6D,0x08,0x3E,0x00,0x6D,0x00,0x01,0x20,0xFF,0x36,0x22,0x78,0x81,0x36, + 0x0E,0xE0,0x0A,0x21,0x41,0x43,0xC9,0x19,0xFF,0x31,0xE1,0x31,0x8B,0x79,0x9A,0x42, + 0x05,0xD1,0x0B,0x89,0x63,0x80,0xCB,0x79,0x63,0x70,0x49,0x89,0xA1,0x80,0x40,0x1C, + 0x71,0x7A,0x81,0x42,0xED,0xDA,0x01,0xE0,0x01,0x20,0x05,0x43,0x0F,0x21,0xA8,0x07, + 0x89,0x06,0x88,0x43,0x21,0x78,0x62,0x78,0x09,0x07,0x89,0x08,0x08,0x43,0x13,0x49, + 0x92,0x06,0x08,0x40,0x61,0x88,0x12,0x0C,0x89,0x05,0x89,0x09,0x08,0x43,0x3F,0x21, + 0x89,0x02,0x88,0x43,0x10,0x43,0x02,0x04,0x92,0x0E,0x0F,0x2A,0x03,0xD9,0x88,0x43, + 0x0F,0x21,0x89,0x02,0x40,0x18,0xA1,0x88,0x80,0x0A,0x80,0x02,0x89,0x05,0x89,0x0D, + 0x08,0x43,0x02,0x99,0x01,0x22,0x09,0x68,0x52,0x07,0x89,0x00,0x89,0x18,0x48,0x60, + 0xA9,0xE7,0x00,0x00,0xA0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0xFF,0x00,0xFC, + 0x10,0x49,0x10,0xB5,0x88,0x7C,0x00,0x28,0x14,0xD0,0x00,0x09,0x00,0x01,0x00,0x23, + 0x01,0x22,0x40,0x28,0x0B,0xD0,0x80,0x28,0x0C,0xD1,0x8A,0x73,0xCA,0x73,0x0A,0x48, + 0x0A,0x74,0x0A,0x73,0x00,0x78,0x00,0x28,0x07,0xD1,0x4B,0x74,0x06,0xE0,0xCB,0x72, + 0x0A,0x73,0x4B,0x73,0x10,0xBC,0x08,0xBC,0x18,0x47,0x4A,0x74,0x00,0x20,0x00,0xF0, + 0xC7,0xF9,0xF7,0xE7,0x64,0x05,0x00,0x20,0xA0,0x95,0x00,0x00,0xF0,0x41,0x2D,0xE9, + 0x00,0xC0,0xA0,0xE1,0x1C,0x50,0x9D,0xE5,0x18,0x60,0x9D,0xE5,0x01,0x00,0x5C,0xE1, + 0x01,0x40,0xA0,0xE1,0x02,0x00,0xA0,0xE1,0x03,0x70,0xA0,0xE1,0x06,0x00,0x00,0x3A, + 0x04,0x10,0xA0,0xE1,0x85,0xE1,0xFF,0xEB,0xB0,0x00,0xC6,0xE1,0x04,0x10,0xA0,0xE1, + 0x07,0x00,0xA0,0xE1,0x81,0xE1,0xFF,0xEB,0xB0,0x00,0xC5,0xE1,0xF0,0x41,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0xF0,0x47,0x2D,0xE9,0x00,0x40,0xA0,0xE1,0x20,0x80,0x8D,0xE2, + 0x28,0x60,0x8D,0xE2,0x01,0x01,0x98,0xE8,0x60,0x00,0x96,0xE8,0x02,0x00,0x51,0xE1, + 0xB2,0x50,0xC4,0xB1,0xB4,0x60,0xC4,0xB1,0x11,0x00,0x00,0xBA,0x03,0x00,0x51,0xE1, + 0xB2,0x00,0xC4,0xA1,0xB4,0x80,0xC4,0xA1,0x0D,0x00,0x00,0xAA,0x02,0x70,0x41,0xE0, + 0x05,0x00,0x40,0xE0,0x97,0x00,0x00,0xE0,0x02,0x90,0x43,0xE0,0x09,0x10,0xA0,0xE1, + 0x6A,0xE1,0xFF,0xEB,0x05,0x00,0x80,0xE0,0xB2,0x00,0xC4,0xE1,0x06,0x00,0x48,0xE0, + 0x97,0x00,0x00,0xE0,0x09,0x10,0xA0,0xE1,0x64,0xE1,0xFF,0xEB,0x06,0x00,0x80,0xE0, + 0xB4,0x00,0xC4,0xE1,0xF0,0x47,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0xF0,0xB4,0x8C,0x79, + 0x14,0x4B,0x00,0x26,0x22,0x07,0x92,0x08,0x1A,0x40,0xCB,0x79,0x92,0x0A,0x92,0x02, + 0x5B,0x07,0x09,0xD5,0x10,0x4D,0xAB,0x89,0x00,0x2B,0x05,0xD0,0x9F,0x05,0xBF,0x0D, + 0x3A,0x43,0x64,0x00,0x64,0x19,0xE3,0x81,0x3F,0x23,0x9B,0x02,0x9A,0x43,0xCB,0x79, + 0x80,0x00,0x9B,0x06,0x1B,0x0C,0x1A,0x43,0x01,0x23,0x5B,0x07,0xC0,0x18,0x42,0x60, + 0xC8,0x79,0xC0,0x06,0x80,0x0F,0x03,0xD0,0x04,0x48,0x01,0x21,0xC1,0x76,0x06,0x77, + 0xF0,0xBC,0x70,0x47,0xFF,0xFF,0x00,0xFC,0x40,0x00,0x00,0x20,0xA0,0x04,0x00,0x20, + 0x30,0xB4,0x0E,0x25,0x68,0x43,0x0B,0x4C,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06, + 0x00,0x0A,0x09,0x0E,0x82,0x18,0xC9,0x18,0x00,0x20,0x4B,0x1E,0xC0,0x43,0xFF,0x2B, + 0x06,0xD2,0x53,0x1E,0xFF,0x2B,0x03,0xD2,0x10,0x02,0x08,0x43,0x60,0x53,0x00,0x20, + 0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0x10,0xB4,0x0E,0x24,0x60,0x43,0x03,0x4B, + 0x40,0x18,0x40,0x00,0x1A,0x52,0x10,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0x0E,0x23,0x58,0x43,0x30,0xB4,0x0B,0x4C,0x40,0x18,0x43,0x00,0xE0,0x5A,0x01,0x06, + 0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18,0x00,0x20,0x4D,0x1E,0xC0,0x43,0xFF,0x2D, + 0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2,0x10,0x02,0x08,0x43,0xE0,0x52,0x00,0x20, + 0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0x70,0xB4,0x12,0x4A,0x11,0x4D,0x52,0x7D, + 0x00,0x21,0x20,0x3D,0x14,0x02,0x14,0x43,0x0E,0x22,0x50,0x43,0x0C,0x4B,0x86,0x18, + 0x12,0xE0,0xAA,0x7D,0x8A,0x42,0x0D,0xD0,0xEA,0x7D,0x8A,0x42,0x0A,0xD0,0x2A,0x7E, + 0x8A,0x42,0x07,0xD0,0x6A,0x7E,0x8A,0x42,0x04,0xD0,0xAA,0x7E,0x8A,0x42,0x01,0xD0, + 0x42,0x00,0x9C,0x52,0x40,0x1C,0x49,0x1C,0x86,0x42,0xEA,0xD8,0x70,0xBC,0x70,0x47, + 0x00,0x00,0x10,0x40,0x20,0x93,0x00,0x00,0x70,0xB4,0x12,0x4A,0x11,0x4B,0x52,0x7D, + 0x00,0x21,0x20,0x3B,0x15,0x02,0x15,0x43,0xFF,0x26,0x0D,0x4C,0x27,0x36,0x12,0xE0, + 0x9A,0x7D,0x8A,0x42,0x0D,0xD0,0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E,0x8A,0x42, + 0x07,0xD0,0x5A,0x7E,0x8A,0x42,0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00, + 0xA5,0x52,0x0E,0x30,0x49,0x1C,0xB0,0x42,0xEA,0xD3,0x70,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0x20,0x93,0x00,0x00,0x02,0x04,0x04,0x49,0x02,0x43,0x00,0x20, + 0x40,0x1C,0x04,0xC1,0xB5,0x28,0xFB,0xD3,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0x05,0x48,0x07,0x49,0xC0,0x88,0x42,0x06,0x04,0x48,0x01,0xD5,0x40,0x68,0x00,0xE0, + 0x00,0x68,0x48,0x60,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0xC0,0x93,0x00,0x00, + 0x00,0x90,0x00,0x40,0x03,0x00,0xF0,0xB5,0x1D,0x49,0x05,0x20,0xC0,0x01,0x0A,0x18, + 0x0B,0x20,0x80,0x01,0x0D,0x18,0xC0,0x31,0x18,0x4C,0x4F,0x6A,0x0E,0x6A,0x88,0x6A, + 0x00,0xF0,0x06,0xFB,0x06,0x04,0x0A,0x14,0x18,0x20,0x24,0x11,0xC8,0x68,0x20,0x62, + 0x50,0x6B,0x60,0x62,0x02,0x20,0x04,0xE0,0xC8,0x69,0x20,0x62,0x68,0x68,0x60,0x62, + 0x04,0x20,0xE0,0x62,0x66,0x63,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x08,0x69,0x20,0x62, + 0x90,0x6B,0x02,0xE0,0x48,0x69,0x20,0x62,0xD0,0x6B,0x60,0x62,0x04,0x20,0xE0,0x62, + 0x67,0x63,0xF0,0xE7,0x07,0x49,0x21,0x62,0x25,0x21,0x02,0xE0,0x89,0x69,0x21,0x62, + 0x29,0x68,0x61,0x62,0x05,0x21,0xE1,0x62,0x60,0x63,0xE4,0xE7,0x80,0x90,0x00,0x40, + 0x00,0x93,0x00,0x00,0x01,0x02,0x00,0x00,0x70,0xB4,0x01,0x23,0x5B,0x07,0x58,0x68, + 0x59,0x68,0xC0,0x02,0xC0,0x0E,0x09,0x02,0x4C,0x0F,0x18,0x49,0x01,0x26,0x00,0x22, + 0x00,0x2C,0x10,0xD0,0xCC,0x79,0x35,0x00,0x00,0x2C,0x00,0xD0,0x00,0x25,0x85,0x42, + 0x07,0xD0,0x45,0x08,0x64,0x08,0xA5,0x42,0x03,0xD1,0xC8,0x71,0x1A,0x60,0x70,0xBC, + 0x70,0x47,0xC8,0x71,0x00,0xE0,0xCA,0x71,0x58,0x68,0x00,0x04,0x00,0x0F,0x58,0x68, + 0x03,0xD0,0x00,0x04,0x00,0x0F,0x40,0x1C,0x0C,0xE0,0xC0,0x02,0xC0,0x0E,0x01,0xD0, + 0x01,0x20,0x07,0xE0,0x88,0x79,0x00,0x28,0x02,0xD1,0x01,0x20,0x8E,0x71,0x02,0xE0, + 0x0F,0x22,0x00,0x20,0x8A,0x71,0x18,0x60,0xE1,0xE7,0x00,0x00,0x64,0x05,0x00,0x20, + 0x0A,0x4A,0x10,0xB5,0xD1,0x88,0x0A,0x4B,0x40,0x24,0x00,0x28,0x03,0xD0,0x21,0x43, + 0x08,0x48,0xD1,0x80,0x03,0xE0,0x07,0x48,0xA1,0x43,0xC4,0x38,0xD1,0x80,0x18,0x60, + 0xFF,0xF7,0xD4,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0x78,0x06,0x00,0x20,0xB0,0x94,0x00,0x00,0xFE,0xB5,0x04,0x00,0x3A,0x48,0x0E,0x00, + 0x07,0x6A,0x41,0x6A,0x02,0x91,0x41,0x6B,0x01,0x91,0xC0,0x6A,0x00,0x90,0x00,0x20, + 0xFF,0xF7,0x58,0xFF,0xFA,0xF7,0xC8,0xFC,0x25,0x00,0x47,0xE0,0x68,0x1E,0x84,0x42, + 0x01,0xD1,0xFA,0xF7,0xEB,0xFC,0xFA,0xF7,0x8D,0xFC,0xFA,0xF7,0x3B,0xFD,0x00,0x2E, + 0x2F,0xD1,0xA8,0x00,0x05,0x21,0xF8,0xF7,0x51,0xFA,0xA0,0x42,0x03,0xD8,0x01,0x22, + 0x11,0x00,0x04,0x20,0x21,0xE0,0x68,0x00,0x28,0x18,0x05,0x21,0xF8,0xF7,0x46,0xFA, + 0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x03,0x20,0x16,0xE0,0x68,0x00,0x05,0x21, + 0xF8,0xF7,0x3C,0xFA,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x02,0x20,0x0C,0xE0, + 0x05,0x21,0x28,0x00,0xF8,0xF7,0x32,0xFA,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00, + 0x10,0x00,0x02,0xE0,0x01,0x22,0x11,0x00,0x00,0x20,0x01,0x23,0xFA,0xF7,0x4A,0xFA, + 0x0C,0xE0,0x68,0x00,0x03,0x21,0xF8,0xF7,0x21,0xFA,0xA0,0x42,0xDA,0xD9,0x03,0x21, + 0x28,0x00,0xF8,0xF7,0x1B,0xFA,0xA0,0x42,0xE8,0xD8,0xDD,0xE7,0x64,0x1E,0xB5,0xD2, + 0x0E,0x48,0x44,0x88,0x03,0xE0,0xFA,0xF7,0x45,0xFC,0xFA,0xF7,0xF3,0xFC,0x64,0x1E, + 0xF9,0xD2,0xFA,0xF7,0x69,0xFC,0x08,0x48,0x07,0x62,0x02,0x99,0x41,0x62,0x01,0x99, + 0x41,0x63,0x00,0x99,0xC1,0x62,0x06,0x49,0x00,0x20,0xC8,0x82,0x48,0x71,0x08,0x71, + 0x88,0x82,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x80,0x90,0x00,0x40,0xE0,0x95,0x00,0x00, + 0x64,0x05,0x00,0x20,0x30,0xB4,0x0D,0x4D,0xEC,0x7B,0x00,0x2C,0x13,0xD0,0x02,0x68, + 0x0B,0x68,0xA4,0x07,0x03,0xD5,0x2C,0x8C,0xA2,0x1A,0x52,0x1E,0x02,0x60,0xEC,0x7B, + 0x64,0x07,0x03,0xD5,0x6C,0x8C,0xE3,0x1A,0x5B,0x1E,0x0B,0x60,0xEC,0x7B,0xE4,0x07, + 0x01,0xD0,0x03,0x60,0x0A,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x93,0x00,0x00, + 0x02,0x49,0x00,0x03,0x40,0x18,0xC0,0x68,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47,0x7D,0x06,0x00,0x20,0x30,0xB4,0x05,0x03, + 0x05,0x48,0x02,0x9C,0x28,0x18,0x02,0x60,0x41,0x60,0x00,0x2B,0x00,0xD0,0x03,0x61, + 0x84,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x02,0x4A,0x00,0x03, + 0x80,0x18,0x01,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x05,0x49,0x00,0x03, + 0x40,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x11,0x43,0x81,0x60,0x02,0x49,0x00,0x20, + 0x08,0x70,0x70,0x47,0x00,0x20,0x00,0x40,0x7D,0x06,0x00,0x20,0x01,0x03,0x04,0x48, + 0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x91,0x43,0x81,0x60,0x70,0x47,0x00,0x00, + 0x00,0x20,0x00,0x40,0x0F,0x49,0x89,0x7B,0x81,0x42,0x00,0xD2,0x08,0x00,0x01,0x22, + 0x52,0x07,0x01,0x28,0x0C,0xD1,0x91,0x68,0x8B,0x0F,0xDB,0x07,0x04,0xD0,0x89,0x00, + 0x89,0x08,0x83,0x07,0xC9,0x18,0x01,0xE0,0x89,0x00,0x89,0x08,0x51,0x60,0x07,0xE0, + 0x01,0x28,0x05,0xD9,0x01,0x21,0xC9,0x07,0x83,0x05,0x9B,0x0D,0x19,0x43,0xF5,0xE7, + 0x10,0x60,0x70,0x47,0x00,0x93,0x00,0x00,0x38,0xB5,0x00,0x24,0x71,0x20,0x6B,0x46, + 0x00,0x94,0xD8,0x70,0x00,0x98,0x01,0x25,0x6D,0x07,0x68,0x60,0x0D,0x48,0x09,0x22, + 0x21,0x00,0xF8,0xF7,0x87,0xF9,0x0B,0x48,0x09,0x22,0x00,0x21,0x09,0x38,0xF8,0xF7, + 0x81,0xF9,0x08,0x49,0x49,0x1F,0x88,0x7B,0x00,0x28,0x08,0xD0,0x00,0x20,0x03,0xE0, + 0x82,0x00,0x52,0x19,0x94,0x60,0x40,0x1C,0x8A,0x7B,0x82,0x42,0xF8,0xDC,0x38,0xBC, + 0x08,0xBC,0x18,0x47,0x25,0x05,0x00,0x20,0xF0,0xB5,0x00,0x24,0x25,0x00,0x20,0x00, + 0x01,0x21,0x89,0xB0,0x49,0x07,0x08,0x94,0x4F,0x68,0x61,0x4E,0xB9,0x0F,0x89,0x07, + 0x7E,0xD5,0x20,0x22,0x00,0x21,0x68,0x46,0xF8,0xF7,0x5C,0xF9,0x07,0x21,0xB8,0x01, + 0x49,0x05,0x40,0x08,0x08,0x40,0x31,0x00,0x88,0x43,0x39,0x07,0x09,0x0C,0x08,0x43, + 0x08,0x90,0x00,0x20,0x33,0xE0,0x01,0x22,0x81,0x00,0x52,0x07,0x89,0x18,0x89,0x68, + 0x8E,0x00,0x32,0x0F,0x2A,0xD0,0x32,0x0F,0x94,0x46,0x92,0x00,0x6B,0x46,0xD2,0x18, + 0x40,0x3A,0xD3,0x6B,0x36,0x0F,0x1B,0x01,0x1B,0x09,0x36,0x07,0x33,0x43,0x0F,0x27, + 0x3F,0x06,0x0E,0x04,0xB6,0x08,0xBB,0x43,0x3E,0x40,0x33,0x43,0x49,0x4E,0x33,0x40, + 0x8E,0x01,0xB6,0x0D,0x36,0x03,0x33,0x43,0x1B,0x0B,0x89,0x05,0x1B,0x03,0x89,0x0D, + 0x0B,0x43,0xD3,0x63,0x62,0x46,0x52,0x1E,0x01,0x23,0x93,0x40,0x9A,0x05,0x92,0x0D, + 0x71,0x46,0x11,0x43,0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x08,0x91,0x40,0x1C,0x08,0x99, + 0x8E,0x46,0x09,0x04,0x09,0x0F,0x81,0x42,0xC5,0xD8,0x08,0x98,0x01,0x27,0x00,0x04, + 0x00,0x0F,0x7B,0x07,0x0F,0xE0,0x82,0x00,0xD2,0x18,0x92,0x68,0x3E,0x00,0x92,0x00, + 0x12,0x0F,0x52,0x1E,0x96,0x40,0xF2,0x06,0xD2,0x0A,0x64,0x1C,0x11,0x43,0x24,0x06, + 0x24,0x0E,0x40,0x1C,0x08,0x91,0x08,0x99,0x0A,0x04,0x0E,0x02,0x12,0x0F,0x76,0x0F, + 0x92,0x19,0x82,0x42,0xE7,0xD8,0x00,0x21,0x08,0x00,0x6E,0x46,0x82,0x00,0xB2,0x58, + 0x00,0x2A,0x03,0xD0,0x8F,0x00,0xFF,0x18,0xBA,0x60,0x49,0x1C,0x40,0x1C,0x08,0x28, + 0xF4,0xD3,0x23,0x49,0x08,0x98,0x88,0x43,0x29,0x07,0x09,0x0C,0x08,0x43,0x00,0xE0, + 0x07,0xE0,0x07,0x21,0x49,0x05,0x88,0x43,0x61,0x07,0x09,0x0A,0x08,0x43,0x08,0x90, + 0x2B,0xE0,0xB9,0x0F,0xC9,0x07,0x25,0xD0,0x01,0x23,0x5B,0x07,0x58,0x68,0x19,0x4C, + 0x82,0x00,0x11,0x0F,0x09,0x07,0x21,0x40,0x84,0x01,0xA4,0x0D,0x24,0x03,0x21,0x43, + 0x84,0x05,0x09,0x0B,0x09,0x03,0xA4,0x0D,0x21,0x43,0x0F,0x24,0x24,0x06,0x00,0x04, + 0x80,0x08,0xA1,0x43,0x20,0x40,0x01,0x43,0x08,0x0F,0x09,0xD0,0x12,0x0F,0x52,0x1E, + 0x01,0x20,0x90,0x40,0x80,0x05,0x80,0x0D,0xB0,0x43,0x5A,0x14,0x80,0x18,0x08,0x90, + 0x99,0x60,0x02,0xE0,0x01,0x21,0x49,0x07,0x88,0x60,0x71,0x20,0x08,0xAB,0xD8,0x70, + 0x08,0x99,0x40,0x07,0x41,0x60,0x09,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0xF0,0x00,0x00,0xFF,0x0F,0x00,0xFF,0x08,0x48,0x10,0xB5,0x04,0x04,0x24,0x0C, + 0x07,0x49,0x00,0x22,0x20,0x00,0xF8,0xF7,0x9B,0xF8,0x05,0x4A,0x05,0x49,0x20,0x00, + 0x00,0x23,0xF8,0xF7,0x9D,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00, + 0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x10,0x70,0xB5,0x05,0x00,0x08,0x48,0x00,0x22, + 0x04,0x04,0x24,0x0C,0x40,0x21,0x20,0x00,0xF8,0xF7,0x82,0xF8,0x40,0x22,0x29,0x00, + 0x20,0x00,0x00,0x23,0xF8,0xF7,0x84,0xF8,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xC0,0x92,0x00,0x00,0x02,0x4B,0x58,0x60,0x99,0x60,0x1A,0x60,0x70,0x47,0x00,0x00, + 0x00,0x30,0x00,0x40,0x01,0x04,0x00,0xB5,0x03,0x48,0x02,0x22,0x09,0x0C,0xFF,0xF7, + 0xF1,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00,0xE1,0x04,0x00,0x00,0x02,0x48,0x01,0x68, + 0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x48,0x01,0x68, + 0x49,0x08,0x49,0x00,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x49,0x02,0x22, + 0x0A,0x61,0x88,0x60,0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40,0x01,0x49,0x01,0x20, + 0x08,0x70,0x70,0x47,0x7C,0x06,0x00,0x20,0x00,0x04,0x00,0x0C,0x01,0x21,0x89,0x07, + 0x08,0x61,0x70,0x47,0x01,0x21,0x89,0x07,0x88,0x68,0x8A,0x15,0x90,0x43,0x88,0x60, + 0x70,0x47,0x70,0xB4,0x03,0xAC,0x30,0xCC,0x06,0x68,0x96,0x42,0x01,0xDB,0x32,0x00, + 0x00,0xE0,0x02,0x60,0x9A,0x42,0x00,0xDD,0x03,0x60,0x08,0x68,0xA0,0x42,0x00,0xDA, + 0x0C,0x60,0x08,0x68,0xA8,0x42,0x00,0xDD,0x0D,0x60,0x70,0xBC,0x70,0x47,0x00,0x47, + 0x78,0x47,0xC0,0x46,0x01,0xC0,0x5E,0xE5,0x0C,0x00,0x53,0xE1,0x03,0x30,0xDE,0x37, + 0x0C,0x30,0xDE,0x27,0x83,0xC0,0x8E,0xE0,0x1C,0xFF,0x2F,0xE1,0x10,0xB5,0xF8,0xF7, + 0x4F,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x25,0x00,0x6F,0x00,0xB9,0x00,0xF0,0x00, + 0x27,0x01,0x71,0x01,0xBB,0x01,0x20,0x00,0x6C,0x00,0xB8,0x00,0x04,0x01,0x50,0x01, + 0x89,0x01,0xC2,0x01,0x0E,0x02,0x5A,0x02,0xA6,0x02,0xF2,0x02,0x24,0x00,0x72,0x00, + 0xBD,0x00,0x09,0x01,0x55,0x01,0x90,0x01,0xCC,0x01,0x19,0x02,0x59,0x02,0xAE,0x02, + 0xF4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x01,0x00,0x00,0x00,0x01,0x00, + 0x01,0x00,0x01,0x00,0x89,0x08,0x49,0x1E,0x49,0x04,0x01,0x22,0x49,0x08,0xD2,0x07, + 0x89,0x18,0x00,0x04,0x00,0x0C,0x01,0x43,0x03,0x48,0x41,0x61,0x41,0x69,0x00,0x29, + 0xFC,0xDB,0x80,0x6B,0x70,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0xFF,0x10,0x01,0xE2,0x01,0x20,0x52,0xE2,0x01,0x10,0xC0,0xE4, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0x01,0x18,0xA0,0xE1,0x21,0x18,0xA0,0xE1,0x01,0x20,0x52,0xE2, + 0xB2,0x10,0xC0,0xE0,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x42,0x21,0xA0,0xE1, + 0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0x01,0x20,0x52,0xE2,0x04,0x10,0x80,0xE4, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0x01,0x30,0xD1,0xE4,0x01,0x20,0x52,0xE2,0x01,0x30,0xC0,0xE4,0xFB,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0xB2,0x30,0xD1,0xE0,0x01,0x20,0x52,0xE2,0xB2,0x30,0xC0,0xE0,0xFB,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x42,0x21,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0x04,0x30,0x91,0xE4,0x01,0x20,0x52,0xE2,0x04,0x30,0x80,0xE4,0xFB,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0xB2,0x30,0xD1,0xE0,0x01,0x20,0x52,0xE2,0x04,0x30,0x80,0xE4,0xFB,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x41,0x11,0xA0,0xE1,0x01,0x10,0x51,0xE2,0x1E,0xFF,0x2F,0x31, + 0x00,0x20,0xA0,0xE3,0x01,0x10,0x51,0xE2,0x04,0x20,0x80,0xE4,0xFC,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x70,0x20,0x9F,0xE5,0x30,0x00,0x2D,0xE9,0x64,0xC0,0x9F,0xE5, + 0x00,0x00,0x92,0xE5,0x64,0x40,0x9F,0xE5,0x64,0x30,0x9F,0xE5,0x25,0x00,0xA0,0xE3, + 0x01,0x0C,0x80,0xE2,0x00,0x11,0x92,0xE7,0x80,0x50,0x84,0xE0,0xB0,0x10,0xC5,0xE1, + 0x00,0x11,0x9C,0xE7,0x80,0x50,0x83,0xE0,0x01,0x00,0x50,0xE2,0xB0,0x10,0xC5,0xE1, + 0xF7,0xFF,0xFF,0x5A,0x30,0x00,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x24,0x20,0x9F,0xE5, + 0x30,0x10,0x9F,0xE5,0x25,0x00,0xA0,0xE3,0x01,0x0C,0x80,0xE2,0x00,0x31,0x92,0xE7, + 0x80,0xC0,0x81,0xE0,0x23,0x38,0xA0,0xE1,0x01,0x00,0x50,0xE2,0xB0,0x30,0xCC,0xE1, + 0xF9,0xFF,0xFF,0x5A,0x1E,0xFF,0x2F,0xE1,0xD4,0x02,0x10,0x40,0x00,0x10,0x10,0x40, + 0x7E,0x06,0x00,0x20,0x00,0x00,0x00,0x10,0xD2,0x02,0x00,0x10,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0B,0x38,0x30,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,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,0xFF,0x00,0x00,0x00, + 0x00,0x00,0x04,0x00,0x05,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x05,0x08,0x05,0x00, + 0x00,0x00,0x00,0x00,0x03,0x02,0x13,0x14,0xFF,0xFF,0xFF,0x00,0x00,0xC8,0x05,0x1E, + 0xE0,0x01,0x20,0x03,0xFC,0x3A,0x00,0x00,0xFC,0x3A,0x00,0x00,0xFC,0x3A,0x00,0x00, + 0xE0,0x93,0x04,0x00,0x01,0x5A,0xB0,0x04,0xB0,0x04,0x00,0x00,0x04,0xC8,0x65,0x65, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x78,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x66,0x00,0x67,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x1D,0x00,0x02,0x32,0x00, + 0x2C,0x01,0x2C,0x01,0x00,0x00,0x00,0x00,0x50,0x00,0x5A,0x00,0x32,0x00,0xB8,0x0B, + 0x50,0x00,0x5A,0x00,0x32,0x00,0xE8,0x03,0x64,0x00,0x14,0x00,0x00,0x00,0x00,0x00, + 0x05,0x02,0x06,0x0A,0x01,0x01,0x04,0x00,0x01,0x02,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x00,0x0E,0x00,0x00,0x80,0x0F,0xA0,0x8F,0x60,0x0F,0x80,0x8F,0x9F,0xB9,0x2C,0x01, + 0x14,0x00,0x14,0x00,0x64,0x64,0x64,0x64,0x46,0x00,0x32,0x00,0x32,0x00,0x05,0x00, + 0x19,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x46,0x00,0x5E,0x01,0x90,0x01,0x90,0x01, + 0x2C,0x01,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00, + 0x0A,0x01,0x32,0x00,0x88,0x13,0x90,0x01,0x0A,0x00,0x96,0x96,0x96,0x96,0x00,0x96, + 0x96,0x96,0xB4,0x00,0xFF,0x0F,0xF4,0x01,0x50,0x00,0x1E,0x00,0xFA,0xFA,0x19,0xAA, + 0x00,0x05,0x04,0x0A,0x0A,0x06,0x20,0x03,0x46,0x00,0x03,0x19,0x00,0x02,0x0F,0x00, + 0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xDC,0x00,0x05,0x02,0x01,0x02,0x01,0x00,0x02,0x03,0x01,0x00,0x05,0x05,0x0A,0x0A, + 0x0F,0x0F,0x14,0x14,0x64,0x5A,0x01,0x00,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,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x41,0x22,0x01,0x00, + 0x1C,0x1C,0x88,0x00,0x10,0x3F,0x10,0x3F,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00, + 0x9F,0x99,0x5E,0x01,0x14,0x00,0x19,0x00,0x64,0x64,0x64,0x64,0x46,0x00,0x32,0x00, + 0x96,0x00,0x14,0x00,0x32,0x00,0x14,0x00,0x01,0x00,0x0A,0x02,0x50,0x00,0x90,0x01, + 0x90,0x01,0x90,0x01,0x90,0x01,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00, + 0x10,0x00,0x10,0x00,0x0A,0x01,0x32,0x00,0x88,0x13,0xF4,0x01,0x0A,0x00,0x96,0x96, + 0x96,0x96,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x0F,0xF4,0x01,0xC8,0x00,0x1E,0x00, + 0xFA,0xFA,0x0D,0xA0,0x00,0x05,0x04,0x0A,0x02,0x06,0xE8,0x03,0x46,0x00,0x05,0x1E, + 0x00,0x02,0x1E,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xDC,0x00,0x05,0x06,0x01,0x02,0x01,0x00,0x03,0x03,0x03,0x00, + 0x05,0x05,0x0A,0x0A,0x0F,0x0F,0x14,0x14,0x64,0x5A,0x01,0x00,0x03,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03, + 0x41,0x22,0x01,0x00,0x12,0x12,0x88,0x00,0x10,0x3F,0x10,0x3F,0x00,0x00,0x00,0x00, + 0x01,0x00,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00, + 0x96,0x00,0x0A,0x00,0x04,0x00,0x00,0x00,0x0A,0x00,0xC8,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x96,0x00,0xFA,0x00,0x00,0x00, + 0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x24,0x00,0x00,0x00, + 0x25,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x64,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x0A,0x00,0x00,0x5A,0x5A,0x5A,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x32,0x00,0x50,0x00,0x32,0x00,0x50,0x00,0x0A,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x41,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xF0,0x0F,0x02,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x15,0x0E,0x15,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x8D,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x22,0x01,0x00, + 0x00,0x00,0x18,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x00,0x00,0x20,0x00, + 0x30,0x3F,0x30,0x3F,0x64,0x14,0x20,0x00,0x00,0x00,0x04,0x81,0x00,0x00,0xFF,0x0F, + 0x01,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xC8,0x00,0x40,0x06,0x00,0x00,0x08,0x00, + 0x51,0x30,0x10,0x00,0x61,0x80,0x01,0x00,0xFF,0xFF,0xFF,0x10,0xFF,0xFF,0xFF,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x54,0x55,0x45,0x00,0x10,0x10,0x00,0x00,0x00,0x70,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x14,0x00,0x00,0x0C,0x0C,0x06,0x00, + 0x00,0x01,0x03,0x02,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0xC0,0xDA,0x00,0x00, + 0x58,0x31,0x28,0x01,0x58,0x37,0x28,0x07,0x58,0x31,0x28,0x01,0x58,0x31,0x28,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, + 0xD0,0x07,0x08,0x00,0x12,0x12,0xC8,0x01,0x90,0x81,0x0C,0x00,0x00,0x08,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x03,0xC8,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x00,0x64,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,0x10,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01, + 0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01, + 0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01, + 0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01, + 0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01,0x58,0x31,0x28,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x24,0x24,0x24,0x24, + 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x3F,0x24,0x24,0x24,0x24,0x24,0x24, + 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x3F,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, + 0x24,0x24,0x24,0x24,0x24,0x3F,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, + 0x24,0x24,0x24,0x3F,0x24,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26, + 0x24,0x3F,0x24,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x24,0x3F, + 0x24,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x24,0x3F,0x24,0x26, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x24,0x3F,0x24,0x26,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x24,0x3F,0x24,0x26,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x26,0x24,0x3F,0x24,0x26,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x26,0x24,0x3F,0x24,0x22,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, + 0x22,0x22,0x24,0x3F,0x24,0x22,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x22,0x22, + 0x24,0x3F,0x24,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x24,0x3F, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C, + 0x1C,0x1C,0x1C,0x1C,0x1C,0x28,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x44,0xC8,0x61,0x14,0x44, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0x00,0xC0,0x91,0xA7, + 0x21,0x2C,0x92,0xC7,0x42,0xBC,0x92,0xC7,0x63,0x28,0x93,0xC7,0x84,0xB8,0x93,0xC7, + 0xA5,0x24,0x94,0xC7,0xC6,0xB4,0x94,0xC7,0xE7,0x20,0x95,0xC7,0x08,0xB1,0x95,0xC7, + 0x29,0x9D,0x98,0xC7,0x4A,0x01,0x99,0xC7,0x6B,0x99,0x99,0xC7,0x8C,0x05,0x9A,0xC7, + 0xAD,0x95,0x9A,0xC7,0xCE,0x09,0x90,0xC7,0xEF,0x11,0x90,0xC7,0x10,0x0E,0x90,0xC7, + 0x31,0x46,0x90,0xC7,0x52,0x52,0x90,0xC7,0x73,0x4A,0x90,0xC7,0x94,0x4E,0x90,0xC7, + 0xB5,0x02,0x90,0xC7,0xD6,0x02,0x90,0xC7,0xF7,0x02,0x90,0xC7,0x00,0x08,0x00,0x00, + 0x00,0x80,0x01,0x00,0x00,0x0C,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x06,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x30,0x00,0x00,0x80,0x01,0x00,0x00, + 0x01,0x10,0x00,0x00,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00,0x02,0x00, + 0x08,0x00,0x10,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x1E,0x00, + 0xF8,0x0F,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x30, + 0x6F,0x67,0x08,0x00,0x00,0x00,0x00,0x00,0x30,0x60,0x30,0x60,0x60,0x30,0x60,0x30, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47,0x40,0x04,0x00,0x00,0xC0,0x9B,0x00,0x00, + 0xC0,0x92,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x03,0x00,0x00, + 0x00,0x96,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x02,0x00,0x00, + 0x00,0x99,0x00,0x00,0x00,0x04,0x00,0x00,0x40,0x00,0xD8,0x00,0x00,0x00,0x00,0x00, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47}; + +#endif // __IST30XXB_FW_H__ diff --git a/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0006_20140401.h b/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0006_20140401.h new file mode 100644 index 00000000..a1c4c724 --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_kanas_ver0006_20140401.h @@ -0,0 +1,2572 @@ +#ifndef __IST30XXB_FW_H__ +#define __IST30XXB_FW_H__ + +/* ist30xxb binary: KANAS_GF MELFAS, f/w 6(00040000) */ +static unsigned char ist30xxb_fw[] = { + 0x06,0x00,0x00,0xEA,0x2C,0x00,0x00,0xEA,0x2B,0x00,0x00,0xEA,0x2A,0x00,0x00,0xEA, + 0x29,0x00,0x00,0xEA,0x28,0x00,0x00,0xEA,0x27,0x00,0x00,0xEA,0x3E,0x00,0x00,0xEA, + 0x14,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0xA0,0xE1,0x00,0x00,0x00,0xEA,0x0C,0x20,0x00,0x40, + 0x11,0x01,0xA0,0xE3,0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0xC1,0x01,0xA0,0xE3, + 0x1C,0x10,0x9F,0xE5,0x00,0x10,0x80,0xE5,0x18,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0xF1,0x01,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0x01,0x00,0x00,0xEA,0xC8,0x74,0x00,0x00,0x4C,0x00,0x00,0x40,0x00,0x00,0x0F,0xE1, + 0x1F,0x00,0xC0,0xE3,0xD1,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x1C,0xD0,0x9F,0xE5, + 0xD3,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x14,0xD0,0x9F,0xE5,0x00,0x00,0x0F,0xE1, + 0xC0,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x08,0x00,0x9F,0xE5,0x10,0xFF,0x2F,0xE1, + 0xFC,0x0F,0x00,0x20,0xC0,0x0F,0x00,0x20,0xAD,0x01,0x00,0x00,0x11,0x01,0xA0,0xE3, + 0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x5C,0x30,0x9F,0xE5,0x5C,0x40,0x9F,0xE5, + 0x00,0x40,0x83,0xE5,0x91,0x01,0xA0,0xE3,0x33,0x16,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0xAC,0x00,0x1F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0x00,0x40,0x83,0xE5, + 0xFF,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x03,0x00,0x00,0xEB,0xFE,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0x00,0xEB,0xF7,0xFF,0xFF,0xEA,0x01,0x29,0xA0,0xE3, + 0x01,0x20,0x52,0xE2,0xFD,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0xFF,0x40,0x2D,0xE9, + 0xC6,0x00,0x00,0xEB,0xFF,0x40,0xBD,0xE8,0x04,0xF0,0x5E,0xE2,0x1C,0x40,0x00,0x30, + 0x70,0xE9,0x1C,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x39,0x4A,0x37,0x48,0x37,0x49,0x92,0x08,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x35,0x48,0x01,0x21,0x89,0x07,0xC8,0x61, + 0x34,0x48,0xC9,0x14,0x01,0x62,0x00,0x21,0x01,0x62,0x01,0x62,0x32,0x49,0x33,0x48, + 0x01,0x60,0x20,0x21,0x41,0x60,0xA0,0x21,0x81,0x60,0x70,0x47,0xF8,0xB5,0x2D,0x4B, + 0x9F,0x6A,0x2F,0x48,0x00,0x69,0x42,0x08,0x58,0x69,0x19,0x15,0x08,0x43,0x58,0x61, + 0xFF,0xF7,0xE2,0xFF,0x58,0x69,0xFF,0x21,0x81,0x31,0x08,0x43,0x58,0x61,0x29,0x48, + 0x29,0x4C,0x20,0x60,0xFF,0x20,0x90,0x30,0x60,0x60,0x13,0x20,0xA0,0x60,0xA0,0x68, + 0xA6,0x15,0x30,0x43,0xA0,0x60,0x21,0x4D,0x5F,0x23,0x00,0x2F,0x27,0xD1,0x23,0x4F, + 0x21,0xE0,0x68,0x68,0x00,0x07,0x1E,0xD5,0xE8,0x68,0x40,0x28,0x04,0xD1,0xEA,0x61, + 0x68,0x69,0x18,0x42,0xFC,0xD1,0x14,0xE0,0x20,0x28,0x04,0xD3,0xEF,0x61,0x68,0x69, + 0x18,0x42,0xFC,0xD1,0x0D,0xE0,0x0D,0x28,0x08,0xD1,0x2E,0x20,0x68,0x60,0x68,0x69, + 0x80,0x06,0xFC,0xD4,0x68,0x68,0x80,0x07,0xFC,0xD5,0x08,0xE0,0x68,0x68,0x80,0x07, + 0xFC,0xD5,0xFF,0xF7,0xA9,0xFF,0xE0,0x68,0x11,0x49,0x88,0x42,0xD9,0xD3,0xFF,0xF7, + 0xA3,0xFF,0xA0,0x68,0xB0,0x43,0xA0,0x60,0x00,0xF0,0x3A,0xF9,0xF8,0xBC,0x08,0xBC, + 0x00,0x20,0x18,0x47,0x00,0x00,0x00,0x10,0x84,0x02,0x00,0x00,0xEC,0x00,0x00,0x00, + 0x5C,0x0A,0x00,0x00,0x40,0x00,0x00,0x40,0xDE,0x10,0x05,0x00,0x00,0x40,0x00,0x30, + 0x00,0x20,0x00,0x40,0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40,0xFF,0x03,0xFF,0x2F, + 0x50,0xC3,0x00,0x00,0x38,0x48,0x41,0x6B,0xC9,0x07,0xFC,0xD0,0x41,0x6B,0x01,0x22, + 0x11,0x43,0x41,0x63,0x70,0x47,0x34,0x48,0xC2,0x69,0x41,0x14,0x8A,0x43,0xC2,0x61, + 0xC2,0x69,0x0A,0x43,0xC2,0x61,0xC2,0x69,0x8A,0x43,0xC2,0x61,0x70,0x47,0x10,0xB4, + 0x2D,0x4C,0x40,0x23,0x60,0x60,0x20,0x68,0x80,0x0A,0x80,0x02,0x10,0x43,0xA8,0x22, + 0x10,0x43,0x20,0x60,0x02,0xE0,0x08,0x78,0xA0,0x60,0x49,0x1C,0x5B,0x1E,0xFA,0xD2, + 0x10,0xBC,0x70,0x47,0xF0,0xB5,0x05,0x00,0x0E,0x00,0x1F,0x00,0x94,0x09,0x81,0x06, + 0x22,0x48,0x12,0xD1,0x91,0x06,0x10,0xD1,0x0C,0xE0,0x3A,0x00,0x31,0x00,0x28,0x00, + 0xFF,0xF7,0xDD,0xFF,0x40,0x35,0x2D,0x04,0x2D,0x0C,0x40,0x36,0xFF,0xF7,0xC2,0xFF, + 0xFF,0xF7,0xC9,0xFF,0x64,0x1E,0x60,0x1C,0xEF,0xD1,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x15,0x4B,0x40,0x22,0x58,0x60,0x18,0x68,0x80,0x0A,0x80,0x02,0x08,0x43,0xA4,0x21, + 0x08,0x43,0x18,0x60,0x00,0x21,0x00,0xE0,0x99,0x60,0x52,0x1E,0xFC,0xD2,0x70,0x47, + 0x70,0xB5,0x05,0x00,0x16,0x00,0x8C,0x09,0x82,0x06,0x0C,0x48,0x10,0xD1,0x89,0x06, + 0x0E,0xD1,0x0A,0xE0,0x31,0x00,0x28,0x00,0xFF,0xF7,0xE2,0xFF,0x40,0x35,0x2D,0x04, + 0x2D,0x0C,0xFF,0xF7,0x97,0xFF,0xFF,0xF7,0x9E,0xFF,0x64,0x1E,0x60,0x1C,0xF1,0xD1, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0xF8,0xB5,0xFF,0x20,0x00,0xF0,0x26,0xFF, + 0x03,0x25,0x0F,0x4E,0x2D,0x07,0x01,0x27,0xF0,0x6A,0x00,0x28,0x15,0xD0,0xF0,0x6B, + 0xE9,0x68,0x80,0x08,0x3C,0x00,0x84,0x40,0x21,0x43,0xE9,0x60,0x69,0x68,0x21,0x42, + 0x00,0xD0,0x34,0x63,0x81,0x00,0x07,0x48,0x40,0x58,0x00,0x28,0x01,0xD0,0x08,0xF0, + 0x1E,0xFA,0xE8,0x68,0xA0,0x43,0xE8,0x60,0xE6,0xE7,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x40,0x00,0x00,0x30,0xF8,0x05,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF8,0xB5,0x52,0x4A,0x4F,0x48,0x50,0x49,0x92,0x10,0x01,0xE0,0x08,0xC9,0x08,0xC0, + 0x52,0x1E,0xFB,0xD2,0x00,0xF0,0xCE,0xFE,0x07,0x00,0x04,0xF0,0x23,0xF8,0x04,0xF0, + 0x15,0xF8,0x04,0xF0,0xA7,0xF8,0x4A,0x4A,0x4A,0x49,0x4B,0x48,0x00,0xF0,0xFC,0xF9, + 0x05,0x21,0x49,0x03,0x00,0x20,0x00,0xF0,0xFD,0xF9,0x48,0x4C,0x48,0x49,0x20,0x62, + 0x00,0x20,0x00,0xF0,0xF7,0xF9,0x47,0x4B,0x47,0x49,0xD8,0x63,0x47,0x48,0x00,0xF0, + 0xF1,0xF9,0xD9,0x6B,0x00,0x04,0x08,0x43,0xD8,0x63,0x04,0xF0,0x67,0xF8,0x44,0x4A, + 0x44,0x48,0x00,0x21,0x00,0xF0,0xEE,0xF9,0x07,0xF0,0xC4,0xFC,0x04,0xF0,0x16,0xF9, + 0x41,0x48,0x00,0x26,0x81,0x7A,0x01,0x25,0x6D,0x07,0xE1,0x72,0xC1,0x7A,0x21,0x73, + 0x40,0x7A,0x60,0x73,0xA6,0x72,0xA6,0x73,0xE6,0x73,0x26,0x74,0x39,0x48,0x66,0x74, + 0xA6,0x74,0x68,0x63,0xFF,0x20,0xE8,0x63,0xE8,0x14,0x00,0xF0,0x67,0xFE,0x37,0x48, + 0x06,0x70,0xFF,0x20,0x81,0x30,0x00,0xF0,0x61,0xFE,0x35,0x49,0x02,0x20,0x07,0xF0, + 0xE5,0xFF,0x02,0x20,0x07,0xF0,0xEA,0xFF,0x60,0x7B,0x00,0x28,0x01,0xD0,0x08,0xF0, + 0x5D,0xF9,0x00,0x2F,0x1F,0xD1,0x2F,0x4E,0xB7,0x15,0x60,0x7B,0x00,0x28,0x02,0xD0, + 0x2D,0x49,0xA0,0x6D,0x88,0x60,0xE8,0x6B,0x0B,0x28,0x14,0xD0,0x2B,0x48,0x40,0x68, + 0x00,0x07,0x01,0xD5,0x02,0xF0,0x84,0xFD,0xF0,0x68,0x29,0x49,0x88,0x42,0xEC,0xD9, + 0x28,0x48,0xC0,0x68,0xFF,0x28,0x06,0xD1,0xB0,0x68,0xB8,0x43,0xB0,0x60,0xB0,0x68, + 0x38,0x43,0xB0,0x60,0xE1,0xE7,0x20,0x7B,0x00,0x28,0x03,0xD1,0x01,0x20,0x80,0x02, + 0x00,0xF0,0x24,0xFE,0x60,0x7B,0x00,0x28,0x01,0xD0,0x08,0xF0,0x37,0xF9,0x02,0x20, + 0x07,0xF0,0xC4,0xFF,0xFF,0x20,0x81,0x30,0x00,0xF0,0x18,0xFE,0x1A,0x49,0x05,0x20, + 0x03,0xF0,0xEA,0xFD,0x0B,0x20,0xE8,0x63,0x03,0xF0,0x80,0xFE,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xB0,0x05,0x00,0x10,0x6C,0x89,0x00,0x00,0x80,0x01,0x00,0x00, + 0x28,0x00,0x00,0x00,0x44,0x89,0x00,0x00,0x00,0x00,0x00,0x10,0x64,0x05,0x00,0x20, + 0xC0,0x92,0x00,0x00,0xC0,0x0F,0x00,0x20,0x00,0x9D,0x00,0x00,0x00,0x93,0x00,0x00, + 0x24,0x05,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00,0x7D,0x06,0x00,0x20, + 0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x40,0x00,0x30, + 0x50,0xC3,0x00,0x00,0xC0,0x92,0x00,0x00,0x11,0x85,0x00,0x00,0x78,0x47,0xC0,0x46, + 0x01,0x30,0x90,0xE1,0x4C,0x00,0x00,0x4A,0x00,0x20,0xB0,0xE3,0xA0,0x30,0x71,0xE0, + 0x43,0x00,0x00,0x3A,0x20,0x32,0x71,0xE0,0x34,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0, + 0x26,0x00,0x00,0x3A,0x20,0x36,0x71,0xE0,0x17,0x00,0x00,0x3A,0x20,0x38,0x71,0xE0, + 0x09,0x00,0x00,0x3A,0x01,0x14,0xA0,0xE1,0x20,0x38,0x71,0xE0,0xFF,0x24,0x82,0xE3, + 0xFF,0x28,0x82,0x23,0x01,0x14,0xA0,0x21,0x20,0x36,0x71,0xE0,0x0E,0x00,0x00,0x3A, + 0x00,0x30,0x71,0xE2,0x6F,0x00,0x00,0x2A,0x21,0x14,0xA0,0x21,0xA0,0x37,0x71,0xE0, + 0x81,0x07,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x37,0x71,0xE0,0x01,0x07,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x36,0x71,0xE0,0x81,0x06,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x36,0x71,0xE0,0x01,0x06,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x35,0x71,0xE0, + 0x81,0x05,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x35,0x71,0xE0,0x01,0x05,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x34,0x71,0xE0,0x81,0x04,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x34,0x71,0xE0,0x01,0x04,0x40,0x20,0x02,0x20,0xB2,0xE0,0xE5,0xFF,0xFF,0x2A, + 0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0, + 0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0, + 0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0, + 0x1E,0xFF,0x2F,0xE1,0x01,0x10,0x50,0xE0,0x01,0x00,0xA0,0x23,0x1E,0xFF,0x2F,0x21, + 0x00,0x10,0xA0,0xE1,0x00,0x00,0xB0,0xE3,0x1E,0xFF,0x2F,0xE1,0x02,0x21,0x11,0xE2, + 0x00,0x10,0x61,0x42,0x40,0xC0,0x32,0xE0,0x00,0x00,0x60,0x22,0x20,0x32,0x71,0xE0, + 0x1D,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0,0x0F,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1, + 0x20,0x34,0x71,0xE0,0x3F,0x23,0x82,0xE3,0x0B,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1, + 0x20,0x34,0x71,0xE0,0x3F,0x26,0x82,0xE3,0x07,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1, + 0x20,0x34,0x71,0xE0,0x3F,0x29,0x82,0xE3,0x01,0x13,0xA0,0x21,0x3F,0x2C,0x82,0x23, + 0x00,0x30,0x71,0xE2,0x1D,0x00,0x00,0x2A,0x21,0x13,0xA0,0x21,0xA0,0x33,0x71,0xE0, + 0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0, + 0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xEB,0xFF,0xFF,0x2A,0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0, + 0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x00,0x10,0x61,0x22,0x1E,0xFF,0x2F,0xE1, + 0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x01,0x40,0x2D,0xE9,0x00,0x00,0xB0,0xE3, + 0x01,0x00,0x00,0xEB,0x02,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x00,0x00,0xA0,0xE1, + 0x07,0x40,0x2D,0xE9,0x02,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB,0x07,0x40,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x10,0xB5, + 0x02,0x20,0x08,0xF0,0x13,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46, + 0x00,0x20,0xB0,0xE3,0x20,0x32,0x71,0xE0,0xA0,0xFF,0xFF,0x3A,0x20,0x34,0x71,0xE0, + 0x92,0xFF,0xFF,0x3A,0x20,0x36,0x71,0xE0,0x83,0xFF,0xFF,0x3A,0x20,0x38,0x71,0xE0, + 0x75,0xFF,0xFF,0x3A,0x6A,0xFF,0xFF,0xEA,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5, + 0x48,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1, + 0x01,0x00,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0xB0,0x05,0x00,0x10, + 0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0xAD,0x00,0x00,0x10, + 0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x51,0x00,0x00,0x10, + 0x04,0xF0,0x1F,0xE5,0xB0,0x05,0x00,0x10,0x04,0xF0,0x1F,0xE5,0x0C,0x06,0x00,0x10, + 0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0xF0,0x05,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x04,0xF0,0x1F,0xE5,0x88,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5, + 0x28,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0x0C,0x06,0x00,0x10, + 0x04,0xF0,0x1F,0xE5,0x88,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5, + 0xF0,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0xA8,0x06,0x00,0x10, + 0x78,0x47,0xC0,0x46,0xC8,0xFD,0xFF,0xEA,0x02,0x48,0x01,0x68,0x02,0x4A,0x11,0x40, + 0x01,0x60,0x70,0x47,0x00,0xA0,0x00,0x40,0xFE,0xFF,0xEF,0xFF,0x07,0x49,0x10,0xB5, + 0x08,0x68,0x07,0x4A,0x10,0x43,0x08,0x60,0x0B,0x24,0x02,0xF0,0x63,0xFB,0x64,0x1E, + 0x00,0x2C,0xFA,0xDC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x01,0x00,0x10,0x00,0xF0,0xB5,0x01,0x27,0x7F,0x07,0x3D,0x68,0x17,0x4E,0xB0,0x7F, + 0xC0,0x07,0x26,0xD0,0x70,0x7E,0x00,0x28,0x21,0xD0,0xBA,0x00,0x01,0x2D,0x02,0xD1, + 0x79,0x68,0x11,0x43,0xB9,0x60,0x00,0x04,0x02,0x43,0x90,0x0A,0x80,0x02,0xA9,0x05, + 0x89,0x0D,0x08,0x43,0x78,0x60,0x01,0x24,0x08,0xE0,0x0D,0x49,0xE0,0x00,0x40,0x18, + 0x0C,0x49,0x41,0x18,0x28,0x19,0x07,0xF0,0x69,0xFB,0x64,0x1C,0x70,0x7E,0xA0,0x42, + 0xF3,0xDA,0x70,0x7E,0x01,0x28,0x02,0xD1,0x00,0x2D,0x00,0xD1,0x01,0x25,0x70,0x7E, + 0x45,0x19,0x3D,0x60,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x04,0x00,0x20, + 0x40,0x00,0x00,0x20,0xAA,0x04,0x00,0x00,0x70,0xB4,0x1A,0x4B,0xDA,0x88,0xD2,0x07, + 0x2B,0xD1,0x19,0x4A,0x05,0x78,0x54,0x7E,0xE4,0x00,0xE6,0x18,0x25,0x24,0x64,0x01, + 0x36,0x19,0xB5,0x74,0x56,0x7E,0x45,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0xB5,0x82, + 0x56,0x7E,0x85,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0xF5,0x82,0x55,0x7E,0xED,0x00, + 0xED,0x18,0x2D,0x19,0x29,0x76,0x55,0x7E,0xC1,0x79,0xED,0x00,0xEB,0x18,0x1B,0x19, + 0x59,0x76,0x51,0x7E,0x49,0x1C,0x51,0x76,0xC0,0x79,0x06,0x28,0x07,0xD0,0x0A,0x28, + 0x01,0xD0,0x12,0x28,0x01,0xD1,0x00,0x20,0x90,0x76,0x70,0xBC,0x70,0x47,0x01,0x20, + 0xFA,0xE7,0x00,0x00,0x40,0x00,0x00,0x20,0xA0,0x04,0x00,0x20,0xF0,0x00,0x2D,0xE9, + 0x70,0x60,0x9F,0xE5,0x01,0xC1,0x81,0xE0,0x8C,0xC0,0x86,0xE0,0x81,0x40,0x86,0xE0, + 0x8C,0x21,0xCC,0xE5,0xB4,0x5F,0xD4,0xE1,0xCD,0x70,0xA0,0xE3,0x33,0x7B,0x87,0xE2, + 0x97,0x05,0x05,0xE0,0xA5,0x79,0xA0,0xE1,0x01,0x5C,0x8C,0xE2,0x01,0x4C,0x84,0xE2, + 0xBE,0x78,0xC5,0xE1,0xB6,0x40,0xD4,0xE1,0xCD,0x70,0xA0,0xE3,0x33,0x7B,0x87,0xE2, + 0x97,0x04,0x04,0xE0,0xA4,0x49,0xA0,0xE1,0xB0,0x49,0xC5,0xE1,0x01,0x40,0x86,0xE0, + 0x38,0x41,0xD4,0xE5,0x8D,0x41,0xCC,0xE5,0x92,0x31,0xCC,0xE5,0x01,0x20,0xC0,0xE7, + 0x02,0x00,0x86,0xE0,0xA3,0x12,0xC0,0xE5,0x00,0x10,0xA0,0xE3,0x9A,0x12,0xC0,0xE5, + 0xF0,0x00,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20,0x08,0x4A,0x07,0x49, + 0x12,0x78,0x08,0x68,0x0F,0x23,0x40,0x1C,0x12,0x07,0x12,0x0A,0x9B,0x06,0xD2,0x18, + 0x00,0x03,0x00,0x0B,0x02,0x43,0x0A,0x60,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0xF4,0x05,0x00,0x20,0x78,0x47,0xC0,0x46,0xF1,0x4F,0x2D,0xE9,0xE8,0x14,0x9F,0xE5, + 0x38,0xD0,0x4D,0xE2,0xB0,0x00,0xD1,0xE5,0xB1,0x90,0xD1,0xE5,0xB3,0xA0,0xD1,0xE5, + 0x00,0x00,0x8D,0xE5,0xD4,0x04,0x9F,0xE5,0x00,0x00,0x90,0xE5,0xB0,0x00,0xD0,0xE1, + 0x02,0x0B,0x10,0xE3,0x3C,0xD0,0x8D,0x02,0xF0,0x4F,0xBD,0x08,0x1E,0xFF,0x2F,0x01, + 0x38,0x00,0x9D,0xE5,0x00,0xB0,0xA0,0xE3,0x01,0x00,0x50,0xE3,0x02,0x00,0xA0,0x13, + 0x04,0x00,0x8D,0xE5,0x38,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x3C,0xD0,0x8D,0xD2, + 0xF0,0x4F,0xBD,0xD8,0x1E,0xFF,0x2F,0xD1,0x01,0x00,0x49,0xE2,0x34,0x00,0x8D,0xE5, + 0x0A,0x01,0xA0,0xE1,0xCD,0x20,0xA0,0xE3,0x92,0x00,0x00,0xE0,0x20,0x05,0xA0,0xE1, + 0x30,0x00,0x8D,0xE5,0x8A,0x00,0x8A,0xE0,0x92,0x00,0x00,0xE0,0x20,0x05,0xA0,0xE1, + 0x2C,0x00,0x8D,0xE5,0x8A,0x00,0xA0,0xE1,0x92,0x00,0x00,0xE0,0x20,0x05,0xA0,0xE1, + 0x28,0x00,0x8D,0xE5,0x9A,0x02,0x00,0xE0,0x20,0x05,0xA0,0xE1,0x24,0x00,0x8D,0xE5, + 0x04,0x10,0x9D,0xE5,0x02,0x02,0xA0,0xE3,0x01,0x01,0x80,0xE0,0x20,0x00,0x8D,0xE5, + 0x00,0x70,0x90,0xE5,0x07,0x01,0xA0,0xE1,0x01,0x01,0x17,0xE3,0x20,0x4E,0xA0,0xE1, + 0x17,0x00,0x00,0x1A,0x28,0x04,0x9F,0xE5,0x00,0x10,0xE0,0xE3,0x04,0x01,0x80,0xE0, + 0xB0,0x10,0xC0,0xE1,0xB2,0x10,0xC0,0xE1,0x18,0x04,0x9F,0xE5,0x00,0x20,0xA0,0xE3, + 0x04,0x01,0x80,0xE0,0xB0,0x10,0xC0,0xE1,0xB2,0x10,0xC0,0xE1,0x08,0x04,0x9F,0xE5, + 0x0C,0x14,0x9F,0xE5,0x84,0x00,0x80,0xE0,0xB0,0x20,0xC0,0xE1,0xFC,0x03,0x9F,0xE5, + 0x04,0x31,0x81,0xE0,0x04,0x20,0xC0,0xE7,0x02,0x00,0xA0,0xE1,0x00,0x11,0x83,0xE0, + 0xB0,0x20,0xC1,0xE1,0x01,0x00,0x50,0xE2,0xB2,0x20,0xC1,0xE1,0xFA,0xFF,0xFF,0x5A, + 0xE7,0x00,0x00,0xEA,0xC8,0x03,0x9F,0xE5,0x04,0x81,0x80,0xE0,0xF0,0x30,0xD8,0xE1, + 0x00,0x00,0x53,0xE3,0x09,0x00,0x00,0xAA,0x07,0x03,0xA0,0xE1,0xB4,0x23,0x9F,0xE5, + 0x20,0x0B,0xA0,0xE1,0x3F,0x1B,0xC7,0xE3,0xB0,0x00,0xC8,0xE1,0x04,0x21,0x82,0xE0, + 0xB2,0x10,0xC8,0xE1,0xB0,0x00,0xC2,0xE1,0xB2,0x10,0xC2,0xE1,0xD8,0x00,0x00,0xEA, + 0x34,0x10,0x9D,0xE5,0x00,0x00,0xA0,0xE3,0x00,0x00,0x51,0xE3,0x0A,0x00,0x00,0xDA, + 0x8C,0x13,0x9F,0xE5,0x04,0x21,0x81,0xE0,0x00,0x11,0x82,0xE0,0xB4,0xC0,0xD1,0xE1, + 0x01,0x00,0x80,0xE2,0xB0,0xC0,0xC1,0xE1,0xB6,0xC0,0xD1,0xE1,0xB2,0xC0,0xC1,0xE1, + 0x34,0x10,0x9D,0xE5,0x01,0x00,0x50,0xE1,0xF6,0xFF,0xFF,0xBA,0x07,0x03,0xA0,0xE1, + 0x20,0x1B,0x63,0xE0,0x1C,0x00,0x8D,0xE5,0x54,0x03,0x9F,0xE5,0x00,0x00,0x59,0xE3, + 0x04,0x31,0x80,0xE0,0x09,0x01,0x83,0xE0,0xB4,0x10,0x40,0xE1,0x07,0x1B,0xA0,0xE1, + 0x21,0x1B,0xA0,0xE1,0x18,0x10,0x8D,0xE5,0xB2,0x20,0xD8,0xE1,0x02,0x10,0x41,0xE0, + 0xB2,0x10,0x40,0xE1,0x00,0x00,0xA0,0xE3,0x00,0x50,0xA0,0xE1,0x00,0x10,0xA0,0xE1, + 0x07,0x00,0x00,0xDA,0x01,0x21,0x83,0xE0,0xF0,0xC0,0xD2,0xE1,0xF2,0x20,0xD2,0xE1, + 0x01,0x10,0x81,0xE2,0x09,0x00,0x51,0xE1,0x0C,0x00,0x80,0xE0,0x02,0x50,0x85,0xE0, + 0xF7,0xFF,0xFF,0xBA,0x09,0x10,0xA0,0xE1,0x38,0xFE,0xFF,0xEB,0x00,0x60,0xA0,0xE1, + 0x09,0x10,0xA0,0xE1,0x05,0x00,0xA0,0xE1,0x34,0xFE,0xFF,0xEB,0xC8,0x22,0x9F,0xE5, + 0x00,0x00,0x56,0xE3,0xB2,0x10,0xD2,0xE5,0x00,0x60,0x66,0xD2,0x01,0x00,0x56,0xE1, + 0x0C,0x00,0x00,0xAA,0x00,0x00,0x50,0xE3,0x00,0x00,0x60,0xD2,0x01,0x00,0x50,0xE1, + 0x08,0x00,0x00,0xAA,0xB0,0x02,0x9F,0xE5,0x84,0x10,0x80,0xE0,0xB4,0x00,0xD2,0xE5, + 0xF0,0x30,0xD1,0xE1,0x00,0xC0,0x4A,0xE0,0x0C,0x00,0x53,0xE1,0x03,0x00,0x80,0xB0, + 0xB0,0x00,0xC1,0xB1,0x05,0x00,0x00,0xEA,0x8C,0x02,0x9F,0xE5,0xB5,0x30,0xD2,0xE5, + 0x84,0x00,0x80,0xE0,0xB0,0x10,0xD0,0xE1,0x03,0x10,0x41,0xE0,0xB0,0x10,0xC0,0xE1, + 0x74,0x02,0x9F,0xE5,0x84,0x00,0x80,0xE0,0xF0,0x10,0xD0,0xE1,0x00,0x00,0x51,0xE3, + 0x00,0x10,0xA0,0xD3,0xB0,0x10,0xC0,0xD1,0xF0,0x00,0xD0,0xE1,0x0A,0x00,0x50,0xE1, + 0x58,0x32,0x9F,0xA5,0x05,0x10,0xA0,0xA3,0x04,0x10,0xC3,0xA7,0x1B,0x00,0x00,0xAA, + 0x30,0x10,0x9D,0xE5,0x00,0x00,0x51,0xE1,0x40,0x32,0x9F,0xD5,0x04,0x10,0xA0,0xD3, + 0x04,0x10,0xC3,0xD7,0x15,0x00,0x00,0xDA,0x2C,0x10,0x9D,0xE5,0x00,0x00,0x51,0xE1, + 0x28,0x32,0x9F,0xD5,0x03,0x10,0xA0,0xD3,0x04,0x10,0xC3,0xD7,0x0F,0x00,0x00,0xDA, + 0x28,0x10,0x9D,0xE5,0x00,0x00,0x51,0xE1,0x10,0x32,0x9F,0xD5,0x02,0x10,0xA0,0xD3, + 0x04,0x10,0xC3,0xD7,0x09,0x00,0x00,0xDA,0x24,0x10,0x9D,0xE5,0x00,0x00,0x51,0xE1, + 0xF8,0x31,0x9F,0xD5,0x01,0x10,0xA0,0xD3,0x04,0x10,0xC3,0xD7,0x03,0x00,0x00,0xDA, + 0x00,0x00,0x50,0xE3,0xE4,0x31,0x9F,0x05,0x00,0x10,0xA0,0x03,0x04,0x10,0xC3,0x07, + 0xD0,0x11,0x9F,0xE5,0x1C,0xC0,0x9D,0xE5,0x04,0x11,0x81,0xE0,0x14,0x10,0x8D,0xE5, + 0xF0,0x30,0xD1,0xE1,0x10,0x30,0x8D,0xE5,0xF2,0x10,0xD1,0xE1,0x2C,0x5B,0x63,0xE0, + 0x18,0x30,0x9D,0xE5,0x0C,0x10,0x8D,0xE5,0x01,0x60,0x43,0xE0,0xAC,0x11,0x9F,0xE5, + 0xB6,0x20,0xD2,0xE5,0x04,0x10,0xD1,0xE7,0x02,0x00,0x51,0xE1,0x1B,0x00,0x00,0x3A, + 0x00,0x00,0x55,0xE3,0x00,0x40,0xA0,0x03,0x0A,0x00,0x00,0x0A,0x00,0x10,0x9D,0xE5, + 0x00,0x00,0x65,0xD2,0x05,0x00,0xA0,0xC1,0x01,0x00,0x50,0xE1,0x01,0x40,0xA0,0xB3, + 0x04,0x00,0x00,0xBA,0x00,0x00,0x55,0xE3,0x00,0x00,0x65,0xD2,0x05,0x00,0xA0,0xC1, + 0xD6,0xFD,0xFF,0xEB,0x00,0x40,0xA0,0xE1,0x00,0x00,0x56,0xE3,0x00,0x00,0xA0,0x03, + 0x2C,0x00,0x00,0x0A,0x00,0x10,0x9D,0xE5,0x00,0x00,0x66,0xD2,0x06,0x00,0xA0,0xC1, + 0x01,0x00,0x50,0xE1,0x01,0x00,0xA0,0xB3,0x26,0x00,0x00,0xBA,0x00,0x00,0x56,0xE3, + 0x00,0x00,0x66,0xD2,0x06,0x00,0xA0,0xC1,0xC8,0xFD,0xFF,0xEB,0x21,0x00,0x00,0xEA, + 0x19,0x1E,0xA0,0xE3,0x91,0x00,0x00,0xE0,0x28,0x11,0x9F,0xE5,0x08,0x00,0x8D,0xE5, + 0x91,0x20,0xC0,0xE0,0xC0,0x10,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x0A,0x10,0xA0,0xE1, + 0xBE,0xFD,0xFF,0xEB,0x00,0x00,0x55,0xE3,0x64,0x10,0x60,0xE2,0x00,0x00,0x65,0xD2, + 0x05,0x00,0xA0,0xC1,0x91,0x00,0x00,0xE0,0xFC,0x10,0x9F,0xE5,0x91,0x20,0xC0,0xE0, + 0xC0,0x12,0xA0,0xE1,0xC0,0x4F,0x41,0xE0,0x08,0x00,0x9D,0xE5,0xE4,0x10,0x9F,0xE5, + 0x91,0x20,0xC0,0xE0,0xC0,0x10,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x0A,0x10,0xA0,0xE1, + 0xAE,0xFD,0xFF,0xEB,0x00,0x00,0x56,0xE3,0x64,0x10,0x60,0xE2,0x00,0x00,0x66,0xD2, + 0x06,0x00,0xA0,0xC1,0x91,0x00,0x00,0xE0,0xBC,0x10,0x9F,0xE5,0x91,0x20,0xC0,0xE0, + 0xC0,0x12,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x10,0x10,0x9D,0xE5,0x00,0x00,0x55,0xE3, + 0x04,0x10,0x41,0xB0,0x0C,0x20,0x9D,0xE5,0x04,0x10,0x81,0xA0,0x00,0x00,0x56,0xE3, + 0x00,0x00,0x42,0xB0,0x02,0x00,0x80,0xA0,0x1C,0x20,0x9D,0xE5,0x3F,0x33,0xE0,0xE3, + 0x22,0x2B,0xA0,0xE1,0xB0,0x20,0xC8,0xE1,0x18,0x20,0x9D,0xE5,0xB2,0x20,0xC8,0xE1, + 0x14,0x20,0x9D,0xE5,0xB0,0x10,0xC2,0xE1,0x14,0x20,0x9D,0xE5,0x01,0x18,0x03,0xE0, + 0xB2,0x00,0xC2,0xE1,0x03,0x24,0xC7,0xE3,0xFF,0x28,0xC2,0xE3,0x02,0x10,0x81,0xE1, + 0x03,0x15,0x01,0xE0,0x43,0x08,0x00,0xE0,0x01,0x00,0x80,0xE1,0x20,0x10,0x9D,0xE5, + 0x00,0x00,0x81,0xE5,0x04,0x00,0x9D,0xE5,0x01,0xB0,0x8B,0xE2,0x01,0x00,0x80,0xE2, + 0x04,0x00,0x8D,0xE5,0x38,0x00,0x9D,0xE5,0x00,0x00,0x5B,0xE1,0xEF,0xFE,0xFF,0xBA, + 0x3C,0xD0,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x00,0x93,0x00,0x00, + 0x78,0x06,0x00,0x20,0x6C,0x09,0x00,0x20,0x90,0x09,0x00,0x20,0x50,0x09,0x00,0x20, + 0x62,0x09,0x00,0x20,0xB4,0x09,0x00,0x20,0x67,0x66,0x66,0x66,0x1F,0x85,0xEB,0x51, + 0x12,0x4A,0x29,0x21,0x49,0x01,0x70,0xB4,0x53,0x18,0x05,0x21,0xD4,0x88,0x09,0x02, + 0x80,0x25,0x51,0x18,0x00,0x28,0x0E,0xD0,0x0D,0x48,0x46,0x7B,0x0E,0x83,0xC6,0x89, + 0x4E,0x83,0x06,0x8A,0x8E,0x83,0x40,0x8A,0xC8,0x83,0x09,0x48,0x20,0x30,0x00,0x89, + 0x2C,0x43,0x18,0x80,0x06,0xE0,0x00,0x20,0x08,0x83,0x48,0x83,0x88,0x83,0xC8,0x83, + 0xAC,0x43,0x18,0x80,0xD4,0x80,0x70,0xBC,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0x80,0x93,0x00,0x00,0x7F,0xB5,0x25,0x4D,0x06,0x00,0x1A,0x28,0x0C,0xD1,0x28,0x6A, + 0x00,0x28,0x09,0xD1,0x68,0x6A,0x00,0x28,0x06,0xD1,0x21,0x4C,0x01,0xF0,0xBE,0xFF, + 0x64,0x1E,0xFB,0xD2,0xFF,0x24,0x12,0xE0,0x06,0xF0,0x2C,0xF9,0x01,0xF0,0x5A,0xFE, + 0x01,0xF0,0xA2,0xFE,0x03,0xAA,0x01,0xA9,0x02,0xA8,0x05,0xF0,0x1F,0xF8,0x04,0x00, + 0x03,0x00,0x01,0x9A,0x02,0x99,0x03,0x98,0x00,0x96,0x00,0xF0,0x33,0xF8,0x02,0x20, + 0x07,0xF0,0x24,0xFA,0x02,0x20,0x07,0xF0,0x11,0xFA,0x12,0x49,0xE8,0x68,0xC8,0x61, + 0x28,0x69,0xC8,0x61,0x10,0x48,0xC2,0x68,0x52,0x08,0x52,0x00,0xC2,0x60,0x0F,0x4B, + 0x0F,0x48,0x02,0xE0,0xDA,0x68,0x82,0x42,0x02,0xD8,0x4A,0x69,0x92,0x06,0xF9,0xD5, + 0x48,0x68,0x80,0x07,0xFC,0xD5,0x01,0xF0,0xA9,0xFF,0x01,0x20,0x00,0xF0,0x6E,0xF8, + 0x20,0x00,0x04,0xB0,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x92,0x00,0x00, + 0xE7,0x03,0x00,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40, + 0x50,0xC3,0x00,0x00,0xFF,0xB5,0x05,0x00,0x0E,0x00,0x91,0xB0,0xFE,0xF7,0xF2,0xFF, + 0x1C,0x48,0x03,0x27,0x04,0x04,0x24,0x0C,0x3F,0x02,0x00,0x22,0x39,0x00,0x20,0x00, + 0xFF,0xF7,0xB6,0xFB,0x18,0x49,0x3A,0x00,0x20,0x00,0x00,0x23,0xFF,0xF7,0xB8,0xFB, + 0x16,0x49,0x40,0x22,0x01,0xA8,0xFF,0xF7,0x97,0xFB,0x14,0x99,0x28,0x04,0x09,0x03, + 0x08,0x43,0x13,0x49,0x08,0x43,0x04,0x90,0x13,0x99,0x30,0x04,0x08,0x43,0x05,0x90, + 0x10,0x48,0x11,0x49,0xC0,0x6B,0x10,0x90,0x0C,0x48,0x80,0x69,0x40,0x1C,0x07,0x90, + 0x00,0x20,0x8D,0x42,0x09,0x90,0x02,0xD1,0x06,0x99,0x49,0x1C,0x06,0x91,0x1A,0x99, + 0x1A,0x29,0x00,0xD1,0x0A,0x90,0x01,0xA8,0x07,0xF0,0xF6,0xFA,0x15,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x9D,0x00,0x00,0x00,0x00,0x10,0x40,0xC0,0x92,0x00,0x00, + 0xAB,0x0C,0x00,0x80,0xC0,0x0F,0x00,0x20,0xEC,0x0D,0x00,0x00,0x02,0x4A,0x51,0x69, + 0x81,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x4A,0x51,0x69, + 0x01,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x78,0x47,0xC0,0x46, + 0x01,0x21,0xA0,0xE3,0x50,0x30,0x92,0xE5,0x0C,0x10,0xA0,0xE3,0x03,0x00,0x80,0xE1, + 0x50,0x00,0x82,0xE5,0x00,0x00,0x00,0xEA,0x00,0x00,0xA0,0xE1,0x01,0x10,0x51,0xE2, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x01,0x48,0x40,0x69,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x01,0x48,0x80,0x6A,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x02,0x49,0x08,0x62,0x00,0x20,0x08,0x62,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x01,0x49,0x48,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x07,0x49,0xFF,0x28, + 0x04,0xD1,0x01,0x20,0xC8,0x60,0x00,0x20,0x88,0x61,0x70,0x47,0x8A,0x69,0x12,0x07, + 0x12,0x0F,0x02,0x43,0x8A,0x61,0x02,0x20,0xC8,0x60,0x70,0x47,0x40,0x00,0x00,0x40, + 0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x65,0xDF,0x4D,0xE2,0x00,0x00,0xA0,0xE3, + 0x68,0x01,0x8D,0xE5,0xB4,0x07,0x9F,0xE5,0xB4,0x27,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0xB8,0x21,0xD2,0xE1,0x78,0x10,0xD0,0xE5,0x77,0x70,0xD0,0xE5,0xA4,0x97,0x9F,0xE5, + 0x02,0x10,0x81,0xE0,0xFF,0x80,0x01,0xE2,0x79,0x10,0xD0,0xE5,0x00,0x50,0xE0,0xE3, + 0x00,0xB0,0xA0,0xE3,0x08,0x10,0x8D,0xE5,0x7A,0x00,0xD0,0xE5,0x01,0x60,0xA0,0xE3, + 0x04,0x00,0x8D,0xE5,0x8A,0x01,0xD9,0xE5,0x04,0x40,0xD9,0xE5,0x01,0x00,0x50,0xE3, + 0x0E,0x00,0x00,0xBA,0x06,0x01,0x86,0xE0,0x80,0x00,0x89,0xE0,0x40,0x12,0xD0,0xE5, + 0x00,0x00,0x51,0xE3,0x05,0x00,0x00,0x0A,0x02,0x0C,0x80,0xE2,0x46,0x00,0x80,0xE2, + 0x1C,0x0C,0x00,0xEB,0x00,0x00,0x50,0xE3,0x01,0x00,0x8B,0x12,0xFF,0xB0,0x00,0x12, + 0x8A,0x01,0xD9,0xE5,0x01,0x60,0x86,0xE2,0x06,0x00,0x50,0xE1,0xF0,0xFF,0xFF,0xAA, + 0x34,0x07,0x9F,0xE5,0x00,0xA0,0xA0,0xE3,0xBC,0x3B,0xD0,0xE1,0xB0,0x2C,0xD0,0xE1, + 0x01,0x60,0xA0,0xE3,0x02,0x10,0x43,0xE0,0x00,0x00,0x51,0xE3,0x03,0x10,0x42,0xD0, + 0x01,0x28,0xA0,0xE1,0xBE,0x1B,0xD0,0xE1,0xB2,0x3C,0xD0,0xE1,0x22,0x28,0xA0,0xE1, + 0xBB,0xA2,0xC9,0xE5,0x03,0x00,0x41,0xE0,0x00,0x00,0x50,0xE3,0x01,0x00,0x43,0xD0, + 0x00,0x00,0x5B,0xE3,0x00,0x08,0xA0,0xE1,0x28,0x00,0x52,0x13,0x20,0x08,0xA0,0xE1, + 0x06,0x00,0x00,0x2A,0x32,0x00,0x50,0xE3,0xBB,0x62,0xC9,0x35,0x03,0x00,0x00,0x3A, + 0x64,0x00,0x50,0xE3,0x03,0x00,0xA0,0x23,0x02,0x00,0xA0,0x33,0xBB,0x02,0xC9,0xE5, + 0xBA,0x02,0xD9,0xE5,0x00,0x00,0x50,0xE3,0x0B,0x00,0x00,0x1A,0xBB,0x02,0xD9,0xE5, + 0x01,0x00,0x50,0xE3,0x05,0x00,0x87,0x02,0xFF,0x70,0x00,0x02,0x06,0x00,0x00,0x0A, + 0x02,0x00,0x50,0xE3,0x0A,0x00,0x87,0x02,0x02,0x00,0x00,0x0A,0x03,0x00,0x50,0xE3, + 0x01,0x00,0x00,0x1A,0x0F,0x00,0x87,0xE2,0xFF,0x70,0x00,0xE2,0x09,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x57,0x0F,0x8D,0xE2,0x44,0xFD,0xFF,0xEB,0xB6,0x00,0xD9,0xE1, + 0x78,0xB6,0x9F,0xE5,0x46,0x0F,0x10,0xE3,0x04,0x00,0x00,0x0A,0xBC,0x04,0x00,0xEB, + 0x00,0x60,0xCB,0xE5,0x65,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x50,0x06,0x9F,0xE5,0x00,0xA0,0xCB,0xE5,0x8B,0x01,0xD0,0xE5,0x00,0x00,0x50,0xE3, + 0x40,0x16,0x9F,0x15,0x01,0x00,0x40,0x12,0x8B,0x01,0xC1,0x15,0x00,0x00,0x54,0xE3, + 0x04,0x00,0x00,0x1A,0x2C,0x06,0x9F,0xE5,0x89,0x01,0xD0,0xE5,0x00,0x00,0x50,0xE3, + 0x7C,0x01,0x00,0x0A,0x17,0x00,0x00,0xEA,0x18,0x96,0x9F,0xE5,0x89,0x01,0xD9,0xE5, + 0x00,0x00,0x50,0xE3,0x13,0x00,0x00,0x1A,0x14,0x06,0x9F,0xE5,0x5A,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x25,0xFD,0xFF,0xEB,0x8B,0x01,0xD9,0xE5,0x00,0x00,0x50,0xE3, + 0x70,0x01,0x00,0x1A,0x01,0x00,0x54,0xE3,0x01,0x50,0xA0,0xE3,0x07,0x00,0x00,0xBA, + 0xFF,0x20,0x05,0xE2,0xFF,0x10,0x05,0xE2,0x14,0x30,0xA0,0xE3,0x57,0x0F,0x8D,0xE2, + 0x7D,0xFD,0xFF,0xEB,0x01,0x50,0x85,0xE2,0x04,0x00,0x55,0xE1,0xF7,0xFF,0xFF,0xDA, + 0x88,0x41,0xC9,0xE5,0x63,0x01,0x00,0xEA,0x09,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3, + 0x15,0x0E,0x8D,0xE2,0x11,0xFD,0xFF,0xEB,0x01,0x00,0x87,0xE2,0x90,0x01,0x8D,0xE5, + 0x02,0x00,0x88,0xE2,0x8C,0x01,0x8D,0xE5,0xA8,0x05,0x9F,0xE5,0x01,0x60,0xA0,0xE3, + 0x88,0x01,0x8D,0xE5,0x09,0x00,0x40,0xE2,0x84,0x01,0x8D,0xE5,0x08,0x70,0xA0,0xE3, + 0x0C,0x80,0x8D,0xE2,0x87,0x01,0x87,0xE0,0x0C,0x10,0x8D,0xE2,0x00,0x01,0x81,0xE0, + 0x24,0x20,0xA0,0xE3,0x00,0x10,0xE0,0xE3,0x00,0xFD,0xFF,0xEB,0x01,0x70,0x57,0xE2, + 0xF7,0xFF,0xFF,0x5A,0x06,0x00,0xA0,0xE1,0x46,0x06,0x00,0xEB,0x01,0x00,0x54,0xE3, + 0x00,0x80,0xA0,0xE1,0x01,0x90,0xA0,0xE3,0x47,0x00,0x00,0xBA,0x44,0x05,0x9F,0xE5, + 0x08,0xA0,0xA0,0xE1,0x8A,0x11,0xD0,0xE5,0x01,0x70,0xA0,0xE3,0x01,0x00,0x51,0xE3, + 0x3E,0x00,0x00,0xBA,0x89,0x00,0x80,0xE0,0x80,0x01,0x8D,0xE5,0x01,0x0C,0x80,0xE2, + 0x7C,0x01,0x8D,0xE5,0x89,0x01,0x89,0xE0,0x0C,0x10,0x8D,0xE2,0x78,0x01,0x8D,0xE5, + 0x00,0x01,0x81,0xE0,0x74,0x01,0x8D,0xE5,0x08,0x15,0x9F,0xE5,0x07,0x01,0x87,0xE0, + 0x80,0xB0,0x81,0xE0,0x40,0x02,0xDB,0xE5,0x00,0x00,0x50,0xE3,0x2A,0x00,0x00,0x0A, + 0x02,0x0C,0x8B,0xE2,0x46,0x00,0x80,0xE2,0x70,0x01,0x8D,0xE5,0x81,0x0B,0x00,0xEB, + 0x06,0x00,0x90,0xE1,0x04,0x00,0x00,0x0A,0x70,0x01,0x9D,0xE5,0x7D,0x0B,0x00,0xEB, + 0x00,0x00,0x50,0xE3,0x00,0x00,0x56,0x13,0x1F,0x00,0x00,0x0A,0x80,0x01,0x9D,0xE5, + 0xCD,0x10,0xA0,0xE3,0xB4,0x0F,0xD0,0xE1,0x33,0x1B,0x81,0xE2,0x02,0x3C,0x8B,0xE2, + 0x91,0x00,0x00,0xE0,0xB2,0x24,0xD3,0xE1,0xA0,0x09,0xA0,0xE1,0xB4,0x34,0xD3,0xE1, + 0x00,0x10,0x42,0xE0,0x00,0x00,0x51,0xE3,0x02,0x10,0x40,0xD0,0x7C,0x01,0x9D,0xE5, + 0xCD,0x20,0xA0,0xE3,0xB6,0x00,0xD0,0xE1,0x33,0x2B,0x82,0xE2,0x92,0x00,0x00,0xE0, + 0xA0,0x29,0xA0,0xE1,0x02,0x00,0x43,0xE0,0x00,0x00,0x50,0xE3,0x03,0x00,0x42,0xD0, + 0x91,0x01,0x02,0xE0,0x00,0x10,0xA0,0xE1,0x91,0x20,0x20,0xE0,0x0A,0x00,0x50,0xE1, + 0x03,0x00,0x00,0xAA,0x78,0x11,0x9D,0xE5,0x0C,0x20,0x8D,0xE2,0x00,0xA0,0xA0,0xE1, + 0x01,0x71,0x82,0xE7,0x74,0x11,0x9D,0xE5,0x07,0x01,0x81,0xE7,0x44,0x04,0x9F,0xE5, + 0x01,0x70,0x87,0xE2,0x8A,0x01,0xD0,0xE5,0x07,0x00,0x50,0xE1,0xC9,0xFF,0xFF,0xAA, + 0x01,0x90,0x89,0xE2,0x04,0x00,0x59,0xE1,0xB7,0xFF,0xFF,0xDA,0x01,0x00,0xA0,0xE3, + 0x01,0x00,0x54,0xE3,0x6C,0x01,0x8D,0xE5,0x7D,0x00,0x00,0xBA,0x0C,0x70,0x8D,0xE2, + 0x01,0xC0,0xA0,0xE3,0x01,0x00,0x54,0xE3,0x08,0x30,0xA0,0xE1,0x0C,0x00,0xA0,0xE1, + 0x72,0x00,0x00,0xBA,0x57,0x1F,0x8D,0xE2,0x00,0x10,0xD1,0xE7,0x00,0x00,0x51,0xE3, + 0x0B,0x00,0x00,0x1A,0x80,0x11,0x80,0xE0,0x01,0x21,0x97,0xE7,0x01,0x91,0x87,0xE0, + 0x02,0x11,0x99,0xE7,0x03,0x00,0x51,0xE1,0x05,0x00,0x00,0xAA,0x00,0x00,0x51,0xE3, + 0x00,0x00,0x52,0xA3,0x02,0x00,0x00,0xBA,0x00,0x50,0xA0,0xE1,0x01,0x30,0xA0,0xE1, + 0x00,0xC0,0xA0,0xE3,0x01,0x00,0x80,0xE2,0x04,0x00,0x50,0xE1,0xEC,0xFF,0xFF,0xDA, + 0x00,0x00,0x5C,0xE3,0x5D,0x00,0x00,0x1A,0x68,0x01,0x9D,0xE5,0x85,0x91,0x85,0xE0, + 0x01,0x00,0x80,0xE2,0x68,0x01,0x8D,0xE5,0x09,0x01,0x97,0xE7,0x94,0xB3,0x9F,0xE5, + 0x00,0x01,0x80,0xE0,0x80,0x00,0x8B,0xE0,0x01,0x1C,0x80,0xE2,0x05,0x01,0x85,0xE0, + 0x80,0xA0,0x8B,0xE0,0xE6,0x10,0x81,0xE2,0x63,0x0F,0x8A,0xE2,0x0A,0x20,0xA0,0xE3, + 0x84,0xFC,0xFF,0xEB,0x85,0x00,0x8B,0xE0,0xB4,0x1F,0xD0,0xE1,0xCD,0x20,0xA0,0xE3, + 0x33,0x2B,0x82,0xE2,0x92,0x01,0x01,0xE0,0xA1,0x29,0xA0,0xE1,0x01,0x1C,0x8A,0xE2, + 0x01,0x0C,0x80,0xE2,0xBE,0x28,0xC1,0xE1,0xB6,0x00,0xD0,0xE1,0xCD,0x20,0xA0,0xE3, + 0x33,0x2B,0x82,0xE2,0x92,0x00,0x00,0xE0,0xA0,0x09,0xA0,0xE1,0xB0,0x09,0xC1,0xE1, + 0x05,0x00,0x8B,0xE0,0x38,0x01,0xD0,0xE5,0x8D,0x01,0xCA,0xE5,0x92,0x01,0xDA,0xE5, + 0x90,0x11,0x9D,0xE5,0x01,0x00,0x50,0xE1,0x01,0x00,0x80,0x32,0x92,0x01,0xCA,0x35, + 0x92,0x01,0xDA,0xE5,0x13,0x00,0x50,0xE3,0x06,0x00,0x00,0x9A,0xCD,0x10,0xA0,0xE3, + 0x90,0x01,0x01,0xE0,0x8C,0x21,0x9D,0xE5,0x21,0x16,0xA0,0xE1,0x02,0x00,0x51,0xE1, + 0x14,0x00,0x80,0x32,0x92,0x01,0xCA,0x35,0x8C,0x01,0xDA,0xE5,0x57,0xEF,0x8D,0xE2, + 0x01,0x00,0x54,0xE3,0x05,0x00,0xCE,0xE7,0x88,0x11,0x9D,0xE5,0x01,0x50,0xC0,0xE7, + 0x8C,0x11,0xDA,0xE5,0x84,0x21,0x9D,0xE5,0x00,0x00,0xA0,0xE3,0x02,0x00,0xC1,0xE7, + 0x09,0x11,0x97,0xE7,0x15,0x2E,0x8D,0xE2,0x01,0x00,0xC2,0xE7,0x01,0x00,0xA0,0xE3, + 0x19,0x00,0x00,0xBA,0xAC,0x12,0x9F,0xE5,0x8A,0xC1,0xD1,0xE5,0x09,0x21,0x97,0xE7, + 0x80,0xA1,0x80,0xE0,0x00,0x10,0xE0,0xE3,0x0A,0xB1,0x87,0xE0,0x02,0x11,0x8B,0xE7, + 0x00,0x10,0xDE,0xE7,0x08,0x30,0xA0,0xE1,0x00,0x00,0x51,0xE3,0x0B,0x00,0x00,0x1A, + 0x01,0x00,0x5C,0xE3,0x01,0x10,0xA0,0xE3,0x08,0x00,0x00,0xBA,0x01,0x21,0x9B,0xE7, + 0x01,0x00,0x72,0xE3,0x02,0x00,0x00,0xDA,0x03,0x00,0x52,0xE1,0x02,0x30,0xA0,0xB1, + 0x0A,0x11,0x87,0xB7,0x01,0x10,0x81,0xE2,0x01,0x00,0x5C,0xE1,0xF6,0xFF,0xFF,0xAA, + 0x01,0x00,0x80,0xE2,0x04,0x00,0x50,0xE1,0xE7,0xFF,0xFF,0xDA,0x44,0x02,0x9F,0xE5, + 0x68,0x11,0x9D,0xE5,0x8A,0x01,0xD0,0xE5,0x01,0x00,0x50,0xE1,0x04,0x00,0x00,0xDA, + 0x6C,0x01,0x9D,0xE5,0x01,0x00,0x80,0xE2,0x04,0x00,0x50,0xE1,0x6C,0x01,0x8D,0xE5, + 0x82,0xFF,0xFF,0xDA,0x06,0x00,0xB0,0xE1,0x01,0x10,0x46,0xE2,0xFF,0x60,0x01,0xE2, + 0x21,0xFF,0xFF,0x1A,0x0C,0x82,0x9F,0xE5,0x01,0x60,0xA0,0xE3,0x8A,0x01,0xD8,0xE5, + 0x00,0x70,0xA0,0xE3,0x06,0xA0,0xA0,0xE1,0x01,0x00,0x50,0xE3,0x43,0x00,0x00,0xBA, + 0x15,0x0E,0x8D,0xE2,0x06,0x00,0xD0,0xE7,0x00,0x00,0x50,0xE3,0x3B,0x00,0x00,0x0A, + 0x06,0x01,0x86,0xE0,0x80,0x50,0x88,0xE0,0x40,0x12,0xD5,0xE5,0x84,0x01,0x9D,0xE5, + 0x0A,0x90,0x84,0xE0,0x00,0x10,0xD1,0xE7,0x08,0x00,0x9D,0xE5,0x00,0x00,0x51,0xE1, + 0x23,0x00,0x00,0x2A,0x08,0x00,0x59,0xE3,0x21,0x00,0x00,0xCA,0x02,0x0C,0x85,0xE2, + 0x46,0x00,0x80,0xE2,0xB3,0x0A,0x00,0xEB,0x00,0x00,0x50,0xE3,0x1C,0x00,0x00,0x0A, + 0x40,0x02,0xD5,0xE5,0x84,0x11,0x9D,0xE5,0x84,0x21,0x9D,0xE5,0x01,0x10,0xD0,0xE7, + 0x01,0x10,0x81,0xE2,0x02,0x10,0xC0,0xE7,0x09,0x01,0x89,0xE0,0x80,0xB0,0x88,0xE0, + 0x09,0x1D,0x85,0xE2,0x63,0x0F,0x8B,0xE2,0x0A,0x20,0xA0,0xE3,0x05,0xFC,0xFF,0xEB, + 0xED,0x01,0xD5,0xE5,0x57,0x1F,0x8D,0xE2,0x01,0xA0,0x8A,0xE2,0x93,0x01,0xCB,0xE5, + 0xEE,0x01,0xD5,0xE5,0x01,0x70,0x87,0xE2,0x94,0x01,0xCB,0xE5,0x40,0x02,0xD5,0xE5, + 0x09,0x00,0xC1,0xE7,0x88,0x11,0x9D,0xE5,0x01,0x90,0xC0,0xE7,0x58,0x01,0x9F,0xE5, + 0x00,0x10,0xD0,0xE5,0x00,0x00,0x51,0xE3,0x01,0x10,0xA0,0x03,0x00,0x10,0xC0,0x05, + 0x0E,0x00,0x00,0xEA,0x02,0x0C,0x85,0xE2,0x46,0x00,0x80,0xE2,0x91,0x0A,0x00,0xEB, + 0x00,0x00,0x50,0xE3,0x09,0x00,0x00,0x0A,0x01,0x00,0xA0,0xE3,0xB9,0x02,0xC8,0xE5, + 0x46,0x02,0xD5,0xE5,0x13,0x00,0x50,0xE3,0x04,0x00,0x00,0x9A,0x89,0x01,0xD8,0xE5, + 0x01,0x00,0x50,0xE3,0xB6,0x00,0xD8,0x01,0x04,0x00,0x80,0x03,0xB6,0x00,0xC8,0x01, + 0x8A,0x01,0xD8,0xE5,0x01,0x60,0x86,0xE2,0x06,0x00,0x50,0xE1,0xBB,0xFF,0xFF,0xAA, + 0xB6,0x00,0xD8,0xE1,0x04,0x00,0x10,0xE3,0x03,0x00,0x00,0x0A,0x04,0x10,0x9D,0xE5, + 0x04,0x00,0xC0,0xE3,0x8B,0x11,0xC8,0xE5,0xB6,0x00,0xC8,0xE1,0x01,0x00,0x54,0xE3, + 0x01,0x50,0xA0,0xE3,0x21,0x00,0x00,0xBA,0x57,0x6F,0x8D,0xE2,0x01,0x90,0xA0,0xE3, + 0x05,0x00,0xD6,0xE7,0x00,0x00,0x50,0xE3,0x0F,0x00,0x00,0x1A,0x01,0x00,0xA0,0xE3, + 0x00,0x10,0x88,0xE0,0xA3,0x22,0xD1,0xE5,0x00,0x00,0x52,0xE3,0xAC,0x12,0xD1,0x05, + 0x00,0x00,0x51,0x03,0x05,0x00,0x00,0x1A,0xFF,0x20,0x00,0xE2,0xFF,0x10,0x05,0xE2, + 0x01,0x30,0xA0,0xE3,0x57,0x0F,0x8D,0xE2,0x27,0xFC,0xFF,0xEB,0x02,0x00,0x00,0xEA, + 0x01,0x00,0x80,0xE2,0x09,0x00,0x50,0xE3,0xF0,0xFF,0xFF,0xBA,0x8B,0x01,0xD8,0xE5, + 0x00,0x00,0x50,0xE3,0x06,0x00,0x00,0x0A,0x05,0x01,0x85,0xE0,0x80,0xA0,0x88,0xE0, + 0x01,0x0C,0x8A,0xE2,0x92,0x00,0x80,0xE2,0x5A,0x0A,0x00,0xEB,0x00,0x00,0x50,0xE3, + 0x92,0x91,0xCA,0x05,0x01,0x50,0x85,0xE2,0x04,0x00,0x55,0xE1,0xDF,0xFF,0xFF,0xDA, + 0x07,0x00,0x84,0xE0,0x88,0x01,0xC8,0xE5,0x28,0x00,0x9F,0xE5,0x5A,0x20,0xA0,0xE3, + 0x88,0x11,0xD0,0xE5,0x8A,0x11,0xC0,0xE5,0x63,0x1F,0x80,0xE2,0x09,0x0D,0x80,0xE2, + 0xAC,0xFB,0xFF,0xEB,0x65,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x78,0x06,0x00,0x20,0x40,0x05,0x00,0x20,0x40,0x00,0x00,0x20,0x40,0x02,0x00,0x20, + 0x67,0x05,0x00,0x20,0x26,0x02,0x00,0x20,0xE3,0x02,0x00,0x20,0xF4,0x05,0x00,0x20, + 0xF1,0xB5,0x38,0x48,0x86,0xB0,0x05,0x90,0x00,0x20,0x04,0x90,0x36,0x48,0x41,0x7F, + 0x01,0x91,0x01,0x00,0x20,0x39,0x49,0x7F,0x00,0x91,0x00,0x21,0x02,0x91,0x01,0x7D, + 0x00,0x20,0xC0,0x43,0x00,0x29,0x06,0x99,0x03,0xD1,0x00,0x29,0x03,0xD1,0x01,0x20, + 0x01,0xE0,0x00,0x29,0xFB,0xD1,0x03,0x90,0x01,0xF0,0xFE,0xF8,0x01,0xF0,0xAC,0xF9, + 0x00,0x24,0x27,0x00,0x00,0x26,0x31,0x00,0x38,0x00,0x02,0xF0,0x0D,0xF9,0x00,0x28, + 0x28,0xD0,0x0E,0x21,0x79,0x43,0x05,0x9A,0x89,0x19,0x89,0x00,0x51,0x58,0x09,0x05, + 0x09,0x0D,0x0D,0x1A,0x06,0x98,0x00,0x28,0x0D,0xD0,0x00,0x2D,0x1A,0xDA,0x03,0x9A, + 0x31,0x00,0x38,0x00,0x06,0xF0,0x3C,0xFB,0x40,0x1C,0x14,0xD1,0x00,0x98,0x28,0x18, + 0x10,0xD5,0x02,0x20,0x0D,0xE0,0x00,0x2D,0x0C,0xDD,0x03,0x9A,0x31,0x00,0x38,0x00, + 0x06,0xF0,0x2E,0xFB,0x40,0x1C,0x06,0xD1,0x01,0x98,0x28,0x1A,0x00,0x28,0x01,0xDD, + 0x03,0x20,0x04,0x90,0x64,0x1C,0x76,0x1C,0x0E,0x2E,0xCC,0xD3,0x7F,0x1C,0x15,0x2F, + 0xC8,0xD3,0x20,0x00,0xFF,0x38,0x27,0x38,0x04,0xD1,0x04,0x98,0x07,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x02,0x98,0x41,0x1C,0x02,0x91,0x01,0x21,0x49,0x02,0x88,0x42, + 0xB2,0xD9,0x06,0x98,0x00,0x28,0x01,0xD0,0x02,0x20,0x00,0xE0,0x03,0x20,0x04,0x90, + 0xEC,0xE7,0x00,0x00,0xD4,0x02,0x10,0x40,0x20,0x93,0x00,0x00,0xF0,0xB5,0x7B,0x4A, + 0xFF,0xB0,0xBC,0xB0,0x40,0x18,0xB9,0x92,0x42,0x00,0x80,0x18,0xB8,0x90,0x48,0x42, + 0xB7,0x90,0x77,0x48,0x77,0x4E,0x07,0x7B,0x02,0xA8,0x01,0x90,0x76,0x48,0xBA,0x90, + 0x00,0x7D,0x00,0x28,0x02,0xD1,0xB7,0x98,0x40,0x42,0xB7,0x90,0x73,0x4A,0x00,0x21, + 0x30,0x00,0xFE,0xF7,0xB5,0xFE,0x00,0x25,0x00,0x24,0x6F,0x48,0x20,0x38,0x01,0x7D, + 0xC9,0x07,0x14,0xD0,0x6E,0x49,0x09,0x78,0x00,0x29,0x16,0xD0,0xBD,0x42,0x0E,0xD1, + 0x81,0x7D,0xA1,0x42,0x0B,0xD0,0xC1,0x7D,0xA1,0x42,0x08,0xD0,0x01,0x7E,0xA1,0x42, + 0x05,0xD0,0x41,0x7E,0xA1,0x42,0x02,0xD0,0x80,0x7E,0xA0,0x42,0x16,0xD1,0xB7,0x9A, + 0x21,0x00,0x28,0x00,0x06,0xF0,0xC4,0xFA,0x10,0xE0,0xBC,0x42,0xF7,0xD1,0x81,0x7D, + 0xA9,0x42,0xF4,0xD0,0xC1,0x7D,0xA9,0x42,0xF1,0xD0,0x01,0x7E,0xA9,0x42,0xEE,0xD0, + 0x41,0x7E,0xA9,0x42,0xEB,0xD0,0x80,0x7E,0xA8,0x42,0xE8,0xD0,0x64,0x1C,0x0E,0x2C, + 0xCB,0xD3,0x6D,0x1C,0x15,0x2D,0xC7,0xD3,0x01,0xF0,0x4E,0xF8,0x01,0xF0,0xFC,0xF8, + 0x00,0x25,0x00,0x24,0x0E,0x20,0x2F,0x00,0x47,0x43,0x21,0x00,0x28,0x00,0x02,0xF0, + 0x5B,0xF8,0x00,0x28,0x0F,0xD0,0xB9,0x9B,0x3A,0x19,0x91,0x00,0x59,0x58,0x03,0x04, + 0x09,0x05,0x09,0x0D,0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0, + 0x40,0x1A,0x51,0x00,0x70,0x52,0x21,0x00,0x28,0x00,0x02,0xF0,0x85,0xF8,0x39,0x19, + 0x01,0x9A,0x49,0x00,0x64,0x1C,0x0E,0x2C,0x50,0x52,0xDE,0xD3,0x6D,0x1C,0x15,0x2D, + 0xD7,0xD3,0x00,0x20,0x00,0x90,0x01,0xF0,0xCF,0xF8,0x00,0x25,0x00,0x24,0x21,0x00, + 0x28,0x00,0x02,0xF0,0x31,0xF8,0x00,0x28,0x3E,0xD0,0x0E,0x21,0x69,0x43,0xB9,0x9B, + 0x0A,0x19,0x91,0x00,0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D,0x1B,0x0C,0xCB,0x1A, + 0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0,0x40,0x1A,0x57,0x00,0xF1,0x5B,0x00,0x04, + 0x00,0x0C,0x81,0x42,0x06,0xD9,0xF0,0x53,0x21,0x00,0x28,0x00,0x02,0xF0,0x54,0xF8, + 0x01,0x99,0xC8,0x53,0x00,0x98,0x03,0x21,0xFE,0xF7,0xE0,0xFD,0x00,0x29,0x01,0xD0, + 0x02,0x29,0x0D,0xD1,0xBA,0x98,0x00,0x7D,0x00,0x28,0x02,0xD1,0x00,0x22,0x43,0x1E, + 0x01,0xE0,0x01,0x22,0x00,0x23,0x21,0x00,0x28,0x00,0x06,0xF0,0x19,0xFA,0x0B,0xE0, + 0x00,0x22,0xD2,0x43,0x00,0x23,0x21,0x00,0x28,0x00,0x06,0xF0,0x11,0xFA,0x00,0x28, + 0x02,0xD1,0x00,0x22,0x01,0x23,0xEE,0xE7,0x64,0x1C,0x0E,0x2C,0xB7,0xD3,0x6D,0x1C, + 0x15,0x2D,0xB3,0xD3,0x00,0x98,0x40,0x1C,0x00,0x90,0xB8,0x98,0x40,0x1E,0xB8,0x90, + 0x18,0xD2,0x00,0x25,0x00,0x24,0x0E,0x20,0x2E,0x00,0x46,0x43,0x01,0x99,0x30,0x19, + 0x40,0x00,0x0A,0x5A,0x21,0x00,0x28,0x00,0x06,0xF0,0x0E,0xFA,0x64,0x1C,0x0E,0x2C, + 0xF4,0xD3,0x6D,0x1C,0x15,0x2D,0xED,0xD3,0x7F,0xB0,0x3C,0xB0,0xF0,0xBC,0x08,0xBC, + 0x00,0x20,0x18,0x47,0x00,0xF0,0xB0,0xFF,0x8D,0xE7,0x00,0x00,0xD4,0x02,0x10,0x40, + 0xE0,0x04,0x00,0x20,0x00,0x00,0x00,0x10,0x20,0x93,0x00,0x00,0xD2,0x02,0x00,0x00, + 0x6D,0x05,0x00,0x20,0xF8,0xB5,0x01,0x22,0x52,0x07,0x10,0x68,0x01,0x28,0x03,0xD0, + 0x10,0x68,0x01,0x28,0x43,0xD9,0x02,0x20,0x86,0x46,0x22,0x48,0x00,0x90,0x80,0x7B, + 0x00,0x28,0x3C,0xD0,0x00,0x21,0x13,0x25,0x1F,0x4F,0xAD,0x01,0x32,0xE0,0x72,0x46, + 0x8A,0x18,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x28,0xD1, + 0x00,0x9C,0x93,0x00,0xA6,0x7B,0x1B,0x0F,0x21,0xE0,0x84,0x00,0xE4,0x19,0x64,0x19, + 0x24,0x6B,0xA4,0x00,0x24,0x0F,0xA3,0x42,0x18,0xD1,0x80,0x00,0xC0,0x19,0x40,0x19, + 0x00,0x6B,0x92,0x0A,0x83,0x05,0x92,0x02,0x9B,0x0D,0x1A,0x43,0x0F,0x4B,0x1A,0x40, + 0x83,0x01,0x9B,0x0D,0x1B,0x04,0x1A,0x43,0x3F,0x23,0x9B,0x02,0x00,0x04,0x80,0x0E, + 0x9A,0x43,0x80,0x02,0x02,0x43,0x60,0x46,0x02,0x60,0x02,0xE0,0x40,0x1C,0x86,0x42, + 0xDB,0xD8,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42,0xC7,0xD8,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x20,0x05,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0xFF,0x00,0xFC, + 0xFC,0xB5,0x04,0x00,0x60,0x48,0x8E,0x46,0x02,0x8C,0x60,0x49,0x40,0x8C,0x01,0x91, + 0x4B,0x89,0x40,0x39,0x00,0x91,0x89,0x7F,0x00,0x25,0x2F,0x00,0xC9,0x07,0x01,0x26, + 0x00,0x29,0xAC,0x46,0x01,0xD1,0xE6,0x71,0xAA,0xE0,0x01,0x99,0x09,0x7A,0x00,0x29, + 0x0D,0xD0,0x01,0x29,0x0F,0xD0,0x02,0x29,0x07,0xD0,0x03,0x29,0xF4,0xD1,0x17,0x00, + 0xD1,0x18,0x0A,0x04,0x12,0x0C,0x03,0x00,0x05,0xE0,0x1A,0x00,0xFB,0xE7,0x84,0x46, + 0xC0,0x18,0x03,0x04,0x1B,0x0C,0x60,0x88,0xA1,0x88,0x87,0x42,0x5C,0xDC,0x82,0x42, + 0x5A,0xDB,0x8C,0x45,0x58,0xDC,0x8B,0x42,0x56,0xDB,0x01,0x25,0x72,0x46,0x00,0x2A, + 0x7B,0xD0,0x06,0x27,0x01,0x2A,0x0E,0xD0,0x02,0x2A,0x18,0xD0,0x03,0x2A,0x76,0xD1, + 0xE2,0x79,0xD3,0x07,0x2D,0xD0,0x01,0x2A,0x01,0xD0,0x05,0x2A,0x27,0xD1,0x09,0x20, + 0x00,0x25,0xE0,0x71,0x6B,0xE0,0x00,0x9A,0x92,0x7E,0x00,0x2A,0x67,0xD1,0x00,0xF0, + 0x79,0xF8,0x06,0x00,0x0F,0xD1,0x02,0x20,0xE0,0x71,0x26,0x72,0x5F,0xE0,0xE2,0x79, + 0xD3,0x07,0xE8,0xD1,0x92,0x07,0x5A,0xD5,0x00,0xF0,0x6C,0xF8,0x06,0x00,0x08,0xD0, + 0x20,0x7A,0x00,0x28,0x05,0xD1,0x31,0x00,0x20,0x00,0xE7,0x71,0xFE,0xF7,0x94,0xFD, + 0xEB,0xE7,0x31,0x00,0x20,0x00,0xE7,0x71,0xFE,0xF7,0x8E,0xFD,0x47,0xE0,0x11,0x20, + 0x44,0xE0,0x92,0x07,0x43,0xD5,0x00,0xF0,0x55,0xF8,0x21,0x7A,0x00,0x28,0x0A,0xD0, + 0x00,0x29,0x0C,0xD0,0x81,0x42,0x08,0xD1,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7, + 0x7B,0xFD,0xA6,0x71,0x05,0xE0,0x00,0x29,0x01,0xD0,0x12,0x20,0xF5,0xE7,0x02,0x20, + 0xE0,0x71,0x00,0x20,0x20,0x72,0x2A,0xE0,0x70,0x46,0x00,0x28,0x25,0xD0,0x01,0x28, + 0x06,0xD0,0x02,0x28,0x06,0xD0,0x03,0x28,0x21,0xD1,0xE0,0x79,0x80,0x07,0x0E,0xD4, + 0xE6,0x71,0x1C,0xE0,0xE0,0x79,0x80,0x07,0xFA,0xD5,0x21,0x7A,0x00,0x29,0x04,0xD0, + 0x12,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0x57,0xFD,0xE6,0x71,0x09,0xE0,0x02,0x20, + 0xE0,0x71,0x21,0x7A,0x00,0x29,0x04,0xD0,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7, + 0x4B,0xFD,0x01,0x25,0xA6,0x71,0x02,0xE0,0xFF,0xE7,0x00,0x20,0xE0,0x71,0x08,0x49, + 0xC8,0x88,0x82,0x07,0x04,0xD1,0xE2,0x79,0x92,0x07,0x92,0x0F,0x10,0x43,0xC8,0x80, + 0x28,0x00,0xFC,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00,0xE0,0x04,0x00,0x20, + 0x40,0x00,0x00,0x20,0xF0,0xB4,0x16,0x4B,0x04,0x00,0xDE,0x7F,0x00,0x22,0x10,0x00, + 0x00,0x2E,0x23,0xD0,0x1B,0x7E,0x00,0x2B,0x20,0xD1,0x12,0x4F,0x1C,0xE0,0xD3,0x00, + 0xDD,0x19,0x09,0x23,0xDB,0x01,0xEB,0x18,0x00,0x25,0x5D,0x5F,0xA5,0x42,0x0E,0xDC, + 0x04,0x25,0x5D,0x5F,0xA5,0x42,0x0A,0xDB,0x02,0x25,0x5D,0x5F,0x8D,0x42,0x06,0xDC, + 0x06,0x25,0x5D,0x5F,0x8D,0x42,0x02,0xDB,0x50,0x1C,0x00,0x06,0x00,0x0E,0x00,0x28, + 0x04,0xD1,0x52,0x1C,0x12,0x06,0x12,0x0E,0x96,0x42,0xE0,0xD8,0xF0,0xBC,0x70,0x47, + 0xA0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB5,0x00,0x20,0x8D,0xB0,0x09,0x90, + 0x08,0x90,0xBA,0x48,0xBA,0x4C,0x00,0x68,0x01,0x88,0x07,0x91,0x01,0x00,0x40,0x31, + 0xCA,0x7F,0x60,0x30,0x06,0x92,0x8A,0x7F,0x05,0x92,0x40,0x78,0x04,0x90,0x88,0x7D, + 0xB3,0x49,0x03,0x90,0xE0,0x88,0x09,0x79,0x02,0x07,0x04,0xD5,0x00,0x29,0x02,0xD1, + 0x08,0x22,0x90,0x43,0xE0,0x80,0xAF,0x48,0x00,0x25,0x45,0x5F,0xFF,0x22,0xFF,0x23, + 0x2D,0x32,0x01,0x33,0x95,0x42,0x03,0xDD,0x02,0x25,0x45,0x5F,0x95,0x42,0x03,0xDC, + 0x04,0x22,0x82,0x5E,0x0A,0x2A,0x04,0xDD,0xE2,0x88,0x1A,0x43,0xE2,0x80,0x0A,0x22, + 0x04,0xE0,0x06,0x22,0x82,0x5E,0x00,0x2A,0x02,0xD0,0x52,0x1E,0xC2,0x80,0x02,0xE0, + 0xE2,0x88,0x9A,0x43,0xE2,0x80,0x07,0x9A,0x92,0x04,0x7E,0xD5,0x40,0x7A,0x00,0x22, + 0x00,0x28,0x02,0xD1,0x00,0x29,0x00,0xD1,0x01,0x22,0x00,0x92,0x00,0xF0,0x38,0xF9, + 0x97,0x49,0x11,0x22,0x20,0x79,0x92,0x01,0x8A,0x18,0x0B,0x92,0x23,0x22,0x52,0x01, + 0x8D,0x18,0x00,0x28,0x0C,0x90,0x4F,0xD0,0x21,0x89,0x90,0x4A,0x01,0x20,0x0A,0x91, + 0x16,0x68,0x40,0x36,0x72,0x8B,0x91,0x42,0x00,0xD3,0x00,0x20,0x02,0x90,0x0A,0x98, + 0x0A,0x22,0x12,0x21,0x50,0x43,0x69,0x5E,0x0F,0x00,0xFE,0xF7,0x9F,0xFA,0x31,0x7C, + 0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x01,0x90,0x0A,0x98,0x0A,0x21, + 0xC0,0x1B,0xFE,0xF7,0x93,0xFA,0x71,0x7C,0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0, + 0x00,0x20,0xAA,0x89,0xB3,0x7C,0x07,0x00,0x01,0x21,0x08,0x00,0x9A,0x42,0x00,0xD8, + 0x00,0x20,0x0B,0x9A,0xF3,0x7C,0x52,0x6B,0x9A,0x42,0x00,0xDB,0x00,0x21,0x02,0x9A, + 0x00,0x2A,0x19,0xD0,0x01,0x9A,0x00,0x2A,0x16,0xD0,0x00,0x2F,0x14,0xD0,0x00,0x28, + 0x12,0xD0,0x00,0x29,0x10,0xD0,0x72,0x48,0xC0,0x30,0xC0,0x6A,0x00,0x28,0x0B,0xD1, + 0x71,0x48,0x00,0x88,0x1E,0x28,0x07,0xD2,0x68,0x7C,0x00,0x28,0x1B,0xD0,0x71,0x7E, + 0x88,0x42,0x18,0xD8,0x40,0x1E,0x15,0xE0,0x68,0x49,0x0B,0x98,0x09,0x68,0x40,0x6B, + 0x40,0x31,0x0A,0x7D,0x90,0x42,0x0E,0xDB,0x0C,0x98,0x00,0x28,0x0B,0xD0,0xE0,0x88, + 0xC0,0x06,0x08,0xD4,0x68,0x7C,0xC9,0x7D,0x88,0x42,0x04,0xD2,0x03,0x99,0x88,0x42, + 0x01,0xD9,0x40,0x1C,0x68,0x74,0x68,0x7C,0x00,0xE0,0x1B,0xE0,0x03,0x99,0x10,0x22, + 0x88,0x42,0x0A,0xD8,0x00,0x98,0x00,0x28,0x07,0xD1,0xE0,0x88,0x10,0x43,0xE0,0x80, + 0x56,0x48,0x00,0x68,0x40,0x30,0x00,0x7E,0x0E,0xE0,0xE1,0x88,0xC8,0x06,0x0C,0xD5, + 0x28,0x7C,0x00,0x28,0x07,0xD1,0x51,0x48,0x91,0x43,0xE1,0x80,0x00,0x68,0x40,0x30, + 0x40,0x7D,0x68,0x74,0x01,0xE0,0x40,0x1E,0x28,0x74,0x20,0x79,0x00,0x28,0x7E,0xD0, + 0xE0,0x88,0x80,0x06,0x0B,0xD5,0x04,0xA8,0x03,0xC8,0x81,0x42,0x05,0xD9,0x08,0x00, + 0x04,0x99,0x40,0x1A,0x00,0x06,0x00,0x0E,0x00,0xE0,0x01,0x20,0x05,0x90,0x01,0x22, + 0x50,0x00,0x01,0x19,0x8C,0x46,0xFF,0x31,0x61,0x31,0xCB,0x89,0x00,0x2B,0x6F,0xD0, + 0x07,0x9D,0x00,0x20,0xAD,0x07,0x08,0xD5,0x06,0x9D,0xAB,0x42,0x05,0xD9,0x20,0x71, + 0xE0,0x88,0x08,0x23,0x18,0x43,0xE0,0x80,0x01,0x20,0x07,0x9B,0x5B,0x07,0x5F,0xD5, + 0x00,0x28,0x5D,0xD1,0xC8,0x89,0x05,0x99,0x88,0x42,0x59,0xD3,0x37,0x48,0x00,0x88, + 0x00,0x28,0x55,0xD0,0x00,0x23,0x01,0x20,0x29,0xE0,0xFF,0x25,0x21,0x18,0x66,0x35, + 0x6D,0x5C,0x95,0x42,0x22,0xD1,0x5B,0x1C,0xFF,0x31,0x21,0x31,0x09,0x7E,0x09,0x91, + 0x01,0x00,0x14,0xE0,0x4D,0x00,0x2D,0x19,0x2E,0x00,0xE0,0x36,0xF7,0x8A,0xFF,0x35, + 0x01,0x35,0xB7,0x82,0x2F,0x89,0xEF,0x80,0x65,0x18,0x2E,0x00,0xFF,0x36,0x21,0x36, + 0x77,0x7E,0xFF,0x35,0x61,0x35,0x37,0x76,0xAF,0x79,0x49,0x1C,0x6F,0x71,0x25,0x79, + 0x8D,0x42,0xE7,0xDA,0x21,0x79,0x49,0x1E,0x40,0x1E,0x21,0x71,0x40,0x1C,0x21,0x79, + 0x81,0x42,0xD2,0xDA,0x00,0x2B,0x23,0xDD,0x01,0x2B,0x05,0xDD,0x01,0x20,0x08,0x90, + 0xE0,0x88,0x20,0x21,0x08,0x43,0xE0,0x80,0x21,0x79,0x60,0x46,0xFF,0x30,0x49,0x1C, + 0x41,0x30,0x09,0x06,0xC3,0x88,0x09,0x0E,0x21,0x71,0x49,0x00,0x09,0x19,0xE0,0x31, + 0x8B,0x82,0xC1,0x8A,0x20,0x79,0x40,0x00,0x00,0x19,0xFF,0x30,0x01,0xE0,0x11,0xE0, + 0x06,0xE0,0x01,0x30,0xC1,0x80,0x23,0x79,0x0A,0x49,0x09,0x98,0x48,0x39,0x58,0x54, + 0x52,0x1C,0x08,0x2A,0x84,0xDB,0x08,0x98,0x00,0x28,0x03,0xD1,0xE0,0x88,0x20,0x21, + 0x88,0x43,0xE0,0x80,0x0D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x78,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0xC0,0x01,0x00,0x20,0x7C,0x05,0x00,0x20,0xC0,0x05,0x00,0x20, + 0xF0,0xB5,0x5F,0x4C,0xB9,0xB0,0x20,0x68,0x00,0x21,0x60,0x30,0x07,0x79,0x40,0x79, + 0x33,0x90,0x5C,0x48,0x38,0x90,0x41,0x82,0x20,0x38,0x37,0x90,0x41,0x63,0x32,0x91, + 0x31,0x91,0x60,0x21,0x19,0xA8,0xFE,0xF7,0xE9,0xFA,0x60,0x21,0x01,0xA8,0xFE,0xF7, + 0xE5,0xFA,0x38,0x98,0x41,0x7C,0x20,0x68,0x40,0x30,0xC0,0x7D,0x81,0x42,0x77,0xD0, + 0x33,0x9D,0x0E,0x21,0x48,0x1B,0x34,0x90,0x5B,0xE0,0x15,0x21,0xC9,0x1B,0x36,0x91, + 0x33,0x99,0x38,0x00,0x69,0x1A,0x8C,0x00,0x1A,0xE0,0x4B,0x4A,0x6B,0x00,0x9E,0x18, + 0xB8,0x23,0xF3,0x5E,0x0E,0x21,0x46,0x00,0x41,0x43,0xB2,0x18,0x88,0x26,0x96,0x5F, + 0x49,0x19,0x09,0x04,0x9A,0x19,0x45,0x4B,0x09,0x14,0x49,0x00,0x59,0x5E,0x51,0x18, + 0x32,0x9A,0x52,0x18,0x32,0x92,0x19,0xAA,0x13,0x59,0x59,0x18,0x40,0x1C,0x11,0x51, + 0x36,0x99,0x81,0x42,0xE1,0xDC,0x78,0x00,0x15,0x21,0x09,0x1A,0x19,0xAE,0x35,0x90, + 0x30,0x59,0xFE,0xF7,0x33,0xF9,0x30,0x51,0x3E,0x00,0x84,0x46,0x19,0xE0,0x0E,0x20, + 0x70,0x43,0x36,0x49,0x40,0x19,0x40,0x00,0x09,0x5E,0x60,0x46,0x6A,0x00,0x09,0x1A, + 0x31,0x48,0x13,0x18,0xB8,0x22,0x9A,0x5E,0x73,0x00,0x1B,0x18,0x88,0x20,0x18,0x5E, + 0x10,0x18,0x09,0x18,0x0B,0x00,0x4B,0x43,0x01,0xA8,0x02,0x59,0xD1,0x18,0x76,0x1C, + 0x01,0x51,0x36,0x98,0xB0,0x42,0xE2,0xDC,0x35,0x98,0x14,0x21,0x09,0x1A,0x01,0xAE, + 0x30,0x59,0xFE,0xF7,0x0B,0xF9,0x30,0x51,0x31,0x99,0x40,0x18,0x31,0x90,0x34,0x98, + 0x6D,0x1C,0xA8,0x42,0xA1,0xDC,0x78,0x00,0x15,0x21,0x09,0x1A,0x33,0x98,0x0E,0x22, + 0x40,0x00,0x14,0x1A,0x61,0x43,0x06,0x00,0x32,0x98,0xFE,0xF7,0xF7,0xF8,0x38,0x99, + 0x48,0x82,0x31,0x98,0x21,0x00,0xFE,0xF7,0xF1,0xF8,0x00,0x21,0x01,0xAB,0x0B,0xE0, + 0x1B,0xE0,0x8A,0x00,0x9A,0x58,0x82,0x1A,0x15,0x00,0x55,0x43,0x37,0x9A,0x52,0x6B, + 0xAA,0x18,0x37,0x9D,0x49,0x1C,0x6A,0x63,0x8C,0x42,0xF2,0xDC,0x37,0x98,0x0D,0x21, + 0x40,0x6B,0x89,0x1B,0xFE,0xF7,0xDA,0xF8,0x15,0x22,0x34,0x99,0xD2,0x1B,0x92,0x02, + 0x51,0x43,0xFE,0xF7,0xD3,0xF8,0x37,0x99,0x48,0x63,0x38,0x99,0x12,0x20,0x08,0x5E, + 0x00,0x28,0x01,0xD1,0x40,0x1C,0x48,0x82,0x39,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x78,0x06,0x00,0x20,0xA0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10, + 0x10,0xB5,0x00,0x28,0x06,0xD1,0x14,0x48,0x00,0x69,0x00,0x04,0x00,0x0E,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x11,0x49,0x09,0x6B,0x11,0x4A,0x12,0x4B,0x8A,0x18,0x9A,0x42, + 0x16,0xD2,0x00,0x04,0x00,0x0C,0x48,0x43,0x59,0x1E,0xFE,0xF7,0xD7,0xF9,0x04,0x00, + 0x0A,0x21,0xFE,0xF7,0xD3,0xF9,0x04,0x29,0x00,0xD9,0x0A,0x34,0x0A,0x21,0x20,0x00, + 0xFE,0xF7,0xCC,0xF9,0x08,0x49,0x49,0x7C,0x08,0x18,0xFF,0x28,0x00,0xD9,0xFF,0x20, + 0x00,0x06,0x00,0x0E,0xDB,0xE7,0x00,0x00,0x00,0x90,0x00,0x40,0x00,0x70,0x00,0x40, + 0x90,0x6B,0xFF,0xFF,0xA1,0x0F,0x00,0x00,0x60,0x93,0x00,0x00,0xF8,0xB5,0x6D,0x4C, + 0x60,0x7B,0x00,0x28,0x06,0xD0,0xA0,0x6D,0x00,0x04,0x00,0x0C,0x06,0xF0,0x7E,0xF9, + 0x06,0xF0,0x6C,0xF9,0x01,0x20,0x40,0x03,0xFE,0xF7,0x60,0xFE,0xFE,0xF7,0x1E,0xFA, + 0x05,0xF0,0x62,0xFC,0x05,0xF0,0x76,0xFC,0x05,0xF0,0x8A,0xFE,0x62,0x48,0x01,0x25, + 0x85,0x60,0x1F,0x20,0x01,0xF0,0x06,0xFE,0x60,0x48,0x61,0x4E,0x00,0x90,0xAA,0xE0, + 0x60,0x48,0x41,0x68,0x09,0x07,0x0B,0xD5,0xC1,0x68,0x00,0x29,0x08,0xD0,0xC0,0x68, + 0x07,0x28,0x03,0xD1,0x01,0x21,0x49,0x07,0xC8,0x63,0xA1,0xE0,0x05,0xF0,0x62,0xF8, + 0x60,0x7B,0x00,0x28,0x04,0xD0,0xA0,0x6D,0x00,0x04,0x00,0x0C,0x06,0xF0,0x4E,0xF9, + 0x80,0x20,0xFE,0xF7,0x33,0xFE,0x03,0x20,0x05,0xF0,0xC0,0xFF,0x01,0x20,0x40,0x03, + 0xFE,0xF7,0x2C,0xFE,0x50,0x4F,0xF8,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0, + 0x40,0x06,0x01,0xD5,0x04,0x20,0x00,0xE0,0x02,0x20,0x05,0xF0,0x63,0xFE,0x00,0xF0, + 0xAD,0xFB,0x00,0xF0,0x69,0xFB,0x00,0xF0,0x77,0xFB,0x35,0x61,0x00,0xF0,0x24,0xFC, + 0x00,0xF0,0x5A,0xFB,0x01,0x20,0x80,0x03,0xFE,0xF7,0x10,0xFE,0x00,0xF0,0x6C,0xFB, + 0x00,0xF0,0x1A,0xFC,0xFE,0xF7,0x92,0xFA,0xA0,0x7C,0x00,0x28,0x05,0xD1,0x00,0x98, + 0x00,0x7B,0x00,0x28,0x01,0xD0,0x04,0xF0,0xA1,0xFE,0x03,0xF0,0x63,0xFD,0x00,0x28, + 0x00,0xD0,0x25,0x70,0xE0,0x8A,0x39,0x49,0x88,0x42,0x01,0xD2,0x40,0x1C,0xE0,0x82, + 0x20,0x78,0x00,0x28,0x05,0xD1,0x00,0x22,0x11,0x00,0x10,0x00,0x01,0x23,0x00,0xF0, + 0x45,0xF9,0x03,0x20,0x40,0x03,0xFE,0xF7,0xE1,0xFD,0x20,0x78,0x00,0x28,0x05,0xD0, + 0xA0,0x7C,0x00,0x09,0x04,0x28,0x43,0xD1,0x00,0x20,0x20,0x70,0x03,0x20,0x05,0xF0, + 0x47,0xFF,0x60,0x65,0x03,0x20,0x05,0xF0,0x79,0xFF,0x80,0x20,0xFE,0xF7,0xCE,0xFD, + 0xF8,0x8B,0x00,0x28,0x02,0xD0,0x40,0x1E,0xF8,0x83,0x2C,0xE0,0xA0,0x7A,0x00,0x28, + 0x29,0xD1,0xE0,0x6A,0x00,0x28,0x26,0xD0,0x60,0x6D,0x21,0x49,0x0C,0x1A,0xFF,0x20, + 0x91,0x30,0x84,0x42,0x1F,0xDD,0xFF,0x27,0x01,0x37,0x38,0x00,0xFE,0xF7,0xBE,0xFD, + 0x02,0x20,0x05,0xF0,0x5B,0xFF,0x0A,0x21,0x20,0x00,0xFD,0xF7,0xCF,0xFF,0x41,0x11, + 0x02,0x20,0x05,0xF0,0x3B,0xFF,0x04,0x20,0xFE,0xF7,0xE8,0xFD,0x02,0x20,0x05,0xF0, + 0x3D,0xFF,0x35,0x61,0xFF,0x20,0xFE,0xF7,0xE1,0xFD,0x02,0x20,0x05,0xF0,0x46,0xFF, + 0x38,0x00,0xFE,0xF7,0x9B,0xFD,0x07,0x4C,0x20,0x78,0x00,0x28,0x00,0xD1,0x4F,0xE7, + 0x04,0x48,0x40,0x7B,0x00,0x28,0x01,0xD0,0x06,0xF0,0xA8,0xF8,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x64,0x05,0x00,0x20,0x00,0x90,0x00,0x40,0x80,0x93,0x00,0x00, + 0x40,0x00,0x00,0x40,0x00,0x40,0x00,0x30,0x40,0x00,0x00,0x20,0x10,0x27,0x00,0x00, + 0xC8,0x32,0x00,0x00,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x10,0xB5,0x0C,0x48, + 0x09,0x22,0x00,0x21,0xFE,0xF7,0xE6,0xF8,0x0A,0x48,0x5A,0x22,0x00,0x21,0xFE,0xF7, + 0xE1,0xF8,0x08,0x48,0x00,0x24,0x0C,0x38,0x04,0x72,0x07,0x48,0x28,0x22,0x21,0x00, + 0xFE,0xF7,0xD8,0xF8,0x04,0x48,0x52,0x38,0x44,0x76,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0xE3,0x02,0x00,0x20,0xCC,0x01,0x00,0x20,0xF2,0x04,0x00,0x20,0x10,0xB5,0x17,0x48, + 0x12,0x22,0x00,0x21,0xFE,0xF7,0xC6,0xF8,0x14,0x48,0x12,0x22,0x00,0x21,0x12,0x30, + 0xFE,0xF7,0xC0,0xF8,0x11,0x48,0x09,0x22,0x00,0x21,0x44,0x30,0xFE,0xF7,0xBA,0xF8, + 0x0E,0x48,0x20,0x22,0x00,0x21,0x24,0x30,0xFE,0xF7,0xB4,0xF8,0x0B,0x48,0x10,0x22, + 0x00,0x21,0x52,0x30,0xFE,0xF7,0xAE,0xF8,0x08,0x48,0x10,0x22,0x00,0x21,0x62,0x30, + 0xFE,0xF7,0xA8,0xF8,0x05,0x49,0x00,0x20,0x6C,0x31,0xC8,0x83,0xFF,0x39,0x61,0x39, + 0x08,0x71,0x88,0x83,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x34,0x01,0x00,0x20, + 0x8C,0x10,0x9F,0xE5,0x10,0x40,0x2D,0xE9,0x00,0x10,0x91,0xE5,0x84,0xC0,0x9F,0xE5, + 0x7E,0xE0,0xD1,0xE5,0x08,0x10,0xA0,0xE3,0x00,0x30,0xA0,0xE3,0x01,0x22,0x8C,0xE0, + 0x80,0x20,0x82,0xE0,0xB7,0x4F,0xA0,0xE3,0xB2,0x30,0x84,0xE1,0x03,0x2C,0x82,0xE2, + 0x01,0x10,0x51,0xE2,0xBC,0x36,0xC2,0xE1,0xF7,0xFF,0xFF,0x5A,0x01,0x20,0xA0,0xE3, + 0x00,0x10,0x8C,0xE0,0xD4,0x22,0xC1,0xE5,0x80,0x20,0x8C,0xE0,0x03,0x2C,0x82,0xE2, + 0xBC,0x3F,0xC2,0xE1,0x0C,0xE4,0xC1,0xE5,0x14,0x34,0xC1,0xE5,0x02,0x10,0xA0,0xE3, + 0x01,0x22,0x8C,0xE0,0x80,0x20,0x82,0xE0,0x01,0x2B,0x82,0xE2,0x01,0x10,0x51,0xE2, + 0xBC,0x31,0xC2,0xE1,0xF9,0xFF,0xFF,0x5A,0x00,0x01,0x8C,0xE0,0x00,0x10,0xE0,0xE3, + 0x01,0x0B,0x80,0xE2,0xBC,0x14,0xC0,0xE1,0xBE,0x14,0xC0,0xE1,0x10,0x40,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x78,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x10,0xB5,0x06,0x48, + 0x1E,0x22,0x00,0x21,0xFE,0xF7,0x46,0xF8,0x04,0x48,0x00,0x21,0x81,0x74,0x41,0x74, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xF6,0x02,0x00,0x20,0x20,0x01,0x00,0x20, + 0x10,0xB5,0x05,0xF0,0x99,0xFE,0x04,0xF0,0xDF,0xFD,0xFF,0xF7,0x47,0xFF,0x04,0xF0, + 0x41,0xFF,0x01,0xF0,0x8F,0xFE,0x01,0xF0,0xC9,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x09,0x4B,0x10,0xB4,0x1B,0x68,0x80,0x33,0x1B,0x7B,0x04,0x1E,0x00,0xDC,0x44,0x42, + 0x9C,0x42,0x06,0xDD,0x98,0x42,0x01,0xDD,0xC8,0x1A,0x00,0xE0,0xC8,0x18,0x02,0x04, + 0x12,0x0C,0x10,0xBC,0x10,0x00,0x70,0x47,0x78,0x06,0x00,0x20,0xFF,0xB5,0x64,0x48, + 0xFF,0xB0,0x00,0x7D,0xC0,0xB0,0x00,0x28,0x03,0xD0,0x01,0x20,0xBC,0x90,0x00,0x20, + 0x02,0xE0,0x00,0x20,0xBC,0x90,0x01,0x20,0xBB,0x90,0x5E,0x48,0x00,0x25,0xBD,0x90, + 0x5D,0x48,0x2E,0x00,0x01,0x8B,0x05,0x91,0x41,0x8B,0x04,0x91,0x81,0x8A,0x03,0x91, + 0xC0,0x8A,0x02,0x90,0x59,0x48,0x00,0x7B,0x01,0x90,0x00,0x24,0x0E,0x20,0x70,0x43, + 0xBE,0x90,0x07,0x19,0x21,0x00,0x30,0x00,0x01,0xF0,0xF6,0xF9,0x50,0x49,0x20,0x39, + 0x0A,0x7D,0xD2,0x07,0x2D,0xD0,0x52,0x4A,0x52,0x7A,0x00,0x2A,0x01,0x9A,0x11,0xD0, + 0x96,0x42,0x26,0xD1,0x8A,0x7D,0xA2,0x42,0x1D,0xD0,0xCA,0x7D,0xA2,0x42,0x1A,0xD0, + 0x0A,0x7E,0xA2,0x42,0x17,0xD0,0x4A,0x7E,0xA2,0x42,0x14,0xD0,0x89,0x7E,0xA1,0x42, + 0x3E,0xD1,0x10,0xE0,0x94,0x42,0x14,0xD1,0x8A,0x7D,0xB2,0x42,0x0B,0xD0,0xCA,0x7D, + 0xB2,0x42,0x08,0xD0,0x0A,0x7E,0xB2,0x42,0x05,0xD0,0x4A,0x7E,0xB2,0x42,0x02,0xD0, + 0x89,0x7E,0xB1,0x42,0x2C,0xD1,0x05,0x99,0x04,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C, + 0x04,0xE0,0x03,0x99,0x02,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C,0x80,0x1A,0xBD,0x9B, + 0x02,0x04,0xB8,0x00,0x18,0x58,0xC0,0x9B,0x12,0x0C,0x00,0x2B,0x02,0xD0,0x00,0x05, + 0x00,0x0D,0x01,0xE0,0x00,0x01,0x00,0x0D,0xC2,0x9B,0x00,0x2B,0x0C,0xD0,0x90,0x42, + 0x02,0xDA,0xBF,0x9B,0xBC,0x9A,0x03,0xE0,0x88,0x42,0x09,0xDD,0xBF,0x9B,0xBB,0x9A, + 0x21,0x00,0x30,0x00,0x00,0xF0,0x8C,0xF8,0x68,0x00,0x06,0xA9,0x6D,0x1C,0x0F,0x52, + 0x64,0x1C,0x0E,0x2C,0x01,0xDA,0xBE,0x98,0x9B,0xE7,0x76,0x1C,0x15,0x2E,0x94,0xDB, + 0x00,0x2D,0x38,0xDD,0xC1,0x98,0x00,0x28,0x35,0xD1,0x00,0xF0,0x5D,0xF9,0x00,0xF0, + 0x73,0xF9,0x00,0xF0,0x21,0xFA,0x2C,0xE0,0x68,0x00,0x06,0xA9,0x08,0x5A,0x87,0x00, + 0xBD,0x98,0xC0,0x59,0x01,0x01,0x06,0x05,0xC2,0x98,0x0C,0x0D,0x36,0x0D,0x02,0x28, + 0x01,0xD1,0x64,0x21,0x04,0xE0,0x01,0x28,0x01,0xD1,0x32,0x21,0x00,0xE0,0x00,0x21, + 0xB4,0x42,0x06,0xD2,0x30,0x1B,0x64,0x21,0x48,0x43,0xFD,0xF7,0x0F,0xFE,0x00,0x19, + 0x05,0xE0,0xA0,0x1B,0x48,0x43,0x64,0x21,0xFD,0xF7,0x08,0xFE,0x20,0x1A,0x0D,0x49, + 0x00,0x04,0x00,0x0C,0x88,0x42,0x00,0xD9,0x08,0x00,0xBD,0x99,0x00,0x04,0x30,0x43, + 0xC8,0x51,0x6D,0x1E,0xD0,0xD5,0x7F,0xB0,0x44,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x20,0x93,0x00,0x00,0xD4,0x02,0x10,0x40,0xE0,0x95,0x00,0x00,0xE0,0x04,0x00,0x20, + 0x64,0x05,0x00,0x20,0xFF,0x0F,0x00,0x00,0x7F,0xB5,0x01,0x25,0x6D,0x07,0x28,0x68, + 0x02,0x28,0x27,0xD1,0xAC,0x68,0x01,0xAA,0x20,0x05,0x00,0x0D,0x02,0x90,0x20,0x02, + 0x00,0x0D,0x03,0x90,0x02,0xA9,0x03,0xA8,0x6B,0x46,0x04,0xF0,0xAD,0xFF,0x40,0x1C, + 0x18,0xD0,0x01,0x98,0x03,0x99,0x40,0x00,0x40,0x18,0x03,0x21,0xFD,0xF7,0xFE,0xFE, + 0x00,0x05,0x06,0x0A,0x09,0x48,0x02,0x99,0x04,0x40,0x00,0x98,0x26,0x43,0x40,0x00, + 0x40,0x18,0x03,0x21,0xFD,0xF7,0xF2,0xFE,0x00,0x05,0x00,0x0D,0x31,0x0B,0x09,0x03, + 0x08,0x43,0xA8,0x60,0x7F,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xFF,0x0F,0x00,0xFF, + 0x30,0xB4,0x0E,0x25,0x68,0x43,0x14,0x4C,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06, + 0x09,0x0E,0x00,0x0A,0x00,0x2B,0x07,0xD0,0x00,0x2A,0x02,0xD0,0xC9,0x18,0xC0,0x18, + 0x0F,0xE0,0xC0,0x1A,0xC9,0x1A,0x0C,0xE0,0x00,0x2A,0x05,0xD0,0x88,0x42,0x01,0xDD, + 0x49,0x1C,0x06,0xE0,0x40,0x1C,0x04,0xE0,0x88,0x42,0x01,0xDD,0x40,0x1E,0x00,0xE0, + 0x49,0x1E,0x4A,0x1E,0xFF,0x2A,0x05,0xD2,0x42,0x1E,0xFF,0x2A,0x02,0xD2,0x00,0x02, + 0x08,0x43,0x60,0x53,0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0xF0,0xB5,0x8B,0xB0, + 0x0E,0x27,0x15,0x20,0x04,0xA9,0x81,0xC1,0x06,0x90,0x53,0x48,0x53,0x49,0x0A,0x90, + 0x80,0x7F,0x09,0x91,0xC2,0x07,0x0A,0xD0,0x80,0x07,0x03,0xD5,0x0D,0x20,0x03,0x21, + 0x05,0x90,0x02,0xE0,0x14,0x20,0x00,0x21,0x04,0x90,0x09,0x98,0x01,0x72,0x4C,0x48, + 0x0A,0x22,0x01,0x8C,0x40,0x8C,0x51,0x43,0x50,0x43,0x00,0x04,0x00,0x0C,0x01,0x90, + 0x05,0x98,0x0E,0x04,0x36,0x0C,0x00,0x28,0x7E,0xD0,0x04,0x98,0x00,0x28,0x7F,0xD0, + 0x05,0x98,0x41,0x00,0x30,0x00,0xFD,0xF7,0x59,0xFD,0x05,0x04,0x2D,0x0C,0x00,0x24, + 0xBF,0x1C,0x0A,0xE0,0x30,0x00,0x60,0x43,0x05,0x99,0xFD,0xF7,0x4F,0xFD,0x3D,0x4A, + 0x61,0x00,0x40,0x19,0x89,0x18,0x64,0x1C,0x08,0x84,0xBC,0x42,0xF2,0xDB,0x04,0x98, + 0x41,0x00,0x01,0x98,0xFD,0xF7,0x42,0xFD,0x06,0x9F,0x06,0x04,0x36,0x0C,0x00,0x24, + 0xBF,0x1C,0x0B,0xE0,0x01,0x98,0x04,0x99,0x60,0x43,0xFD,0xF7,0x37,0xFD,0x31,0x4A, + 0x81,0x19,0x60,0x00,0x80,0x18,0x40,0x30,0x64,0x1C,0x81,0x82,0xBC,0x42,0xF1,0xDB, + 0x0A,0x98,0x80,0x7F,0xC0,0x07,0x4B,0xD0,0x00,0x24,0x43,0xE0,0x29,0x4A,0x25,0x21, + 0x10,0x19,0x49,0x01,0x40,0x18,0x41,0x7B,0x0A,0x98,0x80,0x7F,0x80,0x07,0x03,0xD5, + 0x05,0x98,0x02,0x95,0x03,0x91,0x03,0xE0,0x08,0x00,0x04,0x99,0x02,0x96,0x03,0x91, + 0x20,0x49,0x40,0x00,0x40,0x18,0x08,0x90,0x00,0x8C,0x0A,0x21,0x40,0x1B,0xFD,0xF7, + 0x0D,0xFD,0x1C,0x4A,0xE1,0x00,0x89,0x18,0x09,0x22,0xD2,0x01,0x8F,0x18,0x38,0x80, + 0x03,0x98,0x18,0x49,0x40,0x00,0x40,0x18,0x40,0x30,0x07,0x90,0x80,0x8A,0x0A,0x21, + 0x80,0x1B,0xFD,0xF7,0xFB,0xFC,0x78,0x80,0x08,0x98,0x0A,0x21,0x00,0x8C,0x40,0x19, + 0xFD,0xF7,0x24,0xFE,0xB8,0x80,0x07,0x98,0x0A,0x21,0x80,0x8A,0x80,0x19,0xFD,0xF7, + 0x1D,0xFE,0xF8,0x80,0x02,0x98,0x0A,0x21,0x40,0x00,0xFD,0xF7,0x17,0xFE,0x09,0x99, + 0x64,0x1C,0x48,0x81,0x0A,0x98,0x00,0xE0,0x02,0xE0,0xC0,0x7F,0xA0,0x42,0xB5,0xDC, + 0x0B,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x04,0x00,0x20,0xE0,0x04,0x00,0x20, + 0x00,0x93,0x00,0x00,0x40,0x00,0x00,0x20,0x02,0x49,0x08,0x68,0x04,0x22,0x90,0x43, + 0x08,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x04,0x22,0x11,0x43, + 0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x01,0x22,0x11,0x43, + 0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0x01,0x49,0xC8,0x68,0xC8,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x08,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0xB5,0x22,0x10,0xB5,0x07,0x49,0x08,0x48,0x92,0x00,0xFD,0xF7, + 0xEB,0xFD,0x07,0x48,0x07,0x4A,0xC0,0x8E,0x01,0x04,0x01,0x43,0x06,0x48,0xFD,0xF7, + 0x0F,0xFE,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x9D,0x00,0x00,0x00,0x00,0x10,0x40, + 0x00,0x93,0x00,0x00,0xA4,0x05,0x00,0x00,0xD4,0x02,0x10,0x40,0x02,0x48,0x81,0x6B, + 0x49,0x08,0x49,0x00,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x02,0x48,0x81,0x6B, + 0x01,0x22,0x11,0x43,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x10,0xB5,0x0A,0x49, + 0x0A,0x48,0xFC,0x22,0xFD,0xF7,0xC0,0xFD,0xFF,0x22,0x09,0x49,0x09,0x48,0xF1,0x32, + 0xFD,0xF7,0xBA,0xFD,0x71,0x22,0x08,0x49,0x08,0x48,0xD2,0x00,0xFD,0xF7,0xB4,0xFD, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x04,0x96,0x00,0x00,0x04,0x90,0x00,0x40, + 0x00,0x97,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x99,0x00,0x00,0x78,0x08,0x10,0x40, + 0x03,0x48,0x41,0x68,0x01,0x22,0x12,0x04,0x11,0x43,0x41,0x60,0x70,0x47,0x00,0x00, + 0x00,0xA0,0x00,0x40,0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x70,0xB5,0x1A,0x4C,0x20,0x68,0x40,0x08,0x40,0x00,0x20,0x60, + 0x18,0x48,0xA6,0x15,0x05,0x04,0x2D,0x0C,0x00,0x22,0x31,0x00,0x28,0x00,0xFD,0xF7, + 0x97,0xFD,0x32,0x00,0x21,0x00,0x28,0x00,0x00,0x23,0xFD,0xF7,0x99,0xFD,0x12,0x48, + 0x75,0x00,0x04,0x04,0x24,0x0C,0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0x88,0xFD, + 0x0E,0x49,0x2A,0x00,0x20,0x00,0x00,0x23,0xFD,0xF7,0x8A,0xFD,0x0C,0x48,0x6D,0x00, + 0x04,0x04,0x24,0x0C,0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0x79,0xFD,0x09,0x49, + 0x2A,0x00,0x20,0x00,0x00,0x23,0xFD,0xF7,0x7B,0xFD,0x70,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x90,0x00,0x40,0x00,0x96,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x00,0x99,0x00,0x00,0x78,0x08,0x10,0x40,0x02,0x48,0xC1,0x68,0xC9,0x07,0xFC,0xD0, + 0x70,0x47,0x00,0x00,0x00,0x90,0x00,0x40,0xF0,0x47,0x2D,0xE9,0x00,0x80,0xA0,0xE1, + 0xF4,0x01,0x9F,0xE5,0xF4,0x71,0x9F,0xE5,0x00,0x00,0x90,0xE5,0x00,0x50,0xA0,0xE3, + 0xB4,0x67,0xD0,0xE1,0x76,0x00,0xD0,0xE5,0x01,0x40,0xA0,0xE3,0x90,0x00,0x01,0xE0, + 0x8A,0x01,0xD7,0xE5,0xFF,0x90,0x01,0xE2,0x01,0x00,0x50,0xE3,0x0E,0x00,0x00,0xBA, + 0x04,0x01,0x84,0xE0,0x80,0x00,0x87,0xE0,0x40,0x12,0xD0,0xE5,0x00,0x00,0x51,0xE3, + 0x05,0x00,0x00,0x0A,0x02,0x0C,0x80,0xE2,0x46,0x00,0x80,0xE2,0x41,0x05,0x00,0xEB, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x85,0x12,0xFF,0x50,0x00,0x12,0x8A,0x01,0xD7,0xE5, + 0x01,0x40,0x84,0xE2,0x04,0x00,0x50,0xE1,0xF0,0xFF,0xFF,0xAA,0x90,0x01,0x9F,0xE5, + 0x00,0x50,0x80,0xE5,0x8C,0x01,0x9F,0xE5,0xB4,0x2C,0xD0,0xE1,0xB8,0x3C,0xD0,0xE1, + 0xBA,0xCC,0xD0,0xE1,0x03,0x10,0x42,0xE0,0x00,0x00,0x51,0xE3,0x02,0x10,0x43,0xD0, + 0xB6,0x3C,0xD0,0xE1,0x01,0x18,0xA0,0xE1,0x21,0x18,0xA0,0xE1,0x0C,0x20,0x43,0xE0, + 0x00,0x00,0x52,0xE3,0x03,0x20,0x4C,0xD0,0xD0,0x32,0xD7,0xE5,0x02,0x28,0xA0,0xE1, + 0x22,0x28,0xA0,0xE1,0x00,0x00,0x53,0xE3,0xD3,0x32,0xD7,0x15,0xC8,0x00,0x53,0x13, + 0x01,0x00,0x00,0x2A,0x01,0x30,0x83,0xE2,0xD3,0x32,0xC7,0xE5,0xB6,0x3B,0xD0,0xE1, + 0x01,0xC0,0xA0,0xE3,0x14,0x00,0x53,0xE3,0x02,0x00,0x00,0x2A,0xB9,0x32,0xD7,0xE5, + 0x00,0x00,0x53,0xE3,0xBA,0xC2,0xC7,0x15,0x19,0x00,0x51,0xE3,0x19,0x00,0x52,0x93, + 0x03,0x00,0x00,0x9A,0xB8,0x32,0xD7,0xE5,0xC8,0x00,0x53,0xE3,0x01,0x30,0x83,0x32, + 0xB8,0x32,0xC7,0x35,0xFE,0x3C,0xD0,0xE1,0x02,0x00,0x55,0xE3,0x19,0x00,0x51,0x33, + 0x19,0x00,0x52,0x33,0x03,0x00,0x00,0x2A,0x04,0x00,0x53,0xE3,0x05,0x00,0x00,0xAA, + 0x01,0x30,0x83,0xE2,0x02,0x00,0x00,0xEA,0x03,0x00,0x73,0xE3,0x01,0x00,0x00,0xDA, + 0x01,0x30,0x43,0xE2,0xBE,0x3C,0xC0,0xE1,0xD3,0x32,0xD7,0xE5,0x01,0x00,0x53,0xE3, + 0x78,0x10,0xA0,0x83,0x0D,0x00,0x00,0x8A,0x02,0x00,0x55,0xE3,0x0C,0x00,0x00,0x2A, + 0xFE,0x3C,0xD0,0xE1,0x02,0x00,0x53,0xE3,0x09,0x00,0x00,0xDA,0xB8,0x32,0xD7,0xE5, + 0x14,0x00,0x53,0xE3,0x06,0x00,0x00,0x2A,0x47,0x10,0x41,0xE2,0x95,0x00,0x51,0xE3, + 0x47,0x10,0x42,0x22,0x95,0x00,0x51,0x23,0x01,0x00,0x00,0x2A,0x77,0x10,0xE0,0xE3, + 0xBC,0x1C,0xC0,0xE1,0x00,0x10,0xA0,0xE3,0x02,0x00,0x55,0xE3,0xD2,0x12,0xC7,0xE5, + 0x0A,0x00,0x00,0x2A,0xFC,0x1C,0xD0,0xE1,0x78,0x00,0x71,0xE3,0x03,0x00,0x00,0x1A, + 0xD1,0x12,0xD7,0xE5,0xC8,0x00,0x51,0xE3,0x01,0x10,0x81,0x32,0xD1,0x12,0xC7,0x35, + 0xD1,0x12,0xD7,0xE5,0x02,0x00,0x51,0xE3,0xD2,0xC2,0xC7,0x05,0x01,0x00,0x00,0xEA, + 0x3B,0x10,0xE0,0x83,0xBC,0x1C,0xC0,0x81,0xFC,0x0C,0xD0,0xE1,0x00,0x00,0x58,0xE3, + 0x06,0x10,0x80,0xE0,0xF0,0x47,0xBD,0x18,0x91,0x01,0x00,0xE0,0x1E,0xFF,0x2F,0x11, + 0x04,0x10,0xD7,0xE5,0x01,0x00,0x51,0xE3,0xF0,0x47,0xBD,0x08,0x1E,0xFF,0x2F,0x01, + 0x09,0x10,0xA0,0xE1,0xF0,0x47,0xBD,0xE8,0x80,0xF5,0xFF,0xEA,0x78,0x06,0x00,0x20, + 0x40,0x00,0x00,0x20,0xA0,0x05,0x00,0x20,0x40,0x02,0x00,0x20,0x78,0x47,0xC0,0x46, + 0xD2,0x10,0xA0,0xE3,0x01,0x00,0xB0,0xE1,0x01,0x10,0x41,0xE2,0xFC,0xFF,0xFF,0x1A, + 0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x11,0x10,0xA0,0xE3,0x01,0x00,0xB0,0xE1, + 0x01,0x10,0x41,0xE2,0xFC,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0x02,0x48,0x41,0x6B, + 0x01,0x22,0x11,0x43,0x41,0x63,0x70,0x47,0x00,0x70,0x00,0x40,0x70,0x47,0x00,0x00, + 0x13,0x48,0x10,0xB5,0xC0,0x68,0x00,0x28,0x1F,0xD0,0x01,0x06,0x09,0x0F,0x03,0x29, + 0x01,0xD0,0x04,0x29,0x02,0xD1,0x00,0xF0,0xF1,0xF8,0x08,0xE0,0xF0,0x21,0x01,0x40, + 0x20,0x29,0x02,0xD2,0x00,0xF0,0x1A,0xF8,0x01,0xE0,0x04,0xF0,0xCB,0xFA,0x09,0x48, + 0x82,0x68,0x81,0x15,0x8A,0x43,0x82,0x60,0x82,0x68,0x0A,0x43,0x82,0x60,0x06,0x48, + 0x40,0x7B,0x00,0x28,0x01,0xD0,0x05,0xF0,0xA1,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x40,0x64,0x05,0x00,0x20,0xF1,0xB5,0x61,0x48, + 0x2E,0x21,0x90,0xB0,0x41,0x60,0x41,0x69,0x89,0x06,0xFC,0xD4,0x10,0x99,0x01,0x26, + 0x76,0x07,0xF1,0x63,0x84,0x69,0x5B,0x48,0x40,0x68,0x80,0x07,0xFB,0xD5,0x04,0xF0, + 0xA1,0xFA,0x59,0x4D,0x68,0x7B,0x00,0x28,0x01,0xD0,0x05,0xF0,0x87,0xFB,0x10,0x9B, + 0x00,0x21,0x01,0x20,0x9B,0x1E,0xFF,0x27,0x4A,0x1E,0x40,0x03,0x05,0xF0,0xB8,0xFB, + 0x1E,0x16,0x40,0x40,0x40,0x40,0x13,0x40,0x40,0x42,0x10,0x40,0x40,0x58,0x40,0x68, + 0x4F,0x6F,0x76,0x7D,0x40,0x84,0x40,0x8B,0x92,0x4F,0x40,0x40,0x40,0x40,0x99,0x40, + 0x0B,0x20,0xF0,0x63,0x4D,0xE0,0x00,0xF0,0x17,0xF9,0x29,0xE0,0x03,0x21,0x09,0x07, + 0xCA,0x60,0xFE,0xF7,0x53,0xF8,0x00,0xF0,0x1D,0xFF,0x44,0x48,0x44,0x4A,0x41,0x68, + 0x52,0x68,0x91,0x42,0x1C,0xD0,0x43,0x49,0x17,0x22,0xC9,0x8B,0x52,0x01,0x80,0x18, + 0x49,0x1C,0xC1,0x83,0xFC,0xF7,0xE6,0xFF,0xA8,0x78,0xC0,0x07,0x01,0xD0,0xFF,0xF7, + 0x09,0xFE,0xA8,0x78,0x80,0x07,0x01,0xD5,0x05,0xF0,0xFE,0xFA,0x3A,0x49,0x40,0x22, + 0x68,0x46,0xFD,0xF7,0x91,0xFB,0x01,0x20,0x08,0x90,0x68,0x46,0x05,0xF0,0x0C,0xFB, + 0xF7,0x63,0x1E,0xE0,0x32,0x48,0xA0,0x30,0x00,0x7E,0x00,0x28,0xF8,0xD0,0x00,0x2C, + 0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x05,0xF0,0xE2,0xF8,0xF0,0xE7,0x03,0x21, + 0x09,0x07,0xCA,0x60,0xFE,0xF7,0x1A,0xF8,0x10,0x98,0xFD,0xF7,0x6B,0xFF,0x08,0xE0, + 0x03,0x21,0x09,0x07,0xCA,0x60,0xFE,0xF7,0x11,0xF8,0x00,0xF0,0x4F,0xFE,0x00,0xF0, + 0xE7,0xF8,0x20,0x48,0x41,0x68,0x41,0x60,0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x2C,0x02,0xD0,0x01,0x20,0xA8,0x72,0xD2,0xE7,0xA9,0x72,0xD0,0xE7,0x00,0x2C, + 0x02,0xD0,0x01,0x20,0xE8,0x72,0xCB,0xE7,0xE9,0x72,0xC9,0xE7,0x00,0x2C,0x02,0xD0, + 0x01,0x20,0x28,0x73,0xC4,0xE7,0x29,0x73,0xC2,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20, + 0x68,0x73,0xBD,0xE7,0x69,0x73,0xBB,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xE8,0x73, + 0xB6,0xE7,0xE9,0x73,0xB4,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x74,0xAF,0xE7, + 0x29,0x74,0xAD,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x68,0x74,0xA8,0xE7,0x69,0x74, + 0xA6,0xE7,0x00,0x2C,0x01,0xD0,0xAC,0x74,0x00,0xE0,0xA9,0x74,0x04,0xF0,0xA8,0xFE, + 0x9E,0xE7,0x00,0x00,0x00,0x40,0x00,0x30,0x64,0x05,0x00,0x20,0x00,0x00,0x00,0x10, + 0x00,0x93,0x00,0x00,0xE0,0x95,0x00,0x00,0xC0,0x92,0x00,0x00,0xF0,0xB5,0x34,0x4C, + 0x30,0x38,0x34,0x4A,0x34,0x4E,0x35,0x4F,0x35,0x49,0x25,0x68,0x03,0x00,0x05,0xF0, + 0xFF,0xFA,0x12,0x0A,0x0C,0x0E,0x12,0x16,0x1A,0x1C,0x18,0x1E,0x20,0x30,0x3B,0x16, + 0x3E,0x43,0x47,0x4D,0x50,0x0A,0xCD,0x61,0x21,0xE0,0x60,0x68,0x01,0xE0,0x2D,0x48, + 0xC0,0x6B,0xC8,0x61,0x1B,0xE0,0x10,0x8C,0x52,0x8C,0x00,0x04,0x34,0xE0,0xCE,0x61, + 0x15,0xE0,0xE0,0x68,0xF5,0xE7,0x50,0x68,0xF3,0xE7,0xA0,0x68,0xF1,0xE7,0xD0,0x7B, + 0xEF,0xE7,0x25,0x48,0x03,0x7B,0x10,0x7D,0x52,0x7D,0xC4,0x07,0xE4,0x09,0x80,0x07, + 0x12,0x04,0xC0,0x0F,0x00,0x02,0x23,0x43,0x02,0x43,0x13,0x43,0xCB,0x61,0x5F,0x22, + 0x22,0xE0,0x93,0x7D,0x50,0x7E,0x1B,0x06,0x18,0x43,0xD3,0x7D,0x12,0x7E,0x1B,0x04, + 0x12,0x02,0x13,0x43,0x18,0x43,0xD4,0xE7,0x90,0x7E,0x00,0x06,0xD1,0xE7,0x17,0x48, + 0x00,0x69,0xC0,0x07,0xC0,0x0F,0xCC,0xE7,0x38,0x69,0x40,0x08,0x00,0x02,0xC8,0xE7, + 0x13,0x48,0xA2,0x69,0xC0,0x8B,0x00,0x04,0x10,0x43,0xC2,0xE7,0x38,0x69,0x40,0x08, + 0xBF,0xE7,0x10,0x48,0x00,0x6A,0xBC,0xE7,0x48,0x69,0x10,0x42,0xFC,0xD1,0x04,0xF0, + 0x81,0xF9,0xFF,0x20,0x01,0x21,0x49,0x07,0xC8,0x63,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0xC0,0x92,0x00,0x00,0x00,0x93,0x00,0x00,0x15,0x00,0x0E,0x00,0x00,0x20,0x00,0x40, + 0x00,0x40,0x00,0x30,0xC0,0x0F,0x00,0x20,0xE0,0x04,0x00,0x20,0x00,0x96,0x00,0x00, + 0xE0,0x95,0x00,0x00,0x64,0x05,0x00,0x20,0x70,0xB5,0x03,0x24,0x24,0x07,0xE5,0x68, + 0x00,0x20,0xC0,0x43,0xE0,0x60,0xFD,0xF7,0x57,0xFF,0x06,0x00,0xCB,0x20,0xC0,0x01, + 0xFD,0xF7,0x34,0xFF,0x03,0xF0,0xC6,0xFF,0x00,0xF0,0x9A,0xFD,0x03,0xF0,0xB8,0xFF, + 0x30,0x00,0xFD,0xF7,0x5D,0xFF,0xE5,0x60,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0x20,0x03,0x21,0x10,0xB5,0xC0,0x43,0x09,0x07,0xC8,0x60,0x03,0xF0,0xB2,0xFF, + 0xFF,0xF7,0xE0,0xFC,0x05,0x48,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0x01,0x20,0x40,0x07, + 0x05,0xF0,0x5D,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x90,0x00,0x40, + 0xF8,0xB5,0x22,0x48,0x00,0x68,0x00,0x88,0xC0,0x06,0x3C,0xD5,0x20,0x4E,0x30,0x7A, + 0x00,0x28,0x38,0xD0,0x70,0x7A,0x00,0x28,0x35,0xD0,0x01,0x25,0x30,0xE0,0x0A,0x21, + 0x69,0x43,0x1C,0x4B,0x01,0x20,0xCC,0x18,0xFF,0x34,0x77,0x7A,0x81,0x34,0x24,0xE0, + 0x0A,0x22,0x42,0x43,0xD2,0x18,0xFF,0x32,0xE1,0x32,0x21,0x7B,0x92,0x79,0x91,0x42, + 0x1A,0xD1,0x0A,0x22,0x50,0x43,0xC7,0x18,0xFF,0x37,0x0E,0x21,0xE1,0x37,0x08,0x20, + 0x61,0x5E,0x38,0x5E,0xBA,0x5E,0x08,0x1A,0x10,0x21,0x61,0x5E,0x89,0x1A,0x00,0x91, + 0x3A,0x89,0xE1,0x89,0xFF,0xF7,0x1C,0xFA,0xE0,0x81,0x7A,0x89,0x21,0x8A,0x00,0x98, + 0xFF,0xF7,0x16,0xFA,0x20,0x82,0x02,0xE0,0x40,0x1C,0x87,0x42,0xD8,0xDA,0x6D,0x1C, + 0x30,0x7A,0xA8,0x42,0xCB,0xDA,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x78,0x06,0x00,0x20, + 0xC0,0x01,0x00,0x20,0x40,0x00,0x00,0x20,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9, + 0x9C,0xD0,0x4D,0xE2,0x00,0x00,0xA0,0xE3,0x34,0x00,0x8D,0xE5,0x30,0x00,0x8D,0xE5, + 0x2C,0x00,0x8D,0xE5,0x28,0x00,0x8D,0xE5,0x3C,0x08,0x9F,0xE5,0xB0,0x12,0xD0,0xE1, + 0x20,0x10,0x8D,0xE5,0xB2,0x02,0xD0,0xE1,0x1C,0x00,0x8D,0xE5,0x2C,0x08,0x9F,0xE5, + 0x00,0x00,0x90,0xE5,0x8A,0x20,0xD0,0xE5,0x7C,0x10,0xD0,0xE5,0x7D,0xB0,0xD0,0xE5, + 0x18,0x20,0x8D,0xE5,0x89,0x20,0xD0,0xE5,0x14,0x20,0x8D,0xE5,0xB0,0x20,0xD0,0xE1, + 0x08,0x00,0x12,0xE3,0x23,0x00,0x00,0x0A,0x7F,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0, + 0x88,0x20,0x8D,0xE5,0x80,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x84,0x20,0x8D,0xE5, + 0x81,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x80,0x20,0x8D,0xE5,0x82,0x20,0xD0,0xE5, + 0x91,0x02,0x02,0xE0,0x7C,0x20,0x8D,0xE5,0x83,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0, + 0x78,0x20,0x8D,0xE5,0x84,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x74,0x20,0x8D,0xE5, + 0x85,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x70,0x20,0x8D,0xE5,0x86,0x20,0xD0,0xE5, + 0x91,0x02,0x02,0xE0,0x6C,0x20,0x8D,0xE5,0x87,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0, + 0x68,0x20,0x8D,0xE5,0x88,0x00,0xD0,0xE5,0x91,0x00,0x00,0xE0,0x64,0x00,0x8D,0xE5, + 0x8C,0x07,0x9F,0xE5,0x88,0x11,0xD0,0xE5,0x00,0x00,0x51,0xE3,0x00,0x60,0xA0,0x13, + 0x03,0x00,0x00,0x1A,0x0B,0x04,0x00,0xEB,0x9C,0xD0,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x68,0xA7,0x9F,0xE5,0x06,0x50,0x8A,0xE0,0xA4,0x42,0xD5,0xE5, + 0x00,0x00,0x54,0xE3,0x0C,0x00,0x00,0x0A,0x18,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3, + 0x06,0x00,0x00,0x1A,0x04,0x01,0x84,0xE0,0x80,0x00,0x8A,0xE0,0x01,0x0C,0x80,0xE2, + 0x92,0x00,0x80,0xE2,0x77,0x03,0x00,0xEB,0x00,0x00,0x50,0xE3,0x02,0x00,0x00,0x0A, + 0xD2,0x02,0xDA,0xE5,0x00,0x00,0x50,0xE3,0x01,0x00,0x00,0x0A,0x06,0x00,0xA0,0xE1, + 0x18,0x00,0x00,0xEA,0x07,0x00,0xA0,0xE3,0x00,0x12,0x8A,0xE0,0x86,0x10,0x81,0xE0, + 0x02,0x2C,0x81,0xE2,0xBC,0x3D,0xD2,0xE1,0x03,0x1C,0x81,0xE2,0x01,0x00,0x50,0xE2, + 0xBC,0x3E,0xC2,0xE1,0xBC,0x26,0xD1,0xE1,0xBC,0x27,0xC1,0xE1,0xF5,0xFF,0xFF,0x5A, + 0x04,0x01,0x84,0xE0,0x80,0x80,0x8A,0xE0,0x01,0x7C,0x88,0xE2,0xBE,0x08,0xD7,0xE1, + 0x20,0x10,0x9D,0xE5,0x01,0x10,0x41,0xE2,0x01,0x00,0x50,0xE1,0xB0,0x19,0xD7,0xD1, + 0x1C,0x00,0x9D,0xD5,0x01,0x00,0x40,0xD2,0x00,0x00,0x51,0xD1,0x03,0x00,0x00,0xDA, + 0x8C,0x01,0xD8,0xE5,0x01,0x00,0x40,0xE2,0x5C,0xFC,0xFF,0xEB,0x84,0x01,0x00,0xEA, + 0xBE,0x18,0xD7,0xE1,0x86,0x00,0x8A,0xE0,0x02,0x9C,0x80,0xE2,0x98,0x00,0x8D,0xE5, + 0xBC,0x1D,0xC9,0xE1,0xB0,0x19,0xD7,0xE1,0x03,0x4C,0x80,0xE2,0x00,0x30,0xA0,0xE3, + 0x02,0xCB,0xA0,0xE3,0xBC,0x16,0xC4,0xE1,0x03,0x10,0xA0,0xE1,0x0C,0x20,0xA0,0xE1, + 0x07,0x00,0xA0,0xE3,0x78,0xE6,0x9F,0xE5,0x00,0xE2,0x8E,0xE0,0x86,0xE0,0x8E,0xE0, + 0x94,0xE0,0x8D,0xE5,0x02,0xEC,0x8E,0xE2,0xFC,0xAD,0xDE,0xE1,0x00,0x00,0x5A,0xE3, + 0x03,0x00,0x00,0xDA,0x03,0x00,0x5A,0xE1,0xBC,0x3D,0xDE,0xC1,0x0C,0x00,0x5A,0xE1, + 0xBC,0xCD,0xDE,0xB1,0x94,0xE0,0x9D,0xE5,0x03,0xEC,0x8E,0xE2,0xFC,0xA6,0xDE,0xE1, + 0x00,0x00,0x5A,0xE3,0x03,0x00,0x00,0xDA,0x01,0x00,0x5A,0xE1,0xBC,0x16,0xDE,0xC1, + 0x02,0x00,0x5A,0xE1,0xBC,0x26,0xDE,0xB1,0x01,0x00,0x50,0xE2,0xE8,0xFF,0xFF,0x5A, + 0x0C,0x00,0x43,0xE0,0xF0,0x00,0x50,0xE3,0x02,0x30,0x41,0xD0,0xF0,0x00,0x53,0xD3, + 0x0C,0xC6,0x9F,0xC5,0x01,0x30,0xA0,0xC3,0xD0,0x32,0xCC,0xC5,0x1E,0x00,0x50,0xE3, + 0x02,0x00,0x41,0xB0,0x1E,0x00,0x50,0xB3,0xF4,0x15,0x9F,0xA5,0x00,0x00,0xA0,0xA3, + 0xF1,0x00,0xC1,0xA5,0xE8,0x05,0x9F,0xB5,0x01,0x10,0xA0,0xB3,0xF1,0x10,0xC0,0xB5, + 0xD4,0x02,0xD5,0xE5,0x01,0x00,0x50,0xE3,0x64,0xA0,0xA0,0x93,0x24,0xA0,0x8D,0x95, + 0x0E,0x00,0x00,0x9A,0xFC,0x2D,0xD9,0xE1,0xFC,0x3E,0xD9,0xE1,0x03,0x00,0x42,0xE0, + 0x00,0x00,0x50,0xE3,0x02,0x00,0x43,0xD0,0xFC,0x36,0xD4,0xE1,0xFC,0x27,0xD4,0xE1, + 0x00,0xA8,0xA0,0xE1,0x4A,0xA8,0xA0,0xE1,0x02,0x00,0x43,0xE0,0x00,0x00,0x50,0xE3, + 0x03,0x00,0x42,0xD0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x24,0x00,0x8D,0xE5, + 0xFC,0x1E,0xD9,0xE1,0xFC,0x0D,0xD9,0xE1,0xC0,0x0F,0x00,0xEB,0x3C,0x00,0x8D,0xE5, + 0xFC,0x17,0xD4,0xE1,0xFC,0x06,0xD4,0xE1,0xBC,0x0F,0x00,0xEB,0x38,0x00,0x8D,0xE5, + 0xFC,0x1F,0xD9,0xE1,0x3C,0x00,0x9D,0xE5,0xB8,0x0F,0x00,0xEB,0x44,0x00,0x8D,0xE5, + 0xFC,0x18,0xD4,0xE1,0x38,0x00,0x9D,0xE5,0xB4,0x0F,0x00,0xEB,0x40,0x00,0x8D,0xE5, + 0xFC,0x21,0xD4,0xE1,0xFC,0x10,0xD4,0xE1,0x44,0x00,0x9D,0xE5,0xB2,0x0F,0x00,0xEB, + 0x4C,0x00,0x8D,0xE5,0xFC,0x2A,0xD4,0xE1,0xFC,0x19,0xD4,0xE1,0x40,0x00,0x9D,0xE5, + 0xAD,0x0F,0x00,0xEB,0x48,0x00,0x8D,0xE5,0xFC,0x23,0xD4,0xE1,0xFC,0x12,0xD4,0xE1, + 0x4C,0x00,0x9D,0xE5,0xA8,0x0F,0x00,0xEB,0x54,0x00,0x8D,0xE5,0xFC,0x2C,0xD4,0xE1, + 0xFC,0x1B,0xD4,0xE1,0x48,0x00,0x9D,0xE5,0xA3,0x0F,0x00,0xEB,0x50,0x00,0x8D,0xE5, + 0xFC,0x25,0xD4,0xE1,0xFC,0x14,0xD4,0xE1,0x54,0x00,0x9D,0xE5,0x9E,0x0F,0x00,0xEB, + 0x5C,0x00,0x8D,0xE5,0xFC,0x2E,0xD4,0xE1,0xFC,0x1D,0xD4,0xE1,0x50,0x00,0x9D,0xE5, + 0x99,0x0F,0x00,0xEB,0x58,0x00,0x8D,0xE5,0x24,0x10,0x9D,0xE5,0x0A,0x00,0xA0,0xE1, + 0x3D,0x04,0x00,0xEB,0xC8,0x34,0x9F,0xE5,0x01,0x10,0xA0,0xE3,0x01,0x22,0x83,0xE0, + 0x86,0x20,0x82,0xE0,0x01,0x2B,0x82,0xE2,0xBC,0xC1,0xD2,0xE1,0x01,0x10,0x51,0xE2, + 0xBC,0xC2,0xC2,0xE1,0xF8,0xFF,0xFF,0x5A,0x98,0x10,0x9D,0xE5,0x01,0x1B,0x81,0xE2, + 0xBC,0x01,0xC1,0xE1,0x14,0x14,0xD5,0xE5,0x00,0x00,0xA0,0xE3,0x00,0x20,0x51,0xE2, + 0x06,0x00,0x00,0xBA,0x01,0xC2,0x83,0xE0,0x86,0xC0,0x8C,0xE0,0x01,0xCB,0x8C,0xE2, + 0xFC,0xC1,0xDC,0xE1,0x01,0x10,0x51,0xE2,0x0C,0x00,0x80,0xE0,0xF8,0xFF,0xFF,0x5A, + 0x01,0x10,0x82,0xE2,0x6D,0xF3,0xFF,0xEB,0x84,0x10,0x9D,0xE5,0x00,0xA0,0xA0,0xE1, + 0x01,0x00,0x50,0xE1,0x01,0x00,0xA0,0xD3,0x0B,0x00,0x00,0xDA,0x7C,0x00,0x9D,0xE5, + 0x00,0x00,0x5A,0xE1,0x02,0x00,0xA0,0xD3,0x07,0x00,0x00,0xDA,0x74,0x00,0x9D,0xE5, + 0x00,0x00,0x5A,0xE1,0x03,0x00,0xA0,0xD3,0x03,0x00,0x00,0xDA,0x6C,0x00,0x9D,0xE5, + 0x00,0x00,0x5A,0xE1,0x05,0x00,0xA0,0xC3,0x04,0x00,0xA0,0xD3,0x0C,0x14,0xD5,0xE5, + 0x01,0x10,0x40,0xE0,0x00,0x00,0x51,0xE3,0x00,0x00,0x6B,0xE2,0x06,0x00,0x00,0xDA, + 0xFC,0x1F,0xD4,0xE1,0x0B,0x00,0x51,0xE1,0x01,0x00,0x00,0x1A,0x00,0x10,0xA0,0xE3, + 0x06,0x00,0x00,0xEA,0x01,0x10,0x81,0xE2,0x04,0x00,0x00,0xEA,0xFC,0x1F,0xD4,0xE1, + 0x04,0x00,0x00,0xAA,0x00,0x00,0x51,0xE1,0xF7,0xFF,0xFF,0x0A,0x01,0x10,0x41,0xE2, + 0xBC,0x1F,0xC4,0xE1,0x02,0x00,0x00,0xEA,0x00,0x00,0x51,0xE3,0xFA,0xFF,0xFF,0xCA, + 0xF3,0xFF,0xFF,0xBA,0xFC,0x3F,0xD4,0xE1,0x0B,0x00,0x53,0xE1,0x03,0x00,0x00,0x1A, + 0x0C,0x14,0xD5,0xE5,0x05,0x00,0x51,0xE3,0x01,0x00,0x81,0x32,0x05,0x00,0x00,0x3A, + 0x00,0x00,0x53,0xE1,0x04,0x00,0x00,0x1A,0x0C,0x04,0xD5,0xE5,0x01,0x00,0x50,0xE3, + 0x01,0x00,0x00,0x9A,0x01,0x00,0x40,0xE2,0x0C,0x04,0xC5,0xE5,0x58,0x30,0x8D,0xE2, + 0x09,0x00,0x93,0xE8,0x60,0x00,0x8D,0xE5,0xD4,0x02,0xD5,0xE5,0x00,0x10,0xA0,0xE1, + 0x90,0x00,0x8D,0xE5,0x8C,0x00,0x8D,0xE5,0x03,0x00,0xA0,0xE1,0x2F,0xF3,0xFF,0xEB, + 0x34,0x00,0x8D,0xE5,0x2C,0x00,0x8D,0xE5,0x60,0x00,0x9D,0xE5,0x8C,0x10,0x9D,0xE5, + 0x2A,0xF3,0xFF,0xEB,0x30,0x00,0x8D,0xE5,0x28,0x00,0x8D,0xE5,0x0C,0x04,0xD5,0xE5, + 0x01,0x00,0x50,0xE3,0x18,0x00,0x00,0x1A,0x28,0x30,0x8D,0xE2,0x2C,0x20,0x8D,0xE2, + 0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5,0x5C,0x20,0x9D,0xE5,0x58,0x30,0x9D,0xE5, + 0x09,0x10,0xA0,0xE3,0x90,0x11,0x00,0xEB,0x30,0x30,0x8D,0xE2,0x34,0x20,0x8D,0xE2, + 0x0C,0x00,0x8D,0xE8,0xD4,0x02,0xD5,0xE5,0x54,0x20,0x9D,0xE5,0x50,0x30,0x9D,0xE5, + 0x07,0x10,0xA0,0xE3,0x88,0x11,0x00,0xEB,0xF4,0x03,0xDD,0xE1,0xF0,0x13,0xDD,0xE1, + 0xF8,0x32,0xDD,0xE1,0xFC,0x22,0xDD,0xE1,0x0F,0x00,0x8D,0xE8,0x88,0x20,0x9D,0xE5, + 0x84,0x30,0x9D,0xE5,0x63,0x0F,0x88,0xE2,0x60,0x00,0x00,0xEA,0x02,0x00,0x50,0xE3, + 0x18,0x00,0x00,0x1A,0x28,0x30,0x8D,0xE2,0x2C,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8, + 0x90,0x00,0x9D,0xE5,0x54,0x20,0x9D,0xE5,0x50,0x30,0x9D,0xE5,0x07,0x10,0xA0,0xE3, + 0x75,0x11,0x00,0xEB,0x30,0x30,0x8D,0xE2,0x34,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8, + 0xD4,0x02,0xD5,0xE5,0x4C,0x20,0x9D,0xE5,0x48,0x30,0x9D,0xE5,0x05,0x10,0xA0,0xE3, + 0x6D,0x11,0x00,0xEB,0xF4,0x03,0xDD,0xE1,0xF0,0x13,0xDD,0xE1,0xF8,0x32,0xDD,0xE1, + 0xFC,0x22,0xDD,0xE1,0x0F,0x00,0x8D,0xE8,0x80,0x20,0x9D,0xE5,0x7C,0x30,0x9D,0xE5, + 0x63,0x0F,0x88,0xE2,0x45,0x00,0x00,0xEA,0x03,0x00,0x50,0xE3,0x18,0x00,0x00,0x1A, + 0x28,0x30,0x8D,0xE2,0x2C,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5, + 0x4C,0x20,0x9D,0xE5,0x48,0x30,0x9D,0xE5,0x05,0x10,0xA0,0xE3,0x5A,0x11,0x00,0xEB, + 0x30,0x30,0x8D,0xE2,0x34,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0xD4,0x02,0xD5,0xE5, + 0x44,0x20,0x9D,0xE5,0x40,0x30,0x9D,0xE5,0x03,0x10,0xA0,0xE3,0x52,0x11,0x00,0xEB, + 0xF4,0x03,0xDD,0xE1,0xF0,0x13,0xDD,0xE1,0xF8,0x32,0xDD,0xE1,0xFC,0x22,0xDD,0xE1, + 0x0F,0x00,0x8D,0xE8,0x78,0x20,0x9D,0xE5,0x74,0x30,0x9D,0xE5,0x63,0x0F,0x88,0xE2, + 0x2A,0x00,0x00,0xEA,0x04,0x00,0x50,0xE3,0x18,0x00,0x00,0x1A,0x28,0x30,0x8D,0xE2, + 0x2C,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5,0x44,0x20,0x9D,0xE5, + 0x40,0x30,0x9D,0xE5,0x03,0x10,0xA0,0xE3,0x3F,0x11,0x00,0xEB,0x30,0x30,0x8D,0xE2, + 0x34,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0xD4,0x02,0xD5,0xE5,0x3C,0x20,0x9D,0xE5, + 0x38,0x30,0x9D,0xE5,0x02,0x10,0xA0,0xE3,0x37,0x11,0x00,0xEB,0xF4,0x03,0xDD,0xE1, + 0xF0,0x13,0xDD,0xE1,0xF8,0x32,0xDD,0xE1,0xFC,0x22,0xDD,0xE1,0x0F,0x00,0x8D,0xE8, + 0x70,0x20,0x9D,0xE5,0x6C,0x30,0x9D,0xE5,0x63,0x0F,0x88,0xE2,0x0F,0x00,0x00,0xEA, + 0x30,0x30,0x8D,0xE2,0x34,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5, + 0x3C,0x20,0x9D,0xE5,0x38,0x30,0x9D,0xE5,0x02,0x10,0xA0,0xE3,0x26,0x11,0x00,0xEB, + 0xFC,0x0D,0xD9,0xE1,0xFC,0x16,0xD4,0xE1,0xF0,0x33,0xDD,0xE1,0xF4,0x23,0xDD,0xE1, + 0x0F,0x00,0x8D,0xE8,0x68,0x20,0x9D,0xE5,0x64,0x30,0x9D,0xE5,0x63,0x0F,0x88,0xE2, + 0x0A,0x10,0xA0,0xE1,0x2E,0x11,0x00,0xEB,0xD4,0x02,0xD5,0xE5,0x50,0x11,0x9F,0xE5, + 0x09,0x00,0x50,0xE3,0x01,0x00,0x80,0x32,0xD4,0x02,0xC5,0x35,0x14,0x04,0xD5,0xE5, + 0x02,0x00,0x50,0xE3,0x01,0x00,0x80,0x32,0x14,0x04,0xC5,0x35,0x8C,0x01,0xD8,0xE5, + 0x01,0x00,0x40,0xE2,0x00,0x01,0x81,0xE0,0x01,0x4B,0x80,0xE2,0xFC,0x04,0xD4,0xE1, + 0x01,0x00,0x70,0xE3,0xFE,0x14,0xD4,0xC1,0x01,0x00,0x71,0xC3,0x18,0x00,0x00,0xDA, + 0x14,0x10,0x9D,0xE5,0x64,0x50,0x61,0xE2,0x95,0x00,0x00,0xE0,0x64,0x10,0xA0,0xE3, + 0x92,0xF2,0xFF,0xEB,0x00,0x80,0xA0,0xE1,0xBE,0x08,0xD7,0xE1,0x14,0x10,0x9D,0xE5, + 0x91,0x00,0x00,0xE0,0x64,0x10,0xA0,0xE3,0x24,0xF3,0xFF,0xEB,0x08,0x00,0x80,0xE0, + 0xBE,0x08,0xC7,0xE1,0xFE,0x04,0xD4,0xE1,0x64,0x10,0xA0,0xE3,0x95,0x00,0x00,0xE0, + 0x86,0xF2,0xFF,0xEB,0x00,0x50,0xA0,0xE1,0xB0,0x09,0xD7,0xE1,0x14,0x10,0x9D,0xE5, + 0x91,0x00,0x00,0xE0,0x64,0x10,0xA0,0xE3,0x18,0xF3,0xFF,0xEB,0x05,0x00,0x80,0xE0, + 0xB0,0x09,0xC7,0xE1,0xBE,0x08,0xD7,0xE1,0xBC,0x04,0xC4,0xE1,0xB0,0x09,0xD7,0xE1, + 0xBE,0x04,0xC4,0xE1,0x01,0x60,0x86,0xE2,0x08,0x00,0x56,0xE3,0x48,0xFE,0xFF,0xBA, + 0x8C,0x30,0x9F,0xE5,0x88,0x21,0xD3,0xE5,0x00,0x00,0x83,0xE2,0x01,0x1C,0x80,0xE2, + 0x01,0x00,0x52,0xE3,0x02,0x0C,0x80,0xE2,0x10,0x00,0x00,0x1A,0x96,0x21,0xD3,0xE5, + 0x82,0x30,0x83,0xE0,0x02,0x2C,0x83,0xE2,0xBA,0xCD,0xD2,0xE1,0x03,0x3C,0x83,0xE2, + 0xB4,0xCC,0xC0,0xE1,0xBA,0xC6,0xD3,0xE1,0xB6,0xCC,0xC0,0xE1,0xBA,0x2E,0xD2,0xE1, + 0xB8,0x2C,0xC0,0xE1,0xBA,0x27,0xD3,0xE1,0xBA,0x2C,0xC0,0xE1,0xB8,0x29,0xD1,0xE1, + 0xBC,0x2B,0xC0,0xE1,0xBA,0x19,0xD1,0xE1,0xBE,0x1B,0xC0,0xE1,0x2D,0xFE,0xFF,0xEA, + 0x02,0x00,0x52,0xE3,0x2B,0xFE,0xFF,0x1A,0xB8,0x29,0xD1,0xE1,0xBC,0x2B,0xC0,0xE1, + 0xBA,0x29,0xD1,0xE1,0xBE,0x2B,0xC0,0xE1,0xB2,0x2A,0xD1,0xE1,0xB0,0x2C,0xC0,0xE1, + 0xB4,0x1A,0xD1,0xE1,0xB2,0x1C,0xC0,0xE1,0x22,0xFE,0xFF,0xEA,0x00,0x93,0x00,0x00, + 0x78,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xF8,0xB5,0x1C,0x4B,0x1C,0x7D,0xDA,0x8E, + 0xE4,0x07,0x31,0xD0,0x1C,0x8F,0x1A,0x4B,0x1B,0x7B,0x9E,0x46,0x19,0x4B,0x1E,0x78, + 0x16,0x4B,0x9D,0x7D,0x00,0x2E,0x76,0x46,0xAC,0x46,0xDD,0x7D,0x00,0x95,0x1D,0x7E, + 0x5F,0x7E,0x9B,0x7E,0x12,0xD0,0xB0,0x42,0x1E,0xD1,0x8C,0x45,0x08,0xD0,0x00,0x98, + 0x88,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0,0x8F,0x42,0x01,0xD0,0x8B,0x42,0x03,0xD1, + 0x20,0x00,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0xFA,0xE7,0xB1,0x42,0x0B,0xD1, + 0x84,0x45,0xF5,0xD0,0x00,0x99,0x81,0x42,0xF2,0xD0,0x85,0x42,0xF0,0xD0,0x87,0x42, + 0xEE,0xD0,0x83,0x42,0xF0,0xD1,0xEB,0xE7,0x10,0x00,0xEA,0xE7,0x00,0x93,0x00,0x00, + 0xE0,0x04,0x00,0x20,0x6D,0x05,0x00,0x20,0x0E,0x23,0x58,0x43,0x02,0x4A,0x40,0x18, + 0x40,0x00,0x10,0x5A,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x31,0x49,0x10,0xB5, + 0x4A,0x7E,0x31,0x49,0x00,0x20,0x00,0x2A,0x15,0xD1,0x0A,0x89,0x00,0x2A,0x0F,0xD0, + 0x2E,0x49,0x8A,0x42,0x0C,0xD0,0x10,0x00,0x1E,0x21,0x48,0x43,0x64,0x21,0xFC,0xF7, + 0x75,0xFD,0xFF,0x30,0x4B,0x21,0x91,0x30,0xC9,0x00,0x88,0x42,0x00,0xD9,0x08,0x00, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x88,0x89,0x01,0x21,0x49,0x07,0x89,0x68,0x22,0x4B, + 0x89,0x00,0x9B,0x89,0x0A,0x0F,0x22,0x49,0x59,0x18,0x01,0x2A,0x1A,0xD1,0x21,0x4A, + 0x21,0x4C,0x91,0x42,0x07,0xD8,0x21,0x1A,0x08,0x00,0x48,0x43,0x51,0x1C,0xFC,0xF7, + 0x55,0xFD,0x20,0x1A,0x08,0xE0,0xA0,0x42,0x06,0xD9,0x1B,0x4A,0x03,0x21,0x52,0x42, + 0x80,0x18,0xFC,0xF7,0x4B,0xFD,0x00,0x19,0x7D,0x24,0x24,0x01,0xA0,0x42,0xD7,0xD9, + 0x0D,0x21,0x1B,0xE0,0x02,0x2A,0xD3,0xD1,0x13,0x4A,0x14,0x4C,0x15,0x3A,0x91,0x42, + 0x07,0xD8,0x21,0x1A,0x08,0x00,0x48,0x43,0x51,0x1C,0xFC,0xF7,0x37,0xFD,0x20,0x1A, + 0x08,0xE0,0xA0,0x42,0x06,0xD9,0x0D,0x4A,0x03,0x21,0x52,0x42,0x80,0x18,0xFC,0xF7, + 0x2D,0xFD,0x00,0x19,0x0A,0x4C,0xA0,0x42,0xBA,0xD9,0x11,0x21,0xFC,0xF7,0x26,0xFD, + 0x60,0x1A,0xB5,0xE7,0xA0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0x0F,0x00,0x00, + 0x2F,0xFD,0xFF,0xFF,0x0B,0x03,0x00,0x00,0xDC,0x05,0x00,0x00,0x98,0x08,0x00,0x00, + 0xB8,0x0B,0x00,0x00,0x04,0x48,0x41,0x69,0x49,0x06,0x01,0xD5,0x10,0x20,0x70,0x47, + 0x40,0x69,0xC0,0x06,0xC0,0x0E,0x70,0x47,0x00,0x40,0x00,0x30,0x70,0xB5,0x12,0x4D, + 0x00,0x24,0x01,0x21,0x49,0x07,0x68,0x69,0x80,0x06,0xFC,0xD4,0xE8,0x68,0x6A,0x68, + 0x6A,0x60,0x05,0xE0,0x6A,0x69,0x92,0x06,0xFC,0xD4,0xAA,0x69,0x04,0xC1,0xA4,0x18, + 0x02,0x00,0x40,0x1E,0x01,0x2A,0xF5,0xD8,0x2E,0x20,0x68,0x60,0x68,0x68,0x80,0x07, + 0xFC,0xD5,0x03,0xF0,0xC7,0xFB,0x05,0x48,0xE8,0x61,0xEC,0x61,0x68,0x69,0x80,0x06, + 0xFC,0xD4,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30,0xAB,0xFC,0xFF,0x8F, + 0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9,0xB0,0x40,0x9F,0xE5,0x0C,0x00,0x94,0xE5, + 0x00,0x00,0x50,0xE3,0xFC,0xFF,0xFF,0x0A,0x04,0x00,0x94,0xE5,0x04,0x00,0x84,0xE5, + 0x04,0x00,0x94,0xE5,0x04,0x00,0x10,0xE3,0x10,0x00,0x00,0x0A,0x0C,0x00,0x94,0xE5, + 0x04,0x10,0x90,0xE4,0x1C,0x10,0x84,0xE5,0x02,0x12,0xA0,0xE3,0x38,0x10,0x91,0xE5, + 0x04,0x00,0x00,0xEA,0x04,0x20,0x90,0xE4,0x1C,0x20,0x84,0xE5,0x14,0x20,0x94,0xE5, + 0x40,0x00,0x12,0xE3,0xFC,0xFF,0xFF,0x1A,0x01,0x10,0x51,0xE2,0xF8,0xFF,0xFF,0x1A, + 0x14,0x00,0x94,0xE5,0x5F,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x1A,0x11,0x00,0x00,0xEA, + 0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3,0xE8,0xFF,0xFF,0x0A,0x14,0x00,0x94,0xE5, + 0x20,0x00,0x10,0xE3,0xE5,0xFF,0xFF,0x1A,0x0C,0x00,0x94,0xE5,0x08,0x00,0x50,0xE3, + 0x10,0x40,0xBD,0x08,0xB4,0x0D,0x00,0x0A,0x14,0x10,0x94,0xE5,0x5F,0x00,0x11,0xE3, + 0x18,0x10,0x94,0x15,0x04,0x10,0x80,0x14,0xFA,0xFF,0xFF,0x1A,0x04,0x00,0x94,0xE5, + 0x02,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x0A,0xAB,0x0D,0x00,0xEB,0xD2,0xFF,0xFF,0xEA, + 0x00,0x40,0x00,0x30,0xF8,0xB5,0x20,0x4E,0x20,0x4F,0x00,0x25,0x2C,0x00,0x78,0x69, + 0x80,0x06,0xFC,0xD4,0x78,0x68,0x78,0x60,0xF8,0x68,0x04,0x28,0x0E,0xD1,0x1C,0x48, + 0x40,0x21,0x04,0xE0,0x7A,0x69,0x92,0x06,0xFC,0xD4,0xBA,0x69,0x04,0xC0,0x49,0x1E, + 0xF8,0xD2,0x20,0x25,0x17,0x4C,0x30,0x78,0x01,0x21,0x06,0xE0,0x05,0x28,0x07,0xD1, + 0x15,0x48,0x16,0x4C,0x85,0x08,0x30,0x78,0x02,0x21,0x08,0x43,0x30,0x70,0x10,0xE0, + 0x03,0x28,0x0E,0xD1,0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x03,0xF0, + 0x29,0xFB,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x78,0x69,0x80,0x06,0xFC,0xD4,0xB8,0x69, + 0x01,0xC4,0x6D,0x1E,0xF8,0xD2,0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5, + 0x03,0xF0,0x18,0xFB,0xC3,0xE7,0x00,0x00,0x66,0x05,0x00,0x20,0x00,0x40,0x00,0x30, + 0x00,0x90,0x00,0x40,0x00,0xA0,0x00,0x40,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x10, + 0x01,0x49,0x20,0x20,0x48,0x61,0x70,0x47,0x00,0x40,0x00,0x30,0xF8,0xB5,0x01,0x22, + 0x52,0x07,0x11,0x68,0x3D,0x48,0x01,0x29,0x80,0x7B,0x01,0xD1,0x01,0x25,0x03,0xE0, + 0x11,0x68,0x01,0x29,0x06,0xD9,0x02,0x25,0x00,0x28,0x0B,0xD0,0x00,0x21,0x13,0x27, + 0xBF,0x01,0x3B,0xE0,0x00,0x28,0x05,0xD1,0x34,0x48,0x09,0x22,0x00,0x21,0x00,0x1F, + 0xFC,0xF7,0x30,0xFC,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x4A,0x19,0x00,0x24,0x92,0x00, + 0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x26,0xD0,0x01,0x20,0x93,0x00, + 0x1B,0x0F,0x2B,0x4E,0x36,0x18,0xF6,0x19,0x36,0x7F,0x9E,0x42,0x01,0xD1,0x04,0x00, + 0x02,0xE0,0x40,0x1C,0x08,0x28,0xF4,0xD9,0x00,0x2C,0x06,0xD0,0x0F,0x23,0x9B,0x06, + 0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43,0x0D,0xE0,0x21,0x4C,0x01,0x20,0x26,0x18, + 0xF6,0x19,0x36,0x7F,0x00,0x2E,0x03,0xD1,0x24,0x18,0xE4,0x19,0x23,0x77,0xED,0xE7, + 0x40,0x1C,0x08,0x28,0xF3,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07, + 0x02,0x68,0x8A,0x42,0xC9,0xD8,0x00,0x21,0x21,0xE0,0x4A,0x19,0x92,0x00,0x10,0x18, + 0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x18,0xD1,0x11,0x4E,0x01,0x20,0x93,0x00, + 0x1C,0x0F,0x33,0x18,0xDB,0x19,0x1B,0x7F,0xA3,0x42,0x0A,0xD1,0x34,0x18,0x00,0x23, + 0xE4,0x19,0x23,0x77,0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43, + 0x02,0xE0,0x40,0x1C,0x08,0x28,0xEC,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20, + 0x40,0x07,0x02,0x68,0x8A,0x42,0xD8,0xD8,0x9C,0xE7,0x00,0x00,0x20,0x05,0x00,0x20, + 0x40,0x00,0x00,0x20,0x03,0x22,0x12,0x07,0xD3,0x68,0x01,0x21,0x81,0x40,0x0B,0x43, + 0xD3,0x60,0x50,0x68,0x08,0x42,0x01,0xD0,0x01,0x48,0x01,0x63,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x30,0x03,0x23,0x1B,0x07,0xDA,0x68,0x01,0x21,0x81,0x40,0x8A,0x43, + 0xDA,0x60,0x70,0x47,0x10,0xB4,0x0F,0x24,0x03,0x23,0x1B,0x07,0x1C,0x60,0x05,0x4C, + 0x60,0x63,0x19,0x61,0x9A,0x60,0x00,0x20,0xC0,0x43,0xD8,0x60,0x00,0x20,0x18,0x60, + 0x10,0xBC,0x70,0x47,0x40,0x00,0x00,0x30,0x03,0x4B,0x00,0xB5,0x82,0x00,0x99,0x50, + 0xFF,0xF7,0xE0,0xFF,0x08,0xBC,0x18,0x47,0xF8,0x05,0x00,0x20,0xF0,0xB5,0x87,0xB0, + 0xFE,0xF7,0xC4,0xFA,0xFE,0xF7,0xA2,0xFA,0x02,0xF0,0x02,0xF8,0x03,0xF0,0xCE,0xF8, + 0x00,0xF0,0x6A,0xFE,0x00,0xF0,0xC0,0xFB,0xFD,0xF7,0x26,0xFF,0xFD,0xF7,0x60,0xF8, + 0x39,0x48,0x00,0x68,0x80,0x30,0x40,0x7B,0x00,0x28,0x04,0xD1,0xFF,0xF7,0x4C,0xF9, + 0xFF,0xF7,0xFE,0xF8,0x03,0xE0,0xFF,0xF7,0xFB,0xF8,0xFF,0xF7,0x45,0xF9,0x01,0x27, + 0x7F,0x07,0x78,0x68,0x6B,0x46,0x03,0x90,0x00,0x20,0xD8,0x73,0x03,0x98,0x78,0x60, + 0x03,0xF0,0x2A,0xFC,0x03,0xF0,0x76,0xFA,0x38,0x68,0x00,0x28,0x07,0xD0,0x78,0x68, + 0x80,0x0F,0x80,0x07,0x03,0xD5,0x3E,0x68,0x02,0x24,0x76,0x1C,0x37,0xE0,0x01,0x24, + 0x26,0x00,0xA0,0x00,0xC0,0x19,0x06,0x90,0x05,0x68,0xA8,0x01,0x80,0x0D,0x05,0x90, + 0xA8,0x05,0x80,0x0D,0x04,0x90,0x21,0x48,0x00,0x78,0x00,0x28,0x03,0xD1,0x04,0xA9, + 0x05,0xA8,0x03,0xF0,0x9D,0xFA,0x1E,0x4B,0x00,0x21,0x58,0x8C,0x40,0x1E,0x02,0x04, + 0x12,0x0C,0x68,0x46,0x06,0xC0,0x18,0x8C,0x0A,0x00,0x04,0xA9,0x40,0x1E,0x03,0x04, + 0x1B,0x0C,0x05,0xA8,0x04,0xF0,0xFD,0xFA,0x04,0xA9,0x05,0xA8,0x04,0xF0,0x12,0xF9, + 0x14,0x48,0x04,0x99,0x05,0x40,0x05,0x98,0x89,0x05,0x80,0x05,0x80,0x09,0x05,0x43, + 0xA8,0x0A,0x80,0x02,0x89,0x0D,0x08,0x43,0x06,0x99,0x08,0x60,0x64,0x1C,0xB4,0x42, + 0xC7,0xD9,0xFD,0xF7,0x6F,0xFD,0x03,0xF0,0xFD,0xF9,0x38,0x68,0xFC,0xF7,0x4A,0xFC, + 0xFF,0xF7,0xCC,0xFE,0xFC,0xF7,0x7E,0xFB,0x04,0xF0,0x9E,0xF9,0x06,0x48,0x40,0x79, + 0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x78,0x06,0x00,0x20,0x74,0x05,0x00,0x20, + 0x00,0x93,0x00,0x00,0xFF,0xFF,0x00,0xFC,0x40,0x00,0x00,0x20,0xF8,0xB5,0x03,0xF0, + 0x29,0xF8,0x29,0x48,0x29,0x4D,0x00,0x7C,0x41,0x1E,0xFF,0x29,0x00,0xD3,0x00,0x20, + 0xFE,0xF7,0xE6,0xF8,0x28,0x72,0x26,0x48,0x01,0x69,0xFF,0x22,0x12,0x02,0x91,0x43, + 0x01,0x61,0x01,0x69,0x2A,0x7A,0x12,0x02,0x11,0x43,0x01,0x61,0xFE,0xF7,0xC4,0xFC, + 0xFE,0xF7,0x40,0xFD,0xFE,0xF7,0x88,0xFD,0x1B,0x48,0x60,0x38,0xC0,0x7F,0x04,0xF0, + 0x53,0xF8,0x1C,0x4F,0xFC,0x03,0x00,0x20,0x28,0x70,0x68,0x62,0x28,0x7B,0x00,0x28, + 0x1D,0xD0,0x01,0x26,0x18,0xE0,0x78,0x68,0x00,0x07,0x15,0xD5,0xA6,0x63,0xF8,0x68, + 0x07,0x28,0x09,0xD1,0x78,0x68,0x80,0x07,0xFC,0xD5,0x03,0xF0,0x83,0xF9,0xFF,0xF7, + 0x1B,0xF8,0xFF,0x20,0xE0,0x63,0x07,0xE0,0x0B,0x28,0x10,0xD1,0xE0,0x63,0x78,0x68, + 0x80,0x07,0xFC,0xD5,0x03,0xF0,0x76,0xF9,0xE0,0x6B,0x0B,0x28,0xE3,0xD1,0xFE,0xF7, + 0xDD,0xF8,0x28,0x78,0x00,0x28,0xD6,0xD0,0x02,0xF0,0x1C,0xFD,0xD3,0xE7,0x78,0x68, + 0x80,0x07,0xFC,0xD5,0xEE,0xE7,0x00,0x00,0x60,0x93,0x00,0x00,0x64,0x05,0x00,0x20, + 0x00,0x90,0x00,0x40,0x00,0x40,0x00,0x30,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x70,0xB5,0x05,0x00,0x1A,0x48,0x1B,0x4A,0x00,0x68,0x12,0x8B,0x60,0x30,0x01,0x7E, + 0xC0,0x7D,0x2C,0x78,0x89,0x18,0x0E,0x06,0x17,0x49,0x36,0x0E,0x8A,0x7E,0x00,0x2A, + 0x0D,0xD1,0xC9,0x7E,0x01,0x29,0x01,0xD1,0x40,0x1D,0x06,0xE0,0x02,0x29,0x01,0xD1, + 0x0A,0x30,0x02,0xE0,0x03,0x29,0x02,0xD1,0x0F,0x30,0x00,0x06,0x00,0x0E,0x00,0x2C, + 0x0A,0xD0,0x84,0x42,0x08,0xD3,0x14,0x21,0x20,0x00,0xFC,0xF7,0x57,0xFA,0x76,0x1C, + 0xB0,0x42,0x05,0xD2,0x14,0x2C,0x07,0xD3,0x00,0x20,0x70,0xBC,0x08,0xBC,0x18,0x47, + 0x14,0x2C,0x01,0xD3,0xF0,0x20,0x00,0xE0,0x13,0x20,0x28,0x70,0x01,0x20,0xF4,0xE7, + 0x78,0x06,0x00,0x20,0x40,0x05,0x00,0x20,0xE0,0x02,0x00,0x20,0x78,0x47,0xC0,0x46, + 0xF0,0x03,0x2D,0xE9,0x8C,0x50,0x9F,0xE5,0x08,0x10,0xA0,0xE3,0x24,0x60,0x85,0xE2, + 0x40,0x70,0x46,0xE2,0x12,0x80,0x87,0xE2,0x00,0x40,0xE0,0xE3,0x00,0x30,0xA0,0xE3, + 0x52,0x90,0x88,0xE2,0x01,0x01,0x85,0xE0,0xB0,0x40,0xC0,0xE1,0xB2,0x40,0xC0,0xE1, + 0x01,0x01,0x86,0xE0,0xB0,0x40,0xC0,0xE1,0xB2,0x40,0xC0,0xE1,0x81,0x00,0x87,0xE0, + 0xB0,0x30,0xC0,0xE1,0x00,0x00,0xA0,0xE3,0x01,0xC1,0x89,0xE0,0x01,0x30,0xC8,0xE7, + 0x00,0x21,0x8C,0xE0,0xB0,0x30,0xC2,0xE1,0x01,0x00,0x50,0xE2,0xB2,0x30,0xC2,0xE1, + 0xFA,0xFF,0xFF,0x5A,0x01,0x10,0x51,0xE2,0xED,0xFF,0xFF,0x5A,0x28,0x20,0x9F,0xE5, + 0x01,0x10,0xA0,0xE3,0xB1,0x00,0xD2,0xE5,0x01,0x00,0x50,0xE3,0x02,0x00,0x00,0x8A, + 0x00,0x00,0x50,0xE3,0xF0,0x03,0xBD,0x18,0x1E,0xFF,0x2F,0x11,0xB1,0x10,0xC2,0xE5, + 0xF0,0x03,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x6C,0x09,0x00,0x20,0x00,0x93,0x00,0x00, + 0x10,0xB5,0x07,0x4C,0x07,0x48,0x22,0x00,0x00,0x21,0xFC,0xF7,0x0B,0xFA,0x06,0x48, + 0x22,0x00,0x00,0x21,0xFC,0xF7,0x06,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xD2,0x02,0x00,0x00,0x00,0x00,0x00,0x10,0x7E,0x06,0x00,0x20,0x10,0xB5,0x40,0x22, + 0xD4,0x05,0x00,0x21,0x20,0x00,0xFC,0xF7,0xF5,0xF9,0x01,0x20,0xA0,0x63,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x14,0x48,0x10,0xB5,0x44,0x08,0x14,0x49,0x14,0x48,0x62,0x00, + 0xFC,0xF7,0x12,0xFA,0x10,0x48,0xC0,0x07,0x08,0xD0,0x0F,0x48,0xC2,0x07,0x0F,0x48, + 0xD2,0x0F,0x01,0x19,0x0E,0x48,0x00,0x19,0xFC,0xF7,0x0C,0xFA,0x0D,0x48,0x00,0x21, + 0x84,0x08,0x0D,0x48,0xA2,0x00,0xFC,0xF7,0xF3,0xF9,0x0A,0x48,0x80,0x07,0x07,0xD0, + 0x08,0x48,0x00,0x21,0x82,0x07,0x08,0x48,0x92,0x0F,0x00,0x19,0xFC,0xF7,0xCA,0xF9, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0xEC,0x8A,0x00,0x00, + 0x40,0x00,0x00,0x20,0x98,0x09,0x00,0x00,0x40,0x00,0x00,0x20,0x05,0x49,0xC8,0x05, + 0x41,0x62,0x05,0x49,0x81,0x62,0x05,0x48,0xFF,0x21,0xC1,0x60,0x00,0x21,0x41,0x61, + 0x70,0x47,0x00,0x00,0x80,0x88,0x3C,0x03,0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x40, + 0x02,0x49,0x03,0x48,0x01,0x60,0x20,0x21,0x41,0x60,0x70,0x47,0xDE,0x10,0x05,0x00, + 0x00,0x40,0x00,0x30,0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9,0x00,0x40,0xA0,0xE3, + 0x04,0x00,0xA0,0xE1,0x7D,0xF8,0xFF,0xEB,0x01,0x40,0x84,0xE2,0x08,0x00,0x54,0xE3, + 0xFA,0xFF,0xFF,0xBA,0x10,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x10,0xB5,0x01,0x24, + 0x64,0x03,0x20,0x00,0xFC,0xF7,0x1A,0xFE,0xFE,0xF7,0xA8,0xFB,0xFE,0xF7,0x82,0xFB, + 0xFE,0xF7,0xAC,0xFB,0xFE,0xF7,0xA2,0xFB,0xFE,0xF7,0x74,0xFB,0x07,0x48,0x01,0x68, + 0xF0,0x22,0x91,0x43,0x06,0x4A,0x12,0x7B,0x12,0x07,0x12,0x0E,0x11,0x43,0x01,0x60, + 0x20,0x00,0xFC,0xF7,0xFB,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xA0,0x00,0x40, + 0x00,0x93,0x00,0x00,0x10,0xB5,0x02,0xF0,0x77,0xFE,0x02,0xF0,0x69,0xFE,0x02,0xF0, + 0x5F,0xFE,0xFF,0x20,0xFC,0xF7,0x2A,0xFE,0xFF,0xF7,0xA0,0xFF,0x13,0x48,0x80,0x22, + 0x00,0x21,0xFC,0xF7,0x75,0xF9,0x08,0x20,0xFC,0xF7,0xE8,0xFD,0x00,0x22,0x10,0x49, + 0xD2,0x43,0x00,0x20,0xFF,0xF7,0x9E,0xFD,0x00,0xF0,0x20,0xF8,0x0D,0x48,0x40,0x7A, + 0x00,0x28,0x04,0xD0,0x40,0x20,0xFC,0xF7,0xD9,0xFD,0x00,0xF0,0x53,0xF8,0x00,0xF0, + 0x3D,0xF8,0x10,0x20,0x02,0xF0,0x49,0xFE,0x07,0x49,0xC8,0x69,0xCA,0x13,0x90,0x43, + 0xC8,0x61,0xFE,0xF7,0x03,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0xF8,0x05,0x00,0x20, + 0x02,0x03,0x0F,0x0F,0x00,0x93,0x00,0x00,0x00,0x70,0x00,0x40,0xF8,0xB5,0x03,0x24, + 0xE6,0x01,0x13,0x25,0x30,0x00,0xFC,0xF7,0xB9,0xFD,0x20,0x02,0xFC,0xF7,0xE0,0xFD, + 0x0C,0x48,0x0A,0x21,0x00,0x6B,0xFC,0xF7,0xF9,0xF8,0x02,0x00,0xFF,0x21,0x90,0x31, + 0x02,0x20,0x00,0x23,0x00,0x95,0x03,0xF0,0x21,0xFF,0x07,0x4A,0x27,0x21,0x03,0x20, + 0x00,0x23,0x00,0x94,0x03,0xF0,0x1A,0xFF,0x30,0x00,0xFC,0xF7,0x97,0xFD,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00,0xE8,0xFD,0x00,0x00,0x10,0xB5,0x07,0x49, + 0x00,0x20,0xFF,0xF7,0x61,0xFD,0x04,0xF0,0xBD,0xF8,0x05,0x48,0x04,0xF0,0xB4,0xF8, + 0x00,0x20,0xFF,0xF7,0x3F,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x6D,0x88,0x00,0x00, + 0xC8,0x32,0x00,0x00,0x0A,0x48,0x10,0xB5,0x00,0x6B,0x0A,0x49,0x0A,0x4C,0x88,0x42, + 0x05,0xD9,0x7D,0x21,0xC9,0x00,0xFC,0xF7,0xC1,0xF8,0x64,0x30,0x01,0xE0,0xFF,0x20, + 0xF5,0x30,0xA0,0x65,0x04,0xF0,0x6E,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0x93,0x00,0x00,0x07,0xA5,0x07,0x00,0x64,0x05,0x00,0x20,0x10,0xB5,0xFF,0xF7, + 0xBF,0xFE,0x12,0x48,0x00,0x7A,0x03,0xF0,0x23,0xFE,0xFF,0xF7,0x2B,0xFF,0x0F,0x48, + 0x0F,0x4A,0xA0,0x30,0x41,0x89,0xD1,0x83,0x0E,0x49,0x0F,0x4A,0x09,0x68,0x40,0x31, + 0x49,0x7D,0x51,0x74,0x01,0x00,0x20,0x39,0x0A,0x8B,0x0B,0x49,0xA0,0x31,0x0A,0x61, + 0x00,0x88,0x48,0x61,0xFF,0xF7,0x52,0xFE,0x08,0x48,0x00,0x24,0xC4,0x80,0xFE,0xF7, + 0xD5,0xF9,0x07,0x48,0x04,0x70,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00, + 0x40,0x00,0x00,0x20,0x78,0x06,0x00,0x20,0xA0,0x04,0x00,0x20,0xC0,0x01,0x00,0x20, + 0x65,0x05,0x00,0x20,0xF7,0xB5,0x2C,0x48,0x86,0xB0,0x04,0x90,0x00,0x20,0x2B,0x4E, + 0x07,0x00,0x02,0x90,0x03,0x90,0x05,0x90,0xFE,0xF7,0x86,0xFA,0xFE,0xF7,0x34,0xFB, + 0x27,0x48,0x40,0x7F,0x01,0x90,0x26,0x48,0x20,0x38,0x40,0x7F,0x00,0x25,0x00,0x90, + 0x00,0x24,0x21,0x00,0x28,0x00,0xFF,0xF7,0x8F,0xFA,0x00,0x28,0x1B,0xD0,0x0E,0x21, + 0x69,0x43,0x04,0x9A,0x09,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A, + 0x01,0x1E,0x00,0xDC,0x41,0x42,0x00,0x28,0x01,0xDB,0x01,0x98,0x00,0xE0,0x00,0x98, + 0x81,0x42,0x01,0xDD,0x01,0x22,0x05,0x92,0x08,0x1A,0xB0,0x42,0x03,0xDD,0x06,0x00, + 0x2F,0x00,0x02,0x94,0x03,0x91,0x64,0x1C,0x0E,0x2C,0xDA,0xD3,0x6D,0x1C,0x15,0x2D, + 0xD6,0xD3,0x03,0x99,0x08,0x98,0x01,0x60,0x0E,0x48,0x00,0x69,0xC0,0x07,0x05,0xD0, + 0x07,0x99,0x02,0x98,0x08,0x60,0x06,0x98,0x07,0x60,0x04,0xE0,0x07,0x98,0x07,0x60, + 0x06,0x99,0x02,0x98,0x08,0x60,0x05,0x98,0x00,0x28,0x00,0xD0,0x04,0x20,0x09,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD4,0x02,0x10,0x40,0x78,0xEC,0xFF,0xFF, + 0x20,0x93,0x00,0x00,0x00,0x90,0x00,0x40,0x78,0x47,0xC0,0x46,0x98,0xC0,0x9F,0xE5, + 0x00,0x00,0x9C,0xE5,0x94,0x30,0x9F,0xE5,0x7E,0x04,0xD3,0xE5,0x01,0x00,0x00,0xE2, + 0x00,0x00,0x50,0xE3,0x7F,0x14,0xD3,0x15,0x00,0x00,0xA0,0x13,0x00,0x00,0x51,0x13, + 0x1E,0xFF,0x2F,0x91,0x30,0x00,0x2D,0xE9,0x74,0x50,0x9F,0xE5,0x74,0x40,0x9F,0xE5, + 0x7E,0x24,0xD3,0xE5,0x00,0x10,0x83,0xE0,0xAD,0x14,0xD1,0xE5,0x02,0x00,0x12,0xE3, + 0xAC,0x24,0xD3,0xE5,0x82,0x21,0x62,0x00,0x82,0x10,0x81,0x00,0x81,0x11,0x61,0x10, + 0x81,0x10,0x82,0x10,0x00,0x20,0xD5,0xE5,0x00,0x00,0x52,0xE3,0x04,0x00,0x00,0x1A, + 0x01,0x11,0x9C,0xE7,0x80,0x20,0x83,0xE0,0x02,0x19,0xC1,0xE3,0xB0,0x11,0xC2,0xE1, + 0x03,0x00,0x00,0xEA,0x81,0x10,0x84,0xE0,0xB0,0x10,0xD1,0xE1,0x80,0x20,0x83,0xE0, + 0xB0,0x11,0xC2,0xE1,0x7F,0x14,0xD3,0xE5,0x01,0x00,0x80,0xE2,0x00,0x00,0x51,0xE1, + 0xE6,0xFF,0xFF,0x8A,0x30,0x00,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x00,0x10,0x10,0x40, + 0x40,0x00,0x00,0x20,0x64,0x05,0x00,0x20,0x7E,0x06,0x00,0x20,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x88,0x42,0x00,0xDA,0x08,0x00,0x70,0x47,0x88,0x42,0x00,0xDA, + 0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00,0x70,0x47,0x10,0xB5,0x02,0x9C,0x88,0x42, + 0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00,0x22,0x00,0x19,0x00,0xFF,0xF7, + 0xED,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9, + 0x85,0xDF,0x4D,0xE2,0x00,0x00,0xA0,0xE3,0xF8,0x01,0x8D,0xE5,0x14,0x05,0x9F,0xE5, + 0x6C,0x60,0x8D,0xE2,0xBE,0x03,0x90,0xE8,0xBE,0x03,0x86,0xE8,0x08,0x05,0x9F,0xE5, + 0x69,0x20,0xA0,0xE3,0x00,0x00,0x90,0xE5,0x01,0x2C,0x82,0xE2,0xBC,0x45,0xD0,0xE1, + 0x62,0x50,0xD0,0xE5,0x00,0x10,0xA0,0xE3,0x8C,0x00,0x8D,0xE2,0xDB,0xEF,0xFF,0xEB, + 0xE8,0x04,0x9F,0xE5,0x08,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xD7,0xEF,0xFF,0xEB, + 0xDC,0x04,0x9F,0xE5,0x10,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xD3,0xEF,0xFF,0xEB, + 0x24,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x48,0x00,0x8D,0xE2,0xCF,0xEF,0xFF,0xEB, + 0x24,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x24,0x00,0x8D,0xE2,0xCB,0xEF,0xFF,0xEB, + 0x24,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x0D,0x00,0xA0,0xE1,0xC7,0xEF,0xFF,0xEB, + 0xA0,0x14,0x9F,0xE5,0x04,0x00,0xD1,0xE5,0x00,0x00,0x50,0xE3,0x85,0xDF,0x8D,0x02, + 0xF0,0x4F,0xBD,0x08,0x1E,0xFF,0x2F,0x01,0xB6,0x00,0xD1,0xE1,0x20,0x00,0x10,0xE3, + 0x05,0x00,0x44,0x10,0x00,0x48,0xA0,0x11,0xB8,0x00,0xD1,0xE1,0x24,0x48,0xA0,0x11, + 0x74,0x24,0x9F,0xE5,0x94,0x00,0x00,0xE0,0x92,0x30,0xC0,0xE0,0xC0,0x22,0xA0,0xE1, + 0xC0,0x0F,0x42,0xE0,0x64,0x24,0x9F,0xE5,0x00,0x40,0xA0,0xE3,0x10,0x22,0x8D,0xE5, + 0xBE,0x20,0xD1,0xE1,0x02,0x00,0x80,0xE0,0x10,0x22,0x9D,0xE5,0xBE,0x07,0xC2,0xE1, + 0x04,0x00,0xA0,0xE1,0x04,0x42,0x8D,0xE5,0x80,0x01,0x60,0xE0,0x00,0x70,0xA0,0xE3, + 0x0C,0x02,0x8D,0xE5,0x0C,0x12,0x9D,0xE5,0x00,0x00,0xA0,0xE3,0x81,0x20,0x87,0xE0, + 0x2C,0x14,0x9F,0xE5,0x82,0xC0,0x81,0xE0,0x10,0x12,0x9D,0xE5,0xF0,0x30,0xDC,0xE1, + 0xFE,0x17,0xD1,0xE1,0x01,0x00,0x53,0xE1,0x01,0x00,0x43,0xC0,0x00,0x08,0xA0,0xC1, + 0x40,0x08,0xA0,0xC1,0x00,0x00,0x57,0xE3,0x06,0x00,0x00,0x1A,0x00,0x00,0x50,0xE3, + 0x83,0x00,0x00,0x0A,0x8C,0x00,0x8D,0xE2,0x02,0x00,0xD0,0xE7,0x00,0x00,0x50,0xE3, + 0x7F,0x00,0x00,0x1A,0x0C,0x00,0x00,0xEA,0xF2,0x30,0x5C,0xE1,0x01,0x00,0x53,0xE1, + 0x03,0x00,0x00,0xDA,0x01,0x10,0x43,0xE0,0x01,0x18,0xA0,0xE1,0x41,0x18,0xB0,0xE1, + 0x77,0x00,0x00,0x1A,0x00,0x00,0x50,0xE3,0x75,0x00,0x00,0x0A,0x8C,0x00,0x8D,0xE2, + 0x02,0x00,0xD0,0xE7,0x00,0x00,0x50,0xE3,0x71,0x00,0x00,0x1A,0x04,0x02,0x9D,0xE5, + 0x07,0x38,0xA0,0xE1,0x00,0xC8,0xA0,0xE1,0x01,0x00,0x84,0xE2,0x00,0x48,0xA0,0xE1, + 0x44,0x48,0xA0,0xE1,0x08,0x00,0x54,0xE3,0x43,0x38,0xA0,0xE1,0x4C,0xC8,0xA0,0xE1, + 0x04,0x10,0xA0,0xE3,0x00,0x60,0xA0,0xD3,0x00,0x32,0x8D,0xE5,0xFC,0xC1,0x8D,0xE5, + 0x03,0x00,0x00,0xDA,0x01,0x00,0x44,0xE2,0x00,0x48,0xA0,0xE1,0x44,0x48,0xA0,0xE1, + 0x6A,0x00,0x00,0xEA,0x04,0x0C,0xA0,0xE1,0x40,0x0C,0xA0,0xE1,0x08,0x02,0x8D,0xE5, + 0x50,0x03,0x9F,0xE5,0x84,0x00,0x80,0xE0,0x01,0xAC,0x80,0xE2,0x01,0x00,0x86,0xE2, + 0x00,0x68,0xA0,0xE1,0x46,0x68,0xA0,0xE1,0x09,0x0D,0x56,0xE3,0x00,0x80,0xA0,0xE3, + 0x53,0x00,0x00,0xCA,0x10,0x02,0x9D,0xE5,0x00,0x90,0xA0,0xE3,0xFE,0x57,0xD0,0xE1, + 0x6C,0x00,0x8D,0xE2,0x01,0x01,0x80,0xE0,0xB2,0x20,0xD0,0xE1,0xB0,0x00,0xD0,0xE1, + 0x0C,0x20,0x82,0xE0,0x02,0x28,0xA0,0xE1,0x03,0x00,0x80,0xE0,0x42,0x28,0xA0,0xE1, + 0x00,0x08,0xA0,0xE1,0x15,0x00,0x52,0xE3,0x40,0x08,0xA0,0xE1,0x15,0x00,0x00,0x2A, + 0x00,0x00,0x50,0xE3,0x13,0x00,0x00,0xBA,0x0E,0x00,0x50,0xE3,0x11,0x00,0x00,0xAA, + 0xEC,0xE2,0x9F,0xE5,0x82,0xB1,0x62,0xE0,0x8B,0xB0,0x80,0xE0,0x8B,0xE0,0x8E,0xE0, + 0xF0,0xE0,0xDE,0xE1,0x05,0x00,0x5E,0xE1,0x0A,0x00,0x00,0xDA,0x8C,0xE0,0x8D,0xE2, + 0xDB,0xB0,0x9E,0xE1,0x04,0x00,0x5B,0xE1,0x00,0x00,0x5B,0x13,0x05,0x00,0x00,0x1A, + 0xFC,0x91,0x9D,0xE5,0x09,0x00,0x52,0xE1,0x00,0x92,0x9D,0x05,0x09,0x00,0x50,0x01, + 0x01,0x80,0xA0,0x13,0x04,0x00,0x00,0xEA,0x01,0x90,0x89,0xE2,0x01,0x10,0x81,0xE2, + 0x08,0x00,0x59,0xE3,0x07,0x10,0x01,0xE2,0xD8,0xFF,0xFF,0xBA,0x8C,0x91,0x6C,0xE0, + 0x89,0x90,0x83,0xE0,0x8C,0xE0,0x8D,0xE2,0x09,0xB0,0xDE,0xE7,0x00,0x00,0x5B,0xE3, + 0x1C,0x00,0x00,0x1A,0x08,0xB2,0x9D,0xE5,0x09,0xB0,0xCE,0xE7,0x70,0xB2,0x9F,0xE5, + 0x48,0xE0,0x8D,0xE2,0x89,0x90,0x8B,0xE0,0xF0,0x90,0xD9,0xE1,0x04,0xB1,0x9E,0xE7, + 0x05,0x00,0x59,0xE1,0x05,0x50,0x49,0xC0,0x48,0x92,0x9F,0xE5,0x05,0x58,0xA0,0xC1, + 0x83,0x30,0x89,0xE0,0xB0,0x32,0xD3,0xE1,0x00,0x50,0xA0,0xD3,0x25,0x58,0xA0,0xC1, + 0x95,0xB3,0x23,0xE0,0x04,0x31,0x8E,0xE7,0x8C,0xC0,0x89,0xE0,0xB4,0xC5,0xDC,0xE1, + 0x24,0x30,0x8D,0xE2,0x04,0xB1,0x93,0xE7,0x95,0xBC,0x2C,0xE0,0x04,0xC1,0x83,0xE7, + 0x04,0xC1,0x9D,0xE7,0x05,0xC0,0x8C,0xE0,0x04,0xC1,0x8D,0xE7,0xBE,0x36,0xDA,0xE1, + 0x01,0x30,0x83,0xE2,0xBE,0x36,0xCA,0xE1,0x00,0x00,0x58,0xE3,0x04,0x00,0x00,0x0A, + 0xFF,0x30,0x00,0xE2,0x05,0x00,0x81,0xE2,0xFF,0xC0,0x02,0xE2,0x07,0x10,0x00,0xE2, + 0xA5,0xFF,0xFF,0xEA,0x01,0x70,0x87,0xE2,0x0E,0x00,0x57,0xE3,0x68,0xFF,0xFF,0xBA, + 0xF8,0x01,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0x04,0x02,0x9D,0xE5, + 0x01,0x00,0x80,0xE2,0x15,0x00,0x50,0xE3,0x04,0x02,0x8D,0xE5,0x5D,0xFF,0xFF,0xBA, + 0x00,0x00,0x54,0xE3,0x49,0x00,0x00,0xDA,0xA8,0x51,0x9F,0xE5,0x00,0x30,0xA0,0xE3, + 0x48,0x60,0x8D,0xE2,0x24,0xE0,0x8D,0xE2,0x00,0x20,0xA0,0xE3,0x83,0xA0,0x85,0xE0, + 0x83,0xB1,0x63,0xE0,0x98,0x01,0x9F,0xE5,0x8B,0xC0,0x82,0xE0,0x8C,0x70,0x80,0xE0, + 0x10,0x02,0x9D,0xE5,0xF2,0x70,0xD7,0xE1,0xFE,0x07,0xD0,0xE1,0x00,0x10,0xA0,0xE3, + 0x00,0x00,0x57,0xE1,0x00,0x00,0x47,0xC0,0x00,0x18,0xA0,0xC1,0x8C,0x70,0x8D,0xE2, + 0xDC,0x00,0x97,0xE1,0x07,0xC0,0x8C,0xE0,0x01,0x70,0xDC,0xE5,0x41,0x18,0xA0,0xC1, + 0x00,0x00,0x57,0xE3,0x14,0x00,0x00,0x1A,0x00,0x00,0x51,0xE3,0x00,0x00,0x50,0x13, + 0x11,0x00,0x00,0x0A,0x82,0x80,0x85,0xE0,0xB2,0x82,0xD8,0xE1,0x00,0x71,0x96,0xE7, + 0x91,0x78,0x27,0xE0,0x00,0x71,0x86,0xE7,0xB4,0x85,0xDA,0xE1,0x00,0x71,0x9E,0xE7, + 0x91,0x78,0x27,0xE0,0x00,0x71,0x8E,0xE7,0x00,0x81,0x9D,0xE7,0x08,0x10,0x81,0xE0, + 0x00,0x11,0x8D,0xE7,0x80,0x10,0x85,0xE0,0x01,0x1C,0x81,0xE2,0xBE,0x76,0xD1,0xE1, + 0x01,0x70,0x87,0xE2,0xBE,0x76,0xC1,0xE1,0x01,0x00,0xCC,0xE5,0x01,0x20,0x82,0xE2, + 0x0E,0x00,0x52,0xE3,0xD6,0xFF,0xFF,0xBA,0x01,0x30,0x83,0xE2,0x15,0x00,0x53,0xE3, + 0xD0,0xFF,0xFF,0xBA,0x01,0x00,0x54,0xE3,0x01,0x70,0xA0,0xE3,0x13,0x00,0x00,0xBA, + 0x0D,0x90,0xA0,0xE1,0x0E,0xA0,0xA0,0xE1,0x07,0x81,0x99,0xE7,0x07,0x01,0x96,0xE7, + 0x00,0x00,0x58,0xE3,0x01,0x10,0xA0,0x03,0x08,0x10,0xA0,0x11,0xAF,0xEE,0xFF,0xEB, + 0x87,0x10,0x85,0xE0,0x01,0xBC,0x81,0xE2,0x00,0x00,0x58,0xE3,0xB6,0x04,0xCB,0xE1, + 0x07,0x01,0x9A,0xE7,0x01,0x10,0xA0,0x03,0x08,0x10,0xA0,0x11,0xA7,0xEE,0xFF,0xEB, + 0x01,0x70,0x87,0xE2,0x04,0x00,0x57,0xE1,0xB6,0x05,0xCB,0xE1,0xED,0xFF,0xFF,0xDA, + 0x80,0x30,0x9F,0xE5,0x04,0x00,0xD3,0xE5,0x01,0x00,0x50,0xE3,0x85,0xDF,0x8D,0xB2, + 0xF0,0x4F,0xBD,0xB8,0x1E,0xFF,0x2F,0xB1,0x8C,0xC0,0x8D,0xE2,0x00,0x11,0x83,0xE0, + 0x01,0x2C,0x81,0xE2,0xF6,0x11,0xD2,0xE1,0xF4,0x21,0xD2,0xE1,0x81,0x11,0x61,0xE0, + 0x81,0x10,0x82,0xE0,0x01,0x10,0xDC,0xE7,0x00,0x20,0x83,0xE0,0x01,0x00,0x40,0xE2, + 0x65,0x11,0xC2,0xE5,0x81,0x10,0x83,0xE0,0x01,0x1C,0x81,0xE2,0xBE,0x16,0xD1,0xE1, + 0xFF,0x10,0x01,0xE2,0x38,0x11,0xC2,0xE5,0xBC,0x21,0xD3,0xE1,0x02,0x00,0x51,0xE1, + 0xBC,0x11,0xC3,0x81,0x01,0x00,0x50,0xE3,0xEB,0xFF,0xFF,0xAA,0x85,0xDF,0x8D,0xE2, + 0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x24,0x89,0x00,0x00,0x78,0x06,0x00,0x20, + 0xA6,0x01,0x00,0x20,0xAE,0x01,0x00,0x20,0x40,0x00,0x00,0x20,0x1F,0x85,0xEB,0x51, + 0x40,0x01,0x00,0x20,0x00,0x00,0x00,0x10,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9, + 0x00,0x00,0xA0,0xE3,0x5B,0xDF,0x4D,0xE2,0x00,0x10,0xA0,0xE1,0x18,0x00,0x8D,0xE5, + 0x14,0x00,0x8D,0xE5,0x0C,0x00,0x8D,0xE5,0x08,0x00,0x8D,0xE5,0x2E,0x20,0xA0,0xE3, + 0x34,0x00,0x8D,0xE2,0x8D,0xEE,0xFF,0xEB,0x78,0x9F,0x9F,0xE5,0x0F,0x0A,0xE0,0xE3, + 0x00,0x80,0xA0,0xE3,0xB8,0x00,0xC9,0xE1,0xBC,0x80,0xC9,0xE1,0xBA,0x8E,0xC9,0xE1, + 0x89,0x11,0xD9,0xE5,0x60,0x7F,0x9F,0xE5,0x05,0x0C,0x89,0xE2,0x02,0x00,0x51,0xE3, + 0x00,0x10,0x97,0x85,0xB2,0x12,0xD1,0x81,0x0B,0x00,0x00,0x8A,0x00,0x10,0x97,0x05, + 0xB0,0x22,0xD1,0x01,0xBE,0x11,0xD0,0x01,0x3B,0x00,0x00,0x0A,0x3C,0x1F,0x9F,0xE5, + 0x00,0x10,0xD1,0xE5,0x00,0x00,0x51,0xE3,0x34,0x00,0x00,0x0A,0x30,0x1F,0x9F,0xE5, + 0xBC,0x21,0xD0,0xE1,0xBC,0x1A,0xD1,0xE1,0x02,0x10,0x81,0xE0,0x10,0x10,0x8D,0xE5, + 0x20,0x1F,0x9F,0xE5,0x68,0x11,0x8D,0xE5,0xB4,0x24,0xD1,0xE1,0x10,0x10,0x9D,0xE5, + 0xB0,0x02,0xD0,0xE1,0x02,0x10,0x81,0xE0,0x00,0x20,0x97,0xE5,0x7E,0xC4,0xD9,0xE5, + 0xBA,0x34,0xD2,0xE1,0xFE,0x60,0xD9,0xE1,0x03,0x00,0x80,0xE0,0x01,0x00,0x50,0xE1, + 0x01,0x30,0xA0,0xE1,0x01,0x00,0x1C,0xE3,0x00,0x10,0xA0,0x31,0x03,0x00,0x00,0x0A, + 0x02,0x00,0x1C,0xE3,0x02,0xC0,0xA0,0x03,0x01,0xC0,0xA0,0x13,0x08,0xC0,0x8D,0xE5, + 0xD4,0x4E,0x9F,0xE5,0xD4,0xAE,0x9F,0xE5,0x64,0x41,0x8D,0xE5,0xBC,0x86,0xC4,0xE1, + 0xBA,0x40,0xD9,0xE1,0x4E,0xC0,0xD2,0xE5,0x01,0x18,0xA0,0xE1,0x00,0x08,0xA0,0xE1, + 0x94,0x0C,0x0C,0xE0,0x9A,0x4C,0x8C,0xE0,0x64,0x41,0x9D,0xE5,0x8C,0xC5,0xA0,0xE1, + 0x4C,0xC8,0xA0,0xE1,0xBE,0xC6,0xC4,0xE1,0xBC,0x44,0xD2,0xE1,0x41,0x18,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x04,0x00,0x5C,0xE1,0xBC,0x24,0xD2,0xB1,0x64,0xC1,0x9D,0xB5, + 0x00,0x50,0xA0,0xE3,0xBE,0x26,0xCC,0xB1,0x57,0x2F,0x8D,0xE2,0x03,0x00,0x82,0xE8, + 0x03,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x58,0x01,0x8D,0xE5,0x04,0x00,0x00,0xEA, + 0x00,0x10,0x97,0xE5,0xBE,0x21,0xD1,0xE1,0xBC,0x11,0xD0,0xE1,0x02,0x10,0x81,0xE0, + 0xC9,0xFF,0xFF,0xEA,0x85,0x01,0x65,0xE0,0x54,0x01,0x8D,0xE5,0x34,0x0E,0x9F,0xE5, + 0x00,0x40,0xA0,0xE3,0x85,0x00,0x80,0xE0,0x50,0x01,0x8D,0xE5,0x54,0x01,0x9D,0xE5, + 0x3C,0x2E,0x9F,0xE5,0x80,0x00,0x84,0xE0,0x00,0x38,0xA0,0xE1,0x64,0x11,0x9D,0xE5, + 0x43,0x38,0xA0,0xE1,0x83,0x00,0x82,0xE0,0xF0,0x00,0xD0,0xE1,0xFE,0x16,0xD1,0xE1, + 0x01,0x00,0x50,0xE1,0x04,0x00,0x00,0xDA,0x64,0x11,0x9D,0xE5,0x64,0xC1,0x9D,0xE5, + 0xBC,0x16,0xD1,0xE1,0x01,0x10,0x81,0xE2,0xBC,0x16,0xCC,0xE1,0x00,0x00,0x50,0xE3, + 0x03,0x00,0x00,0xDA,0xFC,0x1D,0x9F,0xE5,0xB0,0x00,0xD1,0xE1,0x01,0x00,0x80,0xE2, + 0xB0,0x00,0xC1,0xE1,0xF0,0xBD,0x9F,0xE5,0x83,0x00,0x8B,0xE0,0xF0,0xA0,0xD0,0xE1, + 0x60,0x01,0x9D,0xE5,0x00,0x00,0x5A,0xE1,0x20,0x03,0x00,0xBA,0x00,0x00,0x55,0xE3, + 0x00,0x00,0xA0,0xE3,0x15,0x00,0x00,0xDA,0x34,0x20,0x8D,0xE2,0x0E,0x00,0x43,0xE2, + 0xC0,0x11,0xD2,0xE7,0x07,0x00,0x00,0xE2,0x01,0xC0,0xA0,0xE3,0x1C,0x00,0x01,0xE0, + 0x00,0x00,0x54,0xE3,0x05,0x00,0x00,0xDA,0x0F,0x10,0x43,0xE2,0xC1,0x71,0xD2,0xE7, + 0x07,0x10,0x01,0xE2,0x1C,0x11,0x07,0xE0,0x01,0x00,0x80,0xE0,0xFF,0x00,0x00,0xE2, + 0x0D,0x00,0x54,0xE3,0x07,0x00,0x00,0xAA,0x0D,0x10,0x43,0xE2,0xC1,0x21,0xD2,0xE7, + 0x07,0x10,0x01,0xE2,0x1C,0x11,0x02,0xE0,0x01,0x00,0x80,0xE0,0xFF,0x00,0x00,0xE2, + 0x00,0x00,0x54,0xE3,0x07,0x00,0x00,0xDA,0x34,0x20,0x8D,0xE2,0x01,0x10,0x43,0xE2, + 0xC1,0x21,0xD2,0xE7,0x07,0x10,0x01,0xE2,0x01,0xC0,0xA0,0xE3,0x1C,0x11,0x02,0xE0, + 0x01,0x00,0x80,0xE0,0xFF,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3,0xFB,0x02,0x00,0x1A, + 0x00,0xC0,0xA0,0xE3,0x0C,0x70,0xA0,0xE1,0x0E,0x90,0xA0,0xE3,0x00,0x00,0xA0,0xE3, + 0x07,0x80,0x85,0xE0,0x00,0x10,0x84,0xE0,0x01,0x20,0x58,0xE2,0x01,0x10,0x41,0xE2, + 0x0B,0x00,0x00,0x4A,0x15,0x00,0x52,0xE3,0x09,0x00,0x00,0xCA,0x00,0x00,0x51,0xE3, + 0x07,0x00,0x00,0xBA,0x0E,0x00,0x51,0xE3,0x0E,0x90,0xA0,0xE3,0x04,0x00,0x00,0xCA, + 0x92,0x19,0x21,0xE0,0x81,0x10,0x8B,0xE0,0xF0,0x10,0xD1,0xE1,0x0C,0x00,0x51,0xE1, + 0x01,0xC0,0xA0,0xC1,0x01,0x00,0x80,0xE2,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x03,0x00,0x50,0xE3,0xEA,0xFF,0xFF,0xBA,0x01,0x00,0x87,0xE2,0x00,0x78,0xA0,0xE1, + 0x47,0x78,0xA0,0xE1,0x03,0x00,0x57,0xE3,0xE3,0xFF,0xFF,0xBA,0x0C,0x08,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x00,0x00,0x5A,0xE1,0xD8,0x02,0x00,0x1A,0x94,0x1C,0x9F,0xE5, + 0xBC,0x10,0xD1,0xE1,0x00,0x00,0x51,0xE1,0x05,0x00,0x00,0xCA,0x84,0x1C,0x9F,0xE5, + 0xBC,0x00,0xC1,0xE1,0x04,0x00,0xD1,0xE5,0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2, + 0x18,0x00,0x8D,0xE5,0x34,0x00,0x8D,0xE2,0xC3,0x11,0xD0,0xE7,0x07,0x20,0x03,0xE2, + 0x01,0xC0,0xA0,0xE3,0x1C,0x12,0x81,0xE1,0xC3,0x11,0xC0,0xE7,0x08,0x00,0x9D,0xE5, + 0x00,0x70,0xA0,0xE3,0x01,0x00,0x10,0xE3,0x05,0x00,0x00,0x0A,0x0D,0x00,0x54,0xE3, + 0x0D,0x70,0xA0,0x03,0x07,0x00,0x00,0x0A,0x0C,0x00,0x54,0xE3,0x03,0x77,0x87,0x03, + 0x04,0x00,0x00,0xEA,0x14,0x00,0x55,0xE3,0x14,0x70,0xA0,0x03,0x01,0x00,0x00,0x0A, + 0x13,0x00,0x55,0xE3,0x13,0x78,0x87,0x03,0x07,0x08,0xB0,0xE1,0x03,0x00,0x00,0x0A, + 0x5C,0x01,0x9D,0xE5,0x00,0x00,0x5A,0xE1,0xB4,0x02,0x00,0xBA,0x02,0x00,0x00,0xEA, + 0x58,0x01,0x9D,0xE5,0x00,0x00,0x5A,0xE1,0xB0,0x02,0x00,0xBA,0xF8,0x0B,0x9F,0xE5, + 0x00,0x30,0xA0,0xE3,0x00,0x90,0x90,0xE5,0x03,0x10,0x85,0xE0,0x02,0xB0,0x41,0xE2, + 0x03,0x11,0x83,0xE0,0x0B,0xCC,0xA0,0xE1,0xEC,0x20,0x8D,0xE2,0x4C,0xCC,0xA0,0xE1, + 0x88,0x80,0x8D,0xE2,0x00,0x00,0xA0,0xE3,0x01,0x21,0x82,0xE0,0x8C,0xC1,0x6C,0xE0, + 0x01,0x81,0x88,0xE0,0x00,0x10,0x84,0xE0,0x0B,0xAC,0xA0,0xE1,0x02,0x10,0x41,0xE2, + 0x4A,0xAC,0xA0,0xE1,0x01,0x1C,0xA0,0xE1,0x15,0x00,0x5A,0xE3,0x41,0x1C,0xA0,0xE1, + 0x03,0x00,0x00,0x2A,0x00,0x00,0x51,0xE3,0x01,0x00,0x00,0xBA,0x0E,0x00,0x51,0xE3, + 0x02,0x00,0x00,0xBA,0x00,0x10,0xA0,0xE3,0x00,0x11,0x82,0xE7,0x23,0x00,0x00,0xEA, + 0xB0,0xA0,0xD9,0xE1,0x01,0x09,0x1A,0xE3,0x8C,0xA0,0x81,0xE0,0x05,0x00,0x00,0x0A, + 0x94,0xEB,0x9F,0xE5,0x8A,0xA0,0x8E,0xE0,0xF0,0xA0,0xDA,0xE1,0x06,0xA0,0x4A,0xE0, + 0x00,0xA1,0x82,0xE7,0x04,0x00,0x00,0xEA,0x74,0xEB,0x9F,0xE5,0x8A,0xA0,0x8E,0xE0, + 0xF0,0xA0,0xDA,0xE1,0x06,0xA0,0x4A,0xE0,0x00,0xA1,0x82,0xE7,0x00,0x00,0x5A,0xE3, + 0x00,0xA0,0xA0,0xB3,0x00,0xA1,0x82,0xB7,0xB0,0xA0,0xD9,0xE1,0x8C,0x10,0x81,0xE0, + 0x02,0x09,0x1A,0xE3,0x05,0x00,0x00,0x0A,0x4C,0xAB,0x9F,0xE5,0x81,0x10,0x8A,0xE0, + 0xF0,0x10,0xD1,0xE1,0x06,0x10,0x41,0xE0,0x00,0x11,0x88,0xE7,0x04,0x00,0x00,0xEA, + 0x2C,0xAB,0x9F,0xE5,0x81,0x10,0x8A,0xE0,0xF0,0x10,0xD1,0xE1,0x06,0x10,0x41,0xE0, + 0x00,0x11,0x88,0xE7,0x00,0x00,0x51,0xE3,0x00,0x10,0xA0,0xB3,0x00,0x11,0x88,0xB7, + 0x01,0x00,0x80,0xE2,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x05,0x00,0x50,0xE3, + 0xC7,0xFF,0xFF,0xBA,0x01,0x00,0x83,0xE2,0x00,0x38,0xA0,0xE1,0x43,0x38,0xA0,0xE1, + 0x05,0x00,0x53,0xE3,0xB7,0xFF,0xFF,0xBA,0xF0,0x0A,0x9F,0xE5,0x00,0x00,0xD0,0xE5, + 0x00,0x00,0x50,0xE3,0x4E,0x00,0x00,0x1A,0x12,0x00,0x55,0xE3,0x13,0x00,0x55,0x13, + 0x11,0x00,0x00,0x1A,0x00,0x00,0x54,0xE3,0x0F,0x00,0x00,0x1A,0xD0,0x0A,0x9F,0xE5, + 0x1C,0x11,0x9D,0xE5,0x00,0x00,0x90,0xE5,0xC0,0x2F,0xA0,0xE1,0x22,0x0F,0x80,0xE0, + 0x40,0x01,0x41,0xE0,0x32,0x00,0x50,0xE3,0x07,0x00,0x00,0xAA,0x64,0x00,0x51,0xE3, + 0x01,0x00,0xA0,0xE1,0x04,0x00,0x00,0xDA,0xFA,0x00,0x50,0xE3,0xA4,0x1A,0x9F,0xB5, + 0x01,0x00,0xA0,0xB3,0x00,0x00,0x81,0xB5,0x02,0x00,0x00,0xBA,0x94,0x0A,0x9F,0xE5, + 0x00,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x12,0x00,0x55,0xE3,0x13,0x00,0x55,0x13, + 0x14,0x00,0x55,0x13,0x11,0x00,0x00,0x1A,0x0C,0x00,0x54,0xE3,0x0F,0x00,0x00,0x1A, + 0x74,0x0A,0x9F,0xE5,0x1C,0x11,0x9D,0xE5,0x00,0x00,0x90,0xE5,0xC0,0x2F,0xA0,0xE1, + 0x22,0x0F,0x80,0xE0,0x40,0x01,0x41,0xE0,0x32,0x00,0x50,0xE3,0x07,0x00,0x00,0xAA, + 0x64,0x00,0x51,0xE3,0x01,0x00,0xA0,0xE1,0x04,0x00,0x00,0xDA,0xFA,0x00,0x50,0xE3, + 0x48,0x1A,0x9F,0xB5,0x01,0x00,0xA0,0xB3,0x00,0x00,0x81,0xB5,0x02,0x00,0x00,0xBA, + 0x38,0x1A,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0x00,0x00,0x81,0xE5,0x11,0x00,0x55,0xE3, + 0x1B,0x00,0x00,0xBA,0x00,0x00,0x54,0xE3,0x0C,0x00,0x54,0x13,0x06,0x00,0x00,0x1A, + 0x1C,0x0A,0x9F,0xE5,0x00,0x00,0x90,0xE5,0x4B,0x0F,0x50,0xE3,0x02,0x00,0x00,0x3A, + 0x1C,0x01,0x9D,0xE5,0x7D,0x0F,0x50,0xE3,0x24,0x02,0x00,0xBA,0x13,0x00,0x55,0xE3, + 0x07,0x00,0x00,0x1A,0x0D,0x00,0x54,0xE3,0x0D,0x00,0x00,0x1A,0x1C,0x01,0x9D,0xE5, + 0x7D,0x0F,0x50,0xE3,0x30,0x01,0x9D,0xC5,0x4B,0x0F,0x50,0xC3,0x1B,0x02,0x00,0xCA, + 0x07,0x00,0x00,0xEA,0x14,0x00,0x55,0xE3,0x0D,0x00,0x54,0x03,0x04,0x00,0x00,0x1A, + 0x1C,0x01,0x9D,0xE5,0x7D,0x0F,0x50,0xE3,0x08,0x01,0x9D,0xC5,0x4B,0x0F,0x50,0xC3, + 0x12,0x02,0x00,0xCA,0x12,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x64,0x00,0x8D,0xE2, + 0x0A,0xED,0xFF,0xEB,0xA0,0x00,0x9D,0xE5,0x6C,0x19,0x9F,0xE5,0x64,0x00,0x8D,0xE5, + 0xA4,0x00,0x9D,0xE5,0x74,0x39,0x9F,0xE5,0x68,0x00,0x8D,0xE5,0xA8,0x00,0x9D,0xE5, + 0x00,0x00,0x54,0xE3,0x6C,0x00,0x8D,0xE5,0xB4,0x00,0x9D,0xE5,0x70,0x00,0x8D,0xE5, + 0xBC,0x00,0x9D,0xE5,0x78,0x00,0x8D,0xE5,0xC8,0x00,0x9D,0xE5,0x7C,0x00,0x8D,0xE5, + 0xCC,0x00,0x9D,0xE5,0x80,0x00,0x8D,0xE5,0xD0,0x00,0x9D,0xE5,0x84,0x00,0x8D,0xE5, + 0x00,0x10,0x91,0xE5,0xB8,0x00,0x9D,0xE5,0xBC,0x11,0xD1,0xE1,0x91,0x00,0x00,0xE0, + 0x93,0x10,0xC0,0xE0,0xC0,0x12,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x74,0x00,0x8D,0xE5, + 0x0F,0x00,0x00,0x1A,0x42,0x1F,0x8D,0xE2,0x03,0x00,0x91,0xE8,0x1C,0x21,0x9D,0xE5, + 0x02,0x10,0x81,0xE0,0x80,0x00,0x81,0xE0,0x20,0x11,0x9D,0xE5,0x02,0x00,0x80,0xE0, + 0x01,0x00,0x80,0xE0,0x30,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x01,0x00,0x80,0xE0, + 0x34,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x00,0x08,0xA0,0xE1,0x20,0x08,0xA0,0xE1, + 0x26,0x00,0x00,0xEA,0x0C,0x00,0x54,0xE3,0x11,0x00,0x00,0x1A,0x08,0x01,0x9D,0xE5, + 0x04,0x11,0x9D,0xE5,0x18,0x21,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x08,0x11,0x9D,0xE5, + 0x02,0x10,0x81,0xE0,0x01,0x00,0x80,0xE0,0x1C,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0, + 0x01,0x00,0x80,0xE0,0x2C,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x30,0x11,0x9D,0xE5, + 0x01,0x00,0x80,0xE0,0x01,0x00,0x80,0xE0,0x00,0x08,0xA0,0xE1,0x20,0x08,0xA0,0xE1, + 0x12,0x00,0x00,0xEA,0x41,0x1F,0x8D,0xE2,0x03,0x00,0x91,0xE8,0x18,0x21,0x9D,0xE5, + 0x01,0x00,0x80,0xE0,0x0C,0x11,0x9D,0xE5,0x02,0x10,0x81,0xE0,0x01,0x00,0x80,0xE0, + 0x1C,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x20,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0, + 0x2C,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x30,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0, + 0x34,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x00,0x08,0xA0,0xE1,0x20,0x08,0xA0,0xE1, + 0x8F,0x10,0xA0,0xE3,0xE3,0x1C,0x81,0xE2,0x91,0x00,0x00,0xE0,0x14,0xA8,0x9F,0xE5, + 0xA0,0x09,0xA0,0xE1,0xB6,0x10,0xDA,0xE1,0x40,0x00,0x11,0xE3,0x45,0x00,0x00,0x0A, + 0xEE,0x1F,0xA0,0xE3,0x02,0x1B,0x81,0xE2,0x01,0x00,0x50,0xE1,0x34,0x28,0x9F,0x25, + 0x06,0x10,0xA0,0x23,0x00,0x10,0xC2,0x25,0x20,0x00,0x00,0x2A,0x71,0x1F,0xA0,0xE3, + 0x02,0x1B,0x81,0xE2,0x01,0x00,0x50,0xE1,0x18,0x28,0x9F,0x25,0x05,0x10,0xA0,0x23, + 0x00,0x10,0xC2,0x25,0x1E,0x00,0x00,0x2A,0x7D,0x0E,0x50,0xE3,0x04,0x18,0x9F,0x25, + 0x04,0x00,0xA0,0x23,0x00,0x00,0xC1,0x25,0x75,0x00,0x00,0x2A,0x77,0x1F,0xA0,0xE3, + 0x01,0x1B,0x81,0xE2,0x01,0x00,0x50,0xE1,0xE8,0x27,0x9F,0x25,0x03,0x10,0xA0,0x23, + 0x00,0x10,0xC2,0x25,0x1E,0x00,0x00,0x2A,0xFA,0x0F,0x50,0xE3,0xD4,0x27,0x9F,0x25, + 0x02,0x10,0xA0,0x23,0x00,0x10,0xC2,0x25,0x1E,0x00,0x00,0x2A,0x7D,0x0F,0x50,0xE3, + 0xC0,0x27,0x9F,0x25,0x01,0x10,0xA0,0x23,0x00,0x10,0xC2,0x25,0x1E,0x00,0x00,0x2A, + 0xB0,0x17,0x9F,0xE5,0x00,0x10,0xD1,0xE5,0x06,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A, + 0xFA,0x0F,0x50,0xE3,0x89,0x01,0x00,0x3A,0x5D,0x00,0x00,0xEA,0x05,0x00,0x51,0xE3, + 0x04,0x00,0x00,0x1A,0xEE,0x10,0xA0,0xE3,0x02,0x1C,0x81,0xE2,0x01,0x00,0x50,0xE1, + 0x82,0x01,0x00,0x3A,0x56,0x00,0x00,0xEA,0x04,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A, + 0x7D,0x0F,0x50,0xE3,0x7D,0x01,0x00,0x3A,0x51,0x00,0x00,0xEA,0x03,0x00,0x51,0xE3, + 0x02,0x00,0x00,0x1A,0xFA,0x00,0x50,0xE3,0x78,0x01,0x00,0x3A,0x4C,0x00,0x00,0xEA, + 0x02,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0x96,0x00,0x50,0xE3,0x73,0x01,0x00,0x3A, + 0x47,0x00,0x00,0xEA,0x01,0x00,0x51,0xE3,0x45,0x00,0x00,0x1A,0x4B,0x00,0x50,0xE3, + 0x6E,0x01,0x00,0x3A,0x42,0x00,0x00,0xEA,0x71,0x1F,0xA0,0xE3,0x02,0x1B,0x81,0xE2, + 0x01,0x00,0x50,0xE1,0x1C,0x27,0x9F,0x25,0x06,0x10,0xA0,0x23,0x00,0x10,0xC2,0x25, + 0x20,0x00,0x00,0x2A,0xD6,0x10,0xA0,0xE3,0x06,0x1C,0x81,0xE2,0x01,0x00,0x50,0xE1, + 0x00,0x17,0x9F,0x25,0x05,0x20,0xA0,0x23,0x00,0x20,0xC1,0x25,0x1E,0x00,0x00,0x2A, + 0x6B,0x10,0xA0,0xE3,0x03,0x1C,0x81,0xE2,0x01,0x00,0x50,0xE1,0xE4,0x26,0x9F,0x25, + 0x04,0x10,0xA0,0x23,0x00,0x10,0xC2,0x25,0x1C,0x00,0x00,0x2A,0x7D,0x0F,0x50,0xE3, + 0xD0,0x26,0x9F,0x25,0x03,0x10,0xA0,0x23,0x00,0x10,0xC2,0x25,0x1C,0x00,0x00,0x2A, + 0x4B,0x0F,0x50,0xE3,0xBC,0x26,0x9F,0x25,0x02,0x10,0xA0,0x23,0x00,0x10,0xC2,0x25, + 0x1C,0x00,0x00,0x2A,0x96,0x00,0x50,0xE3,0xA8,0x26,0x9F,0x25,0x01,0x10,0xA0,0x23, + 0x00,0x10,0xC2,0x25,0x1C,0x00,0x00,0x2A,0x98,0x16,0x9F,0xE5,0x00,0x10,0xD1,0xE5, + 0x06,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0x7D,0x0F,0x50,0xE3,0x43,0x01,0x00,0x3A, + 0x17,0x00,0x00,0xEA,0x05,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0xFA,0x00,0x50,0xE3, + 0x3E,0x01,0x00,0x3A,0x12,0x00,0x00,0xEA,0x04,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A, + 0xAF,0x00,0x50,0xE3,0x39,0x01,0x00,0x3A,0x0D,0x00,0x00,0xEA,0x03,0x00,0x51,0xE3, + 0x02,0x00,0x00,0x1A,0x55,0x00,0x50,0xE3,0x34,0x01,0x00,0x3A,0x08,0x00,0x00,0xEA, + 0x02,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0x32,0x00,0x50,0xE3,0x2F,0x01,0x00,0x3A, + 0x03,0x00,0x00,0xEA,0x01,0x00,0x51,0xE3,0x01,0x00,0x00,0x1A,0x14,0x00,0x50,0xE3, + 0x2A,0x01,0x00,0x3A,0x14,0x00,0x55,0xE3,0x10,0x00,0x00,0x1A,0x01,0xCA,0xA0,0xE3, + 0x04,0x00,0xA0,0xE3,0x01,0xC0,0x4C,0xE2,0xEC,0x80,0x8D,0xE2,0x00,0x11,0x88,0xE0, + 0x28,0x20,0x91,0xE5,0x01,0x00,0x40,0xE2,0x02,0x24,0x62,0xE0,0x93,0x92,0xC2,0xE0, + 0xC2,0x92,0xA0,0xE1,0xC2,0x2F,0x49,0xE0,0x0C,0x00,0x52,0xE1,0x28,0x20,0x81,0xE5, + 0x00,0x08,0xA0,0xE1,0x28,0xC0,0x81,0xA5,0x40,0x08,0xB0,0xE1,0xF2,0xFF,0xFF,0x5A, + 0x00,0x00,0x57,0xE3,0x1F,0x00,0x00,0x0A,0x08,0x00,0x9D,0xE5,0x01,0x00,0x10,0xE3, + 0x04,0x00,0xA0,0xE3,0x0D,0x00,0x00,0x0A,0xEC,0x30,0x8D,0xE2,0x00,0x20,0xA0,0xE3, + 0x07,0x18,0xB0,0xE1,0x00,0x11,0x80,0xE0,0x01,0x21,0x83,0x17,0x01,0x11,0x83,0xE0, + 0x0C,0x20,0x81,0x05,0x01,0x00,0x40,0xE2,0x10,0x20,0x81,0x05,0x00,0x08,0xA0,0xE1, + 0x04,0x20,0x81,0x15,0x40,0x08,0xB0,0xE1,0xF4,0xFF,0xFF,0x5A,0x0D,0x00,0x00,0xEA, + 0xEC,0x30,0x8D,0xE2,0x00,0x20,0xA0,0xE3,0x07,0x18,0xB0,0xE1,0x00,0x11,0x83,0x10, + 0x00,0x21,0x83,0x17,0x14,0x20,0x81,0x15,0x02,0x00,0x00,0x1A,0x00,0x11,0x83,0xE0, + 0x3C,0x20,0x81,0xE5,0x50,0x20,0x81,0xE5,0x01,0x00,0x40,0xE2,0x00,0x08,0xA0,0xE1, + 0x40,0x08,0xB0,0xE1,0xF3,0xFF,0xFF,0x5A,0x24,0x95,0x9F,0xE5,0x00,0x30,0xA0,0xE3, + 0x03,0xC0,0xA0,0xE1,0x0E,0x80,0xA0,0xE3,0x00,0x00,0xA0,0xE3,0x0C,0x70,0x85,0xE0, + 0x00,0x10,0x84,0xE0,0x01,0x20,0x57,0xE2,0x01,0x10,0x41,0xE2,0x0A,0x00,0x00,0x4A, + 0x15,0x00,0x52,0xE3,0x08,0x00,0x00,0xCA,0x00,0x00,0x51,0xE3,0x06,0x00,0x00,0xBA, + 0x0E,0x00,0x51,0xE3,0x04,0x00,0x00,0xCA,0x92,0x18,0x21,0xE0,0x81,0x10,0x89,0xE0, + 0xF0,0x10,0xD1,0xE1,0x03,0x00,0x51,0xE1,0x01,0x30,0xA0,0xC1,0x01,0x00,0x80,0xE2, + 0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x03,0x00,0x50,0xE3,0xEB,0xFF,0xFF,0xBA, + 0x01,0x00,0x8C,0xE2,0x00,0xC8,0xA0,0xE1,0x4C,0xC8,0xA0,0xE1,0x03,0x00,0x5C,0xE3, + 0xE4,0xFF,0xFF,0xBA,0xB8,0x10,0xDA,0xE1,0x03,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x00,0x00,0x51,0xE1,0xB8,0x00,0xCA,0xC1,0xBA,0x10,0xDA,0xE1,0x70,0x20,0x8D,0xE2, + 0x0A,0x70,0xA0,0xE1,0x00,0x00,0x51,0xE1,0xBA,0x00,0xCA,0xB1,0x04,0x00,0xDA,0xE5, + 0xEC,0x30,0x8D,0xE2,0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2,0x04,0x00,0xCA,0xE5, + 0x00,0x01,0x8A,0xE0,0x01,0x0C,0x80,0xE2,0xB4,0x41,0xC0,0xE1,0x04,0x00,0xDA,0xE5, + 0x00,0x01,0x8A,0xE0,0x01,0x0C,0x80,0xE2,0xB6,0x51,0xC0,0xE1,0x06,0x00,0x92,0xE8, + 0x00,0x00,0xA0,0xE3,0x02,0x00,0x51,0xE1,0x64,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1, + 0x7C,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x78,0x10,0x9D,0xE5,0xC0,0x00,0xA0,0xC3, + 0x02,0x00,0x51,0xE1,0x6C,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x84,0x10,0x9D,0xD5, + 0x02,0x00,0x51,0xD1,0x68,0x10,0x9D,0xE5,0x30,0x00,0x80,0xC3,0x02,0x00,0x51,0xE1, + 0x64,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x6C,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1, + 0x80,0x10,0x9D,0xE5,0x0C,0x00,0x80,0xC3,0x02,0x00,0x51,0xE1,0x7C,0x10,0x9D,0xD5, + 0x02,0x00,0x51,0xD1,0x84,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x03,0x00,0x80,0xC3, + 0x04,0x10,0xA0,0xE3,0x00,0x20,0xA0,0xE3,0xC0,0x00,0x10,0xE3,0x01,0xC1,0x81,0x00, + 0x0C,0x21,0x83,0x07,0x30,0x00,0x10,0xE3,0x01,0xC1,0x81,0x00,0x0C,0xC1,0x83,0x00, + 0x10,0x20,0x8C,0x05,0x0C,0x00,0x10,0xE3,0x01,0x21,0x83,0x07,0x03,0x00,0x10,0xE3, + 0x01,0xC1,0x83,0x00,0x01,0x10,0x41,0xE2,0x01,0x18,0xA0,0xE1,0x50,0x20,0x8C,0x05, + 0x41,0x18,0xB0,0xE1,0xEF,0xFF,0xFF,0x5A,0xFC,0x30,0x9D,0xE5,0x00,0x30,0x8D,0xE5, + 0xEC,0x30,0x8D,0xE2,0x0F,0x00,0x93,0xE8,0xE7,0x06,0x00,0xEB,0x10,0x31,0x9D,0xE5, + 0x00,0xA0,0xA0,0xE1,0x00,0x30,0x8D,0xE5,0x01,0x3C,0x8D,0xE2,0x0F,0x00,0x93,0xE8, + 0xE1,0x06,0x00,0xEB,0x24,0x31,0x9D,0xE5,0x00,0xB0,0xA0,0xE1,0x00,0x30,0x8D,0xE5, + 0x45,0x3F,0x8D,0xE2,0x0F,0x00,0x93,0xE8,0xDB,0x06,0x00,0xEB,0x38,0x31,0x9D,0xE5, + 0x00,0x90,0xA0,0xE1,0x00,0x30,0x8D,0xE5,0x4A,0x3F,0x8D,0xE2,0x0F,0x00,0x93,0xE8, + 0xD5,0x06,0x00,0xEB,0x4C,0x31,0x9D,0xE5,0x30,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5, + 0x4F,0x3F,0x8D,0xE2,0x0F,0x00,0x93,0xE8,0xCF,0x06,0x00,0xEB,0x2C,0x00,0x8D,0xE5, + 0x00,0x00,0x8D,0xE5,0x30,0x30,0x9D,0xE5,0x09,0x20,0xA0,0xE1,0x0B,0x10,0xA0,0xE1, + 0x0A,0x00,0xA0,0xE1,0xC8,0x06,0x00,0xEB,0x00,0x80,0xB0,0xE1,0x06,0x00,0x00,0x1A, + 0x64,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xEC,0x00,0x8D,0xE2,0x63,0xEB,0xFF,0xEB, + 0x0A,0x90,0xA0,0xE3,0x09,0x80,0xA0,0xE1,0x1C,0x91,0x8D,0xE5,0x3C,0x31,0x9D,0xE5, + 0xEC,0x00,0x9D,0xE5,0x00,0x30,0x8D,0xE5,0x00,0x11,0x9D,0xE5,0x14,0x21,0x9D,0xE5, + 0x28,0x31,0x9D,0xE5,0xB8,0x06,0x00,0xEB,0xA8,0x12,0x9F,0xE5,0x84,0x70,0x81,0xE0, + 0xBE,0x11,0xD7,0xE1,0x91,0x00,0x00,0xE0,0x28,0x00,0x8D,0xE5,0x40,0x31,0x9D,0xE5, + 0x00,0x30,0x8D,0xE5,0xF0,0x00,0x9D,0xE5,0x04,0x11,0x9D,0xE5,0x18,0x21,0x9D,0xE5, + 0x2C,0x31,0x9D,0xE5,0xAC,0x06,0x00,0xEB,0xB0,0x12,0xD7,0xE1,0x44,0x31,0x9D,0xE5, + 0x1C,0x21,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x24,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5, + 0xF4,0x00,0x9D,0xE5,0x08,0x11,0x9D,0xE5,0x30,0x31,0x9D,0xE5,0xA2,0x06,0x00,0xEB, + 0xB2,0x12,0xD7,0xE1,0x48,0x31,0x9D,0xE5,0x20,0x21,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x20,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5,0xF8,0x00,0x9D,0xE5,0x0C,0x11,0x9D,0xE5, + 0x34,0x31,0x9D,0xE5,0x98,0x06,0x00,0xEB,0xB4,0x12,0xD7,0xE1,0x4C,0x31,0x9D,0xE5, + 0x24,0x21,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x1C,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5, + 0xFC,0x00,0x9D,0xE5,0x10,0x11,0x9D,0xE5,0x38,0x31,0x9D,0xE5,0x8E,0x06,0x00,0xEB, + 0xB6,0x12,0xD7,0xE1,0x20,0x20,0x9D,0xE5,0x90,0x01,0x03,0xE0,0x00,0x30,0x8D,0xE5, + 0x28,0x00,0x9D,0xE5,0x24,0x10,0x9D,0xE5,0x1C,0x30,0x9D,0xE5,0x86,0x06,0x00,0xEB, + 0x08,0x10,0xA0,0xE1,0x71,0xEA,0xFF,0xEB,0xD8,0x11,0x9F,0xE5,0xD4,0x71,0x9F,0xE5, + 0xB0,0x12,0xD1,0xE1,0x00,0x10,0x61,0xE2,0x81,0x00,0x90,0xE0,0x04,0x10,0xD7,0xE5, + 0x00,0x00,0xA0,0x43,0x81,0x10,0x87,0xE0,0xB4,0x0F,0xC1,0xE1,0x50,0x31,0x9D,0xE5, + 0x50,0x21,0x9D,0xE5,0xB8,0x35,0xD3,0xE1,0x30,0xC0,0x9D,0xE5,0xB6,0x25,0xD2,0xE1, + 0x93,0x0C,0x0C,0xE0,0x99,0x02,0x02,0xE0,0x50,0x01,0x9D,0xE5,0x50,0x11,0x9D,0xE5, + 0x50,0x31,0x9D,0xE5,0xB2,0x05,0xD0,0xE1,0xB4,0x15,0xD1,0xE1,0xBA,0x35,0xD3,0xE1, + 0x2C,0x90,0x9D,0xE5,0x9A,0x00,0x00,0xE0,0x99,0x03,0x03,0xE0,0x9B,0x01,0x01,0xE0, + 0x00,0x30,0x8D,0xE5,0x0C,0x30,0xA0,0xE1,0x67,0x06,0x00,0xEB,0x08,0x10,0xA0,0xE1, + 0x52,0xEA,0xFF,0xEB,0xB4,0x15,0xD7,0xE1,0x00,0x10,0x61,0xE2,0x81,0x00,0x90,0xE0, + 0x04,0x10,0xD7,0xE5,0x00,0x00,0xA0,0x43,0x81,0x10,0x87,0xE0,0x01,0x1C,0x81,0xE2, + 0xB6,0x00,0xC1,0xE1,0x04,0x00,0xD7,0xE5,0x08,0x00,0x50,0xE3,0x0C,0x00,0x00,0x2A, + 0x01,0x00,0x84,0xE2,0x00,0x48,0xA0,0xE1,0x44,0x48,0xA0,0xE1,0x0E,0x00,0x54,0xE3, + 0xBD,0xFC,0xFF,0xBA,0x14,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A, + 0x01,0x00,0x85,0xE2,0x00,0x58,0xA0,0xE1,0x45,0x58,0xA0,0xE1,0x15,0x00,0x55,0xE3, + 0xAF,0xFC,0xFF,0xBA,0x00,0x01,0x9F,0xE5,0x00,0x40,0x90,0xE5,0xB0,0x00,0xD4,0xE1, + 0x80,0x00,0x10,0xE3,0x51,0x00,0x00,0x0A,0xE8,0x50,0x9F,0xE5,0x04,0x00,0xD5,0xE5, + 0x00,0x00,0x50,0xE3,0x08,0x00,0x00,0x1A,0x68,0x01,0x9D,0xE5,0xB4,0x04,0xD0,0xE1, + 0x00,0x00,0x50,0xE3,0x41,0x01,0xD5,0x15,0x3C,0x10,0xD4,0x15,0x01,0x00,0x50,0x11, + 0x41,0x00,0x00,0x2A,0x01,0x00,0x80,0xE2,0x2C,0x00,0x00,0xEA,0x42,0x01,0xD5,0xE5, + 0x34,0x10,0xD4,0xE5,0x01,0x00,0x50,0xE1,0x27,0x00,0x00,0x8A,0x01,0x00,0x80,0xE2, + 0xFF,0x00,0x00,0xE2,0x42,0x01,0xC5,0xE5,0x35,0x10,0xD4,0xE5,0x05,0x20,0xA0,0xE1, + 0x00,0x00,0x51,0xE1,0x03,0x00,0x00,0x2A,0xBC,0x30,0xD2,0xE1,0x0C,0x20,0x9D,0xE5, + 0x03,0x20,0x82,0xE0,0x0C,0x20,0x8D,0xE5,0x34,0x20,0xD4,0xE5,0x02,0x00,0x50,0xE1, + 0x19,0x00,0x00,0x1A,0x01,0x00,0x50,0xE1,0x17,0x00,0x00,0x0A,0x01,0x10,0x40,0xE0, + 0x0C,0x00,0x9D,0xE5,0xA9,0xEA,0xFF,0xEB,0x68,0x21,0x9D,0xE5,0x00,0x10,0xA0,0xE3, + 0xB4,0x14,0xC2,0xE1,0xB8,0x13,0xD4,0xE1,0x00,0x00,0x51,0xE1,0x0E,0x00,0x00,0x2A, + 0x10,0x10,0x9D,0xE5,0x01,0x00,0x40,0xE0,0x36,0x10,0xD4,0xE5,0x90,0x01,0x01,0xE0, + 0x48,0x00,0x9F,0xE5,0x90,0x21,0x81,0xE0,0xA1,0x02,0xA0,0xE1,0x68,0x11,0x9D,0xE5, + 0xB4,0x04,0xC1,0xE1,0x68,0x01,0x9D,0xE5,0xB4,0x14,0xD0,0xE1,0xBA,0x03,0xD4,0xE1, + 0x00,0x00,0x51,0xE1,0x68,0x11,0x9D,0x85,0xB4,0x04,0xC1,0x81,0x00,0x00,0xA0,0xE3, + 0x41,0x01,0xC5,0xE5,0x15,0x00,0x00,0xEA,0x40,0x00,0x00,0x20,0x78,0x06,0x00,0x20, + 0x75,0x05,0x00,0x20,0x00,0x95,0x00,0x00,0x40,0x01,0x00,0x20,0x40,0x04,0x00,0x20, + 0x1F,0x85,0xEB,0x51,0x00,0x00,0x00,0x10,0xC0,0x05,0x00,0x20,0x7E,0x06,0x00,0x20, + 0x76,0x05,0x00,0x20,0xC4,0x05,0x00,0x20,0xAC,0x05,0x00,0x20,0xC8,0x05,0x00,0x20, + 0xB0,0x05,0x00,0x20,0xEC,0x05,0x00,0x20,0x68,0x05,0x00,0x20,0x00,0x00,0xA0,0xE3, + 0x42,0x01,0xC5,0xE5,0x41,0x01,0xC5,0xE5,0x68,0x11,0x9D,0xE5,0xB4,0x04,0xC1,0xE1, + 0x60,0x50,0x1F,0xE5,0x00,0xC0,0xA0,0xE3,0x04,0xA0,0xD5,0xE5,0x0C,0x80,0xA0,0xE1, + 0x01,0x20,0xA0,0xE3,0x01,0x00,0x5A,0xE3,0x32,0x00,0x00,0xBA,0x7F,0x94,0xD5,0xE5, + 0x64,0xB0,0x1F,0xE5,0x82,0x00,0x85,0xE0,0xB4,0x1F,0xD0,0xE1,0xCD,0x30,0xA0,0xE3, + 0x33,0x3B,0x83,0xE2,0x01,0x0C,0x80,0xE2,0xB6,0x00,0xD0,0xE1,0x93,0x01,0x01,0xE0, + 0x93,0x00,0x00,0xE0,0xA0,0x79,0xA0,0xE1,0x00,0x80,0xA0,0xE3,0x00,0x00,0x59,0xE3, + 0xA1,0x69,0xA0,0xE1,0x08,0x00,0xA0,0xE1,0x1D,0x00,0x00,0xDA,0x02,0x11,0x85,0xE0, + 0x01,0x4C,0x81,0xE2,0x80,0x11,0x85,0xE0,0x01,0x1B,0x81,0xE2,0xF0,0x38,0xD1,0xE1, + 0x06,0x00,0x53,0xE1,0x11,0x00,0x00,0xCA,0xF4,0x38,0xD1,0xE1,0x06,0x00,0x53,0xE1, + 0x0E,0x00,0x00,0xBA,0xF2,0x38,0xD1,0xE1,0x07,0x00,0x53,0xE1,0x0B,0x00,0x00,0xCA, + 0xF6,0x18,0xD1,0xE1,0x07,0x00,0x51,0xE1,0x08,0x00,0x00,0xBA,0xF6,0x11,0xD4,0xE1, + 0xF4,0x31,0xD4,0xE1,0x81,0x11,0x61,0xE0,0x81,0x10,0x83,0xE0,0x81,0x10,0x8B,0xE0, + 0xF0,0x30,0xD1,0xE1,0x0C,0x00,0x53,0xE1,0x03,0xC0,0xA0,0xC1,0xFF,0x80,0x02,0xC2, + 0x01,0x00,0x80,0xE2,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x00,0x00,0x59,0xE1, + 0xE3,0xFF,0xFF,0xCA,0x01,0x00,0x82,0xE2,0x00,0x28,0xA0,0xE1,0x42,0x28,0xA0,0xE1, + 0x02,0x00,0x5A,0xE1,0xCE,0xFF,0xFF,0xAA,0x48,0x01,0x1F,0xE5,0xBA,0x10,0xD5,0xE1, + 0x01,0x6C,0x80,0xE2,0x01,0x4C,0x80,0xE2,0x0C,0x00,0x51,0xE1,0x06,0x60,0x86,0xE2, + 0x02,0x40,0x84,0xE2,0x12,0x00,0x00,0xCA,0x00,0x00,0x58,0xE3,0x10,0x00,0x00,0x0A, + 0x88,0x00,0x85,0xE0,0xB4,0x8F,0xD0,0xE1,0x01,0x0C,0x80,0xE2,0xB6,0x70,0xD0,0xE1, + 0x12,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xF4,0x00,0x85,0xE2,0x4B,0xEA,0xFF,0xEB, + 0x12,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0x47,0xEA,0xFF,0xEB, + 0x01,0x00,0xA0,0xE3,0x04,0x00,0xC5,0xE5,0xA8,0x01,0x1F,0xE5,0xB6,0x8F,0xC0,0xE1, + 0x1B,0x00,0x00,0xEA,0x05,0x00,0xD5,0xE5,0x00,0x00,0x50,0xE3,0x19,0x00,0x00,0x1A, + 0x01,0x00,0x5A,0xE3,0x17,0x00,0x00,0x9A,0x8A,0x01,0xD5,0xE5,0x00,0x00,0x50,0xE3, + 0x14,0x00,0x00,0x1A,0x18,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x11,0x00,0x00,0x0A, + 0x18,0x10,0x9D,0xE5,0x12,0x20,0xA0,0xE3,0x81,0x00,0x85,0xE0,0xB4,0x9F,0xD0,0xE1, + 0x01,0x0C,0x80,0xE2,0xB6,0x70,0xD0,0xE1,0x00,0x10,0xA0,0xE3,0xF4,0x00,0x85,0xE2, + 0x2E,0xEA,0xFF,0xEB,0x12,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1, + 0x2A,0xEA,0xFF,0xEB,0x01,0x00,0xA0,0xE3,0x04,0x00,0xC5,0xE5,0x1C,0x02,0x1F,0xE5, + 0xB6,0x9F,0xC0,0xE1,0xB6,0x70,0xC4,0xE1,0x7B,0x04,0xD5,0xE5,0x05,0x30,0xA0,0xE1, + 0x00,0x00,0x50,0xE3,0x09,0x00,0x00,0x0A,0x00,0x20,0xA0,0xE3,0x38,0xC0,0x9F,0xE5, + 0x04,0x20,0xC3,0xE5,0x7C,0x04,0xD3,0xE5,0x1E,0xC0,0xDC,0xE5,0x03,0x10,0xA0,0xE1, + 0x0C,0x00,0x50,0xE1,0x01,0x00,0x80,0xE2,0x7B,0x24,0xC1,0x25,0x7C,0x04,0xC1,0xE5, + 0x04,0x00,0xD3,0xE5,0x14,0x10,0x9F,0xE5,0x05,0x00,0xC3,0xE5,0x00,0x00,0xC1,0xE5, + 0x5B,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x00,0x93,0x00,0x00, + 0xF4,0x05,0x00,0x20,0x10,0xB5,0x0F,0x48,0x0F,0x49,0x80,0x88,0x49,0x8B,0x00,0x24, + 0x40,0x18,0x0E,0x49,0x09,0x78,0x00,0x29,0x02,0xD0,0x0D,0x49,0x49,0x89,0x02,0xE0, + 0x0C,0x49,0x09,0x68,0x49,0x88,0x08,0x18,0x0B,0x49,0xC9,0x6B,0x49,0x04,0x49,0x0C, + 0x81,0x42,0x00,0xD3,0x01,0x24,0xFE,0xF7,0xAF,0xFB,0x20,0x00,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x80,0x01,0x00,0x20,0x40,0x05,0x00,0x20,0x75,0x05,0x00,0x20, + 0xA0,0x95,0x00,0x00,0x78,0x06,0x00,0x20,0xC0,0x90,0x00,0x40,0xF7,0xB5,0x24,0x4E, + 0x82,0xB0,0xB0,0x7F,0xF1,0x7F,0x00,0x02,0x08,0x43,0x02,0xF0,0x8D,0xF8,0x30,0x00, + 0x20,0x38,0x00,0x7D,0xC0,0x07,0x0A,0xD0,0x1E,0x48,0x01,0x78,0x1E,0x48,0x00,0x7B, + 0x00,0x29,0x02,0xD0,0x02,0xF0,0x30,0xF8,0x01,0xE0,0x02,0xF0,0x55,0xF8,0x18,0x49, + 0x01,0x25,0x20,0x39,0x08,0x00,0xC0,0x30,0x01,0x90,0x05,0x20,0xC0,0x01,0x17,0x4F, + 0x08,0x18,0x00,0x90,0x00,0x20,0xF8,0x62,0x01,0x98,0x80,0x68,0x38,0x62,0x00,0x98, + 0x00,0x6B,0x78,0x62,0x03,0x24,0xE0,0x07,0xC0,0x0F,0xFB,0xF7,0x81,0xFC,0x64,0x1E, + 0xF9,0xD5,0x02,0x20,0xF8,0x62,0x30,0x7F,0x01,0x00,0xFB,0xF7,0xEF,0xFC,0x01,0x24, + 0x02,0xA8,0x07,0xC8,0xFE,0xF7,0xFE,0xFA,0x00,0x28,0x01,0xD1,0x00,0x24,0x25,0x00, + 0x64,0x1E,0xF5,0xD5,0x6D,0x1E,0xDD,0xD5,0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x20,0x93,0x00,0x00,0x6D,0x05,0x00,0x20,0xE0,0x04,0x00,0x20,0x80,0x90,0x00,0x40, + 0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x00,0x60,0xA0,0xE3,0x7D,0xDF,0x4D,0xE2, + 0x00,0x00,0xA0,0xE3,0x30,0x60,0x8D,0xE5,0xC8,0x61,0x8D,0xE5,0x2C,0x60,0x8D,0xE5, + 0x1C,0x60,0x8D,0xE5,0x00,0x50,0xA0,0xE1,0x00,0x10,0xA0,0xE1,0xC4,0x61,0x8D,0xE5, + 0x38,0x60,0x8D,0xE5,0x08,0x00,0x8D,0xE5,0x04,0x00,0x8D,0xE5,0x18,0x0B,0x9F,0xE5, + 0x34,0x60,0x8D,0xE5,0x24,0x60,0x8D,0xE5,0x28,0x60,0x8D,0xE5,0x20,0x60,0x8D,0xE5, + 0x10,0x60,0x8D,0xE5,0x14,0x60,0x8D,0xE5,0x0C,0x60,0x8D,0xE5,0xF0,0x01,0x8D,0xE5, + 0xB0,0x18,0xC0,0xE1,0xF0,0x01,0x9D,0xE5,0xF0,0x4A,0x9F,0xE5,0xB2,0x18,0xC0,0xE1, + 0xF0,0x01,0x9D,0xE5,0x06,0x70,0xA0,0xE1,0xB4,0x18,0xC0,0xE1,0x06,0x90,0xA0,0xE1, + 0x06,0xA0,0xA0,0xE1,0x30,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x88,0x00,0x84,0xE2, + 0xAA,0xE9,0xFF,0xEB,0x30,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xB8,0x00,0x84,0xE2, + 0xA6,0xE9,0xFF,0xEB,0x00,0x80,0xA0,0xE3,0x60,0x10,0xA0,0xE3,0x57,0x0F,0x8D,0xE2, + 0xB8,0x8E,0xC4,0xE1,0xB1,0xE9,0xFF,0xEB,0x60,0x10,0xA0,0xE3,0xFC,0x00,0x8D,0xE2, + 0xAE,0xE9,0xFF,0xEB,0x60,0x10,0xA0,0xE3,0x9C,0x00,0x8D,0xE2,0xAB,0xE9,0xFF,0xEB, + 0x60,0x10,0xA0,0xE3,0x3C,0x00,0x8D,0xE2,0xA8,0xE9,0xFF,0xEB,0x80,0x0A,0x9F,0xE5, + 0x00,0x10,0xD0,0xE5,0x7C,0x0A,0x9F,0xE5,0x00,0x00,0x51,0xE3,0xEC,0x01,0x8D,0xE5, + 0x04,0x00,0x00,0x0A,0xF8,0x0A,0xD0,0xE1,0xC0,0x01,0x8D,0xE5,0xEC,0x01,0x9D,0xE5, + 0xB6,0x0A,0xD0,0xE1,0x04,0x00,0x00,0xEA,0x5C,0x0A,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0xF6,0x12,0xD0,0xE1,0xC0,0x11,0x8D,0xE5,0xB4,0x02,0xD0,0xE1,0xEC,0x11,0x9D,0xE5, + 0x6C,0x3A,0x9F,0xE5,0xBC,0x01,0x8D,0xE5,0x30,0x0A,0x9F,0xE5,0x64,0x2A,0x9F,0xE5, + 0xB6,0x00,0xD0,0xE1,0x60,0xCA,0x9F,0xE5,0x40,0x00,0x10,0xE3,0xB0,0xB8,0xD1,0x01, + 0xB0,0x18,0xD1,0x11,0x01,0x08,0xE0,0xE3,0x81,0xB0,0x00,0x10,0x8B,0x00,0x00,0xE0, + 0x18,0x1A,0x9F,0xE5,0x18,0x00,0x8D,0xE5,0x00,0x00,0xA0,0xE3,0x00,0x00,0xC1,0xE5, + 0x0C,0x1A,0x9F,0xE5,0x00,0x00,0x81,0xE5,0x08,0x1A,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0x04,0x1A,0x9F,0xE5,0x00,0x00,0x81,0xE5,0x00,0x1A,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0xFC,0x19,0x9F,0xE5,0x00,0x00,0x81,0xE5,0xF8,0x19,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0xF4,0x19,0x9F,0xE5,0x00,0x00,0x81,0xE5,0xF0,0x19,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0x00,0x00,0x83,0xE5,0x00,0x00,0x82,0xE5,0x00,0x00,0x8C,0xE5,0xEC,0xC9,0x9F,0xE5, + 0x00,0x00,0x8C,0xE5,0xE8,0xC9,0x9F,0xE5,0x00,0x00,0x8C,0xE5,0x00,0xC0,0xA0,0xE3, + 0x0C,0x00,0xA0,0xE1,0x00,0x20,0xA0,0xE3,0xD8,0x19,0x9F,0xE5,0x8C,0x10,0x81,0xE0, + 0xE8,0x11,0x8D,0xE5,0xB0,0x10,0xD1,0xE1,0x01,0x3A,0xA0,0xE1,0xC8,0x19,0x9F,0xE5, + 0x23,0x3A,0xA0,0xE1,0x8C,0x10,0x81,0xE0,0xB0,0x10,0xD1,0xE1,0x0F,0x1A,0xC1,0xE3, + 0x01,0x40,0x43,0xE0,0x08,0x00,0x54,0xE1,0x03,0x10,0x41,0xE0,0x34,0x30,0x8D,0xC2, + 0x05,0x00,0x83,0xC8,0x04,0x80,0xA0,0xC1,0xFC,0x30,0x8D,0xE2,0x02,0xE1,0x93,0xE7, + 0x00,0x00,0x54,0xE3,0x00,0x40,0xA0,0xB3,0x04,0xE0,0x8E,0xE0,0x02,0xE1,0x83,0xE7, + 0x57,0xEF,0x8D,0xE2,0x00,0x31,0x9E,0xE7,0x00,0x00,0x51,0xE3,0x04,0x30,0x83,0xE0, + 0x00,0x31,0x8E,0xE7,0x3C,0x30,0x8D,0xE2,0x02,0xE1,0x93,0xE7,0x00,0x10,0xA0,0xB3, + 0x01,0xE0,0x8E,0xE0,0x02,0xE1,0x83,0xE7,0x9C,0xE0,0x8D,0xE2,0x00,0x31,0x9E,0xE7, + 0x01,0x30,0x83,0xE0,0x00,0x31,0x8E,0xE7,0xC8,0x31,0x9D,0xE5,0x04,0x00,0x53,0xE1, + 0xC8,0x41,0x8D,0x35,0x01,0x00,0x56,0xE1,0x01,0x60,0xA0,0x31,0x64,0x00,0x54,0xE3, + 0x04,0x30,0xA0,0xE1,0x64,0x30,0xA0,0xC3,0x11,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A, + 0xF4,0xE8,0x9F,0xE5,0x00,0xE0,0x9E,0xE5,0x0E,0x30,0x83,0xE0,0xE8,0xE8,0x9F,0xE5, + 0x13,0x00,0x00,0xEA,0x12,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0xDC,0xE8,0x9F,0xE5, + 0x00,0xE0,0x9E,0xE5,0x0E,0x30,0x83,0xE0,0xD0,0xE8,0x9F,0xE5,0x0C,0x00,0x00,0xEA, + 0x13,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0xC4,0xE8,0x9F,0xE5,0x00,0xE0,0x9E,0xE5, + 0x0E,0x30,0x83,0xE0,0xB8,0xE8,0x9F,0xE5,0x05,0x00,0x00,0xEA,0x14,0x00,0x50,0xE3, + 0x04,0x00,0x00,0x1A,0xAC,0xE8,0x9F,0xE5,0x00,0xE0,0x9E,0xE5,0x0E,0x30,0x83,0xE0, + 0xA0,0xE8,0x9F,0xE5,0x00,0x30,0x8E,0xE5,0x32,0x00,0x54,0xE3,0x04,0x30,0xA0,0xE1, + 0x32,0x30,0xA0,0xC3,0x11,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0x88,0xE8,0x9F,0xE5, + 0x00,0xE0,0x9E,0xE5,0x0E,0x30,0x83,0xE0,0x7C,0xE8,0x9F,0xE5,0x13,0x00,0x00,0xEA, + 0x12,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0x70,0xE8,0x9F,0xE5,0x00,0xE0,0x9E,0xE5, + 0x0E,0x30,0x83,0xE0,0x64,0xE8,0x9F,0xE5,0x0C,0x00,0x00,0xEA,0x13,0x00,0x50,0xE3, + 0x04,0x00,0x00,0x1A,0x58,0xE8,0x9F,0xE5,0x00,0xE0,0x9E,0xE5,0x0E,0x30,0x83,0xE0, + 0x4C,0xE8,0x9F,0xE5,0x05,0x00,0x00,0xEA,0x14,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A, + 0x40,0xE8,0x9F,0xE5,0x00,0xE0,0x9E,0xE5,0x0E,0x30,0x83,0xE0,0x34,0xE8,0x9F,0xE5, + 0x00,0x30,0x8E,0xE5,0x01,0x00,0x56,0xE1,0x01,0x60,0xA0,0x31,0x11,0x00,0x50,0xE3, + 0x12,0x00,0x50,0x13,0x14,0x00,0x50,0x13,0x09,0x00,0x00,0x1A,0x00,0x00,0x52,0xE3, + 0x04,0x00,0x00,0x1A,0xE8,0x37,0x9F,0xE5,0xE4,0xE7,0x9F,0xE5,0x00,0x30,0x93,0xE5, + 0x04,0x30,0x83,0xE0,0x00,0x30,0x8E,0xE5,0x11,0x00,0x50,0xE3,0x12,0x00,0x50,0x13, + 0x01,0x00,0x00,0x0A,0x13,0x00,0x50,0xE3,0x06,0x00,0x00,0x1A,0x0C,0x00,0x52,0xE3, + 0x04,0x00,0x00,0x1A,0xBC,0x37,0x9F,0xE5,0xB8,0xE7,0x9F,0xE5,0x00,0x30,0x93,0xE5, + 0x04,0x30,0x83,0xE0,0x00,0x30,0x8E,0xE5,0x0B,0x00,0x51,0xE1,0x01,0x30,0x87,0xC2, + 0x01,0x78,0xC3,0xC3,0x0B,0x00,0x54,0xE1,0x01,0x30,0x89,0xC2,0x01,0x98,0xC3,0xC3, + 0x18,0x30,0x9D,0xE5,0x03,0x00,0x51,0xE1,0x03,0x00,0x00,0xDA,0x0C,0x30,0x9D,0xE5, + 0x01,0x30,0x83,0xE2,0x01,0x38,0xC3,0xE3,0x0C,0x30,0x8D,0xE5,0x18,0x30,0x9D,0xE5, + 0x03,0x00,0x54,0xE1,0x01,0x30,0x8A,0xC2,0x01,0xA8,0xC3,0xC3,0x14,0x30,0x9D,0xE5, + 0x96,0x00,0x51,0xE3,0x04,0x30,0x83,0xE0,0x14,0x30,0x8D,0xE5,0x10,0x30,0x9D,0xE5, + 0x01,0x30,0x83,0xE0,0x10,0x30,0x8D,0xE5,0x03,0x00,0x00,0xDA,0x7C,0xE7,0x9F,0xE5, + 0xB0,0x30,0xDE,0xE1,0x01,0x30,0x83,0xE2,0xB0,0x30,0xCE,0xE1,0xE8,0x31,0x9D,0xE5, + 0x01,0x20,0x82,0xE2,0xB0,0x40,0xC3,0xE1,0xC0,0x31,0x9D,0xE5,0x0E,0x00,0x52,0xE3, + 0x04,0x30,0x83,0xE0,0xC4,0x41,0x9D,0xE5,0x01,0xC0,0x8C,0xE2,0x04,0x30,0x83,0xE0, + 0xC4,0x31,0x8D,0xE5,0x57,0xFF,0xFF,0x3A,0x01,0x00,0x80,0xE2,0x15,0x00,0x50,0xE3, + 0x53,0xFF,0xFF,0x3A,0x20,0x07,0x9F,0xE5,0x70,0x20,0x9D,0xE5,0x00,0x20,0x80,0xE5, + 0x18,0x07,0x9F,0xE5,0xC8,0x21,0x9D,0xE5,0x00,0x20,0x80,0xE5,0x10,0x07,0x9F,0xE5, + 0x00,0x60,0x80,0xE5,0xE0,0x06,0x9F,0xE5,0x00,0x00,0x90,0xE5,0x7D,0x0F,0x50,0xE3, + 0xD8,0x06,0x9F,0x25,0x00,0x00,0x90,0x25,0x7D,0x0F,0x50,0x23,0xD0,0x06,0x9F,0x25, + 0x00,0x00,0x90,0x25,0x7D,0x0F,0x50,0x23,0x08,0x00,0x00,0x3A,0xC4,0x06,0x9F,0xE5, + 0x00,0x00,0x90,0xE5,0x7D,0x0F,0x50,0xE3,0x04,0x00,0x00,0x3A,0xE0,0x36,0x9F,0xE5, + 0x00,0x00,0x93,0xE5,0xC8,0x00,0x50,0xE3,0x01,0x00,0x80,0x32,0x00,0x00,0x83,0x35, + 0xA4,0x06,0x9F,0xE5,0x00,0x00,0x90,0xE5,0xC8,0x00,0x50,0xE3,0x9C,0x06,0x9F,0x25, + 0x00,0x00,0x90,0x25,0xC8,0x00,0x50,0x23,0x94,0x06,0x9F,0x25,0x00,0x00,0x90,0x25, + 0xC8,0x00,0x50,0x23,0x08,0x00,0x00,0x3A,0x88,0x06,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0xC8,0x00,0x50,0xE3,0x04,0x00,0x00,0x3A,0x98,0x36,0x9F,0xE5,0x00,0x00,0x93,0xE5, + 0xC8,0x00,0x50,0xE3,0x01,0x00,0x80,0x32,0x00,0x00,0x83,0x35,0x88,0x06,0x9F,0xE5, + 0x00,0x00,0x90,0xE5,0x03,0x00,0x50,0xE3,0xE4,0x01,0x8D,0xE5,0x15,0x00,0x00,0x2A, + 0x78,0x36,0x9F,0xE5,0x64,0x00,0x56,0xE3,0x00,0x00,0x93,0x35,0xFA,0x00,0x50,0x33, + 0x03,0x00,0x00,0x2A,0x00,0x00,0x50,0xE3,0x0E,0x00,0x00,0x0A,0x01,0x00,0x40,0xE2, + 0x0B,0x00,0x00,0xEA,0xC8,0x00,0x56,0xE3,0x03,0x00,0x00,0x9A,0x00,0x00,0x93,0xE5, + 0x7D,0x0F,0x50,0xE3,0x07,0x00,0x00,0x2A,0x04,0x00,0x00,0xEA,0x96,0x00,0x56,0xE3, + 0x04,0x00,0x00,0x9A,0x00,0x00,0x93,0xE5,0x4B,0x0F,0x50,0xE3,0x01,0x00,0x00,0x2A, + 0x01,0x00,0x80,0xE2,0x00,0x00,0x83,0xE5,0x08,0x06,0x9F,0xE5,0x20,0x46,0x9F,0xE5, + 0x8C,0x00,0x80,0xE0,0xB0,0x00,0xD0,0xE1,0x00,0xE0,0xA0,0xE3,0x00,0x0A,0xA0,0xE1, + 0x20,0x0A,0xA0,0xE1,0xE0,0x01,0x8D,0xE5,0x02,0x02,0x62,0xE0,0x00,0x61,0xA0,0xE1, + 0x02,0x02,0x62,0xE0,0x80,0x00,0x80,0xE0,0xDC,0x01,0x8D,0xE5,0x02,0x02,0x62,0xE0, + 0x80,0x00,0xA0,0xE1,0xD8,0x01,0x8D,0xE5,0x02,0x01,0x82,0xE0,0x00,0x01,0xA0,0xE1, + 0xD4,0x01,0x8D,0xE5,0x02,0x02,0x62,0xE0,0xD0,0x01,0x8D,0xE5,0x00,0x30,0xA0,0xE3, + 0xE4,0xC1,0x9D,0xE5,0x00,0x00,0x51,0xE3,0xE0,0x01,0x9D,0xE5,0x00,0x10,0xA0,0xB3, + 0x03,0x00,0x5C,0xE3,0x36,0x00,0x00,0x2A,0xEE,0xCF,0xA0,0xE3,0x02,0xCB,0x8C,0xE2, + 0x0C,0x00,0x52,0xE1,0x07,0x00,0x00,0x9A,0x94,0xB6,0xCC,0xE0,0xCC,0xB2,0xA0,0xE1, + 0xCC,0xCF,0x4B,0xE0,0x00,0x00,0x5C,0xE1,0x2F,0x00,0x00,0xAA,0x4B,0x0F,0x50,0xE3, + 0x2D,0x00,0x00,0xDA,0x28,0x00,0x00,0xEA,0x7D,0x0E,0x52,0xE3,0x08,0x00,0x00,0x9A, + 0xDC,0xC1,0x9D,0xE5,0x94,0xBC,0xCC,0xE0,0xCC,0xB2,0xA0,0xE1,0xCC,0xCF,0x4B,0xE0, + 0x00,0x00,0x5C,0xE1,0x24,0x00,0x00,0xAA,0xC8,0x00,0x50,0xE3,0x22,0x00,0x00,0xDA, + 0x1D,0x00,0x00,0xEA,0xFA,0x0F,0x52,0xE3,0x08,0x00,0x00,0x9A,0xD8,0xC1,0x9D,0xE5, + 0x94,0xBC,0xCC,0xE0,0xCC,0xB2,0xA0,0xE1,0xCC,0xCF,0x4B,0xE0,0x00,0x00,0x5C,0xE1, + 0x19,0x00,0x00,0xAA,0x64,0x00,0x50,0xE3,0x17,0x00,0x00,0xDA,0x12,0x00,0x00,0xEA, + 0x7D,0x0F,0x52,0xE3,0x08,0x00,0x00,0x9A,0xD4,0xC1,0x9D,0xE5,0x94,0xBC,0xCC,0xE0, + 0xCC,0xB2,0xA0,0xE1,0xCC,0xCF,0x4B,0xE0,0x00,0x00,0x5C,0xE1,0x0E,0x00,0x00,0xAA, + 0x64,0x00,0x50,0xE3,0x0C,0x00,0x00,0xDA,0x07,0x00,0x00,0xEA,0xD0,0xC1,0x9D,0xE5, + 0x94,0xBC,0xCC,0xE0,0xCC,0xB2,0xA0,0xE1,0xCC,0xCF,0x4B,0xE0,0x00,0x00,0x5C,0xE1, + 0x05,0x00,0x00,0xAA,0x64,0x00,0x50,0xE3,0x03,0x00,0x00,0xDA,0x01,0x50,0x85,0xE2, + 0x01,0x00,0x00,0xEA,0x00,0x00,0x55,0xE3,0x01,0x50,0x45,0x12,0x01,0x30,0x83,0xE2, + 0x0E,0x00,0x53,0xE3,0xBD,0xFF,0xFF,0x3A,0x01,0xE0,0x8E,0xE2,0x15,0x00,0x5E,0xE3, + 0xB9,0xFF,0xFF,0x3A,0x08,0x00,0x9D,0xE5,0xF0,0x11,0x9D,0xE5,0xB0,0x08,0xC1,0xE1, + 0x04,0x00,0x9D,0xE5,0xF0,0x11,0x9D,0xE5,0xB2,0x08,0xC1,0xE1,0xF0,0x01,0x9D,0xE5, + 0xB4,0x58,0xC0,0xE1,0xDC,0xF7,0xFF,0xEB,0x3C,0x04,0x9F,0xE5,0x2C,0x64,0x9F,0xE5, + 0x00,0x40,0x90,0xE5,0xB4,0x00,0xD4,0xE1,0xBE,0x00,0xC6,0xE1,0xB0,0x00,0xD4,0xE1, + 0x01,0x00,0x10,0xE3,0x08,0x00,0x00,0x0A,0xC4,0x01,0x9D,0xE5,0xBC,0x11,0x9D,0xE5, + 0x91,0x00,0x00,0xE0,0x6C,0x14,0x9F,0xE5,0x91,0x20,0x80,0xE0,0xB4,0x10,0xD4,0xE1, + 0x20,0x06,0xA0,0xE1,0x00,0x00,0x51,0xE1,0xBE,0x00,0xC6,0x81,0x58,0xC4,0x9F,0xE5, + 0x00,0x00,0xA0,0xE3,0x57,0xEF,0x8D,0xE2,0x9C,0x30,0x8D,0xE2,0x08,0x20,0xD4,0xE5, + 0x00,0x11,0x9E,0xE7,0x92,0x01,0x01,0xE0,0x9C,0x51,0x82,0xE0,0xA2,0x54,0xA0,0xE1, + 0xB0,0x21,0xD4,0xE1,0x02,0x00,0x55,0xE1,0x9C,0x21,0x81,0x90,0x09,0x50,0xD4,0xE5, + 0xA1,0x24,0xA0,0x91,0x00,0x11,0x93,0xE7,0x91,0x05,0x05,0xE0,0x9C,0xB5,0x81,0xE0, + 0xA1,0xB4,0xA0,0xE1,0xB2,0x11,0xD4,0xE1,0x01,0x00,0x5B,0xE1,0x9C,0x55,0x81,0x90, + 0xA1,0x14,0xA0,0x91,0x01,0x10,0x42,0xE0,0xBC,0x20,0xD4,0xE1,0x92,0x01,0x01,0xE0, + 0x01,0x18,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x01,0x25,0x61,0xE0,0x02,0x21,0x82,0xE0, + 0x81,0x13,0x82,0xE0,0xC1,0x29,0xA0,0xE1,0xC1,0x1F,0x42,0xE0,0x80,0x20,0x86,0xE0, + 0x01,0x00,0x80,0xE2,0x15,0x00,0x50,0xE3,0xB8,0x18,0xC2,0xE1,0xDE,0xFF,0xFF,0x3A, + 0xC8,0x33,0x9F,0xE5,0x00,0x50,0xA0,0xE3,0xFC,0x20,0x8D,0xE2,0x0A,0x10,0xD4,0xE5, + 0x05,0x01,0x92,0xE7,0x91,0x00,0x00,0xE0,0x93,0xC0,0x81,0xE0,0xA1,0xC5,0xA0,0xE1, + 0xB4,0x11,0xD4,0xE1,0x01,0x00,0x5C,0xE1,0x93,0x10,0x80,0x90,0xA0,0x15,0xA0,0x91, + 0x0B,0xC0,0xD4,0xE5,0x3C,0x00,0x8D,0xE2,0x05,0x01,0x90,0xE7,0x90,0x0C,0x0C,0xE0, + 0x93,0xBC,0x80,0xE0,0xA0,0xB5,0xA0,0xE1,0xB6,0x01,0xD4,0xE1,0x00,0x00,0x5B,0xE1, + 0x93,0xCC,0x80,0x90,0xA0,0x05,0xA0,0x91,0x00,0x00,0x41,0xE0,0xBE,0x10,0xD4,0xE1, + 0x91,0x00,0x00,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x00,0x15,0x60,0xE0, + 0x01,0x11,0x81,0xE0,0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1,0xC0,0x0F,0x41,0xE0, + 0x85,0x10,0x86,0xE0,0x01,0x50,0x85,0xE2,0x0D,0x00,0x55,0xE3,0xB8,0x0B,0xC1,0xE1, + 0xDD,0xFF,0xFF,0x3A,0x0A,0x10,0xD4,0xE5,0x05,0x01,0x92,0xE7,0x64,0x20,0xA0,0xE3, + 0x91,0x00,0x00,0xE0,0x28,0x13,0x9F,0xE5,0x15,0x10,0xD1,0xE5,0x92,0x01,0x01,0xE0, + 0xCC,0x11,0x8D,0xE5,0x85,0xE7,0xFF,0xEB,0xB4,0x11,0xD4,0xE1,0x01,0x00,0x50,0xE1, + 0x00,0xB0,0xA0,0x91,0x01,0xB0,0xA0,0x81,0x0B,0x10,0xD4,0xE5,0x3C,0x00,0x8D,0xE2, + 0x05,0x01,0x90,0xE7,0x91,0x00,0x00,0xE0,0xCC,0x11,0x9D,0xE5,0x7B,0xE7,0xFF,0xEB, + 0xB6,0x11,0xD4,0xE1,0x01,0x00,0x50,0xE1,0x01,0x00,0xA0,0x81,0xBE,0x10,0xD4,0xE1, + 0x00,0x00,0x4B,0xE0,0x00,0x00,0x58,0xE3,0x91,0x00,0x00,0xE0,0x00,0x08,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x00,0x15,0x60,0xE0,0x01,0x11,0x81,0xE0,0x80,0x03,0x81,0xE0, + 0xC0,0x19,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x85,0x10,0x86,0xE0,0xB8,0x0B,0xC1,0xE1, + 0x0C,0x00,0x00,0xDA,0x38,0x00,0x9D,0xE5,0x80,0x00,0x86,0xE0,0xB8,0x1B,0xD0,0xE1, + 0x34,0x00,0x9D,0xE5,0x80,0x00,0x86,0xE0,0xB8,0x08,0xD0,0xE1,0x01,0x00,0x80,0xE0, + 0x00,0x00,0x48,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xB0,0xE1,0xB8,0x0E,0xC6,0xE1, + 0x00,0x00,0xA0,0x43,0xB8,0x0E,0xC6,0x41,0x11,0x50,0xA0,0xE3,0x01,0x5C,0x85,0xE2, + 0x10,0x00,0x9D,0xE5,0x05,0x10,0xA0,0xE1,0x58,0xE7,0xFF,0xEB,0x00,0x40,0xA0,0xE1, + 0x14,0x00,0x9D,0xE5,0x05,0x10,0xA0,0xE1,0x54,0xE7,0xFF,0xEB,0x00,0x10,0xA0,0xE1, + 0xB6,0x00,0xD6,0xE1,0x40,0x00,0x10,0xE3,0x0F,0x00,0x00,0x0A,0x89,0x00,0x57,0xE1, + 0x01,0x20,0xA0,0x83,0x2C,0x20,0x8D,0x85,0x4B,0x0F,0x54,0xE3,0x01,0x20,0xA0,0x83, + 0x28,0x20,0x8D,0x85,0x0C,0x20,0x9D,0xE5,0x28,0x00,0x52,0xE3,0x01,0x20,0xA0,0x83, + 0x24,0x20,0x8D,0x85,0x28,0x00,0x5A,0xE3,0x01,0x20,0xA0,0x33,0x20,0x20,0x8D,0x35, + 0x14,0x00,0x57,0xE3,0x12,0x00,0x00,0x9A,0x0F,0x00,0x00,0xEA,0x09,0x00,0x57,0xE1, + 0x08,0x00,0x57,0x83,0x01,0x20,0xA0,0x83,0x2C,0x20,0x8D,0x85,0x96,0x00,0x54,0xE3, + 0x01,0x20,0xA0,0x83,0x28,0x20,0x8D,0x85,0x0C,0x20,0x9D,0xE5,0x14,0x00,0x52,0xE3, + 0x01,0x20,0xA0,0x83,0x24,0x20,0x8D,0x85,0x14,0x00,0x5A,0xE3,0x01,0x20,0xA0,0x33, + 0x20,0x20,0x8D,0x35,0x0A,0x00,0x57,0xE3,0x01,0x00,0x00,0x9A,0x01,0x20,0xA0,0xE3, + 0x1C,0x20,0x8D,0xE5,0xF1,0x20,0xD6,0xE5,0x00,0x00,0x52,0xE3,0x03,0x00,0x00,0x1A, + 0xB0,0x21,0x9F,0xE5,0x00,0x20,0xD2,0xE5,0x01,0x00,0x52,0xE3,0x04,0x00,0x00,0x1A, + 0xF2,0x20,0xD6,0xE5,0xFA,0x00,0x52,0xE3,0x06,0x00,0x00,0x2A,0x01,0x20,0x82,0xE2, + 0x03,0x00,0x00,0xEA,0xF2,0x20,0xD6,0xE5,0x00,0x00,0x52,0xE3,0x01,0x00,0x00,0x0A, + 0x01,0x20,0x42,0xE2,0xF2,0x20,0xC6,0xE5,0x28,0x30,0x8D,0xE2,0x0C,0x00,0x93,0xE8, + 0x10,0x00,0x10,0xE3,0x1C,0x00,0x9D,0x15,0x02,0x30,0x83,0xE1,0x24,0x20,0x9D,0xE5, + 0x20,0xC0,0x9D,0xE5,0x00,0x00,0x50,0x13,0x0C,0x20,0x02,0xE0,0x03,0x20,0x82,0xE1, + 0x00,0x00,0xA0,0x03,0x01,0x00,0xA0,0x13,0x02,0x00,0x80,0xE1,0x00,0x00,0x50,0xE3, + 0xF2,0x00,0xD6,0x15,0x05,0x00,0x50,0x13,0x08,0x00,0x00,0x9A,0x38,0x01,0x9F,0xE5, + 0x81,0x10,0x81,0xE0,0x90,0x21,0x81,0xE0,0xA1,0x01,0xA0,0xE1,0x04,0x00,0x50,0xE1, + 0x28,0x01,0x9F,0x35,0xB0,0x00,0xD0,0x31,0xAF,0x0F,0x50,0x33,0x02,0x00,0x00,0x3A, + 0x30,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x07,0x00,0x00,0x0A,0xEC,0x00,0x96,0xE5, + 0x01,0x00,0x80,0xE2,0xEC,0x00,0x86,0xE5,0xF0,0x00,0xD6,0xE5,0x00,0x00,0x50,0xE3, + 0x01,0x00,0x40,0x12,0xF0,0x00,0xC6,0x15,0x0D,0x00,0x00,0xEA,0xF0,0x00,0xD6,0xE5, + 0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2,0xF0,0x00,0xC6,0xE5,0xEC,0x11,0x9D,0xE5, + 0xB4,0x18,0xD1,0xE1,0x01,0x00,0x50,0xE1,0x05,0x00,0x00,0x1A,0x00,0x00,0xA0,0xE3, + 0xF0,0x00,0xC6,0xE5,0xEC,0x00,0x96,0xE5,0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0xC2, + 0xEC,0x00,0x86,0xC5,0xF2,0x00,0xD6,0xE5,0x0A,0x00,0x50,0xE3,0x7D,0xDF,0x8D,0x22, + 0xF0,0x4F,0xBD,0x28,0x1E,0xFF,0x2F,0x21,0xEC,0x00,0x96,0xE5,0x00,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0xC3,0xEC,0x00,0x86,0xC5,0x00,0x00,0xA0,0xE3,0xF0,0x00,0xC6,0xE5, + 0x7D,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x40,0x01,0x00,0x20, + 0x40,0x00,0x00,0x20,0x75,0x05,0x00,0x20,0x00,0x95,0x00,0x00,0x78,0x06,0x00,0x20, + 0xF5,0x05,0x00,0x20,0xC4,0x05,0x00,0x20,0xC8,0x05,0x00,0x20,0xCC,0x05,0x00,0x20, + 0xD0,0x05,0x00,0x20,0xD4,0x05,0x00,0x20,0xD8,0x05,0x00,0x20,0xDC,0x05,0x00,0x20, + 0xE0,0x05,0x00,0x20,0xE4,0x05,0x00,0x20,0xE8,0x05,0x00,0x20,0xEC,0x05,0x00,0x20, + 0x98,0x05,0x00,0x20,0xF0,0x05,0x00,0x20,0x00,0x00,0x00,0x10,0xD2,0x02,0x00,0x10, + 0x7C,0x05,0x00,0x20,0xA4,0x05,0x00,0x20,0xA8,0x05,0x00,0x20,0xA0,0x05,0x00,0x20, + 0x9C,0x05,0x00,0x20,0x1F,0x85,0xEB,0x51,0x2B,0x75,0xAA,0x23,0x91,0x73,0x9F,0x5D, + 0x2D,0x34,0xA9,0xF9,0x00,0x93,0x00,0x00,0x67,0x05,0x00,0x20,0xCD,0xCC,0xCC,0xCC, + 0x7A,0x05,0x00,0x20,0xF0,0xB5,0xFD,0x48,0x00,0x27,0x8B,0xB0,0x04,0x97,0x00,0x68, + 0x3C,0x00,0x80,0x79,0x02,0x90,0xFA,0x48,0x42,0x79,0x05,0x00,0xC0,0x35,0x00,0x92, + 0x82,0x79,0x80,0x30,0x01,0x7B,0xC0,0x38,0xAB,0x7A,0x00,0x7A,0xFD,0xF7,0xAD,0xFD, + 0x00,0x06,0x69,0x7A,0x00,0x0E,0xFD,0xF7,0x9D,0xFD,0x29,0x00,0x20,0x39,0x0A,0x7A, + 0x00,0x06,0xC0,0x39,0x09,0x79,0x00,0x0E,0xFD,0xF7,0x98,0xFD,0x29,0x00,0x80,0x39, + 0x8A,0x7D,0x00,0x06,0xC0,0x39,0x89,0x7C,0x00,0x0E,0xFD,0xF7,0x8F,0xFD,0x00,0x06, + 0xE8,0x4E,0x00,0x0E,0x01,0x90,0x70,0x7C,0x00,0x28,0x03,0xD0,0x28,0x00,0x80,0x30, + 0x40,0x89,0x07,0xE0,0xE1,0x48,0xE4,0x49,0x00,0x68,0x49,0x8B,0x40,0x88,0x40,0x18, + 0x00,0x04,0x00,0x0C,0x03,0x90,0x00,0x20,0xF0,0x61,0x0F,0x20,0xB0,0x71,0x70,0x7B, + 0x00,0x28,0x06,0xD0,0xB0,0x6D,0x00,0x04,0x00,0x0C,0x01,0xF0,0xF7,0xFC,0x01,0xF0, + 0xE5,0xFC,0x01,0x25,0xB5,0x62,0xFB,0xF7,0xF9,0xFC,0x00,0x20,0x30,0x71,0x30,0x64, + 0x70,0x64,0xC8,0x20,0xB0,0x63,0x00,0x20,0xF0,0x63,0xB0,0x82,0xB0,0x64,0xF0,0x64, + 0x30,0x65,0x68,0x03,0xFA,0xF7,0xCA,0xF9,0xF9,0xF7,0x88,0xFD,0xF9,0xF7,0x6C,0xFD, + 0x00,0xF0,0xE0,0xFF,0x01,0xF0,0xF4,0xF9,0x00,0xF0,0x68,0xFF,0xCB,0x49,0x00,0x20, + 0x88,0x60,0xCB,0x48,0x05,0x21,0x0A,0x90,0xCA,0x48,0xC9,0x01,0x41,0x18,0x09,0x91, + 0xC5,0x49,0x80,0x30,0xA0,0x39,0x07,0xAA,0x03,0xC2,0x01,0x98,0xC0,0x1C,0x06,0x90, + 0xC5,0x48,0x05,0x90,0xF0,0xE1,0x70,0x7B,0x00,0x28,0x04,0xD0,0xB0,0x6D,0x00,0x04, + 0x00,0x0C,0x01,0xF0,0xBB,0xFC,0x80,0x20,0xFA,0xF7,0xA0,0xF9,0x03,0x20,0x01,0xF0, + 0x2D,0xFB,0x01,0x20,0x40,0x03,0xFA,0xF7,0x99,0xF9,0xF9,0xF7,0x43,0xFD,0xB8,0x48, + 0xC0,0x38,0xC0,0x88,0x01,0x06,0x04,0xD4,0xB1,0x6B,0x64,0x29,0x03,0xD2,0x42,0x06, + 0x01,0xD4,0x01,0x20,0x2D,0xE0,0xFF,0x22,0xC3,0x32,0x91,0x42,0x0E,0xD9,0x40,0x06, + 0x05,0xD5,0xAE,0x48,0xB1,0x49,0x80,0x30,0x01,0x62,0x27,0x21,0x18,0xE0,0xAB,0x48, + 0xFF,0x21,0x01,0x31,0x80,0x30,0x01,0x62,0x2B,0x21,0x11,0xE0,0xFF,0x22,0x5F,0x32, + 0x91,0x42,0x11,0xD9,0x40,0x06,0x05,0xD5,0xA4,0x48,0xA8,0x49,0x80,0x30,0x01,0x62, + 0x26,0x21,0x05,0xE0,0xA1,0x48,0xFF,0x21,0x01,0x31,0x80,0x30,0x01,0x62,0x2A,0x21, + 0x41,0x62,0x05,0x21,0xC1,0x62,0x06,0xE0,0x40,0x06,0x01,0xD5,0x05,0x20,0x00,0xE0, + 0x03,0x20,0x01,0xF0,0x9F,0xF9,0xFB,0xF7,0xE1,0xFE,0x99,0x48,0x03,0x99,0x80,0x30, + 0x80,0x88,0x40,0x18,0x96,0x49,0xC0,0x39,0x89,0x89,0x88,0x42,0x14,0xD9,0x94,0x48, + 0xC0,0x30,0x40,0x7A,0x00,0x28,0x0F,0xD1,0x91,0x48,0xFF,0x21,0xC0,0x38,0xC0,0x88, + 0x19,0x31,0x08,0x42,0x08,0xD1,0x02,0x98,0x64,0x1C,0x84,0x42,0x05,0xDD,0xFB,0xF7, + 0xCD,0xFE,0x01,0x20,0x04,0x90,0x00,0xE0,0x00,0x24,0x00,0xF0,0x3D,0xFF,0x88,0x48, + 0x09,0x99,0xC0,0x38,0xC0,0x88,0x49,0x88,0x40,0x06,0x00,0x28,0x0A,0x98,0xC0,0x6A, + 0x01,0xDA,0x49,0x00,0xFF,0xE7,0x88,0x42,0x00,0xDB,0x75,0x70,0x04,0x98,0x00,0x28, + 0x03,0xD0,0xF9,0xF7,0xC9,0xFC,0x00,0x20,0x04,0x90,0xFB,0xF7,0x6D,0xFE,0xFB,0xF7, + 0x7B,0xFE,0x00,0x20,0x30,0x83,0xFD,0xF7,0xF1,0xF8,0x00,0x28,0x09,0xD0,0x00,0x20, + 0xF0,0x61,0x05,0x98,0xC0,0x8A,0xC8,0x28,0x25,0xD2,0x05,0x99,0x40,0x1C,0xC8,0x82, + 0x21,0xE0,0xF0,0x69,0x40,0x1C,0xF0,0x61,0xF0,0x69,0x01,0x28,0x04,0xD1,0x72,0x49, + 0x00,0x20,0x20,0x31,0x88,0x74,0xF0,0x63,0xF0,0x69,0x05,0x28,0x04,0xD9,0xFB,0xF7, + 0x1D,0xFC,0x05,0x99,0x00,0x20,0xC8,0x82,0xF1,0x69,0x01,0x98,0x40,0x1C,0x81,0x42, + 0x09,0xD1,0x00,0x20,0x30,0x71,0x30,0x64,0x70,0x64,0xB0,0x82,0xB0,0x64,0xF0,0x64, + 0x30,0x65,0xDC,0x20,0xB0,0x63,0xF1,0x6C,0xB0,0x6C,0x08,0x43,0x04,0xD0,0x30,0x6D, + 0xFA,0x28,0x01,0xD2,0x40,0x1C,0x30,0x65,0xF0,0x8A,0x61,0x49,0x88,0x42,0x01,0xD2, + 0x40,0x1C,0xF0,0x82,0x5A,0x48,0x20,0x30,0x40,0x7C,0x00,0x28,0x70,0x79,0x03,0xD0, + 0xFA,0x28,0x05,0xD2,0x40,0x1C,0x02,0xE0,0x00,0x28,0x01,0xD0,0x40,0x1E,0x70,0x71, + 0xF1,0x78,0xB0,0x8A,0x00,0x29,0x05,0xD0,0x7D,0x22,0xD2,0x00,0x90,0x42,0x05,0xD2, + 0x40,0x1C,0x02,0xE0,0x00,0x28,0x01,0xD0,0x40,0x1E,0xB0,0x82,0xF0,0x8A,0x23,0x28, + 0x03,0xD2,0x72,0x79,0x19,0x2A,0x00,0xD9,0x75,0x70,0x00,0x29,0x0F,0xD0,0x71,0x79, + 0x4B,0x29,0x04,0xD9,0xAF,0x21,0x89,0x00,0x88,0x42,0x00,0xD2,0x75,0x70,0xB1,0x8A, + 0x4B,0x29,0x04,0xD9,0xAF,0x21,0x89,0x00,0x88,0x42,0x00,0xD2,0x75,0x70,0x30,0x6D, + 0x14,0x28,0x09,0xD9,0x70,0x6B,0xFF,0x21,0x91,0x31,0x88,0x42,0x04,0xD2,0xB0,0x6B, + 0xC8,0x28,0x01,0xD2,0x75,0x70,0x02,0xE0,0x70,0x78,0x00,0x28,0x10,0xD0,0xFB,0xF7, + 0xA3,0xFE,0xFB,0xF7,0xD9,0xFD,0x01,0x20,0x80,0x03,0xFA,0xF7,0x8F,0xF8,0xFB,0xF7, + 0xEB,0xFD,0xFB,0xF7,0x99,0xFE,0xF9,0xF7,0x11,0xFD,0xFB,0xF7,0xB9,0xFB,0x28,0xE0, + 0x34,0x48,0x41,0x68,0x09,0x07,0x0C,0xD5,0xC1,0x68,0x00,0x29,0x09,0xD0,0xC0,0x68, + 0x07,0x28,0x03,0xD1,0x01,0x21,0x49,0x07,0xC8,0x63,0x09,0xE0,0x00,0xF0,0x9A,0xFA, + 0x06,0xE0,0x01,0xF0,0xF9,0xF8,0xB0,0x7C,0x80,0x28,0x01,0xD1,0xFB,0xF7,0x9C,0xFC, + 0xFB,0xF7,0x7A,0xFE,0xFB,0xF7,0xB0,0xFD,0x01,0x20,0x80,0x03,0xFA,0xF7,0x66,0xF8, + 0xFB,0xF7,0xC2,0xFD,0x00,0xF0,0x78,0xF9,0x07,0x00,0xFB,0xF7,0x6D,0xFE,0xF9,0xF7, + 0xE5,0xFC,0x70,0x78,0x00,0x28,0x3F,0xD0,0xFB,0xF7,0xE8,0xFD,0x00,0x22,0x01,0x21, + 0x10,0x00,0x13,0x00,0xFB,0xF7,0xAA,0xFB,0xFB,0xF7,0xD8,0xFD,0x11,0x49,0x00,0x20, + 0x48,0x70,0xC8,0x82,0x48,0x71,0x08,0x71,0x88,0x82,0x88,0x64,0xDC,0x22,0xC8,0x64, + 0x8A,0x63,0x08,0x65,0x0E,0x49,0x08,0x23,0xC0,0x39,0xCA,0x88,0x9A,0x43,0xCA,0x80, + 0xCA,0x88,0x5B,0x01,0x9A,0x43,0xCA,0x80,0xCA,0x88,0x10,0x23,0x9A,0x43,0xCA,0x80, + 0x08,0x99,0x48,0x74,0x0A,0x99,0xC8,0x62,0x7C,0xE0,0x00,0x00,0x78,0x06,0x00,0x20, + 0x60,0x94,0x00,0x00,0x64,0x05,0x00,0x20,0x40,0x05,0x00,0x20,0x00,0x90,0x00,0x40, + 0x00,0x01,0x00,0x20,0x00,0x93,0x00,0x00,0xE0,0x02,0x00,0x20,0x01,0x02,0x00,0x00, + 0x10,0x27,0x00,0x00,0x00,0x40,0x00,0x30,0x07,0x98,0x00,0x7B,0x00,0x28,0x04,0xD0, + 0x70,0x7C,0x00,0x28,0x01,0xD1,0x00,0xF0,0xB1,0xF8,0x01,0x20,0x40,0x07,0xC0,0x6B, + 0x0B,0x28,0x57,0xD1,0x03,0x20,0x40,0x03,0xFA,0xF7,0x00,0xF8,0x03,0x20,0x01,0xF0, + 0x6F,0xF9,0x70,0x65,0x03,0x20,0x01,0xF0,0xA1,0xF9,0x80,0x20,0xF9,0xF7,0xF6,0xFF, + 0x00,0x2F,0x0C,0xD0,0x0A,0x20,0x78,0x43,0x71,0x6D,0x08,0x1A,0x70,0x65,0xFF,0x20, + 0x41,0x30,0x78,0x43,0x71,0x6D,0x40,0x18,0xFF,0x38,0x7D,0x38,0x70,0x65,0x25,0x48, + 0x00,0x78,0xB1,0x7A,0x08,0x43,0x2F,0xD1,0x30,0x6B,0x00,0x28,0x2C,0xD0,0x22,0x48, + 0xC0,0x88,0x40,0x06,0x70,0x6D,0x21,0x49,0x0E,0x1A,0xFF,0x20,0x91,0x30,0x86,0x42, + 0x22,0xDD,0xFF,0x20,0x01,0x30,0xF9,0xF7,0xD9,0xFF,0x02,0x20,0x01,0xF0,0x76,0xF9, + 0x0A,0x21,0x30,0x00,0xF9,0xF7,0xEA,0xF9,0x41,0x11,0x02,0x20,0x01,0xF0,0x56,0xF9, + 0x04,0x20,0xFA,0xF7,0x03,0xF8,0x16,0x48,0x81,0x68,0x82,0x15,0x11,0x43,0x81,0x60, + 0x14,0x48,0x05,0x61,0xFF,0x20,0xF9,0xF7,0xF9,0xFF,0x02,0x20,0x01,0xF0,0x5E,0xF9, + 0xFF,0x20,0x01,0x30,0xF9,0xF7,0xB2,0xFF,0x0F,0x4E,0xF0,0x69,0x06,0x99,0x88,0x42, + 0x00,0xD2,0x08,0xE6,0x0D,0x48,0x00,0x68,0x40,0x30,0x41,0x7D,0x08,0x98,0x41,0x74, + 0x09,0x48,0x40,0x7B,0x00,0x28,0x01,0xD0,0x01,0xF0,0xB8,0xFA,0x0B,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x7D,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x8C,0x3C,0x00,0x00, + 0x00,0x40,0x00,0x40,0x40,0x00,0x00,0x40,0x64,0x05,0x00,0x20,0x78,0x06,0x00,0x20, + 0x01,0x20,0x80,0x07,0x01,0x6B,0x81,0x22,0xD2,0x01,0x11,0x43,0x01,0x63,0x70,0x47, + 0x00,0x20,0x01,0x21,0x89,0x07,0x48,0x60,0x70,0x47,0x01,0x22,0x92,0x07,0x91,0x68, + 0x01,0x43,0x91,0x60,0x70,0x47,0x00,0x00,0x01,0x20,0x80,0x07,0x01,0x6B,0x03,0x4A, + 0x89,0x09,0x52,0x7B,0x89,0x01,0x11,0x43,0x01,0x63,0x70,0x47,0x00,0x93,0x00,0x00, + 0x10,0xB5,0xF9,0xF7,0x29,0xFB,0x03,0x20,0x40,0x03,0xF9,0xF7,0x67,0xFF,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x03,0x20,0x10,0xB5,0x40,0x03,0xF9,0xF7,0x67,0xFF,0xF9,0xF7, + 0x25,0xFB,0xFB,0xF7,0xB9,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xB5,0x00,0xF0, + 0x5F,0xFC,0x05,0x49,0x80,0x22,0xC9,0x88,0x11,0x40,0x81,0x42,0x01,0xD0,0xF9,0xF7, + 0x7F,0xFE,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0x78,0x47,0xC0,0x46, + 0xF0,0x0F,0x2D,0xE9,0xAC,0x60,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0xBA,0x00,0xC6,0xE1, + 0xA4,0x00,0x9F,0xE5,0xA4,0xA0,0x9F,0xE5,0x14,0x80,0xD0,0xE5,0xA0,0xB0,0x9F,0xE5, + 0x26,0x20,0xA0,0xE3,0x01,0x2C,0x82,0xE2,0x14,0x10,0xA0,0xE3,0x01,0x90,0xA0,0xE3, + 0x0D,0x00,0xA0,0xE3,0x81,0x70,0x86,0xE0,0x01,0x20,0x42,0xE2,0x80,0x40,0x86,0xE0, + 0xF8,0x4B,0xD4,0xE1,0xF8,0x58,0xD7,0xE1,0x82,0x30,0x8B,0xE0,0xF0,0xC0,0xD3,0xE1, + 0x05,0x40,0x84,0xE0,0x02,0x00,0x18,0xE3,0x04,0xC0,0x4C,0xE0,0x04,0x00,0x00,0x0A, + 0x0D,0x00,0x50,0xE3,0x07,0x00,0x00,0x0A,0xC8,0x00,0x5C,0xE3,0x05,0x00,0x00,0xBA, + 0x03,0x00,0x00,0xEA,0x14,0x00,0x51,0xE3,0x02,0x00,0x00,0x0A,0xC8,0x00,0x5C,0xE3, + 0x00,0x00,0x00,0xBA,0x00,0x90,0xCA,0xE5,0x00,0x00,0x5C,0xE3,0x00,0xC0,0xA0,0xB3, + 0xB0,0xC0,0xC3,0xE1,0xBA,0x30,0xD6,0xE1,0x0C,0x00,0x53,0xE1,0xBA,0xC0,0xC6,0xB1, + 0x01,0x00,0x50,0xE2,0xE3,0xFF,0xFF,0x5A,0x01,0x10,0x51,0xE2,0xDF,0xFF,0xFF,0x5A, + 0xF0,0x0F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00, + 0xF5,0x05,0x00,0x20,0x00,0x00,0x00,0x10,0xF8,0xB5,0x7C,0x4C,0x00,0x26,0x00,0x96, + 0xE0,0x68,0x07,0x28,0x03,0xD0,0xE0,0x03,0x05,0x68,0x00,0x2D,0x03,0xD1,0x00,0x20, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0xFF,0x20,0x01,0x30,0xF9,0xF7,0xD7,0xFE,0x02,0x20, + 0x01,0xF0,0x74,0xF8,0x00,0xF0,0xF6,0xF8,0x71,0x4F,0x05,0x2D,0xB8,0x7B,0x50,0xD8, + 0x00,0x28,0x50,0xD1,0x01,0x20,0x41,0x07,0x04,0xE0,0x82,0x00,0x52,0x18,0x12,0x68, + 0xE2,0x61,0x40,0x1C,0xA8,0x42,0xF8,0xD9,0x6A,0x48,0x20,0x60,0x21,0x20,0x80,0x02, + 0x20,0x61,0x03,0x20,0xFC,0xF7,0x6E,0xFE,0x67,0x48,0x0A,0x21,0x00,0x6B,0xF9,0xF7, + 0xFD,0xF9,0x41,0x09,0x02,0x20,0x01,0xF0,0x39,0xF8,0x64,0x4D,0xE8,0x68,0x40,0x08, + 0x40,0x00,0xE8,0x60,0x02,0x20,0x01,0xF0,0x39,0xF8,0x04,0x20,0xF9,0xF7,0xDE,0xFE, + 0x5F,0x48,0x01,0x26,0x06,0x61,0x03,0x21,0x09,0x07,0xC8,0x68,0x08,0x22,0x10,0x43, + 0xC8,0x60,0x02,0x20,0x01,0xF0,0x04,0xF8,0x00,0x90,0x60,0x68,0x60,0x60,0x60,0x69, + 0x60,0x61,0xFD,0xF7,0x55,0xF8,0x02,0x20,0x01,0xF0,0x30,0xF8,0x03,0x20,0xFC,0xF7, + 0x31,0xFE,0xE8,0x68,0x30,0x43,0xE8,0x60,0x52,0x48,0x00,0x78,0x00,0x28,0x07,0xD0, + 0x78,0x7B,0x00,0x28,0xFB,0xD0,0xB8,0x6D,0x00,0x04,0x00,0x0C,0x01,0xF0,0x96,0xF9, + 0x86,0xE0,0x00,0x28,0x03,0xD0,0x6D,0x1C,0xFC,0xF7,0x38,0xFC,0x06,0x00,0x4A,0x48, + 0x01,0x68,0x42,0x48,0xC1,0x61,0x44,0x48,0x02,0x24,0x00,0x6B,0x0A,0x21,0xF9,0xF7, + 0xB5,0xF9,0x01,0x00,0x02,0x20,0x00,0xF0,0xF1,0xFF,0x02,0x20,0x00,0xF0,0xF6,0xFF, + 0x3E,0x48,0xC1,0x68,0x49,0x08,0x49,0x00,0xC1,0x60,0x39,0x48,0x37,0x4F,0x80,0x7B, + 0x21,0x07,0x1D,0xE0,0x7A,0x69,0x52,0x06,0x0A,0xD4,0x00,0x28,0x01,0xD0,0xAC,0x42, + 0x04,0xD2,0xA2,0x00,0x52,0x18,0x12,0x68,0xFA,0x61,0x00,0xE0,0xFE,0x61,0x64,0x1C, + 0x34,0x4A,0x12,0x78,0x00,0x2A,0x0B,0xD0,0xFC,0xF7,0x62,0xFD,0x2C,0x48,0x41,0x7B, + 0x00,0x29,0x07,0xD0,0x80,0x6D,0x00,0x04,0x00,0x0C,0x01,0xF0,0x57,0xF9,0x01,0xE0, + 0xAC,0x42,0xDF,0xD9,0x02,0x20,0x00,0xF0,0xD9,0xFF,0x2A,0x4D,0x28,0x78,0x00,0x28, + 0x37,0xD1,0xFC,0xF7,0x67,0xFC,0x00,0x28,0x33,0xD0,0x23,0x48,0x0A,0x21,0x00,0x6B, + 0xF9,0xF7,0x74,0xF9,0x01,0x00,0x02,0x20,0x00,0xF0,0xB0,0xFF,0x02,0x20,0x00,0xF0, + 0xB5,0xFF,0x1B,0x4C,0x0C,0xE0,0x28,0x78,0x00,0x28,0x09,0xD0,0xFC,0xF7,0x38,0xFD, + 0x60,0x7B,0x00,0x28,0x04,0xD0,0xA0,0x6D,0x00,0x04,0x00,0x0C,0x01,0xF0,0x2E,0xF9, + 0xFC,0xF7,0x48,0xFC,0x00,0x28,0xEE,0xD1,0x78,0x68,0x78,0x60,0x0B,0xE0,0x28,0x78, + 0x00,0x28,0x08,0xD0,0x60,0x7B,0x00,0x28,0x08,0xD0,0xA0,0x6D,0x00,0x04,0x00,0x0C, + 0x01,0xF0,0x1C,0xF9,0x02,0xE0,0x78,0x68,0xC0,0x03,0xF0,0xD5,0x02,0x20,0x00,0xF0, + 0x9D,0xFF,0x00,0xF0,0x1F,0xF8,0x09,0x49,0xC8,0x68,0x01,0x22,0x10,0x43,0xC8,0x60, + 0xFF,0x20,0x01,0x30,0xF9,0xF7,0xEA,0xFD,0x00,0x98,0x11,0xE7,0x00,0x40,0x00,0x30, + 0x64,0x05,0x00,0x20,0xD0,0x10,0x05,0x00,0x00,0x93,0x00,0x00,0x00,0x20,0x00,0x40, + 0x40,0x00,0x00,0x40,0x7D,0x06,0x00,0x20,0x04,0x00,0x00,0x20,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x05,0x48,0x01,0x21,0x00,0xB5,0xC9,0x02,0x01,0x62,0x00,0x21, + 0x01,0x62,0xFC,0xF7,0x95,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x40,0x18,0x70,0x47,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x40,0x18,0x80,0x18,0x70,0x47,0x00,0x00,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x10,0xB4,0x40,0x18,0x01,0x9C,0x80,0x18,0xC0,0x18,0x00,0x19, + 0x10,0xBC,0x70,0x47,0xF8,0xB5,0x00,0x21,0x01,0x23,0x5B,0x07,0x18,0x68,0x13,0x4A, + 0x90,0x73,0x90,0x7B,0x01,0x28,0x01,0xD1,0x01,0x21,0x0D,0xE0,0x01,0x28,0x00,0xD9, + 0x02,0x21,0x00,0x28,0x08,0xD1,0x0D,0x48,0x20,0x22,0x00,0x21,0x10,0x30,0xF9,0xF7, + 0x09,0xF9,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x13,0x25,0x08,0x4C,0xAD,0x01, + 0x08,0xE0,0x46,0x18,0xB6,0x00,0xF6,0x18,0x36,0x68,0x87,0x00,0x3F,0x19,0x7F,0x19, + 0x40,0x1C,0x3E,0x63,0x96,0x7B,0x86,0x42,0xF3,0xD8,0xEA,0xE7,0x20,0x05,0x00,0x20, + 0x40,0x00,0x00,0x20,0x70,0xB5,0x1F,0x49,0x1D,0x4C,0x0D,0x00,0x20,0x7A,0xAB,0x22, + 0xFF,0x35,0x92,0x00,0xE7,0x35,0x8E,0x18,0x00,0x28,0x0F,0xD0,0xFF,0x31,0x5A,0x22, + 0x8D,0x31,0x28,0x00,0xF9,0xF7,0x0E,0xF9,0x17,0x49,0x09,0x22,0x30,0x00,0xF9,0xF7, + 0x09,0xF9,0x20,0x7A,0x60,0x72,0x70,0xBC,0x08,0xBC,0x18,0x47,0x09,0x22,0x00,0x21, + 0x30,0x00,0xF9,0xF7,0xCF,0xF8,0x5A,0x22,0x00,0x21,0x28,0x00,0xF9,0xF7,0xCA,0xF8, + 0x0D,0x48,0x5A,0x22,0x00,0x21,0x63,0x38,0xF9,0xF7,0xC4,0xF8,0x0A,0x48,0x09,0x22, + 0x00,0x21,0x09,0x38,0xF9,0xF7,0xBE,0xF8,0x00,0x20,0x06,0x49,0x60,0x72,0xA0,0x72, + 0xCA,0x88,0x23,0x23,0x9A,0x43,0xCA,0x80,0x04,0x49,0x88,0x76,0xDB,0xE7,0x00,0x00, + 0xC0,0x01,0x00,0x20,0x40,0x00,0x00,0x20,0xE3,0x02,0x00,0x20,0xA0,0x04,0x00,0x20, + 0xF3,0xB5,0x90,0x48,0x91,0xB0,0x40,0x7E,0x02,0x90,0x8F,0x48,0x00,0x78,0x00,0x28, + 0x8E,0x48,0x18,0xD0,0x0B,0x21,0x89,0x01,0x40,0x18,0x01,0x8A,0x8C,0x4A,0x1A,0x26, + 0x07,0x91,0x41,0x8A,0x1C,0x27,0x06,0x91,0x81,0x8A,0x05,0x91,0x1E,0x21,0x41,0x5E, + 0x04,0x91,0x00,0x21,0x51,0x5E,0x03,0x91,0x16,0x21,0x18,0x22,0x86,0x5F,0xC7,0x5F, + 0x41,0x5E,0x82,0x5E,0x16,0xE0,0x60,0x30,0xC1,0x8A,0x04,0x22,0x00,0x26,0x07,0x91, + 0x01,0x8B,0x02,0x27,0x06,0x91,0x41,0x8B,0x05,0x91,0x7A,0x49,0x20,0x39,0x8A,0x5E, + 0x04,0x92,0x06,0x22,0x8A,0x5E,0x03,0x92,0x8E,0x5F,0xCF,0x5F,0x1C,0x21,0x1E,0x22, + 0x41,0x5E,0x82,0x5E,0x11,0x98,0x75,0x4C,0x00,0x68,0x41,0x18,0x11,0x98,0x01,0x60, + 0x12,0x98,0x00,0x68,0x81,0x18,0x12,0x98,0x01,0x60,0x60,0x8C,0x00,0x21,0x40,0x1E, + 0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0,0x20,0x8C,0x0A,0x00,0x40,0x1E,0x03,0x04, + 0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x01,0xF0,0x1C,0xF8,0x20,0x8C,0x64,0x21,0x0A,0x90, + 0x60,0x8C,0x09,0x90,0x0A,0x98,0x44,0x08,0x09,0x98,0x45,0x08,0x06,0x98,0x64,0x38, + 0x00,0x28,0x01,0xDC,0x06,0x98,0x08,0x1A,0x0F,0x90,0x05,0x98,0x64,0x38,0x00,0x28, + 0x01,0xDC,0x05,0x98,0x08,0x1A,0x0E,0x90,0x15,0x20,0x08,0x90,0x5D,0x48,0x0E,0x21, + 0x80,0x7F,0xC2,0x07,0x05,0xD0,0x80,0x07,0x01,0xD5,0x0D,0x21,0x01,0xE0,0x14,0x20, + 0x08,0x90,0x20,0x00,0xF8,0xF7,0xDA,0xFE,0x0A,0x99,0x08,0x1A,0x40,0x1E,0x0C,0x90, + 0x08,0x99,0x28,0x00,0xF8,0xF7,0xD2,0xFE,0x09,0x99,0x08,0x1A,0x40,0x1E,0x31,0x1E, + 0x0B,0x90,0x00,0xDD,0xA1,0x1B,0x00,0x2F,0x0D,0x97,0x01,0xDD,0xE8,0x1B,0x0D,0x90, + 0x11,0x98,0x00,0x68,0xA0,0x42,0x10,0x90,0x01,0xDB,0x00,0x1B,0x01,0xE0,0x00,0x1B, + 0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x22,0x06,0x00,0x56,0x43,0x37,0x00, + 0x88,0x42,0x0D,0xDD,0x42,0x1A,0x0F,0x98,0x50,0x43,0x86,0x19,0x10,0x00,0x50,0x43, + 0x0F,0x9A,0x50,0x43,0x0C,0x9A,0x12,0x1B,0x51,0x1A,0xF8,0xF7,0xA7,0xFE,0xC7,0x19, + 0x04,0x98,0x00,0x28,0x01,0xD1,0x30,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x38,0x00, + 0x01,0xE0,0x70,0x00,0xC0,0x1B,0x64,0x21,0xF8,0xF7,0x98,0xFE,0x07,0x99,0xC9,0x07, + 0x0A,0xD0,0x10,0x99,0xA1,0x42,0x03,0xDB,0x21,0x18,0x11,0x98,0x01,0x60,0x03,0xE0, + 0x11,0x99,0x20,0x1A,0x40,0x1E,0x08,0x60,0x12,0x98,0x07,0x68,0xAF,0x42,0x01,0xDB, + 0x78,0x1B,0x01,0xE0,0x78,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x21, + 0x04,0x00,0x4C,0x43,0x0D,0x99,0x26,0x00,0x88,0x42,0x0E,0xDD,0x41,0x1A,0x0E,0x98, + 0x0D,0x9A,0x48,0x43,0x04,0x19,0x08,0x00,0x48,0x43,0x0E,0x99,0x48,0x43,0x0B,0x99, + 0x49,0x1B,0x89,0x1A,0xF8,0xF7,0x6A,0xFE,0x86,0x19,0x03,0x98,0x00,0x28,0x01,0xD1, + 0x20,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x30,0x00,0x01,0xE0,0x60,0x00,0x80,0x1B, + 0x64,0x21,0xF8,0xF7,0x5B,0xFE,0x07,0x99,0x89,0x07,0x09,0xD5,0xAF,0x42,0x03,0xDB, + 0x29,0x18,0x12,0x98,0x01,0x60,0x03,0xE0,0x12,0x99,0x28,0x1A,0x40,0x1E,0x08,0x60, + 0x0E,0x48,0x02,0x99,0x42,0x8C,0x6B,0x46,0x51,0x1A,0x49,0x1E,0x0A,0x04,0x02,0x99, + 0x12,0x0C,0x06,0xC3,0x01,0x8C,0x02,0x98,0x02,0x9A,0x08,0x1A,0x40,0x1E,0x03,0x04, + 0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0,0x54,0xFF,0x13,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xA0,0x93,0x00,0x00,0x75,0x05,0x00,0x20,0x00,0x93,0x00,0x00, + 0xE0,0x95,0x00,0x00,0xA0,0x04,0x00,0x20,0xFF,0xB5,0x00,0x68,0x8E,0x46,0x84,0x46, + 0x70,0x46,0x1B,0x4B,0x1B,0x49,0x05,0x68,0x00,0x22,0x19,0x4E,0x54,0x00,0x24,0x3E, + 0x34,0x5B,0x66,0x46,0x00,0x20,0x34,0x1B,0x26,0x00,0x74,0x43,0x46,0x00,0x9E,0x5B, + 0xAE,0x1B,0x37,0x00,0x77,0x43,0xE6,0x19,0x8E,0x42,0x18,0xD2,0x51,0x00,0x10,0x4A, + 0x40,0x00,0x24,0x3A,0x52,0x5A,0x02,0x99,0x0A,0x60,0x0D,0x49,0x03,0x9A,0x16,0x39, + 0x0C,0x5A,0x14,0x60,0x09,0x5A,0x72,0x46,0x12,0x68,0x18,0x5A,0x51,0x18,0x09,0x1A, + 0x70,0x46,0x01,0x60,0x01,0x20,0x04,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x40,0x1C, + 0x0B,0x28,0xDB,0xD3,0x52,0x1C,0x07,0x2A,0xCF,0xD3,0x00,0x20,0xC0,0x43,0xF2,0xE7, + 0x0C,0x89,0x00,0x00,0x11,0x02,0x00,0x00,0xFE,0xB5,0x67,0x4D,0x65,0x48,0x00,0x26, + 0x29,0x00,0xFF,0x31,0x00,0x96,0x42,0x79,0x81,0x31,0x08,0x7A,0x33,0x00,0x00,0x2A, + 0x28,0xD1,0x00,0x28,0x26,0xD0,0x01,0x24,0x0A,0x20,0x60,0x43,0x47,0x19,0x38,0x00, + 0xFF,0x30,0x93,0x30,0xFC,0xF7,0x84,0xFC,0x00,0x28,0x17,0xD0,0x5B,0x48,0x81,0x7B, + 0x00,0x98,0x40,0x1C,0x81,0x42,0x14,0xD3,0xA9,0x19,0x27,0x22,0x00,0x90,0xFF,0x20, + 0x52,0x01,0x8D,0x30,0x89,0x18,0xC0,0x5D,0x3A,0x00,0xFF,0x32,0x48,0x71,0x76,0x1C, + 0x8D,0x32,0x03,0x20,0x01,0x23,0x69,0x46,0x00,0xF0,0x0E,0xFA,0x64,0x1C,0x09,0x2C, + 0xDA,0xDB,0x91,0xE0,0x49,0x7A,0x00,0x29,0x01,0xD1,0x00,0x28,0x75,0xD0,0x0B,0x20, + 0x80,0x01,0x00,0x24,0x2E,0x18,0x27,0x27,0x7F,0x01,0x28,0x19,0xC0,0x19,0x40,0x79, + 0x00,0x28,0x3C,0xD0,0x29,0x18,0x15,0x20,0x40,0x01,0x08,0x18,0xC1,0x78,0x00,0x29, + 0x02,0xD0,0xB2,0x7C,0x00,0x2A,0x11,0xD0,0x00,0x99,0x00,0x7B,0x49,0x1C,0x00,0x91, + 0x0A,0x21,0x48,0x43,0x42,0x19,0xFF,0x32,0xE7,0x32,0x02,0x20,0x03,0x23,0x69,0x46, + 0x00,0xF0,0xE2,0xF9,0x20,0x00,0x14,0x2C,0x1E,0xD0,0x1A,0xE0,0x0A,0x20,0x41,0x43, + 0x48,0x19,0x02,0x90,0xFF,0x30,0x93,0x30,0xFC,0xF7,0x32,0xFC,0x00,0x28,0x13,0xD0, + 0x00,0x98,0x02,0x9A,0x40,0x1C,0xFF,0x32,0x00,0x90,0x8D,0x32,0x03,0x20,0x02,0x23, + 0x69,0x46,0x00,0xF0,0xC9,0xF9,0x07,0xE0,0x29,0x18,0xC9,0x19,0x8A,0x79,0x40,0x1C, + 0x4A,0x71,0x08,0x28,0xF8,0xDB,0x64,0x1E,0x64,0x1C,0x08,0x2C,0xBD,0xDB,0x01,0x24, + 0x25,0x49,0x15,0x20,0x0A,0x19,0x40,0x01,0x10,0x18,0xC0,0x78,0x00,0x22,0x01,0x92, + 0x00,0x28,0x32,0xD0,0xB2,0x7C,0x00,0x2A,0x2F,0xD1,0x0A,0x22,0x50,0x43,0x45,0x18, + 0x28,0x00,0xFF,0x30,0x93,0x30,0xFC,0xF7,0x03,0xFC,0x00,0x28,0x25,0xD0,0x1B,0x48, + 0x00,0x9B,0x80,0x7B,0x5B,0x1C,0x98,0x42,0x26,0xD3,0x17,0x4A,0x00,0x20,0x11,0x18, + 0xC9,0x19,0x49,0x79,0xA1,0x42,0x0C,0xD0,0x00,0x29,0x07,0xD1,0xFF,0x21,0x8D,0x31, + 0x49,0x5D,0x10,0x18,0xC0,0x19,0x41,0x71,0x06,0xE0,0x12,0xE0,0x40,0x1C,0x08,0x28, + 0xED,0xDB,0x01,0x98,0x00,0x28,0x08,0xD0,0x2A,0x00,0xFF,0x32,0x00,0x93,0x8D,0x32, + 0x03,0x20,0x01,0x23,0x69,0x46,0x00,0xF0,0x7F,0xF9,0x64,0x1C,0x09,0x2C,0xBF,0xDB, + 0x02,0xE0,0x01,0x20,0x40,0x07,0x43,0x60,0x00,0x98,0x00,0xF0,0xB3,0xFC,0xFE,0xBC, + 0x08,0xBC,0x18,0x47,0x20,0x05,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00, + 0xFC,0xB5,0x4E,0x48,0x36,0x25,0x45,0x5F,0x15,0x20,0x84,0x46,0x4B,0x48,0x4C,0x4F, + 0x80,0x30,0x82,0x7D,0x86,0x46,0x4B,0x48,0x00,0x26,0x81,0x7F,0x0E,0x24,0xC8,0x07, + 0x05,0xD0,0x88,0x07,0x01,0xD5,0x0D,0x24,0x01,0xE0,0x14,0x20,0x84,0x46,0x00,0x21, + 0x27,0xE0,0x00,0x20,0x22,0xE0,0x91,0x42,0x05,0xD2,0x90,0x42,0x1D,0xD3,0xA3,0x1A, + 0x5B,0x1E,0x83,0x42,0x19,0xD3,0x63,0x46,0x9B,0x1A,0x5B,0x1E,0x8B,0x42,0x01,0xD2, + 0x90,0x42,0x12,0xD3,0x8B,0x42,0x03,0xD2,0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x0C,0xD3, + 0x0B,0x00,0x63,0x43,0x1B,0x18,0x9B,0x00,0xFB,0x58,0x1B,0x01,0x1B,0x0D,0xB3,0x42, + 0x00,0xDD,0x1E,0x00,0xAB,0x42,0x00,0xDA,0x1D,0x00,0x40,0x1C,0xA0,0x42,0xDA,0xD3, + 0x49,0x1C,0x61,0x45,0xD5,0xD3,0x1E,0x24,0x70,0x46,0x04,0x5F,0x2B,0x4B,0x2E,0x48, + 0xA0,0x33,0xC0,0x88,0x06,0x22,0x9A,0x5E,0x40,0x06,0x07,0xD5,0x70,0x46,0x80,0x8A, + 0x01,0x19,0x0C,0x04,0x10,0x1A,0x24,0x14,0x02,0x04,0x12,0x14,0x25,0x48,0xA0,0x30, + 0x01,0x69,0xA6,0x42,0x05,0xDD,0x74,0x46,0x64,0x8B,0xA1,0x42,0x05,0xDA,0x49,0x1C, + 0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E,0x01,0x61,0x1E,0x49,0xA0,0x31,0x49,0x69, + 0x95,0x42,0x04,0xDA,0x5A,0x88,0x91,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29, + 0x01,0xDD,0x49,0x1E,0x41,0x61,0x74,0x46,0xA4,0x8B,0x05,0x69,0x01,0x22,0x11,0x00, + 0xA5,0x42,0x00,0xDC,0x00,0x21,0x9B,0x88,0x40,0x69,0x98,0x42,0x00,0xDC,0x00,0x22, + 0x00,0x20,0x6B,0x46,0x18,0x70,0x59,0x70,0x00,0x29,0x9A,0x70,0x02,0xD0,0x00,0x2A, + 0x00,0xD0,0x01,0x20,0x6B,0x46,0x11,0x43,0xD8,0x70,0x01,0xD0,0x01,0x20,0x00,0xE0, + 0x00,0x20,0x6B,0x46,0x18,0x71,0x70,0x46,0x00,0x7B,0x69,0x46,0x08,0x5C,0x00,0x28, + 0x00,0xD0,0x80,0x20,0xFC,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x93,0x00,0x00, + 0xD4,0x02,0x10,0x40,0xA0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0xF8,0xB5,0x25,0x48, + 0x25,0x4C,0xC0,0x88,0x01,0x23,0x25,0x4D,0x41,0x06,0x09,0x20,0x80,0x01,0x24,0x4F, + 0x24,0x4E,0x5B,0x05,0x20,0x18,0x00,0x29,0x10,0xDA,0x81,0x69,0x69,0x61,0xC1,0x69, + 0xA9,0x61,0x41,0x6A,0x99,0x43,0xE9,0x61,0x81,0x6A,0x29,0x62,0x01,0x6A,0xE9,0x60, + 0x80,0x6B,0x28,0x61,0x1C,0x48,0xA8,0x62,0xE0,0x6A,0x10,0xE0,0x1B,0x49,0x4A,0x69, + 0x6A,0x61,0x8A,0x69,0xAA,0x61,0x0A,0x6A,0x9A,0x43,0xEA,0x61,0x4A,0x6A,0x2A,0x62, + 0xC9,0x69,0xE9,0x60,0x40,0x6B,0x28,0x61,0x15,0x48,0xA8,0x62,0xA0,0x6A,0xFF,0x21, + 0x41,0x31,0x48,0x43,0x39,0x00,0xF8,0xF7,0x69,0xFD,0x30,0x63,0x70,0x7C,0x00,0x28, + 0x04,0xD0,0x10,0x48,0xE8,0x60,0x01,0x20,0x00,0x05,0x28,0x61,0x60,0x6A,0xFF,0x21, + 0x41,0x31,0x48,0x43,0x39,0x00,0xF8,0xF7,0x59,0xFD,0xF0,0x62,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00,0xC0,0x90,0x00,0x40, + 0x10,0x27,0x00,0x00,0x64,0x05,0x00,0x20,0x00,0x00,0x08,0x84,0x80,0x94,0x00,0x00, + 0x00,0x00,0x04,0x82,0x41,0x20,0x01,0x00,0x07,0x48,0x41,0x7A,0x07,0x48,0x02,0x29, + 0x01,0xD9,0x00,0x6A,0x04,0xE0,0x02,0x29,0x01,0xD1,0xC0,0x69,0x00,0xE0,0x80,0x69, + 0x03,0x49,0x48,0x62,0x70,0x47,0x00,0x00,0xC0,0x01,0x00,0x20,0xC0,0x94,0x00,0x00, + 0xC0,0x90,0x00,0x40,0x0F,0x48,0x10,0xB4,0xC0,0x88,0x0F,0x4A,0x01,0x23,0x44,0x06, + 0x0E,0x48,0x00,0x21,0x1B,0x04,0x00,0x2C,0x02,0x61,0x05,0xDA,0x0C,0x4A,0x42,0x61, + 0x81,0x61,0xC1,0x61,0x03,0x62,0x07,0xE0,0x09,0x4A,0x64,0x3A,0x42,0x61,0x81,0x61, + 0xC1,0x61,0x03,0x62,0x06,0x4A,0xC8,0x3A,0x42,0x62,0x81,0x62,0xC1,0x62,0x10,0xBC, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x00,0x01,0x03,0x40,0xA1,0x00,0x40, + 0x2C,0x01,0x01,0x00,0x10,0x49,0x10,0xB4,0x0A,0x7D,0x10,0x48,0x82,0x77,0x4A,0x7D, + 0xC2,0x77,0x82,0x7F,0x0E,0x48,0xD3,0x07,0x0A,0xD0,0x93,0x07,0x0D,0x4A,0x03,0xD5, + 0x0D,0x23,0x03,0x73,0x00,0x23,0x02,0xE0,0x14,0x23,0x03,0x73,0x01,0x23,0x53,0x72, + 0x8A,0x7D,0x42,0x73,0xCA,0x7D,0x82,0x73,0x0A,0x7E,0xC2,0x73,0x4A,0x7E,0x02,0x74, + 0x89,0x7E,0x41,0x74,0x10,0xBC,0x70,0x47,0x00,0x93,0x00,0x00,0xA0,0x04,0x00,0x20, + 0xE0,0x04,0x00,0x20,0x64,0x05,0x00,0x20,0xFF,0xB5,0x05,0x00,0x14,0x00,0x19,0x00, + 0x10,0x00,0x81,0xB0,0xF9,0xF7,0x9C,0xFF,0x00,0x28,0x08,0xD0,0x02,0x98,0x02,0x99, + 0x00,0x68,0x40,0x1E,0x08,0x60,0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x29,0x48, + 0x80,0x7F,0xC0,0x07,0x22,0xD0,0xE0,0x79,0x05,0x28,0x1D,0xD0,0x09,0x28,0x1D,0xD1, + 0x25,0x4F,0x6D,0x08,0x3E,0x00,0x6D,0x00,0x01,0x20,0xFF,0x36,0x22,0x78,0x81,0x36, + 0x0E,0xE0,0x0A,0x21,0x41,0x43,0xC9,0x19,0xFF,0x31,0xE1,0x31,0x8B,0x79,0x9A,0x42, + 0x05,0xD1,0x0B,0x89,0x63,0x80,0xCB,0x79,0x63,0x70,0x49,0x89,0xA1,0x80,0x40,0x1C, + 0x71,0x7A,0x81,0x42,0xED,0xDA,0x01,0xE0,0x01,0x20,0x05,0x43,0x0F,0x21,0xA8,0x07, + 0x89,0x06,0x88,0x43,0x21,0x78,0x62,0x78,0x09,0x07,0x89,0x08,0x08,0x43,0x13,0x49, + 0x92,0x06,0x08,0x40,0x61,0x88,0x12,0x0C,0x89,0x05,0x89,0x09,0x08,0x43,0x3F,0x21, + 0x89,0x02,0x88,0x43,0x10,0x43,0x02,0x04,0x92,0x0E,0x0F,0x2A,0x03,0xD9,0x88,0x43, + 0x0F,0x21,0x89,0x02,0x40,0x18,0xA1,0x88,0x80,0x0A,0x80,0x02,0x89,0x05,0x89,0x0D, + 0x08,0x43,0x02,0x99,0x01,0x22,0x09,0x68,0x52,0x07,0x89,0x00,0x89,0x18,0x48,0x60, + 0xA9,0xE7,0x00,0x00,0xA0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0xFF,0x00,0xFC, + 0x10,0x49,0x10,0xB5,0x88,0x7C,0x00,0x28,0x14,0xD0,0x00,0x09,0x00,0x01,0x00,0x23, + 0x01,0x22,0x40,0x28,0x0B,0xD0,0x80,0x28,0x0C,0xD1,0x8A,0x73,0xCA,0x73,0x0A,0x48, + 0x0A,0x74,0x0A,0x73,0x00,0x78,0x00,0x28,0x07,0xD1,0x4B,0x74,0x06,0xE0,0xCB,0x72, + 0x0A,0x73,0x4B,0x73,0x10,0xBC,0x08,0xBC,0x18,0x47,0x4A,0x74,0x00,0x20,0x00,0xF0, + 0xC7,0xF9,0xF7,0xE7,0x64,0x05,0x00,0x20,0xA0,0x95,0x00,0x00,0xF0,0x41,0x2D,0xE9, + 0x00,0xC0,0xA0,0xE1,0x1C,0x50,0x9D,0xE5,0x18,0x60,0x9D,0xE5,0x01,0x00,0x5C,0xE1, + 0x01,0x40,0xA0,0xE1,0x02,0x00,0xA0,0xE1,0x03,0x70,0xA0,0xE1,0x06,0x00,0x00,0x3A, + 0x04,0x10,0xA0,0xE1,0x81,0xE1,0xFF,0xEB,0xB0,0x00,0xC6,0xE1,0x04,0x10,0xA0,0xE1, + 0x07,0x00,0xA0,0xE1,0x7D,0xE1,0xFF,0xEB,0xB0,0x00,0xC5,0xE1,0xF0,0x41,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0xF0,0x47,0x2D,0xE9,0x00,0x40,0xA0,0xE1,0x20,0x80,0x8D,0xE2, + 0x28,0x60,0x8D,0xE2,0x01,0x01,0x98,0xE8,0x60,0x00,0x96,0xE8,0x02,0x00,0x51,0xE1, + 0xB2,0x50,0xC4,0xB1,0xB4,0x60,0xC4,0xB1,0x11,0x00,0x00,0xBA,0x03,0x00,0x51,0xE1, + 0xB2,0x00,0xC4,0xA1,0xB4,0x80,0xC4,0xA1,0x0D,0x00,0x00,0xAA,0x02,0x70,0x41,0xE0, + 0x05,0x00,0x40,0xE0,0x97,0x00,0x00,0xE0,0x02,0x90,0x43,0xE0,0x09,0x10,0xA0,0xE1, + 0x66,0xE1,0xFF,0xEB,0x05,0x00,0x80,0xE0,0xB2,0x00,0xC4,0xE1,0x06,0x00,0x48,0xE0, + 0x97,0x00,0x00,0xE0,0x09,0x10,0xA0,0xE1,0x60,0xE1,0xFF,0xEB,0x06,0x00,0x80,0xE0, + 0xB4,0x00,0xC4,0xE1,0xF0,0x47,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0xF0,0xB4,0x8C,0x79, + 0x14,0x4B,0x00,0x26,0x22,0x07,0x92,0x08,0x1A,0x40,0xCB,0x79,0x92,0x0A,0x92,0x02, + 0x5B,0x07,0x09,0xD5,0x10,0x4D,0xAB,0x89,0x00,0x2B,0x05,0xD0,0x9F,0x05,0xBF,0x0D, + 0x3A,0x43,0x64,0x00,0x64,0x19,0xE3,0x81,0x3F,0x23,0x9B,0x02,0x9A,0x43,0xCB,0x79, + 0x80,0x00,0x9B,0x06,0x1B,0x0C,0x1A,0x43,0x01,0x23,0x5B,0x07,0xC0,0x18,0x42,0x60, + 0xC8,0x79,0xC0,0x06,0x80,0x0F,0x03,0xD0,0x04,0x48,0x01,0x21,0xC1,0x76,0x06,0x77, + 0xF0,0xBC,0x70,0x47,0xFF,0xFF,0x00,0xFC,0x40,0x00,0x00,0x20,0xA0,0x04,0x00,0x20, + 0x30,0xB4,0x0E,0x25,0x68,0x43,0x0B,0x4C,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06, + 0x00,0x0A,0x09,0x0E,0x82,0x18,0xC9,0x18,0x00,0x20,0x4B,0x1E,0xC0,0x43,0xFF,0x2B, + 0x06,0xD2,0x53,0x1E,0xFF,0x2B,0x03,0xD2,0x10,0x02,0x08,0x43,0x60,0x53,0x00,0x20, + 0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0x10,0xB4,0x0E,0x24,0x60,0x43,0x03,0x4B, + 0x40,0x18,0x40,0x00,0x1A,0x52,0x10,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0x0E,0x23,0x58,0x43,0x30,0xB4,0x0B,0x4C,0x40,0x18,0x43,0x00,0xE0,0x5A,0x01,0x06, + 0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18,0x00,0x20,0x4D,0x1E,0xC0,0x43,0xFF,0x2D, + 0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2,0x10,0x02,0x08,0x43,0xE0,0x52,0x00,0x20, + 0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0x70,0xB4,0x12,0x4A,0x11,0x4D,0x52,0x7D, + 0x00,0x21,0x20,0x3D,0x14,0x02,0x14,0x43,0x0E,0x22,0x50,0x43,0x0C,0x4B,0x86,0x18, + 0x12,0xE0,0xAA,0x7D,0x8A,0x42,0x0D,0xD0,0xEA,0x7D,0x8A,0x42,0x0A,0xD0,0x2A,0x7E, + 0x8A,0x42,0x07,0xD0,0x6A,0x7E,0x8A,0x42,0x04,0xD0,0xAA,0x7E,0x8A,0x42,0x01,0xD0, + 0x42,0x00,0x9C,0x52,0x40,0x1C,0x49,0x1C,0x86,0x42,0xEA,0xD8,0x70,0xBC,0x70,0x47, + 0x00,0x00,0x10,0x40,0x20,0x93,0x00,0x00,0x70,0xB4,0x12,0x4A,0x11,0x4B,0x52,0x7D, + 0x00,0x21,0x20,0x3B,0x15,0x02,0x15,0x43,0xFF,0x26,0x0D,0x4C,0x27,0x36,0x12,0xE0, + 0x9A,0x7D,0x8A,0x42,0x0D,0xD0,0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E,0x8A,0x42, + 0x07,0xD0,0x5A,0x7E,0x8A,0x42,0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00, + 0xA5,0x52,0x0E,0x30,0x49,0x1C,0xB0,0x42,0xEA,0xD3,0x70,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0x20,0x93,0x00,0x00,0x02,0x04,0x04,0x49,0x02,0x43,0x00,0x20, + 0x40,0x1C,0x04,0xC1,0xB5,0x28,0xFB,0xD3,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0x05,0x48,0x07,0x49,0xC0,0x88,0x42,0x06,0x04,0x48,0x01,0xD5,0x40,0x68,0x00,0xE0, + 0x00,0x68,0x48,0x60,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0xC0,0x93,0x00,0x00, + 0x00,0x90,0x00,0x40,0x03,0x00,0xF0,0xB5,0x1D,0x49,0x05,0x20,0xC0,0x01,0x0A,0x18, + 0x0B,0x20,0x80,0x01,0x0D,0x18,0xC0,0x31,0x18,0x4C,0x4F,0x6A,0x0E,0x6A,0x88,0x6A, + 0x00,0xF0,0xF6,0xFA,0x06,0x04,0x0A,0x14,0x18,0x20,0x24,0x11,0xC8,0x68,0x20,0x62, + 0x50,0x6B,0x60,0x62,0x02,0x20,0x04,0xE0,0xC8,0x69,0x20,0x62,0x68,0x68,0x60,0x62, + 0x04,0x20,0xE0,0x62,0x66,0x63,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x08,0x69,0x20,0x62, + 0x90,0x6B,0x02,0xE0,0x48,0x69,0x20,0x62,0xD0,0x6B,0x60,0x62,0x04,0x20,0xE0,0x62, + 0x67,0x63,0xF0,0xE7,0x07,0x49,0x21,0x62,0x24,0x21,0x02,0xE0,0x89,0x69,0x21,0x62, + 0x29,0x68,0x61,0x62,0x05,0x21,0xE1,0x62,0x60,0x63,0xE4,0xE7,0x80,0x90,0x00,0x40, + 0x00,0x93,0x00,0x00,0x01,0x02,0x00,0x00,0x70,0xB4,0x01,0x23,0x5B,0x07,0x58,0x68, + 0x59,0x68,0xC0,0x02,0xC0,0x0E,0x09,0x02,0x4C,0x0F,0x18,0x49,0x01,0x26,0x00,0x22, + 0x00,0x2C,0x10,0xD0,0xCC,0x79,0x35,0x00,0x00,0x2C,0x00,0xD0,0x00,0x25,0x85,0x42, + 0x07,0xD0,0x45,0x08,0x64,0x08,0xA5,0x42,0x03,0xD1,0xC8,0x71,0x1A,0x60,0x70,0xBC, + 0x70,0x47,0xC8,0x71,0x00,0xE0,0xCA,0x71,0x58,0x68,0x00,0x04,0x00,0x0F,0x58,0x68, + 0x03,0xD0,0x00,0x04,0x00,0x0F,0x40,0x1C,0x0C,0xE0,0xC0,0x02,0xC0,0x0E,0x01,0xD0, + 0x01,0x20,0x07,0xE0,0x88,0x79,0x00,0x28,0x02,0xD1,0x01,0x20,0x8E,0x71,0x02,0xE0, + 0x0F,0x22,0x00,0x20,0x8A,0x71,0x18,0x60,0xE1,0xE7,0x00,0x00,0x64,0x05,0x00,0x20, + 0x0A,0x4A,0x10,0xB5,0xD1,0x88,0x0A,0x4B,0x40,0x24,0x00,0x28,0x03,0xD0,0x21,0x43, + 0x08,0x48,0xD1,0x80,0x03,0xE0,0x07,0x48,0xA1,0x43,0xC4,0x38,0xD1,0x80,0x18,0x60, + 0xFF,0xF7,0xD4,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0x78,0x06,0x00,0x20,0xB0,0x94,0x00,0x00,0xFE,0xB5,0x04,0x00,0x32,0x48,0x06,0x6A, + 0x47,0x6A,0x41,0x6B,0x01,0x91,0xC0,0x6A,0x00,0x90,0x00,0x20,0xFF,0xF7,0x5A,0xFF, + 0xFA,0xF7,0xA4,0xFC,0x25,0x00,0x37,0xE0,0x68,0x1E,0x84,0x42,0x01,0xD1,0xFA,0xF7, + 0xC7,0xFC,0xFA,0xF7,0x69,0xFC,0xFA,0xF7,0x17,0xFD,0xA8,0x00,0x05,0x21,0xF8,0xF7, + 0x4D,0xFA,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x04,0x20,0x21,0xE0,0x68,0x00, + 0x28,0x18,0x05,0x21,0xF8,0xF7,0x42,0xFA,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00, + 0x03,0x20,0x16,0xE0,0x68,0x00,0x05,0x21,0xF8,0xF7,0x38,0xFA,0xA0,0x42,0x03,0xD8, + 0x01,0x22,0x11,0x00,0x02,0x20,0x0C,0xE0,0x05,0x21,0x28,0x00,0xF8,0xF7,0x2E,0xFA, + 0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x10,0x00,0x02,0xE0,0x01,0x22,0x11,0x00, + 0x00,0x20,0x02,0x23,0xFA,0xF7,0x32,0xFA,0x64,0x1E,0xC5,0xD2,0x0F,0x48,0x44,0x88, + 0x03,0xE0,0xFA,0xF7,0x31,0xFC,0xFA,0xF7,0xDF,0xFC,0x64,0x1E,0xF9,0xD2,0xFA,0xF7, + 0x55,0xFC,0x09,0x48,0x06,0x62,0x47,0x62,0x01,0x99,0x41,0x63,0x00,0x99,0xC1,0x62, + 0x07,0x48,0x00,0x21,0xC1,0x82,0x41,0x71,0x01,0x71,0x81,0x82,0xC8,0x21,0x81,0x63, + 0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x80,0x90,0x00,0x40,0xE0,0x95,0x00,0x00, + 0x64,0x05,0x00,0x20,0x30,0xB4,0x0D,0x4D,0xEC,0x7B,0x00,0x2C,0x13,0xD0,0x02,0x68, + 0x0B,0x68,0xA4,0x07,0x03,0xD5,0x2C,0x8C,0xA2,0x1A,0x52,0x1E,0x02,0x60,0xEC,0x7B, + 0x64,0x07,0x03,0xD5,0x6C,0x8C,0xE3,0x1A,0x5B,0x1E,0x0B,0x60,0xEC,0x7B,0xE4,0x07, + 0x01,0xD0,0x03,0x60,0x0A,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x93,0x00,0x00, + 0x02,0x49,0x00,0x03,0x40,0x18,0xC0,0x68,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47,0x7D,0x06,0x00,0x20,0x30,0xB4,0x05,0x03, + 0x05,0x48,0x02,0x9C,0x28,0x18,0x02,0x60,0x41,0x60,0x00,0x2B,0x00,0xD0,0x03,0x61, + 0x84,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x02,0x4A,0x00,0x03, + 0x80,0x18,0x01,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x05,0x49,0x00,0x03, + 0x40,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x11,0x43,0x81,0x60,0x02,0x49,0x00,0x20, + 0x08,0x70,0x70,0x47,0x00,0x20,0x00,0x40,0x7D,0x06,0x00,0x20,0x01,0x03,0x04,0x48, + 0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x91,0x43,0x81,0x60,0x70,0x47,0x00,0x00, + 0x00,0x20,0x00,0x40,0x0F,0x49,0x89,0x7B,0x81,0x42,0x00,0xD2,0x08,0x00,0x01,0x22, + 0x52,0x07,0x01,0x28,0x0C,0xD1,0x91,0x68,0x8B,0x0F,0xDB,0x07,0x04,0xD0,0x89,0x00, + 0x89,0x08,0x83,0x07,0xC9,0x18,0x01,0xE0,0x89,0x00,0x89,0x08,0x51,0x60,0x07,0xE0, + 0x01,0x28,0x05,0xD9,0x01,0x21,0xC9,0x07,0x83,0x05,0x9B,0x0D,0x19,0x43,0xF5,0xE7, + 0x10,0x60,0x70,0x47,0x00,0x93,0x00,0x00,0x38,0xB5,0x00,0x24,0x71,0x20,0x6B,0x46, + 0x00,0x94,0xD8,0x70,0x00,0x98,0x01,0x25,0x6D,0x07,0x68,0x60,0x0D,0x48,0x09,0x22, + 0x21,0x00,0xF8,0xF7,0x8F,0xF9,0x0B,0x48,0x09,0x22,0x00,0x21,0x09,0x38,0xF8,0xF7, + 0x89,0xF9,0x08,0x49,0x49,0x1F,0x88,0x7B,0x00,0x28,0x08,0xD0,0x00,0x20,0x03,0xE0, + 0x82,0x00,0x52,0x19,0x94,0x60,0x40,0x1C,0x8A,0x7B,0x82,0x42,0xF8,0xDC,0x38,0xBC, + 0x08,0xBC,0x18,0x47,0x25,0x05,0x00,0x20,0xF0,0xB5,0x00,0x24,0x25,0x00,0x20,0x00, + 0x01,0x21,0x89,0xB0,0x49,0x07,0x08,0x94,0x4F,0x68,0x61,0x4E,0xB9,0x0F,0x89,0x07, + 0x7E,0xD5,0x20,0x22,0x00,0x21,0x68,0x46,0xF8,0xF7,0x64,0xF9,0x07,0x21,0xB8,0x01, + 0x49,0x05,0x40,0x08,0x08,0x40,0x31,0x00,0x88,0x43,0x39,0x07,0x09,0x0C,0x08,0x43, + 0x08,0x90,0x00,0x20,0x33,0xE0,0x01,0x22,0x81,0x00,0x52,0x07,0x89,0x18,0x89,0x68, + 0x8E,0x00,0x32,0x0F,0x2A,0xD0,0x32,0x0F,0x94,0x46,0x92,0x00,0x6B,0x46,0xD2,0x18, + 0x40,0x3A,0xD3,0x6B,0x36,0x0F,0x1B,0x01,0x1B,0x09,0x36,0x07,0x33,0x43,0x0F,0x27, + 0x3F,0x06,0x0E,0x04,0xB6,0x08,0xBB,0x43,0x3E,0x40,0x33,0x43,0x49,0x4E,0x33,0x40, + 0x8E,0x01,0xB6,0x0D,0x36,0x03,0x33,0x43,0x1B,0x0B,0x89,0x05,0x1B,0x03,0x89,0x0D, + 0x0B,0x43,0xD3,0x63,0x62,0x46,0x52,0x1E,0x01,0x23,0x93,0x40,0x9A,0x05,0x92,0x0D, + 0x71,0x46,0x11,0x43,0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x08,0x91,0x40,0x1C,0x08,0x99, + 0x8E,0x46,0x09,0x04,0x09,0x0F,0x81,0x42,0xC5,0xD8,0x08,0x98,0x01,0x27,0x00,0x04, + 0x00,0x0F,0x7B,0x07,0x0F,0xE0,0x82,0x00,0xD2,0x18,0x92,0x68,0x3E,0x00,0x92,0x00, + 0x12,0x0F,0x52,0x1E,0x96,0x40,0xF2,0x06,0xD2,0x0A,0x64,0x1C,0x11,0x43,0x24,0x06, + 0x24,0x0E,0x40,0x1C,0x08,0x91,0x08,0x99,0x0A,0x04,0x0E,0x02,0x12,0x0F,0x76,0x0F, + 0x92,0x19,0x82,0x42,0xE7,0xD8,0x00,0x21,0x08,0x00,0x6E,0x46,0x82,0x00,0xB2,0x58, + 0x00,0x2A,0x03,0xD0,0x8F,0x00,0xFF,0x18,0xBA,0x60,0x49,0x1C,0x40,0x1C,0x08,0x28, + 0xF4,0xD3,0x23,0x49,0x08,0x98,0x88,0x43,0x29,0x07,0x09,0x0C,0x08,0x43,0x00,0xE0, + 0x07,0xE0,0x07,0x21,0x49,0x05,0x88,0x43,0x61,0x07,0x09,0x0A,0x08,0x43,0x08,0x90, + 0x2B,0xE0,0xB9,0x0F,0xC9,0x07,0x25,0xD0,0x01,0x23,0x5B,0x07,0x58,0x68,0x19,0x4C, + 0x82,0x00,0x11,0x0F,0x09,0x07,0x21,0x40,0x84,0x01,0xA4,0x0D,0x24,0x03,0x21,0x43, + 0x84,0x05,0x09,0x0B,0x09,0x03,0xA4,0x0D,0x21,0x43,0x0F,0x24,0x24,0x06,0x00,0x04, + 0x80,0x08,0xA1,0x43,0x20,0x40,0x01,0x43,0x08,0x0F,0x09,0xD0,0x12,0x0F,0x52,0x1E, + 0x01,0x20,0x90,0x40,0x80,0x05,0x80,0x0D,0xB0,0x43,0x5A,0x14,0x80,0x18,0x08,0x90, + 0x99,0x60,0x02,0xE0,0x01,0x21,0x49,0x07,0x88,0x60,0x71,0x20,0x08,0xAB,0xD8,0x70, + 0x08,0x99,0x40,0x07,0x41,0x60,0x09,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0xF0,0x00,0x00,0xFF,0x0F,0x00,0xFF,0x08,0x48,0x10,0xB5,0x04,0x04,0x24,0x0C, + 0x07,0x49,0x00,0x22,0x20,0x00,0xF8,0xF7,0xA3,0xF8,0x05,0x4A,0x05,0x49,0x20,0x00, + 0x00,0x23,0xF8,0xF7,0xA5,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00, + 0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x10,0x70,0xB5,0x05,0x00,0x08,0x48,0x00,0x22, + 0x04,0x04,0x24,0x0C,0x40,0x21,0x20,0x00,0xF8,0xF7,0x8A,0xF8,0x40,0x22,0x29,0x00, + 0x20,0x00,0x00,0x23,0xF8,0xF7,0x8C,0xF8,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xC0,0x92,0x00,0x00,0x02,0x4B,0x58,0x60,0x99,0x60,0x1A,0x60,0x70,0x47,0x00,0x00, + 0x00,0x30,0x00,0x40,0x01,0x04,0x00,0xB5,0x03,0x48,0x02,0x22,0x09,0x0C,0xFF,0xF7, + 0xF1,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00,0xE1,0x04,0x00,0x00,0x02,0x48,0x01,0x68, + 0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x48,0x01,0x68, + 0x49,0x08,0x49,0x00,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x49,0x02,0x22, + 0x0A,0x61,0x88,0x60,0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40,0x01,0x49,0x01,0x20, + 0x08,0x70,0x70,0x47,0x7C,0x06,0x00,0x20,0x00,0x04,0x00,0x0C,0x01,0x21,0x89,0x07, + 0x08,0x61,0x70,0x47,0x01,0x21,0x89,0x07,0x88,0x68,0x8A,0x15,0x90,0x43,0x88,0x60, + 0x70,0x47,0x70,0xB4,0x03,0xAC,0x30,0xCC,0x06,0x68,0x96,0x42,0x01,0xDB,0x32,0x00, + 0x00,0xE0,0x02,0x60,0x9A,0x42,0x00,0xDD,0x03,0x60,0x08,0x68,0xA0,0x42,0x00,0xDA, + 0x0C,0x60,0x08,0x68,0xA8,0x42,0x00,0xDD,0x0D,0x60,0x70,0xBC,0x70,0x47,0x00,0x47, + 0x78,0x47,0xC0,0x46,0x01,0xC0,0x5E,0xE5,0x0C,0x00,0x53,0xE1,0x03,0x30,0xDE,0x37, + 0x0C,0x30,0xDE,0x27,0x83,0xC0,0x8E,0xE0,0x1C,0xFF,0x2F,0xE1,0x10,0xB5,0xF8,0xF7, + 0x57,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x25,0x00,0x6F,0x00,0xB9,0x00,0xF0,0x00, + 0x27,0x01,0x71,0x01,0xBB,0x01,0x20,0x00,0x6C,0x00,0xB8,0x00,0x04,0x01,0x50,0x01, + 0x89,0x01,0xC2,0x01,0x0E,0x02,0x5A,0x02,0xA6,0x02,0xF2,0x02,0x24,0x00,0x72,0x00, + 0xBD,0x00,0x09,0x01,0x55,0x01,0x90,0x01,0xCC,0x01,0x19,0x02,0x59,0x02,0xAE,0x02, + 0xF4,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x01,0x00,0x00,0x00,0x01,0x00, + 0x01,0x00,0x01,0x00,0x89,0x08,0x49,0x1E,0x49,0x04,0x01,0x22,0x49,0x08,0xD2,0x07, + 0x89,0x18,0x00,0x04,0x00,0x0C,0x01,0x43,0x03,0x48,0x41,0x61,0x41,0x69,0x00,0x29, + 0xFC,0xDB,0x80,0x6B,0x70,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0xFF,0x10,0x01,0xE2,0x01,0x20,0x52,0xE2,0x01,0x10,0xC0,0xE4, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0x01,0x18,0xA0,0xE1,0x21,0x18,0xA0,0xE1,0x01,0x20,0x52,0xE2, + 0xB2,0x10,0xC0,0xE0,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x42,0x21,0xA0,0xE1, + 0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0x01,0x20,0x52,0xE2,0x04,0x10,0x80,0xE4, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0x01,0x30,0xD1,0xE4,0x01,0x20,0x52,0xE2,0x01,0x30,0xC0,0xE4,0xFB,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0xB2,0x30,0xD1,0xE0,0x01,0x20,0x52,0xE2,0xB2,0x30,0xC0,0xE0,0xFB,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x42,0x21,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0x04,0x30,0x91,0xE4,0x01,0x20,0x52,0xE2,0x04,0x30,0x80,0xE4,0xFB,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0xB2,0x30,0xD1,0xE0,0x01,0x20,0x52,0xE2,0x04,0x30,0x80,0xE4,0xFB,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x41,0x11,0xA0,0xE1,0x01,0x10,0x51,0xE2,0x1E,0xFF,0x2F,0x31, + 0x00,0x20,0xA0,0xE3,0x01,0x10,0x51,0xE2,0x04,0x20,0x80,0xE4,0xFC,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x70,0x20,0x9F,0xE5,0x30,0x00,0x2D,0xE9,0x64,0xC0,0x9F,0xE5, + 0x00,0x00,0x92,0xE5,0x64,0x40,0x9F,0xE5,0x64,0x30,0x9F,0xE5,0x25,0x00,0xA0,0xE3, + 0x01,0x0C,0x80,0xE2,0x00,0x11,0x92,0xE7,0x80,0x50,0x84,0xE0,0xB0,0x10,0xC5,0xE1, + 0x00,0x11,0x9C,0xE7,0x80,0x50,0x83,0xE0,0x01,0x00,0x50,0xE2,0xB0,0x10,0xC5,0xE1, + 0xF7,0xFF,0xFF,0x5A,0x30,0x00,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x24,0x20,0x9F,0xE5, + 0x30,0x10,0x9F,0xE5,0x25,0x00,0xA0,0xE3,0x01,0x0C,0x80,0xE2,0x00,0x31,0x92,0xE7, + 0x80,0xC0,0x81,0xE0,0x23,0x38,0xA0,0xE1,0x01,0x00,0x50,0xE2,0xB0,0x30,0xCC,0xE1, + 0xF9,0xFF,0xFF,0x5A,0x1E,0xFF,0x2F,0xE1,0xD4,0x02,0x10,0x40,0x00,0x10,0x10,0x40, + 0x7E,0x06,0x00,0x20,0x00,0x00,0x00,0x10,0xD2,0x02,0x00,0x10,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0B,0x38,0x30,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,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,0xFF,0x00,0x00,0x00, + 0x00,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x01,0x08,0x05,0x00, + 0x00,0x00,0x00,0x00,0x03,0x02,0x13,0x14,0xFF,0xFF,0xFF,0x00,0x00,0xC8,0x05,0x1E, + 0xE0,0x01,0x20,0x03,0xC8,0x32,0x00,0x00,0x8C,0x3C,0x00,0x00,0x8C,0x3C,0x00,0x00, + 0xE0,0x93,0x04,0x00,0x01,0x5A,0x1A,0x04,0x1A,0x04,0x00,0x00,0x04,0xC8,0x65,0x65, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x78,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x66,0x00,0x67,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x32,0x00, + 0x2C,0x01,0x2C,0x01,0x00,0x00,0x00,0x00,0x50,0x00,0x5A,0x00,0x32,0x00,0xB8,0x0B, + 0x50,0x00,0x5A,0x00,0x32,0x00,0xE8,0x03,0x64,0x00,0x14,0x00,0x00,0x00,0x00,0x00, + 0x05,0x02,0x05,0x0A,0x01,0x01,0x04,0x00,0x01,0x02,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x01,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x01,0x00,0x00, + 0x00,0x0E,0x00,0x00,0x80,0x0F,0x00,0x00,0x60,0x0F,0x00,0x00,0x9F,0xB9,0x2C,0x01, + 0x14,0x00,0x14,0x00,0x64,0x64,0x64,0x64,0x46,0x00,0x32,0x00,0x32,0x00,0x05,0x00, + 0x19,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x46,0x00,0x5E,0x01,0x90,0x01,0x90,0x01, + 0x2C,0x01,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00, + 0x0A,0x01,0x32,0x00,0x88,0x13,0xE8,0x03,0x0A,0x00,0x96,0x96,0x96,0x96,0x00,0x96, + 0x96,0x96,0xB4,0x00,0xFF,0x0F,0x90,0x01,0x50,0x00,0x1E,0x00,0xFA,0xFA,0x19,0x96, + 0x00,0x05,0x04,0x0A,0x0A,0x06,0x20,0x03,0x46,0x00,0x05,0x19,0x00,0x02,0x0F,0x00, + 0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xDC,0x00,0x05,0x02,0x01,0x01,0x01,0x00,0x02,0x03,0x01,0x00,0x05,0x05,0x0A,0x0A, + 0x0F,0x0F,0x14,0x14,0x64,0x55,0x01,0x00,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,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x41,0x22,0x01,0x00, + 0x1C,0x1C,0x88,0x00,0x10,0x3F,0x10,0x3F,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00, + 0x9F,0x99,0x5E,0x01,0x14,0x00,0x19,0x00,0x64,0x64,0x64,0x64,0x46,0x00,0x32,0x00, + 0x96,0x00,0x14,0x00,0x32,0x00,0x14,0x00,0x01,0x00,0x0A,0x02,0x50,0x00,0x90,0x01, + 0x90,0x01,0x90,0x01,0x90,0x01,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00, + 0x10,0x00,0x10,0x00,0x0A,0x01,0x32,0x00,0x88,0x13,0xF4,0x01,0x0A,0x00,0x96,0x96, + 0x96,0x96,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x0F,0x90,0x01,0xC8,0x00,0x1E,0x00, + 0xFA,0xFA,0x0D,0xA0,0x00,0x05,0x04,0x0A,0x02,0x06,0xE8,0x03,0x46,0x00,0x05,0x1E, + 0x00,0x02,0x1E,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xDC,0x00,0x05,0x06,0x01,0x01,0x01,0x00,0x03,0x03,0x03,0x00, + 0x05,0x05,0x0A,0x0A,0x0F,0x0F,0x14,0x14,0x64,0x5A,0x01,0x00,0x03,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03, + 0x41,0x22,0x01,0x00,0x12,0x12,0x88,0x00,0x10,0x3F,0x10,0x3F,0x00,0x00,0x00,0x00, + 0x01,0x00,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00, + 0x8C,0x00,0x0F,0x00,0x05,0x00,0x00,0x00,0x0A,0x00,0xC8,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x96,0x00,0xFA,0x00,0x00,0x00, + 0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x29,0x00,0x00,0x00, + 0x25,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x64,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x0A,0x00,0x00,0x5A,0x5A,0x5A,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x32,0x00,0x50,0x00,0x32,0x00,0x50,0x00,0x0A,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x41,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x15,0x0E,0x15,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x8D,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x22,0x01,0x00, + 0x00,0x00,0x10,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x1C,0x1C,0x88,0x00, + 0x30,0x3F,0x30,0x3F,0x64,0x14,0x10,0x00,0x00,0x00,0x04,0x81,0x00,0x00,0xFF,0x0F, + 0x01,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xC8,0x00,0x40,0x06,0x00,0x00,0x08,0x00, + 0x11,0x30,0x10,0x00,0x61,0x80,0x01,0x00,0xFF,0xFF,0xFF,0x10,0xFF,0xFF,0xFF,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x54,0x55,0x45,0x00,0x10,0x10,0x00,0x00,0x00,0x70,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x14,0x00,0x00,0x0C,0x0C,0x06,0x00, + 0x00,0x01,0x03,0x02,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0xC0,0xDA,0x00,0x00, + 0x50,0x31,0x20,0x01,0x52,0x38,0x22,0x08,0x50,0x31,0x20,0x01,0x50,0x31,0x20,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, + 0xD0,0x07,0x08,0x00,0x12,0x12,0xC8,0x01,0x90,0x81,0x0C,0x00,0x00,0x08,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x03,0xC8,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x00,0x64,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,0x10,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x24,0x24, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x24,0x24,0x3F,0x24,0x24,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x24,0x24,0x3F,0x24,0x24,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x26,0x24,0x24,0x3F,0x24,0x24,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x26,0x24,0x24,0x3F,0x24,0x24,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, + 0x26,0x24,0x24,0x3F,0x24,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26, + 0x24,0x3F,0x24,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x24,0x3F, + 0x24,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x24,0x3F,0x24,0x26, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x24,0x3F,0x24,0x26,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x24,0x3F,0x24,0x26,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x26,0x24,0x3F,0x24,0x26,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x26,0x24,0x3F,0x24,0x24,0x24,0x28,0x28,0x28,0x28,0x28,0x28,0x28, + 0x24,0x24,0x24,0x3F,0x24,0x24,0x24,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x24,0x24, + 0x24,0x3F,0x24,0x26,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x26,0x24,0x3F, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x28,0x28,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x44,0xC8,0x61,0x14,0x44, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0x00,0xC0,0x91,0x5F, + 0x21,0x2C,0x92,0x5F,0x42,0xBC,0x92,0x5F,0x63,0x28,0x93,0x5F,0x84,0xB8,0x93,0x5F, + 0xA5,0x24,0x94,0x5F,0xC6,0xB4,0x94,0x5F,0xE7,0x20,0x95,0x5F,0x08,0xB1,0x95,0x5F, + 0x29,0x9D,0x98,0x5F,0x4A,0x01,0x99,0x5F,0x6B,0x99,0x99,0x5F,0x8C,0x05,0x9A,0x5F, + 0xAD,0x95,0x9A,0x5F,0xCE,0x09,0x90,0x5F,0xEF,0x11,0x90,0x5F,0x10,0x0E,0x90,0x5F, + 0x31,0x46,0x90,0x5F,0x52,0x52,0x90,0x5F,0x73,0x4A,0x90,0x5F,0x94,0x4E,0x90,0x5F, + 0xB5,0x02,0x90,0x5F,0xD6,0x02,0x90,0x5F,0xF7,0x02,0x90,0x5F,0x00,0x08,0x00,0x00, + 0x00,0x80,0x01,0x00,0x00,0x0C,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x06,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x30,0x00,0x00,0x80,0x01,0x00,0x00, + 0x01,0x10,0x00,0x00,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00,0x02,0x00, + 0x08,0x00,0x10,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x1E,0x00, + 0xF8,0x0F,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x30, + 0x6F,0x67,0x08,0x00,0x00,0x00,0x00,0x00,0x30,0x60,0x30,0x60,0x60,0x30,0x60,0x30, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47,0x40,0x04,0x00,0x00,0xC0,0x9B,0x00,0x00, + 0xC0,0x92,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x03,0x00,0x00, + 0x00,0x96,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x02,0x00,0x00, + 0x00,0x99,0x00,0x00,0x00,0x04,0x00,0x00,0x9C,0x00,0x63,0x00,0x00,0x00,0x00,0x00, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47}; + +#endif // __IST30XXB_FW_H__ diff --git a/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_tshark_ver0007.h b/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_tshark_ver0007.h new file mode 100644 index 00000000..19c92564 --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/firmware/ist3038_fw_tshark_ver0007.h @@ -0,0 +1,2572 @@ +#ifndef __IST30XXB_FW_H__ +#define __IST30XXB_FW_H__ + +/* ist30xxb binary: O-Film , f/w 7(00040000) */ +static unsigned char ist30xxb_fw[] = { + 0x06,0x00,0x00,0xEA,0x2C,0x00,0x00,0xEA,0x2B,0x00,0x00,0xEA,0x2A,0x00,0x00,0xEA, + 0x29,0x00,0x00,0xEA,0x28,0x00,0x00,0xEA,0x27,0x00,0x00,0xEA,0x3E,0x00,0x00,0xEA, + 0x14,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0xA0,0xE1,0x00,0x00,0x00,0xEA,0x0C,0x20,0x00,0x40, + 0x11,0x01,0xA0,0xE3,0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0xC1,0x01,0xA0,0xE3, + 0x1C,0x10,0x9F,0xE5,0x00,0x10,0x80,0xE5,0x18,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0xF1,0x01,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0x01,0x00,0x00,0xEA,0xC8,0x74,0x00,0x00,0x4C,0x00,0x00,0x40,0x00,0x00,0x0F,0xE1, + 0x1F,0x00,0xC0,0xE3,0xD1,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x1C,0xD0,0x9F,0xE5, + 0xD3,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x14,0xD0,0x9F,0xE5,0x00,0x00,0x0F,0xE1, + 0xC0,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x08,0x00,0x9F,0xE5,0x10,0xFF,0x2F,0xE1, + 0xFC,0x0F,0x00,0x20,0xC0,0x0F,0x00,0x20,0xAD,0x01,0x00,0x00,0x11,0x01,0xA0,0xE3, + 0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x5C,0x30,0x9F,0xE5,0x5C,0x40,0x9F,0xE5, + 0x00,0x40,0x83,0xE5,0x91,0x01,0xA0,0xE3,0x33,0x16,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0xAC,0x00,0x1F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0x00,0x40,0x83,0xE5, + 0xFF,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x03,0x00,0x00,0xEB,0xFE,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0x00,0xEB,0xF7,0xFF,0xFF,0xEA,0x01,0x29,0xA0,0xE3, + 0x01,0x20,0x52,0xE2,0xFD,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0xFF,0x40,0x2D,0xE9, + 0xC6,0x00,0x00,0xEB,0xFF,0x40,0xBD,0xE8,0x04,0xF0,0x5E,0xE2,0x1C,0x40,0x00,0x30, + 0x70,0xE9,0x1C,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x39,0x4A,0x37,0x48,0x37,0x49,0x92,0x08,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x35,0x48,0x01,0x21,0x89,0x07,0xC8,0x61, + 0x34,0x48,0xC9,0x14,0x01,0x62,0x00,0x21,0x01,0x62,0x01,0x62,0x32,0x49,0x33,0x48, + 0x01,0x60,0x20,0x21,0x41,0x60,0xA0,0x21,0x81,0x60,0x70,0x47,0xF8,0xB5,0x2D,0x4B, + 0x9F,0x6A,0x2F,0x48,0x00,0x69,0x42,0x08,0x58,0x69,0x19,0x15,0x08,0x43,0x58,0x61, + 0xFF,0xF7,0xE2,0xFF,0x58,0x69,0xFF,0x21,0x81,0x31,0x08,0x43,0x58,0x61,0x29,0x48, + 0x29,0x4C,0x20,0x60,0xFF,0x20,0x90,0x30,0x60,0x60,0x13,0x20,0xA0,0x60,0xA0,0x68, + 0xA6,0x15,0x30,0x43,0xA0,0x60,0x21,0x4D,0x5F,0x23,0x00,0x2F,0x27,0xD1,0x23,0x4F, + 0x21,0xE0,0x68,0x68,0x00,0x07,0x1E,0xD5,0xE8,0x68,0x40,0x28,0x04,0xD1,0xEA,0x61, + 0x68,0x69,0x18,0x42,0xFC,0xD1,0x14,0xE0,0x20,0x28,0x04,0xD3,0xEF,0x61,0x68,0x69, + 0x18,0x42,0xFC,0xD1,0x0D,0xE0,0x0D,0x28,0x08,0xD1,0x2E,0x20,0x68,0x60,0x68,0x69, + 0x80,0x06,0xFC,0xD4,0x68,0x68,0x80,0x07,0xFC,0xD5,0x08,0xE0,0x68,0x68,0x80,0x07, + 0xFC,0xD5,0xFF,0xF7,0xA9,0xFF,0xE0,0x68,0x11,0x49,0x88,0x42,0xD9,0xD3,0xFF,0xF7, + 0xA3,0xFF,0xA0,0x68,0xB0,0x43,0xA0,0x60,0x00,0xF0,0x3A,0xF9,0xF8,0xBC,0x08,0xBC, + 0x00,0x20,0x18,0x47,0x00,0x00,0x00,0x10,0x84,0x02,0x00,0x00,0xEC,0x00,0x00,0x00, + 0x5C,0x0A,0x00,0x00,0x40,0x00,0x00,0x40,0xDE,0x10,0x05,0x00,0x00,0x40,0x00,0x30, + 0x00,0x20,0x00,0x40,0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40,0xFF,0x03,0xFF,0x2F, + 0x50,0xC3,0x00,0x00,0x38,0x48,0x41,0x6B,0xC9,0x07,0xFC,0xD0,0x41,0x6B,0x01,0x22, + 0x11,0x43,0x41,0x63,0x70,0x47,0x34,0x48,0xC2,0x69,0x41,0x14,0x8A,0x43,0xC2,0x61, + 0xC2,0x69,0x0A,0x43,0xC2,0x61,0xC2,0x69,0x8A,0x43,0xC2,0x61,0x70,0x47,0x10,0xB4, + 0x2D,0x4C,0x40,0x23,0x60,0x60,0x20,0x68,0x80,0x0A,0x80,0x02,0x10,0x43,0xA8,0x22, + 0x10,0x43,0x20,0x60,0x02,0xE0,0x08,0x78,0xA0,0x60,0x49,0x1C,0x5B,0x1E,0xFA,0xD2, + 0x10,0xBC,0x70,0x47,0xF0,0xB5,0x05,0x00,0x0E,0x00,0x1F,0x00,0x94,0x09,0x81,0x06, + 0x22,0x48,0x12,0xD1,0x91,0x06,0x10,0xD1,0x0C,0xE0,0x3A,0x00,0x31,0x00,0x28,0x00, + 0xFF,0xF7,0xDD,0xFF,0x40,0x35,0x2D,0x04,0x2D,0x0C,0x40,0x36,0xFF,0xF7,0xC2,0xFF, + 0xFF,0xF7,0xC9,0xFF,0x64,0x1E,0x60,0x1C,0xEF,0xD1,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x15,0x4B,0x40,0x22,0x58,0x60,0x18,0x68,0x80,0x0A,0x80,0x02,0x08,0x43,0xA4,0x21, + 0x08,0x43,0x18,0x60,0x00,0x21,0x00,0xE0,0x99,0x60,0x52,0x1E,0xFC,0xD2,0x70,0x47, + 0x70,0xB5,0x05,0x00,0x16,0x00,0x8C,0x09,0x82,0x06,0x0C,0x48,0x10,0xD1,0x89,0x06, + 0x0E,0xD1,0x0A,0xE0,0x31,0x00,0x28,0x00,0xFF,0xF7,0xE2,0xFF,0x40,0x35,0x2D,0x04, + 0x2D,0x0C,0xFF,0xF7,0x97,0xFF,0xFF,0xF7,0x9E,0xFF,0x64,0x1E,0x60,0x1C,0xF1,0xD1, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0xF8,0xB5,0xFF,0x20,0x00,0xF0,0x6E,0xFE, + 0x03,0x25,0x0F,0x4E,0x2D,0x07,0x01,0x27,0xF0,0x6A,0x00,0x28,0x15,0xD0,0xF0,0x6B, + 0xE9,0x68,0x80,0x08,0x3C,0x00,0x84,0x40,0x21,0x43,0xE9,0x60,0x69,0x68,0x21,0x42, + 0x00,0xD0,0x34,0x63,0x81,0x00,0x07,0x48,0x40,0x58,0x00,0x28,0x01,0xD0,0x08,0xF0, + 0x8C,0xF8,0xE8,0x68,0xA0,0x43,0xE8,0x60,0xE6,0xE7,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x40,0x00,0x00,0x30,0x70,0x06,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF8,0xB5,0x54,0x4A,0x51,0x48,0x52,0x49,0x92,0x10,0x01,0xE0,0x08,0xC9,0x08,0xC0, + 0x52,0x1E,0xFB,0xD2,0x00,0xF0,0x16,0xFE,0x07,0x00,0x03,0xF0,0xE9,0xFE,0x03,0xF0, + 0xDB,0xFE,0x03,0xF0,0x6D,0xFF,0x4C,0x4A,0x4C,0x49,0x4D,0x48,0x00,0xF0,0x00,0xFA, + 0x05,0x21,0x49,0x03,0x00,0x20,0x00,0xF0,0x01,0xFA,0x4A,0x4C,0x4A,0x49,0xA0,0x62, + 0x00,0x20,0x00,0xF0,0xFB,0xF9,0x49,0x4B,0x49,0x49,0xD8,0x63,0x49,0x48,0x00,0xF0, + 0xF5,0xF9,0xD9,0x6B,0x00,0x04,0x08,0x43,0xD8,0x63,0x03,0xF0,0x2D,0xFF,0x46,0x4A, + 0x46,0x48,0x00,0x21,0x00,0xF0,0xF2,0xF9,0x07,0xF0,0xEE,0xFA,0x03,0xF0,0xDC,0xFF, + 0x43,0x48,0x00,0x26,0x81,0x7A,0x01,0x25,0x6D,0x07,0xE1,0x73,0xC1,0x7A,0x21,0x74, + 0x41,0x7A,0x61,0x74,0xA6,0x73,0xA6,0x74,0xE6,0x74,0x26,0x75,0x66,0x75,0xA6,0x75, + 0xE6,0x75,0x01,0x8F,0x61,0x83,0xC0,0x8E,0xA0,0x83,0x38,0x48,0x68,0x63,0xFF,0x20, + 0xE8,0x63,0xE8,0x14,0x00,0xF0,0xAA,0xFD,0x36,0x48,0x06,0x70,0xFF,0x20,0x81,0x30, + 0x00,0xF0,0xA4,0xFD,0x34,0x49,0x02,0x20,0x07,0xF0,0x4A,0xFE,0x02,0x20,0x07,0xF0, + 0x4F,0xFE,0x60,0x7C,0x00,0x28,0x01,0xD0,0x07,0xF0,0xC6,0xFF,0x00,0x2F,0x1F,0xD1, + 0x2E,0x4E,0xB7,0x15,0x60,0x7C,0x00,0x28,0x02,0xD0,0x2D,0x49,0xA0,0x6E,0x88,0x60, + 0xE8,0x6B,0x0B,0x28,0x14,0xD0,0x2B,0x48,0x40,0x68,0x00,0x07,0x01,0xD5,0x02,0xF0, + 0xF1,0xFC,0xF0,0x68,0x28,0x49,0x88,0x42,0xEC,0xD9,0x28,0x48,0xC0,0x68,0xFF,0x28, + 0x06,0xD1,0xB0,0x68,0xB8,0x43,0xB0,0x60,0xB0,0x68,0x38,0x43,0xB0,0x60,0xE1,0xE7, + 0x20,0x7C,0x00,0x28,0x03,0xD1,0x01,0x20,0x80,0x02,0x00,0xF0,0x67,0xFD,0x60,0x7C, + 0x00,0x28,0x01,0xD0,0x07,0xF0,0xA0,0xFF,0x02,0x20,0x07,0xF0,0x29,0xFE,0xFF,0x20, + 0x81,0x30,0x00,0xF0,0x5B,0xFD,0x1A,0x49,0x05,0x20,0x03,0xF0,0xC5,0xFC,0x0B,0x20, + 0xE8,0x63,0x03,0xF0,0x5F,0xFD,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xB0,0x05,0x00,0x10, + 0x90,0x86,0x00,0x00,0x80,0x01,0x00,0x00,0x28,0x00,0x00,0x00,0x68,0x86,0x00,0x00, + 0x00,0x00,0x00,0x10,0x8C,0x05,0x00,0x20,0xC0,0x92,0x00,0x00,0xC0,0x0F,0x00,0x20, + 0x00,0x9D,0x00,0x00,0x00,0x93,0x00,0x00,0x4C,0x05,0x00,0x00,0x40,0x00,0x00,0x20, + 0x00,0x93,0x00,0x00,0xF5,0x06,0x00,0x20,0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40, + 0x00,0x30,0x00,0x40,0x00,0x40,0x00,0x30,0x50,0xC3,0x00,0x00,0xC0,0x92,0x00,0x00, + 0xE5,0x81,0x00,0x00,0x78,0x47,0xC0,0x46,0x01,0x30,0x90,0xE1,0x4C,0x00,0x00,0x4A, + 0x00,0x20,0xB0,0xE3,0xA0,0x30,0x71,0xE0,0x43,0x00,0x00,0x3A,0x20,0x32,0x71,0xE0, + 0x34,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0,0x26,0x00,0x00,0x3A,0x20,0x36,0x71,0xE0, + 0x17,0x00,0x00,0x3A,0x20,0x38,0x71,0xE0,0x09,0x00,0x00,0x3A,0x01,0x14,0xA0,0xE1, + 0x20,0x38,0x71,0xE0,0xFF,0x24,0x82,0xE3,0xFF,0x28,0x82,0x23,0x01,0x14,0xA0,0x21, + 0x20,0x36,0x71,0xE0,0x0E,0x00,0x00,0x3A,0x00,0x30,0x71,0xE2,0x6F,0x00,0x00,0x2A, + 0x21,0x14,0xA0,0x21,0xA0,0x37,0x71,0xE0,0x81,0x07,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x37,0x71,0xE0,0x01,0x07,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x36,0x71,0xE0, + 0x81,0x06,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x36,0x71,0xE0,0x01,0x06,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x35,0x71,0xE0,0x81,0x05,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x35,0x71,0xE0,0x01,0x05,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x34,0x71,0xE0, + 0x81,0x04,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x34,0x71,0xE0,0x01,0x04,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xE5,0xFF,0xFF,0x2A,0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0, + 0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0, + 0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0,0x1E,0xFF,0x2F,0xE1,0x01,0x10,0x50,0xE0, + 0x01,0x00,0xA0,0x23,0x1E,0xFF,0x2F,0x21,0x00,0x10,0xA0,0xE1,0x00,0x00,0xB0,0xE3, + 0x1E,0xFF,0x2F,0xE1,0x02,0x21,0x11,0xE2,0x00,0x10,0x61,0x42,0x40,0xC0,0x32,0xE0, + 0x00,0x00,0x60,0x22,0x20,0x32,0x71,0xE0,0x1D,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0, + 0x0F,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x23,0x82,0xE3, + 0x0B,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x26,0x82,0xE3, + 0x07,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x29,0x82,0xE3, + 0x01,0x13,0xA0,0x21,0x3F,0x2C,0x82,0x23,0x00,0x30,0x71,0xE2,0x1D,0x00,0x00,0x2A, + 0x21,0x13,0xA0,0x21,0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0, + 0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xEB,0xFF,0xFF,0x2A, + 0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0, + 0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42, + 0x00,0x10,0x61,0x22,0x1E,0xFF,0x2F,0xE1,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42, + 0x01,0x40,0x2D,0xE9,0x00,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB,0x02,0x40,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0xA0,0xE1,0x07,0x40,0x2D,0xE9,0x02,0x00,0xB0,0xE3, + 0x01,0x00,0x00,0xEB,0x07,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x10,0xB5,0x02,0x20,0x07,0xF0,0x7D,0xFE,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46,0x00,0x20,0xB0,0xE3,0x20,0x32,0x71,0xE0, + 0xA0,0xFF,0xFF,0x3A,0x20,0x34,0x71,0xE0,0x92,0xFF,0xFF,0x3A,0x20,0x36,0x71,0xE0, + 0x83,0xFF,0xFF,0x3A,0x20,0x38,0x71,0xE0,0x75,0xFF,0xFF,0x3A,0x6A,0xFF,0xFF,0xEA, + 0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0x48,0x06,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x04,0xF0,0x1F,0xE5,0xB0,0x05,0x00,0x10,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5, + 0x1C,0xFF,0x2F,0xE1,0xAD,0x00,0x00,0x10,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5, + 0x1C,0xFF,0x2F,0xE1,0x51,0x00,0x00,0x10,0x04,0xF0,0x1F,0xE5,0xB0,0x05,0x00,0x10, + 0x04,0xF0,0x1F,0xE5,0x0C,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5, + 0xF0,0x05,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0x88,0x06,0x00,0x10, + 0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0x28,0x06,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x04,0xF0,0x1F,0xE5,0x0C,0x06,0x00,0x10,0x04,0xF0,0x1F,0xE5,0x88,0x06,0x00,0x10, + 0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0xF0,0x06,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x04,0xF0,0x1F,0xE5,0xA8,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0xC6,0xFD,0xFF,0xEA, + 0x02,0x48,0x01,0x68,0x02,0x4A,0x11,0x40,0x01,0x60,0x70,0x47,0x00,0xA0,0x00,0x40, + 0xFE,0xFF,0xEF,0xFF,0x07,0x49,0x10,0xB5,0x08,0x68,0x07,0x4A,0x10,0x43,0x08,0x60, + 0x0B,0x24,0x02,0xF0,0xD1,0xFA,0x64,0x1E,0x00,0x2C,0xFA,0xDC,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0xA0,0x00,0x40,0x01,0x00,0x10,0x00,0xF0,0xB5,0x01,0x27, + 0x7F,0x07,0x3D,0x68,0x17,0x4E,0xB0,0x79,0xC0,0x07,0x26,0xD0,0x70,0x78,0x00,0x28, + 0x21,0xD0,0xBA,0x00,0x01,0x2D,0x02,0xD1,0x79,0x68,0x11,0x43,0xB9,0x60,0x00,0x04, + 0x02,0x43,0x90,0x0A,0x80,0x02,0xA9,0x05,0x89,0x0D,0x08,0x43,0x78,0x60,0x01,0x24, + 0x08,0xE0,0x0D,0x49,0xE0,0x00,0x40,0x18,0x0C,0x49,0x41,0x18,0x28,0x19,0x07,0xF0, + 0x91,0xF9,0x64,0x1C,0x70,0x78,0xA0,0x42,0xF3,0xDA,0x70,0x78,0x01,0x28,0x02,0xD1, + 0x00,0x2D,0x00,0xD1,0x01,0x25,0x70,0x78,0x45,0x19,0x3D,0x60,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xE0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0xD2,0x04,0x00,0x00, + 0x70,0xB4,0x1C,0x4B,0xDA,0x88,0xD2,0x07,0x2F,0xD1,0x1B,0x4A,0x05,0x78,0x54,0x78, + 0xE4,0x00,0xE6,0x18,0x13,0x24,0xA4,0x01,0x36,0x19,0xB5,0x76,0x56,0x78,0x45,0x88, + 0xF6,0x00,0xF6,0x18,0x36,0x19,0xB5,0x83,0x56,0x78,0x85,0x88,0xF6,0x00,0xF6,0x18, + 0x34,0x19,0xE5,0x83,0x54,0x78,0xE4,0x00,0xE5,0x18,0x27,0x24,0x64,0x01,0x2D,0x19, + 0x29,0x70,0x55,0x78,0xC1,0x79,0xED,0x00,0xEB,0x18,0x1B,0x19,0x59,0x70,0x51,0x78, + 0x00,0x23,0x49,0x1C,0x51,0x70,0xC0,0x79,0x01,0x21,0x06,0x28,0x07,0xD0,0x0A,0x28, + 0x01,0xD0,0x12,0x28,0x01,0xD1,0x93,0x70,0xD1,0x70,0x70,0xBC,0x70,0x47,0x91,0x70, + 0xD3,0x70,0xFA,0xE7,0x40,0x00,0x00,0x20,0xE0,0x04,0x00,0x20,0xF0,0x00,0x2D,0xE9, + 0x70,0x60,0x9F,0xE5,0x01,0xC1,0x81,0xE0,0x8C,0xC0,0x86,0xE0,0x81,0x40,0x86,0xE0, + 0x84,0x21,0xCC,0xE5,0xB4,0x5F,0xD4,0xE1,0xCD,0x70,0xA0,0xE3,0x33,0x7B,0x87,0xE2, + 0x97,0x05,0x05,0xE0,0xA5,0x79,0xA0,0xE1,0x01,0x5C,0x8C,0xE2,0x01,0x4C,0x84,0xE2, + 0xB6,0x78,0xC5,0xE1,0xB6,0x40,0xD4,0xE1,0xCD,0x70,0xA0,0xE3,0x33,0x7B,0x87,0xE2, + 0x97,0x04,0x04,0xE0,0xA4,0x49,0xA0,0xE1,0xB8,0x48,0xC5,0xE1,0x01,0x40,0x86,0xE0, + 0x38,0x41,0xD4,0xE5,0x85,0x41,0xCC,0xE5,0x8A,0x31,0xCC,0xE5,0x01,0x20,0xC0,0xE7, + 0x02,0x00,0x86,0xE0,0x9B,0x12,0xC0,0xE5,0x00,0x10,0xA0,0xE3,0x92,0x12,0xC0,0xE5, + 0xF0,0x00,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20,0x08,0x4A,0x07,0x49, + 0x12,0x78,0x08,0x68,0x0F,0x23,0x40,0x1C,0x12,0x07,0x12,0x0A,0x9B,0x06,0xD2,0x18, + 0x00,0x03,0x00,0x0B,0x02,0x43,0x0A,0x60,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0x6C,0x06,0x00,0x20,0xF1,0xB5,0x78,0x20,0x94,0xB0,0x07,0x90,0xE2,0x48,0x13,0x90, + 0x40,0x7C,0x03,0x90,0x13,0x98,0xC0,0x7C,0x02,0x90,0x13,0x98,0x00,0x7C,0x01,0x90, + 0xDE,0x48,0x00,0x68,0x00,0x88,0x00,0x05,0x7E,0xD5,0x14,0x98,0x01,0x28,0x00,0xD0, + 0x02,0x20,0x04,0x90,0x00,0x20,0x08,0x90,0xA6,0xE1,0x04,0x98,0x81,0x00,0x01,0x20, + 0x40,0x07,0x08,0x18,0x12,0x90,0x00,0x68,0x81,0x00,0x11,0x90,0x0C,0x0F,0x80,0x0F, + 0xC0,0x07,0x03,0xD1,0x20,0x00,0x01,0xF0,0x33,0xFD,0x8E,0xE1,0xD0,0x48,0xA5,0x00, + 0x40,0x5F,0x00,0x28,0x84,0x46,0x0F,0xDA,0x11,0x98,0xCD,0x49,0x80,0x01,0x80,0x0D, + 0x48,0x53,0x11,0x98,0x6A,0x18,0x80,0x05,0x80,0x0D,0x50,0x80,0x4A,0x5B,0x24,0x31, + 0x4A,0x53,0x69,0x18,0x48,0x80,0x78,0xE1,0x03,0x9F,0xC5,0x49,0x00,0x20,0x7F,0x1E, + 0x48,0x31,0x69,0x18,0x06,0xE0,0x83,0x00,0xCA,0x18,0x96,0x88,0x40,0x1C,0xCE,0x52, + 0xD3,0x88,0x53,0x80,0xB8,0x42,0xF6,0xDB,0x11,0x98,0x62,0x46,0x80,0x01,0x80,0x0D, + 0x82,0x1A,0x10,0x90,0x03,0x98,0xBA,0x4B,0x80,0x00,0x08,0x18,0x20,0x38,0x82,0x83, + 0x11,0x9A,0xEB,0x18,0x92,0x05,0x92,0x0D,0x0E,0x93,0x0F,0x92,0x5B,0x88,0xD2,0x1A, + 0xC2,0x83,0x00,0x20,0x07,0x00,0x02,0x00,0x07,0xE0,0x93,0x00,0xCE,0x5E,0x30,0x18, + 0xCE,0x18,0x02,0x23,0xF3,0x5E,0xDF,0x19,0x52,0x1C,0x03,0x9B,0x9A,0x42,0xF4,0xDB, + 0x19,0x00,0xFF,0xF7,0xFF,0xFC,0x06,0x90,0x03,0x99,0x38,0x00,0xFF,0xF7,0xFA,0xFC, + 0x05,0x90,0x06,0x98,0x00,0x28,0x00,0xDC,0x40,0x42,0x13,0x99,0x89,0x7C,0x88,0x42, + 0x14,0xDA,0x05,0x98,0x00,0x28,0x00,0xDC,0x40,0x42,0x88,0x42,0x0E,0xDA,0xA0,0x4B, + 0x60,0x00,0x1C,0x3B,0x19,0x5E,0x00,0xE0,0x32,0xE1,0x13,0x9A,0x02,0x9E,0x12,0x7D, + 0xB6,0x1A,0xB1,0x42,0x0A,0xDA,0x89,0x18,0x19,0x52,0x07,0xE0,0x98,0x49,0x13,0x9B, + 0x60,0x00,0x1C,0x39,0x0A,0x5A,0x5B,0x7D,0xD2,0x1A,0x0A,0x52,0x94,0x49,0x60,0x00, + 0x1C,0x39,0x0A,0x5E,0x00,0x2A,0x01,0xDC,0x00,0x22,0x0A,0x52,0x08,0x5E,0x02,0x99, + 0x88,0x42,0x0D,0x90,0x01,0xDB,0x05,0x20,0x28,0xE0,0x88,0x00,0x05,0x21,0xFF,0xF7, + 0xF1,0xFD,0x0D,0x99,0x88,0x42,0x01,0xDC,0x04,0x20,0x1F,0xE0,0x02,0x98,0x41,0x00, + 0x40,0x18,0x05,0x21,0xFF,0xF7,0xE6,0xFD,0x0D,0x99,0x88,0x42,0x01,0xDC,0x03,0x20, + 0x14,0xE0,0x02,0x98,0x05,0x21,0x40,0x00,0xFF,0xF7,0xDC,0xFD,0x0D,0x99,0x88,0x42, + 0x01,0xDC,0x02,0x20,0x0A,0xE0,0x02,0x98,0x05,0x21,0xFF,0xF7,0xD3,0xFD,0x0D,0x99, + 0x88,0x42,0x01,0xDC,0x01,0x20,0x01,0xE0,0x08,0x00,0x02,0xD1,0x78,0x49,0x0A,0x39, + 0x08,0x55,0x77,0x49,0x10,0x9A,0x24,0x31,0x48,0x5F,0x17,0x1A,0x0C,0x90,0x68,0x18, + 0x02,0x21,0x0B,0x90,0x41,0x5E,0x0F,0x9A,0x71,0x48,0x56,0x1A,0x0A,0x38,0x0A,0x91, + 0x01,0x5D,0x13,0x98,0x80,0x7D,0x81,0x42,0x27,0xD3,0x00,0x2F,0x01,0xD1,0x00,0x24, + 0x0D,0xE0,0x38,0x1E,0x00,0xDC,0x78,0x42,0x01,0x99,0x88,0x42,0x01,0xDA,0x01,0x24, + 0x05,0xE0,0x38,0x1E,0x00,0xDC,0x78,0x42,0xFF,0xF7,0x74,0xFC,0x04,0x00,0x00,0x2E, + 0x01,0xD1,0x00,0x20,0x0C,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42,0x01,0x99,0x88,0x42, + 0x01,0xDA,0x01,0x20,0x04,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42,0xFF,0xF7,0x62,0xFC, + 0x0C,0x99,0x00,0x2F,0x1D,0xDB,0x09,0x19,0x1C,0xE0,0x0D,0x98,0xFF,0x21,0x91,0x31, + 0x48,0x43,0x05,0x21,0xFF,0xF7,0x56,0xFC,0x02,0x99,0xFF,0xF7,0x53,0xFC,0x64,0x21, + 0x08,0x1A,0x39,0x1E,0x09,0x90,0x00,0xDC,0x79,0x42,0x48,0x43,0x64,0x21,0xFF,0xF7, + 0x49,0xFC,0x09,0x9A,0x04,0x00,0x30,0x1E,0x00,0xDC,0x70,0x42,0x50,0x43,0x64,0x21, + 0xDC,0xE7,0x09,0x1B,0x0C,0x00,0x0A,0x99,0x00,0x2E,0x01,0xDB,0x08,0x18,0x00,0xE0, + 0x08,0x1A,0x05,0x2F,0x01,0xDC,0x05,0x2E,0x5F,0xDD,0x14,0x99,0x01,0x29,0x5C,0xD1, + 0x43,0x49,0x6C,0x31,0x8A,0x68,0x92,0x19,0x8A,0x60,0x0A,0x68,0x92,0x00,0x52,0x18, + 0x97,0x81,0x0A,0x68,0x92,0x00,0x52,0x18,0xD6,0x81,0x49,0x68,0x0E,0x00,0x02,0x29, + 0x41,0xD9,0x3B,0x4A,0x6C,0x32,0x91,0x68,0x00,0x29,0x00,0xDC,0x49,0x42,0x64,0x29, + 0x39,0xDA,0x00,0x20,0x81,0x00,0x89,0x18,0x0C,0x23,0xCB,0x5E,0x06,0x9C,0x40,0x1C, + 0x1B,0x19,0x06,0x93,0x0E,0x23,0xCB,0x5E,0x05,0x99,0x59,0x18,0x03,0x28,0x05,0x91, + 0xF0,0xDB,0x10,0x98,0x3C,0x28,0x0E,0xD3,0x2B,0x49,0x02,0x00,0xA0,0x39,0x08,0x8C, + 0x3C,0x38,0x82,0x42,0x07,0xDB,0x0F,0x98,0x3C,0x28,0x04,0xD3,0x02,0x00,0x48,0x8C, + 0x3C,0x38,0x82,0x42,0x01,0xDA,0xC8,0x20,0x07,0x90,0x06,0x98,0x64,0x21,0x48,0x43, + 0x03,0x21,0xFF,0xF7,0xEF,0xFB,0x07,0x99,0xFF,0xF7,0xEC,0xFB,0x0C,0x99,0x44,0x18, + 0x05,0x98,0x64,0x21,0x48,0x43,0x03,0x21,0xFF,0xF7,0xE4,0xFB,0x07,0x99,0xFF,0xF7, + 0xE1,0xFB,0x0A,0x99,0x40,0x18,0x1A,0x4B,0x00,0x21,0x6C,0x33,0x1A,0x68,0x02,0x2A, + 0x00,0xD0,0x51,0x1C,0x19,0x60,0x71,0x1C,0x59,0x60,0x15,0x49,0x10,0x9A,0x4A,0x53, + 0x0E,0x9A,0x0F,0x99,0x51,0x80,0x12,0x4A,0x24,0x32,0x54,0x53,0x0B,0x99,0x11,0x4A, + 0x48,0x80,0x11,0x99,0x80,0x05,0x11,0x40,0xA2,0x05,0x92,0x09,0x11,0x43,0x89,0x0A, + 0x89,0x02,0x80,0x0D,0x01,0x43,0x12,0x98,0x01,0x60,0x08,0x98,0x40,0x1C,0x08,0x90, + 0x04,0x98,0x40,0x1C,0x04,0x90,0x08,0x98,0x14,0x99,0x88,0x42,0x00,0xDA,0x54,0xE6, + 0x15,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x93,0x00,0x00,0xF0,0x06,0x00,0x20, + 0xE4,0x09,0x00,0x20,0xFF,0xFF,0x00,0xFC,0x10,0x4B,0x30,0xB4,0x15,0x21,0xDA,0x88, + 0x89,0x01,0x80,0x24,0x59,0x18,0x00,0x28,0x0E,0xD0,0x0D,0x48,0x45,0x7B,0x0D,0x80, + 0xC5,0x89,0x4D,0x80,0x05,0x8A,0x8D,0x80,0x40,0x8A,0xC8,0x80,0x08,0x48,0x20,0x30, + 0x00,0x89,0x22,0x43,0x08,0x81,0x06,0xE0,0x00,0x20,0x08,0x80,0x48,0x80,0x88,0x80, + 0xC8,0x80,0xA2,0x43,0x08,0x81,0xDA,0x80,0x30,0xBC,0x70,0x47,0x40,0x00,0x00,0x20, + 0x80,0x93,0x00,0x00,0x7F,0xB5,0x25,0x4D,0x06,0x00,0x1A,0x28,0x0C,0xD1,0x28,0x6A, + 0x00,0x28,0x09,0xD1,0x68,0x6A,0x00,0x28,0x06,0xD1,0x21,0x4C,0x01,0xF0,0xE8,0xFF, + 0x64,0x1E,0xFB,0xD2,0xFF,0x24,0x12,0xE0,0x05,0xF0,0xA4,0xFF,0x01,0xF0,0xAE,0xFE, + 0x01,0xF0,0xB4,0xFE,0x03,0xAA,0x01,0xA9,0x02,0xA8,0x04,0xF0,0x93,0xFF,0x04,0x00, + 0x03,0x00,0x01,0x9A,0x02,0x99,0x03,0x98,0x00,0x96,0x00,0xF0,0x33,0xF8,0x02,0x20, + 0x07,0xF0,0x46,0xF9,0x02,0x20,0x07,0xF0,0x33,0xF9,0x12,0x49,0xE8,0x68,0xC8,0x61, + 0x28,0x69,0xC8,0x61,0x10,0x48,0xC2,0x68,0x52,0x08,0x52,0x00,0xC2,0x60,0x0F,0x4B, + 0x0F,0x48,0x02,0xE0,0xDA,0x68,0x82,0x42,0x02,0xD8,0x4A,0x69,0x92,0x06,0xF9,0xD5, + 0x48,0x68,0x80,0x07,0xFC,0xD5,0x01,0xF0,0xD3,0xFF,0x01,0x20,0x00,0xF0,0x6E,0xF8, + 0x20,0x00,0x04,0xB0,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x92,0x00,0x00, + 0xE7,0x03,0x00,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40, + 0x50,0xC3,0x00,0x00,0xFF,0xB5,0x05,0x00,0x0E,0x00,0x91,0xB0,0xFF,0xF7,0xAA,0xF8, + 0x1C,0x48,0x03,0x27,0x04,0x04,0x24,0x0C,0x3F,0x02,0x00,0x22,0x39,0x00,0x20,0x00, + 0xFF,0xF7,0x72,0xFC,0x18,0x49,0x3A,0x00,0x20,0x00,0x00,0x23,0xFF,0xF7,0x74,0xFC, + 0x16,0x49,0x40,0x22,0x01,0xA8,0xFF,0xF7,0x53,0xFC,0x14,0x99,0x28,0x04,0x09,0x03, + 0x08,0x43,0x13,0x49,0x08,0x43,0x04,0x90,0x13,0x99,0x30,0x04,0x08,0x43,0x05,0x90, + 0x10,0x48,0x11,0x49,0xC0,0x6B,0x10,0x90,0x0C,0x48,0x80,0x69,0x40,0x1C,0x07,0x90, + 0x00,0x20,0x8D,0x42,0x09,0x90,0x02,0xD1,0x06,0x99,0x49,0x1C,0x06,0x91,0x1A,0x99, + 0x1A,0x29,0x00,0xD1,0x0A,0x90,0x01,0xA8,0x07,0xF0,0x1C,0xFA,0x15,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x9D,0x00,0x00,0x00,0x00,0x10,0x40,0xC0,0x92,0x00,0x00, + 0xAB,0x0C,0x00,0x80,0xC0,0x0F,0x00,0x20,0xEC,0x0D,0x00,0x00,0x02,0x4A,0x51,0x69, + 0x81,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x4A,0x51,0x69, + 0x01,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x78,0x47,0xC0,0x46, + 0x01,0x21,0xA0,0xE3,0x50,0x30,0x92,0xE5,0x0C,0x10,0xA0,0xE3,0x03,0x00,0x80,0xE1, + 0x50,0x00,0x82,0xE5,0x00,0x00,0x00,0xEA,0x00,0x00,0xA0,0xE1,0x01,0x10,0x51,0xE2, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x01,0x48,0x40,0x69,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x01,0x48,0x80,0x6A,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x02,0x49,0x08,0x62,0x00,0x20,0x08,0x62,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x01,0x49,0x48,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x07,0x49,0xFF,0x28, + 0x04,0xD1,0x01,0x20,0xC8,0x60,0x00,0x20,0x88,0x61,0x70,0x47,0x8A,0x69,0x12,0x07, + 0x12,0x0F,0x02,0x43,0x8A,0x61,0x02,0x20,0xC8,0x60,0x70,0x47,0x40,0x00,0x00,0x40, + 0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x65,0xDF,0x4D,0xE2,0x00,0x00,0xA0,0xE3, + 0x68,0x01,0x8D,0xE5,0x0C,0x08,0x9F,0xE5,0x0C,0x28,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0xB0,0x24,0xD2,0xE1,0x78,0x10,0xD0,0xE5,0x77,0x70,0xD0,0xE5,0xFC,0x97,0x9F,0xE5, + 0x02,0x10,0x81,0xE0,0xFF,0x80,0x01,0xE2,0x79,0x10,0xD0,0xE5,0x00,0x50,0xE0,0xE3, + 0x00,0xB0,0xA0,0xE3,0x08,0x10,0x8D,0xE5,0x7A,0x00,0xD0,0xE5,0x04,0x00,0x8D,0xE5, + 0xDC,0x07,0x9F,0xE5,0x04,0x40,0xD9,0xE5,0x00,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3, + 0x03,0x00,0x00,0x1A,0xCC,0x07,0x9F,0xE5,0x00,0x00,0x90,0xE5,0xFA,0x00,0x50,0xE3, + 0x02,0x00,0x00,0x9A,0x03,0x80,0xA0,0xE3,0x08,0x80,0x8D,0xE5,0x0A,0x00,0x00,0xEA, + 0xB4,0x07,0x9F,0xE5,0x00,0x00,0xD0,0xE5,0x01,0x00,0x50,0xE3,0x02,0x80,0xA0,0x03, + 0x03,0x00,0xA0,0x03,0x03,0x00,0x00,0x0A,0xC8,0x02,0xD9,0xE5,0x00,0x00,0x50,0xE3, + 0x01,0x00,0x00,0x0A,0x00,0x00,0xA0,0xE3,0x08,0x00,0x8D,0xE5,0x82,0x01,0xD9,0xE5, + 0x01,0x60,0xA0,0xE3,0x01,0x00,0x50,0xE3,0x0E,0x00,0x00,0xBA,0x06,0x01,0x86,0xE0, + 0x80,0x00,0x89,0xE0,0x38,0x12,0xD0,0xE5,0x00,0x00,0x51,0xE3,0x05,0x00,0x00,0x0A, + 0x02,0x0C,0x80,0xE2,0x3E,0x00,0x80,0xE2,0xD8,0x0B,0x00,0xEB,0x00,0x00,0x50,0xE3, + 0x01,0x00,0x8B,0x12,0xFF,0xB0,0x00,0x12,0x82,0x01,0xD9,0xE5,0x01,0x60,0x86,0xE2, + 0x06,0x00,0x50,0xE1,0xF0,0xFF,0xFF,0xAA,0x40,0x07,0x9F,0xE5,0x00,0xA0,0xA0,0xE3, + 0xB4,0x3B,0xD0,0xE1,0xB8,0x2B,0xD0,0xE1,0x01,0x60,0xA0,0xE3,0x02,0x10,0x43,0xE0, + 0x00,0x00,0x51,0xE3,0x03,0x10,0x42,0xD0,0x01,0x28,0xA0,0xE1,0xB6,0x1B,0xD0,0xE1, + 0xBA,0x3B,0xD0,0xE1,0x22,0x28,0xA0,0xE1,0xB3,0xA2,0xC9,0xE5,0x03,0x00,0x41,0xE0, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x43,0xD0,0x00,0x00,0x5B,0xE3,0x00,0x08,0xA0,0xE1, + 0x28,0x00,0x52,0x13,0x20,0x08,0xA0,0xE1,0x06,0x00,0x00,0x2A,0x32,0x00,0x50,0xE3, + 0xB3,0x62,0xC9,0x35,0x03,0x00,0x00,0x3A,0x64,0x00,0x50,0xE3,0x03,0x00,0xA0,0x23, + 0x02,0x00,0xA0,0x33,0xB3,0x02,0xC9,0xE5,0xB2,0x02,0xD9,0xE5,0x00,0x00,0x50,0xE3, + 0x0B,0x00,0x00,0x1A,0xB3,0x02,0xD9,0xE5,0x01,0x00,0x50,0xE3,0x01,0x00,0x87,0x02, + 0xFF,0x70,0x00,0x02,0x06,0x00,0x00,0x0A,0x02,0x00,0x50,0xE3,0x02,0x00,0x87,0x02, + 0x02,0x00,0x00,0x0A,0x03,0x00,0x50,0xE3,0x01,0x00,0x00,0x1A,0x03,0x00,0x87,0xE2, + 0xFF,0x70,0x00,0xE2,0x09,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x57,0x0F,0x8D,0xE2, + 0x8C,0xFD,0xFF,0xEB,0xB6,0x00,0xD9,0xE1,0x84,0xB6,0x9F,0xE5,0x46,0x0F,0x10,0xE3, + 0x04,0x00,0x00,0x0A,0xD6,0x04,0x00,0xEB,0x00,0x60,0xCB,0xE5,0x65,0xDF,0x8D,0xE2, + 0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x50,0x06,0x9F,0xE5,0x00,0xA0,0xCB,0xE5, + 0x83,0x01,0xD0,0xE5,0x00,0x00,0x50,0xE3,0x40,0x16,0x9F,0x15,0x01,0x00,0x40,0x12, + 0x83,0x01,0xC1,0x15,0x00,0x00,0x54,0xE3,0x04,0x00,0x00,0x1A,0x2C,0x06,0x9F,0xE5, + 0x81,0x01,0xD0,0xE5,0x00,0x00,0x50,0xE3,0x7C,0x01,0x00,0x0A,0x17,0x00,0x00,0xEA, + 0x18,0x96,0x9F,0xE5,0x81,0x01,0xD9,0xE5,0x00,0x00,0x50,0xE3,0x13,0x00,0x00,0x1A, + 0x20,0x06,0x9F,0xE5,0x5A,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x6D,0xFD,0xFF,0xEB, + 0x83,0x01,0xD9,0xE5,0x00,0x00,0x50,0xE3,0x70,0x01,0x00,0x1A,0x01,0x00,0x54,0xE3, + 0x01,0x50,0xA0,0xE3,0x07,0x00,0x00,0xBA,0xFF,0x20,0x05,0xE2,0xFF,0x10,0x05,0xE2, + 0x14,0x30,0xA0,0xE3,0x57,0x0F,0x8D,0xE2,0xC7,0xFD,0xFF,0xEB,0x01,0x50,0x85,0xE2, + 0x04,0x00,0x55,0xE1,0xF7,0xFF,0xFF,0xDA,0x80,0x41,0xC9,0xE5,0x63,0x01,0x00,0xEA, + 0x09,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x15,0x0E,0x8D,0xE2,0x59,0xFD,0xFF,0xEB, + 0x01,0x00,0x87,0xE2,0x90,0x01,0x8D,0xE5,0x02,0x00,0x88,0xE2,0x8C,0x01,0x8D,0xE5, + 0xB4,0x05,0x9F,0xE5,0x01,0x60,0xA0,0xE3,0x88,0x01,0x8D,0xE5,0x09,0x00,0x40,0xE2, + 0x84,0x01,0x8D,0xE5,0x08,0x70,0xA0,0xE3,0x0C,0x80,0x8D,0xE2,0x87,0x01,0x87,0xE0, + 0x0C,0x10,0x8D,0xE2,0x00,0x01,0x81,0xE0,0x24,0x20,0xA0,0xE3,0x00,0x10,0xE0,0xE3, + 0x48,0xFD,0xFF,0xEB,0x01,0x70,0x57,0xE2,0xF7,0xFF,0xFF,0x5A,0x06,0x00,0xA0,0xE1, + 0x39,0x06,0x00,0xEB,0x01,0x00,0x54,0xE3,0x00,0x80,0xA0,0xE1,0x01,0x90,0xA0,0xE3, + 0x47,0x00,0x00,0xBA,0x44,0x05,0x9F,0xE5,0x08,0xA0,0xA0,0xE1,0x82,0x11,0xD0,0xE5, + 0x01,0x70,0xA0,0xE3,0x01,0x00,0x51,0xE3,0x3E,0x00,0x00,0xBA,0x89,0x00,0x80,0xE0, + 0x80,0x01,0x8D,0xE5,0x01,0x0C,0x80,0xE2,0x7C,0x01,0x8D,0xE5,0x89,0x01,0x89,0xE0, + 0x0C,0x10,0x8D,0xE2,0x78,0x01,0x8D,0xE5,0x00,0x01,0x81,0xE0,0x74,0x01,0x8D,0xE5, + 0x08,0x15,0x9F,0xE5,0x07,0x01,0x87,0xE0,0x80,0xB0,0x81,0xE0,0x38,0x02,0xDB,0xE5, + 0x00,0x00,0x50,0xE3,0x2A,0x00,0x00,0x0A,0x02,0x0C,0x8B,0xE2,0x3E,0x00,0x80,0xE2, + 0x70,0x01,0x8D,0xE5,0x3D,0x0B,0x00,0xEB,0x06,0x00,0x90,0xE1,0x04,0x00,0x00,0x0A, + 0x70,0x01,0x9D,0xE5,0x39,0x0B,0x00,0xEB,0x00,0x00,0x50,0xE3,0x00,0x00,0x56,0x13, + 0x1F,0x00,0x00,0x0A,0x80,0x01,0x9D,0xE5,0xCD,0x10,0xA0,0xE3,0xB4,0x0F,0xD0,0xE1, + 0x33,0x1B,0x81,0xE2,0x91,0x00,0x00,0xE0,0xA0,0x29,0xA0,0xE1,0x02,0x0C,0x8B,0xE2, + 0xBA,0x33,0xD0,0xE1,0x02,0x10,0x43,0xE0,0x00,0x00,0x51,0xE3,0x03,0x10,0x42,0xD0, + 0x7C,0x21,0x9D,0xE5,0xCD,0x30,0xA0,0xE3,0xB6,0x20,0xD2,0xE1,0x33,0x3B,0x83,0xE2, + 0x93,0x02,0x02,0xE0,0xBC,0x33,0xD0,0xE1,0xA2,0x29,0xA0,0xE1,0x02,0x00,0x43,0xE0, + 0x00,0x00,0x50,0xE3,0x03,0x00,0x42,0xD0,0x91,0x01,0x02,0xE0,0x00,0x10,0xA0,0xE1, + 0x91,0x20,0x20,0xE0,0x0A,0x00,0x50,0xE1,0x03,0x00,0x00,0xAA,0x78,0x11,0x9D,0xE5, + 0x0C,0x20,0x8D,0xE2,0x00,0xA0,0xA0,0xE1,0x01,0x71,0x82,0xE7,0x74,0x11,0x9D,0xE5, + 0x07,0x01,0x81,0xE7,0x44,0x04,0x9F,0xE5,0x01,0x70,0x87,0xE2,0x82,0x01,0xD0,0xE5, + 0x07,0x00,0x50,0xE1,0xC9,0xFF,0xFF,0xAA,0x01,0x90,0x89,0xE2,0x04,0x00,0x59,0xE1, + 0xB7,0xFF,0xFF,0xDA,0x01,0x00,0xA0,0xE3,0x01,0x00,0x54,0xE3,0x6C,0x01,0x8D,0xE5, + 0x7D,0x00,0x00,0xBA,0x0C,0x70,0x8D,0xE2,0x01,0xC0,0xA0,0xE3,0x01,0x00,0x54,0xE3, + 0x08,0x30,0xA0,0xE1,0x0C,0x00,0xA0,0xE1,0x72,0x00,0x00,0xBA,0x57,0x1F,0x8D,0xE2, + 0x00,0x10,0xD1,0xE7,0x00,0x00,0x51,0xE3,0x0B,0x00,0x00,0x1A,0x80,0x11,0x80,0xE0, + 0x01,0x21,0x97,0xE7,0x01,0x91,0x87,0xE0,0x02,0x11,0x99,0xE7,0x03,0x00,0x51,0xE1, + 0x05,0x00,0x00,0xAA,0x00,0x00,0x51,0xE3,0x00,0x00,0x52,0xA3,0x02,0x00,0x00,0xBA, + 0x00,0x50,0xA0,0xE1,0x01,0x30,0xA0,0xE1,0x00,0xC0,0xA0,0xE3,0x01,0x00,0x80,0xE2, + 0x04,0x00,0x50,0xE1,0xEC,0xFF,0xFF,0xDA,0x00,0x00,0x5C,0xE3,0x5D,0x00,0x00,0x1A, + 0x68,0x01,0x9D,0xE5,0x85,0x91,0x85,0xE0,0x01,0x00,0x80,0xE2,0x68,0x01,0x8D,0xE5, + 0x09,0x01,0x97,0xE7,0x94,0xB3,0x9F,0xE5,0x00,0x01,0x80,0xE0,0x80,0x00,0x8B,0xE0, + 0x01,0x1C,0x80,0xE2,0x05,0x01,0x85,0xE0,0x80,0xA0,0x8B,0xE0,0xDE,0x10,0x81,0xE2, + 0x61,0x0F,0x8A,0xE2,0x0A,0x20,0xA0,0xE3,0xCC,0xFC,0xFF,0xEB,0x85,0x00,0x8B,0xE0, + 0xB4,0x1F,0xD0,0xE1,0xCD,0x20,0xA0,0xE3,0x33,0x2B,0x82,0xE2,0x92,0x01,0x01,0xE0, + 0xA1,0x29,0xA0,0xE1,0x01,0x1C,0x8A,0xE2,0x01,0x0C,0x80,0xE2,0xB6,0x28,0xC1,0xE1, + 0xB6,0x00,0xD0,0xE1,0xCD,0x20,0xA0,0xE3,0x33,0x2B,0x82,0xE2,0x92,0x00,0x00,0xE0, + 0xA0,0x09,0xA0,0xE1,0xB8,0x08,0xC1,0xE1,0x05,0x00,0x8B,0xE0,0x38,0x01,0xD0,0xE5, + 0x85,0x01,0xCA,0xE5,0x8A,0x01,0xDA,0xE5,0x90,0x11,0x9D,0xE5,0x01,0x00,0x50,0xE1, + 0x01,0x00,0x80,0x32,0x8A,0x01,0xCA,0x35,0x8A,0x01,0xDA,0xE5,0x13,0x00,0x50,0xE3, + 0x06,0x00,0x00,0x9A,0xCD,0x10,0xA0,0xE3,0x90,0x01,0x01,0xE0,0x8C,0x21,0x9D,0xE5, + 0x21,0x16,0xA0,0xE1,0x02,0x00,0x51,0xE1,0x14,0x00,0x80,0x32,0x8A,0x01,0xCA,0x35, + 0x84,0x01,0xDA,0xE5,0x57,0xEF,0x8D,0xE2,0x01,0x00,0x54,0xE3,0x05,0x00,0xCE,0xE7, + 0x88,0x11,0x9D,0xE5,0x01,0x50,0xC0,0xE7,0x84,0x21,0xDA,0xE5,0x84,0x11,0x9D,0xE5, + 0x00,0x00,0xA0,0xE3,0x01,0x00,0xC2,0xE7,0x09,0x11,0x97,0xE7,0x15,0x2E,0x8D,0xE2, + 0x01,0x00,0xC2,0xE7,0x01,0x00,0xA0,0xE3,0x19,0x00,0x00,0xBA,0xAC,0x12,0x9F,0xE5, + 0x82,0xC1,0xD1,0xE5,0x09,0x21,0x97,0xE7,0x80,0xA1,0x80,0xE0,0x00,0x10,0xE0,0xE3, + 0x0A,0xB1,0x87,0xE0,0x02,0x11,0x8B,0xE7,0x00,0x10,0xDE,0xE7,0x08,0x30,0xA0,0xE1, + 0x00,0x00,0x51,0xE3,0x0B,0x00,0x00,0x1A,0x01,0x00,0x5C,0xE3,0x01,0x10,0xA0,0xE3, + 0x08,0x00,0x00,0xBA,0x01,0x21,0x9B,0xE7,0x01,0x00,0x72,0xE3,0x02,0x00,0x00,0xDA, + 0x03,0x00,0x52,0xE1,0x02,0x30,0xA0,0xB1,0x0A,0x11,0x87,0xB7,0x01,0x10,0x81,0xE2, + 0x01,0x00,0x5C,0xE1,0xF6,0xFF,0xFF,0xAA,0x01,0x00,0x80,0xE2,0x04,0x00,0x50,0xE1, + 0xE7,0xFF,0xFF,0xDA,0x44,0x02,0x9F,0xE5,0x68,0x11,0x9D,0xE5,0x82,0x01,0xD0,0xE5, + 0x01,0x00,0x50,0xE1,0x04,0x00,0x00,0xDA,0x6C,0x01,0x9D,0xE5,0x01,0x00,0x80,0xE2, + 0x04,0x00,0x50,0xE1,0x6C,0x01,0x8D,0xE5,0x82,0xFF,0xFF,0xDA,0x06,0x00,0xB0,0xE1, + 0x01,0x10,0x46,0xE2,0xFF,0x60,0x01,0xE2,0x21,0xFF,0xFF,0x1A,0x0C,0x82,0x9F,0xE5, + 0x01,0x60,0xA0,0xE3,0x82,0x01,0xD8,0xE5,0x00,0x70,0xA0,0xE3,0x06,0xA0,0xA0,0xE1, + 0x01,0x00,0x50,0xE3,0x43,0x00,0x00,0xBA,0x15,0x0E,0x8D,0xE2,0x06,0x00,0xD0,0xE7, + 0x00,0x00,0x50,0xE3,0x3B,0x00,0x00,0x0A,0x06,0x01,0x86,0xE0,0x80,0x50,0x88,0xE0, + 0x38,0x02,0xD5,0xE5,0x84,0x11,0x9D,0xE5,0x0A,0x90,0x84,0xE0,0x01,0x00,0xD0,0xE7, + 0x08,0x10,0x9D,0xE5,0x01,0x00,0x50,0xE1,0x23,0x00,0x00,0x2A,0x08,0x00,0x59,0xE3, + 0x21,0x00,0x00,0xCA,0x02,0x0C,0x85,0xE2,0x3E,0x00,0x80,0xE2,0x6F,0x0A,0x00,0xEB, + 0x00,0x00,0x50,0xE3,0x1C,0x00,0x00,0x0A,0x38,0x02,0xD5,0xE5,0x84,0x11,0x9D,0xE5, + 0x84,0x21,0x9D,0xE5,0x01,0x10,0xD0,0xE7,0x01,0x10,0x81,0xE2,0x02,0x10,0xC0,0xE7, + 0x09,0x01,0x89,0xE0,0x80,0xB0,0x88,0xE0,0x8E,0x1F,0x85,0xE2,0x61,0x0F,0x8B,0xE2, + 0x0A,0x20,0xA0,0xE3,0x4D,0xFC,0xFF,0xEB,0xE5,0x01,0xD5,0xE5,0x57,0x1F,0x8D,0xE2, + 0x01,0xA0,0x8A,0xE2,0x8B,0x01,0xCB,0xE5,0xE6,0x01,0xD5,0xE5,0x01,0x70,0x87,0xE2, + 0x8C,0x01,0xCB,0xE5,0x38,0x02,0xD5,0xE5,0x09,0x00,0xC1,0xE7,0x88,0x11,0x9D,0xE5, + 0x01,0x90,0xC0,0xE7,0x64,0x01,0x9F,0xE5,0x00,0x10,0xD0,0xE5,0x00,0x00,0x51,0xE3, + 0x01,0x10,0xA0,0x03,0x00,0x10,0xC0,0x05,0x0E,0x00,0x00,0xEA,0x02,0x0C,0x85,0xE2, + 0x3E,0x00,0x80,0xE2,0x4D,0x0A,0x00,0xEB,0x00,0x00,0x50,0xE3,0x09,0x00,0x00,0x0A, + 0x01,0x00,0xA0,0xE3,0xB1,0x02,0xC8,0xE5,0x3E,0x02,0xD5,0xE5,0x13,0x00,0x50,0xE3, + 0x04,0x00,0x00,0x9A,0x81,0x01,0xD8,0xE5,0x01,0x00,0x50,0xE3,0xB6,0x00,0xD8,0x01, + 0x04,0x00,0x80,0x03,0xB6,0x00,0xC8,0x01,0x82,0x01,0xD8,0xE5,0x01,0x60,0x86,0xE2, + 0x06,0x00,0x50,0xE1,0xBB,0xFF,0xFF,0xAA,0xB6,0x00,0xD8,0xE1,0x04,0x00,0x10,0xE3, + 0x03,0x00,0x00,0x0A,0x04,0x10,0x9D,0xE5,0x04,0x00,0xC0,0xE3,0x83,0x11,0xC8,0xE5, + 0xB6,0x00,0xC8,0xE1,0x01,0x00,0x54,0xE3,0x01,0x50,0xA0,0xE3,0x21,0x00,0x00,0xBA, + 0x57,0x6F,0x8D,0xE2,0x01,0x90,0xA0,0xE3,0x05,0x00,0xD6,0xE7,0x00,0x00,0x50,0xE3, + 0x0F,0x00,0x00,0x1A,0x01,0x00,0xA0,0xE3,0x00,0x10,0x88,0xE0,0x9B,0x22,0xD1,0xE5, + 0x00,0x00,0x52,0xE3,0xA4,0x12,0xD1,0x05,0x00,0x00,0x51,0x03,0x05,0x00,0x00,0x1A, + 0xFF,0x20,0x00,0xE2,0xFF,0x10,0x05,0xE2,0x01,0x30,0xA0,0xE3,0x57,0x0F,0x8D,0xE2, + 0x71,0xFC,0xFF,0xEB,0x02,0x00,0x00,0xEA,0x01,0x00,0x80,0xE2,0x09,0x00,0x50,0xE3, + 0xF0,0xFF,0xFF,0xBA,0x83,0x01,0xD8,0xE5,0x00,0x00,0x50,0xE3,0x06,0x00,0x00,0x0A, + 0x05,0x01,0x85,0xE0,0x80,0xA0,0x88,0xE0,0x01,0x0C,0x8A,0xE2,0x8A,0x00,0x80,0xE2, + 0x16,0x0A,0x00,0xEB,0x00,0x00,0x50,0xE3,0x8A,0x91,0xCA,0x05,0x01,0x50,0x85,0xE2, + 0x04,0x00,0x55,0xE1,0xDF,0xFF,0xFF,0xDA,0x07,0x00,0x84,0xE0,0x80,0x01,0xC8,0xE5, + 0x28,0x00,0x9F,0xE5,0x5A,0x20,0xA0,0xE3,0x80,0x11,0xD0,0xE5,0x82,0x11,0xC0,0xE5, + 0x61,0x1F,0x80,0xE2,0x8E,0x0F,0x80,0xE2,0xF4,0xFB,0xFF,0xEB,0x65,0xDF,0x8D,0xE2, + 0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0xF0,0x06,0x00,0x20,0x40,0x05,0x00,0x20, + 0x40,0x00,0x00,0x20,0xA3,0x05,0x00,0x20,0xD0,0x05,0x00,0x20,0x95,0x05,0x00,0x20, + 0x40,0x02,0x00,0x20,0x8E,0x05,0x00,0x20,0x1E,0x02,0x00,0x20,0xDB,0x02,0x00,0x20, + 0x6C,0x06,0x00,0x20,0xF1,0xB5,0x38,0x48,0x86,0xB0,0x05,0x90,0x00,0x20,0x04,0x90, + 0x36,0x48,0x41,0x7F,0x01,0x91,0x01,0x00,0x20,0x39,0x49,0x7F,0x00,0x91,0x00,0x21, + 0x02,0x91,0x01,0x7D,0x00,0x20,0xC0,0x43,0x00,0x29,0x06,0x99,0x03,0xD1,0x00,0x29, + 0x03,0xD1,0x01,0x20,0x01,0xE0,0x00,0x29,0xFB,0xD1,0x03,0x90,0x01,0xF0,0x20,0xF9, + 0x01,0xF0,0x8C,0xF9,0x00,0x24,0x27,0x00,0x00,0x26,0x31,0x00,0x38,0x00,0x02,0xF0, + 0xC3,0xF8,0x00,0x28,0x28,0xD0,0x0E,0x21,0x79,0x43,0x05,0x9A,0x89,0x19,0x89,0x00, + 0x51,0x58,0x09,0x05,0x09,0x0D,0x0D,0x1A,0x06,0x98,0x00,0x28,0x0D,0xD0,0x00,0x2D, + 0x1A,0xDA,0x03,0x9A,0x31,0x00,0x38,0x00,0x06,0xF0,0xFC,0xF9,0x40,0x1C,0x14,0xD1, + 0x00,0x98,0x28,0x18,0x10,0xD5,0x02,0x20,0x0D,0xE0,0x00,0x2D,0x0C,0xDD,0x03,0x9A, + 0x31,0x00,0x38,0x00,0x06,0xF0,0xEE,0xF9,0x40,0x1C,0x06,0xD1,0x01,0x98,0x28,0x1A, + 0x00,0x28,0x01,0xDD,0x03,0x20,0x04,0x90,0x64,0x1C,0x76,0x1C,0x0E,0x2E,0xCC,0xD3, + 0x7F,0x1C,0x16,0x2F,0xC8,0xD3,0x20,0x00,0xFF,0x38,0x35,0x38,0x04,0xD1,0x04,0x98, + 0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x02,0x98,0x41,0x1C,0x02,0x91,0x01,0x21, + 0x49,0x02,0x88,0x42,0xB2,0xD9,0x06,0x98,0x00,0x28,0x01,0xD0,0x02,0x20,0x00,0xE0, + 0x03,0x20,0x04,0x90,0xEC,0xE7,0x00,0x00,0xD4,0x02,0x10,0x40,0x20,0x93,0x00,0x00, + 0xF0,0xB5,0x7B,0x4A,0xFF,0xB0,0xBC,0xB0,0x40,0x18,0xB9,0x92,0x42,0x00,0x80,0x18, + 0xB8,0x90,0x48,0x42,0xB7,0x90,0x77,0x48,0x77,0x4E,0x07,0x7D,0x02,0xA8,0x01,0x90, + 0x76,0x48,0xBA,0x90,0x00,0x7D,0x00,0x28,0x02,0xD1,0xB7,0x98,0x40,0x42,0xB7,0x90, + 0x73,0x4A,0x00,0x21,0x30,0x00,0xFE,0xF7,0x3F,0xFF,0x00,0x25,0x00,0x24,0x6F,0x48, + 0x20,0x38,0x01,0x7D,0xC9,0x07,0x14,0xD0,0x6E,0x49,0x09,0x78,0x00,0x29,0x16,0xD0, + 0xBD,0x42,0x0E,0xD1,0x81,0x7D,0xA1,0x42,0x0B,0xD0,0xC1,0x7D,0xA1,0x42,0x08,0xD0, + 0x01,0x7E,0xA1,0x42,0x05,0xD0,0x41,0x7E,0xA1,0x42,0x02,0xD0,0x80,0x7E,0xA0,0x42, + 0x16,0xD1,0xB7,0x9A,0x21,0x00,0x28,0x00,0x06,0xF0,0x84,0xF9,0x10,0xE0,0xBC,0x42, + 0xF7,0xD1,0x81,0x7D,0xA9,0x42,0xF4,0xD0,0xC1,0x7D,0xA9,0x42,0xF1,0xD0,0x01,0x7E, + 0xA9,0x42,0xEE,0xD0,0x41,0x7E,0xA9,0x42,0xEB,0xD0,0x80,0x7E,0xA8,0x42,0xE8,0xD0, + 0x64,0x1C,0x0E,0x2C,0xCB,0xD3,0x6D,0x1C,0x16,0x2D,0xC7,0xD3,0x01,0xF0,0x70,0xF8, + 0x01,0xF0,0xDC,0xF8,0x00,0x25,0x00,0x24,0x0E,0x20,0x2F,0x00,0x47,0x43,0x21,0x00, + 0x28,0x00,0x02,0xF0,0x11,0xF8,0x00,0x28,0x0F,0xD0,0xB9,0x9B,0x3A,0x19,0x91,0x00, + 0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D,0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD, + 0x08,0x1A,0x00,0xE0,0x40,0x1A,0x51,0x00,0x70,0x52,0x21,0x00,0x28,0x00,0x02,0xF0, + 0x41,0xF8,0x39,0x19,0x01,0x9A,0x49,0x00,0x64,0x1C,0x0E,0x2C,0x50,0x52,0xDE,0xD3, + 0x6D,0x1C,0x16,0x2D,0xD7,0xD3,0x00,0x20,0x00,0x90,0x01,0xF0,0xAF,0xF8,0x00,0x25, + 0x00,0x24,0x21,0x00,0x28,0x00,0x01,0xF0,0xE7,0xFF,0x00,0x28,0x3E,0xD0,0x0E,0x21, + 0x69,0x43,0xB9,0x9B,0x0A,0x19,0x91,0x00,0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D, + 0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0,0x40,0x1A,0x57,0x00, + 0xF1,0x5B,0x00,0x04,0x00,0x0C,0x81,0x42,0x06,0xD9,0xF0,0x53,0x21,0x00,0x28,0x00, + 0x02,0xF0,0x10,0xF8,0x01,0x99,0xC8,0x53,0x00,0x98,0x03,0x21,0xFE,0xF7,0x6A,0xFE, + 0x00,0x29,0x01,0xD0,0x02,0x29,0x0D,0xD1,0xBA,0x98,0x00,0x7D,0x00,0x28,0x02,0xD1, + 0x00,0x22,0x43,0x1E,0x01,0xE0,0x01,0x22,0x00,0x23,0x21,0x00,0x28,0x00,0x06,0xF0, + 0xD9,0xF8,0x0B,0xE0,0x00,0x22,0xD2,0x43,0x00,0x23,0x21,0x00,0x28,0x00,0x06,0xF0, + 0xD1,0xF8,0x00,0x28,0x02,0xD1,0x00,0x22,0x01,0x23,0xEE,0xE7,0x64,0x1C,0x0E,0x2C, + 0xB7,0xD3,0x6D,0x1C,0x16,0x2D,0xB3,0xD3,0x00,0x98,0x40,0x1C,0x00,0x90,0xB8,0x98, + 0x40,0x1E,0xB8,0x90,0x18,0xD2,0x00,0x25,0x00,0x24,0x0E,0x20,0x2E,0x00,0x46,0x43, + 0x01,0x99,0x30,0x19,0x40,0x00,0x0A,0x5A,0x21,0x00,0x28,0x00,0x06,0xF0,0xCE,0xF8, + 0x64,0x1C,0x0E,0x2C,0xF4,0xD3,0x6D,0x1C,0x16,0x2D,0xED,0xD3,0x7F,0xB0,0x3C,0xB0, + 0xF0,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x00,0xF0,0xD2,0xFF,0x8D,0xE7,0x00,0x00, + 0xD4,0x02,0x10,0x40,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x10,0x20,0x93,0x00,0x00, + 0xD2,0x02,0x00,0x00,0x99,0x05,0x00,0x20,0xF8,0xB5,0x01,0x22,0x52,0x07,0x10,0x68, + 0x01,0x28,0x03,0xD0,0x10,0x68,0x01,0x28,0x43,0xD9,0x02,0x20,0x86,0x46,0x22,0x48, + 0x00,0x90,0x80,0x7D,0x00,0x28,0x3C,0xD0,0x00,0x21,0x05,0x25,0x1F,0x4F,0x2D,0x02, + 0x32,0xE0,0x72,0x46,0x8A,0x18,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F, + 0xC0,0x07,0x28,0xD1,0x00,0x9C,0x93,0x00,0xA6,0x7D,0x1B,0x0F,0x21,0xE0,0x84,0x00, + 0xE4,0x19,0x64,0x19,0xA4,0x69,0xA4,0x00,0x24,0x0F,0xA3,0x42,0x18,0xD1,0x80,0x00, + 0xC0,0x19,0x40,0x19,0x80,0x69,0x92,0x0A,0x83,0x05,0x92,0x02,0x9B,0x0D,0x1A,0x43, + 0x0F,0x4B,0x1A,0x40,0x83,0x01,0x9B,0x0D,0x1B,0x04,0x1A,0x43,0x3F,0x23,0x9B,0x02, + 0x00,0x04,0x80,0x0E,0x9A,0x43,0x80,0x02,0x02,0x43,0x60,0x46,0x02,0x60,0x02,0xE0, + 0x40,0x1C,0x86,0x42,0xDB,0xD8,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42, + 0xC7,0xD8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x40,0x05,0x00,0x20,0x40,0x00,0x00,0x20, + 0xFF,0xFF,0x00,0xFC,0xFC,0xB5,0x04,0x00,0x60,0x48,0x8E,0x46,0x02,0x8C,0x60,0x49, + 0x40,0x8C,0x01,0x91,0x4B,0x8A,0x20,0x39,0x00,0x91,0x89,0x79,0x00,0x25,0x2F,0x00, + 0xC9,0x07,0x01,0x26,0x00,0x29,0xAC,0x46,0x01,0xD1,0xE6,0x71,0xAA,0xE0,0x01,0x99, + 0x09,0x7C,0x00,0x29,0x0D,0xD0,0x01,0x29,0x0F,0xD0,0x02,0x29,0x07,0xD0,0x03,0x29, + 0xF4,0xD1,0x17,0x00,0xD1,0x18,0x0A,0x04,0x12,0x0C,0x03,0x00,0x05,0xE0,0x1A,0x00, + 0xFB,0xE7,0x84,0x46,0xC0,0x18,0x03,0x04,0x1B,0x0C,0x60,0x88,0xA1,0x88,0x87,0x42, + 0x5C,0xDC,0x82,0x42,0x5A,0xDB,0x8C,0x45,0x58,0xDC,0x8B,0x42,0x56,0xDB,0x01,0x25, + 0x72,0x46,0x00,0x2A,0x7B,0xD0,0x06,0x27,0x01,0x2A,0x0E,0xD0,0x02,0x2A,0x18,0xD0, + 0x03,0x2A,0x76,0xD1,0xE2,0x79,0xD3,0x07,0x2D,0xD0,0x01,0x2A,0x01,0xD0,0x05,0x2A, + 0x27,0xD1,0x09,0x20,0x00,0x25,0xE0,0x71,0x6B,0xE0,0x00,0x9A,0x92,0x78,0x00,0x2A, + 0x67,0xD1,0x00,0xF0,0x79,0xF8,0x06,0x00,0x0F,0xD1,0x02,0x20,0xE0,0x71,0x26,0x72, + 0x5F,0xE0,0xE2,0x79,0xD3,0x07,0xE8,0xD1,0x92,0x07,0x5A,0xD5,0x00,0xF0,0x6C,0xF8, + 0x06,0x00,0x08,0xD0,0x20,0x7A,0x00,0x28,0x05,0xD1,0x31,0x00,0x20,0x00,0xE7,0x71, + 0xFE,0xF7,0x1E,0xFE,0xEB,0xE7,0x31,0x00,0x20,0x00,0xE7,0x71,0xFE,0xF7,0x18,0xFE, + 0x47,0xE0,0x11,0x20,0x44,0xE0,0x92,0x07,0x43,0xD5,0x00,0xF0,0x55,0xF8,0x21,0x7A, + 0x00,0x28,0x0A,0xD0,0x00,0x29,0x0C,0xD0,0x81,0x42,0x08,0xD1,0x0A,0x20,0xE0,0x71, + 0x20,0x00,0xFE,0xF7,0x05,0xFE,0xA6,0x71,0x05,0xE0,0x00,0x29,0x01,0xD0,0x12,0x20, + 0xF5,0xE7,0x02,0x20,0xE0,0x71,0x00,0x20,0x20,0x72,0x2A,0xE0,0x70,0x46,0x00,0x28, + 0x25,0xD0,0x01,0x28,0x06,0xD0,0x02,0x28,0x06,0xD0,0x03,0x28,0x21,0xD1,0xE0,0x79, + 0x80,0x07,0x0E,0xD4,0xE6,0x71,0x1C,0xE0,0xE0,0x79,0x80,0x07,0xFA,0xD5,0x21,0x7A, + 0x00,0x29,0x04,0xD0,0x12,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0xE1,0xFD,0xE6,0x71, + 0x09,0xE0,0x02,0x20,0xE0,0x71,0x21,0x7A,0x00,0x29,0x04,0xD0,0x0A,0x20,0xE0,0x71, + 0x20,0x00,0xFE,0xF7,0xD5,0xFD,0x01,0x25,0xA6,0x71,0x02,0xE0,0xFF,0xE7,0x00,0x20, + 0xE0,0x71,0x08,0x49,0xC8,0x88,0x82,0x07,0x04,0xD1,0xE2,0x79,0x92,0x07,0x92,0x0F, + 0x10,0x43,0xC8,0x80,0x28,0x00,0xFC,0xBC,0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00, + 0x00,0x05,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB4,0x16,0x4B,0x04,0x00,0xDE,0x79, + 0x00,0x22,0x10,0x00,0x00,0x2E,0x23,0xD0,0x1B,0x78,0x00,0x2B,0x20,0xD1,0x12,0x4F, + 0x1C,0xE0,0xD3,0x00,0xDD,0x19,0x25,0x23,0x5B,0x01,0xEB,0x18,0x08,0x25,0x5D,0x5F, + 0xA5,0x42,0x0E,0xDC,0x0C,0x25,0x5D,0x5F,0xA5,0x42,0x0A,0xDB,0x0A,0x25,0x5D,0x5F, + 0x8D,0x42,0x06,0xDC,0x0E,0x25,0x5D,0x5F,0x8D,0x42,0x02,0xDB,0x50,0x1C,0x00,0x06, + 0x00,0x0E,0x00,0x28,0x04,0xD1,0x52,0x1C,0x12,0x06,0x12,0x0E,0x96,0x42,0xE0,0xD8, + 0xF0,0xBC,0x70,0x47,0xE0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB5,0x00,0x20, + 0x8F,0xB0,0xB5,0x4D,0x0D,0x90,0x0C,0x90,0x29,0x68,0x08,0x88,0x0B,0x90,0x08,0x00, + 0x40,0x30,0xC2,0x7F,0x60,0x31,0x0A,0x92,0x82,0x7F,0x09,0x92,0x49,0x78,0x08,0x91, + 0x81,0x7D,0x07,0x91,0xAD,0x49,0xCA,0x88,0x09,0x79,0x13,0x07,0x05,0xD5,0xAB,0x4B, + 0x00,0x29,0x02,0xD1,0x08,0x24,0xA2,0x43,0xDA,0x80,0xA9,0x4A,0x12,0x78,0x00,0x2A, + 0x07,0xD0,0xFF,0x20,0x06,0x90,0x05,0x90,0x08,0x20,0x04,0x90,0xA5,0x4F,0x96,0x20, + 0x07,0xE0,0x02,0x7C,0x47,0x8B,0x06,0x92,0x42,0x7C,0x05,0x92,0x82,0x7C,0x04,0x92, + 0xC0,0x7C,0x03,0x90,0x0B,0x98,0x80,0x04,0x7E,0xD5,0x9F,0x4A,0x00,0x20,0x52,0x78, + 0x00,0x2A,0x02,0xD1,0x00,0x29,0x00,0xD1,0x01,0x20,0x00,0x90,0x00,0xF0,0x3C,0xF9, + 0x96,0x48,0x9A,0x4C,0x00,0x79,0x00,0x28,0x0E,0x90,0x4A,0xD0,0x93,0x49,0x01,0x20, + 0x0E,0x89,0xBE,0x42,0x00,0xD3,0x00,0x20,0x02,0x90,0x30,0x00,0x0A,0x22,0x1A,0x21, + 0x50,0x43,0x61,0x5E,0x0F,0x00,0xFE,0xF7,0x3D,0xFB,0x06,0x99,0x88,0x42,0x01,0xDA, + 0x01,0x20,0x00,0xE0,0x00,0x20,0x01,0x90,0xF0,0x1B,0x0A,0x21,0xFE,0xF7,0x32,0xFB, + 0x05,0x99,0x88,0x42,0x01,0xDA,0x01,0x21,0x00,0xE0,0x00,0x21,0xA3,0x8A,0x04,0x9E, + 0x01,0x22,0x10,0x00,0xB3,0x42,0x00,0xD8,0x00,0x20,0xE3,0x69,0x03,0x9E,0xB3,0x42, + 0x00,0xDB,0x00,0x22,0x02,0x9B,0x00,0x2B,0x1B,0xD0,0x01,0x9B,0x00,0x2B,0x18,0xD0, + 0x00,0x29,0x16,0xD0,0x00,0x28,0x14,0xD0,0x00,0x2A,0x12,0xD0,0x77,0x48,0xC0,0x30, + 0xC0,0x6A,0x00,0x28,0x0D,0xD1,0x7A,0x48,0x00,0x88,0x1E,0x28,0x09,0xD2,0x60,0x7E, + 0x00,0x28,0x1C,0xD0,0x29,0x68,0x40,0x31,0x49,0x7E,0x88,0x42,0x17,0xD8,0x40,0x1E, + 0x14,0xE0,0x29,0x68,0xE0,0x69,0x40,0x31,0x0A,0x7D,0x90,0x42,0x0F,0xDB,0x0E,0x98, + 0x6A,0x4A,0x00,0x28,0x0B,0xD0,0xD0,0x88,0xC0,0x06,0x08,0xD4,0x60,0x7E,0xC9,0x7D, + 0x88,0x42,0x04,0xD2,0x07,0x99,0x88,0x42,0x01,0xD9,0x40,0x1C,0x60,0x76,0x60,0x7E, + 0x07,0x99,0x10,0x22,0x88,0x42,0x0D,0xD8,0x00,0x98,0x00,0x28,0x0A,0xD1,0x5F,0x48, + 0xC1,0x88,0x11,0x43,0xC1,0x80,0x00,0xE0,0x11,0xE0,0x28,0x68,0x40,0x30,0x00,0x7E, + 0x20,0x76,0x0F,0xE0,0x59,0x4B,0xD8,0x88,0xC1,0x06,0x0B,0xD5,0x21,0x7E,0x00,0x29, + 0x06,0xD1,0x90,0x43,0xD8,0x80,0x28,0x68,0x40,0x30,0x40,0x7D,0x60,0x76,0x01,0xE0, + 0x49,0x1E,0x21,0x76,0x51,0x4F,0x38,0x79,0x00,0x28,0x7E,0xD0,0xF8,0x88,0x80,0x06, + 0x09,0xD5,0x08,0x99,0x09,0x98,0x88,0x42,0x03,0xD9,0x40,0x1A,0x00,0x06,0x00,0x0E, + 0x00,0xE0,0x01,0x20,0x09,0x90,0x01,0x22,0x50,0x00,0xC0,0x19,0x84,0x46,0xFF,0x30, + 0x61,0x30,0xC1,0x89,0x03,0x00,0x00,0x29,0x77,0xD0,0x0B,0x9C,0x00,0x20,0xA4,0x07, + 0x10,0xD5,0x43,0x4C,0x24,0x78,0x00,0x2C,0x03,0xD1,0x0A,0x9C,0xA1,0x42,0x09,0xD9, + 0x01,0xE0,0x0F,0x29,0x06,0xD9,0x00,0x20,0x38,0x71,0xF8,0x88,0x08,0x21,0x08,0x43, + 0xF8,0x80,0x01,0x20,0x0B,0x99,0x49,0x07,0x5F,0xD5,0x00,0x28,0x5D,0xD1,0xD8,0x89, + 0x09,0x99,0x88,0x42,0x59,0xD3,0x3B,0x48,0x00,0x88,0x00,0x28,0x55,0xD0,0x00,0x23, + 0x01,0x20,0x29,0xE0,0xFF,0x24,0x39,0x18,0x66,0x34,0x64,0x5C,0x94,0x42,0x22,0xD1, + 0x5B,0x1C,0xFF,0x31,0x21,0x31,0x09,0x7E,0x0D,0x91,0x01,0x00,0x14,0xE0,0x4C,0x00, + 0xE4,0x19,0x25,0x00,0xE0,0x35,0xEE,0x8A,0xFF,0x34,0x01,0x34,0xAE,0x82,0x26,0x89, + 0xE6,0x80,0x7C,0x18,0x25,0x00,0xFF,0x35,0x21,0x35,0x6E,0x7E,0xFF,0x34,0x61,0x34, + 0x2E,0x76,0xA6,0x79,0x49,0x1C,0x66,0x71,0x3C,0x79,0x8C,0x42,0xE7,0xDA,0x39,0x79, + 0x49,0x1E,0x40,0x1E,0x39,0x71,0x40,0x1C,0x39,0x79,0x81,0x42,0xD2,0xDA,0x00,0x2B, + 0x23,0xDD,0x01,0x2B,0x05,0xDD,0x01,0x20,0x0C,0x90,0xF8,0x88,0x20,0x21,0x08,0x43, + 0xF8,0x80,0x39,0x79,0x60,0x46,0xFF,0x30,0x49,0x1C,0x41,0x30,0x09,0x06,0xC3,0x88, + 0x09,0x0E,0x39,0x71,0x49,0x00,0xC9,0x19,0x01,0xE0,0x19,0xE0,0x0D,0xE0,0xE0,0x31, + 0x8B,0x82,0xC1,0x8A,0x38,0x79,0x40,0x00,0xC0,0x19,0xFF,0x30,0x01,0x30,0xC1,0x80, + 0x3B,0x79,0x0D,0x49,0x0D,0x98,0x48,0x39,0x58,0x54,0x52,0x1C,0x08,0x2A,0x00,0xDA, + 0x7A,0xE7,0x0C,0x98,0x00,0x28,0x03,0xD1,0xF8,0x88,0x20,0x21,0x88,0x43,0xF8,0x80, + 0x0F,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xF0,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0xA3,0x05,0x00,0x20,0xDC,0x05,0x00,0x00,0xC0,0x01,0x00,0x20,0xC0,0x04,0x00,0x20, + 0xAE,0x05,0x00,0x20,0x0C,0x06,0x00,0x20,0xF0,0xB5,0x60,0x48,0x60,0x4C,0x01,0x78, + 0x20,0x68,0x05,0x22,0x60,0x30,0x00,0x29,0xB7,0xB0,0x00,0xD1,0x02,0x79,0x33,0x92, + 0x02,0x22,0x00,0x29,0x00,0xD1,0x42,0x79,0x5A,0x4E,0x00,0x20,0x32,0x92,0x70,0x83, + 0xF0,0x61,0x31,0x90,0x30,0x90,0x60,0x21,0x18,0xA8,0xFE,0xF7,0x73,0xFB,0x60,0x21, + 0x68,0x46,0xFE,0xF7,0x6F,0xFB,0x20,0x68,0x71,0x7E,0x40,0x30,0xC0,0x7D,0x81,0x42, + 0x78,0xD0,0x32,0x9D,0x0E,0x21,0x48,0x1B,0x34,0x90,0x5D,0xE0,0x33,0x98,0x16,0x22, + 0x11,0x1A,0x36,0x91,0x32,0x99,0x69,0x1A,0x8C,0x00,0x1A,0xE0,0x4A,0x4F,0x6A,0x00, + 0xD2,0x19,0xB8,0x23,0xD3,0x5E,0x0E,0x21,0x42,0x00,0x41,0x43,0xD2,0x19,0x88,0x27, + 0xD7,0x5F,0x49,0x19,0x09,0x04,0xDA,0x19,0x44,0x4B,0x09,0x14,0x49,0x00,0x59,0x5E, + 0x51,0x18,0x31,0x9A,0x52,0x18,0x31,0x92,0x18,0xAA,0x13,0x59,0x59,0x18,0x40,0x1C, + 0x11,0x51,0x36,0x99,0x81,0x42,0xE1,0xDC,0x33,0x98,0x16,0x21,0x40,0x00,0x09,0x1A, + 0x18,0xAF,0x35,0x90,0x38,0x59,0xFE,0xF7,0xBD,0xF9,0x38,0x51,0x33,0x99,0x84,0x46, + 0x1A,0xE0,0x0E,0x20,0x48,0x43,0x35,0x4A,0x40,0x19,0x40,0x00,0x12,0x5E,0x60,0x46, + 0x31,0x4B,0x12,0x1A,0x68,0x00,0xC0,0x18,0xB8,0x23,0xC3,0x5E,0x2E,0x48,0x4F,0x00, + 0x3F,0x18,0x88,0x20,0x38,0x5E,0x18,0x18,0x12,0x18,0x17,0x00,0x57,0x43,0x68,0x46, + 0x03,0x59,0xDA,0x19,0x49,0x1C,0x02,0x51,0x36,0x98,0x88,0x42,0xE1,0xDC,0x35,0x98, + 0x15,0x21,0x09,0x1A,0x6F,0x46,0x38,0x59,0xFE,0xF7,0x94,0xF9,0x38,0x51,0x30,0x99, + 0x40,0x18,0x30,0x90,0x34,0x98,0x6D,0x1C,0xA8,0x42,0x9F,0xDC,0x33,0x98,0x41,0x00, + 0x16,0x20,0x41,0x1A,0x32,0x98,0x45,0x00,0x0E,0x20,0x44,0x1B,0x61,0x43,0x31,0x98, + 0xFE,0xF7,0x80,0xF9,0x70,0x83,0x30,0x98,0x21,0x00,0xFE,0xF7,0x7B,0xF9,0x00,0x21, + 0x6B,0x46,0x09,0xE0,0x18,0xE0,0x8A,0x00,0x9A,0x58,0x82,0x1A,0x17,0x00,0x57,0x43, + 0xF2,0x69,0xBA,0x18,0x49,0x1C,0xF2,0x61,0x8C,0x42,0xF4,0xDC,0x0D,0x20,0x41,0x1B, + 0xF0,0x69,0xFE,0xF7,0x67,0xF9,0x33,0x9B,0x16,0x22,0x34,0x99,0xD2,0x1A,0x12,0x03, + 0x51,0x43,0xFE,0xF7,0x5F,0xF9,0xF0,0x61,0x1A,0x20,0x30,0x5E,0x00,0x28,0x01,0xD1, + 0x40,0x1C,0x70,0x83,0x37,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xA3,0x05,0x00,0x20, + 0xF0,0x06,0x00,0x20,0xC0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x00,0x00,0x10, + 0x10,0xB5,0x00,0x28,0x06,0xD1,0x14,0x48,0x00,0x69,0x00,0x04,0x00,0x0E,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x11,0x49,0x09,0x6B,0x11,0x4A,0x12,0x4B,0x8A,0x18,0x9A,0x42, + 0x16,0xD2,0x00,0x04,0x00,0x0C,0x48,0x43,0x59,0x1E,0xFE,0xF7,0x63,0xFA,0x04,0x00, + 0x0A,0x21,0xFE,0xF7,0x5F,0xFA,0x04,0x29,0x00,0xD9,0x0A,0x34,0x0A,0x21,0x20,0x00, + 0xFE,0xF7,0x58,0xFA,0x08,0x49,0x49,0x7C,0x08,0x18,0xFF,0x28,0x00,0xD9,0xFF,0x20, + 0x00,0x06,0x00,0x0E,0xDB,0xE7,0x00,0x00,0x00,0x90,0x00,0x40,0x00,0x70,0x00,0x40, + 0x90,0x6B,0xFF,0xFF,0xA1,0x0F,0x00,0x00,0x60,0x93,0x00,0x00,0xF8,0xB5,0x74,0x4C, + 0x00,0x25,0x60,0x7C,0x00,0x28,0x06,0xD0,0xA0,0x6E,0x00,0x04,0x00,0x0C,0x06,0xF0, + 0x73,0xF8,0x06,0xF0,0x61,0xF8,0x01,0x20,0x40,0x03,0xFE,0xF7,0x2F,0xFE,0xFE,0xF7, + 0xA9,0xFA,0x05,0xF0,0x01,0xFB,0x05,0xF0,0x15,0xFB,0x05,0xF0,0x4B,0xFD,0x69,0x48, + 0x01,0x26,0x86,0x60,0x1F,0x20,0x01,0xF0,0x6D,0xFD,0x67,0x48,0x00,0x90,0xB9,0xE0, + 0x66,0x48,0x41,0x68,0x09,0x07,0x0B,0xD5,0xC1,0x68,0x00,0x29,0x08,0xD0,0xC0,0x68, + 0x07,0x28,0x03,0xD1,0x01,0x21,0x49,0x07,0xC8,0x63,0xB0,0xE0,0x04,0xF0,0xB8,0xFE, + 0x60,0x7C,0x00,0x28,0x04,0xD0,0xA0,0x6E,0x00,0x04,0x00,0x0C,0x06,0xF0,0x44,0xF8, + 0x80,0x20,0xFE,0xF7,0x03,0xFE,0x03,0x20,0x05,0xF0,0xB2,0xFE,0x01,0x20,0x40,0x03, + 0xFE,0xF7,0xFC,0xFD,0xE0,0x7D,0x00,0x28,0x01,0xD0,0x06,0x20,0x0A,0xE0,0x54,0x48, + 0xC0,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5,0x04,0x20, + 0x00,0xE0,0x02,0x20,0x05,0xF0,0x20,0xFD,0x00,0xF0,0xCC,0xFB,0x00,0xF0,0x88,0xFB, + 0x00,0xF0,0x96,0xFB,0x4B,0x48,0x06,0x61,0x00,0xF0,0x00,0xFC,0x00,0xF0,0x78,0xFB, + 0x01,0x20,0x80,0x03,0xFE,0xF7,0xDA,0xFD,0x00,0xF0,0x8A,0xFB,0x00,0xF0,0xF6,0xFB, + 0xFE,0xF7,0x1C,0xFB,0xA0,0x7D,0x00,0x28,0x05,0xD1,0x00,0x98,0x00,0x7B,0x00,0x28, + 0x01,0xD0,0x04,0xF0,0xE3,0xFC,0x03,0xF0,0xA1,0xFC,0x00,0x28,0x00,0xD0,0x26,0x70, + 0x20,0x8C,0x3D,0x4F,0xB8,0x42,0x01,0xD2,0x40,0x1C,0x20,0x84,0x20,0x78,0x00,0x28, + 0x05,0xD1,0x00,0x22,0x11,0x00,0x10,0x00,0x01,0x23,0x00,0xF0,0x6F,0xF9,0x03,0x20, + 0x40,0x03,0xFE,0xF7,0xAB,0xFD,0x20,0x78,0x00,0x28,0x05,0xD0,0xA0,0x7D,0x00,0x09, + 0x04,0x28,0x4C,0xD1,0x00,0x20,0x20,0x70,0x03,0x20,0x05,0xF0,0x33,0xFE,0x60,0x66, + 0x03,0x20,0x05,0xF0,0x65,0xFE,0x80,0x20,0xFE,0xF7,0x98,0xFD,0x28,0x49,0xC8,0x8B, + 0x00,0x28,0x02,0xD0,0x40,0x1E,0xC8,0x83,0x34,0xE0,0xA0,0x7B,0x00,0x28,0x31,0xD1, + 0x60,0x6B,0x00,0x28,0x2E,0xD0,0x28,0x00,0x6D,0x1C,0xB8,0x42,0x60,0x6E,0x01,0xD3, + 0x22,0x49,0x01,0xE0,0x7D,0x21,0xC9,0x00,0x0C,0x1A,0xFF,0x20,0x91,0x30,0x84,0x42, + 0x20,0xDD,0xFF,0x27,0x01,0x37,0x38,0x00,0xFE,0xF7,0x80,0xFD,0x02,0x20,0x05,0xF0, + 0x3F,0xFE,0x0A,0x21,0x20,0x00,0xFE,0xF7,0x4D,0xF8,0x41,0x11,0x02,0x20,0x05,0xF0, + 0x1F,0xFE,0x04,0x20,0xFE,0xF7,0xAA,0xFD,0x02,0x20,0x05,0xF0,0x21,0xFE,0x11,0x48, + 0x06,0x61,0xFF,0x20,0xFE,0xF7,0xA2,0xFD,0x02,0x20,0x05,0xF0,0x29,0xFE,0x38,0x00, + 0xFE,0xF7,0x5C,0xFD,0x06,0x4C,0x20,0x78,0x00,0x28,0x00,0xD1,0x40,0xE7,0x04,0x48, + 0x40,0x7C,0x00,0x28,0x01,0xD0,0x05,0xF0,0x8F,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x8C,0x05,0x00,0x20,0x00,0x90,0x00,0x40,0x80,0x93,0x00,0x00,0x00,0x40,0x00,0x30, + 0x40,0x00,0x00,0x20,0x40,0x00,0x00,0x40,0x10,0x27,0x00,0x00,0x30,0x75,0x00,0x00, + 0x10,0xB4,0x0F,0x4B,0x00,0x22,0xD2,0x43,0x81,0x00,0x5A,0x52,0xCB,0x18,0x5A,0x80, + 0x0B,0x4B,0x0B,0x4C,0x24,0x33,0x5A,0x52,0xCB,0x18,0x5A,0x80,0x00,0x23,0x42,0x00, + 0x1C,0x3C,0xA3,0x52,0x22,0x00,0x12,0x32,0x13,0x54,0x18,0x00,0x52,0x32,0x8A,0x18, + 0x81,0x00,0x53,0x52,0x51,0x18,0x40,0x1E,0x4B,0x80,0xF9,0xD5,0x10,0xBC,0x70,0x47, + 0xE4,0x09,0x00,0x20,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x10,0xB5,0x0C,0x48, + 0x09,0x22,0x00,0x21,0xFE,0xF7,0x42,0xF9,0x0A,0x48,0x5A,0x22,0x00,0x21,0xFE,0xF7, + 0x3D,0xF9,0x08,0x48,0x00,0x24,0x00,0x1F,0x04,0x70,0x07,0x48,0x28,0x22,0x21,0x00, + 0xFE,0xF7,0x34,0xF9,0x04,0x48,0x3A,0x38,0x44,0x70,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0xDB,0x02,0x00,0x20,0xC4,0x01,0x00,0x20,0x1A,0x05,0x00,0x20,0x10,0xB5,0x17,0x48, + 0x12,0x22,0x00,0x21,0xFE,0xF7,0x22,0xF9,0x14,0x48,0x12,0x22,0x00,0x21,0x12,0x30, + 0xFE,0xF7,0x1C,0xF9,0x11,0x48,0x09,0x22,0x00,0x21,0x44,0x30,0xFE,0xF7,0x16,0xF9, + 0x0E,0x48,0x20,0x22,0x00,0x21,0x24,0x30,0xFE,0xF7,0x10,0xF9,0x0B,0x48,0x10,0x22, + 0x00,0x21,0x52,0x30,0xFE,0xF7,0x0A,0xF9,0x08,0x48,0x10,0x22,0x00,0x21,0x62,0x30, + 0xFE,0xF7,0x04,0xF9,0x05,0x49,0x00,0x20,0x6C,0x31,0xC8,0x83,0xFF,0x39,0x61,0x39, + 0x08,0x71,0x88,0x83,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x34,0x01,0x00,0x20, + 0x8C,0x10,0x9F,0xE5,0x10,0x40,0x2D,0xE9,0x00,0x10,0x91,0xE5,0x84,0xC0,0x9F,0xE5, + 0x7E,0xE0,0xD1,0xE5,0x08,0x10,0xA0,0xE3,0x00,0x30,0xA0,0xE3,0x01,0x22,0x8C,0xE0, + 0x80,0x20,0x82,0xE0,0xB5,0x4F,0xA0,0xE3,0xB2,0x30,0x84,0xE1,0x03,0x2C,0x82,0xE2, + 0x01,0x10,0x51,0xE2,0xB4,0x36,0xC2,0xE1,0xF7,0xFF,0xFF,0x5A,0x01,0x20,0xA0,0xE3, + 0x00,0x10,0x8C,0xE0,0xCC,0x22,0xC1,0xE5,0x80,0x20,0x8C,0xE0,0x03,0x2C,0x82,0xE2, + 0xB4,0x3F,0xC2,0xE1,0x04,0xE4,0xC1,0xE5,0x0C,0x34,0xC1,0xE5,0x05,0x10,0xA0,0xE3, + 0x01,0x22,0x8C,0xE0,0x80,0x20,0x82,0xE0,0x01,0x2B,0x82,0xE2,0x01,0x10,0x51,0xE2, + 0xB4,0x31,0xC2,0xE1,0xF9,0xFF,0xFF,0x5A,0x00,0x01,0x8C,0xE0,0x00,0x10,0xE0,0xE3, + 0x01,0x0B,0x80,0xE2,0xB4,0x17,0xC0,0xE1,0xB6,0x17,0xC0,0xE1,0x10,0x40,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0xF0,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x10,0xB5,0x06,0x48, + 0x1E,0x22,0x00,0x21,0xFE,0xF7,0xA2,0xF8,0x04,0x48,0x00,0x21,0x81,0x74,0x41,0x74, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xEE,0x02,0x00,0x20,0x20,0x01,0x00,0x20, + 0x10,0xB5,0x05,0xF0,0x65,0xFD,0x04,0xF0,0xF5,0xFB,0xFF,0xF7,0x47,0xFF,0x04,0xF0, + 0x67,0xFD,0x01,0xF0,0xAD,0xFD,0x01,0xF0,0x25,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x09,0x4B,0x10,0xB4,0x1B,0x68,0x80,0x33,0x1B,0x7B,0x04,0x1E,0x00,0xDC,0x44,0x42, + 0x9C,0x42,0x06,0xDD,0x98,0x42,0x01,0xDD,0xC8,0x1A,0x00,0xE0,0xC8,0x18,0x02,0x04, + 0x12,0x0C,0x10,0xBC,0x10,0x00,0x70,0x47,0xF0,0x06,0x00,0x20,0xFF,0xB5,0x66,0x48, + 0xFF,0xB0,0x00,0x7D,0xC0,0xB0,0x00,0x28,0x03,0xD0,0x01,0x20,0xBC,0x90,0x00,0x20, + 0x02,0xE0,0x00,0x20,0xBC,0x90,0x01,0x20,0xBB,0x90,0x60,0x48,0x00,0x25,0xBD,0x90, + 0x5F,0x48,0x2E,0x00,0x01,0x8B,0x05,0x91,0x41,0x8B,0x04,0x91,0x81,0x8A,0x03,0x91, + 0xC0,0x8A,0x02,0x90,0x5B,0x48,0x00,0x7D,0x01,0x90,0x00,0x24,0x0E,0x20,0x70,0x43, + 0xBE,0x90,0x07,0x19,0x21,0x00,0x30,0x00,0x01,0xF0,0x7E,0xF9,0x52,0x4A,0x00,0x21, + 0x20,0x3A,0x13,0x7D,0xDB,0x07,0x28,0xD0,0x53,0x4B,0x5B,0x7B,0x00,0x2B,0x01,0x9B, + 0x11,0xD0,0x9E,0x42,0x21,0xD1,0x91,0x7D,0xA1,0x42,0x1D,0xD0,0xD1,0x7D,0xA1,0x42, + 0x1A,0xD0,0x11,0x7E,0xA1,0x42,0x17,0xD0,0x51,0x7E,0xA1,0x42,0x14,0xD0,0x91,0x7E, + 0xA1,0x42,0x41,0xD1,0x10,0xE0,0x9C,0x42,0x0F,0xD1,0x91,0x7D,0xB1,0x42,0x0B,0xD0, + 0xD1,0x7D,0xB1,0x42,0x08,0xD0,0x11,0x7E,0xB1,0x42,0x05,0xD0,0x51,0x7E,0xB1,0x42, + 0x02,0xD0,0x91,0x7E,0xB1,0x42,0x2F,0xD1,0x01,0x21,0x02,0xAA,0x0C,0xCA,0x01,0x29, + 0x05,0xD1,0x05,0x99,0x04,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C,0x02,0xE0,0xC1,0x18, + 0x09,0x04,0x09,0x0C,0x80,0x1A,0xBD,0x9B,0x02,0x04,0xB8,0x00,0x18,0x58,0xC0,0x9B, + 0x12,0x0C,0x00,0x2B,0x02,0xD0,0x00,0x05,0x00,0x0D,0x01,0xE0,0x00,0x01,0x00,0x0D, + 0xC2,0x9B,0x00,0x2B,0x0C,0xD0,0x90,0x42,0x02,0xDA,0xBF,0x9B,0xBC,0x9A,0x03,0xE0, + 0x88,0x42,0x09,0xDD,0xBF,0x9B,0xBB,0x9A,0x21,0x00,0x30,0x00,0x00,0xF0,0x7C,0xF8, + 0x68,0x00,0x06,0xA9,0x6D,0x1C,0x0F,0x52,0x64,0x1C,0x0E,0x2C,0x01,0xDA,0xBE,0x98, + 0x97,0xE7,0x76,0x1C,0x16,0x2E,0x90,0xDB,0x00,0x2D,0x38,0xDD,0xC1,0x98,0x00,0x28, + 0x35,0xD1,0x00,0xF0,0x4D,0xF9,0x00,0xF0,0x63,0xF9,0x00,0xF0,0xCF,0xF9,0x2C,0xE0, + 0x68,0x00,0x06,0xA9,0x08,0x5A,0x87,0x00,0xBD,0x98,0xC0,0x59,0x01,0x01,0x06,0x05, + 0xC2,0x98,0x0C,0x0D,0x36,0x0D,0x02,0x28,0x01,0xD1,0x64,0x21,0x04,0xE0,0x01,0x28, + 0x01,0xD1,0x1E,0x21,0x00,0xE0,0x00,0x21,0xB4,0x42,0x06,0xD2,0x30,0x1B,0x64,0x21, + 0x48,0x43,0xFD,0xF7,0x67,0xFE,0x00,0x19,0x05,0xE0,0xA0,0x1B,0x48,0x43,0x64,0x21, + 0xFD,0xF7,0x60,0xFE,0x20,0x1A,0x0D,0x49,0x00,0x04,0x00,0x0C,0x88,0x42,0x00,0xD9, + 0x08,0x00,0xBD,0x99,0x00,0x04,0x30,0x43,0xC8,0x51,0x6D,0x1E,0xD0,0xD5,0x7F,0xB0, + 0x44,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x20,0x93,0x00,0x00,0xD4,0x02,0x10,0x40, + 0xE0,0x95,0x00,0x00,0x00,0x05,0x00,0x20,0x8C,0x05,0x00,0x20,0xFF,0x0F,0x00,0x00, + 0x7C,0xB5,0x01,0x25,0x6D,0x07,0x28,0x68,0x02,0x28,0x17,0xD1,0xAC,0x68,0x69,0x46, + 0x20,0x05,0x00,0x0D,0x00,0x90,0x20,0x02,0x00,0x0D,0x01,0x90,0x01,0xA8,0x04,0xF0, + 0xD1,0xFD,0x08,0x48,0x00,0x99,0x04,0x40,0x01,0x98,0x09,0x05,0x00,0x05,0x00,0x0A, + 0x04,0x43,0x20,0x0B,0x00,0x03,0x09,0x0D,0x08,0x43,0xA8,0x60,0x7C,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xFF,0x0F,0x00,0xFF,0x30,0xB4,0x0E,0x25,0x68,0x43,0x14,0x4C, + 0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x09,0x0E,0x00,0x0A,0x00,0x2B,0x07,0xD0, + 0x00,0x2A,0x02,0xD0,0xC9,0x18,0xC0,0x18,0x0F,0xE0,0xC0,0x1A,0xC9,0x1A,0x0C,0xE0, + 0x00,0x2A,0x05,0xD0,0x88,0x42,0x01,0xDD,0x49,0x1C,0x06,0xE0,0x40,0x1C,0x04,0xE0, + 0x88,0x42,0x01,0xDD,0x40,0x1E,0x00,0xE0,0x49,0x1E,0x4A,0x1E,0xFF,0x2A,0x05,0xD2, + 0x42,0x1E,0xFF,0x2A,0x02,0xD2,0x00,0x02,0x08,0x43,0x60,0x53,0x30,0xBC,0x70,0x47, + 0x00,0x00,0x10,0x40,0xF0,0xB5,0x8B,0xB0,0x0E,0x27,0x16,0x20,0x04,0xA9,0x81,0xC1, + 0x06,0x90,0x53,0x48,0x53,0x49,0x0A,0x90,0x80,0x79,0x09,0x91,0xC2,0x07,0x0A,0xD0, + 0x80,0x07,0x03,0xD5,0x0D,0x20,0x03,0x21,0x05,0x90,0x02,0xE0,0x15,0x20,0x00,0x21, + 0x04,0x90,0x09,0x98,0x01,0x74,0x4C,0x48,0x0A,0x22,0x01,0x8C,0x40,0x8C,0x51,0x43, + 0x50,0x43,0x00,0x04,0x00,0x0C,0x01,0x90,0x05,0x98,0x0E,0x04,0x36,0x0C,0x00,0x28, + 0x7E,0xD0,0x04,0x98,0x00,0x28,0x7F,0xD0,0x05,0x98,0x41,0x00,0x30,0x00,0xFD,0xF7, + 0xC1,0xFD,0x05,0x04,0x2D,0x0C,0x00,0x24,0xBF,0x1C,0x0A,0xE0,0x30,0x00,0x60,0x43, + 0x05,0x99,0xFD,0xF7,0xB7,0xFD,0x3D,0x4A,0x61,0x00,0x40,0x19,0x89,0x18,0x64,0x1C, + 0x08,0x84,0xBC,0x42,0xF2,0xDB,0x04,0x98,0x41,0x00,0x01,0x98,0xFD,0xF7,0xAA,0xFD, + 0x06,0x9F,0x06,0x04,0x36,0x0C,0x00,0x24,0xBF,0x1C,0x0B,0xE0,0x01,0x98,0x04,0x99, + 0x60,0x43,0xFD,0xF7,0x9F,0xFD,0x31,0x4A,0x81,0x19,0x60,0x00,0x80,0x18,0x40,0x30, + 0x64,0x1C,0x81,0x82,0xBC,0x42,0xF1,0xDB,0x0A,0x98,0x80,0x79,0xC0,0x07,0x4B,0xD0, + 0x00,0x24,0x43,0xE0,0x29,0x4A,0x13,0x21,0x10,0x19,0x89,0x01,0x40,0x18,0x41,0x7D, + 0x0A,0x98,0x80,0x79,0x80,0x07,0x03,0xD5,0x05,0x98,0x02,0x95,0x03,0x91,0x03,0xE0, + 0x08,0x00,0x04,0x99,0x02,0x96,0x03,0x91,0x20,0x49,0x40,0x00,0x40,0x18,0x08,0x90, + 0x00,0x8C,0x0A,0x21,0x40,0x1B,0xFD,0xF7,0x75,0xFD,0x1C,0x4A,0xE1,0x00,0x89,0x18, + 0x25,0x22,0x52,0x01,0x8F,0x18,0x38,0x81,0x03,0x98,0x18,0x49,0x40,0x00,0x40,0x18, + 0x40,0x30,0x07,0x90,0x80,0x8A,0x0A,0x21,0x80,0x1B,0xFD,0xF7,0x63,0xFD,0x78,0x81, + 0x08,0x98,0x0A,0x21,0x00,0x8C,0x40,0x19,0xFD,0xF7,0x8C,0xFE,0xB8,0x81,0x07,0x98, + 0x0A,0x21,0x80,0x8A,0x80,0x19,0xFD,0xF7,0x85,0xFE,0xF8,0x81,0x02,0x98,0x0A,0x21, + 0x40,0x00,0xFD,0xF7,0x7F,0xFE,0x09,0x99,0x64,0x1C,0x48,0x82,0x0A,0x98,0x00,0xE0, + 0x02,0xE0,0xC0,0x79,0xA0,0x42,0xB5,0xDC,0x0B,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0xE0,0x04,0x00,0x20,0x00,0x05,0x00,0x20,0x00,0x93,0x00,0x00,0x40,0x00,0x00,0x20, + 0x02,0x49,0x08,0x68,0x04,0x22,0x90,0x43,0x08,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x02,0x48,0x01,0x68,0x04,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x02,0x48,0xC1,0x68,0x01,0x22,0x11,0x43,0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40, + 0x01,0x49,0xC8,0x68,0xC8,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68, + 0x08,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0xB5,0x22,0x10,0xB5, + 0x07,0x49,0x08,0x48,0x92,0x00,0xFD,0xF7,0x53,0xFE,0x07,0x48,0x07,0x4A,0xC0,0x8E, + 0x01,0x04,0x01,0x43,0x06,0x48,0xFD,0xF7,0x77,0xFE,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x9D,0x00,0x00,0x00,0x00,0x10,0x40,0x00,0x93,0x00,0x00,0xA4,0x05,0x00,0x00, + 0xD4,0x02,0x10,0x40,0x02,0x48,0x81,0x6B,0x49,0x08,0x49,0x00,0x81,0x63,0x70,0x47, + 0x80,0x90,0x00,0x40,0x02,0x48,0x81,0x6B,0x01,0x22,0x11,0x43,0x81,0x63,0x70,0x47, + 0x80,0x90,0x00,0x40,0x10,0xB5,0x0A,0x49,0x0A,0x48,0xFC,0x22,0xFD,0xF7,0x28,0xFE, + 0xFF,0x22,0x09,0x49,0x09,0x48,0xF1,0x32,0xFD,0xF7,0x22,0xFE,0x71,0x22,0x08,0x49, + 0x08,0x48,0xD2,0x00,0xFD,0xF7,0x1C,0xFE,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x04,0x96,0x00,0x00,0x04,0x90,0x00,0x40,0x00,0x97,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x00,0x99,0x00,0x00,0x78,0x08,0x10,0x40,0x03,0x48,0x41,0x68,0x01,0x22,0x12,0x04, + 0x11,0x43,0x41,0x60,0x70,0x47,0x00,0x00,0x00,0xA0,0x00,0x40,0x02,0x48,0x01,0x68, + 0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0xC1,0x68, + 0xC9,0x07,0xFC,0xD0,0x70,0x47,0x00,0x00,0x00,0x90,0x00,0x40,0xF0,0x47,0x2D,0xE9, + 0x00,0x80,0xA0,0xE1,0x1C,0x02,0x9F,0xE5,0x1C,0x72,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0x00,0x40,0xA0,0xE3,0xB4,0x67,0xD0,0xE1,0x76,0x00,0xD0,0xE5,0x01,0x50,0xA0,0xE3, + 0x90,0x00,0x01,0xE0,0x82,0x01,0xD7,0xE5,0xFF,0x90,0x01,0xE2,0x01,0x00,0x50,0xE3, + 0x0E,0x00,0x00,0xBA,0x05,0x01,0x85,0xE0,0x80,0x00,0x87,0xE0,0x38,0x12,0xD0,0xE5, + 0x00,0x00,0x51,0xE3,0x05,0x00,0x00,0x0A,0x02,0x0C,0x80,0xE2,0x3E,0x00,0x80,0xE2, + 0x0A,0x05,0x00,0xEB,0x00,0x00,0x50,0xE3,0x01,0x00,0x84,0x12,0xFF,0x40,0x00,0x12, + 0x82,0x01,0xD7,0xE5,0x01,0x50,0x85,0xE2,0x05,0x00,0x50,0xE1,0xF0,0xFF,0xFF,0xAA, + 0xB8,0x01,0x9F,0xE5,0x00,0x40,0x80,0xE5,0xB4,0x01,0x9F,0xE5,0xBC,0x1B,0xD0,0xE1, + 0xB0,0x3C,0xD0,0xE1,0xBE,0xCB,0xD0,0xE1,0x03,0x20,0x41,0xE0,0x00,0x00,0x52,0xE3, + 0x01,0x20,0x43,0xD0,0xB2,0x3C,0xD0,0xE1,0x02,0x18,0xA0,0xE1,0x21,0x18,0xA0,0xE1, + 0x03,0x20,0x4C,0xE0,0x00,0x00,0x52,0xE3,0x0C,0x20,0x43,0xD0,0xC8,0x32,0xD7,0xE5, + 0x02,0x28,0xA0,0xE1,0x22,0x28,0xA0,0xE1,0x00,0x00,0x53,0xE3,0xCB,0x32,0xD7,0x15, + 0xC8,0x00,0x53,0x13,0x01,0x00,0x00,0x2A,0x01,0x30,0x83,0xE2,0xCB,0x32,0xC7,0xE5, + 0xBE,0x3A,0xD0,0xE1,0x01,0xC0,0xA0,0xE3,0x14,0x00,0x53,0xE3,0x02,0x00,0x00,0x2A, + 0xB1,0x32,0xD7,0xE5,0x00,0x00,0x53,0xE3,0xB2,0xC2,0xC7,0x15,0x19,0x00,0x51,0xE3, + 0x19,0x00,0x52,0x93,0x03,0x00,0x00,0x9A,0xB0,0x32,0xD7,0xE5,0xC8,0x00,0x53,0xE3, + 0x01,0x30,0x83,0x32,0xB0,0x32,0xC7,0x35,0xF6,0x3C,0xD0,0xE1,0x02,0x00,0x54,0xE3, + 0x19,0x00,0x51,0x33,0x19,0x00,0x52,0x33,0x03,0x00,0x00,0x2A,0x04,0x00,0x53,0xE3, + 0x05,0x00,0x00,0xAA,0x01,0x30,0x83,0xE2,0x02,0x00,0x00,0xEA,0x03,0x00,0x73,0xE3, + 0x01,0x00,0x00,0xDA,0x01,0x30,0x43,0xE2,0xB6,0x3C,0xC0,0xE1,0xCB,0x32,0xD7,0xE5, + 0x01,0x00,0x53,0xE3,0x78,0x10,0xA0,0x83,0x0D,0x00,0x00,0x8A,0x02,0x00,0x54,0xE3, + 0x0C,0x00,0x00,0x2A,0xF6,0x3C,0xD0,0xE1,0x02,0x00,0x53,0xE3,0x09,0x00,0x00,0xDA, + 0xB0,0x32,0xD7,0xE5,0x14,0x00,0x53,0xE3,0x06,0x00,0x00,0x2A,0x47,0x10,0x41,0xE2, + 0x95,0x00,0x51,0xE3,0x47,0x10,0x42,0x22,0x95,0x00,0x51,0x23,0x01,0x00,0x00,0x2A, + 0x77,0x10,0xE0,0xE3,0xB4,0x1C,0xC0,0xE1,0x00,0x10,0xA0,0xE3,0x02,0x00,0x54,0xE3, + 0xCA,0x12,0xC7,0xE5,0x0A,0x00,0x00,0x2A,0xF4,0x1C,0xD0,0xE1,0x78,0x00,0x71,0xE3, + 0x03,0x00,0x00,0x1A,0xC9,0x12,0xD7,0xE5,0xC8,0x00,0x51,0xE3,0x01,0x10,0x81,0x32, + 0xC9,0x12,0xC7,0x35,0xC9,0x12,0xD7,0xE5,0x02,0x00,0x51,0xE3,0xCA,0xC2,0xC7,0x05, + 0x01,0x00,0x00,0xEA,0x3B,0x10,0xE0,0x83,0xB4,0x1C,0xC0,0x81,0xF4,0x0C,0xD0,0xE1, + 0x06,0x10,0x80,0xE0,0x91,0x01,0x00,0xE0,0x58,0x10,0x9F,0xE5,0x00,0x10,0xD1,0xE5, + 0x00,0x00,0x51,0xE3,0x50,0x10,0x9F,0xE5,0x96,0x06,0x00,0x10,0x00,0x10,0xD1,0xE5, + 0x01,0x00,0x51,0xE3,0xF0,0x47,0xBD,0x08,0x64,0x00,0xA0,0x03,0x1E,0xFF,0x2F,0x01, + 0x00,0x00,0x58,0xE3,0xF0,0x47,0xBD,0x18,0x1E,0xFF,0x2F,0x11,0x04,0x10,0xD7,0xE5, + 0x01,0x00,0x51,0xE3,0xF0,0x47,0xBD,0x08,0x1E,0xFF,0x2F,0x01,0x09,0x10,0xA0,0xE1, + 0xF0,0x47,0xBD,0xE8,0xCB,0xF5,0xFF,0xEA,0xF0,0x06,0x00,0x20,0x40,0x00,0x00,0x20, + 0xD4,0x05,0x00,0x20,0x40,0x02,0x00,0x20,0xA3,0x05,0x00,0x20,0x95,0x05,0x00,0x20, + 0x78,0x47,0xC0,0x46,0xD2,0x10,0xA0,0xE3,0x01,0x00,0xB0,0xE1,0x01,0x10,0x41,0xE2, + 0xFC,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x11,0x10,0xA0,0xE3, + 0x01,0x00,0xB0,0xE1,0x01,0x10,0x41,0xE2,0xFC,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1, + 0x02,0x48,0x41,0x6B,0x01,0x22,0x11,0x43,0x41,0x63,0x70,0x47,0x00,0x70,0x00,0x40, + 0x70,0x47,0x00,0x00,0x13,0x48,0x10,0xB5,0xC0,0x68,0x00,0x28,0x1F,0xD0,0x01,0x06, + 0x09,0x0F,0x03,0x29,0x01,0xD0,0x04,0x29,0x02,0xD1,0x00,0xF0,0xAD,0xF8,0x08,0xE0, + 0xF0,0x21,0x01,0x40,0x20,0x29,0x02,0xD2,0x00,0xF0,0x1A,0xF8,0x01,0xE0,0x04,0xF0, + 0x27,0xF9,0x09,0x48,0x82,0x68,0x81,0x15,0x8A,0x43,0x82,0x60,0x82,0x68,0x0A,0x43, + 0x82,0x60,0x06,0x48,0x40,0x7C,0x00,0x28,0x01,0xD0,0x05,0xF0,0x9D,0xFA,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x40,0x8C,0x05,0x00,0x20, + 0xF1,0xB5,0x43,0x48,0x2E,0x21,0x41,0x60,0x41,0x69,0x89,0x06,0xFC,0xD4,0x00,0x99, + 0x01,0x26,0x76,0x07,0xF1,0x63,0x84,0x69,0x3D,0x48,0x40,0x68,0x80,0x07,0xFB,0xD5, + 0x04,0xF0,0xFE,0xF8,0x3B,0x4D,0x68,0x7C,0x00,0x28,0x01,0xD0,0x05,0xF0,0x84,0xFA, + 0x00,0x9B,0x00,0x20,0x9B,0x1E,0xFF,0x27,0x42,0x1E,0x01,0x21,0x05,0xF0,0xB6,0xFA, + 0x1E,0x15,0x15,0x15,0x15,0x15,0x13,0x15,0x15,0x17,0x10,0x15,0x15,0x24,0x15,0x35, + 0x19,0x3B,0x41,0x47,0x15,0x4D,0x15,0x53,0x59,0x19,0x15,0x15,0x15,0x15,0x5F,0x15, + 0x0B,0x20,0xF0,0x63,0x1B,0xE0,0x00,0xF0,0xD5,0xF8,0xF7,0x63,0x17,0xE0,0xEC,0x66, + 0xFB,0xE7,0x03,0x20,0x00,0x07,0xC2,0x60,0x01,0x20,0x40,0x03,0xFE,0xF7,0x26,0xF8, + 0x00,0x98,0xFD,0xF7,0x77,0xFF,0x0A,0xE0,0x03,0x20,0x00,0x07,0xC2,0x60,0x01,0x20, + 0x40,0x03,0xFE,0xF7,0x1B,0xF8,0x00,0xF0,0x3F,0xFE,0x00,0xF0,0xD7,0xF8,0x1C,0x48, + 0x41,0x68,0x41,0x60,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x2C,0x01,0xD0,0xA9,0x73, + 0xDB,0xE7,0xA8,0x73,0xD9,0xE7,0x00,0x2C,0x01,0xD0,0xE9,0x73,0xD5,0xE7,0xE8,0x73, + 0xD3,0xE7,0x00,0x2C,0x01,0xD0,0x29,0x74,0xCF,0xE7,0x28,0x74,0xCD,0xE7,0x00,0x2C, + 0x01,0xD0,0x69,0x74,0xC9,0xE7,0x68,0x74,0xC7,0xE7,0x00,0x2C,0x01,0xD0,0xE9,0x74, + 0xC3,0xE7,0xE8,0x74,0xC1,0xE7,0x00,0x2C,0x01,0xD0,0x29,0x75,0xBD,0xE7,0x28,0x75, + 0xBB,0xE7,0x00,0x2C,0x01,0xD0,0x69,0x75,0xB7,0xE7,0x68,0x75,0xB5,0xE7,0x00,0x2C, + 0x01,0xD0,0xAC,0x75,0x00,0xE0,0xA8,0x75,0x04,0xF0,0x9E,0xFD,0xAD,0xE7,0x00,0x00, + 0x00,0x40,0x00,0x30,0x8C,0x05,0x00,0x20,0xF0,0xB5,0x34,0x4C,0x30,0x38,0x34,0x4A, + 0x34,0x4E,0x35,0x4F,0x35,0x49,0x25,0x68,0x03,0x00,0x05,0xF0,0x3F,0xFA,0x12,0x0A, + 0x0C,0x0E,0x12,0x16,0x1A,0x1C,0x18,0x1E,0x20,0x30,0x3B,0x16,0x3E,0x43,0x47,0x4D, + 0x50,0x0A,0xCD,0x61,0x21,0xE0,0x60,0x68,0x01,0xE0,0x2D,0x48,0xC0,0x6B,0xC8,0x61, + 0x1B,0xE0,0x10,0x8C,0x52,0x8C,0x00,0x04,0x34,0xE0,0xCE,0x61,0x15,0xE0,0xE0,0x68, + 0xF5,0xE7,0x50,0x68,0xF3,0xE7,0xA0,0x68,0xF1,0xE7,0xD0,0x7B,0xEF,0xE7,0x25,0x48, + 0x03,0x7D,0x10,0x7D,0x52,0x7D,0xC4,0x07,0xE4,0x09,0x80,0x07,0x12,0x04,0xC0,0x0F, + 0x00,0x02,0x23,0x43,0x02,0x43,0x13,0x43,0xCB,0x61,0x5F,0x22,0x22,0xE0,0x93,0x7D, + 0x50,0x7E,0x1B,0x06,0x18,0x43,0xD3,0x7D,0x12,0x7E,0x1B,0x04,0x12,0x02,0x13,0x43, + 0x18,0x43,0xD4,0xE7,0x90,0x7E,0x00,0x06,0xD1,0xE7,0x17,0x48,0x00,0x69,0xC0,0x07, + 0xC0,0x0F,0xCC,0xE7,0x38,0x69,0x40,0x08,0x00,0x02,0xC8,0xE7,0x13,0x48,0xA2,0x69, + 0xC0,0x8B,0x00,0x04,0x10,0x43,0xC2,0xE7,0x38,0x69,0x40,0x08,0xBF,0xE7,0x10,0x48, + 0x80,0x6A,0xBC,0xE7,0x48,0x69,0x10,0x42,0xFC,0xD1,0x04,0xF0,0x21,0xF8,0xFF,0x20, + 0x01,0x21,0x49,0x07,0xC8,0x63,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xC0,0x92,0x00,0x00, + 0x00,0x93,0x00,0x00,0x16,0x00,0x0E,0x00,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x30, + 0xC0,0x0F,0x00,0x20,0x00,0x05,0x00,0x20,0x00,0x96,0x00,0x00,0xE0,0x95,0x00,0x00, + 0x8C,0x05,0x00,0x20,0x70,0xB5,0x03,0x24,0x24,0x07,0xE5,0x68,0x00,0x20,0xC0,0x43, + 0xE0,0x60,0xFD,0xF7,0x71,0xFF,0x06,0x00,0xCB,0x20,0xC0,0x01,0xFD,0xF7,0x4E,0xFF, + 0x03,0xF0,0x58,0xFE,0x00,0xF0,0x9A,0xFD,0x03,0xF0,0x4A,0xFE,0x30,0x00,0xFD,0xF7, + 0x77,0xFF,0xE5,0x60,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x20,0x03,0x21, + 0x10,0xB5,0xC0,0x43,0x09,0x07,0xC8,0x60,0x03,0xF0,0x44,0xFE,0xFF,0xF7,0x4E,0xFD, + 0x05,0x48,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0x01,0x20,0x40,0x07,0x05,0xF0,0x9D,0xF9, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x90,0x00,0x40,0xF8,0xB5,0x23,0x48, + 0x00,0x68,0x00,0x88,0xC0,0x06,0x3D,0xD5,0x21,0x4E,0x30,0x78,0x00,0x28,0x39,0xD0, + 0x70,0x78,0x00,0x28,0x36,0xD0,0x01,0x25,0x31,0xE0,0x0A,0x21,0x69,0x43,0x1D,0x4B, + 0x01,0x20,0xCC,0x18,0xFF,0x34,0x77,0x78,0x81,0x34,0x25,0xE0,0x0A,0x22,0x42,0x43, + 0xD2,0x18,0xFF,0x32,0xC1,0x32,0x21,0x79,0x92,0x7F,0x91,0x42,0x1B,0xD1,0x0A,0x22, + 0x50,0x43,0xC7,0x18,0xFF,0x37,0x06,0x21,0xE1,0x37,0x00,0x20,0x61,0x5E,0x38,0x5E, + 0x02,0x22,0xBA,0x5E,0x08,0x1A,0x08,0x21,0x61,0x5E,0x89,0x1A,0x00,0x91,0x3A,0x88, + 0xE1,0x88,0xFF,0xF7,0x95,0xFA,0xE0,0x80,0x7A,0x88,0x21,0x89,0x00,0x98,0xFF,0xF7, + 0x8F,0xFA,0x20,0x81,0x02,0xE0,0x40,0x1C,0x87,0x42,0xD7,0xDA,0x6D,0x1C,0x30,0x78, + 0xA8,0x42,0xCA,0xDA,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xF0,0x06,0x00,0x20, + 0xC0,0x01,0x00,0x20,0x40,0x00,0x00,0x20,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9, + 0x9C,0xD0,0x4D,0xE2,0x00,0x00,0xA0,0xE3,0x34,0x00,0x8D,0xE5,0x30,0x00,0x8D,0xE5, + 0x2C,0x00,0x8D,0xE5,0x28,0x00,0x8D,0xE5,0x3C,0x08,0x9F,0xE5,0xB0,0x12,0xD0,0xE1, + 0x20,0x10,0x8D,0xE5,0xB2,0x02,0xD0,0xE1,0x1C,0x00,0x8D,0xE5,0x2C,0x08,0x9F,0xE5, + 0x00,0x00,0x90,0xE5,0x8A,0x20,0xD0,0xE5,0x7C,0x10,0xD0,0xE5,0x7D,0xB0,0xD0,0xE5, + 0x18,0x20,0x8D,0xE5,0x89,0x20,0xD0,0xE5,0x14,0x20,0x8D,0xE5,0xB0,0x20,0xD0,0xE1, + 0x08,0x00,0x12,0xE3,0x23,0x00,0x00,0x0A,0x7F,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0, + 0x88,0x20,0x8D,0xE5,0x80,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x84,0x20,0x8D,0xE5, + 0x81,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x80,0x20,0x8D,0xE5,0x82,0x20,0xD0,0xE5, + 0x91,0x02,0x02,0xE0,0x7C,0x20,0x8D,0xE5,0x83,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0, + 0x78,0x20,0x8D,0xE5,0x84,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x74,0x20,0x8D,0xE5, + 0x85,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0,0x70,0x20,0x8D,0xE5,0x86,0x20,0xD0,0xE5, + 0x91,0x02,0x02,0xE0,0x6C,0x20,0x8D,0xE5,0x87,0x20,0xD0,0xE5,0x91,0x02,0x02,0xE0, + 0x68,0x20,0x8D,0xE5,0x88,0x00,0xD0,0xE5,0x91,0x00,0x00,0xE0,0x64,0x00,0x8D,0xE5, + 0x8C,0x07,0x9F,0xE5,0x80,0x11,0xD0,0xE5,0x00,0x00,0x51,0xE3,0x00,0x60,0xA0,0x13, + 0x03,0x00,0x00,0x1A,0xD6,0x03,0x00,0xEB,0x9C,0xD0,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x68,0xA7,0x9F,0xE5,0x06,0x50,0x8A,0xE0,0x9C,0x42,0xD5,0xE5, + 0x00,0x00,0x54,0xE3,0x0C,0x00,0x00,0x0A,0x18,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3, + 0x06,0x00,0x00,0x1A,0x04,0x01,0x84,0xE0,0x80,0x00,0x8A,0xE0,0x01,0x0C,0x80,0xE2, + 0x8A,0x00,0x80,0xE2,0x55,0x03,0x00,0xEB,0x00,0x00,0x50,0xE3,0x02,0x00,0x00,0x0A, + 0xCA,0x02,0xDA,0xE5,0x00,0x00,0x50,0xE3,0x01,0x00,0x00,0x0A,0x06,0x00,0xA0,0xE1, + 0x18,0x00,0x00,0xEA,0x07,0x00,0xA0,0xE3,0x00,0x12,0x8A,0xE0,0x86,0x10,0x81,0xE0, + 0x02,0x2C,0x81,0xE2,0xB4,0x3D,0xD2,0xE1,0x03,0x1C,0x81,0xE2,0x01,0x00,0x50,0xE2, + 0xB4,0x3E,0xC2,0xE1,0xB4,0x26,0xD1,0xE1,0xB4,0x27,0xC1,0xE1,0xF5,0xFF,0xFF,0x5A, + 0x04,0x01,0x84,0xE0,0x80,0x80,0x8A,0xE0,0x01,0x7C,0x88,0xE2,0xB6,0x08,0xD7,0xE1, + 0x20,0x10,0x9D,0xE5,0x01,0x10,0x41,0xE2,0x01,0x00,0x50,0xE1,0xB8,0x18,0xD7,0xD1, + 0x1C,0x00,0x9D,0xD5,0x01,0x00,0x40,0xD2,0x00,0x00,0x51,0xD1,0x03,0x00,0x00,0xDA, + 0x84,0x01,0xD8,0xE5,0x01,0x00,0x40,0xE2,0x98,0xFC,0xFF,0xEB,0x84,0x01,0x00,0xEA, + 0xB6,0x18,0xD7,0xE1,0x86,0x00,0x8A,0xE0,0x02,0x9C,0x80,0xE2,0x98,0x00,0x8D,0xE5, + 0xB4,0x1D,0xC9,0xE1,0xB8,0x18,0xD7,0xE1,0x03,0x4C,0x80,0xE2,0x00,0x30,0xA0,0xE3, + 0x02,0xCB,0xA0,0xE3,0xB4,0x16,0xC4,0xE1,0x03,0x10,0xA0,0xE1,0x0C,0x20,0xA0,0xE1, + 0x07,0x00,0xA0,0xE3,0x78,0xE6,0x9F,0xE5,0x00,0xE2,0x8E,0xE0,0x86,0xE0,0x8E,0xE0, + 0x94,0xE0,0x8D,0xE5,0x02,0xEC,0x8E,0xE2,0xF4,0xAD,0xDE,0xE1,0x00,0x00,0x5A,0xE3, + 0x03,0x00,0x00,0xDA,0x03,0x00,0x5A,0xE1,0xB4,0x3D,0xDE,0xC1,0x0C,0x00,0x5A,0xE1, + 0xB4,0xCD,0xDE,0xB1,0x94,0xE0,0x9D,0xE5,0x03,0xEC,0x8E,0xE2,0xF4,0xA6,0xDE,0xE1, + 0x00,0x00,0x5A,0xE3,0x03,0x00,0x00,0xDA,0x01,0x00,0x5A,0xE1,0xB4,0x16,0xDE,0xC1, + 0x02,0x00,0x5A,0xE1,0xB4,0x26,0xDE,0xB1,0x01,0x00,0x50,0xE2,0xE8,0xFF,0xFF,0x5A, + 0x0C,0x00,0x43,0xE0,0xF0,0x00,0x50,0xE3,0x02,0x30,0x41,0xD0,0xF0,0x00,0x53,0xD3, + 0x0C,0xC6,0x9F,0xC5,0x01,0x30,0xA0,0xC3,0xC8,0x32,0xCC,0xC5,0x1E,0x00,0x50,0xE3, + 0x02,0x00,0x41,0xB0,0x1E,0x00,0x50,0xB3,0xF4,0x15,0x9F,0xA5,0x00,0x00,0xA0,0xA3, + 0xF1,0x00,0xC1,0xA5,0xE8,0x05,0x9F,0xB5,0x01,0x10,0xA0,0xB3,0xF1,0x10,0xC0,0xB5, + 0xCC,0x02,0xD5,0xE5,0x01,0x00,0x50,0xE3,0x64,0xA0,0xA0,0x93,0x24,0xA0,0x8D,0x95, + 0x0E,0x00,0x00,0x9A,0xF4,0x2D,0xD9,0xE1,0xF4,0x3E,0xD9,0xE1,0x03,0x00,0x42,0xE0, + 0x00,0x00,0x50,0xE3,0x02,0x00,0x43,0xD0,0xF4,0x36,0xD4,0xE1,0xF4,0x27,0xD4,0xE1, + 0x00,0xA8,0xA0,0xE1,0x4A,0xA8,0xA0,0xE1,0x02,0x00,0x43,0xE0,0x00,0x00,0x50,0xE3, + 0x03,0x00,0x42,0xD0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x24,0x00,0x8D,0xE5, + 0xF4,0x1E,0xD9,0xE1,0xF4,0x0D,0xD9,0xE1,0x0F,0x0F,0x00,0xEB,0x3C,0x00,0x8D,0xE5, + 0xF4,0x17,0xD4,0xE1,0xF4,0x06,0xD4,0xE1,0x0B,0x0F,0x00,0xEB,0x38,0x00,0x8D,0xE5, + 0xF4,0x1F,0xD9,0xE1,0x3C,0x00,0x9D,0xE5,0x07,0x0F,0x00,0xEB,0x44,0x00,0x8D,0xE5, + 0xF4,0x18,0xD4,0xE1,0x38,0x00,0x9D,0xE5,0x03,0x0F,0x00,0xEB,0x40,0x00,0x8D,0xE5, + 0xF4,0x21,0xD4,0xE1,0xF4,0x10,0xD4,0xE1,0x44,0x00,0x9D,0xE5,0x01,0x0F,0x00,0xEB, + 0x4C,0x00,0x8D,0xE5,0xF4,0x2A,0xD4,0xE1,0xF4,0x19,0xD4,0xE1,0x40,0x00,0x9D,0xE5, + 0xFC,0x0E,0x00,0xEB,0x48,0x00,0x8D,0xE5,0xF4,0x23,0xD4,0xE1,0xF4,0x12,0xD4,0xE1, + 0x4C,0x00,0x9D,0xE5,0xF7,0x0E,0x00,0xEB,0x54,0x00,0x8D,0xE5,0xF4,0x2C,0xD4,0xE1, + 0xF4,0x1B,0xD4,0xE1,0x48,0x00,0x9D,0xE5,0xF2,0x0E,0x00,0xEB,0x50,0x00,0x8D,0xE5, + 0xF4,0x25,0xD4,0xE1,0xF4,0x14,0xD4,0xE1,0x54,0x00,0x9D,0xE5,0xED,0x0E,0x00,0xEB, + 0x5C,0x00,0x8D,0xE5,0xF4,0x2E,0xD4,0xE1,0xF4,0x1D,0xD4,0xE1,0x50,0x00,0x9D,0xE5, + 0xE8,0x0E,0x00,0xEB,0x58,0x00,0x8D,0xE5,0x24,0x10,0x9D,0xE5,0x0A,0x00,0xA0,0xE1, + 0x23,0x04,0x00,0xEB,0xC8,0x34,0x9F,0xE5,0x04,0x10,0xA0,0xE3,0x01,0x22,0x83,0xE0, + 0x86,0x20,0x82,0xE0,0x01,0x2B,0x82,0xE2,0xB4,0xC1,0xD2,0xE1,0x01,0x10,0x51,0xE2, + 0xB4,0xC2,0xC2,0xE1,0xF8,0xFF,0xFF,0x5A,0x98,0x10,0x9D,0xE5,0x01,0x1B,0x81,0xE2, + 0xB4,0x01,0xC1,0xE1,0x0C,0x14,0xD5,0xE5,0x00,0x00,0xA0,0xE3,0x00,0x20,0x51,0xE2, + 0x06,0x00,0x00,0xBA,0x01,0xC2,0x83,0xE0,0x86,0xC0,0x8C,0xE0,0x01,0xCB,0x8C,0xE2, + 0xF4,0xC1,0xDC,0xE1,0x01,0x10,0x51,0xE2,0x0C,0x00,0x80,0xE0,0xF8,0xFF,0xFF,0x5A, + 0x01,0x10,0x82,0xE2,0xD7,0xF3,0xFF,0xEB,0x84,0x10,0x9D,0xE5,0x00,0xA0,0xA0,0xE1, + 0x01,0x00,0x50,0xE1,0x01,0x00,0xA0,0xD3,0x0B,0x00,0x00,0xDA,0x7C,0x00,0x9D,0xE5, + 0x00,0x00,0x5A,0xE1,0x02,0x00,0xA0,0xD3,0x07,0x00,0x00,0xDA,0x74,0x00,0x9D,0xE5, + 0x00,0x00,0x5A,0xE1,0x03,0x00,0xA0,0xD3,0x03,0x00,0x00,0xDA,0x6C,0x00,0x9D,0xE5, + 0x00,0x00,0x5A,0xE1,0x05,0x00,0xA0,0xC3,0x04,0x00,0xA0,0xD3,0x04,0x14,0xD5,0xE5, + 0x01,0x10,0x40,0xE0,0x00,0x00,0x51,0xE3,0x00,0x00,0x6B,0xE2,0x06,0x00,0x00,0xDA, + 0xF4,0x1F,0xD4,0xE1,0x0B,0x00,0x51,0xE1,0x01,0x00,0x00,0x1A,0x00,0x10,0xA0,0xE3, + 0x06,0x00,0x00,0xEA,0x01,0x10,0x81,0xE2,0x04,0x00,0x00,0xEA,0xF4,0x1F,0xD4,0xE1, + 0x04,0x00,0x00,0xAA,0x00,0x00,0x51,0xE1,0xF7,0xFF,0xFF,0x0A,0x01,0x10,0x41,0xE2, + 0xB4,0x1F,0xC4,0xE1,0x02,0x00,0x00,0xEA,0x00,0x00,0x51,0xE3,0xFA,0xFF,0xFF,0xCA, + 0xF3,0xFF,0xFF,0xBA,0xF4,0x3F,0xD4,0xE1,0x0B,0x00,0x53,0xE1,0x03,0x00,0x00,0x1A, + 0x04,0x14,0xD5,0xE5,0x05,0x00,0x51,0xE3,0x01,0x00,0x81,0x32,0x05,0x00,0x00,0x3A, + 0x00,0x00,0x53,0xE1,0x04,0x00,0x00,0x1A,0x04,0x04,0xD5,0xE5,0x01,0x00,0x50,0xE3, + 0x01,0x00,0x00,0x9A,0x01,0x00,0x40,0xE2,0x04,0x04,0xC5,0xE5,0x58,0x30,0x8D,0xE2, + 0x09,0x00,0x93,0xE8,0x60,0x00,0x8D,0xE5,0xCC,0x02,0xD5,0xE5,0x00,0x10,0xA0,0xE1, + 0x90,0x00,0x8D,0xE5,0x8C,0x00,0x8D,0xE5,0x03,0x00,0xA0,0xE1,0x99,0xF3,0xFF,0xEB, + 0x34,0x00,0x8D,0xE5,0x2C,0x00,0x8D,0xE5,0x60,0x00,0x9D,0xE5,0x8C,0x10,0x9D,0xE5, + 0x94,0xF3,0xFF,0xEB,0x30,0x00,0x8D,0xE5,0x28,0x00,0x8D,0xE5,0x04,0x04,0xD5,0xE5, + 0x01,0x00,0x50,0xE3,0x18,0x00,0x00,0x1A,0x28,0x30,0x8D,0xE2,0x2C,0x20,0x8D,0xE2, + 0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5,0x5C,0x20,0x9D,0xE5,0x58,0x30,0x9D,0xE5, + 0x09,0x10,0xA0,0xE3,0x0E,0x11,0x00,0xEB,0x30,0x30,0x8D,0xE2,0x34,0x20,0x8D,0xE2, + 0x0C,0x00,0x8D,0xE8,0xCC,0x02,0xD5,0xE5,0x54,0x20,0x9D,0xE5,0x50,0x30,0x9D,0xE5, + 0x07,0x10,0xA0,0xE3,0x06,0x11,0x00,0xEB,0xF4,0x03,0xDD,0xE1,0xF0,0x13,0xDD,0xE1, + 0xF8,0x32,0xDD,0xE1,0xFC,0x22,0xDD,0xE1,0x0F,0x00,0x8D,0xE8,0x88,0x20,0x9D,0xE5, + 0x84,0x30,0x9D,0xE5,0x61,0x0F,0x88,0xE2,0x60,0x00,0x00,0xEA,0x02,0x00,0x50,0xE3, + 0x18,0x00,0x00,0x1A,0x28,0x30,0x8D,0xE2,0x2C,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8, + 0x90,0x00,0x9D,0xE5,0x54,0x20,0x9D,0xE5,0x50,0x30,0x9D,0xE5,0x07,0x10,0xA0,0xE3, + 0xF3,0x10,0x00,0xEB,0x30,0x30,0x8D,0xE2,0x34,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8, + 0xCC,0x02,0xD5,0xE5,0x4C,0x20,0x9D,0xE5,0x48,0x30,0x9D,0xE5,0x05,0x10,0xA0,0xE3, + 0xEB,0x10,0x00,0xEB,0xF4,0x03,0xDD,0xE1,0xF0,0x13,0xDD,0xE1,0xF8,0x32,0xDD,0xE1, + 0xFC,0x22,0xDD,0xE1,0x0F,0x00,0x8D,0xE8,0x80,0x20,0x9D,0xE5,0x7C,0x30,0x9D,0xE5, + 0x61,0x0F,0x88,0xE2,0x45,0x00,0x00,0xEA,0x03,0x00,0x50,0xE3,0x18,0x00,0x00,0x1A, + 0x28,0x30,0x8D,0xE2,0x2C,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5, + 0x4C,0x20,0x9D,0xE5,0x48,0x30,0x9D,0xE5,0x05,0x10,0xA0,0xE3,0xD8,0x10,0x00,0xEB, + 0x30,0x30,0x8D,0xE2,0x34,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0xCC,0x02,0xD5,0xE5, + 0x44,0x20,0x9D,0xE5,0x40,0x30,0x9D,0xE5,0x03,0x10,0xA0,0xE3,0xD0,0x10,0x00,0xEB, + 0xF4,0x03,0xDD,0xE1,0xF0,0x13,0xDD,0xE1,0xF8,0x32,0xDD,0xE1,0xFC,0x22,0xDD,0xE1, + 0x0F,0x00,0x8D,0xE8,0x78,0x20,0x9D,0xE5,0x74,0x30,0x9D,0xE5,0x61,0x0F,0x88,0xE2, + 0x2A,0x00,0x00,0xEA,0x04,0x00,0x50,0xE3,0x18,0x00,0x00,0x1A,0x28,0x30,0x8D,0xE2, + 0x2C,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5,0x44,0x20,0x9D,0xE5, + 0x40,0x30,0x9D,0xE5,0x03,0x10,0xA0,0xE3,0xBD,0x10,0x00,0xEB,0x30,0x30,0x8D,0xE2, + 0x34,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0xCC,0x02,0xD5,0xE5,0x3C,0x20,0x9D,0xE5, + 0x38,0x30,0x9D,0xE5,0x02,0x10,0xA0,0xE3,0xB5,0x10,0x00,0xEB,0xF4,0x03,0xDD,0xE1, + 0xF0,0x13,0xDD,0xE1,0xF8,0x32,0xDD,0xE1,0xFC,0x22,0xDD,0xE1,0x0F,0x00,0x8D,0xE8, + 0x70,0x20,0x9D,0xE5,0x6C,0x30,0x9D,0xE5,0x61,0x0F,0x88,0xE2,0x0F,0x00,0x00,0xEA, + 0x30,0x30,0x8D,0xE2,0x34,0x20,0x8D,0xE2,0x0C,0x00,0x8D,0xE8,0x90,0x00,0x9D,0xE5, + 0x3C,0x20,0x9D,0xE5,0x38,0x30,0x9D,0xE5,0x02,0x10,0xA0,0xE3,0xA4,0x10,0x00,0xEB, + 0xF4,0x0D,0xD9,0xE1,0xF4,0x16,0xD4,0xE1,0xF0,0x33,0xDD,0xE1,0xF4,0x23,0xDD,0xE1, + 0x0F,0x00,0x8D,0xE8,0x68,0x20,0x9D,0xE5,0x64,0x30,0x9D,0xE5,0x61,0x0F,0x88,0xE2, + 0x0A,0x10,0xA0,0xE1,0xAC,0x10,0x00,0xEB,0xCC,0x02,0xD5,0xE5,0x50,0x11,0x9F,0xE5, + 0x09,0x00,0x50,0xE3,0x01,0x00,0x80,0x32,0xCC,0x02,0xC5,0x35,0x0C,0x04,0xD5,0xE5, + 0x05,0x00,0x50,0xE3,0x01,0x00,0x80,0x32,0x0C,0x04,0xC5,0x35,0x84,0x01,0xD8,0xE5, + 0x01,0x00,0x40,0xE2,0x00,0x01,0x81,0xE0,0x01,0x4B,0x80,0xE2,0xF4,0x07,0xD4,0xE1, + 0x01,0x00,0x70,0xE3,0xF6,0x17,0xD4,0xC1,0x01,0x00,0x71,0xC3,0x18,0x00,0x00,0xDA, + 0x14,0x10,0x9D,0xE5,0x64,0x50,0x61,0xE2,0x95,0x00,0x00,0xE0,0x64,0x10,0xA0,0xE3, + 0xFC,0xF2,0xFF,0xEB,0x00,0x80,0xA0,0xE1,0xB6,0x08,0xD7,0xE1,0x14,0x10,0x9D,0xE5, + 0x91,0x00,0x00,0xE0,0x64,0x10,0xA0,0xE3,0x8E,0xF3,0xFF,0xEB,0x08,0x00,0x80,0xE0, + 0xB6,0x08,0xC7,0xE1,0xF6,0x07,0xD4,0xE1,0x64,0x10,0xA0,0xE3,0x95,0x00,0x00,0xE0, + 0xF0,0xF2,0xFF,0xEB,0x00,0x50,0xA0,0xE1,0xB8,0x08,0xD7,0xE1,0x14,0x10,0x9D,0xE5, + 0x91,0x00,0x00,0xE0,0x64,0x10,0xA0,0xE3,0x82,0xF3,0xFF,0xEB,0x05,0x00,0x80,0xE0, + 0xB8,0x08,0xC7,0xE1,0xB6,0x08,0xD7,0xE1,0xB4,0x07,0xC4,0xE1,0xB8,0x08,0xD7,0xE1, + 0xB6,0x07,0xC4,0xE1,0x01,0x60,0x86,0xE2,0x08,0x00,0x56,0xE3,0x48,0xFE,0xFF,0xBA, + 0x8C,0x30,0x9F,0xE5,0x80,0x21,0xD3,0xE5,0x00,0x00,0x83,0xE2,0x01,0x1C,0x80,0xE2, + 0x01,0x00,0x52,0xE3,0x02,0x0C,0x80,0xE2,0x10,0x00,0x00,0x1A,0x8E,0x21,0xD3,0xE5, + 0x82,0x30,0x83,0xE0,0x02,0x2C,0x83,0xE2,0xB2,0xCD,0xD2,0xE1,0x03,0x3C,0x83,0xE2, + 0xBC,0xCB,0xC0,0xE1,0xB2,0xC6,0xD3,0xE1,0xBE,0xCB,0xC0,0xE1,0xB2,0x2E,0xD2,0xE1, + 0xB0,0x2C,0xC0,0xE1,0xB2,0x27,0xD3,0xE1,0xB2,0x2C,0xC0,0xE1,0xB0,0x29,0xD1,0xE1, + 0xB4,0x2B,0xC0,0xE1,0xB2,0x19,0xD1,0xE1,0xB6,0x1B,0xC0,0xE1,0x2D,0xFE,0xFF,0xEA, + 0x02,0x00,0x52,0xE3,0x2B,0xFE,0xFF,0x1A,0xB0,0x29,0xD1,0xE1,0xB4,0x2B,0xC0,0xE1, + 0xB2,0x29,0xD1,0xE1,0xB6,0x2B,0xC0,0xE1,0xBA,0x29,0xD1,0xE1,0xB8,0x2B,0xC0,0xE1, + 0xBC,0x19,0xD1,0xE1,0xBA,0x1B,0xC0,0xE1,0x22,0xFE,0xFF,0xEA,0x00,0x93,0x00,0x00, + 0xF0,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xF8,0xB5,0x1E,0x4B,0x1C,0x4A,0x1B,0x7D, + 0x12,0x88,0xDB,0x07,0x32,0xD0,0x1C,0x4B,0x1C,0x88,0x1C,0x4B,0x1B,0x7D,0x9E,0x46, + 0x1B,0x4B,0x1E,0x78,0x17,0x4B,0x9D,0x7D,0x00,0x2E,0x76,0x46,0xAC,0x46,0xDD,0x7D, + 0x00,0x95,0x1D,0x7E,0x5F,0x7E,0x9B,0x7E,0x12,0xD0,0xB0,0x42,0x1E,0xD1,0x8C,0x45, + 0x08,0xD0,0x00,0x98,0x88,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0,0x8F,0x42,0x01,0xD0, + 0x8B,0x42,0x03,0xD1,0x20,0x00,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0xFA,0xE7, + 0xB1,0x42,0x0B,0xD1,0x84,0x45,0xF5,0xD0,0x00,0x99,0x81,0x42,0xF2,0xD0,0x85,0x42, + 0xF0,0xD0,0x87,0x42,0xEE,0xD0,0x83,0x42,0xF0,0xD1,0xEB,0xE7,0x10,0x00,0xEA,0xE7, + 0xA8,0x05,0x00,0x20,0x00,0x93,0x00,0x00,0xA6,0x05,0x00,0x20,0x00,0x05,0x00,0x20, + 0x99,0x05,0x00,0x20,0x0E,0x23,0x58,0x43,0x02,0x4A,0x40,0x18,0x40,0x00,0x10,0x5A, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x70,0xB5,0x2E,0x49,0x00,0x20,0x4A,0x78, + 0x2D,0x49,0x00,0x2A,0x15,0xD1,0x0A,0x89,0x00,0x2A,0x0F,0xD0,0x2B,0x49,0x8A,0x42, + 0x0C,0xD0,0x10,0x00,0x32,0x21,0x48,0x43,0x64,0x21,0xFC,0xF7,0x43,0xFE,0xFF,0x30, + 0x4B,0x21,0x7D,0x30,0xC9,0x00,0x88,0x42,0x00,0xD9,0x08,0x00,0x70,0xBC,0x08,0xBC, + 0x18,0x47,0x88,0x89,0x01,0x21,0x49,0x07,0x89,0x68,0x21,0x4C,0x89,0x00,0x0A,0x0F, + 0x1D,0x49,0x89,0x89,0xFF,0x39,0xE2,0x39,0x01,0x2A,0x16,0xD1,0x1D,0x4A,0x1E,0x4D, + 0x91,0x42,0x07,0xD8,0x29,0x1A,0x08,0x00,0x48,0x43,0x51,0x1C,0xFC,0xF7,0x22,0xFE, + 0x28,0x1A,0x06,0xE0,0xA8,0x42,0x04,0xD9,0x17,0x49,0x49,0x42,0x40,0x18,0x80,0x08, + 0x40,0x19,0xA0,0x42,0xDA,0xD9,0x0D,0x21,0x18,0xE0,0x02,0x2A,0xD6,0xD1,0x12,0x4A, + 0x11,0x4D,0xE7,0x3A,0xFA,0x35,0x91,0x42,0x07,0xD8,0x29,0x1A,0x08,0x00,0x48,0x43, + 0x51,0x1C,0xFC,0xF7,0x07,0xFE,0x28,0x1A,0x05,0xE0,0xA8,0x42,0x03,0xD9,0x0B,0x49, + 0x40,0x18,0x80,0x08,0x40,0x19,0xA0,0x42,0xC0,0xD9,0x11,0x21,0xFC,0xF7,0xFA,0xFD, + 0x60,0x1A,0xBB,0xE7,0xE0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0xFF,0x0F,0x00,0x00, + 0x10,0x27,0x00,0x00,0xC9,0x03,0x00,0x00,0xAA,0x05,0x00,0x00,0x5C,0xF9,0xFF,0xFF, + 0x04,0x48,0x41,0x69,0x49,0x06,0x01,0xD5,0x10,0x20,0x70,0x47,0x40,0x69,0xC0,0x06, + 0xC0,0x0E,0x70,0x47,0x00,0x40,0x00,0x30,0x70,0xB5,0x12,0x4D,0x00,0x24,0x01,0x21, + 0x49,0x07,0x68,0x69,0x80,0x06,0xFC,0xD4,0xE8,0x68,0x6A,0x68,0x6A,0x60,0x05,0xE0, + 0x6A,0x69,0x92,0x06,0xFC,0xD4,0xAA,0x69,0x04,0xC1,0xA4,0x18,0x02,0x00,0x40,0x1E, + 0x01,0x2A,0xF5,0xD8,0x2E,0x20,0x68,0x60,0x68,0x68,0x80,0x07,0xFC,0xD5,0x03,0xF0, + 0x67,0xFA,0x05,0x48,0xE8,0x61,0xEC,0x61,0x68,0x69,0x80,0x06,0xFC,0xD4,0x70,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30,0xAB,0xFC,0xFF,0x8F,0x78,0x47,0xC0,0x46, + 0x10,0x40,0x2D,0xE9,0xB0,0x40,0x9F,0xE5,0x0C,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3, + 0xFC,0xFF,0xFF,0x0A,0x04,0x00,0x94,0xE5,0x04,0x00,0x84,0xE5,0x04,0x00,0x94,0xE5, + 0x04,0x00,0x10,0xE3,0x10,0x00,0x00,0x0A,0x0C,0x00,0x94,0xE5,0x04,0x10,0x90,0xE4, + 0x1C,0x10,0x84,0xE5,0x02,0x12,0xA0,0xE3,0x38,0x10,0x91,0xE5,0x04,0x00,0x00,0xEA, + 0x04,0x20,0x90,0xE4,0x1C,0x20,0x84,0xE5,0x14,0x20,0x94,0xE5,0x40,0x00,0x12,0xE3, + 0xFC,0xFF,0xFF,0x1A,0x01,0x10,0x51,0xE2,0xF8,0xFF,0xFF,0x1A,0x14,0x00,0x94,0xE5, + 0x5F,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x1A,0x11,0x00,0x00,0xEA,0x04,0x00,0x94,0xE5, + 0x02,0x00,0x10,0xE3,0xE8,0xFF,0xFF,0x0A,0x14,0x00,0x94,0xE5,0x20,0x00,0x10,0xE3, + 0xE5,0xFF,0xFF,0x1A,0x0C,0x00,0x94,0xE5,0x08,0x00,0x50,0xE3,0x10,0x40,0xBD,0x08, + 0x04,0x0D,0x00,0x0A,0x14,0x10,0x94,0xE5,0x5F,0x00,0x11,0xE3,0x18,0x10,0x94,0x15, + 0x04,0x10,0x80,0x14,0xFA,0xFF,0xFF,0x1A,0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3, + 0xFC,0xFF,0xFF,0x0A,0xFB,0x0C,0x00,0xEB,0xD2,0xFF,0xFF,0xEA,0x00,0x40,0x00,0x30, + 0x01,0x49,0x20,0x20,0x48,0x61,0x70,0x47,0x00,0x40,0x00,0x30,0xF8,0xB5,0x01,0x22, + 0x52,0x07,0x11,0x68,0x3D,0x48,0x01,0x29,0x80,0x7D,0x01,0xD1,0x01,0x25,0x03,0xE0, + 0x11,0x68,0x01,0x29,0x06,0xD9,0x02,0x25,0x00,0x28,0x0B,0xD0,0x00,0x21,0x05,0x27, + 0x3F,0x02,0x3B,0xE0,0x00,0x28,0x05,0xD1,0x34,0x48,0x09,0x22,0x00,0x21,0x00,0x1D, + 0xFC,0xF7,0x54,0xFD,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x4A,0x19,0x00,0x24,0x92,0x00, + 0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x26,0xD0,0x01,0x20,0x93,0x00, + 0x1B,0x0F,0x2B,0x4E,0x36,0x18,0xF6,0x19,0x36,0x79,0x9E,0x42,0x01,0xD1,0x04,0x00, + 0x02,0xE0,0x40,0x1C,0x08,0x28,0xF4,0xD9,0x00,0x2C,0x06,0xD0,0x0F,0x23,0x9B,0x06, + 0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43,0x0D,0xE0,0x21,0x4C,0x01,0x20,0x26,0x18, + 0xF6,0x19,0x36,0x79,0x00,0x2E,0x03,0xD1,0x24,0x18,0xE4,0x19,0x23,0x71,0xED,0xE7, + 0x40,0x1C,0x08,0x28,0xF3,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07, + 0x02,0x68,0x8A,0x42,0xC9,0xD8,0x00,0x21,0x21,0xE0,0x4A,0x19,0x92,0x00,0x10,0x18, + 0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x18,0xD1,0x11,0x4E,0x01,0x20,0x93,0x00, + 0x1C,0x0F,0x33,0x18,0xDB,0x19,0x1B,0x79,0xA3,0x42,0x0A,0xD1,0x34,0x18,0x00,0x23, + 0xE4,0x19,0x23,0x71,0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43, + 0x02,0xE0,0x40,0x1C,0x08,0x28,0xEC,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20, + 0x40,0x07,0x02,0x68,0x8A,0x42,0xD8,0xD8,0x9C,0xE7,0x00,0x00,0x40,0x05,0x00,0x20, + 0x40,0x00,0x00,0x20,0x03,0x22,0x12,0x07,0xD3,0x68,0x01,0x21,0x81,0x40,0x0B,0x43, + 0xD3,0x60,0x50,0x68,0x08,0x42,0x01,0xD0,0x01,0x48,0x01,0x63,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x30,0x03,0x23,0x1B,0x07,0xDA,0x68,0x01,0x21,0x81,0x40,0x8A,0x43, + 0xDA,0x60,0x70,0x47,0x10,0xB4,0x0F,0x24,0x03,0x23,0x1B,0x07,0x1C,0x60,0x05,0x4C, + 0x60,0x63,0x19,0x61,0x9A,0x60,0x00,0x20,0xC0,0x43,0xD8,0x60,0x00,0x20,0x18,0x60, + 0x10,0xBC,0x70,0x47,0x40,0x00,0x00,0x30,0x03,0x4B,0x00,0xB5,0x82,0x00,0x99,0x50, + 0xFF,0xF7,0xE0,0xFF,0x08,0xBC,0x18,0x47,0x70,0x06,0x00,0x20,0xF0,0xB5,0x87,0xB0, + 0xFE,0xF7,0x8C,0xFB,0xFE,0xF7,0x6A,0xFB,0x01,0xF0,0xE8,0xFF,0x02,0xF0,0xAE,0xFF, + 0x00,0xF0,0x9C,0xFE,0x00,0xF0,0xE8,0xFB,0xFD,0xF7,0xC0,0xFF,0xFD,0xF7,0xC8,0xF8, + 0x3B,0x48,0x00,0x68,0x80,0x30,0x40,0x7B,0x00,0x28,0x04,0xD1,0xFF,0xF7,0x9C,0xF9, + 0xFF,0xF7,0x4C,0xF9,0x03,0xE0,0xFF,0xF7,0x49,0xF9,0xFF,0xF7,0x95,0xF9,0x01,0x25, + 0x6D,0x07,0x68,0x68,0x6B,0x46,0x03,0x90,0x00,0x20,0xD8,0x73,0x03,0x98,0x68,0x60, + 0x03,0xF0,0x22,0xFB,0x03,0xF0,0x64,0xF9,0x28,0x68,0x00,0x28,0x07,0xD0,0x68,0x68, + 0x80,0x0F,0x80,0x07,0x03,0xD5,0x2F,0x68,0x02,0x24,0x7F,0x1C,0x37,0xE0,0x01,0x24, + 0x27,0x00,0xA0,0x00,0x40,0x19,0x06,0x90,0x06,0x68,0xB0,0x01,0x80,0x0D,0x05,0x90, + 0xB0,0x05,0x80,0x0D,0x04,0x90,0x23,0x48,0x00,0x78,0x00,0x28,0x03,0xD1,0x04,0xA9, + 0x05,0xA8,0x03,0xF0,0x8B,0xF9,0x20,0x4B,0x00,0x21,0x58,0x8C,0x40,0x1E,0x02,0x04, + 0x12,0x0C,0x68,0x46,0x06,0xC0,0x18,0x8C,0x0A,0x00,0x04,0xA9,0x40,0x1E,0x03,0x04, + 0x1B,0x0C,0x05,0xA8,0x04,0xF0,0x8B,0xFA,0x04,0xA9,0x05,0xA8,0x04,0xF0,0x9C,0xF8, + 0x16,0x48,0x04,0x99,0x06,0x40,0x05,0x98,0x89,0x05,0x80,0x05,0x80,0x09,0x06,0x43, + 0xB0,0x0A,0x80,0x02,0x89,0x0D,0x08,0x43,0x06,0x99,0x08,0x60,0x64,0x1C,0xBC,0x42, + 0xC7,0xD9,0xFD,0xF7,0x09,0xFE,0x03,0xF0,0xEB,0xF8,0x01,0x24,0x28,0x68,0xFC,0xF7, + 0x71,0xFD,0x64,0x1E,0xFA,0xD2,0xFF,0xF7,0xC9,0xFE,0xFC,0xF7,0x9F,0xFC,0x04,0xF0, + 0x2F,0xF9,0x07,0x48,0x40,0x79,0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xF0,0x06,0x00,0x20,0xA0,0x05,0x00,0x20,0x00,0x93,0x00,0x00,0xFF,0xFF,0x00,0xFC, + 0x40,0x00,0x00,0x20,0xF8,0xB5,0x02,0xF0,0x05,0xFF,0x03,0xF0,0xB5,0xFF,0x2C,0x48, + 0x2C,0x4D,0x00,0x7C,0x41,0x1E,0xFF,0x29,0x00,0xD3,0x00,0x20,0xFE,0xF7,0x78,0xF9, + 0x28,0x73,0x29,0x48,0x01,0x69,0xFF,0x22,0x12,0x02,0x91,0x43,0x01,0x61,0x01,0x69, + 0x2A,0x7B,0x12,0x02,0x11,0x43,0x01,0x61,0xFE,0xF7,0x7A,0xFD,0xFE,0xF7,0xF6,0xFD, + 0xFE,0xF7,0xFC,0xFD,0x1E,0x48,0xE9,0x7D,0x60,0x38,0xC0,0x7F,0x00,0x29,0x03,0xD0, + 0x03,0x21,0xFC,0xF7,0xD7,0xFB,0xFF,0xE7,0x03,0xF0,0xC2,0xFF,0x1B,0x4F,0xFC,0x03, + 0x00,0x20,0x28,0x70,0xE8,0x62,0x28,0x7C,0x00,0x28,0x1D,0xD0,0x01,0x26,0x18,0xE0, + 0x78,0x68,0x00,0x07,0x15,0xD5,0xA6,0x63,0xF8,0x68,0x07,0x28,0x09,0xD1,0x78,0x68, + 0x80,0x07,0xFC,0xD5,0x03,0xF0,0x64,0xF8,0xFF,0xF7,0x5C,0xF8,0xFF,0x20,0xE0,0x63, + 0x07,0xE0,0x0B,0x28,0x10,0xD1,0xE0,0x63,0x78,0x68,0x80,0x07,0xFC,0xD5,0x03,0xF0, + 0x57,0xF8,0xE0,0x6B,0x0B,0x28,0xE3,0xD1,0xFE,0xF7,0x68,0xF9,0x28,0x78,0x00,0x28, + 0xD6,0xD0,0x02,0xF0,0xD7,0xFB,0xD3,0xE7,0x78,0x68,0x80,0x07,0xFC,0xD5,0xEE,0xE7, + 0x60,0x93,0x00,0x00,0x8C,0x05,0x00,0x20,0x00,0x90,0x00,0x40,0x00,0x40,0x00,0x30, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x70,0xB5,0x06,0x00,0x23,0x48,0x24,0x4A, + 0x00,0x68,0x12,0x88,0x60,0x30,0x01,0x7E,0xC0,0x7D,0x34,0x78,0x89,0x18,0x0D,0x06, + 0x20,0x49,0x2D,0x0E,0x09,0x78,0x00,0x29,0x05,0xD1,0x1F,0x49,0xFF,0x22,0x09,0x68, + 0x2D,0x32,0x91,0x42,0x01,0xD9,0x03,0x25,0x04,0xE0,0x1C,0x49,0x09,0x78,0x01,0x29, + 0x00,0xD1,0x02,0x25,0x1A,0x49,0x8A,0x7C,0x00,0x2A,0x0D,0xD1,0xC9,0x7C,0x01,0x29, + 0x01,0xD1,0x40,0x1C,0x06,0xE0,0x02,0x29,0x01,0xD1,0x80,0x1C,0x02,0xE0,0x03,0x29, + 0x02,0xD1,0xC0,0x1C,0x00,0x06,0x00,0x0E,0x00,0x2C,0x0A,0xD0,0x84,0x42,0x08,0xD3, + 0x14,0x21,0x20,0x00,0xFC,0xF7,0x5E,0xFB,0x6D,0x1C,0xA8,0x42,0x05,0xD2,0x14,0x2C, + 0x07,0xD3,0x00,0x20,0x70,0xBC,0x08,0xBC,0x18,0x47,0x14,0x2C,0x01,0xD3,0xF0,0x20, + 0x00,0xE0,0x13,0x20,0x30,0x70,0x01,0x20,0xF4,0xE7,0x00,0x00,0xF0,0x06,0x00,0x20, + 0x80,0x05,0x00,0x20,0xA3,0x05,0x00,0x20,0xD0,0x05,0x00,0x20,0x95,0x05,0x00,0x20, + 0xE0,0x02,0x00,0x20,0x10,0xB5,0x08,0x24,0x20,0x00,0xFE,0xF7,0xF1,0xF9,0x64,0x1E, + 0xFA,0xD5,0x05,0x48,0x01,0x22,0x41,0x7C,0x01,0x29,0x01,0xD8,0x00,0x29,0x00,0xD1, + 0x42,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x93,0x00,0x00,0x10,0xB5,0x07,0x4C, + 0x07,0x48,0x22,0x00,0x00,0x21,0xFC,0xF7,0x49,0xFB,0x06,0x48,0x22,0x00,0x00,0x21, + 0xFC,0xF7,0x44,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD2,0x02,0x00,0x00, + 0x00,0x00,0x00,0x10,0xF6,0x06,0x00,0x20,0x10,0xB5,0x40,0x22,0xD4,0x05,0x00,0x21, + 0x20,0x00,0xFC,0xF7,0x33,0xFB,0x01,0x20,0xA0,0x63,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x14,0x48,0x10,0xB5,0x44,0x08,0x14,0x49,0x14,0x48,0x62,0x00,0xFC,0xF7,0x50,0xFB, + 0x10,0x48,0xC0,0x07,0x08,0xD0,0x0F,0x48,0xC2,0x07,0x0F,0x48,0xD2,0x0F,0x01,0x19, + 0x0E,0x48,0x00,0x19,0xFC,0xF7,0x4A,0xFB,0x0D,0x48,0x00,0x21,0x84,0x08,0x0D,0x48, + 0xA2,0x00,0xFC,0xF7,0x31,0xFB,0x0A,0x48,0x80,0x07,0x07,0xD0,0x08,0x48,0x00,0x21, + 0x82,0x07,0x08,0x48,0x92,0x0F,0x00,0x19,0xFC,0xF7,0x08,0xFB,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x88,0x00,0x00,0x40,0x00,0x00,0x20, + 0x28,0x0A,0x00,0x00,0x40,0x00,0x00,0x20,0x33,0x21,0x09,0x05,0x01,0x20,0x80,0x07, + 0x41,0x62,0x04,0x49,0x81,0x62,0x04,0x48,0xFF,0x21,0xC1,0x60,0x00,0x21,0x41,0x61, + 0x70,0x47,0x00,0x00,0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x40,0x02,0x49,0x03,0x48, + 0x01,0x60,0x20,0x21,0x41,0x60,0x70,0x47,0xDE,0x10,0x05,0x00,0x00,0x40,0x00,0x30, + 0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9,0x00,0x40,0xA0,0xE3,0x04,0x00,0xA0,0xE1, + 0xEE,0xF8,0xFF,0xEB,0x01,0x40,0x84,0xE2,0x08,0x00,0x54,0xE3,0xFA,0xFF,0xFF,0xBA, + 0x10,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x10,0xB5,0x01,0x24,0x64,0x03,0x20,0x00, + 0xFC,0xF7,0x9C,0xFE,0xFE,0xF7,0x7E,0xFC,0xFE,0xF7,0x58,0xFC,0xFE,0xF7,0x82,0xFC, + 0xFE,0xF7,0x78,0xFC,0xFE,0xF7,0x4A,0xFC,0x07,0x48,0x01,0x68,0xF0,0x22,0x91,0x43, + 0x06,0x4A,0x12,0x7B,0x12,0x07,0x12,0x0E,0x11,0x43,0x01,0x60,0x20,0x00,0xFC,0xF7, + 0x7D,0xFE,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xA0,0x00,0x40,0x00,0x93,0x00,0x00, + 0x10,0xB5,0x02,0xF0,0x71,0xFD,0x02,0xF0,0x63,0xFD,0x02,0xF0,0x59,0xFD,0xFF,0x20, + 0xFC,0xF7,0xAC,0xFE,0xFF,0xF7,0xA0,0xFF,0x13,0x48,0x80,0x22,0x00,0x21,0xFC,0xF7, + 0xB3,0xFA,0x08,0x20,0xFC,0xF7,0x6A,0xFE,0x00,0x22,0x10,0x49,0xD2,0x43,0x00,0x20, + 0xFF,0xF7,0xB8,0xFD,0x00,0xF0,0x20,0xF8,0x0D,0x48,0x40,0x7A,0x00,0x28,0x04,0xD0, + 0x40,0x20,0xFC,0xF7,0x5B,0xFE,0x00,0xF0,0x53,0xF8,0x00,0xF0,0x3D,0xF8,0x10,0x20, + 0x02,0xF0,0x43,0xFD,0x07,0x49,0xC8,0x69,0xCA,0x13,0x90,0x43,0xC8,0x61,0xFE,0xF7, + 0xAF,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x70,0x06,0x00,0x20,0x02,0x03,0x0F,0x0F, + 0x00,0x93,0x00,0x00,0x00,0x70,0x00,0x40,0xF8,0xB5,0x03,0x24,0xE6,0x01,0x13,0x25, + 0x30,0x00,0xFC,0xF7,0x3B,0xFE,0x20,0x02,0xFC,0xF7,0x62,0xFE,0x0C,0x48,0x0A,0x21, + 0x00,0x6B,0xFC,0xF7,0x37,0xFA,0x02,0x00,0xFF,0x21,0x90,0x31,0x02,0x20,0x00,0x23, + 0x00,0x95,0x03,0xF0,0xC5,0xFE,0x07,0x4A,0x27,0x21,0x03,0x20,0x00,0x23,0x00,0x94, + 0x03,0xF0,0xBE,0xFE,0x30,0x00,0xFC,0xF7,0x19,0xFE,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x93,0x00,0x00,0xE8,0xFD,0x00,0x00,0x10,0xB5,0x08,0x49,0x00,0x20,0xFF,0xF7, + 0x7B,0xFD,0x04,0xF0,0x65,0xF8,0x7D,0x20,0xC0,0x00,0x04,0xF0,0x5B,0xF8,0x00,0x20, + 0xFF,0xF7,0x58,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x49,0x85,0x00,0x00, + 0x0A,0x48,0x10,0xB5,0x00,0x6B,0x0A,0x49,0x0A,0x4C,0x88,0x42,0x05,0xD9,0x7D,0x21, + 0xC9,0x00,0xFC,0xF7,0xFF,0xF9,0x64,0x30,0x01,0xE0,0xFF,0x20,0xF5,0x30,0xA0,0x66, + 0x04,0xF0,0x16,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x93,0x00,0x00, + 0x07,0xA5,0x07,0x00,0x8C,0x05,0x00,0x20,0x10,0xB5,0xFF,0xF7,0xBF,0xFE,0x11,0x48, + 0x00,0x7A,0x03,0xF0,0xB9,0xFD,0xFF,0xF7,0x2B,0xFF,0x0E,0x48,0x0E,0x4A,0xA0,0x30, + 0x41,0x89,0xD1,0x83,0x0D,0x49,0x0E,0x4A,0x09,0x68,0x40,0x31,0x49,0x7D,0x51,0x76, + 0x01,0x00,0x20,0x39,0x0A,0x8B,0x0A,0x49,0x80,0x31,0x8A,0x63,0x00,0x88,0xC8,0x63, + 0xFF,0xF7,0x90,0xFE,0xFE,0xF7,0xAE,0xFA,0x06,0x49,0x00,0x20,0x08,0x70,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x93,0x00,0x00,0x40,0x00,0x00,0x20,0xF0,0x06,0x00,0x20, + 0xC0,0x04,0x00,0x20,0x8D,0x05,0x00,0x20,0xF7,0xB5,0x2C,0x48,0x86,0xB0,0x04,0x90, + 0x00,0x20,0x2B,0x4E,0x07,0x00,0x02,0x90,0x03,0x90,0x05,0x90,0xFE,0xF7,0x60,0xFB, + 0xFE,0xF7,0xCC,0xFB,0x27,0x48,0x40,0x7F,0x01,0x90,0x26,0x48,0x20,0x38,0x40,0x7F, + 0x00,0x25,0x00,0x90,0x00,0x24,0x21,0x00,0x28,0x00,0xFF,0xF7,0xFD,0xFA,0x00,0x28, + 0x1B,0xD0,0x0E,0x21,0x69,0x43,0x04,0x9A,0x09,0x19,0x89,0x00,0x51,0x58,0x09,0x05, + 0x09,0x0D,0x08,0x1A,0x01,0x1E,0x00,0xDC,0x41,0x42,0x00,0x28,0x01,0xDB,0x01,0x98, + 0x00,0xE0,0x00,0x98,0x81,0x42,0x01,0xDD,0x01,0x22,0x05,0x92,0x08,0x1A,0xB0,0x42, + 0x03,0xDD,0x06,0x00,0x2F,0x00,0x02,0x94,0x03,0x91,0x64,0x1C,0x0E,0x2C,0xDA,0xD3, + 0x6D,0x1C,0x16,0x2D,0xD6,0xD3,0x03,0x99,0x08,0x98,0x01,0x60,0x0E,0x48,0x00,0x69, + 0xC0,0x07,0x05,0xD0,0x07,0x99,0x02,0x98,0x08,0x60,0x06,0x98,0x07,0x60,0x04,0xE0, + 0x07,0x98,0x07,0x60,0x06,0x99,0x02,0x98,0x08,0x60,0x05,0x98,0x00,0x28,0x00,0xD0, + 0x04,0x20,0x09,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD4,0x02,0x10,0x40, + 0x78,0xEC,0xFF,0xFF,0x20,0x93,0x00,0x00,0x00,0x90,0x00,0x40,0x78,0x47,0xC0,0x46, + 0xF8,0xC0,0x9F,0xE5,0x00,0x00,0x9C,0xE5,0xF4,0x30,0x9F,0xE5,0xA6,0x04,0xD3,0xE5, + 0x01,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3,0xA7,0x14,0xD3,0x15,0x00,0x00,0xA0,0x13, + 0x00,0x00,0x51,0x13,0x1E,0xFF,0x2F,0x91,0xF0,0x03,0x2D,0xE9,0xD4,0x50,0x9F,0xE5, + 0xD4,0x60,0x9F,0xE5,0xD4,0x40,0x9F,0xE5,0xB7,0x70,0xA0,0xE3,0xEE,0x8E,0xA0,0xE3, + 0x0B,0x7C,0x87,0xE2,0x02,0x8A,0x88,0xE2,0xA6,0x24,0xD3,0xE5,0x00,0x10,0x83,0xE0, + 0xD5,0x14,0xD1,0xE5,0x02,0x00,0x12,0xE3,0xD4,0x24,0xD3,0xE5,0x82,0x21,0x62,0x00, + 0x82,0x10,0x81,0x00,0x81,0x11,0x61,0x10,0x81,0x10,0x82,0x10,0x00,0x20,0xD5,0xE5, + 0x00,0x00,0x52,0xE3,0x04,0x00,0x00,0x1A,0x01,0x11,0x9C,0xE7,0x80,0x20,0x83,0xE0, + 0x02,0x19,0xC1,0xE3,0xB0,0x11,0xC2,0xE1,0x03,0x00,0x00,0xEA,0x81,0x10,0x86,0xE0, + 0xB0,0x10,0xD1,0xE1,0x80,0x20,0x83,0xE0,0xB0,0x11,0xC2,0xE1,0x80,0x10,0x83,0xE0, + 0xB0,0x21,0xD1,0xE1,0x23,0x9C,0x42,0xE2,0x29,0x90,0x49,0xE2,0x07,0x00,0x59,0xE1, + 0x04,0x00,0x00,0x2A,0x02,0x21,0x82,0xE0,0x02,0x22,0xA0,0xE1,0x94,0x92,0x82,0xE0, + 0xA2,0x22,0xA0,0xE1,0xB0,0x21,0xC1,0xE1,0xB0,0x21,0xD1,0xE1,0x08,0x00,0x52,0xE1, + 0x04,0x00,0x00,0x3A,0x46,0x90,0xA0,0xE3,0x99,0x02,0x02,0xE0,0x94,0x92,0x82,0xE0, + 0xA2,0x22,0xA0,0xE1,0xB0,0x21,0xC1,0xE1,0xA7,0x14,0xD3,0xE5,0x01,0x00,0x80,0xE2, + 0x00,0x00,0x51,0xE1,0xD3,0xFF,0xFF,0x8A,0xF0,0x03,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x00,0x10,0x10,0x40,0x40,0x00,0x00,0x20,0x8C,0x05,0x00,0x20,0xF6,0x06,0x00,0x20, + 0x1F,0x85,0xEB,0x51,0x02,0x49,0x30,0x20,0xC8,0x74,0x48,0x71,0x70,0x47,0x00,0x00, + 0x98,0x09,0x10,0x40,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x88,0x42,0x00,0xDA, + 0x08,0x00,0x70,0x47,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00, + 0x70,0x47,0x10,0xB5,0x02,0x9C,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA, + 0x10,0x00,0x22,0x00,0x19,0x00,0xFF,0xF7,0xED,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x22,0x03,0xE0,0x03,0x78,0x40,0x1C,0x9A,0x18,0x49,0x1E,0x00,0x29,0xF9,0xDC, + 0x10,0x06,0x00,0x0E,0x70,0x47,0x00,0x00,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9, + 0x85,0xDF,0x4D,0xE2,0x00,0x00,0xA0,0xE3,0xF8,0x01,0x8D,0xE5,0x24,0x05,0x9F,0xE5, + 0x6C,0x60,0x8D,0xE2,0xBE,0x03,0x90,0xE8,0xBE,0x03,0x86,0xE8,0x18,0x05,0x9F,0xE5, + 0x69,0x20,0xA0,0xE3,0x00,0x00,0x90,0xE5,0x01,0x2C,0x82,0xE2,0xBC,0x45,0xD0,0xE1, + 0x62,0x50,0xD0,0xE5,0x04,0x05,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x00,0x00,0xD0,0xE5, + 0x00,0x00,0x50,0xE3,0x32,0x40,0xA0,0x13,0x8C,0x00,0x8D,0xE2,0x55,0xF0,0xFF,0xEB, + 0xEC,0x04,0x9F,0xE5,0x08,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x51,0xF0,0xFF,0xEB, + 0xE0,0x04,0x9F,0xE5,0x10,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x4D,0xF0,0xFF,0xEB, + 0x24,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x48,0x00,0x8D,0xE2,0x49,0xF0,0xFF,0xEB, + 0x24,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x24,0x00,0x8D,0xE2,0x45,0xF0,0xFF,0xEB, + 0x24,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x0D,0x00,0xA0,0xE1,0x41,0xF0,0xFF,0xEB, + 0xA4,0x14,0x9F,0xE5,0x04,0x00,0xD1,0xE5,0x00,0x00,0x50,0xE3,0x85,0xDF,0x8D,0x02, + 0xF0,0x4F,0xBD,0x08,0x1E,0xFF,0x2F,0x01,0xB6,0x00,0xD1,0xE1,0x20,0x00,0x10,0xE3, + 0x05,0x00,0x44,0x10,0x00,0x48,0xA0,0x11,0xB8,0x00,0xD1,0xE1,0x24,0x48,0xA0,0x11, + 0x78,0x24,0x9F,0xE5,0x94,0x00,0x00,0xE0,0x92,0x30,0xC0,0xE0,0xC0,0x22,0xA0,0xE1, + 0xC0,0x0F,0x42,0xE0,0x68,0x24,0x9F,0xE5,0x00,0x40,0xA0,0xE3,0x10,0x22,0x8D,0xE5, + 0xBE,0x20,0xD1,0xE1,0x02,0x00,0x80,0xE0,0x10,0x22,0x9D,0xE5,0xBE,0x07,0xC2,0xE1, + 0x04,0x00,0xA0,0xE1,0x04,0x42,0x8D,0xE5,0x80,0x01,0x60,0xE0,0x00,0x70,0xA0,0xE3, + 0x0C,0x02,0x8D,0xE5,0x0C,0x12,0x9D,0xE5,0x00,0x00,0xA0,0xE3,0x81,0x20,0x87,0xE0, + 0x30,0x14,0x9F,0xE5,0x82,0xC0,0x81,0xE0,0x10,0x12,0x9D,0xE5,0xF0,0x30,0xDC,0xE1, + 0xFE,0x17,0xD1,0xE1,0x01,0x00,0x53,0xE1,0x01,0x00,0x43,0xC0,0x00,0x08,0xA0,0xC1, + 0x40,0x08,0xA0,0xC1,0x00,0x00,0x57,0xE3,0x06,0x00,0x00,0x1A,0x00,0x00,0x50,0xE3, + 0x83,0x00,0x00,0x0A,0x8C,0x00,0x8D,0xE2,0x02,0x00,0xD0,0xE7,0x00,0x00,0x50,0xE3, + 0x7F,0x00,0x00,0x1A,0x0C,0x00,0x00,0xEA,0xF2,0x30,0x5C,0xE1,0x01,0x00,0x53,0xE1, + 0x03,0x00,0x00,0xDA,0x01,0x10,0x43,0xE0,0x01,0x18,0xA0,0xE1,0x41,0x18,0xB0,0xE1, + 0x77,0x00,0x00,0x1A,0x00,0x00,0x50,0xE3,0x75,0x00,0x00,0x0A,0x8C,0x00,0x8D,0xE2, + 0x02,0x00,0xD0,0xE7,0x00,0x00,0x50,0xE3,0x71,0x00,0x00,0x1A,0x04,0x02,0x9D,0xE5, + 0x07,0x38,0xA0,0xE1,0x00,0xC8,0xA0,0xE1,0x01,0x00,0x84,0xE2,0x00,0x48,0xA0,0xE1, + 0x44,0x48,0xA0,0xE1,0x08,0x00,0x54,0xE3,0x43,0x38,0xA0,0xE1,0x4C,0xC8,0xA0,0xE1, + 0x04,0x10,0xA0,0xE3,0x00,0x60,0xA0,0xD3,0x00,0x32,0x8D,0xE5,0xFC,0xC1,0x8D,0xE5, + 0x03,0x00,0x00,0xDA,0x01,0x00,0x44,0xE2,0x00,0x48,0xA0,0xE1,0x44,0x48,0xA0,0xE1, + 0x6A,0x00,0x00,0xEA,0x04,0x0C,0xA0,0xE1,0x40,0x0C,0xA0,0xE1,0x08,0x02,0x8D,0xE5, + 0x54,0x03,0x9F,0xE5,0x84,0x00,0x80,0xE0,0x01,0xAC,0x80,0xE2,0x01,0x00,0x86,0xE2, + 0x00,0x68,0xA0,0xE1,0x46,0x68,0xA0,0xE1,0x09,0x0D,0x56,0xE3,0x00,0x80,0xA0,0xE3, + 0x53,0x00,0x00,0xCA,0x10,0x02,0x9D,0xE5,0x00,0x90,0xA0,0xE3,0xFE,0x57,0xD0,0xE1, + 0x6C,0x00,0x8D,0xE2,0x01,0x01,0x80,0xE0,0xB2,0x20,0xD0,0xE1,0xB0,0x00,0xD0,0xE1, + 0x0C,0x20,0x82,0xE0,0x02,0x28,0xA0,0xE1,0x03,0x00,0x80,0xE0,0x42,0x28,0xA0,0xE1, + 0x00,0x08,0xA0,0xE1,0x16,0x00,0x52,0xE3,0x40,0x08,0xA0,0xE1,0x15,0x00,0x00,0x2A, + 0x00,0x00,0x50,0xE3,0x13,0x00,0x00,0xBA,0x0E,0x00,0x50,0xE3,0x11,0x00,0x00,0xAA, + 0xF0,0xE2,0x9F,0xE5,0x82,0xB1,0x62,0xE0,0x8B,0xB0,0x80,0xE0,0x8B,0xE0,0x8E,0xE0, + 0xF0,0xE0,0xDE,0xE1,0x05,0x00,0x5E,0xE1,0x0A,0x00,0x00,0xDA,0x8C,0xE0,0x8D,0xE2, + 0xDB,0xB0,0x9E,0xE1,0x04,0x00,0x5B,0xE1,0x00,0x00,0x5B,0x13,0x05,0x00,0x00,0x1A, + 0xFC,0x91,0x9D,0xE5,0x09,0x00,0x52,0xE1,0x00,0x92,0x9D,0x05,0x09,0x00,0x50,0x01, + 0x01,0x80,0xA0,0x13,0x04,0x00,0x00,0xEA,0x01,0x90,0x89,0xE2,0x01,0x10,0x81,0xE2, + 0x08,0x00,0x59,0xE3,0x07,0x10,0x01,0xE2,0xD8,0xFF,0xFF,0xBA,0x8C,0x91,0x6C,0xE0, + 0x89,0x90,0x83,0xE0,0x8C,0xE0,0x8D,0xE2,0x09,0xB0,0xDE,0xE7,0x00,0x00,0x5B,0xE3, + 0x1C,0x00,0x00,0x1A,0x08,0xB2,0x9D,0xE5,0x09,0xB0,0xCE,0xE7,0x74,0xB2,0x9F,0xE5, + 0x48,0xE0,0x8D,0xE2,0x89,0x90,0x8B,0xE0,0xF0,0x90,0xD9,0xE1,0x04,0xB1,0x9E,0xE7, + 0x05,0x00,0x59,0xE1,0x05,0x50,0x49,0xC0,0x4C,0x92,0x9F,0xE5,0x05,0x58,0xA0,0xC1, + 0x83,0x30,0x89,0xE0,0xB0,0x32,0xD3,0xE1,0x00,0x50,0xA0,0xD3,0x25,0x58,0xA0,0xC1, + 0x95,0xB3,0x23,0xE0,0x04,0x31,0x8E,0xE7,0x8C,0xC0,0x89,0xE0,0xB4,0xC5,0xDC,0xE1, + 0x24,0x30,0x8D,0xE2,0x04,0xB1,0x93,0xE7,0x95,0xBC,0x2C,0xE0,0x04,0xC1,0x83,0xE7, + 0x04,0xC1,0x9D,0xE7,0x05,0xC0,0x8C,0xE0,0x04,0xC1,0x8D,0xE7,0xBE,0x36,0xDA,0xE1, + 0x01,0x30,0x83,0xE2,0xBE,0x36,0xCA,0xE1,0x00,0x00,0x58,0xE3,0x04,0x00,0x00,0x0A, + 0xFF,0x30,0x00,0xE2,0x05,0x00,0x81,0xE2,0xFF,0xC0,0x02,0xE2,0x07,0x10,0x00,0xE2, + 0xA5,0xFF,0xFF,0xEA,0x01,0x70,0x87,0xE2,0x0E,0x00,0x57,0xE3,0x68,0xFF,0xFF,0xBA, + 0xF8,0x01,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A,0x04,0x02,0x9D,0xE5, + 0x01,0x00,0x80,0xE2,0x16,0x00,0x50,0xE3,0x04,0x02,0x8D,0xE5,0x5D,0xFF,0xFF,0xBA, + 0x00,0x00,0x54,0xE3,0x49,0x00,0x00,0xDA,0xAC,0x51,0x9F,0xE5,0x00,0x30,0xA0,0xE3, + 0x48,0x60,0x8D,0xE2,0x24,0xE0,0x8D,0xE2,0x00,0x20,0xA0,0xE3,0x83,0xA0,0x85,0xE0, + 0x83,0xB1,0x63,0xE0,0x9C,0x01,0x9F,0xE5,0x8B,0xC0,0x82,0xE0,0x8C,0x70,0x80,0xE0, + 0x10,0x02,0x9D,0xE5,0xF2,0x70,0xD7,0xE1,0xFE,0x07,0xD0,0xE1,0x00,0x10,0xA0,0xE3, + 0x00,0x00,0x57,0xE1,0x00,0x00,0x47,0xC0,0x00,0x18,0xA0,0xC1,0x8C,0x70,0x8D,0xE2, + 0xDC,0x00,0x97,0xE1,0x07,0xC0,0x8C,0xE0,0x01,0x70,0xDC,0xE5,0x41,0x18,0xA0,0xC1, + 0x00,0x00,0x57,0xE3,0x14,0x00,0x00,0x1A,0x00,0x00,0x51,0xE3,0x00,0x00,0x50,0x13, + 0x11,0x00,0x00,0x0A,0x82,0x80,0x85,0xE0,0xB2,0x82,0xD8,0xE1,0x00,0x71,0x96,0xE7, + 0x91,0x78,0x27,0xE0,0x00,0x71,0x86,0xE7,0xB4,0x85,0xDA,0xE1,0x00,0x71,0x9E,0xE7, + 0x91,0x78,0x27,0xE0,0x00,0x71,0x8E,0xE7,0x00,0x81,0x9D,0xE7,0x08,0x10,0x81,0xE0, + 0x00,0x11,0x8D,0xE7,0x80,0x10,0x85,0xE0,0x01,0x1C,0x81,0xE2,0xBE,0x76,0xD1,0xE1, + 0x01,0x70,0x87,0xE2,0xBE,0x76,0xC1,0xE1,0x01,0x00,0xCC,0xE5,0x01,0x20,0x82,0xE2, + 0x0E,0x00,0x52,0xE3,0xD6,0xFF,0xFF,0xBA,0x01,0x30,0x83,0xE2,0x16,0x00,0x53,0xE3, + 0xD0,0xFF,0xFF,0xBA,0x01,0x00,0x54,0xE3,0x01,0x70,0xA0,0xE3,0x13,0x00,0x00,0xBA, + 0x0D,0x90,0xA0,0xE1,0x0E,0xA0,0xA0,0xE1,0x07,0x81,0x99,0xE7,0x07,0x01,0x96,0xE7, + 0x00,0x00,0x58,0xE3,0x01,0x10,0xA0,0x03,0x08,0x10,0xA0,0x11,0x29,0xEF,0xFF,0xEB, + 0x87,0x10,0x85,0xE0,0x01,0xBC,0x81,0xE2,0x00,0x00,0x58,0xE3,0xB6,0x04,0xCB,0xE1, + 0x07,0x01,0x9A,0xE7,0x01,0x10,0xA0,0x03,0x08,0x10,0xA0,0x11,0x21,0xEF,0xFF,0xEB, + 0x01,0x70,0x87,0xE2,0x04,0x00,0x57,0xE1,0xB6,0x05,0xCB,0xE1,0xED,0xFF,0xFF,0xDA, + 0x84,0x30,0x9F,0xE5,0x04,0x00,0xD3,0xE5,0x01,0x00,0x50,0xE3,0x85,0xDF,0x8D,0xB2, + 0xF0,0x4F,0xBD,0xB8,0x1E,0xFF,0x2F,0xB1,0x8C,0xC0,0x8D,0xE2,0x00,0x11,0x83,0xE0, + 0x01,0x2C,0x81,0xE2,0xF6,0x11,0xD2,0xE1,0xF4,0x21,0xD2,0xE1,0x81,0x11,0x61,0xE0, + 0x81,0x10,0x82,0xE0,0x01,0x10,0xDC,0xE7,0x00,0x20,0x83,0xE0,0x01,0x00,0x40,0xE2, + 0x65,0x11,0xC2,0xE5,0x81,0x10,0x83,0xE0,0x01,0x1C,0x81,0xE2,0xBE,0x16,0xD1,0xE1, + 0xFF,0x10,0x01,0xE2,0x38,0x11,0xC2,0xE5,0xBC,0x21,0xD3,0xE1,0x02,0x00,0x51,0xE1, + 0xBC,0x11,0xC3,0x81,0x01,0x00,0x50,0xE3,0xEB,0xFF,0xFF,0xAA,0x85,0xDF,0x8D,0xE2, + 0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x48,0x86,0x00,0x00,0xF0,0x06,0x00,0x20, + 0xA3,0x05,0x00,0x20,0xA6,0x01,0x00,0x20,0xAE,0x01,0x00,0x20,0x40,0x00,0x00,0x20, + 0x1F,0x85,0xEB,0x51,0x40,0x01,0x00,0x20,0x00,0x00,0x00,0x10,0x78,0x47,0xC0,0x46, + 0xF0,0x4F,0x2D,0xE9,0x00,0x00,0xA0,0xE3,0x5B,0xDF,0x4D,0xE2,0x00,0x10,0xA0,0xE1, + 0x18,0x00,0x8D,0xE5,0x14,0x00,0x8D,0xE5,0x0C,0x00,0x8D,0xE5,0x08,0x00,0x8D,0xE5, + 0x2E,0x20,0xA0,0xE3,0x34,0x00,0x8D,0xE2,0x06,0xEF,0xFF,0xEB,0xD8,0x9F,0x9F,0xE5, + 0x0F,0x0A,0xE0,0xE3,0x00,0x80,0xA0,0xE3,0xB8,0x00,0xC9,0xE1,0xBC,0x80,0xC9,0xE1, + 0xBA,0x8E,0xC9,0xE1,0x81,0x11,0xD9,0xE5,0xC0,0x7F,0x9F,0xE5,0x05,0x0C,0x89,0xE2, + 0x02,0x00,0x51,0xE3,0x00,0x10,0x97,0x85,0xB2,0x12,0xD1,0x81,0x0E,0x00,0x00,0x8A, + 0x05,0x00,0x00,0x1A,0x00,0x10,0x97,0xE5,0xB6,0x24,0xD0,0xE1,0xB0,0x12,0xD1,0xE1, + 0x02,0x10,0x81,0xE0,0x10,0x10,0x8D,0xE5,0x0E,0x00,0x00,0xEA,0x90,0x1F,0x9F,0xE5, + 0x00,0x10,0xD1,0xE5,0x00,0x00,0x51,0xE3,0x05,0x00,0x00,0x0A,0x84,0x1F,0x9F,0xE5, + 0xB4,0x24,0xD0,0xE1,0xBC,0x1A,0xD1,0xE1,0x02,0x10,0x81,0xE0,0x10,0x10,0x8D,0xE5, + 0x04,0x00,0x00,0xEA,0x00,0x10,0x97,0xE5,0xB4,0x24,0xD0,0xE1,0xBE,0x11,0xD1,0xE1, + 0x02,0x10,0x81,0xE0,0x10,0x10,0x8D,0xE5,0x5C,0x1F,0x9F,0xE5,0x68,0x11,0x8D,0xE5, + 0xB4,0x24,0xD1,0xE1,0x10,0x10,0x9D,0xE5,0xB8,0x04,0xD0,0xE1,0x02,0x10,0x81,0xE0, + 0x00,0x20,0x97,0xE5,0xA6,0xC4,0xD9,0xE5,0xBA,0x34,0xD2,0xE1,0xFE,0x60,0xD9,0xE1, + 0x03,0x00,0x80,0xE0,0x01,0x00,0x50,0xE1,0x01,0x30,0xA0,0xE1,0x01,0x00,0x1C,0xE3, + 0x00,0x10,0xA0,0x31,0x03,0x00,0x00,0x0A,0x02,0x00,0x1C,0xE3,0x02,0xC0,0xA0,0x03, + 0x01,0xC0,0xA0,0x13,0x08,0xC0,0x8D,0xE5,0x10,0x4F,0x9F,0xE5,0x10,0xAF,0x9F,0xE5, + 0x64,0x41,0x8D,0xE5,0xB4,0x89,0xC4,0xE1,0xBA,0xC0,0xD9,0xE1,0x4E,0x40,0xD2,0xE5, + 0x01,0x18,0xA0,0xE1,0x00,0x08,0xA0,0xE1,0x94,0x0C,0x0C,0xE0,0x9A,0x4C,0x8C,0xE0, + 0x64,0x41,0x9D,0xE5,0x8C,0xC5,0xA0,0xE1,0x4C,0xC8,0xA0,0xE1,0xB6,0xC9,0xC4,0xE1, + 0xBC,0x44,0xD2,0xE1,0x41,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x04,0x00,0x5C,0xE1, + 0xBC,0xC4,0xD2,0xB1,0x64,0x21,0x9D,0xB5,0x00,0x50,0xA0,0xE3,0xB6,0xC9,0xC2,0xB1, + 0xC0,0x2E,0x9F,0xE5,0x00,0x80,0x82,0xE5,0xBC,0x2E,0x9F,0xE5,0x00,0x80,0x82,0xE5, + 0x57,0x2F,0x8D,0xE2,0x03,0x00,0x82,0xE8,0x03,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x58,0x01,0x8D,0xE5,0x85,0x01,0x65,0xE0,0x54,0x01,0x8D,0xE5,0x78,0x0E,0x9F,0xE5, + 0x00,0x40,0xA0,0xE3,0x85,0x00,0x80,0xE0,0x50,0x01,0x8D,0xE5,0x54,0x01,0x9D,0xE5, + 0x88,0x2E,0x9F,0xE5,0x80,0x00,0x84,0xE0,0x00,0x38,0xA0,0xE1,0x64,0x11,0x9D,0xE5, + 0x43,0x38,0xA0,0xE1,0x83,0x00,0x82,0xE0,0xF0,0x00,0xD0,0xE1,0xF6,0x19,0xD1,0xE1, + 0x01,0x00,0x50,0xE1,0x04,0x00,0x00,0xDA,0x64,0x11,0x9D,0xE5,0x64,0xC1,0x9D,0xE5, + 0xB4,0x19,0xD1,0xE1,0x01,0x10,0x81,0xE2,0xB4,0x19,0xCC,0xE1,0x00,0x00,0x50,0xE3, + 0x03,0x00,0x00,0xDA,0x48,0x0E,0x9F,0xE5,0xB0,0x10,0xD0,0xE1,0x01,0x10,0x81,0xE2, + 0xB0,0x10,0xC0,0xE1,0x3C,0xBE,0x9F,0xE5,0x83,0x00,0x8B,0xE0,0xF0,0xA0,0xD0,0xE1, + 0x60,0x01,0x9D,0xE5,0x00,0x00,0x5A,0xE1,0xE4,0x02,0x00,0xBA,0x00,0x00,0x55,0xE3, + 0x00,0x00,0xA0,0xE3,0x15,0x00,0x00,0xDA,0x34,0x20,0x8D,0xE2,0x0E,0x00,0x43,0xE2, + 0xC0,0x11,0xD2,0xE7,0x07,0x00,0x00,0xE2,0x01,0xC0,0xA0,0xE3,0x1C,0x00,0x01,0xE0, + 0x00,0x00,0x54,0xE3,0x05,0x00,0x00,0xDA,0x0F,0x10,0x43,0xE2,0xC1,0x71,0xD2,0xE7, + 0x07,0x10,0x01,0xE2,0x1C,0x11,0x07,0xE0,0x01,0x00,0x80,0xE0,0xFF,0x00,0x00,0xE2, + 0x0D,0x00,0x54,0xE3,0x07,0x00,0x00,0xAA,0x0D,0x10,0x43,0xE2,0xC1,0x21,0xD2,0xE7, + 0x07,0x10,0x01,0xE2,0x1C,0x11,0x02,0xE0,0x01,0x00,0x80,0xE0,0xFF,0x00,0x00,0xE2, + 0x00,0x00,0x54,0xE3,0x07,0x00,0x00,0xDA,0x34,0x20,0x8D,0xE2,0x01,0x10,0x43,0xE2, + 0xC1,0x21,0xD2,0xE7,0x07,0x10,0x01,0xE2,0x01,0xC0,0xA0,0xE3,0x1C,0x11,0x02,0xE0, + 0x01,0x00,0x80,0xE0,0xFF,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3,0xBF,0x02,0x00,0x1A, + 0x00,0xC0,0xA0,0xE3,0x0C,0x70,0xA0,0xE1,0x0E,0x90,0xA0,0xE3,0x00,0x00,0xA0,0xE3, + 0x07,0x80,0x85,0xE0,0x00,0x10,0x84,0xE0,0x01,0x20,0x58,0xE2,0x01,0x10,0x41,0xE2, + 0x0B,0x00,0x00,0x4A,0x16,0x00,0x52,0xE3,0x09,0x00,0x00,0xCA,0x00,0x00,0x51,0xE3, + 0x07,0x00,0x00,0xBA,0x0E,0x00,0x51,0xE3,0x0E,0x90,0xA0,0xE3,0x04,0x00,0x00,0xCA, + 0x92,0x19,0x21,0xE0,0x81,0x10,0x8B,0xE0,0xF0,0x10,0xD1,0xE1,0x0C,0x00,0x51,0xE1, + 0x01,0xC0,0xA0,0xC1,0x01,0x00,0x80,0xE2,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x03,0x00,0x50,0xE3,0xEA,0xFF,0xFF,0xBA,0x01,0x00,0x87,0xE2,0x00,0x78,0xA0,0xE1, + 0x47,0x78,0xA0,0xE1,0x03,0x00,0x57,0xE3,0xE3,0xFF,0xFF,0xBA,0x0C,0x08,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x00,0x00,0x5A,0xE1,0x9C,0x02,0x00,0x1A,0xD8,0x1C,0x9F,0xE5, + 0xBC,0x10,0xD1,0xE1,0x00,0x00,0x51,0xE1,0x05,0x00,0x00,0xCA,0xC8,0x1C,0x9F,0xE5, + 0xBC,0x00,0xC1,0xE1,0x04,0x00,0xD1,0xE5,0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2, + 0x18,0x00,0x8D,0xE5,0x34,0x00,0x8D,0xE2,0xC3,0x11,0xD0,0xE7,0x07,0x20,0x03,0xE2, + 0x01,0xC0,0xA0,0xE3,0x1C,0x12,0x81,0xE1,0xC3,0x11,0xC0,0xE7,0x08,0x00,0x9D,0xE5, + 0x00,0x70,0xA0,0xE3,0x01,0x00,0x10,0xE3,0x05,0x00,0x00,0x0A,0x0D,0x00,0x54,0xE3, + 0x0D,0x70,0xA0,0x03,0x07,0x00,0x00,0x0A,0x0C,0x00,0x54,0xE3,0x03,0x77,0x87,0x03, + 0x04,0x00,0x00,0xEA,0x15,0x00,0x55,0xE3,0x15,0x70,0xA0,0x03,0x01,0x00,0x00,0x0A, + 0x14,0x00,0x55,0xE3,0x05,0x77,0x87,0x03,0x07,0x08,0xB0,0xE1,0x03,0x00,0x00,0x0A, + 0x5C,0x01,0x9D,0xE5,0x00,0x00,0x5A,0xE1,0x78,0x02,0x00,0xBA,0x02,0x00,0x00,0xEA, + 0x58,0x01,0x9D,0xE5,0x00,0x00,0x5A,0xE1,0x74,0x02,0x00,0xBA,0x3C,0x0C,0x9F,0xE5, + 0x00,0x30,0xA0,0xE3,0x00,0x90,0x90,0xE5,0x03,0x10,0x85,0xE0,0x02,0xB0,0x41,0xE2, + 0x03,0x11,0x83,0xE0,0x0B,0xCC,0xA0,0xE1,0xEC,0x20,0x8D,0xE2,0x4C,0xCC,0xA0,0xE1, + 0x88,0x80,0x8D,0xE2,0x00,0x00,0xA0,0xE3,0x01,0x21,0x82,0xE0,0x8C,0xC1,0x6C,0xE0, + 0x01,0x81,0x88,0xE0,0x00,0x10,0x84,0xE0,0x0B,0xAC,0xA0,0xE1,0x02,0x10,0x41,0xE2, + 0x4A,0xAC,0xA0,0xE1,0x01,0x1C,0xA0,0xE1,0x16,0x00,0x5A,0xE3,0x41,0x1C,0xA0,0xE1, + 0x03,0x00,0x00,0x2A,0x00,0x00,0x51,0xE3,0x01,0x00,0x00,0xBA,0x0E,0x00,0x51,0xE3, + 0x02,0x00,0x00,0xBA,0x00,0x10,0xA0,0xE3,0x00,0x11,0x82,0xE7,0x23,0x00,0x00,0xEA, + 0xB0,0xA0,0xD9,0xE1,0x01,0x09,0x1A,0xE3,0x8C,0xA0,0x81,0xE0,0x05,0x00,0x00,0x0A, + 0xE0,0xEB,0x9F,0xE5,0x8A,0xA0,0x8E,0xE0,0xF0,0xA0,0xDA,0xE1,0x06,0xA0,0x4A,0xE0, + 0x00,0xA1,0x82,0xE7,0x04,0x00,0x00,0xEA,0xC0,0xEB,0x9F,0xE5,0x8A,0xA0,0x8E,0xE0, + 0xF0,0xA0,0xDA,0xE1,0x06,0xA0,0x4A,0xE0,0x00,0xA1,0x82,0xE7,0x00,0x00,0x5A,0xE3, + 0x00,0xA0,0xA0,0xB3,0x00,0xA1,0x82,0xB7,0xB0,0xA0,0xD9,0xE1,0x8C,0x10,0x81,0xE0, + 0x02,0x09,0x1A,0xE3,0x05,0x00,0x00,0x0A,0x98,0xAB,0x9F,0xE5,0x81,0x10,0x8A,0xE0, + 0xF0,0x10,0xD1,0xE1,0x06,0x10,0x41,0xE0,0x00,0x11,0x88,0xE7,0x04,0x00,0x00,0xEA, + 0x78,0xAB,0x9F,0xE5,0x81,0x10,0x8A,0xE0,0xF0,0x10,0xD1,0xE1,0x06,0x10,0x41,0xE0, + 0x00,0x11,0x88,0xE7,0x00,0x00,0x51,0xE3,0x00,0x10,0xA0,0xB3,0x00,0x11,0x88,0xB7, + 0x01,0x00,0x80,0xE2,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x05,0x00,0x50,0xE3, + 0xC7,0xFF,0xFF,0xBA,0x01,0x00,0x83,0xE2,0x00,0x38,0xA0,0xE1,0x43,0x38,0xA0,0xE1, + 0x05,0x00,0x53,0xE3,0xB7,0xFF,0xFF,0xBA,0x3C,0x0B,0x9F,0xE5,0x00,0x00,0xD0,0xE5, + 0x00,0x00,0x50,0xE3,0x1A,0x00,0x00,0x1A,0x30,0x0B,0x9F,0xE5,0x00,0x00,0xD0,0xE5, + 0x00,0x00,0x50,0xE3,0x16,0x00,0x00,0x0A,0x01,0x00,0x44,0xE2,0x02,0x00,0x50,0xE3, + 0x04,0x00,0x00,0x8A,0x04,0x00,0x55,0xE3,0x05,0x00,0x55,0x13,0x10,0x1B,0x9F,0x05, + 0x01,0x00,0xA0,0x03,0x00,0x00,0xC1,0x05,0x09,0x00,0x44,0xE2,0x02,0x00,0x50,0xE3, + 0x04,0x00,0x00,0x8A,0x04,0x00,0x55,0xE3,0x05,0x00,0x55,0x13,0xF4,0x1A,0x9F,0x05, + 0x01,0x00,0xA0,0x03,0x00,0x00,0xC1,0x05,0xE4,0x0A,0x9F,0xE5,0x00,0x00,0xD0,0xE5, + 0x00,0x00,0x50,0xE3,0xDC,0x0A,0x9F,0x05,0x00,0x00,0xD0,0x05,0x00,0x00,0x50,0x03, + 0x0A,0x02,0x00,0x0A,0x12,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x64,0x00,0x8D,0xE2, + 0xB0,0xED,0xFF,0xEB,0xA0,0x00,0x9D,0xE5,0x80,0x1A,0x9F,0xE5,0x64,0x00,0x8D,0xE5, + 0xA4,0x00,0x9D,0xE5,0x88,0x3A,0x9F,0xE5,0x68,0x00,0x8D,0xE5,0xA8,0x00,0x9D,0xE5, + 0x00,0x00,0x54,0xE3,0x6C,0x00,0x8D,0xE5,0xB4,0x00,0x9D,0xE5,0x70,0x00,0x8D,0xE5, + 0xBC,0x00,0x9D,0xE5,0x78,0x00,0x8D,0xE5,0xC8,0x00,0x9D,0xE5,0x7C,0x00,0x8D,0xE5, + 0xCC,0x00,0x9D,0xE5,0x80,0x00,0x8D,0xE5,0xD0,0x00,0x9D,0xE5,0x84,0x00,0x8D,0xE5, + 0x00,0x10,0x91,0xE5,0xB8,0x00,0x9D,0xE5,0xBC,0x11,0xD1,0xE1,0x91,0x00,0x00,0xE0, + 0x93,0x10,0xC0,0xE0,0xC0,0x12,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x74,0x00,0x8D,0xE5, + 0x0D,0x00,0x00,0x1A,0x42,0x1F,0x8D,0xE2,0x03,0x00,0x91,0xE8,0x1C,0x21,0x9D,0xE5, + 0x02,0x10,0x81,0xE0,0x80,0x00,0x81,0xE0,0x20,0x11,0x9D,0xE5,0x02,0x00,0x80,0xE0, + 0x01,0x00,0x80,0xE0,0x30,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x01,0x00,0x80,0xE0, + 0x34,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x1E,0x00,0x00,0xEA,0x41,0x1F,0x8D,0xE2, + 0x03,0x00,0x91,0xE8,0x0C,0x00,0x54,0xE3,0x0B,0x00,0x00,0x1A,0x18,0x21,0x9D,0xE5, + 0x01,0x00,0x80,0xE0,0x02,0x10,0x81,0xE0,0x01,0x00,0x80,0xE0,0x1C,0x11,0x9D,0xE5, + 0x01,0x00,0x80,0xE0,0x01,0x00,0x80,0xE0,0x2C,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0, + 0x30,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x0D,0x00,0x00,0xEA,0x00,0x10,0x81,0xE0, + 0x0C,0x01,0x9D,0xE5,0x18,0x21,0x9D,0xE5,0x02,0x00,0x80,0xE0,0x01,0x00,0x80,0xE0, + 0x1C,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x20,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0, + 0x2C,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x30,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0, + 0x34,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0x9C,0x19,0x9F,0xE5,0x91,0x20,0xC0,0xE0, + 0xC0,0x10,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x80,0x19,0x9F,0xE5,0x00,0x10,0xD1,0xE5, + 0x00,0x00,0x51,0xE3,0x89,0x00,0x00,0x1A,0x3C,0x19,0x9F,0xE5,0xB6,0x10,0xD1,0xE1, + 0x40,0x00,0x11,0xE3,0x45,0x00,0x00,0x0A,0xEE,0x1F,0xA0,0xE3,0x02,0x1B,0x81,0xE2, + 0x01,0x00,0x50,0xE1,0x64,0x19,0x9F,0xA5,0x06,0x20,0xA0,0xA3,0x00,0x20,0xC1,0xA5, + 0x20,0x00,0x00,0xAA,0x71,0x1F,0xA0,0xE3,0x02,0x1B,0x81,0xE2,0x01,0x00,0x50,0xE1, + 0x48,0x29,0x9F,0xA5,0x05,0x10,0xA0,0xA3,0x00,0x10,0xC2,0xA5,0x1E,0x00,0x00,0xAA, + 0x7D,0x0E,0x50,0xE3,0x34,0x19,0x9F,0xA5,0x04,0x00,0xA0,0xA3,0x00,0x00,0xC1,0xA5, + 0x72,0x00,0x00,0xAA,0x77,0x1F,0xA0,0xE3,0x01,0x1B,0x81,0xE2,0x01,0x00,0x50,0xE1, + 0x18,0x29,0x9F,0xA5,0x03,0x10,0xA0,0xA3,0x00,0x10,0xC2,0xA5,0x1E,0x00,0x00,0xAA, + 0xFA,0x0F,0x50,0xE3,0x04,0x19,0x9F,0xA5,0x02,0x20,0xA0,0xA3,0x00,0x20,0xC1,0xA5, + 0x1E,0x00,0x00,0xAA,0x7D,0x0F,0x50,0xE3,0xF0,0x28,0x9F,0xA5,0x01,0x10,0xA0,0xA3, + 0x00,0x10,0xC2,0xA5,0x1E,0x00,0x00,0xAA,0xE0,0x18,0x9F,0xE5,0x00,0x10,0xD1,0xE5, + 0x06,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0xFA,0x0F,0x50,0xE3,0x87,0x01,0x00,0xBA, + 0x5A,0x00,0x00,0xEA,0x05,0x00,0x51,0xE3,0x04,0x00,0x00,0x1A,0xEE,0x10,0xA0,0xE3, + 0x02,0x1C,0x81,0xE2,0x01,0x00,0x50,0xE1,0x80,0x01,0x00,0xBA,0x53,0x00,0x00,0xEA, + 0x04,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0x7D,0x0F,0x50,0xE3,0x7B,0x01,0x00,0xBA, + 0x4E,0x00,0x00,0xEA,0x03,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0xFA,0x00,0x50,0xE3, + 0x76,0x01,0x00,0xBA,0x49,0x00,0x00,0xEA,0x02,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A, + 0x96,0x00,0x50,0xE3,0x71,0x01,0x00,0xBA,0x44,0x00,0x00,0xEA,0x01,0x00,0x51,0xE3, + 0x42,0x00,0x00,0x1A,0x4B,0x00,0x50,0xE3,0x6C,0x01,0x00,0xBA,0x3F,0x00,0x00,0xEA, + 0x71,0x1F,0xA0,0xE3,0x02,0x1B,0x81,0xE2,0x01,0x00,0x50,0xE1,0x4C,0x18,0x9F,0xA5, + 0x06,0x20,0xA0,0xA3,0x00,0x20,0xC1,0xA5,0x1B,0x00,0x00,0xAA,0xD6,0x10,0xA0,0xE3, + 0x06,0x1C,0x81,0xE2,0x01,0x00,0x50,0xE1,0x30,0x18,0x9F,0xA5,0x05,0x20,0xA0,0xA3, + 0x00,0x20,0xC1,0xA5,0x19,0x00,0x00,0xAA,0x6B,0x10,0xA0,0xE3,0x03,0x1C,0x81,0xE2, + 0x01,0x00,0x50,0xE1,0x14,0x28,0x9F,0xA5,0x04,0x10,0xA0,0xA3,0x00,0x10,0xC2,0xA5, + 0x19,0x00,0x00,0xAA,0x7D,0x0F,0x50,0xE3,0x00,0x08,0x9F,0xA5,0x03,0x10,0xA0,0xA3, + 0x00,0x10,0xC0,0xA5,0x25,0x00,0x00,0xAA,0x4B,0x0F,0x50,0xE3,0xEC,0x27,0x9F,0xA5, + 0x02,0x10,0xA0,0xA3,0x00,0x10,0xC2,0xA5,0x19,0x00,0x00,0xAA,0xDC,0x17,0x9F,0xE5, + 0x00,0x10,0xD1,0xE5,0x06,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0x7D,0x0F,0x50,0xE3, + 0x46,0x01,0x00,0xBA,0x19,0x00,0x00,0xEA,0x05,0x00,0x51,0xE3,0x04,0x00,0x00,0x1A, + 0x5E,0x10,0xA0,0xE3,0x01,0x1C,0x81,0xE2,0x01,0x00,0x50,0xE1,0x3F,0x01,0x00,0xBA, + 0x12,0x00,0x00,0xEA,0x04,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A,0xFA,0x00,0x50,0xE3, + 0x3A,0x01,0x00,0xBA,0x0D,0x00,0x00,0xEA,0x03,0x00,0x51,0xE3,0x02,0x00,0x00,0x1A, + 0x96,0x00,0x50,0xE3,0x35,0x01,0x00,0xBA,0x08,0x00,0x00,0xEA,0x02,0x00,0x51,0xE3, + 0x02,0x00,0x00,0x1A,0x64,0x00,0x50,0xE3,0x30,0x01,0x00,0xBA,0x03,0x00,0x00,0xEA, + 0x01,0x00,0x51,0xE3,0x01,0x00,0x00,0x1A,0x32,0x00,0x50,0xE3,0x2B,0x01,0x00,0xBA, + 0x15,0x00,0x55,0xE3,0x10,0x00,0x00,0x1A,0x01,0xCA,0xA0,0xE3,0x04,0x00,0xA0,0xE3, + 0x01,0xC0,0x4C,0xE2,0xEC,0x80,0x8D,0xE2,0x00,0x11,0x88,0xE0,0x28,0x20,0x91,0xE5, + 0x01,0x00,0x40,0xE2,0x02,0x24,0x62,0xE0,0x93,0x92,0xC2,0xE0,0xC2,0x92,0xA0,0xE1, + 0xC2,0x2F,0x49,0xE0,0x0C,0x00,0x52,0xE1,0x28,0x20,0x81,0xE5,0x00,0x08,0xA0,0xE1, + 0x28,0xC0,0x81,0xA5,0x40,0x08,0xB0,0xE1,0xF2,0xFF,0xFF,0x5A,0x00,0x00,0x57,0xE3, + 0x1F,0x00,0x00,0x0A,0x08,0x00,0x9D,0xE5,0x01,0x00,0x10,0xE3,0x04,0x00,0xA0,0xE3, + 0x0D,0x00,0x00,0x0A,0xEC,0x30,0x8D,0xE2,0x00,0x20,0xA0,0xE3,0x07,0x18,0xB0,0xE1, + 0x00,0x11,0x80,0xE0,0x01,0x21,0x83,0x17,0x01,0x11,0x83,0xE0,0x0C,0x20,0x81,0x05, + 0x01,0x00,0x40,0xE2,0x10,0x20,0x81,0x05,0x00,0x08,0xA0,0xE1,0x04,0x20,0x81,0x15, + 0x40,0x08,0xB0,0xE1,0xF4,0xFF,0xFF,0x5A,0x0D,0x00,0x00,0xEA,0xEC,0x30,0x8D,0xE2, + 0x00,0x20,0xA0,0xE3,0x07,0x18,0xB0,0xE1,0x00,0x11,0x83,0x10,0x00,0x21,0x83,0x17, + 0x14,0x20,0x81,0x15,0x02,0x00,0x00,0x1A,0x00,0x11,0x83,0xE0,0x3C,0x20,0x81,0xE5, + 0x50,0x20,0x81,0xE5,0x01,0x00,0x40,0xE2,0x00,0x08,0xA0,0xE1,0x40,0x08,0xB0,0xE1, + 0xF3,0xFF,0xFF,0x5A,0x64,0xA6,0x9F,0xE5,0x00,0xC0,0xA0,0xE3,0x0C,0x70,0xA0,0xE1, + 0x0E,0x90,0xA0,0xE3,0x00,0x00,0xA0,0xE3,0x07,0x80,0x85,0xE0,0x00,0x10,0x84,0xE0, + 0x01,0x20,0x58,0xE2,0x01,0x10,0x41,0xE2,0x0A,0x00,0x00,0x4A,0x16,0x00,0x52,0xE3, + 0x08,0x00,0x00,0xCA,0x00,0x00,0x51,0xE3,0x06,0x00,0x00,0xBA,0x0E,0x00,0x51,0xE3, + 0x04,0x00,0x00,0xCA,0x92,0x19,0x21,0xE0,0x81,0x10,0x8A,0xE0,0xF0,0x30,0xD1,0xE1, + 0x0C,0x00,0x53,0xE1,0x03,0xC0,0xA0,0xC1,0x01,0x00,0x80,0xE2,0x00,0x08,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x03,0x00,0x50,0xE3,0xEB,0xFF,0xFF,0xBA,0x01,0x00,0x87,0xE2, + 0x00,0x78,0xA0,0xE1,0x47,0x78,0xA0,0xE1,0x03,0x00,0x57,0xE3,0xE4,0xFF,0xFF,0xBA, + 0xC4,0x15,0x9F,0xE5,0x0C,0x08,0xA0,0xE1,0xB8,0x20,0xD1,0xE1,0x40,0x08,0xA0,0xE1, + 0x01,0x70,0xA0,0xE1,0x00,0x00,0x52,0xE1,0xB8,0x00,0xC1,0xC1,0xBA,0x20,0xD1,0xE1, + 0xEC,0x30,0x8D,0xE2,0x00,0x00,0x52,0xE1,0xBA,0x00,0xC1,0xB1,0x04,0x00,0xD1,0xE5, + 0x70,0x20,0x8D,0xE2,0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2,0x04,0x00,0xC1,0xE5, + 0x00,0x01,0x81,0xE0,0x01,0x0C,0x80,0xE2,0xB4,0x41,0xC0,0xE1,0x04,0x00,0xD1,0xE5, + 0x00,0x01,0x81,0xE0,0x01,0x0C,0x80,0xE2,0xB6,0x51,0xC0,0xE1,0x06,0x00,0x92,0xE8, + 0x00,0x00,0xA0,0xE3,0x02,0x00,0x51,0xE1,0x64,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1, + 0x7C,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x78,0x10,0x9D,0xE5,0xC0,0x00,0xA0,0xC3, + 0x02,0x00,0x51,0xE1,0x6C,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x84,0x10,0x9D,0xD5, + 0x02,0x00,0x51,0xD1,0x68,0x10,0x9D,0xE5,0x30,0x00,0x80,0xC3,0x02,0x00,0x51,0xE1, + 0x64,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x6C,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1, + 0x80,0x10,0x9D,0xE5,0x0C,0x00,0x80,0xC3,0x02,0x00,0x51,0xE1,0x7C,0x10,0x9D,0xD5, + 0x02,0x00,0x51,0xD1,0x84,0x10,0x9D,0xD5,0x02,0x00,0x51,0xD1,0x03,0x00,0x80,0xC3, + 0x04,0x10,0xA0,0xE3,0x00,0x20,0xA0,0xE3,0xC0,0x00,0x10,0xE3,0x01,0xC1,0x81,0x00, + 0x0C,0x21,0x83,0x07,0x30,0x00,0x10,0xE3,0x01,0xC1,0x81,0x00,0x0C,0xC1,0x83,0x00, + 0x10,0x20,0x8C,0x05,0x0C,0x00,0x10,0xE3,0x01,0x21,0x83,0x07,0x03,0x00,0x10,0xE3, + 0x01,0xC1,0x83,0x00,0x01,0x10,0x41,0xE2,0x01,0x18,0xA0,0xE1,0x50,0x20,0x8C,0x05, + 0x41,0x18,0xB0,0xE1,0xEF,0xFF,0xFF,0x5A,0xFC,0x30,0x9D,0xE5,0x00,0x30,0x8D,0xE5, + 0xEC,0x30,0x8D,0xE2,0x0F,0x00,0x93,0xE8,0x7A,0x06,0x00,0xEB,0x10,0x31,0x9D,0xE5, + 0x00,0xA0,0xA0,0xE1,0x00,0x30,0x8D,0xE5,0x01,0x3C,0x8D,0xE2,0x0F,0x00,0x93,0xE8, + 0x74,0x06,0x00,0xEB,0x24,0x31,0x9D,0xE5,0x00,0xB0,0xA0,0xE1,0x00,0x30,0x8D,0xE5, + 0x45,0x3F,0x8D,0xE2,0x0F,0x00,0x93,0xE8,0x6E,0x06,0x00,0xEB,0x38,0x31,0x9D,0xE5, + 0x00,0x90,0xA0,0xE1,0x00,0x30,0x8D,0xE5,0x4A,0x3F,0x8D,0xE2,0x0F,0x00,0x93,0xE8, + 0x68,0x06,0x00,0xEB,0x4C,0x31,0x9D,0xE5,0x30,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5, + 0x4F,0x3F,0x8D,0xE2,0x0F,0x00,0x93,0xE8,0x62,0x06,0x00,0xEB,0x2C,0x00,0x8D,0xE5, + 0x00,0x00,0x8D,0xE5,0x30,0x30,0x9D,0xE5,0x09,0x20,0xA0,0xE1,0x0B,0x10,0xA0,0xE1, + 0x0A,0x00,0xA0,0xE1,0x5B,0x06,0x00,0xEB,0x00,0x80,0xB0,0xE1,0x06,0x00,0x00,0x1A, + 0x64,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xEC,0x00,0x8D,0xE2,0x11,0xEC,0xFF,0xEB, + 0x0A,0x90,0xA0,0xE3,0x09,0x80,0xA0,0xE1,0x1C,0x91,0x8D,0xE5,0x3C,0x31,0x9D,0xE5, + 0xEC,0x00,0x9D,0xE5,0x00,0x30,0x8D,0xE5,0x00,0x11,0x9D,0xE5,0x14,0x21,0x9D,0xE5, + 0x28,0x31,0x9D,0xE5,0x4B,0x06,0x00,0xEB,0xDC,0x13,0x9F,0xE5,0x84,0x70,0x81,0xE0, + 0xBE,0x11,0xD7,0xE1,0x91,0x00,0x00,0xE0,0x28,0x00,0x8D,0xE5,0x40,0x31,0x9D,0xE5, + 0x00,0x30,0x8D,0xE5,0xF0,0x00,0x9D,0xE5,0x04,0x11,0x9D,0xE5,0x18,0x21,0x9D,0xE5, + 0x2C,0x31,0x9D,0xE5,0x3F,0x06,0x00,0xEB,0xB0,0x12,0xD7,0xE1,0x44,0x31,0x9D,0xE5, + 0x1C,0x21,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x24,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5, + 0xF4,0x00,0x9D,0xE5,0x08,0x11,0x9D,0xE5,0x30,0x31,0x9D,0xE5,0x35,0x06,0x00,0xEB, + 0xB2,0x12,0xD7,0xE1,0x48,0x31,0x9D,0xE5,0x20,0x21,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x20,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5,0xF8,0x00,0x9D,0xE5,0x0C,0x11,0x9D,0xE5, + 0x34,0x31,0x9D,0xE5,0x2B,0x06,0x00,0xEB,0xB4,0x12,0xD7,0xE1,0x4C,0x31,0x9D,0xE5, + 0x24,0x21,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x1C,0x00,0x8D,0xE5,0x00,0x30,0x8D,0xE5, + 0xFC,0x00,0x9D,0xE5,0x10,0x11,0x9D,0xE5,0x38,0x31,0x9D,0xE5,0x21,0x06,0x00,0xEB, + 0xB6,0x12,0xD7,0xE1,0x20,0x20,0x9D,0xE5,0x90,0x01,0x03,0xE0,0x00,0x30,0x8D,0xE5, + 0x28,0x00,0x9D,0xE5,0x24,0x10,0x9D,0xE5,0x1C,0x30,0x9D,0xE5,0x19,0x06,0x00,0xEB, + 0x08,0x10,0xA0,0xE1,0x1F,0xEB,0xFF,0xEB,0x0C,0x13,0x9F,0xE5,0x08,0x73,0x9F,0xE5, + 0xB0,0x12,0xD1,0xE1,0x00,0x10,0x61,0xE2,0x81,0x00,0x90,0xE0,0x04,0x10,0xD7,0xE5, + 0x00,0x00,0xA0,0x43,0x81,0x10,0x87,0xE0,0xB4,0x0F,0xC1,0xE1,0x50,0x31,0x9D,0xE5, + 0x50,0x21,0x9D,0xE5,0xB8,0x35,0xD3,0xE1,0x30,0xC0,0x9D,0xE5,0xB6,0x25,0xD2,0xE1, + 0x93,0x0C,0x0C,0xE0,0x99,0x02,0x02,0xE0,0x50,0x01,0x9D,0xE5,0x50,0x11,0x9D,0xE5, + 0x50,0x31,0x9D,0xE5,0xB2,0x05,0xD0,0xE1,0xB4,0x15,0xD1,0xE1,0xBA,0x35,0xD3,0xE1, + 0x2C,0x90,0x9D,0xE5,0x9A,0x00,0x00,0xE0,0x99,0x03,0x03,0xE0,0x9B,0x01,0x01,0xE0, + 0x00,0x30,0x8D,0xE5,0x0C,0x30,0xA0,0xE1,0xFA,0x05,0x00,0xEB,0x08,0x10,0xA0,0xE1, + 0x00,0xEB,0xFF,0xEB,0xB4,0x15,0xD7,0xE1,0x00,0x10,0x61,0xE2,0x81,0x00,0x90,0xE0, + 0x04,0x10,0xD7,0xE5,0x00,0x00,0xA0,0x43,0x81,0x10,0x87,0xE0,0x01,0x1C,0x81,0xE2, + 0xB6,0x00,0xC1,0xE1,0x04,0x00,0xD7,0xE5,0x08,0x00,0x50,0xE3,0x0C,0x00,0x00,0x2A, + 0x01,0x00,0x84,0xE2,0x00,0x48,0xA0,0xE1,0x44,0x48,0xA0,0xE1,0x0E,0x00,0x54,0xE3, + 0xF9,0xFC,0xFF,0xBA,0x14,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x04,0x00,0x00,0x1A, + 0x01,0x00,0x85,0xE2,0x00,0x58,0xA0,0xE1,0x45,0x58,0xA0,0xE1,0x16,0x00,0x55,0xE3, + 0xEB,0xFC,0xFF,0xBA,0x34,0x02,0x9F,0xE5,0x00,0x40,0x90,0xE5,0xB0,0x00,0xD4,0xE1, + 0x80,0x00,0x10,0xE3,0x40,0x00,0x00,0x0A,0x1C,0x52,0x9F,0xE5,0x04,0x00,0xD5,0xE5, + 0x00,0x00,0x50,0xE3,0x08,0x00,0x00,0x1A,0x68,0x01,0x9D,0xE5,0xB4,0x04,0xD0,0xE1, + 0x00,0x00,0x50,0xE3,0x41,0x01,0xD5,0x15,0x3C,0x10,0xD4,0x15,0x01,0x00,0x50,0x11, + 0x30,0x00,0x00,0x2A,0x01,0x00,0x80,0xE2,0x2C,0x00,0x00,0xEA,0x42,0x01,0xD5,0xE5, + 0x34,0x10,0xD4,0xE5,0x01,0x00,0x50,0xE1,0x27,0x00,0x00,0x8A,0x01,0x00,0x80,0xE2, + 0xFF,0x00,0x00,0xE2,0x42,0x01,0xC5,0xE5,0x35,0x10,0xD4,0xE5,0x05,0x20,0xA0,0xE1, + 0x00,0x00,0x51,0xE1,0x03,0x00,0x00,0x2A,0xBC,0x30,0xD2,0xE1,0x0C,0x20,0x9D,0xE5, + 0x03,0x20,0x82,0xE0,0x0C,0x20,0x8D,0xE5,0x34,0x20,0xD4,0xE5,0x02,0x00,0x50,0xE1, + 0x19,0x00,0x00,0x1A,0x01,0x00,0x50,0xE1,0x17,0x00,0x00,0x0A,0x01,0x10,0x40,0xE0, + 0x0C,0x00,0x9D,0xE5,0x57,0xEB,0xFF,0xEB,0x68,0x11,0x9D,0xE5,0x00,0x20,0xA0,0xE3, + 0xB4,0x24,0xC1,0xE1,0xB8,0x13,0xD4,0xE1,0x00,0x00,0x51,0xE1,0x0E,0x00,0x00,0x2A, + 0x10,0x10,0x9D,0xE5,0x01,0x00,0x40,0xE0,0x36,0x10,0xD4,0xE5,0x90,0x01,0x01,0xE0, + 0x7C,0x01,0x9F,0xE5,0x90,0x21,0x81,0xE0,0xA1,0x02,0xA0,0xE1,0x68,0x11,0x9D,0xE5, + 0xB4,0x04,0xC1,0xE1,0x68,0x01,0x9D,0xE5,0xB4,0x14,0xD0,0xE1,0xBA,0x03,0xD4,0xE1, + 0x00,0x00,0x51,0xE1,0x68,0x11,0x9D,0x85,0xB4,0x04,0xC1,0x81,0x00,0x00,0xA0,0xE3, + 0x41,0x01,0xC5,0xE5,0x04,0x00,0x00,0xEA,0x00,0x00,0xA0,0xE3,0x42,0x01,0xC5,0xE5, + 0x41,0x01,0xC5,0xE5,0x68,0x11,0x9D,0xE5,0xB4,0x04,0xC1,0xE1,0x18,0x51,0x9F,0xE5, + 0x00,0xC0,0xA0,0xE3,0x04,0xA0,0xD5,0xE5,0x0C,0x80,0xA0,0xE1,0x01,0x20,0xA0,0xE3, + 0x01,0x00,0x5A,0xE3,0x37,0x00,0x00,0xBA,0xA7,0x94,0xD5,0xE5,0x1C,0xB1,0x9F,0xE5, + 0x01,0xE0,0xA0,0xE3,0x82,0x00,0x85,0xE0,0xB4,0x1F,0xD0,0xE1,0xCD,0x30,0xA0,0xE3, + 0x33,0x3B,0x83,0xE2,0x01,0x0C,0x80,0xE2,0xB6,0x00,0xD0,0xE1,0x93,0x01,0x01,0xE0, + 0x93,0x00,0x00,0xE0,0xA0,0x79,0xA0,0xE1,0x00,0x80,0xA0,0xE3,0x00,0x00,0x59,0xE3, + 0xA1,0x69,0xA0,0xE1,0x08,0x00,0xA0,0xE1,0x21,0x00,0x00,0xDA,0x02,0x11,0x85,0xE0, + 0x01,0x4C,0x81,0xE2,0x80,0x11,0x85,0xE0,0x01,0x1B,0x81,0xE2,0xF8,0x3A,0xD1,0xE1, + 0x06,0x00,0x53,0xE1,0x15,0x00,0x00,0xCA,0xFC,0x3A,0xD1,0xE1,0x06,0x00,0x53,0xE1, + 0x12,0x00,0x00,0xBA,0xFA,0x3A,0xD1,0xE1,0x07,0x00,0x53,0xE1,0x0F,0x00,0x00,0xCA, + 0xFE,0x1A,0xD1,0xE1,0x07,0x00,0x51,0xE1,0x0C,0x00,0x00,0xBA,0xF6,0x11,0xD4,0xE1, + 0xF4,0x31,0xD4,0xE1,0x81,0x11,0x61,0xE0,0x81,0x10,0x83,0xE0,0x81,0x10,0x8B,0xE0, + 0xF0,0x30,0xD1,0xE1,0x0C,0x00,0x53,0xE1,0x04,0x00,0x00,0xDA,0xA0,0x10,0x9F,0xE5, + 0x03,0xC0,0xA0,0xE1,0x00,0xE0,0xC1,0xE5,0xFF,0x80,0x02,0xE2,0xA5,0x04,0xC5,0xE5, + 0x01,0x00,0x80,0xE2,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x00,0x00,0x59,0xE1, + 0xDF,0xFF,0xFF,0xCA,0x01,0x00,0x82,0xE2,0x00,0x28,0xA0,0xE1,0x42,0x28,0xA0,0xE1, + 0x02,0x00,0x5A,0xE1,0xCA,0xFF,0xFF,0xAA,0x1C,0x00,0x9F,0xE5,0xBA,0x10,0xD5,0xE1, + 0x01,0x6C,0x80,0xE2,0x01,0x4C,0x80,0xE2,0x0C,0x00,0x51,0xE1,0x06,0x60,0x86,0xE2, + 0x02,0x40,0x84,0xE2,0x27,0x00,0x00,0xCA,0x12,0x00,0x00,0xEA,0x40,0x00,0x00,0x20, + 0xF0,0x06,0x00,0x20,0xA1,0x05,0x00,0x20,0x00,0x95,0x00,0x00,0x40,0x01,0x00,0x20, + 0x40,0x04,0x00,0x20,0x1F,0x85,0xEB,0x51,0xDC,0x05,0x00,0x20,0xE0,0x05,0x00,0x20, + 0x00,0x00,0x00,0x10,0x0C,0x06,0x00,0x20,0xF6,0x06,0x00,0x20,0xA2,0x05,0x00,0x20, + 0xA3,0x05,0x00,0x20,0x93,0x05,0x00,0x20,0x94,0x05,0x00,0x20,0x39,0x8E,0xE3,0x38, + 0x8F,0x05,0x00,0x20,0x95,0x05,0x00,0x20,0x00,0x00,0x58,0xE3,0x11,0x00,0x00,0x0A, + 0x88,0x00,0x85,0xE0,0xB4,0x8F,0xD0,0xE1,0x01,0x0C,0x80,0xE2,0xB6,0x70,0xD0,0xE1, + 0x12,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xF4,0x00,0x85,0xE2,0xF1,0xEA,0xFF,0xEB, + 0x12,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0xED,0xEA,0xFF,0xEB, + 0x01,0x00,0xA0,0xE3,0x04,0x00,0xC5,0xE5,0x94,0x00,0x1F,0xE5,0xB6,0x8F,0xC0,0xE1, + 0xB6,0x70,0xC4,0xE1,0x1B,0x00,0x00,0xEA,0x05,0x10,0xD5,0xE5,0x00,0x00,0x51,0xE3, + 0x18,0x00,0x00,0x1A,0x01,0x00,0x5A,0xE3,0x16,0x00,0x00,0x9A,0x82,0x11,0xD5,0xE5, + 0x00,0x00,0x51,0xE3,0x13,0x00,0x00,0x1A,0x18,0x10,0x9D,0xE5,0x00,0x00,0x51,0xE3, + 0x10,0x00,0x00,0x0A,0x81,0x00,0x85,0xE0,0xB4,0x7F,0xD0,0xE1,0x01,0x0C,0x80,0xE2, + 0xB6,0x80,0xD0,0xE1,0x12,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xF4,0x00,0x85,0xE2, + 0xD4,0xEA,0xFF,0xEB,0x12,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1, + 0xD0,0xEA,0xFF,0xEB,0x01,0x00,0xA0,0xE3,0x04,0x00,0xC5,0xE5,0x08,0x01,0x1F,0xE5, + 0xB6,0x7F,0xC0,0xE1,0xB6,0x80,0xC4,0xE1,0xA3,0x04,0xD5,0xE5,0x05,0x30,0xA0,0xE1, + 0x00,0x00,0x50,0xE3,0x0B,0x00,0x00,0x0A,0xDC,0x00,0x1F,0xE5,0x00,0x20,0xA0,0xE3, + 0x04,0x20,0xC3,0xE5,0x38,0xC0,0x9F,0xE5,0x00,0x20,0xC0,0xE5,0xA4,0x04,0xD3,0xE5, + 0x1E,0xC0,0xDC,0xE5,0x03,0x10,0xA0,0xE1,0x0C,0x00,0x50,0xE1,0x01,0x00,0x80,0xE2, + 0xA3,0x24,0xC1,0x25,0xA4,0x04,0xC1,0xE5,0x04,0x00,0xD3,0xE5,0x14,0x10,0x9F,0xE5, + 0x05,0x00,0xC3,0xE5,0x00,0x00,0xC1,0xE5,0x5B,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x00,0x93,0x00,0x00,0x6C,0x06,0x00,0x20,0x10,0xB5,0x0F,0x48, + 0x0F,0x49,0x80,0x88,0x49,0x88,0x00,0x24,0x40,0x18,0x0E,0x49,0x09,0x78,0x00,0x29, + 0x02,0xD0,0x0D,0x49,0x49,0x89,0x02,0xE0,0x0C,0x49,0x09,0x68,0x49,0x88,0x08,0x18, + 0x0B,0x49,0xC9,0x6B,0x49,0x04,0x49,0x0C,0x81,0x42,0x00,0xD3,0x01,0x24,0xFE,0xF7, + 0xB5,0xFB,0x20,0x00,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x80,0x01,0x00,0x20, + 0x80,0x05,0x00,0x20,0xA1,0x05,0x00,0x20,0xA0,0x95,0x00,0x00,0xF0,0x06,0x00,0x20, + 0xC0,0x90,0x00,0x40,0xF7,0xB5,0x27,0x4B,0x27,0x49,0x18,0x8F,0x82,0xB0,0x1E,0x00, + 0x08,0x80,0xD8,0x8E,0x25,0x49,0x20,0x36,0x08,0x80,0xB0,0x7F,0xF1,0x7F,0x00,0x02, + 0x08,0x43,0x02,0xF0,0x03,0xF8,0x18,0x7D,0xC0,0x07,0x0A,0xD0,0x20,0x48,0x01,0x78, + 0x20,0x48,0x00,0x7D,0x00,0x29,0x02,0xD0,0x01,0xF0,0xA8,0xFF,0x01,0xE0,0x01,0xF0, + 0xCD,0xFF,0x18,0x49,0x01,0x25,0x08,0x00,0xC0,0x30,0x01,0x90,0x05,0x20,0xC0,0x01, + 0x19,0x4F,0x08,0x18,0x00,0x90,0x00,0x20,0xF8,0x62,0x01,0x98,0x80,0x68,0x38,0x62, + 0x00,0x98,0x00,0x6B,0x78,0x62,0x03,0x24,0xE0,0x07,0xC0,0x0F,0xFB,0xF7,0x3A,0xFD, + 0x64,0x1E,0xF9,0xD5,0x02,0x20,0xF8,0x62,0x30,0x7F,0x01,0x00,0xFB,0xF7,0xA8,0xFD, + 0x01,0x24,0x02,0xA8,0x07,0xC8,0xFE,0xF7,0xFF,0xFA,0x00,0x28,0x01,0xD1,0x00,0x24, + 0x25,0x00,0x64,0x1E,0xF5,0xD5,0x6D,0x1E,0xDD,0xD5,0x05,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0x93,0x00,0x00,0xA6,0x05,0x00,0x20,0xA8,0x05,0x00,0x20, + 0x99,0x05,0x00,0x20,0x00,0x05,0x00,0x20,0x80,0x90,0x00,0x40,0x78,0x47,0xC0,0x46, + 0xF0,0x4F,0x2D,0xE9,0x00,0x70,0xA0,0xE3,0x75,0xDF,0x4D,0xE2,0xC4,0x71,0x8D,0xE5, + 0xC0,0x71,0x8D,0xE5,0x34,0x70,0x8D,0xE5,0x30,0x70,0x8D,0xE5,0x2C,0x70,0x8D,0xE5, + 0x24,0x70,0x8D,0xE5,0x01,0x00,0xA0,0xE3,0x08,0x10,0x8D,0xE2,0x28,0x70,0x8D,0xE5, + 0x20,0x70,0x8D,0xE5,0x1C,0x70,0x8D,0xE5,0x18,0x70,0x8D,0xE5,0x10,0x70,0x8D,0xE5, + 0x81,0x00,0x81,0xE8,0x00,0x00,0xA0,0xE3,0xB4,0x48,0x9F,0xE5,0x00,0x10,0xA0,0xE1, + 0x04,0x00,0x8D,0xE5,0x00,0x00,0x8D,0xE5,0x07,0x60,0xA0,0xE1,0x07,0x90,0xA0,0xE1, + 0x07,0xA0,0xA0,0xE1,0x07,0xB0,0xA0,0xE1,0x30,0x20,0xA0,0xE3,0x88,0x00,0x84,0xE2, + 0x50,0xEA,0xFF,0xEB,0x30,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xB8,0x00,0x84,0xE2, + 0x4C,0xEA,0xFF,0xEB,0x00,0x80,0xA0,0xE3,0x60,0x10,0xA0,0xE3,0x56,0x0F,0x8D,0xE2, + 0xB8,0x8E,0xC4,0xE1,0x57,0xEA,0xFF,0xEB,0x60,0x10,0xA0,0xE3,0xF8,0x00,0x8D,0xE2, + 0x54,0xEA,0xFF,0xEB,0x60,0x10,0xA0,0xE3,0x98,0x00,0x8D,0xE2,0x51,0xEA,0xFF,0xEB, + 0x60,0x10,0xA0,0xE3,0x38,0x00,0x8D,0xE2,0x4E,0xEA,0xFF,0xEB,0x44,0x08,0x9F,0xE5, + 0x00,0x10,0xD0,0xE5,0x40,0x08,0x9F,0xE5,0x00,0x00,0x51,0xE3,0xD0,0x01,0x8D,0xE5, + 0x04,0x00,0x00,0x0A,0xF8,0x0A,0xD0,0xE1,0xBC,0x01,0x8D,0xE5,0xD0,0x01,0x9D,0xE5, + 0xB6,0x0A,0xD0,0xE1,0x04,0x00,0x00,0xEA,0x20,0x08,0x9F,0xE5,0x00,0x00,0x90,0xE5, + 0xF6,0x12,0xD0,0xE1,0xBC,0x11,0x8D,0xE5,0xB4,0x02,0xD0,0xE1,0xD0,0x11,0x9D,0xE5, + 0x00,0x20,0xA0,0xE3,0xB8,0x01,0x8D,0xE5,0xF4,0x07,0x9F,0xE5,0xB6,0x00,0xD0,0xE1, + 0x40,0x00,0x10,0xE3,0xB0,0xE8,0xD1,0x01,0xB0,0x18,0xD1,0x11,0x01,0x08,0xE0,0xE3, + 0x81,0xE0,0x00,0x10,0x8E,0x00,0x00,0xE0,0xE4,0x17,0x9F,0xE5,0x14,0x00,0x8D,0xE5, + 0x00,0x00,0xA0,0xE3,0x00,0x00,0xC1,0xE5,0xD8,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0xD4,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5,0xD0,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0xCC,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5,0xC8,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0xC4,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5,0xC0,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0xBC,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5,0xB8,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0xB4,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5,0xB0,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0xAC,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5,0xA8,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0xA4,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5,0xA0,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0x9C,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5,0x98,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0x94,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5,0x90,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0x8C,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5,0x88,0x17,0x9F,0xE5,0x00,0x00,0x81,0xE5, + 0x84,0x07,0x9F,0xE5,0x01,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x7C,0x07,0x9F,0xE5, + 0x00,0x10,0x80,0xE5,0x02,0x10,0xA0,0xE1,0x00,0x00,0xA0,0xE3,0x70,0x37,0x9F,0xE5, + 0x70,0xC7,0x9F,0xE5,0x82,0x30,0x83,0xE0,0xCC,0x31,0x8D,0xE5,0xB0,0x30,0xD3,0xE1, + 0x82,0xC0,0x8C,0xE0,0xB0,0xC0,0xDC,0xE1,0x03,0x3A,0xA0,0xE1,0x23,0x3A,0xA0,0xE1, + 0x0F,0xCA,0xCC,0xE3,0x0C,0x40,0x43,0xE0,0x08,0x00,0x54,0xE1,0x03,0x50,0x4C,0xE0, + 0x34,0x00,0x8D,0xC5,0x30,0x10,0x8D,0xC5,0x04,0x80,0xA0,0xC1,0xF8,0x30,0x8D,0xE2, + 0x00,0xC1,0x93,0xE7,0x00,0x00,0x54,0xE3,0x00,0x40,0xA0,0xB3,0x04,0xC0,0x8C,0xE0, + 0x00,0xC1,0x83,0xE7,0x56,0x3F,0x8D,0xE2,0x01,0xC1,0x93,0xE7,0x00,0x00,0x55,0xE3, + 0x04,0xC0,0x8C,0xE0,0x01,0xC1,0x83,0xE7,0x38,0x30,0x8D,0xE2,0x00,0xC1,0x93,0xE7, + 0x00,0x50,0xA0,0xB3,0x05,0xC0,0x8C,0xE0,0x00,0xC1,0x83,0xE7,0x98,0x30,0x8D,0xE2, + 0x01,0xC1,0x93,0xE7,0x0D,0x00,0x50,0xE3,0x05,0xC0,0x8C,0xE0,0x01,0xC1,0x83,0xE7, + 0x04,0x00,0x00,0x2A,0xC4,0x31,0x9D,0xE5,0x04,0x00,0x53,0xE1,0xC4,0x41,0x8D,0x35, + 0x05,0x00,0x57,0xE1,0x05,0x70,0xA0,0x31,0x0E,0x00,0x55,0xE1,0x01,0x30,0x86,0xC2, + 0x01,0x68,0xC3,0xC3,0x0E,0x00,0x54,0xE1,0x01,0x30,0x89,0xC2,0x01,0x98,0xC3,0xC3, + 0x14,0x30,0x9D,0xE5,0x03,0x00,0x55,0xE1,0x01,0x30,0x8A,0xC2,0x01,0xA8,0xC3,0xC3, + 0x14,0x30,0x9D,0xE5,0x03,0x00,0x54,0xE1,0x01,0x30,0x8B,0xC2,0x01,0xB8,0xC3,0xC3, + 0x10,0x30,0x9D,0xE5,0x96,0x00,0x55,0xE3,0x04,0x30,0x83,0xE0,0x10,0x30,0x8D,0xE5, + 0x0C,0x30,0x9D,0xE5,0x05,0x30,0x83,0xE0,0x0C,0x30,0x8D,0xE5,0x03,0x00,0x00,0xDA, + 0x74,0x36,0x9F,0xE5,0xB0,0xC0,0xD3,0xE1,0x01,0xC0,0x8C,0xE2,0xB0,0xC0,0xC3,0xE1, + 0xCC,0x31,0x9D,0xE5,0x01,0x00,0x80,0xE2,0xB0,0x40,0xC3,0xE1,0xBC,0x31,0x9D,0xE5, + 0xC0,0xC1,0x9D,0xE5,0x04,0x30,0x83,0xE0,0x0C,0x30,0x83,0xE0,0x0E,0x00,0x50,0xE3, + 0x01,0x20,0x82,0xE2,0xC0,0x31,0x8D,0xE5,0xAF,0xFF,0xFF,0x3A,0x01,0x10,0x81,0xE2, + 0x16,0x00,0x51,0xE3,0xAB,0xFF,0xFF,0x3A,0x10,0x16,0x9F,0xE5,0x6C,0x00,0x9D,0xE5, + 0xC0,0x25,0x9F,0xE5,0x00,0x00,0x81,0xE5,0x04,0x16,0x9F,0xE5,0xC4,0x01,0x9D,0xE5, + 0x00,0x00,0x81,0xE5,0xFC,0x15,0x9F,0xE5,0xFA,0x0F,0x50,0xE3,0x00,0x70,0x81,0xE5, + 0x0C,0x10,0x9D,0xE5,0x00,0x00,0xA0,0x83,0x00,0x10,0x82,0xE5,0xD8,0x15,0x9F,0x85, + 0x00,0x00,0x81,0x85,0xF4,0x05,0x9F,0xE5,0x00,0x00,0x90,0xE5,0x03,0x00,0x50,0xE3, + 0x15,0x00,0x00,0x2A,0xE8,0x15,0x9F,0xE5,0x50,0x00,0x57,0xE3,0x00,0x00,0x91,0x35, + 0xFA,0x00,0x50,0x33,0x03,0x00,0x00,0x2A,0x00,0x00,0x50,0xE3,0x0E,0x00,0x00,0x0A, + 0x01,0x00,0x40,0xE2,0x0B,0x00,0x00,0xEA,0x82,0x00,0x57,0xE3,0x03,0x00,0x00,0x9A, + 0x00,0x00,0x91,0xE5,0x7D,0x0F,0x50,0xE3,0x07,0x00,0x00,0x2A,0x04,0x00,0x00,0xEA, + 0x50,0x00,0x57,0xE3,0x04,0x00,0x00,0x9A,0x00,0x00,0x91,0xE5,0x4B,0x0F,0x50,0xE3, + 0x01,0x00,0x00,0x2A,0x01,0x00,0x80,0xE2,0x00,0x00,0x81,0xE5,0xA7,0xF8,0xFF,0xEB, + 0x90,0x05,0x9F,0xE5,0xD5,0x5A,0xD0,0xE1,0x00,0x00,0x55,0xE3,0x2D,0x00,0x00,0xBA, + 0x01,0x3B,0x40,0xE2,0xD5,0x04,0xD3,0xE5,0xA7,0x34,0xD3,0xE5,0x0D,0x10,0xA0,0xE3, + 0x80,0x01,0x60,0xE0,0x80,0x00,0x81,0xE0,0x00,0x00,0x53,0xE3,0x00,0x10,0xA0,0xE1, + 0x00,0x20,0xA0,0xE3,0x11,0x00,0x00,0x9A,0x44,0xE5,0x9F,0xE5,0x08,0x70,0x9D,0xE5, + 0x80,0xC0,0x8E,0xE0,0xF0,0x40,0xDC,0xE1,0x07,0x00,0x54,0xE1,0x03,0x00,0x00,0xDA, + 0x04,0x70,0x9D,0xE5,0x01,0x70,0x87,0xE2,0xFF,0x70,0x07,0xE2,0x04,0x70,0x8D,0xE5, + 0x00,0x70,0x9D,0xE5,0x01,0x20,0x82,0xE2,0x07,0x00,0x54,0xE1,0xB0,0xC0,0xDC,0xC1, + 0x0E,0x00,0x80,0xE2,0x00,0xC0,0x8D,0xC5,0x02,0x00,0x53,0xE1,0xEE,0xFF,0xFF,0x8A, + 0x04,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x00,0x00,0xA0,0x13,0x00,0x00,0x53,0x13, + 0x0C,0x00,0x00,0x9A,0x00,0xC0,0x9D,0xE5,0xE4,0x24,0x9F,0xE5,0x0C,0x48,0xA0,0xE1, + 0x44,0x48,0xA0,0xE1,0x00,0xC0,0xA0,0xE3,0x00,0x00,0x55,0xE1,0x81,0x70,0x82,0xE0, + 0xB0,0x40,0xC7,0x01,0x01,0x00,0x80,0xE2,0xB0,0xC0,0xC7,0x11,0x00,0x00,0x53,0xE1, + 0x0E,0x10,0x81,0xE2,0xF7,0xFF,0xFF,0x8A,0x50,0x04,0x9F,0xE5,0x40,0xC4,0x9F,0xE5, + 0x00,0x40,0x90,0xE5,0xB4,0x00,0xD4,0xE1,0xBE,0x00,0xCC,0xE1,0xB0,0x00,0xD4,0xE1, + 0x01,0x00,0x10,0xE3,0x09,0x00,0x00,0x0A,0xB8,0x01,0x9D,0xE5,0xC0,0x11,0x9D,0xE5, + 0x91,0x00,0x02,0xE0,0xA0,0x04,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x92,0x00,0xA1,0xE0, + 0xA1,0x06,0xA0,0xE1,0xB4,0x10,0xD4,0xE1,0x00,0x00,0x51,0xE1,0xBE,0x00,0xCC,0x81, + 0x88,0x54,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0x98,0xE0,0x8D,0xE2,0x08,0x20,0xD4,0xE5, + 0x56,0x1F,0x8D,0xE2,0x00,0x11,0x91,0xE7,0x92,0x01,0x01,0xE0,0x95,0x31,0x82,0xE0, + 0xA2,0x34,0xA0,0xE1,0xB0,0x21,0xD4,0xE1,0x02,0x00,0x53,0xE1,0x95,0x21,0x81,0x90, + 0x09,0x30,0xD4,0xE5,0xA1,0x24,0xA0,0x91,0x00,0x11,0x9E,0xE7,0x91,0x03,0x03,0xE0, + 0x95,0x73,0x81,0xE0,0xA1,0x74,0xA0,0xE1,0xB2,0x11,0xD4,0xE1,0x01,0x00,0x57,0xE1, + 0x95,0x33,0x81,0x90,0xA1,0x14,0xA0,0x91,0x01,0x10,0x42,0xE0,0xBC,0x20,0xD4,0xE1, + 0x92,0x01,0x01,0xE0,0x01,0x18,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x01,0x25,0x61,0xE0, + 0x02,0x21,0x82,0xE0,0x81,0x13,0x82,0xE0,0xC1,0x29,0xA0,0xE1,0xC1,0x1F,0x42,0xE0, + 0x80,0x20,0x8C,0xE0,0x01,0x00,0x80,0xE2,0x16,0x00,0x50,0xE3,0xB8,0x18,0xC2,0xE1, + 0xDD,0xFF,0xFF,0x3A,0x00,0x50,0xA0,0xE3,0xF8,0xE0,0x8D,0xE2,0x0A,0x10,0xD4,0xE5, + 0x05,0x01,0x9E,0xE7,0xE8,0x33,0x9F,0xE5,0x90,0x01,0x01,0xE0,0x00,0xC0,0xA0,0xE3, + 0x03,0x00,0xA0,0xE1,0x0C,0x20,0xA0,0xE1,0x91,0x03,0xA2,0xE0,0xB4,0x01,0xD4,0xE1, + 0xA2,0x25,0xA0,0xE1,0x00,0x00,0x52,0xE1,0x03,0x00,0x00,0x8A,0x03,0x00,0xA0,0xE1, + 0x0C,0x20,0xA0,0xE1,0x91,0x03,0xA2,0xE0,0xA2,0x05,0xA0,0xE1,0x0B,0x20,0xD4,0xE5, + 0x38,0x10,0x8D,0xE2,0x05,0x11,0x91,0xE7,0x0C,0x70,0xA0,0xE1,0x91,0x02,0x02,0xE0, + 0x03,0x10,0xA0,0xE1,0x92,0x13,0xA7,0xE0,0xB6,0x11,0xD4,0xE1,0xA7,0x75,0xA0,0xE1, + 0x01,0x00,0x57,0xE1,0x92,0x33,0xAC,0x90,0xAC,0x15,0xA0,0x91,0x01,0x00,0x40,0xE0, + 0xBE,0x10,0xD4,0xE1,0x91,0x00,0x00,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x00,0x15,0x60,0xE0,0x01,0x11,0x81,0xE0,0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1, + 0xC0,0x0F,0x41,0xE0,0xC8,0x12,0x9F,0xE5,0x85,0x10,0x81,0xE0,0x01,0x50,0x85,0xE2, + 0x0D,0x00,0x55,0xE3,0xB8,0x0B,0xC1,0xE1,0xD3,0xFF,0xFF,0x3A,0x0A,0x00,0xD4,0xE5, + 0x05,0x11,0x9E,0xE7,0x64,0x20,0xA0,0xE3,0x91,0x00,0x00,0xE0,0x34,0x13,0x9F,0xE5, + 0x15,0x10,0xD1,0xE5,0x92,0x01,0x01,0xE0,0xC8,0x11,0x8D,0xE5,0xB5,0xE8,0xFF,0xEB, + 0xB4,0x11,0xD4,0xE1,0x01,0x00,0x50,0xE1,0x00,0x70,0xA0,0x91,0x01,0x70,0xA0,0x81, + 0x0B,0x10,0xD4,0xE5,0x38,0x00,0x8D,0xE2,0x05,0x01,0x90,0xE7,0x91,0x00,0x00,0xE0, + 0xC8,0x11,0x9D,0xE5,0xAB,0xE8,0xFF,0xEB,0xB6,0x11,0xD4,0xE1,0x01,0x00,0x50,0xE1, + 0x01,0x00,0xA0,0x81,0xBE,0x10,0xD4,0xE1,0x00,0x00,0x47,0xE0,0x50,0x72,0x9F,0xE5, + 0x91,0x00,0x00,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x00,0x15,0x60,0xE0, + 0x01,0x11,0x81,0xE0,0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1,0xC0,0x0F,0x41,0xE0, + 0x85,0x10,0x87,0xE0,0x00,0x00,0x58,0xE3,0xB8,0x0B,0xC1,0xE1,0x0C,0x00,0x00,0xDA, + 0x34,0x00,0x9D,0xE5,0x80,0x00,0x87,0xE0,0xB8,0x1B,0xD0,0xE1,0x30,0x00,0x9D,0xE5, + 0x80,0x00,0x87,0xE0,0xB8,0x08,0xD0,0xE1,0x01,0x00,0x80,0xE0,0x00,0x00,0x48,0xE0, + 0x00,0x08,0xA0,0xE1,0x40,0x08,0xB0,0xE1,0xB8,0x0E,0xC7,0xE1,0x00,0x00,0xA0,0x43, + 0xB8,0x0E,0xC7,0x41,0x1E,0x50,0xA0,0xE3,0x01,0x5C,0x85,0xE2,0x0C,0x00,0x9D,0xE5, + 0x05,0x10,0xA0,0xE1,0x87,0xE8,0xFF,0xEB,0x00,0x40,0xA0,0xE1,0x10,0x00,0x9D,0xE5, + 0x05,0x10,0xA0,0xE1,0x83,0xE8,0xFF,0xEB,0x00,0x10,0xA0,0xE1,0xB6,0x00,0xD7,0xE1, + 0x40,0x00,0x10,0xE3,0x0E,0x00,0x00,0x0A,0x89,0x00,0x56,0xE1,0x01,0x20,0xA0,0x83, + 0x28,0x20,0x8D,0x85,0x4B,0x0F,0x54,0xE3,0x01,0x20,0xA0,0x83,0x24,0x20,0x8D,0x85, + 0x28,0x00,0x5A,0xE3,0x01,0x20,0xA0,0x83,0x20,0x20,0x8D,0x85,0x28,0x00,0x5B,0xE3, + 0x01,0x20,0xA0,0x33,0x1C,0x20,0x8D,0x35,0x14,0x00,0x56,0xE3,0x11,0x00,0x00,0x9A, + 0x0E,0x00,0x00,0xEA,0x09,0x00,0x56,0xE1,0x08,0x00,0x56,0x83,0x01,0x20,0xA0,0x83, + 0x28,0x20,0x8D,0x85,0x96,0x00,0x54,0xE3,0x01,0x20,0xA0,0x83,0x24,0x20,0x8D,0x85, + 0x14,0x00,0x5A,0xE3,0x01,0x20,0xA0,0x83,0x20,0x20,0x8D,0x85,0x14,0x00,0x5B,0xE3, + 0x01,0x20,0xA0,0x33,0x1C,0x20,0x8D,0x35,0x0A,0x00,0x56,0xE3,0x01,0x00,0x00,0x9A, + 0x01,0x20,0xA0,0xE3,0x18,0x20,0x8D,0xE5,0xF1,0x20,0xD7,0xE5,0x00,0x00,0x52,0xE3, + 0x03,0x00,0x00,0x1A,0xC0,0x21,0x9F,0xE5,0x00,0x20,0xD2,0xE5,0x01,0x00,0x52,0xE3, + 0x04,0x00,0x00,0x1A,0xF2,0x20,0xD7,0xE5,0xFA,0x00,0x52,0xE3,0x06,0x00,0x00,0x2A, + 0x01,0x20,0x82,0xE2,0x03,0x00,0x00,0xEA,0xF2,0x20,0xD7,0xE5,0x00,0x00,0x52,0xE3, + 0x01,0x00,0x00,0x0A,0x01,0x20,0x42,0xE2,0xF2,0x20,0xC7,0xE5,0x24,0x30,0x8D,0xE2, + 0x0C,0x00,0x93,0xE8,0x10,0x00,0x10,0xE3,0x02,0x30,0x83,0xE1,0x1C,0xC0,0x8D,0xE2, + 0x04,0x10,0x9C,0xE8,0x18,0x00,0x9D,0x15,0x0C,0x20,0x02,0xE0,0x00,0x00,0x50,0x13, + 0x03,0x20,0x82,0xE1,0x00,0x00,0xA0,0x03,0x01,0x00,0xA0,0x13,0x02,0x00,0x80,0xE1, + 0x00,0x00,0x50,0xE3,0xF2,0x00,0xD7,0x15,0x05,0x00,0x50,0x13,0x05,0x00,0x00,0x9A, + 0x48,0x01,0x9F,0xE5,0x81,0x10,0x81,0xE0,0x90,0x21,0x81,0xE0,0xA1,0x01,0xA0,0xE1, + 0x04,0x00,0x50,0xE1,0x02,0x00,0x00,0x3A,0x2C,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3, + 0x07,0x00,0x00,0x0A,0xEC,0x00,0x97,0xE5,0x01,0x00,0x80,0xE2,0xEC,0x00,0x87,0xE5, + 0xF0,0x00,0xD7,0xE5,0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0x12,0xF0,0x00,0xC7,0x15, + 0x0D,0x00,0x00,0xEA,0xF0,0x00,0xD7,0xE5,0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2, + 0xF0,0x00,0xC7,0xE5,0xD0,0x11,0x9D,0xE5,0xB4,0x18,0xD1,0xE1,0x01,0x00,0x50,0xE1, + 0x05,0x00,0x00,0x1A,0x00,0x00,0xA0,0xE3,0xF0,0x00,0xC7,0xE5,0xEC,0x00,0x97,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0xC2,0xEC,0x00,0x87,0xC5,0xF2,0x00,0xD7,0xE5, + 0x0A,0x00,0x50,0xE3,0x75,0xDF,0x8D,0x22,0xF0,0x4F,0xBD,0x28,0x1E,0xFF,0x2F,0x21, + 0xEC,0x00,0x97,0xE5,0x00,0x00,0x50,0xE3,0x01,0x00,0xA0,0xC3,0xEC,0x00,0x87,0xC5, + 0x00,0x00,0xA0,0xE3,0xF0,0x00,0xC7,0xE5,0x75,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20,0xA1,0x05,0x00,0x20,0x00,0x95,0x00,0x00, + 0xF0,0x06,0x00,0x20,0x6D,0x06,0x00,0x20,0x10,0x06,0x00,0x20,0x14,0x06,0x00,0x20, + 0x18,0x06,0x00,0x20,0x1C,0x06,0x00,0x20,0x20,0x06,0x00,0x20,0x24,0x06,0x00,0x20, + 0x28,0x06,0x00,0x20,0x2C,0x06,0x00,0x20,0x30,0x06,0x00,0x20,0x34,0x06,0x00,0x20, + 0x38,0x06,0x00,0x20,0x3C,0x06,0x00,0x20,0x40,0x06,0x00,0x20,0x44,0x06,0x00,0x20, + 0x48,0x06,0x00,0x20,0x4C,0x06,0x00,0x20,0x50,0x06,0x00,0x20,0x54,0x06,0x00,0x20, + 0x58,0x06,0x00,0x20,0x5C,0x06,0x00,0x20,0x60,0x06,0x00,0x20,0x64,0x06,0x00,0x20, + 0x68,0x06,0x00,0x20,0x00,0x00,0x00,0x10,0xD2,0x02,0x00,0x10,0xAE,0x05,0x00,0x20, + 0xD4,0x05,0x00,0x20,0xD0,0x05,0x00,0x20,0x40,0x04,0x00,0x20,0xAF,0xDF,0x16,0x44, + 0x91,0x73,0x9F,0x5D,0xE5,0x0E,0x50,0xEE,0x00,0x93,0x00,0x00,0x8E,0x05,0x00,0x20, + 0xCD,0xCC,0xCC,0xCC,0xF0,0xB5,0x00,0x27,0x3E,0x00,0x8B,0xB0,0xFF,0x48,0x05,0x97, + 0x00,0x68,0x80,0x79,0x03,0x90,0xFE,0x48,0x42,0x79,0x04,0x00,0xC0,0x34,0x00,0x92, + 0x82,0x79,0x80,0x30,0x01,0x7B,0xC0,0x38,0xA3,0x7A,0x00,0x7A,0xFD,0xF7,0x01,0xFF, + 0x00,0x06,0x61,0x7A,0x00,0x0E,0xFD,0xF7,0xF1,0xFE,0x21,0x00,0x20,0x39,0x0A,0x7A, + 0x00,0x06,0xC0,0x39,0x09,0x79,0x00,0x0E,0xFD,0xF7,0xEC,0xFE,0x21,0x00,0x80,0x39, + 0x8A,0x7D,0x00,0x06,0xC0,0x39,0x89,0x7C,0x00,0x0E,0xFD,0xF7,0xE3,0xFE,0x00,0x06, + 0xEC,0x4C,0x00,0x0E,0x00,0x25,0x02,0x90,0xE5,0x67,0x60,0x7D,0x00,0x28,0x02,0xD0, + 0xE9,0x48,0x40,0x89,0x07,0xE0,0xE5,0x48,0xE8,0x49,0x00,0x68,0x49,0x88,0x40,0x88, + 0x40,0x18,0x00,0x04,0x00,0x0C,0x04,0x90,0x65,0x62,0x0F,0x20,0xA0,0x72,0xE4,0x48, + 0x18,0x22,0x00,0x21,0xF9,0xF7,0xAA,0xFF,0x60,0x7C,0x00,0x28,0x06,0xD0,0xA0,0x6E, + 0x00,0x04,0x00,0x0C,0x01,0xF0,0xB8,0xFD,0x01,0xF0,0xA6,0xFD,0x01,0x20,0x20,0x63, + 0xFB,0xF7,0xF4,0xFE,0x00,0x25,0x25,0x71,0x65,0x71,0xE5,0x70,0xE5,0x64,0xC8,0x20, + 0xA5,0x64,0x60,0x64,0xE5,0x83,0x25,0x65,0x65,0x65,0xD4,0x48,0xA5,0x65,0xE5,0x65, + 0xA0,0x38,0x65,0x72,0xFF,0x21,0x0A,0x90,0x41,0x71,0xE5,0x63,0x25,0x64,0x25,0x67, + 0x65,0x67,0x25,0x66,0xCF,0x4A,0xE5,0x71,0x25,0x72,0xD0,0x88,0x08,0x21,0x88,0x43, + 0xD0,0x80,0x88,0x02,0xFA,0xF7,0x52,0xFB,0xF9,0xF7,0xCC,0xFF,0xF9,0xF7,0xB0,0xFF, + 0x01,0xF0,0x38,0xF8,0x01,0xF0,0x6E,0xFA,0x00,0xF0,0x9E,0xFF,0xC6,0x48,0x85,0x60, + 0xE0,0x7D,0x00,0x28,0x01,0xD0,0x0A,0x20,0x02,0x90,0xC2,0x4A,0x05,0x21,0x10,0x00, + 0xC0,0x30,0x09,0x90,0xC1,0x48,0xC9,0x01,0x41,0x18,0x80,0x30,0x07,0xAB,0x03,0xC3, + 0x02,0x98,0xC0,0x1C,0x06,0x90,0x15,0x20,0x40,0x01,0x15,0x18,0xEB,0xE1,0x60,0x7C, + 0x00,0x28,0x04,0xD0,0xA0,0x6E,0x00,0x04,0x00,0x0C,0x01,0xF0,0x65,0xFD,0x80,0x20, + 0xFA,0xF7,0x24,0xFB,0x03,0x20,0x01,0xF0,0xD3,0xFB,0x01,0x20,0x40,0x03,0xFA,0xF7, + 0x1D,0xFB,0xF9,0xF7,0x83,0xFF,0xE0,0x7D,0x00,0x28,0x01,0xD0,0x06,0x20,0x38,0xE0, + 0xAC,0x48,0xC0,0x88,0x01,0x06,0x04,0xD4,0x61,0x6C,0x64,0x29,0x03,0xD2,0x42,0x06, + 0x01,0xD4,0x01,0x20,0x2D,0xE0,0xFF,0x22,0x91,0x32,0x91,0x42,0x0E,0xD9,0x40,0x06, + 0x05,0xD5,0xA5,0x48,0xA6,0x49,0x80,0x30,0x01,0x62,0x27,0x21,0x18,0xE0,0xA2,0x48, + 0xFF,0x21,0x01,0x31,0x80,0x30,0x01,0x62,0x2D,0x21,0x11,0xE0,0xFF,0x22,0x2D,0x32, + 0x91,0x42,0x11,0xD9,0x40,0x06,0x05,0xD5,0x9B,0x48,0x9D,0x49,0x80,0x30,0x01,0x62, + 0x26,0x21,0x05,0xE0,0x98,0x48,0xFF,0x21,0x01,0x31,0x80,0x30,0x01,0x62,0x2C,0x21, + 0x41,0x62,0x05,0x21,0xC1,0x62,0x06,0xE0,0x40,0x06,0x01,0xD5,0x05,0x20,0x00,0xE0, + 0x03,0x20,0x01,0xF0,0x11,0xFA,0x8B,0x48,0xC0,0x6F,0x00,0x28,0x01,0xD1,0xFC,0xF7, + 0xB1,0xF8,0x90,0x48,0x04,0x99,0x80,0x88,0x8A,0x4A,0x40,0x18,0x91,0x89,0x88,0x42, + 0x10,0xD9,0x8C,0x48,0x40,0x30,0x40,0x78,0x00,0x28,0x0B,0xD1,0xD0,0x88,0xFF,0x21, + 0x19,0x31,0x08,0x42,0x06,0xD1,0x03,0x98,0x76,0x1C,0x86,0x42,0x03,0xDD,0x01,0x20, + 0x05,0x90,0x00,0xE0,0x00,0x26,0x00,0xF0,0x8F,0xFF,0x7E,0x48,0x08,0x99,0xC0,0x88, + 0x49,0x88,0x40,0x06,0x00,0x28,0x09,0x98,0xC0,0x6A,0x01,0xDA,0x49,0x00,0xFF,0xE7, + 0x88,0x42,0x02,0xDB,0x73,0x49,0x01,0x20,0x48,0x70,0x05,0x98,0x00,0x28,0x03,0xD0, + 0xF9,0xF7,0x06,0xFF,0x00,0x20,0x05,0x90,0xFC,0xF7,0x42,0xF8,0xFC,0xF7,0x50,0xF8, + 0x6C,0x48,0x00,0x24,0x44,0x84,0xFD,0xF7,0x09,0xFA,0x00,0x28,0x69,0x48,0x06,0xD0, + 0x44,0x62,0xE8,0x89,0xC8,0x28,0x34,0xD2,0x40,0x1C,0xE8,0x81,0x31,0xE0,0x41,0x6A, + 0x49,0x1C,0x41,0x62,0x41,0x6A,0x01,0x29,0x02,0xD1,0x44,0x72,0xC4,0x63,0x04,0x64, + 0x41,0x6A,0x02,0x29,0x04,0xD9,0x0A,0x9A,0xFF,0x21,0x51,0x71,0xC4,0x71,0x04,0x72, + 0x41,0x6A,0x01,0x29,0x02,0xD1,0x64,0x49,0x8C,0x72,0x84,0x64,0x59,0x48,0x40,0x6A, + 0x05,0x28,0x02,0xD9,0xFB,0xF7,0xF2,0xFD,0xEC,0x81,0x56,0x48,0x42,0x6A,0x02,0x99, + 0x49,0x1C,0x8A,0x42,0x0D,0xD1,0xC4,0x70,0xC4,0x64,0xC4,0x83,0x04,0x65,0x44,0x65, + 0x84,0x65,0xC8,0x21,0xC4,0x65,0x41,0x64,0x04,0x71,0x44,0x71,0x04,0x67,0x44,0x67, + 0x04,0x66,0x4C,0x48,0x55,0x4A,0x01,0x8C,0x91,0x42,0x01,0xD2,0x49,0x1C,0x01,0x84, + 0x50,0x49,0x60,0x39,0x49,0x7C,0x00,0x29,0x81,0x79,0x03,0xD0,0xFA,0x29,0x05,0xD2, + 0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xD0,0x49,0x1E,0x81,0x71,0x81,0x78,0x00,0x29, + 0xC1,0x8B,0x03,0xD0,0x64,0x29,0x05,0xD2,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xD0, + 0x49,0x1E,0xC1,0x83,0x3F,0x49,0xC9,0x88,0x09,0x07,0x0A,0xD5,0x81,0x6F,0x49,0x1C, + 0x32,0x29,0x81,0x67,0x06,0xD9,0x3B,0x49,0x08,0x22,0xC8,0x88,0x90,0x43,0xC8,0x80, + 0xEF,0xE0,0x84,0x67,0x04,0x00,0x40,0x78,0x00,0x28,0x10,0xD0,0xFC,0xF7,0x46,0xF8, + 0xFB,0xF7,0xBE,0xFF,0x01,0x20,0x80,0x03,0xFA,0xF7,0x20,0xFA,0xFB,0xF7,0xD0,0xFF, + 0xFC,0xF7,0x3C,0xF8,0xF9,0xF7,0x62,0xFF,0xFB,0xF7,0xAA,0xFD,0x2D,0xE0,0x34,0x48, + 0x41,0x68,0x09,0x07,0x0C,0xD5,0xC1,0x68,0x00,0x29,0x09,0xD0,0xC0,0x68,0x07,0x28, + 0x03,0xD1,0x01,0x21,0x49,0x07,0xC8,0x63,0x09,0xE0,0x00,0xF0,0xB1,0xFA,0x06,0xE0, + 0x01,0xF0,0x86,0xF9,0xA0,0x7D,0x80,0x28,0x01,0xD1,0xFB,0xF7,0x91,0xFE,0xFC,0xF7, + 0x1D,0xF8,0xE0,0x6F,0x00,0x28,0x01,0xD0,0x40,0x1E,0xE0,0x67,0xFB,0xF7,0x90,0xFF, + 0x01,0x20,0x80,0x03,0xFA,0xF7,0xF2,0xF9,0xFB,0xF7,0xA2,0xFF,0x00,0xF0,0x7A,0xF9, + 0x07,0x00,0xFC,0xF7,0x0B,0xF8,0xF9,0xF7,0x31,0xFF,0x60,0x78,0x00,0x28,0x40,0xD0, + 0xFB,0xF7,0xC8,0xFF,0x00,0x22,0x01,0x21,0x10,0x00,0x13,0x00,0xFB,0xF7,0x96,0xFD, + 0xFB,0xF7,0xB8,0xFF,0x0B,0x49,0x00,0x20,0x48,0x70,0x08,0x84,0x88,0x71,0xC8,0x70, + 0xC8,0x83,0x08,0x65,0x48,0x65,0x88,0x65,0xC8,0x65,0x08,0x67,0x48,0x67,0xC8,0x22, + 0x08,0x66,0x4A,0x64,0xC8,0x64,0x07,0x4A,0x48,0x72,0x1B,0xE0,0xF0,0x06,0x00,0x20, + 0x60,0x94,0x00,0x00,0x8C,0x05,0x00,0x20,0xA0,0x95,0x00,0x00,0x80,0x05,0x00,0x20, + 0x50,0x0A,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x90,0x00,0x40,0x00,0x93,0x00,0x00, + 0x01,0x02,0x00,0x00,0x80,0x01,0x00,0x20,0x00,0x03,0x00,0x20,0x10,0x27,0x00,0x00, + 0x00,0x40,0x00,0x30,0xD1,0x88,0x08,0x23,0x99,0x43,0xD1,0x80,0x09,0x99,0xC8,0x62, + 0x67,0xE0,0x07,0x98,0x00,0x7B,0x00,0x28,0x04,0xD0,0x60,0x7D,0x00,0x28,0x01,0xD1, + 0x00,0xF0,0xB4,0xF8,0x01,0x20,0x40,0x07,0xC0,0x6B,0x0B,0x28,0x59,0xD1,0x03,0x20, + 0x40,0x03,0xFA,0xF7,0x8B,0xF9,0x03,0x20,0x01,0xF0,0x1C,0xFA,0x60,0x66,0x03,0x20, + 0x01,0xF0,0x4E,0xFA,0x80,0x20,0xFA,0xF7,0x81,0xF9,0x00,0x2F,0x0C,0xD0,0x0A,0x20, + 0x78,0x43,0x61,0x6E,0x08,0x1A,0x60,0x66,0xFF,0x20,0x41,0x30,0x78,0x43,0x61,0x6E, + 0x40,0x18,0xFF,0x38,0x7D,0x38,0x60,0x66,0x26,0x48,0x00,0x78,0xA1,0x7B,0x08,0x43, + 0x31,0xD1,0xA0,0x6B,0x00,0x28,0x2E,0xD0,0x23,0x48,0xC0,0x88,0x40,0x06,0x60,0x6E, + 0x7D,0x21,0xC9,0x00,0x0C,0x1A,0xFF,0x20,0x91,0x30,0x84,0x42,0x23,0xDD,0xFF,0x20, + 0x01,0x30,0xFA,0xF7,0x63,0xF9,0x02,0x20,0x01,0xF0,0x22,0xFA,0x0A,0x21,0x20,0x00, + 0xF9,0xF7,0x30,0xFC,0x41,0x11,0x02,0x20,0x01,0xF0,0x02,0xFA,0x04,0x20,0xFA,0xF7, + 0x8D,0xF9,0x16,0x48,0x81,0x68,0x82,0x15,0x11,0x43,0x81,0x60,0x14,0x49,0x01,0x20, + 0x08,0x61,0xFF,0x20,0xFA,0xF7,0x82,0xF9,0x02,0x20,0x01,0xF0,0x09,0xFA,0xFF,0x20, + 0x01,0x30,0xFA,0xF7,0x3B,0xF9,0x0F,0x4C,0x60,0x6A,0x06,0x99,0x88,0x42,0x00,0xD2, + 0x0D,0xE6,0x0D,0x48,0x0D,0x49,0x00,0x68,0x40,0x30,0x40,0x7D,0x48,0x76,0x09,0x48, + 0x40,0x7C,0x00,0x28,0x01,0xD0,0x01,0xF0,0x67,0xFB,0x0B,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xF5,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0x00,0x40,0x00,0x40, + 0x40,0x00,0x00,0x40,0x8C,0x05,0x00,0x20,0xF0,0x06,0x00,0x20,0xC0,0x04,0x00,0x20, + 0x01,0x20,0x80,0x07,0x01,0x6B,0x81,0x22,0xD2,0x01,0x11,0x43,0x01,0x63,0x70,0x47, + 0x00,0x20,0x01,0x21,0x89,0x07,0x48,0x60,0x70,0x47,0x01,0x22,0x92,0x07,0x91,0x68, + 0x01,0x43,0x91,0x60,0x70,0x47,0x00,0x00,0x01,0x20,0x80,0x07,0x01,0x6B,0x03,0x4A, + 0x89,0x09,0x52,0x7B,0x89,0x01,0x11,0x43,0x01,0x63,0x70,0x47,0x00,0x93,0x00,0x00, + 0x10,0xB5,0xF9,0xF7,0x6D,0xFD,0x03,0x20,0x40,0x03,0xFA,0xF7,0xEF,0xF8,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x03,0x20,0x10,0xB5,0x40,0x03,0xFA,0xF7,0xEF,0xF8,0xF9,0xF7, + 0x69,0xFD,0xFB,0xF7,0x95,0xFE,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xB5,0x00,0xF0, + 0x93,0xFC,0x05,0x49,0x80,0x22,0xC9,0x88,0x11,0x40,0x81,0x42,0x01,0xD0,0xFA,0xF7, + 0x0B,0xF8,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0x78,0x47,0xC0,0x46, + 0xF0,0x0F,0x2D,0xE9,0xA8,0x60,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0xBA,0x00,0xC6,0xE1, + 0xA0,0x00,0x9F,0xE5,0xA0,0xA0,0x9F,0xE5,0x14,0x80,0xD0,0xE5,0x9C,0xB0,0x9F,0xE5, + 0x4D,0x2F,0xA0,0xE3,0x15,0x10,0xA0,0xE3,0x01,0x90,0xA0,0xE3,0x0D,0x00,0xA0,0xE3, + 0x81,0x70,0x86,0xE0,0x01,0x20,0x42,0xE2,0x80,0x40,0x86,0xE0,0xF8,0x4B,0xD4,0xE1, + 0xF8,0x58,0xD7,0xE1,0x82,0x30,0x8B,0xE0,0xF0,0xC0,0xD3,0xE1,0x05,0x40,0x84,0xE0, + 0x02,0x00,0x18,0xE3,0x04,0xC0,0x4C,0xE0,0x04,0x00,0x00,0x0A,0x0D,0x00,0x50,0xE3, + 0x07,0x00,0x00,0x0A,0xC8,0x00,0x5C,0xE3,0x05,0x00,0x00,0xBA,0x03,0x00,0x00,0xEA, + 0x15,0x00,0x51,0xE3,0x02,0x00,0x00,0x0A,0xC8,0x00,0x5C,0xE3,0x00,0x00,0x00,0xBA, + 0x00,0x90,0xCA,0xE5,0x00,0x00,0x5C,0xE3,0x00,0xC0,0xA0,0xB3,0xB0,0xC0,0xC3,0xE1, + 0xBA,0x30,0xD6,0xE1,0x0C,0x00,0x53,0xE1,0xBA,0xC0,0xC6,0xB1,0x01,0x00,0x50,0xE2, + 0xE3,0xFF,0xFF,0x5A,0x01,0x10,0x51,0xE2,0xDF,0xFF,0xFF,0x5A,0xF0,0x0F,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20,0x00,0x93,0x00,0x00,0x6D,0x06,0x00,0x20, + 0x00,0x00,0x00,0x10,0xF8,0xB5,0x84,0x4F,0x00,0x26,0x00,0x96,0xF8,0x68,0x07,0x28, + 0x03,0xD0,0xFC,0x03,0x25,0x68,0x00,0x2D,0x03,0xD1,0x00,0x20,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0xFF,0x20,0x01,0x30,0xFA,0xF7,0x61,0xF8,0x02,0x20,0x01,0xF0,0x20,0xF9, + 0x60,0x68,0x03,0x21,0x89,0x02,0x08,0x43,0x60,0x60,0x60,0x68,0x00,0x02,0x00,0x0A, + 0x60,0x60,0x76,0x48,0xA9,0x00,0xFD,0xF7,0xAB,0xFB,0x61,0x68,0x00,0x06,0x01,0x43, + 0x61,0x60,0x00,0xF0,0xF5,0xF8,0x05,0x2D,0x51,0xD8,0x71,0x4E,0xB0,0x7C,0x00,0x28, + 0x51,0xD1,0x01,0x20,0x04,0xE0,0x81,0x00,0x09,0x19,0x09,0x68,0xF9,0x61,0x40,0x1C, + 0xA8,0x42,0xF8,0xD9,0x6B,0x48,0x38,0x60,0x21,0x20,0x80,0x02,0x38,0x61,0x03,0x20, + 0xFC,0xF7,0x80,0xFF,0x68,0x48,0x0A,0x21,0x00,0x6B,0xF9,0xF7,0x33,0xFC,0x41,0x09, + 0x02,0x20,0x01,0xF0,0xD5,0xF8,0x65,0x4C,0xE0,0x68,0x40,0x08,0x40,0x00,0xE0,0x60, + 0x02,0x20,0x01,0xF0,0xD5,0xF8,0x04,0x20,0xFA,0xF7,0x58,0xF8,0x60,0x48,0x01,0x25, + 0x05,0x61,0x03,0x20,0x00,0x07,0xC1,0x68,0x08,0x22,0x11,0x43,0xC1,0x60,0x02,0x20, + 0x01,0xF0,0xA0,0xF8,0x00,0x90,0x78,0x68,0x78,0x60,0x78,0x69,0x78,0x61,0xFD,0xF7, + 0x4D,0xF9,0x02,0x20,0x01,0xF0,0xCC,0xF8,0x03,0x20,0xFC,0xF7,0x43,0xFF,0xE0,0x68, + 0x28,0x43,0xE0,0x60,0x53,0x48,0x00,0x78,0x00,0x28,0x07,0xD0,0x70,0x7C,0x00,0x28, + 0xFB,0xD0,0xB0,0x6E,0x00,0x04,0x00,0x0C,0x01,0xF0,0x36,0xFA,0x86,0xE0,0x48,0x48, + 0x80,0x7C,0x00,0x28,0x03,0xD0,0x6D,0x1C,0xFC,0xF7,0x9E,0xFD,0x06,0x00,0x43,0x48, + 0x00,0x68,0xF8,0x61,0x44,0x48,0x02,0x24,0x00,0x6B,0x0A,0x21,0xF9,0xF7,0xEA,0xFB, + 0x01,0x00,0x02,0x20,0x01,0xF0,0x8C,0xF8,0x02,0x20,0x01,0xF0,0x91,0xF8,0x3F,0x48, + 0xC1,0x68,0x49,0x08,0x49,0x00,0xC1,0x60,0x39,0x48,0x21,0x07,0x80,0x7C,0x1D,0xE0, + 0x7A,0x69,0x52,0x06,0x0A,0xD4,0x00,0x28,0x01,0xD0,0xAC,0x42,0x04,0xD2,0xA2,0x00, + 0x52,0x18,0x12,0x68,0xFA,0x61,0x00,0xE0,0xFE,0x61,0x64,0x1C,0x35,0x4A,0x12,0x78, + 0x00,0x2A,0x0B,0xD0,0xFC,0xF7,0x74,0xFE,0x2D,0x48,0x41,0x7C,0x00,0x29,0x07,0xD0, + 0x80,0x6E,0x00,0x04,0x00,0x0C,0x01,0xF0,0xF7,0xF9,0x01,0xE0,0xAC,0x42,0xDF,0xD9, + 0x02,0x20,0x01,0xF0,0x75,0xF8,0x2B,0x4D,0x28,0x78,0x00,0x28,0x37,0xD1,0xFC,0xF7, + 0xC7,0xFD,0x00,0x28,0x33,0xD0,0x24,0x48,0x0A,0x21,0x00,0x6B,0xF9,0xF7,0xAA,0xFB, + 0x01,0x00,0x02,0x20,0x01,0xF0,0x4C,0xF8,0x02,0x20,0x01,0xF0,0x51,0xF8,0x1C,0x4C, + 0x0C,0xE0,0x28,0x78,0x00,0x28,0x09,0xD0,0xFC,0xF7,0x4A,0xFE,0x60,0x7C,0x00,0x28, + 0x04,0xD0,0xA0,0x6E,0x00,0x04,0x00,0x0C,0x01,0xF0,0xCE,0xF9,0xFC,0xF7,0xA8,0xFD, + 0x00,0x28,0xEE,0xD1,0x78,0x68,0x78,0x60,0x0B,0xE0,0x28,0x78,0x00,0x28,0x08,0xD0, + 0x60,0x7C,0x00,0x28,0x08,0xD0,0xA0,0x6E,0x00,0x04,0x00,0x0C,0x01,0xF0,0xBC,0xF9, + 0x02,0xE0,0x78,0x68,0xC0,0x03,0xF0,0xD5,0x02,0x20,0x01,0xF0,0x39,0xF8,0x00,0xF0, + 0x1F,0xF8,0x0A,0x49,0xC8,0x68,0x01,0x22,0x10,0x43,0xC8,0x60,0xFF,0x20,0x01,0x30, + 0xF9,0xF7,0x64,0xFF,0x00,0x98,0x01,0xE7,0x00,0x40,0x00,0x30,0x04,0x00,0x00,0x20, + 0x8C,0x05,0x00,0x20,0xD0,0x10,0x05,0x00,0x00,0x93,0x00,0x00,0x00,0x20,0x00,0x40, + 0x40,0x00,0x00,0x40,0xF5,0x06,0x00,0x20,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x05,0x48,0x01,0x21,0x00,0xB5,0xC9,0x02,0x01,0x62,0x00,0x21,0x01,0x62,0xFD,0xF7, + 0x8D,0xF8,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x40,0x18,0x70,0x47,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x40,0x18,0x80,0x18,0x70,0x47,0x00,0x00,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x10,0xB4,0x40,0x18,0x01,0x9C,0x80,0x18,0xC0,0x18,0x00,0x19,0x10,0xBC,0x70,0x47, + 0xF8,0xB5,0x00,0x21,0x01,0x23,0x5B,0x07,0x18,0x68,0x13,0x4A,0x90,0x75,0x90,0x7D, + 0x01,0x28,0x01,0xD1,0x01,0x21,0x0D,0xE0,0x01,0x28,0x00,0xD9,0x02,0x21,0x00,0x28, + 0x08,0xD1,0x0D,0x48,0x20,0x22,0x00,0x21,0x18,0x30,0xF9,0xF7,0x3F,0xFB,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x20,0x05,0x25,0x08,0x4C,0x2D,0x02,0x08,0xE0,0x46,0x18, + 0xB6,0x00,0xF6,0x18,0x36,0x68,0x87,0x00,0x3F,0x19,0x7F,0x19,0x40,0x1C,0xBE,0x61, + 0x96,0x7D,0x86,0x42,0xF3,0xD8,0xEA,0xE7,0x40,0x05,0x00,0x20,0x40,0x00,0x00,0x20, + 0x70,0xB5,0x1F,0x49,0x1D,0x4C,0x0D,0x00,0x20,0x78,0xA9,0x22,0xFF,0x35,0x92,0x00, + 0xDF,0x35,0x8E,0x18,0x00,0x28,0x0E,0xD0,0x5A,0x22,0x21,0x1D,0x28,0x00,0xF9,0xF7, + 0x45,0xFB,0x18,0x49,0x09,0x22,0x30,0x00,0xF9,0xF7,0x40,0xFB,0x20,0x78,0x60,0x70, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x09,0x22,0x00,0x21,0x30,0x00,0xF9,0xF7,0x06,0xFB, + 0x5A,0x22,0x00,0x21,0x28,0x00,0xF9,0xF7,0x01,0xFB,0x0E,0x48,0x5A,0x22,0x00,0x21, + 0x63,0x38,0xF9,0xF7,0xFB,0xFA,0x0B,0x48,0x09,0x22,0x00,0x21,0x09,0x38,0xF9,0xF7, + 0xF5,0xFA,0x00,0x21,0x06,0x48,0x61,0x70,0xA1,0x70,0xC2,0x88,0x23,0x23,0x9A,0x43, + 0xC2,0x80,0x05,0x48,0x81,0x70,0xC1,0x70,0xDA,0xE7,0x00,0x00,0xC0,0x01,0x00,0x20, + 0x40,0x00,0x00,0x20,0xDB,0x02,0x00,0x20,0xE0,0x04,0x00,0x20,0xF3,0xB5,0x90,0x48, + 0x91,0xB0,0x40,0x7E,0x02,0x90,0x8F,0x48,0x00,0x78,0x00,0x28,0x8E,0x48,0x18,0xD0, + 0x0B,0x21,0x89,0x01,0x40,0x18,0x01,0x8A,0x8C,0x4A,0x1A,0x26,0x07,0x91,0x41,0x8A, + 0x1C,0x27,0x06,0x91,0x81,0x8A,0x05,0x91,0x1E,0x21,0x41,0x5E,0x04,0x91,0x00,0x21, + 0x51,0x5E,0x03,0x91,0x16,0x21,0x18,0x22,0x86,0x5F,0xC7,0x5F,0x41,0x5E,0x82,0x5E, + 0x16,0xE0,0x60,0x30,0xC1,0x8A,0x04,0x22,0x00,0x26,0x07,0x91,0x01,0x8B,0x02,0x27, + 0x06,0x91,0x41,0x8B,0x05,0x91,0x7A,0x49,0x20,0x39,0x8A,0x5E,0x04,0x92,0x06,0x22, + 0x8A,0x5E,0x03,0x92,0x8E,0x5F,0xCF,0x5F,0x1C,0x21,0x1E,0x22,0x41,0x5E,0x82,0x5E, + 0x11,0x98,0x75,0x4C,0x00,0x68,0x41,0x18,0x11,0x98,0x01,0x60,0x12,0x98,0x00,0x68, + 0x81,0x18,0x12,0x98,0x01,0x60,0x60,0x8C,0x00,0x21,0x40,0x1E,0x02,0x04,0x12,0x0C, + 0x68,0x46,0x06,0xC0,0x20,0x8C,0x0A,0x00,0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8, + 0x1B,0x0C,0x01,0xF0,0xBC,0xF8,0x20,0x8C,0x64,0x21,0x0A,0x90,0x60,0x8C,0x09,0x90, + 0x0A,0x98,0x44,0x08,0x09,0x98,0x45,0x08,0x06,0x98,0x64,0x38,0x00,0x28,0x01,0xDC, + 0x06,0x98,0x08,0x1A,0x0F,0x90,0x05,0x98,0x64,0x38,0x00,0x28,0x01,0xDC,0x05,0x98, + 0x08,0x1A,0x0E,0x90,0x16,0x20,0x08,0x90,0x5D,0x48,0x0E,0x21,0x80,0x79,0xC2,0x07, + 0x05,0xD0,0x80,0x07,0x01,0xD5,0x0D,0x21,0x01,0xE0,0x15,0x20,0x08,0x90,0x20,0x00, + 0xF9,0xF7,0x10,0xF9,0x0A,0x99,0x08,0x1A,0x40,0x1E,0x0C,0x90,0x08,0x99,0x28,0x00, + 0xF9,0xF7,0x08,0xF9,0x09,0x99,0x08,0x1A,0x40,0x1E,0x31,0x1E,0x0B,0x90,0x00,0xDD, + 0xA1,0x1B,0x00,0x2F,0x0D,0x97,0x01,0xDD,0xE8,0x1B,0x0D,0x90,0x11,0x98,0x00,0x68, + 0xA0,0x42,0x10,0x90,0x01,0xDB,0x00,0x1B,0x01,0xE0,0x00,0x1B,0x40,0x1C,0x00,0x28, + 0x00,0xDC,0x40,0x42,0x64,0x22,0x06,0x00,0x56,0x43,0x37,0x00,0x88,0x42,0x0D,0xDD, + 0x42,0x1A,0x0F,0x98,0x50,0x43,0x86,0x19,0x10,0x00,0x50,0x43,0x0F,0x9A,0x50,0x43, + 0x0C,0x9A,0x12,0x1B,0x51,0x1A,0xF9,0xF7,0xDD,0xF8,0xC7,0x19,0x04,0x98,0x00,0x28, + 0x01,0xD1,0x30,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x38,0x00,0x01,0xE0,0x70,0x00, + 0xC0,0x1B,0x64,0x21,0xF9,0xF7,0xCE,0xF8,0x07,0x99,0xC9,0x07,0x0A,0xD0,0x10,0x99, + 0xA1,0x42,0x03,0xDB,0x21,0x18,0x11,0x98,0x01,0x60,0x03,0xE0,0x11,0x99,0x20,0x1A, + 0x40,0x1E,0x08,0x60,0x12,0x98,0x07,0x68,0xAF,0x42,0x01,0xDB,0x78,0x1B,0x01,0xE0, + 0x78,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x21,0x04,0x00,0x4C,0x43, + 0x0D,0x99,0x26,0x00,0x88,0x42,0x0E,0xDD,0x41,0x1A,0x0E,0x98,0x0D,0x9A,0x48,0x43, + 0x04,0x19,0x08,0x00,0x48,0x43,0x0E,0x99,0x48,0x43,0x0B,0x99,0x49,0x1B,0x89,0x1A, + 0xF9,0xF7,0xA0,0xF8,0x86,0x19,0x03,0x98,0x00,0x28,0x01,0xD1,0x20,0x00,0x05,0xE0, + 0x01,0x28,0x01,0xD1,0x30,0x00,0x01,0xE0,0x60,0x00,0x80,0x1B,0x64,0x21,0xF9,0xF7, + 0x91,0xF8,0x07,0x99,0x89,0x07,0x09,0xD5,0xAF,0x42,0x03,0xDB,0x29,0x18,0x12,0x98, + 0x01,0x60,0x03,0xE0,0x12,0x99,0x28,0x1A,0x40,0x1E,0x08,0x60,0x0E,0x48,0x02,0x99, + 0x42,0x8C,0x6B,0x46,0x51,0x1A,0x49,0x1E,0x0A,0x04,0x02,0x99,0x12,0x0C,0x06,0xC3, + 0x01,0x8C,0x02,0x98,0x02,0x9A,0x08,0x1A,0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8, + 0x1B,0x0C,0x00,0xF0,0xF4,0xFF,0x13,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xA0,0x93,0x00,0x00,0xA1,0x05,0x00,0x20,0x00,0x93,0x00,0x00,0xE0,0x95,0x00,0x00, + 0xE0,0x04,0x00,0x20,0xF3,0xB5,0x23,0x4E,0x05,0x68,0x00,0x22,0x81,0xB0,0x86,0x46, + 0x20,0x4B,0x00,0x21,0x2A,0x3B,0x50,0x00,0x1F,0x5A,0x84,0x46,0xBD,0x42,0x2F,0xD9, + 0x1C,0x4B,0x64,0x46,0x0E,0x3B,0x1B,0x5B,0x9D,0x42,0x29,0xD2,0x02,0x98,0x4C,0x00, + 0x03,0x68,0x30,0x5B,0x83,0x42,0x23,0xD9,0x16,0x48,0x2C,0x30,0x00,0x5B,0x83,0x42, + 0x1E,0xD2,0x50,0x00,0x13,0x4A,0x1C,0x3A,0x10,0x5A,0x42,0x00,0x80,0x18,0x40,0x19, + 0x82,0x08,0x70,0x46,0x02,0x60,0x48,0x00,0x0E,0x49,0x16,0x31,0x08,0x5A,0x41,0x00, + 0x02,0x98,0x00,0x68,0x08,0x18,0x03,0x21,0xF9,0xF7,0x5C,0xF9,0x09,0x49,0x42,0x31, + 0x09,0x5F,0x41,0x18,0x02,0x98,0x01,0x60,0x01,0x20,0xFE,0xBC,0x08,0xBC,0x18,0x47, + 0x49,0x1C,0x0B,0x29,0xCA,0xD3,0x52,0x1C,0x07,0x2A,0xC1,0xD3,0x00,0x20,0xC0,0x43, + 0xF3,0xE7,0x00,0x00,0xEE,0x85,0x00,0x00,0xFE,0xB5,0x74,0x4D,0x72,0x48,0x00,0x26, + 0x29,0x00,0xFF,0x31,0x00,0x96,0x42,0x7B,0x81,0x31,0x08,0x78,0x33,0x00,0x00,0x2A, + 0x33,0xD1,0x00,0x28,0x31,0xD0,0x01,0x24,0x0A,0x20,0x60,0x43,0x47,0x19,0x38,0x00, + 0xFF,0x30,0x8B,0x30,0xFC,0xF7,0x98,0xFD,0x00,0x28,0x22,0xD0,0x68,0x48,0x00,0x78, + 0x00,0x28,0x04,0xD0,0x00,0x98,0x40,0x1C,0x02,0x28,0x1D,0xD8,0x05,0xE0,0x65,0x48, + 0x81,0x7B,0x00,0x98,0x40,0x1C,0x81,0x42,0x16,0xD3,0x00,0x98,0xA9,0x19,0x40,0x1C, + 0x05,0x22,0x00,0x90,0xFF,0x20,0x12,0x02,0x85,0x30,0x89,0x18,0xC0,0x5D,0x3A,0x00, + 0xFF,0x32,0x48,0x73,0x76,0x1C,0x85,0x32,0x03,0x20,0x01,0x23,0x69,0x46,0x00,0xF0, + 0x55,0xFA,0x64,0x1C,0x09,0x2C,0xCF,0xDB,0xA0,0xE0,0x49,0x78,0x00,0x29,0x01,0xD1, + 0x00,0x28,0x7E,0xD0,0x0B,0x20,0x80,0x01,0x00,0x24,0x2E,0x18,0x05,0x27,0x3F,0x02, + 0x28,0x19,0xC0,0x19,0x40,0x7B,0x00,0x28,0x3F,0xD0,0x05,0x21,0x28,0x18,0xC9,0x01, + 0x41,0x18,0xC9,0x7E,0x00,0x29,0x02,0xD0,0xB2,0x7A,0x00,0x2A,0x14,0xD0,0x15,0x21, + 0x49,0x01,0x40,0x18,0x00,0x99,0x00,0x79,0x49,0x1C,0x00,0x91,0x0A,0x21,0x48,0x43, + 0x42,0x19,0xFF,0x32,0xDF,0x32,0x02,0x20,0x03,0x23,0x69,0x46,0x00,0xF0,0x26,0xFA, + 0x20,0x00,0x14,0x2C,0x1E,0xD0,0x1A,0xE0,0x0A,0x20,0x41,0x43,0x48,0x19,0x02,0x90, + 0xFF,0x30,0x8B,0x30,0xFC,0xF7,0x38,0xFD,0x00,0x28,0x13,0xD0,0x00,0x98,0x02,0x9A, + 0x40,0x1C,0xFF,0x32,0x00,0x90,0x85,0x32,0x03,0x20,0x02,0x23,0x69,0x46,0x00,0xF0, + 0x0D,0xFA,0x07,0xE0,0x29,0x18,0xC9,0x19,0x8A,0x7B,0x40,0x1C,0x4A,0x73,0x08,0x28, + 0xF8,0xDB,0x64,0x1E,0x64,0x1C,0x08,0x2C,0xBA,0xDB,0x01,0x24,0x2B,0x49,0x05,0x22, + 0x08,0x19,0xD2,0x01,0x80,0x18,0xC0,0x7E,0x00,0x22,0x01,0x92,0x00,0x28,0x3E,0xD0, + 0xB2,0x7A,0x00,0x2A,0x3B,0xD1,0x0A,0x22,0x50,0x43,0x45,0x18,0x28,0x00,0xFF,0x30, + 0x8B,0x30,0xFC,0xF7,0x09,0xFD,0x00,0x28,0x31,0xD0,0x21,0x48,0x00,0x78,0x00,0x28, + 0x04,0xD0,0x00,0x98,0x40,0x1C,0x02,0x28,0x30,0xD8,0x05,0xE0,0x1D,0x48,0x81,0x7B, + 0x00,0x98,0x40,0x1C,0x81,0x42,0x29,0xD3,0x18,0x4A,0x00,0x20,0x11,0x18,0xC9,0x19, + 0x49,0x7B,0xA1,0x42,0x0D,0xD0,0x00,0x29,0x08,0xD1,0xFF,0x21,0x85,0x31,0x49,0x5D, + 0x00,0xE0,0x18,0xE0,0x10,0x18,0xC0,0x19,0x41,0x73,0x05,0xE0,0x40,0x1C,0x08,0x28, + 0xEC,0xDB,0x01,0x98,0x00,0x28,0x0A,0xD0,0x00,0x98,0x2A,0x00,0x40,0x1C,0xFF,0x32, + 0x00,0x90,0x85,0x32,0x03,0x20,0x01,0x23,0x69,0x46,0x00,0xF0,0xB7,0xF9,0x64,0x1C, + 0x09,0x2C,0xB3,0xDB,0x02,0xE0,0x01,0x20,0x40,0x07,0x43,0x60,0x00,0x98,0x00,0xF0, + 0x2B,0xFD,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x40,0x05,0x00,0x20,0x40,0x00,0x00,0x20, + 0xA3,0x05,0x00,0x20,0x00,0x93,0x00,0x00,0xFC,0xB5,0x4E,0x48,0x4E,0x4F,0x80,0x8B, + 0x00,0x26,0x0E,0x24,0x05,0x04,0x16,0x20,0x84,0x46,0x4C,0x48,0x2D,0x14,0x82,0x7D, + 0x86,0x46,0x4B,0x48,0x81,0x79,0xC8,0x07,0x05,0xD0,0x88,0x07,0x01,0xD5,0x0D,0x24, + 0x01,0xE0,0x15,0x20,0x84,0x46,0x00,0x21,0x27,0xE0,0x00,0x20,0x22,0xE0,0x91,0x42, + 0x05,0xD2,0x90,0x42,0x1D,0xD3,0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x19,0xD3,0x63,0x46, + 0x9B,0x1A,0x5B,0x1E,0x8B,0x42,0x01,0xD2,0x90,0x42,0x12,0xD3,0x8B,0x42,0x03,0xD2, + 0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x0C,0xD3,0x0B,0x00,0x63,0x43,0x1B,0x18,0x9B,0x00, + 0xFB,0x58,0x1B,0x01,0x1B,0x0D,0xB3,0x42,0x00,0xDD,0x1E,0x00,0xAB,0x42,0x00,0xDA, + 0x1D,0x00,0x40,0x1C,0xA0,0x42,0xDA,0xD3,0x49,0x1C,0x61,0x45,0xD5,0xD3,0x1E,0x24, + 0x70,0x46,0x04,0x5F,0x2D,0x4B,0x2F,0x48,0x20,0x33,0xC0,0x88,0x06,0x22,0x9A,0x5E, + 0x40,0x06,0x07,0xD5,0x70,0x46,0x80,0x8A,0x01,0x19,0x0C,0x04,0x10,0x1A,0x24,0x14, + 0x02,0x04,0x12,0x14,0x26,0x48,0x60,0x30,0x81,0x6B,0xA6,0x42,0x05,0xDD,0x74,0x46, + 0x64,0x8B,0xA1,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E, + 0x81,0x63,0x1F,0x49,0x60,0x31,0xC9,0x6B,0x95,0x42,0x04,0xDA,0x5A,0x88,0x91,0x42, + 0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E,0xC1,0x63,0x74,0x46, + 0xA4,0x8B,0x85,0x6B,0x01,0x22,0x11,0x00,0xA5,0x42,0x00,0xDC,0x00,0x21,0x9B,0x88, + 0xC0,0x6B,0x98,0x42,0x00,0xDC,0x00,0x22,0x00,0x20,0x6B,0x46,0x18,0x70,0x59,0x70, + 0x00,0x29,0x9A,0x70,0x02,0xD0,0x00,0x2A,0x00,0xD0,0x01,0x20,0x6B,0x46,0x11,0x43, + 0xD8,0x70,0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x6B,0x46,0x18,0x71,0x70,0x46, + 0x00,0x7B,0x69,0x46,0x08,0x5C,0x00,0x28,0x00,0xD0,0x80,0x20,0xFC,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x8C,0x05,0x00,0x20,0xD4,0x02,0x10,0x40,0x80,0x93,0x00,0x00, + 0xE0,0x04,0x00,0x20,0x40,0x00,0x00,0x20,0xF8,0xB5,0x34,0x4D,0x01,0x21,0x2C,0x00, + 0xFF,0x34,0x81,0x34,0x20,0x6A,0x49,0x05,0x88,0x43,0x86,0x46,0x09,0x20,0x80,0x01, + 0x29,0x18,0x48,0x6B,0xFF,0x27,0x84,0x46,0xA8,0x6A,0x41,0x37,0x2A,0x4E,0x78,0x43, + 0xF3,0x7D,0xE2,0x69,0x00,0x2B,0x0D,0xD0,0x29,0x4B,0x2A,0x49,0x4B,0x61,0x2A,0x4B, + 0x8B,0x61,0x73,0x46,0xCB,0x61,0x29,0x4B,0x0B,0x62,0xCA,0x60,0x62,0x46,0x0A,0x61, + 0x27,0x4A,0x27,0xE0,0x27,0x4B,0xDB,0x88,0x5B,0x06,0x16,0xD5,0x21,0x48,0x8A,0x69, + 0x42,0x61,0xCA,0x69,0x82,0x61,0x4A,0x6A,0x01,0x23,0x5B,0x05,0x9A,0x43,0xC2,0x61, + 0x8A,0x6A,0x02,0x62,0x0A,0x6A,0xC2,0x60,0x89,0x6B,0x01,0x61,0x1E,0x49,0x81,0x62, + 0xE8,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x0D,0xE0,0x16,0x49,0x63,0x69,0x4B,0x61, + 0xA3,0x69,0x8B,0x61,0x73,0x46,0xCB,0x61,0x63,0x6A,0x0B,0x62,0xCA,0x60,0x62,0x46, + 0x0A,0x61,0x16,0x4A,0x8A,0x62,0x16,0x49,0xF8,0xF7,0x5C,0xFF,0xB0,0x63,0x70,0x7D, + 0x00,0x28,0x05,0xD0,0x13,0x49,0x0B,0x48,0xC1,0x60,0x01,0x21,0x09,0x05,0x01,0x61, + 0x68,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x0D,0x49,0xF8,0xF7,0x4B,0xFF,0x70,0x63, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x8C,0x05,0x00,0x20,0x00,0x93,0x00,0x00, + 0x90,0x01,0x50,0x00,0xC0,0x90,0x00,0x40,0x20,0x03,0x58,0x02,0x10,0x3F,0x10,0x3F, + 0x00,0x00,0x01,0x80,0x40,0x00,0x00,0x20,0x00,0x00,0x08,0x84,0x00,0x00,0x04,0x82, + 0x10,0x27,0x00,0x00,0x41,0x40,0x01,0x00,0x07,0x48,0x41,0x78,0x07,0x48,0x02,0x29, + 0x01,0xD9,0x00,0x6A,0x04,0xE0,0x02,0x29,0x01,0xD1,0xC0,0x69,0x00,0xE0,0x80,0x69, + 0x03,0x49,0x48,0x62,0x70,0x47,0x00,0x00,0xC0,0x01,0x00,0x20,0xC0,0x94,0x00,0x00, + 0xC0,0x90,0x00,0x40,0x16,0x48,0x30,0xB4,0xC5,0x7D,0x01,0x22,0x15,0x4C,0x16,0x4B, + 0x16,0x48,0x00,0x21,0x12,0x04,0x00,0x2D,0x09,0xD0,0x03,0x61,0x44,0x61,0x53,0x10, + 0x83,0x61,0x13,0x4B,0xC3,0x61,0x02,0x62,0x0E,0x4A,0xFA,0x3A,0x12,0xE0,0x11,0x4D, + 0xED,0x88,0x03,0x61,0x6D,0x06,0x05,0xD5,0x44,0x61,0x81,0x61,0xC1,0x61,0x02,0x62, + 0x44,0x62,0x08,0xE0,0x07,0x4B,0x64,0x3B,0x43,0x61,0x81,0x61,0xC1,0x61,0x02,0x62, + 0x04,0x4A,0xC8,0x3A,0x42,0x62,0x81,0x62,0xC1,0x62,0x30,0xBC,0x70,0x47,0x00,0x00, + 0x8C,0x05,0x00,0x20,0x2C,0x01,0x01,0x00,0x00,0x00,0x01,0x03,0x40,0xA1,0x00,0x40, + 0x64,0x80,0x00,0x00,0x40,0x00,0x00,0x20,0x10,0x49,0x10,0xB4,0x0A,0x7D,0x10,0x48, + 0x82,0x71,0x4A,0x7D,0xC2,0x71,0x82,0x79,0x0E,0x48,0xD3,0x07,0x0A,0xD0,0x93,0x07, + 0x0D,0x4A,0x03,0xD5,0x0D,0x23,0x03,0x75,0x00,0x23,0x02,0xE0,0x15,0x23,0x03,0x75, + 0x01,0x23,0x53,0x73,0x8A,0x7D,0x42,0x75,0xCA,0x7D,0x82,0x75,0x0A,0x7E,0xC2,0x75, + 0x4A,0x7E,0x02,0x76,0x89,0x7E,0x41,0x76,0x10,0xBC,0x70,0x47,0x00,0x93,0x00,0x00, + 0xE0,0x04,0x00,0x20,0x00,0x05,0x00,0x20,0x8C,0x05,0x00,0x20,0xFF,0xB5,0x05,0x00, + 0x14,0x00,0x19,0x00,0x10,0x00,0x81,0xB0,0xFA,0xF7,0xEC,0xF8,0x00,0x28,0x08,0xD0, + 0x02,0x98,0x02,0x99,0x00,0x68,0x40,0x1E,0x08,0x60,0x05,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x29,0x48,0x80,0x79,0xC0,0x07,0x23,0xD0,0xE0,0x79,0x05,0x28,0x1E,0xD0, + 0x09,0x28,0x1E,0xD1,0x6D,0x08,0x6D,0x00,0x23,0x78,0x24,0x4F,0x01,0x20,0x12,0xE0, + 0x0A,0x21,0x41,0x43,0x22,0x4A,0x89,0x18,0x0A,0x00,0xFF,0x32,0xC1,0x32,0x96,0x7F, + 0xB3,0x42,0x07,0xD1,0xFF,0x31,0xE1,0x31,0x0E,0x88,0x66,0x80,0xD2,0x7F,0x62,0x70, + 0x49,0x88,0xA1,0x80,0x40,0x1C,0x79,0x78,0x81,0x42,0xE9,0xDA,0x01,0xE0,0x01,0x20, + 0x05,0x43,0x0F,0x21,0xA8,0x07,0x89,0x06,0x88,0x43,0x21,0x78,0x62,0x78,0x09,0x07, + 0x89,0x08,0x08,0x43,0x13,0x49,0x92,0x06,0x08,0x40,0x61,0x88,0x12,0x0C,0x89,0x05, + 0x89,0x09,0x08,0x43,0x3F,0x21,0x89,0x02,0x88,0x43,0x10,0x43,0x02,0x04,0x92,0x0E, + 0x0F,0x2A,0x03,0xD9,0x88,0x43,0x0F,0x21,0x89,0x02,0x40,0x18,0xA1,0x88,0x80,0x0A, + 0x80,0x02,0x89,0x05,0x89,0x0D,0x08,0x43,0x02,0x99,0x01,0x22,0x09,0x68,0x52,0x07, + 0x89,0x00,0x89,0x18,0x48,0x60,0xA8,0xE7,0xE0,0x04,0x00,0x20,0xC0,0x01,0x00,0x20, + 0x40,0x00,0x00,0x20,0xFF,0xFF,0x00,0xFC,0x10,0x49,0x10,0xB5,0x88,0x7D,0x00,0x28, + 0x14,0xD0,0x00,0x09,0x00,0x01,0x00,0x23,0x01,0x22,0x40,0x28,0x0B,0xD0,0x80,0x28, + 0x0C,0xD1,0x8A,0x74,0xCA,0x74,0x0A,0x48,0x0A,0x75,0x0A,0x74,0x00,0x78,0x00,0x28, + 0x07,0xD1,0x4B,0x75,0x06,0xE0,0xCB,0x73,0x0A,0x74,0x4B,0x74,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x4A,0x75,0x00,0x20,0x00,0xF0,0xF7,0xF9,0xF7,0xE7,0x8C,0x05,0x00,0x20, + 0xA0,0x95,0x00,0x00,0xF0,0x41,0x2D,0xE9,0x00,0xC0,0xA0,0xE1,0x1C,0x50,0x9D,0xE5, + 0x18,0x60,0x9D,0xE5,0x01,0x00,0x5C,0xE1,0x01,0x40,0xA0,0xE1,0x02,0x00,0xA0,0xE1, + 0x03,0x70,0xA0,0xE1,0x06,0x00,0x00,0x3A,0x04,0x10,0xA0,0xE1,0x6D,0xE2,0xFF,0xEB, + 0xB0,0x00,0xC6,0xE1,0x04,0x10,0xA0,0xE1,0x07,0x00,0xA0,0xE1,0x69,0xE2,0xFF,0xEB, + 0xB0,0x00,0xC5,0xE1,0xF0,0x41,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0xF0,0x47,0x2D,0xE9, + 0x00,0x40,0xA0,0xE1,0x20,0x80,0x8D,0xE2,0x28,0x60,0x8D,0xE2,0x01,0x01,0x98,0xE8, + 0x60,0x00,0x96,0xE8,0x02,0x00,0x51,0xE1,0xB2,0x50,0xC4,0xB1,0xB4,0x60,0xC4,0xB1, + 0x11,0x00,0x00,0xBA,0x03,0x00,0x51,0xE1,0xB2,0x00,0xC4,0xA1,0xB4,0x80,0xC4,0xA1, + 0x0D,0x00,0x00,0xAA,0x02,0x70,0x41,0xE0,0x05,0x00,0x40,0xE0,0x97,0x00,0x00,0xE0, + 0x02,0x90,0x43,0xE0,0x09,0x10,0xA0,0xE1,0x52,0xE2,0xFF,0xEB,0x05,0x00,0x80,0xE0, + 0xB2,0x00,0xC4,0xE1,0x06,0x00,0x48,0xE0,0x97,0x00,0x00,0xE0,0x09,0x10,0xA0,0xE1, + 0x4C,0xE2,0xFF,0xEB,0x06,0x00,0x80,0xE0,0xB4,0x00,0xC4,0xE1,0xF0,0x47,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x30,0xB4,0x8A,0x79,0x12,0x4B,0x00,0x25,0x12,0x07,0x92,0x08, + 0x1A,0x40,0xCB,0x79,0x92,0x0A,0x92,0x02,0x5C,0x07,0x06,0xD5,0x0E,0x4C,0xA4,0x89, + 0x00,0x2C,0x02,0xD0,0xA4,0x05,0xA4,0x0D,0x22,0x43,0x3F,0x24,0xA4,0x02,0x9B,0x06, + 0xA2,0x43,0x1B,0x0C,0x1A,0x43,0x01,0x23,0x80,0x00,0x5B,0x07,0xC0,0x18,0x42,0x60, + 0xC8,0x79,0xC0,0x06,0x80,0x0F,0x03,0xD0,0x04,0x48,0x01,0x21,0xC1,0x70,0x05,0x71, + 0x30,0xBC,0x70,0x47,0xFF,0xFF,0x00,0xFC,0x40,0x00,0x00,0x20,0xE0,0x04,0x00,0x20, + 0x00,0xB5,0x0E,0x28,0x09,0xDD,0x16,0x28,0x07,0xDA,0x0F,0x28,0x05,0xD1,0x04,0x49, + 0xE1,0x20,0x80,0x00,0x48,0x83,0xFC,0xF7,0xB5,0xFC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x8C,0x05,0x00,0x20,0x30,0xB4,0x0E,0x25,0x68,0x43,0x0B,0x4C,0x40,0x18,0x45,0x00, + 0x60,0x5B,0x01,0x06,0x00,0x0A,0x09,0x0E,0x82,0x18,0xC9,0x18,0x00,0x20,0x4B,0x1E, + 0xC0,0x43,0xFF,0x2B,0x06,0xD2,0x53,0x1E,0xFF,0x2B,0x03,0xD2,0x10,0x02,0x08,0x43, + 0x60,0x53,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0x10,0xB4,0x0E,0x24, + 0x60,0x43,0x03,0x4B,0x40,0x18,0x40,0x00,0x1A,0x52,0x10,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0x0E,0x23,0x58,0x43,0x30,0xB4,0x0B,0x4C,0x40,0x18,0x43,0x00, + 0xE0,0x5A,0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18,0x00,0x20,0x4D,0x1E, + 0xC0,0x43,0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2,0x10,0x02,0x08,0x43, + 0xE0,0x52,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0x70,0xB4,0x12,0x4A, + 0x11,0x4D,0x52,0x7D,0x00,0x21,0x20,0x3D,0x14,0x02,0x14,0x43,0x0E,0x22,0x50,0x43, + 0x0C,0x4B,0x86,0x18,0x12,0xE0,0xAA,0x7D,0x8A,0x42,0x0D,0xD0,0xEA,0x7D,0x8A,0x42, + 0x0A,0xD0,0x2A,0x7E,0x8A,0x42,0x07,0xD0,0x6A,0x7E,0x8A,0x42,0x04,0xD0,0xAA,0x7E, + 0x8A,0x42,0x01,0xD0,0x42,0x00,0x9C,0x52,0x40,0x1C,0x49,0x1C,0x86,0x42,0xEA,0xD8, + 0x70,0xBC,0x70,0x47,0x00,0x00,0x10,0x40,0x20,0x93,0x00,0x00,0x70,0xB4,0x12,0x4A, + 0x11,0x4B,0x52,0x7D,0x00,0x21,0x20,0x3B,0x15,0x02,0x15,0x43,0xFF,0x26,0x0D,0x4C, + 0x35,0x36,0x12,0xE0,0x9A,0x7D,0x8A,0x42,0x0D,0xD0,0xDA,0x7D,0x8A,0x42,0x0A,0xD0, + 0x1A,0x7E,0x8A,0x42,0x07,0xD0,0x5A,0x7E,0x8A,0x42,0x04,0xD0,0x9A,0x7E,0x8A,0x42, + 0x01,0xD0,0x42,0x00,0xA5,0x52,0x0E,0x30,0x49,0x1C,0xB0,0x42,0xEA,0xD3,0x70,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x20,0x93,0x00,0x00,0x02,0x04,0x04,0x49, + 0x02,0x43,0x00,0x20,0x40,0x1C,0x04,0xC1,0xB5,0x28,0xFB,0xD3,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0x05,0x48,0x07,0x49,0xC0,0x88,0x42,0x06,0x04,0x48,0x01,0xD5, + 0x40,0x68,0x00,0xE0,0x00,0x68,0x48,0x60,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0xC0,0x93,0x00,0x00,0x00,0x90,0x00,0x40,0xF0,0xB5,0x03,0x00,0x22,0x49,0x05,0x20, + 0xC0,0x01,0x0C,0x18,0x0B,0x20,0x80,0x01,0x0D,0x18,0xC0,0x31,0x1D,0x4A,0x4F,0x6A, + 0x0E,0x6A,0x88,0x6A,0x00,0xF0,0x2A,0xFB,0x07,0x05,0x0B,0x15,0x19,0x21,0x25,0x2C, + 0x12,0x00,0xC8,0x68,0x10,0x62,0x60,0x6B,0x50,0x62,0x02,0x20,0x04,0xE0,0xC8,0x69, + 0x10,0x62,0x68,0x68,0x50,0x62,0x04,0x20,0xD0,0x62,0x56,0x63,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x08,0x69,0x10,0x62,0xA0,0x6B,0x02,0xE0,0x48,0x69,0x10,0x62,0xE0,0x6B, + 0x50,0x62,0x04,0x20,0xD0,0x62,0x57,0x63,0xF0,0xE7,0x0C,0x49,0x11,0x62,0x24,0x21, + 0x02,0xE0,0x89,0x69,0x11,0x62,0x29,0x68,0x51,0x62,0x05,0x21,0xD1,0x62,0x07,0xE0, + 0x06,0x48,0x10,0x62,0x26,0x20,0x50,0x62,0x05,0x20,0xD0,0x62,0xF5,0x20,0x00,0x01, + 0x50,0x63,0xDB,0xE7,0x80,0x90,0x00,0x40,0x00,0x93,0x00,0x00,0x01,0x02,0x00,0x00, + 0x70,0xB4,0x01,0x23,0x5B,0x07,0x58,0x68,0x59,0x68,0xC0,0x02,0xC0,0x0E,0x09,0x02, + 0x4C,0x0F,0x18,0x49,0x01,0x26,0x00,0x22,0x00,0x2C,0x10,0xD0,0xCC,0x7A,0x35,0x00, + 0x00,0x2C,0x00,0xD0,0x00,0x25,0x85,0x42,0x07,0xD0,0x45,0x08,0x64,0x08,0xA5,0x42, + 0x03,0xD1,0xC8,0x72,0x1A,0x60,0x70,0xBC,0x70,0x47,0xC8,0x72,0x00,0xE0,0xCA,0x72, + 0x58,0x68,0x00,0x04,0x00,0x0F,0x58,0x68,0x03,0xD0,0x00,0x04,0x00,0x0F,0x40,0x1C, + 0x0C,0xE0,0xC0,0x02,0xC0,0x0E,0x01,0xD0,0x01,0x20,0x07,0xE0,0x88,0x7A,0x00,0x28, + 0x02,0xD1,0x01,0x20,0x8E,0x72,0x02,0xE0,0x0F,0x22,0x00,0x20,0x8A,0x72,0x18,0x60, + 0xE1,0xE7,0x00,0x00,0x8C,0x05,0x00,0x20,0x09,0x48,0x10,0xB5,0xC4,0x6E,0xE0,0x07, + 0x05,0xD0,0x08,0x48,0x00,0x7E,0x00,0x28,0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20, + 0x00,0xF0,0x0A,0xF8,0x20,0x0C,0xFF,0xF7,0xA3,0xFE,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x8C,0x05,0x00,0x20,0xA0,0x93,0x00,0x00,0x0A,0x4A,0x10,0xB5,0xD1,0x88,0x0A,0x4B, + 0x40,0x24,0x00,0x28,0x03,0xD0,0x21,0x43,0x08,0x48,0xD1,0x80,0x03,0xE0,0x07,0x48, + 0xA1,0x43,0xC4,0x38,0xD1,0x80,0x18,0x60,0xFF,0xF7,0x6E,0xFC,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0xF0,0x06,0x00,0x20,0xB0,0x94,0x00,0x00, + 0xFE,0xB5,0x04,0x00,0x39,0x48,0x07,0x6A,0x41,0x6A,0x02,0x91,0x41,0x6B,0x01,0x91, + 0xC0,0x6A,0x00,0x90,0x00,0x20,0xFF,0xF7,0x37,0xFF,0xFA,0xF7,0xE3,0xFD,0x34,0x4E, + 0x25,0x00,0x42,0xE0,0x68,0x1E,0x84,0x42,0x01,0xD1,0xFA,0xF7,0x05,0xFE,0xFA,0xF7, + 0xA7,0xFD,0xFA,0xF7,0x13,0xFE,0xF0,0x7D,0x00,0x28,0x07,0xD0,0x68,0x00,0xA0,0x42, + 0x29,0xD9,0x01,0x22,0x11,0x00,0x00,0x20,0x02,0x23,0x2C,0xE0,0xA8,0x00,0x05,0x21, + 0xF8,0xF7,0xE8,0xFB,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x04,0x20,0xF3,0xE7, + 0x68,0x00,0x28,0x18,0x05,0x21,0xF8,0xF7,0xDD,0xFB,0xA0,0x42,0x03,0xD8,0x01,0x22, + 0x11,0x00,0x03,0x20,0xE8,0xE7,0x68,0x00,0x05,0x21,0xF8,0xF7,0xD3,0xFB,0xA0,0x42, + 0x03,0xD8,0x01,0x22,0x11,0x00,0x02,0x20,0xDE,0xE7,0x05,0x21,0x28,0x00,0xF8,0xF7, + 0xC9,0xFB,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x10,0x00,0xD4,0xE7,0x01,0x22, + 0x11,0x00,0x00,0x20,0x13,0x00,0xFA,0xF7,0x71,0xFB,0x64,0x1E,0xBA,0xD2,0x11,0x48, + 0x44,0x88,0x03,0xE0,0xFA,0xF7,0x64,0xFD,0xFA,0xF7,0xD0,0xFD,0x64,0x1E,0xF9,0xD2, + 0xFA,0xF7,0x88,0xFD,0x09,0x48,0x07,0x62,0x02,0x99,0x41,0x62,0x01,0x99,0x41,0x63, + 0x00,0x99,0xC1,0x62,0x00,0x20,0x30,0x84,0xB0,0x71,0xF0,0x70,0xC8,0x21,0xF0,0x83, + 0x71,0x64,0x30,0x71,0x70,0x71,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x80,0x90,0x00,0x40, + 0x8C,0x05,0x00,0x20,0xE0,0x95,0x00,0x00,0x30,0xB4,0x0D,0x4D,0xEC,0x7B,0x00,0x2C, + 0x13,0xD0,0x02,0x68,0x0B,0x68,0xA4,0x07,0x03,0xD5,0x2C,0x8C,0xA2,0x1A,0x52,0x1E, + 0x02,0x60,0xEC,0x7B,0x64,0x07,0x03,0xD5,0x6C,0x8C,0xE3,0x1A,0x5B,0x1E,0x0B,0x60, + 0xEC,0x7B,0xE4,0x07,0x01,0xD0,0x03,0x60,0x0A,0x60,0x30,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x93,0x00,0x00,0x02,0x49,0x00,0x03,0x40,0x18,0xC0,0x68,0x70,0x47,0x00,0x00, + 0x00,0x20,0x00,0x40,0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47,0xF5,0x06,0x00,0x20, + 0x30,0xB4,0x05,0x03,0x05,0x48,0x02,0x9C,0x28,0x18,0x02,0x60,0x41,0x60,0x00,0x2B, + 0x00,0xD0,0x03,0x61,0x84,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x02,0x4A,0x00,0x03,0x80,0x18,0x01,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x05,0x49,0x00,0x03,0x40,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x11,0x43,0x81,0x60, + 0x02,0x49,0x00,0x20,0x08,0x70,0x70,0x47,0x00,0x20,0x00,0x40,0xF5,0x06,0x00,0x20, + 0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x91,0x43,0x81,0x60, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x13,0x49,0x01,0x22,0x09,0x78,0x52,0x07, + 0x00,0x29,0x03,0xD0,0x02,0x28,0x06,0xD9,0x02,0x20,0x15,0xE0,0x0F,0x49,0x89,0x7B, + 0x81,0x42,0x00,0xD2,0x08,0x00,0x01,0x28,0x0C,0xD1,0x91,0x68,0x8B,0x0F,0xDB,0x07, + 0x04,0xD0,0x89,0x00,0x89,0x08,0x83,0x07,0xC9,0x18,0x01,0xE0,0x89,0x00,0x89,0x08, + 0x51,0x60,0x07,0xE0,0x01,0x28,0x05,0xD9,0x01,0x21,0xC9,0x07,0x83,0x05,0x9B,0x0D, + 0x19,0x43,0xF5,0xE7,0x10,0x60,0x70,0x47,0xA3,0x05,0x00,0x20,0x00,0x93,0x00,0x00, + 0x38,0xB5,0x00,0x24,0x71,0x20,0x6B,0x46,0x00,0x94,0xD8,0x70,0x00,0x98,0x01,0x25, + 0x6D,0x07,0x68,0x60,0x0D,0x48,0x09,0x22,0x21,0x00,0xF8,0xF7,0x1F,0xFB,0x0B,0x48, + 0x09,0x22,0x00,0x21,0x09,0x38,0xF8,0xF7,0x19,0xFB,0x08,0x49,0x0D,0x39,0x88,0x7D, + 0x00,0x28,0x08,0xD0,0x00,0x20,0x03,0xE0,0x82,0x00,0x52,0x19,0x94,0x60,0x40,0x1C, + 0x8A,0x7D,0x82,0x42,0xF8,0xDC,0x38,0xBC,0x08,0xBC,0x18,0x47,0x4D,0x05,0x00,0x20, + 0xF0,0xB5,0x00,0x24,0x25,0x00,0x20,0x00,0x01,0x21,0x89,0xB0,0x49,0x07,0x08,0x94, + 0x4F,0x68,0x69,0x4E,0xB9,0x0F,0x89,0x07,0x7E,0xD5,0x20,0x22,0x00,0x21,0x68,0x46, + 0xF8,0xF7,0xF4,0xFA,0x07,0x21,0xB8,0x01,0x49,0x05,0x40,0x08,0x08,0x40,0x31,0x00, + 0x88,0x43,0x39,0x07,0x09,0x0C,0x08,0x43,0x00,0x21,0x08,0x90,0x41,0xE0,0x01,0x23, + 0x88,0x00,0x5B,0x07,0xC0,0x18,0x80,0x68,0x86,0x00,0x33,0x0F,0x38,0xD0,0x83,0x0F, + 0xDB,0x07,0x2C,0xD0,0x33,0x0F,0x9E,0x46,0x9B,0x00,0x6F,0x46,0xDB,0x19,0x40,0x3B, + 0x9C,0x46,0xDB,0x6B,0x36,0x0F,0x1B,0x01,0x1B,0x09,0x36,0x07,0x33,0x43,0x0F,0x27, + 0x3F,0x06,0x06,0x04,0xB6,0x08,0xBB,0x43,0x3E,0x40,0x33,0x43,0x4F,0x4E,0x33,0x40, + 0x86,0x01,0xB6,0x0D,0x36,0x03,0x33,0x43,0x1E,0x0B,0x80,0x05,0x36,0x03,0x80,0x0D, + 0x06,0x43,0x63,0x46,0xDE,0x63,0x73,0x46,0x5B,0x1E,0x01,0x20,0x98,0x40,0x80,0x05, + 0x80,0x0D,0x02,0x43,0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x08,0x92,0x08,0xE0,0x30,0x0F, + 0x40,0x1E,0x01,0x23,0x83,0x40,0xD8,0x43,0x41,0x4B,0x18,0x43,0x02,0x40,0x08,0x92, + 0x49,0x1C,0x08,0x9A,0x10,0x04,0x00,0x0F,0x88,0x42,0xB8,0xD8,0x10,0x04,0x00,0x0F, + 0x01,0x23,0x5F,0x07,0x0F,0xE0,0x82,0x00,0xD2,0x19,0x92,0x68,0x1E,0x00,0x92,0x00, + 0x12,0x0F,0x52,0x1E,0x96,0x40,0xF2,0x06,0xD2,0x0A,0x64,0x1C,0x11,0x43,0x24,0x06, + 0x24,0x0E,0x40,0x1C,0x08,0x91,0x08,0x99,0x0A,0x04,0x0E,0x02,0x12,0x0F,0x76,0x0F, + 0x92,0x19,0x82,0x42,0xE7,0xD8,0x00,0x22,0x10,0x00,0x83,0x00,0x6E,0x46,0xF6,0x58, + 0x00,0x2E,0x0A,0xD0,0x01,0x23,0x00,0xE0,0x17,0xE0,0x83,0x40,0x0B,0x40,0x9B,0x05, + 0x03,0xD0,0x93,0x00,0xDB,0x19,0x9E,0x60,0x52,0x1C,0x40,0x1C,0x08,0x28,0xEC,0xD3, + 0x21,0x48,0x81,0x43,0x28,0x07,0x00,0x0C,0x01,0x43,0x07,0x20,0x40,0x05,0x81,0x43, + 0x60,0x07,0x00,0x0A,0x01,0x43,0x08,0x91,0x2B,0xE0,0xB9,0x0F,0xC9,0x07,0x25,0xD0, + 0x01,0x23,0x5B,0x07,0x58,0x68,0x19,0x4C,0x81,0x00,0x0A,0x0F,0x12,0x07,0x22,0x40, + 0x84,0x01,0xA4,0x0D,0x24,0x03,0x22,0x43,0x84,0x05,0x12,0x0B,0x12,0x03,0xA4,0x0D, + 0x22,0x43,0x0F,0x24,0x24,0x06,0x00,0x04,0x80,0x08,0xA2,0x43,0x20,0x40,0x02,0x43, + 0x10,0x0F,0x09,0xD0,0x08,0x0F,0x40,0x1E,0x01,0x21,0x81,0x40,0x88,0x05,0x80,0x0D, + 0xB0,0x43,0x59,0x14,0x40,0x18,0x08,0x90,0x9A,0x60,0x02,0xE0,0x01,0x21,0x49,0x07, + 0x88,0x60,0x71,0x20,0x08,0xAB,0xD8,0x70,0x08,0x99,0x40,0x07,0x41,0x60,0x09,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0xF0,0x00,0x00,0xFF,0x0F,0x00,0xFF, + 0x00,0xFC,0xFF,0xFF,0x70,0xB5,0x05,0x00,0x08,0x48,0x00,0x22,0x04,0x04,0x24,0x0C, + 0x40,0x21,0x20,0x00,0xF8,0xF7,0x20,0xFA,0x40,0x22,0x29,0x00,0x20,0x00,0x00,0x23, + 0xF8,0xF7,0x22,0xFA,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x92,0x00,0x00, + 0x02,0x4B,0x58,0x60,0x99,0x60,0x1A,0x60,0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40, + 0x01,0x04,0x00,0xB5,0x03,0x48,0x02,0x22,0x09,0x0C,0xFF,0xF7,0xF1,0xFF,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xE1,0x04,0x00,0x00,0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43, + 0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x48,0x01,0x68,0x49,0x08,0x49,0x00, + 0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x49,0x02,0x22,0x0A,0x61,0x88,0x60, + 0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40,0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47, + 0xF4,0x06,0x00,0x20,0x00,0x04,0x00,0x0C,0x01,0x21,0x89,0x07,0x08,0x61,0x70,0x47, + 0x01,0x21,0x89,0x07,0x88,0x68,0x8A,0x15,0x90,0x43,0x88,0x60,0x70,0x47,0x70,0xB4, + 0x03,0xAC,0x30,0xCC,0x06,0x68,0x96,0x42,0x01,0xDB,0x32,0x00,0x00,0xE0,0x02,0x60, + 0x9A,0x42,0x00,0xDD,0x03,0x60,0x08,0x68,0xA0,0x42,0x00,0xDA,0x0C,0x60,0x08,0x68, + 0xA8,0x42,0x00,0xDD,0x0D,0x60,0x70,0xBC,0x70,0x47,0x00,0x47,0x78,0x47,0xC0,0x46, + 0x01,0xC0,0x5E,0xE5,0x0C,0x00,0x53,0xE1,0x03,0x30,0xDE,0x37,0x0C,0x30,0xDE,0x27, + 0x83,0xC0,0x8E,0xE0,0x1C,0xFF,0x2F,0xE1,0x10,0xB5,0xF8,0xF7,0xED,0xF9,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x01,0x00,0x4B,0x00,0x95,0x00,0xD5,0x00,0x0C,0x01,0x4D,0x01, + 0x97,0x01,0x25,0x00,0x6F,0x00,0xB9,0x00,0xF0,0x00,0x27,0x01,0x71,0x01,0xBB,0x01, + 0x49,0x00,0x93,0x00,0xD4,0x00,0x0B,0x01,0x4B,0x01,0x95,0x01,0xDF,0x01,0x01,0x00, + 0x46,0x00,0x92,0x00,0xDE,0x00,0x2A,0x01,0x6D,0x01,0xA6,0x01,0xE9,0x01,0x35,0x02, + 0x81,0x02,0xCD,0x02,0x20,0x00,0x6C,0x00,0xB8,0x00,0x04,0x01,0x50,0x01,0x89,0x01, + 0xC2,0x01,0x0E,0x02,0x5A,0x02,0xA6,0x02,0xF2,0x02,0x45,0x00,0x91,0x00,0xDD,0x00, + 0x29,0x01,0x6B,0x01,0xA4,0x01,0xE7,0x01,0x33,0x02,0x7F,0x02,0xCB,0x02,0x17,0x03, + 0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFD,0xFF,0xFD,0xFF,0xFC,0xFF, + 0x00,0x00,0xFE,0xFF,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0xFF,0xFF, + 0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x01,0x00, + 0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x89,0x08,0x49,0x1E,0x49,0x04,0x01,0x22, + 0x49,0x08,0xD2,0x07,0x89,0x18,0x00,0x04,0x00,0x0C,0x01,0x43,0x03,0x48,0x41,0x61, + 0x41,0x69,0x00,0x29,0xFC,0xDB,0x80,0x6B,0x70,0x47,0x00,0x00,0x00,0x70,0x00,0x40, + 0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0xFF,0x10,0x01,0xE2,0x01,0x20,0x52,0xE2, + 0x01,0x10,0xC0,0xE4,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0xC2,0x20,0xA0,0xE1, + 0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0x01,0x18,0xA0,0xE1,0x21,0x18,0xA0,0xE1, + 0x01,0x20,0x52,0xE2,0xB2,0x10,0xC0,0xE0,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1, + 0x42,0x21,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0x01,0x20,0x52,0xE2, + 0x04,0x10,0x80,0xE4,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0x01,0x30,0xD1,0xE4,0x01,0x20,0x52,0xE2,0x01,0x30,0xC0,0xE4, + 0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0xB2,0x30,0xD1,0xE0,0x01,0x20,0x52,0xE2,0xB2,0x30,0xC0,0xE0, + 0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x42,0x21,0xA0,0xE1,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0x04,0x30,0x91,0xE4,0x01,0x20,0x52,0xE2,0x04,0x30,0x80,0xE4, + 0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0xB2,0x30,0xD1,0xE0,0x01,0x20,0x52,0xE2,0x04,0x30,0x80,0xE4, + 0xFB,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x41,0x11,0xA0,0xE1,0x01,0x10,0x51,0xE2, + 0x1E,0xFF,0x2F,0x31,0x00,0x20,0xA0,0xE3,0x01,0x10,0x51,0xE2,0x04,0x20,0x80,0xE4, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x70,0x20,0x9F,0xE5,0x30,0x00,0x2D,0xE9, + 0x64,0xC0,0x9F,0xE5,0x00,0x00,0x92,0xE5,0x64,0x40,0x9F,0xE5,0x64,0x30,0x9F,0xE5, + 0x33,0x00,0xA0,0xE3,0x01,0x0C,0x80,0xE2,0x00,0x11,0x92,0xE7,0x80,0x50,0x84,0xE0, + 0xB0,0x10,0xC5,0xE1,0x00,0x11,0x9C,0xE7,0x80,0x50,0x83,0xE0,0x01,0x00,0x50,0xE2, + 0xB0,0x10,0xC5,0xE1,0xF7,0xFF,0xFF,0x5A,0x30,0x00,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x24,0x20,0x9F,0xE5,0x30,0x10,0x9F,0xE5,0x33,0x00,0xA0,0xE3,0x01,0x0C,0x80,0xE2, + 0x00,0x31,0x92,0xE7,0x80,0xC0,0x81,0xE0,0x23,0x38,0xA0,0xE1,0x01,0x00,0x50,0xE2, + 0xB0,0x30,0xCC,0xE1,0xF9,0xFF,0xFF,0x5A,0x1E,0xFF,0x2F,0xE1,0xD4,0x02,0x10,0x40, + 0x00,0x10,0x10,0x40,0xF6,0x06,0x00,0x20,0x00,0x00,0x00,0x10,0xD2,0x02,0x00,0x10, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0B,0x38,0x30,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,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,0xFF,0x00,0x00,0x00, + 0x00,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x01,0x08,0x02,0x00, + 0x00,0x00,0x00,0x00,0x03,0x02,0x15,0x14,0xFF,0xFF,0xFF,0x00,0x00,0xC8,0x05,0x1E, + 0x1C,0x02,0xC0,0x03,0xE8,0x03,0x00,0x00,0xE8,0x03,0x00,0x00,0xE8,0x03,0x00,0x00, + 0xE0,0x93,0x04,0x00,0x01,0x5A,0x1A,0x04,0x4C,0x04,0x00,0x00,0x04,0xC8,0x97,0x97, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x78,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x66,0x00,0x68,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x32,0x00, + 0x2C,0x01,0x2C,0x01,0x00,0x00,0x00,0x00,0x50,0x00,0x5A,0x00,0x32,0x00,0xB8,0x0B, + 0x50,0x00,0x5A,0x00,0x32,0x00,0xE8,0x03,0x64,0x00,0x14,0x00,0x00,0x00,0x00,0x00, + 0x05,0x02,0x05,0x0A,0x01,0x01,0x04,0x00,0x01,0x02,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x01,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x01,0x00,0x00, + 0x00,0x0E,0x00,0x00,0x80,0x0F,0x00,0x00,0x60,0x0F,0x00,0x00,0x9F,0xB9,0x5E,0x01, + 0x01,0x00,0x14,0x00,0x64,0x64,0x64,0x64,0x1E,0x00,0x96,0x00,0x19,0x00,0x05,0x00, + 0x64,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x32,0x00,0x90,0x01,0x90,0x01,0x90,0x01, + 0x2C,0x01,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00, + 0x0A,0x01,0x32,0x00,0x88,0x13,0xE8,0x03,0x0A,0x00,0x96,0x96,0x96,0x96,0x00,0x96, + 0x96,0x96,0xB4,0x00,0xFF,0x0F,0x90,0x01,0x50,0x00,0x0A,0x00,0xFF,0xFF,0x14,0x96, + 0x00,0x05,0x04,0x0A,0x0A,0x06,0xF4,0x01,0x3C,0x00,0x03,0x2D,0x00,0x02,0x14,0x00, + 0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xDC,0x00,0x05,0x02,0x01,0x02,0x01,0x00,0x02,0x04,0x03,0x00,0x05,0x05,0x0A,0x0A, + 0x0F,0x0F,0x14,0x14,0x64,0x55,0x01,0x00,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,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x41,0x42,0x01,0x00, + 0x18,0x18,0x88,0x00,0x30,0x7F,0x10,0x3F,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00, + 0x9F,0x99,0x5E,0x01,0x01,0x00,0x14,0x00,0x64,0x64,0x64,0x64,0x46,0x00,0x32,0x00, + 0x96,0x00,0x14,0x00,0x32,0x00,0x14,0x00,0x01,0x00,0x0A,0x02,0x50,0x00,0x90,0x01, + 0x90,0x01,0x90,0x01,0x90,0x01,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00, + 0x10,0x00,0x10,0x00,0x0A,0x01,0x32,0x00,0x88,0x13,0xF4,0x01,0x0A,0x00,0x96,0x96, + 0x96,0x96,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x0F,0x90,0x01,0xC8,0x00,0x1E,0x00, + 0xFA,0xFA,0x0D,0xA0,0x00,0x05,0x04,0x0A,0x02,0x06,0xE8,0x03,0x3C,0x00,0x03,0x28, + 0x00,0x02,0x1E,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xDC,0x00,0x05,0x05,0x01,0x02,0x01,0x00,0x03,0x04,0x03,0x00, + 0x05,0x05,0x0A,0x0A,0x0F,0x0F,0x14,0x14,0x64,0x5A,0x01,0x00,0x03,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03, + 0x41,0x22,0x01,0x00,0x10,0x10,0x88,0x00,0x30,0x7F,0x10,0x3F,0x00,0x00,0x00,0x00, + 0x01,0x00,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00, + 0x8C,0x00,0x0F,0x00,0x05,0x00,0x00,0x00,0x0A,0x00,0xC8,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x00,0x00,0x2C,0x01,0x00,0x00,0x2C,0x01,0x5E,0x01,0x00,0x00, + 0x21,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x28,0x00,0x00,0x00, + 0x25,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x64,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x0A,0x00,0x00,0x5A,0x5A,0x5A,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x32,0x00,0x50,0x00,0x32,0x00,0x50,0x00,0x0A,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x41,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x16,0x0E,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x01,0x00,0x00,0x27,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFF,0x0F,0xFF,0x0F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x42,0x01,0x00, + 0x00,0x00,0x10,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x18,0x18,0x88,0x00, + 0x30,0x7F,0x10,0x3F,0x64,0x14,0x10,0x00,0x00,0x00,0x04,0x82,0x00,0x00,0xFF,0x0F, + 0x01,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xC8,0x00,0x40,0x06,0x00,0x00,0x08,0x00, + 0x11,0x30,0x10,0x00,0x61,0x80,0x01,0x00,0xFF,0xFF,0xFF,0x10,0xFF,0xFF,0xFF,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x54,0x55,0x45,0x00,0x10,0x10,0x00,0x00,0x00,0x70,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x14,0x00,0x00,0x0C,0x0C,0x06,0x00, + 0x00,0x01,0x03,0x02,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0xC0,0xDA,0x00,0x00, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x03,0xC8,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x00,0x64,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,0x10,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x39,0x20,0x09, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, + 0x26,0x3F,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, + 0x26,0x3F,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x3F,0x2A,0x2A, + 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x3F,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x20,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, + 0x24,0x24,0x24,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x44, + 0xC8,0x61,0x14,0x44,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0x00,0xB0,0xAA,0xAB, + 0x21,0x2C,0xAA,0xAB,0x42,0xB4,0xA9,0xAB,0x63,0x28,0xA9,0xAB,0x84,0xB8,0xA8,0xAB, + 0xA5,0xA4,0xA5,0xAB,0xC6,0x3C,0xA5,0xAB,0xE7,0xA0,0xA4,0xAB,0x08,0x41,0xA4,0xAB, + 0x29,0x9D,0xA3,0xAB,0x4A,0x45,0xA3,0xAB,0x6B,0x99,0xA2,0xAB,0x8C,0x49,0xA2,0xAB, + 0xAD,0x95,0xA1,0xAB,0xCE,0x4D,0xA0,0xAB,0xEF,0x11,0xA0,0xAB,0x10,0x52,0xA0,0xAB, + 0x31,0x0E,0xA0,0xAB,0x52,0x56,0xA0,0xAB,0x73,0x0A,0xA0,0xAB,0x94,0x5A,0xA0,0xAB, + 0xB5,0x06,0xA0,0xAB,0xD6,0x02,0xA0,0xAB,0xF7,0x02,0xA0,0xAB,0x00,0x08,0x00,0x00, + 0x00,0x30,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x06,0x00,0x00, + 0x00,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x00, + 0x00,0x00,0x03,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x60,0x00,0x00,0x00, + 0x00,0x00,0x0C,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00, + 0x00,0x00,0x30,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x06,0x00,0x00,0x00, + 0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x0F,0x3E,0x00, + 0xF8,0x0F,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x30, + 0x6C,0x68,0x04,0x00,0x00,0x00,0x00,0x00,0x30,0x60,0x30,0x60,0x60,0x30,0x60,0x30, + 0x00,0x00,0x00,0x00,0x57,0x50,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47,0x40,0x04,0x00,0x00,0xC0,0x9B,0x00,0x00, + 0xC0,0x92,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x03,0x00,0x00, + 0x00,0x96,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x02,0x00,0x00, + 0x00,0x99,0x00,0x00,0x00,0x04,0x00,0x00,0x7D,0x00,0x44,0x00,0x00,0x00,0x00,0x00, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47}; + +#endif // __IST30XXB_FW_H__ diff --git a/drivers/input/touchscreen/ist30xx/ist30xx.c b/drivers/input/touchscreen/ist30xx/ist30xx.c new file mode 100644 index 00000000..81c6f297 --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/ist30xx.c @@ -0,0 +1,1625 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xx.h" +#include "ist30xx_update.h" +#include "ist30xx_tracking.h" + +#ifdef CONFIG_OF +#include +#include +#endif + +#if IST30XX_DEBUG +#include "ist30xx_misc.h" +#endif +#if SEC_FACTORY_MODE +#include "ist30xx_sec.h" +extern int sec_touch_sysfs(struct ist30xx_data *data); +extern int sec_fac_cmd_init(struct ist30xx_data *data); +#endif + +#define TOUCH_BOOSTER 0 +#define MAX_ERR_CNT (100) + +#if TOUCH_BOOSTER +#include +//#include +extern int _store_cpu_num_min_limit(unsigned int input); +struct cpufreq_limit_handle *min_handle = NULL; +static const unsigned long touch_cpufreq_lock = 1200000; +#endif + +#if IST30XX_USE_KEY +int ist30xx_key_code[] = { 0, KEY_MENU, KEY_BACK }; +#endif + +DEFINE_MUTEX(ist30xx_mutex); + +volatile bool ist30xx_irq_working = false; +static bool ist30xx_initialized = 0; +struct ist30xx_data *ts_data; +static struct delayed_work work_reset_check; +#if IST30XX_EVENT_MODE +static struct delayed_work work_noise_protect, work_debug_algorithm; +#endif + +static int ist30xx_ta_status = -1; +static int ist30xx_noise_mode = -1; + +#if IST30XX_INTERNAL_BIN && IST30XX_UPDATE_BY_WORKQUEUE +static struct delayed_work work_fw_update; +#endif + +int ist30xx_report_rate = -1; +int ist30xx_idle_rate = -1; + +u32 event_ms = 0, timer_ms = 0; +int ist30xx_scan_retry = 0; + +#if IST30XX_EVENT_MODE +static struct timer_list event_timer; +static struct timespec t_current; // ns +int timer_period_ms = 500; // 0.5sec +# define EVENT_TIMER_INTERVAL (HZ * timer_period_ms / 1000) +#endif // IST30XX_EVENT_MODE + +#if IST30XX_DEBUG +extern TSP_INFO ist30xx_tsp_info; +extern TKEY_INFO ist30xx_tkey_info; +#endif + +int ist30xx_dbg_level = IST30XX_DEBUG_LEVEL; +void tsp_printk(int level, const char *fmt, ...) +{ + struct va_format vaf; + va_list args; + int r; + + if (ist30xx_dbg_level < level) + return; + + va_start(args, fmt); + + vaf.fmt = fmt; + vaf.va = &args; + + r = printk("%s %pV", IST30XX_DEBUG_TAG, &vaf); + + va_end(args); +} + +long get_milli_second(void) +{ +#if IST30XX_EVENT_MODE + ktime_get_ts(&t_current); + + return t_current.tv_sec * 1000 + t_current.tv_nsec / 1000000; +#else + return 0; +#endif // IST30XX_EVENT_MODE +} + +int ist30xx_intr_wait(long ms) +{ + long start_ms = get_milli_second(); + long curr_ms = 0; + + while (1) { + if (!ist30xx_irq_working) + break; + + curr_ms = get_milli_second(); + if ((curr_ms < 0) || (start_ms < 0) || (curr_ms - start_ms > ms)) { + tsp_info("%s() timeout(%dms)\n", __func__, ms); + return -EPERM; + } + + msleep(2); + } + return 0; +} + + +void ist30xx_disable_irq(struct ist30xx_data *data) +{ + if (likely(data->irq_enabled)) { + ist30xx_tracking(TRACK_INTR_DISABLE); + disable_irq(data->client->irq); + data->irq_enabled = 0; + data->status.event_mode = false; + } +} + +void ist30xx_enable_irq(struct ist30xx_data *data) +{ + if (likely(!data->irq_enabled)) { + ist30xx_tracking(TRACK_INTR_ENABLE); + enable_irq(data->client->irq); + msleep(10); + data->irq_enabled = 1; + data->status.event_mode = true; + } +} + + +int ist30xx_max_error_cnt = MAX_ERR_CNT; +int ist30xx_error_cnt = 0; +void ist30xx_scheduled_reset(void) +{ + if (ist30xx_initialized) + schedule_delayed_work(&work_reset_check, 0); +} + +static void ist30xx_request_reset(void) +{ + ist30xx_error_cnt++; + if (unlikely(ist30xx_error_cnt >= ist30xx_max_error_cnt)) { + tsp_info("%s()\n", __func__); + ist30xx_scheduled_reset(); + ist30xx_error_cnt = 0; + } +} + + +#define NOISE_MODE_TA (0) +#define NOISE_MODE_CALL (1) +#define NOISE_MODE_COVER (2) +void ist30xx_start(struct ist30xx_data *data) +{ + if (ist30xx_initialized) { + ist30xx_noise_mode &= ~(1 << NOISE_MODE_TA); + ist30xx_noise_mode |= (ist30xx_ta_status << NOISE_MODE_TA); + + ist30xx_tracking(ist30xx_ta_status ? + TRACK_CMD_TACON : TRACK_CMD_TADISCON); + + ist30xx_write_cmd(data->client, CMD_SET_NOISE_MODE, ist30xx_noise_mode); + +#if IST30XX_EVENT_MODE + mod_timer(&event_timer, get_jiffies_64() + EVENT_TIMER_INTERVAL); +#endif + } + tsp_info("%s(), mode : 0x%x\n", __func__, ist30xx_noise_mode); + + if (ist30xx_report_rate >= 0) { + ist30xx_write_cmd(data->client, CMD_SET_REPORT_RATE, ist30xx_report_rate); + tsp_info(" reporting rate : %dus\n", ist30xx_report_rate); + } + + if (ist30xx_idle_rate >= 0) { + ist30xx_write_cmd(data->client, CMD_SET_IDLE_TIME, ist30xx_idle_rate); + tsp_info(" reporting rate : %dus\n", ist30xx_idle_rate); + } + + ist30xx_cmd_start_scan(data->client); +} + + +int ist30xx_get_ver_info(struct ist30xx_data *data) +{ + int ret; + + data->fw.prev_core_ver = data->fw.core_ver; + data->fw.prev_param_ver = data->fw.param_ver; + data->fw.core_ver = data->fw.param_ver = 0; + + ret = ist30xx_read_cmd(data->client, CMD_GET_FW_VER, &data->fw.core_ver); + if (unlikely(ret)) + return ret; + + ret = ist30xx_read_cmd(data->client, CMD_GET_PARAM_VER, &data->fw.param_ver); + if (unlikely(ret)) + return ret; + + ret = ist30xx_read_cmd(data->client, CMD_GET_SUB_VER, &data->fw.sub_ver); + if (unlikely(ret)) + return ret; + + tsp_info("IC version read core: %x, param: %x, sub: %x\n", + data->fw.core_ver, data->fw.param_ver, data->fw.sub_ver); + + return 0; +} + + +int ist30xx_init_touch_driver(struct ist30xx_data *data) +{ + int ret = 0; + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + + ret = ist30xx_cmd_run_device(data->client, true); + if (unlikely(ret)) + goto init_touch_end; + + ist30xx_get_ver_info(data); + +init_touch_end: + ist30xx_start(data); + + ist30xx_enable_irq(data); + mutex_unlock(&ist30xx_mutex); + + return ret; +} + + +#if IST30XX_DEBUG +void ist30xx_print_info(void) +{ + TSP_INFO *tsp = &ist30xx_tsp_info; + TKEY_INFO *tkey = &ist30xx_tkey_info; + + tsp_info("*** TSP/TKEY info ***\n"); + tsp_info("tscn dir swap: %d, flip x: %d, y: %d\n", + tsp->dir.swap_xy, tsp->dir.flip_x, tsp->dir.flip_y); + tsp_info("tscn ch_num tx: %d, rx: %d\n", + tsp->ch_num.tx, tsp->ch_num.rx); + tsp_info("tscn width: %d, height: %d\n", + tsp->width, tsp->height); + tsp_info("tkey enable: %d, key num: %d, axis rx: %d \n", + tkey->enable, tkey->key_num, tkey->axis_rx); + tsp_info("tkey ch_num[0] %d, [1] %d, [2] %d, [3] %d, [4] %d\n", + tkey->ch_num[0], tkey->ch_num[1], tkey->ch_num[2], + tkey->ch_num[3], tkey->ch_num[4]); +} +#endif + +#define CALIB_MSG_MASK (0xF0000FFF) +#define CALIB_MSG_VALID (0x80000CAB) +#define TRACKING_INTR_VALID (0x127EA597) +u32 tracking_intr_value = TRACKING_INTR_VALID; +extern const u8 *ts_fw; +extern u32 ts_fw_size; +int ist30xx_get_info(struct ist30xx_data *data) +{ + int ret; + u32 calib_msg; + u32 ms; + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + +#if IST30XX_INTERNAL_BIN +# if IST30XX_DEBUG + ist30xx_get_tsp_info(data); + ist30xx_get_tkey_info(data); +#endif // IST30XX_DEBUG +#else + ret = ist30xx_cmd_run_device(data->client, false); + if (unlikely(ret)) + goto get_info_end; + + ret = ist30xx_get_ver_info(data); + if (unlikely(ret)) + goto get_info_end; + +#if IST30XX_DEBUG + ret = ist30xx_tsp_update_info(); + if (unlikely(ret)) + goto get_info_end; + + ret = ist30xx_tkey_update_info(); + if (unlikely(ret)) + goto get_info_end; +#endif // IST30XX_DEBUG +#endif // IST30XX_INTERNAL_BIN + +#if IST30XX_DEBUG + ist30xx_print_info(); + data->max_fingers = ist30xx_tsp_info.finger_num; + data->max_keys = ist30xx_tkey_info.key_num; +#endif // IST30XX_DEBUG + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_CALIB_RESULT, &calib_msg); + if (likely(ret == 0)) { + tsp_info("calib status: 0x%08x\n", calib_msg); + ms = get_milli_second(); + ist30xx_put_track_ms(ms); + ist30xx_put_track(&tracking_intr_value, 1); + ist30xx_put_track(&calib_msg, 1); + if ((calib_msg & CALIB_MSG_MASK) != CALIB_MSG_VALID || + CALIB_TO_STATUS(calib_msg) > 0) { + ist30xx_calibrate(IST30XX_FW_UPDATE_RETRY); + + ist30xx_cmd_run_device(data->client, true); + } + } + +#if (IST30XX_EVENT_MODE && IST30XX_CHECK_CALIB) + if (likely(!data->status.update)) { + ret = ist30xx_cmd_check_calib(data->client); + if (likely(!ret)) { + data->status.calib = 1; + data->status.calib_msg = 0; + event_ms = (u32)get_milli_second(); + data->status.event_mode = true; + } + } +#else + ist30xx_start(ts_data); +#endif + +#if !(IST30XX_INTERNAL_BIN) +get_info_end: +#endif + if (likely(ret == 0)) + ist30xx_enable_irq(data); + mutex_unlock(&ist30xx_mutex); + + return ret; +} + + +#define PRESS_MSG_MASK (0x01) +#define MULTI_MSG_MASK (0x02) +#define PRESS_MSG_KEY (0x6) + +#define TOUCH_DOWN_MESSAGE ("p") +#define TOUCH_UP_MESSAGE ("r") +#define TOUCH_MOVE_MESSAGE (" ") +bool tsp_touched[IST30XX_MAX_MT_FINGERS] = { false, }; +bool tkey_pressed[IST30XX_MAX_KEYS] = { false, }; + +void print_tsp_event(finger_info *finger) +{ + int idx = finger->bit_field.id - 1; + bool press; +#if TOUCH_BOOSTER + static finger_cnt = 0; +#endif + +#if IST30XX_EXTEND_COORD + press = PRESSED_FINGER(ts_data->t_status, finger->bit_field.id); +#else + press = (finger->bit_field.udmg & PRESS_MSG_MASK) ? true : false; +#endif + if(idx < 0){ + tsp_info("id value is minus! something is wrong...please check FW status!\n"); + return; + } + if (press) { + if (tsp_touched[idx] == false) { // touch down +#if TOUCH_BOOSTER + //if(!finger_cnt) + { + if(!min_handle) + { + min_handle = cpufreq_limit_min_freq(touch_cpufreq_lock, "TSP"); + if (IS_ERR(min_handle)) { + printk(KERN_ERR "[TSP] cannot get cpufreq_min lock %lu(%d)\n", + touch_cpufreq_lock, PTR_ERR(min_handle)); + min_handle = NULL; + } + _store_cpu_num_min_limit(2); + tsp_info("cpu freq on\n"); + } + } + finger_cnt ++; +#endif +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + tsp_info("%s%d (%d, %d)\n", + TOUCH_DOWN_MESSAGE, finger->bit_field.id, + finger->bit_field.x, finger->bit_field.y); +#else + tsp_info("touch down\n"); +#endif + tsp_touched[idx] = true; + } else { // touch move +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + tsp_info("%s%d (%d, %d)\n", + TOUCH_MOVE_MESSAGE, finger->bit_field.id, + finger->bit_field.x, finger->bit_field.y); +#else + tsp_info("touch move\n"); +#endif + } + } else { + if (tsp_touched[idx] == true) { // touch up +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + tsp_info("%s%d (%d, %d)\n", + TOUCH_UP_MESSAGE, finger->bit_field.id, + finger->bit_field.x, finger->bit_field.y); +#else + tsp_info("touch up\n"); +#endif + tsp_touched[idx] = false; +#if TOUCH_BOOSTER + finger_cnt --; + if(!finger_cnt) + { + //printk(KERN_ERR "[TOUCH_BOOSTER]%s %d\n",__func__,__LINE__); + cpufreq_limit_put(min_handle); + min_handle = NULL; + _store_cpu_num_min_limit(1); + tsp_info("cpu freq off\n"); + } +#endif + } + } +} + +void print_tkey_event(int id) +{ +#if IST30XX_EXTEND_COORD + int idx = id - 1; + bool press = PRESSED_KEY(ts_data->t_status, id); + + if (press) { + if (tkey_pressed[idx] == false) { // tkey down + tsp_info("k %s%d \n", TOUCH_DOWN_MESSAGE, id); + tkey_pressed[idx] = true; + } + } else { + if (tkey_pressed[idx] == true) { // tkey up + tsp_info("k %s%d \n", TOUCH_UP_MESSAGE, id); + tkey_pressed[idx] = false; + } + } +#endif +} + + +#if IST30XX_EXTEND_COORD +static void release_finger(int id) +{ + input_mt_slot(ts_data->input_dev, id - 1); + input_mt_report_slot_state(ts_data->input_dev, MT_TOOL_FINGER, false); + + ist30xx_tracking(TRACK_POS_FINGER + id); + tsp_info("%s() %d\n", __func__, id); + + tsp_touched[id - 1] = false; + + input_sync(ts_data->input_dev); +} +#else +static void release_finger(finger_info *finger) +{ + input_mt_slot(ts_data->input_dev, finger->bit_field.id - 1); + input_mt_report_slot_state(ts_data->input_dev, MT_TOOL_FINGER, false); + + ist30xx_tracking(TRACK_POS_FINGER + finger->bit_field.id); +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + tsp_info("%s() %d(%d, %d)\n", __func__, + finger->bit_field.id, finger->bit_field.x, finger->bit_field.y); +#else + tsp_info("%s\n",__func__); +#endif + finger->bit_field.udmg &= ~(PRESS_MSG_MASK); + print_tsp_event(finger); + + finger->bit_field.id = 0; + + input_sync(ts_data->input_dev); +} +#endif + + +#define CANCEL_KEY (0xff) +#define RELEASE_KEY (0) +#if IST30XX_EXTEND_COORD +static void release_key(int id, u8 key_status) +{ + input_report_key(ts_data->input_dev, ist30xx_key_code[id], key_status); + + ist30xx_tracking(TRACK_POS_KEY + id); + tsp_debug("%s() key%d, status: %d\n", __func__, id, key_status); + + tkey_pressed[id - 1] = false; + + input_sync(ts_data->input_dev); +} +#else +static void release_key(finger_info *key, u8 key_status) +{ + int id = key->bit_field.id; + + input_report_key(ts_data->input_dev, ist30xx_key_code[id], key_status); + + ist30xx_tracking(TRACK_POS_KEY + id); +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + tsp_info("%s() key%d, event: %d, status: %d\n", __func__, + id, key->bit_field.w, key_status); +#else + tsp_info("%s\n",__func__); +#endif + key->bit_field.id = 0; + + input_sync(ts_data->input_dev); +} +#endif + +static void clear_input_data(struct ist30xx_data *data) +{ +#if IST30XX_EXTEND_COORD + int id = 1; + u32 status; + + status = PARSE_FINGER_STATUS(data->t_status); + while (status) { + if (status & 1) + release_finger(id); + status >>= 1; + id++; + } + + id = 1; + status = PARSE_KEY_STATUS(data->t_status); + while (status) { + if (status & 1) + release_key(id, RELEASE_KEY); + status >>= 1; + id++; + } + data->t_status = 0; +#else + int i; + finger_info *fingers = (finger_info *)data->prev_fingers; + finger_info *keys = (finger_info *)data->prev_keys; + + for (i = 0; i < data->num_fingers; i++) { + if (fingers[i].bit_field.id == 0) + continue; + + if (fingers[i].bit_field.udmg & PRESS_MSG_MASK) + release_finger(&fingers[i]); + } + + for (i = 0; i < data->num_keys; i++) { + if (keys[i].bit_field.id == 0) + continue; + + if (keys[i].bit_field.w == PRESS_MSG_KEY) + release_key(&keys[i], RELEASE_KEY); + } +#endif +} + +static int check_report_fingers(struct ist30xx_data *data, int finger_counts) +{ + int i; + finger_info *fingers = (finger_info *)data->fingers; + +#if IST30XX_EXTEND_COORD + /* current finger info */ + for (i = 0; i < finger_counts; i++) { + if (unlikely((fingers[i].bit_field.x > IST30XX_MAX_X) || + (fingers[i].bit_field.y > IST30XX_MAX_Y))) { + tsp_warn("Invalid touch data - %d: %d(%d, %d), 0x%08x\n", i, + fingers[i].bit_field.id, + fingers[i].bit_field.x, + fingers[i].bit_field.y, + fingers[i].full_field); + + fingers[i].bit_field.id = 0; + ist30xx_tracking(TRACK_POS_UNKNOWN); + return -EPERM; + } + } +#else + int j; + bool valid_id; + finger_info *prev_fingers = (finger_info *)data->prev_fingers; + + /* current finger info */ + for (i = 0; i < finger_counts; i++) { + if (unlikely((fingers[i].bit_field.id == 0) || + (fingers[i].bit_field.id > data->max_fingers) || + (fingers[i].bit_field.x > IST30XX_MAX_X) || + (fingers[i].bit_field.y > IST30XX_MAX_Y))) { + tsp_warn("Invalid touch data - %d: %d(%d, %d), 0x%08x\n", i, + fingers[i].bit_field.id, + fingers[i].bit_field.x, + fingers[i].bit_field.y, + fingers[i].full_field); + + fingers[i].bit_field.id = 0; + ist30xx_tracking(TRACK_POS_UNKNOWN); + return -EPERM; + } + } + + /* previous finger info */ + if (data->num_fingers >= finger_counts) { + for (i = 0; i < data->max_fingers; i++) { // prev_fingers + if (prev_fingers[i].bit_field.id != 0 && + (prev_fingers[i].bit_field.udmg & PRESS_MSG_MASK)) { + valid_id = false; + for (j = 0; j < data->max_fingers; j++) { // fingers + if ((prev_fingers[i].bit_field.id) == + (fingers[j].bit_field.id)) { + valid_id = true; + break; + } + } + if (valid_id == false) + release_finger(&prev_fingers[i]); + } + } + } +#endif + + return 0; +} + +#if IST30XX_EXTEND_COORD +static int check_valid_coord(u32 *msg, int cnt) +{ + int ret = 0; + u8 *buf = (u8 *)msg; + u8 chksum1 = msg[0] >> 24; + u8 chksum2 = 0; + + msg[0] &= 0x00FFFFFF; + + cnt *= IST30XX_DATA_LEN; + + while (cnt--) + chksum2 += *buf++; + + if (chksum1 != chksum2) { + tsp_err("intr chksum: %02x, %02x\n", chksum1, chksum2); + ret = -EPERM; + } + + return (chksum1 == chksum2) ? 0 : -EPERM; +} +#endif + + +static void report_input_data(struct ist30xx_data *data, int finger_counts, int key_counts) +{ + int id; + bool press = false; + finger_info *fingers = (finger_info *)data->fingers; + +#if IST30XX_EXTEND_COORD + int idx = 0; + u32 status; + + status = PARSE_FINGER_STATUS(data->t_status); + for (id = 0; id < data->max_fingers; id++) { + press = (status & (1 << id)) ? true : false; + + input_mt_slot(data->input_dev, id); + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, press); + + fingers[idx].bit_field.id = id + 1; + print_tsp_event(&fingers[idx]); + + if (press == false) + continue; + + input_report_abs(data->input_dev, ABS_MT_POSITION_X, + fingers[idx].bit_field.x); + input_report_abs(data->input_dev, ABS_MT_POSITION_Y, + fingers[idx].bit_field.y); + input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, + fingers[idx].bit_field.area); + idx++; + } + +#if IST30XX_USE_KEY + status = PARSE_KEY_STATUS(data->t_status); + for (id = 0; id < data->max_keys; id++) { + press = (status & (1 << id)) ? true : false; + + input_report_key(data->input_dev, ist30xx_key_code[id+1], press); + + print_tkey_event(id + 1); + } +#endif // IST30XX_USE_KEY + +#else // IST30XX_EXTEND_COORD + int i; + + memset(data->prev_fingers, 0, sizeof(data->prev_fingers)); + + for (i = 0; i < finger_counts; i++) { + press = (fingers[i].bit_field.udmg & PRESS_MSG_MASK) ? true : false; + + print_tsp_event(&fingers[i]); + + input_mt_slot(data->input_dev, fingers[i].bit_field.id - 1); + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, press); + + if (press) { + input_report_abs(data->input_dev, ABS_MT_POSITION_X, + fingers[i].bit_field.x); + input_report_abs(data->input_dev, ABS_MT_POSITION_Y, + fingers[i].bit_field.y); + input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, + fingers[i].bit_field.w); + } + + data->prev_fingers[i] = fingers[i]; + } + +#if IST30XX_USE_KEY + for (i = finger_counts; i < finger_counts + key_counts; i++) { + id = fingers[i].bit_field.id; + press = (fingers[i].bit_field.w == PRESS_MSG_KEY) ? true : false; +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + tsp_info("key(%08x) id: %d, press: %d, val: (%d, %d)\n", + fingers[i].full_field, id, press, + fingers[i].bit_field.x, fingers[i].bit_field.y); +#else + tsp_info("key press: %d\n",press); +#endif + input_report_key(data->input_dev, ist30xx_key_code[id], press); + + data->prev_keys[id - 1] = fingers[i]; + } +#endif // IST30XX_USE_KEY + + data->num_fingers = finger_counts; + data->num_keys = key_counts; +#endif // IST30XX_EXTEND_COORD + + ist30xx_error_cnt = 0; + ist30xx_scan_retry = 0; + + input_sync(data->input_dev); +} + +/* + * CMD : CMD_GET_COORD + * + * IST30XX_EXTEND_COORD == 0 (IST3026, IST3032, IST3026B, IST3032B) + * + * [31:30] [29:26] [25:16] [15:10] [9:0] + * Multi(1st) UDMG Rsvd. NumOfKey Rsvd. NumOfFinger + * Single & UDMG ID X Area Y + * Multi(2nd) + * + * UDMG [31] 0/1 : single/multi + * UDMG [30] 0/1 : unpress/press + * + * IST30XX_EXTEND_COORD == 1 (IST3038, IST3044) + * + * 1st [31:24] [23:21] [20:16] [15:12] [11:10] [9:0] + * '0x71' KeyCnt KeyStatus FingerCnt Rsvd. FingerStatus + * 2nd [31:28] [27:24] [23:12] [11:0] + * ID Area X Y + */ +u32 intr_debug_addr = 0; +u32 intr_debug_size = 0; +static irqreturn_t ist30xx_irq_thread(int irq, void *ptr) +{ + int i, ret; + int key_cnt, finger_cnt, read_cnt; + struct ist30xx_data *data = ts_data; + +#if EXTEND_COORD_CHECKSUM + u32 msg[IST30XX_MAX_MT_FINGERS + 1]; + int offset = 1; +#else + u32 msg[IST30XX_MAX_MT_FINGERS]; + int offset = 0; +#endif + u32 ms; + + ist30xx_irq_working = true; + + if (unlikely(!data->irq_enabled)) + goto irq_end; + + ms = get_milli_second(); +#if (EXTEND_COORD_CHECKSUM == 0) + if (unlikely((ms >= event_ms) && (ms - event_ms < 6))) // Noise detect + goto irq_end; +#endif + + memset(msg, 0, sizeof(msg)); + + ret = ist30xx_get_position(data->client, msg, 1); + if (unlikely(ret)) + goto irq_err; + + tsp_verb("intr msg: 0x%08x\n", *msg); + + if (unlikely(*msg == 0xE11CE970)) // TSP IC Exception + goto irq_ic_err; + +#if (IST30XX_EXTEND_COORD == 0) + if (unlikely(*msg == 0 || *msg == 0xFFFFFFFF || *msg == 0x2FFF03FF || + *msg == 0x30003000 || *msg == 0x300B300B)) // Unknown CMD + goto irq_err; +#endif + + event_ms = ms; + ist30xx_put_track_ms(event_ms); + ist30xx_put_track(&tracking_intr_value, 1); + ist30xx_put_track(msg, 1); + + if (unlikely((*msg & CALIB_MSG_MASK) == CALIB_MSG_VALID)) { + data->status.calib_msg = *msg; + tsp_info("calib status: 0x%08x\n", data->status.calib_msg); + goto irq_end; + } + + memset(data->fingers, 0, sizeof(data->fingers)); + +#if IST30XX_EXTEND_COORD + /* Unknown interrupt data for extend coordinate */ +#if EXTEND_COORD_CHECKSUM + if (unlikely(!CHECK_INTR_STATUS3(*msg))) + goto irq_err; +#else + if (unlikely(!CHECK_INTR_STATUS1(*msg) || !CHECK_INTR_STATUS2(*msg))) + goto irq_err; +#endif + + data->t_status = *msg; + key_cnt = PARSE_KEY_CNT(data->t_status); + finger_cnt = PARSE_FINGER_CNT(data->t_status); +#else + data->fingers[0].full_field = *msg; + key_cnt = 0; + finger_cnt = 1; +#endif + + read_cnt = finger_cnt; + +#if (IST30XX_EXTEND_COORD == 0) + if (data->fingers[0].bit_field.udmg & MULTI_MSG_MASK) { + key_cnt = data->fingers[0].bit_field.x; + finger_cnt = data->fingers[0].bit_field.y; + read_cnt = finger_cnt + key_cnt; +#endif + { + if (unlikely((finger_cnt > data->max_fingers) || + (key_cnt > data->max_keys))) { + tsp_warn("Invalid touch count - finger: %d(%d), key: %d(%d)\n", + finger_cnt, data->max_fingers, key_cnt, data->max_keys); + goto irq_err; + } + + //tsp_info("read: %d (f:%d, k:%d)\n", read_cnt, finger_cnt, key_cnt); + if (read_cnt > 0) { +#if I2C_BURST_MODE + ret = ist30xx_get_position(data->client, &msg[offset], read_cnt); + if (unlikely(ret)) + goto irq_err; + + for (i = 0; i < read_cnt; i++) + data->fingers[i].full_field = msg[i + offset]; +#else + for (i = 0; i < read_cnt; i++) { + ret = ist30xx_get_position(data->client, &msg[i + offset], 1); + if (unlikely(ret)) + goto irq_err; + + data->fingers[i].full_field = msg[i + offset]; + } +#endif // I2C_BURST_MODE + + ist30xx_put_track(msg, read_cnt); + } + } + +#if (IST30XX_EXTEND_COORD == 0) + } +#endif + +#if EXTEND_COORD_CHECKSUM + ret = check_valid_coord(&msg[0], read_cnt + 1); + if (unlikely(ret < 0)) + goto irq_err; +#endif + + if (unlikely(check_report_fingers(data, finger_cnt))) + goto irq_end; + +#if IST30XX_EXTEND_COORD + report_input_data(data, finger_cnt, key_cnt); +#else + if (likely(read_cnt > 0)) + report_input_data(data, finger_cnt, key_cnt); +#endif + + if (intr_debug_addr > 0 && intr_debug_size > 0) { + ret = ist30xxb_burst_read(ts_data->client, + intr_debug_addr, &msg[0], intr_debug_size); + for (i = 0; i < intr_debug_size; i++) + tsp_debug("\t%08x\n", msg[i]); + } + + goto irq_end; + +irq_err: + tsp_err("intr msg: 0x%08x, ret: %d\n", msg[0], ret); + ist30xx_request_reset(); +irq_end: + ist30xx_irq_working = false; + event_ms = (u32)get_milli_second(); + return IRQ_HANDLED; + +irq_ic_err: + tsp_err("Occured IC exception\n"); + ist30xx_scheduled_reset(); + ist30xx_irq_working = false; + event_ms = (u32)get_milli_second(); + return IRQ_HANDLED; +} + + +#ifdef CONFIG_HAS_EARLYSUSPEND +#define ist30xx_suspend NULL +#define ist30xx_resume NULL +static void ist30xx_early_suspend(struct early_suspend *h) +{ + struct ist30xx_data *data = container_of(h, struct ist30xx_data, + early_suspend); + +#if IST30XX_EVENT_MODE + del_timer_sync(&event_timer); +#endif + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + ist30xx_internal_suspend(data); + clear_input_data(data); + +#if TOUCH_BOOSTER + if(min_handle) + { + printk(KERN_ERR"[TSP] %s %d:: OOPs, Cpu was not in Normal Freq..\n", __func__, __LINE__); + + if (cpufreq_limit_put(min_handle) < 0) { + printk(KERN_ERR "[TSP] Error in scaling down cpu frequency\n"); + } + + min_handle = NULL; + tsp_info("cpu freq off\n"); + } +#endif + + mutex_unlock(&ist30xx_mutex); +} +static void ist30xx_late_resume(struct early_suspend *h) +{ + struct ist30xx_data *data = container_of(h, struct ist30xx_data, + early_suspend); + + mutex_lock(&ist30xx_mutex); + ist30xx_internal_resume(data); + ist30xx_start(data); + ist30xx_enable_irq(data); + mutex_unlock(&ist30xx_mutex); +} +#else +static int ist30xx_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct ist30xx_data *data = i2c_get_clientdata(client); + ist30xx_internal_suspend(data); +#if TOUCH_BOOSTER + if(min_handle) + { + printk(KERN_ERR"[TSP] %s %d:: OOPs, Cpu was not in Normal Freq..\n", __func__, __LINE__); + + if (cpufreq_limit_put(min_handle) < 0) { + printk(KERN_ERR "[TSP] Error in scaling down cpu frequency\n"); + } + + min_handle = NULL; + tsp_info("cpu freq off\n"); + } +#endif + + return 0; +} +static int ist30xx_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct ist30xx_data *data = i2c_get_clientdata(client); + + return ist30xx_internal_resume(data); +} +#endif // CONFIG_HAS_EARLYSUSPEND + +static void ist30xx_shutdown(struct i2c_client *client) +{ + struct ist30xx_data *data = i2c_get_clientdata(client); + + if(ist30xx_initialized) + { + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + ist30xx_internal_suspend(data); + mutex_unlock(&ist30xx_mutex); + + del_timer_sync(&event_timer); + } + +} + +/* Enable the ta mode in mfd and enable in driver*/ +void ist30xx_set_ta_mode(bool charging) +{ + tsp_info("%s(), charging = %d\n", __func__, charging); + + if (unlikely(charging == ist30xx_ta_status)) + return; + + if (unlikely(ist30xx_noise_mode == -1)) { + ist30xx_ta_status = charging ? 1 : 0; + return; + } + + ist30xx_ta_status = charging ? 1 : 0; + + ist30xx_scheduled_reset(); +} +EXPORT_SYMBOL(ist30xx_set_ta_mode); + +void ist30xx_set_call_mode(int mode) +{ + tsp_info("%s(), mode = %d\n", __func__, mode); + + if (unlikely(mode == ((ist30xx_noise_mode >> NOISE_MODE_CALL) & 1))) + return; + + ist30xx_noise_mode &= ~(1 << NOISE_MODE_CALL); + if (mode) + ist30xx_noise_mode |= (1 << NOISE_MODE_CALL); + + ist30xx_scheduled_reset(); + } +EXPORT_SYMBOL(ist30xx_set_call_mode); + +void ist30xx_set_cover_mode(int mode) +{ + tsp_info("%s(), mode = %d\n", __func__, mode); + + if (unlikely(mode == ((ist30xx_noise_mode >> NOISE_MODE_COVER) & 1))) + return; + + ist30xx_noise_mode &= ~(1 << NOISE_MODE_COVER); + if (mode) + ist30xx_noise_mode |= (1 << NOISE_MODE_COVER); + + ist30xx_scheduled_reset(); +} +EXPORT_SYMBOL(ist30xx_set_cover_mode); + +static void reset_work_func(struct work_struct *work) +{ + if (unlikely((ts_data == NULL) || (ts_data->client == NULL))) + return; + + tsp_info("Request reset function\n"); + + if (likely((ist30xx_initialized == 1) && (ts_data->status.power == 1) && + (ts_data->status.update != 1) && (ts_data->status.calib != 1))) { + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(ts_data); + + clear_input_data(ts_data); + + ist30xx_cmd_run_device(ts_data->client, true); + + ist30xx_start(ts_data); + + ist30xx_enable_irq(ts_data); + mutex_unlock(&ist30xx_mutex); + } +} + +#if IST30XX_INTERNAL_BIN && IST30XX_UPDATE_BY_WORKQUEUE +static void fw_update_func(struct work_struct *work) +{ + if (unlikely((ts_data == NULL) || (ts_data->client == NULL))) + return; + + tsp_info("FW update function\n"); + + if (likely(ist30xx_auto_bin_update(ts_data))) + ist30xx_disable_irq(ts_data); +} +#endif // IST30XX_INTERNAL_BIN && IST30XX_UPDATE_BY_WORKQUEUE + + +#if IST30XX_EVENT_MODE +u32 ist30xx_max_scan_retry = 2; +u32 ist30xx_scan_count = 0; +u32 ist30xx_algr_addr = 0, ist30xx_algr_size = 0; + +#define SCAN_STATUS_MAGIC (0x3C000000) +#define SCAN_STATUS_MASK (0xFF000000) +#define FINGER_CNT_MASK (0x00F00000) +#define SCAN_CNT_MASK (0x000FFFFF) +#define GET_FINGER_CNT(k) ((k & FINGER_CNT_MASK) >> 20) +#define GET_SCAN_CNT(k) (k & SCAN_CNT_MASK) + +static void noise_work_func(struct work_struct *work) +{ +#if IST30XX_NOISE_MODE + int ret; + u32 scan_status = 0; +#if (IST30XX_EXTEND_COORD == 0) + int i; +#endif + + ret = ist30xx_read_cmd(ts_data->client, IST30XXB_MEM_COUNT, &scan_status); + if (unlikely(ret)) { + tsp_warn("Mem scan count read fail!\n"); + goto retry_timer; + } + + ist30xx_put_track_ms(timer_ms); + ist30xx_put_track(&scan_status, 1); + + tsp_verb("scan status: 0x%x\n", scan_status); + + /* Check valid scan count */ + if (unlikely((scan_status & SCAN_STATUS_MASK) != SCAN_STATUS_MAGIC)) { + tsp_warn("Scan status is not corrected! (0x%08x)\n", scan_status); + goto retry_timer; + } + + /* Status of IC is idle */ + if (GET_FINGER_CNT(scan_status) == 0) { +#if IST30XX_EXTEND_COORD + if ((PARSE_FINGER_CNT(ts_data->t_status) > 0) || + (PARSE_KEY_CNT(ts_data->t_status) > 0)) + clear_input_data(ts_data); +#else + for (i = 0; i < IST30XX_MAX_MT_FINGERS; i++) { + if (ts_data->prev_fingers[i].bit_field.id == 0) + continue; + + if (ts_data->prev_fingers[i].bit_field.udmg & PRESS_MSG_MASK) { + tsp_warn("prev_fingers: 0x%08x\n", + ts_data->prev_fingers[i].full_field); + release_finger(&ts_data->prev_fingers[i]); + } + } + + for (i = 0; i < IST30XX_MAX_MT_FINGERS; i++) { + if (ts_data->prev_keys[i].bit_field.id == 0) + continue; + + if (ts_data->prev_keys[i].bit_field.w == PRESS_MSG_KEY) { + tsp_warn("prev_keys: 0x%08x\n", + ts_data->prev_keys[i].full_field); + release_key(&ts_data->prev_keys[i], RELEASE_KEY); + } + } +#endif + } + + scan_status &= SCAN_CNT_MASK; + + /* Status of IC is lock-up */ + if (unlikely(scan_status == ist30xx_scan_count)) { + tsp_warn("TSP IC is not responded! (0x%08x)\n", scan_status); + goto retry_timer; + } else { + ist30xx_scan_retry = 0; + } + + ist30xx_scan_count = scan_status; + + return; + +retry_timer: + ist30xx_scan_retry++; + tsp_warn("Retry scan status!(%d)\n", ist30xx_scan_retry); + + if (unlikely(ist30xx_scan_retry == ist30xx_max_scan_retry)) { + ist30xx_scheduled_reset(); + ist30xx_scan_retry = 0; + } +#endif // IST30XX_NOISE_MODE +} + +static void debug_work_func(struct work_struct *work) +{ + int ret = -EPERM; + ALGR_INFO algr; + u32 *buf32 = (u32 *)&algr; + + ret = ist30xxb_burst_read(ts_data->client, + ist30xx_algr_addr, (u32 *)&algr, ist30xx_algr_size); + if (unlikely(ret)) { + tsp_warn("Algorithm mem addr read fail!\n"); + return; + } + + ist30xx_put_track(buf32, ist30xx_algr_size); + + tsp_debug(" 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x\n", + buf32[0], buf32[1], buf32[2], buf32[3], buf32[4]); + + tsp_debug(" Scanstatus: %x\n", algr.scan_status); + tsp_debug(" TouchCnt: %d\n", algr.touch_cnt); + tsp_debug(" IntlTouchCnt: %d\n", algr.intl_touch_cnt); + tsp_debug(" StatusFlag: %d\n", algr.status_flag); + tsp_debug(" RAWPeakMax: %d\n", algr.raw_peak_max); + tsp_debug(" RAWPeakMin: %d\n", algr.raw_peak_min); + tsp_debug(" FLTPeakMax: %d\n", algr.flt_peak_max); + tsp_debug(" AdptThreshold: %d\n", algr.adpt_threshold); + tsp_debug(" KeyRawData0: %d\n", algr.key_raw_data[0]); + tsp_debug(" KeyRawData1: %d\n", algr.key_raw_data[1]); +} + +void timer_handler(unsigned long data) +{ + struct ist30xx_status *status = &ts_data->status; + + if (ist30xx_irq_working) + goto restart_timer; + + if (status->event_mode) { + if (likely((status->power == 1) && (status->update != 1))) { + timer_ms = (u32)get_milli_second(); + if (unlikely(status->calib == 1)) { + if (timer_ms - event_ms >= 3000) { // 3second + tsp_debug("calibration timeout over 3sec\n"); + schedule_delayed_work(&work_reset_check, 0); + status->calib = 0; + } + } else if (likely(status->noise_mode)) { + if (timer_ms - event_ms > 100) // 100ms after last interrupt + schedule_delayed_work(&work_noise_protect, 0); + } + + if ((ist30xx_algr_addr >= IST30XXB_ACCESS_ADDR) && + (ist30xx_algr_size > 0)) + schedule_delayed_work(&work_debug_algorithm, 0); + } + } + +restart_timer: + mod_timer(&event_timer, get_jiffies_64() + EVENT_TIMER_INTERVAL); +} +#endif // IST30XX_EVENT_MODE + + +static int __init ist30xx_probe(struct i2c_client * client, + const struct i2c_device_id * id) +{ + int ret; + int retry = 3; + struct ist30xx_data *data; + struct input_dev *input_dev; + int ist_gpio = 0; + + tsp_info ("IST3038 Probe Called\n"); + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + printk(KERN_INFO "i2c_check_functionality error\n"); + return -EIO; + } + + tsp_info("%s(), the i2c addr=0x%x", __func__, client->addr); + + data = kzalloc(sizeof(*data), GFP_KERNEL); + if (!data) + return -ENOMEM; + +#ifdef CONFIG_OF + + struct device_node *np = client->dev.of_node; + + tsp_info("[TSP] the client->dev.of_node=0x%x\n", client->dev.of_node); + + if (client->dev.of_node){ + ist_gpio = of_get_gpio(np, 0); + printk("[TSP] gpio id=%d", ist_gpio); + } +#endif + + input_dev = input_allocate_device(); + if (unlikely(!input_dev)) { + ret = -ENOMEM; + tsp_err("%s(), input_allocate_device failed (%d)\n", __func__, ret); + goto err_alloc_dev; + } + +#ifndef CONFIG_OF + ist_gpio = 82; +#endif + + /* configure touchscreen interrupt gpio */ + ret = gpio_request(ist_gpio, "ist30xx_irq_gpio"); + printk("[TSP]request gpio id = %d\n", ist_gpio); + if (ret) { + tsp_err("unable to request gpio.(%s)\r\n",input_dev->name); + goto err_init_drv; + } + + client->irq = gpio_to_irq(ist_gpio); + printk("[TSP] client->irq : %d\n", client->irq); + + data->max_fingers = data->max_keys = IST30XX_MAX_MT_FINGERS; + data->irq_enabled = 1; + data->client = client; + data->input_dev = input_dev; + i2c_set_clientdata(client, data); + + input_mt_init_slots(input_dev, IST30XX_MAX_MT_FINGERS,0); + + input_dev->name = "ist30xx_ts_input"; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + + set_bit(EV_ABS, input_dev->evbit); + set_bit(INPUT_PROP_DIRECT, input_dev->propbit); + + input_set_abs_params(input_dev, ABS_MT_POSITION_X, 0, IST30XX_MAX_X, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, 0, IST30XX_MAX_Y, 0, 0); + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, IST30XX_MAX_W, 0, 0); + +#if IST30XX_USE_KEY + { + int i; + set_bit(EV_KEY, input_dev->evbit); + set_bit(EV_SYN, input_dev->evbit); + for (i = 1; i < ARRAY_SIZE(ist30xx_key_code); i++) + set_bit(ist30xx_key_code[i], input_dev->keybit); + } +#endif + + input_set_drvdata(input_dev, data); + ret = input_register_device(input_dev); + if (unlikely(ret)) { + input_free_device(input_dev); + goto err_reg_dev; + } + + + ts_data = data; + + ret = ist30xx_init_system(); + if (unlikely(ret)) { + dev_err(&client->dev, "chip initialization failed\n"); + goto err_init_drv; + } + + ret = ist30xx_init_update_sysfs(); + if (unlikely(ret)) + goto err_init_drv; + +#if IST30XX_DEBUG + ret = ist30xx_init_misc_sysfs(); + if (unlikely(ret)) + goto err_init_drv; +#endif + +#if SEC_FACTORY_MODE + ret = sec_fac_cmd_init(data); + if (unlikely(ret)) + goto err_init_drv; + ret = sec_touch_sysfs(data); + if (unlikely(ret)) + goto err_init_drv; +#endif + +#if IST30XX_TRACKING_MODE + ret = ist30xx_init_tracking_sysfs(); + if (unlikely(ret)) + goto err_init_drv; +#endif + + ret = request_threaded_irq(client->irq, NULL, ist30xx_irq_thread, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, "ist30xx_ts", data); + if (unlikely(ret)) + goto err_irq; + //sprd_i2c_ctl_chg_clk(1, 400000); // up h/w i2c 1 400k + ist30xx_disable_irq(data); + + while ((data->chip_id != IST30XXB_CHIP_ID) && + (data->chip_id != IST3038_CHIP_ID)) { + ret = ist30xx_read_cmd(data->client, IST30XXB_REG_CHIPID, &data->chip_id); + if (unlikely(ret)) { + tsp_info("tspid: %x\n", data->chip_id); + ist30xx_reset(); + } + + if (data->chip_id == 0x3000B) data->chip_id = IST30XXB_CHIP_ID; + + if (retry-- == 0) + break; + } + + retry = 3; + while (retry-- > 0) { + ret = ist30xx_read_cmd(data->client, IST30XXB_REG_TSPTYPE, + &data->tsp_type); + + tsp_info("tsptype: %x\n", data->tsp_type); + data->tsp_type = IST30XXB_PARSE_TSPTYPE(data->tsp_type); + + if (likely(ret == 0)) + break; + + data->tsp_type = TSP_TYPE_UNKNOWN; + } + + tsp_info("TSP IC: %x, TSP Vendor: %x\n", data->chip_id, data->tsp_type); + + data->status.event_mode = false; + +#if IST30XX_INTERNAL_BIN +# if IST30XX_UPDATE_BY_WORKQUEUE + INIT_DELAYED_WORK(&work_fw_update, fw_update_func); + schedule_delayed_work(&work_fw_update, IST30XX_UPDATE_DELAY); +# else + ret = ist30xx_auto_bin_update(data); + if (unlikely(ret != 0)) + goto err_irq; +# endif +#endif // IST30XX_INTERNAL_BIN + + if (ist30xx_ta_status < 0) + ist30xx_ta_status = 0; + + if (ist30xx_noise_mode < 0) + ist30xx_noise_mode = 0; + + ret = ist30xx_get_info(data); + tsp_info("Get info: %s\n", (ret == 0 ? "success" : "fail")); + if (ret) + goto err_irq; + + INIT_DELAYED_WORK(&work_reset_check, reset_work_func); +#if IST30XX_EVENT_MODE + INIT_DELAYED_WORK(&work_noise_protect, noise_work_func); + INIT_DELAYED_WORK(&work_debug_algorithm, debug_work_func); +#endif + +#if IST30XX_EVENT_MODE + init_timer(&event_timer); + event_timer.function = timer_handler; + event_timer.expires = jiffies_64 + (EVENT_TIMER_INTERVAL); + + mod_timer(&event_timer, get_jiffies_64() + EVENT_TIMER_INTERVAL); +#endif + +#ifdef CONFIG_HAS_EARLYSUSPEND + data->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + data->early_suspend.suspend = ist30xx_early_suspend; + data->early_suspend.resume = ist30xx_late_resume; + register_early_suspend(&data->early_suspend); +#endif + + ist30xx_initialized = 1; + printk("[TSP] Probe end\n"); + return 0; + +err_irq: + tsp_debug("ChipID: %x\n", data->chip_id); + ist30xx_disable_irq(data); + free_irq(client->irq, data); +err_init_drv: + data->status.event_mode = false; + tsp_err("Error, ist30xx init driver\n"); + ist30xx_power_off(); + input_unregister_device(input_dev); + kfree(data); + kfree(input_dev); + return 0; + +err_reg_dev: +err_alloc_dev: + tsp_err("Error, ist30xx mem free\n"); + kfree(data); + return 0; +} + + +static int __exit ist30xx_remove(struct i2c_client *client) +{ + struct ist30xx_data *data = i2c_get_clientdata(client); + +#ifdef CONFIG_HAS_EARLYSUSPEND + unregister_early_suspend(&data->early_suspend); +#endif + + free_irq(client->irq, data); + ist30xx_power_off(); + + input_unregister_device(data->input_dev); + kfree(data); + + return 0; +} + + +static struct i2c_device_id ist30xx_idtable[] = { + { IST30XX_DEV_NAME, 0 }, + {}, +}; + + +MODULE_DEVICE_TABLE(i2c, ist30xx_idtable); + +#ifdef CONFIG_HAS_EARLYSUSPEND +static const struct dev_pm_ops ist30xx_pm_ops = { + .suspend = ist30xx_suspend, + .resume = ist30xx_resume, +}; +#endif + +#ifdef CONFIG_OF +static const struct of_device_id ist30xxb_ts_of_match[] = { + { .compatible = "Imagis,IST30XX", }, + { } +}; +#endif + +static struct i2c_driver ist30xx_i2c_driver = { + .id_table = ist30xx_idtable, + .probe = ist30xx_probe, + .remove = __exit_p(ist30xx_remove), + .shutdown = ist30xx_shutdown, + .driver = { + .owner = THIS_MODULE, + .name = IST30XX_DEV_NAME, +#ifdef CONFIG_HAS_EARLYSUSPEND + .pm = &ist30xx_pm_ops, +#endif + +#ifdef CONFIG_OF + .of_match_table = ist30xxb_ts_of_match, +#endif + }, +}; + +//extern unsigned int lpm_charge; +static int __init ist30xx_init(void) +{ + //if ( !lpm_charge) + { + printk("[TSP] Imagis init called\n"); + return i2c_add_driver(&ist30xx_i2c_driver); +} + //else + // return 0; +} + + +static void __exit ist30xx_exit(void) +{ + //if ( !lpm_charge) + i2c_del_driver(&ist30xx_i2c_driver); + +} + +module_init(ist30xx_init); +module_exit(ist30xx_exit); + +MODULE_DESCRIPTION("Imagis IST30XX touch driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/ist30xx/ist30xx.h b/drivers/input/touchscreen/ist30xx/ist30xx.h new file mode 100644 index 00000000..27b1fd4a --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/ist30xx.h @@ -0,0 +1,340 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_H__ +#define __IST30XX_H__ + +/* + * Support F/W ver : IST30xxB v3.3 (included tag) + * Support IC : IST3026B, IST3032B, IST3038 + * Release : 2014.01.07 by Ian Bae + */ + +#define IMAGIS_IST30XX (1) /* 3026, 3032 */ +#define IMAGIS_IST30XXB (2) /* 3026B, 3032B */ +#define IMAGIS_IST3038 (3) /* 3038 */ +#define IMAGIS_IST3044 (4) /* 3044 */ + +#define IMAGIS_TSP_IC IMAGIS_IST3038 + +#if ((IMAGIS_TSP_IC == IMAGIS_IST30XX) || (IMAGIS_TSP_IC == IMAGIS_IST30XXB)) +#define IST30XX_EXTEND_COORD (0) /* IST3026, IST3032, IST3038 */ +#elif ((IMAGIS_TSP_IC == IMAGIS_IST3038) || (IMAGIS_TSP_IC == IMAGIS_IST3044)) +#define IST30XX_EXTEND_COORD (1) /* IST3038, IST3044 */ +#endif + +#define I2C_BURST_MODE (1) +#define I2C_MONOPOLY_MODE (0) + +#define IST30XX_EVENT_MODE (1) +#if IST30XX_EVENT_MODE +# define IST30XX_NOISE_MODE (1) +# define IST30XX_TRACKING_MODE (1) +#else +# define IST30XX_NOISE_MODE (0) +# define IST30XX_TRACKING_MODE (0) +#endif + +#define IST30XX_USE_KEY (1) +#define IST30XX_DEBUG (1) + +#define SEC_FACTORY_MODE (1) + +#define IST30XX_DEV_NAME "IST30XX" +#define IST30XX_CHIP_ID (0x30003000) +#define IST30XXA_CHIP_ID (0x300a300a) +#define IST30XXB_CHIP_ID (0x300b300b) +#define IST3038_CHIP_ID (0x30383038) + +#define IST30XX_DEV_ID (0xA0 >> 1) +#define IST30XX_FW_DEV_ID (0xA4 >> 1) + +#define IST30XX_ADDR_LEN (4) +#define IST30XX_DATA_LEN (4) + +#define IST30XX_ISP_CMD_LEN (3) + +#define IST30XX_MAX_MT_FINGERS (10) +#define IST30XX_MAX_KEYS (5) + +#if defined(CONFIG_MACH_TSHARKWSAMSUNG) +#define IST30XX_MAX_X (540) +#define IST30XX_MAX_Y (960) +#elif defined(CONFIG_MACH_CORE3) +#define IST30XX_MAX_X (480) +#define IST30XX_MAX_Y (800) +#else +#define IST30XX_MAX_X (480) +#define IST30XX_MAX_Y (800) +#endif +#define IST30XX_MAX_W (15) + +#define IST30XX (1) +#define IST30XXB (2) + +/* I2C Transfer msg number */ +#define WRITE_CMD_MSG_LEN (1) +#define READ_CMD_MSG_LEN (2) + +#define NORMAL_TEMPERATURE (0) +#define LOW_TEMPERATURE (1) +#define HIGH_TEMPERATURE (2) + +/* Debug message */ +#define DEV_ERR (1) +#define DEV_WARN (2) +#define DEV_INFO (3) +#define DEV_DEBUG (4) +#define DEV_VERB (5) + +#define IST30XX_DEBUG_TAG "[ TSP ]" +//#define IST30XX_DEBUG_LEVEL DEV_INFO +#define IST30XX_DEBUG_LEVEL DEV_VERB + +#define tsp_err(fmt, ...) tsp_printk(DEV_ERR, fmt, ## __VA_ARGS__) +#define tsp_warn(fmt, ...) tsp_printk(DEV_WARN, fmt, ## __VA_ARGS__) +#define tsp_info(fmt, ...) tsp_printk(DEV_INFO, fmt, ## __VA_ARGS__) +#define tsp_debug(fmt, ...) tsp_printk(DEV_DEBUG, fmt, ## __VA_ARGS__) +#define tsp_verb(fmt, ...) tsp_printk(DEV_VERB, fmt, ## __VA_ARGS__) + + +enum ist30xx_commands { + CMD_ENTER_UPDATE = 0x02, + CMD_EXIT_UPDATE = 0x03, + CMD_UPDATE_SENSOR = 0x04, + CMD_UPDATE_CONFIG = 0x05, + CMD_ENTER_REG_ACCESS = 0x07, + CMD_EXIT_REG_ACCESS = 0x08, + CMD_SET_NOISE_MODE = 0x0A, + CMD_START_SCAN = 0x0B, + CMD_ENTER_FW_UPDATE = 0x0C, + CMD_RUN_DEVICE = 0x0D, + CMD_EXEC_MEM_CODE = 0x0E, + CMD_SET_TEST_MODE = 0x0F, + + CMD_CALIBRATE = 0x11, + CMD_USE_IDLE = 0x12, + CMD_USE_DEBUG = 0x13, + CMD_ZVALUE_MODE = 0x15, + CMD_SAME_POSITION = 0x16, + CMD_CHECK_CALIB = 0x1A, + CMD_SET_TEMPER_MODE = 0x1B, + CMD_USE_CORRECT_CP = 0x1C, + CMD_SET_REPORT_RATE = 0x1D, + CMD_SET_IDLE_TIME = 0x1E, + + CMD_GET_COORD = 0x20, + + CMD_GET_CHIP_ID = 0x30, + CMD_GET_FW_VER = 0x31, + CMD_GET_CHECKSUM = 0x32, + CMD_GET_LCD_RESOLUTION = 0x33, + CMD_GET_TSP_CHNUM1 = 0x34, + CMD_GET_PARAM_VER = 0x35, + CMD_GET_SUB_VER = 0x36, + CMD_GET_CALIB_RESULT = 0x37, + CMD_GET_TSP_SWAP_INFO = 0x38, + CMD_GET_KEY_INFO1 = 0x39, + CMD_GET_KEY_INFO2 = 0x3A, + CMD_GET_KEY_INFO3 = 0x3B, + CMD_GET_TSP_CHNUM2 = 0x3C, + CMD_GET_TSP_DIRECTION = 0x3D, + + CMD_GET_TSP_VENDOR = 0x3E, + CMD_GET_TSP_PANNEL_TYPE = 0x40, + + CMD_GET_CHECKSUM_ALL = 0x41, +}; + +#define CMD_FW_UPDATE_MAGIC (0x85FDAE8A) + + +typedef struct _ALGR_INFO { + u32 scan_status; + u8 touch_cnt; + u8 intl_touch_cnt; + u16 status_flag; + + u16 raw_peak_min; + u16 raw_peak_max; + u16 flt_peak_max; + u16 adpt_threshold; + + u16 key_raw_data[6]; +} ALGR_INFO; + +#if IST30XX_EXTEND_COORD +#ifdef defined(CONFIG_MACH_TSHARKWSAMSUNG) //only Tshark0.0 use this +#define EXTEND_COORD_CHECKSUM (1) +#else +#define EXTEND_COORD_CHECKSUM (0) +#endif +#define IST30XX_INTR_STATUS1 (0x71000000) +#define IST30XX_INTR_STATUS2 (0x00000C00) +#define CHECK_INTR_STATUS1(n) (((n & IST30XX_INTR_STATUS1) == IST30XX_INTR_STATUS1) ? 1 : 0) +#define CHECK_INTR_STATUS2(n) (((n & IST30XX_INTR_STATUS2) > 0) ? 0 : 1) +#define CHECK_INTR_STATUS3(n) (((n & IST30XX_INTR_STATUS2) == IST30XX_INTR_STATUS2) ? 1 : 0) +#define PARSE_FINGER_CNT(n) ((n >> 12) & 0xF) +#define PARSE_KEY_CNT(n) ((n >> 21) & 0x7) +#define PARSE_FINGER_STATUS(n) (n & 0x3FF) /* Finger status: [9:0] */ +#define PARSE_KEY_STATUS(n) ((n >> 16) & 0x1F) /* Key status: [20:16] */ + +#define PRESSED_FINGER(s, id) ((s & (1 << (id - 1))) ? true : false) +#define PRESSED_KEY(s, id) ((s & (1 << (16 + id - 1))) ? true : false) +typedef union { + struct { + u32 y : 12; + u32 x : 12; + u32 area : 4; + u32 id : 4; + } bit_field; + u32 full_field; +} finger_info; +#else +#define EXTEND_COORD_CHECKSUM (0) +typedef union { + struct { + u32 y : 10; + u32 w : 6; + u32 x : 10; + u32 id : 4; + u32 udmg : 2; + } bit_field; + u32 full_field; +} finger_info; +#endif // IST30XX_EXTEND_COORD + + +struct ist30xx_status { + int power; + int update; + int calib; + int calib_msg; + bool event_mode; + bool noise_mode; +}; + +struct ist30xx_fw { + u32 prev_core_ver; + u32 prev_param_ver; + u32 core_ver; + u32 param_ver; + u32 sub_ver; + u32 index; + u32 size; + u32 chksum; + u32 buf_size; + u8 * buf; +}; + +struct ist30xx_os { + u32 bin_size; + u32 curve_size; + u8 * bin_buf; + u8 * curve_buf; + u16 open_buf[16 * 16]; // 32channel + u16 short1_buf[16 * 16]; // 32channel + u16 short2_buf[16 * 16]; // 32channel +}; + +#define IST30XX_TAG_MAGIC "ISTV1TAG" +struct ist30xx_tags { + char magic1[8]; + u32 fw_addr; + u32 fw_size; + u32 flag_addr; + u32 flag_size; + u32 cfg_addr; + u32 cfg_size; + u32 sensor1_addr; + u32 sensor1_size; + u32 sensor2_addr; + u32 sensor2_size; + u32 sensor3_addr; + u32 sensor3_size; + u32 chksum; + u32 reserved2; + char magic2[8]; +}; + +struct tsp_platform_data { + int gpio; +}; + +#include "ist30xx_sec.h" +#include +struct ist30xx_data { + struct i2c_client * client; + struct input_dev * input_dev; + struct early_suspend early_suspend; + struct ist30xx_status status; + struct ist30xx_fw fw; + struct ist30xx_tags tags; +#if SEC_FACTORY_MODE + struct sec_factory sec; +#endif + u32 chip_id; + u32 tsp_type; + u32 max_fingers; + u32 max_keys; + u32 irq_enabled; +#if IST30XX_EXTEND_COORD + u32 t_status; +#else + u32 num_fingers; + u32 num_keys; + finger_info prev_fingers[IST30XX_MAX_MT_FINGERS]; + finger_info prev_keys[IST30XX_MAX_MT_FINGERS]; +#endif + finger_info fingers[IST30XX_MAX_MT_FINGERS]; +}; + + +extern struct mutex ist30xx_mutex; +extern int ist30xx_dbg_level; + +void tsp_printk(int level, const char *fmt, ...); +int ist30xx_intr_wait(long ms); + +void ist30xx_enable_irq(struct ist30xx_data *data); +void ist30xx_disable_irq(struct ist30xx_data *data); +void ist30xx_set_ta_mode(bool charging); +void ist30xx_set_cover_mode(int mode); +void ist30xx_start(struct ist30xx_data *data); +int ist30xx_get_ver_info(struct ist30xx_data *data); +int ist30xx_init_touch_driver(struct ist30xx_data *data); + +int ist30xx_get_position(struct i2c_client *client, u32 *buf, u16 len); + +int ist30xx_read_cmd(struct i2c_client *client, u32 cmd, u32 *buf); +int ist30xx_write_cmd(struct i2c_client *client, u32 cmd, u32 val); + +int ist30xx_cmd_run_device(struct i2c_client *client, bool is_reset); +int ist30xx_cmd_start_scan(struct i2c_client *client); +int ist30xx_cmd_calibrate(struct i2c_client *client); +int ist30xx_cmd_check_calib(struct i2c_client *client); +int ist30xx_cmd_update(struct i2c_client *client, int cmd); +int ist30xx_cmd_reg(struct i2c_client *client, int cmd); + +int ist30xx_power_on(void); +int ist30xx_power_off(void); +int ist30xx_reset(void); + +int ist30xx_internal_suspend(struct ist30xx_data *data); +int ist30xx_internal_resume(struct ist30xx_data *data); + +int __init ist30xx_init_system(void); + +#endif // __IST30XX_H__ diff --git a/drivers/input/touchscreen/ist30xx/ist30xx_misc.c b/drivers/input/touchscreen/ist30xx/ist30xx_misc.c new file mode 100644 index 00000000..15d8c4a9 --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/ist30xx_misc.c @@ -0,0 +1,1284 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 + +/* Including the definition of S_IRWXUGO */ +// Can use S_IRUGO for better security. Verify the same. +#include + +#include "ist30xx.h" +#include "ist30xx_update.h" +#include "ist30xx_misc.h" + +#define TSP_CH_SCREEN (1) +#define TSP_CH_KEY (2) + +#define TOUCH_NODE_PARSING_DEBUG (0) + +extern struct ist30xx_data *ts_data; + +TSP_INFO ist30xx_tsp_info; +TKEY_INFO ist30xx_tkey_info; + +static u32 *ist30xx_frame_buf; +static u32 *ist30xx_frame_rawbuf; +static u32 *ist30xx_frame_fltbuf; + + +int ist30xx_tkey_update_info(void) +{ + int ret = 0; + u32 tkey_info1, tkey_info2, tkey_info3; + TKEY_INFO *tkey = &ist30xx_tkey_info; + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_KEY_INFO1, &tkey_info1); + if (unlikely(ret)) return ret; + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_KEY_INFO2, &tkey_info2); + if (unlikely(ret)) return ret; + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_KEY_INFO3, &tkey_info3); + if (unlikely(ret)) return ret; + + tkey->enable = ((tkey_info1 & (0xFF << 24)) ? true : false); + tkey->key_num = (tkey_info1 >> 16) & 0xFF; + tkey->ch_num[0] = (tkey_info2 >> 24) & 0xFF; + tkey->ch_num[1] = (tkey_info2 >> 16) & 0xFF; + tkey->ch_num[2] = (tkey_info2 >> 8) & 0xFF; + tkey->ch_num[3] = tkey_info2 & 0xFF; + tkey->ch_num[4] = (tkey_info3 >> 24) & 0xFF; + + return ret; +} + + +#define TSP_INFO_SWAP_XY (1 << 0) +#define TSP_INFO_FLIP_X (1 << 1) +#define TSP_INFO_FLIP_Y (1 << 2) +int ist30xx_tsp_update_info(void) +{ + int ret = 0; + u32 tsp_ch_num, tsp_swap, tsp_dir; + TSP_INFO *tsp = &ist30xx_tsp_info; + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_TSP_SWAP_INFO, &tsp_swap); + if (unlikely(ret)) return ret; + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_TSP_DIRECTION, &tsp_dir); + if (unlikely(ret)) return ret; + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_TSP_CHNUM1, &tsp_ch_num); + if (unlikely(ret || !tsp_ch_num)) return ret; + + tsp->finger_num = IST30XX_MAX_MT_FINGERS; + + tsp->ch_num.rx = tsp_ch_num >> 16; + tsp->ch_num.tx = tsp_ch_num & 0xFFFF; + + tsp->dir.swap_xy = (tsp_swap & TSP_INFO_SWAP_XY ? true : false); + tsp->dir.flip_x = (tsp_swap & TSP_INFO_FLIP_X ? true : false); + tsp->dir.flip_y = (tsp_swap & TSP_INFO_FLIP_Y ? true : false); + + tsp->node.len = tsp->ch_num.tx * tsp->ch_num.rx; + tsp->height = (tsp->dir.swap_xy ? tsp->ch_num.rx : tsp->ch_num.tx); + tsp->width = (tsp->dir.swap_xy ? tsp->ch_num.tx : tsp->ch_num.rx); + + return ret; +} + + +int ist30xx_check_valid_ch(int ch_tx, int ch_rx) +{ + TKEY_INFO *tkey = &ist30xx_tkey_info; + TSP_INFO *tsp = &ist30xx_tsp_info; + + if (unlikely((ch_tx > tsp->ch_num.tx) || (ch_rx > tsp->ch_num.rx))) + return 0; + + if (tkey->enable) { + if (tkey->axis_rx) { + tsp_verb("tx: %d, rx: %d\n", ch_tx, ch_rx); + if (ch_rx == tsp->ch_num.rx - 1) { + tsp_verb("ch_tx: %d\n", ch_tx); + if ((ch_tx == tkey->ch_num[0]) || (ch_tx == tkey->ch_num[1]) || + (ch_tx == tkey->ch_num[2]) || (ch_tx == tkey->ch_num[3]) || + (ch_tx == tkey->ch_num[4])) + return TSP_CH_KEY; + else + return 0; + } + } else { + if (ch_tx == tsp->ch_num.tx - 1) { + if ((ch_rx == tkey->ch_num[0]) || (ch_rx == tkey->ch_num[1]) || + (ch_rx == tkey->ch_num[2]) || (ch_rx == tkey->ch_num[3]) || + (ch_rx == tkey->ch_num[4])) + return TSP_CH_KEY; + else + return 0; + } + } + } + + return TSP_CH_SCREEN; +} + + +int ist30xx_parse_touch_node(u8 flag, struct TSP_NODE_BUF *node) +{ +#if TOUCH_NODE_PARSING_DEBUG + int j; + TSP_INFO *tsp = &ist30xx_tsp_info; +#endif + int i,k; + u16 *raw = (u16 *)&node->raw; + u16 *base = (u16 *)&node->base; + u16 *filter = (u16 *)&node->filter; + + for (i = 0,k = 0; i < node->len; i++) { + if (flag & (NODE_FLAG_RAW | NODE_FLAG_BASE)) { + *raw++ = ist30xx_frame_rawbuf[i] & 0xFFF; + *base++ = (ist30xx_frame_rawbuf[i] >> 16) & 0xFFF; + } + if (flag & NODE_FLAG_FILTER){ + *filter++ = ist30xx_frame_fltbuf[k++] & 0xFFF; + + } + } + +#if TOUCH_NODE_PARSING_DEBUG + tsp_info("RAW - %d * %d\n", tsp->ch_num.tx, tsp->ch_num.rx); + for (i = 0; i < tsp->ch_num.tx; i++) { + printk("\n[ TSP ] "); + for (j = 0; j < tsp->ch_num.rx; j++) + printk("%4d ", node->raw[i][j]); + } + + tsp_info("BASE - %d * %d\n", tsp->ch_num.tx, tsp->ch_num.rx); + for (i = 0; i < tsp->ch_num.tx; i++) { + printk("\n[ TSP ] "); + for (j = 0; j < tsp->ch_num.rx; j++) + printk("%4d ", node->base[i][j]); + } + + tsp_info("FILTER - %d * %d\n", tsp->ch_num.tx, tsp->ch_num.rx); + for (i = 0; i < tsp->ch_num.tx; i++) { + printk("\n[ TSP ] "); + for (j = 0; j < tsp->ch_num.rx; j++) + printk("%4d ", node->filter[i][j]); + } +#endif + + return 0; +} + +int print_touch_node(u8 flag, struct TSP_NODE_BUF *node, char *buf, bool ch_tsp) +{ + int i, j; + int count = 0; + int val = 0; + const int msg_len = 128; + char msg[msg_len]; + TSP_INFO *tsp = &ist30xx_tsp_info; + + if (tsp->dir.swap_xy) { + } else { + for (i = 0; i < tsp->ch_num.tx; i++) { + for (j = 0; j < tsp->ch_num.rx; j++) { + if (ch_tsp && (ist30xx_check_valid_ch(i, j) != TSP_CH_SCREEN)) + continue; + + if (flag == NODE_FLAG_RAW) + val = (int)node->raw[i][j]; + else if (flag == NODE_FLAG_BASE) + val = (int)node->base[i][j]; + else if (flag == NODE_FLAG_FILTER) + val = (int)node->filter[i][j]; + else if (flag == NODE_FLAG_DIFF) + val = (int)(node->raw[i][j] - node->base[i][j]); + else + return 0; + + if (val < 0) val = 0; + + count += snprintf(msg, msg_len, "%4d ", val); + strncat(buf, msg, msg_len); + } + + count += snprintf(msg, msg_len, "\n"); + strncat(buf, msg, msg_len); + } + } + + return count; +} + +int parse_tsp_node(u8 flag, struct TSP_NODE_BUF *node, s16 *buf16) +{ + int i, j; + s16 val = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + + if (unlikely((flag != NODE_FLAG_RAW) && (flag != NODE_FLAG_BASE) && + (flag != NODE_FLAG_FILTER) && (flag != NODE_FLAG_DIFF))) + return -EPERM; + + if (tsp->dir.swap_xy) { + } else { + for (i = 0; i < tsp->ch_num.tx; i++) { + for (j = 0; j < tsp->ch_num.rx; j++) { + if (ist30xx_check_valid_ch(i, j) != TSP_CH_SCREEN) + continue; + + switch ((int)flag) { + case NODE_FLAG_RAW: + val = (s16)node->raw[i][j]; + break; + case NODE_FLAG_BASE: + val = (s16)node->base[i][j]; + break; + case NODE_FLAG_FILTER: + val = (s16)node->filter[i][j]; + break; + case NODE_FLAG_DIFF: + val = (s16)(node->raw[i][j] - node->base[i][j]); + break; + } + + if (val < 0) val = 0; + + *buf16++ = val; + } + } + } + + return 0; +} + + +int ist30xx_read_touch_node(u8 flag, struct TSP_NODE_BUF *node) +{ + int ret = 0; + u32 addr = IST30XXB_RAW_ADDR; + + if (ts_data->chip_id == IST3038_CHIP_ID) + addr += 0xD4; + + ist30xx_disable_irq(ts_data); + + if (flag & NODE_FLAG_NO_CCP) { + ret = ist30xx_cmd_run_device(ts_data->client, true); + if (unlikely(ret)) goto read_tsp_node_end; + + ret = ist30xx_write_cmd(ts_data->client, CMD_USE_CORRECT_CP, 0); + if (unlikely(ret)) goto read_tsp_node_end; + } + + ret = ist30xx_cmd_reg(ts_data->client, CMD_ENTER_REG_ACCESS); + if (unlikely(ret)) goto read_tsp_node_end; + + ret = ist30xx_write_cmd(ts_data->client, IST30XX_RX_CNT_ADDR, node->len); + if (unlikely(ret)) goto read_tsp_node_end; + + if (flag & (NODE_FLAG_RAW | NODE_FLAG_BASE)) { + tsp_debug("Reg addr: %x, size: %d\n", addr, node->len); + ret = ist30xx_read_buf(ts_data->client, addr, + ist30xx_frame_rawbuf, node->len); + if (unlikely(ret)) goto read_tsp_node_end; + } + if (flag & NODE_FLAG_FILTER) { + tsp_debug("Reg addr: %x, size: %d\n", IST30XXB_FILTER_ADDR, node->len); + ret = ist30xx_read_buf(ts_data->client, IST30XXB_FILTER_ADDR, + ist30xx_frame_fltbuf, node->len); + if (unlikely(ret)) goto read_tsp_node_end; + } + + ret = ist30xx_cmd_reg(ts_data->client, CMD_EXIT_REG_ACCESS); + if (unlikely(ret)) goto read_tsp_node_end; + + ret = ist30xx_cmd_start_scan(ts_data->client); + if (unlikely(ret)) goto read_tsp_node_end; + +read_tsp_node_end: + ist30xx_enable_irq(ts_data); + + return ret; +} + + +/* sysfs: /sys/class/touch/node/refresh */ +ssize_t ist30xx_frame_refresh(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + u8 flag = NODE_FLAG_RAW | NODE_FLAG_BASE | NODE_FLAG_FILTER; + + ret = ist30xx_read_touch_node(flag, &tsp->node); + if (unlikely(ret)) + ret = sprintf(buf, "cmd 1frame raw update fail\n"); + + ret = ist30xx_parse_touch_node(flag, &tsp->node); + + return ret; +} + + +/* sysfs: /sys/class/touch/node/read_nocp */ +ssize_t ist30xx_frame_nocp(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + u8 flag = NODE_FLAG_RAW | NODE_FLAG_BASE | NODE_FLAG_FILTER | + NODE_FLAG_NO_CCP; + + ret = ist30xx_read_touch_node(flag, &tsp->node); + if (unlikely(ret)) + ret = sprintf(buf, "cmd 1frame raw update fail\n"); + + ret = ist30xx_parse_touch_node(flag, &tsp->node); + + return ret; +} + + +/* sysfs: /sys/class/touch/node/base */ +ssize_t ist30xx_base_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xxb baseline(%d)\n", tsp->node.len); + + count += print_touch_node(NODE_FLAG_BASE, &tsp->node, buf, false); + + return count; +} + + +/* sysfs: /sys/class/touch/node/raw */ +ssize_t ist30xx_raw_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xxb raw(%d)\n", tsp->node.len); + + count += print_touch_node(NODE_FLAG_RAW, &tsp->node, buf, false); + + return count; +} + + +/* sysfs: /sys/class/touch/node/diff */ +ssize_t ist30xx_diff_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xxb difference (%d)\n", tsp->node.len); + + count += print_touch_node(NODE_FLAG_DIFF, &tsp->node, buf, false); + + return count; +} + + +/* sysfs: /sys/class/touch/node/filter */ +ssize_t ist30xx_filter_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xxb filter (%d)\n", tsp->node.len); + + count += print_touch_node(NODE_FLAG_FILTER, &tsp->node, buf, false); + + return count; +} + + +extern int calib_ms_delay; +/* sysfs: /sys/class/touch/sys/clb */ +ssize_t ist30xx_calib_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret = -1; + int ms_delay; + + sscanf(buf, "%d", &ms_delay); + + if (ms_delay > 10 && ms_delay < 1000) // 1sec ~ 100sec + calib_ms_delay = ms_delay; + + tsp_info("Calibration wait time %dsec\n", calib_ms_delay / 10); + + ist30xx_disable_irq(ts_data); + ret = ist30xx_cmd_run_device(ts_data->client, true); + if (unlikely(ret)) { + ist30xx_enable_irq(ts_data); + return size; + } + ist30xx_calibrate(1); + + ist30xx_start(ts_data); + + return size; +} + +ssize_t ist30xx_calib_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret; + int count = 0; + u32 value; + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(ts_data); + ret = ist30xx_cmd_run_device(ts_data->client, true); + if (unlikely(ret)) + goto calib_show_end; + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_CALIB_RESULT, &value); + if (unlikely(ret)) { + count = sprintf(buf, "Error Read Calibration Result\n"); + goto calib_show_end; + } + + count = sprintf(buf, + "Calibration Status : %d, Max raw gap : %d - (raw: %08x)\n", + CALIB_TO_STATUS(value), CALIB_TO_GAP(value), value); + +calib_show_end: + ist30xx_start(ts_data); + ist30xx_enable_irq(ts_data); + mutex_unlock(&ist30xx_mutex); + + return count; +} + + +/* sysfs: /sys/class/touch/sys/power */ +ssize_t ist30xx_power_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + u32 power_en; + + sscanf(buf, "%d", &power_en); + + tsp_info("Power enable: %d\n", power_en); + if (unlikely(power_en > 1)) { + tsp_err("Unknown argument value, %d\n", power_en); + return size; + } + + if (power_en) { + mutex_lock(&ist30xx_mutex); + ist30xx_internal_resume(ts_data); + ist30xx_enable_irq(ts_data); + mutex_unlock(&ist30xx_mutex); + + ist30xx_start(ts_data); + } else { + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(ts_data); + ist30xx_internal_suspend(ts_data); + mutex_unlock(&ist30xx_mutex); + } + + return size; +} + +extern int ist30xx_max_error_cnt; +/* sysfs: /sys/class/touch/sys/errcnt */ +ssize_t ist30xx_errcnt_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int err_cnt; + + sscanf(buf, "%d", &err_cnt); + + if (unlikely(err_cnt < 0)) return size; + + tsp_info("Request reset error count: %d\n", err_cnt); + + ist30xx_max_error_cnt = err_cnt; + + return size; +} + +#if IST30XX_EVENT_MODE +extern int ist30xx_max_scan_retry; +/* sysfs: /sys/class/touch/sys/scancnt */ +ssize_t ist30xx_scancnt_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int retry; + + sscanf(buf, "%d", &retry); + + if (unlikely(retry < 0)) return size; + + tsp_info("Timer scan count retry: %d\n", retry); + + ist30xx_max_scan_retry = retry; + + return size; +} + +extern int timer_period_ms; +/* sysfs: /sys/class/touch/sys/timerms */ +ssize_t ist30xx_timerms_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ms; + + sscanf(buf, "%d", &ms); + + if (unlikely((ms < 0) || (ms > 10000))) return size; + + tsp_info("Timer period ms: %dms\n", ms); + + timer_period_ms = ms; + + return size; +} +#endif + +extern int ist30xx_dbg_level; +/* sysfs: /sys/class/touch/sys/printk */ +ssize_t ist30xx_printk_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int level; + + sscanf(buf, "%d", &level); + + if (unlikely((level < DEV_ERR) || (level > DEV_VERB))) return size; + + tsp_info("prink log level: %d\n", level); + + ist30xx_dbg_level = level; + + return size; +} + +ssize_t ist30xx_printk_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + return sprintf(buf, "prink log level: %d\n", ist30xx_dbg_level); +} + +extern void ist30xx_scheduled_reset(void); +extern int ist30xx_report_rate; +/* sysfs: /sys/class/touch/sys/touch_rate */ +ssize_t ist30xx_touch_rate_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int rate; + + sscanf(buf, "%d", &rate); // us + + if (unlikely(rate > 0xFFFF)) return size; // over 65.5ms + + tsp_info("touch reporting rate: %d\n", rate); + + ist30xx_report_rate = rate; + + ist30xx_scheduled_reset(); + + return size; +} + +extern int ist30xx_idle_rate; +/* sysfs: /sys/class/touch/sys/idle_rate */ +ssize_t ist30xx_idle_scan_rate_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int rate; + + sscanf(buf, "%d", &rate); // us + + if (unlikely(rate > 0xFFFF)) return size; // over 65.5ms + + tsp_info("touch idle scan rate: %d\n", rate); + + ist30xx_idle_rate = rate; + + ist30xx_scheduled_reset(); + + return size; +} + +extern void ist30xx_set_ta_mode(bool charging); +/* sysfs: /sys/class/touch/sys/mode_ta */ +ssize_t ist30xx_ta_mode_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int mode; + + sscanf(buf, "%d", &mode); + + if (unlikely((mode != 0) && (mode != 1))) return size; // enable/disable + + ist30xx_set_ta_mode(mode); + + return size; +} + +extern void ist30xx_set_call_mode(int mode); +/* sysfs: /sys/class/touch/sys/mode_call */ +ssize_t ist30xx_call_mode_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int mode; + + sscanf(buf, "%d", &mode); + + if (unlikely((mode != 0) && (mode != 1))) return size; // enable/disable + + ist30xx_set_call_mode(mode); + + return size; +} + +extern void ist30xx_set_cover_mode(int mode); +/* sysfs: /sys/class/touch/sys/mode_cover */ +ssize_t ist30xx_cover_mode_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int mode; + + sscanf(buf, "%d", &mode); + + if (unlikely((mode != 0) && (mode != 1))) return size; // enable/disable + + ist30xx_set_cover_mode(mode); + + return size; +} + + +#define TUNES_CMD_WRITE (1) +#define TUNES_CMD_READ (2) +#define TUNES_CMD_REG_ENTER (3) +#define TUNES_CMD_REG_EXIT (4) +#define TUNES_CMD_UPDATE_PARAM (5) +#define TUNES_CMD_UPDATE_FW (6) + +#define DIRECT_ADDR(n) (IST30XXB_DA_ADDR(n)) +#define DIRECT_CMD_WRITE ('w') +#define DIRECT_CMD_READ ('r') + +#pragma pack(1) +typedef struct { + u8 cmd; + u32 addr; + u16 len; +} TUNES_INFO; +#pragma pack() +#pragma pack(1) +typedef struct { + char cmd; + u32 addr; + u32 val; +} DIRECT_INFO; +#pragma pack() + +static TUNES_INFO ist30xx_tunes; +static DIRECT_INFO ist30xx_direct; +static bool tunes_cmd_done = false; +static bool ist30xx_reg_mode = false; + +/* sysfs: /sys/class/touch/sys/direct */ +ssize_t ist30xxb_direct_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret = -EPERM; + DIRECT_INFO *direct = (DIRECT_INFO *)&ist30xx_direct; + + sscanf(buf, "%c %x %x", &direct->cmd, &direct->addr, &direct->val); + + tsp_debug("Direct cmd: %c, addr: %x, val: %x\n", + direct->cmd, direct->addr, direct->val); + + if (unlikely((direct->cmd != DIRECT_CMD_WRITE) && + (direct->cmd != DIRECT_CMD_READ))) { + tsp_warn("Direct cmd is not correct!\n"); + return size; + } + + if (ist30xx_intr_wait(30) < 0) return size; + + ts_data->status.event_mode = false; + if (direct->cmd == DIRECT_CMD_WRITE) { + ret = ist30xx_write_cmd(ts_data->client, DIRECT_ADDR(direct->addr), + direct->val); + ret = ist30xx_read_cmd(ts_data->client, DIRECT_ADDR(direct->addr), + &direct->val); + tsp_debug("Direct write addr: %x, val: %x\n", + direct->addr, direct->val); + } + ts_data->status.event_mode = true; + + return size; +} + +#define DIRECT_BUF_COUNT (4) +ssize_t ist30xxb_direct_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int i, ret, count = 0; + int len; + u32 addr; + u32 buf32[DIRECT_BUF_COUNT]; + int max_len = DIRECT_BUF_COUNT; + const int msg_len = 256; + char msg[msg_len]; + + DIRECT_INFO *direct = (DIRECT_INFO *)&ist30xx_direct; + + if (unlikely(direct->cmd != DIRECT_CMD_READ)) + return sprintf(buf, "ex) echo r addr len > direct\n"); + + len = direct->val; + addr = DIRECT_ADDR(direct->addr); + + if (ist30xx_intr_wait(30) < 0) return 0; + ts_data->status.event_mode = false; + while (len > 0) { + if (len < max_len) max_len = len; + + memset(buf32, 0, sizeof(buf32)); + ret = ist30xxb_burst_read(ts_data->client, addr, buf32, max_len); + if (unlikely(ret)) { + count = sprintf(buf, "I2C Burst read fail, addr: %x\n", addr); + break; + } + + for (i = 0; i < max_len; i++) { + count += snprintf(msg, msg_len, "0x%08x ", buf32[i]); + strncat(buf, msg, msg_len); + } + count += snprintf(msg, msg_len, "\n"); + strncat(buf, msg, msg_len); + + addr += max_len * IST30XX_DATA_LEN; + len -= max_len; + } + ts_data->status.event_mode = true; + + tsp_debug("%s", buf); + + return count; +} + +/* sysfs: /sys/class/touch/tunes/regcmd */ +ssize_t tunes_regcmd_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret = -1; + u32 *buf32; + + memcpy(&ist30xx_tunes, buf, sizeof(ist30xx_tunes)); + buf += sizeof(ist30xx_tunes); + buf32 = (u32 *)buf; + + tunes_cmd_done = false; + + switch (ist30xx_tunes.cmd) { + case TUNES_CMD_WRITE: + break; + case TUNES_CMD_READ: + break; + case TUNES_CMD_REG_ENTER: + ist30xx_disable_irq(ts_data); + ret = ist30xx_cmd_run_device(ts_data->client, true); + if (unlikely(ret)) goto regcmd_fail; + + /* enter reg access mode */ + ret = ist30xx_cmd_reg(ts_data->client, CMD_ENTER_REG_ACCESS); + if (unlikely(ret)) goto regcmd_fail; + + ist30xx_reg_mode = true; + + break; + case TUNES_CMD_REG_EXIT: + /* exit reg access mode */ + ret = ist30xx_cmd_reg(ts_data->client, CMD_EXIT_REG_ACCESS); + if (unlikely(ret)) goto regcmd_fail; + + ret = ist30xx_cmd_start_scan(ts_data->client); + if (unlikely(ret)) goto regcmd_fail; + + ist30xx_reg_mode = false; + + ist30xx_enable_irq(ts_data); + break; + default: + ist30xx_enable_irq(ts_data); + return size; + } + tunes_cmd_done = true; + + return size; + +regcmd_fail: + tsp_err("Tunes regcmd i2c_fail, ret=%d\n", ret); + return size; +} + +ssize_t tunes_regcmd_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int size; + + size = sprintf(buf, "cmd: 0x%02x, addr: 0x%08x, len: 0x%04x\n", + ist30xx_tunes.cmd, ist30xx_tunes.addr, ist30xx_tunes.len); + + return size; +} + +#define MAX_WRITE_LEN (1) +/* sysfs: /sys/class/touch/tunes/reg */ +ssize_t tunes_reg_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret; + u32 *buf32 = (u32 *)buf; + int waddr, wcnt = 0, len = 0; + + if (unlikely(ist30xx_tunes.cmd != TUNES_CMD_WRITE)) { + tsp_err("error, IST30XX_REG_CMD is not correct!\n"); + return size; + } + + if (unlikely(!ist30xx_reg_mode)) { + tsp_err("error, IST30XX_REG_CMD is not ready!\n"); + return size; + } + + if (unlikely(!tunes_cmd_done)) { + tsp_err("error, IST30XX_REG_CMD is not ready!\n"); + return size; + } + + waddr = ist30xx_tunes.addr; + if (ist30xx_tunes.len >= MAX_WRITE_LEN) + len = MAX_WRITE_LEN; + else + len = ist30xx_tunes.len; + + while (wcnt < ist30xx_tunes.len) { + ret = ist30xx_write_buf(ts_data->client, waddr, buf32, len); + if (unlikely(ret)) { + tsp_err("Tunes regstore i2c_fail, ret=%d\n", ret); + return size; + } + + wcnt += len; + + if ((ist30xx_tunes.len - wcnt) < MAX_WRITE_LEN) + len = ist30xx_tunes.len - wcnt; + + buf32 += MAX_WRITE_LEN; + waddr += MAX_WRITE_LEN * IST30XX_DATA_LEN; + } + + tunes_cmd_done = false; + + return size; +} + +ssize_t tunes_reg_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret; + int size; + u32 *buf32 = (u32 *)buf; + +#if I2C_MONOPOLY_MODE + unsigned long flags; +#endif + + if (unlikely(ist30xx_tunes.cmd != TUNES_CMD_READ)) { + tsp_err("error, IST30XX_REG_CMD is not correct!\n"); + return 0; + } + + if (unlikely(!tunes_cmd_done)) { + tsp_err("error, IST30XX_REG_CMD is not ready!\n"); + return 0; + } + + size = ist30xx_tunes.len; + ret = ist30xx_write_cmd(ts_data->client, IST30XX_RX_CNT_ADDR, size); + if (unlikely(ret)) { + tsp_err("Tunes regshow i2c_fail, ret=%d\n", ret); + return 0; + } + +#if I2C_MONOPOLY_MODE + local_irq_save(flags); // Activated only when the GPIO I2C is used +#endif + ret = ist30xx_read_buf(ts_data->client, ist30xx_tunes.addr, buf32, size); +#if I2C_MONOPOLY_MODE + local_irq_restore(flags); // Activated only when the GPIO I2C is used +#endif + if (unlikely(ret)) { + tsp_err("Tunes regshow i2c_fail, ret=%d\n", ret); + return size; + } + + size = ist30xx_tunes.len * IST30XX_DATA_LEN; + + tunes_cmd_done = false; + + return size; +} + + +/* sysfs: /sys/class/touch/tunes/firmware */ +ssize_t tunes_fw_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + ist30xx_get_update_info(ts_data, buf, size); + + mutex_lock(&ist30xx_mutex); + ist30xx_fw_update(ts_data->client, buf, size, true); + mutex_unlock(&ist30xx_mutex); + + ist30xx_calibrate(1); + + ist30xx_init_touch_driver(ts_data); + + return size; +} + + +/* sysfs: /sys/class/touch/tunes/adb */ +ssize_t tunes_adb_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret; + char *tmp, *ptr; + char token[9]; + u32 cmd, addr, len, val; + int write_len; + + sscanf(buf, "%x %x %x", &cmd, &addr, &len); + + switch (cmd) { + case TUNES_CMD_WRITE: /* write cmd */ + write_len = 0; + ptr = (char *)(buf + 15); + + while (write_len < len) { + memcpy(token, ptr, 8); + token[8] = 0; + val = simple_strtoul(token, &tmp, 16); + ret = ist30xx_write_buf(ts_data->client, addr, &val, 1); + if (unlikely(ret)) { + tsp_err("Tunes regstore i2c_fail, ret=%d\n", ret); + return size; + } + + ptr += 8; + write_len++; + addr += 4; + } + break; + + case TUNES_CMD_READ: /* read cmd */ + ist30xx_tunes.cmd = cmd; + ist30xx_tunes.addr = addr; + ist30xx_tunes.len = len; + break; + + case TUNES_CMD_REG_ENTER: /* enter */ + ist30xx_disable_irq(ts_data); + ret = ist30xx_cmd_run_device(ts_data->client, true); + if (unlikely(ret < 0)) goto cmd_fail; + + ret = ist30xx_cmd_reg(ts_data->client, CMD_ENTER_REG_ACCESS); + if (unlikely(ret < 0)) goto cmd_fail; + ist30xx_reg_mode = true; + break; + + case TUNES_CMD_REG_EXIT: /* exit */ + if (ist30xx_reg_mode == true) { + ret = ist30xx_cmd_reg(ts_data->client, CMD_EXIT_REG_ACCESS); + if (unlikely(ret < 0)) goto cmd_fail; + + ret = ist30xx_cmd_start_scan(ts_data->client); + if (unlikely(ret < 0)) goto cmd_fail; + ist30xx_reg_mode = false; + ist30xx_enable_irq(ts_data); + } + break; + + default: + break; + } + + return size; + +cmd_fail: + tsp_err("Tunes adb i2c_fail\n"); + return size; +} + +ssize_t tunes_adb_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret; + int i, len, size = 0; + char reg_val[10]; + +#if I2C_MONOPOLY_MODE + unsigned long flags; +#endif + + ret = ist30xx_write_cmd(ts_data->client, IST30XX_RX_CNT_ADDR, ist30xx_tunes.len); + if (unlikely(ret)) { + tsp_err("Tunes regshow i2c_fail, ret=%d\n", ret); + return size; + } + +#if I2C_MONOPOLY_MODE + local_irq_save(flags); +#endif + ret = ist30xx_read_buf(ts_data->client, ist30xx_tunes.addr, + ist30xx_frame_buf, ist30xx_tunes.len); +#if I2C_MONOPOLY_MODE + local_irq_restore(flags); +#endif + if (unlikely(ret)) { + tsp_err("Tunes regshow i2c_fail, ret=%d\n", ret); + return size; + } + + size = 0; + buf[0] = 0; + len = sprintf(reg_val, "%08x", ist30xx_tunes.addr); + strcat(buf, reg_val); + size += len; + for (i = 0; i < ist30xx_tunes.len; i++) { + len = sprintf(reg_val, "%08x", ist30xx_frame_buf[i]); + strcat(buf, reg_val); + size += len; + } + + return size; +} + +/* sysfs: /sys/class/touch/tunes/algorithm */ +#if IST30XX_EVENT_MODE +extern u32 ist30xx_algr_addr, ist30xx_algr_size; +#endif +ssize_t ist30xx_algr_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ +#if IST30XX_EVENT_MODE + sscanf(buf, "%x %d", &ist30xx_algr_addr, &ist30xx_algr_size); + tsp_info("Algorithm addr: 0x%x, count: %d\n", + ist30xx_algr_addr, ist30xx_algr_size); + + ist30xx_algr_addr |= IST30XXB_ACCESS_ADDR; +#endif + + return size; +} + +ssize_t ist30xx_algr_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret; + u32 algr_addr; + int count = 0; + + ret = ist30xx_read_cmd(ts_data->client, IST30XXB_MEM_ALGORITHM, &algr_addr); + if (unlikely(ret)) { + tsp_warn("Algorithm mem addr read fail!\n"); + return 0; + } + + tsp_info("algr_addr(0x%x): 0x%x\n", IST30XXB_MEM_ALGORITHM, algr_addr); + + count = sprintf(buf, "Algorithm addr : 0x%x\n", algr_addr); + + return count; +} + +/* sysfs: /sys/class/touch/tunes/intr_debug */ +extern u32 intr_debug_addr, intr_debug_size; +ssize_t intr_debug_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + sscanf(buf, "%x %d", &intr_debug_addr, &intr_debug_size); + tsp_info("Interrupt debug addr: 0x%x, count: %d\n", + intr_debug_addr, intr_debug_size); + + intr_debug_addr |= IST30XXB_ACCESS_ADDR; + + return size; +} + +ssize_t intr_debug_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + + tsp_info("intr_debug_addr(0x%x): %d\n", intr_debug_addr, intr_debug_size); + + count = sprintf(buf, "intr_debug_addr(0x%x): %d\n", + intr_debug_addr, intr_debug_size); + + return count; +} + +#define MISC_DEFAULT_ATTR (0644) +/* sysfs : node */ +static DEVICE_ATTR(refresh, MISC_DEFAULT_ATTR, ist30xx_frame_refresh, NULL); +static DEVICE_ATTR(nocp, MISC_DEFAULT_ATTR, ist30xx_frame_nocp, NULL); +static DEVICE_ATTR(filter, MISC_DEFAULT_ATTR, ist30xx_filter_show, NULL); +static DEVICE_ATTR(raw, MISC_DEFAULT_ATTR, ist30xx_raw_show, NULL); +static DEVICE_ATTR(base, MISC_DEFAULT_ATTR, ist30xx_base_show, NULL); +static DEVICE_ATTR(diff, MISC_DEFAULT_ATTR, ist30xx_diff_show, NULL); + +/* sysfs : sys */ +static DEVICE_ATTR(printk, MISC_DEFAULT_ATTR, ist30xx_printk_show, ist30xx_printk_store); +static DEVICE_ATTR(direct, MISC_DEFAULT_ATTR, ist30xxb_direct_show, ist30xxb_direct_store); +static DEVICE_ATTR(clb, MISC_DEFAULT_ATTR, ist30xx_calib_show, ist30xx_calib_store); +static DEVICE_ATTR(tsp_power, MISC_DEFAULT_ATTR, NULL, ist30xx_power_store); +static DEVICE_ATTR(errcnt, MISC_DEFAULT_ATTR, NULL, ist30xx_errcnt_store); +#if IST30XX_EVENT_MODE +static DEVICE_ATTR(scancnt, MISC_DEFAULT_ATTR, NULL, ist30xx_scancnt_store); +static DEVICE_ATTR(timerms, MISC_DEFAULT_ATTR, NULL, ist30xx_timerms_store); +#endif +static DEVICE_ATTR(report_rate, MISC_DEFAULT_ATTR, NULL, ist30xx_touch_rate_store); +static DEVICE_ATTR(idle_rate, MISC_DEFAULT_ATTR, NULL, ist30xx_idle_scan_rate_store); +static DEVICE_ATTR(mode_ta, MISC_DEFAULT_ATTR, NULL, ist30xx_ta_mode_store); +static DEVICE_ATTR(mode_call, MISC_DEFAULT_ATTR, NULL, ist30xx_call_mode_store); +static DEVICE_ATTR(mode_cover, MISC_DEFAULT_ATTR, NULL, ist30xx_cover_mode_store); + +/* sysfs : tunes */ +static DEVICE_ATTR(regcmd, MISC_DEFAULT_ATTR, tunes_regcmd_show, tunes_regcmd_store); +static DEVICE_ATTR(reg, MISC_DEFAULT_ATTR, tunes_reg_show, tunes_reg_store); +static DEVICE_ATTR(tunes_fw, MISC_DEFAULT_ATTR, NULL, tunes_fw_store); +static DEVICE_ATTR(adb, MISC_DEFAULT_ATTR, tunes_adb_show, tunes_adb_store); +static DEVICE_ATTR(algorithm, MISC_DEFAULT_ATTR, ist30xx_algr_show, ist30xx_algr_store); +static DEVICE_ATTR(intr_debug, MISC_DEFAULT_ATTR, intr_debug_show, intr_debug_store); + +static struct attribute *node_attributes[] = { + &dev_attr_refresh.attr, + &dev_attr_nocp.attr, + &dev_attr_filter.attr, + &dev_attr_raw.attr, + &dev_attr_base.attr, + &dev_attr_diff.attr, + NULL, +}; + +static struct attribute *sys_attributes[] = { + &dev_attr_printk.attr, + &dev_attr_direct.attr, + &dev_attr_clb.attr, + &dev_attr_tsp_power.attr, + &dev_attr_errcnt.attr, +#if IST30XX_EVENT_MODE + &dev_attr_scancnt.attr, + &dev_attr_timerms.attr, +#endif + &dev_attr_report_rate.attr, + &dev_attr_idle_rate.attr, + &dev_attr_mode_ta.attr, + &dev_attr_mode_call.attr, + &dev_attr_mode_cover.attr, + NULL, +}; + +static struct attribute *tunes_attributes[] = { + &dev_attr_regcmd.attr, + &dev_attr_reg.attr, + &dev_attr_tunes_fw.attr, + &dev_attr_adb.attr, + &dev_attr_algorithm.attr, + &dev_attr_intr_debug.attr, + NULL, +}; + +static struct attribute_group node_attr_group = { + .attrs = node_attributes, +}; + +static struct attribute_group sys_attr_group = { + .attrs = sys_attributes, +}; + +static struct attribute_group tunes_attr_group = { + .attrs = tunes_attributes, +}; + +extern struct class *ist30xx_class; +struct device *ist30xx_sys_dev; +struct device *ist30xx_tunes_dev; +struct device *ist30xx_node_dev; + + +int ist30xx_init_misc_sysfs(void) +{ + /* /sys/class/touch/sys */ + ist30xx_sys_dev = device_create(ist30xx_class, NULL, 0, NULL, "sys"); + + /* /sys/class/touch/sys/... */ + if (unlikely(sysfs_create_group(&ist30xx_sys_dev->kobj, + &sys_attr_group))) + tsp_err("Failed to create sysfs group(%s)!\n", "sys"); + + /* /sys/class/touch/tunes */ + ist30xx_tunes_dev = device_create(ist30xx_class, NULL, 0, NULL, "tunes"); + + /* /sys/class/touch/tunes/... */ + if (unlikely(sysfs_create_group(&ist30xx_tunes_dev->kobj, + &tunes_attr_group))) + tsp_err("Failed to create sysfs group(%s)!\n", "tunes"); + + /* /sys/class/touch/node */ + ist30xx_node_dev = device_create(ist30xx_class, NULL, 0, NULL, "node"); + + /* /sys/class/touch/node/... */ + if (unlikely(sysfs_create_group(&ist30xx_node_dev->kobj, + &node_attr_group))) + tsp_err("Failed to create sysfs group(%s)!\n", "node"); + + ist30xx_frame_buf = kmalloc(4096, GFP_KERNEL); + ist30xx_frame_rawbuf = kmalloc(4096, GFP_KERNEL); + ist30xx_frame_fltbuf = kmalloc(4096, GFP_KERNEL); + if (!ist30xx_frame_buf || !ist30xx_frame_rawbuf || !ist30xx_frame_fltbuf) + return -ENOMEM; + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xx/ist30xx_misc.h b/drivers/input/touchscreen/ist30xx/ist30xx_misc.h new file mode 100644 index 00000000..7b4a596e --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/ist30xx_misc.h @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_MISC_H__ +#define __IST30XX_MISC_H__ + +#include "ist30xx_tsp.h" + + +#define IST30XXB_RAW_ADDR (0x40100200) +#define IST30XXB_FILTER_ADDR (0x40101000) + +#define IST30XX_RX_CNT_ADDR (0x20000038) +#define IST30XX_CONFIG_ADDR (0x20000040) + +#define NODE_FLAG_RAW (1) +#define NODE_FLAG_BASE (1 << 1) +#define NODE_FLAG_FILTER (1 << 2) +#define NODE_FLAG_DIFF (1 << 3) +#define NODE_FLAG_ALL (0xF) +#define NODE_FLAG_NO_CCP (1 << 7) + +struct TSP_CH_NUM { + u8 tx; + u8 rx; +}; +struct TSP_NODE_BUF { + u16 raw[NODE_TX_NUM][NODE_RX_NUM]; + u16 base[NODE_TX_NUM][NODE_RX_NUM]; + u16 filter[NODE_TX_NUM][NODE_RX_NUM]; + u16 min_raw; + u16 max_raw; + u16 min_base; + u16 max_base; + u16 len; +}; +struct TSP_DIRECTION { + bool swap_xy; + bool flip_x; + bool flip_y; +}; +typedef struct _TSP_INFO { + struct TSP_CH_NUM ch_num; + struct TSP_DIRECTION dir; + struct TSP_NODE_BUF node; + int height; + int width; + int finger_num; +} TSP_INFO; +typedef struct _TKEY_INFO { + int key_num; + bool enable; + bool axis_rx; + u8 axis_chnum; + u8 ch_num[5]; +} TKEY_INFO; + +int ist30xx_parse_touch_node(u8 flag, struct TSP_NODE_BUF *node); +int ist30xx_read_touch_node(u8 flag, struct TSP_NODE_BUF *node); + +int ist30xx_tsp_update_info(void); +int ist30xx_tkey_update_info(void); + +int ist30xx_get_tsp_info(struct ist30xx_data *data); +int ist30xx_get_tkey_info(struct ist30xx_data *data); + +int ist30xx_init_misc_sysfs(void); + +#endif // __IST30XX_MISC_H__ diff --git a/drivers/input/touchscreen/ist30xx/ist30xx_sec.c b/drivers/input/touchscreen/ist30xx/ist30xx_sec.c new file mode 100644 index 00000000..d18c3b4b --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/ist30xx_sec.c @@ -0,0 +1,913 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xx.h" +#include "ist30xx_update.h" +#include "ist30xx_misc.h" + + + +static char IsfwUpdate[20] = { 0 }; + +#define FW_DOWNLOADING "Downloading" +#define FW_DOWNLOAD_COMPLETE "Complete" +#define FW_DOWNLOAD_FAIL "FAIL" + +#define FACTORY_BUF_SIZE (1024) +#define BUILT_IN (0) +#define UMS (1) + +#define CMD_STATE_WAITING (0) +#define CMD_STATE_RUNNING (1) +#define CMD_STATE_OK (2) +#define CMD_STATE_FAIL (3) +#define CMD_STATE_NA (4) + +#define TSP_NODE_DEBUG (1) + +static u16 node_value[TSP_TOTAL_NUM]; + +extern struct ist30xx_data *ts_data; +extern TSP_INFO ist30xx_tsp_info; +extern TKEY_INFO ist30xx_tkey_info; + + +#define TSP_CMD(name, func) .cmd_name = name, .cmd_func = func +struct tsp_cmd { + struct list_head list; + const char * cmd_name; + void (*cmd_func)(void *dev_data); +}; + +u32 ist30xxb_get_fw_ver(struct ist30xx_data *data) +{ + u32 addr = data->tags.cfg_addr + 4; + u32 len = 1; + u32 ver = 0; + int ret = -EPERM; + + ist30xx_disable_irq(data); + ret = ist30xx_cmd_reg(data->client, CMD_ENTER_REG_ACCESS); + if (unlikely(ret)) goto get_fw_ver_fail; + + ret = ist30xx_write_cmd(data->client, IST30XX_RX_CNT_ADDR, len); + if (unlikely(ret)) goto get_fw_ver_fail; + + ret = ist30xx_read_cmd(data->client, addr, &ver); + if (unlikely(ret)) goto get_fw_ver_fail; + + tsp_debug("Reg addr: %x, ver: %x\n", addr, ver); + + ret = ist30xx_cmd_reg(data->client, CMD_EXIT_REG_ACCESS); + if (likely(ret == 0)) + goto get_fw_ver_end; + +get_fw_ver_fail: + ist30xx_cmd_run_device(data->client, true); + +get_fw_ver_end: + ist30xx_cmd_start_scan(data->client); + ist30xx_enable_irq(data); + + return ver; +} + +int ist30xxb_get_key_sensitivity(struct ist30xx_data *data, int id) +{ + u32 addr = IST30XXB_MEM_COUNT + 4 * sizeof(u32); + u32 val = 0; + static u32 key_sensitivity = 0; + int ret = -EPERM; + + if (unlikely(id >= ist30xx_tkey_info.key_num)) + return 0; + + if (ist30xx_intr_wait(30) < 0) return 0; + + ret = ist30xx_read_cmd(data->client, addr, &val); + if ((val & 0xFFF) == 0xFFF) + return (key_sensitivity >> (16 * id)) & 0xFFFF; + + key_sensitivity = val; + + tsp_debug("Reg addr: %x, val: %8x\n", addr, val); + + val >>= (16 * id); + + return (int)(val & 0xFFFF); +} + + +/* Factory CMD function */ +static void set_default_result(struct sec_factory *sec) +{ + char delim = ':'; + + memset(sec->cmd_result, 0, ARRAY_SIZE(sec->cmd_result)); + memcpy(sec->cmd_result, sec->cmd, strlen(sec->cmd)); + strncat(sec->cmd_result, &delim, CMD_STATE_RUNNING); +} + +static void set_cmd_result(struct sec_factory *sec, char *buf, int len) +{ + strncat(sec->cmd_result, buf, len); +} + +static void not_support_cmd(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%s", "NA"); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_NA; + dev_info(&data->client->dev, "%s: \"%s(%d)\"\n", __func__, + buf, strnlen(buf, sizeof(buf))); + return; +} + +static void get_chip_vendor(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%s", TSP_CHIP_VENDOR); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_chip_name(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%s", TSP_CHIP_NAME); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_chip_id(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%#02x", data->chip_id); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} +#include +#define MAX_FW_PATH 255 +static void fw_update(void *dev_data) +{ + int ret; + char buf[16] = { 0 }; + mm_segment_t old_fs = {0}; + struct file *fp = NULL; + long fsize = 0, nread = 0; + u8 *fw; + char fw_path[MAX_FW_PATH+1]; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + tsp_info("%s(), %d\n", __func__, sec->cmd_param[0]); + + switch (sec->cmd_param[0]) { + case BUILT_IN: + sec->cmd_state = CMD_STATE_OK; + ret = ist30xx_fw_recovery(data); + if (ret < 0) { + sec->cmd_state = CMD_STATE_FAIL; + } + break; + case UMS: + sec->cmd_state = CMD_STATE_OK; + old_fs = get_fs(); + set_fs(get_ds()); + + snprintf(fw_path, MAX_FW_PATH, "/sdcard/%s", IST30XXB_FW_NAME); + fp = filp_open(fw_path, O_RDONLY, 0); + if (IS_ERR(fp)) { + tsp_warn("[TSP] %s(), file %s open error:%d\n", __func__, fw_path, (s32)fp); + sec->cmd_state= CMD_STATE_FAIL; + set_fs(old_fs); + break; + } + + fsize = fp->f_path.dentry->d_inode->i_size; + if(fsize != data->fw.buf_size) { + tsp_warn("[TSP] %s(), invalid fw size!!\n", __func__); + sec->cmd_state = CMD_STATE_FAIL; + set_fs(old_fs); + break; + } + fw = kzalloc((size_t)fsize, GFP_KERNEL); + if (!fw) { + tsp_warn("[TSP] failed to alloc buffer for fw\n"); + sec->cmd_state = CMD_STATE_FAIL; + filp_close(fp, NULL); + set_fs(old_fs); + break; + } + nread = vfs_read(fp, (char __user *)fw, fsize, &fp->f_pos); + if (nread != fsize) { + tsp_warn("[TSP] failed to read fw\n"); + sec->cmd_state = CMD_STATE_FAIL; + filp_close(fp, NULL); + set_fs(old_fs); + break; + } + + filp_close(fp, current->files); + set_fs(old_fs); + tsp_info("[TSP] %s(), ums fw is loaded!!\n", __func__); + + mutex_lock(&ist30xx_mutex); + ist30xx_fw_update(data->client, fw, fsize, true); + mutex_unlock(&ist30xx_mutex); + + ist30xx_calibrate(1); + ist30xx_init_touch_driver(data); + break; + + default: + tsp_warn("%s(), Invalid fw file type!\n", __func__); + break; + } + + if (sec->cmd_state == CMD_STATE_OK) + snprintf(buf, sizeof(buf), "%s", "OK"); + else + snprintf(buf, sizeof(buf), "%s", "NG"); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); +} + + +static void get_fw_ver_bin(void *dev_data) +{ + u32 ver = 0; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + ver = ist30xx_parse_ver(FLAG_PARAM, data->fw.buf); + snprintf(buf, sizeof(buf), "IM00%04x", ver); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_fw_ver_ic(void *dev_data) +{ + u32 ver = 0; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + if (data->status.power == 1) + ver = ist30xxb_get_fw_ver(ts_data); + + snprintf(buf, sizeof(buf), "IM00%04x", ver & 0xFFFF); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_threshold(void *dev_data) +{ + char buf[16] = { 0 }; + int threshold; + u32 *cfg_buf; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + ist30xx_get_update_info(data, data->fw.buf, data->fw.buf_size); + cfg_buf = (u32 *)&data->fw.buf[data->tags.cfg_addr]; + + threshold = (int)(cfg_buf[0x108 / IST30XX_DATA_LEN] >> 16); + + snprintf(buf, sizeof(buf), "%d", threshold); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_x_num(void *dev_data) +{ + int val = ist30xx_tsp_info.width; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + if (val >= 0) { + snprintf(buf, sizeof(buf), "%u", val); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); + } else { + snprintf(buf, sizeof(buf), "%s", "NG"); + sec->cmd_state = CMD_STATE_FAIL; + dev_info(&data->client->dev, + "%s: fail to read num of x (%d).\n", __func__, val); + } + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + tsp_info("%s(), %s\n", __func__, buf); +} + +static void get_y_num(void *dev_data) +{ + int val = ist30xx_tsp_info.height; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + if (val >= 0) { + snprintf(buf, sizeof(buf), "%u", val); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); + } else { + snprintf(buf, sizeof(buf), "%s", "NG"); + sec->cmd_state = CMD_STATE_FAIL; + dev_info(&data->client->dev, + "%s: fail to read num of x (%d).\n", __func__, val); + } + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + tsp_info("%s(), %s\n", __func__, buf); +} + +int check_tsp_channel(void *dev_data) +{ + int node = -EPERM; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + TSP_INFO *tsp = &ist30xx_tsp_info; + + if ((sec->cmd_param[0] < 0) || (sec->cmd_param[0] >= tsp->width) || + (sec->cmd_param[1] < 0) || (sec->cmd_param[1] >= tsp->height)) { + dev_info(&data->client->dev, "%s: parameter error: %u,%u\n", + __func__, sec->cmd_param[0], sec->cmd_param[1]); + } else { + node = sec->cmd_param[0] + sec->cmd_param[1] * tsp->width; + dev_info(&data->client->dev, "%s: node = %d\n", __func__, node); + } + + return node; +} + + +extern int parse_tsp_node(u8 flag, struct TSP_NODE_BUF *node, s16 *buf16); +void run_reference_read(void *dev_data) +{ + int i, ret; + int min_val, max_val; + char buf[16] = { 0 }; + u8 flag = NODE_FLAG_RAW; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + TSP_INFO *tsp = &ist30xx_tsp_info; + + set_default_result(sec); + + ret = ist30xx_read_touch_node(flag, &tsp->node); + if (ret) { + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), tsp node read fail!\n", __func__); + return; + } + ist30xx_parse_touch_node(flag, &tsp->node); + + ret = parse_tsp_node(flag, &tsp->node, node_value); + if (ret) { + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), tsp node parse fail - flag: %d\n", __func__, flag); + return; + } + + min_val = max_val = node_value[0]; + for (i = 0; i < tsp->width * tsp->height; i++) { +#if TSP_NODE_DEBUG + if ((i % tsp->width) == 0) + printk("\n%s %4d: ", IST30XX_DEBUG_TAG, i); + + printk("%4d ", node_value[i]); +#endif + + max_val = max(max_val, (int)node_value[i]); + min_val = min(min_val, (int)node_value[i]); + } + + snprintf(buf, sizeof(buf), "%d,%d", min_val, max_val); + tsp_info("%s(), %s\n", __func__, buf); + + sec->cmd_state = CMD_STATE_OK; + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); +} + +void get_reference(void *dev_data) +{ + int idx = 0; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + idx = check_tsp_channel(data); + if (idx < 0) { // Parameter parsing fail + snprintf(buf, sizeof(buf), "%s", "NG"); + sec->cmd_state = CMD_STATE_FAIL; + } else { + snprintf(buf, sizeof(buf), "%d", node_value[idx]); + sec->cmd_state = CMD_STATE_OK; + } + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + tsp_info("%s(), [%d][%d]: %s\n", __func__, + sec->cmd_param[0], sec->cmd_param[1], buf); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); +} + + + +/* sysfs: /sys/class/sec/tsp/close_tsp_test */ +static ssize_t show_close_tsp_test(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return snprintf(buf, FACTORY_BUF_SIZE, "%u\n", 0); +} + +/* sysfs: /sys/class/sec/tsp/cmd */ +static ssize_t store_cmd(struct device *dev, struct device_attribute + *devattr, const char *buf, size_t count) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + struct sec_factory *sec = (struct sec_factory *)&data->sec; + struct i2c_client *client = data->client; + + char *cur, *start, *end; + char msg[SEC_CMD_STR_LEN] = { 0 }; + int len, i; + struct tsp_cmd *tsp_cmd_ptr = NULL; + char delim = ','; + bool cmd_found = false; + int param_cnt = 0; + int ret; + + if (sec->cmd_is_running == true) { + dev_err(&client->dev, "tsp_cmd: other cmd is running.\n"); + tsp_err("tsp_cmd: other cmd is running.\n"); + goto err_out; + } + + /* check lock */ + mutex_lock(&sec->cmd_lock); + sec->cmd_is_running = true; + mutex_unlock(&sec->cmd_lock); + + sec->cmd_state = CMD_STATE_RUNNING; + + for (i = 0; i < ARRAY_SIZE(sec->cmd_param); i++) + sec->cmd_param[i] = 0; + + len = (int)count; + if (*(buf + len - 1) == '\n') + len--; + memset(sec->cmd, 0, ARRAY_SIZE(sec->cmd)); + memcpy(sec->cmd, buf, len); + + cur = strchr(buf, (int)delim); + if (cur) + memcpy(msg, buf, cur - buf); + else + memcpy(msg, buf, len); + /* find command */ + list_for_each_entry(tsp_cmd_ptr, &sec->cmd_list_head, list) { + if (!strcmp(msg, tsp_cmd_ptr->cmd_name)) { + cmd_found = true; + break; + } + } + + /* set not_support_cmd */ + if (!cmd_found) { + list_for_each_entry(tsp_cmd_ptr, &sec->cmd_list_head, list) { + if (!strcmp("not_support_cmd", tsp_cmd_ptr->cmd_name)) + break; + } + } + + /* parsing parameters */ + if (cur && cmd_found) { + cur++; + start = cur; + memset(msg, 0, ARRAY_SIZE(msg)); + do { + if (*cur == delim || cur - buf == len) { + end = cur; + memcpy(msg, start, end - start); + *(msg + strlen(msg)) = '\0'; + ret = kstrtoint(msg, 10, \ + sec->cmd_param + param_cnt); + start = cur + 1; + memset(msg, 0, ARRAY_SIZE(msg)); + param_cnt++; + } + cur++; + } while (cur - buf <= len); + } + dev_info(&client->dev, "cmd = %s\n", tsp_cmd_ptr->cmd_name); + tsp_info("SEC CMD = %s\n", tsp_cmd_ptr->cmd_name); + + for (i = 0; i < param_cnt; i++) + dev_info(&client->dev, "cmd param %d= %d\n", i, sec->cmd_param[i]); + + tsp_cmd_ptr->cmd_func(data); + +err_out: + return count; +} + +/* sysfs: /sys/class/sec/tsp/cmd_status */ +static ssize_t show_cmd_status(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + struct sec_factory *sec = (struct sec_factory *)&data->sec; + char msg[16] = { 0 }; + + dev_info(&data->client->dev, "tsp cmd: status:%d\n", sec->cmd_state); + + if (sec->cmd_state == CMD_STATE_WAITING) + snprintf(msg, sizeof(msg), "WAITING"); + + else if (sec->cmd_state == CMD_STATE_RUNNING) + snprintf(msg, sizeof(msg), "RUNNING"); + + else if (sec->cmd_state == CMD_STATE_OK) + snprintf(msg, sizeof(msg), "OK"); + + else if (sec->cmd_state == CMD_STATE_FAIL) + snprintf(msg, sizeof(msg), "FAIL"); + + else if (sec->cmd_state == CMD_STATE_NA) + snprintf(msg, sizeof(msg), "NOT_APPLICABLE"); + + return snprintf(buf, FACTORY_BUF_SIZE, "%s\n", msg); +} + +/* sysfs: /sys/class/sec/tsp/result */ +static ssize_t show_cmd_result(struct device *dev, struct device_attribute + *devattr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + dev_info(&data->client->dev, "tsp cmd: result: %s\n", sec->cmd_result); + + mutex_lock(&sec->cmd_lock); + sec->cmd_is_running = false; + mutex_unlock(&sec->cmd_lock); + + sec->cmd_state = CMD_STATE_WAITING; + + return snprintf(buf, FACTORY_BUF_SIZE, "%s\n", sec->cmd_result); +} + + + +/* sysfs: /sys/class/sec/tsp/sec_touchscreen/tsp_firm_version_phone */ +static ssize_t phone_firmware_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + u32 ver = ist30xx_parse_ver(FLAG_PARAM, ts_data->fw.buf); + + tsp_info("%s(), IM00%04x\n", __func__, ver); + + return sprintf(buf, "IM00%04x", ver); +} + +/* sysfs: /sys/class/sec/tsp/sec_touchscreen/tsp_firm_version_panel */ +static ssize_t part_firmware_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + u32 ver = 0; + + if (ts_data->status.power == 1) + ver = ist30xxb_get_fw_ver(ts_data); + + tsp_info("%s(), IM00%04x\n", __func__, ver); + + return sprintf(buf, "IM00%04x", ver); +} + +/* sysfs: /sys/class/sec/tsp/sec_touchscreen/tsp_threshold */ +static ssize_t threshold_firmware_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int threshold; + u32 *cfg_buf; + + ist30xx_get_update_info(ts_data, ts_data->fw.buf, ts_data->fw.buf_size); + cfg_buf = (u32 *)&ts_data->fw.buf[ts_data->tags.cfg_addr]; + + threshold = (int)(cfg_buf[0x108 / IST30XX_DATA_LEN] >> 16); + + tsp_info("%s(), %d\n", __func__, threshold); + + return sprintf(buf, "%d", threshold); +} + +/* sysfs: /sys/class/sec/tsp/sec_touchscreen/tsp_firm_update */ +static ssize_t firmware_update(struct device *dev, struct device_attribute *attr, char *buf) +{ + bool ret; + + sprintf(IsfwUpdate, "%s\n", FW_DOWNLOADING); + tsp_info("%s(), %s\n", __func__, IsfwUpdate); + + ret = ist30xx_fw_recovery(ts_data); + ret = (ret == 0 ? 1 : -1); + + sprintf(IsfwUpdate, "%s\n", + (ret > 0 ? FW_DOWNLOAD_COMPLETE : FW_DOWNLOAD_FAIL)); + tsp_info("%s(), %s\n", __func__, IsfwUpdate); + + return sprintf(buf, "%d", ret); +} + +/* sysfs: /sys/class/sec/tsp/sec_touchscreen/tsp_firm_update_status */ +static ssize_t firmware_update_status(struct device *dev, struct device_attribute *attr, char *buf) +{ + tsp_info("%s(), %s\n", __func__, IsfwUpdate); + + return sprintf(buf, "%s\n", IsfwUpdate); +} + + +/* sysfs: /sys/class/sec/tsp/sec_touchkey/touchkey_recent */ +static ssize_t recent_sensitivity_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int sensitivity = ist30xxb_get_key_sensitivity(ts_data, 0); + + tsp_info("%s(), %d\n", __func__, sensitivity); + + return sprintf(buf, "%d\n", sensitivity); +} + +/* sysfs: /sys/class/sec/tsp/sec_touchkey/touchkey_back */ +static ssize_t back_sensitivity_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int sensitivity = ist30xxb_get_key_sensitivity(ts_data, 1); + + tsp_info("%s(), %d\n", __func__, sensitivity); + + return sprintf(buf, "%d\n", sensitivity); +} + +/* sysfs: /sys/class/sec/tsp/sec_touchkey/touchkey_threshold */ +static ssize_t touchkey_threshold_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int threshold; + u32 *cfg_buf; + + ist30xx_get_update_info(ts_data, ts_data->fw.buf, ts_data->fw.buf_size); + cfg_buf = (u32 *)&ts_data->fw.buf[ts_data->tags.cfg_addr]; + + threshold = (int)(cfg_buf[0x134 / IST30XX_DATA_LEN] >> 16); + + tsp_info("%s(), %d\n", __func__, threshold); + + return snprintf(buf, sizeof(int), "%d\n", threshold); +} +/* sysfs: /sys/class/sec/tsp/sec_touchkey/touchkey_dummy_btn1 */ +static ssize_t touchkey_dummy_btn1_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + printk("[TSP]Hidden btn 1 not supported\n"); + return 0; +} +/* sysfs: /sys/class/sec/tsp/sec_touchkey/touchkey_dummy_btn3 */ +static ssize_t touchkey_dummy_btn3_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + printk("[TSP]Hidden btn 3 not supported\n"); + return 0; +} +struct tsp_cmd tsp_cmd[] = { + { TSP_CMD("get_chip_vendor", get_chip_vendor), }, + { TSP_CMD("get_chip_name", get_chip_name), }, + { TSP_CMD("get_chip_id", get_chip_id), }, + { TSP_CMD("fw_update", fw_update), }, + { TSP_CMD("get_fw_ver_bin", get_fw_ver_bin), }, + { TSP_CMD("get_fw_ver_ic", get_fw_ver_ic), }, + { TSP_CMD("get_threshold", get_threshold), }, + { TSP_CMD("get_x_num", get_x_num), }, + { TSP_CMD("get_y_num", get_y_num), }, + { TSP_CMD("run_reference_read", run_reference_read),}, + { TSP_CMD("get_reference", get_reference), }, + { TSP_CMD("not_support_cmd", not_support_cmd), }, +}; + +#define SEC_DEFAULT_ATTR (S_IRUGO | S_IWUSR | S_IWGRP) +/* sysfs - touchscreen */ +static DEVICE_ATTR(tsp_firm_version_phone, SEC_DEFAULT_ATTR, + phone_firmware_show, NULL); +static DEVICE_ATTR(tsp_firm_version_panel, SEC_DEFAULT_ATTR, + part_firmware_show, NULL); +static DEVICE_ATTR(tsp_threshold, SEC_DEFAULT_ATTR, + threshold_firmware_show, NULL); +static DEVICE_ATTR(tsp_firm_update, SEC_DEFAULT_ATTR, + firmware_update, NULL); +static DEVICE_ATTR(tsp_firm_update_status, SEC_DEFAULT_ATTR, + firmware_update_status, NULL); + +/* sysfs - touchkey */ +static DEVICE_ATTR(touchkey_recent, SEC_DEFAULT_ATTR, + recent_sensitivity_show, NULL); +static DEVICE_ATTR(touchkey_back, SEC_DEFAULT_ATTR, + back_sensitivity_show, NULL); +static DEVICE_ATTR(touchkey_threshold, SEC_DEFAULT_ATTR, + touchkey_threshold_show, NULL); +static DEVICE_ATTR(touchkey_dummy_btn1, SEC_DEFAULT_ATTR, + touchkey_dummy_btn1_show,NULL); +static DEVICE_ATTR(touchkey_dummy_btn3, SEC_DEFAULT_ATTR, + touchkey_dummy_btn3_show,NULL); + +/* sysfs - tsp */ +static DEVICE_ATTR(close_tsp_test, S_IRUGO, show_close_tsp_test, NULL); +static DEVICE_ATTR(cmd, S_IWUSR | S_IWGRP, NULL, store_cmd); +static DEVICE_ATTR(cmd_status, S_IRUGO, show_cmd_status, NULL); +static DEVICE_ATTR(cmd_result, S_IRUGO, show_cmd_result, NULL); + +static struct attribute *sec_tsp_attributes[] = { + &dev_attr_tsp_firm_version_phone.attr, + &dev_attr_tsp_firm_version_panel.attr, + &dev_attr_tsp_threshold.attr, + &dev_attr_tsp_firm_update.attr, + &dev_attr_tsp_firm_update_status.attr, + NULL, +}; + +static struct attribute *sec_tkey_attributes[] = { + &dev_attr_touchkey_recent.attr, + &dev_attr_touchkey_back.attr, + &dev_attr_touchkey_threshold.attr, + &dev_attr_touchkey_dummy_btn1.attr, + &dev_attr_touchkey_dummy_btn3.attr, + NULL, +}; + +static struct attribute *sec_touch_facotry_attributes[] = { + &dev_attr_close_tsp_test.attr, + &dev_attr_cmd.attr, + &dev_attr_cmd_status.attr, + &dev_attr_cmd_result.attr, + NULL, +}; + +static struct attribute_group sec_tsp_attr_group = { + .attrs = sec_tsp_attributes, +}; + +static struct attribute_group sec_tkey_attr_group = { + .attrs = sec_tkey_attributes, +}; + +static struct attribute_group sec_touch_factory_attr_group = { + .attrs = sec_touch_facotry_attributes, +}; + +extern struct class *sec_class; +struct device *sec_touchscreen; +EXPORT_SYMBOL(sec_touchscreen); +struct device *sec_touchkey; +EXPORT_SYMBOL(sec_touchkey); +struct device *sec_fac_dev; + + +int sec_touch_sysfs(struct ist30xx_data *data) +{ + /* /sys/class/sec/sec_touchscreen */ + sec_touchscreen = device_create(sec_class, NULL, 0, NULL, "sec_touchscreen"); + if (IS_ERR(sec_touchscreen)) { + tsp_err("Failed to create device (%s)!\n", "sec_touchscreen"); + return -ENODEV; + } + /* /sys/class/sec/sec_touchscreen/... */ + if (sysfs_create_group(&sec_touchscreen->kobj, &sec_tsp_attr_group)) + tsp_err("Failed to create sysfs group(%s)!\n", "sec_touchscreen"); + + /* /sys/class/sec/sec_touchkey */ + sec_touchkey = device_create(sec_class, NULL, 0, NULL, "sec_touchkey"); + if (IS_ERR(sec_touchkey)) { + tsp_err("Failed to create device (%s)!\n", "sec_touchkey"); + return -ENODEV; + } + /* /sys/class/sec/sec_touchkey/... */ + if (sysfs_create_group(&sec_touchkey->kobj, &sec_tkey_attr_group)) + tsp_err("Failed to create sysfs group(%s)!\n", "sec_touchkey"); + + /* /sys/class/sec/tsp */ + sec_fac_dev = device_create(sec_class, NULL, 0, data, "tsp"); + if (IS_ERR(sec_fac_dev)) { + tsp_err("Failed to create device (%s)!\n", "tsp"); + return -ENODEV; + } + /* /sys/class/sec/tsp/... */ + if (sysfs_create_group(&sec_fac_dev->kobj, &sec_touch_factory_attr_group)) + tsp_err("Failed to create sysfs group(%s)!\n", "tsp"); + + return 0; +} + +int sec_fac_cmd_init(struct ist30xx_data *data) +{ + int i; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + INIT_LIST_HEAD(&sec->cmd_list_head); + for (i = 0; i < ARRAY_SIZE(tsp_cmd); i++) + list_add_tail(&tsp_cmd[i].list, &sec->cmd_list_head); + + mutex_init(&sec->cmd_lock); + sec->cmd_is_running = false; + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xx/ist30xx_sec.h b/drivers/input/touchscreen/ist30xx/ist30xx_sec.h new file mode 100644 index 00000000..517e14b8 --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/ist30xx_sec.h @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_SEC_H__ +#define __IST30XX_SEC_H__ + + +#define SEC_CMD_STR_LEN 32 +#define SEC_CMD_RESULT_STR_LEN 512 +#define SEC_CMD_PARAM_NUM 8 + +#include "ist30xx_tsp.h" + +struct sec_factory { + struct list_head cmd_list_head; + unsigned char cmd_state; + char cmd[SEC_CMD_STR_LEN]; + int cmd_param[SEC_CMD_PARAM_NUM]; + char cmd_result[SEC_CMD_RESULT_STR_LEN]; + struct mutex cmd_lock; + bool cmd_is_running; +}; + +#endif // __IST30XX_SEC_H__ diff --git a/drivers/input/touchscreen/ist30xx/ist30xx_sys.c b/drivers/input/touchscreen/ist30xx/ist30xx_sys.c new file mode 100644 index 00000000..0db0f318 --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/ist30xx_sys.c @@ -0,0 +1,327 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 +/* Removing the error for finding mach/vreg.h +#include +*/ +#include "ist30xx.h" +#include "ist30xx_tracking.h" +/*For regulators*/ +#include + + + + + + + +/****************************************************************************** + * Return value of Error + * EPERM : 1 (Operation not permitted) + * ENOENT : 2 (No such file or directory) + * EIO : 5 (I/O error) + * ENXIO : 6 (No such device or address) + * EINVAL : 22 (Invalid argument) + *****************************************************************************/ + +extern struct ist30xx_data *ts_data; +const u32 pos_cmd = cpu_to_be32(CMD_GET_COORD); +struct i2c_msg pos_msg[READ_CMD_MSG_LEN] = { + { + .flags = 0, + .len = IST30XX_ADDR_LEN, + .buf = (u8 *)&pos_cmd, + }, + { .flags = I2C_M_RD, }, +}; + +int ist30xx_get_position(struct i2c_client *client, u32 *buf, u16 len) +{ + int ret, i; + + pos_msg[0].addr = client->addr; + pos_msg[1].addr = client->addr; + pos_msg[1].len = len * IST30XX_DATA_LEN, + pos_msg[1].buf = (u8 *)buf, + + ret = i2c_transfer(client->adapter, pos_msg, READ_CMD_MSG_LEN); + if (ret != READ_CMD_MSG_LEN) { + tsp_err("%s: i2c failed (%d)\n", __func__, ret); + return -EIO; + } + + for (i = 0; i < len; i++) + buf[i] = cpu_to_be32(buf[i]); + + return 0; +} + +int ist30xx_cmd_run_device(struct i2c_client *client, bool is_reset) +{ + int ret = -EIO; + + if (is_reset == true) ist30xx_reset(); + ret = ist30xx_write_cmd(client, CMD_RUN_DEVICE, 0); + + ist30xx_tracking(TRACK_CMD_RUN_DEVICE); + + msleep(10); + + return ret; +} + +int ist30xx_cmd_start_scan(struct i2c_client *client) +{ + int ret; + + ret = ist30xx_write_cmd(client, CMD_START_SCAN, 0); + + ist30xx_tracking(TRACK_CMD_SCAN); + + msleep(100); + + ts_data->status.noise_mode = true; + + return ret; +} + +int ist30xx_cmd_calibrate(struct i2c_client *client) +{ + int ret = ist30xx_write_cmd(client, CMD_CALIBRATE, 0); + + ist30xx_tracking(TRACK_CMD_CALIB); + + tsp_info("%s\n", __func__); + + msleep(100); + + return ret; +} + +int ist30xx_cmd_check_calib(struct i2c_client *client) +{ + int ret = ist30xx_write_cmd(client, CMD_CHECK_CALIB, 0); + + ist30xx_tracking(TRACK_CMD_CHECK_CALIB); + + tsp_info("*** Check Calibration cmd ***\n"); + + msleep(20); + + return ret; +} + +int ist30xx_cmd_update(struct i2c_client *client, int cmd) +{ + u32 val = (cmd == CMD_ENTER_FW_UPDATE ? CMD_FW_UPDATE_MAGIC : 0); + int ret = ist30xx_write_cmd(client, cmd, val); + + ist30xx_tracking(TRACK_CMD_FWUPDATE); + + msleep(10); + + return ret; +} + +int ist30xx_cmd_reg(struct i2c_client *client, int cmd) +{ + int ret = ist30xx_write_cmd(client, cmd, 0); + + if (cmd == CMD_ENTER_REG_ACCESS) { + ist30xx_tracking(TRACK_CMD_ENTER_REG); + msleep(100); + } else if (cmd == CMD_EXIT_REG_ACCESS) { + ist30xx_tracking(TRACK_CMD_EXIT_REG); + msleep(10); + } + + return ret; +} + + +int ist30xx_read_cmd(struct i2c_client *client, u32 cmd, u32 *buf) +{ + int ret,count=0; + u32 le_reg = cpu_to_be32(cmd); + + struct i2c_msg msg[READ_CMD_MSG_LEN] = { + { + .addr = client->addr, + .flags = 0, + .len = IST30XX_ADDR_LEN, + .buf = (u8 *)&le_reg, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = IST30XX_DATA_LEN, + .buf = (u8 *)buf, + }, + }; +retry: + ret = i2c_transfer(client->adapter, msg, READ_CMD_MSG_LEN); + if (ret != READ_CMD_MSG_LEN) { + if(count++ < 3) + goto retry; + tsp_err("%s: i2c failed (%d), cmd: %x\n", __func__, ret, cmd); + return -EIO; + } + *buf = cpu_to_be32(*buf); + + return 0; +} + + +int ist30xx_write_cmd(struct i2c_client *client, u32 cmd, u32 val) +{ + int ret,count=0; + struct i2c_msg msg; + u8 msg_buf[IST30XX_ADDR_LEN + IST30XX_DATA_LEN]; + + put_unaligned_be32(cmd, msg_buf); + put_unaligned_be32(val, msg_buf + IST30XX_ADDR_LEN); + + msg.addr = client->addr; + msg.flags = 0; + msg.len = IST30XX_ADDR_LEN + IST30XX_DATA_LEN; + msg.buf = msg_buf; +retry: + ret = i2c_transfer(client->adapter, &msg, WRITE_CMD_MSG_LEN); + if (ret != WRITE_CMD_MSG_LEN) { + if(count++ < 3) + goto retry; + tsp_err("%s: i2c failed (%d), cmd: %x(%x)\n", __func__, ret, cmd, val); + return -EIO; + } + + return 0; +} + +static void ts_power_enable(int en) +{ + + + static struct regulator *ts_vdd = NULL; + + if (ts_vdd == NULL) { + ts_vdd = regulator_get(NULL, "vddsim2"); + + if (IS_ERR(ts_vdd)) { + pr_err("Get regulator of TSP error!\n"); + return; + } + } + if (en) { + regulator_set_voltage(ts_vdd, 3000000, 3000000); + regulator_enable(ts_vdd); + } + else if (regulator_is_enabled(ts_vdd)) { + regulator_disable(ts_vdd); + } + + + printk(KERN_INFO "%s %s\n", __func__, (en) ? "on" : "off"); + printk("%s: TS power change to %d.\n", __func__, en); +} + +int ist30xx_power_on(void) +{ + if (ts_data->status.power != 1) { + tsp_info("%s()\n", __func__); + /* VDD enable */ + /* VDDIO enable */ + ist30xx_tracking(TRACK_PWR_ON); + ts_power_enable(1); + msleep(100); + ts_data->status.power = 1; + printk("[ TSP ] %s\n", __func__); + } + + return 0; +} + + +int ist30xx_power_off(void) +{ + if (ts_data->status.power != 0) { + tsp_info("%s()\n", __func__); + /* VDDIO disable */ + /* VDD disable */ + ist30xx_tracking(TRACK_PWR_OFF); + ts_power_enable(0); + msleep(50); + ts_data->status.power = 0; + ts_data->status.noise_mode = false; + printk("[ TSP ] %s\n", __func__); + } + + return 0; +} + + +int ist30xx_reset(void) +{ + tsp_info("%s()\n", __func__); + ist30xx_power_off(); + msleep(10); + ist30xx_power_on(); + + ts_data->status.power = 1; + return 0; +} + + +int ist30xx_internal_suspend(struct ist30xx_data *data) +{ + ist30xx_power_off(); + return 0; +} + + +int ist30xx_internal_resume(struct ist30xx_data *data) +{ + ist30xx_power_on(); + ist30xx_cmd_run_device(data->client, false); + return 0; +} + + +int ist30xx_init_system(void) +{ + int ret; + + // TODO : place additional code here. + ret = ist30xx_power_on(); + if (ret) { + tsp_err("%s: ist30xx_power_on failed (%d)\n", __func__, ret); + return -EIO; + } +#if 0 + ret = ist30xx_reset(); + if (ret) { + tsp_err("%s: ist30xx_reset failed (%d)\n", __func__, ret); + return -EIO; + } +#endif + return 0; +} diff --git a/drivers/input/touchscreen/ist30xx/ist30xx_tracking.c b/drivers/input/touchscreen/ist30xx/ist30xx_tracking.c new file mode 100644 index 00000000..b3f153e1 --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/ist30xx_tracking.c @@ -0,0 +1,235 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 +/* Including the definition of S_IRWXUGO */ +// Can use S_IRUGO for better security. Verify the same. +#include + +#include "ist30xx.h" +#include "ist30xx_update.h" +#include "ist30xx_misc.h" +#include "ist30xx_tracking.h" + + +IST30XX_RING_BUF TrackBuf; +IST30XX_RING_BUF *pTrackBuf; + +bool tracking_initialize = false; + +void ist30xx_tracking_init(void) +{ + if (tracking_initialize) + return; + + pTrackBuf = &TrackBuf; + + pTrackBuf->RingBufCtr = 0; + pTrackBuf->RingBufInIdx = 0; + pTrackBuf->RingBufOutIdx = 0; + + tracking_initialize = true; +} + +void ist30xx_tracking_deinit(void) +{ +} + +int ist30xx_get_track(u32 *track, int cnt) +{ + int i; + u8 *buf = (u8 *)track; + unsigned long flags; + spinlock_t mr_lock = __SPIN_LOCK_UNLOCKED(); + + cnt *= sizeof(track[0]); + + if (pTrackBuf->RingBufCtr < (u16)cnt) + return IST30XX_RINGBUF_NOT_ENOUGH; + + spin_lock_irqsave(&mr_lock, flags); + + for (i = 0; i < cnt; i++) { + if (pTrackBuf->RingBufOutIdx == IST30XX_MAX_LOG_SIZE) + pTrackBuf->RingBufOutIdx = 0; + + *buf++ = (u8)pTrackBuf->LogBuf[pTrackBuf->RingBufOutIdx++]; + pTrackBuf->RingBufCtr--; + } + + spin_unlock_irqrestore(&mr_lock, flags); + + return IST30XX_RINGBUF_NO_ERR; +} + +u32 ist30xx_get_track_cnt(void) +{ + return pTrackBuf->RingBufCtr; +} + +#if IST30XX_TRACKING_MODE +int ist30xx_put_track(u32 *track, int cnt) +{ + int i; + u8 *buf = (u8 *)track; + unsigned long flags; + spinlock_t mr_lock = __SPIN_LOCK_UNLOCKED(); + + spin_lock_irqsave(&mr_lock, flags); + + cnt *= sizeof(track[0]); + + pTrackBuf->RingBufCtr += cnt; + if (pTrackBuf->RingBufCtr > IST30XX_MAX_LOG_SIZE) { + pTrackBuf->RingBufOutIdx += + (pTrackBuf->RingBufCtr - IST30XX_MAX_LOG_SIZE); + if (pTrackBuf->RingBufOutIdx >= IST30XX_MAX_LOG_SIZE) + pTrackBuf->RingBufOutIdx -= IST30XX_MAX_LOG_SIZE; + + pTrackBuf->RingBufCtr = IST30XX_MAX_LOG_SIZE; + } + + for (i = 0; i < cnt; i++) { + if (pTrackBuf->RingBufInIdx == IST30XX_MAX_LOG_SIZE) + pTrackBuf->RingBufInIdx = 0; + pTrackBuf->LogBuf[pTrackBuf->RingBufInIdx++] = *buf++; + } + + spin_unlock_irqrestore(&mr_lock, flags); + + return IST30XX_RINGBUF_NO_ERR; +} + +int ist30xx_put_track_ms(u32 ms) +{ + ms &= 0x0000FFFF; + ms |= IST30XX_TRACKING_MAGIC; + + return ist30xx_put_track(&ms, 1); +} + +static struct timespec t_track; +int ist30xx_tracking(u32 status) +{ + u32 ms; + + if (!tracking_initialize) + ist30xx_tracking_init(); + + ktime_get_ts(&t_track); + ms = t_track.tv_sec * 1000 + t_track.tv_nsec / 1000000; + + ist30xx_put_track_ms(ms); + ist30xx_put_track(&status, 1); + + return 0; +} +#else +int ist30xx_put_track(u32 *track, int cnt) +{ + return 0; +} +int ist30xx_put_track_ms(u32 ms) +{ + return 0; +} +int ist30xx_tracking(u32 status) +{ + return 0; +} +#endif // IST30XX_TRACKING_MODE + +#define MAX_TRACKING_COUNT (1024) +struct timespec t_curr; // ns + +/* sysfs: /sys/class/touch/tracking/track_frame */ +ssize_t ist30xx_track_frame_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int i, buf_cnt = 0; + u32 track_cnt = MAX_TRACKING_COUNT; + u32 track; + char msg[10]; + + mutex_lock(&ist30xx_mutex); + + buf[0] = '\0'; + + if (track_cnt > ist30xx_get_track_cnt()) + track_cnt = ist30xx_get_track_cnt(); + + track_cnt /= sizeof(track); + + tsp_verb("num: %d of %d\n", track_cnt, ist30xx_get_track_cnt()); + + for (i = 0; i < track_cnt; i++) { + ist30xx_get_track(&track, 1); + + tsp_verb("%08X\n", track); + + buf_cnt += sprintf(msg, "%08x", track); + strcat(buf, msg); + } + + mutex_unlock(&ist30xx_mutex); + + return buf_cnt; +} + +/* sysfs: /sys/class/touch/tracking/track_cnt */ +ssize_t ist30xx_track_cnt_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + u32 val = (u32)ist30xx_get_track_cnt(); + + tsp_verb("tracking cnt: %d\n", val); + + return sprintf(buf, "%08x", val); +} + + +/* sysfs */ +static DEVICE_ATTR(track_frame, S_IRUGO, ist30xx_track_frame_show, NULL); +static DEVICE_ATTR(track_cnt, S_IRUGO, ist30xx_track_cnt_show, NULL); + +static struct attribute *tracking_attributes[] = { + &dev_attr_track_frame.attr, + &dev_attr_track_cnt.attr, + NULL, +}; + +static struct attribute_group tracking_attr_group = { + .attrs = tracking_attributes, +}; + +extern struct class *ist30xx_class; +struct device *ist30xx_tracking_dev; + +int ist30xx_init_tracking_sysfs(void) +{ + /* /sys/class/touch/tracking */ + ist30xx_tracking_dev = device_create(ist30xx_class, NULL, 0, NULL, "tracking"); + + /* /sys/class/touch/tracking/... */ + if (sysfs_create_group(&ist30xx_tracking_dev->kobj, &tracking_attr_group)) + tsp_err("[ TSP ] Failed to create sysfs group(%s)!\n", "tracking"); + + ist30xx_tracking_init(); + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xx/ist30xx_tracking.h b/drivers/input/touchscreen/ist30xx/ist30xx_tracking.h new file mode 100644 index 00000000..8655090e --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/ist30xx_tracking.h @@ -0,0 +1,57 @@ +#ifndef __IST30XX_TRACKING_H__ +#define __IST30XX_TRACKING_H__ + + +#define IST30XX_RINGBUF_NO_ERR (0) +#define IST30XX_RINGBUF_NOT_ENOUGH (1) +#define IST30XX_RINGBUF_EMPTY (2) +#define IST30XX_RINGBUF_FULL (3) +#define IST30XX_RINGBUF_TIMEOUT (4) +#define IST30XX_MAX_LOG_SIZE (4 * 100 * 1024) // 4bytes * 100Kbytes, Single touch: about 12minutes + +#define TRACK_PWR_OFF (0x0) +#define TRACK_PWR_ON (0x1) +#define TRACK_PWR_RESET (0x3) +#define TRACK_INTR_ENABLE (0x4) +#define TRACK_INTR_DISABLE (0x5) +#define TRACK_CMD_RUN_DEVICE (0x10) +#define TRACK_CMD_SCAN (0x11) +#define TRACK_CMD_TACON (0x12) +#define TRACK_CMD_TADISCON (0x13) +#define TRACK_CMD_FWUPDATE (0x14) +#define TRACK_CMD_PRUPDATE (0x15) +#define TRACK_CMD_CALIB (0x16) +#define TRACK_CMD_CHECK_CALIB (0x17) +#define TRACK_CMD_CHKSUM (0x18) +#define TRACK_CMD_CHKSUM_ALL (0x19) +#define TRACK_CMD_ENTER_REG (0x1A) +#define TRACK_CMD_EXIT_REG (0x1B) +#define TRACK_POS_FINGER (0x20) +#define TRACK_POS_KEY (0x30) +#define TRACK_POS_UNKNOWN (0x3F) + +#define IST30XX_TRACKING_MAGIC (0x7750 << 16) + + +typedef struct _IST30XX_RINGBUF { + u32 RingBufCtr; // Number of characters in the ring buffer + u32 RingBufInIdx; + u32 RingBufOutIdx; + u8 LogBuf[IST30XX_MAX_LOG_SIZE]; // Ring buffer for status +} IST30XX_RING_BUF; + + +void ist30xx_tracking_init(void); +void ist30xx_tracking_deinit(void); + +int ist30xx_get_track(u32 *track, int cnt); +int ist30xx_put_track(u32 *track, int cnt); +int ist30xx_put_track_ms(u32 ms); + +u32 ist30xx_get_track_cnt(void); + +int ist30xx_tracking(u32 status); + +int ist30xx_init_tracking_sysfs(void); + +#endif // __IST30XX_TRACKING_H__ diff --git a/drivers/input/touchscreen/ist30xx/ist30xx_tsp.h b/drivers/input/touchscreen/ist30xx/ist30xx_tsp.h new file mode 100644 index 00000000..aca0a629 --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/ist30xx_tsp.h @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_TSP_H__ +#define __IST30XX_TSP_H__ + +#define IST30XX_DD_VERSION (3) +// Multi TSP not yet enabled in imagis 3038. +#define IST30XX_MULTIPLE_TSP (0) + +#define TSP_CHIP_VENDOR ("IMAGIS") +#define TSP_CHIP_NAME ("IST3038") + +#define FLAG_NODE_Y (0) +#define FLAG_NODE_X (1) + +#define NODE_TX_NUM (22) +#define NODE_RX_NUM (14) +#define NODE_TOTAL_NUM (NODE_TX_NUM * NODE_RX_NUM) + +#define TSP_TX_NUM (21) +#define TSP_RX_NUM (13) +#define TSP_TOTAL_NUM (TSP_TX_NUM * TSP_RX_NUM) + +#define TSP_THRESHOLD (30) +#define TKEY_THRESHOLD (600) + +#define IST30XXB_PARSE_TSPTYPE(k) ((k >> 1) & 0xF) + +#define TSP_TYPE_UNKNOWN (0xF0) +#define TSP_TYPE_ALPS (0xF) +#define TSP_TYPE_EELY (0xE) +#define TSP_TYPE_TOP (0xD) +#define TSP_TYPE_MELFAS (0xC) +#define TSP_TYPE_ILJIN (0xB) +#define TSP_TYPE_SYNOPEX (0xA) +#define TSP_TYPE_SMAC (0x9) +#define TSP_TYPE_OTHERS (0x8) + +#endif // __IST30XX_TSP_H__ diff --git a/drivers/input/touchscreen/ist30xx/ist30xx_update.c b/drivers/input/touchscreen/ist30xx/ist30xx_update.c new file mode 100644 index 00000000..17379061 --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/ist30xx_update.c @@ -0,0 +1,1449 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 + +/* Including the definition of S_IRWXUGO */ +// Can use S_IRUGO for better security. Verify the same. +#include + +#include "ist30xx.h" +#include "ist30xx_update.h" +#include "ist30xx_tracking.h" + +#if IST30XX_DEBUG +#include "ist30xx_misc.h" +#endif + +#if IST30XX_INTERNAL_BIN +#if defined(CONFIG_MACH_KANAS) +#include "./firmware/IST3038_FW_KANAS.h" +#elif defined(CONFIG_MACH_TSHARKWSAMSUNG) +#include "./firmware/ist3038_fw_tshark_ver0007.h" +#elif defined(CONFIG_MACH_CORE3) +#include "./firmware/ist3038_fw_kanas_ver0006_20140401.h" +#else +#include "./firmware/ist3038_fw_kanas_ver0006_20140401.h" +#endif +# if IST30XX_MULTIPLE_TSP +# include "./firmware/ist3038_fw_kanas_ver0001_20140225.h" //Not proper file +# include "./firmware/ist3038_fw_kanas_ver0001_20140225.h" //Not proper file +# endif +#endif // IST30XX_INTERNAL_BIN + +struct ist30xx_tags *ts_tags; + +u32 ist30xx_fw_ver = 0; +u32 ist30xx_param_ver = 0; +u32 ist30xx_sub_ver = 0; + +extern struct ist30xx_data *ts_data; + +extern void ist30xx_disable_irq(struct ist30xx_data *data); +extern void ist30xx_enable_irq(struct ist30xx_data *data); + + +int ist30xx_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, + int msg_num, u8 *cmd_buf) +{ + int ret = 0; + int idx = msg_num - 1; + int size = msgs[idx].len; + u8 *msg_buf = NULL; + u8 *pbuf = NULL; + int max_size = 0; + + if (msg_num == WRITE_CMD_MSG_LEN) + max_size = I2C_MAX_WRITE_SIZE; + else if (msg_num == READ_CMD_MSG_LEN) + max_size = I2C_MAX_READ_SIZE; + + if (unlikely(max_size == 0)) { + tsp_err("%s() : transaction size(%d)\n", __func__, max_size); + return -EINVAL; + } + + if (msg_num == WRITE_CMD_MSG_LEN) { + msg_buf = kmalloc(max_size + IST30XX_ADDR_LEN, GFP_KERNEL); + if (!msg_buf) + return -ENOMEM; + memcpy(msg_buf, cmd_buf, IST30XX_ADDR_LEN); + pbuf = msgs[idx].buf; + } + + while (size > 0) { + int trans_size = (size >= max_size ? max_size : size); + + msgs[idx].len = trans_size; + if (msg_num == WRITE_CMD_MSG_LEN) { + memcpy(&msg_buf[IST30XX_ADDR_LEN], pbuf, trans_size); + msgs[idx].buf = msg_buf; + msgs[idx].len += IST30XX_ADDR_LEN; + } + ret = i2c_transfer(adap, msgs, msg_num); + if (unlikely(ret != msg_num)) { + tsp_err("%s() : i2c_transfer failed(%d), num=%d\n", + __func__, ret, msg_num); + break; + } + + if (msg_num == WRITE_CMD_MSG_LEN) + pbuf += trans_size; + else + msgs[idx].buf += trans_size; + + size -= trans_size; + } + + if (msg_num == WRITE_CMD_MSG_LEN) + kfree(msg_buf); + + return ret; +} + +int ist30xx_read_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len) +{ + int ret, i; + u32 le_reg = cpu_to_be32(cmd); + + struct i2c_msg msg[READ_CMD_MSG_LEN] = { + { + .addr = client->addr, + .flags = 0, + .len = IST30XX_ADDR_LEN, + .buf = (u8 *)&le_reg, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = len * IST30XX_DATA_LEN, + .buf = (u8 *)buf, + }, + }; + + ret = ist30xx_i2c_transfer(client->adapter, msg, READ_CMD_MSG_LEN, NULL); + if (unlikely(ret != READ_CMD_MSG_LEN)) + return -EIO; + + for (i = 0; i < len; i++) + buf[i] = cpu_to_be32(buf[i]); + + return 0; +} + +int ist30xx_write_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len) +{ + int ret; + struct i2c_msg msg; + u8 cmd_buf[IST30XX_ADDR_LEN]; + u8 msg_buf[IST30XX_DATA_LEN * (len + 1)]; + + put_unaligned_be32(cmd, cmd_buf); + + if (likely(len > 0)) { + int i; + for (i = 0; i < len; i++) + put_unaligned_be32(buf[i], msg_buf + (i * IST30XX_DATA_LEN)); + } else { + /* then add dummy data(4byte) */ + put_unaligned_be32(0, msg_buf); + len = 1; + } + + msg.addr = client->addr; + msg.flags = 0; + msg.len = IST30XX_DATA_LEN * len; + msg.buf = msg_buf; + + ret = ist30xx_i2c_transfer(client->adapter, &msg, WRITE_CMD_MSG_LEN, cmd_buf); + if (unlikely(ret != WRITE_CMD_MSG_LEN)) + return -EIO; + + return 0; +} + +int ist30xxb_burst_read(struct i2c_client *client, u32 addr, + u32 *buf32, int len) +{ + int i; + int max_len = I2C_MAX_READ_SIZE / IST30XX_DATA_LEN; + + addr |= IST30XXB_BURST_ACCESS; + + for (i = 0; i < len; i += max_len) { + int ret = 0; + if (len < max_len) max_len = len; + + ret = ist30xx_read_buf(client, addr, buf32, max_len); + if (unlikely(ret)) { + tsp_err("Burst fail, addr: %x\n", __func__, addr); + return ret; + } + + addr += max_len * IST30XX_DATA_LEN; + buf32 += max_len; + } + + return 0; +} + +#define IST30XXB_ISP_READ (1) +#define IST30XXB_ISP_WRITE (2) +#define IST30XXB_ISP_ERASE_ALL (3) +#define IST30XXB_ISP_ERASE_PAGE (4) + +int ist30xxb_isp_reset(void) +{ + int ret = 0; + + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_EEPPWRCTRL, 0xB200); + if (unlikely(ret)) return ret; + + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_EEPPWRCTRL, 0x9200); + if (unlikely(ret)) return ret; + + msleep(1); + + return ret; +} + +int ist30xxb_isp_enable(bool enable) +{ + int ret = 0; + + if (enable) { + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_EEPISPEN, 0x3); + if (unlikely(ret)) return ret; + + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_LDOOSC, 0xF4C8); + if (unlikely(ret)) return ret; + + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_CLKDIV, 0x3); + if (unlikely(ret)) return ret; + + msleep(5); + } else { + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_EEPISPEN, 0x2); + if (unlikely(ret)) return ret; + + msleep(1); + } + + return 0; +} + +int ist30xxb_isp_mode(int mode) +{ + int ret = 0; + u32 val = 0; + + switch (mode) { + case IST30XXB_ISP_READ: + val = 0x1C0; + break; + case IST30XXB_ISP_WRITE: + val = 0x1A8; + break; + case IST30XXB_ISP_ERASE_ALL: + val = 0x1A7; + break; + case IST30XXB_ISP_ERASE_PAGE: + val = 0x1A3; + break; + default: + tsp_err("ISP fail, unknown mode\n"); + return -EINVAL; + } + + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_EEPMODE, val); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_EEPMODE\n"); + return ret; + } + + return 0; +} + +int ist30xxb_isp_erase(struct i2c_client *client, int mode, u32 addr) +{ + int ret = 0; + u32 val = 0x1A0; + u8 buf[EEPROM_PAGE_SIZE] = { 0, }; + + ret = ist30xxb_isp_mode(mode); + if (unlikely(ret)) return ret; + + ret = ist30xx_write_cmd(client, IST30XXB_REG_EEPADDR, addr); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_EEPADDR\n"); + return ret; + } + + val = (EEPROM_PAGE_SIZE / IST30XX_DATA_LEN); + ret = ist30xx_write_buf(client, IST30XXB_REG_EEPWDAT, (u32 *)buf, val); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_EEPWDAT\n"); + return ret; + } + + msleep(30); + + ist30xxb_isp_reset(); + + return 0; +} + +int ist30xxb_isp_write(struct i2c_client *client, u32 addr, + const u32 *buf32, int len) +{ + int ret = 0; + + ret = ist30xx_write_cmd(client, IST30XXB_REG_EEPADDR, addr); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_EEPADDR\n"); + return ret; + } + + ret = ist30xx_write_buf(client, IST30XXB_REG_EEPWDAT, (u32 *)buf32, len); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_EEPWDAT\n"); + return ret; + } + + return 0; +} + +int ist30xxb_isp_read(struct i2c_client *client, u32 addr, + u32 *buf32, int len) +{ + int i; + int max_len = I2C_MAX_READ_SIZE / IST30XX_DATA_LEN; + + for (i = 0; i < len; i += max_len) { + int ret = 0; + if (len < max_len) max_len = len; + + /* IST30xxB ISP read mode */ + ret = ist30xxb_isp_mode(IST30XXB_ISP_READ); + if (unlikely(ret)) return ret; + + ret = ist30xx_write_cmd(client, IST30XXB_REG_EEPADDR, addr); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_EEPADDR\n"); + return ret; + } + + ret = ist30xx_read_buf(client, IST30XXB_REG_EEPRDAT, buf32, max_len); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_EEPWDAT\n"); + return ret; + } + + addr += max_len * IST30XX_DATA_LEN; + buf32 += max_len; + } + + return 0; +} + +int ist30xxb_cmd_read_chksum(struct i2c_client *client, + u32 start_addr, u32 end_addr, u32 *chksum) +{ + int ret = 0; + u32 val = (1 << 31); // Chkecksum enable + + val |= start_addr; + val |= (end_addr / IST30XX_DATA_LEN - 1) << 16; + + ret = ist30xx_write_cmd(client, IST30XXB_REG_CHKSMOD, val); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_CHKSMOD (%x)\n", val); + return ret; + } + + msleep(10); + + ret = ist30xx_read_cmd(client, IST30XXB_REG_CHKSDAT, chksum); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_CHKSDAT (%x)\n", chksum); + return ret; + } + + tsp_verb("chksum: %x (%x~%x)\n", *chksum, start_addr, end_addr); + + return 0; +} + +int ist30xxb_read_chksum(struct i2c_client *client, u32 *chksum) +{ + int ret = 0; + u32 start_addr, end_addr; + u32 chksum1 = 0, chksum2 = 0; + + start_addr = 0; + end_addr = ts_data->tags.flag_addr; + ret = ist30xxb_cmd_read_chksum(client, start_addr, end_addr, &chksum1); + if (unlikely(ret)) return ret; + + start_addr = ts_data->tags.flag_addr + ts_data->tags.flag_size; + end_addr = ts_data->tags.sensor2_addr + ts_data->tags.sensor2_size; + ret = ist30xxb_cmd_read_chksum(client, start_addr, end_addr, &chksum2); + if (unlikely(ret)) return ret; + + *chksum = chksum1 | (chksum2 << 16); + + tsp_info("Chksum: %x(%x~%x, %x~%x)\n", *chksum, 0, ts_data->tags.flag_addr, + start_addr, end_addr); + + return 0; +} + + +int ist30xxb_isp_fw_read(struct i2c_client *client, u32 *buf32) +{ + int ret = 0; + int i; + + u16 addr = EEPROM_BASE_ADDR; + int len = EEPROM_PAGE_SIZE / IST30XX_DATA_LEN; + + ist30xx_reset(); + + /* IST30xxB ISP enable */ + ret = ist30xxb_isp_enable(true); + if (unlikely(ret)) return ret; + + for (i = 0; i < IST30XX_EEPROM_SIZE; i += EEPROM_PAGE_SIZE) { + ret = ist30xxb_isp_read(client, addr, buf32, len); + if (unlikely(ret)) goto isp_fw_read_end; + + addr += EEPROM_PAGE_SIZE; + buf32 += len; + } + +isp_fw_read_end: + /* IST30xxB ISP disable */ + ist30xxb_isp_enable(false); + return ret; +} + +int ist30xxb_isp_fw_update(struct i2c_client *client, const u8 *buf, u32 *chksum) +{ + int ret = 0; + int i; + u32 page_cnt = IST30XX_EEPROM_SIZE / EEPROM_PAGE_SIZE; + u16 addr = EEPROM_BASE_ADDR; + int len = EEPROM_PAGE_SIZE / IST30XX_DATA_LEN; + + ist30xx_tracking(TRACK_CMD_FWUPDATE); + + /* IST30xxB ISP enable */ + ret = ist30xxb_isp_enable(true); + if (unlikely(ret)) goto isp_fw_update_end; + + ret = ist30xxb_isp_erase(client, IST30XXB_ISP_ERASE_ALL, 0); + if (unlikely(ret)) goto isp_fw_update_end; + + for (i = 0; i < page_cnt; i++) { + /* IST30xxB ISP write mode */ + ret = ist30xxb_isp_mode(IST30XXB_ISP_WRITE); + if (unlikely(ret)) goto isp_fw_update_end; + + ret = ist30xxb_isp_write(client, addr, (u32 *)buf, len); + if (unlikely(ret)) goto isp_fw_update_end; + + addr += EEPROM_PAGE_SIZE; + buf += EEPROM_PAGE_SIZE; + + msleep(5); + + ist30xxb_isp_reset(); + } + +isp_fw_update_end: + /* IST30xxB ISP disable */ + ist30xxb_isp_enable(false); + return ret; +} + +int ist30xxb_isp_bootloader(struct i2c_client *client, const u8 *buf) +{ + int ret = 0; + int i; + u16 addr = EEPROM_BASE_ADDR; + u32 page_cnt = (ts_data->fw.index) / EEPROM_PAGE_SIZE; + int buf_cnt = EEPROM_PAGE_SIZE / IST30XX_DATA_LEN; + + tsp_info("*** Bootloader update (0x%x~0x%x) ***\n", + EEPROM_BASE_ADDR, ts_data->fw.index); + + /* IST30xxB ISP enable */ + ret = ist30xxb_isp_enable(true); + if (unlikely(ret)) goto isp_bootldr_end; + + ret = ist30xxb_isp_erase(client, IST30XXB_ISP_ERASE_ALL, 0); + if (unlikely(ret)) goto isp_bootldr_end; + + for (i = 0; i < page_cnt; i++) { + /* IST30xxB ISP write mode */ + ret = ist30xxb_isp_mode(IST30XXB_ISP_WRITE); + if (unlikely(ret)) goto isp_bootldr_end; + + ret = ist30xxb_isp_write(client, addr, (u32 *)buf, buf_cnt); + if (unlikely(ret)) goto isp_bootldr_end; + + addr += EEPROM_PAGE_SIZE; + buf += EEPROM_PAGE_SIZE; + + msleep(5); + + ist30xxb_isp_reset(); + } + +isp_bootldr_end: + /* IST30xxB ISP disable */ + ist30xxb_isp_enable(false); + return ret; +} + + +int ist30xx_fw_write(struct i2c_client *client, const u8 *buf) +{ + u32 *buf32 = (u32 *)(buf + ts_data->fw.index); + u32 size = ts_data->fw.size; + + if (unlikely(size == 0 || size > IST30XX_EEPROM_SIZE)) + return -ENOEXEC; + + while (size > 0) { + int len = (size >= EEPROM_PAGE_SIZE ? EEPROM_PAGE_SIZE : size); + + int ret = ist30xx_write_buf(client, CMD_ENTER_FW_UPDATE, buf32, (len >> 2)); + if (unlikely(ret)) + return ret; + + buf32 += (len >> 2); + size -= len; + + msleep(5); + } + return 0; +} + + +u32 ist30xx_parse_ver(int flag, const u8 *buf) +{ + u32 ver = 0; + u32 *buf32 = (u32 *)buf; + + if (flag == FLAG_FW) + ver = (u32)buf32[(ts_data->tags.flag_addr + 4) >> 2]; + else if (flag == FLAG_SUB) + ver = (u32)buf32[(ts_data->tags.flag_addr + 8) >> 2]; + else if (flag == FLAG_PARAM) + ver = (u32)(buf32[(ts_data->tags.cfg_addr + 4) >> 2] & 0xFFFF); + else + tsp_warn("Parsing ver's flag is not corrent!\n"); + + return ver; +} + + +int calib_ms_delay = WAIT_CALIB_CNT; +int ist30xx_calib_wait(void) +{ + int cnt = calib_ms_delay; + + ts_data->status.calib_msg = 0; + while (cnt-- > 0) { + msleep(100); + + if (ts_data->status.calib_msg) { + tsp_info("Calibration status : %d, Max raw gap : %d - (%08x)\n", + CALIB_TO_STATUS(ts_data->status.calib_msg), + CALIB_TO_GAP(ts_data->status.calib_msg), + ts_data->status.calib_msg); + + if (CALIB_TO_OS_VALUE(ts_data->status.calib_msg) == 0xFFFF) + return 1; + else if (CALIB_TO_STATUS(ts_data->status.calib_msg) == 0) + return 0; // Calibrate success + else + return -EAGAIN; + } + } + tsp_warn("Calibration time out\n"); + + return -EPERM; +} + +int ist30xx_calibrate(int wait_cnt) +{ + int ret = -ENOEXEC; + + tsp_info("*** Calibrate %ds ***\n", calib_ms_delay / 10); + + ts_data->status.update = 1; + while (wait_cnt--) { + ist30xx_disable_irq(ts_data); + ret = ist30xx_cmd_run_device(ts_data->client, true); + if (unlikely(ret)) continue; + + ret = ist30xx_cmd_calibrate(ts_data->client); + if (unlikely(ret)) continue; + + ist30xx_enable_irq(ts_data); + ret = ist30xx_calib_wait(); + if (likely(ret == 0)) break; + } + + ist30xx_disable_irq(ts_data); + ist30xx_cmd_run_device(ts_data->client, true); + + ts_data->status.update = 2; + + ist30xx_enable_irq(ts_data); + + return ret; +} + + +int ist30xx_parse_tags(struct ist30xx_data *data, const u8 *buf, const u32 size) +{ + int ret = -EPERM; + + ts_tags = (struct ist30xx_tags *)(&buf[size - sizeof(struct ist30xx_tags)]); + + if (!strncmp(ts_tags->magic1, IST30XX_TAG_MAGIC, sizeof(ts_tags->magic1)) + && !strncmp(ts_tags->magic2, IST30XX_TAG_MAGIC, sizeof(ts_tags->magic2))) { + data->fw.index = ts_tags->fw_addr; + data->fw.size = ts_tags->flag_addr - ts_tags->fw_addr + + ts_tags->flag_size; + data->fw.chksum = ts_tags->chksum; + data->tags = *ts_tags; + + ret = 0; + } + + tsp_verb("Tagts magic1: %s, magic2: %s\n", + ts_tags->magic1, ts_tags->magic2); + tsp_verb(" fw: %x(%x)\n", ts_tags->fw_addr, ts_tags->fw_size); + tsp_verb(" flag: %x(%x)\n", ts_tags->flag_addr, ts_tags->flag_size); + tsp_verb(" cfg: %x(%x)\n", ts_tags->cfg_addr, ts_tags->cfg_size); + tsp_verb(" sensor1: %x(%x)\n", ts_tags->sensor1_addr, ts_tags->sensor1_size); + tsp_verb(" sensor2: %x(%x)\n", ts_tags->sensor2_addr, ts_tags->sensor2_size); + tsp_verb(" sensor3: %x(%x)\n", ts_tags->sensor3_addr, ts_tags->sensor3_size); + tsp_verb(" chksum: %x\n", ts_tags->chksum); + + return ret; +} + +void ist30xx_get_update_info(struct ist30xx_data *data, const u8 *buf, const u32 size) +{ + int ret; + + ret = ist30xx_parse_tags(data, buf, size); + if (unlikely(ret != TAGS_PARSE_OK)) + tsp_warn("Cannot find tags of F/W, make a tags by 'tagts.exe'\n"); +} + +#if (IST30XX_DEBUG) && (IST30XX_INTERNAL_BIN) +extern TSP_INFO ist30xx_tsp_info; +extern TKEY_INFO ist30xx_tkey_info; +int ist30xx_get_tkey_info(struct ist30xx_data *data) +{ + int ret = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + TKEY_INFO *tkey = &ist30xx_tkey_info; + u8 *cfg_buf; + + ist30xx_get_update_info(data, data->fw.buf, data->fw.buf_size); + cfg_buf = (u8 *)&data->fw.buf[data->tags.cfg_addr]; + + tkey->enable = (bool)(cfg_buf[0x14] & 1); + tkey->axis_rx = (bool)((cfg_buf[0x14] >> 1) & 1); + tkey->key_num = (u8)cfg_buf[0x15]; + tkey->ch_num[0] = (u8)cfg_buf[0x16]; + tkey->ch_num[1] = (u8)cfg_buf[0x17]; + tkey->ch_num[2] = (u8)cfg_buf[0x18]; + tkey->ch_num[3] = (u8)cfg_buf[0x19]; + tkey->ch_num[4] = (u8)cfg_buf[0x1A]; + + if (tkey->axis_rx) { + if (tsp->dir.swap_xy) tsp->height -= 1; + else tsp->width -= 1; + } else { + if (tsp->dir.swap_xy) tsp->width -= 1; + else tsp->height -= 1; + } + + return ret; +} + +#define TSP_INFO_SWAP_XY (1 << 0) +#define TSP_INFO_FLIP_X (1 << 1) +#define TSP_INFO_FLIP_Y (1 << 2) +int ist30xx_get_tsp_info(struct ist30xx_data *data) +{ + int ret = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + u8 *cfg_buf, *sensor_buf; + + ist30xx_get_update_info(data, data->fw.buf, data->fw.buf_size); + cfg_buf = (u8 *)&data->fw.buf[data->tags.cfg_addr]; + sensor_buf = (u8 *)&data->fw.buf[data->tags.sensor1_addr]; + + tsp->finger_num = (u8)cfg_buf[0x0E]; + tsp->dir.swap_xy = (bool)(cfg_buf[0xF] & TSP_INFO_SWAP_XY ? true : false); + tsp->dir.flip_x = (bool)(cfg_buf[0xF] & TSP_INFO_FLIP_X ? true : false); + tsp->dir.flip_y = (bool)(cfg_buf[0xF] & TSP_INFO_FLIP_Y ? true : false); + + tsp->ch_num.tx = (u8)sensor_buf[0x40]; + tsp->ch_num.rx = (u8)sensor_buf[0x41]; + + tsp->node.len = tsp->ch_num.tx * tsp->ch_num.rx; + tsp->height = (tsp->dir.swap_xy ? tsp->ch_num.rx : tsp->ch_num.tx); + tsp->width = (tsp->dir.swap_xy ? tsp->ch_num.tx : tsp->ch_num.rx); + + return ret; +} +#endif // (IST30XX_DEBUG) && (IST30XX_INTERNAL_BIN) + + +#define update_next_step(ret) { if (unlikely(ret)) goto end; } +int ist30xx_fw_update(struct i2c_client *client, const u8 *buf, int size, bool mode) +{ + int ret = 0; + u32 chksum = 0; + struct ist30xx_fw *fw = &ts_data->fw; + + tsp_info("*** Firmware update ***\n"); + tsp_info(" core: %x, param: %x, sub: %x (addr: 0x%x ~ 0x%x)\n", + ist30xx_fw_ver, ist30xx_param_ver, ist30xx_sub_ver, + fw->index, (fw->index + fw->size)); + + ts_data->status.update = 1; + + ist30xx_disable_irq(ts_data); + + ist30xx_reset(); + + if (mode) { /* ISP Mode */ + ret = ist30xxb_isp_fw_update(client, buf, &chksum); + update_next_step(ret); + } else { /* I2C SW Mode */ + ret = ist30xx_cmd_update(client, CMD_ENTER_FW_UPDATE); + update_next_step(ret); + + ret = ist30xx_fw_write(client, buf); + update_next_step(ret); + } + msleep(50); + + buf += IST30XX_EEPROM_SIZE; + size -= IST30XX_EEPROM_SIZE; + + ret = ist30xx_cmd_run_device(client, true); + update_next_step(ret); + + ret = ist30xx_read_cmd(client, CMD_GET_CHECKSUM, &chksum); + if (unlikely((ret) || (chksum != fw->chksum))) + goto end; + + ret = ist30xx_get_ver_info(ts_data); + update_next_step(ret); + +end: + if (unlikely(ret)) { + tsp_warn("Firmware update Fail!, ret=%d\n", ret); + } else if (unlikely(chksum != fw->chksum)) { + tsp_warn("Error CheckSum: %x(%x)\n", chksum, fw->chksum); + ret = -ENOEXEC; + } + + ist30xx_enable_irq(ts_data); + + ts_data->status.update = 2; + + return ret; +} + +int ist30xx_fw_recovery(struct ist30xx_data *data) +{ + int ret; + u8 *fw = data->fw.buf; + int fw_size = data->fw.buf_size; + + ist30xx_get_update_info(data, fw, fw_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw); + ist30xx_sub_ver = ist30xx_parse_ver(FLAG_SUB, fw); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_fw_update(data->client, fw, fw_size, true); + mutex_unlock(&ist30xx_mutex); + + ist30xx_calibrate(1); + + ist30xx_init_touch_driver(data); + + return ret; +} + + +#define fw_update_next_step(ret) { if (unlikely(ret)) \ + { step = 1; goto end; } } +#define param_update_next_step(ret) { if (unlikely(ret)) \ + { step = 2; goto end; } } +int ist30xx_fw_param_update(struct i2c_client *client, const u8 *buf) +{ + int ret = 0; + int step = 0; + u16 len = 0; + int size = IST30XX_EEPROM_SIZE; + u32 chksum = 0, ver = 0; + u32 *param = (u32 *)buf; + struct ist30xx_fw *fw = &ts_data->fw; + + tsp_info("*** FW param update ***\n"); + tsp_info(" core: %x, param: %x, sub: %x (addr: 0x%x ~ 0x%x)\n", + ist30xx_fw_ver, ist30xx_param_ver, ist30xx_sub_ver, + fw->index, (fw->index + fw->size)); + + ts_data->status.update = 1; + + ist30xx_disable_irq(ts_data); + ist30xx_reset(); + + /* FW update by SW */ + ret = ist30xx_cmd_update(client, CMD_ENTER_FW_UPDATE); + fw_update_next_step(ret); + + ret = ist30xx_fw_write(client, buf); + fw_update_next_step(ret); + + msleep(50); + + param = (u32 *)(buf + (fw->index + fw->size)); + size -= fw->size; + + ret = ist30xx_cmd_run_device(client, true); + fw_update_next_step(ret); + + ret = ist30xx_read_cmd(client, CMD_GET_CHECKSUM, &chksum); + if (unlikely((ret) || (chksum != fw->chksum))) + goto end; + + ret = ist30xx_read_cmd(client, CMD_GET_FW_VER, &ver); + update_next_step(ret); + fw->prev_core_ver = fw->core_ver; + fw->core_ver = ver; + tsp_info("F/W core version : %x\n", fw->core_ver); + + /* update parameters */ + ret = ist30xx_cmd_update(client, CMD_ENTER_UPDATE); + param_update_next_step(ret); + + /* config */ + len = (ts_data->tags.cfg_size >> 2); + ret = ist30xx_write_buf(client, CMD_UPDATE_CONFIG, param, len); + param_update_next_step(ret); + msleep(10); + + param += len; + size -= (len << 2); + + /* sensor */ + len = ((ts_data->tags.sensor1_size + ts_data->tags.sensor2_size) >> 2); + ret = ist30xx_write_buf(client, CMD_UPDATE_SENSOR, param, len); + param_update_next_step(ret); + msleep(10); + + param += len; + size -= (len << 2); + + ret = ist30xx_cmd_update(client, CMD_EXIT_UPDATE); + param_update_next_step(ret); + msleep(120); + + ret = ist30xx_cmd_run_device(client, true); + update_next_step(ret); + + ret = ist30xx_read_cmd(client, CMD_GET_PARAM_VER, &ver); + update_next_step(ret); + fw->prev_param_ver = fw->param_ver; + fw->param_ver = ver; + + ret = ist30xx_read_cmd(client, CMD_GET_SUB_VER, &ver); + update_next_step(ret); + fw->sub_ver = ver; + + tsp_info("Param version : %x, (sub: %x)\n", fw->param_ver, fw->sub_ver); + +end: + if (unlikely(ret)) { + if (unlikely(step == 1)) + tsp_warn("Firmware update Fail!, ret=%d", ret); + else if (unlikely(step == 2)) + tsp_warn("Parameters update Fail!, ret=%d", ret); + } else if (unlikely(chksum != fw->chksum)) { + tsp_warn("Error CheckSum: %08x(%08x)\n", chksum, fw->chksum); + ret = -ENOEXEC; + } + + ist30xx_enable_irq(ts_data); + ts_data->status.update = 2; + + return ret; +} + + +#if IST30XX_INTERNAL_BIN +int ist30xx_check_fw(struct ist30xx_data *data, const u8 *buf) +{ + int ret; + u32 chksum; + + ret = ist30xx_read_cmd(data->client, CMD_GET_CHECKSUM, &chksum); + if (unlikely(ret)) return ret; + + if (unlikely(chksum != data->fw.chksum)) { + tsp_warn("Checksum compare error, (IC: %08x, Bin: %08x)\n", + chksum, data->fw.chksum); + return -EPERM; + } + + return 0; +} + +bool ist30xx_check_valid_vendor(u32 tsp_vendor) +{ + switch (tsp_vendor) { + case TSP_TYPE_ALPS: + case TSP_TYPE_EELY: + case TSP_TYPE_TOP: + case TSP_TYPE_MELFAS: + case TSP_TYPE_ILJIN: + case TSP_TYPE_SYNOPEX: + case TSP_TYPE_SMAC: + case TSP_TYPE_OTHERS: + return true; + default: + return false; + } + + return false; +} + +#if IST30XX_MULTIPLE_TSP +void ist30xx_set_tsp_fw(struct ist30xx_data *data) +{ + char *str; + struct ist30xx_fw *fw = &data->fw; + + switch (data->tsp_type) { + case TSP_TYPE_ALPS: + case TSP_TYPE_ILJIN: + str = "ALPS/ILJIN"; + fw->buf = (u8 *)ist30xxb_fw; + fw->buf_size = sizeof(ist30xxb_fw); + break; + case TSP_TYPE_EELY: + str = "EELY"; + fw->buf = (u8 *)ist30xxb_fw2; + fw->buf_size = sizeof(ist30xxb_fw2); + break; + case TSP_TYPE_TOP: + str = "TopTouch"; + fw->buf = (u8 *)ist30xxb_fw1; + fw->buf_size = sizeof(ist30xxb_fw1); + break; + case TSP_TYPE_UNKNOWN: + default: + str = "Unknown"; + tsp_warn("Unknown TSP vendor(0x%x)\n", data->tsp_type); + break; + } + tsp_info("TSP vendor : %s(%x)\n", str, data->tsp_type); + + ist30xx_get_update_info(ts_data, fw->buf, fw->buf_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw->buf); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw->buf); + ist30xx_sub_ver = ist30xx_parse_ver(FLAG_SUB, fw->buf); +} +#endif // IST30XX_MULTIPLE_TSP + + +int ist30xx_check_auto_update(struct ist30xx_data *data) +{ + int ret = 0; + int retry = IST30XX_FW_UPDATE_RETRY; + u32 tsp_type = TSP_TYPE_UNKNOWN; + u32 chksum; + bool tsp_check = false; + struct ist30xx_fw *fw = &data->fw; + + while (retry--) { + ret = ist30xx_read_cmd(data->client, + CMD_GET_TSP_PANNEL_TYPE, &tsp_type); + if (likely(ret == 0)) { + if (likely(ist30xx_check_valid_vendor(tsp_type) == true)) + tsp_check = true; + break; + } + } + + retry = IST30XX_FW_UPDATE_RETRY; + + if (unlikely(!tsp_check)) { + while (retry--) { + /* FW recovery */ + tsp_info("tsp type: %x\n", tsp_type); + ret = ist30xxb_isp_bootloader(data->client, fw->buf); + if (likely(ret == 0)) { + ist30xx_reset(); + ret = ist30xx_read_cmd(data->client, + CMD_GET_TSP_PANNEL_TYPE, &tsp_type); + tsp_info("tsp type: %x\n", tsp_type); + if (likely(ret == 0)) // recovery OK + if (ist30xx_check_valid_vendor(tsp_type) == true) { + data->tsp_type = tsp_type; +#if IST30XX_MULTIPLE_TSP + ist30xx_set_tsp_fw(data); +#endif + break; + } + } + + if (retry == 0) return 1; /* TSP is not connected */ + } + } + + ist30xx_cmd_run_device(data->client, false); + + ist30xx_get_ver_info(data); + + if (likely((fw->param_ver > 0) && (fw->param_ver < 0xFFFFFFFF))) { + if (unlikely(((fw->core_ver & MASK_FW_VER) != IST30XX_FW_VER3) && + ((fw->core_ver & MASK_FW_VER) != IST30XX_FW_VER4))) + goto fw_check_end; + + tsp_info("Version compare IC: %x(%x), BIN: %x(%x)\n", + fw->param_ver, fw->core_ver, ist30xx_param_ver, ist30xx_fw_ver); + + /* If FW version is same, check FW checksum */ + if (likely((fw->core_ver == ist30xx_fw_ver) && + (fw->param_ver == ist30xx_param_ver))) { + ret = ist30xx_read_cmd(data->client, CMD_GET_CHECKSUM, &chksum); + if (unlikely((ret) || (chksum != fw->chksum))) { + tsp_warn("Checksum error, IC: %x, Bin: %x (ret: %d)\n", + chksum, fw->chksum, ret); + goto fw_check_end; + } + } + + /* + * fw->core_ver : FW core version in TSP IC + * fw->param_ver : FW version if TSP IC + * ist30xx_fw_ver : FW core version in FW Binary + * ist30xx_fw_ver : FW version in FW Binary + */ + /* If the ver of binary is higher than ver of IC, FW update operate. */ + + if (likely((fw->core_ver >= ist30xx_fw_ver) && + (fw->param_ver >= ist30xx_param_ver))) + return 0; + } + +fw_check_end: + return -EAGAIN; +} + +int ist30xx_auto_bin_update(struct ist30xx_data *data) +{ + int ret = 0; + int retry = IST30XX_FW_UPDATE_RETRY; + struct ist30xx_fw *fw = &data->fw; + + fw->buf = (u8 *)ist30xxb_fw; + fw->buf_size = sizeof(ist30xxb_fw); + +#if IST30XX_MULTIPLE_TSP + ist30xx_set_tsp_fw(data); +#else + ist30xx_get_update_info(data, fw->buf, fw->buf_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw->buf); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw->buf); + ist30xx_sub_ver = ist30xx_parse_ver(FLAG_SUB, fw->buf); +#endif + + tsp_info("IC: %x, Binary ver core: %x, param: %x, sub: %x\n", + data->chip_id, ist30xx_fw_ver, ist30xx_param_ver, ist30xx_sub_ver); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_check_auto_update(data); + mutex_unlock(&ist30xx_mutex); + if (likely(ret >= 0)) + return ret; + +update_bin: // TSP is not ready / FW update + tsp_info("Update version. param(core): %x(%x, %x) -> %x(%x, %x)\n", + fw->param_ver, fw->core_ver, fw->sub_ver, + ist30xx_param_ver, ist30xx_fw_ver, ist30xx_sub_ver); + + mutex_lock(&ist30xx_mutex); + while (retry--) { + ret = ist30xx_fw_update(data->client, fw->buf, fw->buf_size, true); + if (unlikely(!ret)) break; + } + mutex_unlock(&ist30xx_mutex); + + if (unlikely(ret)) + return ret; + + if (unlikely(retry > 0 && ist30xx_check_fw(data, fw->buf))) + goto update_bin; + + ist30xx_calibrate(IST30XX_FW_UPDATE_RETRY); + + return ret; +} +#endif // IST30XX_INTERNAL_BIN + + +/* sysfs: /sys/class/touch/firmware/boot */ +ssize_t ist30xx_boot_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int fw_size = 0; + u8 *fw = NULL; + char *tmp; + const struct firmware *request_fw = NULL; + + unsigned long mode = simple_strtoul(buf, &tmp, 10); + + if (mode == MASK_UPDATE_ISP || mode == MASK_UPDATE_FW) { + int ret = request_firmware(&request_fw, IST30XXB_FW_NAME, &ts_data->client->dev); + if (ret) { + tsp_warn("File not found, %s\n", IST30XXB_FW_NAME); + return size; + } + fw = (u8 *)request_fw->data; + fw_size = (u32)request_fw->size; + } else { +#if IST30XX_INTERNAL_BIN + fw = ts_data->fw.buf; + fw_size = ts_data->fw.buf_size; +#else + return size; +#endif // IST30XX_INTERNAL_BIN + } + + if (mode == 3) { + tsp_info("EEPROM all erase test\n"); + ist30xx_disable_irq(ts_data); + mutex_lock(&ist30xx_mutex); + + ist30xxb_isp_enable(true); + ist30xxb_isp_erase(ts_data->client, IST30XXB_ISP_ERASE_ALL, 0); + ist30xxb_isp_enable(false); + + mutex_unlock(&ist30xx_mutex); + ist30xx_enable_irq(ts_data); + } else { + ist30xx_get_update_info(ts_data, fw, fw_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw); + + ist30xx_disable_irq(ts_data); + + mutex_lock(&ist30xx_mutex); + ist30xxb_isp_bootloader(ts_data->client, fw); + mutex_unlock(&ist30xx_mutex); + + if (mode == MASK_UPDATE_ISP || mode == MASK_UPDATE_FW) + release_firmware(request_fw); + } + + return size; +} + +u32 buf32_eeprom[IST30XX_EEPROM_SIZE / IST30XX_DATA_LEN]; +ssize_t ist30xx_fw_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int i; + u8 *buf8 = (u8 *)buf32_eeprom;; + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(ts_data); + + ist30xxb_isp_fw_read(ts_data->client, buf32_eeprom); + for (i = 0; i < IST30XX_EEPROM_SIZE; i += 16) { + tsp_debug("%07x: %02x%02x %02x%02x %02x%02x %02x%02x %02x%02x %02x%02x %02x%02x %02x%02x\n", i, + buf8[i], buf8[i + 1], buf8[i + 2], buf8[i + 3], + buf8[i + 4], buf8[i + 5], buf8[i + 6], buf8[i + 7], + buf8[i + 8], buf8[i + 9], buf8[i + 10], buf8[i + 11], + buf8[i + 12], buf8[i + 13], buf8[i + 14], buf8[i + 15]); + } + + ist30xx_enable_irq(ts_data); + mutex_unlock(&ist30xx_mutex); + + return 0; +} + +/* sysfs: /sys/class/touch/firmware/fw_only */ +ssize_t ist30xx_fw_only_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret; + bool isp_mode = false; + int fw_size = 0; + u8 *fw = NULL; + char *tmp; + const struct firmware *request_fw = NULL; + + unsigned long mode = simple_strtoul(buf, &tmp, 10); + + if (mode == MASK_UPDATE_ISP || mode == MASK_UPDATE_FW) { + ret = request_firmware(&request_fw, IST30XXB_FW_NAME, &ts_data->client->dev); + if (ret) { + tsp_warn("File not found, %s\n", IST30XXB_FW_NAME); + return size; + } + fw = (u8 *)request_fw->data; + fw_size = (u32)request_fw->size; + isp_mode = (mode == MASK_UPDATE_ISP ? true : false); + } else { +#if IST30XX_INTERNAL_BIN + fw = ts_data->fw.buf; + fw_size = ts_data->fw.buf_size; +#else + return size; +#endif // IST30XX_INTERNAL_BIN + } + + ist30xx_get_update_info(ts_data, fw, fw_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw); + ist30xx_sub_ver = ist30xx_parse_ver(FLAG_SUB, fw); + + mutex_lock(&ist30xx_mutex); + ist30xx_fw_update(ts_data->client, fw, fw_size, isp_mode); + mutex_unlock(&ist30xx_mutex); + + ist30xx_init_touch_driver(ts_data); + + if (mode == MASK_UPDATE_ISP || mode == MASK_UPDATE_FW) + release_firmware(request_fw); + + return size; +} + +/* sysfs: /sys/class/touch/firmware/firmware */ +ssize_t ist30xx_fw_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + bool isp_mode = false; + int fw_size = 0; + u8 *fw = NULL; + char *tmp; + const struct firmware *request_fw = NULL; + + unsigned long mode = simple_strtoul(buf, &tmp, 10); + + if (mode == MASK_UPDATE_ISP || mode == MASK_UPDATE_FW) { + int ret = request_firmware(&request_fw, IST30XXB_FW_NAME, &ts_data->client->dev); + if (ret) { + tsp_warn("File not found, %s\n", IST30XXB_FW_NAME); + return size; + } + fw = (u8 *)request_fw->data; + fw_size = (u32)request_fw->size; + isp_mode = (mode == MASK_UPDATE_ISP ? true : false); + } else { +#if IST30XX_INTERNAL_BIN + fw = ts_data->fw.buf; + fw_size = ts_data->fw.buf_size; +#else + return size; +#endif // IST30XX_INTERNAL_BIN + } + + ist30xx_get_update_info(ts_data, fw, fw_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw); + ist30xx_sub_ver = ist30xx_parse_ver(FLAG_SUB, fw); + + mutex_lock(&ist30xx_mutex); + ist30xx_fw_update(ts_data->client, fw, fw_size, isp_mode); + mutex_unlock(&ist30xx_mutex); + + ist30xx_calibrate(1); + + ist30xx_init_touch_driver(ts_data); + + if (mode == MASK_UPDATE_ISP || mode == MASK_UPDATE_FW) + release_firmware(request_fw); + + return size; +} + +ssize_t ist30xx_fw_status(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count; + + switch (ts_data->status.update) { + case 1: + count = sprintf(buf, "Downloading\n"); + break; + case 2: + count = sprintf(buf, "Update success, ver %x(%x) -> %x(%x, %x), status : %d, gap : %d\n", + ts_data->fw.prev_param_ver, ts_data->fw.prev_core_ver, + ts_data->fw.param_ver, ts_data->fw.core_ver, ts_data->fw.sub_ver, + CALIB_TO_STATUS(ts_data->status.calib_msg), + CALIB_TO_GAP(ts_data->status.calib_msg)); + break; + default: + count = sprintf(buf, "Pass\n"); + } + + return count; +} + + +/* sysfs: /sys/class/touch/firmware/fwparam */ +ssize_t ist30xx_fwparam_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int fw_size = 0; + u8 *fw = NULL; + char *tmp; + const struct firmware *request_fw = NULL; + + unsigned long mode = simple_strtoul(buf, &tmp, 10); + + if (mode == MASK_UPDATE_FW) { + int ret = request_firmware(&request_fw, IST30XXB_FW_NAME, &ts_data->client->dev); + if (unlikely(ret)) { + tsp_warn("File not found, %s\n", IST30XXB_FW_NAME); + return size; + } + fw = (u8 *)request_fw->data; + fw_size = (u32)request_fw->size; + } else { +#if IST30XX_INTERNAL_BIN + fw = ts_data->fw.buf; + fw_size = ts_data->fw.buf_size; +#else + return size; +#endif // IST30XX_INTERNAL_BIN + } + + ist30xx_get_update_info(ts_data, fw, fw_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw); + ist30xx_sub_ver = ist30xx_parse_ver(FLAG_SUB, fw); + + mutex_lock(&ist30xx_mutex); + ist30xx_fw_param_update(ts_data->client, fw); + mutex_unlock(&ist30xx_mutex); + + ist30xx_calibrate(1); + + ist30xx_init_touch_driver(ts_data); + + if (mode == MASK_UPDATE_FW) + release_firmware(request_fw); + + return size; +} + + +/* sysfs: /sys/class/touch/firmware/viersion */ +ssize_t ist30xx_fw_version(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count; + + count = sprintf(buf, "ID: %x, f/w core: %x, param: %x, sub: %x\n", + ts_data->chip_id, ts_data->fw.core_ver, + ts_data->fw.param_ver, ts_data->fw.sub_ver); + +#if IST30XX_INTERNAL_BIN + { + char msg[128]; + + ist30xx_get_update_info(ts_data, ts_data->fw.buf, ts_data->fw.buf_size); + + count += snprintf(msg, sizeof(msg), + " Header - f/w ver: %x, param: %x, sub: %x\r\n", + ist30xx_parse_ver(FLAG_FW, ts_data->fw.buf), + ist30xx_parse_ver(FLAG_PARAM, ts_data->fw.buf), + ist30xx_parse_ver(FLAG_SUB, ts_data->fw.buf)); + strncat(buf, msg, sizeof(msg)); + } +#endif + + return count; +} + + +/* sysfs */ +static DEVICE_ATTR(fw_only, S_IWUSR | S_IWGRP | S_IRUGO, ist30xx_fw_status, ist30xx_fw_only_store); +static DEVICE_ATTR(firmware, S_IWUSR | S_IWGRP | S_IRUGO, ist30xx_fw_status, ist30xx_fw_store); +static DEVICE_ATTR(fwparam, S_IWUSR | S_IWGRP, NULL, ist30xx_fwparam_store); +static DEVICE_ATTR(boot, S_IWUSR | S_IWGRP | S_IRUGO, ist30xx_fw_show, ist30xx_boot_store); +static DEVICE_ATTR(version, S_IRUGO, ist30xx_fw_version, NULL); + +struct class *ist30xx_class; +struct device *ist30xx_fw_dev; + +static struct attribute *fw_attributes[] = { + &dev_attr_fw_only.attr, + &dev_attr_firmware.attr, + &dev_attr_fwparam.attr, + &dev_attr_boot.attr, + &dev_attr_version.attr, + NULL, +}; + +static struct attribute_group fw_attr_group = { + .attrs = fw_attributes, +}; + +int ist30xx_init_update_sysfs(void) +{ + /* /sys/class/touch */ + ist30xx_class = class_create(THIS_MODULE, "touch"); + + /* /sys/class/touch/firmware */ + ist30xx_fw_dev = device_create(ist30xx_class, NULL, 0, NULL, "firmware"); + + /* /sys/class/touch/firmware/... */ + if (unlikely(sysfs_create_group(&ist30xx_fw_dev->kobj, + &fw_attr_group))) + tsp_err("Failed to create sysfs group(%s)!\n", "firmware"); + + ts_data->status.update = 0; + ts_data->status.calib = 0; + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xx/ist30xx_update.h b/drivers/input/touchscreen/ist30xx/ist30xx_update.h new file mode 100644 index 00000000..f941e896 --- /dev/null +++ b/drivers/input/touchscreen/ist30xx/ist30xx_update.h @@ -0,0 +1,133 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_UPDATE_H__ +#define __IST30XX_UPDATE_H__ + +#include "ist30xx_tsp.h" + +#define IST30XX_INTERNAL_BIN (1) +#define IST30XX_CHECK_CALIB (0) + +#if IST30XX_INTERNAL_BIN +#define IST30XX_UPDATE_BY_WORKQUEUE (0) +#define IST30XX_UPDATE_DELAY (3 * HZ) +#endif // IST30XX_INTERNAL_BIN + +#if ((IMAGIS_TSP_IC == IMAGIS_IST30XX) || (IMAGIS_TSP_IC == IMAGIS_IST30XXB)) +#define IST30XX_EEPROM_SIZE (0x8000) +#elif (IMAGIS_TSP_IC == IMAGIS_IST3038) +#define IST30XX_EEPROM_SIZE (0xA000) +#elif (IMAGIS_TSP_IC == IMAGIS_IST3044) +#define IST30XX_EEPROM_SIZE (0x10000) +#endif +#define EEPROM_PAGE_SIZE (64) +#define EEPROM_BASE_ADDR (0) + +#define IST30XXB_ACCESS_ADDR (1 << 31) +#define IST30XXB_BURST_ACCESS (1 << 27) +#define IST30XXB_DA_ADDR(n) (n | IST30XXB_ACCESS_ADDR) + +#define IST30XXB_REG_TSPTYPE IST30XXB_DA_ADDR(0x40002010) + +#define IST30XXB_REG_EEPMODE IST30XXB_DA_ADDR(0x40007000) +#define IST30XXB_REG_EEPADDR IST30XXB_DA_ADDR(0x40007004) +#define IST30XXB_REG_EEPWDAT IST30XXB_DA_ADDR(0x40007008) +#define IST30XXB_REG_EEPRDAT IST30XXB_DA_ADDR(0x4000700C) +#define IST30XXB_REG_EEPISPEN IST30XXB_DA_ADDR(0x40007010) +#define IST30XXB_REG_CHKSMOD IST30XXB_DA_ADDR(0x40007014) +#define IST30XXB_REG_EEPPWRCTRL IST30XXB_DA_ADDR(0x4000701C) +#define IST30XXB_REG_CHKSDAT IST30XXB_DA_ADDR(0x40007038) + +#define IST30XXB_REG_CHIPID IST30XXB_DA_ADDR(0x40000000) +#define IST30XXB_REG_LDOOSC IST30XXB_DA_ADDR(0x40000030) +#define IST30XXB_REG_CLKDIV IST30XXB_DA_ADDR(0x4000004C) + +#define IST30XXB_MEM_ADDR (0x20000000) +#define IST30XXB_MEM_ALGORITHM IST30XXB_DA_ADDR(IST30XXB_MEM_ADDR | 0x34) +#define IST30XXB_MEM_CMD IST30XXB_DA_ADDR(IST30XXB_MEM_ADDR | 0x3C) +#define IST30XXB_MEM_FINGERS IST30XXB_DA_ADDR(IST30XXB_MEM_ADDR | 0x4) + +#if (IMAGIS_TSP_IC == IMAGIS_IST30XXB) +#define IST30XXB_MEM_COUNT IST30XXB_DA_ADDR(IST30XXB_MEM_ADDR | 0x5F0) +#elif (IMAGIS_TSP_IC == IMAGIS_IST3038) +#define IST30XXB_MEM_COUNT IST30XXB_DA_ADDR(IST30XXB_MEM_ADDR | 0x40) +#else +#error "Unknown IMAGIS_TSP_IC" +#endif + +#define IST30XX_FW_NAME "ist30xx.fw" +#define IST30XXB_FW_NAME "ist30xxb.fw" +#define IST30XXB_CURVE_NAME "ist30xxb.cv" + +#define MASK_FW_VER (0xFFFF0000) +#define IST30XX_FW_VER1 (0x00010000) +#define IST30XX_FW_VER2 (0x00020000) +#define IST30XX_FW_VER3 (0x00030000) +#define IST30XX_FW_VER4 (0x00040000) + +#define IST30XX_FW_UPDATE_RETRY (3) + +#define WAIT_CALIB_CNT (50) +#define CALIB_THRESHOLD (100) + +#define CALIB_TO_GAP(n) ((n >> 16) & 0xFFF) +#define CALIB_TO_STATUS(n) ((n >> 12) & 0xF) + +#define CALIB_TO_OS_VALUE(n) ((n >> 12) & 0xFFFF) + +#define MASK_UPDATE_BIN (1) +#define MASK_UPDATE_FW (1) +#define MASK_UPDATE_ISP (2) +#define MASK_UPDATE_ALL (3) + +#define CHKSUM_FW (1) +#define CHKSUM_ALL (2) + +#define FLAG_FW (1) +#define FLAG_PARAM (2) +#define FLAG_SUB (3) + +#define TAGS_PARSE_OK (0) + +/* I2C Transaction size */ +#define I2C_MAX_WRITE_SIZE (64) /* bytes */ +#define I2C_MAX_READ_SIZE (8) /* bytes */ + +int ist30xx_read_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len); +int ist30xx_write_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len); + +int ist30xxb_burst_read(struct i2c_client *client, u32 addr, u32 *buf32, int len); + +int ist30xxb_read_chksum(struct i2c_client *client, u32 *chksum); + +void ist30xx_get_update_info(struct ist30xx_data *data, const u8 *buf, const u32 size); + +u32 ist30xx_parse_ver(int flag, const u8 *buf); + +int ist30xx_fw_update(struct i2c_client *client, const u8 *buf, int size, bool mode); +int ist30xx_fw_param_update(struct i2c_client *client, const u8 *buf); +int ist30xx_fw_recovery(struct ist30xx_data *data); + +int ist30xx_auto_fw_update(struct ist30xx_data *data); +int ist30xx_auto_param_update(struct ist30xx_data *data); +int ist30xx_auto_bin_update(struct ist30xx_data *data); + +int ist30xx_calibrate(int wait_cnt); +int ist30xx_calib_wait(void); + +int ist30xx_init_update_sysfs(void); + +#endif // __IST30XX_UPDATE_H__ diff --git a/drivers/input/touchscreen/ist30xxa/Makefile b/drivers/input/touchscreen/ist30xxa/Makefile new file mode 100644 index 00000000..afb71927 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/Makefile @@ -0,0 +1,7 @@ +# +# Makefile for the imagis kanas driver. +# + +# Each configuration option enables a list of files. + +obj-y += ist30xx.o ist30xx_misc.o ist30xx_sec.o ist30xx_sys.o ist30xx_tracking.o ist30xx_update.o ist30xx_cmcs.o diff --git a/drivers/input/touchscreen/ist30xxa/firmware/core_prime.h b/drivers/input/touchscreen/ist30xxa/firmware/core_prime.h new file mode 100644 index 00000000..3e2a6f7f --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/firmware/core_prime.h @@ -0,0 +1,2573 @@ +#ifndef __IST30XXB_FW_H__ +#define __IST30XXB_FW_H__ + +/* ist30xxb binary: Core-Prime EELY, f/w 3(00050000) */ +static unsigned char ist30xxb_fw[] = { + 0x06,0x00,0x00,0xEA,0x1D,0x00,0x00,0xEA,0x1C,0x00,0x00,0xEA,0x1B,0x00,0x00,0xEA, + 0x1A,0x00,0x00,0xEA,0x19,0x00,0x00,0xEA,0x18,0x00,0x00,0xEA,0x29,0x00,0x00,0xEA, + 0x14,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0xA0,0xE1,0x00,0x00,0x00,0xEA,0x0C,0x20,0x00,0x40, + 0x00,0x00,0x0F,0xE1,0x1F,0x00,0xC0,0xE3,0xD1,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1, + 0x1C,0xD0,0x9F,0xE5,0xD3,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x14,0xD0,0x9F,0xE5, + 0x00,0x00,0x0F,0xE1,0xC0,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x08,0x00,0x9F,0xE5, + 0x10,0xFF,0x2F,0xE1,0xFC,0x0F,0x00,0x20,0xC0,0x0F,0x00,0x20,0xBD,0x3C,0x00,0x00, + 0x50,0x30,0x9F,0xE5,0x50,0x40,0x9F,0xE5,0x00,0x40,0x83,0xE5,0x58,0x00,0x1F,0xE5, + 0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0x00,0x40,0x83,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x03,0x00,0x00,0xEB,0xFE,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0x00,0x00,0x00,0xEB,0xF7,0xFF,0xFF,0xEA,0x01,0x29,0xA0,0xE3,0x01,0x20,0x52,0xE2, + 0xFD,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0xFF,0x40,0x2D,0xE9,0x37,0x0C,0x00,0xEB, + 0xFF,0x40,0xBD,0xE8,0x04,0xF0,0x5E,0xE2,0x1C,0x40,0x00,0x30,0x70,0xE9,0x1C,0xE1, + 0x00,0x00,0x0F,0xE1,0x80,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x1E,0xFF,0x2F,0xE1, + 0x00,0x00,0x0F,0xE1,0x80,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1,0x1E,0xFF,0x2F,0xE1, + 0x00,0x00,0x0F,0xE1,0x40,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x1E,0xFF,0x2F,0xE1, + 0x00,0x00,0x0F,0xE1,0x40,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1,0x1E,0xFF,0x2F,0xE1, + 0x78,0x47,0xC0,0x46,0x03,0x00,0x52,0xE3,0x2A,0x00,0x00,0x9A,0x03,0xC0,0x10,0xE2, + 0x08,0x00,0x00,0x0A,0x01,0x30,0xD1,0xE4,0x02,0x00,0x5C,0xE3,0x0C,0x20,0x82,0xE0, + 0x01,0xC0,0xD1,0x94,0x01,0x30,0xC0,0xE4,0x01,0x30,0xD1,0x34,0x01,0xC0,0xC0,0x94, + 0x04,0x20,0x42,0xE2,0x01,0x30,0xC0,0x34,0x03,0x30,0x11,0xE2,0xB2,0x00,0x00,0x0A, + 0x04,0x20,0x52,0xE2,0x1B,0x00,0x00,0x3A,0x03,0xC0,0x31,0xE7,0x02,0x00,0x53,0xE3, + 0x08,0x00,0x00,0x0A,0x0F,0x00,0x00,0x8A,0x2C,0x34,0xA0,0xE1,0x04,0xC0,0xB1,0xE5, + 0x04,0x20,0x52,0xE2,0x0C,0x3C,0x83,0xE1,0x04,0x30,0x80,0xE4,0xF9,0xFF,0xFF,0x2A, + 0x01,0x10,0x81,0xE2,0x0F,0x00,0x00,0xEA,0x2C,0x38,0xA0,0xE1,0x04,0xC0,0xB1,0xE5, + 0x04,0x20,0x52,0xE2,0x0C,0x38,0x83,0xE1,0x04,0x30,0x80,0xE4,0xF9,0xFF,0xFF,0x2A, + 0x02,0x10,0x81,0xE2,0x07,0x00,0x00,0xEA,0x2C,0x3C,0xA0,0xE1,0x04,0xC0,0xB1,0xE5, + 0x04,0x20,0x52,0xE2,0x0C,0x34,0x83,0xE1,0x04,0x30,0x80,0xE4,0xF9,0xFF,0xFF,0x2A, + 0x03,0x10,0x81,0xE2,0x00,0x00,0xA0,0xE1,0x82,0x2F,0xB0,0xE1,0x01,0x30,0xD1,0x24, + 0x01,0xC0,0xD1,0x24,0x01,0x20,0xD1,0x44,0x01,0x30,0xC0,0x24,0x01,0xC0,0xC0,0x24, + 0x01,0x20,0xC0,0x44,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x01,0x30,0x90,0xE1, + 0x4C,0x00,0x00,0x4A,0x00,0x20,0xB0,0xE3,0xA0,0x30,0x71,0xE0,0x43,0x00,0x00,0x3A, + 0x20,0x32,0x71,0xE0,0x34,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0,0x26,0x00,0x00,0x3A, + 0x20,0x36,0x71,0xE0,0x17,0x00,0x00,0x3A,0x20,0x38,0x71,0xE0,0x09,0x00,0x00,0x3A, + 0x01,0x14,0xA0,0xE1,0x20,0x38,0x71,0xE0,0xFF,0x24,0x82,0xE3,0xFF,0x28,0x82,0x23, + 0x01,0x14,0xA0,0x21,0x20,0x36,0x71,0xE0,0x0E,0x00,0x00,0x3A,0x00,0x30,0x71,0xE2, + 0x6F,0x00,0x00,0x2A,0x21,0x14,0xA0,0x21,0xA0,0x37,0x71,0xE0,0x81,0x07,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x37,0x71,0xE0,0x01,0x07,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x36,0x71,0xE0,0x81,0x06,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x36,0x71,0xE0, + 0x01,0x06,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x35,0x71,0xE0,0x81,0x05,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x35,0x71,0xE0,0x01,0x05,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x34,0x71,0xE0,0x81,0x04,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x34,0x71,0xE0, + 0x01,0x04,0x40,0x20,0x02,0x20,0xB2,0xE0,0xE5,0xFF,0xFF,0x2A,0xA0,0x33,0x71,0xE0, + 0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0, + 0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0,0x1E,0xFF,0x2F,0xE1, + 0x01,0x10,0x50,0xE0,0x01,0x00,0xA0,0x23,0x1E,0xFF,0x2F,0x21,0x00,0x10,0xA0,0xE1, + 0x00,0x00,0xB0,0xE3,0x1E,0xFF,0x2F,0xE1,0x02,0x21,0x11,0xE2,0x00,0x10,0x61,0x42, + 0x40,0xC0,0x32,0xE0,0x00,0x00,0x60,0x22,0x20,0x32,0x71,0xE0,0x1D,0x00,0x00,0x3A, + 0x20,0x34,0x71,0xE0,0x0F,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0, + 0x3F,0x23,0x82,0xE3,0x0B,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0, + 0x3F,0x26,0x82,0xE3,0x07,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0, + 0x3F,0x29,0x82,0xE3,0x01,0x13,0xA0,0x21,0x3F,0x2C,0x82,0x23,0x00,0x30,0x71,0xE2, + 0x1D,0x00,0x00,0x2A,0x21,0x13,0xA0,0x21,0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0, + 0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xEB,0xFF,0xFF,0x2A,0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0,0xCC,0xCF,0xB0,0xE1, + 0x00,0x00,0x60,0x42,0x00,0x10,0x61,0x22,0x1E,0xFF,0x2F,0xE1,0xCC,0xCF,0xB0,0xE1, + 0x00,0x00,0x60,0x42,0x01,0x40,0x2D,0xE9,0x00,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB, + 0x02,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x18,0x00,0x00,0xEA,0x10,0x40,0x2D,0xE9, + 0x20,0x20,0x52,0xE2,0x05,0x00,0x00,0x3A,0x18,0x50,0xB1,0xE8,0x20,0x20,0x52,0xE2, + 0x18,0x50,0xA0,0xE8,0x18,0x50,0xB1,0xE8,0x18,0x50,0xA0,0xE8,0xF9,0xFF,0xFF,0x2A, + 0x02,0xCE,0xB0,0xE1,0x18,0x50,0xB1,0x28,0x18,0x50,0xA0,0x28,0x18,0x00,0xB1,0x48, + 0x18,0x00,0xA0,0x48,0x10,0x40,0xBD,0xE8,0x02,0xCF,0xB0,0xE1,0x04,0x30,0x91,0x24, + 0x04,0x30,0x80,0x24,0x1E,0xFF,0x2F,0x01,0x82,0x2F,0xB0,0xE1,0xB2,0x30,0xD1,0x20, + 0x01,0x20,0xD1,0x44,0xB2,0x30,0xC0,0x20,0x01,0x20,0xC0,0x44,0x1E,0xFF,0x2F,0xE1, + 0x07,0x40,0x2D,0xE9,0x02,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB,0x07,0x40,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x10,0xB5, + 0x02,0x20,0x06,0xF0,0x25,0xFE,0x10,0xBC,0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46, + 0x00,0x20,0xB0,0xE3,0x20,0x32,0x71,0xE0,0x87,0xFF,0xFF,0x3A,0x20,0x34,0x71,0xE0, + 0x79,0xFF,0xFF,0x3A,0x20,0x36,0x71,0xE0,0x6A,0xFF,0xFF,0x3A,0x20,0x38,0x71,0xE0, + 0x5C,0xFF,0xFF,0x3A,0x51,0xFF,0xFF,0xEA,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5, + 0x1C,0xFF,0x2F,0xE1,0xAD,0x00,0x00,0x10,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5, + 0x1C,0xFF,0x2F,0xE1,0x51,0x00,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5, + 0x48,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0xB0,0x05,0x00,0x10, + 0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0x0C,0x06,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x04,0xF0,0x1F,0xE5,0xF0,0x05,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5, + 0x88,0x06,0x00,0x10,0x04,0xF0,0x1F,0xE5,0xB0,0x05,0x00,0x10,0x78,0x47,0xC0,0x46, + 0x04,0xF0,0x1F,0xE5,0x28,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5, + 0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x00,0x10,0x04,0xF0,0x1F,0xE5,0x48,0x06,0x00,0x10, + 0x04,0xF0,0x1F,0xE5,0x88,0x06,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5, + 0x04,0x07,0x00,0x10,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0xA8,0x06,0x00,0x10, + 0x78,0x47,0xC0,0x46,0xB9,0xFE,0xFF,0xEA,0x02,0x48,0x01,0x68,0x02,0x4A,0x11,0x40, + 0x01,0x60,0x70,0x47,0x00,0xA0,0x00,0x40,0xFE,0xFF,0xEF,0xFF,0x07,0x49,0x10,0xB5, + 0x08,0x68,0x07,0x4A,0x10,0x43,0x08,0x60,0x0B,0x24,0x02,0xF0,0xD3,0xF8,0x64,0x1E, + 0x00,0x2C,0xFA,0xDC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x01,0x00,0x10,0x00,0x04,0x49,0x0A,0x68,0xF0,0x23,0x00,0x07,0x9A,0x43,0x00,0x0E, + 0x02,0x43,0x0A,0x60,0x70,0x47,0x00,0x00,0x00,0xA0,0x00,0x40,0xF8,0xB5,0x24,0x4D, + 0x24,0x48,0x2E,0x18,0xE3,0x20,0xC0,0x00,0x2F,0x18,0x0D,0x20,0xC0,0x01,0x28,0x18, + 0x00,0x7B,0xC0,0x07,0x26,0xD0,0x30,0x00,0x40,0x30,0x00,0x90,0x40,0x7F,0x00,0x28, + 0x15,0xD0,0x01,0x24,0x05,0xE0,0xE0,0x00,0x80,0x19,0x2C,0x30,0x06,0xF0,0xE6,0xF8, + 0x64,0x1C,0x00,0x98,0x40,0x7F,0xA0,0x42,0xF5,0xDA,0x38,0x68,0x00,0x02,0x40,0x0F, + 0x10,0xD0,0x38,0x00,0x20,0x30,0x81,0x7D,0x00,0x29,0x0B,0xD1,0x08,0xE0,0x38,0x00, + 0x20,0x30,0x81,0x7D,0x00,0x29,0x05,0xD1,0x00,0x99,0x89,0x7F,0x00,0x29,0x01,0xD0, + 0x01,0x21,0x81,0x75,0x40,0x36,0x70,0x7F,0xB0,0x77,0x38,0x68,0x01,0x04,0x00,0x02, + 0x09,0x0F,0x40,0x0F,0x08,0x18,0x08,0x49,0x01,0xD1,0x69,0x18,0x03,0xE0,0x69,0x18, + 0x0A,0x7F,0x90,0x42,0x00,0xD9,0x08,0x77,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x40,0x00,0x00,0x20,0x64,0x06,0x00,0x00,0x20,0x03,0x00,0x00,0x15,0x4A,0x70,0xB4, + 0x13,0x00,0x40,0x33,0x5C,0x7F,0xE4,0x00,0xA2,0x18,0x13,0x4C,0x34,0x32,0xE4,0x88, + 0xE4,0x07,0x17,0xD1,0x04,0x79,0x14,0x71,0x04,0x88,0x14,0x80,0x44,0x88,0x54,0x80, + 0x51,0x71,0xC1,0x79,0x91,0x71,0x59,0x7F,0x49,0x1C,0x59,0x77,0xC0,0x79,0x81,0x07, + 0x08,0xD5,0x08,0x49,0x45,0x07,0x01,0x22,0x00,0x24,0x60,0x31,0x00,0x2D,0x03,0xDA, + 0xDA,0x77,0x0C,0x70,0x70,0xBC,0x70,0x47,0xC0,0x06,0x80,0x0F,0xFA,0xD0,0xDC,0x77, + 0x0A,0x70,0xF7,0xE7,0xA4,0x06,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB4,0x0A,0x24, + 0x0F,0x00,0x67,0x43,0x0C,0x4D,0x84,0x46,0xE8,0x1F,0x7C,0x19,0xFB,0x38,0x56,0x1C, + 0x3F,0x18,0x26,0x71,0xF8,0x89,0x20,0x80,0x38,0x8A,0x60,0x80,0xB8,0x7C,0x60,0x71, + 0x60,0x46,0xA3,0x71,0x46,0x54,0x49,0x1C,0xA8,0x18,0xE0,0x30,0x01,0x77,0x00,0x21, + 0x01,0x74,0xF0,0xBC,0x70,0x47,0x00,0x00,0x64,0x02,0x00,0x20,0x08,0x49,0x0F,0x23, + 0x0A,0x68,0x88,0x7E,0x52,0x1C,0x9B,0x06,0x00,0x07,0x00,0x0A,0x12,0x03,0xC0,0x18, + 0x12,0x0B,0x10,0x43,0x08,0x60,0x01,0x21,0x49,0x07,0x08,0x63,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x20,0xF0,0xB5,0xBB,0x4A,0xAF,0x23,0x12,0x68,0x99,0xB0,0x9B,0x5C, + 0xE3,0x24,0xE4,0x00,0x04,0x93,0xB8,0x4B,0x03,0x93,0x1B,0x19,0x02,0x93,0xB7,0x4C, + 0x03,0x9B,0x12,0x68,0x1D,0x19,0x12,0x05,0x10,0xD5,0x04,0x9A,0x01,0x2A,0x01,0xD8, + 0x00,0x2A,0x01,0xD1,0x01,0x22,0x04,0x92,0x00,0x28,0x0B,0xD1,0x00,0x29,0x05,0xD1, + 0x02,0x98,0x80,0x8E,0x00,0x28,0x01,0xD1,0x02,0xF0,0xF6,0xFF,0x19,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x20,0x6B,0x46,0xA9,0x4A,0x18,0x84,0x98,0x84,0x91,0x8B, + 0x49,0x1E,0xD9,0x84,0xD1,0x8B,0x64,0x22,0x49,0x1E,0x59,0x84,0x14,0x21,0x29,0x71, + 0x2A,0x80,0x69,0x71,0xC8,0x21,0x69,0x80,0x58,0x83,0x00,0x26,0x18,0x83,0x02,0x98, + 0x80,0x8E,0xF0,0x40,0xC0,0x07,0x03,0xD1,0x30,0x00,0x01,0xF0,0x41,0xFB,0x23,0xE1, + 0x02,0x99,0xB0,0x00,0x40,0x18,0x18,0x90,0x41,0x68,0x6B,0x46,0x08,0x02,0x00,0x0D, + 0x18,0x87,0x17,0x90,0x08,0x05,0x00,0x0D,0x58,0x87,0x16,0x90,0x15,0x90,0x0C,0x20, + 0x70,0x43,0x03,0x99,0x40,0x18,0x91,0x49,0x78,0x39,0x44,0x18,0x00,0x20,0x20,0x5E, + 0x00,0x28,0x07,0xDA,0x18,0x8F,0x20,0x80,0x15,0x99,0x61,0x80,0xA0,0x80,0x15,0x98, + 0xE0,0x80,0x01,0xE1,0x04,0x9A,0x00,0x20,0x52,0x1E,0x06,0xE0,0x81,0x00,0x09,0x19, + 0x8B,0x89,0x40,0x1C,0x0B,0x81,0xCB,0x89,0x4B,0x81,0x90,0x42,0xF6,0xDB,0x21,0x88, + 0x17,0x98,0x41,0x1A,0x04,0x98,0x80,0x00,0x00,0x19,0x81,0x80,0x62,0x88,0x16,0x99, + 0x89,0x1A,0x00,0x22,0x17,0x00,0xC1,0x80,0x10,0x00,0x08,0xE0,0x81,0x00,0x09,0x19, + 0x08,0x23,0xCB,0x5E,0xD2,0x18,0x0A,0x23,0xCB,0x5E,0xFF,0x18,0x40,0x1C,0x04,0x99, + 0x88,0x42,0xF3,0xDB,0x04,0x21,0x61,0x5E,0x17,0x98,0x47,0x1A,0x06,0x21,0x61,0x5E, + 0x16,0x98,0x40,0x1A,0x0C,0x90,0x38,0x1E,0x00,0xDC,0x78,0x42,0x0A,0x90,0x0C,0x98, + 0x00,0x28,0x00,0xDC,0x40,0x42,0x0B,0x90,0x06,0x22,0x29,0x00,0x68,0x46,0xFF,0xF7, + 0x3F,0xFC,0x0A,0x98,0x02,0x04,0x68,0x46,0x03,0xC8,0x12,0x14,0x05,0xF0,0x7D,0xFF, + 0x6B,0x46,0x98,0x83,0x14,0x90,0x06,0x22,0x29,0x00,0x68,0x46,0xFF,0xF7,0x30,0xFC, + 0x0B,0x98,0x02,0x04,0x68,0x46,0x03,0xC8,0x12,0x14,0x05,0xF0,0x6E,0xFF,0x6B,0x46, + 0xD8,0x83,0x13,0x90,0x03,0x98,0x0D,0x21,0x89,0x01,0x40,0x18,0x00,0x7C,0x02,0x28, + 0x05,0xD2,0x64,0x20,0x28,0x81,0xE8,0x80,0x32,0x20,0xA8,0x81,0x68,0x81,0x14,0x98, + 0x0A,0x21,0x48,0x43,0x06,0x21,0x0A,0x22,0x69,0x5E,0xAA,0x5E,0x00,0x04,0x00,0x14, + 0x89,0x18,0x2D,0x22,0x51,0x43,0x08,0x18,0x64,0x21,0xFF,0xF7,0x75,0xFC,0x01,0x04, + 0x09,0x14,0x6B,0x46,0x99,0x83,0x12,0x91,0x11,0x91,0x13,0x98,0x0A,0x21,0x48,0x43, + 0x08,0x21,0x0C,0x22,0x69,0x5E,0xAA,0x5E,0x00,0x04,0x00,0x14,0x89,0x18,0x2D,0x22, + 0x51,0x43,0x08,0x18,0x64,0x21,0xFF,0xF7,0x5F,0xFC,0x01,0x04,0x09,0x14,0x6B,0x46, + 0xD9,0x83,0x0F,0x91,0x10,0x91,0x11,0x99,0x0A,0x98,0x48,0x43,0x64,0x21,0xFF,0xF7, + 0x53,0xFC,0x0A,0x90,0x0F,0x99,0x0B,0x98,0x48,0x43,0x64,0x21,0xFF,0xF7,0x4C,0xFC, + 0x18,0x22,0x6B,0x46,0x9A,0x5E,0x11,0x99,0x91,0x42,0x01,0xDD,0x12,0x99,0x19,0x83, + 0x1A,0x22,0x6B,0x46,0x9A,0x5E,0x10,0x99,0x91,0x42,0x00,0xDD,0x59,0x83,0x01,0x21, + 0x0A,0x00,0x00,0x2F,0x00,0xDA,0x8A,0x1E,0x6B,0x46,0x1A,0x75,0x0C,0x9B,0x00,0x2B, + 0x01,0xDA,0x00,0x21,0xC9,0x43,0x6B,0x46,0x59,0x75,0x8C,0x46,0x71,0x00,0x49,0x19, + 0x0E,0x23,0xCB,0x56,0x9A,0x42,0x00,0xD1,0x17,0x00,0x0F,0x23,0xCB,0x56,0x9C,0x45, + 0x01,0xD1,0x62,0x46,0x0C,0x92,0x6B,0x46,0x9A,0x8A,0xCA,0x81,0xA1,0x88,0x34,0x22, + 0x00,0x2F,0x99,0x86,0xE1,0x88,0xD9,0x86,0x9A,0x5E,0x0A,0x99,0x00,0xDA,0x49,0x42, + 0x51,0x18,0x6B,0x46,0x99,0x86,0x36,0x21,0x59,0x5E,0x0C,0x9A,0x00,0x2A,0x00,0xDA, + 0x40,0x42,0x08,0x18,0x6B,0x46,0xD8,0x86,0x08,0xA9,0x06,0xC9,0x0D,0xA8,0x06,0xF0, + 0x3B,0xFB,0x6B,0x46,0x18,0x8F,0x17,0x49,0x20,0x80,0x15,0x98,0x60,0x80,0x98,0x8E, + 0xA0,0x80,0xD8,0x8E,0xE0,0x80,0x18,0x98,0x40,0x68,0x08,0x40,0x99,0x8E,0x09,0x05, + 0x09,0x0A,0x08,0x43,0x18,0x99,0x48,0x60,0xD9,0x8E,0x00,0x0B,0x00,0x03,0x09,0x05, + 0x09,0x0D,0x08,0x43,0x18,0x99,0x48,0x60,0x76,0x1C,0x0A,0x2E,0x00,0xDA,0xCE,0xE6, + 0xE8,0x88,0x6B,0x46,0x68,0x81,0x28,0x89,0xA8,0x81,0x18,0x8B,0xE8,0x80,0x58,0x8B, + 0x28,0x81,0xAB,0xE6,0xE8,0x07,0x00,0x20,0x40,0x00,0x00,0x20,0x42,0x06,0x00,0x00, + 0x9C,0x94,0x00,0x00,0xFF,0x0F,0x00,0xFF,0x7F,0xB5,0x05,0x00,0x1A,0x28,0x0A,0xD1, + 0x13,0x48,0x00,0x68,0x00,0x28,0x06,0xD1,0x12,0x4C,0x01,0xF0,0x71,0xFE,0x64,0x1E, + 0xFB,0xD2,0xFF,0x24,0x14,0xE0,0x04,0xF0,0x95,0xFF,0x05,0xF0,0xBF,0xFF,0x01,0xF0, + 0x9B,0xFD,0x01,0xF0,0xA1,0xFD,0x03,0xAA,0x01,0xA9,0x02,0xA8,0x04,0xF0,0xA8,0xF9, + 0x04,0x00,0x03,0x00,0x01,0x9A,0x02,0x99,0x03,0x98,0x00,0x95,0x00,0xF0,0x0C,0xF8, + 0x05,0xF0,0xFA,0xF8,0x20,0x00,0x04,0xB0,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xC0,0x9F,0x00,0x00,0xE7,0x03,0x00,0x00,0xFF,0xB5,0x06,0x00,0x0D,0x00,0x91,0xB0, + 0x03,0xF0,0xBC,0xF8,0x1A,0x48,0x03,0x27,0x04,0x04,0x24,0x0C,0x3F,0x02,0x00,0x22, + 0x39,0x00,0x20,0x00,0xFF,0xF7,0x08,0xFD,0x16,0x49,0x3A,0x00,0x20,0x00,0x00,0x23, + 0xFF,0xF7,0x0A,0xFD,0x14,0x49,0x40,0x22,0x01,0xA8,0xFF,0xF7,0x0D,0xFD,0x14,0x99, + 0x30,0x04,0x09,0x03,0x08,0x43,0x11,0x49,0x08,0x43,0x04,0x90,0x13,0x99,0x28,0x04, + 0x08,0x43,0x02,0x90,0x0E,0x48,0x00,0x68,0x05,0x90,0x0B,0x48,0x80,0x68,0x40,0x1C, + 0x03,0x90,0x1A,0x98,0x1A,0x28,0x01,0xD1,0x00,0x20,0x01,0x90,0x01,0xA8,0x02,0xF0, + 0xB5,0xFB,0x01,0xA8,0x06,0xF0,0xEC,0xF9,0x15,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0xC0,0x9C,0x00,0x00,0x00,0x00,0x10,0x40,0xC0,0x9F,0x00,0x00,0xAB,0x0C,0x00,0x80, + 0x08,0x08,0x00,0x20,0x04,0x49,0x0A,0x6A,0x02,0x60,0x4A,0x6A,0x42,0x60,0x4A,0x6B, + 0x82,0x60,0xC9,0x6A,0xC1,0x60,0x70,0x47,0x80,0x90,0x00,0x40,0x02,0x4A,0x51,0x69, + 0x81,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x4A,0x51,0x69, + 0x01,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x4A,0x11,0x69, + 0x01,0x43,0x11,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x01,0x48,0x40,0x69, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x01,0x48,0x80,0x6A,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x02,0x49,0x08,0x62,0x00,0x20,0x08,0x62,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x01,0x49,0x48,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x07,0x49,0xFF,0x28,0x04,0xD1,0x01,0x20,0xC8,0x60,0x00,0x20,0x88,0x61,0x70,0x47, + 0x8A,0x69,0x12,0x07,0x12,0x0F,0x02,0x43,0x8A,0x61,0x02,0x20,0xC8,0x60,0x70,0x47, + 0x40,0x00,0x00,0x40,0xF0,0xB5,0x00,0x20,0xFF,0xB0,0xC0,0x43,0xB2,0xB0,0xA9,0x90, + 0x00,0x20,0xA7,0x90,0xFF,0x48,0x00,0x27,0x00,0x68,0x3E,0x00,0x60,0x30,0x41,0x7E, + 0x08,0x91,0x81,0x7E,0x07,0x91,0xC1,0x7E,0x06,0x91,0x00,0x7F,0x89,0x21,0x89,0x00, + 0x05,0x90,0xF9,0x48,0x45,0x18,0x03,0x90,0xFF,0x30,0x23,0x30,0x02,0x90,0xF7,0x49, + 0x03,0x98,0xEC,0x1D,0x40,0x18,0xF9,0x34,0x01,0x90,0x0D,0xE0,0x0A,0x20,0x70,0x43, + 0x40,0x19,0x7C,0x21,0x09,0x5C,0x00,0x29,0x05,0xD0,0x7E,0x30,0x02,0xF0,0x6E,0xFD, + 0x00,0x28,0x00,0xD0,0x7F,0x1C,0x76,0x1C,0x60,0x7D,0xB0,0x42,0xEE,0xDC,0x01,0x98, + 0x00,0x22,0x04,0x21,0x82,0x5E,0x41,0x5E,0x50,0x1A,0x00,0x28,0x00,0xDC,0x88,0x1A, + 0x02,0x04,0x12,0x14,0x6B,0x46,0x1A,0x80,0x01,0x98,0x02,0x21,0x06,0x23,0x41,0x5E, + 0xC3,0x5E,0xC8,0x1A,0x00,0x28,0x00,0xDC,0x58,0x1A,0x00,0x04,0x00,0x14,0x6B,0x46, + 0x58,0x80,0x01,0x99,0x00,0x26,0x00,0x2F,0x8E,0x75,0x12,0xD0,0xD9,0x49,0x09,0x68, + 0x80,0x31,0x0B,0x89,0x9A,0x42,0x0C,0xDA,0x4A,0x89,0x90,0x42,0x01,0xDA,0x01,0x21, + 0x05,0xE0,0x89,0x89,0x88,0x42,0x01,0xDA,0x02,0x21,0x00,0xE0,0x03,0x21,0x01,0x98, + 0x81,0x75,0x01,0x98,0x40,0x7D,0x00,0x28,0x1C,0xD1,0x01,0x98,0x80,0x7D,0x01,0x28, + 0x04,0xD1,0xCC,0x48,0x00,0x68,0x80,0x30,0x41,0x7D,0x05,0xE0,0x02,0x28,0x06,0xD1, + 0xC8,0x48,0x00,0x68,0x80,0x30,0x81,0x7D,0x08,0x98,0x08,0x18,0x07,0xE0,0x03,0x28, + 0x08,0xD1,0xC4,0x48,0x08,0x99,0x00,0x68,0x80,0x30,0xC0,0x7D,0x40,0x18,0x00,0x06, + 0x00,0x0E,0x08,0x90,0x0C,0x22,0x00,0x21,0xA2,0xA8,0xFF,0xF7,0x0B,0xFC,0x03,0x98, + 0xC0,0x88,0x00,0x06,0x40,0x0F,0x0D,0xD0,0x06,0xF0,0xD0,0xF8,0x01,0xF0,0xDA,0xF8, + 0x01,0xF0,0x08,0xF9,0x02,0xF0,0x38,0xFD,0x03,0x98,0x01,0x21,0xE0,0x30,0x81,0x74, + 0x30,0x00,0x27,0xE0,0x03,0x98,0x00,0x21,0xE0,0x30,0x81,0x74,0xA0,0x7D,0x00,0x28, + 0x01,0xD0,0x40,0x1E,0xA0,0x75,0x03,0x98,0x06,0x79,0x60,0x7D,0x00,0x2E,0x02,0xD1, + 0x00,0x28,0x16,0xD0,0x1C,0xE0,0x00,0x28,0x1A,0xD1,0x78,0x22,0x00,0x21,0xA8,0x18, + 0xFF,0xF7,0xE0,0xFB,0xA0,0x7D,0x00,0x28,0x0B,0xD1,0x00,0x25,0x06,0xE0,0x2A,0x00, + 0x29,0x00,0x14,0x23,0xA2,0xA8,0xFF,0xF7,0xC1,0xFC,0x6D,0x1C,0xB5,0x42,0xF6,0xDB, + 0x26,0x75,0x00,0x20,0xE0,0x75,0x7F,0xB0,0x32,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x0D,0x22,0x01,0x21,0x9E,0xA8,0xFF,0xF7,0xC5,0xFB,0x02,0x20,0x09,0x90,0x01,0xF0, + 0x23,0xFC,0xA5,0x90,0xE0,0x7D,0x00,0x28,0x05,0xD0,0x20,0x7E,0x01,0x28,0x02,0xD1, + 0xA5,0x98,0x40,0x00,0xA5,0x90,0xF9,0xE0,0x00,0x27,0x09,0x22,0xFF,0x43,0x92,0x01, + 0x39,0x00,0x0E,0xA8,0xFF,0xF7,0xAE,0xFB,0x0C,0x22,0x39,0x00,0x0B,0xA8,0xFF,0xF7, + 0xA9,0xFB,0x09,0x98,0x00,0x28,0x0B,0xD1,0x8A,0x48,0x00,0x68,0x60,0x30,0x07,0x7E, + 0xA5,0x98,0x39,0x00,0xFF,0xF7,0x10,0xFA,0x39,0x00,0xFF,0xF7,0x0D,0xFA,0xA5,0x90, + 0x00,0x20,0x44,0xE0,0xA5,0x98,0x00,0x27,0xA6,0x90,0x3B,0xE0,0x0A,0x20,0x78,0x43, + 0x40,0x19,0x78,0x30,0x04,0x90,0x00,0x79,0x00,0x28,0x32,0xD0,0x04,0x98,0x80,0x1D, + 0x02,0xF0,0x8C,0xFC,0x09,0x99,0x88,0x42,0x2B,0xD1,0x04,0x99,0x00,0x20,0x08,0x5E, + 0xAC,0x99,0x0A,0x22,0x51,0x43,0x02,0x9A,0x8B,0x18,0x0E,0x21,0x59,0x5E,0x42,0x1A, + 0x00,0x2A,0x00,0xDC,0x0A,0x1A,0x04,0x99,0x02,0x20,0x08,0x5E,0x10,0x21,0x59,0x5E, + 0x43,0x1A,0x00,0x2B,0x00,0xDC,0x0B,0x1A,0x10,0x00,0x19,0x00,0x50,0x43,0x59,0x43, + 0x40,0x18,0xA6,0x99,0x88,0x42,0x04,0xDA,0xAC,0x9B,0x79,0x1C,0x0B,0xAA,0xD1,0x54, + 0xA6,0x90,0xAC,0x99,0x30,0x22,0x51,0x43,0x0E,0xAA,0x89,0x18,0xBA,0x00,0x89,0x18, + 0x48,0x60,0x7F,0x1C,0x60,0x7D,0xB8,0x42,0xC0,0xDC,0xAC,0x98,0x40,0x1C,0xB0,0x42, + 0xAC,0x90,0xB7,0xDB,0x00,0x20,0x8D,0xE0,0x01,0x20,0x84,0x46,0xA5,0x9B,0x00,0x20, + 0x16,0xE0,0xA2,0xA9,0x09,0x5C,0x00,0x29,0x11,0xD1,0x0B,0xA9,0x0A,0x56,0x30,0x21, + 0x41,0x43,0x0E,0xAF,0xC9,0x19,0x97,0x00,0xC9,0x59,0x99,0x42,0x07,0xDA,0x00,0x29, + 0x05,0xDB,0x00,0x2A,0x03,0xDB,0x0B,0x00,0x00,0x21,0x8C,0x46,0xA9,0x90,0x40,0x1C, + 0xB0,0x42,0xE6,0xDB,0x60,0x46,0x00,0x28,0x6A,0xD1,0xA7,0x98,0x0A,0x21,0x40,0x1C, + 0xA7,0x90,0xA9,0x98,0x48,0x43,0x47,0x19,0xB0,0x90,0x38,0x79,0x00,0x28,0x5F,0xD1, + 0xA9,0x99,0x0B,0xA8,0x40,0x56,0x0A,0x21,0x0A,0x22,0x0A,0x90,0x48,0x43,0x41,0x19, + 0x6E,0x31,0x38,0x00,0xFF,0xF7,0x1C,0xFB,0x02,0x99,0xB0,0x98,0x40,0x18,0xC1,0x89, + 0x39,0x80,0x01,0x8A,0x79,0x80,0x80,0x7C,0x78,0x71,0xB8,0x79,0x08,0x99,0x49,0x1C, + 0x88,0x42,0x01,0xD2,0x40,0x1C,0xB8,0x71,0xB8,0x79,0x14,0x28,0x07,0xD3,0x07,0x99, + 0x14,0x22,0x89,0x1C,0x51,0x43,0x88,0x42,0x01,0xD2,0x14,0x30,0xB8,0x71,0x38,0x79, + 0xA9,0x9A,0xA2,0xA9,0x88,0x54,0xA9,0x98,0x3A,0x79,0x29,0x00,0x40,0x1C,0xFB,0x31, + 0x50,0x54,0x3A,0x79,0x00,0x20,0x0C,0x39,0x50,0x54,0x0A,0x9A,0x9E,0xA9,0x88,0x54, + 0x01,0x00,0x1F,0xE0,0x30,0x20,0x48,0x43,0x0E,0xAB,0xC0,0x18,0x0A,0x9B,0x00,0x22, + 0xD2,0x43,0x9B,0x00,0x84,0x46,0xC2,0x50,0xA2,0xA8,0x40,0x5C,0xA5,0x9B,0x00,0x28, + 0x0F,0xD1,0x0B,0xE0,0x82,0x00,0x62,0x44,0x52,0x68,0x00,0x2A,0x05,0xDB,0x9A,0x42, + 0x03,0xDA,0x43,0x1C,0x0B,0xAF,0x7B,0x54,0x13,0x00,0x40,0x1C,0x62,0x7D,0x82,0x42, + 0xF0,0xDC,0x49,0x1C,0xB1,0x42,0xDD,0xDB,0x60,0x7D,0xA7,0x99,0x88,0x42,0x05,0xDD, + 0xAA,0x98,0x40,0x1C,0xB0,0x42,0xAA,0x90,0x00,0xDA,0x6D,0xE7,0x09,0x98,0x41,0x1E, + 0x09,0x06,0x09,0x0E,0x00,0x28,0x09,0x91,0x00,0xD0,0xFD,0xE6,0xE0,0x75,0xA8,0x90, + 0xAB,0x90,0xAC,0x90,0x6B,0xE0,0x08,0x00,0x0A,0x21,0x48,0x43,0x47,0x19,0xAB,0x98, + 0x9E,0xA9,0x08,0x18,0x40,0x78,0x78,0x37,0x00,0x28,0x5D,0xD0,0xAC,0x98,0x30,0x18, + 0x0C,0x28,0xAA,0x90,0x5F,0xDA,0x39,0x79,0x28,0x00,0xEF,0x30,0xAF,0x90,0x08,0x5C, + 0x06,0x99,0x88,0x42,0x3C,0xD2,0xAC,0x98,0x0C,0x28,0x39,0xDA,0xB8,0x1D,0x02,0xF0, + 0x95,0xFB,0x05,0xE0,0xE8,0x07,0x00,0x20,0x40,0x00,0x00,0x20,0x3E,0x03,0x00,0x00, + 0x00,0x28,0x2D,0xD0,0x38,0x79,0xAF,0x99,0xAF,0x9A,0x41,0x5C,0x49,0x1C,0x81,0x54, + 0xAA,0x98,0x0A,0x21,0x48,0x43,0x40,0x19,0x0A,0x00,0x39,0x00,0xAE,0x90,0xFF,0xF7, + 0x7F,0xFA,0xF9,0x79,0xAE,0x98,0xC1,0x71,0x39,0x7A,0xAE,0x98,0x01,0x72,0x38,0x79, + 0xAA,0x9A,0xA2,0xA9,0x88,0x54,0xAA,0x98,0x3A,0x79,0x29,0x00,0x40,0x1C,0xFB,0x31, + 0x50,0x54,0xAC,0x98,0x40,0x1C,0xAC,0x90,0xA8,0x98,0x40,0x1C,0xA8,0x90,0x01,0x20, + 0xE0,0x75,0x03,0x99,0x89,0x7E,0x00,0x29,0x16,0xD1,0x03,0x99,0x88,0x76,0x13,0xE0, + 0xB8,0x1D,0x02,0xF0,0x5B,0xFB,0x00,0x28,0x0E,0xD0,0x01,0x99,0x01,0x20,0x08,0x75, + 0xB8,0x79,0x13,0x28,0x08,0xD9,0x60,0x7D,0x01,0x28,0x05,0xD1,0x03,0x98,0x04,0x21, + 0xC0,0x88,0x08,0x43,0x03,0x99,0xC8,0x80,0xAB,0x98,0x40,0x1C,0xAB,0x90,0x60,0x7D, + 0xAB,0x99,0x88,0x42,0x8F,0xDC,0x03,0x98,0xC0,0x88,0x40,0x07,0x07,0xD5,0x05,0x98, + 0x04,0x21,0xA0,0x75,0x03,0x98,0xC0,0x88,0x88,0x43,0x03,0x99,0xC8,0x80,0x00,0x27, + 0x27,0xE0,0xA2,0xA8,0xC0,0x5D,0x00,0x28,0x13,0xD1,0x00,0x22,0xA8,0x18,0xFC,0x21, + 0x09,0x5C,0x00,0x29,0x0A,0xD1,0xFF,0x30,0x01,0x30,0x00,0x7A,0x00,0x28,0x05,0xD1, + 0x39,0x00,0x01,0x23,0xA2,0xA8,0xFF,0xF7,0x09,0xFB,0x02,0xE0,0x52,0x1C,0x0C,0x2A, + 0xEC,0xDB,0xA0,0x7D,0x00,0x28,0x0B,0xD0,0x0A,0x20,0x78,0x43,0x40,0x19,0xAD,0x90, + 0x80,0x1D,0x02,0xF0,0x13,0xFB,0x00,0x28,0x02,0xD1,0xAD,0x99,0x01,0x20,0x88,0x71, + 0x7F,0x1C,0xB7,0x42,0xD5,0xDB,0xA8,0x98,0x30,0x18,0x20,0x75,0x33,0xE6,0x00,0x00, + 0xF3,0xB5,0x3A,0x48,0x85,0xB0,0x04,0x90,0x00,0x20,0x03,0x90,0x38,0x48,0xC0,0x7F, + 0x01,0x90,0x37,0x48,0x20,0x30,0x01,0x78,0x00,0x91,0x00,0x21,0x02,0x91,0xC0,0x78, + 0x00,0x28,0x02,0xD0,0x06,0x98,0x40,0x42,0x06,0x90,0x05,0xF0,0x91,0xFF,0x01,0xF0, + 0xC9,0xF9,0x01,0xF0,0x41,0xFA,0x00,0x24,0x27,0x00,0x38,0xE0,0x00,0x26,0x30,0xE0, + 0x31,0x00,0x38,0x00,0x02,0xF0,0x58,0xF8,0x00,0x28,0x28,0xD0,0x29,0x78,0x04,0x9A, + 0x79,0x43,0x89,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x0D,0x1A,0x05,0x98, + 0x00,0x28,0x0D,0xD0,0x00,0x2D,0x1A,0xDA,0x06,0x9A,0x31,0x00,0x38,0x00,0x05,0xF0, + 0x7B,0xFB,0x40,0x1C,0x14,0xD1,0x00,0x98,0x28,0x18,0x10,0xD5,0x02,0x20,0x0D,0xE0, + 0x00,0x2D,0x0C,0xDD,0x06,0x9A,0x31,0x00,0x38,0x00,0x05,0xF0,0x6D,0xFB,0x40,0x1C, + 0x06,0xD1,0x01,0x98,0x28,0x1A,0x00,0x28,0x01,0xDD,0x03,0x20,0x03,0x90,0x64,0x1C, + 0x76,0x1C,0x13,0x4D,0x20,0x3D,0x28,0x78,0xB0,0x42,0xC9,0xD8,0x7F,0x1C,0x10,0x48, + 0x20,0x38,0x41,0x78,0xB9,0x42,0xC1,0xD8,0x01,0x00,0x48,0x78,0x09,0x78,0x48,0x43, + 0xA0,0x42,0x04,0xD1,0x03,0x98,0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x02,0x98, + 0x41,0x1C,0x02,0x91,0x01,0x21,0x49,0x02,0x88,0x42,0xA6,0xD9,0x05,0x98,0x00,0x28, + 0x01,0xD0,0x02,0x20,0x00,0xE0,0x03,0x20,0x03,0x90,0xEC,0xE7,0xD4,0x02,0x10,0x40, + 0xBC,0x94,0x00,0x00,0xF0,0xB5,0x90,0x4A,0x87,0xB0,0x40,0x18,0x06,0x92,0x42,0x00, + 0x80,0x18,0x05,0x90,0x48,0x42,0x04,0x90,0x8C,0x48,0x8F,0x4C,0x80,0x7C,0x8C,0x4F, + 0x03,0x90,0x8C,0x48,0x01,0x90,0xE0,0x78,0x00,0x28,0x02,0xD1,0x04,0x98,0x40,0x42, + 0x04,0x90,0x8A,0x4A,0x00,0x21,0x38,0x00,0xFF,0xF7,0x78,0xF9,0x00,0x26,0x38,0xE0, + 0x00,0x25,0x30,0xE0,0x60,0x79,0xC0,0x07,0x15,0xD0,0x85,0x48,0x00,0x78,0x00,0x28, + 0x03,0x98,0x16,0xD0,0x86,0x42,0x0E,0xD1,0xA0,0x7A,0xA8,0x42,0x0B,0xD0,0xE0,0x7A, + 0xA8,0x42,0x08,0xD0,0x20,0x7B,0xA8,0x42,0x05,0xD0,0x60,0x7B,0xA8,0x42,0x02,0xD0, + 0xA0,0x7B,0xA8,0x42,0x16,0xD1,0x04,0x9A,0x29,0x00,0x30,0x00,0x05,0xF0,0xFC,0xFA, + 0x10,0xE0,0x85,0x42,0xF7,0xD1,0xA0,0x7A,0xB0,0x42,0xF4,0xD0,0xE0,0x7A,0xB0,0x42, + 0xF1,0xD0,0x20,0x7B,0xB0,0x42,0xEE,0xD0,0x60,0x7B,0xB0,0x42,0xEB,0xD0,0xA0,0x7B, + 0xB0,0x42,0xE8,0xD0,0x6D,0x1C,0x6C,0x48,0x40,0x38,0x00,0x78,0xA8,0x42,0xC9,0xD8, + 0x76,0x1C,0x69,0x48,0x40,0x38,0x40,0x78,0xB0,0x42,0xC1,0xD8,0x05,0xF0,0xD0,0xFE, + 0x01,0xF0,0x08,0xF9,0x01,0xF0,0x80,0xF9,0x00,0x26,0x2E,0xE0,0x00,0x25,0x26,0xE0, + 0x29,0x00,0x30,0x00,0x01,0xF0,0x98,0xFF,0x00,0x28,0x13,0xD0,0x5E,0x49,0x06,0x9B, + 0x40,0x39,0x09,0x78,0x71,0x43,0x4A,0x19,0x91,0x00,0x59,0x58,0x03,0x04,0x09,0x05, + 0x09,0x0D,0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0,0x40,0x1A, + 0x51,0x00,0x78,0x52,0x29,0x00,0x30,0x00,0x01,0xF0,0xC2,0xFF,0x52,0x49,0x01,0x9A, + 0x40,0x39,0x09,0x78,0x71,0x43,0x49,0x19,0x49,0x00,0x6D,0x1C,0x50,0x52,0x4E,0x48, + 0x40,0x38,0x00,0x78,0xA8,0x42,0xD3,0xD8,0x76,0x1C,0x4B,0x48,0x40,0x38,0x41,0x78, + 0xB1,0x42,0xCB,0xD8,0x00,0x21,0x02,0x91,0x01,0xF0,0x46,0xF9,0x00,0x26,0x54,0xE0, + 0x00,0x25,0x4C,0xE0,0x29,0x00,0x30,0x00,0x01,0xF0,0x5E,0xFF,0x00,0x28,0x45,0xD0, + 0x41,0x49,0x06,0x9B,0x40,0x39,0x09,0x78,0x71,0x43,0x4A,0x19,0x91,0x00,0x59,0x58, + 0x03,0x04,0x09,0x05,0x09,0x0D,0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD,0x08,0x1A, + 0x00,0xE0,0x40,0x1A,0x51,0x00,0x7A,0x5A,0x00,0x04,0x00,0x0C,0x82,0x42,0x0C,0xD9, + 0x78,0x52,0x29,0x00,0x30,0x00,0x01,0xF0,0x83,0xFF,0x33,0x49,0x01,0x9A,0x40,0x39, + 0x09,0x78,0x71,0x43,0x49,0x19,0x49,0x00,0x50,0x52,0x02,0x98,0x03,0x21,0xFF,0xF7, + 0x8D,0xF8,0x00,0x29,0x01,0xD0,0x02,0x29,0x0C,0xD1,0xE0,0x78,0x00,0x28,0x02,0xD1, + 0x00,0x22,0x43,0x1E,0x01,0xE0,0x01,0x22,0x00,0x23,0x29,0x00,0x30,0x00,0x05,0xF0, + 0x2D,0xFA,0x0B,0xE0,0x00,0x22,0xD2,0x43,0x00,0x23,0x29,0x00,0x30,0x00,0x05,0xF0, + 0x25,0xFA,0x00,0x28,0x02,0xD1,0x00,0x22,0x01,0x23,0xEE,0xE7,0x6D,0x1C,0x1E,0x48, + 0x40,0x38,0x00,0x78,0xA8,0x42,0xAD,0xD8,0x76,0x1C,0x1B,0x48,0x40,0x38,0x41,0x78, + 0xB1,0x42,0xA5,0xD8,0x02,0x99,0x49,0x1C,0x02,0x91,0x05,0x99,0x49,0x1E,0x05,0x91, + 0x1C,0xD2,0x00,0x25,0x06,0x00,0x0F,0xE0,0x00,0x24,0x09,0xE0,0x69,0x43,0x08,0x19, + 0x01,0x99,0x40,0x00,0x0A,0x5A,0x21,0x00,0x28,0x00,0x05,0xF0,0x1F,0xFA,0x64,0x1C, + 0x31,0x78,0xA1,0x42,0xF2,0xD8,0x6D,0x1C,0x70,0x78,0xA8,0x42,0xEC,0xD8,0x05,0xF0, + 0x17,0xFE,0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x05,0xF0,0x10,0xFE, + 0x01,0xF0,0x48,0xF8,0x78,0xE7,0x00,0x00,0xD4,0x02,0x10,0x40,0xC0,0x06,0x00,0x20, + 0x00,0x00,0x00,0x10,0x2A,0x08,0x00,0x20,0xDC,0x94,0x00,0x00,0xD2,0x02,0x00,0x00, + 0xF4,0x07,0x00,0x20,0x1F,0xB5,0x68,0x46,0xFF,0xF7,0x6C,0xFB,0x00,0x20,0x05,0xF0, + 0x87,0xFA,0x00,0x22,0x11,0x00,0x10,0x00,0x00,0xF0,0x1C,0xFE,0x68,0x46,0x04,0xF0, + 0x63,0xFD,0x1F,0xBC,0x08,0xBC,0x18,0x47,0x15,0x48,0x10,0xB5,0x01,0x78,0x15,0x48, + 0x00,0x68,0x00,0x29,0x02,0xD0,0x14,0x49,0x49,0x89,0x00,0xE0,0x81,0x8B,0x13,0x4A, + 0x92,0x8B,0x53,0x18,0x12,0x49,0x13,0x4A,0x8C,0x89,0xA3,0x42,0x14,0xD9,0x12,0x4B, + 0x5B,0x7E,0x00,0x2B,0x10,0xD1,0xC9,0x88,0x17,0x23,0x5B,0x01,0x19,0x42,0x0B,0xD1, + 0xD1,0x68,0x49,0x1C,0xD1,0x60,0x80,0x7F,0x88,0x42,0x07,0xD2,0x01,0xF0,0x34,0xF8, + 0x01,0x20,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0xD0,0x60,0x00,0x20,0xF8,0xE7, + 0xFA,0x07,0x00,0x20,0xE8,0x07,0x00,0x20,0x1C,0x95,0x00,0x00,0xC0,0x01,0x00,0x20, + 0x40,0x00,0x00,0x20,0x18,0x08,0x00,0x20,0x60,0x03,0x00,0x20,0xF3,0xB5,0x04,0x00, + 0x75,0x48,0x00,0x26,0x01,0x00,0x20,0x31,0x0A,0x7A,0x01,0x25,0x82,0xB0,0xD2,0x07, + 0x00,0x2A,0x86,0x46,0x01,0xD1,0xE5,0x71,0x5F,0xE0,0x80,0x8D,0x6F,0x4A,0x84,0x46, + 0x88,0x7A,0x1C,0x21,0x51,0x5E,0x13,0x00,0x1E,0x22,0x9A,0x5E,0x00,0x28,0x21,0xD0, + 0x69,0x4B,0x9B,0x8D,0x1F,0x04,0x3F,0x14,0x01,0x28,0x0F,0xD0,0x02,0x28,0x14,0xD0, + 0x03,0x28,0x4A,0xD1,0x65,0x48,0x6B,0x46,0x99,0x80,0x81,0x8B,0x60,0x46,0x08,0x18, + 0xD8,0x80,0x00,0x20,0x6B,0x46,0x18,0x80,0x5A,0x80,0x15,0xE0,0x00,0x20,0x6B,0x46, + 0x98,0x80,0xD9,0x80,0x18,0x80,0x5F,0x80,0x0E,0xE0,0x00,0x20,0x6B,0x46,0x98,0x80, + 0xDF,0x80,0xEF,0xE7,0x00,0x20,0x6B,0x46,0x98,0x80,0x58,0x48,0xD9,0x80,0x1A,0x80, + 0xC1,0x8B,0x60,0x46,0x08,0x18,0x58,0x80,0x00,0x20,0x04,0x22,0x6B,0x46,0x20,0x5E, + 0x9A,0x5E,0x02,0x21,0x61,0x5E,0x02,0x27,0x82,0x42,0x69,0xDC,0x06,0x22,0x9A,0x5E, + 0x90,0x42,0x65,0xDC,0x00,0x22,0x9A,0x5E,0x8A,0x42,0x61,0xDC,0xDA,0x5F,0x91,0x42, + 0x5E,0xDC,0x03,0x9A,0xFE,0x1E,0x00,0x2A,0x75,0xD0,0x01,0x2A,0x12,0xD0,0x02,0x2A, + 0x23,0xD0,0x04,0x2A,0x7C,0xD1,0xE2,0x79,0xD3,0x07,0x37,0xD0,0x50,0x07,0x80,0x0F, + 0x2B,0xD0,0x0A,0x20,0x00,0x26,0xE0,0x71,0x72,0xE0,0x00,0x20,0x04,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x72,0x46,0x40,0x32,0xD2,0x7F,0x00,0x2A,0x68,0xD1,0x00,0xF0, + 0x79,0xF8,0x05,0x00,0x06,0xD0,0x06,0x20,0xE0,0x71,0x29,0x00,0x20,0x00,0xFF,0xF7, + 0x45,0xF8,0x00,0xE0,0xE7,0x71,0x25,0x72,0x5A,0xE0,0xE2,0x79,0xD3,0x07,0xDD,0xD1, + 0x92,0x07,0x55,0xD5,0x00,0xF0,0x66,0xF8,0x00,0x28,0x09,0xD0,0x21,0x7A,0x00,0x29, + 0x06,0xD1,0x06,0x21,0xE1,0x71,0x20,0x72,0x03,0xE0,0x12,0x20,0xE0,0x71,0x47,0xE0, + 0xE7,0x71,0x01,0x00,0x20,0x00,0xFF,0xF7,0x29,0xF8,0x41,0xE0,0x92,0x07,0x3F,0xD5, + 0x00,0xF0,0x50,0xF8,0x21,0x7A,0x00,0x28,0x0A,0xD0,0x00,0x29,0x0C,0xD0,0x81,0x42, + 0x08,0xD1,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFF,0xF7,0x18,0xF8,0xA5,0x71,0x04,0xE0, + 0x00,0x29,0x01,0xD0,0x12,0x20,0xF5,0xE7,0xE7,0x71,0x00,0x20,0x20,0x72,0x27,0xE0, + 0x03,0x98,0x00,0x28,0x23,0xD0,0x01,0x28,0x06,0xD0,0x02,0x28,0x06,0xD0,0x04,0x28, + 0x1E,0xD1,0xE0,0x79,0x80,0x07,0x0F,0xD4,0xE5,0x71,0x19,0xE0,0xE0,0x79,0x80,0x07, + 0xFA,0xD5,0x21,0x7A,0x00,0x29,0x04,0xD0,0x12,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7, + 0xF5,0xFF,0xE5,0x71,0x09,0xE0,0x0A,0xE0,0xE7,0x71,0x21,0x7A,0x00,0x29,0x04,0xD0, + 0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0xE9,0xFF,0xA5,0x71,0x00,0xE0,0xE7,0x71, + 0x07,0x49,0xC8,0x88,0x82,0x07,0x04,0xD1,0xE2,0x79,0x92,0x07,0x92,0x0F,0x10,0x43, + 0xC8,0x80,0x30,0x00,0x82,0xE7,0x00,0x00,0xA4,0x06,0x00,0x20,0x9C,0x94,0x00,0x00, + 0x40,0x00,0x00,0x20,0xF0,0xB4,0x13,0x4C,0x29,0x22,0x17,0x5D,0x00,0x2F,0x1F,0xD0, + 0x5C,0x22,0x12,0x5D,0x00,0x2A,0x1B,0xD1,0x18,0xE0,0xD5,0x00,0x2B,0x19,0x04,0x26, + 0x9E,0x5F,0xB0,0x42,0x0F,0xDB,0x06,0x26,0x9E,0x5F,0xB0,0x42,0x0B,0xDC,0x65,0x5F, + 0xA9,0x42,0x08,0xDB,0x02,0x25,0x5D,0x5F,0xA9,0x42,0x04,0xDC,0x52,0x1C,0x10,0x06, + 0x00,0x0E,0xF0,0xBC,0x70,0x47,0x52,0x1C,0x12,0x06,0x12,0x0E,0x97,0x42,0xE4,0xD8, + 0x00,0x20,0xF6,0xE7,0xA4,0x06,0x00,0x20,0xF0,0xB5,0x00,0x20,0x8F,0xB0,0x07,0x90, + 0xBB,0x48,0xBC,0x4C,0x00,0x68,0x26,0x00,0x01,0x68,0xFF,0x36,0x09,0x04,0x09,0x0C, + 0x06,0x91,0x5A,0x21,0x09,0x5C,0xA5,0x36,0x35,0x00,0x02,0x91,0x01,0x21,0x01,0x91, + 0x85,0x21,0x89,0x00,0x67,0x18,0x89,0x21,0x89,0x00,0x61,0x18,0x8E,0x46,0xE1,0x88, + 0x82,0x3D,0x8A,0x06,0x05,0xD5,0x22,0x79,0x00,0x2A,0x02,0xD1,0x20,0x22,0x91,0x43, + 0xE1,0x80,0x31,0x00,0x60,0x31,0x60,0x30,0x0E,0x91,0x02,0x8A,0xC9,0x88,0x94,0x46, + 0x91,0x42,0x04,0xD9,0x0E,0x9A,0x43,0x8A,0x12,0x89,0x9A,0x42,0x0D,0xD8,0x0E,0x9A, + 0x83,0x8A,0x52,0x89,0x9A,0x42,0x08,0xD8,0x61,0x45,0x04,0xD9,0x62,0x89,0x7D,0x23, + 0xDB,0x00,0x9A,0x42,0x01,0xD8,0x50,0x29,0x06,0xD9,0xE1,0x88,0x40,0x22,0x11,0x43, + 0xE1,0x80,0xC0,0x89,0x0E,0x99,0x05,0xE0,0x0E,0x99,0x0C,0x20,0x08,0x56,0x00,0x28, + 0x02,0xDD,0x40,0x1E,0x08,0x73,0x03,0xE0,0xE0,0x88,0x40,0x21,0x88,0x43,0xE0,0x80, + 0x06,0x98,0x80,0x04,0x7B,0xD5,0x70,0x46,0xFF,0x30,0x01,0x30,0x40,0x7D,0x00,0x28, + 0x03,0xD1,0x20,0x79,0x00,0x28,0x00,0xD1,0x01,0x90,0x00,0xF0,0x1D,0xF9,0x20,0x79, + 0x00,0x28,0x0D,0x90,0x34,0xD0,0x20,0x89,0x89,0x49,0x0C,0x90,0x09,0x68,0x40,0x31, + 0x0B,0x91,0x49,0x8A,0x88,0x42,0x2B,0xD2,0x0A,0x22,0x06,0x21,0x50,0x43,0x79,0x5E, + 0x0A,0x91,0xFE,0xF7,0xE9,0xFC,0x0B,0x99,0x09,0x7D,0x88,0x42,0x20,0xDA,0x0A,0x99, + 0x0C,0x98,0x40,0x1A,0x0A,0x21,0xFE,0xF7,0xDF,0xFC,0x0B,0x99,0x49,0x7D,0x88,0x42, + 0x16,0xDA,0x0B,0x98,0x39,0x88,0x80,0x7D,0x81,0x42,0x11,0xD9,0x0B,0x98,0xB9,0x68, + 0xC0,0x7D,0x81,0x42,0x0C,0xDA,0xEE,0x20,0x00,0x5D,0x00,0x28,0x08,0xD1,0x78,0x79, + 0x00,0x28,0x1B,0xD0,0x0B,0x99,0x49,0x7F,0x88,0x42,0x17,0xD8,0x40,0x1E,0x14,0xE0, + 0x6F,0x49,0xB8,0x68,0x09,0x68,0x40,0x31,0x0A,0x7E,0x90,0x42,0x0E,0xDB,0x0D,0x98, + 0x00,0x28,0x0B,0xD0,0xE0,0x88,0x00,0x06,0x08,0xD4,0x78,0x79,0xC9,0x7E,0x88,0x42, + 0x04,0xD2,0x02,0x99,0x88,0x42,0x01,0xD9,0x40,0x1C,0x78,0x71,0x78,0x79,0x02,0x99, + 0x80,0x22,0x88,0x42,0x0B,0xD8,0x01,0x98,0x01,0x28,0x08,0xD1,0xE0,0x88,0x10,0x43, + 0xE0,0x80,0x5F,0x48,0x00,0x68,0x40,0x30,0x00,0x7F,0x38,0x71,0x0F,0xE0,0xE0,0x88, + 0x01,0x06,0x0C,0xD5,0x39,0x79,0x00,0x29,0x07,0xD1,0x90,0x43,0xE0,0x80,0x58,0x48, + 0x00,0x68,0x40,0x30,0x40,0x7E,0x78,0x71,0x01,0xE0,0x49,0x1E,0x39,0x71,0x20,0x79, + 0x00,0x28,0x7E,0xD0,0x52,0x48,0x00,0x68,0x60,0x30,0x01,0x79,0x05,0x91,0xC1,0x78, + 0x04,0x91,0xE1,0x88,0x40,0x79,0xC9,0x06,0x08,0xD5,0x04,0x99,0x81,0x42,0x03,0xD9, + 0x08,0x1A,0x00,0x06,0x00,0x0E,0x00,0xE0,0x01,0x20,0x04,0x90,0x00,0x20,0x03,0x90, + 0x08,0x90,0xC0,0x00,0x84,0x46,0x80,0x19,0x09,0x90,0x81,0x88,0x00,0x29,0x74,0xD0, + 0x06,0x9A,0x00,0x20,0x92,0x07,0x08,0xD5,0x05,0x9A,0x91,0x42,0x05,0xD9,0x20,0x71, + 0xE0,0x88,0x20,0x21,0x08,0x43,0xE0,0x80,0x01,0x20,0x06,0x99,0x49,0x07,0x64,0xD5, + 0x00,0x28,0x62,0xD1,0x09,0x98,0x04,0x99,0x80,0x88,0x88,0x42,0x5D,0xD3,0x0E,0x98, + 0x81,0x88,0x37,0x48,0x00,0x68,0x60,0x30,0x80,0x78,0x81,0x42,0x55,0xD9,0x00,0x27, + 0x38,0x00,0x29,0xE0,0xC1,0x00,0x89,0x19,0x89,0x79,0x08,0x9A,0x49,0x1E,0x91,0x42, + 0x21,0xD1,0x0E,0x99,0x09,0x88,0xC1,0x40,0xC9,0x07,0x1C,0xD0,0x0A,0x21,0x41,0x43, + 0x7F,0x1C,0x49,0x19,0x89,0x7C,0x07,0x91,0x01,0x00,0x0D,0xE0,0x0A,0x22,0x4A,0x43, + 0x52,0x19,0x13,0x8B,0xD3,0x81,0x53,0x8B,0x13,0x82,0x13,0x7F,0x93,0x74,0xCA,0x00, + 0x92,0x19,0x93,0x7B,0x49,0x1C,0x93,0x71,0x22,0x79,0x8A,0x42,0xEE,0xDC,0x21,0x79, + 0x49,0x1E,0x40,0x1E,0x21,0x71,0x40,0x1C,0x21,0x79,0x81,0x42,0xD2,0xDC,0x00,0x2F, + 0x23,0xD0,0x01,0x2F,0x01,0xDD,0x01,0x20,0x03,0x90,0x20,0x79,0x0A,0x21,0x40,0x1C, + 0x07,0x06,0x3F,0x0E,0x60,0x46,0x27,0x71,0x30,0x5E,0xFE,0xF7,0x0D,0xFC,0x0A,0x21, + 0x00,0xE0,0x21,0xE0,0x4F,0x43,0x79,0x19,0x88,0x80,0x09,0x99,0x02,0x20,0x08,0x5E, + 0x0A,0x21,0xFE,0xF7,0x01,0xFC,0x21,0x79,0x0A,0x22,0x51,0x43,0x49,0x19,0xC8,0x80, + 0x20,0x79,0x07,0x99,0x50,0x43,0x40,0x19,0x01,0x72,0x08,0x98,0x40,0x1C,0x0C,0x28, + 0x08,0x90,0x00,0xDA,0x7D,0xE7,0x03,0x99,0x10,0x20,0x00,0x29,0xE1,0x88,0x01,0xD0, + 0x01,0x43,0x00,0xE0,0x81,0x43,0xE1,0x80,0x0F,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0xE8,0x07,0x00,0x20,0x40,0x00,0x00,0x20,0xF0,0xB5,0x5F,0x48,0xBD,0xB0,0x01,0x90, + 0x5F,0x48,0x60,0x4C,0x00,0x68,0x5D,0x4E,0x40,0x30,0x01,0x7B,0x37,0x91,0x45,0x7B, + 0x49,0x00,0x36,0x95,0x60,0x78,0x40,0x1A,0x35,0x90,0x21,0x78,0x68,0x00,0x3C,0x90, + 0x08,0x1A,0x34,0x90,0x01,0x98,0x00,0x21,0xC1,0x80,0x01,0x98,0x81,0x60,0x33,0x91, + 0x32,0x91,0x60,0x21,0x1A,0xA8,0xFE,0xF7,0x5F,0xFD,0x60,0x21,0x02,0xA8,0xFE,0xF7, + 0x5B,0xFD,0x20,0x00,0x00,0x78,0x36,0x9D,0x39,0x90,0x40,0x1B,0x38,0x90,0x50,0xE0, + 0x69,0x00,0x3B,0x91,0x61,0x78,0x37,0x98,0x09,0x1A,0x3A,0x91,0x36,0x99,0x69,0x1A, + 0x8C,0x00,0x15,0xE0,0x39,0x99,0x43,0x00,0x41,0x43,0x9B,0x19,0x30,0x27,0x3B,0x9A, + 0xDF,0x5F,0x45,0x4B,0x49,0x19,0xB2,0x5E,0x49,0x00,0x59,0x5E,0xD2,0x19,0x51,0x18, + 0x33,0x9A,0x52,0x18,0x33,0x92,0x1A,0xAA,0x13,0x59,0x59,0x18,0x40,0x1C,0x11,0x51, + 0x3A,0x99,0x81,0x42,0xE6,0xDC,0x1A,0xAF,0x38,0x59,0x35,0x99,0xFE,0xF7,0x8C,0xFB, + 0x38,0x51,0x37,0x99,0x84,0x46,0x16,0xE0,0x39,0x98,0x37,0x4A,0x48,0x43,0x40,0x19, + 0x40,0x00,0x12,0x5E,0x60,0x46,0x12,0x1A,0x3B,0x98,0x33,0x5E,0x48,0x00,0x87,0x19, + 0x30,0x20,0x38,0x5E,0x18,0x18,0x12,0x18,0x17,0x00,0x57,0x43,0x02,0xA8,0x03,0x59, + 0xDA,0x19,0x49,0x1C,0x02,0x51,0x3A,0x98,0x88,0x42,0xE5,0xDC,0x35,0x99,0x02,0xAF, + 0x38,0x59,0x49,0x1E,0xFE,0xF7,0x68,0xFB,0x38,0x51,0x32,0x99,0x40,0x18,0x6D,0x1C, + 0x32,0x90,0x38,0x98,0x23,0x4C,0xA8,0x42,0xAA,0xDC,0x34,0x99,0x32,0x98,0xFE,0xF7, + 0x5B,0xFB,0x06,0x00,0x34,0xA8,0x03,0xC8,0x41,0x43,0x33,0x98,0xFE,0xF7,0x54,0xFB, + 0x05,0x04,0x01,0x98,0x2D,0x14,0x00,0x21,0x02,0xAA,0xC5,0x80,0x0A,0xE0,0x88,0x00, + 0x10,0x58,0x30,0x1A,0x03,0x00,0x43,0x43,0x01,0x98,0x80,0x68,0x18,0x18,0x01,0x9B, + 0x49,0x1C,0x98,0x60,0x20,0x78,0x3C,0x9B,0xC0,0x1A,0x88,0x42,0xEF,0xDC,0x01,0x98, + 0x34,0x99,0x80,0x68,0x49,0x1E,0xFE,0xF7,0x37,0xFB,0x01,0x99,0x88,0x60,0x22,0x78, + 0x36,0x99,0x63,0x78,0x51,0x1A,0x37,0x9A,0x9A,0x1A,0x92,0x02,0x51,0x43,0xFE,0xF7, + 0x2B,0xFB,0x01,0x99,0x00,0x2D,0x88,0x60,0x02,0xD1,0x01,0x98,0x6D,0x1C,0xC5,0x80, + 0x3D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x54,0x02,0x00,0x20,0xCA,0x00,0x00,0x20, + 0xE8,0x07,0x00,0x20,0x9C,0x94,0x00,0x00,0x00,0x00,0x00,0x10,0x0A,0x48,0x00,0xB5, + 0x41,0x68,0x09,0x07,0x0D,0xD5,0xC1,0x68,0x00,0x29,0x0A,0xD0,0xC0,0x68,0x07,0x28, + 0x05,0xD1,0x01,0x21,0x49,0x07,0xC8,0x63,0x01,0x20,0x08,0xBC,0x18,0x47,0x04,0xF0, + 0x9B,0xF9,0x00,0x20,0xF9,0xE7,0x00,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x70,0x47, + 0xF8,0xB5,0x40,0x4C,0x20,0x68,0x00,0x04,0x00,0x0C,0x05,0xF0,0xBF,0xF9,0x05,0xF0, + 0xA1,0xF9,0x01,0x27,0x7F,0x03,0x38,0x00,0xFE,0xF7,0xA8,0xFF,0xFE,0xF7,0xC6,0xFC, + 0x00,0x20,0x04,0xF0,0xD3,0xFC,0x01,0x20,0x04,0xF0,0x64,0xFC,0x00,0xF0,0xB4,0xFC, + 0x1F,0x20,0x01,0xF0,0x43,0xFC,0x34,0x4D,0x34,0x4E,0x5B,0xE0,0x20,0x68,0x00,0x04, + 0x00,0x0C,0x05,0xF0,0xA3,0xF9,0x80,0x20,0xFE,0xF7,0x90,0xFF,0x03,0x20,0x05,0xF0, + 0xD7,0xF8,0x38,0x00,0xFE,0xF7,0x8A,0xFF,0x00,0xF0,0x6E,0xFC,0x00,0xF0,0x2A,0xFC, + 0x00,0xF0,0x38,0xFC,0x01,0x20,0xFE,0xF7,0x89,0xFF,0x00,0xF0,0xAD,0xFC,0x00,0xF0, + 0x19,0xFC,0x01,0x20,0x80,0x03,0xFE,0xF7,0x79,0xFF,0x00,0xF0,0x2B,0xFC,0x00,0xF0, + 0xA3,0xFC,0xFE,0xF7,0x53,0xFD,0xFF,0xF7,0xA1,0xFF,0x00,0x28,0x35,0xD1,0x03,0xF0, + 0x81,0xF8,0x00,0x28,0x02,0xD0,0x01,0x20,0x30,0x70,0x01,0xE0,0xFF,0xF7,0xE2,0xFB, + 0x03,0x20,0x40,0x03,0xFE,0xF7,0x5A,0xFF,0x30,0x78,0x00,0x28,0x06,0xD0,0x18,0x48, + 0x00,0x78,0x00,0x09,0x04,0x28,0x20,0xD1,0x00,0x20,0x30,0x70,0x03,0x20,0x05,0xF0, + 0x79,0xF8,0x00,0x90,0x03,0x20,0x05,0xF0,0xAD,0xF8,0x80,0x20,0xFE,0xF7,0x46,0xFF, + 0x28,0x8C,0x00,0x28,0x02,0xD0,0x40,0x1E,0x28,0x84,0x0B,0xE0,0x0D,0x48,0x00,0x78, + 0x00,0x28,0x07,0xD1,0x0C,0x48,0x00,0x68,0x00,0x28,0x03,0xD0,0x00,0x99,0x00,0x20, + 0x03,0xF0,0xF4,0xFE,0x30,0x78,0x00,0x28,0xA0,0xD0,0x05,0xF0,0x39,0xF9,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x14,0x08,0x00,0x20,0x40,0x00,0x00,0x20,0x18,0x08,0x00,0x20, + 0xFB,0x07,0x00,0x20,0xF5,0x07,0x00,0x20,0x0C,0x08,0x00,0x20,0xF0,0xB5,0x4F,0x49, + 0x0C,0x23,0x08,0x79,0x0A,0x00,0xFF,0x32,0x00,0x24,0x23,0x32,0x85,0xB0,0x00,0x28, + 0x84,0x46,0x00,0x93,0x10,0xD1,0x0A,0x23,0x43,0x43,0x9B,0x18,0x1C,0x88,0x40,0x1C, + 0x00,0x06,0x5C,0x80,0x00,0x9B,0x00,0x0E,0x98,0x42,0xF4,0xDB,0x08,0x79,0xC8,0x76, + 0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x7E,0x20,0x80,0x5A,0x00,0x28,0x04,0x90, + 0x3A,0xD0,0xCB,0x7E,0x00,0x20,0x00,0x2B,0x03,0x93,0x35,0xD9,0x43,0x1C,0x01,0x26, + 0x04,0x9D,0x9E,0x40,0x35,0x42,0x02,0x93,0x28,0xD0,0x0A,0x23,0x58,0x43,0x86,0x18, + 0xB6,0x1C,0x00,0x20,0x63,0x46,0x00,0x2B,0x20,0xD9,0x33,0x78,0x01,0x93,0x5B,0x1E, + 0x9E,0x46,0x0A,0x23,0x43,0x43,0x9B,0x18,0x1D,0x78,0xAE,0x45,0x11,0xDC,0x01,0x9F, + 0x7F,0x1C,0xAF,0x42,0x0D,0xD3,0x75,0x78,0x5B,0x78,0x6F,0x1E,0x9F,0x42,0x08,0xDC, + 0x6D,0x1C,0x9D,0x42,0x05,0xD3,0x43,0x1C,0x01,0x25,0x9D,0x40,0x25,0x43,0x2C,0x04, + 0x24,0x0C,0x40,0x1C,0x00,0x06,0x00,0x0E,0x84,0x45,0xE2,0xD8,0x02,0x98,0x03,0x9B, + 0x00,0x06,0x00,0x0E,0x83,0x42,0xC9,0xD8,0x00,0x9B,0x00,0x20,0x00,0x2B,0x0A,0xDD, + 0x0A,0x23,0x43,0x43,0x9B,0x18,0x1D,0x88,0x40,0x1C,0x00,0x06,0x5D,0x80,0x00,0x9B, + 0x00,0x0E,0x98,0x42,0xF4,0xDB,0x0D,0x79,0x00,0x2D,0xCD,0x76,0x23,0xD0,0x20,0x00, + 0xE8,0x40,0xC0,0x07,0x1B,0xD0,0x60,0x46,0x00,0x28,0x03,0xD0,0x40,0x1E,0x00,0x06, + 0x00,0x0E,0x84,0x46,0x0B,0x79,0x28,0x00,0xAB,0x42,0x10,0xD9,0x0A,0x23,0x43,0x43, + 0x9B,0x18,0x1F,0x88,0x1E,0x00,0x40,0x3E,0xF7,0x86,0xDF,0x89,0x40,0x1C,0x00,0x06, + 0x9F,0x80,0x1E,0x8A,0x00,0x0E,0xDE,0x80,0x0B,0x79,0x83,0x42,0xEE,0xD8,0x6D,0x1E, + 0x2D,0x06,0x2D,0x0E,0xDB,0xD1,0x60,0x46,0x08,0x71,0x08,0x79,0x00,0x28,0x00,0xD0, + 0x7E,0xE7,0x88,0x81,0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20, + 0x0C,0x21,0x48,0x43,0x10,0x49,0x70,0xB5,0x40,0x18,0x10,0x49,0x10,0x4D,0x44,0x18, + 0x00,0x20,0xC0,0x43,0x20,0x80,0x60,0x80,0xA0,0x80,0xE0,0x80,0x08,0x22,0x00,0x21, + 0xA8,0x1D,0xFE,0xF7,0x47,0xFB,0x28,0x00,0x14,0x22,0x00,0x21,0x0E,0x30,0xFE,0xF7, + 0x41,0xFB,0x00,0x20,0x02,0x00,0x81,0x00,0x09,0x19,0x0A,0x81,0x40,0x1E,0x4A,0x81, + 0xF9,0xD5,0x70,0xBC,0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20,0xCA,0x05,0x00,0x00, + 0x82,0x06,0x00,0x20,0x10,0xB5,0x00,0xF0,0xA7,0xF8,0x00,0xF0,0x87,0xF8,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0xF8,0xB5,0x15,0x4D,0x15,0x4E,0x28,0x00,0x34,0x00,0xB4,0x34, + 0x0C,0x22,0x00,0x21,0xFC,0x30,0xFE,0xF7,0x1D,0xFB,0x78,0x22,0x00,0x21,0x28,0x00, + 0xFE,0xF7,0x18,0xFB,0x00,0x27,0xFF,0x20,0x15,0x30,0x47,0x55,0x30,0x00,0x28,0x22, + 0x39,0x00,0x34,0x30,0xFE,0xF7,0x0E,0xFB,0x5D,0x20,0x87,0x55,0x04,0x22,0x00,0x21, + 0x20,0x00,0xFE,0xF7,0x07,0xFB,0x30,0x22,0x00,0x21,0x20,0x1D,0xFE,0xF7,0x02,0xFB, + 0x36,0x20,0x07,0x55,0xA7,0x86,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x64,0x02,0x00,0x20, + 0xA4,0x06,0x00,0x20,0x10,0xB5,0x00,0x24,0x20,0x00,0x00,0xF0,0x07,0xF8,0x64,0x1C, + 0x0C,0x2C,0xF9,0xDB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x12,0x49,0x10,0xB4, + 0x09,0x68,0x80,0x31,0xCC,0x7F,0x34,0x21,0x48,0x43,0x10,0x49,0x40,0x18,0x10,0x49, + 0x40,0x18,0x08,0x21,0x00,0x23,0x8A,0x00,0x12,0x18,0x93,0x80,0x49,0x1E,0xD3,0x80, + 0xF9,0xD5,0x01,0x00,0x01,0x22,0x20,0x31,0x0A,0x72,0x43,0x85,0x0C,0x73,0x4B,0x73, + 0x02,0x21,0x4A,0x00,0x12,0x18,0x49,0x1E,0xD3,0x85,0xFA,0xD5,0x00,0x21,0xC9,0x43, + 0x01,0x80,0x41,0x80,0x10,0xBC,0x70,0x47,0xE8,0x07,0x00,0x20,0x40,0x00,0x00,0x20, + 0x5A,0x03,0x00,0x00,0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9,0x24,0x40,0x9F,0xE5, + 0x60,0x20,0xA0,0xE3,0x69,0x0F,0x84,0xE2,0x00,0x10,0xA0,0xE3,0x64,0xF9,0xFF,0xEB, + 0x00,0x00,0xA0,0xE3,0x22,0x1E,0xA0,0xE3,0xBE,0x01,0xC4,0xE1,0xB4,0x00,0x81,0xE1, + 0x10,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20,0x78,0x47,0xC0,0x46, + 0x0C,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0xF1,0x10,0xC0,0xE5,0xF0,0x10,0xC0,0xE5, + 0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20,0x10,0xB5,0x06,0x4C,0x78,0x22,0x20,0x00, + 0xFF,0x30,0x23,0x30,0x00,0x21,0xFE,0xF7,0x8D,0xFA,0x00,0x20,0x20,0x71,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20,0x10,0xB5,0x04,0x48,0x1C,0x22,0x00,0x21, + 0xFE,0xF7,0x80,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x7E,0x03,0x00,0x20, + 0x10,0xB5,0x04,0xF0,0x43,0xFF,0x01,0xF0,0x67,0xFC,0x03,0xF0,0xDF,0xFF,0xFF,0xF7, + 0x79,0xFF,0x01,0xF0,0xA9,0xFB,0x03,0x49,0x00,0x20,0x48,0x71,0x88,0x76,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20,0x70,0xB5,0x01,0x25,0x6D,0x07,0x0D,0x4C, + 0x1C,0x21,0x28,0x00,0xFE,0xF7,0x70,0xFA,0x20,0x68,0x68,0x60,0x00,0x20,0x02,0x21, + 0x82,0x00,0x12,0x19,0x52,0x68,0x00,0x2A,0x03,0xD0,0x8B,0x00,0x5B,0x19,0x1A,0x60, + 0x49,0x1C,0x40,0x1C,0x0A,0x28,0xF3,0xD3,0x20,0x34,0xA0,0x7D,0x28,0x60,0x70,0xBC, + 0x08,0xBC,0x18,0x47,0x58,0x07,0x00,0x20,0x09,0x4B,0x10,0xB4,0x1B,0x68,0xA0,0x33, + 0x1B,0x7B,0x04,0x1E,0x00,0xDC,0x44,0x42,0x9C,0x42,0x06,0xDD,0x98,0x42,0x01,0xDD, + 0xC8,0x1A,0x00,0xE0,0xC8,0x18,0x02,0x04,0x12,0x0C,0x10,0xBC,0x10,0x00,0x70,0x47, + 0xE8,0x07,0x00,0x20,0xF7,0xB5,0x66,0x48,0xFF,0xB0,0x00,0x78,0xC1,0xB0,0x00,0x28, + 0x75,0xD0,0x64,0x4C,0xE0,0x78,0x00,0x28,0x03,0xD0,0x01,0x20,0xBC,0x90,0x00,0x20, + 0x02,0xE0,0x00,0x20,0xBC,0x90,0x01,0x20,0xBB,0x90,0x5F,0x48,0x00,0x27,0xBF,0x90, + 0x5C,0x48,0x20,0x30,0x41,0x8B,0x3E,0x00,0x04,0x91,0x81,0x8B,0x03,0x91,0xC1,0x8A, + 0x02,0x91,0x01,0x8B,0x01,0x91,0x80,0x8A,0xBA,0x90,0x58,0x48,0x80,0x7C,0xBE,0x97, + 0x00,0x90,0x71,0xE0,0x00,0x25,0x69,0xE0,0x70,0x43,0x40,0x19,0xBD,0x90,0x29,0x00, + 0x30,0x00,0x01,0xF0,0x79,0xF8,0x61,0x79,0xC9,0x07,0x2D,0xD0,0x50,0x49,0x09,0x78, + 0x00,0x29,0x00,0x99,0x11,0xD0,0x8E,0x42,0x26,0xD1,0xA1,0x7A,0xA9,0x42,0x1D,0xD0, + 0xE1,0x7A,0xA9,0x42,0x1A,0xD0,0x21,0x7B,0xA9,0x42,0x17,0xD0,0x61,0x7B,0xA9,0x42, + 0x14,0xD0,0xA1,0x7B,0xA9,0x42,0x48,0xD1,0x10,0xE0,0x8D,0x42,0x14,0xD1,0xA1,0x7A, + 0xB1,0x42,0x0B,0xD0,0xE1,0x7A,0xB1,0x42,0x08,0xD0,0x21,0x7B,0xB1,0x42,0x05,0xD0, + 0x61,0x7B,0xB1,0x42,0x02,0xD0,0xA1,0x7B,0xB1,0x42,0x36,0xD1,0x04,0x99,0x03,0x9A, + 0x41,0x18,0x09,0x04,0x09,0x0C,0x04,0xE0,0x02,0x99,0x01,0x9A,0x41,0x18,0x09,0x04, + 0x09,0x0C,0x80,0x1A,0x02,0x04,0xBD,0x98,0xBF,0x9B,0x80,0x00,0x18,0x58,0xC1,0x9B, + 0x12,0x0C,0x00,0x2B,0x02,0xD0,0x00,0x05,0x00,0x0D,0x01,0xE0,0x00,0x01,0x00,0x0D, + 0xC0,0x9B,0x05,0x2B,0x11,0xD8,0x90,0x42,0x02,0xDA,0xBC,0x9A,0x03,0xE0,0x4A,0xE0, + 0x88,0x42,0x12,0xDD,0xBB,0x9A,0x29,0x00,0x30,0x00,0x00,0xF0,0x8B,0xF8,0xBD,0x98, + 0x79,0x00,0x05,0xAA,0x7F,0x1C,0x50,0x52,0x07,0xE0,0xBD,0xA8,0x03,0xC8,0x05,0xAA, + 0x49,0x00,0x50,0x52,0xBE,0x98,0x40,0x1C,0xBE,0x90,0x6D,0x1C,0x1D,0x48,0x40,0x38, + 0x00,0x78,0xA8,0x42,0x90,0xDC,0x76,0x1C,0x1A,0x48,0x40,0x38,0x41,0x78,0xB1,0x42, + 0x88,0xDC,0xC0,0x98,0x05,0x28,0x03,0xD9,0x00,0x04,0xBE,0x9F,0x00,0x0C,0xBA,0x90, + 0x00,0x2F,0x20,0xDD,0x04,0xF0,0x2C,0xFF,0xC2,0x98,0x00,0x28,0x1B,0xD1,0x00,0xF0, + 0x61,0xF9,0x00,0xF0,0xD9,0xF9,0x7F,0x1E,0x15,0xD4,0x12,0x4C,0x05,0xAB,0x78,0x00, + 0x18,0x5A,0x82,0x00,0xBF,0x98,0x80,0x58,0x01,0x05,0xBA,0x98,0x09,0x0D,0x08,0x18, + 0x00,0x04,0x00,0x0C,0xA0,0x42,0x00,0xD9,0x20,0x00,0x00,0x04,0x08,0x43,0xBF,0x99, + 0x7F,0x1E,0x88,0x50,0xEB,0xD5,0x7F,0xB0,0x44,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0xFC,0x07,0x00,0x20,0xDC,0x94,0x00,0x00,0xD4,0x02,0x10,0x40,0xC0,0x06,0x00,0x20, + 0xF4,0x07,0x00,0x20,0xFF,0x0F,0x00,0x00,0x7F,0xB5,0x18,0x48,0x00,0x78,0x80,0x28, + 0x28,0xD1,0x85,0x05,0x28,0x68,0x02,0x28,0x24,0xD1,0xAC,0x68,0x01,0xAA,0x20,0x05, + 0x00,0x0D,0x02,0x90,0x20,0x02,0x00,0x0D,0x03,0x90,0x02,0xA9,0x03,0xA8,0x6B,0x46, + 0x03,0xF0,0xFC,0xFF,0x40,0x1C,0x15,0xD0,0x0D,0x48,0x03,0x99,0x04,0x40,0x01,0x98, + 0x40,0x18,0x40,0x08,0x00,0x05,0x00,0x0A,0x04,0x43,0x00,0x98,0x02,0x99,0x40,0x00, + 0x40,0x18,0x03,0x21,0xFE,0xF7,0x02,0xF9,0x00,0x05,0x00,0x0D,0x21,0x0B,0x09,0x03, + 0x08,0x43,0xA8,0x60,0x7F,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xFB,0x07,0x00,0x20, + 0xFF,0x0F,0x00,0xFF,0x30,0xB4,0x17,0x4D,0x15,0x4C,0x2D,0x78,0x45,0x43,0x68,0x18, + 0x45,0x00,0x60,0x5B,0x01,0x06,0x09,0x0E,0x00,0x0A,0x00,0x2B,0x07,0xD0,0x00,0x2A, + 0x02,0xD0,0xC9,0x18,0xC0,0x18,0x0F,0xE0,0xC0,0x1A,0xC9,0x1A,0x0C,0xE0,0x00,0x2A, + 0x05,0xD0,0x88,0x42,0x01,0xDD,0x49,0x1C,0x06,0xE0,0x40,0x1C,0x04,0xE0,0x88,0x42, + 0x01,0xDD,0x40,0x1E,0x00,0xE0,0x49,0x1E,0x4A,0x1E,0xFF,0x2A,0x05,0xD2,0x42,0x1E, + 0xFF,0x2A,0x02,0xD2,0x00,0x02,0x08,0x43,0x60,0x53,0x30,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0x9C,0x94,0x00,0x00,0xF0,0xB5,0x58,0x49,0x8D,0xB0,0x0F,0x78, + 0x55,0x4D,0x05,0x97,0x48,0x78,0x04,0x90,0x06,0x90,0x28,0x00,0x20,0x30,0x0C,0x90, + 0x00,0x7A,0xC2,0x07,0x0B,0xD0,0x80,0x07,0x03,0xD5,0x78,0x1E,0x03,0x22,0x05,0x90, + 0x03,0xE0,0x04,0x98,0x40,0x1E,0x00,0x22,0x04,0x90,0x0C,0x98,0x82,0x72,0x88,0x8B, + 0x0A,0x22,0x50,0x43,0x00,0x04,0x00,0x0C,0x01,0x90,0xC8,0x8B,0x50,0x43,0x00,0x04, + 0x00,0x0C,0x00,0x90,0x05,0x98,0x00,0x28,0x7E,0xD0,0x04,0x98,0x00,0x28,0x7E,0xD0, + 0x05,0x98,0x41,0x00,0x01,0x98,0xFD,0xF7,0x2F,0xFF,0x06,0x04,0x36,0x0C,0x00,0x24, + 0xBF,0x1C,0x0A,0xE0,0x01,0x98,0x05,0x99,0x60,0x43,0xFD,0xF7,0x25,0xFF,0x3C,0x4A, + 0x61,0x00,0x80,0x19,0x89,0x18,0x64,0x1C,0x48,0x84,0xBC,0x42,0xF2,0xDB,0x04,0x98, + 0x41,0x00,0x00,0x98,0xFD,0xF7,0x18,0xFF,0x07,0x04,0x06,0x98,0x3F,0x0C,0x00,0x24, + 0x80,0x1C,0x0B,0x90,0x0C,0xE0,0x00,0x98,0x04,0x99,0x60,0x43,0xFD,0xF7,0x0C,0xFF, + 0x2F,0x4A,0xC1,0x19,0x60,0x00,0x80,0x18,0x40,0x30,0xC1,0x82,0x0B,0x98,0x64,0x1C, + 0x84,0x42,0xF0,0xDB,0x0C,0x98,0x00,0x7A,0xC0,0x07,0x48,0xD0,0x00,0x24,0x40,0xE0, + 0x28,0x19,0x20,0x30,0xC1,0x7B,0x0C,0x98,0x00,0x7A,0x80,0x07,0x03,0xD5,0x05,0x98, + 0x02,0x96,0x03,0x91,0x03,0xE0,0x08,0x00,0x04,0x99,0x02,0x97,0x03,0x91,0x20,0x49, + 0x40,0x00,0x40,0x18,0x0A,0x90,0x40,0x8C,0x0A,0x21,0x80,0x1B,0xFD,0xF7,0xE4,0xFE, + 0xE1,0x00,0x09,0x91,0x49,0x19,0x08,0x91,0x88,0x80,0x03,0x98,0x18,0x49,0x40,0x00, + 0x40,0x18,0x40,0x30,0x07,0x90,0xC0,0x8A,0x0A,0x21,0xC0,0x1B,0xFD,0xF7,0xD4,0xFE, + 0x09,0x99,0x68,0x52,0x0A,0x98,0x0A,0x21,0x40,0x8C,0x80,0x19,0xFE,0xF7,0x2E,0xF8, + 0x08,0x99,0xC8,0x80,0x07,0x98,0x0A,0x21,0xC0,0x8A,0xC0,0x19,0xFE,0xF7,0x26,0xF8, + 0x08,0x99,0x48,0x80,0x02,0x98,0x0A,0x21,0x40,0x00,0xFE,0xF7,0x1F,0xF8,0x64,0x1C, + 0xA8,0x85,0x0C,0x98,0x40,0x7A,0x00,0xE0,0x01,0xE0,0xA0,0x42,0xB8,0xDC,0x0D,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA4,0x06,0x00,0x20,0x9C,0x94,0x00,0x00, + 0x40,0x00,0x00,0x20,0x02,0x49,0x08,0x68,0x04,0x22,0x90,0x43,0x08,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x04,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x01,0x22,0x11,0x43,0xC1,0x60,0x70,0x47, + 0xC0,0x90,0x00,0x40,0x01,0x49,0xC8,0x68,0xC8,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x02,0x48,0x01,0x68,0x08,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0xB5,0x22,0x10,0xB5,0x07,0x49,0x08,0x48,0x92,0x00,0xFE,0xF7,0x05,0xF8,0x07,0x48, + 0x07,0x4A,0x80,0x8F,0x01,0x04,0x01,0x43,0x06,0x48,0xFE,0xF7,0x0F,0xF8,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0xC0,0x9C,0x00,0x00,0x00,0x00,0x10,0x40,0x9C,0x94,0x00,0x00, + 0xA4,0x05,0x00,0x00,0xD4,0x02,0x10,0x40,0x02,0x48,0x81,0x6B,0x49,0x08,0x49,0x00, + 0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x02,0x48,0x81,0x6B,0x01,0x22,0x11,0x43, + 0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x10,0xB5,0x0A,0x49,0x0A,0x48,0xFC,0x22, + 0xFD,0xF7,0xDA,0xFF,0xFF,0x22,0x09,0x49,0x09,0x48,0xF1,0x32,0xFD,0xF7,0xD4,0xFF, + 0x71,0x22,0x08,0x49,0x08,0x48,0xD2,0x00,0xFD,0xF7,0xCE,0xFF,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xC4,0x95,0x00,0x00,0x04,0x90,0x00,0x40,0xC0,0x96,0x00,0x00, + 0x00,0xA0,0x00,0x40,0xC0,0x98,0x00,0x00,0x78,0x08,0x10,0x40,0x01,0x49,0x00,0x20, + 0x88,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x01,0x49,0x01,0x20,0x88,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x03,0x48,0x41,0x68,0x01,0x22,0x12,0x04,0x11,0x43,0x41,0x60, + 0x70,0x47,0x00,0x00,0x00,0xA0,0x00,0x40,0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43, + 0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0xC9,0x07,0xFC,0xD0, + 0x70,0x47,0x00,0x00,0x00,0x90,0x00,0x40,0xFE,0xB5,0x5A,0x48,0x5A,0x4F,0x00,0x68, + 0x00,0x25,0x60,0x30,0xC0,0x8A,0x2E,0x00,0x58,0x4C,0x00,0x90,0xF8,0x1D,0xF9,0x30, + 0x01,0x90,0x10,0xE0,0x0A,0x20,0x70,0x43,0xC0,0x19,0x7C,0x21,0x09,0x5C,0x00,0x29, + 0x07,0xD0,0x7E,0x30,0x01,0xF0,0x8A,0xF8,0x00,0x28,0x02,0xD0,0x6D,0x1C,0x2D,0x06, + 0x2D,0x0E,0x01,0x98,0x76,0x1C,0x40,0x7D,0xB0,0x42,0xEB,0xDC,0x0C,0x20,0x20,0x5E, + 0x00,0x28,0x04,0xD1,0xE1,0x89,0x00,0x29,0x01,0xD1,0x0A,0x00,0x11,0xE0,0x08,0x22, + 0xA2,0x5E,0x11,0x1A,0x00,0x29,0x00,0xDC,0x81,0x1A,0x0A,0x22,0x0E,0x23,0xA2,0x5E, + 0xE3,0x5E,0x09,0x04,0x09,0x0C,0xD0,0x1A,0x00,0x28,0x00,0xDC,0x98,0x1A,0x02,0x04, + 0x12,0x0C,0x20,0x7E,0x00,0x28,0x04,0xD0,0xE0,0x7E,0xC8,0x28,0x01,0xD2,0x40,0x1C, + 0xE0,0x76,0x38,0x48,0xA6,0x7C,0x00,0x68,0x03,0x00,0x80,0x30,0x07,0x7D,0xBE,0x42, + 0x04,0xD2,0x26,0x7D,0x00,0x2E,0x01,0xD0,0x01,0x26,0x66,0x75,0x46,0x88,0x8E,0x42, + 0x01,0xD3,0x96,0x42,0x04,0xD2,0xE6,0x7C,0xC8,0x2E,0x01,0xD2,0x76,0x1C,0xE6,0x74, + 0x02,0x2D,0x0C,0xD2,0x46,0x88,0x8E,0x42,0x09,0xD9,0x96,0x42,0x07,0xD9,0x17,0x26, + 0x0F,0x27,0xA6,0x57,0xC7,0x57,0xBE,0x42,0x09,0xDA,0x76,0x1C,0x06,0xE0,0x17,0x26, + 0x10,0x27,0xA6,0x57,0xC7,0x57,0xBE,0x42,0x01,0xDD,0x76,0x1E,0xE6,0x75,0xE6,0x7E, + 0x01,0x2E,0x02,0xD9,0x7E,0x21,0xC9,0x5A,0x19,0xE0,0x02,0x2D,0x18,0xD2,0x17,0x26, + 0x11,0x27,0xA6,0x57,0xC7,0x57,0xBE,0x42,0x12,0xDD,0xE6,0x7C,0x87,0x7B,0xBE,0x42, + 0x0E,0xD2,0x86,0x88,0x8E,0x42,0x02,0xD2,0xC7,0x88,0x8F,0x42,0x04,0xD8,0x96,0x42, + 0x06,0xD2,0xC1,0x88,0x91,0x42,0x03,0xD9,0x7E,0x21,0xC9,0x5A,0x49,0x42,0x21,0x82, + 0x00,0x21,0x02,0x2D,0xA1,0x76,0x13,0xD2,0x10,0x21,0x60,0x33,0x61,0x5E,0xDA,0x8B, + 0xD1,0x42,0x04,0xD1,0x61,0x7E,0xC8,0x29,0x01,0xD2,0x49,0x1C,0x61,0x76,0x61,0x7E, + 0x82,0x7C,0x91,0x42,0x04,0xD9,0xC0,0x7C,0x81,0x42,0x01,0xD2,0x01,0x20,0xA0,0x76, + 0x10,0x21,0x61,0x5E,0x00,0x98,0x09,0x18,0x08,0x00,0x48,0x43,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xE8,0x07,0x00,0x20,0x64,0x02,0x00,0x20,0x7E,0x03,0x00,0x20, + 0x78,0x47,0xC0,0x46,0xD1,0x00,0xA0,0xE3,0x01,0x00,0x50,0xE2,0xFD,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x10,0x00,0xA0,0xE3,0x01,0x00,0x50,0xE2, + 0xFD,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x02,0x48,0x41,0x6B,0x01,0x22,0x11,0x43, + 0x41,0x63,0x70,0x47,0x00,0x70,0x00,0x40,0x02,0x49,0xC8,0x69,0xCA,0x13,0x90,0x43, + 0xC8,0x61,0x70,0x47,0x00,0x70,0x00,0x40,0x10,0x48,0x10,0xB5,0xC0,0x68,0x00,0x28, + 0x19,0xD0,0x01,0x06,0x09,0x0F,0x03,0x29,0x01,0xD0,0x04,0x29,0x02,0xD1,0x00,0xF0, + 0xB9,0xF8,0x08,0xE0,0xF0,0x21,0x01,0x40,0x20,0x29,0x02,0xD2,0x00,0xF0,0x10,0xF8, + 0x01,0xE0,0x03,0xF0,0xB1,0xFB,0x02,0x20,0x04,0xF0,0x2C,0xFB,0x02,0x20,0x04,0xF0, + 0x17,0xFB,0x04,0xF0,0xBF,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30, + 0xF1,0xB5,0x4E,0x4F,0x2E,0x20,0x78,0x60,0x78,0x69,0x80,0x06,0xFC,0xD4,0x00,0x98, + 0x01,0x25,0x6D,0x07,0xE8,0x63,0xBC,0x69,0x78,0x68,0x80,0x07,0xFC,0xD5,0x03,0xF0, + 0x93,0xFB,0x04,0xF0,0xB5,0xFB,0x00,0x98,0x45,0x49,0xFF,0x26,0x00,0x22,0x01,0x23, + 0x18,0x28,0x5E,0xD0,0x12,0xDC,0x10,0x28,0x49,0xD0,0x08,0xDC,0x07,0x28,0x21,0xD0, + 0x0A,0x28,0x22,0xD0,0x0B,0x28,0x1A,0xD0,0x0E,0x28,0x2E,0xD0,0x1E,0xE0,0x11,0x28, + 0x1E,0xD0,0x14,0x28,0x41,0xD0,0x16,0x28,0x45,0xD0,0x17,0xE0,0x1D,0x28,0x62,0xD0, + 0x06,0xDC,0x19,0x28,0x4B,0xD0,0x1A,0x28,0x12,0xD0,0x1C,0x28,0x55,0xD0,0x0D,0xE0, + 0x1E,0x28,0x5A,0xD0,0x1F,0x28,0x48,0xD0,0x50,0x28,0x58,0xD0,0x06,0xE0,0x0B,0x20, + 0xE8,0x63,0x1F,0xE0,0x00,0xF0,0xD6,0xF8,0x00,0xE0,0xCC,0x60,0xEE,0x63,0x19,0xE0, + 0x00,0x20,0xC0,0x43,0x03,0x21,0x09,0x07,0xC8,0x60,0x01,0x20,0x40,0x03,0xFE,0xF7, + 0x75,0xF9,0x00,0x98,0xFE,0xF7,0xE8,0xF8,0x0C,0xE0,0x00,0x21,0xC9,0x43,0x03,0x20, + 0x00,0x07,0xC1,0x60,0x01,0x20,0x40,0x03,0xFE,0xF7,0x68,0xF9,0x00,0xF0,0x6C,0xFD, + 0x00,0xF0,0xD3,0xF8,0x78,0x68,0x78,0x60,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x2C, + 0x01,0xD0,0x4B,0x70,0xDA,0xE7,0x4A,0x70,0xD8,0xE7,0x00,0x2C,0x01,0xD0,0x8B,0x70, + 0xD4,0xE7,0x8A,0x70,0xD2,0xE7,0x00,0x2C,0x01,0xD0,0x0B,0x71,0xCE,0xE7,0x0A,0x71, + 0xCC,0xE7,0x00,0x2C,0x01,0xD0,0x4B,0x71,0xC8,0xE7,0x4A,0x71,0xC6,0xE7,0x00,0x2C, + 0x01,0xD0,0x8B,0x71,0xC2,0xE7,0x8A,0x71,0xC0,0xE7,0x00,0x2C,0x01,0xD0,0xCC,0x71, + 0x00,0xE0,0xCA,0x71,0x03,0xF0,0xFE,0xFE,0xB8,0xE7,0x00,0x2C,0x01,0xD0,0x0B,0x72, + 0xB4,0xE7,0x0A,0x72,0xB2,0xE7,0xCC,0x61,0xB0,0xE7,0x8C,0x61,0xAE,0xE7,0x03,0x2C, + 0x01,0xD9,0x4A,0x72,0xAA,0xE7,0x4C,0x72,0xA8,0xE7,0x00,0x00,0x00,0x40,0x00,0x30, + 0xF4,0x07,0x00,0x20,0xF0,0xB5,0x35,0x4D,0x32,0x4E,0x29,0x78,0x03,0x00,0x32,0x4F, + 0x0C,0x04,0x69,0x78,0x32,0x48,0xB2,0x6B,0x0C,0x43,0x29,0x00,0x30,0x3B,0x40,0x31, + 0x04,0xF0,0xC0,0xFB,0x12,0x48,0x0A,0x0C,0x0E,0x12,0x16,0x19,0x14,0x1B,0x1F,0x2D, + 0x38,0x12,0x3B,0x40,0x48,0x44,0x47,0x48,0xF2,0x6B,0x3B,0xE0,0x7A,0x69,0x39,0xE0, + 0xA8,0x8B,0x02,0x04,0xE8,0x8B,0x23,0xE0,0x22,0x00,0x33,0xE0,0xF2,0x68,0x31,0xE0, + 0x24,0x48,0x42,0x68,0x2E,0xE0,0x72,0x6B,0x2C,0xE0,0x20,0x48,0x20,0x30,0x42,0x7A, + 0x28,0xE0,0x21,0x48,0x82,0x7C,0x48,0x79,0x89,0x79,0xC3,0x07,0xDB,0x09,0x80,0x07, + 0x09,0x04,0xC0,0x0F,0x00,0x02,0x1A,0x43,0x01,0x43,0x0A,0x43,0x1A,0xE0,0x88,0x7A, + 0x4A,0x7B,0x00,0x06,0x02,0x43,0xC8,0x7A,0x09,0x7B,0x00,0x04,0x09,0x02,0x08,0x43, + 0x02,0x43,0x0F,0xE0,0x88,0x7B,0x02,0x06,0x0C,0xE0,0x14,0x48,0x00,0x69,0xC2,0x07, + 0xD2,0x0F,0x07,0xE0,0x00,0x69,0x40,0x08,0x02,0x02,0x03,0xE0,0x00,0x69,0x42,0x08, + 0x00,0xE0,0x3A,0x69,0x0E,0x49,0xCA,0x61,0x5F,0x22,0x48,0x69,0x10,0x42,0xFC,0xD1, + 0x03,0xF0,0xA2,0xFA,0xFF,0x20,0x01,0x21,0x49,0x07,0xC8,0x63,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xC0,0x9F,0x00,0x00,0xF4,0x07,0x00,0x20,0x9C,0x94,0x00,0x00, + 0x00,0x20,0x00,0x40,0xC0,0x91,0x00,0x00,0xC0,0x06,0x00,0x20,0xC0,0x95,0x00,0x00, + 0x00,0x40,0x00,0x30,0x70,0xB5,0x03,0x24,0x24,0x07,0xE5,0x68,0x00,0x20,0xC0,0x43, + 0xE0,0x60,0xFE,0xF7,0xB3,0xF8,0x06,0x00,0xC3,0x20,0xC0,0x01,0xFE,0xF7,0x9E,0xF8, + 0x02,0xF0,0xB8,0xFF,0x00,0xF0,0xCA,0xFC,0x02,0xF0,0xAA,0xFF,0x30,0x00,0xFE,0xF7, + 0xB9,0xF8,0xE5,0x60,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x03,0x21,0x10,0xB5, + 0xC0,0x43,0x09,0x07,0xC8,0x60,0x02,0xF0,0xA5,0xFF,0xFF,0xF7,0xAD,0xFD,0xFF,0xF7, + 0xB3,0xFD,0x01,0x20,0x40,0x07,0x04,0xF0,0x1A,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0xF0,0xB5,0x00,0x20,0x87,0xB0,0x01,0x90,0x00,0x90,0x5A,0x48,0x57,0x4C,0x00,0x68, + 0x57,0x4D,0x00,0x68,0xC0,0x06,0x75,0xD5,0xE0,0x1D,0xF9,0x30,0x06,0x90,0x02,0x7D, + 0x40,0x7D,0x01,0x21,0x82,0x42,0x00,0xD1,0x00,0x21,0x29,0x71,0x28,0x79,0x00,0x28, + 0x08,0xD0,0x06,0x98,0x00,0x7D,0x01,0x28,0x04,0xD1,0x21,0x88,0xE9,0x80,0x60,0x88, + 0x28,0x81,0x03,0xE0,0x06,0x98,0x00,0x7D,0x00,0x28,0x5B,0xD0,0x06,0x98,0x40,0x7D, + 0x00,0x28,0x57,0xD0,0x00,0x20,0x6E,0xE0,0x06,0x99,0x03,0x9F,0x4B,0x7D,0x0A,0x21, + 0x4F,0x43,0x00,0x20,0x3E,0x19,0x62,0xE0,0x0A,0x22,0x42,0x43,0x12,0x19,0x60,0x32, + 0x31,0x79,0x12,0x7F,0x91,0x42,0x59,0xD1,0x0A,0x21,0x48,0x43,0x01,0x19,0xE2,0x5F, + 0x60,0x31,0x18,0x20,0x05,0x91,0x04,0x91,0x08,0x5E,0x1A,0x23,0xCB,0x5E,0x10,0x1A, + 0x02,0x22,0xB2,0x5E,0xD1,0x1A,0x02,0x91,0x04,0x99,0x0A,0x8B,0xE1,0x5B,0xFF,0xF7, + 0xBB,0xFA,0xE0,0x53,0x04,0x99,0x02,0x98,0x4A,0x8B,0x71,0x88,0xFF,0xF7,0xB4,0xFA, + 0x00,0x04,0x00,0x14,0x70,0x80,0xE1,0x5F,0xFF,0x22,0xE1,0x32,0x91,0x42,0x38,0xDA, + 0x19,0x22,0x52,0x01,0x90,0x42,0x34,0xDA,0x06,0x9A,0x12,0x7D,0x01,0x2A,0x0D,0xD1, + 0x06,0x22,0xAA,0x5E,0x52,0x1A,0x0C,0x32,0x18,0x2A,0x05,0xD8,0x08,0x22,0xAA,0x5E, + 0x12,0x1A,0x0C,0x32,0x18,0x2A,0x01,0xD9,0x00,0x20,0x1D,0xE0,0x0A,0x00,0xFF,0x23, + 0x25,0x3A,0x98,0x33,0x9A,0x42,0x06,0xD3,0x1F,0x4A,0x90,0x42,0x03,0xDD,0x01,0x22, + 0x00,0x92,0x03,0xE0,0x2E,0xE0,0x00,0x9A,0x00,0x2A,0x12,0xD0,0x05,0x9B,0x18,0x22, + 0x9A,0x5E,0x51,0x1A,0x09,0x31,0x12,0x29,0x0B,0xD8,0x1A,0x21,0x59,0x5E,0x08,0x1A, + 0x00,0x1D,0x08,0x28,0x05,0xD8,0x01,0x20,0x01,0x90,0x02,0xE0,0x40,0x1C,0x83,0x42, + 0x9A,0xDC,0x03,0x98,0x40,0x1C,0x03,0x90,0x06,0x98,0x03,0x99,0x00,0x7D,0x88,0x42, + 0x8A,0xDC,0x01,0x98,0x00,0x28,0x08,0xD0,0x0C,0x48,0xFF,0x21,0x40,0x89,0x91,0x31, + 0x88,0x42,0x02,0xD2,0x28,0x68,0x40,0x1C,0x03,0xE0,0x28,0x68,0x00,0x28,0x01,0xD0, + 0x40,0x1E,0x28,0x60,0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x64,0x02,0x00,0x20, + 0xDC,0x07,0x00,0x20,0xE8,0x07,0x00,0x20,0xAB,0x02,0x00,0x00,0x40,0x00,0x00,0x20, + 0xF0,0xB5,0x00,0x20,0xA9,0xB0,0x0E,0x90,0x0D,0x90,0x0C,0x90,0xFF,0x4B,0x0B,0x90, + 0x1A,0x68,0x10,0x00,0x80,0x30,0x41,0x7F,0x80,0x7F,0x09,0x90,0x10,0x00,0xA0,0x30, + 0xC4,0x7A,0x08,0x94,0x84,0x7A,0x07,0x94,0xF9,0x4C,0x05,0x94,0xFF,0x3C,0x1B,0x3C, + 0x04,0x94,0x12,0x68,0x12,0x07,0x25,0xD5,0x02,0x78,0x4A,0x43,0x23,0x92,0x42,0x78, + 0x4A,0x43,0x22,0x92,0x82,0x78,0x4A,0x43,0x21,0x92,0xC2,0x78,0x4A,0x43,0x20,0x92, + 0x02,0x79,0x4A,0x43,0x1F,0x92,0x42,0x79,0x4A,0x43,0x1E,0x92,0x82,0x79,0x4A,0x43, + 0x1D,0x92,0xC2,0x79,0x4A,0x43,0x1C,0x92,0x02,0x7A,0x4A,0x43,0x1B,0x92,0x40,0x7A, + 0x48,0x43,0x1A,0x90,0xE0,0x1D,0xF9,0x30,0x28,0x90,0x00,0x7D,0x00,0x28,0x05,0xD1, + 0xFF,0xF7,0x58,0xF9,0x29,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x24,0x90, + 0xE0,0x48,0x27,0x90,0x24,0x99,0x04,0x98,0x04,0x9A,0x41,0x18,0xFC,0x20,0x08,0x56, + 0x0A,0x21,0x41,0x43,0x8D,0x18,0x0A,0x3D,0x00,0x28,0x0B,0xD0,0x08,0x98,0x00,0x28, + 0x04,0xD1,0xA8,0x1D,0x00,0xF0,0x3A,0xFD,0x00,0x28,0x03,0xD0,0x05,0x98,0x80,0x7E, + 0x00,0x28,0x03,0xD0,0x24,0x98,0xFF,0xF7,0x41,0xF9,0x3F,0xE2,0x24,0x98,0x34,0x21, + 0x48,0x43,0xD0,0x49,0xE0,0x39,0x40,0x18,0xCF,0x49,0x44,0x18,0x07,0x20,0x81,0x00, + 0x09,0x19,0x8A,0x88,0x40,0x1E,0x0A,0x81,0xCA,0x88,0x4A,0x81,0xF7,0xD5,0xCB,0x48, + 0x00,0x22,0x81,0x8B,0xAA,0x5E,0x49,0x1E,0x8A,0x42,0xE6,0xDC,0xC0,0x8B,0x02,0x21, + 0x69,0x5E,0x40,0x1E,0x81,0x42,0xE0,0xDC,0x28,0x88,0x01,0x23,0xDB,0x02,0xA0,0x80, + 0x68,0x88,0x9C,0x46,0xE0,0x80,0x00,0x20,0x02,0x00,0x07,0x21,0x06,0x90,0x88,0x00, + 0x00,0x19,0x04,0x26,0x86,0x5F,0x00,0x2E,0x08,0xDD,0x06,0x9F,0xBE,0x42,0x01,0xDD, + 0x87,0x88,0x06,0x97,0x66,0x45,0x01,0xDA,0x86,0x88,0xB4,0x46,0x06,0x26,0x86,0x5F, + 0x00,0x2E,0x05,0xDD,0x96,0x42,0x00,0xDD,0xC2,0x88,0x9E,0x42,0x00,0xDA,0xC3,0x88, + 0x49,0x1E,0xE4,0xD5,0x06,0x99,0x60,0x46,0x0E,0x1A,0xAC,0x48,0x01,0x68,0x80,0x20, + 0x40,0x5A,0x86,0x42,0x02,0xDC,0xD7,0x1A,0x87,0x42,0x02,0xDD,0x05,0x9F,0x01,0x20, + 0x38,0x76,0xA0,0x31,0x48,0x8B,0x86,0x42,0x04,0xDA,0xD1,0x1A,0x81,0x42,0x01,0xDA, + 0x01,0x20,0x00,0xE0,0x00,0x20,0x27,0x99,0x26,0x00,0x20,0x36,0x08,0x74,0x30,0x7A, + 0x01,0x28,0x15,0xD9,0x04,0x22,0x08,0x21,0xA2,0x5E,0x61,0x5E,0x50,0x1A,0x00,0x28, + 0x00,0xDC,0x88,0x1A,0x00,0x04,0x00,0x14,0x0A,0x90,0x06,0x20,0x0A,0x22,0x20,0x5E, + 0xA2,0x5E,0x81,0x1A,0x00,0x29,0x00,0xDC,0x11,0x1A,0x0F,0x04,0x3F,0x14,0x01,0xE0, + 0x64,0x27,0x0A,0x97,0x08,0x21,0x04,0x20,0x61,0x5E,0x20,0x5E,0x03,0xF0,0xD0,0xF8, + 0x10,0x90,0x0A,0x21,0x06,0x20,0x61,0x5E,0x20,0x5E,0x03,0xF0,0xC9,0xF8,0x0F,0x90, + 0x0C,0x21,0x61,0x5E,0x10,0x98,0x03,0xF0,0xC3,0xF8,0x12,0x90,0x0E,0x21,0x61,0x5E, + 0x0F,0x98,0x03,0xF0,0xBD,0xF8,0x11,0x90,0x14,0x22,0x10,0x21,0xA2,0x5E,0x61,0x5E, + 0x12,0x98,0x03,0xF0,0xBB,0xF8,0x00,0x04,0x00,0x14,0x14,0x90,0x16,0x22,0x12,0x21, + 0xA2,0x5E,0x61,0x5E,0x11,0x98,0x03,0xF0,0xB1,0xF8,0x00,0x04,0x00,0x14,0x13,0x90, + 0x1C,0x22,0x18,0x21,0xA2,0x5E,0x61,0x5E,0x14,0x98,0x03,0xF0,0xA7,0xF8,0x00,0x04, + 0x00,0x14,0x16,0x90,0x1E,0x22,0x1A,0x21,0xA2,0x5E,0x61,0x5E,0x13,0x98,0x03,0xF0, + 0x9D,0xF8,0x00,0x04,0x00,0x14,0x15,0x90,0x24,0x22,0x20,0x21,0xA2,0x5E,0x61,0x5E, + 0x16,0x98,0x03,0xF0,0x93,0xF8,0x00,0x04,0x00,0x14,0x18,0x90,0x26,0x22,0x22,0x21, + 0xA2,0x5E,0x61,0x5E,0x15,0x98,0x03,0xF0,0x89,0xF8,0x00,0x04,0x00,0x14,0x17,0x90, + 0x0A,0x98,0x39,0x00,0x00,0xF0,0xFA,0xFE,0x02,0x00,0x01,0x20,0x41,0x00,0x09,0x19, + 0xCB,0x8D,0x40,0x1E,0x0B,0x86,0xF9,0xD5,0xE2,0x85,0x70,0x7B,0x00,0x22,0x01,0x1E, + 0x06,0xDB,0x43,0x00,0x1F,0x19,0x2E,0x23,0xFB,0x5E,0x9A,0x18,0x40,0x1E,0xF8,0xD5, + 0x49,0x1C,0x10,0x00,0xFD,0xF7,0xB0,0xF9,0x22,0x99,0x07,0x00,0x88,0x42,0x01,0xDC, + 0x01,0x20,0x0F,0xE0,0x20,0x98,0x87,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x1E,0x98, + 0x87,0x42,0x01,0xDC,0x03,0x20,0x05,0xE0,0x1C,0x98,0x87,0x42,0x01,0xDC,0x04,0x20, + 0x00,0xE0,0x05,0x20,0x31,0x7B,0x09,0x9A,0x40,0x1A,0x52,0x42,0x00,0x28,0x08,0xDD, + 0x2A,0x20,0x20,0x5E,0x09,0x9B,0x98,0x42,0x01,0xD1,0x00,0x20,0x08,0xE0,0x40,0x1C, + 0x06,0xE0,0x00,0x28,0x4A,0x48,0x20,0x5E,0x04,0xDA,0x90,0x42,0xF5,0xD0,0x40,0x1E, + 0x60,0x85,0x02,0xE0,0x00,0x28,0xFA,0xDC,0xF1,0xDB,0x2A,0x20,0x20,0x5E,0x09,0x9B, + 0x98,0x42,0x03,0xD1,0x05,0x29,0x01,0xD2,0x49,0x1C,0x04,0xE0,0x90,0x42,0x03,0xD1, + 0x01,0x29,0x01,0xD9,0x49,0x1E,0x31,0x73,0x17,0xA8,0x05,0xC8,0x19,0x90,0x30,0x7A, + 0x01,0x00,0x26,0x90,0x25,0x90,0x10,0x00,0xFD,0xF7,0x66,0xF9,0x0C,0x90,0x0E,0x90, + 0x25,0x99,0x19,0x98,0xFD,0xF7,0x60,0xF9,0x0D,0x90,0x0B,0x90,0x30,0x7B,0x01,0x28, + 0x23,0xD1,0x0B,0xAA,0x0C,0xA9,0x6B,0x46,0x06,0xC3,0x17,0x9B,0x18,0x9A,0x26,0x98, + 0x09,0x21,0x03,0xF0,0xF3,0xFB,0x0D,0xAA,0x0E,0xA9,0x68,0x46,0x06,0xC0,0x30,0x7A, + 0x15,0x9B,0x16,0x9A,0x07,0x21,0x03,0xF0,0xE9,0xFB,0x2C,0x22,0x6B,0x46,0x9A,0x5E, + 0x30,0x21,0x34,0x20,0x59,0x5E,0x18,0x5E,0x03,0x92,0x01,0xAA,0x03,0xC2,0x38,0x22, + 0x9A,0x5E,0x22,0x9B,0x00,0x92,0x23,0x9A,0x96,0xE0,0x02,0x28,0x23,0xD1,0x0B,0xAA, + 0x0C,0xA9,0x6B,0x46,0x06,0xC3,0x15,0x9B,0x16,0x9A,0x26,0x98,0x07,0x21,0x03,0xF0, + 0xCD,0xFB,0x0D,0xAA,0x0E,0xA9,0x68,0x46,0x06,0xC0,0x30,0x7A,0x13,0x9B,0x14,0x9A, + 0x05,0x21,0x03,0xF0,0xC3,0xFB,0x2C,0x22,0x6B,0x46,0x9A,0x5E,0x30,0x21,0x34,0x20, + 0x59,0x5E,0x18,0x5E,0x03,0x92,0x01,0xAA,0x03,0xC2,0x38,0x22,0x9A,0x5E,0x20,0x9B, + 0x00,0x92,0x21,0x9A,0x70,0xE0,0x03,0x28,0x30,0xD1,0x0B,0xAA,0x0C,0xA9,0x6B,0x46, + 0x06,0xC3,0x13,0x9B,0x14,0x9A,0x26,0x98,0x05,0x21,0x03,0xF0,0xA7,0xFB,0x0D,0xAA, + 0x0E,0xA9,0x68,0x46,0x06,0xC0,0x30,0x7A,0x03,0x21,0x0B,0xE0,0xE8,0x07,0x00,0x20, + 0x7E,0x03,0x00,0x20,0x20,0x01,0x00,0x20,0x5A,0x03,0x00,0x00,0x9C,0x94,0x00,0x00, + 0x2A,0x00,0x00,0x00,0x11,0x9B,0x12,0x9A,0x03,0xF0,0x90,0xFB,0x2C,0x22,0x6B,0x46, + 0x9A,0x5E,0x30,0x21,0x34,0x20,0x59,0x5E,0x18,0x5E,0x03,0x92,0x01,0xAA,0x03,0xC2, + 0x38,0x22,0x9A,0x5E,0x00,0x92,0x1E,0x9B,0x1F,0x9A,0x3D,0xE0,0x04,0x28,0x23,0xD1, + 0x0B,0xAA,0x0C,0xA9,0x68,0x46,0x06,0xC0,0x11,0x9B,0x12,0x9A,0x26,0x98,0x03,0x21, + 0x03,0xF0,0x74,0xFB,0x0D,0xAA,0x0E,0xA9,0x68,0x46,0x06,0xC0,0x30,0x7A,0x0F,0x9B, + 0x10,0x9A,0x02,0x21,0x03,0xF0,0x6A,0xFB,0x2C,0x22,0x6B,0x46,0x9A,0x5E,0x30,0x21, + 0x34,0x20,0x59,0x5E,0x18,0x5E,0x03,0x92,0x01,0xAA,0x03,0xC2,0x38,0x22,0x9A,0x5E, + 0x1C,0x9B,0x00,0x92,0x1D,0x9A,0x17,0xE0,0x0D,0xAA,0x0E,0xA9,0x68,0x46,0x06,0xC0, + 0x0F,0x9B,0x10,0x9A,0x26,0x98,0x02,0x21,0x03,0xF0,0x50,0xFB,0x06,0x20,0x6B,0x46, + 0x20,0x5E,0x34,0x22,0x38,0x21,0x9A,0x5E,0x59,0x5E,0x01,0xAB,0x07,0xC3,0x04,0x22, + 0xA2,0x5E,0x1A,0x9B,0x00,0x92,0x1B,0x9A,0x39,0x00,0x28,0x00,0x03,0xF0,0x52,0xFB, + 0x30,0x7A,0x09,0x28,0x01,0xD2,0x40,0x1C,0x30,0x72,0x70,0x7B,0x02,0x28,0x01,0xD2, + 0x40,0x1C,0x70,0x73,0x28,0x79,0x34,0x21,0x40,0x1E,0x48,0x43,0x32,0x49,0x40,0x18, + 0x32,0x49,0x44,0x18,0x00,0x20,0x20,0x5E,0x00,0x28,0x23,0xDB,0x02,0x21,0x61,0x5E, + 0x00,0x29,0x1F,0xDB,0x07,0x9A,0x64,0x21,0x8E,0x1A,0x70,0x43,0xFD,0xF7,0x7C,0xF8, + 0x07,0x00,0x00,0x20,0x28,0x5E,0x07,0x99,0x48,0x43,0x64,0x21,0xFD,0xF7,0x74,0xF8, + 0x38,0x18,0x28,0x80,0x02,0x20,0x20,0x5E,0x64,0x21,0x70,0x43,0xFD,0xF7,0x6C,0xF8, + 0x06,0x00,0x02,0x20,0x28,0x5E,0x07,0x99,0x48,0x43,0x64,0x21,0xFD,0xF7,0x64,0xF8, + 0x30,0x18,0x68,0x80,0x28,0x88,0x20,0x80,0x68,0x88,0x60,0x80,0x24,0x98,0x40,0x1C, + 0x0C,0x28,0x24,0x90,0x00,0xDA,0x9D,0xE5,0x28,0x98,0x00,0x7D,0x01,0x28,0x18,0xD1, + 0x04,0x98,0x34,0x21,0x00,0x79,0x48,0x43,0x13,0x49,0x40,0x18,0x13,0x49,0x34,0x39, + 0x40,0x18,0x82,0x88,0x05,0x99,0x0A,0x81,0xC2,0x88,0x4A,0x81,0x02,0x89,0x05,0x99, + 0x8A,0x81,0x40,0x89,0xC8,0x81,0x04,0x99,0x05,0x98,0x0A,0x88,0x02,0x80,0x49,0x88, + 0x41,0x80,0x28,0x98,0x00,0x7D,0x02,0x28,0x00,0xD0,0x73,0xE5,0x04,0x99,0x05,0x98, + 0x0A,0x88,0x02,0x80,0x49,0x88,0x41,0x80,0x04,0x99,0x05,0x98,0x4A,0x89,0x82,0x80, + 0x89,0x89,0xC1,0x80,0x66,0xE5,0x00,0x00,0x40,0x00,0x00,0x20,0x5A,0x03,0x00,0x00, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0xF8,0xB5,0xFF,0x20,0xFD,0xF7,0x00,0xFD, + 0x03,0x25,0x0F,0x4E,0x2D,0x07,0x01,0x27,0xF0,0x6A,0x00,0x28,0x15,0xD0,0xF0,0x6B, + 0xE9,0x68,0x80,0x08,0x3C,0x00,0x84,0x40,0x21,0x43,0xE9,0x60,0x69,0x68,0x21,0x42, + 0x00,0xD0,0x34,0x63,0x81,0x00,0x07,0x48,0x40,0x58,0x00,0x28,0x01,0xD0,0x03,0xF0, + 0x56,0xFF,0xE8,0x68,0xA0,0x43,0xE8,0x60,0xE6,0xE7,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x40,0x00,0x00,0x30,0x0C,0x71,0x00,0x00,0xF8,0xB5,0x1D,0x4A,0x93,0x8F,0x40,0x32, + 0x54,0x79,0xE4,0x07,0x32,0xD0,0x14,0x89,0x1A,0x4A,0x92,0x7C,0x96,0x46,0x1A,0x4A, + 0x16,0x78,0x17,0x4A,0x40,0x32,0x95,0x7A,0x00,0x2E,0x76,0x46,0xAC,0x46,0xD5,0x7A, + 0x00,0x95,0x15,0x7B,0x57,0x7B,0x92,0x7B,0x12,0xD0,0xB0,0x42,0x1E,0xD1,0x8C,0x45, + 0x08,0xD0,0x00,0x98,0x88,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0,0x8F,0x42,0x01,0xD0, + 0x8A,0x42,0x03,0xD1,0x20,0x00,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0xFA,0xE7, + 0xB1,0x42,0x0B,0xD1,0x84,0x45,0xF5,0xD0,0x00,0x99,0x81,0x42,0xF2,0xD0,0x85,0x42, + 0xF0,0xD0,0x87,0x42,0xEE,0xD0,0x82,0x42,0xF0,0xD1,0xEB,0xE7,0x18,0x00,0xEA,0xE7, + 0x9C,0x94,0x00,0x00,0xC0,0x06,0x00,0x20,0xF4,0x07,0x00,0x20,0x70,0x47,0x00,0x00, + 0x04,0x4A,0x03,0x4B,0x12,0x78,0x42,0x43,0x50,0x18,0x40,0x00,0x18,0x5A,0x70,0x47, + 0x00,0x00,0x10,0x40,0x9C,0x94,0x00,0x00,0x70,0xB5,0x28,0x49,0x00,0x20,0x4A,0x78, + 0x27,0x49,0x00,0x2A,0x14,0xD1,0x0A,0x89,0x00,0x2A,0x0E,0xD0,0x25,0x49,0x8A,0x42, + 0x0B,0xD0,0x10,0x00,0x64,0x21,0x48,0x43,0xFD,0xF7,0xF8,0xF8,0x22,0x49,0x40,0x18, + 0xE1,0x21,0x89,0x00,0x88,0x42,0x00,0xD9,0x08,0x00,0x70,0xBC,0x08,0xBC,0x18,0x47, + 0x88,0x89,0x1A,0x49,0x40,0x39,0x4A,0x7F,0x19,0x49,0x89,0x89,0xFF,0x39,0x60,0x39, + 0x01,0x2A,0x0F,0xD1,0x18,0x4A,0x7D,0x25,0x63,0x32,0xED,0x00,0x91,0x42,0x04,0xD8, + 0x2C,0x1A,0x20,0x00,0x60,0x43,0x56,0x1C,0x0D,0xE0,0xA8,0x42,0xE5,0xD9,0x03,0x21, + 0x40,0x1B,0x17,0xE0,0x10,0x4A,0x11,0x4D,0xC7,0x32,0x91,0x42,0x0C,0xD8,0x2C,0x1A, + 0x20,0x00,0x60,0x43,0x56,0x1C,0x31,0x00,0xFD,0xF7,0xC8,0xF8,0x60,0x43,0x31,0x00, + 0xFD,0xF7,0xC4,0xF8,0x28,0x1A,0xD0,0xE7,0xA8,0x42,0xCE,0xD9,0x07,0x4A,0x03,0x21, + 0x52,0x42,0x80,0x18,0xFD,0xF7,0xBA,0xF8,0x40,0x19,0xC6,0xE7,0x00,0x07,0x00,0x20, + 0x40,0x00,0x00,0x20,0xFF,0x0F,0x00,0x00,0x26,0x02,0x00,0x00,0x4C,0x04,0x00,0x00, + 0x04,0x48,0x41,0x69,0x49,0x06,0x01,0xD5,0x10,0x20,0x70,0x47,0x40,0x69,0xC0,0x06, + 0xC0,0x0E,0x70,0x47,0x00,0x40,0x00,0x30,0x70,0xB5,0x12,0x4D,0x00,0x24,0x01,0x21, + 0x49,0x07,0x68,0x69,0x80,0x06,0xFC,0xD4,0xE8,0x68,0x6A,0x68,0x6A,0x60,0x05,0xE0, + 0x6A,0x69,0x92,0x06,0xFC,0xD4,0xAA,0x69,0x04,0xC1,0xA4,0x18,0x02,0x00,0x40,0x1E, + 0x01,0x2A,0xF5,0xD8,0x2E,0x20,0x68,0x60,0x68,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0, + 0xBB,0xFD,0x05,0x48,0xE8,0x61,0xEC,0x61,0x68,0x69,0x80,0x06,0xFC,0xD4,0x70,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30,0xAB,0xFC,0xFF,0x8F,0x78,0x47,0xC0,0x46, + 0x10,0x40,0x2D,0xE9,0xB0,0x40,0x9F,0xE5,0x0C,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3, + 0xFC,0xFF,0xFF,0x0A,0x04,0x00,0x94,0xE5,0x04,0x00,0x84,0xE5,0x04,0x00,0x94,0xE5, + 0x04,0x00,0x10,0xE3,0x10,0x00,0x00,0x0A,0x0C,0x00,0x94,0xE5,0x04,0x10,0x90,0xE4, + 0x1C,0x10,0x84,0xE5,0x02,0x12,0xA0,0xE3,0x38,0x10,0x91,0xE5,0x04,0x00,0x00,0xEA, + 0x04,0x20,0x90,0xE4,0x1C,0x20,0x84,0xE5,0x14,0x20,0x94,0xE5,0x40,0x00,0x12,0xE3, + 0xFC,0xFF,0xFF,0x1A,0x01,0x10,0x51,0xE2,0xF8,0xFF,0xFF,0x1A,0x14,0x00,0x94,0xE5, + 0x5F,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x1A,0x11,0x00,0x00,0xEA,0x04,0x00,0x94,0xE5, + 0x02,0x00,0x10,0xE3,0xE8,0xFF,0xFF,0x0A,0x14,0x00,0x94,0xE5,0x20,0x00,0x10,0xE3, + 0xE5,0xFF,0xFF,0x1A,0x0C,0x00,0x94,0xE5,0x08,0x00,0x50,0xE3,0x10,0x40,0xBD,0x08, + 0xAE,0x0A,0x00,0x0A,0x14,0x10,0x94,0xE5,0x5F,0x00,0x11,0xE3,0x18,0x10,0x94,0x15, + 0x04,0x10,0x80,0x14,0xFA,0xFF,0xFF,0x1A,0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3, + 0xFC,0xFF,0xFF,0x0A,0xA5,0x0A,0x00,0xEB,0xD2,0xFF,0xFF,0xEA,0x00,0x40,0x00,0x30, + 0x01,0x49,0x20,0x20,0x48,0x61,0x70,0x47,0x00,0x40,0x00,0x30,0x03,0x22,0x12,0x07, + 0xD3,0x68,0x01,0x21,0x81,0x40,0x0B,0x43,0xD3,0x60,0x50,0x68,0x08,0x42,0x01,0xD0, + 0x01,0x48,0x01,0x63,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x30,0x03,0x23,0x1B,0x07, + 0xDA,0x68,0x01,0x21,0x81,0x40,0x8A,0x43,0xDA,0x60,0x70,0x47,0x10,0xB4,0x0F,0x24, + 0x03,0x23,0x1B,0x07,0x1C,0x60,0x05,0x4C,0x60,0x63,0x19,0x61,0x9A,0x60,0x00,0x20, + 0xC0,0x43,0xD8,0x60,0x00,0x20,0x18,0x60,0x10,0xBC,0x70,0x47,0x40,0x00,0x00,0x30, + 0x00,0xB5,0xFF,0xF7,0xE3,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00,0xF8,0xB5,0x2A,0x4C, + 0x02,0xF0,0x5C,0xFA,0x00,0xF0,0xF8,0xF9,0x01,0xF0,0xD6,0xFC,0x03,0xF0,0x90,0xFA, + 0x02,0xF0,0x30,0xFB,0x00,0xF0,0x3A,0xFF,0x00,0xF0,0x34,0xFC,0xFE,0xF7,0x0C,0xF9, + 0xFD,0xF7,0x60,0xFB,0x19,0x20,0x40,0x01,0x20,0x18,0xC0,0x7E,0x00,0x25,0x26,0x00, + 0x00,0x28,0x04,0xD0,0x1D,0x20,0x80,0x01,0x20,0x18,0x85,0x73,0x30,0xE0,0x1B,0x48, + 0x00,0x68,0xA0,0x30,0x40,0x7B,0x00,0x28,0x04,0xD1,0xFF,0xF7,0x51,0xFB,0xFF,0xF7, + 0x8F,0xFA,0x03,0xE0,0xFF,0xF7,0x8C,0xFA,0xFF,0xF7,0x4A,0xFB,0x02,0xF0,0xD6,0xFE, + 0x02,0xF0,0x44,0xFD,0x03,0xF0,0xAE,0xFA,0xFE,0xF7,0x48,0xFB,0x07,0x00,0x02,0xF0, + 0x13,0xFD,0x37,0x20,0x40,0x01,0x20,0x18,0x81,0x7F,0x38,0x00,0xFD,0xF7,0xEA,0xF8, + 0x00,0xF0,0x3A,0xF8,0xFD,0xF7,0x32,0xF8,0x0F,0x20,0xC0,0x01,0x20,0x18,0xC1,0x69, + 0x32,0x29,0x03,0xD9,0x06,0x49,0xC5,0x61,0x01,0x20,0x08,0x70,0x02,0xF0,0xC4,0xF9, + 0x70,0x79,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20,0xE8,0x07,0x00,0x20, + 0x19,0x08,0x00,0x20,0x70,0xB5,0x02,0xF0,0xF5,0xF9,0x03,0xF0,0x11,0xFB,0x03,0xF0, + 0xF3,0xFA,0x03,0xF0,0x1B,0xFA,0x02,0xF0,0x5F,0xFF,0x09,0x48,0x00,0x21,0x00,0x78, + 0x03,0xF0,0x4C,0xFB,0x07,0x4C,0x00,0x25,0x25,0x70,0x02,0xF0,0x55,0xFA,0xFE,0xF7, + 0x0F,0xFB,0x20,0x78,0x00,0x28,0xF7,0xD0,0x02,0xF0,0x96,0xF8,0xF4,0xE7,0x00,0x00, + 0x1C,0x95,0x00,0x00,0x18,0x08,0x00,0x20,0xF0,0xB5,0x00,0x20,0x8D,0xB0,0x0C,0x90, + 0x44,0x48,0xD9,0x21,0xC9,0x00,0x44,0x18,0xE3,0x21,0xC9,0x00,0x45,0x18,0x30,0x22, + 0x00,0x21,0x68,0x46,0xFC,0xF7,0x7E,0xFF,0x28,0x00,0x20,0x30,0x07,0x00,0x80,0x7D, + 0x3D,0x4E,0x00,0x28,0x0B,0xD1,0xB0,0x7D,0x00,0x28,0x6F,0xD1,0x20,0x00,0x0C,0x22, + 0x00,0x21,0x38,0x30,0xFC,0xF7,0x6E,0xFF,0xB8,0x7D,0x00,0x28,0x66,0xD0,0xB0,0x7D, + 0x00,0x28,0x63,0xD0,0x00,0x22,0xA8,0x8E,0x00,0x23,0xD0,0x40,0xC0,0x07,0x34,0xD0, + 0x50,0x1C,0x00,0x06,0x00,0x0E,0x00,0x21,0x66,0x18,0x38,0x27,0xF7,0x57,0x87,0x42, + 0x01,0xD1,0x4B,0x1C,0x02,0xE0,0x49,0x1C,0x0C,0x29,0xF5,0xD3,0x00,0x2B,0x03,0xD0, + 0x49,0x1C,0x08,0x06,0x00,0x0E,0x0C,0xE0,0x00,0x21,0x63,0x18,0x20,0x33,0x1B,0x7E, + 0x00,0x2B,0x03,0xD1,0x63,0x18,0x20,0x33,0x18,0x76,0xF1,0xE7,0x49,0x1C,0x0C,0x29, + 0xF3,0xD3,0x41,0x1E,0x01,0x23,0x8B,0x40,0x0C,0x99,0x86,0x00,0x0B,0x43,0x19,0x04, + 0x09,0x0C,0x0C,0x91,0x91,0x00,0x49,0x19,0x49,0x68,0x6B,0x46,0xF3,0x18,0x09,0x01, + 0x40,0x3B,0x09,0x09,0x00,0x07,0x01,0x43,0xD9,0x63,0x52,0x1C,0x0C,0x2A,0xC2,0xD3, + 0x00,0x21,0x0B,0x00,0xA8,0x8E,0xC8,0x40,0xC0,0x07,0x0F,0xD1,0x48,0x1C,0x02,0x06, + 0x12,0x0E,0x01,0x20,0x26,0x18,0x38,0x27,0xF7,0x57,0x97,0x42,0x03,0xD1,0x20,0x18, + 0x20,0x30,0x03,0x76,0x02,0xE0,0x40,0x1C,0x0C,0x28,0xF3,0xD9,0x49,0x1C,0x0A,0x29, + 0xE8,0xD3,0x28,0x68,0x0C,0x99,0x80,0x0A,0x89,0x05,0x80,0x02,0x89,0x0D,0x08,0x43, + 0x28,0x60,0x30,0x22,0x28,0x1D,0x69,0x46,0xFC,0xF7,0x0A,0xFF,0x0D,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20,0x28,0x07,0x00,0x20,0x18,0x49,0x10,0xB4, + 0x09,0x68,0x18,0x4A,0x60,0x31,0x8C,0x7E,0x53,0x7D,0x49,0x7E,0x00,0x2B,0x11,0xD1, + 0x93,0x7D,0x13,0x4A,0x12,0x68,0x80,0x32,0x01,0x2B,0x01,0xD1,0x52,0x7D,0x06,0xE0, + 0x02,0x2B,0x01,0xD1,0x92,0x7D,0x02,0xE0,0x03,0x2B,0x03,0xD1,0xD2,0x7D,0x51,0x18, + 0x09,0x06,0x09,0x0E,0x02,0x78,0x00,0x2A,0x08,0xD0,0x8A,0x42,0x06,0xD3,0x14,0x2A, + 0x09,0xD3,0x64,0x1C,0x14,0x21,0x4C,0x43,0xA2,0x42,0x02,0xD2,0x00,0x20,0x10,0xBC, + 0x70,0x47,0xF0,0x21,0x00,0xE0,0x13,0x21,0x01,0x70,0x01,0x20,0xF7,0xE7,0x00,0x00, + 0xE8,0x07,0x00,0x20,0x7E,0x03,0x00,0x20,0x10,0xB5,0x09,0x24,0x20,0x00,0xFE,0xF7, + 0x67,0xFB,0x64,0x1E,0xFA,0xD5,0x10,0xBC,0x08,0xBC,0x18,0x47,0xF5,0x22,0x10,0xB5, + 0x05,0x48,0xD2,0x00,0x00,0x21,0xFC,0xF7,0xB5,0xFE,0x02,0xF0,0xE3,0xFE,0x00,0xF0, + 0xAD,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20,0x10,0xB5,0x07,0x4C, + 0x07,0x48,0x22,0x00,0x00,0x21,0xFC,0xF7,0xA5,0xFE,0x06,0x48,0x22,0x00,0x00,0x21, + 0xFC,0xF7,0xA0,0xFE,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xD2,0x02,0x00,0x00, + 0x00,0x00,0x00,0x10,0x2A,0x08,0x00,0x20,0xFF,0x20,0x10,0xB5,0xC9,0x30,0xFD,0xF7, + 0xBD,0xF9,0x10,0xBC,0x08,0xBC,0x18,0x47,0x14,0x48,0x10,0xB5,0x44,0x08,0x14,0x49, + 0x14,0x48,0x62,0x00,0xFC,0xF7,0xA2,0xFE,0x10,0x48,0xC0,0x07,0x08,0xD0,0x0F,0x48, + 0xC2,0x07,0x0F,0x48,0xD2,0x0F,0x01,0x19,0x0E,0x48,0x00,0x19,0xFC,0xF7,0x80,0xFE, + 0x0D,0x48,0x00,0x21,0x84,0x08,0x0D,0x48,0xA2,0x00,0xFC,0xF7,0x7F,0xFE,0x0A,0x48, + 0x80,0x07,0x07,0xD0,0x08,0x48,0x00,0x21,0x82,0x07,0x08,0x48,0x92,0x0F,0x00,0x19, + 0xFC,0xF7,0x68,0xFE,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x00,0x00,0x00, + 0x84,0x74,0x00,0x00,0x40,0x00,0x00,0x20,0xBC,0x0A,0x00,0x00,0x40,0x00,0x00,0x20, + 0x70,0xB5,0x00,0xF0,0x5D,0xFA,0x0F,0x48,0x01,0x25,0x41,0x7A,0x0E,0x48,0x40,0x22, + 0x81,0x70,0x00,0x21,0x41,0x70,0xC1,0x70,0x01,0x71,0x41,0x71,0x81,0x71,0xC1,0x71, + 0x05,0x72,0x41,0x72,0x09,0x49,0xD4,0x05,0x81,0x61,0xC1,0x61,0x00,0x21,0x20,0x00, + 0xFC,0xF7,0x40,0xFE,0x06,0x48,0xA5,0x63,0x60,0x63,0xFF,0x20,0xE0,0x63,0x70,0xBC, + 0x08,0xBC,0x18,0x47,0xC0,0x91,0x00,0x00,0xF4,0x07,0x00,0x20,0xFF,0xFF,0x00,0x00, + 0x40,0x00,0x00,0x20,0x33,0x21,0x09,0x05,0x01,0x20,0x80,0x07,0x41,0x62,0x04,0x49, + 0x81,0x62,0x04,0x48,0xFF,0x21,0xC1,0x60,0x00,0x21,0x41,0x61,0x70,0x47,0x00,0x00, + 0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x40,0x04,0x48,0x01,0x21,0x89,0x07,0xC8,0x61, + 0x03,0x49,0x04,0x48,0x01,0x60,0x20,0x21,0x41,0x60,0x70,0x47,0x5C,0x0A,0x00,0x00, + 0xDE,0x10,0x05,0x00,0x00,0x40,0x00,0x30,0x10,0xB5,0xFE,0xF7,0xE3,0xFA,0xFE,0xF7, + 0x73,0xFB,0xFE,0xF7,0x47,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x70,0xB5,0x0F,0x4C, + 0xFF,0xF7,0x54,0xFF,0x0E,0x48,0x00,0x7A,0x03,0xF0,0x78,0xF9,0xFE,0xF7,0x02,0xFB, + 0x0C,0x48,0x40,0x88,0x20,0x84,0x0C,0x48,0xFF,0x34,0x00,0x68,0xFF,0x34,0x40,0x30, + 0x40,0x7E,0x02,0x34,0x60,0x76,0xFF,0xF7,0x27,0xFF,0x00,0x25,0x25,0x74,0xFE,0xF7, + 0xFB,0xFC,0x06,0x48,0x05,0x70,0x70,0xBC,0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20, + 0xC0,0x91,0x00,0x00,0x1C,0x95,0x00,0x00,0xE8,0x07,0x00,0x20,0x19,0x08,0x00,0x20, + 0x10,0xB5,0xFF,0x20,0xFD,0xF7,0x2C,0xF9,0x01,0xF0,0xD2,0xFF,0x01,0xF0,0xCA,0xFF, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x10,0xB5,0xFE,0xF7,0x06,0xFF,0xFE,0xF7,0xFC,0xFE, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x38,0xB5,0x03,0x24,0x13,0x25,0x20,0x02, + 0xFD,0xF7,0x08,0xF9,0x0B,0x48,0x0A,0x21,0x00,0x69,0xFC,0xF7,0x8F,0xFD,0x02,0x00, + 0xFF,0x21,0x90,0x31,0x02,0x20,0x00,0x23,0x00,0x95,0x03,0xF0,0x11,0xFA,0x06,0x4A, + 0x27,0x21,0x03,0x20,0x00,0x23,0x00,0x94,0x03,0xF0,0x0A,0xFA,0x38,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x9C,0x94,0x00,0x00,0xE8,0xFD,0x00,0x00,0x00,0x22,0x10,0xB5, + 0x03,0x49,0xD2,0x43,0x00,0x20,0xFF,0xF7,0x79,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x02,0x03,0x0F,0x0F,0x0A,0x48,0x10,0xB5,0x00,0x69,0x0A,0x49,0x0A,0x4C,0x88,0x42, + 0x05,0xD9,0x7D,0x21,0xC9,0x00,0xFC,0xF7,0x61,0xFD,0x64,0x30,0x01,0xE0,0xFF,0x20, + 0xF5,0x30,0x20,0x62,0x03,0xF0,0x9A,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x9C,0x94,0x00,0x00,0x07,0xA5,0x07,0x00,0xF4,0x07,0x00,0x20,0x10,0xB5,0x00,0xF0, + 0xFD,0xF8,0xFF,0xF7,0xE9,0xFE,0xFF,0xF7,0xB9,0xFE,0xFF,0xF7,0x19,0xFF,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x10,0xB5,0xFE,0xF7,0x7F,0xFD,0xFE,0xF7,0x59,0xFD,0xFE,0xF7, + 0x83,0xFD,0xFE,0xF7,0x79,0xFD,0xFE,0xF7,0x4B,0xFD,0x04,0x48,0x80,0x78,0xFC,0xF7, + 0xC1,0xFD,0x02,0xF0,0x77,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47,0x9C,0x94,0x00,0x00, + 0x10,0xB5,0xFF,0xF7,0xC1,0xFE,0xFF,0xF7,0xB1,0xFF,0xFF,0xF7,0x8D,0xFF,0xFF,0xF7, + 0xB9,0xFF,0xFF,0xF7,0x80,0xFF,0xFF,0xF7,0x73,0xFF,0xFF,0xF7,0x1B,0xFF,0x02,0xF0, + 0x53,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47,0xF7,0xB5,0x86,0xB0,0x00,0x27,0x2F,0x48, + 0x04,0xAB,0x02,0x97,0x03,0x97,0x81,0xC3,0x2D,0x4E,0xFE,0xF7,0x1B,0xFD,0xFE,0xF7, + 0x93,0xFD,0x2C,0x48,0xC0,0x7F,0x01,0x90,0x2A,0x48,0x20,0x30,0x00,0x78,0x00,0x25, + 0x00,0x90,0x2C,0xE0,0x00,0x24,0x24,0xE0,0x21,0x00,0x28,0x00,0xFF,0xF7,0xA4,0xFB, + 0x00,0x28,0x1D,0xD0,0x23,0x49,0x04,0x9A,0x20,0x39,0x09,0x78,0x69,0x43,0x09,0x19, + 0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A,0x01,0x1E,0x00,0xDC,0x41,0x42, + 0x00,0x28,0x01,0xDB,0x01,0x98,0x00,0xE0,0x00,0x98,0x81,0x42,0x01,0xDD,0x01,0x22, + 0x05,0x92,0x08,0x1A,0xB0,0x42,0x03,0xDD,0x06,0x00,0x27,0x00,0x02,0x95,0x03,0x91, + 0x64,0x1C,0x14,0x48,0x20,0x38,0x00,0x78,0xA0,0x42,0xD5,0xD8,0x6D,0x1C,0x11,0x48, + 0x20,0x38,0x41,0x78,0xA9,0x42,0xCD,0xD8,0x08,0x99,0x03,0x98,0x08,0x60,0x0E,0x48, + 0x00,0x69,0xC0,0x07,0x05,0xD0,0x07,0x98,0x07,0x60,0x06,0x99,0x02,0x98,0x08,0x60, + 0x04,0xE0,0x07,0x99,0x02,0x98,0x08,0x60,0x06,0x98,0x07,0x60,0x05,0x98,0x00,0x28, + 0x00,0xD0,0x04,0x20,0x09,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xD4,0x02,0x10,0x40, + 0x78,0xEC,0xFF,0xFF,0xBC,0x94,0x00,0x00,0x00,0x90,0x00,0x40,0x78,0x47,0xC0,0x46, + 0xA0,0xC0,0x9F,0xE5,0x00,0x00,0x9C,0xE5,0x9C,0x30,0x9F,0xE5,0x8C,0x06,0xD3,0xE5, + 0x01,0x1B,0x83,0xE2,0x99,0x1F,0x81,0xE2,0x01,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3, + 0x29,0x20,0xD1,0x15,0x00,0x00,0xA0,0x13,0x00,0x00,0x52,0x13,0x1E,0xFF,0x2F,0x91, + 0xF0,0x01,0x2D,0xE9,0x74,0x50,0x9F,0xE5,0x74,0x60,0x9F,0xE5,0x74,0x40,0x9F,0xE5, + 0x28,0x70,0xD1,0xE5,0x00,0x20,0x81,0xE0,0x2F,0x20,0xD2,0xE5,0x02,0x00,0x17,0xE3, + 0x2E,0x70,0xD1,0xE5,0x00,0x80,0xD5,0xE5,0x97,0x28,0x22,0x00,0x98,0x72,0x22,0x10, + 0x00,0x70,0xD6,0xE5,0x00,0x00,0x57,0xE3,0x04,0x00,0x00,0x1A,0x02,0x21,0x9C,0xE7, + 0x80,0x70,0x83,0xE0,0x02,0x29,0xC2,0xE3,0xB0,0x21,0xC7,0xE1,0x03,0x00,0x00,0xEA, + 0x82,0x20,0x84,0xE0,0xB0,0x20,0xD2,0xE1,0x80,0x70,0x83,0xE0,0xB0,0x21,0xC7,0xE1, + 0x29,0x20,0xD1,0xE5,0x01,0x00,0x80,0xE2,0x00,0x00,0x52,0xE1,0xE7,0xFF,0xFF,0x8A, + 0xF0,0x01,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x00,0x10,0x10,0x40,0x40,0x00,0x00,0x20, + 0x9C,0x94,0x00,0x00,0x18,0x08,0x00,0x20,0x2A,0x08,0x00,0x20,0x06,0x4A,0x04,0x48, + 0x04,0x49,0x92,0x10,0x01,0xE0,0x08,0xC9,0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47, + 0xB0,0x05,0x00,0x10,0xDC,0x72,0x00,0x00,0xA8,0x01,0x00,0x00,0x06,0x4A,0x04,0x48, + 0x04,0x49,0x92,0x08,0x01,0xE0,0x08,0xC9,0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47, + 0x00,0x00,0x00,0x10,0xC8,0x71,0x00,0x00,0xEC,0x00,0x00,0x00,0x78,0x47,0xC0,0x46, + 0x01,0x00,0x50,0xE1,0x01,0x00,0xA0,0xB1,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46, + 0x00,0xC0,0x9D,0xE5,0x01,0x00,0x50,0xE1,0x02,0x00,0x00,0xBA,0x02,0x00,0x50,0xE1, + 0x00,0x20,0xA0,0xA1,0x01,0x00,0x00,0xEA,0x02,0x00,0x51,0xE1,0x01,0x20,0xA0,0xA1, + 0x03,0x00,0x52,0xE1,0x02,0x00,0xA0,0xE1,0x03,0x00,0x00,0xBA,0x0C,0x00,0x50,0xE1, + 0x1E,0xFF,0x2F,0xA1,0x0C,0x00,0xA0,0xE1,0x1E,0xFF,0x2F,0xE1,0x0C,0x00,0x53,0xE1, + 0xFB,0xFF,0xFF,0xBA,0x03,0x00,0xA0,0xE1,0x1E,0xFF,0x2F,0xE1,0x10,0xB5,0xFF,0xF7, + 0xAD,0xFE,0xFF,0xF7,0xB7,0xFE,0xFF,0xF7,0xCB,0xFE,0x01,0xF0,0x95,0xFE,0xFF,0xF7, + 0x71,0xFC,0x10,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x00,0x22,0x03,0xE0,0x03,0x78, + 0x40,0x1C,0x9A,0x18,0x49,0x1E,0x00,0x29,0xF9,0xDC,0x10,0x06,0x00,0x0E,0x70,0x47, + 0x10,0xB5,0x01,0x24,0x64,0x07,0x61,0x68,0x03,0x22,0x92,0x02,0x11,0x43,0x61,0x60, + 0x61,0x68,0x09,0x02,0x09,0x0A,0x61,0x60,0x81,0x00,0x20,0x1D,0xFF,0xF7,0xE5,0xFF, + 0x61,0x68,0x00,0x06,0x01,0x43,0x61,0x60,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x10,0xB5,0x11,0x4A,0x11,0x49,0x12,0x48,0xFC,0xF7,0xEE,0xFB,0x05,0x21,0x49,0x03, + 0x00,0x20,0xFC,0xF7,0x11,0xFC,0x0F,0x4B,0x0F,0x49,0x18,0x61,0x00,0x20,0xFC,0xF7, + 0x0B,0xFC,0x58,0x61,0x0D,0x49,0x0C,0x48,0xFC,0xF7,0x06,0xFC,0x59,0x69,0x00,0x04, + 0x08,0x43,0x58,0x61,0x0A,0x48,0xC1,0x6B,0x01,0x22,0x92,0x07,0x91,0x43,0xC1,0x63, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x28,0x00,0x00,0x00,0xB4,0x72,0x00,0x00, + 0x00,0x00,0x00,0x10,0xF4,0x07,0x00,0x20,0xC0,0x91,0x00,0x00,0xC0,0x9C,0x00,0x00, + 0x00,0x70,0x00,0x40,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0xE4,0x25,0x9F,0xE5, + 0xAD,0xDF,0x4D,0xE2,0x00,0x00,0x92,0xE5,0x00,0x50,0xA0,0xE3,0x5E,0x40,0xD0,0xE5, + 0xD4,0x05,0x9F,0xE5,0xD4,0x75,0x9F,0xE5,0x69,0x6F,0x80,0xE2,0x0C,0x00,0x8D,0xE5, + 0x01,0x0C,0x80,0xE2,0x22,0x00,0x80,0xE2,0x08,0x00,0x8D,0xE5,0x0C,0x00,0x9D,0xE5, + 0x85,0x0F,0x80,0xE2,0x04,0x00,0x8D,0xE5,0xB0,0x50,0xC0,0xE1,0xA8,0x05,0x9F,0xE5, + 0x00,0x10,0x92,0xE5,0xB8,0x00,0xD0,0xE1,0x4E,0x10,0xD1,0xE5,0x91,0x00,0x00,0xE0, + 0x97,0x10,0x80,0xE0,0xA0,0x12,0xA0,0xE1,0x04,0x00,0x9D,0xE5,0xB2,0x10,0xC0,0xE1, + 0x04,0x00,0x9D,0xE5,0xB2,0x10,0xD0,0xE1,0x00,0x00,0x92,0xE5,0x0C,0x20,0xA0,0xE3, + 0xB0,0x05,0xD0,0xE1,0x00,0x00,0x51,0xE1,0x04,0x10,0x9D,0x35,0xB2,0x00,0xC1,0x31, + 0x00,0x10,0xA0,0xE3,0x12,0x0E,0x8D,0xE2,0xC9,0xF1,0xFF,0xEB,0x69,0x20,0xA0,0xE3, + 0x01,0x2C,0x82,0xE2,0x00,0x10,0xA0,0xE3,0x4B,0x0F,0x8D,0xE2,0xC4,0xF1,0xFF,0xEB, + 0xCC,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x54,0x00,0x8D,0xE2,0xC0,0xF1,0xFF,0xEB, + 0x44,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x10,0x00,0x8D,0xE2,0xBC,0xF1,0xFF,0xEB, + 0xB0,0x56,0xC6,0xE1,0x0C,0x00,0x9D,0xE5,0xB8,0x00,0xD0,0xE1,0x94,0x00,0x00,0xE0, + 0x97,0x10,0x80,0xE0,0xA0,0x02,0xA0,0xE1,0xB2,0x06,0xC6,0xE1,0x0C,0x10,0x9D,0xE5, + 0x00,0x40,0xA0,0xE3,0xBE,0x10,0xD1,0xE1,0x01,0x00,0x80,0xE0,0xB2,0x06,0xC6,0xE1, + 0x01,0x00,0xA0,0xE3,0x2A,0x1E,0x8D,0xE2,0x11,0x00,0x81,0xE8,0xF0,0x04,0x9F,0xE5, + 0x01,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3,0xBC,0x00,0x00,0xDA,0xE0,0x04,0x9F,0xE5, + 0x00,0x50,0xA0,0xE3,0x00,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3,0xAF,0x00,0x00,0xDA, + 0x0C,0x00,0x9D,0xE5,0xA4,0x12,0x9D,0xE5,0x81,0x00,0x80,0xE0,0xB0,0x02,0x8D,0xE5, + 0xFF,0x00,0x01,0xE2,0xAC,0x02,0x8D,0xE5,0xB4,0x04,0x9F,0xE5,0xA4,0x12,0x9D,0xE5, + 0x00,0x00,0xD0,0xE5,0xAC,0xA4,0x9F,0xE5,0x04,0x20,0x9D,0xE5,0x91,0x50,0x20,0xE0, + 0x00,0x08,0xA0,0xE1,0x20,0x08,0xA0,0xE1,0x9C,0x02,0x8D,0xE5,0x80,0x00,0x8A,0xE0, + 0xF0,0x10,0xD0,0xE1,0xB2,0x20,0xD2,0xE1,0x02,0x00,0x51,0xE1,0x04,0x00,0x00,0xDA, + 0x04,0x10,0x9D,0xE5,0x04,0x20,0x9D,0xE5,0xB0,0x10,0xD1,0xE1,0x01,0x10,0x81,0xE2, + 0xB0,0x10,0xC2,0xE1,0xF0,0x00,0xD0,0xE1,0xF2,0x16,0xD6,0xE1,0x01,0x00,0x50,0xE1, + 0x8D,0x00,0x00,0xDA,0x00,0x70,0xA0,0xE3,0x54,0xC4,0x9F,0xE5,0x98,0x72,0x8D,0xE5, + 0x00,0xC0,0xDC,0xE5,0x9C,0x12,0x9D,0xE5,0x07,0x90,0xA0,0xE1,0x05,0x00,0x5C,0xE1, + 0x07,0x80,0xA0,0xE1,0x07,0x20,0xA0,0xE1,0x07,0x30,0xA0,0xE1,0x07,0x00,0xA0,0xE1, + 0x5C,0x00,0x00,0xDA,0x01,0xA0,0x4C,0xE2,0xA8,0xA2,0x8D,0xE5,0x24,0xA4,0x9F,0xE5, + 0x81,0xA0,0x8A,0xE0,0xF0,0xB0,0xDA,0xE1,0xF2,0xA6,0xD6,0xE1,0x0A,0x00,0x5B,0xE1, + 0x54,0x00,0x00,0xDA,0xFF,0xE0,0x04,0xE2,0x4B,0xAF,0x8D,0xE2,0x01,0xE0,0xCA,0xE7, + 0xF2,0xA6,0xD6,0xE1,0x0A,0xA0,0x4B,0xE0,0x0C,0xB0,0x9D,0xE5,0x0A,0x90,0x89,0xE0, + 0x85,0xB0,0x8B,0xE0,0xB2,0xB2,0xDB,0xE1,0x9A,0x7B,0x27,0xE0,0xB0,0xB2,0x9D,0xE5, + 0xB6,0xB5,0xDB,0xE1,0x9A,0x8B,0x28,0xE0,0x98,0xA2,0x9D,0xE5,0x01,0xA0,0x8A,0xE2, + 0x01,0xA8,0xCA,0xE3,0x98,0xA2,0x8D,0xE5,0xA4,0xA2,0x9D,0xE5,0x00,0x00,0x5A,0xE3, + 0x3B,0x00,0x00,0x0A,0x00,0x00,0x52,0xE3,0x16,0x00,0x00,0x1A,0x0C,0xA0,0x41,0xE0, + 0x4B,0xEF,0x8D,0xE2,0x0A,0xB0,0xDE,0xE7,0x00,0x00,0x5B,0xE3,0x05,0x00,0x00,0x1A, + 0x00,0x00,0x55,0xE3,0x06,0x00,0x00,0x0A,0x0E,0xB0,0x8A,0xE0,0x01,0xB0,0x5B,0xE5, + 0x00,0x00,0x5B,0xE3,0x02,0x00,0x00,0x0A,0x01,0x20,0xA0,0xE3,0x0B,0x40,0xA0,0xE1, + 0x2B,0x00,0x00,0xEA,0xA8,0xB2,0x9D,0xE5,0x05,0x00,0x5B,0xE1,0x28,0x00,0x00,0x0A, + 0x0E,0xA0,0x8A,0xE0,0x01,0xA0,0xDA,0xE5,0x00,0x00,0x5A,0xE3,0x01,0x20,0xA0,0x13, + 0x0A,0x40,0xA0,0x11,0x22,0x00,0x00,0xEA,0x0C,0xB0,0x41,0xE0,0x4B,0xAF,0x8D,0xE2, + 0x0B,0xA0,0xDA,0xE7,0x00,0x00,0x5A,0xE3,0x04,0x00,0x5A,0x11,0x02,0x00,0x00,0x0A, + 0x01,0x30,0xA0,0xE3,0x0A,0x00,0xA0,0xE1,0x12,0x00,0x00,0xEA,0x00,0x00,0x55,0xE3, + 0x05,0x00,0x00,0x0A,0x4B,0xAF,0x8D,0xE2,0x0B,0xA0,0x8A,0xE0,0x01,0xA0,0x5A,0xE5, + 0x00,0x00,0x5A,0xE3,0x04,0x00,0x5A,0x11,0xF4,0xFF,0xFF,0x1A,0xA8,0xA2,0x9D,0xE5, + 0x05,0x00,0x5A,0xE1,0x05,0x00,0x00,0x0A,0x4B,0xAF,0x8D,0xE2,0x0B,0xA0,0x8A,0xE0, + 0x01,0xA0,0xDA,0xE5,0x00,0x00,0x5A,0xE3,0x04,0x00,0x5A,0x11,0xEB,0xFF,0xFF,0x1A, + 0x00,0x00,0x53,0xE3,0x06,0x00,0x00,0x0A,0x0C,0x00,0x50,0xE3,0x0C,0x00,0x54,0x33, + 0x03,0x00,0x00,0x2A,0x00,0x00,0x54,0xE1,0x12,0xAE,0x8D,0xE2,0x00,0xE0,0xCA,0x97, + 0x04,0x00,0xCA,0x87,0x01,0x50,0x85,0xE2,0x01,0x10,0x81,0xE2,0x05,0x00,0x5C,0xE1, + 0x01,0x18,0xC1,0xE3,0xA4,0xFF,0xFF,0xCA,0xA0,0x02,0x9D,0xE5,0x00,0x00,0x50,0xE3, + 0x11,0x00,0x50,0x13,0x20,0x00,0x00,0x2A,0x00,0x00,0x52,0xE3,0x00,0x40,0xA0,0x01, + 0x01,0x00,0x80,0x02,0x9C,0x12,0x9D,0xE5,0xA0,0x02,0x8D,0x05,0x4B,0x0F,0x8D,0xE2, + 0x01,0x00,0x80,0xE0,0x04,0x1C,0xA0,0xE1,0x98,0x22,0x9D,0xE5,0x41,0x1C,0xA0,0xE1, + 0x0F,0xF1,0xFF,0xEB,0x84,0x10,0x84,0xE0,0x54,0x00,0x8D,0xE2,0x01,0x01,0x80,0xE0, + 0x0C,0x10,0x10,0xE5,0x07,0x10,0x81,0xE0,0x0C,0x10,0x00,0xE5,0x08,0x10,0x10,0xE5, + 0x08,0x10,0x81,0xE0,0x08,0x10,0x00,0xE5,0x04,0x10,0x10,0xE5,0x09,0x10,0x81,0xE0, + 0x04,0x10,0x00,0xE5,0x10,0x00,0x8D,0xE2,0x04,0x01,0x80,0xE0,0xB4,0x10,0x50,0xE1, + 0x98,0x22,0x9D,0xE5,0x02,0x10,0x81,0xE0,0xB4,0x10,0x40,0xE1,0x01,0x10,0xA0,0xE3, + 0x02,0x10,0x40,0xE5,0xAC,0x12,0x9D,0xE5,0x01,0x10,0x40,0xE5,0x20,0x02,0x9F,0xE5, + 0x01,0x50,0x85,0xE2,0x00,0x00,0xD0,0xE5,0x05,0x00,0x50,0xE1,0x55,0xFF,0xFF,0xCA, + 0xA4,0x02,0x9D,0xE5,0x01,0x00,0x80,0xE2,0xA4,0x02,0x8D,0xE5,0x00,0x02,0x9F,0xE5, + 0xA4,0x12,0x9D,0xE5,0x01,0x00,0xD0,0xE5,0x01,0x00,0x50,0xE1,0x42,0xFF,0xFF,0xCA, + 0xA0,0x02,0x9D,0xE5,0x01,0x00,0x40,0xE2,0x10,0x00,0x50,0xE3,0x2C,0x00,0x00,0x8A, + 0xA0,0x02,0x9D,0xE5,0x01,0x40,0x40,0xE2,0x00,0x00,0x54,0xE3,0x28,0x00,0x00,0xDA, + 0x12,0x7E,0x8D,0xE2,0x10,0x80,0x8D,0xE2,0x54,0x90,0x8D,0xE2,0x04,0x20,0xD7,0xE7, + 0x01,0x00,0x42,0xE2,0x10,0x00,0x50,0xE3,0x1E,0x00,0x00,0x8A,0x82,0x00,0x82,0xE0, + 0x84,0x10,0x84,0xE0,0x00,0x01,0x89,0xE0,0x01,0x11,0x89,0xE0,0x0C,0x30,0x10,0xE5, + 0x0C,0xC0,0x11,0xE5,0x04,0xA1,0x88,0xE0,0x0C,0x30,0x83,0xE0,0x0C,0x30,0x00,0xE5, + 0x08,0x30,0x10,0xE5,0x08,0xC0,0x11,0xE5,0x11,0x50,0x64,0xE2,0x0C,0x30,0x83,0xE0, + 0x08,0x30,0x00,0xE5,0x04,0x30,0x10,0xE5,0x04,0xC0,0x11,0xE5,0x0C,0x30,0x83,0xE0, + 0x04,0x30,0x00,0xE5,0x02,0x01,0x88,0xE0,0xB4,0x20,0x50,0xE1,0xB4,0x30,0x5A,0xE1, + 0x03,0x20,0x82,0xE0,0xB4,0x20,0x40,0xE1,0x85,0x00,0x85,0xE0,0x00,0x21,0xA0,0xE1, + 0x0C,0x00,0x41,0xE2,0xCB,0xF0,0xFF,0xEB,0x05,0x21,0xA0,0xE1,0x04,0x00,0x4A,0xE2, + 0x0A,0x10,0xA0,0xE1,0xC7,0xF0,0xFF,0xEB,0x01,0x40,0x44,0xE2,0x00,0x00,0x54,0xE3, + 0xD9,0xFF,0xFF,0xCA,0x0C,0x00,0x9D,0xE5,0x00,0x40,0xA0,0xE3,0x04,0x00,0xD0,0xE5, + 0x00,0x00,0x50,0xE3,0x2A,0x00,0x00,0xDA,0x14,0xA1,0x9F,0xE5,0x4B,0x8F,0x8D,0xE2, + 0x10,0x90,0x8D,0xE2,0x54,0xB0,0x8D,0xE2,0x08,0x00,0x9D,0xE5,0x04,0x11,0x84,0xE0, + 0x81,0x10,0xF0,0xE7,0x01,0x20,0xD0,0xE5,0x00,0x30,0xDA,0xE5,0x84,0x71,0x86,0xE0, + 0x92,0x13,0x21,0xE0,0x01,0x18,0xC1,0xE3,0x01,0x10,0xD8,0xE7,0x06,0x10,0xC7,0xE5, + 0x04,0x11,0x89,0xE0,0xB0,0x20,0xD1,0xE1,0xB4,0x20,0xC7,0xE1,0x0A,0x20,0x80,0xE2, + 0xB0,0x00,0xD1,0xE1,0xFF,0x00,0x00,0xE2,0x08,0x00,0xC2,0xE5,0x0C,0x10,0x9D,0xE5, + 0xBE,0x11,0xD1,0xE1,0x01,0x00,0x50,0xE1,0x0C,0x10,0x9D,0x85,0xBE,0x01,0xC1,0x81, + 0x84,0x00,0x84,0xE0,0x00,0x51,0x8B,0xE0,0x08,0x10,0x95,0xE5,0x00,0x00,0x51,0xE3, + 0x01,0x10,0xA0,0x03,0x08,0x10,0x85,0xE5,0x00,0x01,0x9B,0xE7,0x73,0xF0,0xFF,0xEB, + 0xB0,0x00,0xC7,0xE1,0x03,0x00,0x95,0xE9,0x70,0xF0,0xFF,0xEB,0xB2,0x00,0xC7,0xE1, + 0x0C,0x00,0x9D,0xE5,0x01,0x40,0x84,0xE2,0x04,0x00,0xD0,0xE5,0x04,0x00,0x50,0xE1, + 0xD8,0xFF,0xFF,0xCA,0x0C,0x00,0x9D,0xE5,0x04,0x00,0xD0,0xE5,0x01,0x00,0x50,0xE3, + 0xAD,0xDF,0x8D,0xB2,0xF0,0x4F,0xBD,0xB8,0x1E,0xFF,0x2F,0xB1,0x01,0x30,0xA0,0xE3, + 0x80,0x21,0x86,0xE0,0x02,0x10,0x52,0xE5,0x00,0x00,0x51,0xE1,0x07,0x00,0x00,0x0A, + 0xB0,0x16,0xD6,0xE1,0x01,0xC0,0x40,0xE2,0x13,0x1C,0x81,0xE1,0xB0,0x16,0xC6,0xE1, + 0x02,0x20,0x52,0xE5,0x01,0x20,0x42,0xE2,0x13,0x12,0x81,0xE1,0xB0,0x16,0xC6,0xE1, + 0x01,0x00,0x40,0xE2,0x01,0x00,0x50,0xE3,0xF0,0xFF,0xFF,0xAA,0xAD,0xDF,0x8D,0xE2, + 0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0xE8,0x07,0x00,0x20,0x40,0x00,0x00,0x20, + 0x1F,0x85,0xEB,0x51,0x9C,0x94,0x00,0x00,0x00,0x00,0x00,0x10,0xF0,0xB5,0xD3,0xB0, + 0x37,0xA8,0x2B,0x90,0x00,0x20,0x11,0x90,0x10,0x90,0x0F,0x90,0x0D,0x90,0xFE,0x4C, + 0x0B,0x90,0x89,0x20,0x80,0x00,0x20,0x18,0x25,0x00,0x8A,0x35,0x06,0x90,0x28,0x00, + 0x98,0x30,0x05,0x90,0x2E,0x38,0x06,0x00,0x04,0x90,0xF8,0x48,0xB0,0x36,0x20,0x18, + 0x03,0x90,0x02,0x90,0x04,0x22,0x00,0x21,0x09,0xA8,0xFC,0xF7,0xA3,0xF8,0x2E,0x22, + 0x00,0x21,0x1F,0xA8,0xFC,0xF7,0x9E,0xF8,0xF1,0x48,0x00,0x21,0x20,0x81,0x61,0x81, + 0x60,0x35,0x30,0x00,0xA1,0x81,0x60,0x30,0x69,0x80,0x52,0x90,0x81,0x80,0x0E,0x20, + 0x20,0x5E,0xEC,0x49,0x0E,0x90,0x02,0x98,0x20,0x30,0x51,0x90,0x00,0x7A,0xC2,0x07, + 0x1C,0xD0,0x80,0x07,0x0D,0xD5,0x01,0x20,0x0D,0x90,0x08,0x78,0x08,0xAB,0x82,0x1E, + 0x1A,0x71,0x4A,0x78,0x52,0x1E,0x40,0x1E,0x5A,0x71,0x98,0x71,0x00,0x20,0xD8,0x71, + 0x0C,0xE0,0x02,0x20,0x0D,0x90,0x08,0x78,0x08,0xAB,0x40,0x1E,0x18,0x71,0x48,0x78, + 0x82,0x1E,0x5A,0x71,0x00,0x22,0x40,0x1E,0x9A,0x71,0xD8,0x71,0xDA,0x4B,0x18,0x68, + 0x00,0x68,0x42,0x04,0x01,0xD5,0xD9,0x4A,0x00,0xE0,0xD9,0x4A,0x00,0x04,0x08,0x92, + 0x01,0xD5,0xD6,0x48,0x00,0xE0,0xD6,0x48,0x07,0x90,0x00,0x20,0x3F,0x90,0xD1,0x48, + 0x40,0x78,0x00,0x28,0x00,0xDC,0x57,0xE3,0x20,0x00,0x40,0x30,0x50,0x90,0xCD,0x48, + 0x04,0x99,0x00,0x78,0x42,0x18,0x3F,0x99,0x08,0x31,0x51,0x5C,0x00,0x29,0x00,0xD1, + 0x3F,0xE3,0x00,0x25,0x00,0x28,0x00,0xDC,0x38,0xE3,0x3F,0x98,0x80,0x1E,0x00,0x06, + 0x00,0x16,0x4F,0x90,0x3F,0x98,0x00,0x06,0x00,0x0E,0x4E,0x90,0x3F,0x98,0x40,0x00, + 0x00,0x19,0x40,0x30,0x4D,0x90,0x04,0x98,0x40,0x19,0x00,0x7A,0x00,0x28,0x00,0xD1, + 0x1C,0xE3,0xBC,0x4E,0x3F,0x99,0x30,0x78,0x48,0x43,0x40,0x19,0x00,0x04,0x00,0x14, + 0xBB,0x49,0x1E,0x90,0x40,0x00,0x0A,0x5E,0xB7,0x49,0x09,0x68,0x60,0x31,0x09,0x88, + 0x8A,0x42,0x04,0xDD,0x52,0x99,0x52,0x9A,0x89,0x88,0x49,0x1C,0x91,0x80,0x1E,0x99, + 0x1F,0xAA,0xC9,0x10,0x4C,0x91,0x52,0x5C,0x1E,0x99,0x4B,0x07,0x5B,0x0F,0x01,0x21, + 0x99,0x40,0x0A,0x42,0x4B,0x91,0x7E,0xD1,0x0D,0x99,0x08,0xAB,0xC9,0x07,0x15,0xD0, + 0x99,0x79,0xA9,0x42,0x09,0xD1,0x01,0x21,0x0C,0x91,0xA8,0x49,0x02,0x22,0x08,0x5E, + 0x04,0x99,0x8A,0x5E,0x90,0x42,0x6E,0xDB,0x18,0xE0,0x08,0xAB,0x19,0x79,0xA9,0x42, + 0x01,0xD1,0x03,0x21,0x00,0xE0,0x02,0x21,0x0C,0x91,0x08,0xE0,0xD9,0x79,0x3F,0x9A, + 0x91,0x42,0xE8,0xD0,0x08,0xAB,0x59,0x79,0x91,0x42,0xF4,0xD1,0xF1,0xE7,0x9B,0x49, + 0x00,0x22,0x08,0x5E,0x04,0x99,0x8A,0x5E,0x90,0x42,0x54,0xDB,0x30,0x78,0x3F,0x99, + 0x4A,0x90,0x48,0x43,0x40,0x19,0x00,0x21,0x43,0x00,0x92,0x48,0x47,0x78,0x3F,0x9A, + 0x4A,0x9E,0x52,0x18,0x94,0x46,0x00,0x20,0x52,0x1E,0x56,0x43,0x49,0x96,0x2A,0x18, + 0x66,0x46,0x76,0x1E,0x52,0x1E,0x00,0x2E,0x0E,0xDB,0xB7,0x42,0x0C,0xDD,0x00,0x2A, + 0x0A,0xDB,0x4A,0x9E,0x96,0x42,0x07,0xDD,0x49,0x9E,0xB2,0x18,0x87,0x4E,0x52,0x00, + 0xB2,0x5E,0xF6,0x5E,0xB2,0x42,0x2E,0xDC,0x40,0x1C,0x00,0x04,0x00,0x14,0x03,0x28, + 0xE5,0xDB,0x49,0x1C,0x09,0x04,0x09,0x14,0x03,0x29,0xD8,0xDB,0x7F,0x48,0xA2,0x89, + 0xC0,0x5E,0x82,0x42,0x05,0xDC,0xA0,0x81,0x20,0x79,0x40,0x1C,0x00,0x06,0x00,0x0E, + 0x11,0x90,0x4C,0x98,0x1F,0xAA,0x10,0x5C,0x4B,0x99,0x08,0x43,0x4C,0x99,0x50,0x54, + 0x74,0x48,0x00,0x78,0x41,0x1E,0xA9,0x42,0x0B,0xD0,0x1E,0x9A,0x01,0x27,0x52,0x1C, + 0xD3,0x10,0x52,0x07,0x52,0x0F,0x1F,0xAE,0xF6,0x5C,0x97,0x40,0x3E,0x43,0x1F,0xAA, + 0xD6,0x54,0x6C,0x4A,0x00,0xE0,0x30,0xE1,0x52,0x78,0x3F,0x9B,0x52,0x1E,0x9A,0x42, + 0x28,0xD0,0x1E,0x9A,0x01,0x27,0x86,0x18,0xF2,0x10,0x76,0x07,0x76,0x0F,0x1F,0xAB, + 0x9B,0x5C,0xB7,0x40,0x3B,0x43,0x1F,0xAE,0x00,0x2D,0xB3,0x54,0x0C,0xD0,0x1E,0x9A, + 0x01,0x27,0x52,0x1E,0x86,0x18,0xF2,0x10,0x76,0x07,0x76,0x0F,0x1F,0xAB,0x9B,0x5C, + 0xB7,0x40,0x3B,0x43,0x1F,0xAE,0xB3,0x54,0xA9,0x42,0x0B,0xD0,0x1E,0x99,0x1F,0xAA, + 0x49,0x1C,0x41,0x18,0xC8,0x10,0x4E,0x07,0x13,0x5C,0x76,0x0F,0x01,0x21,0xB1,0x40, + 0x0B,0x43,0x13,0x54,0x28,0x06,0x00,0x0E,0x48,0x90,0x02,0xF0,0xA5,0xFC,0x4F,0x99, + 0x00,0x20,0x8C,0x46,0x00,0x21,0x3E,0x91,0xA9,0x1E,0x09,0x06,0x09,0x16,0x1C,0x90, + 0x0A,0x90,0x31,0xA8,0x47,0x91,0x3E,0x9B,0x06,0x26,0x5B,0x1E,0x46,0x93,0x3E,0x9B, + 0x00,0x22,0x73,0x43,0x2C,0xAF,0xDB,0x19,0x45,0x93,0x63,0x46,0x00,0x2B,0x08,0xDB, + 0x44,0x4E,0x73,0x78,0x63,0x45,0x04,0xDD,0x00,0x29,0x02,0xDB,0x33,0x78,0x8B,0x42, + 0x02,0xDC,0x00,0x23,0x03,0x80,0x26,0xE0,0x66,0x46,0x73,0x43,0x5B,0x18,0x1B,0x04, + 0x1B,0x14,0x5F,0x00,0x08,0x9B,0x0E,0x9E,0xDB,0x5B,0x9B,0x1B,0x1B,0x04,0x1B,0x14, + 0x03,0x80,0x01,0xD5,0x00,0x23,0x03,0x80,0x46,0x9B,0x03,0x2B,0x13,0xD2,0x53,0x1E, + 0x03,0x2B,0x10,0xD2,0x07,0x9B,0x0E,0x9E,0xDB,0x5B,0x57,0x00,0x9B,0x1B,0x45,0x9E, + 0xF6,0x19,0x20,0x3E,0x33,0x83,0x00,0x23,0xC3,0x5E,0x1C,0x9E,0x9B,0x19,0x1C,0x93, + 0x0A,0x9B,0x5B,0x1C,0x0A,0x93,0x52,0x1C,0x49,0x1C,0x12,0x04,0x09,0x06,0x80,0x1C, + 0x12,0x14,0x09,0x16,0x05,0x2A,0xC0,0xDB,0x3E,0x99,0x49,0x1C,0x09,0x04,0x09,0x14, + 0x3E,0x91,0x61,0x46,0x49,0x1C,0x09,0x06,0x09,0x16,0x8C,0x46,0x3E,0x99,0x05,0x29, + 0x01,0xDA,0x47,0x99,0xA7,0xE7,0x23,0x48,0x00,0x78,0x00,0x28,0x16,0xD1,0x0A,0x99, + 0x49,0x1E,0x01,0x29,0x00,0xDA,0x01,0x21,0x1C,0x98,0xFB,0xF7,0xBF,0xFE,0x0C,0x99, + 0x01,0x29,0x0B,0xD1,0x2B,0x9A,0x00,0x21,0x51,0x5E,0x0A,0x1A,0x16,0x48,0x00,0x68, + 0x43,0x8E,0x9A,0x42,0x02,0xD2,0x80,0x8E,0x81,0x42,0x7E,0xDB,0x12,0x49,0x38,0x20, + 0x09,0x68,0x20,0xAB,0x18,0x5E,0xC9,0x8D,0x48,0x43,0x02,0xF0,0x99,0xFC,0x08,0x04, + 0x0C,0x99,0x00,0x14,0x02,0x29,0x40,0xD0,0x0D,0x99,0xC9,0x07,0x27,0xD0,0x04,0x21, + 0x00,0x23,0x31,0xAE,0x0C,0x9A,0x01,0x2A,0x16,0xD1,0x0A,0x27,0x0A,0x00,0x7A,0x43, + 0xB3,0x52,0x92,0x19,0x53,0x80,0x15,0xE0,0x40,0x00,0x00,0x20,0x64,0x06,0x00,0x00, + 0xFF,0x0F,0x00,0x00,0x9C,0x94,0x00,0x00,0xE8,0x07,0x00,0x20,0x2A,0x08,0x00,0x20, + 0x00,0x00,0x00,0x10,0xFB,0x07,0x00,0x20,0x0A,0x27,0x0A,0x00,0x7A,0x43,0x92,0x19, + 0xD3,0x80,0x13,0x81,0x49,0x1E,0x09,0x04,0x09,0x14,0xDB,0xD5,0x15,0xE0,0x0D,0x99, + 0x89,0x07,0x12,0xD5,0x04,0x21,0x00,0x23,0x31,0xAE,0x0C,0x9A,0x01,0x2A,0x04,0xD1, + 0x4A,0x00,0xB3,0x52,0x92,0x19,0x53,0x81,0x03,0xE0,0x4A,0x00,0x92,0x19,0xD3,0x83, + 0x13,0x85,0x49,0x1E,0x09,0x04,0x09,0x14,0xEF,0xD5,0x2B,0x9A,0x00,0x21,0x51,0x5E, + 0x22,0x89,0x8A,0x42,0x00,0xDD,0x21,0x81,0x62,0x89,0x8A,0x42,0x00,0xDA,0x61,0x81, + 0x21,0x79,0x0A,0x23,0x49,0x1C,0x09,0x06,0x09,0x0E,0x21,0x71,0x59,0x43,0x05,0x9B, + 0x48,0x9A,0xC9,0x18,0x20,0x39,0x8A,0x75,0x21,0x79,0x0A,0x23,0x4E,0x9A,0x59,0x43, + 0x05,0x9B,0xC9,0x18,0x20,0x39,0xCA,0x75,0x36,0x22,0x20,0xAB,0x9A,0x5E,0x00,0x21, + 0x82,0x42,0x07,0xDC,0x30,0x22,0x9A,0x5E,0x82,0x42,0x03,0xDC,0x3C,0x22,0x9A,0x5E, + 0x82,0x42,0x00,0xDD,0x02,0x21,0x20,0xAB,0x00,0xE0,0x47,0xE1,0x3A,0x22,0x9A,0x5E, + 0x82,0x42,0x08,0xDC,0x34,0x22,0x9A,0x5E,0x82,0x42,0x04,0xDC,0x00,0x22,0x30,0xAB, + 0x9A,0x5E,0x82,0x42,0x01,0xDD,0x04,0x22,0x11,0x43,0x32,0x22,0x20,0xAB,0x9A,0x5E, + 0x82,0x42,0x07,0xDC,0x30,0x22,0x9A,0x5E,0x82,0x42,0x03,0xDC,0x34,0x22,0x9A,0x5E, + 0x82,0x42,0x01,0xDD,0x08,0x22,0x11,0x43,0x3E,0x22,0x20,0xAB,0x9A,0x5E,0x82,0x42, + 0x08,0xDC,0x3C,0x22,0x9A,0x5E,0x82,0x42,0x04,0xDC,0x00,0x22,0x30,0xAB,0x9A,0x5E, + 0x82,0x42,0x01,0xDD,0x10,0x20,0x01,0x43,0x04,0x20,0x00,0x23,0x31,0xAA,0x8E,0x07, + 0x02,0xD4,0x0A,0x26,0x46,0x43,0x93,0x53,0x4E,0x07,0x03,0xD4,0x0A,0x26,0x46,0x43, + 0xB6,0x18,0x33,0x81,0x0E,0x07,0x01,0xD4,0x46,0x00,0x93,0x53,0xCE,0x06,0x02,0xD4, + 0x46,0x00,0xB6,0x18,0x33,0x85,0x40,0x1E,0x00,0x04,0x00,0x14,0xE7,0xD5,0x0C,0x22, + 0x30,0xAB,0x9A,0x5E,0x0A,0x26,0x06,0x21,0x00,0x92,0x9E,0x5F,0x08,0x22,0x04,0x20, + 0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0,0x38,0xFB,0x16,0x22,0x30,0xAB, + 0x1A,0x90,0x9A,0x5E,0x14,0x26,0x10,0x21,0x00,0x92,0x9E,0x5F,0x12,0x22,0x0E,0x20, + 0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0,0x28,0xFB,0x20,0x22,0x30,0xAB, + 0x19,0x90,0x9A,0x5E,0x1E,0x26,0x1A,0x21,0x00,0x92,0x9E,0x5F,0x1C,0x22,0x18,0x20, + 0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0,0x18,0xFB,0x2A,0x22,0x30,0xAB, + 0x18,0x90,0x9A,0x5E,0x28,0x26,0x24,0x21,0x00,0x92,0x9E,0x5F,0x26,0x22,0x22,0x20, + 0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0,0x08,0xFB,0x34,0x22,0x30,0xAB, + 0x17,0x90,0x9A,0x5E,0x32,0x26,0x2E,0x21,0x00,0x92,0x9E,0x5F,0x30,0x22,0x2C,0x20, + 0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0,0xF8,0xFA,0x00,0x90,0x16,0x90, + 0x17,0x9B,0x18,0x9A,0x19,0x99,0x1A,0x98,0x01,0xF0,0xF0,0xFA,0x00,0x28,0x1B,0x90, + 0x09,0xD1,0x32,0x22,0x00,0x21,0x31,0xA8,0xFB,0xF7,0xB4,0xFD,0x2B,0x99,0x0A,0x20, + 0x18,0x90,0x08,0x80,0x1B,0x90,0x2C,0x22,0x30,0xAB,0x9A,0x5E,0x22,0x26,0x0E,0x21, + 0x00,0x92,0x9E,0x5F,0x18,0x22,0x04,0x20,0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00, + 0x01,0xF0,0xD4,0xFA,0x69,0x00,0x09,0x19,0x0F,0x00,0x09,0x8C,0x2E,0x22,0x30,0xAB, + 0x48,0x43,0x15,0x90,0x9A,0x5E,0x24,0x26,0x10,0x21,0x00,0x92,0x9E,0x5F,0x1A,0x22, + 0x06,0x20,0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0,0xBF,0xFA,0x79,0x8C, + 0x30,0x22,0x30,0xAB,0x48,0x43,0x14,0x90,0x9A,0x5E,0x26,0x26,0x12,0x21,0x00,0x92, + 0x9E,0x5F,0x1C,0x22,0x08,0x20,0x9A,0x5E,0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0, + 0xAD,0xFA,0xB9,0x8C,0x32,0x22,0x30,0xAB,0x48,0x43,0x13,0x90,0x9A,0x5E,0x28,0x26, + 0x14,0x21,0x00,0x92,0x9E,0x5F,0x1E,0x22,0x0A,0x20,0x9A,0x5E,0x59,0x5E,0x18,0x5E, + 0x33,0x00,0x01,0xF0,0x9B,0xFA,0xF9,0x8C,0x34,0x22,0x30,0xAB,0x48,0x43,0x12,0x90, + 0x9A,0x5E,0x2A,0x26,0x16,0x21,0x00,0x92,0x9E,0x5F,0x20,0x22,0x0C,0x20,0x9A,0x5E, + 0x59,0x5E,0x18,0x5E,0x33,0x00,0x01,0xF0,0x89,0xFA,0x39,0x8D,0x12,0x9B,0x13,0x9A, + 0x48,0x43,0x00,0x90,0x14,0x99,0x15,0x98,0x01,0xF0,0x80,0xFA,0x1B,0x99,0xFB,0xF7, + 0xBB,0xFB,0x61,0x8C,0x49,0x00,0x40,0x1A,0x00,0xD5,0x00,0x20,0x21,0x79,0x0A,0x22, + 0x51,0x43,0x05,0x9A,0x89,0x18,0x88,0x80,0x4D,0x98,0x1A,0x99,0x80,0x8A,0x19,0x9A, + 0x16,0x9F,0x48,0x43,0x4D,0x99,0xC9,0x8A,0x51,0x43,0x4D,0x9A,0x16,0x8B,0x18,0x9A, + 0x56,0x43,0x4D,0x9A,0x53,0x8B,0x17,0x9A,0x53,0x43,0x4D,0x9A,0x92,0x8B,0x7A,0x43, + 0x00,0x92,0x32,0x00,0x01,0xF0,0x5A,0xFA,0x1B,0x99,0xFB,0xF7,0x95,0xFB,0x50,0x99, + 0xC9,0x8A,0x49,0x00,0x40,0x1A,0x00,0xD5,0x00,0x20,0x21,0x79,0x0A,0x22,0x51,0x43, + 0x05,0x9A,0x89,0x18,0xC8,0x80,0x20,0x79,0x0C,0x28,0x15,0xD2,0xA4,0x48,0x6D,0x1C, + 0x00,0x78,0x2D,0x04,0x2D,0x14,0xA8,0x42,0x00,0xDD,0xD4,0xE4,0x10,0x98,0x00,0x28, + 0x0A,0xD1,0x3F,0x98,0x40,0x1C,0x00,0x04,0x00,0x14,0x3F,0x90,0x9C,0x48,0x3F,0x99, + 0x40,0x78,0x88,0x42,0x00,0xDD,0xAA,0xE4,0x9A,0x48,0x00,0x68,0x07,0x00,0x00,0x68, + 0x00,0x06,0x46,0xD5,0x20,0x79,0x00,0x28,0x0C,0xD1,0x05,0x98,0x60,0x30,0x41,0x8B, + 0x00,0x29,0x3A,0xD0,0x3D,0x22,0x01,0x7E,0xD2,0x5D,0x91,0x42,0x35,0xD2,0x49,0x1C, + 0x01,0x76,0x36,0xE0,0x05,0x9D,0x3E,0x00,0x60,0x35,0x20,0x36,0x68,0x7E,0xB1,0x7E, + 0x88,0x42,0x27,0xD8,0x40,0x1C,0x00,0x06,0x00,0x0E,0x68,0x76,0xF1,0x7E,0x81,0x42, + 0x03,0xD2,0xA2,0x89,0x0F,0x9B,0xD2,0x18,0x0F,0x92,0xB2,0x7E,0x90,0x42,0x19,0xD1, + 0x88,0x42,0x17,0xD0,0x41,0x1A,0x0F,0x98,0xFB,0xF7,0xA0,0xFC,0x00,0x21,0x69,0x83, + 0xF9,0x8F,0x81,0x42,0x0E,0xD2,0x04,0x99,0xC9,0x88,0x40,0x1A,0x31,0x7F,0x48,0x43, + 0x02,0xF0,0xA6,0xFA,0x09,0x04,0x09,0x0C,0x40,0x20,0x69,0x83,0xC0,0x5B,0x81,0x42, + 0x00,0xD9,0x68,0x83,0x00,0x20,0x28,0x76,0x03,0xE0,0x00,0x21,0x41,0x76,0x01,0x76, + 0x41,0x83,0xFD,0xF7,0xB3,0xF8,0x00,0x20,0x03,0x00,0x1D,0x90,0x20,0x79,0x01,0x22, + 0x01,0x28,0x57,0xDB,0x0A,0x20,0x50,0x43,0x05,0x99,0x6F,0x4B,0x41,0x18,0x04,0x20, + 0x08,0x5E,0x58,0x43,0x83,0x14,0xC0,0x17,0x18,0x1A,0x88,0x80,0x44,0x90,0x06,0x20, + 0x08,0x5E,0x69,0x4B,0x58,0x43,0x83,0x14,0xC0,0x17,0x18,0x1A,0xC8,0x80,0x51,0x9D, + 0x43,0x90,0x6D,0x7A,0x00,0x23,0x18,0x00,0x00,0x2D,0x42,0x95,0x34,0xDD,0x16,0x06, + 0x36,0x0E,0x5F,0x4D,0x20,0x39,0x8C,0x46,0x41,0x96,0x29,0x78,0x40,0x91,0x02,0x99, + 0xC6,0x00,0x71,0x18,0x04,0x27,0xCF,0x5F,0x44,0x9D,0xBD,0x42,0x1E,0xDB,0x06,0x27, + 0xCF,0x5F,0xBD,0x42,0x1A,0xDC,0x02,0x9F,0x43,0x9D,0xBE,0x5F,0xB5,0x42,0x15,0xDB, + 0x02,0x26,0x8E,0x5F,0xB5,0x42,0x11,0xDC,0x61,0x46,0xC9,0x7D,0x40,0x9D,0x69,0x43, + 0x65,0x46,0xAD,0x7D,0x49,0x19,0x51,0x4D,0x49,0x00,0x69,0x5E,0x1D,0x9D,0xA9,0x42, + 0x04,0xDD,0x1D,0x91,0x01,0x06,0x41,0x9B,0x09,0x0E,0x0B,0x91,0x40,0x1C,0x42,0x99, + 0x00,0x04,0x00,0x14,0x81,0x42,0xD2,0xDC,0x20,0x79,0x52,0x1C,0x12,0x04,0x12,0x14, + 0x90,0x42,0xA7,0xDA,0x0B,0x98,0x01,0x28,0x00,0xD0,0x00,0x20,0x18,0x42,0x1B,0xD0, + 0x3F,0x48,0x28,0x21,0x00,0x78,0x42,0x4A,0x1E,0x25,0x41,0x43,0x89,0x18,0x20,0x39, + 0x4D,0x5F,0x2A,0x21,0x48,0x43,0x80,0x18,0x20,0x38,0x1E,0x21,0x41,0x5E,0x8D,0x42, + 0x0A,0xDD,0x0A,0x20,0x58,0x43,0x05,0x99,0x40,0x18,0xC1,0x88,0x26,0x39,0xC1,0x80, + 0x20,0x38,0xC1,0x7D,0x49,0x1E,0xC1,0x75,0x61,0x89,0x1D,0x98,0x81,0x42,0x18,0xDC, + 0x00,0x2B,0x16,0xD0,0x0A,0x20,0x43,0x43,0x05,0x98,0x04,0x25,0x18,0x18,0x06,0x26, + 0x45,0x5F,0x86,0x5F,0x00,0x20,0x02,0x00,0x01,0x00,0x0A,0x23,0x59,0x43,0x05,0x9B, + 0x40,0x1C,0xC9,0x18,0x00,0x04,0x00,0x14,0x8A,0x80,0x0C,0x28,0xCA,0x80,0xF3,0xD3, + 0x24,0xE0,0x60,0x79,0x00,0x28,0x2B,0xD1,0x20,0x79,0x01,0x28,0x28,0xD9,0x06,0x98, + 0xFF,0x30,0x01,0x30,0x40,0x7D,0x00,0x28,0x22,0xD1,0x11,0x98,0x00,0x28,0x1F,0xD0, + 0x0A,0x21,0x48,0x43,0x05,0x99,0x04,0x25,0x40,0x18,0x06,0x26,0x45,0x5F,0x86,0x5F, + 0x00,0x20,0x02,0x00,0x01,0x00,0x0A,0x23,0x59,0x43,0x05,0x9B,0x40,0x1C,0xC9,0x18, + 0x00,0x04,0x00,0x14,0x8A,0x80,0x0C,0x28,0xCA,0x80,0xF3,0xD3,0x01,0x20,0x20,0x71, + 0x05,0x98,0x0A,0x21,0xC5,0x81,0x20,0x79,0x48,0x43,0x05,0x99,0x40,0x18,0xC6,0x80, + 0x03,0x98,0x60,0x30,0x01,0x78,0x00,0x29,0x0B,0xD0,0x0A,0x4A,0x00,0x23,0x23,0x71, + 0x12,0x68,0x41,0x78,0xC0,0x32,0x12,0x7B,0x91,0x42,0x00,0xD3,0x03,0x70,0x49,0x1C, + 0x41,0x70,0x20,0x79,0x60,0x71,0xA0,0x76,0x53,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x9C,0x94,0x00,0x00,0xE8,0x07,0x00,0x20,0x67,0x66,0x00,0x00,0x00,0x00,0x00,0x10, + 0x2A,0x08,0x00,0x20,0x0E,0x49,0x10,0xB5,0x0C,0x48,0x09,0x78,0x80,0x8B,0x00,0x24, + 0x00,0x29,0x02,0xD0,0x0B,0x49,0x49,0x89,0x02,0xE0,0x0B,0x49,0x09,0x68,0x89,0x8B, + 0x08,0x18,0x0A,0x49,0xC9,0x6B,0x49,0x04,0x49,0x0C,0x81,0x42,0x00,0xD3,0x01,0x24, + 0xFE,0xF7,0xCC,0xFE,0x20,0x00,0x10,0xBC,0x08,0xBC,0x18,0x47,0xC0,0x01,0x00,0x20, + 0xFA,0x07,0x00,0x20,0x1C,0x95,0x00,0x00,0xE8,0x07,0x00,0x20,0xC0,0x90,0x00,0x40, + 0xF7,0xB5,0x30,0x4B,0x00,0x20,0x82,0xB0,0x01,0x90,0x58,0x78,0x99,0x78,0x00,0x02, + 0x08,0x43,0x01,0xF0,0xB9,0xFD,0x58,0x79,0xC0,0x07,0x0A,0xD0,0x2A,0x48,0x01,0x78, + 0x2A,0x48,0x80,0x7B,0x00,0x29,0x02,0xD0,0x01,0xF0,0x56,0xFD,0x01,0xE0,0x01,0xF0, + 0x81,0xFD,0x02,0xF0,0x25,0xF9,0x00,0x26,0x77,0x1E,0x25,0x49,0x25,0x48,0x8A,0x69, + 0x02,0x62,0x49,0x6B,0x41,0x62,0x00,0x21,0xC1,0x62,0x05,0x24,0x01,0xE0,0x05,0x2C, + 0x02,0xD1,0x02,0x25,0xED,0x43,0x0E,0xE0,0x04,0x2C,0x01,0xD1,0x03,0x25,0x0A,0xE0, + 0x03,0x2C,0x03,0xD0,0x02,0x2C,0x05,0xD0,0x01,0x2C,0x01,0xD1,0x3D,0x00,0x02,0xE0, + 0x00,0x2C,0x00,0xD1,0x01,0x25,0xE0,0x07,0xC0,0x0F,0x29,0x00,0xFC,0xF7,0x58,0xF9, + 0x64,0x1E,0xE4,0xD5,0x12,0x48,0x13,0x49,0x00,0x6D,0xC8,0x62,0x0D,0x48,0x20,0x38, + 0x80,0x7F,0x01,0x00,0xFC,0xF7,0xC6,0xF9,0x01,0x24,0x02,0xA8,0x07,0xC8,0xFE,0xF7, + 0x03,0xFE,0x00,0x28,0x01,0xD1,0x00,0x24,0x26,0x00,0x64,0x1E,0xF5,0xD5,0x76,0x1E, + 0xC3,0xD5,0x01,0x99,0x00,0x29,0x00,0xD0,0x05,0x20,0x05,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xDC,0x94,0x00,0x00,0xF4,0x07,0x00,0x20,0xC4,0x06,0x00,0x20, + 0x44,0x95,0x00,0x00,0x80,0x90,0x00,0x40,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9, + 0x34,0x78,0x9F,0xE5,0x34,0x08,0x9F,0xE5,0x6F,0xDF,0x4D,0xE2,0x00,0x50,0x90,0xE5, + 0x00,0x80,0xA0,0xE3,0x69,0x6F,0x87,0xE2,0xB6,0x86,0xC6,0xE1,0x01,0x4C,0x87,0xE2, + 0xB8,0x86,0xC6,0xE1,0x22,0x40,0x84,0xE2,0x04,0x20,0xA0,0xE3,0x08,0x10,0xA0,0xE1, + 0x04,0x00,0x8D,0xE2,0xBA,0x86,0xC6,0xE1,0x91,0xED,0xFF,0xEB,0xBE,0x87,0xC4,0xE1, + 0x80,0x00,0xD4,0xE5,0xF8,0xB7,0x9F,0xE5,0x00,0x80,0xA0,0xE3,0x00,0x00,0x50,0xE3, + 0xB6,0x00,0xD7,0x01,0x02,0x0C,0xC0,0x03,0xB6,0x00,0xC7,0x01,0x01,0x00,0x40,0x12, + 0x80,0x00,0xC4,0x15,0x1B,0x00,0xD7,0xE5,0x00,0x00,0x50,0xE3,0x62,0x00,0x00,0xDA, + 0xD0,0xA7,0x9F,0xE5,0xD0,0xE7,0x9F,0xE5,0x00,0x30,0xA0,0xE3,0x7C,0x30,0xC4,0xE5, + 0x08,0x01,0x88,0xE0,0x7D,0x30,0xC4,0xE5,0x80,0x10,0xD4,0xE7,0x80,0xC0,0x84,0xE0, + 0x03,0x10,0x41,0xE2,0x01,0x1C,0xA0,0xE1,0x41,0x1C,0xA0,0xE1,0x06,0x10,0xCD,0xE5, + 0x80,0x20,0xD4,0xE7,0x00,0x00,0x51,0xE3,0x03,0x20,0x82,0xE2,0x02,0x2C,0xA0,0xE1, + 0x42,0x2C,0xA0,0xE1,0x07,0x20,0xCD,0xE5,0x01,0x00,0xDC,0xE5,0x03,0x00,0x40,0xE2, + 0x00,0x0C,0xA0,0xE1,0x40,0x0C,0xA0,0xE1,0x04,0x00,0xCD,0xE5,0x01,0xC0,0xDC,0xE5, + 0x03,0xC0,0x8C,0xE2,0x0C,0xCC,0xA0,0xE1,0x4C,0xCC,0xA0,0xE1,0x05,0xC0,0xCD,0xE5, + 0x06,0x30,0xCD,0xB5,0x00,0x10,0xDE,0xE5,0x01,0x00,0x52,0xE1,0x00,0x10,0xDE,0xA5, + 0x07,0x10,0xCD,0xA5,0x00,0x00,0x50,0xE3,0x04,0x30,0xCD,0xB5,0x01,0x00,0xDE,0xE5, + 0x01,0x00,0x40,0xE2,0x00,0x00,0x5C,0xE1,0x05,0x00,0xCD,0xA5,0xD4,0x00,0xDD,0xE1, + 0xD5,0x10,0xDD,0xE1,0x01,0x00,0x50,0xE1,0x23,0x00,0x00,0xCA,0xD6,0x10,0xDD,0xE1, + 0xD4,0x90,0xDD,0xE1,0x00,0x00,0xDE,0xE5,0xD7,0x20,0xDD,0xE1,0x99,0x10,0x20,0xE0, + 0x01,0x00,0x52,0xE1,0x15,0x00,0x00,0xBA,0x80,0x20,0x8B,0xE0,0xB0,0x20,0xD2,0xE1, + 0x80,0x30,0x8A,0xE0,0xB0,0x30,0xD3,0xE1,0x02,0x2A,0xA0,0xE1,0x22,0x2A,0xA0,0xE1, + 0x0F,0x3A,0xC3,0xE3,0x03,0xC0,0x42,0xE0,0x02,0x20,0x43,0xE0,0x32,0x00,0x52,0xE3, + 0x7C,0x20,0xD4,0xC5,0x01,0x10,0x81,0xE2,0x01,0x00,0x80,0xE2,0x01,0x20,0x82,0xC2, + 0x7C,0x20,0xC4,0xC5,0x4B,0x0F,0x5C,0xE3,0x7D,0x20,0xD4,0xC5,0x01,0x20,0x82,0xC2, + 0x7D,0x20,0xC4,0xC5,0xD7,0x20,0xDD,0xE1,0x01,0x00,0x52,0xE1,0xE9,0xFF,0xFF,0xAA, + 0x01,0x00,0x89,0xE2,0x00,0x0C,0xA0,0xE1,0x40,0x0C,0xA0,0xE1,0x04,0x00,0xCD,0xE5, + 0xD5,0x10,0xDD,0xE1,0x01,0x00,0x50,0xE1,0xDB,0xFF,0xFF,0xDA,0x7C,0x00,0xD4,0xE5, + 0x02,0x00,0x50,0xE3,0x0C,0x00,0x00,0x9A,0x7D,0x00,0xD4,0xE5,0x03,0x00,0x50,0xE3, + 0x09,0x00,0x00,0x2A,0xBE,0x07,0xD4,0xE1,0x01,0x10,0x88,0xE2,0x01,0x20,0xA0,0xE3, + 0x12,0x01,0x80,0xE1,0xBE,0x07,0xC4,0xE1,0xB6,0x00,0xD7,0xE1,0x02,0x0C,0x80,0xE3, + 0xB6,0x00,0xC7,0xE1,0x0A,0x00,0xA0,0xE3,0x80,0x00,0xC4,0xE5,0x1B,0x00,0xD7,0xE5, + 0x01,0x80,0x88,0xE2,0x08,0x00,0x50,0xE1,0x9E,0xFF,0xFF,0xCA,0x4C,0x06,0x9F,0xE5, + 0x00,0x80,0xA0,0xE3,0x00,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3,0x38,0x16,0x9F,0x15, + 0xFC,0x02,0xD5,0x01,0xF8,0x08,0xD1,0x11,0xBA,0x12,0xD5,0x01,0xB6,0x18,0xD1,0x11, + 0x91,0x00,0x00,0xE0,0xA4,0x11,0x8D,0xE5,0x24,0x16,0x9F,0xE5,0x91,0x20,0xC0,0xE0, + 0xC0,0x12,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0xA8,0x01,0x8D,0xE5,0x62,0x1F,0xA0,0xE3,0x1C,0x00,0x8D,0xE2,0x1C,0x80,0xC7,0xE5, + 0x16,0xED,0xFF,0xEB,0xE0,0xA5,0x9F,0xE5,0x00,0x40,0xA0,0xE3,0x08,0x90,0xA0,0xE1, + 0x38,0x20,0xA0,0xE3,0x04,0x10,0xA0,0xE1,0x76,0x0E,0x8A,0xE2,0x18,0x80,0x8D,0xE5, + 0x14,0x80,0x8D,0xE5,0x10,0x80,0x8D,0xE5,0x0C,0x80,0x8D,0xE5,0x08,0x80,0x8D,0xE5, + 0xFF,0xEC,0xFF,0xEB,0x0E,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x75,0x0E,0x8A,0xE2, + 0xFB,0xEC,0xFF,0xEB,0xB0,0x05,0x9F,0xE5,0x00,0xC0,0xA0,0xE3,0x01,0x00,0xD0,0xE5, + 0x00,0x00,0x50,0xE3,0x76,0x00,0x00,0xDA,0x02,0x0C,0x87,0xE2,0xB8,0x01,0x8D,0xE5, + 0x94,0x05,0x9F,0xE5,0x00,0x20,0xA0,0xE3,0x00,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3, + 0x60,0x00,0x00,0xDA,0x1C,0x00,0x8D,0xE2,0x0C,0x31,0x80,0xE0,0x70,0x05,0x9F,0xE5, + 0x84,0xA0,0x80,0xE0,0xB0,0x00,0xDA,0xE1,0x00,0x1A,0xA0,0xE1,0x64,0x05,0x9F,0xE5, + 0x21,0x1A,0xA0,0xE1,0x84,0x00,0x80,0xE0,0xB0,0x00,0xD0,0xE1,0x0F,0xBA,0xC0,0xE3, + 0x0B,0x00,0x41,0xE0,0x01,0x10,0x4B,0xE0,0x00,0x00,0x51,0xE3,0x0B,0x00,0x00,0xDA, + 0x32,0x00,0x51,0xE3,0x04,0x00,0x00,0xDA,0x2C,0xB5,0x9F,0xE5,0x02,0xB0,0x8B,0xE0, + 0x50,0xE7,0xDB,0xE5,0x01,0xE0,0x8E,0xE2,0x50,0xE7,0xCB,0xE5,0x18,0xB5,0x9F,0xE5, + 0x02,0xB1,0x8B,0xE0,0x60,0xE7,0x9B,0xE5,0x01,0x00,0x5E,0xE1,0x60,0x17,0x8B,0x35, + 0x00,0x00,0x50,0xE3,0x21,0x00,0x00,0xDA,0x1C,0x10,0x8D,0xE2,0xB0,0x00,0xCA,0xE1, + 0x02,0xA1,0x91,0xE7,0x00,0xA0,0x8A,0xE0,0x02,0xA1,0x81,0xE7,0x60,0x10,0x93,0xE5, + 0x00,0x10,0x81,0xE0,0x60,0x10,0x83,0xE5,0x10,0x10,0x9D,0xE5,0x00,0x00,0x51,0xE1, + 0x10,0x10,0x8D,0xB2,0x05,0x10,0x81,0xB8,0xB8,0x16,0xD5,0xE1,0x00,0x00,0x51,0xE1, + 0x07,0x00,0x00,0xAA,0xB6,0x16,0xD6,0xE1,0x01,0x10,0x81,0xE2,0xB6,0x16,0xC6,0xE1, + 0xBA,0x16,0xD5,0xE1,0x00,0x00,0x51,0xE1,0xBA,0x16,0xD6,0xB1,0x01,0x10,0x81,0xB2, + 0xBA,0x16,0xC6,0xB1,0xB6,0x1B,0xD5,0xE1,0x00,0x00,0x51,0xE1,0x23,0x00,0x00,0xAA, + 0x81,0x00,0x50,0xE1,0x08,0xA0,0x9D,0xE5,0x0C,0x00,0x9D,0xC5,0x01,0xA0,0x8A,0xE2, + 0x01,0x00,0x80,0xC2,0x08,0xA0,0x8D,0xE5,0x0C,0x00,0x8D,0xC5,0x1B,0x00,0x00,0xEA, + 0x00,0x00,0xA0,0xE3,0xB0,0x00,0xCA,0xE1,0x1C,0x00,0x8D,0xE2,0x02,0x01,0x80,0xE0, + 0xC0,0xA0,0x90,0xE5,0x01,0xA0,0x8A,0xE0,0xC0,0xA0,0x80,0xE5,0x20,0x01,0x93,0xE5, + 0x01,0x00,0x80,0xE0,0x20,0x01,0x83,0xE5,0xBC,0x06,0xD5,0xE1,0x01,0x00,0x50,0xE1, + 0xB8,0x06,0xD6,0xB1,0x01,0x00,0x80,0xB2,0xB8,0x06,0xC6,0xB1,0xB6,0x0B,0xD5,0xE1, + 0x01,0x00,0x50,0xE1,0x02,0x00,0x00,0xAA,0x80,0x00,0x51,0xE1,0x01,0x80,0x88,0xE2, + 0x01,0x90,0x89,0xC2,0x96,0x00,0x51,0xE3,0x04,0x00,0x00,0xDA,0xB8,0x01,0x9D,0xE5, + 0xB8,0x11,0x9D,0xE5,0xB0,0x02,0xD0,0xE1,0x01,0x00,0x80,0xE2,0xB0,0x02,0xC1,0xE1, + 0x14,0x04,0x9F,0xE5,0x01,0x20,0x82,0xE2,0x00,0x00,0xD0,0xE5,0x01,0x40,0x84,0xE2, + 0x02,0x00,0x50,0xE1,0xA0,0xFF,0xFF,0xCA,0x1C,0x00,0x8D,0xE2,0x0C,0x01,0x80,0xE0, + 0x9C,0x11,0x9D,0xE5,0x60,0x20,0x90,0xE5,0x01,0xC0,0x8C,0xE2,0x02,0x10,0x81,0xE0, + 0x9C,0x11,0x8D,0xE5,0xA0,0x11,0x9D,0xE5,0x20,0x01,0x90,0xE5,0x01,0x00,0x80,0xE0, + 0xA0,0x01,0x8D,0xE5,0xD0,0x03,0x9F,0xE5,0x01,0x00,0xD0,0xE5,0x0C,0x00,0x50,0xE1, + 0x8A,0xFF,0xFF,0xCA,0x05,0xFA,0xFF,0xEB,0xB8,0x02,0xD5,0xE1,0xBE,0x00,0xC7,0xE1, + 0x00,0x00,0x95,0xE5,0x01,0x00,0x10,0xE3,0x0E,0x00,0x00,0x0A,0xA4,0x01,0x9D,0xE5, + 0x9C,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x9C,0x13,0x9F,0xE5,0x01,0x20,0xD1,0xE5, + 0x00,0x10,0xD1,0xE5,0x92,0x01,0x01,0xE0,0x64,0x20,0xA0,0xE3,0x92,0x01,0x01,0xE0, + 0x4E,0xEC,0xFF,0xEB,0xA8,0x11,0x9D,0xE5,0x01,0x00,0x80,0xE0,0xB8,0x12,0xD5,0xE1, + 0x00,0x00,0x51,0xE1,0xBE,0x00,0xC7,0x81,0x8A,0x60,0x87,0xE2,0x60,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0x65,0xEC,0xFF,0xEB,0x58,0x03,0x9F,0xE5, + 0x00,0xA0,0xA0,0xE3,0xB0,0xA6,0xC6,0xE1,0x01,0x00,0xD0,0xE5,0x0A,0x40,0xA0,0xE1, + 0x00,0x00,0x50,0xE3,0x29,0x00,0x00,0xDA,0x1C,0x00,0x8D,0xE2,0x04,0x01,0x80,0xE0, + 0xB4,0x01,0x8D,0xE5,0x08,0x10,0xD5,0xE5,0x60,0x00,0x90,0xE5,0x64,0x20,0xA0,0xE3, + 0x91,0x00,0x00,0xE0,0x20,0x13,0x9F,0xE5,0x00,0x10,0xD1,0xE5,0x92,0x01,0x01,0xE0, + 0xB0,0x11,0x8D,0xE5,0x31,0xEC,0xFF,0xEB,0x00,0xB0,0xA0,0xE1,0xB4,0x01,0x9D,0xE5, + 0x09,0x10,0xD5,0xE5,0x20,0x01,0x90,0xE5,0x91,0x00,0x00,0xE0,0xB0,0x11,0x9D,0xE5, + 0x2A,0xEC,0xFF,0xEB,0xB0,0x11,0xD5,0xE1,0x0B,0x00,0x51,0xE1,0x01,0xB0,0xA0,0xB1, + 0xB2,0x11,0xD5,0xE1,0x00,0x00,0x51,0xE1,0x01,0x00,0xA0,0xB1,0xBC,0x10,0xD5,0xE1, + 0x00,0x00,0x4B,0xE0,0x91,0x00,0x00,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x00,0x15,0x60,0xE0,0x01,0x11,0x81,0xE0,0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1, + 0xC0,0x0F,0x41,0xE0,0x84,0x10,0x86,0xE0,0xB0,0x03,0xC1,0xE1,0xA8,0x02,0x9F,0xE5, + 0x01,0x40,0x84,0xE2,0x01,0x00,0xD0,0xE5,0x04,0x00,0x50,0xE1,0xD5,0xFF,0xFF,0xCA, + 0x94,0x02,0x9F,0xE5,0x00,0x40,0xA0,0xE3,0x00,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3, + 0x28,0x00,0x00,0xDA,0x0A,0x10,0xD5,0xE5,0x1C,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7, + 0x64,0x20,0xA0,0xE3,0x91,0x00,0x00,0xE0,0x6C,0x12,0x9F,0xE5,0x01,0x10,0xD1,0xE5, + 0x92,0x01,0x01,0xE0,0xAC,0x11,0x8D,0xE5,0x04,0xEC,0xFF,0xEB,0x00,0xB0,0xA0,0xE1, + 0x1C,0x00,0x8D,0xE2,0x0B,0x10,0xD5,0xE5,0x04,0x01,0x80,0xE0,0xC0,0x00,0x90,0xE5, + 0x91,0x00,0x00,0xE0,0xAC,0x11,0x9D,0xE5,0xFC,0xEB,0xFF,0xEB,0xB4,0x11,0xD5,0xE1, + 0x0B,0x00,0x51,0xE1,0x01,0xB0,0xA0,0xB1,0xB6,0x11,0xD5,0xE1,0x00,0x00,0x51,0xE1, + 0x01,0x00,0xA0,0xB1,0xBE,0x10,0xD5,0xE1,0x00,0x00,0x4B,0xE0,0x91,0x00,0x00,0xE0, + 0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x00,0x15,0x60,0xE0,0x01,0x11,0x81,0xE0, + 0x80,0x03,0x81,0xE0,0xC0,0x19,0xA0,0xE1,0xC0,0x0F,0x41,0xE0,0x84,0x10,0x86,0xE0, + 0xB0,0x00,0xC1,0xE1,0xF0,0x01,0x9F,0xE5,0x01,0x40,0x84,0xE2,0x00,0x00,0xD0,0xE5, + 0x04,0x00,0x50,0xE1,0xD6,0xFF,0xFF,0xCA,0x00,0x00,0x5A,0xE3,0x08,0x00,0x00,0xDA, + 0x14,0x00,0x9D,0xE5,0x80,0x00,0x86,0xE0,0xF0,0x10,0xD0,0xE1,0x18,0x00,0x9D,0xE5, + 0x80,0x00,0x86,0xE0,0xF0,0x03,0xD0,0xE1,0x01,0x00,0x80,0xE0,0x00,0xA0,0x5A,0xE0, + 0x00,0xA0,0xA0,0x43,0xB0,0x01,0x9F,0xE5,0xB0,0xA6,0xC6,0xE1,0x01,0x10,0xD0,0xE5, + 0x00,0x00,0xD0,0xE5,0x00,0x40,0xA0,0xE3,0x01,0x00,0x40,0xE2,0x90,0x01,0x01,0xE0, + 0xA0,0x01,0x9D,0xE5,0xD1,0xEB,0xFF,0xEB,0xA0,0x01,0x8D,0xE5,0x78,0x01,0x9F,0xE5, + 0xB6,0x00,0xD0,0xE1,0x08,0x00,0x10,0xE3,0xA0,0x01,0x9D,0xE5,0x0F,0x00,0x00,0x0A, + 0xFA,0x00,0x50,0xE3,0x08,0x00,0x9D,0xE5,0x01,0x40,0xA0,0x83,0x80,0x00,0x58,0xE1, + 0x01,0x40,0xA0,0xC3,0x23,0x00,0x59,0xE3,0x02,0x00,0x00,0xDA,0x0C,0x00,0x9D,0xE5, + 0x23,0x00,0x50,0xE3,0x01,0x40,0xA0,0xB3,0xB6,0x00,0xD7,0xE1,0x80,0x00,0x00,0xE2, + 0x00,0x00,0x50,0xE3,0x14,0x00,0x58,0x13,0x11,0x00,0x00,0xDA,0x0F,0x00,0x00,0xEA, + 0x96,0x00,0x50,0xE3,0x08,0x00,0x9D,0xE5,0x01,0x40,0xA0,0x83,0x00,0x00,0x58,0xE1, + 0x08,0x00,0x58,0xC3,0x01,0x40,0xA0,0xC3,0x14,0x00,0x59,0xE3,0x02,0x00,0x00,0xDA, + 0x0C,0x00,0x9D,0xE5,0x14,0x00,0x50,0xE3,0x01,0x40,0xA0,0xB3,0xB6,0x00,0xD7,0xE1, + 0x80,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3,0x0A,0x00,0x58,0x13,0x00,0x00,0x00,0xDA, + 0x01,0x40,0xA0,0xE3,0xF0,0x10,0xD7,0xE5,0xEE,0x00,0x87,0xE2,0x00,0x00,0x51,0xE3, + 0x04,0x10,0xD0,0x05,0x00,0x00,0x51,0x03,0x03,0x10,0xD0,0xE5,0x03,0x00,0x00,0x0A, + 0xFF,0x00,0x51,0xE3,0x05,0x00,0x00,0x2A,0x01,0x10,0x81,0xE2,0x02,0x00,0x00,0xEA, + 0x00,0x00,0x51,0xE3,0x01,0x00,0x00,0x0A,0x01,0x10,0x41,0xE2,0x03,0x10,0xC0,0xE5, + 0x03,0x10,0xD0,0xE5,0xBC,0x20,0xD5,0xE5,0x02,0x00,0x51,0xE1,0x0A,0x00,0x00,0x9A, + 0x00,0x00,0x54,0xE3,0x08,0x00,0x00,0x0A,0x00,0x10,0xD0,0xE5,0xFF,0x00,0x51,0xE3, + 0x01,0x10,0x81,0x32,0x00,0x10,0xC0,0x35,0x01,0x10,0xD0,0xE5,0x00,0x00,0x51,0xE3, + 0x01,0x10,0x41,0x12,0x01,0x10,0xC0,0x15,0x0C,0x00,0x00,0xEA,0x01,0x10,0xD0,0xE5, + 0x01,0x10,0x81,0xE2,0xFF,0x10,0x01,0xE2,0x01,0x10,0xC0,0xE5,0xB9,0x20,0xD5,0xE5, + 0x02,0x00,0x51,0xE1,0x05,0x00,0x00,0x1A,0x00,0x10,0xA0,0xE3,0x01,0x10,0xC0,0xE5, + 0x00,0x10,0xD0,0xE5,0x00,0x00,0x51,0xE3,0x01,0x10,0x41,0x12,0x00,0x10,0xC0,0x15, + 0x03,0x10,0xD0,0xE5,0xBD,0x20,0xD5,0xE5,0x02,0x00,0x51,0xE1,0x6F,0xDF,0x8D,0x22, + 0xF0,0x4F,0xBD,0x28,0x1E,0xFF,0x2F,0x21,0x00,0x10,0xD0,0xE5,0x00,0x00,0x51,0xE3, + 0xBE,0x10,0xD5,0x15,0x00,0x10,0xC0,0x15,0x00,0x10,0xA0,0xE3,0x01,0x10,0xC0,0xE5, + 0x6F,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20, + 0xE8,0x07,0x00,0x20,0x00,0x00,0x00,0x10,0xD2,0x02,0x00,0x10,0x9C,0x94,0x00,0x00, + 0xFA,0x07,0x00,0x20,0x1F,0x85,0xEB,0x51,0xFE,0xB5,0x01,0x20,0x6E,0x4C,0x40,0x03, + 0xFB,0xF7,0x24,0xFA,0xFA,0xF7,0x28,0xFF,0xFC,0xF7,0xC4,0xFB,0x6B,0x4F,0x00,0x25, + 0x6B,0x48,0x7D,0x60,0xFD,0x60,0x00,0x68,0x5C,0x21,0x82,0x7F,0x06,0x00,0x60,0x36, + 0x00,0x92,0x0B,0x5C,0x20,0x30,0xF2,0x7E,0x31,0x7F,0x40,0x7F,0xFE,0xF7,0x8E,0xFA, + 0x06,0x00,0x64,0x48,0x00,0x68,0x00,0x04,0x00,0x0C,0x01,0xF0,0x17,0xFC,0x01,0xF0, + 0xF9,0xFB,0x01,0x20,0x40,0x03,0xFB,0xF7,0x01,0xFA,0xFA,0xF7,0x1F,0xFF,0x01,0x20, + 0x00,0xF0,0x2C,0xFF,0xFC,0xF7,0x0A,0xFF,0x25,0x71,0xE5,0x80,0xF6,0x1C,0x25,0x81, + 0x01,0x96,0x97,0xE0,0x57,0x48,0x00,0x68,0x00,0x04,0x00,0x0C,0x01,0xF0,0xFE,0xFB, + 0x80,0x20,0xFB,0xF7,0xEB,0xF9,0x03,0x20,0x01,0xF0,0x32,0xFB,0x01,0x20,0x40,0x03, + 0xFB,0xF7,0xE4,0xF9,0xFB,0xF7,0x70,0xFE,0x00,0x28,0x02,0xD0,0xFA,0xF7,0xE4,0xFE, + 0x01,0xE0,0xFC,0xF7,0xB9,0xFE,0x03,0x20,0x00,0xF0,0x9C,0xFE,0xFA,0xF7,0xE2,0xFE, + 0x49,0x48,0xC0,0x88,0x01,0x05,0x09,0xD5,0x00,0x07,0x48,0x48,0xFF,0x21,0x01,0x31, + 0x01,0x62,0x2B,0x21,0x41,0x62,0x05,0x21,0xC1,0x62,0x06,0xE0,0x00,0x07,0x01,0xD5, + 0x04,0x20,0x00,0xE0,0x03,0x20,0x01,0xF0,0xCB,0xF8,0xFC,0xF7,0x63,0xFE,0xFC,0xF7, + 0x71,0xFE,0xFD,0xF7,0x83,0xFE,0x00,0x28,0x02,0xD0,0x7D,0x60,0xBD,0x60,0x02,0xE0, + 0x78,0x68,0x40,0x1C,0x78,0x60,0xFC,0xF7,0xDF,0xFE,0xFC,0xF7,0x4B,0xFE,0x01,0x20, + 0x80,0x03,0xFB,0xF7,0xAB,0xF9,0xFC,0xF7,0x5D,0xFE,0xFC,0xF7,0x15,0xFC,0xFC,0xF7, + 0x23,0xFD,0x00,0xF0,0x51,0xFA,0x06,0x00,0xFC,0xF7,0xCE,0xFE,0xFA,0xF7,0x7E,0xFF, + 0xFC,0xF7,0xCC,0xF9,0x00,0x28,0x02,0xD0,0x28,0x48,0x45,0x70,0x40,0xE0,0x78,0x78, + 0x00,0x28,0x11,0xD0,0x27,0x48,0x00,0x68,0x00,0x04,0x00,0x0C,0x01,0xF0,0x9E,0xFB, + 0x27,0x48,0x01,0x21,0x00,0x78,0x40,0x08,0x01,0xF0,0x08,0xFA,0x1F,0x48,0x45,0x70, + 0x25,0x71,0xE5,0x80,0x25,0x81,0x2B,0xE0,0x03,0x20,0x40,0x03,0xFB,0xF7,0x76,0xF9, + 0x03,0x20,0x01,0xF0,0x9F,0xFA,0x07,0x00,0x03,0x20,0x01,0xF0,0xD3,0xFA,0x80,0x20, + 0xFB,0xF7,0x6C,0xF9,0x00,0x2E,0x07,0xD0,0x0A,0x20,0x70,0x43,0xA0,0x21,0x4E,0x43, + 0x38,0x1A,0x37,0x18,0xFF,0x3F,0x7D,0x3F,0x16,0x48,0x00,0x78,0x16,0x49,0x09,0x78, + 0x08,0x43,0x07,0xD1,0x15,0x48,0x00,0x68,0x00,0x28,0x03,0xD0,0x39,0x00,0x01,0x20, + 0x00,0xF0,0x14,0xF9,0x09,0x4F,0x01,0x99,0x78,0x68,0x88,0x42,0x00,0xD2,0x61,0xE7, + 0x07,0x48,0x00,0x68,0x40,0x30,0x41,0x7E,0x0D,0x48,0x41,0x76,0x01,0xF0,0x50,0xFB, + 0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xDC,0x07,0x00,0x20,0x18,0x08,0x00,0x20, + 0xE8,0x07,0x00,0x20,0x14,0x08,0x00,0x20,0x40,0x00,0x00,0x20,0x80,0x90,0x00,0x40, + 0x1C,0x95,0x00,0x00,0x28,0x08,0x00,0x20,0xF5,0x07,0x00,0x20,0x10,0x08,0x00,0x20, + 0x40,0x02,0x00,0x20,0x00,0x20,0x01,0x21,0x89,0x07,0x48,0x60,0x70,0x47,0x00,0x00, + 0x03,0x48,0x04,0x49,0xC0,0x78,0x08,0x43,0x01,0x21,0x89,0x07,0x08,0x63,0x70,0x47, + 0x9C,0x94,0x00,0x00,0xC0,0x74,0x00,0x00,0x70,0xB5,0x14,0x4C,0x14,0x48,0x61,0x79, + 0x20,0x18,0x00,0x25,0x00,0x29,0x05,0xD0,0x81,0x7C,0xC8,0x29,0x0C,0xD2,0x49,0x1C, + 0x81,0x74,0x09,0xE0,0x0F,0x49,0x09,0x68,0x00,0x29,0x01,0xD1,0x85,0x76,0x03,0xE0, + 0x04,0x29,0x01,0xD9,0xFC,0xF7,0xAE,0xFA,0x0B,0x48,0x00,0x78,0x00,0x28,0x09,0xD0, + 0xFC,0xF7,0x5E,0xFB,0xE0,0x88,0xE0,0x21,0x88,0x43,0xE0,0x80,0x07,0x48,0x05,0x55, + 0xE0,0x34,0xA5,0x73,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20, + 0x3E,0x03,0x00,0x00,0x1C,0x08,0x00,0x20,0x19,0x08,0x00,0x20,0x19,0x02,0x00,0x00, + 0x10,0xB5,0xFA,0xF7,0x01,0xFE,0x03,0x20,0x40,0x03,0xFB,0xF7,0xDF,0xF8,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x03,0x20,0x10,0xB5,0x40,0x03,0xFB,0xF7,0xDF,0xF8,0xFA,0xF7, + 0xFD,0xFD,0xFC,0xF7,0x87,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x0B,0x48,0x10,0xB4, + 0x83,0x7B,0x0B,0x48,0x09,0x49,0x00,0x68,0xE0,0x39,0xA0,0x30,0x04,0x7E,0xC8,0x88, + 0xFF,0x22,0x01,0x32,0xA3,0x42,0x06,0xD3,0x10,0x43,0xC8,0x80,0x05,0x49,0x01,0x20, + 0x08,0x70,0x10,0xBC,0x70,0x47,0x90,0x43,0xC8,0x80,0xFA,0xE7,0x20,0x01,0x00,0x20, + 0xE8,0x07,0x00,0x20,0x19,0x08,0x00,0x20,0xF8,0xB5,0xFB,0xF7,0xCD,0xF8,0x00,0x28, + 0x33,0xD1,0x1B,0x49,0x02,0x20,0x01,0xF0,0xF3,0xF9,0x02,0x20,0x01,0xF0,0xF8,0xF9, + 0x01,0xF0,0xA0,0xFA,0x17,0x4D,0x18,0x4E,0x18,0x4F,0x01,0x24,0x64,0x07,0x28,0x6A, + 0x00,0x04,0x00,0x0C,0x01,0xF0,0xB2,0xFA,0xE0,0x6B,0x0B,0x28,0x13,0xD0,0x70,0x68, + 0x00,0x07,0x01,0xD5,0xFC,0xF7,0xB0,0xFE,0xF8,0x68,0x11,0x49,0x88,0x42,0xEE,0xD9, + 0x10,0x48,0xC0,0x68,0xFF,0x28,0x06,0xD1,0x02,0x20,0x01,0xF0,0xEB,0xF9,0x02,0x20, + 0x01,0xF0,0xD6,0xF9,0xE3,0xE7,0x01,0xF0,0x8B,0xFA,0x02,0x20,0x01,0xF0,0xE2,0xF9, + 0x05,0x20,0xFD,0xF7,0x45,0xFD,0x0B,0x20,0xE0,0x63,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0xFF,0xFF,0x00,0x00,0xF4,0x07,0x00,0x20,0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x40, + 0x50,0xC3,0x00,0x00,0xC0,0x9F,0x00,0x00,0xF8,0xB5,0x13,0x4F,0x01,0x25,0xFC,0x03, + 0xFF,0x26,0x17,0xE0,0x78,0x68,0x00,0x07,0x14,0xD5,0xA5,0x63,0xF8,0x68,0x07,0x28, + 0x08,0xD1,0x78,0x68,0x80,0x07,0xFC,0xD5,0x00,0xF0,0x3E,0xFA,0xFC,0xF7,0xB2,0xFF, + 0xE6,0x63,0x07,0xE0,0x0B,0x28,0x0B,0xD1,0xE0,0x63,0x78,0x68,0x80,0x07,0xFC,0xD5, + 0x00,0xF0,0x32,0xFA,0xE0,0x6B,0x0B,0x28,0xE4,0xD1,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x78,0x68,0x80,0x07,0xFC,0xD5,0xF3,0xE7,0x00,0x40,0x00,0x30,0x70,0xB5,0x0C,0x00, + 0x00,0x28,0x01,0xD0,0x1E,0x48,0x0D,0xE0,0x1E,0x4D,0x69,0x68,0x68,0x69,0xFA,0xF7, + 0xE5,0xFC,0x1D,0x4A,0x91,0x68,0x4B,0x1C,0x88,0x42,0x93,0x60,0x01,0xD8,0xA8,0x69, + 0x01,0xE0,0x1A,0x48,0x00,0x68,0x04,0x1B,0xFF,0x20,0x91,0x30,0x84,0x42,0x21,0xDD, + 0xFF,0x25,0x01,0x35,0x28,0x00,0xFB,0xF7,0x29,0xF8,0x02,0x20,0x01,0xF0,0x82,0xF9, + 0x0A,0x21,0x20,0x00,0xFA,0xF7,0x68,0xFB,0x41,0x11,0x02,0x20,0x01,0xF0,0x60,0xF9, + 0x04,0x20,0xFB,0xF7,0x45,0xF8,0x02,0x20,0x01,0xF0,0x62,0xF9,0x01,0x20,0xFB,0xF7, + 0x1D,0xF8,0xFF,0x20,0xFB,0xF7,0x3C,0xF8,0x02,0x20,0x01,0xF0,0x6B,0xF9,0x28,0x00, + 0xFB,0xF7,0x04,0xF8,0x06,0x49,0x00,0x20,0x08,0x70,0x70,0xBC,0x08,0xBC,0x18,0x47, + 0x10,0x08,0x00,0x20,0x9C,0x94,0x00,0x00,0x18,0x08,0x00,0x20,0x0C,0x08,0x00,0x20, + 0x28,0x08,0x00,0x20,0x78,0x47,0xC0,0x46,0xF0,0x5F,0x2D,0xE9,0x00,0x41,0x9F,0xE5, + 0x26,0x20,0xA0,0xE3,0xF4,0x50,0x84,0xE2,0x00,0x10,0xA0,0xE3,0xFC,0x00,0x84,0xE2, + 0x6B,0xEA,0xFF,0xEB,0xEC,0x90,0x9F,0xE5,0x01,0x00,0xD9,0xE5,0x00,0x10,0xD9,0xE5, + 0x01,0x30,0x50,0xE2,0xF0,0x5F,0xBD,0x48,0x90,0x01,0x01,0xE0,0x01,0x10,0x41,0xE2, + 0x1E,0xFF,0x2F,0x41,0x00,0xA0,0xA0,0xE3,0x01,0x80,0xA0,0xE3,0xC8,0xB0,0x9F,0xE5, + 0x00,0x00,0xD9,0xE5,0x01,0x00,0x50,0xE2,0x29,0x00,0x00,0x4A,0x83,0x60,0x84,0xE0, + 0x08,0x70,0x83,0xE2,0x80,0x20,0x84,0xE0,0xFA,0x28,0xD2,0xE1,0xFA,0xCB,0xD6,0xE1, + 0x0C,0x20,0x82,0xE0,0x81,0xC0,0x8B,0xE0,0xF0,0xE0,0xDC,0xE1,0x02,0x20,0x4E,0xE0, + 0x00,0x00,0x52,0xE3,0xB0,0xA0,0xCC,0xD1,0x1A,0x00,0x00,0xDA,0xB0,0x20,0xCC,0xE1, + 0x88,0xC0,0x9F,0xE5,0x00,0xC0,0x9C,0xE5,0xBA,0xCC,0xDC,0xE1,0x02,0x00,0x5C,0xE1, + 0x09,0x00,0x00,0xCA,0x45,0x20,0xD9,0xE5,0x02,0x00,0x12,0xE3,0x06,0x00,0x00,0x0A, + 0x00,0x20,0xD9,0xE5,0x01,0x20,0x42,0xE2,0x00,0x00,0x52,0xE1,0x01,0x20,0xD9,0x05, + 0x01,0x20,0x42,0x02,0x03,0x00,0x52,0x01,0x1C,0x80,0xC4,0x15,0x50,0x20,0x9F,0xE5, + 0xB4,0xC0,0xD5,0xE1,0x81,0x20,0x82,0xE0,0xF0,0x20,0xD2,0xE1,0x0C,0x00,0x52,0xE1, + 0x04,0x00,0x00,0xDA,0x00,0x20,0x85,0xE0,0x08,0x80,0xC2,0xE5,0x00,0x20,0xD9,0xE5, + 0x05,0x20,0x82,0xE0,0x07,0x80,0xC2,0xE7,0x01,0x00,0x50,0xE2,0x01,0x10,0x41,0xE2, + 0xD7,0xFF,0xFF,0x5A,0x01,0x30,0x53,0xE2,0xD0,0xFF,0xFF,0x5A,0xF0,0x5F,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x40,0x00,0x00,0x20,0x9C,0x94,0x00,0x00,0x00,0x00,0x00,0x10, + 0xE8,0x07,0x00,0x20,0x2A,0x08,0x00,0x20,0x08,0x49,0x09,0x48,0xCA,0x68,0xC2,0x61, + 0x49,0x68,0xC1,0x61,0x07,0x49,0xCA,0x68,0x52,0x08,0x52,0x00,0xCA,0x60,0x41,0x69, + 0x89,0x06,0xFC,0xD5,0x41,0x68,0x89,0x07,0xFC,0xD5,0x70,0x47,0xC0,0x9F,0x00,0x00, + 0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x70,0xB5,0x18,0x48,0xC0,0x68,0x07,0x28, + 0x04,0xD0,0x01,0x20,0x40,0x07,0x04,0x68,0x00,0x2C,0x03,0xD1,0x00,0x20,0x70,0xBC, + 0x08,0xBC,0x18,0x47,0xFF,0x25,0x01,0x35,0x28,0x00,0xFA,0xF7,0x3F,0xFF,0x02,0x20, + 0x01,0xF0,0x98,0xF8,0x20,0x00,0xFD,0xF7,0xFB,0xFF,0x00,0xF0,0x15,0xF9,0x05,0x2C, + 0x07,0xD8,0x0B,0x48,0x00,0x78,0x00,0x28,0x03,0xD1,0x20,0x00,0x00,0xF0,0x14,0xF8, + 0x02,0xE0,0x20,0x00,0x00,0xF0,0x70,0xF8,0x04,0x00,0x28,0x00,0xFA,0xF7,0x1E,0xFF, + 0x04,0x49,0x00,0x20,0x08,0x70,0x20,0x00,0xD9,0xE7,0x00,0x00,0x00,0x40,0x00,0x30, + 0xF7,0x07,0x00,0x20,0x28,0x08,0x00,0x20,0x70,0xB5,0x01,0x21,0x28,0x4C,0x4A,0x07, + 0x04,0xE0,0x8B,0x00,0x9B,0x18,0x1B,0x68,0xE3,0x61,0x49,0x1C,0x81,0x42,0xF8,0xD9, + 0x24,0x48,0x20,0x60,0x21,0x20,0x80,0x02,0x20,0x61,0x03,0x20,0xFD,0xF7,0xAE,0xFB, + 0x21,0x48,0x0A,0x21,0x00,0x69,0xFA,0xF7,0xA9,0xFB,0x01,0x09,0x02,0x20,0x01,0xF0, + 0x3F,0xF8,0x1E,0x4D,0xE8,0x68,0x40,0x08,0x40,0x00,0xE8,0x60,0x02,0x20,0x01,0xF0, + 0x3F,0xF8,0x03,0x20,0xFA,0xF7,0x1C,0xFF,0x01,0x20,0xFA,0xF7,0xF7,0xFE,0x03,0x21, + 0x09,0x07,0xC8,0x68,0x08,0x22,0x10,0x43,0xC8,0x60,0x02,0x20,0x01,0xF0,0x0A,0xF8, + 0x06,0x00,0x60,0x68,0x60,0x60,0x60,0x69,0x60,0x61,0xFD,0xF7,0x95,0xFD,0x02,0x20, + 0x01,0xF0,0x38,0xF8,0x03,0x20,0xFD,0xF7,0x71,0xFB,0xE8,0x68,0x01,0x21,0x08,0x43, + 0xE8,0x60,0x0B,0x48,0x00,0x78,0x00,0x28,0x05,0xD0,0x0A,0x48,0x00,0x68,0x00,0x04, + 0x00,0x0C,0x01,0xF0,0xDB,0xF8,0x30,0x00,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0x40,0x00,0x30,0xD0,0x10,0x05,0x00,0x9C,0x94,0x00,0x00,0x00,0x20,0x00,0x40, + 0x28,0x08,0x00,0x20,0x14,0x08,0x00,0x20,0xF8,0xB5,0x05,0x00,0x41,0x48,0x00,0x27, + 0x00,0x78,0x00,0x28,0x03,0xD0,0x6D,0x1C,0xFD,0xF7,0x4E,0xFA,0x07,0x00,0x3E,0x48, + 0x00,0x68,0x3E,0x4E,0xF0,0x61,0x3E,0x48,0x02,0x24,0x00,0x69,0x0A,0x21,0xFA,0xF7, + 0x4D,0xFB,0x01,0x00,0x02,0x20,0x00,0xF0,0xE3,0xFF,0x02,0x20,0x00,0xF0,0xE8,0xFF, + 0x38,0x48,0xC1,0x68,0x49,0x08,0x49,0x00,0xC1,0x60,0x32,0x48,0x21,0x07,0x00,0x78, + 0x1A,0xE0,0x72,0x69,0x52,0x06,0x0A,0xD4,0x00,0x28,0x01,0xD0,0xAC,0x42,0x04,0xD2, + 0xA2,0x00,0x52,0x18,0x12,0x68,0xF2,0x61,0x00,0xE0,0xF7,0x61,0x64,0x1C,0x2E,0x4A, + 0x12,0x78,0x00,0x2A,0x08,0xD0,0xFD,0xF7,0x13,0xFB,0x2C,0x48,0x00,0x68,0x00,0x04, + 0x00,0x0C,0x01,0xF0,0x8B,0xF8,0x01,0xE0,0xAC,0x42,0xE2,0xD9,0x02,0x20,0x00,0xF0, + 0xD1,0xFF,0x25,0x4D,0x28,0x78,0x00,0x28,0x31,0xD1,0xFD,0xF7,0x69,0xFA,0x00,0x28, + 0x2D,0xD0,0x1F,0x48,0x0A,0x21,0x00,0x69,0xFA,0xF7,0x10,0xFB,0x01,0x00,0x02,0x20, + 0x00,0xF0,0xA6,0xFF,0x02,0x20,0x00,0xF0,0xAB,0xFF,0x1C,0x4C,0x09,0xE0,0x28,0x78, + 0x00,0x28,0x06,0xD0,0xFD,0xF7,0xEC,0xFA,0x20,0x68,0x00,0x04,0x00,0x0C,0x01,0xF0, + 0x65,0xF8,0xFD,0xF7,0x4D,0xFA,0x00,0x28,0xF1,0xD1,0x70,0x68,0x70,0x60,0x08,0xE0, + 0x28,0x78,0x00,0x28,0x05,0xD0,0x20,0x68,0x00,0x04,0x00,0x0C,0x01,0xF0,0x56,0xF8, + 0x02,0xE0,0x70,0x68,0xC0,0x03,0xF3,0xD5,0x02,0x20,0x00,0xF0,0x9B,0xFF,0x00,0xF0, + 0x1B,0xF8,0x08,0x48,0xC1,0x68,0x01,0x22,0x11,0x43,0xC1,0x60,0xF8,0xBC,0x08,0xBC, + 0x00,0x20,0x18,0x47,0xF7,0x07,0x00,0x20,0x04,0x00,0x00,0x20,0x00,0x40,0x00,0x30, + 0x9C,0x94,0x00,0x00,0x00,0x20,0x00,0x40,0x28,0x08,0x00,0x20,0x14,0x08,0x00,0x20, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x05,0x48,0x01,0x21,0x00,0xB5,0xC9,0x02, + 0x01,0x62,0x00,0x21,0x01,0x62,0xFD,0xF7,0xCF,0xFC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x70,0x47,0x00,0x00,0x04,0x49,0x02,0x68,0x0A,0x62,0x42,0x68, + 0x4A,0x62,0x82,0x68,0x4A,0x63,0xC0,0x68,0xC8,0x62,0x70,0x47,0x80,0x90,0x00,0x40, + 0x78,0x47,0xC0,0x46,0x01,0x00,0x80,0xE0,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46, + 0x01,0x00,0x80,0xE0,0x02,0x00,0x80,0xE0,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46, + 0x01,0x00,0x80,0xE0,0x00,0xC0,0x9D,0xE5,0x02,0x00,0x80,0xE0,0x03,0x00,0x80,0xE0, + 0x0C,0x00,0x80,0xE0,0x1E,0xFF,0x2F,0xE1,0x70,0xB5,0x06,0x00,0x11,0x49,0xD9,0x20, + 0xC0,0x00,0xE3,0x22,0x08,0x18,0xD2,0x00,0x89,0x18,0x0C,0x00,0x20,0x34,0xA2,0x7D, + 0x0D,0x4D,0x92,0x19,0x08,0xD0,0x38,0x22,0xFA,0xF7,0xB2,0xFA,0xA0,0x7D,0x80,0x19, + 0xA8,0x75,0x70,0xBC,0x08,0xBC,0x18,0x47,0xAA,0x7D,0x00,0x2A,0x05,0xD0,0x38,0x22, + 0xFA,0xF7,0xA6,0xFA,0x01,0x20,0xA0,0x75,0xF3,0xE7,0x38,0x22,0x00,0x21,0xFA,0xF7, + 0x99,0xFA,0xEE,0xE7,0x40,0x00,0x00,0x20,0x28,0x07,0x00,0x20,0xF8,0xB5,0x1D,0x4C, + 0x89,0x20,0x80,0x00,0x25,0x18,0x22,0x00,0x10,0x18,0xEE,0x1D,0x07,0x00,0xF9,0x36, + 0x31,0x7D,0xFF,0x30,0x09,0x30,0x78,0x37,0x00,0x29,0x00,0x90,0x0E,0xD0,0x78,0x22, + 0x29,0x00,0x38,0x00,0xFA,0xF7,0x84,0xFA,0x00,0x98,0x0C,0x22,0x31,0x1F,0xFA,0xF7, + 0x7F,0xFA,0x30,0x7D,0x70,0x75,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x0C,0x22,0x00,0x21, + 0xFA,0xF7,0x70,0xFA,0x78,0x22,0x00,0x21,0x38,0x00,0xFA,0xF7,0x6B,0xFA,0x28,0x00, + 0x0C,0x22,0x00,0x21,0xF0,0x30,0xFA,0xF7,0x65,0xFA,0x00,0x21,0x71,0x75,0xE0,0x88, + 0x13,0x22,0x90,0x43,0xE0,0x80,0x1B,0x20,0x80,0x01,0x20,0x18,0xC1,0x70,0x01,0x71, + 0xE1,0xE7,0x00,0x00,0x40,0x00,0x00,0x20,0xF0,0xB5,0x04,0x00,0x84,0x48,0x95,0xB0, + 0x01,0x90,0x84,0x48,0x84,0x49,0x00,0x78,0x00,0x28,0x83,0x48,0x16,0xD0,0x80,0x30, + 0xC2,0x89,0x18,0x27,0x09,0x92,0x02,0x8A,0x08,0x92,0x42,0x8A,0x07,0x92,0x1C,0x22, + 0x82,0x5E,0x06,0x92,0x1E,0x22,0x82,0x5E,0x05,0x92,0x1A,0x22,0x82,0x5E,0xC7,0x5F, + 0x04,0x92,0x14,0x22,0x16,0x23,0x82,0x5E,0xC3,0x5E,0x15,0xE0,0x20,0x30,0x80,0x7A, + 0x34,0x27,0x30,0x22,0x09,0x90,0x88,0x8D,0x08,0x90,0xC8,0x8D,0x07,0x90,0x38,0x20, + 0x08,0x5E,0x06,0x90,0x3A,0x20,0x08,0x5E,0x05,0x90,0x36,0x20,0x08,0x5E,0xCF,0x5F, + 0x32,0x23,0x04,0x90,0x8A,0x5E,0xCB,0x5E,0x20,0x88,0x6B,0x4D,0x02,0xA9,0x80,0x18, + 0x20,0x80,0x60,0x88,0xC0,0x18,0x60,0x80,0x00,0x20,0x6B,0x46,0x18,0x81,0x98,0x81, + 0xA8,0x8B,0x40,0x1E,0xD8,0x81,0xE8,0x8B,0x40,0x1E,0x58,0x81,0x06,0xC9,0x20,0x00, + 0x00,0xF0,0xB2,0xFF,0xA8,0x8B,0x64,0x21,0x0C,0x90,0xE8,0x8B,0x0B,0x90,0x0C,0x98, + 0x45,0x08,0x0B,0x98,0x46,0x08,0x08,0x98,0x64,0x38,0x00,0x28,0x01,0xDC,0x08,0x98, + 0x08,0x1A,0x12,0x90,0x07,0x98,0x64,0x38,0x00,0x28,0x01,0xDC,0x07,0x98,0x08,0x1A, + 0x11,0x90,0x55,0x48,0x01,0x78,0x40,0x78,0x0A,0x90,0x01,0x98,0x20,0x30,0x00,0x7A, + 0xC2,0x07,0x0A,0xD0,0x80,0x07,0x03,0xD5,0x49,0x1E,0x09,0x06,0x09,0x0E,0x04,0xE0, + 0x0A,0x98,0x40,0x1E,0x00,0x06,0x00,0x0E,0x0A,0x90,0x28,0x00,0xFA,0xF7,0x4C,0xF8, + 0x0C,0x99,0x08,0x1A,0x40,0x1E,0x0F,0x90,0x0A,0x99,0x30,0x00,0xFA,0xF7,0x44,0xF8, + 0x0B,0x99,0x08,0x1A,0x40,0x1E,0x39,0x1E,0x0E,0x90,0x00,0xDD,0xE9,0x1B,0x04,0x98, + 0x00,0x28,0x10,0x90,0x01,0xDD,0x30,0x1A,0x10,0x90,0x00,0x20,0x20,0x5E,0xA8,0x42, + 0x14,0x90,0x01,0xDB,0x40,0x1B,0x01,0xE0,0x40,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC, + 0x40,0x42,0x64,0x22,0x07,0x00,0x57,0x43,0x88,0x42,0x0D,0x97,0x0F,0xDD,0x42,0x1A, + 0x12,0x98,0x50,0x43,0xC7,0x19,0x10,0x00,0x50,0x43,0x12,0x9A,0x50,0x43,0x0F,0x9A, + 0x52,0x1B,0x51,0x1A,0xFA,0xF7,0x18,0xF8,0x0D,0x99,0x40,0x18,0x0D,0x90,0x06,0x98, + 0x00,0x28,0x01,0xD1,0x38,0x00,0x06,0xE0,0x01,0x28,0x01,0xD1,0x0D,0x98,0x02,0xE0, + 0x0D,0x99,0x78,0x00,0x40,0x1A,0x64,0x21,0xFA,0xF7,0x06,0xF8,0x09,0x99,0xC9,0x07, + 0x07,0xD0,0x14,0x99,0xA9,0x42,0x01,0xDB,0x28,0x18,0x01,0xE0,0x28,0x1A,0x40,0x1E, + 0x20,0x80,0x02,0x20,0x20,0x5E,0xB0,0x42,0x13,0x90,0x01,0xDB,0x80,0x1B,0x01,0xE0, + 0x80,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x21,0x05,0x00,0x4D,0x43, + 0x10,0x99,0x2F,0x00,0x88,0x42,0x0E,0xDD,0x41,0x1A,0x11,0x98,0x10,0x9A,0x48,0x43, + 0x45,0x19,0x08,0x00,0x48,0x43,0x11,0x99,0x48,0x43,0x0E,0x99,0x89,0x1B,0x89,0x1A, + 0xF9,0xF7,0xDA,0xFF,0xC7,0x19,0x05,0x98,0x00,0x28,0x01,0xD1,0x28,0x00,0x05,0xE0, + 0x01,0x28,0x01,0xD1,0x38,0x00,0x01,0xE0,0x68,0x00,0xC0,0x1B,0x64,0x21,0xF9,0xF7, + 0xCB,0xFF,0x09,0x99,0x89,0x07,0x07,0xD5,0x13,0x99,0xB1,0x42,0x01,0xDB,0x30,0x18, + 0x01,0xE0,0x30,0x1A,0x40,0x1E,0x60,0x80,0x15,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0xA4,0x06,0x00,0x20,0xFA,0x07,0x00,0x20,0x9C,0x94,0x00,0x00,0xFF,0xB5,0x00,0x68, + 0x8E,0x46,0x84,0x46,0x70,0x46,0x1B,0x4B,0x1B,0x49,0x05,0x68,0x00,0x22,0x19,0x4E, + 0x54,0x00,0x24,0x3E,0x34,0x5B,0x66,0x46,0x00,0x20,0x34,0x1B,0x26,0x00,0x74,0x43, + 0x46,0x00,0x9E,0x5B,0xAE,0x1B,0x37,0x00,0x77,0x43,0xE6,0x19,0x8E,0x42,0x18,0xD2, + 0x51,0x00,0x10,0x4A,0x40,0x00,0x24,0x3A,0x52,0x5A,0x02,0x99,0x0A,0x60,0x0D,0x49, + 0x03,0x9A,0x16,0x39,0x0C,0x5A,0x14,0x60,0x09,0x5A,0x72,0x46,0x12,0x68,0x18,0x5A, + 0x51,0x18,0x09,0x1A,0x70,0x46,0x01,0x60,0x01,0x20,0x04,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x40,0x1C,0x0B,0x28,0xDB,0xD3,0x52,0x1C,0x07,0x2A,0xCF,0xD3,0x00,0x20, + 0xC0,0x43,0xF2,0xE7,0xB0,0x71,0x00,0x00,0xD9,0x02,0x00,0x00,0xF0,0xB5,0x5B,0x48, + 0x89,0x21,0x89,0x00,0x46,0x18,0xD9,0x21,0xC9,0x00,0x45,0x18,0x85,0xB0,0x01,0x90, + 0x57,0x49,0x44,0x20,0x42,0x5D,0x08,0x7D,0x56,0x4B,0x00,0x24,0x00,0x2A,0x04,0x93, + 0x25,0xD1,0x00,0x28,0x23,0xD0,0x00,0x20,0x07,0x00,0x02,0x90,0x0A,0x20,0x78,0x43, + 0x80,0x19,0x00,0x90,0x80,0x1D,0xFD,0xF7,0xE9,0xF9,0x00,0x28,0x13,0xD0,0x04,0x98, + 0x00,0x7A,0xA0,0x42,0x12,0xD9,0x00,0x98,0x01,0x79,0x02,0x98,0x28,0x18,0x40,0x30, + 0x01,0x71,0x02,0x98,0x00,0x99,0x40,0x1C,0x02,0x90,0x01,0x20,0x00,0xF0,0x4E,0xF9, + 0x00,0x28,0x00,0xD1,0x64,0x1C,0x7F,0x1C,0x0C,0x2F,0xDF,0xDB,0x78,0xE0,0x49,0x7D, + 0x00,0x29,0x01,0xD1,0x00,0x28,0x73,0xD0,0x00,0x27,0xE9,0x19,0x44,0x20,0x08,0x56, + 0x40,0x1E,0x33,0xD4,0x31,0x18,0xFC,0x20,0x08,0x56,0x40,0x1E,0x06,0xD4,0x01,0x99, + 0x0D,0x22,0x92,0x01,0x89,0x18,0x09,0x7E,0x00,0x29,0x14,0xD0,0x0A,0x21,0x48,0x43, + 0x81,0x19,0x78,0x31,0x04,0x20,0x00,0xF0,0x29,0xF9,0x00,0x28,0x00,0xD1,0x64,0x1C, + 0x38,0x00,0x04,0xE0,0x29,0x18,0x40,0x31,0x4A,0x79,0x40,0x1C,0x0A,0x71,0x0C,0x28, + 0xF8,0xDB,0x7F,0x1E,0x0F,0xE0,0x0A,0x21,0x48,0x43,0x80,0x19,0x00,0x90,0x80,0x1D, + 0xFD,0xF7,0x9C,0xF9,0x00,0x28,0x06,0xD0,0x00,0x99,0x02,0x20,0x00,0xF0,0x0E,0xF9, + 0x00,0x28,0x00,0xD1,0x64,0x1C,0x7F,0x1C,0x0C,0x2F,0xC6,0xDB,0x01,0x98,0x0D,0x21, + 0x00,0x27,0x89,0x01,0x40,0x18,0x03,0x90,0x00,0x7E,0x00,0x28,0x30,0xD1,0xF1,0x19, + 0xFC,0x20,0x08,0x56,0x40,0x1E,0x25,0xD4,0x0A,0x21,0x48,0x43,0x80,0x19,0x00,0x90, + 0x80,0x1D,0xFD,0xF7,0x7B,0xF9,0x00,0x28,0x1C,0xD0,0x04,0x98,0x00,0x7A,0xA0,0x42, + 0x1E,0xD9,0x00,0x20,0x2A,0x18,0x44,0x21,0x51,0x56,0x4A,0x1E,0xBA,0x42,0x11,0xD0, + 0x49,0x1E,0x0C,0xD5,0x00,0x99,0x28,0x18,0x09,0x79,0x40,0x30,0x01,0x71,0x00,0x99, + 0x01,0x20,0x00,0xF0,0xDB,0xF8,0x00,0x28,0x04,0xD1,0x64,0x1C,0x02,0xE0,0x40,0x1C, + 0x0C,0x28,0xE7,0xDB,0x7F,0x1C,0x0C,0x2F,0x02,0xDA,0x03,0x98,0xCC,0xE7,0xFF,0xE7, + 0x00,0xF0,0xE4,0xFC,0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20, + 0x64,0x03,0x00,0x20,0xBC,0x94,0x00,0x00,0x10,0xB5,0xFC,0xF7,0x0B,0xF8,0xFC,0xF7, + 0x93,0xF8,0xFC,0xF7,0x99,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x01,0x28,0x01,0xD1, + 0x0E,0x48,0x00,0xE0,0x0E,0x48,0x0F,0x49,0x00,0x68,0x82,0x68,0x4A,0x61,0xC2,0x68, + 0x8A,0x61,0x02,0x69,0x01,0x23,0x5B,0x05,0x9A,0x43,0xCA,0x61,0x42,0x69,0x0A,0x62, + 0x09,0x4A,0x92,0x79,0x00,0x2A,0x03,0xD0,0x08,0x48,0xC8,0x60,0x08,0x48,0x02,0xE0, + 0x02,0x68,0xCA,0x60,0x40,0x68,0x08,0x61,0x70,0x47,0x00,0x00,0xF0,0x07,0x00,0x20, + 0xEC,0x07,0x00,0x20,0xC0,0x90,0x00,0x40,0xF4,0x07,0x00,0x20,0x41,0x42,0x01,0x00, + 0x10,0x00,0x10,0x00,0x0C,0x49,0x01,0x28,0x01,0xD1,0x0C,0x48,0x00,0xE0,0x0C,0x48, + 0xFF,0x31,0x01,0x31,0x49,0x7D,0x00,0x68,0x02,0x29,0x01,0xD9,0x01,0x6A,0x04,0xE0, + 0x02,0x29,0x01,0xD1,0xC1,0x69,0x00,0xE0,0x81,0x69,0x06,0x4A,0x51,0x62,0x41,0x6A, + 0x91,0x62,0x80,0x6A,0x10,0x63,0x70,0x47,0x64,0x02,0x00,0x20,0xF0,0x07,0x00,0x20, + 0xEC,0x07,0x00,0x20,0xC0,0x90,0x00,0x40,0x01,0x28,0x01,0xD1,0x0A,0x48,0x00,0xE0, + 0x0A,0x48,0x0B,0x49,0x00,0x68,0xC2,0x6A,0x0A,0x61,0x02,0x6B,0x4A,0x61,0x42,0x6B, + 0x8A,0x61,0x82,0x6B,0xCA,0x61,0xC2,0x6B,0x0A,0x62,0x02,0x6C,0x4A,0x62,0x42,0x6C, + 0x8A,0x62,0x80,0x6C,0xC8,0x62,0x70,0x47,0xF0,0x07,0x00,0x20,0xEC,0x07,0x00,0x20, + 0x40,0xA1,0x00,0x40,0x12,0x49,0x10,0xB4,0x4A,0x79,0x10,0x48,0x02,0x72,0x8A,0x79, + 0x42,0x72,0x02,0x7A,0xD3,0x07,0x0D,0xD0,0x94,0x07,0x0E,0x4A,0x0E,0x4B,0x04,0xD5, + 0x12,0x78,0x52,0x1E,0x82,0x73,0x00,0x22,0x03,0xE0,0x52,0x78,0x52,0x1E,0x82,0x73, + 0x01,0x22,0x1A,0x70,0x8A,0x7A,0xC2,0x73,0xCA,0x7A,0x02,0x74,0x0A,0x7B,0x42,0x74, + 0x4A,0x7B,0x82,0x74,0x89,0x7B,0xC1,0x74,0x10,0xBC,0x70,0x47,0xC4,0x06,0x00,0x20, + 0xDC,0x94,0x00,0x00,0x9C,0x94,0x00,0x00,0xF4,0x07,0x00,0x20,0x0E,0x49,0x10,0xB5, + 0xC9,0x88,0x00,0x28,0x06,0xD0,0x03,0x24,0x08,0x07,0x01,0xD5,0x04,0x20,0x07,0xE0, + 0x03,0x20,0x05,0xE0,0x01,0x24,0x08,0x07,0x01,0xD5,0x02,0x20,0x00,0xE0,0x01,0x20, + 0x00,0xF0,0xC6,0xF9,0x20,0x00,0xFF,0xF7,0x9F,0xFF,0x20,0x00,0xFF,0xF7,0x4E,0xFF, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0xF3,0xB5,0x37,0x4F, + 0x89,0x20,0x80,0x00,0x3E,0x18,0xE3,0x20,0x0C,0x00,0xC0,0x00,0x3D,0x18,0x81,0xB0, + 0x01,0x99,0x20,0x00,0xFA,0xF7,0x6A,0xFF,0x00,0x28,0x5C,0xD1,0x0D,0x20,0xC0,0x01, + 0x38,0x18,0x00,0x7B,0xC0,0x07,0x01,0xD1,0x02,0x20,0xE0,0x71,0x01,0x98,0x80,0x07, + 0x80,0x0F,0x02,0xD1,0xE0,0x79,0x06,0x28,0x32,0xD1,0x20,0x79,0xA9,0x8E,0x01,0x22, + 0x40,0x1E,0x82,0x40,0x11,0x43,0xA9,0x86,0x29,0x68,0x10,0x22,0xD1,0x41,0x12,0x06, + 0x89,0x18,0x10,0x22,0xD1,0x41,0x29,0x60,0x80,0x00,0x40,0x19,0x41,0x68,0x22,0x79, + 0x09,0x01,0x09,0x09,0x12,0x07,0x11,0x43,0x1D,0x4A,0x41,0x60,0x11,0x40,0x22,0x88, + 0x12,0x05,0x12,0x0A,0x11,0x43,0x0B,0x0B,0x41,0x60,0x61,0x88,0x1B,0x03,0x09,0x05, + 0x09,0x0D,0x0B,0x43,0x0F,0x21,0x43,0x60,0x62,0x79,0x09,0x06,0x8B,0x43,0x0F,0x21, + 0x0F,0x2A,0x00,0xD9,0x11,0x00,0x09,0x07,0x09,0x09,0x0B,0x43,0x43,0x60,0x19,0xE0, + 0x0A,0x28,0x17,0xD1,0x00,0x20,0xF3,0x1D,0xF9,0x33,0x10,0xE0,0x0A,0x21,0x41,0x43, + 0x89,0x19,0x0A,0x00,0x60,0x31,0x25,0x79,0x0F,0x7F,0xBD,0x42,0x06,0xD1,0x40,0x32, + 0x15,0x8F,0x25,0x80,0x52,0x8F,0x62,0x80,0x49,0x7F,0x61,0x71,0x40,0x1C,0x59,0x7D, + 0x81,0x42,0xEB,0xDC,0x00,0x20,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20, + 0xFF,0x0F,0x00,0xFF,0x0F,0x49,0x10,0xB5,0xC8,0x79,0x00,0x28,0x11,0xD0,0x00,0x09, + 0x00,0x01,0x00,0x22,0x40,0x28,0x0B,0xD0,0x80,0x28,0x0A,0xD1,0x01,0x20,0xC8,0x70, + 0x09,0x4B,0x08,0x71,0x48,0x71,0x1B,0x79,0x00,0x2B,0x05,0xD1,0x8A,0x71,0x04,0xE0, + 0x8A,0x70,0x10,0xBC,0x08,0xBC,0x18,0x47,0x88,0x71,0x00,0x20,0x00,0xF0,0x6E,0xFA, + 0xF7,0xE7,0x00,0x00,0xF4,0x07,0x00,0x20,0x1C,0x95,0x00,0x00,0xF8,0xB5,0x06,0x9F, + 0x07,0x9D,0x0C,0x00,0x1E,0x00,0x88,0x42,0x09,0xD3,0x21,0x00,0x10,0x00,0xF9,0xF7, + 0x53,0xFD,0x38,0x80,0x21,0x00,0x30,0x00,0xF9,0xF7,0x4E,0xFD,0x28,0x80,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0xF8,0xB5,0x08,0xAD,0x60,0xCD,0x04,0x00,0x06,0x98,0x91,0x42, + 0x04,0xDA,0x25,0x80,0x66,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x99,0x42,0x02,0xDB, + 0x20,0x80,0x07,0x98,0x0F,0xE0,0x8F,0x1A,0x40,0x1B,0x78,0x43,0x99,0x1A,0x00,0x91, + 0xF9,0xF7,0x32,0xFD,0x40,0x19,0x20,0x80,0x07,0x98,0x00,0x99,0x80,0x1B,0x78,0x43, + 0xF9,0xF7,0x2A,0xFD,0x80,0x19,0x60,0x80,0xE5,0xE7,0x37,0xB5,0x00,0x2A,0x02,0xDA, + 0x50,0x42,0x02,0x04,0x12,0x14,0x6B,0x46,0x1C,0x79,0x58,0x79,0x94,0x42,0x04,0xDC, + 0x19,0x88,0x91,0x42,0x04,0xDA,0x02,0x20,0x18,0x5E,0x3E,0xBC,0x08,0xBC,0x18,0x47, + 0x5B,0x88,0x12,0x1B,0x09,0x1B,0x18,0x1A,0x50,0x43,0x00,0x04,0x00,0x14,0xF9,0xF7, + 0x0B,0xFD,0x20,0x18,0x00,0x04,0x00,0x14,0xEF,0xE7,0x00,0x00,0x82,0x79,0x0A,0x49, + 0x52,0x07,0x10,0xD5,0x0A,0x68,0x18,0x23,0xDA,0x41,0x01,0x23,0x5B,0x07,0xD2,0x18, + 0x08,0x23,0xDA,0x41,0x0A,0x60,0x43,0x79,0x01,0x20,0x5B,0x1E,0x98,0x40,0xC0,0x06, + 0xC0,0x0A,0x02,0x43,0x0A,0x60,0x70,0x47,0x58,0x07,0x00,0x20,0x30,0xB4,0x0E,0x4D, + 0x0C,0x4C,0x2D,0x78,0x45,0x43,0x68,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x00,0x0A, + 0x09,0x0E,0x82,0x18,0xC9,0x18,0x00,0x20,0x4B,0x1E,0xC0,0x43,0xFF,0x2B,0x06,0xD2, + 0x53,0x1E,0xFF,0x2B,0x03,0xD2,0x10,0x02,0x08,0x43,0x60,0x53,0x00,0x20,0x30,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x9C,0x94,0x00,0x00,0x10,0xB4,0x05,0x4C, + 0x03,0x4B,0x24,0x78,0x44,0x43,0x60,0x18,0x40,0x00,0x1A,0x52,0x10,0xBC,0x70,0x47, + 0x00,0x00,0x10,0x40,0x9C,0x94,0x00,0x00,0x30,0xB4,0x0E,0x4B,0x0C,0x4C,0x1B,0x78, + 0x43,0x43,0x58,0x18,0x43,0x00,0xE0,0x5A,0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A, + 0x82,0x18,0x00,0x20,0x4D,0x1E,0xC0,0x43,0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D, + 0x03,0xD2,0x10,0x02,0x08,0x43,0xE0,0x52,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0x9C,0x94,0x00,0x00,0xF0,0xB4,0x15,0x4A,0x00,0x21,0x13,0x79, + 0x14,0x00,0x40,0x3C,0x1E,0x02,0x1E,0x43,0x23,0x78,0x10,0x4D,0x43,0x43,0x12,0xE0, + 0x94,0x7A,0x8C,0x42,0x0D,0xD0,0xD4,0x7A,0x8C,0x42,0x0A,0xD0,0x14,0x7B,0x8C,0x42, + 0x07,0xD0,0x54,0x7B,0x8C,0x42,0x04,0xD0,0x94,0x7B,0x8C,0x42,0x01,0xD0,0x5C,0x00, + 0x2E,0x53,0x5B,0x1C,0x49,0x1C,0x06,0x4C,0x40,0x3C,0x24,0x78,0x27,0x00,0x47,0x43, + 0x3C,0x19,0x9C,0x42,0xE4,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0xDC,0x94,0x00,0x00,0xF0,0xB4,0x13,0x4A,0x00,0x21,0x14,0x79,0x15,0x00,0x10,0x4E, + 0x23,0x02,0x23,0x43,0x40,0x3D,0x13,0xE0,0x94,0x7A,0x8C,0x42,0x0D,0xD0,0xD4,0x7A, + 0x8C,0x42,0x0A,0xD0,0x14,0x7B,0x8C,0x42,0x07,0xD0,0x54,0x7B,0x8C,0x42,0x04,0xD0, + 0x94,0x7B,0x8C,0x42,0x01,0xD0,0x44,0x00,0x33,0x53,0x2C,0x78,0x20,0x18,0x49,0x1C, + 0x6C,0x78,0x2F,0x78,0x7C,0x43,0x84,0x42,0xE6,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0xDC,0x94,0x00,0x00,0x02,0x04,0x04,0x49,0x02,0x43,0x00,0x20, + 0x40,0x1C,0x04,0xC1,0xB5,0x28,0xFB,0xD3,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0x70,0xB5,0x1C,0x49,0x1C,0x4A,0x0C,0x00,0x54,0x34,0x70,0xCC,0x03,0x00,0x00,0xF0, + 0x99,0xFB,0x06,0x04,0x0A,0x10,0x16,0x20,0x28,0x1D,0x08,0x68,0x10,0x62,0xC8,0x69, + 0x50,0x62,0x88,0x6B,0x22,0xE0,0x48,0x68,0x10,0x62,0x08,0x6A,0x50,0x62,0xC8,0x6B, + 0x0A,0xE0,0x88,0x68,0x10,0x62,0x48,0x6A,0x50,0x62,0x08,0x6C,0x0E,0xE0,0xC8,0x68, + 0x10,0x62,0x88,0x6A,0x50,0x62,0x48,0x6C,0xD0,0x62,0x55,0x63,0x70,0xBC,0x08,0xBC, + 0x18,0x47,0x08,0x69,0x10,0x62,0xC8,0x6A,0x50,0x62,0x88,0x6C,0xD0,0x62,0x56,0x63, + 0xF4,0xE7,0x48,0x69,0x10,0x62,0x08,0x6B,0x50,0x62,0xC8,0x6C,0xD0,0x62,0x54,0x63, + 0xEC,0xE7,0x00,0x00,0x44,0x95,0x00,0x00,0x80,0x90,0x00,0x40,0x0A,0x49,0x30,0xB4, + 0x0B,0x69,0xFF,0x20,0x00,0x02,0x83,0x43,0x08,0x48,0x00,0x68,0x02,0x79,0x44,0x79, + 0x85,0x79,0x12,0x02,0x1A,0x43,0x0A,0x61,0xC0,0x79,0x2A,0x04,0x23,0x02,0x1A,0x43, + 0x02,0x43,0x4A,0x60,0x30,0xBC,0x70,0x47,0x00,0x90,0x00,0x40,0xE8,0x07,0x00,0x20, + 0x70,0xB5,0x20,0x4C,0x19,0x21,0x49,0x01,0x61,0x18,0x4B,0x7E,0x1E,0x4D,0x20,0x00, + 0x29,0x68,0x00,0x22,0xF4,0x30,0x02,0x2B,0x01,0xD9,0x89,0x8C,0x02,0xE0,0x02,0x2B, + 0x15,0xD1,0x49,0x8C,0xC1,0x80,0xE1,0x88,0x89,0x05,0x00,0xD5,0x64,0x22,0xFF,0x21, + 0x9D,0x31,0xC3,0x88,0x09,0x5B,0x59,0x18,0x89,0x18,0x01,0x80,0x29,0x68,0xC9,0x8C, + 0x41,0x80,0x41,0x88,0x02,0x88,0x91,0x42,0x0A,0xD2,0x81,0x80,0x09,0xE0,0x0F,0x4B, + 0x1B,0x78,0x00,0x2B,0x02,0xD0,0x0E,0x49,0x89,0x89,0xE3,0xE7,0x09,0x8C,0xE1,0xE7, + 0x82,0x80,0x29,0x68,0x20,0x89,0x40,0x31,0x89,0x7F,0x48,0x43,0x00,0xF0,0x20,0xFB, + 0xE0,0x1D,0xFF,0x30,0xFA,0x30,0xC1,0x80,0xE2,0x89,0x89,0x18,0xC1,0x80,0x70,0xBC, + 0x08,0xBC,0x18,0x47,0x40,0x00,0x00,0x20,0xE8,0x07,0x00,0x20,0xFA,0x07,0x00,0x20, + 0x1C,0x95,0x00,0x00,0xF0,0xB5,0x33,0x4E,0xE3,0x20,0xC0,0x00,0x85,0xB0,0x30,0x18, + 0x00,0x90,0x00,0x21,0x6B,0x46,0x30,0x48,0x99,0x80,0x19,0x81,0x82,0x8B,0x52,0x1E, + 0x12,0x04,0x12,0x14,0x5A,0x81,0xC0,0x8B,0x40,0x1E,0x04,0x04,0x2B,0x48,0x24,0x14, + 0xDC,0x80,0x00,0x78,0x00,0x28,0x09,0xD1,0x27,0x48,0x20,0x30,0xC0,0x7A,0x09,0x18, + 0x19,0x81,0x11,0x1A,0x98,0x80,0x20,0x1A,0x59,0x81,0xD8,0x80,0x1D,0x20,0x00,0x24, + 0x80,0x01,0x37,0x18,0xB8,0x89,0xE0,0x40,0xC0,0x07,0x2B,0xD0,0x20,0x49,0xA0,0x00, + 0x80,0x19,0x45,0x18,0x28,0x68,0x6B,0x46,0x00,0x02,0x00,0x0D,0x98,0x81,0x28,0x68, + 0x00,0x05,0x00,0x0D,0xD8,0x81,0x19,0x48,0x00,0x78,0x00,0x28,0x02,0xD1,0x03,0xA8, + 0xFF,0xF7,0x92,0xFA,0x01,0xA9,0x06,0xC9,0x03,0xA8,0x00,0xF0,0x8D,0xFA,0x03,0xA8, + 0x00,0xF0,0x00,0xF9,0x13,0x49,0x28,0x68,0x6B,0x46,0x08,0x40,0x99,0x89,0x09,0x05, + 0x09,0x0A,0x08,0x43,0x28,0x60,0xD9,0x89,0x00,0x0B,0x00,0x03,0x09,0x05,0x09,0x0D, + 0x08,0x43,0x28,0x60,0x00,0x98,0x00,0x68,0x00,0x04,0x00,0x0F,0xA0,0x42,0x04,0xD9, + 0x64,0x1C,0x24,0x06,0x24,0x0E,0x0A,0x2C,0xC4,0xD3,0x05,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0x9C,0x94,0x00,0x00,0xF9,0x07,0x00,0x20, + 0x1C,0x07,0x00,0x00,0xFF,0x0F,0x00,0xFF,0x09,0x48,0x0A,0x4A,0xC3,0x69,0x0A,0x49, + 0x93,0x42,0x07,0xD1,0x09,0x4B,0xDB,0x88,0x1B,0x07,0x01,0xD5,0xCB,0x68,0x00,0xE0, + 0x8B,0x68,0xC3,0x61,0x83,0x69,0x93,0x42,0x01,0xD1,0x49,0x68,0x81,0x61,0x70,0x47, + 0xF4,0x07,0x00,0x20,0xFF,0xFF,0x00,0x00,0x9C,0x94,0x00,0x00,0x40,0x00,0x00,0x20, + 0x08,0x48,0x10,0xB5,0xC4,0x68,0xE0,0x07,0x05,0xD0,0x07,0x48,0x40,0x78,0x00,0x28, + 0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x00,0xF0,0x08,0xF8,0x20,0x0C,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0xF4,0x07,0x00,0x20,0x1C,0x95,0x00,0x00,0x70,0xB4,0x0D,0x4A, + 0x0D,0x4C,0xD1,0x88,0x0D,0x4D,0x0E,0x4E,0x08,0x23,0x00,0x28,0x07,0xD0,0x0D,0x48, + 0x19,0x43,0xD1,0x80,0x20,0x60,0x0C,0x48,0x28,0x60,0x0C,0x48,0x06,0xE0,0x0C,0x48, + 0x99,0x43,0xD1,0x80,0x20,0x60,0x0B,0x48,0x28,0x60,0x0B,0x48,0x30,0x60,0x70,0xBC, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0xE8,0x07,0x00,0x20,0xEC,0x07,0x00,0x20, + 0xF0,0x07,0x00,0x20,0x9C,0x92,0x00,0x00,0xB8,0x93,0x00,0x00,0x50,0x94,0x00,0x00, + 0xCC,0x91,0x00,0x00,0x6C,0x93,0x00,0x00,0x04,0x94,0x00,0x00,0xF0,0xB5,0x05,0x00, + 0x85,0xB0,0x36,0x4E,0x0F,0x00,0x68,0x46,0xF9,0xF7,0x64,0xFF,0x00,0x20,0xFF,0xF7, + 0x7F,0xFE,0xFB,0xF7,0x59,0xFC,0x2C,0x00,0x68,0x00,0x04,0x90,0x46,0xE0,0x68,0x1E, + 0x84,0x42,0x01,0xD1,0xFB,0xF7,0x86,0xFC,0xFB,0xF7,0x1C,0xFC,0xFB,0xF7,0x94,0xFC, + 0x00,0x2F,0x2E,0xD1,0xA8,0x00,0x05,0x21,0xF9,0xF7,0x08,0xFC,0xA0,0x42,0x03,0xD8, + 0x01,0x22,0x11,0x00,0x04,0x20,0x21,0xE0,0x68,0x00,0x28,0x18,0x05,0x21,0xF9,0xF7, + 0xFD,0xFB,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x03,0x20,0x16,0xE0,0x04,0x98, + 0x05,0x21,0xF9,0xF7,0xF3,0xFB,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x02,0x20, + 0x0C,0xE0,0x05,0x21,0x28,0x00,0xF9,0xF7,0xE9,0xFB,0xA0,0x42,0x03,0xD8,0x01,0x22, + 0x11,0x00,0x10,0x00,0x02,0xE0,0x01,0x22,0x11,0x00,0x00,0x20,0xFB,0xF7,0xDA,0xF9, + 0x0C,0xE0,0x04,0x98,0x03,0x21,0xF9,0xF7,0xD9,0xFB,0xA0,0x42,0xDB,0xD9,0x03,0x21, + 0x28,0x00,0xF9,0xF7,0xD3,0xFB,0xA0,0x42,0xE9,0xD8,0xDE,0xE7,0x64,0x1E,0xB6,0xD2, + 0x0B,0x48,0xC4,0x8B,0x03,0xE0,0xFB,0xF7,0xD5,0xFB,0xFB,0xF7,0x4D,0xFC,0x64,0x1E, + 0xF9,0xD2,0xFB,0xF7,0xF9,0xFB,0x68,0x46,0xFF,0xF7,0x06,0xF9,0x00,0x20,0x30,0x71, + 0xF0,0x80,0x30,0x81,0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xDC,0x07,0x00,0x20, + 0xFC,0x94,0x00,0x00,0x15,0x49,0x18,0xB4,0x4A,0x7A,0x00,0x2A,0x23,0xD0,0x14,0x4B, + 0x92,0x07,0x04,0xD5,0x9A,0x8B,0x04,0x88,0x12,0x1B,0x52,0x1E,0x02,0x80,0x4A,0x7A, + 0x52,0x07,0x04,0xD5,0xDA,0x8B,0x43,0x88,0xD2,0x1A,0x52,0x1E,0x42,0x80,0x49,0x7A, + 0xC9,0x07,0x08,0xD0,0x01,0x88,0x6B,0x46,0x19,0x80,0x41,0x88,0x59,0x80,0x59,0x88, + 0x01,0x80,0x19,0x88,0x41,0x80,0x01,0x88,0x09,0x05,0x09,0x0D,0x01,0x80,0x41,0x88, + 0x09,0x05,0x09,0x0D,0x41,0x80,0x18,0xBC,0x70,0x47,0x00,0x00,0xBC,0x94,0x00,0x00, + 0x9C,0x94,0x00,0x00,0x02,0x49,0x00,0x03,0x40,0x18,0xC0,0x68,0x70,0x47,0x00,0x00, + 0x00,0x20,0x00,0x40,0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47,0x28,0x08,0x00,0x20, + 0x30,0xB4,0x05,0x03,0x05,0x48,0x02,0x9C,0x28,0x18,0x02,0x60,0x41,0x60,0x00,0x2B, + 0x00,0xD0,0x03,0x61,0x84,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x02,0x4A,0x00,0x03,0x80,0x18,0x01,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x06,0x49,0x02,0x03,0x51,0x18,0x8A,0x68,0xFF,0x23,0x01,0x33,0x1A,0x43,0x8A,0x60, + 0x02,0x28,0x02,0xD1,0x02,0x49,0x00,0x20,0x08,0x70,0x70,0x47,0x00,0x20,0x00,0x40, + 0x28,0x08,0x00,0x20,0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32, + 0x91,0x43,0x81,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0xF0,0xB4,0x19,0x49, + 0x19,0x4D,0x08,0x68,0x2B,0x7A,0x00,0x04,0x00,0x22,0x00,0x0F,0x98,0x42,0x01,0xD8, + 0x08,0x68,0x1E,0xE0,0x00,0x20,0x06,0x00,0x01,0x27,0x8B,0x8E,0x1C,0x00,0xC4,0x40, + 0xE4,0x07,0x0B,0xD0,0x2C,0x7A,0x94,0x42,0x07,0xD2,0x3C,0x00,0x84,0x40,0xA3,0x43, + 0x8B,0x86,0x83,0x00,0x5B,0x18,0x9E,0x60,0x00,0xE0,0x52,0x1C,0x40,0x1C,0x0A,0x28, + 0xEB,0xD3,0x0F,0x23,0x08,0x68,0x1B,0x03,0x12,0x07,0x98,0x43,0x12,0x0C,0x10,0x43, + 0x08,0x60,0x00,0x04,0x02,0x0F,0x03,0xD0,0x00,0x0F,0x40,0x1C,0x20,0x31,0x88,0x75, + 0xF0,0xBC,0x70,0x47,0x58,0x07,0x00,0x20,0xBC,0x94,0x00,0x00,0xF8,0xB5,0x12,0x49, + 0xD9,0x20,0xC0,0x00,0x0C,0x18,0xE3,0x20,0xC0,0x00,0x0D,0x18,0x0F,0x48,0x00,0x27, + 0x0E,0x18,0xFF,0x43,0x20,0x00,0x0C,0x22,0x39,0x00,0x44,0x30,0xF9,0xF7,0x22,0xFB, + 0x20,0x00,0x0C,0x22,0x39,0x00,0x38,0x30,0xF9,0xF7,0x1C,0xFB,0x00,0x20,0x40,0x36, + 0x20,0x34,0xB0,0x77,0xA0,0x7D,0x00,0x28,0x02,0xD0,0x01,0x20,0x20,0x35,0xA8,0x75, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x20,0x64,0x06,0x00,0x00, + 0x70,0xB5,0x05,0x00,0x08,0x48,0x00,0x22,0x04,0x04,0x24,0x0C,0x40,0x21,0x20,0x00, + 0xF9,0xF7,0xEA,0xFA,0x40,0x22,0x29,0x00,0x20,0x00,0x00,0x23,0xF9,0xF7,0xEC,0xFA, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x9F,0x00,0x00,0x02,0x4B,0x58,0x60, + 0x99,0x60,0x1A,0x60,0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40,0x01,0x04,0x00,0xB5, + 0x03,0x48,0x02,0x22,0x09,0x0C,0xFF,0xF7,0xF1,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xE1,0x04,0x00,0x00,0x04,0x48,0x00,0x78,0x00,0x28,0x04,0xD0,0x03,0x48,0x01,0x68, + 0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0xF6,0x07,0x00,0x20,0x00,0x30,0x00,0x40, + 0x04,0x48,0x00,0x78,0x00,0x28,0x04,0xD0,0x03,0x48,0x01,0x68,0x49,0x08,0x49,0x00, + 0x01,0x60,0x70,0x47,0xF6,0x07,0x00,0x20,0x00,0x30,0x00,0x40,0x04,0x49,0x09,0x78, + 0x00,0x29,0x03,0xD0,0x03,0x49,0x02,0x22,0x0A,0x61,0x88,0x60,0x70,0x47,0x00,0x00, + 0xF6,0x07,0x00,0x20,0x00,0x30,0x00,0x40,0xF8,0xB5,0x84,0x46,0x29,0x48,0x00,0x21, + 0x00,0x78,0x0C,0x00,0x0D,0x00,0x80,0x1E,0x00,0x06,0x00,0x0E,0x62,0x46,0x00,0x2A, + 0x8E,0x46,0x00,0xD0,0x49,0x1E,0x24,0x48,0x24,0x4F,0xC0,0x88,0x02,0x26,0x02,0x29, + 0x00,0x90,0x2B,0xDA,0x20,0x4A,0x60,0x46,0x40,0x18,0x1D,0x23,0x82,0x18,0x9B,0x01, + 0xD2,0x18,0x12,0x7C,0x05,0x2A,0x08,0xD2,0x83,0x00,0x1B,0x48,0x1B,0x18,0x1D,0x20, + 0x80,0x01,0x18,0x18,0x03,0x6A,0x96,0x2B,0x02,0xD3,0x01,0x20,0x86,0x46,0x05,0xE0, + 0xA2,0x42,0x00,0xD9,0x14,0x00,0xAB,0x42,0x00,0xD9,0x1D,0x00,0x49,0x1C,0x09,0x06, + 0x09,0x16,0xB1,0x42,0xDE,0xDB,0x70,0x46,0x00,0x28,0x07,0xD0,0x00,0x98,0x01,0x22, + 0x0D,0x49,0xD2,0x02,0x10,0x43,0xC8,0x80,0x00,0x20,0x03,0xE0,0x38,0x7E,0x0A,0x28, + 0x04,0xD2,0x40,0x1C,0x38,0x76,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x98,0x01,0x22, + 0x05,0x49,0xD2,0x02,0x90,0x43,0xC8,0x80,0x00,0x20,0x38,0x76,0x08,0x83,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x9C,0x94,0x00,0x00,0x40,0x00,0x00,0x20,0xC0,0x07,0x00,0x20, + 0x78,0x47,0xC0,0x46,0x1E,0xFF,0x2F,0xE1,0x07,0xB4,0x00,0x21,0x08,0x22,0x6B,0x46, + 0x41,0x5E,0x9A,0x5E,0x91,0x42,0x03,0xDB,0x0A,0x22,0x9A,0x5E,0x91,0x42,0x00,0xDD, + 0x02,0x80,0x02,0x21,0x04,0x22,0x6B,0x46,0x41,0x5E,0x9A,0x5E,0x91,0x42,0x03,0xDB, + 0x06,0x22,0x9A,0x5E,0x91,0x42,0x00,0xDD,0x42,0x80,0x03,0xB0,0x70,0x47,0x00,0x47, + 0x78,0x47,0xC0,0x46,0x14,0x30,0x9F,0xE5,0xC0,0x2F,0xA0,0xE1,0x93,0xC0,0xC1,0xE0, + 0x63,0x30,0xE0,0xE3,0xC1,0x12,0x62,0xE0,0x93,0x01,0x20,0xE0,0x1E,0xFF,0x2F,0xE1, + 0x1F,0x85,0xEB,0x51,0x78,0x47,0xC0,0x46,0x01,0xC0,0x5E,0xE5,0x0C,0x00,0x53,0xE1, + 0x03,0x30,0xDE,0x37,0x0C,0x30,0xDE,0x27,0x83,0xC0,0x8E,0xE0,0x1C,0xFF,0x2F,0xE1, + 0x78,0x47,0xC0,0x46,0x10,0x30,0x9F,0xE5,0x93,0x10,0x82,0xE0,0x63,0x30,0xE0,0xE3, + 0xA2,0x12,0xA0,0xE1,0x93,0x01,0x20,0xE0,0x1E,0xFF,0x2F,0xE1,0x1F,0x85,0xEB,0x51, + 0x10,0xB5,0xF9,0xF7,0x45,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xC5,0x6D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x00,0x6F,0x00, + 0xB9,0x00,0xF0,0x00,0x27,0x01,0x71,0x01,0xBB,0x01,0x27,0x00,0x73,0x00,0xBF,0x00, + 0x0B,0x01,0x57,0x01,0x90,0x01,0xC9,0x01,0x15,0x02,0x61,0x02,0xAD,0x02,0xF9,0x02, + 0x27,0x00,0x73,0x00,0xBF,0x00,0x0B,0x01,0x57,0x01,0x90,0x01,0xC9,0x01,0x15,0x02, + 0x61,0x02,0xAD,0x02,0xF9,0x02,0x00,0x00,0x38,0x48,0x41,0x6B,0xC9,0x07,0xFC,0xD0, + 0x41,0x6B,0x01,0x22,0x11,0x43,0x41,0x63,0x70,0x47,0x34,0x48,0xC2,0x69,0x41,0x14, + 0x8A,0x43,0xC2,0x61,0xC2,0x69,0x0A,0x43,0xC2,0x61,0xC2,0x69,0x8A,0x43,0xC2,0x61, + 0x70,0x47,0x10,0xB4,0x2D,0x4C,0x40,0x23,0x60,0x60,0x20,0x68,0x80,0x0A,0x80,0x02, + 0x10,0x43,0xA8,0x22,0x10,0x43,0x20,0x60,0x02,0xE0,0x08,0x78,0xA0,0x60,0x49,0x1C, + 0x5B,0x1E,0xFA,0xD2,0x10,0xBC,0x70,0x47,0xF0,0xB5,0x05,0x00,0x0E,0x00,0x1F,0x00, + 0x94,0x09,0x81,0x06,0x22,0x48,0x12,0xD1,0x91,0x06,0x10,0xD1,0x0C,0xE0,0x3A,0x00, + 0x31,0x00,0x28,0x00,0xFF,0xF7,0xDD,0xFF,0x40,0x35,0x2D,0x04,0x2D,0x0C,0x40,0x36, + 0xFF,0xF7,0xC2,0xFF,0xFF,0xF7,0xC9,0xFF,0x64,0x1E,0x60,0x1C,0xEF,0xD1,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x15,0x4B,0x40,0x22,0x58,0x60,0x18,0x68,0x80,0x0A,0x80,0x02, + 0x08,0x43,0xA4,0x21,0x08,0x43,0x18,0x60,0x00,0x21,0x00,0xE0,0x99,0x60,0x52,0x1E, + 0xFC,0xD2,0x70,0x47,0x70,0xB5,0x05,0x00,0x16,0x00,0x8C,0x09,0x82,0x06,0x0C,0x48, + 0x10,0xD1,0x89,0x06,0x0E,0xD1,0x0A,0xE0,0x31,0x00,0x28,0x00,0xFF,0xF7,0xE2,0xFF, + 0x40,0x35,0x2D,0x04,0x2D,0x0C,0xFF,0xF7,0x97,0xFF,0xFF,0xF7,0x9E,0xFF,0x64,0x1E, + 0x60,0x1C,0xF1,0xD1,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x70,0x00,0x40, + 0xFF,0xFF,0xFF,0xFF,0x89,0x08,0x49,0x1E,0x49,0x04,0x01,0x22,0x49,0x08,0xD2,0x07, + 0x89,0x18,0x00,0x04,0x00,0x0C,0x01,0x43,0x03,0x48,0x41,0x61,0x41,0x69,0x00,0x29, + 0xFC,0xDB,0x80,0x6B,0x70,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0xFF,0x10,0x01,0xE2,0x01,0x20,0x52,0xE2,0x01,0x10,0xC0,0xE4, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2, + 0x1E,0xFF,0x2F,0x31,0x01,0x18,0xA0,0xE1,0x21,0x18,0xA0,0xE1,0x01,0x20,0x52,0xE2, + 0xB2,0x10,0xC0,0xE0,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x42,0x21,0xA0,0xE1, + 0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31,0x01,0x20,0x52,0xE2,0x04,0x10,0x80,0xE4, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0x01,0x30,0xD1,0xE4,0x01,0x20,0x52,0xE2,0x01,0x30,0xC0,0xE4,0xFB,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0xB2,0x30,0xD1,0xE0,0x01,0x20,0x52,0xE2,0xB2,0x30,0xC0,0xE0,0xFB,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x42,0x21,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0x04,0x30,0x91,0xE4,0x01,0x20,0x52,0xE2,0x04,0x30,0x80,0xE4,0xFB,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0xC2,0x20,0xA0,0xE1,0x01,0x20,0x52,0xE2,0x1E,0xFF,0x2F,0x31, + 0xB2,0x30,0xD1,0xE0,0x01,0x20,0x52,0xE2,0x04,0x30,0x80,0xE4,0xFB,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x41,0x11,0xA0,0xE1,0x01,0x10,0x51,0xE2,0x1E,0xFF,0x2F,0x31, + 0x00,0x20,0xA0,0xE3,0x01,0x10,0x51,0xE2,0x04,0x20,0x80,0xE4,0xFC,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x30,0x00,0x2D,0xE9,0x90,0xC0,0x9F,0xE5,0x88,0x40,0x9F,0xE5, + 0x00,0x00,0x9C,0xE5,0x88,0x00,0x9F,0xE5,0x01,0x10,0xD0,0xE5,0x00,0x00,0xD0,0xE5, + 0x91,0x00,0x00,0xE0,0x01,0x00,0x50,0xE2,0x30,0x00,0xBD,0x48,0x1E,0xFF,0x2F,0x41, + 0x70,0x30,0x9F,0xE5,0x70,0x20,0x9F,0xE5,0x00,0x11,0x9C,0xE7,0x80,0x50,0x83,0xE0, + 0xB0,0x10,0xC5,0xE1,0x00,0x11,0x94,0xE7,0x80,0x50,0x82,0xE0,0x01,0x00,0x50,0xE2, + 0xB0,0x10,0xC5,0xE1,0xF7,0xFF,0xFF,0x5A,0x30,0x00,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x3C,0x00,0x9F,0xE5,0x30,0x20,0x9F,0xE5,0x01,0x10,0xD0,0xE5,0x00,0x00,0xD0,0xE5, + 0x91,0x00,0x00,0xE0,0x01,0x00,0x50,0xE2,0x1E,0xFF,0x2F,0x41,0x2C,0x10,0x9F,0xE5, + 0x00,0x31,0x92,0xE7,0x80,0xC0,0x81,0xE0,0x23,0x38,0xA0,0xE1,0x01,0x00,0x50,0xE2, + 0xB0,0x30,0xCC,0xE1,0xF9,0xFF,0xFF,0x5A,0x1E,0xFF,0x2F,0xE1,0xD4,0x02,0x10,0x40, + 0x00,0x10,0x10,0x40,0x9C,0x94,0x00,0x00,0x2A,0x08,0x00,0x20,0x00,0x00,0x00,0x10, + 0xD2,0x02,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x05,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x9D,0x39,0x00,0x00, + 0x78,0x79,0x7A,0x00,0x64,0x32,0x64,0x32,0x19,0x00,0x4B,0x00,0x32,0x00,0x05,0x00, + 0x64,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x14,0x00,0x40,0x01,0xF4,0x01, + 0xF4,0x01,0xC2,0x01,0x2D,0x00,0x64,0x00,0x00,0x00,0x4B,0x00,0xFF,0x0F,0x32,0x00, + 0x19,0x00,0x01,0x00,0x0A,0x02,0x0A,0x01,0x32,0x0A,0x88,0x13,0xE8,0x03,0x00,0x96, + 0x96,0x96,0x96,0x00,0x96,0x96,0x96,0xB4,0x01,0x01,0x0A,0x00,0x50,0x00,0xF4,0x01, + 0xFF,0xFF,0x14,0x96,0x00,0x05,0x04,0x0A,0x0A,0x06,0x3C,0x00,0x2C,0x01,0x00,0x09, + 0x28,0x05,0x28,0x00,0x96,0x00,0x58,0x02,0x96,0x00,0x32,0x00,0x28,0x00,0x28,0x00, + 0x32,0x00,0x96,0x00,0x05,0x02,0x01,0x02,0x01,0x00,0x78,0x00,0xF0,0x00,0x14,0x00, + 0x50,0x00,0xDC,0x00,0x1E,0x00,0x32,0x00,0x64,0x00,0x14,0x04,0xFD,0x02,0x00,0x03, + 0x14,0x02,0x04,0x06,0x05,0x00,0x14,0x00,0x01,0x02,0x03,0x02,0x00,0x03,0x03,0x06, + 0x06,0x09,0x09,0x0C,0x0C,0x1E,0x55,0x01,0x03,0x00,0x05,0x02,0x05,0x0A,0x01,0x01, + 0x04,0x00,0x64,0x00,0x0C,0x05,0x1E,0x00,0x05,0x0A,0x01,0x00,0xA0,0x0F,0xD0,0x07, + 0xF4,0x01,0xC8,0x00,0xFF,0x00,0xC8,0x00,0x05,0x00,0x01,0x00,0x9D,0x39,0x00,0x00, + 0x78,0x79,0x7A,0x00,0x64,0x32,0x64,0x32,0x19,0x00,0x4B,0x00,0x32,0x00,0x05,0x00, + 0x64,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x18,0x01,0x14,0x00,0x68,0x01,0xF4,0x01, + 0xF4,0x01,0xC2,0x01,0x32,0x00,0x64,0x00,0x00,0x00,0x50,0x00,0xFF,0x0F,0x32,0x00, + 0x19,0x00,0x01,0x00,0x0A,0x02,0x0A,0x01,0x32,0x0A,0x88,0x13,0xF4,0x01,0x00,0x96, + 0x96,0x96,0x96,0x00,0xFF,0xFF,0xFF,0xFF,0x01,0x01,0x1E,0x00,0xC8,0x00,0xF4,0x01, + 0xFA,0xFA,0x0D,0xA0,0x00,0x05,0x04,0x0A,0x02,0x06,0x3C,0x00,0x2C,0x01,0x00,0x09, + 0x28,0x05,0x28,0x00,0x96,0x00,0x58,0x02,0x96,0x00,0x32,0x00,0x28,0x00,0x28,0x00, + 0x32,0x00,0x96,0x00,0x05,0x02,0x01,0x02,0x01,0x00,0x78,0x00,0xF0,0x00,0x14,0x00, + 0x50,0x00,0xDC,0x00,0x1E,0x00,0x32,0x00,0x64,0x00,0x14,0x04,0xFD,0x02,0x00,0x03, + 0x14,0x02,0x04,0x06,0x05,0x00,0x14,0x00,0x01,0x02,0x03,0x02,0x00,0x05,0x05,0x0A, + 0x0A,0x0F,0x0F,0x14,0x14,0x19,0x55,0x01,0x05,0x00,0x05,0x02,0x05,0x0A,0x01,0x01, + 0x04,0x00,0x64,0x00,0x0C,0x05,0x1E,0x00,0x05,0x0A,0x01,0x00,0xA0,0x0F,0xD0,0x07, + 0xF4,0x01,0xC8,0x00,0xFF,0x00,0xC8,0x00,0x05,0x00,0x2C,0x01,0x41,0x22,0x01,0x00, + 0x00,0x00,0x10,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x18,0x18,0x88,0x00, + 0x30,0x7F,0x10,0x3F,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00, + 0x00,0x00,0x04,0x81,0x01,0x00,0x00,0x00,0x00,0x80,0x00,0x03,0xC8,0x40,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0xC8,0x80,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x22,0x01,0x00,0x00,0x00,0x10,0x00, + 0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x10,0x10,0x88,0x00,0x30,0x7F,0x10,0x3F, + 0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x04,0x81, + 0x01,0x00,0x00,0x00,0x00,0x80,0x00,0x03,0xC8,0x40,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0xC8,0x80,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x41,0x22,0x01,0x00,0x00,0x00,0x10,0x00,0xFF,0x00,0x30,0x00, + 0xFF,0x05,0xFF,0x03,0x18,0x18,0x88,0x00,0x30,0x7F,0x10,0x3F,0x10,0x00,0x10,0x00, + 0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x04,0x81,0x01,0x00,0x00,0x00, + 0x00,0x80,0x00,0x03,0xC8,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x80,0x00,0x00,0xC8,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x41,0x22,0x01,0x00,0x00,0x00,0x10,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03, + 0x10,0x10,0x88,0x00,0x30,0x7F,0x10,0x3F,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00, + 0x10,0x00,0x10,0x00,0x00,0x00,0x04,0x81,0x01,0x00,0x00,0x00,0x00,0x80,0x00,0x03, + 0xC8,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00, + 0xC8,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x15,0x01,0x08, + 0x10,0x27,0x00,0x00,0x10,0x27,0x00,0x00,0x10,0x27,0x00,0x00,0xE0,0x93,0x04,0x00, + 0x80,0x96,0x98,0x00,0x30,0x75,0x00,0x00,0xE0,0x01,0x20,0x03,0x00,0x00,0x0C,0x00, + 0x00,0x00,0x05,0x00,0x05,0x00,0x03,0x02,0x7C,0x00,0x8C,0x00,0x00,0x00,0x03,0x00, + 0x30,0x00,0x50,0x00,0x00,0x00,0x00,0x00,0xDC,0x05,0x04,0xC8,0xC8,0x97,0x97,0x01, + 0x5A,0x03,0x02,0x00,0xDC,0x05,0x13,0x14,0xFF,0xFF,0xFF,0xDC,0x44,0x36,0x16,0x07, + 0x46,0x37,0x16,0x07,0x46,0x37,0x15,0x07,0x45,0x37,0x15,0x07,0x44,0x37,0x14,0x07, + 0x46,0x38,0x14,0x07,0x46,0x38,0x13,0x07,0x45,0x38,0x13,0x07,0x00,0x00,0x00,0x00, + 0x0A,0x00,0x32,0x00,0x50,0x00,0x32,0x00,0x50,0x00,0x0A,0x00,0x1E,0x01,0x14,0x00, + 0x00,0x00,0x2C,0x01,0x00,0x00,0x2C,0x01,0x5E,0x01,0x00,0x00,0x64,0x00,0x64,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0x5A,0x5A, + 0x5A,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x01,0x00,0x00, + 0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x02,0x00,0x00, + 0x22,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x26,0x00,0x00,0x00, + 0x26,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x60,0x0F,0x00,0x00, + 0x60,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x41,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFF,0x0F,0x02,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x15,0x0E,0x15,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x01,0x00,0x00,0x28,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x60,0x0F,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x22,0x01,0x00, + 0x00,0x00,0x10,0x00,0xFF,0x00,0x30,0x00,0xFF,0x05,0xFF,0x03,0x18,0x18,0x88,0x00, + 0x30,0x7F,0x10,0x3F,0x10,0x00,0x10,0x00,0x00,0x00,0x04,0x81,0x00,0x00,0xFF,0x0F, + 0x01,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xC8,0x00,0x00,0x01,0x00,0x00,0x08,0x00, + 0x11,0x30,0x10,0x00,0x42,0x80,0x01,0x00,0xFF,0xFF,0xFF,0x10,0xFF,0xFF,0xFF,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x54,0x55,0x45,0x00,0x10,0x10,0x00,0x00,0x00,0x70,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x14,0x00,0x00,0x0C,0x0C,0x06,0x00, + 0x00,0x01,0x03,0x02,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0xC0,0xDA,0x00,0x00, + 0x50,0x31,0x20,0x01,0x50,0x38,0x20,0x08,0x50,0x31,0x20,0x01,0x50,0x31,0x20,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, + 0xD0,0x07,0x08,0x00,0x12,0x12,0xC8,0x01,0x90,0x81,0x0C,0x00,0x00,0x08,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x40,0x00,0x03,0xC8,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x40,0x00,0x00,0x64,0x40,0x00,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01,0x50,0x31,0x20,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x3F,0x27,0x27, + 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x3F,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x3F,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x3F,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x3F,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F,0x24,0x24,0x24,0x24,0x24,0x24, + 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x3F,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, + 0x24,0x24,0x24,0x24,0x24,0x3F,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, + 0x24,0x24,0x24,0x3F,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23, + 0x23,0x3F,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x3F, + 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x3F,0x27,0x27, + 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x3F,0x27,0x27,0x27,0x27, + 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x3F,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x44,0xC8,0x61,0x14,0x44, + 0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0xC8,0x61,0x14,0x04,0x00,0xC0,0xA1,0xDF, + 0x21,0x2C,0xA2,0xDF,0x42,0xBC,0xA2,0xDF,0x63,0x28,0xA3,0xDF,0x84,0xB8,0xA3,0xDF, + 0xA5,0x24,0xA4,0xDF,0xC6,0xB4,0xA4,0xDF,0xE7,0x20,0xA5,0xDF,0x08,0xB1,0xA5,0xDF, + 0x29,0x9D,0xA8,0xDF,0x4A,0x01,0xA9,0xDF,0x6B,0x99,0xA9,0xDF,0x8C,0x05,0xAA,0xDF, + 0xAD,0x95,0xAA,0xDF,0xCE,0x09,0xA0,0xDF,0xEF,0x11,0xA0,0xDF,0x10,0x0E,0xA0,0xDF, + 0x31,0x46,0xA0,0xDF,0x52,0x52,0xA0,0xDF,0x73,0x4A,0xA0,0xDF,0x94,0x4E,0xA0,0xDF, + 0xB5,0x02,0xA0,0xDF,0xD6,0x02,0xA0,0xDF,0xF7,0x02,0xA0,0xDF,0x00,0x08,0x00,0x00, + 0x00,0x80,0x01,0x00,0x00,0x0C,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x06,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x30,0x00,0x00,0x80,0x01,0x00,0x00, + 0x01,0x10,0x00,0x00,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x06,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00,0x02,0x00, + 0x08,0x00,0x10,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x1E,0x00, + 0xF8,0x0F,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x30, + 0x65,0x60,0x05,0x00,0x00,0x00,0x00,0x00,0x30,0x60,0x30,0x60,0x60,0x30,0x60,0x30, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, + 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, + 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, + 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, + 0x01,0x00,0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, + 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0B,0x38,0x30,0x00,0x00,0x00,0x05,0x00, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47,0x00,0x00,0x00,0x00,0xC0,0x91,0x00,0x00, + 0xC0,0x9F,0x00,0x00,0x40,0x00,0x00,0x00,0xC0,0x91,0x00,0x00,0x00,0x04,0x00,0x00, + 0xC0,0x95,0x00,0x00,0x00,0x01,0x00,0x00,0xC0,0x96,0x00,0x00,0x00,0x02,0x00,0x00, + 0xC0,0x98,0x00,0x00,0x00,0x04,0x00,0x00,0x4F,0x00,0x94,0x00,0x00,0x00,0x00,0x00, + 0x1F,0x07,0xDE,0x07,0x14,0x24,0x0B,0x00,0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47 +}; + +#endif // __IST30XXB_FW_H__ diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx.c b/drivers/input/touchscreen/ist30xxa/ist30xx.c new file mode 100644 index 00000000..21bb82ae --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx.c @@ -0,0 +1,1339 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xx.h" +#include "ist30xx_update.h" +#include "ist30xx_tracking.h" + +#ifdef CONFIG_OF +#include +#include +#endif + +#if IST30XX_DEBUG +#include "ist30xx_misc.h" +#endif +#if IST30XX_CMCS_TEST +#include "ist30xx_cmcs.h" +#endif +#if SEC_FACTORY_MODE +#include "ist30xx_sec.h" +extern int sec_touch_sysfs(struct ist30xx_data *data); +extern int sec_fac_cmd_init(struct ist30xx_data *data); +#endif + +#define MAX_ERR_CNT (100) + +#if IST30XX_USE_KEY +int ist30xx_key_code[] = { 0, KEY_MENU, KEY_BACK }; +#endif + +DEFINE_MUTEX(ist30xx_mutex); + +volatile bool ist30xx_irq_working = false; +static bool ist30xx_initialized = 0; +struct ist30xx_data *ts_data; +static struct delayed_work work_reset_check; +#if IST30XX_EVENT_MODE +static struct delayed_work work_noise_protect, work_debug_algorithm; +#endif + +static int ist30xx_power_status = -1; +static int ist30xx_ta_status = -1; +static int ist30xx_noise_mode = -1; + +#if IST30XX_INTERNAL_BIN && IST30XX_UPDATE_BY_WORKQUEUE +static struct delayed_work work_fw_update; +#endif + +int ist30xx_report_rate = -1; +int ist30xx_idle_rate = -1; + +u32 event_ms = 0, timer_ms = 0; +u32 ist30xx_scan_count = 0; +int ist30xx_scan_retry = 0; + +#if IST30XX_EVENT_MODE +static struct timer_list event_timer; +static struct timespec t_current; // ns +int timer_period_ms = 500; // 0.5sec +#define EVENT_TIMER_INTERVAL (HZ * timer_period_ms / 1000) +#endif // IST30XX_EVENT_MODE + +char *ist_vdd_name = "vddsim2"; + +#if IST30XX_DEBUG +extern TSP_INFO ist30xx_tsp_info; +extern TKEY_INFO ist30xx_tkey_info; +#endif + + +int ist30xx_dbg_level = IST30XX_DEBUG_LEVEL; +void tsp_printk(int level, const char *fmt, ...) +{ + struct va_format vaf; + va_list args; + int r; + + if (ist30xx_dbg_level < level) + return; + + va_start(args, fmt); + + vaf.fmt = fmt; + vaf.va = &args; + + r = printk("%s %pV", IST30XX_DEBUG_TAG, &vaf); + + va_end(args); +} + +long get_milli_second(void) +{ +#if IST30XX_EVENT_MODE + ktime_get_ts(&t_current); + + return t_current.tv_sec * 1000 + t_current.tv_nsec / 1000000; +#else + return 0; +#endif // IST30XX_EVENT_MODE +} + +int ist30xx_intr_wait(long ms) +{ + long start_ms = get_milli_second(); + long curr_ms = 0; + + while (1) { + if (!ist30xx_irq_working) + break; + + curr_ms = get_milli_second(); + if ((curr_ms < 0) || (start_ms < 0) || (curr_ms - start_ms > ms)) { + tsp_info("%s() timeout(%dms)\n", __func__, ms); + return -EPERM; + } + + msleep(2); + } + return 0; +} + +void ist30xx_disable_irq(struct ist30xx_data *data) +{ + if (likely(data->irq_enabled)) { + ist30xx_tracking(TRACK_INTR_DISABLE); + disable_irq(data->client->irq); + data->irq_enabled = 0; + data->status.event_mode = false; + } +} + +void ist30xx_enable_irq(struct ist30xx_data *data) +{ + if (likely(!data->irq_enabled)) { + ist30xx_tracking(TRACK_INTR_ENABLE); + enable_irq(data->client->irq); + msleep(10); + data->irq_enabled = 1; + data->status.event_mode = true; + } +} + +int ist30xx_max_error_cnt = MAX_ERR_CNT; +int ist30xx_error_cnt = 0; +void ist30xx_scheduled_reset(void) +{ + if (likely(ist30xx_initialized)) + schedule_delayed_work(&work_reset_check, 0); +} + +static void ist30xx_request_reset(void) +{ + ist30xx_error_cnt++; + if (unlikely(ist30xx_error_cnt >= ist30xx_max_error_cnt)) { + tsp_info("%s()\n", __func__); + ist30xx_scheduled_reset(); + ist30xx_error_cnt = 0; + } +} + +#define NOISE_MODE_TA (0) +#define NOISE_MODE_CALL (1) +#define NOISE_MODE_COVER (2) +#define NOISE_MODE_POWER (8) +void ist30xx_start(struct ist30xx_data *data) +{ + if (ist30xx_initialized) { +#if IST30XX_EVENT_MODE + ist30xx_scan_count = 0; + ist30xx_scan_retry = 0; + mod_timer(&event_timer, get_jiffies_64() + EVENT_TIMER_INTERVAL * 2); +#endif + } + + ist30xx_tracking(ist30xx_ta_status ? + TRACK_CMD_TACON : TRACK_CMD_TADISCON); + + ist30xx_noise_mode &= ~(1 << NOISE_MODE_TA); + ist30xx_noise_mode |= (ist30xx_ta_status << NOISE_MODE_TA); + + ist30xx_noise_mode &= ~(1 << NOISE_MODE_POWER); + ist30xx_noise_mode |= (ist30xx_power_status << NOISE_MODE_POWER); + + ist30xx_noise_mode |= (TSP_LOCAL_CODE << 16); + ist30xx_write_cmd(data->client, CMD_SET_NOISE_MODE, ist30xx_noise_mode); + + tsp_info("%s(), local : %d, mode : 0x%x\n", __func__, + (ist30xx_noise_mode >> 16) & 0xFFFF, ist30xx_noise_mode & 0xFFFF); + + if (ist30xx_report_rate >= 0) { + ist30xx_write_cmd(data->client, CMD_SET_REPORT_RATE, + ist30xx_report_rate); + tsp_info(" reporting rate : %dus\n", ist30xx_report_rate); + } + + if (ist30xx_idle_rate >= 0) { + ist30xx_write_cmd(data->client, CMD_SET_IDLE_TIME, ist30xx_idle_rate); + tsp_info(" idle rate : %dus\n", ist30xx_idle_rate); + } + + ist30xx_cmd_start_scan(data->client); +} + + +int ist30xx_get_ver_info(struct ist30xx_data *data) +{ + int ret; + + data->fw.prev_core_ver = data->fw.core_ver; + data->fw.prev_param_ver = data->fw.param_ver; + data->fw.core_ver = data->fw.param_ver = 0; + + ret = ist30xx_read_cmd(data->client, CMD_GET_FW_VER, &data->fw.core_ver); + if (unlikely(ret)) + return ret; + + ret = ist30xx_read_cmd(data->client, CMD_GET_PARAM_VER, + &data->fw.param_ver); + if (unlikely(ret)) + return ret; + + ret = ist30xx_read_cmd(data->client, CMD_GET_SUB_VER, &data->fw.sub_ver); + if (unlikely(ret)) + return ret; + + tsp_info("IC version read core: %x, param: %x, sub: %x\n", + data->fw.core_ver, data->fw.param_ver, data->fw.sub_ver); + + return 0; +} + +#if IST30XX_DEBUG +void ist30xx_print_info(void) +{ + TSP_INFO *tsp = &ist30xx_tsp_info; + TKEY_INFO *tkey = &ist30xx_tkey_info; + + tsp_info("*** TSP/TKEY info ***\n"); + tsp_info("tscn finger num : %d\n", tsp->finger_num); + tsp_info("tscn dir swap: %d, flip x: %d, y: %d\n", + tsp->dir.swap_xy, tsp->dir.flip_x, tsp->dir.flip_y); + tsp_info("tscn ch_num tx: %d, rx: %d\n", + tsp->ch_num.tx, tsp->ch_num.rx); + tsp_info("tscn width: %d, height: %d\n", + tsp->width, tsp->height); + tsp_info("tkey enable: %d, key num: %d, axis rx: %d \n", + tkey->enable, tkey->key_num, tkey->axis_rx); + tsp_info("tkey ch_num[0] %d, [1] %d, [2] %d, [3] %d, [4] %d\n", + tkey->ch_num[0], tkey->ch_num[1], tkey->ch_num[2], + tkey->ch_num[3], tkey->ch_num[4]); +} +#endif + +#define CALIB_MSG_MASK (0xF0000FFF) +#define CALIB_MSG_VALID (0x80000CAB) +#define TRACKING_INTR_VALID (0x127EA597) +u32 tracking_intr_value = TRACKING_INTR_VALID; +int ist30xx_get_info(struct ist30xx_data *data) +{ + int ret; + u32 calib_msg; + u32 ms; + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + +#if IST30XX_INTERNAL_BIN +#if IST30XX_DEBUG +#if IST30XX_UPDATE_BY_WORKQUEUE + ist30xx_get_update_info(data, data->fw.buf, data->fw.buf_size); +#endif + ist30xx_get_tsp_info(data); + ist30xx_get_tkey_info(data); +#endif // IST30XX_DEBUG +#else + + ret = ist30xx_get_ver_info(data); + if (unlikely(ret)) + goto get_info_end; + +#if IST30XX_DEBUG + ret = ist30xx_tsp_update_info(); + if (unlikely(ret)) + goto get_info_end; + + ret = ist30xx_tkey_update_info(); + if (unlikely(ret)) + goto get_info_end; +#endif // IST30XX_DEBUG +#endif // IST30XX_INTERNAL_BIN + +#if IST30XX_DEBUG + ist30xx_print_info(); + data->max_fingers = ist30xx_tsp_info.finger_num; + data->max_keys = ist30xx_tkey_info.key_num; +#endif // IST30XX_DEBUG + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_CALIB_RESULT, &calib_msg); + if (likely(ret == 0)) { + tsp_info("calib status: 0x%08x\n", calib_msg); + ms = get_milli_second(); + ist30xx_put_track_ms(ms); + ist30xx_put_track(&tracking_intr_value, 1); + ist30xx_put_track(&calib_msg, 1); + if ((calib_msg & CALIB_MSG_MASK) != CALIB_MSG_VALID || + CALIB_TO_STATUS(calib_msg) > 0) { + ist30xx_calibrate(IST30XX_FW_UPDATE_RETRY); + ist30xx_reset(false); + } + } + +#if (IST30XX_EVENT_MODE && IST30XX_CHECK_CALIB) + if (likely(!data->status.update)) { + ret = ist30xx_cmd_check_calib(data->client); + if (likely(!ret)) { + data->status.calib = 1; + data->status.calib_msg = 0; + event_ms = (u32)get_milli_second(); + data->status.event_mode = true; + } + } +#else + ist30xx_start(ts_data); +#endif + +#if !(IST30XX_INTERNAL_BIN) +get_info_end: +#endif + if (likely(ret == 0)) + ist30xx_enable_irq(data); + mutex_unlock(&ist30xx_mutex); + + return ret; +} + +#define PRESS_MSG_MASK (0x01) +#define MULTI_MSG_MASK (0x02) +#define PRESS_MSG_KEY (0x6) +#define TOUCH_DOWN_MESSAGE ("p") +#define TOUCH_UP_MESSAGE ("r") +#define TOUCH_MOVE_MESSAGE (" ") +bool tsp_touched[IST30XX_MAX_MT_FINGERS] = { false, }; +bool tkey_pressed[IST30XX_MAX_KEYS] = { false, }; +void print_tsp_event(finger_info *finger) +{ + int idx = finger->bit_field.id - 1; + bool press; + + press = PRESSED_FINGER(ts_data->t_status, finger->bit_field.id); + + if (press) { + if (tsp_touched[idx] == false) { // touch down + tsp_notc("%s%d (%d, %d)\n", + TOUCH_DOWN_MESSAGE, finger->bit_field.id, + finger->bit_field.x, finger->bit_field.y); + tsp_touched[idx] = true; + } else { // touch move + tsp_debug("%s%d (%d, %d)\n", + TOUCH_MOVE_MESSAGE, finger->bit_field.id, + finger->bit_field.x, finger->bit_field.y); + } + } else { + if (tsp_touched[idx] == true) { // touch up + tsp_notc("%s%d\n", TOUCH_UP_MESSAGE, finger->bit_field.id); + tsp_touched[idx] = false; + } + } +} + +void print_tkey_event(int id) +{ + int idx = id - 1; + bool press = PRESSED_KEY(ts_data->t_status, id); + + if (press) { + if (tkey_pressed[idx] == false) { // tkey down + tsp_notc("k %s%d\n", TOUCH_DOWN_MESSAGE, id); + tkey_pressed[idx] = true; + } + } else { + if (tkey_pressed[idx] == true) { // tkey up + tsp_notc("k %s%d\n", TOUCH_UP_MESSAGE, id); + tkey_pressed[idx] = false; + } + } +} + +static void release_finger(int id) +{ + input_mt_slot(ts_data->input_dev, id - 1); + input_mt_report_slot_state(ts_data->input_dev, MT_TOOL_FINGER, false); + + ist30xx_tracking(TRACK_POS_FINGER + id); + tsp_info("%s() %d\n", __func__, id); + + tsp_touched[id - 1] = false; + + input_sync(ts_data->input_dev); +} + +#define CANCEL_KEY (0xFF) +#define RELEASE_KEY (0) +static void release_key(int id, u8 key_status) +{ + input_report_key(ts_data->input_dev, ist30xx_key_code[id], key_status); + + ist30xx_tracking(TRACK_POS_KEY + id); + tsp_info("%s() key%d, status: %d\n", __func__, id, key_status); + + tkey_pressed[id - 1] = false; + + input_sync(ts_data->input_dev); +} + +static void clear_input_data(struct ist30xx_data *data) +{ + int id = 1; + u32 status; + + status = PARSE_FINGER_STATUS(data->t_status); + while (status) { + if (status & 1) + release_finger(id); + status >>= 1; + id++; + } + + id = 1; + status = PARSE_KEY_STATUS(data->t_status); + while (status) { + if (status & 1) + release_key(id, RELEASE_KEY); + status >>= 1; + id++; + } + data->t_status = 0; +} + +static int check_report_fingers(struct ist30xx_data *data, int finger_counts) +{ + int i; + finger_info *fingers = (finger_info *)data->fingers; + + /* current finger info */ + for (i = 0; i < finger_counts; i++) { + if (unlikely((fingers[i].bit_field.x > IST30XX_MAX_X) || + (fingers[i].bit_field.y > IST30XX_MAX_Y))) { + tsp_warn("Invalid touch data - %d: %d(%d, %d), 0x%08x\n", i, + fingers[i].bit_field.id, + fingers[i].bit_field.x, + fingers[i].bit_field.y, + fingers[i].full_field); + + fingers[i].bit_field.id = 0; + ist30xx_tracking(TRACK_POS_UNKNOWN); + return -EPERM; + } + } + + return 0; +} + +static int check_valid_coord(u32 *msg, int cnt) +{ + int ret = 0; + u8 *buf = (u8 *)msg; + u8 chksum1 = msg[0] >> 24; + u8 chksum2 = 0; + + msg[0] &= 0x00FFFFFF; + + cnt *= IST30XX_DATA_LEN; + + while (cnt--) + chksum2 += *buf++; + + if (chksum1 != chksum2) { + tsp_err("intr chksum: %02x, %02x\n", chksum1, chksum2); + ret = -EPERM; + } + + return (chksum1 == chksum2) ? 0 : -EPERM; +} + +static void report_input_data(struct ist30xx_data *data, int finger_counts, + int key_counts) +{ + int id; + bool press = false; + finger_info *fingers = (finger_info *)data->fingers; + int idx = 0; + u32 status; + + status = PARSE_FINGER_STATUS(data->t_status); + for (id = 0; id < IST30XX_MAX_MT_FINGERS; id++) { + press = (status & (1 << id)) ? true : false; + + input_mt_slot(data->input_dev, id); + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, press); + + fingers[idx].bit_field.id = id + 1; + print_tsp_event(&fingers[idx]); + + if (press == false) + continue; + + input_report_abs(data->input_dev, ABS_MT_POSITION_X, + fingers[idx].bit_field.x); + input_report_abs(data->input_dev, ABS_MT_POSITION_Y, + fingers[idx].bit_field.y); + input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, + fingers[idx].bit_field.area); + idx++; + } + +#if IST30XX_USE_KEY + status = PARSE_KEY_STATUS(data->t_status); + for (id = 0; id < data->max_keys; id++) { + press = (status & (1 << id)) ? true : false; + + input_report_key(data->input_dev, ist30xx_key_code[id + 1], press); + + print_tkey_event(id + 1); + } +#endif // IST30XX_USE_KEY + + ist30xx_error_cnt = 0; + ist30xx_scan_retry = 0; + + input_sync(data->input_dev); +} + +/* + * CMD : CMD_GET_COORD + * + * 1st [31:24] [23:21] [20:16] [15:12] [11:10] [9:0] + * Checksum KeyCnt KeyStatus FingerCnt Rsvd. FingerStatus + * 2nd [31:28] [27:24] [23:12] [11:0] + * ID Area X Y + */ +u32 intr_debug_addr, intr_debug2_addr, intr_debug3_addr = 0; +u32 intr_debug_size, intr_debug2_size, intr_debug3_size = 0; +static irqreturn_t ist30xx_irq_thread(int irq, void *ptr) +{ + int i, ret; + int key_cnt, finger_cnt, read_cnt; + struct ist30xx_data *data = ts_data; + int offset = 1; + u32 msg[IST30XX_MAX_MT_FINGERS + offset]; + u32 ms; + + ist30xx_irq_working = true; + + if (unlikely(!data->irq_enabled)) + goto irq_end; + + ms = get_milli_second(); + + memset(msg, 0, sizeof(msg)); + + ret = ist30xx_get_position(data->client, msg, 1); + if (unlikely(ret)) + goto irq_err; + + tsp_verb("intr msg: 0x%08x\n", *msg); + + if (unlikely(*msg == 0xE11CE970)) // TSP IC Exception + goto irq_ic_err; + + if (unlikely(*msg == 0 || *msg == 0xFFFFFFFF)) // Unknown CMD + goto irq_err; + + event_ms = ms; + ist30xx_put_track_ms(event_ms); + ist30xx_put_track(&tracking_intr_value, 1); + ist30xx_put_track(msg, 1); + + if (unlikely((*msg & CALIB_MSG_MASK) == CALIB_MSG_VALID)) { + data->status.calib_msg = *msg; + tsp_info("calib status: 0x%08x\n", data->status.calib_msg); + + goto irq_end; +#if IST30XX_CHKIC + } else if (*msg == IST30XX_CHKIC_END) { + data->status.chkic_msg = *msg; + tsp_info("IC check status: 0x%08x\n", data->status.chkic_msg); + + goto irq_end; +#endif + } + +#if IST30XX_ENABLE_GESTURE + ret = PARSE_GESTURE_MESSAGE(*msg); + if (unlikely(ret > 0)) { + tsp_info("Gesture ID: %d (0x%08x)\n", ret, *msg); + ist30xx_gesture_cmd(data, ret); + + goto irq_end; + } +#endif + + memset(data->fingers, 0, sizeof(data->fingers)); + + /* Unknown interrupt data for extend coordinate */ + if (unlikely(!CHECK_INTR_STATUS(*msg))) + goto irq_err; + + data->t_status = *msg; + key_cnt = PARSE_KEY_CNT(data->t_status); + finger_cnt = PARSE_FINGER_CNT(data->t_status); + read_cnt = finger_cnt; + + if (unlikely((finger_cnt > data->max_fingers) || + (key_cnt > data->max_keys))) { + tsp_warn("Invalid touch count - finger: %d(%d), key: %d(%d)\n", + finger_cnt, data->max_fingers, key_cnt, data->max_keys); + goto irq_err; + } + + if (read_cnt > 0) { +#if I2C_BURST_MODE + ret = ist30xx_get_position(data->client, &msg[offset], read_cnt); + if (unlikely(ret)) + goto irq_err; + + for (i = 0; i < read_cnt; i++) + data->fingers[i].full_field = msg[i + offset]; +#else + for (i = 0; i < read_cnt; i++) { + ret = ist30xx_get_position(data->client, &msg[i + offset], 1); + if (unlikely(ret)) + goto irq_err; + + data->fingers[i].full_field = msg[i + offset]; + } +#endif // I2C_BURST_MODE + + ist30xx_put_track(msg + offset, read_cnt); + for (i = 0; i < read_cnt; i++) + tsp_verb("intr msg(%d): 0x%08x\n", i + offset, msg[i + offset]); + } + + ret = check_valid_coord(&msg[0], read_cnt + 1); + if (unlikely(ret < 0)) + goto irq_err; + + if (unlikely(check_report_fingers(data, finger_cnt))) + goto irq_end; + + report_input_data(data, finger_cnt, key_cnt); + + if (intr_debug2_addr > 0 && intr_debug2_size > 0) { + tsp_notc("Intr_debug2 (addr: 0x%08x)\n", intr_debug2_addr); + for (i = 0; i < intr_debug2_size; i++) { + ist30xx_read_buf(data->client, + intr_debug2_addr + IST30XX_DATA_LEN * i, &msg[i], 1); + + tsp_notc("\t%08x\n", msg[i]); + } + ist30xx_put_track(msg, intr_debug2_size); + } + + if (intr_debug3_addr > 0 && intr_debug3_size > 0) { + tsp_notc("Intr_debug3 (addr: 0x%08x)\n", intr_debug3_addr); + for (i = 0; i < intr_debug3_size; i++) { + ist30xx_read_buf(data->client, + intr_debug3_addr + IST30XX_DATA_LEN * i, &msg[i], 1); + + tsp_notc("\t%08x\n", msg[i]); + } + ist30xx_put_track(msg, intr_debug3_size); + } + + goto irq_end; + +irq_err: + tsp_err("intr msg: 0x%08x, ret: %d\n", msg[0], ret); + ist30xx_request_reset(); +irq_end: + ist30xx_irq_working = false; + event_ms = (u32)get_milli_second(); + return IRQ_HANDLED; + +irq_ic_err: + tsp_err("Occured IC exception\n"); + ist30xx_scheduled_reset(); + ist30xx_irq_working = false; + event_ms = (u32)get_milli_second(); + return IRQ_HANDLED; +} + +#ifdef CONFIG_HAS_EARLYSUSPEND +#define ist30xx_suspend NULL +#define ist30xx_resume NULL +static void ist30xx_early_suspend(struct early_suspend *h) +{ + struct ist30xx_data *data = container_of(h, struct ist30xx_data, + early_suspend); + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + del_timer(&event_timer); + cancel_delayed_work_sync(&work_noise_protect); + cancel_delayed_work_sync(&work_reset_check); + cancel_delayed_work_sync(&work_debug_algorithm); + ist30xx_internal_suspend(data); + clear_input_data(data); + mutex_unlock(&ist30xx_mutex); +} +static void ist30xx_late_resume(struct early_suspend *h) +{ + struct ist30xx_data *data = container_of(h, struct ist30xx_data, + early_suspend); + + ist30xx_power_status = 1; + + mutex_lock(&ist30xx_mutex); + ist30xx_internal_resume(data); + ist30xx_start(data); + ist30xx_enable_irq(data); + mutex_unlock(&ist30xx_mutex); +} +#else +static int ist30xx_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct ist30xx_data *data = i2c_get_clientdata(client); + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + del_timer(&event_timer); + cancel_delayed_work_sync(&work_noise_protect); + cancel_delayed_work_sync(&work_reset_check); + cancel_delayed_work_sync(&work_debug_algorithm); + ist30xx_internal_suspend(data); + clear_input_data(data); + mutex_unlock(&ist30xx_mutex); + + return 0; +} +static int ist30xx_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct ist30xx_data *data = i2c_get_clientdata(client); + + ist30xx_power_status = 1; + + mutex_lock(&ist30xx_mutex); + ist30xx_internal_resume(data); + ist30xx_start(data); + ist30xx_enable_irq(data); + mutex_unlock(&ist30xx_mutex); + + return 0; +} +#endif // CONFIG_HAS_EARLYSUSPEND + +static void ist30xx_shutdown(struct i2c_client *client) +{ + struct ist30xx_data *data = i2c_get_clientdata(client); + + if(ist30xx_initialized) + { + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + ist30xx_internal_suspend(data); + mutex_unlock(&ist30xx_mutex); + + del_timer_sync(&event_timer); + } + +} + +void ist30xx_set_ta_mode(bool charging) +{ + tsp_info("%s(), charging = %d\n", __func__, charging); + + if (unlikely(charging == ist30xx_ta_status)) + return; + + if (unlikely(ist30xx_noise_mode == -1)) { + ist30xx_ta_status = charging ? 1 : 0; + return; + } + + ist30xx_ta_status = charging ? 1 : 0; + + ist30xx_scheduled_reset(); +} +EXPORT_SYMBOL(ist30xx_set_ta_mode); + +void ist30xx_set_call_mode(int mode) +{ + tsp_info("%s(), mode = %d\n", __func__, mode); + + if (unlikely(mode == ((ist30xx_noise_mode >> NOISE_MODE_CALL) & 1))) + return; + + ist30xx_noise_mode &= ~(1 << NOISE_MODE_CALL); + if (mode) + ist30xx_noise_mode |= (1 << NOISE_MODE_CALL); + + ist30xx_scheduled_reset(); +} +EXPORT_SYMBOL(ist30xx_set_call_mode); + +void ist30xx_set_cover_mode(int mode) +{ + tsp_info("%s(), mode = %d\n", __func__, mode); + + if (unlikely(mode == ((ist30xx_noise_mode >> NOISE_MODE_COVER) & 1))) + return; + + ist30xx_noise_mode &= ~(1 << NOISE_MODE_COVER); + if (mode) + ist30xx_noise_mode |= (1 << NOISE_MODE_COVER); + + ist30xx_scheduled_reset(); +} +EXPORT_SYMBOL(ist30xx_set_cover_mode); + +void charger_enable(int enable) +{ + bool charging = enable ? true : false; + + ist30xx_set_ta_mode(charging); +} + +static void reset_work_func(struct work_struct *work) +{ + if (unlikely((ts_data == NULL) || (ts_data->client == NULL))) + return; + + tsp_info("Request reset function\n"); + + if (likely((ist30xx_initialized == 1) && (ts_data->status.power == 1) && + (ts_data->status.update != 1) && (ts_data->status.calib != 1))) { + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(ts_data); + clear_input_data(ts_data); + ist30xx_reset(false); + ist30xx_start(ts_data); + ist30xx_enable_irq(ts_data); + mutex_unlock(&ist30xx_mutex); + } +} + +#if IST30XX_INTERNAL_BIN && IST30XX_UPDATE_BY_WORKQUEUE +static void fw_update_func(struct work_struct *work) +{ + if (unlikely((ts_data == NULL) || (ts_data->client == NULL))) + return; + + tsp_info("FW update function\n"); + + if (likely(ist30xx_auto_bin_update(ts_data))) + ist30xx_disable_irq(ts_data); +} +#endif // IST30XX_INTERNAL_BIN && IST30XX_UPDATE_BY_WORKQUEUE + + +#if IST30XX_EVENT_MODE +u32 ist30xx_max_scan_retry = 2; +u32 ist30xx_algr_addr = 0, ist30xx_algr_size = 0; + +#define SCAN_STATUS_MAGIC (0x3C000000) +#define SCAN_STATUS_MASK (0xFF000000) +#define FINGER_CNT_MASK (0x00F00000) +#define SCAN_CNT_MASK (0x000FFFFF) +#define GET_FINGER_CNT(n) ((n & FINGER_CNT_MASK) >> 20) +#define GET_SCAN_CNT(n) (n & SCAN_CNT_MASK) +static void noise_work_func(struct work_struct *work) +{ +#if IST30XX_NOISE_MODE + int ret; + u32 scan_status = 0; + + ret = ist30xx_read_cmd(ts_data->client, IST30XXB_MEM_COUNT, &scan_status); + if (unlikely(ret)) { + tsp_warn("Mem scan count read fail!\n"); + goto retry_timer; + } + + ist30xx_put_track_ms(timer_ms); + ist30xx_put_track(&scan_status, 1); + + tsp_verb("scan status: 0x%x\n", scan_status); + + /* Check valid scan count */ + if (unlikely((scan_status & SCAN_STATUS_MASK) != SCAN_STATUS_MAGIC)) { + tsp_warn("Scan status is not corrected! (0x%08x)\n", scan_status); + goto retry_timer; + } + + /* Status of IC is idle */ + if (GET_FINGER_CNT(scan_status) == 0) { + if ((PARSE_FINGER_CNT(ts_data->t_status) > 0) || + (PARSE_KEY_CNT(ts_data->t_status) > 0)) + clear_input_data(ts_data); + } + + scan_status &= SCAN_CNT_MASK; + + /* Status of IC is lock-up */ + if (unlikely(scan_status == ist30xx_scan_count)) { + tsp_warn("TSP IC is not responded! (0x%08x)\n", scan_status); + goto retry_timer; + } else { + ist30xx_scan_retry = 0; + } + + ist30xx_scan_count = scan_status; + + return; + +retry_timer: + ist30xx_scan_retry++; + tsp_warn("Retry scan status!(%d)\n", ist30xx_scan_retry); + + if (unlikely(ist30xx_scan_retry == ist30xx_max_scan_retry)) { + ist30xx_scheduled_reset(); + ist30xx_scan_retry = 0; + } +#endif // IST30XX_NOISE_MODE +} + +static void debug_work_func(struct work_struct *work) +{ +#if IST30XX_ALGORITHM_MODE + int ret = -EPERM; + int i; + u32 *buf32; + + buf32 = kzalloc(ist30xx_algr_size, GFP_KERNEL); + + for (i = 0; i < ist30xx_algr_size; i++) { + ret = ist30xx_read_buf(ts_data->client, + ist30xx_algr_addr + IST30XX_DATA_LEN * i, &buf32[i], 1); + if (ret) { + tsp_warn("Algorithm mem addr read fail!\n"); + return; + } + } + + ist30xx_put_track(buf32, ist30xx_algr_size); + + tsp_debug(" 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x\n", + buf32[0], buf32[1], buf32[2], buf32[3], buf32[4]); +#endif +} + +void timer_handler(unsigned long data) +{ + struct ist30xx_status *status = &ts_data->status; + + if (ist30xx_irq_working) + goto restart_timer; + + if (status->event_mode) { + if (likely((status->power == 1) && (status->update != 1))) { + timer_ms = (u32)get_milli_second(); + if (unlikely(status->calib == 1)) { // Check calibration + if ((status->calib_msg & CALIB_MSG_MASK) == CALIB_MSG_VALID) { + tsp_info("Calibration check OK!!\n"); + schedule_delayed_work(&work_reset_check, 0); + status->calib = 0; + } else if (timer_ms - event_ms >= 3000) { // 3second + tsp_info("calibration timeout over 3sec\n"); + schedule_delayed_work(&work_reset_check, 0); + status->calib = 0; + } + } else if (likely(status->noise_mode)) { + if (timer_ms - event_ms > 100) // 100ms after last interrupt + schedule_delayed_work(&work_noise_protect, 0); + } + +#if IST30XX_ALGORITHM_MODE + if ((ist30xx_algr_addr >= IST30XXB_ACCESS_ADDR) && + (ist30xx_algr_size > 0)) { + if (timer_ms - event_ms > 100) // 100ms after last interrupt + schedule_delayed_work(&work_debug_algorithm, 0); + } +#endif + } + } + +restart_timer: + mod_timer(&event_timer, get_jiffies_64() + EVENT_TIMER_INTERVAL); +} +#endif // IST30XX_EVENT_MODE + +static int ist30xx_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + int ret; + int retry = 3; + struct ist30xx_data *data; + struct input_dev *input_dev; + int ist_gpio = 0; + + tsp_info("##### IST30XX(Ver%d) Initialize #####\n", IST30XX_DD_VERSION); + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + printk(KERN_INFO "i2c_check_functionality error\n"); + return -EIO; + } + tsp_info("%s(), the i2c addr=0x%x\n", __func__, client->addr); + + data = kzalloc(sizeof(*data), GFP_KERNEL); + if (!data) + return -ENOMEM; + +#ifdef CONFIG_OF + struct device_node *np = client->dev.of_node; + + tsp_info("the client->dev.of_node=0x%x\n", client->dev.of_node); + + if (client->dev.of_node){ + ist_gpio = of_get_gpio(np, 0); + of_property_read_string(np, "tsp_pwr_name", &ist_vdd_name); + tsp_info("gpio id=%d,power name:%s\n", ist_gpio,ist_vdd_name); + } +#endif + + input_dev = input_allocate_device(); + if (unlikely(!input_dev)) { + ret = -ENOMEM; + tsp_err("%s(), input_allocate_device failed (%d)\n", + __func__, ret); + goto err_alloc_dev; + } + +#ifndef CONFIG_OF + ist_gpio = 82; + ist_vdd_name = "vddsim2"; +#endif + + /* configure touchscreen interrupt gpio */ + ret = gpio_request(ist_gpio, "ist30xx_irq_gpio"); + printk("[TSP]request gpio id = %d\n", ist_gpio); + if (ret) { + tsp_err("unable to request gpio.(%s)\r\n",input_dev->name); + goto err_init_drv; + } + + client->irq = gpio_to_irq(ist_gpio); + printk("[TSP] client->irq : %d\n", client->irq); + + data->max_fingers = data->max_keys = IST30XX_MAX_MT_FINGERS; + data->irq_enabled = 1; + data->client = client; + data->input_dev = input_dev; + i2c_set_clientdata(client, data); + + input_mt_init_slots(input_dev, IST30XX_MAX_MT_FINGERS, 0); + + input_dev->name = "ist30xx_ts_input"; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + + set_bit(EV_ABS, input_dev->evbit); + set_bit(INPUT_PROP_DIRECT, input_dev->propbit); + + input_set_abs_params(input_dev, ABS_MT_POSITION_X, 0, IST30XX_MAX_X, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, 0, IST30XX_MAX_Y, 0, 0); + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, IST30XX_MAX_W, 0, 0); + +#if IST30XX_USE_KEY + { + int i; + set_bit(EV_KEY, input_dev->evbit); + set_bit(EV_SYN, input_dev->evbit); + for (i = 1; i < ARRAY_SIZE(ist30xx_key_code); i++) + set_bit(ist30xx_key_code[i], input_dev->keybit); + } +#endif + + input_set_drvdata(input_dev, data); + ret = input_register_device(input_dev); + if (unlikely(ret)) { + input_free_device(input_dev); + goto err_reg_dev; + } + +#ifdef CONFIG_HAS_EARLYSUSPEND + data->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + data->early_suspend.suspend = ist30xx_early_suspend; + data->early_suspend.resume = ist30xx_late_resume; + register_early_suspend(&data->early_suspend); +#endif + + ts_data = data; + + ret = ist30xx_init_system(); + if (unlikely(ret)) { + tsp_err("chip initialization failed\n"); + goto err_init_drv; + } + + ret = ist30xx_init_update_sysfs(); + if (unlikely(ret)) + goto err_init_drv; + +#if IST30XX_DEBUG + ret = ist30xx_init_misc_sysfs(); + if (unlikely(ret)) + goto err_init_drv; +#endif + +#if IST30XX_CMCS_TEST + ret = ist30xx_init_cmcs_sysfs(); + if (unlikely(ret)) + goto err_init_drv; +#endif + +#if SEC_FACTORY_MODE + ret = sec_fac_cmd_init(data); + if (unlikely(ret)) + goto err_init_drv; + ret = sec_touch_sysfs(data); + if (unlikely(ret)) + goto err_init_drv; +#endif + +#if IST30XX_TRACKING_MODE + ret = ist30xx_init_tracking_sysfs(); + if (unlikely(ret)) + goto err_init_drv; +#endif + + ret = request_threaded_irq(client->irq, NULL, ist30xx_irq_thread, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, "ist30xx_ts", data); + if (unlikely(ret)) + goto err_irq; + + ist30xx_disable_irq(data); + + while ((data->chip_id != IST30XXB_CHIP_ID) && + (data->chip_id != IST3038_CHIP_ID)) { + ret = ist30xx_read_cmd(data->client, IST30XXB_REG_CHIPID, + &data->chip_id); + if (unlikely(ret)) { + tsp_info("tspid: %x\n", data->chip_id); + ist30xx_reset(false); + } + + if (data->chip_id == 0x3000B) + data->chip_id = IST30XXB_CHIP_ID; + + if (data->chip_id == 0x3038B) + data->chip_id = IST3038_CHIP_ID; + + if (retry-- == 0) + break; + } + + retry = 3; + while (retry-- > 0) { + ret = ist30xx_read_cmd(data->client, IST30XXB_REG_TSPTYPE, + &data->tsp_type); + + tsp_info("tsptype: %x\n", data->tsp_type); + data->tsp_type = IST30XXB_PARSE_TSPTYPE(data->tsp_type); + + if (likely(ret == 0)) + break; + + if (unlikely(retry == 0)) + goto err_irq; + } + + tsp_info("TSP IC: %x, TSP Vendor: %x\n", data->chip_id, data->tsp_type); + + data->status.event_mode = false; + +#if IST30XX_INTERNAL_BIN +#if IST30XX_UPDATE_BY_WORKQUEUE + INIT_DELAYED_WORK(&work_fw_update, fw_update_func); + schedule_delayed_work(&work_fw_update, IST30XX_UPDATE_DELAY); +#else + ret = ist30xx_auto_bin_update(data); + if (unlikely(ret != 0)) + goto err_irq; +#endif +#endif // IST30XX_INTERNAL_BIN + + if (ist30xx_ta_status < 0) + ist30xx_ta_status = 0; + + if (ist30xx_power_status < 0) + ist30xx_power_status = 0; + + if (ist30xx_noise_mode < 0) + ist30xx_noise_mode = 0; + + ret = ist30xx_get_info(data); + tsp_info("Get info: %s\n", (ret == 0 ? "success" : "fail")); + + INIT_DELAYED_WORK(&work_reset_check, reset_work_func); +#if IST30XX_EVENT_MODE + INIT_DELAYED_WORK(&work_noise_protect, noise_work_func); + INIT_DELAYED_WORK(&work_debug_algorithm, debug_work_func); +#endif + +#if IST30XX_EVENT_MODE + init_timer(&event_timer); + event_timer.function = timer_handler; + event_timer.expires = jiffies_64 + (EVENT_TIMER_INTERVAL); + mod_timer(&event_timer, get_jiffies_64() + EVENT_TIMER_INTERVAL); +#endif + + ist30xx_initialized = 1; + tsp_info("Probe end\n"); + + return 0; + +err_irq: + tsp_info("ChipID: %x\n", data->chip_id); + ist30xx_disable_irq(data); + free_irq(client->irq, data); +err_init_drv: + data->status.event_mode = false; + tsp_err("Error, ist30xx init driver\n"); + ist30xx_power_off(); +#ifdef CONFIG_HAS_EARLYSUSPEND + unregister_early_suspend(&data->early_suspend); +#endif + input_unregister_device(input_dev); + return 0; + +err_reg_dev: +err_alloc_dev: + tsp_err("Error, ist30xx mem free\n"); + kfree(data); + return 0; +} + + +static int __exit ist30xx_remove(struct i2c_client *client) +{ + struct ist30xx_data *data = i2c_get_clientdata(client); + +#ifdef CONFIG_HAS_EARLYSUSPEND + unregister_early_suspend(&data->early_suspend); +#endif + + ist30xx_disable_irq(data); + free_irq(client->irq, data); + ist30xx_power_off(); + + input_unregister_device(data->input_dev); + kfree(data); + + return 0; +} + + +static struct i2c_device_id ist30xx_idtable[] = { + { IST30XX_DEV_NAME, 0 }, + {}, +}; +MODULE_DEVICE_TABLE(i2c, ist30xx_idtable); + +#ifdef CONFIG_HAS_EARLYSUSPEND +static const struct dev_pm_ops ist30xx_pm_ops = { + .suspend = ist30xx_suspend, + .resume = ist30xx_resume, +}; +#endif + +#ifdef CONFIG_OF +static const struct of_device_id ist30xxb_ts_of_match[] = { + { .compatible = "Imagis,IST30XX", }, + { } +}; +#endif + +static struct i2c_driver ist30xx_i2c_driver = { + .id_table = ist30xx_idtable, + .probe = ist30xx_probe, + .remove = __exit_p(ist30xx_remove), + .shutdown = ist30xx_shutdown, + .driver = { + .owner = THIS_MODULE, + .name = IST30XX_DEV_NAME, +#ifdef CONFIG_HAS_EARLYSUSPEND + .pm = &ist30xx_pm_ops, +#endif + +#ifdef CONFIG_OF + .of_match_table = ist30xxb_ts_of_match, +#endif + }, +}; + +static int __init ist30xx_init(void) +{ + tsp_info("Imagis init called\n"); + return i2c_add_driver(&ist30xx_i2c_driver); +} + + +static void __exit ist30xx_exit(void) +{ + i2c_del_driver(&ist30xx_i2c_driver); +} + +module_init(ist30xx_init); +module_exit(ist30xx_exit); + +MODULE_DESCRIPTION("Imagis IST30XX touch driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx.h b/drivers/input/touchscreen/ist30xxa/ist30xx.h new file mode 100644 index 00000000..4c5bd332 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx.h @@ -0,0 +1,300 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_H__ +#define __IST30XX_H__ + +/* + * Support F/W ver : IST30xxB v5.0 + * Support IC : IST30xxB, IST3038 + * Release : 2014.06.13 by Sanghoon Kwak + */ + +#define IMAGIS_IST30XX (1) /* 3026, 3032 */ +#define IMAGIS_IST30XXB (2) /* 3026B, 3032B */ +#define IMAGIS_IST3038 (3) /* 3038 */ +#define IMAGIS_IST3044 (4) /* 3044 */ + +//#define IMAGIS_TSP_IC IMAGIS_IST30XXB +#define IMAGIS_TSP_IC IMAGIS_IST3038 + +#define I2C_BURST_MODE (1) +#define I2C_MONOPOLY_MODE (0) + +#define IST30XX_EVENT_MODE (1) +#if IST30XX_EVENT_MODE +# define IST30XX_NOISE_MODE (1) +# define IST30XX_TRACKING_MODE (1) +# define IST30XX_ALGORITHM_MODE (1) +#else +# define IST30XX_NOISE_MODE (0) +# define IST30XX_TRACKING_MODE (0) +# define IST30XX_ALGORITHM_MODE (0) +#endif + +#define IST30XX_USE_KEY (1) +#define IST30XX_DEBUG (1) +#define IST30XX_CMCS_TEST (1) +#define IST30XX_CHKIC (1) + +#define SEC_FACTORY_MODE (1) + +#define IST30XX_DEV_NAME "IST30XX" +#define IST30XX_CHIP_ID (0x30003000) +#define IST30XXA_CHIP_ID (0x300A300A) +#define IST30XXB_CHIP_ID (0x300B300B) +#define IST3038_CHIP_ID (0x30383038) + +#define IST30XX_DEV_ID (0xA0 >> 1) + +#define IST30XX_ADDR_LEN (4) +#define IST30XX_DATA_LEN (4) + +#define IST30XX_MAX_MT_FINGERS (10) +#define IST30XX_MAX_KEYS (5) + +#define IST30XX_MAX_X (480) +#define IST30XX_MAX_Y (800) +#define IST30XX_MAX_W (15) + +/* I2C Transfer msg number */ +#define WRITE_CMD_MSG_LEN (1) +#define READ_CMD_MSG_LEN (2) + +#define NORMAL_TEMPERATURE (0) +#define LOW_TEMPERATURE (1) +#define HIGH_TEMPERATURE (2) + +/* Local */ +#define TSP_LOCAL_EU (0) +#define TSP_LOCAL_EEU (1) +#define TSP_LOCAL_TD (11) +#define TSP_LOCAL_CMCC (12) +#define TSP_LOCAL_CU (13) +#define TSP_LOCAL_SPRD (14) +#define TSP_LOCAL_CTC (15) +#define TSP_LOCAL_INDIA (21) +#define TSP_LOCAL_SWASIA (22) +#define TSP_LOCAL_NA (31) +#define TSP_LOCAL_LA (32) +#define TSP_LOCAL_CODE TSP_LOCAL_EU + +/* Debug message */ +#define DEV_ERR (1) +#define DEV_WARN (2) +#define DEV_INFO (3) +#define DEV_NOTICE (4) +#define DEV_DEBUG (5) +#define DEV_VERB (6) + +#define IST30XX_DEBUG_TAG "[ TSP ]" +#define IST30XX_DEBUG_LEVEL DEV_INFO + +#define tsp_err(fmt, ...) tsp_printk(DEV_ERR, fmt, ## __VA_ARGS__) +#define tsp_warn(fmt, ...) tsp_printk(DEV_WARN, fmt, ## __VA_ARGS__) +#define tsp_info(fmt, ...) tsp_printk(DEV_INFO, fmt, ## __VA_ARGS__) +#define tsp_notc(fmt, ...) tsp_printk(DEV_NOTICE, fmt, ## __VA_ARGS__) +#define tsp_debug(fmt, ...) tsp_printk(DEV_DEBUG, fmt, ## __VA_ARGS__) +#define tsp_verb(fmt, ...) tsp_printk(DEV_VERB, fmt, ## __VA_ARGS__) + +enum ist30xx_commands { + CMD_ENTER_UPDATE = 0x02, + CMD_EXIT_UPDATE = 0x03, + CMD_UPDATE_SENSOR = 0x04, + CMD_UPDATE_CONFIG = 0x05, + CMD_ENTER_REG_ACCESS = 0x07, + CMD_EXIT_REG_ACCESS = 0x08, + CMD_SET_NOISE_MODE = 0x0A, + CMD_START_SCAN = 0x0B, + CMD_ENTER_FW_UPDATE = 0x0C, + CMD_RUN_DEVICE = 0x0D, + CMD_EXEC_MEM_CODE = 0x0E, + CMD_SET_TEST_MODE = 0x0F, + + CMD_CALIBRATE = 0x11, + CMD_USE_IDLE = 0x12, + CMD_USE_DEBUG = 0x13, + CMD_ZVALUE_MODE = 0x15, + CMD_SAME_POSITION = 0x16, + CMD_CHECK_CALIB = 0x1A, + CMD_SET_TEMPER_MODE = 0x1B, + CMD_USE_CORRECT_CP = 0x1C, + CMD_SET_REPORT_RATE = 0x1D, + CMD_SET_IDLE_TIME = 0x1E, + + CMD_GET_COORD = 0x20, + + CMD_GET_CHIP_ID = 0x30, + CMD_GET_FW_VER = 0x31, + CMD_GET_CHECKSUM = 0x32, + CMD_GET_LCD_RESOLUTION = 0x33, + CMD_GET_TSP_CHNUM1 = 0x34, + CMD_GET_PARAM_VER = 0x35, + CMD_GET_SUB_VER = 0x36, + CMD_GET_CALIB_RESULT = 0x37, + CMD_GET_TSP_SWAP_INFO = 0x38, + CMD_GET_KEY_INFO1 = 0x39, + CMD_GET_KEY_INFO2 = 0x3A, + CMD_GET_KEY_INFO3 = 0x3B, + CMD_GET_TSP_CHNUM2 = 0x3C, + CMD_GET_TSP_DIRECTION = 0x3D, + CMD_GET_TSP_VENDOR = 0x3E, + + CMD_GET_TSP_PANNEL_TYPE = 0x40, + CMD_GET_CHECKSUM_ALL = 0x41, + + CMD_SET_GESTURE_MODE = 0x50, + + CMD_DEFAULT = 0xFF, +}; + +#define CMD_FW_UPDATE_MAGIC (0x85FDAE8A) + +#define IST30XX_INTR_STATUS (0x00000C00) +#define CHECK_INTR_STATUS(n) (((n & IST30XX_INTR_STATUS) \ + == IST30XX_INTR_STATUS) ? 1 : 0) +#define PARSE_FINGER_CNT(n) ((n >> 12) & 0xF) +#define PARSE_KEY_CNT(n) ((n >> 21) & 0x7) +#define PARSE_FINGER_STATUS(n) (n & 0x3FF) /* Finger status: [9:0] */ +#define PARSE_KEY_STATUS(n) ((n >> 16) & 0x1F) /* Key status: [20:16] */ +#define PRESSED_FINGER(s, id) ((s & (1 << (id - 1))) ? true : false) +#define PRESSED_KEY(s, id) ((s & (1 << (16 + id - 1))) ? true : false) + +typedef union { + struct { + u32 y : 12; + u32 x : 12; + u32 area : 4; + u32 id : 4; + } bit_field; + u32 full_field; +} finger_info; + +struct ist30xx_status { + int power; + int update; + int calib; + int calib_msg; +#if IST30XX_CHKIC + int chkic_msg; +#endif + bool event_mode; + bool noise_mode; +}; + +struct ist30xx_fw { + u32 prev_core_ver; + u32 prev_param_ver; + u32 prev_sub_ver; + u32 core_ver; + u32 param_ver; + u32 sub_ver; + u32 index; + u32 size; + u32 chksum; + u32 buf_size; + u8 * buf; +}; + +#define IST30XX_TAG_MAGIC "ISTV1TAG" +struct ist30xx_tags { + char magic1[8]; + u32 fw_addr; + u32 fw_size; + u32 flag_addr; + u32 flag_size; + u32 cfg_addr; + u32 cfg_size; + u32 sensor1_addr; + u32 sensor1_size; + u32 sensor2_addr; + u32 sensor2_size; + u32 sensor3_addr; + u32 sensor3_size; + u32 chksum; + u32 reserved0; + u8 day; + u8 month; + u16 year; + u8 hour; + u8 min; + u8 sec; + u8 reserved1; + char magic2[8]; +}; + +#if SEC_FACTORY_MODE +#include "ist30xx_sec.h" +#endif +#ifdef CONFIG_HAS_EARLYSUSPEND +#include +#endif +struct ist30xx_data { + struct i2c_client * client; + struct input_dev * input_dev; + struct ist30xx_platform_data * pdata; +#ifdef CONFIG_HAS_EARLYSUSPEND + struct early_suspend early_suspend; +#endif + struct ist30xx_status status; + struct ist30xx_fw fw; + struct ist30xx_tags tags; +#if SEC_FACTORY_MODE + struct sec_factory sec; +#endif + u32 chip_id; + u32 tsp_type; + u32 max_fingers; + u32 max_keys; + u32 irq_enabled; + u32 t_status; + finger_info fingers[IST30XX_MAX_MT_FINGERS]; +}; + + +extern struct mutex ist30xx_mutex; +extern int ist30xx_dbg_level; + +void tsp_printk(int level, const char *fmt, ...); +int ist30xx_intr_wait(long ms); + +void ist30xx_enable_irq(struct ist30xx_data *data); +void ist30xx_disable_irq(struct ist30xx_data *data); +void ist30xx_set_ta_mode(bool charging); +void ist30xx_set_cover_mode(int mode); +void ist30xx_start(struct ist30xx_data *data); +int ist30xx_get_ver_info(struct ist30xx_data *data); + +int ist30xx_get_position(struct i2c_client *client, u32 *buf, u16 len); + +int ist30xx_read_cmd(struct i2c_client *client, u32 cmd, u32 *buf); +int ist30xx_write_cmd(struct i2c_client *client, u32 cmd, u32 val); + +int ist30xx_cmd_start_scan(struct i2c_client *client); +int ist30xx_cmd_calibrate(struct i2c_client *client); +int ist30xx_cmd_check_calib(struct i2c_client *client); +int ist30xx_cmd_update(struct i2c_client *client, int cmd); +int ist30xx_cmd_reg(struct i2c_client *client, int cmd); + +int ist30xx_power_on(bool download); +int ist30xx_power_off(void); +int ist30xx_reset(bool download); + +int ist30xx_internal_suspend(struct ist30xx_data *data); +int ist30xx_internal_resume(struct ist30xx_data *data); + +int ist30xx_init_system(void); + +#endif // __IST30XX_H__ diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx_chkic_bin.h b/drivers/input/touchscreen/ist30xxa/ist30xx_chkic_bin.h new file mode 100644 index 00000000..d615bf37 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx_chkic_bin.h @@ -0,0 +1,53 @@ + +/* IST3038 Check IC Binary */ + +unsigned char ist30xxb_chkic[] = { + 0x0D, 0x00, 0xA0, 0xE1, 0x10, 0xD0, 0x9F, 0xE5, 0x01, 0x40, 0x2D, 0xE9, 0x4E, 0x00, 0x00, 0xEB, + 0x01, 0x40, 0xBD, 0xE8, 0x00, 0xD0, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x0F, 0x00, 0x20, + 0x0C, 0x00, 0x9F, 0xE5, 0x0C, 0x00, 0x90, 0xE5, 0x02, 0x07, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, + 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x90, 0x00, 0x40, 0x0C, 0x00, 0x9F, 0xE5, 0x0C, 0x00, 0x90, 0xE5, + 0x02, 0x00, 0x10, 0xE2, 0x01, 0x00, 0xA0, 0x13, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x90, 0x00, 0x40, + 0x10, 0x40, 0x2D, 0xE9, 0x58, 0xE0, 0x9F, 0xE5, 0x00, 0x10, 0x9E, 0xE5, 0x54, 0x10, 0x9F, 0xE5, + 0x0F, 0xCA, 0xE0, 0xE3, 0x00, 0x10, 0x91, 0xE5, 0x01, 0x30, 0xA0, 0xE3, 0x01, 0x2A, 0xA0, 0xE1, + 0x21, 0x18, 0x0C, 0xE0, 0x22, 0x2A, 0xA0, 0xE1, 0x3C, 0xC0, 0x9F, 0xE5, 0x01, 0x40, 0x42, 0xE0, + 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x21, 0x9E, 0xE7, 0x0C, 0x00, 0x51, 0xE1, 0xB2, 0x20, 0xC0, 0xE0, + 0x01, 0x00, 0x00, 0xAA, 0x04, 0x00, 0x52, 0xE1, 0xFF, 0x30, 0xA0, 0x13, 0x01, 0x10, 0x81, 0xE2, + 0x5A, 0x0F, 0x51, 0xE3, 0xF6, 0xFF, 0xFF, 0xDA, 0x10, 0x40, 0xBD, 0xE8, 0x03, 0x00, 0xA0, 0xE1, + 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x10, 0x10, 0x40, 0xF4, 0x02, 0x00, 0x20, 0x26, 0x01, 0x00, 0x00, + 0x14, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x50, 0x01, 0x91, 0xE5, 0x03, 0x04, 0xC0, 0x03, + 0x13, 0x04, 0x80, 0x13, 0x50, 0x01, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xA0, 0x00, 0x40, + 0x14, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x91, 0xE5, 0x02, 0x00, 0xC0, 0x03, + 0x02, 0x00, 0x80, 0x13, 0x00, 0x00, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x90, 0x00, 0x40, + 0x0C, 0x00, 0x9F, 0xE5, 0x0C, 0x10, 0x90, 0xE5, 0x01, 0x00, 0x11, 0xE3, 0xFC, 0xFF, 0xFF, 0x0A, + 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x90, 0x00, 0x40, 0x0C, 0x00, 0x9F, 0xE5, 0xF8, 0x10, 0x90, 0xE5, + 0x0A, 0x18, 0x81, 0xE3, 0xF8, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x90, 0x00, 0x40, + 0x41, 0x11, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE3, 0x01, 0x10, 0x41, 0xE2, 0x01, 0x00, 0x71, 0xE3, + 0x04, 0x20, 0x80, 0x14, 0xFB, 0xFF, 0xFF, 0x1A, 0x1E, 0xFF, 0x2F, 0xE1, 0xF0, 0x43, 0x2D, 0xE9, + 0xF0, 0x60, 0x9F, 0xE5, 0xE9, 0xFF, 0xFF, 0xEB, 0xEC, 0x10, 0x9F, 0xE5, 0xEC, 0x00, 0x9F, 0xE5, + 0xF2, 0xFF, 0xFF, 0xEB, 0xE8, 0x10, 0x9F, 0xE5, 0x03, 0x04, 0xA0, 0xE3, 0x50, 0x01, 0x81, 0xE5, + 0x55, 0x0F, 0x81, 0xE2, 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x80, 0xA0, 0xE1, 0x01, 0x10, 0x81, 0xE2, + 0x07, 0x00, 0x51, 0xE3, 0x04, 0x80, 0x80, 0xE4, 0xFB, 0xFF, 0xFF, 0xBA, 0xC4, 0x00, 0x9F, 0xE5, + 0xC4, 0x70, 0x9F, 0xE5, 0xCC, 0x00, 0x87, 0xE5, 0x41, 0x07, 0xA0, 0xE3, 0xE8, 0x00, 0x87, 0xE5, + 0xF0, 0x80, 0x87, 0xE5, 0x01, 0x40, 0xA0, 0xE3, 0xB0, 0x50, 0x9F, 0xE5, 0x04, 0x96, 0x64, 0xE0, + 0x01, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x54, 0xE3, 0x01, 0x00, 0x00, 0x1A, 0x00, 0x90, 0x85, 0xE5, + 0x03, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x54, 0xE3, 0x94, 0x00, 0x9F, 0x15, 0x00, 0x00, 0x85, 0x15, + 0x00, 0x80, 0x85, 0x05, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0x95, 0xE5, 0x00, 0x11, 0x86, 0xE7, + 0x01, 0x00, 0x80, 0xE2, 0x5A, 0x0F, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0xDA, 0x3A, 0x00, 0x00, 0xEB, + 0x8A, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xFC, 0xFF, 0xFF, 0x0A, 0x0C, 0x00, 0x97, 0xE5, + 0x0C, 0x00, 0x87, 0xE5, 0xC3, 0xFF, 0xFF, 0xEB, 0x8A, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, + 0xFC, 0xFF, 0xFF, 0x0A, 0x0C, 0x00, 0x97, 0xE5, 0x0C, 0x00, 0x87, 0xE5, 0xB5, 0x00, 0xA0, 0xE3, + 0x94, 0x00, 0x00, 0xE0, 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x01, 0x81, 0xE0, 0xB5, 0x0F, 0x40, 0xE2, + 0x86, 0xFF, 0xFF, 0xEB, 0x01, 0x40, 0x84, 0xE2, 0x04, 0x00, 0x54, 0xE3, 0xDC, 0xFF, 0xFF, 0xBA, + 0xF0, 0x43, 0xBD, 0xE8, 0x07, 0x00, 0x00, 0xEA, 0xD4, 0x02, 0x10, 0x40, 0x7C, 0x08, 0x00, 0x00, + 0xF8, 0x02, 0x00, 0x20, 0x00, 0xA0, 0x00, 0x40, 0x03, 0x22, 0x01, 0x00, 0x00, 0x90, 0x00, 0x40, + 0xF4, 0x02, 0x00, 0x20, 0xFF, 0x0F, 0x00, 0xF4, 0x09, 0x28, 0xA0, 0xE3, 0x02, 0x10, 0xB0, 0xE1, + 0x01, 0x20, 0x42, 0xE2, 0xFC, 0xFF, 0xFF, 0x1A, 0x48, 0x20, 0x9F, 0xE5, 0x48, 0x10, 0x9F, 0xE5, + 0x1C, 0x20, 0x81, 0xE5, 0x1C, 0x00, 0x81, 0xE5, 0x40, 0x00, 0x9F, 0xE5, 0x0C, 0x20, 0x90, 0xE5, + 0x01, 0x20, 0xC2, 0xE3, 0x0C, 0x20, 0x80, 0xE5, 0x34, 0xC0, 0x9F, 0xE5, 0x34, 0x30, 0x9F, 0xE5, + 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x21, 0x9C, 0xE7, 0x1C, 0x20, 0x81, 0xE5, 0x14, 0x20, 0x91, 0xE5, + 0x40, 0x00, 0x12, 0xE3, 0xFC, 0xFF, 0xFF, 0x1A, 0x01, 0x00, 0x80, 0xE2, 0x03, 0x00, 0x50, 0xE1, + 0xF7, 0xFF, 0xFF, 0xBA, 0xFE, 0xFF, 0xFF, 0xEA, 0xAB, 0x0F, 0xAB, 0x8F, 0x00, 0x40, 0x00, 0x30, + 0x00, 0x20, 0x00, 0x40, 0xF8, 0x02, 0x00, 0x20, 0x1F, 0x02, 0x00, 0x00, 0x01, 0x00, 0xA0, 0xE3, + 0x04, 0xE0, 0x2D, 0xE5, 0x7D, 0xFF, 0xFF, 0xEB, 0x04, 0xE0, 0x9D, 0xE4, 0x01, 0x00, 0xA0, 0xE3, + 0x72, 0xFF, 0xFF, 0xEA, 0x54, 0x29, 0xB5, 0xCB +}; diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx_cmcs.c b/drivers/input/touchscreen/ist30xxa/ist30xx_cmcs.c new file mode 100644 index 00000000..0b39b20f --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx_cmcs.c @@ -0,0 +1,1345 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xx.h" +#include "ist30xx_update.h" +#include "ist30xx_misc.h" +#include "ist30xx_cmcs.h" + +#if IST30XX_INTERNAL_CMCS_BIN +#include "ist30xx_cmcs_bin.h" +#endif + +#define CMCS_PARSING_DEBUG (0) + +#define CMCS_READY (0) +#define CMCS_NOT_READY (-1) + +#define TSP_CH_UNUSED (0) +#define TSP_CH_SCREEN (1) +#define TSP_CH_KEY (2) +#define TSP_CH_UNKNOWN (-1) + +extern struct ist30xx_data *ts_data; + +int cmcs_ready = CMCS_READY; +u8 *ts_cmcs_bin = NULL; +u32 ts_cmcs_bin_size = 0; +CMCS_BIN_INFO ist30xx_cmcs_bin; +CMCS_BIN_INFO *ts_cmcs = (CMCS_BIN_INFO *)&ist30xx_cmcs_bin; +CMCS_BUF ist30xx_cmcs_buf; +CMCS_BUF *ts_cmcs_buf = (CMCS_BUF *)&ist30xx_cmcs_buf; + + +int ist30xx_parse_cmcs_bin(const u8 *buf, const u32 size) +{ + int ret = -EPERM; + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + memcpy(ts_cmcs->magic1, buf, sizeof(ts_cmcs->magic1)); + memcpy(ts_cmcs->magic2, &buf[size - sizeof(ts_cmcs->magic2)], + sizeof(ts_cmcs->magic2)); + memcpy(cmcs, &buf[sizeof(ts_cmcs->magic1)], sizeof(ts_cmcs->cmcs)); + + if (!strncmp(ts_cmcs->magic1, IST30XX_CMCS_MAGIC, sizeof(ts_cmcs->magic1)) + && !strncmp(ts_cmcs->magic2, IST30XX_CMCS_MAGIC, + sizeof(ts_cmcs->magic2))) { + int idx; + + idx = sizeof(ts_cmcs->magic1) + sizeof(ts_cmcs->cmcs); + ts_cmcs->buf_cmcs = (u8 *)&buf[idx]; + + idx += cmcs->cmd.cmcs_size; + ts_cmcs->buf_sensor = (u32 *)&buf[idx]; + + idx += (cmcs->sensor1_size + cmcs->sensor2_size + cmcs->sensor3_size); + ts_cmcs->buf_node = (u16 *)&buf[idx]; + + ret = 0; + } + + tsp_verb("Magic1: %s, Magic2: %s\n", ts_cmcs->magic1, ts_cmcs->magic2); + tsp_verb(" mode: 0x%x, base(screen: %d, key: %d)\n", + cmcs->cmd.mode, cmcs->cmd.base_screen, cmcs->cmd.base_key); + tsp_verb(" start_cp (cm: %d, cs: %d), vcmp (cm: %d, cs: %d)\n", + cmcs->cmd.start_cp_cm, cmcs->cmd.start_cp_cs, + cmcs->cmd.vcmp_cm, cmcs->cmd.vcmp_cs); + tsp_verb(" timeout: %d\n", cmcs->timeout); + tsp_verb(" baseline scrn: 0x%08x, key: 0x%08x\n", + cmcs->addr.base_screen, cmcs->addr.base_key); + tsp_verb(" start_cp: 0x%08x, vcmp: 0x%08x\n", + cmcs->addr.start_cp, cmcs->addr.vcmp); + tsp_verb(" sensor 1: 0x%08x, 2: 0x%08x, 3: 0x%08x\n", + cmcs->addr.sensor1, cmcs->addr.sensor2, cmcs->addr.sensor3); + tsp_verb(" tx: %d, rx:%d, key rx: %d, num(%d, %d, %d, %d, %d)\n", + cmcs->ch.tx_num, cmcs->ch.rx_num, cmcs->ch.key_rx, cmcs->ch.key1, + cmcs->ch.key2, cmcs->ch.key3, cmcs->ch.key4, cmcs->ch.key5); + tsp_verb(" cr: screen(%4d, %4d), key(%4d, %4d)\n", + cmcs->spec_cr.screen_min, cmcs->spec_cr.screen_max, + cmcs->spec_cr.key_min, cmcs->spec_cr.key_max); + tsp_verb(" cm: screen(%4d, %4d), key(%4d, %4d)\n", + cmcs->spec_cm.screen_min, cmcs->spec_cm.screen_max, + cmcs->spec_cm.key_min, cmcs->spec_cm.key_max); + tsp_verb(" cs0: screen(%4d, %4d), key(%4d, %4d)\n", + cmcs->spec_cs0.screen_min, cmcs->spec_cs0.screen_max, + cmcs->spec_cs0.key_min, cmcs->spec_cs0.key_max); + tsp_verb(" cs1: screen(%4d, %4d), key(%4d, %4d)\n", + cmcs->spec_cs1.screen_min, cmcs->spec_cs1.screen_max, + cmcs->spec_cs1.key_min, cmcs->spec_cs1.key_max); + tsp_verb(" slope - x(%d, %d), y(%d, %d), key(%d, %d)\n", + cmcs->slope.x_min, cmcs->slope.x_max, + cmcs->slope.y_min, cmcs->slope.y_max, + cmcs->slope.key_min, cmcs->slope.key_max); + tsp_verb(" size - cmcs(%d), sensor(%d, %d, %d)\n", + cmcs->cmd.cmcs_size, cmcs->sensor1_size, + cmcs->sensor2_size, cmcs->sensor3_size); + tsp_verb(" checksum - cmcs: 0x%08x, sensor: 0x%08x\n", + cmcs->cmcs_chksum, cmcs->sensor_chksum); + tsp_verb(" cmcs: %x, %x, %x, %x\n", ts_cmcs->buf_cmcs[0], + ts_cmcs->buf_cmcs[1], ts_cmcs->buf_cmcs[2], ts_cmcs->buf_cmcs[3]); + tsp_verb(" sensor: %x, %x, %x, %x\n", + ts_cmcs->buf_sensor[0], ts_cmcs->buf_sensor[1], + ts_cmcs->buf_sensor[2], ts_cmcs->buf_sensor[3]); + tsp_verb(" node: %x, %x, %x, %x\n", + ts_cmcs->buf_node[0], ts_cmcs->buf_node[1], + ts_cmcs->buf_node[2], ts_cmcs->buf_node[3]); + + return ret; +} + +int ist30xx_get_cmcs_info(const u8 *buf, const u32 size) +{ + int ret; + + cmcs_ready = CMCS_NOT_READY; + + ret = ist30xx_parse_cmcs_bin(buf, size); + if (unlikely(ret != TAGS_PARSE_OK)) + tsp_warn("Cannot find tags of CMCS, make a bin by 'cmcs2bin.exe'\n"); + + return ret; +} + +int ist30xx_set_cmcs_sensor(struct i2c_client *client, CMCS_INFO *cmcs, + u32 *buf32) +{ + int i, ret; + int len; + u32 waddr; + u32 *tmp32; + + tsp_verb("%08x %08x %08x %08x\n", buf32[0], buf32[1], buf32[2], buf32[3]); + + waddr = cmcs->addr.sensor1; + len = cmcs->sensor1_size / IST30XX_DATA_LEN; + + for (i = 0; i < len; i++) { + ret = ist30xx_write_cmd(client, waddr, *buf32++); + if (ret) + return ret; + + waddr += IST30XX_DATA_LEN; + } + + tmp32 = buf32; + tsp_verb("%08x %08x %08x %08x\n", tmp32[0], tmp32[1], tmp32[2], tmp32[3]); + + waddr = cmcs->addr.sensor2; + len = (cmcs->sensor2_size - 0x10) / IST30XX_DATA_LEN; + + for (i = 0; i < len; i++) { + ret = ist30xx_write_cmd(client, waddr, *buf32++); + if (ret) + return ret; + + waddr += IST30XX_DATA_LEN; + } + buf32 += (0x10 / IST30XX_DATA_LEN); + + tmp32 = buf32; + tsp_verb("%08x %08x %08x %08x\n", tmp32[0], tmp32[1], tmp32[2], tmp32[3]); + + waddr = cmcs->addr.sensor3; + len = cmcs->sensor3_size / IST30XX_DATA_LEN; + + for (i = 0; i < len; i++) { + ret = ist30xx_write_cmd(client, waddr, *buf32++); + if (ret) + return ret; + + waddr += IST30XX_DATA_LEN; + } + + return 0; +} + +int ist30xx_set_cmcs_cmd(struct i2c_client *client, CMCS_INFO *cmcs) +{ + int ret; + u32 val; + + val = (u32)(cmcs->cmd.base_screen | (cmcs->cmd.mode << 16)); + ret = ist30xx_write_cmd(client, cmcs->addr.base_screen, val); + if (ret) + return ret; + tsp_verb("Baseline screen(0x%08x): 0x%08x\n", cmcs->addr.base_screen, val); + + val = (u32)cmcs->cmd.base_key; + ret = ist30xx_write_cmd(client, cmcs->addr.base_key, val); + if (ret) + return ret; + tsp_verb("Baseline key(0x%08x): 0x%08x\n", cmcs->addr.base_key, val); + + val = cmcs->cmd.start_cp_cm | (cmcs->cmd.start_cp_cs << 16); + ret = ist30xx_write_cmd(client, cmcs->addr.start_cp, val); + if (ret) + return ret; + tsp_verb("StartCP(0x%08x): 0x%08x\n", cmcs->addr.start_cp, val); + + val = cmcs->cmd.vcmp_cm | (cmcs->cmd.vcmp_cs << 16); + ret = ist30xx_write_cmd(client, cmcs->addr.vcmp, val); + if (ret) + return ret; + tsp_verb("VCMP(0x%08x): 0x%08x\n", cmcs->addr.vcmp, val); + + return 0; +} + +int ist30xx_parse_cmcs_buf(CMCS_INFO *cmcs, s16 *buf) +{ + int i, j; + + tsp_info(" %d * %d\n", cmcs->ch.tx_num, cmcs->ch.rx_num); + for (i = 0; i < cmcs->ch.tx_num; i++) { + tsp_info(" "); + for (j = 0; j < cmcs->ch.rx_num; j++) + printk("%5d ", buf[i * cmcs->ch.rx_num + j]); + printk("\n"); + } + + return 0; +} + +int ist30xx_apply_cmcs_slope(CMCS_INFO *cmcs, CMCS_BUF *cmcs_buf) +{ + int i, j; + int idx1, idx2; + int ch_num = cmcs->ch.tx_num * cmcs->ch.rx_num; + int width = cmcs->ch.rx_num; + int height = cmcs->ch.tx_num; + s16 *pcm = (s16 *)cmcs_buf->cm; + s16 *pspec = (s16 *)cmcs_buf->spec; + s16 *pslope0 = (s16 *)cmcs_buf->slope0; + s16 *pslope1 = (s16 *)cmcs_buf->slope1; + + if (cmcs->ch.key_rx) + width -= 1; + else + height -= 1; + + memset(cmcs_buf->slope0, 0, sizeof(cmcs_buf->slope0)); + memset(cmcs_buf->slope1, 0, sizeof(cmcs_buf->slope1)); + + memcpy(cmcs_buf->spec, ts_cmcs->buf_node, (ch_num * sizeof(u16))); + + idx1 = 0; +#if CMCS_PARSING_DEBUG + tsp_info("# Node specific\n"); + for (i = 0; i < cmcs->ch.tx_num; i++) { + tsp_info(" "); + for (j = 0; j < cmcs->ch.rx_num; j++) + printk("%5d ", cmcs_buf->spec[idx1++]); + printk("\n"); + } +#endif + + tsp_verb("# Apply slope0_x\n"); + for (i = 0; i < height; i++) { + for (j = 0; j < width - 1; j++) { + idx1 = (i * cmcs->ch.rx_num) + j; + idx2 = idx1 + 1; + + pslope0[idx1] = (pcm[idx2] - pcm[idx1]); + pslope0[idx1] += (pspec[idx1] - pspec[idx2]); + } + } + + tsp_verb("# Apply slope1_y\n"); + for (i = 0; i < height - 1; i++) { + for (j = 0; j < width; j++) { + idx1 = (i * cmcs->ch.rx_num) + j; + idx2 = idx1 + cmcs->ch.rx_num; + + pslope1[idx1] = (pcm[idx2] - pcm[idx1]); + pslope1[idx1] += (pspec[idx1] - pspec[idx2]); + } + } + +#if CMCS_PARSING_DEBUG + tsp_info("# slope0_x\n"); + for (i = 0; i < height; i++) { + tsp_info(" "); + for (j = 0; j < width; j++) { + idx1 = (i * cmcs->ch.rx_num) + j; + printk("%5d ", pslope0[idx1]); + } + printk("\n"); + } + + tsp_info("# slope1_y\n"); + for (i = 0; i < height; i++) { + tsp_info(" "); + for (j = 0; j < width; j++) { + idx1 = (i * cmcs->ch.rx_num) + j; + printk("%5d ", pslope1[idx1]); + } + printk("\n"); + } +#endif + + return 0; +} + + +int ist30xx_get_cmcs_buf(struct i2c_client *client, CMCS_INFO *cmcs, s16 *buf) +{ + int ret; + u16 len = (IST30XX_CMCS_BUF_SIZE * sizeof(buf[0])) / IST30XX_DATA_LEN; + + ret = ist30xx_read_buf(client, CMD_DEFAULT, (u32 *)buf, len); + if (unlikely(ret)) + return ret; + +#if CMCS_PARSING_DEBUG + ret = ist30xx_parse_cmcs_buf(cmcs, buf); +#endif + + return ret; +} + + +extern int ist30xx_calib_wait(void); +#define cmcs_next_step(ret) { if (unlikely(ret)) goto end; msleep(10); } +int ist30xx_cmcs_test(const u8 *buf, int size) +{ + int ret; + int len; + u32 chksum = 0; + u32 *buf32; + struct i2c_client *client = (struct i2c_client *)ts_data->client; + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + tsp_info("*** CM/CS test ***\n"); + tsp_info(" mode: 0x%x, baseline(screen: %d, key: %d)\n", + cmcs->cmd.mode, cmcs->cmd.base_screen, cmcs->cmd.base_key); + tsp_info(" start_cp (cm: %d, cs: %d), vcmp (cm: %d, cs: %d)\n", + cmcs->cmd.start_cp_cm, cmcs->cmd.start_cp_cs, + cmcs->cmd.vcmp_cm, cmcs->cmd.vcmp_cs); + + ist30xx_disable_irq(ts_data); + + ist30xx_reset(false); + + ret = ist30xx_cmd_reg(client, CMD_ENTER_REG_ACCESS); + cmcs_next_step(ret); + + /* Set sensor register */ + buf32 = ts_cmcs->buf_sensor; + ret = ist30xx_set_cmcs_sensor(client, cmcs, buf32); + cmcs_next_step(ret); + + /* Set command */ + ret = ist30xx_set_cmcs_cmd(client, cmcs); + cmcs_next_step(ret); + + ret = ist30xx_cmd_reg(client, CMD_EXIT_REG_ACCESS); + cmcs_next_step(ret); + + /* Load cmcs test code */ + ret = ist30xx_write_cmd(client, CMD_EXEC_MEM_CODE, 0); + cmcs_next_step(ret); + + buf32 = (u32 *)ts_cmcs->buf_cmcs; + len = cmcs->cmd.cmcs_size / IST30XX_DATA_LEN; + tsp_verb("%08x %08x %08x %08x\n", buf32[0], buf32[1], buf32[2], buf32[3]); + ret = ist30xx_write_buf(client, len, buf32, len); + cmcs_next_step(ret); + + /* Check checksum */ + ret = ist30xx_read_cmd(client, CMD_DEFAULT, &chksum); + cmcs_next_step(ret); + if (chksum != IST30XX_CMCS_LOAD_END) + goto end; + tsp_info("CM/CS code ready!!\n"); + + /* Check checksum */ + ret = ist30xx_read_cmd(client, CMD_DEFAULT, &chksum); + cmcs_next_step(ret); + tsp_info("CM/CS code chksum: %08x, %08x\n", chksum, cmcs->cmcs_chksum); + + ist30xx_enable_irq(ts_data); + /* Wait CMCS test result */ + if (ist30xx_calib_wait() == 1) + tsp_info("CM/CS test OK.\n"); + else + tsp_info("CM/CS test fail.\n"); + ist30xx_disable_irq(ts_data); + + /* Read CM/CS data*/ + if (ENABLE_CM_MODE(cmcs->cmd.mode)) { + /* Read CM data */ + memset(ts_cmcs_buf->cm, 0, sizeof(ts_cmcs_buf->cm)); + + ret = ist30xx_get_cmcs_buf(client, cmcs, ts_cmcs_buf->cm); + cmcs_next_step(ret); + + ret = ist30xx_apply_cmcs_slope(cmcs, ts_cmcs_buf); + } + + if (ENABLE_CS_MODE(cmcs->cmd.mode)) { + /* Read CS0 data */ + memset(ts_cmcs_buf->cs0, 0, sizeof(ts_cmcs_buf->cs0)); + memset(ts_cmcs_buf->cs1, 0, sizeof(ts_cmcs_buf->cs1)); + + ret = ist30xx_get_cmcs_buf(client, cmcs, ts_cmcs_buf->cs0); + cmcs_next_step(ret); + + /* Read CS1 data */ + ret = ist30xx_get_cmcs_buf(client, cmcs, ts_cmcs_buf->cs1); + cmcs_next_step(ret); + } + + ist30xx_reset(false); + + ist30xx_start(ts_data); + + cmcs_ready = CMCS_READY; + +end: + if (unlikely(ret)) { + tsp_warn("CM/CS test Fail!, ret=%d\n", ret); + } else if (unlikely(chksum != cmcs->cmcs_chksum)) { + tsp_warn("Error CheckSum: %x(%x)\n", chksum, cmcs->cmcs_chksum); + ret = -ENOEXEC; + } + + ist30xx_enable_irq(ts_data); + + return ret; +} + + +int check_tsp_type(int tx, int rx) +{ + struct CMCS_CH_INFO *ch = (struct CMCS_CH_INFO *)&ts_cmcs->cmcs.ch; + + int last_rx_ch = (int)ch->rx_num - 1; + int last_tx_ch = (int)ch->tx_num - 1; + + if ((rx > last_rx_ch) || (rx < 0) || (tx > last_tx_ch) || (tx < 0)) { + tsp_warn("TSP channel is not correct!! (%d * %d)\n", tx, rx); + return TSP_CH_UNKNOWN; + } + + if (ch->key_rx) { // Key on RX channel + if (rx == last_rx_ch) { + if ((tx == ch->key1) || (tx == ch->key2) || (tx == ch->key3) || + (tx == ch->key4) || (tx == ch->key5)) + return TSP_CH_KEY; + else + return TSP_CH_UNUSED; + } + } // Key on TX channel + else { + if (tx == last_tx_ch) { + if ((rx == ch->key1) || (rx == ch->key2) || (rx == ch->key3) || + (rx == ch->key4) || (rx == ch->key5)) + return TSP_CH_KEY; + else + return TSP_CH_UNUSED; + } + } + + return TSP_CH_SCREEN; +} + +int print_cmcs(s16 *buf16, char *buf) +{ + int i, j; + int idx; + int count = 0; + char msg[128]; + + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + int tx_num = cmcs->ch.tx_num; + int rx_num = cmcs->ch.rx_num; + + for (i = 0; i < tx_num; i++) { + for (j = 0; j < rx_num; j++) { + idx = (i * cmcs->ch.rx_num) + j; + count += sprintf(msg, "%5d ", buf16[idx]); + strcat(buf, msg); + } + + count += sprintf(msg, "\n"); + strcat(buf, msg); + } + + return count; +} + +int print_line_cmcs(int mode, s16 *buf16, char *buf) +{ + int i, j; + int idx; + int type; + int count = 0; + int key_index[5] = { 0, }; + int key_cnt = 0; + char msg[128]; + + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + int tx_num = cmcs->ch.tx_num; + int rx_num = cmcs->ch.rx_num; + + if ((mode == CMCS_FLAG_CM_SLOPE0) || (mode == CMCS_FLAG_CM_SLOPE1)) { + if (cmcs->ch.key_rx) + rx_num--; + else + tx_num--; + } + + for (i = 0; i < tx_num; i++) { + for (j = 0; j < rx_num; j++) { + type = check_tsp_type(i, j); + if ((type == TSP_CH_UNKNOWN) || (type == TSP_CH_UNUSED)) + continue; // Ignore + + if ((mode == CMCS_FLAG_CM_SLOPE0) && (j == (rx_num - 1))) + continue; + else if ((mode == CMCS_FLAG_CM_SLOPE1) && (i == (tx_num - 1))) + continue; + + idx = (i * cmcs->ch.rx_num) + j; + + if (type == TSP_CH_KEY) { + key_index[key_cnt++] = idx; + continue; + } + + count += sprintf(msg, "%5d ", buf16[idx]); + strcat(buf, msg); + } + } + + tsp_info("key cnt: %d\n", key_cnt); + if ((mode != CMCS_FLAG_CM_SLOPE0) && (mode != CMCS_FLAG_CM_SLOPE1)) { + tsp_info("key cnt: %d\n", key_cnt); + for (i = 0; i < key_cnt; i++) { + count += sprintf(msg, "%5d ", buf16[key_index[i]]); + strcat(buf, msg); + } + } + + count += sprintf(msg, "\n"); + strcat(buf, msg); + + return count; +} + +/* sysfs: /sys/class/touch/cmcs/info */ +ssize_t ist30xx_cmcs_info_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int count; + char msg[128]; + + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if (cmcs == NULL) + return sprintf(buf, "Unknown cmcs bin\n"); + + /* Mode */ + count = sprintf(msg, "%d ", cmcs->cmd.mode); + strcat(buf, msg); + + /* Channel */ + count += sprintf(msg, "%d %d %d %d %d %d %d %d ", + cmcs->ch.tx_num, cmcs->ch.rx_num, cmcs->ch.key_rx, cmcs->ch.key1, + cmcs->ch.key2, cmcs->ch.key3, cmcs->ch.key4, cmcs->ch.key5); + strcat(buf, msg); + + /* Slope */ + count += sprintf(msg, "%d %d %d %d %d %d", + cmcs->slope.x_min, cmcs->slope.x_max, + cmcs->slope.y_min, cmcs->slope.y_max, + cmcs->slope.key_min, cmcs->slope.key_max); + strcat(buf, msg); + + /* CM */ + count += sprintf(msg, "%d %d %d %d ", + cmcs->spec_cm.screen_min, cmcs->spec_cm.screen_max, + cmcs->spec_cm.key_min, cmcs->spec_cm.key_max); + strcat(buf, msg); + + /* CS0 */ + count += sprintf(msg, "%d %d %d %d ", + cmcs->spec_cs0.screen_min, cmcs->spec_cs0.screen_max, + cmcs->spec_cs0.key_min, cmcs->spec_cs0.key_max); + strcat(buf, msg); + + /* CS1 */ + count += sprintf(msg, "%d %d %d %d ", + cmcs->spec_cs1.screen_min, cmcs->spec_cs1.screen_max, + cmcs->spec_cs1.key_min, cmcs->spec_cs1.key_max); + strcat(buf, msg); + + /* CR */ + count += sprintf(msg, "%d %d %d %d ", + cmcs->spec_cr.screen_min, cmcs->spec_cr.screen_max, + cmcs->spec_cr.key_min, cmcs->spec_cr.key_max); + strcat(buf, msg); + + tsp_verb("%s\n", buf); + + return count; +} + +/* sysfs: /sys/class/touch/cmcs/cmcs_binary */ +ssize_t ist30xx_cmcs_binary_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret; + + if ((ts_cmcs_bin == NULL) || (ts_cmcs_bin_size == 0)) + return sprintf(buf, "Binary is not correct(%d)\n", ts_cmcs_bin_size); + + ist30xx_get_cmcs_info(ts_cmcs_bin, ts_cmcs_bin_size); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_cmcs_test(ts_cmcs_bin, ts_cmcs_bin_size); + mutex_unlock(&ist30xx_mutex); + + return sprintf(buf, (ret == 0 ? "OK\n" : "Fail\n")); +} + +/* sysfs: /sys/class/touch/cmcs/cmcs_custom */ +ssize_t ist30xx_cmcs_custom_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret; + int bin_size = 0; + u8 *bin = NULL; + const struct firmware *req_bin = NULL; + + ret = request_firmware(&req_bin, IST30XXB_CMCS_NAME, &ts_data->client->dev); + if (ret) + return sprintf(buf, "File not found, %s\n", IST30XXB_CMCS_NAME); + + bin = (u8 *)req_bin->data; + bin_size = (u32)req_bin->size; + + ist30xx_get_cmcs_info(bin, bin_size); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_cmcs_test(bin, bin_size); + mutex_unlock(&ist30xx_mutex); + + release_firmware(req_bin); + + tsp_info("size: %d\n", sprintf(buf, (ret == 0 ? "OK\n" : "Fail\n"))); + + return sprintf(buf, (ret == 0 ? "OK\n" : "Fail\n")); +} + +#define MAX_FILE_PATH 255 +/* sysfs: /sys/class/touch/cmcs/cmcs_sdcard */ +ssize_t ist30xx_cmcs_sdcard_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret = 0; + int bin_size = 0; + u8 *bin = NULL; + const u8 *buff = 0; + mm_segment_t old_fs = { 0 }; + struct file *fp = NULL; + long fsize = 0, nread = 0; + char fw_path[MAX_FILE_PATH]; + + old_fs = get_fs(); + set_fs(get_ds()); + + snprintf(fw_path, MAX_FILE_PATH, "/sdcard/touch/firmware/%s", + IST30XXB_CMCS_NAME); + fp = filp_open(fw_path, O_RDONLY, 0); + if (IS_ERR(fp)) { + tsp_info("file %s open error:%d\n", fw_path, (s32)fp); + ret = -ENOENT; + goto err_file_open; + } + + fsize = fp->f_path.dentry->d_inode->i_size; + + buff = kzalloc((size_t)fsize, GFP_KERNEL); + if (!buff) { + tsp_info("fail to alloc buffer\n"); + ret = -ENOMEM; + goto err_alloc; + } + + nread = vfs_read(fp, (char __user *)buff, fsize, &fp->f_pos); + if (nread != fsize) { + tsp_info("mismatch fw size\n"); + + goto err_fw_size; + } + + bin = (u8 *)buff; + bin_size = (u32)fsize; + + filp_close(fp, current->files); + set_fs(old_fs); + tsp_info("firmware is loaded!!\n"); + + ist30xx_get_cmcs_info(bin, bin_size); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_cmcs_test(bin, bin_size); + mutex_unlock(&ist30xx_mutex); + + kfree(buff); + + tsp_info("size: %d\n", sprintf(buf, (ret == 0 ? "OK\n" : "Fail\n"))); + + return sprintf(buf, (ret == 0 ? "OK\n" : "Fail\n")); + +err_fw_size: + if (buff) + kfree(buff); +err_alloc: + if (fp) + filp_close(fp, NULL); +err_file_open: + set_fs(old_fs); + + return 0; +} + +/* sysfs: /sys/class/touch/cmcs/cm */ +ssize_t ist30xx_cm_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CM)) + return 0; + + tsp_verb("CM (%d * %d)\n", cmcs->ch.tx_num, cmcs->ch.rx_num); + + return print_cmcs(ts_cmcs_buf->cm, buf); +} + +/* sysfs: /sys/class/touch/cmcs/cm_spec */ +ssize_t ist30xx_cm_spec_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CM)) + return 0; + + tsp_verb("CM Spec (%d * %d)\n", cmcs->ch.tx_num, cmcs->ch.rx_num); + + return print_cmcs(ts_cmcs_buf->spec, buf); +} + +/* sysfs: /sys/class/touch/cmcs/cm_slope0 */ +ssize_t ist30xx_cm_slope0_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CM)) + return 0; + + tsp_verb("CM Slope0_X (%d * %d)\n", cmcs->ch.tx_num, cmcs->ch.rx_num); + + return print_cmcs(ts_cmcs_buf->slope0, buf); +} + +/* sysfs: /sys/class/touch/cmcs/cm_slope1 */ +ssize_t ist30xx_cm_slope1_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CM)) + return 0; + + tsp_verb("CM Slope1_Y (%d * %d)\n", + ts_cmcs->cmcs.ch.tx_num, ts_cmcs->cmcs.ch.rx_num); + + return print_cmcs(ts_cmcs_buf->slope1, buf); +} + +/* sysfs: /sys/class/touch/cmcs/cs0 */ +ssize_t ist30xx_cs0_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CS)) + return 0; + + tsp_verb("CS0 (%d * %d)\n", cmcs->ch.tx_num, cmcs->ch.rx_num); + + return print_cmcs(ts_cmcs_buf->cs0, buf); +} + +/* sysfs: /sys/class/touch/cmcs/cs1 */ +ssize_t ist30xx_cs1_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CS)) + return 0; + + tsp_verb("CS1 (%d * %d)\n", cmcs->ch.tx_num, cmcs->ch.rx_num); + + return print_cmcs(ts_cmcs_buf->cs1, buf); +} + + +int print_cm_slope_result(u8 flag, s16 *buf16, char *buf) +{ + int i, j; + int type, idx; + int count = 0, err_cnt = 0; + int min_spec, max_spec; + + char msg[128]; + + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + struct CMCS_SLOPE_INFO *spec = (struct CMCS_SLOPE_INFO *)&cmcs->slope; + + if (flag == CMCS_FLAG_CM_SLOPE0) { + min_spec = spec->x_min; + max_spec = spec->x_max; + } else if (flag == CMCS_FLAG_CM_SLOPE1) { + min_spec = spec->y_min; + max_spec = spec->y_max; + } else { + count = sprintf(msg, "Unknown flag: %d\n", flag); + strcat(buf, msg); + return count; + } + + min_spec *= -1; + + count = sprintf(msg, "Spec: %d ~ %d\n", min_spec, max_spec); + strcat(buf, msg); + + for (i = 0; i < cmcs->ch.tx_num; i++) { + for (j = 0; j < cmcs->ch.rx_num; j++) { + idx = (i * cmcs->ch.rx_num) + j; + + type = check_tsp_type(i, j); + if ((type == TSP_CH_UNKNOWN) || (type == TSP_CH_UNUSED)) + continue; // Ignore + + if ((buf16[idx] > min_spec) && (buf16[idx] < max_spec)) + continue; // OK + + count += sprintf(msg, "%2d,%2d:%4d\n", i, j, buf16[idx]); + strcat(buf, msg); + + err_cnt++; + } + } + + /* Check error count */ + if (err_cnt == 0) + count += sprintf(msg, "OK\n"); + else + count += sprintf(msg, "Fail, node count: %d\n", err_cnt); + strcat(buf, msg); + + return count; +} + +int print_cm_key_slope_result(s16 *buf16, char *buf, bool print) +{ + int i, j; + int type, idx; + int count = 0; + int min_spec, max_spec; + int key_num = 0; + s16 key_cm[5] = { 0, }; + s16 slope_result; + + char msg[128]; + + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + struct CMCS_SLOPE_INFO *spec = (struct CMCS_SLOPE_INFO *)&cmcs->slope; + + min_spec = spec->key_min; + max_spec = spec->key_max; + + min_spec *= -1; + if (print) { + count = sprintf(msg, "Spec: %d ~ %d\n", min_spec, max_spec); + strcat(buf, msg); + } + + for (i = 0; i < cmcs->ch.tx_num; i++) { + for (j = 0; j < cmcs->ch.rx_num; j++) { + idx = (i * cmcs->ch.rx_num) + j; + + type = check_tsp_type(i, j); + if (type == TSP_CH_KEY) + key_cm[key_num++] = buf16[idx]; + } + } + + /* Check key slope */ + slope_result = key_cm[0] - key_cm[1]; + + if (print) { + if ((slope_result > min_spec) && (slope_result < max_spec)) + count += sprintf(msg, "OK (%d)\n", slope_result); + else + count += sprintf(msg, "Fail (%d)\n", slope_result); + } else { + count += sprintf(msg, "%d\n", + (slope_result > 0 ? slope_result : -slope_result)); + } + + strcat(buf, msg); + + return count; +} + +int print_cs_result(s16 *buf16, char *buf, int cs_num) +{ + int i, j; + int type, idx; + int count = 0, err_cnt = 0; + int min_spec, max_spec; + + char msg[128]; + + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + struct CMCS_SPEC_INFO *spec; + + if (cs_num == 0) + spec = (struct CMCS_SPEC_INFO *)&cmcs->spec_cs0; + else + spec = (struct CMCS_SPEC_INFO *)&cmcs->spec_cs1; + + count = sprintf(msg, "Spec: screen(%d~%d), key(%d~%d)\n", + spec->screen_min, spec->screen_max, spec->key_min, spec->key_max); + strcat(buf, msg); + + for (i = 0; i < cmcs->ch.tx_num; i++) { + for (j = 0; j < cmcs->ch.rx_num; j++) { + idx = (i * cmcs->ch.rx_num) + j; + + type = check_tsp_type(i, j); + if ((type == TSP_CH_UNKNOWN) || (type == TSP_CH_UNUSED)) + continue; // Ignore + + if (type == TSP_CH_SCREEN) { + min_spec = spec->screen_min; + max_spec = spec->screen_max; + } else { // TSP_CH_KEY + min_spec = spec->key_min; + max_spec = spec->key_max; + } + + if ((buf16[idx] > min_spec) && (buf16[idx] < max_spec)) + continue; // OK + + count += sprintf(msg, "%2d,%2d:%4d\n", i, j, buf16[idx]); + strcat(buf, msg); + + err_cnt++; + } + } + + /* Check error count */ + if (err_cnt == 0) + count += sprintf(msg, "OK\n"); + else + count += sprintf(msg, "Fail, node count: %d\n", err_cnt); + strcat(buf, msg); + + return count; +} + +/* sysfs: /sys/class/touch/cmcs/cm_result */ +ssize_t ist30xx_cm_result_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int i, j; + int type, idx, err_cnt = 0; + int min_spec, max_spec; + int count = 0; + short cm; + char msg[128]; + + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CM)) + return 0; + + for (i = 0; i < cmcs->ch.tx_num; i++) { + for (j = 0; j < cmcs->ch.rx_num; j++) { + idx = (i * cmcs->ch.rx_num) + j; + + type = check_tsp_type(i, j); + if ((type == TSP_CH_UNKNOWN) || (type == TSP_CH_UNUSED)) + continue; + + min_spec = max_spec = ts_cmcs_buf->spec[idx]; + if (type == TSP_CH_SCREEN) { + min_spec -= (min_spec * cmcs->spec_cm.screen_min / 100); + max_spec += (min_spec * cmcs->spec_cm.screen_max / 100); + } else { // TSP_CH_KEY + min_spec -= (min_spec * cmcs->spec_cm.key_min / 100); + max_spec += (min_spec * cmcs->spec_cm.key_max / 100); + } + + cm = ts_cmcs_buf->cm[idx]; + if ((cm > min_spec) && (cm < max_spec)) + continue; // OK + + count += sprintf(msg, "%2d,%2d:%4d (%4d~%4d)\n", + i, j, cm, min_spec, max_spec); + strcat(buf, msg); + + err_cnt++; + } + } + + /* Check error count */ + if (err_cnt == 0) + count += sprintf(msg, "OK\n"); + else + count += sprintf(msg, "Fail, node count: %d\n", err_cnt); + strcat(buf, msg); + + return count; +} + +/* sysfs: /sys/class/touch/cmcs/cm_slope0_result */ +ssize_t ist30xx_cm_slope0_result_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CM)) + return 0; + + return print_cm_slope_result(CMCS_FLAG_CM_SLOPE0, + ts_cmcs_buf->slope0, buf); +} + +/* sysfs: /sys/class/touch/cmcs/cm_slope1_result */ +ssize_t ist30xx_cm_slope1_result_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CM)) + return 0; + + return print_cm_slope_result(CMCS_FLAG_CM_SLOPE1, + ts_cmcs_buf->slope1, buf); +} +/* sysfs: /sys/class/touch/cmcs/cm_key_slope_result */ +ssize_t ist30xx_cm_key_slope_result_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CM)) + return 0; + + return print_cm_key_slope_result(ts_cmcs_buf->cm, buf, true); +} + +/* sysfs: /sys/class/touch/cmcs/cs0_result */ +ssize_t ist30xx_cs0_result_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CS)) + return 0; + + return print_cs_result(ts_cmcs_buf->cs0, buf, 0); +} + +/* sysfs: /sys/class/touch/cmcs/cs1_result */ +ssize_t ist30xx_cs1_result_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CS)) + return 0; + + return print_cs_result(ts_cmcs_buf->cs1, buf, 1); +} + +/* sysfs: /sys/class/touch/cmcs/line_cm */ +ssize_t ist30xx_line_cm_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CM)) + return 0; + + return print_line_cmcs(CMCS_FLAG_CM, ts_cmcs_buf->cm, buf); +} + +/* sysfs: /sys/class/touch/cmcs/line_cm_slope0 */ +ssize_t ist30xx_line_cm_slope0_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CM)) + return 0; + + return print_line_cmcs(CMCS_FLAG_CM_SLOPE0, ts_cmcs_buf->slope0, buf); +} + +/* sysfs: /sys/class/touch/cmcs/line_cm_slope1 */ +ssize_t ist30xx_line_cm_slope1_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CM)) + return 0; + + return print_line_cmcs(CMCS_FLAG_CM_SLOPE1, ts_cmcs_buf->slope1, buf); +} + +/* sysfs: /sys/class/touch/cmcs/line_cs0 */ +ssize_t ist30xx_line_cs0_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CS)) + return 0; + + return print_line_cmcs(CMCS_FLAG_CS0, ts_cmcs_buf->cs0, buf); +} + +/* sysfs: /sys/class/touch/cmcs/line_cs1 */ +ssize_t ist30xx_line_cs1_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + CMCS_INFO *cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CS)) + return 0; + + return print_line_cmcs(CMCS_FLAG_CS1, ts_cmcs_buf->cs1, buf); +} + +/* sysfs: /sys/class/touch/cmcs/cm_key_slope_value */ +ssize_t ist30xx_cm_key_slope_value_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret; + CMCS_INFO *cmcs; + + if ((ts_cmcs_bin == NULL) || (ts_cmcs_bin_size == 0)) + return sprintf(buf, "%s", "FFFF"); + + ist30xx_get_cmcs_info(ts_cmcs_bin, ts_cmcs_bin_size); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_cmcs_test(ts_cmcs_bin, ts_cmcs_bin_size); + mutex_unlock(&ist30xx_mutex); + + if (ret) + return sprintf(buf, "%s", "FFFF"); + + cmcs = (CMCS_INFO *)&ts_cmcs->cmcs; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "%s", "FFFF"); + + if ((cmcs->cmd.mode) && !(cmcs->cmd.mode & FLAG_ENABLE_CM)) + return sprintf(buf, "%s", "FFFF"); + + return print_cm_key_slope_result(ts_cmcs_buf->cm, buf, false); +} + +/* sysfs : cmcs */ +static DEVICE_ATTR(info, S_IRUGO, ist30xx_cmcs_info_show, NULL); +static DEVICE_ATTR(cmcs_binary, S_IRUGO, ist30xx_cmcs_binary_show, NULL); +static DEVICE_ATTR(cmcs_custom, S_IRUGO, ist30xx_cmcs_custom_show, NULL); +static DEVICE_ATTR(cmcs_sdcard, S_IRUGO, ist30xx_cmcs_sdcard_show, NULL); +static DEVICE_ATTR(cm, S_IRUGO, ist30xx_cm_show, NULL); +static DEVICE_ATTR(cm_spec, S_IRUGO, ist30xx_cm_spec_show, NULL); +static DEVICE_ATTR(cm_slope0, S_IRUGO, ist30xx_cm_slope0_show, NULL); +static DEVICE_ATTR(cm_slope1, S_IRUGO, ist30xx_cm_slope1_show, NULL); +static DEVICE_ATTR(cs0, S_IRUGO, ist30xx_cs0_show, NULL); +static DEVICE_ATTR(cs1, S_IRUGO, ist30xx_cs1_show, NULL); +static DEVICE_ATTR(cm_result, S_IRUGO, ist30xx_cm_result_show, NULL); +static DEVICE_ATTR(cm_slope0_result, S_IRUGO, + ist30xx_cm_slope0_result_show, NULL); +static DEVICE_ATTR(cm_slope1_result, S_IRUGO, + ist30xx_cm_slope1_result_show, NULL); +static DEVICE_ATTR(cm_key_slope_result, S_IRUGO, + ist30xx_cm_key_slope_result_show, NULL); +static DEVICE_ATTR(cs0_result, S_IRUGO, ist30xx_cs0_result_show, NULL); +static DEVICE_ATTR(cs1_result, S_IRUGO, ist30xx_cs1_result_show, NULL); +static DEVICE_ATTR(line_cm, S_IRUGO, ist30xx_line_cm_show, NULL); +static DEVICE_ATTR(line_cm_slope0, S_IRUGO, ist30xx_line_cm_slope0_show, NULL); +static DEVICE_ATTR(line_cm_slope1, S_IRUGO, ist30xx_line_cm_slope1_show, NULL); +static DEVICE_ATTR(line_cs0, S_IRUGO, ist30xx_line_cs0_show, NULL); +static DEVICE_ATTR(line_cs1, S_IRUGO, ist30xx_line_cs1_show, NULL); +static DEVICE_ATTR(cm_key_slope_value, S_IRUGO, + ist30xx_cm_key_slope_value_show, NULL); + +static struct attribute *cmcs_attributes[] = { + &dev_attr_info.attr, + &dev_attr_cmcs_binary.attr, + &dev_attr_cmcs_custom.attr, + &dev_attr_cmcs_sdcard.attr, + &dev_attr_cm.attr, + &dev_attr_cm_spec.attr, + &dev_attr_cm_slope0.attr, + &dev_attr_cm_slope1.attr, + &dev_attr_cs0.attr, + &dev_attr_cs1.attr, + &dev_attr_cm_result.attr, + &dev_attr_cm_slope0_result.attr, + &dev_attr_cm_slope1_result.attr, + &dev_attr_cm_key_slope_result.attr, + &dev_attr_cs0_result.attr, + &dev_attr_cs1_result.attr, + &dev_attr_line_cm.attr, + &dev_attr_line_cm_slope0.attr, + &dev_attr_line_cm_slope1.attr, + &dev_attr_line_cs0.attr, + &dev_attr_line_cs1.attr, + &dev_attr_cm_key_slope_value.attr, + NULL, +}; + +static struct attribute_group cmcs_attr_group = { + .attrs = cmcs_attributes, +}; + +extern struct class *ist30xx_class; +struct device *ist30xx_cmcs_dev; + + +int ist30xx_init_cmcs_sysfs(void) +{ + /* /sys/class/touch/cmcs */ + ist30xx_cmcs_dev = device_create(ist30xx_class, NULL, 0, NULL, "cmcs"); + + /* /sys/class/touch/cmcs/... */ + if (unlikely(sysfs_create_group(&ist30xx_cmcs_dev->kobj, + &cmcs_attr_group))) + tsp_err("Failed to create sysfs group(%s)!\n", "cmcs"); + +#if IST30XX_INTERNAL_CMCS_BIN + ts_cmcs_bin = (u8 *)ist30xxb_cmcs; + ts_cmcs_bin_size = sizeof(ist30xxb_cmcs); + + ist30xx_get_cmcs_info(ts_cmcs_bin, ts_cmcs_bin_size); +#endif + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx_cmcs.h b/drivers/input/touchscreen/ist30xxa/ist30xx_cmcs.h new file mode 100644 index 00000000..418f30e9 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx_cmcs.h @@ -0,0 +1,131 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_CMCS_H__ +#define __IST30XX_CMCS_H__ + + +#define IST30XX_INTERNAL_CMCS_BIN (1) + +#define CMCS_FLAG_CM (1) +#define CMCS_FLAG_CM_SPEC (1 << 1) +#define CMCS_FLAG_CM_SLOPE0 (1 << 2) +#define CMCS_FLAG_CM_SLOPE1 (1 << 3) +#define CMCS_FLAG_CS0 (1 << 4) +#define CMCS_FLAG_CS1 (1 << 5) + +#define FLAG_ENABLE_CM (1) +#define FLAG_ENABLE_CS (2) +#define FLAG_ENABLE_CR (4) + +#define IST30XX_CMCS_LOAD_END (0x8FFFFCAB) +#if (IMAGIS_TSP_IC == IMAGIS_IST30XXB) +#define IST30XX_CMCS_BUF_SIZE (16 * 16) +#elif (IMAGIS_TSP_IC == IMAGIS_IST3038) +#define IST30XX_CMCS_BUF_SIZE (((19 * 19) / 2 + 1) * 2) +#else +#error "Unknown TSP_IC" +#endif + +#define ENABLE_CM_MODE(n) (n & 1) +#define ENABLE_CS_MODE(n) ((n >> 1) & 1) + +#define IST30XXB_CMCS_NAME "ist30xxb.cms" + +#define IST30XX_CMCS_MAGIC "CMCS1TAG" +struct CMCS_ADDR_INFO { + u32 base_screen; + u32 base_key; + u32 start_cp; + u32 vcmp; + u32 sensor1; + u32 sensor2; + u32 sensor3; +}; +struct CMCS_CH_INFO { + u8 tx_num; + u8 rx_num; + u8 key_rx; + u8 key1; + u8 key2; + u8 key3; + u8 key4; + u8 key5; +}; +struct CMCS_SLOPE_INFO { + s16 x_min; + s16 x_max; + s16 y_min; + s16 y_max; + s16 key_min; + s16 key_max; +}; +struct CMCS_SPEC_INFO { + u16 screen_min; + u16 screen_max; + u16 key_min; + u16 key_max; +}; +struct CMCS_CMD { + u16 mode; // enable bit + u16 cmcs_size; + u16 base_screen; + u16 base_key; + u8 start_cp_cm; + u8 start_cp_cs; + u8 vcmp_cm; + u8 vcmp_cs; + u32 reserved; // for checksum of firmware +}; +typedef struct _CMCS_INFO { + u32 timeout; + struct CMCS_ADDR_INFO addr; + struct CMCS_CH_INFO ch; + struct CMCS_SPEC_INFO spec_cr; + struct CMCS_SPEC_INFO spec_cm; + struct CMCS_SPEC_INFO spec_cs0; + struct CMCS_SPEC_INFO spec_cs1; + struct CMCS_SLOPE_INFO slope; + u16 sensor1_size; + u16 sensor2_size; + u16 sensor3_size; + u16 reserved; + u32 cmcs_chksum; + u32 sensor_chksum; + struct CMCS_CMD cmd; +} CMCS_INFO; + +typedef struct _CMCS_BIN_INFO { + char magic1[8]; + CMCS_INFO cmcs; + u8 * buf_cmcs; + u32 * buf_sensor; + u16 * buf_node; + char magic2[8]; +} CMCS_BIN_INFO; + +typedef struct _CMCS_BUF { + s16 cm[IST30XX_CMCS_BUF_SIZE]; + s16 spec[IST30XX_CMCS_BUF_SIZE]; + s16 slope0[IST30XX_CMCS_BUF_SIZE]; + s16 slope1[IST30XX_CMCS_BUF_SIZE]; + s16 cs0[IST30XX_CMCS_BUF_SIZE]; + s16 cs1[IST30XX_CMCS_BUF_SIZE]; +} CMCS_BUF; + + +int ist30xx_init_cmcs_sysfs(void); + +#endif // __IST30XX_CMCS_H__ diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx_cmcs_bin.h b/drivers/input/touchscreen/ist30xxa/ist30xx_cmcs_bin.h new file mode 100644 index 00000000..b561de40 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx_cmcs_bin.h @@ -0,0 +1,284 @@ +#ifndef __IST30XXB_CMCS_BIN_H__ +#define __IST30XXB_CMCS_BIN_H__ + +/* ist30xxb cmcs binary: model( ) */ +static unsigned char ist30xxb_cmcs[] = { + 0x43, 0x4d, 0x43, 0x53, 0x31, 0x54, 0x41, 0x47, 0x10, 0x27, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x20, + 0xf4, 0x0f, 0x00, 0x20, 0xf8, 0x0f, 0x00, 0x20, 0xfc, 0x0f, 0x00, 0x20, 0x00, 0x90, 0x00, 0x40, + 0x00, 0xa0, 0x00, 0x40, 0x78, 0x08, 0x10, 0x40, 0x15, 0x0e, 0x01, 0x13, 0x14, 0xff, 0xff, 0xff, + 0xdf, 0x02, 0x55, 0x05, 0xdf, 0x02, 0x55, 0x05, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, + 0x28, 0x0a, 0x80, 0x0c, 0x28, 0x0a, 0x80, 0x0c, 0x28, 0x0a, 0x80, 0x0c, 0x28, 0x0a, 0x80, 0x0c, + 0xc8, 0x00, 0xc8, 0x00, 0xc8, 0x00, 0xc8, 0x00, 0x96, 0x00, 0x96, 0x00, 0x00, 0x01, 0x00, 0x02, + 0x00, 0x04, 0x00, 0x00, 0x8b, 0x37, 0xfa, 0x4a, 0xe3, 0xa7, 0x07, 0x3b, 0x01, 0x00, 0x64, 0x07, + 0xb8, 0x0b, 0xb8, 0x0b, 0x97, 0xc9, 0x08, 0x09, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0xa0, 0xe1, + 0x10, 0xd0, 0x9f, 0xe5, 0x01, 0x40, 0x2d, 0xe9, 0x27, 0x01, 0x00, 0xeb, 0x01, 0x40, 0xbd, 0xe8, + 0x00, 0xd0, 0xa0, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0xf0, 0x0f, 0x00, 0x20, 0xf1, 0xb5, 0x79, 0x4c, + 0x79, 0x4d, 0x21, 0x78, 0x76, 0x4f, 0xa8, 0x6b, 0x00, 0x29, 0x83, 0xb0, 0x00, 0xd0, 0x00, 0x0c, + 0x00, 0x06, 0x00, 0x0e, 0x01, 0x02, 0x01, 0x43, 0x08, 0x04, 0x00, 0x0c, 0x00, 0xf0, 0x4c, 0xfb, + 0xe0, 0x78, 0x00, 0x28, 0x20, 0x79, 0x02, 0xd0, 0x00, 0xf0, 0x0c, 0xfb, 0x01, 0xe0, 0x00, 0xf0, + 0x27, 0xfb, 0x6e, 0x48, 0xc1, 0x6a, 0x00, 0x91, 0x00, 0x21, 0xc1, 0x62, 0x69, 0x49, 0xe8, 0x6b, + 0x0a, 0x78, 0x6b, 0x49, 0x00, 0x2a, 0x08, 0xd1, 0x6a, 0x4b, 0x1a, 0x62, 0x5a, 0x62, 0x4a, 0x68, + 0x00, 0x07, 0x12, 0x09, 0x12, 0x01, 0x00, 0x0f, 0x08, 0xe0, 0x66, 0x4b, 0x00, 0x22, 0x1a, 0x62, + 0x5a, 0x62, 0x4a, 0x68, 0x00, 0x03, 0x12, 0x09, 0x12, 0x01, 0x00, 0x0f, 0x02, 0x43, 0x4a, 0x60, + 0x03, 0x24, 0x26, 0x1f, 0x01, 0xe0, 0x03, 0x2c, 0x02, 0xd1, 0x01, 0x25, 0xed, 0x43, 0x09, 0xe0, + 0x02, 0x2c, 0x01, 0xd1, 0x01, 0x25, 0x05, 0xe0, 0x01, 0x2c, 0x01, 0xd1, 0x35, 0x00, 0x01, 0xe0, + 0x00, 0x2c, 0xf7, 0xd0, 0xe0, 0x07, 0xc0, 0x0f, 0x29, 0x00, 0x00, 0xf0, 0xb5, 0xf8, 0x64, 0x1e, + 0xe9, 0xd5, 0x02, 0x21, 0x03, 0x20, 0x00, 0xf0, 0xff, 0xf8, 0x50, 0x49, 0x00, 0x98, 0xc8, 0x62, + 0x4c, 0x48, 0x4c, 0x4d, 0x00, 0x78, 0x10, 0x35, 0x00, 0x28, 0x24, 0xd1, 0x09, 0x22, 0x00, 0xf0, + 0x07, 0xfb, 0x00, 0xf0, 0x33, 0xfb, 0x52, 0x1e, 0xf9, 0xd2, 0x46, 0x4c, 0x00, 0x21, 0x0e, 0xe0, + 0x00, 0x20, 0x08, 0xe0, 0x4a, 0x43, 0x12, 0x18, 0x93, 0x00, 0xfb, 0x58, 0x52, 0x00, 0x1b, 0x05, + 0x1b, 0x0d, 0x40, 0x1c, 0xab, 0x52, 0x62, 0x78, 0x90, 0x42, 0xf3, 0xd3, 0x49, 0x1c, 0xa0, 0x78, + 0x81, 0x42, 0xed, 0xd3, 0x20, 0x78, 0x00, 0x28, 0x05, 0xd1, 0x3e, 0x49, 0xa0, 0x68, 0x08, 0x62, + 0xe0, 0x68, 0x48, 0x62, 0x03, 0xe0, 0x37, 0x48, 0x81, 0x68, 0x3a, 0x48, 0x01, 0x62, 0x09, 0x22, + 0x00, 0xf0, 0xde, 0xfa, 0x00, 0xf0, 0x0a, 0xfb, 0x52, 0x1e, 0xf9, 0xd2, 0x36, 0x48, 0x00, 0x26, + 0x02, 0x90, 0x36, 0x48, 0x01, 0x90, 0x53, 0xe0, 0x00, 0x24, 0x4c, 0xe0, 0x21, 0x00, 0x30, 0x00, + 0x00, 0xf0, 0x78, 0xf9, 0x00, 0x28, 0x45, 0xd0, 0x2a, 0x49, 0x0a, 0x78, 0x00, 0x2a, 0x1a, 0xd1, + 0x49, 0x78, 0x71, 0x43, 0x0b, 0x19, 0x59, 0x00, 0x9b, 0x00, 0xfb, 0x58, 0x6a, 0x5a, 0x1b, 0x05, + 0x1b, 0x0d, 0x9a, 0x42, 0x01, 0xd8, 0x00, 0x20, 0x0b, 0xe0, 0x82, 0x42, 0x04, 0xd9, 0x12, 0x1a, + 0x12, 0x04, 0xd2, 0x0c, 0x80, 0x18, 0x03, 0xe0, 0x82, 0x1a, 0x12, 0x04, 0xd2, 0x0c, 0x80, 0x1a, + 0xc0, 0x1a, 0x68, 0x52, 0x26, 0xe0, 0x1b, 0x48, 0x21, 0x49, 0x40, 0x78, 0xff, 0x22, 0x91, 0x32, + 0x70, 0x43, 0x00, 0x19, 0x84, 0x46, 0x80, 0x00, 0x38, 0x58, 0x00, 0x05, 0x00, 0x0d, 0x41, 0x18, + 0x91, 0x42, 0x09, 0xd8, 0x1b, 0x4a, 0x11, 0x1a, 0x0b, 0x00, 0x4b, 0x43, 0x19, 0x0a, 0x90, 0x42, + 0x01, 0xd9, 0x88, 0x18, 0x00, 0xe0, 0x50, 0x1a, 0x03, 0x99, 0x00, 0x29, 0x03, 0xd0, 0x61, 0x46, + 0x02, 0x9a, 0x49, 0x00, 0x05, 0xe0, 0x0b, 0x49, 0x01, 0x9a, 0x89, 0x78, 0x61, 0x43, 0x89, 0x19, + 0x49, 0x00, 0x50, 0x52, 0x64, 0x1c, 0x07, 0x48, 0x40, 0x78, 0x84, 0x42, 0xae, 0xd3, 0x76, 0x1c, + 0x04, 0x48, 0x81, 0x78, 0x8e, 0x42, 0xa7, 0xd3, 0xff, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x00, + 0xd4, 0x02, 0x10, 0x40, 0x60, 0x07, 0x00, 0x20, 0xc0, 0x0f, 0x00, 0x20, 0x80, 0x90, 0x00, 0x40, + 0x00, 0xa0, 0x00, 0x40, 0x00, 0x0b, 0x10, 0x40, 0x00, 0x00, 0x00, 0x10, 0xd4, 0x02, 0x00, 0x10, + 0x74, 0xf5, 0xff, 0xff, 0x54, 0x0b, 0x00, 0x00, 0xf3, 0xb5, 0x25, 0x48, 0x82, 0xb0, 0x0f, 0x00, + 0x01, 0x90, 0x00, 0x20, 0x00, 0x90, 0x39, 0xe0, 0x00, 0x25, 0x21, 0xe0, 0x29, 0x00, 0x30, 0x00, + 0x00, 0xf0, 0x00, 0xf9, 0x00, 0x28, 0x19, 0xd0, 0x1e, 0x49, 0x01, 0x9a, 0x49, 0x78, 0x71, 0x43, + 0x49, 0x19, 0x89, 0x00, 0x51, 0x58, 0x09, 0x05, 0x09, 0x0d, 0x08, 0x1a, 0x02, 0x99, 0x00, 0x29, + 0x02, 0xd0, 0x00, 0x28, 0x0a, 0xda, 0x01, 0xe0, 0x00, 0x28, 0x07, 0xdd, 0x3b, 0x00, 0x3a, 0x00, + 0x29, 0x00, 0x30, 0x00, 0x00, 0xf0, 0xc8, 0xf9, 0x40, 0x1c, 0x00, 0xd1, 0x64, 0x1c, 0x6d, 0x1c, + 0x10, 0x48, 0x40, 0x78, 0x85, 0x42, 0xd9, 0xd3, 0x76, 0x1c, 0x0e, 0x48, 0x81, 0x78, 0x8e, 0x42, + 0xd2, 0xd3, 0x01, 0x00, 0x88, 0x78, 0x49, 0x78, 0x48, 0x43, 0xa0, 0x42, 0x0d, 0xd0, 0x00, 0x98, + 0x41, 0x1c, 0x00, 0x91, 0x01, 0x21, 0x49, 0x02, 0x88, 0x42, 0x06, 0xd8, 0x00, 0xf0, 0x20, 0xfa, + 0x00, 0xf0, 0x4c, 0xfa, 0x00, 0x24, 0x26, 0x00, 0xe7, 0xe7, 0xff, 0xbc, 0x08, 0xbc, 0x18, 0x47, + 0xd4, 0x02, 0x10, 0x40, 0x60, 0x07, 0x00, 0x20, 0xf0, 0xb5, 0x5a, 0x4a, 0x85, 0xb0, 0x40, 0x18, + 0x04, 0x92, 0x42, 0x00, 0x80, 0x18, 0x03, 0x90, 0x57, 0x48, 0x02, 0x91, 0x00, 0x90, 0x58, 0x48, + 0x56, 0x4f, 0x81, 0x78, 0x01, 0x91, 0x46, 0x78, 0xb5, 0x21, 0x89, 0x00, 0x38, 0x00, 0x00, 0xf0, + 0x3b, 0xf9, 0x00, 0x25, 0x0b, 0xe0, 0x00, 0x24, 0x06, 0xe0, 0x02, 0x9b, 0x21, 0x00, 0x1a, 0x00, + 0x28, 0x00, 0x00, 0xf0, 0x81, 0xf9, 0x64, 0x1c, 0xb4, 0x42, 0xf6, 0xd3, 0x6d, 0x1c, 0x01, 0x98, + 0x85, 0x42, 0xf0, 0xd3, 0x00, 0xf0, 0xec, 0xf9, 0x00, 0xf0, 0x18, 0xfa, 0x00, 0x25, 0x29, 0xe0, + 0x00, 0x24, 0x24, 0xe0, 0x21, 0x00, 0x28, 0x00, 0x00, 0xf0, 0x8c, 0xf8, 0x00, 0x28, 0x12, 0xd0, + 0x43, 0x49, 0x04, 0x9b, 0x49, 0x78, 0x69, 0x43, 0x0a, 0x19, 0x91, 0x00, 0x59, 0x58, 0x03, 0x04, + 0x09, 0x05, 0x09, 0x0d, 0x1b, 0x0c, 0xcb, 0x1a, 0x00, 0x2b, 0x01, 0xdd, 0x08, 0x1a, 0x00, 0xe0, + 0x40, 0x1a, 0x51, 0x00, 0x78, 0x52, 0x21, 0x00, 0x28, 0x00, 0x00, 0xf0, 0x9b, 0xf8, 0x38, 0x49, + 0x00, 0x9a, 0x49, 0x78, 0x69, 0x43, 0x09, 0x19, 0x49, 0x00, 0x64, 0x1c, 0x50, 0x52, 0xb4, 0x42, + 0xd8, 0xd3, 0x6d, 0x1c, 0x01, 0x98, 0x85, 0x42, 0xd2, 0xd3, 0x00, 0xf0, 0xe7, 0xf9, 0x00, 0x25, + 0x34, 0xe0, 0x00, 0x24, 0x2f, 0xe0, 0x21, 0x00, 0x28, 0x00, 0x00, 0xf0, 0x5b, 0xf8, 0x00, 0x28, + 0x28, 0xd0, 0x2b, 0x49, 0x04, 0x9b, 0x49, 0x78, 0x69, 0x43, 0x09, 0x19, 0x8a, 0x00, 0x9a, 0x58, + 0x03, 0x04, 0x12, 0x05, 0x12, 0x0d, 0x1b, 0x0c, 0xd3, 0x1a, 0x00, 0x2b, 0x01, 0xdd, 0x10, 0x1a, + 0x00, 0xe0, 0x80, 0x1a, 0x49, 0x00, 0x7b, 0x5a, 0x00, 0x04, 0x00, 0x0c, 0x83, 0x42, 0x0b, 0xd9, + 0x78, 0x52, 0x21, 0x00, 0x28, 0x00, 0x00, 0xf0, 0x65, 0xf8, 0x1d, 0x49, 0x00, 0x9a, 0x49, 0x78, + 0x69, 0x43, 0x09, 0x19, 0x49, 0x00, 0x50, 0x52, 0x00, 0x22, 0x53, 0x1e, 0x21, 0x00, 0x28, 0x00, + 0x00, 0xf0, 0x12, 0xf9, 0x64, 0x1c, 0xb4, 0x42, 0xcd, 0xd3, 0x6d, 0x1c, 0x01, 0x98, 0x85, 0x42, + 0xc7, 0xd3, 0x03, 0x98, 0x40, 0x1e, 0x03, 0x90, 0x19, 0xd2, 0x11, 0x4f, 0x00, 0x25, 0x0f, 0xe0, + 0x00, 0x24, 0x0a, 0xe0, 0x78, 0x78, 0x00, 0x99, 0x68, 0x43, 0x00, 0x19, 0x40, 0x00, 0x0a, 0x5a, + 0x21, 0x00, 0x28, 0x00, 0x00, 0xf0, 0x18, 0xf9, 0x64, 0x1c, 0xb4, 0x42, 0xf2, 0xd3, 0x6d, 0x1c, + 0x01, 0x98, 0x85, 0x42, 0xec, 0xd3, 0x05, 0xb0, 0xf0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x00, 0xf0, + 0x5f, 0xf9, 0xa2, 0xe7, 0xd4, 0x02, 0x10, 0x40, 0x44, 0x0a, 0x00, 0x20, 0xd4, 0x02, 0x00, 0x10, + 0x60, 0x07, 0x00, 0x20, 0x70, 0xb4, 0x11, 0x4c, 0x11, 0x4e, 0x23, 0x6b, 0x35, 0x79, 0xf6, 0x78, + 0x02, 0x00, 0x1b, 0x04, 0x64, 0x6b, 0x00, 0x20, 0x1b, 0x0c, 0x00, 0x2e, 0x0c, 0xd0, 0xaa, 0x42, + 0x08, 0xd1, 0x13, 0x29, 0x03, 0xd0, 0x14, 0x29, 0x01, 0xd0, 0xff, 0x29, 0x00, 0xd1, 0x20, 0x00, + 0x70, 0xbc, 0x70, 0x47, 0x18, 0x00, 0xfb, 0xe7, 0xa9, 0x42, 0xfb, 0xd1, 0x13, 0x2a, 0xf6, 0xd0, + 0x14, 0x2a, 0xf4, 0xd0, 0xff, 0x2a, 0xf2, 0xd0, 0xf2, 0xe7, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x20, + 0x60, 0x07, 0x00, 0x20, 0x04, 0x4b, 0x03, 0x4a, 0x5b, 0x78, 0x58, 0x43, 0x40, 0x18, 0x40, 0x00, + 0x10, 0x5a, 0x70, 0x47, 0x00, 0x00, 0x10, 0x40, 0x60, 0x07, 0x00, 0x20, 0x01, 0xc0, 0x8f, 0xe2, + 0x1c, 0xff, 0x2f, 0xe1, 0x70, 0xb5, 0x22, 0x48, 0x00, 0x6b, 0x04, 0x0c, 0x21, 0x48, 0x01, 0x6a, + 0x21, 0x4e, 0xb1, 0x60, 0x40, 0x6a, 0xb5, 0x21, 0xf0, 0x60, 0x20, 0x48, 0xc9, 0x00, 0x00, 0xf0, + 0x4b, 0xf8, 0xb5, 0x21, 0x30, 0x00, 0x89, 0x00, 0x10, 0x30, 0x00, 0xf0, 0x45, 0xf8, 0xe5, 0x07, + 0x00, 0x20, 0xed, 0x0f, 0x6d, 0x1e, 0x25, 0x40, 0xf0, 0x70, 0x02, 0xd1, 0x30, 0x70, 0x00, 0xf0, + 0x05, 0xf9, 0x17, 0x48, 0x17, 0x49, 0x08, 0x63, 0x00, 0x2c, 0x01, 0xd0, 0xa0, 0x07, 0x03, 0xd5, + 0x01, 0x20, 0x30, 0x70, 0x00, 0xf0, 0xfa, 0xf8, 0x13, 0x48, 0x14, 0x49, 0xc8, 0x61, 0x14, 0x48, + 0xc2, 0x68, 0x52, 0x08, 0x52, 0x00, 0xc2, 0x60, 0x00, 0x2d, 0x02, 0xd1, 0x0a, 0x48, 0x10, 0x30, + 0x00, 0xe0, 0x0a, 0x48, 0x0f, 0x4b, 0x04, 0xc8, 0xca, 0x61, 0x00, 0x2c, 0x01, 0xd0, 0x03, 0x2c, + 0x02, 0xd1, 0x98, 0x42, 0x00, 0xd1, 0x05, 0x48, 0x4a, 0x69, 0x52, 0x06, 0xfc, 0xd4, 0xf2, 0xe7, + 0xc0, 0x0f, 0x00, 0x20, 0x00, 0x0b, 0x10, 0x40, 0x60, 0x07, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, + 0x60, 0x3a, 0x30, 0x0a, 0xc0, 0xa1, 0x00, 0x40, 0xab, 0xfc, 0xff, 0x8f, 0x00, 0x40, 0x00, 0x30, + 0x00, 0x20, 0x00, 0x40, 0x44, 0x0a, 0x00, 0x20, 0x89, 0x10, 0x00, 0x22, 0x00, 0xe0, 0x04, 0xc0, + 0x49, 0x1e, 0xfc, 0xd2, 0x70, 0x47, 0x00, 0x00, 0xf0, 0xb4, 0x19, 0x49, 0x01, 0x25, 0xc8, 0x78, + 0x18, 0x4e, 0x19, 0x4f, 0x68, 0x40, 0xc8, 0x70, 0x00, 0x20, 0x81, 0x00, 0x8c, 0x19, 0x61, 0x68, + 0x40, 0x1c, 0x0a, 0x03, 0x4b, 0x04, 0xdb, 0x0e, 0xd2, 0x0e, 0x39, 0x40, 0xdb, 0x03, 0x19, 0x43, + 0x92, 0x02, 0x11, 0x43, 0x18, 0x28, 0x61, 0x60, 0xef, 0xd3, 0x10, 0x49, 0x08, 0x69, 0x68, 0x40, + 0x08, 0x61, 0x0c, 0x48, 0x0e, 0x49, 0x40, 0x38, 0x81, 0x61, 0x0e, 0x49, 0x01, 0x63, 0x41, 0x63, + 0x08, 0x48, 0x0d, 0x49, 0xc0, 0x30, 0x41, 0x60, 0x03, 0x21, 0x89, 0x04, 0x81, 0x60, 0x07, 0x49, + 0x0a, 0x48, 0x40, 0x31, 0x08, 0x60, 0x0a, 0x48, 0x0a, 0x49, 0xc8, 0x60, 0xf0, 0xbc, 0x70, 0x47, + 0x60, 0x07, 0x00, 0x20, 0x40, 0x0a, 0x10, 0x40, 0xff, 0x03, 0xf0, 0xff, 0x00, 0x90, 0x00, 0x40, + 0xc8, 0x61, 0x14, 0x44, 0xc8, 0x61, 0x14, 0x04, 0xff, 0xff, 0x1f, 0x00, 0x0e, 0x15, 0x0e, 0x15, + 0xf8, 0x0f, 0xfe, 0x00, 0x00, 0xa0, 0x00, 0x40, 0x30, 0xb4, 0x0e, 0x4d, 0x0c, 0x4c, 0x6d, 0x78, + 0x68, 0x43, 0x40, 0x18, 0x45, 0x00, 0x60, 0x5b, 0x01, 0x06, 0x00, 0x0a, 0x09, 0x0e, 0x82, 0x18, + 0xc9, 0x18, 0x00, 0x20, 0x4b, 0x1e, 0xc0, 0x43, 0xff, 0x2b, 0x06, 0xd2, 0x53, 0x1e, 0xff, 0x2b, + 0x03, 0xd2, 0x10, 0x02, 0x08, 0x43, 0x60, 0x53, 0x00, 0x20, 0x30, 0xbc, 0x70, 0x47, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x40, 0x60, 0x07, 0x00, 0x20, 0x10, 0xb4, 0x05, 0x4c, 0x03, 0x4b, 0x64, 0x78, + 0x60, 0x43, 0x40, 0x18, 0x40, 0x00, 0x1a, 0x52, 0x10, 0xbc, 0x70, 0x47, 0x00, 0x00, 0x10, 0x40, + 0x60, 0x07, 0x00, 0x20, 0xf0, 0xb4, 0x0d, 0x4f, 0x00, 0x21, 0x7a, 0x78, 0x1e, 0x26, 0x0a, 0x4d, + 0x42, 0x43, 0x09, 0xe0, 0x13, 0x29, 0x05, 0xd0, 0x14, 0x29, 0x03, 0xd0, 0xff, 0x29, 0x01, 0xd0, + 0x53, 0x00, 0xee, 0x52, 0x52, 0x1c, 0x49, 0x1c, 0x7b, 0x78, 0x04, 0x00, 0x5c, 0x43, 0xe3, 0x18, + 0x93, 0x42, 0xef, 0xd8, 0xf0, 0xbc, 0x70, 0x47, 0x00, 0x00, 0x10, 0x40, 0x60, 0x07, 0x00, 0x20, + 0x70, 0xb4, 0x00, 0x21, 0x0a, 0x4b, 0x0b, 0x4a, 0x1e, 0x24, 0x0a, 0xe0, 0x13, 0x29, 0x05, 0xd0, + 0x14, 0x29, 0x03, 0xd0, 0xff, 0x29, 0x01, 0xd0, 0x45, 0x00, 0x5c, 0x53, 0x55, 0x78, 0x40, 0x19, + 0x49, 0x1c, 0x95, 0x78, 0x56, 0x78, 0x75, 0x43, 0x85, 0x42, 0xef, 0xd8, 0x70, 0xbc, 0x70, 0x47, + 0x00, 0x00, 0x10, 0x40, 0x60, 0x07, 0x00, 0x20, 0x02, 0x04, 0x04, 0x49, 0x02, 0x43, 0x00, 0x20, + 0x40, 0x1c, 0x04, 0xc1, 0xb5, 0x28, 0xfb, 0xd3, 0x70, 0x47, 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, + 0x01, 0x48, 0xc1, 0x68, 0xc1, 0x60, 0x70, 0x47, 0x00, 0x90, 0x00, 0x40, 0x70, 0xb5, 0x11, 0x4e, + 0x11, 0x4c, 0x01, 0x25, 0x30, 0x68, 0x00, 0x04, 0x00, 0x0c, 0x01, 0x0a, 0x00, 0x06, 0x00, 0x0e, + 0x61, 0x70, 0xa0, 0x70, 0xe2, 0x78, 0x00, 0x2a, 0x02, 0xd1, 0x49, 0x1e, 0x21, 0x71, 0x01, 0xe0, + 0x40, 0x1e, 0x20, 0x71, 0x28, 0x00, 0xff, 0xf7, 0x79, 0xfc, 0x20, 0x78, 0x00, 0x28, 0x05, 0xd0, + 0x01, 0x2d, 0x03, 0xd1, 0xff, 0xf7, 0x20, 0xff, 0x00, 0x25, 0xe3, 0xe7, 0x70, 0xbc, 0x08, 0xbc, + 0x18, 0x47, 0x00, 0x00, 0x40, 0x90, 0x00, 0x40, 0x60, 0x07, 0x00, 0x20, 0x02, 0x48, 0xc1, 0x68, + 0xc9, 0x07, 0xfc, 0xd0, 0x70, 0x47, 0x00, 0x00, 0x00, 0x90, 0x00, 0x40, 0x8b, 0x37, 0xfa, 0x4a, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x02, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x15, 0x0e, 0x15, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x8d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x30, 0x00, 0xff, 0x05, 0xff, 0x03, 0x18, 0x10, 0x08, 0x00, + 0x00, 0x2c, 0x00, 0x2c, 0x64, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xc8, 0x00, 0x40, 0x06, 0x00, 0x00, 0x08, 0x20, + 0x11, 0x00, 0x10, 0x00, 0x48, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x54, 0x55, 0x45, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x14, 0x00, 0x00, 0x0c, 0x0c, 0x06, 0x00, + 0x00, 0x04, 0x7c, 0x78, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0xc0, 0xda, 0x00, 0x00, + 0x60, 0x30, 0x30, 0x00, 0x60, 0x3c, 0x30, 0x0c, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xd0, 0x07, 0x08, 0x00, 0x12, 0x12, 0xc8, 0x01, 0x90, 0x81, 0x0c, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xff, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0xff, 0x0f, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xff, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0xff, 0x0f, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 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, + 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, + 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, + 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, + 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, + 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, 0x60, 0x30, 0x30, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xc8, 0x61, 0x14, 0x04, + 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x04, + 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x04, + 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x04, + 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x04, + 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x44, 0xc8, 0x61, 0x14, 0x44, + 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x04, 0xc8, 0x61, 0x14, 0x04, 0x00, 0xc0, 0x91, 0xe7, + 0x21, 0x2c, 0x92, 0xe7, 0x42, 0xbc, 0x92, 0xe7, 0x63, 0x28, 0x93, 0xe7, 0x84, 0xb8, 0x93, 0xe7, + 0xa5, 0x24, 0x94, 0xe7, 0xc6, 0xb4, 0x94, 0xe7, 0xe7, 0x20, 0x95, 0xe7, 0x08, 0xb1, 0x95, 0xe7, + 0x29, 0x9d, 0x98, 0xe7, 0x4a, 0x01, 0x99, 0xe7, 0x6b, 0x99, 0x99, 0xe7, 0x8c, 0x05, 0x9a, 0xe7, + 0xad, 0x95, 0x9a, 0xe7, 0xce, 0x09, 0x90, 0xe7, 0xef, 0x11, 0x90, 0xe7, 0x10, 0x0e, 0x90, 0xe7, + 0x31, 0x46, 0x90, 0xe7, 0x52, 0x52, 0x90, 0xe7, 0x73, 0x4a, 0x90, 0xe7, 0x94, 0x4e, 0x90, 0xe7, + 0xb5, 0x02, 0x90, 0xe7, 0xd6, 0x02, 0x90, 0xe7, 0xf7, 0x02, 0x90, 0xe7, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x80, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x01, 0x10, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x02, 0x00, + 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x1e, 0x00, + 0xf8, 0x0f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x50, 0x30, + 0x32, 0x30, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x60, 0x30, 0x60, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x87, 0x07, 0x71, 0x07, 0x5f, 0x07, 0x47, 0x07, 0x38, 0x07, 0x1a, 0x07, 0x34, 0x07, 0x53, 0x07, + 0x64, 0x07, 0x79, 0x07, 0x8c, 0x07, 0x9c, 0x07, 0xa7, 0x07, 0x00, 0x00, 0x03, 0x08, 0xf8, 0x07, + 0xea, 0x07, 0xd8, 0x07, 0xcf, 0x07, 0xba, 0x07, 0xa0, 0x07, 0x91, 0x07, 0xb3, 0x07, 0xb5, 0x07, + 0xc4, 0x07, 0xce, 0x07, 0xc3, 0x07, 0x00, 0x00, 0xc3, 0x07, 0xd2, 0x07, 0xce, 0x07, 0xc7, 0x07, + 0xca, 0x07, 0xc2, 0x07, 0xc5, 0x07, 0xcf, 0x07, 0xd1, 0x07, 0xd6, 0x07, 0xd9, 0x07, 0xdb, 0x07, + 0xd7, 0x07, 0x00, 0x00, 0xdd, 0x07, 0xda, 0x07, 0xd7, 0x07, 0xd2, 0x07, 0xd2, 0x07, 0xcb, 0x07, + 0xc1, 0x07, 0xd0, 0x07, 0xc2, 0x07, 0xc5, 0x07, 0xc8, 0x07, 0xce, 0x07, 0xba, 0x07, 0x00, 0x00, + 0x73, 0x07, 0xa3, 0x07, 0xa9, 0x07, 0xa2, 0x07, 0xa6, 0x07, 0x9b, 0x07, 0x9f, 0x07, 0xa4, 0x07, + 0xa7, 0x07, 0xa9, 0x07, 0xaa, 0x07, 0xac, 0x07, 0xa2, 0x07, 0x00, 0x00, 0x8e, 0x07, 0x8a, 0x07, + 0x85, 0x07, 0x81, 0x07, 0x86, 0x07, 0x82, 0x07, 0x88, 0x07, 0x77, 0x07, 0x79, 0x07, 0x7b, 0x07, + 0x7d, 0x07, 0x7f, 0x07, 0x57, 0x07, 0x00, 0x00, 0x2a, 0x07, 0x54, 0x07, 0x53, 0x07, 0x50, 0x07, + 0x54, 0x07, 0x4e, 0x07, 0x46, 0x07, 0x4c, 0x07, 0x4e, 0x07, 0x55, 0x07, 0x57, 0x07, 0x53, 0x07, + 0x48, 0x07, 0x00, 0x00, 0x32, 0x07, 0x32, 0x07, 0x33, 0x07, 0x2d, 0x07, 0x33, 0x07, 0x41, 0x07, + 0x1d, 0x07, 0x22, 0x07, 0x24, 0x07, 0x25, 0x07, 0x26, 0x07, 0x24, 0x07, 0xf6, 0x06, 0x00, 0x00, + 0xf6, 0x06, 0x4c, 0x07, 0x3f, 0x07, 0x38, 0x07, 0x3f, 0x07, 0x3d, 0x07, 0x2a, 0x07, 0x2e, 0x07, + 0x32, 0x07, 0x34, 0x07, 0x33, 0x07, 0x34, 0x07, 0x2a, 0x07, 0x00, 0x00, 0x3e, 0x07, 0x38, 0x07, + 0x37, 0x07, 0x33, 0x07, 0x4b, 0x07, 0x2e, 0x07, 0x21, 0x07, 0x28, 0x07, 0x2a, 0x07, 0x2b, 0x07, + 0x2b, 0x07, 0x28, 0x07, 0xdb, 0x06, 0x00, 0x00, 0xf2, 0x06, 0x22, 0x07, 0x25, 0x07, 0x20, 0x07, + 0x25, 0x07, 0x1b, 0x07, 0x0e, 0x07, 0x13, 0x07, 0x15, 0x07, 0x16, 0x07, 0x15, 0x07, 0x13, 0x07, + 0x07, 0x07, 0x00, 0x00, 0x2c, 0x07, 0x23, 0x07, 0x27, 0x07, 0x38, 0x07, 0x26, 0x07, 0x1b, 0x07, + 0x0f, 0x07, 0x18, 0x07, 0x19, 0x07, 0x19, 0x07, 0x18, 0x07, 0x15, 0x07, 0xaf, 0x06, 0x00, 0x00, + 0xcb, 0x06, 0x2e, 0x07, 0x2f, 0x07, 0x2a, 0x07, 0x30, 0x07, 0x29, 0x07, 0x18, 0x07, 0x1e, 0x07, + 0x20, 0x07, 0x21, 0x07, 0x20, 0x07, 0x1d, 0x07, 0x19, 0x07, 0x00, 0x00, 0x4e, 0x07, 0x2c, 0x07, + 0x3f, 0x07, 0x26, 0x07, 0x2c, 0x07, 0x23, 0x07, 0x16, 0x07, 0x21, 0x07, 0x20, 0x07, 0x21, 0x07, + 0x20, 0x07, 0x1a, 0x07, 0x65, 0x06, 0x00, 0x00, 0x4a, 0x06, 0xfe, 0x06, 0x00, 0x07, 0xfc, 0x06, + 0x03, 0x07, 0xfd, 0x06, 0xec, 0x06, 0xf3, 0x06, 0xf4, 0x06, 0xf6, 0x06, 0xf5, 0x06, 0xf1, 0x06, + 0xfe, 0x06, 0x00, 0x00, 0x6d, 0x07, 0x26, 0x07, 0x0b, 0x07, 0x06, 0x07, 0x0d, 0x07, 0x04, 0x07, + 0xf7, 0x06, 0x02, 0x07, 0x00, 0x07, 0x02, 0x07, 0x00, 0x07, 0xf7, 0x06, 0xb8, 0x05, 0x00, 0x00, + 0x0a, 0x06, 0x1d, 0x07, 0x1f, 0x07, 0x1d, 0x07, 0x24, 0x07, 0x20, 0x07, 0x0e, 0x07, 0x17, 0x07, + 0x17, 0x07, 0x19, 0x07, 0x18, 0x07, 0x17, 0x07, 0x61, 0x07, 0x00, 0x00, 0xdc, 0x07, 0x09, 0x07, + 0xf8, 0x06, 0xf0, 0x06, 0xf7, 0x06, 0xf0, 0x06, 0xe2, 0x06, 0xef, 0x06, 0xf2, 0x06, 0x10, 0x07, + 0xfe, 0x06, 0xfc, 0x06, 0x47, 0x07, 0x00, 0x00, 0x0d, 0x07, 0xba, 0x06, 0xab, 0x06, 0xa2, 0x06, + 0xaa, 0x06, 0xa1, 0x06, 0x91, 0x06, 0xa0, 0x06, 0xa3, 0x06, 0xaa, 0x06, 0xac, 0x06, 0xb9, 0x06, + 0xc8, 0x07, 0x00, 0x00, 0x91, 0x07, 0xe9, 0x06, 0xe2, 0x06, 0xd9, 0x06, 0xe0, 0x06, 0xda, 0x06, + 0xc8, 0x06, 0xda, 0x06, 0xde, 0x06, 0xe5, 0x06, 0xfc, 0x06, 0xea, 0x06, 0x53, 0x07, 0xfd, 0x06, + 0x1a, 0x07, 0x88, 0x06, 0x83, 0x06, 0x79, 0x06, 0x81, 0x06, 0x78, 0x06, 0x63, 0x06, 0x73, 0x06, + 0x75, 0x06, 0x79, 0x06, 0x7f, 0x06, 0xa4, 0x06, 0x43, 0x07, 0x04, 0x07, 0x43, 0x4d, 0x43, 0x53, + 0x31, 0x54, 0x41, 0x47 +}; + +#endif // __IST30XXB_CMCS_BIN_H__ diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx_misc.c b/drivers/input/touchscreen/ist30xxa/ist30xx_misc.c new file mode 100644 index 00000000..aa6f3e51 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx_misc.c @@ -0,0 +1,1582 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xx.h" +#include "ist30xx_update.h" +#include "ist30xx_misc.h" + +#if IST30XX_CHKIC +#include "ist30xx_chkic_bin.h" +#endif + +#define TSP_CH_SCREEN (1) +#define TSP_CH_KEY (2) + +#define TOUCH_NODE_PARSING_DEBUG (0) + +extern struct ist30xx_data *ts_data; + +TSP_INFO ist30xx_tsp_info; +TKEY_INFO ist30xx_tkey_info; + +static u32 *ist30xx_frame_buf; +static u32 *ist30xx_frame_rawbuf; +static u32 *ist30xx_frame_fltbuf; + + +int ist30xx_tkey_update_info(void) +{ + int ret = 0; + u32 tkey_info1, tkey_info2, tkey_info3; + TKEY_INFO *tkey = &ist30xx_tkey_info; + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_KEY_INFO1, &tkey_info1); + if (unlikely(ret)) + return ret; + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_KEY_INFO2, &tkey_info2); + if (unlikely(ret)) + return ret; + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_KEY_INFO3, &tkey_info3); + if (unlikely(ret)) + return ret; + + tkey->enable = ((tkey_info1 & (0xFF << 24)) ? true : false); + tkey->key_num = (tkey_info1 >> 16) & 0xFF; + tkey->ch_num[0] = (tkey_info2 >> 24) & 0xFF; + tkey->ch_num[1] = (tkey_info2 >> 16) & 0xFF; + tkey->ch_num[2] = (tkey_info2 >> 8) & 0xFF; + tkey->ch_num[3] = tkey_info2 & 0xFF; + tkey->ch_num[4] = (tkey_info3 >> 24) & 0xFF; + + return ret; +} + + +#define TSP_INFO_SWAP_XY (1 << 0) +#define TSP_INFO_FLIP_X (1 << 1) +#define TSP_INFO_FLIP_Y (1 << 2) +int ist30xx_tsp_update_info(void) +{ + int ret = 0; + u32 tsp_ch_num, tsp_swap, tsp_dir; + TSP_INFO *tsp = &ist30xx_tsp_info; + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_TSP_SWAP_INFO, &tsp_swap); + if (unlikely(ret)) return ret; + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_TSP_DIRECTION, &tsp_dir); + if (unlikely(ret)) return ret; + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_TSP_CHNUM1, &tsp_ch_num); + if (unlikely(ret || !tsp_ch_num)) return ret; + + tsp->finger_num = IST30XX_MAX_MT_FINGERS; + + tsp->ch_num.rx = tsp_ch_num >> 16; + tsp->ch_num.tx = tsp_ch_num & 0xFFFF; + + tsp->dir.swap_xy = (tsp_swap & TSP_INFO_SWAP_XY ? true : false); + tsp->dir.flip_x = (tsp_swap & TSP_INFO_FLIP_X ? true : false); + tsp->dir.flip_y = (tsp_swap & TSP_INFO_FLIP_Y ? true : false); + + tsp->node.len = tsp->ch_num.tx * tsp->ch_num.rx; + tsp->height = (tsp->dir.swap_xy ? tsp->ch_num.rx : tsp->ch_num.tx); + tsp->width = (tsp->dir.swap_xy ? tsp->ch_num.tx : tsp->ch_num.rx); + + return ret; +} + +int ist30xx_check_valid_ch(int ch_tx, int ch_rx) +{ + TKEY_INFO *tkey = &ist30xx_tkey_info; + TSP_INFO *tsp = &ist30xx_tsp_info; + + if (unlikely((ch_tx > tsp->ch_num.tx) || (ch_rx > tsp->ch_num.rx))) + return 0; + + if (tkey->enable) { + if (tkey->axis_rx) { + tsp_verb("tx: %d, rx: %d\n", ch_tx, ch_rx); + if (ch_rx == tsp->ch_num.rx - 1) { + tsp_verb("ch_tx: %d\n", ch_tx); + if ((ch_tx == tkey->ch_num[0]) || (ch_tx == tkey->ch_num[1]) || + (ch_tx == tkey->ch_num[2]) || (ch_tx == tkey->ch_num[3]) || + (ch_tx == tkey->ch_num[4])) + return TSP_CH_KEY; + else + return 0; + } + } else { + if (ch_tx == tsp->ch_num.tx - 1) { + if ((ch_rx == tkey->ch_num[0]) || (ch_rx == tkey->ch_num[1]) || + (ch_rx == tkey->ch_num[2]) || (ch_rx == tkey->ch_num[3]) || + (ch_rx == tkey->ch_num[4])) + return TSP_CH_KEY; + else + return 0; + } + } + } + + return TSP_CH_SCREEN; +} + + +int ist30xx_parse_touch_node(u8 flag, struct TSP_NODE_BUF *node) +{ +#if TOUCH_NODE_PARSING_DEBUG + int j; + TSP_INFO *tsp = &ist30xx_tsp_info; +#endif + int i; + u16 *raw = (u16 *)&node->raw; + u16 *base = (u16 *)&node->base; + u16 *filter = (u16 *)&node->filter; + u32 *tmp_rawbuf = ist30xx_frame_rawbuf; + u32 *tmp_fltbuf = ist30xx_frame_fltbuf; + + for (i = 0; i < node->len; i++) { + if (flag & (NODE_FLAG_RAW | NODE_FLAG_BASE)) { + *raw++ = *tmp_rawbuf & 0xFFF; + *base++ = (*tmp_rawbuf >> 16) & 0xFFF; + + tmp_rawbuf++; + } + if (flag & NODE_FLAG_FILTER) + *filter++ = *tmp_fltbuf++ & 0xFFF; + } + +#if TOUCH_NODE_PARSING_DEBUG + tsp_info("RAW - %d * %d\n", tsp->ch_num.tx, tsp->ch_num.rx); + for (i = 0; i < tsp->ch_num.tx; i++) { + printk("\n[ TSP ] "); + for (j = 0; j < tsp->ch_num.rx; j++) + printk("%4d ", node->raw[i][j]); + } + + tsp_info("BASE - %d * %d\n", tsp->ch_num.tx, tsp->ch_num.rx); + for (i = 0; i < tsp->ch_num.tx; i++) { + printk("\n[ TSP ] "); + for (j = 0; j < tsp->ch_num.rx; j++) + printk("%4d ", node->base[i][j]); + } + + tsp_info("FILTER - %d * %d\n", tsp->ch_num.tx, tsp->ch_num.rx); + for (i = 0; i < tsp->ch_num.tx; i++) { + printk("\n[ TSP ] "); + for (j = 0; j < tsp->ch_num.rx; j++) + printk("%4d ", node->filter[i][j]); + } +#endif + + return 0; +} + +int print_touch_node(u8 flag, struct TSP_NODE_BUF *node, char *buf, bool ch_tsp) +{ + int i, j; + int count = 0; + int val = 0; + const int msg_len = 128; + char msg[msg_len]; + TSP_INFO *tsp = &ist30xx_tsp_info; + + if (tsp->dir.swap_xy) { + } else { + for (i = 0; i < tsp->ch_num.tx; i++) { + for (j = 0; j < tsp->ch_num.rx; j++) { + if (ch_tsp && (ist30xx_check_valid_ch(i, j) != TSP_CH_SCREEN)) + continue; + + if (flag == NODE_FLAG_RAW) + val = (int)node->raw[i][j]; + else if (flag == NODE_FLAG_BASE) + val = (int)node->base[i][j]; + else if (flag == NODE_FLAG_FILTER) + val = (int)node->filter[i][j]; + else if (flag == NODE_FLAG_DIFF) + val = (int)(node->raw[i][j] - node->base[i][j]); + else + return 0; + + if (val < 0) val = 0; + + count += snprintf(msg, msg_len, "%4d ", val); + strncat(buf, msg, msg_len); + } + + count += snprintf(msg, msg_len, "\n"); + strncat(buf, msg, msg_len); + } + } + + return count; +} + +int parse_tsp_node(u8 flag, struct TSP_NODE_BUF *node, s16 *buf16) +{ + int i, j; + s16 val = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + + if (unlikely((flag != NODE_FLAG_RAW) && (flag != NODE_FLAG_BASE) && + (flag != NODE_FLAG_FILTER) && (flag != NODE_FLAG_DIFF))) + return -EPERM; + + if (tsp->dir.swap_xy) { + } else { + for (i = 0; i < tsp->ch_num.tx; i++) { + for (j = 0; j < tsp->ch_num.rx; j++) { + if (ist30xx_check_valid_ch(i, j) != TSP_CH_SCREEN) + continue; + + switch ((int)flag) { + case NODE_FLAG_RAW: + val = (s16)node->raw[i][j]; + break; + case NODE_FLAG_BASE: + val = (s16)node->base[i][j]; + break; + case NODE_FLAG_FILTER: + val = (s16)node->filter[i][j]; + break; + case NODE_FLAG_DIFF: + val = (s16)(node->raw[i][j] - node->base[i][j]); + break; + } + + if (val < 0) val = 0; + + *buf16++ = val; + } + } + } + + return 0; +} + +int ist30xx_read_touch_node(u8 flag, struct TSP_NODE_BUF *node) +{ + int ret = 0; + u32 addr = IST30XXB_RAW_ADDR; + + if (ts_data->chip_id == IST3038_CHIP_ID) + addr += 0xD4; + + ist30xx_disable_irq(ts_data); + + if (flag & NODE_FLAG_NO_CCP) { + ist30xx_reset(false); + + ret = ist30xx_write_cmd(ts_data->client, CMD_USE_CORRECT_CP, 0); + if (unlikely(ret)) + goto read_tsp_node_end; + } + + ret = ist30xx_cmd_reg(ts_data->client, CMD_ENTER_REG_ACCESS); + if (unlikely(ret)) + goto read_tsp_node_end; + + ret = ist30xx_write_cmd(ts_data->client, IST30XX_RX_CNT_ADDR, node->len); + if (unlikely(ret)) + goto reg_access_end; + + if (flag & (NODE_FLAG_RAW | NODE_FLAG_BASE)) { + tsp_info("Reg addr: %x, size: %d\n", addr, node->len); + ret = ist30xx_read_buf(ts_data->client, addr, + ist30xx_frame_rawbuf, node->len); + if (unlikely(ret)) + goto reg_access_end; + } + + if (flag & NODE_FLAG_FILTER) { + tsp_info("Reg addr: %x, size: %d\n", IST30XXB_FILTER_ADDR, node->len); + ret = ist30xx_read_buf(ts_data->client, IST30XXB_FILTER_ADDR, + ist30xx_frame_fltbuf, node->len); + if (unlikely(ret)) + goto reg_access_end; + } + +reg_access_end: + ist30xx_cmd_reg(ts_data->client, CMD_EXIT_REG_ACCESS); + ist30xx_cmd_start_scan(ts_data->client); + +read_tsp_node_end: + ist30xx_enable_irq(ts_data); + + return ret; +} + + +/* sysfs: /sys/class/touch/node/refresh */ +ssize_t ist30xx_frame_refresh(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + u8 flag = NODE_FLAG_RAW | NODE_FLAG_BASE | NODE_FLAG_FILTER; + + tsp_info("refresh\n"); + + ret = ist30xx_read_touch_node(flag, &tsp->node); + if (unlikely(ret)) { + tsp_err("cmd 1frame raw update fail\n"); + return sprintf(buf, "FAIL\n"); + } + + ist30xx_parse_touch_node(flag, &tsp->node); + + return sprintf(buf, "OK\n"); +} + + +/* sysfs: /sys/class/touch/node/read_nocp */ +ssize_t ist30xx_frame_nocp(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + u8 flag = NODE_FLAG_RAW | NODE_FLAG_BASE | NODE_FLAG_FILTER | + NODE_FLAG_NO_CCP; + + ret = ist30xx_read_touch_node(flag, &tsp->node); + if (unlikely(ret)) { + tsp_err("cmd 1frame raw update fail\n"); + return sprintf(buf, "FAIL\n"); + } + + ist30xx_parse_touch_node(flag, &tsp->node); + + return sprintf(buf, "OK\n"); +} + + +/* sysfs: /sys/class/touch/node/base */ +ssize_t ist30xx_base_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xxb baseline(%d)\n", tsp->node.len); + + count += print_touch_node(NODE_FLAG_BASE, &tsp->node, buf, false); + + return count; +} + + +/* sysfs: /sys/class/touch/node/raw */ +ssize_t ist30xx_raw_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xxb raw(%d)\n", tsp->node.len); + + count += print_touch_node(NODE_FLAG_RAW, &tsp->node, buf, false); + + return count; +} + + +/* sysfs: /sys/class/touch/node/diff */ +ssize_t ist30xx_diff_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xxb difference (%d)\n", tsp->node.len); + + count += print_touch_node(NODE_FLAG_DIFF, &tsp->node, buf, false); + + return count; +} + + +/* sysfs: /sys/class/touch/node/filter */ +ssize_t ist30xx_filter_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xxb filter (%d)\n", tsp->node.len); + + count += print_touch_node(NODE_FLAG_FILTER, &tsp->node, buf, false); + + return count; +} + + +extern int calib_ms_delay; +/* sysfs: /sys/class/touch/sys/clb_time */ +ssize_t ist30xx_calib_time_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + int ms_delay; + + sscanf(buf, "%d", &ms_delay); + + if (ms_delay > 10 && ms_delay < 1000) // 1sec ~ 100sec + calib_ms_delay = ms_delay; + + tsp_info("Calibration wait time %dsec\n", calib_ms_delay / 10); + + return size; +} + +/* sysfs: /sys/class/touch/sys/clb */ +ssize_t ist30xx_calib_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + ist30xx_disable_irq(ts_data); + + ist30xx_reset(false); + + ist30xx_calibrate(1); + + ist30xx_start(ts_data); + + return 0; +} + +/* sysfs: /sys/class/touch/sys/clb_result */ +ssize_t ist30xx_calib_result_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret; + int count = 0; + u32 value; + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(ts_data); + ist30xx_reset(false); + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_CALIB_RESULT, &value); + if (unlikely(ret)) { + count = sprintf(buf, "Error Read Calibration Result\n"); + goto calib_show_end; + } + + count = sprintf(buf, + "Calibration Status : %d, Max raw gap : %d - (raw: %08x)\n", + CALIB_TO_STATUS(value), CALIB_TO_GAP(value), value); + +calib_show_end: + ist30xx_start(ts_data); + ist30xx_enable_irq(ts_data); + mutex_unlock(&ist30xx_mutex); + + return count; +} + +/* sysfs: /sys/class/touch/sys/power_on */ +ssize_t ist30xx_power_on_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + tsp_info("Power enable: %d\n", true); + + mutex_lock(&ist30xx_mutex); + ist30xx_internal_resume(ts_data); + ist30xx_enable_irq(ts_data); + mutex_unlock(&ist30xx_mutex); + + ist30xx_start(ts_data); + + return 0; +} + +/* sysfs: /sys/class/touch/sys/power_off */ +ssize_t ist30xx_power_off_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + tsp_info("Power enable: %d\n", false); + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(ts_data); + ist30xx_internal_suspend(ts_data); + mutex_unlock(&ist30xx_mutex); + + return 0; +} + +extern int ist30xx_max_error_cnt; +/* sysfs: /sys/class/touch/sys/errcnt */ +ssize_t ist30xx_errcnt_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int err_cnt; + + sscanf(buf, "%d", &err_cnt); + + if (unlikely(err_cnt < 0)) + return size; + + tsp_info("Request reset error count: %d\n", err_cnt); + + ist30xx_max_error_cnt = err_cnt; + + return size; +} + +#if IST30XX_EVENT_MODE +extern int ist30xx_max_scan_retry; +/* sysfs: /sys/class/touch/sys/scancnt */ +ssize_t ist30xx_scancnt_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int retry; + + sscanf(buf, "%d", &retry); + + if (unlikely(retry < 0)) + return size; + + tsp_info("Timer scan count retry: %d\n", retry); + + ist30xx_max_scan_retry = retry; + + return size; +} + +extern int timer_period_ms; +/* sysfs: /sys/class/touch/sys/timerms */ +ssize_t ist30xx_timerms_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ms; + + sscanf(buf, "%d", &ms); + + if (unlikely((ms < 0) || (ms > 10000))) + return size; + + tsp_info("Timer period ms: %dms\n", ms); + + timer_period_ms = ms; + + return size; +} +#endif + +extern int ist30xx_dbg_level; +/* sysfs: /sys/class/touch/sys/printk */ +ssize_t ist30xx_printk_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int level; + + sscanf(buf, "%d", &level); + + if (unlikely((level < DEV_ERR) || (level > DEV_VERB))) + return size; + + tsp_info("prink log level: %d\n", level); + + ist30xx_dbg_level = level; + + return size; +} + +ssize_t ist30xx_printk_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + return sprintf(buf, "prink log level: %d\n", ist30xx_dbg_level); +} + +/* sysfs: /sys/class/touch/sys/printk5 */ +ssize_t ist30xx_printk5_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + tsp_info("prink log level:%d\n", DEV_DEBUG); + + ist30xx_dbg_level = DEV_DEBUG; + + return 0; +} + +/* sysfs: /sys/class/touch/sys/printk6 */ +ssize_t ist30xx_printk6_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + tsp_info("prink log level:%d\n", DEV_VERB); + + ist30xx_dbg_level = DEV_VERB; + + return 0; +} + +/* sysfs: /sys/class/touch/sys/max_touch */ +ssize_t ist30xx_touch_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int finger; + int key; + + sscanf(buf, "%d %d", &finger, &key); + + tsp_info("fingers : %d, keys : %d\n", finger, key); + + ts_data->max_fingers = finger; + ts_data->max_keys = key; + + return size; +} + +extern void ist30xx_scheduled_reset(void); +extern int ist30xx_report_rate; +/* sysfs: /sys/class/touch/sys/touch_rate */ +ssize_t ist30xx_touch_rate_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + int rate; + + sscanf(buf, "%d", &rate); // us + + if (unlikely(rate > 0xFFFF)) // over 65.5ms + return size; + + tsp_info("touch reporting rate: %d\n", rate); + + ist30xx_report_rate = rate; + + ist30xx_scheduled_reset(); + + return size; +} + +extern int ist30xx_idle_rate; +/* sysfs: /sys/class/touch/sys/idle_rate */ +ssize_t ist30xx_idle_scan_rate_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + int rate; + + sscanf(buf, "%d", &rate); // us + + if (unlikely(rate > 0xFFFF)) // over 65.5ms + return size; + + tsp_info("touch idle scan rate: %d\n", rate); + + ist30xx_idle_rate = rate; + + ist30xx_scheduled_reset(); + + return size; +} + +extern void ist30xx_set_ta_mode(bool charging); +/* sysfs: /sys/class/touch/sys/mode_ta */ +ssize_t ist30xx_ta_mode_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int mode; + + sscanf(buf, "%d", &mode); + + if (unlikely((mode != 0) && (mode != 1))) // enable/disable + return size; + + ist30xx_set_ta_mode(mode); + + return size; +} + +extern void ist30xx_set_call_mode(int mode); +/* sysfs: /sys/class/touch/sys/mode_call */ +ssize_t ist30xx_call_mode_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + int mode; + + sscanf(buf, "%d", &mode); + + if (unlikely((mode != 0) && (mode != 1))) // enable/disable + return size; + + ist30xx_set_call_mode(mode); + + return size; +} + +extern void ist30xx_set_cover_mode(int mode); +/* sysfs: /sys/class/touch/sys/mode_cover */ +ssize_t ist30xx_cover_mode_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + int mode; + + sscanf(buf, "%d", &mode); + + if (unlikely((mode != 0) && (mode != 1))) // enable/disable + return size; + + ist30xx_set_cover_mode(mode); + + return size; +} + +#define TUNES_CMD_WRITE (1) +#define TUNES_CMD_READ (2) +#define TUNES_CMD_REG_ENTER (3) +#define TUNES_CMD_REG_EXIT (4) +#define TUNES_CMD_UPDATE_PARAM (5) +#define TUNES_CMD_UPDATE_FW (6) + +#define DIRECT_ADDR(n) (IST30XXB_DA_ADDR(n)) +#define DIRECT_CMD_WRITE ('w') +#define DIRECT_CMD_READ ('r') + +#pragma pack(1) +typedef struct { + u8 cmd; + u32 addr; + u16 len; +} TUNES_INFO; +#pragma pack() +#pragma pack(1) +typedef struct { + char cmd; + u32 addr; + u32 val; +} DIRECT_INFO; +#pragma pack() + +static TUNES_INFO ist30xx_tunes; +static DIRECT_INFO ist30xx_direct; +static bool tunes_cmd_done = false; +static bool ist30xx_reg_mode = false; + +/* sysfs: /sys/class/touch/sys/direct */ +ssize_t ist30xxb_direct_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret = -EPERM; + DIRECT_INFO *direct = (DIRECT_INFO *)&ist30xx_direct; + + sscanf(buf, "%c %x %x", &direct->cmd, &direct->addr, &direct->val); + + tsp_debug("Direct cmd: %c, addr: %x, val: %x\n", + direct->cmd, direct->addr, direct->val); + + if (unlikely((direct->cmd != DIRECT_CMD_WRITE) && + (direct->cmd != DIRECT_CMD_READ))) { + tsp_warn("Direct cmd is not correct!\n"); + return size; + } + + if (ist30xx_intr_wait(30) < 0) + return size; + + ts_data->status.event_mode = false; + if (direct->cmd == DIRECT_CMD_WRITE) { + ret = ist30xx_write_cmd(ts_data->client, DIRECT_ADDR(direct->addr), + direct->val); + ret = ist30xx_read_cmd(ts_data->client, DIRECT_ADDR(direct->addr), + &direct->val); + tsp_debug("Direct write addr: %x, val: %x\n", + direct->addr, direct->val); + } + ts_data->status.event_mode = true; + + return size; +} + +#define DIRECT_BUF_COUNT (4) +ssize_t ist30xxb_direct_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int i, ret, count = 0; + int len; + u32 addr; + u32 buf32[DIRECT_BUF_COUNT]; + int max_len = DIRECT_BUF_COUNT; + const int msg_len = 256; + char msg[msg_len]; + + DIRECT_INFO *direct = (DIRECT_INFO *)&ist30xx_direct; + + if (unlikely(direct->cmd != DIRECT_CMD_READ)) + return sprintf(buf, "ex) echo r addr len > direct\n"); + + len = direct->val; + addr = DIRECT_ADDR(direct->addr); + + if (ist30xx_intr_wait(30) < 0) + return 0; + ts_data->status.event_mode = false; + while (len > 0) { + if (len < max_len) max_len = len; + + memset(buf32, 0, sizeof(buf32)); + ret = ist30xxb_burst_read(ts_data->client, addr, buf32, max_len); + if (unlikely(ret)) { + count = sprintf(buf, "I2C Burst read fail, addr: %x\n", addr); + break; + } + + for (i = 0; i < max_len; i++) { + count += snprintf(msg, msg_len, "0x%08x ", buf32[i]); + strncat(buf, msg, msg_len); + } + count += snprintf(msg, msg_len, "\n"); + strncat(buf, msg, msg_len); + + addr += max_len * IST30XX_DATA_LEN; + len -= max_len; + } + ts_data->status.event_mode = true; + + tsp_debug("%s", buf); + + return count; +} + +/* sysfs: /sys/class/touch/tunes/node_info */ +ssize_t tunes_node_info_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int size; + TSP_INFO *tsp = &ist30xx_tsp_info; + TKEY_INFO *tkey = &ist30xx_tkey_info; + + size = sprintf(buf, "%d %d %d %d %d %d %d %d %d %d %d %d %d ", + ts_data->chip_id, tsp->dir.swap_xy, tsp->ch_num.tx, tsp->ch_num.rx, + tsp->baseline, tkey->axis_rx, tkey->enable, tkey->baseline, + tkey->ch_num[0], tkey->ch_num[1], + tkey->ch_num[2], tkey->ch_num[3], tkey->ch_num[4]); + + return size; +} + +/* sysfs: /sys/class/touch/tunes/regcmd */ +ssize_t tunes_regcmd_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret = -1; + u32 *buf32; + + memcpy(&ist30xx_tunes, buf, sizeof(ist30xx_tunes)); + buf += sizeof(ist30xx_tunes); + buf32 = (u32 *)buf; + + tunes_cmd_done = false; + + switch (ist30xx_tunes.cmd) { + case TUNES_CMD_WRITE: + break; + case TUNES_CMD_READ: + break; + case TUNES_CMD_REG_ENTER: + ist30xx_disable_irq(ts_data); + ist30xx_reset(false); + + /* enter reg access mode */ + ret = ist30xx_cmd_reg(ts_data->client, CMD_ENTER_REG_ACCESS); + if (unlikely(ret)) + goto regcmd_fail; + + ist30xx_reg_mode = true; + + break; + case TUNES_CMD_REG_EXIT: + /* exit reg access mode */ + ret = ist30xx_cmd_reg(ts_data->client, CMD_EXIT_REG_ACCESS); + if (unlikely(ret)) + goto regcmd_fail; + + ret = ist30xx_cmd_start_scan(ts_data->client); + if (unlikely(ret)) + goto regcmd_fail; + + ist30xx_reg_mode = false; + + ist30xx_enable_irq(ts_data); + break; + default: + ist30xx_enable_irq(ts_data); + return size; + } + tunes_cmd_done = true; + + return size; + +regcmd_fail: + tsp_err("Tunes regcmd i2c_fail, ret=%d\n", ret); + return size; +} + +ssize_t tunes_regcmd_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int size; + + size = sprintf(buf, "cmd: 0x%02x, addr: 0x%08x, len: 0x%04x\n", + ist30xx_tunes.cmd, ist30xx_tunes.addr, ist30xx_tunes.len); + + return size; +} + +#define MAX_WRITE_LEN (1) +/* sysfs: /sys/class/touch/tunes/reg */ +ssize_t tunes_reg_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret; + u32 *buf32 = (u32 *)buf; + int waddr, wcnt = 0, len = 0; + + if (unlikely(ist30xx_tunes.cmd != TUNES_CMD_WRITE)) { + tsp_err("error, IST30XX_REG_CMD is not correct!\n"); + return size; + } + + if (unlikely(!ist30xx_reg_mode)) { + tsp_err("error, IST30XX_REG_CMD is not ready!\n"); + return size; + } + + if (unlikely(!tunes_cmd_done)) { + tsp_err("error, IST30XX_REG_CMD is not ready!\n"); + return size; + } + + waddr = ist30xx_tunes.addr; + if (ist30xx_tunes.len >= MAX_WRITE_LEN) + len = MAX_WRITE_LEN; + else + len = ist30xx_tunes.len; + + while (wcnt < ist30xx_tunes.len) { + ret = ist30xx_write_buf(ts_data->client, waddr, buf32, len); + if (unlikely(ret)) { + tsp_err("Tunes regstore i2c_fail, ret=%d\n", ret); + return size; + } + + wcnt += len; + + if ((ist30xx_tunes.len - wcnt) < MAX_WRITE_LEN) + len = ist30xx_tunes.len - wcnt; + + buf32 += MAX_WRITE_LEN; + waddr += MAX_WRITE_LEN * IST30XX_DATA_LEN; + } + + tunes_cmd_done = false; + + return size; +} + +ssize_t tunes_reg_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret; + int size; + u32 *buf32 = (u32 *)buf; + +#if I2C_MONOPOLY_MODE + unsigned long flags; +#endif + + if (unlikely(ist30xx_tunes.cmd != TUNES_CMD_READ)) { + tsp_err("error, IST30XX_REG_CMD is not correct!\n"); + return 0; + } + + if (unlikely(!tunes_cmd_done)) { + tsp_err("error, IST30XX_REG_CMD is not ready!\n"); + return 0; + } + + size = ist30xx_tunes.len; + ret = ist30xx_write_cmd(ts_data->client, IST30XX_RX_CNT_ADDR, size); + if (unlikely(ret)) { + tsp_err("Tunes regshow i2c_fail, ret=%d\n", ret); + return 0; + } + +#if I2C_MONOPOLY_MODE + local_irq_save(flags); // Activated only when the GPIO I2C is used +#endif + ret = ist30xx_read_buf(ts_data->client, ist30xx_tunes.addr, buf32, size); +#if I2C_MONOPOLY_MODE + local_irq_restore(flags); // Activated only when the GPIO I2C is used +#endif + if (unlikely(ret)) { + tsp_err("Tunes regshow i2c_fail, ret=%d\n", ret); + return size; + } + + size = ist30xx_tunes.len * IST30XX_DATA_LEN; + + tunes_cmd_done = false; + + return size; +} + +/* sysfs: /sys/class/touch/tunes/adb */ +ssize_t tunes_adb_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret; + char *tmp, *ptr; + char token[9]; + u32 cmd, addr, len, val; + int write_len; + + sscanf(buf, "%x %x %x", &cmd, &addr, &len); + + switch (cmd) { + case TUNES_CMD_WRITE: /* write cmd */ + write_len = 0; + ptr = (char *)(buf + 15); + + while (write_len < len) { + memcpy(token, ptr, 8); + token[8] = 0; + val = simple_strtoul(token, &tmp, 16); + ret = ist30xx_write_buf(ts_data->client, addr, &val, 1); + if (unlikely(ret)) { + tsp_err("Tunes regstore i2c_fail, ret=%d\n", ret); + return size; + } + + ptr += 8; + write_len++; + addr += 4; + } + break; + + case TUNES_CMD_READ: /* read cmd */ + ist30xx_tunes.cmd = cmd; + ist30xx_tunes.addr = addr; + ist30xx_tunes.len = len; + break; + + case TUNES_CMD_REG_ENTER: /* enter */ + ist30xx_disable_irq(ts_data); + ist30xx_reset(false); + + ret = ist30xx_cmd_reg(ts_data->client, CMD_ENTER_REG_ACCESS); + if (unlikely(ret < 0)) + goto cmd_fail; + ist30xx_reg_mode = true; + break; + + case TUNES_CMD_REG_EXIT: /* exit */ + if (ist30xx_reg_mode == true) { + ret = ist30xx_cmd_reg(ts_data->client, CMD_EXIT_REG_ACCESS); + if (unlikely(ret < 0)) + goto cmd_fail; + + ret = ist30xx_cmd_start_scan(ts_data->client); + if (unlikely(ret < 0)) + goto cmd_fail; + ist30xx_reg_mode = false; + ist30xx_enable_irq(ts_data); + } + break; + + default: + break; + } + + return size; + +cmd_fail: + tsp_err("Tunes adb i2c_fail\n"); + return size; +} + +ssize_t tunes_adb_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret; + int i, len, size = 0; + char reg_val[10]; + +#if I2C_MONOPOLY_MODE + unsigned long flags; +#endif + + ret = ist30xx_write_cmd(ts_data->client, IST30XX_RX_CNT_ADDR, + ist30xx_tunes.len); + if (unlikely(ret)) { + tsp_err("Tunes adbshow i2c_fail, ret=%d\n", ret); + return size; + } + +#if I2C_MONOPOLY_MODE + local_irq_save(flags); +#endif + ret = ist30xx_read_buf(ts_data->client, ist30xx_tunes.addr, + ist30xx_frame_buf, ist30xx_tunes.len); +#if I2C_MONOPOLY_MODE + local_irq_restore(flags); +#endif + if (unlikely(ret)) { + tsp_err("Tunes adbshow i2c_fail, ret=%d\n", ret); + return size; + } + + size = 0; + buf[0] = 0; + len = sprintf(reg_val, "%08x", ist30xx_tunes.addr); + strcat(buf, reg_val); + size += len; + for (i = 0; i < ist30xx_tunes.len; i++) { + len = sprintf(reg_val, "%08x", ist30xx_frame_buf[i]); + strcat(buf, reg_val); + size += len; + } + + return size; +} + +#if IST30XX_ALGORITHM_MODE +/* sysfs: /sys/class/touch/tunes/algorithm */ +extern u32 ist30xx_algr_addr, ist30xx_algr_size; +ssize_t ist30xx_algr_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + sscanf(buf, "%x %d", &ist30xx_algr_addr, &ist30xx_algr_size); + + tsp_info("Algorithm addr: 0x%x, count: %d\n", + ist30xx_algr_addr, ist30xx_algr_size); + + ist30xx_algr_addr |= IST30XXB_ACCESS_ADDR; + + return size; +} + +ssize_t ist30xx_algr_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret; + u32 algr_addr; + int count = 0; + + ret = ist30xx_read_cmd(ts_data->client, IST30XXB_MEM_ALGORITHM, &algr_addr); + if (unlikely(ret)) { + tsp_warn("Algorithm mem addr read fail!\n"); + return 0; + } + + tsp_info("algr_addr(0x%x): 0x%x\n", IST30XXB_MEM_ALGORITHM, algr_addr); + + count = sprintf(buf, "Algorithm addr : 0x%x\n", algr_addr); + + return count; +} +#endif // IST30XX_ALGORITHM_MODE + +/* sysfs: /sys/class/touch/tunes/intr_debug */ +extern u32 intr_debug_addr, intr_debug_size; +ssize_t intr_debug_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + sscanf(buf, "%x %d", &intr_debug_addr, &intr_debug_size); + tsp_info("Interrupt debug addr: 0x%x, count: %d\n", + intr_debug_addr, intr_debug_size); + + intr_debug_addr |= IST30XXB_ACCESS_ADDR; + + return size; +} + +ssize_t intr_debug_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + + tsp_info("intr_debug_addr(0x%x): %d\n", intr_debug_addr, intr_debug_size); + + count = sprintf(buf, "intr_debug_addr(0x%x): %d\n", + intr_debug_addr, intr_debug_size); + + return count; +} + +/* sysfs: /sys/class/touch/tunes/intr_debug2 */ +extern u32 intr_debug2_addr, intr_debug2_size; +ssize_t intr_debug2_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + sscanf(buf, "%x %d", &intr_debug2_addr, &intr_debug2_size); + tsp_info("Interrupt debug2 addr: 0x%x, count: %d\n", + intr_debug2_addr, intr_debug2_size); + + intr_debug2_addr |= IST30XXB_ACCESS_ADDR; + + return size; +} + +ssize_t intr_debug2_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + + tsp_info("intr_debug2_addr(0x%x): %d\n", + intr_debug2_addr, intr_debug2_size); + + count = sprintf(buf, "intr_debug2_addr(0x%x): %d\n", + intr_debug2_addr, intr_debug2_size); + + return count; +} + +/* sysfs: /sys/class/touch/tunes/intr_debug3 */ +extern u32 intr_debug3_addr, intr_debug3_size; +ssize_t intr_debug3_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + sscanf(buf, "%x %d", &intr_debug3_addr, &intr_debug3_size); + tsp_info("Interrupt debug3 addr: 0x%x, count: %d\n", + intr_debug3_addr, intr_debug3_size); + + intr_debug3_addr |= IST30XXB_ACCESS_ADDR; + + return size; +} + +ssize_t intr_debug3_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + + tsp_info("intr_debug3_addr(0x%x): %d\n", + intr_debug3_addr, intr_debug3_size); + + count = sprintf(buf, "intr_debug3_addr(0x%x): %d\n", + intr_debug3_addr, intr_debug3_size); + + return count; +} + +#if IST30XX_CHKIC +u8 *ts_chkic_bin = NULL; +u32 ts_chkic_bin_size = 0; +u32 ts_chkic_result = 0; + +int chkic_ms_delay = IST30XX_CHKIC_WAIT; +int ist30xx_chkic_wait(void) +{ + int cnt = chkic_ms_delay; + + ts_data->status.chkic_msg = 0; + while (cnt-- > 0) { + msleep(100); + + if (ts_data->status.chkic_msg) { + if (ts_data->status.chkic_msg == IST30XX_CHKIC_END) + return 0; + else + return -EAGAIN; + } + } + tsp_warn("Fault test time out\n"); + + return -EPERM; +} + +#define chkic_next_step(ret) { if (unlikely(ret)) goto end; msleep(5); } +int ist30xx_chkic_test(const u8 *buf, int size) +{ + int ret; + int len; + u32 chksum = 0; + u32 chkic_chksum = 0; + u32 *buf32; + struct i2c_client *client = (struct i2c_client *)ts_data->client; + + tsp_info("*** Check IC ***\n"); + + /* Result initial */ + ts_chkic_result = 0; + + /* Parse chkicsum */ + chkic_chksum = *((u32 *)&buf[size - IST30XX_CHECKSUM_SIZE]); + tsp_verb("Read binary info - chksum: 0x%08x size: 0x%x\n", + chkic_chksum, size); + + ist30xx_disable_irq(ts_data); + + ist30xx_reset(false); + + /* Load IC chkic test code */ + ret = ist30xx_write_cmd(client, CMD_EXEC_MEM_CODE, 0); + chkic_next_step(ret); + + buf32 = (u32 *)buf; + len = size / IST30XX_DATA_LEN; + tsp_verb("%08x %08x %08x %08x\n", buf32[0], buf32[1], buf32[2], buf32[3]); + ret = ist30xx_write_buf(client, len, buf32, len); + chkic_next_step(ret); + + /* Check load end */ + ret = ist30xx_read_cmd(client, CMD_DEFAULT, &chksum); + chkic_next_step(ret); + if (chksum != IST30XX_CHKIC_LOAD_END) + goto end; + tsp_info("Check ic code ready!!\n"); + + /* Check chksum */ + ret = ist30xx_read_cmd(client, CMD_DEFAULT, &chksum); + chkic_next_step(ret); + tsp_info("Check ic chksum: %08x, %08x\n", chksum, chkic_chksum); + + ist30xx_enable_irq(ts_data); + /* Wait IC chkic result */ + if (ist30xx_chkic_wait() != 0) + tsp_info("Check ic timeout!!\n"); + + ist30xx_disable_irq(ts_data); + + /* Read IC chkic result */ + ret = ist30xx_read_cmd(client, CMD_DEFAULT, &ts_chkic_result); + chkic_next_step(ret); + tsp_info("Read result value: %08x\n", ts_chkic_result); + + ist30xx_reset(false); + + ist30xx_start(ts_data); + +end: + if (unlikely(ret)) { + tsp_warn("Check ic error, ret=%d\n", ret); + } else if (unlikely(chksum != chkic_chksum)) { + tsp_warn("Chksum error, chksum=%x(%x)\n", chksum, chkic_chksum); + ret = -ENOEXEC; + } + + ist30xx_enable_irq(ts_data); + + return ret; +} + +/* sysfs: /sys/class/touch/chkic/chkic */ +static ssize_t ist30xx_chkic_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret; + + if ((ts_chkic_bin == NULL) || (ts_chkic_bin_size == 0)) + return sprintf(buf, "Binary is not correct(%d)\n", ts_chkic_bin_size); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_chkic_test(ts_chkic_bin, ts_chkic_bin_size); + mutex_unlock(&ist30xx_mutex); + + if (ts_chkic_result == IST30XX_CHKIC_OK) + return sprintf(buf, "Check IC : OK"); + else if (ts_chkic_result == IST30XX_CHKIC_FAIL) + return sprintf(buf, "Check IC : FAIL"); + else + return sprintf(buf, "Check IC : ERROR"); +} +#endif + +/* sysfs : node */ +static DEVICE_ATTR(refresh, S_IRWXUGO, ist30xx_frame_refresh, NULL); +static DEVICE_ATTR(nocp, S_IRWXUGO, ist30xx_frame_nocp, NULL); +static DEVICE_ATTR(filter, S_IRWXUGO, ist30xx_filter_show, NULL); +static DEVICE_ATTR(raw, S_IRWXUGO, ist30xx_raw_show, NULL); +static DEVICE_ATTR(base, S_IRWXUGO, ist30xx_base_show, NULL); +static DEVICE_ATTR(diff, S_IRWXUGO, ist30xx_diff_show, NULL); + +/* sysfs : sys */ +static DEVICE_ATTR(printk, S_IRWXUGO, + ist30xx_printk_show, ist30xx_printk_store); +static DEVICE_ATTR(printk5, S_IRWXUGO, ist30xx_printk5_show, NULL); +static DEVICE_ATTR(printk6, S_IRWXUGO, ist30xx_printk6_show, NULL); +static DEVICE_ATTR(direct, S_IRWXUGO, + ist30xxb_direct_show, ist30xxb_direct_store); +static DEVICE_ATTR(clb_time, S_IRWXUGO, NULL, ist30xx_calib_time_store); +static DEVICE_ATTR(clb, S_IRWXUGO, ist30xx_calib_show, NULL); +static DEVICE_ATTR(clb_result, S_IRWXUGO, ist30xx_calib_result_show, NULL); +static DEVICE_ATTR(tsp_power_on, S_IRWXUGO, ist30xx_power_on_show, NULL); +static DEVICE_ATTR(tsp_power_off, S_IRWXUGO, ist30xx_power_off_show, NULL); +static DEVICE_ATTR(errcnt, S_IRWXUGO, NULL, ist30xx_errcnt_store); +#if IST30XX_EVENT_MODE +static DEVICE_ATTR(scancnt, S_IRWXUGO, NULL, ist30xx_scancnt_store); +static DEVICE_ATTR(timerms, S_IRWXUGO, NULL, ist30xx_timerms_store); +#endif +static DEVICE_ATTR(report_rate, S_IRWXUGO, NULL, ist30xx_touch_rate_store); +static DEVICE_ATTR(idle_rate, S_IRWXUGO, NULL, ist30xx_idle_scan_rate_store); +static DEVICE_ATTR(mode_ta, S_IRWXUGO, NULL, ist30xx_ta_mode_store); +static DEVICE_ATTR(mode_call, S_IRWXUGO, NULL, ist30xx_call_mode_store); +static DEVICE_ATTR(mode_cover, S_IRWXUGO, NULL, ist30xx_cover_mode_store); +static DEVICE_ATTR(max_touch, S_IRWXUGO, NULL, ist30xx_touch_store); + +/* sysfs : tunes */ +static DEVICE_ATTR(node_info, S_IRWXUGO, tunes_node_info_show, NULL); +static DEVICE_ATTR(regcmd, S_IRWXUGO, tunes_regcmd_show, tunes_regcmd_store); +static DEVICE_ATTR(reg, S_IRWXUGO, tunes_reg_show, tunes_reg_store); +static DEVICE_ATTR(adb, S_IRWXUGO, tunes_adb_show, tunes_adb_store); +#if IST30XX_ALGORITHM_MODE +static DEVICE_ATTR(algorithm, S_IRWXUGO, ist30xx_algr_show, ist30xx_algr_store); +#endif +static DEVICE_ATTR(intr_debug, S_IRWXUGO, intr_debug_show, intr_debug_store); +static DEVICE_ATTR(intr_debug2, S_IRWXUGO, intr_debug2_show, intr_debug2_store); +static DEVICE_ATTR(intr_debug3, S_IRWXUGO, intr_debug3_show, intr_debug3_store); + +#if IST30XX_CHKIC +/* sysfs : chkic */ +static DEVICE_ATTR(chkic, S_IRUGO, ist30xx_chkic_show, NULL); +#endif + +static struct attribute *node_attributes[] = { + &dev_attr_refresh.attr, + &dev_attr_nocp.attr, + &dev_attr_filter.attr, + &dev_attr_raw.attr, + &dev_attr_base.attr, + &dev_attr_diff.attr, + NULL, +}; + +static struct attribute *sys_attributes[] = { + &dev_attr_printk.attr, + &dev_attr_printk5.attr, + &dev_attr_printk6.attr, + &dev_attr_direct.attr, + &dev_attr_clb_time.attr, + &dev_attr_clb.attr, + &dev_attr_clb_result.attr, + &dev_attr_tsp_power_on.attr, + &dev_attr_tsp_power_off.attr, + &dev_attr_errcnt.attr, +#if IST30XX_EVENT_MODE + &dev_attr_scancnt.attr, + &dev_attr_timerms.attr, +#endif + &dev_attr_report_rate.attr, + &dev_attr_idle_rate.attr, + &dev_attr_mode_ta.attr, + &dev_attr_mode_call.attr, + &dev_attr_mode_cover.attr, + &dev_attr_max_touch.attr, + NULL, +}; + +static struct attribute *tunes_attributes[] = { + &dev_attr_node_info.attr, + &dev_attr_regcmd.attr, + &dev_attr_reg.attr, + &dev_attr_adb.attr, +#if IST30XX_ALGORITHM_MODE + &dev_attr_algorithm.attr, +#endif + &dev_attr_intr_debug.attr, + &dev_attr_intr_debug2.attr, + &dev_attr_intr_debug3.attr, + NULL, +}; + +#if IST30XX_CHKIC +static struct attribute *chkic_attributes[] = { + &dev_attr_chkic.attr, + NULL, +}; +#endif + +static struct attribute_group node_attr_group = { + .attrs = node_attributes, +}; + +static struct attribute_group sys_attr_group = { + .attrs = sys_attributes, +}; + +static struct attribute_group tunes_attr_group = { + .attrs = tunes_attributes, +}; + +#if IST30XX_CHKIC +static struct attribute_group chkic_attr_group = { + .attrs = chkic_attributes, +}; +#endif + +extern struct class *ist30xx_class; +struct device *ist30xx_sys_dev; +struct device *ist30xx_tunes_dev; +struct device *ist30xx_node_dev; +#if IST30XX_CHKIC +struct device *ist30xx_chkic_dev; +#endif + +int ist30xx_init_misc_sysfs(void) +{ + /* /sys/class/touch/sys */ + ist30xx_sys_dev = device_create(ist30xx_class, NULL, 0, NULL, "sys"); + + /* /sys/class/touch/sys/... */ + if (unlikely(sysfs_create_group(&ist30xx_sys_dev->kobj, + &sys_attr_group))) + tsp_err("Failed to create sysfs group(%s)!\n", "sys"); + + /* /sys/class/touch/tunes */ + ist30xx_tunes_dev = device_create(ist30xx_class, NULL, 0, NULL, "tunes"); + + /* /sys/class/touch/tunes/... */ + if (unlikely(sysfs_create_group(&ist30xx_tunes_dev->kobj, + &tunes_attr_group))) + tsp_err("Failed to create sysfs group(%s)!\n", "tunes"); + + /* /sys/class/touch/node */ + ist30xx_node_dev = device_create(ist30xx_class, NULL, 0, NULL, "node"); + + /* /sys/class/touch/node/... */ + if (unlikely(sysfs_create_group(&ist30xx_node_dev->kobj, + &node_attr_group))) + tsp_err("Failed to create sysfs group(%s)!\n", "node"); + +#if IST30XX_CHKIC + /* /sys/class/touch/chkic */ + ist30xx_chkic_dev = device_create(ist30xx_class, NULL, 0, NULL, "chkic"); + + /* /sys/class/touch/chkic/... */ + if (unlikely(sysfs_create_group(&ist30xx_chkic_dev->kobj, + &chkic_attr_group))) + tsp_err("Failed to create sysfs group(%s)!\n", "chkic"); + + ts_chkic_bin = (u8 *)ist30xxb_chkic; + ts_chkic_bin_size = sizeof(ist30xxb_chkic); +#endif + + ist30xx_frame_buf = kmalloc(4096, GFP_KERNEL); + ist30xx_frame_rawbuf = kmalloc(4096, GFP_KERNEL); + ist30xx_frame_fltbuf = kmalloc(4096, GFP_KERNEL); + if (!ist30xx_frame_buf || !ist30xx_frame_rawbuf || !ist30xx_frame_fltbuf) + return -ENOMEM; + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx_misc.h b/drivers/input/touchscreen/ist30xxa/ist30xx_misc.h new file mode 100644 index 00000000..9313f8b1 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx_misc.h @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_MISC_H__ +#define __IST30XX_MISC_H__ + +#include "ist30xx_tsp.h" + +#define IST30XXB_RAW_ADDR (0x40100200) +#define IST30XXB_FILTER_ADDR (0x40101000) + +#define IST30XX_RX_CNT_ADDR (0x20000038) +#define IST30XX_CONFIG_ADDR (0x20000040) + +#define NODE_FLAG_RAW (1) +#define NODE_FLAG_BASE (1 << 1) +#define NODE_FLAG_FILTER (1 << 2) +#define NODE_FLAG_DIFF (1 << 3) +#define NODE_FLAG_ALL (0xF) +#define NODE_FLAG_NO_CCP (1 << 7) + +#if IST30XX_CHKIC +#define IST30XX_CHKIC_LOAD_END (0x8FFFFCAB) +#define IST30XX_CHKIC_END (0x8FAB0FAB) + +#define IST30XX_CHECKSUM_SIZE (4) +#define IST30XX_CHKIC_OK (0x00000001) +#define IST30XX_CHKIC_FAIL (0x000000FF) + +#define IST30XX_CHKIC_WAIT (30) // 3.0sec +#endif + +struct TSP_CH_NUM { + u8 tx; + u8 rx; +}; +struct TSP_NODE_BUF { + u16 raw[NODE_TX_NUM][NODE_RX_NUM]; + u16 base[NODE_TX_NUM][NODE_RX_NUM]; + u16 filter[NODE_TX_NUM][NODE_RX_NUM]; + u16 min_raw; + u16 max_raw; + u16 min_base; + u16 max_base; + u16 len; +}; +struct TSP_DIRECTION { + bool swap_xy; + bool flip_x; + bool flip_y; +}; +typedef struct _TSP_INFO { + struct TSP_CH_NUM ch_num; + struct TSP_DIRECTION dir; + struct TSP_NODE_BUF node; + int height; + int width; + int finger_num; + u16 baseline; +} TSP_INFO; +typedef struct _TKEY_INFO { + int key_num; + bool enable; + bool axis_rx; + u8 axis_chnum; + u8 ch_num[5]; + u16 baseline; +} TKEY_INFO; + +int ist30xx_parse_touch_node(u8 flag, struct TSP_NODE_BUF *node); +int ist30xx_read_touch_node(u8 flag, struct TSP_NODE_BUF *node); + +int ist30xx_tsp_update_info(void); +int ist30xx_tkey_update_info(void); + +int ist30xx_get_tsp_info(struct ist30xx_data *data); +int ist30xx_get_tkey_info(struct ist30xx_data *data); + +int ist30xx_init_misc_sysfs(void); + +#endif // __IST30XX_MISC_H__ diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx_sec.c b/drivers/input/touchscreen/ist30xxa/ist30xx_sec.c new file mode 100644 index 00000000..e8fae499 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx_sec.c @@ -0,0 +1,916 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xx.h" +#include "ist30xx_update.h" +#include "ist30xx_misc.h" + + +static char IsfwUpdate[20] = { 0 }; + +#define FW_DOWNLOADING "Downloading" +#define FW_DOWNLOAD_COMPLETE "Complete" +#define FW_DOWNLOAD_FAIL "FAIL" + +#define FACTORY_BUF_SIZE (1024) +#define BUILT_IN (0) +#define UMS (1) + +#define CMD_STATE_WAITING (0) +#define CMD_STATE_RUNNING (1) +#define CMD_STATE_OK (2) +#define CMD_STATE_FAIL (3) +#define CMD_STATE_NA (4) + +#define TSP_NODE_DEBUG (1) + +static u16 node_value[TSP_TOTAL_NUM]; + +extern struct ist30xx_data *ts_data; +extern TSP_INFO ist30xx_tsp_info; +extern TKEY_INFO ist30xx_tkey_info; + + +#define TSP_CMD(name, func) .cmd_name = name, .cmd_func = func +struct tsp_cmd { + struct list_head list; + const char * cmd_name; + void (*cmd_func)(void *dev_data); +}; + +u32 ist30xxb_get_fw_ver(struct ist30xx_data *data) +{ + u32 addr = data->tags.cfg_addr + 4; + u32 len = 1; + u32 ver = 0; + int ret = -EPERM; + + ist30xx_disable_irq(data); + ret = ist30xx_cmd_reg(data->client, CMD_ENTER_REG_ACCESS); + if (unlikely(ret)) + goto get_fw_ver_fail; + + ret = ist30xx_write_cmd(data->client, IST30XX_RX_CNT_ADDR, len); + if (unlikely(ret)) + goto get_fw_ver_fail; + + ret = ist30xx_read_cmd(data->client, addr, &ver); + if (unlikely(ret)) + goto get_fw_ver_fail; + + tsp_debug("Reg addr: %x, ver: %x\n", addr, ver); + + ret = ist30xx_cmd_reg(data->client, CMD_EXIT_REG_ACCESS); + if (likely(ret == 0)) + goto get_fw_ver_end; + +get_fw_ver_fail: + ist30xx_reset(false); + +get_fw_ver_end: + ist30xx_cmd_start_scan(data->client); + ist30xx_enable_irq(data); + + return ver; +} + +u32 key_sensitivity = 0; +int ist30xxb_get_key_sensitivity(struct ist30xx_data *data, int id) +{ + u32 addr = IST30XXB_MEM_KEYSENSITIVITY + 4 * sizeof(u32); + u32 val = 0; + + if (unlikely(id >= ist30xx_tkey_info.key_num)) + return 0; + + if (ist30xx_intr_wait(30) < 0) + return 0; + + ist30xx_read_cmd(data->client, addr, &val); + if ((val & 0xFFF) == 0xFFF) + return (key_sensitivity >> (16 * id)) & 0xFFFF; + + key_sensitivity = val; + + tsp_debug("Reg addr: %x, val: %8x\n", addr, val); + + val >>= (16 * id); + + return (int)(val & 0xFFFF); +} + + +/* Factory CMD function */ +static void set_default_result(struct sec_factory *sec) +{ + char delim = ':'; + + memset(sec->cmd_result, 0, ARRAY_SIZE(sec->cmd_result)); + memcpy(sec->cmd_result, sec->cmd, strlen(sec->cmd)); + strncat(sec->cmd_result, &delim, CMD_STATE_RUNNING); +} + +static void set_cmd_result(struct sec_factory *sec, char *buf, int len) +{ + strncat(sec->cmd_result, buf, len); +} + +static void not_support_cmd(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%s", "NA"); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_NA; + dev_info(&data->client->dev, "%s: \"%s(%d)\"\n", __func__, + buf, strnlen(buf, sizeof(buf))); + return; +} + +static void get_chip_vendor(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%s", TSP_CHIP_VENDOR); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_chip_name(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%s", TSP_CHIP_NAME); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_chip_id(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%#02x", data->chip_id); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} +#include +#define MAX_FW_PATH 255 +extern u32 ist30xx_fw_ver; +extern u32 ist30xx_param_ver; +extern u32 ist30xx_sub_ver; +static void fw_update(void *dev_data) +{ + int ret; + char buf[16] = { 0 }; + mm_segment_t old_fs = {0}; + struct file *fp = NULL; + long fsize = 0, nread = 0; + u8 *fw; + char fw_path[MAX_FW_PATH+1]; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + tsp_info("%s(), %d\n", __func__, sec->cmd_param[0]); + + switch (sec->cmd_param[0]) { + case BUILT_IN: + sec->cmd_state = CMD_STATE_OK; + ret = ist30xx_fw_recovery(data); + if (ret < 0) + sec->cmd_state = CMD_STATE_FAIL; + break; + case UMS: + sec->cmd_state = CMD_STATE_OK; + old_fs = get_fs(); + set_fs(get_ds()); + + snprintf(fw_path, MAX_FW_PATH, "/sdcard/%s", IST30XXB_FW_NAME); + fp = filp_open(fw_path, O_RDONLY, 0); + if (IS_ERR(fp)) { + tsp_warn("%s(), file %s open error:%d\n", __func__, + fw_path, (s32)fp); + sec->cmd_state= CMD_STATE_FAIL; + set_fs(old_fs); + break; + } + + fsize = fp->f_path.dentry->d_inode->i_size; + if (fsize != data->fw.buf_size) { + tsp_warn("%s(), invalid fw size!!\n", __func__); + sec->cmd_state = CMD_STATE_FAIL; + set_fs(old_fs); + break; + } + fw = kzalloc((size_t)fsize, GFP_KERNEL); + if (!fw) { + tsp_warn("%s(), failed to alloc buffer for fw\n", __func__); + sec->cmd_state = CMD_STATE_FAIL; + filp_close(fp, NULL); + set_fs(old_fs); + break; + } + nread = vfs_read(fp, (char __user *)fw, fsize, &fp->f_pos); + if (nread != fsize) { + tsp_warn("%s(), failed to read fw\n", __func__); + sec->cmd_state = CMD_STATE_FAIL; + filp_close(fp, NULL); + set_fs(old_fs); + break; + } + + filp_close(fp, current->files); + set_fs(old_fs); + tsp_info("%s(), ums fw is loaded!!\n", __func__); + + ist30xx_get_update_info(ts_data, fw, fsize); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw); + ist30xx_sub_ver = ist30xx_parse_ver(FLAG_SUB, fw); + + mutex_lock(&ist30xx_mutex); + ist30xx_fw_update(data->client, fw, fsize, true); + mutex_unlock(&ist30xx_mutex); + + ist30xx_calibrate(1); + break; + + default: + tsp_warn("%s(), Invalid fw file type!\n", __func__); + break; + } + + if (sec->cmd_state == CMD_STATE_OK) + snprintf(buf, sizeof(buf), "%s", "OK"); + else + snprintf(buf, sizeof(buf), "%s", "NG"); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); +} + + +static void get_fw_ver_bin(void *dev_data) +{ + u32 ver = 0; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + ver = ist30xx_parse_ver(FLAG_PARAM, data->fw.buf); + snprintf(buf, sizeof(buf), "IM00%04x", ver); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_fw_ver_ic(void *dev_data) +{ + u32 ver = 0; + char msg[8]; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + if (data->status.power == 1) + ver = ist30xxb_get_fw_ver(ts_data); + + snprintf(buf, sizeof(buf), "IM00%04x", ver & 0xFFFF); + + if (data->fw.sub_ver > 0) { + sprintf(msg, "(T%d)", data->fw.sub_ver); + strcat(buf, msg); + } + + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_threshold(void *dev_data) +{ + char buf[16] = { 0 }; + int threshold; + u32 *cfg_buf; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + ist30xx_get_update_info(data, data->fw.buf, data->fw.buf_size); + cfg_buf = (u32 *)&data->fw.buf[data->tags.cfg_addr]; + + threshold = (int)(cfg_buf[0x2C / IST30XX_DATA_LEN] & 0xFFFF); + + snprintf(buf, sizeof(buf), "%d", threshold); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_x_num(void *dev_data) +{ + int val = ist30xx_tsp_info.width; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + if (val >= 0) { + snprintf(buf, sizeof(buf), "%u", val); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); + } else { + snprintf(buf, sizeof(buf), "%s", "NG"); + sec->cmd_state = CMD_STATE_FAIL; + dev_info(&data->client->dev, + "%s: fail to read num of x (%d).\n", __func__, val); + } + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + tsp_info("%s(), %s\n", __func__, buf); +} + +static void get_y_num(void *dev_data) +{ + int val = ist30xx_tsp_info.height; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + if (val >= 0) { + snprintf(buf, sizeof(buf), "%u", val); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); + } else { + snprintf(buf, sizeof(buf), "%s", "NG"); + sec->cmd_state = CMD_STATE_FAIL; + dev_info(&data->client->dev, + "%s: fail to read num of x (%d).\n", __func__, val); + } + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + tsp_info("%s(), %s\n", __func__, buf); +} + +int check_tsp_channel(void *dev_data) +{ + int node = -EPERM; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + TSP_INFO *tsp = &ist30xx_tsp_info; + + if ((sec->cmd_param[0] < 0) || (sec->cmd_param[0] >= tsp->width) || + (sec->cmd_param[1] < 0) || (sec->cmd_param[1] >= tsp->height)) { + dev_info(&data->client->dev, "%s: parameter error: %u,%u\n", + __func__, sec->cmd_param[0], sec->cmd_param[1]); + } else { + node = sec->cmd_param[0] + sec->cmd_param[1] * tsp->width; + dev_info(&data->client->dev, "%s: node = %d\n", __func__, node); + } + + return node; +} + + +extern int parse_tsp_node(u8 flag, struct TSP_NODE_BUF *node, s16 *buf16); +void run_raw_read(void *dev_data) +{ + int i, ret; + int min_val, max_val; + char buf[16] = { 0 }; + u8 flag = NODE_FLAG_RAW; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + TSP_INFO *tsp = &ist30xx_tsp_info; + + set_default_result(sec); + + ret = ist30xx_read_touch_node(flag, &tsp->node); + if (ret) { + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), tsp node read fail!\n", __func__); + return; + } + ist30xx_parse_touch_node(flag, &tsp->node); + + ret = parse_tsp_node(flag, &tsp->node, node_value); + if (ret) { + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), tsp node parse fail - flag: %d\n", __func__, flag); + return; + } + + min_val = max_val = node_value[0]; + for (i = 0; i < tsp->width * tsp->height; i++) { +#if TSP_NODE_DEBUG + if ((i % tsp->width) == 0) + printk("\n%s %4d: ", IST30XX_DEBUG_TAG, i); + + printk("%4d ", node_value[i]); +#endif + + max_val = max(max_val, (int)node_value[i]); + min_val = min(min_val, (int)node_value[i]); + } + + snprintf(buf, sizeof(buf), "%d,%d", min_val, max_val); + tsp_info("%s(), %s\n", __func__, buf); + + sec->cmd_state = CMD_STATE_OK; + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); +} + +void get_raw_value(void *dev_data) +{ + int idx = 0; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + idx = check_tsp_channel(data); + if (idx < 0) { // Parameter parsing fail + snprintf(buf, sizeof(buf), "%s", "NG"); + sec->cmd_state = CMD_STATE_FAIL; + } else { + snprintf(buf, sizeof(buf), "%d", node_value[idx]); + sec->cmd_state = CMD_STATE_OK; + } + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + tsp_info("%s(), [%d][%d]: %s\n", __func__, + sec->cmd_param[0], sec->cmd_param[1], buf); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); +} + + + +/* sysfs: /sys/class/sec/tsp/close_tsp_test */ +static ssize_t show_close_tsp_test(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return snprintf(buf, FACTORY_BUF_SIZE, "%u\n", 0); +} + +/* sysfs: /sys/class/sec/tsp/cmd */ +static ssize_t store_cmd(struct device *dev, struct device_attribute + *devattr, const char *buf, size_t count) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + struct sec_factory *sec = (struct sec_factory *)&data->sec; + struct i2c_client *client = data->client; + + char *cur, *start, *end; + char msg[SEC_CMD_STR_LEN] = { 0 }; + int len, i; + struct tsp_cmd *tsp_cmd_ptr = NULL; + char delim = ','; + bool cmd_found = false; + int param_cnt = 0; + int ret; + + if (sec->cmd_is_running == true) { + dev_err(&client->dev, "tsp_cmd: other cmd is running.\n"); + tsp_err("tsp_cmd: other cmd is running.\n"); + goto err_out; + } + + /* check lock */ + mutex_lock(&sec->cmd_lock); + sec->cmd_is_running = true; + mutex_unlock(&sec->cmd_lock); + + sec->cmd_state = CMD_STATE_RUNNING; + + for (i = 0; i < ARRAY_SIZE(sec->cmd_param); i++) + sec->cmd_param[i] = 0; + + len = (int)count; + if (*(buf + len - 1) == '\n') + len--; + memset(sec->cmd, 0, ARRAY_SIZE(sec->cmd)); + memcpy(sec->cmd, buf, len); + + cur = strchr(buf, (int)delim); + if (cur) + memcpy(msg, buf, cur - buf); + else + memcpy(msg, buf, len); + /* find command */ + list_for_each_entry(tsp_cmd_ptr, &sec->cmd_list_head, list) { + if (!strcmp(msg, tsp_cmd_ptr->cmd_name)) { + cmd_found = true; + break; + } + } + + /* set not_support_cmd */ + if (!cmd_found) { + list_for_each_entry(tsp_cmd_ptr, &sec->cmd_list_head, list) { + if (!strcmp("not_support_cmd", tsp_cmd_ptr->cmd_name)) + break; + } + } + + /* parsing parameters */ + if (cur && cmd_found) { + cur++; + start = cur; + memset(msg, 0, ARRAY_SIZE(msg)); + do { + if (*cur == delim || cur - buf == len) { + end = cur; + memcpy(msg, start, end - start); + *(msg + strlen(msg)) = '\0'; + ret = kstrtoint(msg, 10, \ + sec->cmd_param + param_cnt); + start = cur + 1; + memset(msg, 0, ARRAY_SIZE(msg)); + param_cnt++; + } + cur++; + } while (cur - buf <= len); + } + dev_info(&client->dev, "cmd = %s\n", tsp_cmd_ptr->cmd_name); + tsp_info("SEC CMD = %s\n", tsp_cmd_ptr->cmd_name); + + for (i = 0; i < param_cnt; i++) + dev_info(&client->dev, "cmd param %d= %d\n", i, sec->cmd_param[i]); + + tsp_cmd_ptr->cmd_func(data); + +err_out: + return count; +} + +/* sysfs: /sys/class/sec/tsp/cmd_status */ +static ssize_t show_cmd_status(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + struct sec_factory *sec = (struct sec_factory *)&data->sec; + char msg[16] = { 0 }; + + dev_info(&data->client->dev, "tsp cmd: status:%d\n", sec->cmd_state); + + if (sec->cmd_state == CMD_STATE_WAITING) + snprintf(msg, sizeof(msg), "WAITING"); + else if (sec->cmd_state == CMD_STATE_RUNNING) + snprintf(msg, sizeof(msg), "RUNNING"); + else if (sec->cmd_state == CMD_STATE_OK) + snprintf(msg, sizeof(msg), "OK"); + else if (sec->cmd_state == CMD_STATE_FAIL) + snprintf(msg, sizeof(msg), "FAIL"); + else if (sec->cmd_state == CMD_STATE_NA) + snprintf(msg, sizeof(msg), "NOT_APPLICABLE"); + + return snprintf(buf, FACTORY_BUF_SIZE, "%s\n", msg); +} + +/* sysfs: /sys/class/sec/tsp/result */ +static ssize_t show_cmd_result(struct device *dev, struct device_attribute + *devattr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + dev_info(&data->client->dev, "tsp cmd: result: %s\n", sec->cmd_result); + + mutex_lock(&sec->cmd_lock); + sec->cmd_is_running = false; + mutex_unlock(&sec->cmd_lock); + + sec->cmd_state = CMD_STATE_WAITING; + + return snprintf(buf, FACTORY_BUF_SIZE, "%s\n", sec->cmd_result); +} + + + +/* sysfs: /sys/class/sec/sec_touchscreen/tsp_firm_version_phone */ +static ssize_t phone_firmware_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + u32 ver = ist30xx_parse_ver(FLAG_PARAM, ts_data->fw.buf); + + tsp_info("%s(), IM00%04x\n", __func__, ver); + + return sprintf(buf, "IM00%04x", ver); +} + +/* sysfs: /sys/class/sec/sec_touchscreen/tsp_firm_version_panel */ +static ssize_t part_firmware_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + u32 ver = 0; + + if (ts_data->status.power == 1) + ver = ist30xxb_get_fw_ver(ts_data); + + tsp_info("%s(), IM00%04x\n", __func__, ver); + + return sprintf(buf, "IM00%04x", ver); +} + +/* sysfs: /sys/class/sec/sec_touchscreen/tsp_threshold */ +static ssize_t threshold_firmware_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int threshold; + u32 *cfg_buf; + + ist30xx_get_update_info(ts_data, ts_data->fw.buf, ts_data->fw.buf_size); + cfg_buf = (u32 *)&ts_data->fw.buf[ts_data->tags.cfg_addr]; + + threshold = (int)(cfg_buf[0x2C / IST30XX_DATA_LEN] & 0xFFFF); + + tsp_info("%s(), %d\n", __func__, threshold); + + return sprintf(buf, "%d", threshold); +} + +/* sysfs: /sys/class/sec/sec_touchscreen/tsp_firm_update */ +static ssize_t firmware_update(struct device *dev, + struct device_attribute *attr, char *buf) +{ + bool ret; + + sprintf(IsfwUpdate, "%s\n", FW_DOWNLOADING); + tsp_info("%s(), %s\n", __func__, IsfwUpdate); + + ret = ist30xx_fw_recovery(ts_data); + ret = (ret == 0 ? 1 : -1); + + sprintf(IsfwUpdate, "%s\n", + (ret > 0 ? FW_DOWNLOAD_COMPLETE : FW_DOWNLOAD_FAIL)); + tsp_info("%s(), %s\n", __func__, IsfwUpdate); + + return sprintf(buf, "%d", ret); +} + +/* sysfs: /sys/class/sec/sec_touchscreen/tsp_firm_update_status */ +static ssize_t firmware_update_status(struct device *dev, + struct device_attribute *attr, char *buf) +{ + tsp_info("%s(), %s\n", __func__, IsfwUpdate); + + return sprintf(buf, "%s\n", IsfwUpdate); +} + +/* sysfs: /sys/class/sec/sec_touchkey/touchkey_recent */ +static ssize_t recent_sensitivity_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int sensitivity = ist30xxb_get_key_sensitivity(ts_data, 0); + + tsp_info("%s(), %d\n", __func__, sensitivity); + + return sprintf(buf, "%d", sensitivity); +} + +/* sysfs: /sys/class/sec/sec_touchkey/touchkey_back */ +static ssize_t back_sensitivity_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int sensitivity = ist30xxb_get_key_sensitivity(ts_data, 1); + + tsp_info("%s(), %d\n", __func__, sensitivity); + + return sprintf(buf, "%d", sensitivity); +} + +/* sysfs: /sys/class/sec/sec_touchkey/touchkey_threshold */ +static ssize_t touchkey_threshold_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int threshold; + u32 *cfg_buf; + + ist30xx_get_update_info(ts_data, ts_data->fw.buf, ts_data->fw.buf_size); + cfg_buf = (u32 *)&ts_data->fw.buf[ts_data->tags.cfg_addr]; + + threshold = (int)(cfg_buf[0x30 / IST30XX_DATA_LEN] & 0xFFFF); + + tsp_info("%s(), %d\n", __func__, threshold); + + return snprintf(buf, sizeof(int), "%d\n", threshold); +} + +struct tsp_cmd tsp_cmds[] = { + { TSP_CMD("get_chip_vendor", get_chip_vendor), }, + { TSP_CMD("get_chip_name", get_chip_name), }, + { TSP_CMD("get_chip_id", get_chip_id), }, + { TSP_CMD("fw_update", fw_update), }, + { TSP_CMD("get_fw_ver_bin", get_fw_ver_bin), }, + { TSP_CMD("get_fw_ver_ic", get_fw_ver_ic), }, + { TSP_CMD("get_threshold", get_threshold), }, + { TSP_CMD("get_x_num", get_x_num), }, + { TSP_CMD("get_y_num", get_y_num), }, + { TSP_CMD("run_raw_read", run_raw_read), }, + { TSP_CMD("get_raw_value", get_raw_value), }, + { TSP_CMD("not_support_cmd", not_support_cmd), }, +}; + +#define SEC_DEFAULT_ATTR (S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH) +/* sysfs - touchscreen */ +static DEVICE_ATTR(tsp_firm_version_phone, SEC_DEFAULT_ATTR, + phone_firmware_show, NULL); +static DEVICE_ATTR(tsp_firm_version_panel, SEC_DEFAULT_ATTR, + part_firmware_show, NULL); +static DEVICE_ATTR(tsp_threshold, SEC_DEFAULT_ATTR, + threshold_firmware_show, NULL); +static DEVICE_ATTR(tsp_firm_update, SEC_DEFAULT_ATTR, + firmware_update, NULL); +static DEVICE_ATTR(tsp_firm_update_status, SEC_DEFAULT_ATTR, + firmware_update_status, NULL); + +/* sysfs - touchkey */ +static DEVICE_ATTR(touchkey_recent, SEC_DEFAULT_ATTR, + recent_sensitivity_show, NULL); +static DEVICE_ATTR(touchkey_back, SEC_DEFAULT_ATTR, + back_sensitivity_show, NULL); +static DEVICE_ATTR(touchkey_threshold, SEC_DEFAULT_ATTR, + touchkey_threshold_show, NULL); + +/* sysfs - tsp */ +static DEVICE_ATTR(close_tsp_test, S_IRUGO, show_close_tsp_test, NULL); +static DEVICE_ATTR(cmd, S_IWUSR | S_IWGRP, NULL, store_cmd); +static DEVICE_ATTR(cmd_status, S_IRUGO, show_cmd_status, NULL); +static DEVICE_ATTR(cmd_result, S_IRUGO, show_cmd_result, NULL); + +static struct attribute *sec_tsp_attributes[] = { + &dev_attr_tsp_firm_version_phone.attr, + &dev_attr_tsp_firm_version_panel.attr, + &dev_attr_tsp_threshold.attr, + &dev_attr_tsp_firm_update.attr, + &dev_attr_tsp_firm_update_status.attr, + NULL, +}; + +static struct attribute *sec_tkey_attributes[] = { + &dev_attr_touchkey_recent.attr, + &dev_attr_touchkey_back.attr, + &dev_attr_touchkey_threshold.attr, + NULL, +}; + +static struct attribute *sec_touch_facotry_attributes[] = { + &dev_attr_close_tsp_test.attr, + &dev_attr_cmd.attr, + &dev_attr_cmd_status.attr, + &dev_attr_cmd_result.attr, + NULL, +}; + +static struct attribute_group sec_tsp_attr_group = { + .attrs = sec_tsp_attributes, +}; + +static struct attribute_group sec_tkey_attr_group = { + .attrs = sec_tkey_attributes, +}; + +static struct attribute_group sec_touch_factory_attr_group = { + .attrs = sec_touch_facotry_attributes, +}; + +extern struct class *sec_class; +struct device *sec_touchscreen; +EXPORT_SYMBOL(sec_touchscreen); +struct device *sec_touchkey; +EXPORT_SYMBOL(sec_touchkey); +struct device *sec_fac_dev; + + +int sec_touch_sysfs(struct ist30xx_data *data) +{ + /* /sys/class/sec/sec_touchscreen */ + sec_touchscreen = device_create(sec_class, NULL, 0, NULL, + "sec_touchscreen"); + if (IS_ERR(sec_touchscreen)) { + tsp_err("Failed to create device (%s)!\n", "sec_touchscreen"); + return -ENODEV; + } + /* /sys/class/sec/sec_touchscreen/... */ + if (sysfs_create_group(&sec_touchscreen->kobj, &sec_tsp_attr_group)) + tsp_err("Failed to create sysfs group(%s)!\n", "sec_touchscreen"); + + /* /sys/class/sec/sec_touchkey */ + sec_touchkey = device_create(sec_class, NULL, 0, NULL, "sec_touchkey"); + if (IS_ERR(sec_touchkey)) { + tsp_err("Failed to create device (%s)!\n", "sec_touchkey"); + return -ENODEV; + } + /* /sys/class/sec/sec_touchkey/... */ + if (sysfs_create_group(&sec_touchkey->kobj, &sec_tkey_attr_group)) + tsp_err("Failed to create sysfs group(%s)!\n", "sec_touchkey"); + + /* /sys/class/sec/tsp */ + sec_fac_dev = device_create(sec_class, NULL, 0, data, "tsp"); + if (IS_ERR(sec_fac_dev)) { + tsp_err("Failed to create device (%s)!\n", "tsp"); + return -ENODEV; + } + /* /sys/class/sec/tsp/... */ + if (sysfs_create_group(&sec_fac_dev->kobj, &sec_touch_factory_attr_group)) + tsp_err("Failed to create sysfs group(%s)!\n", "tsp"); + + return 0; +} +EXPORT_SYMBOL(sec_touch_sysfs); +int sec_fac_cmd_init(struct ist30xx_data *data) +{ + int i; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + INIT_LIST_HEAD(&sec->cmd_list_head); + for (i = 0; i < ARRAY_SIZE(tsp_cmds); i++) + list_add_tail(&tsp_cmds[i].list, &sec->cmd_list_head); + + mutex_init(&sec->cmd_lock); + sec->cmd_is_running = false; + + return 0; +} +EXPORT_SYMBOL(sec_fac_cmd_init); diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx_sec.h b/drivers/input/touchscreen/ist30xxa/ist30xx_sec.h new file mode 100644 index 00000000..517e14b8 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx_sec.h @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_SEC_H__ +#define __IST30XX_SEC_H__ + + +#define SEC_CMD_STR_LEN 32 +#define SEC_CMD_RESULT_STR_LEN 512 +#define SEC_CMD_PARAM_NUM 8 + +#include "ist30xx_tsp.h" + +struct sec_factory { + struct list_head cmd_list_head; + unsigned char cmd_state; + char cmd[SEC_CMD_STR_LEN]; + int cmd_param[SEC_CMD_PARAM_NUM]; + char cmd_result[SEC_CMD_RESULT_STR_LEN]; + struct mutex cmd_lock; + bool cmd_is_running; +}; + +#endif // __IST30XX_SEC_H__ diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx_sys.c b/drivers/input/touchscreen/ist30xxa/ist30xx_sys.c new file mode 100644 index 00000000..62bfba85 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx_sys.c @@ -0,0 +1,308 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xx.h" +#include "ist30xx_update.h" +#include "ist30xx_tracking.h" + +#include +#include + +/****************************************************************************** + * Return value of Error + * EPERM : 1 (Operation not permitted) + * ENOENT : 2 (No such file or directory) + * EIO : 5 (I/O error) + * ENXIO : 6 (No such device or address) + * EINVAL : 22 (Invalid argument) + *****************************************************************************/ + +extern struct ist30xx_data *ts_data; +extern char *ist_vdd_name; + +const u32 pos_cmd = cpu_to_be32(CMD_GET_COORD); +struct i2c_msg pos_msg[READ_CMD_MSG_LEN] = { + { + .flags = 0, + .len = IST30XX_ADDR_LEN, + .buf = (u8 *)&pos_cmd, + }, + { .flags = I2C_M_RD, }, +}; + +int ist30xx_get_position(struct i2c_client *client, u32 *buf, u16 len) +{ + int ret, i; + + pos_msg[0].addr = client->addr; + pos_msg[1].addr = client->addr; + pos_msg[1].len = len * IST30XX_DATA_LEN, + pos_msg[1].buf = (u8 *)buf, + + ret = i2c_transfer(client->adapter, pos_msg, READ_CMD_MSG_LEN); + if (ret != READ_CMD_MSG_LEN) { + tsp_err("%s: i2c failed (%d)\n", __func__, ret); + return -EIO; + } + + for (i = 0; i < len; i++) + buf[i] = cpu_to_be32(buf[i]); + + return 0; +} + +int ist30xx_cmd_start_scan(struct i2c_client *client) +{ + int ret; + + ret = ist30xx_write_cmd(client, CMD_START_SCAN, 0); + + ist30xx_tracking(TRACK_CMD_SCAN); + + msleep(100); + + ts_data->status.noise_mode = true; + + return ret; +} + +int ist30xx_cmd_calibrate(struct i2c_client *client) +{ + int ret = ist30xx_write_cmd(client, CMD_CALIBRATE, 0); + + ist30xx_tracking(TRACK_CMD_CALIB); + + tsp_info("%s\n", __func__); + + msleep(100); + + return ret; +} + +int ist30xx_cmd_check_calib(struct i2c_client *client) +{ + int ret = ist30xx_write_cmd(client, CMD_CHECK_CALIB, 0); + + ist30xx_tracking(TRACK_CMD_CHECK_CALIB); + + tsp_info("*** Check Calibration cmd ***\n"); + + msleep(20); + + return ret; +} + +int ist30xx_cmd_update(struct i2c_client *client, int cmd) +{ + u32 val = (cmd == CMD_ENTER_FW_UPDATE ? CMD_FW_UPDATE_MAGIC : 0); + int ret = ist30xx_write_cmd(client, cmd, val); + + ist30xx_tracking(TRACK_CMD_FWUPDATE); + + msleep(10); + + return ret; +} + +int ist30xx_cmd_reg(struct i2c_client *client, int cmd) +{ + int ret = ist30xx_write_cmd(client, cmd, 0); + + if (cmd == CMD_ENTER_REG_ACCESS) { + ist30xx_tracking(TRACK_CMD_ENTER_REG); + msleep(100); + } else if (cmd == CMD_EXIT_REG_ACCESS) { + ist30xx_tracking(TRACK_CMD_EXIT_REG); + msleep(10); + } + + return ret; +} + + +int ist30xx_read_cmd(struct i2c_client *client, u32 cmd, u32 *buf) +{ + int ret; + u32 le_reg = cpu_to_be32(cmd); + + struct i2c_msg msg[READ_CMD_MSG_LEN] = { + { + .addr = client->addr, + .flags = 0, + .len = IST30XX_ADDR_LEN, + .buf = (u8 *)&le_reg, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = IST30XX_DATA_LEN, + .buf = (u8 *)buf, + }, + }; + + ret = i2c_transfer(client->adapter, msg, READ_CMD_MSG_LEN); + if (ret != READ_CMD_MSG_LEN) { + tsp_err("%s: i2c failed (%d), cmd: %x\n", __func__, ret, cmd); + return -EIO; + } + *buf = cpu_to_be32(*buf); + + return 0; +} + + +int ist30xx_write_cmd(struct i2c_client *client, u32 cmd, u32 val) +{ + int ret; + struct i2c_msg msg; + u8 msg_buf[IST30XX_ADDR_LEN + IST30XX_DATA_LEN]; + + put_unaligned_be32(cmd, msg_buf); + put_unaligned_be32(val, msg_buf + IST30XX_ADDR_LEN); + + msg.addr = client->addr; + msg.flags = 0; + msg.len = IST30XX_ADDR_LEN + IST30XX_DATA_LEN; + msg.buf = msg_buf; + + ret = i2c_transfer(client->adapter, &msg, WRITE_CMD_MSG_LEN); + if (ret != WRITE_CMD_MSG_LEN) { + tsp_err("%s: i2c failed (%d), cmd: %x(%x)\n", __func__, ret, cmd, val); + return -EIO; + } + + return 0; +} + +static void ts_power_enable(int en) +{ + int ret; + + tsp_info("%s %s\n", __func__, (en) ? "on" : "off"); + + static struct regulator *ts_vdd = NULL; + + if (ts_vdd == NULL) { + ts_vdd = regulator_get(NULL, ist_vdd_name); + + if (IS_ERR(ts_vdd)) { + pr_err("Get regulator of TSP error!\n"); + return; + } + } + + if (en) { + ret = regulator_set_voltage(ts_vdd, 3000000, 3000000); + regulator_enable(ts_vdd); + } + else if (regulator_is_enabled(ts_vdd)) { + regulator_disable(ts_vdd); + } +} + +int ist30xx_power_on(bool download) +{ + if (ts_data->status.power != 1) { + tsp_info("%s()\n", __func__); + ist30xx_tracking(TRACK_PWR_ON); + /* VDD enable */ + msleep(5); + /* VDDIO enable */ + ts_power_enable(1); + if (download) + msleep(8); + else + msleep(100); + ts_data->status.power = 1; + } + + return 0; +} + + +int ist30xx_power_off(void) +{ + if (ts_data->status.power != 0) { + tsp_info("%s()\n", __func__); + ist30xx_tracking(TRACK_PWR_OFF); + /* VDDIO disable */ + msleep(5); + /* VDD disable */ + ts_power_enable(0); + msleep(50); + ts_data->status.power = 0; + ts_data->status.noise_mode = false; + } + + return 0; +} + + +int ist30xx_reset(bool download) +{ + tsp_info("%s()\n", __func__); + ist30xx_power_off(); + msleep(10); + ist30xx_power_on(download); + + return 0; +} + + +int ist30xx_internal_suspend(struct ist30xx_data *data) +{ + ist30xx_power_off(); + return 0; +} + + +int ist30xx_internal_resume(struct ist30xx_data *data) +{ + ist30xx_power_on(false); + + return 0; +} + + +int ist30xx_init_system(void) +{ + int ret; + + // TODO : place additional code here. + ret = ist30xx_power_on(false); + if (ret) { + tsp_err("%s: ist30xx_init_system failed (%d)\n", __func__, ret); + return -EIO; + } + +#if 1 + ret = ist30xx_reset(false); + if (ret) { + tsp_err("%s: ist30xx_reset failed (%d)\n", __func__, ret); + return -EIO; + } +#endif + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx_tracking.c b/drivers/input/touchscreen/ist30xxa/ist30xx_tracking.c new file mode 100644 index 00000000..543bed88 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx_tracking.c @@ -0,0 +1,236 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xx.h" +#include "ist30xx_update.h" +#include "ist30xx_misc.h" +#include "ist30xx_tracking.h" + + +IST30XX_RING_BUF TrackBuf; +IST30XX_RING_BUF *pTrackBuf; + +bool tracking_initialize = false; + +void ist30xx_tracking_init(void) +{ + if (tracking_initialize) + return; + + pTrackBuf = &TrackBuf; + + pTrackBuf->RingBufCtr = 0; + pTrackBuf->RingBufInIdx = 0; + pTrackBuf->RingBufOutIdx = 0; + + tracking_initialize = true; +} + +void ist30xx_tracking_deinit(void) +{ +} + +static spinlock_t mr_lock = __SPIN_LOCK_UNLOCKED(); +int ist30xx_get_track(u32 *track, int cnt) +{ + int i; + u8 *buf = (u8 *)track; + unsigned long flags; + + + cnt *= sizeof(track[0]); + + spin_lock_irqsave(&mr_lock, flags); + + if (pTrackBuf->RingBufCtr < (u16)cnt) { + spin_unlock_irqrestore(&mr_lock, flags); + return IST30XX_RINGBUF_NOT_ENOUGH; + } + + for (i = 0; i < cnt; i++) { + if (pTrackBuf->RingBufOutIdx == IST30XX_MAX_LOG_SIZE) + pTrackBuf->RingBufOutIdx = 0; + + *buf++ = (u8)pTrackBuf->LogBuf[pTrackBuf->RingBufOutIdx++]; + pTrackBuf->RingBufCtr--; + } + + spin_unlock_irqrestore(&mr_lock, flags); + + return IST30XX_RINGBUF_NO_ERR; +} + +u32 ist30xx_get_track_cnt(void) +{ + return pTrackBuf->RingBufCtr; +} + +#if IST30XX_TRACKING_MODE +int ist30xx_put_track(u32 *track, int cnt) +{ + int i; + u8 *buf = (u8 *)track; + unsigned long flags; + + spin_lock_irqsave(&mr_lock, flags); + + cnt *= sizeof(track[0]); + + pTrackBuf->RingBufCtr += cnt; + if (pTrackBuf->RingBufCtr > IST30XX_MAX_LOG_SIZE) { + pTrackBuf->RingBufOutIdx += + (pTrackBuf->RingBufCtr - IST30XX_MAX_LOG_SIZE); + if (pTrackBuf->RingBufOutIdx >= IST30XX_MAX_LOG_SIZE) + pTrackBuf->RingBufOutIdx -= IST30XX_MAX_LOG_SIZE; + + pTrackBuf->RingBufCtr = IST30XX_MAX_LOG_SIZE; + } + + for (i = 0; i < cnt; i++) { + if (pTrackBuf->RingBufInIdx == IST30XX_MAX_LOG_SIZE) + pTrackBuf->RingBufInIdx = 0; + pTrackBuf->LogBuf[pTrackBuf->RingBufInIdx++] = *buf++; + } + + spin_unlock_irqrestore(&mr_lock, flags); + + return IST30XX_RINGBUF_NO_ERR; +} + +int ist30xx_put_track_ms(u32 ms) +{ + ms &= 0x0000FFFF; + ms |= IST30XX_TRACKING_MAGIC; + + return ist30xx_put_track(&ms, 1); +} + +static struct timespec t_track; +int ist30xx_tracking(u32 status) +{ + u32 ms; + + if (!tracking_initialize) + ist30xx_tracking_init(); + + ktime_get_ts(&t_track); + ms = t_track.tv_sec * 1000 + t_track.tv_nsec / 1000000; + + ist30xx_put_track_ms(ms); + ist30xx_put_track(&status, 1); + + return 0; +} +#else +int ist30xx_put_track(u32 *track, int cnt) +{ + return 0; +} +int ist30xx_put_track_ms(u32 ms) +{ + return 0; +} +int ist30xx_tracking(u32 status) +{ + return 0; +} +#endif // IST30XX_TRACKING_MODE + +#define MAX_TRACKING_COUNT (1024) +struct timespec t_curr; // ns + +/* sysfs: /sys/class/touch/tracking/track_frame */ +ssize_t ist30xx_track_frame_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int i, buf_cnt = 0; + u32 track_cnt = MAX_TRACKING_COUNT; + u32 track; + char msg[10]; + + mutex_lock(&ist30xx_mutex); + + buf[0] = '\0'; + + if (track_cnt > ist30xx_get_track_cnt()) + track_cnt = ist30xx_get_track_cnt(); + + track_cnt /= sizeof(track); + + tsp_verb("num: %d of %d\n", track_cnt, ist30xx_get_track_cnt()); + + for (i = 0; i < track_cnt; i++) { + ist30xx_get_track(&track, 1); + + tsp_verb("%08X\n", track); + + buf_cnt += sprintf(msg, "%08x", track); + strcat(buf, msg); + } + + mutex_unlock(&ist30xx_mutex); + + return buf_cnt; +} + +/* sysfs: /sys/class/touch/tracking/track_cnt */ +ssize_t ist30xx_track_cnt_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + u32 val = (u32)ist30xx_get_track_cnt(); + + tsp_verb("tracking cnt: %d\n", val); + + return sprintf(buf, "%08x", val); +} + + +/* sysfs */ +static DEVICE_ATTR(track_frame, S_IRWXUGO, ist30xx_track_frame_show, NULL); +static DEVICE_ATTR(track_cnt, S_IRWXUGO, ist30xx_track_cnt_show, NULL); + +static struct attribute *tracking_attributes[] = { + &dev_attr_track_frame.attr, + &dev_attr_track_cnt.attr, + NULL, +}; + +static struct attribute_group tracking_attr_group = { + .attrs = tracking_attributes, +}; + +extern struct class *ist30xx_class; +struct device *ist30xx_tracking_dev; + +int ist30xx_init_tracking_sysfs(void) +{ + /* /sys/class/touch/tracking */ + ist30xx_tracking_dev = device_create(ist30xx_class, NULL, 0, NULL, + "tracking"); + + /* /sys/class/touch/tracking/... */ + if (sysfs_create_group(&ist30xx_tracking_dev->kobj, &tracking_attr_group)) + tsp_err("[ TSP ] Failed to create sysfs group(%s)!\n", "tracking"); + + ist30xx_tracking_init(); + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx_tracking.h b/drivers/input/touchscreen/ist30xxa/ist30xx_tracking.h new file mode 100644 index 00000000..a53175e2 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx_tracking.h @@ -0,0 +1,57 @@ +#ifndef __IST30XX_TRACKING_H__ +#define __IST30XX_TRACKING_H__ + + +#define IST30XX_RINGBUF_NO_ERR (0) +#define IST30XX_RINGBUF_NOT_ENOUGH (1) +#define IST30XX_RINGBUF_EMPTY (2) +#define IST30XX_RINGBUF_FULL (3) +#define IST30XX_RINGBUF_TIMEOUT (4) +#define IST30XX_MAX_LOG_SIZE (4 * 100 * 1024) // 4bytes * 100Kbytes, Single touch: about 12minutes + +#define TRACK_PWR_ON (0x1) +#define TRACK_PWR_OFF (0x2) +#define TRACK_PWR_RESET (0x3) +#define TRACK_INTR_ENABLE (0x4) +#define TRACK_INTR_DISABLE (0x5) +#define TRACK_CMD_RUN_DEVICE (0x10) +#define TRACK_CMD_SCAN (0x11) +#define TRACK_CMD_TACON (0x12) +#define TRACK_CMD_TADISCON (0x13) +#define TRACK_CMD_FWUPDATE (0x14) +#define TRACK_CMD_PRUPDATE (0x15) +#define TRACK_CMD_CALIB (0x16) +#define TRACK_CMD_CHECK_CALIB (0x17) +#define TRACK_CMD_CHKSUM (0x18) +#define TRACK_CMD_CHKSUM_ALL (0x19) +#define TRACK_CMD_ENTER_REG (0x1A) +#define TRACK_CMD_EXIT_REG (0x1B) +#define TRACK_POS_FINGER (0x20) +#define TRACK_POS_KEY (0x30) +#define TRACK_POS_UNKNOWN (0x3F) + +#define IST30XX_TRACKING_MAGIC (0x7750 << 16) + + +typedef struct _IST30XX_RINGBUF { + u32 RingBufCtr; // Number of characters in the ring buffer + u32 RingBufInIdx; + u32 RingBufOutIdx; + u8 LogBuf[IST30XX_MAX_LOG_SIZE]; // Ring buffer for status +} IST30XX_RING_BUF; + + +void ist30xx_tracking_init(void); +void ist30xx_tracking_deinit(void); + +int ist30xx_get_track(u32 *track, int cnt); +int ist30xx_put_track(u32 *track, int cnt); +int ist30xx_put_track_ms(u32 ms); + +u32 ist30xx_get_track_cnt(void); + +int ist30xx_tracking(u32 status); + +int ist30xx_init_tracking_sysfs(void); + +#endif // __IST30XX_TRACKING_H__ diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx_tsp.h b/drivers/input/touchscreen/ist30xxa/ist30xx_tsp.h new file mode 100644 index 00000000..c6f2149b --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx_tsp.h @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_TSP_H__ +#define __IST30XX_TSP_H__ + +#define IST30XX_DD_VERSION (5) + +#define IST30XX_MULTIPLE_TSP (0) + +#define TSP_CHIP_VENDOR ("IMAGIS") +#define TSP_CHIP_NAME ("IST3038") + +#define FLAG_NODE_Y (0) +#define FLAG_NODE_X (1) + +#define NODE_TX_NUM (21) +#define NODE_RX_NUM (14) +#define NODE_TOTAL_NUM (NODE_TX_NUM * NODE_RX_NUM) + +#define TSP_TX_NUM (21) +#define TSP_RX_NUM (13) +#define TSP_TOTAL_NUM (TSP_TX_NUM * TSP_RX_NUM) + +#define TSP_TYPE_UNKNOWN (0xF0) +#define TSP_TYPE_ALPS (0xF) +#define TSP_TYPE_EELY (0xE) +#define TSP_TYPE_TOP (0xD) +#define TSP_TYPE_MELFAS (0xC) +#define TSP_TYPE_ILJIN (0xB) +#define TSP_TYPE_SYNOPEX (0xA) +#define TSP_TYPE_SMAC (0x9) +#define TSP_TYPE_TAEYANG (0x8) +#define TSP_TYPE_TOVIS (0x7) +#define TSP_TYPE_ELK (0x6) +#define TSP_TYPE_OTHERS (0x5) + +#define IST30XXB_PARSE_TSPTYPE(n) ((n >> 1) & 0xF) + +#endif // __IST30XX_TSP_H__ diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx_update.c b/drivers/input/touchscreen/ist30xxa/ist30xx_update.c new file mode 100644 index 00000000..ec36fb3a --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx_update.c @@ -0,0 +1,1349 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xx.h" +#include "ist30xx_update.h" +#include "ist30xx_tracking.h" + +#if IST30XX_DEBUG +#include "ist30xx_misc.h" +#endif + +#if IST30XX_INTERNAL_BIN +#include "./firmware/core_prime.h" +#if IST30XX_MULTIPLE_TSP +//#include "./firmware/core_prime.h" +#endif +#endif // IST30XX_INTERNAL_BIN + +struct ist30xx_tags *ts_tags; + +u32 ist30xx_fw_ver = 0; +u32 ist30xx_param_ver = 0; +u32 ist30xx_sub_ver = 0; + +extern struct ist30xx_data *ts_data; + +extern void ist30xx_disable_irq(struct ist30xx_data *data); +extern void ist30xx_enable_irq(struct ist30xx_data *data); + +int ist30xx_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, + int msg_num, u8 *cmd_buf) +{ + int ret = 0; + int idx = msg_num - 1; + int size = msgs[idx].len; + u8 *msg_buf = NULL; + u8 *pbuf = NULL; + int trans_size, max_size = 0; + + if (msg_num == WRITE_CMD_MSG_LEN) + max_size = I2C_MAX_WRITE_SIZE; + else if (msg_num == READ_CMD_MSG_LEN) + max_size = I2C_MAX_READ_SIZE; + + if (unlikely(max_size == 0)) { + tsp_err("%s() : transaction size(%d)\n", __func__, max_size); + return -EINVAL; + } + + if (msg_num == WRITE_CMD_MSG_LEN) { + msg_buf = kmalloc(max_size + IST30XX_ADDR_LEN, GFP_KERNEL); + if (!msg_buf) + return -ENOMEM; + memcpy(msg_buf, cmd_buf, IST30XX_ADDR_LEN); + pbuf = msgs[idx].buf; + } + + while (size > 0) { + trans_size = (size >= max_size ? max_size : size); + + msgs[idx].len = trans_size; + if (msg_num == WRITE_CMD_MSG_LEN) { + memcpy(&msg_buf[IST30XX_ADDR_LEN], pbuf, trans_size); + msgs[idx].buf = msg_buf; + msgs[idx].len += IST30XX_ADDR_LEN; + } + ret = i2c_transfer(adap, msgs, msg_num); + if (unlikely(ret != msg_num)) { + tsp_err("%s() : i2c_transfer failed(%d), num=%d\n", + __func__, ret, msg_num); + break; + } + + if (msg_num == WRITE_CMD_MSG_LEN) + pbuf += trans_size; + else + msgs[idx].buf += trans_size; + + size -= trans_size; + } + + if (msg_num == WRITE_CMD_MSG_LEN) + kfree(msg_buf); + + return ret; +} + +int ist30xx_read_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len) +{ + int ret, i; + u32 le_reg = cpu_to_be32(cmd); + + struct i2c_msg msg[READ_CMD_MSG_LEN] = { + { + .addr = client->addr, + .flags = 0, + .len = IST30XX_ADDR_LEN, + .buf = (u8 *)&le_reg, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = len * IST30XX_DATA_LEN, + .buf = (u8 *)buf, + }, + }; + + ret = ist30xx_i2c_transfer(client->adapter, msg, READ_CMD_MSG_LEN, NULL); + if (unlikely(ret != READ_CMD_MSG_LEN)) + return -EIO; + + for (i = 0; i < len; i++) + buf[i] = cpu_to_be32(buf[i]); + + return 0; +} + +int ist30xx_write_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len) +{ + int i; + int ret; + struct i2c_msg msg; + u8 cmd_buf[IST30XX_ADDR_LEN]; + u8 msg_buf[IST30XX_DATA_LEN * (len + 1)]; + + put_unaligned_be32(cmd, cmd_buf); + + if (likely(len > 0)) { + for (i = 0; i < len; i++) + put_unaligned_be32(buf[i], msg_buf + (i * IST30XX_DATA_LEN)); + } else { + /* then add dummy data(4byte) */ + put_unaligned_be32(0, msg_buf); + len = 1; + } + + msg.addr = client->addr; + msg.flags = 0; + msg.len = IST30XX_DATA_LEN * len; + msg.buf = msg_buf; + + ret = ist30xx_i2c_transfer(client->adapter, &msg, WRITE_CMD_MSG_LEN, + cmd_buf); + if (unlikely(ret != WRITE_CMD_MSG_LEN)) + return -EIO; + + return 0; +} + +int ist30xxb_burst_read(struct i2c_client *client, u32 addr, + u32 *buf32, int len) +{ + int ret = 0; + int i; + int max_len = I2C_MAX_READ_SIZE / IST30XX_DATA_LEN; + + addr |= IST30XXB_BURST_ACCESS; + + for (i = 0; i < len; i += max_len) { + if (len < max_len) max_len = len; + + ret = ist30xx_read_buf(client, addr, buf32, max_len); + if (unlikely(ret)) { + tsp_err("Burst fail, addr: %x\n", __func__, addr); + return ret; + } + + addr += max_len * IST30XX_DATA_LEN; + buf32 += max_len; + } + + return 0; +} + +#define IST30XXB_ISP_READ (1) +#define IST30XXB_ISP_WRITE (2) +#define IST30XXB_ISP_ERASE_ALL (3) +#define IST30XXB_ISP_ERASE_PAGE (4) + +int ist30xxb_isp_reset(void) +{ + int ret = 0; + +#if (IMAGIS_TSP_IC == IMAGIS_IST3038) + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_EEPMODE, 0x180); + if (unlikely(ret)) + return ret; +#else + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_EEPPWRCTRL, 0xB200); + if (unlikely(ret)) + return ret; + + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_EEPPWRCTRL, 0x9200); + if (unlikely(ret)) + return ret; +#endif + msleep(1); + + return ret; +} + +int ist30xxb_isp_enable(bool enable) +{ + int ret = 0; + + if (enable) { + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_EEPISPEN, 0x1); + if (unlikely(ret)) + return ret; + + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_LDOOSC, 0x74C8); + if (unlikely(ret)) + return ret; + + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_CLKDIV, 0x3); + if (unlikely(ret)) + return ret; + +#if (IMAGIS_TSP_IC != IMAGIS_IST3038) + ret = ist30xx_write_cmd(ts_data->client, + IST30XXB_REG_PADCTRL, 0x03300000); + if (unlikely(ret)) + return ret; +#endif + + msleep(10); + + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_WDTCON, 0x0); + if (unlikely(ret)) + return ret; + } else { + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_EEPISPEN, 0x0); + if (unlikely(ret)) + return ret; + + msleep(1); + } + + return 0; +} + +int ist30xxb_isp_mode(int mode) +{ + int ret = 0; + u32 val = 0; + + switch (mode) { + case IST30XXB_ISP_READ: + val = 0x1C0; + break; + case IST30XXB_ISP_WRITE: + val = 0x1A8; + break; + case IST30XXB_ISP_ERASE_ALL: + val = 0x1A7; + break; + case IST30XXB_ISP_ERASE_PAGE: + val = 0x1A3; + break; + default: + tsp_err("ISP fail, unknown mode\n"); + return -EINVAL; + } + + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_EEPMODE, val); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_EEPMODE\n"); + return ret; + } + + return 0; +} + +int ist30xxb_isp_erase(struct i2c_client *client, int mode, u32 addr) +{ + int ret = 0; + u32 val = 0x1A0; + u8 buf[EEPROM_PAGE_SIZE] = { 0, }; + + ret = ist30xxb_isp_mode(mode); + if (unlikely(ret)) + return ret; + + ret = ist30xx_write_cmd(client, IST30XXB_REG_EEPADDR, addr); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_EEPADDR\n"); + return ret; + } + + val = (EEPROM_PAGE_SIZE / IST30XX_DATA_LEN); + ret = ist30xx_write_buf(client, IST30XXB_REG_EEPWDAT, (u32 *)buf, val); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_EEPWDAT\n"); + return ret; + } + + msleep(30); + + ist30xxb_isp_reset(); + + return 0; +} + +int ist30xxb_isp_write(struct i2c_client *client, u32 addr, + const u32 *buf32, int len) +{ + int ret = 0; + + ret = ist30xx_write_cmd(client, IST30XXB_REG_EEPADDR, addr); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_EEPADDR\n"); + return ret; + } + + ret = ist30xx_write_buf(client, IST30XXB_REG_EEPWDAT, (u32 *)buf32, len); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_EEPWDAT\n"); + return ret; + } + + return 0; +} + +int ist30xxb_isp_read(struct i2c_client *client, u32 addr, + u32 *buf32, int len) +{ + int ret = 0; + int i; + int max_len = I2C_MAX_READ_SIZE / IST30XX_DATA_LEN; + + for (i = 0; i < len; i += max_len) { + if (len < max_len) max_len = len; + + /* IST30xxB ISP read mode */ + ret = ist30xxb_isp_mode(IST30XXB_ISP_READ); + if (unlikely(ret)) + return ret; + + ret = ist30xx_write_cmd(client, IST30XXB_REG_EEPADDR, addr); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_EEPADDR\n"); + return ret; + } + + ret = ist30xx_read_buf(client, IST30XXB_REG_EEPRDAT, buf32, max_len); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_EEPWDAT\n"); + return ret; + } + + addr += max_len * IST30XX_DATA_LEN; + buf32 += max_len; + } + + return 0; +} + +int ist30xxb_cmd_read_chksum(struct i2c_client *client, + u32 start_addr, u32 end_addr, u32 *chksum) +{ + int ret = 0; + u32 val = (1 << 31); // Chkecksum enable + + val |= start_addr; + val |= (end_addr / IST30XX_DATA_LEN - 1) << 16; + + ret = ist30xx_write_cmd(client, IST30XXB_REG_CHKSMOD, val); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_CHKSMOD (%x)\n", val); + return ret; + } + msleep(10); + + ret = ist30xx_read_cmd(client, IST30XXB_REG_CHKSDAT, chksum); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XXB_REG_CHKSDAT (%x)\n", chksum); + return ret; + } + + return 0; +} + +int ist30xxb_read_chksum(struct i2c_client *client, u32 *chksum) +{ + int ret = 0; + u32 start_addr, end_addr; + u32 chksum1 = 0, chksum2 = 0; + + start_addr = 0; + end_addr = ts_data->tags.fw_addr + ts_data->tags.fw_size; + ret = ist30xxb_cmd_read_chksum(client, start_addr, end_addr, &chksum1); + if (unlikely(ret)) + return ret; + + start_addr = ts_data->tags.cfg_addr; + end_addr = ts_data->tags.sensor3_addr + ts_data->tags.sensor3_size; + ret = ist30xxb_cmd_read_chksum(client, start_addr, end_addr, &chksum2); + if (unlikely(ret)) + return ret; + + *chksum = chksum1 | (chksum2 << 16); + + tsp_info("chksum: %x(%x~%x, %x~%x)\n", *chksum, + 0, ts_data->tags.fw_addr + ts_data->tags.fw_size, + start_addr, end_addr); + + return 0; +} + +int ist30xxb_read_chksum_all(struct i2c_client *client, u32 *chksum) +{ + int ret = 0; + u32 start_addr, end_addr; + + start_addr = 0; + end_addr = IST30XX_EEPROM_SIZE; + ret = ist30xxb_cmd_read_chksum(client, start_addr, end_addr, chksum); + if (unlikely(ret)) + return ret; + + tsp_info("chksum: %x(%x~%x)\n", *chksum, start_addr, end_addr); + + return 0; +} + +int ist30xxb_isp_fw_read(struct i2c_client *client, u32 *buf32) +{ + int ret = 0; + int i; + + u16 addr = EEPROM_BASE_ADDR; + int len = EEPROM_PAGE_SIZE / IST30XX_DATA_LEN; + + ist30xx_reset(true); + + /* IST30xxB ISP enable */ + ret = ist30xxb_isp_enable(true); + if (unlikely(ret)) + return ret; + + for (i = 0; i < IST30XX_EEPROM_SIZE; i += EEPROM_PAGE_SIZE) { + ret = ist30xxb_isp_read(client, addr, buf32, len); + if (unlikely(ret)) + goto isp_fw_read_end; + + addr += EEPROM_PAGE_SIZE; + buf32 += len; + } + +isp_fw_read_end: + /* IST30xxB ISP disable */ + ist30xxb_isp_enable(false); + return ret; +} + +int ist30xxb_isp_fw_update(struct i2c_client *client, const u8 *buf, + u32 *chksum) +{ + int ret = 0; + int i; + u32 page_cnt = IST30XX_EEPROM_SIZE / EEPROM_PAGE_SIZE; + u16 addr = EEPROM_BASE_ADDR; + int len = EEPROM_PAGE_SIZE / IST30XX_DATA_LEN; + + ist30xx_tracking(TRACK_CMD_FWUPDATE); + + /* IST30xxB ISP enable */ + ret = ist30xxb_isp_enable(true); + if (unlikely(ret)) + goto isp_fw_update_end; + + /* IST30xxB ISP erase */ + ret = ist30xxb_isp_erase(client, IST30XXB_ISP_ERASE_ALL, 0); + if (unlikely(ret)) + goto isp_fw_update_end; + +#if (IMAGIS_TSP_IC == IMAGIS_IST3038) + /* IST30xxB ISP read all checksum */ + ret = ist30xxb_read_chksum_all(client, chksum); + if (unlikely(ret)) + goto isp_fw_update_end; + + /* IST30xxB compare checksum */ + if (unlikely(*chksum != 0)) + goto isp_fw_update_end; +#endif + + /* IST30xxB power reset */ + ist30xx_reset(true); + + /* IST30xxB ISP enable */ + ret = ist30xxb_isp_enable(true); + if (unlikely(ret)) + goto isp_fw_update_end; + + for (i = 0; i < page_cnt; i++) { + /* IST30xxB ISP write mode */ + ret = ist30xxb_isp_mode(IST30XXB_ISP_WRITE); + if (unlikely(ret)) + goto isp_fw_update_end; + + ret = ist30xxb_isp_write(client, addr, (u32 *)buf, len); + if (unlikely(ret)) + goto isp_fw_update_end; + + addr += EEPROM_PAGE_SIZE; + buf += EEPROM_PAGE_SIZE; + + msleep(5); + + ist30xxb_isp_reset(); + } + +#if (IMAGIS_TSP_IC == IMAGIS_IST3038) + ist30xxb_read_chksum_all(client, chksum); +#endif + +isp_fw_update_end: + /* IST30xxB ISP disable */ + ist30xxb_isp_enable(false); + return ret; +} + +int ist30xx_fw_write(struct i2c_client *client, const u8 *buf) +{ + int ret; + int len; + u32 *buf32 = (u32 *)(buf + ts_data->fw.index); + u32 size = ts_data->fw.size; + + if (unlikely((size <= 0) || (size > IST30XX_EEPROM_SIZE))) + return -ENOEXEC; + + while (size > 0) { + len = (size >= EEPROM_PAGE_SIZE ? EEPROM_PAGE_SIZE : size); + + ret = ist30xx_write_buf(client, CMD_ENTER_FW_UPDATE, buf32, (len >> 2)); + if (unlikely(ret)) + return ret; + + buf32 += (len >> 2); + size -= len; + + msleep(5); + } + return 0; +} + + +u32 ist30xx_parse_ver(int flag, const u8 *buf) +{ + u32 ver = 0; + u32 *buf32 = (u32 *)buf; + + if (flag == FLAG_FW) + ver = (u32)buf32[(ts_data->tags.flag_addr + 60) >> 2]; + else if (flag == FLAG_SUB) + ver = (u32)buf32[(ts_data->tags.flag_addr + 52) >> 2]; + else if (flag == FLAG_PARAM) + ver = (u32)(buf32[(ts_data->tags.cfg_addr + 4) >> 2] & 0xFFFF); + else + tsp_warn("Parsing ver's flag is not corrent!\n"); + + return ver; +} + + +int calib_ms_delay = WAIT_CALIB_CNT; +int ist30xx_calib_wait(void) +{ + int cnt = calib_ms_delay; + + ts_data->status.calib_msg = 0; + while (cnt-- > 0) { + msleep(100); + + if (ts_data->status.calib_msg) { + tsp_info("Calibration status : %d, Max raw gap : %d - (%08x)\n", + CALIB_TO_STATUS(ts_data->status.calib_msg), + CALIB_TO_GAP(ts_data->status.calib_msg), + ts_data->status.calib_msg); + + if (CALIB_TO_OS_VALUE(ts_data->status.calib_msg) == 0xFFFF) + return 1; + else if (CALIB_TO_STATUS(ts_data->status.calib_msg) == 0) + return 0; // Calibrate success + else + return -EAGAIN; + } + } + tsp_warn("Calibration time out\n"); + + return -EPERM; +} + +int ist30xx_calibrate(int wait_cnt) +{ + int ret = -ENOEXEC; + + tsp_info("*** Calibrate %ds ***\n", calib_ms_delay / 10); + + ts_data->status.update = 1; + while (wait_cnt--) { + ist30xx_disable_irq(ts_data); + ist30xx_reset(false); + + ret = ist30xx_cmd_calibrate(ts_data->client); + if (unlikely(ret)) + continue; + + ist30xx_enable_irq(ts_data); + ret = ist30xx_calib_wait(); + if (likely(!ret)) + break; + } + + ist30xx_disable_irq(ts_data); + + ist30xx_reset(false); + + ts_data->status.update = 2; + + ist30xx_enable_irq(ts_data); + + return ret; +} + + +int ist30xx_parse_tags(struct ist30xx_data *data, const u8 *buf, const u32 size) +{ + int ret = -EPERM; + + ts_tags = (struct ist30xx_tags *)(&buf[size - sizeof(struct ist30xx_tags)]); + + if (!strncmp(ts_tags->magic1, IST30XX_TAG_MAGIC, sizeof(ts_tags->magic1)) + && !strncmp(ts_tags->magic2, IST30XX_TAG_MAGIC, sizeof(ts_tags->magic2)) + ) { + data->fw.index = ts_tags->fw_addr; + data->fw.size = ts_tags->flag_addr - ts_tags->fw_addr + + ts_tags->flag_size; + data->fw.chksum = ts_tags->chksum; + data->tags = *ts_tags; + + ret = 0; + } + + tsp_verb("Tagts magic1: %s, magic2: %s\n", + ts_tags->magic1, ts_tags->magic2); + tsp_verb(" fw: %x(%x)\n", ts_tags->fw_addr, ts_tags->fw_size); + tsp_verb(" flag: %x(%x)\n", ts_tags->flag_addr, ts_tags->flag_size); + tsp_verb(" cfg: %x(%x)\n", ts_tags->cfg_addr, ts_tags->cfg_size); + tsp_verb(" sensor1: %x(%x)\n", ts_tags->sensor1_addr, + ts_tags->sensor1_size); + tsp_verb(" sensor2: %x(%x)\n", ts_tags->sensor2_addr, + ts_tags->sensor2_size); + tsp_verb(" sensor3: %x(%x)\n", ts_tags->sensor3_addr, + ts_tags->sensor3_size); + tsp_verb(" chksum: %x\n", ts_tags->chksum); + tsp_verb(" build time : %04d/%02d/%02d (%02d:%02d:%02d)\n", + ts_tags->year, ts_tags->month, ts_tags->day, + ts_tags->hour, ts_tags->min, ts_tags->sec); + + return ret; +} + +void ist30xx_get_update_info(struct ist30xx_data *data, const u8 *buf, + const u32 size) +{ + int ret; + + ret = ist30xx_parse_tags(data, buf, size); + if (unlikely(ret != TAGS_PARSE_OK)) + tsp_warn("Cannot find tags of F/W, make a tags by 'tagts.exe'\n"); +} + +#if (IST30XX_DEBUG) && (IST30XX_INTERNAL_BIN) +extern TSP_INFO ist30xx_tsp_info; +extern TKEY_INFO ist30xx_tkey_info; +int ist30xx_get_tkey_info(struct ist30xx_data *data) +{ + int ret = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + TKEY_INFO *tkey = &ist30xx_tkey_info; + u8 *cfg_buf; + + cfg_buf = (u8 *)&data->fw.buf[data->tags.cfg_addr]; + + tkey->enable = (bool)(cfg_buf[0x321] & 1); + tkey->axis_rx = (bool)((cfg_buf[0x321] >> 1) & 1); + tkey->key_num = (u8)cfg_buf[0x322]; + tkey->baseline = (u16)((cfg_buf[0x324] << 8) | cfg_buf[0x323]); + tkey->ch_num[0] = (u8)cfg_buf[0x326]; + tkey->ch_num[1] = (u8)cfg_buf[0x327]; + tkey->ch_num[2] = (u8)cfg_buf[0x328]; + tkey->ch_num[3] = (u8)cfg_buf[0x329]; + tkey->ch_num[4] = (u8)cfg_buf[0x32A]; + + if (tkey->axis_rx) { + if (tsp->dir.swap_xy) + tsp->height -= 1; + else + tsp->width -= 1; + } else { + if (tsp->dir.swap_xy) + tsp->width -= 1; + else + tsp->height -= 1; + } + + return ret; +} + +#define TSP_INFO_SWAP_XY (1 << 0) +#define TSP_INFO_FLIP_X (1 << 1) +#define TSP_INFO_FLIP_Y (1 << 2) +int ist30xx_get_tsp_info(struct ist30xx_data *data) +{ + int ret = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + u8 *cfg_buf, *sensor_buf; + + cfg_buf = (u8 *)&data->fw.buf[data->tags.cfg_addr]; + sensor_buf = (u8 *)&data->fw.buf[data->tags.sensor1_addr]; + + tsp->finger_num = (u8)cfg_buf[0x304]; + tsp->dir.swap_xy = (bool)(cfg_buf[0x305] & TSP_INFO_SWAP_XY ? true : false); + tsp->dir.flip_x = (bool)(cfg_buf[0x305] & TSP_INFO_FLIP_X ? true : false); + tsp->dir.flip_y = (bool)(cfg_buf[0x305] & TSP_INFO_FLIP_Y ? true : false); + tsp->baseline = (u16)((cfg_buf[0x319] << 8) | cfg_buf[0x318]); + + tsp->ch_num.tx = (u8)sensor_buf[0x40]; + tsp->ch_num.rx = (u8)sensor_buf[0x41]; + + tsp->node.len = tsp->ch_num.tx * tsp->ch_num.rx; + tsp->height = (tsp->dir.swap_xy ? tsp->ch_num.rx : tsp->ch_num.tx); + tsp->width = (tsp->dir.swap_xy ? tsp->ch_num.tx : tsp->ch_num.rx); + + return ret; +} +#endif // (IST30XX_DEBUG) && (IST30XX_INTERNAL_BIN) + + +#define update_next_step(ret) { if (unlikely(ret)) goto end; } +int ist30xx_fw_update(struct i2c_client *client, const u8 *buf, int size, + bool mode) +{ + int ret = 0; + u32 chksum = 0; + struct ist30xx_fw *fw = &ts_data->fw; + + tsp_info("*** Firmware update ***\n"); + tsp_info(" core: %x, param: %x, sub: %x (addr: 0x%x ~ 0x%x)\n", + ist30xx_fw_ver, ist30xx_param_ver, ist30xx_sub_ver, + fw->index, (fw->index + fw->size)); + + ts_data->status.update = 1; + + ist30xx_disable_irq(ts_data); + + ist30xx_reset(true); + + if (mode) { /* ISP Mode */ + ret = ist30xxb_isp_fw_update(client, buf, &chksum); + update_next_step(ret); + } else { /* I2C SW Mode */ + ret = ist30xx_cmd_update(client, CMD_ENTER_FW_UPDATE); + update_next_step(ret); + + ret = ist30xx_fw_write(client, buf); + update_next_step(ret); + } + msleep(50); + + buf += IST30XX_EEPROM_SIZE; + size -= IST30XX_EEPROM_SIZE; + + ist30xx_reset(false); + + ret = ist30xx_read_cmd(client, CMD_GET_CHECKSUM, &chksum); + if (unlikely((ret) || (chksum != fw->chksum))) + goto end; + + ret = ist30xx_get_ver_info(ts_data); + update_next_step(ret); + +end: + if (unlikely(ret)) { + tsp_warn("Firmware update Fail!, ret=%d\n", ret); + } else if (unlikely(chksum != fw->chksum)) { + tsp_warn("Error CheckSum: %x(%x)\n", chksum, fw->chksum); + ret = -ENOEXEC; + } + + ist30xx_enable_irq(ts_data); + + ts_data->status.update = 2; + + return ret; +} + +int ist30xx_fw_recovery(struct ist30xx_data *data) +{ + int ret = -EPERM; + u8 *fw = data->fw.buf; + int fw_size = data->fw.buf_size; + + ist30xx_get_update_info(data, fw, fw_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw); + ist30xx_sub_ver = ist30xx_parse_ver(FLAG_SUB, fw); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_fw_update(data->client, fw, fw_size, true); + ist30xx_calibrate(1); + mutex_unlock(&ist30xx_mutex); + + ist30xx_start(data); + + return ret; +} + +#if IST30XX_INTERNAL_BIN +int ist30xx_check_fw(struct ist30xx_data *data, const u8 *buf) +{ + int ret; + u32 chksum; + + ret = ist30xx_read_cmd(data->client, CMD_GET_CHECKSUM, &chksum); + if (unlikely(ret)) + return ret; + + if (unlikely(chksum != data->fw.chksum)) { + tsp_warn("Checksum compare error, (IC: %08x, Bin: %08x)\n", + chksum, data->fw.chksum); + return -EPERM; + } + + return 0; +} + +bool ist30xx_check_valid_vendor(u32 tsp_vendor) +{ + switch (tsp_vendor) { + case TSP_TYPE_ALPS: + case TSP_TYPE_EELY: + case TSP_TYPE_TOP: + case TSP_TYPE_MELFAS: + case TSP_TYPE_ILJIN: + case TSP_TYPE_SYNOPEX: + case TSP_TYPE_SMAC: + case TSP_TYPE_TAEYANG: + case TSP_TYPE_TOVIS: + case TSP_TYPE_ELK: + case TSP_TYPE_OTHERS: + return true; + default: + return false; + } + + return false; +} + +#if IST30XX_MULTIPLE_TSP +void ist30xx_set_tsp_fw(struct ist30xx_data *data) +{ + char *str; + struct ist30xx_fw *fw = &data->fw; + + switch (data->tsp_type) { + case TSP_TYPE_ALPS: + case TSP_TYPE_ILJIN: + str = "ALPS/ILJIN"; + fw->buf = (u8 *)ist30xxb_fw; + fw->buf_size = sizeof(ist30xxb_fw); + break; + case TSP_TYPE_EELY: + str = "EELY"; + fw->buf = (u8 *)ist30xxb_fw2; + fw->buf_size = sizeof(ist30xxb_fw2); + break; + + case TSP_TYPE_UNKNOWN: + default: + str = "Unknown"; + tsp_warn("Unknown TSP vendor(0x%x)\n", data->tsp_type); + break; + } + tsp_info("TSP vendor : %s(%x)\n", str, data->tsp_type); + + ist30xx_get_update_info(ts_data, fw->buf, fw->buf_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw->buf); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw->buf); + ist30xx_sub_ver = ist30xx_parse_ver(FLAG_SUB, fw->buf); +} +#endif // IST30XX_MULTIPLE_TSP + +int ist30xx_check_auto_update(struct ist30xx_data *data) +{ + int ret = 0; + int retry = IST30XX_FW_UPDATE_RETRY; + u32 tsp_type = TSP_TYPE_UNKNOWN; + u32 chksum; + bool tsp_check = false; + struct ist30xx_fw *fw = &data->fw; + + while (retry--) { + ret = ist30xx_read_cmd(data->client, + CMD_GET_TSP_PANNEL_TYPE, &tsp_type); + if (likely(ret == 0)) { + if (likely(ist30xx_check_valid_vendor(tsp_type) == true)) + tsp_check = true; + break; + } + } + + retry = IST30XX_FW_UPDATE_RETRY; + + if (unlikely(!tsp_check)) + goto fw_check_end; + + ist30xx_get_ver_info(data); + + if (likely((fw->param_ver > 0) && (fw->param_ver < 0xFFFFFFFF))) { + if (unlikely(((fw->core_ver & MASK_FW_VER) != IST30XX_FW_VER3) && + ((fw->core_ver & MASK_FW_VER) != IST30XX_FW_VER4) && + ((fw->core_ver & MASK_FW_VER) != IST30XX_FW_VER5))) + goto fw_check_end; + + tsp_info("Version compare IC: %x(%x), BIN: %x(%x)\n", + fw->param_ver, fw->core_ver, ist30xx_param_ver, ist30xx_fw_ver); + + /* If FW version is same, check FW checksum */ + if (likely((fw->core_ver == ist30xx_fw_ver) && + (fw->param_ver == ist30xx_param_ver) && + (fw->sub_ver == 0))) { + ret = ist30xx_read_cmd(data->client, CMD_GET_CHECKSUM, &chksum); + if (unlikely((ret) || (chksum != fw->chksum))) { + tsp_warn("Checksum error, IC: %x, Bin: %x (ret: %d)\n", + chksum, fw->chksum, ret); + goto fw_check_end; + } + } + + /* + * fw->core_ver : FW core version in TSP IC + * fw->param_ver : FW version if TSP IC + * ist30xx_fw_ver : FW core version in FW Binary + * ist30xx_fw_ver : FW version in FW Binary + */ + /* If the ver of binary is higher than ver of IC, FW update operate. */ + + if (likely((fw->core_ver >= ist30xx_fw_ver) && + (fw->param_ver >= ist30xx_param_ver))) + return 0; + } + +fw_check_end: + return -EAGAIN; +} + +int ist30xx_auto_bin_update(struct ist30xx_data *data) +{ + int ret = 0; + int retry = IST30XX_FW_UPDATE_RETRY; + struct ist30xx_fw *fw = &data->fw; + + fw->buf = (u8 *)ist30xxb_fw; + fw->buf_size = sizeof(ist30xxb_fw); + +#if IST30XX_MULTIPLE_TSP + ist30xx_set_tsp_fw(data); +#else + ist30xx_get_update_info(data, fw->buf, fw->buf_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw->buf); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw->buf); + ist30xx_sub_ver = ist30xx_parse_ver(FLAG_SUB, fw->buf); +#endif + + tsp_info("IC: %x, Binary ver core: %x, param: %x, sub: %x\n", + data->chip_id, ist30xx_fw_ver, ist30xx_param_ver, ist30xx_sub_ver); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_check_auto_update(data); + mutex_unlock(&ist30xx_mutex); + + if (likely(ret >= 0)) + return ret; + +update_bin: // TSP is not ready / FW update + tsp_info("Update version. param(core): %x(%x, %x) -> %x(%x, %x)\n", + fw->param_ver, fw->core_ver, fw->sub_ver, + ist30xx_param_ver, ist30xx_fw_ver, ist30xx_sub_ver); + + mutex_lock(&ist30xx_mutex); + while (retry--) { + ret = ist30xx_fw_update(data->client, fw->buf, fw->buf_size, true); + if (unlikely(!ret)) + break; + } + mutex_unlock(&ist30xx_mutex); + + if (unlikely(ret)) + return ret; + + if (unlikely(retry > 0 && ist30xx_check_fw(data, fw->buf))) + goto update_bin; + + ist30xx_calibrate(IST30XX_FW_UPDATE_RETRY); + + return ret; +} +#endif // IST30XX_INTERNAL_BIN + +#define MAX_FILE_PATH 255 +/* sysfs: /sys/class/touch/firmware/firmware */ +ssize_t ist30xx_fw_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret; + int fw_size = 0; + u8 *fw = NULL; + const u8 *buff = 0; + mm_segment_t old_fs = { 0 }; + struct file *fp = NULL; + long fsize = 0, nread = 0; + char fw_path[MAX_FILE_PATH]; + const struct firmware *request_fw = NULL; + int mode = 0; + int calib = 1; + + sscanf(buf, "%d %d", &mode, &calib); + + switch (mode) { + case MASK_UPDATE_INTERNAL: +#if IST30XX_INTERNAL_BIN + fw = ts_data->fw.buf; + fw_size = ts_data->fw.buf_size; +#else + tsp_warn("Not support internal bin!!\n", ); + return size; +#endif + break; + + case MASK_UPDATE_FW: + ret = request_firmware(&request_fw, IST30XXB_FW_NAME, + &ts_data->client->dev); + if (ret) { + tsp_warn("File not found, %s\n", IST30XXB_FW_NAME); + return size; + } + + fw = (u8 *)request_fw->data; + fw_size = (u32)request_fw->size; + break; + + case MASK_UPDATE_SDCARD: + old_fs = get_fs(); + set_fs(get_ds()); + + snprintf(fw_path, MAX_FILE_PATH, "/sdcard/touch/firmware/%s", + IST30XXB_FW_NAME); + fp = filp_open(fw_path, O_RDONLY, 0); + if (IS_ERR(fp)) { + tsp_info("file %s open error:%d\n", fw_path, (s32)fp); + goto err_file_open; + } + + fsize = fp->f_path.dentry->d_inode->i_size; + + buff = kzalloc((size_t)fsize, GFP_KERNEL); + if (!buff) { + tsp_info("fail to alloc buffer\n"); + goto err_alloc; + } + + nread = vfs_read(fp, (char __user *)buff, fsize, &fp->f_pos); + if (nread != fsize) { + tsp_info("mismatch fw size\n"); + goto err_fw_size; + } + + fw = (u8 *)buff; + fw_size = (u32)fsize; + + filp_close(fp, current->files); + tsp_info("firmware is loaded!!\n"); + break; + + case MASK_UPDATE_ERASE: + tsp_info("EEPROM all erase!!\n"); + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(ts_data); + ist30xxb_isp_enable(true); + ist30xxb_isp_erase(ts_data->client, IST30XXB_ISP_ERASE_ALL, 0); + ist30xxb_isp_enable(false); + ist30xx_reset(false); + ist30xx_enable_irq(ts_data); + mutex_unlock(&ist30xx_mutex); + + ist30xx_start(ts_data); + + default: + return size; + } + + ist30xx_get_update_info(ts_data, fw, fw_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw); + ist30xx_sub_ver = ist30xx_parse_ver(FLAG_SUB, fw); + + mutex_lock(&ist30xx_mutex); + ist30xx_fw_update(ts_data->client, fw, fw_size, true); + + if (calib) + ist30xx_calibrate(1); + mutex_unlock(&ist30xx_mutex); + + ist30xx_start(ts_data); + + if (request_fw != NULL) + release_firmware(request_fw); + + if (fp != NULL) { +err_fw_size: + kfree(buff); +err_alloc: + filp_close(fp, NULL); +err_file_open: + set_fs(old_fs); + } + + return size; +} + +/* sysfs: /sys/class/touch/firmware/fw_sdcard */ +ssize_t ist30xx_fw_sdcard_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int fw_size = 0; + u8 *fw = NULL; + const u8 *buff = 0; + mm_segment_t old_fs = { 0 }; + struct file *fp = NULL; + long fsize = 0, nread = 0; + char fw_path[MAX_FILE_PATH]; + + old_fs = get_fs(); + set_fs(get_ds()); + + snprintf(fw_path, MAX_FILE_PATH, "/sdcard/touch/firmware/%s", + IST30XXB_FW_NAME); + fp = filp_open(fw_path, O_RDONLY, 0); + if (IS_ERR(fp)) { + tsp_info("file %s open error:%d\n", fw_path, (s32)fp); + goto err_file_open; + } + + fsize = fp->f_path.dentry->d_inode->i_size; + + buff = kzalloc((size_t)fsize, GFP_KERNEL); + if (!buff) { + tsp_info("fail to alloc buffer\n"); + goto err_alloc; + } + + nread = vfs_read(fp, (char __user *)buff, fsize, &fp->f_pos); + if (nread != fsize) { + tsp_info("mismatch fw size\n"); + goto err_fw_size; + } + + fw = (u8 *)buff; + fw_size = (u32)fsize; + + filp_close(fp, current->files); + tsp_info("firmware is loaded!!\n"); + + ist30xx_get_update_info(ts_data, fw, fw_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw); + ist30xx_sub_ver = ist30xx_parse_ver(FLAG_SUB, fw); + + mutex_lock(&ist30xx_mutex); + ist30xx_fw_update(ts_data->client, fw, fw_size, true); + mutex_unlock(&ist30xx_mutex); + + ist30xx_start(ts_data); + +err_fw_size: + if (buff) + kfree(buff); +err_alloc: + if (fp) + filp_close(fp, NULL); +err_file_open: + set_fs(old_fs); + + return 0; +} + +/* sysfs: /sys/class/touch/firmware/firmware */ +ssize_t ist30xx_fw_status_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int count; + + switch (ts_data->status.update) { + case 1: + count = sprintf(buf, "Downloading\n"); + break; + case 2: + count = sprintf(buf, "Update success, ver %x(%x) -> %x(%x, %x), " + "status : %d, gap : %d\n", + ts_data->fw.prev_param_ver, ts_data->fw.prev_core_ver, + ts_data->fw.param_ver, ts_data->fw.core_ver, + ts_data->fw.sub_ver, + CALIB_TO_STATUS(ts_data->status.calib_msg), + CALIB_TO_GAP(ts_data->status.calib_msg)); + break; + default: + count = sprintf(buf, "Pass\n"); + } + + return count; +} + +/* sysfs: /sys/class/touch/firmware/fw_read */ +u32 buf32_eeprom[IST30XX_EEPROM_SIZE / IST30XX_DATA_LEN]; +ssize_t ist30xx_fw_read_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int i; + u8 *buf8 = (u8 *)buf32_eeprom;; + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(ts_data); + + ist30xxb_isp_fw_read(ts_data->client, buf32_eeprom); + for (i = 0; i < IST30XX_EEPROM_SIZE; i += 16) { + tsp_debug("%07x: %02x%02x %02x%02x %02x%02x %02x%02x " + "%02x%02x %02x%02x %02x%02x %02x%02x\n", i, + buf8[i], buf8[i + 1], buf8[i + 2], buf8[i + 3], + buf8[i + 4], buf8[i + 5], buf8[i + 6], buf8[i + 7], + buf8[i + 8], buf8[i + 9], buf8[i + 10], buf8[i + 11], + buf8[i + 12], buf8[i + 13], buf8[i + 14], buf8[i + 15]); + } + + ist30xx_reset(false); + ist30xx_enable_irq(ts_data); + mutex_unlock(&ist30xx_mutex); + + ist30xx_start(ts_data); + + return 0; +} + +/* sysfs: /sys/class/touch/firmware/version */ +ssize_t ist30xx_fw_version_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int count; + + count = sprintf(buf, "ID: %x, f/w core: %x, param: %x, sub: %x\n", + ts_data->chip_id, ts_data->fw.core_ver, + ts_data->fw.param_ver, ts_data->fw.sub_ver); + +#if IST30XX_INTERNAL_BIN + { + char msg[128]; + + ist30xx_get_update_info(ts_data, ts_data->fw.buf, ts_data->fw.buf_size); + + count += snprintf(msg, sizeof(msg), + " Header - f/w ver: %x, param: %x, sub: %x\r\n", + ist30xx_parse_ver(FLAG_FW, ts_data->fw.buf), + ist30xx_parse_ver(FLAG_PARAM, ts_data->fw.buf), + ist30xx_parse_ver(FLAG_SUB, ts_data->fw.buf)); + strncat(buf, msg, sizeof(msg)); + } +#endif + + return count; +} + + +/* sysfs */ +static DEVICE_ATTR(fw_read, S_IRWXUGO, ist30xx_fw_read_show, NULL); +static DEVICE_ATTR(firmware, S_IRWXUGO, ist30xx_fw_status_show, + ist30xx_fw_store); +static DEVICE_ATTR(fw_sdcard, S_IRWXUGO, ist30xx_fw_sdcard_show, NULL); +static DEVICE_ATTR(version, S_IRWXUGO, ist30xx_fw_version_show, NULL); + +struct class *ist30xx_class; +struct device *ist30xx_fw_dev; + +static struct attribute *fw_attributes[] = { + &dev_attr_fw_read.attr, + &dev_attr_firmware.attr, + &dev_attr_fw_sdcard.attr, + &dev_attr_version.attr, + NULL, +}; + +static struct attribute_group fw_attr_group = { + .attrs = fw_attributes, +}; + +int ist30xx_init_update_sysfs(void) +{ + /* /sys/class/touch */ + ist30xx_class = class_create(THIS_MODULE, "touch"); + + /* /sys/class/touch/firmware */ + ist30xx_fw_dev = device_create(ist30xx_class, NULL, 0, NULL, "firmware"); + + /* /sys/class/touch/firmware/... */ + if (unlikely(sysfs_create_group(&ist30xx_fw_dev->kobj, &fw_attr_group))) + tsp_err("Failed to create sysfs group(%s)!\n", "firmware"); + + ts_data->status.update = 0; + ts_data->status.calib = 0; + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xxa/ist30xx_update.h b/drivers/input/touchscreen/ist30xxa/ist30xx_update.h new file mode 100644 index 00000000..fa432b7a --- /dev/null +++ b/drivers/input/touchscreen/ist30xxa/ist30xx_update.h @@ -0,0 +1,139 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_UPDATE_H__ +#define __IST30XX_UPDATE_H__ + +#include "ist30xx_tsp.h" + +#define IST30XX_INTERNAL_BIN (1) +#define IST30XX_CHECK_CALIB (0) + +#if IST30XX_INTERNAL_BIN +#define IST30XX_UPDATE_BY_WORKQUEUE (0) +#define IST30XX_UPDATE_DELAY (3 * HZ) +#endif // IST30XX_INTERNAL_BIN + +#if ((IMAGIS_TSP_IC == IMAGIS_IST30XX) || (IMAGIS_TSP_IC == IMAGIS_IST30XXB)) +#define IST30XX_EEPROM_SIZE (0x8000) +#elif (IMAGIS_TSP_IC == IMAGIS_IST3038) +#define IST30XX_EEPROM_SIZE (0xA000) +#elif (IMAGIS_TSP_IC == IMAGIS_IST3044) +#define IST30XX_EEPROM_SIZE (0x10000) +#endif +#define EEPROM_PAGE_SIZE (64) +#define EEPROM_BASE_ADDR (0) + +#define IST30XXB_ACCESS_ADDR (1 << 31) +#define IST30XXB_BURST_ACCESS (1 << 27) +#define IST30XXB_DA_ADDR(n) (n | IST30XXB_ACCESS_ADDR) + +#define IST30XXB_REG_TSPTYPE IST30XXB_DA_ADDR(0x40002010) + +#define IST30XXB_REG_WDTCON IST30XXB_DA_ADDR(0x40003000) +#define IST30XXB_REG_EEPMODE IST30XXB_DA_ADDR(0x40007000) +#define IST30XXB_REG_EEPADDR IST30XXB_DA_ADDR(0x40007004) +#define IST30XXB_REG_EEPWDAT IST30XXB_DA_ADDR(0x40007008) +#define IST30XXB_REG_EEPRDAT IST30XXB_DA_ADDR(0x4000700C) +#define IST30XXB_REG_EEPISPEN IST30XXB_DA_ADDR(0x40007010) +#define IST30XXB_REG_CHKSMOD IST30XXB_DA_ADDR(0x40007014) +#define IST30XXB_REG_EEPPWRCTRL IST30XXB_DA_ADDR(0x4000701C) +#define IST30XXB_REG_CHKSDAT IST30XXB_DA_ADDR(0x40007038) + +#define IST30XXB_REG_CHIPID IST30XXB_DA_ADDR(0x40000000) +#define IST30XXB_REG_PADCTRL IST30XXB_DA_ADDR(0x40000024) +#define IST30XXB_REG_LDOOSC IST30XXB_DA_ADDR(0x40000030) +#define IST30XXB_REG_CLKDIV IST30XXB_DA_ADDR(0x4000004C) + +#define IST30XXB_MEM_ADDR (0x20000000) +#define IST30XXB_MEM_ALGORITHM IST30XXB_DA_ADDR(IST30XXB_MEM_ADDR | 0x34) +#define IST30XXB_MEM_CMD IST30XXB_DA_ADDR(IST30XXB_MEM_ADDR | 0x3C) +#define IST30XXB_MEM_FINGERS IST30XXB_DA_ADDR(IST30XXB_MEM_ADDR | 0x4) + +#define IST30XXB_MEM_COUNT IST30XXB_DA_ADDR(IST30XXB_MEM_ADDR | 0x30) + +#if (IMAGIS_TSP_IC == IMAGIS_IST30XXB) +#define IST30XXB_MEM_KEYSENSITIVITY IST30XXB_DA_ADDR(IST30XXB_MEM_ADDR | 0x5F0) +#elif (IMAGIS_TSP_IC == IMAGIS_IST3038) +#define IST30XXB_MEM_KEYSENSITIVITY IST30XXB_DA_ADDR(IST30XXB_MEM_ADDR | 0x40) +#else +#error "Unknown IMAGIS_TSP_IC" +#endif + +#define IST30XX_FW_NAME "ist30xx.fw" +#define IST30XXB_FW_NAME "ist30xxb.fw" +#define IST30XXB_CURVE_NAME "ist30xxb.cv" + +#define MASK_FW_VER (0xFFFF0000) +#define IST30XX_FW_VER1 (0x00010000) +#define IST30XX_FW_VER2 (0x00020000) +#define IST30XX_FW_VER3 (0x00030000) +#define IST30XX_FW_VER4 (0x00040000) +#define IST30XX_FW_VER5 (0x00050000) + +#define IST30XX_FW_UPDATE_RETRY (3) + +#define WAIT_CALIB_CNT (50) +#define CALIB_THRESHOLD (100) + +#define CALIB_TO_GAP(n) ((n >> 16) & 0xFFF) +#define CALIB_TO_STATUS(n) ((n >> 12) & 0xF) + +#define CALIB_TO_OS_VALUE(n) ((n >> 12) & 0xFFFF) + +#define MASK_UPDATE_INTERNAL (1) +#define MASK_UPDATE_FW (2) +#define MASK_UPDATE_SDCARD (3) +#define MASK_UPDATE_ERASE (4) + +#define CHKSUM_FW (1) +#define CHKSUM_ALL (2) + +#define FLAG_FW (1) +#define FLAG_PARAM (2) +#define FLAG_SUB (3) + +#define TAGS_PARSE_OK (0) + +/* I2C Transaction size */ +#define I2C_MAX_WRITE_SIZE (64) /* bytes */ +#define I2C_MAX_READ_SIZE (8) /* bytes */ + +int ist30xx_read_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len); +int ist30xx_write_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len); + +int ist30xxb_burst_read(struct i2c_client *client, u32 addr, u32 *buf32, int len); + +int ist30xxb_read_chksum(struct i2c_client *client, u32 *chksum); +int ist30xxb_read_chksum_all(struct i2c_client *client, u32 *chksum); + +void ist30xx_get_update_info(struct ist30xx_data *data, const u8 *buf, const u32 size); + +u32 ist30xx_parse_ver(int flag, const u8 *buf); + +int ist30xx_fw_update(struct i2c_client *client, const u8 *buf, int size, bool mode); +int ist30xx_fw_param_update(struct i2c_client *client, const u8 *buf); +int ist30xx_fw_recovery(struct ist30xx_data *data); + +int ist30xx_auto_fw_update(struct ist30xx_data *data); +int ist30xx_auto_param_update(struct ist30xx_data *data); +int ist30xx_auto_bin_update(struct ist30xx_data *data); + +int ist30xx_calibrate(int wait_cnt); +int ist30xx_calib_wait(void); + +int ist30xx_init_update_sysfs(void); + +#endif // __IST30XX_UPDATE_H__ diff --git a/drivers/input/touchscreen/ist30xxb/IST30xxB_FW_Corsica_VE_Ver0003.h b/drivers/input/touchscreen/ist30xxb/IST30xxB_FW_Corsica_VE_Ver0003.h new file mode 100755 index 00000000..cccc59b4 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/IST30xxB_FW_Corsica_VE_Ver0003.h @@ -0,0 +1,2156 @@ +#ifndef __IST30XXB_FW_H__ +#define __IST30XXB_FW_H__ + +/* ist30xxb binary: Corisica VE EELY, f/w 3( 30300) */ +static unsigned char ist30xxb_fw[] = { + 0x06,0x00,0x00,0xEA,0x2C,0x00,0x00,0xEA,0x2B,0x00,0x00,0xEA,0x2A,0x00,0x00,0xEA, + 0x29,0x00,0x00,0xEA,0x28,0x00,0x00,0xEA,0x27,0x00,0x00,0xEA,0x3E,0x00,0x00,0xEA, + 0x14,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0xA0,0xE1,0x00,0x00,0x00,0xEA,0x0C,0x20,0x00,0x40, + 0x11,0x01,0xA0,0xE3,0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0xC1,0x01,0xA0,0xE3, + 0x1C,0x10,0x9F,0xE5,0x00,0x10,0x80,0xE5,0x18,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0xF1,0x01,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0x01,0x00,0x00,0xEA,0xC8,0x74,0x00,0x00,0x4C,0x00,0x00,0x40,0x00,0x00,0x0F,0xE1, + 0x1F,0x00,0xC0,0xE3,0xD1,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x1C,0xD0,0x9F,0xE5, + 0xD3,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x14,0xD0,0x9F,0xE5,0x00,0x00,0x0F,0xE1, + 0xC0,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x08,0x00,0x9F,0xE5,0x10,0xFF,0x2F,0xE1, + 0xFC,0x0F,0x00,0x20,0xC0,0x0F,0x00,0x20,0xA7,0x01,0x00,0x00,0x11,0x01,0xA0,0xE3, + 0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x5C,0x30,0x9F,0xE5,0x5C,0x40,0x9F,0xE5, + 0x00,0x40,0x83,0xE5,0x91,0x01,0xA0,0xE3,0x33,0x16,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0xAC,0x00,0x1F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0x00,0x40,0x83,0xE5, + 0xFF,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x03,0x00,0x00,0xEB,0xFE,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0x00,0xEB,0xF7,0xFF,0xFF,0xEA,0x01,0x29,0xA0,0xE3, + 0x01,0x20,0x52,0xE2,0xFD,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0xFF,0x40,0x2D,0xE9, + 0xC6,0x00,0x00,0xEB,0xFF,0x40,0xBD,0xE8,0x04,0xF0,0x5E,0xE2,0x1C,0x40,0x00,0x30, + 0x70,0xE9,0x1C,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x3C,0x4A,0x3A,0x48,0x3A,0x49,0x92,0x08,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x38,0x48,0x01,0x21,0xC9,0x02,0x01,0x62, + 0x00,0x21,0x01,0x62,0x01,0x62,0x36,0x49,0x36,0x48,0x01,0x60,0x20,0x21,0x41,0x60, + 0xA0,0x21,0x81,0x60,0x70,0x47,0xF8,0xB5,0x30,0x4B,0x9F,0x6A,0x32,0x48,0x00,0x69, + 0x42,0x08,0x58,0x69,0x19,0x15,0x08,0x43,0x58,0x61,0xFF,0xF7,0xE5,0xFF,0x58,0x69, + 0xFF,0x21,0x81,0x31,0x08,0x43,0x58,0x61,0x2C,0x48,0x2D,0x4C,0x20,0x60,0xFF,0x20, + 0x90,0x30,0x60,0x60,0x13,0x20,0xA0,0x60,0xA0,0x68,0xA6,0x15,0x30,0x43,0xA0,0x60, + 0x24,0x4D,0x5F,0x23,0x00,0x2F,0x27,0xD1,0x26,0x4F,0x21,0xE0,0x68,0x68,0x00,0x07, + 0x1E,0xD5,0xE8,0x68,0x40,0x28,0x04,0xD1,0xEA,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1, + 0x14,0xE0,0x20,0x28,0x04,0xD3,0xEF,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1,0x0D,0xE0, + 0x0D,0x28,0x08,0xD1,0x2E,0x20,0x68,0x60,0x68,0x69,0x80,0x06,0xFC,0xD4,0x68,0x68, + 0x80,0x07,0xFC,0xD5,0x08,0xE0,0x68,0x68,0x80,0x07,0xFC,0xD5,0xFF,0xF7,0xAC,0xFF, + 0xE0,0x68,0x15,0x49,0x88,0x42,0xD9,0xD3,0xFF,0xF7,0xA6,0xFF,0xA0,0x68,0xB0,0x43, + 0xA0,0x60,0x00,0xF0,0x3D,0xF9,0xF8,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x0F,0x49, + 0x0F,0x4A,0x00,0x20,0x01,0xE0,0x08,0xC9,0x18,0x18,0x91,0x42,0xFB,0xD3,0x70,0x47, + 0x40,0x00,0x00,0x20,0x94,0x02,0x00,0x00,0xCC,0x00,0x00,0x00,0x40,0x00,0x00,0x40, + 0xDE,0x10,0x01,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0xFF,0xFF,0x00,0x00, + 0x00,0x40,0x00,0x40,0xFF,0x03,0xFF,0x2F,0x50,0xC3,0x00,0x00,0x40,0x04,0x00,0x00, + 0xC0,0x75,0x00,0x00,0x30,0x48,0x41,0x6B,0xC9,0x07,0xFC,0xD0,0x41,0x6B,0x01,0x22, + 0x11,0x43,0x41,0x63,0x70,0x47,0x10,0xB4,0x2B,0x4C,0x40,0x23,0x60,0x60,0x20,0x68, + 0x80,0x0A,0x80,0x02,0x10,0x43,0xA8,0x22,0x10,0x43,0x20,0x60,0x02,0xE0,0x08,0x78, + 0xA0,0x60,0x49,0x1C,0x5B,0x1E,0xFA,0xD2,0x10,0xBC,0x70,0x47,0xF0,0xB5,0x05,0x00, + 0x0E,0x00,0x1F,0x00,0x94,0x09,0x81,0x06,0x20,0x48,0x10,0xD1,0x91,0x06,0x0E,0xD1, + 0x0A,0xE0,0x3A,0x00,0x31,0x00,0x28,0x00,0xFF,0xF7,0xDD,0xFF,0x40,0x35,0x2D,0x04, + 0x2D,0x0C,0x40,0x36,0xFF,0xF7,0xCE,0xFF,0x64,0x1E,0x60,0x1C,0xF1,0xD1,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x14,0x4B,0x40,0x22,0x58,0x60,0x18,0x68,0x80,0x0A,0x80,0x02, + 0x08,0x43,0xA4,0x21,0x08,0x43,0x18,0x60,0x00,0x21,0x00,0xE0,0x99,0x60,0x52,0x1E, + 0xFC,0xD2,0x70,0x47,0x70,0xB5,0x05,0x00,0x16,0x00,0x8C,0x09,0x82,0x06,0x0B,0x48, + 0x0E,0xD1,0x89,0x06,0x0C,0xD1,0x08,0xE0,0x31,0x00,0x28,0x00,0xFF,0xF7,0xE2,0xFF, + 0x40,0x35,0x2D,0x04,0x2D,0x0C,0xFF,0xF7,0xA5,0xFF,0x64,0x1E,0x60,0x1C,0xF3,0xD1, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0xF8,0xB5,0x03,0x25,0x0F,0x4E,0x2D,0x07, + 0x01,0x27,0xF0,0x6A,0x00,0x28,0x15,0xD0,0xF0,0x6B,0xE9,0x68,0x80,0x08,0x3C,0x00, + 0x84,0x40,0x21,0x43,0xE9,0x60,0x69,0x68,0x21,0x42,0x00,0xD0,0x34,0x63,0x81,0x00, + 0x07,0x48,0x40,0x58,0x00,0x28,0x01,0xD0,0x06,0xF0,0x24,0xFE,0xE8,0x68,0xA0,0x43, + 0xE8,0x60,0xE6,0xE7,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x30, + 0x2C,0x0B,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF8,0xB5,0x00,0xF0,0x2D,0xFD,0x07,0x00,0x03,0xF0,0x98,0xFC,0x03,0xF0,0x8A,0xFC, + 0x03,0xF0,0x10,0xFD,0x48,0x4A,0x49,0x49,0x49,0x48,0x04,0xF0,0x7E,0xFE,0x49,0x4D, + 0x00,0x26,0x01,0x21,0xC9,0x03,0x30,0x00,0xEE,0x81,0x00,0xF0,0xC7,0xF9,0xA8,0x61, + 0x45,0x49,0x00,0x20,0x00,0xF0,0xC2,0xF9,0x44,0x4B,0x45,0x49,0xD8,0x63,0x45,0x48, + 0x00,0xF0,0xBC,0xF9,0xD9,0x6B,0x00,0x04,0x08,0x43,0xD8,0x63,0x03,0xF0,0xD2,0xFC, + 0xA1,0x22,0x41,0x48,0xD2,0x00,0x00,0x21,0x04,0xF0,0x6A,0xFE,0x06,0xF0,0xA4,0xF9, + 0x03,0xF0,0x74,0xFD,0x3D,0x48,0x01,0x24,0x81,0x7A,0xA9,0x71,0xC1,0x7A,0xE9,0x71, + 0x40,0x7A,0x28,0x72,0xFF,0x20,0x91,0x30,0x6E,0x72,0x28,0x82,0xAE,0x72,0xEE,0x72, + 0x35,0x48,0x2E,0x73,0x64,0x07,0x6E,0x73,0x60,0x63,0xFF,0x20,0xE0,0x63,0xE0,0x14, + 0x00,0xF0,0xC2,0xFC,0x32,0x48,0x06,0x70,0xFF,0x20,0x81,0x30,0x00,0xF0,0xBC,0xFC, + 0x30,0x49,0x02,0x20,0x06,0xF0,0xAC,0xFC,0x02,0x20,0x06,0xF0,0xB1,0xFC,0x28,0x7A, + 0x00,0x28,0x01,0xD0,0x06,0xF0,0x5E,0xFD,0x00,0x2F,0x1F,0xD1,0x2A,0x4F,0xBE,0x15, + 0x28,0x7A,0x00,0x28,0x02,0xD0,0x29,0x49,0x28,0x6B,0x88,0x60,0xE0,0x6B,0x0B,0x28, + 0x14,0xD0,0x27,0x48,0x40,0x68,0x00,0x07,0x01,0xD5,0x02,0xF0,0x11,0xFB,0xF8,0x68, + 0x24,0x49,0x88,0x42,0xEC,0xD9,0x24,0x48,0xC0,0x68,0xFF,0x28,0x06,0xD1,0xB8,0x68, + 0xB0,0x43,0xB8,0x60,0xB8,0x68,0x30,0x43,0xB8,0x60,0xE1,0xE7,0xE8,0x79,0x00,0x28, + 0x03,0xD1,0x01,0x20,0x80,0x02,0x00,0xF0,0x7F,0xFC,0x28,0x7A,0x00,0x28,0x01,0xD0, + 0x06,0xF0,0x38,0xFD,0x02,0x20,0x06,0xF0,0x87,0xFC,0xFF,0x20,0x81,0x30,0x00,0xF0, + 0x73,0xFC,0x16,0x49,0x05,0x20,0x03,0xF0,0x8F,0xFA,0x0B,0x20,0xE0,0x63,0x03,0xF0, + 0x41,0xFB,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x28,0x00,0x00,0x00,0x10,0x71,0x00,0x00, + 0x40,0x00,0x00,0x20,0xF8,0x0A,0x00,0x20,0xC0,0x75,0x00,0x00,0xC0,0x0F,0x00,0x20, + 0x00,0x7E,0x00,0x00,0x00,0x76,0x00,0x00,0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00, + 0xAD,0x0B,0x00,0x20,0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x30,0x00,0x40, + 0x00,0x40,0x00,0x30,0x50,0xC3,0x00,0x00,0xC0,0x75,0x00,0x00,0x95,0x6E,0x00,0x00, + 0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9,0x20,0x20,0x52,0xE2,0x05,0x00,0x00,0x3A, + 0x18,0x50,0xB1,0xE8,0x20,0x20,0x52,0xE2,0x18,0x50,0xA0,0xE8,0x18,0x50,0xB1,0xE8, + 0x18,0x50,0xA0,0xE8,0xF9,0xFF,0xFF,0x2A,0x02,0xCE,0xB0,0xE1,0x18,0x50,0xB1,0x28, + 0x18,0x50,0xA0,0x28,0x18,0x00,0xB1,0x48,0x18,0x00,0xA0,0x48,0x10,0x40,0xBD,0xE8, + 0x02,0xCF,0xB0,0xE1,0x04,0x30,0x91,0x24,0x04,0x30,0x80,0x24,0x1E,0xFF,0x2F,0x01, + 0x82,0x2F,0xB0,0xE1,0xB2,0x30,0xD1,0x20,0x01,0x20,0xD1,0x44,0xB2,0x30,0xC0,0x20, + 0x01,0x20,0xC0,0x44,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46,0x01,0x30,0x90,0xE1, + 0x21,0x00,0x00,0x4A,0x00,0x20,0xB0,0xE3,0xA0,0x30,0x71,0xE0,0x1A,0x00,0x00,0x3A, + 0x20,0x32,0x71,0xE0,0x0F,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0,0x01,0x00,0x00,0x3A, + 0x00,0xC0,0xA0,0xE3,0x20,0x00,0x00,0xEA,0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0, + 0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0, + 0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0,0x1E,0xFF,0x2F,0xE1,0x02,0x21,0x11,0xE2, + 0x00,0x10,0x61,0x42,0x40,0xC0,0x32,0xE0,0x00,0x00,0x60,0x22,0x20,0x32,0x71,0xE0, + 0x1D,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0,0x0F,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1, + 0x20,0x34,0x71,0xE0,0x3F,0x23,0x82,0xE3,0x0B,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1, + 0x20,0x34,0x71,0xE0,0x3F,0x26,0x82,0xE3,0x07,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1, + 0x20,0x34,0x71,0xE0,0x3F,0x29,0x82,0xE3,0x01,0x13,0xA0,0x21,0x3F,0x2C,0x82,0x23, + 0x00,0x30,0x71,0xE2,0x1D,0x00,0x00,0x2A,0x21,0x13,0xA0,0x21,0xA0,0x33,0x71,0xE0, + 0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0, + 0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xEB,0xFF,0xFF,0x2A,0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0, + 0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x00,0x10,0x61,0x22,0x1E,0xFF,0x2F,0xE1, + 0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x01,0x40,0x2D,0xE9,0x00,0x00,0xB0,0xE3, + 0x01,0x00,0x00,0xEB,0x02,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x00,0x00,0xA0,0xE1, + 0x07,0x40,0x2D,0xE9,0x02,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB,0x07,0x40,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x10,0xB5, + 0x02,0x20,0x06,0xF0,0x47,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46, + 0x00,0x20,0xB0,0xE3,0x20,0x32,0x71,0xE0,0xA6,0xFF,0xFF,0x3A,0x20,0x34,0x71,0xE0, + 0x98,0xFF,0xFF,0x3A,0x00,0xC0,0xA0,0xE3,0xB7,0xFF,0xFF,0xEA,0x78,0x47,0xC0,0x46, + 0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x41,0x00,0x00,0x20,0x78,0x47,0xC0,0x46, + 0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0xD1,0x00,0x00,0x20,0x78,0x47,0xC0,0x46, + 0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x79,0x00,0x00,0x20,0x78,0x47,0xC0,0x46, + 0x01,0xFE,0xFF,0xEA,0x02,0x48,0x01,0x68,0x02,0x4A,0x11,0x40,0x01,0x60,0x70,0x47, + 0x00,0xA0,0x00,0x40,0xFE,0xFF,0xEF,0xFF,0x07,0x49,0x10,0xB5,0x08,0x68,0x07,0x4A, + 0x10,0x43,0x08,0x60,0x0F,0x24,0x02,0xF0,0x1E,0xF9,0x64,0x1E,0x00,0x2C,0xFA,0xDC, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0xA0,0x00,0x40,0x01,0x00,0x10,0x00, + 0xF8,0xB5,0x01,0x27,0x7F,0x07,0x3D,0x68,0x17,0x4E,0xB0,0x7E,0xC0,0x07,0x26,0xD0, + 0x70,0x7D,0x00,0x28,0x21,0xD0,0xBA,0x00,0x01,0x2D,0x02,0xD1,0x79,0x68,0x11,0x43, + 0xB9,0x60,0x00,0x04,0x02,0x43,0x90,0x0A,0x80,0x02,0xA9,0x05,0x89,0x0D,0x08,0x43, + 0x78,0x60,0x01,0x24,0x08,0xE0,0x0D,0x49,0xE0,0x00,0x40,0x18,0x0C,0x49,0x41,0x18, + 0x28,0x19,0x06,0xF0,0xA5,0xF8,0x64,0x1C,0x70,0x7D,0xA0,0x42,0xF3,0xDA,0x70,0x7D, + 0x01,0x28,0x02,0xD1,0x00,0x2D,0x00,0xD1,0x01,0x25,0x70,0x7D,0x45,0x19,0x3D,0x60, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x30,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20, + 0x86,0x04,0x00,0x00,0x70,0xB4,0x1A,0x4B,0xDA,0x88,0xD2,0x07,0x2B,0xD1,0x19,0x4A, + 0x05,0x78,0x54,0x7D,0xE4,0x00,0xE6,0x18,0x09,0x24,0xE4,0x01,0x36,0x19,0xB5,0x73, + 0x56,0x7D,0x45,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0x35,0x82,0x56,0x7D,0x85,0x88, + 0xF6,0x00,0xF6,0x18,0x36,0x19,0x75,0x82,0x55,0x7D,0xED,0x00,0xED,0x18,0x2D,0x19, + 0x29,0x75,0x55,0x7D,0xC1,0x79,0xED,0x00,0xEB,0x18,0x1B,0x19,0x59,0x75,0x51,0x7D, + 0x49,0x1C,0x51,0x75,0xC0,0x79,0x06,0x28,0x07,0xD0,0x0A,0x28,0x01,0xD0,0x12,0x28, + 0x01,0xD1,0x00,0x20,0x90,0x75,0x70,0xBC,0x70,0x47,0x01,0x20,0xFA,0xE7,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x30,0x0A,0x00,0x20,0xFF,0xB5,0x0A,0x20,0x48,0x43,0x15,0x4F, + 0x81,0xB0,0xC5,0x19,0x48,0x00,0xFF,0x35,0x61,0x35,0xC0,0x19,0xC0,0x30,0x2A,0x71, + 0x0C,0x00,0x00,0x90,0x80,0x89,0x16,0x00,0x0A,0x21,0xFF,0xF7,0x2F,0xFF,0xE8,0x80, + 0x00,0x98,0x0A,0x21,0xC0,0x8B,0xFF,0xF7,0x29,0xFF,0x28,0x81,0x38,0x19,0xFF,0x30, + 0x01,0x30,0x00,0x7C,0xB9,0x19,0x68,0x71,0x04,0x98,0xA8,0x72,0x01,0x98,0x06,0x55, + 0x13,0x20,0x40,0x01,0x08,0x18,0x00,0x21,0xC4,0x76,0x81,0x74,0x05,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0xF0,0x05,0x00,0x20,0x06,0x48,0x0F,0x23,0x42,0x79,0x01,0x68, + 0x9B,0x06,0x49,0x1C,0x12,0x07,0x12,0x0A,0xD2,0x18,0x09,0x03,0x09,0x0B,0x0A,0x43, + 0x02,0x60,0x70,0x47,0xF0,0x05,0x00,0x20,0xF1,0xB5,0xB2,0x48,0x90,0xB0,0x0F,0x90, + 0x40,0x7C,0xB2,0x49,0x02,0x90,0x0F,0x98,0xC0,0x7C,0x01,0x90,0x0F,0x98,0x00,0x7C, + 0x00,0x90,0xAD,0x48,0xC9,0x88,0x00,0x8A,0x49,0x06,0x02,0xD4,0xA9,0x48,0x40,0x30, + 0x80,0x89,0x00,0x05,0x7E,0xD5,0x10,0x98,0x01,0x28,0x00,0xD0,0x02,0x20,0x03,0x90, + 0x00,0x20,0x04,0x90,0x3E,0xE1,0x03,0x98,0x81,0x00,0x01,0x20,0x40,0x07,0x08,0x18, + 0x0E,0x90,0x00,0x68,0x81,0x00,0x0D,0x90,0x0C,0x0F,0x80,0x0F,0xC0,0x07,0x03,0xD1, + 0x20,0x00,0x01,0xF0,0x7F,0xFB,0x26,0xE1,0x9D,0x48,0xA5,0x00,0x40,0x5F,0x00,0x28, + 0x84,0x46,0x0F,0xDA,0x0D,0x98,0x9A,0x49,0x80,0x01,0x80,0x0D,0x48,0x53,0x0D,0x98, + 0x6A,0x18,0x80,0x05,0x80,0x0D,0x50,0x80,0x4A,0x5B,0x24,0x31,0x4A,0x53,0x69,0x18, + 0x48,0x80,0x10,0xE1,0x02,0x9F,0x92,0x49,0x00,0x20,0x7F,0x1E,0x48,0x31,0x69,0x18, + 0x06,0xE0,0x83,0x00,0xCA,0x18,0x96,0x88,0x40,0x1C,0xCE,0x52,0xD3,0x88,0x53,0x80, + 0xB8,0x42,0xF6,0xDB,0x0D,0x98,0x62,0x46,0x80,0x01,0x80,0x0D,0x0C,0x90,0x80,0x1A, + 0x02,0x9A,0x87,0x4E,0x92,0x00,0x8B,0x18,0x20,0x3B,0x98,0x83,0x0D,0x98,0xAA,0x19, + 0x80,0x05,0x80,0x0D,0x0A,0x92,0x0B,0x90,0x52,0x88,0x80,0x1A,0xD8,0x83,0x00,0x20, + 0x06,0x00,0x02,0x00,0x07,0xE0,0x93,0x00,0xCF,0x5E,0x38,0x18,0xCF,0x18,0x02,0x23, + 0xFB,0x5E,0x9E,0x19,0x52,0x1C,0x02,0x9B,0x9A,0x42,0xF4,0xDB,0x19,0x00,0xFF,0xF7, + 0xAB,0xFD,0x07,0x00,0x02,0x99,0x30,0x00,0xFF,0xF7,0xA6,0xFD,0x00,0x2F,0x00,0xDC, + 0x7F,0x42,0x0F,0x99,0x89,0x7C,0x8F,0x42,0x17,0xDA,0x00,0x28,0x00,0xDC,0x40,0x42, + 0x88,0x42,0x12,0xDA,0x01,0x98,0x0C,0x21,0x48,0x43,0x0A,0x21,0xFF,0xF7,0x6E,0xFE, + 0x61,0x00,0x00,0xE0,0xCA,0xE0,0x6A,0x4B,0x1C,0x3B,0x5A,0x5E,0x90,0x42,0x0C,0xDD, + 0x0F,0x98,0x00,0x7D,0x10,0x18,0x58,0x52,0x07,0xE0,0x65,0x49,0x0F,0x9A,0x60,0x00, + 0x1C,0x39,0x0B,0x5A,0x52,0x7D,0x9A,0x1A,0x0A,0x52,0x61,0x49,0x60,0x00,0x1C,0x39, + 0x0A,0x5E,0x00,0x2A,0x01,0xDC,0x00,0x22,0x0A,0x52,0x08,0x5E,0x01,0x99,0x88,0x42, + 0x09,0x90,0x01,0xDB,0x05,0x20,0x28,0xE0,0x88,0x00,0x05,0x21,0xFF,0xF7,0x46,0xFE, + 0x09,0x99,0x88,0x42,0x01,0xDC,0x04,0x20,0x1F,0xE0,0x01,0x98,0x41,0x00,0x40,0x18, + 0x05,0x21,0xFF,0xF7,0x3B,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x03,0x20,0x14,0xE0, + 0x01,0x98,0x05,0x21,0x40,0x00,0xFF,0xF7,0x31,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC, + 0x02,0x20,0x0A,0xE0,0x01,0x98,0x05,0x21,0xFF,0xF7,0x28,0xFE,0x09,0x99,0x88,0x42, + 0x01,0xDC,0x01,0x20,0x01,0xE0,0x08,0x00,0x02,0xD1,0x45,0x49,0x0A,0x39,0x08,0x55, + 0x43,0x49,0x0C,0x9A,0x24,0x31,0x48,0x5F,0x16,0x1A,0x08,0x90,0x68,0x18,0x02,0x21, + 0x07,0x90,0x41,0x5E,0x0B,0x9A,0x3E,0x48,0x57,0x1A,0x06,0x91,0x0F,0x99,0x0A,0x38, + 0x00,0x5D,0x89,0x7D,0x88,0x42,0x27,0xD3,0x00,0x2E,0x01,0xD1,0x00,0x24,0x0D,0xE0, + 0x30,0x1E,0x00,0xDC,0x70,0x42,0x00,0x99,0x88,0x42,0x01,0xDA,0x01,0x24,0x05,0xE0, + 0x30,0x1E,0x00,0xDC,0x70,0x42,0xFF,0xF7,0x1F,0xFD,0x04,0x00,0x00,0x2F,0x01,0xD1, + 0x00,0x20,0x0C,0xE0,0x38,0x1E,0x00,0xDC,0x78,0x42,0x00,0x99,0x88,0x42,0x01,0xDA, + 0x01,0x20,0x04,0xE0,0x38,0x1E,0x00,0xDC,0x78,0x42,0xFF,0xF7,0x0D,0xFD,0x08,0x99, + 0x00,0x2E,0x19,0xDB,0x09,0x19,0x18,0xE0,0x09,0x98,0x64,0x21,0x48,0x43,0x01,0x99, + 0xFF,0xF7,0x02,0xFD,0x64,0x21,0x08,0x1A,0x31,0x1E,0x05,0x90,0x00,0xDC,0x71,0x42, + 0x48,0x43,0x64,0x21,0xFF,0xF7,0xF8,0xFC,0x05,0x9A,0x04,0x00,0x38,0x1E,0x00,0xDC, + 0x78,0x42,0x50,0x43,0x64,0x21,0xE0,0xE7,0x09,0x1B,0x06,0x9A,0x00,0x2F,0x01,0xDB, + 0x10,0x18,0x00,0xE0,0x10,0x1A,0x16,0x4A,0x0C,0x9B,0x53,0x53,0x0A,0x9B,0x0B,0x9A, + 0x5A,0x80,0x13,0x4A,0x13,0x4B,0x24,0x32,0x51,0x53,0x07,0x9A,0x89,0x05,0x50,0x80, + 0x0D,0x9A,0x89,0x09,0x1A,0x40,0x0A,0x43,0x91,0x0A,0x89,0x02,0x80,0x05,0x80,0x0D, + 0x01,0x43,0x0E,0x98,0x01,0x60,0x04,0x98,0x40,0x1C,0x04,0x90,0x03,0x98,0x40,0x1C, + 0x03,0x90,0x04,0x98,0x10,0x99,0x88,0x42,0x00,0xDA,0xBC,0xE6,0x11,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0xA0,0x78,0x00,0x00,0xA0,0x79,0x00,0x00,0xF0,0x05,0x00,0x20, + 0xCA,0x0B,0x00,0x20,0xFF,0xFF,0x00,0xFC,0x10,0x4B,0x30,0xB4,0x27,0x21,0xDA,0x88, + 0x49,0x01,0x80,0x24,0x59,0x18,0x00,0x28,0x0E,0xD0,0x0D,0x48,0x45,0x7B,0x8D,0x82, + 0xC5,0x89,0xCD,0x82,0x05,0x8A,0x0D,0x83,0x40,0x8A,0x48,0x83,0x08,0x48,0x20,0x30, + 0x00,0x89,0x22,0x43,0x88,0x83,0x06,0xE0,0x00,0x20,0x88,0x82,0xC8,0x82,0x08,0x83, + 0x48,0x83,0xA2,0x43,0x88,0x83,0xDA,0x80,0x30,0xBC,0x70,0x47,0xF0,0x05,0x00,0x20, + 0x80,0x78,0x00,0x00,0x7F,0xB5,0x24,0x4D,0x04,0x00,0x1A,0x28,0x0B,0xD1,0x28,0x6A, + 0x00,0x28,0x08,0xD1,0x68,0x6A,0x00,0x28,0x05,0xD1,0x20,0x4C,0x01,0xF0,0xB4,0xFE, + 0x64,0x1E,0xFB,0xD2,0x14,0xE0,0x05,0xF0,0x73,0xF8,0x00,0x20,0x01,0xF0,0x22,0xFD, + 0x01,0xF0,0xA0,0xFD,0x01,0xF0,0xE8,0xFD,0x03,0xAA,0x01,0xA9,0x02,0xA8,0x04,0xF0, + 0x77,0xFA,0x03,0x00,0x01,0x9A,0x02,0x99,0x03,0x98,0x00,0x94,0x00,0xF0,0x30,0xF8, + 0x02,0x20,0x06,0xF0,0x89,0xF8,0x02,0x20,0x06,0xF0,0x7A,0xF8,0x10,0x48,0xE9,0x68, + 0xC1,0x61,0x29,0x69,0xC1,0x61,0x0F,0x49,0xCA,0x68,0x52,0x08,0x52,0x00,0xCA,0x60, + 0x0D,0x4A,0x0E,0x49,0x02,0xE0,0xD3,0x68,0x8B,0x42,0x02,0xD8,0x43,0x69,0x9B,0x06, + 0xF9,0xD5,0x41,0x68,0x89,0x07,0xFC,0xD5,0x01,0xF0,0x94,0xFE,0x01,0x20,0x00,0xF0, + 0x6B,0xF8,0x7F,0xBC,0x08,0xBC,0x18,0x47,0xC0,0x75,0x00,0x00,0xE7,0x03,0x00,0x00, + 0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40,0x50,0xC3,0x00,0x00, + 0xFF,0xB5,0x05,0x00,0x0E,0x00,0x91,0xB0,0xFF,0xF7,0x9C,0xF9,0x1C,0x48,0x01,0x27, + 0x04,0x04,0x24,0x0C,0x7F,0x02,0x00,0x22,0x39,0x00,0x20,0x00,0xFF,0xF7,0x1E,0xFD, + 0x18,0x49,0x3A,0x00,0x20,0x00,0x00,0x23,0xFF,0xF7,0x20,0xFD,0x16,0x49,0x40,0x22, + 0x01,0xA8,0x04,0xF0,0xBA,0xF9,0x14,0x99,0x28,0x04,0x09,0x03,0x08,0x43,0x13,0x49, + 0x08,0x43,0x04,0x90,0x13,0x99,0x30,0x04,0x08,0x43,0x05,0x90,0x10,0x48,0x11,0x49, + 0xC0,0x6B,0x10,0x90,0x0C,0x48,0x80,0x69,0x40,0x1C,0x07,0x90,0x00,0x20,0x8D,0x42, + 0x09,0x90,0x02,0xD1,0x06,0x99,0x49,0x1C,0x06,0x91,0x1A,0x99,0x1A,0x29,0x00,0xD1, + 0x0A,0x90,0x01,0xA8,0x06,0xF0,0x9C,0xF8,0x15,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x7E,0x00,0x00,0x00,0x00,0x10,0x40,0xC0,0x75,0x00,0x00,0xAB,0x0C,0x00,0x80, + 0xC0,0x0F,0x00,0x20,0xEC,0x0D,0x00,0x00,0x02,0x4A,0x51,0x69,0x81,0x43,0x51,0x61, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x4A,0x51,0x69,0x01,0x43,0x51,0x61, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x78,0x47,0xC0,0x46,0x01,0x21,0xA0,0xE3, + 0x50,0x30,0x92,0xE5,0x0C,0x10,0xA0,0xE3,0x03,0x00,0x80,0xE1,0x50,0x00,0x82,0xE5, + 0x00,0x00,0x00,0xEA,0x00,0x00,0xA0,0xE1,0x01,0x10,0x51,0xE2,0xFC,0xFF,0xFF,0x2A, + 0x1E,0xFF,0x2F,0xE1,0x01,0x48,0x40,0x69,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x01,0x48,0x80,0x6A,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x49,0x08,0x62, + 0x00,0x20,0x08,0x62,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x01,0x49,0x48,0x61, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x07,0x49,0xFF,0x28,0x04,0xD1,0x01,0x20, + 0xC8,0x60,0x00,0x20,0x88,0x61,0x70,0x47,0x8A,0x69,0x12,0x07,0x12,0x0F,0x02,0x43, + 0x8A,0x61,0x02,0x20,0xC8,0x60,0x70,0x47,0x40,0x00,0x00,0x40,0xF0,0xB5,0x00,0x20, + 0xF3,0xB0,0x62,0x90,0xFF,0x49,0x40,0x1E,0x5E,0x90,0xCB,0x79,0xFE,0x4F,0xFF,0x48, + 0xFA,0x88,0x54,0x06,0x00,0xD4,0xC3,0x78,0x54,0x06,0x05,0x93,0x0B,0x7A,0x00,0xD4, + 0x03,0x79,0xFB,0x4C,0xA4,0x8A,0x1B,0x19,0x1B,0x06,0x1B,0x0E,0x04,0x93,0x4B,0x7A, + 0x54,0x06,0x00,0xD4,0x43,0x79,0x52,0x06,0x03,0x93,0x89,0x7A,0x00,0xD4,0x81,0x79, + 0x00,0x20,0xF4,0x4C,0x02,0x91,0x3D,0x79,0x01,0x26,0x01,0x90,0x13,0xE0,0x0A,0x20, + 0x70,0x43,0x43,0x21,0xC0,0x19,0xC9,0x00,0x09,0x5C,0x00,0x29,0x0A,0xD0,0xEE,0x49, + 0x40,0x18,0x02,0xF0,0x93,0xFE,0x00,0x28,0x04,0xD0,0x01,0x98,0x40,0x1C,0x00,0x06, + 0x00,0x0E,0x01,0x90,0x76,0x1C,0xA0,0x78,0xB0,0x42,0xE8,0xDA,0xE7,0x48,0x72,0x90, + 0xC2,0x8A,0x41,0x8B,0x50,0x1A,0x00,0x28,0x00,0xDC,0x88,0x1A,0x03,0x04,0x72,0x98, + 0x72,0x99,0x00,0x8B,0x89,0x8B,0x1B,0x0C,0x42,0x1A,0x00,0x2A,0x00,0xDC,0x0A,0x1A, + 0x10,0x04,0x72,0x9A,0x00,0x21,0x91,0x74,0x72,0x9A,0x00,0x0C,0xD1,0x74,0x72,0x9A, + 0x11,0x75,0x01,0x99,0x00,0x29,0x10,0xD0,0x1E,0x2B,0x0E,0xD2,0x32,0x28,0x03,0xD2, + 0x72,0x98,0x01,0x21,0x81,0x74,0x08,0xE0,0x64,0x28,0x03,0xD2,0x72,0x99,0x01,0x20, + 0xC8,0x74,0x02,0xE0,0x72,0x98,0x01,0x21,0x01,0x75,0x72,0x98,0x40,0x7C,0x00,0x28, + 0x16,0xD1,0x72,0x98,0x80,0x7C,0x00,0x28,0x02,0xD0,0x05,0x98,0x80,0x1C,0x0C,0xE0, + 0x72,0x98,0xC0,0x7C,0x00,0x28,0x02,0xD0,0x05,0x98,0x00,0x1D,0x05,0xE0,0x72,0x98, + 0x00,0x7D,0x00,0x28,0x04,0xD0,0x05,0x98,0x80,0x1D,0x00,0x06,0x00,0x0E,0x05,0x90, + 0x09,0x22,0x00,0x21,0x5B,0xA8,0x04,0xF0,0xB3,0xF8,0xF8,0x88,0xFF,0x21,0x09,0x31, + 0x08,0x42,0x01,0xD1,0xC0,0x06,0x05,0xD5,0x01,0xF0,0xAE,0xF8,0x73,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0xE0,0x78,0x00,0x28,0x01,0xD0,0x40,0x1E,0xE0,0x70,0x60,0x78, + 0x00,0x2D,0x02,0xD1,0x00,0x28,0x18,0xD0,0x18,0xE0,0x00,0x28,0x16,0xD1,0xB1,0x48, + 0x5A,0x22,0x00,0x21,0x5E,0x30,0x04,0xF0,0x93,0xF8,0xE0,0x78,0x00,0x28,0x0C,0xD1, + 0x01,0x26,0x07,0xE0,0x31,0x06,0x09,0x0E,0x0A,0x00,0x14,0x23,0x5B,0xA8,0xFF,0xF7, + 0x7B,0xFC,0x76,0x1C,0xAE,0x42,0xF5,0xDD,0x25,0x70,0xE6,0xE1,0x09,0x22,0x01,0x21, + 0x58,0xA8,0x04,0xF0,0x7D,0xF8,0x02,0x20,0xA3,0x49,0x06,0x90,0x9E,0x48,0x5D,0x31, + 0x41,0x18,0x71,0x91,0xA0,0x49,0x54,0x31,0x40,0x18,0x70,0x90,0x13,0xE1,0x08,0x26, + 0x07,0xAF,0x24,0x20,0x70,0x43,0x07,0xA9,0x40,0x18,0x00,0x21,0x24,0x22,0xC9,0x43, + 0x04,0xF0,0x66,0xF8,0x76,0x1E,0xF4,0xD5,0x06,0x98,0x01,0xF0,0x39,0xFC,0x01,0x27, + 0x5F,0x90,0x53,0xE0,0x5F,0x98,0x01,0x26,0x60,0x90,0x4B,0xE0,0x0A,0x20,0x70,0x43, + 0x8D,0x49,0x40,0x18,0x01,0x00,0xFF,0x30,0xFF,0x30,0x02,0x30,0x6F,0x90,0x00,0x7E, + 0x00,0x28,0x3E,0xD0,0x8C,0x48,0x08,0x18,0x6E,0x90,0x02,0xF0,0xCF,0xFD,0x06,0x99, + 0x08,0x43,0x07,0xD0,0x6E,0x98,0x02,0xF0,0xC9,0xFD,0x00,0x28,0x31,0xD0,0x06,0x98, + 0x00,0x28,0x2E,0xD0,0x80,0x49,0x78,0x00,0x40,0x18,0xC0,0x30,0x6D,0x90,0x80,0x89, + 0x0A,0x21,0xFF,0xF7,0x6B,0xFB,0x6F,0x99,0x49,0x8B,0x0A,0x1A,0x00,0x2A,0x00,0xDC, + 0x42,0x1A,0x6D,0x98,0x61,0x92,0xC0,0x8B,0x0A,0x21,0xFF,0xF7,0x5F,0xFB,0x6F,0x99, + 0x89,0x8B,0x0A,0x1A,0x00,0x2A,0x00,0xDC,0x42,0x1A,0x61,0x98,0x01,0x00,0x41,0x43, + 0x10,0x00,0x50,0x43,0x08,0x18,0x60,0x99,0x88,0x42,0x04,0xDA,0x24,0x21,0x79,0x43, + 0x07,0xAA,0x56,0x50,0x60,0x90,0x24,0x21,0x79,0x43,0x07,0xAA,0x89,0x18,0xB2,0x00, + 0x88,0x50,0x76,0x1C,0xA0,0x78,0xB0,0x42,0xB0,0xDA,0x7F,0x1C,0xAF,0x42,0xA9,0xDD, + 0x01,0x20,0xA4,0xE0,0x01,0x23,0x5F,0x9A,0x18,0x00,0x15,0xE0,0x5B,0xA9,0x09,0x5C, + 0x00,0x29,0x10,0xD1,0x24,0x21,0x41,0x43,0x0F,0x00,0x07,0xAE,0x89,0x19,0xF6,0x59, + 0xB7,0x00,0xC9,0x59,0x91,0x42,0x06,0xDA,0x00,0x29,0x04,0xDB,0x00,0x2E,0x02,0xDB, + 0x0A,0x00,0x00,0x23,0x5E,0x90,0x40,0x1C,0xA8,0x42,0xE7,0xDD,0x00,0x2B,0x7E,0xD1, + 0x62,0x98,0x5E,0x9E,0x40,0x1C,0x62,0x90,0x24,0x20,0x46,0x43,0x07,0xA8,0x80,0x59, + 0x0A,0x21,0x48,0x43,0x50,0x49,0x0A,0x22,0x41,0x18,0x5E,0x98,0xFF,0x31,0x50,0x43, + 0x4D,0x4A,0xBF,0x31,0x87,0x18,0x38,0x00,0xFF,0x30,0x65,0x30,0x0A,0x22,0x03,0xF0, + 0xB3,0xFF,0x5E,0x98,0x48,0x49,0x40,0x00,0x40,0x18,0xC0,0x30,0x6C,0x90,0x80,0x89, + 0x0A,0x21,0xFF,0xF7,0xFB,0xFA,0xFF,0x37,0x61,0x37,0xF8,0x80,0x6C,0x98,0x0A,0x21, + 0xC0,0x8B,0xFF,0xF7,0xF3,0xFA,0x38,0x81,0x3F,0x48,0x5E,0x99,0x40,0x18,0xFF,0x30, + 0x01,0x30,0x00,0x7C,0x78,0x71,0xB8,0x7A,0x05,0x99,0x49,0x1C,0x88,0x42,0x01,0xD2, + 0x40,0x1C,0xB8,0x72,0xB8,0x7A,0x13,0x28,0x6B,0x90,0x09,0xD9,0x14,0x21,0xFF,0xF7, + 0xDD,0xFA,0x04,0x99,0x89,0x1C,0x88,0x42,0x02,0xD2,0x6B,0x98,0x14,0x30,0xB8,0x72, + 0x38,0x79,0x5E,0x9A,0x5B,0xA9,0x88,0x54,0x71,0x9A,0x5E,0x99,0x81,0x54,0x39,0x79, + 0x70,0x9A,0x00,0x20,0x88,0x54,0x07,0xA9,0x89,0x59,0x58,0xAA,0x50,0x54,0x01,0x21, + 0x23,0xE0,0x08,0x00,0x24,0x23,0x58,0x43,0x07,0xAB,0x6A,0x90,0xC0,0x18,0x69,0x90, + 0x9B,0x59,0x00,0x22,0xD2,0x43,0x9B,0x00,0xC2,0x50,0x5B,0xA8,0x40,0x5C,0x5F,0x9B, + 0x00,0x28,0x11,0xD1,0xA2,0x78,0x01,0x20,0x94,0x46,0x0B,0xE0,0x69,0x9A,0x87,0x00, + 0xD2,0x59,0x00,0x2A,0x05,0xDB,0x9A,0x42,0x07,0xAF,0x02,0xDA,0x6A,0x9B,0xF8,0x50, + 0x13,0x00,0x40,0x1C,0x84,0x45,0xF1,0xDA,0x49,0x1C,0xA9,0x42,0x00,0xE0,0x04,0xE0, + 0xD7,0xDD,0xA0,0x78,0x62,0x99,0x88,0x42,0x05,0xDD,0x64,0x98,0x40,0x1C,0xA8,0x42, + 0x64,0x90,0x00,0xDC,0x56,0xE7,0x06,0x98,0x41,0x1E,0x09,0x06,0x09,0x0E,0x00,0x28, + 0x06,0x91,0x00,0xD0,0xE3,0xE6,0x01,0x26,0x65,0x96,0x63,0x90,0x6F,0xE0,0x58,0xA8, + 0x80,0x5D,0x00,0x28,0x6A,0xD0,0x65,0x98,0x07,0x49,0x2F,0x18,0x0A,0x20,0x70,0x43, + 0x40,0x18,0x68,0x90,0xFF,0x30,0xFF,0x30,0x02,0x30,0x67,0x90,0x00,0x7E,0x70,0x99, + 0x40,0x5C,0x0D,0xE0,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00, + 0xD0,0x0A,0x00,0x20,0x50,0x07,0x00,0x20,0x1E,0x02,0x00,0x00,0x70,0x08,0x00,0x20, + 0x03,0x99,0x88,0x42,0x34,0xD2,0x08,0x2F,0x32,0xDC,0x4C,0x49,0x68,0x98,0x40,0x18, + 0x02,0xF0,0xAC,0xFC,0x00,0x28,0x2B,0xD0,0x67,0x98,0x70,0x99,0x00,0x7E,0x70,0x9A, + 0x47,0x4B,0x41,0x5C,0x49,0x1C,0x81,0x54,0x68,0x98,0x43,0x21,0xC9,0x00,0x41,0x18, + 0x0A,0x20,0x78,0x43,0xC0,0x18,0x66,0x90,0xFF,0x30,0x65,0x30,0x0A,0x22,0x03,0xF0, + 0xF3,0xFE,0x68,0x99,0x66,0x98,0xFF,0x31,0xC1,0x31,0x4A,0x79,0xFF,0x30,0x61,0x30, + 0xC2,0x72,0x89,0x79,0x01,0x73,0x67,0x98,0x5B,0xA9,0x00,0x7E,0xC8,0x55,0x71,0x99, + 0x47,0x54,0x65,0x98,0x40,0x1C,0x65,0x90,0x63,0x98,0x40,0x1C,0x63,0x90,0x15,0xE0, + 0x32,0x49,0x68,0x98,0x32,0x4F,0x40,0x18,0x02,0xF0,0x78,0xFC,0x00,0x28,0x0D,0xD0, + 0x72,0x99,0x01,0x20,0x08,0x74,0x67,0x98,0x80,0x7F,0x13,0x28,0x06,0xD9,0x60,0x78, + 0x01,0x28,0x03,0xD1,0xF8,0x88,0x04,0x21,0x08,0x43,0xF8,0x80,0x76,0x1C,0xA0,0x78, + 0xB0,0x42,0x8C,0xDA,0x26,0x48,0xC0,0x88,0x41,0x07,0x05,0xD5,0x02,0x99,0x04,0x22, + 0xE1,0x70,0x23,0x49,0x90,0x43,0xC8,0x80,0x01,0x26,0x31,0xE0,0x5B,0xA8,0x80,0x5D, + 0x00,0x28,0x1A,0xD1,0x13,0x22,0x01,0x20,0x52,0x01,0x05,0x23,0xDB,0x01,0x1C,0x49, + 0x09,0x18,0x8F,0x18,0xFF,0x7E,0x00,0x2F,0x0C,0xD1,0xC9,0x18,0x09,0x79,0x00,0x29, + 0x08,0xD1,0x02,0x06,0x31,0x06,0x12,0x0E,0x09,0x0E,0x01,0x23,0x5B,0xA8,0xFF,0xF7, + 0xAB,0xFA,0x02,0xE0,0x40,0x1C,0x09,0x28,0xE9,0xDB,0xE0,0x78,0x00,0x28,0x0E,0xD0, + 0x0A,0x20,0x70,0x43,0x0E,0x49,0x47,0x18,0x38,0x00,0xFF,0x30,0x6B,0x30,0x02,0xF0, + 0x2D,0xFC,0x00,0x28,0x03,0xD1,0x01,0x20,0xFF,0x37,0x61,0x37,0xB8,0x72,0x76,0x1C, + 0xAE,0x42,0xCB,0xDD,0x63,0x98,0x28,0x18,0x20,0x70,0x20,0x78,0x05,0x49,0x5A,0x22, + 0xA0,0x70,0x08,0x00,0xB4,0x30,0x03,0xF0,0x77,0xFE,0xE7,0xE5,0x1E,0x02,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x54,0x07,0x00,0x20,0xF1,0xB5,0x3C,0x48,0x86,0xB0,0x05,0x90, + 0x00,0x20,0x04,0x90,0x3A,0x48,0x41,0x7F,0x01,0x91,0x01,0x00,0x20,0x39,0x49,0x7F, + 0x00,0x91,0x00,0x21,0x02,0x91,0x01,0x7D,0x00,0x20,0xC0,0x43,0x00,0x29,0x06,0x99, + 0x03,0xD1,0x00,0x29,0x03,0xD1,0x01,0x20,0x01,0xE0,0x00,0x29,0xFB,0xD1,0x03,0x90, + 0x01,0xF0,0x8A,0xF9,0x01,0xF0,0x38,0xFA,0x00,0x24,0x27,0x00,0x37,0xE0,0x00,0x26, + 0x30,0xE0,0x31,0x00,0x38,0x00,0x02,0xF0,0xDF,0xF8,0x00,0x28,0x28,0xD0,0x29,0x78, + 0x05,0x9A,0x79,0x43,0x89,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x0D,0x1A, + 0x06,0x98,0x00,0x28,0x0D,0xD0,0x00,0x2D,0x1A,0xDA,0x03,0x9A,0x31,0x00,0x38,0x00, + 0x05,0xF0,0x10,0xFB,0x40,0x1C,0x14,0xD1,0x00,0x98,0x28,0x18,0x10,0xD5,0x02,0x20, + 0x0D,0xE0,0x00,0x2D,0x0C,0xDD,0x03,0x9A,0x31,0x00,0x38,0x00,0x05,0xF0,0x02,0xFB, + 0x40,0x1C,0x06,0xD1,0x01,0x98,0x28,0x1A,0x00,0x28,0x01,0xDD,0x03,0x20,0x04,0x90, + 0x64,0x1C,0x76,0x1C,0x13,0x4D,0x28,0x78,0x86,0x42,0xCA,0xD3,0x7F,0x1C,0x12,0x48, + 0x00,0x78,0x87,0x42,0xC3,0xD3,0x10,0x48,0x0E,0x49,0x00,0x78,0x09,0x78,0x48,0x43, + 0xA0,0x42,0x04,0xD1,0x04,0x98,0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x02,0x98, + 0x41,0x1C,0x02,0x91,0x01,0x21,0x49,0x02,0x88,0x42,0xA9,0xD9,0x06,0x98,0x00,0x28, + 0x01,0xD0,0x02,0x20,0x00,0xE0,0x03,0x20,0x04,0x90,0xEC,0xE7,0x00,0x02,0x10,0x40, + 0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xF0,0xB5,0x8A,0x4A, + 0xFF,0xB0,0x88,0xB0,0x40,0x18,0x85,0x92,0x42,0x00,0x80,0x18,0x84,0x90,0x48,0x42, + 0x83,0x90,0x86,0x48,0x86,0x4E,0x00,0x7A,0x02,0xAF,0x82,0x90,0x85,0x48,0x86,0x90, + 0x00,0x7D,0x00,0x28,0x02,0xD1,0x83,0x98,0x40,0x42,0x83,0x90,0x01,0x22,0x52,0x02, + 0x00,0x21,0x30,0x00,0x03,0xF0,0xF4,0xFD,0x00,0x25,0x39,0xE0,0x00,0x24,0x32,0xE0, + 0x7C,0x48,0x20,0x38,0x01,0x7D,0xC9,0x07,0x15,0xD0,0x7B,0x49,0x09,0x78,0x00,0x29, + 0x82,0x99,0x16,0xD0,0x8D,0x42,0x0E,0xD1,0x81,0x7D,0xA1,0x42,0x0B,0xD0,0xC1,0x7D, + 0xA1,0x42,0x08,0xD0,0x01,0x7E,0xA1,0x42,0x05,0xD0,0x41,0x7E,0xA1,0x42,0x02,0xD0, + 0x80,0x7E,0xA0,0x42,0x16,0xD1,0x83,0x9A,0x21,0x00,0x28,0x00,0x05,0xF0,0x8A,0xFA, + 0x10,0xE0,0x8C,0x42,0xF7,0xD1,0x81,0x7D,0xA9,0x42,0xF4,0xD0,0xC1,0x7D,0xA9,0x42, + 0xF1,0xD0,0x01,0x7E,0xA9,0x42,0xEE,0xD0,0x41,0x7E,0xA9,0x42,0xEB,0xD0,0x80,0x7E, + 0xA8,0x42,0xE8,0xD0,0x64,0x1C,0x65,0x48,0x00,0x78,0x84,0x42,0xC8,0xD3,0x6D,0x1C, + 0x63,0x4C,0x20,0x78,0x85,0x42,0xC1,0xD3,0x01,0xF0,0xC6,0xF8,0x01,0xF0,0x74,0xF9, + 0x00,0x25,0x2A,0xE0,0x00,0x24,0x23,0xE0,0x21,0x00,0x28,0x00,0x02,0xF0,0x1C,0xF8, + 0x00,0x28,0x12,0xD0,0x59,0x49,0x85,0x9B,0x09,0x78,0x69,0x43,0x0A,0x19,0x91,0x00, + 0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D,0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD, + 0x08,0x1A,0x00,0xE0,0x40,0x1A,0x51,0x00,0x70,0x52,0x21,0x00,0x28,0x00,0x02,0xF0, + 0x89,0xF8,0x4E,0x49,0x09,0x78,0x69,0x43,0x09,0x19,0x49,0x00,0x64,0x1C,0x78,0x52, + 0x4A,0x48,0x00,0x78,0x84,0x42,0xD7,0xD3,0x6D,0x1C,0x49,0x48,0x01,0x78,0x8D,0x42, + 0xD0,0xD3,0x00,0x21,0x01,0x91,0x01,0xF0,0x3F,0xF9,0x00,0x25,0x51,0xE0,0x00,0x24, + 0x4A,0xE0,0x21,0x00,0x28,0x00,0x01,0xF0,0xE7,0xFF,0x00,0x28,0x43,0xD0,0x3F,0x49, + 0x85,0x9B,0x09,0x78,0x69,0x43,0x09,0x19,0x8A,0x00,0x9A,0x58,0x03,0x04,0x12,0x05, + 0x12,0x0D,0x1B,0x0C,0xD3,0x1A,0x00,0x2B,0x01,0xDD,0x10,0x1A,0x00,0xE0,0x80,0x1A, + 0x49,0x00,0x73,0x5A,0x00,0x04,0x00,0x0C,0x83,0x42,0x0A,0xD9,0x70,0x52,0x21,0x00, + 0x28,0x00,0x02,0xF0,0x4F,0xF8,0x31,0x49,0x09,0x78,0x69,0x43,0x09,0x19,0x49,0x00, + 0x78,0x52,0x01,0x98,0x03,0x21,0xFF,0xF7,0x79,0xF8,0x00,0x29,0x01,0xD0,0x02,0x29, + 0x0D,0xD1,0x86,0x98,0x00,0x7D,0x00,0x28,0x02,0xD1,0x00,0x22,0x43,0x1E,0x01,0xE0, + 0x01,0x22,0x00,0x23,0x21,0x00,0x28,0x00,0x05,0xF0,0xC6,0xF9,0x0B,0xE0,0x00,0x22, + 0xD2,0x43,0x00,0x23,0x21,0x00,0x28,0x00,0x05,0xF0,0xBE,0xF9,0x00,0x28,0x02,0xD1, + 0x00,0x22,0x01,0x23,0xEE,0xE7,0x64,0x1C,0x1C,0x48,0x00,0x78,0x84,0x42,0xB0,0xD3, + 0x6D,0x1C,0x1B,0x48,0x00,0x78,0x85,0x42,0xA9,0xD3,0x01,0x98,0x40,0x1C,0x01,0x90, + 0x84,0x98,0x40,0x1E,0x84,0x90,0x1B,0xD2,0x14,0x4E,0x00,0x25,0x0E,0xE0,0x00,0x24, + 0x08,0xE0,0x68,0x43,0x00,0x19,0x40,0x00,0x3A,0x5A,0x21,0x00,0x28,0x00,0x05,0xF0, + 0xBB,0xF9,0x64,0x1C,0x30,0x78,0x84,0x42,0xF3,0xD3,0x6D,0x1C,0x0C,0x48,0x00,0x78, + 0x85,0x42,0xEC,0xD3,0x7F,0xB0,0x08,0xB0,0xF0,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47, + 0x01,0xF0,0x12,0xF8,0x7F,0xE7,0x00,0x00,0x00,0x02,0x10,0x40,0x70,0x0A,0x00,0x20, + 0x40,0x00,0x00,0x20,0x20,0x78,0x00,0x00,0xFD,0x0A,0x00,0x20,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0xF8,0xB5,0x01,0x22,0x52,0x07,0x10,0x68,0x01,0x28,0x03,0xD0, + 0x10,0x68,0x01,0x28,0x43,0xD9,0x02,0x20,0x86,0x46,0x22,0x48,0x00,0x90,0x80,0x7A, + 0x00,0x28,0x3C,0xD0,0x00,0x21,0x13,0x25,0x1F,0x4F,0xAD,0x01,0x32,0xE0,0x72,0x46, + 0x8A,0x18,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x28,0xD1, + 0x00,0x9C,0x93,0x00,0xA6,0x7A,0x1B,0x0F,0x21,0xE0,0x84,0x00,0xE4,0x19,0x64,0x19, + 0xE4,0x68,0xA4,0x00,0x24,0x0F,0xA3,0x42,0x18,0xD1,0x80,0x00,0xC0,0x19,0x40,0x19, + 0xC0,0x68,0x92,0x0A,0x83,0x05,0x92,0x02,0x9B,0x0D,0x1A,0x43,0x0F,0x4B,0x1A,0x40, + 0x83,0x01,0x9B,0x0D,0x1B,0x04,0x1A,0x43,0x3F,0x23,0x9B,0x02,0x00,0x04,0x80,0x0E, + 0x9A,0x43,0x80,0x02,0x02,0x43,0x60,0x46,0x02,0x60,0x02,0xE0,0x40,0x1C,0x86,0x42, + 0xDB,0xD8,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42,0xC7,0xD8,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0xFF,0xFF,0x00,0xFC, + 0xFC,0xB5,0x04,0x00,0x5E,0x48,0x8E,0x46,0x02,0x8C,0x5E,0x49,0x40,0x8C,0x01,0x91, + 0xCB,0x88,0x40,0x39,0x00,0x91,0x89,0x7E,0x00,0x25,0x2F,0x00,0xC9,0x07,0x01,0x26, + 0x00,0x29,0xAC,0x46,0x01,0xD1,0xE6,0x71,0xA6,0xE0,0x01,0x99,0x09,0x79,0x00,0x29, + 0x0D,0xD0,0x01,0x29,0x0F,0xD0,0x02,0x29,0x07,0xD0,0x03,0x29,0xF4,0xD1,0x17,0x00, + 0xD1,0x18,0x0A,0x04,0x12,0x0C,0x03,0x00,0x05,0xE0,0x1A,0x00,0xFB,0xE7,0x84,0x46, + 0xC0,0x18,0x03,0x04,0x1B,0x0C,0x60,0x88,0xA1,0x88,0x87,0x42,0x58,0xDC,0x82,0x42, + 0x56,0xDB,0x8C,0x45,0x54,0xDC,0x8B,0x42,0x52,0xDB,0x01,0x25,0x72,0x46,0x00,0x2A, + 0x77,0xD0,0x06,0x27,0x01,0x2A,0x0E,0xD0,0x09,0x23,0x02,0x2A,0x17,0xD0,0x03,0x2A, + 0x71,0xD1,0xE2,0x79,0xD7,0x07,0x28,0xD0,0x01,0x2A,0x01,0xD0,0x05,0x2A,0x22,0xD1, + 0x00,0x25,0xE3,0x71,0x67,0xE0,0x00,0x9A,0x92,0x7D,0x00,0x2A,0x63,0xD1,0x00,0xF0, + 0x87,0xF8,0x06,0x00,0x0F,0xD1,0x02,0x20,0xE0,0x71,0x26,0x72,0x5B,0xE0,0xE2,0x79, + 0xD6,0x07,0xE9,0xD1,0x92,0x07,0x56,0xD5,0x00,0xF0,0x7A,0xF8,0x06,0x00,0x08,0xD0, + 0x20,0x7A,0x00,0x28,0x05,0xD1,0x31,0x00,0x20,0x00,0xE7,0x71,0xFE,0xF7,0xE2,0xFF, + 0xEB,0xE7,0x02,0x20,0x46,0xE0,0x11,0x20,0x44,0xE0,0x92,0x07,0x43,0xD5,0x00,0xF0, + 0x67,0xF8,0x21,0x7A,0x00,0x28,0x0A,0xD0,0x00,0x29,0x0C,0xD0,0x81,0x42,0x08,0xD1, + 0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0xCD,0xFF,0xA6,0x71,0x05,0xE0,0x00,0x29, + 0x01,0xD0,0x12,0x20,0xF5,0xE7,0x02,0x20,0xE0,0x71,0x00,0x20,0x20,0x72,0x2A,0xE0, + 0x70,0x46,0x00,0x28,0x25,0xD0,0x01,0x28,0x06,0xD0,0x02,0x28,0x06,0xD0,0x03,0x28, + 0x21,0xD1,0xE0,0x79,0x80,0x07,0x0E,0xD4,0xE6,0x71,0x1C,0xE0,0xE0,0x79,0x80,0x07, + 0xFA,0xD5,0x21,0x7A,0x00,0x29,0x04,0xD0,0x12,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7, + 0xA9,0xFF,0xE6,0x71,0x09,0xE0,0x02,0x20,0xE0,0x71,0x21,0x7A,0x00,0x29,0x04,0xD0, + 0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0x9D,0xFF,0x01,0x25,0xA6,0x71,0x02,0xE0, + 0xFF,0xE7,0x00,0x20,0xE0,0x71,0x08,0x49,0xC8,0x88,0x82,0x07,0x04,0xD1,0xE2,0x79, + 0x92,0x07,0x92,0x0F,0x10,0x43,0xC8,0x80,0x28,0x00,0xFC,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x78,0x00,0x00,0x70,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x06,0x48,0x40,0x8B, + 0x00,0x28,0x06,0xD0,0x05,0x48,0xC0,0x88,0x00,0x06,0x80,0x0F,0x01,0xD0,0x00,0x20, + 0x70,0x47,0x01,0x20,0x70,0x47,0x00,0x00,0xA0,0x78,0x00,0x00,0xF0,0x05,0x00,0x20, + 0xF0,0xB4,0x18,0x4B,0x05,0x00,0xDE,0x7E,0x00,0x22,0x10,0x00,0x00,0x2E,0x26,0xD0, + 0x1B,0x7D,0x00,0x2B,0x23,0xD1,0x20,0xE0,0x13,0x4B,0xD4,0x00,0xE3,0x18,0x11,0x24, + 0xA4,0x01,0x1C,0x19,0x1C,0x27,0xE7,0x5F,0xAF,0x42,0x11,0xDC,0x23,0x27,0x7F,0x01, + 0xDB,0x19,0x00,0x27,0xDF,0x5F,0xAF,0x42,0x0A,0xDB,0x1E,0x27,0xE7,0x5F,0x8F,0x42, + 0x06,0xDC,0x02,0x24,0x1C,0x5F,0x8C,0x42,0x02,0xDB,0x50,0x1C,0x00,0x06,0x00,0x0E, + 0x00,0x28,0x04,0xD1,0x52,0x1C,0x12,0x06,0x12,0x0E,0x96,0x42,0xDC,0xD8,0xF0,0xBC, + 0x70,0x47,0x00,0x00,0x30,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0xF0,0xB5,0x00,0x20, + 0x8F,0xB0,0x0A,0x90,0x09,0x90,0xC7,0x48,0xC7,0x4A,0x01,0x8A,0xD0,0x88,0x43,0x06, + 0x02,0xD4,0xC4,0x49,0xC0,0x39,0x89,0x89,0xC2,0x4C,0xC4,0x4E,0x60,0x34,0x08,0x91, + 0xE1,0x7B,0x43,0x06,0x00,0xD4,0xF1,0x7A,0x43,0x06,0x07,0x91,0xA1,0x7B,0x00,0xD4, + 0xB1,0x7A,0x43,0x06,0x06,0x91,0x61,0x7C,0x00,0xD4,0x71,0x7B,0x43,0x06,0x05,0x91, + 0xA1,0x79,0x00,0xD4,0xB1,0x78,0x02,0x07,0x04,0x91,0xB7,0x49,0x09,0x79,0x05,0xD5, + 0xB5,0x4A,0x00,0x29,0x02,0xD1,0x08,0x23,0x98,0x43,0xD0,0x80,0xB4,0x48,0x18,0x22, + 0x82,0x5E,0xFF,0x23,0x01,0x33,0x28,0x2A,0x03,0xDD,0x1A,0x22,0x82,0x5E,0x1E,0x2A, + 0x03,0xDC,0x1C,0x22,0x82,0x5E,0x28,0x2A,0x05,0xDD,0xAB,0x4D,0xEA,0x88,0x1A,0x43, + 0xEA,0x80,0x00,0x22,0x04,0xE0,0x1E,0x22,0x82,0x5E,0x00,0x2A,0x02,0xD0,0x52,0x1E, + 0xC2,0x83,0x03,0xE0,0xA4,0x4A,0xD0,0x88,0x98,0x43,0xD0,0x80,0x08,0x98,0x80,0x04, + 0x78,0xD5,0xA3,0x4A,0x00,0x20,0x20,0x32,0x52,0x78,0x00,0x2A,0x02,0xD1,0x00,0x29, + 0x00,0xD1,0x01,0x20,0x00,0x90,0x00,0xF0,0x41,0xF9,0x9B,0x48,0x9D,0x4D,0x00,0x79, + 0x01,0x28,0x0E,0x90,0x68,0xD1,0x98,0x4B,0x19,0x89,0x0D,0x91,0xDF,0x88,0x62,0x89, + 0x7B,0x06,0x00,0xD4,0xF2,0x88,0x91,0x42,0x00,0xD3,0x00,0x20,0x03,0x90,0x0D,0x98, + 0x0A,0x22,0x0E,0x21,0x50,0x43,0x69,0x5E,0x0C,0x91,0xFE,0xF7,0x65,0xFD,0x21,0x78, + 0x91,0x4B,0x7A,0x06,0x0B,0x93,0x00,0xD4,0x19,0x7F,0x88,0x42,0x01,0xDA,0x01,0x20, + 0x00,0xE0,0x00,0x20,0x02,0x90,0x0C,0x99,0x0D,0x98,0x40,0x1A,0x0A,0x21,0xFE,0xF7, + 0x53,0xFD,0x61,0x78,0x7A,0x06,0x01,0xD4,0x0B,0x99,0x49,0x7F,0x88,0x42,0x01,0xDA, + 0x01,0x20,0x00,0xE0,0x00,0x20,0x01,0x90,0x2A,0x89,0xA1,0x78,0x01,0x20,0x7B,0x06, + 0x01,0xD4,0x0B,0x99,0x89,0x7F,0x8A,0x42,0x00,0xD8,0x00,0x20,0xE1,0x78,0x84,0x46, + 0x2A,0x69,0x01,0x20,0x7B,0x06,0x01,0xD4,0x0B,0x99,0xC9,0x7F,0x8A,0x42,0x00,0xDB, + 0x00,0x20,0x03,0x99,0x00,0x29,0x1F,0xD0,0x02,0x99,0x00,0x29,0x1C,0xD0,0x01,0x99, + 0x00,0x29,0x19,0xD0,0x61,0x46,0x00,0x29,0x16,0xD0,0x71,0x4A,0x01,0x21,0x80,0x3A, + 0x52,0x68,0x00,0x2A,0x00,0xD0,0x00,0x21,0x01,0x42,0x0D,0xD0,0x68,0x7B,0x00,0x28, + 0x24,0xD0,0x61,0x7A,0x7A,0x06,0x00,0xD4,0x71,0x79,0x88,0x42,0x1E,0xD8,0x40,0x1E, + 0x68,0x73,0x1B,0xE0,0x36,0xE0,0xFF,0xE7,0x63,0x48,0x21,0x79,0xC0,0x88,0x2A,0x69, + 0x43,0x06,0x00,0xD4,0x31,0x78,0x8A,0x42,0x10,0xDB,0x0E,0x99,0x00,0x29,0x0D,0xD0, + 0xC1,0x06,0x0B,0xD4,0x69,0x7B,0xE2,0x79,0x40,0x06,0x00,0xD4,0xF2,0x78,0x91,0x42, + 0x04,0xD2,0x04,0x98,0x81,0x42,0x01,0xD9,0x49,0x1C,0x69,0x73,0x68,0x7B,0x04,0x99, + 0x10,0x22,0x88,0x42,0x0D,0xD8,0x00,0x98,0x00,0x28,0x0A,0xD1,0x52,0x49,0xC8,0x88, + 0x10,0x43,0xC8,0x80,0xC9,0x88,0x20,0x7A,0x49,0x06,0x00,0xD4,0x30,0x79,0x28,0x73, + 0x08,0xE0,0x4D,0x4B,0xD9,0x88,0xC8,0x06,0x04,0xD5,0x28,0x7B,0x00,0x28,0x10,0xD1, + 0x91,0x43,0xD9,0x80,0x48,0x4F,0x38,0x79,0x00,0x28,0x7E,0xD0,0xF8,0x88,0x80,0x06, + 0x05,0xD5,0x05,0x99,0x06,0x98,0x40,0x1A,0x00,0x06,0x00,0x0E,0x06,0x90,0x01,0x22, + 0x01,0xE0,0x40,0x1E,0xE3,0xE7,0x50,0x00,0xC0,0x19,0x84,0x46,0xFF,0x30,0x41,0x30, + 0xC0,0x88,0x00,0x28,0x65,0xD0,0x07,0x99,0x88,0x42,0x09,0xD9,0x08,0x98,0x80,0x07, + 0x5F,0xD5,0x00,0x20,0x38,0x71,0xF8,0x88,0x08,0x21,0x08,0x43,0xF8,0x80,0x58,0xE0, + 0x06,0x99,0x88,0x42,0x55,0xD3,0x08,0x98,0x40,0x07,0x52,0xD5,0x00,0x24,0x01,0x20, + 0x27,0xE0,0xFF,0x23,0x39,0x18,0x3E,0x33,0x5B,0x5C,0x93,0x42,0x20,0xD1,0x64,0x1C, + 0xFF,0x31,0x01,0x31,0x09,0x7C,0x0A,0x91,0x01,0x00,0x12,0xE0,0x4B,0x00,0xDD,0x19, + 0x2B,0x00,0xC0,0x33,0xDE,0x89,0xE0,0x35,0x9E,0x81,0x2D,0x88,0xDD,0x83,0x7B,0x18, + 0xDD,0x1D,0xF9,0x35,0x6E,0x7C,0xFF,0x33,0x21,0x33,0x2E,0x74,0x9E,0x7F,0x49,0x1C, + 0x5E,0x77,0x3B,0x79,0x8B,0x42,0xE9,0xDA,0x39,0x79,0x49,0x1E,0x40,0x1E,0x39,0x71, + 0x40,0x1C,0x39,0x79,0x81,0x42,0xD4,0xDA,0x00,0x2C,0x22,0xDD,0x01,0x2C,0x05,0xDD, + 0x01,0x20,0x09,0x90,0xF8,0x88,0x20,0x21,0x08,0x43,0xF8,0x80,0x60,0x46,0xFF,0x30, + 0x01,0x30,0xC1,0x8B,0x38,0x79,0x40,0x1C,0x00,0x06,0x00,0x0E,0x38,0x71,0x40,0x00, + 0xC0,0x19,0xC0,0x30,0x81,0x81,0x60,0x46,0xFF,0x30,0x21,0x30,0xC1,0x89,0x38,0x79, + 0x40,0x00,0xC0,0x19,0xC0,0x30,0xC1,0x83,0x3B,0x79,0x0D,0x48,0x0A,0x99,0x30,0x38, + 0x19,0x54,0x52,0x1C,0x08,0x2A,0x8E,0xDB,0x00,0xE0,0x06,0xE0,0x09,0x98,0x00,0x28, + 0x03,0xD1,0xF8,0x88,0x20,0x21,0x88,0x43,0xF8,0x80,0x0F,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xA0,0x79,0x00,0x00,0xF0,0x05,0x00,0x20,0x40,0x79,0x00,0x00, + 0x30,0x07,0x00,0x20,0x30,0x0A,0x00,0x20,0x20,0x79,0x00,0x00,0xF0,0xB5,0x70,0x48, + 0xB1,0xB0,0x00,0x78,0x71,0x4B,0x70,0x4A,0x01,0x90,0x6E,0x48,0x00,0x78,0x00,0x90, + 0xD9,0x88,0x16,0x7D,0x6E,0x48,0x4C,0x06,0x00,0xD4,0x06,0x7C,0x55,0x7D,0x49,0x06, + 0x00,0xD4,0x45,0x7C,0x6B,0x48,0x00,0x21,0x2B,0x95,0x30,0x90,0xC1,0x81,0x50,0x22, + 0x16,0xA8,0x2A,0x91,0x03,0xF0,0xC4,0xF9,0x01,0x99,0x2B,0x98,0x2B,0x9D,0x08,0x1A, + 0xAD,0x1C,0x2F,0x90,0x80,0x1C,0x2E,0x90,0x35,0xE0,0x00,0x98,0x16,0xA9,0x80,0x1B, + 0x80,0x1C,0x86,0x46,0x2B,0x98,0xB4,0x1C,0x28,0x1A,0x80,0x00,0x47,0x18,0x40,0x3F, + 0x1E,0xE0,0x01,0x98,0x5C,0x49,0x00,0x1D,0x60,0x43,0x40,0x19,0x00,0x04,0x00,0x14, + 0x40,0x00,0x0A,0x5E,0x55,0x4B,0x68,0x00,0xC0,0x18,0x94,0x21,0x41,0x5E,0x60,0x00, + 0xC3,0x18,0x6C,0x20,0x18,0x5E,0x2A,0x9B,0x94,0x46,0xC3,0x18,0x52,0x18,0xD2,0x18, + 0x2A,0x92,0xBB,0x6B,0x62,0x46,0x9A,0x18,0x08,0x18,0x10,0x18,0x64,0x1C,0xB8,0x63, + 0xA6,0x45,0xDE,0xDC,0x00,0x98,0x71,0x00,0x41,0x1A,0xB8,0x6B,0xFE,0xF7,0xE4,0xFB, + 0xB8,0x63,0x2E,0x98,0x6D,0x1C,0xA8,0x42,0xC7,0xDC,0x00,0x99,0x70,0x00,0x09,0x1A, + 0x2B,0x98,0x2D,0x91,0x42,0x00,0x01,0x98,0x80,0x1A,0x41,0x43,0x2C,0x90,0x2A,0x98, + 0xFE,0xF7,0xD2,0xFB,0x30,0x99,0x50,0x22,0xC8,0x81,0x00,0x20,0x01,0x00,0x2A,0x90, + 0x02,0xA8,0x03,0xF0,0x6D,0xF9,0x2B,0x9C,0xA4,0x1C,0x35,0xE0,0x00,0x99,0x02,0xAA, + 0x89,0x1B,0x89,0x1C,0x8E,0x46,0x2B,0x99,0xB0,0x1C,0x61,0x1A,0x89,0x00,0x8D,0x18, + 0x40,0x3D,0x8C,0x46,0x1C,0xE0,0x01,0x99,0x33,0x4A,0x09,0x1D,0x41,0x43,0x09,0x19, + 0x49,0x00,0x51,0x5E,0x16,0xAA,0x62,0x44,0x40,0x3A,0x92,0x6B,0x2B,0x4F,0x89,0x1A, + 0x62,0x00,0xD3,0x19,0x94,0x22,0x9A,0x5E,0x43,0x00,0xDB,0x19,0x6C,0x27,0xDF,0x5F, + 0xD2,0x19,0x89,0x18,0x0B,0x00,0x4B,0x43,0xAA,0x6B,0xD1,0x18,0x40,0x1C,0xA9,0x63, + 0x86,0x45,0xE0,0xDC,0x2D,0x99,0xA8,0x6B,0x49,0x1E,0xFE,0xF7,0x95,0xFB,0xA8,0x63, + 0x2A,0x99,0x40,0x18,0x64,0x1C,0x2A,0x90,0x2E,0x98,0xA0,0x42,0xC6,0xDC,0x2C,0x99, + 0x2A,0x98,0xFE,0xF7,0x89,0xFB,0x30,0x99,0x00,0x22,0x0A,0x61,0x11,0x00,0x02,0xAB, + 0x0A,0xE0,0x8A,0x00,0x9A,0x58,0x82,0x1A,0x14,0x00,0x54,0x43,0x30,0x9A,0x12,0x69, + 0xA2,0x18,0x30,0x9C,0x49,0x1C,0x22,0x61,0x2C,0x9A,0x8A,0x42,0xF1,0xDC,0x30,0x98, + 0x51,0x1E,0x00,0x69,0xFE,0xF7,0x70,0xFB,0x00,0x9A,0x2F,0x99,0x92,0x1B,0x92,0x02, + 0x51,0x43,0xFE,0xF7,0x69,0xFB,0x30,0x99,0x08,0x61,0x30,0x99,0x0E,0x20,0x08,0x5E, + 0x00,0x28,0x01,0xD1,0x40,0x1C,0xC8,0x81,0x31,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0x00,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x40,0x79,0x00,0x00,0x30,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20,0xF8,0xB5,0x61,0x4D, + 0x28,0x7A,0x00,0x28,0x06,0xD0,0x28,0x6B,0x00,0x04,0x00,0x0C,0x05,0xF0,0x1A,0xF8, + 0x05,0xF0,0x08,0xF8,0x01,0x24,0x64,0x03,0x20,0x00,0xFE,0xF7,0x55,0xFF,0x04,0xF0, + 0xCF,0xFB,0x20,0x00,0xFE,0xF7,0x48,0xFF,0x57,0x4C,0x00,0x26,0x9C,0xE0,0x57,0x48, + 0x41,0x68,0x09,0x07,0x07,0xD5,0xC0,0x68,0x00,0x28,0x04,0xD0,0x53,0x48,0xC1,0x68, + 0xC0,0x03,0xC1,0x63,0x95,0xE0,0x28,0x7A,0x00,0x28,0x04,0xD0,0x28,0x6B,0x00,0x04, + 0x00,0x0C,0x04,0xF0,0xF7,0xFF,0xFF,0x20,0x81,0x30,0xFE,0xF7,0x35,0xFF,0x03,0x20, + 0x04,0xF0,0x2E,0xFF,0x03,0xF0,0x0C,0xFF,0x49,0x4F,0xF8,0x88,0x01,0x06,0x01,0xD5, + 0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5,0x04,0x20,0x00,0xE0,0x02,0x20,0x04,0xF0, + 0xFD,0xFD,0x00,0xF0,0xFB,0xFB,0x04,0xF0,0xC1,0xFB,0x00,0xF0,0xC5,0xFB,0x00,0xF0, + 0x73,0xFC,0x68,0x7B,0x00,0x28,0x04,0xD1,0x20,0x7B,0x00,0x28,0x01,0xD0,0x03,0xF0, + 0xFB,0xFE,0x20,0x7A,0x00,0x28,0x01,0xD0,0x03,0xF0,0xA8,0xF8,0x01,0x20,0x40,0x05, + 0x00,0xF0,0x98,0xFB,0x03,0xF0,0xBE,0xF8,0x00,0x28,0x01,0xD0,0x01,0x20,0x28,0x70, + 0x00,0x20,0x00,0xF0,0x8F,0xFB,0x28,0x78,0x00,0x28,0x04,0xD1,0x00,0x22,0x11,0x00, + 0x10,0x00,0x00,0xF0,0x57,0xF9,0x03,0xF0,0xC7,0xFE,0x28,0x78,0x00,0x28,0x04,0xD0, + 0x68,0x7B,0x00,0x09,0x04,0x28,0x44,0xD1,0x2E,0x70,0x03,0x20,0x04,0xF0,0xC2,0xFE, + 0xE8,0x62,0x03,0x20,0x04,0xF0,0xF0,0xFE,0xFF,0x20,0x81,0x30,0xFE,0xF7,0xDC,0xFE, + 0xF8,0x8B,0x00,0x28,0x02,0xD0,0x40,0x1E,0xF8,0x83,0x2D,0xE0,0xFF,0xF7,0x9E,0xFC, + 0x00,0x28,0x29,0xD0,0x6F,0x6A,0x00,0x2F,0x26,0xD0,0xE8,0x6A,0xFF,0x21,0x41,0x31, + 0x48,0x43,0x1C,0x49,0xFE,0xF7,0x92,0xFB,0x38,0x1A,0x14,0x28,0x1C,0xDD,0x04,0xF0, + 0x97,0xFF,0x04,0xF0,0x9B,0xFF,0xA8,0x79,0x00,0x28,0x0D,0xD0,0x03,0xF0,0x72,0xFE, + 0x03,0xF0,0x75,0xFE,0x03,0xF0,0x7D,0xFE,0x13,0x4D,0x01,0x20,0x68,0x60,0xFE,0xF7, + 0xC3,0xFE,0x12,0x48,0x68,0x60,0x03,0xE0,0x11,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0, + 0x04,0xF0,0x8B,0xFF,0x0E,0x48,0x06,0x70,0x06,0x4D,0x28,0x78,0x00,0x28,0x00,0xD1, + 0x5D,0xE7,0x04,0x48,0x00,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0,0x5B,0xFF,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0xF8,0x0A,0x00,0x20,0x80,0x78,0x00,0x00,0x00,0x40,0x00,0x30, + 0xF0,0x05,0x00,0x20,0x10,0x27,0x00,0x00,0x00,0x30,0x00,0x40,0xE1,0x04,0x00,0x00, + 0xAC,0x0B,0x00,0x20,0x10,0xB4,0x0F,0x4B,0x00,0x22,0xD2,0x43,0x81,0x00,0x5A,0x52, + 0xCB,0x18,0x5A,0x80,0x0B,0x4B,0x0B,0x4C,0x24,0x33,0x5A,0x52,0xCB,0x18,0x5A,0x80, + 0x00,0x23,0x42,0x00,0x1C,0x3C,0xA3,0x52,0x22,0x00,0x12,0x32,0x13,0x54,0x18,0x00, + 0x52,0x32,0x8A,0x18,0x81,0x00,0x53,0x52,0x51,0x18,0x40,0x1E,0x4B,0x80,0xF9,0xD5, + 0x10,0xBC,0x70,0x47,0xCA,0x0B,0x00,0x20,0x10,0xB5,0x0C,0x48,0x09,0x22,0x00,0x21, + 0x02,0xF0,0xF6,0xFF,0x0A,0x48,0x5A,0x22,0x00,0x21,0x02,0xF0,0xF1,0xFF,0x08,0x48, + 0x00,0x24,0x00,0x1F,0x04,0x70,0x07,0x48,0x28,0x22,0x21,0x00,0x02,0xF0,0xE8,0xFF, + 0x04,0x48,0x4E,0x38,0x44,0x75,0x10,0xBC,0x08,0xBC,0x18,0x47,0x6B,0x08,0x00,0x20, + 0x54,0x07,0x00,0x20,0x7E,0x0A,0x00,0x20,0x10,0xB5,0x17,0x48,0x12,0x22,0x00,0x21, + 0x02,0xF0,0xD6,0xFF,0x14,0x48,0x12,0x22,0x00,0x21,0x12,0x30,0x02,0xF0,0xD0,0xFF, + 0x11,0x48,0x09,0x22,0x00,0x21,0x44,0x30,0x02,0xF0,0xCA,0xFF,0x0E,0x48,0x20,0x22, + 0x00,0x21,0x24,0x30,0x02,0xF0,0xC4,0xFF,0x0B,0x48,0x10,0x22,0x00,0x21,0x52,0x30, + 0x02,0xF0,0xBE,0xFF,0x08,0x48,0x10,0x22,0x00,0x21,0x62,0x30,0x02,0xF0,0xB8,0xFF, + 0x05,0x49,0x00,0x20,0x74,0x31,0xC8,0x82,0xFF,0x39,0x41,0x39,0x08,0x71,0x88,0x83, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xBC,0x06,0x00,0x20,0xF0,0xB4,0x1E,0x49, + 0x1E,0x4E,0x8F,0x7B,0xF1,0x88,0x49,0x06,0x02,0xD4,0x1B,0x49,0xC0,0x39,0x8F,0x7A, + 0x08,0x21,0x00,0x24,0x42,0x00,0x0B,0x01,0x9B,0x19,0x15,0x25,0x9B,0x18,0x6D,0x01, + 0x5D,0x19,0xEC,0x82,0x0D,0x25,0xAD,0x01,0x5B,0x19,0x49,0x1E,0xDC,0x80,0xF2,0xD5, + 0x15,0x25,0x31,0x18,0x6D,0x01,0x01,0x23,0x4D,0x19,0xAB,0x73,0x0F,0x25,0x93,0x19, + 0xAD,0x01,0x5B,0x19,0xDC,0x82,0x1F,0x23,0x5B,0x01,0xC9,0x18,0x8F,0x71,0x8C,0x73, + 0x02,0x21,0x0D,0x01,0xAD,0x19,0xAD,0x18,0xED,0x18,0x49,0x1E,0xEC,0x82,0xF8,0xD5, + 0x80,0x00,0x82,0x19,0x00,0x21,0x21,0x20,0xC9,0x43,0x40,0x01,0x10,0x18,0xC1,0x80, + 0x01,0x81,0xF0,0xBC,0x70,0x47,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x10,0xB5,0x04,0x48,0x20,0x22,0x00,0x21,0x02,0xF0,0x62,0xFF,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x7E,0x08,0x00,0x20,0x10,0xB5,0x04,0xF0,0x03,0xFE,0x03,0xF0, + 0xF9,0xFD,0xFF,0xF7,0x59,0xFF,0x03,0xF0,0xF3,0xFE,0x01,0xF0,0xA7,0xFD,0x01,0xF0, + 0x21,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x10,0xB4,0x0D,0x4C,0x0B,0x4B,0xE4,0x88, + 0x1B,0x7F,0x64,0x06,0x02,0xD4,0x09,0x4B,0xC0,0x3B,0x1B,0x7E,0x04,0x1E,0x00,0xDC, + 0x44,0x42,0x9C,0x42,0x06,0xDD,0x98,0x42,0x01,0xDD,0xC8,0x1A,0x00,0xE0,0xC8,0x18, + 0x02,0x04,0x12,0x0C,0x10,0xBC,0x10,0x00,0x70,0x47,0x00,0x00,0x20,0x7A,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xF7,0xB5,0x62,0x48,0xCA,0xB0,0x00,0x7D,0x00,0x28,0x03,0xD0, + 0x01,0x20,0x47,0x90,0x00,0x20,0x02,0xE0,0x00,0x20,0x47,0x90,0x01,0x20,0x46,0x90, + 0x5C,0x48,0x00,0x26,0x49,0x90,0x5C,0x48,0x35,0x00,0x01,0x8B,0x04,0x91,0x41,0x8B, + 0x03,0x91,0x81,0x8A,0x02,0x91,0xC1,0x8A,0x01,0x91,0x80,0x8B,0x45,0x90,0x57,0x48, + 0x00,0x7A,0x48,0x96,0x00,0x90,0x6B,0xE0,0x00,0x24,0x64,0xE0,0x68,0x43,0x07,0x19, + 0x21,0x00,0x28,0x00,0x01,0xF0,0x80,0xF9,0x4D,0x49,0x20,0x39,0x0A,0x7D,0xD2,0x07, + 0x2D,0xD0,0x4F,0x4A,0x52,0x79,0x00,0x2A,0x00,0x9A,0x11,0xD0,0x95,0x42,0x26,0xD1, + 0x8A,0x7D,0xA2,0x42,0x1D,0xD0,0xCA,0x7D,0xA2,0x42,0x1A,0xD0,0x0A,0x7E,0xA2,0x42, + 0x17,0xD0,0x4A,0x7E,0xA2,0x42,0x14,0xD0,0x89,0x7E,0xA1,0x42,0x42,0xD1,0x10,0xE0, + 0x94,0x42,0x14,0xD1,0x8A,0x7D,0xAA,0x42,0x0B,0xD0,0xCA,0x7D,0xAA,0x42,0x08,0xD0, + 0x0A,0x7E,0xAA,0x42,0x05,0xD0,0x4A,0x7E,0xAA,0x42,0x02,0xD0,0x89,0x7E,0xA9,0x42, + 0x30,0xD1,0x04,0x99,0x03,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C,0x04,0xE0,0x02,0x99, + 0x01,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C,0x80,0x1A,0x49,0x9B,0x02,0x04,0xB8,0x00, + 0x18,0x58,0x4B,0x9B,0x12,0x0C,0x00,0x2B,0x02,0xD0,0x00,0x05,0x00,0x0D,0x01,0xE0, + 0x00,0x01,0x00,0x0D,0x4A,0x9B,0x05,0x2B,0x0E,0xD8,0x90,0x42,0x01,0xDA,0x47,0x9A, + 0x02,0xE0,0x88,0x42,0x0E,0xDD,0x46,0x9A,0x21,0x00,0x28,0x00,0x00,0xF0,0xAE,0xF8, + 0x05,0xA8,0x87,0x55,0x76,0x1C,0x05,0xE0,0x48,0x99,0x05,0xA8,0x47,0x54,0x48,0x98, + 0x40,0x1C,0x48,0x90,0x64,0x1C,0x22,0x49,0xC8,0x78,0x84,0x42,0x96,0xDB,0x6D,0x1C, + 0x1F,0x48,0x01,0x79,0x8D,0x42,0x8F,0xDB,0x4A,0x98,0x05,0x28,0x03,0xD9,0x00,0x04, + 0x48,0x9E,0x00,0x0C,0x45,0x90,0x00,0x2E,0x25,0xDD,0x4C,0x98,0x00,0x28,0x22,0xD1, + 0x00,0xF0,0x88,0xF9,0x00,0xF0,0xA8,0xF9,0x00,0xF0,0x56,0xFA,0x76,0x1E,0x14,0xD4, + 0x14,0x4C,0x05,0xAB,0x98,0x5D,0x82,0x00,0x49,0x98,0x80,0x58,0x01,0x05,0x45,0x98, + 0x09,0x0D,0x08,0x18,0x00,0x04,0x00,0x0C,0xA0,0x42,0x00,0xD9,0x20,0x00,0x00,0x04, + 0x08,0x43,0x49,0x99,0x76,0x1E,0x88,0x50,0xEC,0xD5,0x00,0xF0,0x63,0xF9,0x00,0xF0, + 0x8B,0xF9,0x00,0xF0,0x39,0xFA,0x4D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x20,0x78,0x00,0x00,0x00,0x02,0x10,0x40,0xE0,0x7A,0x00,0x00,0x70,0x0A,0x00,0x20, + 0xF8,0x0A,0x00,0x20,0xFF,0x0F,0x00,0x00,0xF8,0xB5,0x01,0x21,0x49,0x07,0x08,0x68, + 0x01,0x28,0x48,0xD1,0x40,0x07,0x41,0x68,0x88,0x01,0x85,0x0D,0x23,0x48,0x00,0x91, + 0x40,0x7B,0x8C,0x05,0xA4,0x0D,0x00,0x07,0x3A,0xD1,0x20,0x00,0x64,0x21,0x48,0x43, + 0x1F,0x49,0xFE,0xF7,0x7B,0xF9,0x1E,0x49,0x48,0x43,0x64,0x21,0xFE,0xF7,0x76,0xF9, + 0x07,0x00,0x28,0x00,0x64,0x21,0x48,0x43,0x1A,0x49,0x2D,0x37,0xFE,0xF7,0x6E,0xF9, + 0x18,0x49,0x48,0x43,0x64,0x21,0xFE,0xF7,0x69,0xF9,0x06,0x00,0x27,0x36,0x70,0x1B, + 0x01,0x00,0x41,0x43,0x38,0x1B,0x02,0x00,0x42,0x43,0x88,0x18,0x19,0x21,0x89,0x01, + 0x88,0x42,0x18,0xD8,0xB8,0x00,0x38,0x18,0x00,0x19,0x06,0x21,0xFE,0xF7,0x56,0xF9, + 0x84,0x05,0x00,0x98,0xA4,0x0D,0x80,0x0A,0x80,0x02,0x04,0x43,0x70,0x00,0x40,0x19, + 0x03,0x21,0xFE,0xF7,0x4B,0xF9,0x80,0x05,0x81,0x09,0x07,0x48,0x04,0x40,0x21,0x43, + 0x01,0x20,0x40,0x07,0x41,0x60,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xF8,0x0A,0x00,0x20, + 0xB0,0x22,0x00,0x00,0x58,0x1F,0x00,0x00,0xFF,0xFF,0x00,0xFC,0x30,0xB4,0x17,0x4D, + 0x15,0x4C,0x2D,0x78,0x68,0x43,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x09,0x0E, + 0x00,0x0A,0x00,0x2B,0x07,0xD0,0x00,0x2A,0x02,0xD0,0xC9,0x18,0xC0,0x18,0x0F,0xE0, + 0xC0,0x1A,0xC9,0x1A,0x0C,0xE0,0x00,0x2A,0x05,0xD0,0x88,0x42,0x01,0xDD,0x49,0x1C, + 0x06,0xE0,0x40,0x1C,0x04,0xE0,0x88,0x42,0x01,0xDD,0x40,0x1E,0x00,0xE0,0x49,0x1E, + 0x4A,0x1E,0xFF,0x2A,0x05,0xD2,0x42,0x1E,0xFF,0x2A,0x02,0xD2,0x00,0x02,0x08,0x43, + 0x60,0x53,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20, + 0xF0,0xB5,0x5A,0x48,0x8F,0xB0,0x06,0x78,0x59,0x48,0x5B,0x4A,0x05,0x96,0x07,0x78, + 0x58,0x48,0x06,0x97,0x0E,0x90,0x80,0x7E,0x0D,0x92,0xC1,0x07,0x09,0xD0,0x80,0x07, + 0x04,0xD5,0x70,0x1E,0x05,0x90,0x03,0x20,0x10,0x71,0x02,0xE0,0x7F,0x1E,0x00,0x21, + 0x11,0x71,0x52,0x48,0x0A,0x22,0x01,0x8C,0x51,0x43,0x09,0x04,0x09,0x0C,0x02,0x91, + 0x40,0x8C,0x50,0x43,0x00,0x04,0x00,0x0C,0x01,0x90,0x05,0x98,0x00,0x28,0x7E,0xD0, + 0x00,0x2F,0x7C,0xD0,0x41,0x00,0x02,0x98,0xFD,0xF7,0xFE,0xFF,0x05,0x04,0x2D,0x0C, + 0x00,0x24,0xB6,0x1C,0x0A,0xE0,0x02,0x98,0x05,0x99,0x60,0x43,0xFD,0xF7,0xF4,0xFF, + 0x43,0x4A,0x61,0x00,0x40,0x19,0x89,0x18,0x64,0x1C,0x08,0x84,0xB4,0x42,0xF2,0xDB, + 0x01,0x98,0x79,0x00,0xFD,0xF7,0xE8,0xFF,0x06,0x04,0x06,0x98,0x36,0x0C,0x00,0x24, + 0x80,0x1C,0x0C,0x90,0x0C,0xE0,0x01,0x98,0x39,0x00,0x60,0x43,0xFD,0xF7,0xDC,0xFF, + 0x37,0x4A,0x81,0x19,0x60,0x00,0x80,0x18,0x40,0x30,0x81,0x80,0x0C,0x98,0x64,0x1C, + 0x84,0x42,0xF0,0xDB,0x0E,0x98,0x80,0x7E,0xC0,0x07,0x53,0xD0,0x00,0x24,0x4D,0xE0, + 0x2F,0x4A,0x09,0x21,0x10,0x19,0xC9,0x01,0x40,0x18,0x41,0x7A,0x0E,0x98,0x80,0x7E, + 0x80,0x07,0x03,0xD5,0x05,0x98,0x03,0x95,0x04,0x91,0x02,0xE0,0x08,0x00,0x03,0xA9, + 0xC0,0xC1,0x27,0x49,0x40,0x00,0x40,0x18,0x0B,0x90,0x00,0x8C,0x0A,0x21,0x40,0x1B, + 0xFD,0xF7,0xB2,0xFF,0x22,0x4A,0xE1,0x00,0x89,0x18,0x11,0x22,0x92,0x01,0x0A,0x91, + 0x89,0x18,0x09,0x91,0x88,0x83,0x04,0x98,0x1D,0x49,0x40,0x00,0x40,0x18,0x40,0x30, + 0x08,0x90,0x80,0x88,0x0A,0x21,0x80,0x1B,0xFD,0xF7,0x9E,0xFF,0x09,0x99,0xC8,0x83, + 0x0B,0x98,0x0A,0x21,0x00,0x8C,0x40,0x19,0xFE,0xF7,0x70,0xF8,0x0A,0x99,0x23,0x22, + 0x52,0x01,0x89,0x18,0x07,0x91,0x08,0x80,0x08,0x98,0x0A,0x21,0x80,0x88,0x80,0x19, + 0xFE,0xF7,0x64,0xF8,0x07,0x99,0x48,0x80,0x03,0x98,0x40,0x00,0x00,0xE0,0x09,0xE0, + 0x0A,0x21,0xFE,0xF7,0x5B,0xF8,0x0D,0x99,0x64,0x1C,0xC8,0x80,0x0E,0x98,0xC0,0x7E, + 0xA0,0x42,0xAD,0xDC,0x0F,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0x30,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20,0x00,0x78,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x02,0x49,0x08,0x68,0x04,0x22,0x90,0x43,0x08,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x04,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x03,0x49,0xCA,0x69,0x01,0x23,0x5B,0x05,0x9A,0x43,0x02,0x43, + 0xCA,0x61,0x70,0x47,0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x49,0x08,0x49,0x00, + 0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x01,0x22,0x11,0x43, + 0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0x01,0x49,0xC8,0x68,0xC8,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x08,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x01,0x22,0x10,0xB5,0x08,0x49,0x09,0x48,0x52,0x02,0x02,0xF0, + 0xC4,0xFC,0x08,0x48,0x01,0x22,0xC0,0x8E,0x92,0x02,0x01,0x04,0x01,0x43,0x06,0x48, + 0x02,0xF0,0xCE,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x7E,0x00,0x00, + 0x00,0x00,0x10,0x40,0x00,0x78,0x00,0x00,0x00,0x02,0x10,0x40,0x02,0x48,0x81,0x6B, + 0x49,0x08,0x49,0x00,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x02,0x48,0x81,0x6B, + 0x01,0x22,0x11,0x43,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x10,0xB5,0x0A,0x49, + 0x0A,0x48,0xFC,0x22,0x02,0xF0,0x99,0xFC,0xFF,0x22,0x09,0x49,0x09,0x48,0xF1,0x32, + 0x02,0xF0,0x93,0xFC,0x01,0x22,0x08,0x49,0x08,0x48,0x52,0x02,0x02,0xF0,0x8D,0xFC, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x04,0x7B,0x00,0x00,0x04,0x90,0x00,0x40, + 0x00,0x7C,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x76,0x00,0x00,0x00,0x06,0x10,0x40, + 0x03,0x48,0x41,0x68,0x01,0x22,0x12,0x04,0x11,0x43,0x41,0x60,0x70,0x47,0x00,0x00, + 0x00,0xA0,0x00,0x40,0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x70,0xB5,0x1A,0x4C,0x20,0x68,0x40,0x08,0x40,0x00,0x20,0x60, + 0x18,0x48,0xA6,0x15,0x05,0x04,0x2D,0x0C,0x00,0x22,0x31,0x00,0x28,0x00,0xFD,0xF7, + 0xB5,0xFF,0x32,0x00,0x21,0x00,0x28,0x00,0x00,0x23,0xFD,0xF7,0xB7,0xFF,0x12,0x48, + 0x75,0x00,0x04,0x04,0x24,0x0C,0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0xA6,0xFF, + 0x0E,0x49,0x2A,0x00,0x20,0x00,0x00,0x23,0xFD,0xF7,0xA8,0xFF,0x0C,0x48,0x00,0x22, + 0x04,0x04,0x24,0x0C,0x29,0x00,0x20,0x00,0xFD,0xF7,0x98,0xFF,0x09,0x49,0x2A,0x00, + 0x20,0x00,0x00,0x23,0xFD,0xF7,0x9A,0xFF,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0x90,0x00,0x40,0x00,0x7B,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x00,0x76,0x00,0x00,0x00,0x06,0x10,0x40,0x04,0x48,0x10,0xB5,0xC1,0x68,0xC9,0x07, + 0xFC,0xD0,0xFE,0xF7,0x51,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40, + 0xF1,0xB5,0x55,0x4E,0x53,0x4B,0xF2,0x88,0x98,0x88,0x54,0x49,0x54,0x06,0x82,0xB0, + 0x00,0xD4,0x08,0x88,0x52,0x06,0x01,0x90,0x98,0x79,0x00,0xD4,0x88,0x78,0x37,0x00, + 0x00,0x25,0x01,0x00,0x41,0x43,0x08,0x06,0x00,0x0E,0x01,0x24,0xFF,0x37,0x61,0x37, + 0x00,0x90,0x11,0xE0,0x0A,0x20,0x60,0x43,0x43,0x21,0x80,0x19,0xC9,0x00,0x09,0x5C, + 0x00,0x29,0x08,0xD0,0x46,0x49,0x40,0x18,0x01,0xF0,0x88,0xF9,0x00,0x28,0x02,0xD0, + 0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x64,0x1C,0xB8,0x78,0xA0,0x42,0xEA,0xDA,0x41,0x49, + 0x08,0x00,0x20,0x30,0xCA,0x8B,0x43,0x88,0xD4,0x1A,0x00,0x2C,0x00,0xDC,0x9C,0x1A, + 0x22,0x04,0x03,0x88,0x84,0x88,0x12,0x0C,0x1F,0x1B,0x00,0x2F,0x00,0xDC,0xE7,0x1A, + 0x84,0x7A,0x3B,0x04,0x1B,0x0C,0x00,0x2C,0x04,0xD0,0x44,0x7B,0xC8,0x2C,0x01,0xD2, + 0x64,0x1C,0x44,0x73,0x8C,0x7B,0x14,0x2C,0x04,0xD2,0x0C,0x7C,0x00,0x2C,0x01,0xD0, + 0x01,0x24,0x4C,0x74,0x14,0x2A,0x01,0xD8,0x14,0x2B,0x04,0xD9,0xCC,0x7B,0xC8,0x2C, + 0x01,0xD2,0x64,0x1C,0xCC,0x73,0x02,0x2D,0x09,0xD2,0x14,0x2A,0x07,0xD2,0x14,0x2B, + 0x05,0xD2,0x08,0x24,0x04,0x5F,0x04,0x2C,0x07,0xDA,0x64,0x1C,0x04,0xE0,0x08,0x24, + 0x04,0x5F,0xE7,0x1C,0x01,0xDD,0x64,0x1E,0x04,0x81,0x44,0x7B,0x01,0x2C,0x01,0xD9, + 0x78,0x21,0x10,0xE0,0x02,0x2D,0x0F,0xD2,0x08,0x24,0x04,0x5F,0x02,0x2C,0x0B,0xDD, + 0xC9,0x7B,0x14,0x29,0x08,0xD2,0x51,0x3A,0x8B,0x2A,0x02,0xD3,0x51,0x3B,0x8B,0x2B, + 0x02,0xD2,0x77,0x21,0xC9,0x43,0xC1,0x80,0x00,0x21,0x02,0x2D,0x01,0x73,0x0E,0xD2, + 0x06,0x21,0x41,0x5E,0x78,0x31,0x04,0xD1,0xC1,0x7A,0xC8,0x29,0x01,0xD2,0x49,0x1C, + 0xC1,0x72,0xC1,0x7A,0x49,0x1E,0x02,0x29,0x01,0xD2,0x01,0x21,0x01,0x73,0x06,0x21, + 0x41,0x5E,0x01,0x98,0x09,0x18,0x08,0x00,0x48,0x43,0x02,0x99,0x00,0x29,0x05,0xD1, + 0x31,0x79,0x01,0x29,0x02,0xD0,0x00,0x99,0xFD,0xF7,0xDE,0xFD,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00, + 0x1E,0x02,0x00,0x00,0x70,0x08,0x00,0x20,0xFF,0x21,0x03,0x31,0x08,0x00,0x49,0x1E, + 0x00,0x28,0xFB,0xD1,0x70,0x47,0x15,0x21,0x08,0x00,0x49,0x1E,0x00,0x28,0xFB,0xD1, + 0x70,0x47,0x00,0x00,0x02,0x48,0x41,0x6B,0x01,0x22,0x11,0x43,0x41,0x63,0x70,0x47, + 0x00,0x70,0x00,0x40,0x70,0x47,0x00,0x00,0xFE,0xB5,0x1E,0x4A,0x1C,0x48,0xD1,0x88, + 0x00,0x25,0x00,0x7A,0x2E,0x00,0x2F,0x00,0x49,0x06,0x02,0xD4,0x18,0x48,0xC0,0x38, + 0x00,0x79,0x19,0x49,0x89,0x8A,0x40,0x18,0x01,0x06,0x18,0x48,0x09,0x0E,0x00,0x78, + 0x00,0x28,0x01,0x90,0x21,0xD0,0x01,0x24,0x49,0x1C,0x00,0x91,0x13,0xE0,0x0A,0x20, + 0x60,0x43,0x10,0x49,0x40,0x18,0xFF,0x30,0x61,0x30,0x80,0x7A,0x14,0x28,0x01,0xD2, + 0x01,0x26,0x07,0xE0,0x01,0x27,0x14,0x21,0xFD,0xF7,0x68,0xFE,0x00,0x99,0x88,0x42, + 0x00,0xD3,0x01,0x25,0x64,0x1C,0x01,0x98,0xA0,0x42,0xE8,0xDA,0x00,0x2F,0x02,0xD1, + 0x00,0x2E,0x00,0xD0,0x02,0x25,0x28,0x06,0x00,0x0E,0xFE,0xBC,0x08,0xBC,0x18,0x47, + 0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0xD0,0x0A,0x00,0x20,0x50,0x07,0x00,0x20, + 0x13,0x48,0x10,0xB5,0xC0,0x68,0x00,0x28,0x1F,0xD0,0x01,0x06,0x09,0x0F,0x03,0x29, + 0x01,0xD0,0x04,0x29,0x02,0xD1,0x00,0xF0,0xF1,0xF8,0x08,0xE0,0xF0,0x21,0x01,0x40, + 0x20,0x29,0x02,0xD2,0x00,0xF0,0x1A,0xF8,0x01,0xE0,0x03,0xF0,0x85,0xFA,0x09,0x48, + 0x82,0x68,0x81,0x15,0x8A,0x43,0x82,0x60,0x82,0x68,0x0A,0x43,0x82,0x60,0x06,0x48, + 0x00,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0,0x15,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x40,0xF8,0x0A,0x00,0x20,0xF1,0xB5,0x61,0x48, + 0x2E,0x21,0x90,0xB0,0x41,0x60,0x41,0x69,0x89,0x06,0xFC,0xD4,0x10,0x99,0x01,0x26, + 0x76,0x07,0xF1,0x63,0x84,0x69,0x5B,0x48,0x40,0x68,0x80,0x07,0xFB,0xD5,0x03,0xF0, + 0x5B,0xFA,0x59,0x4D,0x28,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0,0xFB,0xF9,0x10,0x9B, + 0x00,0x21,0x01,0x20,0x9B,0x1E,0xFF,0x27,0x4A,0x1E,0x40,0x03,0x04,0xF0,0x34,0xFA, + 0x1E,0x16,0x40,0x40,0x40,0x40,0x13,0x40,0x40,0x42,0x10,0x40,0x40,0x58,0x40,0x40, + 0x4F,0x68,0x6F,0x76,0x7D,0x85,0x40,0x8C,0x93,0x4F,0x40,0x40,0x40,0x40,0x9A,0x40, + 0x0B,0x20,0xF0,0x63,0x4D,0xE0,0x00,0xF0,0x19,0xF9,0x29,0xE0,0x03,0x21,0x09,0x07, + 0xCA,0x60,0xFE,0xF7,0x21,0xF9,0x00,0xF0,0x45,0xFE,0x44,0x48,0x44,0x4A,0x41,0x68, + 0x52,0x68,0x91,0x42,0x1C,0xD0,0x43,0x49,0x17,0x22,0xC9,0x8B,0x52,0x01,0x80,0x18, + 0x49,0x1C,0xC1,0x83,0xFD,0xF7,0x5E,0xFA,0xA8,0x78,0xC0,0x07,0x01,0xD0,0xFF,0xF7, + 0x21,0xFE,0xA8,0x78,0x80,0x07,0x01,0xD5,0x04,0xF0,0x72,0xF9,0x3A,0x49,0x40,0x22, + 0x68,0x46,0x02,0xF0,0x82,0xFA,0x01,0x20,0x08,0x90,0x68,0x46,0x04,0xF0,0x80,0xF9, + 0xF7,0x63,0x1E,0xE0,0x32,0x48,0xA0,0x30,0x00,0x7E,0x00,0x28,0xF8,0xD0,0x00,0x2C, + 0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x04,0xF0,0x0A,0xF8,0xF0,0xE7,0x03,0x21, + 0x09,0x07,0xCA,0x60,0xFE,0xF7,0xE8,0xF8,0x10,0x98,0xFE,0xF7,0x3B,0xF8,0x08,0xE0, + 0x03,0x21,0x09,0x07,0xCA,0x60,0xFE,0xF7,0xDF,0xF8,0x00,0xF0,0x83,0xFD,0x00,0xF0, + 0xEF,0xF8,0x20,0x48,0x41,0x68,0x41,0x60,0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x2C,0x02,0xD0,0x01,0x20,0xA8,0x71,0xD2,0xE7,0xA9,0x71,0xD0,0xE7,0x00,0x2C, + 0x02,0xD0,0x01,0x20,0xE8,0x71,0xCB,0xE7,0xE9,0x71,0xC9,0xE7,0x00,0x2C,0x02,0xD0, + 0x01,0x20,0x28,0x72,0xC4,0xE7,0x29,0x72,0xC2,0xE7,0x00,0x2C,0x03,0xD0,0x20,0x0C, + 0x6C,0x72,0x28,0x82,0xBC,0xE7,0x69,0x72,0xBA,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20, + 0xA8,0x72,0xB5,0xE7,0xA9,0x72,0xB3,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xE8,0x72, + 0xAE,0xE7,0xE9,0x72,0xAC,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x73,0xA7,0xE7, + 0x29,0x73,0xA5,0xE7,0x00,0x2C,0x01,0xD0,0x6C,0x73,0x00,0xE0,0x69,0x73,0x03,0xF0, + 0x15,0xFE,0x9D,0xE7,0x00,0x40,0x00,0x30,0xF8,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20, + 0x00,0x78,0x00,0x00,0xE0,0x7A,0x00,0x00,0xC0,0x75,0x00,0x00,0xF0,0xB5,0x38,0x4F, + 0x35,0x4C,0xF9,0x78,0x03,0x00,0x35,0x4A,0x0E,0x04,0x39,0x79,0x35,0x48,0x25,0x68, + 0x0E,0x43,0x35,0x49,0x30,0x3B,0x04,0xF0,0x77,0xF9,0x12,0x0A,0x0C,0x0E,0x12,0x16, + 0x1A,0x1C,0x18,0x1E,0x20,0x30,0x3B,0x16,0x3E,0x43,0x48,0x4E,0x51,0x0A,0xCD,0x61, + 0x21,0xE0,0x60,0x68,0x01,0xE0,0x2D,0x48,0xC0,0x6B,0xC8,0x61,0x1B,0xE0,0x10,0x8C, + 0x52,0x8C,0x00,0x04,0x35,0xE0,0xCE,0x61,0x15,0xE0,0xE0,0x68,0xF5,0xE7,0x50,0x68, + 0xF3,0xE7,0xA0,0x68,0xF1,0xE7,0xD0,0x7B,0xEF,0xE7,0x25,0x48,0x03,0x7A,0x10,0x7D, + 0x52,0x7D,0xC4,0x07,0xE4,0x09,0x80,0x07,0x12,0x04,0xC0,0x0F,0x00,0x02,0x23,0x43, + 0x02,0x43,0x13,0x43,0xCB,0x61,0x5F,0x22,0x22,0xE0,0x93,0x7D,0x50,0x7E,0x1B,0x06, + 0x18,0x43,0xD3,0x7D,0x12,0x7E,0x1B,0x04,0x12,0x02,0x13,0x43,0x18,0x43,0xD4,0xE7, + 0x90,0x7E,0x00,0x06,0xD1,0xE7,0x17,0x48,0x00,0x69,0xC0,0x07,0xC0,0x0F,0xCC,0xE7, + 0x00,0x69,0xFA,0x89,0x40,0x08,0x00,0x02,0x03,0xE0,0x13,0x48,0xA2,0x69,0xC0,0x8B, + 0x00,0x04,0x10,0x43,0xC1,0xE7,0x00,0x69,0x40,0x08,0xBE,0xE7,0xB8,0x69,0xBC,0xE7, + 0x48,0x69,0x10,0x42,0xFC,0xD1,0x03,0xF0,0x37,0xF9,0xFF,0x20,0x01,0x21,0x49,0x07, + 0xC8,0x63,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xC0,0x75,0x00,0x00,0x00,0x78,0x00,0x00, + 0xF8,0x0A,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x30,0xC0,0x0F,0x00,0x20, + 0x70,0x0A,0x00,0x20,0x00,0x7B,0x00,0x00,0xE0,0x7A,0x00,0x00,0x70,0xB5,0x03,0x24, + 0x24,0x07,0xE5,0x68,0x00,0x20,0xC0,0x43,0xE0,0x60,0xFE,0xF7,0x23,0xF8,0x06,0x00, + 0xCB,0x20,0xC0,0x01,0xFE,0xF7,0x00,0xF8,0x02,0xF0,0xDA,0xFF,0x01,0x20,0x40,0x05, + 0xFF,0xF7,0x88,0xFC,0x00,0xF0,0xBC,0xFC,0x00,0x20,0xFF,0xF7,0x83,0xFC,0x02,0xF0, + 0xC3,0xFF,0x30,0x00,0xFE,0xF7,0x22,0xF8,0xE5,0x60,0x70,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x20,0x03,0x21,0x10,0xB5,0xC0,0x43,0x09,0x07,0xC8,0x60,0x02,0xF0,0xC0,0xFF, + 0x00,0x20,0xFF,0xF7,0x6F,0xFC,0xFF,0xF7,0xED,0xFC,0x05,0x48,0xC1,0x68,0xC9,0x07, + 0xFC,0xD0,0x01,0x20,0x40,0x07,0x04,0xF0,0xCD,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x90,0x00,0x40,0xF8,0xB5,0x27,0x49,0x25,0x48,0xC9,0x88,0x00,0x8A,0x49,0x06, + 0x02,0xD4,0x23,0x48,0xC0,0x38,0x80,0x89,0xC0,0x06,0x3D,0xD5,0x22,0x4E,0x30,0x78, + 0x00,0x28,0x39,0xD0,0x70,0x78,0x00,0x28,0x36,0xD0,0x01,0x25,0x31,0xE0,0x0A,0x21, + 0x69,0x43,0x1C,0x4B,0x01,0x20,0xCC,0x18,0xFF,0x34,0x77,0x78,0x61,0x34,0x25,0xE0, + 0x0A,0x22,0x42,0x43,0xD2,0x18,0xFF,0x32,0xA1,0x32,0x21,0x79,0x92,0x7F,0x91,0x42, + 0x1B,0xD1,0x0A,0x22,0x50,0x43,0xC7,0x18,0xFF,0x37,0x06,0x21,0xC1,0x37,0x00,0x20, + 0x61,0x5E,0x38,0x5E,0x02,0x22,0xBA,0x5E,0x08,0x1A,0x08,0x21,0x61,0x5E,0x89,0x1A, + 0x00,0x91,0x3A,0x88,0xE1,0x88,0xFF,0xF7,0xD7,0xF9,0xE0,0x80,0x7A,0x88,0x21,0x89, + 0x00,0x98,0xFF,0xF7,0xD1,0xF9,0x20,0x81,0x02,0xE0,0x40,0x1C,0x87,0x42,0xD7,0xDA, + 0x6D,0x1C,0x30,0x78,0xA8,0x42,0xCA,0xDA,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xA0,0x79,0x00,0x00,0xF0,0x05,0x00,0x20,0x50,0x07,0x00,0x20,0xF0,0xB5,0x00,0x20, + 0xB1,0xB0,0x11,0x90,0x10,0x90,0x0F,0x90,0x0E,0x90,0xFA,0x48,0xFB,0x4D,0x01,0x8C, + 0xF9,0x4A,0x0B,0x91,0x40,0x8C,0xFA,0x49,0x0A,0x90,0xE8,0x88,0x13,0x7B,0x44,0x06, + 0x00,0xD4,0x0B,0x7A,0x54,0x7B,0x46,0x06,0x00,0xD4,0x4C,0x7A,0x46,0x06,0x09,0x94, + 0x94,0x7E,0x00,0xD4,0x8C,0x7D,0x46,0x06,0x08,0x94,0x54,0x7E,0x00,0xD4,0x4C,0x7D, + 0x07,0x94,0xEF,0x4C,0x40,0x34,0x24,0x8A,0x46,0x06,0x02,0xD4,0xEC,0x4C,0x80,0x3C, + 0xA4,0x89,0x24,0x07,0x42,0xD5,0xD4,0x7B,0x46,0x06,0x00,0xD4,0xCC,0x7A,0x5C,0x43, + 0x26,0x94,0x14,0x7C,0x46,0x06,0x00,0xD4,0x0C,0x7B,0x5C,0x43,0x25,0x94,0x54,0x7C, + 0x46,0x06,0x00,0xD4,0x4C,0x7B,0x5C,0x43,0x24,0x94,0x94,0x7C,0x46,0x06,0x00,0xD4, + 0x8C,0x7B,0x5C,0x43,0x23,0x94,0xD4,0x7C,0x46,0x06,0x00,0xD4,0xCC,0x7B,0x5C,0x43, + 0x22,0x94,0x14,0x7D,0x46,0x06,0x00,0xD4,0x0C,0x7C,0x5C,0x43,0x21,0x94,0x54,0x7D, + 0x46,0x06,0x00,0xD4,0x4C,0x7C,0x5C,0x43,0x20,0x94,0x94,0x7D,0x46,0x06,0x00,0xD4, + 0x8C,0x7C,0x5C,0x43,0x1F,0x94,0xD4,0x7D,0x46,0x06,0x00,0xD4,0xCC,0x7C,0x5C,0x43, + 0x1E,0x94,0x12,0x7E,0x40,0x06,0x00,0xD4,0x0A,0x7D,0xCE,0x48,0x5A,0x43,0x1D,0x92, + 0x30,0x90,0x00,0x78,0x00,0x28,0x05,0xD1,0x00,0xF0,0xF0,0xFE,0x31,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x20,0x27,0x90,0xC7,0x48,0x2F,0x90,0xC3,0x4D,0x27,0x98, + 0x13,0x21,0x28,0x18,0x49,0x01,0x2E,0x90,0x40,0x18,0x04,0x7F,0x00,0x2C,0x0F,0xD0, + 0x08,0x98,0x00,0x28,0x08,0xD1,0x0A,0x20,0x60,0x43,0x40,0x19,0xFF,0x30,0x6B,0x30, + 0x00,0xF0,0x04,0xFE,0x00,0x28,0x03,0xD0,0x2F,0x98,0x00,0x7B,0x00,0x28,0x03,0xD0, + 0x27,0x98,0xFF,0xF7,0xCB,0xF8,0xA0,0xE2,0x27,0x99,0x15,0x27,0x07,0x20,0x7F,0x01, + 0x4E,0x00,0x01,0x01,0x49,0x19,0x89,0x19,0xCA,0x19,0xD2,0x8A,0x0B,0x23,0x9B,0x01, + 0xCB,0x18,0xDA,0x80,0x0D,0x22,0x92,0x01,0x89,0x18,0xCA,0x88,0x40,0x1E,0xCA,0x82, + 0xEF,0xD5,0x0A,0x20,0x44,0x43,0x64,0x19,0x2D,0x94,0xFF,0x34,0x61,0x34,0xE1,0x88, + 0x0B,0x98,0x40,0x1E,0x81,0x42,0xDE,0xDC,0x21,0x89,0x0A,0x98,0x40,0x1E,0x81,0x42, + 0xD9,0xDC,0xA2,0x48,0xE1,0x88,0x35,0x18,0xE8,0x19,0x2C,0x90,0x0D,0x23,0xC1,0x82, + 0x21,0x89,0x9B,0x01,0xE8,0x18,0x2B,0x90,0xC1,0x80,0x00,0x20,0x01,0x21,0xC9,0x02, + 0x06,0x90,0x05,0x90,0x07,0x20,0x04,0x91,0x98,0x4A,0x03,0x01,0x9A,0x18,0x92,0x19, + 0x15,0x23,0x5B,0x01,0x94,0x46,0xD2,0x18,0x16,0x23,0xD3,0x5E,0x00,0x2B,0x07,0xDD, + 0x06,0x9F,0xBB,0x42,0x01,0xDD,0xD7,0x8A,0x06,0x97,0x8B,0x42,0x00,0xDA,0xD1,0x8A, + 0x0D,0x23,0x9B,0x01,0x62,0x46,0xD2,0x18,0x06,0x23,0xD3,0x5E,0x00,0x2B,0x09,0xDD, + 0x05,0x9F,0xBB,0x42,0x01,0xDD,0xD7,0x88,0x05,0x97,0x04,0x9F,0xBB,0x42,0x01,0xDA, + 0xD2,0x88,0x04,0x92,0x40,0x1E,0xD7,0xD5,0x06,0x98,0x40,0x1A,0xF0,0x28,0x04,0xDC, + 0x04,0x99,0x05,0x98,0x40,0x1A,0xF0,0x28,0x02,0xDD,0x2F,0x99,0x01,0x20,0x88,0x72, + 0x2E,0x98,0x15,0x21,0x49,0x01,0x40,0x18,0x2A,0x90,0x80,0x7B,0x01,0x28,0x1B,0xD9, + 0x2C,0x98,0x16,0x21,0x41,0x5E,0x0B,0x20,0x80,0x01,0x28,0x18,0x06,0x22,0x82,0x5E, + 0x88,0x1A,0x00,0x28,0x00,0xDC,0x50,0x1A,0x00,0x04,0x00,0x14,0x0D,0x90,0x2B,0x98, + 0x06,0x21,0x16,0x22,0x41,0x5E,0x82,0x5E,0x88,0x1A,0x00,0x28,0x00,0xDC,0x50,0x1A, + 0x00,0x04,0x00,0x14,0x0C,0x90,0x02,0xE0,0x64,0x20,0x0C,0x90,0x0D,0x90,0x0B,0x20, + 0x80,0x01,0x2F,0x18,0x2C,0x9A,0x06,0x21,0x16,0x20,0x79,0x5E,0x10,0x5E,0x02,0xF0, + 0x69,0xFF,0x13,0x90,0x2B,0x98,0x16,0x21,0x41,0x5E,0x02,0x00,0x06,0x20,0x10,0x5E, + 0x02,0xF0,0x60,0xFF,0x12,0x90,0x16,0x21,0x79,0x5E,0x13,0x98,0x02,0xF0,0x5A,0xFF, + 0x15,0x90,0x1B,0x20,0x40,0x01,0x28,0x18,0x06,0x21,0x29,0x90,0x41,0x5E,0x12,0x98, + 0x02,0xF0,0x50,0xFF,0x14,0x90,0x17,0x20,0x40,0x01,0x28,0x18,0x16,0x22,0x06,0x21, + 0x82,0x5E,0x41,0x5E,0x15,0x98,0x02,0xF0,0x47,0xFF,0x00,0x04,0x00,0x14,0x17,0x90, + 0x07,0x20,0xC0,0x01,0x2F,0x18,0x29,0x98,0x16,0x21,0x41,0x5E,0x06,0x22,0xBA,0x5E, + 0x14,0x98,0x02,0xF0,0x39,0xFF,0x00,0x04,0x00,0x14,0x16,0x90,0x03,0x20,0x00,0x02, + 0x28,0x18,0x16,0x22,0x06,0x21,0x82,0x5E,0x41,0x5E,0x17,0x98,0x02,0xF0,0x2C,0xFF, + 0x00,0x04,0x00,0x14,0x19,0x90,0x1D,0x20,0x40,0x01,0x28,0x18,0x28,0x90,0x06,0x22, + 0x82,0x5E,0x16,0x21,0x79,0x5E,0x16,0x98,0x02,0xF0,0x1E,0xFF,0x00,0x04,0x00,0x14, + 0x18,0x90,0x19,0x20,0x40,0x01,0x28,0x18,0x16,0x22,0x06,0x21,0x82,0x5E,0x41,0x5E, + 0x19,0x98,0x02,0xF0,0x11,0xFF,0x00,0x04,0x00,0x14,0x1B,0x90,0x0F,0x20,0x80,0x01, + 0x2F,0x18,0x28,0x98,0x16,0x21,0x41,0x5E,0x06,0x22,0xBA,0x5E,0x18,0x98,0x02,0xF0, + 0x03,0xFF,0x00,0x04,0x00,0x14,0x1A,0x90,0x0C,0x99,0x0D,0x98,0x00,0xF0,0x5A,0xFF, + 0x01,0x21,0x84,0x46,0x88,0x02,0x2D,0x4B,0x0A,0x01,0xD2,0x18,0x93,0x19,0x1F,0x22, + 0x52,0x01,0x9A,0x18,0xD2,0x8A,0x1B,0x18,0x49,0x1E,0xDA,0x80,0xF3,0xD5,0x1F,0x21, + 0x49,0x01,0x6A,0x18,0x60,0x46,0xD0,0x82,0x2E,0x9A,0x00,0x20,0x55,0x18,0xAA,0x7B, + 0x00,0x2A,0x94,0x46,0x0B,0xDB,0x21,0x4B,0x11,0x01,0xC9,0x18,0x1F,0x23,0x89,0x19, + 0x5B,0x01,0xCB,0x18,0x16,0x21,0x59,0x5E,0x08,0x18,0x52,0x1E,0xF3,0xD5,0x61,0x46, + 0x49,0x1C,0xFD,0xF7,0x99,0xF9,0x25,0x99,0x06,0x00,0x88,0x42,0x01,0xDC,0x01,0x20, + 0x0F,0xE0,0x23,0x98,0x86,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x21,0x98,0x86,0x42, + 0x01,0xDC,0x03,0x20,0x05,0xE0,0x1F,0x98,0x86,0x42,0x01,0xDC,0x04,0x20,0x00,0xE0, + 0x05,0x20,0xA9,0x79,0x40,0x1A,0x09,0x99,0x49,0x42,0x00,0x28,0x08,0xDD,0x16,0x20, + 0x38,0x5E,0x09,0x9B,0x98,0x42,0x01,0xD1,0x00,0x20,0x08,0xE0,0x40,0x1C,0x06,0xE0, + 0x00,0x28,0x0A,0x48,0x38,0x5E,0x13,0xDA,0x88,0x42,0xF5,0xD0,0x40,0x1E,0xF8,0x82, + 0x11,0xE0,0x00,0x00,0x00,0x78,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x60,0x79,0x00,0x00,0x50,0x07,0x00,0x20,0x90,0x08,0x00,0x20,0x16,0x00,0x00,0x00, + 0x00,0x28,0xEB,0xDC,0xE2,0xDB,0x16,0x20,0x38,0x5E,0x09,0x9B,0x98,0x42,0x05,0xD1, + 0xAB,0x79,0x05,0x2B,0x02,0xD2,0x5B,0x1C,0xAB,0x71,0x06,0xE0,0x88,0x42,0x04,0xD1, + 0xA8,0x79,0x01,0x28,0x01,0xD9,0x40,0x1E,0xA8,0x71,0x1A,0x99,0x1B,0x98,0x1C,0x91, + 0x2A,0x99,0x8F,0x7B,0x39,0x00,0xFD,0xF7,0x3F,0xF9,0x11,0x90,0x0F,0x90,0x1C,0x98, + 0x39,0x00,0xFD,0xF7,0x39,0xF9,0x10,0x90,0x0E,0x90,0xA8,0x79,0x01,0x28,0x27,0xD1, + 0x0E,0xAA,0x0F,0xA9,0x6B,0x46,0x06,0xC3,0x1A,0x9B,0x1B,0x9A,0x09,0x21,0x38,0x00, + 0x03,0xF0,0xDE,0xFA,0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0,0x2A,0x98,0x18,0x9B, + 0x80,0x7B,0x19,0x9A,0x07,0x21,0x03,0xF0,0xD3,0xFA,0x6B,0x46,0x38,0x22,0x3C,0x21, + 0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAF,0x07,0xC7,0x04,0x22, + 0x9A,0x5E,0x25,0x9B,0x00,0x92,0x2D,0x98,0x26,0x9A,0xFF,0x30,0x65,0x30,0x9A,0xE0, + 0x02,0x28,0x27,0xD1,0x0E,0xAA,0x0F,0xA9,0x6B,0x46,0x06,0xC3,0x18,0x9B,0x19,0x9A, + 0x07,0x21,0x38,0x00,0x03,0xF0,0xB4,0xFA,0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0, + 0x2A,0x98,0x16,0x9B,0x80,0x7B,0x17,0x9A,0x05,0x21,0x03,0xF0,0xA9,0xFA,0x6B,0x46, + 0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAF, + 0x07,0xC7,0x04,0x22,0x9A,0x5E,0x00,0x92,0x2D,0x98,0x23,0x9B,0xFF,0x30,0x24,0x9A, + 0x65,0x30,0x70,0xE0,0x03,0x28,0x27,0xD1,0x0E,0xAA,0x0F,0xA9,0x6B,0x46,0x06,0xC3, + 0x16,0x9B,0x17,0x9A,0x05,0x21,0x38,0x00,0x03,0xF0,0x8A,0xFA,0x10,0xAA,0x11,0xA9, + 0x68,0x46,0x06,0xC0,0x2A,0x98,0x14,0x9B,0x80,0x7B,0x15,0x9A,0x03,0x21,0x03,0xF0, + 0x7F,0xFA,0x6B,0x46,0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB, + 0x18,0x5E,0x01,0xAF,0x07,0xC7,0x04,0x22,0x9A,0x5E,0x21,0x9B,0x00,0x92,0x2D,0x98, + 0x22,0x9A,0xFF,0x30,0x65,0x30,0x46,0xE0,0x04,0x28,0x27,0xD1,0x0E,0xAA,0x0F,0xA9, + 0x68,0x46,0x06,0xC0,0x14,0x9B,0x15,0x9A,0x03,0x21,0x38,0x00,0x03,0xF0,0x60,0xFA, + 0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0,0x2A,0x98,0x12,0x9B,0x80,0x7B,0x13,0x9A, + 0x02,0x21,0x03,0xF0,0x55,0xFA,0x6B,0x46,0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E, + 0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAF,0x07,0xC7,0x04,0x22,0x9A,0x5E,0x1F,0x9B, + 0x00,0x92,0x2D,0x98,0x20,0x9A,0xFF,0x30,0x65,0x30,0x1C,0xE0,0x10,0xAA,0x11,0xA9, + 0x68,0x46,0x06,0xC0,0x12,0x9B,0x13,0x9A,0x02,0x21,0x38,0x00,0x03,0xF0,0x38,0xFA, + 0x10,0xAB,0x00,0x22,0x04,0x21,0x9A,0x5E,0x59,0x5E,0x2B,0x9B,0x06,0x20,0x18,0x5E, + 0x01,0xAB,0x07,0xC3,0x2C,0x98,0x16,0x22,0x82,0x5E,0x1D,0x9B,0x00,0x92,0x2D,0x98, + 0x1E,0x9A,0xFF,0x30,0x65,0x30,0x31,0x00,0x03,0xF0,0x36,0xFA,0x2A,0x98,0x3C,0x49, + 0x80,0x7B,0x09,0x28,0x02,0xD2,0x2A,0x9A,0x40,0x1C,0x90,0x73,0xA8,0x7B,0x02,0x28, + 0x01,0xD2,0x40,0x1C,0xA8,0x73,0x20,0x79,0x40,0x1E,0x80,0x00,0x41,0x18,0x21,0x20, + 0x40,0x01,0x0D,0x18,0x06,0x20,0x28,0x5E,0x00,0x28,0x22,0xDB,0x08,0x21,0x69,0x5E, + 0x00,0x29,0x1E,0xDB,0x07,0x99,0x64,0x22,0x56,0x1A,0x70,0x43,0x11,0x00,0xFD,0xF7, + 0x4B,0xF8,0x07,0x00,0xE0,0x88,0x07,0x99,0x48,0x43,0x64,0x21,0xFD,0xF7,0x1E,0xF9, + 0x38,0x18,0xE0,0x80,0x08,0x20,0x28,0x5E,0x64,0x21,0x70,0x43,0xFD,0xF7,0x3C,0xF8, + 0x06,0x00,0x20,0x89,0x07,0x99,0x48,0x43,0x64,0x21,0xFD,0xF7,0x0F,0xF9,0x30,0x18, + 0x20,0x81,0xE0,0x88,0xE8,0x80,0x20,0x89,0x28,0x81,0x27,0x98,0x40,0x1C,0x08,0x28, + 0x27,0x90,0x00,0xDA,0x3A,0xE5,0x30,0x98,0x01,0x78,0x1A,0x48,0x01,0x29,0x1F,0xD1, + 0x30,0x99,0x89,0x7B,0x4A,0x00,0x16,0x49,0x51,0x18,0x15,0x22,0x52,0x01,0x8A,0x18, + 0x92,0x8A,0xC2,0x83,0x0D,0x22,0x92,0x01,0x8A,0x18,0x94,0x88,0x2F,0x9B,0x1C,0x80, + 0x0B,0x23,0x9B,0x01,0xC9,0x18,0x8B,0x88,0x2F,0x99,0x4B,0x80,0x92,0x8A,0x2F,0x99, + 0x8A,0x80,0x30,0x99,0x09,0x8A,0xC1,0x82,0x30,0x99,0x49,0x8A,0x01,0x83,0x0D,0xE5, + 0x02,0x29,0xFC,0xD1,0x30,0x99,0x09,0x8A,0xC1,0x82,0x30,0x99,0x49,0x8A,0x01,0x83, + 0x30,0x99,0x49,0x8B,0x41,0x83,0x30,0x99,0x89,0x8B,0x81,0x83,0xFE,0xE4,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x70,0x08,0x00,0x20,0x14,0x20,0x9F,0xE5,0x01,0x10,0x81,0xE2, + 0x00,0x20,0xD2,0xE5,0x02,0x20,0x82,0xE2,0x91,0x02,0x20,0xE0,0x01,0x00,0x80,0xE2, + 0x1E,0xFF,0x2F,0xE1,0xFB,0x0A,0x00,0x20,0xF8,0xB5,0x1C,0x4B,0x1C,0x7D,0xDA,0x8E, + 0xE4,0x07,0x31,0xD0,0x1C,0x8F,0x1A,0x4B,0x1B,0x7A,0x9E,0x46,0x19,0x4B,0x1E,0x78, + 0x16,0x4B,0x9D,0x7D,0x00,0x2E,0x76,0x46,0xAC,0x46,0xDD,0x7D,0x00,0x95,0x1D,0x7E, + 0x5F,0x7E,0x9B,0x7E,0x12,0xD0,0xB0,0x42,0x1E,0xD1,0x8C,0x45,0x08,0xD0,0x00,0x98, + 0x88,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0,0x8F,0x42,0x01,0xD0,0x8B,0x42,0x03,0xD1, + 0x20,0x00,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0xFA,0xE7,0xB1,0x42,0x0B,0xD1, + 0x84,0x45,0xF5,0xD0,0x00,0x99,0x81,0x42,0xF2,0xD0,0x85,0x42,0xF0,0xD0,0x87,0x42, + 0xEE,0xD0,0x83,0x42,0xF0,0xD1,0xEB,0xE7,0x10,0x00,0xEA,0xE7,0x00,0x78,0x00,0x00, + 0x70,0x0A,0x00,0x20,0xFD,0x0A,0x00,0x20,0x78,0x47,0xC0,0x46,0x14,0x20,0x9F,0xE5, + 0x02,0x10,0x81,0xE2,0x00,0x20,0xD2,0xE5,0x04,0x20,0x82,0xE2,0x91,0x02,0x20,0xE0, + 0x02,0x00,0x80,0xE2,0x1E,0xFF,0x2F,0xE1,0xFB,0x0A,0x00,0x20,0xFE,0xB5,0x04,0x00, + 0x88,0x1A,0xC0,0x1A,0x0D,0x00,0x16,0x00,0x41,0x00,0x08,0x19,0x02,0x22,0x82,0x5E, + 0x1F,0x00,0x20,0x38,0x1E,0x23,0xC3,0x5E,0x61,0x5E,0x18,0x00,0x00,0xF0,0x16,0xFD, + 0x69,0x00,0x01,0x90,0x08,0x19,0x02,0x22,0x82,0x5E,0x20,0x38,0x1E,0x23,0xC3,0x5E, + 0x61,0x5E,0x18,0x00,0x00,0xF0,0x0A,0xFD,0x00,0x90,0xA8,0x19,0xC0,0x19,0x41,0x00, + 0x08,0x19,0x02,0x22,0x82,0x5E,0x20,0x38,0x1E,0x23,0xC3,0x5E,0x61,0x5E,0x18,0x00, + 0x00,0xF0,0xFC,0xFC,0x02,0x00,0x00,0x99,0x01,0x98,0x00,0xF0,0xF7,0xFC,0xFE,0xBC, + 0x08,0xBC,0x18,0x47,0x04,0x4B,0x03,0x4A,0x1B,0x78,0x58,0x43,0x40,0x18,0x40,0x00, + 0x10,0x5A,0x70,0x47,0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0x04,0x48,0x41,0x69, + 0x49,0x06,0x01,0xD5,0x10,0x20,0x70,0x47,0x40,0x69,0xC0,0x06,0xC0,0x0E,0x70,0x47, + 0x00,0x40,0x00,0x30,0x0D,0x49,0x01,0x20,0x10,0xB5,0x40,0x07,0x4A,0x69,0x92,0x06, + 0xFC,0xD4,0xCA,0x68,0x4B,0x68,0x4B,0x60,0x04,0xE0,0x4B,0x69,0x9B,0x06,0xFC,0xD4, + 0x8B,0x69,0x08,0xC0,0x52,0x1E,0xF8,0xD2,0x2E,0x20,0x48,0x60,0x48,0x68,0x80,0x07, + 0xFC,0xD5,0x02,0xF0,0x51,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30, + 0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9,0xB0,0x40,0x9F,0xE5,0x0C,0x00,0x94,0xE5, + 0x00,0x00,0x50,0xE3,0xFC,0xFF,0xFF,0x0A,0x04,0x00,0x94,0xE5,0x04,0x00,0x84,0xE5, + 0x04,0x00,0x94,0xE5,0x04,0x00,0x10,0xE3,0x10,0x00,0x00,0x0A,0x0C,0x00,0x94,0xE5, + 0x04,0x10,0x90,0xE4,0x1C,0x10,0x84,0xE5,0x02,0x12,0xA0,0xE3,0x38,0x10,0x91,0xE5, + 0x04,0x00,0x00,0xEA,0x04,0x20,0x90,0xE4,0x1C,0x20,0x84,0xE5,0x14,0x20,0x94,0xE5, + 0x40,0x00,0x12,0xE3,0xFC,0xFF,0xFF,0x1A,0x01,0x10,0x51,0xE2,0xF8,0xFF,0xFF,0x1A, + 0x14,0x00,0x94,0xE5,0x5F,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x1A,0x11,0x00,0x00,0xEA, + 0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3,0xE8,0xFF,0xFF,0x0A,0x14,0x00,0x94,0xE5, + 0x20,0x00,0x10,0xE3,0xE5,0xFF,0xFF,0x1A,0x0C,0x00,0x94,0xE5,0x08,0x00,0x50,0xE3, + 0x10,0x40,0xBD,0x08,0xFD,0x09,0x00,0x0A,0x14,0x10,0x94,0xE5,0x5F,0x00,0x11,0xE3, + 0x18,0x10,0x94,0x15,0x04,0x10,0x80,0x14,0xFA,0xFF,0xFF,0x1A,0x04,0x00,0x94,0xE5, + 0x02,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x0A,0xF4,0x09,0x00,0xEB,0xD2,0xFF,0xFF,0xEA, + 0x00,0x40,0x00,0x30,0xF8,0xB5,0x20,0x4E,0x20,0x4F,0x00,0x25,0x2C,0x00,0x78,0x69, + 0x80,0x06,0xFC,0xD4,0x78,0x68,0x78,0x60,0xF8,0x68,0x04,0x28,0x0E,0xD1,0x1C,0x48, + 0x40,0x21,0x04,0xE0,0x7A,0x69,0x92,0x06,0xFC,0xD4,0xBA,0x69,0x04,0xC0,0x49,0x1E, + 0xF8,0xD2,0x20,0x25,0x17,0x4C,0x30,0x78,0x01,0x21,0x06,0xE0,0x05,0x28,0x07,0xD1, + 0x15,0x48,0x16,0x4C,0x85,0x08,0x30,0x78,0x02,0x21,0x08,0x43,0x30,0x70,0x10,0xE0, + 0x03,0x28,0x0E,0xD1,0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0, + 0xBB,0xFB,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x78,0x69,0x80,0x06,0xFC,0xD4,0xB8,0x69, + 0x01,0xC4,0x6D,0x1E,0xF8,0xD2,0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5, + 0x02,0xF0,0xAA,0xFB,0xC3,0xE7,0x00,0x00,0xFA,0x0A,0x00,0x20,0x00,0x40,0x00,0x30, + 0x00,0x90,0x00,0x40,0x00,0xA0,0x00,0x40,0x00,0x03,0x00,0x00,0xC8,0x02,0x00,0x20, + 0x01,0x49,0x20,0x20,0x48,0x61,0x70,0x47,0x00,0x40,0x00,0x30,0xF8,0xB5,0x01,0x22, + 0x52,0x07,0x11,0x68,0x3D,0x48,0x01,0x29,0x80,0x7A,0x01,0xD1,0x01,0x25,0x03,0xE0, + 0x11,0x68,0x01,0x29,0x06,0xD9,0x02,0x25,0x00,0x28,0x0B,0xD0,0x00,0x21,0x25,0x27, + 0x7F,0x01,0x3B,0xE0,0x00,0x28,0x05,0xD1,0x34,0x48,0x09,0x22,0x00,0x21,0x08,0x38, + 0x01,0xF0,0xF6,0xFB,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x4A,0x19,0x00,0x24,0x92,0x00, + 0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x26,0xD0,0x01,0x20,0x93,0x00, + 0x1B,0x0F,0x2B,0x4E,0x36,0x18,0xF6,0x19,0x36,0x7E,0x9E,0x42,0x01,0xD1,0x04,0x00, + 0x02,0xE0,0x40,0x1C,0x08,0x28,0xF4,0xD9,0x00,0x2C,0x06,0xD0,0x0F,0x23,0x9B,0x06, + 0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43,0x0D,0xE0,0x21,0x4C,0x01,0x20,0x26,0x18, + 0xF6,0x19,0x36,0x7E,0x00,0x2E,0x03,0xD1,0x24,0x18,0xE4,0x19,0x23,0x76,0xED,0xE7, + 0x40,0x1C,0x08,0x28,0xF3,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07, + 0x02,0x68,0x8A,0x42,0xC9,0xD8,0x00,0x21,0x21,0xE0,0x4A,0x19,0x92,0x00,0x10,0x18, + 0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07,0x18,0xD1,0x11,0x4E,0x01,0x20,0x93,0x00, + 0x1C,0x0F,0x33,0x18,0xDB,0x19,0x1B,0x7E,0xA3,0x42,0x0A,0xD1,0x34,0x18,0x00,0x23, + 0xE4,0x19,0x23,0x76,0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43, + 0x02,0xE0,0x40,0x1C,0x08,0x28,0xEC,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20, + 0x40,0x07,0x02,0x68,0x8A,0x42,0xD8,0xD8,0x9C,0xE7,0x00,0x00,0xB0,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0x03,0x23,0x1B,0x07,0xDA,0x68,0x01,0x21,0x81,0x40,0x8A,0x43, + 0xDA,0x60,0x70,0x47,0x10,0xB4,0x0F,0x24,0x03,0x23,0x1B,0x07,0x1C,0x60,0x05,0x4C, + 0x60,0x63,0x19,0x61,0x9A,0x60,0x00,0x20,0xC0,0x43,0xD8,0x60,0x00,0x20,0x18,0x60, + 0x10,0xBC,0x70,0x47,0x40,0x00,0x00,0x30,0x03,0x4B,0x00,0xB5,0x82,0x00,0x99,0x50, + 0xFF,0xF7,0xE0,0xFF,0x08,0xBC,0x18,0x47,0x2C,0x0B,0x00,0x20,0xF0,0xB5,0x87,0xB0, + 0xFE,0xF7,0x8A,0xFB,0xFE,0xF7,0x68,0xFB,0x02,0xF0,0xCE,0xF9,0x00,0xF0,0xC8,0xFD, + 0x00,0xF0,0x74,0xFB,0xFD,0xF7,0xDA,0xFF,0xFD,0xF7,0x18,0xFA,0x48,0x49,0x47,0x48, + 0xC9,0x88,0x40,0x7F,0x49,0x06,0x02,0xD4,0x44,0x48,0xC0,0x38,0x40,0x7E,0x00,0x28, + 0x04,0xD1,0xFF,0xF7,0x43,0xFA,0xFF,0xF7,0xED,0xF9,0x03,0xE0,0xFF,0xF7,0xEA,0xF9, + 0xFF,0xF7,0x3C,0xFA,0x02,0xF0,0x5E,0xFC,0x02,0xF0,0xE2,0xFA,0x01,0x26,0x76,0x07, + 0x30,0x68,0x00,0x28,0x08,0xD0,0x70,0x68,0x80,0x0F,0x80,0x07,0x04,0xD5,0x37,0x68, + 0x02,0x24,0x7F,0x1C,0x25,0x00,0x3A,0xE0,0x01,0x24,0x27,0x00,0x25,0x00,0xA0,0x00, + 0x80,0x19,0x06,0x90,0x00,0x68,0x81,0x01,0x05,0x90,0x80,0x05,0x80,0x0D,0x03,0x90, + 0x30,0x48,0x89,0x0D,0x04,0x91,0x00,0x78,0x00,0x28,0x03,0xD1,0x03,0xA9,0x04,0xA8, + 0x02,0xF0,0x02,0xFB,0x2C,0x4B,0x00,0x21,0x58,0x8C,0x40,0x1E,0x02,0x04,0x12,0x0C, + 0x68,0x46,0x06,0xC0,0x18,0x8C,0x0A,0x00,0x03,0xA9,0x40,0x1E,0x03,0x04,0x1B,0x0C, + 0x04,0xA8,0x03,0xF0,0x61,0xFA,0x03,0xA9,0x04,0xA8,0x03,0xF0,0x35,0xF9,0x23,0x49, + 0x05,0x98,0x08,0x40,0x04,0x99,0x89,0x05,0x89,0x09,0x08,0x43,0x03,0x99,0x80,0x0A, + 0x80,0x02,0x89,0x05,0x89,0x0D,0x08,0x43,0x06,0x99,0x08,0x60,0x64,0x1C,0xBC,0x42, + 0xC5,0xD9,0x30,0x68,0xFC,0xF7,0x28,0xFF,0xFD,0xF7,0x0C,0xFE,0x30,0x68,0x18,0x49, + 0x88,0x72,0x88,0x7A,0x00,0x28,0x06,0xD1,0x15,0x48,0x20,0x22,0x00,0x21,0x0C,0x30, + 0x01,0xF0,0xE6,0xFA,0x10,0xE0,0x00,0x20,0x13,0x23,0x0D,0x4A,0x9B,0x01,0x08,0xE0, + 0x44,0x19,0xA4,0x00,0xA4,0x19,0x24,0x68,0x87,0x00,0xBF,0x18,0xFF,0x18,0x40,0x1C, + 0xFC,0x60,0x8C,0x7A,0x84,0x42,0xF3,0xD8,0xFF,0xF7,0xC0,0xFE,0xFC,0xF7,0x50,0xFE, + 0x03,0x48,0x40,0x79,0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x20,0x7A,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x03,0x0B,0x00,0x20,0x00,0x78,0x00,0x00,0xFF,0xFF,0x00,0xFC, + 0xB0,0x0A,0x00,0x20,0xF8,0xB5,0x02,0xF0,0x0B,0xF9,0xFE,0xF7,0xAB,0xFD,0xFE,0xF7, + 0x39,0xFE,0xFE,0xF7,0x81,0xFE,0x1A,0x48,0x00,0x21,0xC0,0x7F,0x03,0xF0,0x52,0xF8, + 0x18,0x4F,0x19,0x4D,0xFC,0x03,0x00,0x20,0x28,0x70,0xE8,0x61,0xE8,0x79,0x00,0x28, + 0x1A,0xD0,0x01,0x26,0x15,0xE0,0x78,0x68,0x00,0x07,0x12,0xD5,0xA6,0x63,0xF8,0x68, + 0x07,0x28,0x06,0xD1,0x02,0xF0,0x20,0xFA,0xFF,0xF7,0x00,0xF9,0xFF,0x20,0xE0,0x63, + 0x07,0xE0,0x0B,0x28,0x10,0xD1,0xE0,0x63,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0, + 0x13,0xFA,0xE0,0x6B,0x0B,0x28,0xE6,0xD1,0xFE,0xF7,0x98,0xF9,0x28,0x78,0x00,0x28, + 0xD9,0xD0,0x01,0xF0,0xEF,0xFE,0xD6,0xE7,0x78,0x68,0x80,0x07,0xFC,0xD5,0xEE,0xE7, + 0x00,0x78,0x00,0x00,0x00,0x40,0x00,0x30,0xF8,0x0A,0x00,0x20,0x70,0xB5,0x21,0x49, + 0x1F,0x4A,0xCB,0x88,0x05,0x00,0x10,0x7A,0x1F,0x49,0x5C,0x06,0x00,0xD4,0x08,0x79, + 0x1E,0x4C,0xA4,0x8A,0x00,0x19,0x06,0x06,0xD0,0x79,0x36,0x0E,0x5A,0x06,0x00,0xD4, + 0xC8,0x78,0x1B,0x49,0x2C,0x78,0x4A,0x7C,0x00,0x2A,0x0F,0xD1,0x8A,0x7C,0x00,0x2A, + 0x01,0xD0,0x80,0x1C,0x08,0xE0,0xCA,0x7C,0x00,0x2A,0x01,0xD0,0x00,0x1D,0x03,0xE0, + 0x09,0x7D,0x00,0x29,0x02,0xD0,0x80,0x1D,0x00,0x06,0x00,0x0E,0x00,0x2C,0x0A,0xD0, + 0x84,0x42,0x08,0xD3,0x14,0x21,0x20,0x00,0xFC,0xF7,0x80,0xFD,0x76,0x1C,0xB0,0x42, + 0x05,0xD2,0x14,0x2C,0x07,0xD3,0x00,0x20,0x70,0xBC,0x08,0xBC,0x18,0x47,0x14,0x2C, + 0x01,0xD3,0xF0,0x20,0x00,0xE0,0x13,0x20,0x28,0x70,0x01,0x20,0xF4,0xE7,0x00,0x00, + 0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00,0xD0,0x0A,0x00,0x20, + 0x70,0x08,0x00,0x20,0x10,0xB5,0x08,0x24,0x20,0x00,0xFE,0xF7,0x0B,0xFA,0x64,0x1E, + 0xFA,0xD5,0x05,0x48,0x01,0x22,0x41,0x7C,0x01,0x29,0x01,0xD8,0x00,0x29,0x00,0xD1, + 0x42,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x78,0x00,0x00,0x19,0x22,0x10,0xB5, + 0x06,0x48,0x52,0x01,0x00,0x21,0x01,0xF0,0x13,0xFA,0x51,0x22,0x04,0x48,0xD2,0x00, + 0x00,0x21,0x01,0xF0,0x0D,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47,0xC8,0x02,0x00,0x20, + 0x40,0x00,0x00,0x20,0x10,0xB5,0x40,0x22,0xD4,0x05,0x00,0x21,0x20,0x00,0x01,0xF0, + 0xFF,0xF9,0x01,0x20,0xA0,0x63,0x10,0xBC,0x08,0xBC,0x18,0x47,0x14,0x48,0x10,0xB5, + 0x44,0x08,0x14,0x49,0x14,0x48,0x62,0x00,0x01,0xF0,0xDE,0xF9,0x10,0x48,0xC0,0x07, + 0x08,0xD0,0x0F,0x48,0xC2,0x07,0x0F,0x48,0xD2,0x0F,0x01,0x19,0x0E,0x48,0x00,0x19, + 0x01,0xF0,0xCA,0xF9,0x0D,0x48,0x00,0x21,0x84,0x08,0x0D,0x48,0xA2,0x00,0x01,0xF0, + 0xE7,0xF9,0x0A,0x48,0x80,0x07,0x07,0xD0,0x08,0x48,0x00,0x21,0x82,0x07,0x08,0x48, + 0x92,0x0F,0x00,0x19,0x01,0xF0,0xD4,0xF9,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0x00,0x00,0x00,0x38,0x71,0x00,0x00,0xF0,0x05,0x00,0x20,0x46,0x06,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x33,0x21,0x09,0x05,0x01,0x20,0x80,0x07,0x41,0x62,0x04,0x49, + 0x81,0x62,0x04,0x48,0xFF,0x21,0xC1,0x60,0x00,0x21,0x41,0x61,0x70,0x47,0x00,0x00, + 0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x40,0x02,0x49,0x03,0x48,0x01,0x60,0x20,0x21, + 0x41,0x60,0x70,0x47,0xDE,0x10,0x01,0x00,0x00,0x40,0x00,0x30,0x10,0xB5,0x00,0x24, + 0x20,0x00,0xFE,0xF7,0xFB,0xF9,0x64,0x1C,0x08,0x2C,0xF9,0xDB,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x10,0xB5,0x01,0x24,0x64,0x03,0x20,0x00,0xFD,0xF7,0x0C,0xF8, + 0xFE,0xF7,0xC0,0xFC,0xFE,0xF7,0xEA,0xFC,0xFE,0xF7,0xB4,0xFC,0x07,0x48,0x01,0x68, + 0xF0,0x22,0x91,0x43,0x06,0x4A,0x12,0x7B,0x12,0x07,0x12,0x0E,0x11,0x43,0x01,0x60, + 0x20,0x00,0xFC,0xF7,0xF1,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xA0,0x00,0x40, + 0x00,0x78,0x00,0x00,0x10,0xB5,0x01,0xF0,0xB3,0xFF,0x01,0xF0,0x93,0xFF,0xFF,0x20, + 0xFD,0xF7,0x22,0xF8,0xFF,0xF7,0xAE,0xFF,0x11,0x48,0x80,0x22,0x00,0x21,0x01,0xF0, + 0x77,0xF9,0x08,0x20,0xFC,0xF7,0xE0,0xFF,0x00,0x22,0x0E,0x49,0xD2,0x43,0x00,0x20, + 0xFF,0xF7,0xE0,0xFD,0x00,0xF0,0x1A,0xF8,0x0B,0x48,0x40,0x7A,0x00,0x28,0x04,0xD0, + 0x40,0x20,0xFC,0xF7,0xD1,0xFF,0x00,0xF0,0x4D,0xF8,0x00,0xF0,0x37,0xF8,0x10,0x20, + 0x01,0xF0,0x81,0xFF,0xFE,0xF7,0xEE,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x2C,0x0B,0x00,0x20,0x02,0x03,0x0F,0x0F,0x00,0x78,0x00,0x00,0xF8,0xB5,0x03,0x24, + 0xE6,0x01,0x13,0x25,0x30,0x00,0xFC,0xF7,0xB7,0xFF,0x20,0x02,0xFC,0xF7,0xDE,0xFF, + 0x0C,0x48,0x0A,0x21,0x00,0x6B,0xFC,0xF7,0x71,0xFC,0x02,0x00,0xFF,0x21,0x90,0x31, + 0x02,0x20,0x00,0x23,0x00,0x95,0x02,0xF0,0x8B,0xFF,0x07,0x4A,0x27,0x21,0x03,0x20, + 0x00,0x23,0x00,0x94,0x02,0xF0,0x84,0xFF,0x30,0x00,0xFC,0xF7,0x95,0xFF,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0xE8,0xFD,0x00,0x00,0x10,0xB5,0x08,0x49, + 0x00,0x20,0xFF,0xF7,0xA9,0xFD,0x03,0xF0,0x68,0xF8,0x7D,0x20,0xC0,0x00,0x03,0xF0, + 0x57,0xF8,0x00,0x20,0xFF,0xF7,0x86,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x65,0x70,0x00,0x00,0x0A,0x48,0x10,0xB5,0x00,0x6B,0x0A,0x49,0x0A,0x4C,0x88,0x42, + 0x05,0xD9,0x7D,0x21,0xC9,0x00,0xFC,0xF7,0x39,0xFC,0x64,0x30,0x01,0xE0,0xFF,0x20, + 0xF5,0x30,0x20,0x63,0x03,0xF0,0x12,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0x78,0x00,0x00,0x07,0xA5,0x07,0x00,0xF8,0x0A,0x00,0x20,0x10,0xB5,0xFF,0xF7, + 0xD5,0xFE,0xFF,0xF7,0x43,0xFF,0x15,0x48,0x00,0x7A,0x02,0xF0,0x79,0xFE,0x13,0x48, + 0x13,0x4A,0xA0,0x30,0x41,0x89,0x00,0x24,0xD1,0x83,0x12,0x49,0x0C,0x60,0x4C,0x60, + 0x11,0x49,0xD2,0x88,0x49,0x79,0x52,0x06,0x02,0xD4,0x01,0x00,0xA0,0x31,0x49,0x78, + 0x0C,0x4A,0xC0,0x3A,0x51,0x73,0x09,0x49,0x80,0x31,0x0A,0x8B,0x09,0x49,0x40,0x39, + 0xCA,0x62,0x00,0x88,0x08,0x63,0xFF,0xF7,0x9D,0xFE,0x08,0x48,0xC4,0x83,0xFE,0xF7, + 0xF7,0xFA,0x07,0x48,0x04,0x70,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xF0,0x0A,0x00,0x20,0x00,0x7A,0x00,0x00,0x30,0x07,0x00,0x20, + 0xF9,0x0A,0x00,0x20,0xF7,0xB5,0x86,0xB0,0x00,0x27,0x2E,0x48,0x04,0xAB,0x02,0x97, + 0x03,0x97,0x81,0xC3,0x2C,0x4E,0xFE,0xF7,0xC7,0xFB,0xFE,0xF7,0x75,0xFC,0x2B,0x48, + 0x40,0x7F,0x01,0x90,0x29,0x48,0x20,0x38,0x40,0x7F,0x00,0x25,0x00,0x90,0x2A,0xE0, + 0x00,0x24,0x23,0xE0,0x21,0x00,0x28,0x00,0xFF,0xF7,0x16,0xFB,0x00,0x28,0x1C,0xD0, + 0x23,0x49,0x04,0x9A,0x09,0x78,0x69,0x43,0x09,0x19,0x89,0x00,0x51,0x58,0x09,0x05, + 0x09,0x0D,0x08,0x1A,0x01,0x1E,0x00,0xDC,0x41,0x42,0x00,0x28,0x01,0xDB,0x01,0x98, + 0x00,0xE0,0x00,0x98,0x81,0x42,0x01,0xDD,0x01,0x22,0x05,0x92,0x08,0x1A,0xB0,0x42, + 0x03,0xDD,0x06,0x00,0x27,0x00,0x02,0x95,0x03,0x91,0x64,0x1C,0x14,0x48,0x00,0x78, + 0x84,0x42,0xD7,0xD3,0x6D,0x1C,0x13,0x48,0x00,0x78,0x85,0x42,0xD0,0xD3,0x08,0x99, + 0x03,0x98,0x08,0x60,0x10,0x48,0x00,0x69,0xC0,0x07,0x05,0xD0,0x07,0x98,0x07,0x60, + 0x06,0x99,0x02,0x98,0x08,0x60,0x04,0xE0,0x07,0x99,0x02,0x98,0x08,0x60,0x06,0x98, + 0x07,0x60,0x05,0x98,0x00,0x28,0x00,0xD0,0x04,0x20,0x09,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0x02,0x10,0x40,0x78,0xEC,0xFF,0xFF,0x20,0x78,0x00,0x00, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0x00,0x90,0x00,0x40,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0xF0,0xB4,0x18,0x49,0x16,0x4F,0x88,0x7E,0xC0,0x07,0x26,0xD0, + 0x16,0x4B,0x17,0x4E,0x09,0x22,0x00,0x20,0xD2,0x01,0x1B,0x78,0xB2,0x18,0x1B,0xE0, + 0x09,0x25,0x34,0x18,0xED,0x01,0x64,0x19,0x8D,0x7E,0x64,0x7A,0xAD,0x07,0x03,0xD5, + 0x5C,0x43,0x15,0x7A,0x64,0x19,0x02,0xE0,0x15,0x7A,0x5D,0x43,0x2C,0x19,0xA4,0x00, + 0x3D,0x59,0x2C,0x01,0x2D,0x05,0x24,0x0D,0x2D,0x0D,0x2C,0x1B,0x00,0xD5,0x00,0x24, + 0x45,0x00,0xAD,0x19,0x40,0x1C,0x2C,0x82,0xCC,0x7E,0x84,0x42,0xE0,0xD8,0xF0,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x02,0x10,0x40,0x30,0x0A,0x00,0x20,0xFB,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0x88,0x42,0x00,0xDA,0x08,0x00,0x70,0x47,0x88,0x42,0x00,0xDA, + 0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00,0x70,0x47,0x10,0xB5,0x02,0x9C,0x88,0x42, + 0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00,0x22,0x00,0x19,0x00,0xFF,0xF7, + 0xED,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x02,0x00,0x08,0x00,0x8A,0x42,0x00,0xDC,0x10,0x00,0x70,0x47,0xF0,0xB5,0x00,0x20, + 0xFD,0xB0,0x6A,0x90,0xFF,0x49,0x20,0x22,0x1E,0xA8,0xFC,0xF7,0x09,0xFA,0xFF,0x4A, + 0xFD,0x4B,0xD0,0x88,0x9C,0x89,0xFE,0x49,0x45,0x06,0x00,0xD4,0x0C,0x89,0x9F,0x7C, + 0x43,0x06,0x00,0xD4,0x8F,0x7B,0xF8,0x49,0x20,0x39,0x7C,0x91,0x8E,0x8B,0x41,0x06, + 0xF8,0x48,0x7B,0x90,0x00,0xD4,0x06,0x8B,0xF7,0x48,0xFF,0x22,0x05,0x78,0xF7,0x48, + 0x01,0x32,0x00,0x78,0x00,0x21,0x1D,0x90,0x26,0xA8,0x00,0xF0,0xC1,0xFF,0xF4,0x48, + 0x08,0x22,0x00,0x21,0x00,0xF0,0xBC,0xFF,0xF1,0x48,0x10,0x22,0x00,0x21,0x08,0x30, + 0x00,0xF0,0xB6,0xFF,0x24,0x22,0x00,0x21,0x14,0xA8,0x00,0xF0,0xB1,0xFF,0x24,0x22, + 0x00,0x21,0x0B,0xA8,0x00,0xF0,0xAC,0xFF,0x24,0x22,0x00,0x21,0x02,0xA8,0x00,0xF0, + 0xA7,0xFF,0xE2,0x49,0x08,0x79,0x00,0x28,0x7E,0xD0,0xC8,0x88,0x7A,0x90,0x80,0x06, + 0x02,0xD5,0xE0,0x1B,0x04,0x04,0x24,0x0C,0xDC,0x48,0x64,0x21,0x00,0x89,0x07,0x00, + 0x60,0x43,0xFC,0xF7,0xF1,0xF9,0xDE,0x49,0x89,0x1C,0x79,0x91,0xD7,0x49,0xC9,0x89, + 0x40,0x18,0x79,0x99,0xC8,0x82,0xDB,0x48,0x00,0x21,0x78,0x90,0x01,0x81,0x7C,0x99, + 0x7A,0x9A,0x89,0x7F,0x38,0x00,0x52,0x06,0x01,0xD4,0x7B,0x99,0x89,0x7E,0x48,0x43, + 0x64,0x21,0xFC,0xF7,0xB3,0xFA,0x00,0x04,0x78,0x99,0x00,0x14,0xB0,0x42,0x48,0x81, + 0x01,0xDA,0x78,0x98,0x46,0x81,0x02,0x20,0x6E,0x90,0x1D,0x98,0x00,0x24,0x80,0x1C, + 0x75,0x90,0x6E,0x98,0x0A,0xE1,0x02,0x20,0x6F,0x90,0xA8,0x1C,0x76,0x90,0x6F,0x98, + 0xFA,0xE0,0x6E,0x99,0x28,0x1D,0x41,0x43,0x77,0x90,0x6F,0x98,0x08,0x18,0x43,0x00, + 0xC5,0x48,0x0A,0x21,0xC2,0x5E,0x78,0x98,0x41,0x5E,0x8A,0x42,0x03,0xDD,0x00,0x89, + 0x78,0x99,0x40,0x1C,0x08,0x81,0x79,0x9E,0x16,0x21,0x71,0x5E,0x00,0x20,0x8A,0x42, + 0x02,0xDD,0x50,0x1A,0x00,0x04,0x00,0x14,0x6F,0x9A,0x00,0x2A,0x09,0xD1,0x00,0x28, + 0x78,0xD0,0x6E,0x98,0x26,0xA9,0x80,0x1E,0x68,0x43,0x40,0x18,0x91,0x1E,0x40,0x5C, + 0x14,0xE0,0xB5,0x4A,0x9B,0x18,0x20,0x3B,0x1E,0x22,0x9A,0x5E,0x8A,0x42,0x03,0xDD, + 0x51,0x1A,0x09,0x04,0x09,0x14,0x65,0xD1,0x00,0x28,0xE9,0xD0,0x6E,0x98,0x26,0xA9, + 0x80,0x1E,0x68,0x43,0x41,0x18,0x6F,0x98,0x80,0x1E,0x08,0x5C,0x00,0x28,0xF2,0xD1, + 0x6F,0x98,0x00,0x04,0x00,0x14,0x00,0xE0,0x83,0xE1,0x6D,0x90,0x68,0x90,0x6E,0x98, + 0x64,0x1C,0x00,0x04,0x00,0x14,0x24,0x04,0x04,0x22,0x24,0x14,0x6C,0x90,0x08,0x2C, + 0x67,0x90,0x03,0xDD,0x64,0x1E,0x24,0x04,0x24,0x14,0xB3,0xE0,0x00,0x20,0x66,0x90, + 0x00,0x20,0x6B,0x90,0x66,0x98,0xFF,0x21,0x40,0x1C,0x00,0x04,0x00,0x14,0x01,0x31, + 0x88,0x42,0x66,0x90,0x36,0xDC,0x00,0x20,0x84,0x46,0x91,0x00,0x1E,0xAB,0xC8,0x18, + 0x40,0x88,0x59,0x5A,0x67,0x9E,0x68,0x9B,0x80,0x19,0xC9,0x18,0x00,0x04,0x09,0x04, + 0x00,0x14,0x09,0x14,0x02,0x28,0x26,0xDB,0x75,0x9B,0x98,0x42,0x23,0xDA,0x02,0x29, + 0x21,0xDB,0x76,0x9B,0x99,0x42,0x1E,0xDA,0x77,0x9B,0x8B,0x4E,0x43,0x43,0x5B,0x18, + 0x5B,0x00,0xF3,0x5E,0x79,0x9E,0x16,0x27,0xF7,0x5F,0xBB,0x42,0x13,0xDD,0x83,0x1E, + 0x6B,0x43,0x26,0xAE,0x9B,0x19,0x8E,0x1E,0x9B,0x57,0xA3,0x42,0x01,0xD0,0x00,0x2B, + 0x09,0xD1,0x6C,0x9B,0x98,0x42,0x02,0xD1,0x6D,0x9B,0x99,0x42,0x0B,0xD0,0x01,0x23, + 0x6B,0x93,0x08,0xE0,0x5D,0xE0,0x52,0x1C,0x63,0x46,0x5B,0x1C,0x52,0x07,0x52,0x0F, + 0x08,0x2B,0x9C,0x46,0xC1,0xDB,0x67,0x9B,0x26,0xAE,0x9B,0x1E,0x6B,0x43,0x9B,0x19, + 0x68,0x9E,0xB6,0x1E,0x9F,0x5D,0x00,0x2F,0x3E,0xD1,0x9C,0x55,0x77,0x9E,0x67,0x9B, + 0x79,0x9F,0x73,0x43,0x68,0x9E,0x9B,0x19,0x6F,0x4E,0x5B,0x00,0xF3,0x5E,0x16,0x26, + 0xBE,0x5F,0xB3,0x42,0x03,0xDD,0x9B,0x1B,0x1B,0x04,0x1B,0x0C,0x00,0xE0,0x00,0x23, + 0x69,0x93,0xA3,0x00,0x9C,0x46,0x14,0xAE,0xF3,0x58,0x68,0x9E,0x5F,0x4F,0x76,0x00, + 0xF6,0x19,0xB6,0x8B,0x69,0x9F,0x7E,0x43,0x9E,0x19,0x63,0x46,0x14,0xAF,0xFE,0x50, + 0x0B,0xAE,0xF3,0x58,0x67,0x9E,0x59,0x4F,0x76,0x00,0xF6,0x19,0x40,0x36,0x36,0x88, + 0x69,0x9F,0x7E,0x43,0x9E,0x19,0x63,0x46,0x0B,0xAF,0xFE,0x50,0x02,0xAF,0xFB,0x58, + 0x69,0x9E,0x9E,0x19,0x63,0x46,0xFE,0x50,0x50,0x4E,0x63,0x00,0x9B,0x19,0xFF,0x33, + 0x41,0x33,0xDE,0x88,0x76,0x1C,0xDE,0x80,0x6B,0x9B,0x00,0x2B,0x09,0xD0,0x00,0x06, + 0x00,0x0E,0x67,0x90,0x08,0x06,0x00,0x0E,0x52,0x1D,0x52,0x07,0x52,0x0F,0x68,0x90, + 0x5E,0xE7,0x6F,0x98,0x40,0x1C,0x6F,0x90,0x76,0x99,0x88,0x42,0x00,0xDA,0x00,0xE7, + 0x6A,0x98,0x00,0x28,0x06,0xD1,0x6E,0x98,0x40,0x1C,0x6E,0x90,0x75,0x99,0x88,0x42, + 0x00,0xDA,0xF0,0xE6,0x00,0x2C,0x74,0xDD,0x02,0x20,0x54,0xE0,0x02,0x20,0x69,0x1C, + 0x72,0x91,0x4C,0xE0,0x2B,0x1D,0x62,0x46,0x5A,0x43,0x12,0x18,0x79,0x9E,0x57,0x00, + 0x3D,0x4B,0x16,0x22,0xB2,0x5E,0xFE,0x18,0x02,0x23,0xF3,0x5E,0x00,0x21,0x93,0x42, + 0x02,0xDD,0x99,0x1A,0x09,0x04,0x09,0x14,0x62,0x46,0x92,0x1E,0x6A,0x43,0x26,0xAB, + 0xD2,0x18,0x83,0x1E,0x74,0x92,0xD3,0x56,0x01,0x93,0x43,0x1E,0x73,0x93,0xD2,0x56, + 0x00,0x2A,0x2A,0xD1,0x00,0x29,0x28,0xD0,0x01,0x9A,0x00,0x2A,0x25,0xD0,0x27,0x4F, + 0x46,0x00,0xF6,0x19,0xF6,0x8B,0x92,0x00,0x14,0xAB,0x4E,0x43,0x9B,0x58,0x9B,0x19, + 0x14,0xAE,0xB3,0x50,0x66,0x46,0x76,0x00,0xF6,0x19,0x40,0x36,0x36,0x88,0x0B,0xAB, + 0x9B,0x58,0x4E,0x43,0x9B,0x19,0x0B,0xAE,0xB3,0x50,0x02,0xAE,0xB3,0x58,0x59,0x18, + 0xB1,0x50,0x01,0x99,0x49,0x00,0xC9,0x19,0xFF,0x31,0x41,0x31,0xCA,0x88,0x52,0x1C, + 0xCA,0x80,0x73,0x9B,0x74,0x9A,0x01,0x99,0xD1,0x54,0x72,0x99,0x40,0x1C,0x88,0x42, + 0xB0,0xDB,0x60,0x46,0x40,0x1C,0x75,0x99,0x84,0x46,0x88,0x42,0xA6,0xDB,0x01,0x26, + 0x38,0xE0,0xB1,0x00,0x02,0xAA,0x71,0x91,0x57,0x58,0x01,0x20,0x00,0x2F,0x00,0xD0, + 0x38,0x00,0x01,0x00,0x71,0x98,0x14,0xAA,0x10,0x58,0xFC,0xF7,0x27,0xF9,0x07,0x49, + 0x72,0x00,0x51,0x18,0x70,0x91,0xFF,0x31,0x01,0x31,0xC8,0x83,0x01,0x21,0x00,0x2F, + 0x14,0xE0,0x21,0xE0,0xF0,0x70,0x00,0x00,0x00,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x40,0x79,0x00,0x00,0x20,0x79,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x2E,0x07,0x00,0x20,0x30,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20,0x00,0xD0,0x39,0x00, + 0x71,0x98,0x0B,0xAA,0x10,0x58,0xFC,0xF7,0x01,0xF9,0x70,0x99,0xFF,0x31,0x21,0x31, + 0x76,0x1C,0xC8,0x81,0xA6,0x42,0xC4,0xDD,0x14,0x4A,0x10,0x79,0x1F,0xE0,0x81,0x00, + 0x89,0x18,0xE0,0x31,0x0E,0x23,0xCB,0x5E,0x0C,0x24,0x0C,0x5F,0x6B,0x43,0x26,0xA9, + 0x09,0x19,0x59,0x5C,0x13,0x18,0x1C,0x00,0xFF,0x34,0x21,0x34,0x61,0x77,0x61,0x7F, + 0xFF,0x33,0x01,0x33,0x49,0x00,0x89,0x18,0xFF,0x31,0x41,0x31,0xC9,0x88,0x09,0x06, + 0x09,0x0E,0x19,0x74,0x93,0x8B,0x99,0x42,0x00,0xD9,0x91,0x83,0x40,0x1E,0x01,0x28, + 0xDD,0xDA,0x7D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xF0,0x05,0x00,0x20, + 0xF0,0xB5,0x00,0x20,0xE5,0xB0,0x40,0x90,0x31,0x90,0x0C,0x90,0xFF,0x48,0x64,0x90, + 0x02,0x8A,0xFF,0x49,0xC8,0x88,0x43,0x06,0x02,0xD4,0xFC,0x4A,0xC0,0x3A,0x92,0x89, + 0xFA,0x4D,0xFC,0x4C,0x20,0x35,0x0B,0x92,0xAA,0x89,0x43,0x06,0x00,0xD4,0x22,0x89, + 0xF9,0x4B,0x0A,0x92,0xF5,0x4A,0x40,0x32,0x63,0x92,0x52,0x89,0x46,0x06,0x62,0x93, + 0x00,0xD4,0xDA,0x88,0x43,0x06,0x09,0x92,0x63,0x9A,0x12,0x79,0x01,0xD4,0x62,0x9A, + 0x12,0x78,0x43,0x06,0x08,0x92,0x63,0x9A,0x52,0x79,0x01,0xD4,0x62,0x9A,0x52,0x78, + 0x43,0x06,0x07,0x92,0x63,0x9A,0x12,0x8B,0x01,0xD4,0x62,0x9A,0x92,0x8A,0x40,0x06, + 0x06,0x92,0x2F,0x89,0x00,0xD4,0xA7,0x88,0xE8,0x48,0x29,0x22,0x06,0x78,0xE8,0x48, + 0x00,0x78,0x05,0x90,0xE2,0x48,0xC0,0x89,0x04,0x90,0x01,0x20,0x03,0x90,0x00,0x20, + 0x01,0x00,0x01,0x90,0x0D,0xA8,0x00,0xF0,0x4B,0xFD,0xE2,0x48,0xDC,0x49,0x08,0x81, + 0xDB,0x48,0x00,0x21,0x81,0x81,0x41,0x81,0xC0,0x30,0x61,0x90,0x41,0x80,0xA0,0x30, + 0x60,0x90,0x40,0x78,0xDC,0x49,0x02,0x28,0x5F,0x91,0x4E,0xD9,0xD4,0x4A,0x69,0x8A, + 0xD2,0x88,0x52,0x06,0x00,0xD4,0xE1,0x89,0x34,0x91,0xD8,0x49,0x34,0x9A,0x5E,0x91, + 0x89,0x8B,0x89,0x18,0x35,0x91,0x0B,0x99,0xC9,0x04,0x25,0xD5,0x01,0x28,0x0C,0xD9, + 0xCB,0x4A,0xE9,0x7A,0xD2,0x88,0x52,0x06,0x00,0xD4,0xE1,0x79,0x48,0x43,0x00,0x06, + 0x00,0x0E,0x03,0x90,0x01,0xD1,0x01,0x20,0x03,0x90,0x61,0x99,0xC4,0x4A,0x00,0x20, + 0x08,0x5E,0xD2,0x88,0xA9,0x7A,0x52,0x06,0x00,0xD4,0xA1,0x79,0x48,0x43,0x64,0x21, + 0xFB,0xF7,0x6A,0xFF,0x00,0x04,0x00,0x0C,0xB8,0x42,0x00,0xD2,0x38,0x00,0x03,0x99, + 0xFC,0xF7,0x3C,0xF8,0x61,0x99,0x48,0x80,0xB9,0x49,0x63,0x98,0xC9,0x88,0x40,0x8B, + 0x49,0x06,0x01,0xD4,0x62,0x98,0xC0,0x8A,0x5F,0x99,0x89,0x8B,0x40,0x18,0x33,0x90, + 0x02,0x20,0x4B,0x90,0xB1,0x48,0xC0,0x30,0x5D,0x90,0xB7,0x48,0xA0,0x38,0x5C,0x90, + 0x05,0x98,0x80,0x1C,0x51,0x90,0x4B,0x98,0x92,0xE3,0x02,0x28,0x08,0xD1,0xAC,0x4A, + 0x29,0x8A,0xD2,0x88,0x52,0x06,0x00,0xD4,0xA1,0x89,0x5F,0x9A,0x52,0x8B,0x0E,0xE0, + 0xAF,0x49,0x09,0x78,0x00,0x29,0x02,0xD0,0xAE,0x49,0x89,0x89,0x05,0xE0,0xA4,0x4A, + 0xE9,0x89,0xD2,0x88,0x52,0x06,0x00,0xD4,0x61,0x89,0x5F,0x9A,0x12,0x8B,0x89,0x18, + 0x9A,0xE7,0x02,0x24,0xB0,0x1C,0x52,0x90,0x67,0xE3,0x4B,0x98,0x52,0x99,0x40,0x1E, + 0x48,0x43,0x61,0x1E,0x40,0x18,0x00,0x04,0x07,0x14,0xA3,0x49,0x78,0x00,0x5B,0x90, + 0x08,0x5E,0x35,0x99,0x09,0x04,0x09,0x14,0x88,0x42,0x7B,0xDB,0x78,0x1C,0xC1,0x10, + 0x0D,0xAA,0x52,0x5C,0x41,0x07,0x49,0x0F,0x01,0x20,0x88,0x40,0x02,0x40,0xF8,0x10, + 0x0D,0xA9,0x5A,0x90,0x09,0x5C,0x7B,0x07,0x5B,0x0F,0x01,0x20,0x98,0x40,0x01,0x40, + 0x59,0x90,0x78,0x1E,0xC3,0x10,0x0D,0xAD,0xEB,0x5C,0x45,0x07,0x6D,0x0F,0x01,0x20, + 0xA8,0x40,0x18,0x40,0x01,0xF0,0x30,0xFC,0x00,0x90,0xB8,0x1B,0x41,0x1E,0xCA,0x10, + 0x0D,0xAB,0x9A,0x5C,0x4B,0x07,0x5B,0x0F,0x01,0x21,0x99,0x40,0x0A,0x40,0x83,0x1E, + 0xD9,0x10,0x0D,0xAD,0x69,0x5C,0x5D,0x07,0x6D,0x0F,0x01,0x23,0xAB,0x40,0x19,0x40, + 0xC0,0x1E,0xC3,0x10,0x0D,0xAD,0xEB,0x5C,0x45,0x07,0x6D,0x0F,0x01,0x20,0xA8,0x40, + 0x18,0x40,0x01,0xF0,0x11,0xFC,0x00,0x99,0x01,0xF0,0x0C,0xFC,0x00,0x28,0x39,0xD1, + 0x7D,0x48,0x32,0x00,0x39,0x00,0x02,0x23,0xFE,0xF7,0x40,0xFF,0x35,0x99,0x88,0x42, + 0xB3,0xDB,0x79,0x4A,0x5B,0x99,0x51,0x5E,0x81,0x42,0xF0,0xD1,0x6C,0x4A,0x93,0x89, + 0x83,0x42,0x00,0xDA,0x90,0x81,0x5A,0x9B,0x0D,0xAD,0xEB,0x5C,0x59,0x9F,0x68,0x4A, + 0x3B,0x43,0x5A,0x9F,0xEB,0x55,0x92,0x89,0x82,0x42,0x05,0xD1,0x64,0x48,0x00,0x79, + 0x40,0x1C,0x00,0x06,0x00,0x0E,0x0C,0x90,0x00,0x20,0x05,0x00,0x02,0x90,0x5C,0x98, + 0x80,0x7E,0xC2,0x07,0x20,0xD0,0x80,0x07,0x0D,0xD5,0x30,0x1B,0x40,0x1C,0x00,0xD1, + 0x75,0x1E,0xA6,0x42,0x04,0xD1,0x01,0x22,0x30,0x04,0x52,0x04,0x80,0x1A,0x05,0x43, + 0x01,0x20,0x10,0xE0,0xA8,0xE0,0x4B,0x9A,0x05,0x98,0x80,0x1A,0x40,0x1C,0x01,0xD1, + 0x05,0x9D,0x6D,0x1E,0x05,0x98,0x90,0x42,0x04,0xD1,0x01,0x22,0x00,0x04,0x12,0x05, + 0x80,0x1A,0x05,0x43,0x02,0x20,0x02,0x90,0x28,0x04,0x04,0xD0,0x33,0x98,0x00,0x04, + 0x00,0x14,0x81,0x42,0xB4,0xDB,0x4B,0x99,0x30,0x1D,0x41,0x43,0x58,0x90,0x08,0x19, + 0x00,0x04,0x00,0x14,0x32,0x90,0x0B,0x98,0xC0,0x04,0x0B,0xD5,0x32,0x98,0x4F,0x49, + 0x40,0x00,0x08,0x5E,0x04,0x99,0x40,0x1A,0x7E,0xD4,0x61,0x9A,0x02,0x21,0x51,0x5E, + 0x81,0x42,0x79,0xDA,0x04,0x20,0x4C,0x90,0x20,0x18,0x57,0x90,0x4C,0x98,0x04,0x27, + 0x80,0x00,0x56,0x90,0x57,0x98,0x00,0x1F,0x0D,0xD4,0x57,0x98,0x00,0x1F,0xB0,0x42, + 0x09,0xDA,0x4B,0x98,0xC0,0x19,0x55,0x90,0x00,0x1F,0x04,0xD4,0x55,0x98,0x05,0x99, + 0x00,0x1F,0x88,0x42,0x07,0xDB,0x14,0x20,0x78,0x43,0x00,0x21,0x18,0xAA,0x80,0x18, + 0x56,0x9A,0x81,0x50,0x27,0xE0,0x04,0x98,0x0B,0x99,0x00,0x04,0x00,0x14,0xC9,0x04, + 0x04,0xD5,0x03,0x99,0xFB,0xF7,0x40,0xFE,0x00,0x04,0x00,0x14,0x55,0x99,0x58,0x9A, + 0x89,0x1E,0x51,0x43,0x57,0x9A,0x89,0x18,0x30,0x4A,0x49,0x00,0x89,0x18,0x20,0x39, + 0x89,0x8B,0x08,0x1A,0x00,0x04,0x00,0x14,0x00,0xD5,0x00,0x20,0x06,0x99,0x00,0x29, + 0x03,0xD0,0x88,0x42,0x01,0xDD,0x08,0x04,0x00,0x14,0x14,0x21,0x79,0x43,0x18,0xAA, + 0x89,0x18,0x56,0x9A,0x88,0x50,0x7F,0x1E,0x3F,0x04,0x3F,0x14,0xBA,0xD5,0x4C,0x98, + 0x40,0x1E,0x00,0x04,0x00,0x14,0x4C,0x90,0xAE,0xD5,0x32,0x98,0x1F,0x4A,0x40,0x00, + 0x84,0x46,0x80,0x18,0x01,0x00,0x20,0x39,0x1E,0x23,0xCB,0x5E,0x04,0x99,0x04,0x9F, + 0x59,0x1A,0x3F,0x91,0x02,0x21,0x41,0x5E,0x04,0x98,0x04,0x9B,0x08,0x1A,0x3E,0x90, + 0x32,0x98,0x18,0x21,0x80,0x1B,0x40,0x00,0x80,0x18,0x20,0x38,0x41,0x5E,0xC9,0x1A, + 0x3D,0x91,0x32,0x99,0x08,0x23,0x89,0x19,0x49,0x00,0x89,0x18,0xCB,0x5E,0xDB,0x1B, + 0x3C,0x93,0x16,0x23,0xC3,0x5E,0x1B,0xE0,0x35,0xE1,0x00,0x00,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x00,0x79,0x00,0x00,0x20,0x79,0x00,0x00,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0xFF,0x0F,0x00,0x00,0xD0,0x0A,0x00,0x20,0xF0,0x06,0x00,0x20, + 0x04,0x0B,0x00,0x20,0xA0,0x7A,0x00,0x00,0x40,0x00,0x00,0x20,0xC8,0x02,0x00,0x20, + 0xDB,0x1B,0x3B,0x93,0x06,0x23,0xCB,0x5E,0xDB,0x1B,0x3A,0x93,0x1A,0x23,0xC3,0x5E, + 0xD8,0x1B,0x39,0x90,0x0A,0x20,0x08,0x5E,0x0A,0x99,0xC0,0x1B,0x38,0x90,0x60,0x46, + 0x10,0x5E,0xC0,0x1B,0x48,0x43,0x64,0x21,0xFB,0xF7,0xBE,0xFD,0x36,0x90,0x25,0x98, + 0x02,0x04,0x12,0x14,0x00,0x92,0x23,0x98,0x03,0x04,0x20,0x98,0x1B,0x14,0x02,0x04, + 0x1F,0x98,0x12,0x14,0x01,0x04,0x1E,0x98,0x09,0x14,0x00,0x04,0x00,0x14,0xFF,0xF7, + 0x4C,0xFB,0x07,0x00,0x2A,0x98,0x02,0x04,0x29,0x98,0x12,0x14,0x01,0x04,0x28,0x98, + 0x09,0x14,0x00,0x04,0x00,0x14,0xFF,0xF7,0x39,0xFB,0x01,0x00,0x38,0x00,0xFF,0xF7, + 0x31,0xFB,0x24,0x99,0x7D,0x22,0x52,0x01,0x91,0x42,0x07,0xDD,0x81,0x42,0x05,0xDD, + 0x08,0x1A,0x51,0x10,0x88,0x42,0x01,0xDD,0x01,0x20,0x01,0x90,0xFB,0x48,0xFF,0x21, + 0xC0,0x88,0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06,0x01,0xD5,0x01,0x20,0x01,0x90, + 0xF7,0x48,0x00,0x78,0x00,0x28,0x47,0xD1,0x1F,0xA9,0x06,0xC9,0x02,0x2C,0x14,0xD1, + 0x01,0xF0,0xB2,0xFA,0x07,0x00,0x00,0x21,0x25,0x9A,0x08,0x00,0x01,0xF0,0xAC,0xFA, + 0x29,0xA9,0x06,0xC9,0x3F,0x18,0x00,0x20,0x01,0xF0,0xA6,0xFA,0x38,0x18,0x05,0x21, + 0xFB,0xF7,0x6A,0xFD,0x00,0x04,0x00,0x0C,0x13,0xE0,0x1E,0x98,0x01,0xF0,0x9C,0xFA, + 0x07,0x00,0x25,0x9A,0x23,0x98,0x00,0x21,0x01,0xF0,0x96,0xFA,0x3F,0x18,0x28,0xA8, + 0x07,0xC8,0x01,0xF0,0x91,0xFA,0x38,0x18,0xC1,0x17,0x49,0x0F,0x08,0x18,0x40,0x03, + 0x00,0x0C,0x24,0x99,0x09,0x1A,0x00,0x29,0x01,0xDC,0x24,0x99,0x41,0x1A,0x5D,0x98, + 0x02,0x8A,0xDA,0x48,0xC0,0x88,0x43,0x06,0x01,0xD4,0x64,0x9A,0x92,0x89,0x91,0x42, + 0x0A,0xDA,0x5D,0x99,0x24,0x9A,0x49,0x8A,0x40,0x06,0x01,0xD4,0x64,0x98,0xC1,0x89, + 0x8A,0x42,0x01,0xDA,0x28,0x04,0x7E,0xD0,0x00,0x2D,0x2B,0xD0,0x02,0x98,0xC0,0x07, + 0x16,0xD0,0x04,0x20,0x00,0x22,0x18,0xAB,0x29,0x04,0x06,0xD0,0x14,0x27,0x01,0x00, + 0x79,0x43,0x5A,0x50,0xC9,0x18,0x4A,0x60,0x05,0xE0,0x14,0x27,0x01,0x00,0x79,0x43, + 0xC9,0x18,0xCA,0x60,0x0A,0x61,0x40,0x1E,0x00,0x04,0x00,0x14,0xEC,0xD5,0x11,0xE0, + 0x04,0x20,0x00,0x22,0x18,0xAB,0x29,0x04,0x04,0xD0,0x81,0x00,0x5A,0x50,0xC9,0x18, + 0x4A,0x61,0x03,0xE0,0x81,0x00,0xC9,0x18,0xCA,0x63,0x0A,0x65,0x40,0x1E,0x00,0x04, + 0x00,0x14,0xF0,0xD5,0xBB,0x48,0x32,0x99,0x32,0x00,0x04,0x23,0xFE,0xF7,0x76,0xFD, + 0xB6,0x49,0x0A,0x89,0x82,0x42,0x00,0xDD,0x08,0x81,0x4A,0x89,0x82,0x42,0x00,0xDA, + 0x48,0x81,0xB2,0x48,0x01,0x79,0x49,0x1C,0x0A,0x06,0x12,0x0E,0x02,0x71,0x92,0x00, + 0xA1,0x1E,0x12,0x18,0xE0,0x32,0x54,0x91,0x91,0x81,0x4B,0x99,0x89,0x1E,0x53,0x91, + 0x02,0x79,0x92,0x00,0x10,0x18,0xE0,0x30,0xC1,0x81,0x00,0x20,0x07,0x00,0x01,0x00, + 0x84,0x46,0x37,0x90,0x36,0x9A,0x3F,0x98,0x90,0x42,0x05,0xDC,0x3B,0x98,0x90,0x42, + 0x02,0xDC,0x3A,0x98,0x90,0x42,0x01,0xDD,0x01,0x20,0x37,0x90,0x3E,0x98,0x90,0x42, + 0x05,0xDC,0x39,0x98,0x90,0x42,0x02,0xDC,0x38,0x98,0x90,0x42,0x01,0xDD,0x01,0x20, + 0x84,0x46,0x3D,0x98,0x90,0x42,0x05,0xDC,0x3B,0x98,0x90,0x42,0x02,0xDC,0x39,0x98, + 0x90,0x42,0x00,0xDD,0x01,0x27,0x3C,0x98,0x90,0x42,0x08,0xDC,0x3A,0x98,0x90,0x42, + 0x05,0xDC,0x38,0x9A,0x00,0xE0,0xF4,0xE0,0x36,0x98,0x82,0x42,0x00,0xDD,0x01,0x21, + 0x04,0x20,0x00,0x22,0x18,0xAD,0x37,0x9B,0x00,0x2B,0x02,0xD1,0x14,0x23,0x43,0x43, + 0xEA,0x50,0x63,0x46,0x00,0x2B,0x03,0xD1,0x14,0x23,0x43,0x43,0x5B,0x19,0x1A,0x61, + 0x00,0x2F,0x01,0xD1,0x83,0x00,0xEA,0x50,0x00,0x29,0x02,0xD1,0x83,0x00,0x5B,0x19, + 0x1A,0x65,0x40,0x1E,0x00,0x04,0x00,0x14,0xE5,0xD5,0x1C,0x9A,0x18,0xA8,0x00,0x92, + 0x0F,0xC8,0x01,0xF0,0xCC,0xF9,0x21,0x9A,0x48,0x90,0x1D,0xA8,0x00,0x92,0x0F,0xC8, + 0x01,0xF0,0xC5,0xF9,0x26,0x9A,0x47,0x90,0x22,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0, + 0xBE,0xF9,0x2B,0x9A,0x46,0x90,0x27,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xB7,0xF9, + 0x30,0x9A,0x45,0x90,0x2C,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xB0,0xF9,0x00,0x90, + 0x44,0x90,0x45,0x9B,0x46,0x9A,0x47,0x99,0x48,0x98,0x01,0xF0,0xA8,0xF9,0x00,0x28, + 0x49,0x90,0x0F,0xD1,0x04,0x27,0x14,0x20,0x78,0x43,0x40,0x19,0x0A,0x22,0x00,0x21, + 0x00,0xF0,0x06,0xFA,0x7F,0x1E,0x3F,0x04,0x3F,0x14,0xF4,0xD5,0x0A,0x20,0x46,0x90, + 0x24,0x90,0x49,0x90,0x54,0x98,0x00,0x28,0x01,0xDC,0x00,0x20,0x0C,0xE0,0x2C,0x9A, + 0x27,0x9B,0x00,0x92,0x22,0x9A,0x1D,0x99,0x18,0x98,0x01,0xF0,0x88,0xF9,0x5B,0x4A, + 0x61,0x00,0x89,0x18,0x49,0x8B,0x48,0x43,0x2D,0x9A,0x43,0x90,0x00,0x92,0x28,0x9B, + 0x23,0x9A,0x1E,0x99,0x19,0x98,0x01,0xF0,0x7A,0xF9,0x54,0x49,0x62,0x00,0x55,0x18, + 0xA9,0x8B,0x48,0x43,0x42,0x90,0x2E,0x9A,0x29,0x9B,0x00,0x92,0x24,0x9A,0x1F,0x99, + 0x1A,0x98,0x01,0xF0,0x6C,0xF9,0xE9,0x8B,0x2F,0x9A,0x2A,0x9B,0x48,0x43,0x41,0x90, + 0x00,0x92,0x25,0x9A,0x20,0x99,0x1B,0x98,0x01,0xF0,0x61,0xF9,0x29,0x8C,0x48,0x43, + 0x54,0x99,0x07,0x00,0x70,0x1E,0x81,0x42,0x01,0xDB,0x00,0x20,0x09,0xE0,0x30,0x9A, + 0x2B,0x9B,0x00,0x92,0x26,0x9A,0x21,0x99,0x1C,0x98,0x01,0xF0,0x50,0xF9,0x69,0x8C, + 0x48,0x43,0x00,0x90,0x41,0x9A,0x42,0x99,0x43,0x98,0x3B,0x00,0x01,0xF0,0x47,0xF9, + 0x49,0x99,0xFB,0xF7,0x09,0xFC,0x39,0x49,0x0A,0x8C,0x52,0x00,0x80,0x1A,0x00,0xD5, + 0x00,0x20,0x0A,0x79,0x52,0x00,0x52,0x18,0xC0,0x32,0x90,0x81,0x53,0x98,0x00,0x28, + 0x01,0xDC,0x00,0x20,0x05,0xE0,0x4B,0x98,0x48,0x9A,0x40,0x00,0x40,0x18,0xC0,0x8F, + 0x50,0x43,0x4B,0x9A,0x2D,0x49,0x52,0x00,0x52,0x18,0x40,0x32,0x11,0x88,0x47,0x9B, + 0x46,0x9D,0x59,0x43,0x53,0x88,0x05,0x9F,0x6B,0x43,0x9C,0x46,0x93,0x88,0x45,0x9D, + 0x7F,0x1E,0x6B,0x43,0x53,0x9D,0xBD,0x42,0x01,0xDB,0x00,0x22,0x02,0xE0,0xD2,0x88, + 0x44,0x9D,0x6A,0x43,0x00,0x92,0x62,0x46,0x01,0xF0,0x11,0xF9,0x49,0x99,0xFB,0xF7, + 0xD3,0xFB,0x1E,0x49,0x40,0x31,0x89,0x88,0x49,0x00,0x40,0x1A,0x00,0xD5,0x00,0x20, + 0x1A,0x49,0x0A,0x79,0x52,0x00,0x52,0x18,0xC0,0x32,0xD0,0x83,0x08,0x79,0x08,0x28, + 0x12,0xD2,0x64,0x1C,0x52,0x98,0x24,0x04,0x24,0x14,0x84,0x42,0x00,0xDA,0x94,0xE4, + 0x40,0x98,0x00,0x28,0x08,0xD1,0x4B,0x98,0x40,0x1C,0x00,0x04,0x00,0x14,0x4B,0x90, + 0x51,0x99,0x88,0x42,0x00,0xDA,0x84,0xE4,0x0B,0x98,0x00,0x06,0x63,0xD5,0x0B,0x4C, + 0x20,0x79,0x00,0x28,0x5E,0x98,0x17,0xD1,0x80,0x8B,0x00,0x28,0x54,0xD0,0x5E,0x98, + 0x63,0x99,0xE2,0x88,0x40,0x7E,0x09,0x7B,0x52,0x06,0x01,0xD4,0x62,0x99,0x09,0x7A, + 0x88,0x42,0x49,0xD2,0x5E,0x99,0x40,0x1C,0x48,0x76,0x4C,0xE0,0xF0,0x05,0x00,0x20, + 0x05,0x0B,0x00,0x20,0xC8,0x02,0x00,0x20,0x80,0x7E,0x08,0x99,0x88,0x42,0x37,0xD8, + 0x40,0x1C,0x5E,0x99,0x00,0x06,0x00,0x0E,0x88,0x76,0x07,0x99,0x88,0x42,0x03,0xD9, + 0xA1,0x89,0x31,0x9A,0x89,0x18,0x31,0x91,0x08,0x99,0x88,0x42,0x28,0xD1,0x07,0x99, + 0x88,0x42,0x25,0xD0,0x41,0x1A,0x31,0x98,0xFB,0xF7,0x50,0xFC,0x5E,0x9A,0x00,0x21, + 0x91,0x83,0x63,0x99,0x0A,0x89,0xE1,0x88,0x4B,0x06,0x01,0xD4,0x62,0x9A,0x92,0x88, + 0x82,0x42,0x15,0xD2,0x34,0x9A,0x80,0x1A,0x63,0x9A,0x49,0x06,0x92,0x79,0x01,0xD4, + 0x62,0x99,0x8A,0x78,0x64,0x21,0x50,0x43,0xFB,0xF7,0x38,0xFC,0x5E,0x99,0x00,0x04, + 0x00,0x0C,0x88,0x83,0x09,0x99,0x88,0x42,0x02,0xD9,0x08,0x00,0x5E,0x99,0x88,0x83, + 0x5E,0x98,0x00,0x21,0x41,0x76,0x06,0xE0,0x5E,0x99,0x00,0x20,0x88,0x76,0x5E,0x99, + 0x48,0x76,0x5E,0x99,0x88,0x83,0x00,0x20,0x84,0x46,0x4A,0x90,0x61,0x48,0x01,0x24, + 0x00,0x79,0x4E,0x90,0x52,0xE0,0x5F,0x48,0x61,0x00,0x0F,0x18,0xC0,0x37,0xB8,0x89, + 0x0A,0x21,0xFB,0xF7,0x13,0xFC,0x05,0x04,0xF8,0x8B,0x2D,0x14,0x0A,0x21,0xFB,0xF7, + 0x0D,0xFC,0x5C,0x99,0x02,0x04,0xC9,0x7E,0x12,0x14,0x00,0x20,0x84,0x46,0x4F,0x91, + 0x36,0xE0,0x54,0x49,0xC3,0x00,0x5B,0x18,0x11,0x21,0x89,0x01,0x59,0x18,0x1C,0x27, + 0x50,0x91,0xCF,0x5F,0xAF,0x42,0x27,0xDC,0x23,0x21,0x49,0x01,0x59,0x18,0x00,0x23, + 0xCB,0x5E,0xAB,0x42,0x20,0xDB,0x50,0x9F,0x1E,0x23,0xFB,0x5E,0x93,0x42,0x1B,0xDC, + 0x02,0x27,0xCF,0x5F,0x47,0x4B,0x97,0x42,0x16,0xDB,0xA1,0x00,0xC9,0x18,0xE0,0x31, + 0x0E,0x23,0xCB,0x5E,0x37,0x1D,0x9B,0x1C,0x7B,0x43,0x0C,0x27,0xCF,0x5F,0xD9,0x19, + 0x4B,0x00,0x41,0x49,0x5B,0x18,0x04,0x21,0x59,0x5E,0x4A,0x9B,0x99,0x42,0x03,0xDD, + 0x4A,0x91,0x21,0x06,0x09,0x0E,0x8C,0x46,0x40,0x1C,0x4F,0x99,0x00,0x04,0x00,0x14, + 0x81,0x42,0xC6,0xDC,0x64,0x1C,0x4E,0x98,0x24,0x04,0x24,0x14,0xA0,0x42,0xAA,0xDA, + 0x34,0x4D,0x4A,0x9A,0x2C,0x00,0x23,0x00,0x69,0x89,0x20,0x00,0xDE,0x33,0xCC,0x30, + 0xC2,0x34,0x91,0x42,0x4D,0x93,0x15,0xDC,0x61,0x46,0x00,0x29,0x12,0xD0,0x49,0x00, + 0x49,0x19,0xC0,0x31,0x8F,0x89,0xCE,0x8B,0x12,0x22,0x00,0x21,0x00,0xF0,0x78,0xF8, + 0x4D,0x98,0x12,0x22,0x00,0x21,0x00,0xF0,0x73,0xF8,0x01,0x20,0x28,0x71,0xA7,0x81, + 0xE6,0x83,0x1E,0xE0,0x69,0x79,0x00,0x29,0x1B,0xD1,0x4E,0x99,0x01,0x29,0x18,0xD9, + 0x60,0x99,0x89,0x78,0x00,0x29,0x14,0xD1,0x0C,0x99,0x00,0x29,0x11,0xD0,0x4A,0x00, + 0x51,0x19,0xC0,0x31,0x8E,0x89,0xCF,0x8B,0x12,0x22,0x00,0x21,0x00,0xF0,0x58,0xF8, + 0x4D,0x98,0x12,0x22,0x00,0x21,0x00,0xF0,0x53,0xF8,0x01,0x20,0x28,0x71,0xA6,0x81, + 0xE7,0x83,0x5C,0x98,0xC0,0x7D,0x00,0x28,0x0C,0xD0,0x00,0x21,0x29,0x71,0x5C,0x98, + 0x12,0x4A,0x00,0x7E,0x92,0x7F,0x90,0x42,0x01,0xD3,0x5C,0x9A,0xD1,0x75,0x5C,0x99, + 0x40,0x1C,0x08,0x76,0x01,0x99,0x0E,0x48,0x00,0x29,0x10,0xD0,0x29,0x79,0x00,0x29, + 0x0D,0xD0,0x0C,0x4A,0x01,0x68,0x52,0x89,0x0A,0x32,0x91,0x42,0x01,0xDA,0x49,0x1C, + 0x01,0x60,0x28,0x79,0x68,0x71,0x65,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x21, + 0xF6,0xE7,0x00,0x00,0xF0,0x05,0x00,0x20,0xC8,0x02,0x00,0x20,0x00,0x78,0x00,0x00, + 0xF0,0x0A,0x00,0x20,0x80,0x7A,0x00,0x00,0x03,0xE0,0x0B,0x78,0x49,0x1C,0x03,0x70, + 0x40,0x1C,0x52,0x1E,0xF9,0xD2,0x70,0x47,0x52,0x10,0x03,0xE0,0x0B,0x88,0x89,0x1C, + 0x03,0x80,0x80,0x1C,0x52,0x1E,0xF9,0xD2,0x70,0x47,0x92,0x10,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x09,0x06,0x09,0x0E,0x01,0xE0,0x01,0x70,0x40,0x1C,0x52,0x1E,0xFB,0xD2,0x70,0x47, + 0x92,0x10,0x00,0xE0,0x02,0xC0,0x52,0x1E,0xFC,0xD2,0x70,0x47,0x0A,0x49,0x00,0x20, + 0xC9,0x88,0x4A,0x06,0x09,0x49,0x00,0xD5,0xC8,0x7A,0x89,0x7A,0x08,0x18,0x00,0x06, + 0x01,0x0C,0x07,0x48,0x02,0x69,0xFF,0x23,0x1B,0x02,0x9A,0x43,0x02,0x61,0x02,0x69, + 0x0A,0x43,0x02,0x61,0x70,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0x80,0x78,0x00,0x00, + 0x00,0x90,0x00,0x40,0x10,0xB5,0x14,0x48,0x14,0x49,0x80,0x8B,0xC9,0x8A,0x00,0x24, + 0x40,0x18,0x13,0x49,0x09,0x78,0x00,0x29,0x12,0x49,0x04,0xD0,0x15,0x22,0x52,0x01, + 0x89,0x18,0x49,0x89,0x09,0xE0,0x10,0x4A,0xFF,0x31,0xD2,0x88,0xA1,0x31,0x49,0x8A, + 0x52,0x06,0x02,0xD4,0x0B,0x49,0xE0,0x31,0xC9,0x89,0x08,0x18,0x0B,0x49,0xC9,0x6B, + 0x49,0x04,0x49,0x0C,0x81,0x42,0x00,0xD3,0x01,0x24,0xFE,0xF7,0x6B,0xFF,0x20,0x00, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xF0,0x06,0x00,0x20,0xD0,0x0A,0x00,0x20, + 0x04,0x0B,0x00,0x20,0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20,0xC0,0x90,0x00,0x40, + 0xF7,0xB5,0x2B,0x4E,0xFF,0x27,0xB0,0x7F,0xF1,0x7F,0x84,0xB0,0x00,0x02,0x08,0x43, + 0x01,0xF0,0xD8,0xFC,0x30,0x00,0x20,0x38,0x00,0x7D,0xC0,0x07,0x0A,0xD0,0x25,0x48, + 0x01,0x78,0x25,0x48,0x00,0x7A,0x00,0x29,0x02,0xD0,0x01,0xF0,0x6B,0xFC,0x01,0xE0, + 0x01,0xF0,0x98,0xFC,0x21,0x48,0x02,0x25,0xC1,0x6A,0x03,0x91,0x01,0x6A,0x02,0x91, + 0x41,0x6A,0x01,0x91,0x41,0x6B,0x00,0x91,0x1F,0xE0,0x1C,0x4F,0x00,0x20,0xF8,0x62, + 0x73,0x20,0x00,0x01,0x38,0x62,0x23,0x20,0x78,0x62,0x03,0x24,0xE0,0x07,0xC0,0x0F, + 0xFC,0xF7,0xE2,0xF8,0x64,0x1E,0xF9,0xD5,0x02,0x20,0x78,0x63,0x30,0x7F,0x01,0x00, + 0xFC,0xF7,0x5C,0xF9,0x01,0x24,0x04,0xA8,0x07,0xC8,0xFE,0xF7,0xAB,0xFE,0x07,0x00, + 0x01,0xD1,0x00,0x24,0x25,0x00,0x64,0x1E,0xF5,0xD5,0x28,0x00,0x6D,0x1E,0x00,0x28, + 0xDB,0xDC,0x0A,0x48,0x03,0x99,0xC1,0x62,0x02,0x99,0x01,0x62,0x01,0x99,0x41,0x62, + 0x00,0x99,0x41,0x63,0x38,0x00,0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x20,0x78,0x00,0x00,0xFD,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20,0x80,0x90,0x00,0x40, + 0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x71,0xDF,0x4D,0xE2,0x00,0x00,0xA0,0xE3, + 0xB8,0x01,0x8D,0xE5,0x14,0x07,0x9F,0xE5,0x18,0x37,0x9F,0xE5,0x00,0x00,0xD0,0xE5, + 0x18,0x67,0x9F,0xE5,0xB0,0x01,0x8D,0xE5,0x04,0x07,0x9F,0xE5,0x00,0xB0,0xD0,0xE5, + 0xB6,0x00,0xD3,0xE1,0x40,0x10,0x00,0xE2,0xFC,0x06,0x9F,0xE5,0x00,0x00,0x51,0xE3, + 0x01,0x4C,0x80,0xE2,0xBC,0x1E,0xD0,0x01,0xB0,0x1B,0xD4,0x11,0x02,0xAC,0x80,0xE2, + 0xAC,0x11,0x8D,0xE5,0xB0,0x1F,0xD0,0x01,0xB4,0x1B,0xD4,0x11,0xA8,0x11,0x8D,0xE5, + 0xF8,0x1A,0xD4,0x01,0xFC,0x16,0xDA,0x11,0xA0,0x11,0x8D,0xE5,0xFA,0x1A,0xD4,0x01, + 0xFE,0x16,0xDA,0x11,0x9C,0x11,0x8D,0xE5,0xF4,0x10,0xD0,0x05,0xB8,0x11,0xD0,0x15, + 0x98,0x11,0x8D,0xE5,0xF5,0x10,0xD0,0x05,0xB9,0x11,0xD0,0x15,0x94,0x11,0x8D,0xE5, + 0xF6,0x10,0xD0,0x05,0xBA,0x11,0xD0,0x15,0x90,0x11,0x8D,0xE5,0xF7,0x10,0xD0,0x05, + 0xBB,0x11,0xD0,0x15,0x8C,0x11,0x8D,0xE5,0xBC,0x1F,0xD0,0x01,0xB0,0x1C,0xD4,0x11, + 0x88,0x11,0x8D,0xE5,0xBE,0x1F,0xD0,0x01,0xB2,0x1C,0xD4,0x11,0x84,0x11,0x8D,0xE5, + 0xB0,0x10,0xD4,0x01,0xB4,0x1C,0xD4,0x11,0x80,0x11,0x8D,0xE5,0xB2,0x10,0xD4,0x01, + 0xB6,0x1C,0xD4,0x11,0x7C,0x11,0x8D,0xE5,0xB8,0x1F,0xD0,0x01,0xBC,0x1B,0xD4,0x11, + 0x78,0x11,0x8D,0xE5,0xBA,0x0F,0xD0,0x01,0xBE,0x0B,0xD4,0x11,0x74,0x01,0x8D,0xE5, + 0x00,0x00,0xA0,0xE3,0x30,0x00,0x8D,0xE5,0x2C,0x00,0x8D,0xE5,0x28,0x00,0x8D,0xE5, + 0x24,0x00,0x8D,0xE5,0x20,0x00,0x8D,0xE5,0x1C,0x00,0x8D,0xE5,0x18,0x00,0x8D,0xE5, + 0x14,0x00,0x8D,0xE5,0x10,0x00,0x8D,0xE5,0x0C,0x00,0x8D,0xE5,0x08,0x00,0x8D,0xE5, + 0x04,0x00,0x8D,0xE5,0xB8,0x05,0xC6,0xE1,0x00,0x90,0xA0,0xE1,0xBA,0x05,0xC6,0xE1, + 0x01,0x5C,0x46,0xE2,0xBC,0x05,0xC6,0xE1,0x28,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3, + 0x70,0x00,0x85,0xE2,0x4B,0xFF,0xFF,0xEB,0x28,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3, + 0x98,0x00,0x85,0xE2,0x47,0xFF,0xFF,0xEB,0x00,0x00,0xA0,0xE3,0xB4,0x01,0x8D,0xE5, + 0x00,0x10,0xA0,0xE1,0xB0,0x0C,0xC5,0xE1,0x50,0x20,0xA0,0xE3,0x49,0x0F,0x8D,0xE2, + 0x40,0xFF,0xFF,0xEB,0x50,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xD4,0x00,0x8D,0xE2, + 0x3C,0xFF,0xFF,0xEB,0x50,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x84,0x00,0x8D,0xE2, + 0x38,0xFF,0xFF,0xEB,0x50,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x34,0x00,0x8D,0xE2, + 0x34,0xFF,0xFF,0xEB,0x98,0x05,0x9F,0xE5,0x00,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3, + 0xF8,0x7A,0xDA,0x11,0xB6,0x0A,0xDA,0x11,0x07,0x00,0x00,0x1A,0x74,0x05,0x9F,0xE5, + 0xB6,0x00,0xD0,0xE1,0x40,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3,0xF2,0x71,0xD4,0x01, + 0xF6,0x7D,0xD4,0x11,0xB0,0x01,0xD4,0x01,0xB4,0x0D,0xD4,0x11,0x00,0x80,0xA0,0xE3, + 0x08,0x50,0xA0,0xE1,0xA4,0x01,0x8D,0xE5,0x58,0x05,0x9F,0xE5,0xC0,0x01,0x8D,0xE5, + 0x0E,0x0C,0x80,0xE2,0xBC,0x01,0x8D,0xE5,0x82,0x00,0x00,0xEA,0x00,0x40,0xA0,0xE3, + 0x7C,0x00,0x00,0xEA,0xC0,0x01,0x9D,0xE5,0x0F,0x2A,0xE0,0xE3,0x08,0x11,0x90,0xE7, + 0x01,0x0A,0xA0,0xE1,0x20,0x0A,0xA0,0xE1,0x21,0x18,0x02,0xE0,0x01,0x30,0x40,0xE0, + 0x00,0x00,0x41,0xE0,0x9C,0x11,0x9D,0xE5,0x03,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3, + 0xD4,0x20,0x8D,0xC2,0x04,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0,0x04,0x11,0x82,0xC7, + 0x9C,0x11,0x9D,0xE5,0x00,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3,0x34,0x20,0x8D,0xC2, + 0x04,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0,0x04,0x11,0x82,0xC7,0xA0,0x11,0x9D,0xE5, + 0x03,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3,0x49,0x2F,0x8D,0xC2,0x05,0xC1,0x92,0xC7, + 0x0C,0x10,0x81,0xC0,0x05,0x11,0x82,0xC7,0xA0,0x11,0x9D,0xE5,0x00,0x10,0x81,0xE0, + 0x00,0x00,0x51,0xE3,0x84,0x20,0x8D,0xC2,0x05,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0, + 0x05,0x11,0x82,0xC7,0xB4,0x11,0x9D,0xE5,0x01,0x00,0x53,0xE1,0xB4,0x31,0x8D,0xC5, + 0x30,0x40,0x8D,0xC5,0x2C,0x50,0x8D,0xC5,0xC8,0x00,0x53,0xE3,0xB8,0x15,0xD6,0xC1, + 0x01,0x10,0x81,0xC2,0xB8,0x15,0xC6,0xC1,0x96,0x00,0x50,0xE3,0xBA,0x15,0xD6,0xC1, + 0x01,0x10,0x81,0xC2,0xBA,0x15,0xC6,0xC1,0x19,0x0E,0x53,0xE3,0xBC,0x15,0xD6,0xC1, + 0x01,0x10,0x81,0xC2,0xBC,0x15,0xC6,0xC1,0x58,0x14,0x9F,0xE5,0xB6,0x10,0xD1,0xE1, + 0x40,0x00,0x11,0xE3,0xB0,0x18,0xDA,0xE1,0x01,0x28,0xE0,0x13,0x81,0x10,0x02,0x10, + 0x00,0x00,0x53,0xE3,0x03,0x28,0xA0,0xC1,0x00,0x20,0xA0,0xD3,0x22,0x28,0xA0,0xC1, + 0x00,0x00,0x50,0xE3,0x00,0x08,0xA0,0xC1,0x00,0x00,0xA0,0xD3,0x20,0x08,0xA0,0xC1, + 0x01,0x00,0x50,0xE1,0x01,0xC0,0x89,0x82,0x01,0x98,0xCC,0x83,0x01,0x00,0x52,0xE1, + 0x0C,0xC0,0x9D,0x85,0x01,0xC0,0x8C,0x82,0x01,0xC8,0xCC,0x83,0x0C,0xC0,0x8D,0x85, + 0x81,0x00,0x50,0xE1,0x08,0xC0,0x9D,0x85,0x01,0xC0,0x8C,0x82,0x01,0xC8,0xCC,0x83, + 0x08,0xC0,0x8D,0x85,0x81,0x00,0x52,0xE1,0x04,0x10,0x9D,0x85,0x01,0x10,0x81,0x82, + 0x01,0x18,0xC1,0x83,0x04,0x10,0x8D,0x85,0x10,0x10,0x9D,0xE5,0x00,0x00,0x53,0xE3, + 0x01,0x00,0x80,0xE0,0x10,0x00,0x8D,0xE5,0x00,0x30,0xA0,0xB3,0x01,0x00,0x4B,0xE2, + 0x00,0x00,0x55,0xE1,0x06,0x00,0x00,0x1A,0x00,0x00,0x53,0xE3,0x04,0x00,0x00,0x0A, + 0x64,0x00,0xA0,0xE3,0x93,0x00,0x00,0xE0,0x64,0x10,0xA0,0xE3,0xEA,0xEB,0xFF,0xEB, + 0x00,0x30,0xA0,0xE1,0x05,0x10,0xA0,0xE1,0x04,0x00,0xA0,0xE1,0x16,0xF8,0xFF,0xEB, + 0xA4,0x13,0x9F,0xE5,0x00,0x00,0x57,0xE3,0x80,0x00,0x81,0xE0,0xB0,0x30,0xC0,0xE1, + 0x00,0x00,0x67,0xD2,0x07,0x00,0xA0,0xC1,0x03,0x00,0x50,0xE1,0xB8,0x11,0x9D,0xB5, + 0x07,0x00,0x83,0xB0,0x01,0x00,0x80,0xB0,0xB8,0x01,0x8D,0xB5,0x05,0x10,0xA0,0xE1, + 0x04,0x00,0xA0,0xE1,0xDF,0xF7,0xFF,0xEB,0xBC,0x11,0x9D,0xE5,0x6C,0x23,0x9F,0xE5, + 0x08,0x11,0x91,0xE7,0x80,0x00,0x82,0xE0,0x02,0x19,0xC1,0xE3,0x01,0x80,0x88,0xE2, + 0x01,0x40,0x84,0xE2,0xB0,0x10,0xC0,0xE1,0xB0,0x01,0x9D,0xE5,0x00,0x00,0x54,0xE1, + 0x7F,0xFF,0xFF,0x3A,0x01,0x50,0x85,0xE2,0x0B,0x00,0x55,0xE1,0x7A,0xFF,0xFF,0x3A, + 0x75,0xFA,0xFF,0xEB,0x1C,0x63,0x9F,0xE5,0xA8,0x01,0x9D,0xE5,0xBE,0x00,0xC6,0xE1, + 0xAC,0x01,0x9D,0xE5,0x01,0x00,0x10,0xE3,0x0A,0x00,0x00,0x0A,0xB0,0x01,0x9D,0xE5, + 0x64,0x10,0xA0,0xE3,0x9B,0x00,0x00,0xE0,0x90,0x01,0x01,0xE0,0xB8,0x01,0x9D,0xE5, + 0xA4,0x21,0x9D,0xE5,0x92,0x00,0x00,0xE0,0x28,0xEC,0xFF,0xEB,0xA8,0x11,0x9D,0xE5, + 0x01,0x00,0x50,0xE1,0xBE,0x00,0xC6,0x31,0xB0,0x01,0x9D,0xE5,0x64,0x10,0xA0,0xE3, + 0x90,0x01,0x07,0xE0,0x00,0x40,0xA0,0xE3,0x22,0x00,0x00,0xEA,0x49,0x0F,0x8D,0xE2, + 0x04,0x01,0x90,0xE7,0x98,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x07,0x10,0xA0,0xE1, + 0x1A,0xEC,0xFF,0xEB,0x88,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x7E,0xFA,0xFF,0xEB,0x00,0x50,0xA0,0xE1, + 0x84,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7,0x94,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x07,0x10,0xA0,0xE1,0x0D,0xEC,0xFF,0xEB,0x84,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1, + 0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x71,0xFA,0xFF,0xEB, + 0x00,0x00,0x45,0xE0,0x78,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x91,0x00,0x00,0xE0,0x84,0x50,0x86,0xE0,0x64,0x10,0xA0,0xE3,0x92,0xEB,0xFF,0xEB, + 0x01,0x40,0x84,0xE2,0xB0,0x07,0xC5,0xE1,0x0B,0x00,0x54,0xE1,0xDA,0xFF,0xFF,0x3A, + 0x64,0x00,0xA0,0xE3,0x9B,0x00,0x07,0xE0,0x00,0x40,0xA0,0xE3,0x22,0x00,0x00,0xEA, + 0xD4,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7,0x90,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x07,0x10,0xA0,0xE1,0xF1,0xEB,0xFF,0xEB,0x80,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1, + 0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x55,0xFA,0xFF,0xEB, + 0x00,0x50,0xA0,0xE1,0x34,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7,0x8C,0x11,0x9D,0xE5, + 0x91,0x00,0x00,0xE0,0x07,0x10,0xA0,0xE1,0xE4,0xEB,0xFF,0xEB,0x7C,0x11,0x9D,0xE5, + 0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1, + 0x48,0xFA,0xFF,0xEB,0x00,0x00,0x45,0xE0,0x74,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x91,0x00,0x00,0xE0,0x84,0x50,0x86,0xE0,0x64,0x10,0xA0,0xE3, + 0x69,0xEB,0xFF,0xEB,0x01,0x40,0x84,0xE2,0xB8,0x09,0xC5,0xE1,0xB0,0x01,0x9D,0xE5, + 0x00,0x00,0x54,0xE1,0xD9,0xFF,0xFF,0x3A,0xB4,0x01,0x9D,0xE5,0x00,0x00,0x50,0xE3, + 0x09,0x00,0x00,0xDA,0x30,0x00,0x9D,0xE5,0x80,0x00,0x86,0xE0,0xB8,0x19,0xD0,0xE1, + 0x2C,0x00,0x9D,0xE5,0x80,0x00,0x86,0xE0,0xB0,0x07,0xD0,0xE1,0x00,0x10,0x81,0xE0, + 0xB4,0x01,0x9D,0xE5,0x01,0x00,0x40,0xE0,0xB0,0x0C,0xC6,0xE1,0xB0,0x01,0x9D,0xE5, + 0x01,0x00,0x40,0xE2,0x9B,0x00,0x01,0xE0,0x10,0x00,0x9D,0xE5,0xBF,0xEB,0xFF,0xEB, + 0xB6,0x10,0xD6,0xE1,0x0C,0x20,0x9D,0xE5,0x40,0x00,0x11,0xE3,0x10,0x00,0x00,0x0A, + 0x82,0x00,0x59,0xE1,0x01,0x20,0xA0,0x83,0x24,0x20,0x8D,0x85,0xFA,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x83,0x20,0x00,0x8D,0x85,0x08,0x00,0x9D,0xE5,0x23,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x83,0x1C,0x00,0x8D,0x85,0x04,0x00,0x9D,0xE5,0x23,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x33,0x18,0x00,0x8D,0x35,0x14,0x00,0x59,0xE3,0x13,0x00,0x00,0x9A, + 0x10,0x00,0x00,0xEA,0x02,0x00,0x59,0xE1,0x08,0x00,0x59,0x83,0x01,0x20,0xA0,0x83, + 0x24,0x20,0x8D,0x85,0x96,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83,0x20,0x00,0x8D,0x85, + 0x08,0x00,0x9D,0xE5,0x14,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83,0x1C,0x00,0x8D,0x85, + 0x04,0x00,0x9D,0xE5,0x14,0x00,0x50,0xE3,0x01,0x00,0xA0,0x33,0x18,0x00,0x8D,0x35, + 0x0A,0x00,0x59,0xE3,0x01,0x00,0x00,0x9A,0x01,0x00,0xA0,0xE3,0x14,0x00,0x8D,0xE5, + 0x20,0x20,0x8D,0xE2,0x05,0x00,0x92,0xE8,0x18,0x30,0x9D,0xE5,0x02,0x00,0x80,0xE1, + 0x1C,0x20,0x9D,0xE5,0x10,0x00,0x11,0xE3,0x03,0x20,0x02,0xE0,0x00,0x20,0x82,0xE1, + 0x14,0x00,0x9D,0x15,0x00,0x00,0x50,0x13,0x00,0x00,0xA0,0x03,0x01,0x00,0xA0,0x13, + 0x02,0x00,0x90,0xE1,0x28,0x00,0x9D,0x05,0x00,0x00,0x50,0x03,0x09,0x00,0x00,0x0A, + 0xC4,0x00,0x96,0xE5,0x01,0x00,0x80,0xE2,0xC4,0x00,0x86,0xE5,0xC8,0x00,0xD6,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0x12,0xC8,0x00,0xC6,0x15,0x71,0xDF,0x8D,0xE2, + 0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0xC8,0x00,0xD6,0xE5,0x01,0x00,0x80,0xE2, + 0xFF,0x00,0x00,0xE2,0xC8,0x00,0xC6,0xE5,0xB4,0x18,0xDA,0xE1,0x01,0x00,0x50,0xE1, + 0xF5,0xFF,0xFF,0x1A,0x00,0x00,0xA0,0xE3,0xC8,0x00,0xC6,0xE5,0xC4,0x00,0x96,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0xC2,0xC4,0x00,0x86,0xC5,0xEE,0xFF,0xFF,0xEA, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00, + 0xF0,0x06,0x00,0x20,0x04,0x0B,0x00,0x20,0x00,0x02,0x10,0x40,0xC8,0x02,0x00,0x20, + 0x40,0x00,0x00,0x20,0xF0,0xB5,0xCA,0x49,0xC8,0x4F,0xC9,0x88,0xB8,0x7D,0xC9,0x4C, + 0x00,0x25,0x49,0x06,0x8D,0xB0,0x00,0xD4,0xA0,0x7C,0x03,0x90,0xC3,0x48,0x40,0x38, + 0x42,0x79,0x06,0x00,0xC0,0x36,0x00,0x92,0x82,0x79,0x80,0x30,0x01,0x7B,0xC0,0x38, + 0xB3,0x7A,0x00,0x7A,0xFE,0xF7,0x79,0xFB,0x00,0x06,0x71,0x7A,0x00,0x0E,0xFE,0xF7, + 0x69,0xFB,0x31,0x00,0x20,0x39,0x0A,0x7A,0xC0,0x39,0x00,0x06,0x0C,0x91,0x09,0x79, + 0x00,0x0E,0xFE,0xF7,0x63,0xFB,0x00,0x06,0xBA,0x7D,0xA1,0x7C,0x00,0x0E,0xFE,0xF7, + 0x5D,0xFB,0x00,0x06,0xB4,0x4E,0x00,0x0E,0x02,0x90,0x30,0x7B,0x00,0x28,0x02,0xD0, + 0xB2,0x48,0x40,0x89,0x0A,0xE0,0xAE,0x49,0x78,0x8A,0xC9,0x88,0x49,0x06,0x00,0xD4, + 0xE0,0x89,0xAF,0x49,0xC9,0x8A,0x40,0x18,0x00,0x04,0x00,0x0C,0x00,0x27,0x04,0x90, + 0x77,0x61,0x30,0x7A,0x00,0x28,0x06,0xD0,0x30,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0, + 0x79,0xFA,0x01,0xF0,0x67,0xFA,0x01,0x20,0x30,0x62,0xFC,0xF7,0xD9,0xFB,0xA0,0x48, + 0x05,0x22,0x01,0x00,0xFF,0x31,0x61,0x31,0x0A,0x91,0x9E,0x49,0xD2,0x01,0xE0,0x39, + 0x8B,0x18,0x09,0x93,0x03,0x00,0xC0,0x33,0x80,0x31,0x07,0xAC,0x0A,0xC4,0x02,0x99, + 0xC9,0x1C,0x06,0x91,0x51,0x00,0x44,0x18,0x80,0x18,0x05,0x90,0x10,0xE1,0x30,0x7A, + 0x00,0x28,0x04,0xD0,0x30,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0x53,0xFA,0xFF,0x20, + 0x81,0x30,0xFB,0xF7,0x91,0xF9,0x03,0x20,0x01,0xF0,0x8A,0xF9,0x00,0xF0,0x68,0xF9, + 0x01,0x20,0x40,0x05,0xFC,0xF7,0x16,0xFE,0xFF,0xF7,0xD2,0xFB,0x00,0x20,0xFC,0xF7, + 0x11,0xFE,0x87,0x48,0xC0,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06, + 0x01,0xD5,0x05,0x20,0x00,0xE0,0x03,0x20,0x01,0xF0,0x50,0xF8,0xFC,0xF7,0x46,0xFE, + 0x84,0x48,0x04,0x99,0x80,0x8B,0x40,0x18,0x7D,0x49,0x89,0x89,0x88,0x42,0x10,0xD9, + 0x0A,0x98,0x40,0x78,0x00,0x28,0x0C,0xD1,0x79,0x48,0xFF,0x21,0xC0,0x88,0x19,0x31, + 0x08,0x42,0x06,0xD1,0x03,0x98,0x6D,0x1C,0x85,0x42,0x03,0xDD,0xFC,0xF7,0x36,0xFE, + 0x00,0xE0,0x00,0x25,0x00,0xF0,0xFA,0xFD,0x00,0xF0,0x7C,0xFD,0x00,0xF0,0xD0,0xFD, + 0x09,0x99,0x08,0x98,0x49,0x88,0x40,0x68,0x88,0x42,0x0C,0xDB,0x0A,0x98,0x40,0x78, + 0x00,0x28,0x04,0xD1,0x6A,0x48,0x46,0x21,0xC0,0x88,0x08,0x42,0x03,0xD0,0x6A,0x49, + 0x01,0x20,0x48,0x70,0x02,0xE0,0x70,0x78,0x00,0x28,0x0D,0xD0,0xFC,0xF7,0x6C,0xFB, + 0x64,0x48,0x01,0x21,0xE0,0x38,0xC0,0x7F,0x40,0x08,0x01,0xF0,0x63,0xF8,0x62,0x48, + 0x47,0x70,0x08,0x98,0x47,0x60,0xA9,0xE0,0xFC,0xF7,0xD6,0xFD,0xFD,0xF7,0x4E,0xFF, + 0x00,0x28,0x08,0xD0,0x77,0x61,0x05,0x98,0x80,0x7B,0xC8,0x28,0x10,0xD2,0x05,0x99, + 0x40,0x1C,0x88,0x73,0x0C,0xE0,0x70,0x69,0x40,0x1C,0x70,0x61,0x70,0x69,0x01,0x28, + 0x01,0xD1,0x59,0x48,0x07,0x73,0x70,0x69,0x05,0x28,0x01,0xD9,0xFC,0xF7,0x38,0xFB, + 0x01,0x20,0x40,0x07,0x00,0x68,0x00,0x28,0x07,0xD1,0x60,0x68,0xFF,0x21,0xFF,0x31, + 0x88,0x42,0x03,0xDA,0x40,0x1C,0x60,0x60,0x00,0xE0,0x67,0x60,0x09,0x99,0x20,0x68, + 0x49,0x89,0x88,0x42,0x0A,0xDD,0x61,0x68,0xFF,0x20,0xF5,0x30,0x81,0x42,0x05,0xDD, + 0x01,0x20,0x70,0x70,0x27,0x60,0x67,0x60,0x08,0x99,0x48,0x60,0x47,0x48,0x41,0x68, + 0x09,0x07,0x07,0xD5,0xC1,0x68,0x00,0x29,0x04,0xD0,0xC0,0x68,0x01,0x21,0x49,0x07, + 0xC8,0x63,0x06,0xE0,0x70,0x7B,0x80,0x28,0x01,0xD1,0xFC,0xF7,0x15,0xFC,0x00,0xF0, + 0x11,0xF9,0xFC,0xF7,0x39,0xFE,0x07,0x98,0x00,0x7B,0x00,0x28,0x04,0xD0,0x30,0x7B, + 0x00,0x28,0x01,0xD1,0x00,0xF0,0xC0,0xF8,0x01,0x20,0x40,0x07,0xC0,0x6B,0x0B,0x28, + 0x4C,0xD1,0x07,0x98,0x00,0x7A,0x00,0x28,0x01,0xD0,0xFF,0xF7,0x67,0xFA,0x00,0xF0, + 0x9B,0xF8,0x03,0x20,0x01,0xF0,0x9E,0xF8,0xF0,0x62,0x03,0x20,0x01,0xF0,0xCC,0xF8, + 0xFF,0x20,0x81,0x30,0xFB,0xF7,0xB8,0xF8,0x2D,0x48,0x00,0x78,0x00,0x28,0x2F,0xD1, + 0xFC,0xF7,0xEA,0xFE,0x00,0x28,0x2B,0xD0,0xB0,0x6A,0x00,0x28,0x0B,0x90,0x27,0xD0, + 0xF0,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x26,0x49,0xFA,0xF7,0x6F,0xFD,0x0B,0x99, + 0x08,0x1A,0x32,0x28,0x1C,0xDD,0x01,0xF0,0x73,0xF9,0x01,0xF0,0x77,0xF9,0xB0,0x79, + 0x00,0x28,0x0D,0xD0,0x00,0xF0,0x4E,0xF8,0x00,0xF0,0x51,0xF8,0x00,0xF0,0x59,0xF8, + 0x1D,0x4E,0x01,0x20,0x70,0x60,0xFB,0xF7,0x9F,0xF8,0x1C,0x48,0x70,0x60,0x03,0xE0, + 0x1B,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0,0x01,0xF0,0x67,0xF9,0x18,0x48,0x07,0x70, + 0x0D,0x4E,0x70,0x69,0x06,0x99,0x88,0x42,0x00,0xD2,0xE8,0xE6,0x0C,0x98,0x0C,0x49, + 0x40,0x78,0xA0,0x39,0x48,0x73,0x08,0x48,0x00,0x7A,0x00,0x28,0x01,0xD0,0x01,0xF0, + 0x31,0xF9,0x0D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xE0,0x78,0x00,0x00,0xF8,0x0A,0x00,0x20,0xA0,0x7A,0x00,0x00, + 0xD0,0x0A,0x00,0x20,0xF0,0x06,0x00,0x20,0x90,0x08,0x00,0x20,0x00,0x40,0x00,0x30, + 0xAD,0x0B,0x00,0x20,0x10,0x27,0x00,0x00,0x00,0x30,0x00,0x40,0xE1,0x04,0x00,0x00, + 0xAC,0x0B,0x00,0x20,0x01,0x20,0x80,0x07,0x01,0x6B,0x81,0x22,0xD2,0x01,0x11,0x43, + 0x01,0x63,0x70,0x47,0x00,0x20,0x01,0x21,0x89,0x07,0x48,0x60,0x70,0x47,0x10,0x20, + 0x81,0x06,0x48,0x60,0x70,0x47,0x01,0x22,0x92,0x07,0x91,0x68,0x01,0x43,0x91,0x60, + 0x70,0x47,0x01,0x20,0x80,0x07,0x41,0x68,0x02,0x22,0x11,0x43,0x41,0x60,0x70,0x47, + 0x01,0x20,0x80,0x07,0x01,0x6B,0x03,0x4A,0x89,0x09,0x52,0x7B,0x89,0x01,0x11,0x43, + 0x01,0x63,0x70,0x47,0x00,0x78,0x00,0x00,0x10,0xB5,0xFC,0xF7,0xC5,0xFC,0xFA,0xF7, + 0x19,0xFD,0x03,0x20,0x40,0x03,0xFB,0xF7,0x1F,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x03,0x20,0x10,0xB5,0x40,0x03,0xFB,0xF7,0x1F,0xF8,0xFA,0xF7,0x15,0xFD,0xFC,0xF7, + 0xBB,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xB5,0x00,0xF0,0x8D,0xFB,0x05,0x49, + 0x80,0x22,0xC9,0x88,0x11,0x40,0x81,0x42,0x01,0xD0,0xFA,0xF7,0x3D,0xFF,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0xFE,0xB5,0x16,0x48,0x17,0x4E,0x00,0x78, + 0x00,0x25,0x01,0x90,0x14,0x48,0x00,0x78,0x00,0x90,0x1C,0xE0,0x14,0x49,0x68,0x00, + 0x00,0x24,0x47,0x18,0x60,0x37,0x12,0xE0,0x29,0x00,0x20,0x00,0xFD,0xF7,0x3C,0xFC, + 0x0F,0x4B,0x62,0x00,0xD3,0x18,0x98,0x22,0x9A,0x5E,0x10,0x23,0xFB,0x5E,0x40,0x00, + 0x31,0x5E,0xD2,0x18,0x89,0x1A,0x00,0xD5,0x00,0x21,0x64,0x1C,0x31,0x52,0x01,0x98, + 0x84,0x42,0xE9,0xD3,0x6D,0x1C,0x00,0x98,0x85,0x42,0xDF,0xD3,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xF8,0xB5,0x63,0x4F,0x00,0x26,0x78,0x7A,0xC0,0x07,0x12,0xD0, + 0x61,0x48,0x00,0x89,0x00,0x28,0x0E,0xD0,0x60,0x49,0x88,0x42,0x0B,0xD0,0x1E,0x21, + 0x48,0x43,0x64,0x21,0xFA,0xF7,0x82,0xFC,0x39,0x8A,0x46,0x18,0x4B,0x20,0xC0,0x00, + 0x86,0x42,0x00,0xD9,0x06,0x00,0x01,0x24,0x64,0x07,0x25,0x68,0x00,0x2D,0x7E,0xD0, + 0x57,0x48,0x00,0x21,0x01,0x70,0x02,0x20,0x00,0xF0,0xB6,0xFF,0x55,0x48,0x0A,0x21, + 0x00,0x6B,0xFA,0xF7,0x6B,0xFC,0x01,0x00,0x02,0x20,0x00,0xF0,0x99,0xFF,0x01,0x2D, + 0x0B,0xD0,0x02,0x2D,0x08,0xD1,0x60,0x68,0x00,0x02,0x00,0x0E,0x01,0x28,0x03,0xD1, + 0x60,0x68,0x00,0x06,0x00,0xD1,0x00,0xE0,0x6D,0x1C,0x78,0x7A,0x00,0x28,0x08,0xD0, + 0x60,0x68,0x49,0x49,0x81,0x43,0x04,0xD0,0x61,0x68,0x48,0x48,0x88,0x43,0x00,0xD0, + 0x6D,0x1C,0xF8,0x79,0x00,0x28,0x04,0xD1,0x45,0x48,0x41,0x69,0x02,0x15,0x11,0x43, + 0x41,0x61,0x44,0x48,0x01,0x68,0x44,0x48,0xC1,0x61,0x02,0x24,0x20,0x00,0x00,0xF0, + 0x77,0xFF,0x42,0x48,0xC1,0x68,0x49,0x08,0x49,0x00,0xC1,0x60,0x03,0x04,0x35,0x48, + 0x35,0x4A,0x41,0x7A,0x3C,0x48,0x97,0x89,0x21,0xE0,0x42,0x69,0x52,0x06,0x0E,0xD4, + 0x00,0x29,0x01,0xD0,0xAC,0x42,0x04,0xD2,0xA2,0x00,0xD2,0x18,0x12,0x68,0xC2,0x61, + 0x04,0xE0,0xCA,0x07,0x01,0xD0,0xC6,0x61,0x00,0xE0,0xC7,0x61,0x64,0x1C,0x2C,0x4A, + 0x12,0x78,0x00,0x2A,0x0B,0xD0,0xFD,0xF7,0xCB,0xFC,0x26,0x48,0x01,0x7A,0x00,0x29, + 0x07,0xD0,0x00,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0x0C,0xF8,0x01,0xE0,0xAC,0x42, + 0xDB,0xD9,0x02,0x20,0x00,0xF0,0x50,0xFF,0x21,0x4D,0x28,0x78,0x00,0x28,0x27,0xD1, + 0xFD,0xF7,0xDC,0xFB,0x00,0x28,0x23,0xD0,0x1E,0x48,0x0A,0x21,0x00,0x6B,0xFA,0xF7, + 0xFD,0xFB,0x01,0x00,0x02,0x20,0x00,0xF0,0x2B,0xFF,0x02,0x20,0x00,0xE0,0x26,0xE0, + 0x00,0xF0,0x2E,0xFF,0x13,0x4C,0x0C,0xE0,0x28,0x78,0x00,0x28,0x09,0xD0,0xFD,0xF7, + 0x9F,0xFC,0x20,0x7A,0x00,0x28,0x04,0xD0,0x20,0x6B,0x00,0x04,0x00,0x0C,0x00,0xF0, + 0xE1,0xFF,0xFD,0xF7,0xBB,0xFB,0x00,0x28,0xEE,0xD1,0x02,0x20,0x00,0xF0,0x24,0xFF, + 0x12,0x49,0xC8,0x68,0x01,0x22,0x10,0x43,0xC8,0x60,0x00,0xF0,0x25,0xF8,0x05,0x48, + 0xC0,0x79,0x00,0x28,0x03,0xD1,0x01,0x20,0x80,0x02,0xFA,0xF7,0x05,0xFF,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0xF8,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0xFF,0x0F,0x00,0x00, + 0xAD,0x0B,0x00,0x20,0x00,0x78,0x00,0x00,0x00,0x00,0x4E,0x1D,0x00,0x80,0x4E,0x1D, + 0x40,0x00,0x00,0x40,0x04,0x00,0x00,0x20,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x05,0x48,0x01,0x21,0x00,0xB5,0xC9,0x02, + 0x01,0x62,0x00,0x21,0x01,0x62,0xFD,0xF7,0xBF,0xFE,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x40,0x18,0x70,0x47,0x40,0x18,0x80,0x18,0x70,0x47,0x10,0xB4, + 0x40,0x18,0x01,0x9C,0x80,0x18,0xC0,0x18,0x00,0x19,0x10,0xBC,0x70,0x47,0x00,0x00, + 0x70,0xB5,0x1E,0x49,0x1C,0x4C,0x0D,0x00,0x20,0x78,0xA1,0x22,0xFF,0x35,0x92,0x00, + 0xBF,0x35,0x8E,0x18,0x00,0x28,0x0E,0xD0,0x5A,0x22,0x21,0x1D,0x28,0x00,0xFF,0xF7, + 0x33,0xF8,0x17,0x49,0x09,0x22,0x30,0x00,0xFF,0xF7,0x2E,0xF8,0x20,0x78,0x60,0x70, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x09,0x22,0x00,0x21,0x30,0x00,0xFF,0xF7,0x40,0xF8, + 0x5A,0x22,0x00,0x21,0x28,0x00,0xFF,0xF7,0x3B,0xF8,0x0D,0x48,0x5A,0x22,0x00,0x21, + 0x63,0x38,0xFF,0xF7,0x35,0xF8,0x0A,0x48,0x09,0x22,0x00,0x21,0x09,0x38,0xFF,0xF7, + 0x2F,0xF8,0x00,0x20,0x05,0x49,0x60,0x70,0xA0,0x70,0xCA,0x88,0x23,0x23,0x9A,0x43, + 0xCA,0x80,0x04,0x49,0x88,0x75,0xDB,0xE7,0x50,0x07,0x00,0x20,0xF0,0x05,0x00,0x20, + 0x6B,0x08,0x00,0x20,0x30,0x0A,0x00,0x20,0xF3,0xB5,0x93,0x48,0x91,0xB0,0x40,0x7E, + 0x02,0x90,0x92,0x48,0x00,0x78,0x00,0x28,0x91,0x48,0x18,0xD0,0x0B,0x21,0x89,0x01, + 0x40,0x18,0x01,0x8A,0x8F,0x4A,0x1A,0x26,0x07,0x91,0x41,0x8A,0x1C,0x27,0x06,0x91, + 0x81,0x8A,0x05,0x91,0x1E,0x21,0x41,0x5E,0x04,0x91,0x00,0x21,0x51,0x5E,0x03,0x91, + 0x16,0x21,0x18,0x22,0x86,0x5F,0xC7,0x5F,0x41,0x5E,0x82,0x5E,0x16,0xE0,0x60,0x30, + 0xC1,0x8A,0x04,0x22,0x00,0x26,0x07,0x91,0x01,0x8B,0x02,0x27,0x06,0x91,0x41,0x8B, + 0x05,0x91,0x7D,0x49,0x20,0x39,0x8A,0x5E,0x04,0x92,0x06,0x22,0x8A,0x5E,0x03,0x92, + 0x8E,0x5F,0xCF,0x5F,0x1C,0x21,0x1E,0x22,0x41,0x5E,0x82,0x5E,0x11,0x98,0x78,0x4C, + 0x00,0x68,0x41,0x18,0x11,0x98,0x01,0x60,0x12,0x98,0x00,0x68,0x81,0x18,0x12,0x98, + 0x01,0x60,0x60,0x8C,0x00,0x21,0x40,0x1E,0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0, + 0x20,0x8C,0x0A,0x00,0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0, + 0x1B,0xFF,0x20,0x8C,0x64,0x21,0x0A,0x90,0x60,0x8C,0x09,0x90,0x0A,0x98,0x44,0x08, + 0x09,0x98,0x45,0x08,0x06,0x98,0x64,0x38,0x00,0x28,0x01,0xDC,0x06,0x98,0x08,0x1A, + 0x0F,0x90,0x05,0x98,0x64,0x38,0x00,0x28,0x01,0xDC,0x05,0x98,0x08,0x1A,0x0E,0x90, + 0x61,0x48,0x01,0x78,0x61,0x48,0x00,0x78,0x08,0x90,0x61,0x48,0x80,0x7E,0xC2,0x07, + 0x0A,0xD0,0x80,0x07,0x03,0xD5,0x49,0x1E,0x09,0x06,0x09,0x0E,0x04,0xE0,0x08,0x98, + 0x40,0x1E,0x00,0x06,0x00,0x0E,0x08,0x90,0x20,0x00,0xFA,0xF7,0xF5,0xF9,0x0A,0x99, + 0x08,0x1A,0x40,0x1E,0x0C,0x90,0x08,0x99,0x28,0x00,0xFA,0xF7,0xED,0xF9,0x09,0x99, + 0x08,0x1A,0x40,0x1E,0x31,0x1E,0x0B,0x90,0x00,0xDD,0xA1,0x1B,0x00,0x2F,0x0D,0x97, + 0x01,0xDD,0xE8,0x1B,0x0D,0x90,0x11,0x98,0x00,0x68,0xA0,0x42,0x10,0x90,0x01,0xDB, + 0x00,0x1B,0x01,0xE0,0x00,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x22, + 0x06,0x00,0x56,0x43,0x37,0x00,0x88,0x42,0x0D,0xDD,0x42,0x1A,0x0F,0x98,0x50,0x43, + 0x86,0x19,0x10,0x00,0x50,0x43,0x0F,0x9A,0x50,0x43,0x0C,0x9A,0x12,0x1B,0x51,0x1A, + 0xFA,0xF7,0xC2,0xF9,0xC7,0x19,0x04,0x98,0x00,0x28,0x01,0xD1,0x30,0x00,0x05,0xE0, + 0x01,0x28,0x01,0xD1,0x38,0x00,0x01,0xE0,0x70,0x00,0xC0,0x1B,0x64,0x21,0xFA,0xF7, + 0xB3,0xF9,0x07,0x99,0xC9,0x07,0x0A,0xD0,0x10,0x99,0xA1,0x42,0x03,0xDB,0x21,0x18, + 0x11,0x98,0x01,0x60,0x03,0xE0,0x11,0x99,0x20,0x1A,0x40,0x1E,0x08,0x60,0x12,0x98, + 0x07,0x68,0xAF,0x42,0x01,0xDB,0x78,0x1B,0x01,0xE0,0x78,0x1B,0x40,0x1C,0x00,0x28, + 0x00,0xDC,0x40,0x42,0x64,0x21,0x04,0x00,0x4C,0x43,0x0D,0x99,0x26,0x00,0x88,0x42, + 0x0E,0xDD,0x41,0x1A,0x0E,0x98,0x0D,0x9A,0x48,0x43,0x04,0x19,0x08,0x00,0x48,0x43, + 0x0E,0x99,0x48,0x43,0x0B,0x99,0x49,0x1B,0x89,0x1A,0xFA,0xF7,0x85,0xF9,0x86,0x19, + 0x03,0x98,0x00,0x28,0x01,0xD1,0x20,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x30,0x00, + 0x01,0xE0,0x60,0x00,0x80,0x1B,0x64,0x21,0xFA,0xF7,0x76,0xF9,0x07,0x99,0x89,0x07, + 0x09,0xD5,0xAF,0x42,0x03,0xDB,0x29,0x18,0x12,0x98,0x01,0x60,0x03,0xE0,0x12,0x99, + 0x28,0x1A,0x40,0x1E,0x08,0x60,0x0E,0x48,0x02,0x99,0x42,0x8C,0x6B,0x46,0x51,0x1A, + 0x49,0x1E,0x0A,0x04,0x02,0x99,0x12,0x0C,0x06,0xC3,0x01,0x8C,0x02,0x98,0x02,0x9A, + 0x08,0x1A,0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0,0x4C,0xFE, + 0x13,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x78,0x00,0x00,0x04,0x0B,0x00,0x20, + 0x00,0x78,0x00,0x00,0xE0,0x7A,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x30,0x0A,0x00,0x20,0xFE,0xB5,0x66,0x4D,0x64,0x48,0x00,0x26,0x29,0x00,0xFF,0x31, + 0x00,0x96,0x42,0x78,0x61,0x31,0x08,0x78,0x00,0x2A,0x28,0xD1,0x00,0x28,0x26,0xD0, + 0x01,0x24,0x0A,0x20,0x60,0x43,0x47,0x19,0x38,0x00,0xFF,0x30,0x6B,0x30,0xFD,0xF7, + 0x55,0xFC,0x00,0x28,0x17,0xD0,0x5B,0x48,0x81,0x7B,0x00,0x98,0x40,0x1C,0x81,0x42, + 0x14,0xD3,0xA9,0x19,0x13,0x22,0x00,0x90,0xFF,0x20,0x92,0x01,0x65,0x30,0x89,0x18, + 0xC0,0x5D,0x3A,0x00,0xFF,0x32,0x48,0x70,0x76,0x1C,0x65,0x32,0x03,0x20,0x01,0x23, + 0x69,0x46,0x00,0xF0,0x2F,0xFA,0x64,0x1C,0x09,0x2C,0xDA,0xDB,0x8F,0xE0,0x49,0x78, + 0x00,0x29,0x01,0xD1,0x00,0x28,0xF9,0xD0,0x15,0x20,0x40,0x01,0x00,0x24,0x2E,0x18, + 0x13,0x27,0xBF,0x01,0x28,0x19,0xC0,0x19,0x40,0x78,0x00,0x28,0x3F,0xD0,0x13,0x21, + 0x28,0x18,0x49,0x01,0x41,0x18,0xC9,0x7E,0x00,0x29,0x02,0xD0,0x32,0x7B,0x00,0x2A, + 0x14,0xD0,0x05,0x21,0xC9,0x01,0x40,0x18,0x00,0x99,0x00,0x79,0x49,0x1C,0x00,0x91, + 0x0A,0x21,0x48,0x43,0x42,0x19,0xFF,0x32,0xBF,0x32,0x02,0x20,0x03,0x23,0x69,0x46, + 0x00,0xF0,0x00,0xFA,0x20,0x00,0x14,0x2C,0x1E,0xD0,0x1A,0xE0,0x0A,0x20,0x41,0x43, + 0x48,0x19,0x02,0x90,0xFF,0x30,0x6B,0x30,0xFD,0xF7,0x00,0xFC,0x00,0x28,0x13,0xD0, + 0x00,0x98,0x02,0x9A,0x40,0x1C,0xFF,0x32,0x00,0x90,0x65,0x32,0x03,0x20,0x02,0x23, + 0x69,0x46,0x00,0xF0,0xE7,0xF9,0x07,0xE0,0x29,0x18,0xC9,0x19,0x8A,0x78,0x40,0x1C, + 0x4A,0x70,0x08,0x28,0xF8,0xDB,0x64,0x1E,0x64,0x1C,0x08,0x2C,0xBA,0xDB,0x01,0x24, + 0x23,0x49,0x13,0x22,0x08,0x19,0x52,0x01,0x80,0x18,0xC0,0x7E,0x00,0x22,0x01,0x92, + 0x00,0x28,0x31,0xD0,0x32,0x7B,0x00,0x2A,0x2E,0xD1,0x0A,0x22,0x50,0x43,0x45,0x18, + 0x28,0x00,0xFF,0x30,0x6B,0x30,0xFD,0xF7,0xD1,0xFB,0x00,0x28,0x24,0xD0,0x19,0x48, + 0x00,0x9B,0x80,0x7B,0x5B,0x1C,0x98,0x42,0x21,0xD3,0x15,0x4A,0x00,0x20,0x11,0x18, + 0xC9,0x19,0x49,0x78,0xA1,0x42,0x0B,0xD0,0x00,0x29,0x06,0xD1,0xFF,0x21,0x65,0x31, + 0x49,0x5D,0x10,0x18,0xC0,0x19,0x41,0x70,0x05,0xE0,0x40,0x1C,0x08,0x28,0xEE,0xDB, + 0x01,0x98,0x00,0x28,0x08,0xD0,0x2A,0x00,0xFF,0x32,0x00,0x93,0x65,0x32,0x03,0x20, + 0x01,0x23,0x69,0x46,0x00,0xF0,0x9E,0xF9,0x64,0x1C,0x09,0x2C,0xC0,0xDB,0x00,0x98, + 0x00,0xF0,0xA6,0xFC,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xB0,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00,0xFE,0xB5,0x51,0x48,0x36,0x25,0x45,0x5F, + 0x51,0x48,0x50,0x4F,0xC4,0x78,0x00,0x26,0x02,0x94,0x00,0x79,0x84,0x46,0x4C,0x48, + 0x80,0x30,0x82,0x7D,0x86,0x46,0x4D,0x48,0x81,0x7E,0xC8,0x07,0x0A,0xD0,0x88,0x07, + 0x03,0xD5,0x64,0x1E,0x24,0x06,0x24,0x0E,0x04,0xE0,0x60,0x46,0x40,0x1E,0x00,0x06, + 0x00,0x0E,0x84,0x46,0x00,0x21,0x27,0xE0,0x00,0x20,0x22,0xE0,0x91,0x42,0x05,0xD2, + 0x90,0x42,0x1D,0xD3,0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x19,0xD3,0x63,0x46,0x9B,0x1A, + 0x5B,0x1E,0x8B,0x42,0x01,0xD2,0x90,0x42,0x12,0xD3,0x8B,0x42,0x03,0xD2,0xA3,0x1A, + 0x5B,0x1E,0x83,0x42,0x0C,0xD3,0x02,0x9B,0x4B,0x43,0x1B,0x18,0x9B,0x00,0xFB,0x58, + 0x1B,0x01,0x1B,0x0D,0xB3,0x42,0x00,0xDD,0x1E,0x00,0xAB,0x42,0x00,0xDA,0x1D,0x00, + 0x40,0x1C,0xA0,0x42,0xDA,0xD3,0x49,0x1C,0x61,0x45,0xD5,0xD3,0x1E,0x24,0x70,0x46, + 0x04,0x5F,0x2B,0x4B,0x2E,0x48,0xA0,0x33,0xC0,0x88,0x06,0x22,0x9A,0x5E,0x40,0x06, + 0x07,0xD5,0x70,0x46,0x80,0x8A,0x01,0x19,0x0C,0x04,0x10,0x1A,0x24,0x14,0x02,0x04, + 0x12,0x14,0x26,0x48,0x80,0x30,0xC1,0x6A,0xA6,0x42,0x05,0xDD,0x74,0x46,0x64,0x8B, + 0xA1,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E,0xC1,0x62, + 0x1E,0x49,0x80,0x31,0x09,0x6B,0x95,0x42,0x04,0xDA,0x5A,0x88,0x91,0x42,0x05,0xDA, + 0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E,0x01,0x63,0x74,0x46,0xA4,0x8B, + 0xC5,0x6A,0x01,0x22,0x11,0x00,0xA5,0x42,0x00,0xDC,0x00,0x21,0x9B,0x88,0x00,0x6B, + 0x98,0x42,0x00,0xDC,0x00,0x22,0x00,0x20,0x6B,0x46,0x18,0x70,0x59,0x70,0x00,0x29, + 0x9A,0x70,0x02,0xD0,0x00,0x2A,0x00,0xD0,0x01,0x20,0x6B,0x46,0x11,0x43,0xD8,0x70, + 0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x6B,0x46,0x18,0x71,0x70,0x46,0x00,0x7B, + 0x69,0x46,0x08,0x5C,0x00,0x28,0x00,0xD0,0x80,0x20,0xFE,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x78,0x00,0x00,0x00,0x02,0x10,0x40,0xF8,0x0A,0x00,0x20,0x30,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xF8,0xB5,0x22,0x48,0x22,0x4C,0xC0,0x88,0x01,0x23,0x22,0x4D, + 0x41,0x06,0x09,0x20,0x80,0x01,0x21,0x4F,0x21,0x4E,0x5B,0x05,0x20,0x18,0x00,0x29, + 0x0E,0xDA,0x81,0x69,0x69,0x61,0xC1,0x69,0xA9,0x61,0x41,0x6A,0x99,0x43,0xE9,0x61, + 0x81,0x6A,0x29,0x62,0x01,0x6A,0xE9,0x60,0x80,0x6B,0x28,0x61,0xE0,0x6A,0x0E,0xE0, + 0x18,0x49,0x4A,0x69,0x6A,0x61,0x8A,0x69,0xAA,0x61,0x0A,0x6A,0x9A,0x43,0xEA,0x61, + 0x4A,0x6A,0x2A,0x62,0xC9,0x69,0xE9,0x60,0x40,0x6B,0x28,0x61,0xA0,0x6A,0xFF,0x21, + 0x41,0x31,0x48,0x43,0x39,0x00,0xFA,0xF7,0x69,0xF8,0xB0,0x62,0x30,0x7B,0x00,0x28, + 0x03,0xD0,0x0D,0x48,0xE8,0x60,0x0D,0x48,0x28,0x61,0x60,0x6A,0xFF,0x21,0x41,0x31, + 0x48,0x43,0x39,0x00,0xFA,0xF7,0x5A,0xF8,0x70,0x62,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00,0xC0,0x90,0x00,0x40,0x10,0x27,0x00,0x00, + 0xF8,0x0A,0x00,0x20,0x80,0x79,0x00,0x00,0x81,0x11,0x01,0x00,0x10,0x00,0x10,0x00, + 0x0E,0x48,0x0F,0x4A,0x43,0x78,0x0F,0x49,0xD0,0x1D,0xC9,0x88,0xFF,0x32,0xF9,0x30, + 0xC1,0x32,0x02,0x2B,0x04,0xD9,0x12,0x6A,0x49,0x06,0x0C,0xD4,0xC2,0x69,0x0A,0xE0, + 0x02,0x2B,0x04,0xD1,0xD2,0x69,0x49,0x06,0x05,0xD4,0x82,0x69,0x03,0xE0,0x92,0x69, + 0x49,0x06,0x00,0xD4,0x42,0x69,0x04,0x48,0x42,0x62,0x70,0x47,0x50,0x07,0x00,0x20, + 0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20,0xC0,0x90,0x00,0x40,0x70,0xB4,0x0D,0x48, + 0x0E,0x4E,0xC0,0x88,0x0D,0x4D,0x01,0x21,0x42,0x06,0x0B,0x48,0xC9,0x03,0x32,0x23, + 0x74,0x00,0x32,0x3D,0x00,0x2A,0x01,0xDA,0x09,0x4A,0x00,0xE0,0x09,0x4A,0x02,0x61, + 0x46,0x61,0x81,0x61,0xC3,0x61,0x01,0x62,0x44,0x62,0x81,0x62,0xC5,0x62,0x70,0xBC, + 0x70,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0x40,0xA1,0x00,0x40,0x64,0x40,0x00,0x00, + 0x00,0x00,0x01,0x03,0x00,0x80,0x00,0x03,0x70,0xB5,0x01,0x25,0x6D,0x03,0x28,0x00, + 0xFA,0xF7,0x32,0xFB,0x16,0x48,0x04,0x68,0x28,0x00,0xFA,0xF7,0x25,0xFB,0x15,0x4D, + 0xE2,0x06,0xD2,0x0E,0xE0,0x04,0x14,0x49,0xC0,0x0E,0x2A,0x71,0xE8,0x70,0x0B,0x7D, + 0x12,0x48,0x83,0x76,0x4B,0x7D,0xC3,0x76,0x83,0x7E,0x11,0x48,0xDC,0x07,0x0A,0xD0, + 0x9B,0x07,0x04,0xD5,0xEA,0x78,0x52,0x1E,0x02,0x72,0x00,0x22,0x02,0xE0,0x52,0x1E, + 0x02,0x72,0x01,0x22,0x6A,0x71,0x8A,0x7D,0x42,0x72,0xCA,0x7D,0x82,0x72,0x0A,0x7E, + 0xC2,0x72,0x4A,0x7E,0x02,0x73,0x89,0x7E,0x41,0x73,0x70,0xBC,0x08,0xBC,0x18,0x47, + 0x40,0x90,0x00,0x40,0xF8,0x0A,0x00,0x20,0x00,0x78,0x00,0x00,0x30,0x0A,0x00,0x20, + 0x70,0x0A,0x00,0x20,0xF8,0xB5,0x05,0x00,0x0E,0x00,0x14,0x00,0x19,0x00,0x10,0x00, + 0xFA,0xF7,0xEE,0xFF,0x00,0x28,0x05,0xD0,0x30,0x68,0x40,0x1E,0x30,0x60,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x2D,0x48,0x80,0x7E,0xC0,0x07,0x26,0xD0,0xE0,0x79,0x05,0x28, + 0x21,0xD0,0x09,0x28,0x21,0xD1,0x2A,0x49,0x6D,0x08,0x6D,0x00,0x23,0x78,0x01,0x20, + 0x8C,0x46,0x13,0xE0,0x0A,0x22,0x01,0x00,0x51,0x43,0x26,0x4A,0x89,0x18,0x0A,0x00, + 0xFF,0x32,0xA1,0x32,0x97,0x7F,0xBB,0x42,0x07,0xD1,0xFF,0x31,0xC1,0x31,0x0F,0x88, + 0x67,0x80,0xD2,0x7F,0x62,0x70,0x49,0x88,0xA1,0x80,0x40,0x1C,0x61,0x46,0x49,0x78, + 0x81,0x42,0xE7,0xDA,0x01,0xE0,0x01,0x20,0x05,0x43,0x0F,0x20,0xA9,0x07,0x80,0x06, + 0x81,0x43,0x20,0x78,0x3F,0x22,0x92,0x02,0x00,0x07,0x80,0x08,0x01,0x43,0x16,0x48, + 0x01,0x40,0x60,0x88,0x80,0x05,0x80,0x09,0x01,0x43,0x60,0x78,0x91,0x43,0x80,0x06, + 0x00,0x0C,0x01,0x43,0x08,0x04,0x80,0x0E,0x0A,0x28,0x09,0xD2,0x40,0x1C,0x0A,0x23, + 0x58,0x43,0x3F,0x28,0x00,0xDD,0x3F,0x20,0x80,0x06,0x91,0x43,0x00,0x0C,0x01,0x43, + 0x88,0x0A,0xA1,0x88,0x80,0x02,0x01,0x22,0x89,0x05,0x89,0x0D,0x08,0x43,0x31,0x68, + 0x52,0x07,0x89,0x00,0x89,0x18,0x48,0x60,0xA1,0xE7,0x00,0x00,0x30,0x0A,0x00,0x20, + 0x50,0x07,0x00,0x20,0xF0,0x05,0x00,0x20,0xFF,0xFF,0x00,0xFC,0x0E,0x49,0x10,0xB4, + 0x48,0x7B,0x00,0x28,0x10,0xD0,0x00,0x09,0x00,0x01,0x00,0x23,0x01,0x22,0x40,0x28, + 0x0C,0xD0,0x80,0x28,0x08,0xD1,0x4A,0x72,0x8A,0x72,0x08,0x48,0xCA,0x72,0xCA,0x71, + 0x00,0x78,0x00,0x28,0x06,0xD1,0x0B,0x73,0x10,0xBC,0x70,0x47,0x8B,0x71,0xCA,0x71, + 0x0B,0x72,0xF9,0xE7,0x0A,0x73,0xF7,0xE7,0xF8,0x0A,0x00,0x20,0xA0,0x7A,0x00,0x00, + 0xF8,0xB5,0x06,0x9F,0x07,0x9D,0x0C,0x00,0x1E,0x00,0x88,0x42,0x09,0xD3,0x21,0x00, + 0x10,0x00,0xF9,0xF7,0x41,0xFE,0x38,0x80,0x21,0x00,0x30,0x00,0xF9,0xF7,0x3C,0xFE, + 0x28,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xF8,0xB5,0x08,0xAD,0x60,0xCD,0x04,0x00, + 0x06,0x98,0x91,0x42,0x04,0xDA,0x65,0x80,0xA6,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x99,0x42,0x02,0xDB,0x60,0x80,0x07,0x98,0x0F,0xE0,0x8F,0x1A,0x40,0x1B,0x78,0x43, + 0x99,0x1A,0x00,0x91,0xF9,0xF7,0x20,0xFE,0x40,0x19,0x60,0x80,0x07,0x98,0x00,0x99, + 0x80,0x1B,0x78,0x43,0xF9,0xF7,0x18,0xFE,0x80,0x19,0xA0,0x80,0xE5,0xE7,0x00,0x00, + 0xF3,0xB5,0x8D,0x79,0x0C,0x00,0x1F,0x49,0x28,0x07,0x80,0x08,0x08,0x40,0x86,0x0A, + 0xE0,0x79,0xB6,0x02,0x81,0xB0,0x40,0x07,0x1A,0xD5,0x1B,0x4F,0x00,0x21,0x38,0x89, + 0x00,0x28,0x15,0xD0,0x19,0x4A,0x90,0x42,0x0C,0xD0,0x1E,0x21,0x48,0x43,0x64,0x21, + 0xF9,0xF7,0xD4,0xFE,0x16,0x49,0x09,0x88,0x41,0x18,0x2D,0x20,0x00,0x01,0x81,0x42, + 0x00,0xD9,0x01,0x00,0x88,0x05,0x80,0x0D,0x06,0x43,0x68,0x00,0xC0,0x19,0xC1,0x81, + 0x3F,0x20,0x80,0x02,0x86,0x43,0xE0,0x79,0x01,0x21,0x49,0x07,0x80,0x06,0x00,0x0C, + 0x06,0x43,0x01,0x98,0x80,0x00,0x40,0x18,0x46,0x60,0xE0,0x79,0xC0,0x06,0x80,0x0F, + 0x04,0xD0,0x08,0x48,0x01,0x21,0xC1,0x75,0x00,0x21,0x01,0x76,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xFF,0xFF,0x00,0xFC,0xF0,0x05,0x00,0x20,0xFF,0x0F,0x00,0x00, + 0x08,0x0B,0x00,0x20,0x30,0x0A,0x00,0x20,0x30,0xB4,0x0E,0x4D,0x0C,0x4C,0x2D,0x78, + 0x68,0x43,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x00,0x0A,0x09,0x0E,0x82,0x18, + 0xC9,0x18,0x00,0x20,0x4B,0x1E,0xC0,0x43,0xFF,0x2B,0x06,0xD2,0x53,0x1E,0xFF,0x2B, + 0x03,0xD2,0x10,0x02,0x08,0x43,0x60,0x53,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0x10,0xB4,0x05,0x4C,0x03,0x4B,0x24,0x78, + 0x60,0x43,0x40,0x18,0x40,0x00,0x1A,0x52,0x10,0xBC,0x70,0x47,0x00,0x00,0x10,0x40, + 0xFB,0x0A,0x00,0x20,0x30,0xB4,0x0E,0x4B,0x0C,0x4C,0x1B,0x78,0x58,0x43,0x40,0x18, + 0x43,0x00,0xE0,0x5A,0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18,0x00,0x20, + 0x4D,0x1E,0xC0,0x43,0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2,0x10,0x02, + 0x08,0x43,0xE0,0x52,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0xFB,0x0A,0x00,0x20,0xF0,0xB4,0x15,0x4A,0x15,0x4B,0x52,0x7D,0x13,0x4F,0x00,0x21, + 0x16,0x02,0x16,0x43,0x1A,0x78,0x10,0x4D,0x42,0x43,0x20,0x3F,0x12,0xE0,0xBB,0x7D, + 0x8B,0x42,0x0D,0xD0,0xFB,0x7D,0x8B,0x42,0x0A,0xD0,0x3B,0x7E,0x8B,0x42,0x07,0xD0, + 0x7B,0x7E,0x8B,0x42,0x04,0xD0,0xBB,0x7E,0x8B,0x42,0x01,0xD0,0x53,0x00,0xEE,0x52, + 0x52,0x1C,0x49,0x1C,0x06,0x4B,0x04,0x00,0x1B,0x78,0x5C,0x43,0xE3,0x18,0x93,0x42, + 0xE5,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x20,0x78,0x00,0x00, + 0xFB,0x0A,0x00,0x20,0xF0,0xB4,0x14,0x4A,0x13,0x4B,0x52,0x7D,0x00,0x21,0x11,0x4C, + 0x15,0x02,0x15,0x43,0x11,0x4E,0x20,0x3B,0x13,0xE0,0x9A,0x7D,0x8A,0x42,0x0D,0xD0, + 0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E,0x8A,0x42,0x07,0xD0,0x5A,0x7E,0x8A,0x42, + 0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00,0xA5,0x52,0x32,0x78,0x80,0x18, + 0x49,0x1C,0x07,0x4A,0x37,0x78,0x12,0x78,0x7A,0x43,0x82,0x42,0xE5,0xD8,0xF0,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0x02,0x04,0x04,0x49,0x02,0x43,0x00,0x20,0x40,0x1C,0x04,0xC1, + 0x80,0x28,0xFB,0xD3,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0xF8,0xB5,0x03,0x00, + 0x1E,0x49,0x05,0x20,0xC0,0x01,0x0A,0x18,0x0B,0x20,0x80,0x01,0x0D,0x18,0xC0,0x31, + 0x08,0x6A,0x19,0x4C,0x00,0x90,0x4F,0x6A,0x0E,0x69,0x28,0x68,0x00,0xF0,0x0C,0xFA, + 0x06,0x04,0x0A,0x12,0x15,0x1F,0x26,0x1C,0xC8,0x68,0x20,0x62,0x50,0x6B,0x60,0x62, + 0x02,0x20,0x04,0xE0,0xC8,0x69,0x20,0x62,0x68,0x68,0x60,0x62,0x04,0x20,0xE0,0x62, + 0x00,0x98,0x11,0xE0,0x26,0x62,0x90,0x6B,0x02,0xE0,0x48,0x69,0x20,0x62,0xD0,0x6B, + 0x60,0x62,0x04,0x20,0xE0,0x62,0x67,0x63,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x26,0x62, + 0x60,0x62,0x04,0x20,0xE0,0x62,0x88,0x6A,0x60,0x63,0xF5,0xE7,0x89,0x69,0x21,0x62, + 0x60,0x62,0x05,0x20,0xE0,0x62,0xEF,0xE7,0x80,0x90,0x00,0x40,0x00,0x78,0x00,0x00, + 0x07,0x4A,0x10,0xB5,0xD1,0x88,0x40,0x23,0x00,0x28,0x01,0xD0,0x19,0x43,0x00,0xE0, + 0x99,0x43,0xD1,0x80,0xFF,0xF7,0xFE,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xFE,0xB5,0x41,0x4C,0x05,0x00,0x27,0x6A,0x0E,0x00,0x60,0x6A, + 0x02,0x90,0x60,0x6B,0x01,0x90,0xE0,0x6A,0x00,0x90,0x00,0x20,0xFF,0xF7,0x9E,0xFF, + 0x73,0x20,0x00,0x01,0x20,0x62,0x23,0x20,0x60,0x62,0x07,0x20,0x40,0x02,0x60,0x63, + 0x02,0x20,0xE0,0x62,0x00,0x20,0xFB,0xF7,0x45,0xFD,0x35,0x48,0x00,0x7A,0x00,0x28, + 0x01,0xD0,0xFE,0xF7,0x4B,0xFA,0xFB,0xF7,0x89,0xFD,0x2C,0x00,0x46,0xE0,0x68,0x1E, + 0x84,0x42,0x01,0xD1,0xFB,0xF7,0xAC,0xFD,0xFB,0xF7,0x4E,0xFD,0xFB,0xF7,0xFC,0xFD, + 0x00,0x2E,0x2E,0xD1,0xA8,0x00,0x05,0x21,0xF9,0xF7,0x60,0xFD,0xA0,0x42,0x03,0xD8, + 0x01,0x22,0x11,0x00,0x04,0x20,0x21,0xE0,0x68,0x00,0x28,0x18,0x05,0x21,0xF9,0xF7, + 0x55,0xFD,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x03,0x20,0x16,0xE0,0x68,0x00, + 0x05,0x21,0xF9,0xF7,0x4B,0xFD,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x02,0x20, + 0x0C,0xE0,0x05,0x21,0x28,0x00,0xF9,0xF7,0x41,0xFD,0xA0,0x42,0x03,0xD8,0x01,0x22, + 0x11,0x00,0x10,0x00,0x02,0xE0,0x01,0x22,0x11,0x00,0x00,0x20,0xFB,0xF7,0xD2,0xFA, + 0x0C,0xE0,0x68,0x00,0x03,0x21,0xF9,0xF7,0x31,0xFD,0xA0,0x42,0xDB,0xD9,0x03,0x21, + 0x28,0x00,0xF9,0xF7,0x2B,0xFD,0xA0,0x42,0xE9,0xD8,0xDE,0xE7,0x64,0x1E,0xB6,0xD2, + 0x0C,0x48,0x44,0x88,0x03,0xE0,0xFB,0xF7,0x07,0xFD,0xFB,0xF7,0xB5,0xFD,0x64,0x1E, + 0xF9,0xD2,0xFB,0xF7,0x2B,0xFD,0x05,0x48,0x07,0x62,0x02,0x99,0x41,0x62,0x01,0x99, + 0x41,0x63,0x00,0x99,0xC1,0x62,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x80,0x90,0x00,0x40, + 0x80,0x78,0x00,0x00,0xE0,0x7A,0x00,0x00,0x30,0xB4,0x0D,0x4D,0xEC,0x7B,0x00,0x2C, + 0x13,0xD0,0x02,0x68,0x0B,0x68,0xA4,0x07,0x03,0xD5,0x2C,0x8C,0xA2,0x1A,0x52,0x1E, + 0x02,0x60,0xEC,0x7B,0x64,0x07,0x03,0xD5,0x6C,0x8C,0xE3,0x1A,0x5B,0x1E,0x0B,0x60, + 0xEC,0x7B,0xE4,0x07,0x01,0xD0,0x03,0x60,0x0A,0x60,0x30,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x78,0x00,0x00,0x02,0x49,0x00,0x03,0x40,0x18,0xC0,0x68,0x70,0x47,0x00,0x00, + 0x00,0x20,0x00,0x40,0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47,0xAD,0x0B,0x00,0x20, + 0x30,0xB4,0x05,0x03,0x05,0x48,0x02,0x9C,0x28,0x18,0x02,0x60,0x41,0x60,0x00,0x2B, + 0x00,0xD0,0x03,0x61,0x84,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x02,0x4A,0x00,0x03,0x80,0x18,0x01,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x11,0x43,0x81,0x60, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68, + 0xFF,0x22,0x01,0x32,0x91,0x43,0x81,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x0F,0x49,0x89,0x7B,0x81,0x42,0x00,0xD2,0x08,0x00,0x01,0x22,0x52,0x07,0x01,0x28, + 0x0C,0xD1,0x91,0x68,0x8B,0x0F,0xDB,0x07,0x04,0xD0,0x89,0x00,0x89,0x08,0x83,0x07, + 0xC9,0x18,0x01,0xE0,0x89,0x00,0x89,0x08,0x51,0x60,0x07,0xE0,0x01,0x28,0x05,0xD9, + 0x01,0x21,0xC9,0x07,0x83,0x05,0x9B,0x0D,0x19,0x43,0xF5,0xE7,0x10,0x60,0x70,0x47, + 0x00,0x78,0x00,0x00,0xF8,0xB5,0x17,0x48,0x00,0x24,0x40,0x78,0x00,0x28,0x25,0xD0, + 0x15,0x4D,0x13,0x26,0x00,0x20,0xB6,0x01,0xAB,0x19,0x12,0xE0,0x81,0x00,0x49,0x19, + 0x89,0x19,0xCA,0x68,0x97,0x0F,0xFF,0x07,0x0A,0xD0,0x92,0x00,0x01,0x27,0x92,0x08, + 0xFF,0x07,0xD2,0x19,0x64,0x1C,0xCA,0x60,0xA1,0x00,0xBF,0x08,0xC9,0x19,0x4A,0x60, + 0x40,0x1C,0x99,0x7A,0x81,0x42,0xE9,0xDC,0x08,0x48,0x09,0x22,0x00,0x21,0xFE,0xF7, + 0x2F,0xF9,0x20,0x00,0xFF,0xF7,0xB4,0xFF,0xFC,0xF7,0x18,0xFD,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x50,0x07,0x00,0x20,0xF0,0x05,0x00,0x20,0xB1,0x0A,0x00,0x20, + 0x08,0x48,0x10,0xB5,0x04,0x04,0x24,0x0C,0x07,0x49,0x00,0x22,0x20,0x00,0xF9,0xF7, + 0x65,0xFC,0x05,0x4A,0x05,0x49,0x20,0x00,0x00,0x23,0xF9,0xF7,0x67,0xFC,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0x00,0x03,0x00,0x00,0xC8,0x02,0x00,0x20, + 0x70,0xB5,0x05,0x00,0x08,0x48,0x00,0x22,0x04,0x04,0x24,0x0C,0x40,0x21,0x20,0x00, + 0xF9,0xF7,0x4C,0xFC,0x40,0x22,0x29,0x00,0x20,0x00,0x00,0x23,0xF9,0xF7,0x4E,0xFC, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x75,0x00,0x00,0x02,0x4B,0x58,0x60, + 0x99,0x60,0x1A,0x60,0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40,0x01,0x04,0x00,0xB5, + 0x03,0x48,0x02,0x22,0x09,0x0C,0xFF,0xF7,0xF1,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xE1,0x04,0x00,0x00,0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x30,0x00,0x40,0x02,0x48,0x01,0x68,0x49,0x08,0x49,0x00,0x01,0x60,0x70,0x47, + 0x00,0x30,0x00,0x40,0x02,0x49,0x02,0x22,0x0A,0x61,0x88,0x60,0x70,0x47,0x00,0x00, + 0x00,0x30,0x00,0x40,0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47,0xAC,0x0B,0x00,0x20, + 0x00,0x04,0x00,0x0C,0x01,0x21,0x89,0x07,0x08,0x61,0x70,0x47,0x01,0x20,0x80,0x07, + 0x81,0x68,0x82,0x15,0x11,0x43,0x81,0x60,0x70,0x47,0x01,0x21,0x89,0x07,0x88,0x68, + 0x8A,0x15,0x90,0x43,0x88,0x60,0x70,0x47,0x70,0xB4,0x03,0xAC,0x30,0xCC,0x06,0x68, + 0x96,0x42,0x01,0xDB,0x32,0x00,0x00,0xE0,0x02,0x60,0x9A,0x42,0x00,0xDD,0x03,0x60, + 0x08,0x68,0xA0,0x42,0x00,0xDA,0x0C,0x60,0x08,0x68,0xA8,0x42,0x00,0xDD,0x0D,0x60, + 0x70,0xBC,0x70,0x47,0x00,0x47,0x00,0x00,0x78,0x47,0xC0,0x46,0x01,0xC0,0x5E,0xE5, + 0x0C,0x00,0x53,0xE1,0x03,0x30,0xDE,0x37,0x0C,0x30,0xDE,0x27,0x83,0xC0,0x8E,0xE0, + 0x1C,0xFF,0x2F,0xE1,0x10,0xB5,0xF9,0xF7,0xE1,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x01,0x00,0x00,0x00,0x01,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00, + 0x89,0x08,0x49,0x1E,0xC9,0x04,0x01,0x22,0xC9,0x08,0xD2,0x07,0x89,0x18,0x40,0x04, + 0x40,0x0C,0x01,0x43,0x03,0x48,0x41,0x61,0x41,0x69,0x00,0x29,0xFC,0xDB,0x80,0x6B, + 0x70,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0B,0x30,0x0B,0x30,0x00,0x03,0x03,0x00,0x04,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,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,0xFF,0x00,0x00,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xC0,0x0F,0x00,0x7F,0xC0,0x0F,0x01,0x7F,0xC1,0x0F,0x02,0x3F,0xC3,0x0F,0x03, + 0xBF,0xC3,0x0F,0x04,0x9F,0xC3,0x0F,0x05,0xDF,0x83,0x0F,0x06,0xCF,0x83,0x0F,0x07, + 0xEF,0x03,0x0F,0x08,0xE7,0x43,0x0F,0x09,0xF7,0x43,0x0E,0x0A,0xF3,0xC3,0x0E,0x0B, + 0xFB,0xC3,0x0C,0x4C,0xF9,0xC3,0x0D,0x0D,0xFD,0xC3,0x09,0x0E,0xFC,0xC3,0x0B,0x0F, + 0xFE,0xC3,0x03,0x10,0xFE,0xC3,0x07,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x13, + 0x00,0x02,0xA0,0x0A,0x00,0x0C,0x90,0x0C,0x00,0x03,0xB0,0x0E,0x00,0x18,0x80,0x10, + 0x80,0x01,0xC0,0x12,0x00,0x30,0x70,0x1C,0xC0,0x00,0xD0,0x1E,0x00,0x60,0x60,0x20, + 0x60,0x00,0xE0,0x22,0x00,0xC0,0x50,0x00,0x30,0x00,0xF0,0x00,0x08,0x80,0x40,0x00, + 0x10,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xE0,0xC3,0x03,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x24,0x24,0x24,0x24,0x24,0x26,0x24,0x24,0x26,0x28,0x26,0x26,0x26,0x26, + 0x2A,0x26,0x26,0x20,0x20,0x25,0x20,0x20,0x20,0x28,0x20,0x20,0x55,0x55,0x20,0x55, + 0x55,0x55,0x20,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x03,0x03,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x05,0x08,0x02,0x00, + 0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x06,0xFF,0xFF,0xFF,0x00,0x00,0xC8,0x05,0x1E, + 0xF0,0x00,0x40,0x01,0xE8,0x03,0x00,0x00,0x74,0x27,0x00,0x00,0x3C,0x28,0x00,0x00, + 0xE0,0x93,0x04,0x00,0x01,0x5A,0xD0,0x07,0xD0,0x07,0x00,0x00,0x04,0xC8,0x65,0x65, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x69,0x00,0x6C,0x00,0x00,0x00,0x00,0x00, + 0x78,0x00,0xA0,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x15,0x04,0x02,0x32,0x00, + 0x2C,0x01,0x2C,0x01,0x00,0x00,0x00,0x00,0x50,0x00,0x5A,0x00,0x32,0x00,0xB8,0x0B, + 0x50,0x00,0x5A,0x00,0x32,0x00,0xE8,0x03,0x64,0x00,0x32,0x00,0x00,0x00,0x00,0x00, + 0x04,0x01,0x05,0x0F,0x01,0x01,0x04,0x00,0x01,0x05,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x07,0x00,0x00,0x20,0x05,0x00,0x00, + 0x20,0x05,0x00,0x00,0x20,0x05,0x00,0x00,0x20,0x05,0x00,0x00,0x20,0x05,0x00,0x00, + 0x00,0x0E,0x00,0x00,0x60,0x0F,0x00,0x00,0x60,0x0F,0x00,0x00,0x9D,0x39,0x2C,0x01, + 0x28,0x00,0x1D,0x00,0x64,0x32,0x64,0x32,0x1E,0x00,0x46,0x00,0x32,0x00,0x05,0x00, + 0x64,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x5F,0x00,0x90,0x01,0x90,0x01,0x90,0x01, + 0x90,0x01,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00, + 0x0A,0x02,0x32,0x00,0xB8,0x0B,0xBC,0x02,0x0A,0x00,0x32,0x32,0x96,0x32,0x40,0x64, + 0x64,0x64,0xFF,0x00,0x00,0x00,0x5E,0x01,0x3C,0x00,0x1E,0x00,0x28,0xFA,0x0C,0x78, + 0x00,0x05,0x04,0x0A,0x01,0x06,0x20,0x03,0x3C,0x00,0x0A,0x3C,0x00,0x05,0x1E,0x00, + 0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xDC,0x00,0x05,0x02,0x01,0x01,0x01,0x00,0x02,0x03,0x05,0x00,0x03,0x03,0x06,0x06, + 0x09,0x09,0x0C,0x0C,0x0F,0x55,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00,0x41,0xF2,0x00,0x00, + 0x08,0x08,0x88,0x00,0x20,0x5F,0x20,0x3F,0x00,0x00,0x00,0x00,0x64,0x00,0x46,0x00, + 0x99,0x19,0x90,0x01,0x32,0x00,0x1D,0x00,0x64,0x46,0x64,0x32,0x64,0x00,0x3C,0x00, + 0xFA,0x00,0xFA,0x00,0x96,0x00,0x64,0x00,0x01,0x00,0x0A,0x02,0x50,0x00,0xF4,0x01, + 0xF4,0x01,0xF4,0x01,0x90,0x01,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00, + 0xFF,0xFF,0x00,0x00,0x08,0x02,0x32,0x00,0xDC,0x05,0xF4,0x01,0x0A,0x00,0x32,0x32, + 0x96,0x32,0x40,0x64,0x64,0x64,0xFF,0x00,0x00,0x00,0xC2,0x01,0x28,0x00,0x14,0x00, + 0xFF,0xFF,0x0D,0xFF,0x00,0x05,0x04,0x0A,0x02,0x06,0xD0,0x07,0x3C,0x00,0x0F,0x3C, + 0x00,0x05,0x1E,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xDC,0x00,0x05,0x04,0x01,0x01,0x01,0x00,0x04,0x03,0x01,0x00, + 0x04,0x04,0x08,0x08,0x0C,0x0C,0x10,0x10,0x14,0x55,0x01,0x00,0x05,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00, + 0x41,0xF2,0x00,0x00,0x08,0x08,0xA8,0x00,0x20,0x5F,0x20,0x3F,0x00,0x00,0x00,0x00, + 0x78,0x00,0x64,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00, + 0x96,0x00,0x0F,0x00,0x05,0x00,0x00,0x00,0x1E,0x00,0xC8,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x96,0x00,0xC8,0x00,0x00,0x00, + 0x23,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x22,0x00,0x00,0x00, + 0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x64,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x14,0x00,0x00,0x5A,0x5A,0x5A,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x28,0x00,0x50,0x00,0x1E,0x00,0x50,0x00,0x28,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x41,0x95,0x00,0x00,0x00,0x00,0x00,0x00,0xD0,0x47,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFF,0x0F,0x02,0x00,0x04,0x07,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0D,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x20,0x05,0x00,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x01,0x00,0x00,0x00,0xFF,0x0F,0xC8,0x00, + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x41,0xF2,0x00,0x00, + 0x10,0x00,0x10,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00,0x08,0x08,0x88,0x00, + 0x20,0x5F,0x20,0x3F,0xFF,0xFF,0x00,0x00,0x10,0x10,0x08,0x84,0x00,0x00,0xAC,0x0D, + 0x01,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x08,0x20, + 0x51,0x55,0x13,0x00,0x11,0x90,0x01,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, + 0x87,0x88,0x78,0x00,0x40,0x60,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x00,0x00,0x00, + 0x33,0x30,0x03,0x00,0x70,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x30,0x12,0x14,0x00,0x00,0x0C,0x0C,0x06,0x00, + 0x00,0x04,0x7C,0x74,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x1F,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x80,0x00,0x03,0x64,0x40,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x00,0x00,0x00, + 0x00,0x80,0x00,0x00,0xC8,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x40,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x4F,0x31,0x1F,0x01,0x4F,0x31,0x1F,0x01,0x4F,0x31,0x1F,0x01,0x4F,0x31,0x1F,0x01, + 0x4F,0x31,0x1F,0x01,0x4F,0x31,0x1F,0x01,0x4F,0x31,0x1F,0x01,0x4F,0x31,0x1F,0x01, + 0x4F,0x31,0x1F,0x01,0x4F,0x31,0x1F,0x01,0x4F,0x31,0x1F,0x01,0x4F,0x31,0x1F,0x01, + 0x4F,0x31,0x1F,0x01,0x4F,0x31,0x1F,0x01,0x4F,0x31,0x1F,0x01,0x4F,0x31,0x1F,0x01, + 0x4F,0x31,0x1F,0x01,0x4F,0x31,0x1F,0x01,0x4F,0x31,0x1F,0x01,0x4F,0x31,0x1F,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x0D,0x00,0xA0,0xE1,0x10,0xD0,0x9F,0xE5,0x01,0x40,0x2D,0xE9,0x77,0x01,0x00,0xEB, + 0x01,0x40,0xBD,0xE8,0x00,0xD0,0xA0,0xE1,0x1E,0xFF,0x2F,0xE1,0xF0,0x0F,0x00,0x20, + 0x92,0x10,0x00,0xE0,0x02,0xC0,0x52,0x1E,0xFC,0xD2,0x70,0x47,0x40,0x1E,0xFD,0xD2, + 0x70,0x47,0xF0,0xB5,0xFB,0x49,0xFA,0x4A,0x01,0x20,0x08,0x61,0xF9,0x4C,0x00,0x21, + 0x61,0x61,0xA1,0x61,0x0B,0x00,0xF7,0x4C,0x00,0x21,0x61,0x61,0x01,0x00,0x49,0x1E, + 0xFD,0xD2,0x03,0x21,0x09,0x04,0x61,0x61,0x01,0x00,0x49,0x1E,0xFD,0xD2,0x01,0x27, + 0x3F,0x04,0x67,0x61,0x01,0x00,0x49,0x1E,0xFD,0xD2,0x01,0x26,0x35,0x00,0x9D,0x40, + 0x31,0x04,0x29,0x43,0x61,0x61,0x01,0x00,0x49,0x1E,0xFD,0xD2,0x65,0x61,0x41,0x00, + 0x8E,0x46,0x49,0x1E,0xFD,0xD2,0xE7,0x69,0x00,0x21,0x5C,0x01,0xA4,0x46,0x64,0x46, + 0x64,0x18,0x3D,0x00,0xCD,0x40,0x16,0x5D,0xED,0x07,0xED,0x0F,0x75,0x19,0x49,0x1C, + 0x20,0x29,0x15,0x55,0xF3,0xD3,0x5B,0x1C,0x10,0x2B,0xCC,0xD3,0xDD,0x4C,0x00,0x21, + 0x61,0x61,0xA1,0x61,0x0B,0x00,0xDB,0x4C,0x00,0x21,0xA1,0x61,0x01,0x00,0x49,0x1E, + 0xFD,0xD2,0x03,0x21,0x09,0x04,0xA1,0x61,0x01,0x00,0x49,0x1E,0xFD,0xD2,0x01,0x25, + 0x2D,0x04,0xA5,0x61,0x01,0x00,0x49,0x1E,0xFD,0xD2,0x01,0x26,0x9E,0x40,0x31,0x00, + 0x29,0x43,0xA1,0x61,0x01,0x00,0x49,0x1E,0xFD,0xD2,0xA6,0x61,0x71,0x46,0x49,0x1E, + 0xFD,0xD2,0xE7,0x69,0x5C,0x01,0xFF,0x34,0x00,0x21,0xFF,0x34,0x02,0x34,0xA4,0x46, + 0x64,0x46,0x64,0x18,0x3D,0x00,0xCD,0x40,0x16,0x5D,0xED,0x07,0xED,0x0F,0x75,0x19, + 0x49,0x1C,0x20,0x29,0x15,0x55,0xF3,0xD3,0x5B,0x1C,0x10,0x2B,0xCB,0xD3,0x40,0x1C, + 0xC8,0x28,0x8B,0xD9,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xBF,0x48,0x10,0xB5,0x40,0x6B, + 0xBE,0x4C,0xC5,0x22,0xA0,0x60,0x20,0x00,0xD2,0x00,0x00,0x21,0x0C,0x30,0xFF,0xF7, + 0x6F,0xFF,0x01,0x20,0x20,0x70,0xFF,0xF7,0x74,0xFF,0xB9,0x48,0xB9,0x49,0xC8,0x61, + 0xB9,0x48,0xC2,0x68,0x52,0x08,0x52,0x00,0xC2,0x60,0xFE,0x22,0xC2,0x60,0x00,0x22, + 0x42,0x61,0x20,0x00,0x0C,0x30,0x04,0xC8,0xCA,0x61,0x4A,0x69,0x52,0x06,0xFC,0xD4, + 0xF9,0xE7,0x10,0xB4,0xB1,0x4C,0x20,0x68,0xE1,0x05,0x80,0x00,0x80,0x08,0x40,0x18, + 0x20,0x60,0x60,0x68,0x80,0x00,0x80,0x08,0x60,0x60,0xA0,0x68,0x80,0x00,0x80,0x08, + 0xA0,0x60,0x00,0x20,0x81,0x00,0x0A,0x19,0x11,0x6A,0x40,0x1C,0x8B,0x00,0xC9,0x01, + 0xDB,0x0E,0xC9,0x0E,0x49,0x06,0x1B,0x05,0x19,0x43,0x14,0x28,0x11,0x62,0xF1,0xD3, + 0xA2,0x48,0xA3,0x49,0x40,0x30,0x01,0x63,0xA2,0x49,0x41,0x63,0xA2,0x49,0x08,0x69, + 0x40,0x08,0x40,0x00,0x08,0x61,0xA0,0x48,0x40,0x30,0x01,0x68,0x9F,0x49,0x01,0x60, + 0x9F,0x48,0x95,0x49,0xC8,0x60,0x10,0xBC,0x70,0x47,0xFC,0xB5,0x9D,0x4C,0x02,0x00, + 0x30,0x34,0x18,0xCC,0x00,0x20,0x00,0x94,0x9B,0x4C,0x24,0x7D,0xE4,0x07,0x2D,0xD0, + 0x8E,0x4C,0x25,0x79,0xE6,0x78,0x98,0x4C,0xAE,0x46,0xA5,0x7D,0x00,0x2E,0x76,0x46, + 0xAC,0x46,0xE5,0x7D,0x01,0x95,0x25,0x7E,0x67,0x7E,0xA4,0x7E,0x10,0xD0,0xB2,0x42, + 0x1C,0xD1,0x8C,0x45,0x08,0xD0,0x01,0x9A,0x8A,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0, + 0x8F,0x42,0x01,0xD0,0x8C,0x42,0x00,0xD1,0x00,0x98,0xFC,0xBC,0x08,0xBC,0x18,0x47, + 0xB1,0x42,0x0B,0xD1,0x94,0x45,0xF7,0xD0,0x01,0x99,0x91,0x42,0xF4,0xD0,0x95,0x42, + 0xF2,0xD0,0x97,0x42,0xF0,0xD0,0x94,0x42,0xEE,0xD0,0xEE,0xE7,0x18,0x00,0xEC,0xE7, + 0x30,0xB4,0x76,0x4B,0x81,0x4C,0x5B,0x78,0x58,0x43,0x40,0x18,0x43,0x00,0xE0,0x5A, + 0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18,0x00,0x20,0x4D,0x1E,0xC0,0x43, + 0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2,0x10,0x02,0x08,0x43,0xE0,0x52, + 0x00,0x20,0x30,0xBC,0x70,0x47,0xF3,0xB5,0x75,0x48,0x82,0xB0,0x01,0x90,0x00,0x20, + 0x00,0x90,0x6D,0x48,0xC1,0x68,0x01,0x22,0x11,0x43,0xC1,0x60,0x63,0x4F,0x6A,0x48, + 0xC0,0x68,0xC0,0x07,0xFB,0xD0,0x00,0x24,0x26,0x00,0x25,0xE0,0x00,0x25,0x1F,0xE0, + 0x29,0x00,0x30,0x00,0xFF,0xF7,0x91,0xFF,0x00,0x28,0x17,0xD0,0x79,0x78,0x01,0x9A, + 0x71,0x43,0x49,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A,0x02,0x99, + 0x00,0x29,0x02,0xD0,0x00,0x28,0x09,0xDA,0x01,0xE0,0x00,0x28,0x06,0xDD,0x03,0x9A, + 0x29,0x00,0x30,0x00,0xFF,0xF7,0xB4,0xFF,0x40,0x1C,0x00,0xD1,0x64,0x1C,0x6D,0x1C, + 0x78,0x78,0x85,0x42,0xDC,0xD3,0x76,0x1C,0xB8,0x78,0x86,0x42,0xD6,0xD3,0xB8,0x78, + 0x79,0x78,0x48,0x43,0xA0,0x42,0x0A,0xD0,0x00,0x98,0x41,0x1C,0x00,0x91,0x01,0x21, + 0x49,0x02,0x88,0x42,0x03,0xD8,0x4C,0x48,0xC1,0x68,0xC1,0x60,0xBF,0xE7,0xFF,0xBC, + 0x08,0xBC,0x18,0x47,0xF0,0xB4,0x00,0x21,0x4C,0x4C,0x4B,0x4B,0x3F,0x4E,0x1E,0x25, + 0x13,0xE0,0x9A,0x7D,0x8A,0x42,0x0D,0xD0,0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E, + 0x8A,0x42,0x07,0xD0,0x5A,0x7E,0x8A,0x42,0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0, + 0x42,0x00,0xA5,0x52,0x72,0x78,0x80,0x18,0x49,0x1C,0xB2,0x78,0x77,0x78,0x7A,0x43, + 0x82,0x42,0xE6,0xD8,0xF0,0xBC,0x70,0x47,0xF0,0xB4,0x30,0x4B,0x00,0x21,0x5A,0x78, + 0x1E,0x26,0x3A,0x4D,0x42,0x43,0x38,0x4F,0x12,0xE0,0xBB,0x7D,0x8B,0x42,0x0D,0xD0, + 0xFB,0x7D,0x8B,0x42,0x0A,0xD0,0x3B,0x7E,0x8B,0x42,0x07,0xD0,0x7B,0x7E,0x8B,0x42, + 0x04,0xD0,0xBB,0x7E,0x8B,0x42,0x01,0xD0,0x53,0x00,0xEE,0x52,0x52,0x1C,0x49,0x1C, + 0x22,0x4B,0x04,0x00,0x5B,0x78,0x5C,0x43,0xE3,0x18,0x93,0x42,0xE5,0xD8,0xD9,0xE7, + 0x02,0x04,0x2A,0x49,0x02,0x43,0x00,0x20,0x40,0x1C,0x04,0xC1,0x80,0x28,0xFB,0xD3, + 0x70,0x47,0xF0,0xB5,0x19,0x4C,0x23,0x4D,0x21,0x78,0x25,0x4E,0xA8,0x6B,0x00,0x29, + 0x00,0xD0,0x00,0x0C,0x00,0x06,0x00,0x0E,0x01,0x02,0x01,0x43,0x08,0x04,0x00,0x0C, + 0xFF,0xF7,0xE6,0xFF,0x1C,0x48,0x00,0x7D,0xC0,0x07,0x08,0xD0,0xE0,0x78,0x00,0x28, + 0x20,0x79,0x02,0xD0,0xFF,0xF7,0xB8,0xFF,0x01,0xE0,0xFF,0xF7,0x93,0xFF,0x12,0x48, + 0x00,0x21,0x80,0x30,0xC1,0x62,0x09,0x4A,0xE8,0x6B,0x12,0x78,0x00,0x2A,0x06,0x4A, + 0x51,0x63,0x51,0x68,0x26,0xD1,0x09,0x09,0x09,0x01,0x00,0x07,0x00,0x0F,0x25,0xE0, + 0x08,0x08,0x00,0x20,0x00,0xA1,0x00,0x40,0x00,0xA0,0x00,0x40,0xFC,0x05,0x00,0x20, + 0xAB,0xFC,0xFF,0x8F,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x80,0x06,0x10,0x40, + 0xFF,0xF3,0x0F,0x00,0x02,0x00,0x02,0x00,0x00,0x90,0x00,0x40,0x0D,0x12,0x00,0x00, + 0xF0,0xC3,0x0F,0x00,0xC0,0x0F,0x00,0x20,0x00,0x78,0x00,0x00,0x00,0x00,0x10,0x40, + 0x00,0x02,0x10,0x40,0x09,0x09,0x09,0x01,0x00,0x03,0x00,0x0F,0x01,0x43,0x51,0x60, + 0x03,0x24,0x27,0x1F,0x01,0xE0,0x03,0x2C,0x02,0xD1,0x01,0x25,0xED,0x43,0x09,0xE0, + 0x02,0x2C,0x01,0xD1,0x01,0x25,0x05,0xE0,0x01,0x2C,0x01,0xD1,0x3D,0x00,0x01,0xE0, + 0x00,0x2C,0xF7,0xD0,0xE0,0x07,0xC0,0x0F,0x29,0x00,0xFF,0xF7,0xF4,0xFE,0x64,0x1E, + 0xE9,0xD5,0x4F,0x4D,0x01,0x27,0x2B,0x00,0x0C,0x3B,0x18,0x78,0x00,0x28,0x23,0xD1, + 0x4C,0x4A,0x09,0x20,0xD1,0x68,0x39,0x43,0xD1,0x60,0xD1,0x68,0xC9,0x07,0xFC,0xD0, + 0x40,0x1E,0x41,0x1C,0xF6,0xD1,0x0E,0xE0,0x00,0x20,0x08,0xE0,0x4A,0x43,0x12,0x18, + 0x94,0x00,0x34,0x59,0x52,0x00,0x24,0x05,0x24,0x0D,0x40,0x1C,0xAC,0x52,0x5A,0x78, + 0x90,0x42,0xF3,0xD3,0x49,0x1C,0x98,0x78,0x81,0x42,0xED,0xD3,0x19,0x78,0x18,0x00, + 0x00,0x29,0x01,0xD1,0x81,0x68,0x02,0xE0,0x98,0x68,0x01,0x0C,0x09,0x04,0x3A,0x48, + 0x41,0x63,0x38,0x4A,0x09,0x20,0xD1,0x68,0x39,0x43,0xD1,0x60,0xD1,0x68,0xC9,0x07, + 0xFC,0xD0,0x40,0x1E,0xF7,0xD2,0x00,0x27,0x29,0xE0,0x00,0x24,0x21,0xE0,0x21,0x00, + 0x38,0x00,0xFF,0xF7,0x5A,0xFE,0x00,0x28,0x1A,0xD0,0x2D,0x49,0x0C,0x39,0x0A,0x78, + 0x00,0x2A,0x15,0xD1,0x49,0x78,0x79,0x43,0x0A,0x19,0x53,0x00,0xE9,0x5A,0x81,0x42, + 0x04,0xD9,0x09,0x1A,0x09,0x04,0xC9,0x0C,0x40,0x18,0x03,0xE0,0x41,0x1A,0x09,0x04, + 0xC9,0x0C,0x40,0x1A,0x91,0x00,0x71,0x58,0x09,0x05,0x09,0x0D,0x40,0x1A,0xE8,0x52, + 0x64,0x1C,0x1F,0x48,0x0C,0x38,0x40,0x78,0x84,0x42,0xD8,0xD3,0x7F,0x1C,0x1C,0x48, + 0x0C,0x38,0x81,0x78,0x8F,0x42,0xD0,0xD3,0xD4,0xE5,0xF0,0xB5,0x18,0x4D,0x1B,0x4E, + 0x00,0x24,0x01,0x27,0x0C,0x3D,0x17,0x48,0x40,0x30,0x01,0x68,0x15,0x4A,0x08,0x04, + 0x00,0x0E,0x09,0x06,0x09,0x0E,0x68,0x70,0xA9,0x70,0x12,0x69,0xD2,0x07,0xD2,0x0F, + 0x32,0x7D,0x02,0xD0,0x92,0x07,0x06,0xD4,0x01,0xE0,0x92,0x07,0x03,0xD5,0x49,0x1E, + 0x29,0x71,0xEF,0x70,0x03,0xE0,0x40,0x1E,0x28,0x71,0x00,0x20,0xE8,0x70,0x20,0x00, + 0x64,0x1C,0xFF,0xF7,0xFE,0xFE,0x28,0x78,0x01,0x28,0x01,0xD0,0x01,0x2C,0x05,0xD0, + 0x02,0x2C,0x03,0xD0,0xFF,0xF7,0xCD,0xFD,0x01,0x2C,0xD4,0xD9,0xA2,0xE5,0x00,0x00, + 0x08,0x06,0x00,0x20,0x00,0x90,0x00,0x40,0x00,0xA0,0x00,0x40,0x00,0x78,0x00,0x00, + 0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x2B,0x01,0x00,0x20,0x49,0x53,0x54,0x56, + 0x31,0x54,0x41,0x47,0x40,0x04,0x00,0x00,0xC0,0x7B,0x00,0x00,0xC0,0x75,0x00,0x00, + 0x40,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x7B,0x00,0x00, + 0x00,0x01,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x76,0x00,0x00, + 0x00,0x02,0x00,0x00,0x63,0x00,0x35,0x00,0x00,0x00,0x00,0x00,0x49,0x53,0x54,0x56, + 0x31,0x54,0x41,0x47}; + +#endif // __IST30XXB_FW_H__ diff --git a/drivers/input/touchscreen/ist30xxb/IST30xxB_FW_Corsica_VE_Ver0007.h b/drivers/input/touchscreen/ist30xxb/IST30xxB_FW_Corsica_VE_Ver0007.h new file mode 100644 index 00000000..034fe46e --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/IST30xxB_FW_Corsica_VE_Ver0007.h @@ -0,0 +1,2162 @@ +#ifndef __IST30XXB_FW_H__ +#define __IST30XXB_FW_H__ + +/* ist30xxb binary: Corsica VE EELY, f/w 7( 30401) */ +static unsigned char ist30xxb_fw[] = { + 0x06,0x00,0x00,0xEA,0x2C,0x00,0x00,0xEA,0x2B,0x00,0x00,0xEA,0x2A,0x00,0x00,0xEA, + 0x29,0x00,0x00,0xEA,0x28,0x00,0x00,0xEA,0x27,0x00,0x00,0xEA,0x3E,0x00,0x00,0xEA, + 0x14,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0xA0,0xE1,0x00,0x00,0x00,0xEA,0x0C,0x20,0x00,0x40, + 0x11,0x01,0xA0,0xE3,0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0xC1,0x01,0xA0,0xE3, + 0x1C,0x10,0x9F,0xE5,0x00,0x10,0x80,0xE5,0x18,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0xF1,0x01,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0x01,0x00,0x00,0xEA,0xC8,0x74,0x00,0x00,0x4C,0x00,0x00,0x40,0x00,0x00,0x0F,0xE1, + 0x1F,0x00,0xC0,0xE3,0xD1,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x1C,0xD0,0x9F,0xE5, + 0xD3,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x14,0xD0,0x9F,0xE5,0x00,0x00,0x0F,0xE1, + 0xC0,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x08,0x00,0x9F,0xE5,0x10,0xFF,0x2F,0xE1, + 0xFC,0x0F,0x00,0x20,0xC0,0x0F,0x00,0x20,0xA7,0x01,0x00,0x00,0x11,0x01,0xA0,0xE3, + 0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x5C,0x30,0x9F,0xE5,0x5C,0x40,0x9F,0xE5, + 0x00,0x40,0x83,0xE5,0x91,0x01,0xA0,0xE3,0x33,0x16,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0xAC,0x00,0x1F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0x00,0x40,0x83,0xE5, + 0xFF,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x03,0x00,0x00,0xEB,0xFE,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0x00,0xEB,0xF7,0xFF,0xFF,0xEA,0x01,0x29,0xA0,0xE3, + 0x01,0x20,0x52,0xE2,0xFD,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0xFF,0x40,0x2D,0xE9, + 0xC6,0x00,0x00,0xEB,0xFF,0x40,0xBD,0xE8,0x04,0xF0,0x5E,0xE2,0x1C,0x40,0x00,0x30, + 0x70,0xE9,0x1C,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x3C,0x4A,0x3A,0x48,0x3A,0x49,0x92,0x08,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x38,0x48,0x01,0x21,0xC9,0x02,0x01,0x62, + 0x00,0x21,0x01,0x62,0x01,0x62,0x36,0x49,0x36,0x48,0x01,0x60,0x20,0x21,0x41,0x60, + 0xA0,0x21,0x81,0x60,0x70,0x47,0xF8,0xB5,0x30,0x4B,0x9F,0x6A,0x32,0x48,0x00,0x69, + 0x42,0x08,0x58,0x69,0x19,0x15,0x08,0x43,0x58,0x61,0xFF,0xF7,0xE5,0xFF,0x58,0x69, + 0xFF,0x21,0x81,0x31,0x08,0x43,0x58,0x61,0x2C,0x48,0x2D,0x4C,0x20,0x60,0xFF,0x20, + 0x90,0x30,0x60,0x60,0x13,0x20,0xA0,0x60,0xA0,0x68,0xA6,0x15,0x30,0x43,0xA0,0x60, + 0x24,0x4D,0x5F,0x23,0x00,0x2F,0x27,0xD1,0x26,0x4F,0x21,0xE0,0x68,0x68,0x00,0x07, + 0x1E,0xD5,0xE8,0x68,0x40,0x28,0x04,0xD1,0xEA,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1, + 0x14,0xE0,0x20,0x28,0x04,0xD3,0xEF,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1,0x0D,0xE0, + 0x0D,0x28,0x08,0xD1,0x2E,0x20,0x68,0x60,0x68,0x69,0x80,0x06,0xFC,0xD4,0x68,0x68, + 0x80,0x07,0xFC,0xD5,0x08,0xE0,0x68,0x68,0x80,0x07,0xFC,0xD5,0xFF,0xF7,0xAC,0xFF, + 0xE0,0x68,0x15,0x49,0x88,0x42,0xD9,0xD3,0xFF,0xF7,0xA6,0xFF,0xA0,0x68,0xB0,0x43, + 0xA0,0x60,0x00,0xF0,0x3D,0xF9,0xF8,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x0F,0x49, + 0x0F,0x4A,0x00,0x20,0x01,0xE0,0x08,0xC9,0x18,0x18,0x91,0x42,0xFB,0xD3,0x70,0x47, + 0x40,0x00,0x00,0x20,0x94,0x02,0x00,0x00,0xCC,0x00,0x00,0x00,0x40,0x00,0x00,0x40, + 0xDE,0x10,0x01,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0xFF,0xFF,0x00,0x00, + 0x00,0x40,0x00,0x40,0xFF,0x03,0xFF,0x2F,0x50,0xC3,0x00,0x00,0x40,0x04,0x00,0x00, + 0xC0,0x75,0x00,0x00,0x30,0x48,0x41,0x6B,0xC9,0x07,0xFC,0xD0,0x41,0x6B,0x01,0x22, + 0x11,0x43,0x41,0x63,0x70,0x47,0x10,0xB4,0x2B,0x4C,0x40,0x23,0x60,0x60,0x20,0x68, + 0x80,0x0A,0x80,0x02,0x10,0x43,0xA8,0x22,0x10,0x43,0x20,0x60,0x02,0xE0,0x08,0x78, + 0xA0,0x60,0x49,0x1C,0x5B,0x1E,0xFA,0xD2,0x10,0xBC,0x70,0x47,0xF0,0xB5,0x05,0x00, + 0x0E,0x00,0x1F,0x00,0x94,0x09,0x81,0x06,0x20,0x48,0x10,0xD1,0x91,0x06,0x0E,0xD1, + 0x0A,0xE0,0x3A,0x00,0x31,0x00,0x28,0x00,0xFF,0xF7,0xDD,0xFF,0x40,0x35,0x2D,0x04, + 0x2D,0x0C,0x40,0x36,0xFF,0xF7,0xCE,0xFF,0x64,0x1E,0x60,0x1C,0xF1,0xD1,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x14,0x4B,0x40,0x22,0x58,0x60,0x18,0x68,0x80,0x0A,0x80,0x02, + 0x08,0x43,0xA4,0x21,0x08,0x43,0x18,0x60,0x00,0x21,0x00,0xE0,0x99,0x60,0x52,0x1E, + 0xFC,0xD2,0x70,0x47,0x70,0xB5,0x05,0x00,0x16,0x00,0x8C,0x09,0x82,0x06,0x0B,0x48, + 0x0E,0xD1,0x89,0x06,0x0C,0xD1,0x08,0xE0,0x31,0x00,0x28,0x00,0xFF,0xF7,0xE2,0xFF, + 0x40,0x35,0x2D,0x04,0x2D,0x0C,0xFF,0xF7,0xA5,0xFF,0x64,0x1E,0x60,0x1C,0xF3,0xD1, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0xF8,0xB5,0x03,0x25,0x0F,0x4E,0x2D,0x07, + 0x01,0x27,0xF0,0x6A,0x00,0x28,0x15,0xD0,0xF0,0x6B,0xE9,0x68,0x80,0x08,0x3C,0x00, + 0x84,0x40,0x21,0x43,0xE9,0x60,0x69,0x68,0x21,0x42,0x00,0xD0,0x34,0x63,0x81,0x00, + 0x07,0x48,0x40,0x58,0x00,0x28,0x01,0xD0,0x06,0xF0,0x64,0xFF,0xE8,0x68,0xA0,0x43, + 0xE8,0x60,0xE6,0xE7,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x30, + 0x2C,0x0B,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF8,0xB5,0x00,0xF0,0x2F,0xFD,0x07,0x00,0x03,0xF0,0x62,0xFC,0x03,0xF0,0x54,0xFC, + 0x03,0xF0,0xDA,0xFC,0x49,0x4A,0x4A,0x49,0x4A,0x48,0x04,0xF0,0xA8,0xFE,0x4A,0x4D, + 0x00,0x26,0x01,0x21,0xC9,0x03,0x30,0x00,0x2E,0x82,0x00,0xF0,0xC9,0xF9,0xA8,0x61, + 0x46,0x49,0x00,0x20,0x00,0xF0,0xC4,0xF9,0x45,0x4B,0x46,0x49,0xD8,0x63,0x46,0x48, + 0x00,0xF0,0xBE,0xF9,0xD9,0x6B,0x00,0x04,0x08,0x43,0xD8,0x63,0x03,0xF0,0x9C,0xFC, + 0xA1,0x22,0x42,0x48,0xD2,0x00,0x00,0x21,0x04,0xF0,0x94,0xFE,0x06,0xF0,0x02,0xFB, + 0x03,0xF0,0x3E,0xFD,0x3E,0x48,0x01,0x24,0x81,0x7A,0xA9,0x71,0xC1,0x7A,0xE9,0x71, + 0x40,0x7A,0x28,0x72,0xFF,0x20,0x91,0x30,0x6E,0x72,0x68,0x82,0xAE,0x72,0xEE,0x72, + 0x2E,0x73,0x01,0x20,0x6E,0x73,0xA8,0x73,0x34,0x48,0x64,0x07,0x60,0x63,0xFF,0x20, + 0xE0,0x63,0xE0,0x14,0x00,0xF0,0xC2,0xFC,0x32,0x48,0x06,0x70,0xFF,0x20,0x81,0x30, + 0x00,0xF0,0xBC,0xFC,0x30,0x49,0x02,0x20,0x06,0xF0,0xEC,0xFD,0x02,0x20,0x06,0xF0, + 0xF1,0xFD,0x28,0x7A,0x00,0x28,0x01,0xD0,0x06,0xF0,0x9C,0xFE,0x00,0x2F,0x1F,0xD1, + 0x2A,0x4F,0xBE,0x15,0x28,0x7A,0x00,0x28,0x02,0xD0,0x29,0x49,0x28,0x6B,0x88,0x60, + 0xE0,0x6B,0x0B,0x28,0x14,0xD0,0x27,0x48,0x40,0x68,0x00,0x07,0x01,0xD5,0x02,0xF0, + 0xC5,0xFA,0xF8,0x68,0x24,0x49,0x88,0x42,0xEC,0xD9,0x24,0x48,0xC0,0x68,0xFF,0x28, + 0x06,0xD1,0xB8,0x68,0xB0,0x43,0xB8,0x60,0xB8,0x68,0x30,0x43,0xB8,0x60,0xE1,0xE7, + 0xE8,0x79,0x00,0x28,0x03,0xD1,0x01,0x20,0x80,0x02,0x00,0xF0,0x7F,0xFC,0x28,0x7A, + 0x00,0x28,0x01,0xD0,0x06,0xF0,0x76,0xFE,0x02,0x20,0x06,0xF0,0xC7,0xFD,0xFF,0x20, + 0x81,0x30,0x00,0xF0,0x73,0xFC,0x16,0x49,0x05,0x20,0x03,0xF0,0x79,0xFA,0x0B,0x20, + 0xE0,0x63,0x03,0xF0,0x09,0xFB,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x28,0x00,0x00,0x00, + 0x90,0x73,0x00,0x00,0x40,0x00,0x00,0x20,0xF8,0x0A,0x00,0x20,0xC0,0x75,0x00,0x00, + 0xC0,0x0F,0x00,0x20,0x00,0x7E,0x00,0x00,0x00,0x76,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x00,0x78,0x00,0x00,0xAD,0x0B,0x00,0x20,0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40, + 0x00,0x30,0x00,0x40,0x00,0x40,0x00,0x30,0x50,0xC3,0x00,0x00,0xC0,0x75,0x00,0x00, + 0x19,0x71,0x00,0x00,0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9,0x20,0x20,0x52,0xE2, + 0x05,0x00,0x00,0x3A,0x18,0x50,0xB1,0xE8,0x20,0x20,0x52,0xE2,0x18,0x50,0xA0,0xE8, + 0x18,0x50,0xB1,0xE8,0x18,0x50,0xA0,0xE8,0xF9,0xFF,0xFF,0x2A,0x02,0xCE,0xB0,0xE1, + 0x18,0x50,0xB1,0x28,0x18,0x50,0xA0,0x28,0x18,0x00,0xB1,0x48,0x18,0x00,0xA0,0x48, + 0x10,0x40,0xBD,0xE8,0x02,0xCF,0xB0,0xE1,0x04,0x30,0x91,0x24,0x04,0x30,0x80,0x24, + 0x1E,0xFF,0x2F,0x01,0x82,0x2F,0xB0,0xE1,0xB2,0x30,0xD1,0x20,0x01,0x20,0xD1,0x44, + 0xB2,0x30,0xC0,0x20,0x01,0x20,0xC0,0x44,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46, + 0x01,0x30,0x90,0xE1,0x21,0x00,0x00,0x4A,0x00,0x20,0xB0,0xE3,0xA0,0x30,0x71,0xE0, + 0x1A,0x00,0x00,0x3A,0x20,0x32,0x71,0xE0,0x0F,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0, + 0x01,0x00,0x00,0x3A,0x00,0xC0,0xA0,0xE3,0x20,0x00,0x00,0xEA,0xA0,0x33,0x71,0xE0, + 0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0, + 0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0,0x1E,0xFF,0x2F,0xE1, + 0x02,0x21,0x11,0xE2,0x00,0x10,0x61,0x42,0x40,0xC0,0x32,0xE0,0x00,0x00,0x60,0x22, + 0x20,0x32,0x71,0xE0,0x1D,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0,0x0F,0x00,0x00,0x3A, + 0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x23,0x82,0xE3,0x0B,0x00,0x00,0x3A, + 0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x26,0x82,0xE3,0x07,0x00,0x00,0x3A, + 0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x29,0x82,0xE3,0x01,0x13,0xA0,0x21, + 0x3F,0x2C,0x82,0x23,0x00,0x30,0x71,0xE2,0x1D,0x00,0x00,0x2A,0x21,0x13,0xA0,0x21, + 0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0, + 0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0, + 0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xEB,0xFF,0xFF,0x2A,0xA0,0x30,0x71,0xE0, + 0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31, + 0x02,0x00,0xA2,0xE0,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x00,0x10,0x61,0x22, + 0x1E,0xFF,0x2F,0xE1,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x01,0x40,0x2D,0xE9, + 0x00,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB,0x02,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x00,0x00,0xA0,0xE1,0x07,0x40,0x2D,0xE9,0x02,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB, + 0x07,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x01,0x00,0x10,0xB5,0x02,0x20,0x06,0xF0,0x85,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x78,0x47,0xC0,0x46,0x00,0x20,0xB0,0xE3,0x20,0x32,0x71,0xE0,0xA6,0xFF,0xFF,0x3A, + 0x20,0x34,0x71,0xE0,0x98,0xFF,0xFF,0x3A,0x00,0xC0,0xA0,0xE3,0xB7,0xFF,0xFF,0xEA, + 0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x41,0x00,0x00,0x20, + 0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0xD1,0x00,0x00,0x20, + 0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x79,0x00,0x00,0x20, + 0x78,0x47,0xC0,0x46,0x00,0xFE,0xFF,0xEA,0x02,0x48,0x01,0x68,0x02,0x4A,0x11,0x40, + 0x01,0x60,0x70,0x47,0x00,0xA0,0x00,0x40,0xFE,0xFF,0xEF,0xFF,0x07,0x49,0x10,0xB5, + 0x08,0x68,0x07,0x4A,0x10,0x43,0x08,0x60,0x0F,0x24,0x02,0xF0,0xCC,0xF8,0x64,0x1E, + 0x00,0x2C,0xFA,0xDC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x01,0x00,0x10,0x00,0xF0,0xB5,0x01,0x27,0x7F,0x07,0x3D,0x68,0x17,0x4E,0xB0,0x7E, + 0xC0,0x07,0x26,0xD0,0x70,0x7D,0x00,0x28,0x21,0xD0,0xBA,0x00,0x01,0x2D,0x02,0xD1, + 0x79,0x68,0x11,0x43,0xB9,0x60,0x00,0x04,0x02,0x43,0x90,0x0A,0x80,0x02,0xA9,0x05, + 0x89,0x0D,0x08,0x43,0x78,0x60,0x01,0x24,0x08,0xE0,0x0D,0x49,0xE0,0x00,0x40,0x18, + 0x0C,0x49,0x41,0x18,0x28,0x19,0x06,0xF0,0x01,0xFA,0x64,0x1C,0x70,0x7D,0xA0,0x42, + 0xF3,0xDA,0x70,0x7D,0x01,0x28,0x02,0xD1,0x00,0x2D,0x00,0xD1,0x01,0x25,0x70,0x7D, + 0x45,0x19,0x3D,0x60,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x30,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0x86,0x04,0x00,0x00,0x70,0xB4,0x1A,0x4B,0xDA,0x88,0xD2,0x07, + 0x2B,0xD1,0x19,0x4A,0x05,0x78,0x54,0x7D,0xE4,0x00,0xE6,0x18,0x09,0x24,0xE4,0x01, + 0x36,0x19,0xB5,0x73,0x56,0x7D,0x45,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0x35,0x82, + 0x56,0x7D,0x85,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0x75,0x82,0x55,0x7D,0xED,0x00, + 0xED,0x18,0x2D,0x19,0x29,0x75,0x55,0x7D,0xC1,0x79,0xED,0x00,0xEB,0x18,0x1B,0x19, + 0x59,0x75,0x51,0x7D,0x49,0x1C,0x51,0x75,0xC0,0x79,0x06,0x28,0x07,0xD0,0x0A,0x28, + 0x01,0xD0,0x12,0x28,0x01,0xD1,0x00,0x20,0x90,0x75,0x70,0xBC,0x70,0x47,0x01,0x20, + 0xFA,0xE7,0x00,0x00,0xF0,0x05,0x00,0x20,0x30,0x0A,0x00,0x20,0xFF,0xB5,0x0A,0x20, + 0x48,0x43,0x15,0x4F,0x81,0xB0,0xC5,0x19,0x48,0x00,0xFF,0x35,0x61,0x35,0xC0,0x19, + 0xC0,0x30,0x2A,0x71,0x0C,0x00,0x00,0x90,0x80,0x89,0x16,0x00,0x0A,0x21,0xFF,0xF7, + 0x2F,0xFF,0xE8,0x80,0x00,0x98,0x0A,0x21,0xC0,0x8B,0xFF,0xF7,0x29,0xFF,0x28,0x81, + 0x38,0x19,0xFF,0x30,0x01,0x30,0x00,0x7C,0xB9,0x19,0x68,0x71,0x04,0x98,0xA8,0x72, + 0x01,0x98,0x06,0x55,0x13,0x20,0x40,0x01,0x08,0x18,0x00,0x21,0xC4,0x76,0x81,0x74, + 0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xF0,0x05,0x00,0x20,0x06,0x48,0x0F,0x23, + 0x42,0x79,0x01,0x68,0x9B,0x06,0x49,0x1C,0x12,0x07,0x12,0x0A,0xD2,0x18,0x09,0x03, + 0x09,0x0B,0x0A,0x43,0x02,0x60,0x70,0x47,0xF0,0x05,0x00,0x20,0xF1,0xB5,0xB2,0x48, + 0x90,0xB0,0x0F,0x90,0x40,0x7C,0xB2,0x49,0x02,0x90,0x0F,0x98,0xC0,0x7C,0x01,0x90, + 0x0F,0x98,0x00,0x7C,0x00,0x90,0xAD,0x48,0xC9,0x88,0x00,0x8A,0x49,0x06,0x02,0xD4, + 0xA9,0x48,0x40,0x30,0x80,0x89,0x00,0x05,0x7E,0xD5,0x10,0x98,0x01,0x28,0x00,0xD0, + 0x02,0x20,0x03,0x90,0x00,0x20,0x04,0x90,0x3E,0xE1,0x03,0x98,0x81,0x00,0x01,0x20, + 0x40,0x07,0x08,0x18,0x0E,0x90,0x00,0x68,0x81,0x00,0x0D,0x90,0x0C,0x0F,0x80,0x0F, + 0xC0,0x07,0x03,0xD1,0x20,0x00,0x01,0xF0,0x81,0xFB,0x26,0xE1,0x9D,0x48,0xA5,0x00, + 0x40,0x5F,0x00,0x28,0x84,0x46,0x0F,0xDA,0x0D,0x98,0x9A,0x49,0x80,0x01,0x80,0x0D, + 0x48,0x53,0x0D,0x98,0x6A,0x18,0x80,0x05,0x80,0x0D,0x50,0x80,0x4A,0x5B,0x24,0x31, + 0x4A,0x53,0x69,0x18,0x48,0x80,0x10,0xE1,0x02,0x9F,0x92,0x49,0x00,0x20,0x7F,0x1E, + 0x48,0x31,0x69,0x18,0x06,0xE0,0x83,0x00,0xCA,0x18,0x96,0x88,0x40,0x1C,0xCE,0x52, + 0xD3,0x88,0x53,0x80,0xB8,0x42,0xF6,0xDB,0x0D,0x98,0x62,0x46,0x80,0x01,0x80,0x0D, + 0x0C,0x90,0x80,0x1A,0x02,0x9A,0x87,0x4E,0x92,0x00,0x8B,0x18,0x20,0x3B,0x98,0x83, + 0x0D,0x98,0xAA,0x19,0x80,0x05,0x80,0x0D,0x0A,0x92,0x0B,0x90,0x52,0x88,0x80,0x1A, + 0xD8,0x83,0x00,0x20,0x06,0x00,0x02,0x00,0x07,0xE0,0x93,0x00,0xCF,0x5E,0x38,0x18, + 0xCF,0x18,0x02,0x23,0xFB,0x5E,0x9E,0x19,0x52,0x1C,0x02,0x9B,0x9A,0x42,0xF4,0xDB, + 0x19,0x00,0xFF,0xF7,0xAB,0xFD,0x07,0x00,0x02,0x99,0x30,0x00,0xFF,0xF7,0xA6,0xFD, + 0x00,0x2F,0x00,0xDC,0x7F,0x42,0x0F,0x99,0x89,0x7C,0x8F,0x42,0x17,0xDA,0x00,0x28, + 0x00,0xDC,0x40,0x42,0x88,0x42,0x12,0xDA,0x01,0x98,0x0C,0x21,0x48,0x43,0x0A,0x21, + 0xFF,0xF7,0x6E,0xFE,0x61,0x00,0x00,0xE0,0xCA,0xE0,0x6A,0x4B,0x1C,0x3B,0x5A,0x5E, + 0x90,0x42,0x0C,0xDD,0x0F,0x98,0x00,0x7D,0x10,0x18,0x58,0x52,0x07,0xE0,0x65,0x49, + 0x0F,0x9A,0x60,0x00,0x1C,0x39,0x0B,0x5A,0x52,0x7D,0x9A,0x1A,0x0A,0x52,0x61,0x49, + 0x60,0x00,0x1C,0x39,0x0A,0x5E,0x00,0x2A,0x01,0xDC,0x00,0x22,0x0A,0x52,0x08,0x5E, + 0x01,0x99,0x88,0x42,0x09,0x90,0x01,0xDB,0x05,0x20,0x28,0xE0,0x88,0x00,0x05,0x21, + 0xFF,0xF7,0x46,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x04,0x20,0x1F,0xE0,0x01,0x98, + 0x41,0x00,0x40,0x18,0x05,0x21,0xFF,0xF7,0x3B,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC, + 0x03,0x20,0x14,0xE0,0x01,0x98,0x05,0x21,0x40,0x00,0xFF,0xF7,0x31,0xFE,0x09,0x99, + 0x88,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x01,0x98,0x05,0x21,0xFF,0xF7,0x28,0xFE, + 0x09,0x99,0x88,0x42,0x01,0xDC,0x01,0x20,0x01,0xE0,0x08,0x00,0x02,0xD1,0x45,0x49, + 0x0A,0x39,0x08,0x55,0x43,0x49,0x0C,0x9A,0x24,0x31,0x48,0x5F,0x16,0x1A,0x08,0x90, + 0x68,0x18,0x02,0x21,0x07,0x90,0x41,0x5E,0x0B,0x9A,0x3E,0x48,0x57,0x1A,0x06,0x91, + 0x0F,0x99,0x0A,0x38,0x00,0x5D,0x89,0x7D,0x88,0x42,0x27,0xD3,0x00,0x2E,0x01,0xD1, + 0x00,0x24,0x0D,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42,0x00,0x99,0x88,0x42,0x01,0xDA, + 0x01,0x24,0x05,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42,0xFF,0xF7,0x1F,0xFD,0x04,0x00, + 0x00,0x2F,0x01,0xD1,0x00,0x20,0x0C,0xE0,0x38,0x1E,0x00,0xDC,0x78,0x42,0x00,0x99, + 0x88,0x42,0x01,0xDA,0x01,0x20,0x04,0xE0,0x38,0x1E,0x00,0xDC,0x78,0x42,0xFF,0xF7, + 0x0D,0xFD,0x08,0x99,0x00,0x2E,0x19,0xDB,0x09,0x19,0x18,0xE0,0x09,0x98,0x64,0x21, + 0x48,0x43,0x01,0x99,0xFF,0xF7,0x02,0xFD,0x64,0x21,0x08,0x1A,0x31,0x1E,0x05,0x90, + 0x00,0xDC,0x71,0x42,0x48,0x43,0x64,0x21,0xFF,0xF7,0xF8,0xFC,0x05,0x9A,0x04,0x00, + 0x38,0x1E,0x00,0xDC,0x78,0x42,0x50,0x43,0x64,0x21,0xE0,0xE7,0x09,0x1B,0x06,0x9A, + 0x00,0x2F,0x01,0xDB,0x10,0x18,0x00,0xE0,0x10,0x1A,0x16,0x4A,0x0C,0x9B,0x53,0x53, + 0x0A,0x9B,0x0B,0x9A,0x5A,0x80,0x13,0x4A,0x13,0x4B,0x24,0x32,0x51,0x53,0x07,0x9A, + 0x89,0x05,0x50,0x80,0x0D,0x9A,0x89,0x09,0x1A,0x40,0x0A,0x43,0x91,0x0A,0x89,0x02, + 0x80,0x05,0x80,0x0D,0x01,0x43,0x0E,0x98,0x01,0x60,0x04,0x98,0x40,0x1C,0x04,0x90, + 0x03,0x98,0x40,0x1C,0x03,0x90,0x04,0x98,0x10,0x99,0x88,0x42,0x00,0xDA,0xBC,0xE6, + 0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x78,0x00,0x00,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xCA,0x0B,0x00,0x20,0xFF,0xFF,0x00,0xFC,0x10,0x4B,0x30,0xB4, + 0x27,0x21,0xDA,0x88,0x49,0x01,0x80,0x24,0x59,0x18,0x00,0x28,0x0E,0xD0,0x0D,0x48, + 0x45,0x7B,0x8D,0x82,0xC5,0x89,0xCD,0x82,0x05,0x8A,0x0D,0x83,0x40,0x8A,0x48,0x83, + 0x08,0x48,0x20,0x30,0x00,0x89,0x22,0x43,0x88,0x83,0x06,0xE0,0x00,0x20,0x88,0x82, + 0xC8,0x82,0x08,0x83,0x48,0x83,0xA2,0x43,0x88,0x83,0xDA,0x80,0x30,0xBC,0x70,0x47, + 0xF0,0x05,0x00,0x20,0x80,0x78,0x00,0x00,0x7F,0xB5,0x24,0x4D,0x04,0x00,0x1A,0x28, + 0x0B,0xD1,0x28,0x6A,0x00,0x28,0x08,0xD1,0x68,0x6A,0x00,0x28,0x05,0xD1,0x20,0x4C, + 0x01,0xF0,0x62,0xFE,0x64,0x1E,0xFB,0xD2,0x14,0xE0,0x05,0xF0,0x73,0xF9,0x00,0x20, + 0x01,0xF0,0xD0,0xFC,0x01,0xF0,0x4E,0xFD,0x01,0xF0,0x96,0xFD,0x03,0xAA,0x01,0xA9, + 0x02,0xA8,0x04,0xF0,0x9F,0xFA,0x03,0x00,0x01,0x9A,0x02,0x99,0x03,0x98,0x00,0x94, + 0x00,0xF0,0x30,0xF8,0x02,0x20,0x06,0xF0,0xC9,0xF9,0x02,0x20,0x06,0xF0,0xBA,0xF9, + 0x10,0x48,0xE9,0x68,0xC1,0x61,0x29,0x69,0xC1,0x61,0x0F,0x49,0xCA,0x68,0x52,0x08, + 0x52,0x00,0xCA,0x60,0x0D,0x4A,0x0E,0x49,0x02,0xE0,0xD3,0x68,0x8B,0x42,0x02,0xD8, + 0x43,0x69,0x9B,0x06,0xF9,0xD5,0x41,0x68,0x89,0x07,0xFC,0xD5,0x01,0xF0,0x42,0xFE, + 0x01,0x20,0x00,0xF0,0x6B,0xF8,0x7F,0xBC,0x08,0xBC,0x18,0x47,0xC0,0x75,0x00,0x00, + 0xE7,0x03,0x00,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40, + 0x50,0xC3,0x00,0x00,0xFF,0xB5,0x05,0x00,0x0E,0x00,0x91,0xB0,0xFF,0xF7,0x9A,0xF9, + 0x1C,0x48,0x01,0x27,0x04,0x04,0x24,0x0C,0x7F,0x02,0x00,0x22,0x39,0x00,0x20,0x00, + 0xFF,0xF7,0x1E,0xFD,0x18,0x49,0x3A,0x00,0x20,0x00,0x00,0x23,0xFF,0xF7,0x20,0xFD, + 0x16,0x49,0x40,0x22,0x01,0xA8,0x04,0xF0,0xE2,0xF9,0x14,0x99,0x28,0x04,0x09,0x03, + 0x08,0x43,0x13,0x49,0x08,0x43,0x04,0x90,0x13,0x99,0x30,0x04,0x08,0x43,0x05,0x90, + 0x10,0x48,0x11,0x49,0xC0,0x6B,0x10,0x90,0x0C,0x48,0x80,0x69,0x40,0x1C,0x07,0x90, + 0x00,0x20,0x8D,0x42,0x09,0x90,0x02,0xD1,0x06,0x99,0x49,0x1C,0x06,0x91,0x1A,0x99, + 0x1A,0x29,0x00,0xD1,0x0A,0x90,0x01,0xA8,0x06,0xF0,0xDA,0xF9,0x15,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x7E,0x00,0x00,0x00,0x00,0x10,0x40,0xC0,0x75,0x00,0x00, + 0xAB,0x0C,0x00,0x80,0xC0,0x0F,0x00,0x20,0xEC,0x0D,0x00,0x00,0x02,0x4A,0x51,0x69, + 0x81,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x4A,0x51,0x69, + 0x01,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x78,0x47,0xC0,0x46, + 0x01,0x21,0xA0,0xE3,0x50,0x30,0x92,0xE5,0x0C,0x10,0xA0,0xE3,0x03,0x00,0x80,0xE1, + 0x50,0x00,0x82,0xE5,0x00,0x00,0x00,0xEA,0x00,0x00,0xA0,0xE1,0x01,0x10,0x51,0xE2, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x01,0x48,0x40,0x69,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x01,0x48,0x80,0x6A,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x02,0x49,0x08,0x62,0x00,0x20,0x08,0x62,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x01,0x49,0x48,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x07,0x49,0xFF,0x28, + 0x04,0xD1,0x01,0x20,0xC8,0x60,0x00,0x20,0x88,0x61,0x70,0x47,0x8A,0x69,0x12,0x07, + 0x12,0x0F,0x02,0x43,0x8A,0x61,0x02,0x20,0xC8,0x60,0x70,0x47,0x40,0x00,0x00,0x40, + 0xF0,0xB5,0x00,0x20,0xF3,0xB0,0x62,0x90,0xFF,0x49,0x40,0x1E,0x5E,0x90,0xCB,0x79, + 0xFE,0x4F,0xFF,0x48,0xFA,0x88,0x54,0x06,0x00,0xD4,0xC3,0x78,0x54,0x06,0x05,0x93, + 0x0B,0x7A,0x00,0xD4,0x03,0x79,0xFB,0x4C,0xA4,0x8A,0x1B,0x19,0x1B,0x06,0x1B,0x0E, + 0x04,0x93,0x4B,0x7A,0x54,0x06,0x00,0xD4,0x43,0x79,0x52,0x06,0x03,0x93,0x89,0x7A, + 0x00,0xD4,0x81,0x79,0x00,0x20,0xF4,0x4C,0x02,0x91,0x3D,0x79,0x01,0x26,0x01,0x90, + 0x13,0xE0,0x0A,0x20,0x70,0x43,0x43,0x21,0xC0,0x19,0xC9,0x00,0x09,0x5C,0x00,0x29, + 0x0A,0xD0,0xEE,0x49,0x40,0x18,0x02,0xF0,0x5B,0xFE,0x00,0x28,0x04,0xD0,0x01,0x98, + 0x40,0x1C,0x00,0x06,0x00,0x0E,0x01,0x90,0x76,0x1C,0xA0,0x78,0xB0,0x42,0xE8,0xDA, + 0xE7,0x48,0x72,0x90,0xC2,0x8A,0x41,0x8B,0x50,0x1A,0x00,0x28,0x00,0xDC,0x88,0x1A, + 0x03,0x04,0x72,0x98,0x72,0x99,0x00,0x8B,0x89,0x8B,0x1B,0x0C,0x42,0x1A,0x00,0x2A, + 0x00,0xDC,0x0A,0x1A,0x10,0x04,0x72,0x9A,0x00,0x21,0x91,0x74,0x72,0x9A,0x00,0x0C, + 0xD1,0x74,0x72,0x9A,0x11,0x75,0x01,0x99,0x00,0x29,0x10,0xD0,0x19,0x2B,0x0E,0xD2, + 0x28,0x28,0x03,0xD2,0x72,0x98,0x01,0x21,0x81,0x74,0x08,0xE0,0x50,0x28,0x03,0xD2, + 0x72,0x99,0x01,0x20,0xC8,0x74,0x02,0xE0,0x72,0x98,0x01,0x21,0x01,0x75,0x72,0x98, + 0x40,0x7C,0x00,0x28,0x16,0xD1,0x72,0x98,0x80,0x7C,0x00,0x28,0x02,0xD0,0x05,0x98, + 0x80,0x1C,0x0C,0xE0,0x72,0x98,0xC0,0x7C,0x00,0x28,0x02,0xD0,0x05,0x98,0x00,0x1D, + 0x05,0xE0,0x72,0x98,0x00,0x7D,0x00,0x28,0x04,0xD0,0x05,0x98,0x80,0x1D,0x00,0x06, + 0x00,0x0E,0x05,0x90,0x09,0x22,0x00,0x21,0x5B,0xA8,0x04,0xF0,0xDB,0xF8,0xF8,0x88, + 0xFF,0x21,0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06,0x05,0xD5,0x01,0xF0,0xB0,0xF8, + 0x73,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xE0,0x78,0x00,0x28,0x01,0xD0,0x40,0x1E, + 0xE0,0x70,0x60,0x78,0x00,0x2D,0x02,0xD1,0x00,0x28,0x18,0xD0,0x18,0xE0,0x00,0x28, + 0x16,0xD1,0xB1,0x48,0x5A,0x22,0x00,0x21,0x5E,0x30,0x04,0xF0,0xBB,0xF8,0xE0,0x78, + 0x00,0x28,0x0C,0xD1,0x01,0x26,0x07,0xE0,0x31,0x06,0x09,0x0E,0x0A,0x00,0x14,0x23, + 0x5B,0xA8,0xFF,0xF7,0x7B,0xFC,0x76,0x1C,0xAE,0x42,0xF5,0xDD,0x25,0x70,0xE6,0xE1, + 0x09,0x22,0x01,0x21,0x58,0xA8,0x04,0xF0,0xA5,0xF8,0x02,0x20,0xA3,0x49,0x06,0x90, + 0x9E,0x48,0x5D,0x31,0x41,0x18,0x71,0x91,0xA0,0x49,0x54,0x31,0x40,0x18,0x70,0x90, + 0x13,0xE1,0x08,0x26,0x07,0xAF,0x24,0x20,0x70,0x43,0x07,0xA9,0x40,0x18,0x00,0x21, + 0x24,0x22,0xC9,0x43,0x04,0xF0,0x8E,0xF8,0x76,0x1E,0xF4,0xD5,0x06,0x98,0x01,0xF0, + 0xE7,0xFB,0x01,0x27,0x5F,0x90,0x53,0xE0,0x5F,0x98,0x01,0x26,0x60,0x90,0x4B,0xE0, + 0x0A,0x20,0x70,0x43,0x8D,0x49,0x40,0x18,0x01,0x00,0xFF,0x30,0xFF,0x30,0x02,0x30, + 0x6F,0x90,0x00,0x7E,0x00,0x28,0x3E,0xD0,0x8C,0x48,0x08,0x18,0x6E,0x90,0x02,0xF0, + 0x97,0xFD,0x06,0x99,0x08,0x43,0x07,0xD0,0x6E,0x98,0x02,0xF0,0x91,0xFD,0x00,0x28, + 0x31,0xD0,0x06,0x98,0x00,0x28,0x2E,0xD0,0x80,0x49,0x78,0x00,0x40,0x18,0xC0,0x30, + 0x6D,0x90,0x80,0x89,0x0A,0x21,0xFF,0xF7,0x6B,0xFB,0x6F,0x99,0x49,0x8B,0x0A,0x1A, + 0x00,0x2A,0x00,0xDC,0x42,0x1A,0x6D,0x98,0x61,0x92,0xC0,0x8B,0x0A,0x21,0xFF,0xF7, + 0x5F,0xFB,0x6F,0x99,0x89,0x8B,0x0A,0x1A,0x00,0x2A,0x00,0xDC,0x42,0x1A,0x61,0x98, + 0x01,0x00,0x41,0x43,0x10,0x00,0x50,0x43,0x08,0x18,0x60,0x99,0x88,0x42,0x04,0xDA, + 0x24,0x21,0x79,0x43,0x07,0xAA,0x56,0x50,0x60,0x90,0x24,0x21,0x79,0x43,0x07,0xAA, + 0x89,0x18,0xB2,0x00,0x88,0x50,0x76,0x1C,0xA0,0x78,0xB0,0x42,0xB0,0xDA,0x7F,0x1C, + 0xAF,0x42,0xA9,0xDD,0x01,0x20,0xA4,0xE0,0x01,0x23,0x5F,0x9A,0x18,0x00,0x15,0xE0, + 0x5B,0xA9,0x09,0x5C,0x00,0x29,0x10,0xD1,0x24,0x21,0x41,0x43,0x0F,0x00,0x07,0xAE, + 0x89,0x19,0xF6,0x59,0xB7,0x00,0xC9,0x59,0x91,0x42,0x06,0xDA,0x00,0x29,0x04,0xDB, + 0x00,0x2E,0x02,0xDB,0x0A,0x00,0x00,0x23,0x5E,0x90,0x40,0x1C,0xA8,0x42,0xE7,0xDD, + 0x00,0x2B,0x7E,0xD1,0x62,0x98,0x5E,0x9E,0x40,0x1C,0x62,0x90,0x24,0x20,0x46,0x43, + 0x07,0xA8,0x80,0x59,0x0A,0x21,0x48,0x43,0x50,0x49,0x0A,0x22,0x41,0x18,0x5E,0x98, + 0xFF,0x31,0x50,0x43,0x4D,0x4A,0xBF,0x31,0x87,0x18,0x38,0x00,0xFF,0x30,0x65,0x30, + 0x0A,0x22,0x03,0xF0,0xDB,0xFF,0x5E,0x98,0x48,0x49,0x40,0x00,0x40,0x18,0xC0,0x30, + 0x6C,0x90,0x80,0x89,0x0A,0x21,0xFF,0xF7,0xFB,0xFA,0xFF,0x37,0x61,0x37,0xF8,0x80, + 0x6C,0x98,0x0A,0x21,0xC0,0x8B,0xFF,0xF7,0xF3,0xFA,0x38,0x81,0x3F,0x48,0x5E,0x99, + 0x40,0x18,0xFF,0x30,0x01,0x30,0x00,0x7C,0x78,0x71,0xB8,0x7A,0x05,0x99,0x49,0x1C, + 0x88,0x42,0x01,0xD2,0x40,0x1C,0xB8,0x72,0xB8,0x7A,0x13,0x28,0x6B,0x90,0x09,0xD9, + 0x14,0x21,0xFF,0xF7,0xDD,0xFA,0x04,0x99,0x89,0x1C,0x88,0x42,0x02,0xD2,0x6B,0x98, + 0x14,0x30,0xB8,0x72,0x38,0x79,0x5E,0x9A,0x5B,0xA9,0x88,0x54,0x71,0x9A,0x5E,0x99, + 0x81,0x54,0x39,0x79,0x70,0x9A,0x00,0x20,0x88,0x54,0x07,0xA9,0x89,0x59,0x58,0xAA, + 0x50,0x54,0x01,0x21,0x23,0xE0,0x08,0x00,0x24,0x23,0x58,0x43,0x07,0xAB,0x6A,0x90, + 0xC0,0x18,0x69,0x90,0x9B,0x59,0x00,0x22,0xD2,0x43,0x9B,0x00,0xC2,0x50,0x5B,0xA8, + 0x40,0x5C,0x5F,0x9B,0x00,0x28,0x11,0xD1,0xA2,0x78,0x01,0x20,0x94,0x46,0x0B,0xE0, + 0x69,0x9A,0x87,0x00,0xD2,0x59,0x00,0x2A,0x05,0xDB,0x9A,0x42,0x07,0xAF,0x02,0xDA, + 0x6A,0x9B,0xF8,0x50,0x13,0x00,0x40,0x1C,0x84,0x45,0xF1,0xDA,0x49,0x1C,0xA9,0x42, + 0x00,0xE0,0x04,0xE0,0xD7,0xDD,0xA0,0x78,0x62,0x99,0x88,0x42,0x05,0xDD,0x64,0x98, + 0x40,0x1C,0xA8,0x42,0x64,0x90,0x00,0xDC,0x56,0xE7,0x06,0x98,0x41,0x1E,0x09,0x06, + 0x09,0x0E,0x00,0x28,0x06,0x91,0x00,0xD0,0xE3,0xE6,0x01,0x26,0x65,0x96,0x63,0x90, + 0x6F,0xE0,0x58,0xA8,0x80,0x5D,0x00,0x28,0x6A,0xD0,0x65,0x98,0x07,0x49,0x2F,0x18, + 0x0A,0x20,0x70,0x43,0x40,0x18,0x68,0x90,0xFF,0x30,0xFF,0x30,0x02,0x30,0x67,0x90, + 0x00,0x7E,0x70,0x99,0x40,0x5C,0x0D,0xE0,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x60,0x79,0x00,0x00,0xD0,0x0A,0x00,0x20,0x50,0x07,0x00,0x20,0x1E,0x02,0x00,0x00, + 0x70,0x08,0x00,0x20,0x03,0x99,0x88,0x42,0x34,0xD2,0x08,0x2F,0x32,0xDC,0x4C,0x49, + 0x68,0x98,0x40,0x18,0x02,0xF0,0x74,0xFC,0x00,0x28,0x2B,0xD0,0x67,0x98,0x70,0x99, + 0x00,0x7E,0x70,0x9A,0x47,0x4B,0x41,0x5C,0x49,0x1C,0x81,0x54,0x68,0x98,0x43,0x21, + 0xC9,0x00,0x41,0x18,0x0A,0x20,0x78,0x43,0xC0,0x18,0x66,0x90,0xFF,0x30,0x65,0x30, + 0x0A,0x22,0x03,0xF0,0x1B,0xFF,0x68,0x99,0x66,0x98,0xFF,0x31,0xC1,0x31,0x4A,0x79, + 0xFF,0x30,0x61,0x30,0xC2,0x72,0x89,0x79,0x01,0x73,0x67,0x98,0x5B,0xA9,0x00,0x7E, + 0xC8,0x55,0x71,0x99,0x47,0x54,0x65,0x98,0x40,0x1C,0x65,0x90,0x63,0x98,0x40,0x1C, + 0x63,0x90,0x15,0xE0,0x32,0x49,0x68,0x98,0x32,0x4F,0x40,0x18,0x02,0xF0,0x40,0xFC, + 0x00,0x28,0x0D,0xD0,0x72,0x99,0x01,0x20,0x08,0x74,0x67,0x98,0x80,0x7F,0x13,0x28, + 0x06,0xD9,0x60,0x78,0x01,0x28,0x03,0xD1,0xF8,0x88,0x04,0x21,0x08,0x43,0xF8,0x80, + 0x76,0x1C,0xA0,0x78,0xB0,0x42,0x8C,0xDA,0x26,0x48,0xC0,0x88,0x41,0x07,0x05,0xD5, + 0x02,0x99,0x04,0x22,0xE1,0x70,0x23,0x49,0x90,0x43,0xC8,0x80,0x01,0x26,0x31,0xE0, + 0x5B,0xA8,0x80,0x5D,0x00,0x28,0x1A,0xD1,0x13,0x22,0x01,0x20,0x52,0x01,0x05,0x23, + 0xDB,0x01,0x1C,0x49,0x09,0x18,0x8F,0x18,0xFF,0x7E,0x00,0x2F,0x0C,0xD1,0xC9,0x18, + 0x09,0x79,0x00,0x29,0x08,0xD1,0x02,0x06,0x31,0x06,0x12,0x0E,0x09,0x0E,0x01,0x23, + 0x5B,0xA8,0xFF,0xF7,0xAB,0xFA,0x02,0xE0,0x40,0x1C,0x09,0x28,0xE9,0xDB,0xE0,0x78, + 0x00,0x28,0x0E,0xD0,0x0A,0x20,0x70,0x43,0x0E,0x49,0x47,0x18,0x38,0x00,0xFF,0x30, + 0x6B,0x30,0x02,0xF0,0xF5,0xFB,0x00,0x28,0x03,0xD1,0x01,0x20,0xFF,0x37,0x61,0x37, + 0xB8,0x72,0x76,0x1C,0xAE,0x42,0xCB,0xDD,0x63,0x98,0x28,0x18,0x20,0x70,0x20,0x78, + 0x05,0x49,0x5A,0x22,0xA0,0x70,0x08,0x00,0xB4,0x30,0x03,0xF0,0x9F,0xFE,0xE7,0xE5, + 0x1E,0x02,0x00,0x00,0xF0,0x05,0x00,0x20,0x54,0x07,0x00,0x20,0xF1,0xB5,0x3C,0x48, + 0x86,0xB0,0x05,0x90,0x00,0x20,0x04,0x90,0x3A,0x48,0x41,0x7F,0x01,0x91,0x01,0x00, + 0x20,0x39,0x49,0x7F,0x00,0x91,0x00,0x21,0x02,0x91,0x01,0x7D,0x00,0x20,0xC0,0x43, + 0x00,0x29,0x06,0x99,0x03,0xD1,0x00,0x29,0x03,0xD1,0x01,0x20,0x01,0xE0,0x00,0x29, + 0xFB,0xD1,0x03,0x90,0x01,0xF0,0x38,0xF9,0x01,0xF0,0xE6,0xF9,0x00,0x24,0x27,0x00, + 0x37,0xE0,0x00,0x26,0x30,0xE0,0x31,0x00,0x38,0x00,0x02,0xF0,0xC9,0xF8,0x00,0x28, + 0x28,0xD0,0x29,0x78,0x05,0x9A,0x79,0x43,0x89,0x19,0x89,0x00,0x51,0x58,0x09,0x05, + 0x09,0x0D,0x0D,0x1A,0x06,0x98,0x00,0x28,0x0D,0xD0,0x00,0x2D,0x1A,0xDA,0x03,0x9A, + 0x31,0x00,0x38,0x00,0x05,0xF0,0x4E,0xFC,0x40,0x1C,0x14,0xD1,0x00,0x98,0x28,0x18, + 0x10,0xD5,0x02,0x20,0x0D,0xE0,0x00,0x2D,0x0C,0xDD,0x03,0x9A,0x31,0x00,0x38,0x00, + 0x05,0xF0,0x40,0xFC,0x40,0x1C,0x06,0xD1,0x01,0x98,0x28,0x1A,0x00,0x28,0x01,0xDD, + 0x03,0x20,0x04,0x90,0x64,0x1C,0x76,0x1C,0x13,0x4D,0x28,0x78,0x86,0x42,0xCA,0xD3, + 0x7F,0x1C,0x12,0x48,0x00,0x78,0x87,0x42,0xC3,0xD3,0x10,0x48,0x0E,0x49,0x00,0x78, + 0x09,0x78,0x48,0x43,0xA0,0x42,0x04,0xD1,0x04,0x98,0x07,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x02,0x98,0x41,0x1C,0x02,0x91,0x01,0x21,0x49,0x02,0x88,0x42,0xA9,0xD9, + 0x06,0x98,0x00,0x28,0x01,0xD0,0x02,0x20,0x00,0xE0,0x03,0x20,0x04,0x90,0xEC,0xE7, + 0x00,0x02,0x10,0x40,0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0xF0,0xB5,0x8A,0x4A,0xFF,0xB0,0x88,0xB0,0x40,0x18,0x85,0x92,0x42,0x00,0x80,0x18, + 0x84,0x90,0x48,0x42,0x83,0x90,0x86,0x48,0x86,0x4E,0x00,0x7A,0x02,0xAF,0x82,0x90, + 0x85,0x48,0x86,0x90,0x00,0x7D,0x00,0x28,0x02,0xD1,0x83,0x98,0x40,0x42,0x83,0x90, + 0x01,0x22,0x52,0x02,0x00,0x21,0x30,0x00,0x03,0xF0,0x1C,0xFE,0x00,0x25,0x39,0xE0, + 0x00,0x24,0x32,0xE0,0x7C,0x48,0x20,0x38,0x01,0x7D,0xC9,0x07,0x15,0xD0,0x7B,0x49, + 0x09,0x78,0x00,0x29,0x82,0x99,0x16,0xD0,0x8D,0x42,0x0E,0xD1,0x81,0x7D,0xA1,0x42, + 0x0B,0xD0,0xC1,0x7D,0xA1,0x42,0x08,0xD0,0x01,0x7E,0xA1,0x42,0x05,0xD0,0x41,0x7E, + 0xA1,0x42,0x02,0xD0,0x80,0x7E,0xA0,0x42,0x16,0xD1,0x83,0x9A,0x21,0x00,0x28,0x00, + 0x05,0xF0,0xC8,0xFB,0x10,0xE0,0x8C,0x42,0xF7,0xD1,0x81,0x7D,0xA9,0x42,0xF4,0xD0, + 0xC1,0x7D,0xA9,0x42,0xF1,0xD0,0x01,0x7E,0xA9,0x42,0xEE,0xD0,0x41,0x7E,0xA9,0x42, + 0xEB,0xD0,0x80,0x7E,0xA8,0x42,0xE8,0xD0,0x64,0x1C,0x65,0x48,0x00,0x78,0x84,0x42, + 0xC8,0xD3,0x6D,0x1C,0x63,0x4C,0x20,0x78,0x85,0x42,0xC1,0xD3,0x01,0xF0,0x74,0xF8, + 0x01,0xF0,0x22,0xF9,0x00,0x25,0x2A,0xE0,0x00,0x24,0x23,0xE0,0x21,0x00,0x28,0x00, + 0x02,0xF0,0x06,0xF8,0x00,0x28,0x12,0xD0,0x59,0x49,0x85,0x9B,0x09,0x78,0x69,0x43, + 0x0A,0x19,0x91,0x00,0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D,0x1B,0x0C,0xCB,0x1A, + 0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0,0x40,0x1A,0x51,0x00,0x70,0x52,0x21,0x00, + 0x28,0x00,0x02,0xF0,0x73,0xF8,0x4E,0x49,0x09,0x78,0x69,0x43,0x09,0x19,0x49,0x00, + 0x64,0x1C,0x78,0x52,0x4A,0x48,0x00,0x78,0x84,0x42,0xD7,0xD3,0x6D,0x1C,0x49,0x48, + 0x01,0x78,0x8D,0x42,0xD0,0xD3,0x00,0x21,0x01,0x91,0x01,0xF0,0xED,0xF8,0x00,0x25, + 0x51,0xE0,0x00,0x24,0x4A,0xE0,0x21,0x00,0x28,0x00,0x01,0xF0,0xD1,0xFF,0x00,0x28, + 0x43,0xD0,0x3F,0x49,0x85,0x9B,0x09,0x78,0x69,0x43,0x09,0x19,0x8A,0x00,0x9A,0x58, + 0x03,0x04,0x12,0x05,0x12,0x0D,0x1B,0x0C,0xD3,0x1A,0x00,0x2B,0x01,0xDD,0x10,0x1A, + 0x00,0xE0,0x80,0x1A,0x49,0x00,0x73,0x5A,0x00,0x04,0x00,0x0C,0x83,0x42,0x0A,0xD9, + 0x70,0x52,0x21,0x00,0x28,0x00,0x02,0xF0,0x39,0xF8,0x31,0x49,0x09,0x78,0x69,0x43, + 0x09,0x19,0x49,0x00,0x78,0x52,0x01,0x98,0x03,0x21,0xFF,0xF7,0x79,0xF8,0x00,0x29, + 0x01,0xD0,0x02,0x29,0x0D,0xD1,0x86,0x98,0x00,0x7D,0x00,0x28,0x02,0xD1,0x00,0x22, + 0x43,0x1E,0x01,0xE0,0x01,0x22,0x00,0x23,0x21,0x00,0x28,0x00,0x05,0xF0,0x04,0xFB, + 0x0B,0xE0,0x00,0x22,0xD2,0x43,0x00,0x23,0x21,0x00,0x28,0x00,0x05,0xF0,0xFC,0xFA, + 0x00,0x28,0x02,0xD1,0x00,0x22,0x01,0x23,0xEE,0xE7,0x64,0x1C,0x1C,0x48,0x00,0x78, + 0x84,0x42,0xB0,0xD3,0x6D,0x1C,0x1B,0x48,0x00,0x78,0x85,0x42,0xA9,0xD3,0x01,0x98, + 0x40,0x1C,0x01,0x90,0x84,0x98,0x40,0x1E,0x84,0x90,0x1B,0xD2,0x14,0x4E,0x00,0x25, + 0x0E,0xE0,0x00,0x24,0x08,0xE0,0x68,0x43,0x00,0x19,0x40,0x00,0x3A,0x5A,0x21,0x00, + 0x28,0x00,0x05,0xF0,0xF9,0xFA,0x64,0x1C,0x30,0x78,0x84,0x42,0xF3,0xD3,0x6D,0x1C, + 0x0C,0x48,0x00,0x78,0x85,0x42,0xEC,0xD3,0x7F,0xB0,0x08,0xB0,0xF0,0xBC,0x08,0xBC, + 0x00,0x20,0x18,0x47,0x00,0xF0,0xC0,0xFF,0x7F,0xE7,0x00,0x00,0x00,0x02,0x10,0x40, + 0x70,0x0A,0x00,0x20,0x40,0x00,0x00,0x20,0x20,0x78,0x00,0x00,0xFD,0x0A,0x00,0x20, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xF8,0xB5,0x01,0x22,0x52,0x07,0x10,0x68, + 0x01,0x28,0x03,0xD0,0x10,0x68,0x01,0x28,0x43,0xD9,0x02,0x20,0x86,0x46,0x22,0x48, + 0x00,0x90,0x80,0x7A,0x00,0x28,0x3C,0xD0,0x00,0x21,0x13,0x25,0x1F,0x4F,0xAD,0x01, + 0x32,0xE0,0x72,0x46,0x8A,0x18,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F, + 0xC0,0x07,0x28,0xD1,0x00,0x9C,0x93,0x00,0xA6,0x7A,0x1B,0x0F,0x21,0xE0,0x84,0x00, + 0xE4,0x19,0x64,0x19,0xE4,0x68,0xA4,0x00,0x24,0x0F,0xA3,0x42,0x18,0xD1,0x80,0x00, + 0xC0,0x19,0x40,0x19,0xC0,0x68,0x92,0x0A,0x83,0x05,0x92,0x02,0x9B,0x0D,0x1A,0x43, + 0x0F,0x4B,0x1A,0x40,0x83,0x01,0x9B,0x0D,0x1B,0x04,0x1A,0x43,0x3F,0x23,0x9B,0x02, + 0x00,0x04,0x80,0x0E,0x9A,0x43,0x80,0x02,0x02,0x43,0x60,0x46,0x02,0x60,0x02,0xE0, + 0x40,0x1C,0x86,0x42,0xDB,0xD8,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42, + 0xC7,0xD8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20, + 0xFF,0xFF,0x00,0xFC,0xFC,0xB5,0x04,0x00,0x5E,0x48,0x8E,0x46,0x02,0x8C,0x5E,0x49, + 0x40,0x8C,0x01,0x91,0xCB,0x88,0x40,0x39,0x00,0x91,0x89,0x7E,0x00,0x25,0x2F,0x00, + 0xC9,0x07,0x01,0x26,0x00,0x29,0xAC,0x46,0x01,0xD1,0xE6,0x71,0xA6,0xE0,0x01,0x99, + 0x09,0x79,0x00,0x29,0x0D,0xD0,0x01,0x29,0x0F,0xD0,0x02,0x29,0x07,0xD0,0x03,0x29, + 0xF4,0xD1,0x17,0x00,0xD1,0x18,0x0A,0x04,0x12,0x0C,0x03,0x00,0x05,0xE0,0x1A,0x00, + 0xFB,0xE7,0x84,0x46,0xC0,0x18,0x03,0x04,0x1B,0x0C,0x60,0x88,0xA1,0x88,0x87,0x42, + 0x58,0xDC,0x82,0x42,0x56,0xDB,0x8C,0x45,0x54,0xDC,0x8B,0x42,0x52,0xDB,0x01,0x25, + 0x72,0x46,0x00,0x2A,0x77,0xD0,0x06,0x27,0x01,0x2A,0x0E,0xD0,0x09,0x23,0x02,0x2A, + 0x17,0xD0,0x03,0x2A,0x71,0xD1,0xE2,0x79,0xD7,0x07,0x28,0xD0,0x01,0x2A,0x01,0xD0, + 0x05,0x2A,0x22,0xD1,0x00,0x25,0xE3,0x71,0x67,0xE0,0x00,0x9A,0x92,0x7D,0x00,0x2A, + 0x63,0xD1,0x00,0xF0,0x87,0xF8,0x06,0x00,0x0F,0xD1,0x02,0x20,0xE0,0x71,0x26,0x72, + 0x5B,0xE0,0xE2,0x79,0xD6,0x07,0xE9,0xD1,0x92,0x07,0x56,0xD5,0x00,0xF0,0x7A,0xF8, + 0x06,0x00,0x08,0xD0,0x20,0x7A,0x00,0x28,0x05,0xD1,0x31,0x00,0x20,0x00,0xE7,0x71, + 0xFE,0xF7,0xE2,0xFF,0xEB,0xE7,0x02,0x20,0x46,0xE0,0x11,0x20,0x44,0xE0,0x92,0x07, + 0x43,0xD5,0x00,0xF0,0x67,0xF8,0x21,0x7A,0x00,0x28,0x0A,0xD0,0x00,0x29,0x0C,0xD0, + 0x81,0x42,0x08,0xD1,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0xCD,0xFF,0xA6,0x71, + 0x05,0xE0,0x00,0x29,0x01,0xD0,0x12,0x20,0xF5,0xE7,0x02,0x20,0xE0,0x71,0x00,0x20, + 0x20,0x72,0x2A,0xE0,0x70,0x46,0x00,0x28,0x25,0xD0,0x01,0x28,0x06,0xD0,0x02,0x28, + 0x06,0xD0,0x03,0x28,0x21,0xD1,0xE0,0x79,0x80,0x07,0x0E,0xD4,0xE6,0x71,0x1C,0xE0, + 0xE0,0x79,0x80,0x07,0xFA,0xD5,0x21,0x7A,0x00,0x29,0x04,0xD0,0x12,0x20,0xE0,0x71, + 0x20,0x00,0xFE,0xF7,0xA9,0xFF,0xE6,0x71,0x09,0xE0,0x02,0x20,0xE0,0x71,0x21,0x7A, + 0x00,0x29,0x04,0xD0,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0x9D,0xFF,0x01,0x25, + 0xA6,0x71,0x02,0xE0,0xFF,0xE7,0x00,0x20,0xE0,0x71,0x08,0x49,0xC8,0x88,0x82,0x07, + 0x04,0xD1,0xE2,0x79,0x92,0x07,0x92,0x0F,0x10,0x43,0xC8,0x80,0x28,0x00,0xFC,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0x70,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20, + 0x06,0x48,0x40,0x8B,0x00,0x28,0x06,0xD0,0x05,0x48,0xC0,0x88,0x00,0x06,0x80,0x0F, + 0x01,0xD0,0x00,0x20,0x70,0x47,0x01,0x20,0x70,0x47,0x00,0x00,0xA0,0x78,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xF0,0xB4,0x18,0x4B,0x05,0x00,0xDE,0x7E,0x00,0x22,0x10,0x00, + 0x00,0x2E,0x26,0xD0,0x1B,0x7D,0x00,0x2B,0x23,0xD1,0x20,0xE0,0x13,0x4B,0xD4,0x00, + 0xE3,0x18,0x11,0x24,0xA4,0x01,0x1C,0x19,0x1C,0x27,0xE7,0x5F,0xAF,0x42,0x11,0xDC, + 0x23,0x27,0x7F,0x01,0xDB,0x19,0x00,0x27,0xDF,0x5F,0xAF,0x42,0x0A,0xDB,0x1E,0x27, + 0xE7,0x5F,0x8F,0x42,0x06,0xDC,0x02,0x24,0x1C,0x5F,0x8C,0x42,0x02,0xDB,0x50,0x1C, + 0x00,0x06,0x00,0x0E,0x00,0x28,0x04,0xD1,0x52,0x1C,0x12,0x06,0x12,0x0E,0x96,0x42, + 0xDC,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00,0x30,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20, + 0xF0,0xB5,0x00,0x20,0x8F,0xB0,0x0A,0x90,0x09,0x90,0xC8,0x48,0xC8,0x4A,0x01,0x8A, + 0xD0,0x88,0x43,0x06,0x02,0xD4,0xC5,0x49,0xC0,0x39,0x89,0x89,0xC3,0x4D,0xC5,0x4E, + 0x60,0x35,0x08,0x91,0xE9,0x7B,0x43,0x06,0x00,0xD4,0xF1,0x7A,0x43,0x06,0x07,0x91, + 0xA9,0x7B,0x00,0xD4,0xB1,0x7A,0x43,0x06,0x06,0x91,0x69,0x7C,0x00,0xD4,0x71,0x7B, + 0x43,0x06,0x05,0x91,0xA9,0x79,0x00,0xD4,0xB1,0x78,0x02,0x07,0x04,0x91,0xB8,0x49, + 0x09,0x79,0x05,0xD5,0xB6,0x4A,0x00,0x29,0x02,0xD1,0x08,0x23,0x98,0x43,0xD0,0x80, + 0xB5,0x48,0x18,0x22,0x82,0x5E,0xFF,0x23,0x01,0x33,0x23,0x2A,0x03,0xDD,0x1A,0x22, + 0x82,0x5E,0x19,0x2A,0x03,0xDC,0x1C,0x22,0x82,0x5E,0x15,0x2A,0x05,0xDD,0xAC,0x4A, + 0xD4,0x88,0x1C,0x43,0xD4,0x80,0x02,0x22,0x04,0xE0,0x1E,0x22,0x82,0x5E,0x00,0x2A, + 0x02,0xD0,0x52,0x1E,0xC2,0x83,0x03,0xE0,0xA5,0x48,0xC2,0x88,0x9A,0x43,0xC2,0x80, + 0x08,0x98,0x80,0x04,0x78,0xD5,0xA4,0x4A,0x00,0x20,0x20,0x32,0x52,0x78,0x00,0x2A, + 0x02,0xD1,0x00,0x29,0x00,0xD1,0x01,0x20,0x00,0x90,0x00,0xF0,0x43,0xF9,0x9C,0x48, + 0x9E,0x4C,0x00,0x79,0x01,0x28,0x0E,0x90,0x68,0xD1,0x99,0x4B,0x19,0x89,0x0D,0x91, + 0xDF,0x88,0x6A,0x89,0x7B,0x06,0x00,0xD4,0xF2,0x88,0x91,0x42,0x00,0xD3,0x00,0x20, + 0x03,0x90,0x0D,0x98,0x0A,0x22,0x0E,0x21,0x50,0x43,0x61,0x5E,0x0C,0x91,0xFE,0xF7, + 0x65,0xFD,0x29,0x78,0x92,0x4B,0x7A,0x06,0x0B,0x93,0x00,0xD4,0x19,0x7F,0x88,0x42, + 0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x02,0x90,0x0C,0x99,0x0D,0x98,0x40,0x1A, + 0x0A,0x21,0xFE,0xF7,0x53,0xFD,0x69,0x78,0x7A,0x06,0x01,0xD4,0x0B,0x99,0x49,0x7F, + 0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x01,0x90,0x22,0x89,0xA9,0x78, + 0x01,0x20,0x7B,0x06,0x01,0xD4,0x0B,0x99,0x89,0x7F,0x8A,0x42,0x00,0xD8,0x00,0x20, + 0xE9,0x78,0x84,0x46,0x22,0x69,0x01,0x20,0x7B,0x06,0x01,0xD4,0x0B,0x99,0xC9,0x7F, + 0x8A,0x42,0x00,0xDB,0x00,0x20,0x03,0x99,0x00,0x29,0x1F,0xD0,0x02,0x99,0x00,0x29, + 0x1C,0xD0,0x01,0x99,0x00,0x29,0x19,0xD0,0x61,0x46,0x00,0x29,0x16,0xD0,0x72,0x4A, + 0x01,0x21,0x80,0x3A,0x52,0x68,0x00,0x2A,0x00,0xD0,0x00,0x21,0x01,0x42,0x0D,0xD0, + 0x60,0x7B,0x00,0x28,0x24,0xD0,0x69,0x7A,0x7A,0x06,0x00,0xD4,0x71,0x79,0x88,0x42, + 0x1E,0xD8,0x40,0x1E,0x60,0x73,0x1B,0xE0,0x38,0xE0,0xFF,0xE7,0x64,0x48,0x29,0x79, + 0xC0,0x88,0x22,0x69,0x43,0x06,0x00,0xD4,0x31,0x78,0x8A,0x42,0x10,0xDB,0x0E,0x99, + 0x00,0x29,0x0D,0xD0,0xC1,0x06,0x0B,0xD4,0x61,0x7B,0xEA,0x79,0x40,0x06,0x00,0xD4, + 0xF2,0x78,0x91,0x42,0x04,0xD2,0x04,0x98,0x81,0x42,0x01,0xD9,0x49,0x1C,0x61,0x73, + 0x60,0x7B,0x04,0x99,0x10,0x22,0x88,0x42,0x0D,0xD8,0x00,0x98,0x00,0x28,0x0A,0xD1, + 0x53,0x49,0xC8,0x88,0x10,0x43,0xC8,0x80,0xC9,0x88,0x28,0x7A,0x49,0x06,0x00,0xD4, + 0x30,0x79,0x20,0x73,0x0D,0xE0,0x4E,0x4B,0xD8,0x88,0xC1,0x06,0x09,0xD5,0x21,0x7B, + 0x00,0x29,0x04,0xD1,0x90,0x43,0xD8,0x80,0x70,0x78,0x60,0x73,0x01,0xE0,0x49,0x1E, + 0x21,0x73,0x47,0x4F,0x38,0x79,0x00,0x28,0x7E,0xD0,0xF8,0x88,0x80,0x06,0x05,0xD5, + 0x05,0x99,0x06,0x98,0x40,0x1A,0x00,0x06,0x00,0x0E,0x06,0x90,0x01,0x22,0x50,0x00, + 0xC0,0x19,0x84,0x46,0xFF,0x30,0x41,0x30,0xC0,0x88,0x00,0x28,0x65,0xD0,0x07,0x99, + 0x88,0x42,0x09,0xD9,0x08,0x98,0x80,0x07,0x5F,0xD5,0x00,0x20,0x38,0x71,0xF8,0x88, + 0x08,0x21,0x08,0x43,0xF8,0x80,0x58,0xE0,0x06,0x99,0x88,0x42,0x55,0xD3,0x08,0x98, + 0x40,0x07,0x52,0xD5,0x00,0x24,0x01,0x20,0x27,0xE0,0xFF,0x23,0x39,0x18,0x3E,0x33, + 0x5B,0x5C,0x93,0x42,0x20,0xD1,0x64,0x1C,0xFF,0x31,0x01,0x31,0x09,0x7C,0x0A,0x91, + 0x01,0x00,0x12,0xE0,0x4B,0x00,0xDD,0x19,0x2B,0x00,0xC0,0x33,0xDE,0x89,0xE0,0x35, + 0x9E,0x81,0x2D,0x88,0xDD,0x83,0x7B,0x18,0xDD,0x1D,0xF9,0x35,0x6E,0x7C,0xFF,0x33, + 0x21,0x33,0x2E,0x74,0x9E,0x7F,0x49,0x1C,0x5E,0x77,0x3B,0x79,0x8B,0x42,0xE9,0xDA, + 0x39,0x79,0x49,0x1E,0x40,0x1E,0x39,0x71,0x40,0x1C,0x39,0x79,0x81,0x42,0xD4,0xDA, + 0x00,0x2C,0x22,0xDD,0x01,0x2C,0x05,0xDD,0x01,0x20,0x09,0x90,0xF8,0x88,0x20,0x21, + 0x08,0x43,0xF8,0x80,0x60,0x46,0xFF,0x30,0x01,0x30,0xC1,0x8B,0x38,0x79,0x40,0x1C, + 0x00,0x06,0x00,0x0E,0x38,0x71,0x40,0x00,0xC0,0x19,0xC0,0x30,0x81,0x81,0x60,0x46, + 0xFF,0x30,0x21,0x30,0xC1,0x89,0x38,0x79,0x40,0x00,0xC0,0x19,0xC0,0x30,0xC1,0x83, + 0x3B,0x79,0x0D,0x49,0x0A,0x98,0x30,0x39,0x58,0x54,0x52,0x1C,0x08,0x2A,0x8E,0xDB, + 0x09,0x98,0x00,0x28,0x05,0xD1,0x00,0xE0,0x03,0xE0,0xF8,0x88,0x20,0x21,0x88,0x43, + 0xF8,0x80,0x0F,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x40,0x79,0x00,0x00,0x30,0x07,0x00,0x20,0x30,0x0A,0x00,0x20, + 0x20,0x79,0x00,0x00,0xF0,0xB5,0x70,0x48,0xB1,0xB0,0x00,0x78,0x71,0x4B,0x70,0x4A, + 0x01,0x90,0x6E,0x48,0x00,0x78,0x00,0x90,0xD9,0x88,0x16,0x7D,0x6E,0x48,0x4C,0x06, + 0x00,0xD4,0x06,0x7C,0x55,0x7D,0x49,0x06,0x00,0xD4,0x45,0x7C,0x6B,0x48,0x00,0x21, + 0x2B,0x95,0x30,0x90,0xC1,0x81,0x50,0x22,0x16,0xA8,0x2A,0x91,0x03,0xF0,0xEA,0xF9, + 0x01,0x99,0x2B,0x98,0x2B,0x9D,0x08,0x1A,0xAD,0x1C,0x2F,0x90,0x80,0x1C,0x2E,0x90, + 0x35,0xE0,0x00,0x98,0x16,0xA9,0x80,0x1B,0x80,0x1C,0x86,0x46,0x2B,0x98,0xB4,0x1C, + 0x28,0x1A,0x80,0x00,0x47,0x18,0x40,0x3F,0x1E,0xE0,0x01,0x98,0x5C,0x49,0x00,0x1D, + 0x60,0x43,0x40,0x19,0x00,0x04,0x00,0x14,0x40,0x00,0x0A,0x5E,0x55,0x4B,0x68,0x00, + 0xC0,0x18,0x94,0x21,0x41,0x5E,0x60,0x00,0xC3,0x18,0x6C,0x20,0x18,0x5E,0x2A,0x9B, + 0x94,0x46,0xC3,0x18,0x52,0x18,0xD2,0x18,0x2A,0x92,0xBB,0x6B,0x62,0x46,0x9A,0x18, + 0x08,0x18,0x10,0x18,0x64,0x1C,0xB8,0x63,0xA6,0x45,0xDE,0xDC,0x00,0x98,0x71,0x00, + 0x41,0x1A,0xB8,0x6B,0xFE,0xF7,0xE2,0xFB,0xB8,0x63,0x2E,0x98,0x6D,0x1C,0xA8,0x42, + 0xC7,0xDC,0x00,0x99,0x70,0x00,0x09,0x1A,0x2B,0x98,0x2D,0x91,0x42,0x00,0x01,0x98, + 0x80,0x1A,0x41,0x43,0x2C,0x90,0x2A,0x98,0xFE,0xF7,0xD0,0xFB,0x30,0x99,0x50,0x22, + 0xC8,0x81,0x00,0x20,0x01,0x00,0x2A,0x90,0x02,0xA8,0x03,0xF0,0x93,0xF9,0x2B,0x9C, + 0xA4,0x1C,0x35,0xE0,0x00,0x99,0x02,0xAA,0x89,0x1B,0x89,0x1C,0x8E,0x46,0x2B,0x99, + 0xB0,0x1C,0x61,0x1A,0x89,0x00,0x8D,0x18,0x40,0x3D,0x8C,0x46,0x1C,0xE0,0x01,0x99, + 0x33,0x4A,0x09,0x1D,0x41,0x43,0x09,0x19,0x49,0x00,0x51,0x5E,0x16,0xAA,0x62,0x44, + 0x40,0x3A,0x92,0x6B,0x2B,0x4F,0x89,0x1A,0x62,0x00,0xD3,0x19,0x94,0x22,0x9A,0x5E, + 0x43,0x00,0xDB,0x19,0x6C,0x27,0xDF,0x5F,0xD2,0x19,0x89,0x18,0x0B,0x00,0x4B,0x43, + 0xAA,0x6B,0xD1,0x18,0x40,0x1C,0xA9,0x63,0x86,0x45,0xE0,0xDC,0x2D,0x99,0xA8,0x6B, + 0x49,0x1E,0xFE,0xF7,0x93,0xFB,0xA8,0x63,0x2A,0x99,0x40,0x18,0x64,0x1C,0x2A,0x90, + 0x2E,0x98,0xA0,0x42,0xC6,0xDC,0x2C,0x99,0x2A,0x98,0xFE,0xF7,0x87,0xFB,0x30,0x99, + 0x00,0x22,0x0A,0x61,0x11,0x00,0x02,0xAB,0x0A,0xE0,0x8A,0x00,0x9A,0x58,0x82,0x1A, + 0x14,0x00,0x54,0x43,0x30,0x9A,0x12,0x69,0xA2,0x18,0x30,0x9C,0x49,0x1C,0x22,0x61, + 0x2C,0x9A,0x8A,0x42,0xF1,0xDC,0x30,0x98,0x51,0x1E,0x00,0x69,0xFE,0xF7,0x6E,0xFB, + 0x00,0x9A,0x2F,0x99,0x92,0x1B,0x92,0x02,0x51,0x43,0xFE,0xF7,0x67,0xFB,0x30,0x99, + 0x08,0x61,0x30,0x99,0x0E,0x20,0x08,0x5E,0x00,0x28,0x01,0xD1,0x40,0x1C,0xC8,0x81, + 0x31,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x00,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x40,0x79,0x00,0x00,0x30,0x0A,0x00,0x20, + 0xC8,0x02,0x00,0x20,0xF8,0xB5,0x61,0x4D,0x28,0x7A,0x00,0x28,0x06,0xD0,0x28,0x6B, + 0x00,0x04,0x00,0x0C,0x05,0xF0,0x56,0xF9,0x05,0xF0,0x44,0xF9,0x01,0x24,0x64,0x03, + 0x20,0x00,0xFE,0xF7,0x53,0xFF,0x04,0xF0,0x1F,0xFD,0x20,0x00,0xFE,0xF7,0x46,0xFF, + 0x57,0x4C,0x00,0x26,0x9C,0xE0,0x57,0x48,0x41,0x68,0x09,0x07,0x07,0xD5,0xC0,0x68, + 0x00,0x28,0x04,0xD0,0x53,0x48,0xC1,0x68,0xC0,0x03,0xC1,0x63,0x95,0xE0,0x28,0x7A, + 0x00,0x28,0x04,0xD0,0x28,0x6B,0x00,0x04,0x00,0x0C,0x05,0xF0,0x33,0xF9,0xFF,0x20, + 0x81,0x30,0xFE,0xF7,0x33,0xFF,0x03,0x20,0x05,0xF0,0x6C,0xF8,0x04,0xF0,0x0A,0xF8, + 0x49,0x4F,0xF8,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5, + 0x04,0x20,0x00,0xE0,0x02,0x20,0x04,0xF0,0x39,0xFF,0x00,0xF0,0xA7,0xFB,0x04,0xF0, + 0x11,0xFD,0x00,0xF0,0x71,0xFB,0x00,0xF0,0x1F,0xFC,0x68,0x7B,0x00,0x28,0x04,0xD1, + 0x20,0x7B,0x00,0x28,0x01,0xD0,0x03,0xF0,0xF9,0xFF,0x20,0x7A,0x00,0x28,0x01,0xD0, + 0x03,0xF0,0xCE,0xF8,0x01,0x20,0x40,0x05,0x00,0xF0,0x44,0xFB,0x03,0xF0,0xE4,0xF8, + 0x00,0x28,0x01,0xD0,0x01,0x20,0x28,0x70,0x00,0x20,0x00,0xF0,0x3B,0xFB,0x28,0x78, + 0x00,0x28,0x04,0xD1,0x00,0x22,0x11,0x00,0x10,0x00,0x00,0xF0,0x65,0xF9,0x03,0xF0, + 0xC5,0xFF,0x28,0x78,0x00,0x28,0x04,0xD0,0x68,0x7B,0x00,0x09,0x04,0x28,0x44,0xD1, + 0x2E,0x70,0x03,0x20,0x05,0xF0,0x00,0xF8,0xE8,0x62,0x03,0x20,0x05,0xF0,0x2E,0xF8, + 0xFF,0x20,0x81,0x30,0xFE,0xF7,0xDA,0xFE,0xF8,0x8B,0x00,0x28,0x02,0xD0,0x40,0x1E, + 0xF8,0x83,0x2D,0xE0,0xFF,0xF7,0x9C,0xFC,0x00,0x28,0x29,0xD0,0x6F,0x6A,0x00,0x2F, + 0x26,0xD0,0xE8,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x1C,0x49,0xFE,0xF7,0x90,0xFB, + 0x38,0x1A,0x14,0x28,0x1C,0xDD,0x05,0xF0,0xD3,0xF8,0x05,0xF0,0xD7,0xF8,0xA8,0x79, + 0x00,0x28,0x0D,0xD0,0x03,0xF0,0x70,0xFF,0x03,0xF0,0x73,0xFF,0x03,0xF0,0x7B,0xFF, + 0x13,0x4D,0x01,0x20,0x68,0x60,0xFE,0xF7,0xC1,0xFE,0x12,0x48,0x68,0x60,0x03,0xE0, + 0x11,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0,0x05,0xF0,0xC7,0xF8,0x0E,0x48,0x06,0x70, + 0x06,0x4D,0x28,0x78,0x00,0x28,0x00,0xD1,0x5D,0xE7,0x04,0x48,0x00,0x7A,0x00,0x28, + 0x01,0xD0,0x05,0xF0,0x97,0xF8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xF8,0x0A,0x00,0x20, + 0x80,0x78,0x00,0x00,0x00,0x40,0x00,0x30,0xF0,0x05,0x00,0x20,0x10,0x27,0x00,0x00, + 0x00,0x30,0x00,0x40,0xE1,0x04,0x00,0x00,0xAC,0x0B,0x00,0x20,0x10,0xB4,0x0F,0x4B, + 0x00,0x22,0xD2,0x43,0x81,0x00,0x5A,0x52,0xCB,0x18,0x5A,0x80,0x0B,0x4B,0x0B,0x4C, + 0x24,0x33,0x5A,0x52,0xCB,0x18,0x5A,0x80,0x00,0x23,0x42,0x00,0x1C,0x3C,0xA3,0x52, + 0x22,0x00,0x12,0x32,0x13,0x54,0x18,0x00,0x52,0x32,0x8A,0x18,0x81,0x00,0x53,0x52, + 0x51,0x18,0x40,0x1E,0x4B,0x80,0xF9,0xD5,0x10,0xBC,0x70,0x47,0xCA,0x0B,0x00,0x20, + 0x10,0xB5,0x0C,0x48,0x09,0x22,0x00,0x21,0x03,0xF0,0x1C,0xF8,0x0A,0x48,0x5A,0x22, + 0x00,0x21,0x03,0xF0,0x17,0xF8,0x08,0x48,0x00,0x24,0x00,0x1F,0x04,0x70,0x07,0x48, + 0x28,0x22,0x21,0x00,0x03,0xF0,0x0E,0xF8,0x04,0x48,0x4E,0x38,0x44,0x75,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x6B,0x08,0x00,0x20,0x54,0x07,0x00,0x20,0x7E,0x0A,0x00,0x20, + 0x10,0xB5,0x17,0x48,0x12,0x22,0x00,0x21,0x02,0xF0,0xFC,0xFF,0x14,0x48,0x12,0x22, + 0x00,0x21,0x12,0x30,0x02,0xF0,0xF6,0xFF,0x11,0x48,0x09,0x22,0x00,0x21,0x44,0x30, + 0x02,0xF0,0xF0,0xFF,0x0E,0x48,0x20,0x22,0x00,0x21,0x24,0x30,0x02,0xF0,0xEA,0xFF, + 0x0B,0x48,0x10,0x22,0x00,0x21,0x52,0x30,0x02,0xF0,0xE4,0xFF,0x08,0x48,0x10,0x22, + 0x00,0x21,0x62,0x30,0x02,0xF0,0xDE,0xFF,0x05,0x49,0x00,0x20,0x74,0x31,0xC8,0x82, + 0xFF,0x39,0x41,0x39,0x08,0x71,0x88,0x83,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xBC,0x06,0x00,0x20,0xF0,0xB4,0x1E,0x49,0x1E,0x4E,0x8F,0x7B,0xF1,0x88,0x49,0x06, + 0x02,0xD4,0x1B,0x49,0xC0,0x39,0x8F,0x7A,0x08,0x21,0x00,0x24,0x42,0x00,0x0B,0x01, + 0x9B,0x19,0x15,0x25,0x9B,0x18,0x6D,0x01,0x5D,0x19,0xEC,0x82,0x0D,0x25,0xAD,0x01, + 0x5B,0x19,0x49,0x1E,0xDC,0x80,0xF2,0xD5,0x15,0x25,0x31,0x18,0x6D,0x01,0x01,0x23, + 0x4D,0x19,0xAB,0x73,0x0F,0x25,0x93,0x19,0xAD,0x01,0x5B,0x19,0xDC,0x82,0x1F,0x23, + 0x5B,0x01,0xC9,0x18,0x8F,0x71,0x8C,0x73,0x02,0x21,0x0D,0x01,0xAD,0x19,0xAD,0x18, + 0xED,0x18,0x49,0x1E,0xEC,0x82,0xF8,0xD5,0x80,0x00,0x82,0x19,0x00,0x21,0x21,0x20, + 0xC9,0x43,0x40,0x01,0x10,0x18,0xC1,0x80,0x01,0x81,0xF0,0xBC,0x70,0x47,0x00,0x00, + 0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x10,0xB5,0x06,0x48,0x20,0x22,0x00,0x21, + 0x02,0xF0,0x88,0xFF,0x04,0x48,0x00,0x21,0x81,0x72,0x41,0x72,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x7E,0x08,0x00,0x20,0xB0,0x06,0x00,0x20,0x10,0xB5,0x04,0xF0, + 0x3B,0xFF,0x03,0xF0,0xF1,0xFE,0xFF,0xF7,0x53,0xFF,0xFF,0xF7,0x71,0xFF,0x04,0xF0, + 0x37,0xF8,0x01,0xF0,0x65,0xFD,0x01,0xF0,0xDF,0xFC,0x03,0x49,0x00,0x20,0x48,0x71, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0x10,0xB4,0x0D,0x4C, + 0x0B,0x4B,0xE4,0x88,0x1B,0x7F,0x64,0x06,0x02,0xD4,0x09,0x4B,0xC0,0x3B,0x1B,0x7E, + 0x04,0x1E,0x00,0xDC,0x44,0x42,0x9C,0x42,0x06,0xDD,0x98,0x42,0x01,0xDD,0xC8,0x1A, + 0x00,0xE0,0xC8,0x18,0x02,0x04,0x12,0x0C,0x10,0xBC,0x10,0x00,0x70,0x47,0x00,0x00, + 0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0xF7,0xB5,0x5E,0x48,0xCA,0xB0,0x00,0x7D, + 0x00,0x28,0x03,0xD0,0x01,0x20,0x47,0x90,0x00,0x20,0x02,0xE0,0x00,0x20,0x47,0x90, + 0x01,0x20,0x46,0x90,0x58,0x48,0x00,0x26,0x49,0x90,0x58,0x48,0x35,0x00,0x01,0x8B, + 0x04,0x91,0x41,0x8B,0x03,0x91,0x81,0x8A,0x02,0x91,0xC1,0x8A,0x01,0x91,0x80,0x8B, + 0x45,0x90,0x53,0x48,0x00,0x7A,0x48,0x96,0x00,0x90,0x6B,0xE0,0x00,0x24,0x64,0xE0, + 0x68,0x43,0x07,0x19,0x21,0x00,0x28,0x00,0x01,0xF0,0x5A,0xF9,0x49,0x49,0x20,0x39, + 0x0A,0x7D,0xD2,0x07,0x2D,0xD0,0x4B,0x4A,0x52,0x79,0x00,0x2A,0x00,0x9A,0x11,0xD0, + 0x95,0x42,0x26,0xD1,0x8A,0x7D,0xA2,0x42,0x1D,0xD0,0xCA,0x7D,0xA2,0x42,0x1A,0xD0, + 0x0A,0x7E,0xA2,0x42,0x17,0xD0,0x4A,0x7E,0xA2,0x42,0x14,0xD0,0x89,0x7E,0xA1,0x42, + 0x42,0xD1,0x10,0xE0,0x94,0x42,0x14,0xD1,0x8A,0x7D,0xAA,0x42,0x0B,0xD0,0xCA,0x7D, + 0xAA,0x42,0x08,0xD0,0x0A,0x7E,0xAA,0x42,0x05,0xD0,0x4A,0x7E,0xAA,0x42,0x02,0xD0, + 0x89,0x7E,0xA9,0x42,0x30,0xD1,0x04,0x99,0x03,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C, + 0x04,0xE0,0x02,0x99,0x01,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C,0x80,0x1A,0x49,0x9B, + 0x02,0x04,0xB8,0x00,0x18,0x58,0x4B,0x9B,0x12,0x0C,0x00,0x2B,0x02,0xD0,0x00,0x05, + 0x00,0x0D,0x01,0xE0,0x00,0x01,0x00,0x0D,0x4A,0x9B,0x05,0x2B,0x0E,0xD8,0x90,0x42, + 0x01,0xDA,0x47,0x9A,0x02,0xE0,0x88,0x42,0x0E,0xDD,0x46,0x9A,0x21,0x00,0x28,0x00, + 0x00,0xF0,0x4C,0xF8,0x05,0xA8,0x87,0x55,0x76,0x1C,0x05,0xE0,0x48,0x99,0x05,0xA8, + 0x47,0x54,0x48,0x98,0x40,0x1C,0x48,0x90,0x64,0x1C,0x1E,0x49,0xC8,0x78,0x84,0x42, + 0x96,0xDB,0x6D,0x1C,0x1B,0x48,0x01,0x79,0x8D,0x42,0x8F,0xDB,0x00,0x2E,0x25,0xDD, + 0x4C,0x98,0x00,0x28,0x22,0xD1,0x00,0xF0,0x2D,0xF9,0x00,0xF0,0x4D,0xF9,0x00,0xF0, + 0xFB,0xF9,0x76,0x1E,0x14,0xD4,0x14,0x4C,0x05,0xAB,0x98,0x5D,0x82,0x00,0x49,0x98, + 0x80,0x58,0x01,0x05,0x45,0x98,0x09,0x0D,0x08,0x18,0x00,0x04,0x00,0x0C,0xA0,0x42, + 0x00,0xD9,0x20,0x00,0x00,0x04,0x08,0x43,0x49,0x99,0x76,0x1E,0x88,0x50,0xEC,0xD5, + 0x00,0xF0,0x08,0xF9,0x00,0xF0,0x30,0xF9,0x00,0xF0,0xDE,0xF9,0x4D,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x20,0x78,0x00,0x00,0x00,0x02,0x10,0x40,0xE0,0x7A,0x00,0x00, + 0x70,0x0A,0x00,0x20,0xF8,0x0A,0x00,0x20,0xFF,0x0F,0x00,0x00,0x30,0xB4,0x17,0x4D, + 0x15,0x4C,0x2D,0x78,0x68,0x43,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x09,0x0E, + 0x00,0x0A,0x00,0x2B,0x07,0xD0,0x00,0x2A,0x02,0xD0,0xC9,0x18,0xC0,0x18,0x0F,0xE0, + 0xC0,0x1A,0xC9,0x1A,0x0C,0xE0,0x00,0x2A,0x05,0xD0,0x88,0x42,0x01,0xDD,0x49,0x1C, + 0x06,0xE0,0x40,0x1C,0x04,0xE0,0x88,0x42,0x01,0xDD,0x40,0x1E,0x00,0xE0,0x49,0x1E, + 0x4A,0x1E,0xFF,0x2A,0x05,0xD2,0x42,0x1E,0xFF,0x2A,0x02,0xD2,0x00,0x02,0x08,0x43, + 0x60,0x53,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20, + 0xF0,0xB5,0x5A,0x48,0x8F,0xB0,0x06,0x78,0x59,0x48,0x5B,0x4A,0x05,0x96,0x07,0x78, + 0x58,0x48,0x06,0x97,0x0E,0x90,0x80,0x7E,0x0D,0x92,0xC1,0x07,0x09,0xD0,0x80,0x07, + 0x04,0xD5,0x70,0x1E,0x05,0x90,0x03,0x20,0x10,0x71,0x02,0xE0,0x7F,0x1E,0x00,0x21, + 0x11,0x71,0x52,0x48,0x0A,0x22,0x01,0x8C,0x51,0x43,0x09,0x04,0x09,0x0C,0x02,0x91, + 0x40,0x8C,0x50,0x43,0x00,0x04,0x00,0x0C,0x01,0x90,0x05,0x98,0x00,0x28,0x7E,0xD0, + 0x00,0x2F,0x7C,0xD0,0x41,0x00,0x02,0x98,0xFE,0xF7,0x50,0xF8,0x05,0x04,0x2D,0x0C, + 0x00,0x24,0xB6,0x1C,0x0A,0xE0,0x02,0x98,0x05,0x99,0x60,0x43,0xFE,0xF7,0x46,0xF8, + 0x43,0x4A,0x61,0x00,0x40,0x19,0x89,0x18,0x64,0x1C,0x08,0x84,0xB4,0x42,0xF2,0xDB, + 0x01,0x98,0x79,0x00,0xFE,0xF7,0x3A,0xF8,0x06,0x04,0x06,0x98,0x36,0x0C,0x00,0x24, + 0x80,0x1C,0x0C,0x90,0x0C,0xE0,0x01,0x98,0x39,0x00,0x60,0x43,0xFE,0xF7,0x2E,0xF8, + 0x37,0x4A,0x81,0x19,0x60,0x00,0x80,0x18,0x40,0x30,0x81,0x80,0x0C,0x98,0x64,0x1C, + 0x84,0x42,0xF0,0xDB,0x0E,0x98,0x80,0x7E,0xC0,0x07,0x53,0xD0,0x00,0x24,0x4D,0xE0, + 0x2F,0x4A,0x09,0x21,0x10,0x19,0xC9,0x01,0x40,0x18,0x41,0x7A,0x0E,0x98,0x80,0x7E, + 0x80,0x07,0x03,0xD5,0x05,0x98,0x03,0x95,0x04,0x91,0x02,0xE0,0x08,0x00,0x03,0xA9, + 0xC0,0xC1,0x27,0x49,0x40,0x00,0x40,0x18,0x0B,0x90,0x00,0x8C,0x0A,0x21,0x40,0x1B, + 0xFE,0xF7,0x04,0xF8,0x22,0x4A,0xE1,0x00,0x89,0x18,0x11,0x22,0x92,0x01,0x0A,0x91, + 0x89,0x18,0x09,0x91,0x88,0x83,0x04,0x98,0x1D,0x49,0x40,0x00,0x40,0x18,0x40,0x30, + 0x08,0x90,0x80,0x88,0x0A,0x21,0x80,0x1B,0xFD,0xF7,0xF0,0xFF,0x09,0x99,0xC8,0x83, + 0x0B,0x98,0x0A,0x21,0x00,0x8C,0x40,0x19,0xFE,0xF7,0xC2,0xF8,0x0A,0x99,0x23,0x22, + 0x52,0x01,0x89,0x18,0x07,0x91,0x08,0x80,0x08,0x98,0x0A,0x21,0x80,0x88,0x80,0x19, + 0xFE,0xF7,0xB6,0xF8,0x07,0x99,0x48,0x80,0x03,0x98,0x40,0x00,0x00,0xE0,0x09,0xE0, + 0x0A,0x21,0xFE,0xF7,0xAD,0xF8,0x0D,0x99,0x64,0x1C,0xC8,0x80,0x0E,0x98,0xC0,0x7E, + 0xA0,0x42,0xAD,0xDC,0x0F,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0x30,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20,0x00,0x78,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x02,0x49,0x08,0x68,0x04,0x22,0x90,0x43,0x08,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x04,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x03,0x49,0xCA,0x69,0x01,0x23,0x5B,0x05,0x9A,0x43,0x02,0x43, + 0xCA,0x61,0x70,0x47,0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x49,0x08,0x49,0x00, + 0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x01,0x22,0x11,0x43, + 0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0x01,0x49,0xC8,0x68,0xC8,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x08,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x01,0x22,0x10,0xB5,0x08,0x49,0x09,0x48,0x52,0x02,0x02,0xF0, + 0x3E,0xFD,0x08,0x48,0x01,0x22,0xC0,0x8E,0x92,0x02,0x01,0x04,0x01,0x43,0x06,0x48, + 0x02,0xF0,0x48,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x7E,0x00,0x00, + 0x00,0x00,0x10,0x40,0x00,0x78,0x00,0x00,0x00,0x02,0x10,0x40,0x02,0x48,0x81,0x6B, + 0x49,0x08,0x49,0x00,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x02,0x48,0x81,0x6B, + 0x01,0x22,0x11,0x43,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x10,0xB5,0x0A,0x49, + 0x0A,0x48,0xFC,0x22,0x02,0xF0,0x13,0xFD,0xFF,0x22,0x09,0x49,0x09,0x48,0xF1,0x32, + 0x02,0xF0,0x0D,0xFD,0x01,0x22,0x08,0x49,0x08,0x48,0x52,0x02,0x02,0xF0,0x07,0xFD, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x04,0x7B,0x00,0x00,0x04,0x90,0x00,0x40, + 0x00,0x7C,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x76,0x00,0x00,0x00,0x06,0x10,0x40, + 0x03,0x48,0x41,0x68,0x01,0x22,0x12,0x04,0x11,0x43,0x41,0x60,0x70,0x47,0x00,0x00, + 0x00,0xA0,0x00,0x40,0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x70,0xB5,0x1A,0x4C,0x20,0x68,0x40,0x08,0x40,0x00,0x20,0x60, + 0x18,0x48,0xA6,0x15,0x05,0x04,0x2D,0x0C,0x00,0x22,0x31,0x00,0x28,0x00,0xFE,0xF7, + 0x07,0xF8,0x32,0x00,0x21,0x00,0x28,0x00,0x00,0x23,0xFE,0xF7,0x09,0xF8,0x12,0x48, + 0x75,0x00,0x04,0x04,0x24,0x0C,0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0xF8,0xFF, + 0x0E,0x49,0x2A,0x00,0x20,0x00,0x00,0x23,0xFD,0xF7,0xFA,0xFF,0x0C,0x48,0x00,0x22, + 0x04,0x04,0x24,0x0C,0x29,0x00,0x20,0x00,0xFD,0xF7,0xEA,0xFF,0x09,0x49,0x2A,0x00, + 0x20,0x00,0x00,0x23,0xFD,0xF7,0xEC,0xFF,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0x90,0x00,0x40,0x00,0x7B,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x00,0x76,0x00,0x00,0x00,0x06,0x10,0x40,0x04,0x48,0x10,0xB5,0xC1,0x68,0xC9,0x07, + 0xFC,0xD0,0xFE,0xF7,0xA3,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40, + 0xF1,0xB5,0x55,0x4E,0x53,0x4B,0xF2,0x88,0x98,0x88,0x54,0x49,0x54,0x06,0x82,0xB0, + 0x00,0xD4,0x08,0x88,0x52,0x06,0x01,0x90,0x98,0x79,0x00,0xD4,0x88,0x78,0x37,0x00, + 0x00,0x25,0x01,0x00,0x41,0x43,0x08,0x06,0x00,0x0E,0x01,0x24,0xFF,0x37,0x61,0x37, + 0x00,0x90,0x11,0xE0,0x0A,0x20,0x60,0x43,0x43,0x21,0x80,0x19,0xC9,0x00,0x09,0x5C, + 0x00,0x29,0x08,0xD0,0x46,0x49,0x40,0x18,0x01,0xF0,0xA2,0xF9,0x00,0x28,0x02,0xD0, + 0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x64,0x1C,0xB8,0x78,0xA0,0x42,0xEA,0xDA,0x41,0x49, + 0x08,0x00,0x20,0x30,0xCA,0x8B,0x43,0x88,0xD4,0x1A,0x00,0x2C,0x00,0xDC,0x9C,0x1A, + 0x22,0x04,0x03,0x88,0x84,0x88,0x12,0x0C,0x1F,0x1B,0x00,0x2F,0x00,0xDC,0xE7,0x1A, + 0x84,0x7A,0x3B,0x04,0x1B,0x0C,0x00,0x2C,0x04,0xD0,0x44,0x7B,0xC8,0x2C,0x01,0xD2, + 0x64,0x1C,0x44,0x73,0x8C,0x7B,0x14,0x2C,0x04,0xD2,0x0C,0x7C,0x00,0x2C,0x01,0xD0, + 0x01,0x24,0x4C,0x74,0x0F,0x2A,0x01,0xD8,0x0F,0x2B,0x04,0xD9,0xCC,0x7B,0xC8,0x2C, + 0x01,0xD2,0x64,0x1C,0xCC,0x73,0x02,0x2D,0x09,0xD2,0x0F,0x2A,0x07,0xD2,0x0F,0x2B, + 0x05,0xD2,0x08,0x24,0x04,0x5F,0x04,0x2C,0x07,0xDA,0x64,0x1C,0x04,0xE0,0x08,0x24, + 0x04,0x5F,0xE7,0x1C,0x01,0xDD,0x64,0x1E,0x04,0x81,0x44,0x7B,0x01,0x2C,0x01,0xD9, + 0x50,0x21,0x10,0xE0,0x02,0x2D,0x0F,0xD2,0x08,0x24,0x04,0x5F,0x02,0x2C,0x0B,0xDD, + 0xC9,0x7B,0x14,0x29,0x08,0xD2,0x3D,0x3A,0x3B,0x2A,0x02,0xD3,0x3D,0x3B,0x3B,0x2B, + 0x02,0xD2,0x4F,0x21,0xC9,0x43,0xC1,0x80,0x00,0x21,0x02,0x2D,0x01,0x73,0x0E,0xD2, + 0x06,0x21,0x41,0x5E,0x50,0x31,0x04,0xD1,0xC1,0x7A,0xC8,0x29,0x01,0xD2,0x49,0x1C, + 0xC1,0x72,0xC1,0x7A,0x49,0x1E,0x02,0x29,0x01,0xD2,0x01,0x21,0x01,0x73,0x06,0x21, + 0x41,0x5E,0x01,0x98,0x09,0x18,0x08,0x00,0x48,0x43,0x02,0x99,0x00,0x29,0x05,0xD1, + 0x31,0x79,0x01,0x29,0x02,0xD0,0x00,0x99,0xFD,0xF7,0x30,0xFE,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00, + 0x1E,0x02,0x00,0x00,0x70,0x08,0x00,0x20,0xFF,0x21,0x03,0x31,0x08,0x00,0x49,0x1E, + 0x00,0x28,0xFB,0xD1,0x70,0x47,0x15,0x21,0x08,0x00,0x49,0x1E,0x00,0x28,0xFB,0xD1, + 0x70,0x47,0x00,0x00,0x02,0x48,0x41,0x6B,0x01,0x22,0x11,0x43,0x41,0x63,0x70,0x47, + 0x00,0x70,0x00,0x40,0x02,0x48,0xC1,0x69,0x02,0x14,0x11,0x43,0xC1,0x61,0x70,0x47, + 0x00,0x70,0x00,0x40,0xFE,0xB5,0x1E,0x4A,0x1C,0x48,0xD1,0x88,0x00,0x25,0x00,0x7A, + 0x2E,0x00,0x2F,0x00,0x49,0x06,0x02,0xD4,0x18,0x48,0xC0,0x38,0x00,0x79,0x19,0x49, + 0x89,0x8A,0x40,0x18,0x01,0x06,0x18,0x48,0x09,0x0E,0x00,0x78,0x00,0x28,0x01,0x90, + 0x21,0xD0,0x01,0x24,0x49,0x1C,0x00,0x91,0x13,0xE0,0x0A,0x20,0x60,0x43,0x10,0x49, + 0x40,0x18,0xFF,0x30,0x61,0x30,0x80,0x7A,0x14,0x28,0x01,0xD2,0x01,0x26,0x07,0xE0, + 0x01,0x27,0x14,0x21,0xFD,0xF7,0xB4,0xFE,0x00,0x99,0x88,0x42,0x00,0xD3,0x01,0x25, + 0x64,0x1C,0x01,0x98,0xA0,0x42,0xE8,0xDA,0x00,0x2F,0x02,0xD1,0x00,0x2E,0x00,0xD0, + 0x02,0x25,0x28,0x06,0x00,0x0E,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x20,0x7A,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xD0,0x0A,0x00,0x20,0x50,0x07,0x00,0x20,0x13,0x48,0x10,0xB5, + 0xC0,0x68,0x00,0x28,0x1F,0xD0,0x01,0x06,0x09,0x0F,0x03,0x29,0x01,0xD0,0x04,0x29, + 0x02,0xD1,0x00,0xF0,0x25,0xF9,0x08,0xE0,0xF0,0x21,0x01,0x40,0x20,0x29,0x02,0xD2, + 0x00,0xF0,0x1A,0xF8,0x01,0xE0,0x03,0xF0,0xEF,0xFB,0x09,0x48,0x82,0x68,0x81,0x15, + 0x8A,0x43,0x82,0x60,0x82,0x68,0x0A,0x43,0x82,0x60,0x06,0x48,0x00,0x7A,0x00,0x28, + 0x01,0xD0,0x04,0xF0,0x9F,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30, + 0x00,0x40,0x00,0x40,0xF8,0x0A,0x00,0x20,0xF1,0xB5,0x7B,0x48,0x2E,0x21,0x90,0xB0, + 0x41,0x60,0x41,0x69,0x89,0x06,0xFC,0xD4,0x10,0x99,0x01,0x26,0x76,0x07,0xF1,0x63, + 0x84,0x69,0x75,0x48,0x40,0x68,0x80,0x07,0xFB,0xD5,0x03,0xF0,0xC5,0xFB,0x73,0x4D, + 0x28,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0,0x85,0xFB,0x10,0x99,0x00,0x22,0x01,0x20, + 0xFF,0x27,0x53,0x1E,0x40,0x03,0x15,0x29,0x6F,0xD0,0x16,0xDC,0x0E,0x29,0x6E,0xD0, + 0x0A,0xDC,0x02,0x29,0x27,0xD0,0x07,0x29,0x22,0xD0,0x0A,0x29,0x4F,0xD0,0x0B,0x29, + 0x4B,0xD1,0x0B,0x20,0xF0,0x63,0x6B,0xE0,0x11,0x29,0x55,0xD0,0x12,0x29,0x6E,0xD0, + 0x13,0x29,0x78,0xD0,0x14,0x29,0x7D,0xD0,0x3F,0xE0,0x1A,0x29,0x4C,0xD0,0x08,0xDC, + 0x16,0x29,0x6B,0xD0,0x17,0x29,0x38,0xD0,0x18,0x29,0x68,0xD0,0x19,0x29,0x67,0xD0, + 0x33,0xE0,0x1F,0x29,0x73,0xD0,0x50,0x29,0x72,0xD0,0x51,0x29,0x71,0xD0,0x2C,0xE0, + 0x00,0xF0,0x36,0xF9,0x29,0xE0,0x03,0x21,0x09,0x07,0xCB,0x60,0xFE,0xF7,0x56,0xF9, + 0x00,0xF0,0x64,0xFE,0x52,0x48,0x53,0x4A,0x41,0x68,0x52,0x68,0x91,0x42,0x1C,0xD0, + 0x51,0x49,0x17,0x22,0xC9,0x8B,0x52,0x01,0x80,0x18,0x49,0x1C,0xC1,0x83,0xFD,0xF7, + 0x91,0xFA,0xA8,0x78,0xC0,0x07,0x01,0xD0,0xFF,0xF7,0x04,0xFE,0xA8,0x78,0x80,0x07, + 0x01,0xD5,0x04,0xF0,0xE5,0xFA,0x49,0x49,0x40,0x22,0x68,0x46,0x02,0xF0,0xDF,0xFA, + 0x01,0x20,0x08,0x90,0x68,0x46,0x04,0xF0,0xF3,0xFA,0xF7,0x63,0x20,0xE0,0x41,0x48, + 0xA0,0x30,0x00,0x7E,0x00,0x28,0xF8,0xD0,0x00,0x2C,0x01,0xD0,0x01,0x20,0x00,0xE0, + 0x00,0x20,0x04,0xF0,0x7D,0xF9,0xF0,0xE7,0x03,0x21,0x09,0x07,0xCB,0x60,0xFE,0xF7, + 0x1D,0xF9,0x10,0x98,0xFE,0xF7,0x70,0xF8,0x0A,0xE0,0x2D,0xE0,0xFF,0xE7,0x03,0x21, + 0x09,0x07,0xCB,0x60,0xFE,0xF7,0x12,0xF9,0x00,0xF0,0xA0,0xFD,0x00,0xF0,0x0A,0xF9, + 0x2D,0x48,0x41,0x68,0x41,0x60,0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x2C, + 0x07,0xD0,0x01,0x20,0xA8,0x71,0xD0,0xE7,0x05,0xE0,0x0B,0xE0,0x1C,0xE0,0x22,0xE0, + 0x28,0xE0,0xAA,0x71,0xC9,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xE8,0x71,0xC4,0xE7, + 0xEA,0x71,0xC2,0xE7,0x00,0x2C,0x05,0xD0,0x01,0x20,0x28,0x72,0xBD,0xE7,0x20,0xE0, + 0x27,0xE0,0x2E,0xE0,0x2A,0x72,0xB8,0xE7,0x00,0x2C,0x03,0xD0,0x20,0x0C,0x6C,0x72, + 0x68,0x82,0xB2,0xE7,0x6A,0x72,0xB0,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xA8,0x72, + 0xAB,0xE7,0xAA,0x72,0xA9,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xE8,0x72,0xA4,0xE7, + 0xEA,0x72,0xA2,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x73,0x9D,0xE7,0x2A,0x73, + 0x9B,0xE7,0x00,0x2C,0x01,0xD0,0x6C,0x73,0x00,0xE0,0x6A,0x73,0x03,0xF0,0x9C,0xFF, + 0x93,0xE7,0xA8,0x7B,0x00,0x2C,0x01,0xD0,0x01,0x21,0x06,0xE0,0x40,0x08,0x40,0x00, + 0x07,0xE0,0xA8,0x7B,0x00,0x2C,0x02,0xD0,0x02,0x21,0x08,0x43,0x01,0xE0,0xFD,0x21, + 0x08,0x40,0xA8,0x73,0x81,0xE7,0x00,0x00,0x00,0x40,0x00,0x30,0xF8,0x0A,0x00,0x20, + 0xC8,0x02,0x00,0x20,0x00,0x78,0x00,0x00,0xE0,0x7A,0x00,0x00,0xC0,0x75,0x00,0x00, + 0xF0,0xB5,0x38,0x4F,0x35,0x4C,0xF9,0x78,0x03,0x00,0x35,0x4A,0x0E,0x04,0x39,0x79, + 0x35,0x48,0x25,0x68,0x0E,0x43,0x35,0x49,0x30,0x3B,0x04,0xF0,0xCD,0xFA,0x12,0x0A, + 0x0C,0x0E,0x12,0x16,0x1A,0x1C,0x18,0x1E,0x20,0x30,0x3B,0x16,0x3E,0x43,0x48,0x4E, + 0x51,0x0A,0xCD,0x61,0x21,0xE0,0x60,0x68,0x01,0xE0,0x2D,0x48,0xC0,0x6B,0xC8,0x61, + 0x1B,0xE0,0x10,0x8C,0x52,0x8C,0x00,0x04,0x35,0xE0,0xCE,0x61,0x15,0xE0,0xE0,0x68, + 0xF5,0xE7,0x50,0x68,0xF3,0xE7,0xA0,0x68,0xF1,0xE7,0xD0,0x7B,0xEF,0xE7,0x25,0x48, + 0x03,0x7A,0x10,0x7D,0x52,0x7D,0xC4,0x07,0xE4,0x09,0x80,0x07,0x12,0x04,0xC0,0x0F, + 0x00,0x02,0x23,0x43,0x02,0x43,0x13,0x43,0xCB,0x61,0x5F,0x22,0x22,0xE0,0x93,0x7D, + 0x50,0x7E,0x1B,0x06,0x18,0x43,0xD3,0x7D,0x12,0x7E,0x1B,0x04,0x12,0x02,0x13,0x43, + 0x18,0x43,0xD4,0xE7,0x90,0x7E,0x00,0x06,0xD1,0xE7,0x17,0x48,0x00,0x69,0xC0,0x07, + 0xC0,0x0F,0xCC,0xE7,0x00,0x69,0x3A,0x8A,0x40,0x08,0x00,0x02,0x03,0xE0,0x13,0x48, + 0xA2,0x69,0xC0,0x8B,0x00,0x04,0x10,0x43,0xC1,0xE7,0x00,0x69,0x40,0x08,0xBE,0xE7, + 0xB8,0x69,0xBC,0xE7,0x48,0x69,0x10,0x42,0xFC,0xD1,0x03,0xF0,0x6D,0xFA,0xFF,0x20, + 0x01,0x21,0x49,0x07,0xC8,0x63,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xC0,0x75,0x00,0x00, + 0x00,0x78,0x00,0x00,0xF8,0x0A,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x30, + 0xC0,0x0F,0x00,0x20,0x70,0x0A,0x00,0x20,0x00,0x7B,0x00,0x00,0xE0,0x7A,0x00,0x00, + 0x70,0xB5,0x03,0x24,0x24,0x07,0xE5,0x68,0x00,0x20,0xC0,0x43,0xE0,0x60,0xFE,0xF7, + 0x3B,0xF8,0x06,0x00,0xCB,0x20,0xC0,0x01,0xFE,0xF7,0x18,0xF8,0x03,0xF0,0xF2,0xF8, + 0x01,0x20,0x40,0x05,0xFF,0xF7,0x4E,0xFC,0x00,0xF0,0xBE,0xFC,0x00,0x20,0xFF,0xF7, + 0x49,0xFC,0x03,0xF0,0xDB,0xF8,0x30,0x00,0xFE,0xF7,0x3A,0xF8,0xE5,0x60,0x70,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x20,0x03,0x21,0x10,0xB5,0xC0,0x43,0x09,0x07,0xC8,0x60, + 0x03,0xF0,0xD8,0xF8,0x00,0x20,0xFF,0xF7,0x35,0xFC,0xFF,0xF7,0xB3,0xFC,0x05,0x48, + 0xC1,0x68,0xC9,0x07,0xFC,0xD0,0x01,0x20,0x40,0x07,0x04,0xF0,0x23,0xFA,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40,0xF8,0xB5,0x27,0x49,0x25,0x48,0xC9,0x88, + 0x00,0x8A,0x49,0x06,0x02,0xD4,0x23,0x48,0xC0,0x38,0x80,0x89,0xC0,0x06,0x3D,0xD5, + 0x22,0x4E,0x30,0x78,0x00,0x28,0x39,0xD0,0x70,0x78,0x00,0x28,0x36,0xD0,0x01,0x25, + 0x31,0xE0,0x0A,0x21,0x69,0x43,0x1C,0x4B,0x01,0x20,0xCC,0x18,0xFF,0x34,0x77,0x78, + 0x61,0x34,0x25,0xE0,0x0A,0x22,0x42,0x43,0xD2,0x18,0xFF,0x32,0xA1,0x32,0x21,0x79, + 0x92,0x7F,0x91,0x42,0x1B,0xD1,0x0A,0x22,0x50,0x43,0xC7,0x18,0xFF,0x37,0x06,0x21, + 0xC1,0x37,0x00,0x20,0x61,0x5E,0x38,0x5E,0x02,0x22,0xBA,0x5E,0x08,0x1A,0x08,0x21, + 0x61,0x5E,0x89,0x1A,0x00,0x91,0x3A,0x88,0xE1,0x88,0xFF,0xF7,0xFF,0xF9,0xE0,0x80, + 0x7A,0x88,0x21,0x89,0x00,0x98,0xFF,0xF7,0xF9,0xF9,0x20,0x81,0x02,0xE0,0x40,0x1C, + 0x87,0x42,0xD7,0xDA,0x6D,0x1C,0x30,0x78,0xA8,0x42,0xCA,0xDA,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xA0,0x79,0x00,0x00,0xF0,0x05,0x00,0x20,0x50,0x07,0x00,0x20, + 0xF0,0xB5,0x00,0x20,0xB3,0xB0,0x11,0x90,0x10,0x90,0x0F,0x90,0x0E,0x90,0xFB,0x48, + 0xFC,0x4D,0x01,0x8C,0xFA,0x4A,0x0B,0x91,0x40,0x8C,0xFB,0x49,0x0A,0x90,0xE8,0x88, + 0x13,0x7B,0x44,0x06,0x00,0xD4,0x0B,0x7A,0x54,0x7B,0x46,0x06,0x00,0xD4,0x4C,0x7A, + 0x46,0x06,0x09,0x94,0x94,0x7E,0x00,0xD4,0x8C,0x7D,0x46,0x06,0x08,0x94,0x54,0x7E, + 0x00,0xD4,0x4C,0x7D,0x07,0x94,0xF0,0x4C,0x40,0x34,0x24,0x8A,0x46,0x06,0x02,0xD4, + 0xED,0x4C,0x80,0x3C,0xA4,0x89,0x24,0x07,0x42,0xD5,0xD4,0x7B,0x46,0x06,0x00,0xD4, + 0xCC,0x7A,0x5C,0x43,0x26,0x94,0x14,0x7C,0x46,0x06,0x00,0xD4,0x0C,0x7B,0x5C,0x43, + 0x25,0x94,0x54,0x7C,0x46,0x06,0x00,0xD4,0x4C,0x7B,0x5C,0x43,0x24,0x94,0x94,0x7C, + 0x46,0x06,0x00,0xD4,0x8C,0x7B,0x5C,0x43,0x23,0x94,0xD4,0x7C,0x46,0x06,0x00,0xD4, + 0xCC,0x7B,0x5C,0x43,0x22,0x94,0x14,0x7D,0x46,0x06,0x00,0xD4,0x0C,0x7C,0x5C,0x43, + 0x21,0x94,0x54,0x7D,0x46,0x06,0x00,0xD4,0x4C,0x7C,0x5C,0x43,0x20,0x94,0x94,0x7D, + 0x46,0x06,0x00,0xD4,0x8C,0x7C,0x5C,0x43,0x1F,0x94,0xD4,0x7D,0x46,0x06,0x00,0xD4, + 0xCC,0x7C,0x5C,0x43,0x1E,0x94,0x12,0x7E,0x40,0x06,0x00,0xD4,0x0A,0x7D,0xCF,0x48, + 0x5A,0x43,0x1D,0x92,0x32,0x90,0x00,0x78,0x00,0x28,0x05,0xD1,0x00,0xF0,0xD0,0xFE, + 0x33,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x28,0x90,0xC7,0x48,0xA0,0x38, + 0x31,0x90,0xFF,0x30,0xE1,0x30,0x30,0x90,0xC2,0x4E,0x28,0x98,0x13,0x21,0x30,0x18, + 0x49,0x01,0x2F,0x90,0x40,0x18,0x04,0x7F,0x00,0x2C,0x0F,0xD0,0x08,0x98,0x00,0x28, + 0x08,0xD1,0x0A,0x20,0x60,0x43,0x80,0x19,0xFF,0x30,0x6B,0x30,0x00,0xF0,0xE0,0xFD, + 0x00,0x28,0x03,0xD0,0x30,0x98,0x00,0x7B,0x00,0x28,0x03,0xD0,0x28,0x98,0xFF,0xF7, + 0xE1,0xF8,0x9D,0xE2,0x28,0x99,0x0D,0x27,0x15,0x23,0x07,0x20,0xBF,0x01,0x5B,0x01, + 0x49,0x00,0x2E,0x91,0x2E,0x9A,0x01,0x01,0x89,0x19,0x89,0x18,0xCA,0x18,0x0B,0x25, + 0xD2,0x8A,0xAD,0x01,0x4D,0x19,0xC9,0x19,0xEA,0x80,0xCA,0x88,0x40,0x1E,0xCA,0x82, + 0xF0,0xD5,0x0A,0x20,0x44,0x43,0xA4,0x19,0x2D,0x94,0xFF,0x34,0x61,0x34,0xE1,0x88, + 0x0B,0x98,0x40,0x1E,0x81,0x42,0xDC,0xDC,0x21,0x89,0x0A,0x98,0x40,0x1E,0x81,0x42, + 0xD7,0xDC,0x2E,0x98,0xE1,0x88,0x85,0x19,0xE8,0x18,0x2C,0x90,0xC1,0x82,0x20,0x89, + 0xE9,0x19,0x2B,0x91,0xC8,0x80,0x00,0x20,0x01,0x22,0xD2,0x02,0x01,0x00,0x06,0x90, + 0x07,0x20,0x05,0x92,0x97,0x4B,0x06,0x01,0xF3,0x18,0x2E,0x9E,0x9B,0x19,0x15,0x26, + 0x76,0x01,0x9C,0x46,0x9B,0x19,0x16,0x26,0x9E,0x5F,0x00,0x2E,0x09,0xDD,0x06,0x9F, + 0xBE,0x42,0x01,0xDD,0xDF,0x8A,0x06,0x97,0x05,0x9F,0xBE,0x42,0x01,0xDA,0xDB,0x8A, + 0x05,0x93,0x0D,0x26,0xB6,0x01,0x63,0x46,0x9B,0x19,0x06,0x26,0x9E,0x5F,0x00,0x2E, + 0x05,0xDD,0x8E,0x42,0x00,0xDD,0xD9,0x88,0x96,0x42,0x00,0xDA,0xDA,0x88,0x40,0x1E, + 0xD8,0xD5,0x05,0x9B,0x06,0x98,0xC0,0x1A,0x78,0x28,0x02,0xDC,0x8B,0x1A,0x78,0x2B, + 0x02,0xDD,0x30,0x9E,0x01,0x23,0xB3,0x72,0x14,0x28,0x04,0xDA,0x88,0x1A,0x14,0x28, + 0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x31,0x99,0x48,0x72,0x2F,0x98,0x15,0x21, + 0x49,0x01,0x47,0x18,0xB8,0x7B,0x01,0x28,0x1B,0xD9,0x2C,0x98,0x16,0x21,0x41,0x5E, + 0x0B,0x20,0x80,0x01,0x28,0x18,0x06,0x22,0x82,0x5E,0x88,0x1A,0x00,0x28,0x00,0xDC, + 0x50,0x1A,0x00,0x04,0x00,0x14,0x0D,0x90,0x2B,0x98,0x06,0x22,0x16,0x21,0x82,0x5E, + 0x41,0x5E,0x50,0x1A,0x00,0x28,0x00,0xDC,0x88,0x1A,0x00,0x04,0x00,0x14,0x0C,0x90, + 0x02,0xE0,0x64,0x20,0x0C,0x90,0x0D,0x90,0x0B,0x20,0x80,0x01,0x2E,0x18,0x2C,0x9A, + 0x06,0x21,0x16,0x20,0x71,0x5E,0x10,0x5E,0x03,0xF0,0x94,0xF8,0x13,0x90,0x2B,0x98, + 0x16,0x21,0x41,0x5E,0x02,0x00,0x06,0x20,0x10,0x5E,0x03,0xF0,0x8B,0xF8,0x12,0x90, + 0x16,0x21,0x71,0x5E,0x13,0x98,0x03,0xF0,0x85,0xF8,0x15,0x90,0x1B,0x20,0x40,0x01, + 0x28,0x18,0x06,0x21,0x2A,0x90,0x41,0x5E,0x12,0x98,0x03,0xF0,0x7B,0xF8,0x14,0x90, + 0x17,0x20,0x40,0x01,0x28,0x18,0x16,0x22,0x06,0x21,0x82,0x5E,0x41,0x5E,0x15,0x98, + 0x03,0xF0,0x72,0xF8,0x00,0x04,0x00,0x14,0x17,0x90,0x07,0x20,0xC0,0x01,0x2E,0x18, + 0x2A,0x98,0x16,0x21,0x41,0x5E,0x06,0x22,0xB2,0x5E,0x14,0x98,0x03,0xF0,0x64,0xF8, + 0x00,0x04,0x00,0x14,0x16,0x90,0x03,0x20,0x00,0x02,0x28,0x18,0x16,0x22,0x06,0x21, + 0x82,0x5E,0x41,0x5E,0x17,0x98,0x03,0xF0,0x57,0xF8,0x00,0x04,0x00,0x14,0x19,0x90, + 0x1D,0x20,0x40,0x01,0x28,0x18,0x29,0x90,0x06,0x22,0x82,0x5E,0x16,0x21,0x71,0x5E, + 0x16,0x98,0x03,0xF0,0x49,0xF8,0x00,0x04,0x00,0x14,0x18,0x90,0x19,0x20,0x40,0x01, + 0x28,0x18,0x16,0x22,0x06,0x21,0x82,0x5E,0x41,0x5E,0x19,0x98,0x03,0xF0,0x3C,0xF8, + 0x00,0x04,0x00,0x14,0x1B,0x90,0x0F,0x20,0x80,0x01,0x2E,0x18,0x29,0x98,0x16,0x21, + 0x41,0x5E,0x06,0x22,0xB2,0x5E,0x18,0x98,0x03,0xF0,0x2E,0xF8,0x00,0x04,0x00,0x14, + 0x1A,0x90,0x0C,0x99,0x0D,0x98,0x00,0xF0,0x35,0xFF,0x01,0x21,0x84,0x46,0x88,0x02, + 0x28,0x4B,0x0A,0x01,0xD2,0x18,0x2E,0x9B,0xD3,0x18,0x1F,0x22,0x52,0x01,0x9A,0x18, + 0xD2,0x8A,0x1B,0x18,0x49,0x1E,0xDA,0x80,0xF2,0xD5,0x1F,0x21,0x49,0x01,0x6A,0x18, + 0x60,0x46,0xD0,0x82,0x2F,0x9A,0x00,0x20,0x55,0x18,0xAA,0x7B,0x00,0x2A,0x94,0x46, + 0x0C,0xDB,0x1C,0x4B,0x11,0x01,0xC9,0x18,0x2E,0x9B,0xC9,0x18,0x1F,0x23,0x5B,0x01, + 0xCB,0x18,0x16,0x21,0x59,0x5E,0x08,0x18,0x52,0x1E,0xF2,0xD5,0x61,0x46,0x49,0x1C, + 0xFD,0xF7,0xA4,0xF9,0x25,0x99,0x27,0x90,0x88,0x42,0x01,0xDC,0x01,0x20,0x0F,0xE0, + 0x23,0x99,0x88,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x21,0x99,0x88,0x42,0x01,0xDC, + 0x03,0x20,0x05,0xE0,0x1F,0x99,0x88,0x42,0x01,0xDC,0x04,0x20,0x00,0xE0,0x05,0x20, + 0xAA,0x79,0x80,0x1A,0x09,0x9A,0x52,0x42,0x00,0x28,0x13,0xDD,0x16,0x20,0x30,0x5E, + 0x09,0x9B,0x98,0x42,0x0C,0xD1,0x00,0x20,0x13,0xE0,0x00,0x00,0x00,0x78,0x00,0x00, + 0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00,0x50,0x07,0x00,0x20, + 0x40,0x1C,0x06,0xE0,0x00,0x28,0xB3,0x48,0x30,0x5E,0x04,0xDA,0x90,0x42,0xEA,0xD0, + 0x40,0x1E,0xF0,0x82,0x02,0xE0,0x00,0x28,0xFA,0xDC,0xF1,0xDB,0x16,0x20,0x30,0x5E, + 0x09,0x9B,0x98,0x42,0x05,0xD1,0xAB,0x79,0x05,0x2B,0x02,0xD2,0x5B,0x1C,0xAB,0x71, + 0x06,0xE0,0x90,0x42,0x04,0xD1,0xA8,0x79,0x01,0x28,0x01,0xD9,0x40,0x1E,0xA8,0x71, + 0x1A,0x9A,0x1B,0x98,0x1C,0x92,0xBE,0x7B,0x31,0x00,0xFD,0xF7,0x4F,0xF9,0x11,0x90, + 0x0F,0x90,0x1C,0x98,0x31,0x00,0xFD,0xF7,0x49,0xF9,0x10,0x90,0x0E,0x90,0xA8,0x79, + 0x01,0x28,0x26,0xD1,0x0E,0xAA,0x0F,0xA9,0x6B,0x46,0x06,0xC3,0x1A,0x9B,0x1B,0x9A, + 0x09,0x21,0x30,0x00,0x03,0xF0,0x4A,0xFC,0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0, + 0xB8,0x7B,0x18,0x9B,0x19,0x9A,0x07,0x21,0x03,0xF0,0x40,0xFC,0x6B,0x46,0x38,0x22, + 0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAE,0x07,0xC6, + 0x04,0x22,0x9A,0x5E,0x25,0x9B,0x00,0x92,0x2D,0x98,0x26,0x9A,0xFF,0x30,0x65,0x30, + 0x97,0xE0,0x02,0x28,0x26,0xD1,0x0E,0xAA,0x0F,0xA9,0x6B,0x46,0x06,0xC3,0x18,0x9B, + 0x19,0x9A,0x07,0x21,0x30,0x00,0x03,0xF0,0x21,0xFC,0x10,0xAA,0x11,0xA9,0x68,0x46, + 0x06,0xC0,0xB8,0x7B,0x16,0x9B,0x17,0x9A,0x05,0x21,0x03,0xF0,0x17,0xFC,0x6B,0x46, + 0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAE, + 0x07,0xC6,0x04,0x22,0x9A,0x5E,0x00,0x92,0x2D,0x98,0x23,0x9B,0xFF,0x30,0x24,0x9A, + 0x65,0x30,0x6E,0xE0,0x03,0x28,0x26,0xD1,0x0E,0xAA,0x0F,0xA9,0x6B,0x46,0x06,0xC3, + 0x16,0x9B,0x17,0x9A,0x05,0x21,0x30,0x00,0x03,0xF0,0xF8,0xFB,0x10,0xAA,0x11,0xA9, + 0x68,0x46,0x06,0xC0,0xB8,0x7B,0x14,0x9B,0x15,0x9A,0x03,0x21,0x03,0xF0,0xEE,0xFB, + 0x6B,0x46,0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB,0x18,0x5E, + 0x01,0xAE,0x07,0xC6,0x04,0x22,0x9A,0x5E,0x21,0x9B,0x00,0x92,0x2D,0x98,0x22,0x9A, + 0xFF,0x30,0x65,0x30,0x45,0xE0,0x04,0x28,0x26,0xD1,0x0E,0xAA,0x0F,0xA9,0x68,0x46, + 0x06,0xC0,0x14,0x9B,0x15,0x9A,0x03,0x21,0x30,0x00,0x03,0xF0,0xCF,0xFB,0x10,0xAA, + 0x11,0xA9,0x68,0x46,0x06,0xC0,0xB8,0x7B,0x12,0x9B,0x13,0x9A,0x02,0x21,0x03,0xF0, + 0xC5,0xFB,0x6B,0x46,0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB, + 0x18,0x5E,0x01,0xAE,0x07,0xC6,0x04,0x22,0x9A,0x5E,0x1F,0x9B,0x00,0x92,0x2D,0x98, + 0x20,0x9A,0xFF,0x30,0x65,0x30,0x1C,0xE0,0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0, + 0x12,0x9B,0x13,0x9A,0x02,0x21,0x30,0x00,0x03,0xF0,0xA8,0xFB,0x10,0xAB,0x00,0x22, + 0x04,0x21,0x9A,0x5E,0x59,0x5E,0x2B,0x9B,0x06,0x20,0x18,0x5E,0x01,0xAB,0x07,0xC3, + 0x2C,0x98,0x16,0x22,0x82,0x5E,0x1D,0x9B,0x00,0x92,0x2D,0x98,0x1E,0x9A,0xFF,0x30, + 0x65,0x30,0x27,0x99,0x03,0xF0,0xA6,0xFB,0xB8,0x7B,0x3B,0x49,0x09,0x28,0x01,0xD2, + 0x40,0x1C,0xB8,0x73,0xA8,0x7B,0x02,0x28,0x01,0xD2,0x40,0x1C,0xA8,0x73,0x20,0x79, + 0x40,0x1E,0x80,0x00,0x40,0x18,0x21,0x21,0x49,0x01,0x45,0x18,0x06,0x20,0x28,0x5E, + 0x00,0x28,0x21,0xDB,0x08,0x21,0x69,0x5E,0x00,0x29,0x1D,0xDB,0x07,0x9A,0x64,0x21, + 0x8E,0x1A,0x70,0x43,0xFD,0xF7,0x62,0xF8,0x07,0x00,0xE0,0x88,0x07,0x99,0x48,0x43, + 0x64,0x21,0xFD,0xF7,0x35,0xF9,0x38,0x18,0xE0,0x80,0x08,0x20,0x28,0x5E,0x64,0x21, + 0x70,0x43,0xFD,0xF7,0x53,0xF8,0x06,0x00,0x20,0x89,0x07,0x99,0x48,0x43,0x64,0x21, + 0xFD,0xF7,0x26,0xF9,0x30,0x18,0x20,0x81,0xE0,0x88,0xE8,0x80,0x20,0x89,0x28,0x81, + 0x28,0x98,0x40,0x1C,0x08,0x28,0x28,0x90,0x00,0xDA,0x3D,0xE5,0x32,0x98,0x01,0x78, + 0x1A,0x48,0x01,0x29,0x1F,0xD1,0x32,0x99,0x89,0x7B,0x4A,0x00,0x16,0x49,0x51,0x18, + 0x15,0x22,0x52,0x01,0x8A,0x18,0x92,0x8A,0xC2,0x83,0x0D,0x22,0x92,0x01,0x8A,0x18, + 0x94,0x88,0x30,0x9B,0x1C,0x80,0x0B,0x23,0x9B,0x01,0xC9,0x18,0x8B,0x88,0x30,0x99, + 0x4B,0x80,0x92,0x8A,0x30,0x99,0x8A,0x80,0x32,0x99,0x09,0x8A,0xC1,0x82,0x32,0x99, + 0x49,0x8A,0x01,0x83,0x0C,0xE5,0x02,0x29,0xFC,0xD1,0x32,0x99,0x09,0x8A,0xC1,0x82, + 0x32,0x99,0x49,0x8A,0x01,0x83,0x32,0x99,0x49,0x8B,0x41,0x83,0x32,0x99,0x89,0x8B, + 0x81,0x83,0xFD,0xE4,0x16,0x00,0x00,0x00,0xF0,0x05,0x00,0x20,0x70,0x08,0x00,0x20, + 0x14,0x20,0x9F,0xE5,0x01,0x10,0x81,0xE2,0x00,0x20,0xD2,0xE5,0x02,0x20,0x82,0xE2, + 0x91,0x02,0x20,0xE0,0x01,0x00,0x80,0xE2,0x1E,0xFF,0x2F,0xE1,0xFB,0x0A,0x00,0x20, + 0xF8,0xB5,0x1C,0x4B,0x1C,0x7D,0xDA,0x8E,0xE4,0x07,0x31,0xD0,0x1C,0x8F,0x1A,0x4B, + 0x1B,0x7A,0x9E,0x46,0x19,0x4B,0x1E,0x78,0x16,0x4B,0x9D,0x7D,0x00,0x2E,0x76,0x46, + 0xAC,0x46,0xDD,0x7D,0x00,0x95,0x1D,0x7E,0x5F,0x7E,0x9B,0x7E,0x12,0xD0,0xB0,0x42, + 0x1E,0xD1,0x8C,0x45,0x08,0xD0,0x00,0x98,0x88,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0, + 0x8F,0x42,0x01,0xD0,0x8B,0x42,0x03,0xD1,0x20,0x00,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x20,0xFA,0xE7,0xB1,0x42,0x0B,0xD1,0x84,0x45,0xF5,0xD0,0x00,0x99,0x81,0x42, + 0xF2,0xD0,0x85,0x42,0xF0,0xD0,0x87,0x42,0xEE,0xD0,0x83,0x42,0xF0,0xD1,0xEB,0xE7, + 0x10,0x00,0xEA,0xE7,0x00,0x78,0x00,0x00,0x70,0x0A,0x00,0x20,0xFD,0x0A,0x00,0x20, + 0x78,0x47,0xC0,0x46,0x14,0x20,0x9F,0xE5,0x02,0x10,0x81,0xE2,0x00,0x20,0xD2,0xE5, + 0x04,0x20,0x82,0xE2,0x91,0x02,0x20,0xE0,0x02,0x00,0x80,0xE2,0x1E,0xFF,0x2F,0xE1, + 0xFB,0x0A,0x00,0x20,0xFE,0xB5,0x04,0x00,0x88,0x1A,0xC0,0x1A,0x0D,0x00,0x16,0x00, + 0x41,0x00,0x08,0x19,0x02,0x22,0x82,0x5E,0x1F,0x00,0x20,0x38,0x1E,0x23,0xC3,0x5E, + 0x61,0x5E,0x18,0x00,0x00,0xF0,0xFA,0xFC,0x69,0x00,0x01,0x90,0x08,0x19,0x02,0x22, + 0x82,0x5E,0x20,0x38,0x1E,0x23,0xC3,0x5E,0x61,0x5E,0x18,0x00,0x00,0xF0,0xEE,0xFC, + 0x00,0x90,0xA8,0x19,0xC0,0x19,0x41,0x00,0x08,0x19,0x02,0x22,0x82,0x5E,0x20,0x38, + 0x1E,0x23,0xC3,0x5E,0x61,0x5E,0x18,0x00,0x00,0xF0,0xE0,0xFC,0x02,0x00,0x00,0x99, + 0x01,0x98,0x00,0xF0,0xDB,0xFC,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x04,0x4B,0x03,0x4A, + 0x1B,0x78,0x58,0x43,0x40,0x18,0x40,0x00,0x10,0x5A,0x70,0x47,0x00,0x00,0x10,0x40, + 0xFB,0x0A,0x00,0x20,0x04,0x48,0x41,0x69,0x49,0x06,0x01,0xD5,0x10,0x20,0x70,0x47, + 0x40,0x69,0xC0,0x06,0xC0,0x0E,0x70,0x47,0x00,0x40,0x00,0x30,0x0D,0x49,0x01,0x20, + 0x10,0xB5,0x40,0x07,0x4A,0x69,0x92,0x06,0xFC,0xD4,0xCA,0x68,0x4B,0x68,0x4B,0x60, + 0x04,0xE0,0x4B,0x69,0x9B,0x06,0xFC,0xD4,0x8B,0x69,0x08,0xC0,0x52,0x1E,0xF8,0xD2, + 0x2E,0x20,0x48,0x60,0x48,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0x85,0xFD,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30,0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9, + 0xB0,0x40,0x9F,0xE5,0x0C,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3,0xFC,0xFF,0xFF,0x0A, + 0x04,0x00,0x94,0xE5,0x04,0x00,0x84,0xE5,0x04,0x00,0x94,0xE5,0x04,0x00,0x10,0xE3, + 0x10,0x00,0x00,0x0A,0x0C,0x00,0x94,0xE5,0x04,0x10,0x90,0xE4,0x1C,0x10,0x84,0xE5, + 0x02,0x12,0xA0,0xE3,0x38,0x10,0x91,0xE5,0x04,0x00,0x00,0xEA,0x04,0x20,0x90,0xE4, + 0x1C,0x20,0x84,0xE5,0x14,0x20,0x94,0xE5,0x40,0x00,0x12,0xE3,0xFC,0xFF,0xFF,0x1A, + 0x01,0x10,0x51,0xE2,0xF8,0xFF,0xFF,0x1A,0x14,0x00,0x94,0xE5,0x5F,0x00,0x10,0xE3, + 0xFC,0xFF,0xFF,0x1A,0x11,0x00,0x00,0xEA,0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3, + 0xE8,0xFF,0xFF,0x0A,0x14,0x00,0x94,0xE5,0x20,0x00,0x10,0xE3,0xE5,0xFF,0xFF,0x1A, + 0x0C,0x00,0x94,0xE5,0x08,0x00,0x50,0xE3,0x10,0x40,0xBD,0x08,0x97,0x0A,0x00,0x0A, + 0x14,0x10,0x94,0xE5,0x5F,0x00,0x11,0xE3,0x18,0x10,0x94,0x15,0x04,0x10,0x80,0x14, + 0xFA,0xFF,0xFF,0x1A,0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x0A, + 0x8E,0x0A,0x00,0xEB,0xD2,0xFF,0xFF,0xEA,0x00,0x40,0x00,0x30,0xF8,0xB5,0x20,0x4E, + 0x20,0x4F,0x00,0x25,0x2C,0x00,0x78,0x69,0x80,0x06,0xFC,0xD4,0x78,0x68,0x78,0x60, + 0xF8,0x68,0x04,0x28,0x0E,0xD1,0x1C,0x48,0x40,0x21,0x04,0xE0,0x7A,0x69,0x92,0x06, + 0xFC,0xD4,0xBA,0x69,0x04,0xC0,0x49,0x1E,0xF8,0xD2,0x20,0x25,0x17,0x4C,0x30,0x78, + 0x01,0x21,0x06,0xE0,0x05,0x28,0x07,0xD1,0x15,0x48,0x16,0x4C,0x85,0x08,0x30,0x78, + 0x02,0x21,0x08,0x43,0x30,0x70,0x10,0xE0,0x03,0x28,0x0E,0xD1,0x2E,0x20,0x78,0x60, + 0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0xEF,0xFC,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x78,0x69,0x80,0x06,0xFC,0xD4,0xB8,0x69,0x01,0xC4,0x6D,0x1E,0xF8,0xD2,0x2E,0x20, + 0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0xDE,0xFC,0xC3,0xE7,0x00,0x00, + 0xFA,0x0A,0x00,0x20,0x00,0x40,0x00,0x30,0x00,0x90,0x00,0x40,0x00,0xA0,0x00,0x40, + 0x00,0x03,0x00,0x00,0xC8,0x02,0x00,0x20,0x01,0x49,0x20,0x20,0x48,0x61,0x70,0x47, + 0x00,0x40,0x00,0x30,0xF8,0xB5,0x01,0x22,0x52,0x07,0x11,0x68,0x3D,0x48,0x01,0x29, + 0x80,0x7A,0x01,0xD1,0x01,0x25,0x03,0xE0,0x11,0x68,0x01,0x29,0x06,0xD9,0x02,0x25, + 0x00,0x28,0x0B,0xD0,0x00,0x21,0x25,0x27,0x7F,0x01,0x3B,0xE0,0x00,0x28,0x05,0xD1, + 0x34,0x48,0x09,0x22,0x00,0x21,0x08,0x38,0x01,0xF0,0x34,0xFC,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x4A,0x19,0x00,0x24,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F, + 0xC0,0x07,0x26,0xD0,0x01,0x20,0x93,0x00,0x1B,0x0F,0x2B,0x4E,0x36,0x18,0xF6,0x19, + 0x36,0x7E,0x9E,0x42,0x01,0xD1,0x04,0x00,0x02,0xE0,0x40,0x1C,0x08,0x28,0xF4,0xD9, + 0x00,0x2C,0x06,0xD0,0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43, + 0x0D,0xE0,0x21,0x4C,0x01,0x20,0x26,0x18,0xF6,0x19,0x36,0x7E,0x00,0x2E,0x03,0xD1, + 0x24,0x18,0xE4,0x19,0x23,0x76,0xED,0xE7,0x40,0x1C,0x08,0x28,0xF3,0xD9,0x60,0x46, + 0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42,0xC9,0xD8,0x00,0x21, + 0x21,0xE0,0x4A,0x19,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07, + 0x18,0xD1,0x11,0x4E,0x01,0x20,0x93,0x00,0x1C,0x0F,0x33,0x18,0xDB,0x19,0x1B,0x7E, + 0xA3,0x42,0x0A,0xD1,0x34,0x18,0x00,0x23,0xE4,0x19,0x23,0x76,0x0F,0x23,0x9B,0x06, + 0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43,0x02,0xE0,0x40,0x1C,0x08,0x28,0xEC,0xD9, + 0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42,0xD8,0xD8, + 0x9C,0xE7,0x00,0x00,0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x03,0x23,0x1B,0x07, + 0xDA,0x68,0x01,0x21,0x81,0x40,0x8A,0x43,0xDA,0x60,0x70,0x47,0x10,0xB4,0x0F,0x24, + 0x03,0x23,0x1B,0x07,0x1C,0x60,0x05,0x4C,0x60,0x63,0x19,0x61,0x9A,0x60,0x00,0x20, + 0xC0,0x43,0xD8,0x60,0x00,0x20,0x18,0x60,0x10,0xBC,0x70,0x47,0x40,0x00,0x00,0x30, + 0x03,0x4B,0x00,0xB5,0x82,0x00,0x99,0x50,0xFF,0xF7,0xE0,0xFF,0x08,0xBC,0x18,0x47, + 0x2C,0x0B,0x00,0x20,0xF0,0xB5,0x85,0xB0,0xFE,0xF7,0xA2,0xFB,0xFE,0xF7,0x80,0xFB, + 0x02,0xF0,0xE4,0xFA,0x00,0xF0,0xAC,0xFD,0x00,0xF0,0x58,0xFB,0xFD,0xF7,0xF0,0xFF, + 0xFD,0xF7,0x2E,0xFA,0x38,0x49,0x37,0x48,0xC9,0x88,0x40,0x7F,0x49,0x06,0x02,0xD4, + 0x34,0x48,0xC0,0x38,0x40,0x7E,0x00,0x28,0x04,0xD1,0xFF,0xF7,0x41,0xFA,0xFF,0xF7, + 0xEB,0xF9,0x03,0xE0,0xFF,0xF7,0xE8,0xF9,0xFF,0xF7,0x3A,0xFA,0x02,0xF0,0xC2,0xFD, + 0x02,0xF0,0x46,0xFC,0x01,0x26,0x76,0x07,0x30,0x68,0x00,0x28,0x07,0xD0,0x70,0x68, + 0x80,0x0F,0x80,0x07,0x03,0xD5,0x35,0x68,0x02,0x24,0x6D,0x1C,0x37,0xE0,0x01,0x24, + 0x25,0x00,0xA0,0x00,0x87,0x19,0x38,0x68,0x81,0x01,0x04,0x90,0x80,0x05,0x80,0x0D, + 0x02,0x90,0x22,0x48,0x89,0x0D,0x03,0x91,0x00,0x78,0x00,0x28,0x03,0xD1,0x02,0xA9, + 0x03,0xA8,0x02,0xF0,0x69,0xFC,0x1E,0x4B,0x00,0x21,0x58,0x8C,0x40,0x1E,0x02,0x04, + 0x12,0x0C,0x68,0x46,0x06,0xC0,0x18,0x8C,0x0A,0x00,0x02,0xA9,0x40,0x1E,0x03,0x04, + 0x1B,0x0C,0x03,0xA8,0x03,0xF0,0xB8,0xFB,0x02,0xA9,0x03,0xA8,0x03,0xF0,0x8E,0xFA, + 0x14,0x49,0x04,0x98,0x08,0x40,0x03,0x99,0x89,0x05,0x89,0x09,0x08,0x43,0x02,0x99, + 0x80,0x0A,0x80,0x02,0x89,0x05,0x89,0x0D,0x08,0x43,0x38,0x60,0x64,0x1C,0xAC,0x42, + 0xC7,0xD9,0x30,0x68,0xFC,0xF7,0x42,0xFF,0xFD,0xF7,0x26,0xFE,0x02,0xF0,0xC8,0xFB, + 0xFF,0xF7,0xE0,0xFE,0xFC,0xF7,0x86,0xFE,0x03,0x48,0x40,0x79,0x05,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x03,0x0B,0x00,0x20, + 0x00,0x78,0x00,0x00,0xFF,0xFF,0x00,0xFC,0xF8,0xB5,0x02,0xF0,0x43,0xFA,0xFE,0xF7, + 0x91,0xFD,0xFE,0xF7,0x1F,0xFE,0xFE,0xF7,0x67,0xFE,0x1A,0x48,0x00,0x21,0xC0,0x7F, + 0x03,0xF0,0xC8,0xF9,0x18,0x4F,0x19,0x4D,0xFC,0x03,0x00,0x20,0x28,0x70,0xE8,0x61, + 0xE8,0x79,0x00,0x28,0x1A,0xD0,0x01,0x26,0x15,0xE0,0x78,0x68,0x00,0x07,0x12,0xD5, + 0xA6,0x63,0xF8,0x68,0x07,0x28,0x06,0xD1,0x02,0xF0,0x76,0xFB,0xFF,0xF7,0x20,0xF9, + 0xFF,0x20,0xE0,0x63,0x07,0xE0,0x0B,0x28,0x10,0xD1,0xE0,0x63,0x78,0x68,0x80,0x07, + 0xFC,0xD5,0x02,0xF0,0x69,0xFB,0xE0,0x6B,0x0B,0x28,0xE6,0xD1,0xFE,0xF7,0xD2,0xF9, + 0x28,0x78,0x00,0x28,0xD9,0xD0,0x02,0xF0,0x2D,0xF8,0xD6,0xE7,0x78,0x68,0x80,0x07, + 0xFC,0xD5,0xEE,0xE7,0x00,0x78,0x00,0x00,0x00,0x40,0x00,0x30,0xF8,0x0A,0x00,0x20, + 0x70,0xB5,0x21,0x49,0x1F,0x4A,0xCB,0x88,0x05,0x00,0x10,0x7A,0x1F,0x49,0x5C,0x06, + 0x00,0xD4,0x08,0x79,0x1E,0x4C,0xA4,0x8A,0x00,0x19,0x06,0x06,0xD0,0x79,0x36,0x0E, + 0x5A,0x06,0x00,0xD4,0xC8,0x78,0x1B,0x49,0x2C,0x78,0x4A,0x7C,0x00,0x2A,0x0F,0xD1, + 0x8A,0x7C,0x00,0x2A,0x01,0xD0,0x80,0x1C,0x08,0xE0,0xCA,0x7C,0x00,0x2A,0x01,0xD0, + 0x00,0x1D,0x03,0xE0,0x09,0x7D,0x00,0x29,0x02,0xD0,0x80,0x1D,0x00,0x06,0x00,0x0E, + 0x00,0x2C,0x0A,0xD0,0x84,0x42,0x08,0xD3,0x14,0x21,0x20,0x00,0xFC,0xF7,0xB8,0xFD, + 0x76,0x1C,0xB0,0x42,0x05,0xD2,0x14,0x2C,0x07,0xD3,0x00,0x20,0x70,0xBC,0x08,0xBC, + 0x18,0x47,0x14,0x2C,0x01,0xD3,0xF0,0x20,0x00,0xE0,0x13,0x20,0x28,0x70,0x01,0x20, + 0xF4,0xE7,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00, + 0xD0,0x0A,0x00,0x20,0x70,0x08,0x00,0x20,0x10,0xB5,0x08,0x24,0x20,0x00,0xFE,0xF7, + 0x45,0xFA,0x64,0x1E,0xFA,0xD5,0x05,0x48,0x01,0x22,0x41,0x7C,0x01,0x29,0x01,0xD8, + 0x00,0x29,0x00,0xD1,0x42,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x78,0x00,0x00, + 0x19,0x22,0x10,0xB5,0x06,0x48,0x52,0x01,0x00,0x21,0x01,0xF0,0x73,0xFA,0x51,0x22, + 0x04,0x48,0xD2,0x00,0x00,0x21,0x01,0xF0,0x6D,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0xC8,0x02,0x00,0x20,0x40,0x00,0x00,0x20,0x10,0xB5,0x40,0x22,0xD4,0x05,0x00,0x21, + 0x20,0x00,0x01,0xF0,0x5F,0xFA,0x01,0x20,0xA0,0x63,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x14,0x48,0x10,0xB5,0x44,0x08,0x14,0x49,0x14,0x48,0x62,0x00,0x01,0xF0,0x3E,0xFA, + 0x10,0x48,0xC0,0x07,0x08,0xD0,0x0F,0x48,0xC2,0x07,0x0F,0x48,0xD2,0x0F,0x01,0x19, + 0x0E,0x48,0x00,0x19,0x01,0xF0,0x2A,0xFA,0x0D,0x48,0x00,0x21,0x84,0x08,0x0D,0x48, + 0xA2,0x00,0x01,0xF0,0x47,0xFA,0x0A,0x48,0x80,0x07,0x07,0xD0,0x08,0x48,0x00,0x21, + 0x82,0x07,0x08,0x48,0x92,0x0F,0x00,0x19,0x01,0xF0,0x34,0xFA,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0xB8,0x73,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x46,0x06,0x00,0x00,0xF0,0x05,0x00,0x20,0x05,0x49,0xC8,0x05,0x41,0x62,0x05,0x49, + 0x81,0x62,0x05,0x48,0xFF,0x21,0xC1,0x60,0x00,0x21,0x41,0x61,0x70,0x47,0x00,0x00, + 0x80,0xCC,0x3C,0x03,0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x40,0x02,0x49,0x03,0x48, + 0x01,0x60,0x20,0x21,0x41,0x60,0x70,0x47,0xDE,0x10,0x01,0x00,0x00,0x40,0x00,0x30, + 0x10,0xB5,0x00,0x24,0x20,0x00,0xFE,0xF7,0x35,0xFA,0x64,0x1C,0x08,0x2C,0xF9,0xDB, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x10,0xB5,0x01,0x24,0x64,0x03,0x20,0x00, + 0xFD,0xF7,0x44,0xF8,0xFE,0xF7,0xA6,0xFC,0xFE,0xF7,0xD0,0xFC,0xFE,0xF7,0x9A,0xFC, + 0x07,0x48,0x01,0x68,0xF0,0x22,0x91,0x43,0x06,0x4A,0x12,0x7B,0x12,0x07,0x12,0x0E, + 0x11,0x43,0x01,0x60,0x20,0x00,0xFD,0xF7,0x29,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0xA0,0x00,0x40,0x00,0x78,0x00,0x00,0x10,0xB5,0x02,0xF0,0xEB,0xF8,0x02,0xF0, + 0xCB,0xF8,0xFF,0x20,0xFD,0xF7,0x5A,0xF8,0xFF,0xF7,0xAE,0xFF,0x11,0x48,0x80,0x22, + 0x00,0x21,0x01,0xF0,0xD7,0xF9,0x08,0x20,0xFD,0xF7,0x18,0xF8,0x00,0x22,0x0E,0x49, + 0xD2,0x43,0x00,0x20,0xFF,0xF7,0x02,0xFE,0x00,0xF0,0x1A,0xF8,0x0B,0x48,0x40,0x7A, + 0x00,0x28,0x04,0xD0,0x40,0x20,0xFD,0xF7,0x09,0xF8,0x00,0xF0,0x4D,0xF8,0x00,0xF0, + 0x37,0xF8,0x10,0x20,0x02,0xF0,0xB9,0xF8,0xFE,0xF7,0xD4,0xFD,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x2C,0x0B,0x00,0x20,0x02,0x03,0x0F,0x0F,0x00,0x78,0x00,0x00, + 0xF8,0xB5,0x03,0x24,0xE6,0x01,0x13,0x25,0x30,0x00,0xFC,0xF7,0xEF,0xFF,0x20,0x02, + 0xFD,0xF7,0x16,0xF8,0x0C,0x48,0x0A,0x21,0x00,0x6B,0xFC,0xF7,0xA9,0xFC,0x02,0x00, + 0xFF,0x21,0x90,0x31,0x02,0x20,0x00,0x23,0x00,0x95,0x03,0xF0,0x03,0xF9,0x07,0x4A, + 0x27,0x21,0x03,0x20,0x00,0x23,0x00,0x94,0x03,0xF0,0xFC,0xF8,0x30,0x00,0xFC,0xF7, + 0xCD,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0xE8,0xFD,0x00,0x00, + 0x10,0xB5,0x08,0x49,0x00,0x20,0xFF,0xF7,0xCB,0xFD,0x03,0xF0,0xDE,0xF9,0x7D,0x20, + 0xC0,0x00,0x03,0xF0,0xCD,0xF9,0x00,0x20,0xFF,0xF7,0xA8,0xFD,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xE5,0x72,0x00,0x00,0x0A,0x48,0x10,0xB5,0x00,0x6B,0x0A,0x49, + 0x0A,0x4C,0x88,0x42,0x05,0xD9,0x7D,0x21,0xC9,0x00,0xFC,0xF7,0x71,0xFC,0x64,0x30, + 0x01,0xE0,0xFF,0x20,0xF5,0x30,0x20,0x63,0x03,0xF0,0x88,0xF9,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0x78,0x00,0x00,0x07,0xA5,0x07,0x00,0xF8,0x0A,0x00,0x20, + 0x10,0xB5,0xFF,0xF7,0xD5,0xFE,0xFF,0xF7,0x43,0xFF,0x15,0x48,0x00,0x7A,0x02,0xF0, + 0xEF,0xFF,0x13,0x48,0x13,0x4A,0xA0,0x30,0x41,0x89,0x00,0x24,0xD1,0x83,0x12,0x49, + 0x0C,0x60,0x4C,0x60,0x11,0x49,0xD2,0x88,0x49,0x79,0x52,0x06,0x02,0xD4,0x01,0x00, + 0xA0,0x31,0x49,0x78,0x0C,0x4A,0xC0,0x3A,0x51,0x73,0x09,0x49,0x80,0x31,0x0A,0x8B, + 0x09,0x49,0x40,0x39,0xCA,0x62,0x00,0x88,0x08,0x63,0xFF,0xF7,0x9D,0xFE,0x08,0x48, + 0xC4,0x83,0xFE,0xF7,0xDD,0xFA,0x07,0x48,0x04,0x70,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20,0xF0,0x0A,0x00,0x20,0x00,0x7A,0x00,0x00, + 0x30,0x07,0x00,0x20,0xF9,0x0A,0x00,0x20,0xF7,0xB5,0x86,0xB0,0x00,0x27,0x2E,0x48, + 0x04,0xAB,0x02,0x97,0x03,0x97,0x81,0xC3,0x2C,0x4E,0xFE,0xF7,0xAD,0xFB,0xFE,0xF7, + 0x5B,0xFC,0x2B,0x48,0x40,0x7F,0x01,0x90,0x29,0x48,0x20,0x38,0x40,0x7F,0x00,0x25, + 0x00,0x90,0x2A,0xE0,0x00,0x24,0x23,0xE0,0x21,0x00,0x28,0x00,0xFF,0xF7,0x38,0xFB, + 0x00,0x28,0x1C,0xD0,0x23,0x49,0x04,0x9A,0x09,0x78,0x69,0x43,0x09,0x19,0x89,0x00, + 0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A,0x01,0x1E,0x00,0xDC,0x41,0x42,0x00,0x28, + 0x01,0xDB,0x01,0x98,0x00,0xE0,0x00,0x98,0x81,0x42,0x01,0xDD,0x01,0x22,0x05,0x92, + 0x08,0x1A,0xB0,0x42,0x03,0xDD,0x06,0x00,0x27,0x00,0x02,0x95,0x03,0x91,0x64,0x1C, + 0x14,0x48,0x00,0x78,0x84,0x42,0xD7,0xD3,0x6D,0x1C,0x13,0x48,0x00,0x78,0x85,0x42, + 0xD0,0xD3,0x08,0x99,0x03,0x98,0x08,0x60,0x10,0x48,0x00,0x69,0xC0,0x07,0x05,0xD0, + 0x07,0x98,0x07,0x60,0x06,0x99,0x02,0x98,0x08,0x60,0x04,0xE0,0x07,0x99,0x02,0x98, + 0x08,0x60,0x06,0x98,0x07,0x60,0x05,0x98,0x00,0x28,0x00,0xD0,0x04,0x20,0x09,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x02,0x10,0x40,0x78,0xEC,0xFF,0xFF, + 0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0x00,0x90,0x00,0x40, + 0x78,0x47,0xC0,0x46,0x70,0x20,0x9F,0xE5,0x04,0xE0,0x2D,0xE5,0x5A,0x04,0xD2,0xE5, + 0x60,0xC0,0x9F,0xE5,0x01,0x00,0x10,0xE3,0x14,0x00,0x00,0x0A,0x00,0x00,0x9C,0xE5, + 0x58,0x10,0x9F,0xE5,0xB0,0x01,0xC2,0xE1,0x00,0x30,0xD1,0xE5,0x00,0x00,0xA0,0xE3, + 0x0B,0x00,0x00,0xEA,0x5A,0xE4,0xD2,0xE5,0x00,0x10,0x82,0xE0,0x89,0x14,0xD1,0xE5, + 0x02,0x00,0x1E,0xE3,0x88,0xE4,0xD2,0xE5,0x9E,0x13,0x21,0x00,0x93,0xE1,0x21,0x10, + 0x01,0x11,0x9C,0xE7,0x80,0xE0,0x82,0xE0,0x02,0x19,0xC1,0xE3,0x01,0x00,0x80,0xE2, + 0xB0,0x11,0xCE,0xE1,0x5B,0x14,0xD2,0xE5,0x00,0x00,0x51,0xE1,0xF0,0xFF,0xFF,0x8A, + 0x04,0xE0,0x9D,0xE4,0x1E,0xFF,0x2F,0xE1,0x00,0x10,0x10,0x40,0xF0,0x05,0x00,0x20, + 0xFB,0x0A,0x00,0x20,0x88,0x42,0x00,0xDA,0x08,0x00,0x70,0x47,0x88,0x42,0x00,0xDA, + 0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00,0x70,0x47,0x10,0xB5,0x02,0x9C,0x88,0x42, + 0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00,0x22,0x00,0x19,0x00,0xFF,0xF7, + 0xED,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x02,0x00,0x08,0x00,0x8A,0x42,0x00,0xDC,0x10,0x00,0x70,0x47,0xF0,0xB5,0x00,0x20, + 0xFD,0xB0,0x6A,0x90,0xFF,0x49,0x20,0x22,0x1E,0xA8,0xFC,0xF7,0x3B,0xFA,0xFF,0x4A, + 0xFD,0x4B,0xD0,0x88,0x9C,0x89,0xFE,0x49,0x45,0x06,0x00,0xD4,0x0C,0x89,0x9F,0x7C, + 0x43,0x06,0x00,0xD4,0x8F,0x7B,0xF8,0x49,0x20,0x39,0x7C,0x91,0x8E,0x8B,0x41,0x06, + 0xF8,0x48,0x7B,0x90,0x00,0xD4,0x06,0x8B,0xF7,0x48,0xFF,0x22,0x05,0x78,0xF7,0x48, + 0x01,0x32,0x00,0x78,0x00,0x21,0x1D,0x90,0x26,0xA8,0x01,0xF0,0x1B,0xF8,0xF4,0x48, + 0x08,0x22,0x00,0x21,0x01,0xF0,0x16,0xF8,0xF1,0x48,0x10,0x22,0x00,0x21,0x08,0x30, + 0x01,0xF0,0x10,0xF8,0x24,0x22,0x00,0x21,0x14,0xA8,0x01,0xF0,0x0B,0xF8,0x24,0x22, + 0x00,0x21,0x0B,0xA8,0x01,0xF0,0x06,0xF8,0x24,0x22,0x00,0x21,0x02,0xA8,0x01,0xF0, + 0x01,0xF8,0xE2,0x49,0x08,0x79,0x00,0x28,0x7E,0xD0,0xC8,0x88,0x7A,0x90,0x80,0x06, + 0x02,0xD5,0xE0,0x1B,0x04,0x04,0x24,0x0C,0xDC,0x48,0x64,0x21,0x00,0x89,0x07,0x00, + 0x60,0x43,0xFC,0xF7,0x23,0xFA,0xDE,0x49,0x89,0x1C,0x79,0x91,0xD7,0x49,0xC9,0x89, + 0x40,0x18,0x79,0x99,0xC8,0x82,0xDB,0x48,0x00,0x21,0x78,0x90,0x01,0x81,0x7C,0x99, + 0x7A,0x9A,0x89,0x7F,0x38,0x00,0x52,0x06,0x01,0xD4,0x7B,0x99,0x89,0x7E,0x48,0x43, + 0x64,0x21,0xFC,0xF7,0xE5,0xFA,0x00,0x04,0x78,0x99,0x00,0x14,0xB0,0x42,0x48,0x81, + 0x01,0xDA,0x78,0x98,0x46,0x81,0x02,0x20,0x6E,0x90,0x1D,0x98,0x00,0x24,0x80,0x1C, + 0x75,0x90,0x6E,0x98,0x0A,0xE1,0x02,0x20,0x6F,0x90,0xA8,0x1C,0x76,0x90,0x6F,0x98, + 0xFA,0xE0,0x6E,0x99,0x28,0x1D,0x41,0x43,0x77,0x90,0x6F,0x98,0x08,0x18,0x43,0x00, + 0xC5,0x48,0x0A,0x21,0xC2,0x5E,0x78,0x98,0x41,0x5E,0x8A,0x42,0x03,0xDD,0x00,0x89, + 0x78,0x99,0x40,0x1C,0x08,0x81,0x79,0x9E,0x16,0x21,0x71,0x5E,0x00,0x20,0x8A,0x42, + 0x02,0xDD,0x50,0x1A,0x00,0x04,0x00,0x14,0x6F,0x9A,0x00,0x2A,0x09,0xD1,0x00,0x28, + 0x78,0xD0,0x6E,0x98,0x26,0xA9,0x80,0x1E,0x68,0x43,0x40,0x18,0x91,0x1E,0x40,0x5C, + 0x14,0xE0,0xB5,0x4A,0x9B,0x18,0x20,0x3B,0x1E,0x22,0x9A,0x5E,0x8A,0x42,0x03,0xDD, + 0x51,0x1A,0x09,0x04,0x09,0x14,0x65,0xD1,0x00,0x28,0xE9,0xD0,0x6E,0x98,0x26,0xA9, + 0x80,0x1E,0x68,0x43,0x41,0x18,0x6F,0x98,0x80,0x1E,0x08,0x5C,0x00,0x28,0xF2,0xD1, + 0x6F,0x98,0x00,0x04,0x00,0x14,0x00,0xE0,0x83,0xE1,0x6D,0x90,0x68,0x90,0x6E,0x98, + 0x64,0x1C,0x00,0x04,0x00,0x14,0x24,0x04,0x04,0x22,0x24,0x14,0x6C,0x90,0x08,0x2C, + 0x67,0x90,0x03,0xDD,0x64,0x1E,0x24,0x04,0x24,0x14,0xB3,0xE0,0x00,0x20,0x66,0x90, + 0x00,0x20,0x6B,0x90,0x66,0x98,0xFF,0x21,0x40,0x1C,0x00,0x04,0x00,0x14,0x01,0x31, + 0x88,0x42,0x66,0x90,0x36,0xDC,0x00,0x20,0x84,0x46,0x91,0x00,0x1E,0xAB,0xC8,0x18, + 0x40,0x88,0x59,0x5A,0x67,0x9E,0x68,0x9B,0x80,0x19,0xC9,0x18,0x00,0x04,0x09,0x04, + 0x00,0x14,0x09,0x14,0x02,0x28,0x26,0xDB,0x75,0x9B,0x98,0x42,0x23,0xDA,0x02,0x29, + 0x21,0xDB,0x76,0x9B,0x99,0x42,0x1E,0xDA,0x77,0x9B,0x8B,0x4E,0x43,0x43,0x5B,0x18, + 0x5B,0x00,0xF3,0x5E,0x79,0x9E,0x16,0x27,0xF7,0x5F,0xBB,0x42,0x13,0xDD,0x83,0x1E, + 0x6B,0x43,0x26,0xAE,0x9B,0x19,0x8E,0x1E,0x9B,0x57,0xA3,0x42,0x01,0xD0,0x00,0x2B, + 0x09,0xD1,0x6C,0x9B,0x98,0x42,0x02,0xD1,0x6D,0x9B,0x99,0x42,0x0B,0xD0,0x01,0x23, + 0x6B,0x93,0x08,0xE0,0x5D,0xE0,0x52,0x1C,0x63,0x46,0x5B,0x1C,0x52,0x07,0x52,0x0F, + 0x08,0x2B,0x9C,0x46,0xC1,0xDB,0x67,0x9B,0x26,0xAE,0x9B,0x1E,0x6B,0x43,0x9B,0x19, + 0x68,0x9E,0xB6,0x1E,0x9F,0x5D,0x00,0x2F,0x3E,0xD1,0x9C,0x55,0x77,0x9E,0x67,0x9B, + 0x79,0x9F,0x73,0x43,0x68,0x9E,0x9B,0x19,0x6F,0x4E,0x5B,0x00,0xF3,0x5E,0x16,0x26, + 0xBE,0x5F,0xB3,0x42,0x03,0xDD,0x9B,0x1B,0x1B,0x04,0x1B,0x0C,0x00,0xE0,0x00,0x23, + 0x69,0x93,0xA3,0x00,0x9C,0x46,0x14,0xAE,0xF3,0x58,0x68,0x9E,0x5F,0x4F,0x76,0x00, + 0xF6,0x19,0xB6,0x8B,0x69,0x9F,0x7E,0x43,0x9E,0x19,0x63,0x46,0x14,0xAF,0xFE,0x50, + 0x0B,0xAE,0xF3,0x58,0x67,0x9E,0x59,0x4F,0x76,0x00,0xF6,0x19,0x40,0x36,0x36,0x88, + 0x69,0x9F,0x7E,0x43,0x9E,0x19,0x63,0x46,0x0B,0xAF,0xFE,0x50,0x02,0xAF,0xFB,0x58, + 0x69,0x9E,0x9E,0x19,0x63,0x46,0xFE,0x50,0x50,0x4E,0x63,0x00,0x9B,0x19,0xFF,0x33, + 0x41,0x33,0xDE,0x88,0x76,0x1C,0xDE,0x80,0x6B,0x9B,0x00,0x2B,0x09,0xD0,0x00,0x06, + 0x00,0x0E,0x67,0x90,0x08,0x06,0x00,0x0E,0x52,0x1D,0x52,0x07,0x52,0x0F,0x68,0x90, + 0x5E,0xE7,0x6F,0x98,0x40,0x1C,0x6F,0x90,0x76,0x99,0x88,0x42,0x00,0xDA,0x00,0xE7, + 0x6A,0x98,0x00,0x28,0x06,0xD1,0x6E,0x98,0x40,0x1C,0x6E,0x90,0x75,0x99,0x88,0x42, + 0x00,0xDA,0xF0,0xE6,0x00,0x2C,0x74,0xDD,0x02,0x20,0x54,0xE0,0x02,0x20,0x69,0x1C, + 0x72,0x91,0x4C,0xE0,0x2B,0x1D,0x62,0x46,0x5A,0x43,0x12,0x18,0x79,0x9E,0x57,0x00, + 0x3D,0x4B,0x16,0x22,0xB2,0x5E,0xFE,0x18,0x02,0x23,0xF3,0x5E,0x00,0x21,0x93,0x42, + 0x02,0xDD,0x99,0x1A,0x09,0x04,0x09,0x14,0x62,0x46,0x92,0x1E,0x6A,0x43,0x26,0xAB, + 0xD2,0x18,0x83,0x1E,0x74,0x92,0xD3,0x56,0x01,0x93,0x43,0x1E,0x73,0x93,0xD2,0x56, + 0x00,0x2A,0x2A,0xD1,0x00,0x29,0x28,0xD0,0x01,0x9A,0x00,0x2A,0x25,0xD0,0x27,0x4F, + 0x46,0x00,0xF6,0x19,0xF6,0x8B,0x92,0x00,0x14,0xAB,0x4E,0x43,0x9B,0x58,0x9B,0x19, + 0x14,0xAE,0xB3,0x50,0x66,0x46,0x76,0x00,0xF6,0x19,0x40,0x36,0x36,0x88,0x0B,0xAB, + 0x9B,0x58,0x4E,0x43,0x9B,0x19,0x0B,0xAE,0xB3,0x50,0x02,0xAE,0xB3,0x58,0x59,0x18, + 0xB1,0x50,0x01,0x99,0x49,0x00,0xC9,0x19,0xFF,0x31,0x41,0x31,0xCA,0x88,0x52,0x1C, + 0xCA,0x80,0x73,0x9B,0x74,0x9A,0x01,0x99,0xD1,0x54,0x72,0x99,0x40,0x1C,0x88,0x42, + 0xB0,0xDB,0x60,0x46,0x40,0x1C,0x75,0x99,0x84,0x46,0x88,0x42,0xA6,0xDB,0x01,0x26, + 0x38,0xE0,0xB1,0x00,0x02,0xAA,0x71,0x91,0x57,0x58,0x01,0x20,0x00,0x2F,0x00,0xD0, + 0x38,0x00,0x01,0x00,0x71,0x98,0x14,0xAA,0x10,0x58,0xFC,0xF7,0x59,0xF9,0x07,0x49, + 0x72,0x00,0x51,0x18,0x70,0x91,0xFF,0x31,0x01,0x31,0xC8,0x83,0x01,0x21,0x00,0x2F, + 0x14,0xE0,0x21,0xE0,0x70,0x73,0x00,0x00,0x00,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x40,0x79,0x00,0x00,0x20,0x79,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x2E,0x07,0x00,0x20,0x30,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20,0x00,0xD0,0x39,0x00, + 0x71,0x98,0x0B,0xAA,0x10,0x58,0xFC,0xF7,0x33,0xF9,0x70,0x99,0xFF,0x31,0x21,0x31, + 0x76,0x1C,0xC8,0x81,0xA6,0x42,0xC4,0xDD,0x14,0x4A,0x10,0x79,0x1F,0xE0,0x81,0x00, + 0x89,0x18,0xE0,0x31,0x0E,0x23,0xCB,0x5E,0x0C,0x24,0x0C,0x5F,0x6B,0x43,0x26,0xA9, + 0x09,0x19,0x59,0x5C,0x13,0x18,0x1C,0x00,0xFF,0x34,0x21,0x34,0x61,0x77,0x61,0x7F, + 0xFF,0x33,0x01,0x33,0x49,0x00,0x89,0x18,0xFF,0x31,0x41,0x31,0xC9,0x88,0x09,0x06, + 0x09,0x0E,0x19,0x74,0x93,0x8B,0x99,0x42,0x00,0xD9,0x91,0x83,0x40,0x1E,0x01,0x28, + 0xDD,0xDA,0x7D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xF0,0x05,0x00,0x20, + 0xF0,0xB5,0x00,0x20,0xEB,0xB0,0x43,0x90,0x33,0x90,0x0E,0x90,0xFF,0x48,0x6A,0x90, + 0x02,0x8A,0xFF,0x49,0xC8,0x88,0x43,0x06,0x02,0xD4,0xFC,0x4A,0xC0,0x3A,0x92,0x89, + 0xFA,0x4E,0xFC,0x4D,0x20,0x36,0x0D,0x92,0xB2,0x89,0x43,0x06,0x00,0xD4,0x2A,0x89, + 0xF9,0x4B,0x0C,0x92,0xF5,0x4A,0x40,0x32,0x69,0x92,0x52,0x89,0x44,0x06,0x68,0x93, + 0x00,0xD4,0xDA,0x88,0x43,0x06,0x0B,0x92,0x69,0x9A,0x12,0x79,0x01,0xD4,0x68,0x9A, + 0x12,0x78,0x43,0x06,0x0A,0x92,0x69,0x9A,0x52,0x79,0x01,0xD4,0x68,0x9A,0x52,0x78, + 0x43,0x06,0x09,0x92,0x69,0x9A,0x12,0x8B,0x01,0xD4,0x68,0x9A,0x92,0x8A,0x08,0x92, + 0x37,0x89,0x42,0x06,0x00,0xD4,0xAF,0x88,0x69,0x9A,0x43,0x06,0x92,0x7C,0x01,0xD4, + 0x68,0x9A,0x92,0x7B,0x43,0x06,0x07,0x92,0x69,0x9A,0x12,0x7D,0x01,0xD4,0x68,0x9A, + 0x12,0x7C,0xE2,0x48,0x06,0x92,0x04,0x78,0xE1,0x48,0x29,0x22,0x00,0x78,0x05,0x90, + 0xDB,0x48,0xC0,0x89,0x04,0x90,0x01,0x20,0x03,0x90,0x00,0x20,0x01,0x00,0x01,0x90, + 0x0F,0xA8,0x00,0xF0,0x97,0xFD,0xDB,0x48,0xD5,0x49,0x08,0x81,0xD4,0x48,0x00,0x21, + 0x81,0x81,0x41,0x81,0xC0,0x30,0x67,0x90,0x41,0x80,0xA0,0x30,0x66,0x90,0x40,0x78, + 0xD5,0x49,0x02,0x28,0x65,0x91,0x55,0xD9,0xCD,0x4A,0x71,0x8A,0xD2,0x88,0x52,0x06, + 0x00,0xD4,0xE9,0x89,0x37,0x91,0xD1,0x49,0x64,0x91,0x89,0x8B,0x37,0x9A,0x89,0x18, + 0x38,0x91,0x0D,0x99,0xC9,0x04,0x25,0xD5,0x01,0x28,0x0C,0xD9,0xC4,0x4A,0xF1,0x7A, + 0xD2,0x88,0x52,0x06,0x00,0xD4,0xE9,0x79,0x48,0x43,0x00,0x06,0x00,0x0E,0x03,0x90, + 0x01,0xD1,0x01,0x20,0x03,0x90,0x67,0x99,0xBD,0x4A,0x00,0x20,0x08,0x5E,0xD2,0x88, + 0xB1,0x7A,0x52,0x06,0x00,0xD4,0xA9,0x79,0x48,0x43,0x64,0x21,0xFB,0xF7,0x8E,0xFF, + 0x00,0x04,0x00,0x0C,0xB8,0x42,0x00,0xD2,0x38,0x00,0x03,0x99,0xFC,0xF7,0x60,0xF8, + 0x67,0x99,0x48,0x80,0xB2,0x49,0x69,0x98,0xC9,0x88,0x40,0x8B,0x49,0x06,0x01,0xD4, + 0x68,0x98,0xC0,0x8A,0x65,0x99,0x89,0x8B,0x40,0x18,0x38,0x99,0x36,0x90,0x88,0x42, + 0x35,0x91,0x00,0xD2,0x38,0x90,0x02,0x20,0x4E,0x90,0xA8,0x48,0xC0,0x30,0x63,0x90, + 0xAD,0x48,0xA0,0x38,0x62,0x90,0x1F,0xA8,0x61,0x90,0x05,0x98,0x80,0x1C,0x55,0x90, + 0x4E,0x98,0xDF,0xE3,0x02,0x28,0x08,0xD1,0xA1,0x4A,0x31,0x8A,0xD2,0x88,0x52,0x06, + 0x00,0xD4,0xA9,0x89,0x65,0x9A,0x52,0x8B,0x0E,0xE0,0xA5,0x49,0x09,0x78,0x00,0x29, + 0x02,0xD0,0xA4,0x49,0x89,0x89,0x05,0xE0,0x99,0x4A,0xF1,0x89,0xD2,0x88,0x52,0x06, + 0x00,0xD4,0x69,0x89,0x65,0x9A,0x12,0x8B,0x89,0x18,0x93,0xE7,0x02,0x25,0xA0,0x1C, + 0x56,0x90,0xB4,0xE3,0x4E,0x98,0x56,0x99,0x40,0x1E,0x48,0x43,0x69,0x1E,0x40,0x18, + 0x00,0x04,0x07,0x14,0x98,0x49,0x78,0x00,0x60,0x90,0x08,0x5E,0x38,0x99,0x09,0x04, + 0x09,0x14,0x88,0x42,0x7B,0xDB,0x78,0x1C,0xC1,0x10,0x0F,0xAA,0x52,0x5C,0x41,0x07, + 0x49,0x0F,0x01,0x20,0x88,0x40,0x02,0x40,0xF8,0x10,0x0F,0xA9,0x5F,0x90,0x09,0x5C, + 0x7B,0x07,0x5B,0x0F,0x01,0x20,0x98,0x40,0x01,0x40,0x7B,0x1E,0x5E,0x90,0xD8,0x10, + 0x0F,0xAE,0x30,0x5C,0x5E,0x07,0x76,0x0F,0x01,0x23,0xB3,0x40,0x18,0x40,0x01,0xF0, + 0x6B,0xFD,0x3B,0x1B,0x00,0x90,0x58,0x1E,0xC1,0x10,0x0F,0xAA,0x52,0x5C,0x41,0x07, + 0x49,0x0F,0x01,0x20,0x88,0x40,0x02,0x40,0x98,0x1E,0xC1,0x10,0x0F,0xAE,0x71,0x5C, + 0x46,0x07,0x76,0x0F,0x01,0x20,0xB0,0x40,0x01,0x40,0xDB,0x1E,0xD8,0x10,0x0F,0xAE, + 0x30,0x5C,0x5E,0x07,0x76,0x0F,0x01,0x23,0xB3,0x40,0x18,0x40,0x01,0xF0,0x4C,0xFD, + 0x00,0x99,0x01,0xF0,0x47,0xFD,0x00,0x28,0x39,0xD1,0x73,0x48,0x22,0x00,0x39,0x00, + 0x02,0x23,0xFE,0xF7,0x47,0xFF,0x38,0x99,0x88,0x42,0xB3,0xDB,0x6E,0x4A,0x60,0x99, + 0x51,0x5E,0x81,0x42,0xF0,0xD1,0x62,0x4F,0xBA,0x89,0x82,0x42,0x00,0xDA,0xB8,0x81, + 0x5F,0x9B,0x0F,0xAA,0xD3,0x5C,0x5E,0x9E,0x33,0x43,0x5F,0x9E,0x93,0x55,0x5C,0x4A, + 0x92,0x89,0x82,0x42,0x05,0xD1,0x5A,0x48,0x00,0x79,0x40,0x1C,0x00,0x06,0x00,0x0E, + 0x0E,0x90,0x00,0x20,0x06,0x00,0x02,0x90,0x62,0x98,0x80,0x7E,0xC2,0x07,0x20,0xD0, + 0x80,0x07,0x0D,0xD5,0x60,0x1B,0x40,0x1C,0x00,0xD1,0x66,0x1E,0xAC,0x42,0x04,0xD1, + 0x01,0x22,0x20,0x04,0x52,0x04,0x80,0x1A,0x06,0x43,0x01,0x20,0x10,0xE0,0x94,0xE0, + 0x4E,0x9A,0x05,0x98,0x80,0x1A,0x40,0x1C,0x01,0xD1,0x05,0x9E,0x76,0x1E,0x05,0x98, + 0x90,0x42,0x04,0xD1,0x01,0x22,0x00,0x04,0x12,0x05,0x80,0x1A,0x06,0x43,0x02,0x20, + 0x02,0x90,0x30,0x04,0x01,0xD0,0x36,0x98,0x00,0xE0,0x35,0x98,0x00,0x04,0x00,0x14, + 0x81,0x42,0xB2,0xDB,0x4E,0x99,0x20,0x1D,0x41,0x43,0x5D,0x90,0x48,0x19,0x00,0x04, + 0x00,0x14,0x34,0x90,0x0D,0x98,0xC0,0x04,0x0C,0xD5,0x34,0x98,0x43,0x49,0x40,0x00, + 0x08,0x5E,0x04,0x99,0x40,0x1A,0x00,0x28,0x67,0xDD,0x67,0x9A,0x02,0x21,0x51,0x5E, + 0x81,0x42,0x62,0xDA,0x04,0x20,0x51,0x90,0x04,0x20,0x50,0x90,0x51,0x98,0x28,0x18, + 0x5C,0x90,0x51,0x98,0x80,0x00,0x5B,0x90,0x5C,0x98,0x00,0x1F,0x0B,0xD4,0x5C,0x98, + 0x00,0x1F,0xA0,0x42,0x07,0xDA,0x50,0x99,0x4E,0x98,0x47,0x18,0x38,0x1F,0x02,0xD4, + 0x05,0x99,0x88,0x42,0x08,0xDB,0x50,0x98,0x14,0x22,0x50,0x43,0x00,0x21,0x1A,0xAA, + 0x80,0x18,0x5B,0x9A,0x81,0x50,0x27,0xE0,0x04,0x98,0x0D,0x99,0x00,0x04,0x00,0x14, + 0xC9,0x04,0x04,0xD5,0x03,0x99,0xFB,0xF7,0x59,0xFE,0x00,0x04,0x00,0x14,0x5D,0x99, + 0xBF,0x1E,0x4F,0x43,0x5C,0x99,0x25,0x4A,0x79,0x18,0x49,0x00,0x89,0x18,0x20,0x39, + 0x89,0x8B,0x08,0x1A,0x00,0x04,0x00,0x14,0x00,0xD5,0x00,0x20,0x08,0x99,0x00,0x29, + 0x03,0xD0,0x88,0x42,0x01,0xDD,0x08,0x04,0x00,0x14,0x50,0x99,0x14,0x22,0x51,0x43, + 0x1A,0xAA,0x89,0x18,0x5B,0x9A,0x88,0x50,0x50,0x98,0x40,0x1E,0x00,0x04,0x00,0x14, + 0x50,0x90,0xB9,0xD5,0x51,0x98,0x40,0x1E,0x00,0x04,0x00,0x14,0x51,0x90,0xAB,0xD5, + 0x34,0x98,0x12,0x4A,0x40,0x00,0x84,0x46,0x80,0x18,0x01,0x00,0x20,0x39,0x1E,0x23, + 0xCB,0x5E,0x04,0x99,0x59,0x1A,0x42,0x91,0x1A,0xE0,0x8C,0xE1,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x00,0x79,0x00,0x00,0x20,0x79,0x00,0x00,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0xFF,0x0F,0x00,0x00,0xD0,0x0A,0x00,0x20,0xF0,0x06,0x00,0x20, + 0x04,0x0B,0x00,0x20,0xA0,0x7A,0x00,0x00,0x40,0x00,0x00,0x20,0xC8,0x02,0x00,0x20, + 0x02,0x21,0x41,0x5E,0x04,0x98,0x04,0x9B,0x08,0x1A,0x41,0x90,0x34,0x98,0x18,0x21, + 0x00,0x1B,0x40,0x00,0x80,0x18,0x20,0x38,0x41,0x5E,0xC9,0x1A,0x40,0x91,0x34,0x99, + 0x08,0x23,0x09,0x19,0x49,0x00,0x89,0x18,0xCB,0x5E,0x04,0x9F,0xDB,0x1B,0x3F,0x93, + 0x16,0x23,0xC3,0x5E,0xDB,0x1B,0x3E,0x93,0x06,0x23,0xCB,0x5E,0xDB,0x1B,0x3D,0x93, + 0x1A,0x23,0xC3,0x5E,0xD8,0x1B,0x3C,0x90,0x0A,0x20,0x08,0x5E,0x0C,0x99,0xC0,0x1B, + 0x3B,0x90,0x60,0x46,0x10,0x5E,0xC0,0x1B,0x48,0x43,0x64,0x21,0xFB,0xF7,0xD6,0xFD, + 0x39,0x90,0x27,0x98,0x02,0x04,0x25,0x98,0x12,0x14,0x03,0x04,0x22,0x98,0x00,0x92, + 0x02,0x04,0x21,0x98,0x1B,0x14,0x01,0x04,0x20,0x98,0x12,0x14,0x00,0x04,0x09,0x14, + 0x00,0x14,0xFF,0xF7,0x32,0xFB,0x07,0x00,0x2C,0x98,0x02,0x04,0x2B,0x98,0x12,0x14, + 0x01,0x04,0x2A,0x98,0x09,0x14,0x00,0x04,0x00,0x14,0xFF,0xF7,0x1F,0xFB,0x01,0x00, + 0x38,0x00,0xFF,0xF7,0x17,0xFB,0x26,0x99,0x7D,0x22,0x52,0x01,0x91,0x42,0x07,0xDD, + 0x81,0x42,0x05,0xDD,0x08,0x1A,0x51,0x10,0x88,0x42,0x01,0xDD,0x01,0x20,0x01,0x90, + 0xFF,0x48,0xFF,0x21,0xC0,0x88,0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06,0x01,0xD5, + 0x01,0x20,0x01,0x90,0x04,0x20,0x51,0x90,0x02,0x98,0x80,0x07,0xC0,0x0F,0x5A,0x90, + 0x04,0x20,0x50,0x90,0x07,0x99,0x5A,0x98,0x09,0x07,0x25,0xD5,0x05,0x99,0x08,0x1A, + 0x4E,0x99,0x08,0x1A,0x01,0x28,0x1F,0xD1,0x50,0x98,0x01,0x28,0x1C,0xD1,0x51,0x98, + 0x61,0x99,0x80,0x00,0x59,0x90,0x09,0x18,0x61,0x9A,0x49,0x69,0x17,0x58,0x64,0x20, + 0x78,0x43,0x49,0x1C,0xFB,0xF7,0x7A,0xFD,0x64,0x21,0x08,0x1A,0x00,0x04,0x00,0x14, + 0x00,0xD5,0x00,0x20,0x06,0x99,0x48,0x43,0x78,0x43,0xE6,0x49,0xFB,0xF7,0x6E,0xFD, + 0x59,0x9A,0x61,0x99,0x38,0x1A,0x88,0x50,0x50,0x98,0x40,0x1E,0x00,0x04,0x00,0x14, + 0x50,0x90,0xCF,0xD5,0x51,0x98,0x40,0x1E,0x00,0x04,0x00,0x14,0x51,0x90,0xC7,0xD5, + 0xDD,0x48,0x00,0x78,0x00,0x28,0x47,0xD1,0x21,0xA9,0x06,0xC9,0x02,0x2D,0x14,0xD1, + 0x01,0xF0,0xAA,0xFB,0x07,0x00,0x00,0x21,0x27,0x9A,0x08,0x00,0x01,0xF0,0xA4,0xFB, + 0x2B,0xA9,0x06,0xC9,0x3F,0x18,0x00,0x20,0x01,0xF0,0x9E,0xFB,0x38,0x18,0x05,0x21, + 0xFB,0xF7,0x44,0xFD,0x00,0x04,0x00,0x0C,0x13,0xE0,0x20,0x98,0x01,0xF0,0x94,0xFB, + 0x07,0x00,0x27,0x9A,0x25,0x98,0x00,0x21,0x01,0xF0,0x8E,0xFB,0x3F,0x18,0x2A,0xA8, + 0x07,0xC8,0x01,0xF0,0x89,0xFB,0x38,0x18,0xC1,0x17,0x49,0x0F,0x08,0x18,0x40,0x03, + 0x00,0x0C,0x26,0x99,0x09,0x1A,0x00,0x29,0x01,0xDC,0x26,0x99,0x41,0x1A,0x63,0x98, + 0x02,0x8A,0xBF,0x48,0xC0,0x88,0x43,0x06,0x01,0xD4,0x6A,0x9A,0x92,0x89,0x91,0x42, + 0x0A,0xDA,0x63,0x99,0x26,0x9A,0x49,0x8A,0x40,0x06,0x01,0xD4,0x6A,0x98,0xC1,0x89, + 0x8A,0x42,0x01,0xDA,0x30,0x04,0x7E,0xD0,0x00,0x2E,0x2B,0xD0,0x02,0x98,0xC0,0x07, + 0x16,0xD0,0x04,0x20,0x00,0x22,0x1A,0xAB,0x31,0x04,0x06,0xD0,0x14,0x27,0x01,0x00, + 0x79,0x43,0x5A,0x50,0xC9,0x18,0x4A,0x60,0x05,0xE0,0x14,0x27,0x01,0x00,0x79,0x43, + 0xC9,0x18,0xCA,0x60,0x0A,0x61,0x40,0x1E,0x00,0x04,0x00,0x14,0xEC,0xD5,0x11,0xE0, + 0x04,0x20,0x00,0x22,0x1A,0xAB,0x31,0x04,0x04,0xD0,0x81,0x00,0x5A,0x50,0xC9,0x18, + 0x4A,0x61,0x03,0xE0,0x81,0x00,0xC9,0x18,0xCA,0x63,0x0A,0x65,0x40,0x1E,0x00,0x04, + 0x00,0x14,0xF0,0xD5,0xA1,0x48,0x34,0x99,0x22,0x00,0x04,0x23,0xFE,0xF7,0x3A,0xFD, + 0x9B,0x49,0x0A,0x89,0x82,0x42,0x00,0xDD,0x08,0x81,0x4A,0x89,0x82,0x42,0x00,0xDA, + 0x48,0x81,0x97,0x48,0x01,0x79,0x49,0x1C,0x0A,0x06,0x12,0x0E,0x02,0x71,0x92,0x00, + 0xA9,0x1E,0x12,0x18,0xE0,0x32,0x58,0x91,0x91,0x81,0x4E,0x99,0x89,0x1E,0x57,0x91, + 0x02,0x79,0x92,0x00,0x10,0x18,0xE0,0x30,0xC1,0x81,0x00,0x21,0x39,0x9B,0x42,0x98, + 0x0A,0x00,0x98,0x42,0x8C,0x46,0x3A,0x91,0x05,0xDC,0x3E,0x98,0x98,0x42,0x02,0xDC, + 0x3D,0x98,0x98,0x42,0x00,0xDD,0x01,0x21,0x41,0x98,0x98,0x42,0x06,0xDC,0x3C,0x98, + 0x98,0x42,0x03,0xDC,0x3B,0x9B,0x39,0x98,0x83,0x42,0x01,0xDD,0x01,0x20,0x3A,0x90, + 0x39,0x9B,0x40,0x98,0x98,0x42,0x05,0xDC,0x3E,0x98,0x98,0x42,0x02,0xDC,0x3C,0x98, + 0x98,0x42,0x01,0xDD,0x01,0x20,0x84,0x46,0x3F,0x98,0x98,0x42,0x07,0xDC,0x3D,0x98, + 0x98,0x42,0x04,0xDC,0x00,0xE0,0xFE,0xE0,0x3B,0x98,0x98,0x42,0x00,0xDD,0x01,0x22, + 0x04,0x20,0x1A,0xAE,0x00,0x29,0x03,0xD1,0x00,0x23,0x14,0x27,0x47,0x43,0xF3,0x51, + 0x3A,0x9B,0x00,0x2B,0x03,0xD1,0x14,0x27,0x47,0x43,0xBF,0x19,0x3B,0x61,0x63,0x46, + 0x00,0x2B,0x01,0xD1,0x87,0x00,0xF3,0x51,0x00,0x2A,0x03,0xD1,0x00,0x23,0x87,0x00, + 0xBF,0x19,0x3B,0x65,0x40,0x1E,0x00,0x04,0x00,0x14,0xE3,0xD5,0x1E,0x9A,0x1A,0xA8, + 0x00,0x92,0x0F,0xC8,0x01,0xF0,0xC3,0xFA,0x4B,0x90,0x23,0x9A,0x1F,0xA8,0x00,0x92, + 0x0F,0xC8,0x01,0xF0,0xBC,0xFA,0x28,0x9A,0x4A,0x90,0x24,0xA8,0x00,0x92,0x0F,0xC8, + 0x01,0xF0,0xB5,0xFA,0x2D,0x9A,0x49,0x90,0x29,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0, + 0xAE,0xFA,0x32,0x9A,0x48,0x90,0x2E,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xA7,0xFA, + 0x47,0x90,0x00,0x90,0x48,0x9B,0x49,0x9A,0x4A,0x99,0x4B,0x98,0x01,0xF0,0x9F,0xFA, + 0x00,0x28,0x4C,0x90,0x0F,0xD1,0x04,0x27,0x14,0x20,0x78,0x43,0x80,0x19,0x0A,0x22, + 0x00,0x21,0x00,0xF0,0x07,0xFA,0x7F,0x1E,0x3F,0x04,0x3F,0x14,0xF4,0xD5,0x0A,0x20, + 0x49,0x90,0x26,0x90,0x4C,0x90,0x58,0x98,0x00,0x28,0x01,0xDC,0x00,0x20,0x0C,0xE0, + 0x2E,0x9A,0x29,0x9B,0x00,0x92,0x24,0x9A,0x1F,0x99,0x1A,0x98,0x01,0xF0,0x7F,0xFA, + 0x3F,0x4A,0x69,0x00,0x89,0x18,0x49,0x8B,0x48,0x43,0x2F,0x9A,0x46,0x90,0x00,0x92, + 0x2A,0x9B,0x25,0x9A,0x20,0x99,0x1B,0x98,0x01,0xF0,0x71,0xFA,0x38,0x4A,0x69,0x00, + 0x8E,0x18,0xB1,0x8B,0x30,0x9A,0x2B,0x9B,0x48,0x43,0x45,0x90,0x00,0x92,0x26,0x9A, + 0x21,0x99,0x1C,0x98,0x01,0xF0,0x63,0xFA,0xF1,0x8B,0x31,0x9A,0x2C,0x9B,0x48,0x43, + 0x44,0x90,0x00,0x92,0x27,0x9A,0x22,0x99,0x1D,0x98,0x01,0xF0,0x58,0xFA,0x31,0x8C, + 0x48,0x43,0x58,0x99,0x07,0x00,0x60,0x1E,0x81,0x42,0x01,0xDB,0x00,0x20,0x09,0xE0, + 0x32,0x9A,0x00,0x92,0x2D,0x9B,0x28,0x9A,0x23,0x99,0x1E,0x98,0x01,0xF0,0x47,0xFA, + 0x71,0x8C,0x48,0x43,0x00,0x90,0x44,0x9A,0x45,0x99,0x46,0x98,0x3B,0x00,0x01,0xF0, + 0x3E,0xFA,0x4C,0x99,0xFB,0xF7,0xE2,0xFB,0x1D,0x49,0x0A,0x8C,0x52,0x00,0x80,0x1A, + 0x00,0xD5,0x00,0x20,0x0A,0x79,0x52,0x00,0x52,0x18,0xC0,0x32,0x90,0x81,0x57,0x98, + 0x00,0x28,0x01,0xDC,0x00,0x20,0x05,0xE0,0x4E,0x98,0x4B,0x9A,0x40,0x00,0x40,0x18, + 0xC0,0x8F,0x50,0x43,0x4E,0x9A,0x12,0x49,0x52,0x00,0x52,0x18,0x40,0x32,0x11,0x88, + 0x4A,0x9B,0x49,0x9E,0x59,0x43,0x53,0x88,0x05,0x9F,0x73,0x43,0x9C,0x46,0x93,0x88, + 0x48,0x9E,0x7F,0x1E,0x73,0x43,0x57,0x9E,0xBE,0x42,0x01,0xDB,0x00,0x22,0x02,0xE0, + 0xD2,0x88,0x47,0x9E,0x72,0x43,0x00,0x92,0x62,0x46,0x01,0xF0,0x08,0xFA,0x4C,0x99, + 0xFB,0xF7,0xAC,0xFB,0x02,0x49,0x40,0x31,0x89,0x88,0x49,0x00,0x40,0x1A,0x07,0xE0, + 0xF0,0x05,0x00,0x20,0x10,0x27,0x00,0x00,0x05,0x0B,0x00,0x20,0xC8,0x02,0x00,0x20, + 0x00,0xD5,0x00,0x20,0xA0,0x49,0x0A,0x79,0x52,0x00,0x52,0x18,0xC0,0x32,0xD0,0x83, + 0x08,0x79,0x08,0x28,0x12,0xD2,0x6D,0x1C,0x56,0x98,0x2D,0x04,0x2D,0x14,0x85,0x42, + 0x00,0xDA,0x47,0xE4,0x43,0x98,0x00,0x28,0x08,0xD1,0x4E,0x98,0x40,0x1C,0x00,0x04, + 0x00,0x14,0x4E,0x90,0x55,0x99,0x88,0x42,0x00,0xDA,0x37,0xE4,0x0D,0x98,0x00,0x06, + 0x5A,0xD5,0x91,0x4D,0x28,0x79,0x00,0x28,0x64,0x98,0x0F,0xD1,0x80,0x8B,0x00,0x28, + 0x4B,0xD0,0x64,0x98,0x69,0x99,0xEA,0x88,0x40,0x7E,0x09,0x7B,0x52,0x06,0x01,0xD4, + 0x68,0x99,0x09,0x7A,0x88,0x42,0x40,0xD2,0x40,0x1C,0x3B,0xE0,0x80,0x7E,0x0A,0x99, + 0x88,0x42,0x36,0xD8,0x40,0x1C,0x64,0x99,0x00,0x06,0x00,0x0E,0x88,0x76,0x09,0x99, + 0x88,0x42,0x03,0xD9,0xAA,0x89,0x33,0x99,0x51,0x18,0x33,0x91,0x0A,0x99,0x88,0x42, + 0x27,0xD1,0x09,0x99,0x88,0x42,0x24,0xD0,0x41,0x1A,0x33,0x98,0xFB,0xF7,0x28,0xFC, + 0x64,0x99,0x00,0x22,0x8A,0x83,0x69,0x99,0x0A,0x89,0xE9,0x88,0x4B,0x06,0x01,0xD4, + 0x68,0x9A,0x92,0x88,0x82,0x42,0x14,0xD2,0x37,0x9A,0x80,0x1A,0x69,0x9A,0x49,0x06, + 0x92,0x79,0x01,0xD4,0x68,0x99,0x8A,0x78,0x64,0x21,0x50,0x43,0xFB,0xF7,0x10,0xFC, + 0x64,0x99,0x00,0x04,0x00,0x0C,0x88,0x83,0x0B,0x99,0x88,0x42,0x01,0xD9,0x64,0x98, + 0x81,0x83,0x00,0x20,0x64,0x99,0x48,0x76,0x06,0xE0,0x64,0x99,0x00,0x20,0x88,0x76, + 0x64,0x99,0x48,0x76,0x64,0x99,0x88,0x83,0x00,0x20,0x01,0x00,0x4D,0x90,0x62,0x48, + 0x01,0x25,0x00,0x79,0x53,0x90,0x52,0xE0,0x69,0x00,0x8E,0x18,0xC0,0x36,0xB0,0x89, + 0x0A,0x21,0xFB,0xF7,0xED,0xFB,0x00,0x04,0x00,0x14,0x4F,0x90,0xF0,0x8B,0x0A,0x21, + 0xFB,0xF7,0xE6,0xFB,0x62,0x9B,0x02,0x04,0xDB,0x7E,0x12,0x14,0x00,0x21,0x08,0x00, + 0x54,0x93,0x37,0xE0,0x54,0x4E,0xC3,0x00,0x9F,0x19,0x11,0x23,0x9B,0x01,0xFB,0x18, + 0x1C,0x26,0x9E,0x5F,0x9C,0x46,0x4F,0x9B,0x9E,0x42,0x27,0xDC,0x23,0x23,0x5B,0x01, + 0xFF,0x18,0x00,0x23,0xFB,0x5E,0x4F,0x9E,0xB3,0x42,0x1F,0xDB,0x1E,0x26,0x63,0x46, + 0x9E,0x5F,0x96,0x42,0x1A,0xDC,0x02,0x23,0xFB,0x5E,0x47,0x4E,0x93,0x42,0x15,0xDB, + 0xAB,0x00,0x9E,0x19,0xE0,0x36,0x0E,0x23,0xF3,0x5E,0x27,0x1D,0x9B,0x1C,0x7B,0x43, + 0x0C,0x27,0xF7,0x5F,0x41,0x4E,0xDB,0x19,0x5B,0x00,0x9E,0x19,0x04,0x23,0xF3,0x5E, + 0x4D,0x9E,0xB3,0x42,0x02,0xDD,0x29,0x06,0x09,0x0E,0x4D,0x93,0x40,0x1C,0x54,0x9B, + 0x00,0x04,0x00,0x14,0x83,0x42,0xC5,0xDC,0x6D,0x1C,0x2D,0x04,0x2D,0x14,0x53,0x98, + 0x35,0x4A,0xA8,0x42,0xA8,0xDA,0x15,0x00,0x2C,0x00,0x26,0x00,0x6A,0x89,0x20,0x00, + 0x4D,0x9B,0xDE,0x36,0xCC,0x30,0xC2,0x34,0x9A,0x42,0x52,0x96,0x14,0xDC,0x00,0x29, + 0x12,0xD0,0x49,0x00,0x49,0x19,0xC0,0x31,0x8F,0x89,0xCE,0x8B,0x12,0x22,0x00,0x21, + 0x00,0xF0,0x78,0xF8,0x52,0x98,0x12,0x22,0x00,0x21,0x00,0xF0,0x73,0xF8,0x01,0x20, + 0x28,0x71,0xA7,0x81,0xE6,0x83,0x1E,0xE0,0x69,0x79,0x00,0x29,0x1B,0xD1,0x53,0x99, + 0x01,0x29,0x18,0xD9,0x66,0x99,0x89,0x78,0x00,0x29,0x14,0xD1,0x0E,0x99,0x00,0x29, + 0x11,0xD0,0x4A,0x00,0x51,0x19,0xC0,0x31,0x8E,0x89,0xCF,0x8B,0x12,0x22,0x00,0x21, + 0x00,0xF0,0x58,0xF8,0x52,0x98,0x12,0x22,0x00,0x21,0x00,0xF0,0x53,0xF8,0x01,0x20, + 0x28,0x71,0xA6,0x81,0xE7,0x83,0x62,0x98,0xC0,0x7D,0x00,0x28,0x0C,0xD0,0x00,0x21, + 0x29,0x71,0x62,0x98,0x12,0x4A,0x00,0x7E,0x92,0x7F,0x90,0x42,0x01,0xD3,0x62,0x9A, + 0xD1,0x75,0x62,0x99,0x40,0x1C,0x08,0x76,0x01,0x99,0x0E,0x48,0x00,0x29,0x10,0xD0, + 0x29,0x79,0x00,0x29,0x0D,0xD0,0x0C,0x4A,0x01,0x68,0x52,0x89,0x0A,0x32,0x91,0x42, + 0x01,0xDA,0x49,0x1C,0x01,0x60,0x28,0x79,0x68,0x71,0x6B,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x21,0xF6,0xE7,0x00,0x00,0xF0,0x05,0x00,0x20,0xC8,0x02,0x00,0x20, + 0x00,0x78,0x00,0x00,0xF0,0x0A,0x00,0x20,0x80,0x7A,0x00,0x00,0x03,0xE0,0x0B,0x78, + 0x49,0x1C,0x03,0x70,0x40,0x1C,0x52,0x1E,0xF9,0xD2,0x70,0x47,0x52,0x10,0x03,0xE0, + 0x0B,0x88,0x89,0x1C,0x03,0x80,0x80,0x1C,0x52,0x1E,0xF9,0xD2,0x70,0x47,0x92,0x10, + 0x01,0xE0,0x08,0xC9,0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x09,0x06,0x09,0x0E,0x01,0xE0,0x01,0x70,0x40,0x1C,0x52,0x1E, + 0xFB,0xD2,0x70,0x47,0x92,0x10,0x00,0xE0,0x02,0xC0,0x52,0x1E,0xFC,0xD2,0x70,0x47, + 0x0A,0x49,0x00,0x20,0xC9,0x88,0x4A,0x06,0x09,0x49,0x00,0xD5,0xC8,0x7A,0x89,0x7A, + 0x08,0x18,0x00,0x06,0x01,0x0C,0x07,0x48,0x02,0x69,0xFF,0x23,0x1B,0x02,0x9A,0x43, + 0x02,0x61,0x02,0x69,0x0A,0x43,0x02,0x61,0x70,0x47,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x80,0x78,0x00,0x00,0x00,0x90,0x00,0x40,0x10,0xB5,0x14,0x48,0x14,0x49,0x80,0x8B, + 0xC9,0x8A,0x00,0x24,0x40,0x18,0x13,0x49,0x09,0x78,0x00,0x29,0x12,0x49,0x04,0xD0, + 0x15,0x22,0x52,0x01,0x89,0x18,0x49,0x89,0x09,0xE0,0x10,0x4A,0xFF,0x31,0xD2,0x88, + 0xA1,0x31,0x49,0x8A,0x52,0x06,0x02,0xD4,0x0B,0x49,0xE0,0x31,0xC9,0x89,0x08,0x18, + 0x0B,0x49,0xC9,0x6B,0x49,0x04,0x49,0x0C,0x81,0x42,0x00,0xD3,0x01,0x24,0xFE,0xF7, + 0x07,0xFF,0x20,0x00,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xF0,0x06,0x00,0x20, + 0xD0,0x0A,0x00,0x20,0x04,0x0B,0x00,0x20,0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20, + 0xC0,0x90,0x00,0x40,0xF7,0xB5,0x2C,0x4E,0xFF,0x27,0xB0,0x7F,0xF1,0x7F,0x84,0xB0, + 0x00,0x02,0x08,0x43,0x01,0xF0,0xEE,0xFD,0x30,0x00,0x20,0x38,0x00,0x7D,0xC0,0x07, + 0x0A,0xD0,0x26,0x48,0x01,0x78,0x26,0x48,0x00,0x7A,0x00,0x29,0x02,0xD0,0x01,0xF0, + 0x81,0xFD,0x01,0xE0,0x01,0xF0,0xAE,0xFD,0x22,0x48,0x02,0x25,0xC1,0x6A,0x03,0x91, + 0x01,0x6A,0x02,0x91,0x41,0x6A,0x01,0x91,0x41,0x6B,0x00,0x91,0x21,0xE0,0x1D,0x4F, + 0x00,0x20,0xF8,0x62,0x18,0x48,0xA0,0x30,0x80,0x68,0x38,0x62,0x1A,0x48,0x00,0x6B, + 0x78,0x62,0x03,0x24,0xE0,0x07,0xC0,0x0F,0xFC,0xF7,0xB8,0xF8,0x64,0x1E,0xF9,0xD5, + 0x02,0x20,0x78,0x63,0x30,0x7F,0x01,0x00,0xFC,0xF7,0x32,0xF9,0x01,0x24,0x04,0xA8, + 0x07,0xC8,0xFE,0xF7,0x49,0xFE,0x07,0x00,0x01,0xD1,0x00,0x24,0x25,0x00,0x64,0x1E, + 0xF5,0xD5,0x28,0x00,0x6D,0x1E,0x00,0x28,0xD9,0xDC,0x0A,0x48,0x03,0x99,0xC1,0x62, + 0x02,0x99,0x01,0x62,0x01,0x99,0x41,0x62,0x00,0x99,0x41,0x63,0x38,0x00,0x07,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x20,0x78,0x00,0x00,0xFD,0x0A,0x00,0x20, + 0x70,0x0A,0x00,0x20,0x80,0x90,0x00,0x40,0x80,0x7A,0x00,0x00,0x78,0x47,0xC0,0x46, + 0xF0,0x4F,0x2D,0xE9,0x71,0xDF,0x4D,0xE2,0x00,0x00,0xA0,0xE3,0xB8,0x01,0x8D,0xE5, + 0xC8,0x08,0x9F,0xE5,0xCC,0x38,0x9F,0xE5,0x00,0x00,0xD0,0xE5,0xCC,0x68,0x9F,0xE5, + 0xAC,0x01,0x8D,0xE5,0xB8,0x08,0x9F,0xE5,0x00,0xB0,0xD0,0xE5,0xB6,0x00,0xD3,0xE1, + 0x40,0x10,0x00,0xE2,0xB0,0x08,0x9F,0xE5,0x00,0x00,0x51,0xE3,0x01,0x4C,0x80,0xE2, + 0xBC,0x1E,0xD0,0x01,0xB0,0x1B,0xD4,0x11,0x02,0xAC,0x80,0xE2,0xA8,0x11,0x8D,0xE5, + 0xB0,0x1F,0xD0,0x01,0xB4,0x1B,0xD4,0x11,0xA4,0x11,0x8D,0xE5,0xF8,0x1A,0xD4,0x01, + 0xFC,0x16,0xDA,0x11,0x9C,0x11,0x8D,0xE5,0xFA,0x1A,0xD4,0x01,0xFE,0x16,0xDA,0x11, + 0x98,0x11,0x8D,0xE5,0xF4,0x10,0xD0,0x05,0xB8,0x11,0xD0,0x15,0x94,0x11,0x8D,0xE5, + 0xF5,0x10,0xD0,0x05,0xB9,0x11,0xD0,0x15,0x90,0x11,0x8D,0xE5,0xF6,0x10,0xD0,0x05, + 0xBA,0x11,0xD0,0x15,0x8C,0x11,0x8D,0xE5,0xF7,0x10,0xD0,0x05,0xBB,0x11,0xD0,0x15, + 0x88,0x11,0x8D,0xE5,0xBC,0x1F,0xD0,0x01,0xB0,0x1C,0xD4,0x11,0x84,0x11,0x8D,0xE5, + 0xBE,0x1F,0xD0,0x01,0xB2,0x1C,0xD4,0x11,0x80,0x11,0x8D,0xE5,0xB0,0x10,0xD4,0x01, + 0xB4,0x1C,0xD4,0x11,0x7C,0x11,0x8D,0xE5,0xB2,0x10,0xD4,0x01,0xB6,0x1C,0xD4,0x11, + 0x78,0x11,0x8D,0xE5,0xB8,0x1F,0xD0,0x01,0xBC,0x1B,0xD4,0x11,0x74,0x11,0x8D,0xE5, + 0xBA,0x0F,0xD0,0x01,0xBE,0x0B,0xD4,0x11,0x70,0x01,0x8D,0xE5,0x00,0x00,0xA0,0xE3, + 0x2C,0x00,0x8D,0xE5,0x28,0x00,0x8D,0xE5,0x24,0x00,0x8D,0xE5,0x20,0x00,0x8D,0xE5, + 0x1C,0x00,0x8D,0xE5,0x18,0x00,0x8D,0xE5,0x14,0x00,0x8D,0xE5,0x10,0x00,0x8D,0xE5, + 0x0C,0x00,0x8D,0xE5,0x08,0x00,0x8D,0xE5,0x04,0x00,0x8D,0xE5,0x00,0x00,0x8D,0xE5, + 0xB8,0x05,0xC6,0xE1,0x00,0x90,0xA0,0xE1,0xBA,0x05,0xC6,0xE1,0x01,0x5C,0x46,0xE2, + 0xBC,0x05,0xC6,0xE1,0x28,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x70,0x00,0x85,0xE2, + 0x49,0xFF,0xFF,0xEB,0x28,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x98,0x00,0x85,0xE2, + 0x45,0xFF,0xFF,0xEB,0x00,0x00,0xA0,0xE3,0xB4,0x01,0x8D,0xE5,0x00,0x10,0xA0,0xE1, + 0xB0,0x0C,0xC5,0xE1,0x50,0x20,0xA0,0xE3,0x12,0x0E,0x8D,0xE2,0x3E,0xFF,0xFF,0xEB, + 0x50,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xD0,0x00,0x8D,0xE2,0x3A,0xFF,0xFF,0xEB, + 0x50,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x80,0x00,0x8D,0xE2,0x36,0xFF,0xFF,0xEB, + 0x50,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x30,0x00,0x8D,0xE2,0x32,0xFF,0xFF,0xEB, + 0x4C,0x07,0x9F,0xE5,0x00,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3,0xF8,0x7A,0xDA,0x11, + 0xB6,0x0A,0xDA,0x11,0x07,0x00,0x00,0x1A,0x28,0x07,0x9F,0xE5,0xB6,0x00,0xD0,0xE1, + 0x40,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3,0xF2,0x71,0xD4,0x01,0xF6,0x7D,0xD4,0x11, + 0xB0,0x01,0xD4,0x01,0xB4,0x0D,0xD4,0x11,0x00,0x80,0xA0,0xE3,0x08,0x50,0xA0,0xE1, + 0xA0,0x01,0x8D,0xE5,0x0C,0x07,0x9F,0xE5,0xC0,0x01,0x8D,0xE5,0x0E,0x0C,0x80,0xE2, + 0xBC,0x01,0x8D,0xE5,0x82,0x00,0x00,0xEA,0x00,0x40,0xA0,0xE3,0x7C,0x00,0x00,0xEA, + 0xC0,0x01,0x9D,0xE5,0x0F,0x2A,0xE0,0xE3,0x08,0x11,0x90,0xE7,0x01,0x0A,0xA0,0xE1, + 0x20,0x0A,0xA0,0xE1,0x21,0x18,0x02,0xE0,0x01,0x30,0x40,0xE0,0x00,0x00,0x41,0xE0, + 0x98,0x11,0x9D,0xE5,0x03,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3,0xD0,0x20,0x8D,0xC2, + 0x04,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0,0x04,0x11,0x82,0xC7,0x98,0x11,0x9D,0xE5, + 0x00,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3,0x30,0x20,0x8D,0xC2,0x04,0xC1,0x92,0xC7, + 0x0C,0x10,0x81,0xC0,0x04,0x11,0x82,0xC7,0x9C,0x11,0x9D,0xE5,0x03,0x10,0x81,0xE0, + 0x00,0x00,0x51,0xE3,0x12,0x2E,0x8D,0xC2,0x05,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0, + 0x05,0x11,0x82,0xC7,0x9C,0x11,0x9D,0xE5,0x00,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3, + 0x80,0x20,0x8D,0xC2,0x05,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0,0x05,0x11,0x82,0xC7, + 0xB4,0x11,0x9D,0xE5,0x01,0x00,0x53,0xE1,0xB4,0x31,0x8D,0xC5,0x2C,0x40,0x8D,0xC5, + 0x28,0x50,0x8D,0xC5,0x64,0x00,0x53,0xE3,0xB8,0x15,0xD6,0xC1,0x01,0x10,0x81,0xC2, + 0xB8,0x15,0xC6,0xC1,0x46,0x00,0x50,0xE3,0xBA,0x15,0xD6,0xC1,0x01,0x10,0x81,0xC2, + 0xBA,0x15,0xC6,0xC1,0xE6,0x00,0x53,0xE3,0xBC,0x15,0xD6,0xC1,0x01,0x10,0x81,0xC2, + 0xBC,0x15,0xC6,0xC1,0x0C,0x16,0x9F,0xE5,0xB6,0x10,0xD1,0xE1,0x40,0x00,0x11,0xE3, + 0xB0,0x18,0xDA,0xE1,0x01,0x28,0xE0,0x13,0x81,0x10,0x02,0x10,0x00,0x00,0x53,0xE3, + 0x03,0x28,0xA0,0xC1,0x00,0x20,0xA0,0xD3,0x22,0x28,0xA0,0xC1,0x00,0x00,0x50,0xE3, + 0x00,0x08,0xA0,0xC1,0x00,0x00,0xA0,0xD3,0x20,0x08,0xA0,0xC1,0x01,0x00,0x50,0xE1, + 0x01,0xC0,0x89,0x82,0x01,0x98,0xCC,0x83,0x01,0x00,0x52,0xE1,0x08,0xC0,0x9D,0x85, + 0x01,0xC0,0x8C,0x82,0x01,0xC8,0xCC,0x83,0x08,0xC0,0x8D,0x85,0x81,0x00,0x50,0xE1, + 0x04,0xC0,0x9D,0x85,0x01,0xC0,0x8C,0x82,0x01,0xC8,0xCC,0x83,0x04,0xC0,0x8D,0x85, + 0x81,0x00,0x52,0xE1,0x00,0x10,0x9D,0x85,0x01,0x10,0x81,0x82,0x01,0x18,0xC1,0x83, + 0x00,0x10,0x8D,0x85,0x0C,0x10,0x9D,0xE5,0x00,0x00,0x53,0xE3,0x01,0x00,0x80,0xE0, + 0x0C,0x00,0x8D,0xE5,0x00,0x30,0xA0,0xB3,0x01,0x00,0x4B,0xE2,0x00,0x00,0x55,0xE1, + 0x06,0x00,0x00,0x1A,0x00,0x00,0x53,0xE3,0x04,0x00,0x00,0x0A,0x64,0x00,0xA0,0xE3, + 0x93,0x00,0x00,0xE0,0x64,0x10,0xA0,0xE3,0xD4,0xEB,0xFF,0xEB,0x00,0x30,0xA0,0xE1, + 0x05,0x10,0xA0,0xE1,0x04,0x00,0xA0,0xE1,0xF5,0xF7,0xFF,0xEB,0x58,0x15,0x9F,0xE5, + 0x00,0x00,0x57,0xE3,0x80,0x00,0x81,0xE0,0xB0,0x30,0xC0,0xE1,0x00,0x00,0x67,0xD2, + 0x07,0x00,0xA0,0xC1,0x03,0x00,0x50,0xE1,0xB8,0x11,0x9D,0xB5,0x07,0x00,0x83,0xB0, + 0x01,0x00,0x80,0xB0,0xB8,0x01,0x8D,0xB5,0x05,0x10,0xA0,0xE1,0x04,0x00,0xA0,0xE1, + 0xBE,0xF7,0xFF,0xEB,0xBC,0x11,0x9D,0xE5,0x20,0x25,0x9F,0xE5,0x08,0x11,0x91,0xE7, + 0x80,0x00,0x82,0xE0,0x02,0x19,0xC1,0xE3,0x01,0x80,0x88,0xE2,0x01,0x40,0x84,0xE2, + 0xB0,0x10,0xC0,0xE1,0xAC,0x01,0x9D,0xE5,0x00,0x00,0x54,0xE1,0x7F,0xFF,0xFF,0x3A, + 0x01,0x50,0x85,0xE2,0x0B,0x00,0x55,0xE1,0x7A,0xFF,0xFF,0x3A,0x44,0xFA,0xFF,0xEB, + 0xD0,0x74,0x9F,0xE5,0xA4,0x01,0x9D,0xE5,0xBE,0x00,0xC7,0xE1,0xA8,0x01,0x9D,0xE5, + 0x01,0x00,0x10,0xE3,0x0A,0x00,0x00,0x0A,0xAC,0x01,0x9D,0xE5,0x64,0x10,0xA0,0xE3, + 0x9B,0x00,0x00,0xE0,0x90,0x01,0x01,0xE0,0xB8,0x01,0x9D,0xE5,0xA0,0x21,0x9D,0xE5, + 0x92,0x00,0x00,0xE0,0x12,0xEC,0xFF,0xEB,0xA4,0x11,0x9D,0xE5,0x01,0x00,0x50,0xE1, + 0xBE,0x00,0xC7,0x31,0xAC,0x01,0x9D,0xE5,0x64,0x10,0xA0,0xE3,0x90,0x01,0x06,0xE0, + 0x00,0x40,0xA0,0xE3,0x4A,0x00,0x00,0xEA,0x88,0x04,0xD7,0xE5,0x04,0x00,0x50,0xE1, + 0x5A,0x04,0xD7,0x05,0x01,0x00,0x50,0x03,0x1E,0x00,0x00,0x0A,0x12,0x0E,0x8D,0xE2, + 0x04,0x01,0x90,0xE7,0x94,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x06,0x10,0xA0,0xE1, + 0xFF,0xEB,0xFF,0xEB,0x84,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x4A,0xFA,0xFF,0xEB,0x00,0x50,0xA0,0xE1, + 0x80,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7,0x90,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x06,0x10,0xA0,0xE1,0xF2,0xEB,0xFF,0xEB,0x80,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1, + 0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x3D,0xFA,0xFF,0xEB, + 0x00,0x00,0x45,0xE0,0x00,0x08,0xA0,0xE1,0x74,0x11,0x9D,0xE5,0x40,0x08,0xA0,0xE1, + 0x84,0x50,0x87,0xE0,0x21,0x00,0x00,0xEA,0x5B,0x04,0xD7,0xE5,0x64,0x10,0xA0,0xE3, + 0x94,0x21,0x9D,0xE5,0x90,0x01,0x01,0xE0,0x12,0x0E,0x8D,0xE2,0x04,0x01,0x90,0xE7, + 0x92,0x00,0x00,0xE0,0xDE,0xEB,0xFF,0xEB,0x84,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1, + 0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x29,0xFA,0xFF,0xEB, + 0x00,0x50,0xA0,0xE1,0x5B,0x04,0xD7,0xE5,0x64,0x10,0xA0,0xE3,0x90,0x21,0x9D,0xE5, + 0x90,0x01,0x01,0xE0,0x80,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7,0x92,0x00,0x00,0xE0, + 0xCF,0xEB,0xFF,0xEB,0x80,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x1A,0xFA,0xFF,0xEB,0x00,0x00,0x45,0xE0, + 0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x84,0x50,0x87,0xE0,0x64,0x10,0xA0,0xE3, + 0x91,0x00,0x00,0xE0,0x64,0x10,0xA0,0xE3,0x54,0xEB,0xFF,0xEB,0x01,0x40,0x84,0xE2, + 0xB0,0x07,0xC5,0xE1,0x0B,0x00,0x54,0xE1,0xB2,0xFF,0xFF,0x3A,0x64,0x00,0xA0,0xE3, + 0x9B,0x00,0x00,0xE0,0x00,0x40,0xA0,0xE3,0xB0,0x01,0x8D,0xE5,0x49,0x00,0x00,0xEA, + 0x88,0x04,0xD7,0xE5,0x04,0x00,0x50,0xE1,0x02,0x00,0x00,0x1A,0x5A,0x04,0xD7,0xE5, + 0x02,0x00,0x10,0xE3,0x1E,0x00,0x00,0x1A,0xD0,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7, + 0x8C,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0,0xB0,0x11,0x9D,0xE5,0xAC,0xEB,0xFF,0xEB, + 0x7C,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x41,0x18,0xA0,0xE1,0xF7,0xF9,0xFF,0xEB,0x00,0x50,0xA0,0xE1,0x30,0x00,0x8D,0xE2, + 0x04,0x01,0x90,0xE7,0x88,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0,0xB0,0x11,0x9D,0xE5, + 0x9F,0xEB,0xFF,0xEB,0x78,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0xEA,0xF9,0xFF,0xEB,0x00,0x00,0x45,0xE0, + 0x00,0x08,0xA0,0xE1,0x70,0x11,0x9D,0xE5,0x40,0x08,0xA0,0xE1,0x84,0x50,0x87,0xE0, + 0x1F,0x00,0x00,0xEA,0x5B,0x04,0xD7,0xE5,0x64,0x10,0xA0,0xE3,0xD0,0x80,0x8D,0xE2, + 0x90,0x01,0x01,0xE0,0x04,0x01,0x98,0xE7,0x8C,0x21,0x9D,0xE5,0x92,0x00,0x00,0xE0, + 0x8B,0xEB,0xFF,0xEB,0x78,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1, + 0x41,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x01,0x50,0xA0,0xE1,0xD5,0xF9,0xFF,0xEB, + 0x00,0x60,0xA0,0xE1,0x5B,0x04,0xD7,0xE5,0x64,0x10,0xA0,0xE3,0x88,0x21,0x9D,0xE5, + 0x90,0x01,0x01,0xE0,0x04,0x01,0x98,0xE7,0x92,0x00,0x00,0xE0,0x7C,0xEB,0xFF,0xEB, + 0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x05,0x10,0xA0,0xE1,0xC9,0xF9,0xFF,0xEB, + 0x00,0x00,0x46,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x84,0x50,0x87,0xE0, + 0x64,0x10,0xA0,0xE3,0x91,0x00,0x00,0xE0,0x64,0x10,0xA0,0xE3,0x03,0xEB,0xFF,0xEB, + 0x01,0x40,0x84,0xE2,0xB8,0x09,0xC5,0xE1,0xAC,0x01,0x9D,0xE5,0x00,0x00,0x54,0xE1, + 0xB2,0xFF,0xFF,0x3A,0xB4,0x01,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x0D,0x00,0x00,0xDA, + 0x2C,0x00,0x9D,0xE5,0x28,0x10,0x9D,0xE5,0x80,0x00,0x87,0xE0,0x81,0x10,0x87,0xE0, + 0xB8,0x09,0xD0,0xE1,0xB0,0x17,0xD1,0xE1,0x00,0x10,0x81,0xE0,0xB4,0x01,0x9D,0xE5, + 0x01,0x00,0x40,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xB0,0xE1,0xB0,0x0C,0xC7,0xE1, + 0x00,0x00,0xA0,0x43,0xB0,0x0C,0xC7,0x41,0xAC,0x01,0x9D,0xE5,0x01,0x00,0x40,0xE2, + 0x9B,0x00,0x01,0xE0,0x0C,0x00,0x9D,0xE5,0x55,0xEB,0xFF,0xEB,0xB6,0x10,0xD7,0xE1, + 0x08,0x20,0x9D,0xE5,0x40,0x00,0x11,0xE3,0x10,0x00,0x00,0x0A,0x82,0x00,0x59,0xE1, + 0x01,0x20,0xA0,0x83,0x20,0x20,0x8D,0x85,0xFA,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83, + 0x1C,0x00,0x8D,0x85,0x04,0x00,0x9D,0xE5,0x23,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83, + 0x18,0x00,0x8D,0x85,0x00,0x00,0x9D,0xE5,0x23,0x00,0x50,0xE3,0x01,0x00,0xA0,0x33, + 0x14,0x00,0x8D,0x35,0x14,0x00,0x59,0xE3,0x13,0x00,0x00,0x9A,0x10,0x00,0x00,0xEA, + 0x02,0x00,0x59,0xE1,0x08,0x00,0x59,0x83,0x01,0x20,0xA0,0x83,0x20,0x20,0x8D,0x85, + 0x96,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83,0x1C,0x00,0x8D,0x85,0x04,0x00,0x9D,0xE5, + 0x14,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83,0x18,0x00,0x8D,0x85,0x00,0x00,0x9D,0xE5, + 0x14,0x00,0x50,0xE3,0x01,0x00,0xA0,0x33,0x14,0x00,0x8D,0x35,0x0A,0x00,0x59,0xE3, + 0x01,0x00,0x00,0x9A,0x01,0x00,0xA0,0xE3,0x10,0x00,0x8D,0xE5,0xC9,0x00,0xD7,0xE5, + 0x00,0x00,0x50,0xE3,0xCA,0x00,0xD7,0xE5,0x03,0x00,0x00,0x0A,0xFA,0x00,0x50,0xE3, + 0x05,0x00,0x00,0x2A,0x01,0x00,0x80,0xE2,0x02,0x00,0x00,0xEA,0x00,0x00,0x50,0xE3, + 0x01,0x00,0x00,0x0A,0x01,0x00,0x40,0xE2,0xCA,0x00,0xC7,0xE5,0x20,0x00,0x9D,0xE5, + 0x1C,0x20,0x9D,0xE5,0x10,0x00,0x11,0xE3,0x02,0x30,0x80,0xE1,0x14,0x20,0x8D,0xE2, + 0x05,0x00,0x92,0xE8,0x02,0x00,0x00,0xE0,0x00,0x20,0x83,0xE1,0x10,0x00,0x9D,0x15, + 0x00,0x00,0x50,0x13,0x00,0x00,0xA0,0x03,0x01,0x00,0xA0,0x13,0x02,0x00,0x80,0xE1, + 0x00,0x00,0x50,0xE3,0xCA,0x00,0xD7,0x15,0x05,0x00,0x50,0x13,0x02,0x00,0x00,0x8A, + 0x24,0x00,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x07,0x00,0x00,0x0A,0xC4,0x00,0x97,0xE5, + 0x01,0x00,0x80,0xE2,0xC4,0x00,0x87,0xE5,0xC8,0x00,0xD7,0xE5,0x00,0x00,0x50,0xE3, + 0x01,0x00,0x40,0x12,0xC8,0x00,0xC7,0x15,0x0C,0x00,0x00,0xEA,0xC8,0x00,0xD7,0xE5, + 0x01,0x00,0x80,0xE2,0xFF,0x00,0x00,0xE2,0xC8,0x00,0xC7,0xE5,0xB4,0x18,0xDA,0xE1, + 0x01,0x00,0x50,0xE1,0x05,0x00,0x00,0x1A,0x00,0x00,0xA0,0xE3,0xC8,0x00,0xC7,0xE5, + 0xC4,0x00,0x97,0xE5,0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0xC2,0xC4,0x00,0x87,0xC5, + 0xCA,0x00,0xD7,0xE5,0x0A,0x00,0x50,0xE3,0x05,0x00,0x00,0x2A,0xC4,0x00,0x97,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0xA0,0xC3,0xC4,0x00,0x87,0xC5,0x00,0x00,0xA0,0xE3, + 0xC8,0x00,0xC7,0xE5,0x71,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00, + 0xF0,0x06,0x00,0x20,0x04,0x0B,0x00,0x20,0x00,0x02,0x10,0x40,0xC8,0x02,0x00,0x20, + 0x40,0x00,0x00,0x20,0xF0,0xB5,0xC7,0x49,0xC5,0x4F,0xC9,0x88,0xB8,0x7D,0xC6,0x4C, + 0x00,0x25,0x49,0x06,0x8D,0xB0,0x00,0xD4,0xA0,0x7C,0x03,0x90,0xC0,0x48,0x40,0x38, + 0x42,0x79,0x06,0x00,0xC0,0x36,0x00,0x92,0x82,0x79,0x80,0x30,0x01,0x7B,0xC0,0x38, + 0xB3,0x7A,0x00,0x7A,0xFE,0xF7,0x41,0xFA,0x00,0x06,0x71,0x7A,0x00,0x0E,0xFE,0xF7, + 0x31,0xFA,0x31,0x00,0x20,0x39,0x0A,0x7A,0xC0,0x39,0x00,0x06,0x0C,0x91,0x09,0x79, + 0x00,0x0E,0xFE,0xF7,0x2B,0xFA,0x00,0x06,0xBA,0x7D,0xA1,0x7C,0x00,0x0E,0xFE,0xF7, + 0x25,0xFA,0x00,0x06,0xB1,0x4E,0x00,0x0E,0x02,0x90,0x30,0x7B,0x00,0x28,0x02,0xD0, + 0xAF,0x48,0x40,0x89,0x0A,0xE0,0xAB,0x49,0x78,0x8A,0xC9,0x88,0x49,0x06,0x00,0xD4, + 0xE0,0x89,0xAC,0x49,0xC9,0x8A,0x40,0x18,0x00,0x04,0x00,0x0C,0x00,0x27,0x04,0x90, + 0x77,0x61,0x30,0x7A,0x00,0x28,0x06,0xD0,0x30,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0, + 0xB1,0xFA,0x01,0xF0,0x9F,0xFA,0x01,0x20,0x30,0x62,0xFC,0xF7,0xD5,0xFA,0x9D,0x48, + 0x9D,0x4A,0x01,0x00,0xC0,0x31,0x0A,0x91,0xA0,0x31,0x09,0x91,0x05,0x21,0xC9,0x01, + 0xE0,0x3A,0x53,0x18,0x80,0x32,0x07,0xAC,0x0C,0xC4,0x02,0x9A,0xD2,0x1C,0x06,0x92, + 0x4A,0x00,0x84,0x18,0x40,0x18,0x05,0x90,0x0C,0xE1,0x30,0x7A,0x00,0x28,0x04,0xD0, + 0x30,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0x8D,0xFA,0xFF,0x20,0x81,0x30,0xFB,0xF7, + 0x8D,0xF8,0x03,0x20,0x01,0xF0,0xC6,0xF9,0x00,0xF0,0x64,0xF9,0x01,0x20,0x40,0x05, + 0xFC,0xF7,0xC0,0xFC,0xFF,0xF7,0xFA,0xFA,0x00,0x20,0xFC,0xF7,0xBB,0xFC,0x85,0x48, + 0xC0,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5,0x05,0x20, + 0x00,0xE0,0x03,0x20,0x01,0xF0,0x8A,0xF8,0xFC,0xF7,0xF0,0xFC,0x82,0x48,0x04,0x99, + 0x80,0x8B,0x41,0x18,0x7B,0x48,0x80,0x89,0x81,0x42,0x10,0xD9,0x09,0x98,0x40,0x78, + 0x00,0x28,0x0C,0xD1,0x77,0x48,0xFF,0x21,0xC0,0x88,0x19,0x31,0x08,0x42,0x06,0xD1, + 0x03,0x98,0x6D,0x1C,0x85,0x42,0x03,0xDD,0xFC,0xF7,0xE0,0xFC,0x00,0xE0,0x00,0x25, + 0x00,0xF0,0x48,0xFE,0x00,0xF0,0xCA,0xFD,0x00,0xF0,0x1E,0xFE,0x0A,0x98,0x41,0x68, + 0x08,0x98,0x40,0x88,0x81,0x42,0x0A,0xDB,0x09,0x98,0x40,0x78,0x00,0x28,0x04,0xD1, + 0x68,0x48,0x46,0x21,0xC0,0x88,0x08,0x42,0x01,0xD0,0x01,0x20,0x70,0x70,0xFC,0xF7, + 0x93,0xFC,0xFD,0xF7,0x47,0xFE,0x00,0x28,0x08,0xD0,0x77,0x61,0x05,0x98,0x80,0x7B, + 0xC8,0x28,0x10,0xD2,0x05,0x99,0x40,0x1C,0x88,0x73,0x0C,0xE0,0x70,0x69,0x40,0x1C, + 0x70,0x61,0x70,0x69,0x01,0x28,0x01,0xD1,0x60,0x48,0x07,0x73,0x70,0x69,0x05,0x28, + 0x01,0xD9,0xFC,0xF7,0x49,0xFA,0x01,0x20,0x40,0x07,0x00,0x68,0x00,0x28,0x07,0xD1, + 0x60,0x68,0xFF,0x21,0xFF,0x31,0x88,0x42,0x03,0xDA,0x40,0x1C,0x60,0x60,0x00,0xE0, + 0x67,0x60,0x08,0x99,0x20,0x68,0x49,0x89,0x88,0x42,0x09,0xDD,0x60,0x68,0xFF,0x21, + 0xF5,0x31,0x88,0x42,0x04,0xDD,0x01,0x20,0x70,0x70,0x27,0x60,0x67,0x60,0x02,0xE0, + 0x70,0x78,0x00,0x28,0x02,0xD0,0xFC,0xF7,0x39,0xFA,0x0D,0xE0,0x4C,0x48,0x41,0x68, + 0x09,0x07,0x07,0xD5,0xC1,0x68,0x00,0x29,0x04,0xD0,0xC0,0x68,0x01,0x21,0x49,0x07, + 0xC8,0x63,0x01,0xE0,0x00,0xF0,0x20,0xF9,0xFC,0xF7,0xF6,0xFC,0x70,0x78,0x00,0x28, + 0x0B,0xD0,0x3D,0x48,0x01,0x21,0xE0,0x38,0xC0,0x7F,0x40,0x08,0x01,0xF0,0x52,0xF8, + 0x3A,0x48,0x47,0x70,0x0A,0x98,0x47,0x60,0x5A,0xE0,0x07,0x98,0x00,0x7B,0x00,0x28, + 0x04,0xD0,0x30,0x7B,0x00,0x28,0x01,0xD1,0x00,0xF0,0xC0,0xF8,0x01,0x20,0x40,0x07, + 0xC0,0x6B,0x0B,0x28,0x4C,0xD1,0x07,0x98,0x00,0x7A,0x00,0x28,0x01,0xD0,0xFF,0xF7, + 0x8F,0xF9,0x00,0xF0,0x9B,0xF8,0x03,0x20,0x01,0xF0,0xDE,0xF8,0xF0,0x62,0x03,0x20, + 0x01,0xF0,0x0C,0xF9,0xFF,0x20,0x81,0x30,0xFA,0xF7,0xB8,0xFF,0x2D,0x48,0x00,0x78, + 0x00,0x28,0x2F,0xD1,0xFC,0xF7,0x9E,0xFD,0x00,0x28,0x2B,0xD0,0xB0,0x6A,0x00,0x28, + 0x0B,0x90,0x27,0xD0,0xF0,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x26,0x49,0xFA,0xF7, + 0x6F,0xFC,0x0B,0x99,0x08,0x1A,0x32,0x28,0x1C,0xDD,0x01,0xF0,0xB1,0xF9,0x01,0xF0, + 0xB5,0xF9,0xB0,0x79,0x00,0x28,0x0D,0xD0,0x00,0xF0,0x4E,0xF8,0x00,0xF0,0x51,0xF8, + 0x00,0xF0,0x59,0xF8,0x1D,0x4E,0x01,0x20,0x70,0x60,0xFA,0xF7,0x9F,0xFF,0x1C,0x48, + 0x70,0x60,0x03,0xE0,0x1B,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0,0x01,0xF0,0xA5,0xF9, + 0x18,0x48,0x07,0x70,0x0D,0x4E,0x70,0x69,0x06,0x99,0x88,0x42,0x00,0xD2,0xEC,0xE6, + 0x0C,0x98,0x0C,0x49,0x40,0x78,0xA0,0x39,0x48,0x73,0x08,0x48,0x00,0x7A,0x00,0x28, + 0x01,0xD0,0x01,0xF0,0x6F,0xF9,0x0D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xA0,0x79,0x00,0x00,0xF0,0x05,0x00,0x20,0xE0,0x78,0x00,0x00,0xF8,0x0A,0x00,0x20, + 0xA0,0x7A,0x00,0x00,0xD0,0x0A,0x00,0x20,0xF0,0x06,0x00,0x20,0x90,0x08,0x00,0x20, + 0x00,0x40,0x00,0x30,0xAD,0x0B,0x00,0x20,0x10,0x27,0x00,0x00,0x00,0x30,0x00,0x40, + 0xE1,0x04,0x00,0x00,0xAC,0x0B,0x00,0x20,0x01,0x20,0x80,0x07,0x01,0x6B,0x81,0x22, + 0xD2,0x01,0x11,0x43,0x01,0x63,0x70,0x47,0x00,0x20,0x01,0x21,0x89,0x07,0x48,0x60, + 0x70,0x47,0x10,0x20,0x81,0x06,0x48,0x60,0x70,0x47,0x01,0x22,0x92,0x07,0x91,0x68, + 0x01,0x43,0x91,0x60,0x70,0x47,0x01,0x20,0x80,0x07,0x41,0x68,0x02,0x22,0x11,0x43, + 0x41,0x60,0x70,0x47,0x01,0x20,0x80,0x07,0x01,0x6B,0x03,0x4A,0x89,0x09,0x52,0x7B, + 0x89,0x01,0x11,0x43,0x01,0x63,0x70,0x47,0x00,0x78,0x00,0x00,0x10,0xB5,0xFC,0xF7, + 0x73,0xFB,0xFA,0xF7,0x19,0xFC,0x03,0x20,0x40,0x03,0xFA,0xF7,0x1F,0xFF,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x03,0x20,0x10,0xB5,0x40,0x03,0xFA,0xF7,0x1F,0xFF,0xFA,0xF7, + 0x15,0xFC,0xFC,0xF7,0x69,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xB5,0x00,0xF0, + 0xDB,0xFB,0x05,0x49,0x80,0x22,0xC9,0x88,0x11,0x40,0x81,0x42,0x01,0xD0,0xFA,0xF7, + 0x3D,0xFE,0x08,0xBC,0x18,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0xFE,0xB5,0x16,0x48, + 0x17,0x4E,0x00,0x78,0x00,0x25,0x01,0x90,0x14,0x48,0x00,0x78,0x00,0x90,0x1C,0xE0, + 0x14,0x49,0x68,0x00,0x00,0x24,0x47,0x18,0x60,0x37,0x12,0xE0,0x29,0x00,0x20,0x00, + 0xFD,0xF7,0x26,0xFB,0x0F,0x4B,0x62,0x00,0xD3,0x18,0x98,0x22,0x9A,0x5E,0x10,0x23, + 0xFB,0x5E,0x40,0x00,0x31,0x5E,0xD2,0x18,0x89,0x1A,0x00,0xD5,0x00,0x21,0x64,0x1C, + 0x31,0x52,0x01,0x98,0x84,0x42,0xE9,0xD3,0x6D,0x1C,0x00,0x98,0x85,0x42,0xDF,0xD3, + 0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0xC8,0x02,0x00,0x20,0xF0,0x05,0x00,0x20,0xF8,0xB5,0x70,0x4F,0x00,0x26,0x78,0x7A, + 0xC0,0x07,0x2B,0xD0,0x6E,0x4C,0x20,0x89,0x00,0x28,0x0E,0xD0,0x6D,0x49,0x88,0x42, + 0x0B,0xD0,0x1E,0x21,0x48,0x43,0x64,0x21,0xFA,0xF7,0x82,0xFB,0x79,0x8A,0x46,0x18, + 0x4B,0x20,0xC0,0x00,0x86,0x42,0x00,0xD9,0x06,0x00,0x67,0x48,0x40,0x7D,0x00,0x28, + 0x14,0xD0,0xA6,0x89,0xAF,0x24,0xA4,0x00,0x31,0x1B,0x08,0x00,0x48,0x43,0xDC,0x21, + 0xFA,0xF7,0x6E,0xFB,0x31,0x00,0xFF,0x39,0xE2,0x39,0xDB,0x29,0x01,0xD8,0x26,0x1A, + 0x04,0xE0,0x5E,0x4A,0xB1,0x18,0xDB,0x29,0x00,0xD2,0x06,0x19,0x01,0x24,0x64,0x07, + 0x25,0x68,0x00,0x2D,0x7E,0xD0,0x5A,0x48,0x00,0x21,0x01,0x70,0x02,0x20,0x00,0xF0, + 0xDD,0xFF,0x58,0x48,0x0A,0x21,0x00,0x6B,0xFA,0xF7,0x52,0xFB,0x01,0x00,0x02,0x20, + 0x00,0xF0,0xC0,0xFF,0x01,0x2D,0x0B,0xD0,0x02,0x2D,0x08,0xD1,0x60,0x68,0x00,0x02, + 0x00,0x0E,0x01,0x28,0x03,0xD1,0x60,0x68,0x00,0x06,0x00,0xD1,0x00,0xE0,0x6D,0x1C, + 0x78,0x7A,0x00,0x28,0x08,0xD0,0x60,0x68,0x4B,0x49,0x81,0x43,0x04,0xD0,0x61,0x68, + 0x4A,0x48,0x88,0x43,0x00,0xD0,0x6D,0x1C,0xF8,0x79,0x00,0x28,0x04,0xD1,0x48,0x49, + 0x48,0x69,0x0A,0x15,0x10,0x43,0x48,0x61,0x46,0x48,0x01,0x68,0x46,0x48,0xC1,0x61, + 0x02,0x24,0x20,0x00,0x00,0xF0,0x9E,0xFF,0x44,0x48,0xC1,0x68,0x49,0x08,0x49,0x00, + 0xC1,0x60,0x03,0x04,0x35,0x48,0x36,0x4A,0x41,0x7A,0x3F,0x48,0x97,0x89,0x21,0xE0, + 0x42,0x69,0x52,0x06,0x0E,0xD4,0x00,0x29,0x01,0xD0,0xAC,0x42,0x04,0xD2,0xA2,0x00, + 0xD2,0x18,0x12,0x68,0xC2,0x61,0x04,0xE0,0xCA,0x07,0x01,0xD0,0xC6,0x61,0x00,0xE0, + 0xC7,0x61,0x64,0x1C,0x2E,0x4A,0x12,0x78,0x00,0x2A,0x0B,0xD0,0xFD,0xF7,0x9C,0xFB, + 0x26,0x48,0x01,0x7A,0x00,0x29,0x07,0xD0,0x00,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0, + 0x31,0xF8,0x01,0xE0,0xAC,0x42,0xDB,0xD9,0x02,0x20,0x00,0xF0,0x77,0xFF,0x24,0x4D, + 0x28,0x78,0x00,0x28,0x27,0xD1,0xFD,0xF7,0xAD,0xFA,0x00,0x28,0x23,0xD0,0x21,0x48, + 0x0A,0x21,0x00,0x6B,0xFA,0xF7,0xE4,0xFA,0x01,0x00,0x02,0x20,0x00,0xF0,0x52,0xFF, + 0x02,0x20,0x00,0xE0,0x26,0xE0,0x00,0xF0,0x55,0xFF,0x14,0x4C,0x0C,0xE0,0x28,0x78, + 0x00,0x28,0x09,0xD0,0xFD,0xF7,0x70,0xFB,0x20,0x7A,0x00,0x28,0x04,0xD0,0x20,0x6B, + 0x00,0x04,0x00,0x0C,0x01,0xF0,0x06,0xF8,0xFD,0xF7,0x8C,0xFA,0x00,0x28,0xEE,0xD1, + 0x02,0x20,0x00,0xF0,0x4B,0xFF,0x15,0x49,0xC8,0x68,0x01,0x22,0x10,0x43,0xC8,0x60, + 0x00,0xF0,0x2A,0xF8,0x05,0x48,0xC0,0x79,0x00,0x28,0x03,0xD1,0x01,0x20,0x80,0x02, + 0xFA,0xF7,0xEC,0xFD,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xF8,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xFF,0x0F,0x00,0x00,0x30,0x0A,0x00,0x20,0x43,0xFD,0xFF,0xFF, + 0xAD,0x0B,0x00,0x20,0x00,0x78,0x00,0x00,0x00,0x00,0x4E,0x1D,0x00,0x80,0x4E,0x1D, + 0x40,0x00,0x00,0x40,0x04,0x00,0x00,0x20,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x05,0x48,0x01,0x21,0x00,0xB5,0xC9,0x02, + 0x01,0x62,0x00,0x21,0x01,0x62,0xFD,0xF7,0x69,0xFD,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x40,0x18,0x70,0x47,0x40,0x18,0x80,0x18,0x70,0x47,0x10,0xB4, + 0x40,0x18,0x01,0x9C,0x80,0x18,0xC0,0x18,0x00,0x19,0x10,0xBC,0x70,0x47,0x00,0x00, + 0xF8,0xB5,0x00,0x21,0x01,0x23,0x5B,0x07,0x18,0x68,0x13,0x4A,0x90,0x72,0x90,0x7A, + 0x01,0x28,0x01,0xD1,0x01,0x21,0x0D,0xE0,0x01,0x28,0x00,0xD9,0x02,0x21,0x00,0x28, + 0x08,0xD1,0x0D,0x48,0x20,0x22,0x00,0x21,0x0C,0x30,0xFE,0xF7,0x53,0xFF,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x20,0x13,0x25,0x08,0x4C,0xAD,0x01,0x08,0xE0,0x46,0x18, + 0xB6,0x00,0xF6,0x18,0x36,0x68,0x87,0x00,0x3F,0x19,0x7F,0x19,0x40,0x1C,0xFE,0x60, + 0x96,0x7A,0x86,0x42,0xF3,0xD8,0xEA,0xE7,0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20, + 0x70,0xB5,0x1E,0x49,0x1C,0x4C,0x0D,0x00,0x20,0x78,0xA1,0x22,0xFF,0x35,0x92,0x00, + 0xBF,0x35,0x8E,0x18,0x00,0x28,0x0E,0xD0,0x5A,0x22,0x21,0x1D,0x28,0x00,0xFE,0xF7, + 0x0D,0xFF,0x17,0x49,0x09,0x22,0x30,0x00,0xFE,0xF7,0x08,0xFF,0x20,0x78,0x60,0x70, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x09,0x22,0x00,0x21,0x30,0x00,0xFE,0xF7,0x1A,0xFF, + 0x5A,0x22,0x00,0x21,0x28,0x00,0xFE,0xF7,0x15,0xFF,0x0D,0x48,0x5A,0x22,0x00,0x21, + 0x63,0x38,0xFE,0xF7,0x0F,0xFF,0x0A,0x48,0x09,0x22,0x00,0x21,0x09,0x38,0xFE,0xF7, + 0x09,0xFF,0x00,0x20,0x05,0x49,0x60,0x70,0xA0,0x70,0xCA,0x88,0x23,0x23,0x9A,0x43, + 0xCA,0x80,0x04,0x49,0x88,0x75,0xDB,0xE7,0x50,0x07,0x00,0x20,0xF0,0x05,0x00,0x20, + 0x6B,0x08,0x00,0x20,0x30,0x0A,0x00,0x20,0xF3,0xB5,0x93,0x48,0x91,0xB0,0x40,0x7E, + 0x02,0x90,0x92,0x48,0x00,0x78,0x00,0x28,0x91,0x48,0x18,0xD0,0x0B,0x21,0x89,0x01, + 0x40,0x18,0x01,0x8A,0x8F,0x4A,0x1A,0x26,0x07,0x91,0x41,0x8A,0x1C,0x27,0x06,0x91, + 0x81,0x8A,0x05,0x91,0x1E,0x21,0x41,0x5E,0x04,0x91,0x00,0x21,0x51,0x5E,0x03,0x91, + 0x16,0x21,0x18,0x22,0x86,0x5F,0xC7,0x5F,0x41,0x5E,0x82,0x5E,0x16,0xE0,0x60,0x30, + 0xC1,0x8A,0x04,0x22,0x00,0x26,0x07,0x91,0x01,0x8B,0x02,0x27,0x06,0x91,0x41,0x8B, + 0x05,0x91,0x7D,0x49,0x20,0x39,0x8A,0x5E,0x04,0x92,0x06,0x22,0x8A,0x5E,0x03,0x92, + 0x8E,0x5F,0xCF,0x5F,0x1C,0x21,0x1E,0x22,0x41,0x5E,0x82,0x5E,0x11,0x98,0x78,0x4C, + 0x00,0x68,0x41,0x18,0x11,0x98,0x01,0x60,0x12,0x98,0x00,0x68,0x81,0x18,0x12,0x98, + 0x01,0x60,0x60,0x8C,0x00,0x21,0x40,0x1E,0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0, + 0x20,0x8C,0x0A,0x00,0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0, + 0x0B,0xFF,0x20,0x8C,0x64,0x21,0x0A,0x90,0x60,0x8C,0x09,0x90,0x0A,0x98,0x44,0x08, + 0x09,0x98,0x45,0x08,0x06,0x98,0x64,0x38,0x00,0x28,0x01,0xDC,0x06,0x98,0x08,0x1A, + 0x0F,0x90,0x05,0x98,0x64,0x38,0x00,0x28,0x01,0xDC,0x05,0x98,0x08,0x1A,0x0E,0x90, + 0x61,0x48,0x01,0x78,0x61,0x48,0x00,0x78,0x08,0x90,0x61,0x48,0x80,0x7E,0xC2,0x07, + 0x0A,0xD0,0x80,0x07,0x03,0xD5,0x49,0x1E,0x09,0x06,0x09,0x0E,0x04,0xE0,0x08,0x98, + 0x40,0x1E,0x00,0x06,0x00,0x0E,0x08,0x90,0x20,0x00,0xFA,0xF7,0xA7,0xF8,0x0A,0x99, + 0x08,0x1A,0x40,0x1E,0x0C,0x90,0x08,0x99,0x28,0x00,0xFA,0xF7,0x9F,0xF8,0x09,0x99, + 0x08,0x1A,0x40,0x1E,0x31,0x1E,0x0B,0x90,0x00,0xDD,0xA1,0x1B,0x00,0x2F,0x0D,0x97, + 0x01,0xDD,0xE8,0x1B,0x0D,0x90,0x11,0x98,0x00,0x68,0xA0,0x42,0x10,0x90,0x01,0xDB, + 0x00,0x1B,0x01,0xE0,0x00,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x22, + 0x06,0x00,0x56,0x43,0x37,0x00,0x88,0x42,0x0D,0xDD,0x42,0x1A,0x0F,0x98,0x50,0x43, + 0x86,0x19,0x10,0x00,0x50,0x43,0x0F,0x9A,0x50,0x43,0x0C,0x9A,0x12,0x1B,0x51,0x1A, + 0xFA,0xF7,0x74,0xF8,0xC7,0x19,0x04,0x98,0x00,0x28,0x01,0xD1,0x30,0x00,0x05,0xE0, + 0x01,0x28,0x01,0xD1,0x38,0x00,0x01,0xE0,0x70,0x00,0xC0,0x1B,0x64,0x21,0xFA,0xF7, + 0x65,0xF8,0x07,0x99,0xC9,0x07,0x0A,0xD0,0x10,0x99,0xA1,0x42,0x03,0xDB,0x21,0x18, + 0x11,0x98,0x01,0x60,0x03,0xE0,0x11,0x99,0x20,0x1A,0x40,0x1E,0x08,0x60,0x12,0x98, + 0x07,0x68,0xAF,0x42,0x01,0xDB,0x78,0x1B,0x01,0xE0,0x78,0x1B,0x40,0x1C,0x00,0x28, + 0x00,0xDC,0x40,0x42,0x64,0x21,0x04,0x00,0x4C,0x43,0x0D,0x99,0x26,0x00,0x88,0x42, + 0x0E,0xDD,0x41,0x1A,0x0E,0x98,0x0D,0x9A,0x48,0x43,0x04,0x19,0x08,0x00,0x48,0x43, + 0x0E,0x99,0x48,0x43,0x0B,0x99,0x49,0x1B,0x89,0x1A,0xFA,0xF7,0x37,0xF8,0x86,0x19, + 0x03,0x98,0x00,0x28,0x01,0xD1,0x20,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x30,0x00, + 0x01,0xE0,0x60,0x00,0x80,0x1B,0x64,0x21,0xFA,0xF7,0x28,0xF8,0x07,0x99,0x89,0x07, + 0x09,0xD5,0xAF,0x42,0x03,0xDB,0x29,0x18,0x12,0x98,0x01,0x60,0x03,0xE0,0x12,0x99, + 0x28,0x1A,0x40,0x1E,0x08,0x60,0x0E,0x48,0x02,0x99,0x42,0x8C,0x6B,0x46,0x51,0x1A, + 0x49,0x1E,0x0A,0x04,0x02,0x99,0x12,0x0C,0x06,0xC3,0x01,0x8C,0x02,0x98,0x02,0x9A, + 0x08,0x1A,0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0,0x3C,0xFE, + 0x13,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x78,0x00,0x00,0x04,0x0B,0x00,0x20, + 0x00,0x78,0x00,0x00,0xE0,0x7A,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x30,0x0A,0x00,0x20,0xFE,0xB5,0x66,0x4D,0x64,0x48,0x00,0x26,0x29,0x00,0xFF,0x31, + 0x00,0x96,0x42,0x78,0x61,0x31,0x08,0x78,0x00,0x2A,0x28,0xD1,0x00,0x28,0x26,0xD0, + 0x01,0x24,0x0A,0x20,0x60,0x43,0x47,0x19,0x38,0x00,0xFF,0x30,0x6B,0x30,0xFD,0xF7, + 0xCF,0xFA,0x00,0x28,0x17,0xD0,0x5B,0x48,0x81,0x7B,0x00,0x98,0x40,0x1C,0x81,0x42, + 0x14,0xD3,0xA9,0x19,0x13,0x22,0x00,0x90,0xFF,0x20,0x92,0x01,0x65,0x30,0x89,0x18, + 0xC0,0x5D,0x3A,0x00,0xFF,0x32,0x48,0x70,0x76,0x1C,0x65,0x32,0x03,0x20,0x01,0x23, + 0x69,0x46,0x00,0xF0,0x3D,0xFA,0x64,0x1C,0x09,0x2C,0xDA,0xDB,0x8F,0xE0,0x49,0x78, + 0x00,0x29,0x01,0xD1,0x00,0x28,0xF9,0xD0,0x15,0x20,0x40,0x01,0x00,0x24,0x2E,0x18, + 0x13,0x27,0xBF,0x01,0x28,0x19,0xC0,0x19,0x40,0x78,0x00,0x28,0x3F,0xD0,0x13,0x21, + 0x28,0x18,0x49,0x01,0x41,0x18,0xC9,0x7E,0x00,0x29,0x02,0xD0,0x32,0x7B,0x00,0x2A, + 0x14,0xD0,0x05,0x21,0xC9,0x01,0x40,0x18,0x00,0x99,0x00,0x79,0x49,0x1C,0x00,0x91, + 0x0A,0x21,0x48,0x43,0x42,0x19,0xFF,0x32,0xBF,0x32,0x02,0x20,0x03,0x23,0x69,0x46, + 0x00,0xF0,0x0E,0xFA,0x20,0x00,0x14,0x2C,0x1E,0xD0,0x1A,0xE0,0x0A,0x20,0x41,0x43, + 0x48,0x19,0x02,0x90,0xFF,0x30,0x6B,0x30,0xFD,0xF7,0x7A,0xFA,0x00,0x28,0x13,0xD0, + 0x00,0x98,0x02,0x9A,0x40,0x1C,0xFF,0x32,0x00,0x90,0x65,0x32,0x03,0x20,0x02,0x23, + 0x69,0x46,0x00,0xF0,0xF5,0xF9,0x07,0xE0,0x29,0x18,0xC9,0x19,0x8A,0x78,0x40,0x1C, + 0x4A,0x70,0x08,0x28,0xF8,0xDB,0x64,0x1E,0x64,0x1C,0x08,0x2C,0xBA,0xDB,0x01,0x24, + 0x23,0x49,0x13,0x22,0x08,0x19,0x52,0x01,0x80,0x18,0xC0,0x7E,0x00,0x22,0x01,0x92, + 0x00,0x28,0x31,0xD0,0x32,0x7B,0x00,0x2A,0x2E,0xD1,0x0A,0x22,0x50,0x43,0x45,0x18, + 0x28,0x00,0xFF,0x30,0x6B,0x30,0xFD,0xF7,0x4B,0xFA,0x00,0x28,0x24,0xD0,0x19,0x48, + 0x00,0x9B,0x80,0x7B,0x5B,0x1C,0x98,0x42,0x21,0xD3,0x15,0x4A,0x00,0x20,0x11,0x18, + 0xC9,0x19,0x49,0x78,0xA1,0x42,0x0B,0xD0,0x00,0x29,0x06,0xD1,0xFF,0x21,0x65,0x31, + 0x49,0x5D,0x10,0x18,0xC0,0x19,0x41,0x70,0x05,0xE0,0x40,0x1C,0x08,0x28,0xEE,0xDB, + 0x01,0x98,0x00,0x28,0x08,0xD0,0x2A,0x00,0xFF,0x32,0x00,0x93,0x65,0x32,0x03,0x20, + 0x01,0x23,0x69,0x46,0x00,0xF0,0xAC,0xF9,0x64,0x1C,0x09,0x2C,0xC0,0xDB,0x00,0x98, + 0x00,0xF0,0x98,0xFC,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xB0,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00,0xFF,0xB5,0x00,0x20,0x84,0x46,0x52,0x48, + 0x36,0x26,0x86,0x5F,0x51,0x48,0x00,0x90,0x51,0x48,0xC4,0x78,0x03,0x94,0x07,0x79, + 0x4D,0x48,0x80,0x30,0x82,0x7D,0x86,0x46,0x4E,0x48,0x81,0x7E,0xC8,0x07,0x08,0xD0, + 0x88,0x07,0x03,0xD5,0x64,0x1E,0x24,0x06,0x24,0x0E,0x02,0xE0,0x7F,0x1E,0x3F,0x06, + 0x3F,0x0E,0x00,0x21,0x27,0xE0,0x00,0x20,0x22,0xE0,0x91,0x42,0x05,0xD2,0x90,0x42, + 0x1D,0xD3,0xA5,0x1A,0x6D,0x1E,0x85,0x42,0x19,0xD3,0xBD,0x1A,0x6D,0x1E,0x8D,0x42, + 0x01,0xD2,0x90,0x42,0x13,0xD3,0x8D,0x42,0x03,0xD2,0xA5,0x1A,0x6D,0x1E,0x85,0x42, + 0x0D,0xD3,0x03,0x9B,0x00,0x9D,0x4B,0x43,0x1B,0x18,0x9B,0x00,0xEB,0x58,0x1B,0x01, + 0x1B,0x0D,0x63,0x45,0x00,0xDD,0x9C,0x46,0xB3,0x42,0x00,0xDA,0x1E,0x00,0x40,0x1C, + 0xA0,0x42,0xDA,0xD3,0x49,0x1C,0xB9,0x42,0xD5,0xD3,0x70,0x46,0xC0,0x8B,0x2E,0x4C, + 0xC0,0x18,0x02,0x04,0xA0,0x34,0xE0,0x88,0x12,0x14,0x18,0x1A,0x03,0x04,0x2E,0x48, + 0x1B,0x14,0xC0,0x88,0x40,0x06,0x07,0xD5,0x70,0x46,0x80,0x8A,0x81,0x18,0x0A,0x04, + 0x18,0x1A,0x12,0x14,0x03,0x04,0x1B,0x14,0x26,0x48,0x80,0x30,0xC1,0x6A,0x94,0x45, + 0x05,0xDD,0x72,0x46,0x52,0x8B,0x91,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29, + 0x01,0xDD,0x49,0x1E,0xC1,0x62,0x1F,0x49,0x80,0x31,0x09,0x6B,0x9E,0x42,0x04,0xDA, + 0x62,0x88,0x91,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E, + 0x01,0x63,0x73,0x46,0x9B,0x8B,0xC5,0x6A,0x01,0x22,0x11,0x00,0x9D,0x42,0x00,0xDC, + 0x00,0x21,0xA3,0x88,0x00,0x6B,0x98,0x42,0x00,0xDC,0x00,0x22,0x00,0x20,0x6B,0x46, + 0x18,0x71,0x59,0x71,0x00,0x29,0x9A,0x71,0x02,0xD0,0x00,0x2A,0x00,0xD0,0x01,0x20, + 0x6B,0x46,0x11,0x43,0xD8,0x71,0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x6B,0x46, + 0x18,0x72,0x70,0x46,0x00,0x7B,0x01,0xA9,0x08,0x5C,0x00,0x28,0x00,0xD0,0x80,0x20, + 0x04,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0x00,0x02,0x10,0x40, + 0xF8,0x0A,0x00,0x20,0x30,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0xF8,0xB5,0x22,0x48, + 0x22,0x4C,0xC0,0x88,0x01,0x23,0x22,0x4D,0x41,0x06,0x09,0x20,0x80,0x01,0x21,0x4F, + 0x21,0x4E,0x5B,0x05,0x20,0x18,0x00,0x29,0x0E,0xDA,0x81,0x69,0x69,0x61,0xC1,0x69, + 0xA9,0x61,0x41,0x6A,0x99,0x43,0xE9,0x61,0x81,0x6A,0x29,0x62,0x01,0x6A,0xE9,0x60, + 0x80,0x6B,0x28,0x61,0xE0,0x6A,0x0E,0xE0,0x18,0x49,0x4A,0x69,0x6A,0x61,0x8A,0x69, + 0xAA,0x61,0x0A,0x6A,0x9A,0x43,0xEA,0x61,0x4A,0x6A,0x2A,0x62,0xC9,0x69,0xE9,0x60, + 0x40,0x6B,0x28,0x61,0xA0,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x39,0x00,0xF9,0xF7, + 0x17,0xFF,0xB0,0x62,0x30,0x7B,0x00,0x28,0x03,0xD0,0x0D,0x48,0xE8,0x60,0x0D,0x48, + 0x28,0x61,0x60,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x39,0x00,0xF9,0xF7,0x08,0xFF, + 0x70,0x62,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00, + 0xC0,0x90,0x00,0x40,0x10,0x27,0x00,0x00,0xF8,0x0A,0x00,0x20,0x80,0x79,0x00,0x00, + 0x81,0x11,0x01,0x00,0x10,0x00,0x10,0x00,0x0E,0x48,0x0F,0x4A,0x43,0x78,0x0F,0x49, + 0xD0,0x1D,0xC9,0x88,0xFF,0x32,0xF9,0x30,0xC1,0x32,0x02,0x2B,0x04,0xD9,0x12,0x6A, + 0x49,0x06,0x0C,0xD4,0xC2,0x69,0x0A,0xE0,0x02,0x2B,0x04,0xD1,0xD2,0x69,0x49,0x06, + 0x05,0xD4,0x82,0x69,0x03,0xE0,0x92,0x69,0x49,0x06,0x00,0xD4,0x42,0x69,0x04,0x48, + 0x42,0x62,0x70,0x47,0x50,0x07,0x00,0x20,0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20, + 0xC0,0x90,0x00,0x40,0x0E,0x48,0x10,0xB4,0xC0,0x88,0x0F,0x4A,0x0F,0x49,0x44,0x06, + 0x0C,0x48,0x0F,0x4B,0x07,0xD5,0x0F,0x4C,0x04,0x61,0x42,0x61,0x81,0x61,0xC3,0x61, + 0x01,0x62,0x0D,0x4A,0x06,0xE0,0x0D,0x4C,0x04,0x61,0x42,0x61,0x81,0x61,0xC3,0x61, + 0x01,0x62,0x0B,0x4A,0x42,0x62,0x81,0x62,0xC3,0x62,0x10,0xBC,0x70,0x47,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x40,0xA1,0x00,0x40,0x5A,0x00,0x01,0x00,0x00,0x80,0x00,0x00, + 0x32,0x40,0x00,0x00,0x00,0x00,0x01,0x03,0x5A,0xC0,0x00,0x00,0x00,0x80,0x00,0x03, + 0x5A,0xD0,0x00,0x00,0x70,0xB5,0x01,0x25,0x6D,0x03,0x28,0x00,0xFA,0xF7,0xD6,0xF9, + 0x16,0x48,0x04,0x68,0x28,0x00,0xFA,0xF7,0xC9,0xF9,0x15,0x4D,0xE2,0x06,0xD2,0x0E, + 0xE0,0x04,0x14,0x49,0xC0,0x0E,0x2A,0x71,0xE8,0x70,0x0B,0x7D,0x12,0x48,0x83,0x76, + 0x4B,0x7D,0xC3,0x76,0x83,0x7E,0x11,0x48,0xDC,0x07,0x0A,0xD0,0x9B,0x07,0x04,0xD5, + 0xEA,0x78,0x52,0x1E,0x02,0x72,0x00,0x22,0x02,0xE0,0x52,0x1E,0x02,0x72,0x01,0x22, + 0x6A,0x71,0x8A,0x7D,0x42,0x72,0xCA,0x7D,0x82,0x72,0x0A,0x7E,0xC2,0x72,0x4A,0x7E, + 0x02,0x73,0x89,0x7E,0x41,0x73,0x70,0xBC,0x08,0xBC,0x18,0x47,0x40,0x90,0x00,0x40, + 0xF8,0x0A,0x00,0x20,0x00,0x78,0x00,0x00,0x30,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20, + 0xF8,0xB5,0x05,0x00,0x0E,0x00,0x14,0x00,0x19,0x00,0x10,0x00,0xFA,0xF7,0x92,0xFE, + 0x00,0x28,0x05,0xD0,0x30,0x68,0x40,0x1E,0x30,0x60,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x2D,0x48,0x80,0x7E,0xC0,0x07,0x26,0xD0,0xE0,0x79,0x05,0x28,0x21,0xD0,0x09,0x28, + 0x21,0xD1,0x2A,0x49,0x6D,0x08,0x6D,0x00,0x23,0x78,0x01,0x20,0x8C,0x46,0x13,0xE0, + 0x0A,0x22,0x01,0x00,0x51,0x43,0x26,0x4A,0x89,0x18,0x0A,0x00,0xFF,0x32,0xA1,0x32, + 0x97,0x7F,0xBB,0x42,0x07,0xD1,0xFF,0x31,0xC1,0x31,0x0F,0x88,0x67,0x80,0xD2,0x7F, + 0x62,0x70,0x49,0x88,0xA1,0x80,0x40,0x1C,0x61,0x46,0x49,0x78,0x81,0x42,0xE7,0xDA, + 0x01,0xE0,0x01,0x20,0x05,0x43,0x0F,0x20,0xA9,0x07,0x80,0x06,0x81,0x43,0x20,0x78, + 0x3F,0x22,0x92,0x02,0x00,0x07,0x80,0x08,0x01,0x43,0x16,0x48,0x01,0x40,0x60,0x88, + 0x80,0x05,0x80,0x09,0x01,0x43,0x60,0x78,0x91,0x43,0x80,0x06,0x00,0x0C,0x01,0x43, + 0x08,0x04,0x80,0x0E,0x0A,0x28,0x09,0xD2,0x40,0x1C,0x0A,0x23,0x58,0x43,0x3F,0x28, + 0x00,0xDD,0x3F,0x20,0x80,0x06,0x91,0x43,0x00,0x0C,0x01,0x43,0x88,0x0A,0xA1,0x88, + 0x80,0x02,0x01,0x22,0x89,0x05,0x89,0x0D,0x08,0x43,0x31,0x68,0x52,0x07,0x89,0x00, + 0x89,0x18,0x48,0x60,0xA1,0xE7,0x00,0x00,0x30,0x0A,0x00,0x20,0x50,0x07,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xFF,0xFF,0x00,0xFC,0x0E,0x49,0x10,0xB4,0x48,0x7B,0x00,0x28, + 0x10,0xD0,0x00,0x09,0x00,0x01,0x00,0x23,0x01,0x22,0x40,0x28,0x0C,0xD0,0x80,0x28, + 0x08,0xD1,0x4A,0x72,0x8A,0x72,0x08,0x48,0xCA,0x72,0xCA,0x71,0x00,0x78,0x00,0x28, + 0x06,0xD1,0x0B,0x73,0x10,0xBC,0x70,0x47,0x8B,0x71,0xCA,0x71,0x0B,0x72,0xF9,0xE7, + 0x0A,0x73,0xF7,0xE7,0xF8,0x0A,0x00,0x20,0xA0,0x7A,0x00,0x00,0xF8,0xB5,0x06,0x9F, + 0x07,0x9D,0x0C,0x00,0x1E,0x00,0x88,0x42,0x09,0xD3,0x21,0x00,0x10,0x00,0xF9,0xF7, + 0xE5,0xFC,0x38,0x80,0x21,0x00,0x30,0x00,0xF9,0xF7,0xE0,0xFC,0x28,0x80,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0xF8,0xB5,0x08,0xAD,0x60,0xCD,0x04,0x00,0x06,0x98,0x91,0x42, + 0x04,0xDA,0x65,0x80,0xA6,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x99,0x42,0x02,0xDB, + 0x60,0x80,0x07,0x98,0x0F,0xE0,0x8F,0x1A,0x40,0x1B,0x78,0x43,0x99,0x1A,0x00,0x91, + 0xF9,0xF7,0xC4,0xFC,0x40,0x19,0x60,0x80,0x07,0x98,0x00,0x99,0x80,0x1B,0x78,0x43, + 0xF9,0xF7,0xBC,0xFC,0x80,0x19,0xA0,0x80,0xE5,0xE7,0x00,0x00,0xF0,0xB4,0x8C,0x79, + 0x00,0x25,0x22,0x07,0x93,0x08,0xCA,0x79,0x52,0x07,0x0B,0xD5,0x10,0x4E,0xB2,0x89, + 0x00,0x2A,0x07,0xD0,0x9B,0x0A,0x97,0x05,0x9B,0x02,0xBF,0x0D,0x3B,0x43,0x64,0x00, + 0xA4,0x19,0xE2,0x81,0x3F,0x22,0x92,0x02,0x93,0x43,0xCA,0x79,0x80,0x00,0x92,0x06, + 0x12,0x0C,0x13,0x43,0x01,0x22,0x52,0x07,0x80,0x18,0x43,0x60,0xC8,0x79,0xC0,0x06, + 0x80,0x0F,0x03,0xD0,0x03,0x48,0x01,0x21,0xC1,0x75,0x05,0x76,0xF0,0xBC,0x70,0x47, + 0xF0,0x05,0x00,0x20,0x30,0x0A,0x00,0x20,0x30,0xB4,0x0E,0x4D,0x0C,0x4C,0x2D,0x78, + 0x68,0x43,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x00,0x0A,0x09,0x0E,0x82,0x18, + 0xC9,0x18,0x00,0x20,0x4B,0x1E,0xC0,0x43,0xFF,0x2B,0x06,0xD2,0x53,0x1E,0xFF,0x2B, + 0x03,0xD2,0x10,0x02,0x08,0x43,0x60,0x53,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0x10,0xB4,0x05,0x4C,0x03,0x4B,0x24,0x78, + 0x60,0x43,0x40,0x18,0x40,0x00,0x1A,0x52,0x10,0xBC,0x70,0x47,0x00,0x00,0x10,0x40, + 0xFB,0x0A,0x00,0x20,0x30,0xB4,0x0E,0x4B,0x0C,0x4C,0x1B,0x78,0x58,0x43,0x40,0x18, + 0x43,0x00,0xE0,0x5A,0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18,0x00,0x20, + 0x4D,0x1E,0xC0,0x43,0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2,0x10,0x02, + 0x08,0x43,0xE0,0x52,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0xFB,0x0A,0x00,0x20,0xF0,0xB4,0x15,0x4A,0x15,0x4B,0x52,0x7D,0x13,0x4F,0x00,0x21, + 0x16,0x02,0x16,0x43,0x1A,0x78,0x10,0x4D,0x42,0x43,0x20,0x3F,0x12,0xE0,0xBB,0x7D, + 0x8B,0x42,0x0D,0xD0,0xFB,0x7D,0x8B,0x42,0x0A,0xD0,0x3B,0x7E,0x8B,0x42,0x07,0xD0, + 0x7B,0x7E,0x8B,0x42,0x04,0xD0,0xBB,0x7E,0x8B,0x42,0x01,0xD0,0x53,0x00,0xEE,0x52, + 0x52,0x1C,0x49,0x1C,0x06,0x4B,0x04,0x00,0x1B,0x78,0x5C,0x43,0xE3,0x18,0x93,0x42, + 0xE5,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x20,0x78,0x00,0x00, + 0xFB,0x0A,0x00,0x20,0xF0,0xB4,0x14,0x4A,0x13,0x4B,0x52,0x7D,0x00,0x21,0x11,0x4C, + 0x15,0x02,0x15,0x43,0x11,0x4E,0x20,0x3B,0x13,0xE0,0x9A,0x7D,0x8A,0x42,0x0D,0xD0, + 0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E,0x8A,0x42,0x07,0xD0,0x5A,0x7E,0x8A,0x42, + 0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00,0xA5,0x52,0x32,0x78,0x80,0x18, + 0x49,0x1C,0x07,0x4A,0x37,0x78,0x12,0x78,0x7A,0x43,0x82,0x42,0xE5,0xD8,0xF0,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0x02,0x04,0x04,0x49,0x02,0x43,0x00,0x20,0x40,0x1C,0x04,0xC1, + 0x80,0x28,0xFB,0xD3,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0xF8,0xB5,0x03,0x00, + 0x1E,0x49,0x05,0x20,0xC0,0x01,0x0A,0x18,0x0B,0x20,0x80,0x01,0x0D,0x18,0xC0,0x31, + 0x08,0x6A,0x19,0x4C,0x00,0x90,0x4F,0x6A,0x0E,0x69,0x28,0x68,0x00,0xF0,0x0C,0xFA, + 0x06,0x04,0x0A,0x12,0x15,0x1F,0x26,0x1C,0xC8,0x68,0x20,0x62,0x50,0x6B,0x60,0x62, + 0x02,0x20,0x04,0xE0,0xC8,0x69,0x20,0x62,0x68,0x68,0x60,0x62,0x04,0x20,0xE0,0x62, + 0x00,0x98,0x11,0xE0,0x26,0x62,0x90,0x6B,0x02,0xE0,0x48,0x69,0x20,0x62,0xD0,0x6B, + 0x60,0x62,0x04,0x20,0xE0,0x62,0x67,0x63,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x26,0x62, + 0x60,0x62,0x04,0x20,0xE0,0x62,0x88,0x6A,0x60,0x63,0xF5,0xE7,0x89,0x69,0x21,0x62, + 0x60,0x62,0x05,0x20,0xE0,0x62,0xEF,0xE7,0x80,0x90,0x00,0x40,0x00,0x78,0x00,0x00, + 0x07,0x4A,0x10,0xB5,0xD1,0x88,0x40,0x23,0x00,0x28,0x01,0xD0,0x19,0x43,0x00,0xE0, + 0x99,0x43,0xD1,0x80,0xFF,0xF7,0x12,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xFE,0xB5,0x41,0x4C,0x05,0x00,0x27,0x6A,0x0E,0x00,0x60,0x6A, + 0x02,0x90,0x60,0x6B,0x01,0x90,0xE0,0x6A,0x00,0x90,0x00,0x20,0xFF,0xF7,0x9E,0xFF, + 0x3B,0x48,0x20,0x62,0x23,0x20,0x60,0x62,0x07,0x20,0x40,0x02,0x60,0x63,0x02,0x20, + 0xE0,0x62,0x00,0x20,0xFB,0xF7,0xB6,0xFB,0x36,0x48,0x00,0x7A,0x00,0x28,0x01,0xD0, + 0xFE,0xF7,0x36,0xF9,0xFB,0xF7,0xFA,0xFB,0x2C,0x00,0x46,0xE0,0x68,0x1E,0x84,0x42, + 0x01,0xD1,0xFB,0xF7,0x1D,0xFC,0xFB,0xF7,0xBF,0xFB,0xFB,0xF7,0x6D,0xFC,0x00,0x2E, + 0x2E,0xD1,0xA8,0x00,0x05,0x21,0xF9,0xF7,0x23,0xFC,0xA0,0x42,0x03,0xD8,0x01,0x22, + 0x11,0x00,0x04,0x20,0x21,0xE0,0x68,0x00,0x28,0x18,0x05,0x21,0xF9,0xF7,0x18,0xFC, + 0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x03,0x20,0x16,0xE0,0x68,0x00,0x05,0x21, + 0xF9,0xF7,0x0E,0xFC,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x02,0x20,0x0C,0xE0, + 0x05,0x21,0x28,0x00,0xF9,0xF7,0x04,0xFC,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00, + 0x10,0x00,0x02,0xE0,0x01,0x22,0x11,0x00,0x00,0x20,0xFB,0xF7,0xA5,0xF9,0x0C,0xE0, + 0x68,0x00,0x03,0x21,0xF9,0xF7,0xF4,0xFB,0xA0,0x42,0xDB,0xD9,0x03,0x21,0x28,0x00, + 0xF9,0xF7,0xEE,0xFB,0xA0,0x42,0xE9,0xD8,0xDE,0xE7,0x64,0x1E,0xB6,0xD2,0x0E,0x48, + 0x44,0x88,0x03,0xE0,0xFB,0xF7,0x78,0xFB,0xFB,0xF7,0x26,0xFC,0x64,0x1E,0xF9,0xD2, + 0xFB,0xF7,0x9C,0xFB,0x05,0x48,0x07,0x62,0x02,0x99,0x41,0x62,0x01,0x99,0x41,0x63, + 0x00,0x99,0xC1,0x62,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x80,0x90,0x00,0x40, + 0x02,0x03,0x00,0x00,0x80,0x78,0x00,0x00,0xE0,0x7A,0x00,0x00,0x30,0xB4,0x0D,0x4D, + 0xEC,0x7B,0x00,0x2C,0x13,0xD0,0x02,0x68,0x0B,0x68,0xA4,0x07,0x03,0xD5,0x2C,0x8C, + 0xA2,0x1A,0x52,0x1E,0x02,0x60,0xEC,0x7B,0x64,0x07,0x03,0xD5,0x6C,0x8C,0xE3,0x1A, + 0x5B,0x1E,0x0B,0x60,0xEC,0x7B,0xE4,0x07,0x01,0xD0,0x03,0x60,0x0A,0x60,0x30,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x78,0x00,0x00,0x02,0x49,0x00,0x03,0x40,0x18,0xC0,0x68, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47, + 0xAD,0x0B,0x00,0x20,0x30,0xB4,0x05,0x03,0x05,0x48,0x02,0x9C,0x28,0x18,0x02,0x60, + 0x41,0x60,0x00,0x2B,0x00,0xD0,0x03,0x61,0x84,0x60,0x30,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x20,0x00,0x40,0x02,0x4A,0x00,0x03,0x80,0x18,0x01,0x60,0x70,0x47,0x00,0x00, + 0x00,0x20,0x00,0x40,0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32, + 0x11,0x43,0x81,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x03,0x04,0x48, + 0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x91,0x43,0x81,0x60,0x70,0x47,0x00,0x00, + 0x00,0x20,0x00,0x40,0x0F,0x49,0x89,0x7B,0x81,0x42,0x00,0xD2,0x08,0x00,0x01,0x22, + 0x52,0x07,0x01,0x28,0x0C,0xD1,0x91,0x68,0x8B,0x0F,0xDB,0x07,0x04,0xD0,0x89,0x00, + 0x89,0x08,0x83,0x07,0xC9,0x18,0x01,0xE0,0x89,0x00,0x89,0x08,0x51,0x60,0x07,0xE0, + 0x01,0x28,0x05,0xD9,0x01,0x21,0xC9,0x07,0x83,0x05,0x9B,0x0D,0x19,0x43,0xF5,0xE7, + 0x10,0x60,0x70,0x47,0x00,0x78,0x00,0x00,0xF8,0xB5,0x17,0x4B,0x00,0x24,0x98,0x7A, + 0x00,0x28,0x25,0xD0,0x00,0x20,0x13,0x26,0x14,0x4D,0xB6,0x01,0x12,0xE0,0x81,0x00, + 0x49,0x19,0x89,0x19,0xCA,0x68,0x97,0x0F,0xFF,0x07,0x0A,0xD0,0x92,0x00,0x01,0x27, + 0x92,0x08,0xFF,0x07,0xD2,0x19,0x64,0x1C,0xCA,0x60,0xA1,0x00,0xBF,0x08,0xC9,0x19, + 0x4A,0x60,0x40,0x1C,0x99,0x7A,0x81,0x42,0xE9,0xDC,0x07,0x48,0x09,0x22,0x00,0x21, + 0x40,0x1C,0xFE,0xF7,0x17,0xF8,0x20,0x00,0xFF,0xF7,0xB4,0xFF,0xFC,0xF7,0xC2,0xFB, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20, + 0x08,0x48,0x10,0xB5,0x04,0x04,0x24,0x0C,0x07,0x49,0x00,0x22,0x20,0x00,0xF9,0xF7, + 0x27,0xFB,0x05,0x4A,0x05,0x49,0x20,0x00,0x00,0x23,0xF9,0xF7,0x29,0xFB,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0x00,0x03,0x00,0x00,0xC8,0x02,0x00,0x20, + 0x70,0xB5,0x05,0x00,0x08,0x48,0x00,0x22,0x04,0x04,0x24,0x0C,0x40,0x21,0x20,0x00, + 0xF9,0xF7,0x0E,0xFB,0x40,0x22,0x29,0x00,0x20,0x00,0x00,0x23,0xF9,0xF7,0x10,0xFB, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x75,0x00,0x00,0x02,0x4B,0x58,0x60, + 0x99,0x60,0x1A,0x60,0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40,0x01,0x04,0x00,0xB5, + 0x03,0x48,0x02,0x22,0x09,0x0C,0xFF,0xF7,0xF1,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xE1,0x04,0x00,0x00,0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x30,0x00,0x40,0x02,0x48,0x01,0x68,0x49,0x08,0x49,0x00,0x01,0x60,0x70,0x47, + 0x00,0x30,0x00,0x40,0x02,0x49,0x02,0x22,0x0A,0x61,0x88,0x60,0x70,0x47,0x00,0x00, + 0x00,0x30,0x00,0x40,0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47,0xAC,0x0B,0x00,0x20, + 0x00,0x04,0x00,0x0C,0x01,0x21,0x89,0x07,0x08,0x61,0x70,0x47,0x01,0x20,0x80,0x07, + 0x81,0x68,0x82,0x15,0x11,0x43,0x81,0x60,0x70,0x47,0x01,0x21,0x89,0x07,0x88,0x68, + 0x8A,0x15,0x90,0x43,0x88,0x60,0x70,0x47,0x70,0xB4,0x03,0xAC,0x30,0xCC,0x06,0x68, + 0x96,0x42,0x01,0xDB,0x32,0x00,0x00,0xE0,0x02,0x60,0x9A,0x42,0x00,0xDD,0x03,0x60, + 0x08,0x68,0xA0,0x42,0x00,0xDA,0x0C,0x60,0x08,0x68,0xA8,0x42,0x00,0xDD,0x0D,0x60, + 0x70,0xBC,0x70,0x47,0x00,0x47,0x00,0x00,0x78,0x47,0xC0,0x46,0x01,0xC0,0x5E,0xE5, + 0x0C,0x00,0x53,0xE1,0x03,0x30,0xDE,0x37,0x0C,0x30,0xDE,0x27,0x83,0xC0,0x8E,0xE0, + 0x1C,0xFF,0x2F,0xE1,0x10,0xB5,0xF9,0xF7,0xA3,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x01,0x00,0x00,0x00,0x01,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00, + 0x89,0x08,0x49,0x1E,0xC9,0x04,0x01,0x22,0xC9,0x08,0xD2,0x07,0x89,0x18,0x40,0x04, + 0x40,0x0C,0x01,0x43,0x03,0x48,0x41,0x61,0x41,0x69,0x00,0x29,0xFC,0xDB,0x80,0x6B, + 0x70,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0B,0x30,0x0B,0x30,0x01,0x04,0x03,0x00,0x01,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,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,0xFF,0x00,0x00,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xC0,0x0F,0x00,0x7F,0xC0,0x0F,0x01,0x7F,0xC1,0x0F,0x02,0x3F,0xC3,0x0F,0x03, + 0xBF,0xC3,0x0F,0x04,0x9F,0xC3,0x0F,0x05,0xDF,0x83,0x0F,0x06,0xCF,0x83,0x0F,0x07, + 0xEF,0x03,0x0F,0x08,0xE7,0x43,0x0F,0x09,0xF7,0x43,0x0E,0x0A,0xF3,0xC3,0x0E,0x0B, + 0xFB,0xC3,0x0C,0x4C,0xF9,0xC3,0x0D,0x0D,0xFD,0xC3,0x09,0x0E,0xFC,0xC3,0x0B,0x0F, + 0xFE,0xC3,0x03,0x10,0xFE,0xC3,0x07,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x13, + 0x00,0x02,0xA0,0x0A,0x00,0x0C,0x90,0x0C,0x00,0x03,0xB0,0x0E,0x00,0x18,0x80,0x10, + 0x80,0x01,0xC0,0x12,0x00,0x30,0x70,0x1C,0xC0,0x00,0xD0,0x1E,0x00,0x60,0x60,0x20, + 0x60,0x00,0xE0,0x22,0x00,0xC0,0x50,0x00,0x30,0x00,0xF0,0x00,0x08,0x80,0x40,0x00, + 0x10,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xE0,0xC3,0x03,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x25,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x25,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x25,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x25,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x25,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x25,0x20, + 0x1D,0x1E,0x20,0x20,0x20,0x1F,0x1D,0x1C,0x1E,0x20,0x1F,0x20,0x20,0x20,0x20,0x1D, + 0x23,0x1E,0x1E,0x1E,0x20,0x20,0x20,0x1F,0x1D,0x1E,0x1E,0x20,0x21,0x22,0x22,0x22, + 0x21,0x22,0x25,0x23,0x20,0x23,0x25,0x25,0x25,0x24,0x22,0x1E,0x55,0x55,0x30,0x55, + 0x55,0x55,0x30,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x04,0x03,0x00,0x07,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x05,0x08,0x02,0x00, + 0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x06,0xFF,0xFF,0xFF,0x00,0x00,0xC8,0x05,0x1E, + 0xF0,0x00,0x40,0x01,0xE8,0x03,0x00,0x00,0x74,0x27,0x00,0x00,0x3C,0x28,0x00,0x00, + 0xE0,0x93,0x04,0x00,0x00,0x5A,0x54,0x0B,0xF0,0x0A,0x00,0x00,0x04,0xC8,0x3D,0x3D, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x6A,0x00,0x68,0x00,0x01,0x00,0x01,0x00, + 0x78,0x00,0xA0,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x15,0x00,0x02,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0xE6,0x00,0x1E,0x00,0x23,0x00, + 0x50,0x00,0xB4,0x00,0x50,0x00,0x3C,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x00,0x00, + 0x04,0x01,0x05,0x0F,0x01,0x01,0x04,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x02,0x03,0x00,0x00, + 0x02,0x03,0x00,0x00,0x02,0x03,0x00,0x00,0x02,0x03,0x00,0x00,0x02,0x03,0x00,0x00, + 0x00,0x0E,0x00,0x00,0x60,0x0F,0x00,0x00,0x60,0x0F,0x00,0x00,0x1D,0x39,0xC8,0x00, + 0x14,0x00,0x1D,0x00,0x64,0x32,0x64,0x32,0x3C,0x00,0x1E,0x00,0x46,0x00,0x14,0x00, + 0x32,0x00,0x14,0x00,0x01,0x00,0x0A,0x02,0x3C,0x00,0xD2,0x00,0xD2,0x00,0xD2,0x00, + 0x90,0x01,0x00,0x00,0x1E,0x0A,0x50,0x00,0x1E,0x0A,0x50,0x00,0x1E,0x0A,0x50,0x00, + 0x0A,0x02,0x32,0x00,0xB8,0x0B,0xBC,0x02,0x0A,0x00,0x32,0x32,0x96,0x32,0x08,0x64, + 0x96,0x64,0x64,0x00,0x00,0x00,0x90,0x01,0x0F,0x00,0x28,0x00,0x96,0x87,0x0B,0x46, + 0x00,0x05,0x04,0x0A,0x01,0x06,0x8C,0x00,0x46,0x00,0x0A,0x3C,0x00,0x05,0x1E,0x00, + 0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x64,0x00,0x0C,0x03,0x02,0x02,0x01,0x00,0x02,0x03,0x05,0x00,0x03,0x03,0x06,0x06, + 0x09,0x09,0x0C,0x0C,0x0F,0x55,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00,0x41,0x62,0x03,0x00, + 0x0E,0x0E,0x88,0x00,0x20,0x3F,0x20,0x3F,0x00,0x00,0x00,0x00,0x0F,0x00,0x19,0x00, + 0x99,0x39,0xDC,0x00,0x1E,0x00,0x1D,0x00,0x64,0x32,0x64,0x32,0x32,0x00,0x1E,0x00, + 0x3C,0x00,0x14,0x00,0x3C,0x00,0x14,0x00,0x01,0x00,0x0A,0x02,0x46,0x00,0xE6,0x00, + 0xE6,0x00,0xE6,0x00,0x90,0x01,0x00,0x00,0x1E,0x0A,0x50,0x00,0x1E,0x0A,0x50,0x00, + 0x1E,0x0A,0x50,0x00,0x08,0x02,0x32,0x00,0xDC,0x05,0xF4,0x01,0x0A,0x00,0x32,0x32, + 0x96,0x32,0x08,0x64,0x96,0x64,0x64,0x00,0x00,0x00,0x58,0x02,0x1E,0x00,0x28,0x00, + 0x96,0x87,0x0A,0x6E,0x00,0x05,0x04,0x0A,0x02,0x06,0x96,0x00,0x46,0x00,0x0F,0x3C, + 0x00,0x05,0x1E,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x78,0x00,0x05,0x04,0x02,0x01,0x01,0x00,0x04,0x03,0x01,0x00, + 0x04,0x04,0x08,0x08,0x0C,0x0C,0x10,0x10,0x14,0x55,0x01,0x00,0x05,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00, + 0x41,0x62,0x03,0x00,0x08,0x08,0x88,0x00,0x20,0x3F,0x20,0x3F,0x00,0x00,0x00,0x00, + 0x1E,0x00,0x1E,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x0A,0x00,0x00,0x00,0x00,0x00, + 0x55,0x00,0x0F,0x00,0x05,0x00,0x00,0x00,0x1E,0x00,0xC8,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x96,0x00,0xC8,0x00,0x00,0x00, + 0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00, + 0x23,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x64,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x14,0x00,0x00,0x5A,0x5A,0x5A,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x1E,0x00,0x5A,0x00,0x28,0x00,0x46,0x00,0x23,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x4B,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFF,0x0F,0x02,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0D,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x02,0x03,0x00,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x01,0x00,0x00,0x00,0xFF,0x0F,0xC8,0x00, + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x41,0x62,0x03,0x00, + 0x10,0x00,0x10,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00,0x0E,0x0E,0x88,0x00, + 0x20,0x3F,0x20,0x3F,0x2E,0x14,0x46,0x00,0x19,0x19,0x1E,0x0A,0x00,0x00,0xAC,0x0D, + 0x01,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x08,0x20, + 0x51,0x30,0x10,0x00,0x1C,0x90,0x01,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x0F,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00, + 0x54,0x55,0x45,0x00,0x10,0x30,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x00,0x00,0x00, + 0x38,0x30,0x08,0x00,0x70,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x30,0x12,0x14,0x00,0x00,0x1C,0x0C,0x06,0x00, + 0x00,0x04,0x7C,0x74,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x1F,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x80,0x00,0x03,0x3C,0x00,0x01,0x00,0x00,0x80,0x00,0x00,0x32,0x40,0x00,0x00, + 0x00,0x80,0x00,0x00,0x3C,0x00,0x01,0x00,0x00,0x80,0x00,0x00,0x32,0x40,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x4F,0x30,0x1F,0x00,0x4F,0x30,0x1F,0x00,0x4F,0x30,0x1F,0x00,0x4F,0x30,0x1F,0x00, + 0x4F,0x30,0x1F,0x00,0x4F,0x30,0x1F,0x00,0x4F,0x30,0x1F,0x00,0x4F,0x30,0x1F,0x00, + 0x4F,0x30,0x1F,0x00,0x4F,0x30,0x1F,0x00,0x4F,0x30,0x1F,0x00,0x4F,0x30,0x1F,0x00, + 0x4F,0x30,0x1F,0x00,0x4F,0x30,0x1F,0x00,0x4F,0x30,0x1F,0x00,0x4F,0x30,0x1F,0x00, + 0x4F,0x30,0x1F,0x00,0x4F,0x30,0x1F,0x00,0x4F,0x30,0x1F,0x00,0x4F,0x30,0x1F,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x0D,0x00,0xA0,0xE1,0x10,0xD0,0x9F,0xE5,0x01,0x40,0x2D,0xE9,0x91,0x01,0x00,0xEB, + 0x01,0x40,0xBD,0xE8,0x00,0xD0,0xA0,0xE1,0x1E,0xFF,0x2F,0xE1,0xF0,0x0F,0x00,0x20, + 0x92,0x10,0x00,0xE0,0x02,0xC0,0x52,0x1E,0xFC,0xD2,0x70,0x47,0x10,0xB4,0xFE,0x48, + 0xFE,0x4C,0xFF,0x49,0x20,0x60,0xFD,0x48,0x40,0x38,0x81,0x62,0xFD,0x49,0x81,0x61, + 0x00,0x20,0x81,0x00,0x0A,0x19,0x11,0x6A,0x40,0x1C,0x8B,0x00,0xC9,0x01,0xDB,0x0E, + 0xC9,0x0E,0x49,0x06,0x1B,0x05,0x19,0x43,0x14,0x28,0x11,0x62,0xF1,0xD3,0xF3,0x48, + 0xF5,0x49,0x40,0x30,0x01,0x63,0xF4,0x49,0x08,0x31,0x41,0x63,0xF3,0x49,0x08,0x69, + 0x40,0x08,0x40,0x00,0x08,0x61,0xF1,0x48,0x40,0x30,0x01,0x68,0xF0,0x49,0x01,0x60, + 0xF0,0x48,0xF1,0x49,0xC8,0x60,0x10,0xBC,0x70,0x47,0xFC,0xB5,0xEF,0x4C,0x02,0x00, + 0x30,0x34,0x18,0xCC,0x00,0x20,0x00,0x94,0xED,0x4C,0x24,0x7D,0xE4,0x07,0x2D,0xD0, + 0xEC,0x4C,0x25,0x79,0xE6,0x78,0xEA,0x4C,0xAE,0x46,0xA5,0x7D,0x00,0x2E,0x76,0x46, + 0xAC,0x46,0xE5,0x7D,0x01,0x95,0x25,0x7E,0x67,0x7E,0xA4,0x7E,0x10,0xD0,0xB2,0x42, + 0x1C,0xD1,0x8C,0x45,0x08,0xD0,0x01,0x9A,0x8A,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0, + 0x8F,0x42,0x01,0xD0,0x8C,0x42,0x00,0xD1,0x00,0x98,0xFC,0xBC,0x08,0xBC,0x18,0x47, + 0xB1,0x42,0x0B,0xD1,0x94,0x45,0xF7,0xD0,0x01,0x99,0x91,0x42,0xF4,0xD0,0x95,0x42, + 0xF2,0xD0,0x97,0x42,0xF0,0xD0,0x94,0x42,0xEE,0xD0,0xEE,0xE7,0x18,0x00,0xEC,0xE7, + 0x30,0xB4,0xD4,0x4B,0xD4,0x4C,0x5B,0x78,0x58,0x43,0x40,0x18,0x43,0x00,0xE0,0x5A, + 0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18,0x00,0x20,0x4D,0x1E,0xC0,0x43, + 0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2,0x10,0x02,0x08,0x43,0xE0,0x52, + 0x00,0x20,0x30,0xBC,0x70,0x47,0xF3,0xB5,0xC8,0x48,0x82,0xB0,0x01,0x90,0x00,0x20, + 0x00,0x90,0xBE,0x48,0xC1,0x68,0x01,0x22,0x11,0x43,0xC1,0x60,0xC1,0x4F,0xBB,0x48, + 0xC0,0x68,0xC0,0x07,0xFB,0xD0,0x00,0x24,0x26,0x00,0x25,0xE0,0x00,0x25,0x1F,0xE0, + 0x29,0x00,0x30,0x00,0xFF,0xF7,0x91,0xFF,0x00,0x28,0x17,0xD0,0x79,0x78,0x01,0x9A, + 0x71,0x43,0x49,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A,0x02,0x99, + 0x00,0x29,0x02,0xD0,0x00,0x28,0x09,0xDA,0x01,0xE0,0x00,0x28,0x06,0xDD,0x03,0x9A, + 0x29,0x00,0x30,0x00,0xFF,0xF7,0xB4,0xFF,0x40,0x1C,0x00,0xD1,0x64,0x1C,0x6D,0x1C, + 0x78,0x78,0x85,0x42,0xDC,0xD3,0x76,0x1C,0xB8,0x78,0x86,0x42,0xD6,0xD3,0xB8,0x78, + 0x79,0x78,0x48,0x43,0xA0,0x42,0x0A,0xD0,0x00,0x98,0x41,0x1C,0x00,0x91,0x01,0x21, + 0x49,0x02,0x88,0x42,0x03,0xD8,0x9D,0x48,0xC1,0x68,0xC1,0x60,0xBF,0xE7,0xFF,0xBC, + 0x08,0xBC,0x18,0x47,0xF0,0xB4,0x00,0x21,0x9F,0x4C,0x9D,0x4B,0x9D,0x4E,0x1E,0x25, + 0x13,0xE0,0x9A,0x7D,0x8A,0x42,0x0D,0xD0,0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E, + 0x8A,0x42,0x07,0xD0,0x5A,0x7E,0x8A,0x42,0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0, + 0x42,0x00,0xA5,0x52,0x72,0x78,0x80,0x18,0x49,0x1C,0xB2,0x78,0x77,0x78,0x7A,0x43, + 0x82,0x42,0xE6,0xD8,0xF0,0xBC,0x70,0x47,0xF0,0xB4,0x8E,0x4B,0x00,0x21,0x5A,0x78, + 0x1E,0x26,0x8D,0x4D,0x42,0x43,0x8A,0x4F,0x12,0xE0,0xBB,0x7D,0x8B,0x42,0x0D,0xD0, + 0xFB,0x7D,0x8B,0x42,0x0A,0xD0,0x3B,0x7E,0x8B,0x42,0x07,0xD0,0x7B,0x7E,0x8B,0x42, + 0x04,0xD0,0xBB,0x7E,0x8B,0x42,0x01,0xD0,0x53,0x00,0xEE,0x52,0x52,0x1C,0x49,0x1C, + 0x80,0x4B,0x04,0x00,0x5B,0x78,0x5C,0x43,0xE3,0x18,0x93,0x42,0xE5,0xD8,0xD9,0xE7, + 0x02,0x04,0x7D,0x49,0x02,0x43,0x00,0x20,0x40,0x1C,0x04,0xC1,0x80,0x28,0xFB,0xD3, + 0x70,0x47,0xF1,0xB5,0x77,0x4C,0x75,0x4D,0x21,0x78,0x78,0x4F,0xA8,0x6B,0x00,0x29, + 0x82,0xB0,0x00,0xD0,0x00,0x0C,0x00,0x06,0x00,0x0E,0x01,0x02,0x01,0x43,0x08,0x04, + 0x00,0x0C,0xFF,0xF7,0xE5,0xFF,0x6E,0x48,0x00,0x7D,0xC0,0x07,0x08,0xD0,0xE0,0x78, + 0x00,0x28,0x20,0x79,0x02,0xD0,0xFF,0xF7,0xB7,0xFF,0x01,0xE0,0xFF,0xF7,0x92,0xFF, + 0x62,0x49,0x00,0x20,0x80,0x31,0xC8,0x62,0x66,0x49,0xE8,0x6B,0x09,0x78,0x00,0x29, + 0x08,0xD1,0x61,0x49,0x00,0x22,0x4A,0x63,0x4A,0x68,0x00,0x07,0x12,0x09,0x12,0x01, + 0x00,0x0F,0x07,0xE0,0x5C,0x49,0x00,0x22,0x4A,0x63,0x4A,0x68,0x00,0x03,0x12,0x09, + 0x12,0x01,0x00,0x0F,0x02,0x43,0x4A,0x60,0x03,0x24,0x26,0x1F,0x01,0xE0,0x03,0x2C, + 0x02,0xD1,0x01,0x25,0xED,0x43,0x09,0xE0,0x02,0x2C,0x01,0xD1,0x01,0x25,0x05,0xE0, + 0x01,0x2C,0x01,0xD1,0x35,0x00,0x01,0xE0,0x00,0x2C,0xF7,0xD0,0xE0,0x07,0xC0,0x0F, + 0x29,0x00,0xFF,0xF7,0x10,0xFF,0x64,0x1E,0xE9,0xD5,0x4E,0x48,0x4D,0x4D,0x00,0x78, + 0x0C,0x35,0x00,0x28,0x2D,0xD1,0x45,0x4A,0x09,0x21,0x01,0x23,0xD0,0x68,0x18,0x43, + 0xD0,0x60,0xD0,0x68,0xC0,0x07,0xFC,0xD0,0x49,0x1E,0xF7,0xD2,0x00,0x26,0x17,0xE0, + 0x00,0x24,0x10,0xE0,0x21,0x00,0x30,0x00,0xFF,0xF7,0x9F,0xFE,0x00,0x28,0x09,0xD0, + 0x40,0x48,0x40,0x78,0x70,0x43,0x00,0x19,0x81,0x00,0x79,0x58,0x09,0x05,0x09,0x0D, + 0x40,0x00,0x29,0x52,0x64,0x1C,0x3B,0x48,0x40,0x78,0x84,0x42,0xEA,0xD3,0x76,0x1C, + 0x38,0x48,0x81,0x78,0x8E,0x42,0xE3,0xD3,0x01,0x78,0x00,0x29,0x01,0xD1,0x81,0x68, + 0x03,0xE0,0x34,0x48,0x80,0x68,0x01,0x0C,0x09,0x04,0x2F,0x48,0x41,0x63,0x2B,0x48, + 0x09,0x21,0x01,0x23,0xC2,0x68,0x1A,0x43,0xC2,0x60,0xC2,0x68,0xD2,0x07,0xFC,0xD0, + 0x49,0x1E,0xF7,0xD2,0x2E,0x48,0x00,0x26,0x01,0x90,0x2E,0x48,0x00,0x90,0x79,0xE0, + 0x00,0x24,0x72,0xE0,0x21,0x00,0x30,0x00,0xFF,0xF7,0x67,0xFE,0x00,0x28,0x6B,0xD0, + 0x24,0x49,0x0A,0x78,0x00,0x2A,0x1A,0xD1,0x49,0x78,0x71,0x43,0x0B,0x19,0x59,0x00, + 0x9B,0x00,0xFB,0x58,0x6A,0x5A,0x1B,0x05,0x1B,0x0D,0x9A,0x42,0x01,0xD8,0x00,0x20, + 0x0B,0xE0,0x82,0x42,0x04,0xD9,0x12,0x1A,0x12,0x04,0xD2,0x0C,0x80,0x18,0x03,0xE0, + 0x82,0x1A,0x12,0x04,0xD2,0x0C,0x80,0x1A,0xC0,0x1A,0x68,0x52,0x4C,0xE0,0x15,0x48, + 0x19,0x49,0x40,0x78,0xFF,0x23,0x91,0x33,0x70,0x43,0x00,0x19,0x84,0x46,0x80,0x00, + 0x38,0x58,0x00,0x05,0x00,0x0D,0x02,0x00,0x41,0x18,0x99,0x42,0x2E,0xD8,0x13,0x49, + 0x08,0x1A,0x03,0x00,0x43,0x43,0x23,0xE0,0xFB,0xC3,0x0C,0x0C,0x80,0x06,0x10,0x40, + 0xDF,0x83,0x0F,0x46,0x7F,0xC1,0x0F,0x42,0xF0,0xFF,0x00,0x00,0x00,0x90,0x00,0x40, + 0x09,0x0D,0x00,0x00,0xF7,0xC3,0x0F,0x00,0x00,0xA0,0x00,0x40,0xC0,0x0F,0x00,0x20, + 0x00,0x78,0x00,0x00,0x64,0x06,0x00,0x20,0x00,0x00,0x10,0x40,0x00,0x02,0x10,0x40, + 0x70,0x08,0x00,0x20,0x70,0x0A,0x00,0x20,0x74,0xF5,0xFF,0xFF,0x54,0x0B,0x00,0x00, + 0x18,0x0A,0x8A,0x42,0x01,0xD9,0x40,0x18,0x00,0xE0,0x08,0x1A,0x02,0x99,0x00,0x29, + 0x06,0xD0,0x6C,0x49,0x00,0x9A,0x89,0x78,0x61,0x43,0x89,0x19,0x49,0x00,0x02,0xE0, + 0x01,0x9A,0x61,0x46,0x49,0x00,0x50,0x52,0x64,0x1C,0x66,0x48,0x40,0x78,0x84,0x42, + 0x88,0xD3,0x76,0x1C,0x63,0x48,0x81,0x78,0x8E,0x42,0x81,0xD3,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0xF0,0xB5,0x60,0x4E,0x5F,0x4D,0x00,0x24,0x01,0x27,0x5F,0x48,0x01,0x68, + 0x5E,0x4A,0x08,0x04,0x00,0x0E,0x09,0x06,0x09,0x0E,0x68,0x70,0x40,0x3A,0xA9,0x70, + 0x12,0x69,0xD2,0x07,0xD2,0x0F,0x32,0x7D,0x02,0xD0,0x92,0x07,0x06,0xD4,0x01,0xE0, + 0x92,0x07,0x03,0xD5,0x49,0x1E,0x29,0x71,0xEF,0x70,0x03,0xE0,0x40,0x1E,0x28,0x71, + 0x00,0x20,0xE8,0x70,0x20,0x00,0x64,0x1C,0xFF,0xF7,0xBB,0xFE,0x28,0x78,0x01,0x28, + 0x01,0xD0,0x01,0x2C,0x05,0xD0,0x02,0x2C,0x03,0xD0,0xFF,0xF7,0x8F,0xFD,0x01,0x2C, + 0xD4,0xD9,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x49,0x48,0x10,0xB5,0x40,0x6B,0x45,0x4C, + 0xC5,0x22,0xA0,0x60,0x20,0x00,0xD2,0x00,0x00,0x21,0x0C,0x30,0xFF,0xF7,0x78,0xFD, + 0x00,0x20,0x20,0x70,0xFF,0xF7,0xBD,0xFF,0x01,0x20,0x20,0x70,0xFF,0xF7,0xB9,0xFF, + 0x40,0x48,0x41,0x49,0xC8,0x61,0x41,0x48,0xC2,0x68,0x52,0x08,0x52,0x00,0xC2,0x60, + 0x20,0x00,0x0C,0x30,0x04,0xC8,0xCA,0x61,0x4A,0x69,0x52,0x06,0xFC,0xD4,0xF9,0xE7, + 0x40,0x1E,0xFD,0xD2,0x70,0x47,0xF0,0xB5,0x3A,0x48,0x39,0x4A,0x01,0x23,0x03,0x61, + 0x19,0x00,0x38,0x48,0x00,0x23,0x43,0x61,0x83,0x61,0x01,0x26,0x35,0x00,0x9D,0x40, + 0x03,0x20,0x34,0x4C,0x00,0x04,0x28,0x43,0x60,0x61,0x08,0x00,0x40,0x1E,0xFD,0xD2, + 0x01,0x20,0x00,0x04,0x28,0x43,0x60,0x61,0x08,0x00,0x40,0x1E,0xFD,0xD2,0x65,0x61, + 0x48,0x00,0x86,0x46,0x40,0x1E,0xFD,0xD2,0xE7,0x69,0x00,0x20,0x5C,0x01,0xA4,0x46, + 0x64,0x46,0x24,0x18,0x3D,0x00,0xC5,0x40,0x16,0x5D,0xED,0x07,0xED,0x0F,0x75,0x19, + 0x40,0x1C,0x20,0x28,0x15,0x55,0xF3,0xD3,0x5B,0x1C,0x10,0x2B,0xD5,0xD3,0x21,0x48, + 0x00,0x23,0x43,0x61,0x83,0x61,0x01,0x25,0x9D,0x40,0x03,0x20,0x1D,0x4C,0x00,0x04, + 0x28,0x43,0xA0,0x61,0x08,0x00,0x40,0x1E,0xFD,0xD2,0x01,0x20,0x00,0x04,0x28,0x43, + 0xA0,0x61,0x08,0x00,0x40,0x1E,0xFD,0xD2,0xA5,0x61,0x70,0x46,0x40,0x1E,0xFD,0xD2, + 0xE7,0x69,0x5C,0x01,0xFF,0x34,0x00,0x20,0xFF,0x34,0x02,0x34,0xA4,0x46,0x64,0x46, + 0x24,0x18,0x3D,0x00,0xC5,0x40,0x16,0x5D,0xED,0x07,0xED,0x0F,0x75,0x19,0x40,0x1C, + 0x20,0x28,0x15,0x55,0xF3,0xD3,0x5B,0x1C,0x10,0x2B,0xD4,0xD3,0x49,0x1C,0xC8,0x29, + 0x9F,0xD9,0x6E,0xE7,0x64,0x06,0x00,0x20,0x00,0x78,0x00,0x00,0x40,0x90,0x00,0x40, + 0x00,0xA0,0x00,0x40,0xAB,0xFC,0xFF,0x8F,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40, + 0x70,0x08,0x00,0x20,0x00,0xA1,0x00,0x40,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1, + 0x19,0x05,0x00,0x20,0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47,0x40,0x04,0x00,0x00, + 0xC0,0x7B,0x00,0x00,0xC0,0x75,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x78,0x00,0x00, + 0x00,0x03,0x00,0x00,0x00,0x7B,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7C,0x00,0x00, + 0x00,0x02,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x02,0x00,0x00,0x43,0x00,0xE1,0x00, + 0x00,0x00,0x00,0x00,0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47}; + +#endif // __IST30XXB_FW_H__ diff --git a/drivers/input/touchscreen/ist30xxb/IST30xxB_FW_Star2_Ver0002.h b/drivers/input/touchscreen/ist30xxb/IST30xxB_FW_Star2_Ver0002.h new file mode 100644 index 00000000..177ce58b --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/IST30xxB_FW_Star2_Ver0002.h @@ -0,0 +1,2163 @@ +#ifndef __IST30XXB_FW_H__ +#define __IST30XXB_FW_H__ + +/* ist30xxb binary: Star2 SYNOPEX, f/w 2( 30301) */ +static unsigned char ist30xxb_fw[] = { + 0x06,0x00,0x00,0xEA,0x2C,0x00,0x00,0xEA,0x2B,0x00,0x00,0xEA,0x2A,0x00,0x00,0xEA, + 0x29,0x00,0x00,0xEA,0x28,0x00,0x00,0xEA,0x27,0x00,0x00,0xEA,0x3E,0x00,0x00,0xEA, + 0x14,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0xA0,0xE1,0x00,0x00,0x00,0xEA,0x0C,0x20,0x00,0x40, + 0x11,0x01,0xA0,0xE3,0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0xC1,0x01,0xA0,0xE3, + 0x1C,0x10,0x9F,0xE5,0x00,0x10,0x80,0xE5,0x18,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0xF1,0x01,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0x01,0x00,0x00,0xEA,0xC8,0x74,0x00,0x00,0x4C,0x00,0x00,0x40,0x00,0x00,0x0F,0xE1, + 0x1F,0x00,0xC0,0xE3,0xD1,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x1C,0xD0,0x9F,0xE5, + 0xD3,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x14,0xD0,0x9F,0xE5,0x00,0x00,0x0F,0xE1, + 0xC0,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x08,0x00,0x9F,0xE5,0x10,0xFF,0x2F,0xE1, + 0xFC,0x0F,0x00,0x20,0xC0,0x0F,0x00,0x20,0xA7,0x01,0x00,0x00,0x11,0x01,0xA0,0xE3, + 0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x5C,0x30,0x9F,0xE5,0x5C,0x40,0x9F,0xE5, + 0x00,0x40,0x83,0xE5,0x91,0x01,0xA0,0xE3,0x33,0x16,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0xAC,0x00,0x1F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0x00,0x40,0x83,0xE5, + 0xFF,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x03,0x00,0x00,0xEB,0xFE,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0x00,0xEB,0xF7,0xFF,0xFF,0xEA,0x01,0x29,0xA0,0xE3, + 0x01,0x20,0x52,0xE2,0xFD,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0xFF,0x40,0x2D,0xE9, + 0xC6,0x00,0x00,0xEB,0xFF,0x40,0xBD,0xE8,0x04,0xF0,0x5E,0xE2,0x1C,0x40,0x00,0x30, + 0x70,0xE9,0x1C,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x3C,0x4A,0x3A,0x48,0x3A,0x49,0x92,0x08,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x38,0x48,0x01,0x21,0xC9,0x02,0x01,0x62, + 0x00,0x21,0x01,0x62,0x01,0x62,0x36,0x49,0x36,0x48,0x01,0x60,0x20,0x21,0x41,0x60, + 0xA0,0x21,0x81,0x60,0x70,0x47,0xF8,0xB5,0x30,0x4B,0x9F,0x6A,0x32,0x48,0x00,0x69, + 0x42,0x08,0x58,0x69,0x19,0x15,0x08,0x43,0x58,0x61,0xFF,0xF7,0xE5,0xFF,0x58,0x69, + 0xFF,0x21,0x81,0x31,0x08,0x43,0x58,0x61,0x2C,0x48,0x2D,0x4C,0x20,0x60,0xFF,0x20, + 0x90,0x30,0x60,0x60,0x13,0x20,0xA0,0x60,0xA0,0x68,0xA6,0x15,0x30,0x43,0xA0,0x60, + 0x24,0x4D,0x5F,0x23,0x00,0x2F,0x27,0xD1,0x26,0x4F,0x21,0xE0,0x68,0x68,0x00,0x07, + 0x1E,0xD5,0xE8,0x68,0x40,0x28,0x04,0xD1,0xEA,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1, + 0x14,0xE0,0x20,0x28,0x04,0xD3,0xEF,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1,0x0D,0xE0, + 0x0D,0x28,0x08,0xD1,0x2E,0x20,0x68,0x60,0x68,0x69,0x80,0x06,0xFC,0xD4,0x68,0x68, + 0x80,0x07,0xFC,0xD5,0x08,0xE0,0x68,0x68,0x80,0x07,0xFC,0xD5,0xFF,0xF7,0xAC,0xFF, + 0xE0,0x68,0x15,0x49,0x88,0x42,0xD9,0xD3,0xFF,0xF7,0xA6,0xFF,0xA0,0x68,0xB0,0x43, + 0xA0,0x60,0x00,0xF0,0x3D,0xF9,0xF8,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x0F,0x49, + 0x0F,0x4A,0x00,0x20,0x01,0xE0,0x08,0xC9,0x18,0x18,0x91,0x42,0xFB,0xD3,0x70,0x47, + 0x40,0x00,0x00,0x20,0x94,0x02,0x00,0x00,0xCC,0x00,0x00,0x00,0x40,0x00,0x00,0x40, + 0xDE,0x10,0x01,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0xFF,0xFF,0x00,0x00, + 0x00,0x40,0x00,0x40,0xFF,0x03,0xFF,0x2F,0x50,0xC3,0x00,0x00,0x40,0x04,0x00,0x00, + 0xC0,0x75,0x00,0x00,0x30,0x48,0x41,0x6B,0xC9,0x07,0xFC,0xD0,0x41,0x6B,0x01,0x22, + 0x11,0x43,0x41,0x63,0x70,0x47,0x10,0xB4,0x2B,0x4C,0x40,0x23,0x60,0x60,0x20,0x68, + 0x80,0x0A,0x80,0x02,0x10,0x43,0xA8,0x22,0x10,0x43,0x20,0x60,0x02,0xE0,0x08,0x78, + 0xA0,0x60,0x49,0x1C,0x5B,0x1E,0xFA,0xD2,0x10,0xBC,0x70,0x47,0xF0,0xB5,0x05,0x00, + 0x0E,0x00,0x1F,0x00,0x94,0x09,0x81,0x06,0x20,0x48,0x10,0xD1,0x91,0x06,0x0E,0xD1, + 0x0A,0xE0,0x3A,0x00,0x31,0x00,0x28,0x00,0xFF,0xF7,0xDD,0xFF,0x40,0x35,0x2D,0x04, + 0x2D,0x0C,0x40,0x36,0xFF,0xF7,0xCE,0xFF,0x64,0x1E,0x60,0x1C,0xF1,0xD1,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x14,0x4B,0x40,0x22,0x58,0x60,0x18,0x68,0x80,0x0A,0x80,0x02, + 0x08,0x43,0xA4,0x21,0x08,0x43,0x18,0x60,0x00,0x21,0x00,0xE0,0x99,0x60,0x52,0x1E, + 0xFC,0xD2,0x70,0x47,0x70,0xB5,0x05,0x00,0x16,0x00,0x8C,0x09,0x82,0x06,0x0B,0x48, + 0x0E,0xD1,0x89,0x06,0x0C,0xD1,0x08,0xE0,0x31,0x00,0x28,0x00,0xFF,0xF7,0xE2,0xFF, + 0x40,0x35,0x2D,0x04,0x2D,0x0C,0xFF,0xF7,0xA5,0xFF,0x64,0x1E,0x60,0x1C,0xF3,0xD1, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0xF8,0xB5,0x03,0x25,0x0F,0x4E,0x2D,0x07, + 0x01,0x27,0xF0,0x6A,0x00,0x28,0x15,0xD0,0xF0,0x6B,0xE9,0x68,0x80,0x08,0x3C,0x00, + 0x84,0x40,0x21,0x43,0xE9,0x60,0x69,0x68,0x21,0x42,0x00,0xD0,0x34,0x63,0x81,0x00, + 0x07,0x48,0x40,0x58,0x00,0x28,0x01,0xD0,0x06,0xF0,0x08,0xFE,0xE8,0x68,0xA0,0x43, + 0xE8,0x60,0xE6,0xE7,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x30, + 0x2C,0x0B,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF8,0xB5,0x00,0xF0,0xF9,0xFC,0x07,0x00,0x03,0xF0,0x14,0xFC,0x03,0xF0,0x06,0xFC, + 0x03,0xF0,0x8C,0xFC,0x48,0x4A,0x49,0x49,0x49,0x48,0x04,0xF0,0x22,0xFE,0x49,0x4D, + 0x00,0x26,0x01,0x21,0xC9,0x03,0x30,0x00,0xEE,0x81,0x00,0xF0,0x93,0xF9,0xA8,0x61, + 0x45,0x49,0x00,0x20,0x00,0xF0,0x8E,0xF9,0x44,0x4B,0x45,0x49,0xD8,0x63,0x45,0x48, + 0x00,0xF0,0x88,0xF9,0xD9,0x6B,0x00,0x04,0x08,0x43,0xD8,0x63,0x03,0xF0,0x4E,0xFC, + 0xA1,0x22,0x41,0x48,0xD2,0x00,0x00,0x21,0x04,0xF0,0x0E,0xFE,0x06,0xF0,0xA0,0xF9, + 0x03,0xF0,0xF0,0xFC,0x3D,0x48,0x01,0x24,0x81,0x7A,0xA9,0x71,0xC1,0x7A,0xE9,0x71, + 0x40,0x7A,0x28,0x72,0xFF,0x20,0x91,0x30,0x6E,0x72,0x28,0x82,0xAE,0x72,0xEE,0x72, + 0x35,0x48,0x2E,0x73,0x64,0x07,0x6E,0x73,0x60,0x63,0xFF,0x20,0xE0,0x63,0xE0,0x14, + 0x00,0xF0,0x8E,0xFC,0x32,0x48,0x06,0x70,0xFF,0x20,0x81,0x30,0x00,0xF0,0x88,0xFC, + 0x30,0x49,0x02,0x20,0x06,0xF0,0x90,0xFC,0x02,0x20,0x06,0xF0,0x95,0xFC,0x28,0x7A, + 0x00,0x28,0x01,0xD0,0x06,0xF0,0x42,0xFD,0x00,0x2F,0x1F,0xD1,0x2A,0x4F,0xBE,0x15, + 0x28,0x7A,0x00,0x28,0x02,0xD0,0x29,0x49,0x28,0x6B,0x88,0x60,0xE0,0x6B,0x0B,0x28, + 0x14,0xD0,0x27,0x48,0x40,0x68,0x00,0x07,0x01,0xD5,0x02,0xF0,0xAF,0xFA,0xF8,0x68, + 0x24,0x49,0x88,0x42,0xEC,0xD9,0x24,0x48,0xC0,0x68,0xFF,0x28,0x06,0xD1,0xB8,0x68, + 0xB0,0x43,0xB8,0x60,0xB8,0x68,0x30,0x43,0xB8,0x60,0xE1,0xE7,0xE8,0x79,0x00,0x28, + 0x03,0xD1,0x01,0x20,0x80,0x02,0x00,0xF0,0x4B,0xFC,0x28,0x7A,0x00,0x28,0x01,0xD0, + 0x06,0xF0,0x1C,0xFD,0x02,0x20,0x06,0xF0,0x6B,0xFC,0xFF,0x20,0x81,0x30,0x00,0xF0, + 0x3F,0xFC,0x16,0x49,0x05,0x20,0x03,0xF0,0x2D,0xFA,0x0B,0x20,0xE0,0x63,0x03,0xF0, + 0xBD,0xFA,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x28,0x00,0x00,0x00,0x60,0x71,0x00,0x00, + 0x40,0x00,0x00,0x20,0xF8,0x0A,0x00,0x20,0xC0,0x75,0x00,0x00,0xC0,0x0F,0x00,0x20, + 0x00,0x7E,0x00,0x00,0x00,0x76,0x00,0x00,0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00, + 0xAD,0x0B,0x00,0x20,0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x30,0x00,0x40, + 0x00,0x40,0x00,0x30,0x50,0xC3,0x00,0x00,0xC0,0x75,0x00,0x00,0x5D,0x6E,0x00,0x00, + 0x78,0x47,0xC0,0x46,0x01,0x30,0x90,0xE1,0x21,0x00,0x00,0x4A,0x00,0x20,0xB0,0xE3, + 0xA0,0x30,0x71,0xE0,0x1A,0x00,0x00,0x3A,0x20,0x32,0x71,0xE0,0x0F,0x00,0x00,0x3A, + 0x20,0x34,0x71,0xE0,0x01,0x00,0x00,0x3A,0x00,0xC0,0xA0,0xE3,0x20,0x00,0x00,0xEA, + 0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0, + 0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0, + 0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0, + 0x1E,0xFF,0x2F,0xE1,0x02,0x21,0x11,0xE2,0x00,0x10,0x61,0x42,0x40,0xC0,0x32,0xE0, + 0x00,0x00,0x60,0x22,0x20,0x32,0x71,0xE0,0x1D,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0, + 0x0F,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x23,0x82,0xE3, + 0x0B,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x26,0x82,0xE3, + 0x07,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x29,0x82,0xE3, + 0x01,0x13,0xA0,0x21,0x3F,0x2C,0x82,0x23,0x00,0x30,0x71,0xE2,0x1D,0x00,0x00,0x2A, + 0x21,0x13,0xA0,0x21,0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0, + 0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xEB,0xFF,0xFF,0x2A, + 0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0, + 0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42, + 0x00,0x10,0x61,0x22,0x1E,0xFF,0x2F,0xE1,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42, + 0x01,0x40,0x2D,0xE9,0x00,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB,0x02,0x40,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0xA0,0xE1,0x07,0x40,0x2D,0xE9,0x02,0x00,0xB0,0xE3, + 0x01,0x00,0x00,0xEB,0x07,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x10,0xB5,0x02,0x20,0x06,0xF0,0x5F,0xFC,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46,0x00,0x20,0xB0,0xE3,0x20,0x32,0x71,0xE0, + 0xA6,0xFF,0xFF,0x3A,0x20,0x34,0x71,0xE0,0x98,0xFF,0xFF,0x3A,0x00,0xC0,0xA0,0xE3, + 0xB7,0xFF,0xFF,0xEA,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1, + 0x41,0x00,0x00,0x20,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1, + 0xD1,0x00,0x00,0x20,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1, + 0x79,0x00,0x00,0x20,0x78,0x47,0xC0,0x46,0x1B,0xFE,0xFF,0xEA,0x02,0x48,0x01,0x68, + 0x02,0x4A,0x11,0x40,0x01,0x60,0x70,0x47,0x00,0xA0,0x00,0x40,0xFE,0xFF,0xEF,0xFF, + 0x07,0x49,0x10,0xB5,0x08,0x68,0x07,0x4A,0x10,0x43,0x08,0x60,0x0F,0x24,0x02,0xF0, + 0xF0,0xF8,0x64,0x1E,0x00,0x2C,0xFA,0xDC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0xA0,0x00,0x40,0x01,0x00,0x10,0x00,0xF0,0xB5,0x01,0x27,0x7F,0x07,0x3D,0x68, + 0x17,0x4E,0xB0,0x7E,0xC0,0x07,0x26,0xD0,0x70,0x7D,0x00,0x28,0x21,0xD0,0xBA,0x00, + 0x01,0x2D,0x02,0xD1,0x79,0x68,0x11,0x43,0xB9,0x60,0x00,0x04,0x02,0x43,0x90,0x0A, + 0x80,0x02,0xA9,0x05,0x89,0x0D,0x08,0x43,0x78,0x60,0x01,0x24,0x08,0xE0,0x0D,0x49, + 0xE0,0x00,0x40,0x18,0x0C,0x49,0x41,0x18,0x28,0x19,0x06,0xF0,0xD5,0xF8,0x64,0x1C, + 0x70,0x7D,0xA0,0x42,0xF3,0xDA,0x70,0x7D,0x01,0x28,0x02,0xD1,0x00,0x2D,0x00,0xD1, + 0x01,0x25,0x70,0x7D,0x45,0x19,0x3D,0x60,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x30,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x86,0x04,0x00,0x00,0x70,0xB4,0x1A,0x4B, + 0xDA,0x88,0xD2,0x07,0x2B,0xD1,0x19,0x4A,0x05,0x78,0x54,0x7D,0xE4,0x00,0xE6,0x18, + 0x09,0x24,0xE4,0x01,0x36,0x19,0xB5,0x73,0x56,0x7D,0x45,0x88,0xF6,0x00,0xF6,0x18, + 0x36,0x19,0x35,0x82,0x56,0x7D,0x85,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0x75,0x82, + 0x55,0x7D,0xED,0x00,0xED,0x18,0x2D,0x19,0x29,0x75,0x55,0x7D,0xC1,0x79,0xED,0x00, + 0xEB,0x18,0x1B,0x19,0x59,0x75,0x51,0x7D,0x49,0x1C,0x51,0x75,0xC0,0x79,0x06,0x28, + 0x07,0xD0,0x0A,0x28,0x01,0xD0,0x12,0x28,0x01,0xD1,0x00,0x20,0x90,0x75,0x70,0xBC, + 0x70,0x47,0x01,0x20,0xFA,0xE7,0x00,0x00,0xF0,0x05,0x00,0x20,0x30,0x0A,0x00,0x20, + 0xFF,0xB5,0x0A,0x20,0x48,0x43,0x15,0x4F,0x81,0xB0,0xC5,0x19,0x48,0x00,0xFF,0x35, + 0x61,0x35,0xC0,0x19,0xC0,0x30,0x2A,0x71,0x0C,0x00,0x00,0x90,0x80,0x89,0x16,0x00, + 0x0A,0x21,0xFF,0xF7,0x2F,0xFF,0xE8,0x80,0x00,0x98,0x0A,0x21,0xC0,0x8B,0xFF,0xF7, + 0x29,0xFF,0x28,0x81,0x38,0x19,0xFF,0x30,0x01,0x30,0x00,0x7C,0xB9,0x19,0x68,0x71, + 0x04,0x98,0xA8,0x72,0x01,0x98,0x06,0x55,0x13,0x20,0x40,0x01,0x08,0x18,0x00,0x21, + 0xC4,0x76,0x81,0x74,0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xF0,0x05,0x00,0x20, + 0x06,0x48,0x0F,0x23,0x42,0x79,0x01,0x68,0x9B,0x06,0x49,0x1C,0x12,0x07,0x12,0x0A, + 0xD2,0x18,0x09,0x03,0x09,0x0B,0x0A,0x43,0x02,0x60,0x70,0x47,0xF0,0x05,0x00,0x20, + 0xF1,0xB5,0xB2,0x48,0x90,0xB0,0x0F,0x90,0x40,0x7C,0xB2,0x49,0x02,0x90,0x0F,0x98, + 0xC0,0x7C,0x01,0x90,0x0F,0x98,0x00,0x7C,0x00,0x90,0xAD,0x48,0xC9,0x88,0x00,0x8A, + 0x49,0x06,0x02,0xD4,0xA9,0x48,0x40,0x30,0x80,0x89,0x00,0x05,0x7E,0xD5,0x10,0x98, + 0x01,0x28,0x00,0xD0,0x02,0x20,0x03,0x90,0x00,0x20,0x04,0x90,0x3E,0xE1,0x03,0x98, + 0x81,0x00,0x01,0x20,0x40,0x07,0x08,0x18,0x0E,0x90,0x00,0x68,0x81,0x00,0x0D,0x90, + 0x0C,0x0F,0x80,0x0F,0xC0,0x07,0x03,0xD1,0x20,0x00,0x01,0xF0,0x7F,0xFB,0x26,0xE1, + 0x9D,0x48,0xA5,0x00,0x40,0x5F,0x00,0x28,0x84,0x46,0x0F,0xDA,0x0D,0x98,0x9A,0x49, + 0x80,0x01,0x80,0x0D,0x48,0x53,0x0D,0x98,0x6A,0x18,0x80,0x05,0x80,0x0D,0x50,0x80, + 0x4A,0x5B,0x24,0x31,0x4A,0x53,0x69,0x18,0x48,0x80,0x10,0xE1,0x02,0x9F,0x92,0x49, + 0x00,0x20,0x7F,0x1E,0x48,0x31,0x69,0x18,0x06,0xE0,0x83,0x00,0xCA,0x18,0x96,0x88, + 0x40,0x1C,0xCE,0x52,0xD3,0x88,0x53,0x80,0xB8,0x42,0xF6,0xDB,0x0D,0x98,0x62,0x46, + 0x80,0x01,0x80,0x0D,0x0C,0x90,0x80,0x1A,0x02,0x9A,0x87,0x4E,0x92,0x00,0x8B,0x18, + 0x20,0x3B,0x98,0x83,0x0D,0x98,0xAA,0x19,0x80,0x05,0x80,0x0D,0x0A,0x92,0x0B,0x90, + 0x52,0x88,0x80,0x1A,0xD8,0x83,0x00,0x20,0x06,0x00,0x02,0x00,0x07,0xE0,0x93,0x00, + 0xCF,0x5E,0x38,0x18,0xCF,0x18,0x02,0x23,0xFB,0x5E,0x9E,0x19,0x52,0x1C,0x02,0x9B, + 0x9A,0x42,0xF4,0xDB,0x19,0x00,0xFF,0xF7,0xAB,0xFD,0x07,0x00,0x02,0x99,0x30,0x00, + 0xFF,0xF7,0xA6,0xFD,0x00,0x2F,0x00,0xDC,0x7F,0x42,0x0F,0x99,0x89,0x7C,0x8F,0x42, + 0x17,0xDA,0x00,0x28,0x00,0xDC,0x40,0x42,0x88,0x42,0x12,0xDA,0x01,0x98,0x0C,0x21, + 0x48,0x43,0x0A,0x21,0xFF,0xF7,0x6E,0xFE,0x61,0x00,0x00,0xE0,0xCA,0xE0,0x6A,0x4B, + 0x1C,0x3B,0x5A,0x5E,0x90,0x42,0x0C,0xDD,0x0F,0x98,0x00,0x7D,0x10,0x18,0x58,0x52, + 0x07,0xE0,0x65,0x49,0x0F,0x9A,0x60,0x00,0x1C,0x39,0x0B,0x5A,0x52,0x7D,0x9A,0x1A, + 0x0A,0x52,0x61,0x49,0x60,0x00,0x1C,0x39,0x0A,0x5E,0x00,0x2A,0x01,0xDC,0x00,0x22, + 0x0A,0x52,0x08,0x5E,0x01,0x99,0x88,0x42,0x09,0x90,0x01,0xDB,0x05,0x20,0x28,0xE0, + 0x88,0x00,0x05,0x21,0xFF,0xF7,0x46,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x04,0x20, + 0x1F,0xE0,0x01,0x98,0x41,0x00,0x40,0x18,0x05,0x21,0xFF,0xF7,0x3B,0xFE,0x09,0x99, + 0x88,0x42,0x01,0xDC,0x03,0x20,0x14,0xE0,0x01,0x98,0x05,0x21,0x40,0x00,0xFF,0xF7, + 0x31,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x01,0x98,0x05,0x21, + 0xFF,0xF7,0x28,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x01,0x20,0x01,0xE0,0x08,0x00, + 0x02,0xD1,0x45,0x49,0x0A,0x39,0x08,0x55,0x43,0x49,0x0C,0x9A,0x24,0x31,0x48,0x5F, + 0x16,0x1A,0x08,0x90,0x68,0x18,0x02,0x21,0x07,0x90,0x41,0x5E,0x0B,0x9A,0x3E,0x48, + 0x57,0x1A,0x06,0x91,0x0F,0x99,0x0A,0x38,0x00,0x5D,0x89,0x7D,0x88,0x42,0x27,0xD3, + 0x00,0x2E,0x01,0xD1,0x00,0x24,0x0D,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42,0x00,0x99, + 0x88,0x42,0x01,0xDA,0x01,0x24,0x05,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42,0xFF,0xF7, + 0x1F,0xFD,0x04,0x00,0x00,0x2F,0x01,0xD1,0x00,0x20,0x0C,0xE0,0x38,0x1E,0x00,0xDC, + 0x78,0x42,0x00,0x99,0x88,0x42,0x01,0xDA,0x01,0x20,0x04,0xE0,0x38,0x1E,0x00,0xDC, + 0x78,0x42,0xFF,0xF7,0x0D,0xFD,0x08,0x99,0x00,0x2E,0x19,0xDB,0x09,0x19,0x18,0xE0, + 0x09,0x98,0x64,0x21,0x48,0x43,0x01,0x99,0xFF,0xF7,0x02,0xFD,0x64,0x21,0x08,0x1A, + 0x31,0x1E,0x05,0x90,0x00,0xDC,0x71,0x42,0x48,0x43,0x64,0x21,0xFF,0xF7,0xF8,0xFC, + 0x05,0x9A,0x04,0x00,0x38,0x1E,0x00,0xDC,0x78,0x42,0x50,0x43,0x64,0x21,0xE0,0xE7, + 0x09,0x1B,0x06,0x9A,0x00,0x2F,0x01,0xDB,0x10,0x18,0x00,0xE0,0x10,0x1A,0x16,0x4A, + 0x0C,0x9B,0x53,0x53,0x0A,0x9B,0x0B,0x9A,0x5A,0x80,0x13,0x4A,0x13,0x4B,0x24,0x32, + 0x51,0x53,0x07,0x9A,0x89,0x05,0x50,0x80,0x0D,0x9A,0x89,0x09,0x1A,0x40,0x0A,0x43, + 0x91,0x0A,0x89,0x02,0x80,0x05,0x80,0x0D,0x01,0x43,0x0E,0x98,0x01,0x60,0x04,0x98, + 0x40,0x1C,0x04,0x90,0x03,0x98,0x40,0x1C,0x03,0x90,0x04,0x98,0x10,0x99,0x88,0x42, + 0x00,0xDA,0xBC,0xE6,0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x78,0x00,0x00, + 0xA0,0x79,0x00,0x00,0xF0,0x05,0x00,0x20,0xCA,0x0B,0x00,0x20,0xFF,0xFF,0x00,0xFC, + 0x10,0x4B,0x30,0xB4,0x27,0x21,0xDA,0x88,0x49,0x01,0x80,0x24,0x59,0x18,0x00,0x28, + 0x0E,0xD0,0x0D,0x48,0x45,0x7B,0x8D,0x82,0xC5,0x89,0xCD,0x82,0x05,0x8A,0x0D,0x83, + 0x40,0x8A,0x48,0x83,0x08,0x48,0x20,0x30,0x00,0x89,0x22,0x43,0x88,0x83,0x06,0xE0, + 0x00,0x20,0x88,0x82,0xC8,0x82,0x08,0x83,0x48,0x83,0xA2,0x43,0x88,0x83,0xDA,0x80, + 0x30,0xBC,0x70,0x47,0xF0,0x05,0x00,0x20,0x80,0x78,0x00,0x00,0x7F,0xB5,0x24,0x4D, + 0x04,0x00,0x1A,0x28,0x0B,0xD1,0x28,0x6A,0x00,0x28,0x08,0xD1,0x68,0x6A,0x00,0x28, + 0x05,0xD1,0x20,0x4C,0x01,0xF0,0x86,0xFE,0x64,0x1E,0xFB,0xD2,0x14,0xE0,0x05,0xF0, + 0x57,0xF8,0x00,0x20,0x01,0xF0,0xF4,0xFC,0x01,0xF0,0x72,0xFD,0x01,0xF0,0xBA,0xFD, + 0x03,0xAA,0x01,0xA9,0x02,0xA8,0x04,0xF0,0x4F,0xFA,0x03,0x00,0x01,0x9A,0x02,0x99, + 0x03,0x98,0x00,0x94,0x00,0xF0,0x30,0xF8,0x02,0x20,0x06,0xF0,0xA1,0xF8,0x02,0x20, + 0x06,0xF0,0x92,0xF8,0x10,0x48,0xE9,0x68,0xC1,0x61,0x29,0x69,0xC1,0x61,0x0F,0x49, + 0xCA,0x68,0x52,0x08,0x52,0x00,0xCA,0x60,0x0D,0x4A,0x0E,0x49,0x02,0xE0,0xD3,0x68, + 0x8B,0x42,0x02,0xD8,0x43,0x69,0x9B,0x06,0xF9,0xD5,0x41,0x68,0x89,0x07,0xFC,0xD5, + 0x01,0xF0,0x66,0xFE,0x01,0x20,0x00,0xF0,0x6B,0xF8,0x7F,0xBC,0x08,0xBC,0x18,0x47, + 0xC0,0x75,0x00,0x00,0xE7,0x03,0x00,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40, + 0x00,0x40,0x00,0x40,0x50,0xC3,0x00,0x00,0xFF,0xB5,0x05,0x00,0x0E,0x00,0x91,0xB0, + 0xFF,0xF7,0xD0,0xF9,0x1C,0x48,0x01,0x27,0x04,0x04,0x24,0x0C,0x7F,0x02,0x00,0x22, + 0x39,0x00,0x20,0x00,0xFF,0xF7,0x1E,0xFD,0x18,0x49,0x3A,0x00,0x20,0x00,0x00,0x23, + 0xFF,0xF7,0x20,0xFD,0x16,0x49,0x40,0x22,0x01,0xA8,0x04,0xF0,0x92,0xF9,0x14,0x99, + 0x28,0x04,0x09,0x03,0x08,0x43,0x13,0x49,0x08,0x43,0x04,0x90,0x13,0x99,0x30,0x04, + 0x08,0x43,0x05,0x90,0x10,0x48,0x11,0x49,0xC0,0x6B,0x10,0x90,0x0C,0x48,0x80,0x69, + 0x40,0x1C,0x07,0x90,0x00,0x20,0x8D,0x42,0x09,0x90,0x02,0xD1,0x06,0x99,0x49,0x1C, + 0x06,0x91,0x1A,0x99,0x1A,0x29,0x00,0xD1,0x0A,0x90,0x01,0xA8,0x06,0xF0,0xB4,0xF8, + 0x15,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x7E,0x00,0x00,0x00,0x00,0x10,0x40, + 0xC0,0x75,0x00,0x00,0xAB,0x0C,0x00,0x80,0xC0,0x0F,0x00,0x20,0xEC,0x0D,0x00,0x00, + 0x02,0x4A,0x51,0x69,0x81,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x02,0x4A,0x51,0x69,0x01,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x78,0x47,0xC0,0x46,0x01,0x21,0xA0,0xE3,0x50,0x30,0x92,0xE5,0x0C,0x10,0xA0,0xE3, + 0x03,0x00,0x80,0xE1,0x50,0x00,0x82,0xE5,0x00,0x00,0x00,0xEA,0x00,0x00,0xA0,0xE1, + 0x01,0x10,0x51,0xE2,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x01,0x48,0x40,0x69, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x01,0x48,0x80,0x6A,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x02,0x49,0x08,0x62,0x00,0x20,0x08,0x62,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x01,0x49,0x48,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x07,0x49,0xFF,0x28,0x04,0xD1,0x01,0x20,0xC8,0x60,0x00,0x20,0x88,0x61,0x70,0x47, + 0x8A,0x69,0x12,0x07,0x12,0x0F,0x02,0x43,0x8A,0x61,0x02,0x20,0xC8,0x60,0x70,0x47, + 0x40,0x00,0x00,0x40,0xF0,0xB5,0x00,0x20,0xF3,0xB0,0x62,0x90,0xFF,0x49,0x40,0x1E, + 0x5E,0x90,0xCB,0x79,0xFE,0x4F,0xFF,0x48,0xFA,0x88,0x54,0x06,0x00,0xD4,0xC3,0x78, + 0x54,0x06,0x05,0x93,0x0B,0x7A,0x00,0xD4,0x03,0x79,0xFB,0x4C,0xA4,0x8A,0x1B,0x19, + 0x1B,0x06,0x1B,0x0E,0x04,0x93,0x4B,0x7A,0x54,0x06,0x00,0xD4,0x43,0x79,0x52,0x06, + 0x03,0x93,0x89,0x7A,0x00,0xD4,0x81,0x79,0x00,0x20,0xF4,0x4C,0x02,0x91,0x3D,0x79, + 0x01,0x26,0x01,0x90,0x13,0xE0,0x0A,0x20,0x70,0x43,0x43,0x21,0xC0,0x19,0xC9,0x00, + 0x09,0x5C,0x00,0x29,0x0A,0xD0,0xEE,0x49,0x40,0x18,0x02,0xF0,0x43,0xFE,0x00,0x28, + 0x04,0xD0,0x01,0x98,0x40,0x1C,0x00,0x06,0x00,0x0E,0x01,0x90,0x76,0x1C,0xA0,0x78, + 0xB0,0x42,0xE8,0xDA,0xE7,0x48,0x72,0x90,0xC2,0x8A,0x41,0x8B,0x50,0x1A,0x00,0x28, + 0x00,0xDC,0x88,0x1A,0x03,0x04,0x72,0x98,0x72,0x99,0x00,0x8B,0x89,0x8B,0x1B,0x0C, + 0x42,0x1A,0x00,0x2A,0x00,0xDC,0x0A,0x1A,0x10,0x04,0x72,0x9A,0x00,0x21,0x91,0x74, + 0x72,0x9A,0x00,0x0C,0xD1,0x74,0x72,0x9A,0x11,0x75,0x01,0x99,0x00,0x29,0x10,0xD0, + 0x1E,0x2B,0x0E,0xD2,0x32,0x28,0x03,0xD2,0x72,0x98,0x01,0x21,0x81,0x74,0x08,0xE0, + 0x64,0x28,0x03,0xD2,0x72,0x99,0x01,0x20,0xC8,0x74,0x02,0xE0,0x72,0x98,0x01,0x21, + 0x01,0x75,0x72,0x98,0x40,0x7C,0x00,0x28,0x16,0xD1,0x72,0x98,0x80,0x7C,0x00,0x28, + 0x02,0xD0,0x05,0x98,0x80,0x1C,0x0C,0xE0,0x72,0x98,0xC0,0x7C,0x00,0x28,0x02,0xD0, + 0x05,0x98,0x00,0x1D,0x05,0xE0,0x72,0x98,0x00,0x7D,0x00,0x28,0x04,0xD0,0x05,0x98, + 0x80,0x1D,0x00,0x06,0x00,0x0E,0x05,0x90,0x09,0x22,0x00,0x21,0x5B,0xA8,0x04,0xF0, + 0x8B,0xF8,0xF8,0x88,0xFF,0x21,0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06,0x05,0xD5, + 0x01,0xF0,0xAE,0xF8,0x73,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xE0,0x78,0x00,0x28, + 0x01,0xD0,0x40,0x1E,0xE0,0x70,0x60,0x78,0x00,0x2D,0x02,0xD1,0x00,0x28,0x18,0xD0, + 0x18,0xE0,0x00,0x28,0x16,0xD1,0xB1,0x48,0x5A,0x22,0x00,0x21,0x5E,0x30,0x04,0xF0, + 0x6B,0xF8,0xE0,0x78,0x00,0x28,0x0C,0xD1,0x01,0x26,0x07,0xE0,0x31,0x06,0x09,0x0E, + 0x0A,0x00,0x14,0x23,0x5B,0xA8,0xFF,0xF7,0x7B,0xFC,0x76,0x1C,0xAE,0x42,0xF5,0xDD, + 0x25,0x70,0xE6,0xE1,0x09,0x22,0x01,0x21,0x58,0xA8,0x04,0xF0,0x55,0xF8,0x02,0x20, + 0xA3,0x49,0x06,0x90,0x9E,0x48,0x5D,0x31,0x41,0x18,0x71,0x91,0xA0,0x49,0x54,0x31, + 0x40,0x18,0x70,0x90,0x13,0xE1,0x08,0x26,0x07,0xAF,0x24,0x20,0x70,0x43,0x07,0xA9, + 0x40,0x18,0x00,0x21,0x24,0x22,0xC9,0x43,0x04,0xF0,0x3E,0xF8,0x76,0x1E,0xF4,0xD5, + 0x06,0x98,0x01,0xF0,0x0B,0xFC,0x01,0x27,0x5F,0x90,0x53,0xE0,0x5F,0x98,0x01,0x26, + 0x60,0x90,0x4B,0xE0,0x0A,0x20,0x70,0x43,0x8D,0x49,0x40,0x18,0x01,0x00,0xFF,0x30, + 0xFF,0x30,0x02,0x30,0x6F,0x90,0x00,0x7E,0x00,0x28,0x3E,0xD0,0x8C,0x48,0x08,0x18, + 0x6E,0x90,0x02,0xF0,0x7F,0xFD,0x06,0x99,0x08,0x43,0x07,0xD0,0x6E,0x98,0x02,0xF0, + 0x79,0xFD,0x00,0x28,0x31,0xD0,0x06,0x98,0x00,0x28,0x2E,0xD0,0x80,0x49,0x78,0x00, + 0x40,0x18,0xC0,0x30,0x6D,0x90,0x80,0x89,0x0A,0x21,0xFF,0xF7,0x6B,0xFB,0x6F,0x99, + 0x49,0x8B,0x0A,0x1A,0x00,0x2A,0x00,0xDC,0x42,0x1A,0x6D,0x98,0x61,0x92,0xC0,0x8B, + 0x0A,0x21,0xFF,0xF7,0x5F,0xFB,0x6F,0x99,0x89,0x8B,0x0A,0x1A,0x00,0x2A,0x00,0xDC, + 0x42,0x1A,0x61,0x98,0x01,0x00,0x41,0x43,0x10,0x00,0x50,0x43,0x08,0x18,0x60,0x99, + 0x88,0x42,0x04,0xDA,0x24,0x21,0x79,0x43,0x07,0xAA,0x56,0x50,0x60,0x90,0x24,0x21, + 0x79,0x43,0x07,0xAA,0x89,0x18,0xB2,0x00,0x88,0x50,0x76,0x1C,0xA0,0x78,0xB0,0x42, + 0xB0,0xDA,0x7F,0x1C,0xAF,0x42,0xA9,0xDD,0x01,0x20,0xA4,0xE0,0x01,0x23,0x5F,0x9A, + 0x18,0x00,0x15,0xE0,0x5B,0xA9,0x09,0x5C,0x00,0x29,0x10,0xD1,0x24,0x21,0x41,0x43, + 0x0F,0x00,0x07,0xAE,0x89,0x19,0xF6,0x59,0xB7,0x00,0xC9,0x59,0x91,0x42,0x06,0xDA, + 0x00,0x29,0x04,0xDB,0x00,0x2E,0x02,0xDB,0x0A,0x00,0x00,0x23,0x5E,0x90,0x40,0x1C, + 0xA8,0x42,0xE7,0xDD,0x00,0x2B,0x7E,0xD1,0x62,0x98,0x5E,0x9E,0x40,0x1C,0x62,0x90, + 0x24,0x20,0x46,0x43,0x07,0xA8,0x80,0x59,0x0A,0x21,0x48,0x43,0x50,0x49,0x0A,0x22, + 0x41,0x18,0x5E,0x98,0xFF,0x31,0x50,0x43,0x4D,0x4A,0xBF,0x31,0x87,0x18,0x38,0x00, + 0xFF,0x30,0x65,0x30,0x0A,0x22,0x03,0xF0,0x8B,0xFF,0x5E,0x98,0x48,0x49,0x40,0x00, + 0x40,0x18,0xC0,0x30,0x6C,0x90,0x80,0x89,0x0A,0x21,0xFF,0xF7,0xFB,0xFA,0xFF,0x37, + 0x61,0x37,0xF8,0x80,0x6C,0x98,0x0A,0x21,0xC0,0x8B,0xFF,0xF7,0xF3,0xFA,0x38,0x81, + 0x3F,0x48,0x5E,0x99,0x40,0x18,0xFF,0x30,0x01,0x30,0x00,0x7C,0x78,0x71,0xB8,0x7A, + 0x05,0x99,0x49,0x1C,0x88,0x42,0x01,0xD2,0x40,0x1C,0xB8,0x72,0xB8,0x7A,0x13,0x28, + 0x6B,0x90,0x09,0xD9,0x14,0x21,0xFF,0xF7,0xDD,0xFA,0x04,0x99,0x89,0x1C,0x88,0x42, + 0x02,0xD2,0x6B,0x98,0x14,0x30,0xB8,0x72,0x38,0x79,0x5E,0x9A,0x5B,0xA9,0x88,0x54, + 0x71,0x9A,0x5E,0x99,0x81,0x54,0x39,0x79,0x70,0x9A,0x00,0x20,0x88,0x54,0x07,0xA9, + 0x89,0x59,0x58,0xAA,0x50,0x54,0x01,0x21,0x23,0xE0,0x08,0x00,0x24,0x23,0x58,0x43, + 0x07,0xAB,0x6A,0x90,0xC0,0x18,0x69,0x90,0x9B,0x59,0x00,0x22,0xD2,0x43,0x9B,0x00, + 0xC2,0x50,0x5B,0xA8,0x40,0x5C,0x5F,0x9B,0x00,0x28,0x11,0xD1,0xA2,0x78,0x01,0x20, + 0x94,0x46,0x0B,0xE0,0x69,0x9A,0x87,0x00,0xD2,0x59,0x00,0x2A,0x05,0xDB,0x9A,0x42, + 0x07,0xAF,0x02,0xDA,0x6A,0x9B,0xF8,0x50,0x13,0x00,0x40,0x1C,0x84,0x45,0xF1,0xDA, + 0x49,0x1C,0xA9,0x42,0x00,0xE0,0x04,0xE0,0xD7,0xDD,0xA0,0x78,0x62,0x99,0x88,0x42, + 0x05,0xDD,0x64,0x98,0x40,0x1C,0xA8,0x42,0x64,0x90,0x00,0xDC,0x56,0xE7,0x06,0x98, + 0x41,0x1E,0x09,0x06,0x09,0x0E,0x00,0x28,0x06,0x91,0x00,0xD0,0xE3,0xE6,0x01,0x26, + 0x65,0x96,0x63,0x90,0x6F,0xE0,0x58,0xA8,0x80,0x5D,0x00,0x28,0x6A,0xD0,0x65,0x98, + 0x07,0x49,0x2F,0x18,0x0A,0x20,0x70,0x43,0x40,0x18,0x68,0x90,0xFF,0x30,0xFF,0x30, + 0x02,0x30,0x67,0x90,0x00,0x7E,0x70,0x99,0x40,0x5C,0x0D,0xE0,0x20,0x7A,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00,0xD0,0x0A,0x00,0x20,0x50,0x07,0x00,0x20, + 0x1E,0x02,0x00,0x00,0x70,0x08,0x00,0x20,0x03,0x99,0x88,0x42,0x34,0xD2,0x08,0x2F, + 0x32,0xDC,0x4C,0x49,0x68,0x98,0x40,0x18,0x02,0xF0,0x5C,0xFC,0x00,0x28,0x2B,0xD0, + 0x67,0x98,0x70,0x99,0x00,0x7E,0x70,0x9A,0x47,0x4B,0x41,0x5C,0x49,0x1C,0x81,0x54, + 0x68,0x98,0x43,0x21,0xC9,0x00,0x41,0x18,0x0A,0x20,0x78,0x43,0xC0,0x18,0x66,0x90, + 0xFF,0x30,0x65,0x30,0x0A,0x22,0x03,0xF0,0xCB,0xFE,0x68,0x99,0x66,0x98,0xFF,0x31, + 0xC1,0x31,0x4A,0x79,0xFF,0x30,0x61,0x30,0xC2,0x72,0x89,0x79,0x01,0x73,0x67,0x98, + 0x5B,0xA9,0x00,0x7E,0xC8,0x55,0x71,0x99,0x47,0x54,0x65,0x98,0x40,0x1C,0x65,0x90, + 0x63,0x98,0x40,0x1C,0x63,0x90,0x15,0xE0,0x32,0x49,0x68,0x98,0x32,0x4F,0x40,0x18, + 0x02,0xF0,0x28,0xFC,0x00,0x28,0x0D,0xD0,0x72,0x99,0x01,0x20,0x08,0x74,0x67,0x98, + 0x80,0x7F,0x13,0x28,0x06,0xD9,0x60,0x78,0x01,0x28,0x03,0xD1,0xF8,0x88,0x04,0x21, + 0x08,0x43,0xF8,0x80,0x76,0x1C,0xA0,0x78,0xB0,0x42,0x8C,0xDA,0x26,0x48,0xC0,0x88, + 0x41,0x07,0x05,0xD5,0x02,0x99,0x04,0x22,0xE1,0x70,0x23,0x49,0x90,0x43,0xC8,0x80, + 0x01,0x26,0x31,0xE0,0x5B,0xA8,0x80,0x5D,0x00,0x28,0x1A,0xD1,0x13,0x22,0x01,0x20, + 0x52,0x01,0x05,0x23,0xDB,0x01,0x1C,0x49,0x09,0x18,0x8F,0x18,0xFF,0x7E,0x00,0x2F, + 0x0C,0xD1,0xC9,0x18,0x09,0x79,0x00,0x29,0x08,0xD1,0x02,0x06,0x31,0x06,0x12,0x0E, + 0x09,0x0E,0x01,0x23,0x5B,0xA8,0xFF,0xF7,0xAB,0xFA,0x02,0xE0,0x40,0x1C,0x09,0x28, + 0xE9,0xDB,0xE0,0x78,0x00,0x28,0x0E,0xD0,0x0A,0x20,0x70,0x43,0x0E,0x49,0x47,0x18, + 0x38,0x00,0xFF,0x30,0x6B,0x30,0x02,0xF0,0xDD,0xFB,0x00,0x28,0x03,0xD1,0x01,0x20, + 0xFF,0x37,0x61,0x37,0xB8,0x72,0x76,0x1C,0xAE,0x42,0xCB,0xDD,0x63,0x98,0x28,0x18, + 0x20,0x70,0x20,0x78,0x05,0x49,0x5A,0x22,0xA0,0x70,0x08,0x00,0xB4,0x30,0x03,0xF0, + 0x4F,0xFE,0xE7,0xE5,0x1E,0x02,0x00,0x00,0xF0,0x05,0x00,0x20,0x54,0x07,0x00,0x20, + 0xF1,0xB5,0x3C,0x48,0x86,0xB0,0x05,0x90,0x00,0x20,0x04,0x90,0x3A,0x48,0x41,0x7F, + 0x01,0x91,0x01,0x00,0x20,0x39,0x49,0x7F,0x00,0x91,0x00,0x21,0x02,0x91,0x01,0x7D, + 0x00,0x20,0xC0,0x43,0x00,0x29,0x06,0x99,0x03,0xD1,0x00,0x29,0x03,0xD1,0x01,0x20, + 0x01,0xE0,0x00,0x29,0xFB,0xD1,0x03,0x90,0x01,0xF0,0x5C,0xF9,0x01,0xF0,0x0A,0xFA, + 0x00,0x24,0x27,0x00,0x37,0xE0,0x00,0x26,0x30,0xE0,0x31,0x00,0x38,0x00,0x02,0xF0, + 0xB1,0xF8,0x00,0x28,0x28,0xD0,0x29,0x78,0x05,0x9A,0x79,0x43,0x89,0x19,0x89,0x00, + 0x51,0x58,0x09,0x05,0x09,0x0D,0x0D,0x1A,0x06,0x98,0x00,0x28,0x0D,0xD0,0x00,0x2D, + 0x1A,0xDA,0x03,0x9A,0x31,0x00,0x38,0x00,0x05,0xF0,0x26,0xFB,0x40,0x1C,0x14,0xD1, + 0x00,0x98,0x28,0x18,0x10,0xD5,0x02,0x20,0x0D,0xE0,0x00,0x2D,0x0C,0xDD,0x03,0x9A, + 0x31,0x00,0x38,0x00,0x05,0xF0,0x18,0xFB,0x40,0x1C,0x06,0xD1,0x01,0x98,0x28,0x1A, + 0x00,0x28,0x01,0xDD,0x03,0x20,0x04,0x90,0x64,0x1C,0x76,0x1C,0x13,0x4D,0x28,0x78, + 0x86,0x42,0xCA,0xD3,0x7F,0x1C,0x12,0x48,0x00,0x78,0x87,0x42,0xC3,0xD3,0x10,0x48, + 0x0E,0x49,0x00,0x78,0x09,0x78,0x48,0x43,0xA0,0x42,0x04,0xD1,0x04,0x98,0x07,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x02,0x98,0x41,0x1C,0x02,0x91,0x01,0x21,0x49,0x02, + 0x88,0x42,0xA9,0xD9,0x06,0x98,0x00,0x28,0x01,0xD0,0x02,0x20,0x00,0xE0,0x03,0x20, + 0x04,0x90,0xEC,0xE7,0x00,0x02,0x10,0x40,0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0xF0,0xB5,0x8A,0x4A,0xFF,0xB0,0x88,0xB0,0x40,0x18,0x85,0x92, + 0x42,0x00,0x80,0x18,0x84,0x90,0x48,0x42,0x83,0x90,0x86,0x48,0x86,0x4E,0x00,0x7A, + 0x02,0xAF,0x82,0x90,0x85,0x48,0x86,0x90,0x00,0x7D,0x00,0x28,0x02,0xD1,0x83,0x98, + 0x40,0x42,0x83,0x90,0x01,0x22,0x52,0x02,0x00,0x21,0x30,0x00,0x03,0xF0,0xCC,0xFD, + 0x00,0x25,0x39,0xE0,0x00,0x24,0x32,0xE0,0x7C,0x48,0x20,0x38,0x01,0x7D,0xC9,0x07, + 0x15,0xD0,0x7B,0x49,0x09,0x78,0x00,0x29,0x82,0x99,0x16,0xD0,0x8D,0x42,0x0E,0xD1, + 0x81,0x7D,0xA1,0x42,0x0B,0xD0,0xC1,0x7D,0xA1,0x42,0x08,0xD0,0x01,0x7E,0xA1,0x42, + 0x05,0xD0,0x41,0x7E,0xA1,0x42,0x02,0xD0,0x80,0x7E,0xA0,0x42,0x16,0xD1,0x83,0x9A, + 0x21,0x00,0x28,0x00,0x05,0xF0,0xA0,0xFA,0x10,0xE0,0x8C,0x42,0xF7,0xD1,0x81,0x7D, + 0xA9,0x42,0xF4,0xD0,0xC1,0x7D,0xA9,0x42,0xF1,0xD0,0x01,0x7E,0xA9,0x42,0xEE,0xD0, + 0x41,0x7E,0xA9,0x42,0xEB,0xD0,0x80,0x7E,0xA8,0x42,0xE8,0xD0,0x64,0x1C,0x65,0x48, + 0x00,0x78,0x84,0x42,0xC8,0xD3,0x6D,0x1C,0x63,0x4C,0x20,0x78,0x85,0x42,0xC1,0xD3, + 0x01,0xF0,0x98,0xF8,0x01,0xF0,0x46,0xF9,0x00,0x25,0x2A,0xE0,0x00,0x24,0x23,0xE0, + 0x21,0x00,0x28,0x00,0x01,0xF0,0xEE,0xFF,0x00,0x28,0x12,0xD0,0x59,0x49,0x85,0x9B, + 0x09,0x78,0x69,0x43,0x0A,0x19,0x91,0x00,0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D, + 0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0,0x40,0x1A,0x51,0x00, + 0x70,0x52,0x21,0x00,0x28,0x00,0x02,0xF0,0x5B,0xF8,0x4E,0x49,0x09,0x78,0x69,0x43, + 0x09,0x19,0x49,0x00,0x64,0x1C,0x78,0x52,0x4A,0x48,0x00,0x78,0x84,0x42,0xD7,0xD3, + 0x6D,0x1C,0x49,0x48,0x01,0x78,0x8D,0x42,0xD0,0xD3,0x00,0x21,0x01,0x91,0x01,0xF0, + 0x11,0xF9,0x00,0x25,0x51,0xE0,0x00,0x24,0x4A,0xE0,0x21,0x00,0x28,0x00,0x01,0xF0, + 0xB9,0xFF,0x00,0x28,0x43,0xD0,0x3F,0x49,0x85,0x9B,0x09,0x78,0x69,0x43,0x09,0x19, + 0x8A,0x00,0x9A,0x58,0x03,0x04,0x12,0x05,0x12,0x0D,0x1B,0x0C,0xD3,0x1A,0x00,0x2B, + 0x01,0xDD,0x10,0x1A,0x00,0xE0,0x80,0x1A,0x49,0x00,0x73,0x5A,0x00,0x04,0x00,0x0C, + 0x83,0x42,0x0A,0xD9,0x70,0x52,0x21,0x00,0x28,0x00,0x02,0xF0,0x21,0xF8,0x31,0x49, + 0x09,0x78,0x69,0x43,0x09,0x19,0x49,0x00,0x78,0x52,0x01,0x98,0x03,0x21,0xFF,0xF7, + 0x79,0xF8,0x00,0x29,0x01,0xD0,0x02,0x29,0x0D,0xD1,0x86,0x98,0x00,0x7D,0x00,0x28, + 0x02,0xD1,0x00,0x22,0x43,0x1E,0x01,0xE0,0x01,0x22,0x00,0x23,0x21,0x00,0x28,0x00, + 0x05,0xF0,0xDC,0xF9,0x0B,0xE0,0x00,0x22,0xD2,0x43,0x00,0x23,0x21,0x00,0x28,0x00, + 0x05,0xF0,0xD4,0xF9,0x00,0x28,0x02,0xD1,0x00,0x22,0x01,0x23,0xEE,0xE7,0x64,0x1C, + 0x1C,0x48,0x00,0x78,0x84,0x42,0xB0,0xD3,0x6D,0x1C,0x1B,0x48,0x00,0x78,0x85,0x42, + 0xA9,0xD3,0x01,0x98,0x40,0x1C,0x01,0x90,0x84,0x98,0x40,0x1E,0x84,0x90,0x1B,0xD2, + 0x14,0x4E,0x00,0x25,0x0E,0xE0,0x00,0x24,0x08,0xE0,0x68,0x43,0x00,0x19,0x40,0x00, + 0x3A,0x5A,0x21,0x00,0x28,0x00,0x05,0xF0,0xD1,0xF9,0x64,0x1C,0x30,0x78,0x84,0x42, + 0xF3,0xD3,0x6D,0x1C,0x0C,0x48,0x00,0x78,0x85,0x42,0xEC,0xD3,0x7F,0xB0,0x08,0xB0, + 0xF0,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x00,0xF0,0xE4,0xFF,0x7F,0xE7,0x00,0x00, + 0x00,0x02,0x10,0x40,0x70,0x0A,0x00,0x20,0x40,0x00,0x00,0x20,0x20,0x78,0x00,0x00, + 0xFD,0x0A,0x00,0x20,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xF8,0xB5,0x01,0x22, + 0x52,0x07,0x10,0x68,0x01,0x28,0x03,0xD0,0x10,0x68,0x01,0x28,0x43,0xD9,0x02,0x20, + 0x86,0x46,0x22,0x48,0x00,0x90,0x80,0x7A,0x00,0x28,0x3C,0xD0,0x00,0x21,0x13,0x25, + 0x1F,0x4F,0xAD,0x01,0x32,0xE0,0x72,0x46,0x8A,0x18,0x92,0x00,0x10,0x18,0x02,0x68, + 0x84,0x46,0x90,0x0F,0xC0,0x07,0x28,0xD1,0x00,0x9C,0x93,0x00,0xA6,0x7A,0x1B,0x0F, + 0x21,0xE0,0x84,0x00,0xE4,0x19,0x64,0x19,0xE4,0x68,0xA4,0x00,0x24,0x0F,0xA3,0x42, + 0x18,0xD1,0x80,0x00,0xC0,0x19,0x40,0x19,0xC0,0x68,0x92,0x0A,0x83,0x05,0x92,0x02, + 0x9B,0x0D,0x1A,0x43,0x0F,0x4B,0x1A,0x40,0x83,0x01,0x9B,0x0D,0x1B,0x04,0x1A,0x43, + 0x3F,0x23,0x9B,0x02,0x00,0x04,0x80,0x0E,0x9A,0x43,0x80,0x02,0x02,0x43,0x60,0x46, + 0x02,0x60,0x02,0xE0,0x40,0x1C,0x86,0x42,0xDB,0xD8,0x49,0x1C,0x01,0x20,0x40,0x07, + 0x02,0x68,0x8A,0x42,0xC7,0xD8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xB0,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xFF,0xFF,0x00,0xFC,0xFC,0xB5,0x04,0x00,0x5E,0x48,0x8E,0x46, + 0x02,0x8C,0x5E,0x49,0x40,0x8C,0x01,0x91,0xCB,0x88,0x40,0x39,0x00,0x91,0x89,0x7E, + 0x00,0x25,0x2F,0x00,0xC9,0x07,0x01,0x26,0x00,0x29,0xAC,0x46,0x01,0xD1,0xE6,0x71, + 0xA6,0xE0,0x01,0x99,0x09,0x79,0x00,0x29,0x0D,0xD0,0x01,0x29,0x0F,0xD0,0x02,0x29, + 0x07,0xD0,0x03,0x29,0xF4,0xD1,0x17,0x00,0xD1,0x18,0x0A,0x04,0x12,0x0C,0x03,0x00, + 0x05,0xE0,0x1A,0x00,0xFB,0xE7,0x84,0x46,0xC0,0x18,0x03,0x04,0x1B,0x0C,0x60,0x88, + 0xA1,0x88,0x87,0x42,0x58,0xDC,0x82,0x42,0x56,0xDB,0x8C,0x45,0x54,0xDC,0x8B,0x42, + 0x52,0xDB,0x01,0x25,0x72,0x46,0x00,0x2A,0x77,0xD0,0x06,0x27,0x01,0x2A,0x0E,0xD0, + 0x09,0x23,0x02,0x2A,0x17,0xD0,0x03,0x2A,0x71,0xD1,0xE2,0x79,0xD7,0x07,0x28,0xD0, + 0x01,0x2A,0x01,0xD0,0x05,0x2A,0x22,0xD1,0x00,0x25,0xE3,0x71,0x67,0xE0,0x00,0x9A, + 0x92,0x7D,0x00,0x2A,0x63,0xD1,0x00,0xF0,0x87,0xF8,0x06,0x00,0x0F,0xD1,0x02,0x20, + 0xE0,0x71,0x26,0x72,0x5B,0xE0,0xE2,0x79,0xD6,0x07,0xE9,0xD1,0x92,0x07,0x56,0xD5, + 0x00,0xF0,0x7A,0xF8,0x06,0x00,0x08,0xD0,0x20,0x7A,0x00,0x28,0x05,0xD1,0x31,0x00, + 0x20,0x00,0xE7,0x71,0xFE,0xF7,0xE2,0xFF,0xEB,0xE7,0x02,0x20,0x46,0xE0,0x11,0x20, + 0x44,0xE0,0x92,0x07,0x43,0xD5,0x00,0xF0,0x67,0xF8,0x21,0x7A,0x00,0x28,0x0A,0xD0, + 0x00,0x29,0x0C,0xD0,0x81,0x42,0x08,0xD1,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7, + 0xCD,0xFF,0xA6,0x71,0x05,0xE0,0x00,0x29,0x01,0xD0,0x12,0x20,0xF5,0xE7,0x02,0x20, + 0xE0,0x71,0x00,0x20,0x20,0x72,0x2A,0xE0,0x70,0x46,0x00,0x28,0x25,0xD0,0x01,0x28, + 0x06,0xD0,0x02,0x28,0x06,0xD0,0x03,0x28,0x21,0xD1,0xE0,0x79,0x80,0x07,0x0E,0xD4, + 0xE6,0x71,0x1C,0xE0,0xE0,0x79,0x80,0x07,0xFA,0xD5,0x21,0x7A,0x00,0x29,0x04,0xD0, + 0x12,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0xA9,0xFF,0xE6,0x71,0x09,0xE0,0x02,0x20, + 0xE0,0x71,0x21,0x7A,0x00,0x29,0x04,0xD0,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7, + 0x9D,0xFF,0x01,0x25,0xA6,0x71,0x02,0xE0,0xFF,0xE7,0x00,0x20,0xE0,0x71,0x08,0x49, + 0xC8,0x88,0x82,0x07,0x04,0xD1,0xE2,0x79,0x92,0x07,0x92,0x0F,0x10,0x43,0xC8,0x80, + 0x28,0x00,0xFC,0xBC,0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0x70,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0x06,0x48,0x40,0x8B,0x00,0x28,0x06,0xD0,0x05,0x48,0xC0,0x88, + 0x00,0x06,0x80,0x0F,0x01,0xD0,0x00,0x20,0x70,0x47,0x01,0x20,0x70,0x47,0x00,0x00, + 0xA0,0x78,0x00,0x00,0xF0,0x05,0x00,0x20,0xF0,0xB4,0x18,0x4B,0x05,0x00,0xDE,0x7E, + 0x00,0x22,0x10,0x00,0x00,0x2E,0x26,0xD0,0x1B,0x7D,0x00,0x2B,0x23,0xD1,0x20,0xE0, + 0x13,0x4B,0xD4,0x00,0xE3,0x18,0x11,0x24,0xA4,0x01,0x1C,0x19,0x1C,0x27,0xE7,0x5F, + 0xAF,0x42,0x11,0xDC,0x23,0x27,0x7F,0x01,0xDB,0x19,0x00,0x27,0xDF,0x5F,0xAF,0x42, + 0x0A,0xDB,0x1E,0x27,0xE7,0x5F,0x8F,0x42,0x06,0xDC,0x02,0x24,0x1C,0x5F,0x8C,0x42, + 0x02,0xDB,0x50,0x1C,0x00,0x06,0x00,0x0E,0x00,0x28,0x04,0xD1,0x52,0x1C,0x12,0x06, + 0x12,0x0E,0x96,0x42,0xDC,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00,0x30,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xF0,0xB5,0x00,0x20,0x8F,0xB0,0x0A,0x90,0x09,0x90,0xC7,0x48, + 0xC7,0x4A,0x01,0x8A,0xD0,0x88,0x43,0x06,0x02,0xD4,0xC4,0x49,0xC0,0x39,0x89,0x89, + 0xC2,0x4C,0xC4,0x4E,0x60,0x34,0x08,0x91,0xE1,0x7B,0x43,0x06,0x00,0xD4,0xF1,0x7A, + 0x43,0x06,0x07,0x91,0xA1,0x7B,0x00,0xD4,0xB1,0x7A,0x43,0x06,0x06,0x91,0x61,0x7C, + 0x00,0xD4,0x71,0x7B,0x43,0x06,0x05,0x91,0xA1,0x79,0x00,0xD4,0xB1,0x78,0x02,0x07, + 0x04,0x91,0xB7,0x49,0x09,0x79,0x05,0xD5,0xB5,0x4A,0x00,0x29,0x02,0xD1,0x08,0x23, + 0x98,0x43,0xD0,0x80,0xB4,0x48,0x18,0x22,0x82,0x5E,0xFF,0x23,0x01,0x33,0x28,0x2A, + 0x03,0xDD,0x1A,0x22,0x82,0x5E,0x1E,0x2A,0x03,0xDC,0x1C,0x22,0x82,0x5E,0x28,0x2A, + 0x05,0xDD,0xAB,0x4D,0xEA,0x88,0x1A,0x43,0xEA,0x80,0x00,0x22,0x04,0xE0,0x1E,0x22, + 0x82,0x5E,0x00,0x2A,0x02,0xD0,0x52,0x1E,0xC2,0x83,0x03,0xE0,0xA4,0x4A,0xD0,0x88, + 0x98,0x43,0xD0,0x80,0x08,0x98,0x80,0x04,0x78,0xD5,0xA3,0x4A,0x00,0x20,0x20,0x32, + 0x52,0x78,0x00,0x2A,0x02,0xD1,0x00,0x29,0x00,0xD1,0x01,0x20,0x00,0x90,0x00,0xF0, + 0x41,0xF9,0x9B,0x48,0x9D,0x4D,0x00,0x79,0x01,0x28,0x0E,0x90,0x68,0xD1,0x98,0x4B, + 0x19,0x89,0x0D,0x91,0xDF,0x88,0x62,0x89,0x7B,0x06,0x00,0xD4,0xF2,0x88,0x91,0x42, + 0x00,0xD3,0x00,0x20,0x03,0x90,0x0D,0x98,0x0A,0x22,0x0E,0x21,0x50,0x43,0x69,0x5E, + 0x0C,0x91,0xFE,0xF7,0x65,0xFD,0x21,0x78,0x91,0x4B,0x7A,0x06,0x0B,0x93,0x00,0xD4, + 0x19,0x7F,0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x02,0x90,0x0C,0x99, + 0x0D,0x98,0x40,0x1A,0x0A,0x21,0xFE,0xF7,0x53,0xFD,0x61,0x78,0x7A,0x06,0x01,0xD4, + 0x0B,0x99,0x49,0x7F,0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x01,0x90, + 0x2A,0x89,0xA1,0x78,0x01,0x20,0x7B,0x06,0x01,0xD4,0x0B,0x99,0x89,0x7F,0x8A,0x42, + 0x00,0xD8,0x00,0x20,0xE1,0x78,0x84,0x46,0x2A,0x69,0x01,0x20,0x7B,0x06,0x01,0xD4, + 0x0B,0x99,0xC9,0x7F,0x8A,0x42,0x00,0xDB,0x00,0x20,0x03,0x99,0x00,0x29,0x1F,0xD0, + 0x02,0x99,0x00,0x29,0x1C,0xD0,0x01,0x99,0x00,0x29,0x19,0xD0,0x61,0x46,0x00,0x29, + 0x16,0xD0,0x71,0x4A,0x01,0x21,0x80,0x3A,0x52,0x68,0x00,0x2A,0x00,0xD0,0x00,0x21, + 0x01,0x42,0x0D,0xD0,0x68,0x7B,0x00,0x28,0x24,0xD0,0x61,0x7A,0x7A,0x06,0x00,0xD4, + 0x71,0x79,0x88,0x42,0x1E,0xD8,0x40,0x1E,0x68,0x73,0x1B,0xE0,0x36,0xE0,0xFF,0xE7, + 0x63,0x48,0x21,0x79,0xC0,0x88,0x2A,0x69,0x43,0x06,0x00,0xD4,0x31,0x78,0x8A,0x42, + 0x10,0xDB,0x0E,0x99,0x00,0x29,0x0D,0xD0,0xC1,0x06,0x0B,0xD4,0x69,0x7B,0xE2,0x79, + 0x40,0x06,0x00,0xD4,0xF2,0x78,0x91,0x42,0x04,0xD2,0x04,0x98,0x81,0x42,0x01,0xD9, + 0x49,0x1C,0x69,0x73,0x68,0x7B,0x04,0x99,0x10,0x22,0x88,0x42,0x0D,0xD8,0x00,0x98, + 0x00,0x28,0x0A,0xD1,0x52,0x49,0xC8,0x88,0x10,0x43,0xC8,0x80,0xC9,0x88,0x20,0x7A, + 0x49,0x06,0x00,0xD4,0x30,0x79,0x28,0x73,0x08,0xE0,0x4D,0x4B,0xD9,0x88,0xC8,0x06, + 0x04,0xD5,0x28,0x7B,0x00,0x28,0x10,0xD1,0x91,0x43,0xD9,0x80,0x48,0x4F,0x38,0x79, + 0x00,0x28,0x7E,0xD0,0xF8,0x88,0x80,0x06,0x05,0xD5,0x05,0x99,0x06,0x98,0x40,0x1A, + 0x00,0x06,0x00,0x0E,0x06,0x90,0x01,0x22,0x01,0xE0,0x40,0x1E,0xE3,0xE7,0x50,0x00, + 0xC0,0x19,0x84,0x46,0xFF,0x30,0x41,0x30,0xC0,0x88,0x00,0x28,0x65,0xD0,0x07,0x99, + 0x88,0x42,0x09,0xD9,0x08,0x98,0x80,0x07,0x5F,0xD5,0x00,0x20,0x38,0x71,0xF8,0x88, + 0x08,0x21,0x08,0x43,0xF8,0x80,0x58,0xE0,0x06,0x99,0x88,0x42,0x55,0xD3,0x08,0x98, + 0x40,0x07,0x52,0xD5,0x00,0x24,0x01,0x20,0x27,0xE0,0xFF,0x23,0x39,0x18,0x3E,0x33, + 0x5B,0x5C,0x93,0x42,0x20,0xD1,0x64,0x1C,0xFF,0x31,0x01,0x31,0x09,0x7C,0x0A,0x91, + 0x01,0x00,0x12,0xE0,0x4B,0x00,0xDD,0x19,0x2B,0x00,0xC0,0x33,0xDE,0x89,0xE0,0x35, + 0x9E,0x81,0x2D,0x88,0xDD,0x83,0x7B,0x18,0xDD,0x1D,0xF9,0x35,0x6E,0x7C,0xFF,0x33, + 0x21,0x33,0x2E,0x74,0x9E,0x7F,0x49,0x1C,0x5E,0x77,0x3B,0x79,0x8B,0x42,0xE9,0xDA, + 0x39,0x79,0x49,0x1E,0x40,0x1E,0x39,0x71,0x40,0x1C,0x39,0x79,0x81,0x42,0xD4,0xDA, + 0x00,0x2C,0x22,0xDD,0x01,0x2C,0x05,0xDD,0x01,0x20,0x09,0x90,0xF8,0x88,0x20,0x21, + 0x08,0x43,0xF8,0x80,0x60,0x46,0xFF,0x30,0x01,0x30,0xC1,0x8B,0x38,0x79,0x40,0x1C, + 0x00,0x06,0x00,0x0E,0x38,0x71,0x40,0x00,0xC0,0x19,0xC0,0x30,0x81,0x81,0x60,0x46, + 0xFF,0x30,0x21,0x30,0xC1,0x89,0x38,0x79,0x40,0x00,0xC0,0x19,0xC0,0x30,0xC1,0x83, + 0x3B,0x79,0x0D,0x48,0x0A,0x99,0x30,0x38,0x19,0x54,0x52,0x1C,0x08,0x2A,0x8E,0xDB, + 0x00,0xE0,0x06,0xE0,0x09,0x98,0x00,0x28,0x03,0xD1,0xF8,0x88,0x20,0x21,0x88,0x43, + 0xF8,0x80,0x0F,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x40,0x79,0x00,0x00,0x30,0x07,0x00,0x20,0x30,0x0A,0x00,0x20, + 0x20,0x79,0x00,0x00,0xF0,0xB5,0x70,0x48,0xB1,0xB0,0x00,0x78,0x71,0x4B,0x70,0x4A, + 0x01,0x90,0x6E,0x48,0x00,0x78,0x00,0x90,0xD9,0x88,0x16,0x7D,0x6E,0x48,0x4C,0x06, + 0x00,0xD4,0x06,0x7C,0x55,0x7D,0x49,0x06,0x00,0xD4,0x45,0x7C,0x6B,0x48,0x00,0x21, + 0x2B,0x95,0x30,0x90,0xC1,0x81,0x50,0x22,0x16,0xA8,0x2A,0x91,0x03,0xF0,0x9C,0xF9, + 0x01,0x99,0x2B,0x98,0x2B,0x9D,0x08,0x1A,0xAD,0x1C,0x2F,0x90,0x80,0x1C,0x2E,0x90, + 0x35,0xE0,0x00,0x98,0x16,0xA9,0x80,0x1B,0x80,0x1C,0x86,0x46,0x2B,0x98,0xB4,0x1C, + 0x28,0x1A,0x80,0x00,0x47,0x18,0x40,0x3F,0x1E,0xE0,0x01,0x98,0x5C,0x49,0x00,0x1D, + 0x60,0x43,0x40,0x19,0x00,0x04,0x00,0x14,0x40,0x00,0x0A,0x5E,0x55,0x4B,0x68,0x00, + 0xC0,0x18,0x94,0x21,0x41,0x5E,0x60,0x00,0xC3,0x18,0x6C,0x20,0x18,0x5E,0x2A,0x9B, + 0x94,0x46,0xC3,0x18,0x52,0x18,0xD2,0x18,0x2A,0x92,0xBB,0x6B,0x62,0x46,0x9A,0x18, + 0x08,0x18,0x10,0x18,0x64,0x1C,0xB8,0x63,0xA6,0x45,0xDE,0xDC,0x00,0x98,0x71,0x00, + 0x41,0x1A,0xB8,0x6B,0xFE,0xF7,0xE4,0xFB,0xB8,0x63,0x2E,0x98,0x6D,0x1C,0xA8,0x42, + 0xC7,0xDC,0x00,0x99,0x70,0x00,0x09,0x1A,0x2B,0x98,0x2D,0x91,0x42,0x00,0x01,0x98, + 0x80,0x1A,0x41,0x43,0x2C,0x90,0x2A,0x98,0xFE,0xF7,0xD2,0xFB,0x30,0x99,0x50,0x22, + 0xC8,0x81,0x00,0x20,0x01,0x00,0x2A,0x90,0x02,0xA8,0x03,0xF0,0x45,0xF9,0x2B,0x9C, + 0xA4,0x1C,0x35,0xE0,0x00,0x99,0x02,0xAA,0x89,0x1B,0x89,0x1C,0x8E,0x46,0x2B,0x99, + 0xB0,0x1C,0x61,0x1A,0x89,0x00,0x8D,0x18,0x40,0x3D,0x8C,0x46,0x1C,0xE0,0x01,0x99, + 0x33,0x4A,0x09,0x1D,0x41,0x43,0x09,0x19,0x49,0x00,0x51,0x5E,0x16,0xAA,0x62,0x44, + 0x40,0x3A,0x92,0x6B,0x2B,0x4F,0x89,0x1A,0x62,0x00,0xD3,0x19,0x94,0x22,0x9A,0x5E, + 0x43,0x00,0xDB,0x19,0x6C,0x27,0xDF,0x5F,0xD2,0x19,0x89,0x18,0x0B,0x00,0x4B,0x43, + 0xAA,0x6B,0xD1,0x18,0x40,0x1C,0xA9,0x63,0x86,0x45,0xE0,0xDC,0x2D,0x99,0xA8,0x6B, + 0x49,0x1E,0xFE,0xF7,0x95,0xFB,0xA8,0x63,0x2A,0x99,0x40,0x18,0x64,0x1C,0x2A,0x90, + 0x2E,0x98,0xA0,0x42,0xC6,0xDC,0x2C,0x99,0x2A,0x98,0xFE,0xF7,0x89,0xFB,0x30,0x99, + 0x00,0x22,0x0A,0x61,0x11,0x00,0x02,0xAB,0x0A,0xE0,0x8A,0x00,0x9A,0x58,0x82,0x1A, + 0x14,0x00,0x54,0x43,0x30,0x9A,0x12,0x69,0xA2,0x18,0x30,0x9C,0x49,0x1C,0x22,0x61, + 0x2C,0x9A,0x8A,0x42,0xF1,0xDC,0x30,0x98,0x51,0x1E,0x00,0x69,0xFE,0xF7,0x70,0xFB, + 0x00,0x9A,0x2F,0x99,0x92,0x1B,0x92,0x02,0x51,0x43,0xFE,0xF7,0x69,0xFB,0x30,0x99, + 0x08,0x61,0x30,0x99,0x0E,0x20,0x08,0x5E,0x00,0x28,0x01,0xD1,0x40,0x1C,0xC8,0x81, + 0x31,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x00,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x40,0x79,0x00,0x00,0x30,0x0A,0x00,0x20, + 0xC8,0x02,0x00,0x20,0xF8,0xB5,0x61,0x4D,0x28,0x7A,0x00,0x28,0x06,0xD0,0x28,0x6B, + 0x00,0x04,0x00,0x0C,0x05,0xF0,0x32,0xF8,0x05,0xF0,0x20,0xF8,0x01,0x24,0x64,0x03, + 0x20,0x00,0xFE,0xF7,0x55,0xFF,0x04,0xF0,0x05,0xFC,0x20,0x00,0xFE,0xF7,0x48,0xFF, + 0x57,0x4C,0x00,0x26,0x9C,0xE0,0x57,0x48,0x41,0x68,0x09,0x07,0x07,0xD5,0xC0,0x68, + 0x00,0x28,0x04,0xD0,0x53,0x48,0xC1,0x68,0xC0,0x03,0xC1,0x63,0x95,0xE0,0x28,0x7A, + 0x00,0x28,0x04,0xD0,0x28,0x6B,0x00,0x04,0x00,0x0C,0x05,0xF0,0x0F,0xF8,0xFF,0x20, + 0x81,0x30,0xFE,0xF7,0x35,0xFF,0x03,0x20,0x04,0xF0,0x46,0xFF,0x03,0xF0,0xF0,0xFE, + 0x49,0x4F,0xF8,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5, + 0x04,0x20,0x00,0xE0,0x02,0x20,0x04,0xF0,0x13,0xFE,0x00,0xF0,0xCD,0xFB,0x04,0xF0, + 0xF7,0xFB,0x00,0xF0,0x97,0xFB,0x00,0xF0,0x45,0xFC,0x68,0x7B,0x00,0x28,0x04,0xD1, + 0x20,0x7B,0x00,0x28,0x01,0xD0,0x03,0xF0,0xDF,0xFE,0x20,0x7A,0x00,0x28,0x01,0xD0, + 0x03,0xF0,0x80,0xF8,0x01,0x20,0x40,0x05,0x00,0xF0,0x6A,0xFB,0x03,0xF0,0x96,0xF8, + 0x00,0x28,0x01,0xD0,0x01,0x20,0x28,0x70,0x00,0x20,0x00,0xF0,0x61,0xFB,0x28,0x78, + 0x00,0x28,0x04,0xD1,0x00,0x22,0x11,0x00,0x10,0x00,0x00,0xF0,0x57,0xF9,0x03,0xF0, + 0xAB,0xFE,0x28,0x78,0x00,0x28,0x04,0xD0,0x68,0x7B,0x00,0x09,0x04,0x28,0x44,0xD1, + 0x2E,0x70,0x03,0x20,0x04,0xF0,0xDA,0xFE,0xE8,0x62,0x03,0x20,0x04,0xF0,0x08,0xFF, + 0xFF,0x20,0x81,0x30,0xFE,0xF7,0xDC,0xFE,0xF8,0x8B,0x00,0x28,0x02,0xD0,0x40,0x1E, + 0xF8,0x83,0x2D,0xE0,0xFF,0xF7,0x9E,0xFC,0x00,0x28,0x29,0xD0,0x6F,0x6A,0x00,0x2F, + 0x26,0xD0,0xE8,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x1C,0x49,0xFE,0xF7,0x92,0xFB, + 0x38,0x1A,0x14,0x28,0x1C,0xDD,0x04,0xF0,0xAF,0xFF,0x04,0xF0,0xB3,0xFF,0xA8,0x79, + 0x00,0x28,0x0D,0xD0,0x03,0xF0,0x56,0xFE,0x03,0xF0,0x59,0xFE,0x03,0xF0,0x61,0xFE, + 0x13,0x4D,0x01,0x20,0x68,0x60,0xFE,0xF7,0xC3,0xFE,0x12,0x48,0x68,0x60,0x03,0xE0, + 0x11,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0,0x04,0xF0,0xA3,0xFF,0x0E,0x48,0x06,0x70, + 0x06,0x4D,0x28,0x78,0x00,0x28,0x00,0xD1,0x5D,0xE7,0x04,0x48,0x00,0x7A,0x00,0x28, + 0x01,0xD0,0x04,0xF0,0x73,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xF8,0x0A,0x00,0x20, + 0x80,0x78,0x00,0x00,0x00,0x40,0x00,0x30,0xF0,0x05,0x00,0x20,0x10,0x27,0x00,0x00, + 0x00,0x30,0x00,0x40,0xE1,0x04,0x00,0x00,0xAC,0x0B,0x00,0x20,0x10,0xB4,0x0F,0x4B, + 0x00,0x22,0xD2,0x43,0x81,0x00,0x5A,0x52,0xCB,0x18,0x5A,0x80,0x0B,0x4B,0x0B,0x4C, + 0x24,0x33,0x5A,0x52,0xCB,0x18,0x5A,0x80,0x00,0x23,0x42,0x00,0x1C,0x3C,0xA3,0x52, + 0x22,0x00,0x12,0x32,0x13,0x54,0x18,0x00,0x52,0x32,0x8A,0x18,0x81,0x00,0x53,0x52, + 0x51,0x18,0x40,0x1E,0x4B,0x80,0xF9,0xD5,0x10,0xBC,0x70,0x47,0xCA,0x0B,0x00,0x20, + 0x10,0xB5,0x0C,0x48,0x09,0x22,0x00,0x21,0x02,0xF0,0xCE,0xFF,0x0A,0x48,0x5A,0x22, + 0x00,0x21,0x02,0xF0,0xC9,0xFF,0x08,0x48,0x00,0x24,0x00,0x1F,0x04,0x70,0x07,0x48, + 0x28,0x22,0x21,0x00,0x02,0xF0,0xC0,0xFF,0x04,0x48,0x4E,0x38,0x44,0x75,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x6B,0x08,0x00,0x20,0x54,0x07,0x00,0x20,0x7E,0x0A,0x00,0x20, + 0x10,0xB5,0x17,0x48,0x12,0x22,0x00,0x21,0x02,0xF0,0xAE,0xFF,0x14,0x48,0x12,0x22, + 0x00,0x21,0x12,0x30,0x02,0xF0,0xA8,0xFF,0x11,0x48,0x09,0x22,0x00,0x21,0x44,0x30, + 0x02,0xF0,0xA2,0xFF,0x0E,0x48,0x20,0x22,0x00,0x21,0x24,0x30,0x02,0xF0,0x9C,0xFF, + 0x0B,0x48,0x10,0x22,0x00,0x21,0x52,0x30,0x02,0xF0,0x96,0xFF,0x08,0x48,0x10,0x22, + 0x00,0x21,0x62,0x30,0x02,0xF0,0x90,0xFF,0x05,0x49,0x00,0x20,0x74,0x31,0xC8,0x82, + 0xFF,0x39,0x41,0x39,0x08,0x71,0x88,0x83,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xBC,0x06,0x00,0x20,0xF0,0xB4,0x1E,0x49,0x1E,0x4E,0x8F,0x7B,0xF1,0x88,0x49,0x06, + 0x02,0xD4,0x1B,0x49,0xC0,0x39,0x8F,0x7A,0x08,0x21,0x00,0x24,0x42,0x00,0x0B,0x01, + 0x9B,0x19,0x15,0x25,0x9B,0x18,0x6D,0x01,0x5D,0x19,0xEC,0x82,0x0D,0x25,0xAD,0x01, + 0x5B,0x19,0x49,0x1E,0xDC,0x80,0xF2,0xD5,0x15,0x25,0x31,0x18,0x6D,0x01,0x01,0x23, + 0x4D,0x19,0xAB,0x73,0x0F,0x25,0x93,0x19,0xAD,0x01,0x5B,0x19,0xDC,0x82,0x1F,0x23, + 0x5B,0x01,0xC9,0x18,0x8F,0x71,0x8C,0x73,0x02,0x21,0x0D,0x01,0xAD,0x19,0xAD,0x18, + 0xED,0x18,0x49,0x1E,0xEC,0x82,0xF8,0xD5,0x80,0x00,0x82,0x19,0x00,0x21,0x21,0x20, + 0xC9,0x43,0x40,0x01,0x10,0x18,0xC1,0x80,0x01,0x81,0xF0,0xBC,0x70,0x47,0x00,0x00, + 0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x10,0xB5,0x04,0x48,0x20,0x22,0x00,0x21, + 0x02,0xF0,0x3A,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x7E,0x08,0x00,0x20, + 0x10,0xB5,0x04,0xF0,0x1B,0xFE,0x03,0xF0,0xDD,0xFD,0xFF,0xF7,0x59,0xFF,0x03,0xF0, + 0x0F,0xFF,0x01,0xF0,0x57,0xFD,0x01,0xF0,0xD1,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x10,0xB4,0x0D,0x4C,0x0B,0x4B,0xE4,0x88,0x1B,0x7F,0x64,0x06,0x02,0xD4,0x09,0x4B, + 0xC0,0x3B,0x1B,0x7E,0x04,0x1E,0x00,0xDC,0x44,0x42,0x9C,0x42,0x06,0xDD,0x98,0x42, + 0x01,0xDD,0xC8,0x1A,0x00,0xE0,0xC8,0x18,0x02,0x04,0x12,0x0C,0x10,0xBC,0x10,0x00, + 0x70,0x47,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0xF7,0xB5,0x62,0x48, + 0xCA,0xB0,0x00,0x7D,0x00,0x28,0x03,0xD0,0x01,0x20,0x47,0x90,0x00,0x20,0x02,0xE0, + 0x00,0x20,0x47,0x90,0x01,0x20,0x46,0x90,0x5C,0x48,0x00,0x26,0x49,0x90,0x5C,0x48, + 0x35,0x00,0x01,0x8B,0x04,0x91,0x41,0x8B,0x03,0x91,0x81,0x8A,0x02,0x91,0xC1,0x8A, + 0x01,0x91,0x80,0x8B,0x45,0x90,0x57,0x48,0x00,0x7A,0x48,0x96,0x00,0x90,0x6B,0xE0, + 0x00,0x24,0x64,0xE0,0x68,0x43,0x07,0x19,0x21,0x00,0x28,0x00,0x01,0xF0,0x52,0xF9, + 0x4D,0x49,0x20,0x39,0x0A,0x7D,0xD2,0x07,0x2D,0xD0,0x4F,0x4A,0x52,0x79,0x00,0x2A, + 0x00,0x9A,0x11,0xD0,0x95,0x42,0x26,0xD1,0x8A,0x7D,0xA2,0x42,0x1D,0xD0,0xCA,0x7D, + 0xA2,0x42,0x1A,0xD0,0x0A,0x7E,0xA2,0x42,0x17,0xD0,0x4A,0x7E,0xA2,0x42,0x14,0xD0, + 0x89,0x7E,0xA1,0x42,0x42,0xD1,0x10,0xE0,0x94,0x42,0x14,0xD1,0x8A,0x7D,0xAA,0x42, + 0x0B,0xD0,0xCA,0x7D,0xAA,0x42,0x08,0xD0,0x0A,0x7E,0xAA,0x42,0x05,0xD0,0x4A,0x7E, + 0xAA,0x42,0x02,0xD0,0x89,0x7E,0xA9,0x42,0x30,0xD1,0x04,0x99,0x03,0x9A,0x41,0x18, + 0x09,0x04,0x09,0x0C,0x04,0xE0,0x02,0x99,0x01,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C, + 0x80,0x1A,0x49,0x9B,0x02,0x04,0xB8,0x00,0x18,0x58,0x4B,0x9B,0x12,0x0C,0x00,0x2B, + 0x02,0xD0,0x00,0x05,0x00,0x0D,0x01,0xE0,0x00,0x01,0x00,0x0D,0x4A,0x9B,0x05,0x2B, + 0x0E,0xD8,0x90,0x42,0x01,0xDA,0x47,0x9A,0x02,0xE0,0x88,0x42,0x0E,0xDD,0x46,0x9A, + 0x21,0x00,0x28,0x00,0x00,0xF0,0x80,0xF8,0x05,0xA8,0x87,0x55,0x76,0x1C,0x05,0xE0, + 0x48,0x99,0x05,0xA8,0x47,0x54,0x48,0x98,0x40,0x1C,0x48,0x90,0x64,0x1C,0x22,0x49, + 0xC8,0x78,0x84,0x42,0x96,0xDB,0x6D,0x1C,0x1F,0x48,0x01,0x79,0x8D,0x42,0x8F,0xDB, + 0x4A,0x98,0x05,0x28,0x03,0xD9,0x00,0x04,0x48,0x9E,0x00,0x0C,0x45,0x90,0x00,0x2E, + 0x25,0xDD,0x4C,0x98,0x00,0x28,0x22,0xD1,0x00,0xF0,0x5A,0xF9,0x00,0xF0,0x7A,0xF9, + 0x00,0xF0,0x28,0xFA,0x76,0x1E,0x14,0xD4,0x14,0x4C,0x05,0xAB,0x98,0x5D,0x82,0x00, + 0x49,0x98,0x80,0x58,0x01,0x05,0x45,0x98,0x09,0x0D,0x08,0x18,0x00,0x04,0x00,0x0C, + 0xA0,0x42,0x00,0xD9,0x20,0x00,0x00,0x04,0x08,0x43,0x49,0x99,0x76,0x1E,0x88,0x50, + 0xEC,0xD5,0x00,0xF0,0x35,0xF9,0x00,0xF0,0x5D,0xF9,0x00,0xF0,0x0B,0xFA,0x4D,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x20,0x78,0x00,0x00,0x00,0x02,0x10,0x40, + 0xE0,0x7A,0x00,0x00,0x70,0x0A,0x00,0x20,0xF8,0x0A,0x00,0x20,0xFF,0x0F,0x00,0x00, + 0xF0,0xB5,0x01,0x26,0x76,0x07,0x30,0x68,0x01,0x28,0x1D,0xD1,0x74,0x68,0xA1,0x05, + 0xA0,0x01,0x89,0x0D,0x80,0x0D,0x0D,0x00,0x07,0x00,0x03,0xF0,0x83,0xFF,0x41,0x1C, + 0x12,0xD0,0x0B,0x4A,0x80,0x00,0x81,0x18,0x49,0x88,0x10,0x5A,0xA3,0x0A,0x49,0x19, + 0x49,0x05,0x89,0x0D,0x9B,0x02,0xC0,0x19,0x06,0x4A,0x40,0x08,0x19,0x43,0x80,0x05, + 0x80,0x09,0x11,0x40,0x08,0x43,0x70,0x60,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xB8,0x70,0x00,0x00,0xFF,0xFF,0x00,0xFC,0x30,0xB4,0x17,0x4D,0x15,0x4C,0x2D,0x78, + 0x68,0x43,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x09,0x0E,0x00,0x0A,0x00,0x2B, + 0x07,0xD0,0x00,0x2A,0x02,0xD0,0xC9,0x18,0xC0,0x18,0x0F,0xE0,0xC0,0x1A,0xC9,0x1A, + 0x0C,0xE0,0x00,0x2A,0x05,0xD0,0x88,0x42,0x01,0xDD,0x49,0x1C,0x06,0xE0,0x40,0x1C, + 0x04,0xE0,0x88,0x42,0x01,0xDD,0x40,0x1E,0x00,0xE0,0x49,0x1E,0x4A,0x1E,0xFF,0x2A, + 0x05,0xD2,0x42,0x1E,0xFF,0x2A,0x02,0xD2,0x00,0x02,0x08,0x43,0x60,0x53,0x30,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0xF0,0xB5,0x5A,0x48, + 0x8F,0xB0,0x06,0x78,0x59,0x48,0x5B,0x4A,0x05,0x96,0x07,0x78,0x58,0x48,0x06,0x97, + 0x0E,0x90,0x80,0x7E,0x0D,0x92,0xC1,0x07,0x09,0xD0,0x80,0x07,0x04,0xD5,0x70,0x1E, + 0x05,0x90,0x03,0x20,0x10,0x71,0x02,0xE0,0x7F,0x1E,0x00,0x21,0x11,0x71,0x52,0x48, + 0x0A,0x22,0x01,0x8C,0x51,0x43,0x09,0x04,0x09,0x0C,0x02,0x91,0x40,0x8C,0x50,0x43, + 0x00,0x04,0x00,0x0C,0x01,0x90,0x05,0x98,0x00,0x28,0x7E,0xD0,0x00,0x2F,0x7C,0xD0, + 0x41,0x00,0x02,0x98,0xFE,0xF7,0x2C,0xF8,0x05,0x04,0x2D,0x0C,0x00,0x24,0xB6,0x1C, + 0x0A,0xE0,0x02,0x98,0x05,0x99,0x60,0x43,0xFE,0xF7,0x22,0xF8,0x43,0x4A,0x61,0x00, + 0x40,0x19,0x89,0x18,0x64,0x1C,0x08,0x84,0xB4,0x42,0xF2,0xDB,0x01,0x98,0x79,0x00, + 0xFE,0xF7,0x16,0xF8,0x06,0x04,0x06,0x98,0x36,0x0C,0x00,0x24,0x80,0x1C,0x0C,0x90, + 0x0C,0xE0,0x01,0x98,0x39,0x00,0x60,0x43,0xFE,0xF7,0x0A,0xF8,0x37,0x4A,0x81,0x19, + 0x60,0x00,0x80,0x18,0x40,0x30,0x81,0x80,0x0C,0x98,0x64,0x1C,0x84,0x42,0xF0,0xDB, + 0x0E,0x98,0x80,0x7E,0xC0,0x07,0x53,0xD0,0x00,0x24,0x4D,0xE0,0x2F,0x4A,0x09,0x21, + 0x10,0x19,0xC9,0x01,0x40,0x18,0x41,0x7A,0x0E,0x98,0x80,0x7E,0x80,0x07,0x03,0xD5, + 0x05,0x98,0x03,0x95,0x04,0x91,0x02,0xE0,0x08,0x00,0x03,0xA9,0xC0,0xC1,0x27,0x49, + 0x40,0x00,0x40,0x18,0x0B,0x90,0x00,0x8C,0x0A,0x21,0x40,0x1B,0xFD,0xF7,0xE0,0xFF, + 0x22,0x4A,0xE1,0x00,0x89,0x18,0x11,0x22,0x92,0x01,0x0A,0x91,0x89,0x18,0x09,0x91, + 0x88,0x83,0x04,0x98,0x1D,0x49,0x40,0x00,0x40,0x18,0x40,0x30,0x08,0x90,0x80,0x88, + 0x0A,0x21,0x80,0x1B,0xFD,0xF7,0xCC,0xFF,0x09,0x99,0xC8,0x83,0x0B,0x98,0x0A,0x21, + 0x00,0x8C,0x40,0x19,0xFE,0xF7,0x9E,0xF8,0x0A,0x99,0x23,0x22,0x52,0x01,0x89,0x18, + 0x07,0x91,0x08,0x80,0x08,0x98,0x0A,0x21,0x80,0x88,0x80,0x19,0xFE,0xF7,0x92,0xF8, + 0x07,0x99,0x48,0x80,0x03,0x98,0x40,0x00,0x00,0xE0,0x09,0xE0,0x0A,0x21,0xFE,0xF7, + 0x89,0xF8,0x0D,0x99,0x64,0x1C,0xC8,0x80,0x0E,0x98,0xC0,0x7E,0xA0,0x42,0xAD,0xDC, + 0x0F,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x30,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20,0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x02,0x49,0x08,0x68,0x04,0x22,0x90,0x43,0x08,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x02,0x48,0x01,0x68,0x04,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x03,0x49,0xCA,0x69,0x01,0x23,0x5B,0x05,0x9A,0x43,0x02,0x43,0xCA,0x61,0x70,0x47, + 0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x49,0x08,0x49,0x00,0xC1,0x60,0x70,0x47, + 0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x01,0x22,0x11,0x43,0xC1,0x60,0x70,0x47, + 0xC0,0x90,0x00,0x40,0x01,0x49,0xC8,0x68,0xC8,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x02,0x48,0x01,0x68,0x08,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x01,0x22,0x10,0xB5,0x08,0x49,0x09,0x48,0x52,0x02,0x02,0xF0,0xCA,0xFC,0x08,0x48, + 0x01,0x22,0xC0,0x8E,0x92,0x02,0x01,0x04,0x01,0x43,0x06,0x48,0x02,0xF0,0xD4,0xFC, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x10,0x40, + 0x00,0x78,0x00,0x00,0x00,0x02,0x10,0x40,0x02,0x48,0x81,0x6B,0x49,0x08,0x49,0x00, + 0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x02,0x48,0x81,0x6B,0x01,0x22,0x11,0x43, + 0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x10,0xB5,0x0A,0x49,0x0A,0x48,0xFC,0x22, + 0x02,0xF0,0x9F,0xFC,0xFF,0x22,0x09,0x49,0x09,0x48,0xF1,0x32,0x02,0xF0,0x99,0xFC, + 0x01,0x22,0x08,0x49,0x08,0x48,0x52,0x02,0x02,0xF0,0x93,0xFC,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x04,0x7B,0x00,0x00,0x04,0x90,0x00,0x40,0x00,0x7C,0x00,0x00, + 0x00,0xA0,0x00,0x40,0x00,0x76,0x00,0x00,0x00,0x06,0x10,0x40,0x03,0x48,0x41,0x68, + 0x01,0x22,0x12,0x04,0x11,0x43,0x41,0x60,0x70,0x47,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x70,0xB5,0x1A,0x4C,0x20,0x68,0x40,0x08,0x40,0x00,0x20,0x60,0x18,0x48,0xA6,0x15, + 0x05,0x04,0x2D,0x0C,0x00,0x22,0x31,0x00,0x28,0x00,0xFD,0xF7,0xE3,0xFF,0x32,0x00, + 0x21,0x00,0x28,0x00,0x00,0x23,0xFD,0xF7,0xE5,0xFF,0x12,0x48,0x75,0x00,0x04,0x04, + 0x24,0x0C,0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0xD4,0xFF,0x0E,0x49,0x2A,0x00, + 0x20,0x00,0x00,0x23,0xFD,0xF7,0xD6,0xFF,0x0C,0x48,0x00,0x22,0x04,0x04,0x24,0x0C, + 0x29,0x00,0x20,0x00,0xFD,0xF7,0xC6,0xFF,0x09,0x49,0x2A,0x00,0x20,0x00,0x00,0x23, + 0xFD,0xF7,0xC8,0xFF,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x90,0x00,0x40, + 0x00,0x7B,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x76,0x00,0x00, + 0x00,0x06,0x10,0x40,0x04,0x48,0x10,0xB5,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0xFE,0xF7, + 0x7F,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40,0xF1,0xB5,0x55,0x4E, + 0x53,0x4B,0xF2,0x88,0x98,0x88,0x54,0x49,0x54,0x06,0x82,0xB0,0x00,0xD4,0x08,0x88, + 0x52,0x06,0x01,0x90,0x98,0x79,0x00,0xD4,0x88,0x78,0x37,0x00,0x00,0x25,0x01,0x00, + 0x41,0x43,0x08,0x06,0x00,0x0E,0x01,0x24,0xFF,0x37,0x61,0x37,0x00,0x90,0x11,0xE0, + 0x0A,0x20,0x60,0x43,0x43,0x21,0x80,0x19,0xC9,0x00,0x09,0x5C,0x00,0x29,0x08,0xD0, + 0x46,0x49,0x40,0x18,0x01,0xF0,0x66,0xF9,0x00,0x28,0x02,0xD0,0x6D,0x1C,0x2D,0x06, + 0x2D,0x0E,0x64,0x1C,0xB8,0x78,0xA0,0x42,0xEA,0xDA,0x41,0x49,0x08,0x00,0x20,0x30, + 0xCA,0x8B,0x43,0x88,0xD4,0x1A,0x00,0x2C,0x00,0xDC,0x9C,0x1A,0x22,0x04,0x03,0x88, + 0x84,0x88,0x12,0x0C,0x1F,0x1B,0x00,0x2F,0x00,0xDC,0xE7,0x1A,0x84,0x7A,0x3B,0x04, + 0x1B,0x0C,0x00,0x2C,0x04,0xD0,0x44,0x7B,0xC8,0x2C,0x01,0xD2,0x64,0x1C,0x44,0x73, + 0x8C,0x7B,0x14,0x2C,0x04,0xD2,0x0C,0x7C,0x00,0x2C,0x01,0xD0,0x01,0x24,0x4C,0x74, + 0x14,0x2A,0x01,0xD8,0x14,0x2B,0x04,0xD9,0xCC,0x7B,0xC8,0x2C,0x01,0xD2,0x64,0x1C, + 0xCC,0x73,0x02,0x2D,0x09,0xD2,0x14,0x2A,0x07,0xD2,0x14,0x2B,0x05,0xD2,0x08,0x24, + 0x04,0x5F,0x04,0x2C,0x07,0xDA,0x64,0x1C,0x04,0xE0,0x08,0x24,0x04,0x5F,0xE7,0x1C, + 0x01,0xDD,0x64,0x1E,0x04,0x81,0x44,0x7B,0x01,0x2C,0x01,0xD9,0x78,0x21,0x10,0xE0, + 0x02,0x2D,0x0F,0xD2,0x08,0x24,0x04,0x5F,0x02,0x2C,0x0B,0xDD,0xC9,0x7B,0x14,0x29, + 0x08,0xD2,0x51,0x3A,0x8B,0x2A,0x02,0xD3,0x51,0x3B,0x8B,0x2B,0x02,0xD2,0x77,0x21, + 0xC9,0x43,0xC1,0x80,0x00,0x21,0x02,0x2D,0x01,0x73,0x0E,0xD2,0x06,0x21,0x41,0x5E, + 0x78,0x31,0x04,0xD1,0xC1,0x7A,0xC8,0x29,0x01,0xD2,0x49,0x1C,0xC1,0x72,0xC1,0x7A, + 0x49,0x1E,0x02,0x29,0x01,0xD2,0x01,0x21,0x01,0x73,0x06,0x21,0x41,0x5E,0x01,0x98, + 0x09,0x18,0x08,0x00,0x48,0x43,0x02,0x99,0x00,0x29,0x05,0xD1,0x31,0x79,0x01,0x29, + 0x02,0xD0,0x00,0x99,0xFD,0xF7,0x0C,0xFE,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00,0x1E,0x02,0x00,0x00, + 0x70,0x08,0x00,0x20,0xFF,0x21,0x03,0x31,0x08,0x00,0x49,0x1E,0x00,0x28,0xFB,0xD1, + 0x70,0x47,0x15,0x21,0x08,0x00,0x49,0x1E,0x00,0x28,0xFB,0xD1,0x70,0x47,0x00,0x00, + 0x02,0x48,0x41,0x6B,0x01,0x22,0x11,0x43,0x41,0x63,0x70,0x47,0x00,0x70,0x00,0x40, + 0x70,0x47,0x00,0x00,0xFE,0xB5,0x1E,0x4A,0x1C,0x48,0xD1,0x88,0x00,0x25,0x00,0x7A, + 0x2E,0x00,0x2F,0x00,0x49,0x06,0x02,0xD4,0x18,0x48,0xC0,0x38,0x00,0x79,0x19,0x49, + 0x89,0x8A,0x40,0x18,0x01,0x06,0x18,0x48,0x09,0x0E,0x00,0x78,0x00,0x28,0x01,0x90, + 0x21,0xD0,0x01,0x24,0x49,0x1C,0x00,0x91,0x13,0xE0,0x0A,0x20,0x60,0x43,0x10,0x49, + 0x40,0x18,0xFF,0x30,0x61,0x30,0x80,0x7A,0x14,0x28,0x01,0xD2,0x01,0x26,0x07,0xE0, + 0x01,0x27,0x14,0x21,0xFD,0xF7,0x96,0xFE,0x00,0x99,0x88,0x42,0x00,0xD3,0x01,0x25, + 0x64,0x1C,0x01,0x98,0xA0,0x42,0xE8,0xDA,0x00,0x2F,0x02,0xD1,0x00,0x2E,0x00,0xD0, + 0x02,0x25,0x28,0x06,0x00,0x0E,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x20,0x7A,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xD0,0x0A,0x00,0x20,0x50,0x07,0x00,0x20,0x13,0x48,0x10,0xB5, + 0xC0,0x68,0x00,0x28,0x1F,0xD0,0x01,0x06,0x09,0x0F,0x03,0x29,0x01,0xD0,0x04,0x29, + 0x02,0xD1,0x00,0xF0,0xF1,0xF8,0x08,0xE0,0xF0,0x21,0x01,0x40,0x20,0x29,0x02,0xD2, + 0x00,0xF0,0x1A,0xF8,0x01,0xE0,0x03,0xF0,0x9F,0xFA,0x09,0x48,0x82,0x68,0x81,0x15, + 0x8A,0x43,0x82,0x60,0x82,0x68,0x0A,0x43,0x82,0x60,0x06,0x48,0x00,0x7A,0x00,0x28, + 0x01,0xD0,0x04,0xF0,0x5B,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30, + 0x00,0x40,0x00,0x40,0xF8,0x0A,0x00,0x20,0xF1,0xB5,0x61,0x48,0x2E,0x21,0x90,0xB0, + 0x41,0x60,0x41,0x69,0x89,0x06,0xFC,0xD4,0x10,0x99,0x01,0x26,0x76,0x07,0xF1,0x63, + 0x84,0x69,0x5B,0x48,0x40,0x68,0x80,0x07,0xFB,0xD5,0x03,0xF0,0x75,0xFA,0x59,0x4D, + 0x28,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0,0x41,0xFA,0x10,0x9B,0x00,0x21,0x01,0x20, + 0x9B,0x1E,0xFF,0x27,0x4A,0x1E,0x40,0x03,0x04,0xF0,0x7A,0xFA,0x1E,0x16,0x40,0x40, + 0x40,0x40,0x13,0x40,0x40,0x42,0x10,0x40,0x40,0x58,0x40,0x40,0x4F,0x68,0x6F,0x76, + 0x7D,0x85,0x40,0x8C,0x93,0x4F,0x40,0x40,0x40,0x40,0x9A,0x40,0x0B,0x20,0xF0,0x63, + 0x4D,0xE0,0x00,0xF0,0x19,0xF9,0x29,0xE0,0x03,0x21,0x09,0x07,0xCA,0x60,0xFE,0xF7, + 0x4F,0xF9,0x00,0xF0,0x45,0xFE,0x44,0x48,0x44,0x4A,0x41,0x68,0x52,0x68,0x91,0x42, + 0x1C,0xD0,0x43,0x49,0x17,0x22,0xC9,0x8B,0x52,0x01,0x80,0x18,0x49,0x1C,0xC1,0x83, + 0xFD,0xF7,0xC0,0xFA,0xA8,0x78,0xC0,0x07,0x01,0xD0,0xFF,0xF7,0x21,0xFE,0xA8,0x78, + 0x80,0x07,0x01,0xD5,0x04,0xF0,0xB8,0xF9,0x3A,0x49,0x40,0x22,0x68,0x46,0x02,0xF0, + 0x88,0xFA,0x01,0x20,0x08,0x90,0x68,0x46,0x04,0xF0,0xC6,0xF9,0xF7,0x63,0x1E,0xE0, + 0x32,0x48,0xA0,0x30,0x00,0x7E,0x00,0x28,0xF8,0xD0,0x00,0x2C,0x01,0xD0,0x01,0x20, + 0x00,0xE0,0x00,0x20,0x04,0xF0,0x4E,0xF8,0xF0,0xE7,0x03,0x21,0x09,0x07,0xCA,0x60, + 0xFE,0xF7,0x16,0xF9,0x10,0x98,0xFE,0xF7,0x69,0xF8,0x08,0xE0,0x03,0x21,0x09,0x07, + 0xCA,0x60,0xFE,0xF7,0x0D,0xF9,0x00,0xF0,0x83,0xFD,0x00,0xF0,0xEF,0xF8,0x20,0x48, + 0x41,0x68,0x41,0x60,0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x2C,0x02,0xD0, + 0x01,0x20,0xA8,0x71,0xD2,0xE7,0xA9,0x71,0xD0,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20, + 0xE8,0x71,0xCB,0xE7,0xE9,0x71,0xC9,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x72, + 0xC4,0xE7,0x29,0x72,0xC2,0xE7,0x00,0x2C,0x03,0xD0,0x20,0x0C,0x6C,0x72,0x28,0x82, + 0xBC,0xE7,0x69,0x72,0xBA,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xA8,0x72,0xB5,0xE7, + 0xA9,0x72,0xB3,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xE8,0x72,0xAE,0xE7,0xE9,0x72, + 0xAC,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x73,0xA7,0xE7,0x29,0x73,0xA5,0xE7, + 0x00,0x2C,0x01,0xD0,0x6C,0x73,0x00,0xE0,0x69,0x73,0x03,0xF0,0x73,0xFE,0x9D,0xE7, + 0x00,0x40,0x00,0x30,0xF8,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20,0x00,0x78,0x00,0x00, + 0xE0,0x7A,0x00,0x00,0xC0,0x75,0x00,0x00,0xF0,0xB5,0x38,0x4F,0x35,0x4C,0xF9,0x78, + 0x03,0x00,0x35,0x4A,0x0E,0x04,0x39,0x79,0x35,0x48,0x25,0x68,0x0E,0x43,0x35,0x49, + 0x30,0x3B,0x04,0xF0,0xBD,0xF9,0x12,0x0A,0x0C,0x0E,0x12,0x16,0x1A,0x1C,0x18,0x1E, + 0x20,0x30,0x3B,0x16,0x3E,0x43,0x48,0x4E,0x51,0x0A,0xCD,0x61,0x21,0xE0,0x60,0x68, + 0x01,0xE0,0x2D,0x48,0xC0,0x6B,0xC8,0x61,0x1B,0xE0,0x10,0x8C,0x52,0x8C,0x00,0x04, + 0x35,0xE0,0xCE,0x61,0x15,0xE0,0xE0,0x68,0xF5,0xE7,0x50,0x68,0xF3,0xE7,0xA0,0x68, + 0xF1,0xE7,0xD0,0x7B,0xEF,0xE7,0x25,0x48,0x03,0x7A,0x10,0x7D,0x52,0x7D,0xC4,0x07, + 0xE4,0x09,0x80,0x07,0x12,0x04,0xC0,0x0F,0x00,0x02,0x23,0x43,0x02,0x43,0x13,0x43, + 0xCB,0x61,0x5F,0x22,0x22,0xE0,0x93,0x7D,0x50,0x7E,0x1B,0x06,0x18,0x43,0xD3,0x7D, + 0x12,0x7E,0x1B,0x04,0x12,0x02,0x13,0x43,0x18,0x43,0xD4,0xE7,0x90,0x7E,0x00,0x06, + 0xD1,0xE7,0x17,0x48,0x00,0x69,0xC0,0x07,0xC0,0x0F,0xCC,0xE7,0x00,0x69,0xFA,0x89, + 0x40,0x08,0x00,0x02,0x03,0xE0,0x13,0x48,0xA2,0x69,0xC0,0x8B,0x00,0x04,0x10,0x43, + 0xC1,0xE7,0x00,0x69,0x40,0x08,0xBE,0xE7,0xB8,0x69,0xBC,0xE7,0x48,0x69,0x10,0x42, + 0xFC,0xD1,0x03,0xF0,0x51,0xF9,0xFF,0x20,0x01,0x21,0x49,0x07,0xC8,0x63,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0xC0,0x75,0x00,0x00,0x00,0x78,0x00,0x00,0xF8,0x0A,0x00,0x20, + 0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x30,0xC0,0x0F,0x00,0x20,0x70,0x0A,0x00,0x20, + 0x00,0x7B,0x00,0x00,0xE0,0x7A,0x00,0x00,0x70,0xB5,0x03,0x24,0x24,0x07,0xE5,0x68, + 0x00,0x20,0xC0,0x43,0xE0,0x60,0xFE,0xF7,0x51,0xF8,0x06,0x00,0xCB,0x20,0xC0,0x01, + 0xFE,0xF7,0x2E,0xF8,0x02,0xF0,0xEC,0xFF,0x01,0x20,0x40,0x05,0xFF,0xF7,0x88,0xFC, + 0x00,0xF0,0xBC,0xFC,0x00,0x20,0xFF,0xF7,0x83,0xFC,0x02,0xF0,0xD5,0xFF,0x30,0x00, + 0xFE,0xF7,0x50,0xF8,0xE5,0x60,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x03,0x21, + 0x10,0xB5,0xC0,0x43,0x09,0x07,0xC8,0x60,0x02,0xF0,0xD2,0xFF,0x00,0x20,0xFF,0xF7, + 0x6F,0xFC,0xFF,0xF7,0xED,0xFC,0x05,0x48,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0x01,0x20, + 0x40,0x07,0x04,0xF0,0x13,0xF9,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40, + 0xF8,0xB5,0x27,0x49,0x25,0x48,0xC9,0x88,0x00,0x8A,0x49,0x06,0x02,0xD4,0x23,0x48, + 0xC0,0x38,0x80,0x89,0xC0,0x06,0x3D,0xD5,0x22,0x4E,0x30,0x78,0x00,0x28,0x39,0xD0, + 0x70,0x78,0x00,0x28,0x36,0xD0,0x01,0x25,0x31,0xE0,0x0A,0x21,0x69,0x43,0x1C,0x4B, + 0x01,0x20,0xCC,0x18,0xFF,0x34,0x77,0x78,0x61,0x34,0x25,0xE0,0x0A,0x22,0x42,0x43, + 0xD2,0x18,0xFF,0x32,0xA1,0x32,0x21,0x79,0x92,0x7F,0x91,0x42,0x1B,0xD1,0x0A,0x22, + 0x50,0x43,0xC7,0x18,0xFF,0x37,0x06,0x21,0xC1,0x37,0x00,0x20,0x61,0x5E,0x38,0x5E, + 0x02,0x22,0xBA,0x5E,0x08,0x1A,0x08,0x21,0x61,0x5E,0x89,0x1A,0x00,0x91,0x3A,0x88, + 0xE1,0x88,0xFF,0xF7,0x05,0xFA,0xE0,0x80,0x7A,0x88,0x21,0x89,0x00,0x98,0xFF,0xF7, + 0xFF,0xF9,0x20,0x81,0x02,0xE0,0x40,0x1C,0x87,0x42,0xD7,0xDA,0x6D,0x1C,0x30,0x78, + 0xA8,0x42,0xCA,0xDA,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x50,0x07,0x00,0x20,0xF0,0xB5,0x00,0x20,0xB1,0xB0,0x11,0x90, + 0x10,0x90,0x0F,0x90,0x0E,0x90,0xFA,0x48,0xFB,0x4D,0x01,0x8C,0xF9,0x4A,0x0B,0x91, + 0x40,0x8C,0xFA,0x49,0x0A,0x90,0xE8,0x88,0x13,0x7B,0x44,0x06,0x00,0xD4,0x0B,0x7A, + 0x54,0x7B,0x46,0x06,0x00,0xD4,0x4C,0x7A,0x46,0x06,0x09,0x94,0x94,0x7E,0x00,0xD4, + 0x8C,0x7D,0x46,0x06,0x08,0x94,0x54,0x7E,0x00,0xD4,0x4C,0x7D,0x07,0x94,0xEF,0x4C, + 0x40,0x34,0x24,0x8A,0x46,0x06,0x02,0xD4,0xEC,0x4C,0x80,0x3C,0xA4,0x89,0x24,0x07, + 0x42,0xD5,0xD4,0x7B,0x46,0x06,0x00,0xD4,0xCC,0x7A,0x5C,0x43,0x26,0x94,0x14,0x7C, + 0x46,0x06,0x00,0xD4,0x0C,0x7B,0x5C,0x43,0x25,0x94,0x54,0x7C,0x46,0x06,0x00,0xD4, + 0x4C,0x7B,0x5C,0x43,0x24,0x94,0x94,0x7C,0x46,0x06,0x00,0xD4,0x8C,0x7B,0x5C,0x43, + 0x23,0x94,0xD4,0x7C,0x46,0x06,0x00,0xD4,0xCC,0x7B,0x5C,0x43,0x22,0x94,0x14,0x7D, + 0x46,0x06,0x00,0xD4,0x0C,0x7C,0x5C,0x43,0x21,0x94,0x54,0x7D,0x46,0x06,0x00,0xD4, + 0x4C,0x7C,0x5C,0x43,0x20,0x94,0x94,0x7D,0x46,0x06,0x00,0xD4,0x8C,0x7C,0x5C,0x43, + 0x1F,0x94,0xD4,0x7D,0x46,0x06,0x00,0xD4,0xCC,0x7C,0x5C,0x43,0x1E,0x94,0x12,0x7E, + 0x40,0x06,0x00,0xD4,0x0A,0x7D,0xCE,0x48,0x5A,0x43,0x1D,0x92,0x30,0x90,0x00,0x78, + 0x00,0x28,0x05,0xD1,0x00,0xF0,0xCE,0xFE,0x31,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x20,0x27,0x90,0xC7,0x48,0x2F,0x90,0xC3,0x4D,0x27,0x98,0x13,0x21,0x28,0x18, + 0x49,0x01,0x2E,0x90,0x40,0x18,0x04,0x7F,0x00,0x2C,0x0F,0xD0,0x08,0x98,0x00,0x28, + 0x08,0xD1,0x0A,0x20,0x60,0x43,0x40,0x19,0xFF,0x30,0x6B,0x30,0x00,0xF0,0xE2,0xFD, + 0x00,0x28,0x03,0xD0,0x2F,0x98,0x00,0x7B,0x00,0x28,0x03,0xD0,0x27,0x98,0xFF,0xF7, + 0xF9,0xF8,0xA0,0xE2,0x27,0x99,0x15,0x27,0x07,0x20,0x7F,0x01,0x4E,0x00,0x01,0x01, + 0x49,0x19,0x89,0x19,0xCA,0x19,0xD2,0x8A,0x0B,0x23,0x9B,0x01,0xCB,0x18,0xDA,0x80, + 0x0D,0x22,0x92,0x01,0x89,0x18,0xCA,0x88,0x40,0x1E,0xCA,0x82,0xEF,0xD5,0x0A,0x20, + 0x44,0x43,0x64,0x19,0x2D,0x94,0xFF,0x34,0x61,0x34,0xE1,0x88,0x0B,0x98,0x40,0x1E, + 0x81,0x42,0xDE,0xDC,0x21,0x89,0x0A,0x98,0x40,0x1E,0x81,0x42,0xD9,0xDC,0xA2,0x48, + 0xE1,0x88,0x35,0x18,0xE8,0x19,0x2C,0x90,0x0D,0x23,0xC1,0x82,0x21,0x89,0x9B,0x01, + 0xE8,0x18,0x2B,0x90,0xC1,0x80,0x00,0x20,0x01,0x21,0xC9,0x02,0x06,0x90,0x05,0x90, + 0x07,0x20,0x04,0x91,0x98,0x4A,0x03,0x01,0x9A,0x18,0x92,0x19,0x15,0x23,0x5B,0x01, + 0x94,0x46,0xD2,0x18,0x16,0x23,0xD3,0x5E,0x00,0x2B,0x07,0xDD,0x06,0x9F,0xBB,0x42, + 0x01,0xDD,0xD7,0x8A,0x06,0x97,0x8B,0x42,0x00,0xDA,0xD1,0x8A,0x0D,0x23,0x9B,0x01, + 0x62,0x46,0xD2,0x18,0x06,0x23,0xD3,0x5E,0x00,0x2B,0x09,0xDD,0x05,0x9F,0xBB,0x42, + 0x01,0xDD,0xD7,0x88,0x05,0x97,0x04,0x9F,0xBB,0x42,0x01,0xDA,0xD2,0x88,0x04,0x92, + 0x40,0x1E,0xD7,0xD5,0x06,0x98,0x40,0x1A,0xF0,0x28,0x04,0xDC,0x04,0x99,0x05,0x98, + 0x40,0x1A,0xF0,0x28,0x02,0xDD,0x2F,0x99,0x01,0x20,0x88,0x72,0x2E,0x98,0x15,0x21, + 0x49,0x01,0x40,0x18,0x2A,0x90,0x80,0x7B,0x01,0x28,0x1B,0xD9,0x2C,0x98,0x16,0x21, + 0x41,0x5E,0x0B,0x20,0x80,0x01,0x28,0x18,0x06,0x22,0x82,0x5E,0x88,0x1A,0x00,0x28, + 0x00,0xDC,0x50,0x1A,0x00,0x04,0x00,0x14,0x0D,0x90,0x2B,0x98,0x06,0x21,0x16,0x22, + 0x41,0x5E,0x82,0x5E,0x88,0x1A,0x00,0x28,0x00,0xDC,0x50,0x1A,0x00,0x04,0x00,0x14, + 0x0C,0x90,0x02,0xE0,0x64,0x20,0x0C,0x90,0x0D,0x90,0x0B,0x20,0x80,0x01,0x2F,0x18, + 0x2C,0x9A,0x06,0x21,0x16,0x20,0x79,0x5E,0x10,0x5E,0x02,0xF0,0x83,0xFF,0x13,0x90, + 0x2B,0x98,0x16,0x21,0x41,0x5E,0x02,0x00,0x06,0x20,0x10,0x5E,0x02,0xF0,0x7A,0xFF, + 0x12,0x90,0x16,0x21,0x79,0x5E,0x13,0x98,0x02,0xF0,0x74,0xFF,0x15,0x90,0x1B,0x20, + 0x40,0x01,0x28,0x18,0x06,0x21,0x29,0x90,0x41,0x5E,0x12,0x98,0x02,0xF0,0x6A,0xFF, + 0x14,0x90,0x17,0x20,0x40,0x01,0x28,0x18,0x16,0x22,0x06,0x21,0x82,0x5E,0x41,0x5E, + 0x15,0x98,0x02,0xF0,0x61,0xFF,0x00,0x04,0x00,0x14,0x17,0x90,0x07,0x20,0xC0,0x01, + 0x2F,0x18,0x29,0x98,0x16,0x21,0x41,0x5E,0x06,0x22,0xBA,0x5E,0x14,0x98,0x02,0xF0, + 0x53,0xFF,0x00,0x04,0x00,0x14,0x16,0x90,0x03,0x20,0x00,0x02,0x28,0x18,0x16,0x22, + 0x06,0x21,0x82,0x5E,0x41,0x5E,0x17,0x98,0x02,0xF0,0x46,0xFF,0x00,0x04,0x00,0x14, + 0x19,0x90,0x1D,0x20,0x40,0x01,0x28,0x18,0x28,0x90,0x06,0x22,0x82,0x5E,0x16,0x21, + 0x79,0x5E,0x16,0x98,0x02,0xF0,0x38,0xFF,0x00,0x04,0x00,0x14,0x18,0x90,0x19,0x20, + 0x40,0x01,0x28,0x18,0x16,0x22,0x06,0x21,0x82,0x5E,0x41,0x5E,0x19,0x98,0x02,0xF0, + 0x2B,0xFF,0x00,0x04,0x00,0x14,0x1B,0x90,0x0F,0x20,0x80,0x01,0x2F,0x18,0x28,0x98, + 0x16,0x21,0x41,0x5E,0x06,0x22,0xBA,0x5E,0x18,0x98,0x02,0xF0,0x1D,0xFF,0x00,0x04, + 0x00,0x14,0x1A,0x90,0x0C,0x99,0x0D,0x98,0x00,0xF0,0xE0,0xFF,0x01,0x21,0x84,0x46, + 0x88,0x02,0x2D,0x4B,0x0A,0x01,0xD2,0x18,0x93,0x19,0x1F,0x22,0x52,0x01,0x9A,0x18, + 0xD2,0x8A,0x1B,0x18,0x49,0x1E,0xDA,0x80,0xF3,0xD5,0x1F,0x21,0x49,0x01,0x6A,0x18, + 0x60,0x46,0xD0,0x82,0x2E,0x9A,0x00,0x20,0x55,0x18,0xAA,0x7B,0x00,0x2A,0x94,0x46, + 0x0B,0xDB,0x21,0x4B,0x11,0x01,0xC9,0x18,0x1F,0x23,0x89,0x19,0x5B,0x01,0xCB,0x18, + 0x16,0x21,0x59,0x5E,0x08,0x18,0x52,0x1E,0xF3,0xD5,0x61,0x46,0x49,0x1C,0xFD,0xF7, + 0xC7,0xF9,0x25,0x99,0x06,0x00,0x88,0x42,0x01,0xDC,0x01,0x20,0x0F,0xE0,0x23,0x98, + 0x86,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x21,0x98,0x86,0x42,0x01,0xDC,0x03,0x20, + 0x05,0xE0,0x1F,0x98,0x86,0x42,0x01,0xDC,0x04,0x20,0x00,0xE0,0x05,0x20,0xA9,0x79, + 0x40,0x1A,0x09,0x99,0x49,0x42,0x00,0x28,0x08,0xDD,0x16,0x20,0x38,0x5E,0x09,0x9B, + 0x98,0x42,0x01,0xD1,0x00,0x20,0x08,0xE0,0x40,0x1C,0x06,0xE0,0x00,0x28,0x0A,0x48, + 0x38,0x5E,0x13,0xDA,0x88,0x42,0xF5,0xD0,0x40,0x1E,0xF8,0x82,0x11,0xE0,0x00,0x00, + 0x00,0x78,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00, + 0x50,0x07,0x00,0x20,0x90,0x08,0x00,0x20,0x16,0x00,0x00,0x00,0x00,0x28,0xEB,0xDC, + 0xE2,0xDB,0x16,0x20,0x38,0x5E,0x09,0x9B,0x98,0x42,0x05,0xD1,0xAB,0x79,0x05,0x2B, + 0x02,0xD2,0x5B,0x1C,0xAB,0x71,0x06,0xE0,0x88,0x42,0x04,0xD1,0xA8,0x79,0x01,0x28, + 0x01,0xD9,0x40,0x1E,0xA8,0x71,0x1A,0x99,0x1B,0x98,0x1C,0x91,0x2A,0x99,0x8F,0x7B, + 0x39,0x00,0xFD,0xF7,0x6D,0xF9,0x11,0x90,0x0F,0x90,0x1C,0x98,0x39,0x00,0xFD,0xF7, + 0x67,0xF9,0x10,0x90,0x0E,0x90,0xA8,0x79,0x01,0x28,0x27,0xD1,0x0E,0xAA,0x0F,0xA9, + 0x6B,0x46,0x06,0xC3,0x1A,0x9B,0x1B,0x9A,0x09,0x21,0x38,0x00,0x03,0xF0,0x3C,0xFB, + 0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0,0x2A,0x98,0x18,0x9B,0x80,0x7B,0x19,0x9A, + 0x07,0x21,0x03,0xF0,0x31,0xFB,0x6B,0x46,0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E, + 0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAF,0x07,0xC7,0x04,0x22,0x9A,0x5E,0x25,0x9B, + 0x00,0x92,0x2D,0x98,0x26,0x9A,0xFF,0x30,0x65,0x30,0x9A,0xE0,0x02,0x28,0x27,0xD1, + 0x0E,0xAA,0x0F,0xA9,0x6B,0x46,0x06,0xC3,0x18,0x9B,0x19,0x9A,0x07,0x21,0x38,0x00, + 0x03,0xF0,0x12,0xFB,0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0,0x2A,0x98,0x16,0x9B, + 0x80,0x7B,0x17,0x9A,0x05,0x21,0x03,0xF0,0x07,0xFB,0x6B,0x46,0x38,0x22,0x3C,0x21, + 0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAF,0x07,0xC7,0x04,0x22, + 0x9A,0x5E,0x00,0x92,0x2D,0x98,0x23,0x9B,0xFF,0x30,0x24,0x9A,0x65,0x30,0x70,0xE0, + 0x03,0x28,0x27,0xD1,0x0E,0xAA,0x0F,0xA9,0x6B,0x46,0x06,0xC3,0x16,0x9B,0x17,0x9A, + 0x05,0x21,0x38,0x00,0x03,0xF0,0xE8,0xFA,0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0, + 0x2A,0x98,0x14,0x9B,0x80,0x7B,0x15,0x9A,0x03,0x21,0x03,0xF0,0xDD,0xFA,0x6B,0x46, + 0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAF, + 0x07,0xC7,0x04,0x22,0x9A,0x5E,0x21,0x9B,0x00,0x92,0x2D,0x98,0x22,0x9A,0xFF,0x30, + 0x65,0x30,0x46,0xE0,0x04,0x28,0x27,0xD1,0x0E,0xAA,0x0F,0xA9,0x68,0x46,0x06,0xC0, + 0x14,0x9B,0x15,0x9A,0x03,0x21,0x38,0x00,0x03,0xF0,0xBE,0xFA,0x10,0xAA,0x11,0xA9, + 0x68,0x46,0x06,0xC0,0x2A,0x98,0x12,0x9B,0x80,0x7B,0x13,0x9A,0x02,0x21,0x03,0xF0, + 0xB3,0xFA,0x6B,0x46,0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB, + 0x18,0x5E,0x01,0xAF,0x07,0xC7,0x04,0x22,0x9A,0x5E,0x1F,0x9B,0x00,0x92,0x2D,0x98, + 0x20,0x9A,0xFF,0x30,0x65,0x30,0x1C,0xE0,0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0, + 0x12,0x9B,0x13,0x9A,0x02,0x21,0x38,0x00,0x03,0xF0,0x96,0xFA,0x10,0xAB,0x00,0x22, + 0x04,0x21,0x9A,0x5E,0x59,0x5E,0x2B,0x9B,0x06,0x20,0x18,0x5E,0x01,0xAB,0x07,0xC3, + 0x2C,0x98,0x16,0x22,0x82,0x5E,0x1D,0x9B,0x00,0x92,0x2D,0x98,0x1E,0x9A,0xFF,0x30, + 0x65,0x30,0x31,0x00,0x03,0xF0,0x94,0xFA,0x2A,0x98,0x3C,0x49,0x80,0x7B,0x09,0x28, + 0x02,0xD2,0x2A,0x9A,0x40,0x1C,0x90,0x73,0xA8,0x7B,0x02,0x28,0x01,0xD2,0x40,0x1C, + 0xA8,0x73,0x20,0x79,0x40,0x1E,0x80,0x00,0x41,0x18,0x21,0x20,0x40,0x01,0x0D,0x18, + 0x06,0x20,0x28,0x5E,0x00,0x28,0x22,0xDB,0x08,0x21,0x69,0x5E,0x00,0x29,0x1E,0xDB, + 0x07,0x99,0x64,0x22,0x56,0x1A,0x70,0x43,0x11,0x00,0xFD,0xF7,0x79,0xF8,0x07,0x00, + 0xE0,0x88,0x07,0x99,0x48,0x43,0x64,0x21,0xFD,0xF7,0x4C,0xF9,0x38,0x18,0xE0,0x80, + 0x08,0x20,0x28,0x5E,0x64,0x21,0x70,0x43,0xFD,0xF7,0x6A,0xF8,0x06,0x00,0x20,0x89, + 0x07,0x99,0x48,0x43,0x64,0x21,0xFD,0xF7,0x3D,0xF9,0x30,0x18,0x20,0x81,0xE0,0x88, + 0xE8,0x80,0x20,0x89,0x28,0x81,0x27,0x98,0x40,0x1C,0x08,0x28,0x27,0x90,0x00,0xDA, + 0x3A,0xE5,0x30,0x98,0x01,0x78,0x1A,0x48,0x01,0x29,0x1F,0xD1,0x30,0x99,0x89,0x7B, + 0x4A,0x00,0x16,0x49,0x51,0x18,0x15,0x22,0x52,0x01,0x8A,0x18,0x92,0x8A,0xC2,0x83, + 0x0D,0x22,0x92,0x01,0x8A,0x18,0x94,0x88,0x2F,0x9B,0x1C,0x80,0x0B,0x23,0x9B,0x01, + 0xC9,0x18,0x8B,0x88,0x2F,0x99,0x4B,0x80,0x92,0x8A,0x2F,0x99,0x8A,0x80,0x30,0x99, + 0x09,0x8A,0xC1,0x82,0x30,0x99,0x49,0x8A,0x01,0x83,0x0D,0xE5,0x02,0x29,0xFC,0xD1, + 0x30,0x99,0x09,0x8A,0xC1,0x82,0x30,0x99,0x49,0x8A,0x01,0x83,0x30,0x99,0x49,0x8B, + 0x41,0x83,0x30,0x99,0x89,0x8B,0x81,0x83,0xFE,0xE4,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x70,0x08,0x00,0x20,0x14,0x20,0x9F,0xE5,0x01,0x10,0x81,0xE2,0x00,0x20,0xD2,0xE5, + 0x02,0x20,0x82,0xE2,0x91,0x02,0x20,0xE0,0x01,0x00,0x80,0xE2,0x1E,0xFF,0x2F,0xE1, + 0xFB,0x0A,0x00,0x20,0xF8,0xB5,0x1C,0x4B,0x1C,0x7D,0xDA,0x8E,0xE4,0x07,0x31,0xD0, + 0x1C,0x8F,0x1A,0x4B,0x1B,0x7A,0x9E,0x46,0x19,0x4B,0x1E,0x78,0x16,0x4B,0x9D,0x7D, + 0x00,0x2E,0x76,0x46,0xAC,0x46,0xDD,0x7D,0x00,0x95,0x1D,0x7E,0x5F,0x7E,0x9B,0x7E, + 0x12,0xD0,0xB0,0x42,0x1E,0xD1,0x8C,0x45,0x08,0xD0,0x00,0x98,0x88,0x42,0x05,0xD0, + 0x8D,0x42,0x03,0xD0,0x8F,0x42,0x01,0xD0,0x8B,0x42,0x03,0xD1,0x20,0x00,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x20,0xFA,0xE7,0xB1,0x42,0x0B,0xD1,0x84,0x45,0xF5,0xD0, + 0x00,0x99,0x81,0x42,0xF2,0xD0,0x85,0x42,0xF0,0xD0,0x87,0x42,0xEE,0xD0,0x83,0x42, + 0xF0,0xD1,0xEB,0xE7,0x10,0x00,0xEA,0xE7,0x00,0x78,0x00,0x00,0x70,0x0A,0x00,0x20, + 0xFD,0x0A,0x00,0x20,0x78,0x47,0xC0,0x46,0x14,0x20,0x9F,0xE5,0x02,0x10,0x81,0xE2, + 0x00,0x20,0xD2,0xE5,0x04,0x20,0x82,0xE2,0x91,0x02,0x20,0xE0,0x02,0x00,0x80,0xE2, + 0x1E,0xFF,0x2F,0xE1,0xFB,0x0A,0x00,0x20,0xFE,0xB5,0x04,0x00,0x88,0x1A,0xC0,0x1A, + 0x0D,0x00,0x16,0x00,0x41,0x00,0x08,0x19,0x02,0x22,0x82,0x5E,0x1F,0x00,0x20,0x38, + 0x1E,0x23,0xC3,0x5E,0x61,0x5E,0x18,0x00,0x00,0xF0,0x9C,0xFD,0x69,0x00,0x01,0x90, + 0x08,0x19,0x02,0x22,0x82,0x5E,0x20,0x38,0x1E,0x23,0xC3,0x5E,0x61,0x5E,0x18,0x00, + 0x00,0xF0,0x90,0xFD,0x00,0x90,0xA8,0x19,0xC0,0x19,0x41,0x00,0x08,0x19,0x02,0x22, + 0x82,0x5E,0x20,0x38,0x1E,0x23,0xC3,0x5E,0x61,0x5E,0x18,0x00,0x00,0xF0,0x82,0xFD, + 0x02,0x00,0x00,0x99,0x01,0x98,0x00,0xF0,0x7D,0xFD,0xFE,0xBC,0x08,0xBC,0x18,0x47, + 0x04,0x4B,0x03,0x4A,0x1B,0x78,0x58,0x43,0x40,0x18,0x40,0x00,0x10,0x5A,0x70,0x47, + 0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0x04,0x48,0x41,0x69,0x49,0x06,0x01,0xD5, + 0x10,0x20,0x70,0x47,0x40,0x69,0xC0,0x06,0xC0,0x0E,0x70,0x47,0x00,0x40,0x00,0x30, + 0x0D,0x49,0x01,0x20,0x10,0xB5,0x40,0x07,0x4A,0x69,0x92,0x06,0xFC,0xD4,0xCA,0x68, + 0x4B,0x68,0x4B,0x60,0x04,0xE0,0x4B,0x69,0x9B,0x06,0xFC,0xD4,0x8B,0x69,0x08,0xC0, + 0x52,0x1E,0xF8,0xD2,0x2E,0x20,0x48,0x60,0x48,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0, + 0x6B,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30,0x78,0x47,0xC0,0x46, + 0x10,0x40,0x2D,0xE9,0xB0,0x40,0x9F,0xE5,0x0C,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3, + 0xFC,0xFF,0xFF,0x0A,0x04,0x00,0x94,0xE5,0x04,0x00,0x84,0xE5,0x04,0x00,0x94,0xE5, + 0x04,0x00,0x10,0xE3,0x10,0x00,0x00,0x0A,0x0C,0x00,0x94,0xE5,0x04,0x10,0x90,0xE4, + 0x1C,0x10,0x84,0xE5,0x02,0x12,0xA0,0xE3,0x38,0x10,0x91,0xE5,0x04,0x00,0x00,0xEA, + 0x04,0x20,0x90,0xE4,0x1C,0x20,0x84,0xE5,0x14,0x20,0x94,0xE5,0x40,0x00,0x12,0xE3, + 0xFC,0xFF,0xFF,0x1A,0x01,0x10,0x51,0xE2,0xF8,0xFF,0xFF,0x1A,0x14,0x00,0x94,0xE5, + 0x5F,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x1A,0x11,0x00,0x00,0xEA,0x04,0x00,0x94,0xE5, + 0x02,0x00,0x10,0xE3,0xE8,0xFF,0xFF,0x0A,0x14,0x00,0x94,0xE5,0x20,0x00,0x10,0xE3, + 0xE5,0xFF,0xFF,0x1A,0x0C,0x00,0x94,0xE5,0x08,0x00,0x50,0xE3,0x10,0x40,0xBD,0x08, + 0x0A,0x0A,0x00,0x0A,0x14,0x10,0x94,0xE5,0x5F,0x00,0x11,0xE3,0x18,0x10,0x94,0x15, + 0x04,0x10,0x80,0x14,0xFA,0xFF,0xFF,0x1A,0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3, + 0xFC,0xFF,0xFF,0x0A,0x01,0x0A,0x00,0xEB,0xD2,0xFF,0xFF,0xEA,0x00,0x40,0x00,0x30, + 0xF8,0xB5,0x20,0x4E,0x20,0x4F,0x00,0x25,0x2C,0x00,0x78,0x69,0x80,0x06,0xFC,0xD4, + 0x78,0x68,0x78,0x60,0xF8,0x68,0x04,0x28,0x0E,0xD1,0x1C,0x48,0x40,0x21,0x04,0xE0, + 0x7A,0x69,0x92,0x06,0xFC,0xD4,0xBA,0x69,0x04,0xC0,0x49,0x1E,0xF8,0xD2,0x20,0x25, + 0x17,0x4C,0x30,0x78,0x01,0x21,0x06,0xE0,0x05,0x28,0x07,0xD1,0x15,0x48,0x16,0x4C, + 0x85,0x08,0x30,0x78,0x02,0x21,0x08,0x43,0x30,0x70,0x10,0xE0,0x03,0x28,0x0E,0xD1, + 0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0xD5,0xFB,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x78,0x69,0x80,0x06,0xFC,0xD4,0xB8,0x69,0x01,0xC4,0x6D,0x1E, + 0xF8,0xD2,0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0xC4,0xFB, + 0xC3,0xE7,0x00,0x00,0xFA,0x0A,0x00,0x20,0x00,0x40,0x00,0x30,0x00,0x90,0x00,0x40, + 0x00,0xA0,0x00,0x40,0x00,0x03,0x00,0x00,0xC8,0x02,0x00,0x20,0x01,0x49,0x20,0x20, + 0x48,0x61,0x70,0x47,0x00,0x40,0x00,0x30,0xF8,0xB5,0x01,0x22,0x52,0x07,0x11,0x68, + 0x3D,0x48,0x01,0x29,0x80,0x7A,0x01,0xD1,0x01,0x25,0x03,0xE0,0x11,0x68,0x01,0x29, + 0x06,0xD9,0x02,0x25,0x00,0x28,0x0B,0xD0,0x00,0x21,0x25,0x27,0x7F,0x01,0x3B,0xE0, + 0x00,0x28,0x05,0xD1,0x34,0x48,0x09,0x22,0x00,0x21,0x08,0x38,0x01,0xF0,0xFC,0xFB, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x4A,0x19,0x00,0x24,0x92,0x00,0x10,0x18,0x02,0x68, + 0x84,0x46,0x90,0x0F,0xC0,0x07,0x26,0xD0,0x01,0x20,0x93,0x00,0x1B,0x0F,0x2B,0x4E, + 0x36,0x18,0xF6,0x19,0x36,0x7E,0x9E,0x42,0x01,0xD1,0x04,0x00,0x02,0xE0,0x40,0x1C, + 0x08,0x28,0xF4,0xD9,0x00,0x2C,0x06,0xD0,0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43, + 0x80,0x08,0x02,0x43,0x0D,0xE0,0x21,0x4C,0x01,0x20,0x26,0x18,0xF6,0x19,0x36,0x7E, + 0x00,0x2E,0x03,0xD1,0x24,0x18,0xE4,0x19,0x23,0x76,0xED,0xE7,0x40,0x1C,0x08,0x28, + 0xF3,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42, + 0xC9,0xD8,0x00,0x21,0x21,0xE0,0x4A,0x19,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46, + 0x90,0x0F,0xC0,0x07,0x18,0xD1,0x11,0x4E,0x01,0x20,0x93,0x00,0x1C,0x0F,0x33,0x18, + 0xDB,0x19,0x1B,0x7E,0xA3,0x42,0x0A,0xD1,0x34,0x18,0x00,0x23,0xE4,0x19,0x23,0x76, + 0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43,0x02,0xE0,0x40,0x1C, + 0x08,0x28,0xEC,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68, + 0x8A,0x42,0xD8,0xD8,0x9C,0xE7,0x00,0x00,0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20, + 0x03,0x23,0x1B,0x07,0xDA,0x68,0x01,0x21,0x81,0x40,0x8A,0x43,0xDA,0x60,0x70,0x47, + 0x10,0xB4,0x0F,0x24,0x03,0x23,0x1B,0x07,0x1C,0x60,0x05,0x4C,0x60,0x63,0x19,0x61, + 0x9A,0x60,0x00,0x20,0xC0,0x43,0xD8,0x60,0x00,0x20,0x18,0x60,0x10,0xBC,0x70,0x47, + 0x40,0x00,0x00,0x30,0x03,0x4B,0x00,0xB5,0x82,0x00,0x99,0x50,0xFF,0xF7,0xE0,0xFF, + 0x08,0xBC,0x18,0x47,0x2C,0x0B,0x00,0x20,0xF0,0xB5,0x85,0xB0,0xFE,0xF7,0xB8,0xFB, + 0xFE,0xF7,0x96,0xFB,0x02,0xF0,0xE0,0xF9,0x00,0xF0,0xDA,0xFD,0x00,0xF0,0xFA,0xFB, + 0xFE,0xF7,0x08,0xF8,0xFD,0xF7,0x46,0xFA,0x38,0x49,0x37,0x48,0xC9,0x88,0x40,0x7F, + 0x49,0x06,0x02,0xD4,0x34,0x48,0xC0,0x38,0x40,0x7E,0x00,0x28,0x04,0xD1,0xFF,0xF7, + 0x43,0xFA,0xFF,0xF7,0xED,0xF9,0x03,0xE0,0xFF,0xF7,0xEA,0xF9,0xFF,0xF7,0x3C,0xFA, + 0x02,0xF0,0xC2,0xFC,0x02,0xF0,0x2C,0xFB,0x01,0x26,0x76,0x07,0x30,0x68,0x00,0x28, + 0x07,0xD0,0x70,0x68,0x80,0x0F,0x80,0x07,0x03,0xD5,0x35,0x68,0x02,0x24,0x6D,0x1C, + 0x37,0xE0,0x01,0x24,0x25,0x00,0xA0,0x00,0x87,0x19,0x38,0x68,0x81,0x01,0x04,0x90, + 0x80,0x05,0x80,0x0D,0x02,0x90,0x22,0x48,0x89,0x0D,0x03,0x91,0x00,0x78,0x00,0x28, + 0x03,0xD1,0x02,0xA9,0x03,0xA8,0x02,0xF0,0x4F,0xFB,0x1E,0x4B,0x00,0x21,0x58,0x8C, + 0x40,0x1E,0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0,0x18,0x8C,0x0A,0x00,0x02,0xA9, + 0x40,0x1E,0x03,0x04,0x1B,0x0C,0x03,0xA8,0x03,0xF0,0xAA,0xFA,0x02,0xA9,0x03,0xA8, + 0x03,0xF0,0x7E,0xF9,0x14,0x49,0x04,0x98,0x08,0x40,0x03,0x99,0x89,0x05,0x89,0x09, + 0x08,0x43,0x02,0x99,0x80,0x0A,0x80,0x02,0x89,0x05,0x89,0x0D,0x08,0x43,0x38,0x60, + 0x64,0x1C,0xAC,0x42,0xC7,0xD9,0x30,0x68,0xFC,0xF7,0x5A,0xFF,0xFD,0xF7,0x3E,0xFE, + 0x02,0xF0,0xAE,0xFA,0xFF,0xF7,0xE0,0xFE,0xFC,0xF7,0x9E,0xFE,0x03,0x48,0x40,0x79, + 0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x03,0x0B,0x00,0x20,0x00,0x78,0x00,0x00,0xFF,0xFF,0x00,0xFC,0xF8,0xB5,0x02,0xF0, + 0x3F,0xF9,0xFE,0xF7,0xCD,0xFD,0xFE,0xF7,0x5B,0xFE,0xFE,0xF7,0xA3,0xFE,0x1A,0x48, + 0x00,0x21,0xC0,0x7F,0x03,0xF0,0xB8,0xF8,0x18,0x4F,0x19,0x4D,0xFC,0x03,0x00,0x20, + 0x28,0x70,0xE8,0x61,0xE8,0x79,0x00,0x28,0x1A,0xD0,0x01,0x26,0x15,0xE0,0x78,0x68, + 0x00,0x07,0x12,0xD5,0xA6,0x63,0xF8,0x68,0x07,0x28,0x06,0xD1,0x02,0xF0,0x5C,0xFA, + 0xFF,0xF7,0x22,0xF9,0xFF,0x20,0xE0,0x63,0x07,0xE0,0x0B,0x28,0x10,0xD1,0xE0,0x63, + 0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0x4F,0xFA,0xE0,0x6B,0x0B,0x28,0xE6,0xD1, + 0xFE,0xF7,0xE8,0xF9,0x28,0x78,0x00,0x28,0xD9,0xD0,0x01,0xF0,0x23,0xFF,0xD6,0xE7, + 0x78,0x68,0x80,0x07,0xFC,0xD5,0xEE,0xE7,0x00,0x78,0x00,0x00,0x00,0x40,0x00,0x30, + 0xF8,0x0A,0x00,0x20,0x70,0xB5,0x21,0x49,0x1F,0x4A,0xCB,0x88,0x05,0x00,0x10,0x7A, + 0x1F,0x49,0x5C,0x06,0x00,0xD4,0x08,0x79,0x1E,0x4C,0xA4,0x8A,0x00,0x19,0x06,0x06, + 0xD0,0x79,0x36,0x0E,0x5A,0x06,0x00,0xD4,0xC8,0x78,0x1B,0x49,0x2C,0x78,0x4A,0x7C, + 0x00,0x2A,0x0F,0xD1,0x8A,0x7C,0x00,0x2A,0x01,0xD0,0x80,0x1C,0x08,0xE0,0xCA,0x7C, + 0x00,0x2A,0x01,0xD0,0x00,0x1D,0x03,0xE0,0x09,0x7D,0x00,0x29,0x02,0xD0,0x80,0x1D, + 0x00,0x06,0x00,0x0E,0x00,0x2C,0x0A,0xD0,0x84,0x42,0x08,0xD3,0x14,0x21,0x20,0x00, + 0xFC,0xF7,0xD0,0xFD,0x76,0x1C,0xB0,0x42,0x05,0xD2,0x14,0x2C,0x07,0xD3,0x00,0x20, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x14,0x2C,0x01,0xD3,0xF0,0x20,0x00,0xE0,0x13,0x20, + 0x28,0x70,0x01,0x20,0xF4,0xE7,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x60,0x79,0x00,0x00,0xD0,0x0A,0x00,0x20,0x70,0x08,0x00,0x20,0x10,0xB5,0x08,0x24, + 0x20,0x00,0xFE,0xF7,0x5B,0xFA,0x64,0x1E,0xFA,0xD5,0x05,0x48,0x01,0x22,0x41,0x7C, + 0x01,0x29,0x01,0xD8,0x00,0x29,0x00,0xD1,0x42,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0xA0,0x78,0x00,0x00,0x19,0x22,0x10,0xB5,0x06,0x48,0x52,0x01,0x00,0x21,0x01,0xF0, + 0x3B,0xFA,0x51,0x22,0x04,0x48,0xD2,0x00,0x00,0x21,0x01,0xF0,0x35,0xFA,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0xC8,0x02,0x00,0x20,0x40,0x00,0x00,0x20,0x10,0xB5,0x40,0x22, + 0xD4,0x05,0x00,0x21,0x20,0x00,0x01,0xF0,0x27,0xFA,0x01,0x20,0xA0,0x63,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x14,0x48,0x10,0xB5,0x44,0x08,0x14,0x49,0x14,0x48,0x62,0x00, + 0x01,0xF0,0x06,0xFA,0x10,0x48,0xC0,0x07,0x08,0xD0,0x0F,0x48,0xC2,0x07,0x0F,0x48, + 0xD2,0x0F,0x01,0x19,0x0E,0x48,0x00,0x19,0x01,0xF0,0xF2,0xF9,0x0D,0x48,0x00,0x21, + 0x84,0x08,0x0D,0x48,0xA2,0x00,0x01,0xF0,0x0F,0xFA,0x0A,0x48,0x80,0x07,0x07,0xD0, + 0x08,0x48,0x00,0x21,0x82,0x07,0x08,0x48,0x92,0x0F,0x00,0x19,0x01,0xF0,0xFC,0xF9, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x71,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x46,0x06,0x00,0x00,0xF0,0x05,0x00,0x20,0x33,0x21,0x09,0x05, + 0x01,0x20,0x80,0x07,0x41,0x62,0x04,0x49,0x81,0x62,0x04,0x48,0xFF,0x21,0xC1,0x60, + 0x00,0x21,0x41,0x61,0x70,0x47,0x00,0x00,0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x40, + 0x02,0x49,0x03,0x48,0x01,0x60,0x20,0x21,0x41,0x60,0x70,0x47,0xDE,0x10,0x01,0x00, + 0x00,0x40,0x00,0x30,0x10,0xB5,0x00,0x24,0x20,0x00,0xFE,0xF7,0x4B,0xFA,0x64,0x1C, + 0x08,0x2C,0xF9,0xDB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x10,0xB5,0x01,0x24, + 0x64,0x03,0x20,0x00,0xFD,0xF7,0x5C,0xF8,0xFE,0xF7,0xE2,0xFC,0xFE,0xF7,0x0C,0xFD, + 0xFE,0xF7,0xD6,0xFC,0x07,0x48,0x01,0x68,0xF0,0x22,0x91,0x43,0x06,0x4A,0x12,0x7B, + 0x12,0x07,0x12,0x0E,0x11,0x43,0x01,0x60,0x20,0x00,0xFD,0xF7,0x41,0xF8,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0xA0,0x00,0x40,0x00,0x78,0x00,0x00,0x10,0xB5,0x01,0xF0, + 0xE7,0xFF,0x01,0xF0,0xC7,0xFF,0xFF,0x20,0xFD,0xF7,0x72,0xF8,0xFF,0xF7,0xAE,0xFF, + 0x11,0x48,0x80,0x22,0x00,0x21,0x01,0xF0,0x9F,0xF9,0x08,0x20,0xFD,0xF7,0x30,0xF8, + 0x00,0x22,0x0E,0x49,0xD2,0x43,0x00,0x20,0xFF,0xF7,0x02,0xFE,0x00,0xF0,0x1A,0xF8, + 0x0B,0x48,0x40,0x7A,0x00,0x28,0x04,0xD0,0x40,0x20,0xFD,0xF7,0x21,0xF8,0x00,0xF0, + 0x4D,0xF8,0x00,0xF0,0x37,0xF8,0x10,0x20,0x01,0xF0,0xB5,0xFF,0xFE,0xF7,0x10,0xFE, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x2C,0x0B,0x00,0x20,0x02,0x03,0x0F,0x0F, + 0x00,0x78,0x00,0x00,0xF8,0xB5,0x03,0x24,0xE6,0x01,0x13,0x25,0x30,0x00,0xFD,0xF7, + 0x07,0xF8,0x20,0x02,0xFD,0xF7,0x2E,0xF8,0x0C,0x48,0x0A,0x21,0x00,0x6B,0xFC,0xF7, + 0xC1,0xFC,0x02,0x00,0xFF,0x21,0x90,0x31,0x02,0x20,0x00,0x23,0x00,0x95,0x02,0xF0, + 0xF3,0xFF,0x07,0x4A,0x27,0x21,0x03,0x20,0x00,0x23,0x00,0x94,0x02,0xF0,0xEC,0xFF, + 0x30,0x00,0xFC,0xF7,0xE5,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00, + 0xE8,0xFD,0x00,0x00,0x10,0xB5,0x08,0x49,0x00,0x20,0xFF,0xF7,0xCB,0xFD,0x03,0xF0, + 0xD0,0xF8,0x7D,0x20,0xC0,0x00,0x03,0xF0,0xBF,0xF8,0x00,0x20,0xFF,0xF7,0xA8,0xFD, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x2D,0x70,0x00,0x00,0x0A,0x48,0x10,0xB5, + 0x00,0x6B,0x0A,0x49,0x0A,0x4C,0x88,0x42,0x05,0xD9,0x7D,0x21,0xC9,0x00,0xFC,0xF7, + 0x89,0xFC,0x64,0x30,0x01,0xE0,0xFF,0x20,0xF5,0x30,0x20,0x63,0x03,0xF0,0x7A,0xF8, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x78,0x00,0x00,0x07,0xA5,0x07,0x00, + 0xF8,0x0A,0x00,0x20,0x10,0xB5,0xFF,0xF7,0xD5,0xFE,0xFF,0xF7,0x43,0xFF,0x15,0x48, + 0x00,0x7A,0x02,0xF0,0xDF,0xFE,0x13,0x48,0x13,0x4A,0xA0,0x30,0x41,0x89,0x00,0x24, + 0xD1,0x83,0x12,0x49,0x0C,0x60,0x4C,0x60,0x11,0x49,0xD2,0x88,0x49,0x79,0x52,0x06, + 0x02,0xD4,0x01,0x00,0xA0,0x31,0x49,0x78,0x0C,0x4A,0xC0,0x3A,0x51,0x73,0x09,0x49, + 0x80,0x31,0x0A,0x8B,0x09,0x49,0x40,0x39,0xCA,0x62,0x00,0x88,0x08,0x63,0xFF,0xF7, + 0x9D,0xFE,0x08,0x48,0xC4,0x83,0xFE,0xF7,0x19,0xFB,0x07,0x48,0x04,0x70,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20,0xF0,0x0A,0x00,0x20, + 0x00,0x7A,0x00,0x00,0x30,0x07,0x00,0x20,0xF9,0x0A,0x00,0x20,0xF7,0xB5,0x86,0xB0, + 0x00,0x27,0x2E,0x48,0x04,0xAB,0x02,0x97,0x03,0x97,0x81,0xC3,0x2C,0x4E,0xFE,0xF7, + 0xE9,0xFB,0xFE,0xF7,0x97,0xFC,0x2B,0x48,0x40,0x7F,0x01,0x90,0x29,0x48,0x20,0x38, + 0x40,0x7F,0x00,0x25,0x00,0x90,0x2A,0xE0,0x00,0x24,0x23,0xE0,0x21,0x00,0x28,0x00, + 0xFF,0xF7,0x38,0xFB,0x00,0x28,0x1C,0xD0,0x23,0x49,0x04,0x9A,0x09,0x78,0x69,0x43, + 0x09,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A,0x01,0x1E,0x00,0xDC, + 0x41,0x42,0x00,0x28,0x01,0xDB,0x01,0x98,0x00,0xE0,0x00,0x98,0x81,0x42,0x01,0xDD, + 0x01,0x22,0x05,0x92,0x08,0x1A,0xB0,0x42,0x03,0xDD,0x06,0x00,0x27,0x00,0x02,0x95, + 0x03,0x91,0x64,0x1C,0x14,0x48,0x00,0x78,0x84,0x42,0xD7,0xD3,0x6D,0x1C,0x13,0x48, + 0x00,0x78,0x85,0x42,0xD0,0xD3,0x08,0x99,0x03,0x98,0x08,0x60,0x10,0x48,0x00,0x69, + 0xC0,0x07,0x05,0xD0,0x07,0x98,0x07,0x60,0x06,0x99,0x02,0x98,0x08,0x60,0x04,0xE0, + 0x07,0x99,0x02,0x98,0x08,0x60,0x06,0x98,0x07,0x60,0x05,0x98,0x00,0x28,0x00,0xD0, + 0x04,0x20,0x09,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x02,0x10,0x40, + 0x78,0xEC,0xFF,0xFF,0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x00,0x90,0x00,0x40,0x78,0x47,0xC0,0x46,0x68,0x20,0x9F,0xE5,0x04,0xE0,0x2D,0xE5, + 0x5A,0x04,0xD2,0xE5,0x58,0xC0,0x9F,0xE5,0x01,0x00,0x10,0xE3,0x12,0x00,0x00,0x0A, + 0x54,0x10,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0x00,0x30,0xD1,0xE5,0x0B,0x00,0x00,0xEA, + 0x5A,0xE4,0xD2,0xE5,0x00,0x10,0x82,0xE0,0x89,0x14,0xD1,0xE5,0x02,0x00,0x1E,0xE3, + 0x88,0xE4,0xD2,0xE5,0x9E,0x13,0x21,0x00,0x93,0xE1,0x21,0x10,0x01,0x11,0x9C,0xE7, + 0x80,0xE0,0x82,0xE0,0x02,0x19,0xC1,0xE3,0x01,0x00,0x80,0xE2,0xB0,0x11,0xCE,0xE1, + 0x5B,0x14,0xD2,0xE5,0x00,0x00,0x51,0xE1,0xF0,0xFF,0xFF,0x8A,0x04,0xE0,0x9D,0xE4, + 0x1E,0xFF,0x2F,0xE1,0x00,0x10,0x10,0x40,0xF0,0x05,0x00,0x20,0xFB,0x0A,0x00,0x20, + 0xFF,0xB5,0x4E,0x4C,0x85,0xB0,0x24,0x78,0x0F,0x99,0x0E,0x9A,0x02,0x94,0x4C,0x4C, + 0xD7,0x00,0x26,0x79,0x00,0x20,0x05,0x00,0xB6,0x00,0x34,0x19,0xE0,0x34,0x10,0x26, + 0xA6,0x5F,0xB6,0x46,0x12,0x26,0xA6,0x5F,0xB4,0x46,0x76,0x46,0xB6,0x1C,0x34,0x04, + 0x24,0x14,0x66,0x46,0xB6,0x1C,0x01,0x94,0x34,0x04,0x24,0x14,0x00,0x94,0x3F,0x4C, + 0x07,0x9E,0x24,0x78,0x03,0x97,0x24,0x1D,0x04,0x94,0x06,0x9C,0x3C,0x19,0x01,0x2E, + 0x12,0xD0,0x02,0x2E,0x1B,0xD0,0x03,0x2E,0x54,0xD0,0x04,0x2E,0x26,0xD1,0x04,0x9D, + 0x00,0x98,0x02,0x9E,0x68,0x43,0x01,0x9D,0xED,0x18,0x40,0x19,0x05,0x06,0x2D,0x0E, + 0x60,0x46,0x70,0x43,0xE6,0x88,0x16,0xE0,0x00,0x98,0x04,0x9D,0xC0,0x1A,0x68,0x43, + 0x01,0x9D,0x06,0x9E,0x40,0x19,0x05,0x06,0xF0,0x5B,0x2D,0x0E,0x08,0xE0,0x00,0x98, + 0x04,0x9D,0xC0,0x18,0x68,0x43,0x01,0x9D,0x40,0x19,0x05,0x06,0x60,0x88,0x2D,0x0E, + 0x02,0x9E,0x70,0x43,0x76,0x46,0x80,0x19,0x00,0x06,0x00,0x0E,0x25,0x4E,0x6D,0x00, + 0x75,0x5F,0x25,0x4E,0x16,0x27,0xF7,0x5F,0xBD,0x42,0x3D,0xDD,0x07,0x9D,0x01,0x2D, + 0x2D,0xD0,0x02,0x2D,0x31,0xD0,0x03,0x2D,0x32,0xD0,0x04,0x2D,0x06,0xD1,0x73,0x44, + 0xE3,0x80,0x0B,0x00,0x00,0xD1,0x13,0x00,0x05,0x9C,0x23,0x54,0x18,0x4C,0x53,0x00, + 0x1B,0x19,0xFF,0x33,0x41,0x33,0x00,0x29,0x04,0xD0,0x05,0x99,0x52,0x1E,0x08,0x5C, + 0x90,0x42,0x02,0xD0,0xD8,0x88,0x40,0x1C,0xD8,0x80,0x01,0x20,0x09,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x04,0x9D,0x00,0x98,0x02,0x9E,0x68,0x43,0x01,0x9D,0x40,0x19, + 0xC0,0x1A,0x05,0x06,0x2D,0x0E,0x60,0x46,0x70,0x43,0xA6,0x88,0xC3,0xE7,0x64,0x46, + 0xE3,0x1A,0x06,0x9D,0x03,0x9C,0x2B,0x53,0xD3,0xE7,0x63,0x44,0x63,0x80,0xD0,0xE7, + 0x75,0x46,0xEB,0x1A,0xA3,0x80,0xCC,0xE7,0x00,0x20,0xDF,0xE7,0xFB,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xC8,0x02,0x00,0x20,0x30,0x07,0x00,0x20,0x88,0x42,0x00,0xDA, + 0x08,0x00,0x70,0x47,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00, + 0x70,0x47,0x10,0xB5,0x02,0x9C,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA, + 0x10,0x00,0x22,0x00,0x19,0x00,0xFF,0xF7,0xED,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x02,0x00,0x08,0x00,0x8A,0x42,0x00,0xDC, + 0x10,0x00,0x70,0x47,0xF0,0xB5,0xE6,0x48,0xE6,0x4F,0x86,0x89,0xF8,0x88,0xFD,0xB0, + 0x41,0x06,0x02,0xD4,0xE2,0x49,0xC0,0x39,0x0E,0x89,0xE3,0x49,0x09,0x78,0x74,0x91, + 0xE2,0x49,0x0A,0x78,0x74,0x99,0x91,0x42,0x73,0x92,0x00,0xD8,0x11,0x00,0x72,0x91, + 0x00,0x21,0x6D,0x91,0x6C,0x91,0xDA,0x49,0xDD,0x4D,0x20,0x39,0x7C,0x91,0x8C,0x8B, + 0x40,0x06,0x00,0xD4,0x2C,0x8B,0xDB,0x48,0x08,0x22,0x00,0x21,0x00,0xF0,0x44,0xFF, + 0xD8,0x48,0x10,0x22,0x00,0x21,0x08,0x30,0x00,0xF0,0x3E,0xFF,0xFF,0x22,0x01,0x32, + 0x00,0x21,0x2C,0xA8,0x00,0xF0,0x38,0xFF,0x48,0x22,0x00,0x21,0x1A,0xA8,0x00,0xF0, + 0x33,0xFF,0x20,0x22,0x00,0x21,0x12,0xA8,0x00,0xF0,0x2E,0xFF,0x20,0x22,0x00,0x21, + 0x0A,0xA8,0x00,0xF0,0x29,0xFF,0x20,0x22,0x00,0x21,0x02,0xA8,0x00,0xF0,0x24,0xFF, + 0xC4,0x48,0x64,0x21,0x00,0x89,0x07,0x00,0x70,0x43,0xFC,0xF7,0xA1,0xF9,0xC5,0x49, + 0xC0,0x4A,0x89,0x1C,0x7B,0x91,0xBF,0x49,0xC9,0x89,0x40,0x18,0x7B,0x99,0xC8,0x82, + 0xC1,0x48,0x00,0x21,0x01,0x81,0x7C,0x99,0xD2,0x88,0x89,0x7F,0x06,0x00,0x38,0x00, + 0x52,0x06,0x00,0xD4,0xA9,0x7E,0x48,0x43,0x64,0x21,0xFC,0xF7,0x63,0xFA,0x00,0x04, + 0x00,0x14,0xA0,0x42,0x70,0x81,0x00,0xDA,0x74,0x81,0xB2,0x48,0x01,0x79,0x00,0x29, + 0x7D,0xD0,0x00,0x27,0xDC,0xE0,0xAF,0x48,0xB9,0x00,0x08,0x18,0xE0,0x30,0x10,0x25, + 0x12,0x21,0x45,0x5F,0x41,0x5E,0x01,0x20,0x7E,0x1C,0x75,0x91,0x6F,0x90,0x6E,0x90, + 0x71,0x90,0x70,0x90,0xF0,0x00,0x1A,0xAA,0x7A,0x90,0x11,0x52,0x80,0x18,0x75,0x99, + 0x79,0x90,0x41,0x80,0x85,0x80,0x00,0x2F,0xC5,0x80,0x20,0xDD,0x38,0x00,0x1A,0xAC, + 0x1A,0xE0,0xC2,0x00,0x11,0x19,0x04,0x23,0xCB,0x5E,0xAB,0x42,0x13,0xDC,0x06,0x23, + 0xCB,0x5E,0xAB,0x42,0x0F,0xDB,0xA2,0x5E,0x75,0x9B,0x9A,0x42,0x0B,0xDC,0x02,0x22, + 0x8A,0x5E,0x9A,0x42,0x07,0xDB,0x01,0x06,0x09,0x0E,0x6D,0x91,0x6C,0x99,0x49,0x1C, + 0x09,0x06,0x09,0x0E,0x6C,0x91,0x40,0x1E,0x00,0x28,0xE2,0xDC,0x01,0xE0,0x00,0x20, + 0x6D,0x90,0x00,0x24,0x5C,0xE0,0x6F,0x98,0x01,0x28,0x0D,0xD1,0xA5,0x42,0x0B,0xDB, + 0x31,0x06,0x6D,0x9A,0x09,0x0E,0x68,0x46,0x06,0xC0,0x23,0x00,0x01,0x22,0x1A,0xA9, + 0x2C,0xA8,0xFF,0xF7,0x75,0xFE,0x00,0xE0,0x00,0x20,0x00,0x2C,0x6F,0x90,0x3E,0xDD, + 0x6E,0x98,0x01,0x28,0x10,0xD1,0x75,0x98,0x73,0x99,0x00,0x19,0x88,0x42,0x0B,0xDA, + 0x31,0x06,0x6D,0x9A,0x09,0x0E,0x68,0x46,0x06,0xC0,0x23,0x00,0x02,0x22,0x1A,0xA9, + 0x2C,0xA8,0xFF,0xF7,0x5D,0xFE,0x00,0xE0,0x00,0x20,0x6E,0x90,0x71,0x98,0x01,0x28, + 0x0E,0xD1,0xA5,0x42,0x0C,0xDB,0x31,0x06,0x6D,0x9A,0x09,0x0E,0x68,0x46,0x06,0xC0, + 0x23,0x00,0x03,0x22,0x1A,0xA9,0x2C,0xA8,0xFF,0xF7,0x4A,0xFE,0x01,0xE0,0xDB,0xE0, + 0x00,0x20,0x71,0x90,0x70,0x98,0x01,0x28,0x0F,0xD1,0x74,0x99,0x28,0x19,0x88,0x42, + 0x0B,0xDA,0x31,0x06,0x6D,0x9A,0x09,0x0E,0x68,0x46,0x06,0xC0,0x23,0x00,0x04,0x22, + 0x1A,0xA9,0x2C,0xA8,0xFF,0xF7,0x34,0xFE,0x00,0xE0,0x00,0x20,0x70,0x90,0x6E,0x99, + 0x6F,0x98,0x08,0x43,0x71,0x99,0x08,0x43,0x70,0x99,0x08,0x43,0x03,0xD0,0x64,0x1C, + 0x72,0x98,0x84,0x42,0x9F,0xDB,0x6D,0x98,0x00,0x28,0x38,0xD0,0x5D,0x49,0x40,0x00, + 0x40,0x18,0x72,0x00,0x52,0x18,0xFF,0x30,0xFF,0x32,0x41,0x30,0x41,0x32,0xC3,0x88, + 0xD1,0x88,0x59,0x18,0xC1,0x80,0x7A,0x98,0x1A,0xAB,0x19,0x5E,0x6D,0x98,0xC0,0x00, + 0x1C,0x5E,0xA1,0x42,0x00,0xDA,0x19,0x52,0x79,0x9C,0x02,0x21,0x61,0x5E,0xC0,0x18, + 0x02,0x24,0x04,0x5F,0xA1,0x42,0x00,0xDD,0x41,0x80,0x79,0x9C,0x04,0x21,0x61,0x5E, + 0x04,0x24,0x04,0x5F,0xA1,0x42,0x00,0xDA,0x81,0x80,0x79,0x9C,0x06,0x21,0x61,0x5E, + 0x06,0x24,0x04,0x5F,0xA1,0x42,0x00,0xDD,0xC1,0x80,0x00,0x20,0xD0,0x80,0x7A,0x99, + 0x58,0x52,0x79,0x99,0x48,0x80,0x79,0x99,0x88,0x80,0x79,0x99,0xC8,0x80,0x7F,0x1C, + 0x40,0x48,0x01,0x79,0xB9,0x42,0x00,0xDD,0x1D,0xE7,0x02,0x79,0x6C,0x99,0x51,0x1A, + 0x01,0x24,0x01,0x71,0x6C,0xE0,0xE0,0x00,0x1A,0xA9,0x0B,0x5E,0x41,0x18,0x02,0x20, + 0x77,0x91,0x08,0x5E,0x9B,0x1C,0x80,0x1C,0x76,0x90,0x41,0xE0,0x77,0x98,0x04,0x21, + 0x41,0x5E,0x02,0x00,0x06,0x20,0x10,0x5E,0x89,0x1C,0x80,0x1C,0x78,0x90,0x33,0xE0, + 0x74,0x9A,0x98,0x1E,0x84,0x46,0x50,0x43,0x8D,0x1E,0x2C,0xAA,0x52,0x19,0x80,0x5C, + 0x00,0x28,0x27,0xD0,0x74,0x98,0x31,0x4E,0x00,0x1D,0x58,0x43,0x40,0x18,0x40,0x00, + 0x30,0x5E,0x7B,0x9F,0x16,0x26,0xBE,0x5F,0x00,0x22,0xB0,0x42,0x00,0xDD,0x82,0x1B, + 0x24,0x4F,0x6D,0x00,0xED,0x19,0x2D,0x8C,0xA0,0x00,0x12,0xAE,0x55,0x43,0x36,0x58, + 0x75,0x19,0x12,0xAE,0x35,0x50,0x66,0x46,0x76,0x00,0xF6,0x19,0x40,0x36,0xB6,0x88, + 0x0A,0xAD,0x2D,0x58,0x56,0x43,0xAD,0x19,0x0A,0xAE,0x35,0x50,0x02,0xAD,0x2E,0x58, + 0xB2,0x18,0x2A,0x50,0x78,0x98,0x49,0x1C,0x88,0x42,0xC9,0xDA,0x76,0x98,0x5B,0x1C, + 0x98,0x42,0xBB,0xDA,0xA5,0x00,0x02,0xA8,0x46,0x59,0x00,0x2E,0x12,0xD0,0x12,0xA8, + 0x40,0x59,0x31,0x00,0xFC,0xF7,0x16,0xF9,0x0E,0x49,0x62,0x00,0x57,0x18,0xFF,0x21, + 0x1F,0x31,0xC8,0x53,0x0A,0xA8,0x40,0x59,0x31,0x00,0xFC,0xF7,0x0B,0xF9,0xFF,0x37, + 0x21,0x37,0xF8,0x81,0x07,0x48,0x00,0x19,0xFF,0x30,0x21,0x30,0x44,0x77,0x64,0x1C, + 0x04,0x48,0x00,0x79,0xA0,0x42,0x8E,0xDA,0x7D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x20,0x79,0x00,0x00,0x2E,0x07,0x00,0x20,0x30,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20, + 0xF0,0xB5,0x00,0x20,0xE7,0xB0,0x42,0x90,0x32,0x90,0x0D,0x90,0xFF,0x48,0x66,0x90, + 0x02,0x8A,0xFF,0x49,0xC8,0x88,0x43,0x06,0x02,0xD4,0xFC,0x4A,0xC0,0x3A,0x92,0x89, + 0xFA,0x4D,0xFC,0x4C,0x20,0x35,0x0C,0x92,0xAA,0x89,0x43,0x06,0x00,0xD4,0x22,0x89, + 0xF9,0x4B,0x0B,0x92,0xF5,0x4A,0x40,0x32,0x65,0x92,0x52,0x89,0x46,0x06,0x64,0x93, + 0x00,0xD4,0xDA,0x88,0x43,0x06,0x0A,0x92,0x65,0x9A,0x12,0x79,0x01,0xD4,0x64,0x9A, + 0x12,0x78,0x43,0x06,0x09,0x92,0x65,0x9A,0x52,0x79,0x01,0xD4,0x64,0x9A,0x52,0x78, + 0x43,0x06,0x08,0x92,0x65,0x9A,0x12,0x8B,0x01,0xD4,0x64,0x9A,0x92,0x8A,0x40,0x06, + 0x07,0x92,0x2F,0x89,0x00,0xD4,0xA7,0x88,0xE8,0x48,0x29,0x22,0x06,0x78,0xE8,0x48, + 0x00,0x78,0x06,0x90,0xE2,0x48,0xC0,0x89,0x05,0x90,0x01,0x20,0x04,0x90,0x00,0x20, + 0x01,0x00,0x02,0x90,0x0E,0xA8,0x00,0xF0,0x3F,0xFD,0xE2,0x48,0xDC,0x49,0x08,0x81, + 0xDB,0x48,0x00,0x21,0x81,0x81,0x41,0x81,0xC0,0x30,0x63,0x90,0x41,0x80,0xA0,0x30, + 0x62,0x90,0x40,0x78,0xDC,0x49,0x02,0x28,0x61,0x91,0x53,0xD9,0xD4,0x4A,0x69,0x8A, + 0xD2,0x88,0x52,0x06,0x00,0xD4,0xE1,0x89,0x36,0x91,0xD8,0x49,0x36,0x9A,0x60,0x91, + 0x89,0x8B,0x89,0x18,0x37,0x91,0x0C,0x99,0xC9,0x04,0x25,0xD5,0x01,0x28,0x0C,0xD9, + 0xCB,0x4A,0xE9,0x7A,0xD2,0x88,0x52,0x06,0x00,0xD4,0xE1,0x79,0x48,0x43,0x00,0x06, + 0x00,0x0E,0x04,0x90,0x01,0xD1,0x01,0x20,0x04,0x90,0x63,0x99,0xC4,0x4A,0x00,0x20, + 0x08,0x5E,0xD2,0x88,0xA9,0x7A,0x52,0x06,0x00,0xD4,0xA1,0x79,0x48,0x43,0x64,0x21, + 0xFB,0xF7,0x86,0xFF,0x00,0x04,0x00,0x0C,0xB8,0x42,0x00,0xD2,0x38,0x00,0x04,0x99, + 0xFC,0xF7,0x58,0xF8,0x63,0x99,0x48,0x80,0xB9,0x49,0x65,0x98,0xC9,0x88,0x40,0x8B, + 0x49,0x06,0x01,0xD4,0x64,0x98,0xC0,0x8A,0x61,0x99,0x89,0x8B,0x40,0x18,0x37,0x99, + 0x35,0x90,0x88,0x42,0x34,0x91,0x00,0xD2,0x37,0x90,0x02,0x20,0x4D,0x90,0xAF,0x48, + 0xC0,0x30,0x5F,0x90,0xB4,0x48,0xA0,0x38,0x5E,0x90,0x06,0x98,0x80,0x1C,0x53,0x90, + 0x4D,0x98,0x95,0xE3,0x02,0x28,0x08,0xD1,0xA9,0x4A,0x29,0x8A,0xD2,0x88,0x52,0x06, + 0x00,0xD4,0xA1,0x89,0x61,0x9A,0x52,0x8B,0x0E,0xE0,0xAD,0x49,0x09,0x78,0x00,0x29, + 0x02,0xD0,0xAC,0x49,0x89,0x89,0x05,0xE0,0xA1,0x4A,0xE9,0x89,0xD2,0x88,0x52,0x06, + 0x00,0xD4,0x61,0x89,0x61,0x9A,0x12,0x8B,0x89,0x18,0x95,0xE7,0x02,0x24,0xB0,0x1C, + 0x54,0x90,0x6A,0xE3,0x4D,0x98,0x54,0x99,0x40,0x1E,0x48,0x43,0x61,0x1E,0x40,0x18, + 0x00,0x04,0x07,0x14,0xA0,0x49,0x78,0x00,0x5D,0x90,0x08,0x5E,0x37,0x99,0x09,0x04, + 0x09,0x14,0x88,0x42,0x7B,0xDB,0x78,0x1C,0xC1,0x10,0x0E,0xAA,0x52,0x5C,0x41,0x07, + 0x49,0x0F,0x01,0x20,0x88,0x40,0x02,0x40,0xF8,0x10,0x0E,0xA9,0x5C,0x90,0x09,0x5C, + 0x7B,0x07,0x5B,0x0F,0x01,0x20,0x98,0x40,0x01,0x40,0x5B,0x90,0x78,0x1E,0xC3,0x10, + 0x0E,0xAD,0xEB,0x5C,0x45,0x07,0x6D,0x0F,0x01,0x20,0xA8,0x40,0x18,0x40,0x01,0xF0, + 0x33,0xFC,0x01,0x90,0xB8,0x1B,0x41,0x1E,0xCA,0x10,0x0E,0xAB,0x9A,0x5C,0x4B,0x07, + 0x5B,0x0F,0x01,0x21,0x99,0x40,0x0A,0x40,0x83,0x1E,0xD9,0x10,0x0E,0xAD,0x69,0x5C, + 0x5D,0x07,0x6D,0x0F,0x01,0x23,0xAB,0x40,0x19,0x40,0xC0,0x1E,0xC3,0x10,0x0E,0xAD, + 0xEB,0x5C,0x45,0x07,0x6D,0x0F,0x01,0x20,0xA8,0x40,0x18,0x40,0x01,0xF0,0x14,0xFC, + 0x01,0x99,0x01,0xF0,0x0F,0xFC,0x00,0x28,0x39,0xD1,0x7B,0x48,0x32,0x00,0x39,0x00, + 0x02,0x23,0xFE,0xF7,0x29,0xFF,0x37,0x99,0x88,0x42,0xB3,0xDB,0x76,0x49,0x5D,0x9A, + 0x89,0x5E,0x81,0x42,0xF0,0xD1,0x6A,0x4F,0xBA,0x89,0x82,0x42,0x00,0xDA,0xB8,0x81, + 0x5C,0x9A,0x0E,0xAB,0x9A,0x5C,0x5B,0x9D,0x2A,0x43,0x5C,0x9D,0x5A,0x55,0x64,0x4A, + 0x92,0x89,0x82,0x42,0x05,0xD1,0x62,0x48,0x00,0x79,0x40,0x1C,0x00,0x06,0x00,0x0E, + 0x0D,0x90,0x00,0x20,0x05,0x00,0x03,0x90,0x5E,0x98,0x80,0x7E,0xC2,0x07,0x20,0xD0, + 0x80,0x07,0x0D,0xD5,0x30,0x1B,0x40,0x1C,0x00,0xD1,0x75,0x1E,0xA6,0x42,0x04,0xD1, + 0x01,0x22,0x30,0x04,0x52,0x04,0x80,0x1A,0x05,0x43,0x01,0x20,0x10,0xE0,0xA4,0xE0, + 0x4D,0x9A,0x06,0x98,0x80,0x1A,0x40,0x1C,0x01,0xD1,0x06,0x9D,0x6D,0x1E,0x06,0x98, + 0x90,0x42,0x04,0xD1,0x01,0x22,0x00,0x04,0x12,0x05,0x80,0x1A,0x05,0x43,0x02,0x20, + 0x03,0x90,0x28,0x04,0x01,0xD0,0x35,0x98,0x00,0xE0,0x34,0x98,0x00,0x04,0x00,0x14, + 0x81,0x42,0xB2,0xDB,0x4D,0x99,0x30,0x1D,0x41,0x43,0x5A,0x90,0x08,0x19,0x00,0x04, + 0x00,0x14,0x33,0x90,0x0C,0x98,0xC0,0x04,0x0C,0xD5,0x33,0x98,0x4B,0x49,0x40,0x00, + 0x08,0x5E,0x05,0x99,0x40,0x1A,0x00,0x28,0x77,0xDD,0x63,0x9A,0x02,0x21,0x51,0x5E, + 0x81,0x42,0x72,0xDA,0x04,0x20,0x4E,0x90,0x20,0x18,0x59,0x90,0x4E,0x98,0x04,0x27, + 0x80,0x00,0x58,0x90,0x59,0x98,0x00,0x1F,0x0D,0xD4,0x59,0x98,0x00,0x1F,0xB0,0x42, + 0x09,0xDA,0x4D,0x98,0xC0,0x19,0x57,0x90,0x00,0x1F,0x04,0xD4,0x57,0x98,0x06,0x99, + 0x00,0x1F,0x88,0x42,0x07,0xDB,0x14,0x20,0x78,0x43,0x00,0x21,0x19,0xAA,0x80,0x18, + 0x58,0x9A,0x81,0x50,0x27,0xE0,0x05,0x98,0x0C,0x99,0x00,0x04,0x00,0x14,0xC9,0x04, + 0x04,0xD5,0x04,0x99,0xFB,0xF7,0x54,0xFE,0x00,0x04,0x00,0x14,0x57,0x99,0x5A,0x9A, + 0x89,0x1E,0x51,0x43,0x59,0x9A,0x89,0x18,0x2C,0x4A,0x49,0x00,0x89,0x18,0x20,0x39, + 0x89,0x8B,0x08,0x1A,0x00,0x04,0x00,0x14,0x00,0xD5,0x00,0x20,0x07,0x99,0x00,0x29, + 0x03,0xD0,0x88,0x42,0x01,0xDD,0x08,0x04,0x00,0x14,0x14,0x21,0x79,0x43,0x19,0xAA, + 0x89,0x18,0x58,0x9A,0x88,0x50,0x7F,0x1E,0x3F,0x04,0x3F,0x14,0xBA,0xD5,0x4E,0x98, + 0x40,0x1E,0x00,0x04,0x00,0x14,0x4E,0x90,0xAE,0xD5,0x33,0x98,0x1B,0x4A,0x40,0x00, + 0x84,0x46,0x80,0x18,0x01,0x00,0x20,0x39,0x1E,0x23,0xCB,0x5E,0x05,0x99,0x59,0x1A, + 0x41,0x91,0x02,0x21,0x41,0x5E,0x05,0x98,0x05,0x9B,0x08,0x1A,0x40,0x90,0x33,0x98, + 0x18,0x21,0x80,0x1B,0x40,0x00,0x80,0x18,0x20,0x38,0x41,0x5E,0xC9,0x1A,0x3F,0x91, + 0x33,0x99,0x89,0x19,0x49,0x00,0x89,0x18,0x1A,0xE0,0x3B,0xE1,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x00,0x79,0x00,0x00,0x20,0x79,0x00,0x00,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0xFF,0x0F,0x00,0x00,0xD0,0x0A,0x00,0x20,0xF0,0x06,0x00,0x20, + 0x04,0x0B,0x00,0x20,0xA0,0x7A,0x00,0x00,0x40,0x00,0x00,0x20,0xC8,0x02,0x00,0x20, + 0x08,0x23,0xCB,0x5E,0x05,0x9F,0xDB,0x1B,0x3E,0x93,0x16,0x23,0xC3,0x5E,0xDB,0x1B, + 0x3D,0x93,0x06,0x23,0xCB,0x5E,0xDB,0x1B,0x3C,0x93,0x1A,0x23,0xC3,0x5E,0xD8,0x1B, + 0x3B,0x90,0x0A,0x20,0x08,0x5E,0x0B,0x99,0xC0,0x1B,0x3A,0x90,0x60,0x46,0x10,0x5E, + 0xC0,0x1B,0x48,0x43,0x64,0x21,0xFB,0xF7,0xD3,0xFD,0x38,0x90,0x26,0x98,0x02,0x04, + 0x24,0x98,0x12,0x14,0x03,0x04,0x21,0x98,0x00,0x92,0x02,0x04,0x20,0x98,0x1B,0x14, + 0x01,0x04,0x1F,0x98,0x12,0x14,0x00,0x04,0x09,0x14,0x00,0x14,0xFF,0xF7,0xB9,0xFB, + 0x07,0x00,0x2B,0x98,0x02,0x04,0x2A,0x98,0x12,0x14,0x01,0x04,0x29,0x98,0x09,0x14, + 0x00,0x04,0x00,0x14,0xFF,0xF7,0xA6,0xFB,0x01,0x00,0x38,0x00,0xFF,0xF7,0x9E,0xFB, + 0x25,0x99,0x7D,0x22,0x52,0x01,0x91,0x42,0x07,0xDD,0x81,0x42,0x05,0xDD,0x08,0x1A, + 0x51,0x10,0x88,0x42,0x01,0xDD,0x01,0x20,0x02,0x90,0xFB,0x48,0xFF,0x21,0xC0,0x88, + 0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06,0x01,0xD5,0x01,0x20,0x02,0x90,0xF7,0x48, + 0x00,0x78,0x00,0x28,0x47,0xD1,0x20,0xA9,0x06,0xC9,0x02,0x2C,0x14,0xD1,0x01,0xF0, + 0xB3,0xFA,0x07,0x00,0x00,0x21,0x26,0x9A,0x08,0x00,0x01,0xF0,0xAD,0xFA,0x2A,0xA9, + 0x06,0xC9,0x3F,0x18,0x00,0x20,0x01,0xF0,0xA7,0xFA,0x38,0x18,0x05,0x21,0xFB,0xF7, + 0x7F,0xFD,0x00,0x04,0x00,0x0C,0x13,0xE0,0x1F,0x98,0x01,0xF0,0x9D,0xFA,0x07,0x00, + 0x26,0x9A,0x24,0x98,0x00,0x21,0x01,0xF0,0x97,0xFA,0x3F,0x18,0x29,0xA8,0x07,0xC8, + 0x01,0xF0,0x92,0xFA,0x38,0x18,0xC1,0x17,0x49,0x0F,0x08,0x18,0x40,0x03,0x00,0x0C, + 0x25,0x99,0x09,0x1A,0x00,0x29,0x01,0xDC,0x25,0x99,0x41,0x1A,0x5F,0x98,0x02,0x8A, + 0xD9,0x48,0xC0,0x88,0x43,0x06,0x01,0xD4,0x66,0x9A,0x92,0x89,0x91,0x42,0x0A,0xDA, + 0x5F,0x99,0x25,0x9A,0x49,0x8A,0x40,0x06,0x01,0xD4,0x66,0x98,0xC1,0x89,0x8A,0x42, + 0x01,0xDA,0x28,0x04,0x7E,0xD0,0x00,0x2D,0x2B,0xD0,0x03,0x98,0xC0,0x07,0x16,0xD0, + 0x04,0x20,0x00,0x22,0x19,0xAB,0x29,0x04,0x06,0xD0,0x14,0x27,0x01,0x00,0x79,0x43, + 0x5A,0x50,0xC9,0x18,0x4A,0x60,0x05,0xE0,0x14,0x27,0x01,0x00,0x79,0x43,0xC9,0x18, + 0xCA,0x60,0x0A,0x61,0x40,0x1E,0x00,0x04,0x00,0x14,0xEC,0xD5,0x11,0xE0,0x04,0x20, + 0x00,0x22,0x19,0xAB,0x29,0x04,0x04,0xD0,0x81,0x00,0x5A,0x50,0xC9,0x18,0x4A,0x61, + 0x03,0xE0,0x81,0x00,0xC9,0x18,0xCA,0x63,0x0A,0x65,0x40,0x1E,0x00,0x04,0x00,0x14, + 0xF0,0xD5,0xBB,0x48,0x33,0x99,0x32,0x00,0x04,0x23,0xFE,0xF7,0x5D,0xFD,0xB6,0x49, + 0x0A,0x89,0x82,0x42,0x00,0xDD,0x08,0x81,0x4A,0x89,0x82,0x42,0x00,0xDA,0x48,0x81, + 0xB1,0x48,0x01,0x79,0x49,0x1C,0x0A,0x06,0x12,0x0E,0x02,0x71,0x92,0x00,0xA1,0x1E, + 0x12,0x18,0xE0,0x32,0x56,0x91,0x91,0x81,0x4D,0x99,0x89,0x1E,0x55,0x91,0x02,0x79, + 0x92,0x00,0x10,0x18,0xE0,0x30,0xC1,0x81,0x00,0x20,0x07,0x00,0x01,0x00,0x84,0x46, + 0x39,0x90,0x41,0x9A,0x38,0x98,0x82,0x42,0x06,0xDC,0x38,0x9A,0x3D,0x98,0x90,0x42, + 0x02,0xDC,0x3C,0x98,0x90,0x42,0x01,0xDD,0x01,0x20,0x39,0x90,0x38,0x9A,0x40,0x98, + 0x90,0x42,0x05,0xDC,0x3B,0x98,0x90,0x42,0x02,0xDC,0x3A,0x98,0x90,0x42,0x01,0xDD, + 0x01,0x20,0x84,0x46,0x3F,0x98,0x90,0x42,0x05,0xDC,0x3D,0x98,0x90,0x42,0x02,0xDC, + 0x3B,0x98,0x90,0x42,0x00,0xDD,0x01,0x27,0x3E,0x98,0x90,0x42,0x07,0xDC,0x3C,0x98, + 0x90,0x42,0x00,0xE0,0xF5,0xE0,0x02,0xDC,0x3A,0x98,0x90,0x42,0x00,0xDD,0x01,0x21, + 0x04,0x20,0x00,0x22,0x19,0xAD,0x39,0x9B,0x00,0x2B,0x02,0xD1,0x14,0x23,0x43,0x43, + 0xEA,0x50,0x63,0x46,0x00,0x2B,0x03,0xD1,0x14,0x23,0x43,0x43,0x5B,0x19,0x1A,0x61, + 0x00,0x2F,0x01,0xD1,0x83,0x00,0xEA,0x50,0x00,0x29,0x02,0xD1,0x83,0x00,0x5B,0x19, + 0x1A,0x65,0x40,0x1E,0x00,0x04,0x00,0x14,0xE5,0xD5,0x1D,0x9A,0x19,0xA8,0x00,0x92, + 0x0F,0xC8,0x01,0xF0,0xCC,0xF9,0x4A,0x90,0x22,0x9A,0x1E,0xA8,0x00,0x92,0x0F,0xC8, + 0x01,0xF0,0xC5,0xF9,0x27,0x9A,0x49,0x90,0x23,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0, + 0xBE,0xF9,0x2C,0x9A,0x48,0x90,0x28,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xB7,0xF9, + 0x31,0x9A,0x47,0x90,0x2D,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xB0,0xF9,0x46,0x90, + 0x00,0x90,0x47,0x9B,0x48,0x9A,0x49,0x99,0x4A,0x98,0x01,0xF0,0xA8,0xF9,0x00,0x28, + 0x4B,0x90,0x0F,0xD1,0x04,0x27,0x14,0x20,0x78,0x43,0x40,0x19,0x0A,0x22,0x00,0x21, + 0x00,0xF0,0xF2,0xF9,0x7F,0x1E,0x3F,0x04,0x3F,0x14,0xF4,0xD5,0x0A,0x20,0x48,0x90, + 0x25,0x90,0x4B,0x90,0x56,0x98,0x00,0x28,0x01,0xDC,0x00,0x20,0x0C,0xE0,0x2D,0x9A, + 0x00,0x92,0x28,0x9B,0x23,0x9A,0x1E,0x99,0x19,0x98,0x01,0xF0,0x88,0xF9,0x5A,0x4A, + 0x61,0x00,0x89,0x18,0x49,0x8B,0x48,0x43,0x2E,0x9A,0x45,0x90,0x00,0x92,0x29,0x9B, + 0x24,0x9A,0x1F,0x99,0x1A,0x98,0x01,0xF0,0x7A,0xF9,0x53,0x49,0x62,0x00,0x55,0x18, + 0xA9,0x8B,0x2F,0x9A,0x2A,0x9B,0x48,0x43,0x44,0x90,0x00,0x92,0x25,0x9A,0x20,0x99, + 0x1B,0x98,0x01,0xF0,0x6C,0xF9,0xE9,0x8B,0x30,0x9A,0x2B,0x9B,0x48,0x43,0x43,0x90, + 0x00,0x92,0x26,0x9A,0x21,0x99,0x1C,0x98,0x01,0xF0,0x61,0xF9,0x29,0x8C,0x48,0x43, + 0x56,0x99,0x07,0x00,0x70,0x1E,0x81,0x42,0x01,0xDB,0x00,0x20,0x09,0xE0,0x31,0x9A, + 0x2C,0x9B,0x00,0x92,0x27,0x9A,0x22,0x99,0x1D,0x98,0x01,0xF0,0x50,0xF9,0x69,0x8C, + 0x48,0x43,0x00,0x90,0x43,0x9A,0x44,0x99,0x45,0x98,0x3B,0x00,0x01,0xF0,0x47,0xF9, + 0x4B,0x99,0xFB,0xF7,0x1D,0xFC,0x38,0x49,0x0A,0x8C,0x52,0x00,0x80,0x1A,0x00,0xD5, + 0x00,0x20,0x0A,0x79,0x52,0x00,0x52,0x18,0xC0,0x32,0x90,0x81,0x55,0x98,0x00,0x28, + 0x01,0xDC,0x00,0x20,0x05,0xE0,0x4D,0x98,0x4A,0x9A,0x40,0x00,0x40,0x18,0xC0,0x8F, + 0x50,0x43,0x4D,0x9A,0x2C,0x49,0x52,0x00,0x52,0x18,0x40,0x32,0x11,0x88,0x49,0x9B, + 0x48,0x9D,0x59,0x43,0x53,0x88,0x06,0x9F,0x6B,0x43,0x9C,0x46,0x93,0x88,0x47,0x9D, + 0x7F,0x1E,0x6B,0x43,0x55,0x9D,0xBD,0x42,0x01,0xDB,0x00,0x22,0x02,0xE0,0xD2,0x88, + 0x46,0x9D,0x6A,0x43,0x00,0x92,0x62,0x46,0x01,0xF0,0x11,0xF9,0x4B,0x99,0xFB,0xF7, + 0xE7,0xFB,0x1D,0x49,0x40,0x31,0x89,0x88,0x49,0x00,0x40,0x1A,0x00,0xD5,0x00,0x20, + 0x19,0x49,0x0A,0x79,0x52,0x00,0x52,0x18,0xC0,0x32,0xD0,0x83,0x08,0x79,0x08,0x28, + 0x12,0xD2,0x64,0x1C,0x54,0x98,0x24,0x04,0x24,0x14,0x84,0x42,0x00,0xDA,0x91,0xE4, + 0x42,0x98,0x00,0x28,0x08,0xD1,0x4D,0x98,0x40,0x1C,0x00,0x04,0x00,0x14,0x4D,0x90, + 0x53,0x99,0x88,0x42,0x00,0xDA,0x81,0xE4,0x0C,0x98,0x00,0x06,0x60,0xD5,0x0A,0x4C, + 0x20,0x79,0x00,0x28,0x60,0x98,0x15,0xD1,0x80,0x8B,0x00,0x28,0x51,0xD0,0x60,0x98, + 0x65,0x99,0xE2,0x88,0x40,0x7E,0x09,0x7B,0x52,0x06,0x01,0xD4,0x64,0x99,0x09,0x7A, + 0x88,0x42,0x46,0xD2,0x40,0x1C,0x41,0xE0,0xF0,0x05,0x00,0x20,0x05,0x0B,0x00,0x20, + 0xC8,0x02,0x00,0x20,0x80,0x7E,0x09,0x99,0x88,0x42,0x36,0xD8,0x40,0x1C,0x60,0x99, + 0x00,0x06,0x00,0x0E,0x88,0x76,0x08,0x99,0x88,0x42,0x03,0xD9,0xA1,0x89,0x32,0x9A, + 0x89,0x18,0x32,0x91,0x09,0x99,0x88,0x42,0x27,0xD1,0x08,0x99,0x88,0x42,0x24,0xD0, + 0x41,0x1A,0x32,0x98,0xFB,0xF7,0x66,0xFC,0x60,0x9A,0x00,0x21,0x91,0x83,0x65,0x99, + 0x0A,0x89,0xE1,0x88,0x4B,0x06,0x01,0xD4,0x64,0x9A,0x92,0x88,0x82,0x42,0x14,0xD2, + 0x36,0x9A,0x80,0x1A,0x65,0x9A,0x49,0x06,0x92,0x79,0x01,0xD4,0x64,0x99,0x8A,0x78, + 0x64,0x21,0x50,0x43,0xFB,0xF7,0x4E,0xFC,0x60,0x99,0x00,0x04,0x00,0x0C,0x88,0x83, + 0x0A,0x99,0x88,0x42,0x01,0xD9,0x60,0x98,0x81,0x83,0x00,0x20,0x60,0x99,0x48,0x76, + 0x06,0xE0,0x60,0x99,0x00,0x20,0x88,0x76,0x60,0x99,0x48,0x76,0x60,0x99,0x88,0x83, + 0x00,0x20,0x84,0x46,0x4C,0x90,0x59,0x48,0x01,0x24,0x00,0x79,0x50,0x90,0x52,0xE0, + 0x56,0x48,0x61,0x00,0x0F,0x18,0xC0,0x37,0xB8,0x89,0x0A,0x21,0xFB,0xF7,0x2A,0xFC, + 0x05,0x04,0xF8,0x8B,0x2D,0x14,0x0A,0x21,0xFB,0xF7,0x24,0xFC,0x5E,0x99,0x02,0x04, + 0xC9,0x7E,0x12,0x14,0x00,0x20,0x84,0x46,0x51,0x91,0x36,0xE0,0x4B,0x49,0xC3,0x00, + 0x5B,0x18,0x11,0x21,0x89,0x01,0x59,0x18,0x1C,0x27,0x52,0x91,0xCF,0x5F,0xAF,0x42, + 0x27,0xDC,0x23,0x21,0x49,0x01,0x59,0x18,0x00,0x23,0xCB,0x5E,0xAB,0x42,0x20,0xDB, + 0x52,0x9F,0x1E,0x23,0xFB,0x5E,0x93,0x42,0x1B,0xDC,0x02,0x27,0xCF,0x5F,0x3F,0x4B, + 0x97,0x42,0x16,0xDB,0xA1,0x00,0xC9,0x18,0xE0,0x31,0x0E,0x23,0xCB,0x5E,0x37,0x1D, + 0x9B,0x1C,0x7B,0x43,0x0C,0x27,0xCF,0x5F,0xD9,0x19,0x4B,0x00,0x38,0x49,0x5B,0x18, + 0x04,0x21,0x59,0x5E,0x4C,0x9B,0x99,0x42,0x03,0xDD,0x4C,0x91,0x21,0x06,0x09,0x0E, + 0x8C,0x46,0x40,0x1C,0x51,0x99,0x00,0x04,0x00,0x14,0x81,0x42,0xC6,0xDC,0x64,0x1C, + 0x50,0x98,0x24,0x04,0x24,0x14,0xA0,0x42,0xAA,0xDA,0x2C,0x4D,0x4C,0x9A,0x2C,0x00, + 0x23,0x00,0x69,0x89,0x20,0x00,0xDE,0x33,0xCC,0x30,0xC2,0x34,0x91,0x42,0x4F,0x93, + 0x05,0xDC,0x61,0x46,0x00,0x29,0x02,0xD0,0x49,0x00,0x49,0x19,0x0E,0xE0,0x69,0x79, + 0x00,0x29,0x1B,0xD1,0x50,0x99,0x01,0x29,0x18,0xD9,0x62,0x99,0x89,0x78,0x00,0x29, + 0x14,0xD1,0x0D,0x99,0x00,0x29,0x11,0xD0,0x4A,0x00,0x51,0x19,0xC0,0x31,0x8E,0x89, + 0xCF,0x8B,0x12,0x22,0x00,0x21,0x00,0xF0,0x57,0xF8,0x4F,0x98,0x12,0x22,0x00,0x21, + 0x00,0xF0,0x52,0xF8,0x01,0x20,0x28,0x71,0xA6,0x81,0xE7,0x83,0x5E,0x98,0xC0,0x7D, + 0x00,0x28,0x0C,0xD0,0x00,0x21,0x29,0x71,0x5E,0x98,0x12,0x4A,0x00,0x7E,0x92,0x7F, + 0x90,0x42,0x01,0xD3,0x5E,0x9A,0xD1,0x75,0x5E,0x99,0x40,0x1C,0x08,0x76,0x02,0x99, + 0x0D,0x48,0x00,0x29,0x10,0xD0,0x29,0x79,0x00,0x29,0x0D,0xD0,0x0B,0x4A,0x01,0x68, + 0x52,0x89,0x0A,0x32,0x91,0x42,0x01,0xDA,0x49,0x1C,0x01,0x60,0x28,0x79,0x68,0x71, + 0x67,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x21,0xF6,0xE7,0xF0,0x05,0x00,0x20, + 0xC8,0x02,0x00,0x20,0x00,0x78,0x00,0x00,0xF0,0x0A,0x00,0x20,0x80,0x7A,0x00,0x00, + 0x03,0xE0,0x0B,0x78,0x49,0x1C,0x03,0x70,0x40,0x1C,0x52,0x1E,0xF9,0xD2,0x70,0x47, + 0x52,0x10,0x03,0xE0,0x0B,0x88,0x89,0x1C,0x03,0x80,0x80,0x1C,0x52,0x1E,0xF9,0xD2, + 0x70,0x47,0x92,0x10,0x01,0xE0,0x08,0xC9,0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x09,0x06,0x09,0x0E,0x01,0xE0,0x01,0x70, + 0x40,0x1C,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x92,0x10,0x00,0xE0,0x02,0xC0,0x52,0x1E, + 0xFC,0xD2,0x70,0x47,0x0A,0x49,0x00,0x20,0xC9,0x88,0x4A,0x06,0x09,0x49,0x00,0xD5, + 0xC8,0x7A,0x89,0x7A,0x08,0x18,0x00,0x06,0x01,0x0C,0x07,0x48,0x02,0x69,0xFF,0x23, + 0x1B,0x02,0x9A,0x43,0x02,0x61,0x02,0x69,0x0A,0x43,0x02,0x61,0x70,0x47,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x80,0x78,0x00,0x00,0x00,0x90,0x00,0x40,0x10,0xB5,0x14,0x48, + 0x14,0x49,0x80,0x8B,0xC9,0x8A,0x00,0x24,0x40,0x18,0x13,0x49,0x09,0x78,0x00,0x29, + 0x12,0x49,0x04,0xD0,0x15,0x22,0x52,0x01,0x89,0x18,0x49,0x89,0x09,0xE0,0x10,0x4A, + 0xFF,0x31,0xD2,0x88,0xA1,0x31,0x49,0x8A,0x52,0x06,0x02,0xD4,0x0B,0x49,0xE0,0x31, + 0xC9,0x89,0x08,0x18,0x0B,0x49,0xC9,0x6B,0x49,0x04,0x49,0x0C,0x81,0x42,0x00,0xD3, + 0x01,0x24,0xFE,0xF7,0x3F,0xFF,0x20,0x00,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xF0,0x06,0x00,0x20,0xD0,0x0A,0x00,0x20,0x04,0x0B,0x00,0x20,0x00,0x78,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xC0,0x90,0x00,0x40,0xF7,0xB5,0x2C,0x4E,0xFF,0x27,0xB0,0x7F, + 0xF1,0x7F,0x84,0xB0,0x00,0x02,0x08,0x43,0x01,0xF0,0x16,0xFD,0x30,0x00,0x20,0x38, + 0x00,0x7D,0xC0,0x07,0x0A,0xD0,0x26,0x48,0x01,0x78,0x26,0x48,0x00,0x7A,0x00,0x29, + 0x02,0xD0,0x01,0xF0,0xA9,0xFC,0x01,0xE0,0x01,0xF0,0xD6,0xFC,0x22,0x48,0x02,0x25, + 0xC1,0x6A,0x03,0x91,0x01,0x6A,0x02,0x91,0x41,0x6A,0x01,0x91,0x41,0x6B,0x00,0x91, + 0x21,0xE0,0x1D,0x4F,0x00,0x20,0xF8,0x62,0x18,0x48,0xA0,0x30,0x80,0x68,0x38,0x62, + 0x1A,0x48,0x00,0x6B,0x78,0x62,0x03,0x24,0xE0,0x07,0xC0,0x0F,0xFC,0xF7,0x08,0xF9, + 0x64,0x1E,0xF9,0xD5,0x02,0x20,0x78,0x63,0x30,0x7F,0x01,0x00,0xFC,0xF7,0x82,0xF9, + 0x01,0x24,0x04,0xA8,0x07,0xC8,0xFE,0xF7,0x81,0xFE,0x07,0x00,0x01,0xD1,0x00,0x24, + 0x25,0x00,0x64,0x1E,0xF5,0xD5,0x28,0x00,0x6D,0x1E,0x00,0x28,0xD9,0xDC,0x0A,0x48, + 0x03,0x99,0xC1,0x62,0x02,0x99,0x01,0x62,0x01,0x99,0x41,0x62,0x00,0x99,0x41,0x63, + 0x38,0x00,0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x20,0x78,0x00,0x00, + 0xFD,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20,0x80,0x90,0x00,0x40,0x80,0x7A,0x00,0x00, + 0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x71,0xDF,0x4D,0xE2,0x00,0x00,0xA0,0xE3, + 0xB8,0x01,0x8D,0xE5,0x24,0x07,0x9F,0xE5,0x28,0x37,0x9F,0xE5,0x00,0x00,0xD0,0xE5, + 0x28,0x67,0x9F,0xE5,0xB0,0x01,0x8D,0xE5,0x14,0x07,0x9F,0xE5,0x00,0xB0,0xD0,0xE5, + 0xB6,0x00,0xD3,0xE1,0x40,0x10,0x00,0xE2,0x0C,0x07,0x9F,0xE5,0x00,0x00,0x51,0xE3, + 0x01,0x4C,0x80,0xE2,0xBC,0x1E,0xD0,0x01,0xB0,0x1B,0xD4,0x11,0x02,0xAC,0x80,0xE2, + 0xAC,0x11,0x8D,0xE5,0xB0,0x1F,0xD0,0x01,0xB4,0x1B,0xD4,0x11,0xA8,0x11,0x8D,0xE5, + 0xF8,0x1A,0xD4,0x01,0xFC,0x16,0xDA,0x11,0xA0,0x11,0x8D,0xE5,0xFA,0x1A,0xD4,0x01, + 0xFE,0x16,0xDA,0x11,0x9C,0x11,0x8D,0xE5,0xF4,0x10,0xD0,0x05,0xB8,0x11,0xD0,0x15, + 0x98,0x11,0x8D,0xE5,0xF5,0x10,0xD0,0x05,0xB9,0x11,0xD0,0x15,0x94,0x11,0x8D,0xE5, + 0xF6,0x10,0xD0,0x05,0xBA,0x11,0xD0,0x15,0x90,0x11,0x8D,0xE5,0xF7,0x10,0xD0,0x05, + 0xBB,0x11,0xD0,0x15,0x8C,0x11,0x8D,0xE5,0xBC,0x1F,0xD0,0x01,0xB0,0x1C,0xD4,0x11, + 0x88,0x11,0x8D,0xE5,0xBE,0x1F,0xD0,0x01,0xB2,0x1C,0xD4,0x11,0x84,0x11,0x8D,0xE5, + 0xB0,0x10,0xD4,0x01,0xB4,0x1C,0xD4,0x11,0x80,0x11,0x8D,0xE5,0xB2,0x10,0xD4,0x01, + 0xB6,0x1C,0xD4,0x11,0x7C,0x11,0x8D,0xE5,0xB8,0x1F,0xD0,0x01,0xBC,0x1B,0xD4,0x11, + 0x78,0x11,0x8D,0xE5,0xBA,0x0F,0xD0,0x01,0xBE,0x0B,0xD4,0x11,0x74,0x01,0x8D,0xE5, + 0x00,0x00,0xA0,0xE3,0x30,0x00,0x8D,0xE5,0x2C,0x00,0x8D,0xE5,0x28,0x00,0x8D,0xE5, + 0x24,0x00,0x8D,0xE5,0x20,0x00,0x8D,0xE5,0x1C,0x00,0x8D,0xE5,0x18,0x00,0x8D,0xE5, + 0x14,0x00,0x8D,0xE5,0x10,0x00,0x8D,0xE5,0x0C,0x00,0x8D,0xE5,0x08,0x00,0x8D,0xE5, + 0x04,0x00,0x8D,0xE5,0xB8,0x05,0xC6,0xE1,0x00,0x90,0xA0,0xE1,0xBA,0x05,0xC6,0xE1, + 0x01,0x5C,0x46,0xE2,0xBC,0x05,0xC6,0xE1,0x28,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3, + 0x70,0x00,0x85,0xE2,0x49,0xFF,0xFF,0xEB,0x28,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3, + 0x98,0x00,0x85,0xE2,0x45,0xFF,0xFF,0xEB,0x00,0x00,0xA0,0xE3,0xB4,0x01,0x8D,0xE5, + 0x00,0x10,0xA0,0xE1,0xB0,0x0C,0xC5,0xE1,0x50,0x20,0xA0,0xE3,0x49,0x0F,0x8D,0xE2, + 0x3E,0xFF,0xFF,0xEB,0x50,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xD4,0x00,0x8D,0xE2, + 0x3A,0xFF,0xFF,0xEB,0x50,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x84,0x00,0x8D,0xE2, + 0x36,0xFF,0xFF,0xEB,0x50,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x34,0x00,0x8D,0xE2, + 0x32,0xFF,0xFF,0xEB,0xA8,0x05,0x9F,0xE5,0x00,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3, + 0xF8,0x7A,0xDA,0x11,0xB6,0x0A,0xDA,0x11,0x07,0x00,0x00,0x1A,0x84,0x05,0x9F,0xE5, + 0xB6,0x00,0xD0,0xE1,0x40,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3,0xF2,0x71,0xD4,0x01, + 0xF6,0x7D,0xD4,0x11,0xB0,0x01,0xD4,0x01,0xB4,0x0D,0xD4,0x11,0x00,0x80,0xA0,0xE3, + 0x08,0x50,0xA0,0xE1,0xA4,0x01,0x8D,0xE5,0x68,0x05,0x9F,0xE5,0xC0,0x01,0x8D,0xE5, + 0x0E,0x0C,0x80,0xE2,0xBC,0x01,0x8D,0xE5,0x82,0x00,0x00,0xEA,0x00,0x40,0xA0,0xE3, + 0x7C,0x00,0x00,0xEA,0xC0,0x01,0x9D,0xE5,0x0F,0x2A,0xE0,0xE3,0x08,0x11,0x90,0xE7, + 0x01,0x0A,0xA0,0xE1,0x20,0x0A,0xA0,0xE1,0x21,0x18,0x02,0xE0,0x01,0x30,0x40,0xE0, + 0x00,0x00,0x41,0xE0,0x9C,0x11,0x9D,0xE5,0x03,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3, + 0xD4,0x20,0x8D,0xC2,0x04,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0,0x04,0x11,0x82,0xC7, + 0x9C,0x11,0x9D,0xE5,0x00,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3,0x34,0x20,0x8D,0xC2, + 0x04,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0,0x04,0x11,0x82,0xC7,0xA0,0x11,0x9D,0xE5, + 0x03,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3,0x49,0x2F,0x8D,0xC2,0x05,0xC1,0x92,0xC7, + 0x0C,0x10,0x81,0xC0,0x05,0x11,0x82,0xC7,0xA0,0x11,0x9D,0xE5,0x00,0x10,0x81,0xE0, + 0x00,0x00,0x51,0xE3,0x84,0x20,0x8D,0xC2,0x05,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0, + 0x05,0x11,0x82,0xC7,0xB4,0x11,0x9D,0xE5,0x01,0x00,0x53,0xE1,0xB4,0x31,0x8D,0xC5, + 0x30,0x40,0x8D,0xC5,0x2C,0x50,0x8D,0xC5,0xC8,0x00,0x53,0xE3,0xB8,0x15,0xD6,0xC1, + 0x01,0x10,0x81,0xC2,0xB8,0x15,0xC6,0xC1,0x96,0x00,0x50,0xE3,0xBA,0x15,0xD6,0xC1, + 0x01,0x10,0x81,0xC2,0xBA,0x15,0xC6,0xC1,0x19,0x0E,0x53,0xE3,0xBC,0x15,0xD6,0xC1, + 0x01,0x10,0x81,0xC2,0xBC,0x15,0xC6,0xC1,0x68,0x14,0x9F,0xE5,0xB6,0x10,0xD1,0xE1, + 0x40,0x00,0x11,0xE3,0xB0,0x18,0xDA,0xE1,0x01,0x28,0xE0,0x13,0x81,0x10,0x02,0x10, + 0x00,0x00,0x53,0xE3,0x03,0x28,0xA0,0xC1,0x00,0x20,0xA0,0xD3,0x22,0x28,0xA0,0xC1, + 0x00,0x00,0x50,0xE3,0x00,0x08,0xA0,0xC1,0x00,0x00,0xA0,0xD3,0x20,0x08,0xA0,0xC1, + 0x01,0x00,0x50,0xE1,0x01,0xC0,0x89,0x82,0x01,0x98,0xCC,0x83,0x01,0x00,0x52,0xE1, + 0x0C,0xC0,0x9D,0x85,0x01,0xC0,0x8C,0x82,0x01,0xC8,0xCC,0x83,0x0C,0xC0,0x8D,0x85, + 0x81,0x00,0x50,0xE1,0x08,0xC0,0x9D,0x85,0x01,0xC0,0x8C,0x82,0x01,0xC8,0xCC,0x83, + 0x08,0xC0,0x8D,0x85,0x81,0x00,0x52,0xE1,0x04,0x10,0x9D,0x85,0x01,0x10,0x81,0x82, + 0x01,0x18,0xC1,0x83,0x04,0x10,0x8D,0x85,0x10,0x10,0x9D,0xE5,0x00,0x00,0x53,0xE3, + 0x01,0x00,0x80,0xE0,0x10,0x00,0x8D,0xE5,0x00,0x30,0xA0,0xB3,0x01,0x00,0x4B,0xE2, + 0x00,0x00,0x55,0xE1,0x06,0x00,0x00,0x1A,0x00,0x00,0x53,0xE3,0x04,0x00,0x00,0x0A, + 0x03,0x02,0x63,0xE0,0x00,0x01,0xA0,0xE1,0x64,0x10,0xA0,0xE3,0xFC,0xEB,0xFF,0xEB, + 0x00,0x30,0xA0,0xE1,0x05,0x10,0xA0,0xE1,0x04,0x00,0xA0,0xE1,0x11,0xF8,0xFF,0xEB, + 0xB4,0x13,0x9F,0xE5,0x00,0x00,0x57,0xE3,0x80,0x00,0x81,0xE0,0xB0,0x30,0xC0,0xE1, + 0x00,0x00,0x67,0xD2,0x07,0x00,0xA0,0xC1,0x03,0x00,0x50,0xE1,0xB8,0x11,0x9D,0xB5, + 0x07,0x00,0x83,0xB0,0x01,0x00,0x80,0xB0,0xB8,0x01,0x8D,0xB5,0x05,0x10,0xA0,0xE1, + 0x04,0x00,0xA0,0xE1,0xDA,0xF7,0xFF,0xEB,0xBC,0x11,0x9D,0xE5,0x7C,0x23,0x9F,0xE5, + 0x08,0x11,0x91,0xE7,0x80,0x00,0x82,0xE0,0x02,0x19,0xC1,0xE3,0x01,0x80,0x88,0xE2, + 0x01,0x40,0x84,0xE2,0xB0,0x10,0xC0,0xE1,0xB0,0x01,0x9D,0xE5,0x00,0x00,0x54,0xE1, + 0x7F,0xFF,0xFF,0x3A,0x01,0x50,0x85,0xE2,0x0B,0x00,0x55,0xE1,0x7A,0xFF,0xFF,0x3A, + 0x60,0xFA,0xFF,0xEB,0x2C,0x63,0x9F,0xE5,0xA8,0x01,0x9D,0xE5,0xBE,0x00,0xC6,0xE1, + 0xAC,0x01,0x9D,0xE5,0x01,0x00,0x10,0xE3,0x0A,0x00,0x00,0x0A,0xB0,0x01,0x9D,0xE5, + 0x64,0x10,0xA0,0xE3,0x9B,0x00,0x00,0xE0,0x90,0x01,0x01,0xE0,0xB8,0x01,0x9D,0xE5, + 0xA4,0x21,0x9D,0xE5,0x92,0x00,0x00,0xE0,0x3A,0xEC,0xFF,0xEB,0xA8,0x11,0x9D,0xE5, + 0x01,0x00,0x50,0xE1,0xBE,0x00,0xC6,0x31,0xB0,0x01,0x9D,0xE5,0x64,0x10,0xA0,0xE3, + 0x90,0x01,0x07,0xE0,0x00,0x40,0xA0,0xE3,0x22,0x00,0x00,0xEA,0x49,0x0F,0x8D,0xE2, + 0x04,0x01,0x90,0xE7,0x98,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x07,0x10,0xA0,0xE1, + 0x2C,0xEC,0xFF,0xEB,0x88,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0xBC,0xFA,0xFF,0xEB,0x00,0x50,0xA0,0xE1, + 0x84,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7,0x94,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x07,0x10,0xA0,0xE1,0x1F,0xEC,0xFF,0xEB,0x84,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1, + 0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0xAF,0xFA,0xFF,0xEB, + 0x00,0x00,0x45,0xE0,0x78,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x91,0x00,0x00,0xE0,0x84,0x50,0x86,0xE0,0x64,0x10,0xA0,0xE3,0xA4,0xEB,0xFF,0xEB, + 0x01,0x40,0x84,0xE2,0xB0,0x07,0xC5,0xE1,0x0B,0x00,0x54,0xE1,0xDA,0xFF,0xFF,0x3A, + 0x64,0x00,0xA0,0xE3,0x9B,0x00,0x05,0xE0,0x00,0x40,0xA0,0xE3,0x22,0x00,0x00,0xEA, + 0xD4,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7,0x90,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x05,0x10,0xA0,0xE1,0x03,0xEC,0xFF,0xEB,0x80,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1, + 0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x93,0xFA,0xFF,0xEB, + 0x00,0x70,0xA0,0xE1,0x34,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7,0x8C,0x11,0x9D,0xE5, + 0x91,0x00,0x00,0xE0,0x05,0x10,0xA0,0xE1,0xF6,0xEB,0xFF,0xEB,0x7C,0x11,0x9D,0xE5, + 0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1, + 0x86,0xFA,0xFF,0xEB,0x00,0x00,0x47,0xE0,0x74,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x91,0x00,0x00,0xE0,0x84,0x70,0x86,0xE0,0x64,0x10,0xA0,0xE3, + 0x7B,0xEB,0xFF,0xEB,0x01,0x40,0x84,0xE2,0xB8,0x09,0xC7,0xE1,0xB0,0x01,0x9D,0xE5, + 0x00,0x00,0x54,0xE1,0xD9,0xFF,0xFF,0x3A,0xB4,0x01,0x9D,0xE5,0x00,0x00,0x50,0xE3, + 0x0D,0x00,0x00,0xDA,0x30,0x00,0x9D,0xE5,0x2C,0x10,0x9D,0xE5,0x80,0x00,0x86,0xE0, + 0x81,0x10,0x86,0xE0,0xB8,0x09,0xD0,0xE1,0xB0,0x17,0xD1,0xE1,0x00,0x10,0x81,0xE0, + 0xB4,0x01,0x9D,0xE5,0x01,0x00,0x40,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xB0,0xE1, + 0xB0,0x0C,0xC6,0xE1,0x00,0x00,0xA0,0x43,0xB0,0x0C,0xC6,0x41,0xB0,0x01,0x9D,0xE5, + 0x01,0x00,0x40,0xE2,0x9B,0x00,0x01,0xE0,0x10,0x00,0x9D,0xE5,0xCD,0xEB,0xFF,0xEB, + 0xB6,0x10,0xD6,0xE1,0x0C,0x20,0x9D,0xE5,0x40,0x00,0x11,0xE3,0x10,0x00,0x00,0x0A, + 0x82,0x00,0x59,0xE1,0x01,0x20,0xA0,0x83,0x24,0x20,0x8D,0x85,0xFA,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x83,0x20,0x00,0x8D,0x85,0x08,0x00,0x9D,0xE5,0x23,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x83,0x1C,0x00,0x8D,0x85,0x04,0x00,0x9D,0xE5,0x23,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x33,0x18,0x00,0x8D,0x35,0x14,0x00,0x59,0xE3,0x13,0x00,0x00,0x9A, + 0x10,0x00,0x00,0xEA,0x02,0x00,0x59,0xE1,0x08,0x00,0x59,0x83,0x01,0x20,0xA0,0x83, + 0x24,0x20,0x8D,0x85,0x96,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83,0x20,0x00,0x8D,0x85, + 0x08,0x00,0x9D,0xE5,0x14,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83,0x1C,0x00,0x8D,0x85, + 0x04,0x00,0x9D,0xE5,0x14,0x00,0x50,0xE3,0x01,0x00,0xA0,0x33,0x18,0x00,0x8D,0x35, + 0x0A,0x00,0x59,0xE3,0x01,0x00,0x00,0x9A,0x01,0x00,0xA0,0xE3,0x14,0x00,0x8D,0xE5, + 0x24,0x00,0x9D,0xE5,0x20,0x20,0x9D,0xE5,0x10,0x00,0x11,0xE3,0x02,0x30,0x80,0xE1, + 0x1C,0x00,0x9D,0xE5,0x18,0x20,0x9D,0xE5,0x02,0x00,0x00,0xE0,0x00,0x20,0x83,0xE1, + 0x14,0x00,0x9D,0x15,0x00,0x00,0x50,0x13,0x00,0x00,0xA0,0x03,0x01,0x00,0xA0,0x13, + 0x02,0x00,0x90,0xE1,0x28,0x00,0x9D,0x05,0x00,0x00,0x50,0x03,0x09,0x00,0x00,0x0A, + 0xC4,0x00,0x96,0xE5,0x01,0x00,0x80,0xE2,0xC4,0x00,0x86,0xE5,0xC8,0x00,0xD6,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0x12,0xC8,0x00,0xC6,0x15,0x71,0xDF,0x8D,0xE2, + 0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0xC8,0x00,0xD6,0xE5,0x01,0x00,0x80,0xE2, + 0xFF,0x00,0x00,0xE2,0xC8,0x00,0xC6,0xE5,0xB4,0x18,0xDA,0xE1,0x01,0x00,0x50,0xE1, + 0xF5,0xFF,0xFF,0x1A,0x00,0x00,0xA0,0xE3,0xC8,0x00,0xC6,0xE5,0xC4,0x00,0x96,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0xC2,0xC4,0x00,0x86,0xC5,0xEE,0xFF,0xFF,0xEA, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00, + 0xF0,0x06,0x00,0x20,0x04,0x0B,0x00,0x20,0x00,0x02,0x10,0x40,0xC8,0x02,0x00,0x20, + 0x40,0x00,0x00,0x20,0xF0,0xB5,0xCA,0x49,0xC8,0x4F,0xC9,0x88,0xB8,0x7D,0xC9,0x4C, + 0x00,0x25,0x49,0x06,0x8D,0xB0,0x00,0xD4,0xA0,0x7C,0x03,0x90,0xC3,0x48,0x40,0x38, + 0x42,0x79,0x06,0x00,0xC0,0x36,0x00,0x92,0x82,0x79,0x80,0x30,0x01,0x7B,0xC0,0x38, + 0xB3,0x7A,0x00,0x7A,0xFE,0xF7,0xED,0xFB,0x00,0x06,0x71,0x7A,0x00,0x0E,0xFE,0xF7, + 0xDD,0xFB,0x31,0x00,0x20,0x39,0x0A,0x7A,0xC0,0x39,0x00,0x06,0x0C,0x91,0x09,0x79, + 0x00,0x0E,0xFE,0xF7,0xD7,0xFB,0x00,0x06,0xBA,0x7D,0xA1,0x7C,0x00,0x0E,0xFE,0xF7, + 0xD1,0xFB,0x00,0x06,0xB4,0x4E,0x00,0x0E,0x02,0x90,0x30,0x7B,0x00,0x28,0x02,0xD0, + 0xB2,0x48,0x40,0x89,0x0A,0xE0,0xAE,0x49,0x78,0x8A,0xC9,0x88,0x49,0x06,0x00,0xD4, + 0xE0,0x89,0xAF,0x49,0xC9,0x8A,0x40,0x18,0x00,0x04,0x00,0x0C,0x00,0x27,0x04,0x90, + 0x77,0x61,0x30,0x7A,0x00,0x28,0x06,0xD0,0x30,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0, + 0xAD,0xFA,0x01,0xF0,0x9B,0xFA,0x01,0x20,0x30,0x62,0xFC,0xF7,0xF5,0xFB,0xA0,0x48, + 0x05,0x22,0x01,0x00,0xFF,0x31,0x61,0x31,0x0A,0x91,0x9E,0x49,0xD2,0x01,0xE0,0x39, + 0x8B,0x18,0x09,0x93,0x03,0x00,0xC0,0x33,0x80,0x31,0x07,0xAC,0x0A,0xC4,0x02,0x99, + 0xC9,0x1C,0x06,0x91,0x51,0x00,0x44,0x18,0x80,0x18,0x05,0x90,0x10,0xE1,0x30,0x7A, + 0x00,0x28,0x04,0xD0,0x30,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0x87,0xFA,0xFF,0x20, + 0x81,0x30,0xFB,0xF7,0xAD,0xF9,0x03,0x20,0x01,0xF0,0xBE,0xF9,0x00,0xF0,0x68,0xF9, + 0x01,0x20,0x40,0x05,0xFC,0xF7,0x04,0xFE,0xFF,0xF7,0xCA,0xFB,0x00,0x20,0xFC,0xF7, + 0xFF,0xFD,0x87,0x48,0xC0,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06, + 0x01,0xD5,0x05,0x20,0x00,0xE0,0x03,0x20,0x01,0xF0,0x82,0xF8,0xFC,0xF7,0x34,0xFE, + 0x84,0x48,0x04,0x99,0x80,0x8B,0x40,0x18,0x7D,0x49,0x89,0x89,0x88,0x42,0x10,0xD9, + 0x0A,0x98,0x40,0x78,0x00,0x28,0x0C,0xD1,0x79,0x48,0xFF,0x21,0xC0,0x88,0x19,0x31, + 0x08,0x42,0x06,0xD1,0x03,0x98,0x6D,0x1C,0x85,0x42,0x03,0xDD,0xFC,0xF7,0x24,0xFE, + 0x00,0xE0,0x00,0x25,0x00,0xF0,0x4C,0xFE,0x00,0xF0,0xCE,0xFD,0x00,0xF0,0x22,0xFE, + 0x09,0x99,0x08,0x98,0x49,0x88,0x40,0x68,0x88,0x42,0x0C,0xDB,0x0A,0x98,0x40,0x78, + 0x00,0x28,0x04,0xD1,0x6A,0x48,0x46,0x21,0xC0,0x88,0x08,0x42,0x03,0xD0,0x6A,0x49, + 0x01,0x20,0x48,0x70,0x02,0xE0,0x70,0x78,0x00,0x28,0x0D,0xD0,0xFC,0xF7,0x88,0xFB, + 0x64,0x48,0x01,0x21,0xE0,0x38,0xC0,0x7F,0x40,0x08,0x01,0xF0,0x95,0xF8,0x62,0x48, + 0x47,0x70,0x08,0x98,0x47,0x60,0xA9,0xE0,0xFC,0xF7,0xC4,0xFD,0xFD,0xF7,0x3C,0xFF, + 0x00,0x28,0x08,0xD0,0x77,0x61,0x05,0x98,0x80,0x7B,0xC8,0x28,0x10,0xD2,0x05,0x99, + 0x40,0x1C,0x88,0x73,0x0C,0xE0,0x70,0x69,0x40,0x1C,0x70,0x61,0x70,0x69,0x01,0x28, + 0x01,0xD1,0x59,0x48,0x07,0x73,0x70,0x69,0x05,0x28,0x01,0xD9,0xFC,0xF7,0x54,0xFB, + 0x01,0x20,0x40,0x07,0x00,0x68,0x00,0x28,0x07,0xD1,0x60,0x68,0xFF,0x21,0xFF,0x31, + 0x88,0x42,0x03,0xDA,0x40,0x1C,0x60,0x60,0x00,0xE0,0x67,0x60,0x09,0x99,0x20,0x68, + 0x49,0x89,0x88,0x42,0x0A,0xDD,0x61,0x68,0xFF,0x20,0xF5,0x30,0x81,0x42,0x05,0xDD, + 0x01,0x20,0x70,0x70,0x27,0x60,0x67,0x60,0x08,0x99,0x48,0x60,0x47,0x48,0x41,0x68, + 0x09,0x07,0x07,0xD5,0xC1,0x68,0x00,0x29,0x04,0xD0,0xC0,0x68,0x01,0x21,0x49,0x07, + 0xC8,0x63,0x06,0xE0,0x70,0x7B,0x80,0x28,0x01,0xD1,0xFC,0xF7,0x31,0xFC,0x00,0xF0, + 0x11,0xF9,0xFC,0xF7,0x27,0xFE,0x07,0x98,0x00,0x7B,0x00,0x28,0x04,0xD0,0x30,0x7B, + 0x00,0x28,0x01,0xD1,0x00,0xF0,0xC0,0xF8,0x01,0x20,0x40,0x07,0xC0,0x6B,0x0B,0x28, + 0x4C,0xD1,0x07,0x98,0x00,0x7A,0x00,0x28,0x01,0xD0,0xFF,0xF7,0x5B,0xFA,0x00,0xF0, + 0x9B,0xF8,0x03,0x20,0x01,0xF0,0xD2,0xF8,0xF0,0x62,0x03,0x20,0x01,0xF0,0x00,0xF9, + 0xFF,0x20,0x81,0x30,0xFB,0xF7,0xD4,0xF8,0x2D,0x48,0x00,0x78,0x00,0x28,0x2F,0xD1, + 0xFC,0xF7,0xD8,0xFE,0x00,0x28,0x2B,0xD0,0xB0,0x6A,0x00,0x28,0x0B,0x90,0x27,0xD0, + 0xF0,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x26,0x49,0xFA,0xF7,0x8B,0xFD,0x0B,0x99, + 0x08,0x1A,0x32,0x28,0x1C,0xDD,0x01,0xF0,0xA7,0xF9,0x01,0xF0,0xAB,0xF9,0xB0,0x79, + 0x00,0x28,0x0D,0xD0,0x00,0xF0,0x4E,0xF8,0x00,0xF0,0x51,0xF8,0x00,0xF0,0x59,0xF8, + 0x1D,0x4E,0x01,0x20,0x70,0x60,0xFB,0xF7,0xBB,0xF8,0x1C,0x48,0x70,0x60,0x03,0xE0, + 0x1B,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0,0x01,0xF0,0x9B,0xF9,0x18,0x48,0x07,0x70, + 0x0D,0x4E,0x70,0x69,0x06,0x99,0x88,0x42,0x00,0xD2,0xE8,0xE6,0x0C,0x98,0x0C,0x49, + 0x40,0x78,0xA0,0x39,0x48,0x73,0x08,0x48,0x00,0x7A,0x00,0x28,0x01,0xD0,0x01,0xF0, + 0x65,0xF9,0x0D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xE0,0x78,0x00,0x00,0xF8,0x0A,0x00,0x20,0xA0,0x7A,0x00,0x00, + 0xD0,0x0A,0x00,0x20,0xF0,0x06,0x00,0x20,0x90,0x08,0x00,0x20,0x00,0x40,0x00,0x30, + 0xAD,0x0B,0x00,0x20,0x10,0x27,0x00,0x00,0x00,0x30,0x00,0x40,0xE1,0x04,0x00,0x00, + 0xAC,0x0B,0x00,0x20,0x01,0x20,0x80,0x07,0x01,0x6B,0x81,0x22,0xD2,0x01,0x11,0x43, + 0x01,0x63,0x70,0x47,0x00,0x20,0x01,0x21,0x89,0x07,0x48,0x60,0x70,0x47,0x10,0x20, + 0x81,0x06,0x48,0x60,0x70,0x47,0x01,0x22,0x92,0x07,0x91,0x68,0x01,0x43,0x91,0x60, + 0x70,0x47,0x01,0x20,0x80,0x07,0x41,0x68,0x02,0x22,0x11,0x43,0x41,0x60,0x70,0x47, + 0x01,0x20,0x80,0x07,0x01,0x6B,0x03,0x4A,0x89,0x09,0x52,0x7B,0x89,0x01,0x11,0x43, + 0x01,0x63,0x70,0x47,0x00,0x78,0x00,0x00,0x10,0xB5,0xFC,0xF7,0xB3,0xFC,0xFA,0xF7, + 0x35,0xFD,0x03,0x20,0x40,0x03,0xFB,0xF7,0x3B,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x03,0x20,0x10,0xB5,0x40,0x03,0xFB,0xF7,0x3B,0xF8,0xFA,0xF7,0x31,0xFD,0xFC,0xF7, + 0xA9,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xB5,0x00,0xF0,0xDF,0xFB,0x05,0x49, + 0x80,0x22,0xC9,0x88,0x11,0x40,0x81,0x42,0x01,0xD0,0xFA,0xF7,0x59,0xFF,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0xFE,0xB5,0x16,0x48,0x17,0x4E,0x00,0x78, + 0x00,0x25,0x01,0x90,0x14,0x48,0x00,0x78,0x00,0x90,0x1C,0xE0,0x14,0x49,0x68,0x00, + 0x00,0x24,0x47,0x18,0x60,0x37,0x12,0xE0,0x29,0x00,0x20,0x00,0xFD,0xF7,0x2A,0xFC, + 0x0F,0x4B,0x62,0x00,0xD3,0x18,0x98,0x22,0x9A,0x5E,0x10,0x23,0xFB,0x5E,0x40,0x00, + 0x31,0x5E,0xD2,0x18,0x89,0x1A,0x00,0xD5,0x00,0x21,0x64,0x1C,0x31,0x52,0x01,0x98, + 0x84,0x42,0xE9,0xD3,0x6D,0x1C,0x00,0x98,0x85,0x42,0xDF,0xD3,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xF8,0xB5,0x66,0x4F,0x00,0x26,0x78,0x7A,0xC0,0x07,0x17,0xD0, + 0x64,0x4C,0x20,0x89,0x00,0x28,0x0E,0xD0,0x63,0x49,0x88,0x42,0x0B,0xD0,0x1E,0x21, + 0x48,0x43,0x64,0x21,0xFA,0xF7,0x9E,0xFC,0x39,0x8A,0x46,0x18,0x4B,0x20,0xC0,0x00, + 0x86,0x42,0x00,0xD9,0x06,0x00,0x5D,0x48,0x40,0x7D,0x00,0x28,0x00,0xD0,0xA6,0x89, + 0x01,0x24,0x64,0x07,0x25,0x68,0x00,0x2D,0x7E,0xD0,0x59,0x48,0x00,0x21,0x01,0x70, + 0x02,0x20,0x00,0xF0,0xE5,0xFF,0x57,0x48,0x0A,0x21,0x00,0x6B,0xFA,0xF7,0x82,0xFC, + 0x01,0x00,0x02,0x20,0x00,0xF0,0xC8,0xFF,0x01,0x2D,0x0B,0xD0,0x02,0x2D,0x08,0xD1, + 0x60,0x68,0x00,0x02,0x00,0x0E,0x01,0x28,0x03,0xD1,0x60,0x68,0x00,0x06,0x00,0xD1, + 0x00,0xE0,0x6D,0x1C,0x78,0x7A,0x00,0x28,0x08,0xD0,0x60,0x68,0x4A,0x49,0x81,0x43, + 0x04,0xD0,0x61,0x68,0x49,0x48,0x88,0x43,0x00,0xD0,0x6D,0x1C,0xF8,0x79,0x00,0x28, + 0x04,0xD1,0x47,0x48,0x41,0x69,0x02,0x15,0x11,0x43,0x41,0x61,0x45,0x48,0x01,0x68, + 0x45,0x48,0xC1,0x61,0x02,0x24,0x20,0x00,0x00,0xF0,0xA6,0xFF,0x43,0x48,0xC1,0x68, + 0x49,0x08,0x49,0x00,0xC1,0x60,0x03,0x04,0x35,0x48,0x36,0x4A,0x41,0x7A,0x3E,0x48, + 0x97,0x89,0x21,0xE0,0x42,0x69,0x52,0x06,0x0E,0xD4,0x00,0x29,0x01,0xD0,0xAC,0x42, + 0x04,0xD2,0xA2,0x00,0xD2,0x18,0x12,0x68,0xC2,0x61,0x04,0xE0,0xCA,0x07,0x01,0xD0, + 0xC6,0x61,0x00,0xE0,0xC7,0x61,0x64,0x1C,0x2D,0x4A,0x12,0x78,0x00,0x2A,0x0B,0xD0, + 0xFD,0xF7,0xB4,0xFC,0x26,0x48,0x01,0x7A,0x00,0x29,0x07,0xD0,0x00,0x6B,0x00,0x04, + 0x00,0x0C,0x01,0xF0,0x3B,0xF8,0x01,0xE0,0xAC,0x42,0xDB,0xD9,0x02,0x20,0x00,0xF0, + 0x7F,0xFF,0x23,0x4D,0x28,0x78,0x00,0x28,0x27,0xD1,0xFD,0xF7,0xC5,0xFB,0x00,0x28, + 0x23,0xD0,0x20,0x48,0x0A,0x21,0x00,0x6B,0xFA,0xF7,0x14,0xFC,0x01,0x00,0x02,0x20, + 0x00,0xF0,0x5A,0xFF,0x02,0x20,0x00,0xE0,0x26,0xE0,0x00,0xF0,0x5D,0xFF,0x14,0x4C, + 0x0C,0xE0,0x28,0x78,0x00,0x28,0x09,0xD0,0xFD,0xF7,0x88,0xFC,0x20,0x7A,0x00,0x28, + 0x04,0xD0,0x20,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0x10,0xF8,0xFD,0xF7,0xA4,0xFB, + 0x00,0x28,0xEE,0xD1,0x02,0x20,0x00,0xF0,0x53,0xFF,0x14,0x49,0xC8,0x68,0x01,0x22, + 0x10,0x43,0xC8,0x60,0x00,0xF0,0x28,0xF8,0x05,0x48,0xC0,0x79,0x00,0x28,0x03,0xD1, + 0x01,0x20,0x80,0x02,0xFA,0xF7,0x1C,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xF8,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0xFF,0x0F,0x00,0x00,0x30,0x0A,0x00,0x20, + 0xAD,0x0B,0x00,0x20,0x00,0x78,0x00,0x00,0x00,0x00,0x4E,0x1D,0x00,0x80,0x4E,0x1D, + 0x40,0x00,0x00,0x40,0x04,0x00,0x00,0x20,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x05,0x48,0x01,0x21,0x00,0xB5,0xC9,0x02, + 0x01,0x62,0x00,0x21,0x01,0x62,0xFD,0xF7,0x83,0xFE,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x40,0x18,0x70,0x47,0x40,0x18,0x80,0x18,0x70,0x47,0x10,0xB4, + 0x40,0x18,0x01,0x9C,0x80,0x18,0xC0,0x18,0x00,0x19,0x10,0xBC,0x70,0x47,0x00,0x00, + 0xF8,0xB5,0x00,0x21,0x01,0x23,0x5B,0x07,0x18,0x68,0x13,0x4A,0x90,0x72,0x90,0x7A, + 0x01,0x28,0x01,0xD1,0x01,0x21,0x0D,0xE0,0x01,0x28,0x00,0xD9,0x02,0x21,0x00,0x28, + 0x08,0xD1,0x0D,0x48,0x20,0x22,0x00,0x21,0x0C,0x30,0xFF,0xF7,0x35,0xF8,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x20,0x13,0x25,0x08,0x4C,0xAD,0x01,0x08,0xE0,0x46,0x18, + 0xB6,0x00,0xF6,0x18,0x36,0x68,0x87,0x00,0x3F,0x19,0x7F,0x19,0x40,0x1C,0xFE,0x60, + 0x96,0x7A,0x86,0x42,0xF3,0xD8,0xEA,0xE7,0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20, + 0x70,0xB5,0x1E,0x49,0x1C,0x4C,0x0D,0x00,0x20,0x78,0xA1,0x22,0xFF,0x35,0x92,0x00, + 0xBF,0x35,0x8E,0x18,0x00,0x28,0x0E,0xD0,0x5A,0x22,0x21,0x1D,0x28,0x00,0xFE,0xF7, + 0xEF,0xFF,0x17,0x49,0x09,0x22,0x30,0x00,0xFE,0xF7,0xEA,0xFF,0x20,0x78,0x60,0x70, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x09,0x22,0x00,0x21,0x30,0x00,0xFE,0xF7,0xFC,0xFF, + 0x5A,0x22,0x00,0x21,0x28,0x00,0xFE,0xF7,0xF7,0xFF,0x0D,0x48,0x5A,0x22,0x00,0x21, + 0x63,0x38,0xFE,0xF7,0xF1,0xFF,0x0A,0x48,0x09,0x22,0x00,0x21,0x09,0x38,0xFE,0xF7, + 0xEB,0xFF,0x00,0x20,0x05,0x49,0x60,0x70,0xA0,0x70,0xCA,0x88,0x23,0x23,0x9A,0x43, + 0xCA,0x80,0x04,0x49,0x88,0x75,0xDB,0xE7,0x50,0x07,0x00,0x20,0xF0,0x05,0x00,0x20, + 0x6B,0x08,0x00,0x20,0x30,0x0A,0x00,0x20,0xF3,0xB5,0x93,0x48,0x91,0xB0,0x40,0x7E, + 0x02,0x90,0x92,0x48,0x00,0x78,0x00,0x28,0x91,0x48,0x18,0xD0,0x0B,0x21,0x89,0x01, + 0x40,0x18,0x01,0x8A,0x8F,0x4A,0x1A,0x26,0x07,0x91,0x41,0x8A,0x1C,0x27,0x06,0x91, + 0x81,0x8A,0x05,0x91,0x1E,0x21,0x41,0x5E,0x04,0x91,0x00,0x21,0x51,0x5E,0x03,0x91, + 0x16,0x21,0x18,0x22,0x86,0x5F,0xC7,0x5F,0x41,0x5E,0x82,0x5E,0x16,0xE0,0x60,0x30, + 0xC1,0x8A,0x04,0x22,0x00,0x26,0x07,0x91,0x01,0x8B,0x02,0x27,0x06,0x91,0x41,0x8B, + 0x05,0x91,0x7D,0x49,0x20,0x39,0x8A,0x5E,0x04,0x92,0x06,0x22,0x8A,0x5E,0x03,0x92, + 0x8E,0x5F,0xCF,0x5F,0x1C,0x21,0x1E,0x22,0x41,0x5E,0x82,0x5E,0x11,0x98,0x78,0x4C, + 0x00,0x68,0x41,0x18,0x11,0x98,0x01,0x60,0x12,0x98,0x00,0x68,0x81,0x18,0x12,0x98, + 0x01,0x60,0x60,0x8C,0x00,0x21,0x40,0x1E,0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0, + 0x20,0x8C,0x0A,0x00,0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0, + 0x17,0xFF,0x20,0x8C,0x64,0x21,0x0A,0x90,0x60,0x8C,0x09,0x90,0x0A,0x98,0x44,0x08, + 0x09,0x98,0x45,0x08,0x06,0x98,0x64,0x38,0x00,0x28,0x01,0xDC,0x06,0x98,0x08,0x1A, + 0x0F,0x90,0x05,0x98,0x64,0x38,0x00,0x28,0x01,0xDC,0x05,0x98,0x08,0x1A,0x0E,0x90, + 0x61,0x48,0x01,0x78,0x61,0x48,0x00,0x78,0x08,0x90,0x61,0x48,0x80,0x7E,0xC2,0x07, + 0x0A,0xD0,0x80,0x07,0x03,0xD5,0x49,0x1E,0x09,0x06,0x09,0x0E,0x04,0xE0,0x08,0x98, + 0x40,0x1E,0x00,0x06,0x00,0x0E,0x08,0x90,0x20,0x00,0xFA,0xF7,0xD9,0xF9,0x0A,0x99, + 0x08,0x1A,0x40,0x1E,0x0C,0x90,0x08,0x99,0x28,0x00,0xFA,0xF7,0xD1,0xF9,0x09,0x99, + 0x08,0x1A,0x40,0x1E,0x31,0x1E,0x0B,0x90,0x00,0xDD,0xA1,0x1B,0x00,0x2F,0x0D,0x97, + 0x01,0xDD,0xE8,0x1B,0x0D,0x90,0x11,0x98,0x00,0x68,0xA0,0x42,0x10,0x90,0x01,0xDB, + 0x00,0x1B,0x01,0xE0,0x00,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x22, + 0x06,0x00,0x56,0x43,0x37,0x00,0x88,0x42,0x0D,0xDD,0x42,0x1A,0x0F,0x98,0x50,0x43, + 0x86,0x19,0x10,0x00,0x50,0x43,0x0F,0x9A,0x50,0x43,0x0C,0x9A,0x12,0x1B,0x51,0x1A, + 0xFA,0xF7,0xA6,0xF9,0xC7,0x19,0x04,0x98,0x00,0x28,0x01,0xD1,0x30,0x00,0x05,0xE0, + 0x01,0x28,0x01,0xD1,0x38,0x00,0x01,0xE0,0x70,0x00,0xC0,0x1B,0x64,0x21,0xFA,0xF7, + 0x97,0xF9,0x07,0x99,0xC9,0x07,0x0A,0xD0,0x10,0x99,0xA1,0x42,0x03,0xDB,0x21,0x18, + 0x11,0x98,0x01,0x60,0x03,0xE0,0x11,0x99,0x20,0x1A,0x40,0x1E,0x08,0x60,0x12,0x98, + 0x07,0x68,0xAF,0x42,0x01,0xDB,0x78,0x1B,0x01,0xE0,0x78,0x1B,0x40,0x1C,0x00,0x28, + 0x00,0xDC,0x40,0x42,0x64,0x21,0x04,0x00,0x4C,0x43,0x0D,0x99,0x26,0x00,0x88,0x42, + 0x0E,0xDD,0x41,0x1A,0x0E,0x98,0x0D,0x9A,0x48,0x43,0x04,0x19,0x08,0x00,0x48,0x43, + 0x0E,0x99,0x48,0x43,0x0B,0x99,0x49,0x1B,0x89,0x1A,0xFA,0xF7,0x69,0xF9,0x86,0x19, + 0x03,0x98,0x00,0x28,0x01,0xD1,0x20,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x30,0x00, + 0x01,0xE0,0x60,0x00,0x80,0x1B,0x64,0x21,0xFA,0xF7,0x5A,0xF9,0x07,0x99,0x89,0x07, + 0x09,0xD5,0xAF,0x42,0x03,0xDB,0x29,0x18,0x12,0x98,0x01,0x60,0x03,0xE0,0x12,0x99, + 0x28,0x1A,0x40,0x1E,0x08,0x60,0x0E,0x48,0x02,0x99,0x42,0x8C,0x6B,0x46,0x51,0x1A, + 0x49,0x1E,0x0A,0x04,0x02,0x99,0x12,0x0C,0x06,0xC3,0x01,0x8C,0x02,0x98,0x02,0x9A, + 0x08,0x1A,0x40,0x1E,0x03,0x04,0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0,0x48,0xFE, + 0x13,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x78,0x00,0x00,0x04,0x0B,0x00,0x20, + 0x00,0x78,0x00,0x00,0xE0,0x7A,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x30,0x0A,0x00,0x20,0x70,0xB4,0x0B,0x4C,0x03,0x00,0x00,0x20,0x82,0x00,0xA5,0x5A, + 0x12,0x19,0x56,0x88,0xEA,0x1A,0x15,0x00,0x55,0x43,0x72,0x1A,0x16,0x00,0x56,0x43, + 0xAA,0x19,0xC4,0x2A,0x04,0xDB,0x40,0x1C,0x2A,0x28,0xEF,0xD3,0x00,0x20,0xC0,0x43, + 0x70,0xBC,0x70,0x47,0xB8,0x70,0x00,0x00,0xFE,0xB5,0x66,0x4D,0x64,0x48,0x00,0x26, + 0x29,0x00,0xFF,0x31,0x00,0x96,0x42,0x78,0x61,0x31,0x08,0x78,0x00,0x2A,0x28,0xD1, + 0x00,0x28,0x26,0xD0,0x01,0x24,0x0A,0x20,0x60,0x43,0x47,0x19,0x38,0x00,0xFF,0x30, + 0x6B,0x30,0xFD,0xF7,0xCF,0xFB,0x00,0x28,0x17,0xD0,0x5B,0x48,0x81,0x7B,0x00,0x98, + 0x40,0x1C,0x81,0x42,0x14,0xD3,0xA9,0x19,0x13,0x22,0x00,0x90,0xFF,0x20,0x92,0x01, + 0x65,0x30,0x89,0x18,0xC0,0x5D,0x3A,0x00,0xFF,0x32,0x48,0x70,0x76,0x1C,0x65,0x32, + 0x03,0x20,0x01,0x23,0x69,0x46,0x00,0xF0,0x29,0xFA,0x64,0x1C,0x09,0x2C,0xDA,0xDB, + 0x8F,0xE0,0x49,0x78,0x00,0x29,0x01,0xD1,0x00,0x28,0xF9,0xD0,0x15,0x20,0x40,0x01, + 0x00,0x24,0x2E,0x18,0x13,0x27,0xBF,0x01,0x28,0x19,0xC0,0x19,0x40,0x78,0x00,0x28, + 0x3F,0xD0,0x13,0x21,0x28,0x18,0x49,0x01,0x41,0x18,0xC9,0x7E,0x00,0x29,0x02,0xD0, + 0x32,0x7B,0x00,0x2A,0x14,0xD0,0x05,0x21,0xC9,0x01,0x40,0x18,0x00,0x99,0x00,0x79, + 0x49,0x1C,0x00,0x91,0x0A,0x21,0x48,0x43,0x42,0x19,0xFF,0x32,0xBF,0x32,0x02,0x20, + 0x03,0x23,0x69,0x46,0x00,0xF0,0xFA,0xF9,0x20,0x00,0x14,0x2C,0x1E,0xD0,0x1A,0xE0, + 0x0A,0x20,0x41,0x43,0x48,0x19,0x02,0x90,0xFF,0x30,0x6B,0x30,0xFD,0xF7,0x7A,0xFB, + 0x00,0x28,0x13,0xD0,0x00,0x98,0x02,0x9A,0x40,0x1C,0xFF,0x32,0x00,0x90,0x65,0x32, + 0x03,0x20,0x02,0x23,0x69,0x46,0x00,0xF0,0xE1,0xF9,0x07,0xE0,0x29,0x18,0xC9,0x19, + 0x8A,0x78,0x40,0x1C,0x4A,0x70,0x08,0x28,0xF8,0xDB,0x64,0x1E,0x64,0x1C,0x08,0x2C, + 0xBA,0xDB,0x01,0x24,0x23,0x49,0x13,0x22,0x08,0x19,0x52,0x01,0x80,0x18,0xC0,0x7E, + 0x00,0x22,0x01,0x92,0x00,0x28,0x31,0xD0,0x32,0x7B,0x00,0x2A,0x2E,0xD1,0x0A,0x22, + 0x50,0x43,0x45,0x18,0x28,0x00,0xFF,0x30,0x6B,0x30,0xFD,0xF7,0x4B,0xFB,0x00,0x28, + 0x24,0xD0,0x19,0x48,0x00,0x9B,0x80,0x7B,0x5B,0x1C,0x98,0x42,0x21,0xD3,0x15,0x4A, + 0x00,0x20,0x11,0x18,0xC9,0x19,0x49,0x78,0xA1,0x42,0x0B,0xD0,0x00,0x29,0x06,0xD1, + 0xFF,0x21,0x65,0x31,0x49,0x5D,0x10,0x18,0xC0,0x19,0x41,0x70,0x05,0xE0,0x40,0x1C, + 0x08,0x28,0xEE,0xDB,0x01,0x98,0x00,0x28,0x08,0xD0,0x2A,0x00,0xFF,0x32,0x00,0x93, + 0x65,0x32,0x03,0x20,0x01,0x23,0x69,0x46,0x00,0xF0,0x98,0xF9,0x64,0x1C,0x09,0x2C, + 0xC0,0xDB,0x00,0x98,0x00,0xF0,0x88,0xFC,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00,0xFE,0xB5,0x51,0x48, + 0x36,0x25,0x45,0x5F,0x51,0x48,0x50,0x4F,0xC4,0x78,0x00,0x26,0x02,0x94,0x00,0x79, + 0x84,0x46,0x4C,0x48,0x80,0x30,0x82,0x7D,0x86,0x46,0x4D,0x48,0x81,0x7E,0xC8,0x07, + 0x0A,0xD0,0x88,0x07,0x03,0xD5,0x64,0x1E,0x24,0x06,0x24,0x0E,0x04,0xE0,0x60,0x46, + 0x40,0x1E,0x00,0x06,0x00,0x0E,0x84,0x46,0x00,0x21,0x27,0xE0,0x00,0x20,0x22,0xE0, + 0x91,0x42,0x05,0xD2,0x90,0x42,0x1D,0xD3,0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x19,0xD3, + 0x63,0x46,0x9B,0x1A,0x5B,0x1E,0x8B,0x42,0x01,0xD2,0x90,0x42,0x12,0xD3,0x8B,0x42, + 0x03,0xD2,0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x0C,0xD3,0x02,0x9B,0x4B,0x43,0x1B,0x18, + 0x9B,0x00,0xFB,0x58,0x1B,0x01,0x1B,0x0D,0xB3,0x42,0x00,0xDD,0x1E,0x00,0xAB,0x42, + 0x00,0xDA,0x1D,0x00,0x40,0x1C,0xA0,0x42,0xDA,0xD3,0x49,0x1C,0x61,0x45,0xD5,0xD3, + 0x1E,0x24,0x70,0x46,0x04,0x5F,0x2B,0x4B,0x2E,0x48,0xA0,0x33,0xC0,0x88,0x06,0x22, + 0x9A,0x5E,0x40,0x06,0x07,0xD5,0x70,0x46,0x80,0x8A,0x01,0x19,0x0C,0x04,0x10,0x1A, + 0x24,0x14,0x02,0x04,0x12,0x14,0x26,0x48,0x80,0x30,0xC1,0x6A,0xA6,0x42,0x05,0xDD, + 0x74,0x46,0x64,0x8B,0xA1,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD, + 0x49,0x1E,0xC1,0x62,0x1E,0x49,0x80,0x31,0x09,0x6B,0x95,0x42,0x04,0xDA,0x5A,0x88, + 0x91,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E,0x01,0x63, + 0x74,0x46,0xA4,0x8B,0xC5,0x6A,0x01,0x22,0x11,0x00,0xA5,0x42,0x00,0xDC,0x00,0x21, + 0x9B,0x88,0x00,0x6B,0x98,0x42,0x00,0xDC,0x00,0x22,0x00,0x20,0x6B,0x46,0x18,0x70, + 0x59,0x70,0x00,0x29,0x9A,0x70,0x02,0xD0,0x00,0x2A,0x00,0xD0,0x01,0x20,0x6B,0x46, + 0x11,0x43,0xD8,0x70,0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x6B,0x46,0x18,0x71, + 0x70,0x46,0x00,0x7B,0x69,0x46,0x08,0x5C,0x00,0x28,0x00,0xD0,0x80,0x20,0xFE,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0x00,0x02,0x10,0x40,0xF8,0x0A,0x00,0x20, + 0x30,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0xF8,0xB5,0x22,0x48,0x22,0x4C,0xC0,0x88, + 0x01,0x23,0x22,0x4D,0x41,0x06,0x09,0x20,0x80,0x01,0x21,0x4F,0x21,0x4E,0x5B,0x05, + 0x20,0x18,0x00,0x29,0x0E,0xDA,0x81,0x69,0x69,0x61,0xC1,0x69,0xA9,0x61,0x41,0x6A, + 0x99,0x43,0xE9,0x61,0x81,0x6A,0x29,0x62,0x01,0x6A,0xE9,0x60,0x80,0x6B,0x28,0x61, + 0xE0,0x6A,0x0E,0xE0,0x18,0x49,0x4A,0x69,0x6A,0x61,0x8A,0x69,0xAA,0x61,0x0A,0x6A, + 0x9A,0x43,0xEA,0x61,0x4A,0x6A,0x2A,0x62,0xC9,0x69,0xE9,0x60,0x40,0x6B,0x28,0x61, + 0xA0,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x39,0x00,0xFA,0xF7,0x33,0xF8,0xB0,0x62, + 0x30,0x7B,0x00,0x28,0x03,0xD0,0x0D,0x48,0xE8,0x60,0x0D,0x48,0x28,0x61,0x60,0x6A, + 0xFF,0x21,0x41,0x31,0x48,0x43,0x39,0x00,0xFA,0xF7,0x24,0xF8,0x70,0x62,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00,0xC0,0x90,0x00,0x40, + 0x10,0x27,0x00,0x00,0xF8,0x0A,0x00,0x20,0x80,0x79,0x00,0x00,0x81,0x11,0x01,0x00, + 0x10,0x00,0x10,0x00,0x0E,0x48,0x0F,0x4A,0x43,0x78,0x0F,0x49,0xD0,0x1D,0xC9,0x88, + 0xFF,0x32,0xF9,0x30,0xC1,0x32,0x02,0x2B,0x04,0xD9,0x12,0x6A,0x49,0x06,0x0C,0xD4, + 0xC2,0x69,0x0A,0xE0,0x02,0x2B,0x04,0xD1,0xD2,0x69,0x49,0x06,0x05,0xD4,0x82,0x69, + 0x03,0xE0,0x92,0x69,0x49,0x06,0x00,0xD4,0x42,0x69,0x04,0x48,0x42,0x62,0x70,0x47, + 0x50,0x07,0x00,0x20,0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20,0xC0,0x90,0x00,0x40, + 0xF0,0xB4,0x0B,0x48,0x0D,0x4B,0xC0,0x88,0x0A,0x49,0x0C,0x4F,0x42,0x06,0x0A,0x48, + 0x01,0x24,0xE4,0x03,0x32,0x25,0x5E,0x00,0x32,0x3F,0x01,0x61,0x43,0x61,0x84,0x61, + 0xC5,0x61,0x04,0x62,0x46,0x62,0x84,0x62,0xC7,0x62,0xF0,0xBC,0x70,0x47,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x00,0x80,0x00,0x03,0x40,0xA1,0x00,0x40,0x64,0x40,0x00,0x00, + 0x70,0xB5,0x01,0x25,0x6D,0x03,0x28,0x00,0xFA,0xF7,0x02,0xFB,0x16,0x48,0x04,0x68, + 0x28,0x00,0xFA,0xF7,0xF5,0xFA,0x15,0x4D,0xE2,0x06,0xD2,0x0E,0xE0,0x04,0x14,0x49, + 0xC0,0x0E,0x2A,0x71,0xE8,0x70,0x0B,0x7D,0x12,0x48,0x83,0x76,0x4B,0x7D,0xC3,0x76, + 0x83,0x7E,0x11,0x48,0xDC,0x07,0x0A,0xD0,0x9B,0x07,0x04,0xD5,0xEA,0x78,0x52,0x1E, + 0x02,0x72,0x00,0x22,0x02,0xE0,0x52,0x1E,0x02,0x72,0x01,0x22,0x6A,0x71,0x8A,0x7D, + 0x42,0x72,0xCA,0x7D,0x82,0x72,0x0A,0x7E,0xC2,0x72,0x4A,0x7E,0x02,0x73,0x89,0x7E, + 0x41,0x73,0x70,0xBC,0x08,0xBC,0x18,0x47,0x40,0x90,0x00,0x40,0xF8,0x0A,0x00,0x20, + 0x00,0x78,0x00,0x00,0x30,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20,0xF8,0xB5,0x05,0x00, + 0x0E,0x00,0x14,0x00,0x19,0x00,0x10,0x00,0xFA,0xF7,0xBE,0xFF,0x00,0x28,0x05,0xD0, + 0x30,0x68,0x40,0x1E,0x30,0x60,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x2D,0x48,0x80,0x7E, + 0xC0,0x07,0x26,0xD0,0xE0,0x79,0x05,0x28,0x21,0xD0,0x09,0x28,0x21,0xD1,0x2A,0x49, + 0x6D,0x08,0x6D,0x00,0x23,0x78,0x01,0x20,0x8C,0x46,0x13,0xE0,0x0A,0x22,0x01,0x00, + 0x51,0x43,0x26,0x4A,0x89,0x18,0x0A,0x00,0xFF,0x32,0xA1,0x32,0x97,0x7F,0xBB,0x42, + 0x07,0xD1,0xFF,0x31,0xC1,0x31,0x0F,0x88,0x67,0x80,0xD2,0x7F,0x62,0x70,0x49,0x88, + 0xA1,0x80,0x40,0x1C,0x61,0x46,0x49,0x78,0x81,0x42,0xE7,0xDA,0x01,0xE0,0x01,0x20, + 0x05,0x43,0x0F,0x20,0xA9,0x07,0x80,0x06,0x81,0x43,0x20,0x78,0x3F,0x22,0x92,0x02, + 0x00,0x07,0x80,0x08,0x01,0x43,0x16,0x48,0x01,0x40,0x60,0x88,0x80,0x05,0x80,0x09, + 0x01,0x43,0x60,0x78,0x91,0x43,0x80,0x06,0x00,0x0C,0x01,0x43,0x08,0x04,0x80,0x0E, + 0x0A,0x28,0x09,0xD2,0x40,0x1C,0x0A,0x23,0x58,0x43,0x3F,0x28,0x00,0xDD,0x3F,0x20, + 0x80,0x06,0x91,0x43,0x00,0x0C,0x01,0x43,0x88,0x0A,0xA1,0x88,0x80,0x02,0x01,0x22, + 0x89,0x05,0x89,0x0D,0x08,0x43,0x31,0x68,0x52,0x07,0x89,0x00,0x89,0x18,0x48,0x60, + 0xA1,0xE7,0x00,0x00,0x30,0x0A,0x00,0x20,0x50,0x07,0x00,0x20,0xF0,0x05,0x00,0x20, + 0xFF,0xFF,0x00,0xFC,0x0E,0x49,0x10,0xB4,0x48,0x7B,0x00,0x28,0x10,0xD0,0x00,0x09, + 0x00,0x01,0x00,0x23,0x01,0x22,0x40,0x28,0x0C,0xD0,0x80,0x28,0x08,0xD1,0x4A,0x72, + 0x8A,0x72,0x08,0x48,0xCA,0x72,0xCA,0x71,0x00,0x78,0x00,0x28,0x06,0xD1,0x0B,0x73, + 0x10,0xBC,0x70,0x47,0x8B,0x71,0xCA,0x71,0x0B,0x72,0xF9,0xE7,0x0A,0x73,0xF7,0xE7, + 0xF8,0x0A,0x00,0x20,0xA0,0x7A,0x00,0x00,0xF8,0xB5,0x06,0x9F,0x07,0x9D,0x0C,0x00, + 0x1E,0x00,0x88,0x42,0x09,0xD3,0x21,0x00,0x10,0x00,0xF9,0xF7,0x11,0xFE,0x38,0x80, + 0x21,0x00,0x30,0x00,0xF9,0xF7,0x0C,0xFE,0x28,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0xF8,0xB5,0x08,0xAD,0x60,0xCD,0x04,0x00,0x06,0x98,0x91,0x42,0x04,0xDA,0x65,0x80, + 0xA6,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x99,0x42,0x02,0xDB,0x60,0x80,0x07,0x98, + 0x0F,0xE0,0x8F,0x1A,0x40,0x1B,0x78,0x43,0x99,0x1A,0x00,0x91,0xF9,0xF7,0xF0,0xFD, + 0x40,0x19,0x60,0x80,0x07,0x98,0x00,0x99,0x80,0x1B,0x78,0x43,0xF9,0xF7,0xE8,0xFD, + 0x80,0x19,0xA0,0x80,0xE5,0xE7,0x00,0x00,0xF0,0xB4,0x8C,0x79,0x14,0x4B,0x00,0x26, + 0x22,0x07,0x92,0x08,0x1A,0x40,0xCB,0x79,0x92,0x0A,0x92,0x02,0x5B,0x07,0x09,0xD5, + 0x10,0x4D,0xAB,0x89,0x00,0x2B,0x05,0xD0,0x9F,0x05,0xBF,0x0D,0x3A,0x43,0x64,0x00, + 0x64,0x19,0xE3,0x81,0x3F,0x23,0x9B,0x02,0x9A,0x43,0xCB,0x79,0x80,0x00,0x9B,0x06, + 0x1B,0x0C,0x1A,0x43,0x01,0x23,0x5B,0x07,0xC0,0x18,0x42,0x60,0xC8,0x79,0xC0,0x06, + 0x80,0x0F,0x03,0xD0,0x04,0x48,0x01,0x21,0xC1,0x75,0x06,0x76,0xF0,0xBC,0x70,0x47, + 0xFF,0xFF,0x00,0xFC,0xF0,0x05,0x00,0x20,0x30,0x0A,0x00,0x20,0x30,0xB4,0x0E,0x4D, + 0x0C,0x4C,0x2D,0x78,0x68,0x43,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x00,0x0A, + 0x09,0x0E,0x82,0x18,0xC9,0x18,0x00,0x20,0x4B,0x1E,0xC0,0x43,0xFF,0x2B,0x06,0xD2, + 0x53,0x1E,0xFF,0x2B,0x03,0xD2,0x10,0x02,0x08,0x43,0x60,0x53,0x00,0x20,0x30,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0x10,0xB4,0x05,0x4C, + 0x03,0x4B,0x24,0x78,0x60,0x43,0x40,0x18,0x40,0x00,0x1A,0x52,0x10,0xBC,0x70,0x47, + 0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0x30,0xB4,0x0E,0x4B,0x0C,0x4C,0x1B,0x78, + 0x58,0x43,0x40,0x18,0x43,0x00,0xE0,0x5A,0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A, + 0x82,0x18,0x00,0x20,0x4D,0x1E,0xC0,0x43,0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D, + 0x03,0xD2,0x10,0x02,0x08,0x43,0xE0,0x52,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0xF0,0xB4,0x15,0x4A,0x15,0x4B,0x52,0x7D, + 0x13,0x4F,0x00,0x21,0x16,0x02,0x16,0x43,0x1A,0x78,0x10,0x4D,0x42,0x43,0x20,0x3F, + 0x12,0xE0,0xBB,0x7D,0x8B,0x42,0x0D,0xD0,0xFB,0x7D,0x8B,0x42,0x0A,0xD0,0x3B,0x7E, + 0x8B,0x42,0x07,0xD0,0x7B,0x7E,0x8B,0x42,0x04,0xD0,0xBB,0x7E,0x8B,0x42,0x01,0xD0, + 0x53,0x00,0xEE,0x52,0x52,0x1C,0x49,0x1C,0x06,0x4B,0x04,0x00,0x1B,0x78,0x5C,0x43, + 0xE3,0x18,0x93,0x42,0xE5,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20,0xF0,0xB4,0x14,0x4A,0x13,0x4B,0x52,0x7D, + 0x00,0x21,0x11,0x4C,0x15,0x02,0x15,0x43,0x11,0x4E,0x20,0x3B,0x13,0xE0,0x9A,0x7D, + 0x8A,0x42,0x0D,0xD0,0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E,0x8A,0x42,0x07,0xD0, + 0x5A,0x7E,0x8A,0x42,0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00,0xA5,0x52, + 0x32,0x78,0x80,0x18,0x49,0x1C,0x07,0x4A,0x37,0x78,0x12,0x78,0x7A,0x43,0x82,0x42, + 0xE5,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x20,0x78,0x00,0x00, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0x02,0x04,0x04,0x49,0x02,0x43,0x00,0x20, + 0x40,0x1C,0x04,0xC1,0x80,0x28,0xFB,0xD3,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0xF8,0xB5,0x03,0x00,0x1E,0x49,0x05,0x20,0xC0,0x01,0x0A,0x18,0x0B,0x20,0x80,0x01, + 0x0D,0x18,0xC0,0x31,0x08,0x6A,0x19,0x4C,0x00,0x90,0x4F,0x6A,0x0E,0x69,0x28,0x68, + 0x00,0xF0,0x0E,0xFA,0x06,0x04,0x0A,0x12,0x15,0x1F,0x26,0x1C,0xC8,0x68,0x20,0x62, + 0x50,0x6B,0x60,0x62,0x02,0x20,0x04,0xE0,0xC8,0x69,0x20,0x62,0x68,0x68,0x60,0x62, + 0x04,0x20,0xE0,0x62,0x00,0x98,0x11,0xE0,0x26,0x62,0x90,0x6B,0x02,0xE0,0x48,0x69, + 0x20,0x62,0xD0,0x6B,0x60,0x62,0x04,0x20,0xE0,0x62,0x67,0x63,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x26,0x62,0x60,0x62,0x04,0x20,0xE0,0x62,0x88,0x6A,0x60,0x63,0xF5,0xE7, + 0x89,0x69,0x21,0x62,0x60,0x62,0x05,0x20,0xE0,0x62,0xEF,0xE7,0x80,0x90,0x00,0x40, + 0x00,0x78,0x00,0x00,0x07,0x4A,0x10,0xB5,0xD1,0x88,0x40,0x23,0x00,0x28,0x01,0xD0, + 0x19,0x43,0x00,0xE0,0x99,0x43,0xD1,0x80,0xFF,0xF7,0x1E,0xFD,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0xFE,0xB5,0x41,0x4C,0x05,0x00,0x27,0x6A, + 0x0E,0x00,0x60,0x6A,0x02,0x90,0x60,0x6B,0x01,0x90,0xE0,0x6A,0x00,0x90,0x00,0x20, + 0xFF,0xF7,0x9E,0xFF,0x3B,0x48,0x20,0x62,0x22,0x20,0x60,0x62,0x07,0x20,0x40,0x02, + 0x60,0x63,0x02,0x20,0xE0,0x62,0x00,0x20,0xFB,0xF7,0x02,0xFD,0x36,0x48,0x00,0x7A, + 0x00,0x28,0x01,0xD0,0xFE,0xF7,0x0E,0xFA,0xFB,0xF7,0x46,0xFD,0x2C,0x00,0x46,0xE0, + 0x68,0x1E,0x84,0x42,0x01,0xD1,0xFB,0xF7,0x69,0xFD,0xFB,0xF7,0x0B,0xFD,0xFB,0xF7, + 0xB9,0xFD,0x00,0x2E,0x2E,0xD1,0xA8,0x00,0x05,0x21,0xF9,0xF7,0x4B,0xFD,0xA0,0x42, + 0x03,0xD8,0x01,0x22,0x11,0x00,0x04,0x20,0x21,0xE0,0x68,0x00,0x28,0x18,0x05,0x21, + 0xF9,0xF7,0x40,0xFD,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x03,0x20,0x16,0xE0, + 0x68,0x00,0x05,0x21,0xF9,0xF7,0x36,0xFD,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00, + 0x02,0x20,0x0C,0xE0,0x05,0x21,0x28,0x00,0xF9,0xF7,0x2C,0xFD,0xA0,0x42,0x03,0xD8, + 0x01,0x22,0x11,0x00,0x10,0x00,0x02,0xE0,0x01,0x22,0x11,0x00,0x00,0x20,0xFB,0xF7, + 0xBD,0xFA,0x0C,0xE0,0x68,0x00,0x03,0x21,0xF9,0xF7,0x1C,0xFD,0xA0,0x42,0xDB,0xD9, + 0x03,0x21,0x28,0x00,0xF9,0xF7,0x16,0xFD,0xA0,0x42,0xE9,0xD8,0xDE,0xE7,0x64,0x1E, + 0xB6,0xD2,0x0E,0x48,0x44,0x88,0x03,0xE0,0xFB,0xF7,0xC4,0xFC,0xFB,0xF7,0x72,0xFD, + 0x64,0x1E,0xF9,0xD2,0xFB,0xF7,0xE8,0xFC,0x05,0x48,0x07,0x62,0x02,0x99,0x41,0x62, + 0x01,0x99,0x41,0x63,0x00,0x99,0xC1,0x62,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x80,0x90,0x00,0x40,0x02,0x03,0x00,0x00,0x80,0x78,0x00,0x00,0xE0,0x7A,0x00,0x00, + 0x30,0xB4,0x0D,0x4D,0xEC,0x7B,0x00,0x2C,0x13,0xD0,0x02,0x68,0x0B,0x68,0xA4,0x07, + 0x03,0xD5,0x2C,0x8C,0xA2,0x1A,0x52,0x1E,0x02,0x60,0xEC,0x7B,0x64,0x07,0x03,0xD5, + 0x6C,0x8C,0xE3,0x1A,0x5B,0x1E,0x0B,0x60,0xEC,0x7B,0xE4,0x07,0x01,0xD0,0x03,0x60, + 0x0A,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x78,0x00,0x00,0x02,0x49,0x00,0x03, + 0x40,0x18,0xC0,0x68,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x49,0x01,0x20, + 0x08,0x70,0x70,0x47,0xAD,0x0B,0x00,0x20,0x30,0xB4,0x05,0x03,0x05,0x48,0x02,0x9C, + 0x28,0x18,0x02,0x60,0x41,0x60,0x00,0x2B,0x00,0xD0,0x03,0x61,0x84,0x60,0x30,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x02,0x4A,0x00,0x03,0x80,0x18,0x01,0x60, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68, + 0xFF,0x22,0x01,0x32,0x11,0x43,0x81,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x91,0x43,0x81,0x60, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x0F,0x49,0x89,0x7B,0x81,0x42,0x00,0xD2, + 0x08,0x00,0x01,0x22,0x52,0x07,0x01,0x28,0x0C,0xD1,0x91,0x68,0x8B,0x0F,0xDB,0x07, + 0x04,0xD0,0x89,0x00,0x89,0x08,0x83,0x07,0xC9,0x18,0x01,0xE0,0x89,0x00,0x89,0x08, + 0x51,0x60,0x07,0xE0,0x01,0x28,0x05,0xD9,0x01,0x21,0xC9,0x07,0x83,0x05,0x9B,0x0D, + 0x19,0x43,0xF5,0xE7,0x10,0x60,0x70,0x47,0x00,0x78,0x00,0x00,0xF8,0xB5,0x17,0x48, + 0x00,0x24,0x40,0x78,0x00,0x28,0x25,0xD0,0x15,0x4D,0x13,0x26,0x00,0x20,0xB6,0x01, + 0xAB,0x19,0x12,0xE0,0x81,0x00,0x49,0x19,0x89,0x19,0xCA,0x68,0x97,0x0F,0xFF,0x07, + 0x0A,0xD0,0x92,0x00,0x01,0x27,0x92,0x08,0xFF,0x07,0xD2,0x19,0x64,0x1C,0xCA,0x60, + 0xA1,0x00,0xBF,0x08,0xC9,0x19,0x4A,0x60,0x40,0x1C,0x99,0x7A,0x81,0x42,0xE9,0xDC, + 0x08,0x48,0x09,0x22,0x00,0x21,0xFE,0xF7,0xEF,0xF8,0x20,0x00,0xFF,0xF7,0xB4,0xFF, + 0xFC,0xF7,0xD2,0xFC,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x50,0x07,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xB1,0x0A,0x00,0x20,0x08,0x48,0x10,0xB5,0x04,0x04,0x24,0x0C, + 0x07,0x49,0x00,0x22,0x20,0x00,0xF9,0xF7,0x4D,0xFC,0x05,0x4A,0x05,0x49,0x20,0x00, + 0x00,0x23,0xF9,0xF7,0x4F,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00, + 0x00,0x03,0x00,0x00,0xC8,0x02,0x00,0x20,0x70,0xB5,0x05,0x00,0x08,0x48,0x00,0x22, + 0x04,0x04,0x24,0x0C,0x40,0x21,0x20,0x00,0xF9,0xF7,0x34,0xFC,0x40,0x22,0x29,0x00, + 0x20,0x00,0x00,0x23,0xF9,0xF7,0x36,0xFC,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xC0,0x75,0x00,0x00,0x02,0x4B,0x58,0x60,0x99,0x60,0x1A,0x60,0x70,0x47,0x00,0x00, + 0x00,0x30,0x00,0x40,0x01,0x04,0x00,0xB5,0x03,0x48,0x02,0x22,0x09,0x0C,0xFF,0xF7, + 0xF1,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00,0xE1,0x04,0x00,0x00,0x02,0x48,0x01,0x68, + 0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x48,0x01,0x68, + 0x49,0x08,0x49,0x00,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x49,0x02,0x22, + 0x0A,0x61,0x88,0x60,0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40,0x01,0x49,0x01,0x20, + 0x08,0x70,0x70,0x47,0xAC,0x0B,0x00,0x20,0x00,0x04,0x00,0x0C,0x01,0x21,0x89,0x07, + 0x08,0x61,0x70,0x47,0x01,0x20,0x80,0x07,0x81,0x68,0x82,0x15,0x11,0x43,0x81,0x60, + 0x70,0x47,0x01,0x21,0x89,0x07,0x88,0x68,0x8A,0x15,0x90,0x43,0x88,0x60,0x70,0x47, + 0x70,0xB4,0x03,0xAC,0x30,0xCC,0x06,0x68,0x96,0x42,0x01,0xDB,0x32,0x00,0x00,0xE0, + 0x02,0x60,0x9A,0x42,0x00,0xDD,0x03,0x60,0x08,0x68,0xA0,0x42,0x00,0xDA,0x0C,0x60, + 0x08,0x68,0xA8,0x42,0x00,0xDD,0x0D,0x60,0x70,0xBC,0x70,0x47,0x00,0x47,0x00,0x00, + 0x78,0x47,0xC0,0x46,0x01,0xC0,0x5E,0xE5,0x0C,0x00,0x53,0xE1,0x03,0x30,0xDE,0x37, + 0x0C,0x30,0xDE,0x27,0x83,0xC0,0x8E,0xE0,0x1C,0xFF,0x2F,0xE1,0x10,0xB5,0xF9,0xF7, + 0xC9,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x16,0x00,0x2E,0x00,0x58,0x00,0x2E,0x00, + 0xAF,0x00,0x2E,0x00,0x06,0x01,0x2E,0x00,0x5D,0x01,0x2E,0x00,0xB4,0x01,0x2E,0x00, + 0x2C,0x00,0x89,0x00,0x83,0x00,0x89,0x00,0xDA,0x00,0x89,0x00,0x31,0x01,0x89,0x00, + 0x88,0x01,0x89,0x00,0xCA,0x01,0x89,0x00,0x16,0x00,0xE5,0x00,0x58,0x00,0xE5,0x00, + 0xAF,0x00,0xE5,0x00,0x06,0x01,0xE5,0x00,0x5D,0x01,0xE5,0x00,0xB4,0x01,0xE5,0x00, + 0x2C,0x00,0x40,0x01,0x83,0x00,0x40,0x01,0xDA,0x00,0x40,0x01,0x31,0x01,0x40,0x01, + 0x88,0x01,0x40,0x01,0xCA,0x01,0x40,0x01,0x16,0x00,0x9B,0x01,0x58,0x00,0x9B,0x01, + 0xAF,0x00,0x9B,0x01,0x06,0x01,0x9B,0x01,0x5D,0x01,0x9B,0x01,0xB4,0x01,0x9B,0x01, + 0x2C,0x00,0xF7,0x01,0x83,0x00,0xF7,0x01,0xDA,0x00,0xF7,0x01,0x31,0x01,0xF7,0x01, + 0x88,0x01,0xF7,0x01,0xCA,0x01,0xF7,0x01,0x16,0x00,0x52,0x02,0x58,0x00,0x52,0x02, + 0xAF,0x00,0x52,0x02,0x06,0x01,0x52,0x02,0x5D,0x01,0x52,0x02,0xB4,0x01,0x52,0x02, + 0x89,0x08,0x49,0x1E,0xC9,0x04,0x01,0x22,0xC9,0x08,0xD2,0x07,0x89,0x18,0x40,0x04, + 0x40,0x0C,0x01,0x43,0x03,0x48,0x41,0x61,0x41,0x69,0x00,0x29,0xFC,0xDB,0x80,0x6B, + 0x70,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0B,0x30,0x0B,0x30,0x01,0x03,0x03,0x00,0x01,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,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,0xFF,0x00,0x00,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xF1,0x0F,0x00,0xFF,0xF2,0x0F,0x01,0x7F,0xF3,0x0F,0x02,0xBF,0xF3,0x0F,0x03, + 0xDF,0xF3,0x0F,0x04,0xEF,0xF3,0x0F,0x05,0xF7,0xF3,0x0F,0x06,0xFB,0xF3,0x0F,0x07, + 0xFF,0xF3,0x0D,0x08,0xFF,0xF3,0x0E,0x09,0xFF,0x73,0x0F,0x0A,0xFF,0xB3,0x0F,0x0B, + 0xFF,0xD3,0x0F,0x4C,0xFF,0xE3,0x0F,0x4D,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x0F, + 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x13, + 0x00,0x00,0x90,0x08,0x00,0x00,0x80,0x0A,0x00,0x00,0x70,0x0C,0x00,0x00,0x60,0x0E, + 0x00,0x00,0x50,0x10,0x00,0x00,0x40,0x12,0x00,0x00,0x30,0x1C,0x00,0x00,0x20,0x1E, + 0x00,0x00,0x10,0x21,0x00,0x00,0x00,0x23,0x00,0x00,0xF0,0x14,0x00,0x00,0xE0,0x16, + 0x00,0x00,0xD0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF0,0xC7,0x03,0x00,0xF0,0xCF,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, + 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, + 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, + 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, + 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, + 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, + 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, + 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, + 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, + 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, + 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, + 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, + 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, + 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, + 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x03,0x03,0x00,0x02,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x05,0x08,0x02,0x00, + 0x00,0x00,0x00,0x00,0x03,0x02,0x0D,0x0C,0xFF,0xFF,0xFF,0x00,0x00,0xC8,0x05,0x1E, + 0xF0,0x00,0x40,0x01,0xE8,0x03,0x00,0x00,0x74,0x27,0x00,0x00,0x3C,0x28,0x00,0x00, + 0xE0,0x93,0x04,0x00,0x01,0x5A,0x08,0x07,0x08,0x07,0x00,0x00,0x04,0xC8,0xAB,0xAB, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x6E,0x00,0x78,0x00,0x01,0x00,0x04,0x00, + 0x3C,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x15,0x04,0x02,0x32,0x00, + 0x2C,0x01,0x2C,0x01,0x00,0x00,0x00,0x00,0x50,0x00,0x5A,0x00,0x32,0x00,0xB8,0x0B, + 0x50,0x00,0x5A,0x00,0x32,0x00,0xE8,0x03,0x64,0x00,0x32,0x00,0x00,0x00,0x00,0x00, + 0x04,0x01,0x05,0x0F,0x01,0x01,0x04,0x00,0x01,0x05,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x01,0x02,0x00,0x00, + 0x01,0x02,0x00,0x00,0x02,0x03,0x00,0x00,0x02,0x03,0x00,0x00,0x02,0x03,0x00,0x00, + 0x00,0x0E,0x00,0x00,0x60,0x0F,0x00,0x00,0x60,0x0F,0x00,0x00,0x9D,0x39,0x2C,0x01, + 0x28,0x00,0x1D,0x00,0x64,0x32,0x64,0x32,0x1E,0x00,0x46,0x00,0x32,0x00,0x05,0x00, + 0x64,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x3C,0x00,0x90,0x01,0x90,0x01,0x90,0x01, + 0x90,0x01,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00, + 0x0A,0x02,0x32,0x00,0xB8,0x0B,0xBC,0x02,0x0A,0x00,0x32,0x32,0x96,0x32,0x40,0x64, + 0x64,0x64,0xFF,0x00,0x00,0x00,0x5E,0x01,0x3C,0x00,0x1E,0x00,0x28,0xFA,0x0C,0x78, + 0x00,0x05,0x04,0x0A,0x01,0x06,0x20,0x03,0x3C,0x00,0x0A,0x3C,0x00,0x05,0x1E,0x00, + 0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xDC,0x00,0x05,0x02,0x01,0x01,0x01,0x00,0x02,0x03,0x05,0x00,0x03,0x03,0x06,0x06, + 0x09,0x09,0x0C,0x0C,0x0F,0x55,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00,0x41,0x00,0x01,0x00, + 0x0A,0x0A,0xA8,0x00,0x10,0x5F,0x20,0x3F,0x00,0x00,0x00,0x00,0x5A,0x00,0x82,0x00, + 0x99,0x19,0x90,0x01,0x32,0x00,0x1D,0x00,0x64,0x32,0x64,0x32,0x23,0x00,0x41,0x00, + 0x46,0x00,0x05,0x00,0x64,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x50,0x00,0xF4,0x01, + 0xF4,0x01,0xF4,0x01,0x90,0x01,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00, + 0xFF,0xFF,0x00,0x00,0x08,0x02,0x32,0x00,0xDC,0x05,0xF4,0x01,0x0A,0x00,0x32,0x32, + 0x96,0x32,0x40,0x64,0x64,0x64,0xFF,0x00,0x00,0x00,0xC2,0x01,0x28,0x00,0x14,0x00, + 0xFF,0xFF,0x0D,0xFF,0x00,0x05,0x04,0x0A,0x02,0x06,0xD0,0x07,0x3C,0x00,0x0F,0x3C, + 0x00,0x05,0x1E,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xDC,0x00,0x05,0x04,0x01,0x01,0x01,0x00,0x04,0x03,0x01,0x00, + 0x04,0x04,0x08,0x08,0x0C,0x0C,0x10,0x10,0x14,0x55,0x01,0x00,0x05,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00, + 0x41,0xF2,0x00,0x00,0x08,0x08,0xA8,0x00,0x20,0x5F,0x20,0x3F,0x00,0x00,0x00,0x00, + 0x32,0x00,0x19,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00, + 0x96,0x00,0x0F,0x00,0x05,0x00,0x00,0x00,0x1E,0x00,0xC8,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x96,0x00,0x2C,0x01,0x00,0x00, + 0x22,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00, + 0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x64,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x14,0x00,0x00,0x5A,0x5A,0x5A,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x28,0x00,0x50,0x00,0x1E,0x00,0x50,0x00,0x14,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x41,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0xD0,0x47,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFF,0x0F,0x02,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0E,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x02,0x03,0x00,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xFF,0x0F,0xC8,0x00, + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x41,0x02,0x01,0x00, + 0x10,0x00,0x10,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00,0x08,0x10,0x88,0x00, + 0x20,0x9F,0x20,0x3F,0x1E,0x0A,0x64,0x00,0x10,0x10,0x08,0x84,0x00,0x00,0xAC,0x0D, + 0x01,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x08,0x20, + 0x51,0x30,0x10,0x00,0x11,0x90,0x01,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xF3,0x0F,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00, + 0x54,0x55,0x45,0x00,0x10,0x30,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x00,0x00,0x00, + 0x3B,0x38,0x03,0x00,0x00,0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x30,0x20,0x68,0x58,0x12,0x14,0x00,0x00,0x1C,0x0C,0x06,0x00, + 0x00,0x04,0x7C,0x74,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x1F,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x80,0x00,0x03,0x64,0x40,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x00,0x00,0x00, + 0x00,0x80,0x00,0x00,0xC8,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x40,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x50,0x38,0x18,0x00,0x50,0x38,0x18,0x00,0x50,0x38,0x18,0x00,0x50,0x38,0x18,0x00, + 0x50,0x38,0x18,0x00,0x50,0x38,0x18,0x00,0x50,0x38,0x18,0x00,0x50,0x38,0x18,0x00, + 0x50,0x38,0x18,0x00,0x50,0x38,0x18,0x00,0x50,0x38,0x18,0x00,0x40,0x31,0x10,0x01, + 0x50,0x38,0x18,0x00,0x50,0x38,0x18,0x00,0x50,0x38,0x18,0x00,0x50,0x38,0x18,0x00, + 0x50,0x38,0x18,0x00,0x50,0x38,0x18,0x00,0x50,0x38,0x18,0x00,0x50,0x38,0x18,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x0D,0x00,0xA0,0xE1,0x10,0xD0,0x9F,0xE5,0x01,0x40,0x2D,0xE9,0x92,0x01,0x00,0xEB, + 0x01,0x40,0xBD,0xE8,0x00,0xD0,0xA0,0xE1,0x1E,0xFF,0x2F,0xE1,0xF0,0x0F,0x00,0x20, + 0x92,0x10,0x00,0xE0,0x02,0xC0,0x52,0x1E,0xFC,0xD2,0x70,0x47,0xF8,0x49,0x10,0xB4, + 0xC8,0x6B,0x0A,0x06,0x80,0x00,0x80,0x08,0xF5,0x4C,0x80,0x18,0x40,0x34,0xC8,0x63, + 0x20,0x68,0x80,0x00,0x80,0x08,0x20,0x60,0x60,0x68,0x80,0x00,0x80,0x08,0x60,0x60, + 0x00,0x20,0x81,0x00,0x0A,0x19,0x11,0x6A,0x40,0x1C,0x8B,0x00,0xC9,0x01,0xDB,0x0E, + 0xC9,0x0E,0x49,0x06,0x1B,0x05,0x19,0x43,0x14,0x28,0x11,0x62,0xF1,0xD3,0xE8,0x48, + 0xE8,0x49,0x80,0x30,0x01,0x63,0x03,0x21,0x09,0x03,0x41,0x63,0xE6,0x49,0x08,0x69, + 0x40,0x08,0x40,0x00,0x08,0x61,0xE4,0x48,0x40,0x30,0x01,0x68,0xE3,0x49,0x01,0x60, + 0xE3,0x48,0xE4,0x49,0xC8,0x60,0x10,0xBC,0x70,0x47,0xFC,0xB5,0xE2,0x4C,0x02,0x00, + 0x30,0x34,0x18,0xCC,0x00,0x20,0x00,0x94,0xE0,0x4C,0x24,0x7D,0xE4,0x07,0x2D,0xD0, + 0xDF,0x4C,0x25,0x79,0xE6,0x78,0xDD,0x4C,0xAE,0x46,0xA5,0x7D,0x00,0x2E,0x76,0x46, + 0xAC,0x46,0xE5,0x7D,0x01,0x95,0x25,0x7E,0x67,0x7E,0xA4,0x7E,0x10,0xD0,0xB2,0x42, + 0x1C,0xD1,0x8C,0x45,0x08,0xD0,0x01,0x9A,0x8A,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0, + 0x8F,0x42,0x01,0xD0,0x8C,0x42,0x00,0xD1,0x00,0x98,0xFC,0xBC,0x08,0xBC,0x18,0x47, + 0xB1,0x42,0x0B,0xD1,0x94,0x45,0xF7,0xD0,0x01,0x99,0x91,0x42,0xF4,0xD0,0x95,0x42, + 0xF2,0xD0,0x97,0x42,0xF0,0xD0,0x94,0x42,0xEE,0xD0,0xEE,0xE7,0x18,0x00,0xEC,0xE7, + 0x30,0xB4,0xC7,0x4B,0xC7,0x4C,0x5B,0x78,0x58,0x43,0x40,0x18,0x43,0x00,0xE0,0x5A, + 0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18,0x00,0x20,0x4D,0x1E,0xC0,0x43, + 0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2,0x10,0x02,0x08,0x43,0xE0,0x52, + 0x00,0x20,0x30,0xBC,0x70,0x47,0xF3,0xB5,0xBB,0x48,0x82,0xB0,0x01,0x90,0x00,0x20, + 0x00,0x90,0xB1,0x48,0xC1,0x68,0x01,0x22,0x11,0x43,0xC1,0x60,0xB4,0x4F,0xAE,0x48, + 0xC0,0x68,0xC0,0x07,0xFB,0xD0,0x00,0x24,0x26,0x00,0x25,0xE0,0x00,0x25,0x1F,0xE0, + 0x29,0x00,0x30,0x00,0xFF,0xF7,0x91,0xFF,0x00,0x28,0x17,0xD0,0x79,0x78,0x01,0x9A, + 0x71,0x43,0x49,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A,0x02,0x99, + 0x00,0x29,0x02,0xD0,0x00,0x28,0x09,0xDA,0x01,0xE0,0x00,0x28,0x06,0xDD,0x03,0x9A, + 0x29,0x00,0x30,0x00,0xFF,0xF7,0xB4,0xFF,0x40,0x1C,0x00,0xD1,0x64,0x1C,0x6D,0x1C, + 0x78,0x78,0x85,0x42,0xDC,0xD3,0x76,0x1C,0xB8,0x78,0x86,0x42,0xD6,0xD3,0xB8,0x78, + 0x79,0x78,0x48,0x43,0xA0,0x42,0x0A,0xD0,0x00,0x98,0x41,0x1C,0x00,0x91,0x01,0x21, + 0x49,0x02,0x88,0x42,0x03,0xD8,0x90,0x48,0xC1,0x68,0xC1,0x60,0xBF,0xE7,0xFF,0xBC, + 0x08,0xBC,0x18,0x47,0xF0,0xB4,0x00,0x21,0x92,0x4C,0x90,0x4B,0x90,0x4E,0x1E,0x25, + 0x13,0xE0,0x9A,0x7D,0x8A,0x42,0x0D,0xD0,0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E, + 0x8A,0x42,0x07,0xD0,0x5A,0x7E,0x8A,0x42,0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0, + 0x42,0x00,0xA5,0x52,0x72,0x78,0x80,0x18,0x49,0x1C,0xB2,0x78,0x77,0x78,0x7A,0x43, + 0x82,0x42,0xE6,0xD8,0xF0,0xBC,0x70,0x47,0xF0,0xB4,0x81,0x4B,0x00,0x21,0x5A,0x78, + 0x1E,0x26,0x80,0x4D,0x42,0x43,0x7D,0x4F,0x12,0xE0,0xBB,0x7D,0x8B,0x42,0x0D,0xD0, + 0xFB,0x7D,0x8B,0x42,0x0A,0xD0,0x3B,0x7E,0x8B,0x42,0x07,0xD0,0x7B,0x7E,0x8B,0x42, + 0x04,0xD0,0xBB,0x7E,0x8B,0x42,0x01,0xD0,0x53,0x00,0xEE,0x52,0x52,0x1C,0x49,0x1C, + 0x73,0x4B,0x04,0x00,0x5B,0x78,0x5C,0x43,0xE3,0x18,0x93,0x42,0xE5,0xD8,0xD9,0xE7, + 0x02,0x04,0x70,0x49,0x02,0x43,0x00,0x20,0x40,0x1C,0x04,0xC1,0x80,0x28,0xFB,0xD3, + 0x70,0x47,0xF1,0xB5,0x6A,0x4C,0x68,0x4D,0x21,0x78,0x6B,0x4F,0xA8,0x6B,0x00,0x29, + 0x82,0xB0,0x00,0xD0,0x00,0x0C,0x00,0x06,0x00,0x0E,0x01,0x02,0x01,0x43,0x08,0x04, + 0x00,0x0C,0xFF,0xF7,0xE5,0xFF,0x61,0x48,0x00,0x7D,0xC0,0x07,0x08,0xD0,0xE0,0x78, + 0x00,0x28,0x20,0x79,0x02,0xD0,0xFF,0xF7,0xB7,0xFF,0x01,0xE0,0xFF,0xF7,0x92,0xFF, + 0x55,0x49,0x00,0x20,0x80,0x31,0xC8,0x62,0x59,0x49,0xE8,0x6B,0x09,0x78,0x00,0x29, + 0x08,0xD1,0x54,0x49,0x00,0x22,0x4A,0x63,0x4A,0x68,0x00,0x07,0x12,0x09,0x12,0x01, + 0x00,0x0F,0x07,0xE0,0x4F,0x49,0x00,0x22,0x4A,0x63,0x4A,0x68,0x00,0x03,0x12,0x09, + 0x12,0x01,0x00,0x0F,0x02,0x43,0x4A,0x60,0x03,0x24,0x26,0x1F,0x01,0xE0,0x03,0x2C, + 0x02,0xD1,0x01,0x25,0xED,0x43,0x09,0xE0,0x02,0x2C,0x01,0xD1,0x01,0x25,0x05,0xE0, + 0x01,0x2C,0x01,0xD1,0x35,0x00,0x01,0xE0,0x00,0x2C,0xF7,0xD0,0xE0,0x07,0xC0,0x0F, + 0x29,0x00,0xFF,0xF7,0x10,0xFF,0x64,0x1E,0xE9,0xD5,0x41,0x48,0x40,0x4D,0x00,0x78, + 0x0C,0x35,0x00,0x28,0x2D,0xD1,0x38,0x4A,0x09,0x21,0x01,0x23,0xD0,0x68,0x18,0x43, + 0xD0,0x60,0xD0,0x68,0xC0,0x07,0xFC,0xD0,0x49,0x1E,0xF7,0xD2,0x00,0x26,0x17,0xE0, + 0x00,0x24,0x10,0xE0,0x21,0x00,0x30,0x00,0xFF,0xF7,0x9F,0xFE,0x00,0x28,0x09,0xD0, + 0x33,0x48,0x40,0x78,0x70,0x43,0x00,0x19,0x81,0x00,0x79,0x58,0x09,0x05,0x09,0x0D, + 0x40,0x00,0x29,0x52,0x64,0x1C,0x2E,0x48,0x40,0x78,0x84,0x42,0xEA,0xD3,0x76,0x1C, + 0x2B,0x48,0x81,0x78,0x8E,0x42,0xE3,0xD3,0x01,0x78,0x00,0x29,0x01,0xD1,0x81,0x68, + 0x03,0xE0,0x27,0x48,0x80,0x68,0x01,0x0C,0x09,0x04,0x22,0x48,0x41,0x63,0x1E,0x48, + 0x09,0x21,0x01,0x23,0xC2,0x68,0x1A,0x43,0xC2,0x60,0xC2,0x68,0xD2,0x07,0xFC,0xD0, + 0x49,0x1E,0xF7,0xD2,0x21,0x48,0x00,0x26,0x01,0x90,0x21,0x48,0x00,0x90,0x6F,0xE0, + 0x00,0x24,0x68,0xE0,0x21,0x00,0x30,0x00,0xFF,0xF7,0x67,0xFE,0x00,0x28,0x61,0xD0, + 0x17,0x49,0x0A,0x78,0x00,0x2A,0x35,0xD1,0x49,0x78,0x71,0x43,0x0B,0x19,0x59,0x00, + 0x9B,0x00,0xFB,0x58,0x6A,0x5A,0x1B,0x05,0x1B,0x0D,0x9A,0x42,0x01,0xD8,0x00,0x20, + 0x0B,0xE0,0x82,0x42,0x04,0xD9,0x12,0x1A,0x12,0x04,0xD2,0x0C,0x80,0x18,0x03,0xE0, + 0x82,0x1A,0x12,0x04,0xD2,0x0C,0x80,0x1A,0xC0,0x1A,0x68,0x52,0x42,0xE0,0x00,0x00, + 0x40,0x06,0x10,0x40,0xFC,0xF3,0x03,0x00,0x00,0x90,0x00,0x40,0x0C,0x0E,0x00,0x00, + 0xF3,0xCF,0x0F,0x00,0x00,0xA0,0x00,0x40,0xC0,0x0F,0x00,0x20,0x00,0x78,0x00,0x00, + 0x68,0x06,0x00,0x20,0x00,0x00,0x10,0x40,0x00,0x02,0x10,0x40,0x74,0x08,0x00,0x20, + 0x74,0x0A,0x00,0x20,0x7A,0x48,0x7B,0x49,0x40,0x78,0xFF,0x23,0x91,0x33,0x70,0x43, + 0x00,0x19,0x84,0x46,0x80,0x00,0x38,0x58,0x00,0x05,0x00,0x0D,0x02,0x00,0x41,0x18, + 0x99,0x42,0x09,0xD8,0x74,0x49,0x08,0x1A,0x03,0x00,0x43,0x43,0x18,0x0A,0x8A,0x42, + 0x01,0xD9,0x40,0x18,0x00,0xE0,0x08,0x1A,0x02,0x99,0x00,0x29,0x06,0xD0,0x6C,0x49, + 0x00,0x9A,0x89,0x78,0x61,0x43,0x89,0x19,0x49,0x00,0x02,0xE0,0x01,0x9A,0x61,0x46, + 0x49,0x00,0x50,0x52,0x64,0x1C,0x66,0x48,0x40,0x78,0x84,0x42,0x92,0xD3,0x76,0x1C, + 0x63,0x48,0x81,0x78,0x8E,0x42,0x8B,0xD3,0xFE,0xBC,0x08,0xBC,0x18,0x47,0xF0,0xB5, + 0x62,0x4E,0x5F,0x4D,0x00,0x24,0x01,0x27,0x61,0x48,0x01,0x68,0x60,0x4A,0x08,0x04, + 0x00,0x0E,0x09,0x06,0x09,0x0E,0x68,0x70,0x40,0x3A,0xA9,0x70,0x12,0x69,0xD2,0x07, + 0xD2,0x0F,0x32,0x7D,0x02,0xD0,0x92,0x07,0x06,0xD4,0x01,0xE0,0x92,0x07,0x03,0xD5, + 0x49,0x1E,0x29,0x71,0xEF,0x70,0x03,0xE0,0x40,0x1E,0x28,0x71,0x00,0x20,0xE8,0x70, + 0x20,0x00,0x64,0x1C,0xFF,0xF7,0xC5,0xFE,0x28,0x78,0x01,0x28,0x01,0xD0,0x01,0x2C, + 0x05,0xD0,0x02,0x2C,0x03,0xD0,0xFF,0xF7,0x91,0xFD,0x01,0x2C,0xD4,0xD9,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x4B,0x48,0x10,0xB5,0x40,0x6B,0x45,0x4C,0xC5,0x22,0xA0,0x60, + 0x20,0x00,0xD2,0x00,0x00,0x21,0x0C,0x30,0xFF,0xF7,0x7A,0xFD,0x00,0x20,0x20,0x70, + 0xFF,0xF7,0xBD,0xFF,0x01,0x20,0x20,0x70,0xFF,0xF7,0xB9,0xFF,0x42,0x48,0x43,0x49, + 0xC8,0x61,0x43,0x48,0xC2,0x68,0x52,0x08,0x52,0x00,0xC2,0x60,0x20,0x00,0x0C,0x30, + 0x04,0xC8,0xCA,0x61,0x4A,0x69,0x52,0x06,0xFC,0xD4,0xF9,0xE7,0x40,0x1E,0xFD,0xD2, + 0x70,0x47,0xF0,0xB5,0x3C,0x48,0x3B,0x4A,0x01,0x23,0x03,0x61,0x19,0x00,0x3A,0x48, + 0x00,0x23,0x43,0x61,0x83,0x61,0x01,0x26,0x35,0x00,0x9D,0x40,0x03,0x20,0x36,0x4C, + 0x00,0x04,0x28,0x43,0x60,0x61,0x08,0x00,0x40,0x1E,0xFD,0xD2,0x01,0x20,0x00,0x04, + 0x28,0x43,0x60,0x61,0x08,0x00,0x40,0x1E,0xFD,0xD2,0x65,0x61,0x48,0x00,0x86,0x46, + 0x40,0x1E,0xFD,0xD2,0xE7,0x69,0x00,0x20,0x5C,0x01,0xA4,0x46,0x64,0x46,0x24,0x18, + 0x3D,0x00,0xC5,0x40,0x16,0x5D,0xED,0x07,0xED,0x0F,0x75,0x19,0x40,0x1C,0x20,0x28, + 0x15,0x55,0xF3,0xD3,0x5B,0x1C,0x10,0x2B,0xD5,0xD3,0x23,0x48,0x00,0x23,0x43,0x61, + 0x83,0x61,0x01,0x25,0x9D,0x40,0x03,0x20,0x1F,0x4C,0x00,0x04,0x28,0x43,0xA0,0x61, + 0x08,0x00,0x40,0x1E,0xFD,0xD2,0x01,0x20,0x00,0x04,0x28,0x43,0xA0,0x61,0x08,0x00, + 0x40,0x1E,0xFD,0xD2,0xA5,0x61,0x70,0x46,0x40,0x1E,0xFD,0xD2,0xE7,0x69,0x5C,0x01, + 0xFF,0x34,0x00,0x20,0xFF,0x34,0x02,0x34,0xA4,0x46,0x64,0x46,0x24,0x18,0x3D,0x00, + 0xC5,0x40,0x16,0x5D,0xED,0x07,0xED,0x0F,0x75,0x19,0x40,0x1C,0x20,0x28,0x15,0x55, + 0xF3,0xD3,0x5B,0x1C,0x10,0x2B,0xD4,0xD3,0x49,0x1C,0xC8,0x29,0x9F,0xD9,0x6E,0xE7, + 0x68,0x06,0x00,0x20,0x74,0xF5,0xFF,0xFF,0x54,0x0B,0x00,0x00,0x00,0x78,0x00,0x00, + 0x40,0x90,0x00,0x40,0x00,0xA0,0x00,0x40,0xAB,0xFC,0xFF,0x8F,0x00,0x40,0x00,0x30, + 0x00,0x20,0x00,0x40,0x74,0x08,0x00,0x20,0x00,0xA1,0x00,0x40,0x00,0xC0,0x9F,0xE5, + 0x1C,0xFF,0x2F,0xE1,0x15,0x05,0x00,0x20,0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47, + 0x40,0x04,0x00,0x00,0xC0,0x7B,0x00,0x00,0xC0,0x75,0x00,0x00,0x40,0x00,0x00,0x00, + 0x00,0x78,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x7B,0x00,0x00,0x00,0x01,0x00,0x00, + 0x00,0x7C,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x02,0x00,0x00, + 0xFC,0x00,0x98,0x00,0x00,0x00,0x00,0x00,0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47 +}; + +#endif // __IST30XXB_FW_H__ diff --git a/drivers/input/touchscreen/ist30xxb/IST30xxB_FW_vivalto_Ver0001_fw.h b/drivers/input/touchscreen/ist30xxb/IST30xxB_FW_vivalto_Ver0001_fw.h new file mode 100644 index 00000000..84d8ed54 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/IST30xxB_FW_vivalto_Ver0001_fw.h @@ -0,0 +1,2163 @@ +#ifndef __IST30XXB_FW_H__ +#define __IST30XXB_FW_H__ + +/* ist30xxb binary: vivalto SYNOPEX, f/w 1(00030304) */ +static unsigned char ist30xxb_fw[] = { + 0x06,0x00,0x00,0xEA,0x2C,0x00,0x00,0xEA,0x2B,0x00,0x00,0xEA,0x2A,0x00,0x00,0xEA, + 0x29,0x00,0x00,0xEA,0x28,0x00,0x00,0xEA,0x27,0x00,0x00,0xEA,0x3E,0x00,0x00,0xEA, + 0x14,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0xA0,0xE1,0x00,0x00,0x00,0xEA,0x0C,0x20,0x00,0x40, + 0x11,0x01,0xA0,0xE3,0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0xC1,0x01,0xA0,0xE3, + 0x1C,0x10,0x9F,0xE5,0x00,0x10,0x80,0xE5,0x18,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0xF1,0x01,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0x01,0x00,0x00,0xEA,0xC8,0x74,0x00,0x00,0x4C,0x00,0x00,0x40,0x00,0x00,0x0F,0xE1, + 0x1F,0x00,0xC0,0xE3,0xD1,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x1C,0xD0,0x9F,0xE5, + 0xD3,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x14,0xD0,0x9F,0xE5,0x00,0x00,0x0F,0xE1, + 0xC0,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x08,0x00,0x9F,0xE5,0x10,0xFF,0x2F,0xE1, + 0xFC,0x0F,0x00,0x20,0xC0,0x0F,0x00,0x20,0xA7,0x01,0x00,0x00,0x11,0x01,0xA0,0xE3, + 0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x5C,0x30,0x9F,0xE5,0x5C,0x40,0x9F,0xE5, + 0x00,0x40,0x83,0xE5,0x91,0x01,0xA0,0xE3,0x33,0x16,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0xAC,0x00,0x1F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0x00,0x40,0x83,0xE5, + 0xFF,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x03,0x00,0x00,0xEB,0xFE,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0x00,0xEB,0xF7,0xFF,0xFF,0xEA,0x01,0x29,0xA0,0xE3, + 0x01,0x20,0x52,0xE2,0xFD,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0xFF,0x40,0x2D,0xE9, + 0xC6,0x00,0x00,0xEB,0xFF,0x40,0xBD,0xE8,0x04,0xF0,0x5E,0xE2,0x1C,0x40,0x00,0x30, + 0x70,0xE9,0x1C,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x3C,0x4A,0x3A,0x48,0x3A,0x49,0x92,0x08,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x38,0x48,0x01,0x21,0xC9,0x02,0x01,0x62, + 0x00,0x21,0x01,0x62,0x01,0x62,0x36,0x49,0x36,0x48,0x01,0x60,0x20,0x21,0x41,0x60, + 0xA0,0x21,0x81,0x60,0x70,0x47,0xF8,0xB5,0x30,0x4B,0x9F,0x6A,0x32,0x48,0x00,0x69, + 0x42,0x08,0x58,0x69,0x19,0x15,0x08,0x43,0x58,0x61,0xFF,0xF7,0xE5,0xFF,0x58,0x69, + 0xFF,0x21,0x81,0x31,0x08,0x43,0x58,0x61,0x2C,0x48,0x2D,0x4C,0x20,0x60,0xFF,0x20, + 0x90,0x30,0x60,0x60,0x13,0x20,0xA0,0x60,0xA0,0x68,0xA6,0x15,0x30,0x43,0xA0,0x60, + 0x24,0x4D,0x5F,0x23,0x00,0x2F,0x27,0xD1,0x26,0x4F,0x21,0xE0,0x68,0x68,0x00,0x07, + 0x1E,0xD5,0xE8,0x68,0x40,0x28,0x04,0xD1,0xEA,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1, + 0x14,0xE0,0x20,0x28,0x04,0xD3,0xEF,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1,0x0D,0xE0, + 0x0D,0x28,0x08,0xD1,0x2E,0x20,0x68,0x60,0x68,0x69,0x80,0x06,0xFC,0xD4,0x68,0x68, + 0x80,0x07,0xFC,0xD5,0x08,0xE0,0x68,0x68,0x80,0x07,0xFC,0xD5,0xFF,0xF7,0xAC,0xFF, + 0xE0,0x68,0x15,0x49,0x88,0x42,0xD9,0xD3,0xFF,0xF7,0xA6,0xFF,0xA0,0x68,0xB0,0x43, + 0xA0,0x60,0x00,0xF0,0x3D,0xF9,0xF8,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x0F,0x49, + 0x0F,0x4A,0x00,0x20,0x01,0xE0,0x08,0xC9,0x18,0x18,0x91,0x42,0xFB,0xD3,0x70,0x47, + 0x40,0x00,0x00,0x20,0x94,0x02,0x00,0x00,0xCC,0x00,0x00,0x00,0x40,0x00,0x00,0x40, + 0xDE,0x10,0x01,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0xFF,0xFF,0x00,0x00, + 0x00,0x40,0x00,0x40,0xFF,0x03,0xFF,0x2F,0x50,0xC3,0x00,0x00,0x40,0x04,0x00,0x00, + 0xC0,0x75,0x00,0x00,0x30,0x48,0x41,0x6B,0xC9,0x07,0xFC,0xD0,0x41,0x6B,0x01,0x22, + 0x11,0x43,0x41,0x63,0x70,0x47,0x10,0xB4,0x2B,0x4C,0x40,0x23,0x60,0x60,0x20,0x68, + 0x80,0x0A,0x80,0x02,0x10,0x43,0xA8,0x22,0x10,0x43,0x20,0x60,0x02,0xE0,0x08,0x78, + 0xA0,0x60,0x49,0x1C,0x5B,0x1E,0xFA,0xD2,0x10,0xBC,0x70,0x47,0xF0,0xB5,0x05,0x00, + 0x0E,0x00,0x1F,0x00,0x94,0x09,0x81,0x06,0x20,0x48,0x10,0xD1,0x91,0x06,0x0E,0xD1, + 0x0A,0xE0,0x3A,0x00,0x31,0x00,0x28,0x00,0xFF,0xF7,0xDD,0xFF,0x40,0x35,0x2D,0x04, + 0x2D,0x0C,0x40,0x36,0xFF,0xF7,0xCE,0xFF,0x64,0x1E,0x60,0x1C,0xF1,0xD1,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x14,0x4B,0x40,0x22,0x58,0x60,0x18,0x68,0x80,0x0A,0x80,0x02, + 0x08,0x43,0xA4,0x21,0x08,0x43,0x18,0x60,0x00,0x21,0x00,0xE0,0x99,0x60,0x52,0x1E, + 0xFC,0xD2,0x70,0x47,0x70,0xB5,0x05,0x00,0x16,0x00,0x8C,0x09,0x82,0x06,0x0B,0x48, + 0x0E,0xD1,0x89,0x06,0x0C,0xD1,0x08,0xE0,0x31,0x00,0x28,0x00,0xFF,0xF7,0xE2,0xFF, + 0x40,0x35,0x2D,0x04,0x2D,0x0C,0xFF,0xF7,0xA5,0xFF,0x64,0x1E,0x60,0x1C,0xF3,0xD1, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0xF8,0xB5,0x03,0x25,0x0F,0x4E,0x2D,0x07, + 0x01,0x27,0xF0,0x6A,0x00,0x28,0x15,0xD0,0xF0,0x6B,0xE9,0x68,0x80,0x08,0x3C,0x00, + 0x84,0x40,0x21,0x43,0xE9,0x60,0x69,0x68,0x21,0x42,0x00,0xD0,0x34,0x63,0x81,0x00, + 0x07,0x48,0x40,0x58,0x00,0x28,0x01,0xD0,0x06,0xF0,0x94,0xFE,0xE8,0x68,0xA0,0x43, + 0xE8,0x60,0xE6,0xE7,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x30, + 0x2C,0x0B,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF8,0xB5,0x00,0xF0,0x2F,0xFD,0x07,0x00,0x03,0xF0,0xC2,0xFC,0x03,0xF0,0xB4,0xFC, + 0x03,0xF0,0x3A,0xFD,0x49,0x4A,0x4A,0x49,0x4A,0x48,0x04,0xF0,0x9E,0xFE,0x4A,0x4D, + 0x00,0x26,0x01,0x21,0xC9,0x03,0x30,0x00,0x2E,0x82,0x00,0xF0,0xC9,0xF9,0xA8,0x61, + 0x46,0x49,0x00,0x20,0x00,0xF0,0xC4,0xF9,0x45,0x4B,0x46,0x49,0xD8,0x63,0x46,0x48, + 0x00,0xF0,0xBE,0xF9,0xD9,0x6B,0x00,0x04,0x08,0x43,0xD8,0x63,0x03,0xF0,0xFC,0xFC, + 0xA1,0x22,0x42,0x48,0xD2,0x00,0x00,0x21,0x04,0xF0,0x8A,0xFE,0x06,0xF0,0x32,0xFA, + 0x03,0xF0,0x9E,0xFD,0x3E,0x48,0x01,0x24,0x81,0x7A,0xA9,0x71,0xC1,0x7A,0xE9,0x71, + 0x40,0x7A,0x28,0x72,0xFF,0x20,0x91,0x30,0x6E,0x72,0x68,0x82,0xAE,0x72,0xEE,0x72, + 0x2E,0x73,0x01,0x20,0x6E,0x73,0xA8,0x73,0x34,0x48,0x64,0x07,0x60,0x63,0xFF,0x20, + 0xE0,0x63,0xE0,0x14,0x00,0xF0,0xC2,0xFC,0x32,0x48,0x06,0x70,0xFF,0x20,0x81,0x30, + 0x00,0xF0,0xBC,0xFC,0x30,0x49,0x02,0x20,0x06,0xF0,0x1C,0xFD,0x02,0x20,0x06,0xF0, + 0x21,0xFD,0x28,0x7A,0x00,0x28,0x01,0xD0,0x06,0xF0,0xCC,0xFD,0x00,0x2F,0x1F,0xD1, + 0x2A,0x4F,0xBE,0x15,0x28,0x7A,0x00,0x28,0x02,0xD0,0x29,0x49,0x28,0x6B,0x88,0x60, + 0xE0,0x6B,0x0B,0x28,0x14,0xD0,0x27,0x48,0x40,0x68,0x00,0x07,0x01,0xD5,0x02,0xF0, + 0x25,0xFB,0xF8,0x68,0x24,0x49,0x88,0x42,0xEC,0xD9,0x24,0x48,0xC0,0x68,0xFF,0x28, + 0x06,0xD1,0xB8,0x68,0xB0,0x43,0xB8,0x60,0xB8,0x68,0x30,0x43,0xB8,0x60,0xE1,0xE7, + 0xE8,0x79,0x00,0x28,0x03,0xD1,0x01,0x20,0x80,0x02,0x00,0xF0,0x7F,0xFC,0x28,0x7A, + 0x00,0x28,0x01,0xD0,0x06,0xF0,0xA6,0xFD,0x02,0x20,0x06,0xF0,0xF7,0xFC,0xFF,0x20, + 0x81,0x30,0x00,0xF0,0x73,0xFC,0x16,0x49,0x05,0x20,0x03,0xF0,0xD9,0xFA,0x0B,0x20, + 0xE0,0x63,0x03,0xF0,0x69,0xFB,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x28,0x00,0x00,0x00, + 0xF0,0x71,0x00,0x00,0x40,0x00,0x00,0x20,0xF8,0x0A,0x00,0x20,0xC0,0x75,0x00,0x00, + 0xC0,0x0F,0x00,0x20,0x00,0x7E,0x00,0x00,0x00,0x76,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x00,0x78,0x00,0x00,0xAD,0x0B,0x00,0x20,0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40, + 0x00,0x30,0x00,0x40,0x00,0x40,0x00,0x30,0x50,0xC3,0x00,0x00,0xC0,0x75,0x00,0x00, + 0x79,0x6F,0x00,0x00,0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9,0x20,0x20,0x52,0xE2, + 0x05,0x00,0x00,0x3A,0x18,0x50,0xB1,0xE8,0x20,0x20,0x52,0xE2,0x18,0x50,0xA0,0xE8, + 0x18,0x50,0xB1,0xE8,0x18,0x50,0xA0,0xE8,0xF9,0xFF,0xFF,0x2A,0x02,0xCE,0xB0,0xE1, + 0x18,0x50,0xB1,0x28,0x18,0x50,0xA0,0x28,0x18,0x00,0xB1,0x48,0x18,0x00,0xA0,0x48, + 0x10,0x40,0xBD,0xE8,0x02,0xCF,0xB0,0xE1,0x04,0x30,0x91,0x24,0x04,0x30,0x80,0x24, + 0x1E,0xFF,0x2F,0x01,0x82,0x2F,0xB0,0xE1,0xB2,0x30,0xD1,0x20,0x01,0x20,0xD1,0x44, + 0xB2,0x30,0xC0,0x20,0x01,0x20,0xC0,0x44,0x1E,0xFF,0x2F,0xE1,0x78,0x47,0xC0,0x46, + 0x01,0x30,0x90,0xE1,0x21,0x00,0x00,0x4A,0x00,0x20,0xB0,0xE3,0xA0,0x30,0x71,0xE0, + 0x1A,0x00,0x00,0x3A,0x20,0x32,0x71,0xE0,0x0F,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0, + 0x01,0x00,0x00,0x3A,0x00,0xC0,0xA0,0xE3,0x20,0x00,0x00,0xEA,0xA0,0x33,0x71,0xE0, + 0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0, + 0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0,0x1E,0xFF,0x2F,0xE1, + 0x02,0x21,0x11,0xE2,0x00,0x10,0x61,0x42,0x40,0xC0,0x32,0xE0,0x00,0x00,0x60,0x22, + 0x20,0x32,0x71,0xE0,0x1D,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0,0x0F,0x00,0x00,0x3A, + 0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x23,0x82,0xE3,0x0B,0x00,0x00,0x3A, + 0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x26,0x82,0xE3,0x07,0x00,0x00,0x3A, + 0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x29,0x82,0xE3,0x01,0x13,0xA0,0x21, + 0x3F,0x2C,0x82,0x23,0x00,0x30,0x71,0xE2,0x1D,0x00,0x00,0x2A,0x21,0x13,0xA0,0x21, + 0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0, + 0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0, + 0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xEB,0xFF,0xFF,0x2A,0xA0,0x30,0x71,0xE0, + 0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31, + 0x02,0x00,0xA2,0xE0,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x00,0x10,0x61,0x22, + 0x1E,0xFF,0x2F,0xE1,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42,0x01,0x40,0x2D,0xE9, + 0x00,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB,0x02,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1, + 0x00,0x00,0xA0,0xE1,0x07,0x40,0x2D,0xE9,0x02,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB, + 0x07,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x01,0x00,0x10,0xB5,0x02,0x20,0x06,0xF0,0xB5,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x78,0x47,0xC0,0x46,0x00,0x20,0xB0,0xE3,0x20,0x32,0x71,0xE0,0xA6,0xFF,0xFF,0x3A, + 0x20,0x34,0x71,0xE0,0x98,0xFF,0xFF,0x3A,0x00,0xC0,0xA0,0xE3,0xB7,0xFF,0xFF,0xEA, + 0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x41,0x00,0x00,0x20, + 0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0xD1,0x00,0x00,0x20, + 0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x79,0x00,0x00,0x20, + 0x78,0x47,0xC0,0x46,0x00,0xFE,0xFF,0xEA,0x02,0x48,0x01,0x68,0x02,0x4A,0x11,0x40, + 0x01,0x60,0x70,0x47,0x00,0xA0,0x00,0x40,0xFE,0xFF,0xEF,0xFF,0x07,0x49,0x10,0xB5, + 0x08,0x68,0x07,0x4A,0x10,0x43,0x08,0x60,0x0F,0x24,0x02,0xF0,0x2C,0xF9,0x64,0x1E, + 0x00,0x2C,0xFA,0xDC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x01,0x00,0x10,0x00,0xF0,0xB5,0x01,0x27,0x7F,0x07,0x3D,0x68,0x17,0x4E,0xB0,0x7E, + 0xC0,0x07,0x26,0xD0,0x70,0x7D,0x00,0x28,0x21,0xD0,0xBA,0x00,0x01,0x2D,0x02,0xD1, + 0x79,0x68,0x11,0x43,0xB9,0x60,0x00,0x04,0x02,0x43,0x90,0x0A,0x80,0x02,0xA9,0x05, + 0x89,0x0D,0x08,0x43,0x78,0x60,0x01,0x24,0x08,0xE0,0x0D,0x49,0xE0,0x00,0x40,0x18, + 0x0C,0x49,0x41,0x18,0x28,0x19,0x06,0xF0,0x31,0xF9,0x64,0x1C,0x70,0x7D,0xA0,0x42, + 0xF3,0xDA,0x70,0x7D,0x01,0x28,0x02,0xD1,0x00,0x2D,0x00,0xD1,0x01,0x25,0x70,0x7D, + 0x45,0x19,0x3D,0x60,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x30,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0x86,0x04,0x00,0x00,0x70,0xB4,0x1A,0x4B,0xDA,0x88,0xD2,0x07, + 0x2B,0xD1,0x19,0x4A,0x05,0x78,0x54,0x7D,0xE4,0x00,0xE6,0x18,0x09,0x24,0xE4,0x01, + 0x36,0x19,0xB5,0x73,0x56,0x7D,0x45,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0x35,0x82, + 0x56,0x7D,0x85,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0x75,0x82,0x55,0x7D,0xED,0x00, + 0xED,0x18,0x2D,0x19,0x29,0x75,0x55,0x7D,0xC1,0x79,0xED,0x00,0xEB,0x18,0x1B,0x19, + 0x59,0x75,0x51,0x7D,0x49,0x1C,0x51,0x75,0xC0,0x79,0x06,0x28,0x07,0xD0,0x0A,0x28, + 0x01,0xD0,0x12,0x28,0x01,0xD1,0x00,0x20,0x90,0x75,0x70,0xBC,0x70,0x47,0x01,0x20, + 0xFA,0xE7,0x00,0x00,0xF0,0x05,0x00,0x20,0x30,0x0A,0x00,0x20,0xFF,0xB5,0x0A,0x20, + 0x48,0x43,0x15,0x4F,0x81,0xB0,0xC5,0x19,0x48,0x00,0xFF,0x35,0x61,0x35,0xC0,0x19, + 0xC0,0x30,0x2A,0x71,0x0C,0x00,0x00,0x90,0x80,0x89,0x16,0x00,0x0A,0x21,0xFF,0xF7, + 0x2F,0xFF,0xE8,0x80,0x00,0x98,0x0A,0x21,0xC0,0x8B,0xFF,0xF7,0x29,0xFF,0x28,0x81, + 0x38,0x19,0xFF,0x30,0x01,0x30,0x00,0x7C,0xB9,0x19,0x68,0x71,0x04,0x98,0xA8,0x72, + 0x01,0x98,0x06,0x55,0x13,0x20,0x40,0x01,0x08,0x18,0x00,0x21,0xC4,0x76,0x81,0x74, + 0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xF0,0x05,0x00,0x20,0x06,0x48,0x0F,0x23, + 0x42,0x79,0x01,0x68,0x9B,0x06,0x49,0x1C,0x12,0x07,0x12,0x0A,0xD2,0x18,0x09,0x03, + 0x09,0x0B,0x0A,0x43,0x02,0x60,0x70,0x47,0xF0,0x05,0x00,0x20,0xF1,0xB5,0xB2,0x48, + 0x90,0xB0,0x0F,0x90,0x40,0x7C,0xB2,0x49,0x02,0x90,0x0F,0x98,0xC0,0x7C,0x01,0x90, + 0x0F,0x98,0x00,0x7C,0x00,0x90,0xAD,0x48,0xC9,0x88,0x00,0x8A,0x49,0x06,0x02,0xD4, + 0xA9,0x48,0x40,0x30,0x80,0x89,0x00,0x05,0x7E,0xD5,0x10,0x98,0x01,0x28,0x00,0xD0, + 0x02,0x20,0x03,0x90,0x00,0x20,0x04,0x90,0x3E,0xE1,0x03,0x98,0x81,0x00,0x01,0x20, + 0x40,0x07,0x08,0x18,0x0E,0x90,0x00,0x68,0x81,0x00,0x0D,0x90,0x0C,0x0F,0x80,0x0F, + 0xC0,0x07,0x03,0xD1,0x20,0x00,0x01,0xF0,0x7F,0xFB,0x26,0xE1,0x9D,0x48,0xA5,0x00, + 0x40,0x5F,0x00,0x28,0x84,0x46,0x0F,0xDA,0x0D,0x98,0x9A,0x49,0x80,0x01,0x80,0x0D, + 0x48,0x53,0x0D,0x98,0x6A,0x18,0x80,0x05,0x80,0x0D,0x50,0x80,0x4A,0x5B,0x24,0x31, + 0x4A,0x53,0x69,0x18,0x48,0x80,0x10,0xE1,0x02,0x9F,0x92,0x49,0x00,0x20,0x7F,0x1E, + 0x48,0x31,0x69,0x18,0x06,0xE0,0x83,0x00,0xCA,0x18,0x96,0x88,0x40,0x1C,0xCE,0x52, + 0xD3,0x88,0x53,0x80,0xB8,0x42,0xF6,0xDB,0x0D,0x98,0x62,0x46,0x80,0x01,0x80,0x0D, + 0x0C,0x90,0x80,0x1A,0x02,0x9A,0x87,0x4E,0x92,0x00,0x8B,0x18,0x20,0x3B,0x98,0x83, + 0x0D,0x98,0xAA,0x19,0x80,0x05,0x80,0x0D,0x0A,0x92,0x0B,0x90,0x52,0x88,0x80,0x1A, + 0xD8,0x83,0x00,0x20,0x06,0x00,0x02,0x00,0x07,0xE0,0x93,0x00,0xCF,0x5E,0x38,0x18, + 0xCF,0x18,0x02,0x23,0xFB,0x5E,0x9E,0x19,0x52,0x1C,0x02,0x9B,0x9A,0x42,0xF4,0xDB, + 0x19,0x00,0xFF,0xF7,0xAB,0xFD,0x07,0x00,0x02,0x99,0x30,0x00,0xFF,0xF7,0xA6,0xFD, + 0x00,0x2F,0x00,0xDC,0x7F,0x42,0x0F,0x99,0x89,0x7C,0x8F,0x42,0x17,0xDA,0x00,0x28, + 0x00,0xDC,0x40,0x42,0x88,0x42,0x12,0xDA,0x01,0x98,0x0C,0x21,0x48,0x43,0x0A,0x21, + 0xFF,0xF7,0x6E,0xFE,0x61,0x00,0x00,0xE0,0xCA,0xE0,0x6A,0x4B,0x1C,0x3B,0x5A,0x5E, + 0x90,0x42,0x0C,0xDD,0x0F,0x98,0x00,0x7D,0x10,0x18,0x58,0x52,0x07,0xE0,0x65,0x49, + 0x0F,0x9A,0x60,0x00,0x1C,0x39,0x0B,0x5A,0x52,0x7D,0x9A,0x1A,0x0A,0x52,0x61,0x49, + 0x60,0x00,0x1C,0x39,0x0A,0x5E,0x00,0x2A,0x01,0xDC,0x00,0x22,0x0A,0x52,0x08,0x5E, + 0x01,0x99,0x88,0x42,0x09,0x90,0x01,0xDB,0x05,0x20,0x28,0xE0,0x88,0x00,0x05,0x21, + 0xFF,0xF7,0x46,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x04,0x20,0x1F,0xE0,0x01,0x98, + 0x41,0x00,0x40,0x18,0x05,0x21,0xFF,0xF7,0x3B,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC, + 0x03,0x20,0x14,0xE0,0x01,0x98,0x05,0x21,0x40,0x00,0xFF,0xF7,0x31,0xFE,0x09,0x99, + 0x88,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x01,0x98,0x05,0x21,0xFF,0xF7,0x28,0xFE, + 0x09,0x99,0x88,0x42,0x01,0xDC,0x01,0x20,0x01,0xE0,0x08,0x00,0x02,0xD1,0x45,0x49, + 0x0A,0x39,0x08,0x55,0x43,0x49,0x0C,0x9A,0x24,0x31,0x48,0x5F,0x16,0x1A,0x08,0x90, + 0x68,0x18,0x02,0x21,0x07,0x90,0x41,0x5E,0x0B,0x9A,0x3E,0x48,0x57,0x1A,0x06,0x91, + 0x0F,0x99,0x0A,0x38,0x00,0x5D,0x89,0x7D,0x88,0x42,0x27,0xD3,0x00,0x2E,0x01,0xD1, + 0x00,0x24,0x0D,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42,0x00,0x99,0x88,0x42,0x01,0xDA, + 0x01,0x24,0x05,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42,0xFF,0xF7,0x1F,0xFD,0x04,0x00, + 0x00,0x2F,0x01,0xD1,0x00,0x20,0x0C,0xE0,0x38,0x1E,0x00,0xDC,0x78,0x42,0x00,0x99, + 0x88,0x42,0x01,0xDA,0x01,0x20,0x04,0xE0,0x38,0x1E,0x00,0xDC,0x78,0x42,0xFF,0xF7, + 0x0D,0xFD,0x08,0x99,0x00,0x2E,0x19,0xDB,0x09,0x19,0x18,0xE0,0x09,0x98,0x64,0x21, + 0x48,0x43,0x01,0x99,0xFF,0xF7,0x02,0xFD,0x64,0x21,0x08,0x1A,0x31,0x1E,0x05,0x90, + 0x00,0xDC,0x71,0x42,0x48,0x43,0x64,0x21,0xFF,0xF7,0xF8,0xFC,0x05,0x9A,0x04,0x00, + 0x38,0x1E,0x00,0xDC,0x78,0x42,0x50,0x43,0x64,0x21,0xE0,0xE7,0x09,0x1B,0x06,0x9A, + 0x00,0x2F,0x01,0xDB,0x10,0x18,0x00,0xE0,0x10,0x1A,0x16,0x4A,0x0C,0x9B,0x53,0x53, + 0x0A,0x9B,0x0B,0x9A,0x5A,0x80,0x13,0x4A,0x13,0x4B,0x24,0x32,0x51,0x53,0x07,0x9A, + 0x89,0x05,0x50,0x80,0x0D,0x9A,0x89,0x09,0x1A,0x40,0x0A,0x43,0x91,0x0A,0x89,0x02, + 0x80,0x05,0x80,0x0D,0x01,0x43,0x0E,0x98,0x01,0x60,0x04,0x98,0x40,0x1C,0x04,0x90, + 0x03,0x98,0x40,0x1C,0x03,0x90,0x04,0x98,0x10,0x99,0x88,0x42,0x00,0xDA,0xBC,0xE6, + 0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x78,0x00,0x00,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xCA,0x0B,0x00,0x20,0xFF,0xFF,0x00,0xFC,0x10,0x4B,0x30,0xB4, + 0x27,0x21,0xDA,0x88,0x49,0x01,0x80,0x24,0x59,0x18,0x00,0x28,0x0E,0xD0,0x0D,0x48, + 0x45,0x7B,0x8D,0x82,0xC5,0x89,0xCD,0x82,0x05,0x8A,0x0D,0x83,0x40,0x8A,0x48,0x83, + 0x08,0x48,0x20,0x30,0x00,0x89,0x22,0x43,0x88,0x83,0x06,0xE0,0x00,0x20,0x88,0x82, + 0xC8,0x82,0x08,0x83,0x48,0x83,0xA2,0x43,0x88,0x83,0xDA,0x80,0x30,0xBC,0x70,0x47, + 0xF0,0x05,0x00,0x20,0x80,0x78,0x00,0x00,0x7F,0xB5,0x24,0x4D,0x04,0x00,0x1A,0x28, + 0x0B,0xD1,0x28,0x6A,0x00,0x28,0x08,0xD1,0x68,0x6A,0x00,0x28,0x05,0xD1,0x20,0x4C, + 0x01,0xF0,0xC2,0xFE,0x64,0x1E,0xFB,0xD2,0x14,0xE0,0x05,0xF0,0xCD,0xF8,0x00,0x20, + 0x01,0xF0,0x30,0xFD,0x01,0xF0,0xAE,0xFD,0x01,0xF0,0xF6,0xFD,0x03,0xAA,0x01,0xA9, + 0x02,0xA8,0x04,0xF0,0x95,0xFA,0x03,0x00,0x01,0x9A,0x02,0x99,0x03,0x98,0x00,0x94, + 0x00,0xF0,0x30,0xF8,0x02,0x20,0x06,0xF0,0xF9,0xF8,0x02,0x20,0x06,0xF0,0xEA,0xF8, + 0x10,0x48,0xE9,0x68,0xC1,0x61,0x29,0x69,0xC1,0x61,0x0F,0x49,0xCA,0x68,0x52,0x08, + 0x52,0x00,0xCA,0x60,0x0D,0x4A,0x0E,0x49,0x02,0xE0,0xD3,0x68,0x8B,0x42,0x02,0xD8, + 0x43,0x69,0x9B,0x06,0xF9,0xD5,0x41,0x68,0x89,0x07,0xFC,0xD5,0x01,0xF0,0xA2,0xFE, + 0x01,0x20,0x00,0xF0,0x6B,0xF8,0x7F,0xBC,0x08,0xBC,0x18,0x47,0xC0,0x75,0x00,0x00, + 0xE7,0x03,0x00,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40, + 0x50,0xC3,0x00,0x00,0xFF,0xB5,0x05,0x00,0x0E,0x00,0x91,0xB0,0xFF,0xF7,0x9A,0xF9, + 0x1C,0x48,0x01,0x27,0x04,0x04,0x24,0x0C,0x7F,0x02,0x00,0x22,0x39,0x00,0x20,0x00, + 0xFF,0xF7,0x1E,0xFD,0x18,0x49,0x3A,0x00,0x20,0x00,0x00,0x23,0xFF,0xF7,0x20,0xFD, + 0x16,0x49,0x40,0x22,0x01,0xA8,0x04,0xF0,0xD8,0xF9,0x14,0x99,0x28,0x04,0x09,0x03, + 0x08,0x43,0x13,0x49,0x08,0x43,0x04,0x90,0x13,0x99,0x30,0x04,0x08,0x43,0x05,0x90, + 0x10,0x48,0x11,0x49,0xC0,0x6B,0x10,0x90,0x0C,0x48,0x80,0x69,0x40,0x1C,0x07,0x90, + 0x00,0x20,0x8D,0x42,0x09,0x90,0x02,0xD1,0x06,0x99,0x49,0x1C,0x06,0x91,0x1A,0x99, + 0x1A,0x29,0x00,0xD1,0x0A,0x90,0x01,0xA8,0x06,0xF0,0x0A,0xF9,0x15,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x7E,0x00,0x00,0x00,0x00,0x10,0x40,0xC0,0x75,0x00,0x00, + 0xAB,0x0C,0x00,0x80,0xC0,0x0F,0x00,0x20,0xEC,0x0D,0x00,0x00,0x02,0x4A,0x51,0x69, + 0x81,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x4A,0x51,0x69, + 0x01,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x78,0x47,0xC0,0x46, + 0x01,0x21,0xA0,0xE3,0x50,0x30,0x92,0xE5,0x0C,0x10,0xA0,0xE3,0x03,0x00,0x80,0xE1, + 0x50,0x00,0x82,0xE5,0x00,0x00,0x00,0xEA,0x00,0x00,0xA0,0xE1,0x01,0x10,0x51,0xE2, + 0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x01,0x48,0x40,0x69,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x01,0x48,0x80,0x6A,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x02,0x49,0x08,0x62,0x00,0x20,0x08,0x62,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x01,0x49,0x48,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x07,0x49,0xFF,0x28, + 0x04,0xD1,0x01,0x20,0xC8,0x60,0x00,0x20,0x88,0x61,0x70,0x47,0x8A,0x69,0x12,0x07, + 0x12,0x0F,0x02,0x43,0x8A,0x61,0x02,0x20,0xC8,0x60,0x70,0x47,0x40,0x00,0x00,0x40, + 0xF0,0xB5,0x00,0x20,0xF3,0xB0,0x62,0x90,0xFF,0x49,0x40,0x1E,0x5E,0x90,0xCB,0x79, + 0xFE,0x4F,0xFF,0x48,0xFA,0x88,0x54,0x06,0x00,0xD4,0xC3,0x78,0x54,0x06,0x05,0x93, + 0x0B,0x7A,0x00,0xD4,0x03,0x79,0xFB,0x4C,0xA4,0x8A,0x1B,0x19,0x1B,0x06,0x1B,0x0E, + 0x04,0x93,0x4B,0x7A,0x54,0x06,0x00,0xD4,0x43,0x79,0x52,0x06,0x03,0x93,0x89,0x7A, + 0x00,0xD4,0x81,0x79,0x00,0x20,0xF4,0x4C,0x02,0x91,0x3D,0x79,0x01,0x26,0x01,0x90, + 0x13,0xE0,0x0A,0x20,0x70,0x43,0x43,0x21,0xC0,0x19,0xC9,0x00,0x09,0x5C,0x00,0x29, + 0x0A,0xD0,0xEE,0x49,0x40,0x18,0x02,0xF0,0xBB,0xFE,0x00,0x28,0x04,0xD0,0x01,0x98, + 0x40,0x1C,0x00,0x06,0x00,0x0E,0x01,0x90,0x76,0x1C,0xA0,0x78,0xB0,0x42,0xE8,0xDA, + 0xE7,0x48,0x72,0x90,0xC2,0x8A,0x41,0x8B,0x50,0x1A,0x00,0x28,0x00,0xDC,0x88,0x1A, + 0x03,0x04,0x72,0x98,0x72,0x99,0x00,0x8B,0x89,0x8B,0x1B,0x0C,0x42,0x1A,0x00,0x2A, + 0x00,0xDC,0x0A,0x1A,0x10,0x04,0x72,0x9A,0x00,0x21,0x91,0x74,0x72,0x9A,0x00,0x0C, + 0xD1,0x74,0x72,0x9A,0x11,0x75,0x01,0x99,0x00,0x29,0x10,0xD0,0x1E,0x2B,0x0E,0xD2, + 0x32,0x28,0x03,0xD2,0x72,0x98,0x01,0x21,0x81,0x74,0x08,0xE0,0x64,0x28,0x03,0xD2, + 0x72,0x99,0x01,0x20,0xC8,0x74,0x02,0xE0,0x72,0x98,0x01,0x21,0x01,0x75,0x72,0x98, + 0x40,0x7C,0x00,0x28,0x16,0xD1,0x72,0x98,0x80,0x7C,0x00,0x28,0x02,0xD0,0x05,0x98, + 0x80,0x1C,0x0C,0xE0,0x72,0x98,0xC0,0x7C,0x00,0x28,0x02,0xD0,0x05,0x98,0x00,0x1D, + 0x05,0xE0,0x72,0x98,0x00,0x7D,0x00,0x28,0x04,0xD0,0x05,0x98,0x80,0x1D,0x00,0x06, + 0x00,0x0E,0x05,0x90,0x09,0x22,0x00,0x21,0x5B,0xA8,0x04,0xF0,0xD1,0xF8,0xF8,0x88, + 0xFF,0x21,0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06,0x05,0xD5,0x01,0xF0,0xAE,0xF8, + 0x73,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xE0,0x78,0x00,0x28,0x01,0xD0,0x40,0x1E, + 0xE0,0x70,0x60,0x78,0x00,0x2D,0x02,0xD1,0x00,0x28,0x18,0xD0,0x18,0xE0,0x00,0x28, + 0x16,0xD1,0xB1,0x48,0x5A,0x22,0x00,0x21,0x5E,0x30,0x04,0xF0,0xB1,0xF8,0xE0,0x78, + 0x00,0x28,0x0C,0xD1,0x01,0x26,0x07,0xE0,0x31,0x06,0x09,0x0E,0x0A,0x00,0x14,0x23, + 0x5B,0xA8,0xFF,0xF7,0x7B,0xFC,0x76,0x1C,0xAE,0x42,0xF5,0xDD,0x25,0x70,0xE6,0xE1, + 0x09,0x22,0x01,0x21,0x58,0xA8,0x04,0xF0,0x9B,0xF8,0x02,0x20,0xA3,0x49,0x06,0x90, + 0x9E,0x48,0x5D,0x31,0x41,0x18,0x71,0x91,0xA0,0x49,0x54,0x31,0x40,0x18,0x70,0x90, + 0x13,0xE1,0x08,0x26,0x07,0xAF,0x24,0x20,0x70,0x43,0x07,0xA9,0x40,0x18,0x00,0x21, + 0x24,0x22,0xC9,0x43,0x04,0xF0,0x84,0xF8,0x76,0x1E,0xF4,0xD5,0x06,0x98,0x01,0xF0, + 0x47,0xFC,0x01,0x27,0x5F,0x90,0x53,0xE0,0x5F,0x98,0x01,0x26,0x60,0x90,0x4B,0xE0, + 0x0A,0x20,0x70,0x43,0x8D,0x49,0x40,0x18,0x01,0x00,0xFF,0x30,0xFF,0x30,0x02,0x30, + 0x6F,0x90,0x00,0x7E,0x00,0x28,0x3E,0xD0,0x8C,0x48,0x08,0x18,0x6E,0x90,0x02,0xF0, + 0xF7,0xFD,0x06,0x99,0x08,0x43,0x07,0xD0,0x6E,0x98,0x02,0xF0,0xF1,0xFD,0x00,0x28, + 0x31,0xD0,0x06,0x98,0x00,0x28,0x2E,0xD0,0x80,0x49,0x78,0x00,0x40,0x18,0xC0,0x30, + 0x6D,0x90,0x80,0x89,0x0A,0x21,0xFF,0xF7,0x6B,0xFB,0x6F,0x99,0x49,0x8B,0x0A,0x1A, + 0x00,0x2A,0x00,0xDC,0x42,0x1A,0x6D,0x98,0x61,0x92,0xC0,0x8B,0x0A,0x21,0xFF,0xF7, + 0x5F,0xFB,0x6F,0x99,0x89,0x8B,0x0A,0x1A,0x00,0x2A,0x00,0xDC,0x42,0x1A,0x61,0x98, + 0x01,0x00,0x41,0x43,0x10,0x00,0x50,0x43,0x08,0x18,0x60,0x99,0x88,0x42,0x04,0xDA, + 0x24,0x21,0x79,0x43,0x07,0xAA,0x56,0x50,0x60,0x90,0x24,0x21,0x79,0x43,0x07,0xAA, + 0x89,0x18,0xB2,0x00,0x88,0x50,0x76,0x1C,0xA0,0x78,0xB0,0x42,0xB0,0xDA,0x7F,0x1C, + 0xAF,0x42,0xA9,0xDD,0x01,0x20,0xA4,0xE0,0x01,0x23,0x5F,0x9A,0x18,0x00,0x15,0xE0, + 0x5B,0xA9,0x09,0x5C,0x00,0x29,0x10,0xD1,0x24,0x21,0x41,0x43,0x0F,0x00,0x07,0xAE, + 0x89,0x19,0xF6,0x59,0xB7,0x00,0xC9,0x59,0x91,0x42,0x06,0xDA,0x00,0x29,0x04,0xDB, + 0x00,0x2E,0x02,0xDB,0x0A,0x00,0x00,0x23,0x5E,0x90,0x40,0x1C,0xA8,0x42,0xE7,0xDD, + 0x00,0x2B,0x7E,0xD1,0x62,0x98,0x5E,0x9E,0x40,0x1C,0x62,0x90,0x24,0x20,0x46,0x43, + 0x07,0xA8,0x80,0x59,0x0A,0x21,0x48,0x43,0x50,0x49,0x0A,0x22,0x41,0x18,0x5E,0x98, + 0xFF,0x31,0x50,0x43,0x4D,0x4A,0xBF,0x31,0x87,0x18,0x38,0x00,0xFF,0x30,0x65,0x30, + 0x0A,0x22,0x03,0xF0,0xD1,0xFF,0x5E,0x98,0x48,0x49,0x40,0x00,0x40,0x18,0xC0,0x30, + 0x6C,0x90,0x80,0x89,0x0A,0x21,0xFF,0xF7,0xFB,0xFA,0xFF,0x37,0x61,0x37,0xF8,0x80, + 0x6C,0x98,0x0A,0x21,0xC0,0x8B,0xFF,0xF7,0xF3,0xFA,0x38,0x81,0x3F,0x48,0x5E,0x99, + 0x40,0x18,0xFF,0x30,0x01,0x30,0x00,0x7C,0x78,0x71,0xB8,0x7A,0x05,0x99,0x49,0x1C, + 0x88,0x42,0x01,0xD2,0x40,0x1C,0xB8,0x72,0xB8,0x7A,0x13,0x28,0x6B,0x90,0x09,0xD9, + 0x14,0x21,0xFF,0xF7,0xDD,0xFA,0x04,0x99,0x89,0x1C,0x88,0x42,0x02,0xD2,0x6B,0x98, + 0x14,0x30,0xB8,0x72,0x38,0x79,0x5E,0x9A,0x5B,0xA9,0x88,0x54,0x71,0x9A,0x5E,0x99, + 0x81,0x54,0x39,0x79,0x70,0x9A,0x00,0x20,0x88,0x54,0x07,0xA9,0x89,0x59,0x58,0xAA, + 0x50,0x54,0x01,0x21,0x23,0xE0,0x08,0x00,0x24,0x23,0x58,0x43,0x07,0xAB,0x6A,0x90, + 0xC0,0x18,0x69,0x90,0x9B,0x59,0x00,0x22,0xD2,0x43,0x9B,0x00,0xC2,0x50,0x5B,0xA8, + 0x40,0x5C,0x5F,0x9B,0x00,0x28,0x11,0xD1,0xA2,0x78,0x01,0x20,0x94,0x46,0x0B,0xE0, + 0x69,0x9A,0x87,0x00,0xD2,0x59,0x00,0x2A,0x05,0xDB,0x9A,0x42,0x07,0xAF,0x02,0xDA, + 0x6A,0x9B,0xF8,0x50,0x13,0x00,0x40,0x1C,0x84,0x45,0xF1,0xDA,0x49,0x1C,0xA9,0x42, + 0x00,0xE0,0x04,0xE0,0xD7,0xDD,0xA0,0x78,0x62,0x99,0x88,0x42,0x05,0xDD,0x64,0x98, + 0x40,0x1C,0xA8,0x42,0x64,0x90,0x00,0xDC,0x56,0xE7,0x06,0x98,0x41,0x1E,0x09,0x06, + 0x09,0x0E,0x00,0x28,0x06,0x91,0x00,0xD0,0xE3,0xE6,0x01,0x26,0x65,0x96,0x63,0x90, + 0x6F,0xE0,0x58,0xA8,0x80,0x5D,0x00,0x28,0x6A,0xD0,0x65,0x98,0x07,0x49,0x2F,0x18, + 0x0A,0x20,0x70,0x43,0x40,0x18,0x68,0x90,0xFF,0x30,0xFF,0x30,0x02,0x30,0x67,0x90, + 0x00,0x7E,0x70,0x99,0x40,0x5C,0x0D,0xE0,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x60,0x79,0x00,0x00,0xD0,0x0A,0x00,0x20,0x50,0x07,0x00,0x20,0x1E,0x02,0x00,0x00, + 0x70,0x08,0x00,0x20,0x03,0x99,0x88,0x42,0x34,0xD2,0x08,0x2F,0x32,0xDC,0x4C,0x49, + 0x68,0x98,0x40,0x18,0x02,0xF0,0xD4,0xFC,0x00,0x28,0x2B,0xD0,0x67,0x98,0x70,0x99, + 0x00,0x7E,0x70,0x9A,0x47,0x4B,0x41,0x5C,0x49,0x1C,0x81,0x54,0x68,0x98,0x43,0x21, + 0xC9,0x00,0x41,0x18,0x0A,0x20,0x78,0x43,0xC0,0x18,0x66,0x90,0xFF,0x30,0x65,0x30, + 0x0A,0x22,0x03,0xF0,0x11,0xFF,0x68,0x99,0x66,0x98,0xFF,0x31,0xC1,0x31,0x4A,0x79, + 0xFF,0x30,0x61,0x30,0xC2,0x72,0x89,0x79,0x01,0x73,0x67,0x98,0x5B,0xA9,0x00,0x7E, + 0xC8,0x55,0x71,0x99,0x47,0x54,0x65,0x98,0x40,0x1C,0x65,0x90,0x63,0x98,0x40,0x1C, + 0x63,0x90,0x15,0xE0,0x32,0x49,0x68,0x98,0x32,0x4F,0x40,0x18,0x02,0xF0,0xA0,0xFC, + 0x00,0x28,0x0D,0xD0,0x72,0x99,0x01,0x20,0x08,0x74,0x67,0x98,0x80,0x7F,0x13,0x28, + 0x06,0xD9,0x60,0x78,0x01,0x28,0x03,0xD1,0xF8,0x88,0x04,0x21,0x08,0x43,0xF8,0x80, + 0x76,0x1C,0xA0,0x78,0xB0,0x42,0x8C,0xDA,0x26,0x48,0xC0,0x88,0x41,0x07,0x05,0xD5, + 0x02,0x99,0x04,0x22,0xE1,0x70,0x23,0x49,0x90,0x43,0xC8,0x80,0x01,0x26,0x31,0xE0, + 0x5B,0xA8,0x80,0x5D,0x00,0x28,0x1A,0xD1,0x13,0x22,0x01,0x20,0x52,0x01,0x05,0x23, + 0xDB,0x01,0x1C,0x49,0x09,0x18,0x8F,0x18,0xFF,0x7E,0x00,0x2F,0x0C,0xD1,0xC9,0x18, + 0x09,0x79,0x00,0x29,0x08,0xD1,0x02,0x06,0x31,0x06,0x12,0x0E,0x09,0x0E,0x01,0x23, + 0x5B,0xA8,0xFF,0xF7,0xAB,0xFA,0x02,0xE0,0x40,0x1C,0x09,0x28,0xE9,0xDB,0xE0,0x78, + 0x00,0x28,0x0E,0xD0,0x0A,0x20,0x70,0x43,0x0E,0x49,0x47,0x18,0x38,0x00,0xFF,0x30, + 0x6B,0x30,0x02,0xF0,0x55,0xFC,0x00,0x28,0x03,0xD1,0x01,0x20,0xFF,0x37,0x61,0x37, + 0xB8,0x72,0x76,0x1C,0xAE,0x42,0xCB,0xDD,0x63,0x98,0x28,0x18,0x20,0x70,0x20,0x78, + 0x05,0x49,0x5A,0x22,0xA0,0x70,0x08,0x00,0xB4,0x30,0x03,0xF0,0x95,0xFE,0xE7,0xE5, + 0x1E,0x02,0x00,0x00,0xF0,0x05,0x00,0x20,0x54,0x07,0x00,0x20,0xF1,0xB5,0x3C,0x48, + 0x86,0xB0,0x05,0x90,0x00,0x20,0x04,0x90,0x3A,0x48,0x41,0x7F,0x01,0x91,0x01,0x00, + 0x20,0x39,0x49,0x7F,0x00,0x91,0x00,0x21,0x02,0x91,0x01,0x7D,0x00,0x20,0xC0,0x43, + 0x00,0x29,0x06,0x99,0x03,0xD1,0x00,0x29,0x03,0xD1,0x01,0x20,0x01,0xE0,0x00,0x29, + 0xFB,0xD1,0x03,0x90,0x01,0xF0,0x98,0xF9,0x01,0xF0,0x46,0xFA,0x00,0x24,0x27,0x00, + 0x37,0xE0,0x00,0x26,0x30,0xE0,0x31,0x00,0x38,0x00,0x02,0xF0,0x29,0xF9,0x00,0x28, + 0x28,0xD0,0x29,0x78,0x05,0x9A,0x79,0x43,0x89,0x19,0x89,0x00,0x51,0x58,0x09,0x05, + 0x09,0x0D,0x0D,0x1A,0x06,0x98,0x00,0x28,0x0D,0xD0,0x00,0x2D,0x1A,0xDA,0x03,0x9A, + 0x31,0x00,0x38,0x00,0x05,0xF0,0x7E,0xFB,0x40,0x1C,0x14,0xD1,0x00,0x98,0x28,0x18, + 0x10,0xD5,0x02,0x20,0x0D,0xE0,0x00,0x2D,0x0C,0xDD,0x03,0x9A,0x31,0x00,0x38,0x00, + 0x05,0xF0,0x70,0xFB,0x40,0x1C,0x06,0xD1,0x01,0x98,0x28,0x1A,0x00,0x28,0x01,0xDD, + 0x03,0x20,0x04,0x90,0x64,0x1C,0x76,0x1C,0x13,0x4D,0x28,0x78,0x86,0x42,0xCA,0xD3, + 0x7F,0x1C,0x12,0x48,0x00,0x78,0x87,0x42,0xC3,0xD3,0x10,0x48,0x0E,0x49,0x00,0x78, + 0x09,0x78,0x48,0x43,0xA0,0x42,0x04,0xD1,0x04,0x98,0x07,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x02,0x98,0x41,0x1C,0x02,0x91,0x01,0x21,0x49,0x02,0x88,0x42,0xA9,0xD9, + 0x06,0x98,0x00,0x28,0x01,0xD0,0x02,0x20,0x00,0xE0,0x03,0x20,0x04,0x90,0xEC,0xE7, + 0x00,0x02,0x10,0x40,0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0xF0,0xB5,0x8A,0x4A,0xFF,0xB0,0x88,0xB0,0x40,0x18,0x85,0x92,0x42,0x00,0x80,0x18, + 0x84,0x90,0x48,0x42,0x83,0x90,0x86,0x48,0x86,0x4E,0x00,0x7A,0x02,0xAF,0x82,0x90, + 0x85,0x48,0x86,0x90,0x00,0x7D,0x00,0x28,0x02,0xD1,0x83,0x98,0x40,0x42,0x83,0x90, + 0x01,0x22,0x52,0x02,0x00,0x21,0x30,0x00,0x03,0xF0,0x12,0xFE,0x00,0x25,0x39,0xE0, + 0x00,0x24,0x32,0xE0,0x7C,0x48,0x20,0x38,0x01,0x7D,0xC9,0x07,0x15,0xD0,0x7B,0x49, + 0x09,0x78,0x00,0x29,0x82,0x99,0x16,0xD0,0x8D,0x42,0x0E,0xD1,0x81,0x7D,0xA1,0x42, + 0x0B,0xD0,0xC1,0x7D,0xA1,0x42,0x08,0xD0,0x01,0x7E,0xA1,0x42,0x05,0xD0,0x41,0x7E, + 0xA1,0x42,0x02,0xD0,0x80,0x7E,0xA0,0x42,0x16,0xD1,0x83,0x9A,0x21,0x00,0x28,0x00, + 0x05,0xF0,0xF8,0xFA,0x10,0xE0,0x8C,0x42,0xF7,0xD1,0x81,0x7D,0xA9,0x42,0xF4,0xD0, + 0xC1,0x7D,0xA9,0x42,0xF1,0xD0,0x01,0x7E,0xA9,0x42,0xEE,0xD0,0x41,0x7E,0xA9,0x42, + 0xEB,0xD0,0x80,0x7E,0xA8,0x42,0xE8,0xD0,0x64,0x1C,0x65,0x48,0x00,0x78,0x84,0x42, + 0xC8,0xD3,0x6D,0x1C,0x63,0x4C,0x20,0x78,0x85,0x42,0xC1,0xD3,0x01,0xF0,0xD4,0xF8, + 0x01,0xF0,0x82,0xF9,0x00,0x25,0x2A,0xE0,0x00,0x24,0x23,0xE0,0x21,0x00,0x28,0x00, + 0x02,0xF0,0x66,0xF8,0x00,0x28,0x12,0xD0,0x59,0x49,0x85,0x9B,0x09,0x78,0x69,0x43, + 0x0A,0x19,0x91,0x00,0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D,0x1B,0x0C,0xCB,0x1A, + 0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0,0x40,0x1A,0x51,0x00,0x70,0x52,0x21,0x00, + 0x28,0x00,0x02,0xF0,0xD3,0xF8,0x4E,0x49,0x09,0x78,0x69,0x43,0x09,0x19,0x49,0x00, + 0x64,0x1C,0x78,0x52,0x4A,0x48,0x00,0x78,0x84,0x42,0xD7,0xD3,0x6D,0x1C,0x49,0x48, + 0x01,0x78,0x8D,0x42,0xD0,0xD3,0x00,0x21,0x01,0x91,0x01,0xF0,0x4D,0xF9,0x00,0x25, + 0x51,0xE0,0x00,0x24,0x4A,0xE0,0x21,0x00,0x28,0x00,0x02,0xF0,0x31,0xF8,0x00,0x28, + 0x43,0xD0,0x3F,0x49,0x85,0x9B,0x09,0x78,0x69,0x43,0x09,0x19,0x8A,0x00,0x9A,0x58, + 0x03,0x04,0x12,0x05,0x12,0x0D,0x1B,0x0C,0xD3,0x1A,0x00,0x2B,0x01,0xDD,0x10,0x1A, + 0x00,0xE0,0x80,0x1A,0x49,0x00,0x73,0x5A,0x00,0x04,0x00,0x0C,0x83,0x42,0x0A,0xD9, + 0x70,0x52,0x21,0x00,0x28,0x00,0x02,0xF0,0x99,0xF8,0x31,0x49,0x09,0x78,0x69,0x43, + 0x09,0x19,0x49,0x00,0x78,0x52,0x01,0x98,0x03,0x21,0xFF,0xF7,0x79,0xF8,0x00,0x29, + 0x01,0xD0,0x02,0x29,0x0D,0xD1,0x86,0x98,0x00,0x7D,0x00,0x28,0x02,0xD1,0x00,0x22, + 0x43,0x1E,0x01,0xE0,0x01,0x22,0x00,0x23,0x21,0x00,0x28,0x00,0x05,0xF0,0x34,0xFA, + 0x0B,0xE0,0x00,0x22,0xD2,0x43,0x00,0x23,0x21,0x00,0x28,0x00,0x05,0xF0,0x2C,0xFA, + 0x00,0x28,0x02,0xD1,0x00,0x22,0x01,0x23,0xEE,0xE7,0x64,0x1C,0x1C,0x48,0x00,0x78, + 0x84,0x42,0xB0,0xD3,0x6D,0x1C,0x1B,0x48,0x00,0x78,0x85,0x42,0xA9,0xD3,0x01,0x98, + 0x40,0x1C,0x01,0x90,0x84,0x98,0x40,0x1E,0x84,0x90,0x1B,0xD2,0x14,0x4E,0x00,0x25, + 0x0E,0xE0,0x00,0x24,0x08,0xE0,0x68,0x43,0x00,0x19,0x40,0x00,0x3A,0x5A,0x21,0x00, + 0x28,0x00,0x05,0xF0,0x29,0xFA,0x64,0x1C,0x30,0x78,0x84,0x42,0xF3,0xD3,0x6D,0x1C, + 0x0C,0x48,0x00,0x78,0x85,0x42,0xEC,0xD3,0x7F,0xB0,0x08,0xB0,0xF0,0xBC,0x08,0xBC, + 0x00,0x20,0x18,0x47,0x01,0xF0,0x20,0xF8,0x7F,0xE7,0x00,0x00,0x00,0x02,0x10,0x40, + 0x70,0x0A,0x00,0x20,0x40,0x00,0x00,0x20,0x20,0x78,0x00,0x00,0xFD,0x0A,0x00,0x20, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xF8,0xB5,0x01,0x22,0x52,0x07,0x10,0x68, + 0x01,0x28,0x03,0xD0,0x10,0x68,0x01,0x28,0x43,0xD9,0x02,0x20,0x86,0x46,0x22,0x48, + 0x00,0x90,0x80,0x7A,0x00,0x28,0x3C,0xD0,0x00,0x21,0x13,0x25,0x1F,0x4F,0xAD,0x01, + 0x32,0xE0,0x72,0x46,0x8A,0x18,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F, + 0xC0,0x07,0x28,0xD1,0x00,0x9C,0x93,0x00,0xA6,0x7A,0x1B,0x0F,0x21,0xE0,0x84,0x00, + 0xE4,0x19,0x64,0x19,0xE4,0x68,0xA4,0x00,0x24,0x0F,0xA3,0x42,0x18,0xD1,0x80,0x00, + 0xC0,0x19,0x40,0x19,0xC0,0x68,0x92,0x0A,0x83,0x05,0x92,0x02,0x9B,0x0D,0x1A,0x43, + 0x0F,0x4B,0x1A,0x40,0x83,0x01,0x9B,0x0D,0x1B,0x04,0x1A,0x43,0x3F,0x23,0x9B,0x02, + 0x00,0x04,0x80,0x0E,0x9A,0x43,0x80,0x02,0x02,0x43,0x60,0x46,0x02,0x60,0x02,0xE0, + 0x40,0x1C,0x86,0x42,0xDB,0xD8,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42, + 0xC7,0xD8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20, + 0xFF,0xFF,0x00,0xFC,0xFC,0xB5,0x04,0x00,0x5E,0x48,0x8E,0x46,0x02,0x8C,0x5E,0x49, + 0x40,0x8C,0x01,0x91,0xCB,0x88,0x40,0x39,0x00,0x91,0x89,0x7E,0x00,0x25,0x2F,0x00, + 0xC9,0x07,0x01,0x26,0x00,0x29,0xAC,0x46,0x01,0xD1,0xE6,0x71,0xA6,0xE0,0x01,0x99, + 0x09,0x79,0x00,0x29,0x0D,0xD0,0x01,0x29,0x0F,0xD0,0x02,0x29,0x07,0xD0,0x03,0x29, + 0xF4,0xD1,0x17,0x00,0xD1,0x18,0x0A,0x04,0x12,0x0C,0x03,0x00,0x05,0xE0,0x1A,0x00, + 0xFB,0xE7,0x84,0x46,0xC0,0x18,0x03,0x04,0x1B,0x0C,0x60,0x88,0xA1,0x88,0x87,0x42, + 0x58,0xDC,0x82,0x42,0x56,0xDB,0x8C,0x45,0x54,0xDC,0x8B,0x42,0x52,0xDB,0x01,0x25, + 0x72,0x46,0x00,0x2A,0x77,0xD0,0x06,0x27,0x01,0x2A,0x0E,0xD0,0x09,0x23,0x02,0x2A, + 0x17,0xD0,0x03,0x2A,0x71,0xD1,0xE2,0x79,0xD7,0x07,0x28,0xD0,0x01,0x2A,0x01,0xD0, + 0x05,0x2A,0x22,0xD1,0x00,0x25,0xE3,0x71,0x67,0xE0,0x00,0x9A,0x92,0x7D,0x00,0x2A, + 0x63,0xD1,0x00,0xF0,0x87,0xF8,0x06,0x00,0x0F,0xD1,0x02,0x20,0xE0,0x71,0x26,0x72, + 0x5B,0xE0,0xE2,0x79,0xD6,0x07,0xE9,0xD1,0x92,0x07,0x56,0xD5,0x00,0xF0,0x7A,0xF8, + 0x06,0x00,0x08,0xD0,0x20,0x7A,0x00,0x28,0x05,0xD1,0x31,0x00,0x20,0x00,0xE7,0x71, + 0xFE,0xF7,0xE2,0xFF,0xEB,0xE7,0x02,0x20,0x46,0xE0,0x11,0x20,0x44,0xE0,0x92,0x07, + 0x43,0xD5,0x00,0xF0,0x67,0xF8,0x21,0x7A,0x00,0x28,0x0A,0xD0,0x00,0x29,0x0C,0xD0, + 0x81,0x42,0x08,0xD1,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0xCD,0xFF,0xA6,0x71, + 0x05,0xE0,0x00,0x29,0x01,0xD0,0x12,0x20,0xF5,0xE7,0x02,0x20,0xE0,0x71,0x00,0x20, + 0x20,0x72,0x2A,0xE0,0x70,0x46,0x00,0x28,0x25,0xD0,0x01,0x28,0x06,0xD0,0x02,0x28, + 0x06,0xD0,0x03,0x28,0x21,0xD1,0xE0,0x79,0x80,0x07,0x0E,0xD4,0xE6,0x71,0x1C,0xE0, + 0xE0,0x79,0x80,0x07,0xFA,0xD5,0x21,0x7A,0x00,0x29,0x04,0xD0,0x12,0x20,0xE0,0x71, + 0x20,0x00,0xFE,0xF7,0xA9,0xFF,0xE6,0x71,0x09,0xE0,0x02,0x20,0xE0,0x71,0x21,0x7A, + 0x00,0x29,0x04,0xD0,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0x9D,0xFF,0x01,0x25, + 0xA6,0x71,0x02,0xE0,0xFF,0xE7,0x00,0x20,0xE0,0x71,0x08,0x49,0xC8,0x88,0x82,0x07, + 0x04,0xD1,0xE2,0x79,0x92,0x07,0x92,0x0F,0x10,0x43,0xC8,0x80,0x28,0x00,0xFC,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0x70,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20, + 0x06,0x48,0x40,0x8B,0x00,0x28,0x06,0xD0,0x05,0x48,0xC0,0x88,0x00,0x06,0x80,0x0F, + 0x01,0xD0,0x00,0x20,0x70,0x47,0x01,0x20,0x70,0x47,0x00,0x00,0xA0,0x78,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xF0,0xB4,0x18,0x4B,0x05,0x00,0xDE,0x7E,0x00,0x22,0x10,0x00, + 0x00,0x2E,0x26,0xD0,0x1B,0x7D,0x00,0x2B,0x23,0xD1,0x20,0xE0,0x13,0x4B,0xD4,0x00, + 0xE3,0x18,0x11,0x24,0xA4,0x01,0x1C,0x19,0x1C,0x27,0xE7,0x5F,0xAF,0x42,0x11,0xDC, + 0x23,0x27,0x7F,0x01,0xDB,0x19,0x00,0x27,0xDF,0x5F,0xAF,0x42,0x0A,0xDB,0x1E,0x27, + 0xE7,0x5F,0x8F,0x42,0x06,0xDC,0x02,0x24,0x1C,0x5F,0x8C,0x42,0x02,0xDB,0x50,0x1C, + 0x00,0x06,0x00,0x0E,0x00,0x28,0x04,0xD1,0x52,0x1C,0x12,0x06,0x12,0x0E,0x96,0x42, + 0xDC,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00,0x30,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20, + 0xF0,0xB5,0x00,0x20,0x8F,0xB0,0x0A,0x90,0x09,0x90,0xC7,0x48,0xC7,0x4A,0x01,0x8A, + 0xD0,0x88,0x43,0x06,0x02,0xD4,0xC4,0x49,0xC0,0x39,0x89,0x89,0xC2,0x4D,0xC4,0x4E, + 0x60,0x35,0x08,0x91,0xE9,0x7B,0x43,0x06,0x00,0xD4,0xF1,0x7A,0x43,0x06,0x07,0x91, + 0xA9,0x7B,0x00,0xD4,0xB1,0x7A,0x43,0x06,0x06,0x91,0x69,0x7C,0x00,0xD4,0x71,0x7B, + 0x43,0x06,0x05,0x91,0xA9,0x79,0x00,0xD4,0xB1,0x78,0x02,0x07,0x04,0x91,0xB7,0x49, + 0x09,0x79,0x05,0xD5,0xB5,0x4A,0x00,0x29,0x02,0xD1,0x08,0x23,0x98,0x43,0xD0,0x80, + 0xB4,0x48,0x18,0x22,0x82,0x5E,0xFF,0x23,0x01,0x33,0x28,0x2A,0x03,0xDD,0x1A,0x22, + 0x82,0x5E,0x1E,0x2A,0x03,0xDC,0x1C,0x22,0x82,0x5E,0x28,0x2A,0x05,0xDD,0xAB,0x4A, + 0xD4,0x88,0x1C,0x43,0xD4,0x80,0x00,0x22,0x04,0xE0,0x1E,0x22,0x82,0x5E,0x00,0x2A, + 0x02,0xD0,0x52,0x1E,0xC2,0x83,0x03,0xE0,0xA4,0x48,0xC2,0x88,0x9A,0x43,0xC2,0x80, + 0x08,0x98,0x80,0x04,0x77,0xD5,0xA3,0x4A,0x00,0x20,0x20,0x32,0x52,0x78,0x00,0x2A, + 0x02,0xD1,0x00,0x29,0x00,0xD1,0x01,0x20,0x00,0x90,0x00,0xF0,0x41,0xF9,0x9B,0x48, + 0x9D,0x4C,0x00,0x79,0x01,0x28,0x0E,0x90,0x66,0xD1,0x98,0x4B,0x19,0x89,0x0D,0x91, + 0xDF,0x88,0x6A,0x89,0x7B,0x06,0x00,0xD4,0xF2,0x88,0x91,0x42,0x00,0xD3,0x00,0x20, + 0x03,0x90,0x0D,0x98,0x0A,0x22,0x0E,0x21,0x50,0x43,0x61,0x5E,0x0C,0x91,0xFE,0xF7, + 0x65,0xFD,0x29,0x78,0x91,0x4B,0x7A,0x06,0x0B,0x93,0x00,0xD4,0x19,0x7F,0x88,0x42, + 0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x02,0x90,0x0C,0x99,0x0D,0x98,0x40,0x1A, + 0x0A,0x21,0xFE,0xF7,0x53,0xFD,0x69,0x78,0x7A,0x06,0x01,0xD4,0x0B,0x99,0x49,0x7F, + 0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x01,0x90,0x22,0x89,0xA9,0x78, + 0x01,0x20,0x7B,0x06,0x01,0xD4,0x0B,0x99,0x89,0x7F,0x8A,0x42,0x00,0xD8,0x00,0x20, + 0xE9,0x78,0x84,0x46,0x22,0x69,0x01,0x20,0x7B,0x06,0x01,0xD4,0x0B,0x99,0xC9,0x7F, + 0x8A,0x42,0x00,0xDB,0x00,0x20,0x03,0x99,0x00,0x29,0x1D,0xD0,0x02,0x99,0x00,0x29, + 0x1A,0xD0,0x01,0x99,0x00,0x29,0x17,0xD0,0x61,0x46,0x00,0x29,0x14,0xD0,0x71,0x4A, + 0x01,0x21,0x80,0x3A,0x52,0x68,0x00,0x2A,0x00,0xD0,0x00,0x21,0x01,0x42,0x0B,0xD0, + 0x60,0x7B,0x00,0x28,0x22,0xD0,0x69,0x7A,0x7A,0x06,0x00,0xD4,0x71,0x79,0x88,0x42, + 0x1C,0xD8,0x40,0x1E,0x19,0xE0,0x37,0xE0,0x64,0x49,0x28,0x79,0xC9,0x88,0x22,0x69, + 0x4B,0x06,0x00,0xD4,0x30,0x78,0x82,0x42,0x10,0xDB,0x0E,0x98,0x00,0x28,0x0D,0xD0, + 0xC8,0x06,0x0B,0xD4,0x60,0x7B,0xEA,0x79,0x49,0x06,0x00,0xD4,0xF2,0x78,0x90,0x42, + 0x04,0xD2,0x04,0x99,0x88,0x42,0x01,0xD9,0x40,0x1C,0x60,0x73,0x60,0x7B,0x04,0x99, + 0x10,0x22,0x88,0x42,0x0D,0xD8,0x00,0x98,0x00,0x28,0x0A,0xD1,0x53,0x49,0xC8,0x88, + 0x10,0x43,0xC8,0x80,0xC9,0x88,0x28,0x7A,0x49,0x06,0x00,0xD4,0x30,0x79,0x20,0x73, + 0x0D,0xE0,0x4E,0x4B,0xD8,0x88,0xC1,0x06,0x09,0xD5,0x21,0x7B,0x00,0x29,0x04,0xD1, + 0x90,0x43,0xD8,0x80,0x70,0x78,0x60,0x73,0x01,0xE0,0x49,0x1E,0x21,0x73,0x47,0x4F, + 0x38,0x79,0x00,0x28,0x7E,0xD0,0xF8,0x88,0x80,0x06,0x05,0xD5,0x05,0x99,0x06,0x98, + 0x40,0x1A,0x00,0x06,0x00,0x0E,0x06,0x90,0x01,0x22,0x50,0x00,0xC0,0x19,0x84,0x46, + 0xFF,0x30,0x41,0x30,0xC0,0x88,0x00,0x28,0x65,0xD0,0x07,0x99,0x88,0x42,0x09,0xD9, + 0x08,0x98,0x80,0x07,0x5F,0xD5,0x00,0x20,0x38,0x71,0xF8,0x88,0x08,0x21,0x08,0x43, + 0xF8,0x80,0x58,0xE0,0x06,0x99,0x88,0x42,0x55,0xD3,0x08,0x98,0x40,0x07,0x52,0xD5, + 0x00,0x24,0x01,0x20,0x27,0xE0,0xFF,0x23,0x39,0x18,0x3E,0x33,0x5B,0x5C,0x93,0x42, + 0x20,0xD1,0x64,0x1C,0xFF,0x31,0x01,0x31,0x09,0x7C,0x0A,0x91,0x01,0x00,0x12,0xE0, + 0x4B,0x00,0xDD,0x19,0x2B,0x00,0xC0,0x33,0xDE,0x89,0xE0,0x35,0x9E,0x81,0x2D,0x88, + 0xDD,0x83,0x7B,0x18,0xDD,0x1D,0xF9,0x35,0x6E,0x7C,0xFF,0x33,0x21,0x33,0x2E,0x74, + 0x9E,0x7F,0x49,0x1C,0x5E,0x77,0x3B,0x79,0x8B,0x42,0xE9,0xDA,0x39,0x79,0x49,0x1E, + 0x40,0x1E,0x39,0x71,0x40,0x1C,0x39,0x79,0x81,0x42,0xD4,0xDA,0x00,0x2C,0x22,0xDD, + 0x01,0x2C,0x05,0xDD,0x01,0x20,0x09,0x90,0xF8,0x88,0x20,0x21,0x08,0x43,0xF8,0x80, + 0x60,0x46,0xFF,0x30,0x01,0x30,0xC1,0x8B,0x38,0x79,0x40,0x1C,0x00,0x06,0x00,0x0E, + 0x38,0x71,0x40,0x00,0xC0,0x19,0xC0,0x30,0x81,0x81,0x60,0x46,0xFF,0x30,0x21,0x30, + 0xC1,0x89,0x38,0x79,0x40,0x00,0xC0,0x19,0xC0,0x30,0xC1,0x83,0x3B,0x79,0x0D,0x49, + 0x0A,0x98,0x30,0x39,0x58,0x54,0x52,0x1C,0x08,0x2A,0x8E,0xDB,0x09,0x98,0x00,0x28, + 0x05,0xD1,0x00,0xE0,0x03,0xE0,0xF8,0x88,0x20,0x21,0x88,0x43,0xF8,0x80,0x0F,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x79,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x40,0x79,0x00,0x00,0x30,0x07,0x00,0x20,0x30,0x0A,0x00,0x20,0x20,0x79,0x00,0x00, + 0xF0,0xB5,0x70,0x48,0xB1,0xB0,0x00,0x78,0x71,0x4B,0x70,0x4A,0x01,0x90,0x6E,0x48, + 0x00,0x78,0x00,0x90,0xD9,0x88,0x16,0x7D,0x6E,0x48,0x4C,0x06,0x00,0xD4,0x06,0x7C, + 0x55,0x7D,0x49,0x06,0x00,0xD4,0x45,0x7C,0x6B,0x48,0x00,0x21,0x2B,0x95,0x30,0x90, + 0xC1,0x81,0x50,0x22,0x16,0xA8,0x2A,0x91,0x03,0xF0,0xE2,0xF9,0x01,0x99,0x2B,0x98, + 0x2B,0x9D,0x08,0x1A,0xAD,0x1C,0x2F,0x90,0x80,0x1C,0x2E,0x90,0x35,0xE0,0x00,0x98, + 0x16,0xA9,0x80,0x1B,0x80,0x1C,0x86,0x46,0x2B,0x98,0xB4,0x1C,0x28,0x1A,0x80,0x00, + 0x47,0x18,0x40,0x3F,0x1E,0xE0,0x01,0x98,0x5C,0x49,0x00,0x1D,0x60,0x43,0x40,0x19, + 0x00,0x04,0x00,0x14,0x40,0x00,0x0A,0x5E,0x55,0x4B,0x68,0x00,0xC0,0x18,0x94,0x21, + 0x41,0x5E,0x60,0x00,0xC3,0x18,0x6C,0x20,0x18,0x5E,0x2A,0x9B,0x94,0x46,0xC3,0x18, + 0x52,0x18,0xD2,0x18,0x2A,0x92,0xBB,0x6B,0x62,0x46,0x9A,0x18,0x08,0x18,0x10,0x18, + 0x64,0x1C,0xB8,0x63,0xA6,0x45,0xDE,0xDC,0x00,0x98,0x71,0x00,0x41,0x1A,0xB8,0x6B, + 0xFE,0xF7,0xE4,0xFB,0xB8,0x63,0x2E,0x98,0x6D,0x1C,0xA8,0x42,0xC7,0xDC,0x00,0x99, + 0x70,0x00,0x09,0x1A,0x2B,0x98,0x2D,0x91,0x42,0x00,0x01,0x98,0x80,0x1A,0x41,0x43, + 0x2C,0x90,0x2A,0x98,0xFE,0xF7,0xD2,0xFB,0x30,0x99,0x50,0x22,0xC8,0x81,0x00,0x20, + 0x01,0x00,0x2A,0x90,0x02,0xA8,0x03,0xF0,0x8B,0xF9,0x2B,0x9C,0xA4,0x1C,0x35,0xE0, + 0x00,0x99,0x02,0xAA,0x89,0x1B,0x89,0x1C,0x8E,0x46,0x2B,0x99,0xB0,0x1C,0x61,0x1A, + 0x89,0x00,0x8D,0x18,0x40,0x3D,0x8C,0x46,0x1C,0xE0,0x01,0x99,0x33,0x4A,0x09,0x1D, + 0x41,0x43,0x09,0x19,0x49,0x00,0x51,0x5E,0x16,0xAA,0x62,0x44,0x40,0x3A,0x92,0x6B, + 0x2B,0x4F,0x89,0x1A,0x62,0x00,0xD3,0x19,0x94,0x22,0x9A,0x5E,0x43,0x00,0xDB,0x19, + 0x6C,0x27,0xDF,0x5F,0xD2,0x19,0x89,0x18,0x0B,0x00,0x4B,0x43,0xAA,0x6B,0xD1,0x18, + 0x40,0x1C,0xA9,0x63,0x86,0x45,0xE0,0xDC,0x2D,0x99,0xA8,0x6B,0x49,0x1E,0xFE,0xF7, + 0x95,0xFB,0xA8,0x63,0x2A,0x99,0x40,0x18,0x64,0x1C,0x2A,0x90,0x2E,0x98,0xA0,0x42, + 0xC6,0xDC,0x2C,0x99,0x2A,0x98,0xFE,0xF7,0x89,0xFB,0x30,0x99,0x00,0x22,0x0A,0x61, + 0x11,0x00,0x02,0xAB,0x0A,0xE0,0x8A,0x00,0x9A,0x58,0x82,0x1A,0x14,0x00,0x54,0x43, + 0x30,0x9A,0x12,0x69,0xA2,0x18,0x30,0x9C,0x49,0x1C,0x22,0x61,0x2C,0x9A,0x8A,0x42, + 0xF1,0xDC,0x30,0x98,0x51,0x1E,0x00,0x69,0xFE,0xF7,0x70,0xFB,0x00,0x9A,0x2F,0x99, + 0x92,0x1B,0x92,0x02,0x51,0x43,0xFE,0xF7,0x69,0xFB,0x30,0x99,0x08,0x61,0x30,0x99, + 0x0E,0x20,0x08,0x5E,0x00,0x28,0x01,0xD1,0x40,0x1C,0xC8,0x81,0x31,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0x00,0x7A,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x40,0x79,0x00,0x00,0x30,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20, + 0xF8,0xB5,0x61,0x4D,0x28,0x7A,0x00,0x28,0x06,0xD0,0x28,0x6B,0x00,0x04,0x00,0x0C, + 0x05,0xF0,0x88,0xF8,0x05,0xF0,0x76,0xF8,0x01,0x24,0x64,0x03,0x20,0x00,0xFE,0xF7, + 0x55,0xFF,0x04,0xF0,0x61,0xFC,0x20,0x00,0xFE,0xF7,0x48,0xFF,0x57,0x4C,0x00,0x26, + 0x9C,0xE0,0x57,0x48,0x41,0x68,0x09,0x07,0x07,0xD5,0xC0,0x68,0x00,0x28,0x04,0xD0, + 0x53,0x48,0xC1,0x68,0xC0,0x03,0xC1,0x63,0x95,0xE0,0x28,0x7A,0x00,0x28,0x04,0xD0, + 0x28,0x6B,0x00,0x04,0x00,0x0C,0x05,0xF0,0x65,0xF8,0xFF,0x20,0x81,0x30,0xFE,0xF7, + 0x35,0xFF,0x03,0x20,0x04,0xF0,0x9E,0xFF,0x03,0xF0,0x66,0xFF,0x49,0x4F,0xF8,0x88, + 0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5,0x04,0x20,0x00,0xE0, + 0x02,0x20,0x04,0xF0,0x6B,0xFE,0x00,0xF0,0x09,0xFC,0x04,0xF0,0x53,0xFC,0x00,0xF0, + 0xD3,0xFB,0x00,0xF0,0x81,0xFC,0x68,0x7B,0x00,0x28,0x04,0xD1,0x20,0x7B,0x00,0x28, + 0x01,0xD0,0x03,0xF0,0x55,0xFF,0x20,0x7A,0x00,0x28,0x01,0xD0,0x03,0xF0,0xC6,0xF8, + 0x01,0x20,0x40,0x05,0x00,0xF0,0xA6,0xFB,0x03,0xF0,0xDC,0xF8,0x00,0x28,0x01,0xD0, + 0x01,0x20,0x28,0x70,0x00,0x20,0x00,0xF0,0x9D,0xFB,0x28,0x78,0x00,0x28,0x04,0xD1, + 0x00,0x22,0x11,0x00,0x10,0x00,0x00,0xF0,0x65,0xF9,0x03,0xF0,0x21,0xFF,0x28,0x78, + 0x00,0x28,0x04,0xD0,0x68,0x7B,0x00,0x09,0x04,0x28,0x44,0xD1,0x2E,0x70,0x03,0x20, + 0x04,0xF0,0x32,0xFF,0xE8,0x62,0x03,0x20,0x04,0xF0,0x60,0xFF,0xFF,0x20,0x81,0x30, + 0xFE,0xF7,0xDC,0xFE,0xF8,0x8B,0x00,0x28,0x02,0xD0,0x40,0x1E,0xF8,0x83,0x2D,0xE0, + 0xFF,0xF7,0x9E,0xFC,0x00,0x28,0x29,0xD0,0x6F,0x6A,0x00,0x2F,0x26,0xD0,0xE8,0x6A, + 0xFF,0x21,0x41,0x31,0x48,0x43,0x1C,0x49,0xFE,0xF7,0x92,0xFB,0x38,0x1A,0x14,0x28, + 0x1C,0xDD,0x05,0xF0,0x05,0xF8,0x05,0xF0,0x09,0xF8,0xA8,0x79,0x00,0x28,0x0D,0xD0, + 0x03,0xF0,0xCC,0xFE,0x03,0xF0,0xCF,0xFE,0x03,0xF0,0xD7,0xFE,0x13,0x4D,0x01,0x20, + 0x68,0x60,0xFE,0xF7,0xC3,0xFE,0x12,0x48,0x68,0x60,0x03,0xE0,0x11,0x48,0x01,0x78, + 0x00,0x29,0xFC,0xD0,0x04,0xF0,0xF9,0xFF,0x0E,0x48,0x06,0x70,0x06,0x4D,0x28,0x78, + 0x00,0x28,0x00,0xD1,0x5D,0xE7,0x04,0x48,0x00,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0, + 0xC9,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xF8,0x0A,0x00,0x20,0x80,0x78,0x00,0x00, + 0x00,0x40,0x00,0x30,0xF0,0x05,0x00,0x20,0x10,0x27,0x00,0x00,0x00,0x30,0x00,0x40, + 0xE1,0x04,0x00,0x00,0xAC,0x0B,0x00,0x20,0x10,0xB4,0x0F,0x4B,0x00,0x22,0xD2,0x43, + 0x81,0x00,0x5A,0x52,0xCB,0x18,0x5A,0x80,0x0B,0x4B,0x0B,0x4C,0x24,0x33,0x5A,0x52, + 0xCB,0x18,0x5A,0x80,0x00,0x23,0x42,0x00,0x1C,0x3C,0xA3,0x52,0x22,0x00,0x12,0x32, + 0x13,0x54,0x18,0x00,0x52,0x32,0x8A,0x18,0x81,0x00,0x53,0x52,0x51,0x18,0x40,0x1E, + 0x4B,0x80,0xF9,0xD5,0x10,0xBC,0x70,0x47,0xCA,0x0B,0x00,0x20,0x10,0xB5,0x0C,0x48, + 0x09,0x22,0x00,0x21,0x03,0xF0,0x14,0xF8,0x0A,0x48,0x5A,0x22,0x00,0x21,0x03,0xF0, + 0x0F,0xF8,0x08,0x48,0x00,0x24,0x00,0x1F,0x04,0x70,0x07,0x48,0x28,0x22,0x21,0x00, + 0x03,0xF0,0x06,0xF8,0x04,0x48,0x4E,0x38,0x44,0x75,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x6B,0x08,0x00,0x20,0x54,0x07,0x00,0x20,0x7E,0x0A,0x00,0x20,0x10,0xB5,0x17,0x48, + 0x12,0x22,0x00,0x21,0x02,0xF0,0xF4,0xFF,0x14,0x48,0x12,0x22,0x00,0x21,0x12,0x30, + 0x02,0xF0,0xEE,0xFF,0x11,0x48,0x09,0x22,0x00,0x21,0x44,0x30,0x02,0xF0,0xE8,0xFF, + 0x0E,0x48,0x20,0x22,0x00,0x21,0x24,0x30,0x02,0xF0,0xE2,0xFF,0x0B,0x48,0x10,0x22, + 0x00,0x21,0x52,0x30,0x02,0xF0,0xDC,0xFF,0x08,0x48,0x10,0x22,0x00,0x21,0x62,0x30, + 0x02,0xF0,0xD6,0xFF,0x05,0x49,0x00,0x20,0x74,0x31,0xC8,0x82,0xFF,0x39,0x41,0x39, + 0x08,0x71,0x88,0x83,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xBC,0x06,0x00,0x20, + 0xF0,0xB4,0x1E,0x49,0x1E,0x4E,0x8F,0x7B,0xF1,0x88,0x49,0x06,0x02,0xD4,0x1B,0x49, + 0xC0,0x39,0x8F,0x7A,0x08,0x21,0x00,0x24,0x42,0x00,0x0B,0x01,0x9B,0x19,0x15,0x25, + 0x9B,0x18,0x6D,0x01,0x5D,0x19,0xEC,0x82,0x0D,0x25,0xAD,0x01,0x5B,0x19,0x49,0x1E, + 0xDC,0x80,0xF2,0xD5,0x15,0x25,0x31,0x18,0x6D,0x01,0x01,0x23,0x4D,0x19,0xAB,0x73, + 0x0F,0x25,0x93,0x19,0xAD,0x01,0x5B,0x19,0xDC,0x82,0x1F,0x23,0x5B,0x01,0xC9,0x18, + 0x8F,0x71,0x8C,0x73,0x02,0x21,0x0D,0x01,0xAD,0x19,0xAD,0x18,0xED,0x18,0x49,0x1E, + 0xEC,0x82,0xF8,0xD5,0x80,0x00,0x82,0x19,0x00,0x21,0x21,0x20,0xC9,0x43,0x40,0x01, + 0x10,0x18,0xC1,0x80,0x01,0x81,0xF0,0xBC,0x70,0x47,0x00,0x00,0x20,0x7A,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x10,0xB5,0x06,0x48,0x20,0x22,0x00,0x21,0x02,0xF0,0x80,0xFF, + 0x04,0x48,0x00,0x21,0x81,0x72,0x41,0x72,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x7E,0x08,0x00,0x20,0xB0,0x06,0x00,0x20,0x10,0xB5,0x04,0xF0,0x6D,0xFE,0x03,0xF0, + 0x4D,0xFE,0xFF,0xF7,0x53,0xFF,0xFF,0xF7,0x71,0xFF,0x03,0xF0,0x7D,0xFF,0x01,0xF0, + 0xC7,0xFD,0x01,0xF0,0x41,0xFD,0x03,0x49,0x00,0x20,0x48,0x71,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0x10,0xB4,0x0D,0x4C,0x0B,0x4B,0xE4,0x88, + 0x1B,0x7F,0x64,0x06,0x02,0xD4,0x09,0x4B,0xC0,0x3B,0x1B,0x7E,0x04,0x1E,0x00,0xDC, + 0x44,0x42,0x9C,0x42,0x06,0xDD,0x98,0x42,0x01,0xDD,0xC8,0x1A,0x00,0xE0,0xC8,0x18, + 0x02,0x04,0x12,0x0C,0x10,0xBC,0x10,0x00,0x70,0x47,0x00,0x00,0x20,0x7A,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xF7,0xB5,0x62,0x48,0xCA,0xB0,0x00,0x7D,0x00,0x28,0x03,0xD0, + 0x01,0x20,0x47,0x90,0x00,0x20,0x02,0xE0,0x00,0x20,0x47,0x90,0x01,0x20,0x46,0x90, + 0x5C,0x48,0x00,0x26,0x49,0x90,0x5C,0x48,0x35,0x00,0x01,0x8B,0x04,0x91,0x41,0x8B, + 0x03,0x91,0x81,0x8A,0x02,0x91,0xC1,0x8A,0x01,0x91,0x80,0x8B,0x45,0x90,0x57,0x48, + 0x00,0x7A,0x48,0x96,0x00,0x90,0x6B,0xE0,0x00,0x24,0x64,0xE0,0x68,0x43,0x07,0x19, + 0x21,0x00,0x28,0x00,0x01,0xF0,0xBC,0xF9,0x4D,0x49,0x20,0x39,0x0A,0x7D,0xD2,0x07, + 0x2D,0xD0,0x4F,0x4A,0x52,0x79,0x00,0x2A,0x00,0x9A,0x11,0xD0,0x95,0x42,0x26,0xD1, + 0x8A,0x7D,0xA2,0x42,0x1D,0xD0,0xCA,0x7D,0xA2,0x42,0x1A,0xD0,0x0A,0x7E,0xA2,0x42, + 0x17,0xD0,0x4A,0x7E,0xA2,0x42,0x14,0xD0,0x89,0x7E,0xA1,0x42,0x42,0xD1,0x10,0xE0, + 0x94,0x42,0x14,0xD1,0x8A,0x7D,0xAA,0x42,0x0B,0xD0,0xCA,0x7D,0xAA,0x42,0x08,0xD0, + 0x0A,0x7E,0xAA,0x42,0x05,0xD0,0x4A,0x7E,0xAA,0x42,0x02,0xD0,0x89,0x7E,0xA9,0x42, + 0x30,0xD1,0x04,0x99,0x03,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C,0x04,0xE0,0x02,0x99, + 0x01,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C,0x80,0x1A,0x49,0x9B,0x02,0x04,0xB8,0x00, + 0x18,0x58,0x4B,0x9B,0x12,0x0C,0x00,0x2B,0x02,0xD0,0x00,0x05,0x00,0x0D,0x01,0xE0, + 0x00,0x01,0x00,0x0D,0x4A,0x9B,0x05,0x2B,0x0E,0xD8,0x90,0x42,0x01,0xDA,0x47,0x9A, + 0x02,0xE0,0x88,0x42,0x0E,0xDD,0x46,0x9A,0x21,0x00,0x28,0x00,0x00,0xF0,0xAE,0xF8, + 0x05,0xA8,0x87,0x55,0x76,0x1C,0x05,0xE0,0x48,0x99,0x05,0xA8,0x47,0x54,0x48,0x98, + 0x40,0x1C,0x48,0x90,0x64,0x1C,0x22,0x49,0xC8,0x78,0x84,0x42,0x96,0xDB,0x6D,0x1C, + 0x1F,0x48,0x01,0x79,0x8D,0x42,0x8F,0xDB,0x4A,0x98,0x05,0x28,0x03,0xD9,0x00,0x04, + 0x48,0x9E,0x00,0x0C,0x45,0x90,0x00,0x2E,0x25,0xDD,0x4C,0x98,0x00,0x28,0x22,0xD1, + 0x00,0xF0,0x88,0xF9,0x00,0xF0,0xA8,0xF9,0x00,0xF0,0x56,0xFA,0x76,0x1E,0x14,0xD4, + 0x14,0x4C,0x05,0xAB,0x98,0x5D,0x82,0x00,0x49,0x98,0x80,0x58,0x01,0x05,0x45,0x98, + 0x09,0x0D,0x08,0x18,0x00,0x04,0x00,0x0C,0xA0,0x42,0x00,0xD9,0x20,0x00,0x00,0x04, + 0x08,0x43,0x49,0x99,0x76,0x1E,0x88,0x50,0xEC,0xD5,0x00,0xF0,0x63,0xF9,0x00,0xF0, + 0x8B,0xF9,0x00,0xF0,0x39,0xFA,0x4D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x20,0x78,0x00,0x00,0x00,0x02,0x10,0x40,0xE0,0x7A,0x00,0x00,0x70,0x0A,0x00,0x20, + 0xF8,0x0A,0x00,0x20,0xFF,0x0F,0x00,0x00,0xF8,0xB5,0x01,0x21,0x49,0x07,0x08,0x68, + 0x01,0x28,0x48,0xD1,0x40,0x07,0x41,0x68,0x88,0x01,0x85,0x0D,0x23,0x48,0x00,0x91, + 0x40,0x7B,0x8C,0x05,0xA4,0x0D,0x00,0x07,0x3A,0xD1,0x20,0x00,0x64,0x21,0x48,0x43, + 0x1F,0x49,0xFE,0xF7,0x6D,0xF9,0x1E,0x49,0x48,0x43,0x64,0x21,0xFE,0xF7,0x68,0xF9, + 0x07,0x00,0x28,0x00,0x64,0x21,0x48,0x43,0x1A,0x49,0x2D,0x37,0xFE,0xF7,0x60,0xF9, + 0x18,0x49,0x48,0x43,0x64,0x21,0xFE,0xF7,0x5B,0xF9,0x06,0x00,0x27,0x36,0x70,0x1B, + 0x01,0x00,0x41,0x43,0x38,0x1B,0x02,0x00,0x42,0x43,0x88,0x18,0x19,0x21,0x89,0x01, + 0x88,0x42,0x18,0xD8,0xB8,0x00,0x38,0x18,0x00,0x19,0x06,0x21,0xFE,0xF7,0x48,0xF9, + 0x84,0x05,0x00,0x98,0xA4,0x0D,0x80,0x0A,0x80,0x02,0x04,0x43,0x70,0x00,0x40,0x19, + 0x03,0x21,0xFE,0xF7,0x3D,0xF9,0x80,0x05,0x81,0x09,0x07,0x48,0x04,0x40,0x21,0x43, + 0x01,0x20,0x40,0x07,0x41,0x60,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xF8,0x0A,0x00,0x20, + 0xB0,0x22,0x00,0x00,0x58,0x1F,0x00,0x00,0xFF,0xFF,0x00,0xFC,0x30,0xB4,0x17,0x4D, + 0x15,0x4C,0x2D,0x78,0x68,0x43,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x09,0x0E, + 0x00,0x0A,0x00,0x2B,0x07,0xD0,0x00,0x2A,0x02,0xD0,0xC9,0x18,0xC0,0x18,0x0F,0xE0, + 0xC0,0x1A,0xC9,0x1A,0x0C,0xE0,0x00,0x2A,0x05,0xD0,0x88,0x42,0x01,0xDD,0x49,0x1C, + 0x06,0xE0,0x40,0x1C,0x04,0xE0,0x88,0x42,0x01,0xDD,0x40,0x1E,0x00,0xE0,0x49,0x1E, + 0x4A,0x1E,0xFF,0x2A,0x05,0xD2,0x42,0x1E,0xFF,0x2A,0x02,0xD2,0x00,0x02,0x08,0x43, + 0x60,0x53,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20, + 0xF0,0xB5,0x5A,0x48,0x8F,0xB0,0x06,0x78,0x59,0x48,0x5B,0x4A,0x05,0x96,0x07,0x78, + 0x58,0x48,0x06,0x97,0x0E,0x90,0x80,0x7E,0x0D,0x92,0xC1,0x07,0x09,0xD0,0x80,0x07, + 0x04,0xD5,0x70,0x1E,0x05,0x90,0x03,0x20,0x10,0x71,0x02,0xE0,0x7F,0x1E,0x00,0x21, + 0x11,0x71,0x52,0x48,0x0A,0x22,0x01,0x8C,0x51,0x43,0x09,0x04,0x09,0x0C,0x02,0x91, + 0x40,0x8C,0x50,0x43,0x00,0x04,0x00,0x0C,0x01,0x90,0x05,0x98,0x00,0x28,0x7E,0xD0, + 0x00,0x2F,0x7C,0xD0,0x41,0x00,0x02,0x98,0xFD,0xF7,0xF0,0xFF,0x05,0x04,0x2D,0x0C, + 0x00,0x24,0xB6,0x1C,0x0A,0xE0,0x02,0x98,0x05,0x99,0x60,0x43,0xFD,0xF7,0xE6,0xFF, + 0x43,0x4A,0x61,0x00,0x40,0x19,0x89,0x18,0x64,0x1C,0x08,0x84,0xB4,0x42,0xF2,0xDB, + 0x01,0x98,0x79,0x00,0xFD,0xF7,0xDA,0xFF,0x06,0x04,0x06,0x98,0x36,0x0C,0x00,0x24, + 0x80,0x1C,0x0C,0x90,0x0C,0xE0,0x01,0x98,0x39,0x00,0x60,0x43,0xFD,0xF7,0xCE,0xFF, + 0x37,0x4A,0x81,0x19,0x60,0x00,0x80,0x18,0x40,0x30,0x81,0x80,0x0C,0x98,0x64,0x1C, + 0x84,0x42,0xF0,0xDB,0x0E,0x98,0x80,0x7E,0xC0,0x07,0x53,0xD0,0x00,0x24,0x4D,0xE0, + 0x2F,0x4A,0x09,0x21,0x10,0x19,0xC9,0x01,0x40,0x18,0x41,0x7A,0x0E,0x98,0x80,0x7E, + 0x80,0x07,0x03,0xD5,0x05,0x98,0x03,0x95,0x04,0x91,0x02,0xE0,0x08,0x00,0x03,0xA9, + 0xC0,0xC1,0x27,0x49,0x40,0x00,0x40,0x18,0x0B,0x90,0x00,0x8C,0x0A,0x21,0x40,0x1B, + 0xFD,0xF7,0xA4,0xFF,0x22,0x4A,0xE1,0x00,0x89,0x18,0x11,0x22,0x92,0x01,0x0A,0x91, + 0x89,0x18,0x09,0x91,0x88,0x83,0x04,0x98,0x1D,0x49,0x40,0x00,0x40,0x18,0x40,0x30, + 0x08,0x90,0x80,0x88,0x0A,0x21,0x80,0x1B,0xFD,0xF7,0x90,0xFF,0x09,0x99,0xC8,0x83, + 0x0B,0x98,0x0A,0x21,0x00,0x8C,0x40,0x19,0xFE,0xF7,0x62,0xF8,0x0A,0x99,0x23,0x22, + 0x52,0x01,0x89,0x18,0x07,0x91,0x08,0x80,0x08,0x98,0x0A,0x21,0x80,0x88,0x80,0x19, + 0xFE,0xF7,0x56,0xF8,0x07,0x99,0x48,0x80,0x03,0x98,0x40,0x00,0x00,0xE0,0x09,0xE0, + 0x0A,0x21,0xFE,0xF7,0x4D,0xF8,0x0D,0x99,0x64,0x1C,0xC8,0x80,0x0E,0x98,0xC0,0x7E, + 0xA0,0x42,0xAD,0xDC,0x0F,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0x30,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20,0x00,0x78,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x02,0x49,0x08,0x68,0x04,0x22,0x90,0x43,0x08,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x04,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x03,0x49,0xCA,0x69,0x01,0x23,0x5B,0x05,0x9A,0x43,0x02,0x43, + 0xCA,0x61,0x70,0x47,0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x49,0x08,0x49,0x00, + 0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x01,0x22,0x11,0x43, + 0xC1,0x60,0x70,0x47,0xC0,0x90,0x00,0x40,0x01,0x49,0xC8,0x68,0xC8,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x02,0x48,0x01,0x68,0x08,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x01,0x22,0x10,0xB5,0x08,0x49,0x09,0x48,0x52,0x02,0x02,0xF0, + 0xD4,0xFC,0x08,0x48,0x01,0x22,0xC0,0x8E,0x92,0x02,0x01,0x04,0x01,0x43,0x06,0x48, + 0x02,0xF0,0xDE,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x7E,0x00,0x00, + 0x00,0x00,0x10,0x40,0x00,0x78,0x00,0x00,0x00,0x02,0x10,0x40,0x02,0x48,0x81,0x6B, + 0x49,0x08,0x49,0x00,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x02,0x48,0x81,0x6B, + 0x01,0x22,0x11,0x43,0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x10,0xB5,0x0A,0x49, + 0x0A,0x48,0xFC,0x22,0x02,0xF0,0xA9,0xFC,0xFF,0x22,0x09,0x49,0x09,0x48,0xF1,0x32, + 0x02,0xF0,0xA3,0xFC,0x01,0x22,0x08,0x49,0x08,0x48,0x52,0x02,0x02,0xF0,0x9D,0xFC, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x04,0x7B,0x00,0x00,0x04,0x90,0x00,0x40, + 0x00,0x7C,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x76,0x00,0x00,0x00,0x06,0x10,0x40, + 0x03,0x48,0x41,0x68,0x01,0x22,0x12,0x04,0x11,0x43,0x41,0x60,0x70,0x47,0x00,0x00, + 0x00,0xA0,0x00,0x40,0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x90,0x00,0x40,0x70,0xB5,0x1A,0x4C,0x20,0x68,0x40,0x08,0x40,0x00,0x20,0x60, + 0x18,0x48,0xA6,0x15,0x05,0x04,0x2D,0x0C,0x00,0x22,0x31,0x00,0x28,0x00,0xFD,0xF7, + 0xA7,0xFF,0x32,0x00,0x21,0x00,0x28,0x00,0x00,0x23,0xFD,0xF7,0xA9,0xFF,0x12,0x48, + 0x75,0x00,0x04,0x04,0x24,0x0C,0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0x98,0xFF, + 0x0E,0x49,0x2A,0x00,0x20,0x00,0x00,0x23,0xFD,0xF7,0x9A,0xFF,0x0C,0x48,0x00,0x22, + 0x04,0x04,0x24,0x0C,0x29,0x00,0x20,0x00,0xFD,0xF7,0x8A,0xFF,0x09,0x49,0x2A,0x00, + 0x20,0x00,0x00,0x23,0xFD,0xF7,0x8C,0xFF,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0x90,0x00,0x40,0x00,0x7B,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x00,0x76,0x00,0x00,0x00,0x06,0x10,0x40,0x04,0x48,0x10,0xB5,0xC1,0x68,0xC9,0x07, + 0xFC,0xD0,0xFE,0xF7,0x43,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40, + 0xF1,0xB5,0x55,0x4E,0x53,0x4B,0xF2,0x88,0x98,0x88,0x54,0x49,0x54,0x06,0x82,0xB0, + 0x00,0xD4,0x08,0x88,0x52,0x06,0x01,0x90,0x98,0x79,0x00,0xD4,0x88,0x78,0x37,0x00, + 0x00,0x25,0x01,0x00,0x41,0x43,0x08,0x06,0x00,0x0E,0x01,0x24,0xFF,0x37,0x61,0x37, + 0x00,0x90,0x11,0xE0,0x0A,0x20,0x60,0x43,0x43,0x21,0x80,0x19,0xC9,0x00,0x09,0x5C, + 0x00,0x29,0x08,0xD0,0x46,0x49,0x40,0x18,0x01,0xF0,0xA2,0xF9,0x00,0x28,0x02,0xD0, + 0x6D,0x1C,0x2D,0x06,0x2D,0x0E,0x64,0x1C,0xB8,0x78,0xA0,0x42,0xEA,0xDA,0x41,0x49, + 0x08,0x00,0x20,0x30,0xCA,0x8B,0x43,0x88,0xD4,0x1A,0x00,0x2C,0x00,0xDC,0x9C,0x1A, + 0x22,0x04,0x03,0x88,0x84,0x88,0x12,0x0C,0x1F,0x1B,0x00,0x2F,0x00,0xDC,0xE7,0x1A, + 0x84,0x7A,0x3B,0x04,0x1B,0x0C,0x00,0x2C,0x04,0xD0,0x44,0x7B,0xC8,0x2C,0x01,0xD2, + 0x64,0x1C,0x44,0x73,0x8C,0x7B,0x14,0x2C,0x04,0xD2,0x0C,0x7C,0x00,0x2C,0x01,0xD0, + 0x01,0x24,0x4C,0x74,0x14,0x2A,0x01,0xD8,0x14,0x2B,0x04,0xD9,0xCC,0x7B,0xC8,0x2C, + 0x01,0xD2,0x64,0x1C,0xCC,0x73,0x02,0x2D,0x09,0xD2,0x14,0x2A,0x07,0xD2,0x14,0x2B, + 0x05,0xD2,0x08,0x24,0x04,0x5F,0x04,0x2C,0x07,0xDA,0x64,0x1C,0x04,0xE0,0x08,0x24, + 0x04,0x5F,0xE7,0x1C,0x01,0xDD,0x64,0x1E,0x04,0x81,0x44,0x7B,0x01,0x2C,0x01,0xD9, + 0x78,0x21,0x10,0xE0,0x02,0x2D,0x0F,0xD2,0x08,0x24,0x04,0x5F,0x02,0x2C,0x0B,0xDD, + 0xC9,0x7B,0x14,0x29,0x08,0xD2,0x51,0x3A,0x8B,0x2A,0x02,0xD3,0x51,0x3B,0x8B,0x2B, + 0x02,0xD2,0x77,0x21,0xC9,0x43,0xC1,0x80,0x00,0x21,0x02,0x2D,0x01,0x73,0x0E,0xD2, + 0x06,0x21,0x41,0x5E,0x78,0x31,0x04,0xD1,0xC1,0x7A,0xC8,0x29,0x01,0xD2,0x49,0x1C, + 0xC1,0x72,0xC1,0x7A,0x49,0x1E,0x02,0x29,0x01,0xD2,0x01,0x21,0x01,0x73,0x06,0x21, + 0x41,0x5E,0x01,0x98,0x09,0x18,0x08,0x00,0x48,0x43,0x02,0x99,0x00,0x29,0x05,0xD1, + 0x31,0x79,0x01,0x29,0x02,0xD0,0x00,0x99,0xFD,0xF7,0xD0,0xFD,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00, + 0x1E,0x02,0x00,0x00,0x70,0x08,0x00,0x20,0xFF,0x21,0x03,0x31,0x08,0x00,0x49,0x1E, + 0x00,0x28,0xFB,0xD1,0x70,0x47,0x15,0x21,0x08,0x00,0x49,0x1E,0x00,0x28,0xFB,0xD1, + 0x70,0x47,0x00,0x00,0x02,0x48,0x41,0x6B,0x01,0x22,0x11,0x43,0x41,0x63,0x70,0x47, + 0x00,0x70,0x00,0x40,0x02,0x48,0xC1,0x69,0x02,0x14,0x11,0x43,0xC1,0x61,0x70,0x47, + 0x00,0x70,0x00,0x40,0xFE,0xB5,0x1E,0x4A,0x1C,0x48,0xD1,0x88,0x00,0x25,0x00,0x7A, + 0x2E,0x00,0x2F,0x00,0x49,0x06,0x02,0xD4,0x18,0x48,0xC0,0x38,0x00,0x79,0x19,0x49, + 0x89,0x8A,0x40,0x18,0x01,0x06,0x18,0x48,0x09,0x0E,0x00,0x78,0x00,0x28,0x01,0x90, + 0x21,0xD0,0x01,0x24,0x49,0x1C,0x00,0x91,0x13,0xE0,0x0A,0x20,0x60,0x43,0x10,0x49, + 0x40,0x18,0xFF,0x30,0x61,0x30,0x80,0x7A,0x14,0x28,0x01,0xD2,0x01,0x26,0x07,0xE0, + 0x01,0x27,0x14,0x21,0xFD,0xF7,0x54,0xFE,0x00,0x99,0x88,0x42,0x00,0xD3,0x01,0x25, + 0x64,0x1C,0x01,0x98,0xA0,0x42,0xE8,0xDA,0x00,0x2F,0x02,0xD1,0x00,0x2E,0x00,0xD0, + 0x02,0x25,0x28,0x06,0x00,0x0E,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x20,0x7A,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xD0,0x0A,0x00,0x20,0x50,0x07,0x00,0x20,0x13,0x48,0x10,0xB5, + 0xC0,0x68,0x00,0x28,0x1F,0xD0,0x01,0x06,0x09,0x0F,0x03,0x29,0x01,0xD0,0x04,0x29, + 0x02,0xD1,0x00,0xF0,0x25,0xF9,0x08,0xE0,0xF0,0x21,0x01,0x40,0x20,0x29,0x02,0xD2, + 0x00,0xF0,0x1A,0xF8,0x01,0xE0,0x03,0xF0,0xD3,0xFA,0x09,0x48,0x82,0x68,0x81,0x15, + 0x8A,0x43,0x82,0x60,0x82,0x68,0x0A,0x43,0x82,0x60,0x06,0x48,0x00,0x7A,0x00,0x28, + 0x01,0xD0,0x04,0xF0,0x6F,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30, + 0x00,0x40,0x00,0x40,0xF8,0x0A,0x00,0x20,0xF1,0xB5,0x7B,0x48,0x2E,0x21,0x90,0xB0, + 0x41,0x60,0x41,0x69,0x89,0x06,0xFC,0xD4,0x10,0x99,0x01,0x26,0x76,0x07,0xF1,0x63, + 0x84,0x69,0x75,0x48,0x40,0x68,0x80,0x07,0xFB,0xD5,0x03,0xF0,0xA9,0xFA,0x73,0x4D, + 0x28,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0,0x55,0xFA,0x10,0x99,0x00,0x22,0x01,0x20, + 0xFF,0x27,0x53,0x1E,0x40,0x03,0x15,0x29,0x6F,0xD0,0x16,0xDC,0x0E,0x29,0x6E,0xD0, + 0x0A,0xDC,0x02,0x29,0x27,0xD0,0x07,0x29,0x22,0xD0,0x0A,0x29,0x4F,0xD0,0x0B,0x29, + 0x4B,0xD1,0x0B,0x20,0xF0,0x63,0x6B,0xE0,0x11,0x29,0x55,0xD0,0x12,0x29,0x6E,0xD0, + 0x13,0x29,0x78,0xD0,0x14,0x29,0x7D,0xD0,0x3F,0xE0,0x1A,0x29,0x4C,0xD0,0x08,0xDC, + 0x16,0x29,0x6B,0xD0,0x17,0x29,0x38,0xD0,0x18,0x29,0x68,0xD0,0x19,0x29,0x67,0xD0, + 0x33,0xE0,0x1F,0x29,0x73,0xD0,0x50,0x29,0x72,0xD0,0x51,0x29,0x71,0xD0,0x2C,0xE0, + 0x00,0xF0,0x36,0xF9,0x29,0xE0,0x03,0x21,0x09,0x07,0xCB,0x60,0xFE,0xF7,0xF6,0xF8, + 0x00,0xF0,0x64,0xFE,0x52,0x48,0x53,0x4A,0x41,0x68,0x52,0x68,0x91,0x42,0x1C,0xD0, + 0x51,0x49,0x17,0x22,0xC9,0x8B,0x52,0x01,0x80,0x18,0x49,0x1C,0xC1,0x83,0xFD,0xF7, + 0x31,0xFA,0xA8,0x78,0xC0,0x07,0x01,0xD0,0xFF,0xF7,0x04,0xFE,0xA8,0x78,0x80,0x07, + 0x01,0xD5,0x04,0xF0,0xB5,0xF9,0x49,0x49,0x40,0x22,0x68,0x46,0x02,0xF0,0x75,0xFA, + 0x01,0x20,0x08,0x90,0x68,0x46,0x04,0xF0,0xC3,0xF9,0xF7,0x63,0x20,0xE0,0x41,0x48, + 0xA0,0x30,0x00,0x7E,0x00,0x28,0xF8,0xD0,0x00,0x2C,0x01,0xD0,0x01,0x20,0x00,0xE0, + 0x00,0x20,0x04,0xF0,0x4D,0xF8,0xF0,0xE7,0x03,0x21,0x09,0x07,0xCB,0x60,0xFE,0xF7, + 0xBD,0xF8,0x10,0x98,0xFE,0xF7,0x10,0xF8,0x0A,0xE0,0x2D,0xE0,0xFF,0xE7,0x03,0x21, + 0x09,0x07,0xCB,0x60,0xFE,0xF7,0xB2,0xF8,0x00,0xF0,0xA0,0xFD,0x00,0xF0,0x0A,0xF9, + 0x2D,0x48,0x41,0x68,0x41,0x60,0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x2C, + 0x07,0xD0,0x01,0x20,0xA8,0x71,0xD0,0xE7,0x05,0xE0,0x0B,0xE0,0x1C,0xE0,0x22,0xE0, + 0x28,0xE0,0xAA,0x71,0xC9,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xE8,0x71,0xC4,0xE7, + 0xEA,0x71,0xC2,0xE7,0x00,0x2C,0x05,0xD0,0x01,0x20,0x28,0x72,0xBD,0xE7,0x20,0xE0, + 0x27,0xE0,0x2E,0xE0,0x2A,0x72,0xB8,0xE7,0x00,0x2C,0x03,0xD0,0x20,0x0C,0x6C,0x72, + 0x68,0x82,0xB2,0xE7,0x6A,0x72,0xB0,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xA8,0x72, + 0xAB,0xE7,0xAA,0x72,0xA9,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xE8,0x72,0xA4,0xE7, + 0xEA,0x72,0xA2,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x73,0x9D,0xE7,0x2A,0x73, + 0x9B,0xE7,0x00,0x2C,0x01,0xD0,0x6C,0x73,0x00,0xE0,0x6A,0x73,0x03,0xF0,0x6C,0xFE, + 0x93,0xE7,0xA8,0x7B,0x00,0x2C,0x01,0xD0,0x01,0x21,0x06,0xE0,0x40,0x08,0x40,0x00, + 0x07,0xE0,0xA8,0x7B,0x00,0x2C,0x02,0xD0,0x02,0x21,0x08,0x43,0x01,0xE0,0xFD,0x21, + 0x08,0x40,0xA8,0x73,0x81,0xE7,0x00,0x00,0x00,0x40,0x00,0x30,0xF8,0x0A,0x00,0x20, + 0xC8,0x02,0x00,0x20,0x00,0x78,0x00,0x00,0xE0,0x7A,0x00,0x00,0xC0,0x75,0x00,0x00, + 0xF0,0xB5,0x38,0x4F,0x35,0x4C,0xF9,0x78,0x03,0x00,0x35,0x4A,0x0E,0x04,0x39,0x79, + 0x35,0x48,0x25,0x68,0x0E,0x43,0x35,0x49,0x30,0x3B,0x04,0xF0,0x9D,0xF9,0x12,0x0A, + 0x0C,0x0E,0x12,0x16,0x1A,0x1C,0x18,0x1E,0x20,0x30,0x3B,0x16,0x3E,0x43,0x48,0x4E, + 0x51,0x0A,0xCD,0x61,0x21,0xE0,0x60,0x68,0x01,0xE0,0x2D,0x48,0xC0,0x6B,0xC8,0x61, + 0x1B,0xE0,0x10,0x8C,0x52,0x8C,0x00,0x04,0x35,0xE0,0xCE,0x61,0x15,0xE0,0xE0,0x68, + 0xF5,0xE7,0x50,0x68,0xF3,0xE7,0xA0,0x68,0xF1,0xE7,0xD0,0x7B,0xEF,0xE7,0x25,0x48, + 0x03,0x7A,0x10,0x7D,0x52,0x7D,0xC4,0x07,0xE4,0x09,0x80,0x07,0x12,0x04,0xC0,0x0F, + 0x00,0x02,0x23,0x43,0x02,0x43,0x13,0x43,0xCB,0x61,0x5F,0x22,0x22,0xE0,0x93,0x7D, + 0x50,0x7E,0x1B,0x06,0x18,0x43,0xD3,0x7D,0x12,0x7E,0x1B,0x04,0x12,0x02,0x13,0x43, + 0x18,0x43,0xD4,0xE7,0x90,0x7E,0x00,0x06,0xD1,0xE7,0x17,0x48,0x00,0x69,0xC0,0x07, + 0xC0,0x0F,0xCC,0xE7,0x00,0x69,0x3A,0x8A,0x40,0x08,0x00,0x02,0x03,0xE0,0x13,0x48, + 0xA2,0x69,0xC0,0x8B,0x00,0x04,0x10,0x43,0xC1,0xE7,0x00,0x69,0x40,0x08,0xBE,0xE7, + 0xB8,0x69,0xBC,0xE7,0x48,0x69,0x10,0x42,0xFC,0xD1,0x03,0xF0,0x51,0xF9,0xFF,0x20, + 0x01,0x21,0x49,0x07,0xC8,0x63,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xC0,0x75,0x00,0x00, + 0x00,0x78,0x00,0x00,0xF8,0x0A,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x30, + 0xC0,0x0F,0x00,0x20,0x70,0x0A,0x00,0x20,0x00,0x7B,0x00,0x00,0xE0,0x7A,0x00,0x00, + 0x70,0xB5,0x03,0x24,0x24,0x07,0xE5,0x68,0x00,0x20,0xC0,0x43,0xE0,0x60,0xFD,0xF7, + 0xDB,0xFF,0x06,0x00,0xCB,0x20,0xC0,0x01,0xFD,0xF7,0xB8,0xFF,0x02,0xF0,0xEC,0xFF, + 0x01,0x20,0x40,0x05,0xFF,0xF7,0x4E,0xFC,0x00,0xF0,0xBE,0xFC,0x00,0x20,0xFF,0xF7, + 0x49,0xFC,0x02,0xF0,0xD5,0xFF,0x30,0x00,0xFD,0xF7,0xDA,0xFF,0xE5,0x60,0x70,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x20,0x03,0x21,0x10,0xB5,0xC0,0x43,0x09,0x07,0xC8,0x60, + 0x02,0xF0,0xD2,0xFF,0x00,0x20,0xFF,0xF7,0x35,0xFC,0xFF,0xF7,0xB3,0xFC,0x05,0x48, + 0xC1,0x68,0xC9,0x07,0xFC,0xD0,0x01,0x20,0x40,0x07,0x04,0xF0,0xF3,0xF8,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40,0xF8,0xB5,0x27,0x49,0x25,0x48,0xC9,0x88, + 0x00,0x8A,0x49,0x06,0x02,0xD4,0x23,0x48,0xC0,0x38,0x80,0x89,0xC0,0x06,0x3D,0xD5, + 0x22,0x4E,0x30,0x78,0x00,0x28,0x39,0xD0,0x70,0x78,0x00,0x28,0x36,0xD0,0x01,0x25, + 0x31,0xE0,0x0A,0x21,0x69,0x43,0x1C,0x4B,0x01,0x20,0xCC,0x18,0xFF,0x34,0x77,0x78, + 0x61,0x34,0x25,0xE0,0x0A,0x22,0x42,0x43,0xD2,0x18,0xFF,0x32,0xA1,0x32,0x21,0x79, + 0x92,0x7F,0x91,0x42,0x1B,0xD1,0x0A,0x22,0x50,0x43,0xC7,0x18,0xFF,0x37,0x06,0x21, + 0xC1,0x37,0x00,0x20,0x61,0x5E,0x38,0x5E,0x02,0x22,0xBA,0x5E,0x08,0x1A,0x08,0x21, + 0x61,0x5E,0x89,0x1A,0x00,0x91,0x3A,0x88,0xE1,0x88,0xFF,0xF7,0x9D,0xF9,0xE0,0x80, + 0x7A,0x88,0x21,0x89,0x00,0x98,0xFF,0xF7,0x97,0xF9,0x20,0x81,0x02,0xE0,0x40,0x1C, + 0x87,0x42,0xD7,0xDA,0x6D,0x1C,0x30,0x78,0xA8,0x42,0xCA,0xDA,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xA0,0x79,0x00,0x00,0xF0,0x05,0x00,0x20,0x50,0x07,0x00,0x20, + 0xF0,0xB5,0x00,0x20,0xB3,0xB0,0x11,0x90,0x10,0x90,0x0F,0x90,0x0E,0x90,0xFB,0x48, + 0xFC,0x4D,0x01,0x8C,0xFA,0x4A,0x0B,0x91,0x40,0x8C,0xFB,0x49,0x0A,0x90,0xE8,0x88, + 0x13,0x7B,0x44,0x06,0x00,0xD4,0x0B,0x7A,0x54,0x7B,0x46,0x06,0x00,0xD4,0x4C,0x7A, + 0x46,0x06,0x09,0x94,0x94,0x7E,0x00,0xD4,0x8C,0x7D,0x46,0x06,0x08,0x94,0x54,0x7E, + 0x00,0xD4,0x4C,0x7D,0x07,0x94,0xF0,0x4C,0x40,0x34,0x24,0x8A,0x46,0x06,0x02,0xD4, + 0xED,0x4C,0x80,0x3C,0xA4,0x89,0x24,0x07,0x42,0xD5,0xD4,0x7B,0x46,0x06,0x00,0xD4, + 0xCC,0x7A,0x5C,0x43,0x26,0x94,0x14,0x7C,0x46,0x06,0x00,0xD4,0x0C,0x7B,0x5C,0x43, + 0x25,0x94,0x54,0x7C,0x46,0x06,0x00,0xD4,0x4C,0x7B,0x5C,0x43,0x24,0x94,0x94,0x7C, + 0x46,0x06,0x00,0xD4,0x8C,0x7B,0x5C,0x43,0x23,0x94,0xD4,0x7C,0x46,0x06,0x00,0xD4, + 0xCC,0x7B,0x5C,0x43,0x22,0x94,0x14,0x7D,0x46,0x06,0x00,0xD4,0x0C,0x7C,0x5C,0x43, + 0x21,0x94,0x54,0x7D,0x46,0x06,0x00,0xD4,0x4C,0x7C,0x5C,0x43,0x20,0x94,0x94,0x7D, + 0x46,0x06,0x00,0xD4,0x8C,0x7C,0x5C,0x43,0x1F,0x94,0xD4,0x7D,0x46,0x06,0x00,0xD4, + 0xCC,0x7C,0x5C,0x43,0x1E,0x94,0x12,0x7E,0x40,0x06,0x00,0xD4,0x0A,0x7D,0xCF,0x48, + 0x5A,0x43,0x1D,0x92,0x32,0x90,0x00,0x78,0x00,0x28,0x05,0xD1,0x00,0xF0,0xD0,0xFE, + 0x33,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x28,0x90,0xC7,0x48,0xA0,0x38, + 0x31,0x90,0xFF,0x30,0xE1,0x30,0x30,0x90,0xC2,0x4E,0x28,0x98,0x13,0x21,0x30,0x18, + 0x49,0x01,0x2F,0x90,0x40,0x18,0x04,0x7F,0x00,0x2C,0x0F,0xD0,0x08,0x98,0x00,0x28, + 0x08,0xD1,0x0A,0x20,0x60,0x43,0x80,0x19,0xFF,0x30,0x6B,0x30,0x00,0xF0,0xE0,0xFD, + 0x00,0x28,0x03,0xD0,0x30,0x98,0x00,0x7B,0x00,0x28,0x03,0xD0,0x28,0x98,0xFF,0xF7, + 0x7F,0xF8,0x9D,0xE2,0x28,0x99,0x0D,0x27,0x15,0x23,0x07,0x20,0xBF,0x01,0x5B,0x01, + 0x49,0x00,0x2E,0x91,0x2E,0x9A,0x01,0x01,0x89,0x19,0x89,0x18,0xCA,0x18,0x0B,0x25, + 0xD2,0x8A,0xAD,0x01,0x4D,0x19,0xC9,0x19,0xEA,0x80,0xCA,0x88,0x40,0x1E,0xCA,0x82, + 0xF0,0xD5,0x0A,0x20,0x44,0x43,0xA4,0x19,0x2D,0x94,0xFF,0x34,0x61,0x34,0xE1,0x88, + 0x0B,0x98,0x40,0x1E,0x81,0x42,0xDC,0xDC,0x21,0x89,0x0A,0x98,0x40,0x1E,0x81,0x42, + 0xD7,0xDC,0x2E,0x98,0xE1,0x88,0x85,0x19,0xE8,0x18,0x2C,0x90,0xC1,0x82,0x20,0x89, + 0xE9,0x19,0x2B,0x91,0xC8,0x80,0x00,0x20,0x01,0x22,0xD2,0x02,0x01,0x00,0x06,0x90, + 0x07,0x20,0x05,0x92,0x97,0x4B,0x06,0x01,0xF3,0x18,0x2E,0x9E,0x9B,0x19,0x15,0x26, + 0x76,0x01,0x9C,0x46,0x9B,0x19,0x16,0x26,0x9E,0x5F,0x00,0x2E,0x09,0xDD,0x06,0x9F, + 0xBE,0x42,0x01,0xDD,0xDF,0x8A,0x06,0x97,0x05,0x9F,0xBE,0x42,0x01,0xDA,0xDB,0x8A, + 0x05,0x93,0x0D,0x26,0xB6,0x01,0x63,0x46,0x9B,0x19,0x06,0x26,0x9E,0x5F,0x00,0x2E, + 0x05,0xDD,0x8E,0x42,0x00,0xDD,0xD9,0x88,0x96,0x42,0x00,0xDA,0xDA,0x88,0x40,0x1E, + 0xD8,0xD5,0x05,0x9B,0x06,0x98,0xC0,0x1A,0xF0,0x28,0x02,0xDC,0x8B,0x1A,0xF0,0x2B, + 0x02,0xDD,0x30,0x9E,0x01,0x23,0xB3,0x72,0x14,0x28,0x04,0xDA,0x88,0x1A,0x14,0x28, + 0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x31,0x99,0x48,0x72,0x2F,0x98,0x15,0x21, + 0x49,0x01,0x47,0x18,0xB8,0x7B,0x01,0x28,0x1B,0xD9,0x2C,0x98,0x16,0x21,0x41,0x5E, + 0x0B,0x20,0x80,0x01,0x28,0x18,0x06,0x22,0x82,0x5E,0x88,0x1A,0x00,0x28,0x00,0xDC, + 0x50,0x1A,0x00,0x04,0x00,0x14,0x0D,0x90,0x2B,0x98,0x06,0x22,0x16,0x21,0x82,0x5E, + 0x41,0x5E,0x50,0x1A,0x00,0x28,0x00,0xDC,0x88,0x1A,0x00,0x04,0x00,0x14,0x0C,0x90, + 0x02,0xE0,0x64,0x20,0x0C,0x90,0x0D,0x90,0x0B,0x20,0x80,0x01,0x2E,0x18,0x2C,0x9A, + 0x06,0x21,0x16,0x20,0x71,0x5E,0x10,0x5E,0x02,0xF0,0x78,0xFF,0x13,0x90,0x2B,0x98, + 0x16,0x21,0x41,0x5E,0x02,0x00,0x06,0x20,0x10,0x5E,0x02,0xF0,0x6F,0xFF,0x12,0x90, + 0x16,0x21,0x71,0x5E,0x13,0x98,0x02,0xF0,0x69,0xFF,0x15,0x90,0x1B,0x20,0x40,0x01, + 0x28,0x18,0x06,0x21,0x2A,0x90,0x41,0x5E,0x12,0x98,0x02,0xF0,0x5F,0xFF,0x14,0x90, + 0x17,0x20,0x40,0x01,0x28,0x18,0x16,0x22,0x06,0x21,0x82,0x5E,0x41,0x5E,0x15,0x98, + 0x02,0xF0,0x56,0xFF,0x00,0x04,0x00,0x14,0x17,0x90,0x07,0x20,0xC0,0x01,0x2E,0x18, + 0x2A,0x98,0x16,0x21,0x41,0x5E,0x06,0x22,0xB2,0x5E,0x14,0x98,0x02,0xF0,0x48,0xFF, + 0x00,0x04,0x00,0x14,0x16,0x90,0x03,0x20,0x00,0x02,0x28,0x18,0x16,0x22,0x06,0x21, + 0x82,0x5E,0x41,0x5E,0x17,0x98,0x02,0xF0,0x3B,0xFF,0x00,0x04,0x00,0x14,0x19,0x90, + 0x1D,0x20,0x40,0x01,0x28,0x18,0x29,0x90,0x06,0x22,0x82,0x5E,0x16,0x21,0x71,0x5E, + 0x16,0x98,0x02,0xF0,0x2D,0xFF,0x00,0x04,0x00,0x14,0x18,0x90,0x19,0x20,0x40,0x01, + 0x28,0x18,0x16,0x22,0x06,0x21,0x82,0x5E,0x41,0x5E,0x19,0x98,0x02,0xF0,0x20,0xFF, + 0x00,0x04,0x00,0x14,0x1B,0x90,0x0F,0x20,0x80,0x01,0x2E,0x18,0x29,0x98,0x16,0x21, + 0x41,0x5E,0x06,0x22,0xB2,0x5E,0x18,0x98,0x02,0xF0,0x12,0xFF,0x00,0x04,0x00,0x14, + 0x1A,0x90,0x0C,0x99,0x0D,0x98,0x00,0xF0,0x31,0xFF,0x01,0x21,0x84,0x46,0x88,0x02, + 0x28,0x4B,0x0A,0x01,0xD2,0x18,0x2E,0x9B,0xD3,0x18,0x1F,0x22,0x52,0x01,0x9A,0x18, + 0xD2,0x8A,0x1B,0x18,0x49,0x1E,0xDA,0x80,0xF2,0xD5,0x1F,0x21,0x49,0x01,0x6A,0x18, + 0x60,0x46,0xD0,0x82,0x2F,0x9A,0x00,0x20,0x55,0x18,0xAA,0x7B,0x00,0x2A,0x94,0x46, + 0x0C,0xDB,0x1C,0x4B,0x11,0x01,0xC9,0x18,0x2E,0x9B,0xC9,0x18,0x1F,0x23,0x5B,0x01, + 0xCB,0x18,0x16,0x21,0x59,0x5E,0x08,0x18,0x52,0x1E,0xF2,0xD5,0x61,0x46,0x49,0x1C, + 0xFD,0xF7,0x44,0xF9,0x25,0x99,0x27,0x90,0x88,0x42,0x01,0xDC,0x01,0x20,0x0F,0xE0, + 0x23,0x99,0x88,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x21,0x99,0x88,0x42,0x01,0xDC, + 0x03,0x20,0x05,0xE0,0x1F,0x99,0x88,0x42,0x01,0xDC,0x04,0x20,0x00,0xE0,0x05,0x20, + 0xAA,0x79,0x80,0x1A,0x09,0x9A,0x52,0x42,0x00,0x28,0x13,0xDD,0x16,0x20,0x30,0x5E, + 0x09,0x9B,0x98,0x42,0x0C,0xD1,0x00,0x20,0x13,0xE0,0x00,0x00,0x00,0x78,0x00,0x00, + 0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00,0x50,0x07,0x00,0x20, + 0x40,0x1C,0x06,0xE0,0x00,0x28,0xB3,0x48,0x30,0x5E,0x04,0xDA,0x90,0x42,0xEA,0xD0, + 0x40,0x1E,0xF0,0x82,0x02,0xE0,0x00,0x28,0xFA,0xDC,0xF1,0xDB,0x16,0x20,0x30,0x5E, + 0x09,0x9B,0x98,0x42,0x05,0xD1,0xAB,0x79,0x05,0x2B,0x02,0xD2,0x5B,0x1C,0xAB,0x71, + 0x06,0xE0,0x90,0x42,0x04,0xD1,0xA8,0x79,0x01,0x28,0x01,0xD9,0x40,0x1E,0xA8,0x71, + 0x1A,0x9A,0x1B,0x98,0x1C,0x92,0xBE,0x7B,0x31,0x00,0xFD,0xF7,0xEF,0xF8,0x11,0x90, + 0x0F,0x90,0x1C,0x98,0x31,0x00,0xFD,0xF7,0xE9,0xF8,0x10,0x90,0x0E,0x90,0xA8,0x79, + 0x01,0x28,0x26,0xD1,0x0E,0xAA,0x0F,0xA9,0x6B,0x46,0x06,0xC3,0x1A,0x9B,0x1B,0x9A, + 0x09,0x21,0x30,0x00,0x03,0xF0,0x1A,0xFB,0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0, + 0xB8,0x7B,0x18,0x9B,0x19,0x9A,0x07,0x21,0x03,0xF0,0x10,0xFB,0x6B,0x46,0x38,0x22, + 0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAE,0x07,0xC6, + 0x04,0x22,0x9A,0x5E,0x25,0x9B,0x00,0x92,0x2D,0x98,0x26,0x9A,0xFF,0x30,0x65,0x30, + 0x97,0xE0,0x02,0x28,0x26,0xD1,0x0E,0xAA,0x0F,0xA9,0x6B,0x46,0x06,0xC3,0x18,0x9B, + 0x19,0x9A,0x07,0x21,0x30,0x00,0x03,0xF0,0xF1,0xFA,0x10,0xAA,0x11,0xA9,0x68,0x46, + 0x06,0xC0,0xB8,0x7B,0x16,0x9B,0x17,0x9A,0x05,0x21,0x03,0xF0,0xE7,0xFA,0x6B,0x46, + 0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAE, + 0x07,0xC6,0x04,0x22,0x9A,0x5E,0x00,0x92,0x2D,0x98,0x23,0x9B,0xFF,0x30,0x24,0x9A, + 0x65,0x30,0x6E,0xE0,0x03,0x28,0x26,0xD1,0x0E,0xAA,0x0F,0xA9,0x6B,0x46,0x06,0xC3, + 0x16,0x9B,0x17,0x9A,0x05,0x21,0x30,0x00,0x03,0xF0,0xC8,0xFA,0x10,0xAA,0x11,0xA9, + 0x68,0x46,0x06,0xC0,0xB8,0x7B,0x14,0x9B,0x15,0x9A,0x03,0x21,0x03,0xF0,0xBE,0xFA, + 0x6B,0x46,0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB,0x18,0x5E, + 0x01,0xAE,0x07,0xC6,0x04,0x22,0x9A,0x5E,0x21,0x9B,0x00,0x92,0x2D,0x98,0x22,0x9A, + 0xFF,0x30,0x65,0x30,0x45,0xE0,0x04,0x28,0x26,0xD1,0x0E,0xAA,0x0F,0xA9,0x68,0x46, + 0x06,0xC0,0x14,0x9B,0x15,0x9A,0x03,0x21,0x30,0x00,0x03,0xF0,0x9F,0xFA,0x10,0xAA, + 0x11,0xA9,0x68,0x46,0x06,0xC0,0xB8,0x7B,0x12,0x9B,0x13,0x9A,0x02,0x21,0x03,0xF0, + 0x95,0xFA,0x6B,0x46,0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB, + 0x18,0x5E,0x01,0xAE,0x07,0xC6,0x04,0x22,0x9A,0x5E,0x1F,0x9B,0x00,0x92,0x2D,0x98, + 0x20,0x9A,0xFF,0x30,0x65,0x30,0x1C,0xE0,0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0, + 0x12,0x9B,0x13,0x9A,0x02,0x21,0x30,0x00,0x03,0xF0,0x78,0xFA,0x10,0xAB,0x00,0x22, + 0x04,0x21,0x9A,0x5E,0x59,0x5E,0x2B,0x9B,0x06,0x20,0x18,0x5E,0x01,0xAB,0x07,0xC3, + 0x2C,0x98,0x16,0x22,0x82,0x5E,0x1D,0x9B,0x00,0x92,0x2D,0x98,0x1E,0x9A,0xFF,0x30, + 0x65,0x30,0x27,0x99,0x03,0xF0,0x76,0xFA,0xB8,0x7B,0x3B,0x49,0x09,0x28,0x01,0xD2, + 0x40,0x1C,0xB8,0x73,0xA8,0x7B,0x02,0x28,0x01,0xD2,0x40,0x1C,0xA8,0x73,0x20,0x79, + 0x40,0x1E,0x80,0x00,0x40,0x18,0x21,0x21,0x49,0x01,0x45,0x18,0x06,0x20,0x28,0x5E, + 0x00,0x28,0x21,0xDB,0x08,0x21,0x69,0x5E,0x00,0x29,0x1D,0xDB,0x07,0x9A,0x64,0x21, + 0x8E,0x1A,0x70,0x43,0xFD,0xF7,0x02,0xF8,0x07,0x00,0xE0,0x88,0x07,0x99,0x48,0x43, + 0x64,0x21,0xFD,0xF7,0xD5,0xF8,0x38,0x18,0xE0,0x80,0x08,0x20,0x28,0x5E,0x64,0x21, + 0x70,0x43,0xFC,0xF7,0xF3,0xFF,0x06,0x00,0x20,0x89,0x07,0x99,0x48,0x43,0x64,0x21, + 0xFD,0xF7,0xC6,0xF8,0x30,0x18,0x20,0x81,0xE0,0x88,0xE8,0x80,0x20,0x89,0x28,0x81, + 0x28,0x98,0x40,0x1C,0x08,0x28,0x28,0x90,0x00,0xDA,0x3D,0xE5,0x32,0x98,0x01,0x78, + 0x1A,0x48,0x01,0x29,0x1F,0xD1,0x32,0x99,0x89,0x7B,0x4A,0x00,0x16,0x49,0x51,0x18, + 0x15,0x22,0x52,0x01,0x8A,0x18,0x92,0x8A,0xC2,0x83,0x0D,0x22,0x92,0x01,0x8A,0x18, + 0x94,0x88,0x30,0x9B,0x1C,0x80,0x0B,0x23,0x9B,0x01,0xC9,0x18,0x8B,0x88,0x30,0x99, + 0x4B,0x80,0x92,0x8A,0x30,0x99,0x8A,0x80,0x32,0x99,0x09,0x8A,0xC1,0x82,0x32,0x99, + 0x49,0x8A,0x01,0x83,0x0C,0xE5,0x02,0x29,0xFC,0xD1,0x32,0x99,0x09,0x8A,0xC1,0x82, + 0x32,0x99,0x49,0x8A,0x01,0x83,0x32,0x99,0x49,0x8B,0x41,0x83,0x32,0x99,0x89,0x8B, + 0x81,0x83,0xFD,0xE4,0x16,0x00,0x00,0x00,0xF0,0x05,0x00,0x20,0x70,0x08,0x00,0x20, + 0x14,0x20,0x9F,0xE5,0x01,0x10,0x81,0xE2,0x00,0x20,0xD2,0xE5,0x02,0x20,0x82,0xE2, + 0x91,0x02,0x20,0xE0,0x01,0x00,0x80,0xE2,0x1E,0xFF,0x2F,0xE1,0xFB,0x0A,0x00,0x20, + 0xF8,0xB5,0x1C,0x4B,0x1C,0x7D,0xDA,0x8E,0xE4,0x07,0x31,0xD0,0x1C,0x8F,0x1A,0x4B, + 0x1B,0x7A,0x9E,0x46,0x19,0x4B,0x1E,0x78,0x16,0x4B,0x9D,0x7D,0x00,0x2E,0x76,0x46, + 0xAC,0x46,0xDD,0x7D,0x00,0x95,0x1D,0x7E,0x5F,0x7E,0x9B,0x7E,0x12,0xD0,0xB0,0x42, + 0x1E,0xD1,0x8C,0x45,0x08,0xD0,0x00,0x98,0x88,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0, + 0x8F,0x42,0x01,0xD0,0x8B,0x42,0x03,0xD1,0x20,0x00,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x20,0xFA,0xE7,0xB1,0x42,0x0B,0xD1,0x84,0x45,0xF5,0xD0,0x00,0x99,0x81,0x42, + 0xF2,0xD0,0x85,0x42,0xF0,0xD0,0x87,0x42,0xEE,0xD0,0x83,0x42,0xF0,0xD1,0xEB,0xE7, + 0x10,0x00,0xEA,0xE7,0x00,0x78,0x00,0x00,0x70,0x0A,0x00,0x20,0xFD,0x0A,0x00,0x20, + 0x78,0x47,0xC0,0x46,0x14,0x20,0x9F,0xE5,0x02,0x10,0x81,0xE2,0x00,0x20,0xD2,0xE5, + 0x04,0x20,0x82,0xE2,0x91,0x02,0x20,0xE0,0x02,0x00,0x80,0xE2,0x1E,0xFF,0x2F,0xE1, + 0xFB,0x0A,0x00,0x20,0xFE,0xB5,0x04,0x00,0x88,0x1A,0xC0,0x1A,0x0D,0x00,0x16,0x00, + 0x41,0x00,0x08,0x19,0x02,0x22,0x82,0x5E,0x1F,0x00,0x20,0x38,0x1E,0x23,0xC3,0x5E, + 0x61,0x5E,0x18,0x00,0x00,0xF0,0xF6,0xFC,0x69,0x00,0x01,0x90,0x08,0x19,0x02,0x22, + 0x82,0x5E,0x20,0x38,0x1E,0x23,0xC3,0x5E,0x61,0x5E,0x18,0x00,0x00,0xF0,0xEA,0xFC, + 0x00,0x90,0xA8,0x19,0xC0,0x19,0x41,0x00,0x08,0x19,0x02,0x22,0x82,0x5E,0x20,0x38, + 0x1E,0x23,0xC3,0x5E,0x61,0x5E,0x18,0x00,0x00,0xF0,0xDC,0xFC,0x02,0x00,0x00,0x99, + 0x01,0x98,0x00,0xF0,0xD7,0xFC,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x04,0x4B,0x03,0x4A, + 0x1B,0x78,0x58,0x43,0x40,0x18,0x40,0x00,0x10,0x5A,0x70,0x47,0x00,0x00,0x10,0x40, + 0xFB,0x0A,0x00,0x20,0x04,0x48,0x41,0x69,0x49,0x06,0x01,0xD5,0x10,0x20,0x70,0x47, + 0x40,0x69,0xC0,0x06,0xC0,0x0E,0x70,0x47,0x00,0x40,0x00,0x30,0x0D,0x49,0x01,0x20, + 0x10,0xB5,0x40,0x07,0x4A,0x69,0x92,0x06,0xFC,0xD4,0xCA,0x68,0x4B,0x68,0x4B,0x60, + 0x04,0xE0,0x4B,0x69,0x9B,0x06,0xFC,0xD4,0x8B,0x69,0x08,0xC0,0x52,0x1E,0xF8,0xD2, + 0x2E,0x20,0x48,0x60,0x48,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0x69,0xFC,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30,0x78,0x47,0xC0,0x46,0x10,0x40,0x2D,0xE9, + 0xB0,0x40,0x9F,0xE5,0x0C,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3,0xFC,0xFF,0xFF,0x0A, + 0x04,0x00,0x94,0xE5,0x04,0x00,0x84,0xE5,0x04,0x00,0x94,0xE5,0x04,0x00,0x10,0xE3, + 0x10,0x00,0x00,0x0A,0x0C,0x00,0x94,0xE5,0x04,0x10,0x90,0xE4,0x1C,0x10,0x84,0xE5, + 0x02,0x12,0xA0,0xE3,0x38,0x10,0x91,0xE5,0x04,0x00,0x00,0xEA,0x04,0x20,0x90,0xE4, + 0x1C,0x20,0x84,0xE5,0x14,0x20,0x94,0xE5,0x40,0x00,0x12,0xE3,0xFC,0xFF,0xFF,0x1A, + 0x01,0x10,0x51,0xE2,0xF8,0xFF,0xFF,0x1A,0x14,0x00,0x94,0xE5,0x5F,0x00,0x10,0xE3, + 0xFC,0xFF,0xFF,0x1A,0x11,0x00,0x00,0xEA,0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3, + 0xE8,0xFF,0xFF,0x0A,0x14,0x00,0x94,0xE5,0x20,0x00,0x10,0xE3,0xE5,0xFF,0xFF,0x1A, + 0x0C,0x00,0x94,0xE5,0x08,0x00,0x50,0xE3,0x10,0x40,0xBD,0x08,0x09,0x0A,0x00,0x0A, + 0x14,0x10,0x94,0xE5,0x5F,0x00,0x11,0xE3,0x18,0x10,0x94,0x15,0x04,0x10,0x80,0x14, + 0xFA,0xFF,0xFF,0x1A,0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x0A, + 0x00,0x0A,0x00,0xEB,0xD2,0xFF,0xFF,0xEA,0x00,0x40,0x00,0x30,0xF8,0xB5,0x20,0x4E, + 0x20,0x4F,0x00,0x25,0x2C,0x00,0x78,0x69,0x80,0x06,0xFC,0xD4,0x78,0x68,0x78,0x60, + 0xF8,0x68,0x04,0x28,0x0E,0xD1,0x1C,0x48,0x40,0x21,0x04,0xE0,0x7A,0x69,0x92,0x06, + 0xFC,0xD4,0xBA,0x69,0x04,0xC0,0x49,0x1E,0xF8,0xD2,0x20,0x25,0x17,0x4C,0x30,0x78, + 0x01,0x21,0x06,0xE0,0x05,0x28,0x07,0xD1,0x15,0x48,0x16,0x4C,0x85,0x08,0x30,0x78, + 0x02,0x21,0x08,0x43,0x30,0x70,0x10,0xE0,0x03,0x28,0x0E,0xD1,0x2E,0x20,0x78,0x60, + 0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0xD3,0xFB,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x78,0x69,0x80,0x06,0xFC,0xD4,0xB8,0x69,0x01,0xC4,0x6D,0x1E,0xF8,0xD2,0x2E,0x20, + 0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0xC2,0xFB,0xC3,0xE7,0x00,0x00, + 0xFA,0x0A,0x00,0x20,0x00,0x40,0x00,0x30,0x00,0x90,0x00,0x40,0x00,0xA0,0x00,0x40, + 0x00,0x03,0x00,0x00,0xC8,0x02,0x00,0x20,0x01,0x49,0x20,0x20,0x48,0x61,0x70,0x47, + 0x00,0x40,0x00,0x30,0xF8,0xB5,0x01,0x22,0x52,0x07,0x11,0x68,0x3D,0x48,0x01,0x29, + 0x80,0x7A,0x01,0xD1,0x01,0x25,0x03,0xE0,0x11,0x68,0x01,0x29,0x06,0xD9,0x02,0x25, + 0x00,0x28,0x0B,0xD0,0x00,0x21,0x25,0x27,0x7F,0x01,0x3B,0xE0,0x00,0x28,0x05,0xD1, + 0x34,0x48,0x09,0x22,0x00,0x21,0x08,0x38,0x01,0xF0,0xCA,0xFB,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x4A,0x19,0x00,0x24,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F, + 0xC0,0x07,0x26,0xD0,0x01,0x20,0x93,0x00,0x1B,0x0F,0x2B,0x4E,0x36,0x18,0xF6,0x19, + 0x36,0x7E,0x9E,0x42,0x01,0xD1,0x04,0x00,0x02,0xE0,0x40,0x1C,0x08,0x28,0xF4,0xD9, + 0x00,0x2C,0x06,0xD0,0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43, + 0x0D,0xE0,0x21,0x4C,0x01,0x20,0x26,0x18,0xF6,0x19,0x36,0x7E,0x00,0x2E,0x03,0xD1, + 0x24,0x18,0xE4,0x19,0x23,0x76,0xED,0xE7,0x40,0x1C,0x08,0x28,0xF3,0xD9,0x60,0x46, + 0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42,0xC9,0xD8,0x00,0x21, + 0x21,0xE0,0x4A,0x19,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46,0x90,0x0F,0xC0,0x07, + 0x18,0xD1,0x11,0x4E,0x01,0x20,0x93,0x00,0x1C,0x0F,0x33,0x18,0xDB,0x19,0x1B,0x7E, + 0xA3,0x42,0x0A,0xD1,0x34,0x18,0x00,0x23,0xE4,0x19,0x23,0x76,0x0F,0x23,0x9B,0x06, + 0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43,0x02,0xE0,0x40,0x1C,0x08,0x28,0xEC,0xD9, + 0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42,0xD8,0xD8, + 0x9C,0xE7,0x00,0x00,0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x03,0x23,0x1B,0x07, + 0xDA,0x68,0x01,0x21,0x81,0x40,0x8A,0x43,0xDA,0x60,0x70,0x47,0x10,0xB4,0x0F,0x24, + 0x03,0x23,0x1B,0x07,0x1C,0x60,0x05,0x4C,0x60,0x63,0x19,0x61,0x9A,0x60,0x00,0x20, + 0xC0,0x43,0xD8,0x60,0x00,0x20,0x18,0x60,0x10,0xBC,0x70,0x47,0x40,0x00,0x00,0x30, + 0x03,0x4B,0x00,0xB5,0x82,0x00,0x99,0x50,0xFF,0xF7,0xE0,0xFF,0x08,0xBC,0x18,0x47, + 0x2C,0x0B,0x00,0x20,0xF0,0xB5,0x85,0xB0,0xFE,0xF7,0x40,0xFB,0xFE,0xF7,0x1E,0xFB, + 0x02,0xF0,0xDE,0xF9,0x00,0xF0,0xA8,0xFD,0x00,0xF0,0x54,0xFB,0xFD,0xF7,0x90,0xFF, + 0xFD,0xF7,0xCE,0xF9,0x38,0x49,0x37,0x48,0xC9,0x88,0x40,0x7F,0x49,0x06,0x02,0xD4, + 0x34,0x48,0xC0,0x38,0x40,0x7E,0x00,0x28,0x04,0xD1,0xFF,0xF7,0x41,0xFA,0xFF,0xF7, + 0xEB,0xF9,0x03,0xE0,0xFF,0xF7,0xE8,0xF9,0xFF,0xF7,0x3A,0xFA,0x02,0xF0,0xA6,0xFC, + 0x02,0xF0,0x2A,0xFB,0x01,0x26,0x76,0x07,0x30,0x68,0x00,0x28,0x07,0xD0,0x70,0x68, + 0x80,0x0F,0x80,0x07,0x03,0xD5,0x35,0x68,0x02,0x24,0x6D,0x1C,0x37,0xE0,0x01,0x24, + 0x25,0x00,0xA0,0x00,0x87,0x19,0x38,0x68,0x81,0x01,0x04,0x90,0x80,0x05,0x80,0x0D, + 0x02,0x90,0x22,0x48,0x89,0x0D,0x03,0x91,0x00,0x78,0x00,0x28,0x03,0xD1,0x02,0xA9, + 0x03,0xA8,0x02,0xF0,0x4D,0xFB,0x1E,0x4B,0x00,0x21,0x58,0x8C,0x40,0x1E,0x02,0x04, + 0x12,0x0C,0x68,0x46,0x06,0xC0,0x18,0x8C,0x0A,0x00,0x02,0xA9,0x40,0x1E,0x03,0x04, + 0x1B,0x0C,0x03,0xA8,0x03,0xF0,0x88,0xFA,0x02,0xA9,0x03,0xA8,0x03,0xF0,0x5E,0xF9, + 0x14,0x49,0x04,0x98,0x08,0x40,0x03,0x99,0x89,0x05,0x89,0x09,0x08,0x43,0x02,0x99, + 0x80,0x0A,0x80,0x02,0x89,0x05,0x89,0x0D,0x08,0x43,0x38,0x60,0x64,0x1C,0xAC,0x42, + 0xC7,0xD9,0x30,0x68,0xFC,0xF7,0xE2,0xFE,0xFD,0xF7,0xC6,0xFD,0x02,0xF0,0xAC,0xFA, + 0xFF,0xF7,0xE0,0xFE,0xFC,0xF7,0x26,0xFE,0x03,0x48,0x40,0x79,0x05,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x03,0x0B,0x00,0x20, + 0x00,0x78,0x00,0x00,0xFF,0xFF,0x00,0xFC,0xF8,0xB5,0x02,0xF0,0x3D,0xF9,0xFE,0xF7, + 0x91,0xFD,0xFE,0xF7,0x1F,0xFE,0xFE,0xF7,0x67,0xFE,0x1A,0x48,0x00,0x21,0xC0,0x7F, + 0x03,0xF0,0x98,0xF8,0x18,0x4F,0x19,0x4D,0xFC,0x03,0x00,0x20,0x28,0x70,0xE8,0x61, + 0xE8,0x79,0x00,0x28,0x1A,0xD0,0x01,0x26,0x15,0xE0,0x78,0x68,0x00,0x07,0x12,0xD5, + 0xA6,0x63,0xF8,0x68,0x07,0x28,0x06,0xD1,0x02,0xF0,0x5A,0xFA,0xFF,0xF7,0x20,0xF9, + 0xFF,0x20,0xE0,0x63,0x07,0xE0,0x0B,0x28,0x10,0xD1,0xE0,0x63,0x78,0x68,0x80,0x07, + 0xFC,0xD5,0x02,0xF0,0x4D,0xFA,0xE0,0x6B,0x0B,0x28,0xE6,0xD1,0xFE,0xF7,0x70,0xF9, + 0x28,0x78,0x00,0x28,0xD9,0xD0,0x01,0xF0,0x23,0xFF,0xD6,0xE7,0x78,0x68,0x80,0x07, + 0xFC,0xD5,0xEE,0xE7,0x00,0x78,0x00,0x00,0x00,0x40,0x00,0x30,0xF8,0x0A,0x00,0x20, + 0x70,0xB5,0x21,0x49,0x1F,0x4A,0xCB,0x88,0x05,0x00,0x10,0x7A,0x1F,0x49,0x5C,0x06, + 0x00,0xD4,0x08,0x79,0x1E,0x4C,0xA4,0x8A,0x00,0x19,0x06,0x06,0xD0,0x79,0x36,0x0E, + 0x5A,0x06,0x00,0xD4,0xC8,0x78,0x1B,0x49,0x2C,0x78,0x4A,0x7C,0x00,0x2A,0x0F,0xD1, + 0x8A,0x7C,0x00,0x2A,0x01,0xD0,0x80,0x1C,0x08,0xE0,0xCA,0x7C,0x00,0x2A,0x01,0xD0, + 0x00,0x1D,0x03,0xE0,0x09,0x7D,0x00,0x29,0x02,0xD0,0x80,0x1D,0x00,0x06,0x00,0x0E, + 0x00,0x2C,0x0A,0xD0,0x84,0x42,0x08,0xD3,0x14,0x21,0x20,0x00,0xFC,0xF7,0x58,0xFD, + 0x76,0x1C,0xB0,0x42,0x05,0xD2,0x14,0x2C,0x07,0xD3,0x00,0x20,0x70,0xBC,0x08,0xBC, + 0x18,0x47,0x14,0x2C,0x01,0xD3,0xF0,0x20,0x00,0xE0,0x13,0x20,0x28,0x70,0x01,0x20, + 0xF4,0xE7,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00, + 0xD0,0x0A,0x00,0x20,0x70,0x08,0x00,0x20,0x10,0xB5,0x08,0x24,0x20,0x00,0xFE,0xF7, + 0xE3,0xF9,0x64,0x1E,0xFA,0xD5,0x05,0x48,0x01,0x22,0x41,0x7C,0x01,0x29,0x01,0xD8, + 0x00,0x29,0x00,0xD1,0x42,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x78,0x00,0x00, + 0x19,0x22,0x10,0xB5,0x06,0x48,0x52,0x01,0x00,0x21,0x01,0xF0,0x09,0xFA,0x51,0x22, + 0x04,0x48,0xD2,0x00,0x00,0x21,0x01,0xF0,0x03,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0xC8,0x02,0x00,0x20,0x40,0x00,0x00,0x20,0x10,0xB5,0x40,0x22,0xD4,0x05,0x00,0x21, + 0x20,0x00,0x01,0xF0,0xF5,0xF9,0x01,0x20,0xA0,0x63,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x14,0x48,0x10,0xB5,0x44,0x08,0x14,0x49,0x14,0x48,0x62,0x00,0x01,0xF0,0xD4,0xF9, + 0x10,0x48,0xC0,0x07,0x08,0xD0,0x0F,0x48,0xC2,0x07,0x0F,0x48,0xD2,0x0F,0x01,0x19, + 0x0E,0x48,0x00,0x19,0x01,0xF0,0xC0,0xF9,0x0D,0x48,0x00,0x21,0x84,0x08,0x0D,0x48, + 0xA2,0x00,0x01,0xF0,0xDD,0xF9,0x0A,0x48,0x80,0x07,0x07,0xD0,0x08,0x48,0x00,0x21, + 0x82,0x07,0x08,0x48,0x92,0x0F,0x00,0x19,0x01,0xF0,0xCA,0xF9,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x72,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x46,0x06,0x00,0x00,0xF0,0x05,0x00,0x20,0x05,0x49,0xC8,0x05,0x41,0x62,0x05,0x49, + 0x81,0x62,0x05,0x48,0xFF,0x21,0xC1,0x60,0x00,0x21,0x41,0x61,0x70,0x47,0x00,0x00, + 0x80,0x8C,0x3C,0x03,0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x40,0x02,0x49,0x03,0x48, + 0x01,0x60,0x20,0x21,0x41,0x60,0x70,0x47,0xDE,0x10,0x01,0x00,0x00,0x40,0x00,0x30, + 0x10,0xB5,0x00,0x24,0x20,0x00,0xFE,0xF7,0xD3,0xF9,0x64,0x1C,0x08,0x2C,0xF9,0xDB, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x10,0xB5,0x01,0x24,0x64,0x03,0x20,0x00, + 0xFC,0xF7,0xE4,0xFF,0xFE,0xF7,0xA6,0xFC,0xFE,0xF7,0xD0,0xFC,0xFE,0xF7,0x9A,0xFC, + 0x07,0x48,0x01,0x68,0xF0,0x22,0x91,0x43,0x06,0x4A,0x12,0x7B,0x12,0x07,0x12,0x0E, + 0x11,0x43,0x01,0x60,0x20,0x00,0xFC,0xF7,0xC9,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0xA0,0x00,0x40,0x00,0x78,0x00,0x00,0x10,0xB5,0x01,0xF0,0xE5,0xFF,0x01,0xF0, + 0xC5,0xFF,0xFF,0x20,0xFC,0xF7,0xFA,0xFF,0xFF,0xF7,0xAE,0xFF,0x11,0x48,0x80,0x22, + 0x00,0x21,0x01,0xF0,0x6D,0xF9,0x08,0x20,0xFC,0xF7,0xB8,0xFF,0x00,0x22,0x0E,0x49, + 0xD2,0x43,0x00,0x20,0xFF,0xF7,0x02,0xFE,0x00,0xF0,0x1A,0xF8,0x0B,0x48,0x40,0x7A, + 0x00,0x28,0x04,0xD0,0x40,0x20,0xFC,0xF7,0xA9,0xFF,0x00,0xF0,0x4D,0xF8,0x00,0xF0, + 0x37,0xF8,0x10,0x20,0x01,0xF0,0xB3,0xFF,0xFE,0xF7,0xD4,0xFD,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x2C,0x0B,0x00,0x20,0x02,0x03,0x0F,0x0F,0x00,0x78,0x00,0x00, + 0xF8,0xB5,0x03,0x24,0xE6,0x01,0x13,0x25,0x30,0x00,0xFC,0xF7,0x8F,0xFF,0x20,0x02, + 0xFC,0xF7,0xB6,0xFF,0x0C,0x48,0x0A,0x21,0x00,0x6B,0xFC,0xF7,0x49,0xFC,0x02,0x00, + 0xFF,0x21,0x90,0x31,0x02,0x20,0x00,0x23,0x00,0x95,0x02,0xF0,0xD3,0xFF,0x07,0x4A, + 0x27,0x21,0x03,0x20,0x00,0x23,0x00,0x94,0x02,0xF0,0xCC,0xFF,0x30,0x00,0xFC,0xF7, + 0x6D,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0xE8,0xFD,0x00,0x00, + 0x10,0xB5,0x08,0x49,0x00,0x20,0xFF,0xF7,0xCB,0xFD,0x03,0xF0,0xAE,0xF8,0x7D,0x20, + 0xC0,0x00,0x03,0xF0,0x9D,0xF8,0x00,0x20,0xFF,0xF7,0xA8,0xFD,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x45,0x71,0x00,0x00,0x0A,0x48,0x10,0xB5,0x00,0x6B,0x0A,0x49, + 0x0A,0x4C,0x88,0x42,0x05,0xD9,0x7D,0x21,0xC9,0x00,0xFC,0xF7,0x11,0xFC,0x64,0x30, + 0x01,0xE0,0xFF,0x20,0xF5,0x30,0x20,0x63,0x03,0xF0,0x58,0xF8,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x00,0x78,0x00,0x00,0x07,0xA5,0x07,0x00,0xF8,0x0A,0x00,0x20, + 0x10,0xB5,0xFF,0xF7,0xD5,0xFE,0xFF,0xF7,0x43,0xFF,0x15,0x48,0x00,0x7A,0x02,0xF0, + 0xBF,0xFE,0x13,0x48,0x13,0x4A,0xA0,0x30,0x41,0x89,0x00,0x24,0xD1,0x83,0x12,0x49, + 0x0C,0x60,0x4C,0x60,0x11,0x49,0xD2,0x88,0x49,0x79,0x52,0x06,0x02,0xD4,0x01,0x00, + 0xA0,0x31,0x49,0x78,0x0C,0x4A,0xC0,0x3A,0x51,0x73,0x09,0x49,0x80,0x31,0x0A,0x8B, + 0x09,0x49,0x40,0x39,0xCA,0x62,0x00,0x88,0x08,0x63,0xFF,0xF7,0x9D,0xFE,0x08,0x48, + 0xC4,0x83,0xFE,0xF7,0xDD,0xFA,0x07,0x48,0x04,0x70,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20,0xF0,0x0A,0x00,0x20,0x00,0x7A,0x00,0x00, + 0x30,0x07,0x00,0x20,0xF9,0x0A,0x00,0x20,0xF7,0xB5,0x86,0xB0,0x00,0x27,0x2E,0x48, + 0x04,0xAB,0x02,0x97,0x03,0x97,0x81,0xC3,0x2C,0x4E,0xFE,0xF7,0xAD,0xFB,0xFE,0xF7, + 0x5B,0xFC,0x2B,0x48,0x40,0x7F,0x01,0x90,0x29,0x48,0x20,0x38,0x40,0x7F,0x00,0x25, + 0x00,0x90,0x2A,0xE0,0x00,0x24,0x23,0xE0,0x21,0x00,0x28,0x00,0xFF,0xF7,0x38,0xFB, + 0x00,0x28,0x1C,0xD0,0x23,0x49,0x04,0x9A,0x09,0x78,0x69,0x43,0x09,0x19,0x89,0x00, + 0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A,0x01,0x1E,0x00,0xDC,0x41,0x42,0x00,0x28, + 0x01,0xDB,0x01,0x98,0x00,0xE0,0x00,0x98,0x81,0x42,0x01,0xDD,0x01,0x22,0x05,0x92, + 0x08,0x1A,0xB0,0x42,0x03,0xDD,0x06,0x00,0x27,0x00,0x02,0x95,0x03,0x91,0x64,0x1C, + 0x14,0x48,0x00,0x78,0x84,0x42,0xD7,0xD3,0x6D,0x1C,0x13,0x48,0x00,0x78,0x85,0x42, + 0xD0,0xD3,0x08,0x99,0x03,0x98,0x08,0x60,0x10,0x48,0x00,0x69,0xC0,0x07,0x05,0xD0, + 0x07,0x98,0x07,0x60,0x06,0x99,0x02,0x98,0x08,0x60,0x04,0xE0,0x07,0x99,0x02,0x98, + 0x08,0x60,0x06,0x98,0x07,0x60,0x05,0x98,0x00,0x28,0x00,0xD0,0x04,0x20,0x09,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x02,0x10,0x40,0x78,0xEC,0xFF,0xFF, + 0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0x00,0x90,0x00,0x40, + 0x78,0x47,0xC0,0x46,0x68,0x20,0x9F,0xE5,0x04,0xE0,0x2D,0xE5,0x5A,0x04,0xD2,0xE5, + 0x58,0xC0,0x9F,0xE5,0x01,0x00,0x10,0xE3,0x12,0x00,0x00,0x0A,0x54,0x10,0x9F,0xE5, + 0x00,0x00,0xA0,0xE3,0x00,0x30,0xD1,0xE5,0x0B,0x00,0x00,0xEA,0x5A,0xE4,0xD2,0xE5, + 0x00,0x10,0x82,0xE0,0x89,0x14,0xD1,0xE5,0x02,0x00,0x1E,0xE3,0x88,0xE4,0xD2,0xE5, + 0x9E,0x13,0x21,0x00,0x93,0xE1,0x21,0x10,0x01,0x11,0x9C,0xE7,0x80,0xE0,0x82,0xE0, + 0x02,0x19,0xC1,0xE3,0x01,0x00,0x80,0xE2,0xB0,0x11,0xCE,0xE1,0x5B,0x14,0xD2,0xE5, + 0x00,0x00,0x51,0xE1,0xF0,0xFF,0xFF,0x8A,0x04,0xE0,0x9D,0xE4,0x1E,0xFF,0x2F,0xE1, + 0x00,0x10,0x10,0x40,0xF0,0x05,0x00,0x20,0xFB,0x0A,0x00,0x20,0x88,0x42,0x00,0xDA, + 0x08,0x00,0x70,0x47,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00, + 0x70,0x47,0x10,0xB5,0x02,0x9C,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA, + 0x10,0x00,0x22,0x00,0x19,0x00,0xFF,0xF7,0xED,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x02,0x00,0x08,0x00,0x8A,0x42,0x00,0xDC, + 0x10,0x00,0x70,0x47,0xF0,0xB5,0x00,0x20,0xFD,0xB0,0x6A,0x90,0xFF,0x49,0x20,0x22, + 0x1E,0xA8,0xFC,0xF7,0xDF,0xF9,0xFF,0x4A,0xFD,0x4B,0xD0,0x88,0x9C,0x89,0xFE,0x49, + 0x45,0x06,0x00,0xD4,0x0C,0x89,0x9F,0x7C,0x43,0x06,0x00,0xD4,0x8F,0x7B,0xF8,0x49, + 0x20,0x39,0x7C,0x91,0x8E,0x8B,0x41,0x06,0xF8,0x48,0x7B,0x90,0x00,0xD4,0x06,0x8B, + 0xF7,0x48,0xFF,0x22,0x05,0x78,0xF7,0x48,0x01,0x32,0x00,0x78,0x00,0x21,0x1D,0x90, + 0x26,0xA8,0x00,0xF0,0xB5,0xFF,0xF4,0x48,0x08,0x22,0x00,0x21,0x00,0xF0,0xB0,0xFF, + 0xF1,0x48,0x10,0x22,0x00,0x21,0x08,0x30,0x00,0xF0,0xAA,0xFF,0x24,0x22,0x00,0x21, + 0x14,0xA8,0x00,0xF0,0xA5,0xFF,0x24,0x22,0x00,0x21,0x0B,0xA8,0x00,0xF0,0xA0,0xFF, + 0x24,0x22,0x00,0x21,0x02,0xA8,0x00,0xF0,0x9B,0xFF,0xE2,0x49,0x08,0x79,0x00,0x28, + 0x7E,0xD0,0xC8,0x88,0x7A,0x90,0x80,0x06,0x02,0xD5,0xE0,0x1B,0x04,0x04,0x24,0x0C, + 0xDC,0x48,0x64,0x21,0x00,0x89,0x07,0x00,0x60,0x43,0xFC,0xF7,0xC7,0xF9,0xDE,0x49, + 0x89,0x1C,0x79,0x91,0xD7,0x49,0xC9,0x89,0x40,0x18,0x79,0x99,0xC8,0x82,0xDB,0x48, + 0x00,0x21,0x78,0x90,0x01,0x81,0x7C,0x99,0x7A,0x9A,0x89,0x7F,0x38,0x00,0x52,0x06, + 0x01,0xD4,0x7B,0x99,0x89,0x7E,0x48,0x43,0x64,0x21,0xFC,0xF7,0x89,0xFA,0x00,0x04, + 0x78,0x99,0x00,0x14,0xB0,0x42,0x48,0x81,0x01,0xDA,0x78,0x98,0x46,0x81,0x02,0x20, + 0x6E,0x90,0x1D,0x98,0x00,0x24,0x80,0x1C,0x75,0x90,0x6E,0x98,0x0A,0xE1,0x02,0x20, + 0x6F,0x90,0xA8,0x1C,0x76,0x90,0x6F,0x98,0xFA,0xE0,0x6E,0x99,0x28,0x1D,0x41,0x43, + 0x77,0x90,0x6F,0x98,0x08,0x18,0x43,0x00,0xC5,0x48,0x0A,0x21,0xC2,0x5E,0x78,0x98, + 0x41,0x5E,0x8A,0x42,0x03,0xDD,0x00,0x89,0x78,0x99,0x40,0x1C,0x08,0x81,0x79,0x9E, + 0x16,0x21,0x71,0x5E,0x00,0x20,0x8A,0x42,0x02,0xDD,0x50,0x1A,0x00,0x04,0x00,0x14, + 0x6F,0x9A,0x00,0x2A,0x09,0xD1,0x00,0x28,0x78,0xD0,0x6E,0x98,0x26,0xA9,0x80,0x1E, + 0x68,0x43,0x40,0x18,0x91,0x1E,0x40,0x5C,0x14,0xE0,0xB5,0x4A,0x9B,0x18,0x20,0x3B, + 0x1E,0x22,0x9A,0x5E,0x8A,0x42,0x03,0xDD,0x51,0x1A,0x09,0x04,0x09,0x14,0x65,0xD1, + 0x00,0x28,0xE9,0xD0,0x6E,0x98,0x26,0xA9,0x80,0x1E,0x68,0x43,0x41,0x18,0x6F,0x98, + 0x80,0x1E,0x08,0x5C,0x00,0x28,0xF2,0xD1,0x6F,0x98,0x00,0x04,0x00,0x14,0x00,0xE0, + 0x83,0xE1,0x6D,0x90,0x68,0x90,0x6E,0x98,0x64,0x1C,0x00,0x04,0x00,0x14,0x24,0x04, + 0x04,0x22,0x24,0x14,0x6C,0x90,0x08,0x2C,0x67,0x90,0x03,0xDD,0x64,0x1E,0x24,0x04, + 0x24,0x14,0xB3,0xE0,0x00,0x20,0x66,0x90,0x00,0x20,0x6B,0x90,0x66,0x98,0xFF,0x21, + 0x40,0x1C,0x00,0x04,0x00,0x14,0x01,0x31,0x88,0x42,0x66,0x90,0x36,0xDC,0x00,0x20, + 0x84,0x46,0x91,0x00,0x1E,0xAB,0xC8,0x18,0x40,0x88,0x59,0x5A,0x67,0x9E,0x68,0x9B, + 0x80,0x19,0xC9,0x18,0x00,0x04,0x09,0x04,0x00,0x14,0x09,0x14,0x02,0x28,0x26,0xDB, + 0x75,0x9B,0x98,0x42,0x23,0xDA,0x02,0x29,0x21,0xDB,0x76,0x9B,0x99,0x42,0x1E,0xDA, + 0x77,0x9B,0x8B,0x4E,0x43,0x43,0x5B,0x18,0x5B,0x00,0xF3,0x5E,0x79,0x9E,0x16,0x27, + 0xF7,0x5F,0xBB,0x42,0x13,0xDD,0x83,0x1E,0x6B,0x43,0x26,0xAE,0x9B,0x19,0x8E,0x1E, + 0x9B,0x57,0xA3,0x42,0x01,0xD0,0x00,0x2B,0x09,0xD1,0x6C,0x9B,0x98,0x42,0x02,0xD1, + 0x6D,0x9B,0x99,0x42,0x0B,0xD0,0x01,0x23,0x6B,0x93,0x08,0xE0,0x5D,0xE0,0x52,0x1C, + 0x63,0x46,0x5B,0x1C,0x52,0x07,0x52,0x0F,0x08,0x2B,0x9C,0x46,0xC1,0xDB,0x67,0x9B, + 0x26,0xAE,0x9B,0x1E,0x6B,0x43,0x9B,0x19,0x68,0x9E,0xB6,0x1E,0x9F,0x5D,0x00,0x2F, + 0x3E,0xD1,0x9C,0x55,0x77,0x9E,0x67,0x9B,0x79,0x9F,0x73,0x43,0x68,0x9E,0x9B,0x19, + 0x6F,0x4E,0x5B,0x00,0xF3,0x5E,0x16,0x26,0xBE,0x5F,0xB3,0x42,0x03,0xDD,0x9B,0x1B, + 0x1B,0x04,0x1B,0x0C,0x00,0xE0,0x00,0x23,0x69,0x93,0xA3,0x00,0x9C,0x46,0x14,0xAE, + 0xF3,0x58,0x68,0x9E,0x5F,0x4F,0x76,0x00,0xF6,0x19,0xB6,0x8B,0x69,0x9F,0x7E,0x43, + 0x9E,0x19,0x63,0x46,0x14,0xAF,0xFE,0x50,0x0B,0xAE,0xF3,0x58,0x67,0x9E,0x59,0x4F, + 0x76,0x00,0xF6,0x19,0x40,0x36,0x36,0x88,0x69,0x9F,0x7E,0x43,0x9E,0x19,0x63,0x46, + 0x0B,0xAF,0xFE,0x50,0x02,0xAF,0xFB,0x58,0x69,0x9E,0x9E,0x19,0x63,0x46,0xFE,0x50, + 0x50,0x4E,0x63,0x00,0x9B,0x19,0xFF,0x33,0x41,0x33,0xDE,0x88,0x76,0x1C,0xDE,0x80, + 0x6B,0x9B,0x00,0x2B,0x09,0xD0,0x00,0x06,0x00,0x0E,0x67,0x90,0x08,0x06,0x00,0x0E, + 0x52,0x1D,0x52,0x07,0x52,0x0F,0x68,0x90,0x5E,0xE7,0x6F,0x98,0x40,0x1C,0x6F,0x90, + 0x76,0x99,0x88,0x42,0x00,0xDA,0x00,0xE7,0x6A,0x98,0x00,0x28,0x06,0xD1,0x6E,0x98, + 0x40,0x1C,0x6E,0x90,0x75,0x99,0x88,0x42,0x00,0xDA,0xF0,0xE6,0x00,0x2C,0x74,0xDD, + 0x02,0x20,0x54,0xE0,0x02,0x20,0x69,0x1C,0x72,0x91,0x4C,0xE0,0x2B,0x1D,0x62,0x46, + 0x5A,0x43,0x12,0x18,0x79,0x9E,0x57,0x00,0x3D,0x4B,0x16,0x22,0xB2,0x5E,0xFE,0x18, + 0x02,0x23,0xF3,0x5E,0x00,0x21,0x93,0x42,0x02,0xDD,0x99,0x1A,0x09,0x04,0x09,0x14, + 0x62,0x46,0x92,0x1E,0x6A,0x43,0x26,0xAB,0xD2,0x18,0x83,0x1E,0x74,0x92,0xD3,0x56, + 0x01,0x93,0x43,0x1E,0x73,0x93,0xD2,0x56,0x00,0x2A,0x2A,0xD1,0x00,0x29,0x28,0xD0, + 0x01,0x9A,0x00,0x2A,0x25,0xD0,0x27,0x4F,0x46,0x00,0xF6,0x19,0xF6,0x8B,0x92,0x00, + 0x14,0xAB,0x4E,0x43,0x9B,0x58,0x9B,0x19,0x14,0xAE,0xB3,0x50,0x66,0x46,0x76,0x00, + 0xF6,0x19,0x40,0x36,0x36,0x88,0x0B,0xAB,0x9B,0x58,0x4E,0x43,0x9B,0x19,0x0B,0xAE, + 0xB3,0x50,0x02,0xAE,0xB3,0x58,0x59,0x18,0xB1,0x50,0x01,0x99,0x49,0x00,0xC9,0x19, + 0xFF,0x31,0x41,0x31,0xCA,0x88,0x52,0x1C,0xCA,0x80,0x73,0x9B,0x74,0x9A,0x01,0x99, + 0xD1,0x54,0x72,0x99,0x40,0x1C,0x88,0x42,0xB0,0xDB,0x60,0x46,0x40,0x1C,0x75,0x99, + 0x84,0x46,0x88,0x42,0xA6,0xDB,0x01,0x26,0x38,0xE0,0xB1,0x00,0x02,0xAA,0x71,0x91, + 0x57,0x58,0x01,0x20,0x00,0x2F,0x00,0xD0,0x38,0x00,0x01,0x00,0x71,0x98,0x14,0xAA, + 0x10,0x58,0xFC,0xF7,0xFD,0xF8,0x07,0x49,0x72,0x00,0x51,0x18,0x70,0x91,0xFF,0x31, + 0x01,0x31,0xC8,0x83,0x01,0x21,0x00,0x2F,0x14,0xE0,0x21,0xE0,0xD0,0x71,0x00,0x00, + 0x00,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x40,0x79,0x00,0x00,0x20,0x79,0x00,0x00, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0x2E,0x07,0x00,0x20,0x30,0x0A,0x00,0x20, + 0xC8,0x02,0x00,0x20,0x00,0xD0,0x39,0x00,0x71,0x98,0x0B,0xAA,0x10,0x58,0xFC,0xF7, + 0xD7,0xF8,0x70,0x99,0xFF,0x31,0x21,0x31,0x76,0x1C,0xC8,0x81,0xA6,0x42,0xC4,0xDD, + 0x14,0x4A,0x10,0x79,0x1F,0xE0,0x81,0x00,0x89,0x18,0xE0,0x31,0x0E,0x23,0xCB,0x5E, + 0x0C,0x24,0x0C,0x5F,0x6B,0x43,0x26,0xA9,0x09,0x19,0x59,0x5C,0x13,0x18,0x1C,0x00, + 0xFF,0x34,0x21,0x34,0x61,0x77,0x61,0x7F,0xFF,0x33,0x01,0x33,0x49,0x00,0x89,0x18, + 0xFF,0x31,0x41,0x31,0xC9,0x88,0x09,0x06,0x09,0x0E,0x19,0x74,0x93,0x8B,0x99,0x42, + 0x00,0xD9,0x91,0x83,0x40,0x1E,0x01,0x28,0xDD,0xDA,0x7D,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0xF0,0xB5,0x00,0x20,0xE7,0xB0,0x42,0x90, + 0x32,0x90,0x0D,0x90,0xFF,0x48,0x66,0x90,0x02,0x8A,0xFF,0x49,0xC8,0x88,0x43,0x06, + 0x02,0xD4,0xFC,0x4A,0xC0,0x3A,0x92,0x89,0xFA,0x4D,0xFC,0x4C,0x20,0x35,0x0C,0x92, + 0xAA,0x89,0x43,0x06,0x00,0xD4,0x22,0x89,0xF9,0x4B,0x0B,0x92,0xF5,0x4A,0x40,0x32, + 0x65,0x92,0x52,0x89,0x46,0x06,0x64,0x93,0x00,0xD4,0xDA,0x88,0x43,0x06,0x0A,0x92, + 0x65,0x9A,0x12,0x79,0x01,0xD4,0x64,0x9A,0x12,0x78,0x43,0x06,0x09,0x92,0x65,0x9A, + 0x52,0x79,0x01,0xD4,0x64,0x9A,0x52,0x78,0x43,0x06,0x08,0x92,0x65,0x9A,0x12,0x8B, + 0x01,0xD4,0x64,0x9A,0x92,0x8A,0x40,0x06,0x07,0x92,0x2F,0x89,0x00,0xD4,0xA7,0x88, + 0xE8,0x48,0x29,0x22,0x06,0x78,0xE8,0x48,0x00,0x78,0x06,0x90,0xE2,0x48,0xC0,0x89, + 0x05,0x90,0x01,0x20,0x04,0x90,0x00,0x20,0x01,0x00,0x02,0x90,0x0E,0xA8,0x00,0xF0, + 0x3F,0xFD,0xE2,0x48,0xDC,0x49,0x08,0x81,0xDB,0x48,0x00,0x21,0x81,0x81,0x41,0x81, + 0xC0,0x30,0x63,0x90,0x41,0x80,0xA0,0x30,0x62,0x90,0x40,0x78,0xDC,0x49,0x02,0x28, + 0x61,0x91,0x53,0xD9,0xD4,0x4A,0x69,0x8A,0xD2,0x88,0x52,0x06,0x00,0xD4,0xE1,0x89, + 0x36,0x91,0xD8,0x49,0x36,0x9A,0x60,0x91,0x89,0x8B,0x89,0x18,0x37,0x91,0x0C,0x99, + 0xC9,0x04,0x25,0xD5,0x01,0x28,0x0C,0xD9,0xCB,0x4A,0xE9,0x7A,0xD2,0x88,0x52,0x06, + 0x00,0xD4,0xE1,0x79,0x48,0x43,0x00,0x06,0x00,0x0E,0x04,0x90,0x01,0xD1,0x01,0x20, + 0x04,0x90,0x63,0x99,0xC4,0x4A,0x00,0x20,0x08,0x5E,0xD2,0x88,0xA9,0x7A,0x52,0x06, + 0x00,0xD4,0xA1,0x79,0x48,0x43,0x64,0x21,0xFB,0xF7,0x40,0xFF,0x00,0x04,0x00,0x0C, + 0xB8,0x42,0x00,0xD2,0x38,0x00,0x04,0x99,0xFC,0xF7,0x12,0xF8,0x63,0x99,0x48,0x80, + 0xB9,0x49,0x65,0x98,0xC9,0x88,0x40,0x8B,0x49,0x06,0x01,0xD4,0x64,0x98,0xC0,0x8A, + 0x61,0x99,0x89,0x8B,0x40,0x18,0x37,0x99,0x35,0x90,0x88,0x42,0x34,0x91,0x00,0xD2, + 0x37,0x90,0x02,0x20,0x4D,0x90,0xAF,0x48,0xC0,0x30,0x5F,0x90,0xB4,0x48,0xA0,0x38, + 0x5E,0x90,0x06,0x98,0x80,0x1C,0x53,0x90,0x4D,0x98,0x95,0xE3,0x02,0x28,0x08,0xD1, + 0xA9,0x4A,0x29,0x8A,0xD2,0x88,0x52,0x06,0x00,0xD4,0xA1,0x89,0x61,0x9A,0x52,0x8B, + 0x0E,0xE0,0xAD,0x49,0x09,0x78,0x00,0x29,0x02,0xD0,0xAC,0x49,0x89,0x89,0x05,0xE0, + 0xA1,0x4A,0xE9,0x89,0xD2,0x88,0x52,0x06,0x00,0xD4,0x61,0x89,0x61,0x9A,0x12,0x8B, + 0x89,0x18,0x95,0xE7,0x02,0x24,0xB0,0x1C,0x54,0x90,0x6A,0xE3,0x4D,0x98,0x54,0x99, + 0x40,0x1E,0x48,0x43,0x61,0x1E,0x40,0x18,0x00,0x04,0x07,0x14,0xA0,0x49,0x78,0x00, + 0x5D,0x90,0x08,0x5E,0x37,0x99,0x09,0x04,0x09,0x14,0x88,0x42,0x7B,0xDB,0x78,0x1C, + 0xC1,0x10,0x0E,0xAA,0x52,0x5C,0x41,0x07,0x49,0x0F,0x01,0x20,0x88,0x40,0x02,0x40, + 0xF8,0x10,0x0E,0xA9,0x5C,0x90,0x09,0x5C,0x7B,0x07,0x5B,0x0F,0x01,0x20,0x98,0x40, + 0x01,0x40,0x5B,0x90,0x78,0x1E,0xC3,0x10,0x0E,0xAD,0xEB,0x5C,0x45,0x07,0x6D,0x0F, + 0x01,0x20,0xA8,0x40,0x18,0x40,0x01,0xF0,0x63,0xFC,0x01,0x90,0xB8,0x1B,0x41,0x1E, + 0xCA,0x10,0x0E,0xAB,0x9A,0x5C,0x4B,0x07,0x5B,0x0F,0x01,0x21,0x99,0x40,0x0A,0x40, + 0x83,0x1E,0xD9,0x10,0x0E,0xAD,0x69,0x5C,0x5D,0x07,0x6D,0x0F,0x01,0x23,0xAB,0x40, + 0x19,0x40,0xC0,0x1E,0xC3,0x10,0x0E,0xAD,0xEB,0x5C,0x45,0x07,0x6D,0x0F,0x01,0x20, + 0xA8,0x40,0x18,0x40,0x01,0xF0,0x44,0xFC,0x01,0x99,0x01,0xF0,0x3F,0xFC,0x00,0x28, + 0x39,0xD1,0x7B,0x48,0x32,0x00,0x39,0x00,0x02,0x23,0xFE,0xF7,0x5B,0xFF,0x37,0x99, + 0x88,0x42,0xB3,0xDB,0x76,0x49,0x5D,0x9A,0x89,0x5E,0x81,0x42,0xF0,0xD1,0x6A,0x4F, + 0xBA,0x89,0x82,0x42,0x00,0xDA,0xB8,0x81,0x5C,0x9A,0x0E,0xAB,0x9A,0x5C,0x5B,0x9D, + 0x2A,0x43,0x5C,0x9D,0x5A,0x55,0x64,0x4A,0x92,0x89,0x82,0x42,0x05,0xD1,0x62,0x48, + 0x00,0x79,0x40,0x1C,0x00,0x06,0x00,0x0E,0x0D,0x90,0x00,0x20,0x05,0x00,0x03,0x90, + 0x5E,0x98,0x80,0x7E,0xC2,0x07,0x20,0xD0,0x80,0x07,0x0D,0xD5,0x30,0x1B,0x40,0x1C, + 0x00,0xD1,0x75,0x1E,0xA6,0x42,0x04,0xD1,0x01,0x22,0x30,0x04,0x52,0x04,0x80,0x1A, + 0x05,0x43,0x01,0x20,0x10,0xE0,0xA4,0xE0,0x4D,0x9A,0x06,0x98,0x80,0x1A,0x40,0x1C, + 0x01,0xD1,0x06,0x9D,0x6D,0x1E,0x06,0x98,0x90,0x42,0x04,0xD1,0x01,0x22,0x00,0x04, + 0x12,0x05,0x80,0x1A,0x05,0x43,0x02,0x20,0x03,0x90,0x28,0x04,0x01,0xD0,0x35,0x98, + 0x00,0xE0,0x34,0x98,0x00,0x04,0x00,0x14,0x81,0x42,0xB2,0xDB,0x4D,0x99,0x30,0x1D, + 0x41,0x43,0x5A,0x90,0x08,0x19,0x00,0x04,0x00,0x14,0x33,0x90,0x0C,0x98,0xC0,0x04, + 0x0C,0xD5,0x33,0x98,0x4B,0x49,0x40,0x00,0x08,0x5E,0x05,0x99,0x40,0x1A,0x00,0x28, + 0x77,0xDD,0x63,0x9A,0x02,0x21,0x51,0x5E,0x81,0x42,0x72,0xDA,0x04,0x20,0x4E,0x90, + 0x20,0x18,0x59,0x90,0x4E,0x98,0x04,0x27,0x80,0x00,0x58,0x90,0x59,0x98,0x00,0x1F, + 0x0D,0xD4,0x59,0x98,0x00,0x1F,0xB0,0x42,0x09,0xDA,0x4D,0x98,0xC0,0x19,0x57,0x90, + 0x00,0x1F,0x04,0xD4,0x57,0x98,0x06,0x99,0x00,0x1F,0x88,0x42,0x07,0xDB,0x14,0x20, + 0x78,0x43,0x00,0x21,0x19,0xAA,0x80,0x18,0x58,0x9A,0x81,0x50,0x27,0xE0,0x05,0x98, + 0x0C,0x99,0x00,0x04,0x00,0x14,0xC9,0x04,0x04,0xD5,0x04,0x99,0xFB,0xF7,0x0E,0xFE, + 0x00,0x04,0x00,0x14,0x57,0x99,0x5A,0x9A,0x89,0x1E,0x51,0x43,0x59,0x9A,0x89,0x18, + 0x2C,0x4A,0x49,0x00,0x89,0x18,0x20,0x39,0x89,0x8B,0x08,0x1A,0x00,0x04,0x00,0x14, + 0x00,0xD5,0x00,0x20,0x07,0x99,0x00,0x29,0x03,0xD0,0x88,0x42,0x01,0xDD,0x08,0x04, + 0x00,0x14,0x14,0x21,0x79,0x43,0x19,0xAA,0x89,0x18,0x58,0x9A,0x88,0x50,0x7F,0x1E, + 0x3F,0x04,0x3F,0x14,0xBA,0xD5,0x4E,0x98,0x40,0x1E,0x00,0x04,0x00,0x14,0x4E,0x90, + 0xAE,0xD5,0x33,0x98,0x1B,0x4A,0x40,0x00,0x84,0x46,0x80,0x18,0x01,0x00,0x20,0x39, + 0x1E,0x23,0xCB,0x5E,0x05,0x99,0x59,0x1A,0x41,0x91,0x02,0x21,0x41,0x5E,0x05,0x98, + 0x05,0x9B,0x08,0x1A,0x40,0x90,0x33,0x98,0x18,0x21,0x80,0x1B,0x40,0x00,0x80,0x18, + 0x20,0x38,0x41,0x5E,0xC9,0x1A,0x3F,0x91,0x33,0x99,0x89,0x19,0x49,0x00,0x89,0x18, + 0x1A,0xE0,0x3B,0xE1,0xA0,0x79,0x00,0x00,0xF0,0x05,0x00,0x20,0x00,0x79,0x00,0x00, + 0x20,0x79,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xFF,0x0F,0x00,0x00, + 0xD0,0x0A,0x00,0x20,0xF0,0x06,0x00,0x20,0x04,0x0B,0x00,0x20,0xA0,0x7A,0x00,0x00, + 0x40,0x00,0x00,0x20,0xC8,0x02,0x00,0x20,0x08,0x23,0xCB,0x5E,0x05,0x9F,0xDB,0x1B, + 0x3E,0x93,0x16,0x23,0xC3,0x5E,0xDB,0x1B,0x3D,0x93,0x06,0x23,0xCB,0x5E,0xDB,0x1B, + 0x3C,0x93,0x1A,0x23,0xC3,0x5E,0xD8,0x1B,0x3B,0x90,0x0A,0x20,0x08,0x5E,0x0B,0x99, + 0xC0,0x1B,0x3A,0x90,0x60,0x46,0x10,0x5E,0xC0,0x1B,0x48,0x43,0x64,0x21,0xFB,0xF7, + 0x8D,0xFD,0x38,0x90,0x26,0x98,0x02,0x04,0x24,0x98,0x12,0x14,0x03,0x04,0x21,0x98, + 0x00,0x92,0x02,0x04,0x20,0x98,0x1B,0x14,0x01,0x04,0x1F,0x98,0x12,0x14,0x00,0x04, + 0x09,0x14,0x00,0x14,0xFF,0xF7,0x45,0xFB,0x07,0x00,0x2B,0x98,0x02,0x04,0x2A,0x98, + 0x12,0x14,0x01,0x04,0x29,0x98,0x09,0x14,0x00,0x04,0x00,0x14,0xFF,0xF7,0x32,0xFB, + 0x01,0x00,0x38,0x00,0xFF,0xF7,0x2A,0xFB,0x25,0x99,0x7D,0x22,0x52,0x01,0x91,0x42, + 0x07,0xDD,0x81,0x42,0x05,0xDD,0x08,0x1A,0x51,0x10,0x88,0x42,0x01,0xDD,0x01,0x20, + 0x02,0x90,0xFB,0x48,0xFF,0x21,0xC0,0x88,0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06, + 0x01,0xD5,0x01,0x20,0x02,0x90,0xF7,0x48,0x00,0x78,0x00,0x28,0x47,0xD1,0x20,0xA9, + 0x06,0xC9,0x02,0x2C,0x14,0xD1,0x01,0xF0,0xE3,0xFA,0x07,0x00,0x00,0x21,0x26,0x9A, + 0x08,0x00,0x01,0xF0,0xDD,0xFA,0x2A,0xA9,0x06,0xC9,0x3F,0x18,0x00,0x20,0x01,0xF0, + 0xD7,0xFA,0x38,0x18,0x05,0x21,0xFB,0xF7,0x39,0xFD,0x00,0x04,0x00,0x0C,0x13,0xE0, + 0x1F,0x98,0x01,0xF0,0xCD,0xFA,0x07,0x00,0x26,0x9A,0x24,0x98,0x00,0x21,0x01,0xF0, + 0xC7,0xFA,0x3F,0x18,0x29,0xA8,0x07,0xC8,0x01,0xF0,0xC2,0xFA,0x38,0x18,0xC1,0x17, + 0x49,0x0F,0x08,0x18,0x40,0x03,0x00,0x0C,0x25,0x99,0x09,0x1A,0x00,0x29,0x01,0xDC, + 0x25,0x99,0x41,0x1A,0x5F,0x98,0x02,0x8A,0xD9,0x48,0xC0,0x88,0x43,0x06,0x01,0xD4, + 0x66,0x9A,0x92,0x89,0x91,0x42,0x0A,0xDA,0x5F,0x99,0x25,0x9A,0x49,0x8A,0x40,0x06, + 0x01,0xD4,0x66,0x98,0xC1,0x89,0x8A,0x42,0x01,0xDA,0x28,0x04,0x7E,0xD0,0x00,0x2D, + 0x2B,0xD0,0x03,0x98,0xC0,0x07,0x16,0xD0,0x04,0x20,0x00,0x22,0x19,0xAB,0x29,0x04, + 0x06,0xD0,0x14,0x27,0x01,0x00,0x79,0x43,0x5A,0x50,0xC9,0x18,0x4A,0x60,0x05,0xE0, + 0x14,0x27,0x01,0x00,0x79,0x43,0xC9,0x18,0xCA,0x60,0x0A,0x61,0x40,0x1E,0x00,0x04, + 0x00,0x14,0xEC,0xD5,0x11,0xE0,0x04,0x20,0x00,0x22,0x19,0xAB,0x29,0x04,0x04,0xD0, + 0x81,0x00,0x5A,0x50,0xC9,0x18,0x4A,0x61,0x03,0xE0,0x81,0x00,0xC9,0x18,0xCA,0x63, + 0x0A,0x65,0x40,0x1E,0x00,0x04,0x00,0x14,0xF0,0xD5,0xBB,0x48,0x33,0x99,0x32,0x00, + 0x04,0x23,0xFE,0xF7,0x8F,0xFD,0xB6,0x49,0x0A,0x89,0x82,0x42,0x00,0xDD,0x08,0x81, + 0x4A,0x89,0x82,0x42,0x00,0xDA,0x48,0x81,0xB1,0x48,0x01,0x79,0x49,0x1C,0x0A,0x06, + 0x12,0x0E,0x02,0x71,0x92,0x00,0xA1,0x1E,0x12,0x18,0xE0,0x32,0x56,0x91,0x91,0x81, + 0x4D,0x99,0x89,0x1E,0x55,0x91,0x02,0x79,0x92,0x00,0x10,0x18,0xE0,0x30,0xC1,0x81, + 0x00,0x20,0x07,0x00,0x01,0x00,0x84,0x46,0x39,0x90,0x41,0x9A,0x38,0x98,0x82,0x42, + 0x06,0xDC,0x38,0x9A,0x3D,0x98,0x90,0x42,0x02,0xDC,0x3C,0x98,0x90,0x42,0x01,0xDD, + 0x01,0x20,0x39,0x90,0x38,0x9A,0x40,0x98,0x90,0x42,0x05,0xDC,0x3B,0x98,0x90,0x42, + 0x02,0xDC,0x3A,0x98,0x90,0x42,0x01,0xDD,0x01,0x20,0x84,0x46,0x3F,0x98,0x90,0x42, + 0x05,0xDC,0x3D,0x98,0x90,0x42,0x02,0xDC,0x3B,0x98,0x90,0x42,0x00,0xDD,0x01,0x27, + 0x3E,0x98,0x90,0x42,0x07,0xDC,0x3C,0x98,0x90,0x42,0x00,0xE0,0xF5,0xE0,0x02,0xDC, + 0x3A,0x98,0x90,0x42,0x00,0xDD,0x01,0x21,0x04,0x20,0x00,0x22,0x19,0xAD,0x39,0x9B, + 0x00,0x2B,0x02,0xD1,0x14,0x23,0x43,0x43,0xEA,0x50,0x63,0x46,0x00,0x2B,0x03,0xD1, + 0x14,0x23,0x43,0x43,0x5B,0x19,0x1A,0x61,0x00,0x2F,0x01,0xD1,0x83,0x00,0xEA,0x50, + 0x00,0x29,0x02,0xD1,0x83,0x00,0x5B,0x19,0x1A,0x65,0x40,0x1E,0x00,0x04,0x00,0x14, + 0xE5,0xD5,0x1D,0x9A,0x19,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xFC,0xF9,0x4A,0x90, + 0x22,0x9A,0x1E,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xF5,0xF9,0x27,0x9A,0x49,0x90, + 0x23,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xEE,0xF9,0x2C,0x9A,0x48,0x90,0x28,0xA8, + 0x00,0x92,0x0F,0xC8,0x01,0xF0,0xE7,0xF9,0x31,0x9A,0x47,0x90,0x2D,0xA8,0x00,0x92, + 0x0F,0xC8,0x01,0xF0,0xE0,0xF9,0x46,0x90,0x00,0x90,0x47,0x9B,0x48,0x9A,0x49,0x99, + 0x4A,0x98,0x01,0xF0,0xD8,0xF9,0x00,0x28,0x4B,0x90,0x0F,0xD1,0x04,0x27,0x14,0x20, + 0x78,0x43,0x40,0x19,0x0A,0x22,0x00,0x21,0x00,0xF0,0xF2,0xF9,0x7F,0x1E,0x3F,0x04, + 0x3F,0x14,0xF4,0xD5,0x0A,0x20,0x48,0x90,0x25,0x90,0x4B,0x90,0x56,0x98,0x00,0x28, + 0x01,0xDC,0x00,0x20,0x0C,0xE0,0x2D,0x9A,0x00,0x92,0x28,0x9B,0x23,0x9A,0x1E,0x99, + 0x19,0x98,0x01,0xF0,0xB8,0xF9,0x5A,0x4A,0x61,0x00,0x89,0x18,0x49,0x8B,0x48,0x43, + 0x2E,0x9A,0x45,0x90,0x00,0x92,0x29,0x9B,0x24,0x9A,0x1F,0x99,0x1A,0x98,0x01,0xF0, + 0xAA,0xF9,0x53,0x49,0x62,0x00,0x55,0x18,0xA9,0x8B,0x2F,0x9A,0x2A,0x9B,0x48,0x43, + 0x44,0x90,0x00,0x92,0x25,0x9A,0x20,0x99,0x1B,0x98,0x01,0xF0,0x9C,0xF9,0xE9,0x8B, + 0x30,0x9A,0x2B,0x9B,0x48,0x43,0x43,0x90,0x00,0x92,0x26,0x9A,0x21,0x99,0x1C,0x98, + 0x01,0xF0,0x91,0xF9,0x29,0x8C,0x48,0x43,0x56,0x99,0x07,0x00,0x70,0x1E,0x81,0x42, + 0x01,0xDB,0x00,0x20,0x09,0xE0,0x31,0x9A,0x2C,0x9B,0x00,0x92,0x27,0x9A,0x22,0x99, + 0x1D,0x98,0x01,0xF0,0x80,0xF9,0x69,0x8C,0x48,0x43,0x00,0x90,0x43,0x9A,0x44,0x99, + 0x45,0x98,0x3B,0x00,0x01,0xF0,0x77,0xF9,0x4B,0x99,0xFB,0xF7,0xD7,0xFB,0x38,0x49, + 0x0A,0x8C,0x52,0x00,0x80,0x1A,0x00,0xD5,0x00,0x20,0x0A,0x79,0x52,0x00,0x52,0x18, + 0xC0,0x32,0x90,0x81,0x55,0x98,0x00,0x28,0x01,0xDC,0x00,0x20,0x05,0xE0,0x4D,0x98, + 0x4A,0x9A,0x40,0x00,0x40,0x18,0xC0,0x8F,0x50,0x43,0x4D,0x9A,0x2C,0x49,0x52,0x00, + 0x52,0x18,0x40,0x32,0x11,0x88,0x49,0x9B,0x48,0x9D,0x59,0x43,0x53,0x88,0x06,0x9F, + 0x6B,0x43,0x9C,0x46,0x93,0x88,0x47,0x9D,0x7F,0x1E,0x6B,0x43,0x55,0x9D,0xBD,0x42, + 0x01,0xDB,0x00,0x22,0x02,0xE0,0xD2,0x88,0x46,0x9D,0x6A,0x43,0x00,0x92,0x62,0x46, + 0x01,0xF0,0x41,0xF9,0x4B,0x99,0xFB,0xF7,0xA1,0xFB,0x1D,0x49,0x40,0x31,0x89,0x88, + 0x49,0x00,0x40,0x1A,0x00,0xD5,0x00,0x20,0x19,0x49,0x0A,0x79,0x52,0x00,0x52,0x18, + 0xC0,0x32,0xD0,0x83,0x08,0x79,0x08,0x28,0x12,0xD2,0x64,0x1C,0x54,0x98,0x24,0x04, + 0x24,0x14,0x84,0x42,0x00,0xDA,0x91,0xE4,0x42,0x98,0x00,0x28,0x08,0xD1,0x4D,0x98, + 0x40,0x1C,0x00,0x04,0x00,0x14,0x4D,0x90,0x53,0x99,0x88,0x42,0x00,0xDA,0x81,0xE4, + 0x0C,0x98,0x00,0x06,0x60,0xD5,0x0A,0x4C,0x20,0x79,0x00,0x28,0x60,0x98,0x15,0xD1, + 0x80,0x8B,0x00,0x28,0x51,0xD0,0x60,0x98,0x65,0x99,0xE2,0x88,0x40,0x7E,0x09,0x7B, + 0x52,0x06,0x01,0xD4,0x64,0x99,0x09,0x7A,0x88,0x42,0x46,0xD2,0x40,0x1C,0x41,0xE0, + 0xF0,0x05,0x00,0x20,0x05,0x0B,0x00,0x20,0xC8,0x02,0x00,0x20,0x80,0x7E,0x09,0x99, + 0x88,0x42,0x36,0xD8,0x40,0x1C,0x60,0x99,0x00,0x06,0x00,0x0E,0x88,0x76,0x08,0x99, + 0x88,0x42,0x03,0xD9,0xA1,0x89,0x32,0x9A,0x89,0x18,0x32,0x91,0x09,0x99,0x88,0x42, + 0x27,0xD1,0x08,0x99,0x88,0x42,0x24,0xD0,0x41,0x1A,0x32,0x98,0xFB,0xF7,0x20,0xFC, + 0x60,0x9A,0x00,0x21,0x91,0x83,0x65,0x99,0x0A,0x89,0xE1,0x88,0x4B,0x06,0x01,0xD4, + 0x64,0x9A,0x92,0x88,0x82,0x42,0x14,0xD2,0x36,0x9A,0x80,0x1A,0x65,0x9A,0x49,0x06, + 0x92,0x79,0x01,0xD4,0x64,0x99,0x8A,0x78,0x64,0x21,0x50,0x43,0xFB,0xF7,0x08,0xFC, + 0x60,0x99,0x00,0x04,0x00,0x0C,0x88,0x83,0x0A,0x99,0x88,0x42,0x01,0xD9,0x60,0x98, + 0x81,0x83,0x00,0x20,0x60,0x99,0x48,0x76,0x06,0xE0,0x60,0x99,0x00,0x20,0x88,0x76, + 0x60,0x99,0x48,0x76,0x60,0x99,0x88,0x83,0x00,0x20,0x84,0x46,0x4C,0x90,0x59,0x48, + 0x01,0x24,0x00,0x79,0x50,0x90,0x52,0xE0,0x56,0x48,0x61,0x00,0x0F,0x18,0xC0,0x37, + 0xB8,0x89,0x0A,0x21,0xFB,0xF7,0xE4,0xFB,0x05,0x04,0xF8,0x8B,0x2D,0x14,0x0A,0x21, + 0xFB,0xF7,0xDE,0xFB,0x5E,0x99,0x02,0x04,0xC9,0x7E,0x12,0x14,0x00,0x20,0x84,0x46, + 0x51,0x91,0x36,0xE0,0x4B,0x49,0xC3,0x00,0x5B,0x18,0x11,0x21,0x89,0x01,0x59,0x18, + 0x1C,0x27,0x52,0x91,0xCF,0x5F,0xAF,0x42,0x27,0xDC,0x23,0x21,0x49,0x01,0x59,0x18, + 0x00,0x23,0xCB,0x5E,0xAB,0x42,0x20,0xDB,0x52,0x9F,0x1E,0x23,0xFB,0x5E,0x93,0x42, + 0x1B,0xDC,0x02,0x27,0xCF,0x5F,0x3F,0x4B,0x97,0x42,0x16,0xDB,0xA1,0x00,0xC9,0x18, + 0xE0,0x31,0x0E,0x23,0xCB,0x5E,0x37,0x1D,0x9B,0x1C,0x7B,0x43,0x0C,0x27,0xCF,0x5F, + 0xD9,0x19,0x4B,0x00,0x38,0x49,0x5B,0x18,0x04,0x21,0x59,0x5E,0x4C,0x9B,0x99,0x42, + 0x03,0xDD,0x4C,0x91,0x21,0x06,0x09,0x0E,0x8C,0x46,0x40,0x1C,0x51,0x99,0x00,0x04, + 0x00,0x14,0x81,0x42,0xC6,0xDC,0x64,0x1C,0x50,0x98,0x24,0x04,0x24,0x14,0xA0,0x42, + 0xAA,0xDA,0x2C,0x4D,0x4C,0x9A,0x2C,0x00,0x23,0x00,0x69,0x89,0x20,0x00,0xDE,0x33, + 0xCC,0x30,0xC2,0x34,0x91,0x42,0x4F,0x93,0x05,0xDC,0x61,0x46,0x00,0x29,0x02,0xD0, + 0x49,0x00,0x49,0x19,0x0E,0xE0,0x69,0x79,0x00,0x29,0x1B,0xD1,0x50,0x99,0x01,0x29, + 0x18,0xD9,0x62,0x99,0x89,0x78,0x00,0x29,0x14,0xD1,0x0D,0x99,0x00,0x29,0x11,0xD0, + 0x4A,0x00,0x51,0x19,0xC0,0x31,0x8E,0x89,0xCF,0x8B,0x12,0x22,0x00,0x21,0x00,0xF0, + 0x57,0xF8,0x4F,0x98,0x12,0x22,0x00,0x21,0x00,0xF0,0x52,0xF8,0x01,0x20,0x28,0x71, + 0xA6,0x81,0xE7,0x83,0x5E,0x98,0xC0,0x7D,0x00,0x28,0x0C,0xD0,0x00,0x21,0x29,0x71, + 0x5E,0x98,0x12,0x4A,0x00,0x7E,0x92,0x7F,0x90,0x42,0x01,0xD3,0x5E,0x9A,0xD1,0x75, + 0x5E,0x99,0x40,0x1C,0x08,0x76,0x02,0x99,0x0D,0x48,0x00,0x29,0x10,0xD0,0x29,0x79, + 0x00,0x29,0x0D,0xD0,0x0B,0x4A,0x01,0x68,0x52,0x89,0x0A,0x32,0x91,0x42,0x01,0xDA, + 0x49,0x1C,0x01,0x60,0x28,0x79,0x68,0x71,0x67,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x21,0xF6,0xE7,0xF0,0x05,0x00,0x20,0xC8,0x02,0x00,0x20,0x00,0x78,0x00,0x00, + 0xF0,0x0A,0x00,0x20,0x80,0x7A,0x00,0x00,0x03,0xE0,0x0B,0x78,0x49,0x1C,0x03,0x70, + 0x40,0x1C,0x52,0x1E,0xF9,0xD2,0x70,0x47,0x52,0x10,0x03,0xE0,0x0B,0x88,0x89,0x1C, + 0x03,0x80,0x80,0x1C,0x52,0x1E,0xF9,0xD2,0x70,0x47,0x92,0x10,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x09,0x06,0x09,0x0E,0x01,0xE0,0x01,0x70,0x40,0x1C,0x52,0x1E,0xFB,0xD2,0x70,0x47, + 0x92,0x10,0x00,0xE0,0x02,0xC0,0x52,0x1E,0xFC,0xD2,0x70,0x47,0x0A,0x49,0x00,0x20, + 0xC9,0x88,0x4A,0x06,0x09,0x49,0x00,0xD5,0xC8,0x7A,0x89,0x7A,0x08,0x18,0x00,0x06, + 0x01,0x0C,0x07,0x48,0x02,0x69,0xFF,0x23,0x1B,0x02,0x9A,0x43,0x02,0x61,0x02,0x69, + 0x0A,0x43,0x02,0x61,0x70,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0x80,0x78,0x00,0x00, + 0x00,0x90,0x00,0x40,0x10,0xB5,0x14,0x48,0x14,0x49,0x80,0x8B,0xC9,0x8A,0x00,0x24, + 0x40,0x18,0x13,0x49,0x09,0x78,0x00,0x29,0x12,0x49,0x04,0xD0,0x15,0x22,0x52,0x01, + 0x89,0x18,0x49,0x89,0x09,0xE0,0x10,0x4A,0xFF,0x31,0xD2,0x88,0xA1,0x31,0x49,0x8A, + 0x52,0x06,0x02,0xD4,0x0B,0x49,0xE0,0x31,0xC9,0x89,0x08,0x18,0x0B,0x49,0xC9,0x6B, + 0x49,0x04,0x49,0x0C,0x81,0x42,0x00,0xD3,0x01,0x24,0xFE,0xF7,0x71,0xFF,0x20,0x00, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xF0,0x06,0x00,0x20,0xD0,0x0A,0x00,0x20, + 0x04,0x0B,0x00,0x20,0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20,0xC0,0x90,0x00,0x40, + 0xF7,0xB5,0x2C,0x4E,0xFF,0x27,0xB0,0x7F,0xF1,0x7F,0x84,0xB0,0x00,0x02,0x08,0x43, + 0x01,0xF0,0x28,0xFD,0x30,0x00,0x20,0x38,0x00,0x7D,0xC0,0x07,0x0A,0xD0,0x26,0x48, + 0x01,0x78,0x26,0x48,0x00,0x7A,0x00,0x29,0x02,0xD0,0x01,0xF0,0xBB,0xFC,0x01,0xE0, + 0x01,0xF0,0xE8,0xFC,0x22,0x48,0x02,0x25,0xC1,0x6A,0x03,0x91,0x01,0x6A,0x02,0x91, + 0x41,0x6A,0x01,0x91,0x41,0x6B,0x00,0x91,0x21,0xE0,0x1D,0x4F,0x00,0x20,0xF8,0x62, + 0x18,0x48,0xA0,0x30,0x80,0x68,0x38,0x62,0x1A,0x48,0x00,0x6B,0x78,0x62,0x03,0x24, + 0xE0,0x07,0xC0,0x0F,0xFC,0xF7,0xC2,0xF8,0x64,0x1E,0xF9,0xD5,0x02,0x20,0x78,0x63, + 0x30,0x7F,0x01,0x00,0xFC,0xF7,0x3C,0xF9,0x01,0x24,0x04,0xA8,0x07,0xC8,0xFE,0xF7, + 0xB3,0xFE,0x07,0x00,0x01,0xD1,0x00,0x24,0x25,0x00,0x64,0x1E,0xF5,0xD5,0x28,0x00, + 0x6D,0x1E,0x00,0x28,0xD9,0xDC,0x0A,0x48,0x03,0x99,0xC1,0x62,0x02,0x99,0x01,0x62, + 0x01,0x99,0x41,0x62,0x00,0x99,0x41,0x63,0x38,0x00,0x07,0xB0,0xF0,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x20,0x78,0x00,0x00,0xFD,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20, + 0x80,0x90,0x00,0x40,0x80,0x7A,0x00,0x00,0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9, + 0x71,0xDF,0x4D,0xE2,0x00,0x00,0xA0,0xE3,0xB8,0x01,0x8D,0xE5,0x88,0x07,0x9F,0xE5, + 0x8C,0x37,0x9F,0xE5,0x00,0x00,0xD0,0xE5,0x8C,0x67,0x9F,0xE5,0xB0,0x01,0x8D,0xE5, + 0x78,0x07,0x9F,0xE5,0x00,0xB0,0xD0,0xE5,0xB6,0x00,0xD3,0xE1,0x40,0x10,0x00,0xE2, + 0x70,0x07,0x9F,0xE5,0x00,0x00,0x51,0xE3,0x01,0x4C,0x80,0xE2,0xBC,0x1E,0xD0,0x01, + 0xB0,0x1B,0xD4,0x11,0x02,0xAC,0x80,0xE2,0xAC,0x11,0x8D,0xE5,0xB0,0x1F,0xD0,0x01, + 0xB4,0x1B,0xD4,0x11,0xA8,0x11,0x8D,0xE5,0xF8,0x1A,0xD4,0x01,0xFC,0x16,0xDA,0x11, + 0xA0,0x11,0x8D,0xE5,0xFA,0x1A,0xD4,0x01,0xFE,0x16,0xDA,0x11,0x9C,0x11,0x8D,0xE5, + 0xF4,0x10,0xD0,0x05,0xB8,0x11,0xD0,0x15,0x98,0x11,0x8D,0xE5,0xF5,0x10,0xD0,0x05, + 0xB9,0x11,0xD0,0x15,0x94,0x11,0x8D,0xE5,0xF6,0x10,0xD0,0x05,0xBA,0x11,0xD0,0x15, + 0x90,0x11,0x8D,0xE5,0xF7,0x10,0xD0,0x05,0xBB,0x11,0xD0,0x15,0x8C,0x11,0x8D,0xE5, + 0xBC,0x1F,0xD0,0x01,0xB0,0x1C,0xD4,0x11,0x88,0x11,0x8D,0xE5,0xBE,0x1F,0xD0,0x01, + 0xB2,0x1C,0xD4,0x11,0x84,0x11,0x8D,0xE5,0xB0,0x10,0xD4,0x01,0xB4,0x1C,0xD4,0x11, + 0x80,0x11,0x8D,0xE5,0xB2,0x10,0xD4,0x01,0xB6,0x1C,0xD4,0x11,0x7C,0x11,0x8D,0xE5, + 0xB8,0x1F,0xD0,0x01,0xBC,0x1B,0xD4,0x11,0x78,0x11,0x8D,0xE5,0xBA,0x0F,0xD0,0x01, + 0xBE,0x0B,0xD4,0x11,0x74,0x01,0x8D,0xE5,0x00,0x00,0xA0,0xE3,0x30,0x00,0x8D,0xE5, + 0x2C,0x00,0x8D,0xE5,0x28,0x00,0x8D,0xE5,0x24,0x00,0x8D,0xE5,0x20,0x00,0x8D,0xE5, + 0x1C,0x00,0x8D,0xE5,0x18,0x00,0x8D,0xE5,0x14,0x00,0x8D,0xE5,0x10,0x00,0x8D,0xE5, + 0x0C,0x00,0x8D,0xE5,0x08,0x00,0x8D,0xE5,0x04,0x00,0x8D,0xE5,0xB8,0x05,0xC6,0xE1, + 0x00,0x90,0xA0,0xE1,0xBA,0x05,0xC6,0xE1,0x01,0x5C,0x46,0xE2,0xBC,0x05,0xC6,0xE1, + 0x28,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x70,0x00,0x85,0xE2,0x49,0xFF,0xFF,0xEB, + 0x28,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x98,0x00,0x85,0xE2,0x45,0xFF,0xFF,0xEB, + 0x00,0x00,0xA0,0xE3,0xB4,0x01,0x8D,0xE5,0x00,0x10,0xA0,0xE1,0xB0,0x0C,0xC5,0xE1, + 0x50,0x20,0xA0,0xE3,0x49,0x0F,0x8D,0xE2,0x3E,0xFF,0xFF,0xEB,0x50,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0xD4,0x00,0x8D,0xE2,0x3A,0xFF,0xFF,0xEB,0x50,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x84,0x00,0x8D,0xE2,0x36,0xFF,0xFF,0xEB,0x50,0x20,0xA0,0xE3, + 0x00,0x10,0xA0,0xE3,0x34,0x00,0x8D,0xE2,0x32,0xFF,0xFF,0xEB,0x0C,0x06,0x9F,0xE5, + 0x00,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3,0xF8,0x7A,0xDA,0x11,0xB6,0x0A,0xDA,0x11, + 0x07,0x00,0x00,0x1A,0xE8,0x05,0x9F,0xE5,0xB6,0x00,0xD0,0xE1,0x40,0x00,0x00,0xE2, + 0x00,0x00,0x50,0xE3,0xF2,0x71,0xD4,0x01,0xF6,0x7D,0xD4,0x11,0xB0,0x01,0xD4,0x01, + 0xB4,0x0D,0xD4,0x11,0x00,0x80,0xA0,0xE3,0x08,0x50,0xA0,0xE1,0xA4,0x01,0x8D,0xE5, + 0xCC,0x05,0x9F,0xE5,0xC0,0x01,0x8D,0xE5,0x0E,0x0C,0x80,0xE2,0xBC,0x01,0x8D,0xE5, + 0x82,0x00,0x00,0xEA,0x00,0x40,0xA0,0xE3,0x7C,0x00,0x00,0xEA,0xC0,0x01,0x9D,0xE5, + 0x0F,0x2A,0xE0,0xE3,0x08,0x11,0x90,0xE7,0x01,0x0A,0xA0,0xE1,0x20,0x0A,0xA0,0xE1, + 0x21,0x18,0x02,0xE0,0x01,0x30,0x40,0xE0,0x00,0x00,0x41,0xE0,0x9C,0x11,0x9D,0xE5, + 0x03,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3,0xD4,0x20,0x8D,0xC2,0x04,0xC1,0x92,0xC7, + 0x0C,0x10,0x81,0xC0,0x04,0x11,0x82,0xC7,0x9C,0x11,0x9D,0xE5,0x00,0x10,0x81,0xE0, + 0x00,0x00,0x51,0xE3,0x34,0x20,0x8D,0xC2,0x04,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0, + 0x04,0x11,0x82,0xC7,0xA0,0x11,0x9D,0xE5,0x03,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3, + 0x49,0x2F,0x8D,0xC2,0x05,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0,0x05,0x11,0x82,0xC7, + 0xA0,0x11,0x9D,0xE5,0x00,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3,0x84,0x20,0x8D,0xC2, + 0x05,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0,0x05,0x11,0x82,0xC7,0xB4,0x11,0x9D,0xE5, + 0x01,0x00,0x53,0xE1,0xB4,0x31,0x8D,0xC5,0x30,0x40,0x8D,0xC5,0x2C,0x50,0x8D,0xC5, + 0xC8,0x00,0x53,0xE3,0xB8,0x15,0xD6,0xC1,0x01,0x10,0x81,0xC2,0xB8,0x15,0xC6,0xC1, + 0x96,0x00,0x50,0xE3,0xBA,0x15,0xD6,0xC1,0x01,0x10,0x81,0xC2,0xBA,0x15,0xC6,0xC1, + 0x19,0x0E,0x53,0xE3,0xBC,0x15,0xD6,0xC1,0x01,0x10,0x81,0xC2,0xBC,0x15,0xC6,0xC1, + 0xCC,0x14,0x9F,0xE5,0xB6,0x10,0xD1,0xE1,0x40,0x00,0x11,0xE3,0xB0,0x18,0xDA,0xE1, + 0x01,0x28,0xE0,0x13,0x81,0x10,0x02,0x10,0x00,0x00,0x53,0xE3,0x03,0x28,0xA0,0xC1, + 0x00,0x20,0xA0,0xD3,0x22,0x28,0xA0,0xC1,0x00,0x00,0x50,0xE3,0x00,0x08,0xA0,0xC1, + 0x00,0x00,0xA0,0xD3,0x20,0x08,0xA0,0xC1,0x01,0x00,0x50,0xE1,0x01,0xC0,0x89,0x82, + 0x01,0x98,0xCC,0x83,0x01,0x00,0x52,0xE1,0x0C,0xC0,0x9D,0x85,0x01,0xC0,0x8C,0x82, + 0x01,0xC8,0xCC,0x83,0x0C,0xC0,0x8D,0x85,0x81,0x00,0x50,0xE1,0x08,0xC0,0x9D,0x85, + 0x01,0xC0,0x8C,0x82,0x01,0xC8,0xCC,0x83,0x08,0xC0,0x8D,0x85,0x81,0x00,0x52,0xE1, + 0x04,0x10,0x9D,0x85,0x01,0x10,0x81,0x82,0x01,0x18,0xC1,0x83,0x04,0x10,0x8D,0x85, + 0x10,0x10,0x9D,0xE5,0x00,0x00,0x53,0xE3,0x01,0x00,0x80,0xE0,0x10,0x00,0x8D,0xE5, + 0x00,0x30,0xA0,0xB3,0x01,0x00,0x4B,0xE2,0x00,0x00,0x55,0xE1,0x06,0x00,0x00,0x1A, + 0x00,0x00,0x53,0xE3,0x04,0x00,0x00,0x0A,0x03,0x02,0x63,0xE0,0x00,0x01,0xA0,0xE1, + 0x64,0x10,0xA0,0xE3,0xD9,0xEB,0xFF,0xEB,0x00,0x30,0xA0,0xE1,0x05,0x10,0xA0,0xE1, + 0x04,0x00,0xA0,0xE1,0x2A,0xF8,0xFF,0xEB,0x18,0x14,0x9F,0xE5,0x00,0x00,0x57,0xE3, + 0x80,0x00,0x81,0xE0,0xB0,0x30,0xC0,0xE1,0x00,0x00,0x67,0xD2,0x07,0x00,0xA0,0xC1, + 0x03,0x00,0x50,0xE1,0xB8,0x11,0x9D,0xB5,0x07,0x00,0x83,0xB0,0x01,0x00,0x80,0xB0, + 0xB8,0x01,0x8D,0xB5,0x05,0x10,0xA0,0xE1,0x04,0x00,0xA0,0xE1,0xF3,0xF7,0xFF,0xEB, + 0xBC,0x11,0x9D,0xE5,0xE0,0x23,0x9F,0xE5,0x08,0x11,0x91,0xE7,0x80,0x00,0x82,0xE0, + 0x02,0x19,0xC1,0xE3,0x01,0x80,0x88,0xE2,0x01,0x40,0x84,0xE2,0xB0,0x10,0xC0,0xE1, + 0xB0,0x01,0x9D,0xE5,0x00,0x00,0x54,0xE1,0x7F,0xFF,0xFF,0x3A,0x01,0x50,0x85,0xE2, + 0x0B,0x00,0x55,0xE1,0x7A,0xFF,0xFF,0x3A,0x79,0xFA,0xFF,0xEB,0x90,0x63,0x9F,0xE5, + 0xA8,0x01,0x9D,0xE5,0xBE,0x00,0xC6,0xE1,0xAC,0x01,0x9D,0xE5,0x01,0x00,0x10,0xE3, + 0x0A,0x00,0x00,0x0A,0xB0,0x01,0x9D,0xE5,0xA4,0x21,0x9D,0xE5,0x90,0x0B,0x01,0xE0, + 0x64,0x00,0xA0,0xE3,0x90,0x01,0x01,0xE0,0xB8,0x01,0x9D,0xE5,0x92,0x00,0x00,0xE0, + 0x17,0xEC,0xFF,0xEB,0xA8,0x11,0x9D,0xE5,0x01,0x00,0x50,0xE1,0xBE,0x00,0xC6,0x31, + 0xB0,0x01,0x9D,0xE5,0x64,0x10,0xA0,0xE3,0x90,0x01,0x07,0xE0,0x00,0x40,0xA0,0xE3, + 0x22,0x00,0x00,0xEA,0x49,0x0F,0x8D,0xE2,0x04,0x01,0x90,0xE7,0x98,0x11,0x9D,0xE5, + 0x91,0x00,0x00,0xE0,0x07,0x10,0xA0,0xE1,0x09,0xEC,0xFF,0xEB,0x88,0x11,0x9D,0xE5, + 0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1, + 0x82,0xFA,0xFF,0xEB,0x00,0x50,0xA0,0xE1,0x84,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7, + 0x94,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x07,0x10,0xA0,0xE1,0xFC,0xEB,0xFF,0xEB, + 0x84,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x41,0x18,0xA0,0xE1,0x75,0xFA,0xFF,0xEB,0x00,0x00,0x45,0xE0,0x78,0x11,0x9D,0xE5, + 0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x91,0x00,0x00,0xE0,0x84,0x50,0x86,0xE0, + 0x64,0x10,0xA0,0xE3,0x81,0xEB,0xFF,0xEB,0x01,0x40,0x84,0xE2,0xB0,0x07,0xC5,0xE1, + 0x0B,0x00,0x54,0xE1,0xDA,0xFF,0xFF,0x3A,0x64,0x00,0xA0,0xE3,0x9B,0x00,0x07,0xE0, + 0x00,0x40,0xA0,0xE3,0x22,0x00,0x00,0xEA,0xD4,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7, + 0x90,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x07,0x10,0xA0,0xE1,0xE0,0xEB,0xFF,0xEB, + 0x80,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x41,0x18,0xA0,0xE1,0x59,0xFA,0xFF,0xEB,0x00,0x50,0xA0,0xE1,0x34,0x00,0x8D,0xE2, + 0x04,0x01,0x90,0xE7,0x8C,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x07,0x10,0xA0,0xE1, + 0xD3,0xEB,0xFF,0xEB,0x7C,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x4C,0xFA,0xFF,0xEB,0x00,0x00,0x45,0xE0, + 0x74,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x91,0x00,0x00,0xE0, + 0x84,0x50,0x86,0xE0,0x64,0x10,0xA0,0xE3,0x58,0xEB,0xFF,0xEB,0x01,0x40,0x84,0xE2, + 0xB8,0x09,0xC5,0xE1,0xB0,0x01,0x9D,0xE5,0x00,0x00,0x54,0xE1,0xD9,0xFF,0xFF,0x3A, + 0xB4,0x01,0x9D,0xE5,0x00,0x00,0x50,0xE3,0x0D,0x00,0x00,0xDA,0x30,0x00,0x9D,0xE5, + 0x2C,0x10,0x9D,0xE5,0x80,0x00,0x86,0xE0,0x81,0x10,0x86,0xE0,0xB8,0x09,0xD0,0xE1, + 0xB0,0x17,0xD1,0xE1,0x00,0x10,0x81,0xE0,0xB4,0x01,0x9D,0xE5,0x01,0x00,0x40,0xE0, + 0x00,0x08,0xA0,0xE1,0x40,0x08,0xB0,0xE1,0xB0,0x0C,0xC6,0xE1,0x00,0x00,0xA0,0x43, + 0xB0,0x0C,0xC6,0x41,0xB0,0x01,0x9D,0xE5,0x01,0x00,0x40,0xE2,0x9B,0x00,0x01,0xE0, + 0x10,0x00,0x9D,0xE5,0xAA,0xEB,0xFF,0xEB,0xB6,0x10,0xD6,0xE1,0x0C,0x20,0x9D,0xE5, + 0x40,0x00,0x11,0xE3,0x10,0x00,0x00,0x0A,0x82,0x00,0x59,0xE1,0x01,0x20,0xA0,0x83, + 0x24,0x20,0x8D,0x85,0xFA,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83,0x20,0x00,0x8D,0x85, + 0x08,0x00,0x9D,0xE5,0x23,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83,0x1C,0x00,0x8D,0x85, + 0x04,0x00,0x9D,0xE5,0x23,0x00,0x50,0xE3,0x01,0x00,0xA0,0x33,0x18,0x00,0x8D,0x35, + 0x14,0x00,0x59,0xE3,0x13,0x00,0x00,0x9A,0x10,0x00,0x00,0xEA,0x02,0x00,0x59,0xE1, + 0x08,0x00,0x59,0x83,0x01,0x20,0xA0,0x83,0x24,0x20,0x8D,0x85,0x96,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x83,0x20,0x00,0x8D,0x85,0x08,0x00,0x9D,0xE5,0x14,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x83,0x1C,0x00,0x8D,0x85,0x04,0x00,0x9D,0xE5,0x14,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x33,0x18,0x00,0x8D,0x35,0x0A,0x00,0x59,0xE3,0x01,0x00,0x00,0x9A, + 0x01,0x00,0xA0,0xE3,0x14,0x00,0x8D,0xE5,0xC9,0x00,0xD6,0xE5,0x00,0x00,0x50,0xE3, + 0xCA,0x00,0xD6,0xE5,0x03,0x00,0x00,0x0A,0xFA,0x00,0x50,0xE3,0x05,0x00,0x00,0x2A, + 0x01,0x00,0x80,0xE2,0x02,0x00,0x00,0xEA,0x00,0x00,0x50,0xE3,0x01,0x00,0x00,0x0A, + 0x01,0x00,0x40,0xE2,0xCA,0x00,0xC6,0xE5,0x20,0x20,0x8D,0xE2,0x05,0x00,0x92,0xE8, + 0x10,0x00,0x11,0xE3,0x00,0x30,0x82,0xE1,0x18,0x20,0x8D,0xE2,0x05,0x00,0x92,0xE8, + 0x02,0x00,0x00,0xE0,0x00,0x20,0x83,0xE1,0x14,0x00,0x9D,0x15,0x00,0x00,0x50,0x13, + 0x00,0x00,0xA0,0x03,0x01,0x00,0xA0,0x13,0x02,0x00,0x80,0xE1,0x00,0x00,0x50,0xE3, + 0xCA,0x00,0xD6,0x15,0x05,0x00,0x50,0x13,0x02,0x00,0x00,0x8A,0x28,0x00,0x9D,0xE5, + 0x00,0x00,0x50,0xE3,0x07,0x00,0x00,0x0A,0xC4,0x00,0x96,0xE5,0x01,0x00,0x80,0xE2, + 0xC4,0x00,0x86,0xE5,0xC8,0x00,0xD6,0xE5,0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0x12, + 0xC8,0x00,0xC6,0x15,0x0C,0x00,0x00,0xEA,0xC8,0x00,0xD6,0xE5,0x01,0x00,0x80,0xE2, + 0xFF,0x00,0x00,0xE2,0xC8,0x00,0xC6,0xE5,0xB4,0x18,0xDA,0xE1,0x01,0x00,0x50,0xE1, + 0x05,0x00,0x00,0x1A,0x00,0x00,0xA0,0xE3,0xC8,0x00,0xC6,0xE5,0xC4,0x00,0x96,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0xC2,0xC4,0x00,0x86,0xC5,0xCA,0x00,0xD6,0xE5, + 0x0A,0x00,0x50,0xE3,0x05,0x00,0x00,0x2A,0xC4,0x00,0x96,0xE5,0x00,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0xC3,0xC4,0x00,0x86,0xC5,0x00,0x00,0xA0,0xE3,0xC8,0x00,0xC6,0xE5, + 0x71,0xDF,0x8D,0xE2,0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00,0xF0,0x06,0x00,0x20, + 0x04,0x0B,0x00,0x20,0x00,0x02,0x10,0x40,0xC8,0x02,0x00,0x20,0x40,0x00,0x00,0x20, + 0xF0,0xB5,0xC9,0x49,0xC7,0x4F,0xC9,0x88,0xB8,0x7D,0xC8,0x4C,0x00,0x25,0x49,0x06, + 0x8D,0xB0,0x00,0xD4,0xA0,0x7C,0x03,0x90,0xC2,0x48,0x40,0x38,0x42,0x79,0x06,0x00, + 0xC0,0x36,0x00,0x92,0x82,0x79,0x80,0x30,0x01,0x7B,0xC0,0x38,0xB3,0x7A,0x00,0x7A, + 0xFE,0xF7,0x47,0xFB,0x00,0x06,0x71,0x7A,0x00,0x0E,0xFE,0xF7,0x37,0xFB,0x31,0x00, + 0x20,0x39,0x0A,0x7A,0xC0,0x39,0x00,0x06,0x0C,0x91,0x09,0x79,0x00,0x0E,0xFE,0xF7, + 0x31,0xFB,0x00,0x06,0xBA,0x7D,0xA1,0x7C,0x00,0x0E,0xFE,0xF7,0x2B,0xFB,0x00,0x06, + 0xB3,0x4E,0x00,0x0E,0x02,0x90,0x30,0x7B,0x00,0x28,0x02,0xD0,0xB1,0x48,0x40,0x89, + 0x0A,0xE0,0xAD,0x49,0x78,0x8A,0xC9,0x88,0x49,0x06,0x00,0xD4,0xE0,0x89,0xAE,0x49, + 0xC9,0x8A,0x40,0x18,0x00,0x04,0x00,0x0C,0x00,0x27,0x04,0x90,0x77,0x61,0x30,0x7A, + 0x00,0x28,0x06,0xD0,0x30,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0x8B,0xFA,0x01,0xF0, + 0x79,0xFA,0x01,0x20,0x30,0x62,0xFC,0xF7,0x7D,0xFB,0x9F,0x48,0x9F,0x4A,0x01,0x00, + 0xC0,0x31,0x0A,0x91,0xA0,0x31,0x09,0x91,0x05,0x21,0xC9,0x01,0xE0,0x3A,0x53,0x18, + 0x80,0x32,0x07,0xAC,0x0C,0xC4,0x02,0x9A,0xD2,0x1C,0x06,0x92,0x4A,0x00,0x84,0x18, + 0x40,0x18,0x05,0x90,0x11,0xE1,0x30,0x7A,0x00,0x28,0x04,0xD0,0x30,0x6B,0x00,0x04, + 0x00,0x0C,0x01,0xF0,0x67,0xFA,0xFF,0x20,0x81,0x30,0xFB,0xF7,0x37,0xF9,0x03,0x20, + 0x01,0xF0,0xA0,0xF9,0x00,0xF0,0x68,0xF9,0x01,0x20,0x40,0x05,0xFC,0xF7,0xCA,0xFD, + 0xFF,0xF7,0x9A,0xFB,0x00,0x20,0xFC,0xF7,0xC5,0xFD,0x87,0x48,0xC0,0x88,0x01,0x06, + 0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5,0x05,0x20,0x00,0xE0,0x03,0x20, + 0x01,0xF0,0x64,0xF8,0xFC,0xF7,0xFA,0xFD,0x84,0x48,0x04,0x99,0x80,0x8B,0x40,0x18, + 0x7D,0x49,0x89,0x89,0x88,0x42,0x10,0xD9,0x09,0x98,0x40,0x78,0x00,0x28,0x0C,0xD1, + 0x79,0x48,0xFF,0x21,0xC0,0x88,0x19,0x31,0x08,0x42,0x06,0xD1,0x03,0x98,0x6D,0x1C, + 0x85,0x42,0x03,0xDD,0xFC,0xF7,0xEA,0xFD,0x00,0xE0,0x00,0x25,0x00,0xF0,0x32,0xFE, + 0x00,0xF0,0xB4,0xFD,0x00,0xF0,0x08,0xFE,0x08,0x99,0x0A,0x98,0x49,0x88,0x40,0x68, + 0x88,0x42,0x0A,0xDB,0x09,0x98,0x40,0x78,0x00,0x28,0x04,0xD1,0x6A,0x48,0x46,0x21, + 0xC0,0x88,0x08,0x42,0x01,0xD0,0x01,0x20,0x70,0x70,0xFC,0xF7,0x9D,0xFD,0xFD,0xF7, + 0x51,0xFF,0x00,0x28,0x08,0xD0,0x77,0x61,0x05,0x98,0x80,0x7B,0xC8,0x28,0x10,0xD2, + 0x05,0x99,0x40,0x1C,0x88,0x73,0x0C,0xE0,0x70,0x69,0x40,0x1C,0x70,0x61,0x70,0x69, + 0x01,0x28,0x01,0xD1,0x62,0x48,0x07,0x73,0x70,0x69,0x05,0x28,0x01,0xD9,0xFC,0xF7, + 0xF1,0xFA,0x01,0x20,0x40,0x07,0x00,0x68,0x00,0x28,0x07,0xD1,0x60,0x68,0xFF,0x21, + 0xFF,0x31,0x88,0x42,0x03,0xDA,0x40,0x1C,0x60,0x60,0x00,0xE0,0x67,0x60,0x08,0x99, + 0x20,0x68,0x49,0x89,0x88,0x42,0x09,0xDD,0x60,0x68,0xFF,0x21,0xF5,0x31,0x88,0x42, + 0x04,0xDD,0x01,0x20,0x70,0x70,0x27,0x60,0x67,0x60,0x02,0xE0,0x70,0x78,0x00,0x28, + 0x02,0xD0,0xFC,0xF7,0xE1,0xFA,0x12,0xE0,0x4E,0x48,0x41,0x68,0x09,0x07,0x07,0xD5, + 0xC1,0x68,0x00,0x29,0x04,0xD0,0xC0,0x68,0x01,0x21,0x49,0x07,0xC8,0x63,0x06,0xE0, + 0x70,0x7B,0x80,0x28,0x01,0xD1,0xFC,0xF7,0xD7,0xFB,0x00,0xF0,0x1F,0xF9,0xFC,0xF7, + 0xFB,0xFD,0x70,0x78,0x00,0x28,0x0B,0xD0,0x3C,0x48,0x01,0x21,0xE0,0x38,0xC0,0x7F, + 0x40,0x08,0x01,0xF0,0x27,0xF8,0x3A,0x48,0x47,0x70,0x0A,0x98,0x47,0x60,0x5A,0xE0, + 0x07,0x98,0x00,0x7B,0x00,0x28,0x04,0xD0,0x30,0x7B,0x00,0x28,0x01,0xD1,0x00,0xF0, + 0xBF,0xF8,0x01,0x20,0x40,0x07,0xC0,0x6B,0x0B,0x28,0x4C,0xD1,0x07,0x98,0x00,0x7A, + 0x00,0x28,0x01,0xD0,0xFF,0xF7,0x2A,0xFA,0x00,0xF0,0x9A,0xF8,0x03,0x20,0x01,0xF0, + 0xB3,0xF8,0xF0,0x62,0x03,0x20,0x01,0xF0,0xE1,0xF8,0xFF,0x20,0x81,0x30,0xFB,0xF7, + 0x5D,0xF8,0x2D,0x48,0x00,0x78,0x00,0x28,0x2F,0xD1,0xFC,0xF7,0xA3,0xFE,0x00,0x28, + 0x2B,0xD0,0xB0,0x6A,0x00,0x28,0x0B,0x90,0x27,0xD0,0xF0,0x6A,0xFF,0x21,0x41,0x31, + 0x48,0x43,0x26,0x49,0xFA,0xF7,0x14,0xFD,0x0B,0x99,0x08,0x1A,0x32,0x28,0x1C,0xDD, + 0x01,0xF0,0x86,0xF9,0x01,0xF0,0x8A,0xF9,0xB0,0x79,0x00,0x28,0x0D,0xD0,0x00,0xF0, + 0x4D,0xF8,0x00,0xF0,0x50,0xF8,0x00,0xF0,0x58,0xF8,0x1D,0x4E,0x01,0x20,0x70,0x60, + 0xFB,0xF7,0x44,0xF8,0x1B,0x48,0x70,0x60,0x03,0xE0,0x1B,0x48,0x01,0x78,0x00,0x29, + 0xFC,0xD0,0x01,0xF0,0x7A,0xF9,0x18,0x48,0x07,0x70,0x0D,0x4E,0x70,0x69,0x06,0x99, + 0x88,0x42,0x00,0xD2,0xE7,0xE6,0x0C,0x98,0x0B,0x49,0x40,0x78,0xA0,0x39,0x48,0x73, + 0x07,0x48,0x00,0x7A,0x00,0x28,0x01,0xD0,0x01,0xF0,0x44,0xF9,0x0D,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0xA0,0x79,0x00,0x00,0xF0,0x05,0x00,0x20,0xE0,0x78,0x00,0x00, + 0xF8,0x0A,0x00,0x20,0xA0,0x7A,0x00,0x00,0xD0,0x0A,0x00,0x20,0xF0,0x06,0x00,0x20, + 0x90,0x08,0x00,0x20,0x00,0x40,0x00,0x30,0xAD,0x0B,0x00,0x20,0x10,0x27,0x00,0x00, + 0x00,0x30,0x00,0x40,0xE1,0x04,0x00,0x00,0xAC,0x0B,0x00,0x20,0x01,0x20,0x80,0x07, + 0x01,0x6B,0x81,0x22,0xD2,0x01,0x11,0x43,0x01,0x63,0x70,0x47,0x00,0x20,0x01,0x21, + 0x89,0x07,0x48,0x60,0x70,0x47,0x10,0x20,0x81,0x06,0x48,0x60,0x70,0x47,0x01,0x22, + 0x92,0x07,0x91,0x68,0x01,0x43,0x91,0x60,0x70,0x47,0x01,0x20,0x80,0x07,0x41,0x68, + 0x02,0x22,0x11,0x43,0x41,0x60,0x70,0x47,0x01,0x20,0x80,0x07,0x01,0x6B,0x03,0x4A, + 0x89,0x09,0x52,0x7B,0x89,0x01,0x11,0x43,0x01,0x63,0x70,0x47,0x00,0x78,0x00,0x00, + 0x10,0xB5,0xFC,0xF7,0x79,0xFC,0xFA,0xF7,0xBF,0xFC,0x03,0x20,0x40,0x03,0xFA,0xF7, + 0xC5,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47,0x03,0x20,0x10,0xB5,0x40,0x03,0xFA,0xF7, + 0xC5,0xFF,0xFA,0xF7,0xBB,0xFC,0xFC,0xF7,0x6F,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0xB5,0x00,0xF0,0xC5,0xFB,0x05,0x49,0x80,0x22,0xC9,0x88,0x11,0x40,0x81,0x42, + 0x01,0xD0,0xFA,0xF7,0xE3,0xFE,0x08,0xBC,0x18,0x47,0x00,0x00,0xF0,0x05,0x00,0x20, + 0xFE,0xB5,0x16,0x48,0x17,0x4E,0x00,0x78,0x00,0x25,0x01,0x90,0x14,0x48,0x00,0x78, + 0x00,0x90,0x1C,0xE0,0x14,0x49,0x68,0x00,0x00,0x24,0x47,0x18,0x60,0x37,0x12,0xE0, + 0x29,0x00,0x20,0x00,0xFD,0xF7,0x2C,0xFC,0x0F,0x4B,0x62,0x00,0xD3,0x18,0x98,0x22, + 0x9A,0x5E,0x10,0x23,0xFB,0x5E,0x40,0x00,0x31,0x5E,0xD2,0x18,0x89,0x1A,0x00,0xD5, + 0x00,0x21,0x64,0x1C,0x31,0x52,0x01,0x98,0x84,0x42,0xE9,0xD3,0x6D,0x1C,0x00,0x98, + 0x85,0x42,0xDF,0xD3,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20,0xF0,0x05,0x00,0x20,0xF8,0xB5,0x66,0x4F, + 0x00,0x26,0x78,0x7A,0xC0,0x07,0x17,0xD0,0x64,0x4C,0x20,0x89,0x00,0x28,0x0E,0xD0, + 0x63,0x49,0x88,0x42,0x0B,0xD0,0x1E,0x21,0x48,0x43,0x64,0x21,0xFA,0xF7,0x28,0xFC, + 0x79,0x8A,0x46,0x18,0x4B,0x20,0xC0,0x00,0x86,0x42,0x00,0xD9,0x06,0x00,0x5D,0x48, + 0x40,0x7D,0x00,0x28,0x00,0xD0,0xA6,0x89,0x01,0x24,0x64,0x07,0x25,0x68,0x00,0x2D, + 0x7E,0xD0,0x59,0x48,0x00,0x21,0x01,0x70,0x02,0x20,0x00,0xF0,0xC7,0xFF,0x57,0x48, + 0x0A,0x21,0x00,0x6B,0xFA,0xF7,0x0C,0xFC,0x01,0x00,0x02,0x20,0x00,0xF0,0xAA,0xFF, + 0x01,0x2D,0x0B,0xD0,0x02,0x2D,0x08,0xD1,0x60,0x68,0x00,0x02,0x00,0x0E,0x01,0x28, + 0x03,0xD1,0x60,0x68,0x00,0x06,0x00,0xD1,0x00,0xE0,0x6D,0x1C,0x78,0x7A,0x00,0x28, + 0x08,0xD0,0x60,0x68,0x4A,0x49,0x81,0x43,0x04,0xD0,0x61,0x68,0x49,0x48,0x88,0x43, + 0x00,0xD0,0x6D,0x1C,0xF8,0x79,0x00,0x28,0x04,0xD1,0x47,0x48,0x41,0x69,0x02,0x15, + 0x11,0x43,0x41,0x61,0x45,0x48,0x01,0x68,0x45,0x48,0xC1,0x61,0x02,0x24,0x20,0x00, + 0x00,0xF0,0x88,0xFF,0x43,0x48,0xC1,0x68,0x49,0x08,0x49,0x00,0xC1,0x60,0x03,0x04, + 0x35,0x48,0x36,0x4A,0x41,0x7A,0x3E,0x48,0x97,0x89,0x21,0xE0,0x42,0x69,0x52,0x06, + 0x0E,0xD4,0x00,0x29,0x01,0xD0,0xAC,0x42,0x04,0xD2,0xA2,0x00,0xD2,0x18,0x12,0x68, + 0xC2,0x61,0x04,0xE0,0xCA,0x07,0x01,0xD0,0xC6,0x61,0x00,0xE0,0xC7,0x61,0x64,0x1C, + 0x2D,0x4A,0x12,0x78,0x00,0x2A,0x0B,0xD0,0xFD,0xF7,0xB6,0xFC,0x26,0x48,0x01,0x7A, + 0x00,0x29,0x07,0xD0,0x00,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0x1B,0xF8,0x01,0xE0, + 0xAC,0x42,0xDB,0xD9,0x02,0x20,0x00,0xF0,0x61,0xFF,0x23,0x4D,0x28,0x78,0x00,0x28, + 0x27,0xD1,0xFD,0xF7,0xC7,0xFB,0x00,0x28,0x23,0xD0,0x20,0x48,0x0A,0x21,0x00,0x6B, + 0xFA,0xF7,0x9E,0xFB,0x01,0x00,0x02,0x20,0x00,0xF0,0x3C,0xFF,0x02,0x20,0x00,0xE0, + 0x26,0xE0,0x00,0xF0,0x3F,0xFF,0x14,0x4C,0x0C,0xE0,0x28,0x78,0x00,0x28,0x09,0xD0, + 0xFD,0xF7,0x8A,0xFC,0x20,0x7A,0x00,0x28,0x04,0xD0,0x20,0x6B,0x00,0x04,0x00,0x0C, + 0x00,0xF0,0xF0,0xFF,0xFD,0xF7,0xA6,0xFB,0x00,0x28,0xEE,0xD1,0x02,0x20,0x00,0xF0, + 0x35,0xFF,0x14,0x49,0xC8,0x68,0x01,0x22,0x10,0x43,0xC8,0x60,0x00,0xF0,0x28,0xF8, + 0x05,0x48,0xC0,0x79,0x00,0x28,0x03,0xD1,0x01,0x20,0x80,0x02,0xFA,0xF7,0xA6,0xFE, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xF8,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20, + 0xFF,0x0F,0x00,0x00,0x30,0x0A,0x00,0x20,0xAD,0x0B,0x00,0x20,0x00,0x78,0x00,0x00, + 0x00,0x00,0x4E,0x1D,0x00,0x80,0x4E,0x1D,0x40,0x00,0x00,0x40,0x04,0x00,0x00,0x20, + 0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x05,0x48,0x01,0x21,0x00,0xB5,0xC9,0x02,0x01,0x62,0x00,0x21,0x01,0x62,0xFD,0xF7, + 0x85,0xFE,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x40,0x18,0x70,0x47, + 0x40,0x18,0x80,0x18,0x70,0x47,0x10,0xB4,0x40,0x18,0x01,0x9C,0x80,0x18,0xC0,0x18, + 0x00,0x19,0x10,0xBC,0x70,0x47,0x00,0x00,0xF8,0xB5,0x00,0x21,0x01,0x23,0x5B,0x07, + 0x18,0x68,0x13,0x4A,0x90,0x72,0x90,0x7A,0x01,0x28,0x01,0xD1,0x01,0x21,0x0D,0xE0, + 0x01,0x28,0x00,0xD9,0x02,0x21,0x00,0x28,0x08,0xD1,0x0D,0x48,0x20,0x22,0x00,0x21, + 0x0C,0x30,0xFF,0xF7,0x05,0xF8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x13,0x25, + 0x08,0x4C,0xAD,0x01,0x08,0xE0,0x46,0x18,0xB6,0x00,0xF6,0x18,0x36,0x68,0x87,0x00, + 0x3F,0x19,0x7F,0x19,0x40,0x1C,0xFE,0x60,0x96,0x7A,0x86,0x42,0xF3,0xD8,0xEA,0xE7, + 0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x70,0xB5,0x1E,0x49,0x1C,0x4C,0x0D,0x00, + 0x20,0x78,0xA1,0x22,0xFF,0x35,0x92,0x00,0xBF,0x35,0x8E,0x18,0x00,0x28,0x0E,0xD0, + 0x5A,0x22,0x21,0x1D,0x28,0x00,0xFE,0xF7,0xBF,0xFF,0x17,0x49,0x09,0x22,0x30,0x00, + 0xFE,0xF7,0xBA,0xFF,0x20,0x78,0x60,0x70,0x70,0xBC,0x08,0xBC,0x18,0x47,0x09,0x22, + 0x00,0x21,0x30,0x00,0xFE,0xF7,0xCC,0xFF,0x5A,0x22,0x00,0x21,0x28,0x00,0xFE,0xF7, + 0xC7,0xFF,0x0D,0x48,0x5A,0x22,0x00,0x21,0x63,0x38,0xFE,0xF7,0xC1,0xFF,0x0A,0x48, + 0x09,0x22,0x00,0x21,0x09,0x38,0xFE,0xF7,0xBB,0xFF,0x00,0x20,0x05,0x49,0x60,0x70, + 0xA0,0x70,0xCA,0x88,0x23,0x23,0x9A,0x43,0xCA,0x80,0x04,0x49,0x88,0x75,0xDB,0xE7, + 0x50,0x07,0x00,0x20,0xF0,0x05,0x00,0x20,0x6B,0x08,0x00,0x20,0x30,0x0A,0x00,0x20, + 0xF3,0xB5,0x93,0x48,0x91,0xB0,0x40,0x7E,0x02,0x90,0x92,0x48,0x00,0x78,0x00,0x28, + 0x91,0x48,0x18,0xD0,0x0B,0x21,0x89,0x01,0x40,0x18,0x01,0x8A,0x8F,0x4A,0x1A,0x26, + 0x07,0x91,0x41,0x8A,0x1C,0x27,0x06,0x91,0x81,0x8A,0x05,0x91,0x1E,0x21,0x41,0x5E, + 0x04,0x91,0x00,0x21,0x51,0x5E,0x03,0x91,0x16,0x21,0x18,0x22,0x86,0x5F,0xC7,0x5F, + 0x41,0x5E,0x82,0x5E,0x16,0xE0,0x60,0x30,0xC1,0x8A,0x04,0x22,0x00,0x26,0x07,0x91, + 0x01,0x8B,0x02,0x27,0x06,0x91,0x41,0x8B,0x05,0x91,0x7D,0x49,0x20,0x39,0x8A,0x5E, + 0x04,0x92,0x06,0x22,0x8A,0x5E,0x03,0x92,0x8E,0x5F,0xCF,0x5F,0x1C,0x21,0x1E,0x22, + 0x41,0x5E,0x82,0x5E,0x11,0x98,0x78,0x4C,0x00,0x68,0x41,0x18,0x11,0x98,0x01,0x60, + 0x12,0x98,0x00,0x68,0x81,0x18,0x12,0x98,0x01,0x60,0x60,0x8C,0x00,0x21,0x40,0x1E, + 0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0,0x20,0x8C,0x0A,0x00,0x40,0x1E,0x03,0x04, + 0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0,0xF7,0xFE,0x20,0x8C,0x64,0x21,0x0A,0x90, + 0x60,0x8C,0x09,0x90,0x0A,0x98,0x44,0x08,0x09,0x98,0x45,0x08,0x06,0x98,0x64,0x38, + 0x00,0x28,0x01,0xDC,0x06,0x98,0x08,0x1A,0x0F,0x90,0x05,0x98,0x64,0x38,0x00,0x28, + 0x01,0xDC,0x05,0x98,0x08,0x1A,0x0E,0x90,0x61,0x48,0x01,0x78,0x61,0x48,0x00,0x78, + 0x08,0x90,0x61,0x48,0x80,0x7E,0xC2,0x07,0x0A,0xD0,0x80,0x07,0x03,0xD5,0x49,0x1E, + 0x09,0x06,0x09,0x0E,0x04,0xE0,0x08,0x98,0x40,0x1E,0x00,0x06,0x00,0x0E,0x08,0x90, + 0x20,0x00,0xFA,0xF7,0x63,0xF9,0x0A,0x99,0x08,0x1A,0x40,0x1E,0x0C,0x90,0x08,0x99, + 0x28,0x00,0xFA,0xF7,0x5B,0xF9,0x09,0x99,0x08,0x1A,0x40,0x1E,0x31,0x1E,0x0B,0x90, + 0x00,0xDD,0xA1,0x1B,0x00,0x2F,0x0D,0x97,0x01,0xDD,0xE8,0x1B,0x0D,0x90,0x11,0x98, + 0x00,0x68,0xA0,0x42,0x10,0x90,0x01,0xDB,0x00,0x1B,0x01,0xE0,0x00,0x1B,0x40,0x1C, + 0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x22,0x06,0x00,0x56,0x43,0x37,0x00,0x88,0x42, + 0x0D,0xDD,0x42,0x1A,0x0F,0x98,0x50,0x43,0x86,0x19,0x10,0x00,0x50,0x43,0x0F,0x9A, + 0x50,0x43,0x0C,0x9A,0x12,0x1B,0x51,0x1A,0xFA,0xF7,0x30,0xF9,0xC7,0x19,0x04,0x98, + 0x00,0x28,0x01,0xD1,0x30,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x38,0x00,0x01,0xE0, + 0x70,0x00,0xC0,0x1B,0x64,0x21,0xFA,0xF7,0x21,0xF9,0x07,0x99,0xC9,0x07,0x0A,0xD0, + 0x10,0x99,0xA1,0x42,0x03,0xDB,0x21,0x18,0x11,0x98,0x01,0x60,0x03,0xE0,0x11,0x99, + 0x20,0x1A,0x40,0x1E,0x08,0x60,0x12,0x98,0x07,0x68,0xAF,0x42,0x01,0xDB,0x78,0x1B, + 0x01,0xE0,0x78,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x21,0x04,0x00, + 0x4C,0x43,0x0D,0x99,0x26,0x00,0x88,0x42,0x0E,0xDD,0x41,0x1A,0x0E,0x98,0x0D,0x9A, + 0x48,0x43,0x04,0x19,0x08,0x00,0x48,0x43,0x0E,0x99,0x48,0x43,0x0B,0x99,0x49,0x1B, + 0x89,0x1A,0xFA,0xF7,0xF3,0xF8,0x86,0x19,0x03,0x98,0x00,0x28,0x01,0xD1,0x20,0x00, + 0x05,0xE0,0x01,0x28,0x01,0xD1,0x30,0x00,0x01,0xE0,0x60,0x00,0x80,0x1B,0x64,0x21, + 0xFA,0xF7,0xE4,0xF8,0x07,0x99,0x89,0x07,0x09,0xD5,0xAF,0x42,0x03,0xDB,0x29,0x18, + 0x12,0x98,0x01,0x60,0x03,0xE0,0x12,0x99,0x28,0x1A,0x40,0x1E,0x08,0x60,0x0E,0x48, + 0x02,0x99,0x42,0x8C,0x6B,0x46,0x51,0x1A,0x49,0x1E,0x0A,0x04,0x02,0x99,0x12,0x0C, + 0x06,0xC3,0x01,0x8C,0x02,0x98,0x02,0x9A,0x08,0x1A,0x40,0x1E,0x03,0x04,0x11,0xA8, + 0x03,0xC8,0x1B,0x0C,0x00,0xF0,0x28,0xFE,0x13,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0xA0,0x78,0x00,0x00,0x04,0x0B,0x00,0x20,0x00,0x78,0x00,0x00,0xE0,0x7A,0x00,0x00, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0x30,0x0A,0x00,0x20,0xFE,0xB5,0x66,0x4D, + 0x64,0x48,0x00,0x26,0x29,0x00,0xFF,0x31,0x00,0x96,0x42,0x78,0x61,0x31,0x08,0x78, + 0x00,0x2A,0x28,0xD1,0x00,0x28,0x26,0xD0,0x01,0x24,0x0A,0x20,0x60,0x43,0x47,0x19, + 0x38,0x00,0xFF,0x30,0x6B,0x30,0xFD,0xF7,0xEB,0xFB,0x00,0x28,0x17,0xD0,0x5B,0x48, + 0x81,0x7B,0x00,0x98,0x40,0x1C,0x81,0x42,0x14,0xD3,0xA9,0x19,0x13,0x22,0x00,0x90, + 0xFF,0x20,0x92,0x01,0x65,0x30,0x89,0x18,0xC0,0x5D,0x3A,0x00,0xFF,0x32,0x48,0x70, + 0x76,0x1C,0x65,0x32,0x03,0x20,0x01,0x23,0x69,0x46,0x00,0xF0,0x29,0xFA,0x64,0x1C, + 0x09,0x2C,0xDA,0xDB,0x8F,0xE0,0x49,0x78,0x00,0x29,0x01,0xD1,0x00,0x28,0xF9,0xD0, + 0x15,0x20,0x40,0x01,0x00,0x24,0x2E,0x18,0x13,0x27,0xBF,0x01,0x28,0x19,0xC0,0x19, + 0x40,0x78,0x00,0x28,0x3F,0xD0,0x13,0x21,0x28,0x18,0x49,0x01,0x41,0x18,0xC9,0x7E, + 0x00,0x29,0x02,0xD0,0x32,0x7B,0x00,0x2A,0x14,0xD0,0x05,0x21,0xC9,0x01,0x40,0x18, + 0x00,0x99,0x00,0x79,0x49,0x1C,0x00,0x91,0x0A,0x21,0x48,0x43,0x42,0x19,0xFF,0x32, + 0xBF,0x32,0x02,0x20,0x03,0x23,0x69,0x46,0x00,0xF0,0xFA,0xF9,0x20,0x00,0x14,0x2C, + 0x1E,0xD0,0x1A,0xE0,0x0A,0x20,0x41,0x43,0x48,0x19,0x02,0x90,0xFF,0x30,0x6B,0x30, + 0xFD,0xF7,0x96,0xFB,0x00,0x28,0x13,0xD0,0x00,0x98,0x02,0x9A,0x40,0x1C,0xFF,0x32, + 0x00,0x90,0x65,0x32,0x03,0x20,0x02,0x23,0x69,0x46,0x00,0xF0,0xE1,0xF9,0x07,0xE0, + 0x29,0x18,0xC9,0x19,0x8A,0x78,0x40,0x1C,0x4A,0x70,0x08,0x28,0xF8,0xDB,0x64,0x1E, + 0x64,0x1C,0x08,0x2C,0xBA,0xDB,0x01,0x24,0x23,0x49,0x13,0x22,0x08,0x19,0x52,0x01, + 0x80,0x18,0xC0,0x7E,0x00,0x22,0x01,0x92,0x00,0x28,0x31,0xD0,0x32,0x7B,0x00,0x2A, + 0x2E,0xD1,0x0A,0x22,0x50,0x43,0x45,0x18,0x28,0x00,0xFF,0x30,0x6B,0x30,0xFD,0xF7, + 0x67,0xFB,0x00,0x28,0x24,0xD0,0x19,0x48,0x00,0x9B,0x80,0x7B,0x5B,0x1C,0x98,0x42, + 0x21,0xD3,0x15,0x4A,0x00,0x20,0x11,0x18,0xC9,0x19,0x49,0x78,0xA1,0x42,0x0B,0xD0, + 0x00,0x29,0x06,0xD1,0xFF,0x21,0x65,0x31,0x49,0x5D,0x10,0x18,0xC0,0x19,0x41,0x70, + 0x05,0xE0,0x40,0x1C,0x08,0x28,0xEE,0xDB,0x01,0x98,0x00,0x28,0x08,0xD0,0x2A,0x00, + 0xFF,0x32,0x00,0x93,0x65,0x32,0x03,0x20,0x01,0x23,0x69,0x46,0x00,0xF0,0x98,0xF9, + 0x64,0x1C,0x09,0x2C,0xC0,0xDB,0x00,0x98,0x00,0xF0,0x84,0xFC,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00, + 0xFE,0xB5,0x51,0x48,0x36,0x25,0x45,0x5F,0x51,0x48,0x50,0x4F,0xC4,0x78,0x00,0x26, + 0x02,0x94,0x00,0x79,0x84,0x46,0x4C,0x48,0x80,0x30,0x82,0x7D,0x86,0x46,0x4D,0x48, + 0x81,0x7E,0xC8,0x07,0x0A,0xD0,0x88,0x07,0x03,0xD5,0x64,0x1E,0x24,0x06,0x24,0x0E, + 0x04,0xE0,0x60,0x46,0x40,0x1E,0x00,0x06,0x00,0x0E,0x84,0x46,0x00,0x21,0x27,0xE0, + 0x00,0x20,0x22,0xE0,0x91,0x42,0x05,0xD2,0x90,0x42,0x1D,0xD3,0xA3,0x1A,0x5B,0x1E, + 0x83,0x42,0x19,0xD3,0x63,0x46,0x9B,0x1A,0x5B,0x1E,0x8B,0x42,0x01,0xD2,0x90,0x42, + 0x12,0xD3,0x8B,0x42,0x03,0xD2,0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x0C,0xD3,0x02,0x9B, + 0x4B,0x43,0x1B,0x18,0x9B,0x00,0xFB,0x58,0x1B,0x01,0x1B,0x0D,0xB3,0x42,0x00,0xDD, + 0x1E,0x00,0xAB,0x42,0x00,0xDA,0x1D,0x00,0x40,0x1C,0xA0,0x42,0xDA,0xD3,0x49,0x1C, + 0x61,0x45,0xD5,0xD3,0x1E,0x24,0x70,0x46,0x04,0x5F,0x2B,0x4B,0x2E,0x48,0xA0,0x33, + 0xC0,0x88,0x06,0x22,0x9A,0x5E,0x40,0x06,0x07,0xD5,0x70,0x46,0x80,0x8A,0x01,0x19, + 0x0C,0x04,0x10,0x1A,0x24,0x14,0x02,0x04,0x12,0x14,0x26,0x48,0x80,0x30,0xC1,0x6A, + 0xA6,0x42,0x05,0xDD,0x74,0x46,0x64,0x8B,0xA1,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0, + 0x00,0x29,0x01,0xDD,0x49,0x1E,0xC1,0x62,0x1E,0x49,0x80,0x31,0x09,0x6B,0x95,0x42, + 0x04,0xDA,0x5A,0x88,0x91,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD, + 0x49,0x1E,0x01,0x63,0x74,0x46,0xA4,0x8B,0xC5,0x6A,0x01,0x22,0x11,0x00,0xA5,0x42, + 0x00,0xDC,0x00,0x21,0x9B,0x88,0x00,0x6B,0x98,0x42,0x00,0xDC,0x00,0x22,0x00,0x20, + 0x6B,0x46,0x18,0x70,0x59,0x70,0x00,0x29,0x9A,0x70,0x02,0xD0,0x00,0x2A,0x00,0xD0, + 0x01,0x20,0x6B,0x46,0x11,0x43,0xD8,0x70,0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20, + 0x6B,0x46,0x18,0x71,0x70,0x46,0x00,0x7B,0x69,0x46,0x08,0x5C,0x00,0x28,0x00,0xD0, + 0x80,0x20,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0x00,0x02,0x10,0x40, + 0xF8,0x0A,0x00,0x20,0x30,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0xF8,0xB5,0x22,0x48, + 0x22,0x4C,0xC0,0x88,0x01,0x23,0x22,0x4D,0x41,0x06,0x09,0x20,0x80,0x01,0x21,0x4F, + 0x21,0x4E,0x5B,0x05,0x20,0x18,0x00,0x29,0x0E,0xDA,0x81,0x69,0x69,0x61,0xC1,0x69, + 0xA9,0x61,0x41,0x6A,0x99,0x43,0xE9,0x61,0x81,0x6A,0x29,0x62,0x01,0x6A,0xE9,0x60, + 0x80,0x6B,0x28,0x61,0xE0,0x6A,0x0E,0xE0,0x18,0x49,0x4A,0x69,0x6A,0x61,0x8A,0x69, + 0xAA,0x61,0x0A,0x6A,0x9A,0x43,0xEA,0x61,0x4A,0x6A,0x2A,0x62,0xC9,0x69,0xE9,0x60, + 0x40,0x6B,0x28,0x61,0xA0,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x39,0x00,0xF9,0xF7, + 0xD7,0xFF,0xB0,0x62,0x30,0x7B,0x00,0x28,0x03,0xD0,0x0D,0x48,0xE8,0x60,0x0D,0x48, + 0x28,0x61,0x60,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x39,0x00,0xF9,0xF7,0xC8,0xFF, + 0x70,0x62,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00, + 0xC0,0x90,0x00,0x40,0x10,0x27,0x00,0x00,0xF8,0x0A,0x00,0x20,0x80,0x79,0x00,0x00, + 0x81,0x11,0x01,0x00,0x10,0x00,0x10,0x00,0x0E,0x48,0x0F,0x4A,0x43,0x78,0x0F,0x49, + 0xD0,0x1D,0xC9,0x88,0xFF,0x32,0xF9,0x30,0xC1,0x32,0x02,0x2B,0x04,0xD9,0x12,0x6A, + 0x49,0x06,0x0C,0xD4,0xC2,0x69,0x0A,0xE0,0x02,0x2B,0x04,0xD1,0xD2,0x69,0x49,0x06, + 0x05,0xD4,0x82,0x69,0x03,0xE0,0x92,0x69,0x49,0x06,0x00,0xD4,0x42,0x69,0x04,0x48, + 0x42,0x62,0x70,0x47,0x50,0x07,0x00,0x20,0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20, + 0xC0,0x90,0x00,0x40,0xF0,0xB4,0x0B,0x48,0x0D,0x4B,0xC0,0x88,0x0A,0x49,0x0C,0x4F, + 0x42,0x06,0x0A,0x48,0x01,0x24,0xE4,0x03,0x32,0x25,0x5E,0x00,0x32,0x3F,0x01,0x61, + 0x43,0x61,0x84,0x61,0xC5,0x61,0x04,0x62,0x46,0x62,0x84,0x62,0xC7,0x62,0xF0,0xBC, + 0x70,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0x00,0x80,0x00,0x03,0x40,0xA1,0x00,0x40, + 0x64,0x40,0x00,0x00,0x70,0xB5,0x01,0x25,0x6D,0x03,0x28,0x00,0xFA,0xF7,0xA6,0xFA, + 0x16,0x48,0x04,0x68,0x28,0x00,0xFA,0xF7,0x99,0xFA,0x15,0x4D,0xE2,0x06,0xD2,0x0E, + 0xE0,0x04,0x14,0x49,0xC0,0x0E,0x2A,0x71,0xE8,0x70,0x0B,0x7D,0x12,0x48,0x83,0x76, + 0x4B,0x7D,0xC3,0x76,0x83,0x7E,0x11,0x48,0xDC,0x07,0x0A,0xD0,0x9B,0x07,0x04,0xD5, + 0xEA,0x78,0x52,0x1E,0x02,0x72,0x00,0x22,0x02,0xE0,0x52,0x1E,0x02,0x72,0x01,0x22, + 0x6A,0x71,0x8A,0x7D,0x42,0x72,0xCA,0x7D,0x82,0x72,0x0A,0x7E,0xC2,0x72,0x4A,0x7E, + 0x02,0x73,0x89,0x7E,0x41,0x73,0x70,0xBC,0x08,0xBC,0x18,0x47,0x40,0x90,0x00,0x40, + 0xF8,0x0A,0x00,0x20,0x00,0x78,0x00,0x00,0x30,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20, + 0xF8,0xB5,0x05,0x00,0x0E,0x00,0x14,0x00,0x19,0x00,0x10,0x00,0xFA,0xF7,0x62,0xFF, + 0x00,0x28,0x05,0xD0,0x30,0x68,0x40,0x1E,0x30,0x60,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0x2D,0x48,0x80,0x7E,0xC0,0x07,0x26,0xD0,0xE0,0x79,0x05,0x28,0x21,0xD0,0x09,0x28, + 0x21,0xD1,0x2A,0x49,0x6D,0x08,0x6D,0x00,0x23,0x78,0x01,0x20,0x8C,0x46,0x13,0xE0, + 0x0A,0x22,0x01,0x00,0x51,0x43,0x26,0x4A,0x89,0x18,0x0A,0x00,0xFF,0x32,0xA1,0x32, + 0x97,0x7F,0xBB,0x42,0x07,0xD1,0xFF,0x31,0xC1,0x31,0x0F,0x88,0x67,0x80,0xD2,0x7F, + 0x62,0x70,0x49,0x88,0xA1,0x80,0x40,0x1C,0x61,0x46,0x49,0x78,0x81,0x42,0xE7,0xDA, + 0x01,0xE0,0x01,0x20,0x05,0x43,0x0F,0x20,0xA9,0x07,0x80,0x06,0x81,0x43,0x20,0x78, + 0x3F,0x22,0x92,0x02,0x00,0x07,0x80,0x08,0x01,0x43,0x16,0x48,0x01,0x40,0x60,0x88, + 0x80,0x05,0x80,0x09,0x01,0x43,0x60,0x78,0x91,0x43,0x80,0x06,0x00,0x0C,0x01,0x43, + 0x08,0x04,0x80,0x0E,0x0A,0x28,0x09,0xD2,0x40,0x1C,0x0A,0x23,0x58,0x43,0x3F,0x28, + 0x00,0xDD,0x3F,0x20,0x80,0x06,0x91,0x43,0x00,0x0C,0x01,0x43,0x88,0x0A,0xA1,0x88, + 0x80,0x02,0x01,0x22,0x89,0x05,0x89,0x0D,0x08,0x43,0x31,0x68,0x52,0x07,0x89,0x00, + 0x89,0x18,0x48,0x60,0xA1,0xE7,0x00,0x00,0x30,0x0A,0x00,0x20,0x50,0x07,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xFF,0xFF,0x00,0xFC,0x0E,0x49,0x10,0xB4,0x48,0x7B,0x00,0x28, + 0x10,0xD0,0x00,0x09,0x00,0x01,0x00,0x23,0x01,0x22,0x40,0x28,0x0C,0xD0,0x80,0x28, + 0x08,0xD1,0x4A,0x72,0x8A,0x72,0x08,0x48,0xCA,0x72,0xCA,0x71,0x00,0x78,0x00,0x28, + 0x06,0xD1,0x0B,0x73,0x10,0xBC,0x70,0x47,0x8B,0x71,0xCA,0x71,0x0B,0x72,0xF9,0xE7, + 0x0A,0x73,0xF7,0xE7,0xF8,0x0A,0x00,0x20,0xA0,0x7A,0x00,0x00,0xF8,0xB5,0x06,0x9F, + 0x07,0x9D,0x0C,0x00,0x1E,0x00,0x88,0x42,0x09,0xD3,0x21,0x00,0x10,0x00,0xF9,0xF7, + 0xB5,0xFD,0x38,0x80,0x21,0x00,0x30,0x00,0xF9,0xF7,0xB0,0xFD,0x28,0x80,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0xF8,0xB5,0x08,0xAD,0x60,0xCD,0x04,0x00,0x06,0x98,0x91,0x42, + 0x04,0xDA,0x65,0x80,0xA6,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x99,0x42,0x02,0xDB, + 0x60,0x80,0x07,0x98,0x0F,0xE0,0x8F,0x1A,0x40,0x1B,0x78,0x43,0x99,0x1A,0x00,0x91, + 0xF9,0xF7,0x94,0xFD,0x40,0x19,0x60,0x80,0x07,0x98,0x00,0x99,0x80,0x1B,0x78,0x43, + 0xF9,0xF7,0x8C,0xFD,0x80,0x19,0xA0,0x80,0xE5,0xE7,0x00,0x00,0xF0,0xB4,0x8C,0x79, + 0x00,0x25,0x22,0x07,0x93,0x08,0xCA,0x79,0x52,0x07,0x0B,0xD5,0x10,0x4E,0xB2,0x89, + 0x00,0x2A,0x07,0xD0,0x9B,0x0A,0x97,0x05,0x9B,0x02,0xBF,0x0D,0x3B,0x43,0x64,0x00, + 0xA4,0x19,0xE2,0x81,0x3F,0x22,0x92,0x02,0x93,0x43,0xCA,0x79,0x80,0x00,0x92,0x06, + 0x12,0x0C,0x13,0x43,0x01,0x22,0x52,0x07,0x80,0x18,0x43,0x60,0xC8,0x79,0xC0,0x06, + 0x80,0x0F,0x03,0xD0,0x03,0x48,0x01,0x21,0xC1,0x75,0x05,0x76,0xF0,0xBC,0x70,0x47, + 0xF0,0x05,0x00,0x20,0x30,0x0A,0x00,0x20,0x30,0xB4,0x0E,0x4D,0x0C,0x4C,0x2D,0x78, + 0x68,0x43,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x00,0x0A,0x09,0x0E,0x82,0x18, + 0xC9,0x18,0x00,0x20,0x4B,0x1E,0xC0,0x43,0xFF,0x2B,0x06,0xD2,0x53,0x1E,0xFF,0x2B, + 0x03,0xD2,0x10,0x02,0x08,0x43,0x60,0x53,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0x10,0xB4,0x05,0x4C,0x03,0x4B,0x24,0x78, + 0x60,0x43,0x40,0x18,0x40,0x00,0x1A,0x52,0x10,0xBC,0x70,0x47,0x00,0x00,0x10,0x40, + 0xFB,0x0A,0x00,0x20,0x30,0xB4,0x0E,0x4B,0x0C,0x4C,0x1B,0x78,0x58,0x43,0x40,0x18, + 0x43,0x00,0xE0,0x5A,0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18,0x00,0x20, + 0x4D,0x1E,0xC0,0x43,0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2,0x10,0x02, + 0x08,0x43,0xE0,0x52,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0xFB,0x0A,0x00,0x20,0xF0,0xB4,0x15,0x4A,0x15,0x4B,0x52,0x7D,0x13,0x4F,0x00,0x21, + 0x16,0x02,0x16,0x43,0x1A,0x78,0x10,0x4D,0x42,0x43,0x20,0x3F,0x12,0xE0,0xBB,0x7D, + 0x8B,0x42,0x0D,0xD0,0xFB,0x7D,0x8B,0x42,0x0A,0xD0,0x3B,0x7E,0x8B,0x42,0x07,0xD0, + 0x7B,0x7E,0x8B,0x42,0x04,0xD0,0xBB,0x7E,0x8B,0x42,0x01,0xD0,0x53,0x00,0xEE,0x52, + 0x52,0x1C,0x49,0x1C,0x06,0x4B,0x04,0x00,0x1B,0x78,0x5C,0x43,0xE3,0x18,0x93,0x42, + 0xE5,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x20,0x78,0x00,0x00, + 0xFB,0x0A,0x00,0x20,0xF0,0xB4,0x14,0x4A,0x13,0x4B,0x52,0x7D,0x00,0x21,0x11,0x4C, + 0x15,0x02,0x15,0x43,0x11,0x4E,0x20,0x3B,0x13,0xE0,0x9A,0x7D,0x8A,0x42,0x0D,0xD0, + 0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E,0x8A,0x42,0x07,0xD0,0x5A,0x7E,0x8A,0x42, + 0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00,0xA5,0x52,0x32,0x78,0x80,0x18, + 0x49,0x1C,0x07,0x4A,0x37,0x78,0x12,0x78,0x7A,0x43,0x82,0x42,0xE5,0xD8,0xF0,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0x02,0x04,0x04,0x49,0x02,0x43,0x00,0x20,0x40,0x1C,0x04,0xC1, + 0x80,0x28,0xFB,0xD3,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0xF8,0xB5,0x03,0x00, + 0x1E,0x49,0x05,0x20,0xC0,0x01,0x0A,0x18,0x0B,0x20,0x80,0x01,0x0D,0x18,0xC0,0x31, + 0x08,0x6A,0x19,0x4C,0x00,0x90,0x4F,0x6A,0x0E,0x69,0x28,0x68,0x00,0xF0,0x0C,0xFA, + 0x06,0x04,0x0A,0x12,0x15,0x1F,0x26,0x1C,0xC8,0x68,0x20,0x62,0x50,0x6B,0x60,0x62, + 0x02,0x20,0x04,0xE0,0xC8,0x69,0x20,0x62,0x68,0x68,0x60,0x62,0x04,0x20,0xE0,0x62, + 0x00,0x98,0x11,0xE0,0x26,0x62,0x90,0x6B,0x02,0xE0,0x48,0x69,0x20,0x62,0xD0,0x6B, + 0x60,0x62,0x04,0x20,0xE0,0x62,0x67,0x63,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x26,0x62, + 0x60,0x62,0x04,0x20,0xE0,0x62,0x88,0x6A,0x60,0x63,0xF5,0xE7,0x89,0x69,0x21,0x62, + 0x60,0x62,0x05,0x20,0xE0,0x62,0xEF,0xE7,0x80,0x90,0x00,0x40,0x00,0x78,0x00,0x00, + 0x07,0x4A,0x10,0xB5,0xD1,0x88,0x40,0x23,0x00,0x28,0x01,0xD0,0x19,0x43,0x00,0xE0, + 0x99,0x43,0xD1,0x80,0xFF,0xF7,0x22,0xFD,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xFE,0xB5,0x41,0x4C,0x05,0x00,0x27,0x6A,0x0E,0x00,0x60,0x6A, + 0x02,0x90,0x60,0x6B,0x01,0x90,0xE0,0x6A,0x00,0x90,0x00,0x20,0xFF,0xF7,0x9E,0xFF, + 0x3B,0x48,0x20,0x62,0x22,0x20,0x60,0x62,0x07,0x20,0x40,0x02,0x60,0x63,0x02,0x20, + 0xE0,0x62,0x00,0x20,0xFB,0xF7,0xE6,0xFC,0x36,0x48,0x00,0x7A,0x00,0x28,0x01,0xD0, + 0xFE,0xF7,0xFC,0xF9,0xFB,0xF7,0x2A,0xFD,0x2C,0x00,0x46,0xE0,0x68,0x1E,0x84,0x42, + 0x01,0xD1,0xFB,0xF7,0x4D,0xFD,0xFB,0xF7,0xEF,0xFC,0xFB,0xF7,0x9D,0xFD,0x00,0x2E, + 0x2E,0xD1,0xA8,0x00,0x05,0x21,0xF9,0xF7,0xF3,0xFC,0xA0,0x42,0x03,0xD8,0x01,0x22, + 0x11,0x00,0x04,0x20,0x21,0xE0,0x68,0x00,0x28,0x18,0x05,0x21,0xF9,0xF7,0xE8,0xFC, + 0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x03,0x20,0x16,0xE0,0x68,0x00,0x05,0x21, + 0xF9,0xF7,0xDE,0xFC,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x02,0x20,0x0C,0xE0, + 0x05,0x21,0x28,0x00,0xF9,0xF7,0xD4,0xFC,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00, + 0x10,0x00,0x02,0xE0,0x01,0x22,0x11,0x00,0x00,0x20,0xFB,0xF7,0x73,0xFA,0x0C,0xE0, + 0x68,0x00,0x03,0x21,0xF9,0xF7,0xC4,0xFC,0xA0,0x42,0xDB,0xD9,0x03,0x21,0x28,0x00, + 0xF9,0xF7,0xBE,0xFC,0xA0,0x42,0xE9,0xD8,0xDE,0xE7,0x64,0x1E,0xB6,0xD2,0x0E,0x48, + 0x44,0x88,0x03,0xE0,0xFB,0xF7,0xA8,0xFC,0xFB,0xF7,0x56,0xFD,0x64,0x1E,0xF9,0xD2, + 0xFB,0xF7,0xCC,0xFC,0x05,0x48,0x07,0x62,0x02,0x99,0x41,0x62,0x01,0x99,0x41,0x63, + 0x00,0x99,0xC1,0x62,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x80,0x90,0x00,0x40, + 0x01,0x02,0x00,0x00,0x80,0x78,0x00,0x00,0xE0,0x7A,0x00,0x00,0x30,0xB4,0x0D,0x4D, + 0xEC,0x7B,0x00,0x2C,0x13,0xD0,0x02,0x68,0x0B,0x68,0xA4,0x07,0x03,0xD5,0x2C,0x8C, + 0xA2,0x1A,0x52,0x1E,0x02,0x60,0xEC,0x7B,0x64,0x07,0x03,0xD5,0x6C,0x8C,0xE3,0x1A, + 0x5B,0x1E,0x0B,0x60,0xEC,0x7B,0xE4,0x07,0x01,0xD0,0x03,0x60,0x0A,0x60,0x30,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x78,0x00,0x00,0x02,0x49,0x00,0x03,0x40,0x18,0xC0,0x68, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47, + 0xAD,0x0B,0x00,0x20,0x30,0xB4,0x05,0x03,0x05,0x48,0x02,0x9C,0x28,0x18,0x02,0x60, + 0x41,0x60,0x00,0x2B,0x00,0xD0,0x03,0x61,0x84,0x60,0x30,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x20,0x00,0x40,0x02,0x4A,0x00,0x03,0x80,0x18,0x01,0x60,0x70,0x47,0x00,0x00, + 0x00,0x20,0x00,0x40,0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32, + 0x11,0x43,0x81,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x03,0x04,0x48, + 0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x91,0x43,0x81,0x60,0x70,0x47,0x00,0x00, + 0x00,0x20,0x00,0x40,0x0F,0x49,0x89,0x7B,0x81,0x42,0x00,0xD2,0x08,0x00,0x01,0x22, + 0x52,0x07,0x01,0x28,0x0C,0xD1,0x91,0x68,0x8B,0x0F,0xDB,0x07,0x04,0xD0,0x89,0x00, + 0x89,0x08,0x83,0x07,0xC9,0x18,0x01,0xE0,0x89,0x00,0x89,0x08,0x51,0x60,0x07,0xE0, + 0x01,0x28,0x05,0xD9,0x01,0x21,0xC9,0x07,0x83,0x05,0x9B,0x0D,0x19,0x43,0xF5,0xE7, + 0x10,0x60,0x70,0x47,0x00,0x78,0x00,0x00,0xF8,0xB5,0x17,0x4B,0x00,0x24,0x98,0x7A, + 0x00,0x28,0x25,0xD0,0x00,0x20,0x13,0x26,0x14,0x4D,0xB6,0x01,0x12,0xE0,0x81,0x00, + 0x49,0x19,0x89,0x19,0xCA,0x68,0x97,0x0F,0xFF,0x07,0x0A,0xD0,0x92,0x00,0x01,0x27, + 0x92,0x08,0xFF,0x07,0xD2,0x19,0x64,0x1C,0xCA,0x60,0xA1,0x00,0xBF,0x08,0xC9,0x19, + 0x4A,0x60,0x40,0x1C,0x99,0x7A,0x81,0x42,0xE9,0xDC,0x07,0x48,0x09,0x22,0x00,0x21, + 0x40,0x1C,0xFE,0xF7,0xDD,0xF8,0x20,0x00,0xFF,0xF7,0xB4,0xFF,0xFC,0xF7,0xF2,0xFC, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20, + 0x08,0x48,0x10,0xB5,0x04,0x04,0x24,0x0C,0x07,0x49,0x00,0x22,0x20,0x00,0xF9,0xF7, + 0xF7,0xFB,0x05,0x4A,0x05,0x49,0x20,0x00,0x00,0x23,0xF9,0xF7,0xF9,0xFB,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0x00,0x03,0x00,0x00,0xC8,0x02,0x00,0x20, + 0x70,0xB5,0x05,0x00,0x08,0x48,0x00,0x22,0x04,0x04,0x24,0x0C,0x40,0x21,0x20,0x00, + 0xF9,0xF7,0xDE,0xFB,0x40,0x22,0x29,0x00,0x20,0x00,0x00,0x23,0xF9,0xF7,0xE0,0xFB, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xC0,0x75,0x00,0x00,0x02,0x4B,0x58,0x60, + 0x99,0x60,0x1A,0x60,0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40,0x01,0x04,0x00,0xB5, + 0x03,0x48,0x02,0x22,0x09,0x0C,0xFF,0xF7,0xF1,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xE1,0x04,0x00,0x00,0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47, + 0x00,0x30,0x00,0x40,0x02,0x48,0x01,0x68,0x49,0x08,0x49,0x00,0x01,0x60,0x70,0x47, + 0x00,0x30,0x00,0x40,0x02,0x49,0x02,0x22,0x0A,0x61,0x88,0x60,0x70,0x47,0x00,0x00, + 0x00,0x30,0x00,0x40,0x01,0x49,0x01,0x20,0x08,0x70,0x70,0x47,0xAC,0x0B,0x00,0x20, + 0x00,0x04,0x00,0x0C,0x01,0x21,0x89,0x07,0x08,0x61,0x70,0x47,0x01,0x20,0x80,0x07, + 0x81,0x68,0x82,0x15,0x11,0x43,0x81,0x60,0x70,0x47,0x01,0x21,0x89,0x07,0x88,0x68, + 0x8A,0x15,0x90,0x43,0x88,0x60,0x70,0x47,0x70,0xB4,0x03,0xAC,0x30,0xCC,0x06,0x68, + 0x96,0x42,0x01,0xDB,0x32,0x00,0x00,0xE0,0x02,0x60,0x9A,0x42,0x00,0xDD,0x03,0x60, + 0x08,0x68,0xA0,0x42,0x00,0xDA,0x0C,0x60,0x08,0x68,0xA8,0x42,0x00,0xDD,0x0D,0x60, + 0x70,0xBC,0x70,0x47,0x00,0x47,0x00,0x00,0x78,0x47,0xC0,0x46,0x01,0xC0,0x5E,0xE5, + 0x0C,0x00,0x53,0xE1,0x03,0x30,0xDE,0x37,0x0C,0x30,0xDE,0x27,0x83,0xC0,0x8E,0xE0, + 0x1C,0xFF,0x2F,0xE1,0x10,0xB5,0xF9,0xF7,0x73,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x01,0x00,0x00,0x00,0x01,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00, + 0x89,0x08,0x49,0x1E,0xC9,0x04,0x01,0x22,0xC9,0x08,0xD2,0x07,0x89,0x18,0x40,0x04, + 0x40,0x0C,0x01,0x43,0x03,0x48,0x41,0x61,0x41,0x69,0x00,0x29,0xFC,0xDB,0x80,0x6B, + 0x70,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0B,0x30,0x0B,0x30,0x04,0x03,0x03,0x00,0x01,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,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,0xFF,0x00,0x00,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xF3,0xFF,0x0F,0x00,0xF1,0xFF,0x0F,0x01,0xE5,0xFF,0x0F,0x02,0xEC,0xFF,0x0F,0x03, + 0xCE,0xFF,0x0F,0x04,0xDE,0xEF,0x0F,0x05,0x9F,0xEF,0x0F,0x06,0xBF,0xCF,0x0F,0x07, + 0x3F,0xDF,0x0F,0x08,0x7F,0x9F,0x0F,0x09,0x7F,0xBE,0x0F,0x0A,0xFF,0x3E,0x0F,0x0B, + 0xFF,0x7C,0x0F,0x0C,0xFF,0x7D,0x0E,0x0D,0xFF,0xFD,0x06,0x0E,0xFF,0xFF,0x04,0x0F, + 0xFF,0xFF,0x01,0x10,0xFF,0xFB,0x09,0x11,0xFF,0xFB,0x0B,0x52,0x00,0x00,0x00,0x13, + 0x08,0x00,0x20,0x26,0x06,0x00,0x30,0x24,0x18,0x00,0x10,0x22,0x03,0x00,0x40,0x20, + 0x30,0x00,0x00,0x1E,0x01,0x10,0x50,0x1C,0x60,0x00,0xC0,0x12,0x00,0x30,0x60,0x10, + 0xC0,0x00,0xD0,0x0E,0x00,0x60,0x70,0x0C,0x80,0x01,0xE0,0x0A,0x00,0xC0,0x80,0x08, + 0x00,0x03,0xF0,0x00,0x00,0x80,0x91,0x00,0x00,0x02,0x08,0x01,0x00,0x00,0x33,0x01, + 0x00,0x00,0x1C,0x01,0x00,0x04,0x22,0x01,0x00,0x00,0xA4,0x00,0x00,0x00,0x00,0x00, + 0xF0,0xC3,0x0F,0x00,0x40,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x15,0x15,0x30,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x24,0x24,0x24,0x24, + 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x2B,0x2B,0x2B,0x28,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x30,0x30,0x2B,0x2B,0x2B,0x28,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B, + 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x26,0x26,0x26,0x26, + 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, + 0x24,0x24,0x24,0x24,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x30,0x30,0x16,0x30,0x30,0x30,0x30,0x30, + 0x30,0x10,0x30,0x30,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x04,0x03,0x03,0x00,0x01,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x05,0x08,0x02,0x00, + 0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x09,0xFF,0xFF,0xFF,0x00,0x00,0xC8,0x05,0x1E, + 0xE0,0x01,0x20,0x03,0xE8,0x03,0x00,0x00,0x74,0x27,0x00,0x00,0x3C,0x28,0x00,0x00, + 0xE0,0x93,0x04,0x00,0x01,0x5A,0xD0,0x07,0xD0,0x07,0x00,0x00,0x04,0xC8,0xB5,0xB5, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x6E,0x00,0x7A,0x00,0x01,0x00,0x04,0x00, + 0x78,0x00,0xA0,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x15,0x04,0x02,0x32,0x00, + 0x2C,0x01,0x2C,0x01,0x00,0x00,0x00,0x00,0x50,0x00,0x5A,0x00,0x32,0x00,0xB8,0x0B, + 0x50,0x00,0x5A,0x00,0x32,0x00,0xE8,0x03,0x64,0x00,0x32,0x00,0x00,0x00,0x00,0x00, + 0x04,0x01,0x05,0x0F,0x01,0x01,0x04,0x00,0x01,0x05,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x00,0x0E,0x00,0x00,0x60,0x0F,0x00,0x00,0x60,0x0F,0x00,0x00,0x9D,0x39,0x2C,0x01, + 0x28,0x00,0x1D,0x00,0x64,0x32,0x64,0x32,0x1E,0x00,0x46,0x00,0x32,0x00,0x05,0x00, + 0x64,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x3C,0x00,0x90,0x01,0x90,0x01,0x58,0x02, + 0x90,0x01,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00, + 0x0A,0x02,0x32,0x00,0xB8,0x0B,0xBC,0x02,0x0A,0x00,0x32,0x32,0x96,0x32,0x40,0x64, + 0x64,0x64,0xFF,0x00,0x00,0x00,0x5E,0x01,0x3C,0x00,0x1E,0x00,0x28,0xFA,0x0C,0x78, + 0x00,0x05,0x04,0x0A,0x01,0x06,0x20,0x03,0x5A,0x00,0x0A,0x3C,0x00,0x05,0x14,0x00, + 0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xDC,0x00,0x05,0x02,0x01,0x01,0x01,0x00,0x02,0x03,0x05,0x00,0x03,0x03,0x06,0x06, + 0x09,0x09,0x0C,0x0C,0x0F,0x50,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00,0x41,0x00,0x01,0x00, + 0x0A,0x0A,0xA8,0x00,0x10,0x5F,0x20,0x3F,0x00,0x00,0x00,0x00,0x5A,0x00,0x82,0x00, + 0x99,0x19,0x90,0x01,0x32,0x00,0x1D,0x00,0x64,0x32,0x64,0x32,0x19,0x00,0x4B,0x00, + 0x32,0x00,0x05,0x00,0x64,0x00,0x05,0x00,0x01,0x00,0x0A,0x02,0x50,0x00,0xF4,0x01, + 0x8A,0x02,0x8A,0x02,0x90,0x01,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00, + 0xFF,0xFF,0x00,0x00,0x08,0x02,0x32,0x00,0xDC,0x05,0xF4,0x01,0x0A,0x00,0x32,0x32, + 0x96,0x32,0x40,0x64,0x64,0x64,0xFF,0x00,0x00,0x00,0xC2,0x01,0x28,0x00,0x14,0x00, + 0xFF,0xFF,0x0D,0xFF,0x00,0x05,0x04,0x0A,0x02,0x06,0xD0,0x07,0x5A,0x00,0x0F,0x3C, + 0x00,0x05,0x1E,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xDC,0x00,0x05,0x04,0x01,0x01,0x01,0x00,0x04,0x03,0x01,0x00, + 0x04,0x04,0x08,0x08,0x0C,0x0C,0x10,0x10,0x14,0x55,0x01,0x00,0x05,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00, + 0x41,0xF2,0x00,0x00,0x08,0x08,0xA8,0x00,0x20,0x5F,0x20,0x3F,0x00,0x00,0x00,0x00, + 0x32,0x00,0x19,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00, + 0x96,0x00,0x0F,0x00,0x05,0x00,0x00,0x00,0x1E,0x00,0xC8,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0xC8,0x00,0x33,0x01,0x00,0x00, + 0x22,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00, + 0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x64,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x14,0x00,0x00,0x5A,0x5A,0x5A,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x28,0x00,0x50,0x00,0x1E,0x00,0x50,0x00,0x14,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x41,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0xD0,0x47,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFF,0x0F,0x02,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x13,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x00,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x80,0x0F,0xA0,0x8F,0x01,0x00,0x00,0x00,0xFF,0x0F,0xC8,0x00, + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x41,0x02,0x01,0x00, + 0x10,0x00,0x10,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00,0x08,0x10,0x88,0x00, + 0x20,0x9F,0x20,0x3F,0x1E,0x0A,0x64,0x00,0x10,0x10,0x08,0x84,0x00,0x00,0xAC,0x0D, + 0x01,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x08,0x20, + 0x51,0x30,0x10,0x00,0x11,0x90,0x01,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, + 0x54,0x55,0x45,0x00,0x10,0x10,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x00,0x00,0x00, + 0x6F,0x69,0x06,0x00,0x70,0x28,0x30,0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x30,0x12,0x14,0x00,0x00,0x1C,0x0C,0x06,0x00, + 0x00,0x04,0x7C,0x74,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x1F,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x80,0x00,0x03,0x64,0x40,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x00,0x00,0x00, + 0x00,0x80,0x00,0x00,0xC8,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x40,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x55,0x31,0x25,0x01,0x55,0x31,0x25,0x01,0x55,0x31,0x25,0x01,0x55,0x31,0x25,0x01, + 0x55,0x31,0x25,0x01,0x55,0x31,0x25,0x01,0x55,0x31,0x25,0x01,0x55,0x31,0x25,0x01, + 0x55,0x31,0x25,0x01,0x55,0x31,0x25,0x01,0x55,0x31,0x25,0x01,0x55,0x31,0x25,0x01, + 0x55,0x31,0x25,0x01,0x55,0x31,0x25,0x01,0x55,0x31,0x25,0x01,0x55,0x31,0x25,0x01, + 0x55,0x31,0x25,0x01,0x55,0x31,0x25,0x01,0x55,0x31,0x25,0x01,0x55,0x31,0x25,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x0D,0x00,0xA0,0xE1,0x10,0xD0,0x9F,0xE5,0x01,0x40,0x2D,0xE9,0x93,0x01,0x00,0xEB, + 0x01,0x40,0xBD,0xE8,0x00,0xD0,0xA0,0xE1,0x1E,0xFF,0x2F,0xE1,0xF0,0x0F,0x00,0x20, + 0x92,0x10,0x00,0xE0,0x02,0xC0,0x52,0x1E,0xFC,0xD2,0x70,0x47,0xFF,0x48,0x10,0xB4, + 0x81,0x69,0x02,0x06,0x89,0x00,0x89,0x08,0x89,0x18,0x81,0x61,0x41,0x6B,0xFB,0x4C, + 0x89,0x00,0x89,0x08,0x89,0x18,0x40,0x34,0x41,0x63,0xA0,0x69,0x80,0x00,0x80,0x08, + 0xA0,0x61,0x00,0x20,0x81,0x00,0x0A,0x19,0x11,0x6A,0x40,0x1C,0x8B,0x00,0xC9,0x01, + 0xDB,0x0E,0xC9,0x0E,0x49,0x06,0x1B,0x05,0x19,0x43,0x14,0x28,0x11,0x62,0xF1,0xD3, + 0xEE,0x48,0xEF,0x49,0x80,0x30,0x01,0x63,0xEE,0x49,0x41,0x63,0xEE,0x49,0x08,0x69, + 0x40,0x08,0x40,0x00,0x08,0x61,0xEC,0x49,0xEC,0x48,0x40,0x31,0x08,0x60,0xEC,0x48, + 0xEC,0x49,0xC8,0x60,0x10,0xBC,0x70,0x47,0xFC,0xB5,0xEB,0x4C,0x02,0x00,0x30,0x34, + 0x18,0xCC,0x00,0x20,0x00,0x94,0xE9,0x4C,0x24,0x7D,0xE4,0x07,0x2D,0xD0,0xE8,0x4C, + 0x25,0x79,0xE6,0x78,0xE5,0x4C,0xAE,0x46,0xA5,0x7D,0x00,0x2E,0x76,0x46,0xAC,0x46, + 0xE5,0x7D,0x01,0x95,0x25,0x7E,0x67,0x7E,0xA4,0x7E,0x10,0xD0,0xB2,0x42,0x1C,0xD1, + 0x8C,0x45,0x08,0xD0,0x01,0x9A,0x8A,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0,0x8F,0x42, + 0x01,0xD0,0x8C,0x42,0x00,0xD1,0x00,0x98,0xFC,0xBC,0x08,0xBC,0x18,0x47,0xB1,0x42, + 0x0B,0xD1,0x94,0x45,0xF7,0xD0,0x01,0x99,0x91,0x42,0xF4,0xD0,0x95,0x42,0xF2,0xD0, + 0x97,0x42,0xF0,0xD0,0x94,0x42,0xEE,0xD0,0xEE,0xE7,0x18,0x00,0xEC,0xE7,0x30,0xB4, + 0xCF,0x4B,0xD0,0x4C,0x5B,0x78,0x58,0x43,0x40,0x18,0x43,0x00,0xE0,0x5A,0x01,0x06, + 0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18,0x00,0x20,0x4D,0x1E,0xC0,0x43,0xFF,0x2D, + 0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2,0x10,0x02,0x08,0x43,0xE0,0x52,0x00,0x20, + 0x30,0xBC,0x70,0x47,0xF3,0xB5,0xC4,0x48,0x82,0xB0,0x01,0x90,0x00,0x20,0x00,0x90, + 0xB9,0x48,0xC1,0x68,0x01,0x22,0x11,0x43,0xC1,0x60,0xBD,0x4F,0xB6,0x48,0xC0,0x68, + 0xC0,0x07,0xFB,0xD0,0x00,0x24,0x26,0x00,0x25,0xE0,0x00,0x25,0x1F,0xE0,0x29,0x00, + 0x30,0x00,0xFF,0xF7,0x91,0xFF,0x00,0x28,0x17,0xD0,0x79,0x78,0x01,0x9A,0x71,0x43, + 0x49,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A,0x02,0x99,0x00,0x29, + 0x02,0xD0,0x00,0x28,0x09,0xDA,0x01,0xE0,0x00,0x28,0x06,0xDD,0x03,0x9A,0x29,0x00, + 0x30,0x00,0xFF,0xF7,0xB4,0xFF,0x40,0x1C,0x00,0xD1,0x64,0x1C,0x6D,0x1C,0x78,0x78, + 0x85,0x42,0xDC,0xD3,0x76,0x1C,0xB8,0x78,0x86,0x42,0xD6,0xD3,0xB8,0x78,0x79,0x78, + 0x48,0x43,0xA0,0x42,0x0A,0xD0,0x00,0x98,0x41,0x1C,0x00,0x91,0x01,0x21,0x49,0x02, + 0x88,0x42,0x03,0xD8,0x98,0x48,0xC1,0x68,0xC1,0x60,0xBF,0xE7,0xFF,0xBC,0x08,0xBC, + 0x18,0x47,0xF0,0xB4,0x00,0x21,0x9B,0x4C,0x98,0x4B,0x99,0x4E,0x1E,0x25,0x13,0xE0, + 0x9A,0x7D,0x8A,0x42,0x0D,0xD0,0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E,0x8A,0x42, + 0x07,0xD0,0x5A,0x7E,0x8A,0x42,0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00, + 0xA5,0x52,0x72,0x78,0x80,0x18,0x49,0x1C,0xB2,0x78,0x77,0x78,0x7A,0x43,0x82,0x42, + 0xE6,0xD8,0xF0,0xBC,0x70,0x47,0xF0,0xB4,0x89,0x4B,0x00,0x21,0x5A,0x78,0x1E,0x26, + 0x88,0x4D,0x42,0x43,0x85,0x4F,0x12,0xE0,0xBB,0x7D,0x8B,0x42,0x0D,0xD0,0xFB,0x7D, + 0x8B,0x42,0x0A,0xD0,0x3B,0x7E,0x8B,0x42,0x07,0xD0,0x7B,0x7E,0x8B,0x42,0x04,0xD0, + 0xBB,0x7E,0x8B,0x42,0x01,0xD0,0x53,0x00,0xEE,0x52,0x52,0x1C,0x49,0x1C,0x7C,0x4B, + 0x04,0x00,0x5B,0x78,0x5C,0x43,0xE3,0x18,0x93,0x42,0xE5,0xD8,0xD9,0xE7,0x02,0x04, + 0x78,0x49,0x02,0x43,0x00,0x20,0x40,0x1C,0x04,0xC1,0x80,0x28,0xFB,0xD3,0x70,0x47, + 0xF1,0xB5,0x73,0x4C,0x70,0x4D,0x21,0x78,0x73,0x4F,0xA8,0x6B,0x00,0x29,0x82,0xB0, + 0x00,0xD0,0x00,0x0C,0x00,0x06,0x00,0x0E,0x01,0x02,0x01,0x43,0x08,0x04,0x00,0x0C, + 0xFF,0xF7,0xE5,0xFF,0x69,0x48,0x00,0x7D,0xC0,0x07,0x08,0xD0,0xE0,0x78,0x00,0x28, + 0x20,0x79,0x02,0xD0,0xFF,0xF7,0xB7,0xFF,0x01,0xE0,0xFF,0xF7,0x92,0xFF,0x5E,0x49, + 0x00,0x20,0x80,0x31,0xC8,0x62,0x62,0x49,0xE8,0x6B,0x09,0x78,0x00,0x29,0x08,0xD1, + 0x5C,0x49,0x00,0x22,0x4A,0x63,0x4A,0x68,0x00,0x07,0x12,0x09,0x12,0x01,0x00,0x0F, + 0x07,0xE0,0x58,0x49,0x00,0x22,0x4A,0x63,0x4A,0x68,0x00,0x03,0x12,0x09,0x12,0x01, + 0x00,0x0F,0x02,0x43,0x4A,0x60,0x03,0x24,0x26,0x1F,0x01,0xE0,0x03,0x2C,0x02,0xD1, + 0x01,0x25,0xED,0x43,0x09,0xE0,0x02,0x2C,0x01,0xD1,0x01,0x25,0x05,0xE0,0x01,0x2C, + 0x01,0xD1,0x35,0x00,0x01,0xE0,0x00,0x2C,0xF7,0xD0,0xE0,0x07,0xC0,0x0F,0x29,0x00, + 0xFF,0xF7,0x10,0xFF,0x64,0x1E,0xE9,0xD5,0x49,0x48,0x49,0x4D,0x00,0x78,0x0C,0x35, + 0x00,0x28,0x2D,0xD1,0x40,0x4A,0x09,0x21,0x01,0x23,0xD0,0x68,0x18,0x43,0xD0,0x60, + 0xD0,0x68,0xC0,0x07,0xFC,0xD0,0x49,0x1E,0xF7,0xD2,0x00,0x26,0x17,0xE0,0x00,0x24, + 0x10,0xE0,0x21,0x00,0x30,0x00,0xFF,0xF7,0x9F,0xFE,0x00,0x28,0x09,0xD0,0x3C,0x48, + 0x40,0x78,0x70,0x43,0x00,0x19,0x81,0x00,0x79,0x58,0x09,0x05,0x09,0x0D,0x40,0x00, + 0x29,0x52,0x64,0x1C,0x36,0x48,0x40,0x78,0x84,0x42,0xEA,0xD3,0x76,0x1C,0x34,0x48, + 0x81,0x78,0x8E,0x42,0xE3,0xD3,0x01,0x78,0x00,0x29,0x01,0xD1,0x81,0x68,0x03,0xE0, + 0x2F,0x48,0x80,0x68,0x01,0x0C,0x09,0x04,0x2A,0x48,0x41,0x63,0x26,0x48,0x09,0x21, + 0x01,0x23,0xC2,0x68,0x1A,0x43,0xC2,0x60,0xC2,0x68,0xD2,0x07,0xFC,0xD0,0x49,0x1E, + 0xF7,0xD2,0x2A,0x48,0x00,0x26,0x01,0x90,0x29,0x48,0x00,0x90,0x73,0xE0,0x00,0x24, + 0x6C,0xE0,0x21,0x00,0x30,0x00,0xFF,0xF7,0x67,0xFE,0x00,0x28,0x65,0xD0,0x20,0x49, + 0x0A,0x78,0x00,0x2A,0x1A,0xD1,0x49,0x78,0x71,0x43,0x0B,0x19,0x59,0x00,0x9B,0x00, + 0xFB,0x58,0x6A,0x5A,0x1B,0x05,0x1B,0x0D,0x9A,0x42,0x01,0xD8,0x00,0x20,0x0B,0xE0, + 0x82,0x42,0x04,0xD9,0x12,0x1A,0x12,0x04,0xD2,0x0C,0x80,0x18,0x03,0xE0,0x82,0x1A, + 0x12,0x04,0xD2,0x0C,0x80,0x1A,0xC0,0x1A,0x68,0x52,0x46,0xE0,0x10,0x48,0x15,0x49, + 0x40,0x78,0xFF,0x23,0x91,0x33,0x70,0x43,0x00,0x19,0x84,0x46,0x80,0x00,0x38,0x58, + 0x00,0x05,0x00,0x0D,0x02,0x00,0x41,0x18,0x99,0x42,0x1D,0xE0,0x40,0x06,0x10,0x40, + 0xFF,0xF3,0x0F,0x00,0xFF,0xF7,0x0F,0x00,0x00,0x90,0x00,0x40,0x0C,0x13,0x00,0x00, + 0xF0,0xCB,0x0F,0x00,0x00,0xA0,0x00,0x40,0xC0,0x0F,0x00,0x20,0x00,0x78,0x00,0x00, + 0x6C,0x06,0x00,0x20,0x00,0x00,0x10,0x40,0x00,0x02,0x10,0x40,0x78,0x08,0x00,0x20, + 0x78,0x0A,0x00,0x20,0x74,0xF5,0xFF,0xFF,0x09,0xD8,0x73,0x49,0x08,0x1A,0x03,0x00, + 0x43,0x43,0x18,0x0A,0x8A,0x42,0x01,0xD9,0x40,0x18,0x00,0xE0,0x08,0x1A,0x02,0x99, + 0x00,0x29,0x06,0xD0,0x6D,0x49,0x00,0x9A,0x89,0x78,0x61,0x43,0x89,0x19,0x49,0x00, + 0x02,0xE0,0x01,0x9A,0x61,0x46,0x49,0x00,0x50,0x52,0x64,0x1C,0x67,0x48,0x40,0x78, + 0x84,0x42,0x8E,0xD3,0x76,0x1C,0x65,0x48,0x81,0x78,0x8E,0x42,0x87,0xD3,0xFE,0xBC, + 0x08,0xBC,0x18,0x47,0xF0,0xB5,0x62,0x4E,0x60,0x4D,0x00,0x24,0x01,0x27,0x61,0x48, + 0x01,0x68,0x60,0x4A,0x08,0x04,0x00,0x0E,0x09,0x06,0x09,0x0E,0x68,0x70,0x40,0x3A, + 0xA9,0x70,0x12,0x69,0xD2,0x07,0xD2,0x0F,0x32,0x7D,0x02,0xD0,0x92,0x07,0x06,0xD4, + 0x01,0xE0,0x92,0x07,0x03,0xD5,0x49,0x1E,0x29,0x71,0xEF,0x70,0x03,0xE0,0x40,0x1E, + 0x28,0x71,0x00,0x20,0xE8,0x70,0x20,0x00,0x64,0x1C,0xFF,0xF7,0xC1,0xFE,0x28,0x78, + 0x01,0x28,0x01,0xD0,0x01,0x2C,0x05,0xD0,0x02,0x2C,0x03,0xD0,0xFF,0xF7,0x8E,0xFD, + 0x01,0x2C,0xD4,0xD9,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x4B,0x48,0x10,0xB5,0x40,0x6B, + 0x46,0x4C,0xC5,0x22,0xA0,0x60,0x20,0x00,0xD2,0x00,0x00,0x21,0x0C,0x30,0xFF,0xF7, + 0x77,0xFD,0x00,0x20,0x20,0x70,0xFF,0xF7,0xBD,0xFF,0x01,0x20,0x20,0x70,0xFF,0xF7, + 0xB9,0xFF,0x42,0x48,0x42,0x49,0xC8,0x61,0x42,0x48,0xC2,0x68,0x52,0x08,0x52,0x00, + 0xC2,0x60,0x20,0x00,0x0C,0x30,0x04,0xC8,0xCA,0x61,0x4A,0x69,0x52,0x06,0xFC,0xD4, + 0xF9,0xE7,0x40,0x1E,0xFD,0xD2,0x70,0x47,0xF0,0xB5,0x3C,0x48,0x3A,0x4A,0x01,0x23, + 0x03,0x61,0x19,0x00,0x39,0x48,0x00,0x23,0x43,0x61,0x83,0x61,0x01,0x26,0x35,0x00, + 0x9D,0x40,0x03,0x20,0x35,0x4C,0x00,0x04,0x28,0x43,0x60,0x61,0x08,0x00,0x40,0x1E, + 0xFD,0xD2,0x01,0x20,0x00,0x04,0x28,0x43,0x60,0x61,0x08,0x00,0x40,0x1E,0xFD,0xD2, + 0x65,0x61,0x48,0x00,0x86,0x46,0x40,0x1E,0xFD,0xD2,0xE7,0x69,0x00,0x20,0x5C,0x01, + 0xA4,0x46,0x64,0x46,0x24,0x18,0x3D,0x00,0xC5,0x40,0x16,0x5D,0xED,0x07,0xED,0x0F, + 0x75,0x19,0x40,0x1C,0x20,0x28,0x15,0x55,0xF3,0xD3,0x5B,0x1C,0x10,0x2B,0xD5,0xD3, + 0x22,0x48,0x00,0x23,0x43,0x61,0x83,0x61,0x01,0x25,0x9D,0x40,0x03,0x20,0x1F,0x4C, + 0x00,0x04,0x28,0x43,0xA0,0x61,0x08,0x00,0x40,0x1E,0xFD,0xD2,0x01,0x20,0x00,0x04, + 0x28,0x43,0xA0,0x61,0x08,0x00,0x40,0x1E,0xFD,0xD2,0xA5,0x61,0x70,0x46,0x40,0x1E, + 0xFD,0xD2,0xE7,0x69,0x5C,0x01,0xFF,0x34,0x00,0x20,0xFF,0x34,0x02,0x34,0xA4,0x46, + 0x64,0x46,0x24,0x18,0x3D,0x00,0xC5,0x40,0x16,0x5D,0xED,0x07,0xED,0x0F,0x75,0x19, + 0x40,0x1C,0x20,0x28,0x15,0x55,0xF3,0xD3,0x5B,0x1C,0x10,0x2B,0xD4,0xD3,0x49,0x1C, + 0xC8,0x29,0x9F,0xD9,0x6E,0xE7,0x00,0x00,0x54,0x0B,0x00,0x00,0x6C,0x06,0x00,0x20, + 0x00,0x78,0x00,0x00,0x40,0x90,0x00,0x40,0x00,0xA0,0x00,0x40,0xAB,0xFC,0xFF,0x8F, + 0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x78,0x08,0x00,0x20,0x00,0xA1,0x00,0x40, + 0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1,0x1B,0x05,0x00,0x20,0x49,0x53,0x54,0x56, + 0x31,0x54,0x41,0x47,0x40,0x04,0x00,0x00,0xC0,0x7B,0x00,0x00,0xC0,0x75,0x00,0x00, + 0x40,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x7B,0x00,0x00, + 0x00,0x01,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x76,0x00,0x00, + 0x00,0x02,0x00,0x00,0x64,0x00,0x87,0x00,0x00,0x00,0x00,0x00,0x49,0x53,0x54,0x56, + 0x31,0x54,0x41,0x47}; + +#endif // __IST30XXB_FW_H__ diff --git a/drivers/input/touchscreen/ist30xxb/Makefile b/drivers/input/touchscreen/ist30xxb/Makefile new file mode 100644 index 00000000..c0ff2674 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/Makefile @@ -0,0 +1,6 @@ +# +# Makefile for the input core drivers. +# + +# Each configuration option enables a list of files. +obj-$(CONFIG_TOUCHSCREEN_IST30XXB) += ist30xxb.o ist30xxb_update.o ist30xxb_tracking.o ist30xxb_misc.o ist30xxb_sys.o diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb.c b/drivers/input/touchscreen/ist30xxb/ist30xxb.c new file mode 100755 index 00000000..7af978bc --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb.c @@ -0,0 +1,1261 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 + +#ifdef CONFIG_OF +#include +#include +#endif +#include "ist30xxb_sec.h" +#include "ist30xxb_update.h" + +#if IST30XX_DEBUG +#include "ist30xxb_misc.h" +#endif +#if IST30XX_TRACKING_MODE +#include "ist30xxb_tracking.h" +#endif + +#define MAX_ERR_CNT (100) + +#if IST30XX_USE_KEY +int ist30xx_key_code[] = { 0, KEY_MENU, KEY_BACK }; +#endif + +DEFINE_MUTEX(ist30xx_mutex); + +volatile bool ist30xx_irq_working = false; +static bool ist30xx_initialized = 0; + +struct ist30xx_data *ts_data; +EXPORT_SYMBOL(ts_data); + +static struct delayed_work work_reset_check; +static struct delayed_work work_noise_protect, work_debug_algorithm; + +#if IST30XX_DETECT_TA +static int ist30xx_ta_status = -1; +#endif +#if IST30XX_DETECT_CALLER +static int ist30xx_call_status = -1; +#endif +#if IST30XX_INTERNAL_BIN && IST30XX_UPDATE_BY_WORKQUEUE +static struct delayed_work work_fw_update; +#endif + + +#if IST30XX_EVENT_MODE +# if IST30XX_NOISE_MODE +int ist30xx_scan_retry = 0; +# endif +u32 event_ms = 0; + +static struct timer_list idle_timer; +static struct timespec t_current; // ns +int timer_period_ms = 500; // 0.5sec +# define EVENT_TIMER_INTERVAL (HZ / 2) // 0.5sec +#endif // IST30XX_EVENT_MODE + +#if IST30XX_DEBUG +extern TSP_INFO ist30xx_tsp_info; +extern TKEY_INFO ist30xx_tkey_info; +#endif + +int ist30xx_dbg_level = IST30XX_DEBUG_LEVEL; +void tsp_printk(int level, const char *fmt, ...) +{ + struct va_format vaf; + va_list args; + int r; + + if (ist30xx_dbg_level < level) + return; + + va_start(args, fmt); + + vaf.fmt = fmt; + vaf.va = &args; + + r = printk("%s %pV", IST30XX_DEBUG_TAG, &vaf); + + va_end(args); +} + +#if IST30XX_EVENT_MODE +long get_milli_second(void) +{ + ktime_get_ts(&t_current); + + return t_current.tv_sec * 1000 + t_current.tv_nsec / 1000000; +} +#endif // IST30XX_EVENT_MODE + + +void ist30xx_disable_irq(struct ist30xx_data *data) +{ + if (data->irq_enabled) { + ist30xx_tracking(TRACK_INTR_ENABLE); + disable_irq(data->client->irq); + #if PRINT_TSP_LOG + printk("[TSP] ist30xx_disable_irq : %d\n", data->client->irq); + #endif + data->irq_enabled = 0; +#if IST30XX_EVENT_MODE + data->status.event_mode = false; +#endif + } +} + +void ist30xx_enable_irq(struct ist30xx_data *data) +{ + if (!data->irq_enabled) { + ist30xx_tracking(TRACK_INTR_DISABLE); + enable_irq(data->client->irq); + printk("[TSP] ist30xx_enable_irq : %d\n", data->client->irq); + msleep(10); + data->irq_enabled = 1; +#if IST30XX_EVENT_MODE + data->status.event_mode = true; +#endif + } +} + + +int ist30xx_max_error_cnt = MAX_ERR_CNT; +int ist30xx_error_cnt = 0; +static void ist30xx_request_reset(void) +{ + #if PRINT_TSP_LOG + printk("[TSP] %s()\n", __func__); + #endif + ist30xx_error_cnt++; + if (ist30xx_error_cnt >= ist30xx_max_error_cnt) { + #if PRINT_TSP_LOG + printk("[TSP] %s()\n", __func__); + #endif + schedule_delayed_work(&work_reset_check, 0); + ist30xx_error_cnt = 0; + } + +} + + +void ist30xx_start(struct ist30xx_data *data) +{ +#if IST30XX_DETECT_TA + if (ist30xx_ta_status > -1) { + ist30xx_write_cmd(data->client, CMD_SET_TA_MODE, ist30xx_ta_status); + #if PRINT_TSP_LOG + tsp_info("%s(), ta_mode : %d\n", __func__, ist30xx_ta_status); + #endif + } +#endif +#if IST30XX_DETECT_CALLER + if (ist30xx_call_status > -1) { + ist30xx_write_cmd(data->client, CMD_SET_CALL_MODE, ist30xx_call_status); + #if PRINT_TSP_LOG + tsp_info("%s(), call_mode : %d\n", __func__, ist30xx_call_status); + #endif + } +#endif + + ist30xx_cmd_start_scan(data->client); +} + + +int ist30xx_get_ver_info(struct ist30xx_data *data) +{ + int ret; + + data->fw.prev_core_ver = data->fw.core_ver; + data->fw.prev_param_ver = data->fw.param_ver; + data->fw.core_ver = data->fw.param_ver = 0; + + ret = ist30xx_read_cmd(data->client, CMD_GET_FW_VER, &data->fw.core_ver); + if (ret) + return ret; + + ret = ist30xx_read_cmd(data->client, CMD_GET_PARAM_VER, &data->fw.param_ver); + if (ret) + return ret; + + tsp_info("IC version read core: %x, param: %x\n", + data->fw.core_ver, data->fw.param_ver); + + return 0; +} + + +int ist30xx_init_touch_driver(struct ist30xx_data *data) +{ + int ret = 0; + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + + ret = ist30xx_cmd_run_device(data->client); + if (ret) + goto init_touch_end; + + ist30xx_get_ver_info(data); + +init_touch_end: + ist30xx_start(data); + + ist30xx_enable_irq(data); + mutex_unlock(&ist30xx_mutex); + + return ret; +} + + +#if IST30XX_DEBUG +void ist30xx_print_info(void) +{ + TSP_INFO *tsp = &ist30xx_tsp_info; + TKEY_INFO *tkey = &ist30xx_tkey_info; + tsp_debug("*** TSP/TKEY info ***\n"); + tsp_debug("tscn dir swap: %d, flip x: %d, y: %d\n", + tsp->dir.swap_xy, tsp->dir.flip_x, tsp->dir.flip_y); + tsp_debug("tscn ch_num tx: %d, rx: %d\n", + tsp->ch_num.tx, tsp->ch_num.rx); + tsp_debug("tscn width: %d, height: %d\n", + tsp->width, tsp->height); + tsp_debug("tkey enable: %d, key num: %d, axis rx: %d \n", + tkey->enable, tkey->key_num, tkey->axis_rx); + tsp_debug("tkey ch_num[0] %d, [1] %d, [2] %d, [3] %d, [4] %d\n", + tkey->ch_num[0], tkey->ch_num[1], tkey->ch_num[2], + tkey->ch_num[3], tkey->ch_num[4]); +} +#endif + +#define CALIB_MSG_MASK (0xF0000FFF) +#define CALIB_MSG_VALID (0x80000CAB) +int ist30xx_get_info(struct ist30xx_data *data) +{ + int ret; + u32 calib_msg; + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + +#if IST30XX_INTERNAL_BIN +# if IST30XX_DEBUG + ist30xx_get_tsp_info(data); + ist30xx_get_tkey_info(data); +#endif // IST30XX_DEBUG +#else + ret = ist30xx_write_cmd(data->client, CMD_RUN_DEVICE, 0); + if (ret) + goto get_info_end; + msleep(10); + + ret = ist30xx_get_ver_info(data); + if (ret) + goto get_info_end; + +# if IST30XX_DEBUG + ret = ist30xx_tsp_update_info(); + if (ret) + goto get_info_end; + + ret = ist30xx_tkey_update_info(); + if (ret) + goto get_info_end; +# endif // IST30XX_DEBUG +#endif // IST30XX_INTERNAL_BIN + +#if IST30XX_DEBUG + ist30xx_print_info(); + data->max_fingers = ist30xx_tsp_info.finger_num; + data->max_keys = ist30xx_tkey_info.key_num; +#endif // IST30XX_DEBUG + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_CALIB_RESULT, &calib_msg); + if (ret == 0) { + tsp_info("calib status: 0x%08x\n", calib_msg); + ist30xx_tracking(calib_msg); + tsp_info("CALIB_MSG_MASK = 0x%08x\n",(calib_msg & CALIB_MSG_MASK)); + tsp_info("CALIB_MSG_VALID = 0x%08x\n",CALIB_MSG_VALID); + tsp_info("CALIB_TOSTATUS = 0x%08x\n",CALIB_TO_STATUS(calib_msg)); + if ((calib_msg & CALIB_MSG_MASK) != CALIB_MSG_VALID || + CALIB_TO_STATUS(calib_msg) > 0) { +// ist30xx_calibrate(IST30XX_FW_UPDATE_RETRY); + ist30xx_calibrate(1); + ist30xx_cmd_run_device(data->client); + } + } + +#if (IST30XX_EVENT_MODE && IST30XX_CHECK_CALIB) + if (!data->status.update) { + ret = ist30xx_cmd_check_calib(data->client); + if (!ret) { + data->status.calib = 1; + event_ms = (u32)get_milli_second(); + data->status.event_mode = true; + } + } +#else + ist30xx_start(ts_data); +#endif + +#if !(IST30XX_INTERNAL_BIN) +get_info_end: +#endif + if (ret == 0) + ist30xx_enable_irq(data); + mutex_unlock(&ist30xx_mutex); + + return ret; +} + + +#define PRESS_MSG_MASK (0x01) +#define MULTI_MSG_MASK (0x02) +#define PRESS_MSG_KEY (0x6) + +#define TOUCH_DOWN_MESSAGE ("p") +#define TOUCH_UP_MESSAGE ("r") +#define TOUCH_MOVE_MESSAGE (" ") +bool tsp_touched[IST30XX_MAX_MT_FINGERS] = { 0, }; + +void print_tsp_event(finger_info *finger) +{ + int idx = finger->bit_field.id - 1; + int press = finger->bit_field.udmg & PRESS_MSG_MASK; + + if (press == PRESS_MSG_MASK) { + if (tsp_touched[idx] == 0) { // touch down + #if PRINT_TSP_LOG + tsp_info("%s%d (%d, %d)\n", + TOUCH_DOWN_MESSAGE, finger->bit_field.id, + finger->bit_field.x, finger->bit_field.y); + #endif + tsp_touched[idx] = 1; + } else { + // touch move + #if PRINT_TSP_LOG + tsp_debug("%s%d (%d, %d)\n", + TOUCH_MOVE_MESSAGE, finger->bit_field.id, + finger->bit_field.x, finger->bit_field.y); + #endif + } + } else { + if (tsp_touched[idx] == 1) { // touch up + #if PRINT_TSP_LOG + tsp_info("%s%d (%d, %d)\n", + TOUCH_UP_MESSAGE, finger->bit_field.id, + finger->bit_field.x, finger->bit_field.y); + #endif + tsp_touched[idx] = 0; + } + } +} + + +static void release_finger(finger_info *finger) +{ + input_mt_slot(ts_data->input_dev, finger->bit_field.id - 1); + input_mt_report_slot_state(ts_data->input_dev, MT_TOOL_FINGER, false); + + ist30xx_tracking(TRACK_POS_FINGER + finger->bit_field.id); +#if PRINT_TSP_LOG + tsp_info("%s() %d(%d, %d)\n", __func__, + finger->bit_field.id, finger->bit_field.x, finger->bit_field.y); +#endif + finger->bit_field.udmg &= ~(PRESS_MSG_MASK); +#if PRINT_TSP_LOG + print_tsp_event(finger); +#endif + finger->bit_field.id = 0; + + input_sync(ts_data->input_dev); +} + + +#define CANCEL_KEY (0xff) +#define RELEASE_KEY (0) +static void release_key(finger_info *key, u8 key_status) +{ + int id = key->bit_field.id; + + input_report_key(ts_data->input_dev, ist30xx_key_code[id], key_status); + + ist30xx_tracking(TRACK_POS_KEY + key->bit_field.id); +#if PRINT_TSP_LOG + tsp_debug("%s() key%d, event: %d, status: %d\n", __func__, + id, key->bit_field.w, key_status); +#endif + key->bit_field.id = 0; + + input_sync(ts_data->input_dev); +} + +static void clear_input_data(struct ist30xx_data *data) +{ + int i; + finger_info *fingers = (finger_info *)data->prev_fingers; + finger_info *keys = (finger_info *)data->prev_keys; + + for (i = 0; i < data->num_fingers; i++) { + if (fingers[i].bit_field.id == 0) + continue; + + if (fingers[i].bit_field.udmg & PRESS_MSG_MASK) + release_finger(&fingers[i]); + } + + for (i = 0; i < data->num_keys; i++) { + if (keys[i].bit_field.id == 0) + continue; + + if (keys[i].bit_field.w == PRESS_MSG_KEY) + release_key(&keys[i], RELEASE_KEY); + } +} + +static int check_report_data(struct ist30xx_data *data, int finger_counts, int key_counts) +{ + int i, j; + bool valid_id; + finger_info *fingers = (finger_info *)data->fingers; + finger_info *prev_fingers = (finger_info *)data->prev_fingers; + + /* current finger info */ + for (i = 0; i < finger_counts; i++) { + if ((fingers[i].bit_field.id == 0) || + (fingers[i].bit_field.id > data->max_fingers) || + (fingers[i].bit_field.x > IST30XX_MAX_X) || + (fingers[i].bit_field.y > IST30XX_MAX_Y)) { + tsp_warn("Invalid touch data - %d: %d(%d, %d)\n", i, + fingers[i].bit_field.id, + fingers[i].bit_field.x, + fingers[i].bit_field.y); + + fingers[i].bit_field.id = 0; + ist30xx_tracking(TRACK_POS_UNKNOWN); + return -EPERM; + } else{ + /*tsp_debug("***touch data - %d: %d(%d, %d)\n", i, + fingers[i].bit_field.id, + fingers[i].bit_field.x, + fingers[i].bit_field.y);*/ + } + + } + + /* previous finger info */ + if (data->num_fingers >= finger_counts) { + for (i = 0; i < data->max_fingers; i++) { // prev_fingers + if (prev_fingers[i].bit_field.id != 0 && + (prev_fingers[i].bit_field.udmg & PRESS_MSG_MASK)) { + valid_id = false; + for (j = 0; j < data->max_fingers; j++) { // fingers + if ((prev_fingers[i].bit_field.id) == + (fingers[j].bit_field.id)) { + valid_id = true; + break; + } + } + if (valid_id == false) + release_finger(&prev_fingers[i]); + } + } + } + + return 0; +} + +bool finger_on_screen(void) +{ + int i; + + for (i = 0; i < IST30XX_MAX_MT_FINGERS; i++) + if (tsp_touched[i]) return true; + + return false; +} + +int key_press = 0; +int key_id = 0; +u32 key_sensitivity = 0; +static void report_input_data(struct ist30xx_data *data, int finger_counts, int key_counts) +{ + int i, press, count; + finger_info *fingers = (finger_info *)data->fingers; + + memset(data->prev_fingers, 0, sizeof(data->prev_fingers)); + + for (i = 0, count = 0; i < finger_counts; i++) { + press = fingers[i].bit_field.udmg & PRESS_MSG_MASK; + #if PRINT_TSP_LOG + print_tsp_event(&fingers[i]); + #endif + input_mt_slot(data->input_dev, fingers[i].bit_field.id - 1); + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, + (press ? true : false)); + if (press) { + input_report_abs(data->input_dev, ABS_MT_POSITION_X, + fingers[i].bit_field.x); + input_report_abs(data->input_dev, ABS_MT_POSITION_Y, + fingers[i].bit_field.y); + input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, + fingers[i].bit_field.w); + } + + data->prev_fingers[i] = fingers[i]; + count++; + } + +#if IST30XX_USE_KEY + for (i = finger_counts; i < finger_counts + key_counts; i++) { + key_id = fingers[i].bit_field.id; + key_press = (fingers[i].bit_field.w == PRESS_MSG_KEY) ? 1 : 0; + key_sensitivity = fingers[i].bit_field.y; +#if PRINT_TSP_LOG + tsp_debug("key(%08x) id: %d, press: %d, sensitivity: %d\n", + fingers[i].full_field, key_id, key_press, fingers[i].bit_field.y); +#endif + input_report_key(data->input_dev, ist30xx_key_code[key_id], key_press); + + data->prev_keys[key_id - 1] = fingers[i]; + + count++; + } +#endif // IST30XX_USE_KEY + + if (count > 0) + input_sync(data->input_dev); + + data->num_fingers = finger_counts; + data->num_keys = key_counts; + ist30xx_error_cnt = 0; + ist30xx_scan_retry = 0; +} + +/* + * CMD : CMD_GET_COORD + * [31:30] [29:26] [25:16] [15:10] [9:0] + * Multi(1st) UDMG Rsvd. NumOfKey Rsvd. NumOfFinger + * Single & UDMG ID X Area Y + * Multi(2nd) + * + * UDMG [31] 0/1 : single/multi + * UDMG [30] 0/1 : unpress/press + */ +static irqreturn_t ist30xx_irq_thread(int irq, void *ptr) +{ + int i, ret; + int key_cnt, finger_cnt, read_cnt; + struct ist30xx_data *data = ts_data; + u32 msg[IST30XX_MAX_MT_FINGERS]; + + ist30xx_irq_working = true; + //printk("[TSP] %s\n", __func__); + if (!data->irq_enabled) + goto irq_end; + + if (get_milli_second() - event_ms < 5) // Noise detect + goto irq_end; + + memset(msg, 0, sizeof(msg)); + + ret = ist30xx_get_position(data->client, msg, 1); + if (ret) + goto irq_err; + #if PRINT_TSP_LOG + tsp_verb("intr msg: 0x%08x\n", *msg); + #endif + if (*msg == 0xE11CE970) + goto irq_ic_err; + + if (*msg == 0 || *msg == 0xFFFFFFFF || *msg == 0x2FFF03FF || + *msg == 0x30003000 || *msg == 0x300B300B) + goto irq_err; + +#if IST30XX_EVENT_MODE + event_ms = (u32)get_milli_second(); +# if IST30XX_TRACKING_MODE + ist30xx_put_track(event_ms, *msg); +# endif +#endif // IST30XX_EVENT_MODE + + if ((*msg & CALIB_MSG_MASK) == CALIB_MSG_VALID) { + data->status.calib_msg = *msg; + tsp_info("calib status: 0x%08x\n", data->status.calib_msg); + + goto irq_end; + } + + memset(data->fingers, 0, sizeof(data->fingers)); + + key_cnt = 0; + finger_cnt = 1; + read_cnt = 1; + data->fingers[0].full_field = *msg; + + if (data->fingers[0].bit_field.udmg & MULTI_MSG_MASK) { + key_cnt = data->fingers[0].bit_field.x; + finger_cnt = data->fingers[0].bit_field.y; + read_cnt = finger_cnt + key_cnt; + + if (finger_cnt > data->max_fingers || + key_cnt > data->max_keys) { + tsp_warn("Invalid touch count - finger: %d(%d), key: %d(%d)\n", + finger_cnt, data->max_fingers, + key_cnt, data->max_keys); + goto irq_err; + } + +#if I2C_BURST_MODE + ret = ist30xx_get_position(data->client, msg, read_cnt); + if (ret) + goto irq_err; + + for (i = 0; i < read_cnt; i++) + data->fingers[i].full_field = msg[i]; +#else + for (i = 0; i < read_cnt; i++) { + ret = ist30xx_get_position(data->client, &msg[i], 1); + if (ret) + goto irq_err; + + data->fingers[i].full_field = msg[i]; + } +#endif // I2C_BURST_MODE + +#if IST30XX_EVENT_MODE && IST30XX_TRACKING_MODE + for (i = 0; i < read_cnt; i++) + ist30xx_put_track(event_ms, msg[i]); +#endif + } + + if (check_report_data(data, finger_cnt, key_cnt)) + goto irq_end; + + if (read_cnt > 0) + report_input_data(data, finger_cnt, key_cnt); + + goto irq_end; + +irq_err: + tsp_err("intr msg[0]: 0x%08x, ret: %d\n", *msg, ret); + ist30xx_request_reset(); +irq_end: + ist30xx_irq_working = false; + //printk("[TSP] %s : %d\n", __func__, __LINE__); +#if IST30XX_EVENT_MODE + event_ms = (u32)get_milli_second(); +#endif + return IRQ_HANDLED; + +irq_ic_err: + tsp_err("Occured IC exception\n"); + schedule_delayed_work(&work_reset_check, 0); + ist30xx_irq_working = false; + //printk("[TSP] %s : %d\n", __func__, __LINE__); +#if IST30XX_EVENT_MODE + event_ms = (u32)get_milli_second(); +#endif + return IRQ_HANDLED; +} + + +#ifdef CONFIG_HAS_EARLYSUSPEND +#define ist30xx_suspend NULL +#define ist30xx_resume NULL +static void ist30xx_early_suspend(struct early_suspend *h) +{ + struct ist30xx_data *data = container_of(h, struct ist30xx_data, + early_suspend); + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + ist30xx_internal_suspend(data); + clear_input_data(data); + mutex_unlock(&ist30xx_mutex); +} +static void ist30xx_late_resume(struct early_suspend *h) +{ + struct ist30xx_data *data = container_of(h, struct ist30xx_data, + early_suspend); + + mutex_lock(&ist30xx_mutex); + ist30xx_internal_resume(data); + ist30xx_start(data); + ist30xx_enable_irq(data); + mutex_unlock(&ist30xx_mutex); +} +#else +static int ist30xx_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct ist30xx_data *data = i2c_get_clientdata(client); + + return ist30xx_internal_suspend(data); +} +static int ist30xx_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct ist30xx_data *data = i2c_get_clientdata(client); + + return ist30xx_internal_resume(data); +} +#endif // CONFIG_HAS_EARLYSUSPEND + + +void ist30xx_set_ta_mode(bool charging) +{ + tsp_info("%s(), charging = %d\n", __func__, charging); +#if IST30XX_DETECT_TA + if (charging == ist30xx_ta_status) + return; + + if (ist30xx_ta_status == -1) { + ist30xx_ta_status = charging ? 1 : 0; + return; + } + + ist30xx_ta_status = charging ? 1 : 0; + + tsp_info("%s(), status = %d\n", __func__, ist30xx_ta_status); + + schedule_delayed_work(&work_reset_check, 0); +#endif +} +EXPORT_SYMBOL(ist30xx_set_ta_mode); + +void ist30xx_set_call_mode(int mode) +{ + tsp_info("%s(), mode = %d\n", __func__, mode); + +#if IST30XX_DETECT_CALLER + if (mode == ist30xx_ta_status) + return; + + if (ist30xx_ta_status == -1) { + ist30xx_ta_status = mode ? 1 : 0; + return; + } + + ist30xx_call_status = mode; + + tsp_info("%s(), call = %d\n", __func__, ist30xx_call_status); + + schedule_delayed_work(&work_reset_check, 0); +#endif +} +EXPORT_SYMBOL(ist30xx_set_call_mode); + + +void charger_enable(int enable) +{ + bool charging = enable ? true : false; + + ist30xx_set_ta_mode(charging); +} + +static void reset_work_func(struct work_struct *work) +{ + if ((ts_data == NULL) || (ts_data->client == NULL)) + return; + + tsp_info("Request reset function\n"); + + if ((ist30xx_initialized == 1) && (ts_data->status.power == 1) && + (ts_data->status.update != 1) && (ts_data->status.calib != 1)) { + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(ts_data); + + clear_input_data(ts_data); + + ist30xx_cmd_run_device(ts_data->client); + + ist30xx_start(ts_data); + + ist30xx_enable_irq(ts_data); + mutex_unlock(&ist30xx_mutex); + } +} +#if 0 +#if IST30XX_INTERNAL_BIN && IST30XX_UPDATE_BY_WORKQUEUE +static void fw_update_func(struct work_struct *work) +{ + if ((ts_data == NULL) || (ts_data->client == NULL)) + return; + + tsp_info("FW update function\n"); + + if (ist30xx_auto_bin_update(ts_data)) + ist30xx_disable_irq(ts_data); +} +#endif // IST30XX_INTERNAL_BIN && IST30XX_UPDATE_BY_WORKQUEUE +#endif + +#if IST30XX_EVENT_MODE +u32 ist30xx_max_scan_retry = 2; +u32 ist30xx_scan_count = 0; +u32 ist30xx_algr_addr = 0, ist30xx_algr_size = 0; + +#define SCAN_STATUS_MAGIC (0x3C000000) +#define SCAN_STATUS_MASK (0xFF000000) +#define FINGER_CNT_MASK (0x00F00000) +#define SCAN_CNT_MASK (0x000FFFFF) +#define GET_FINGER_CNT(k) ((k & FINGER_CNT_MASK) >> 20) +#define GET_SCAN_CNT(k) (k & SCAN_CNT_MASK) + +static void noise_work_func(struct work_struct *work) +{ +# if IST30XX_NOISE_MODE + int i, ret; + u32 scan_status = 0; + + ret = ist30xx_read_cmd(ts_data->client, IST30XXB_MEM_COUNT, &scan_status); + if (ret) { + tsp_warn("Mem scan count read fail!\n"); + goto retry_timer; + } + #if PRINT_TSP_LOG + tsp_verb("scan status: 0x%x\n", scan_status); + #endif + if ((scan_status & SCAN_STATUS_MASK) != SCAN_STATUS_MAGIC) { + tsp_warn("Scan status is not corrected!\n"); + goto retry_timer; + } else { + /* Status of IC is idle */ + if (GET_FINGER_CNT(scan_status) == 0) { + for (i = 0; i < IST30XX_MAX_MT_FINGERS; i++) { + if (ts_data->prev_fingers[i].bit_field.id == 0) + continue; + + if (ts_data->prev_fingers[i].bit_field.udmg & PRESS_MSG_MASK) { + tsp_warn("prev_fingers: 0x%08x\n", + ts_data->prev_fingers[i].full_field); + release_finger(&ts_data->prev_fingers[i]); + } + } + + for (i = 0; i < IST30XX_MAX_MT_FINGERS; i++) { + if (ts_data->prev_keys[i].bit_field.id == 0) + continue; + + if (ts_data->prev_keys[i].bit_field.w == PRESS_MSG_KEY) { + tsp_warn("prev_keys: 0x%08x\n", + ts_data->prev_keys[i].full_field); + release_key(&ts_data->prev_keys[i], RELEASE_KEY); + } + } + } + + scan_status &= SCAN_CNT_MASK; + + /* Status of IC is lock-up */ + if (scan_status == ist30xx_scan_count) { + tsp_warn("TSP IC is not responded!\n"); + goto retry_timer; + } + } + + ist30xx_scan_count = scan_status; + + return; + +retry_timer: + tsp_warn("Retry scan status!\n"); + + if (ist30xx_scan_retry++ == ist30xx_max_scan_retry) { + schedule_delayed_work(&work_reset_check, 0); + ist30xx_scan_retry = 0; + } +# endif // IST30XX_NOISE_MODE +} + +static void debug_work_func(struct work_struct *work) +{ +# if IST30XX_ALGORITHM_MODE + int ret = -EPERM; + ALGR_INFO algr; + u32 *buf32 = (u32 *)&algr; + + ret = ist30xxb_burst_read(ts_data->client, + ist30xx_algr_addr, (u32 *)&algr, ist30xx_algr_size); + if (ret) { + tsp_warn("Algorithm mem addr read fail!\n"); + return; + } + + tsp_debug(" 0x%08x 0x%08x 0x%08x 0x%08x 0x&08x\n", + buf32[0], buf32[1], buf32[2], buf32[3], buf32[4]); + + tsp_debug(" Scanstatus: %x\n", algr.scan_status); + tsp_debug(" TouchCnt: %d\n", algr.touch_cnt); + tsp_debug(" IntlTouchCnt: %d\n", algr.intl_touch_cnt); + tsp_debug(" StatusFlag: %d\n", algr.status_flag); + tsp_debug(" RAWPeakMax: %d\n", algr.raw_peak_max); + tsp_debug(" RAWPeakMin: %d\n", algr.raw_peak_min); + tsp_debug(" FLTPeakMax: %d\n", algr.flt_peak_max); + tsp_debug(" AdptThreshold: %d\n", algr.adpt_threshold); + tsp_debug(" KeyRawData0: %d\n", algr.key_raw_data[0]); + tsp_debug(" KeyRawData1: %d\n", algr.key_raw_data[1]); +# endif // IST30XX_ALGORITHM_MODE + } + +void timer_handler(unsigned long data) +{ + u32 ms = 0; + struct ist30xx_status *status = &ts_data->status; + + if (ist30xx_irq_working) + goto restart_timer; + + if (status->event_mode) { + if ((status->power == 1) && (status->update != 1)) { + ms = (u32)get_milli_second(); + if (status->calib == 1) { + if (ms - event_ms >= 3000) { // 3second + tsp_debug("calibration timeout over 3sec\n"); + schedule_delayed_work(&work_reset_check, 0); + status->calib = 0; + } + } else if (status->noise_mode) { + schedule_delayed_work(&work_noise_protect, 0); + } + +# if IST30XX_ALGORITHM_MODE + if ((ist30xx_algr_addr >= IST30XXB_ACCESS_ADDR) && + (ist30xx_algr_size > 0)) + schedule_delayed_work(&work_debug_algorithm, 0); + +# endif // IST30XX_ALGORITHM_MODE + } + } + +restart_timer: + mod_timer(&idle_timer, get_jiffies_64() + (HZ * timer_period_ms / 1000)); +} +#endif // IST30XX_EVENT_MODE + +extern int sec_touch_sysfs(struct ist30xx_data *data); +extern int sec_fac_cmd_init(struct ist30xx_data *data); + +static int ist30xx_probe(struct i2c_client * client, + const struct i2c_device_id * id) +{ + int ret; + int retry = 3; + struct ist30xx_data *data; + struct input_dev *input_dev; + int ist_gpio = 0; + struct tsp_dev_info *pdata = client->dev.platform_data; + printk("[TSP] %s(), the i2c addr=0x%x", __func__, client->addr); + + data = kzalloc(sizeof(*data), GFP_KERNEL); + if (!data) + return -ENOMEM; + +#ifdef CONFIG_OF + + struct device_node *np = client->dev.of_node; + + printk("[TSP] the client->dev.of_node=0x%x\n", client->dev.of_node); + + if (client->dev.of_node){ + ist_gpio = of_get_gpio(np, 0); + printk("[TSP] gpio id=%d", ist_gpio); + } +#endif + + input_dev = input_allocate_device(); + if (!input_dev) { + ret = -ENOMEM; + tsp_err("%s(), input_allocate_device failed (%d)\n", __func__, ret); + goto err_alloc_dev; + } + + data->max_fingers = data->max_keys = IST30XX_MAX_MT_FINGERS; + data->irq_enabled = 1; + data->client = client; + data->input_dev = input_dev; + i2c_set_clientdata(client, data); + + input_mt_init_slots(input_dev, IST30XX_MAX_MT_FINGERS, 0); + + input_dev->name = "ist30xx_ts_input"; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + + set_bit(EV_ABS, input_dev->evbit); + set_bit(INPUT_PROP_DIRECT, input_dev->propbit); + + input_set_abs_params(input_dev, ABS_MT_POSITION_X, 0, IST30XX_MAX_X, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, 0, IST30XX_MAX_Y, 0, 0); + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, IST30XX_MAX_W, 0, 0); + +#if IST30XX_USE_KEY + { + int i; + set_bit(EV_KEY, input_dev->evbit); + set_bit(EV_SYN, input_dev->evbit); + for (i = 1; i < ARRAY_SIZE(ist30xx_key_code); i++) + set_bit(ist30xx_key_code[i], input_dev->keybit); + } +#endif + + input_set_drvdata(input_dev, data); + ret = input_register_device(input_dev); + if (ret) { + input_free_device(input_dev); + goto err_reg_dev; + } + + ts_data = data; + ist30xx_power_on(); + ret = ist30xx_init_system(); + if (ret) { + dev_err(&client->dev, "chip initialization failed\n"); + goto err_init_drv; + } + + ret = ist30xx_init_update_sysfs(); + if (ret) + goto err_init_drv; + +#if IST30XX_DEBUG + ret = ist30xx_init_misc_sysfs(); + if (ret) + goto err_init_drv; +#endif +#if 0 +# if IST30XX_FACTORY_TEST + ret = sec_fac_cmd_init(data); + if (ret) + goto err_init_drv; + ret = sec_touch_sysfs(data); + if (ret) + goto err_init_drv; +#endif + +#if IST30XX_TRACKING_MODE + ret = ist30xx_init_tracking_sysfs(); + if (ret) + goto err_init_drv; +#endif +#endif + +#ifndef CONFIG_OF + ist_gpio = pdata->gpio; +#endif + /* configure touchscreen interrupt gpio */ + ret = gpio_request(ist_gpio, "ist30xx_irq_gpio"); + printk("[TSP] pdata->gpio : %d\n", ist_gpio); + if (ret) { + tsp_err("unable to request gpio.(%s)\r\n",input_dev->name); + goto err_init_drv; + } + + client->irq = gpio_to_irq(ist_gpio); + + printk("[TSP] client->irq : %d\n", client->irq); + ret = request_threaded_irq(client->irq, NULL, ist30xx_irq_thread, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, "ist30xx_ts", data); + if (ret) + goto err_irq; + + ist30xx_disable_irq(data); + + while (data->chip_id != IST30XXB_CHIP_ID) { + ist30xx_read_cmd(data->client, IST30XXB_REG_CHIPID, &data->chip_id); + data->chip_id = (data->chip_id == 0x3000B ? IST30XXB_CHIP_ID : 0); + + if (retry-- == 0) + break;//goto err_irq; + } + + retry = 3; + while (retry-- > 0) { + ret = ist30xx_read_cmd(data->client, IST30XXB_REG_TSPTYPE, + &data->tsp_type); + if (ret) continue; + + tsp_debug("tsptype: %x\n", data->tsp_type); + data->tsp_type = IST30XXB_PARSE_TSPTYPE(data->tsp_type); + + if (ret == 0) + break; + } + if (retry == 0) + data->tsp_type = TSP_TYPE_UNKNOWN; + + tsp_info("TSP IC: %x, TSP Vendor: %x\n", data->chip_id, data->tsp_type); + +#if IST30XX_EVENT_MODE + data->status.event_mode = false; +#endif +#if IST30XX_INTERNAL_BIN +# if IST30XX_UPDATE_BY_WORKQUEUE + INIT_DELAYED_WORK(&work_fw_update, fw_update_func); + schedule_delayed_work(&work_fw_update, IST30XX_UPDATE_DELAY); +# else + ret = ist30xx_auto_bin_update(data); //sinjan.kumar + if (ret != 0) + goto err_irq; +# endif +#endif // IST30XX_INTERNAL_BIN + + ret = ist30xx_get_info(data); + tsp_info("Get info: %s\n", (ret == 0 ? "success" : "fail")); + + INIT_DELAYED_WORK(&work_reset_check, reset_work_func); + INIT_DELAYED_WORK(&work_noise_protect, noise_work_func); + INIT_DELAYED_WORK(&work_debug_algorithm, debug_work_func); + +#if IST30XX_EVENT_MODE + init_timer(&idle_timer); + idle_timer.function = timer_handler; + idle_timer.expires = jiffies_64 + (EVENT_TIMER_INTERVAL); + + mod_timer(&idle_timer, get_jiffies_64() + EVENT_TIMER_INTERVAL); +#endif + + +#ifdef CONFIG_HAS_EARLYSUSPEND + data->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + data->early_suspend.suspend = ist30xx_early_suspend; + data->early_suspend.resume = ist30xx_late_resume; + register_early_suspend(&data->early_suspend); +#endif + + ist30xx_initialized = 1; + printk("[TSP] Probe end\n"); + return 0; + +err_irq: + tsp_debug("ChipID: %x\n", data->chip_id); + ist30xx_disable_irq(data); + free_irq(client->irq, data); +err_init_drv: +#if IST30XX_EVENT_MODE + data->status.event_mode = false; +#endif + tsp_err("Error, ist30xx init driver\n"); + ist30xx_power_off(); + input_unregister_device(input_dev); + return 0; + +err_reg_dev: +err_alloc_dev: + tsp_err("Error, ist30xx mem free\n"); + kfree(data); + return 0; +} + + +static int ist30xx_remove(struct i2c_client *client) +{ + struct ist30xx_data *data = i2c_get_clientdata(client); + +#ifdef CONFIG_HAS_EARLYSUSPEND + unregister_early_suspend(&data->early_suspend); +#endif + + free_irq(client->irq, data); + ist30xx_power_off(); + + input_unregister_device(data->input_dev); + kfree(data); + + return 0; +} + + +static struct i2c_device_id ist30xx_idtable[] = { + { IST30XX_DEV_NAME, 0 }, + {}, +}; + + +MODULE_DEVICE_TABLE(i2c, ist30xx_idtable); + +#ifdef CONFIG_HAS_EARLYSUSPEND +static const struct dev_pm_ops ist30xx_pm_ops = { + .suspend = ist30xx_suspend, + .resume = ist30xx_resume, +}; +#endif + +#ifdef CONFIG_OF +static const struct of_device_id ist30xxb_ts_of_match[] = { + { .compatible = "Imagis,IST30XXB", }, + { } +}; +#endif + +static struct i2c_driver ist30xx_i2c_driver = { + .id_table = ist30xx_idtable, + .probe = ist30xx_probe, + .remove = ist30xx_remove, + .driver = { + .owner = THIS_MODULE, + .name = IST30XX_DEV_NAME, +#ifdef CONFIG_HAS_EARLYSUSPEND + .pm = &ist30xx_pm_ops, +#endif +#ifdef CONFIG_OF + .of_match_table = ist30xxb_ts_of_match, +#endif + + }, +}; + + +static int __init ist30xx_init(void) +{ +// #if PRINT_TSP_LOG + printk("[TSP] ist30xx_init\n"); +// #endif + + + return i2c_add_driver(&ist30xx_i2c_driver); +} + + +static void __exit ist30xx_exit(void) +{ + i2c_del_driver(&ist30xx_i2c_driver); +} + +module_init(ist30xx_init); +module_exit(ist30xx_exit); + +MODULE_DESCRIPTION("Imagis IST30XX touch driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb_factory.c b/drivers/input/touchscreen/ist30xxb/ist30xxb_factory.c new file mode 100755 index 00000000..aecc6825 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb_factory.c @@ -0,0 +1,592 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xxb_update.h" +#include "ist30xxb_misc.h" +#include "ist30xxb_tsp.h" + +extern struct ist30xx_data *ts_data; +extern TSP_INFO ist30xx_tsp_info; +extern TKEY_INFO ist30xx_tkey_info; + + +#define TSP_BUF_SIZE (1024) +/* /sys/class/factory/tsp/close_tsp_test */ +ssize_t factory_tsp_test_close_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + printk("[TSP] tsp test close\n"); + + return snprintf(buf, TSP_BUF_SIZE, "%u\n", 0); +} + +/* /sys/class/factory/tsp/cmd_status */ +ssize_t factory_tsp_cmd_status_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + printk("[TSP] tsp cmd status : Ready"); + + return snprintf(buf, sizeof(char) * 16, "Ready\n"); +} + +/* /sys/class/factory/tsp/cmd_result */ +ssize_t factory_tsp_cmd_result_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + printk("[TSP] tsp cmd result : Ready"); + + return snprintf(buf, sizeof(char) * 16, "Ready\n"); +} + +/* /sys/class/factory/tsp/cmd */ +ssize_t factory_tsp_cmd_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + printk("[TSP] tsp cmd store\n"); + + return size; +} + +/* /sys/class/factory/tsp/intensity_logging_on */ +ssize_t factory_tsp_intensity_log_on(struct device *dev, + struct device_attribute *attr, char *buf) +{ + printk("[TSP] tsp intensity logging on : Ready"); + + return snprintf(buf, sizeof(char) * 16, "Ready\n"); +} + +/* /sys/class/factory/tsp/intensity_logging_off */ +ssize_t factory_tsp_intensity_log_off(struct device *dev, + struct device_attribute *attr, char *buf) +{ + printk("[TSP] tsp intensity logging off : Ready"); + + return snprintf(buf, sizeof(char) * 16, "Ready\n"); +} + + +extern ssize_t ist30xx_frame_refresh(struct device *dev, struct device_attribute *attr, char *buf); +/* /sys/class/factory/tsp/read_frame */ +ssize_t factory_tsp_read_frame_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret = 0; + + ret = ist30xx_enter_debug_mode(); + if (ret) + return snprintf(buf, sizeof(char) * 16, "fail, factory_read_frame\n"); + + ist30xx_frame_refresh(dev, attr, buf); + + return snprintf(buf, sizeof(char) * 16, "factory_read_frame\n"); +} + +static u16 *node_raw_buf; +static u16 *node_baseline_buf; +/* sysfs: /sys/class/factory/tsp/read_node */ +ssize_t factory_tsp_read_node_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret = 0; + + ret = ist30xx_read_tsp_node(node_raw_buf, node_baseline_buf); + if (ret) + return snprintf(buf, sizeof(char) * 16, "fail, factory_read_frame\n"); + + return 0; +} + +/* sysfs: /sys/class/factory/tsp/raw */ +ssize_t factory_tsp_raw_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int i, j; + int count = 0; + const int msg_len = 128; + char msg[msg_len]; + TSP_INFO *tsp = &ist30xx_tsp_info; + + ist30xx_parse_tsp_node(node_raw_buf, node_baseline_buf); + + for (i = 0; i < tsp->height; i++) { + for (j = 0; j < tsp->width; j++) { + count += snprintf(msg, msg_len, "%04d ", *node_raw_buf++); + strncat(buf, msg, msg_len); + } + + count += snprintf(msg, msg_len, "\n"); + strncat(buf, msg, msg_len); + } + + return count; +} +/* sysfs: /sys/class/factory/tsp/baseline */ +ssize_t factory_tsp_baseline_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int i, j; + int count = 0; + const int msg_len = 128; + char msg[msg_len]; + TSP_INFO *tsp = &ist30xx_tsp_info; + + ist30xx_parse_tsp_node(node_raw_buf, node_baseline_buf); + + for (i = 0; i < tsp->height; i++) { + for (j = 0; j < tsp->width; j++) { + count += snprintf(msg, msg_len, "%04d ", *node_baseline_buf++); + strncat(buf, msg, msg_len); + } + + count += snprintf(msg, msg_len, "\n"); + strncat(buf, msg, msg_len); + } + + return count; +} +/* sysfs: /sys/class/factory/tsp/diff */ +ssize_t factory_tsp_diff_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int i, j; + int count = 0; + const int msg_len = 128; + char msg[msg_len]; + TSP_INFO *tsp = &ist30xx_tsp_info; + + ist30xx_parse_tsp_node(node_raw_buf, node_baseline_buf); + + for (i = 0; i < tsp->height; i++) { + for (j = 0; j < tsp->width; j++) { + count += snprintf(msg, msg_len, "%4d ", + (*node_raw_buf++) - (*node_baseline_buf++)); + strncat(buf, msg, msg_len); + } + + count += snprintf(msg, msg_len, "\n"); + strncat(buf, msg, msg_len); + } + + return count; +} + + +/* /sys/class/factory/tsp/chip_vendor */ +ssize_t factory_tsp_chip_vendor_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret; + + ist30xx_disable_irq(ts_data); + + ret = ist30xx_cmd_run_device(ts_data->client); + if (ret) + return sprintf(buf, "NULL"); + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_CHIP_ID, &ts_data->chip_id); + if (ret) + return sprintf(buf, "NULL"); + + ist30xx_enable_irq(ts_data); + + if ((ts_data->chip_id != IST30XX_CHIP_ID) && + (ts_data->chip_id != IST30XXA_CHIP_ID)) + return sprintf(buf, "NULL"); + + printk("[TSP] tsp chip vendor: %s\n", IST30XX_CHIP_VENDOR); + + return sprintf(buf, "%s\n", IST30XX_CHIP_VENDOR); +} + +/* /sys/class/factory/tsp/chip_name */ +ssize_t factory_tsp_chip_name_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret; + + ist30xx_disable_irq(ts_data); + + ret = ist30xx_cmd_run_device(ts_data->client); + if (ret) + return sprintf(buf, "NULL"); + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_CHIP_ID, &ts_data->chip_id); + if (ret) + return sprintf(buf, "NULL"); + + ist30xx_enable_irq(ts_data); + + if ((ts_data->chip_id != IST30XX_CHIP_ID) && + (ts_data->chip_id != IST30XXA_CHIP_ID)) + return sprintf(buf, "NULL"); + + printk("[TSP] tsp chip name: %s\n", IST30XX_CHIP_NAME); + + return sprintf(buf, "%s\n", IST30XX_CHIP_NAME); +} + +/* /sys/class/factory/tsp/panel_vendor */ +ssize_t factory_tsp_panel_vendor_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret; + u32 panel_vendor; + + ist30xx_disable_irq(ts_data); + ret = ist30xx_cmd_run_device(ts_data->client); + if (ret) + return sprintf(buf, "NULL"); + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_TSP_VENDOR, &panel_vendor); + if (ret) + return sprintf(buf, "NULL"); + /* + * TSP panel_vendor + * - ALPS 1 + * - SUNTEL 2 + * - TOVIS 3 + * - ILJIN 4 + * - SYNOPEX 5 + * - TAEYANG 6 + */ + + ist30xx_enable_irq(ts_data); + + printk("[TSP] tsp panel vendor: %d\n", panel_vendor); + + return sprintf(buf, "%d\n", panel_vendor); +} + +/* /sys/class/factory/tsp/fw_ver */ +ssize_t factory_tsp_fw_ver_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret; + + ist30xx_disable_irq(ts_data); + + ret = ist30xx_cmd_run_device(ts_data->client); + if (ret) + return sprintf(buf, "NULL"); + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_FW_VER, &ts_data->fw.core_ver); + if (ret) + return sprintf(buf, "NULL"); + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_PARAM_VER, &ts_data->fw.param_ver); + if (ret) + return sprintf(buf, "NULL"); + + ist30xx_enable_irq(ts_data); + + printk("[TSP] tsp version: %d.%d(%d.%d.%d)\n", + (ts_data->fw.param_ver >> 8) & 0xFF, ts_data->fw.param_ver & 0xFF, + (ts_data->fw.core_ver >> 16) & 0xFF, (ts_data->fw.core_ver >> 8) & 0xFF, + ts_data->fw.core_ver & 0xFF); + + return sprintf(buf, "%d.%d(%d.%d.%d)\n", + (ts_data->fw.param_ver >> 8) & 0xFF, ts_data->fw.param_ver & 0xFF, + (ts_data->fw.core_ver >> 16) & 0xFF, (ts_data->fw.core_ver >> 8) & 0xFF, + ts_data->fw.core_ver & 0xFF); +} + +/* /sys/class/factory/tsp/raw_range */ +ssize_t factory_tsp_raw_range_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + printk("[TSP] tsp raw range: %d~%d\n", + IST30XX_MIN_RAW_DATA, IST30XX_MAX_RAW_DATA); + + return sprintf(buf, "%d,%d\n", IST30XX_MIN_RAW_DATA, IST30XX_MAX_RAW_DATA); +} + +/* /sys/class/factory/tsp/base_range */ +ssize_t factory_tsp_base_range_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + printk("[TSP] tsp base range: %d~%d\n", + IST30XX_MIN_BASELINE, IST30XX_MAX_BASELINE); + + return sprintf(buf, "%d,%d\n", IST30XX_MIN_BASELINE, IST30XX_MAX_BASELINE); +} + +/* /sys/class/factory/tsp/zval_range */ +ssize_t factory_tsp_zval_range_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + printk("[TSP] tsp raw range: %d~%d\n", + IST30XX_MIN_ZVALUE_TSP, IST30XX_MAX_ZVALUE_TSP); + + return sprintf(buf, "%d,%d\n", + IST30XX_MIN_ZVALUE_TSP, IST30XX_MAX_ZVALUE_TSP); +} + +/* /sys/class/factory/tsp/node_num */ +ssize_t factory_tsp_node_num_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + printk("[TSP] tsp node num: width:%d, height: %d\n", + ist30xx_tsp_info.width, ist30xx_tsp_info.height); + + return sprintf(buf, "%d,%d\n", + ist30xx_tsp_info.width, ist30xx_tsp_info.height); +} + + +/* /sys/class/factory/tkey/tkey_back */ +ssize_t factory_back_key_state_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int key_state = 0; + + printk("[TSP] back tkey state: %d\n", key_state); + + return snprintf(buf, sizeof(buf), "%d\n", key_state); +} + +/* /sys/class/factory/tkey/tkey_menu */ +ssize_t factory_menu_key_state_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int key_state = 0; + + printk("[TSP] menu tkey state: %d\n", key_state); + + return snprintf(buf, sizeof(int), "%d\n", key_state); +} + +/* /sys/class/factory/tkey/tkey_hom */ +ssize_t factory_home_key_state_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int key_state = 0; + + printk("[TSP] home tkey state: %d\n", key_state); + + return snprintf(buf, sizeof(int), "%d\n", key_state); +} + +/* /sys/class/factory/tkey/tkey_recent */ +ssize_t factory_recent_key_state_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int key_state = 0; + + printk("[TSP] recent tkey state: %d\n", key_state); + + return snprintf(buf, sizeof(int), "%d\n", key_state); +} + +/* /sys/class/factory/tkey/tkey_threshold */ +ssize_t factory_tkey_threshold_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int threshold = 0; + + printk("[TSP] touch tkey threshold: %d\n", threshold); + + return snprintf(buf, sizeof(int), "%d\n", threshold); +} + +/* /sys/class/factory/tkey/tkey_raw_data0 */ +ssize_t factory_tkey_rawcnt0_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int raw_cnt = 0; + + printk("[TSP] raw counter0: %d\n", raw_cnt); + + return snprintf(buf, sizeof(int), "%d\n", raw_cnt); +} + +/* /sys/class/factory/tkey/tkey_raw_data1 */ +ssize_t factory_tkey_rawcnt1_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int raw_cnt = 0; + + printk("[TSP] raw counter1: %d\n", raw_cnt); + + return snprintf(buf, sizeof(int), "%d\n", raw_cnt); +} + +/* /sys/class/factory/tkey/tkey_raw_data2 */ +ssize_t factory_tkey_rawcnt2_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int raw_cnt = 0; + + printk("[TSP] raw counter2: %d\n", raw_cnt); + + return snprintf(buf, sizeof(int), "%d\n", raw_cnt); +} + +/* /sys/class/factory/tkey/tkey_raw_data3 */ +ssize_t factory_tkey_rawcnt3_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int raw_cnt = 0; + + printk("[TSP] raw counter3 : %d\n", raw_cnt); + + return snprintf(buf, sizeof(int), "%d\n", raw_cnt); +} + + +extern int key_sensitivity; +/* /sys/class/factory/tkey/tkey_zvalue */ +ssize_t factory_tkey_zvalue_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + printk("[TSP] tkey zvalue: %d\n", key_sensitivity); + + return snprintf(buf, sizeof(int), "%d\n", key_sensitivity); +} + +/* /sys/class/factory/tkey/tkey_zval_range */ +ssize_t factory_tkey_zval_range_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + printk("[TSP] zvalue range: %d~%d\n", + IST30XX_MIN_ZVALUE_TKEY, IST30XX_MAX_ZVALUE_TKEY); + + return sprintf(buf, "%d,%d\n", + IST30XX_MIN_ZVALUE_TKEY, IST30XX_MAX_ZVALUE_TKEY); +} + + +/* sysfs */ +static DEVICE_ATTR(close_tsp_test, S_IRUGO, factory_tsp_test_close_show, NULL); +static DEVICE_ATTR(cmd_status, S_IRUGO, factory_tsp_cmd_status_show, NULL); +static DEVICE_ATTR(cmd_result, S_IRUGO, factory_tsp_cmd_result_show, NULL); +static DEVICE_ATTR(cmd, S_IWUSR | S_IWGRP, NULL, factory_tsp_cmd_store); + +static DEVICE_ATTR(intensity_logging_on, S_IRUGO, factory_tsp_intensity_log_on, + NULL); +static DEVICE_ATTR(intensity_logging_off, S_IRUGO, factory_tsp_intensity_log_off, + NULL); + +static DEVICE_ATTR(read_frame, S_IRUGO, factory_tsp_read_frame_show, NULL); +static DEVICE_ATTR(read_node, S_IRUGO, factory_tsp_read_node_show, NULL); +static DEVICE_ATTR(raw, S_IRUGO, factory_tsp_raw_show, NULL); +static DEVICE_ATTR(baseline, S_IRUGO, factory_tsp_baseline_show, NULL); +static DEVICE_ATTR(diff, S_IRUGO, factory_tsp_diff_show, NULL); +static DEVICE_ATTR(chip_vendor, S_IRUGO, factory_tsp_chip_vendor_show, NULL); +static DEVICE_ATTR(chip_name, S_IRUGO, factory_tsp_chip_name_show, NULL); +static DEVICE_ATTR(panel_vendor, S_IRUGO, factory_tsp_panel_vendor_show, NULL); +static DEVICE_ATTR(fw_ver, S_IRUGO, factory_tsp_fw_ver_show, NULL); +static DEVICE_ATTR(raw_range, S_IRUGO, factory_tsp_raw_range_show, NULL); +static DEVICE_ATTR(base_range, S_IRUGO, factory_tsp_base_range_show, NULL); +static DEVICE_ATTR(zval_range, S_IRUGO, factory_tsp_zval_range_show, NULL); +static DEVICE_ATTR(node_num, S_IRUGO, factory_tsp_node_num_show, NULL); + +static struct attribute *factory_tsp_attributes[] = { + &dev_attr_close_tsp_test.attr, + &dev_attr_cmd.attr, + &dev_attr_cmd_status.attr, + &dev_attr_cmd_result.attr, + + &dev_attr_intensity_logging_on.attr, + &dev_attr_intensity_logging_off.attr, + + &dev_attr_read_frame.attr, + &dev_attr_read_node.attr, + &dev_attr_raw.attr, + &dev_attr_baseline.attr, + &dev_attr_diff.attr, + &dev_attr_chip_vendor.attr, + &dev_attr_chip_name.attr, + &dev_attr_panel_vendor.attr, + &dev_attr_fw_ver.attr, + &dev_attr_raw_range.attr, + &dev_attr_base_range.attr, + &dev_attr_zval_range.attr, + &dev_attr_node_num.attr, + + NULL, +}; +static struct attribute_group factory_tsp_attr_group = { + .attrs = factory_tsp_attributes, +}; + +static DEVICE_ATTR(tkey_back, S_IRUGO, factory_back_key_state_show, NULL); +static DEVICE_ATTR(tkey_home, S_IRUGO, factory_home_key_state_show, NULL); +static DEVICE_ATTR(tkey_menu, S_IRUGO, factory_menu_key_state_show, NULL); +static DEVICE_ATTR(tkey_recent, S_IRUGO, factory_recent_key_state_show, NULL); +static DEVICE_ATTR(tkey_threshold, S_IRUGO, factory_tkey_threshold_show, NULL); +static DEVICE_ATTR(tkey_raw_data0, S_IRUGO, factory_tkey_rawcnt0_show, NULL); +static DEVICE_ATTR(tkey_raw_data1, S_IRUGO, factory_tkey_rawcnt1_show, NULL); +static DEVICE_ATTR(tkey_raw_data2, S_IRUGO, factory_tkey_rawcnt2_show, NULL); +static DEVICE_ATTR(tkey_raw_data3, S_IRUGO, factory_tkey_rawcnt3_show, NULL); +static DEVICE_ATTR(tkey_zvalue, S_IRWXUGO, factory_tkey_zvalue_show, NULL); +static DEVICE_ATTR(tkey_zval_range, S_IRUGO, factory_tkey_zval_range_show, NULL); + +static struct attribute *factory_tkey_attributes[] = { + &dev_attr_tkey_back.attr, + &dev_attr_tkey_home.attr, + &dev_attr_tkey_menu.attr, + &dev_attr_tkey_recent.attr, + &dev_attr_tkey_threshold.attr, + &dev_attr_tkey_raw_data0.attr, + &dev_attr_tkey_raw_data1.attr, + &dev_attr_tkey_raw_data2.attr, + &dev_attr_tkey_raw_data3.attr, + + &dev_attr_tkey_zvalue.attr, + &dev_attr_tkey_zval_range.attr, + NULL, +}; +static struct attribute_group factory_tkey_attr_group = { + .attrs = factory_tkey_attributes, +}; + + +struct class *factory_dev_class; +struct device *factory_tsp_dev; +struct device *factory_tk_dev; + + +int ist30xx_init_factory_sysfs(void) +{ + factory_dev_class = class_create(THIS_MODULE, "factory"); + if (!factory_dev_class) + pr_err("[ TSP ] Failed to create device class(%s)!\n", "factory"); + + /* /sys/class/factory/tsp */ + factory_tsp_dev = device_create(factory_dev_class, NULL, 0, NULL, "tsp"); + + /* /sys/class/factory/tsp/... */ + if (sysfs_create_group(&factory_tsp_dev->kobj, &factory_tsp_attr_group)) + pr_err("[ TSP ] Failed to create sysfs group(%s)!\n", "tsp"); + + /* /sys/class/factory/tkey */ + factory_tk_dev = device_create(factory_dev_class, NULL, 0, NULL, "tkey"); + + /* /sys/class/factory/tkey/... */ + if (sysfs_create_group(&factory_tk_dev->kobj, &factory_tkey_attr_group)) + pr_err("[ TSP ] Failed to create sysfs group(%s)!\n", "tkey"); + + node_raw_buf = kmalloc(4096, GFP_KERNEL); + node_baseline_buf = kmalloc(4096, GFP_KERNEL); + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb_fw_pikeayoung2dtv_ver0001.h b/drivers/input/touchscreen/ist30xxb/ist30xxb_fw_pikeayoung2dtv_ver0001.h new file mode 100644 index 00000000..d9f54435 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb_fw_pikeayoung2dtv_ver0001.h @@ -0,0 +1,2166 @@ +#ifndef __IST30XXB_FW_H__ +#define __IST30XXB_FW_H__ + +/* ist30xxb binary: Fame2 TOPTOUCH, f/w 1(00030301) */ +static unsigned char ist30xxb_fw[] = { + 0x06,0x00,0x00,0xEA,0x2C,0x00,0x00,0xEA,0x2B,0x00,0x00,0xEA,0x2A,0x00,0x00,0xEA, + 0x29,0x00,0x00,0xEA,0x28,0x00,0x00,0xEA,0x27,0x00,0x00,0xEA,0x3E,0x00,0x00,0xEA, + 0x14,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0xA0,0xE1,0x00,0x00,0x00,0xEA,0x0C,0x20,0x00,0x40, + 0x11,0x01,0xA0,0xE3,0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0xC1,0x01,0xA0,0xE3, + 0x1C,0x10,0x9F,0xE5,0x00,0x10,0x80,0xE5,0x18,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0xF1,0x01,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0x01,0x00,0x00,0xEA,0xC8,0x74,0x00,0x00,0x4C,0x00,0x00,0x40,0x00,0x00,0x0F,0xE1, + 0x1F,0x00,0xC0,0xE3,0xD1,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x1C,0xD0,0x9F,0xE5, + 0xD3,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x14,0xD0,0x9F,0xE5,0x00,0x00,0x0F,0xE1, + 0xC0,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x08,0x00,0x9F,0xE5,0x10,0xFF,0x2F,0xE1, + 0xFC,0x0F,0x00,0x20,0xC0,0x0F,0x00,0x20,0xA7,0x01,0x00,0x00,0x11,0x01,0xA0,0xE3, + 0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x5C,0x30,0x9F,0xE5,0x5C,0x40,0x9F,0xE5, + 0x00,0x40,0x83,0xE5,0x91,0x01,0xA0,0xE3,0x33,0x16,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0xAC,0x00,0x1F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0x00,0x40,0x83,0xE5, + 0xFF,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x03,0x00,0x00,0xEB,0xFE,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0x00,0xEB,0xF7,0xFF,0xFF,0xEA,0x01,0x29,0xA0,0xE3, + 0x01,0x20,0x52,0xE2,0xFD,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0xFF,0x40,0x2D,0xE9, + 0xC6,0x00,0x00,0xEB,0xFF,0x40,0xBD,0xE8,0x04,0xF0,0x5E,0xE2,0x1C,0x40,0x00,0x30, + 0x70,0xE9,0x1C,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x3C,0x4A,0x3A,0x48,0x3A,0x49,0x92,0x08,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x38,0x48,0x01,0x21,0xC9,0x02,0x01,0x62, + 0x00,0x21,0x01,0x62,0x01,0x62,0x36,0x49,0x36,0x48,0x01,0x60,0x20,0x21,0x41,0x60, + 0xA0,0x21,0x81,0x60,0x70,0x47,0xF8,0xB5,0x30,0x4B,0x9F,0x6A,0x32,0x48,0x00,0x69, + 0x42,0x08,0x58,0x69,0x19,0x15,0x08,0x43,0x58,0x61,0xFF,0xF7,0xE5,0xFF,0x58,0x69, + 0xFF,0x21,0x81,0x31,0x08,0x43,0x58,0x61,0x2C,0x48,0x2D,0x4C,0x20,0x60,0xFF,0x20, + 0x90,0x30,0x60,0x60,0x13,0x20,0xA0,0x60,0xA0,0x68,0xA6,0x15,0x30,0x43,0xA0,0x60, + 0x24,0x4D,0x5F,0x23,0x00,0x2F,0x27,0xD1,0x26,0x4F,0x21,0xE0,0x68,0x68,0x00,0x07, + 0x1E,0xD5,0xE8,0x68,0x40,0x28,0x04,0xD1,0xEA,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1, + 0x14,0xE0,0x20,0x28,0x04,0xD3,0xEF,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1,0x0D,0xE0, + 0x0D,0x28,0x08,0xD1,0x2E,0x20,0x68,0x60,0x68,0x69,0x80,0x06,0xFC,0xD4,0x68,0x68, + 0x80,0x07,0xFC,0xD5,0x08,0xE0,0x68,0x68,0x80,0x07,0xFC,0xD5,0xFF,0xF7,0xAC,0xFF, + 0xE0,0x68,0x15,0x49,0x88,0x42,0xD9,0xD3,0xFF,0xF7,0xA6,0xFF,0xA0,0x68,0xB0,0x43, + 0xA0,0x60,0x00,0xF0,0x3D,0xF9,0xF8,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x0F,0x49, + 0x0F,0x4A,0x00,0x20,0x01,0xE0,0x08,0xC9,0x18,0x18,0x91,0x42,0xFB,0xD3,0x70,0x47, + 0x40,0x00,0x00,0x20,0x94,0x02,0x00,0x00,0xCC,0x00,0x00,0x00,0x40,0x00,0x00,0x40, + 0xDE,0x10,0x01,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0xFF,0xFF,0x00,0x00, + 0x00,0x40,0x00,0x40,0xFF,0x03,0xFF,0x2F,0x50,0xC3,0x00,0x00,0x40,0x04,0x00,0x00, + 0xC0,0x75,0x00,0x00,0x30,0x48,0x41,0x6B,0xC9,0x07,0xFC,0xD0,0x41,0x6B,0x01,0x22, + 0x11,0x43,0x41,0x63,0x70,0x47,0x10,0xB4,0x2B,0x4C,0x40,0x23,0x60,0x60,0x20,0x68, + 0x80,0x0A,0x80,0x02,0x10,0x43,0xA8,0x22,0x10,0x43,0x20,0x60,0x02,0xE0,0x08,0x78, + 0xA0,0x60,0x49,0x1C,0x5B,0x1E,0xFA,0xD2,0x10,0xBC,0x70,0x47,0xF0,0xB5,0x05,0x00, + 0x0E,0x00,0x1F,0x00,0x94,0x09,0x81,0x06,0x20,0x48,0x10,0xD1,0x91,0x06,0x0E,0xD1, + 0x0A,0xE0,0x3A,0x00,0x31,0x00,0x28,0x00,0xFF,0xF7,0xDD,0xFF,0x40,0x35,0x2D,0x04, + 0x2D,0x0C,0x40,0x36,0xFF,0xF7,0xCE,0xFF,0x64,0x1E,0x60,0x1C,0xF1,0xD1,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x14,0x4B,0x40,0x22,0x58,0x60,0x18,0x68,0x80,0x0A,0x80,0x02, + 0x08,0x43,0xA4,0x21,0x08,0x43,0x18,0x60,0x00,0x21,0x00,0xE0,0x99,0x60,0x52,0x1E, + 0xFC,0xD2,0x70,0x47,0x70,0xB5,0x05,0x00,0x16,0x00,0x8C,0x09,0x82,0x06,0x0B,0x48, + 0x0E,0xD1,0x89,0x06,0x0C,0xD1,0x08,0xE0,0x31,0x00,0x28,0x00,0xFF,0xF7,0xE2,0xFF, + 0x40,0x35,0x2D,0x04,0x2D,0x0C,0xFF,0xF7,0xA5,0xFF,0x64,0x1E,0x60,0x1C,0xF3,0xD1, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0xF8,0xB5,0x03,0x25,0x0F,0x4E,0x2D,0x07, + 0x01,0x27,0xF0,0x6A,0x00,0x28,0x15,0xD0,0xF0,0x6B,0xE9,0x68,0x80,0x08,0x3C,0x00, + 0x84,0x40,0x21,0x43,0xE9,0x60,0x69,0x68,0x21,0x42,0x00,0xD0,0x34,0x63,0x81,0x00, + 0x07,0x48,0x40,0x58,0x00,0x28,0x01,0xD0,0x06,0xF0,0x30,0xFE,0xE8,0x68,0xA0,0x43, + 0xE8,0x60,0xE6,0xE7,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x30, + 0x2C,0x0B,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF8,0xB5,0x00,0xF0,0xF9,0xFC,0x07,0x00,0x03,0xF0,0x14,0xFC,0x03,0xF0,0x06,0xFC, + 0x03,0xF0,0x8C,0xFC,0x48,0x4A,0x49,0x49,0x49,0x48,0x04,0xF0,0x22,0xFE,0x49,0x4D, + 0x00,0x26,0x01,0x21,0xC9,0x03,0x30,0x00,0xEE,0x81,0x00,0xF0,0x93,0xF9,0xA8,0x61, + 0x45,0x49,0x00,0x20,0x00,0xF0,0x8E,0xF9,0x44,0x4B,0x45,0x49,0xD8,0x63,0x45,0x48, + 0x00,0xF0,0x88,0xF9,0xD9,0x6B,0x00,0x04,0x08,0x43,0xD8,0x63,0x03,0xF0,0x4E,0xFC, + 0xA1,0x22,0x41,0x48,0xD2,0x00,0x00,0x21,0x04,0xF0,0x0E,0xFE,0x06,0xF0,0xC8,0xF9, + 0x03,0xF0,0xF0,0xFC,0x3D,0x48,0x01,0x24,0x81,0x7A,0xA9,0x71,0xC1,0x7A,0xE9,0x71, + 0x40,0x7A,0x28,0x72,0xFF,0x20,0x91,0x30,0x6E,0x72,0x28,0x82,0xAE,0x72,0xEE,0x72, + 0x35,0x48,0x2E,0x73,0x64,0x07,0x6E,0x73,0x60,0x63,0xFF,0x20,0xE0,0x63,0xE0,0x14, + 0x00,0xF0,0x8E,0xFC,0x32,0x48,0x06,0x70,0xFF,0x20,0x81,0x30,0x00,0xF0,0x88,0xFC, + 0x30,0x49,0x02,0x20,0x06,0xF0,0xB8,0xFC,0x02,0x20,0x06,0xF0,0xBD,0xFC,0x28,0x7A, + 0x00,0x28,0x01,0xD0,0x06,0xF0,0x6A,0xFD,0x00,0x2F,0x1F,0xD1,0x2A,0x4F,0xBE,0x15, + 0x28,0x7A,0x00,0x28,0x02,0xD0,0x29,0x49,0x28,0x6B,0x88,0x60,0xE0,0x6B,0x0B,0x28, + 0x14,0xD0,0x27,0x48,0x40,0x68,0x00,0x07,0x01,0xD5,0x02,0xF0,0xAF,0xFA,0xF8,0x68, + 0x24,0x49,0x88,0x42,0xEC,0xD9,0x24,0x48,0xC0,0x68,0xFF,0x28,0x06,0xD1,0xB8,0x68, + 0xB0,0x43,0xB8,0x60,0xB8,0x68,0x30,0x43,0xB8,0x60,0xE1,0xE7,0xE8,0x79,0x00,0x28, + 0x03,0xD1,0x01,0x20,0x80,0x02,0x00,0xF0,0x4B,0xFC,0x28,0x7A,0x00,0x28,0x01,0xD0, + 0x06,0xF0,0x44,0xFD,0x02,0x20,0x06,0xF0,0x93,0xFC,0xFF,0x20,0x81,0x30,0x00,0xF0, + 0x3F,0xFC,0x16,0x49,0x05,0x20,0x03,0xF0,0x2D,0xFA,0x0B,0x20,0xE0,0x63,0x03,0xF0, + 0xBD,0xFA,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x28,0x00,0x00,0x00,0x7C,0x71,0x00,0x00, + 0x40,0x00,0x00,0x20,0xF8,0x0A,0x00,0x20,0xC0,0x75,0x00,0x00,0xC0,0x0F,0x00,0x20, + 0x00,0x7E,0x00,0x00,0x00,0x76,0x00,0x00,0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00, + 0xAD,0x0B,0x00,0x20,0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x30,0x00,0x40, + 0x00,0x40,0x00,0x30,0x50,0xC3,0x00,0x00,0xC0,0x75,0x00,0x00,0xAD,0x6E,0x00,0x00, + 0x78,0x47,0xC0,0x46,0x01,0x30,0x90,0xE1,0x21,0x00,0x00,0x4A,0x00,0x20,0xB0,0xE3, + 0xA0,0x30,0x71,0xE0,0x1A,0x00,0x00,0x3A,0x20,0x32,0x71,0xE0,0x0F,0x00,0x00,0x3A, + 0x20,0x34,0x71,0xE0,0x01,0x00,0x00,0x3A,0x00,0xC0,0xA0,0xE3,0x20,0x00,0x00,0xEA, + 0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0, + 0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0, + 0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0, + 0x1E,0xFF,0x2F,0xE1,0x02,0x21,0x11,0xE2,0x00,0x10,0x61,0x42,0x40,0xC0,0x32,0xE0, + 0x00,0x00,0x60,0x22,0x20,0x32,0x71,0xE0,0x1D,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0, + 0x0F,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x23,0x82,0xE3, + 0x0B,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x26,0x82,0xE3, + 0x07,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x29,0x82,0xE3, + 0x01,0x13,0xA0,0x21,0x3F,0x2C,0x82,0x23,0x00,0x30,0x71,0xE2,0x1D,0x00,0x00,0x2A, + 0x21,0x13,0xA0,0x21,0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0, + 0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xEB,0xFF,0xFF,0x2A, + 0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0, + 0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42, + 0x00,0x10,0x61,0x22,0x1E,0xFF,0x2F,0xE1,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42, + 0x01,0x40,0x2D,0xE9,0x00,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB,0x02,0x40,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0xA0,0xE1,0x07,0x40,0x2D,0xE9,0x02,0x00,0xB0,0xE3, + 0x01,0x00,0x00,0xEB,0x07,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x10,0xB5,0x02,0x20,0x06,0xF0,0x87,0xFC,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46,0x00,0x20,0xB0,0xE3,0x20,0x32,0x71,0xE0, + 0xA6,0xFF,0xFF,0x3A,0x20,0x34,0x71,0xE0,0x98,0xFF,0xFF,0x3A,0x00,0xC0,0xA0,0xE3, + 0xB7,0xFF,0xFF,0xEA,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1, + 0x41,0x00,0x00,0x20,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1, + 0xD1,0x00,0x00,0x20,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1, + 0x79,0x00,0x00,0x20,0x78,0x47,0xC0,0x46,0x1B,0xFE,0xFF,0xEA,0x02,0x48,0x01,0x68, + 0x02,0x4A,0x11,0x40,0x01,0x60,0x70,0x47,0x00,0xA0,0x00,0x40,0xFE,0xFF,0xEF,0xFF, + 0x07,0x49,0x10,0xB5,0x08,0x68,0x07,0x4A,0x10,0x43,0x08,0x60,0x0F,0x24,0x02,0xF0, + 0xF0,0xF8,0x64,0x1E,0x00,0x2C,0xFA,0xDC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0xA0,0x00,0x40,0x01,0x00,0x10,0x00,0xF0,0xB5,0x01,0x27,0x7F,0x07,0x3D,0x68, + 0x17,0x4E,0xB0,0x7E,0xC0,0x07,0x26,0xD0,0x70,0x7D,0x00,0x28,0x21,0xD0,0xBA,0x00, + 0x01,0x2D,0x02,0xD1,0x79,0x68,0x11,0x43,0xB9,0x60,0x00,0x04,0x02,0x43,0x90,0x0A, + 0x80,0x02,0xA9,0x05,0x89,0x0D,0x08,0x43,0x78,0x60,0x01,0x24,0x08,0xE0,0x0D,0x49, + 0xE0,0x00,0x40,0x18,0x0C,0x49,0x41,0x18,0x28,0x19,0x06,0xF0,0xFD,0xF8,0x64,0x1C, + 0x70,0x7D,0xA0,0x42,0xF3,0xDA,0x70,0x7D,0x01,0x28,0x02,0xD1,0x00,0x2D,0x00,0xD1, + 0x01,0x25,0x70,0x7D,0x45,0x19,0x3D,0x60,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x30,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x86,0x04,0x00,0x00,0x70,0xB4,0x1A,0x4B, + 0xDA,0x88,0xD2,0x07,0x2B,0xD1,0x19,0x4A,0x05,0x78,0x54,0x7D,0xE4,0x00,0xE6,0x18, + 0x09,0x24,0xE4,0x01,0x36,0x19,0xB5,0x73,0x56,0x7D,0x45,0x88,0xF6,0x00,0xF6,0x18, + 0x36,0x19,0x35,0x82,0x56,0x7D,0x85,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0x75,0x82, + 0x55,0x7D,0xED,0x00,0xED,0x18,0x2D,0x19,0x29,0x75,0x55,0x7D,0xC1,0x79,0xED,0x00, + 0xEB,0x18,0x1B,0x19,0x59,0x75,0x51,0x7D,0x49,0x1C,0x51,0x75,0xC0,0x79,0x06,0x28, + 0x07,0xD0,0x0A,0x28,0x01,0xD0,0x12,0x28,0x01,0xD1,0x00,0x20,0x90,0x75,0x70,0xBC, + 0x70,0x47,0x01,0x20,0xFA,0xE7,0x00,0x00,0xF0,0x05,0x00,0x20,0x30,0x0A,0x00,0x20, + 0xFF,0xB5,0x0A,0x20,0x48,0x43,0x15,0x4F,0x81,0xB0,0xC5,0x19,0x48,0x00,0xFF,0x35, + 0x61,0x35,0xC0,0x19,0xC0,0x30,0x2A,0x71,0x0C,0x00,0x00,0x90,0x80,0x89,0x16,0x00, + 0x0A,0x21,0xFF,0xF7,0x2F,0xFF,0xE8,0x80,0x00,0x98,0x0A,0x21,0xC0,0x8B,0xFF,0xF7, + 0x29,0xFF,0x28,0x81,0x38,0x19,0xFF,0x30,0x01,0x30,0x00,0x7C,0xB9,0x19,0x68,0x71, + 0x04,0x98,0xA8,0x72,0x01,0x98,0x06,0x55,0x13,0x20,0x40,0x01,0x08,0x18,0x00,0x21, + 0xC4,0x76,0x81,0x74,0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xF0,0x05,0x00,0x20, + 0x06,0x48,0x0F,0x23,0x42,0x79,0x01,0x68,0x9B,0x06,0x49,0x1C,0x12,0x07,0x12,0x0A, + 0xD2,0x18,0x09,0x03,0x09,0x0B,0x0A,0x43,0x02,0x60,0x70,0x47,0xF0,0x05,0x00,0x20, + 0xF1,0xB5,0xB2,0x48,0x90,0xB0,0x0F,0x90,0x40,0x7C,0xB2,0x49,0x02,0x90,0x0F,0x98, + 0xC0,0x7C,0x01,0x90,0x0F,0x98,0x00,0x7C,0x00,0x90,0xAD,0x48,0xC9,0x88,0x00,0x8A, + 0x49,0x06,0x02,0xD4,0xA9,0x48,0x40,0x30,0x80,0x89,0x00,0x05,0x7E,0xD5,0x10,0x98, + 0x01,0x28,0x00,0xD0,0x02,0x20,0x03,0x90,0x00,0x20,0x04,0x90,0x3E,0xE1,0x03,0x98, + 0x81,0x00,0x01,0x20,0x40,0x07,0x08,0x18,0x0E,0x90,0x00,0x68,0x81,0x00,0x0D,0x90, + 0x0C,0x0F,0x80,0x0F,0xC0,0x07,0x03,0xD1,0x20,0x00,0x01,0xF0,0x7F,0xFB,0x26,0xE1, + 0x9D,0x48,0xA5,0x00,0x40,0x5F,0x00,0x28,0x84,0x46,0x0F,0xDA,0x0D,0x98,0x9A,0x49, + 0x80,0x01,0x80,0x0D,0x48,0x53,0x0D,0x98,0x6A,0x18,0x80,0x05,0x80,0x0D,0x50,0x80, + 0x4A,0x5B,0x24,0x31,0x4A,0x53,0x69,0x18,0x48,0x80,0x10,0xE1,0x02,0x9F,0x92,0x49, + 0x00,0x20,0x7F,0x1E,0x48,0x31,0x69,0x18,0x06,0xE0,0x83,0x00,0xCA,0x18,0x96,0x88, + 0x40,0x1C,0xCE,0x52,0xD3,0x88,0x53,0x80,0xB8,0x42,0xF6,0xDB,0x0D,0x98,0x62,0x46, + 0x80,0x01,0x80,0x0D,0x0C,0x90,0x80,0x1A,0x02,0x9A,0x87,0x4E,0x92,0x00,0x8B,0x18, + 0x20,0x3B,0x98,0x83,0x0D,0x98,0xAA,0x19,0x80,0x05,0x80,0x0D,0x0A,0x92,0x0B,0x90, + 0x52,0x88,0x80,0x1A,0xD8,0x83,0x00,0x20,0x06,0x00,0x02,0x00,0x07,0xE0,0x93,0x00, + 0xCF,0x5E,0x38,0x18,0xCF,0x18,0x02,0x23,0xFB,0x5E,0x9E,0x19,0x52,0x1C,0x02,0x9B, + 0x9A,0x42,0xF4,0xDB,0x19,0x00,0xFF,0xF7,0xAB,0xFD,0x07,0x00,0x02,0x99,0x30,0x00, + 0xFF,0xF7,0xA6,0xFD,0x00,0x2F,0x00,0xDC,0x7F,0x42,0x0F,0x99,0x89,0x7C,0x8F,0x42, + 0x17,0xDA,0x00,0x28,0x00,0xDC,0x40,0x42,0x88,0x42,0x12,0xDA,0x01,0x98,0x0C,0x21, + 0x48,0x43,0x0A,0x21,0xFF,0xF7,0x6E,0xFE,0x61,0x00,0x00,0xE0,0xCA,0xE0,0x6A,0x4B, + 0x1C,0x3B,0x5A,0x5E,0x90,0x42,0x0C,0xDD,0x0F,0x98,0x00,0x7D,0x10,0x18,0x58,0x52, + 0x07,0xE0,0x65,0x49,0x0F,0x9A,0x60,0x00,0x1C,0x39,0x0B,0x5A,0x52,0x7D,0x9A,0x1A, + 0x0A,0x52,0x61,0x49,0x60,0x00,0x1C,0x39,0x0A,0x5E,0x00,0x2A,0x01,0xDC,0x00,0x22, + 0x0A,0x52,0x08,0x5E,0x01,0x99,0x88,0x42,0x09,0x90,0x01,0xDB,0x05,0x20,0x28,0xE0, + 0x88,0x00,0x05,0x21,0xFF,0xF7,0x46,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x04,0x20, + 0x1F,0xE0,0x01,0x98,0x41,0x00,0x40,0x18,0x05,0x21,0xFF,0xF7,0x3B,0xFE,0x09,0x99, + 0x88,0x42,0x01,0xDC,0x03,0x20,0x14,0xE0,0x01,0x98,0x05,0x21,0x40,0x00,0xFF,0xF7, + 0x31,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x01,0x98,0x05,0x21, + 0xFF,0xF7,0x28,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x01,0x20,0x01,0xE0,0x08,0x00, + 0x02,0xD1,0x45,0x49,0x0A,0x39,0x08,0x55,0x43,0x49,0x0C,0x9A,0x24,0x31,0x48,0x5F, + 0x16,0x1A,0x08,0x90,0x68,0x18,0x02,0x21,0x07,0x90,0x41,0x5E,0x0B,0x9A,0x3E,0x48, + 0x57,0x1A,0x06,0x91,0x0F,0x99,0x0A,0x38,0x00,0x5D,0x89,0x7D,0x88,0x42,0x27,0xD3, + 0x00,0x2E,0x01,0xD1,0x00,0x24,0x0D,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42,0x00,0x99, + 0x88,0x42,0x01,0xDA,0x01,0x24,0x05,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42,0xFF,0xF7, + 0x1F,0xFD,0x04,0x00,0x00,0x2F,0x01,0xD1,0x00,0x20,0x0C,0xE0,0x38,0x1E,0x00,0xDC, + 0x78,0x42,0x00,0x99,0x88,0x42,0x01,0xDA,0x01,0x20,0x04,0xE0,0x38,0x1E,0x00,0xDC, + 0x78,0x42,0xFF,0xF7,0x0D,0xFD,0x08,0x99,0x00,0x2E,0x19,0xDB,0x09,0x19,0x18,0xE0, + 0x09,0x98,0x64,0x21,0x48,0x43,0x01,0x99,0xFF,0xF7,0x02,0xFD,0x64,0x21,0x08,0x1A, + 0x31,0x1E,0x05,0x90,0x00,0xDC,0x71,0x42,0x48,0x43,0x64,0x21,0xFF,0xF7,0xF8,0xFC, + 0x05,0x9A,0x04,0x00,0x38,0x1E,0x00,0xDC,0x78,0x42,0x50,0x43,0x64,0x21,0xE0,0xE7, + 0x09,0x1B,0x06,0x9A,0x00,0x2F,0x01,0xDB,0x10,0x18,0x00,0xE0,0x10,0x1A,0x16,0x4A, + 0x0C,0x9B,0x53,0x53,0x0A,0x9B,0x0B,0x9A,0x5A,0x80,0x13,0x4A,0x13,0x4B,0x24,0x32, + 0x51,0x53,0x07,0x9A,0x89,0x05,0x50,0x80,0x0D,0x9A,0x89,0x09,0x1A,0x40,0x0A,0x43, + 0x91,0x0A,0x89,0x02,0x80,0x05,0x80,0x0D,0x01,0x43,0x0E,0x98,0x01,0x60,0x04,0x98, + 0x40,0x1C,0x04,0x90,0x03,0x98,0x40,0x1C,0x03,0x90,0x04,0x98,0x10,0x99,0x88,0x42, + 0x00,0xDA,0xBC,0xE6,0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x78,0x00,0x00, + 0xA0,0x79,0x00,0x00,0xF0,0x05,0x00,0x20,0xCA,0x0B,0x00,0x20,0xFF,0xFF,0x00,0xFC, + 0x10,0x4B,0x30,0xB4,0x27,0x21,0xDA,0x88,0x49,0x01,0x80,0x24,0x59,0x18,0x00,0x28, + 0x0E,0xD0,0x0D,0x48,0x45,0x7B,0x8D,0x82,0xC5,0x89,0xCD,0x82,0x05,0x8A,0x0D,0x83, + 0x40,0x8A,0x48,0x83,0x08,0x48,0x20,0x30,0x00,0x89,0x22,0x43,0x88,0x83,0x06,0xE0, + 0x00,0x20,0x88,0x82,0xC8,0x82,0x08,0x83,0x48,0x83,0xA2,0x43,0x88,0x83,0xDA,0x80, + 0x30,0xBC,0x70,0x47,0xF0,0x05,0x00,0x20,0x80,0x78,0x00,0x00,0x7F,0xB5,0x24,0x4D, + 0x04,0x00,0x1A,0x28,0x0B,0xD1,0x28,0x6A,0x00,0x28,0x08,0xD1,0x68,0x6A,0x00,0x28, + 0x05,0xD1,0x20,0x4C,0x01,0xF0,0x86,0xFE,0x64,0x1E,0xFB,0xD2,0x14,0xE0,0x05,0xF0, + 0x57,0xF8,0x00,0x20,0x01,0xF0,0xF4,0xFC,0x01,0xF0,0x72,0xFD,0x01,0xF0,0xBA,0xFD, + 0x03,0xAA,0x01,0xA9,0x02,0xA8,0x04,0xF0,0x4F,0xFA,0x03,0x00,0x01,0x9A,0x02,0x99, + 0x03,0x98,0x00,0x94,0x00,0xF0,0x30,0xF8,0x02,0x20,0x06,0xF0,0xC9,0xF8,0x02,0x20, + 0x06,0xF0,0xBA,0xF8,0x10,0x48,0xE9,0x68,0xC1,0x61,0x29,0x69,0xC1,0x61,0x0F,0x49, + 0xCA,0x68,0x52,0x08,0x52,0x00,0xCA,0x60,0x0D,0x4A,0x0E,0x49,0x02,0xE0,0xD3,0x68, + 0x8B,0x42,0x02,0xD8,0x43,0x69,0x9B,0x06,0xF9,0xD5,0x41,0x68,0x89,0x07,0xFC,0xD5, + 0x01,0xF0,0x66,0xFE,0x01,0x20,0x00,0xF0,0x6B,0xF8,0x7F,0xBC,0x08,0xBC,0x18,0x47, + 0xC0,0x75,0x00,0x00,0xE7,0x03,0x00,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40, + 0x00,0x40,0x00,0x40,0x50,0xC3,0x00,0x00,0xFF,0xB5,0x05,0x00,0x0E,0x00,0x91,0xB0, + 0xFF,0xF7,0xD0,0xF9,0x1C,0x48,0x01,0x27,0x04,0x04,0x24,0x0C,0x7F,0x02,0x00,0x22, + 0x39,0x00,0x20,0x00,0xFF,0xF7,0x1E,0xFD,0x18,0x49,0x3A,0x00,0x20,0x00,0x00,0x23, + 0xFF,0xF7,0x20,0xFD,0x16,0x49,0x40,0x22,0x01,0xA8,0x04,0xF0,0x92,0xF9,0x14,0x99, + 0x28,0x04,0x09,0x03,0x08,0x43,0x13,0x49,0x08,0x43,0x04,0x90,0x13,0x99,0x30,0x04, + 0x08,0x43,0x05,0x90,0x10,0x48,0x11,0x49,0xC0,0x6B,0x10,0x90,0x0C,0x48,0x80,0x69, + 0x40,0x1C,0x07,0x90,0x00,0x20,0x8D,0x42,0x09,0x90,0x02,0xD1,0x06,0x99,0x49,0x1C, + 0x06,0x91,0x1A,0x99,0x1A,0x29,0x00,0xD1,0x0A,0x90,0x01,0xA8,0x06,0xF0,0xDC,0xF8, + 0x15,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x7E,0x00,0x00,0x00,0x00,0x10,0x40, + 0xC0,0x75,0x00,0x00,0xAB,0x0C,0x00,0x80,0xC0,0x0F,0x00,0x20,0xEC,0x0D,0x00,0x00, + 0x02,0x4A,0x51,0x69,0x81,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x02,0x4A,0x51,0x69,0x01,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x78,0x47,0xC0,0x46,0x01,0x21,0xA0,0xE3,0x50,0x30,0x92,0xE5,0x0C,0x10,0xA0,0xE3, + 0x03,0x00,0x80,0xE1,0x50,0x00,0x82,0xE5,0x00,0x00,0x00,0xEA,0x00,0x00,0xA0,0xE1, + 0x01,0x10,0x51,0xE2,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x01,0x48,0x40,0x69, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x01,0x48,0x80,0x6A,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x02,0x49,0x08,0x62,0x00,0x20,0x08,0x62,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x01,0x49,0x48,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x07,0x49,0xFF,0x28,0x04,0xD1,0x01,0x20,0xC8,0x60,0x00,0x20,0x88,0x61,0x70,0x47, + 0x8A,0x69,0x12,0x07,0x12,0x0F,0x02,0x43,0x8A,0x61,0x02,0x20,0xC8,0x60,0x70,0x47, + 0x40,0x00,0x00,0x40,0xF0,0xB5,0x00,0x20,0xF3,0xB0,0x62,0x90,0xFF,0x49,0x40,0x1E, + 0x5E,0x90,0xCB,0x79,0xFE,0x4F,0xFF,0x48,0xFA,0x88,0x54,0x06,0x00,0xD4,0xC3,0x78, + 0x54,0x06,0x05,0x93,0x0B,0x7A,0x00,0xD4,0x03,0x79,0xFB,0x4C,0xA4,0x8A,0x1B,0x19, + 0x1B,0x06,0x1B,0x0E,0x04,0x93,0x4B,0x7A,0x54,0x06,0x00,0xD4,0x43,0x79,0x52,0x06, + 0x03,0x93,0x89,0x7A,0x00,0xD4,0x81,0x79,0x00,0x20,0xF4,0x4C,0x02,0x91,0x3D,0x79, + 0x01,0x26,0x01,0x90,0x13,0xE0,0x0A,0x20,0x70,0x43,0x43,0x21,0xC0,0x19,0xC9,0x00, + 0x09,0x5C,0x00,0x29,0x0A,0xD0,0xEE,0x49,0x40,0x18,0x02,0xF0,0x43,0xFE,0x00,0x28, + 0x04,0xD0,0x01,0x98,0x40,0x1C,0x00,0x06,0x00,0x0E,0x01,0x90,0x76,0x1C,0xA0,0x78, + 0xB0,0x42,0xE8,0xDA,0xE7,0x48,0x72,0x90,0xC2,0x8A,0x41,0x8B,0x50,0x1A,0x00,0x28, + 0x00,0xDC,0x88,0x1A,0x03,0x04,0x72,0x98,0x72,0x99,0x00,0x8B,0x89,0x8B,0x1B,0x0C, + 0x42,0x1A,0x00,0x2A,0x00,0xDC,0x0A,0x1A,0x10,0x04,0x72,0x9A,0x00,0x21,0x91,0x74, + 0x72,0x9A,0x00,0x0C,0xD1,0x74,0x72,0x9A,0x11,0x75,0x01,0x99,0x00,0x29,0x10,0xD0, + 0x1E,0x2B,0x0E,0xD2,0x32,0x28,0x03,0xD2,0x72,0x98,0x01,0x21,0x81,0x74,0x08,0xE0, + 0x64,0x28,0x03,0xD2,0x72,0x99,0x01,0x20,0xC8,0x74,0x02,0xE0,0x72,0x98,0x01,0x21, + 0x01,0x75,0x72,0x98,0x40,0x7C,0x00,0x28,0x16,0xD1,0x72,0x98,0x80,0x7C,0x00,0x28, + 0x02,0xD0,0x05,0x98,0x80,0x1C,0x0C,0xE0,0x72,0x98,0xC0,0x7C,0x00,0x28,0x02,0xD0, + 0x05,0x98,0x00,0x1D,0x05,0xE0,0x72,0x98,0x00,0x7D,0x00,0x28,0x04,0xD0,0x05,0x98, + 0x80,0x1D,0x00,0x06,0x00,0x0E,0x05,0x90,0x09,0x22,0x00,0x21,0x5B,0xA8,0x04,0xF0, + 0x8B,0xF8,0xF8,0x88,0xFF,0x21,0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06,0x05,0xD5, + 0x01,0xF0,0xAE,0xF8,0x73,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xE0,0x78,0x00,0x28, + 0x01,0xD0,0x40,0x1E,0xE0,0x70,0x60,0x78,0x00,0x2D,0x02,0xD1,0x00,0x28,0x18,0xD0, + 0x18,0xE0,0x00,0x28,0x16,0xD1,0xB1,0x48,0x5A,0x22,0x00,0x21,0x5E,0x30,0x04,0xF0, + 0x6B,0xF8,0xE0,0x78,0x00,0x28,0x0C,0xD1,0x01,0x26,0x07,0xE0,0x31,0x06,0x09,0x0E, + 0x0A,0x00,0x14,0x23,0x5B,0xA8,0xFF,0xF7,0x7B,0xFC,0x76,0x1C,0xAE,0x42,0xF5,0xDD, + 0x25,0x70,0xE6,0xE1,0x09,0x22,0x01,0x21,0x58,0xA8,0x04,0xF0,0x55,0xF8,0x02,0x20, + 0xA3,0x49,0x06,0x90,0x9E,0x48,0x5D,0x31,0x41,0x18,0x71,0x91,0xA0,0x49,0x54,0x31, + 0x40,0x18,0x70,0x90,0x13,0xE1,0x08,0x26,0x07,0xAF,0x24,0x20,0x70,0x43,0x07,0xA9, + 0x40,0x18,0x00,0x21,0x24,0x22,0xC9,0x43,0x04,0xF0,0x3E,0xF8,0x76,0x1E,0xF4,0xD5, + 0x06,0x98,0x01,0xF0,0x0B,0xFC,0x01,0x27,0x5F,0x90,0x53,0xE0,0x5F,0x98,0x01,0x26, + 0x60,0x90,0x4B,0xE0,0x0A,0x20,0x70,0x43,0x8D,0x49,0x40,0x18,0x01,0x00,0xFF,0x30, + 0xFF,0x30,0x02,0x30,0x6F,0x90,0x00,0x7E,0x00,0x28,0x3E,0xD0,0x8C,0x48,0x08,0x18, + 0x6E,0x90,0x02,0xF0,0x7F,0xFD,0x06,0x99,0x08,0x43,0x07,0xD0,0x6E,0x98,0x02,0xF0, + 0x79,0xFD,0x00,0x28,0x31,0xD0,0x06,0x98,0x00,0x28,0x2E,0xD0,0x80,0x49,0x78,0x00, + 0x40,0x18,0xC0,0x30,0x6D,0x90,0x80,0x89,0x0A,0x21,0xFF,0xF7,0x6B,0xFB,0x6F,0x99, + 0x49,0x8B,0x0A,0x1A,0x00,0x2A,0x00,0xDC,0x42,0x1A,0x6D,0x98,0x61,0x92,0xC0,0x8B, + 0x0A,0x21,0xFF,0xF7,0x5F,0xFB,0x6F,0x99,0x89,0x8B,0x0A,0x1A,0x00,0x2A,0x00,0xDC, + 0x42,0x1A,0x61,0x98,0x01,0x00,0x41,0x43,0x10,0x00,0x50,0x43,0x08,0x18,0x60,0x99, + 0x88,0x42,0x04,0xDA,0x24,0x21,0x79,0x43,0x07,0xAA,0x56,0x50,0x60,0x90,0x24,0x21, + 0x79,0x43,0x07,0xAA,0x89,0x18,0xB2,0x00,0x88,0x50,0x76,0x1C,0xA0,0x78,0xB0,0x42, + 0xB0,0xDA,0x7F,0x1C,0xAF,0x42,0xA9,0xDD,0x01,0x20,0xA4,0xE0,0x01,0x23,0x5F,0x9A, + 0x18,0x00,0x15,0xE0,0x5B,0xA9,0x09,0x5C,0x00,0x29,0x10,0xD1,0x24,0x21,0x41,0x43, + 0x0F,0x00,0x07,0xAE,0x89,0x19,0xF6,0x59,0xB7,0x00,0xC9,0x59,0x91,0x42,0x06,0xDA, + 0x00,0x29,0x04,0xDB,0x00,0x2E,0x02,0xDB,0x0A,0x00,0x00,0x23,0x5E,0x90,0x40,0x1C, + 0xA8,0x42,0xE7,0xDD,0x00,0x2B,0x7E,0xD1,0x62,0x98,0x5E,0x9E,0x40,0x1C,0x62,0x90, + 0x24,0x20,0x46,0x43,0x07,0xA8,0x80,0x59,0x0A,0x21,0x48,0x43,0x50,0x49,0x0A,0x22, + 0x41,0x18,0x5E,0x98,0xFF,0x31,0x50,0x43,0x4D,0x4A,0xBF,0x31,0x87,0x18,0x38,0x00, + 0xFF,0x30,0x65,0x30,0x0A,0x22,0x03,0xF0,0x8B,0xFF,0x5E,0x98,0x48,0x49,0x40,0x00, + 0x40,0x18,0xC0,0x30,0x6C,0x90,0x80,0x89,0x0A,0x21,0xFF,0xF7,0xFB,0xFA,0xFF,0x37, + 0x61,0x37,0xF8,0x80,0x6C,0x98,0x0A,0x21,0xC0,0x8B,0xFF,0xF7,0xF3,0xFA,0x38,0x81, + 0x3F,0x48,0x5E,0x99,0x40,0x18,0xFF,0x30,0x01,0x30,0x00,0x7C,0x78,0x71,0xB8,0x7A, + 0x05,0x99,0x49,0x1C,0x88,0x42,0x01,0xD2,0x40,0x1C,0xB8,0x72,0xB8,0x7A,0x13,0x28, + 0x6B,0x90,0x09,0xD9,0x14,0x21,0xFF,0xF7,0xDD,0xFA,0x04,0x99,0x89,0x1C,0x88,0x42, + 0x02,0xD2,0x6B,0x98,0x14,0x30,0xB8,0x72,0x38,0x79,0x5E,0x9A,0x5B,0xA9,0x88,0x54, + 0x71,0x9A,0x5E,0x99,0x81,0x54,0x39,0x79,0x70,0x9A,0x00,0x20,0x88,0x54,0x07,0xA9, + 0x89,0x59,0x58,0xAA,0x50,0x54,0x01,0x21,0x23,0xE0,0x08,0x00,0x24,0x23,0x58,0x43, + 0x07,0xAB,0x6A,0x90,0xC0,0x18,0x69,0x90,0x9B,0x59,0x00,0x22,0xD2,0x43,0x9B,0x00, + 0xC2,0x50,0x5B,0xA8,0x40,0x5C,0x5F,0x9B,0x00,0x28,0x11,0xD1,0xA2,0x78,0x01,0x20, + 0x94,0x46,0x0B,0xE0,0x69,0x9A,0x87,0x00,0xD2,0x59,0x00,0x2A,0x05,0xDB,0x9A,0x42, + 0x07,0xAF,0x02,0xDA,0x6A,0x9B,0xF8,0x50,0x13,0x00,0x40,0x1C,0x84,0x45,0xF1,0xDA, + 0x49,0x1C,0xA9,0x42,0x00,0xE0,0x04,0xE0,0xD7,0xDD,0xA0,0x78,0x62,0x99,0x88,0x42, + 0x05,0xDD,0x64,0x98,0x40,0x1C,0xA8,0x42,0x64,0x90,0x00,0xDC,0x56,0xE7,0x06,0x98, + 0x41,0x1E,0x09,0x06,0x09,0x0E,0x00,0x28,0x06,0x91,0x00,0xD0,0xE3,0xE6,0x01,0x26, + 0x65,0x96,0x63,0x90,0x6F,0xE0,0x58,0xA8,0x80,0x5D,0x00,0x28,0x6A,0xD0,0x65,0x98, + 0x07,0x49,0x2F,0x18,0x0A,0x20,0x70,0x43,0x40,0x18,0x68,0x90,0xFF,0x30,0xFF,0x30, + 0x02,0x30,0x67,0x90,0x00,0x7E,0x70,0x99,0x40,0x5C,0x0D,0xE0,0x20,0x7A,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00,0xD0,0x0A,0x00,0x20,0x50,0x07,0x00,0x20, + 0x1E,0x02,0x00,0x00,0x70,0x08,0x00,0x20,0x03,0x99,0x88,0x42,0x34,0xD2,0x08,0x2F, + 0x32,0xDC,0x4C,0x49,0x68,0x98,0x40,0x18,0x02,0xF0,0x5C,0xFC,0x00,0x28,0x2B,0xD0, + 0x67,0x98,0x70,0x99,0x00,0x7E,0x70,0x9A,0x47,0x4B,0x41,0x5C,0x49,0x1C,0x81,0x54, + 0x68,0x98,0x43,0x21,0xC9,0x00,0x41,0x18,0x0A,0x20,0x78,0x43,0xC0,0x18,0x66,0x90, + 0xFF,0x30,0x65,0x30,0x0A,0x22,0x03,0xF0,0xCB,0xFE,0x68,0x99,0x66,0x98,0xFF,0x31, + 0xC1,0x31,0x4A,0x79,0xFF,0x30,0x61,0x30,0xC2,0x72,0x89,0x79,0x01,0x73,0x67,0x98, + 0x5B,0xA9,0x00,0x7E,0xC8,0x55,0x71,0x99,0x47,0x54,0x65,0x98,0x40,0x1C,0x65,0x90, + 0x63,0x98,0x40,0x1C,0x63,0x90,0x15,0xE0,0x32,0x49,0x68,0x98,0x32,0x4F,0x40,0x18, + 0x02,0xF0,0x28,0xFC,0x00,0x28,0x0D,0xD0,0x72,0x99,0x01,0x20,0x08,0x74,0x67,0x98, + 0x80,0x7F,0x13,0x28,0x06,0xD9,0x60,0x78,0x01,0x28,0x03,0xD1,0xF8,0x88,0x04,0x21, + 0x08,0x43,0xF8,0x80,0x76,0x1C,0xA0,0x78,0xB0,0x42,0x8C,0xDA,0x26,0x48,0xC0,0x88, + 0x41,0x07,0x05,0xD5,0x02,0x99,0x04,0x22,0xE1,0x70,0x23,0x49,0x90,0x43,0xC8,0x80, + 0x01,0x26,0x31,0xE0,0x5B,0xA8,0x80,0x5D,0x00,0x28,0x1A,0xD1,0x13,0x22,0x01,0x20, + 0x52,0x01,0x05,0x23,0xDB,0x01,0x1C,0x49,0x09,0x18,0x8F,0x18,0xFF,0x7E,0x00,0x2F, + 0x0C,0xD1,0xC9,0x18,0x09,0x79,0x00,0x29,0x08,0xD1,0x02,0x06,0x31,0x06,0x12,0x0E, + 0x09,0x0E,0x01,0x23,0x5B,0xA8,0xFF,0xF7,0xAB,0xFA,0x02,0xE0,0x40,0x1C,0x09,0x28, + 0xE9,0xDB,0xE0,0x78,0x00,0x28,0x0E,0xD0,0x0A,0x20,0x70,0x43,0x0E,0x49,0x47,0x18, + 0x38,0x00,0xFF,0x30,0x6B,0x30,0x02,0xF0,0xDD,0xFB,0x00,0x28,0x03,0xD1,0x01,0x20, + 0xFF,0x37,0x61,0x37,0xB8,0x72,0x76,0x1C,0xAE,0x42,0xCB,0xDD,0x63,0x98,0x28,0x18, + 0x20,0x70,0x20,0x78,0x05,0x49,0x5A,0x22,0xA0,0x70,0x08,0x00,0xB4,0x30,0x03,0xF0, + 0x4F,0xFE,0xE7,0xE5,0x1E,0x02,0x00,0x00,0xF0,0x05,0x00,0x20,0x54,0x07,0x00,0x20, + 0xF1,0xB5,0x3C,0x48,0x86,0xB0,0x05,0x90,0x00,0x20,0x04,0x90,0x3A,0x48,0x41,0x7F, + 0x01,0x91,0x01,0x00,0x20,0x39,0x49,0x7F,0x00,0x91,0x00,0x21,0x02,0x91,0x01,0x7D, + 0x00,0x20,0xC0,0x43,0x00,0x29,0x06,0x99,0x03,0xD1,0x00,0x29,0x03,0xD1,0x01,0x20, + 0x01,0xE0,0x00,0x29,0xFB,0xD1,0x03,0x90,0x01,0xF0,0x5C,0xF9,0x01,0xF0,0x0A,0xFA, + 0x00,0x24,0x27,0x00,0x37,0xE0,0x00,0x26,0x30,0xE0,0x31,0x00,0x38,0x00,0x02,0xF0, + 0xB1,0xF8,0x00,0x28,0x28,0xD0,0x29,0x78,0x05,0x9A,0x79,0x43,0x89,0x19,0x89,0x00, + 0x51,0x58,0x09,0x05,0x09,0x0D,0x0D,0x1A,0x06,0x98,0x00,0x28,0x0D,0xD0,0x00,0x2D, + 0x1A,0xDA,0x03,0x9A,0x31,0x00,0x38,0x00,0x05,0xF0,0x4E,0xFB,0x40,0x1C,0x14,0xD1, + 0x00,0x98,0x28,0x18,0x10,0xD5,0x02,0x20,0x0D,0xE0,0x00,0x2D,0x0C,0xDD,0x03,0x9A, + 0x31,0x00,0x38,0x00,0x05,0xF0,0x40,0xFB,0x40,0x1C,0x06,0xD1,0x01,0x98,0x28,0x1A, + 0x00,0x28,0x01,0xDD,0x03,0x20,0x04,0x90,0x64,0x1C,0x76,0x1C,0x13,0x4D,0x28,0x78, + 0x86,0x42,0xCA,0xD3,0x7F,0x1C,0x12,0x48,0x00,0x78,0x87,0x42,0xC3,0xD3,0x10,0x48, + 0x0E,0x49,0x00,0x78,0x09,0x78,0x48,0x43,0xA0,0x42,0x04,0xD1,0x04,0x98,0x07,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x02,0x98,0x41,0x1C,0x02,0x91,0x01,0x21,0x49,0x02, + 0x88,0x42,0xA9,0xD9,0x06,0x98,0x00,0x28,0x01,0xD0,0x02,0x20,0x00,0xE0,0x03,0x20, + 0x04,0x90,0xEC,0xE7,0x00,0x02,0x10,0x40,0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0xF0,0xB5,0x8A,0x4A,0xFF,0xB0,0x88,0xB0,0x40,0x18,0x85,0x92, + 0x42,0x00,0x80,0x18,0x84,0x90,0x48,0x42,0x83,0x90,0x86,0x48,0x86,0x4E,0x00,0x7A, + 0x02,0xAF,0x82,0x90,0x85,0x48,0x86,0x90,0x00,0x7D,0x00,0x28,0x02,0xD1,0x83,0x98, + 0x40,0x42,0x83,0x90,0x01,0x22,0x52,0x02,0x00,0x21,0x30,0x00,0x03,0xF0,0xCC,0xFD, + 0x00,0x25,0x39,0xE0,0x00,0x24,0x32,0xE0,0x7C,0x48,0x20,0x38,0x01,0x7D,0xC9,0x07, + 0x15,0xD0,0x7B,0x49,0x09,0x78,0x00,0x29,0x82,0x99,0x16,0xD0,0x8D,0x42,0x0E,0xD1, + 0x81,0x7D,0xA1,0x42,0x0B,0xD0,0xC1,0x7D,0xA1,0x42,0x08,0xD0,0x01,0x7E,0xA1,0x42, + 0x05,0xD0,0x41,0x7E,0xA1,0x42,0x02,0xD0,0x80,0x7E,0xA0,0x42,0x16,0xD1,0x83,0x9A, + 0x21,0x00,0x28,0x00,0x05,0xF0,0xC8,0xFA,0x10,0xE0,0x8C,0x42,0xF7,0xD1,0x81,0x7D, + 0xA9,0x42,0xF4,0xD0,0xC1,0x7D,0xA9,0x42,0xF1,0xD0,0x01,0x7E,0xA9,0x42,0xEE,0xD0, + 0x41,0x7E,0xA9,0x42,0xEB,0xD0,0x80,0x7E,0xA8,0x42,0xE8,0xD0,0x64,0x1C,0x65,0x48, + 0x00,0x78,0x84,0x42,0xC8,0xD3,0x6D,0x1C,0x63,0x4C,0x20,0x78,0x85,0x42,0xC1,0xD3, + 0x01,0xF0,0x98,0xF8,0x01,0xF0,0x46,0xF9,0x00,0x25,0x2A,0xE0,0x00,0x24,0x23,0xE0, + 0x21,0x00,0x28,0x00,0x01,0xF0,0xEE,0xFF,0x00,0x28,0x12,0xD0,0x59,0x49,0x85,0x9B, + 0x09,0x78,0x69,0x43,0x0A,0x19,0x91,0x00,0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D, + 0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0,0x40,0x1A,0x51,0x00, + 0x70,0x52,0x21,0x00,0x28,0x00,0x02,0xF0,0x5B,0xF8,0x4E,0x49,0x09,0x78,0x69,0x43, + 0x09,0x19,0x49,0x00,0x64,0x1C,0x78,0x52,0x4A,0x48,0x00,0x78,0x84,0x42,0xD7,0xD3, + 0x6D,0x1C,0x49,0x48,0x01,0x78,0x8D,0x42,0xD0,0xD3,0x00,0x21,0x01,0x91,0x01,0xF0, + 0x11,0xF9,0x00,0x25,0x51,0xE0,0x00,0x24,0x4A,0xE0,0x21,0x00,0x28,0x00,0x01,0xF0, + 0xB9,0xFF,0x00,0x28,0x43,0xD0,0x3F,0x49,0x85,0x9B,0x09,0x78,0x69,0x43,0x09,0x19, + 0x8A,0x00,0x9A,0x58,0x03,0x04,0x12,0x05,0x12,0x0D,0x1B,0x0C,0xD3,0x1A,0x00,0x2B, + 0x01,0xDD,0x10,0x1A,0x00,0xE0,0x80,0x1A,0x49,0x00,0x73,0x5A,0x00,0x04,0x00,0x0C, + 0x83,0x42,0x0A,0xD9,0x70,0x52,0x21,0x00,0x28,0x00,0x02,0xF0,0x21,0xF8,0x31,0x49, + 0x09,0x78,0x69,0x43,0x09,0x19,0x49,0x00,0x78,0x52,0x01,0x98,0x03,0x21,0xFF,0xF7, + 0x79,0xF8,0x00,0x29,0x01,0xD0,0x02,0x29,0x0D,0xD1,0x86,0x98,0x00,0x7D,0x00,0x28, + 0x02,0xD1,0x00,0x22,0x43,0x1E,0x01,0xE0,0x01,0x22,0x00,0x23,0x21,0x00,0x28,0x00, + 0x05,0xF0,0x04,0xFA,0x0B,0xE0,0x00,0x22,0xD2,0x43,0x00,0x23,0x21,0x00,0x28,0x00, + 0x05,0xF0,0xFC,0xF9,0x00,0x28,0x02,0xD1,0x00,0x22,0x01,0x23,0xEE,0xE7,0x64,0x1C, + 0x1C,0x48,0x00,0x78,0x84,0x42,0xB0,0xD3,0x6D,0x1C,0x1B,0x48,0x00,0x78,0x85,0x42, + 0xA9,0xD3,0x01,0x98,0x40,0x1C,0x01,0x90,0x84,0x98,0x40,0x1E,0x84,0x90,0x1B,0xD2, + 0x14,0x4E,0x00,0x25,0x0E,0xE0,0x00,0x24,0x08,0xE0,0x68,0x43,0x00,0x19,0x40,0x00, + 0x3A,0x5A,0x21,0x00,0x28,0x00,0x05,0xF0,0xF9,0xF9,0x64,0x1C,0x30,0x78,0x84,0x42, + 0xF3,0xD3,0x6D,0x1C,0x0C,0x48,0x00,0x78,0x85,0x42,0xEC,0xD3,0x7F,0xB0,0x08,0xB0, + 0xF0,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x00,0xF0,0xE4,0xFF,0x7F,0xE7,0x00,0x00, + 0x00,0x02,0x10,0x40,0x70,0x0A,0x00,0x20,0x40,0x00,0x00,0x20,0x20,0x78,0x00,0x00, + 0xFD,0x0A,0x00,0x20,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xF8,0xB5,0x01,0x22, + 0x52,0x07,0x10,0x68,0x01,0x28,0x03,0xD0,0x10,0x68,0x01,0x28,0x43,0xD9,0x02,0x20, + 0x86,0x46,0x22,0x48,0x00,0x90,0x80,0x7A,0x00,0x28,0x3C,0xD0,0x00,0x21,0x13,0x25, + 0x1F,0x4F,0xAD,0x01,0x32,0xE0,0x72,0x46,0x8A,0x18,0x92,0x00,0x10,0x18,0x02,0x68, + 0x84,0x46,0x90,0x0F,0xC0,0x07,0x28,0xD1,0x00,0x9C,0x93,0x00,0xA6,0x7A,0x1B,0x0F, + 0x21,0xE0,0x84,0x00,0xE4,0x19,0x64,0x19,0xE4,0x68,0xA4,0x00,0x24,0x0F,0xA3,0x42, + 0x18,0xD1,0x80,0x00,0xC0,0x19,0x40,0x19,0xC0,0x68,0x92,0x0A,0x83,0x05,0x92,0x02, + 0x9B,0x0D,0x1A,0x43,0x0F,0x4B,0x1A,0x40,0x83,0x01,0x9B,0x0D,0x1B,0x04,0x1A,0x43, + 0x3F,0x23,0x9B,0x02,0x00,0x04,0x80,0x0E,0x9A,0x43,0x80,0x02,0x02,0x43,0x60,0x46, + 0x02,0x60,0x02,0xE0,0x40,0x1C,0x86,0x42,0xDB,0xD8,0x49,0x1C,0x01,0x20,0x40,0x07, + 0x02,0x68,0x8A,0x42,0xC7,0xD8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xB0,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xFF,0xFF,0x00,0xFC,0xFC,0xB5,0x04,0x00,0x5E,0x48,0x8E,0x46, + 0x02,0x8C,0x5E,0x49,0x40,0x8C,0x01,0x91,0xCB,0x88,0x40,0x39,0x00,0x91,0x89,0x7E, + 0x00,0x25,0x2F,0x00,0xC9,0x07,0x01,0x26,0x00,0x29,0xAC,0x46,0x01,0xD1,0xE6,0x71, + 0xA6,0xE0,0x01,0x99,0x09,0x79,0x00,0x29,0x0D,0xD0,0x01,0x29,0x0F,0xD0,0x02,0x29, + 0x07,0xD0,0x03,0x29,0xF4,0xD1,0x17,0x00,0xD1,0x18,0x0A,0x04,0x12,0x0C,0x03,0x00, + 0x05,0xE0,0x1A,0x00,0xFB,0xE7,0x84,0x46,0xC0,0x18,0x03,0x04,0x1B,0x0C,0x60,0x88, + 0xA1,0x88,0x87,0x42,0x58,0xDC,0x82,0x42,0x56,0xDB,0x8C,0x45,0x54,0xDC,0x8B,0x42, + 0x52,0xDB,0x01,0x25,0x72,0x46,0x00,0x2A,0x77,0xD0,0x06,0x27,0x01,0x2A,0x0E,0xD0, + 0x09,0x23,0x02,0x2A,0x17,0xD0,0x03,0x2A,0x71,0xD1,0xE2,0x79,0xD7,0x07,0x28,0xD0, + 0x01,0x2A,0x01,0xD0,0x05,0x2A,0x22,0xD1,0x00,0x25,0xE3,0x71,0x67,0xE0,0x00,0x9A, + 0x92,0x7D,0x00,0x2A,0x63,0xD1,0x00,0xF0,0x87,0xF8,0x06,0x00,0x0F,0xD1,0x02,0x20, + 0xE0,0x71,0x26,0x72,0x5B,0xE0,0xE2,0x79,0xD6,0x07,0xE9,0xD1,0x92,0x07,0x56,0xD5, + 0x00,0xF0,0x7A,0xF8,0x06,0x00,0x08,0xD0,0x20,0x7A,0x00,0x28,0x05,0xD1,0x31,0x00, + 0x20,0x00,0xE7,0x71,0xFE,0xF7,0xE2,0xFF,0xEB,0xE7,0x02,0x20,0x46,0xE0,0x11,0x20, + 0x44,0xE0,0x92,0x07,0x43,0xD5,0x00,0xF0,0x67,0xF8,0x21,0x7A,0x00,0x28,0x0A,0xD0, + 0x00,0x29,0x0C,0xD0,0x81,0x42,0x08,0xD1,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7, + 0xCD,0xFF,0xA6,0x71,0x05,0xE0,0x00,0x29,0x01,0xD0,0x12,0x20,0xF5,0xE7,0x02,0x20, + 0xE0,0x71,0x00,0x20,0x20,0x72,0x2A,0xE0,0x70,0x46,0x00,0x28,0x25,0xD0,0x01,0x28, + 0x06,0xD0,0x02,0x28,0x06,0xD0,0x03,0x28,0x21,0xD1,0xE0,0x79,0x80,0x07,0x0E,0xD4, + 0xE6,0x71,0x1C,0xE0,0xE0,0x79,0x80,0x07,0xFA,0xD5,0x21,0x7A,0x00,0x29,0x04,0xD0, + 0x12,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0xA9,0xFF,0xE6,0x71,0x09,0xE0,0x02,0x20, + 0xE0,0x71,0x21,0x7A,0x00,0x29,0x04,0xD0,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7, + 0x9D,0xFF,0x01,0x25,0xA6,0x71,0x02,0xE0,0xFF,0xE7,0x00,0x20,0xE0,0x71,0x08,0x49, + 0xC8,0x88,0x82,0x07,0x04,0xD1,0xE2,0x79,0x92,0x07,0x92,0x0F,0x10,0x43,0xC8,0x80, + 0x28,0x00,0xFC,0xBC,0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0x70,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0x06,0x48,0x40,0x8B,0x00,0x28,0x06,0xD0,0x05,0x48,0xC0,0x88, + 0x00,0x06,0x80,0x0F,0x01,0xD0,0x00,0x20,0x70,0x47,0x01,0x20,0x70,0x47,0x00,0x00, + 0xA0,0x78,0x00,0x00,0xF0,0x05,0x00,0x20,0xF0,0xB4,0x18,0x4B,0x05,0x00,0xDE,0x7E, + 0x00,0x22,0x10,0x00,0x00,0x2E,0x26,0xD0,0x1B,0x7D,0x00,0x2B,0x23,0xD1,0x20,0xE0, + 0x13,0x4B,0xD4,0x00,0xE3,0x18,0x11,0x24,0xA4,0x01,0x1C,0x19,0x1C,0x27,0xE7,0x5F, + 0xAF,0x42,0x11,0xDC,0x23,0x27,0x7F,0x01,0xDB,0x19,0x00,0x27,0xDF,0x5F,0xAF,0x42, + 0x0A,0xDB,0x1E,0x27,0xE7,0x5F,0x8F,0x42,0x06,0xDC,0x02,0x24,0x1C,0x5F,0x8C,0x42, + 0x02,0xDB,0x50,0x1C,0x00,0x06,0x00,0x0E,0x00,0x28,0x04,0xD1,0x52,0x1C,0x12,0x06, + 0x12,0x0E,0x96,0x42,0xDC,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00,0x30,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xF0,0xB5,0x00,0x20,0x8F,0xB0,0x0A,0x90,0x09,0x90,0xC7,0x48, + 0xC7,0x4A,0x01,0x8A,0xD0,0x88,0x43,0x06,0x02,0xD4,0xC4,0x49,0xC0,0x39,0x89,0x89, + 0xC2,0x4C,0xC4,0x4E,0x60,0x34,0x08,0x91,0xE1,0x7B,0x43,0x06,0x00,0xD4,0xF1,0x7A, + 0x43,0x06,0x07,0x91,0xA1,0x7B,0x00,0xD4,0xB1,0x7A,0x43,0x06,0x06,0x91,0x61,0x7C, + 0x00,0xD4,0x71,0x7B,0x43,0x06,0x05,0x91,0xA1,0x79,0x00,0xD4,0xB1,0x78,0x02,0x07, + 0x04,0x91,0xB7,0x49,0x09,0x79,0x05,0xD5,0xB5,0x4A,0x00,0x29,0x02,0xD1,0x08,0x23, + 0x98,0x43,0xD0,0x80,0xB4,0x48,0x18,0x22,0x82,0x5E,0xFF,0x23,0x01,0x33,0x28,0x2A, + 0x03,0xDD,0x1A,0x22,0x82,0x5E,0x1E,0x2A,0x03,0xDC,0x1C,0x22,0x82,0x5E,0x28,0x2A, + 0x05,0xDD,0xAB,0x4D,0xEA,0x88,0x1A,0x43,0xEA,0x80,0x00,0x22,0x04,0xE0,0x1E,0x22, + 0x82,0x5E,0x00,0x2A,0x02,0xD0,0x52,0x1E,0xC2,0x83,0x03,0xE0,0xA4,0x4A,0xD0,0x88, + 0x98,0x43,0xD0,0x80,0x08,0x98,0x80,0x04,0x78,0xD5,0xA3,0x4A,0x00,0x20,0x20,0x32, + 0x52,0x78,0x00,0x2A,0x02,0xD1,0x00,0x29,0x00,0xD1,0x01,0x20,0x00,0x90,0x00,0xF0, + 0x41,0xF9,0x9B,0x48,0x9D,0x4D,0x00,0x79,0x01,0x28,0x0E,0x90,0x68,0xD1,0x98,0x4B, + 0x19,0x89,0x0D,0x91,0xDF,0x88,0x62,0x89,0x7B,0x06,0x00,0xD4,0xF2,0x88,0x91,0x42, + 0x00,0xD3,0x00,0x20,0x03,0x90,0x0D,0x98,0x0A,0x22,0x0E,0x21,0x50,0x43,0x69,0x5E, + 0x0C,0x91,0xFE,0xF7,0x65,0xFD,0x21,0x78,0x91,0x4B,0x7A,0x06,0x0B,0x93,0x00,0xD4, + 0x19,0x7F,0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x02,0x90,0x0C,0x99, + 0x0D,0x98,0x40,0x1A,0x0A,0x21,0xFE,0xF7,0x53,0xFD,0x61,0x78,0x7A,0x06,0x01,0xD4, + 0x0B,0x99,0x49,0x7F,0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x01,0x90, + 0x2A,0x89,0xA1,0x78,0x01,0x20,0x7B,0x06,0x01,0xD4,0x0B,0x99,0x89,0x7F,0x8A,0x42, + 0x00,0xD8,0x00,0x20,0xE1,0x78,0x84,0x46,0x2A,0x69,0x01,0x20,0x7B,0x06,0x01,0xD4, + 0x0B,0x99,0xC9,0x7F,0x8A,0x42,0x00,0xDB,0x00,0x20,0x03,0x99,0x00,0x29,0x1F,0xD0, + 0x02,0x99,0x00,0x29,0x1C,0xD0,0x01,0x99,0x00,0x29,0x19,0xD0,0x61,0x46,0x00,0x29, + 0x16,0xD0,0x71,0x4A,0x01,0x21,0x80,0x3A,0x52,0x68,0x00,0x2A,0x00,0xD0,0x00,0x21, + 0x01,0x42,0x0D,0xD0,0x68,0x7B,0x00,0x28,0x24,0xD0,0x61,0x7A,0x7A,0x06,0x00,0xD4, + 0x71,0x79,0x88,0x42,0x1E,0xD8,0x40,0x1E,0x68,0x73,0x1B,0xE0,0x36,0xE0,0xFF,0xE7, + 0x63,0x48,0x21,0x79,0xC0,0x88,0x2A,0x69,0x43,0x06,0x00,0xD4,0x31,0x78,0x8A,0x42, + 0x10,0xDB,0x0E,0x99,0x00,0x29,0x0D,0xD0,0xC1,0x06,0x0B,0xD4,0x69,0x7B,0xE2,0x79, + 0x40,0x06,0x00,0xD4,0xF2,0x78,0x91,0x42,0x04,0xD2,0x04,0x98,0x81,0x42,0x01,0xD9, + 0x49,0x1C,0x69,0x73,0x68,0x7B,0x04,0x99,0x10,0x22,0x88,0x42,0x0D,0xD8,0x00,0x98, + 0x00,0x28,0x0A,0xD1,0x52,0x49,0xC8,0x88,0x10,0x43,0xC8,0x80,0xC9,0x88,0x20,0x7A, + 0x49,0x06,0x00,0xD4,0x30,0x79,0x28,0x73,0x08,0xE0,0x4D,0x4B,0xD9,0x88,0xC8,0x06, + 0x04,0xD5,0x28,0x7B,0x00,0x28,0x10,0xD1,0x91,0x43,0xD9,0x80,0x48,0x4F,0x38,0x79, + 0x00,0x28,0x7E,0xD0,0xF8,0x88,0x80,0x06,0x05,0xD5,0x05,0x99,0x06,0x98,0x40,0x1A, + 0x00,0x06,0x00,0x0E,0x06,0x90,0x01,0x22,0x01,0xE0,0x40,0x1E,0xE3,0xE7,0x50,0x00, + 0xC0,0x19,0x84,0x46,0xFF,0x30,0x41,0x30,0xC0,0x88,0x00,0x28,0x65,0xD0,0x07,0x99, + 0x88,0x42,0x09,0xD9,0x08,0x98,0x80,0x07,0x5F,0xD5,0x00,0x20,0x38,0x71,0xF8,0x88, + 0x08,0x21,0x08,0x43,0xF8,0x80,0x58,0xE0,0x06,0x99,0x88,0x42,0x55,0xD3,0x08,0x98, + 0x40,0x07,0x52,0xD5,0x00,0x24,0x01,0x20,0x27,0xE0,0xFF,0x23,0x39,0x18,0x3E,0x33, + 0x5B,0x5C,0x93,0x42,0x20,0xD1,0x64,0x1C,0xFF,0x31,0x01,0x31,0x09,0x7C,0x0A,0x91, + 0x01,0x00,0x12,0xE0,0x4B,0x00,0xDD,0x19,0x2B,0x00,0xC0,0x33,0xDE,0x89,0xE0,0x35, + 0x9E,0x81,0x2D,0x88,0xDD,0x83,0x7B,0x18,0xDD,0x1D,0xF9,0x35,0x6E,0x7C,0xFF,0x33, + 0x21,0x33,0x2E,0x74,0x9E,0x7F,0x49,0x1C,0x5E,0x77,0x3B,0x79,0x8B,0x42,0xE9,0xDA, + 0x39,0x79,0x49,0x1E,0x40,0x1E,0x39,0x71,0x40,0x1C,0x39,0x79,0x81,0x42,0xD4,0xDA, + 0x00,0x2C,0x22,0xDD,0x01,0x2C,0x05,0xDD,0x01,0x20,0x09,0x90,0xF8,0x88,0x20,0x21, + 0x08,0x43,0xF8,0x80,0x60,0x46,0xFF,0x30,0x01,0x30,0xC1,0x8B,0x38,0x79,0x40,0x1C, + 0x00,0x06,0x00,0x0E,0x38,0x71,0x40,0x00,0xC0,0x19,0xC0,0x30,0x81,0x81,0x60,0x46, + 0xFF,0x30,0x21,0x30,0xC1,0x89,0x38,0x79,0x40,0x00,0xC0,0x19,0xC0,0x30,0xC1,0x83, + 0x3B,0x79,0x0D,0x48,0x0A,0x99,0x30,0x38,0x19,0x54,0x52,0x1C,0x08,0x2A,0x8E,0xDB, + 0x00,0xE0,0x06,0xE0,0x09,0x98,0x00,0x28,0x03,0xD1,0xF8,0x88,0x20,0x21,0x88,0x43, + 0xF8,0x80,0x0F,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x40,0x79,0x00,0x00,0x30,0x07,0x00,0x20,0x30,0x0A,0x00,0x20, + 0x20,0x79,0x00,0x00,0xF0,0xB5,0x70,0x48,0xB1,0xB0,0x00,0x78,0x71,0x4B,0x70,0x4A, + 0x01,0x90,0x6E,0x48,0x00,0x78,0x00,0x90,0xD9,0x88,0x16,0x7D,0x6E,0x48,0x4C,0x06, + 0x00,0xD4,0x06,0x7C,0x55,0x7D,0x49,0x06,0x00,0xD4,0x45,0x7C,0x6B,0x48,0x00,0x21, + 0x2B,0x95,0x30,0x90,0xC1,0x81,0x50,0x22,0x16,0xA8,0x2A,0x91,0x03,0xF0,0x9C,0xF9, + 0x01,0x99,0x2B,0x98,0x2B,0x9D,0x08,0x1A,0xAD,0x1C,0x2F,0x90,0x80,0x1C,0x2E,0x90, + 0x35,0xE0,0x00,0x98,0x16,0xA9,0x80,0x1B,0x80,0x1C,0x86,0x46,0x2B,0x98,0xB4,0x1C, + 0x28,0x1A,0x80,0x00,0x47,0x18,0x40,0x3F,0x1E,0xE0,0x01,0x98,0x5C,0x49,0x00,0x1D, + 0x60,0x43,0x40,0x19,0x00,0x04,0x00,0x14,0x40,0x00,0x0A,0x5E,0x55,0x4B,0x68,0x00, + 0xC0,0x18,0x94,0x21,0x41,0x5E,0x60,0x00,0xC3,0x18,0x6C,0x20,0x18,0x5E,0x2A,0x9B, + 0x94,0x46,0xC3,0x18,0x52,0x18,0xD2,0x18,0x2A,0x92,0xBB,0x6B,0x62,0x46,0x9A,0x18, + 0x08,0x18,0x10,0x18,0x64,0x1C,0xB8,0x63,0xA6,0x45,0xDE,0xDC,0x00,0x98,0x71,0x00, + 0x41,0x1A,0xB8,0x6B,0xFE,0xF7,0xE4,0xFB,0xB8,0x63,0x2E,0x98,0x6D,0x1C,0xA8,0x42, + 0xC7,0xDC,0x00,0x99,0x70,0x00,0x09,0x1A,0x2B,0x98,0x2D,0x91,0x42,0x00,0x01,0x98, + 0x80,0x1A,0x41,0x43,0x2C,0x90,0x2A,0x98,0xFE,0xF7,0xD2,0xFB,0x30,0x99,0x50,0x22, + 0xC8,0x81,0x00,0x20,0x01,0x00,0x2A,0x90,0x02,0xA8,0x03,0xF0,0x45,0xF9,0x2B,0x9C, + 0xA4,0x1C,0x35,0xE0,0x00,0x99,0x02,0xAA,0x89,0x1B,0x89,0x1C,0x8E,0x46,0x2B,0x99, + 0xB0,0x1C,0x61,0x1A,0x89,0x00,0x8D,0x18,0x40,0x3D,0x8C,0x46,0x1C,0xE0,0x01,0x99, + 0x33,0x4A,0x09,0x1D,0x41,0x43,0x09,0x19,0x49,0x00,0x51,0x5E,0x16,0xAA,0x62,0x44, + 0x40,0x3A,0x92,0x6B,0x2B,0x4F,0x89,0x1A,0x62,0x00,0xD3,0x19,0x94,0x22,0x9A,0x5E, + 0x43,0x00,0xDB,0x19,0x6C,0x27,0xDF,0x5F,0xD2,0x19,0x89,0x18,0x0B,0x00,0x4B,0x43, + 0xAA,0x6B,0xD1,0x18,0x40,0x1C,0xA9,0x63,0x86,0x45,0xE0,0xDC,0x2D,0x99,0xA8,0x6B, + 0x49,0x1E,0xFE,0xF7,0x95,0xFB,0xA8,0x63,0x2A,0x99,0x40,0x18,0x64,0x1C,0x2A,0x90, + 0x2E,0x98,0xA0,0x42,0xC6,0xDC,0x2C,0x99,0x2A,0x98,0xFE,0xF7,0x89,0xFB,0x30,0x99, + 0x00,0x22,0x0A,0x61,0x11,0x00,0x02,0xAB,0x0A,0xE0,0x8A,0x00,0x9A,0x58,0x82,0x1A, + 0x14,0x00,0x54,0x43,0x30,0x9A,0x12,0x69,0xA2,0x18,0x30,0x9C,0x49,0x1C,0x22,0x61, + 0x2C,0x9A,0x8A,0x42,0xF1,0xDC,0x30,0x98,0x51,0x1E,0x00,0x69,0xFE,0xF7,0x70,0xFB, + 0x00,0x9A,0x2F,0x99,0x92,0x1B,0x92,0x02,0x51,0x43,0xFE,0xF7,0x69,0xFB,0x30,0x99, + 0x08,0x61,0x30,0x99,0x0E,0x20,0x08,0x5E,0x00,0x28,0x01,0xD1,0x40,0x1C,0xC8,0x81, + 0x31,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x00,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x40,0x79,0x00,0x00,0x30,0x0A,0x00,0x20, + 0xC8,0x02,0x00,0x20,0xF8,0xB5,0x61,0x4D,0x28,0x7A,0x00,0x28,0x06,0xD0,0x28,0x6B, + 0x00,0x04,0x00,0x0C,0x05,0xF0,0x5A,0xF8,0x05,0xF0,0x48,0xF8,0x01,0x24,0x64,0x03, + 0x20,0x00,0xFE,0xF7,0x55,0xFF,0x04,0xF0,0x23,0xFC,0x20,0x00,0xFE,0xF7,0x48,0xFF, + 0x57,0x4C,0x00,0x26,0x9C,0xE0,0x57,0x48,0x41,0x68,0x09,0x07,0x07,0xD5,0xC0,0x68, + 0x00,0x28,0x04,0xD0,0x53,0x48,0xC1,0x68,0xC0,0x03,0xC1,0x63,0x95,0xE0,0x28,0x7A, + 0x00,0x28,0x04,0xD0,0x28,0x6B,0x00,0x04,0x00,0x0C,0x05,0xF0,0x37,0xF8,0xFF,0x20, + 0x81,0x30,0xFE,0xF7,0x35,0xFF,0x03,0x20,0x04,0xF0,0x6E,0xFF,0x03,0xF0,0xF0,0xFE, + 0x49,0x4F,0xF8,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5, + 0x04,0x20,0x00,0xE0,0x02,0x20,0x04,0xF0,0x3B,0xFE,0x00,0xF0,0xCD,0xFB,0x04,0xF0, + 0x15,0xFC,0x00,0xF0,0x97,0xFB,0x00,0xF0,0x45,0xFC,0x68,0x7B,0x00,0x28,0x04,0xD1, + 0x20,0x7B,0x00,0x28,0x01,0xD0,0x03,0xF0,0xDF,0xFE,0x20,0x7A,0x00,0x28,0x01,0xD0, + 0x03,0xF0,0x80,0xF8,0x01,0x20,0x40,0x05,0x00,0xF0,0x6A,0xFB,0x03,0xF0,0x96,0xF8, + 0x00,0x28,0x01,0xD0,0x01,0x20,0x28,0x70,0x00,0x20,0x00,0xF0,0x61,0xFB,0x28,0x78, + 0x00,0x28,0x04,0xD1,0x00,0x22,0x11,0x00,0x10,0x00,0x00,0xF0,0x57,0xF9,0x03,0xF0, + 0xAB,0xFE,0x28,0x78,0x00,0x28,0x04,0xD0,0x68,0x7B,0x00,0x09,0x04,0x28,0x44,0xD1, + 0x2E,0x70,0x03,0x20,0x04,0xF0,0x02,0xFF,0xE8,0x62,0x03,0x20,0x04,0xF0,0x30,0xFF, + 0xFF,0x20,0x81,0x30,0xFE,0xF7,0xDC,0xFE,0xF8,0x8B,0x00,0x28,0x02,0xD0,0x40,0x1E, + 0xF8,0x83,0x2D,0xE0,0xFF,0xF7,0x9E,0xFC,0x00,0x28,0x29,0xD0,0x6F,0x6A,0x00,0x2F, + 0x26,0xD0,0xE8,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x1C,0x49,0xFE,0xF7,0x92,0xFB, + 0x38,0x1A,0x14,0x28,0x1C,0xDD,0x04,0xF0,0xD7,0xFF,0x04,0xF0,0xDB,0xFF,0xA8,0x79, + 0x00,0x28,0x0D,0xD0,0x03,0xF0,0x56,0xFE,0x03,0xF0,0x59,0xFE,0x03,0xF0,0x61,0xFE, + 0x13,0x4D,0x01,0x20,0x68,0x60,0xFE,0xF7,0xC3,0xFE,0x12,0x48,0x68,0x60,0x03,0xE0, + 0x11,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0,0x04,0xF0,0xCB,0xFF,0x0E,0x48,0x06,0x70, + 0x06,0x4D,0x28,0x78,0x00,0x28,0x00,0xD1,0x5D,0xE7,0x04,0x48,0x00,0x7A,0x00,0x28, + 0x01,0xD0,0x04,0xF0,0x9B,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xF8,0x0A,0x00,0x20, + 0x80,0x78,0x00,0x00,0x00,0x40,0x00,0x30,0xF0,0x05,0x00,0x20,0x10,0x27,0x00,0x00, + 0x00,0x30,0x00,0x40,0xE1,0x04,0x00,0x00,0xAC,0x0B,0x00,0x20,0x10,0xB4,0x0F,0x4B, + 0x00,0x22,0xD2,0x43,0x81,0x00,0x5A,0x52,0xCB,0x18,0x5A,0x80,0x0B,0x4B,0x0B,0x4C, + 0x24,0x33,0x5A,0x52,0xCB,0x18,0x5A,0x80,0x00,0x23,0x42,0x00,0x1C,0x3C,0xA3,0x52, + 0x22,0x00,0x12,0x32,0x13,0x54,0x18,0x00,0x52,0x32,0x8A,0x18,0x81,0x00,0x53,0x52, + 0x51,0x18,0x40,0x1E,0x4B,0x80,0xF9,0xD5,0x10,0xBC,0x70,0x47,0xCA,0x0B,0x00,0x20, + 0x10,0xB5,0x0C,0x48,0x09,0x22,0x00,0x21,0x02,0xF0,0xCE,0xFF,0x0A,0x48,0x5A,0x22, + 0x00,0x21,0x02,0xF0,0xC9,0xFF,0x08,0x48,0x00,0x24,0x00,0x1F,0x04,0x70,0x07,0x48, + 0x28,0x22,0x21,0x00,0x02,0xF0,0xC0,0xFF,0x04,0x48,0x4E,0x38,0x44,0x75,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x6B,0x08,0x00,0x20,0x54,0x07,0x00,0x20,0x7E,0x0A,0x00,0x20, + 0x10,0xB5,0x17,0x48,0x12,0x22,0x00,0x21,0x02,0xF0,0xAE,0xFF,0x14,0x48,0x12,0x22, + 0x00,0x21,0x12,0x30,0x02,0xF0,0xA8,0xFF,0x11,0x48,0x09,0x22,0x00,0x21,0x44,0x30, + 0x02,0xF0,0xA2,0xFF,0x0E,0x48,0x20,0x22,0x00,0x21,0x24,0x30,0x02,0xF0,0x9C,0xFF, + 0x0B,0x48,0x10,0x22,0x00,0x21,0x52,0x30,0x02,0xF0,0x96,0xFF,0x08,0x48,0x10,0x22, + 0x00,0x21,0x62,0x30,0x02,0xF0,0x90,0xFF,0x05,0x49,0x00,0x20,0x74,0x31,0xC8,0x82, + 0xFF,0x39,0x41,0x39,0x08,0x71,0x88,0x83,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xBC,0x06,0x00,0x20,0xF0,0xB4,0x1E,0x49,0x1E,0x4E,0x8F,0x7B,0xF1,0x88,0x49,0x06, + 0x02,0xD4,0x1B,0x49,0xC0,0x39,0x8F,0x7A,0x08,0x21,0x00,0x24,0x42,0x00,0x0B,0x01, + 0x9B,0x19,0x15,0x25,0x9B,0x18,0x6D,0x01,0x5D,0x19,0xEC,0x82,0x0D,0x25,0xAD,0x01, + 0x5B,0x19,0x49,0x1E,0xDC,0x80,0xF2,0xD5,0x15,0x25,0x31,0x18,0x6D,0x01,0x01,0x23, + 0x4D,0x19,0xAB,0x73,0x0F,0x25,0x93,0x19,0xAD,0x01,0x5B,0x19,0xDC,0x82,0x1F,0x23, + 0x5B,0x01,0xC9,0x18,0x8F,0x71,0x8C,0x73,0x02,0x21,0x0D,0x01,0xAD,0x19,0xAD,0x18, + 0xED,0x18,0x49,0x1E,0xEC,0x82,0xF8,0xD5,0x80,0x00,0x82,0x19,0x00,0x21,0x21,0x20, + 0xC9,0x43,0x40,0x01,0x10,0x18,0xC1,0x80,0x01,0x81,0xF0,0xBC,0x70,0x47,0x00,0x00, + 0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x10,0xB5,0x04,0x48,0x20,0x22,0x00,0x21, + 0x02,0xF0,0x3A,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x7E,0x08,0x00,0x20, + 0x10,0xB5,0x04,0xF0,0x43,0xFE,0x03,0xF0,0xDD,0xFD,0xFF,0xF7,0x59,0xFF,0x03,0xF0, + 0x2B,0xFF,0x01,0xF0,0x57,0xFD,0x01,0xF0,0xD1,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x10,0xB4,0x0D,0x4C,0x0B,0x4B,0xE4,0x88,0x1B,0x7F,0x64,0x06,0x02,0xD4,0x09,0x4B, + 0xC0,0x3B,0x1B,0x7E,0x04,0x1E,0x00,0xDC,0x44,0x42,0x9C,0x42,0x06,0xDD,0x98,0x42, + 0x01,0xDD,0xC8,0x1A,0x00,0xE0,0xC8,0x18,0x02,0x04,0x12,0x0C,0x10,0xBC,0x10,0x00, + 0x70,0x47,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0xF7,0xB5,0x62,0x48, + 0xCA,0xB0,0x00,0x7D,0x00,0x28,0x03,0xD0,0x01,0x20,0x47,0x90,0x00,0x20,0x02,0xE0, + 0x00,0x20,0x47,0x90,0x01,0x20,0x46,0x90,0x5C,0x48,0x00,0x26,0x49,0x90,0x5C,0x48, + 0x35,0x00,0x01,0x8B,0x04,0x91,0x41,0x8B,0x03,0x91,0x81,0x8A,0x02,0x91,0xC1,0x8A, + 0x01,0x91,0x80,0x8B,0x45,0x90,0x57,0x48,0x00,0x7A,0x48,0x96,0x00,0x90,0x6B,0xE0, + 0x00,0x24,0x64,0xE0,0x68,0x43,0x07,0x19,0x21,0x00,0x28,0x00,0x01,0xF0,0x52,0xF9, + 0x4D,0x49,0x20,0x39,0x0A,0x7D,0xD2,0x07,0x2D,0xD0,0x4F,0x4A,0x52,0x79,0x00,0x2A, + 0x00,0x9A,0x11,0xD0,0x95,0x42,0x26,0xD1,0x8A,0x7D,0xA2,0x42,0x1D,0xD0,0xCA,0x7D, + 0xA2,0x42,0x1A,0xD0,0x0A,0x7E,0xA2,0x42,0x17,0xD0,0x4A,0x7E,0xA2,0x42,0x14,0xD0, + 0x89,0x7E,0xA1,0x42,0x42,0xD1,0x10,0xE0,0x94,0x42,0x14,0xD1,0x8A,0x7D,0xAA,0x42, + 0x0B,0xD0,0xCA,0x7D,0xAA,0x42,0x08,0xD0,0x0A,0x7E,0xAA,0x42,0x05,0xD0,0x4A,0x7E, + 0xAA,0x42,0x02,0xD0,0x89,0x7E,0xA9,0x42,0x30,0xD1,0x04,0x99,0x03,0x9A,0x41,0x18, + 0x09,0x04,0x09,0x0C,0x04,0xE0,0x02,0x99,0x01,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C, + 0x80,0x1A,0x49,0x9B,0x02,0x04,0xB8,0x00,0x18,0x58,0x4B,0x9B,0x12,0x0C,0x00,0x2B, + 0x02,0xD0,0x00,0x05,0x00,0x0D,0x01,0xE0,0x00,0x01,0x00,0x0D,0x4A,0x9B,0x05,0x2B, + 0x0E,0xD8,0x90,0x42,0x01,0xDA,0x47,0x9A,0x02,0xE0,0x88,0x42,0x0E,0xDD,0x46,0x9A, + 0x21,0x00,0x28,0x00,0x00,0xF0,0x80,0xF8,0x05,0xA8,0x87,0x55,0x76,0x1C,0x05,0xE0, + 0x48,0x99,0x05,0xA8,0x47,0x54,0x48,0x98,0x40,0x1C,0x48,0x90,0x64,0x1C,0x22,0x49, + 0xC8,0x78,0x84,0x42,0x96,0xDB,0x6D,0x1C,0x1F,0x48,0x01,0x79,0x8D,0x42,0x8F,0xDB, + 0x4A,0x98,0x05,0x28,0x03,0xD9,0x00,0x04,0x48,0x9E,0x00,0x0C,0x45,0x90,0x00,0x2E, + 0x25,0xDD,0x4C,0x98,0x00,0x28,0x22,0xD1,0x00,0xF0,0x5A,0xF9,0x00,0xF0,0x7A,0xF9, + 0x00,0xF0,0x28,0xFA,0x76,0x1E,0x14,0xD4,0x14,0x4C,0x05,0xAB,0x98,0x5D,0x82,0x00, + 0x49,0x98,0x80,0x58,0x01,0x05,0x45,0x98,0x09,0x0D,0x08,0x18,0x00,0x04,0x00,0x0C, + 0xA0,0x42,0x00,0xD9,0x20,0x00,0x00,0x04,0x08,0x43,0x49,0x99,0x76,0x1E,0x88,0x50, + 0xEC,0xD5,0x00,0xF0,0x35,0xF9,0x00,0xF0,0x5D,0xF9,0x00,0xF0,0x0B,0xFA,0x4D,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x20,0x78,0x00,0x00,0x00,0x02,0x10,0x40, + 0xE0,0x7A,0x00,0x00,0x70,0x0A,0x00,0x20,0xF8,0x0A,0x00,0x20,0xFF,0x0F,0x00,0x00, + 0xF0,0xB5,0x01,0x26,0x76,0x07,0x30,0x68,0x01,0x28,0x1D,0xD1,0x74,0x68,0xA1,0x05, + 0xA0,0x01,0x89,0x0D,0x80,0x0D,0x0D,0x00,0x07,0x00,0x03,0xF0,0x9F,0xFF,0x41,0x1C, + 0x12,0xD0,0x0B,0x4A,0x80,0x00,0x81,0x18,0x49,0x88,0x10,0x5A,0xA3,0x0A,0x49,0x19, + 0x49,0x05,0x89,0x0D,0x9B,0x02,0xC0,0x19,0x06,0x4A,0x40,0x08,0x19,0x43,0x80,0x05, + 0x80,0x09,0x11,0x40,0x08,0x43,0x70,0x60,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x08,0x71,0x00,0x00,0xFF,0xFF,0x00,0xFC,0x30,0xB4,0x17,0x4D,0x15,0x4C,0x2D,0x78, + 0x68,0x43,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x09,0x0E,0x00,0x0A,0x00,0x2B, + 0x07,0xD0,0x00,0x2A,0x02,0xD0,0xC9,0x18,0xC0,0x18,0x0F,0xE0,0xC0,0x1A,0xC9,0x1A, + 0x0C,0xE0,0x00,0x2A,0x05,0xD0,0x88,0x42,0x01,0xDD,0x49,0x1C,0x06,0xE0,0x40,0x1C, + 0x04,0xE0,0x88,0x42,0x01,0xDD,0x40,0x1E,0x00,0xE0,0x49,0x1E,0x4A,0x1E,0xFF,0x2A, + 0x05,0xD2,0x42,0x1E,0xFF,0x2A,0x02,0xD2,0x00,0x02,0x08,0x43,0x60,0x53,0x30,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0xF0,0xB5,0x5A,0x48, + 0x8F,0xB0,0x06,0x78,0x59,0x48,0x5B,0x4A,0x05,0x96,0x07,0x78,0x58,0x48,0x06,0x97, + 0x0E,0x90,0x80,0x7E,0x0D,0x92,0xC1,0x07,0x09,0xD0,0x80,0x07,0x04,0xD5,0x70,0x1E, + 0x05,0x90,0x03,0x20,0x10,0x71,0x02,0xE0,0x7F,0x1E,0x00,0x21,0x11,0x71,0x52,0x48, + 0x0A,0x22,0x01,0x8C,0x51,0x43,0x09,0x04,0x09,0x0C,0x02,0x91,0x40,0x8C,0x50,0x43, + 0x00,0x04,0x00,0x0C,0x01,0x90,0x05,0x98,0x00,0x28,0x7E,0xD0,0x00,0x2F,0x7C,0xD0, + 0x41,0x00,0x02,0x98,0xFE,0xF7,0x2C,0xF8,0x05,0x04,0x2D,0x0C,0x00,0x24,0xB6,0x1C, + 0x0A,0xE0,0x02,0x98,0x05,0x99,0x60,0x43,0xFE,0xF7,0x22,0xF8,0x43,0x4A,0x61,0x00, + 0x40,0x19,0x89,0x18,0x64,0x1C,0x08,0x84,0xB4,0x42,0xF2,0xDB,0x01,0x98,0x79,0x00, + 0xFE,0xF7,0x16,0xF8,0x06,0x04,0x06,0x98,0x36,0x0C,0x00,0x24,0x80,0x1C,0x0C,0x90, + 0x0C,0xE0,0x01,0x98,0x39,0x00,0x60,0x43,0xFE,0xF7,0x0A,0xF8,0x37,0x4A,0x81,0x19, + 0x60,0x00,0x80,0x18,0x40,0x30,0x81,0x80,0x0C,0x98,0x64,0x1C,0x84,0x42,0xF0,0xDB, + 0x0E,0x98,0x80,0x7E,0xC0,0x07,0x53,0xD0,0x00,0x24,0x4D,0xE0,0x2F,0x4A,0x09,0x21, + 0x10,0x19,0xC9,0x01,0x40,0x18,0x41,0x7A,0x0E,0x98,0x80,0x7E,0x80,0x07,0x03,0xD5, + 0x05,0x98,0x03,0x95,0x04,0x91,0x02,0xE0,0x08,0x00,0x03,0xA9,0xC0,0xC1,0x27,0x49, + 0x40,0x00,0x40,0x18,0x0B,0x90,0x00,0x8C,0x0A,0x21,0x40,0x1B,0xFD,0xF7,0xE0,0xFF, + 0x22,0x4A,0xE1,0x00,0x89,0x18,0x11,0x22,0x92,0x01,0x0A,0x91,0x89,0x18,0x09,0x91, + 0x88,0x83,0x04,0x98,0x1D,0x49,0x40,0x00,0x40,0x18,0x40,0x30,0x08,0x90,0x80,0x88, + 0x0A,0x21,0x80,0x1B,0xFD,0xF7,0xCC,0xFF,0x09,0x99,0xC8,0x83,0x0B,0x98,0x0A,0x21, + 0x00,0x8C,0x40,0x19,0xFE,0xF7,0x9E,0xF8,0x0A,0x99,0x23,0x22,0x52,0x01,0x89,0x18, + 0x07,0x91,0x08,0x80,0x08,0x98,0x0A,0x21,0x80,0x88,0x80,0x19,0xFE,0xF7,0x92,0xF8, + 0x07,0x99,0x48,0x80,0x03,0x98,0x40,0x00,0x00,0xE0,0x09,0xE0,0x0A,0x21,0xFE,0xF7, + 0x89,0xF8,0x0D,0x99,0x64,0x1C,0xC8,0x80,0x0E,0x98,0xC0,0x7E,0xA0,0x42,0xAD,0xDC, + 0x0F,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x30,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20,0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x02,0x49,0x08,0x68,0x04,0x22,0x90,0x43,0x08,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x02,0x48,0x01,0x68,0x04,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x03,0x49,0xCA,0x69,0x01,0x23,0x5B,0x05,0x9A,0x43,0x02,0x43,0xCA,0x61,0x70,0x47, + 0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x49,0x08,0x49,0x00,0xC1,0x60,0x70,0x47, + 0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x01,0x22,0x11,0x43,0xC1,0x60,0x70,0x47, + 0xC0,0x90,0x00,0x40,0x01,0x49,0xC8,0x68,0xC8,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x02,0x48,0x01,0x68,0x08,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x01,0x22,0x10,0xB5,0x08,0x49,0x09,0x48,0x52,0x02,0x02,0xF0,0xCA,0xFC,0x08,0x48, + 0x01,0x22,0xC0,0x8E,0x92,0x02,0x01,0x04,0x01,0x43,0x06,0x48,0x02,0xF0,0xD4,0xFC, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x10,0x40, + 0x00,0x78,0x00,0x00,0x00,0x02,0x10,0x40,0x02,0x48,0x81,0x6B,0x49,0x08,0x49,0x00, + 0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x02,0x48,0x81,0x6B,0x01,0x22,0x11,0x43, + 0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x10,0xB5,0x0A,0x49,0x0A,0x48,0xFC,0x22, + 0x02,0xF0,0x9F,0xFC,0xFF,0x22,0x09,0x49,0x09,0x48,0xF1,0x32,0x02,0xF0,0x99,0xFC, + 0x01,0x22,0x08,0x49,0x08,0x48,0x52,0x02,0x02,0xF0,0x93,0xFC,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x04,0x7B,0x00,0x00,0x04,0x90,0x00,0x40,0x00,0x7C,0x00,0x00, + 0x00,0xA0,0x00,0x40,0x00,0x76,0x00,0x00,0x00,0x06,0x10,0x40,0x03,0x48,0x41,0x68, + 0x01,0x22,0x12,0x04,0x11,0x43,0x41,0x60,0x70,0x47,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x70,0xB5,0x1A,0x4C,0x20,0x68,0x40,0x08,0x40,0x00,0x20,0x60,0x18,0x48,0xA6,0x15, + 0x05,0x04,0x2D,0x0C,0x00,0x22,0x31,0x00,0x28,0x00,0xFD,0xF7,0xE3,0xFF,0x32,0x00, + 0x21,0x00,0x28,0x00,0x00,0x23,0xFD,0xF7,0xE5,0xFF,0x12,0x48,0x75,0x00,0x04,0x04, + 0x24,0x0C,0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0xD4,0xFF,0x0E,0x49,0x2A,0x00, + 0x20,0x00,0x00,0x23,0xFD,0xF7,0xD6,0xFF,0x0C,0x48,0x00,0x22,0x04,0x04,0x24,0x0C, + 0x29,0x00,0x20,0x00,0xFD,0xF7,0xC6,0xFF,0x09,0x49,0x2A,0x00,0x20,0x00,0x00,0x23, + 0xFD,0xF7,0xC8,0xFF,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x90,0x00,0x40, + 0x00,0x7B,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x76,0x00,0x00, + 0x00,0x06,0x10,0x40,0x04,0x48,0x10,0xB5,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0xFE,0xF7, + 0x7F,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40,0xF1,0xB5,0x55,0x4E, + 0x53,0x4B,0xF2,0x88,0x98,0x88,0x54,0x49,0x54,0x06,0x82,0xB0,0x00,0xD4,0x08,0x88, + 0x52,0x06,0x01,0x90,0x98,0x79,0x00,0xD4,0x88,0x78,0x37,0x00,0x00,0x25,0x01,0x00, + 0x41,0x43,0x08,0x06,0x00,0x0E,0x01,0x24,0xFF,0x37,0x61,0x37,0x00,0x90,0x11,0xE0, + 0x0A,0x20,0x60,0x43,0x43,0x21,0x80,0x19,0xC9,0x00,0x09,0x5C,0x00,0x29,0x08,0xD0, + 0x46,0x49,0x40,0x18,0x01,0xF0,0x66,0xF9,0x00,0x28,0x02,0xD0,0x6D,0x1C,0x2D,0x06, + 0x2D,0x0E,0x64,0x1C,0xB8,0x78,0xA0,0x42,0xEA,0xDA,0x41,0x49,0x08,0x00,0x20,0x30, + 0xCA,0x8B,0x43,0x88,0xD4,0x1A,0x00,0x2C,0x00,0xDC,0x9C,0x1A,0x22,0x04,0x03,0x88, + 0x84,0x88,0x12,0x0C,0x1F,0x1B,0x00,0x2F,0x00,0xDC,0xE7,0x1A,0x84,0x7A,0x3B,0x04, + 0x1B,0x0C,0x00,0x2C,0x04,0xD0,0x44,0x7B,0xC8,0x2C,0x01,0xD2,0x64,0x1C,0x44,0x73, + 0x8C,0x7B,0x14,0x2C,0x04,0xD2,0x0C,0x7C,0x00,0x2C,0x01,0xD0,0x01,0x24,0x4C,0x74, + 0x14,0x2A,0x01,0xD8,0x14,0x2B,0x04,0xD9,0xCC,0x7B,0xC8,0x2C,0x01,0xD2,0x64,0x1C, + 0xCC,0x73,0x02,0x2D,0x09,0xD2,0x14,0x2A,0x07,0xD2,0x14,0x2B,0x05,0xD2,0x08,0x24, + 0x04,0x5F,0x04,0x2C,0x07,0xDA,0x64,0x1C,0x04,0xE0,0x08,0x24,0x04,0x5F,0xE7,0x1C, + 0x01,0xDD,0x64,0x1E,0x04,0x81,0x44,0x7B,0x01,0x2C,0x01,0xD9,0x78,0x21,0x10,0xE0, + 0x02,0x2D,0x0F,0xD2,0x08,0x24,0x04,0x5F,0x02,0x2C,0x0B,0xDD,0xC9,0x7B,0x14,0x29, + 0x08,0xD2,0x51,0x3A,0x8B,0x2A,0x02,0xD3,0x51,0x3B,0x8B,0x2B,0x02,0xD2,0x77,0x21, + 0xC9,0x43,0xC1,0x80,0x00,0x21,0x02,0x2D,0x01,0x73,0x0E,0xD2,0x06,0x21,0x41,0x5E, + 0x78,0x31,0x04,0xD1,0xC1,0x7A,0xC8,0x29,0x01,0xD2,0x49,0x1C,0xC1,0x72,0xC1,0x7A, + 0x49,0x1E,0x02,0x29,0x01,0xD2,0x01,0x21,0x01,0x73,0x06,0x21,0x41,0x5E,0x01,0x98, + 0x09,0x18,0x08,0x00,0x48,0x43,0x02,0x99,0x00,0x29,0x05,0xD1,0x31,0x79,0x01,0x29, + 0x02,0xD0,0x00,0x99,0xFD,0xF7,0x0C,0xFE,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00,0x1E,0x02,0x00,0x00, + 0x70,0x08,0x00,0x20,0xFF,0x21,0x03,0x31,0x08,0x00,0x49,0x1E,0x00,0x28,0xFB,0xD1, + 0x70,0x47,0x15,0x21,0x08,0x00,0x49,0x1E,0x00,0x28,0xFB,0xD1,0x70,0x47,0x00,0x00, + 0x02,0x48,0x41,0x6B,0x01,0x22,0x11,0x43,0x41,0x63,0x70,0x47,0x00,0x70,0x00,0x40, + 0x70,0x47,0x00,0x00,0xFE,0xB5,0x1E,0x4A,0x1C,0x48,0xD1,0x88,0x00,0x25,0x00,0x7A, + 0x2E,0x00,0x2F,0x00,0x49,0x06,0x02,0xD4,0x18,0x48,0xC0,0x38,0x00,0x79,0x19,0x49, + 0x89,0x8A,0x40,0x18,0x01,0x06,0x18,0x48,0x09,0x0E,0x00,0x78,0x00,0x28,0x01,0x90, + 0x21,0xD0,0x01,0x24,0x49,0x1C,0x00,0x91,0x13,0xE0,0x0A,0x20,0x60,0x43,0x10,0x49, + 0x40,0x18,0xFF,0x30,0x61,0x30,0x80,0x7A,0x14,0x28,0x01,0xD2,0x01,0x26,0x07,0xE0, + 0x01,0x27,0x14,0x21,0xFD,0xF7,0x96,0xFE,0x00,0x99,0x88,0x42,0x00,0xD3,0x01,0x25, + 0x64,0x1C,0x01,0x98,0xA0,0x42,0xE8,0xDA,0x00,0x2F,0x02,0xD1,0x00,0x2E,0x00,0xD0, + 0x02,0x25,0x28,0x06,0x00,0x0E,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x20,0x7A,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xD0,0x0A,0x00,0x20,0x50,0x07,0x00,0x20,0x13,0x48,0x10,0xB5, + 0xC0,0x68,0x00,0x28,0x1F,0xD0,0x01,0x06,0x09,0x0F,0x03,0x29,0x01,0xD0,0x04,0x29, + 0x02,0xD1,0x00,0xF0,0xF1,0xF8,0x08,0xE0,0xF0,0x21,0x01,0x40,0x20,0x29,0x02,0xD2, + 0x00,0xF0,0x1A,0xF8,0x01,0xE0,0x03,0xF0,0xBB,0xFA,0x09,0x48,0x82,0x68,0x81,0x15, + 0x8A,0x43,0x82,0x60,0x82,0x68,0x0A,0x43,0x82,0x60,0x06,0x48,0x00,0x7A,0x00,0x28, + 0x01,0xD0,0x04,0xF0,0x83,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30, + 0x00,0x40,0x00,0x40,0xF8,0x0A,0x00,0x20,0xF1,0xB5,0x61,0x48,0x2E,0x21,0x90,0xB0, + 0x41,0x60,0x41,0x69,0x89,0x06,0xFC,0xD4,0x10,0x99,0x01,0x26,0x76,0x07,0xF1,0x63, + 0x84,0x69,0x5B,0x48,0x40,0x68,0x80,0x07,0xFB,0xD5,0x03,0xF0,0x91,0xFA,0x59,0x4D, + 0x28,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0,0x69,0xFA,0x10,0x9B,0x00,0x21,0x01,0x20, + 0x9B,0x1E,0xFF,0x27,0x4A,0x1E,0x40,0x03,0x04,0xF0,0xA2,0xFA,0x1E,0x16,0x40,0x40, + 0x40,0x40,0x13,0x40,0x40,0x42,0x10,0x40,0x40,0x58,0x40,0x40,0x4F,0x68,0x6F,0x76, + 0x7D,0x85,0x40,0x8C,0x93,0x4F,0x40,0x40,0x40,0x40,0x9A,0x40,0x0B,0x20,0xF0,0x63, + 0x4D,0xE0,0x00,0xF0,0x19,0xF9,0x29,0xE0,0x03,0x21,0x09,0x07,0xCA,0x60,0xFE,0xF7, + 0x4F,0xF9,0x00,0xF0,0x45,0xFE,0x44,0x48,0x44,0x4A,0x41,0x68,0x52,0x68,0x91,0x42, + 0x1C,0xD0,0x43,0x49,0x17,0x22,0xC9,0x8B,0x52,0x01,0x80,0x18,0x49,0x1C,0xC1,0x83, + 0xFD,0xF7,0xC0,0xFA,0xA8,0x78,0xC0,0x07,0x01,0xD0,0xFF,0xF7,0x21,0xFE,0xA8,0x78, + 0x80,0x07,0x01,0xD5,0x04,0xF0,0xE0,0xF9,0x3A,0x49,0x40,0x22,0x68,0x46,0x02,0xF0, + 0x88,0xFA,0x01,0x20,0x08,0x90,0x68,0x46,0x04,0xF0,0xEE,0xF9,0xF7,0x63,0x1E,0xE0, + 0x32,0x48,0xA0,0x30,0x00,0x7E,0x00,0x28,0xF8,0xD0,0x00,0x2C,0x01,0xD0,0x01,0x20, + 0x00,0xE0,0x00,0x20,0x04,0xF0,0x76,0xF8,0xF0,0xE7,0x03,0x21,0x09,0x07,0xCA,0x60, + 0xFE,0xF7,0x16,0xF9,0x10,0x98,0xFE,0xF7,0x69,0xF8,0x08,0xE0,0x03,0x21,0x09,0x07, + 0xCA,0x60,0xFE,0xF7,0x0D,0xF9,0x00,0xF0,0x83,0xFD,0x00,0xF0,0xEF,0xF8,0x20,0x48, + 0x41,0x68,0x41,0x60,0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x2C,0x02,0xD0, + 0x01,0x20,0xA8,0x71,0xD2,0xE7,0xA9,0x71,0xD0,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20, + 0xE8,0x71,0xCB,0xE7,0xE9,0x71,0xC9,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x72, + 0xC4,0xE7,0x29,0x72,0xC2,0xE7,0x00,0x2C,0x03,0xD0,0x20,0x0C,0x6C,0x72,0x28,0x82, + 0xBC,0xE7,0x69,0x72,0xBA,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xA8,0x72,0xB5,0xE7, + 0xA9,0x72,0xB3,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xE8,0x72,0xAE,0xE7,0xE9,0x72, + 0xAC,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x73,0xA7,0xE7,0x29,0x73,0xA5,0xE7, + 0x00,0x2C,0x01,0xD0,0x6C,0x73,0x00,0xE0,0x69,0x73,0x03,0xF0,0x9B,0xFE,0x9D,0xE7, + 0x00,0x40,0x00,0x30,0xF8,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20,0x00,0x78,0x00,0x00, + 0xE0,0x7A,0x00,0x00,0xC0,0x75,0x00,0x00,0xF0,0xB5,0x38,0x4F,0x35,0x4C,0xF9,0x78, + 0x03,0x00,0x35,0x4A,0x0E,0x04,0x39,0x79,0x35,0x48,0x25,0x68,0x0E,0x43,0x35,0x49, + 0x30,0x3B,0x04,0xF0,0xE5,0xF9,0x12,0x0A,0x0C,0x0E,0x12,0x16,0x1A,0x1C,0x18,0x1E, + 0x20,0x30,0x3B,0x16,0x3E,0x43,0x48,0x4E,0x51,0x0A,0xCD,0x61,0x21,0xE0,0x60,0x68, + 0x01,0xE0,0x2D,0x48,0xC0,0x6B,0xC8,0x61,0x1B,0xE0,0x10,0x8C,0x52,0x8C,0x00,0x04, + 0x35,0xE0,0xCE,0x61,0x15,0xE0,0xE0,0x68,0xF5,0xE7,0x50,0x68,0xF3,0xE7,0xA0,0x68, + 0xF1,0xE7,0xD0,0x7B,0xEF,0xE7,0x25,0x48,0x03,0x7A,0x10,0x7D,0x52,0x7D,0xC4,0x07, + 0xE4,0x09,0x80,0x07,0x12,0x04,0xC0,0x0F,0x00,0x02,0x23,0x43,0x02,0x43,0x13,0x43, + 0xCB,0x61,0x5F,0x22,0x22,0xE0,0x93,0x7D,0x50,0x7E,0x1B,0x06,0x18,0x43,0xD3,0x7D, + 0x12,0x7E,0x1B,0x04,0x12,0x02,0x13,0x43,0x18,0x43,0xD4,0xE7,0x90,0x7E,0x00,0x06, + 0xD1,0xE7,0x17,0x48,0x00,0x69,0xC0,0x07,0xC0,0x0F,0xCC,0xE7,0x00,0x69,0xFA,0x89, + 0x40,0x08,0x00,0x02,0x03,0xE0,0x13,0x48,0xA2,0x69,0xC0,0x8B,0x00,0x04,0x10,0x43, + 0xC1,0xE7,0x00,0x69,0x40,0x08,0xBE,0xE7,0xB8,0x69,0xBC,0xE7,0x48,0x69,0x10,0x42, + 0xFC,0xD1,0x03,0xF0,0x6D,0xF9,0xFF,0x20,0x01,0x21,0x49,0x07,0xC8,0x63,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0xC0,0x75,0x00,0x00,0x00,0x78,0x00,0x00,0xF8,0x0A,0x00,0x20, + 0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x30,0xC0,0x0F,0x00,0x20,0x70,0x0A,0x00,0x20, + 0x00,0x7B,0x00,0x00,0xE0,0x7A,0x00,0x00,0x70,0xB5,0x03,0x24,0x24,0x07,0xE5,0x68, + 0x00,0x20,0xC0,0x43,0xE0,0x60,0xFE,0xF7,0x51,0xF8,0x06,0x00,0xCB,0x20,0xC0,0x01, + 0xFE,0xF7,0x2E,0xF8,0x02,0xF0,0xEC,0xFF,0x01,0x20,0x40,0x05,0xFF,0xF7,0x88,0xFC, + 0x00,0xF0,0xBC,0xFC,0x00,0x20,0xFF,0xF7,0x83,0xFC,0x02,0xF0,0xD5,0xFF,0x30,0x00, + 0xFE,0xF7,0x50,0xF8,0xE5,0x60,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x03,0x21, + 0x10,0xB5,0xC0,0x43,0x09,0x07,0xC8,0x60,0x02,0xF0,0xD2,0xFF,0x00,0x20,0xFF,0xF7, + 0x6F,0xFC,0xFF,0xF7,0xED,0xFC,0x05,0x48,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0x01,0x20, + 0x40,0x07,0x04,0xF0,0x3B,0xF9,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40, + 0xF8,0xB5,0x27,0x49,0x25,0x48,0xC9,0x88,0x00,0x8A,0x49,0x06,0x02,0xD4,0x23,0x48, + 0xC0,0x38,0x80,0x89,0xC0,0x06,0x3D,0xD5,0x22,0x4E,0x30,0x78,0x00,0x28,0x39,0xD0, + 0x70,0x78,0x00,0x28,0x36,0xD0,0x01,0x25,0x31,0xE0,0x0A,0x21,0x69,0x43,0x1C,0x4B, + 0x01,0x20,0xCC,0x18,0xFF,0x34,0x77,0x78,0x61,0x34,0x25,0xE0,0x0A,0x22,0x42,0x43, + 0xD2,0x18,0xFF,0x32,0xA1,0x32,0x21,0x79,0x92,0x7F,0x91,0x42,0x1B,0xD1,0x0A,0x22, + 0x50,0x43,0xC7,0x18,0xFF,0x37,0x06,0x21,0xC1,0x37,0x00,0x20,0x61,0x5E,0x38,0x5E, + 0x02,0x22,0xBA,0x5E,0x08,0x1A,0x08,0x21,0x61,0x5E,0x89,0x1A,0x00,0x91,0x3A,0x88, + 0xE1,0x88,0xFF,0xF7,0x05,0xFA,0xE0,0x80,0x7A,0x88,0x21,0x89,0x00,0x98,0xFF,0xF7, + 0xFF,0xF9,0x20,0x81,0x02,0xE0,0x40,0x1C,0x87,0x42,0xD7,0xDA,0x6D,0x1C,0x30,0x78, + 0xA8,0x42,0xCA,0xDA,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x50,0x07,0x00,0x20,0xF0,0xB5,0x00,0x20,0xB1,0xB0,0x11,0x90, + 0x10,0x90,0x0F,0x90,0x0E,0x90,0xFA,0x48,0xFB,0x4D,0x01,0x8C,0xF9,0x4A,0x0B,0x91, + 0x40,0x8C,0xFA,0x49,0x0A,0x90,0xE8,0x88,0x13,0x7B,0x44,0x06,0x00,0xD4,0x0B,0x7A, + 0x54,0x7B,0x46,0x06,0x00,0xD4,0x4C,0x7A,0x46,0x06,0x09,0x94,0x94,0x7E,0x00,0xD4, + 0x8C,0x7D,0x46,0x06,0x08,0x94,0x54,0x7E,0x00,0xD4,0x4C,0x7D,0x07,0x94,0xEF,0x4C, + 0x40,0x34,0x24,0x8A,0x46,0x06,0x02,0xD4,0xEC,0x4C,0x80,0x3C,0xA4,0x89,0x24,0x07, + 0x42,0xD5,0xD4,0x7B,0x46,0x06,0x00,0xD4,0xCC,0x7A,0x5C,0x43,0x26,0x94,0x14,0x7C, + 0x46,0x06,0x00,0xD4,0x0C,0x7B,0x5C,0x43,0x25,0x94,0x54,0x7C,0x46,0x06,0x00,0xD4, + 0x4C,0x7B,0x5C,0x43,0x24,0x94,0x94,0x7C,0x46,0x06,0x00,0xD4,0x8C,0x7B,0x5C,0x43, + 0x23,0x94,0xD4,0x7C,0x46,0x06,0x00,0xD4,0xCC,0x7B,0x5C,0x43,0x22,0x94,0x14,0x7D, + 0x46,0x06,0x00,0xD4,0x0C,0x7C,0x5C,0x43,0x21,0x94,0x54,0x7D,0x46,0x06,0x00,0xD4, + 0x4C,0x7C,0x5C,0x43,0x20,0x94,0x94,0x7D,0x46,0x06,0x00,0xD4,0x8C,0x7C,0x5C,0x43, + 0x1F,0x94,0xD4,0x7D,0x46,0x06,0x00,0xD4,0xCC,0x7C,0x5C,0x43,0x1E,0x94,0x12,0x7E, + 0x40,0x06,0x00,0xD4,0x0A,0x7D,0xCE,0x48,0x5A,0x43,0x1D,0x92,0x30,0x90,0x00,0x78, + 0x00,0x28,0x05,0xD1,0x00,0xF0,0xCE,0xFE,0x31,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x20,0x27,0x90,0xC7,0x48,0x2F,0x90,0xC3,0x4D,0x27,0x98,0x13,0x21,0x28,0x18, + 0x49,0x01,0x2E,0x90,0x40,0x18,0x04,0x7F,0x00,0x2C,0x0F,0xD0,0x08,0x98,0x00,0x28, + 0x08,0xD1,0x0A,0x20,0x60,0x43,0x40,0x19,0xFF,0x30,0x6B,0x30,0x00,0xF0,0xE2,0xFD, + 0x00,0x28,0x03,0xD0,0x2F,0x98,0x00,0x7B,0x00,0x28,0x03,0xD0,0x27,0x98,0xFF,0xF7, + 0xF9,0xF8,0xA0,0xE2,0x27,0x99,0x15,0x27,0x07,0x20,0x7F,0x01,0x4E,0x00,0x01,0x01, + 0x49,0x19,0x89,0x19,0xCA,0x19,0xD2,0x8A,0x0B,0x23,0x9B,0x01,0xCB,0x18,0xDA,0x80, + 0x0D,0x22,0x92,0x01,0x89,0x18,0xCA,0x88,0x40,0x1E,0xCA,0x82,0xEF,0xD5,0x0A,0x20, + 0x44,0x43,0x64,0x19,0x2D,0x94,0xFF,0x34,0x61,0x34,0xE1,0x88,0x0B,0x98,0x40,0x1E, + 0x81,0x42,0xDE,0xDC,0x21,0x89,0x0A,0x98,0x40,0x1E,0x81,0x42,0xD9,0xDC,0xA2,0x48, + 0xE1,0x88,0x35,0x18,0xE8,0x19,0x2C,0x90,0x0D,0x23,0xC1,0x82,0x21,0x89,0x9B,0x01, + 0xE8,0x18,0x2B,0x90,0xC1,0x80,0x00,0x20,0x01,0x21,0xC9,0x02,0x06,0x90,0x05,0x90, + 0x07,0x20,0x04,0x91,0x98,0x4A,0x03,0x01,0x9A,0x18,0x92,0x19,0x15,0x23,0x5B,0x01, + 0x94,0x46,0xD2,0x18,0x16,0x23,0xD3,0x5E,0x00,0x2B,0x07,0xDD,0x06,0x9F,0xBB,0x42, + 0x01,0xDD,0xD7,0x8A,0x06,0x97,0x8B,0x42,0x00,0xDA,0xD1,0x8A,0x0D,0x23,0x9B,0x01, + 0x62,0x46,0xD2,0x18,0x06,0x23,0xD3,0x5E,0x00,0x2B,0x09,0xDD,0x05,0x9F,0xBB,0x42, + 0x01,0xDD,0xD7,0x88,0x05,0x97,0x04,0x9F,0xBB,0x42,0x01,0xDA,0xD2,0x88,0x04,0x92, + 0x40,0x1E,0xD7,0xD5,0x06,0x98,0x40,0x1A,0xF0,0x28,0x04,0xDC,0x04,0x99,0x05,0x98, + 0x40,0x1A,0xF0,0x28,0x02,0xDD,0x2F,0x99,0x01,0x20,0x88,0x72,0x2E,0x98,0x15,0x21, + 0x49,0x01,0x40,0x18,0x2A,0x90,0x80,0x7B,0x01,0x28,0x1B,0xD9,0x2C,0x98,0x16,0x21, + 0x41,0x5E,0x0B,0x20,0x80,0x01,0x28,0x18,0x06,0x22,0x82,0x5E,0x88,0x1A,0x00,0x28, + 0x00,0xDC,0x50,0x1A,0x00,0x04,0x00,0x14,0x0D,0x90,0x2B,0x98,0x06,0x21,0x16,0x22, + 0x41,0x5E,0x82,0x5E,0x88,0x1A,0x00,0x28,0x00,0xDC,0x50,0x1A,0x00,0x04,0x00,0x14, + 0x0C,0x90,0x02,0xE0,0x64,0x20,0x0C,0x90,0x0D,0x90,0x0B,0x20,0x80,0x01,0x2F,0x18, + 0x2C,0x9A,0x06,0x21,0x16,0x20,0x79,0x5E,0x10,0x5E,0x02,0xF0,0x9F,0xFF,0x13,0x90, + 0x2B,0x98,0x16,0x21,0x41,0x5E,0x02,0x00,0x06,0x20,0x10,0x5E,0x02,0xF0,0x96,0xFF, + 0x12,0x90,0x16,0x21,0x79,0x5E,0x13,0x98,0x02,0xF0,0x90,0xFF,0x15,0x90,0x1B,0x20, + 0x40,0x01,0x28,0x18,0x06,0x21,0x29,0x90,0x41,0x5E,0x12,0x98,0x02,0xF0,0x86,0xFF, + 0x14,0x90,0x17,0x20,0x40,0x01,0x28,0x18,0x16,0x22,0x06,0x21,0x82,0x5E,0x41,0x5E, + 0x15,0x98,0x02,0xF0,0x7D,0xFF,0x00,0x04,0x00,0x14,0x17,0x90,0x07,0x20,0xC0,0x01, + 0x2F,0x18,0x29,0x98,0x16,0x21,0x41,0x5E,0x06,0x22,0xBA,0x5E,0x14,0x98,0x02,0xF0, + 0x6F,0xFF,0x00,0x04,0x00,0x14,0x16,0x90,0x03,0x20,0x00,0x02,0x28,0x18,0x16,0x22, + 0x06,0x21,0x82,0x5E,0x41,0x5E,0x17,0x98,0x02,0xF0,0x62,0xFF,0x00,0x04,0x00,0x14, + 0x19,0x90,0x1D,0x20,0x40,0x01,0x28,0x18,0x28,0x90,0x06,0x22,0x82,0x5E,0x16,0x21, + 0x79,0x5E,0x16,0x98,0x02,0xF0,0x54,0xFF,0x00,0x04,0x00,0x14,0x18,0x90,0x19,0x20, + 0x40,0x01,0x28,0x18,0x16,0x22,0x06,0x21,0x82,0x5E,0x41,0x5E,0x19,0x98,0x02,0xF0, + 0x47,0xFF,0x00,0x04,0x00,0x14,0x1B,0x90,0x0F,0x20,0x80,0x01,0x2F,0x18,0x28,0x98, + 0x16,0x21,0x41,0x5E,0x06,0x22,0xBA,0x5E,0x18,0x98,0x02,0xF0,0x39,0xFF,0x00,0x04, + 0x00,0x14,0x1A,0x90,0x0C,0x99,0x0D,0x98,0x00,0xF0,0xE0,0xFF,0x01,0x21,0x84,0x46, + 0x88,0x02,0x2D,0x4B,0x0A,0x01,0xD2,0x18,0x93,0x19,0x1F,0x22,0x52,0x01,0x9A,0x18, + 0xD2,0x8A,0x1B,0x18,0x49,0x1E,0xDA,0x80,0xF3,0xD5,0x1F,0x21,0x49,0x01,0x6A,0x18, + 0x60,0x46,0xD0,0x82,0x2E,0x9A,0x00,0x20,0x55,0x18,0xAA,0x7B,0x00,0x2A,0x94,0x46, + 0x0B,0xDB,0x21,0x4B,0x11,0x01,0xC9,0x18,0x1F,0x23,0x89,0x19,0x5B,0x01,0xCB,0x18, + 0x16,0x21,0x59,0x5E,0x08,0x18,0x52,0x1E,0xF3,0xD5,0x61,0x46,0x49,0x1C,0xFD,0xF7, + 0xC7,0xF9,0x25,0x99,0x06,0x00,0x88,0x42,0x01,0xDC,0x01,0x20,0x0F,0xE0,0x23,0x98, + 0x86,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x21,0x98,0x86,0x42,0x01,0xDC,0x03,0x20, + 0x05,0xE0,0x1F,0x98,0x86,0x42,0x01,0xDC,0x04,0x20,0x00,0xE0,0x05,0x20,0xA9,0x79, + 0x40,0x1A,0x09,0x99,0x49,0x42,0x00,0x28,0x08,0xDD,0x16,0x20,0x38,0x5E,0x09,0x9B, + 0x98,0x42,0x01,0xD1,0x00,0x20,0x08,0xE0,0x40,0x1C,0x06,0xE0,0x00,0x28,0x0A,0x48, + 0x38,0x5E,0x13,0xDA,0x88,0x42,0xF5,0xD0,0x40,0x1E,0xF8,0x82,0x11,0xE0,0x00,0x00, + 0x00,0x78,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00, + 0x50,0x07,0x00,0x20,0x90,0x08,0x00,0x20,0x16,0x00,0x00,0x00,0x00,0x28,0xEB,0xDC, + 0xE2,0xDB,0x16,0x20,0x38,0x5E,0x09,0x9B,0x98,0x42,0x05,0xD1,0xAB,0x79,0x05,0x2B, + 0x02,0xD2,0x5B,0x1C,0xAB,0x71,0x06,0xE0,0x88,0x42,0x04,0xD1,0xA8,0x79,0x01,0x28, + 0x01,0xD9,0x40,0x1E,0xA8,0x71,0x1A,0x99,0x1B,0x98,0x1C,0x91,0x2A,0x99,0x8F,0x7B, + 0x39,0x00,0xFD,0xF7,0x6D,0xF9,0x11,0x90,0x0F,0x90,0x1C,0x98,0x39,0x00,0xFD,0xF7, + 0x67,0xF9,0x10,0x90,0x0E,0x90,0xA8,0x79,0x01,0x28,0x27,0xD1,0x0E,0xAA,0x0F,0xA9, + 0x6B,0x46,0x06,0xC3,0x1A,0x9B,0x1B,0x9A,0x09,0x21,0x38,0x00,0x03,0xF0,0x64,0xFB, + 0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0,0x2A,0x98,0x18,0x9B,0x80,0x7B,0x19,0x9A, + 0x07,0x21,0x03,0xF0,0x59,0xFB,0x6B,0x46,0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E, + 0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAF,0x07,0xC7,0x04,0x22,0x9A,0x5E,0x25,0x9B, + 0x00,0x92,0x2D,0x98,0x26,0x9A,0xFF,0x30,0x65,0x30,0x9A,0xE0,0x02,0x28,0x27,0xD1, + 0x0E,0xAA,0x0F,0xA9,0x6B,0x46,0x06,0xC3,0x18,0x9B,0x19,0x9A,0x07,0x21,0x38,0x00, + 0x03,0xF0,0x3A,0xFB,0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0,0x2A,0x98,0x16,0x9B, + 0x80,0x7B,0x17,0x9A,0x05,0x21,0x03,0xF0,0x2F,0xFB,0x6B,0x46,0x38,0x22,0x3C,0x21, + 0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAF,0x07,0xC7,0x04,0x22, + 0x9A,0x5E,0x00,0x92,0x2D,0x98,0x23,0x9B,0xFF,0x30,0x24,0x9A,0x65,0x30,0x70,0xE0, + 0x03,0x28,0x27,0xD1,0x0E,0xAA,0x0F,0xA9,0x6B,0x46,0x06,0xC3,0x16,0x9B,0x17,0x9A, + 0x05,0x21,0x38,0x00,0x03,0xF0,0x10,0xFB,0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0, + 0x2A,0x98,0x14,0x9B,0x80,0x7B,0x15,0x9A,0x03,0x21,0x03,0xF0,0x05,0xFB,0x6B,0x46, + 0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAF, + 0x07,0xC7,0x04,0x22,0x9A,0x5E,0x21,0x9B,0x00,0x92,0x2D,0x98,0x22,0x9A,0xFF,0x30, + 0x65,0x30,0x46,0xE0,0x04,0x28,0x27,0xD1,0x0E,0xAA,0x0F,0xA9,0x68,0x46,0x06,0xC0, + 0x14,0x9B,0x15,0x9A,0x03,0x21,0x38,0x00,0x03,0xF0,0xE6,0xFA,0x10,0xAA,0x11,0xA9, + 0x68,0x46,0x06,0xC0,0x2A,0x98,0x12,0x9B,0x80,0x7B,0x13,0x9A,0x02,0x21,0x03,0xF0, + 0xDB,0xFA,0x6B,0x46,0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB, + 0x18,0x5E,0x01,0xAF,0x07,0xC7,0x04,0x22,0x9A,0x5E,0x1F,0x9B,0x00,0x92,0x2D,0x98, + 0x20,0x9A,0xFF,0x30,0x65,0x30,0x1C,0xE0,0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0, + 0x12,0x9B,0x13,0x9A,0x02,0x21,0x38,0x00,0x03,0xF0,0xBE,0xFA,0x10,0xAB,0x00,0x22, + 0x04,0x21,0x9A,0x5E,0x59,0x5E,0x2B,0x9B,0x06,0x20,0x18,0x5E,0x01,0xAB,0x07,0xC3, + 0x2C,0x98,0x16,0x22,0x82,0x5E,0x1D,0x9B,0x00,0x92,0x2D,0x98,0x1E,0x9A,0xFF,0x30, + 0x65,0x30,0x31,0x00,0x03,0xF0,0xBC,0xFA,0x2A,0x98,0x3C,0x49,0x80,0x7B,0x09,0x28, + 0x02,0xD2,0x2A,0x9A,0x40,0x1C,0x90,0x73,0xA8,0x7B,0x02,0x28,0x01,0xD2,0x40,0x1C, + 0xA8,0x73,0x20,0x79,0x40,0x1E,0x80,0x00,0x41,0x18,0x21,0x20,0x40,0x01,0x0D,0x18, + 0x06,0x20,0x28,0x5E,0x00,0x28,0x22,0xDB,0x08,0x21,0x69,0x5E,0x00,0x29,0x1E,0xDB, + 0x07,0x99,0x64,0x22,0x56,0x1A,0x70,0x43,0x11,0x00,0xFD,0xF7,0x79,0xF8,0x07,0x00, + 0xE0,0x88,0x07,0x99,0x48,0x43,0x64,0x21,0xFD,0xF7,0x4C,0xF9,0x38,0x18,0xE0,0x80, + 0x08,0x20,0x28,0x5E,0x64,0x21,0x70,0x43,0xFD,0xF7,0x6A,0xF8,0x06,0x00,0x20,0x89, + 0x07,0x99,0x48,0x43,0x64,0x21,0xFD,0xF7,0x3D,0xF9,0x30,0x18,0x20,0x81,0xE0,0x88, + 0xE8,0x80,0x20,0x89,0x28,0x81,0x27,0x98,0x40,0x1C,0x08,0x28,0x27,0x90,0x00,0xDA, + 0x3A,0xE5,0x30,0x98,0x01,0x78,0x1A,0x48,0x01,0x29,0x1F,0xD1,0x30,0x99,0x89,0x7B, + 0x4A,0x00,0x16,0x49,0x51,0x18,0x15,0x22,0x52,0x01,0x8A,0x18,0x92,0x8A,0xC2,0x83, + 0x0D,0x22,0x92,0x01,0x8A,0x18,0x94,0x88,0x2F,0x9B,0x1C,0x80,0x0B,0x23,0x9B,0x01, + 0xC9,0x18,0x8B,0x88,0x2F,0x99,0x4B,0x80,0x92,0x8A,0x2F,0x99,0x8A,0x80,0x30,0x99, + 0x09,0x8A,0xC1,0x82,0x30,0x99,0x49,0x8A,0x01,0x83,0x0D,0xE5,0x02,0x29,0xFC,0xD1, + 0x30,0x99,0x09,0x8A,0xC1,0x82,0x30,0x99,0x49,0x8A,0x01,0x83,0x30,0x99,0x49,0x8B, + 0x41,0x83,0x30,0x99,0x89,0x8B,0x81,0x83,0xFE,0xE4,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x70,0x08,0x00,0x20,0x14,0x20,0x9F,0xE5,0x01,0x10,0x81,0xE2,0x00,0x20,0xD2,0xE5, + 0x02,0x20,0x82,0xE2,0x91,0x02,0x20,0xE0,0x01,0x00,0x80,0xE2,0x1E,0xFF,0x2F,0xE1, + 0xFB,0x0A,0x00,0x20,0xF8,0xB5,0x1C,0x4B,0x1C,0x7D,0xDA,0x8E,0xE4,0x07,0x31,0xD0, + 0x1C,0x8F,0x1A,0x4B,0x1B,0x7A,0x9E,0x46,0x19,0x4B,0x1E,0x78,0x16,0x4B,0x9D,0x7D, + 0x00,0x2E,0x76,0x46,0xAC,0x46,0xDD,0x7D,0x00,0x95,0x1D,0x7E,0x5F,0x7E,0x9B,0x7E, + 0x12,0xD0,0xB0,0x42,0x1E,0xD1,0x8C,0x45,0x08,0xD0,0x00,0x98,0x88,0x42,0x05,0xD0, + 0x8D,0x42,0x03,0xD0,0x8F,0x42,0x01,0xD0,0x8B,0x42,0x03,0xD1,0x20,0x00,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x20,0xFA,0xE7,0xB1,0x42,0x0B,0xD1,0x84,0x45,0xF5,0xD0, + 0x00,0x99,0x81,0x42,0xF2,0xD0,0x85,0x42,0xF0,0xD0,0x87,0x42,0xEE,0xD0,0x83,0x42, + 0xF0,0xD1,0xEB,0xE7,0x10,0x00,0xEA,0xE7,0x00,0x78,0x00,0x00,0x70,0x0A,0x00,0x20, + 0xFD,0x0A,0x00,0x20,0x78,0x47,0xC0,0x46,0x14,0x20,0x9F,0xE5,0x02,0x10,0x81,0xE2, + 0x00,0x20,0xD2,0xE5,0x04,0x20,0x82,0xE2,0x91,0x02,0x20,0xE0,0x02,0x00,0x80,0xE2, + 0x1E,0xFF,0x2F,0xE1,0xFB,0x0A,0x00,0x20,0xFE,0xB5,0x04,0x00,0x88,0x1A,0xC0,0x1A, + 0x0D,0x00,0x16,0x00,0x41,0x00,0x08,0x19,0x02,0x22,0x82,0x5E,0x1F,0x00,0x20,0x38, + 0x1E,0x23,0xC3,0x5E,0x61,0x5E,0x18,0x00,0x00,0xF0,0x9C,0xFD,0x69,0x00,0x01,0x90, + 0x08,0x19,0x02,0x22,0x82,0x5E,0x20,0x38,0x1E,0x23,0xC3,0x5E,0x61,0x5E,0x18,0x00, + 0x00,0xF0,0x90,0xFD,0x00,0x90,0xA8,0x19,0xC0,0x19,0x41,0x00,0x08,0x19,0x02,0x22, + 0x82,0x5E,0x20,0x38,0x1E,0x23,0xC3,0x5E,0x61,0x5E,0x18,0x00,0x00,0xF0,0x82,0xFD, + 0x02,0x00,0x00,0x99,0x01,0x98,0x00,0xF0,0x7D,0xFD,0xFE,0xBC,0x08,0xBC,0x18,0x47, + 0x04,0x4B,0x03,0x4A,0x1B,0x78,0x58,0x43,0x40,0x18,0x40,0x00,0x10,0x5A,0x70,0x47, + 0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0x04,0x48,0x41,0x69,0x49,0x06,0x01,0xD5, + 0x10,0x20,0x70,0x47,0x40,0x69,0xC0,0x06,0xC0,0x0E,0x70,0x47,0x00,0x40,0x00,0x30, + 0x0D,0x49,0x01,0x20,0x10,0xB5,0x40,0x07,0x4A,0x69,0x92,0x06,0xFC,0xD4,0xCA,0x68, + 0x4B,0x68,0x4B,0x60,0x04,0xE0,0x4B,0x69,0x9B,0x06,0xFC,0xD4,0x8B,0x69,0x08,0xC0, + 0x52,0x1E,0xF8,0xD2,0x2E,0x20,0x48,0x60,0x48,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0, + 0x87,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30,0x78,0x47,0xC0,0x46, + 0x10,0x40,0x2D,0xE9,0xB0,0x40,0x9F,0xE5,0x0C,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3, + 0xFC,0xFF,0xFF,0x0A,0x04,0x00,0x94,0xE5,0x04,0x00,0x84,0xE5,0x04,0x00,0x94,0xE5, + 0x04,0x00,0x10,0xE3,0x10,0x00,0x00,0x0A,0x0C,0x00,0x94,0xE5,0x04,0x10,0x90,0xE4, + 0x1C,0x10,0x84,0xE5,0x02,0x12,0xA0,0xE3,0x38,0x10,0x91,0xE5,0x04,0x00,0x00,0xEA, + 0x04,0x20,0x90,0xE4,0x1C,0x20,0x84,0xE5,0x14,0x20,0x94,0xE5,0x40,0x00,0x12,0xE3, + 0xFC,0xFF,0xFF,0x1A,0x01,0x10,0x51,0xE2,0xF8,0xFF,0xFF,0x1A,0x14,0x00,0x94,0xE5, + 0x5F,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x1A,0x11,0x00,0x00,0xEA,0x04,0x00,0x94,0xE5, + 0x02,0x00,0x10,0xE3,0xE8,0xFF,0xFF,0x0A,0x14,0x00,0x94,0xE5,0x20,0x00,0x10,0xE3, + 0xE5,0xFF,0xFF,0x1A,0x0C,0x00,0x94,0xE5,0x08,0x00,0x50,0xE3,0x10,0x40,0xBD,0x08, + 0x18,0x0A,0x00,0x0A,0x14,0x10,0x94,0xE5,0x5F,0x00,0x11,0xE3,0x18,0x10,0x94,0x15, + 0x04,0x10,0x80,0x14,0xFA,0xFF,0xFF,0x1A,0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3, + 0xFC,0xFF,0xFF,0x0A,0x0F,0x0A,0x00,0xEB,0xD2,0xFF,0xFF,0xEA,0x00,0x40,0x00,0x30, + 0xF8,0xB5,0x20,0x4E,0x20,0x4F,0x00,0x25,0x2C,0x00,0x78,0x69,0x80,0x06,0xFC,0xD4, + 0x78,0x68,0x78,0x60,0xF8,0x68,0x04,0x28,0x0E,0xD1,0x1C,0x48,0x40,0x21,0x04,0xE0, + 0x7A,0x69,0x92,0x06,0xFC,0xD4,0xBA,0x69,0x04,0xC0,0x49,0x1E,0xF8,0xD2,0x20,0x25, + 0x17,0x4C,0x30,0x78,0x01,0x21,0x06,0xE0,0x05,0x28,0x07,0xD1,0x15,0x48,0x16,0x4C, + 0x85,0x08,0x30,0x78,0x02,0x21,0x08,0x43,0x30,0x70,0x10,0xE0,0x03,0x28,0x0E,0xD1, + 0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0xF1,0xFB,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x78,0x69,0x80,0x06,0xFC,0xD4,0xB8,0x69,0x01,0xC4,0x6D,0x1E, + 0xF8,0xD2,0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0xE0,0xFB, + 0xC3,0xE7,0x00,0x00,0xFA,0x0A,0x00,0x20,0x00,0x40,0x00,0x30,0x00,0x90,0x00,0x40, + 0x00,0xA0,0x00,0x40,0x00,0x03,0x00,0x00,0xC8,0x02,0x00,0x20,0x01,0x49,0x20,0x20, + 0x48,0x61,0x70,0x47,0x00,0x40,0x00,0x30,0xF8,0xB5,0x01,0x22,0x52,0x07,0x11,0x68, + 0x3D,0x48,0x01,0x29,0x80,0x7A,0x01,0xD1,0x01,0x25,0x03,0xE0,0x11,0x68,0x01,0x29, + 0x06,0xD9,0x02,0x25,0x00,0x28,0x0B,0xD0,0x00,0x21,0x25,0x27,0x7F,0x01,0x3B,0xE0, + 0x00,0x28,0x05,0xD1,0x34,0x48,0x09,0x22,0x00,0x21,0x08,0x38,0x01,0xF0,0xFC,0xFB, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x4A,0x19,0x00,0x24,0x92,0x00,0x10,0x18,0x02,0x68, + 0x84,0x46,0x90,0x0F,0xC0,0x07,0x26,0xD0,0x01,0x20,0x93,0x00,0x1B,0x0F,0x2B,0x4E, + 0x36,0x18,0xF6,0x19,0x36,0x7E,0x9E,0x42,0x01,0xD1,0x04,0x00,0x02,0xE0,0x40,0x1C, + 0x08,0x28,0xF4,0xD9,0x00,0x2C,0x06,0xD0,0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43, + 0x80,0x08,0x02,0x43,0x0D,0xE0,0x21,0x4C,0x01,0x20,0x26,0x18,0xF6,0x19,0x36,0x7E, + 0x00,0x2E,0x03,0xD1,0x24,0x18,0xE4,0x19,0x23,0x76,0xED,0xE7,0x40,0x1C,0x08,0x28, + 0xF3,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42, + 0xC9,0xD8,0x00,0x21,0x21,0xE0,0x4A,0x19,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46, + 0x90,0x0F,0xC0,0x07,0x18,0xD1,0x11,0x4E,0x01,0x20,0x93,0x00,0x1C,0x0F,0x33,0x18, + 0xDB,0x19,0x1B,0x7E,0xA3,0x42,0x0A,0xD1,0x34,0x18,0x00,0x23,0xE4,0x19,0x23,0x76, + 0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43,0x02,0xE0,0x40,0x1C, + 0x08,0x28,0xEC,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68, + 0x8A,0x42,0xD8,0xD8,0x9C,0xE7,0x00,0x00,0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20, + 0x03,0x23,0x1B,0x07,0xDA,0x68,0x01,0x21,0x81,0x40,0x8A,0x43,0xDA,0x60,0x70,0x47, + 0x10,0xB4,0x0F,0x24,0x03,0x23,0x1B,0x07,0x1C,0x60,0x05,0x4C,0x60,0x63,0x19,0x61, + 0x9A,0x60,0x00,0x20,0xC0,0x43,0xD8,0x60,0x00,0x20,0x18,0x60,0x10,0xBC,0x70,0x47, + 0x40,0x00,0x00,0x30,0x03,0x4B,0x00,0xB5,0x82,0x00,0x99,0x50,0xFF,0xF7,0xE0,0xFF, + 0x08,0xBC,0x18,0x47,0x2C,0x0B,0x00,0x20,0xF0,0xB5,0x85,0xB0,0xFE,0xF7,0xB8,0xFB, + 0xFE,0xF7,0x96,0xFB,0x02,0xF0,0xE0,0xF9,0x00,0xF0,0xDA,0xFD,0x00,0xF0,0xFA,0xFB, + 0xFE,0xF7,0x08,0xF8,0xFD,0xF7,0x46,0xFA,0x38,0x49,0x37,0x48,0xC9,0x88,0x40,0x7F, + 0x49,0x06,0x02,0xD4,0x34,0x48,0xC0,0x38,0x40,0x7E,0x00,0x28,0x04,0xD1,0xFF,0xF7, + 0x43,0xFA,0xFF,0xF7,0xED,0xF9,0x03,0xE0,0xFF,0xF7,0xEA,0xF9,0xFF,0xF7,0x3C,0xFA, + 0x02,0xF0,0xE0,0xFC,0x02,0xF0,0x48,0xFB,0x01,0x26,0x76,0x07,0x30,0x68,0x00,0x28, + 0x07,0xD0,0x70,0x68,0x80,0x0F,0x80,0x07,0x03,0xD5,0x35,0x68,0x02,0x24,0x6D,0x1C, + 0x37,0xE0,0x01,0x24,0x25,0x00,0xA0,0x00,0x87,0x19,0x38,0x68,0x81,0x01,0x04,0x90, + 0x80,0x05,0x80,0x0D,0x02,0x90,0x22,0x48,0x89,0x0D,0x03,0x91,0x00,0x78,0x00,0x28, + 0x03,0xD1,0x02,0xA9,0x03,0xA8,0x02,0xF0,0x6B,0xFB,0x1E,0x4B,0x00,0x21,0x58,0x8C, + 0x40,0x1E,0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0,0x18,0x8C,0x0A,0x00,0x02,0xA9, + 0x40,0x1E,0x03,0x04,0x1B,0x0C,0x03,0xA8,0x03,0xF0,0xD2,0xFA,0x02,0xA9,0x03,0xA8, + 0x03,0xF0,0xA6,0xF9,0x14,0x49,0x04,0x98,0x08,0x40,0x03,0x99,0x89,0x05,0x89,0x09, + 0x08,0x43,0x02,0x99,0x80,0x0A,0x80,0x02,0x89,0x05,0x89,0x0D,0x08,0x43,0x38,0x60, + 0x64,0x1C,0xAC,0x42,0xC7,0xD9,0x30,0x68,0xFC,0xF7,0x5A,0xFF,0xFD,0xF7,0x3E,0xFE, + 0x02,0xF0,0xCA,0xFA,0xFF,0xF7,0xE0,0xFE,0xFC,0xF7,0x9E,0xFE,0x03,0x48,0x40,0x79, + 0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x03,0x0B,0x00,0x20,0x00,0x78,0x00,0x00,0xFF,0xFF,0x00,0xFC,0xF8,0xB5,0x02,0xF0, + 0x3F,0xF9,0xFE,0xF7,0xCD,0xFD,0xFE,0xF7,0x5B,0xFE,0xFE,0xF7,0xA3,0xFE,0x1A,0x48, + 0x00,0x21,0xC0,0x7F,0x03,0xF0,0xE0,0xF8,0x18,0x4F,0x19,0x4D,0xFC,0x03,0x00,0x20, + 0x28,0x70,0xE8,0x61,0xE8,0x79,0x00,0x28,0x1A,0xD0,0x01,0x26,0x15,0xE0,0x78,0x68, + 0x00,0x07,0x12,0xD5,0xA6,0x63,0xF8,0x68,0x07,0x28,0x06,0xD1,0x02,0xF0,0x78,0xFA, + 0xFF,0xF7,0x22,0xF9,0xFF,0x20,0xE0,0x63,0x07,0xE0,0x0B,0x28,0x10,0xD1,0xE0,0x63, + 0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0x6B,0xFA,0xE0,0x6B,0x0B,0x28,0xE6,0xD1, + 0xFE,0xF7,0xE8,0xF9,0x28,0x78,0x00,0x28,0xD9,0xD0,0x01,0xF0,0x23,0xFF,0xD6,0xE7, + 0x78,0x68,0x80,0x07,0xFC,0xD5,0xEE,0xE7,0x00,0x78,0x00,0x00,0x00,0x40,0x00,0x30, + 0xF8,0x0A,0x00,0x20,0x70,0xB5,0x21,0x49,0x1F,0x4A,0xCB,0x88,0x05,0x00,0x10,0x7A, + 0x1F,0x49,0x5C,0x06,0x00,0xD4,0x08,0x79,0x1E,0x4C,0xA4,0x8A,0x00,0x19,0x06,0x06, + 0xD0,0x79,0x36,0x0E,0x5A,0x06,0x00,0xD4,0xC8,0x78,0x1B,0x49,0x2C,0x78,0x4A,0x7C, + 0x00,0x2A,0x0F,0xD1,0x8A,0x7C,0x00,0x2A,0x01,0xD0,0x80,0x1C,0x08,0xE0,0xCA,0x7C, + 0x00,0x2A,0x01,0xD0,0x00,0x1D,0x03,0xE0,0x09,0x7D,0x00,0x29,0x02,0xD0,0x80,0x1D, + 0x00,0x06,0x00,0x0E,0x00,0x2C,0x0A,0xD0,0x84,0x42,0x08,0xD3,0x14,0x21,0x20,0x00, + 0xFC,0xF7,0xD0,0xFD,0x76,0x1C,0xB0,0x42,0x05,0xD2,0x14,0x2C,0x07,0xD3,0x00,0x20, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x14,0x2C,0x01,0xD3,0xF0,0x20,0x00,0xE0,0x13,0x20, + 0x28,0x70,0x01,0x20,0xF4,0xE7,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x60,0x79,0x00,0x00,0xD0,0x0A,0x00,0x20,0x70,0x08,0x00,0x20,0x10,0xB5,0x08,0x24, + 0x20,0x00,0xFE,0xF7,0x5B,0xFA,0x64,0x1E,0xFA,0xD5,0x05,0x48,0x01,0x22,0x41,0x7C, + 0x01,0x29,0x01,0xD8,0x00,0x29,0x00,0xD1,0x42,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0xA0,0x78,0x00,0x00,0x19,0x22,0x10,0xB5,0x06,0x48,0x52,0x01,0x00,0x21,0x01,0xF0, + 0x3B,0xFA,0x51,0x22,0x04,0x48,0xD2,0x00,0x00,0x21,0x01,0xF0,0x35,0xFA,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0xC8,0x02,0x00,0x20,0x40,0x00,0x00,0x20,0x10,0xB5,0x40,0x22, + 0xD4,0x05,0x00,0x21,0x20,0x00,0x01,0xF0,0x27,0xFA,0x01,0x20,0xA0,0x63,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x14,0x48,0x10,0xB5,0x44,0x08,0x14,0x49,0x14,0x48,0x62,0x00, + 0x01,0xF0,0x06,0xFA,0x10,0x48,0xC0,0x07,0x08,0xD0,0x0F,0x48,0xC2,0x07,0x0F,0x48, + 0xD2,0x0F,0x01,0x19,0x0E,0x48,0x00,0x19,0x01,0xF0,0xF2,0xF9,0x0D,0x48,0x00,0x21, + 0x84,0x08,0x0D,0x48,0xA2,0x00,0x01,0xF0,0x0F,0xFA,0x0A,0x48,0x80,0x07,0x07,0xD0, + 0x08,0x48,0x00,0x21,0x82,0x07,0x08,0x48,0x92,0x0F,0x00,0x19,0x01,0xF0,0xFC,0xF9, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0x71,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x46,0x06,0x00,0x00,0xF0,0x05,0x00,0x20,0x33,0x21,0x09,0x05, + 0x01,0x20,0x80,0x07,0x41,0x62,0x04,0x49,0x81,0x62,0x04,0x48,0xFF,0x21,0xC1,0x60, + 0x00,0x21,0x41,0x61,0x70,0x47,0x00,0x00,0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x40, + 0x02,0x49,0x03,0x48,0x01,0x60,0x20,0x21,0x41,0x60,0x70,0x47,0xDE,0x10,0x01,0x00, + 0x00,0x40,0x00,0x30,0x10,0xB5,0x00,0x24,0x20,0x00,0xFE,0xF7,0x4B,0xFA,0x64,0x1C, + 0x08,0x2C,0xF9,0xDB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x10,0xB5,0x01,0x24, + 0x64,0x03,0x20,0x00,0xFD,0xF7,0x5C,0xF8,0xFE,0xF7,0xE2,0xFC,0xFE,0xF7,0x0C,0xFD, + 0xFE,0xF7,0xD6,0xFC,0x07,0x48,0x01,0x68,0xF0,0x22,0x91,0x43,0x06,0x4A,0x12,0x7B, + 0x12,0x07,0x12,0x0E,0x11,0x43,0x01,0x60,0x20,0x00,0xFD,0xF7,0x41,0xF8,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0xA0,0x00,0x40,0x00,0x78,0x00,0x00,0x10,0xB5,0x01,0xF0, + 0xE7,0xFF,0x01,0xF0,0xC7,0xFF,0xFF,0x20,0xFD,0xF7,0x72,0xF8,0xFF,0xF7,0xAE,0xFF, + 0x11,0x48,0x80,0x22,0x00,0x21,0x01,0xF0,0x9F,0xF9,0x08,0x20,0xFD,0xF7,0x30,0xF8, + 0x00,0x22,0x0E,0x49,0xD2,0x43,0x00,0x20,0xFF,0xF7,0x02,0xFE,0x00,0xF0,0x1A,0xF8, + 0x0B,0x48,0x40,0x7A,0x00,0x28,0x04,0xD0,0x40,0x20,0xFD,0xF7,0x21,0xF8,0x00,0xF0, + 0x4D,0xF8,0x00,0xF0,0x37,0xF8,0x10,0x20,0x01,0xF0,0xB5,0xFF,0xFE,0xF7,0x10,0xFE, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x2C,0x0B,0x00,0x20,0x02,0x03,0x0F,0x0F, + 0x00,0x78,0x00,0x00,0xF8,0xB5,0x03,0x24,0xE6,0x01,0x13,0x25,0x30,0x00,0xFD,0xF7, + 0x07,0xF8,0x20,0x02,0xFD,0xF7,0x2E,0xF8,0x0C,0x48,0x0A,0x21,0x00,0x6B,0xFC,0xF7, + 0xC1,0xFC,0x02,0x00,0xFF,0x21,0x90,0x31,0x02,0x20,0x00,0x23,0x00,0x95,0x03,0xF0, + 0x1B,0xF8,0x07,0x4A,0x27,0x21,0x03,0x20,0x00,0x23,0x00,0x94,0x03,0xF0,0x14,0xF8, + 0x30,0x00,0xFC,0xF7,0xE5,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00, + 0xE8,0xFD,0x00,0x00,0x10,0xB5,0x08,0x49,0x00,0x20,0xFF,0xF7,0xCB,0xFD,0x03,0xF0, + 0xF8,0xF8,0x7D,0x20,0xC0,0x00,0x03,0xF0,0xE7,0xF8,0x00,0x20,0xFF,0xF7,0xA8,0xFD, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x7D,0x70,0x00,0x00,0x0A,0x48,0x10,0xB5, + 0x00,0x6B,0x0A,0x49,0x0A,0x4C,0x88,0x42,0x05,0xD9,0x7D,0x21,0xC9,0x00,0xFC,0xF7, + 0x89,0xFC,0x64,0x30,0x01,0xE0,0xFF,0x20,0xF5,0x30,0x20,0x63,0x03,0xF0,0xA2,0xF8, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x78,0x00,0x00,0x07,0xA5,0x07,0x00, + 0xF8,0x0A,0x00,0x20,0x10,0xB5,0xFF,0xF7,0xD5,0xFE,0xFF,0xF7,0x43,0xFF,0x15,0x48, + 0x00,0x7A,0x02,0xF0,0x07,0xFF,0x13,0x48,0x13,0x4A,0xA0,0x30,0x41,0x89,0x00,0x24, + 0xD1,0x83,0x12,0x49,0x0C,0x60,0x4C,0x60,0x11,0x49,0xD2,0x88,0x49,0x79,0x52,0x06, + 0x02,0xD4,0x01,0x00,0xA0,0x31,0x49,0x78,0x0C,0x4A,0xC0,0x3A,0x51,0x73,0x09,0x49, + 0x80,0x31,0x0A,0x8B,0x09,0x49,0x40,0x39,0xCA,0x62,0x00,0x88,0x08,0x63,0xFF,0xF7, + 0x9D,0xFE,0x08,0x48,0xC4,0x83,0xFE,0xF7,0x19,0xFB,0x07,0x48,0x04,0x70,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20,0xF0,0x0A,0x00,0x20, + 0x00,0x7A,0x00,0x00,0x30,0x07,0x00,0x20,0xF9,0x0A,0x00,0x20,0xF7,0xB5,0x86,0xB0, + 0x00,0x27,0x2E,0x48,0x04,0xAB,0x02,0x97,0x03,0x97,0x81,0xC3,0x2C,0x4E,0xFE,0xF7, + 0xE9,0xFB,0xFE,0xF7,0x97,0xFC,0x2B,0x48,0x40,0x7F,0x01,0x90,0x29,0x48,0x20,0x38, + 0x40,0x7F,0x00,0x25,0x00,0x90,0x2A,0xE0,0x00,0x24,0x23,0xE0,0x21,0x00,0x28,0x00, + 0xFF,0xF7,0x38,0xFB,0x00,0x28,0x1C,0xD0,0x23,0x49,0x04,0x9A,0x09,0x78,0x69,0x43, + 0x09,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A,0x01,0x1E,0x00,0xDC, + 0x41,0x42,0x00,0x28,0x01,0xDB,0x01,0x98,0x00,0xE0,0x00,0x98,0x81,0x42,0x01,0xDD, + 0x01,0x22,0x05,0x92,0x08,0x1A,0xB0,0x42,0x03,0xDD,0x06,0x00,0x27,0x00,0x02,0x95, + 0x03,0x91,0x64,0x1C,0x14,0x48,0x00,0x78,0x84,0x42,0xD7,0xD3,0x6D,0x1C,0x13,0x48, + 0x00,0x78,0x85,0x42,0xD0,0xD3,0x08,0x99,0x03,0x98,0x08,0x60,0x10,0x48,0x00,0x69, + 0xC0,0x07,0x05,0xD0,0x07,0x98,0x07,0x60,0x06,0x99,0x02,0x98,0x08,0x60,0x04,0xE0, + 0x07,0x99,0x02,0x98,0x08,0x60,0x06,0x98,0x07,0x60,0x05,0x98,0x00,0x28,0x00,0xD0, + 0x04,0x20,0x09,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x02,0x10,0x40, + 0x78,0xEC,0xFF,0xFF,0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x00,0x90,0x00,0x40,0x78,0x47,0xC0,0x46,0x68,0x20,0x9F,0xE5,0x04,0xE0,0x2D,0xE5, + 0x5A,0x04,0xD2,0xE5,0x58,0xC0,0x9F,0xE5,0x01,0x00,0x10,0xE3,0x12,0x00,0x00,0x0A, + 0x54,0x10,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0x00,0x30,0xD1,0xE5,0x0B,0x00,0x00,0xEA, + 0x5A,0xE4,0xD2,0xE5,0x00,0x10,0x82,0xE0,0x89,0x14,0xD1,0xE5,0x02,0x00,0x1E,0xE3, + 0x88,0xE4,0xD2,0xE5,0x9E,0x13,0x21,0x00,0x93,0xE1,0x21,0x10,0x01,0x11,0x9C,0xE7, + 0x80,0xE0,0x82,0xE0,0x02,0x19,0xC1,0xE3,0x01,0x00,0x80,0xE2,0xB0,0x11,0xCE,0xE1, + 0x5B,0x14,0xD2,0xE5,0x00,0x00,0x51,0xE1,0xF0,0xFF,0xFF,0x8A,0x04,0xE0,0x9D,0xE4, + 0x1E,0xFF,0x2F,0xE1,0x00,0x10,0x10,0x40,0xF0,0x05,0x00,0x20,0xFB,0x0A,0x00,0x20, + 0xFF,0xB5,0x4E,0x4C,0x85,0xB0,0x24,0x78,0x0F,0x99,0x0E,0x9A,0x02,0x94,0x4C,0x4C, + 0xD7,0x00,0x26,0x79,0x00,0x20,0x05,0x00,0xB6,0x00,0x34,0x19,0xE0,0x34,0x10,0x26, + 0xA6,0x5F,0xB6,0x46,0x12,0x26,0xA6,0x5F,0xB4,0x46,0x76,0x46,0xB6,0x1C,0x34,0x04, + 0x24,0x14,0x66,0x46,0xB6,0x1C,0x01,0x94,0x34,0x04,0x24,0x14,0x00,0x94,0x3F,0x4C, + 0x07,0x9E,0x24,0x78,0x03,0x97,0x24,0x1D,0x04,0x94,0x06,0x9C,0x3C,0x19,0x01,0x2E, + 0x12,0xD0,0x02,0x2E,0x1B,0xD0,0x03,0x2E,0x54,0xD0,0x04,0x2E,0x26,0xD1,0x04,0x9D, + 0x00,0x98,0x02,0x9E,0x68,0x43,0x01,0x9D,0xED,0x18,0x40,0x19,0x05,0x06,0x2D,0x0E, + 0x60,0x46,0x70,0x43,0xE6,0x88,0x16,0xE0,0x00,0x98,0x04,0x9D,0xC0,0x1A,0x68,0x43, + 0x01,0x9D,0x06,0x9E,0x40,0x19,0x05,0x06,0xF0,0x5B,0x2D,0x0E,0x08,0xE0,0x00,0x98, + 0x04,0x9D,0xC0,0x18,0x68,0x43,0x01,0x9D,0x40,0x19,0x05,0x06,0x60,0x88,0x2D,0x0E, + 0x02,0x9E,0x70,0x43,0x76,0x46,0x80,0x19,0x00,0x06,0x00,0x0E,0x25,0x4E,0x6D,0x00, + 0x75,0x5F,0x25,0x4E,0x16,0x27,0xF7,0x5F,0xBD,0x42,0x3D,0xDD,0x07,0x9D,0x01,0x2D, + 0x2D,0xD0,0x02,0x2D,0x31,0xD0,0x03,0x2D,0x32,0xD0,0x04,0x2D,0x06,0xD1,0x73,0x44, + 0xE3,0x80,0x0B,0x00,0x00,0xD1,0x13,0x00,0x05,0x9C,0x23,0x54,0x18,0x4C,0x53,0x00, + 0x1B,0x19,0xFF,0x33,0x41,0x33,0x00,0x29,0x04,0xD0,0x05,0x99,0x52,0x1E,0x08,0x5C, + 0x90,0x42,0x02,0xD0,0xD8,0x88,0x40,0x1C,0xD8,0x80,0x01,0x20,0x09,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x04,0x9D,0x00,0x98,0x02,0x9E,0x68,0x43,0x01,0x9D,0x40,0x19, + 0xC0,0x1A,0x05,0x06,0x2D,0x0E,0x60,0x46,0x70,0x43,0xA6,0x88,0xC3,0xE7,0x64,0x46, + 0xE3,0x1A,0x06,0x9D,0x03,0x9C,0x2B,0x53,0xD3,0xE7,0x63,0x44,0x63,0x80,0xD0,0xE7, + 0x75,0x46,0xEB,0x1A,0xA3,0x80,0xCC,0xE7,0x00,0x20,0xDF,0xE7,0xFB,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xC8,0x02,0x00,0x20,0x30,0x07,0x00,0x20,0x88,0x42,0x00,0xDA, + 0x08,0x00,0x70,0x47,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00, + 0x70,0x47,0x10,0xB5,0x02,0x9C,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA, + 0x10,0x00,0x22,0x00,0x19,0x00,0xFF,0xF7,0xED,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x02,0x00,0x08,0x00,0x8A,0x42,0x00,0xDC, + 0x10,0x00,0x70,0x47,0xF0,0xB5,0xE6,0x48,0xE6,0x4F,0x86,0x89,0xF8,0x88,0xFD,0xB0, + 0x41,0x06,0x02,0xD4,0xE2,0x49,0xC0,0x39,0x0E,0x89,0xE3,0x49,0x09,0x78,0x74,0x91, + 0xE2,0x49,0x0A,0x78,0x74,0x99,0x91,0x42,0x73,0x92,0x00,0xD8,0x11,0x00,0x72,0x91, + 0x00,0x21,0x6D,0x91,0x6C,0x91,0xDA,0x49,0xDD,0x4D,0x20,0x39,0x7C,0x91,0x8C,0x8B, + 0x40,0x06,0x00,0xD4,0x2C,0x8B,0xDB,0x48,0x08,0x22,0x00,0x21,0x00,0xF0,0x44,0xFF, + 0xD8,0x48,0x10,0x22,0x00,0x21,0x08,0x30,0x00,0xF0,0x3E,0xFF,0xFF,0x22,0x01,0x32, + 0x00,0x21,0x2C,0xA8,0x00,0xF0,0x38,0xFF,0x48,0x22,0x00,0x21,0x1A,0xA8,0x00,0xF0, + 0x33,0xFF,0x20,0x22,0x00,0x21,0x12,0xA8,0x00,0xF0,0x2E,0xFF,0x20,0x22,0x00,0x21, + 0x0A,0xA8,0x00,0xF0,0x29,0xFF,0x20,0x22,0x00,0x21,0x02,0xA8,0x00,0xF0,0x24,0xFF, + 0xC4,0x48,0x64,0x21,0x00,0x89,0x07,0x00,0x70,0x43,0xFC,0xF7,0xA1,0xF9,0xC5,0x49, + 0xC0,0x4A,0x89,0x1C,0x7B,0x91,0xBF,0x49,0xC9,0x89,0x40,0x18,0x7B,0x99,0xC8,0x82, + 0xC1,0x48,0x00,0x21,0x01,0x81,0x7C,0x99,0xD2,0x88,0x89,0x7F,0x06,0x00,0x38,0x00, + 0x52,0x06,0x00,0xD4,0xA9,0x7E,0x48,0x43,0x64,0x21,0xFC,0xF7,0x63,0xFA,0x00,0x04, + 0x00,0x14,0xA0,0x42,0x70,0x81,0x00,0xDA,0x74,0x81,0xB2,0x48,0x01,0x79,0x00,0x29, + 0x7D,0xD0,0x00,0x27,0xDC,0xE0,0xAF,0x48,0xB9,0x00,0x08,0x18,0xE0,0x30,0x10,0x25, + 0x12,0x21,0x45,0x5F,0x41,0x5E,0x01,0x20,0x7E,0x1C,0x75,0x91,0x6F,0x90,0x6E,0x90, + 0x71,0x90,0x70,0x90,0xF0,0x00,0x1A,0xAA,0x7A,0x90,0x11,0x52,0x80,0x18,0x75,0x99, + 0x79,0x90,0x41,0x80,0x85,0x80,0x00,0x2F,0xC5,0x80,0x20,0xDD,0x38,0x00,0x1A,0xAC, + 0x1A,0xE0,0xC2,0x00,0x11,0x19,0x04,0x23,0xCB,0x5E,0xAB,0x42,0x13,0xDC,0x06,0x23, + 0xCB,0x5E,0xAB,0x42,0x0F,0xDB,0xA2,0x5E,0x75,0x9B,0x9A,0x42,0x0B,0xDC,0x02,0x22, + 0x8A,0x5E,0x9A,0x42,0x07,0xDB,0x01,0x06,0x09,0x0E,0x6D,0x91,0x6C,0x99,0x49,0x1C, + 0x09,0x06,0x09,0x0E,0x6C,0x91,0x40,0x1E,0x00,0x28,0xE2,0xDC,0x01,0xE0,0x00,0x20, + 0x6D,0x90,0x00,0x24,0x5C,0xE0,0x6F,0x98,0x01,0x28,0x0D,0xD1,0xA5,0x42,0x0B,0xDB, + 0x31,0x06,0x6D,0x9A,0x09,0x0E,0x68,0x46,0x06,0xC0,0x23,0x00,0x01,0x22,0x1A,0xA9, + 0x2C,0xA8,0xFF,0xF7,0x75,0xFE,0x00,0xE0,0x00,0x20,0x00,0x2C,0x6F,0x90,0x3E,0xDD, + 0x6E,0x98,0x01,0x28,0x10,0xD1,0x75,0x98,0x73,0x99,0x00,0x19,0x88,0x42,0x0B,0xDA, + 0x31,0x06,0x6D,0x9A,0x09,0x0E,0x68,0x46,0x06,0xC0,0x23,0x00,0x02,0x22,0x1A,0xA9, + 0x2C,0xA8,0xFF,0xF7,0x5D,0xFE,0x00,0xE0,0x00,0x20,0x6E,0x90,0x71,0x98,0x01,0x28, + 0x0E,0xD1,0xA5,0x42,0x0C,0xDB,0x31,0x06,0x6D,0x9A,0x09,0x0E,0x68,0x46,0x06,0xC0, + 0x23,0x00,0x03,0x22,0x1A,0xA9,0x2C,0xA8,0xFF,0xF7,0x4A,0xFE,0x01,0xE0,0xDB,0xE0, + 0x00,0x20,0x71,0x90,0x70,0x98,0x01,0x28,0x0F,0xD1,0x74,0x99,0x28,0x19,0x88,0x42, + 0x0B,0xDA,0x31,0x06,0x6D,0x9A,0x09,0x0E,0x68,0x46,0x06,0xC0,0x23,0x00,0x04,0x22, + 0x1A,0xA9,0x2C,0xA8,0xFF,0xF7,0x34,0xFE,0x00,0xE0,0x00,0x20,0x70,0x90,0x6E,0x99, + 0x6F,0x98,0x08,0x43,0x71,0x99,0x08,0x43,0x70,0x99,0x08,0x43,0x03,0xD0,0x64,0x1C, + 0x72,0x98,0x84,0x42,0x9F,0xDB,0x6D,0x98,0x00,0x28,0x38,0xD0,0x5D,0x49,0x40,0x00, + 0x40,0x18,0x72,0x00,0x52,0x18,0xFF,0x30,0xFF,0x32,0x41,0x30,0x41,0x32,0xC3,0x88, + 0xD1,0x88,0x59,0x18,0xC1,0x80,0x7A,0x98,0x1A,0xAB,0x19,0x5E,0x6D,0x98,0xC0,0x00, + 0x1C,0x5E,0xA1,0x42,0x00,0xDA,0x19,0x52,0x79,0x9C,0x02,0x21,0x61,0x5E,0xC0,0x18, + 0x02,0x24,0x04,0x5F,0xA1,0x42,0x00,0xDD,0x41,0x80,0x79,0x9C,0x04,0x21,0x61,0x5E, + 0x04,0x24,0x04,0x5F,0xA1,0x42,0x00,0xDA,0x81,0x80,0x79,0x9C,0x06,0x21,0x61,0x5E, + 0x06,0x24,0x04,0x5F,0xA1,0x42,0x00,0xDD,0xC1,0x80,0x00,0x20,0xD0,0x80,0x7A,0x99, + 0x58,0x52,0x79,0x99,0x48,0x80,0x79,0x99,0x88,0x80,0x79,0x99,0xC8,0x80,0x7F,0x1C, + 0x40,0x48,0x01,0x79,0xB9,0x42,0x00,0xDD,0x1D,0xE7,0x02,0x79,0x6C,0x99,0x51,0x1A, + 0x01,0x24,0x01,0x71,0x6C,0xE0,0xE0,0x00,0x1A,0xA9,0x0B,0x5E,0x41,0x18,0x02,0x20, + 0x77,0x91,0x08,0x5E,0x9B,0x1C,0x80,0x1C,0x76,0x90,0x41,0xE0,0x77,0x98,0x04,0x21, + 0x41,0x5E,0x02,0x00,0x06,0x20,0x10,0x5E,0x89,0x1C,0x80,0x1C,0x78,0x90,0x33,0xE0, + 0x74,0x9A,0x98,0x1E,0x84,0x46,0x50,0x43,0x8D,0x1E,0x2C,0xAA,0x52,0x19,0x80,0x5C, + 0x00,0x28,0x27,0xD0,0x74,0x98,0x31,0x4E,0x00,0x1D,0x58,0x43,0x40,0x18,0x40,0x00, + 0x30,0x5E,0x7B,0x9F,0x16,0x26,0xBE,0x5F,0x00,0x22,0xB0,0x42,0x00,0xDD,0x82,0x1B, + 0x24,0x4F,0x6D,0x00,0xED,0x19,0x2D,0x8C,0xA0,0x00,0x12,0xAE,0x55,0x43,0x36,0x58, + 0x75,0x19,0x12,0xAE,0x35,0x50,0x66,0x46,0x76,0x00,0xF6,0x19,0x40,0x36,0xB6,0x88, + 0x0A,0xAD,0x2D,0x58,0x56,0x43,0xAD,0x19,0x0A,0xAE,0x35,0x50,0x02,0xAD,0x2E,0x58, + 0xB2,0x18,0x2A,0x50,0x78,0x98,0x49,0x1C,0x88,0x42,0xC9,0xDA,0x76,0x98,0x5B,0x1C, + 0x98,0x42,0xBB,0xDA,0xA5,0x00,0x02,0xA8,0x46,0x59,0x00,0x2E,0x12,0xD0,0x12,0xA8, + 0x40,0x59,0x31,0x00,0xFC,0xF7,0x16,0xF9,0x0E,0x49,0x62,0x00,0x57,0x18,0xFF,0x21, + 0x1F,0x31,0xC8,0x53,0x0A,0xA8,0x40,0x59,0x31,0x00,0xFC,0xF7,0x0B,0xF9,0xFF,0x37, + 0x21,0x37,0xF8,0x81,0x07,0x48,0x00,0x19,0xFF,0x30,0x21,0x30,0x44,0x77,0x64,0x1C, + 0x04,0x48,0x00,0x79,0xA0,0x42,0x8E,0xDA,0x7D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x20,0x79,0x00,0x00,0x2E,0x07,0x00,0x20,0x30,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20, + 0xF0,0xB5,0x00,0x20,0xE7,0xB0,0x42,0x90,0x32,0x90,0x0D,0x90,0xFF,0x48,0x66,0x90, + 0x02,0x8A,0xFF,0x49,0xC8,0x88,0x43,0x06,0x02,0xD4,0xFC,0x4A,0xC0,0x3A,0x92,0x89, + 0xFA,0x4D,0xFC,0x4C,0x20,0x35,0x0C,0x92,0xAA,0x89,0x43,0x06,0x00,0xD4,0x22,0x89, + 0xF9,0x4B,0x0B,0x92,0xF5,0x4A,0x40,0x32,0x65,0x92,0x52,0x89,0x46,0x06,0x64,0x93, + 0x00,0xD4,0xDA,0x88,0x43,0x06,0x0A,0x92,0x65,0x9A,0x12,0x79,0x01,0xD4,0x64,0x9A, + 0x12,0x78,0x43,0x06,0x09,0x92,0x65,0x9A,0x52,0x79,0x01,0xD4,0x64,0x9A,0x52,0x78, + 0x43,0x06,0x08,0x92,0x65,0x9A,0x12,0x8B,0x01,0xD4,0x64,0x9A,0x92,0x8A,0x40,0x06, + 0x07,0x92,0x2F,0x89,0x00,0xD4,0xA7,0x88,0xE8,0x48,0x29,0x22,0x06,0x78,0xE8,0x48, + 0x00,0x78,0x06,0x90,0xE2,0x48,0xC0,0x89,0x05,0x90,0x01,0x20,0x04,0x90,0x00,0x20, + 0x01,0x00,0x02,0x90,0x0E,0xA8,0x00,0xF0,0x3F,0xFD,0xE2,0x48,0xDC,0x49,0x08,0x81, + 0xDB,0x48,0x00,0x21,0x81,0x81,0x41,0x81,0xC0,0x30,0x63,0x90,0x41,0x80,0xA0,0x30, + 0x62,0x90,0x40,0x78,0xDC,0x49,0x02,0x28,0x61,0x91,0x53,0xD9,0xD4,0x4A,0x69,0x8A, + 0xD2,0x88,0x52,0x06,0x00,0xD4,0xE1,0x89,0x36,0x91,0xD8,0x49,0x36,0x9A,0x60,0x91, + 0x89,0x8B,0x89,0x18,0x37,0x91,0x0C,0x99,0xC9,0x04,0x25,0xD5,0x01,0x28,0x0C,0xD9, + 0xCB,0x4A,0xE9,0x7A,0xD2,0x88,0x52,0x06,0x00,0xD4,0xE1,0x79,0x48,0x43,0x00,0x06, + 0x00,0x0E,0x04,0x90,0x01,0xD1,0x01,0x20,0x04,0x90,0x63,0x99,0xC4,0x4A,0x00,0x20, + 0x08,0x5E,0xD2,0x88,0xA9,0x7A,0x52,0x06,0x00,0xD4,0xA1,0x79,0x48,0x43,0x64,0x21, + 0xFB,0xF7,0x86,0xFF,0x00,0x04,0x00,0x0C,0xB8,0x42,0x00,0xD2,0x38,0x00,0x04,0x99, + 0xFC,0xF7,0x58,0xF8,0x63,0x99,0x48,0x80,0xB9,0x49,0x65,0x98,0xC9,0x88,0x40,0x8B, + 0x49,0x06,0x01,0xD4,0x64,0x98,0xC0,0x8A,0x61,0x99,0x89,0x8B,0x40,0x18,0x37,0x99, + 0x35,0x90,0x88,0x42,0x34,0x91,0x00,0xD2,0x37,0x90,0x02,0x20,0x4D,0x90,0xAF,0x48, + 0xC0,0x30,0x5F,0x90,0xB4,0x48,0xA0,0x38,0x5E,0x90,0x06,0x98,0x80,0x1C,0x53,0x90, + 0x4D,0x98,0x95,0xE3,0x02,0x28,0x08,0xD1,0xA9,0x4A,0x29,0x8A,0xD2,0x88,0x52,0x06, + 0x00,0xD4,0xA1,0x89,0x61,0x9A,0x52,0x8B,0x0E,0xE0,0xAD,0x49,0x09,0x78,0x00,0x29, + 0x02,0xD0,0xAC,0x49,0x89,0x89,0x05,0xE0,0xA1,0x4A,0xE9,0x89,0xD2,0x88,0x52,0x06, + 0x00,0xD4,0x61,0x89,0x61,0x9A,0x12,0x8B,0x89,0x18,0x95,0xE7,0x02,0x24,0xB0,0x1C, + 0x54,0x90,0x6A,0xE3,0x4D,0x98,0x54,0x99,0x40,0x1E,0x48,0x43,0x61,0x1E,0x40,0x18, + 0x00,0x04,0x07,0x14,0xA0,0x49,0x78,0x00,0x5D,0x90,0x08,0x5E,0x37,0x99,0x09,0x04, + 0x09,0x14,0x88,0x42,0x7B,0xDB,0x78,0x1C,0xC1,0x10,0x0E,0xAA,0x52,0x5C,0x41,0x07, + 0x49,0x0F,0x01,0x20,0x88,0x40,0x02,0x40,0xF8,0x10,0x0E,0xA9,0x5C,0x90,0x09,0x5C, + 0x7B,0x07,0x5B,0x0F,0x01,0x20,0x98,0x40,0x01,0x40,0x5B,0x90,0x78,0x1E,0xC3,0x10, + 0x0E,0xAD,0xEB,0x5C,0x45,0x07,0x6D,0x0F,0x01,0x20,0xA8,0x40,0x18,0x40,0x01,0xF0, + 0x4F,0xFC,0x01,0x90,0xB8,0x1B,0x41,0x1E,0xCA,0x10,0x0E,0xAB,0x9A,0x5C,0x4B,0x07, + 0x5B,0x0F,0x01,0x21,0x99,0x40,0x0A,0x40,0x83,0x1E,0xD9,0x10,0x0E,0xAD,0x69,0x5C, + 0x5D,0x07,0x6D,0x0F,0x01,0x23,0xAB,0x40,0x19,0x40,0xC0,0x1E,0xC3,0x10,0x0E,0xAD, + 0xEB,0x5C,0x45,0x07,0x6D,0x0F,0x01,0x20,0xA8,0x40,0x18,0x40,0x01,0xF0,0x30,0xFC, + 0x01,0x99,0x01,0xF0,0x2B,0xFC,0x00,0x28,0x39,0xD1,0x7B,0x48,0x32,0x00,0x39,0x00, + 0x02,0x23,0xFE,0xF7,0x29,0xFF,0x37,0x99,0x88,0x42,0xB3,0xDB,0x76,0x49,0x5D,0x9A, + 0x89,0x5E,0x81,0x42,0xF0,0xD1,0x6A,0x4F,0xBA,0x89,0x82,0x42,0x00,0xDA,0xB8,0x81, + 0x5C,0x9A,0x0E,0xAB,0x9A,0x5C,0x5B,0x9D,0x2A,0x43,0x5C,0x9D,0x5A,0x55,0x64,0x4A, + 0x92,0x89,0x82,0x42,0x05,0xD1,0x62,0x48,0x00,0x79,0x40,0x1C,0x00,0x06,0x00,0x0E, + 0x0D,0x90,0x00,0x20,0x05,0x00,0x03,0x90,0x5E,0x98,0x80,0x7E,0xC2,0x07,0x20,0xD0, + 0x80,0x07,0x0D,0xD5,0x30,0x1B,0x40,0x1C,0x00,0xD1,0x75,0x1E,0xA6,0x42,0x04,0xD1, + 0x01,0x22,0x30,0x04,0x52,0x04,0x80,0x1A,0x05,0x43,0x01,0x20,0x10,0xE0,0xA4,0xE0, + 0x4D,0x9A,0x06,0x98,0x80,0x1A,0x40,0x1C,0x01,0xD1,0x06,0x9D,0x6D,0x1E,0x06,0x98, + 0x90,0x42,0x04,0xD1,0x01,0x22,0x00,0x04,0x12,0x05,0x80,0x1A,0x05,0x43,0x02,0x20, + 0x03,0x90,0x28,0x04,0x01,0xD0,0x35,0x98,0x00,0xE0,0x34,0x98,0x00,0x04,0x00,0x14, + 0x81,0x42,0xB2,0xDB,0x4D,0x99,0x30,0x1D,0x41,0x43,0x5A,0x90,0x08,0x19,0x00,0x04, + 0x00,0x14,0x33,0x90,0x0C,0x98,0xC0,0x04,0x0C,0xD5,0x33,0x98,0x4B,0x49,0x40,0x00, + 0x08,0x5E,0x05,0x99,0x40,0x1A,0x00,0x28,0x77,0xDD,0x63,0x9A,0x02,0x21,0x51,0x5E, + 0x81,0x42,0x72,0xDA,0x04,0x20,0x4E,0x90,0x20,0x18,0x59,0x90,0x4E,0x98,0x04,0x27, + 0x80,0x00,0x58,0x90,0x59,0x98,0x00,0x1F,0x0D,0xD4,0x59,0x98,0x00,0x1F,0xB0,0x42, + 0x09,0xDA,0x4D,0x98,0xC0,0x19,0x57,0x90,0x00,0x1F,0x04,0xD4,0x57,0x98,0x06,0x99, + 0x00,0x1F,0x88,0x42,0x07,0xDB,0x14,0x20,0x78,0x43,0x00,0x21,0x19,0xAA,0x80,0x18, + 0x58,0x9A,0x81,0x50,0x27,0xE0,0x05,0x98,0x0C,0x99,0x00,0x04,0x00,0x14,0xC9,0x04, + 0x04,0xD5,0x04,0x99,0xFB,0xF7,0x54,0xFE,0x00,0x04,0x00,0x14,0x57,0x99,0x5A,0x9A, + 0x89,0x1E,0x51,0x43,0x59,0x9A,0x89,0x18,0x2C,0x4A,0x49,0x00,0x89,0x18,0x20,0x39, + 0x89,0x8B,0x08,0x1A,0x00,0x04,0x00,0x14,0x00,0xD5,0x00,0x20,0x07,0x99,0x00,0x29, + 0x03,0xD0,0x88,0x42,0x01,0xDD,0x08,0x04,0x00,0x14,0x14,0x21,0x79,0x43,0x19,0xAA, + 0x89,0x18,0x58,0x9A,0x88,0x50,0x7F,0x1E,0x3F,0x04,0x3F,0x14,0xBA,0xD5,0x4E,0x98, + 0x40,0x1E,0x00,0x04,0x00,0x14,0x4E,0x90,0xAE,0xD5,0x33,0x98,0x1B,0x4A,0x40,0x00, + 0x84,0x46,0x80,0x18,0x01,0x00,0x20,0x39,0x1E,0x23,0xCB,0x5E,0x05,0x99,0x59,0x1A, + 0x41,0x91,0x02,0x21,0x41,0x5E,0x05,0x98,0x05,0x9B,0x08,0x1A,0x40,0x90,0x33,0x98, + 0x18,0x21,0x80,0x1B,0x40,0x00,0x80,0x18,0x20,0x38,0x41,0x5E,0xC9,0x1A,0x3F,0x91, + 0x33,0x99,0x89,0x19,0x49,0x00,0x89,0x18,0x1A,0xE0,0x3B,0xE1,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x00,0x79,0x00,0x00,0x20,0x79,0x00,0x00,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0xFF,0x0F,0x00,0x00,0xD0,0x0A,0x00,0x20,0xF0,0x06,0x00,0x20, + 0x04,0x0B,0x00,0x20,0xA0,0x7A,0x00,0x00,0x40,0x00,0x00,0x20,0xC8,0x02,0x00,0x20, + 0x08,0x23,0xCB,0x5E,0x05,0x9F,0xDB,0x1B,0x3E,0x93,0x16,0x23,0xC3,0x5E,0xDB,0x1B, + 0x3D,0x93,0x06,0x23,0xCB,0x5E,0xDB,0x1B,0x3C,0x93,0x1A,0x23,0xC3,0x5E,0xD8,0x1B, + 0x3B,0x90,0x0A,0x20,0x08,0x5E,0x0B,0x99,0xC0,0x1B,0x3A,0x90,0x60,0x46,0x10,0x5E, + 0xC0,0x1B,0x48,0x43,0x64,0x21,0xFB,0xF7,0xD3,0xFD,0x38,0x90,0x26,0x98,0x02,0x04, + 0x24,0x98,0x12,0x14,0x03,0x04,0x21,0x98,0x00,0x92,0x02,0x04,0x20,0x98,0x1B,0x14, + 0x01,0x04,0x1F,0x98,0x12,0x14,0x00,0x04,0x09,0x14,0x00,0x14,0xFF,0xF7,0xB9,0xFB, + 0x07,0x00,0x2B,0x98,0x02,0x04,0x2A,0x98,0x12,0x14,0x01,0x04,0x29,0x98,0x09,0x14, + 0x00,0x04,0x00,0x14,0xFF,0xF7,0xA6,0xFB,0x01,0x00,0x38,0x00,0xFF,0xF7,0x9E,0xFB, + 0x25,0x99,0x7D,0x22,0x52,0x01,0x91,0x42,0x07,0xDD,0x81,0x42,0x05,0xDD,0x08,0x1A, + 0x51,0x10,0x88,0x42,0x01,0xDD,0x01,0x20,0x02,0x90,0xFB,0x48,0xFF,0x21,0xC0,0x88, + 0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06,0x01,0xD5,0x01,0x20,0x02,0x90,0xF7,0x48, + 0x00,0x78,0x00,0x28,0x47,0xD1,0x20,0xA9,0x06,0xC9,0x02,0x2C,0x14,0xD1,0x01,0xF0, + 0xCF,0xFA,0x07,0x00,0x00,0x21,0x26,0x9A,0x08,0x00,0x01,0xF0,0xC9,0xFA,0x2A,0xA9, + 0x06,0xC9,0x3F,0x18,0x00,0x20,0x01,0xF0,0xC3,0xFA,0x38,0x18,0x05,0x21,0xFB,0xF7, + 0x7F,0xFD,0x00,0x04,0x00,0x0C,0x13,0xE0,0x1F,0x98,0x01,0xF0,0xB9,0xFA,0x07,0x00, + 0x26,0x9A,0x24,0x98,0x00,0x21,0x01,0xF0,0xB3,0xFA,0x3F,0x18,0x29,0xA8,0x07,0xC8, + 0x01,0xF0,0xAE,0xFA,0x38,0x18,0xC1,0x17,0x49,0x0F,0x08,0x18,0x40,0x03,0x00,0x0C, + 0x25,0x99,0x09,0x1A,0x00,0x29,0x01,0xDC,0x25,0x99,0x41,0x1A,0x5F,0x98,0x02,0x8A, + 0xD9,0x48,0xC0,0x88,0x43,0x06,0x01,0xD4,0x66,0x9A,0x92,0x89,0x91,0x42,0x0A,0xDA, + 0x5F,0x99,0x25,0x9A,0x49,0x8A,0x40,0x06,0x01,0xD4,0x66,0x98,0xC1,0x89,0x8A,0x42, + 0x01,0xDA,0x28,0x04,0x7E,0xD0,0x00,0x2D,0x2B,0xD0,0x03,0x98,0xC0,0x07,0x16,0xD0, + 0x04,0x20,0x00,0x22,0x19,0xAB,0x29,0x04,0x06,0xD0,0x14,0x27,0x01,0x00,0x79,0x43, + 0x5A,0x50,0xC9,0x18,0x4A,0x60,0x05,0xE0,0x14,0x27,0x01,0x00,0x79,0x43,0xC9,0x18, + 0xCA,0x60,0x0A,0x61,0x40,0x1E,0x00,0x04,0x00,0x14,0xEC,0xD5,0x11,0xE0,0x04,0x20, + 0x00,0x22,0x19,0xAB,0x29,0x04,0x04,0xD0,0x81,0x00,0x5A,0x50,0xC9,0x18,0x4A,0x61, + 0x03,0xE0,0x81,0x00,0xC9,0x18,0xCA,0x63,0x0A,0x65,0x40,0x1E,0x00,0x04,0x00,0x14, + 0xF0,0xD5,0xBB,0x48,0x33,0x99,0x32,0x00,0x04,0x23,0xFE,0xF7,0x5D,0xFD,0xB6,0x49, + 0x0A,0x89,0x82,0x42,0x00,0xDD,0x08,0x81,0x4A,0x89,0x82,0x42,0x00,0xDA,0x48,0x81, + 0xB1,0x48,0x01,0x79,0x49,0x1C,0x0A,0x06,0x12,0x0E,0x02,0x71,0x92,0x00,0xA1,0x1E, + 0x12,0x18,0xE0,0x32,0x56,0x91,0x91,0x81,0x4D,0x99,0x89,0x1E,0x55,0x91,0x02,0x79, + 0x92,0x00,0x10,0x18,0xE0,0x30,0xC1,0x81,0x00,0x20,0x07,0x00,0x01,0x00,0x84,0x46, + 0x39,0x90,0x41,0x9A,0x38,0x98,0x82,0x42,0x06,0xDC,0x38,0x9A,0x3D,0x98,0x90,0x42, + 0x02,0xDC,0x3C,0x98,0x90,0x42,0x01,0xDD,0x01,0x20,0x39,0x90,0x38,0x9A,0x40,0x98, + 0x90,0x42,0x05,0xDC,0x3B,0x98,0x90,0x42,0x02,0xDC,0x3A,0x98,0x90,0x42,0x01,0xDD, + 0x01,0x20,0x84,0x46,0x3F,0x98,0x90,0x42,0x05,0xDC,0x3D,0x98,0x90,0x42,0x02,0xDC, + 0x3B,0x98,0x90,0x42,0x00,0xDD,0x01,0x27,0x3E,0x98,0x90,0x42,0x07,0xDC,0x3C,0x98, + 0x90,0x42,0x00,0xE0,0xF5,0xE0,0x02,0xDC,0x3A,0x98,0x90,0x42,0x00,0xDD,0x01,0x21, + 0x04,0x20,0x00,0x22,0x19,0xAD,0x39,0x9B,0x00,0x2B,0x02,0xD1,0x14,0x23,0x43,0x43, + 0xEA,0x50,0x63,0x46,0x00,0x2B,0x03,0xD1,0x14,0x23,0x43,0x43,0x5B,0x19,0x1A,0x61, + 0x00,0x2F,0x01,0xD1,0x83,0x00,0xEA,0x50,0x00,0x29,0x02,0xD1,0x83,0x00,0x5B,0x19, + 0x1A,0x65,0x40,0x1E,0x00,0x04,0x00,0x14,0xE5,0xD5,0x1D,0x9A,0x19,0xA8,0x00,0x92, + 0x0F,0xC8,0x01,0xF0,0xE8,0xF9,0x4A,0x90,0x22,0x9A,0x1E,0xA8,0x00,0x92,0x0F,0xC8, + 0x01,0xF0,0xE1,0xF9,0x27,0x9A,0x49,0x90,0x23,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0, + 0xDA,0xF9,0x2C,0x9A,0x48,0x90,0x28,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xD3,0xF9, + 0x31,0x9A,0x47,0x90,0x2D,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xCC,0xF9,0x46,0x90, + 0x00,0x90,0x47,0x9B,0x48,0x9A,0x49,0x99,0x4A,0x98,0x01,0xF0,0xC4,0xF9,0x00,0x28, + 0x4B,0x90,0x0F,0xD1,0x04,0x27,0x14,0x20,0x78,0x43,0x40,0x19,0x0A,0x22,0x00,0x21, + 0x00,0xF0,0xF2,0xF9,0x7F,0x1E,0x3F,0x04,0x3F,0x14,0xF4,0xD5,0x0A,0x20,0x48,0x90, + 0x25,0x90,0x4B,0x90,0x56,0x98,0x00,0x28,0x01,0xDC,0x00,0x20,0x0C,0xE0,0x2D,0x9A, + 0x00,0x92,0x28,0x9B,0x23,0x9A,0x1E,0x99,0x19,0x98,0x01,0xF0,0xA4,0xF9,0x5A,0x4A, + 0x61,0x00,0x89,0x18,0x49,0x8B,0x48,0x43,0x2E,0x9A,0x45,0x90,0x00,0x92,0x29,0x9B, + 0x24,0x9A,0x1F,0x99,0x1A,0x98,0x01,0xF0,0x96,0xF9,0x53,0x49,0x62,0x00,0x55,0x18, + 0xA9,0x8B,0x2F,0x9A,0x2A,0x9B,0x48,0x43,0x44,0x90,0x00,0x92,0x25,0x9A,0x20,0x99, + 0x1B,0x98,0x01,0xF0,0x88,0xF9,0xE9,0x8B,0x30,0x9A,0x2B,0x9B,0x48,0x43,0x43,0x90, + 0x00,0x92,0x26,0x9A,0x21,0x99,0x1C,0x98,0x01,0xF0,0x7D,0xF9,0x29,0x8C,0x48,0x43, + 0x56,0x99,0x07,0x00,0x70,0x1E,0x81,0x42,0x01,0xDB,0x00,0x20,0x09,0xE0,0x31,0x9A, + 0x2C,0x9B,0x00,0x92,0x27,0x9A,0x22,0x99,0x1D,0x98,0x01,0xF0,0x6C,0xF9,0x69,0x8C, + 0x48,0x43,0x00,0x90,0x43,0x9A,0x44,0x99,0x45,0x98,0x3B,0x00,0x01,0xF0,0x63,0xF9, + 0x4B,0x99,0xFB,0xF7,0x1D,0xFC,0x38,0x49,0x0A,0x8C,0x52,0x00,0x80,0x1A,0x00,0xD5, + 0x00,0x20,0x0A,0x79,0x52,0x00,0x52,0x18,0xC0,0x32,0x90,0x81,0x55,0x98,0x00,0x28, + 0x01,0xDC,0x00,0x20,0x05,0xE0,0x4D,0x98,0x4A,0x9A,0x40,0x00,0x40,0x18,0xC0,0x8F, + 0x50,0x43,0x4D,0x9A,0x2C,0x49,0x52,0x00,0x52,0x18,0x40,0x32,0x11,0x88,0x49,0x9B, + 0x48,0x9D,0x59,0x43,0x53,0x88,0x06,0x9F,0x6B,0x43,0x9C,0x46,0x93,0x88,0x47,0x9D, + 0x7F,0x1E,0x6B,0x43,0x55,0x9D,0xBD,0x42,0x01,0xDB,0x00,0x22,0x02,0xE0,0xD2,0x88, + 0x46,0x9D,0x6A,0x43,0x00,0x92,0x62,0x46,0x01,0xF0,0x2D,0xF9,0x4B,0x99,0xFB,0xF7, + 0xE7,0xFB,0x1D,0x49,0x40,0x31,0x89,0x88,0x49,0x00,0x40,0x1A,0x00,0xD5,0x00,0x20, + 0x19,0x49,0x0A,0x79,0x52,0x00,0x52,0x18,0xC0,0x32,0xD0,0x83,0x08,0x79,0x08,0x28, + 0x12,0xD2,0x64,0x1C,0x54,0x98,0x24,0x04,0x24,0x14,0x84,0x42,0x00,0xDA,0x91,0xE4, + 0x42,0x98,0x00,0x28,0x08,0xD1,0x4D,0x98,0x40,0x1C,0x00,0x04,0x00,0x14,0x4D,0x90, + 0x53,0x99,0x88,0x42,0x00,0xDA,0x81,0xE4,0x0C,0x98,0x00,0x06,0x60,0xD5,0x0A,0x4C, + 0x20,0x79,0x00,0x28,0x60,0x98,0x15,0xD1,0x80,0x8B,0x00,0x28,0x51,0xD0,0x60,0x98, + 0x65,0x99,0xE2,0x88,0x40,0x7E,0x09,0x7B,0x52,0x06,0x01,0xD4,0x64,0x99,0x09,0x7A, + 0x88,0x42,0x46,0xD2,0x40,0x1C,0x41,0xE0,0xF0,0x05,0x00,0x20,0x05,0x0B,0x00,0x20, + 0xC8,0x02,0x00,0x20,0x80,0x7E,0x09,0x99,0x88,0x42,0x36,0xD8,0x40,0x1C,0x60,0x99, + 0x00,0x06,0x00,0x0E,0x88,0x76,0x08,0x99,0x88,0x42,0x03,0xD9,0xA1,0x89,0x32,0x9A, + 0x89,0x18,0x32,0x91,0x09,0x99,0x88,0x42,0x27,0xD1,0x08,0x99,0x88,0x42,0x24,0xD0, + 0x41,0x1A,0x32,0x98,0xFB,0xF7,0x66,0xFC,0x60,0x9A,0x00,0x21,0x91,0x83,0x65,0x99, + 0x0A,0x89,0xE1,0x88,0x4B,0x06,0x01,0xD4,0x64,0x9A,0x92,0x88,0x82,0x42,0x14,0xD2, + 0x36,0x9A,0x80,0x1A,0x65,0x9A,0x49,0x06,0x92,0x79,0x01,0xD4,0x64,0x99,0x8A,0x78, + 0x64,0x21,0x50,0x43,0xFB,0xF7,0x4E,0xFC,0x60,0x99,0x00,0x04,0x00,0x0C,0x88,0x83, + 0x0A,0x99,0x88,0x42,0x01,0xD9,0x60,0x98,0x81,0x83,0x00,0x20,0x60,0x99,0x48,0x76, + 0x06,0xE0,0x60,0x99,0x00,0x20,0x88,0x76,0x60,0x99,0x48,0x76,0x60,0x99,0x88,0x83, + 0x00,0x20,0x84,0x46,0x4C,0x90,0x59,0x48,0x01,0x24,0x00,0x79,0x50,0x90,0x52,0xE0, + 0x56,0x48,0x61,0x00,0x0F,0x18,0xC0,0x37,0xB8,0x89,0x0A,0x21,0xFB,0xF7,0x2A,0xFC, + 0x05,0x04,0xF8,0x8B,0x2D,0x14,0x0A,0x21,0xFB,0xF7,0x24,0xFC,0x5E,0x99,0x02,0x04, + 0xC9,0x7E,0x12,0x14,0x00,0x20,0x84,0x46,0x51,0x91,0x36,0xE0,0x4B,0x49,0xC3,0x00, + 0x5B,0x18,0x11,0x21,0x89,0x01,0x59,0x18,0x1C,0x27,0x52,0x91,0xCF,0x5F,0xAF,0x42, + 0x27,0xDC,0x23,0x21,0x49,0x01,0x59,0x18,0x00,0x23,0xCB,0x5E,0xAB,0x42,0x20,0xDB, + 0x52,0x9F,0x1E,0x23,0xFB,0x5E,0x93,0x42,0x1B,0xDC,0x02,0x27,0xCF,0x5F,0x3F,0x4B, + 0x97,0x42,0x16,0xDB,0xA1,0x00,0xC9,0x18,0xE0,0x31,0x0E,0x23,0xCB,0x5E,0x37,0x1D, + 0x9B,0x1C,0x7B,0x43,0x0C,0x27,0xCF,0x5F,0xD9,0x19,0x4B,0x00,0x38,0x49,0x5B,0x18, + 0x04,0x21,0x59,0x5E,0x4C,0x9B,0x99,0x42,0x03,0xDD,0x4C,0x91,0x21,0x06,0x09,0x0E, + 0x8C,0x46,0x40,0x1C,0x51,0x99,0x00,0x04,0x00,0x14,0x81,0x42,0xC6,0xDC,0x64,0x1C, + 0x50,0x98,0x24,0x04,0x24,0x14,0xA0,0x42,0xAA,0xDA,0x2C,0x4D,0x4C,0x9A,0x2C,0x00, + 0x23,0x00,0x69,0x89,0x20,0x00,0xDE,0x33,0xCC,0x30,0xC2,0x34,0x91,0x42,0x4F,0x93, + 0x05,0xDC,0x61,0x46,0x00,0x29,0x02,0xD0,0x49,0x00,0x49,0x19,0x0E,0xE0,0x69,0x79, + 0x00,0x29,0x1B,0xD1,0x50,0x99,0x01,0x29,0x18,0xD9,0x62,0x99,0x89,0x78,0x00,0x29, + 0x14,0xD1,0x0D,0x99,0x00,0x29,0x11,0xD0,0x4A,0x00,0x51,0x19,0xC0,0x31,0x8E,0x89, + 0xCF,0x8B,0x12,0x22,0x00,0x21,0x00,0xF0,0x57,0xF8,0x4F,0x98,0x12,0x22,0x00,0x21, + 0x00,0xF0,0x52,0xF8,0x01,0x20,0x28,0x71,0xA6,0x81,0xE7,0x83,0x5E,0x98,0xC0,0x7D, + 0x00,0x28,0x0C,0xD0,0x00,0x21,0x29,0x71,0x5E,0x98,0x12,0x4A,0x00,0x7E,0x92,0x7F, + 0x90,0x42,0x01,0xD3,0x5E,0x9A,0xD1,0x75,0x5E,0x99,0x40,0x1C,0x08,0x76,0x02,0x99, + 0x0D,0x48,0x00,0x29,0x10,0xD0,0x29,0x79,0x00,0x29,0x0D,0xD0,0x0B,0x4A,0x01,0x68, + 0x52,0x89,0x0A,0x32,0x91,0x42,0x01,0xDA,0x49,0x1C,0x01,0x60,0x28,0x79,0x68,0x71, + 0x67,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x21,0xF6,0xE7,0xF0,0x05,0x00,0x20, + 0xC8,0x02,0x00,0x20,0x00,0x78,0x00,0x00,0xF0,0x0A,0x00,0x20,0x80,0x7A,0x00,0x00, + 0x03,0xE0,0x0B,0x78,0x49,0x1C,0x03,0x70,0x40,0x1C,0x52,0x1E,0xF9,0xD2,0x70,0x47, + 0x52,0x10,0x03,0xE0,0x0B,0x88,0x89,0x1C,0x03,0x80,0x80,0x1C,0x52,0x1E,0xF9,0xD2, + 0x70,0x47,0x92,0x10,0x01,0xE0,0x08,0xC9,0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x09,0x06,0x09,0x0E,0x01,0xE0,0x01,0x70, + 0x40,0x1C,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x92,0x10,0x00,0xE0,0x02,0xC0,0x52,0x1E, + 0xFC,0xD2,0x70,0x47,0x0A,0x49,0x00,0x20,0xC9,0x88,0x4A,0x06,0x09,0x49,0x00,0xD5, + 0xC8,0x7A,0x89,0x7A,0x08,0x18,0x00,0x06,0x01,0x0C,0x07,0x48,0x02,0x69,0xFF,0x23, + 0x1B,0x02,0x9A,0x43,0x02,0x61,0x02,0x69,0x0A,0x43,0x02,0x61,0x70,0x47,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x80,0x78,0x00,0x00,0x00,0x90,0x00,0x40,0x10,0xB5,0x14,0x48, + 0x14,0x49,0x80,0x8B,0xC9,0x8A,0x00,0x24,0x40,0x18,0x13,0x49,0x09,0x78,0x00,0x29, + 0x12,0x49,0x04,0xD0,0x15,0x22,0x52,0x01,0x89,0x18,0x49,0x89,0x09,0xE0,0x10,0x4A, + 0xFF,0x31,0xD2,0x88,0xA1,0x31,0x49,0x8A,0x52,0x06,0x02,0xD4,0x0B,0x49,0xE0,0x31, + 0xC9,0x89,0x08,0x18,0x0B,0x49,0xC9,0x6B,0x49,0x04,0x49,0x0C,0x81,0x42,0x00,0xD3, + 0x01,0x24,0xFE,0xF7,0x3F,0xFF,0x20,0x00,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xF0,0x06,0x00,0x20,0xD0,0x0A,0x00,0x20,0x04,0x0B,0x00,0x20,0x00,0x78,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xC0,0x90,0x00,0x40,0xF7,0xB5,0x2C,0x4E,0xFF,0x27,0xB0,0x7F, + 0xF1,0x7F,0x84,0xB0,0x00,0x02,0x08,0x43,0x01,0xF0,0x3E,0xFD,0x30,0x00,0x20,0x38, + 0x00,0x7D,0xC0,0x07,0x0A,0xD0,0x26,0x48,0x01,0x78,0x26,0x48,0x00,0x7A,0x00,0x29, + 0x02,0xD0,0x01,0xF0,0xD1,0xFC,0x01,0xE0,0x01,0xF0,0xFE,0xFC,0x22,0x48,0x02,0x25, + 0xC1,0x6A,0x03,0x91,0x01,0x6A,0x02,0x91,0x41,0x6A,0x01,0x91,0x41,0x6B,0x00,0x91, + 0x21,0xE0,0x1D,0x4F,0x00,0x20,0xF8,0x62,0x18,0x48,0xA0,0x30,0x80,0x68,0x38,0x62, + 0x1A,0x48,0x00,0x6B,0x78,0x62,0x03,0x24,0xE0,0x07,0xC0,0x0F,0xFC,0xF7,0x08,0xF9, + 0x64,0x1E,0xF9,0xD5,0x02,0x20,0x78,0x63,0x30,0x7F,0x01,0x00,0xFC,0xF7,0x82,0xF9, + 0x01,0x24,0x04,0xA8,0x07,0xC8,0xFE,0xF7,0x81,0xFE,0x07,0x00,0x01,0xD1,0x00,0x24, + 0x25,0x00,0x64,0x1E,0xF5,0xD5,0x28,0x00,0x6D,0x1E,0x00,0x28,0xD9,0xDC,0x0A,0x48, + 0x03,0x99,0xC1,0x62,0x02,0x99,0x01,0x62,0x01,0x99,0x41,0x62,0x00,0x99,0x41,0x63, + 0x38,0x00,0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x20,0x78,0x00,0x00, + 0xFD,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20,0x80,0x90,0x00,0x40,0x80,0x7A,0x00,0x00, + 0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x71,0xDF,0x4D,0xE2,0x00,0x00,0xA0,0xE3, + 0xB8,0x01,0x8D,0xE5,0x24,0x07,0x9F,0xE5,0x28,0x37,0x9F,0xE5,0x00,0x00,0xD0,0xE5, + 0x28,0x67,0x9F,0xE5,0xB0,0x01,0x8D,0xE5,0x14,0x07,0x9F,0xE5,0x00,0xB0,0xD0,0xE5, + 0xB6,0x00,0xD3,0xE1,0x40,0x10,0x00,0xE2,0x0C,0x07,0x9F,0xE5,0x00,0x00,0x51,0xE3, + 0x01,0x4C,0x80,0xE2,0xBC,0x1E,0xD0,0x01,0xB0,0x1B,0xD4,0x11,0x02,0xAC,0x80,0xE2, + 0xAC,0x11,0x8D,0xE5,0xB0,0x1F,0xD0,0x01,0xB4,0x1B,0xD4,0x11,0xA8,0x11,0x8D,0xE5, + 0xF8,0x1A,0xD4,0x01,0xFC,0x16,0xDA,0x11,0xA0,0x11,0x8D,0xE5,0xFA,0x1A,0xD4,0x01, + 0xFE,0x16,0xDA,0x11,0x9C,0x11,0x8D,0xE5,0xF4,0x10,0xD0,0x05,0xB8,0x11,0xD0,0x15, + 0x98,0x11,0x8D,0xE5,0xF5,0x10,0xD0,0x05,0xB9,0x11,0xD0,0x15,0x94,0x11,0x8D,0xE5, + 0xF6,0x10,0xD0,0x05,0xBA,0x11,0xD0,0x15,0x90,0x11,0x8D,0xE5,0xF7,0x10,0xD0,0x05, + 0xBB,0x11,0xD0,0x15,0x8C,0x11,0x8D,0xE5,0xBC,0x1F,0xD0,0x01,0xB0,0x1C,0xD4,0x11, + 0x88,0x11,0x8D,0xE5,0xBE,0x1F,0xD0,0x01,0xB2,0x1C,0xD4,0x11,0x84,0x11,0x8D,0xE5, + 0xB0,0x10,0xD4,0x01,0xB4,0x1C,0xD4,0x11,0x80,0x11,0x8D,0xE5,0xB2,0x10,0xD4,0x01, + 0xB6,0x1C,0xD4,0x11,0x7C,0x11,0x8D,0xE5,0xB8,0x1F,0xD0,0x01,0xBC,0x1B,0xD4,0x11, + 0x78,0x11,0x8D,0xE5,0xBA,0x0F,0xD0,0x01,0xBE,0x0B,0xD4,0x11,0x74,0x01,0x8D,0xE5, + 0x00,0x00,0xA0,0xE3,0x30,0x00,0x8D,0xE5,0x2C,0x00,0x8D,0xE5,0x28,0x00,0x8D,0xE5, + 0x24,0x00,0x8D,0xE5,0x20,0x00,0x8D,0xE5,0x1C,0x00,0x8D,0xE5,0x18,0x00,0x8D,0xE5, + 0x14,0x00,0x8D,0xE5,0x10,0x00,0x8D,0xE5,0x0C,0x00,0x8D,0xE5,0x08,0x00,0x8D,0xE5, + 0x04,0x00,0x8D,0xE5,0xB8,0x05,0xC6,0xE1,0x00,0x90,0xA0,0xE1,0xBA,0x05,0xC6,0xE1, + 0x01,0x5C,0x46,0xE2,0xBC,0x05,0xC6,0xE1,0x28,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3, + 0x70,0x00,0x85,0xE2,0x49,0xFF,0xFF,0xEB,0x28,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3, + 0x98,0x00,0x85,0xE2,0x45,0xFF,0xFF,0xEB,0x00,0x00,0xA0,0xE3,0xB4,0x01,0x8D,0xE5, + 0x00,0x10,0xA0,0xE1,0xB0,0x0C,0xC5,0xE1,0x50,0x20,0xA0,0xE3,0x49,0x0F,0x8D,0xE2, + 0x3E,0xFF,0xFF,0xEB,0x50,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xD4,0x00,0x8D,0xE2, + 0x3A,0xFF,0xFF,0xEB,0x50,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x84,0x00,0x8D,0xE2, + 0x36,0xFF,0xFF,0xEB,0x50,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x34,0x00,0x8D,0xE2, + 0x32,0xFF,0xFF,0xEB,0xA8,0x05,0x9F,0xE5,0x00,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3, + 0xF8,0x7A,0xDA,0x11,0xB6,0x0A,0xDA,0x11,0x07,0x00,0x00,0x1A,0x84,0x05,0x9F,0xE5, + 0xB6,0x00,0xD0,0xE1,0x40,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3,0xF2,0x71,0xD4,0x01, + 0xF6,0x7D,0xD4,0x11,0xB0,0x01,0xD4,0x01,0xB4,0x0D,0xD4,0x11,0x00,0x80,0xA0,0xE3, + 0x08,0x50,0xA0,0xE1,0xA4,0x01,0x8D,0xE5,0x68,0x05,0x9F,0xE5,0xC0,0x01,0x8D,0xE5, + 0x0E,0x0C,0x80,0xE2,0xBC,0x01,0x8D,0xE5,0x82,0x00,0x00,0xEA,0x00,0x40,0xA0,0xE3, + 0x7C,0x00,0x00,0xEA,0xC0,0x01,0x9D,0xE5,0x0F,0x2A,0xE0,0xE3,0x08,0x11,0x90,0xE7, + 0x01,0x0A,0xA0,0xE1,0x20,0x0A,0xA0,0xE1,0x21,0x18,0x02,0xE0,0x01,0x30,0x40,0xE0, + 0x00,0x00,0x41,0xE0,0x9C,0x11,0x9D,0xE5,0x03,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3, + 0xD4,0x20,0x8D,0xC2,0x04,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0,0x04,0x11,0x82,0xC7, + 0x9C,0x11,0x9D,0xE5,0x00,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3,0x34,0x20,0x8D,0xC2, + 0x04,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0,0x04,0x11,0x82,0xC7,0xA0,0x11,0x9D,0xE5, + 0x03,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3,0x49,0x2F,0x8D,0xC2,0x05,0xC1,0x92,0xC7, + 0x0C,0x10,0x81,0xC0,0x05,0x11,0x82,0xC7,0xA0,0x11,0x9D,0xE5,0x00,0x10,0x81,0xE0, + 0x00,0x00,0x51,0xE3,0x84,0x20,0x8D,0xC2,0x05,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0, + 0x05,0x11,0x82,0xC7,0xB4,0x11,0x9D,0xE5,0x01,0x00,0x53,0xE1,0xB4,0x31,0x8D,0xC5, + 0x30,0x40,0x8D,0xC5,0x2C,0x50,0x8D,0xC5,0xC8,0x00,0x53,0xE3,0xB8,0x15,0xD6,0xC1, + 0x01,0x10,0x81,0xC2,0xB8,0x15,0xC6,0xC1,0x96,0x00,0x50,0xE3,0xBA,0x15,0xD6,0xC1, + 0x01,0x10,0x81,0xC2,0xBA,0x15,0xC6,0xC1,0x19,0x0E,0x53,0xE3,0xBC,0x15,0xD6,0xC1, + 0x01,0x10,0x81,0xC2,0xBC,0x15,0xC6,0xC1,0x68,0x14,0x9F,0xE5,0xB6,0x10,0xD1,0xE1, + 0x40,0x00,0x11,0xE3,0xB0,0x18,0xDA,0xE1,0x01,0x28,0xE0,0x13,0x81,0x10,0x02,0x10, + 0x00,0x00,0x53,0xE3,0x03,0x28,0xA0,0xC1,0x00,0x20,0xA0,0xD3,0x22,0x28,0xA0,0xC1, + 0x00,0x00,0x50,0xE3,0x00,0x08,0xA0,0xC1,0x00,0x00,0xA0,0xD3,0x20,0x08,0xA0,0xC1, + 0x01,0x00,0x50,0xE1,0x01,0xC0,0x89,0x82,0x01,0x98,0xCC,0x83,0x01,0x00,0x52,0xE1, + 0x0C,0xC0,0x9D,0x85,0x01,0xC0,0x8C,0x82,0x01,0xC8,0xCC,0x83,0x0C,0xC0,0x8D,0x85, + 0x81,0x00,0x50,0xE1,0x08,0xC0,0x9D,0x85,0x01,0xC0,0x8C,0x82,0x01,0xC8,0xCC,0x83, + 0x08,0xC0,0x8D,0x85,0x81,0x00,0x52,0xE1,0x04,0x10,0x9D,0x85,0x01,0x10,0x81,0x82, + 0x01,0x18,0xC1,0x83,0x04,0x10,0x8D,0x85,0x10,0x10,0x9D,0xE5,0x00,0x00,0x53,0xE3, + 0x01,0x00,0x80,0xE0,0x10,0x00,0x8D,0xE5,0x00,0x30,0xA0,0xB3,0x01,0x00,0x4B,0xE2, + 0x00,0x00,0x55,0xE1,0x06,0x00,0x00,0x1A,0x00,0x00,0x53,0xE3,0x04,0x00,0x00,0x0A, + 0x03,0x02,0x63,0xE0,0x00,0x01,0xA0,0xE1,0x64,0x10,0xA0,0xE3,0xFC,0xEB,0xFF,0xEB, + 0x00,0x30,0xA0,0xE1,0x05,0x10,0xA0,0xE1,0x04,0x00,0xA0,0xE1,0x11,0xF8,0xFF,0xEB, + 0xB4,0x13,0x9F,0xE5,0x00,0x00,0x57,0xE3,0x80,0x00,0x81,0xE0,0xB0,0x30,0xC0,0xE1, + 0x00,0x00,0x67,0xD2,0x07,0x00,0xA0,0xC1,0x03,0x00,0x50,0xE1,0xB8,0x11,0x9D,0xB5, + 0x07,0x00,0x83,0xB0,0x01,0x00,0x80,0xB0,0xB8,0x01,0x8D,0xB5,0x05,0x10,0xA0,0xE1, + 0x04,0x00,0xA0,0xE1,0xDA,0xF7,0xFF,0xEB,0xBC,0x11,0x9D,0xE5,0x7C,0x23,0x9F,0xE5, + 0x08,0x11,0x91,0xE7,0x80,0x00,0x82,0xE0,0x02,0x19,0xC1,0xE3,0x01,0x80,0x88,0xE2, + 0x01,0x40,0x84,0xE2,0xB0,0x10,0xC0,0xE1,0xB0,0x01,0x9D,0xE5,0x00,0x00,0x54,0xE1, + 0x7F,0xFF,0xFF,0x3A,0x01,0x50,0x85,0xE2,0x0B,0x00,0x55,0xE1,0x7A,0xFF,0xFF,0x3A, + 0x60,0xFA,0xFF,0xEB,0x2C,0x63,0x9F,0xE5,0xA8,0x01,0x9D,0xE5,0xBE,0x00,0xC6,0xE1, + 0xAC,0x01,0x9D,0xE5,0x01,0x00,0x10,0xE3,0x0A,0x00,0x00,0x0A,0xB0,0x01,0x9D,0xE5, + 0x64,0x10,0xA0,0xE3,0x9B,0x00,0x00,0xE0,0x90,0x01,0x01,0xE0,0xB8,0x01,0x9D,0xE5, + 0xA4,0x21,0x9D,0xE5,0x92,0x00,0x00,0xE0,0x3A,0xEC,0xFF,0xEB,0xA8,0x11,0x9D,0xE5, + 0x01,0x00,0x50,0xE1,0xBE,0x00,0xC6,0x31,0xB0,0x01,0x9D,0xE5,0x64,0x10,0xA0,0xE3, + 0x90,0x01,0x07,0xE0,0x00,0x40,0xA0,0xE3,0x22,0x00,0x00,0xEA,0x49,0x0F,0x8D,0xE2, + 0x04,0x01,0x90,0xE7,0x98,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x07,0x10,0xA0,0xE1, + 0x2C,0xEC,0xFF,0xEB,0x88,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0xBC,0xFA,0xFF,0xEB,0x00,0x50,0xA0,0xE1, + 0x84,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7,0x94,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x07,0x10,0xA0,0xE1,0x1F,0xEC,0xFF,0xEB,0x84,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1, + 0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0xAF,0xFA,0xFF,0xEB, + 0x00,0x00,0x45,0xE0,0x78,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x91,0x00,0x00,0xE0,0x84,0x50,0x86,0xE0,0x64,0x10,0xA0,0xE3,0xA4,0xEB,0xFF,0xEB, + 0x01,0x40,0x84,0xE2,0xB0,0x07,0xC5,0xE1,0x0B,0x00,0x54,0xE1,0xDA,0xFF,0xFF,0x3A, + 0x64,0x00,0xA0,0xE3,0x9B,0x00,0x05,0xE0,0x00,0x40,0xA0,0xE3,0x22,0x00,0x00,0xEA, + 0xD4,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7,0x90,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x05,0x10,0xA0,0xE1,0x03,0xEC,0xFF,0xEB,0x80,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1, + 0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x93,0xFA,0xFF,0xEB, + 0x00,0x70,0xA0,0xE1,0x34,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7,0x8C,0x11,0x9D,0xE5, + 0x91,0x00,0x00,0xE0,0x05,0x10,0xA0,0xE1,0xF6,0xEB,0xFF,0xEB,0x7C,0x11,0x9D,0xE5, + 0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1, + 0x86,0xFA,0xFF,0xEB,0x00,0x00,0x47,0xE0,0x74,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x91,0x00,0x00,0xE0,0x84,0x70,0x86,0xE0,0x64,0x10,0xA0,0xE3, + 0x7B,0xEB,0xFF,0xEB,0x01,0x40,0x84,0xE2,0xB8,0x09,0xC7,0xE1,0xB0,0x01,0x9D,0xE5, + 0x00,0x00,0x54,0xE1,0xD9,0xFF,0xFF,0x3A,0xB4,0x01,0x9D,0xE5,0x00,0x00,0x50,0xE3, + 0x0D,0x00,0x00,0xDA,0x30,0x00,0x9D,0xE5,0x2C,0x10,0x9D,0xE5,0x80,0x00,0x86,0xE0, + 0x81,0x10,0x86,0xE0,0xB8,0x09,0xD0,0xE1,0xB0,0x17,0xD1,0xE1,0x00,0x10,0x81,0xE0, + 0xB4,0x01,0x9D,0xE5,0x01,0x00,0x40,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xB0,0xE1, + 0xB0,0x0C,0xC6,0xE1,0x00,0x00,0xA0,0x43,0xB0,0x0C,0xC6,0x41,0xB0,0x01,0x9D,0xE5, + 0x01,0x00,0x40,0xE2,0x9B,0x00,0x01,0xE0,0x10,0x00,0x9D,0xE5,0xCD,0xEB,0xFF,0xEB, + 0xB6,0x10,0xD6,0xE1,0x0C,0x20,0x9D,0xE5,0x40,0x00,0x11,0xE3,0x10,0x00,0x00,0x0A, + 0x82,0x00,0x59,0xE1,0x01,0x20,0xA0,0x83,0x24,0x20,0x8D,0x85,0xFA,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x83,0x20,0x00,0x8D,0x85,0x08,0x00,0x9D,0xE5,0x23,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x83,0x1C,0x00,0x8D,0x85,0x04,0x00,0x9D,0xE5,0x23,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x33,0x18,0x00,0x8D,0x35,0x14,0x00,0x59,0xE3,0x13,0x00,0x00,0x9A, + 0x10,0x00,0x00,0xEA,0x02,0x00,0x59,0xE1,0x08,0x00,0x59,0x83,0x01,0x20,0xA0,0x83, + 0x24,0x20,0x8D,0x85,0x96,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83,0x20,0x00,0x8D,0x85, + 0x08,0x00,0x9D,0xE5,0x14,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83,0x1C,0x00,0x8D,0x85, + 0x04,0x00,0x9D,0xE5,0x14,0x00,0x50,0xE3,0x01,0x00,0xA0,0x33,0x18,0x00,0x8D,0x35, + 0x0A,0x00,0x59,0xE3,0x01,0x00,0x00,0x9A,0x01,0x00,0xA0,0xE3,0x14,0x00,0x8D,0xE5, + 0x24,0x00,0x9D,0xE5,0x20,0x20,0x9D,0xE5,0x10,0x00,0x11,0xE3,0x02,0x30,0x80,0xE1, + 0x1C,0x00,0x9D,0xE5,0x18,0x20,0x9D,0xE5,0x02,0x00,0x00,0xE0,0x00,0x20,0x83,0xE1, + 0x14,0x00,0x9D,0x15,0x00,0x00,0x50,0x13,0x00,0x00,0xA0,0x03,0x01,0x00,0xA0,0x13, + 0x02,0x00,0x90,0xE1,0x28,0x00,0x9D,0x05,0x00,0x00,0x50,0x03,0x09,0x00,0x00,0x0A, + 0xC4,0x00,0x96,0xE5,0x01,0x00,0x80,0xE2,0xC4,0x00,0x86,0xE5,0xC8,0x00,0xD6,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0x12,0xC8,0x00,0xC6,0x15,0x71,0xDF,0x8D,0xE2, + 0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0xC8,0x00,0xD6,0xE5,0x01,0x00,0x80,0xE2, + 0xFF,0x00,0x00,0xE2,0xC8,0x00,0xC6,0xE5,0xB4,0x18,0xDA,0xE1,0x01,0x00,0x50,0xE1, + 0xF5,0xFF,0xFF,0x1A,0x00,0x00,0xA0,0xE3,0xC8,0x00,0xC6,0xE5,0xC4,0x00,0x96,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0xC2,0xC4,0x00,0x86,0xC5,0xEE,0xFF,0xFF,0xEA, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00, + 0xF0,0x06,0x00,0x20,0x04,0x0B,0x00,0x20,0x00,0x02,0x10,0x40,0xC8,0x02,0x00,0x20, + 0x40,0x00,0x00,0x20,0xF0,0xB5,0xCA,0x49,0xC8,0x4F,0xC9,0x88,0xB8,0x7D,0xC9,0x4C, + 0x00,0x25,0x49,0x06,0x8D,0xB0,0x00,0xD4,0xA0,0x7C,0x03,0x90,0xC3,0x48,0x40,0x38, + 0x42,0x79,0x06,0x00,0xC0,0x36,0x00,0x92,0x82,0x79,0x80,0x30,0x01,0x7B,0xC0,0x38, + 0xB3,0x7A,0x00,0x7A,0xFE,0xF7,0xED,0xFB,0x00,0x06,0x71,0x7A,0x00,0x0E,0xFE,0xF7, + 0xDD,0xFB,0x31,0x00,0x20,0x39,0x0A,0x7A,0xC0,0x39,0x00,0x06,0x0C,0x91,0x09,0x79, + 0x00,0x0E,0xFE,0xF7,0xD7,0xFB,0x00,0x06,0xBA,0x7D,0xA1,0x7C,0x00,0x0E,0xFE,0xF7, + 0xD1,0xFB,0x00,0x06,0xB4,0x4E,0x00,0x0E,0x02,0x90,0x30,0x7B,0x00,0x28,0x02,0xD0, + 0xB2,0x48,0x40,0x89,0x0A,0xE0,0xAE,0x49,0x78,0x8A,0xC9,0x88,0x49,0x06,0x00,0xD4, + 0xE0,0x89,0xAF,0x49,0xC9,0x8A,0x40,0x18,0x00,0x04,0x00,0x0C,0x00,0x27,0x04,0x90, + 0x77,0x61,0x30,0x7A,0x00,0x28,0x06,0xD0,0x30,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0, + 0xD5,0xFA,0x01,0xF0,0xC3,0xFA,0x01,0x20,0x30,0x62,0xFC,0xF7,0xF5,0xFB,0xA0,0x48, + 0x05,0x22,0x01,0x00,0xFF,0x31,0x61,0x31,0x0A,0x91,0x9E,0x49,0xD2,0x01,0xE0,0x39, + 0x8B,0x18,0x09,0x93,0x03,0x00,0xC0,0x33,0x80,0x31,0x07,0xAC,0x0A,0xC4,0x02,0x99, + 0xC9,0x1C,0x06,0x91,0x51,0x00,0x44,0x18,0x80,0x18,0x05,0x90,0x10,0xE1,0x30,0x7A, + 0x00,0x28,0x04,0xD0,0x30,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0xAF,0xFA,0xFF,0x20, + 0x81,0x30,0xFB,0xF7,0xAD,0xF9,0x03,0x20,0x01,0xF0,0xE6,0xF9,0x00,0xF0,0x68,0xF9, + 0x01,0x20,0x40,0x05,0xFC,0xF7,0x04,0xFE,0xFF,0xF7,0xCA,0xFB,0x00,0x20,0xFC,0xF7, + 0xFF,0xFD,0x87,0x48,0xC0,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06, + 0x01,0xD5,0x05,0x20,0x00,0xE0,0x03,0x20,0x01,0xF0,0xAA,0xF8,0xFC,0xF7,0x34,0xFE, + 0x84,0x48,0x04,0x99,0x80,0x8B,0x40,0x18,0x7D,0x49,0x89,0x89,0x88,0x42,0x10,0xD9, + 0x0A,0x98,0x40,0x78,0x00,0x28,0x0C,0xD1,0x79,0x48,0xFF,0x21,0xC0,0x88,0x19,0x31, + 0x08,0x42,0x06,0xD1,0x03,0x98,0x6D,0x1C,0x85,0x42,0x03,0xDD,0xFC,0xF7,0x24,0xFE, + 0x00,0xE0,0x00,0x25,0x00,0xF0,0x6A,0xFE,0x00,0xF0,0xEC,0xFD,0x00,0xF0,0x40,0xFE, + 0x09,0x99,0x08,0x98,0x49,0x88,0x40,0x68,0x88,0x42,0x0C,0xDB,0x0A,0x98,0x40,0x78, + 0x00,0x28,0x04,0xD1,0x6A,0x48,0x46,0x21,0xC0,0x88,0x08,0x42,0x03,0xD0,0x6A,0x49, + 0x01,0x20,0x48,0x70,0x02,0xE0,0x70,0x78,0x00,0x28,0x0D,0xD0,0xFC,0xF7,0x88,0xFB, + 0x64,0x48,0x01,0x21,0xE0,0x38,0xC0,0x7F,0x40,0x08,0x01,0xF0,0xBD,0xF8,0x62,0x48, + 0x47,0x70,0x08,0x98,0x47,0x60,0xA9,0xE0,0xFC,0xF7,0xC4,0xFD,0xFD,0xF7,0x3C,0xFF, + 0x00,0x28,0x08,0xD0,0x77,0x61,0x05,0x98,0x80,0x7B,0xC8,0x28,0x10,0xD2,0x05,0x99, + 0x40,0x1C,0x88,0x73,0x0C,0xE0,0x70,0x69,0x40,0x1C,0x70,0x61,0x70,0x69,0x01,0x28, + 0x01,0xD1,0x59,0x48,0x07,0x73,0x70,0x69,0x05,0x28,0x01,0xD9,0xFC,0xF7,0x54,0xFB, + 0x01,0x20,0x40,0x07,0x00,0x68,0x00,0x28,0x07,0xD1,0x60,0x68,0xFF,0x21,0xFF,0x31, + 0x88,0x42,0x03,0xDA,0x40,0x1C,0x60,0x60,0x00,0xE0,0x67,0x60,0x09,0x99,0x20,0x68, + 0x49,0x89,0x88,0x42,0x0A,0xDD,0x61,0x68,0xFF,0x20,0xF5,0x30,0x81,0x42,0x05,0xDD, + 0x01,0x20,0x70,0x70,0x27,0x60,0x67,0x60,0x08,0x99,0x48,0x60,0x47,0x48,0x41,0x68, + 0x09,0x07,0x07,0xD5,0xC1,0x68,0x00,0x29,0x04,0xD0,0xC0,0x68,0x01,0x21,0x49,0x07, + 0xC8,0x63,0x06,0xE0,0x70,0x7B,0x80,0x28,0x01,0xD1,0xFC,0xF7,0x31,0xFC,0x00,0xF0, + 0x11,0xF9,0xFC,0xF7,0x27,0xFE,0x07,0x98,0x00,0x7B,0x00,0x28,0x04,0xD0,0x30,0x7B, + 0x00,0x28,0x01,0xD1,0x00,0xF0,0xC0,0xF8,0x01,0x20,0x40,0x07,0xC0,0x6B,0x0B,0x28, + 0x4C,0xD1,0x07,0x98,0x00,0x7A,0x00,0x28,0x01,0xD0,0xFF,0xF7,0x5B,0xFA,0x00,0xF0, + 0x9B,0xF8,0x03,0x20,0x01,0xF0,0xFA,0xF8,0xF0,0x62,0x03,0x20,0x01,0xF0,0x28,0xF9, + 0xFF,0x20,0x81,0x30,0xFB,0xF7,0xD4,0xF8,0x2D,0x48,0x00,0x78,0x00,0x28,0x2F,0xD1, + 0xFC,0xF7,0xD8,0xFE,0x00,0x28,0x2B,0xD0,0xB0,0x6A,0x00,0x28,0x0B,0x90,0x27,0xD0, + 0xF0,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x26,0x49,0xFA,0xF7,0x8B,0xFD,0x0B,0x99, + 0x08,0x1A,0x32,0x28,0x1C,0xDD,0x01,0xF0,0xCF,0xF9,0x01,0xF0,0xD3,0xF9,0xB0,0x79, + 0x00,0x28,0x0D,0xD0,0x00,0xF0,0x4E,0xF8,0x00,0xF0,0x51,0xF8,0x00,0xF0,0x59,0xF8, + 0x1D,0x4E,0x01,0x20,0x70,0x60,0xFB,0xF7,0xBB,0xF8,0x1C,0x48,0x70,0x60,0x03,0xE0, + 0x1B,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0,0x01,0xF0,0xC3,0xF9,0x18,0x48,0x07,0x70, + 0x0D,0x4E,0x70,0x69,0x06,0x99,0x88,0x42,0x00,0xD2,0xE8,0xE6,0x0C,0x98,0x0C,0x49, + 0x40,0x78,0xA0,0x39,0x48,0x73,0x08,0x48,0x00,0x7A,0x00,0x28,0x01,0xD0,0x01,0xF0, + 0x8D,0xF9,0x0D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xE0,0x78,0x00,0x00,0xF8,0x0A,0x00,0x20,0xA0,0x7A,0x00,0x00, + 0xD0,0x0A,0x00,0x20,0xF0,0x06,0x00,0x20,0x90,0x08,0x00,0x20,0x00,0x40,0x00,0x30, + 0xAD,0x0B,0x00,0x20,0x10,0x27,0x00,0x00,0x00,0x30,0x00,0x40,0xE1,0x04,0x00,0x00, + 0xAC,0x0B,0x00,0x20,0x01,0x20,0x80,0x07,0x01,0x6B,0x81,0x22,0xD2,0x01,0x11,0x43, + 0x01,0x63,0x70,0x47,0x00,0x20,0x01,0x21,0x89,0x07,0x48,0x60,0x70,0x47,0x10,0x20, + 0x81,0x06,0x48,0x60,0x70,0x47,0x01,0x22,0x92,0x07,0x91,0x68,0x01,0x43,0x91,0x60, + 0x70,0x47,0x01,0x20,0x80,0x07,0x41,0x68,0x02,0x22,0x11,0x43,0x41,0x60,0x70,0x47, + 0x01,0x20,0x80,0x07,0x01,0x6B,0x03,0x4A,0x89,0x09,0x52,0x7B,0x89,0x01,0x11,0x43, + 0x01,0x63,0x70,0x47,0x00,0x78,0x00,0x00,0x10,0xB5,0xFC,0xF7,0xB3,0xFC,0xFA,0xF7, + 0x35,0xFD,0x03,0x20,0x40,0x03,0xFB,0xF7,0x3B,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x03,0x20,0x10,0xB5,0x40,0x03,0xFB,0xF7,0x3B,0xF8,0xFA,0xF7,0x31,0xFD,0xFC,0xF7, + 0xA9,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xB5,0x00,0xF0,0xFD,0xFB,0x05,0x49, + 0x80,0x22,0xC9,0x88,0x11,0x40,0x81,0x42,0x01,0xD0,0xFA,0xF7,0x59,0xFF,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0xFE,0xB5,0x16,0x48,0x17,0x4E,0x00,0x78, + 0x00,0x25,0x01,0x90,0x14,0x48,0x00,0x78,0x00,0x90,0x1C,0xE0,0x14,0x49,0x68,0x00, + 0x00,0x24,0x47,0x18,0x60,0x37,0x12,0xE0,0x29,0x00,0x20,0x00,0xFD,0xF7,0x2A,0xFC, + 0x0F,0x4B,0x62,0x00,0xD3,0x18,0x98,0x22,0x9A,0x5E,0x10,0x23,0xFB,0x5E,0x40,0x00, + 0x31,0x5E,0xD2,0x18,0x89,0x1A,0x00,0xD5,0x00,0x21,0x64,0x1C,0x31,0x52,0x01,0x98, + 0x84,0x42,0xE9,0xD3,0x6D,0x1C,0x00,0x98,0x85,0x42,0xDF,0xD3,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xF8,0xB5,0x72,0x4F,0x00,0x26,0x78,0x7A,0xC0,0x07,0x2F,0xD0, + 0x70,0x4C,0x20,0x89,0x00,0x28,0x0E,0xD0,0x6F,0x49,0x88,0x42,0x0B,0xD0,0x1E,0x21, + 0x48,0x43,0x64,0x21,0xFA,0xF7,0x9E,0xFC,0x39,0x8A,0x46,0x18,0x4B,0x20,0xC0,0x00, + 0x86,0x42,0x00,0xD9,0x06,0x00,0x69,0x48,0x40,0x7D,0x00,0x28,0x18,0xD0,0xA6,0x89, + 0x67,0x48,0x31,0x18,0x08,0x00,0x48,0x43,0x69,0x21,0x09,0x01,0xFA,0xF7,0x8A,0xFC, + 0x63,0x4B,0x31,0x00,0x63,0x4A,0xFF,0x39,0xA6,0x39,0x5B,0x42,0x91,0x42,0x01,0xD8, + 0x1E,0x1A,0x05,0xE0,0x5E,0x4C,0x64,0x1E,0x31,0x19,0x91,0x42,0x00,0xD2,0xC6,0x18, + 0x01,0x24,0x64,0x07,0x25,0x68,0x00,0x2D,0x7E,0xD0,0x5B,0x48,0x00,0x21,0x01,0x70, + 0x02,0x20,0x00,0xF0,0xF5,0xFF,0x59,0x48,0x0A,0x21,0x00,0x6B,0xFA,0xF7,0x6A,0xFC, + 0x01,0x00,0x02,0x20,0x00,0xF0,0xD8,0xFF,0x01,0x2D,0x0B,0xD0,0x02,0x2D,0x08,0xD1, + 0x60,0x68,0x00,0x02,0x00,0x0E,0x01,0x28,0x03,0xD1,0x60,0x68,0x00,0x06,0x00,0xD1, + 0x00,0xE0,0x6D,0x1C,0x78,0x7A,0x00,0x28,0x08,0xD0,0x60,0x68,0x4C,0x49,0x81,0x43, + 0x04,0xD0,0x61,0x68,0x4B,0x48,0x88,0x43,0x00,0xD0,0x6D,0x1C,0xF8,0x79,0x00,0x28, + 0x04,0xD1,0x49,0x48,0x41,0x69,0x02,0x15,0x11,0x43,0x41,0x61,0x47,0x48,0x01,0x68, + 0x47,0x48,0xC1,0x61,0x02,0x24,0x20,0x00,0x00,0xF0,0xB6,0xFF,0x45,0x48,0xC1,0x68, + 0x49,0x08,0x49,0x00,0xC1,0x60,0x03,0x04,0x35,0x48,0x36,0x4A,0x41,0x7A,0x40,0x48, + 0x97,0x89,0x21,0xE0,0x42,0x69,0x52,0x06,0x0E,0xD4,0x00,0x29,0x01,0xD0,0xAC,0x42, + 0x04,0xD2,0xA2,0x00,0xD2,0x18,0x12,0x68,0xC2,0x61,0x04,0xE0,0xCA,0x07,0x01,0xD0, + 0xC6,0x61,0x00,0xE0,0xC7,0x61,0x64,0x1C,0x2F,0x4A,0x12,0x78,0x00,0x2A,0x0B,0xD0, + 0xFD,0xF7,0x9C,0xFC,0x26,0x48,0x01,0x7A,0x00,0x29,0x07,0xD0,0x00,0x6B,0x00,0x04, + 0x00,0x0C,0x01,0xF0,0x4B,0xF8,0x01,0xE0,0xAC,0x42,0xDB,0xD9,0x02,0x20,0x00,0xF0, + 0x8F,0xFF,0x25,0x4D,0x28,0x78,0x00,0x28,0x27,0xD1,0xFD,0xF7,0xAD,0xFB,0x00,0x28, + 0x23,0xD0,0x22,0x48,0x0A,0x21,0x00,0x6B,0xFA,0xF7,0xFC,0xFB,0x01,0x00,0x02,0x20, + 0x00,0xF0,0x6A,0xFF,0x02,0x20,0x00,0xE0,0x26,0xE0,0x00,0xF0,0x6D,0xFF,0x14,0x4C, + 0x0C,0xE0,0x28,0x78,0x00,0x28,0x09,0xD0,0xFD,0xF7,0x70,0xFC,0x20,0x7A,0x00,0x28, + 0x04,0xD0,0x20,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0x20,0xF8,0xFD,0xF7,0x8C,0xFB, + 0x00,0x28,0xEE,0xD1,0x02,0x20,0x00,0xF0,0x63,0xFF,0x16,0x49,0xC8,0x68,0x01,0x22, + 0x10,0x43,0xC8,0x60,0x00,0xF0,0x2C,0xF8,0x05,0x48,0xC0,0x79,0x00,0x28,0x03,0xD1, + 0x01,0x20,0x80,0x02,0xFA,0xF7,0x04,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xF8,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0xFF,0x0F,0x00,0x00,0x30,0x0A,0x00,0x20, + 0xCC,0xF7,0xFF,0xFF,0x8F,0x06,0x00,0x00,0xAD,0x0B,0x00,0x20,0x00,0x78,0x00,0x00, + 0x00,0x00,0x4E,0x1D,0x00,0x80,0x4E,0x1D,0x40,0x00,0x00,0x40,0x04,0x00,0x00,0x20, + 0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x05,0x48,0x01,0x21,0x00,0xB5,0xC9,0x02,0x01,0x62,0x00,0x21,0x01,0x62,0xFD,0xF7, + 0x67,0xFE,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x40,0x18,0x70,0x47, + 0x40,0x18,0x80,0x18,0x70,0x47,0x10,0xB4,0x40,0x18,0x01,0x9C,0x80,0x18,0xC0,0x18, + 0x00,0x19,0x10,0xBC,0x70,0x47,0x00,0x00,0xF8,0xB5,0x00,0x21,0x01,0x23,0x5B,0x07, + 0x18,0x68,0x13,0x4A,0x90,0x72,0x90,0x7A,0x01,0x28,0x01,0xD1,0x01,0x21,0x0D,0xE0, + 0x01,0x28,0x00,0xD9,0x02,0x21,0x00,0x28,0x08,0xD1,0x0D,0x48,0x20,0x22,0x00,0x21, + 0x0C,0x30,0xFF,0xF7,0x19,0xF8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x13,0x25, + 0x08,0x4C,0xAD,0x01,0x08,0xE0,0x46,0x18,0xB6,0x00,0xF6,0x18,0x36,0x68,0x87,0x00, + 0x3F,0x19,0x7F,0x19,0x40,0x1C,0xFE,0x60,0x96,0x7A,0x86,0x42,0xF3,0xD8,0xEA,0xE7, + 0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x70,0xB5,0x1E,0x49,0x1C,0x4C,0x0D,0x00, + 0x20,0x78,0xA1,0x22,0xFF,0x35,0x92,0x00,0xBF,0x35,0x8E,0x18,0x00,0x28,0x0E,0xD0, + 0x5A,0x22,0x21,0x1D,0x28,0x00,0xFE,0xF7,0xD3,0xFF,0x17,0x49,0x09,0x22,0x30,0x00, + 0xFE,0xF7,0xCE,0xFF,0x20,0x78,0x60,0x70,0x70,0xBC,0x08,0xBC,0x18,0x47,0x09,0x22, + 0x00,0x21,0x30,0x00,0xFE,0xF7,0xE0,0xFF,0x5A,0x22,0x00,0x21,0x28,0x00,0xFE,0xF7, + 0xDB,0xFF,0x0D,0x48,0x5A,0x22,0x00,0x21,0x63,0x38,0xFE,0xF7,0xD5,0xFF,0x0A,0x48, + 0x09,0x22,0x00,0x21,0x09,0x38,0xFE,0xF7,0xCF,0xFF,0x00,0x20,0x05,0x49,0x60,0x70, + 0xA0,0x70,0xCA,0x88,0x23,0x23,0x9A,0x43,0xCA,0x80,0x04,0x49,0x88,0x75,0xDB,0xE7, + 0x50,0x07,0x00,0x20,0xF0,0x05,0x00,0x20,0x6B,0x08,0x00,0x20,0x30,0x0A,0x00,0x20, + 0xF3,0xB5,0x93,0x48,0x91,0xB0,0x40,0x7E,0x02,0x90,0x92,0x48,0x00,0x78,0x00,0x28, + 0x91,0x48,0x18,0xD0,0x0B,0x21,0x89,0x01,0x40,0x18,0x01,0x8A,0x8F,0x4A,0x1A,0x26, + 0x07,0x91,0x41,0x8A,0x1C,0x27,0x06,0x91,0x81,0x8A,0x05,0x91,0x1E,0x21,0x41,0x5E, + 0x04,0x91,0x00,0x21,0x51,0x5E,0x03,0x91,0x16,0x21,0x18,0x22,0x86,0x5F,0xC7,0x5F, + 0x41,0x5E,0x82,0x5E,0x16,0xE0,0x60,0x30,0xC1,0x8A,0x04,0x22,0x00,0x26,0x07,0x91, + 0x01,0x8B,0x02,0x27,0x06,0x91,0x41,0x8B,0x05,0x91,0x7D,0x49,0x20,0x39,0x8A,0x5E, + 0x04,0x92,0x06,0x22,0x8A,0x5E,0x03,0x92,0x8E,0x5F,0xCF,0x5F,0x1C,0x21,0x1E,0x22, + 0x41,0x5E,0x82,0x5E,0x11,0x98,0x78,0x4C,0x00,0x68,0x41,0x18,0x11,0x98,0x01,0x60, + 0x12,0x98,0x00,0x68,0x81,0x18,0x12,0x98,0x01,0x60,0x60,0x8C,0x00,0x21,0x40,0x1E, + 0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0,0x20,0x8C,0x0A,0x00,0x40,0x1E,0x03,0x04, + 0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0,0x23,0xFF,0x20,0x8C,0x64,0x21,0x0A,0x90, + 0x60,0x8C,0x09,0x90,0x0A,0x98,0x44,0x08,0x09,0x98,0x45,0x08,0x06,0x98,0x64,0x38, + 0x00,0x28,0x01,0xDC,0x06,0x98,0x08,0x1A,0x0F,0x90,0x05,0x98,0x64,0x38,0x00,0x28, + 0x01,0xDC,0x05,0x98,0x08,0x1A,0x0E,0x90,0x61,0x48,0x01,0x78,0x61,0x48,0x00,0x78, + 0x08,0x90,0x61,0x48,0x80,0x7E,0xC2,0x07,0x0A,0xD0,0x80,0x07,0x03,0xD5,0x49,0x1E, + 0x09,0x06,0x09,0x0E,0x04,0xE0,0x08,0x98,0x40,0x1E,0x00,0x06,0x00,0x0E,0x08,0x90, + 0x20,0x00,0xFA,0xF7,0xBD,0xF9,0x0A,0x99,0x08,0x1A,0x40,0x1E,0x0C,0x90,0x08,0x99, + 0x28,0x00,0xFA,0xF7,0xB5,0xF9,0x09,0x99,0x08,0x1A,0x40,0x1E,0x31,0x1E,0x0B,0x90, + 0x00,0xDD,0xA1,0x1B,0x00,0x2F,0x0D,0x97,0x01,0xDD,0xE8,0x1B,0x0D,0x90,0x11,0x98, + 0x00,0x68,0xA0,0x42,0x10,0x90,0x01,0xDB,0x00,0x1B,0x01,0xE0,0x00,0x1B,0x40,0x1C, + 0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x22,0x06,0x00,0x56,0x43,0x37,0x00,0x88,0x42, + 0x0D,0xDD,0x42,0x1A,0x0F,0x98,0x50,0x43,0x86,0x19,0x10,0x00,0x50,0x43,0x0F,0x9A, + 0x50,0x43,0x0C,0x9A,0x12,0x1B,0x51,0x1A,0xFA,0xF7,0x8A,0xF9,0xC7,0x19,0x04,0x98, + 0x00,0x28,0x01,0xD1,0x30,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x38,0x00,0x01,0xE0, + 0x70,0x00,0xC0,0x1B,0x64,0x21,0xFA,0xF7,0x7B,0xF9,0x07,0x99,0xC9,0x07,0x0A,0xD0, + 0x10,0x99,0xA1,0x42,0x03,0xDB,0x21,0x18,0x11,0x98,0x01,0x60,0x03,0xE0,0x11,0x99, + 0x20,0x1A,0x40,0x1E,0x08,0x60,0x12,0x98,0x07,0x68,0xAF,0x42,0x01,0xDB,0x78,0x1B, + 0x01,0xE0,0x78,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x21,0x04,0x00, + 0x4C,0x43,0x0D,0x99,0x26,0x00,0x88,0x42,0x0E,0xDD,0x41,0x1A,0x0E,0x98,0x0D,0x9A, + 0x48,0x43,0x04,0x19,0x08,0x00,0x48,0x43,0x0E,0x99,0x48,0x43,0x0B,0x99,0x49,0x1B, + 0x89,0x1A,0xFA,0xF7,0x4D,0xF9,0x86,0x19,0x03,0x98,0x00,0x28,0x01,0xD1,0x20,0x00, + 0x05,0xE0,0x01,0x28,0x01,0xD1,0x30,0x00,0x01,0xE0,0x60,0x00,0x80,0x1B,0x64,0x21, + 0xFA,0xF7,0x3E,0xF9,0x07,0x99,0x89,0x07,0x09,0xD5,0xAF,0x42,0x03,0xDB,0x29,0x18, + 0x12,0x98,0x01,0x60,0x03,0xE0,0x12,0x99,0x28,0x1A,0x40,0x1E,0x08,0x60,0x0E,0x48, + 0x02,0x99,0x42,0x8C,0x6B,0x46,0x51,0x1A,0x49,0x1E,0x0A,0x04,0x02,0x99,0x12,0x0C, + 0x06,0xC3,0x01,0x8C,0x02,0x98,0x02,0x9A,0x08,0x1A,0x40,0x1E,0x03,0x04,0x11,0xA8, + 0x03,0xC8,0x1B,0x0C,0x00,0xF0,0x54,0xFE,0x13,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0xA0,0x78,0x00,0x00,0x04,0x0B,0x00,0x20,0x00,0x78,0x00,0x00,0xE0,0x7A,0x00,0x00, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0x30,0x0A,0x00,0x20,0xF0,0xB4,0x05,0x00, + 0x0B,0x4C,0x00,0x20,0xFF,0x26,0x91,0x36,0x82,0x00,0xA3,0x5A,0x12,0x19,0x52,0x88, + 0x5B,0x1B,0x1F,0x00,0x5F,0x43,0x52,0x1A,0x13,0x00,0x53,0x43,0xFA,0x18,0xB2,0x42, + 0x04,0xDB,0x40,0x1C,0x1D,0x28,0xEF,0xD3,0x00,0x20,0xC0,0x43,0xF0,0xBC,0x70,0x47, + 0x08,0x71,0x00,0x00,0xFE,0xB5,0x66,0x4D,0x64,0x48,0x00,0x26,0x29,0x00,0xFF,0x31, + 0x00,0x96,0x42,0x78,0x61,0x31,0x08,0x78,0x00,0x2A,0x28,0xD1,0x00,0x28,0x26,0xD0, + 0x01,0x24,0x0A,0x20,0x60,0x43,0x47,0x19,0x38,0x00,0xFF,0x30,0x6B,0x30,0xFD,0xF7, + 0xB1,0xFB,0x00,0x28,0x17,0xD0,0x5B,0x48,0x81,0x7B,0x00,0x98,0x40,0x1C,0x81,0x42, + 0x14,0xD3,0xA9,0x19,0x13,0x22,0x00,0x90,0xFF,0x20,0x92,0x01,0x65,0x30,0x89,0x18, + 0xC0,0x5D,0x3A,0x00,0xFF,0x32,0x48,0x70,0x76,0x1C,0x65,0x32,0x03,0x20,0x01,0x23, + 0x69,0x46,0x00,0xF0,0x33,0xFA,0x64,0x1C,0x09,0x2C,0xDA,0xDB,0x8F,0xE0,0x49,0x78, + 0x00,0x29,0x01,0xD1,0x00,0x28,0xF9,0xD0,0x15,0x20,0x40,0x01,0x00,0x24,0x2E,0x18, + 0x13,0x27,0xBF,0x01,0x28,0x19,0xC0,0x19,0x40,0x78,0x00,0x28,0x3F,0xD0,0x13,0x21, + 0x28,0x18,0x49,0x01,0x41,0x18,0xC9,0x7E,0x00,0x29,0x02,0xD0,0x32,0x7B,0x00,0x2A, + 0x14,0xD0,0x05,0x21,0xC9,0x01,0x40,0x18,0x00,0x99,0x00,0x79,0x49,0x1C,0x00,0x91, + 0x0A,0x21,0x48,0x43,0x42,0x19,0xFF,0x32,0xBF,0x32,0x02,0x20,0x03,0x23,0x69,0x46, + 0x00,0xF0,0x04,0xFA,0x20,0x00,0x14,0x2C,0x1E,0xD0,0x1A,0xE0,0x0A,0x20,0x41,0x43, + 0x48,0x19,0x02,0x90,0xFF,0x30,0x6B,0x30,0xFD,0xF7,0x5C,0xFB,0x00,0x28,0x13,0xD0, + 0x00,0x98,0x02,0x9A,0x40,0x1C,0xFF,0x32,0x00,0x90,0x65,0x32,0x03,0x20,0x02,0x23, + 0x69,0x46,0x00,0xF0,0xEB,0xF9,0x07,0xE0,0x29,0x18,0xC9,0x19,0x8A,0x78,0x40,0x1C, + 0x4A,0x70,0x08,0x28,0xF8,0xDB,0x64,0x1E,0x64,0x1C,0x08,0x2C,0xBA,0xDB,0x01,0x24, + 0x23,0x49,0x13,0x22,0x08,0x19,0x52,0x01,0x80,0x18,0xC0,0x7E,0x00,0x22,0x01,0x92, + 0x00,0x28,0x31,0xD0,0x32,0x7B,0x00,0x2A,0x2E,0xD1,0x0A,0x22,0x50,0x43,0x45,0x18, + 0x28,0x00,0xFF,0x30,0x6B,0x30,0xFD,0xF7,0x2D,0xFB,0x00,0x28,0x24,0xD0,0x19,0x48, + 0x00,0x9B,0x80,0x7B,0x5B,0x1C,0x98,0x42,0x21,0xD3,0x15,0x4A,0x00,0x20,0x11,0x18, + 0xC9,0x19,0x49,0x78,0xA1,0x42,0x0B,0xD0,0x00,0x29,0x06,0xD1,0xFF,0x21,0x65,0x31, + 0x49,0x5D,0x10,0x18,0xC0,0x19,0x41,0x70,0x05,0xE0,0x40,0x1C,0x08,0x28,0xEE,0xDB, + 0x01,0x98,0x00,0x28,0x08,0xD0,0x2A,0x00,0xFF,0x32,0x00,0x93,0x65,0x32,0x03,0x20, + 0x01,0x23,0x69,0x46,0x00,0xF0,0xA2,0xF9,0x64,0x1C,0x09,0x2C,0xC0,0xDB,0x00,0x98, + 0x00,0xF0,0x92,0xFC,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xB0,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00,0xFE,0xB5,0x51,0x48,0x36,0x25,0x45,0x5F, + 0x51,0x48,0x50,0x4F,0xC4,0x78,0x00,0x26,0x02,0x94,0x00,0x79,0x84,0x46,0x4C,0x48, + 0x80,0x30,0x82,0x7D,0x86,0x46,0x4D,0x48,0x81,0x7E,0xC8,0x07,0x0A,0xD0,0x88,0x07, + 0x03,0xD5,0x64,0x1E,0x24,0x06,0x24,0x0E,0x04,0xE0,0x60,0x46,0x40,0x1E,0x00,0x06, + 0x00,0x0E,0x84,0x46,0x00,0x21,0x27,0xE0,0x00,0x20,0x22,0xE0,0x91,0x42,0x05,0xD2, + 0x90,0x42,0x1D,0xD3,0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x19,0xD3,0x63,0x46,0x9B,0x1A, + 0x5B,0x1E,0x8B,0x42,0x01,0xD2,0x90,0x42,0x12,0xD3,0x8B,0x42,0x03,0xD2,0xA3,0x1A, + 0x5B,0x1E,0x83,0x42,0x0C,0xD3,0x02,0x9B,0x4B,0x43,0x1B,0x18,0x9B,0x00,0xFB,0x58, + 0x1B,0x01,0x1B,0x0D,0xB3,0x42,0x00,0xDD,0x1E,0x00,0xAB,0x42,0x00,0xDA,0x1D,0x00, + 0x40,0x1C,0xA0,0x42,0xDA,0xD3,0x49,0x1C,0x61,0x45,0xD5,0xD3,0x1E,0x24,0x70,0x46, + 0x04,0x5F,0x2B,0x4B,0x2E,0x48,0xA0,0x33,0xC0,0x88,0x06,0x22,0x9A,0x5E,0x40,0x06, + 0x07,0xD5,0x70,0x46,0x80,0x8A,0x01,0x19,0x0C,0x04,0x10,0x1A,0x24,0x14,0x02,0x04, + 0x12,0x14,0x26,0x48,0x80,0x30,0xC1,0x6A,0xA6,0x42,0x05,0xDD,0x74,0x46,0x64,0x8B, + 0xA1,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E,0xC1,0x62, + 0x1E,0x49,0x80,0x31,0x09,0x6B,0x95,0x42,0x04,0xDA,0x5A,0x88,0x91,0x42,0x05,0xDA, + 0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E,0x01,0x63,0x74,0x46,0xA4,0x8B, + 0xC5,0x6A,0x01,0x22,0x11,0x00,0xA5,0x42,0x00,0xDC,0x00,0x21,0x9B,0x88,0x00,0x6B, + 0x98,0x42,0x00,0xDC,0x00,0x22,0x00,0x20,0x6B,0x46,0x18,0x70,0x59,0x70,0x00,0x29, + 0x9A,0x70,0x02,0xD0,0x00,0x2A,0x00,0xD0,0x01,0x20,0x6B,0x46,0x11,0x43,0xD8,0x70, + 0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x6B,0x46,0x18,0x71,0x70,0x46,0x00,0x7B, + 0x69,0x46,0x08,0x5C,0x00,0x28,0x00,0xD0,0x80,0x20,0xFE,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x78,0x00,0x00,0x00,0x02,0x10,0x40,0xF8,0x0A,0x00,0x20,0x30,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xF8,0xB5,0x22,0x48,0x22,0x4C,0xC0,0x88,0x01,0x23,0x22,0x4D, + 0x41,0x06,0x09,0x20,0x80,0x01,0x21,0x4F,0x21,0x4E,0x5B,0x05,0x20,0x18,0x00,0x29, + 0x0E,0xDA,0x81,0x69,0x69,0x61,0xC1,0x69,0xA9,0x61,0x41,0x6A,0x99,0x43,0xE9,0x61, + 0x81,0x6A,0x29,0x62,0x01,0x6A,0xE9,0x60,0x80,0x6B,0x28,0x61,0xE0,0x6A,0x0E,0xE0, + 0x18,0x49,0x4A,0x69,0x6A,0x61,0x8A,0x69,0xAA,0x61,0x0A,0x6A,0x9A,0x43,0xEA,0x61, + 0x4A,0x6A,0x2A,0x62,0xC9,0x69,0xE9,0x60,0x40,0x6B,0x28,0x61,0xA0,0x6A,0xFF,0x21, + 0x41,0x31,0x48,0x43,0x39,0x00,0xFA,0xF7,0x15,0xF8,0xB0,0x62,0x30,0x7B,0x00,0x28, + 0x03,0xD0,0x0D,0x48,0xE8,0x60,0x0D,0x48,0x28,0x61,0x60,0x6A,0xFF,0x21,0x41,0x31, + 0x48,0x43,0x39,0x00,0xFA,0xF7,0x06,0xF8,0x70,0x62,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00,0xC0,0x90,0x00,0x40,0x10,0x27,0x00,0x00, + 0xF8,0x0A,0x00,0x20,0x80,0x79,0x00,0x00,0x41,0xF2,0x01,0x00,0x10,0x00,0x10,0x00, + 0x0E,0x48,0x0F,0x4A,0x43,0x78,0x0F,0x49,0xD0,0x1D,0xC9,0x88,0xFF,0x32,0xF9,0x30, + 0xC1,0x32,0x02,0x2B,0x04,0xD9,0x12,0x6A,0x49,0x06,0x0C,0xD4,0xC2,0x69,0x0A,0xE0, + 0x02,0x2B,0x04,0xD1,0xD2,0x69,0x49,0x06,0x05,0xD4,0x82,0x69,0x03,0xE0,0x92,0x69, + 0x49,0x06,0x00,0xD4,0x42,0x69,0x04,0x48,0x42,0x62,0x70,0x47,0x50,0x07,0x00,0x20, + 0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20,0xC0,0x90,0x00,0x40,0xF0,0xB4,0x0E,0x48, + 0x0E,0x49,0xC0,0x88,0x03,0x23,0x01,0x26,0x42,0x06,0x0D,0x48,0x0D,0x4D,0x0E,0x4F, + 0x9B,0x03,0xC8,0x24,0xF6,0x03,0x00,0x2A,0x01,0x61,0x01,0xDA,0x0B,0x49,0x01,0xE0, + 0x0A,0x49,0x32,0x39,0x41,0x61,0x83,0x61,0xC4,0x61,0x03,0x62,0x45,0x62,0x86,0x62, + 0xC7,0x62,0xF0,0xBC,0x70,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0x00,0x80,0x00,0x03, + 0x40,0xA1,0x00,0x40,0x2C,0xC1,0x00,0x00,0x64,0x80,0x00,0x00,0x90,0x01,0x01,0x00, + 0x70,0xB5,0x01,0x25,0x6D,0x03,0x28,0x00,0xFA,0xF7,0xDA,0xFA,0x16,0x48,0x04,0x68, + 0x28,0x00,0xFA,0xF7,0xCD,0xFA,0x15,0x4D,0xE2,0x06,0xD2,0x0E,0xE0,0x04,0x14,0x49, + 0xC0,0x0E,0x2A,0x71,0xE8,0x70,0x0B,0x7D,0x12,0x48,0x83,0x76,0x4B,0x7D,0xC3,0x76, + 0x83,0x7E,0x11,0x48,0xDC,0x07,0x0A,0xD0,0x9B,0x07,0x04,0xD5,0xEA,0x78,0x52,0x1E, + 0x02,0x72,0x00,0x22,0x02,0xE0,0x52,0x1E,0x02,0x72,0x01,0x22,0x6A,0x71,0x8A,0x7D, + 0x42,0x72,0xCA,0x7D,0x82,0x72,0x0A,0x7E,0xC2,0x72,0x4A,0x7E,0x02,0x73,0x89,0x7E, + 0x41,0x73,0x70,0xBC,0x08,0xBC,0x18,0x47,0x40,0x90,0x00,0x40,0xF8,0x0A,0x00,0x20, + 0x00,0x78,0x00,0x00,0x30,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20,0xF8,0xB5,0x05,0x00, + 0x0E,0x00,0x14,0x00,0x19,0x00,0x10,0x00,0xFA,0xF7,0x96,0xFF,0x00,0x28,0x05,0xD0, + 0x30,0x68,0x40,0x1E,0x30,0x60,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x2D,0x48,0x80,0x7E, + 0xC0,0x07,0x26,0xD0,0xE0,0x79,0x05,0x28,0x21,0xD0,0x09,0x28,0x21,0xD1,0x2A,0x49, + 0x6D,0x08,0x6D,0x00,0x23,0x78,0x01,0x20,0x8C,0x46,0x13,0xE0,0x0A,0x22,0x01,0x00, + 0x51,0x43,0x26,0x4A,0x89,0x18,0x0A,0x00,0xFF,0x32,0xA1,0x32,0x97,0x7F,0xBB,0x42, + 0x07,0xD1,0xFF,0x31,0xC1,0x31,0x0F,0x88,0x67,0x80,0xD2,0x7F,0x62,0x70,0x49,0x88, + 0xA1,0x80,0x40,0x1C,0x61,0x46,0x49,0x78,0x81,0x42,0xE7,0xDA,0x01,0xE0,0x01,0x20, + 0x05,0x43,0x0F,0x20,0xA9,0x07,0x80,0x06,0x81,0x43,0x20,0x78,0x3F,0x22,0x92,0x02, + 0x00,0x07,0x80,0x08,0x01,0x43,0x16,0x48,0x01,0x40,0x60,0x88,0x80,0x05,0x80,0x09, + 0x01,0x43,0x60,0x78,0x91,0x43,0x80,0x06,0x00,0x0C,0x01,0x43,0x08,0x04,0x80,0x0E, + 0x0A,0x28,0x09,0xD2,0x40,0x1C,0x0A,0x23,0x58,0x43,0x3F,0x28,0x00,0xDD,0x3F,0x20, + 0x80,0x06,0x91,0x43,0x00,0x0C,0x01,0x43,0x88,0x0A,0xA1,0x88,0x80,0x02,0x01,0x22, + 0x89,0x05,0x89,0x0D,0x08,0x43,0x31,0x68,0x52,0x07,0x89,0x00,0x89,0x18,0x48,0x60, + 0xA1,0xE7,0x00,0x00,0x30,0x0A,0x00,0x20,0x50,0x07,0x00,0x20,0xF0,0x05,0x00,0x20, + 0xFF,0xFF,0x00,0xFC,0x0E,0x49,0x10,0xB4,0x48,0x7B,0x00,0x28,0x10,0xD0,0x00,0x09, + 0x00,0x01,0x00,0x23,0x01,0x22,0x40,0x28,0x0C,0xD0,0x80,0x28,0x08,0xD1,0x4A,0x72, + 0x8A,0x72,0x08,0x48,0xCA,0x72,0xCA,0x71,0x00,0x78,0x00,0x28,0x06,0xD1,0x0B,0x73, + 0x10,0xBC,0x70,0x47,0x8B,0x71,0xCA,0x71,0x0B,0x72,0xF9,0xE7,0x0A,0x73,0xF7,0xE7, + 0xF8,0x0A,0x00,0x20,0xA0,0x7A,0x00,0x00,0xF8,0xB5,0x06,0x9F,0x07,0x9D,0x0C,0x00, + 0x1E,0x00,0x88,0x42,0x09,0xD3,0x21,0x00,0x10,0x00,0xF9,0xF7,0xE9,0xFD,0x38,0x80, + 0x21,0x00,0x30,0x00,0xF9,0xF7,0xE4,0xFD,0x28,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0xF8,0xB5,0x08,0xAD,0x60,0xCD,0x04,0x00,0x06,0x98,0x91,0x42,0x04,0xDA,0x65,0x80, + 0xA6,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x99,0x42,0x02,0xDB,0x60,0x80,0x07,0x98, + 0x0F,0xE0,0x8F,0x1A,0x40,0x1B,0x78,0x43,0x99,0x1A,0x00,0x91,0xF9,0xF7,0xC8,0xFD, + 0x40,0x19,0x60,0x80,0x07,0x98,0x00,0x99,0x80,0x1B,0x78,0x43,0xF9,0xF7,0xC0,0xFD, + 0x80,0x19,0xA0,0x80,0xE5,0xE7,0x00,0x00,0xF0,0xB4,0x8C,0x79,0x14,0x4B,0x00,0x26, + 0x22,0x07,0x92,0x08,0x1A,0x40,0xCB,0x79,0x92,0x0A,0x92,0x02,0x5B,0x07,0x09,0xD5, + 0x10,0x4D,0xAB,0x89,0x00,0x2B,0x05,0xD0,0x9F,0x05,0xBF,0x0D,0x3A,0x43,0x64,0x00, + 0x64,0x19,0xE3,0x81,0x3F,0x23,0x9B,0x02,0x9A,0x43,0xCB,0x79,0x80,0x00,0x9B,0x06, + 0x1B,0x0C,0x1A,0x43,0x01,0x23,0x5B,0x07,0xC0,0x18,0x42,0x60,0xC8,0x79,0xC0,0x06, + 0x80,0x0F,0x03,0xD0,0x04,0x48,0x01,0x21,0xC1,0x75,0x06,0x76,0xF0,0xBC,0x70,0x47, + 0xFF,0xFF,0x00,0xFC,0xF0,0x05,0x00,0x20,0x30,0x0A,0x00,0x20,0x30,0xB4,0x0E,0x4D, + 0x0C,0x4C,0x2D,0x78,0x68,0x43,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x00,0x0A, + 0x09,0x0E,0x82,0x18,0xC9,0x18,0x00,0x20,0x4B,0x1E,0xC0,0x43,0xFF,0x2B,0x06,0xD2, + 0x53,0x1E,0xFF,0x2B,0x03,0xD2,0x10,0x02,0x08,0x43,0x60,0x53,0x00,0x20,0x30,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0x10,0xB4,0x05,0x4C, + 0x03,0x4B,0x24,0x78,0x60,0x43,0x40,0x18,0x40,0x00,0x1A,0x52,0x10,0xBC,0x70,0x47, + 0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0x30,0xB4,0x0E,0x4B,0x0C,0x4C,0x1B,0x78, + 0x58,0x43,0x40,0x18,0x43,0x00,0xE0,0x5A,0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A, + 0x82,0x18,0x00,0x20,0x4D,0x1E,0xC0,0x43,0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D, + 0x03,0xD2,0x10,0x02,0x08,0x43,0xE0,0x52,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0xF0,0xB4,0x15,0x4A,0x15,0x4B,0x52,0x7D, + 0x13,0x4F,0x00,0x21,0x16,0x02,0x16,0x43,0x1A,0x78,0x10,0x4D,0x42,0x43,0x20,0x3F, + 0x12,0xE0,0xBB,0x7D,0x8B,0x42,0x0D,0xD0,0xFB,0x7D,0x8B,0x42,0x0A,0xD0,0x3B,0x7E, + 0x8B,0x42,0x07,0xD0,0x7B,0x7E,0x8B,0x42,0x04,0xD0,0xBB,0x7E,0x8B,0x42,0x01,0xD0, + 0x53,0x00,0xEE,0x52,0x52,0x1C,0x49,0x1C,0x06,0x4B,0x04,0x00,0x1B,0x78,0x5C,0x43, + 0xE3,0x18,0x93,0x42,0xE5,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20,0xF0,0xB4,0x14,0x4A,0x13,0x4B,0x52,0x7D, + 0x00,0x21,0x11,0x4C,0x15,0x02,0x15,0x43,0x11,0x4E,0x20,0x3B,0x13,0xE0,0x9A,0x7D, + 0x8A,0x42,0x0D,0xD0,0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E,0x8A,0x42,0x07,0xD0, + 0x5A,0x7E,0x8A,0x42,0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00,0xA5,0x52, + 0x32,0x78,0x80,0x18,0x49,0x1C,0x07,0x4A,0x37,0x78,0x12,0x78,0x7A,0x43,0x82,0x42, + 0xE5,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x20,0x78,0x00,0x00, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0x02,0x04,0x04,0x49,0x02,0x43,0x00,0x20, + 0x40,0x1C,0x04,0xC1,0x80,0x28,0xFB,0xD3,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0xF8,0xB5,0x03,0x00,0x1E,0x49,0x05,0x20,0xC0,0x01,0x0A,0x18,0x0B,0x20,0x80,0x01, + 0x0D,0x18,0xC0,0x31,0x08,0x6A,0x19,0x4C,0x00,0x90,0x4F,0x6A,0x0E,0x69,0x28,0x68, + 0x00,0xF0,0x0E,0xFA,0x06,0x04,0x0A,0x12,0x15,0x1F,0x26,0x1C,0xC8,0x68,0x20,0x62, + 0x50,0x6B,0x60,0x62,0x02,0x20,0x04,0xE0,0xC8,0x69,0x20,0x62,0x68,0x68,0x60,0x62, + 0x04,0x20,0xE0,0x62,0x00,0x98,0x11,0xE0,0x26,0x62,0x90,0x6B,0x02,0xE0,0x48,0x69, + 0x20,0x62,0xD0,0x6B,0x60,0x62,0x04,0x20,0xE0,0x62,0x67,0x63,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x26,0x62,0x60,0x62,0x04,0x20,0xE0,0x62,0x88,0x6A,0x60,0x63,0xF5,0xE7, + 0x89,0x69,0x21,0x62,0x60,0x62,0x05,0x20,0xE0,0x62,0xEF,0xE7,0x80,0x90,0x00,0x40, + 0x00,0x78,0x00,0x00,0x07,0x4A,0x10,0xB5,0xD1,0x88,0x40,0x23,0x00,0x28,0x01,0xD0, + 0x19,0x43,0x00,0xE0,0x99,0x43,0xD1,0x80,0xFF,0xF7,0x14,0xFD,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0xFE,0xB5,0x41,0x4C,0x05,0x00,0x27,0x6A, + 0x0E,0x00,0x60,0x6A,0x02,0x90,0x60,0x6B,0x01,0x90,0xE0,0x6A,0x00,0x90,0x00,0x20, + 0xFF,0xF7,0x9E,0xFF,0x3B,0x48,0x20,0x62,0x22,0x20,0x60,0x62,0x07,0x20,0x40,0x02, + 0x60,0x63,0x02,0x20,0xE0,0x62,0x00,0x20,0xFB,0xF7,0xDA,0xFC,0x36,0x48,0x00,0x7A, + 0x00,0x28,0x01,0xD0,0xFE,0xF7,0xE6,0xF9,0xFB,0xF7,0x1E,0xFD,0x2C,0x00,0x46,0xE0, + 0x68,0x1E,0x84,0x42,0x01,0xD1,0xFB,0xF7,0x41,0xFD,0xFB,0xF7,0xE3,0xFC,0xFB,0xF7, + 0x91,0xFD,0x00,0x2E,0x2E,0xD1,0xA8,0x00,0x05,0x21,0xF9,0xF7,0x23,0xFD,0xA0,0x42, + 0x03,0xD8,0x01,0x22,0x11,0x00,0x04,0x20,0x21,0xE0,0x68,0x00,0x28,0x18,0x05,0x21, + 0xF9,0xF7,0x18,0xFD,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x03,0x20,0x16,0xE0, + 0x68,0x00,0x05,0x21,0xF9,0xF7,0x0E,0xFD,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00, + 0x02,0x20,0x0C,0xE0,0x05,0x21,0x28,0x00,0xF9,0xF7,0x04,0xFD,0xA0,0x42,0x03,0xD8, + 0x01,0x22,0x11,0x00,0x10,0x00,0x02,0xE0,0x01,0x22,0x11,0x00,0x00,0x20,0xFB,0xF7, + 0x95,0xFA,0x0C,0xE0,0x68,0x00,0x03,0x21,0xF9,0xF7,0xF4,0xFC,0xA0,0x42,0xDB,0xD9, + 0x03,0x21,0x28,0x00,0xF9,0xF7,0xEE,0xFC,0xA0,0x42,0xE9,0xD8,0xDE,0xE7,0x64,0x1E, + 0xB6,0xD2,0x0E,0x48,0x44,0x88,0x03,0xE0,0xFB,0xF7,0x9C,0xFC,0xFB,0xF7,0x4A,0xFD, + 0x64,0x1E,0xF9,0xD2,0xFB,0xF7,0xC0,0xFC,0x05,0x48,0x07,0x62,0x02,0x99,0x41,0x62, + 0x01,0x99,0x41,0x63,0x00,0x99,0xC1,0x62,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x80,0x90,0x00,0x40,0x01,0x02,0x00,0x00,0x80,0x78,0x00,0x00,0xE0,0x7A,0x00,0x00, + 0x30,0xB4,0x0D,0x4D,0xEC,0x7B,0x00,0x2C,0x13,0xD0,0x02,0x68,0x0B,0x68,0xA4,0x07, + 0x03,0xD5,0x2C,0x8C,0xA2,0x1A,0x52,0x1E,0x02,0x60,0xEC,0x7B,0x64,0x07,0x03,0xD5, + 0x6C,0x8C,0xE3,0x1A,0x5B,0x1E,0x0B,0x60,0xEC,0x7B,0xE4,0x07,0x01,0xD0,0x03,0x60, + 0x0A,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x78,0x00,0x00,0x02,0x49,0x00,0x03, + 0x40,0x18,0xC0,0x68,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x49,0x01,0x20, + 0x08,0x70,0x70,0x47,0xAD,0x0B,0x00,0x20,0x30,0xB4,0x05,0x03,0x05,0x48,0x02,0x9C, + 0x28,0x18,0x02,0x60,0x41,0x60,0x00,0x2B,0x00,0xD0,0x03,0x61,0x84,0x60,0x30,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x02,0x4A,0x00,0x03,0x80,0x18,0x01,0x60, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68, + 0xFF,0x22,0x01,0x32,0x11,0x43,0x81,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x91,0x43,0x81,0x60, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x0F,0x49,0x89,0x7B,0x81,0x42,0x00,0xD2, + 0x08,0x00,0x01,0x22,0x52,0x07,0x01,0x28,0x0C,0xD1,0x91,0x68,0x8B,0x0F,0xDB,0x07, + 0x04,0xD0,0x89,0x00,0x89,0x08,0x83,0x07,0xC9,0x18,0x01,0xE0,0x89,0x00,0x89,0x08, + 0x51,0x60,0x07,0xE0,0x01,0x28,0x05,0xD9,0x01,0x21,0xC9,0x07,0x83,0x05,0x9B,0x0D, + 0x19,0x43,0xF5,0xE7,0x10,0x60,0x70,0x47,0x00,0x78,0x00,0x00,0xF8,0xB5,0x17,0x48, + 0x00,0x24,0x40,0x78,0x00,0x28,0x25,0xD0,0x15,0x4D,0x13,0x26,0x00,0x20,0xB6,0x01, + 0xAB,0x19,0x12,0xE0,0x81,0x00,0x49,0x19,0x89,0x19,0xCA,0x68,0x97,0x0F,0xFF,0x07, + 0x0A,0xD0,0x92,0x00,0x01,0x27,0x92,0x08,0xFF,0x07,0xD2,0x19,0x64,0x1C,0xCA,0x60, + 0xA1,0x00,0xBF,0x08,0xC9,0x19,0x4A,0x60,0x40,0x1C,0x99,0x7A,0x81,0x42,0xE9,0xDC, + 0x08,0x48,0x09,0x22,0x00,0x21,0xFE,0xF7,0xC7,0xF8,0x20,0x00,0xFF,0xF7,0xB4,0xFF, + 0xFC,0xF7,0xAA,0xFC,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x50,0x07,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xB1,0x0A,0x00,0x20,0x08,0x48,0x10,0xB5,0x04,0x04,0x24,0x0C, + 0x07,0x49,0x00,0x22,0x20,0x00,0xF9,0xF7,0x25,0xFC,0x05,0x4A,0x05,0x49,0x20,0x00, + 0x00,0x23,0xF9,0xF7,0x27,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00, + 0x00,0x03,0x00,0x00,0xC8,0x02,0x00,0x20,0x70,0xB5,0x05,0x00,0x08,0x48,0x00,0x22, + 0x04,0x04,0x24,0x0C,0x40,0x21,0x20,0x00,0xF9,0xF7,0x0C,0xFC,0x40,0x22,0x29,0x00, + 0x20,0x00,0x00,0x23,0xF9,0xF7,0x0E,0xFC,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xC0,0x75,0x00,0x00,0x02,0x4B,0x58,0x60,0x99,0x60,0x1A,0x60,0x70,0x47,0x00,0x00, + 0x00,0x30,0x00,0x40,0x01,0x04,0x00,0xB5,0x03,0x48,0x02,0x22,0x09,0x0C,0xFF,0xF7, + 0xF1,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00,0xE1,0x04,0x00,0x00,0x02,0x48,0x01,0x68, + 0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x48,0x01,0x68, + 0x49,0x08,0x49,0x00,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x49,0x02,0x22, + 0x0A,0x61,0x88,0x60,0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40,0x01,0x49,0x01,0x20, + 0x08,0x70,0x70,0x47,0xAC,0x0B,0x00,0x20,0x00,0x04,0x00,0x0C,0x01,0x21,0x89,0x07, + 0x08,0x61,0x70,0x47,0x01,0x20,0x80,0x07,0x81,0x68,0x82,0x15,0x11,0x43,0x81,0x60, + 0x70,0x47,0x01,0x21,0x89,0x07,0x88,0x68,0x8A,0x15,0x90,0x43,0x88,0x60,0x70,0x47, + 0x70,0xB4,0x03,0xAC,0x30,0xCC,0x06,0x68,0x96,0x42,0x01,0xDB,0x32,0x00,0x00,0xE0, + 0x02,0x60,0x9A,0x42,0x00,0xDD,0x03,0x60,0x08,0x68,0xA0,0x42,0x00,0xDA,0x0C,0x60, + 0x08,0x68,0xA8,0x42,0x00,0xDD,0x0D,0x60,0x70,0xBC,0x70,0x47,0x00,0x47,0x00,0x00, + 0x78,0x47,0xC0,0x46,0x01,0xC0,0x5E,0xE5,0x0C,0x00,0x53,0xE1,0x03,0x30,0xDE,0x37, + 0x0C,0x30,0xDE,0x27,0x83,0xC0,0x8E,0xE0,0x1C,0xFF,0x2F,0xE1,0x10,0xB5,0xF9,0xF7, + 0xA1,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x12,0x00,0x13,0x00,0xA0,0x00,0x13,0x00, + 0x2E,0x01,0x13,0x00,0x2E,0x01,0x3E,0x00,0x2E,0x01,0x69,0x00,0x50,0x00,0x78,0x00, + 0xA0,0x00,0x78,0x00,0x2E,0x01,0x94,0x00,0x2E,0x01,0xBF,0x00,0x2E,0x01,0xEB,0x00, + 0xF0,0x00,0xF0,0x00,0xA0,0x00,0xF0,0x00,0x50,0x00,0xF0,0x00,0x12,0x00,0x0C,0x01, + 0x12,0x00,0x37,0x01,0x12,0x00,0x62,0x01,0x12,0x00,0x8E,0x01,0x12,0x00,0xCD,0x01, + 0x30,0x00,0xAE,0x01,0x50,0x00,0xCD,0x01,0x70,0x00,0xAE,0x01,0x90,0x00,0xCD,0x01, + 0xB0,0x00,0xAE,0x01,0xD0,0x00,0xCD,0x01,0xF0,0x00,0xAE,0x01,0x10,0x01,0xCD,0x01, + 0x2E,0x01,0xAE,0x01,0xF0,0x00,0x68,0x01,0xA0,0x00,0x68,0x01,0x89,0x08,0x49,0x1E, + 0xC9,0x04,0x01,0x22,0xC9,0x08,0xD2,0x07,0x89,0x18,0x40,0x04,0x40,0x0C,0x01,0x43, + 0x03,0x48,0x41,0x61,0x41,0x69,0x00,0x29,0xFC,0xDB,0x80,0x6B,0x70,0x47,0x00,0x00, + 0x00,0x70,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0B,0x30,0x0B,0x30,0x01,0x03,0x03,0x00,0x01,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,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,0xFF,0x00,0x00,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFC,0x0F,0x00,0x7F,0xFC,0x0F,0x01,0x3F,0xFE,0x0F,0x02,0x1F,0xFF,0x0F,0x03, + 0x8F,0xFF,0x0F,0x04,0xC7,0xFF,0x0F,0x05,0xE3,0xFF,0x0F,0x06,0xF3,0xFB,0x0F,0x07, + 0xFB,0xF3,0x0F,0x08,0xFF,0xE3,0x0F,0x09,0xFF,0xC7,0x0F,0x0A,0xFF,0x8F,0x0F,0x0B, + 0xFF,0x1F,0x0F,0x0C,0xFF,0x3F,0x0E,0x0D,0xFF,0x7F,0x0C,0x0E,0xFF,0xFF,0x0C,0x4F, + 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x13, + 0x00,0x01,0x90,0x08,0x80,0x02,0x80,0x0A,0x40,0x01,0x70,0x0C,0xA0,0x00,0x60,0x0E, + 0x50,0x00,0x50,0x10,0x28,0x00,0x40,0x12,0x14,0x00,0x30,0x1C,0x08,0x04,0x20,0x1E, + 0x04,0x08,0xA0,0x20,0x00,0x14,0xB0,0x22,0x00,0x28,0xC0,0x00,0x00,0x50,0xD0,0x00, + 0x00,0xA0,0xE0,0x00,0x00,0x40,0xF1,0x00,0x00,0x80,0x02,0x01,0x00,0x00,0x11,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF0,0xC3,0x03,0x00,0x20,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x03,0x03,0x00,0x01,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x05,0x08,0x02,0x00, + 0x00,0x00,0x00,0x00,0x01,0x02,0x01,0x08,0xFF,0xFF,0xFF,0x00,0x00,0xC8,0x05,0x1E, + 0x40,0x01,0xE0,0x01,0xE8,0x03,0x00,0x00,0x74,0x27,0x00,0x00,0x3C,0x28,0x00,0x00, + 0xE0,0x93,0x04,0x00,0x01,0x5A,0xA4,0x06,0xA4,0x06,0x00,0x00,0x04,0xC8,0x65,0x65, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x6E,0x00,0x7A,0x00,0x01,0x00,0x04,0x00, + 0x78,0x00,0xA0,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x15,0x04,0x02,0x32,0x00, + 0x2C,0x01,0x2C,0x01,0x00,0x00,0x00,0x00,0x50,0x00,0x5A,0x00,0x32,0x00,0xB8,0x0B, + 0x50,0x00,0x5A,0x00,0x32,0x00,0xE8,0x03,0x64,0x00,0x32,0x00,0x00,0x00,0x00,0x00, + 0x04,0x01,0x05,0x0F,0x01,0x01,0x04,0x00,0x01,0x05,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x00,0x0E,0x00,0x00,0x60,0x0F,0x00,0x00,0x60,0x0F,0x00,0x00,0x9D,0x39,0xC8,0x00, + 0x28,0x00,0x1D,0x00,0x64,0x46,0x64,0x46,0x32,0x00,0x32,0x00,0x64,0x00,0xC8,0x00, + 0x64,0x00,0x64,0x00,0x01,0x00,0x0A,0x02,0x3C,0x00,0x2C,0x01,0x2C,0x01,0x2C,0x01, + 0x90,0x01,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00, + 0x0A,0x02,0x32,0x00,0xB8,0x0B,0xBC,0x02,0x0A,0x00,0x32,0x32,0x96,0x32,0x40,0x64, + 0x64,0x64,0xFF,0x00,0x00,0x00,0x5E,0x01,0x3C,0x00,0x1E,0x00,0x28,0xFA,0x0C,0x78, + 0x00,0x05,0x04,0x0A,0x01,0x06,0x20,0x03,0x3C,0x00,0x0A,0x3C,0x00,0x05,0x1E,0x00, + 0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xDC,0x00,0x05,0x02,0x01,0x01,0x01,0x00,0x02,0x03,0x05,0x00,0x03,0x03,0x06,0x06, + 0x09,0x09,0x0C,0x0C,0x0F,0x55,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00,0x41,0xF2,0x01,0x00, + 0x0A,0x0A,0xA8,0x00,0x10,0x5F,0x20,0x3F,0x00,0x00,0x00,0x00,0x3C,0x00,0x5A,0x00, + 0x99,0x19,0xC8,0x00,0x32,0x00,0x1D,0x00,0x64,0x46,0x64,0x46,0x32,0x00,0x32,0x00, + 0x64,0x00,0x64,0x00,0x64,0x00,0x64,0x00,0x01,0x00,0x0A,0x02,0x50,0x00,0x5E,0x01, + 0x5E,0x01,0x5E,0x01,0x90,0x01,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00, + 0xFF,0xFF,0x00,0x00,0x08,0x02,0x32,0x00,0xDC,0x05,0xF4,0x01,0x0A,0x00,0x32,0x32, + 0x96,0x32,0x40,0x64,0x64,0x64,0xFF,0x00,0x00,0x00,0x5E,0x01,0x28,0x00,0x14,0x00, + 0xFF,0xFF,0x0D,0xFF,0x00,0x05,0x04,0x0A,0x02,0x06,0xD0,0x07,0x3C,0x00,0x0F,0x3C, + 0x00,0x05,0x1E,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xDC,0x00,0x05,0x04,0x01,0x01,0x01,0x00,0x04,0x03,0x01,0x00, + 0x04,0x04,0x08,0x08,0x0C,0x0C,0x10,0x10,0x14,0x55,0x01,0x00,0x05,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00, + 0x41,0xF2,0x01,0x00,0x08,0x08,0xA8,0x00,0x20,0x5F,0x20,0x3F,0x00,0x00,0x00,0x00, + 0x32,0x00,0x28,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00, + 0x96,0x00,0x0F,0x00,0x05,0x00,0x00,0x00,0x1E,0x00,0xC8,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x58,0x02,0xBC,0x02,0x00,0x00, + 0x22,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00, + 0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x64,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x14,0x00,0x00,0x5A,0x5A,0x5A,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x28,0x00,0x50,0x00,0x1E,0x00,0x50,0x00,0x28,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x95,0x00,0x00,0x00,0x00,0x00,0x00,0xD0,0x47,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFF,0x0F,0x02,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x10,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x00,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x60,0x0F,0x00,0x00,0x01,0x00,0x00,0x00,0xFF,0x0F,0xC8,0x00, + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x41,0x42,0x01,0x00, + 0x10,0x00,0x10,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00,0x08,0x08,0x88,0x00, + 0x20,0x5F,0x20,0x3F,0xFF,0xFF,0x00,0x00,0x10,0x10,0x08,0x84,0x00,0x00,0xAC,0x0D, + 0x01,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x08,0x20, + 0x51,0x30,0x10,0x00,0x11,0x90,0x01,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00, + 0x54,0x55,0x45,0x00,0x10,0x30,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x00,0x00,0x00, + 0x38,0x31,0x08,0x01,0x70,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x30,0x12,0x14,0x00,0x00,0x1C,0x0C,0x06,0x00, + 0x00,0x04,0x7C,0x74,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x1F,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x80,0x00,0x03,0x64,0x40,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x00,0x00,0x00, + 0x00,0x80,0x00,0x00,0xC8,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x40,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01, + 0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01, + 0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01, + 0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01, + 0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x0D,0x00,0xA0,0xE1,0x10,0xD0,0x9F,0xE5,0x01,0x40,0x2D,0xE9,0x9D,0x01,0x00,0xEB, + 0x01,0x40,0xBD,0xE8,0x00,0xD0,0xA0,0xE1,0x1E,0xFF,0x2F,0xE1,0xF0,0x0F,0x00,0x20, + 0x92,0x10,0x00,0xE0,0x02,0xC0,0x52,0x1E,0xFC,0xD2,0x70,0x47,0xF9,0x49,0xFA,0x48, + 0x10,0xB4,0x41,0x61,0xF9,0x49,0xF8,0x4C,0x01,0x63,0x0F,0x20,0x00,0x06,0x40,0x34, + 0xE0,0x60,0x00,0x20,0x81,0x00,0x0A,0x19,0x11,0x6A,0x40,0x1C,0x8B,0x00,0xC9,0x01, + 0xDB,0x0E,0xC9,0x0E,0x49,0x06,0x1B,0x05,0x19,0x43,0x14,0x28,0x11,0x62,0xF1,0xD3, + 0xED,0x48,0xEF,0x49,0x80,0x30,0x01,0x63,0xEE,0x49,0x41,0x63,0xEE,0x49,0x08,0x69, + 0x40,0x08,0x40,0x00,0x08,0x61,0xEC,0x48,0x40,0x30,0x01,0x68,0xEB,0x49,0x01,0x60, + 0xEB,0x48,0xEC,0x49,0xC8,0x60,0x10,0xBC,0x70,0x47,0xFC,0xB5,0xEA,0x4C,0x02,0x00, + 0x30,0x34,0x18,0xCC,0x00,0x20,0x00,0x94,0xE8,0x4C,0x24,0x7D,0xE4,0x07,0x2D,0xD0, + 0xE7,0x4C,0x25,0x79,0xE6,0x78,0xE5,0x4C,0xAE,0x46,0xA5,0x7D,0x00,0x2E,0x76,0x46, + 0xAC,0x46,0xE5,0x7D,0x01,0x95,0x25,0x7E,0x67,0x7E,0xA4,0x7E,0x10,0xD0,0xB2,0x42, + 0x1C,0xD1,0x8C,0x45,0x08,0xD0,0x01,0x9A,0x8A,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0, + 0x8F,0x42,0x01,0xD0,0x8C,0x42,0x00,0xD1,0x00,0x98,0xFC,0xBC,0x08,0xBC,0x18,0x47, + 0xB1,0x42,0x0B,0xD1,0x94,0x45,0xF7,0xD0,0x01,0x99,0x91,0x42,0xF4,0xD0,0x95,0x42, + 0xF2,0xD0,0x97,0x42,0xF0,0xD0,0x94,0x42,0xEE,0xD0,0xEE,0xE7,0x18,0x00,0xEC,0xE7, + 0x30,0xB4,0xCF,0x4B,0xCF,0x4C,0x5B,0x78,0x58,0x43,0x40,0x18,0x43,0x00,0xE0,0x5A, + 0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18,0x00,0x20,0x4D,0x1E,0xC0,0x43, + 0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2,0x10,0x02,0x08,0x43,0xE0,0x52, + 0x00,0x20,0x30,0xBC,0x70,0x47,0xF3,0xB5,0xC3,0x48,0x82,0xB0,0x01,0x90,0x00,0x20, + 0x00,0x90,0xB9,0x48,0xC1,0x68,0x01,0x22,0x11,0x43,0xC1,0x60,0xBC,0x4F,0xB6,0x48, + 0xC0,0x68,0xC0,0x07,0xFB,0xD0,0x00,0x24,0x26,0x00,0x25,0xE0,0x00,0x25,0x1F,0xE0, + 0x29,0x00,0x30,0x00,0xFF,0xF7,0x91,0xFF,0x00,0x28,0x17,0xD0,0x79,0x78,0x01,0x9A, + 0x71,0x43,0x49,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A,0x02,0x99, + 0x00,0x29,0x02,0xD0,0x00,0x28,0x09,0xDA,0x01,0xE0,0x00,0x28,0x06,0xDD,0x03,0x9A, + 0x29,0x00,0x30,0x00,0xFF,0xF7,0xB4,0xFF,0x40,0x1C,0x00,0xD1,0x64,0x1C,0x6D,0x1C, + 0x78,0x78,0x85,0x42,0xDC,0xD3,0x76,0x1C,0xB8,0x78,0x86,0x42,0xD6,0xD3,0xB8,0x78, + 0x79,0x78,0x48,0x43,0xA0,0x42,0x0A,0xD0,0x00,0x98,0x41,0x1C,0x00,0x91,0x01,0x21, + 0x49,0x02,0x88,0x42,0x03,0xD8,0x98,0x48,0xC1,0x68,0xC1,0x60,0xBF,0xE7,0xFF,0xBC, + 0x08,0xBC,0x18,0x47,0xF0,0xB4,0x00,0x21,0x9A,0x4C,0x98,0x4B,0x98,0x4E,0x1E,0x25, + 0x13,0xE0,0x9A,0x7D,0x8A,0x42,0x0D,0xD0,0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E, + 0x8A,0x42,0x07,0xD0,0x5A,0x7E,0x8A,0x42,0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0, + 0x42,0x00,0xA5,0x52,0x72,0x78,0x80,0x18,0x49,0x1C,0xB2,0x78,0x77,0x78,0x7A,0x43, + 0x82,0x42,0xE6,0xD8,0xF0,0xBC,0x70,0x47,0xF0,0xB4,0x89,0x4B,0x00,0x21,0x5A,0x78, + 0x1E,0x26,0x88,0x4D,0x42,0x43,0x85,0x4F,0x12,0xE0,0xBB,0x7D,0x8B,0x42,0x0D,0xD0, + 0xFB,0x7D,0x8B,0x42,0x0A,0xD0,0x3B,0x7E,0x8B,0x42,0x07,0xD0,0x7B,0x7E,0x8B,0x42, + 0x04,0xD0,0xBB,0x7E,0x8B,0x42,0x01,0xD0,0x53,0x00,0xEE,0x52,0x52,0x1C,0x49,0x1C, + 0x7B,0x4B,0x04,0x00,0x5B,0x78,0x5C,0x43,0xE3,0x18,0x93,0x42,0xE5,0xD8,0xD9,0xE7, + 0x02,0x04,0x78,0x49,0x02,0x43,0x00,0x20,0x40,0x1C,0x04,0xC1,0x80,0x28,0xFB,0xD3, + 0x70,0x47,0xF1,0xB5,0x72,0x4C,0x70,0x4D,0x21,0x78,0x73,0x4F,0xA8,0x6B,0x00,0x29, + 0x86,0xB0,0x00,0xD0,0x00,0x0C,0x00,0x06,0x00,0x0E,0x01,0x02,0x01,0x43,0x08,0x04, + 0x00,0x0C,0xFF,0xF7,0xE5,0xFF,0x69,0x48,0x00,0x7D,0xC0,0x07,0x08,0xD0,0xE0,0x78, + 0x00,0x28,0x20,0x79,0x02,0xD0,0xFF,0xF7,0xB7,0xFF,0x01,0xE0,0xFF,0xF7,0x92,0xFF, + 0x5D,0x49,0x00,0x20,0x80,0x31,0xC8,0x62,0x61,0x49,0xE8,0x6B,0x09,0x78,0x00,0x29, + 0x08,0xD1,0x5C,0x49,0x00,0x22,0x4A,0x63,0x4A,0x68,0x00,0x07,0x12,0x09,0x12,0x01, + 0x00,0x0F,0x07,0xE0,0x57,0x49,0x00,0x22,0x4A,0x63,0x4A,0x68,0x00,0x03,0x12,0x09, + 0x12,0x01,0x00,0x0F,0x02,0x43,0x4A,0x60,0x03,0x24,0x26,0x1F,0x01,0xE0,0x03,0x2C, + 0x02,0xD1,0x01,0x25,0xED,0x43,0x09,0xE0,0x02,0x2C,0x01,0xD1,0x01,0x25,0x05,0xE0, + 0x01,0x2C,0x01,0xD1,0x35,0x00,0x01,0xE0,0x00,0x2C,0xF7,0xD0,0xE0,0x07,0xC0,0x0F, + 0x29,0x00,0xFF,0xF7,0x10,0xFF,0x64,0x1E,0xE9,0xD5,0x49,0x48,0x48,0x4D,0x00,0x78, + 0x0C,0x35,0x00,0x28,0x2F,0xD1,0x40,0x48,0x09,0x21,0x01,0x23,0xC2,0x68,0x1A,0x43, + 0xC2,0x60,0xC2,0x68,0xD2,0x07,0xFC,0xD0,0x49,0x1E,0xF7,0xD2,0x00,0x26,0x17,0xE0, + 0x00,0x24,0x10,0xE0,0x21,0x00,0x30,0x00,0xFF,0xF7,0x9F,0xFE,0x00,0x28,0x09,0xD0, + 0x3B,0x48,0x40,0x78,0x70,0x43,0x00,0x19,0x81,0x00,0x79,0x58,0x09,0x05,0x09,0x0D, + 0x40,0x00,0x29,0x52,0x64,0x1C,0x36,0x48,0x40,0x78,0x84,0x42,0xEA,0xD3,0x76,0x1C, + 0x33,0x48,0x81,0x78,0x8E,0x42,0xE3,0xD3,0x01,0x78,0x00,0x29,0x03,0xD1,0x80,0x68, + 0x2C,0x49,0x48,0x63,0x05,0xE0,0x2E,0x48,0x80,0x68,0x01,0x0C,0x29,0x48,0x09,0x04, + 0x41,0x63,0x25,0x4A,0x09,0x21,0x01,0x23,0xD0,0x68,0x18,0x43,0xD0,0x60,0xD0,0x68, + 0xC0,0x07,0xFC,0xD0,0x49,0x1E,0xF7,0xD2,0x28,0x48,0x00,0x26,0x02,0x90,0x28,0x48, + 0x01,0x90,0x88,0xE0,0x00,0x24,0x80,0xE0,0x21,0x00,0x30,0x00,0xFF,0xF7,0x65,0xFE, + 0x00,0x28,0x79,0xD0,0x1E,0x49,0x0A,0x78,0x00,0x2A,0x43,0xD1,0x49,0x78,0x71,0x43, + 0x0A,0x19,0x53,0x00,0xE9,0x5A,0x81,0x42,0x04,0xD9,0x09,0x1A,0x09,0x04,0xC9,0x0C, + 0x40,0x18,0x03,0xE0,0x41,0x1A,0x09,0x04,0xC9,0x0C,0x40,0x1A,0x91,0x00,0x79,0x58, + 0x0E,0x4A,0x09,0x05,0x09,0x0D,0x40,0x1A,0xE8,0x52,0x11,0x48,0x0B,0x3A,0x40,0x78, + 0x70,0x43,0x00,0x19,0x40,0x00,0x29,0x5A,0x91,0x42,0x55,0xD9,0x00,0x21,0x29,0x52, + 0x52,0xE0,0x00,0x00,0x83,0xC3,0x0F,0x41,0x40,0x06,0x10,0x40,0xF3,0x43,0x0C,0x48, + 0xFC,0xFF,0x01,0x00,0xFC,0xFF,0x03,0x00,0x00,0x90,0x00,0x40,0x0A,0x10,0x00,0x00, + 0xF3,0xC3,0x0F,0x00,0x00,0xA0,0x00,0x40,0xC0,0x0F,0x00,0x20,0x00,0x78,0x00,0x00, + 0xA0,0x06,0x00,0x20,0x00,0x00,0x10,0x40,0x00,0x02,0x10,0x40,0xAC,0x08,0x00,0x20, + 0xAC,0x0A,0x00,0x20,0x81,0x48,0x82,0x49,0x40,0x78,0x70,0x43,0x00,0x19,0x05,0x90, + 0x80,0x00,0x38,0x58,0x00,0x05,0x00,0x0D,0x04,0x90,0x40,0x18,0xFF,0x21,0x91,0x31, + 0x88,0x42,0x10,0xD8,0x7B,0x49,0x04,0x98,0x09,0x1A,0x08,0x00,0x48,0x43,0xC8,0x21, + 0x00,0xF0,0x08,0xF9,0x77,0x4A,0x04,0x99,0x91,0x42,0x76,0x49,0x01,0xD9,0x40,0x18, + 0x00,0xE0,0x08,0x1A,0x03,0x90,0x06,0x98,0x00,0x28,0x08,0xD0,0x6F,0x48,0x01,0x9A, + 0x80,0x78,0x03,0x99,0x60,0x43,0x80,0x19,0x40,0x00,0x11,0x52,0x04,0xE0,0x05,0x99, + 0x02,0x9A,0x03,0x98,0x49,0x00,0x50,0x52,0x64,0x1C,0x68,0x48,0x40,0x78,0x84,0x42, + 0x00,0xD2,0x79,0xE7,0x76,0x1C,0x65,0x48,0x81,0x78,0x8E,0x42,0x00,0xD2,0x71,0xE7, + 0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xF8,0xB5,0x63,0x4E,0x5F,0x4D,0x00,0x24, + 0x01,0x27,0x62,0x48,0x01,0x68,0x61,0x4A,0x08,0x04,0x00,0x0E,0x09,0x06,0x09,0x0E, + 0x68,0x70,0x40,0x3A,0xA9,0x70,0x12,0x69,0xD2,0x07,0xD2,0x0F,0x32,0x7D,0x02,0xD0, + 0x92,0x07,0x06,0xD4,0x01,0xE0,0x92,0x07,0x03,0xD5,0x49,0x1E,0x29,0x71,0xEF,0x70, + 0x03,0xE0,0x40,0x1E,0x28,0x71,0x00,0x20,0xE8,0x70,0x20,0x00,0x64,0x1C,0xFF,0xF7, + 0xA8,0xFE,0x28,0x78,0x01,0x28,0x01,0xD0,0x01,0x2C,0x05,0xD0,0x02,0x2C,0x03,0xD0, + 0xFF,0xF7,0x7C,0xFD,0x01,0x2C,0xD4,0xD9,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x4C,0x48, + 0x10,0xB5,0x40,0x6B,0x45,0x4C,0xC5,0x22,0xA0,0x60,0x20,0x00,0xD2,0x00,0x00,0x21, + 0x0C,0x30,0xFF,0xF7,0x65,0xFD,0x00,0x20,0x20,0x70,0xFF,0xF7,0xBD,0xFF,0x01,0x20, + 0x20,0x70,0xFF,0xF7,0xB9,0xFF,0x43,0x48,0x43,0x49,0xC8,0x61,0x43,0x48,0xC2,0x68, + 0x52,0x08,0x52,0x00,0xC2,0x60,0x20,0x00,0x0C,0x30,0x04,0xC8,0xCA,0x61,0x4A,0x69, + 0x52,0x06,0xFC,0xD4,0xF9,0xE7,0x40,0x1E,0xFD,0xD2,0x70,0x47,0xF0,0xB5,0x3D,0x48, + 0x3B,0x4A,0x01,0x23,0x03,0x61,0x19,0x00,0x3A,0x48,0x00,0x23,0x43,0x61,0x83,0x61, + 0x01,0x26,0x35,0x00,0x9D,0x40,0x03,0x20,0x36,0x4C,0x00,0x04,0x28,0x43,0x60,0x61, + 0x08,0x00,0x40,0x1E,0xFD,0xD2,0x01,0x20,0x00,0x04,0x28,0x43,0x60,0x61,0x08,0x00, + 0x40,0x1E,0xFD,0xD2,0x65,0x61,0x48,0x00,0x86,0x46,0x40,0x1E,0xFD,0xD2,0xE7,0x69, + 0x00,0x20,0x5C,0x01,0xA4,0x46,0x64,0x46,0x24,0x18,0x3D,0x00,0xC5,0x40,0x16,0x5D, + 0xED,0x07,0xED,0x0F,0x75,0x19,0x40,0x1C,0x20,0x28,0x15,0x55,0xF3,0xD3,0x5B,0x1C, + 0x10,0x2B,0xD5,0xD3,0x23,0x48,0x00,0x23,0x43,0x61,0x83,0x61,0x01,0x25,0x9D,0x40, + 0x03,0x20,0x20,0x4C,0x00,0x04,0x28,0x43,0xA0,0x61,0x08,0x00,0x40,0x1E,0xFD,0xD2, + 0x01,0x20,0x00,0x04,0x28,0x43,0xA0,0x61,0x08,0x00,0x40,0x1E,0xFD,0xD2,0xA5,0x61, + 0x70,0x46,0x40,0x1E,0xFD,0xD2,0xE7,0x69,0x5C,0x01,0xFF,0x34,0x00,0x20,0xFF,0x34, + 0x02,0x34,0xA4,0x46,0x64,0x46,0x24,0x18,0x3D,0x00,0xC5,0x40,0x16,0x5D,0xED,0x07, + 0xED,0x0F,0x75,0x19,0x40,0x1C,0x20,0x28,0x15,0x55,0xF3,0xD3,0x5B,0x1C,0x10,0x2B, + 0xD4,0xD3,0x49,0x1C,0xC8,0x29,0x9F,0xD9,0x3B,0xE7,0x00,0x00,0xA0,0x06,0x00,0x20, + 0x74,0xF5,0xFF,0xFF,0x54,0x0B,0x00,0x00,0x00,0x78,0x00,0x00,0x40,0x90,0x00,0x40, + 0x00,0xA0,0x00,0x40,0xAB,0xFC,0xFF,0x8F,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40, + 0xAC,0x08,0x00,0x20,0x00,0xA1,0x00,0x40,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1, + 0x3F,0x05,0x00,0x20,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0xF8,0x07,0x00,0x00, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47,0x40,0x04,0x00,0x00,0xC0,0x7B,0x00,0x00, + 0xC0,0x75,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x03,0x00,0x00, + 0x00,0x7B,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x02,0x00,0x00, + 0x00,0x76,0x00,0x00,0x00,0x02,0x00,0x00,0x5E,0x00,0xCC,0x00,0x00,0x00,0x00,0x00, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47}; + +#endif // __IST30XXB_FW_H__ diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb_fw_young2_ver0001.h b/drivers/input/touchscreen/ist30xxb/ist30xxb_fw_young2_ver0001.h new file mode 100644 index 00000000..d9f54435 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb_fw_young2_ver0001.h @@ -0,0 +1,2166 @@ +#ifndef __IST30XXB_FW_H__ +#define __IST30XXB_FW_H__ + +/* ist30xxb binary: Fame2 TOPTOUCH, f/w 1(00030301) */ +static unsigned char ist30xxb_fw[] = { + 0x06,0x00,0x00,0xEA,0x2C,0x00,0x00,0xEA,0x2B,0x00,0x00,0xEA,0x2A,0x00,0x00,0xEA, + 0x29,0x00,0x00,0xEA,0x28,0x00,0x00,0xEA,0x27,0x00,0x00,0xEA,0x3E,0x00,0x00,0xEA, + 0x14,0x00,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0xFF,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0xA0,0xE1,0x00,0x00,0x00,0xEA,0x0C,0x20,0x00,0x40, + 0x11,0x01,0xA0,0xE3,0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0xC1,0x01,0xA0,0xE3, + 0x1C,0x10,0x9F,0xE5,0x00,0x10,0x80,0xE5,0x18,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0xF1,0x01,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0x01,0x00,0x00,0xEA,0xC8,0x74,0x00,0x00,0x4C,0x00,0x00,0x40,0x00,0x00,0x0F,0xE1, + 0x1F,0x00,0xC0,0xE3,0xD1,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x1C,0xD0,0x9F,0xE5, + 0xD3,0x10,0x80,0xE3,0x01,0xF0,0x2F,0xE1,0x14,0xD0,0x9F,0xE5,0x00,0x00,0x0F,0xE1, + 0xC0,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1,0x08,0x00,0x9F,0xE5,0x10,0xFF,0x2F,0xE1, + 0xFC,0x0F,0x00,0x20,0xC0,0x0F,0x00,0x20,0xA7,0x01,0x00,0x00,0x11,0x01,0xA0,0xE3, + 0x11,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x5C,0x30,0x9F,0xE5,0x5C,0x40,0x9F,0xE5, + 0x00,0x40,0x83,0xE5,0x91,0x01,0xA0,0xE3,0x33,0x16,0xA0,0xE3,0x00,0x10,0x80,0xE5, + 0xAC,0x00,0x1F,0xE5,0x00,0x10,0xA0,0xE3,0x08,0x10,0x80,0xE5,0x00,0x40,0x83,0xE5, + 0xFF,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x03,0x00,0x00,0xEB,0xFE,0x10,0xA0,0xE3, + 0x00,0x10,0x80,0xE5,0x00,0x00,0x00,0xEB,0xF7,0xFF,0xFF,0xEA,0x01,0x29,0xA0,0xE3, + 0x01,0x20,0x52,0xE2,0xFD,0xFF,0xFF,0x1A,0x1E,0xFF,0x2F,0xE1,0xFF,0x40,0x2D,0xE9, + 0xC6,0x00,0x00,0xEB,0xFF,0x40,0xBD,0xE8,0x04,0xF0,0x5E,0xE2,0x1C,0x40,0x00,0x30, + 0x70,0xE9,0x1C,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x80,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0xC0,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x0F,0xE1,0x40,0x00,0x80,0xE3,0x00,0xF0,0x2F,0xE1, + 0x1E,0xFF,0x2F,0xE1,0x3C,0x4A,0x3A,0x48,0x3A,0x49,0x92,0x08,0x01,0xE0,0x08,0xC9, + 0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x38,0x48,0x01,0x21,0xC9,0x02,0x01,0x62, + 0x00,0x21,0x01,0x62,0x01,0x62,0x36,0x49,0x36,0x48,0x01,0x60,0x20,0x21,0x41,0x60, + 0xA0,0x21,0x81,0x60,0x70,0x47,0xF8,0xB5,0x30,0x4B,0x9F,0x6A,0x32,0x48,0x00,0x69, + 0x42,0x08,0x58,0x69,0x19,0x15,0x08,0x43,0x58,0x61,0xFF,0xF7,0xE5,0xFF,0x58,0x69, + 0xFF,0x21,0x81,0x31,0x08,0x43,0x58,0x61,0x2C,0x48,0x2D,0x4C,0x20,0x60,0xFF,0x20, + 0x90,0x30,0x60,0x60,0x13,0x20,0xA0,0x60,0xA0,0x68,0xA6,0x15,0x30,0x43,0xA0,0x60, + 0x24,0x4D,0x5F,0x23,0x00,0x2F,0x27,0xD1,0x26,0x4F,0x21,0xE0,0x68,0x68,0x00,0x07, + 0x1E,0xD5,0xE8,0x68,0x40,0x28,0x04,0xD1,0xEA,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1, + 0x14,0xE0,0x20,0x28,0x04,0xD3,0xEF,0x61,0x68,0x69,0x18,0x42,0xFC,0xD1,0x0D,0xE0, + 0x0D,0x28,0x08,0xD1,0x2E,0x20,0x68,0x60,0x68,0x69,0x80,0x06,0xFC,0xD4,0x68,0x68, + 0x80,0x07,0xFC,0xD5,0x08,0xE0,0x68,0x68,0x80,0x07,0xFC,0xD5,0xFF,0xF7,0xAC,0xFF, + 0xE0,0x68,0x15,0x49,0x88,0x42,0xD9,0xD3,0xFF,0xF7,0xA6,0xFF,0xA0,0x68,0xB0,0x43, + 0xA0,0x60,0x00,0xF0,0x3D,0xF9,0xF8,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x0F,0x49, + 0x0F,0x4A,0x00,0x20,0x01,0xE0,0x08,0xC9,0x18,0x18,0x91,0x42,0xFB,0xD3,0x70,0x47, + 0x40,0x00,0x00,0x20,0x94,0x02,0x00,0x00,0xCC,0x00,0x00,0x00,0x40,0x00,0x00,0x40, + 0xDE,0x10,0x01,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0xFF,0xFF,0x00,0x00, + 0x00,0x40,0x00,0x40,0xFF,0x03,0xFF,0x2F,0x50,0xC3,0x00,0x00,0x40,0x04,0x00,0x00, + 0xC0,0x75,0x00,0x00,0x30,0x48,0x41,0x6B,0xC9,0x07,0xFC,0xD0,0x41,0x6B,0x01,0x22, + 0x11,0x43,0x41,0x63,0x70,0x47,0x10,0xB4,0x2B,0x4C,0x40,0x23,0x60,0x60,0x20,0x68, + 0x80,0x0A,0x80,0x02,0x10,0x43,0xA8,0x22,0x10,0x43,0x20,0x60,0x02,0xE0,0x08,0x78, + 0xA0,0x60,0x49,0x1C,0x5B,0x1E,0xFA,0xD2,0x10,0xBC,0x70,0x47,0xF0,0xB5,0x05,0x00, + 0x0E,0x00,0x1F,0x00,0x94,0x09,0x81,0x06,0x20,0x48,0x10,0xD1,0x91,0x06,0x0E,0xD1, + 0x0A,0xE0,0x3A,0x00,0x31,0x00,0x28,0x00,0xFF,0xF7,0xDD,0xFF,0x40,0x35,0x2D,0x04, + 0x2D,0x0C,0x40,0x36,0xFF,0xF7,0xCE,0xFF,0x64,0x1E,0x60,0x1C,0xF1,0xD1,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x14,0x4B,0x40,0x22,0x58,0x60,0x18,0x68,0x80,0x0A,0x80,0x02, + 0x08,0x43,0xA4,0x21,0x08,0x43,0x18,0x60,0x00,0x21,0x00,0xE0,0x99,0x60,0x52,0x1E, + 0xFC,0xD2,0x70,0x47,0x70,0xB5,0x05,0x00,0x16,0x00,0x8C,0x09,0x82,0x06,0x0B,0x48, + 0x0E,0xD1,0x89,0x06,0x0C,0xD1,0x08,0xE0,0x31,0x00,0x28,0x00,0xFF,0xF7,0xE2,0xFF, + 0x40,0x35,0x2D,0x04,0x2D,0x0C,0xFF,0xF7,0xA5,0xFF,0x64,0x1E,0x60,0x1C,0xF3,0xD1, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x70,0x00,0x40,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0xF8,0xB5,0x03,0x25,0x0F,0x4E,0x2D,0x07, + 0x01,0x27,0xF0,0x6A,0x00,0x28,0x15,0xD0,0xF0,0x6B,0xE9,0x68,0x80,0x08,0x3C,0x00, + 0x84,0x40,0x21,0x43,0xE9,0x60,0x69,0x68,0x21,0x42,0x00,0xD0,0x34,0x63,0x81,0x00, + 0x07,0x48,0x40,0x58,0x00,0x28,0x01,0xD0,0x06,0xF0,0x30,0xFE,0xE8,0x68,0xA0,0x43, + 0xE8,0x60,0xE6,0xE7,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x30, + 0x2C,0x0B,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF8,0xB5,0x00,0xF0,0xF9,0xFC,0x07,0x00,0x03,0xF0,0x14,0xFC,0x03,0xF0,0x06,0xFC, + 0x03,0xF0,0x8C,0xFC,0x48,0x4A,0x49,0x49,0x49,0x48,0x04,0xF0,0x22,0xFE,0x49,0x4D, + 0x00,0x26,0x01,0x21,0xC9,0x03,0x30,0x00,0xEE,0x81,0x00,0xF0,0x93,0xF9,0xA8,0x61, + 0x45,0x49,0x00,0x20,0x00,0xF0,0x8E,0xF9,0x44,0x4B,0x45,0x49,0xD8,0x63,0x45,0x48, + 0x00,0xF0,0x88,0xF9,0xD9,0x6B,0x00,0x04,0x08,0x43,0xD8,0x63,0x03,0xF0,0x4E,0xFC, + 0xA1,0x22,0x41,0x48,0xD2,0x00,0x00,0x21,0x04,0xF0,0x0E,0xFE,0x06,0xF0,0xC8,0xF9, + 0x03,0xF0,0xF0,0xFC,0x3D,0x48,0x01,0x24,0x81,0x7A,0xA9,0x71,0xC1,0x7A,0xE9,0x71, + 0x40,0x7A,0x28,0x72,0xFF,0x20,0x91,0x30,0x6E,0x72,0x28,0x82,0xAE,0x72,0xEE,0x72, + 0x35,0x48,0x2E,0x73,0x64,0x07,0x6E,0x73,0x60,0x63,0xFF,0x20,0xE0,0x63,0xE0,0x14, + 0x00,0xF0,0x8E,0xFC,0x32,0x48,0x06,0x70,0xFF,0x20,0x81,0x30,0x00,0xF0,0x88,0xFC, + 0x30,0x49,0x02,0x20,0x06,0xF0,0xB8,0xFC,0x02,0x20,0x06,0xF0,0xBD,0xFC,0x28,0x7A, + 0x00,0x28,0x01,0xD0,0x06,0xF0,0x6A,0xFD,0x00,0x2F,0x1F,0xD1,0x2A,0x4F,0xBE,0x15, + 0x28,0x7A,0x00,0x28,0x02,0xD0,0x29,0x49,0x28,0x6B,0x88,0x60,0xE0,0x6B,0x0B,0x28, + 0x14,0xD0,0x27,0x48,0x40,0x68,0x00,0x07,0x01,0xD5,0x02,0xF0,0xAF,0xFA,0xF8,0x68, + 0x24,0x49,0x88,0x42,0xEC,0xD9,0x24,0x48,0xC0,0x68,0xFF,0x28,0x06,0xD1,0xB8,0x68, + 0xB0,0x43,0xB8,0x60,0xB8,0x68,0x30,0x43,0xB8,0x60,0xE1,0xE7,0xE8,0x79,0x00,0x28, + 0x03,0xD1,0x01,0x20,0x80,0x02,0x00,0xF0,0x4B,0xFC,0x28,0x7A,0x00,0x28,0x01,0xD0, + 0x06,0xF0,0x44,0xFD,0x02,0x20,0x06,0xF0,0x93,0xFC,0xFF,0x20,0x81,0x30,0x00,0xF0, + 0x3F,0xFC,0x16,0x49,0x05,0x20,0x03,0xF0,0x2D,0xFA,0x0B,0x20,0xE0,0x63,0x03,0xF0, + 0xBD,0xFA,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x28,0x00,0x00,0x00,0x7C,0x71,0x00,0x00, + 0x40,0x00,0x00,0x20,0xF8,0x0A,0x00,0x20,0xC0,0x75,0x00,0x00,0xC0,0x0F,0x00,0x20, + 0x00,0x7E,0x00,0x00,0x00,0x76,0x00,0x00,0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00, + 0xAD,0x0B,0x00,0x20,0xFF,0xFF,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x30,0x00,0x40, + 0x00,0x40,0x00,0x30,0x50,0xC3,0x00,0x00,0xC0,0x75,0x00,0x00,0xAD,0x6E,0x00,0x00, + 0x78,0x47,0xC0,0x46,0x01,0x30,0x90,0xE1,0x21,0x00,0x00,0x4A,0x00,0x20,0xB0,0xE3, + 0xA0,0x30,0x71,0xE0,0x1A,0x00,0x00,0x3A,0x20,0x32,0x71,0xE0,0x0F,0x00,0x00,0x3A, + 0x20,0x34,0x71,0xE0,0x01,0x00,0x00,0x3A,0x00,0xC0,0xA0,0xE3,0x20,0x00,0x00,0xEA, + 0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x33,0x71,0xE0, + 0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0,0x81,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x31,0x71,0xE0, + 0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0,0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0, + 0x1E,0xFF,0x2F,0xE1,0x02,0x21,0x11,0xE2,0x00,0x10,0x61,0x42,0x40,0xC0,0x32,0xE0, + 0x00,0x00,0x60,0x22,0x20,0x32,0x71,0xE0,0x1D,0x00,0x00,0x3A,0x20,0x34,0x71,0xE0, + 0x0F,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x23,0x82,0xE3, + 0x0B,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x26,0x82,0xE3, + 0x07,0x00,0x00,0x3A,0x01,0x13,0xA0,0xE1,0x20,0x34,0x71,0xE0,0x3F,0x29,0x82,0xE3, + 0x01,0x13,0xA0,0x21,0x3F,0x2C,0x82,0x23,0x00,0x30,0x71,0xE2,0x1D,0x00,0x00,0x2A, + 0x21,0x13,0xA0,0x21,0xA0,0x33,0x71,0xE0,0x81,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x33,0x71,0xE0,0x01,0x03,0x40,0x20,0x02,0x20,0xB2,0xE0,0xA0,0x32,0x71,0xE0, + 0x81,0x02,0x40,0x20,0x02,0x20,0xB2,0xE0,0x20,0x32,0x71,0xE0,0x01,0x02,0x40,0x20, + 0x02,0x20,0xB2,0xE0,0xA0,0x31,0x71,0xE0,0x81,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0, + 0x20,0x31,0x71,0xE0,0x01,0x01,0x40,0x20,0x02,0x20,0xB2,0xE0,0xEB,0xFF,0xFF,0x2A, + 0xA0,0x30,0x71,0xE0,0x81,0x00,0x40,0x20,0x02,0x20,0xB2,0xE0,0x01,0x10,0x50,0xE0, + 0x00,0x10,0xA0,0x31,0x02,0x00,0xA2,0xE0,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42, + 0x00,0x10,0x61,0x22,0x1E,0xFF,0x2F,0xE1,0xCC,0xCF,0xB0,0xE1,0x00,0x00,0x60,0x42, + 0x01,0x40,0x2D,0xE9,0x00,0x00,0xB0,0xE3,0x01,0x00,0x00,0xEB,0x02,0x40,0xBD,0xE8, + 0x1E,0xFF,0x2F,0xE1,0x00,0x00,0xA0,0xE1,0x07,0x40,0x2D,0xE9,0x02,0x00,0xB0,0xE3, + 0x01,0x00,0x00,0xEB,0x07,0x40,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0x01,0xC0,0x8F,0xE2, + 0x1C,0xFF,0x2F,0xE1,0x01,0x00,0x10,0xB5,0x02,0x20,0x06,0xF0,0x87,0xFC,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x78,0x47,0xC0,0x46,0x00,0x20,0xB0,0xE3,0x20,0x32,0x71,0xE0, + 0xA6,0xFF,0xFF,0x3A,0x20,0x34,0x71,0xE0,0x98,0xFF,0xFF,0x3A,0x00,0xC0,0xA0,0xE3, + 0xB7,0xFF,0xFF,0xEA,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1, + 0x41,0x00,0x00,0x20,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1, + 0xD1,0x00,0x00,0x20,0x78,0x47,0xC0,0x46,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1, + 0x79,0x00,0x00,0x20,0x78,0x47,0xC0,0x46,0x1B,0xFE,0xFF,0xEA,0x02,0x48,0x01,0x68, + 0x02,0x4A,0x11,0x40,0x01,0x60,0x70,0x47,0x00,0xA0,0x00,0x40,0xFE,0xFF,0xEF,0xFF, + 0x07,0x49,0x10,0xB5,0x08,0x68,0x07,0x4A,0x10,0x43,0x08,0x60,0x0F,0x24,0x02,0xF0, + 0xF0,0xF8,0x64,0x1E,0x00,0x2C,0xFA,0xDC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x00,0xA0,0x00,0x40,0x01,0x00,0x10,0x00,0xF0,0xB5,0x01,0x27,0x7F,0x07,0x3D,0x68, + 0x17,0x4E,0xB0,0x7E,0xC0,0x07,0x26,0xD0,0x70,0x7D,0x00,0x28,0x21,0xD0,0xBA,0x00, + 0x01,0x2D,0x02,0xD1,0x79,0x68,0x11,0x43,0xB9,0x60,0x00,0x04,0x02,0x43,0x90,0x0A, + 0x80,0x02,0xA9,0x05,0x89,0x0D,0x08,0x43,0x78,0x60,0x01,0x24,0x08,0xE0,0x0D,0x49, + 0xE0,0x00,0x40,0x18,0x0C,0x49,0x41,0x18,0x28,0x19,0x06,0xF0,0xFD,0xF8,0x64,0x1C, + 0x70,0x7D,0xA0,0x42,0xF3,0xDA,0x70,0x7D,0x01,0x28,0x02,0xD1,0x00,0x2D,0x00,0xD1, + 0x01,0x25,0x70,0x7D,0x45,0x19,0x3D,0x60,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x30,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x86,0x04,0x00,0x00,0x70,0xB4,0x1A,0x4B, + 0xDA,0x88,0xD2,0x07,0x2B,0xD1,0x19,0x4A,0x05,0x78,0x54,0x7D,0xE4,0x00,0xE6,0x18, + 0x09,0x24,0xE4,0x01,0x36,0x19,0xB5,0x73,0x56,0x7D,0x45,0x88,0xF6,0x00,0xF6,0x18, + 0x36,0x19,0x35,0x82,0x56,0x7D,0x85,0x88,0xF6,0x00,0xF6,0x18,0x36,0x19,0x75,0x82, + 0x55,0x7D,0xED,0x00,0xED,0x18,0x2D,0x19,0x29,0x75,0x55,0x7D,0xC1,0x79,0xED,0x00, + 0xEB,0x18,0x1B,0x19,0x59,0x75,0x51,0x7D,0x49,0x1C,0x51,0x75,0xC0,0x79,0x06,0x28, + 0x07,0xD0,0x0A,0x28,0x01,0xD0,0x12,0x28,0x01,0xD1,0x00,0x20,0x90,0x75,0x70,0xBC, + 0x70,0x47,0x01,0x20,0xFA,0xE7,0x00,0x00,0xF0,0x05,0x00,0x20,0x30,0x0A,0x00,0x20, + 0xFF,0xB5,0x0A,0x20,0x48,0x43,0x15,0x4F,0x81,0xB0,0xC5,0x19,0x48,0x00,0xFF,0x35, + 0x61,0x35,0xC0,0x19,0xC0,0x30,0x2A,0x71,0x0C,0x00,0x00,0x90,0x80,0x89,0x16,0x00, + 0x0A,0x21,0xFF,0xF7,0x2F,0xFF,0xE8,0x80,0x00,0x98,0x0A,0x21,0xC0,0x8B,0xFF,0xF7, + 0x29,0xFF,0x28,0x81,0x38,0x19,0xFF,0x30,0x01,0x30,0x00,0x7C,0xB9,0x19,0x68,0x71, + 0x04,0x98,0xA8,0x72,0x01,0x98,0x06,0x55,0x13,0x20,0x40,0x01,0x08,0x18,0x00,0x21, + 0xC4,0x76,0x81,0x74,0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xF0,0x05,0x00,0x20, + 0x06,0x48,0x0F,0x23,0x42,0x79,0x01,0x68,0x9B,0x06,0x49,0x1C,0x12,0x07,0x12,0x0A, + 0xD2,0x18,0x09,0x03,0x09,0x0B,0x0A,0x43,0x02,0x60,0x70,0x47,0xF0,0x05,0x00,0x20, + 0xF1,0xB5,0xB2,0x48,0x90,0xB0,0x0F,0x90,0x40,0x7C,0xB2,0x49,0x02,0x90,0x0F,0x98, + 0xC0,0x7C,0x01,0x90,0x0F,0x98,0x00,0x7C,0x00,0x90,0xAD,0x48,0xC9,0x88,0x00,0x8A, + 0x49,0x06,0x02,0xD4,0xA9,0x48,0x40,0x30,0x80,0x89,0x00,0x05,0x7E,0xD5,0x10,0x98, + 0x01,0x28,0x00,0xD0,0x02,0x20,0x03,0x90,0x00,0x20,0x04,0x90,0x3E,0xE1,0x03,0x98, + 0x81,0x00,0x01,0x20,0x40,0x07,0x08,0x18,0x0E,0x90,0x00,0x68,0x81,0x00,0x0D,0x90, + 0x0C,0x0F,0x80,0x0F,0xC0,0x07,0x03,0xD1,0x20,0x00,0x01,0xF0,0x7F,0xFB,0x26,0xE1, + 0x9D,0x48,0xA5,0x00,0x40,0x5F,0x00,0x28,0x84,0x46,0x0F,0xDA,0x0D,0x98,0x9A,0x49, + 0x80,0x01,0x80,0x0D,0x48,0x53,0x0D,0x98,0x6A,0x18,0x80,0x05,0x80,0x0D,0x50,0x80, + 0x4A,0x5B,0x24,0x31,0x4A,0x53,0x69,0x18,0x48,0x80,0x10,0xE1,0x02,0x9F,0x92,0x49, + 0x00,0x20,0x7F,0x1E,0x48,0x31,0x69,0x18,0x06,0xE0,0x83,0x00,0xCA,0x18,0x96,0x88, + 0x40,0x1C,0xCE,0x52,0xD3,0x88,0x53,0x80,0xB8,0x42,0xF6,0xDB,0x0D,0x98,0x62,0x46, + 0x80,0x01,0x80,0x0D,0x0C,0x90,0x80,0x1A,0x02,0x9A,0x87,0x4E,0x92,0x00,0x8B,0x18, + 0x20,0x3B,0x98,0x83,0x0D,0x98,0xAA,0x19,0x80,0x05,0x80,0x0D,0x0A,0x92,0x0B,0x90, + 0x52,0x88,0x80,0x1A,0xD8,0x83,0x00,0x20,0x06,0x00,0x02,0x00,0x07,0xE0,0x93,0x00, + 0xCF,0x5E,0x38,0x18,0xCF,0x18,0x02,0x23,0xFB,0x5E,0x9E,0x19,0x52,0x1C,0x02,0x9B, + 0x9A,0x42,0xF4,0xDB,0x19,0x00,0xFF,0xF7,0xAB,0xFD,0x07,0x00,0x02,0x99,0x30,0x00, + 0xFF,0xF7,0xA6,0xFD,0x00,0x2F,0x00,0xDC,0x7F,0x42,0x0F,0x99,0x89,0x7C,0x8F,0x42, + 0x17,0xDA,0x00,0x28,0x00,0xDC,0x40,0x42,0x88,0x42,0x12,0xDA,0x01,0x98,0x0C,0x21, + 0x48,0x43,0x0A,0x21,0xFF,0xF7,0x6E,0xFE,0x61,0x00,0x00,0xE0,0xCA,0xE0,0x6A,0x4B, + 0x1C,0x3B,0x5A,0x5E,0x90,0x42,0x0C,0xDD,0x0F,0x98,0x00,0x7D,0x10,0x18,0x58,0x52, + 0x07,0xE0,0x65,0x49,0x0F,0x9A,0x60,0x00,0x1C,0x39,0x0B,0x5A,0x52,0x7D,0x9A,0x1A, + 0x0A,0x52,0x61,0x49,0x60,0x00,0x1C,0x39,0x0A,0x5E,0x00,0x2A,0x01,0xDC,0x00,0x22, + 0x0A,0x52,0x08,0x5E,0x01,0x99,0x88,0x42,0x09,0x90,0x01,0xDB,0x05,0x20,0x28,0xE0, + 0x88,0x00,0x05,0x21,0xFF,0xF7,0x46,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x04,0x20, + 0x1F,0xE0,0x01,0x98,0x41,0x00,0x40,0x18,0x05,0x21,0xFF,0xF7,0x3B,0xFE,0x09,0x99, + 0x88,0x42,0x01,0xDC,0x03,0x20,0x14,0xE0,0x01,0x98,0x05,0x21,0x40,0x00,0xFF,0xF7, + 0x31,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x01,0x98,0x05,0x21, + 0xFF,0xF7,0x28,0xFE,0x09,0x99,0x88,0x42,0x01,0xDC,0x01,0x20,0x01,0xE0,0x08,0x00, + 0x02,0xD1,0x45,0x49,0x0A,0x39,0x08,0x55,0x43,0x49,0x0C,0x9A,0x24,0x31,0x48,0x5F, + 0x16,0x1A,0x08,0x90,0x68,0x18,0x02,0x21,0x07,0x90,0x41,0x5E,0x0B,0x9A,0x3E,0x48, + 0x57,0x1A,0x06,0x91,0x0F,0x99,0x0A,0x38,0x00,0x5D,0x89,0x7D,0x88,0x42,0x27,0xD3, + 0x00,0x2E,0x01,0xD1,0x00,0x24,0x0D,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42,0x00,0x99, + 0x88,0x42,0x01,0xDA,0x01,0x24,0x05,0xE0,0x30,0x1E,0x00,0xDC,0x70,0x42,0xFF,0xF7, + 0x1F,0xFD,0x04,0x00,0x00,0x2F,0x01,0xD1,0x00,0x20,0x0C,0xE0,0x38,0x1E,0x00,0xDC, + 0x78,0x42,0x00,0x99,0x88,0x42,0x01,0xDA,0x01,0x20,0x04,0xE0,0x38,0x1E,0x00,0xDC, + 0x78,0x42,0xFF,0xF7,0x0D,0xFD,0x08,0x99,0x00,0x2E,0x19,0xDB,0x09,0x19,0x18,0xE0, + 0x09,0x98,0x64,0x21,0x48,0x43,0x01,0x99,0xFF,0xF7,0x02,0xFD,0x64,0x21,0x08,0x1A, + 0x31,0x1E,0x05,0x90,0x00,0xDC,0x71,0x42,0x48,0x43,0x64,0x21,0xFF,0xF7,0xF8,0xFC, + 0x05,0x9A,0x04,0x00,0x38,0x1E,0x00,0xDC,0x78,0x42,0x50,0x43,0x64,0x21,0xE0,0xE7, + 0x09,0x1B,0x06,0x9A,0x00,0x2F,0x01,0xDB,0x10,0x18,0x00,0xE0,0x10,0x1A,0x16,0x4A, + 0x0C,0x9B,0x53,0x53,0x0A,0x9B,0x0B,0x9A,0x5A,0x80,0x13,0x4A,0x13,0x4B,0x24,0x32, + 0x51,0x53,0x07,0x9A,0x89,0x05,0x50,0x80,0x0D,0x9A,0x89,0x09,0x1A,0x40,0x0A,0x43, + 0x91,0x0A,0x89,0x02,0x80,0x05,0x80,0x0D,0x01,0x43,0x0E,0x98,0x01,0x60,0x04,0x98, + 0x40,0x1C,0x04,0x90,0x03,0x98,0x40,0x1C,0x03,0x90,0x04,0x98,0x10,0x99,0x88,0x42, + 0x00,0xDA,0xBC,0xE6,0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xA0,0x78,0x00,0x00, + 0xA0,0x79,0x00,0x00,0xF0,0x05,0x00,0x20,0xCA,0x0B,0x00,0x20,0xFF,0xFF,0x00,0xFC, + 0x10,0x4B,0x30,0xB4,0x27,0x21,0xDA,0x88,0x49,0x01,0x80,0x24,0x59,0x18,0x00,0x28, + 0x0E,0xD0,0x0D,0x48,0x45,0x7B,0x8D,0x82,0xC5,0x89,0xCD,0x82,0x05,0x8A,0x0D,0x83, + 0x40,0x8A,0x48,0x83,0x08,0x48,0x20,0x30,0x00,0x89,0x22,0x43,0x88,0x83,0x06,0xE0, + 0x00,0x20,0x88,0x82,0xC8,0x82,0x08,0x83,0x48,0x83,0xA2,0x43,0x88,0x83,0xDA,0x80, + 0x30,0xBC,0x70,0x47,0xF0,0x05,0x00,0x20,0x80,0x78,0x00,0x00,0x7F,0xB5,0x24,0x4D, + 0x04,0x00,0x1A,0x28,0x0B,0xD1,0x28,0x6A,0x00,0x28,0x08,0xD1,0x68,0x6A,0x00,0x28, + 0x05,0xD1,0x20,0x4C,0x01,0xF0,0x86,0xFE,0x64,0x1E,0xFB,0xD2,0x14,0xE0,0x05,0xF0, + 0x57,0xF8,0x00,0x20,0x01,0xF0,0xF4,0xFC,0x01,0xF0,0x72,0xFD,0x01,0xF0,0xBA,0xFD, + 0x03,0xAA,0x01,0xA9,0x02,0xA8,0x04,0xF0,0x4F,0xFA,0x03,0x00,0x01,0x9A,0x02,0x99, + 0x03,0x98,0x00,0x94,0x00,0xF0,0x30,0xF8,0x02,0x20,0x06,0xF0,0xC9,0xF8,0x02,0x20, + 0x06,0xF0,0xBA,0xF8,0x10,0x48,0xE9,0x68,0xC1,0x61,0x29,0x69,0xC1,0x61,0x0F,0x49, + 0xCA,0x68,0x52,0x08,0x52,0x00,0xCA,0x60,0x0D,0x4A,0x0E,0x49,0x02,0xE0,0xD3,0x68, + 0x8B,0x42,0x02,0xD8,0x43,0x69,0x9B,0x06,0xF9,0xD5,0x41,0x68,0x89,0x07,0xFC,0xD5, + 0x01,0xF0,0x66,0xFE,0x01,0x20,0x00,0xF0,0x6B,0xF8,0x7F,0xBC,0x08,0xBC,0x18,0x47, + 0xC0,0x75,0x00,0x00,0xE7,0x03,0x00,0x00,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40, + 0x00,0x40,0x00,0x40,0x50,0xC3,0x00,0x00,0xFF,0xB5,0x05,0x00,0x0E,0x00,0x91,0xB0, + 0xFF,0xF7,0xD0,0xF9,0x1C,0x48,0x01,0x27,0x04,0x04,0x24,0x0C,0x7F,0x02,0x00,0x22, + 0x39,0x00,0x20,0x00,0xFF,0xF7,0x1E,0xFD,0x18,0x49,0x3A,0x00,0x20,0x00,0x00,0x23, + 0xFF,0xF7,0x20,0xFD,0x16,0x49,0x40,0x22,0x01,0xA8,0x04,0xF0,0x92,0xF9,0x14,0x99, + 0x28,0x04,0x09,0x03,0x08,0x43,0x13,0x49,0x08,0x43,0x04,0x90,0x13,0x99,0x30,0x04, + 0x08,0x43,0x05,0x90,0x10,0x48,0x11,0x49,0xC0,0x6B,0x10,0x90,0x0C,0x48,0x80,0x69, + 0x40,0x1C,0x07,0x90,0x00,0x20,0x8D,0x42,0x09,0x90,0x02,0xD1,0x06,0x99,0x49,0x1C, + 0x06,0x91,0x1A,0x99,0x1A,0x29,0x00,0xD1,0x0A,0x90,0x01,0xA8,0x06,0xF0,0xDC,0xF8, + 0x15,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x7E,0x00,0x00,0x00,0x00,0x10,0x40, + 0xC0,0x75,0x00,0x00,0xAB,0x0C,0x00,0x80,0xC0,0x0F,0x00,0x20,0xEC,0x0D,0x00,0x00, + 0x02,0x4A,0x51,0x69,0x81,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x02,0x4A,0x51,0x69,0x01,0x43,0x51,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x78,0x47,0xC0,0x46,0x01,0x21,0xA0,0xE3,0x50,0x30,0x92,0xE5,0x0C,0x10,0xA0,0xE3, + 0x03,0x00,0x80,0xE1,0x50,0x00,0x82,0xE5,0x00,0x00,0x00,0xEA,0x00,0x00,0xA0,0xE1, + 0x01,0x10,0x51,0xE2,0xFC,0xFF,0xFF,0x2A,0x1E,0xFF,0x2F,0xE1,0x01,0x48,0x40,0x69, + 0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x01,0x48,0x80,0x6A,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x02,0x49,0x08,0x62,0x00,0x20,0x08,0x62,0x70,0x47,0x00,0x00, + 0x40,0x00,0x00,0x40,0x01,0x49,0x48,0x61,0x70,0x47,0x00,0x00,0x40,0x00,0x00,0x40, + 0x07,0x49,0xFF,0x28,0x04,0xD1,0x01,0x20,0xC8,0x60,0x00,0x20,0x88,0x61,0x70,0x47, + 0x8A,0x69,0x12,0x07,0x12,0x0F,0x02,0x43,0x8A,0x61,0x02,0x20,0xC8,0x60,0x70,0x47, + 0x40,0x00,0x00,0x40,0xF0,0xB5,0x00,0x20,0xF3,0xB0,0x62,0x90,0xFF,0x49,0x40,0x1E, + 0x5E,0x90,0xCB,0x79,0xFE,0x4F,0xFF,0x48,0xFA,0x88,0x54,0x06,0x00,0xD4,0xC3,0x78, + 0x54,0x06,0x05,0x93,0x0B,0x7A,0x00,0xD4,0x03,0x79,0xFB,0x4C,0xA4,0x8A,0x1B,0x19, + 0x1B,0x06,0x1B,0x0E,0x04,0x93,0x4B,0x7A,0x54,0x06,0x00,0xD4,0x43,0x79,0x52,0x06, + 0x03,0x93,0x89,0x7A,0x00,0xD4,0x81,0x79,0x00,0x20,0xF4,0x4C,0x02,0x91,0x3D,0x79, + 0x01,0x26,0x01,0x90,0x13,0xE0,0x0A,0x20,0x70,0x43,0x43,0x21,0xC0,0x19,0xC9,0x00, + 0x09,0x5C,0x00,0x29,0x0A,0xD0,0xEE,0x49,0x40,0x18,0x02,0xF0,0x43,0xFE,0x00,0x28, + 0x04,0xD0,0x01,0x98,0x40,0x1C,0x00,0x06,0x00,0x0E,0x01,0x90,0x76,0x1C,0xA0,0x78, + 0xB0,0x42,0xE8,0xDA,0xE7,0x48,0x72,0x90,0xC2,0x8A,0x41,0x8B,0x50,0x1A,0x00,0x28, + 0x00,0xDC,0x88,0x1A,0x03,0x04,0x72,0x98,0x72,0x99,0x00,0x8B,0x89,0x8B,0x1B,0x0C, + 0x42,0x1A,0x00,0x2A,0x00,0xDC,0x0A,0x1A,0x10,0x04,0x72,0x9A,0x00,0x21,0x91,0x74, + 0x72,0x9A,0x00,0x0C,0xD1,0x74,0x72,0x9A,0x11,0x75,0x01,0x99,0x00,0x29,0x10,0xD0, + 0x1E,0x2B,0x0E,0xD2,0x32,0x28,0x03,0xD2,0x72,0x98,0x01,0x21,0x81,0x74,0x08,0xE0, + 0x64,0x28,0x03,0xD2,0x72,0x99,0x01,0x20,0xC8,0x74,0x02,0xE0,0x72,0x98,0x01,0x21, + 0x01,0x75,0x72,0x98,0x40,0x7C,0x00,0x28,0x16,0xD1,0x72,0x98,0x80,0x7C,0x00,0x28, + 0x02,0xD0,0x05,0x98,0x80,0x1C,0x0C,0xE0,0x72,0x98,0xC0,0x7C,0x00,0x28,0x02,0xD0, + 0x05,0x98,0x00,0x1D,0x05,0xE0,0x72,0x98,0x00,0x7D,0x00,0x28,0x04,0xD0,0x05,0x98, + 0x80,0x1D,0x00,0x06,0x00,0x0E,0x05,0x90,0x09,0x22,0x00,0x21,0x5B,0xA8,0x04,0xF0, + 0x8B,0xF8,0xF8,0x88,0xFF,0x21,0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06,0x05,0xD5, + 0x01,0xF0,0xAE,0xF8,0x73,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xE0,0x78,0x00,0x28, + 0x01,0xD0,0x40,0x1E,0xE0,0x70,0x60,0x78,0x00,0x2D,0x02,0xD1,0x00,0x28,0x18,0xD0, + 0x18,0xE0,0x00,0x28,0x16,0xD1,0xB1,0x48,0x5A,0x22,0x00,0x21,0x5E,0x30,0x04,0xF0, + 0x6B,0xF8,0xE0,0x78,0x00,0x28,0x0C,0xD1,0x01,0x26,0x07,0xE0,0x31,0x06,0x09,0x0E, + 0x0A,0x00,0x14,0x23,0x5B,0xA8,0xFF,0xF7,0x7B,0xFC,0x76,0x1C,0xAE,0x42,0xF5,0xDD, + 0x25,0x70,0xE6,0xE1,0x09,0x22,0x01,0x21,0x58,0xA8,0x04,0xF0,0x55,0xF8,0x02,0x20, + 0xA3,0x49,0x06,0x90,0x9E,0x48,0x5D,0x31,0x41,0x18,0x71,0x91,0xA0,0x49,0x54,0x31, + 0x40,0x18,0x70,0x90,0x13,0xE1,0x08,0x26,0x07,0xAF,0x24,0x20,0x70,0x43,0x07,0xA9, + 0x40,0x18,0x00,0x21,0x24,0x22,0xC9,0x43,0x04,0xF0,0x3E,0xF8,0x76,0x1E,0xF4,0xD5, + 0x06,0x98,0x01,0xF0,0x0B,0xFC,0x01,0x27,0x5F,0x90,0x53,0xE0,0x5F,0x98,0x01,0x26, + 0x60,0x90,0x4B,0xE0,0x0A,0x20,0x70,0x43,0x8D,0x49,0x40,0x18,0x01,0x00,0xFF,0x30, + 0xFF,0x30,0x02,0x30,0x6F,0x90,0x00,0x7E,0x00,0x28,0x3E,0xD0,0x8C,0x48,0x08,0x18, + 0x6E,0x90,0x02,0xF0,0x7F,0xFD,0x06,0x99,0x08,0x43,0x07,0xD0,0x6E,0x98,0x02,0xF0, + 0x79,0xFD,0x00,0x28,0x31,0xD0,0x06,0x98,0x00,0x28,0x2E,0xD0,0x80,0x49,0x78,0x00, + 0x40,0x18,0xC0,0x30,0x6D,0x90,0x80,0x89,0x0A,0x21,0xFF,0xF7,0x6B,0xFB,0x6F,0x99, + 0x49,0x8B,0x0A,0x1A,0x00,0x2A,0x00,0xDC,0x42,0x1A,0x6D,0x98,0x61,0x92,0xC0,0x8B, + 0x0A,0x21,0xFF,0xF7,0x5F,0xFB,0x6F,0x99,0x89,0x8B,0x0A,0x1A,0x00,0x2A,0x00,0xDC, + 0x42,0x1A,0x61,0x98,0x01,0x00,0x41,0x43,0x10,0x00,0x50,0x43,0x08,0x18,0x60,0x99, + 0x88,0x42,0x04,0xDA,0x24,0x21,0x79,0x43,0x07,0xAA,0x56,0x50,0x60,0x90,0x24,0x21, + 0x79,0x43,0x07,0xAA,0x89,0x18,0xB2,0x00,0x88,0x50,0x76,0x1C,0xA0,0x78,0xB0,0x42, + 0xB0,0xDA,0x7F,0x1C,0xAF,0x42,0xA9,0xDD,0x01,0x20,0xA4,0xE0,0x01,0x23,0x5F,0x9A, + 0x18,0x00,0x15,0xE0,0x5B,0xA9,0x09,0x5C,0x00,0x29,0x10,0xD1,0x24,0x21,0x41,0x43, + 0x0F,0x00,0x07,0xAE,0x89,0x19,0xF6,0x59,0xB7,0x00,0xC9,0x59,0x91,0x42,0x06,0xDA, + 0x00,0x29,0x04,0xDB,0x00,0x2E,0x02,0xDB,0x0A,0x00,0x00,0x23,0x5E,0x90,0x40,0x1C, + 0xA8,0x42,0xE7,0xDD,0x00,0x2B,0x7E,0xD1,0x62,0x98,0x5E,0x9E,0x40,0x1C,0x62,0x90, + 0x24,0x20,0x46,0x43,0x07,0xA8,0x80,0x59,0x0A,0x21,0x48,0x43,0x50,0x49,0x0A,0x22, + 0x41,0x18,0x5E,0x98,0xFF,0x31,0x50,0x43,0x4D,0x4A,0xBF,0x31,0x87,0x18,0x38,0x00, + 0xFF,0x30,0x65,0x30,0x0A,0x22,0x03,0xF0,0x8B,0xFF,0x5E,0x98,0x48,0x49,0x40,0x00, + 0x40,0x18,0xC0,0x30,0x6C,0x90,0x80,0x89,0x0A,0x21,0xFF,0xF7,0xFB,0xFA,0xFF,0x37, + 0x61,0x37,0xF8,0x80,0x6C,0x98,0x0A,0x21,0xC0,0x8B,0xFF,0xF7,0xF3,0xFA,0x38,0x81, + 0x3F,0x48,0x5E,0x99,0x40,0x18,0xFF,0x30,0x01,0x30,0x00,0x7C,0x78,0x71,0xB8,0x7A, + 0x05,0x99,0x49,0x1C,0x88,0x42,0x01,0xD2,0x40,0x1C,0xB8,0x72,0xB8,0x7A,0x13,0x28, + 0x6B,0x90,0x09,0xD9,0x14,0x21,0xFF,0xF7,0xDD,0xFA,0x04,0x99,0x89,0x1C,0x88,0x42, + 0x02,0xD2,0x6B,0x98,0x14,0x30,0xB8,0x72,0x38,0x79,0x5E,0x9A,0x5B,0xA9,0x88,0x54, + 0x71,0x9A,0x5E,0x99,0x81,0x54,0x39,0x79,0x70,0x9A,0x00,0x20,0x88,0x54,0x07,0xA9, + 0x89,0x59,0x58,0xAA,0x50,0x54,0x01,0x21,0x23,0xE0,0x08,0x00,0x24,0x23,0x58,0x43, + 0x07,0xAB,0x6A,0x90,0xC0,0x18,0x69,0x90,0x9B,0x59,0x00,0x22,0xD2,0x43,0x9B,0x00, + 0xC2,0x50,0x5B,0xA8,0x40,0x5C,0x5F,0x9B,0x00,0x28,0x11,0xD1,0xA2,0x78,0x01,0x20, + 0x94,0x46,0x0B,0xE0,0x69,0x9A,0x87,0x00,0xD2,0x59,0x00,0x2A,0x05,0xDB,0x9A,0x42, + 0x07,0xAF,0x02,0xDA,0x6A,0x9B,0xF8,0x50,0x13,0x00,0x40,0x1C,0x84,0x45,0xF1,0xDA, + 0x49,0x1C,0xA9,0x42,0x00,0xE0,0x04,0xE0,0xD7,0xDD,0xA0,0x78,0x62,0x99,0x88,0x42, + 0x05,0xDD,0x64,0x98,0x40,0x1C,0xA8,0x42,0x64,0x90,0x00,0xDC,0x56,0xE7,0x06,0x98, + 0x41,0x1E,0x09,0x06,0x09,0x0E,0x00,0x28,0x06,0x91,0x00,0xD0,0xE3,0xE6,0x01,0x26, + 0x65,0x96,0x63,0x90,0x6F,0xE0,0x58,0xA8,0x80,0x5D,0x00,0x28,0x6A,0xD0,0x65,0x98, + 0x07,0x49,0x2F,0x18,0x0A,0x20,0x70,0x43,0x40,0x18,0x68,0x90,0xFF,0x30,0xFF,0x30, + 0x02,0x30,0x67,0x90,0x00,0x7E,0x70,0x99,0x40,0x5C,0x0D,0xE0,0x20,0x7A,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00,0xD0,0x0A,0x00,0x20,0x50,0x07,0x00,0x20, + 0x1E,0x02,0x00,0x00,0x70,0x08,0x00,0x20,0x03,0x99,0x88,0x42,0x34,0xD2,0x08,0x2F, + 0x32,0xDC,0x4C,0x49,0x68,0x98,0x40,0x18,0x02,0xF0,0x5C,0xFC,0x00,0x28,0x2B,0xD0, + 0x67,0x98,0x70,0x99,0x00,0x7E,0x70,0x9A,0x47,0x4B,0x41,0x5C,0x49,0x1C,0x81,0x54, + 0x68,0x98,0x43,0x21,0xC9,0x00,0x41,0x18,0x0A,0x20,0x78,0x43,0xC0,0x18,0x66,0x90, + 0xFF,0x30,0x65,0x30,0x0A,0x22,0x03,0xF0,0xCB,0xFE,0x68,0x99,0x66,0x98,0xFF,0x31, + 0xC1,0x31,0x4A,0x79,0xFF,0x30,0x61,0x30,0xC2,0x72,0x89,0x79,0x01,0x73,0x67,0x98, + 0x5B,0xA9,0x00,0x7E,0xC8,0x55,0x71,0x99,0x47,0x54,0x65,0x98,0x40,0x1C,0x65,0x90, + 0x63,0x98,0x40,0x1C,0x63,0x90,0x15,0xE0,0x32,0x49,0x68,0x98,0x32,0x4F,0x40,0x18, + 0x02,0xF0,0x28,0xFC,0x00,0x28,0x0D,0xD0,0x72,0x99,0x01,0x20,0x08,0x74,0x67,0x98, + 0x80,0x7F,0x13,0x28,0x06,0xD9,0x60,0x78,0x01,0x28,0x03,0xD1,0xF8,0x88,0x04,0x21, + 0x08,0x43,0xF8,0x80,0x76,0x1C,0xA0,0x78,0xB0,0x42,0x8C,0xDA,0x26,0x48,0xC0,0x88, + 0x41,0x07,0x05,0xD5,0x02,0x99,0x04,0x22,0xE1,0x70,0x23,0x49,0x90,0x43,0xC8,0x80, + 0x01,0x26,0x31,0xE0,0x5B,0xA8,0x80,0x5D,0x00,0x28,0x1A,0xD1,0x13,0x22,0x01,0x20, + 0x52,0x01,0x05,0x23,0xDB,0x01,0x1C,0x49,0x09,0x18,0x8F,0x18,0xFF,0x7E,0x00,0x2F, + 0x0C,0xD1,0xC9,0x18,0x09,0x79,0x00,0x29,0x08,0xD1,0x02,0x06,0x31,0x06,0x12,0x0E, + 0x09,0x0E,0x01,0x23,0x5B,0xA8,0xFF,0xF7,0xAB,0xFA,0x02,0xE0,0x40,0x1C,0x09,0x28, + 0xE9,0xDB,0xE0,0x78,0x00,0x28,0x0E,0xD0,0x0A,0x20,0x70,0x43,0x0E,0x49,0x47,0x18, + 0x38,0x00,0xFF,0x30,0x6B,0x30,0x02,0xF0,0xDD,0xFB,0x00,0x28,0x03,0xD1,0x01,0x20, + 0xFF,0x37,0x61,0x37,0xB8,0x72,0x76,0x1C,0xAE,0x42,0xCB,0xDD,0x63,0x98,0x28,0x18, + 0x20,0x70,0x20,0x78,0x05,0x49,0x5A,0x22,0xA0,0x70,0x08,0x00,0xB4,0x30,0x03,0xF0, + 0x4F,0xFE,0xE7,0xE5,0x1E,0x02,0x00,0x00,0xF0,0x05,0x00,0x20,0x54,0x07,0x00,0x20, + 0xF1,0xB5,0x3C,0x48,0x86,0xB0,0x05,0x90,0x00,0x20,0x04,0x90,0x3A,0x48,0x41,0x7F, + 0x01,0x91,0x01,0x00,0x20,0x39,0x49,0x7F,0x00,0x91,0x00,0x21,0x02,0x91,0x01,0x7D, + 0x00,0x20,0xC0,0x43,0x00,0x29,0x06,0x99,0x03,0xD1,0x00,0x29,0x03,0xD1,0x01,0x20, + 0x01,0xE0,0x00,0x29,0xFB,0xD1,0x03,0x90,0x01,0xF0,0x5C,0xF9,0x01,0xF0,0x0A,0xFA, + 0x00,0x24,0x27,0x00,0x37,0xE0,0x00,0x26,0x30,0xE0,0x31,0x00,0x38,0x00,0x02,0xF0, + 0xB1,0xF8,0x00,0x28,0x28,0xD0,0x29,0x78,0x05,0x9A,0x79,0x43,0x89,0x19,0x89,0x00, + 0x51,0x58,0x09,0x05,0x09,0x0D,0x0D,0x1A,0x06,0x98,0x00,0x28,0x0D,0xD0,0x00,0x2D, + 0x1A,0xDA,0x03,0x9A,0x31,0x00,0x38,0x00,0x05,0xF0,0x4E,0xFB,0x40,0x1C,0x14,0xD1, + 0x00,0x98,0x28,0x18,0x10,0xD5,0x02,0x20,0x0D,0xE0,0x00,0x2D,0x0C,0xDD,0x03,0x9A, + 0x31,0x00,0x38,0x00,0x05,0xF0,0x40,0xFB,0x40,0x1C,0x06,0xD1,0x01,0x98,0x28,0x1A, + 0x00,0x28,0x01,0xDD,0x03,0x20,0x04,0x90,0x64,0x1C,0x76,0x1C,0x13,0x4D,0x28,0x78, + 0x86,0x42,0xCA,0xD3,0x7F,0x1C,0x12,0x48,0x00,0x78,0x87,0x42,0xC3,0xD3,0x10,0x48, + 0x0E,0x49,0x00,0x78,0x09,0x78,0x48,0x43,0xA0,0x42,0x04,0xD1,0x04,0x98,0x07,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x02,0x98,0x41,0x1C,0x02,0x91,0x01,0x21,0x49,0x02, + 0x88,0x42,0xA9,0xD9,0x06,0x98,0x00,0x28,0x01,0xD0,0x02,0x20,0x00,0xE0,0x03,0x20, + 0x04,0x90,0xEC,0xE7,0x00,0x02,0x10,0x40,0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0xF0,0xB5,0x8A,0x4A,0xFF,0xB0,0x88,0xB0,0x40,0x18,0x85,0x92, + 0x42,0x00,0x80,0x18,0x84,0x90,0x48,0x42,0x83,0x90,0x86,0x48,0x86,0x4E,0x00,0x7A, + 0x02,0xAF,0x82,0x90,0x85,0x48,0x86,0x90,0x00,0x7D,0x00,0x28,0x02,0xD1,0x83,0x98, + 0x40,0x42,0x83,0x90,0x01,0x22,0x52,0x02,0x00,0x21,0x30,0x00,0x03,0xF0,0xCC,0xFD, + 0x00,0x25,0x39,0xE0,0x00,0x24,0x32,0xE0,0x7C,0x48,0x20,0x38,0x01,0x7D,0xC9,0x07, + 0x15,0xD0,0x7B,0x49,0x09,0x78,0x00,0x29,0x82,0x99,0x16,0xD0,0x8D,0x42,0x0E,0xD1, + 0x81,0x7D,0xA1,0x42,0x0B,0xD0,0xC1,0x7D,0xA1,0x42,0x08,0xD0,0x01,0x7E,0xA1,0x42, + 0x05,0xD0,0x41,0x7E,0xA1,0x42,0x02,0xD0,0x80,0x7E,0xA0,0x42,0x16,0xD1,0x83,0x9A, + 0x21,0x00,0x28,0x00,0x05,0xF0,0xC8,0xFA,0x10,0xE0,0x8C,0x42,0xF7,0xD1,0x81,0x7D, + 0xA9,0x42,0xF4,0xD0,0xC1,0x7D,0xA9,0x42,0xF1,0xD0,0x01,0x7E,0xA9,0x42,0xEE,0xD0, + 0x41,0x7E,0xA9,0x42,0xEB,0xD0,0x80,0x7E,0xA8,0x42,0xE8,0xD0,0x64,0x1C,0x65,0x48, + 0x00,0x78,0x84,0x42,0xC8,0xD3,0x6D,0x1C,0x63,0x4C,0x20,0x78,0x85,0x42,0xC1,0xD3, + 0x01,0xF0,0x98,0xF8,0x01,0xF0,0x46,0xF9,0x00,0x25,0x2A,0xE0,0x00,0x24,0x23,0xE0, + 0x21,0x00,0x28,0x00,0x01,0xF0,0xEE,0xFF,0x00,0x28,0x12,0xD0,0x59,0x49,0x85,0x9B, + 0x09,0x78,0x69,0x43,0x0A,0x19,0x91,0x00,0x59,0x58,0x03,0x04,0x09,0x05,0x09,0x0D, + 0x1B,0x0C,0xCB,0x1A,0x00,0x2B,0x01,0xDD,0x08,0x1A,0x00,0xE0,0x40,0x1A,0x51,0x00, + 0x70,0x52,0x21,0x00,0x28,0x00,0x02,0xF0,0x5B,0xF8,0x4E,0x49,0x09,0x78,0x69,0x43, + 0x09,0x19,0x49,0x00,0x64,0x1C,0x78,0x52,0x4A,0x48,0x00,0x78,0x84,0x42,0xD7,0xD3, + 0x6D,0x1C,0x49,0x48,0x01,0x78,0x8D,0x42,0xD0,0xD3,0x00,0x21,0x01,0x91,0x01,0xF0, + 0x11,0xF9,0x00,0x25,0x51,0xE0,0x00,0x24,0x4A,0xE0,0x21,0x00,0x28,0x00,0x01,0xF0, + 0xB9,0xFF,0x00,0x28,0x43,0xD0,0x3F,0x49,0x85,0x9B,0x09,0x78,0x69,0x43,0x09,0x19, + 0x8A,0x00,0x9A,0x58,0x03,0x04,0x12,0x05,0x12,0x0D,0x1B,0x0C,0xD3,0x1A,0x00,0x2B, + 0x01,0xDD,0x10,0x1A,0x00,0xE0,0x80,0x1A,0x49,0x00,0x73,0x5A,0x00,0x04,0x00,0x0C, + 0x83,0x42,0x0A,0xD9,0x70,0x52,0x21,0x00,0x28,0x00,0x02,0xF0,0x21,0xF8,0x31,0x49, + 0x09,0x78,0x69,0x43,0x09,0x19,0x49,0x00,0x78,0x52,0x01,0x98,0x03,0x21,0xFF,0xF7, + 0x79,0xF8,0x00,0x29,0x01,0xD0,0x02,0x29,0x0D,0xD1,0x86,0x98,0x00,0x7D,0x00,0x28, + 0x02,0xD1,0x00,0x22,0x43,0x1E,0x01,0xE0,0x01,0x22,0x00,0x23,0x21,0x00,0x28,0x00, + 0x05,0xF0,0x04,0xFA,0x0B,0xE0,0x00,0x22,0xD2,0x43,0x00,0x23,0x21,0x00,0x28,0x00, + 0x05,0xF0,0xFC,0xF9,0x00,0x28,0x02,0xD1,0x00,0x22,0x01,0x23,0xEE,0xE7,0x64,0x1C, + 0x1C,0x48,0x00,0x78,0x84,0x42,0xB0,0xD3,0x6D,0x1C,0x1B,0x48,0x00,0x78,0x85,0x42, + 0xA9,0xD3,0x01,0x98,0x40,0x1C,0x01,0x90,0x84,0x98,0x40,0x1E,0x84,0x90,0x1B,0xD2, + 0x14,0x4E,0x00,0x25,0x0E,0xE0,0x00,0x24,0x08,0xE0,0x68,0x43,0x00,0x19,0x40,0x00, + 0x3A,0x5A,0x21,0x00,0x28,0x00,0x05,0xF0,0xF9,0xF9,0x64,0x1C,0x30,0x78,0x84,0x42, + 0xF3,0xD3,0x6D,0x1C,0x0C,0x48,0x00,0x78,0x85,0x42,0xEC,0xD3,0x7F,0xB0,0x08,0xB0, + 0xF0,0xBC,0x08,0xBC,0x00,0x20,0x18,0x47,0x00,0xF0,0xE4,0xFF,0x7F,0xE7,0x00,0x00, + 0x00,0x02,0x10,0x40,0x70,0x0A,0x00,0x20,0x40,0x00,0x00,0x20,0x20,0x78,0x00,0x00, + 0xFD,0x0A,0x00,0x20,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xF8,0xB5,0x01,0x22, + 0x52,0x07,0x10,0x68,0x01,0x28,0x03,0xD0,0x10,0x68,0x01,0x28,0x43,0xD9,0x02,0x20, + 0x86,0x46,0x22,0x48,0x00,0x90,0x80,0x7A,0x00,0x28,0x3C,0xD0,0x00,0x21,0x13,0x25, + 0x1F,0x4F,0xAD,0x01,0x32,0xE0,0x72,0x46,0x8A,0x18,0x92,0x00,0x10,0x18,0x02,0x68, + 0x84,0x46,0x90,0x0F,0xC0,0x07,0x28,0xD1,0x00,0x9C,0x93,0x00,0xA6,0x7A,0x1B,0x0F, + 0x21,0xE0,0x84,0x00,0xE4,0x19,0x64,0x19,0xE4,0x68,0xA4,0x00,0x24,0x0F,0xA3,0x42, + 0x18,0xD1,0x80,0x00,0xC0,0x19,0x40,0x19,0xC0,0x68,0x92,0x0A,0x83,0x05,0x92,0x02, + 0x9B,0x0D,0x1A,0x43,0x0F,0x4B,0x1A,0x40,0x83,0x01,0x9B,0x0D,0x1B,0x04,0x1A,0x43, + 0x3F,0x23,0x9B,0x02,0x00,0x04,0x80,0x0E,0x9A,0x43,0x80,0x02,0x02,0x43,0x60,0x46, + 0x02,0x60,0x02,0xE0,0x40,0x1C,0x86,0x42,0xDB,0xD8,0x49,0x1C,0x01,0x20,0x40,0x07, + 0x02,0x68,0x8A,0x42,0xC7,0xD8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xB0,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xFF,0xFF,0x00,0xFC,0xFC,0xB5,0x04,0x00,0x5E,0x48,0x8E,0x46, + 0x02,0x8C,0x5E,0x49,0x40,0x8C,0x01,0x91,0xCB,0x88,0x40,0x39,0x00,0x91,0x89,0x7E, + 0x00,0x25,0x2F,0x00,0xC9,0x07,0x01,0x26,0x00,0x29,0xAC,0x46,0x01,0xD1,0xE6,0x71, + 0xA6,0xE0,0x01,0x99,0x09,0x79,0x00,0x29,0x0D,0xD0,0x01,0x29,0x0F,0xD0,0x02,0x29, + 0x07,0xD0,0x03,0x29,0xF4,0xD1,0x17,0x00,0xD1,0x18,0x0A,0x04,0x12,0x0C,0x03,0x00, + 0x05,0xE0,0x1A,0x00,0xFB,0xE7,0x84,0x46,0xC0,0x18,0x03,0x04,0x1B,0x0C,0x60,0x88, + 0xA1,0x88,0x87,0x42,0x58,0xDC,0x82,0x42,0x56,0xDB,0x8C,0x45,0x54,0xDC,0x8B,0x42, + 0x52,0xDB,0x01,0x25,0x72,0x46,0x00,0x2A,0x77,0xD0,0x06,0x27,0x01,0x2A,0x0E,0xD0, + 0x09,0x23,0x02,0x2A,0x17,0xD0,0x03,0x2A,0x71,0xD1,0xE2,0x79,0xD7,0x07,0x28,0xD0, + 0x01,0x2A,0x01,0xD0,0x05,0x2A,0x22,0xD1,0x00,0x25,0xE3,0x71,0x67,0xE0,0x00,0x9A, + 0x92,0x7D,0x00,0x2A,0x63,0xD1,0x00,0xF0,0x87,0xF8,0x06,0x00,0x0F,0xD1,0x02,0x20, + 0xE0,0x71,0x26,0x72,0x5B,0xE0,0xE2,0x79,0xD6,0x07,0xE9,0xD1,0x92,0x07,0x56,0xD5, + 0x00,0xF0,0x7A,0xF8,0x06,0x00,0x08,0xD0,0x20,0x7A,0x00,0x28,0x05,0xD1,0x31,0x00, + 0x20,0x00,0xE7,0x71,0xFE,0xF7,0xE2,0xFF,0xEB,0xE7,0x02,0x20,0x46,0xE0,0x11,0x20, + 0x44,0xE0,0x92,0x07,0x43,0xD5,0x00,0xF0,0x67,0xF8,0x21,0x7A,0x00,0x28,0x0A,0xD0, + 0x00,0x29,0x0C,0xD0,0x81,0x42,0x08,0xD1,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7, + 0xCD,0xFF,0xA6,0x71,0x05,0xE0,0x00,0x29,0x01,0xD0,0x12,0x20,0xF5,0xE7,0x02,0x20, + 0xE0,0x71,0x00,0x20,0x20,0x72,0x2A,0xE0,0x70,0x46,0x00,0x28,0x25,0xD0,0x01,0x28, + 0x06,0xD0,0x02,0x28,0x06,0xD0,0x03,0x28,0x21,0xD1,0xE0,0x79,0x80,0x07,0x0E,0xD4, + 0xE6,0x71,0x1C,0xE0,0xE0,0x79,0x80,0x07,0xFA,0xD5,0x21,0x7A,0x00,0x29,0x04,0xD0, + 0x12,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7,0xA9,0xFF,0xE6,0x71,0x09,0xE0,0x02,0x20, + 0xE0,0x71,0x21,0x7A,0x00,0x29,0x04,0xD0,0x0A,0x20,0xE0,0x71,0x20,0x00,0xFE,0xF7, + 0x9D,0xFF,0x01,0x25,0xA6,0x71,0x02,0xE0,0xFF,0xE7,0x00,0x20,0xE0,0x71,0x08,0x49, + 0xC8,0x88,0x82,0x07,0x04,0xD1,0xE2,0x79,0x92,0x07,0x92,0x0F,0x10,0x43,0xC8,0x80, + 0x28,0x00,0xFC,0xBC,0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0x70,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0x06,0x48,0x40,0x8B,0x00,0x28,0x06,0xD0,0x05,0x48,0xC0,0x88, + 0x00,0x06,0x80,0x0F,0x01,0xD0,0x00,0x20,0x70,0x47,0x01,0x20,0x70,0x47,0x00,0x00, + 0xA0,0x78,0x00,0x00,0xF0,0x05,0x00,0x20,0xF0,0xB4,0x18,0x4B,0x05,0x00,0xDE,0x7E, + 0x00,0x22,0x10,0x00,0x00,0x2E,0x26,0xD0,0x1B,0x7D,0x00,0x2B,0x23,0xD1,0x20,0xE0, + 0x13,0x4B,0xD4,0x00,0xE3,0x18,0x11,0x24,0xA4,0x01,0x1C,0x19,0x1C,0x27,0xE7,0x5F, + 0xAF,0x42,0x11,0xDC,0x23,0x27,0x7F,0x01,0xDB,0x19,0x00,0x27,0xDF,0x5F,0xAF,0x42, + 0x0A,0xDB,0x1E,0x27,0xE7,0x5F,0x8F,0x42,0x06,0xDC,0x02,0x24,0x1C,0x5F,0x8C,0x42, + 0x02,0xDB,0x50,0x1C,0x00,0x06,0x00,0x0E,0x00,0x28,0x04,0xD1,0x52,0x1C,0x12,0x06, + 0x12,0x0E,0x96,0x42,0xDC,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00,0x30,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xF0,0xB5,0x00,0x20,0x8F,0xB0,0x0A,0x90,0x09,0x90,0xC7,0x48, + 0xC7,0x4A,0x01,0x8A,0xD0,0x88,0x43,0x06,0x02,0xD4,0xC4,0x49,0xC0,0x39,0x89,0x89, + 0xC2,0x4C,0xC4,0x4E,0x60,0x34,0x08,0x91,0xE1,0x7B,0x43,0x06,0x00,0xD4,0xF1,0x7A, + 0x43,0x06,0x07,0x91,0xA1,0x7B,0x00,0xD4,0xB1,0x7A,0x43,0x06,0x06,0x91,0x61,0x7C, + 0x00,0xD4,0x71,0x7B,0x43,0x06,0x05,0x91,0xA1,0x79,0x00,0xD4,0xB1,0x78,0x02,0x07, + 0x04,0x91,0xB7,0x49,0x09,0x79,0x05,0xD5,0xB5,0x4A,0x00,0x29,0x02,0xD1,0x08,0x23, + 0x98,0x43,0xD0,0x80,0xB4,0x48,0x18,0x22,0x82,0x5E,0xFF,0x23,0x01,0x33,0x28,0x2A, + 0x03,0xDD,0x1A,0x22,0x82,0x5E,0x1E,0x2A,0x03,0xDC,0x1C,0x22,0x82,0x5E,0x28,0x2A, + 0x05,0xDD,0xAB,0x4D,0xEA,0x88,0x1A,0x43,0xEA,0x80,0x00,0x22,0x04,0xE0,0x1E,0x22, + 0x82,0x5E,0x00,0x2A,0x02,0xD0,0x52,0x1E,0xC2,0x83,0x03,0xE0,0xA4,0x4A,0xD0,0x88, + 0x98,0x43,0xD0,0x80,0x08,0x98,0x80,0x04,0x78,0xD5,0xA3,0x4A,0x00,0x20,0x20,0x32, + 0x52,0x78,0x00,0x2A,0x02,0xD1,0x00,0x29,0x00,0xD1,0x01,0x20,0x00,0x90,0x00,0xF0, + 0x41,0xF9,0x9B,0x48,0x9D,0x4D,0x00,0x79,0x01,0x28,0x0E,0x90,0x68,0xD1,0x98,0x4B, + 0x19,0x89,0x0D,0x91,0xDF,0x88,0x62,0x89,0x7B,0x06,0x00,0xD4,0xF2,0x88,0x91,0x42, + 0x00,0xD3,0x00,0x20,0x03,0x90,0x0D,0x98,0x0A,0x22,0x0E,0x21,0x50,0x43,0x69,0x5E, + 0x0C,0x91,0xFE,0xF7,0x65,0xFD,0x21,0x78,0x91,0x4B,0x7A,0x06,0x0B,0x93,0x00,0xD4, + 0x19,0x7F,0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x02,0x90,0x0C,0x99, + 0x0D,0x98,0x40,0x1A,0x0A,0x21,0xFE,0xF7,0x53,0xFD,0x61,0x78,0x7A,0x06,0x01,0xD4, + 0x0B,0x99,0x49,0x7F,0x88,0x42,0x01,0xDA,0x01,0x20,0x00,0xE0,0x00,0x20,0x01,0x90, + 0x2A,0x89,0xA1,0x78,0x01,0x20,0x7B,0x06,0x01,0xD4,0x0B,0x99,0x89,0x7F,0x8A,0x42, + 0x00,0xD8,0x00,0x20,0xE1,0x78,0x84,0x46,0x2A,0x69,0x01,0x20,0x7B,0x06,0x01,0xD4, + 0x0B,0x99,0xC9,0x7F,0x8A,0x42,0x00,0xDB,0x00,0x20,0x03,0x99,0x00,0x29,0x1F,0xD0, + 0x02,0x99,0x00,0x29,0x1C,0xD0,0x01,0x99,0x00,0x29,0x19,0xD0,0x61,0x46,0x00,0x29, + 0x16,0xD0,0x71,0x4A,0x01,0x21,0x80,0x3A,0x52,0x68,0x00,0x2A,0x00,0xD0,0x00,0x21, + 0x01,0x42,0x0D,0xD0,0x68,0x7B,0x00,0x28,0x24,0xD0,0x61,0x7A,0x7A,0x06,0x00,0xD4, + 0x71,0x79,0x88,0x42,0x1E,0xD8,0x40,0x1E,0x68,0x73,0x1B,0xE0,0x36,0xE0,0xFF,0xE7, + 0x63,0x48,0x21,0x79,0xC0,0x88,0x2A,0x69,0x43,0x06,0x00,0xD4,0x31,0x78,0x8A,0x42, + 0x10,0xDB,0x0E,0x99,0x00,0x29,0x0D,0xD0,0xC1,0x06,0x0B,0xD4,0x69,0x7B,0xE2,0x79, + 0x40,0x06,0x00,0xD4,0xF2,0x78,0x91,0x42,0x04,0xD2,0x04,0x98,0x81,0x42,0x01,0xD9, + 0x49,0x1C,0x69,0x73,0x68,0x7B,0x04,0x99,0x10,0x22,0x88,0x42,0x0D,0xD8,0x00,0x98, + 0x00,0x28,0x0A,0xD1,0x52,0x49,0xC8,0x88,0x10,0x43,0xC8,0x80,0xC9,0x88,0x20,0x7A, + 0x49,0x06,0x00,0xD4,0x30,0x79,0x28,0x73,0x08,0xE0,0x4D,0x4B,0xD9,0x88,0xC8,0x06, + 0x04,0xD5,0x28,0x7B,0x00,0x28,0x10,0xD1,0x91,0x43,0xD9,0x80,0x48,0x4F,0x38,0x79, + 0x00,0x28,0x7E,0xD0,0xF8,0x88,0x80,0x06,0x05,0xD5,0x05,0x99,0x06,0x98,0x40,0x1A, + 0x00,0x06,0x00,0x0E,0x06,0x90,0x01,0x22,0x01,0xE0,0x40,0x1E,0xE3,0xE7,0x50,0x00, + 0xC0,0x19,0x84,0x46,0xFF,0x30,0x41,0x30,0xC0,0x88,0x00,0x28,0x65,0xD0,0x07,0x99, + 0x88,0x42,0x09,0xD9,0x08,0x98,0x80,0x07,0x5F,0xD5,0x00,0x20,0x38,0x71,0xF8,0x88, + 0x08,0x21,0x08,0x43,0xF8,0x80,0x58,0xE0,0x06,0x99,0x88,0x42,0x55,0xD3,0x08,0x98, + 0x40,0x07,0x52,0xD5,0x00,0x24,0x01,0x20,0x27,0xE0,0xFF,0x23,0x39,0x18,0x3E,0x33, + 0x5B,0x5C,0x93,0x42,0x20,0xD1,0x64,0x1C,0xFF,0x31,0x01,0x31,0x09,0x7C,0x0A,0x91, + 0x01,0x00,0x12,0xE0,0x4B,0x00,0xDD,0x19,0x2B,0x00,0xC0,0x33,0xDE,0x89,0xE0,0x35, + 0x9E,0x81,0x2D,0x88,0xDD,0x83,0x7B,0x18,0xDD,0x1D,0xF9,0x35,0x6E,0x7C,0xFF,0x33, + 0x21,0x33,0x2E,0x74,0x9E,0x7F,0x49,0x1C,0x5E,0x77,0x3B,0x79,0x8B,0x42,0xE9,0xDA, + 0x39,0x79,0x49,0x1E,0x40,0x1E,0x39,0x71,0x40,0x1C,0x39,0x79,0x81,0x42,0xD4,0xDA, + 0x00,0x2C,0x22,0xDD,0x01,0x2C,0x05,0xDD,0x01,0x20,0x09,0x90,0xF8,0x88,0x20,0x21, + 0x08,0x43,0xF8,0x80,0x60,0x46,0xFF,0x30,0x01,0x30,0xC1,0x8B,0x38,0x79,0x40,0x1C, + 0x00,0x06,0x00,0x0E,0x38,0x71,0x40,0x00,0xC0,0x19,0xC0,0x30,0x81,0x81,0x60,0x46, + 0xFF,0x30,0x21,0x30,0xC1,0x89,0x38,0x79,0x40,0x00,0xC0,0x19,0xC0,0x30,0xC1,0x83, + 0x3B,0x79,0x0D,0x48,0x0A,0x99,0x30,0x38,0x19,0x54,0x52,0x1C,0x08,0x2A,0x8E,0xDB, + 0x00,0xE0,0x06,0xE0,0x09,0x98,0x00,0x28,0x03,0xD1,0xF8,0x88,0x20,0x21,0x88,0x43, + 0xF8,0x80,0x0F,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x40,0x79,0x00,0x00,0x30,0x07,0x00,0x20,0x30,0x0A,0x00,0x20, + 0x20,0x79,0x00,0x00,0xF0,0xB5,0x70,0x48,0xB1,0xB0,0x00,0x78,0x71,0x4B,0x70,0x4A, + 0x01,0x90,0x6E,0x48,0x00,0x78,0x00,0x90,0xD9,0x88,0x16,0x7D,0x6E,0x48,0x4C,0x06, + 0x00,0xD4,0x06,0x7C,0x55,0x7D,0x49,0x06,0x00,0xD4,0x45,0x7C,0x6B,0x48,0x00,0x21, + 0x2B,0x95,0x30,0x90,0xC1,0x81,0x50,0x22,0x16,0xA8,0x2A,0x91,0x03,0xF0,0x9C,0xF9, + 0x01,0x99,0x2B,0x98,0x2B,0x9D,0x08,0x1A,0xAD,0x1C,0x2F,0x90,0x80,0x1C,0x2E,0x90, + 0x35,0xE0,0x00,0x98,0x16,0xA9,0x80,0x1B,0x80,0x1C,0x86,0x46,0x2B,0x98,0xB4,0x1C, + 0x28,0x1A,0x80,0x00,0x47,0x18,0x40,0x3F,0x1E,0xE0,0x01,0x98,0x5C,0x49,0x00,0x1D, + 0x60,0x43,0x40,0x19,0x00,0x04,0x00,0x14,0x40,0x00,0x0A,0x5E,0x55,0x4B,0x68,0x00, + 0xC0,0x18,0x94,0x21,0x41,0x5E,0x60,0x00,0xC3,0x18,0x6C,0x20,0x18,0x5E,0x2A,0x9B, + 0x94,0x46,0xC3,0x18,0x52,0x18,0xD2,0x18,0x2A,0x92,0xBB,0x6B,0x62,0x46,0x9A,0x18, + 0x08,0x18,0x10,0x18,0x64,0x1C,0xB8,0x63,0xA6,0x45,0xDE,0xDC,0x00,0x98,0x71,0x00, + 0x41,0x1A,0xB8,0x6B,0xFE,0xF7,0xE4,0xFB,0xB8,0x63,0x2E,0x98,0x6D,0x1C,0xA8,0x42, + 0xC7,0xDC,0x00,0x99,0x70,0x00,0x09,0x1A,0x2B,0x98,0x2D,0x91,0x42,0x00,0x01,0x98, + 0x80,0x1A,0x41,0x43,0x2C,0x90,0x2A,0x98,0xFE,0xF7,0xD2,0xFB,0x30,0x99,0x50,0x22, + 0xC8,0x81,0x00,0x20,0x01,0x00,0x2A,0x90,0x02,0xA8,0x03,0xF0,0x45,0xF9,0x2B,0x9C, + 0xA4,0x1C,0x35,0xE0,0x00,0x99,0x02,0xAA,0x89,0x1B,0x89,0x1C,0x8E,0x46,0x2B,0x99, + 0xB0,0x1C,0x61,0x1A,0x89,0x00,0x8D,0x18,0x40,0x3D,0x8C,0x46,0x1C,0xE0,0x01,0x99, + 0x33,0x4A,0x09,0x1D,0x41,0x43,0x09,0x19,0x49,0x00,0x51,0x5E,0x16,0xAA,0x62,0x44, + 0x40,0x3A,0x92,0x6B,0x2B,0x4F,0x89,0x1A,0x62,0x00,0xD3,0x19,0x94,0x22,0x9A,0x5E, + 0x43,0x00,0xDB,0x19,0x6C,0x27,0xDF,0x5F,0xD2,0x19,0x89,0x18,0x0B,0x00,0x4B,0x43, + 0xAA,0x6B,0xD1,0x18,0x40,0x1C,0xA9,0x63,0x86,0x45,0xE0,0xDC,0x2D,0x99,0xA8,0x6B, + 0x49,0x1E,0xFE,0xF7,0x95,0xFB,0xA8,0x63,0x2A,0x99,0x40,0x18,0x64,0x1C,0x2A,0x90, + 0x2E,0x98,0xA0,0x42,0xC6,0xDC,0x2C,0x99,0x2A,0x98,0xFE,0xF7,0x89,0xFB,0x30,0x99, + 0x00,0x22,0x0A,0x61,0x11,0x00,0x02,0xAB,0x0A,0xE0,0x8A,0x00,0x9A,0x58,0x82,0x1A, + 0x14,0x00,0x54,0x43,0x30,0x9A,0x12,0x69,0xA2,0x18,0x30,0x9C,0x49,0x1C,0x22,0x61, + 0x2C,0x9A,0x8A,0x42,0xF1,0xDC,0x30,0x98,0x51,0x1E,0x00,0x69,0xFE,0xF7,0x70,0xFB, + 0x00,0x9A,0x2F,0x99,0x92,0x1B,0x92,0x02,0x51,0x43,0xFE,0xF7,0x69,0xFB,0x30,0x99, + 0x08,0x61,0x30,0x99,0x0E,0x20,0x08,0x5E,0x00,0x28,0x01,0xD1,0x40,0x1C,0xC8,0x81, + 0x31,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x00,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x40,0x79,0x00,0x00,0x30,0x0A,0x00,0x20, + 0xC8,0x02,0x00,0x20,0xF8,0xB5,0x61,0x4D,0x28,0x7A,0x00,0x28,0x06,0xD0,0x28,0x6B, + 0x00,0x04,0x00,0x0C,0x05,0xF0,0x5A,0xF8,0x05,0xF0,0x48,0xF8,0x01,0x24,0x64,0x03, + 0x20,0x00,0xFE,0xF7,0x55,0xFF,0x04,0xF0,0x23,0xFC,0x20,0x00,0xFE,0xF7,0x48,0xFF, + 0x57,0x4C,0x00,0x26,0x9C,0xE0,0x57,0x48,0x41,0x68,0x09,0x07,0x07,0xD5,0xC0,0x68, + 0x00,0x28,0x04,0xD0,0x53,0x48,0xC1,0x68,0xC0,0x03,0xC1,0x63,0x95,0xE0,0x28,0x7A, + 0x00,0x28,0x04,0xD0,0x28,0x6B,0x00,0x04,0x00,0x0C,0x05,0xF0,0x37,0xF8,0xFF,0x20, + 0x81,0x30,0xFE,0xF7,0x35,0xFF,0x03,0x20,0x04,0xF0,0x6E,0xFF,0x03,0xF0,0xF0,0xFE, + 0x49,0x4F,0xF8,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06,0x01,0xD5, + 0x04,0x20,0x00,0xE0,0x02,0x20,0x04,0xF0,0x3B,0xFE,0x00,0xF0,0xCD,0xFB,0x04,0xF0, + 0x15,0xFC,0x00,0xF0,0x97,0xFB,0x00,0xF0,0x45,0xFC,0x68,0x7B,0x00,0x28,0x04,0xD1, + 0x20,0x7B,0x00,0x28,0x01,0xD0,0x03,0xF0,0xDF,0xFE,0x20,0x7A,0x00,0x28,0x01,0xD0, + 0x03,0xF0,0x80,0xF8,0x01,0x20,0x40,0x05,0x00,0xF0,0x6A,0xFB,0x03,0xF0,0x96,0xF8, + 0x00,0x28,0x01,0xD0,0x01,0x20,0x28,0x70,0x00,0x20,0x00,0xF0,0x61,0xFB,0x28,0x78, + 0x00,0x28,0x04,0xD1,0x00,0x22,0x11,0x00,0x10,0x00,0x00,0xF0,0x57,0xF9,0x03,0xF0, + 0xAB,0xFE,0x28,0x78,0x00,0x28,0x04,0xD0,0x68,0x7B,0x00,0x09,0x04,0x28,0x44,0xD1, + 0x2E,0x70,0x03,0x20,0x04,0xF0,0x02,0xFF,0xE8,0x62,0x03,0x20,0x04,0xF0,0x30,0xFF, + 0xFF,0x20,0x81,0x30,0xFE,0xF7,0xDC,0xFE,0xF8,0x8B,0x00,0x28,0x02,0xD0,0x40,0x1E, + 0xF8,0x83,0x2D,0xE0,0xFF,0xF7,0x9E,0xFC,0x00,0x28,0x29,0xD0,0x6F,0x6A,0x00,0x2F, + 0x26,0xD0,0xE8,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x1C,0x49,0xFE,0xF7,0x92,0xFB, + 0x38,0x1A,0x14,0x28,0x1C,0xDD,0x04,0xF0,0xD7,0xFF,0x04,0xF0,0xDB,0xFF,0xA8,0x79, + 0x00,0x28,0x0D,0xD0,0x03,0xF0,0x56,0xFE,0x03,0xF0,0x59,0xFE,0x03,0xF0,0x61,0xFE, + 0x13,0x4D,0x01,0x20,0x68,0x60,0xFE,0xF7,0xC3,0xFE,0x12,0x48,0x68,0x60,0x03,0xE0, + 0x11,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0,0x04,0xF0,0xCB,0xFF,0x0E,0x48,0x06,0x70, + 0x06,0x4D,0x28,0x78,0x00,0x28,0x00,0xD1,0x5D,0xE7,0x04,0x48,0x00,0x7A,0x00,0x28, + 0x01,0xD0,0x04,0xF0,0x9B,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47,0xF8,0x0A,0x00,0x20, + 0x80,0x78,0x00,0x00,0x00,0x40,0x00,0x30,0xF0,0x05,0x00,0x20,0x10,0x27,0x00,0x00, + 0x00,0x30,0x00,0x40,0xE1,0x04,0x00,0x00,0xAC,0x0B,0x00,0x20,0x10,0xB4,0x0F,0x4B, + 0x00,0x22,0xD2,0x43,0x81,0x00,0x5A,0x52,0xCB,0x18,0x5A,0x80,0x0B,0x4B,0x0B,0x4C, + 0x24,0x33,0x5A,0x52,0xCB,0x18,0x5A,0x80,0x00,0x23,0x42,0x00,0x1C,0x3C,0xA3,0x52, + 0x22,0x00,0x12,0x32,0x13,0x54,0x18,0x00,0x52,0x32,0x8A,0x18,0x81,0x00,0x53,0x52, + 0x51,0x18,0x40,0x1E,0x4B,0x80,0xF9,0xD5,0x10,0xBC,0x70,0x47,0xCA,0x0B,0x00,0x20, + 0x10,0xB5,0x0C,0x48,0x09,0x22,0x00,0x21,0x02,0xF0,0xCE,0xFF,0x0A,0x48,0x5A,0x22, + 0x00,0x21,0x02,0xF0,0xC9,0xFF,0x08,0x48,0x00,0x24,0x00,0x1F,0x04,0x70,0x07,0x48, + 0x28,0x22,0x21,0x00,0x02,0xF0,0xC0,0xFF,0x04,0x48,0x4E,0x38,0x44,0x75,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x6B,0x08,0x00,0x20,0x54,0x07,0x00,0x20,0x7E,0x0A,0x00,0x20, + 0x10,0xB5,0x17,0x48,0x12,0x22,0x00,0x21,0x02,0xF0,0xAE,0xFF,0x14,0x48,0x12,0x22, + 0x00,0x21,0x12,0x30,0x02,0xF0,0xA8,0xFF,0x11,0x48,0x09,0x22,0x00,0x21,0x44,0x30, + 0x02,0xF0,0xA2,0xFF,0x0E,0x48,0x20,0x22,0x00,0x21,0x24,0x30,0x02,0xF0,0x9C,0xFF, + 0x0B,0x48,0x10,0x22,0x00,0x21,0x52,0x30,0x02,0xF0,0x96,0xFF,0x08,0x48,0x10,0x22, + 0x00,0x21,0x62,0x30,0x02,0xF0,0x90,0xFF,0x05,0x49,0x00,0x20,0x74,0x31,0xC8,0x82, + 0xFF,0x39,0x41,0x39,0x08,0x71,0x88,0x83,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xBC,0x06,0x00,0x20,0xF0,0xB4,0x1E,0x49,0x1E,0x4E,0x8F,0x7B,0xF1,0x88,0x49,0x06, + 0x02,0xD4,0x1B,0x49,0xC0,0x39,0x8F,0x7A,0x08,0x21,0x00,0x24,0x42,0x00,0x0B,0x01, + 0x9B,0x19,0x15,0x25,0x9B,0x18,0x6D,0x01,0x5D,0x19,0xEC,0x82,0x0D,0x25,0xAD,0x01, + 0x5B,0x19,0x49,0x1E,0xDC,0x80,0xF2,0xD5,0x15,0x25,0x31,0x18,0x6D,0x01,0x01,0x23, + 0x4D,0x19,0xAB,0x73,0x0F,0x25,0x93,0x19,0xAD,0x01,0x5B,0x19,0xDC,0x82,0x1F,0x23, + 0x5B,0x01,0xC9,0x18,0x8F,0x71,0x8C,0x73,0x02,0x21,0x0D,0x01,0xAD,0x19,0xAD,0x18, + 0xED,0x18,0x49,0x1E,0xEC,0x82,0xF8,0xD5,0x80,0x00,0x82,0x19,0x00,0x21,0x21,0x20, + 0xC9,0x43,0x40,0x01,0x10,0x18,0xC1,0x80,0x01,0x81,0xF0,0xBC,0x70,0x47,0x00,0x00, + 0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x10,0xB5,0x04,0x48,0x20,0x22,0x00,0x21, + 0x02,0xF0,0x3A,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x7E,0x08,0x00,0x20, + 0x10,0xB5,0x04,0xF0,0x43,0xFE,0x03,0xF0,0xDD,0xFD,0xFF,0xF7,0x59,0xFF,0x03,0xF0, + 0x2B,0xFF,0x01,0xF0,0x57,0xFD,0x01,0xF0,0xD1,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x10,0xB4,0x0D,0x4C,0x0B,0x4B,0xE4,0x88,0x1B,0x7F,0x64,0x06,0x02,0xD4,0x09,0x4B, + 0xC0,0x3B,0x1B,0x7E,0x04,0x1E,0x00,0xDC,0x44,0x42,0x9C,0x42,0x06,0xDD,0x98,0x42, + 0x01,0xDD,0xC8,0x1A,0x00,0xE0,0xC8,0x18,0x02,0x04,0x12,0x0C,0x10,0xBC,0x10,0x00, + 0x70,0x47,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0xF7,0xB5,0x62,0x48, + 0xCA,0xB0,0x00,0x7D,0x00,0x28,0x03,0xD0,0x01,0x20,0x47,0x90,0x00,0x20,0x02,0xE0, + 0x00,0x20,0x47,0x90,0x01,0x20,0x46,0x90,0x5C,0x48,0x00,0x26,0x49,0x90,0x5C,0x48, + 0x35,0x00,0x01,0x8B,0x04,0x91,0x41,0x8B,0x03,0x91,0x81,0x8A,0x02,0x91,0xC1,0x8A, + 0x01,0x91,0x80,0x8B,0x45,0x90,0x57,0x48,0x00,0x7A,0x48,0x96,0x00,0x90,0x6B,0xE0, + 0x00,0x24,0x64,0xE0,0x68,0x43,0x07,0x19,0x21,0x00,0x28,0x00,0x01,0xF0,0x52,0xF9, + 0x4D,0x49,0x20,0x39,0x0A,0x7D,0xD2,0x07,0x2D,0xD0,0x4F,0x4A,0x52,0x79,0x00,0x2A, + 0x00,0x9A,0x11,0xD0,0x95,0x42,0x26,0xD1,0x8A,0x7D,0xA2,0x42,0x1D,0xD0,0xCA,0x7D, + 0xA2,0x42,0x1A,0xD0,0x0A,0x7E,0xA2,0x42,0x17,0xD0,0x4A,0x7E,0xA2,0x42,0x14,0xD0, + 0x89,0x7E,0xA1,0x42,0x42,0xD1,0x10,0xE0,0x94,0x42,0x14,0xD1,0x8A,0x7D,0xAA,0x42, + 0x0B,0xD0,0xCA,0x7D,0xAA,0x42,0x08,0xD0,0x0A,0x7E,0xAA,0x42,0x05,0xD0,0x4A,0x7E, + 0xAA,0x42,0x02,0xD0,0x89,0x7E,0xA9,0x42,0x30,0xD1,0x04,0x99,0x03,0x9A,0x41,0x18, + 0x09,0x04,0x09,0x0C,0x04,0xE0,0x02,0x99,0x01,0x9A,0x41,0x18,0x09,0x04,0x09,0x0C, + 0x80,0x1A,0x49,0x9B,0x02,0x04,0xB8,0x00,0x18,0x58,0x4B,0x9B,0x12,0x0C,0x00,0x2B, + 0x02,0xD0,0x00,0x05,0x00,0x0D,0x01,0xE0,0x00,0x01,0x00,0x0D,0x4A,0x9B,0x05,0x2B, + 0x0E,0xD8,0x90,0x42,0x01,0xDA,0x47,0x9A,0x02,0xE0,0x88,0x42,0x0E,0xDD,0x46,0x9A, + 0x21,0x00,0x28,0x00,0x00,0xF0,0x80,0xF8,0x05,0xA8,0x87,0x55,0x76,0x1C,0x05,0xE0, + 0x48,0x99,0x05,0xA8,0x47,0x54,0x48,0x98,0x40,0x1C,0x48,0x90,0x64,0x1C,0x22,0x49, + 0xC8,0x78,0x84,0x42,0x96,0xDB,0x6D,0x1C,0x1F,0x48,0x01,0x79,0x8D,0x42,0x8F,0xDB, + 0x4A,0x98,0x05,0x28,0x03,0xD9,0x00,0x04,0x48,0x9E,0x00,0x0C,0x45,0x90,0x00,0x2E, + 0x25,0xDD,0x4C,0x98,0x00,0x28,0x22,0xD1,0x00,0xF0,0x5A,0xF9,0x00,0xF0,0x7A,0xF9, + 0x00,0xF0,0x28,0xFA,0x76,0x1E,0x14,0xD4,0x14,0x4C,0x05,0xAB,0x98,0x5D,0x82,0x00, + 0x49,0x98,0x80,0x58,0x01,0x05,0x45,0x98,0x09,0x0D,0x08,0x18,0x00,0x04,0x00,0x0C, + 0xA0,0x42,0x00,0xD9,0x20,0x00,0x00,0x04,0x08,0x43,0x49,0x99,0x76,0x1E,0x88,0x50, + 0xEC,0xD5,0x00,0xF0,0x35,0xF9,0x00,0xF0,0x5D,0xF9,0x00,0xF0,0x0B,0xFA,0x4D,0xB0, + 0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x20,0x78,0x00,0x00,0x00,0x02,0x10,0x40, + 0xE0,0x7A,0x00,0x00,0x70,0x0A,0x00,0x20,0xF8,0x0A,0x00,0x20,0xFF,0x0F,0x00,0x00, + 0xF0,0xB5,0x01,0x26,0x76,0x07,0x30,0x68,0x01,0x28,0x1D,0xD1,0x74,0x68,0xA1,0x05, + 0xA0,0x01,0x89,0x0D,0x80,0x0D,0x0D,0x00,0x07,0x00,0x03,0xF0,0x9F,0xFF,0x41,0x1C, + 0x12,0xD0,0x0B,0x4A,0x80,0x00,0x81,0x18,0x49,0x88,0x10,0x5A,0xA3,0x0A,0x49,0x19, + 0x49,0x05,0x89,0x0D,0x9B,0x02,0xC0,0x19,0x06,0x4A,0x40,0x08,0x19,0x43,0x80,0x05, + 0x80,0x09,0x11,0x40,0x08,0x43,0x70,0x60,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x08,0x71,0x00,0x00,0xFF,0xFF,0x00,0xFC,0x30,0xB4,0x17,0x4D,0x15,0x4C,0x2D,0x78, + 0x68,0x43,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x09,0x0E,0x00,0x0A,0x00,0x2B, + 0x07,0xD0,0x00,0x2A,0x02,0xD0,0xC9,0x18,0xC0,0x18,0x0F,0xE0,0xC0,0x1A,0xC9,0x1A, + 0x0C,0xE0,0x00,0x2A,0x05,0xD0,0x88,0x42,0x01,0xDD,0x49,0x1C,0x06,0xE0,0x40,0x1C, + 0x04,0xE0,0x88,0x42,0x01,0xDD,0x40,0x1E,0x00,0xE0,0x49,0x1E,0x4A,0x1E,0xFF,0x2A, + 0x05,0xD2,0x42,0x1E,0xFF,0x2A,0x02,0xD2,0x00,0x02,0x08,0x43,0x60,0x53,0x30,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0xF0,0xB5,0x5A,0x48, + 0x8F,0xB0,0x06,0x78,0x59,0x48,0x5B,0x4A,0x05,0x96,0x07,0x78,0x58,0x48,0x06,0x97, + 0x0E,0x90,0x80,0x7E,0x0D,0x92,0xC1,0x07,0x09,0xD0,0x80,0x07,0x04,0xD5,0x70,0x1E, + 0x05,0x90,0x03,0x20,0x10,0x71,0x02,0xE0,0x7F,0x1E,0x00,0x21,0x11,0x71,0x52,0x48, + 0x0A,0x22,0x01,0x8C,0x51,0x43,0x09,0x04,0x09,0x0C,0x02,0x91,0x40,0x8C,0x50,0x43, + 0x00,0x04,0x00,0x0C,0x01,0x90,0x05,0x98,0x00,0x28,0x7E,0xD0,0x00,0x2F,0x7C,0xD0, + 0x41,0x00,0x02,0x98,0xFE,0xF7,0x2C,0xF8,0x05,0x04,0x2D,0x0C,0x00,0x24,0xB6,0x1C, + 0x0A,0xE0,0x02,0x98,0x05,0x99,0x60,0x43,0xFE,0xF7,0x22,0xF8,0x43,0x4A,0x61,0x00, + 0x40,0x19,0x89,0x18,0x64,0x1C,0x08,0x84,0xB4,0x42,0xF2,0xDB,0x01,0x98,0x79,0x00, + 0xFE,0xF7,0x16,0xF8,0x06,0x04,0x06,0x98,0x36,0x0C,0x00,0x24,0x80,0x1C,0x0C,0x90, + 0x0C,0xE0,0x01,0x98,0x39,0x00,0x60,0x43,0xFE,0xF7,0x0A,0xF8,0x37,0x4A,0x81,0x19, + 0x60,0x00,0x80,0x18,0x40,0x30,0x81,0x80,0x0C,0x98,0x64,0x1C,0x84,0x42,0xF0,0xDB, + 0x0E,0x98,0x80,0x7E,0xC0,0x07,0x53,0xD0,0x00,0x24,0x4D,0xE0,0x2F,0x4A,0x09,0x21, + 0x10,0x19,0xC9,0x01,0x40,0x18,0x41,0x7A,0x0E,0x98,0x80,0x7E,0x80,0x07,0x03,0xD5, + 0x05,0x98,0x03,0x95,0x04,0x91,0x02,0xE0,0x08,0x00,0x03,0xA9,0xC0,0xC1,0x27,0x49, + 0x40,0x00,0x40,0x18,0x0B,0x90,0x00,0x8C,0x0A,0x21,0x40,0x1B,0xFD,0xF7,0xE0,0xFF, + 0x22,0x4A,0xE1,0x00,0x89,0x18,0x11,0x22,0x92,0x01,0x0A,0x91,0x89,0x18,0x09,0x91, + 0x88,0x83,0x04,0x98,0x1D,0x49,0x40,0x00,0x40,0x18,0x40,0x30,0x08,0x90,0x80,0x88, + 0x0A,0x21,0x80,0x1B,0xFD,0xF7,0xCC,0xFF,0x09,0x99,0xC8,0x83,0x0B,0x98,0x0A,0x21, + 0x00,0x8C,0x40,0x19,0xFE,0xF7,0x9E,0xF8,0x0A,0x99,0x23,0x22,0x52,0x01,0x89,0x18, + 0x07,0x91,0x08,0x80,0x08,0x98,0x0A,0x21,0x80,0x88,0x80,0x19,0xFE,0xF7,0x92,0xF8, + 0x07,0x99,0x48,0x80,0x03,0x98,0x40,0x00,0x00,0xE0,0x09,0xE0,0x0A,0x21,0xFE,0xF7, + 0x89,0xF8,0x0D,0x99,0x64,0x1C,0xC8,0x80,0x0E,0x98,0xC0,0x7E,0xA0,0x42,0xAD,0xDC, + 0x0F,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x30,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20,0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x02,0x49,0x08,0x68,0x04,0x22,0x90,0x43,0x08,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x02,0x48,0x01,0x68,0x04,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x03,0x49,0xCA,0x69,0x01,0x23,0x5B,0x05,0x9A,0x43,0x02,0x43,0xCA,0x61,0x70,0x47, + 0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x49,0x08,0x49,0x00,0xC1,0x60,0x70,0x47, + 0xC0,0x90,0x00,0x40,0x02,0x48,0xC1,0x68,0x01,0x22,0x11,0x43,0xC1,0x60,0x70,0x47, + 0xC0,0x90,0x00,0x40,0x01,0x49,0xC8,0x68,0xC8,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x02,0x48,0x01,0x68,0x08,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x01,0x22,0x10,0xB5,0x08,0x49,0x09,0x48,0x52,0x02,0x02,0xF0,0xCA,0xFC,0x08,0x48, + 0x01,0x22,0xC0,0x8E,0x92,0x02,0x01,0x04,0x01,0x43,0x06,0x48,0x02,0xF0,0xD4,0xFC, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x10,0x40, + 0x00,0x78,0x00,0x00,0x00,0x02,0x10,0x40,0x02,0x48,0x81,0x6B,0x49,0x08,0x49,0x00, + 0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x02,0x48,0x81,0x6B,0x01,0x22,0x11,0x43, + 0x81,0x63,0x70,0x47,0x80,0x90,0x00,0x40,0x10,0xB5,0x0A,0x49,0x0A,0x48,0xFC,0x22, + 0x02,0xF0,0x9F,0xFC,0xFF,0x22,0x09,0x49,0x09,0x48,0xF1,0x32,0x02,0xF0,0x99,0xFC, + 0x01,0x22,0x08,0x49,0x08,0x48,0x52,0x02,0x02,0xF0,0x93,0xFC,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0x04,0x7B,0x00,0x00,0x04,0x90,0x00,0x40,0x00,0x7C,0x00,0x00, + 0x00,0xA0,0x00,0x40,0x00,0x76,0x00,0x00,0x00,0x06,0x10,0x40,0x03,0x48,0x41,0x68, + 0x01,0x22,0x12,0x04,0x11,0x43,0x41,0x60,0x70,0x47,0x00,0x00,0x00,0xA0,0x00,0x40, + 0x02,0x48,0x01,0x68,0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x90,0x00,0x40, + 0x70,0xB5,0x1A,0x4C,0x20,0x68,0x40,0x08,0x40,0x00,0x20,0x60,0x18,0x48,0xA6,0x15, + 0x05,0x04,0x2D,0x0C,0x00,0x22,0x31,0x00,0x28,0x00,0xFD,0xF7,0xE3,0xFF,0x32,0x00, + 0x21,0x00,0x28,0x00,0x00,0x23,0xFD,0xF7,0xE5,0xFF,0x12,0x48,0x75,0x00,0x04,0x04, + 0x24,0x0C,0x00,0x22,0x29,0x00,0x20,0x00,0xFD,0xF7,0xD4,0xFF,0x0E,0x49,0x2A,0x00, + 0x20,0x00,0x00,0x23,0xFD,0xF7,0xD6,0xFF,0x0C,0x48,0x00,0x22,0x04,0x04,0x24,0x0C, + 0x29,0x00,0x20,0x00,0xFD,0xF7,0xC6,0xFF,0x09,0x49,0x2A,0x00,0x20,0x00,0x00,0x23, + 0xFD,0xF7,0xC8,0xFF,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x90,0x00,0x40, + 0x00,0x7B,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0xA0,0x00,0x40,0x00,0x76,0x00,0x00, + 0x00,0x06,0x10,0x40,0x04,0x48,0x10,0xB5,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0xFE,0xF7, + 0x7F,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40,0xF1,0xB5,0x55,0x4E, + 0x53,0x4B,0xF2,0x88,0x98,0x88,0x54,0x49,0x54,0x06,0x82,0xB0,0x00,0xD4,0x08,0x88, + 0x52,0x06,0x01,0x90,0x98,0x79,0x00,0xD4,0x88,0x78,0x37,0x00,0x00,0x25,0x01,0x00, + 0x41,0x43,0x08,0x06,0x00,0x0E,0x01,0x24,0xFF,0x37,0x61,0x37,0x00,0x90,0x11,0xE0, + 0x0A,0x20,0x60,0x43,0x43,0x21,0x80,0x19,0xC9,0x00,0x09,0x5C,0x00,0x29,0x08,0xD0, + 0x46,0x49,0x40,0x18,0x01,0xF0,0x66,0xF9,0x00,0x28,0x02,0xD0,0x6D,0x1C,0x2D,0x06, + 0x2D,0x0E,0x64,0x1C,0xB8,0x78,0xA0,0x42,0xEA,0xDA,0x41,0x49,0x08,0x00,0x20,0x30, + 0xCA,0x8B,0x43,0x88,0xD4,0x1A,0x00,0x2C,0x00,0xDC,0x9C,0x1A,0x22,0x04,0x03,0x88, + 0x84,0x88,0x12,0x0C,0x1F,0x1B,0x00,0x2F,0x00,0xDC,0xE7,0x1A,0x84,0x7A,0x3B,0x04, + 0x1B,0x0C,0x00,0x2C,0x04,0xD0,0x44,0x7B,0xC8,0x2C,0x01,0xD2,0x64,0x1C,0x44,0x73, + 0x8C,0x7B,0x14,0x2C,0x04,0xD2,0x0C,0x7C,0x00,0x2C,0x01,0xD0,0x01,0x24,0x4C,0x74, + 0x14,0x2A,0x01,0xD8,0x14,0x2B,0x04,0xD9,0xCC,0x7B,0xC8,0x2C,0x01,0xD2,0x64,0x1C, + 0xCC,0x73,0x02,0x2D,0x09,0xD2,0x14,0x2A,0x07,0xD2,0x14,0x2B,0x05,0xD2,0x08,0x24, + 0x04,0x5F,0x04,0x2C,0x07,0xDA,0x64,0x1C,0x04,0xE0,0x08,0x24,0x04,0x5F,0xE7,0x1C, + 0x01,0xDD,0x64,0x1E,0x04,0x81,0x44,0x7B,0x01,0x2C,0x01,0xD9,0x78,0x21,0x10,0xE0, + 0x02,0x2D,0x0F,0xD2,0x08,0x24,0x04,0x5F,0x02,0x2C,0x0B,0xDD,0xC9,0x7B,0x14,0x29, + 0x08,0xD2,0x51,0x3A,0x8B,0x2A,0x02,0xD3,0x51,0x3B,0x8B,0x2B,0x02,0xD2,0x77,0x21, + 0xC9,0x43,0xC1,0x80,0x00,0x21,0x02,0x2D,0x01,0x73,0x0E,0xD2,0x06,0x21,0x41,0x5E, + 0x78,0x31,0x04,0xD1,0xC1,0x7A,0xC8,0x29,0x01,0xD2,0x49,0x1C,0xC1,0x72,0xC1,0x7A, + 0x49,0x1E,0x02,0x29,0x01,0xD2,0x01,0x21,0x01,0x73,0x06,0x21,0x41,0x5E,0x01,0x98, + 0x09,0x18,0x08,0x00,0x48,0x43,0x02,0x99,0x00,0x29,0x05,0xD1,0x31,0x79,0x01,0x29, + 0x02,0xD0,0x00,0x99,0xFD,0xF7,0x0C,0xFE,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00,0x1E,0x02,0x00,0x00, + 0x70,0x08,0x00,0x20,0xFF,0x21,0x03,0x31,0x08,0x00,0x49,0x1E,0x00,0x28,0xFB,0xD1, + 0x70,0x47,0x15,0x21,0x08,0x00,0x49,0x1E,0x00,0x28,0xFB,0xD1,0x70,0x47,0x00,0x00, + 0x02,0x48,0x41,0x6B,0x01,0x22,0x11,0x43,0x41,0x63,0x70,0x47,0x00,0x70,0x00,0x40, + 0x70,0x47,0x00,0x00,0xFE,0xB5,0x1E,0x4A,0x1C,0x48,0xD1,0x88,0x00,0x25,0x00,0x7A, + 0x2E,0x00,0x2F,0x00,0x49,0x06,0x02,0xD4,0x18,0x48,0xC0,0x38,0x00,0x79,0x19,0x49, + 0x89,0x8A,0x40,0x18,0x01,0x06,0x18,0x48,0x09,0x0E,0x00,0x78,0x00,0x28,0x01,0x90, + 0x21,0xD0,0x01,0x24,0x49,0x1C,0x00,0x91,0x13,0xE0,0x0A,0x20,0x60,0x43,0x10,0x49, + 0x40,0x18,0xFF,0x30,0x61,0x30,0x80,0x7A,0x14,0x28,0x01,0xD2,0x01,0x26,0x07,0xE0, + 0x01,0x27,0x14,0x21,0xFD,0xF7,0x96,0xFE,0x00,0x99,0x88,0x42,0x00,0xD3,0x01,0x25, + 0x64,0x1C,0x01,0x98,0xA0,0x42,0xE8,0xDA,0x00,0x2F,0x02,0xD1,0x00,0x2E,0x00,0xD0, + 0x02,0x25,0x28,0x06,0x00,0x0E,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x20,0x7A,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xD0,0x0A,0x00,0x20,0x50,0x07,0x00,0x20,0x13,0x48,0x10,0xB5, + 0xC0,0x68,0x00,0x28,0x1F,0xD0,0x01,0x06,0x09,0x0F,0x03,0x29,0x01,0xD0,0x04,0x29, + 0x02,0xD1,0x00,0xF0,0xF1,0xF8,0x08,0xE0,0xF0,0x21,0x01,0x40,0x20,0x29,0x02,0xD2, + 0x00,0xF0,0x1A,0xF8,0x01,0xE0,0x03,0xF0,0xBB,0xFA,0x09,0x48,0x82,0x68,0x81,0x15, + 0x8A,0x43,0x82,0x60,0x82,0x68,0x0A,0x43,0x82,0x60,0x06,0x48,0x00,0x7A,0x00,0x28, + 0x01,0xD0,0x04,0xF0,0x83,0xFA,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30, + 0x00,0x40,0x00,0x40,0xF8,0x0A,0x00,0x20,0xF1,0xB5,0x61,0x48,0x2E,0x21,0x90,0xB0, + 0x41,0x60,0x41,0x69,0x89,0x06,0xFC,0xD4,0x10,0x99,0x01,0x26,0x76,0x07,0xF1,0x63, + 0x84,0x69,0x5B,0x48,0x40,0x68,0x80,0x07,0xFB,0xD5,0x03,0xF0,0x91,0xFA,0x59,0x4D, + 0x28,0x7A,0x00,0x28,0x01,0xD0,0x04,0xF0,0x69,0xFA,0x10,0x9B,0x00,0x21,0x01,0x20, + 0x9B,0x1E,0xFF,0x27,0x4A,0x1E,0x40,0x03,0x04,0xF0,0xA2,0xFA,0x1E,0x16,0x40,0x40, + 0x40,0x40,0x13,0x40,0x40,0x42,0x10,0x40,0x40,0x58,0x40,0x40,0x4F,0x68,0x6F,0x76, + 0x7D,0x85,0x40,0x8C,0x93,0x4F,0x40,0x40,0x40,0x40,0x9A,0x40,0x0B,0x20,0xF0,0x63, + 0x4D,0xE0,0x00,0xF0,0x19,0xF9,0x29,0xE0,0x03,0x21,0x09,0x07,0xCA,0x60,0xFE,0xF7, + 0x4F,0xF9,0x00,0xF0,0x45,0xFE,0x44,0x48,0x44,0x4A,0x41,0x68,0x52,0x68,0x91,0x42, + 0x1C,0xD0,0x43,0x49,0x17,0x22,0xC9,0x8B,0x52,0x01,0x80,0x18,0x49,0x1C,0xC1,0x83, + 0xFD,0xF7,0xC0,0xFA,0xA8,0x78,0xC0,0x07,0x01,0xD0,0xFF,0xF7,0x21,0xFE,0xA8,0x78, + 0x80,0x07,0x01,0xD5,0x04,0xF0,0xE0,0xF9,0x3A,0x49,0x40,0x22,0x68,0x46,0x02,0xF0, + 0x88,0xFA,0x01,0x20,0x08,0x90,0x68,0x46,0x04,0xF0,0xEE,0xF9,0xF7,0x63,0x1E,0xE0, + 0x32,0x48,0xA0,0x30,0x00,0x7E,0x00,0x28,0xF8,0xD0,0x00,0x2C,0x01,0xD0,0x01,0x20, + 0x00,0xE0,0x00,0x20,0x04,0xF0,0x76,0xF8,0xF0,0xE7,0x03,0x21,0x09,0x07,0xCA,0x60, + 0xFE,0xF7,0x16,0xF9,0x10,0x98,0xFE,0xF7,0x69,0xF8,0x08,0xE0,0x03,0x21,0x09,0x07, + 0xCA,0x60,0xFE,0xF7,0x0D,0xF9,0x00,0xF0,0x83,0xFD,0x00,0xF0,0xEF,0xF8,0x20,0x48, + 0x41,0x68,0x41,0x60,0x11,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x2C,0x02,0xD0, + 0x01,0x20,0xA8,0x71,0xD2,0xE7,0xA9,0x71,0xD0,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20, + 0xE8,0x71,0xCB,0xE7,0xE9,0x71,0xC9,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x72, + 0xC4,0xE7,0x29,0x72,0xC2,0xE7,0x00,0x2C,0x03,0xD0,0x20,0x0C,0x6C,0x72,0x28,0x82, + 0xBC,0xE7,0x69,0x72,0xBA,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xA8,0x72,0xB5,0xE7, + 0xA9,0x72,0xB3,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0xE8,0x72,0xAE,0xE7,0xE9,0x72, + 0xAC,0xE7,0x00,0x2C,0x02,0xD0,0x01,0x20,0x28,0x73,0xA7,0xE7,0x29,0x73,0xA5,0xE7, + 0x00,0x2C,0x01,0xD0,0x6C,0x73,0x00,0xE0,0x69,0x73,0x03,0xF0,0x9B,0xFE,0x9D,0xE7, + 0x00,0x40,0x00,0x30,0xF8,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20,0x00,0x78,0x00,0x00, + 0xE0,0x7A,0x00,0x00,0xC0,0x75,0x00,0x00,0xF0,0xB5,0x38,0x4F,0x35,0x4C,0xF9,0x78, + 0x03,0x00,0x35,0x4A,0x0E,0x04,0x39,0x79,0x35,0x48,0x25,0x68,0x0E,0x43,0x35,0x49, + 0x30,0x3B,0x04,0xF0,0xE5,0xF9,0x12,0x0A,0x0C,0x0E,0x12,0x16,0x1A,0x1C,0x18,0x1E, + 0x20,0x30,0x3B,0x16,0x3E,0x43,0x48,0x4E,0x51,0x0A,0xCD,0x61,0x21,0xE0,0x60,0x68, + 0x01,0xE0,0x2D,0x48,0xC0,0x6B,0xC8,0x61,0x1B,0xE0,0x10,0x8C,0x52,0x8C,0x00,0x04, + 0x35,0xE0,0xCE,0x61,0x15,0xE0,0xE0,0x68,0xF5,0xE7,0x50,0x68,0xF3,0xE7,0xA0,0x68, + 0xF1,0xE7,0xD0,0x7B,0xEF,0xE7,0x25,0x48,0x03,0x7A,0x10,0x7D,0x52,0x7D,0xC4,0x07, + 0xE4,0x09,0x80,0x07,0x12,0x04,0xC0,0x0F,0x00,0x02,0x23,0x43,0x02,0x43,0x13,0x43, + 0xCB,0x61,0x5F,0x22,0x22,0xE0,0x93,0x7D,0x50,0x7E,0x1B,0x06,0x18,0x43,0xD3,0x7D, + 0x12,0x7E,0x1B,0x04,0x12,0x02,0x13,0x43,0x18,0x43,0xD4,0xE7,0x90,0x7E,0x00,0x06, + 0xD1,0xE7,0x17,0x48,0x00,0x69,0xC0,0x07,0xC0,0x0F,0xCC,0xE7,0x00,0x69,0xFA,0x89, + 0x40,0x08,0x00,0x02,0x03,0xE0,0x13,0x48,0xA2,0x69,0xC0,0x8B,0x00,0x04,0x10,0x43, + 0xC1,0xE7,0x00,0x69,0x40,0x08,0xBE,0xE7,0xB8,0x69,0xBC,0xE7,0x48,0x69,0x10,0x42, + 0xFC,0xD1,0x03,0xF0,0x6D,0xF9,0xFF,0x20,0x01,0x21,0x49,0x07,0xC8,0x63,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0xC0,0x75,0x00,0x00,0x00,0x78,0x00,0x00,0xF8,0x0A,0x00,0x20, + 0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x30,0xC0,0x0F,0x00,0x20,0x70,0x0A,0x00,0x20, + 0x00,0x7B,0x00,0x00,0xE0,0x7A,0x00,0x00,0x70,0xB5,0x03,0x24,0x24,0x07,0xE5,0x68, + 0x00,0x20,0xC0,0x43,0xE0,0x60,0xFE,0xF7,0x51,0xF8,0x06,0x00,0xCB,0x20,0xC0,0x01, + 0xFE,0xF7,0x2E,0xF8,0x02,0xF0,0xEC,0xFF,0x01,0x20,0x40,0x05,0xFF,0xF7,0x88,0xFC, + 0x00,0xF0,0xBC,0xFC,0x00,0x20,0xFF,0xF7,0x83,0xFC,0x02,0xF0,0xD5,0xFF,0x30,0x00, + 0xFE,0xF7,0x50,0xF8,0xE5,0x60,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x03,0x21, + 0x10,0xB5,0xC0,0x43,0x09,0x07,0xC8,0x60,0x02,0xF0,0xD2,0xFF,0x00,0x20,0xFF,0xF7, + 0x6F,0xFC,0xFF,0xF7,0xED,0xFC,0x05,0x48,0xC1,0x68,0xC9,0x07,0xFC,0xD0,0x01,0x20, + 0x40,0x07,0x04,0xF0,0x3B,0xF9,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x90,0x00,0x40, + 0xF8,0xB5,0x27,0x49,0x25,0x48,0xC9,0x88,0x00,0x8A,0x49,0x06,0x02,0xD4,0x23,0x48, + 0xC0,0x38,0x80,0x89,0xC0,0x06,0x3D,0xD5,0x22,0x4E,0x30,0x78,0x00,0x28,0x39,0xD0, + 0x70,0x78,0x00,0x28,0x36,0xD0,0x01,0x25,0x31,0xE0,0x0A,0x21,0x69,0x43,0x1C,0x4B, + 0x01,0x20,0xCC,0x18,0xFF,0x34,0x77,0x78,0x61,0x34,0x25,0xE0,0x0A,0x22,0x42,0x43, + 0xD2,0x18,0xFF,0x32,0xA1,0x32,0x21,0x79,0x92,0x7F,0x91,0x42,0x1B,0xD1,0x0A,0x22, + 0x50,0x43,0xC7,0x18,0xFF,0x37,0x06,0x21,0xC1,0x37,0x00,0x20,0x61,0x5E,0x38,0x5E, + 0x02,0x22,0xBA,0x5E,0x08,0x1A,0x08,0x21,0x61,0x5E,0x89,0x1A,0x00,0x91,0x3A,0x88, + 0xE1,0x88,0xFF,0xF7,0x05,0xFA,0xE0,0x80,0x7A,0x88,0x21,0x89,0x00,0x98,0xFF,0xF7, + 0xFF,0xF9,0x20,0x81,0x02,0xE0,0x40,0x1C,0x87,0x42,0xD7,0xDA,0x6D,0x1C,0x30,0x78, + 0xA8,0x42,0xCA,0xDA,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x50,0x07,0x00,0x20,0xF0,0xB5,0x00,0x20,0xB1,0xB0,0x11,0x90, + 0x10,0x90,0x0F,0x90,0x0E,0x90,0xFA,0x48,0xFB,0x4D,0x01,0x8C,0xF9,0x4A,0x0B,0x91, + 0x40,0x8C,0xFA,0x49,0x0A,0x90,0xE8,0x88,0x13,0x7B,0x44,0x06,0x00,0xD4,0x0B,0x7A, + 0x54,0x7B,0x46,0x06,0x00,0xD4,0x4C,0x7A,0x46,0x06,0x09,0x94,0x94,0x7E,0x00,0xD4, + 0x8C,0x7D,0x46,0x06,0x08,0x94,0x54,0x7E,0x00,0xD4,0x4C,0x7D,0x07,0x94,0xEF,0x4C, + 0x40,0x34,0x24,0x8A,0x46,0x06,0x02,0xD4,0xEC,0x4C,0x80,0x3C,0xA4,0x89,0x24,0x07, + 0x42,0xD5,0xD4,0x7B,0x46,0x06,0x00,0xD4,0xCC,0x7A,0x5C,0x43,0x26,0x94,0x14,0x7C, + 0x46,0x06,0x00,0xD4,0x0C,0x7B,0x5C,0x43,0x25,0x94,0x54,0x7C,0x46,0x06,0x00,0xD4, + 0x4C,0x7B,0x5C,0x43,0x24,0x94,0x94,0x7C,0x46,0x06,0x00,0xD4,0x8C,0x7B,0x5C,0x43, + 0x23,0x94,0xD4,0x7C,0x46,0x06,0x00,0xD4,0xCC,0x7B,0x5C,0x43,0x22,0x94,0x14,0x7D, + 0x46,0x06,0x00,0xD4,0x0C,0x7C,0x5C,0x43,0x21,0x94,0x54,0x7D,0x46,0x06,0x00,0xD4, + 0x4C,0x7C,0x5C,0x43,0x20,0x94,0x94,0x7D,0x46,0x06,0x00,0xD4,0x8C,0x7C,0x5C,0x43, + 0x1F,0x94,0xD4,0x7D,0x46,0x06,0x00,0xD4,0xCC,0x7C,0x5C,0x43,0x1E,0x94,0x12,0x7E, + 0x40,0x06,0x00,0xD4,0x0A,0x7D,0xCE,0x48,0x5A,0x43,0x1D,0x92,0x30,0x90,0x00,0x78, + 0x00,0x28,0x05,0xD1,0x00,0xF0,0xCE,0xFE,0x31,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x20,0x27,0x90,0xC7,0x48,0x2F,0x90,0xC3,0x4D,0x27,0x98,0x13,0x21,0x28,0x18, + 0x49,0x01,0x2E,0x90,0x40,0x18,0x04,0x7F,0x00,0x2C,0x0F,0xD0,0x08,0x98,0x00,0x28, + 0x08,0xD1,0x0A,0x20,0x60,0x43,0x40,0x19,0xFF,0x30,0x6B,0x30,0x00,0xF0,0xE2,0xFD, + 0x00,0x28,0x03,0xD0,0x2F,0x98,0x00,0x7B,0x00,0x28,0x03,0xD0,0x27,0x98,0xFF,0xF7, + 0xF9,0xF8,0xA0,0xE2,0x27,0x99,0x15,0x27,0x07,0x20,0x7F,0x01,0x4E,0x00,0x01,0x01, + 0x49,0x19,0x89,0x19,0xCA,0x19,0xD2,0x8A,0x0B,0x23,0x9B,0x01,0xCB,0x18,0xDA,0x80, + 0x0D,0x22,0x92,0x01,0x89,0x18,0xCA,0x88,0x40,0x1E,0xCA,0x82,0xEF,0xD5,0x0A,0x20, + 0x44,0x43,0x64,0x19,0x2D,0x94,0xFF,0x34,0x61,0x34,0xE1,0x88,0x0B,0x98,0x40,0x1E, + 0x81,0x42,0xDE,0xDC,0x21,0x89,0x0A,0x98,0x40,0x1E,0x81,0x42,0xD9,0xDC,0xA2,0x48, + 0xE1,0x88,0x35,0x18,0xE8,0x19,0x2C,0x90,0x0D,0x23,0xC1,0x82,0x21,0x89,0x9B,0x01, + 0xE8,0x18,0x2B,0x90,0xC1,0x80,0x00,0x20,0x01,0x21,0xC9,0x02,0x06,0x90,0x05,0x90, + 0x07,0x20,0x04,0x91,0x98,0x4A,0x03,0x01,0x9A,0x18,0x92,0x19,0x15,0x23,0x5B,0x01, + 0x94,0x46,0xD2,0x18,0x16,0x23,0xD3,0x5E,0x00,0x2B,0x07,0xDD,0x06,0x9F,0xBB,0x42, + 0x01,0xDD,0xD7,0x8A,0x06,0x97,0x8B,0x42,0x00,0xDA,0xD1,0x8A,0x0D,0x23,0x9B,0x01, + 0x62,0x46,0xD2,0x18,0x06,0x23,0xD3,0x5E,0x00,0x2B,0x09,0xDD,0x05,0x9F,0xBB,0x42, + 0x01,0xDD,0xD7,0x88,0x05,0x97,0x04,0x9F,0xBB,0x42,0x01,0xDA,0xD2,0x88,0x04,0x92, + 0x40,0x1E,0xD7,0xD5,0x06,0x98,0x40,0x1A,0xF0,0x28,0x04,0xDC,0x04,0x99,0x05,0x98, + 0x40,0x1A,0xF0,0x28,0x02,0xDD,0x2F,0x99,0x01,0x20,0x88,0x72,0x2E,0x98,0x15,0x21, + 0x49,0x01,0x40,0x18,0x2A,0x90,0x80,0x7B,0x01,0x28,0x1B,0xD9,0x2C,0x98,0x16,0x21, + 0x41,0x5E,0x0B,0x20,0x80,0x01,0x28,0x18,0x06,0x22,0x82,0x5E,0x88,0x1A,0x00,0x28, + 0x00,0xDC,0x50,0x1A,0x00,0x04,0x00,0x14,0x0D,0x90,0x2B,0x98,0x06,0x21,0x16,0x22, + 0x41,0x5E,0x82,0x5E,0x88,0x1A,0x00,0x28,0x00,0xDC,0x50,0x1A,0x00,0x04,0x00,0x14, + 0x0C,0x90,0x02,0xE0,0x64,0x20,0x0C,0x90,0x0D,0x90,0x0B,0x20,0x80,0x01,0x2F,0x18, + 0x2C,0x9A,0x06,0x21,0x16,0x20,0x79,0x5E,0x10,0x5E,0x02,0xF0,0x9F,0xFF,0x13,0x90, + 0x2B,0x98,0x16,0x21,0x41,0x5E,0x02,0x00,0x06,0x20,0x10,0x5E,0x02,0xF0,0x96,0xFF, + 0x12,0x90,0x16,0x21,0x79,0x5E,0x13,0x98,0x02,0xF0,0x90,0xFF,0x15,0x90,0x1B,0x20, + 0x40,0x01,0x28,0x18,0x06,0x21,0x29,0x90,0x41,0x5E,0x12,0x98,0x02,0xF0,0x86,0xFF, + 0x14,0x90,0x17,0x20,0x40,0x01,0x28,0x18,0x16,0x22,0x06,0x21,0x82,0x5E,0x41,0x5E, + 0x15,0x98,0x02,0xF0,0x7D,0xFF,0x00,0x04,0x00,0x14,0x17,0x90,0x07,0x20,0xC0,0x01, + 0x2F,0x18,0x29,0x98,0x16,0x21,0x41,0x5E,0x06,0x22,0xBA,0x5E,0x14,0x98,0x02,0xF0, + 0x6F,0xFF,0x00,0x04,0x00,0x14,0x16,0x90,0x03,0x20,0x00,0x02,0x28,0x18,0x16,0x22, + 0x06,0x21,0x82,0x5E,0x41,0x5E,0x17,0x98,0x02,0xF0,0x62,0xFF,0x00,0x04,0x00,0x14, + 0x19,0x90,0x1D,0x20,0x40,0x01,0x28,0x18,0x28,0x90,0x06,0x22,0x82,0x5E,0x16,0x21, + 0x79,0x5E,0x16,0x98,0x02,0xF0,0x54,0xFF,0x00,0x04,0x00,0x14,0x18,0x90,0x19,0x20, + 0x40,0x01,0x28,0x18,0x16,0x22,0x06,0x21,0x82,0x5E,0x41,0x5E,0x19,0x98,0x02,0xF0, + 0x47,0xFF,0x00,0x04,0x00,0x14,0x1B,0x90,0x0F,0x20,0x80,0x01,0x2F,0x18,0x28,0x98, + 0x16,0x21,0x41,0x5E,0x06,0x22,0xBA,0x5E,0x18,0x98,0x02,0xF0,0x39,0xFF,0x00,0x04, + 0x00,0x14,0x1A,0x90,0x0C,0x99,0x0D,0x98,0x00,0xF0,0xE0,0xFF,0x01,0x21,0x84,0x46, + 0x88,0x02,0x2D,0x4B,0x0A,0x01,0xD2,0x18,0x93,0x19,0x1F,0x22,0x52,0x01,0x9A,0x18, + 0xD2,0x8A,0x1B,0x18,0x49,0x1E,0xDA,0x80,0xF3,0xD5,0x1F,0x21,0x49,0x01,0x6A,0x18, + 0x60,0x46,0xD0,0x82,0x2E,0x9A,0x00,0x20,0x55,0x18,0xAA,0x7B,0x00,0x2A,0x94,0x46, + 0x0B,0xDB,0x21,0x4B,0x11,0x01,0xC9,0x18,0x1F,0x23,0x89,0x19,0x5B,0x01,0xCB,0x18, + 0x16,0x21,0x59,0x5E,0x08,0x18,0x52,0x1E,0xF3,0xD5,0x61,0x46,0x49,0x1C,0xFD,0xF7, + 0xC7,0xF9,0x25,0x99,0x06,0x00,0x88,0x42,0x01,0xDC,0x01,0x20,0x0F,0xE0,0x23,0x98, + 0x86,0x42,0x01,0xDC,0x02,0x20,0x0A,0xE0,0x21,0x98,0x86,0x42,0x01,0xDC,0x03,0x20, + 0x05,0xE0,0x1F,0x98,0x86,0x42,0x01,0xDC,0x04,0x20,0x00,0xE0,0x05,0x20,0xA9,0x79, + 0x40,0x1A,0x09,0x99,0x49,0x42,0x00,0x28,0x08,0xDD,0x16,0x20,0x38,0x5E,0x09,0x9B, + 0x98,0x42,0x01,0xD1,0x00,0x20,0x08,0xE0,0x40,0x1C,0x06,0xE0,0x00,0x28,0x0A,0x48, + 0x38,0x5E,0x13,0xDA,0x88,0x42,0xF5,0xD0,0x40,0x1E,0xF8,0x82,0x11,0xE0,0x00,0x00, + 0x00,0x78,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0x60,0x79,0x00,0x00, + 0x50,0x07,0x00,0x20,0x90,0x08,0x00,0x20,0x16,0x00,0x00,0x00,0x00,0x28,0xEB,0xDC, + 0xE2,0xDB,0x16,0x20,0x38,0x5E,0x09,0x9B,0x98,0x42,0x05,0xD1,0xAB,0x79,0x05,0x2B, + 0x02,0xD2,0x5B,0x1C,0xAB,0x71,0x06,0xE0,0x88,0x42,0x04,0xD1,0xA8,0x79,0x01,0x28, + 0x01,0xD9,0x40,0x1E,0xA8,0x71,0x1A,0x99,0x1B,0x98,0x1C,0x91,0x2A,0x99,0x8F,0x7B, + 0x39,0x00,0xFD,0xF7,0x6D,0xF9,0x11,0x90,0x0F,0x90,0x1C,0x98,0x39,0x00,0xFD,0xF7, + 0x67,0xF9,0x10,0x90,0x0E,0x90,0xA8,0x79,0x01,0x28,0x27,0xD1,0x0E,0xAA,0x0F,0xA9, + 0x6B,0x46,0x06,0xC3,0x1A,0x9B,0x1B,0x9A,0x09,0x21,0x38,0x00,0x03,0xF0,0x64,0xFB, + 0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0,0x2A,0x98,0x18,0x9B,0x80,0x7B,0x19,0x9A, + 0x07,0x21,0x03,0xF0,0x59,0xFB,0x6B,0x46,0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E, + 0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAF,0x07,0xC7,0x04,0x22,0x9A,0x5E,0x25,0x9B, + 0x00,0x92,0x2D,0x98,0x26,0x9A,0xFF,0x30,0x65,0x30,0x9A,0xE0,0x02,0x28,0x27,0xD1, + 0x0E,0xAA,0x0F,0xA9,0x6B,0x46,0x06,0xC3,0x18,0x9B,0x19,0x9A,0x07,0x21,0x38,0x00, + 0x03,0xF0,0x3A,0xFB,0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0,0x2A,0x98,0x16,0x9B, + 0x80,0x7B,0x17,0x9A,0x05,0x21,0x03,0xF0,0x2F,0xFB,0x6B,0x46,0x38,0x22,0x3C,0x21, + 0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAF,0x07,0xC7,0x04,0x22, + 0x9A,0x5E,0x00,0x92,0x2D,0x98,0x23,0x9B,0xFF,0x30,0x24,0x9A,0x65,0x30,0x70,0xE0, + 0x03,0x28,0x27,0xD1,0x0E,0xAA,0x0F,0xA9,0x6B,0x46,0x06,0xC3,0x16,0x9B,0x17,0x9A, + 0x05,0x21,0x38,0x00,0x03,0xF0,0x10,0xFB,0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0, + 0x2A,0x98,0x14,0x9B,0x80,0x7B,0x15,0x9A,0x03,0x21,0x03,0xF0,0x05,0xFB,0x6B,0x46, + 0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB,0x18,0x5E,0x01,0xAF, + 0x07,0xC7,0x04,0x22,0x9A,0x5E,0x21,0x9B,0x00,0x92,0x2D,0x98,0x22,0x9A,0xFF,0x30, + 0x65,0x30,0x46,0xE0,0x04,0x28,0x27,0xD1,0x0E,0xAA,0x0F,0xA9,0x68,0x46,0x06,0xC0, + 0x14,0x9B,0x15,0x9A,0x03,0x21,0x38,0x00,0x03,0xF0,0xE6,0xFA,0x10,0xAA,0x11,0xA9, + 0x68,0x46,0x06,0xC0,0x2A,0x98,0x12,0x9B,0x80,0x7B,0x13,0x9A,0x02,0x21,0x03,0xF0, + 0xDB,0xFA,0x6B,0x46,0x38,0x22,0x3C,0x21,0x9A,0x5E,0x59,0x5E,0x00,0x20,0x10,0xAB, + 0x18,0x5E,0x01,0xAF,0x07,0xC7,0x04,0x22,0x9A,0x5E,0x1F,0x9B,0x00,0x92,0x2D,0x98, + 0x20,0x9A,0xFF,0x30,0x65,0x30,0x1C,0xE0,0x10,0xAA,0x11,0xA9,0x68,0x46,0x06,0xC0, + 0x12,0x9B,0x13,0x9A,0x02,0x21,0x38,0x00,0x03,0xF0,0xBE,0xFA,0x10,0xAB,0x00,0x22, + 0x04,0x21,0x9A,0x5E,0x59,0x5E,0x2B,0x9B,0x06,0x20,0x18,0x5E,0x01,0xAB,0x07,0xC3, + 0x2C,0x98,0x16,0x22,0x82,0x5E,0x1D,0x9B,0x00,0x92,0x2D,0x98,0x1E,0x9A,0xFF,0x30, + 0x65,0x30,0x31,0x00,0x03,0xF0,0xBC,0xFA,0x2A,0x98,0x3C,0x49,0x80,0x7B,0x09,0x28, + 0x02,0xD2,0x2A,0x9A,0x40,0x1C,0x90,0x73,0xA8,0x7B,0x02,0x28,0x01,0xD2,0x40,0x1C, + 0xA8,0x73,0x20,0x79,0x40,0x1E,0x80,0x00,0x41,0x18,0x21,0x20,0x40,0x01,0x0D,0x18, + 0x06,0x20,0x28,0x5E,0x00,0x28,0x22,0xDB,0x08,0x21,0x69,0x5E,0x00,0x29,0x1E,0xDB, + 0x07,0x99,0x64,0x22,0x56,0x1A,0x70,0x43,0x11,0x00,0xFD,0xF7,0x79,0xF8,0x07,0x00, + 0xE0,0x88,0x07,0x99,0x48,0x43,0x64,0x21,0xFD,0xF7,0x4C,0xF9,0x38,0x18,0xE0,0x80, + 0x08,0x20,0x28,0x5E,0x64,0x21,0x70,0x43,0xFD,0xF7,0x6A,0xF8,0x06,0x00,0x20,0x89, + 0x07,0x99,0x48,0x43,0x64,0x21,0xFD,0xF7,0x3D,0xF9,0x30,0x18,0x20,0x81,0xE0,0x88, + 0xE8,0x80,0x20,0x89,0x28,0x81,0x27,0x98,0x40,0x1C,0x08,0x28,0x27,0x90,0x00,0xDA, + 0x3A,0xE5,0x30,0x98,0x01,0x78,0x1A,0x48,0x01,0x29,0x1F,0xD1,0x30,0x99,0x89,0x7B, + 0x4A,0x00,0x16,0x49,0x51,0x18,0x15,0x22,0x52,0x01,0x8A,0x18,0x92,0x8A,0xC2,0x83, + 0x0D,0x22,0x92,0x01,0x8A,0x18,0x94,0x88,0x2F,0x9B,0x1C,0x80,0x0B,0x23,0x9B,0x01, + 0xC9,0x18,0x8B,0x88,0x2F,0x99,0x4B,0x80,0x92,0x8A,0x2F,0x99,0x8A,0x80,0x30,0x99, + 0x09,0x8A,0xC1,0x82,0x30,0x99,0x49,0x8A,0x01,0x83,0x0D,0xE5,0x02,0x29,0xFC,0xD1, + 0x30,0x99,0x09,0x8A,0xC1,0x82,0x30,0x99,0x49,0x8A,0x01,0x83,0x30,0x99,0x49,0x8B, + 0x41,0x83,0x30,0x99,0x89,0x8B,0x81,0x83,0xFE,0xE4,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x70,0x08,0x00,0x20,0x14,0x20,0x9F,0xE5,0x01,0x10,0x81,0xE2,0x00,0x20,0xD2,0xE5, + 0x02,0x20,0x82,0xE2,0x91,0x02,0x20,0xE0,0x01,0x00,0x80,0xE2,0x1E,0xFF,0x2F,0xE1, + 0xFB,0x0A,0x00,0x20,0xF8,0xB5,0x1C,0x4B,0x1C,0x7D,0xDA,0x8E,0xE4,0x07,0x31,0xD0, + 0x1C,0x8F,0x1A,0x4B,0x1B,0x7A,0x9E,0x46,0x19,0x4B,0x1E,0x78,0x16,0x4B,0x9D,0x7D, + 0x00,0x2E,0x76,0x46,0xAC,0x46,0xDD,0x7D,0x00,0x95,0x1D,0x7E,0x5F,0x7E,0x9B,0x7E, + 0x12,0xD0,0xB0,0x42,0x1E,0xD1,0x8C,0x45,0x08,0xD0,0x00,0x98,0x88,0x42,0x05,0xD0, + 0x8D,0x42,0x03,0xD0,0x8F,0x42,0x01,0xD0,0x8B,0x42,0x03,0xD1,0x20,0x00,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x20,0xFA,0xE7,0xB1,0x42,0x0B,0xD1,0x84,0x45,0xF5,0xD0, + 0x00,0x99,0x81,0x42,0xF2,0xD0,0x85,0x42,0xF0,0xD0,0x87,0x42,0xEE,0xD0,0x83,0x42, + 0xF0,0xD1,0xEB,0xE7,0x10,0x00,0xEA,0xE7,0x00,0x78,0x00,0x00,0x70,0x0A,0x00,0x20, + 0xFD,0x0A,0x00,0x20,0x78,0x47,0xC0,0x46,0x14,0x20,0x9F,0xE5,0x02,0x10,0x81,0xE2, + 0x00,0x20,0xD2,0xE5,0x04,0x20,0x82,0xE2,0x91,0x02,0x20,0xE0,0x02,0x00,0x80,0xE2, + 0x1E,0xFF,0x2F,0xE1,0xFB,0x0A,0x00,0x20,0xFE,0xB5,0x04,0x00,0x88,0x1A,0xC0,0x1A, + 0x0D,0x00,0x16,0x00,0x41,0x00,0x08,0x19,0x02,0x22,0x82,0x5E,0x1F,0x00,0x20,0x38, + 0x1E,0x23,0xC3,0x5E,0x61,0x5E,0x18,0x00,0x00,0xF0,0x9C,0xFD,0x69,0x00,0x01,0x90, + 0x08,0x19,0x02,0x22,0x82,0x5E,0x20,0x38,0x1E,0x23,0xC3,0x5E,0x61,0x5E,0x18,0x00, + 0x00,0xF0,0x90,0xFD,0x00,0x90,0xA8,0x19,0xC0,0x19,0x41,0x00,0x08,0x19,0x02,0x22, + 0x82,0x5E,0x20,0x38,0x1E,0x23,0xC3,0x5E,0x61,0x5E,0x18,0x00,0x00,0xF0,0x82,0xFD, + 0x02,0x00,0x00,0x99,0x01,0x98,0x00,0xF0,0x7D,0xFD,0xFE,0xBC,0x08,0xBC,0x18,0x47, + 0x04,0x4B,0x03,0x4A,0x1B,0x78,0x58,0x43,0x40,0x18,0x40,0x00,0x10,0x5A,0x70,0x47, + 0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0x04,0x48,0x41,0x69,0x49,0x06,0x01,0xD5, + 0x10,0x20,0x70,0x47,0x40,0x69,0xC0,0x06,0xC0,0x0E,0x70,0x47,0x00,0x40,0x00,0x30, + 0x0D,0x49,0x01,0x20,0x10,0xB5,0x40,0x07,0x4A,0x69,0x92,0x06,0xFC,0xD4,0xCA,0x68, + 0x4B,0x68,0x4B,0x60,0x04,0xE0,0x4B,0x69,0x9B,0x06,0xFC,0xD4,0x8B,0x69,0x08,0xC0, + 0x52,0x1E,0xF8,0xD2,0x2E,0x20,0x48,0x60,0x48,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0, + 0x87,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x40,0x00,0x30,0x78,0x47,0xC0,0x46, + 0x10,0x40,0x2D,0xE9,0xB0,0x40,0x9F,0xE5,0x0C,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3, + 0xFC,0xFF,0xFF,0x0A,0x04,0x00,0x94,0xE5,0x04,0x00,0x84,0xE5,0x04,0x00,0x94,0xE5, + 0x04,0x00,0x10,0xE3,0x10,0x00,0x00,0x0A,0x0C,0x00,0x94,0xE5,0x04,0x10,0x90,0xE4, + 0x1C,0x10,0x84,0xE5,0x02,0x12,0xA0,0xE3,0x38,0x10,0x91,0xE5,0x04,0x00,0x00,0xEA, + 0x04,0x20,0x90,0xE4,0x1C,0x20,0x84,0xE5,0x14,0x20,0x94,0xE5,0x40,0x00,0x12,0xE3, + 0xFC,0xFF,0xFF,0x1A,0x01,0x10,0x51,0xE2,0xF8,0xFF,0xFF,0x1A,0x14,0x00,0x94,0xE5, + 0x5F,0x00,0x10,0xE3,0xFC,0xFF,0xFF,0x1A,0x11,0x00,0x00,0xEA,0x04,0x00,0x94,0xE5, + 0x02,0x00,0x10,0xE3,0xE8,0xFF,0xFF,0x0A,0x14,0x00,0x94,0xE5,0x20,0x00,0x10,0xE3, + 0xE5,0xFF,0xFF,0x1A,0x0C,0x00,0x94,0xE5,0x08,0x00,0x50,0xE3,0x10,0x40,0xBD,0x08, + 0x18,0x0A,0x00,0x0A,0x14,0x10,0x94,0xE5,0x5F,0x00,0x11,0xE3,0x18,0x10,0x94,0x15, + 0x04,0x10,0x80,0x14,0xFA,0xFF,0xFF,0x1A,0x04,0x00,0x94,0xE5,0x02,0x00,0x10,0xE3, + 0xFC,0xFF,0xFF,0x0A,0x0F,0x0A,0x00,0xEB,0xD2,0xFF,0xFF,0xEA,0x00,0x40,0x00,0x30, + 0xF8,0xB5,0x20,0x4E,0x20,0x4F,0x00,0x25,0x2C,0x00,0x78,0x69,0x80,0x06,0xFC,0xD4, + 0x78,0x68,0x78,0x60,0xF8,0x68,0x04,0x28,0x0E,0xD1,0x1C,0x48,0x40,0x21,0x04,0xE0, + 0x7A,0x69,0x92,0x06,0xFC,0xD4,0xBA,0x69,0x04,0xC0,0x49,0x1E,0xF8,0xD2,0x20,0x25, + 0x17,0x4C,0x30,0x78,0x01,0x21,0x06,0xE0,0x05,0x28,0x07,0xD1,0x15,0x48,0x16,0x4C, + 0x85,0x08,0x30,0x78,0x02,0x21,0x08,0x43,0x30,0x70,0x10,0xE0,0x03,0x28,0x0E,0xD1, + 0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0xF1,0xFB,0xF8,0xBC, + 0x08,0xBC,0x18,0x47,0x78,0x69,0x80,0x06,0xFC,0xD4,0xB8,0x69,0x01,0xC4,0x6D,0x1E, + 0xF8,0xD2,0x2E,0x20,0x78,0x60,0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0xE0,0xFB, + 0xC3,0xE7,0x00,0x00,0xFA,0x0A,0x00,0x20,0x00,0x40,0x00,0x30,0x00,0x90,0x00,0x40, + 0x00,0xA0,0x00,0x40,0x00,0x03,0x00,0x00,0xC8,0x02,0x00,0x20,0x01,0x49,0x20,0x20, + 0x48,0x61,0x70,0x47,0x00,0x40,0x00,0x30,0xF8,0xB5,0x01,0x22,0x52,0x07,0x11,0x68, + 0x3D,0x48,0x01,0x29,0x80,0x7A,0x01,0xD1,0x01,0x25,0x03,0xE0,0x11,0x68,0x01,0x29, + 0x06,0xD9,0x02,0x25,0x00,0x28,0x0B,0xD0,0x00,0x21,0x25,0x27,0x7F,0x01,0x3B,0xE0, + 0x00,0x28,0x05,0xD1,0x34,0x48,0x09,0x22,0x00,0x21,0x08,0x38,0x01,0xF0,0xFC,0xFB, + 0xF8,0xBC,0x08,0xBC,0x18,0x47,0x4A,0x19,0x00,0x24,0x92,0x00,0x10,0x18,0x02,0x68, + 0x84,0x46,0x90,0x0F,0xC0,0x07,0x26,0xD0,0x01,0x20,0x93,0x00,0x1B,0x0F,0x2B,0x4E, + 0x36,0x18,0xF6,0x19,0x36,0x7E,0x9E,0x42,0x01,0xD1,0x04,0x00,0x02,0xE0,0x40,0x1C, + 0x08,0x28,0xF4,0xD9,0x00,0x2C,0x06,0xD0,0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43, + 0x80,0x08,0x02,0x43,0x0D,0xE0,0x21,0x4C,0x01,0x20,0x26,0x18,0xF6,0x19,0x36,0x7E, + 0x00,0x2E,0x03,0xD1,0x24,0x18,0xE4,0x19,0x23,0x76,0xED,0xE7,0x40,0x1C,0x08,0x28, + 0xF3,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68,0x8A,0x42, + 0xC9,0xD8,0x00,0x21,0x21,0xE0,0x4A,0x19,0x92,0x00,0x10,0x18,0x02,0x68,0x84,0x46, + 0x90,0x0F,0xC0,0x07,0x18,0xD1,0x11,0x4E,0x01,0x20,0x93,0x00,0x1C,0x0F,0x33,0x18, + 0xDB,0x19,0x1B,0x7E,0xA3,0x42,0x0A,0xD1,0x34,0x18,0x00,0x23,0xE4,0x19,0x23,0x76, + 0x0F,0x23,0x9B,0x06,0x00,0x07,0x9A,0x43,0x80,0x08,0x02,0x43,0x02,0xE0,0x40,0x1C, + 0x08,0x28,0xEC,0xD9,0x60,0x46,0x02,0x60,0x49,0x1C,0x01,0x20,0x40,0x07,0x02,0x68, + 0x8A,0x42,0xD8,0xD8,0x9C,0xE7,0x00,0x00,0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20, + 0x03,0x23,0x1B,0x07,0xDA,0x68,0x01,0x21,0x81,0x40,0x8A,0x43,0xDA,0x60,0x70,0x47, + 0x10,0xB4,0x0F,0x24,0x03,0x23,0x1B,0x07,0x1C,0x60,0x05,0x4C,0x60,0x63,0x19,0x61, + 0x9A,0x60,0x00,0x20,0xC0,0x43,0xD8,0x60,0x00,0x20,0x18,0x60,0x10,0xBC,0x70,0x47, + 0x40,0x00,0x00,0x30,0x03,0x4B,0x00,0xB5,0x82,0x00,0x99,0x50,0xFF,0xF7,0xE0,0xFF, + 0x08,0xBC,0x18,0x47,0x2C,0x0B,0x00,0x20,0xF0,0xB5,0x85,0xB0,0xFE,0xF7,0xB8,0xFB, + 0xFE,0xF7,0x96,0xFB,0x02,0xF0,0xE0,0xF9,0x00,0xF0,0xDA,0xFD,0x00,0xF0,0xFA,0xFB, + 0xFE,0xF7,0x08,0xF8,0xFD,0xF7,0x46,0xFA,0x38,0x49,0x37,0x48,0xC9,0x88,0x40,0x7F, + 0x49,0x06,0x02,0xD4,0x34,0x48,0xC0,0x38,0x40,0x7E,0x00,0x28,0x04,0xD1,0xFF,0xF7, + 0x43,0xFA,0xFF,0xF7,0xED,0xF9,0x03,0xE0,0xFF,0xF7,0xEA,0xF9,0xFF,0xF7,0x3C,0xFA, + 0x02,0xF0,0xE0,0xFC,0x02,0xF0,0x48,0xFB,0x01,0x26,0x76,0x07,0x30,0x68,0x00,0x28, + 0x07,0xD0,0x70,0x68,0x80,0x0F,0x80,0x07,0x03,0xD5,0x35,0x68,0x02,0x24,0x6D,0x1C, + 0x37,0xE0,0x01,0x24,0x25,0x00,0xA0,0x00,0x87,0x19,0x38,0x68,0x81,0x01,0x04,0x90, + 0x80,0x05,0x80,0x0D,0x02,0x90,0x22,0x48,0x89,0x0D,0x03,0x91,0x00,0x78,0x00,0x28, + 0x03,0xD1,0x02,0xA9,0x03,0xA8,0x02,0xF0,0x6B,0xFB,0x1E,0x4B,0x00,0x21,0x58,0x8C, + 0x40,0x1E,0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0,0x18,0x8C,0x0A,0x00,0x02,0xA9, + 0x40,0x1E,0x03,0x04,0x1B,0x0C,0x03,0xA8,0x03,0xF0,0xD2,0xFA,0x02,0xA9,0x03,0xA8, + 0x03,0xF0,0xA6,0xF9,0x14,0x49,0x04,0x98,0x08,0x40,0x03,0x99,0x89,0x05,0x89,0x09, + 0x08,0x43,0x02,0x99,0x80,0x0A,0x80,0x02,0x89,0x05,0x89,0x0D,0x08,0x43,0x38,0x60, + 0x64,0x1C,0xAC,0x42,0xC7,0xD9,0x30,0x68,0xFC,0xF7,0x5A,0xFF,0xFD,0xF7,0x3E,0xFE, + 0x02,0xF0,0xCA,0xFA,0xFF,0xF7,0xE0,0xFE,0xFC,0xF7,0x9E,0xFE,0x03,0x48,0x40,0x79, + 0x05,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x03,0x0B,0x00,0x20,0x00,0x78,0x00,0x00,0xFF,0xFF,0x00,0xFC,0xF8,0xB5,0x02,0xF0, + 0x3F,0xF9,0xFE,0xF7,0xCD,0xFD,0xFE,0xF7,0x5B,0xFE,0xFE,0xF7,0xA3,0xFE,0x1A,0x48, + 0x00,0x21,0xC0,0x7F,0x03,0xF0,0xE0,0xF8,0x18,0x4F,0x19,0x4D,0xFC,0x03,0x00,0x20, + 0x28,0x70,0xE8,0x61,0xE8,0x79,0x00,0x28,0x1A,0xD0,0x01,0x26,0x15,0xE0,0x78,0x68, + 0x00,0x07,0x12,0xD5,0xA6,0x63,0xF8,0x68,0x07,0x28,0x06,0xD1,0x02,0xF0,0x78,0xFA, + 0xFF,0xF7,0x22,0xF9,0xFF,0x20,0xE0,0x63,0x07,0xE0,0x0B,0x28,0x10,0xD1,0xE0,0x63, + 0x78,0x68,0x80,0x07,0xFC,0xD5,0x02,0xF0,0x6B,0xFA,0xE0,0x6B,0x0B,0x28,0xE6,0xD1, + 0xFE,0xF7,0xE8,0xF9,0x28,0x78,0x00,0x28,0xD9,0xD0,0x01,0xF0,0x23,0xFF,0xD6,0xE7, + 0x78,0x68,0x80,0x07,0xFC,0xD5,0xEE,0xE7,0x00,0x78,0x00,0x00,0x00,0x40,0x00,0x30, + 0xF8,0x0A,0x00,0x20,0x70,0xB5,0x21,0x49,0x1F,0x4A,0xCB,0x88,0x05,0x00,0x10,0x7A, + 0x1F,0x49,0x5C,0x06,0x00,0xD4,0x08,0x79,0x1E,0x4C,0xA4,0x8A,0x00,0x19,0x06,0x06, + 0xD0,0x79,0x36,0x0E,0x5A,0x06,0x00,0xD4,0xC8,0x78,0x1B,0x49,0x2C,0x78,0x4A,0x7C, + 0x00,0x2A,0x0F,0xD1,0x8A,0x7C,0x00,0x2A,0x01,0xD0,0x80,0x1C,0x08,0xE0,0xCA,0x7C, + 0x00,0x2A,0x01,0xD0,0x00,0x1D,0x03,0xE0,0x09,0x7D,0x00,0x29,0x02,0xD0,0x80,0x1D, + 0x00,0x06,0x00,0x0E,0x00,0x2C,0x0A,0xD0,0x84,0x42,0x08,0xD3,0x14,0x21,0x20,0x00, + 0xFC,0xF7,0xD0,0xFD,0x76,0x1C,0xB0,0x42,0x05,0xD2,0x14,0x2C,0x07,0xD3,0x00,0x20, + 0x70,0xBC,0x08,0xBC,0x18,0x47,0x14,0x2C,0x01,0xD3,0xF0,0x20,0x00,0xE0,0x13,0x20, + 0x28,0x70,0x01,0x20,0xF4,0xE7,0x00,0x00,0x20,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20, + 0x60,0x79,0x00,0x00,0xD0,0x0A,0x00,0x20,0x70,0x08,0x00,0x20,0x10,0xB5,0x08,0x24, + 0x20,0x00,0xFE,0xF7,0x5B,0xFA,0x64,0x1E,0xFA,0xD5,0x05,0x48,0x01,0x22,0x41,0x7C, + 0x01,0x29,0x01,0xD8,0x00,0x29,0x00,0xD1,0x42,0x74,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0xA0,0x78,0x00,0x00,0x19,0x22,0x10,0xB5,0x06,0x48,0x52,0x01,0x00,0x21,0x01,0xF0, + 0x3B,0xFA,0x51,0x22,0x04,0x48,0xD2,0x00,0x00,0x21,0x01,0xF0,0x35,0xFA,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0xC8,0x02,0x00,0x20,0x40,0x00,0x00,0x20,0x10,0xB5,0x40,0x22, + 0xD4,0x05,0x00,0x21,0x20,0x00,0x01,0xF0,0x27,0xFA,0x01,0x20,0xA0,0x63,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x14,0x48,0x10,0xB5,0x44,0x08,0x14,0x49,0x14,0x48,0x62,0x00, + 0x01,0xF0,0x06,0xFA,0x10,0x48,0xC0,0x07,0x08,0xD0,0x0F,0x48,0xC2,0x07,0x0F,0x48, + 0xD2,0x0F,0x01,0x19,0x0E,0x48,0x00,0x19,0x01,0xF0,0xF2,0xF9,0x0D,0x48,0x00,0x21, + 0x84,0x08,0x0D,0x48,0xA2,0x00,0x01,0xF0,0x0F,0xFA,0x0A,0x48,0x80,0x07,0x07,0xD0, + 0x08,0x48,0x00,0x21,0x82,0x07,0x08,0x48,0x92,0x0F,0x00,0x19,0x01,0xF0,0xFC,0xF9, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0x71,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x46,0x06,0x00,0x00,0xF0,0x05,0x00,0x20,0x33,0x21,0x09,0x05, + 0x01,0x20,0x80,0x07,0x41,0x62,0x04,0x49,0x81,0x62,0x04,0x48,0xFF,0x21,0xC1,0x60, + 0x00,0x21,0x41,0x61,0x70,0x47,0x00,0x00,0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x40, + 0x02,0x49,0x03,0x48,0x01,0x60,0x20,0x21,0x41,0x60,0x70,0x47,0xDE,0x10,0x01,0x00, + 0x00,0x40,0x00,0x30,0x10,0xB5,0x00,0x24,0x20,0x00,0xFE,0xF7,0x4B,0xFA,0x64,0x1C, + 0x08,0x2C,0xF9,0xDB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x10,0xB5,0x01,0x24, + 0x64,0x03,0x20,0x00,0xFD,0xF7,0x5C,0xF8,0xFE,0xF7,0xE2,0xFC,0xFE,0xF7,0x0C,0xFD, + 0xFE,0xF7,0xD6,0xFC,0x07,0x48,0x01,0x68,0xF0,0x22,0x91,0x43,0x06,0x4A,0x12,0x7B, + 0x12,0x07,0x12,0x0E,0x11,0x43,0x01,0x60,0x20,0x00,0xFD,0xF7,0x41,0xF8,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0xA0,0x00,0x40,0x00,0x78,0x00,0x00,0x10,0xB5,0x01,0xF0, + 0xE7,0xFF,0x01,0xF0,0xC7,0xFF,0xFF,0x20,0xFD,0xF7,0x72,0xF8,0xFF,0xF7,0xAE,0xFF, + 0x11,0x48,0x80,0x22,0x00,0x21,0x01,0xF0,0x9F,0xF9,0x08,0x20,0xFD,0xF7,0x30,0xF8, + 0x00,0x22,0x0E,0x49,0xD2,0x43,0x00,0x20,0xFF,0xF7,0x02,0xFE,0x00,0xF0,0x1A,0xF8, + 0x0B,0x48,0x40,0x7A,0x00,0x28,0x04,0xD0,0x40,0x20,0xFD,0xF7,0x21,0xF8,0x00,0xF0, + 0x4D,0xF8,0x00,0xF0,0x37,0xF8,0x10,0x20,0x01,0xF0,0xB5,0xFF,0xFE,0xF7,0x10,0xFE, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x2C,0x0B,0x00,0x20,0x02,0x03,0x0F,0x0F, + 0x00,0x78,0x00,0x00,0xF8,0xB5,0x03,0x24,0xE6,0x01,0x13,0x25,0x30,0x00,0xFD,0xF7, + 0x07,0xF8,0x20,0x02,0xFD,0xF7,0x2E,0xF8,0x0C,0x48,0x0A,0x21,0x00,0x6B,0xFC,0xF7, + 0xC1,0xFC,0x02,0x00,0xFF,0x21,0x90,0x31,0x02,0x20,0x00,0x23,0x00,0x95,0x03,0xF0, + 0x1B,0xF8,0x07,0x4A,0x27,0x21,0x03,0x20,0x00,0x23,0x00,0x94,0x03,0xF0,0x14,0xF8, + 0x30,0x00,0xFC,0xF7,0xE5,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00, + 0xE8,0xFD,0x00,0x00,0x10,0xB5,0x08,0x49,0x00,0x20,0xFF,0xF7,0xCB,0xFD,0x03,0xF0, + 0xF8,0xF8,0x7D,0x20,0xC0,0x00,0x03,0xF0,0xE7,0xF8,0x00,0x20,0xFF,0xF7,0xA8,0xFD, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x7D,0x70,0x00,0x00,0x0A,0x48,0x10,0xB5, + 0x00,0x6B,0x0A,0x49,0x0A,0x4C,0x88,0x42,0x05,0xD9,0x7D,0x21,0xC9,0x00,0xFC,0xF7, + 0x89,0xFC,0x64,0x30,0x01,0xE0,0xFF,0x20,0xF5,0x30,0x20,0x63,0x03,0xF0,0xA2,0xF8, + 0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x78,0x00,0x00,0x07,0xA5,0x07,0x00, + 0xF8,0x0A,0x00,0x20,0x10,0xB5,0xFF,0xF7,0xD5,0xFE,0xFF,0xF7,0x43,0xFF,0x15,0x48, + 0x00,0x7A,0x02,0xF0,0x07,0xFF,0x13,0x48,0x13,0x4A,0xA0,0x30,0x41,0x89,0x00,0x24, + 0xD1,0x83,0x12,0x49,0x0C,0x60,0x4C,0x60,0x11,0x49,0xD2,0x88,0x49,0x79,0x52,0x06, + 0x02,0xD4,0x01,0x00,0xA0,0x31,0x49,0x78,0x0C,0x4A,0xC0,0x3A,0x51,0x73,0x09,0x49, + 0x80,0x31,0x0A,0x8B,0x09,0x49,0x40,0x39,0xCA,0x62,0x00,0x88,0x08,0x63,0xFF,0xF7, + 0x9D,0xFE,0x08,0x48,0xC4,0x83,0xFE,0xF7,0x19,0xFB,0x07,0x48,0x04,0x70,0x10,0xBC, + 0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20,0xF0,0x0A,0x00,0x20, + 0x00,0x7A,0x00,0x00,0x30,0x07,0x00,0x20,0xF9,0x0A,0x00,0x20,0xF7,0xB5,0x86,0xB0, + 0x00,0x27,0x2E,0x48,0x04,0xAB,0x02,0x97,0x03,0x97,0x81,0xC3,0x2C,0x4E,0xFE,0xF7, + 0xE9,0xFB,0xFE,0xF7,0x97,0xFC,0x2B,0x48,0x40,0x7F,0x01,0x90,0x29,0x48,0x20,0x38, + 0x40,0x7F,0x00,0x25,0x00,0x90,0x2A,0xE0,0x00,0x24,0x23,0xE0,0x21,0x00,0x28,0x00, + 0xFF,0xF7,0x38,0xFB,0x00,0x28,0x1C,0xD0,0x23,0x49,0x04,0x9A,0x09,0x78,0x69,0x43, + 0x09,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A,0x01,0x1E,0x00,0xDC, + 0x41,0x42,0x00,0x28,0x01,0xDB,0x01,0x98,0x00,0xE0,0x00,0x98,0x81,0x42,0x01,0xDD, + 0x01,0x22,0x05,0x92,0x08,0x1A,0xB0,0x42,0x03,0xDD,0x06,0x00,0x27,0x00,0x02,0x95, + 0x03,0x91,0x64,0x1C,0x14,0x48,0x00,0x78,0x84,0x42,0xD7,0xD3,0x6D,0x1C,0x13,0x48, + 0x00,0x78,0x85,0x42,0xD0,0xD3,0x08,0x99,0x03,0x98,0x08,0x60,0x10,0x48,0x00,0x69, + 0xC0,0x07,0x05,0xD0,0x07,0x98,0x07,0x60,0x06,0x99,0x02,0x98,0x08,0x60,0x04,0xE0, + 0x07,0x99,0x02,0x98,0x08,0x60,0x06,0x98,0x07,0x60,0x05,0x98,0x00,0x28,0x00,0xD0, + 0x04,0x20,0x09,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x00,0x02,0x10,0x40, + 0x78,0xEC,0xFF,0xFF,0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x00,0x90,0x00,0x40,0x78,0x47,0xC0,0x46,0x68,0x20,0x9F,0xE5,0x04,0xE0,0x2D,0xE5, + 0x5A,0x04,0xD2,0xE5,0x58,0xC0,0x9F,0xE5,0x01,0x00,0x10,0xE3,0x12,0x00,0x00,0x0A, + 0x54,0x10,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0x00,0x30,0xD1,0xE5,0x0B,0x00,0x00,0xEA, + 0x5A,0xE4,0xD2,0xE5,0x00,0x10,0x82,0xE0,0x89,0x14,0xD1,0xE5,0x02,0x00,0x1E,0xE3, + 0x88,0xE4,0xD2,0xE5,0x9E,0x13,0x21,0x00,0x93,0xE1,0x21,0x10,0x01,0x11,0x9C,0xE7, + 0x80,0xE0,0x82,0xE0,0x02,0x19,0xC1,0xE3,0x01,0x00,0x80,0xE2,0xB0,0x11,0xCE,0xE1, + 0x5B,0x14,0xD2,0xE5,0x00,0x00,0x51,0xE1,0xF0,0xFF,0xFF,0x8A,0x04,0xE0,0x9D,0xE4, + 0x1E,0xFF,0x2F,0xE1,0x00,0x10,0x10,0x40,0xF0,0x05,0x00,0x20,0xFB,0x0A,0x00,0x20, + 0xFF,0xB5,0x4E,0x4C,0x85,0xB0,0x24,0x78,0x0F,0x99,0x0E,0x9A,0x02,0x94,0x4C,0x4C, + 0xD7,0x00,0x26,0x79,0x00,0x20,0x05,0x00,0xB6,0x00,0x34,0x19,0xE0,0x34,0x10,0x26, + 0xA6,0x5F,0xB6,0x46,0x12,0x26,0xA6,0x5F,0xB4,0x46,0x76,0x46,0xB6,0x1C,0x34,0x04, + 0x24,0x14,0x66,0x46,0xB6,0x1C,0x01,0x94,0x34,0x04,0x24,0x14,0x00,0x94,0x3F,0x4C, + 0x07,0x9E,0x24,0x78,0x03,0x97,0x24,0x1D,0x04,0x94,0x06,0x9C,0x3C,0x19,0x01,0x2E, + 0x12,0xD0,0x02,0x2E,0x1B,0xD0,0x03,0x2E,0x54,0xD0,0x04,0x2E,0x26,0xD1,0x04,0x9D, + 0x00,0x98,0x02,0x9E,0x68,0x43,0x01,0x9D,0xED,0x18,0x40,0x19,0x05,0x06,0x2D,0x0E, + 0x60,0x46,0x70,0x43,0xE6,0x88,0x16,0xE0,0x00,0x98,0x04,0x9D,0xC0,0x1A,0x68,0x43, + 0x01,0x9D,0x06,0x9E,0x40,0x19,0x05,0x06,0xF0,0x5B,0x2D,0x0E,0x08,0xE0,0x00,0x98, + 0x04,0x9D,0xC0,0x18,0x68,0x43,0x01,0x9D,0x40,0x19,0x05,0x06,0x60,0x88,0x2D,0x0E, + 0x02,0x9E,0x70,0x43,0x76,0x46,0x80,0x19,0x00,0x06,0x00,0x0E,0x25,0x4E,0x6D,0x00, + 0x75,0x5F,0x25,0x4E,0x16,0x27,0xF7,0x5F,0xBD,0x42,0x3D,0xDD,0x07,0x9D,0x01,0x2D, + 0x2D,0xD0,0x02,0x2D,0x31,0xD0,0x03,0x2D,0x32,0xD0,0x04,0x2D,0x06,0xD1,0x73,0x44, + 0xE3,0x80,0x0B,0x00,0x00,0xD1,0x13,0x00,0x05,0x9C,0x23,0x54,0x18,0x4C,0x53,0x00, + 0x1B,0x19,0xFF,0x33,0x41,0x33,0x00,0x29,0x04,0xD0,0x05,0x99,0x52,0x1E,0x08,0x5C, + 0x90,0x42,0x02,0xD0,0xD8,0x88,0x40,0x1C,0xD8,0x80,0x01,0x20,0x09,0xB0,0xF0,0xBC, + 0x08,0xBC,0x18,0x47,0x04,0x9D,0x00,0x98,0x02,0x9E,0x68,0x43,0x01,0x9D,0x40,0x19, + 0xC0,0x1A,0x05,0x06,0x2D,0x0E,0x60,0x46,0x70,0x43,0xA6,0x88,0xC3,0xE7,0x64,0x46, + 0xE3,0x1A,0x06,0x9D,0x03,0x9C,0x2B,0x53,0xD3,0xE7,0x63,0x44,0x63,0x80,0xD0,0xE7, + 0x75,0x46,0xEB,0x1A,0xA3,0x80,0xCC,0xE7,0x00,0x20,0xDF,0xE7,0xFB,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xC8,0x02,0x00,0x20,0x30,0x07,0x00,0x20,0x88,0x42,0x00,0xDA, + 0x08,0x00,0x70,0x47,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA,0x10,0x00, + 0x70,0x47,0x10,0xB5,0x02,0x9C,0x88,0x42,0x00,0xDA,0x08,0x00,0x90,0x42,0x00,0xDA, + 0x10,0x00,0x22,0x00,0x19,0x00,0xFF,0xF7,0xED,0xFF,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x02,0x00,0x08,0x00,0x8A,0x42,0x00,0xDC, + 0x10,0x00,0x70,0x47,0xF0,0xB5,0xE6,0x48,0xE6,0x4F,0x86,0x89,0xF8,0x88,0xFD,0xB0, + 0x41,0x06,0x02,0xD4,0xE2,0x49,0xC0,0x39,0x0E,0x89,0xE3,0x49,0x09,0x78,0x74,0x91, + 0xE2,0x49,0x0A,0x78,0x74,0x99,0x91,0x42,0x73,0x92,0x00,0xD8,0x11,0x00,0x72,0x91, + 0x00,0x21,0x6D,0x91,0x6C,0x91,0xDA,0x49,0xDD,0x4D,0x20,0x39,0x7C,0x91,0x8C,0x8B, + 0x40,0x06,0x00,0xD4,0x2C,0x8B,0xDB,0x48,0x08,0x22,0x00,0x21,0x00,0xF0,0x44,0xFF, + 0xD8,0x48,0x10,0x22,0x00,0x21,0x08,0x30,0x00,0xF0,0x3E,0xFF,0xFF,0x22,0x01,0x32, + 0x00,0x21,0x2C,0xA8,0x00,0xF0,0x38,0xFF,0x48,0x22,0x00,0x21,0x1A,0xA8,0x00,0xF0, + 0x33,0xFF,0x20,0x22,0x00,0x21,0x12,0xA8,0x00,0xF0,0x2E,0xFF,0x20,0x22,0x00,0x21, + 0x0A,0xA8,0x00,0xF0,0x29,0xFF,0x20,0x22,0x00,0x21,0x02,0xA8,0x00,0xF0,0x24,0xFF, + 0xC4,0x48,0x64,0x21,0x00,0x89,0x07,0x00,0x70,0x43,0xFC,0xF7,0xA1,0xF9,0xC5,0x49, + 0xC0,0x4A,0x89,0x1C,0x7B,0x91,0xBF,0x49,0xC9,0x89,0x40,0x18,0x7B,0x99,0xC8,0x82, + 0xC1,0x48,0x00,0x21,0x01,0x81,0x7C,0x99,0xD2,0x88,0x89,0x7F,0x06,0x00,0x38,0x00, + 0x52,0x06,0x00,0xD4,0xA9,0x7E,0x48,0x43,0x64,0x21,0xFC,0xF7,0x63,0xFA,0x00,0x04, + 0x00,0x14,0xA0,0x42,0x70,0x81,0x00,0xDA,0x74,0x81,0xB2,0x48,0x01,0x79,0x00,0x29, + 0x7D,0xD0,0x00,0x27,0xDC,0xE0,0xAF,0x48,0xB9,0x00,0x08,0x18,0xE0,0x30,0x10,0x25, + 0x12,0x21,0x45,0x5F,0x41,0x5E,0x01,0x20,0x7E,0x1C,0x75,0x91,0x6F,0x90,0x6E,0x90, + 0x71,0x90,0x70,0x90,0xF0,0x00,0x1A,0xAA,0x7A,0x90,0x11,0x52,0x80,0x18,0x75,0x99, + 0x79,0x90,0x41,0x80,0x85,0x80,0x00,0x2F,0xC5,0x80,0x20,0xDD,0x38,0x00,0x1A,0xAC, + 0x1A,0xE0,0xC2,0x00,0x11,0x19,0x04,0x23,0xCB,0x5E,0xAB,0x42,0x13,0xDC,0x06,0x23, + 0xCB,0x5E,0xAB,0x42,0x0F,0xDB,0xA2,0x5E,0x75,0x9B,0x9A,0x42,0x0B,0xDC,0x02,0x22, + 0x8A,0x5E,0x9A,0x42,0x07,0xDB,0x01,0x06,0x09,0x0E,0x6D,0x91,0x6C,0x99,0x49,0x1C, + 0x09,0x06,0x09,0x0E,0x6C,0x91,0x40,0x1E,0x00,0x28,0xE2,0xDC,0x01,0xE0,0x00,0x20, + 0x6D,0x90,0x00,0x24,0x5C,0xE0,0x6F,0x98,0x01,0x28,0x0D,0xD1,0xA5,0x42,0x0B,0xDB, + 0x31,0x06,0x6D,0x9A,0x09,0x0E,0x68,0x46,0x06,0xC0,0x23,0x00,0x01,0x22,0x1A,0xA9, + 0x2C,0xA8,0xFF,0xF7,0x75,0xFE,0x00,0xE0,0x00,0x20,0x00,0x2C,0x6F,0x90,0x3E,0xDD, + 0x6E,0x98,0x01,0x28,0x10,0xD1,0x75,0x98,0x73,0x99,0x00,0x19,0x88,0x42,0x0B,0xDA, + 0x31,0x06,0x6D,0x9A,0x09,0x0E,0x68,0x46,0x06,0xC0,0x23,0x00,0x02,0x22,0x1A,0xA9, + 0x2C,0xA8,0xFF,0xF7,0x5D,0xFE,0x00,0xE0,0x00,0x20,0x6E,0x90,0x71,0x98,0x01,0x28, + 0x0E,0xD1,0xA5,0x42,0x0C,0xDB,0x31,0x06,0x6D,0x9A,0x09,0x0E,0x68,0x46,0x06,0xC0, + 0x23,0x00,0x03,0x22,0x1A,0xA9,0x2C,0xA8,0xFF,0xF7,0x4A,0xFE,0x01,0xE0,0xDB,0xE0, + 0x00,0x20,0x71,0x90,0x70,0x98,0x01,0x28,0x0F,0xD1,0x74,0x99,0x28,0x19,0x88,0x42, + 0x0B,0xDA,0x31,0x06,0x6D,0x9A,0x09,0x0E,0x68,0x46,0x06,0xC0,0x23,0x00,0x04,0x22, + 0x1A,0xA9,0x2C,0xA8,0xFF,0xF7,0x34,0xFE,0x00,0xE0,0x00,0x20,0x70,0x90,0x6E,0x99, + 0x6F,0x98,0x08,0x43,0x71,0x99,0x08,0x43,0x70,0x99,0x08,0x43,0x03,0xD0,0x64,0x1C, + 0x72,0x98,0x84,0x42,0x9F,0xDB,0x6D,0x98,0x00,0x28,0x38,0xD0,0x5D,0x49,0x40,0x00, + 0x40,0x18,0x72,0x00,0x52,0x18,0xFF,0x30,0xFF,0x32,0x41,0x30,0x41,0x32,0xC3,0x88, + 0xD1,0x88,0x59,0x18,0xC1,0x80,0x7A,0x98,0x1A,0xAB,0x19,0x5E,0x6D,0x98,0xC0,0x00, + 0x1C,0x5E,0xA1,0x42,0x00,0xDA,0x19,0x52,0x79,0x9C,0x02,0x21,0x61,0x5E,0xC0,0x18, + 0x02,0x24,0x04,0x5F,0xA1,0x42,0x00,0xDD,0x41,0x80,0x79,0x9C,0x04,0x21,0x61,0x5E, + 0x04,0x24,0x04,0x5F,0xA1,0x42,0x00,0xDA,0x81,0x80,0x79,0x9C,0x06,0x21,0x61,0x5E, + 0x06,0x24,0x04,0x5F,0xA1,0x42,0x00,0xDD,0xC1,0x80,0x00,0x20,0xD0,0x80,0x7A,0x99, + 0x58,0x52,0x79,0x99,0x48,0x80,0x79,0x99,0x88,0x80,0x79,0x99,0xC8,0x80,0x7F,0x1C, + 0x40,0x48,0x01,0x79,0xB9,0x42,0x00,0xDD,0x1D,0xE7,0x02,0x79,0x6C,0x99,0x51,0x1A, + 0x01,0x24,0x01,0x71,0x6C,0xE0,0xE0,0x00,0x1A,0xA9,0x0B,0x5E,0x41,0x18,0x02,0x20, + 0x77,0x91,0x08,0x5E,0x9B,0x1C,0x80,0x1C,0x76,0x90,0x41,0xE0,0x77,0x98,0x04,0x21, + 0x41,0x5E,0x02,0x00,0x06,0x20,0x10,0x5E,0x89,0x1C,0x80,0x1C,0x78,0x90,0x33,0xE0, + 0x74,0x9A,0x98,0x1E,0x84,0x46,0x50,0x43,0x8D,0x1E,0x2C,0xAA,0x52,0x19,0x80,0x5C, + 0x00,0x28,0x27,0xD0,0x74,0x98,0x31,0x4E,0x00,0x1D,0x58,0x43,0x40,0x18,0x40,0x00, + 0x30,0x5E,0x7B,0x9F,0x16,0x26,0xBE,0x5F,0x00,0x22,0xB0,0x42,0x00,0xDD,0x82,0x1B, + 0x24,0x4F,0x6D,0x00,0xED,0x19,0x2D,0x8C,0xA0,0x00,0x12,0xAE,0x55,0x43,0x36,0x58, + 0x75,0x19,0x12,0xAE,0x35,0x50,0x66,0x46,0x76,0x00,0xF6,0x19,0x40,0x36,0xB6,0x88, + 0x0A,0xAD,0x2D,0x58,0x56,0x43,0xAD,0x19,0x0A,0xAE,0x35,0x50,0x02,0xAD,0x2E,0x58, + 0xB2,0x18,0x2A,0x50,0x78,0x98,0x49,0x1C,0x88,0x42,0xC9,0xDA,0x76,0x98,0x5B,0x1C, + 0x98,0x42,0xBB,0xDA,0xA5,0x00,0x02,0xA8,0x46,0x59,0x00,0x2E,0x12,0xD0,0x12,0xA8, + 0x40,0x59,0x31,0x00,0xFC,0xF7,0x16,0xF9,0x0E,0x49,0x62,0x00,0x57,0x18,0xFF,0x21, + 0x1F,0x31,0xC8,0x53,0x0A,0xA8,0x40,0x59,0x31,0x00,0xFC,0xF7,0x0B,0xF9,0xFF,0x37, + 0x21,0x37,0xF8,0x81,0x07,0x48,0x00,0x19,0xFF,0x30,0x21,0x30,0x44,0x77,0x64,0x1C, + 0x04,0x48,0x00,0x79,0xA0,0x42,0x8E,0xDA,0x7D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x7A,0x00,0x00,0xF0,0x05,0x00,0x20,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20, + 0x20,0x79,0x00,0x00,0x2E,0x07,0x00,0x20,0x30,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20, + 0xF0,0xB5,0x00,0x20,0xE7,0xB0,0x42,0x90,0x32,0x90,0x0D,0x90,0xFF,0x48,0x66,0x90, + 0x02,0x8A,0xFF,0x49,0xC8,0x88,0x43,0x06,0x02,0xD4,0xFC,0x4A,0xC0,0x3A,0x92,0x89, + 0xFA,0x4D,0xFC,0x4C,0x20,0x35,0x0C,0x92,0xAA,0x89,0x43,0x06,0x00,0xD4,0x22,0x89, + 0xF9,0x4B,0x0B,0x92,0xF5,0x4A,0x40,0x32,0x65,0x92,0x52,0x89,0x46,0x06,0x64,0x93, + 0x00,0xD4,0xDA,0x88,0x43,0x06,0x0A,0x92,0x65,0x9A,0x12,0x79,0x01,0xD4,0x64,0x9A, + 0x12,0x78,0x43,0x06,0x09,0x92,0x65,0x9A,0x52,0x79,0x01,0xD4,0x64,0x9A,0x52,0x78, + 0x43,0x06,0x08,0x92,0x65,0x9A,0x12,0x8B,0x01,0xD4,0x64,0x9A,0x92,0x8A,0x40,0x06, + 0x07,0x92,0x2F,0x89,0x00,0xD4,0xA7,0x88,0xE8,0x48,0x29,0x22,0x06,0x78,0xE8,0x48, + 0x00,0x78,0x06,0x90,0xE2,0x48,0xC0,0x89,0x05,0x90,0x01,0x20,0x04,0x90,0x00,0x20, + 0x01,0x00,0x02,0x90,0x0E,0xA8,0x00,0xF0,0x3F,0xFD,0xE2,0x48,0xDC,0x49,0x08,0x81, + 0xDB,0x48,0x00,0x21,0x81,0x81,0x41,0x81,0xC0,0x30,0x63,0x90,0x41,0x80,0xA0,0x30, + 0x62,0x90,0x40,0x78,0xDC,0x49,0x02,0x28,0x61,0x91,0x53,0xD9,0xD4,0x4A,0x69,0x8A, + 0xD2,0x88,0x52,0x06,0x00,0xD4,0xE1,0x89,0x36,0x91,0xD8,0x49,0x36,0x9A,0x60,0x91, + 0x89,0x8B,0x89,0x18,0x37,0x91,0x0C,0x99,0xC9,0x04,0x25,0xD5,0x01,0x28,0x0C,0xD9, + 0xCB,0x4A,0xE9,0x7A,0xD2,0x88,0x52,0x06,0x00,0xD4,0xE1,0x79,0x48,0x43,0x00,0x06, + 0x00,0x0E,0x04,0x90,0x01,0xD1,0x01,0x20,0x04,0x90,0x63,0x99,0xC4,0x4A,0x00,0x20, + 0x08,0x5E,0xD2,0x88,0xA9,0x7A,0x52,0x06,0x00,0xD4,0xA1,0x79,0x48,0x43,0x64,0x21, + 0xFB,0xF7,0x86,0xFF,0x00,0x04,0x00,0x0C,0xB8,0x42,0x00,0xD2,0x38,0x00,0x04,0x99, + 0xFC,0xF7,0x58,0xF8,0x63,0x99,0x48,0x80,0xB9,0x49,0x65,0x98,0xC9,0x88,0x40,0x8B, + 0x49,0x06,0x01,0xD4,0x64,0x98,0xC0,0x8A,0x61,0x99,0x89,0x8B,0x40,0x18,0x37,0x99, + 0x35,0x90,0x88,0x42,0x34,0x91,0x00,0xD2,0x37,0x90,0x02,0x20,0x4D,0x90,0xAF,0x48, + 0xC0,0x30,0x5F,0x90,0xB4,0x48,0xA0,0x38,0x5E,0x90,0x06,0x98,0x80,0x1C,0x53,0x90, + 0x4D,0x98,0x95,0xE3,0x02,0x28,0x08,0xD1,0xA9,0x4A,0x29,0x8A,0xD2,0x88,0x52,0x06, + 0x00,0xD4,0xA1,0x89,0x61,0x9A,0x52,0x8B,0x0E,0xE0,0xAD,0x49,0x09,0x78,0x00,0x29, + 0x02,0xD0,0xAC,0x49,0x89,0x89,0x05,0xE0,0xA1,0x4A,0xE9,0x89,0xD2,0x88,0x52,0x06, + 0x00,0xD4,0x61,0x89,0x61,0x9A,0x12,0x8B,0x89,0x18,0x95,0xE7,0x02,0x24,0xB0,0x1C, + 0x54,0x90,0x6A,0xE3,0x4D,0x98,0x54,0x99,0x40,0x1E,0x48,0x43,0x61,0x1E,0x40,0x18, + 0x00,0x04,0x07,0x14,0xA0,0x49,0x78,0x00,0x5D,0x90,0x08,0x5E,0x37,0x99,0x09,0x04, + 0x09,0x14,0x88,0x42,0x7B,0xDB,0x78,0x1C,0xC1,0x10,0x0E,0xAA,0x52,0x5C,0x41,0x07, + 0x49,0x0F,0x01,0x20,0x88,0x40,0x02,0x40,0xF8,0x10,0x0E,0xA9,0x5C,0x90,0x09,0x5C, + 0x7B,0x07,0x5B,0x0F,0x01,0x20,0x98,0x40,0x01,0x40,0x5B,0x90,0x78,0x1E,0xC3,0x10, + 0x0E,0xAD,0xEB,0x5C,0x45,0x07,0x6D,0x0F,0x01,0x20,0xA8,0x40,0x18,0x40,0x01,0xF0, + 0x4F,0xFC,0x01,0x90,0xB8,0x1B,0x41,0x1E,0xCA,0x10,0x0E,0xAB,0x9A,0x5C,0x4B,0x07, + 0x5B,0x0F,0x01,0x21,0x99,0x40,0x0A,0x40,0x83,0x1E,0xD9,0x10,0x0E,0xAD,0x69,0x5C, + 0x5D,0x07,0x6D,0x0F,0x01,0x23,0xAB,0x40,0x19,0x40,0xC0,0x1E,0xC3,0x10,0x0E,0xAD, + 0xEB,0x5C,0x45,0x07,0x6D,0x0F,0x01,0x20,0xA8,0x40,0x18,0x40,0x01,0xF0,0x30,0xFC, + 0x01,0x99,0x01,0xF0,0x2B,0xFC,0x00,0x28,0x39,0xD1,0x7B,0x48,0x32,0x00,0x39,0x00, + 0x02,0x23,0xFE,0xF7,0x29,0xFF,0x37,0x99,0x88,0x42,0xB3,0xDB,0x76,0x49,0x5D,0x9A, + 0x89,0x5E,0x81,0x42,0xF0,0xD1,0x6A,0x4F,0xBA,0x89,0x82,0x42,0x00,0xDA,0xB8,0x81, + 0x5C,0x9A,0x0E,0xAB,0x9A,0x5C,0x5B,0x9D,0x2A,0x43,0x5C,0x9D,0x5A,0x55,0x64,0x4A, + 0x92,0x89,0x82,0x42,0x05,0xD1,0x62,0x48,0x00,0x79,0x40,0x1C,0x00,0x06,0x00,0x0E, + 0x0D,0x90,0x00,0x20,0x05,0x00,0x03,0x90,0x5E,0x98,0x80,0x7E,0xC2,0x07,0x20,0xD0, + 0x80,0x07,0x0D,0xD5,0x30,0x1B,0x40,0x1C,0x00,0xD1,0x75,0x1E,0xA6,0x42,0x04,0xD1, + 0x01,0x22,0x30,0x04,0x52,0x04,0x80,0x1A,0x05,0x43,0x01,0x20,0x10,0xE0,0xA4,0xE0, + 0x4D,0x9A,0x06,0x98,0x80,0x1A,0x40,0x1C,0x01,0xD1,0x06,0x9D,0x6D,0x1E,0x06,0x98, + 0x90,0x42,0x04,0xD1,0x01,0x22,0x00,0x04,0x12,0x05,0x80,0x1A,0x05,0x43,0x02,0x20, + 0x03,0x90,0x28,0x04,0x01,0xD0,0x35,0x98,0x00,0xE0,0x34,0x98,0x00,0x04,0x00,0x14, + 0x81,0x42,0xB2,0xDB,0x4D,0x99,0x30,0x1D,0x41,0x43,0x5A,0x90,0x08,0x19,0x00,0x04, + 0x00,0x14,0x33,0x90,0x0C,0x98,0xC0,0x04,0x0C,0xD5,0x33,0x98,0x4B,0x49,0x40,0x00, + 0x08,0x5E,0x05,0x99,0x40,0x1A,0x00,0x28,0x77,0xDD,0x63,0x9A,0x02,0x21,0x51,0x5E, + 0x81,0x42,0x72,0xDA,0x04,0x20,0x4E,0x90,0x20,0x18,0x59,0x90,0x4E,0x98,0x04,0x27, + 0x80,0x00,0x58,0x90,0x59,0x98,0x00,0x1F,0x0D,0xD4,0x59,0x98,0x00,0x1F,0xB0,0x42, + 0x09,0xDA,0x4D,0x98,0xC0,0x19,0x57,0x90,0x00,0x1F,0x04,0xD4,0x57,0x98,0x06,0x99, + 0x00,0x1F,0x88,0x42,0x07,0xDB,0x14,0x20,0x78,0x43,0x00,0x21,0x19,0xAA,0x80,0x18, + 0x58,0x9A,0x81,0x50,0x27,0xE0,0x05,0x98,0x0C,0x99,0x00,0x04,0x00,0x14,0xC9,0x04, + 0x04,0xD5,0x04,0x99,0xFB,0xF7,0x54,0xFE,0x00,0x04,0x00,0x14,0x57,0x99,0x5A,0x9A, + 0x89,0x1E,0x51,0x43,0x59,0x9A,0x89,0x18,0x2C,0x4A,0x49,0x00,0x89,0x18,0x20,0x39, + 0x89,0x8B,0x08,0x1A,0x00,0x04,0x00,0x14,0x00,0xD5,0x00,0x20,0x07,0x99,0x00,0x29, + 0x03,0xD0,0x88,0x42,0x01,0xDD,0x08,0x04,0x00,0x14,0x14,0x21,0x79,0x43,0x19,0xAA, + 0x89,0x18,0x58,0x9A,0x88,0x50,0x7F,0x1E,0x3F,0x04,0x3F,0x14,0xBA,0xD5,0x4E,0x98, + 0x40,0x1E,0x00,0x04,0x00,0x14,0x4E,0x90,0xAE,0xD5,0x33,0x98,0x1B,0x4A,0x40,0x00, + 0x84,0x46,0x80,0x18,0x01,0x00,0x20,0x39,0x1E,0x23,0xCB,0x5E,0x05,0x99,0x59,0x1A, + 0x41,0x91,0x02,0x21,0x41,0x5E,0x05,0x98,0x05,0x9B,0x08,0x1A,0x40,0x90,0x33,0x98, + 0x18,0x21,0x80,0x1B,0x40,0x00,0x80,0x18,0x20,0x38,0x41,0x5E,0xC9,0x1A,0x3F,0x91, + 0x33,0x99,0x89,0x19,0x49,0x00,0x89,0x18,0x1A,0xE0,0x3B,0xE1,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x00,0x79,0x00,0x00,0x20,0x79,0x00,0x00,0xFB,0x0A,0x00,0x20, + 0xFC,0x0A,0x00,0x20,0xFF,0x0F,0x00,0x00,0xD0,0x0A,0x00,0x20,0xF0,0x06,0x00,0x20, + 0x04,0x0B,0x00,0x20,0xA0,0x7A,0x00,0x00,0x40,0x00,0x00,0x20,0xC8,0x02,0x00,0x20, + 0x08,0x23,0xCB,0x5E,0x05,0x9F,0xDB,0x1B,0x3E,0x93,0x16,0x23,0xC3,0x5E,0xDB,0x1B, + 0x3D,0x93,0x06,0x23,0xCB,0x5E,0xDB,0x1B,0x3C,0x93,0x1A,0x23,0xC3,0x5E,0xD8,0x1B, + 0x3B,0x90,0x0A,0x20,0x08,0x5E,0x0B,0x99,0xC0,0x1B,0x3A,0x90,0x60,0x46,0x10,0x5E, + 0xC0,0x1B,0x48,0x43,0x64,0x21,0xFB,0xF7,0xD3,0xFD,0x38,0x90,0x26,0x98,0x02,0x04, + 0x24,0x98,0x12,0x14,0x03,0x04,0x21,0x98,0x00,0x92,0x02,0x04,0x20,0x98,0x1B,0x14, + 0x01,0x04,0x1F,0x98,0x12,0x14,0x00,0x04,0x09,0x14,0x00,0x14,0xFF,0xF7,0xB9,0xFB, + 0x07,0x00,0x2B,0x98,0x02,0x04,0x2A,0x98,0x12,0x14,0x01,0x04,0x29,0x98,0x09,0x14, + 0x00,0x04,0x00,0x14,0xFF,0xF7,0xA6,0xFB,0x01,0x00,0x38,0x00,0xFF,0xF7,0x9E,0xFB, + 0x25,0x99,0x7D,0x22,0x52,0x01,0x91,0x42,0x07,0xDD,0x81,0x42,0x05,0xDD,0x08,0x1A, + 0x51,0x10,0x88,0x42,0x01,0xDD,0x01,0x20,0x02,0x90,0xFB,0x48,0xFF,0x21,0xC0,0x88, + 0x09,0x31,0x08,0x42,0x01,0xD1,0xC0,0x06,0x01,0xD5,0x01,0x20,0x02,0x90,0xF7,0x48, + 0x00,0x78,0x00,0x28,0x47,0xD1,0x20,0xA9,0x06,0xC9,0x02,0x2C,0x14,0xD1,0x01,0xF0, + 0xCF,0xFA,0x07,0x00,0x00,0x21,0x26,0x9A,0x08,0x00,0x01,0xF0,0xC9,0xFA,0x2A,0xA9, + 0x06,0xC9,0x3F,0x18,0x00,0x20,0x01,0xF0,0xC3,0xFA,0x38,0x18,0x05,0x21,0xFB,0xF7, + 0x7F,0xFD,0x00,0x04,0x00,0x0C,0x13,0xE0,0x1F,0x98,0x01,0xF0,0xB9,0xFA,0x07,0x00, + 0x26,0x9A,0x24,0x98,0x00,0x21,0x01,0xF0,0xB3,0xFA,0x3F,0x18,0x29,0xA8,0x07,0xC8, + 0x01,0xF0,0xAE,0xFA,0x38,0x18,0xC1,0x17,0x49,0x0F,0x08,0x18,0x40,0x03,0x00,0x0C, + 0x25,0x99,0x09,0x1A,0x00,0x29,0x01,0xDC,0x25,0x99,0x41,0x1A,0x5F,0x98,0x02,0x8A, + 0xD9,0x48,0xC0,0x88,0x43,0x06,0x01,0xD4,0x66,0x9A,0x92,0x89,0x91,0x42,0x0A,0xDA, + 0x5F,0x99,0x25,0x9A,0x49,0x8A,0x40,0x06,0x01,0xD4,0x66,0x98,0xC1,0x89,0x8A,0x42, + 0x01,0xDA,0x28,0x04,0x7E,0xD0,0x00,0x2D,0x2B,0xD0,0x03,0x98,0xC0,0x07,0x16,0xD0, + 0x04,0x20,0x00,0x22,0x19,0xAB,0x29,0x04,0x06,0xD0,0x14,0x27,0x01,0x00,0x79,0x43, + 0x5A,0x50,0xC9,0x18,0x4A,0x60,0x05,0xE0,0x14,0x27,0x01,0x00,0x79,0x43,0xC9,0x18, + 0xCA,0x60,0x0A,0x61,0x40,0x1E,0x00,0x04,0x00,0x14,0xEC,0xD5,0x11,0xE0,0x04,0x20, + 0x00,0x22,0x19,0xAB,0x29,0x04,0x04,0xD0,0x81,0x00,0x5A,0x50,0xC9,0x18,0x4A,0x61, + 0x03,0xE0,0x81,0x00,0xC9,0x18,0xCA,0x63,0x0A,0x65,0x40,0x1E,0x00,0x04,0x00,0x14, + 0xF0,0xD5,0xBB,0x48,0x33,0x99,0x32,0x00,0x04,0x23,0xFE,0xF7,0x5D,0xFD,0xB6,0x49, + 0x0A,0x89,0x82,0x42,0x00,0xDD,0x08,0x81,0x4A,0x89,0x82,0x42,0x00,0xDA,0x48,0x81, + 0xB1,0x48,0x01,0x79,0x49,0x1C,0x0A,0x06,0x12,0x0E,0x02,0x71,0x92,0x00,0xA1,0x1E, + 0x12,0x18,0xE0,0x32,0x56,0x91,0x91,0x81,0x4D,0x99,0x89,0x1E,0x55,0x91,0x02,0x79, + 0x92,0x00,0x10,0x18,0xE0,0x30,0xC1,0x81,0x00,0x20,0x07,0x00,0x01,0x00,0x84,0x46, + 0x39,0x90,0x41,0x9A,0x38,0x98,0x82,0x42,0x06,0xDC,0x38,0x9A,0x3D,0x98,0x90,0x42, + 0x02,0xDC,0x3C,0x98,0x90,0x42,0x01,0xDD,0x01,0x20,0x39,0x90,0x38,0x9A,0x40,0x98, + 0x90,0x42,0x05,0xDC,0x3B,0x98,0x90,0x42,0x02,0xDC,0x3A,0x98,0x90,0x42,0x01,0xDD, + 0x01,0x20,0x84,0x46,0x3F,0x98,0x90,0x42,0x05,0xDC,0x3D,0x98,0x90,0x42,0x02,0xDC, + 0x3B,0x98,0x90,0x42,0x00,0xDD,0x01,0x27,0x3E,0x98,0x90,0x42,0x07,0xDC,0x3C,0x98, + 0x90,0x42,0x00,0xE0,0xF5,0xE0,0x02,0xDC,0x3A,0x98,0x90,0x42,0x00,0xDD,0x01,0x21, + 0x04,0x20,0x00,0x22,0x19,0xAD,0x39,0x9B,0x00,0x2B,0x02,0xD1,0x14,0x23,0x43,0x43, + 0xEA,0x50,0x63,0x46,0x00,0x2B,0x03,0xD1,0x14,0x23,0x43,0x43,0x5B,0x19,0x1A,0x61, + 0x00,0x2F,0x01,0xD1,0x83,0x00,0xEA,0x50,0x00,0x29,0x02,0xD1,0x83,0x00,0x5B,0x19, + 0x1A,0x65,0x40,0x1E,0x00,0x04,0x00,0x14,0xE5,0xD5,0x1D,0x9A,0x19,0xA8,0x00,0x92, + 0x0F,0xC8,0x01,0xF0,0xE8,0xF9,0x4A,0x90,0x22,0x9A,0x1E,0xA8,0x00,0x92,0x0F,0xC8, + 0x01,0xF0,0xE1,0xF9,0x27,0x9A,0x49,0x90,0x23,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0, + 0xDA,0xF9,0x2C,0x9A,0x48,0x90,0x28,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xD3,0xF9, + 0x31,0x9A,0x47,0x90,0x2D,0xA8,0x00,0x92,0x0F,0xC8,0x01,0xF0,0xCC,0xF9,0x46,0x90, + 0x00,0x90,0x47,0x9B,0x48,0x9A,0x49,0x99,0x4A,0x98,0x01,0xF0,0xC4,0xF9,0x00,0x28, + 0x4B,0x90,0x0F,0xD1,0x04,0x27,0x14,0x20,0x78,0x43,0x40,0x19,0x0A,0x22,0x00,0x21, + 0x00,0xF0,0xF2,0xF9,0x7F,0x1E,0x3F,0x04,0x3F,0x14,0xF4,0xD5,0x0A,0x20,0x48,0x90, + 0x25,0x90,0x4B,0x90,0x56,0x98,0x00,0x28,0x01,0xDC,0x00,0x20,0x0C,0xE0,0x2D,0x9A, + 0x00,0x92,0x28,0x9B,0x23,0x9A,0x1E,0x99,0x19,0x98,0x01,0xF0,0xA4,0xF9,0x5A,0x4A, + 0x61,0x00,0x89,0x18,0x49,0x8B,0x48,0x43,0x2E,0x9A,0x45,0x90,0x00,0x92,0x29,0x9B, + 0x24,0x9A,0x1F,0x99,0x1A,0x98,0x01,0xF0,0x96,0xF9,0x53,0x49,0x62,0x00,0x55,0x18, + 0xA9,0x8B,0x2F,0x9A,0x2A,0x9B,0x48,0x43,0x44,0x90,0x00,0x92,0x25,0x9A,0x20,0x99, + 0x1B,0x98,0x01,0xF0,0x88,0xF9,0xE9,0x8B,0x30,0x9A,0x2B,0x9B,0x48,0x43,0x43,0x90, + 0x00,0x92,0x26,0x9A,0x21,0x99,0x1C,0x98,0x01,0xF0,0x7D,0xF9,0x29,0x8C,0x48,0x43, + 0x56,0x99,0x07,0x00,0x70,0x1E,0x81,0x42,0x01,0xDB,0x00,0x20,0x09,0xE0,0x31,0x9A, + 0x2C,0x9B,0x00,0x92,0x27,0x9A,0x22,0x99,0x1D,0x98,0x01,0xF0,0x6C,0xF9,0x69,0x8C, + 0x48,0x43,0x00,0x90,0x43,0x9A,0x44,0x99,0x45,0x98,0x3B,0x00,0x01,0xF0,0x63,0xF9, + 0x4B,0x99,0xFB,0xF7,0x1D,0xFC,0x38,0x49,0x0A,0x8C,0x52,0x00,0x80,0x1A,0x00,0xD5, + 0x00,0x20,0x0A,0x79,0x52,0x00,0x52,0x18,0xC0,0x32,0x90,0x81,0x55,0x98,0x00,0x28, + 0x01,0xDC,0x00,0x20,0x05,0xE0,0x4D,0x98,0x4A,0x9A,0x40,0x00,0x40,0x18,0xC0,0x8F, + 0x50,0x43,0x4D,0x9A,0x2C,0x49,0x52,0x00,0x52,0x18,0x40,0x32,0x11,0x88,0x49,0x9B, + 0x48,0x9D,0x59,0x43,0x53,0x88,0x06,0x9F,0x6B,0x43,0x9C,0x46,0x93,0x88,0x47,0x9D, + 0x7F,0x1E,0x6B,0x43,0x55,0x9D,0xBD,0x42,0x01,0xDB,0x00,0x22,0x02,0xE0,0xD2,0x88, + 0x46,0x9D,0x6A,0x43,0x00,0x92,0x62,0x46,0x01,0xF0,0x2D,0xF9,0x4B,0x99,0xFB,0xF7, + 0xE7,0xFB,0x1D,0x49,0x40,0x31,0x89,0x88,0x49,0x00,0x40,0x1A,0x00,0xD5,0x00,0x20, + 0x19,0x49,0x0A,0x79,0x52,0x00,0x52,0x18,0xC0,0x32,0xD0,0x83,0x08,0x79,0x08,0x28, + 0x12,0xD2,0x64,0x1C,0x54,0x98,0x24,0x04,0x24,0x14,0x84,0x42,0x00,0xDA,0x91,0xE4, + 0x42,0x98,0x00,0x28,0x08,0xD1,0x4D,0x98,0x40,0x1C,0x00,0x04,0x00,0x14,0x4D,0x90, + 0x53,0x99,0x88,0x42,0x00,0xDA,0x81,0xE4,0x0C,0x98,0x00,0x06,0x60,0xD5,0x0A,0x4C, + 0x20,0x79,0x00,0x28,0x60,0x98,0x15,0xD1,0x80,0x8B,0x00,0x28,0x51,0xD0,0x60,0x98, + 0x65,0x99,0xE2,0x88,0x40,0x7E,0x09,0x7B,0x52,0x06,0x01,0xD4,0x64,0x99,0x09,0x7A, + 0x88,0x42,0x46,0xD2,0x40,0x1C,0x41,0xE0,0xF0,0x05,0x00,0x20,0x05,0x0B,0x00,0x20, + 0xC8,0x02,0x00,0x20,0x80,0x7E,0x09,0x99,0x88,0x42,0x36,0xD8,0x40,0x1C,0x60,0x99, + 0x00,0x06,0x00,0x0E,0x88,0x76,0x08,0x99,0x88,0x42,0x03,0xD9,0xA1,0x89,0x32,0x9A, + 0x89,0x18,0x32,0x91,0x09,0x99,0x88,0x42,0x27,0xD1,0x08,0x99,0x88,0x42,0x24,0xD0, + 0x41,0x1A,0x32,0x98,0xFB,0xF7,0x66,0xFC,0x60,0x9A,0x00,0x21,0x91,0x83,0x65,0x99, + 0x0A,0x89,0xE1,0x88,0x4B,0x06,0x01,0xD4,0x64,0x9A,0x92,0x88,0x82,0x42,0x14,0xD2, + 0x36,0x9A,0x80,0x1A,0x65,0x9A,0x49,0x06,0x92,0x79,0x01,0xD4,0x64,0x99,0x8A,0x78, + 0x64,0x21,0x50,0x43,0xFB,0xF7,0x4E,0xFC,0x60,0x99,0x00,0x04,0x00,0x0C,0x88,0x83, + 0x0A,0x99,0x88,0x42,0x01,0xD9,0x60,0x98,0x81,0x83,0x00,0x20,0x60,0x99,0x48,0x76, + 0x06,0xE0,0x60,0x99,0x00,0x20,0x88,0x76,0x60,0x99,0x48,0x76,0x60,0x99,0x88,0x83, + 0x00,0x20,0x84,0x46,0x4C,0x90,0x59,0x48,0x01,0x24,0x00,0x79,0x50,0x90,0x52,0xE0, + 0x56,0x48,0x61,0x00,0x0F,0x18,0xC0,0x37,0xB8,0x89,0x0A,0x21,0xFB,0xF7,0x2A,0xFC, + 0x05,0x04,0xF8,0x8B,0x2D,0x14,0x0A,0x21,0xFB,0xF7,0x24,0xFC,0x5E,0x99,0x02,0x04, + 0xC9,0x7E,0x12,0x14,0x00,0x20,0x84,0x46,0x51,0x91,0x36,0xE0,0x4B,0x49,0xC3,0x00, + 0x5B,0x18,0x11,0x21,0x89,0x01,0x59,0x18,0x1C,0x27,0x52,0x91,0xCF,0x5F,0xAF,0x42, + 0x27,0xDC,0x23,0x21,0x49,0x01,0x59,0x18,0x00,0x23,0xCB,0x5E,0xAB,0x42,0x20,0xDB, + 0x52,0x9F,0x1E,0x23,0xFB,0x5E,0x93,0x42,0x1B,0xDC,0x02,0x27,0xCF,0x5F,0x3F,0x4B, + 0x97,0x42,0x16,0xDB,0xA1,0x00,0xC9,0x18,0xE0,0x31,0x0E,0x23,0xCB,0x5E,0x37,0x1D, + 0x9B,0x1C,0x7B,0x43,0x0C,0x27,0xCF,0x5F,0xD9,0x19,0x4B,0x00,0x38,0x49,0x5B,0x18, + 0x04,0x21,0x59,0x5E,0x4C,0x9B,0x99,0x42,0x03,0xDD,0x4C,0x91,0x21,0x06,0x09,0x0E, + 0x8C,0x46,0x40,0x1C,0x51,0x99,0x00,0x04,0x00,0x14,0x81,0x42,0xC6,0xDC,0x64,0x1C, + 0x50,0x98,0x24,0x04,0x24,0x14,0xA0,0x42,0xAA,0xDA,0x2C,0x4D,0x4C,0x9A,0x2C,0x00, + 0x23,0x00,0x69,0x89,0x20,0x00,0xDE,0x33,0xCC,0x30,0xC2,0x34,0x91,0x42,0x4F,0x93, + 0x05,0xDC,0x61,0x46,0x00,0x29,0x02,0xD0,0x49,0x00,0x49,0x19,0x0E,0xE0,0x69,0x79, + 0x00,0x29,0x1B,0xD1,0x50,0x99,0x01,0x29,0x18,0xD9,0x62,0x99,0x89,0x78,0x00,0x29, + 0x14,0xD1,0x0D,0x99,0x00,0x29,0x11,0xD0,0x4A,0x00,0x51,0x19,0xC0,0x31,0x8E,0x89, + 0xCF,0x8B,0x12,0x22,0x00,0x21,0x00,0xF0,0x57,0xF8,0x4F,0x98,0x12,0x22,0x00,0x21, + 0x00,0xF0,0x52,0xF8,0x01,0x20,0x28,0x71,0xA6,0x81,0xE7,0x83,0x5E,0x98,0xC0,0x7D, + 0x00,0x28,0x0C,0xD0,0x00,0x21,0x29,0x71,0x5E,0x98,0x12,0x4A,0x00,0x7E,0x92,0x7F, + 0x90,0x42,0x01,0xD3,0x5E,0x9A,0xD1,0x75,0x5E,0x99,0x40,0x1C,0x08,0x76,0x02,0x99, + 0x0D,0x48,0x00,0x29,0x10,0xD0,0x29,0x79,0x00,0x29,0x0D,0xD0,0x0B,0x4A,0x01,0x68, + 0x52,0x89,0x0A,0x32,0x91,0x42,0x01,0xDA,0x49,0x1C,0x01,0x60,0x28,0x79,0x68,0x71, + 0x67,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x21,0xF6,0xE7,0xF0,0x05,0x00,0x20, + 0xC8,0x02,0x00,0x20,0x00,0x78,0x00,0x00,0xF0,0x0A,0x00,0x20,0x80,0x7A,0x00,0x00, + 0x03,0xE0,0x0B,0x78,0x49,0x1C,0x03,0x70,0x40,0x1C,0x52,0x1E,0xF9,0xD2,0x70,0x47, + 0x52,0x10,0x03,0xE0,0x0B,0x88,0x89,0x1C,0x03,0x80,0x80,0x1C,0x52,0x1E,0xF9,0xD2, + 0x70,0x47,0x92,0x10,0x01,0xE0,0x08,0xC9,0x08,0xC0,0x52,0x1E,0xFB,0xD2,0x70,0x47, + 0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1,0x09,0x06,0x09,0x0E,0x01,0xE0,0x01,0x70, + 0x40,0x1C,0x52,0x1E,0xFB,0xD2,0x70,0x47,0x92,0x10,0x00,0xE0,0x02,0xC0,0x52,0x1E, + 0xFC,0xD2,0x70,0x47,0x0A,0x49,0x00,0x20,0xC9,0x88,0x4A,0x06,0x09,0x49,0x00,0xD5, + 0xC8,0x7A,0x89,0x7A,0x08,0x18,0x00,0x06,0x01,0x0C,0x07,0x48,0x02,0x69,0xFF,0x23, + 0x1B,0x02,0x9A,0x43,0x02,0x61,0x02,0x69,0x0A,0x43,0x02,0x61,0x70,0x47,0x00,0x00, + 0xF0,0x05,0x00,0x20,0x80,0x78,0x00,0x00,0x00,0x90,0x00,0x40,0x10,0xB5,0x14,0x48, + 0x14,0x49,0x80,0x8B,0xC9,0x8A,0x00,0x24,0x40,0x18,0x13,0x49,0x09,0x78,0x00,0x29, + 0x12,0x49,0x04,0xD0,0x15,0x22,0x52,0x01,0x89,0x18,0x49,0x89,0x09,0xE0,0x10,0x4A, + 0xFF,0x31,0xD2,0x88,0xA1,0x31,0x49,0x8A,0x52,0x06,0x02,0xD4,0x0B,0x49,0xE0,0x31, + 0xC9,0x89,0x08,0x18,0x0B,0x49,0xC9,0x6B,0x49,0x04,0x49,0x0C,0x81,0x42,0x00,0xD3, + 0x01,0x24,0xFE,0xF7,0x3F,0xFF,0x20,0x00,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xF0,0x06,0x00,0x20,0xD0,0x0A,0x00,0x20,0x04,0x0B,0x00,0x20,0x00,0x78,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xC0,0x90,0x00,0x40,0xF7,0xB5,0x2C,0x4E,0xFF,0x27,0xB0,0x7F, + 0xF1,0x7F,0x84,0xB0,0x00,0x02,0x08,0x43,0x01,0xF0,0x3E,0xFD,0x30,0x00,0x20,0x38, + 0x00,0x7D,0xC0,0x07,0x0A,0xD0,0x26,0x48,0x01,0x78,0x26,0x48,0x00,0x7A,0x00,0x29, + 0x02,0xD0,0x01,0xF0,0xD1,0xFC,0x01,0xE0,0x01,0xF0,0xFE,0xFC,0x22,0x48,0x02,0x25, + 0xC1,0x6A,0x03,0x91,0x01,0x6A,0x02,0x91,0x41,0x6A,0x01,0x91,0x41,0x6B,0x00,0x91, + 0x21,0xE0,0x1D,0x4F,0x00,0x20,0xF8,0x62,0x18,0x48,0xA0,0x30,0x80,0x68,0x38,0x62, + 0x1A,0x48,0x00,0x6B,0x78,0x62,0x03,0x24,0xE0,0x07,0xC0,0x0F,0xFC,0xF7,0x08,0xF9, + 0x64,0x1E,0xF9,0xD5,0x02,0x20,0x78,0x63,0x30,0x7F,0x01,0x00,0xFC,0xF7,0x82,0xF9, + 0x01,0x24,0x04,0xA8,0x07,0xC8,0xFE,0xF7,0x81,0xFE,0x07,0x00,0x01,0xD1,0x00,0x24, + 0x25,0x00,0x64,0x1E,0xF5,0xD5,0x28,0x00,0x6D,0x1E,0x00,0x28,0xD9,0xDC,0x0A,0x48, + 0x03,0x99,0xC1,0x62,0x02,0x99,0x01,0x62,0x01,0x99,0x41,0x62,0x00,0x99,0x41,0x63, + 0x38,0x00,0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x20,0x78,0x00,0x00, + 0xFD,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20,0x80,0x90,0x00,0x40,0x80,0x7A,0x00,0x00, + 0x78,0x47,0xC0,0x46,0xF0,0x4F,0x2D,0xE9,0x71,0xDF,0x4D,0xE2,0x00,0x00,0xA0,0xE3, + 0xB8,0x01,0x8D,0xE5,0x24,0x07,0x9F,0xE5,0x28,0x37,0x9F,0xE5,0x00,0x00,0xD0,0xE5, + 0x28,0x67,0x9F,0xE5,0xB0,0x01,0x8D,0xE5,0x14,0x07,0x9F,0xE5,0x00,0xB0,0xD0,0xE5, + 0xB6,0x00,0xD3,0xE1,0x40,0x10,0x00,0xE2,0x0C,0x07,0x9F,0xE5,0x00,0x00,0x51,0xE3, + 0x01,0x4C,0x80,0xE2,0xBC,0x1E,0xD0,0x01,0xB0,0x1B,0xD4,0x11,0x02,0xAC,0x80,0xE2, + 0xAC,0x11,0x8D,0xE5,0xB0,0x1F,0xD0,0x01,0xB4,0x1B,0xD4,0x11,0xA8,0x11,0x8D,0xE5, + 0xF8,0x1A,0xD4,0x01,0xFC,0x16,0xDA,0x11,0xA0,0x11,0x8D,0xE5,0xFA,0x1A,0xD4,0x01, + 0xFE,0x16,0xDA,0x11,0x9C,0x11,0x8D,0xE5,0xF4,0x10,0xD0,0x05,0xB8,0x11,0xD0,0x15, + 0x98,0x11,0x8D,0xE5,0xF5,0x10,0xD0,0x05,0xB9,0x11,0xD0,0x15,0x94,0x11,0x8D,0xE5, + 0xF6,0x10,0xD0,0x05,0xBA,0x11,0xD0,0x15,0x90,0x11,0x8D,0xE5,0xF7,0x10,0xD0,0x05, + 0xBB,0x11,0xD0,0x15,0x8C,0x11,0x8D,0xE5,0xBC,0x1F,0xD0,0x01,0xB0,0x1C,0xD4,0x11, + 0x88,0x11,0x8D,0xE5,0xBE,0x1F,0xD0,0x01,0xB2,0x1C,0xD4,0x11,0x84,0x11,0x8D,0xE5, + 0xB0,0x10,0xD4,0x01,0xB4,0x1C,0xD4,0x11,0x80,0x11,0x8D,0xE5,0xB2,0x10,0xD4,0x01, + 0xB6,0x1C,0xD4,0x11,0x7C,0x11,0x8D,0xE5,0xB8,0x1F,0xD0,0x01,0xBC,0x1B,0xD4,0x11, + 0x78,0x11,0x8D,0xE5,0xBA,0x0F,0xD0,0x01,0xBE,0x0B,0xD4,0x11,0x74,0x01,0x8D,0xE5, + 0x00,0x00,0xA0,0xE3,0x30,0x00,0x8D,0xE5,0x2C,0x00,0x8D,0xE5,0x28,0x00,0x8D,0xE5, + 0x24,0x00,0x8D,0xE5,0x20,0x00,0x8D,0xE5,0x1C,0x00,0x8D,0xE5,0x18,0x00,0x8D,0xE5, + 0x14,0x00,0x8D,0xE5,0x10,0x00,0x8D,0xE5,0x0C,0x00,0x8D,0xE5,0x08,0x00,0x8D,0xE5, + 0x04,0x00,0x8D,0xE5,0xB8,0x05,0xC6,0xE1,0x00,0x90,0xA0,0xE1,0xBA,0x05,0xC6,0xE1, + 0x01,0x5C,0x46,0xE2,0xBC,0x05,0xC6,0xE1,0x28,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3, + 0x70,0x00,0x85,0xE2,0x49,0xFF,0xFF,0xEB,0x28,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3, + 0x98,0x00,0x85,0xE2,0x45,0xFF,0xFF,0xEB,0x00,0x00,0xA0,0xE3,0xB4,0x01,0x8D,0xE5, + 0x00,0x10,0xA0,0xE1,0xB0,0x0C,0xC5,0xE1,0x50,0x20,0xA0,0xE3,0x49,0x0F,0x8D,0xE2, + 0x3E,0xFF,0xFF,0xEB,0x50,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xD4,0x00,0x8D,0xE2, + 0x3A,0xFF,0xFF,0xEB,0x50,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x84,0x00,0x8D,0xE2, + 0x36,0xFF,0xFF,0xEB,0x50,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x34,0x00,0x8D,0xE2, + 0x32,0xFF,0xFF,0xEB,0xA8,0x05,0x9F,0xE5,0x00,0x00,0xD0,0xE5,0x00,0x00,0x50,0xE3, + 0xF8,0x7A,0xDA,0x11,0xB6,0x0A,0xDA,0x11,0x07,0x00,0x00,0x1A,0x84,0x05,0x9F,0xE5, + 0xB6,0x00,0xD0,0xE1,0x40,0x00,0x00,0xE2,0x00,0x00,0x50,0xE3,0xF2,0x71,0xD4,0x01, + 0xF6,0x7D,0xD4,0x11,0xB0,0x01,0xD4,0x01,0xB4,0x0D,0xD4,0x11,0x00,0x80,0xA0,0xE3, + 0x08,0x50,0xA0,0xE1,0xA4,0x01,0x8D,0xE5,0x68,0x05,0x9F,0xE5,0xC0,0x01,0x8D,0xE5, + 0x0E,0x0C,0x80,0xE2,0xBC,0x01,0x8D,0xE5,0x82,0x00,0x00,0xEA,0x00,0x40,0xA0,0xE3, + 0x7C,0x00,0x00,0xEA,0xC0,0x01,0x9D,0xE5,0x0F,0x2A,0xE0,0xE3,0x08,0x11,0x90,0xE7, + 0x01,0x0A,0xA0,0xE1,0x20,0x0A,0xA0,0xE1,0x21,0x18,0x02,0xE0,0x01,0x30,0x40,0xE0, + 0x00,0x00,0x41,0xE0,0x9C,0x11,0x9D,0xE5,0x03,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3, + 0xD4,0x20,0x8D,0xC2,0x04,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0,0x04,0x11,0x82,0xC7, + 0x9C,0x11,0x9D,0xE5,0x00,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3,0x34,0x20,0x8D,0xC2, + 0x04,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0,0x04,0x11,0x82,0xC7,0xA0,0x11,0x9D,0xE5, + 0x03,0x10,0x81,0xE0,0x00,0x00,0x51,0xE3,0x49,0x2F,0x8D,0xC2,0x05,0xC1,0x92,0xC7, + 0x0C,0x10,0x81,0xC0,0x05,0x11,0x82,0xC7,0xA0,0x11,0x9D,0xE5,0x00,0x10,0x81,0xE0, + 0x00,0x00,0x51,0xE3,0x84,0x20,0x8D,0xC2,0x05,0xC1,0x92,0xC7,0x0C,0x10,0x81,0xC0, + 0x05,0x11,0x82,0xC7,0xB4,0x11,0x9D,0xE5,0x01,0x00,0x53,0xE1,0xB4,0x31,0x8D,0xC5, + 0x30,0x40,0x8D,0xC5,0x2C,0x50,0x8D,0xC5,0xC8,0x00,0x53,0xE3,0xB8,0x15,0xD6,0xC1, + 0x01,0x10,0x81,0xC2,0xB8,0x15,0xC6,0xC1,0x96,0x00,0x50,0xE3,0xBA,0x15,0xD6,0xC1, + 0x01,0x10,0x81,0xC2,0xBA,0x15,0xC6,0xC1,0x19,0x0E,0x53,0xE3,0xBC,0x15,0xD6,0xC1, + 0x01,0x10,0x81,0xC2,0xBC,0x15,0xC6,0xC1,0x68,0x14,0x9F,0xE5,0xB6,0x10,0xD1,0xE1, + 0x40,0x00,0x11,0xE3,0xB0,0x18,0xDA,0xE1,0x01,0x28,0xE0,0x13,0x81,0x10,0x02,0x10, + 0x00,0x00,0x53,0xE3,0x03,0x28,0xA0,0xC1,0x00,0x20,0xA0,0xD3,0x22,0x28,0xA0,0xC1, + 0x00,0x00,0x50,0xE3,0x00,0x08,0xA0,0xC1,0x00,0x00,0xA0,0xD3,0x20,0x08,0xA0,0xC1, + 0x01,0x00,0x50,0xE1,0x01,0xC0,0x89,0x82,0x01,0x98,0xCC,0x83,0x01,0x00,0x52,0xE1, + 0x0C,0xC0,0x9D,0x85,0x01,0xC0,0x8C,0x82,0x01,0xC8,0xCC,0x83,0x0C,0xC0,0x8D,0x85, + 0x81,0x00,0x50,0xE1,0x08,0xC0,0x9D,0x85,0x01,0xC0,0x8C,0x82,0x01,0xC8,0xCC,0x83, + 0x08,0xC0,0x8D,0x85,0x81,0x00,0x52,0xE1,0x04,0x10,0x9D,0x85,0x01,0x10,0x81,0x82, + 0x01,0x18,0xC1,0x83,0x04,0x10,0x8D,0x85,0x10,0x10,0x9D,0xE5,0x00,0x00,0x53,0xE3, + 0x01,0x00,0x80,0xE0,0x10,0x00,0x8D,0xE5,0x00,0x30,0xA0,0xB3,0x01,0x00,0x4B,0xE2, + 0x00,0x00,0x55,0xE1,0x06,0x00,0x00,0x1A,0x00,0x00,0x53,0xE3,0x04,0x00,0x00,0x0A, + 0x03,0x02,0x63,0xE0,0x00,0x01,0xA0,0xE1,0x64,0x10,0xA0,0xE3,0xFC,0xEB,0xFF,0xEB, + 0x00,0x30,0xA0,0xE1,0x05,0x10,0xA0,0xE1,0x04,0x00,0xA0,0xE1,0x11,0xF8,0xFF,0xEB, + 0xB4,0x13,0x9F,0xE5,0x00,0x00,0x57,0xE3,0x80,0x00,0x81,0xE0,0xB0,0x30,0xC0,0xE1, + 0x00,0x00,0x67,0xD2,0x07,0x00,0xA0,0xC1,0x03,0x00,0x50,0xE1,0xB8,0x11,0x9D,0xB5, + 0x07,0x00,0x83,0xB0,0x01,0x00,0x80,0xB0,0xB8,0x01,0x8D,0xB5,0x05,0x10,0xA0,0xE1, + 0x04,0x00,0xA0,0xE1,0xDA,0xF7,0xFF,0xEB,0xBC,0x11,0x9D,0xE5,0x7C,0x23,0x9F,0xE5, + 0x08,0x11,0x91,0xE7,0x80,0x00,0x82,0xE0,0x02,0x19,0xC1,0xE3,0x01,0x80,0x88,0xE2, + 0x01,0x40,0x84,0xE2,0xB0,0x10,0xC0,0xE1,0xB0,0x01,0x9D,0xE5,0x00,0x00,0x54,0xE1, + 0x7F,0xFF,0xFF,0x3A,0x01,0x50,0x85,0xE2,0x0B,0x00,0x55,0xE1,0x7A,0xFF,0xFF,0x3A, + 0x60,0xFA,0xFF,0xEB,0x2C,0x63,0x9F,0xE5,0xA8,0x01,0x9D,0xE5,0xBE,0x00,0xC6,0xE1, + 0xAC,0x01,0x9D,0xE5,0x01,0x00,0x10,0xE3,0x0A,0x00,0x00,0x0A,0xB0,0x01,0x9D,0xE5, + 0x64,0x10,0xA0,0xE3,0x9B,0x00,0x00,0xE0,0x90,0x01,0x01,0xE0,0xB8,0x01,0x9D,0xE5, + 0xA4,0x21,0x9D,0xE5,0x92,0x00,0x00,0xE0,0x3A,0xEC,0xFF,0xEB,0xA8,0x11,0x9D,0xE5, + 0x01,0x00,0x50,0xE1,0xBE,0x00,0xC6,0x31,0xB0,0x01,0x9D,0xE5,0x64,0x10,0xA0,0xE3, + 0x90,0x01,0x07,0xE0,0x00,0x40,0xA0,0xE3,0x22,0x00,0x00,0xEA,0x49,0x0F,0x8D,0xE2, + 0x04,0x01,0x90,0xE7,0x98,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0,0x07,0x10,0xA0,0xE1, + 0x2C,0xEC,0xFF,0xEB,0x88,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0xBC,0xFA,0xFF,0xEB,0x00,0x50,0xA0,0xE1, + 0x84,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7,0x94,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x07,0x10,0xA0,0xE1,0x1F,0xEC,0xFF,0xEB,0x84,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1, + 0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0xAF,0xFA,0xFF,0xEB, + 0x00,0x00,0x45,0xE0,0x78,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1,0x40,0x08,0xA0,0xE1, + 0x91,0x00,0x00,0xE0,0x84,0x50,0x86,0xE0,0x64,0x10,0xA0,0xE3,0xA4,0xEB,0xFF,0xEB, + 0x01,0x40,0x84,0xE2,0xB0,0x07,0xC5,0xE1,0x0B,0x00,0x54,0xE1,0xDA,0xFF,0xFF,0x3A, + 0x64,0x00,0xA0,0xE3,0x9B,0x00,0x05,0xE0,0x00,0x40,0xA0,0xE3,0x22,0x00,0x00,0xEA, + 0xD4,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7,0x90,0x11,0x9D,0xE5,0x91,0x00,0x00,0xE0, + 0x05,0x10,0xA0,0xE1,0x03,0xEC,0xFF,0xEB,0x80,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1, + 0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1,0x93,0xFA,0xFF,0xEB, + 0x00,0x70,0xA0,0xE1,0x34,0x00,0x8D,0xE2,0x04,0x01,0x90,0xE7,0x8C,0x11,0x9D,0xE5, + 0x91,0x00,0x00,0xE0,0x05,0x10,0xA0,0xE1,0xF6,0xEB,0xFF,0xEB,0x7C,0x11,0x9D,0xE5, + 0x00,0x08,0xA0,0xE1,0x01,0x18,0xA0,0xE1,0x40,0x08,0xA0,0xE1,0x41,0x18,0xA0,0xE1, + 0x86,0xFA,0xFF,0xEB,0x00,0x00,0x47,0xE0,0x74,0x11,0x9D,0xE5,0x00,0x08,0xA0,0xE1, + 0x40,0x08,0xA0,0xE1,0x91,0x00,0x00,0xE0,0x84,0x70,0x86,0xE0,0x64,0x10,0xA0,0xE3, + 0x7B,0xEB,0xFF,0xEB,0x01,0x40,0x84,0xE2,0xB8,0x09,0xC7,0xE1,0xB0,0x01,0x9D,0xE5, + 0x00,0x00,0x54,0xE1,0xD9,0xFF,0xFF,0x3A,0xB4,0x01,0x9D,0xE5,0x00,0x00,0x50,0xE3, + 0x0D,0x00,0x00,0xDA,0x30,0x00,0x9D,0xE5,0x2C,0x10,0x9D,0xE5,0x80,0x00,0x86,0xE0, + 0x81,0x10,0x86,0xE0,0xB8,0x09,0xD0,0xE1,0xB0,0x17,0xD1,0xE1,0x00,0x10,0x81,0xE0, + 0xB4,0x01,0x9D,0xE5,0x01,0x00,0x40,0xE0,0x00,0x08,0xA0,0xE1,0x40,0x08,0xB0,0xE1, + 0xB0,0x0C,0xC6,0xE1,0x00,0x00,0xA0,0x43,0xB0,0x0C,0xC6,0x41,0xB0,0x01,0x9D,0xE5, + 0x01,0x00,0x40,0xE2,0x9B,0x00,0x01,0xE0,0x10,0x00,0x9D,0xE5,0xCD,0xEB,0xFF,0xEB, + 0xB6,0x10,0xD6,0xE1,0x0C,0x20,0x9D,0xE5,0x40,0x00,0x11,0xE3,0x10,0x00,0x00,0x0A, + 0x82,0x00,0x59,0xE1,0x01,0x20,0xA0,0x83,0x24,0x20,0x8D,0x85,0xFA,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x83,0x20,0x00,0x8D,0x85,0x08,0x00,0x9D,0xE5,0x23,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x83,0x1C,0x00,0x8D,0x85,0x04,0x00,0x9D,0xE5,0x23,0x00,0x50,0xE3, + 0x01,0x00,0xA0,0x33,0x18,0x00,0x8D,0x35,0x14,0x00,0x59,0xE3,0x13,0x00,0x00,0x9A, + 0x10,0x00,0x00,0xEA,0x02,0x00,0x59,0xE1,0x08,0x00,0x59,0x83,0x01,0x20,0xA0,0x83, + 0x24,0x20,0x8D,0x85,0x96,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83,0x20,0x00,0x8D,0x85, + 0x08,0x00,0x9D,0xE5,0x14,0x00,0x50,0xE3,0x01,0x00,0xA0,0x83,0x1C,0x00,0x8D,0x85, + 0x04,0x00,0x9D,0xE5,0x14,0x00,0x50,0xE3,0x01,0x00,0xA0,0x33,0x18,0x00,0x8D,0x35, + 0x0A,0x00,0x59,0xE3,0x01,0x00,0x00,0x9A,0x01,0x00,0xA0,0xE3,0x14,0x00,0x8D,0xE5, + 0x24,0x00,0x9D,0xE5,0x20,0x20,0x9D,0xE5,0x10,0x00,0x11,0xE3,0x02,0x30,0x80,0xE1, + 0x1C,0x00,0x9D,0xE5,0x18,0x20,0x9D,0xE5,0x02,0x00,0x00,0xE0,0x00,0x20,0x83,0xE1, + 0x14,0x00,0x9D,0x15,0x00,0x00,0x50,0x13,0x00,0x00,0xA0,0x03,0x01,0x00,0xA0,0x13, + 0x02,0x00,0x90,0xE1,0x28,0x00,0x9D,0x05,0x00,0x00,0x50,0x03,0x09,0x00,0x00,0x0A, + 0xC4,0x00,0x96,0xE5,0x01,0x00,0x80,0xE2,0xC4,0x00,0x86,0xE5,0xC8,0x00,0xD6,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0x12,0xC8,0x00,0xC6,0x15,0x71,0xDF,0x8D,0xE2, + 0xF0,0x4F,0xBD,0xE8,0x1E,0xFF,0x2F,0xE1,0xC8,0x00,0xD6,0xE5,0x01,0x00,0x80,0xE2, + 0xFF,0x00,0x00,0xE2,0xC8,0x00,0xC6,0xE5,0xB4,0x18,0xDA,0xE1,0x01,0x00,0x50,0xE1, + 0xF5,0xFF,0xFF,0x1A,0x00,0x00,0xA0,0xE3,0xC8,0x00,0xC6,0xE5,0xC4,0x00,0x96,0xE5, + 0x00,0x00,0x50,0xE3,0x01,0x00,0x40,0xC2,0xC4,0x00,0x86,0xC5,0xEE,0xFF,0xFF,0xEA, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00, + 0xF0,0x06,0x00,0x20,0x04,0x0B,0x00,0x20,0x00,0x02,0x10,0x40,0xC8,0x02,0x00,0x20, + 0x40,0x00,0x00,0x20,0xF0,0xB5,0xCA,0x49,0xC8,0x4F,0xC9,0x88,0xB8,0x7D,0xC9,0x4C, + 0x00,0x25,0x49,0x06,0x8D,0xB0,0x00,0xD4,0xA0,0x7C,0x03,0x90,0xC3,0x48,0x40,0x38, + 0x42,0x79,0x06,0x00,0xC0,0x36,0x00,0x92,0x82,0x79,0x80,0x30,0x01,0x7B,0xC0,0x38, + 0xB3,0x7A,0x00,0x7A,0xFE,0xF7,0xED,0xFB,0x00,0x06,0x71,0x7A,0x00,0x0E,0xFE,0xF7, + 0xDD,0xFB,0x31,0x00,0x20,0x39,0x0A,0x7A,0xC0,0x39,0x00,0x06,0x0C,0x91,0x09,0x79, + 0x00,0x0E,0xFE,0xF7,0xD7,0xFB,0x00,0x06,0xBA,0x7D,0xA1,0x7C,0x00,0x0E,0xFE,0xF7, + 0xD1,0xFB,0x00,0x06,0xB4,0x4E,0x00,0x0E,0x02,0x90,0x30,0x7B,0x00,0x28,0x02,0xD0, + 0xB2,0x48,0x40,0x89,0x0A,0xE0,0xAE,0x49,0x78,0x8A,0xC9,0x88,0x49,0x06,0x00,0xD4, + 0xE0,0x89,0xAF,0x49,0xC9,0x8A,0x40,0x18,0x00,0x04,0x00,0x0C,0x00,0x27,0x04,0x90, + 0x77,0x61,0x30,0x7A,0x00,0x28,0x06,0xD0,0x30,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0, + 0xD5,0xFA,0x01,0xF0,0xC3,0xFA,0x01,0x20,0x30,0x62,0xFC,0xF7,0xF5,0xFB,0xA0,0x48, + 0x05,0x22,0x01,0x00,0xFF,0x31,0x61,0x31,0x0A,0x91,0x9E,0x49,0xD2,0x01,0xE0,0x39, + 0x8B,0x18,0x09,0x93,0x03,0x00,0xC0,0x33,0x80,0x31,0x07,0xAC,0x0A,0xC4,0x02,0x99, + 0xC9,0x1C,0x06,0x91,0x51,0x00,0x44,0x18,0x80,0x18,0x05,0x90,0x10,0xE1,0x30,0x7A, + 0x00,0x28,0x04,0xD0,0x30,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0xAF,0xFA,0xFF,0x20, + 0x81,0x30,0xFB,0xF7,0xAD,0xF9,0x03,0x20,0x01,0xF0,0xE6,0xF9,0x00,0xF0,0x68,0xF9, + 0x01,0x20,0x40,0x05,0xFC,0xF7,0x04,0xFE,0xFF,0xF7,0xCA,0xFB,0x00,0x20,0xFC,0xF7, + 0xFF,0xFD,0x87,0x48,0xC0,0x88,0x01,0x06,0x01,0xD5,0x01,0x20,0x04,0xE0,0x40,0x06, + 0x01,0xD5,0x05,0x20,0x00,0xE0,0x03,0x20,0x01,0xF0,0xAA,0xF8,0xFC,0xF7,0x34,0xFE, + 0x84,0x48,0x04,0x99,0x80,0x8B,0x40,0x18,0x7D,0x49,0x89,0x89,0x88,0x42,0x10,0xD9, + 0x0A,0x98,0x40,0x78,0x00,0x28,0x0C,0xD1,0x79,0x48,0xFF,0x21,0xC0,0x88,0x19,0x31, + 0x08,0x42,0x06,0xD1,0x03,0x98,0x6D,0x1C,0x85,0x42,0x03,0xDD,0xFC,0xF7,0x24,0xFE, + 0x00,0xE0,0x00,0x25,0x00,0xF0,0x6A,0xFE,0x00,0xF0,0xEC,0xFD,0x00,0xF0,0x40,0xFE, + 0x09,0x99,0x08,0x98,0x49,0x88,0x40,0x68,0x88,0x42,0x0C,0xDB,0x0A,0x98,0x40,0x78, + 0x00,0x28,0x04,0xD1,0x6A,0x48,0x46,0x21,0xC0,0x88,0x08,0x42,0x03,0xD0,0x6A,0x49, + 0x01,0x20,0x48,0x70,0x02,0xE0,0x70,0x78,0x00,0x28,0x0D,0xD0,0xFC,0xF7,0x88,0xFB, + 0x64,0x48,0x01,0x21,0xE0,0x38,0xC0,0x7F,0x40,0x08,0x01,0xF0,0xBD,0xF8,0x62,0x48, + 0x47,0x70,0x08,0x98,0x47,0x60,0xA9,0xE0,0xFC,0xF7,0xC4,0xFD,0xFD,0xF7,0x3C,0xFF, + 0x00,0x28,0x08,0xD0,0x77,0x61,0x05,0x98,0x80,0x7B,0xC8,0x28,0x10,0xD2,0x05,0x99, + 0x40,0x1C,0x88,0x73,0x0C,0xE0,0x70,0x69,0x40,0x1C,0x70,0x61,0x70,0x69,0x01,0x28, + 0x01,0xD1,0x59,0x48,0x07,0x73,0x70,0x69,0x05,0x28,0x01,0xD9,0xFC,0xF7,0x54,0xFB, + 0x01,0x20,0x40,0x07,0x00,0x68,0x00,0x28,0x07,0xD1,0x60,0x68,0xFF,0x21,0xFF,0x31, + 0x88,0x42,0x03,0xDA,0x40,0x1C,0x60,0x60,0x00,0xE0,0x67,0x60,0x09,0x99,0x20,0x68, + 0x49,0x89,0x88,0x42,0x0A,0xDD,0x61,0x68,0xFF,0x20,0xF5,0x30,0x81,0x42,0x05,0xDD, + 0x01,0x20,0x70,0x70,0x27,0x60,0x67,0x60,0x08,0x99,0x48,0x60,0x47,0x48,0x41,0x68, + 0x09,0x07,0x07,0xD5,0xC1,0x68,0x00,0x29,0x04,0xD0,0xC0,0x68,0x01,0x21,0x49,0x07, + 0xC8,0x63,0x06,0xE0,0x70,0x7B,0x80,0x28,0x01,0xD1,0xFC,0xF7,0x31,0xFC,0x00,0xF0, + 0x11,0xF9,0xFC,0xF7,0x27,0xFE,0x07,0x98,0x00,0x7B,0x00,0x28,0x04,0xD0,0x30,0x7B, + 0x00,0x28,0x01,0xD1,0x00,0xF0,0xC0,0xF8,0x01,0x20,0x40,0x07,0xC0,0x6B,0x0B,0x28, + 0x4C,0xD1,0x07,0x98,0x00,0x7A,0x00,0x28,0x01,0xD0,0xFF,0xF7,0x5B,0xFA,0x00,0xF0, + 0x9B,0xF8,0x03,0x20,0x01,0xF0,0xFA,0xF8,0xF0,0x62,0x03,0x20,0x01,0xF0,0x28,0xF9, + 0xFF,0x20,0x81,0x30,0xFB,0xF7,0xD4,0xF8,0x2D,0x48,0x00,0x78,0x00,0x28,0x2F,0xD1, + 0xFC,0xF7,0xD8,0xFE,0x00,0x28,0x2B,0xD0,0xB0,0x6A,0x00,0x28,0x0B,0x90,0x27,0xD0, + 0xF0,0x6A,0xFF,0x21,0x41,0x31,0x48,0x43,0x26,0x49,0xFA,0xF7,0x8B,0xFD,0x0B,0x99, + 0x08,0x1A,0x32,0x28,0x1C,0xDD,0x01,0xF0,0xCF,0xF9,0x01,0xF0,0xD3,0xF9,0xB0,0x79, + 0x00,0x28,0x0D,0xD0,0x00,0xF0,0x4E,0xF8,0x00,0xF0,0x51,0xF8,0x00,0xF0,0x59,0xF8, + 0x1D,0x4E,0x01,0x20,0x70,0x60,0xFB,0xF7,0xBB,0xF8,0x1C,0x48,0x70,0x60,0x03,0xE0, + 0x1B,0x48,0x01,0x78,0x00,0x29,0xFC,0xD0,0x01,0xF0,0xC3,0xF9,0x18,0x48,0x07,0x70, + 0x0D,0x4E,0x70,0x69,0x06,0x99,0x88,0x42,0x00,0xD2,0xE8,0xE6,0x0C,0x98,0x0C,0x49, + 0x40,0x78,0xA0,0x39,0x48,0x73,0x08,0x48,0x00,0x7A,0x00,0x28,0x01,0xD0,0x01,0xF0, + 0x8D,0xF9,0x0D,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xA0,0x79,0x00,0x00, + 0xF0,0x05,0x00,0x20,0xE0,0x78,0x00,0x00,0xF8,0x0A,0x00,0x20,0xA0,0x7A,0x00,0x00, + 0xD0,0x0A,0x00,0x20,0xF0,0x06,0x00,0x20,0x90,0x08,0x00,0x20,0x00,0x40,0x00,0x30, + 0xAD,0x0B,0x00,0x20,0x10,0x27,0x00,0x00,0x00,0x30,0x00,0x40,0xE1,0x04,0x00,0x00, + 0xAC,0x0B,0x00,0x20,0x01,0x20,0x80,0x07,0x01,0x6B,0x81,0x22,0xD2,0x01,0x11,0x43, + 0x01,0x63,0x70,0x47,0x00,0x20,0x01,0x21,0x89,0x07,0x48,0x60,0x70,0x47,0x10,0x20, + 0x81,0x06,0x48,0x60,0x70,0x47,0x01,0x22,0x92,0x07,0x91,0x68,0x01,0x43,0x91,0x60, + 0x70,0x47,0x01,0x20,0x80,0x07,0x41,0x68,0x02,0x22,0x11,0x43,0x41,0x60,0x70,0x47, + 0x01,0x20,0x80,0x07,0x01,0x6B,0x03,0x4A,0x89,0x09,0x52,0x7B,0x89,0x01,0x11,0x43, + 0x01,0x63,0x70,0x47,0x00,0x78,0x00,0x00,0x10,0xB5,0xFC,0xF7,0xB3,0xFC,0xFA,0xF7, + 0x35,0xFD,0x03,0x20,0x40,0x03,0xFB,0xF7,0x3B,0xF8,0x10,0xBC,0x08,0xBC,0x18,0x47, + 0x03,0x20,0x10,0xB5,0x40,0x03,0xFB,0xF7,0x3B,0xF8,0xFA,0xF7,0x31,0xFD,0xFC,0xF7, + 0xA9,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0xB5,0x00,0xF0,0xFD,0xFB,0x05,0x49, + 0x80,0x22,0xC9,0x88,0x11,0x40,0x81,0x42,0x01,0xD0,0xFA,0xF7,0x59,0xFF,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0xFE,0xB5,0x16,0x48,0x17,0x4E,0x00,0x78, + 0x00,0x25,0x01,0x90,0x14,0x48,0x00,0x78,0x00,0x90,0x1C,0xE0,0x14,0x49,0x68,0x00, + 0x00,0x24,0x47,0x18,0x60,0x37,0x12,0xE0,0x29,0x00,0x20,0x00,0xFD,0xF7,0x2A,0xFC, + 0x0F,0x4B,0x62,0x00,0xD3,0x18,0x98,0x22,0x9A,0x5E,0x10,0x23,0xFB,0x5E,0x40,0x00, + 0x31,0x5E,0xD2,0x18,0x89,0x1A,0x00,0xD5,0x00,0x21,0x64,0x1C,0x31,0x52,0x01,0x98, + 0x84,0x42,0xE9,0xD3,0x6D,0x1C,0x00,0x98,0x85,0x42,0xDF,0xD3,0xFE,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0xC8,0x02,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xF8,0xB5,0x72,0x4F,0x00,0x26,0x78,0x7A,0xC0,0x07,0x2F,0xD0, + 0x70,0x4C,0x20,0x89,0x00,0x28,0x0E,0xD0,0x6F,0x49,0x88,0x42,0x0B,0xD0,0x1E,0x21, + 0x48,0x43,0x64,0x21,0xFA,0xF7,0x9E,0xFC,0x39,0x8A,0x46,0x18,0x4B,0x20,0xC0,0x00, + 0x86,0x42,0x00,0xD9,0x06,0x00,0x69,0x48,0x40,0x7D,0x00,0x28,0x18,0xD0,0xA6,0x89, + 0x67,0x48,0x31,0x18,0x08,0x00,0x48,0x43,0x69,0x21,0x09,0x01,0xFA,0xF7,0x8A,0xFC, + 0x63,0x4B,0x31,0x00,0x63,0x4A,0xFF,0x39,0xA6,0x39,0x5B,0x42,0x91,0x42,0x01,0xD8, + 0x1E,0x1A,0x05,0xE0,0x5E,0x4C,0x64,0x1E,0x31,0x19,0x91,0x42,0x00,0xD2,0xC6,0x18, + 0x01,0x24,0x64,0x07,0x25,0x68,0x00,0x2D,0x7E,0xD0,0x5B,0x48,0x00,0x21,0x01,0x70, + 0x02,0x20,0x00,0xF0,0xF5,0xFF,0x59,0x48,0x0A,0x21,0x00,0x6B,0xFA,0xF7,0x6A,0xFC, + 0x01,0x00,0x02,0x20,0x00,0xF0,0xD8,0xFF,0x01,0x2D,0x0B,0xD0,0x02,0x2D,0x08,0xD1, + 0x60,0x68,0x00,0x02,0x00,0x0E,0x01,0x28,0x03,0xD1,0x60,0x68,0x00,0x06,0x00,0xD1, + 0x00,0xE0,0x6D,0x1C,0x78,0x7A,0x00,0x28,0x08,0xD0,0x60,0x68,0x4C,0x49,0x81,0x43, + 0x04,0xD0,0x61,0x68,0x4B,0x48,0x88,0x43,0x00,0xD0,0x6D,0x1C,0xF8,0x79,0x00,0x28, + 0x04,0xD1,0x49,0x48,0x41,0x69,0x02,0x15,0x11,0x43,0x41,0x61,0x47,0x48,0x01,0x68, + 0x47,0x48,0xC1,0x61,0x02,0x24,0x20,0x00,0x00,0xF0,0xB6,0xFF,0x45,0x48,0xC1,0x68, + 0x49,0x08,0x49,0x00,0xC1,0x60,0x03,0x04,0x35,0x48,0x36,0x4A,0x41,0x7A,0x40,0x48, + 0x97,0x89,0x21,0xE0,0x42,0x69,0x52,0x06,0x0E,0xD4,0x00,0x29,0x01,0xD0,0xAC,0x42, + 0x04,0xD2,0xA2,0x00,0xD2,0x18,0x12,0x68,0xC2,0x61,0x04,0xE0,0xCA,0x07,0x01,0xD0, + 0xC6,0x61,0x00,0xE0,0xC7,0x61,0x64,0x1C,0x2F,0x4A,0x12,0x78,0x00,0x2A,0x0B,0xD0, + 0xFD,0xF7,0x9C,0xFC,0x26,0x48,0x01,0x7A,0x00,0x29,0x07,0xD0,0x00,0x6B,0x00,0x04, + 0x00,0x0C,0x01,0xF0,0x4B,0xF8,0x01,0xE0,0xAC,0x42,0xDB,0xD9,0x02,0x20,0x00,0xF0, + 0x8F,0xFF,0x25,0x4D,0x28,0x78,0x00,0x28,0x27,0xD1,0xFD,0xF7,0xAD,0xFB,0x00,0x28, + 0x23,0xD0,0x22,0x48,0x0A,0x21,0x00,0x6B,0xFA,0xF7,0xFC,0xFB,0x01,0x00,0x02,0x20, + 0x00,0xF0,0x6A,0xFF,0x02,0x20,0x00,0xE0,0x26,0xE0,0x00,0xF0,0x6D,0xFF,0x14,0x4C, + 0x0C,0xE0,0x28,0x78,0x00,0x28,0x09,0xD0,0xFD,0xF7,0x70,0xFC,0x20,0x7A,0x00,0x28, + 0x04,0xD0,0x20,0x6B,0x00,0x04,0x00,0x0C,0x01,0xF0,0x20,0xF8,0xFD,0xF7,0x8C,0xFB, + 0x00,0x28,0xEE,0xD1,0x02,0x20,0x00,0xF0,0x63,0xFF,0x16,0x49,0xC8,0x68,0x01,0x22, + 0x10,0x43,0xC8,0x60,0x00,0xF0,0x2C,0xF8,0x05,0x48,0xC0,0x79,0x00,0x28,0x03,0xD1, + 0x01,0x20,0x80,0x02,0xFA,0xF7,0x04,0xFF,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xF8,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0xFF,0x0F,0x00,0x00,0x30,0x0A,0x00,0x20, + 0xCC,0xF7,0xFF,0xFF,0x8F,0x06,0x00,0x00,0xAD,0x0B,0x00,0x20,0x00,0x78,0x00,0x00, + 0x00,0x00,0x4E,0x1D,0x00,0x80,0x4E,0x1D,0x40,0x00,0x00,0x40,0x04,0x00,0x00,0x20, + 0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40,0x01,0xC0,0x8F,0xE2,0x1C,0xFF,0x2F,0xE1, + 0x05,0x48,0x01,0x21,0x00,0xB5,0xC9,0x02,0x01,0x62,0x00,0x21,0x01,0x62,0xFD,0xF7, + 0x67,0xFE,0x08,0xBC,0x18,0x47,0x00,0x00,0x40,0x00,0x00,0x40,0x40,0x18,0x70,0x47, + 0x40,0x18,0x80,0x18,0x70,0x47,0x10,0xB4,0x40,0x18,0x01,0x9C,0x80,0x18,0xC0,0x18, + 0x00,0x19,0x10,0xBC,0x70,0x47,0x00,0x00,0xF8,0xB5,0x00,0x21,0x01,0x23,0x5B,0x07, + 0x18,0x68,0x13,0x4A,0x90,0x72,0x90,0x7A,0x01,0x28,0x01,0xD1,0x01,0x21,0x0D,0xE0, + 0x01,0x28,0x00,0xD9,0x02,0x21,0x00,0x28,0x08,0xD1,0x0D,0x48,0x20,0x22,0x00,0x21, + 0x0C,0x30,0xFF,0xF7,0x19,0xF8,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x20,0x13,0x25, + 0x08,0x4C,0xAD,0x01,0x08,0xE0,0x46,0x18,0xB6,0x00,0xF6,0x18,0x36,0x68,0x87,0x00, + 0x3F,0x19,0x7F,0x19,0x40,0x1C,0xFE,0x60,0x96,0x7A,0x86,0x42,0xF3,0xD8,0xEA,0xE7, + 0xB0,0x0A,0x00,0x20,0xF0,0x05,0x00,0x20,0x70,0xB5,0x1E,0x49,0x1C,0x4C,0x0D,0x00, + 0x20,0x78,0xA1,0x22,0xFF,0x35,0x92,0x00,0xBF,0x35,0x8E,0x18,0x00,0x28,0x0E,0xD0, + 0x5A,0x22,0x21,0x1D,0x28,0x00,0xFE,0xF7,0xD3,0xFF,0x17,0x49,0x09,0x22,0x30,0x00, + 0xFE,0xF7,0xCE,0xFF,0x20,0x78,0x60,0x70,0x70,0xBC,0x08,0xBC,0x18,0x47,0x09,0x22, + 0x00,0x21,0x30,0x00,0xFE,0xF7,0xE0,0xFF,0x5A,0x22,0x00,0x21,0x28,0x00,0xFE,0xF7, + 0xDB,0xFF,0x0D,0x48,0x5A,0x22,0x00,0x21,0x63,0x38,0xFE,0xF7,0xD5,0xFF,0x0A,0x48, + 0x09,0x22,0x00,0x21,0x09,0x38,0xFE,0xF7,0xCF,0xFF,0x00,0x20,0x05,0x49,0x60,0x70, + 0xA0,0x70,0xCA,0x88,0x23,0x23,0x9A,0x43,0xCA,0x80,0x04,0x49,0x88,0x75,0xDB,0xE7, + 0x50,0x07,0x00,0x20,0xF0,0x05,0x00,0x20,0x6B,0x08,0x00,0x20,0x30,0x0A,0x00,0x20, + 0xF3,0xB5,0x93,0x48,0x91,0xB0,0x40,0x7E,0x02,0x90,0x92,0x48,0x00,0x78,0x00,0x28, + 0x91,0x48,0x18,0xD0,0x0B,0x21,0x89,0x01,0x40,0x18,0x01,0x8A,0x8F,0x4A,0x1A,0x26, + 0x07,0x91,0x41,0x8A,0x1C,0x27,0x06,0x91,0x81,0x8A,0x05,0x91,0x1E,0x21,0x41,0x5E, + 0x04,0x91,0x00,0x21,0x51,0x5E,0x03,0x91,0x16,0x21,0x18,0x22,0x86,0x5F,0xC7,0x5F, + 0x41,0x5E,0x82,0x5E,0x16,0xE0,0x60,0x30,0xC1,0x8A,0x04,0x22,0x00,0x26,0x07,0x91, + 0x01,0x8B,0x02,0x27,0x06,0x91,0x41,0x8B,0x05,0x91,0x7D,0x49,0x20,0x39,0x8A,0x5E, + 0x04,0x92,0x06,0x22,0x8A,0x5E,0x03,0x92,0x8E,0x5F,0xCF,0x5F,0x1C,0x21,0x1E,0x22, + 0x41,0x5E,0x82,0x5E,0x11,0x98,0x78,0x4C,0x00,0x68,0x41,0x18,0x11,0x98,0x01,0x60, + 0x12,0x98,0x00,0x68,0x81,0x18,0x12,0x98,0x01,0x60,0x60,0x8C,0x00,0x21,0x40,0x1E, + 0x02,0x04,0x12,0x0C,0x68,0x46,0x06,0xC0,0x20,0x8C,0x0A,0x00,0x40,0x1E,0x03,0x04, + 0x11,0xA8,0x03,0xC8,0x1B,0x0C,0x00,0xF0,0x23,0xFF,0x20,0x8C,0x64,0x21,0x0A,0x90, + 0x60,0x8C,0x09,0x90,0x0A,0x98,0x44,0x08,0x09,0x98,0x45,0x08,0x06,0x98,0x64,0x38, + 0x00,0x28,0x01,0xDC,0x06,0x98,0x08,0x1A,0x0F,0x90,0x05,0x98,0x64,0x38,0x00,0x28, + 0x01,0xDC,0x05,0x98,0x08,0x1A,0x0E,0x90,0x61,0x48,0x01,0x78,0x61,0x48,0x00,0x78, + 0x08,0x90,0x61,0x48,0x80,0x7E,0xC2,0x07,0x0A,0xD0,0x80,0x07,0x03,0xD5,0x49,0x1E, + 0x09,0x06,0x09,0x0E,0x04,0xE0,0x08,0x98,0x40,0x1E,0x00,0x06,0x00,0x0E,0x08,0x90, + 0x20,0x00,0xFA,0xF7,0xBD,0xF9,0x0A,0x99,0x08,0x1A,0x40,0x1E,0x0C,0x90,0x08,0x99, + 0x28,0x00,0xFA,0xF7,0xB5,0xF9,0x09,0x99,0x08,0x1A,0x40,0x1E,0x31,0x1E,0x0B,0x90, + 0x00,0xDD,0xA1,0x1B,0x00,0x2F,0x0D,0x97,0x01,0xDD,0xE8,0x1B,0x0D,0x90,0x11,0x98, + 0x00,0x68,0xA0,0x42,0x10,0x90,0x01,0xDB,0x00,0x1B,0x01,0xE0,0x00,0x1B,0x40,0x1C, + 0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x22,0x06,0x00,0x56,0x43,0x37,0x00,0x88,0x42, + 0x0D,0xDD,0x42,0x1A,0x0F,0x98,0x50,0x43,0x86,0x19,0x10,0x00,0x50,0x43,0x0F,0x9A, + 0x50,0x43,0x0C,0x9A,0x12,0x1B,0x51,0x1A,0xFA,0xF7,0x8A,0xF9,0xC7,0x19,0x04,0x98, + 0x00,0x28,0x01,0xD1,0x30,0x00,0x05,0xE0,0x01,0x28,0x01,0xD1,0x38,0x00,0x01,0xE0, + 0x70,0x00,0xC0,0x1B,0x64,0x21,0xFA,0xF7,0x7B,0xF9,0x07,0x99,0xC9,0x07,0x0A,0xD0, + 0x10,0x99,0xA1,0x42,0x03,0xDB,0x21,0x18,0x11,0x98,0x01,0x60,0x03,0xE0,0x11,0x99, + 0x20,0x1A,0x40,0x1E,0x08,0x60,0x12,0x98,0x07,0x68,0xAF,0x42,0x01,0xDB,0x78,0x1B, + 0x01,0xE0,0x78,0x1B,0x40,0x1C,0x00,0x28,0x00,0xDC,0x40,0x42,0x64,0x21,0x04,0x00, + 0x4C,0x43,0x0D,0x99,0x26,0x00,0x88,0x42,0x0E,0xDD,0x41,0x1A,0x0E,0x98,0x0D,0x9A, + 0x48,0x43,0x04,0x19,0x08,0x00,0x48,0x43,0x0E,0x99,0x48,0x43,0x0B,0x99,0x49,0x1B, + 0x89,0x1A,0xFA,0xF7,0x4D,0xF9,0x86,0x19,0x03,0x98,0x00,0x28,0x01,0xD1,0x20,0x00, + 0x05,0xE0,0x01,0x28,0x01,0xD1,0x30,0x00,0x01,0xE0,0x60,0x00,0x80,0x1B,0x64,0x21, + 0xFA,0xF7,0x3E,0xF9,0x07,0x99,0x89,0x07,0x09,0xD5,0xAF,0x42,0x03,0xDB,0x29,0x18, + 0x12,0x98,0x01,0x60,0x03,0xE0,0x12,0x99,0x28,0x1A,0x40,0x1E,0x08,0x60,0x0E,0x48, + 0x02,0x99,0x42,0x8C,0x6B,0x46,0x51,0x1A,0x49,0x1E,0x0A,0x04,0x02,0x99,0x12,0x0C, + 0x06,0xC3,0x01,0x8C,0x02,0x98,0x02,0x9A,0x08,0x1A,0x40,0x1E,0x03,0x04,0x11,0xA8, + 0x03,0xC8,0x1B,0x0C,0x00,0xF0,0x54,0xFE,0x13,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47, + 0xA0,0x78,0x00,0x00,0x04,0x0B,0x00,0x20,0x00,0x78,0x00,0x00,0xE0,0x7A,0x00,0x00, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0x30,0x0A,0x00,0x20,0xF0,0xB4,0x05,0x00, + 0x0B,0x4C,0x00,0x20,0xFF,0x26,0x91,0x36,0x82,0x00,0xA3,0x5A,0x12,0x19,0x52,0x88, + 0x5B,0x1B,0x1F,0x00,0x5F,0x43,0x52,0x1A,0x13,0x00,0x53,0x43,0xFA,0x18,0xB2,0x42, + 0x04,0xDB,0x40,0x1C,0x1D,0x28,0xEF,0xD3,0x00,0x20,0xC0,0x43,0xF0,0xBC,0x70,0x47, + 0x08,0x71,0x00,0x00,0xFE,0xB5,0x66,0x4D,0x64,0x48,0x00,0x26,0x29,0x00,0xFF,0x31, + 0x00,0x96,0x42,0x78,0x61,0x31,0x08,0x78,0x00,0x2A,0x28,0xD1,0x00,0x28,0x26,0xD0, + 0x01,0x24,0x0A,0x20,0x60,0x43,0x47,0x19,0x38,0x00,0xFF,0x30,0x6B,0x30,0xFD,0xF7, + 0xB1,0xFB,0x00,0x28,0x17,0xD0,0x5B,0x48,0x81,0x7B,0x00,0x98,0x40,0x1C,0x81,0x42, + 0x14,0xD3,0xA9,0x19,0x13,0x22,0x00,0x90,0xFF,0x20,0x92,0x01,0x65,0x30,0x89,0x18, + 0xC0,0x5D,0x3A,0x00,0xFF,0x32,0x48,0x70,0x76,0x1C,0x65,0x32,0x03,0x20,0x01,0x23, + 0x69,0x46,0x00,0xF0,0x33,0xFA,0x64,0x1C,0x09,0x2C,0xDA,0xDB,0x8F,0xE0,0x49,0x78, + 0x00,0x29,0x01,0xD1,0x00,0x28,0xF9,0xD0,0x15,0x20,0x40,0x01,0x00,0x24,0x2E,0x18, + 0x13,0x27,0xBF,0x01,0x28,0x19,0xC0,0x19,0x40,0x78,0x00,0x28,0x3F,0xD0,0x13,0x21, + 0x28,0x18,0x49,0x01,0x41,0x18,0xC9,0x7E,0x00,0x29,0x02,0xD0,0x32,0x7B,0x00,0x2A, + 0x14,0xD0,0x05,0x21,0xC9,0x01,0x40,0x18,0x00,0x99,0x00,0x79,0x49,0x1C,0x00,0x91, + 0x0A,0x21,0x48,0x43,0x42,0x19,0xFF,0x32,0xBF,0x32,0x02,0x20,0x03,0x23,0x69,0x46, + 0x00,0xF0,0x04,0xFA,0x20,0x00,0x14,0x2C,0x1E,0xD0,0x1A,0xE0,0x0A,0x20,0x41,0x43, + 0x48,0x19,0x02,0x90,0xFF,0x30,0x6B,0x30,0xFD,0xF7,0x5C,0xFB,0x00,0x28,0x13,0xD0, + 0x00,0x98,0x02,0x9A,0x40,0x1C,0xFF,0x32,0x00,0x90,0x65,0x32,0x03,0x20,0x02,0x23, + 0x69,0x46,0x00,0xF0,0xEB,0xF9,0x07,0xE0,0x29,0x18,0xC9,0x19,0x8A,0x78,0x40,0x1C, + 0x4A,0x70,0x08,0x28,0xF8,0xDB,0x64,0x1E,0x64,0x1C,0x08,0x2C,0xBA,0xDB,0x01,0x24, + 0x23,0x49,0x13,0x22,0x08,0x19,0x52,0x01,0x80,0x18,0xC0,0x7E,0x00,0x22,0x01,0x92, + 0x00,0x28,0x31,0xD0,0x32,0x7B,0x00,0x2A,0x2E,0xD1,0x0A,0x22,0x50,0x43,0x45,0x18, + 0x28,0x00,0xFF,0x30,0x6B,0x30,0xFD,0xF7,0x2D,0xFB,0x00,0x28,0x24,0xD0,0x19,0x48, + 0x00,0x9B,0x80,0x7B,0x5B,0x1C,0x98,0x42,0x21,0xD3,0x15,0x4A,0x00,0x20,0x11,0x18, + 0xC9,0x19,0x49,0x78,0xA1,0x42,0x0B,0xD0,0x00,0x29,0x06,0xD1,0xFF,0x21,0x65,0x31, + 0x49,0x5D,0x10,0x18,0xC0,0x19,0x41,0x70,0x05,0xE0,0x40,0x1C,0x08,0x28,0xEE,0xDB, + 0x01,0x98,0x00,0x28,0x08,0xD0,0x2A,0x00,0xFF,0x32,0x00,0x93,0x65,0x32,0x03,0x20, + 0x01,0x23,0x69,0x46,0x00,0xF0,0xA2,0xF9,0x64,0x1C,0x09,0x2C,0xC0,0xDB,0x00,0x98, + 0x00,0xF0,0x92,0xFC,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0xB0,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00,0xFE,0xB5,0x51,0x48,0x36,0x25,0x45,0x5F, + 0x51,0x48,0x50,0x4F,0xC4,0x78,0x00,0x26,0x02,0x94,0x00,0x79,0x84,0x46,0x4C,0x48, + 0x80,0x30,0x82,0x7D,0x86,0x46,0x4D,0x48,0x81,0x7E,0xC8,0x07,0x0A,0xD0,0x88,0x07, + 0x03,0xD5,0x64,0x1E,0x24,0x06,0x24,0x0E,0x04,0xE0,0x60,0x46,0x40,0x1E,0x00,0x06, + 0x00,0x0E,0x84,0x46,0x00,0x21,0x27,0xE0,0x00,0x20,0x22,0xE0,0x91,0x42,0x05,0xD2, + 0x90,0x42,0x1D,0xD3,0xA3,0x1A,0x5B,0x1E,0x83,0x42,0x19,0xD3,0x63,0x46,0x9B,0x1A, + 0x5B,0x1E,0x8B,0x42,0x01,0xD2,0x90,0x42,0x12,0xD3,0x8B,0x42,0x03,0xD2,0xA3,0x1A, + 0x5B,0x1E,0x83,0x42,0x0C,0xD3,0x02,0x9B,0x4B,0x43,0x1B,0x18,0x9B,0x00,0xFB,0x58, + 0x1B,0x01,0x1B,0x0D,0xB3,0x42,0x00,0xDD,0x1E,0x00,0xAB,0x42,0x00,0xDA,0x1D,0x00, + 0x40,0x1C,0xA0,0x42,0xDA,0xD3,0x49,0x1C,0x61,0x45,0xD5,0xD3,0x1E,0x24,0x70,0x46, + 0x04,0x5F,0x2B,0x4B,0x2E,0x48,0xA0,0x33,0xC0,0x88,0x06,0x22,0x9A,0x5E,0x40,0x06, + 0x07,0xD5,0x70,0x46,0x80,0x8A,0x01,0x19,0x0C,0x04,0x10,0x1A,0x24,0x14,0x02,0x04, + 0x12,0x14,0x26,0x48,0x80,0x30,0xC1,0x6A,0xA6,0x42,0x05,0xDD,0x74,0x46,0x64,0x8B, + 0xA1,0x42,0x05,0xDA,0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E,0xC1,0x62, + 0x1E,0x49,0x80,0x31,0x09,0x6B,0x95,0x42,0x04,0xDA,0x5A,0x88,0x91,0x42,0x05,0xDA, + 0x49,0x1C,0x02,0xE0,0x00,0x29,0x01,0xDD,0x49,0x1E,0x01,0x63,0x74,0x46,0xA4,0x8B, + 0xC5,0x6A,0x01,0x22,0x11,0x00,0xA5,0x42,0x00,0xDC,0x00,0x21,0x9B,0x88,0x00,0x6B, + 0x98,0x42,0x00,0xDC,0x00,0x22,0x00,0x20,0x6B,0x46,0x18,0x70,0x59,0x70,0x00,0x29, + 0x9A,0x70,0x02,0xD0,0x00,0x2A,0x00,0xD0,0x01,0x20,0x6B,0x46,0x11,0x43,0xD8,0x70, + 0x01,0xD0,0x01,0x20,0x00,0xE0,0x00,0x20,0x6B,0x46,0x18,0x71,0x70,0x46,0x00,0x7B, + 0x69,0x46,0x08,0x5C,0x00,0x28,0x00,0xD0,0x80,0x20,0xFE,0xBC,0x08,0xBC,0x18,0x47, + 0x00,0x78,0x00,0x00,0x00,0x02,0x10,0x40,0xF8,0x0A,0x00,0x20,0x30,0x0A,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xF8,0xB5,0x22,0x48,0x22,0x4C,0xC0,0x88,0x01,0x23,0x22,0x4D, + 0x41,0x06,0x09,0x20,0x80,0x01,0x21,0x4F,0x21,0x4E,0x5B,0x05,0x20,0x18,0x00,0x29, + 0x0E,0xDA,0x81,0x69,0x69,0x61,0xC1,0x69,0xA9,0x61,0x41,0x6A,0x99,0x43,0xE9,0x61, + 0x81,0x6A,0x29,0x62,0x01,0x6A,0xE9,0x60,0x80,0x6B,0x28,0x61,0xE0,0x6A,0x0E,0xE0, + 0x18,0x49,0x4A,0x69,0x6A,0x61,0x8A,0x69,0xAA,0x61,0x0A,0x6A,0x9A,0x43,0xEA,0x61, + 0x4A,0x6A,0x2A,0x62,0xC9,0x69,0xE9,0x60,0x40,0x6B,0x28,0x61,0xA0,0x6A,0xFF,0x21, + 0x41,0x31,0x48,0x43,0x39,0x00,0xFA,0xF7,0x15,0xF8,0xB0,0x62,0x30,0x7B,0x00,0x28, + 0x03,0xD0,0x0D,0x48,0xE8,0x60,0x0D,0x48,0x28,0x61,0x60,0x6A,0xFF,0x21,0x41,0x31, + 0x48,0x43,0x39,0x00,0xFA,0xF7,0x06,0xF8,0x70,0x62,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0xF0,0x05,0x00,0x20,0x00,0x78,0x00,0x00,0xC0,0x90,0x00,0x40,0x10,0x27,0x00,0x00, + 0xF8,0x0A,0x00,0x20,0x80,0x79,0x00,0x00,0x41,0xF2,0x01,0x00,0x10,0x00,0x10,0x00, + 0x0E,0x48,0x0F,0x4A,0x43,0x78,0x0F,0x49,0xD0,0x1D,0xC9,0x88,0xFF,0x32,0xF9,0x30, + 0xC1,0x32,0x02,0x2B,0x04,0xD9,0x12,0x6A,0x49,0x06,0x0C,0xD4,0xC2,0x69,0x0A,0xE0, + 0x02,0x2B,0x04,0xD1,0xD2,0x69,0x49,0x06,0x05,0xD4,0x82,0x69,0x03,0xE0,0x92,0x69, + 0x49,0x06,0x00,0xD4,0x42,0x69,0x04,0x48,0x42,0x62,0x70,0x47,0x50,0x07,0x00,0x20, + 0x00,0x78,0x00,0x00,0xF0,0x05,0x00,0x20,0xC0,0x90,0x00,0x40,0xF0,0xB4,0x0E,0x48, + 0x0E,0x49,0xC0,0x88,0x03,0x23,0x01,0x26,0x42,0x06,0x0D,0x48,0x0D,0x4D,0x0E,0x4F, + 0x9B,0x03,0xC8,0x24,0xF6,0x03,0x00,0x2A,0x01,0x61,0x01,0xDA,0x0B,0x49,0x01,0xE0, + 0x0A,0x49,0x32,0x39,0x41,0x61,0x83,0x61,0xC4,0x61,0x03,0x62,0x45,0x62,0x86,0x62, + 0xC7,0x62,0xF0,0xBC,0x70,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0x00,0x80,0x00,0x03, + 0x40,0xA1,0x00,0x40,0x2C,0xC1,0x00,0x00,0x64,0x80,0x00,0x00,0x90,0x01,0x01,0x00, + 0x70,0xB5,0x01,0x25,0x6D,0x03,0x28,0x00,0xFA,0xF7,0xDA,0xFA,0x16,0x48,0x04,0x68, + 0x28,0x00,0xFA,0xF7,0xCD,0xFA,0x15,0x4D,0xE2,0x06,0xD2,0x0E,0xE0,0x04,0x14,0x49, + 0xC0,0x0E,0x2A,0x71,0xE8,0x70,0x0B,0x7D,0x12,0x48,0x83,0x76,0x4B,0x7D,0xC3,0x76, + 0x83,0x7E,0x11,0x48,0xDC,0x07,0x0A,0xD0,0x9B,0x07,0x04,0xD5,0xEA,0x78,0x52,0x1E, + 0x02,0x72,0x00,0x22,0x02,0xE0,0x52,0x1E,0x02,0x72,0x01,0x22,0x6A,0x71,0x8A,0x7D, + 0x42,0x72,0xCA,0x7D,0x82,0x72,0x0A,0x7E,0xC2,0x72,0x4A,0x7E,0x02,0x73,0x89,0x7E, + 0x41,0x73,0x70,0xBC,0x08,0xBC,0x18,0x47,0x40,0x90,0x00,0x40,0xF8,0x0A,0x00,0x20, + 0x00,0x78,0x00,0x00,0x30,0x0A,0x00,0x20,0x70,0x0A,0x00,0x20,0xF8,0xB5,0x05,0x00, + 0x0E,0x00,0x14,0x00,0x19,0x00,0x10,0x00,0xFA,0xF7,0x96,0xFF,0x00,0x28,0x05,0xD0, + 0x30,0x68,0x40,0x1E,0x30,0x60,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x2D,0x48,0x80,0x7E, + 0xC0,0x07,0x26,0xD0,0xE0,0x79,0x05,0x28,0x21,0xD0,0x09,0x28,0x21,0xD1,0x2A,0x49, + 0x6D,0x08,0x6D,0x00,0x23,0x78,0x01,0x20,0x8C,0x46,0x13,0xE0,0x0A,0x22,0x01,0x00, + 0x51,0x43,0x26,0x4A,0x89,0x18,0x0A,0x00,0xFF,0x32,0xA1,0x32,0x97,0x7F,0xBB,0x42, + 0x07,0xD1,0xFF,0x31,0xC1,0x31,0x0F,0x88,0x67,0x80,0xD2,0x7F,0x62,0x70,0x49,0x88, + 0xA1,0x80,0x40,0x1C,0x61,0x46,0x49,0x78,0x81,0x42,0xE7,0xDA,0x01,0xE0,0x01,0x20, + 0x05,0x43,0x0F,0x20,0xA9,0x07,0x80,0x06,0x81,0x43,0x20,0x78,0x3F,0x22,0x92,0x02, + 0x00,0x07,0x80,0x08,0x01,0x43,0x16,0x48,0x01,0x40,0x60,0x88,0x80,0x05,0x80,0x09, + 0x01,0x43,0x60,0x78,0x91,0x43,0x80,0x06,0x00,0x0C,0x01,0x43,0x08,0x04,0x80,0x0E, + 0x0A,0x28,0x09,0xD2,0x40,0x1C,0x0A,0x23,0x58,0x43,0x3F,0x28,0x00,0xDD,0x3F,0x20, + 0x80,0x06,0x91,0x43,0x00,0x0C,0x01,0x43,0x88,0x0A,0xA1,0x88,0x80,0x02,0x01,0x22, + 0x89,0x05,0x89,0x0D,0x08,0x43,0x31,0x68,0x52,0x07,0x89,0x00,0x89,0x18,0x48,0x60, + 0xA1,0xE7,0x00,0x00,0x30,0x0A,0x00,0x20,0x50,0x07,0x00,0x20,0xF0,0x05,0x00,0x20, + 0xFF,0xFF,0x00,0xFC,0x0E,0x49,0x10,0xB4,0x48,0x7B,0x00,0x28,0x10,0xD0,0x00,0x09, + 0x00,0x01,0x00,0x23,0x01,0x22,0x40,0x28,0x0C,0xD0,0x80,0x28,0x08,0xD1,0x4A,0x72, + 0x8A,0x72,0x08,0x48,0xCA,0x72,0xCA,0x71,0x00,0x78,0x00,0x28,0x06,0xD1,0x0B,0x73, + 0x10,0xBC,0x70,0x47,0x8B,0x71,0xCA,0x71,0x0B,0x72,0xF9,0xE7,0x0A,0x73,0xF7,0xE7, + 0xF8,0x0A,0x00,0x20,0xA0,0x7A,0x00,0x00,0xF8,0xB5,0x06,0x9F,0x07,0x9D,0x0C,0x00, + 0x1E,0x00,0x88,0x42,0x09,0xD3,0x21,0x00,0x10,0x00,0xF9,0xF7,0xE9,0xFD,0x38,0x80, + 0x21,0x00,0x30,0x00,0xF9,0xF7,0xE4,0xFD,0x28,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47, + 0xF8,0xB5,0x08,0xAD,0x60,0xCD,0x04,0x00,0x06,0x98,0x91,0x42,0x04,0xDA,0x65,0x80, + 0xA6,0x80,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x99,0x42,0x02,0xDB,0x60,0x80,0x07,0x98, + 0x0F,0xE0,0x8F,0x1A,0x40,0x1B,0x78,0x43,0x99,0x1A,0x00,0x91,0xF9,0xF7,0xC8,0xFD, + 0x40,0x19,0x60,0x80,0x07,0x98,0x00,0x99,0x80,0x1B,0x78,0x43,0xF9,0xF7,0xC0,0xFD, + 0x80,0x19,0xA0,0x80,0xE5,0xE7,0x00,0x00,0xF0,0xB4,0x8C,0x79,0x14,0x4B,0x00,0x26, + 0x22,0x07,0x92,0x08,0x1A,0x40,0xCB,0x79,0x92,0x0A,0x92,0x02,0x5B,0x07,0x09,0xD5, + 0x10,0x4D,0xAB,0x89,0x00,0x2B,0x05,0xD0,0x9F,0x05,0xBF,0x0D,0x3A,0x43,0x64,0x00, + 0x64,0x19,0xE3,0x81,0x3F,0x23,0x9B,0x02,0x9A,0x43,0xCB,0x79,0x80,0x00,0x9B,0x06, + 0x1B,0x0C,0x1A,0x43,0x01,0x23,0x5B,0x07,0xC0,0x18,0x42,0x60,0xC8,0x79,0xC0,0x06, + 0x80,0x0F,0x03,0xD0,0x04,0x48,0x01,0x21,0xC1,0x75,0x06,0x76,0xF0,0xBC,0x70,0x47, + 0xFF,0xFF,0x00,0xFC,0xF0,0x05,0x00,0x20,0x30,0x0A,0x00,0x20,0x30,0xB4,0x0E,0x4D, + 0x0C,0x4C,0x2D,0x78,0x68,0x43,0x40,0x18,0x45,0x00,0x60,0x5B,0x01,0x06,0x00,0x0A, + 0x09,0x0E,0x82,0x18,0xC9,0x18,0x00,0x20,0x4B,0x1E,0xC0,0x43,0xFF,0x2B,0x06,0xD2, + 0x53,0x1E,0xFF,0x2B,0x03,0xD2,0x10,0x02,0x08,0x43,0x60,0x53,0x00,0x20,0x30,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0x10,0xB4,0x05,0x4C, + 0x03,0x4B,0x24,0x78,0x60,0x43,0x40,0x18,0x40,0x00,0x1A,0x52,0x10,0xBC,0x70,0x47, + 0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0x30,0xB4,0x0E,0x4B,0x0C,0x4C,0x1B,0x78, + 0x58,0x43,0x40,0x18,0x43,0x00,0xE0,0x5A,0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A, + 0x82,0x18,0x00,0x20,0x4D,0x1E,0xC0,0x43,0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D, + 0x03,0xD2,0x10,0x02,0x08,0x43,0xE0,0x52,0x00,0x20,0x30,0xBC,0x70,0x47,0x00,0x00, + 0x00,0x00,0x10,0x40,0xFB,0x0A,0x00,0x20,0xF0,0xB4,0x15,0x4A,0x15,0x4B,0x52,0x7D, + 0x13,0x4F,0x00,0x21,0x16,0x02,0x16,0x43,0x1A,0x78,0x10,0x4D,0x42,0x43,0x20,0x3F, + 0x12,0xE0,0xBB,0x7D,0x8B,0x42,0x0D,0xD0,0xFB,0x7D,0x8B,0x42,0x0A,0xD0,0x3B,0x7E, + 0x8B,0x42,0x07,0xD0,0x7B,0x7E,0x8B,0x42,0x04,0xD0,0xBB,0x7E,0x8B,0x42,0x01,0xD0, + 0x53,0x00,0xEE,0x52,0x52,0x1C,0x49,0x1C,0x06,0x4B,0x04,0x00,0x1B,0x78,0x5C,0x43, + 0xE3,0x18,0x93,0x42,0xE5,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0x20,0x78,0x00,0x00,0xFB,0x0A,0x00,0x20,0xF0,0xB4,0x14,0x4A,0x13,0x4B,0x52,0x7D, + 0x00,0x21,0x11,0x4C,0x15,0x02,0x15,0x43,0x11,0x4E,0x20,0x3B,0x13,0xE0,0x9A,0x7D, + 0x8A,0x42,0x0D,0xD0,0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E,0x8A,0x42,0x07,0xD0, + 0x5A,0x7E,0x8A,0x42,0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0,0x42,0x00,0xA5,0x52, + 0x32,0x78,0x80,0x18,0x49,0x1C,0x07,0x4A,0x37,0x78,0x12,0x78,0x7A,0x43,0x82,0x42, + 0xE5,0xD8,0xF0,0xBC,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40,0x20,0x78,0x00,0x00, + 0xFB,0x0A,0x00,0x20,0xFC,0x0A,0x00,0x20,0x02,0x04,0x04,0x49,0x02,0x43,0x00,0x20, + 0x40,0x1C,0x04,0xC1,0x80,0x28,0xFB,0xD3,0x70,0x47,0x00,0x00,0x00,0x00,0x10,0x40, + 0xF8,0xB5,0x03,0x00,0x1E,0x49,0x05,0x20,0xC0,0x01,0x0A,0x18,0x0B,0x20,0x80,0x01, + 0x0D,0x18,0xC0,0x31,0x08,0x6A,0x19,0x4C,0x00,0x90,0x4F,0x6A,0x0E,0x69,0x28,0x68, + 0x00,0xF0,0x0E,0xFA,0x06,0x04,0x0A,0x12,0x15,0x1F,0x26,0x1C,0xC8,0x68,0x20,0x62, + 0x50,0x6B,0x60,0x62,0x02,0x20,0x04,0xE0,0xC8,0x69,0x20,0x62,0x68,0x68,0x60,0x62, + 0x04,0x20,0xE0,0x62,0x00,0x98,0x11,0xE0,0x26,0x62,0x90,0x6B,0x02,0xE0,0x48,0x69, + 0x20,0x62,0xD0,0x6B,0x60,0x62,0x04,0x20,0xE0,0x62,0x67,0x63,0xF8,0xBC,0x08,0xBC, + 0x18,0x47,0x26,0x62,0x60,0x62,0x04,0x20,0xE0,0x62,0x88,0x6A,0x60,0x63,0xF5,0xE7, + 0x89,0x69,0x21,0x62,0x60,0x62,0x05,0x20,0xE0,0x62,0xEF,0xE7,0x80,0x90,0x00,0x40, + 0x00,0x78,0x00,0x00,0x07,0x4A,0x10,0xB5,0xD1,0x88,0x40,0x23,0x00,0x28,0x01,0xD0, + 0x19,0x43,0x00,0xE0,0x99,0x43,0xD1,0x80,0xFF,0xF7,0x14,0xFD,0x10,0xBC,0x08,0xBC, + 0x18,0x47,0x00,0x00,0xF0,0x05,0x00,0x20,0xFE,0xB5,0x41,0x4C,0x05,0x00,0x27,0x6A, + 0x0E,0x00,0x60,0x6A,0x02,0x90,0x60,0x6B,0x01,0x90,0xE0,0x6A,0x00,0x90,0x00,0x20, + 0xFF,0xF7,0x9E,0xFF,0x3B,0x48,0x20,0x62,0x22,0x20,0x60,0x62,0x07,0x20,0x40,0x02, + 0x60,0x63,0x02,0x20,0xE0,0x62,0x00,0x20,0xFB,0xF7,0xDA,0xFC,0x36,0x48,0x00,0x7A, + 0x00,0x28,0x01,0xD0,0xFE,0xF7,0xE6,0xF9,0xFB,0xF7,0x1E,0xFD,0x2C,0x00,0x46,0xE0, + 0x68,0x1E,0x84,0x42,0x01,0xD1,0xFB,0xF7,0x41,0xFD,0xFB,0xF7,0xE3,0xFC,0xFB,0xF7, + 0x91,0xFD,0x00,0x2E,0x2E,0xD1,0xA8,0x00,0x05,0x21,0xF9,0xF7,0x23,0xFD,0xA0,0x42, + 0x03,0xD8,0x01,0x22,0x11,0x00,0x04,0x20,0x21,0xE0,0x68,0x00,0x28,0x18,0x05,0x21, + 0xF9,0xF7,0x18,0xFD,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00,0x03,0x20,0x16,0xE0, + 0x68,0x00,0x05,0x21,0xF9,0xF7,0x0E,0xFD,0xA0,0x42,0x03,0xD8,0x01,0x22,0x11,0x00, + 0x02,0x20,0x0C,0xE0,0x05,0x21,0x28,0x00,0xF9,0xF7,0x04,0xFD,0xA0,0x42,0x03,0xD8, + 0x01,0x22,0x11,0x00,0x10,0x00,0x02,0xE0,0x01,0x22,0x11,0x00,0x00,0x20,0xFB,0xF7, + 0x95,0xFA,0x0C,0xE0,0x68,0x00,0x03,0x21,0xF9,0xF7,0xF4,0xFC,0xA0,0x42,0xDB,0xD9, + 0x03,0x21,0x28,0x00,0xF9,0xF7,0xEE,0xFC,0xA0,0x42,0xE9,0xD8,0xDE,0xE7,0x64,0x1E, + 0xB6,0xD2,0x0E,0x48,0x44,0x88,0x03,0xE0,0xFB,0xF7,0x9C,0xFC,0xFB,0xF7,0x4A,0xFD, + 0x64,0x1E,0xF9,0xD2,0xFB,0xF7,0xC0,0xFC,0x05,0x48,0x07,0x62,0x02,0x99,0x41,0x62, + 0x01,0x99,0x41,0x63,0x00,0x99,0xC1,0x62,0xFE,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0x80,0x90,0x00,0x40,0x01,0x02,0x00,0x00,0x80,0x78,0x00,0x00,0xE0,0x7A,0x00,0x00, + 0x30,0xB4,0x0D,0x4D,0xEC,0x7B,0x00,0x2C,0x13,0xD0,0x02,0x68,0x0B,0x68,0xA4,0x07, + 0x03,0xD5,0x2C,0x8C,0xA2,0x1A,0x52,0x1E,0x02,0x60,0xEC,0x7B,0x64,0x07,0x03,0xD5, + 0x6C,0x8C,0xE3,0x1A,0x5B,0x1E,0x0B,0x60,0xEC,0x7B,0xE4,0x07,0x01,0xD0,0x03,0x60, + 0x0A,0x60,0x30,0xBC,0x70,0x47,0x00,0x00,0x00,0x78,0x00,0x00,0x02,0x49,0x00,0x03, + 0x40,0x18,0xC0,0x68,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x49,0x01,0x20, + 0x08,0x70,0x70,0x47,0xAD,0x0B,0x00,0x20,0x30,0xB4,0x05,0x03,0x05,0x48,0x02,0x9C, + 0x28,0x18,0x02,0x60,0x41,0x60,0x00,0x2B,0x00,0xD0,0x03,0x61,0x84,0x60,0x30,0xBC, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x02,0x4A,0x00,0x03,0x80,0x18,0x01,0x60, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68, + 0xFF,0x22,0x01,0x32,0x11,0x43,0x81,0x60,0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40, + 0x01,0x03,0x04,0x48,0x08,0x18,0x81,0x68,0xFF,0x22,0x01,0x32,0x91,0x43,0x81,0x60, + 0x70,0x47,0x00,0x00,0x00,0x20,0x00,0x40,0x0F,0x49,0x89,0x7B,0x81,0x42,0x00,0xD2, + 0x08,0x00,0x01,0x22,0x52,0x07,0x01,0x28,0x0C,0xD1,0x91,0x68,0x8B,0x0F,0xDB,0x07, + 0x04,0xD0,0x89,0x00,0x89,0x08,0x83,0x07,0xC9,0x18,0x01,0xE0,0x89,0x00,0x89,0x08, + 0x51,0x60,0x07,0xE0,0x01,0x28,0x05,0xD9,0x01,0x21,0xC9,0x07,0x83,0x05,0x9B,0x0D, + 0x19,0x43,0xF5,0xE7,0x10,0x60,0x70,0x47,0x00,0x78,0x00,0x00,0xF8,0xB5,0x17,0x48, + 0x00,0x24,0x40,0x78,0x00,0x28,0x25,0xD0,0x15,0x4D,0x13,0x26,0x00,0x20,0xB6,0x01, + 0xAB,0x19,0x12,0xE0,0x81,0x00,0x49,0x19,0x89,0x19,0xCA,0x68,0x97,0x0F,0xFF,0x07, + 0x0A,0xD0,0x92,0x00,0x01,0x27,0x92,0x08,0xFF,0x07,0xD2,0x19,0x64,0x1C,0xCA,0x60, + 0xA1,0x00,0xBF,0x08,0xC9,0x19,0x4A,0x60,0x40,0x1C,0x99,0x7A,0x81,0x42,0xE9,0xDC, + 0x08,0x48,0x09,0x22,0x00,0x21,0xFE,0xF7,0xC7,0xF8,0x20,0x00,0xFF,0xF7,0xB4,0xFF, + 0xFC,0xF7,0xAA,0xFC,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00,0x50,0x07,0x00,0x20, + 0xF0,0x05,0x00,0x20,0xB1,0x0A,0x00,0x20,0x08,0x48,0x10,0xB5,0x04,0x04,0x24,0x0C, + 0x07,0x49,0x00,0x22,0x20,0x00,0xF9,0xF7,0x25,0xFC,0x05,0x4A,0x05,0x49,0x20,0x00, + 0x00,0x23,0xF9,0xF7,0x27,0xFC,0x10,0xBC,0x08,0xBC,0x18,0x47,0x00,0x78,0x00,0x00, + 0x00,0x03,0x00,0x00,0xC8,0x02,0x00,0x20,0x70,0xB5,0x05,0x00,0x08,0x48,0x00,0x22, + 0x04,0x04,0x24,0x0C,0x40,0x21,0x20,0x00,0xF9,0xF7,0x0C,0xFC,0x40,0x22,0x29,0x00, + 0x20,0x00,0x00,0x23,0xF9,0xF7,0x0E,0xFC,0x70,0xBC,0x08,0xBC,0x18,0x47,0x00,0x00, + 0xC0,0x75,0x00,0x00,0x02,0x4B,0x58,0x60,0x99,0x60,0x1A,0x60,0x70,0x47,0x00,0x00, + 0x00,0x30,0x00,0x40,0x01,0x04,0x00,0xB5,0x03,0x48,0x02,0x22,0x09,0x0C,0xFF,0xF7, + 0xF1,0xFF,0x08,0xBC,0x18,0x47,0x00,0x00,0xE1,0x04,0x00,0x00,0x02,0x48,0x01,0x68, + 0x01,0x22,0x11,0x43,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x48,0x01,0x68, + 0x49,0x08,0x49,0x00,0x01,0x60,0x70,0x47,0x00,0x30,0x00,0x40,0x02,0x49,0x02,0x22, + 0x0A,0x61,0x88,0x60,0x70,0x47,0x00,0x00,0x00,0x30,0x00,0x40,0x01,0x49,0x01,0x20, + 0x08,0x70,0x70,0x47,0xAC,0x0B,0x00,0x20,0x00,0x04,0x00,0x0C,0x01,0x21,0x89,0x07, + 0x08,0x61,0x70,0x47,0x01,0x20,0x80,0x07,0x81,0x68,0x82,0x15,0x11,0x43,0x81,0x60, + 0x70,0x47,0x01,0x21,0x89,0x07,0x88,0x68,0x8A,0x15,0x90,0x43,0x88,0x60,0x70,0x47, + 0x70,0xB4,0x03,0xAC,0x30,0xCC,0x06,0x68,0x96,0x42,0x01,0xDB,0x32,0x00,0x00,0xE0, + 0x02,0x60,0x9A,0x42,0x00,0xDD,0x03,0x60,0x08,0x68,0xA0,0x42,0x00,0xDA,0x0C,0x60, + 0x08,0x68,0xA8,0x42,0x00,0xDD,0x0D,0x60,0x70,0xBC,0x70,0x47,0x00,0x47,0x00,0x00, + 0x78,0x47,0xC0,0x46,0x01,0xC0,0x5E,0xE5,0x0C,0x00,0x53,0xE1,0x03,0x30,0xDE,0x37, + 0x0C,0x30,0xDE,0x27,0x83,0xC0,0x8E,0xE0,0x1C,0xFF,0x2F,0xE1,0x10,0xB5,0xF9,0xF7, + 0xA1,0xFB,0x10,0xBC,0x08,0xBC,0x18,0x47,0x12,0x00,0x13,0x00,0xA0,0x00,0x13,0x00, + 0x2E,0x01,0x13,0x00,0x2E,0x01,0x3E,0x00,0x2E,0x01,0x69,0x00,0x50,0x00,0x78,0x00, + 0xA0,0x00,0x78,0x00,0x2E,0x01,0x94,0x00,0x2E,0x01,0xBF,0x00,0x2E,0x01,0xEB,0x00, + 0xF0,0x00,0xF0,0x00,0xA0,0x00,0xF0,0x00,0x50,0x00,0xF0,0x00,0x12,0x00,0x0C,0x01, + 0x12,0x00,0x37,0x01,0x12,0x00,0x62,0x01,0x12,0x00,0x8E,0x01,0x12,0x00,0xCD,0x01, + 0x30,0x00,0xAE,0x01,0x50,0x00,0xCD,0x01,0x70,0x00,0xAE,0x01,0x90,0x00,0xCD,0x01, + 0xB0,0x00,0xAE,0x01,0xD0,0x00,0xCD,0x01,0xF0,0x00,0xAE,0x01,0x10,0x01,0xCD,0x01, + 0x2E,0x01,0xAE,0x01,0xF0,0x00,0x68,0x01,0xA0,0x00,0x68,0x01,0x89,0x08,0x49,0x1E, + 0xC9,0x04,0x01,0x22,0xC9,0x08,0xD2,0x07,0x89,0x18,0x40,0x04,0x40,0x0C,0x01,0x43, + 0x03,0x48,0x41,0x61,0x41,0x69,0x00,0x29,0xFC,0xDB,0x80,0x6B,0x70,0x47,0x00,0x00, + 0x00,0x70,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0B,0x30,0x0B,0x30,0x01,0x03,0x03,0x00,0x01,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, + 0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,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,0xFF,0x00,0x00,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0xFF,0xFC,0x0F,0x00,0x7F,0xFC,0x0F,0x01,0x3F,0xFE,0x0F,0x02,0x1F,0xFF,0x0F,0x03, + 0x8F,0xFF,0x0F,0x04,0xC7,0xFF,0x0F,0x05,0xE3,0xFF,0x0F,0x06,0xF3,0xFB,0x0F,0x07, + 0xFB,0xF3,0x0F,0x08,0xFF,0xE3,0x0F,0x09,0xFF,0xC7,0x0F,0x0A,0xFF,0x8F,0x0F,0x0B, + 0xFF,0x1F,0x0F,0x0C,0xFF,0x3F,0x0E,0x0D,0xFF,0x7F,0x0C,0x0E,0xFF,0xFF,0x0C,0x4F, + 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x13, + 0x00,0x01,0x90,0x08,0x80,0x02,0x80,0x0A,0x40,0x01,0x70,0x0C,0xA0,0x00,0x60,0x0E, + 0x50,0x00,0x50,0x10,0x28,0x00,0x40,0x12,0x14,0x00,0x30,0x1C,0x08,0x04,0x20,0x1E, + 0x04,0x08,0xA0,0x20,0x00,0x14,0xB0,0x22,0x00,0x28,0xC0,0x00,0x00,0x50,0xD0,0x00, + 0x00,0xA0,0xE0,0x00,0x00,0x40,0xF1,0x00,0x00,0x80,0x02,0x01,0x00,0x00,0x11,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xF0,0xC3,0x03,0x00,0x20,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x03,0x03,0x00,0x01,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x05,0x08,0x02,0x00, + 0x00,0x00,0x00,0x00,0x01,0x02,0x01,0x08,0xFF,0xFF,0xFF,0x00,0x00,0xC8,0x05,0x1E, + 0x40,0x01,0xE0,0x01,0xE8,0x03,0x00,0x00,0x74,0x27,0x00,0x00,0x3C,0x28,0x00,0x00, + 0xE0,0x93,0x04,0x00,0x01,0x5A,0xA4,0x06,0xA4,0x06,0x00,0x00,0x04,0xC8,0x65,0x65, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x6E,0x00,0x7A,0x00,0x01,0x00,0x04,0x00, + 0x78,0x00,0xA0,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x15,0x04,0x02,0x32,0x00, + 0x2C,0x01,0x2C,0x01,0x00,0x00,0x00,0x00,0x50,0x00,0x5A,0x00,0x32,0x00,0xB8,0x0B, + 0x50,0x00,0x5A,0x00,0x32,0x00,0xE8,0x03,0x64,0x00,0x32,0x00,0x00,0x00,0x00,0x00, + 0x04,0x01,0x05,0x0F,0x01,0x01,0x04,0x00,0x01,0x05,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00, + 0x00,0x0E,0x00,0x00,0x60,0x0F,0x00,0x00,0x60,0x0F,0x00,0x00,0x9D,0x39,0xC8,0x00, + 0x28,0x00,0x1D,0x00,0x64,0x46,0x64,0x46,0x32,0x00,0x32,0x00,0x64,0x00,0xC8,0x00, + 0x64,0x00,0x64,0x00,0x01,0x00,0x0A,0x02,0x3C,0x00,0x2C,0x01,0x2C,0x01,0x2C,0x01, + 0x90,0x01,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00, + 0x0A,0x02,0x32,0x00,0xB8,0x0B,0xBC,0x02,0x0A,0x00,0x32,0x32,0x96,0x32,0x40,0x64, + 0x64,0x64,0xFF,0x00,0x00,0x00,0x5E,0x01,0x3C,0x00,0x1E,0x00,0x28,0xFA,0x0C,0x78, + 0x00,0x05,0x04,0x0A,0x01,0x06,0x20,0x03,0x3C,0x00,0x0A,0x3C,0x00,0x05,0x1E,0x00, + 0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xDC,0x00,0x05,0x02,0x01,0x01,0x01,0x00,0x02,0x03,0x05,0x00,0x03,0x03,0x06,0x06, + 0x09,0x09,0x0C,0x0C,0x0F,0x55,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00,0x41,0xF2,0x01,0x00, + 0x0A,0x0A,0xA8,0x00,0x10,0x5F,0x20,0x3F,0x00,0x00,0x00,0x00,0x3C,0x00,0x5A,0x00, + 0x99,0x19,0xC8,0x00,0x32,0x00,0x1D,0x00,0x64,0x46,0x64,0x46,0x32,0x00,0x32,0x00, + 0x64,0x00,0x64,0x00,0x64,0x00,0x64,0x00,0x01,0x00,0x0A,0x02,0x50,0x00,0x5E,0x01, + 0x5E,0x01,0x5E,0x01,0x90,0x01,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00, + 0xFF,0xFF,0x00,0x00,0x08,0x02,0x32,0x00,0xDC,0x05,0xF4,0x01,0x0A,0x00,0x32,0x32, + 0x96,0x32,0x40,0x64,0x64,0x64,0xFF,0x00,0x00,0x00,0x5E,0x01,0x28,0x00,0x14,0x00, + 0xFF,0xFF,0x0D,0xFF,0x00,0x05,0x04,0x0A,0x02,0x06,0xD0,0x07,0x3C,0x00,0x0F,0x3C, + 0x00,0x05,0x1E,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xDC,0x00,0x05,0x04,0x01,0x01,0x01,0x00,0x04,0x03,0x01,0x00, + 0x04,0x04,0x08,0x08,0x0C,0x0C,0x10,0x10,0x14,0x55,0x01,0x00,0x05,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00, + 0x41,0xF2,0x01,0x00,0x08,0x08,0xA8,0x00,0x20,0x5F,0x20,0x3F,0x00,0x00,0x00,0x00, + 0x32,0x00,0x28,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00, + 0x96,0x00,0x0F,0x00,0x05,0x00,0x00,0x00,0x1E,0x00,0xC8,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x58,0x02,0xBC,0x02,0x00,0x00, + 0x22,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00, + 0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x64,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x14,0x00,0x00,0x5A,0x5A,0x5A,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x28,0x00,0x50,0x00,0x1E,0x00,0x50,0x00,0x28,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x95,0x00,0x00,0x00,0x00,0x00,0x00,0xD0,0x47,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFF,0x0F,0x02,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x10,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x02,0x00,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x60,0x0F,0x00,0x00,0x01,0x00,0x00,0x00,0xFF,0x0F,0xC8,0x00, + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x41,0x42,0x01,0x00, + 0x10,0x00,0x10,0x00,0x96,0x00,0x30,0x00,0x2C,0x01,0xFA,0x00,0x08,0x08,0x88,0x00, + 0x20,0x5F,0x20,0x3F,0xFF,0xFF,0x00,0x00,0x10,0x10,0x08,0x84,0x00,0x00,0xAC,0x0D, + 0x01,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x08,0x20, + 0x51,0x30,0x10,0x00,0x11,0x90,0x01,0x00,0xFF,0xFF,0x0F,0x00,0xFF,0xFF,0x0F,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00, + 0x54,0x55,0x45,0x00,0x10,0x30,0x00,0x00,0x00,0x70,0x01,0x00,0x00,0x00,0x00,0x00, + 0x38,0x31,0x08,0x01,0x70,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x30,0x12,0x14,0x00,0x00,0x1C,0x0C,0x06,0x00, + 0x00,0x04,0x7C,0x74,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x1F,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x80,0x00,0x03,0x64,0x40,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x00,0x00,0x00, + 0x00,0x80,0x00,0x00,0xC8,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x32,0x40,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01, + 0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01, + 0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01, + 0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01, + 0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01,0x44,0x31,0x14,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B, + 0x0D,0x00,0xA0,0xE1,0x10,0xD0,0x9F,0xE5,0x01,0x40,0x2D,0xE9,0x9D,0x01,0x00,0xEB, + 0x01,0x40,0xBD,0xE8,0x00,0xD0,0xA0,0xE1,0x1E,0xFF,0x2F,0xE1,0xF0,0x0F,0x00,0x20, + 0x92,0x10,0x00,0xE0,0x02,0xC0,0x52,0x1E,0xFC,0xD2,0x70,0x47,0xF9,0x49,0xFA,0x48, + 0x10,0xB4,0x41,0x61,0xF9,0x49,0xF8,0x4C,0x01,0x63,0x0F,0x20,0x00,0x06,0x40,0x34, + 0xE0,0x60,0x00,0x20,0x81,0x00,0x0A,0x19,0x11,0x6A,0x40,0x1C,0x8B,0x00,0xC9,0x01, + 0xDB,0x0E,0xC9,0x0E,0x49,0x06,0x1B,0x05,0x19,0x43,0x14,0x28,0x11,0x62,0xF1,0xD3, + 0xED,0x48,0xEF,0x49,0x80,0x30,0x01,0x63,0xEE,0x49,0x41,0x63,0xEE,0x49,0x08,0x69, + 0x40,0x08,0x40,0x00,0x08,0x61,0xEC,0x48,0x40,0x30,0x01,0x68,0xEB,0x49,0x01,0x60, + 0xEB,0x48,0xEC,0x49,0xC8,0x60,0x10,0xBC,0x70,0x47,0xFC,0xB5,0xEA,0x4C,0x02,0x00, + 0x30,0x34,0x18,0xCC,0x00,0x20,0x00,0x94,0xE8,0x4C,0x24,0x7D,0xE4,0x07,0x2D,0xD0, + 0xE7,0x4C,0x25,0x79,0xE6,0x78,0xE5,0x4C,0xAE,0x46,0xA5,0x7D,0x00,0x2E,0x76,0x46, + 0xAC,0x46,0xE5,0x7D,0x01,0x95,0x25,0x7E,0x67,0x7E,0xA4,0x7E,0x10,0xD0,0xB2,0x42, + 0x1C,0xD1,0x8C,0x45,0x08,0xD0,0x01,0x9A,0x8A,0x42,0x05,0xD0,0x8D,0x42,0x03,0xD0, + 0x8F,0x42,0x01,0xD0,0x8C,0x42,0x00,0xD1,0x00,0x98,0xFC,0xBC,0x08,0xBC,0x18,0x47, + 0xB1,0x42,0x0B,0xD1,0x94,0x45,0xF7,0xD0,0x01,0x99,0x91,0x42,0xF4,0xD0,0x95,0x42, + 0xF2,0xD0,0x97,0x42,0xF0,0xD0,0x94,0x42,0xEE,0xD0,0xEE,0xE7,0x18,0x00,0xEC,0xE7, + 0x30,0xB4,0xCF,0x4B,0xCF,0x4C,0x5B,0x78,0x58,0x43,0x40,0x18,0x43,0x00,0xE0,0x5A, + 0x01,0x06,0x09,0x0E,0x89,0x18,0x00,0x0A,0x82,0x18,0x00,0x20,0x4D,0x1E,0xC0,0x43, + 0xFF,0x2D,0x06,0xD2,0x55,0x1E,0xFF,0x2D,0x03,0xD2,0x10,0x02,0x08,0x43,0xE0,0x52, + 0x00,0x20,0x30,0xBC,0x70,0x47,0xF3,0xB5,0xC3,0x48,0x82,0xB0,0x01,0x90,0x00,0x20, + 0x00,0x90,0xB9,0x48,0xC1,0x68,0x01,0x22,0x11,0x43,0xC1,0x60,0xBC,0x4F,0xB6,0x48, + 0xC0,0x68,0xC0,0x07,0xFB,0xD0,0x00,0x24,0x26,0x00,0x25,0xE0,0x00,0x25,0x1F,0xE0, + 0x29,0x00,0x30,0x00,0xFF,0xF7,0x91,0xFF,0x00,0x28,0x17,0xD0,0x79,0x78,0x01,0x9A, + 0x71,0x43,0x49,0x19,0x89,0x00,0x51,0x58,0x09,0x05,0x09,0x0D,0x08,0x1A,0x02,0x99, + 0x00,0x29,0x02,0xD0,0x00,0x28,0x09,0xDA,0x01,0xE0,0x00,0x28,0x06,0xDD,0x03,0x9A, + 0x29,0x00,0x30,0x00,0xFF,0xF7,0xB4,0xFF,0x40,0x1C,0x00,0xD1,0x64,0x1C,0x6D,0x1C, + 0x78,0x78,0x85,0x42,0xDC,0xD3,0x76,0x1C,0xB8,0x78,0x86,0x42,0xD6,0xD3,0xB8,0x78, + 0x79,0x78,0x48,0x43,0xA0,0x42,0x0A,0xD0,0x00,0x98,0x41,0x1C,0x00,0x91,0x01,0x21, + 0x49,0x02,0x88,0x42,0x03,0xD8,0x98,0x48,0xC1,0x68,0xC1,0x60,0xBF,0xE7,0xFF,0xBC, + 0x08,0xBC,0x18,0x47,0xF0,0xB4,0x00,0x21,0x9A,0x4C,0x98,0x4B,0x98,0x4E,0x1E,0x25, + 0x13,0xE0,0x9A,0x7D,0x8A,0x42,0x0D,0xD0,0xDA,0x7D,0x8A,0x42,0x0A,0xD0,0x1A,0x7E, + 0x8A,0x42,0x07,0xD0,0x5A,0x7E,0x8A,0x42,0x04,0xD0,0x9A,0x7E,0x8A,0x42,0x01,0xD0, + 0x42,0x00,0xA5,0x52,0x72,0x78,0x80,0x18,0x49,0x1C,0xB2,0x78,0x77,0x78,0x7A,0x43, + 0x82,0x42,0xE6,0xD8,0xF0,0xBC,0x70,0x47,0xF0,0xB4,0x89,0x4B,0x00,0x21,0x5A,0x78, + 0x1E,0x26,0x88,0x4D,0x42,0x43,0x85,0x4F,0x12,0xE0,0xBB,0x7D,0x8B,0x42,0x0D,0xD0, + 0xFB,0x7D,0x8B,0x42,0x0A,0xD0,0x3B,0x7E,0x8B,0x42,0x07,0xD0,0x7B,0x7E,0x8B,0x42, + 0x04,0xD0,0xBB,0x7E,0x8B,0x42,0x01,0xD0,0x53,0x00,0xEE,0x52,0x52,0x1C,0x49,0x1C, + 0x7B,0x4B,0x04,0x00,0x5B,0x78,0x5C,0x43,0xE3,0x18,0x93,0x42,0xE5,0xD8,0xD9,0xE7, + 0x02,0x04,0x78,0x49,0x02,0x43,0x00,0x20,0x40,0x1C,0x04,0xC1,0x80,0x28,0xFB,0xD3, + 0x70,0x47,0xF1,0xB5,0x72,0x4C,0x70,0x4D,0x21,0x78,0x73,0x4F,0xA8,0x6B,0x00,0x29, + 0x86,0xB0,0x00,0xD0,0x00,0x0C,0x00,0x06,0x00,0x0E,0x01,0x02,0x01,0x43,0x08,0x04, + 0x00,0x0C,0xFF,0xF7,0xE5,0xFF,0x69,0x48,0x00,0x7D,0xC0,0x07,0x08,0xD0,0xE0,0x78, + 0x00,0x28,0x20,0x79,0x02,0xD0,0xFF,0xF7,0xB7,0xFF,0x01,0xE0,0xFF,0xF7,0x92,0xFF, + 0x5D,0x49,0x00,0x20,0x80,0x31,0xC8,0x62,0x61,0x49,0xE8,0x6B,0x09,0x78,0x00,0x29, + 0x08,0xD1,0x5C,0x49,0x00,0x22,0x4A,0x63,0x4A,0x68,0x00,0x07,0x12,0x09,0x12,0x01, + 0x00,0x0F,0x07,0xE0,0x57,0x49,0x00,0x22,0x4A,0x63,0x4A,0x68,0x00,0x03,0x12,0x09, + 0x12,0x01,0x00,0x0F,0x02,0x43,0x4A,0x60,0x03,0x24,0x26,0x1F,0x01,0xE0,0x03,0x2C, + 0x02,0xD1,0x01,0x25,0xED,0x43,0x09,0xE0,0x02,0x2C,0x01,0xD1,0x01,0x25,0x05,0xE0, + 0x01,0x2C,0x01,0xD1,0x35,0x00,0x01,0xE0,0x00,0x2C,0xF7,0xD0,0xE0,0x07,0xC0,0x0F, + 0x29,0x00,0xFF,0xF7,0x10,0xFF,0x64,0x1E,0xE9,0xD5,0x49,0x48,0x48,0x4D,0x00,0x78, + 0x0C,0x35,0x00,0x28,0x2F,0xD1,0x40,0x48,0x09,0x21,0x01,0x23,0xC2,0x68,0x1A,0x43, + 0xC2,0x60,0xC2,0x68,0xD2,0x07,0xFC,0xD0,0x49,0x1E,0xF7,0xD2,0x00,0x26,0x17,0xE0, + 0x00,0x24,0x10,0xE0,0x21,0x00,0x30,0x00,0xFF,0xF7,0x9F,0xFE,0x00,0x28,0x09,0xD0, + 0x3B,0x48,0x40,0x78,0x70,0x43,0x00,0x19,0x81,0x00,0x79,0x58,0x09,0x05,0x09,0x0D, + 0x40,0x00,0x29,0x52,0x64,0x1C,0x36,0x48,0x40,0x78,0x84,0x42,0xEA,0xD3,0x76,0x1C, + 0x33,0x48,0x81,0x78,0x8E,0x42,0xE3,0xD3,0x01,0x78,0x00,0x29,0x03,0xD1,0x80,0x68, + 0x2C,0x49,0x48,0x63,0x05,0xE0,0x2E,0x48,0x80,0x68,0x01,0x0C,0x29,0x48,0x09,0x04, + 0x41,0x63,0x25,0x4A,0x09,0x21,0x01,0x23,0xD0,0x68,0x18,0x43,0xD0,0x60,0xD0,0x68, + 0xC0,0x07,0xFC,0xD0,0x49,0x1E,0xF7,0xD2,0x28,0x48,0x00,0x26,0x02,0x90,0x28,0x48, + 0x01,0x90,0x88,0xE0,0x00,0x24,0x80,0xE0,0x21,0x00,0x30,0x00,0xFF,0xF7,0x65,0xFE, + 0x00,0x28,0x79,0xD0,0x1E,0x49,0x0A,0x78,0x00,0x2A,0x43,0xD1,0x49,0x78,0x71,0x43, + 0x0A,0x19,0x53,0x00,0xE9,0x5A,0x81,0x42,0x04,0xD9,0x09,0x1A,0x09,0x04,0xC9,0x0C, + 0x40,0x18,0x03,0xE0,0x41,0x1A,0x09,0x04,0xC9,0x0C,0x40,0x1A,0x91,0x00,0x79,0x58, + 0x0E,0x4A,0x09,0x05,0x09,0x0D,0x40,0x1A,0xE8,0x52,0x11,0x48,0x0B,0x3A,0x40,0x78, + 0x70,0x43,0x00,0x19,0x40,0x00,0x29,0x5A,0x91,0x42,0x55,0xD9,0x00,0x21,0x29,0x52, + 0x52,0xE0,0x00,0x00,0x83,0xC3,0x0F,0x41,0x40,0x06,0x10,0x40,0xF3,0x43,0x0C,0x48, + 0xFC,0xFF,0x01,0x00,0xFC,0xFF,0x03,0x00,0x00,0x90,0x00,0x40,0x0A,0x10,0x00,0x00, + 0xF3,0xC3,0x0F,0x00,0x00,0xA0,0x00,0x40,0xC0,0x0F,0x00,0x20,0x00,0x78,0x00,0x00, + 0xA0,0x06,0x00,0x20,0x00,0x00,0x10,0x40,0x00,0x02,0x10,0x40,0xAC,0x08,0x00,0x20, + 0xAC,0x0A,0x00,0x20,0x81,0x48,0x82,0x49,0x40,0x78,0x70,0x43,0x00,0x19,0x05,0x90, + 0x80,0x00,0x38,0x58,0x00,0x05,0x00,0x0D,0x04,0x90,0x40,0x18,0xFF,0x21,0x91,0x31, + 0x88,0x42,0x10,0xD8,0x7B,0x49,0x04,0x98,0x09,0x1A,0x08,0x00,0x48,0x43,0xC8,0x21, + 0x00,0xF0,0x08,0xF9,0x77,0x4A,0x04,0x99,0x91,0x42,0x76,0x49,0x01,0xD9,0x40,0x18, + 0x00,0xE0,0x08,0x1A,0x03,0x90,0x06,0x98,0x00,0x28,0x08,0xD0,0x6F,0x48,0x01,0x9A, + 0x80,0x78,0x03,0x99,0x60,0x43,0x80,0x19,0x40,0x00,0x11,0x52,0x04,0xE0,0x05,0x99, + 0x02,0x9A,0x03,0x98,0x49,0x00,0x50,0x52,0x64,0x1C,0x68,0x48,0x40,0x78,0x84,0x42, + 0x00,0xD2,0x79,0xE7,0x76,0x1C,0x65,0x48,0x81,0x78,0x8E,0x42,0x00,0xD2,0x71,0xE7, + 0x07,0xB0,0xF0,0xBC,0x08,0xBC,0x18,0x47,0xF8,0xB5,0x63,0x4E,0x5F,0x4D,0x00,0x24, + 0x01,0x27,0x62,0x48,0x01,0x68,0x61,0x4A,0x08,0x04,0x00,0x0E,0x09,0x06,0x09,0x0E, + 0x68,0x70,0x40,0x3A,0xA9,0x70,0x12,0x69,0xD2,0x07,0xD2,0x0F,0x32,0x7D,0x02,0xD0, + 0x92,0x07,0x06,0xD4,0x01,0xE0,0x92,0x07,0x03,0xD5,0x49,0x1E,0x29,0x71,0xEF,0x70, + 0x03,0xE0,0x40,0x1E,0x28,0x71,0x00,0x20,0xE8,0x70,0x20,0x00,0x64,0x1C,0xFF,0xF7, + 0xA8,0xFE,0x28,0x78,0x01,0x28,0x01,0xD0,0x01,0x2C,0x05,0xD0,0x02,0x2C,0x03,0xD0, + 0xFF,0xF7,0x7C,0xFD,0x01,0x2C,0xD4,0xD9,0xF8,0xBC,0x08,0xBC,0x18,0x47,0x4C,0x48, + 0x10,0xB5,0x40,0x6B,0x45,0x4C,0xC5,0x22,0xA0,0x60,0x20,0x00,0xD2,0x00,0x00,0x21, + 0x0C,0x30,0xFF,0xF7,0x65,0xFD,0x00,0x20,0x20,0x70,0xFF,0xF7,0xBD,0xFF,0x01,0x20, + 0x20,0x70,0xFF,0xF7,0xB9,0xFF,0x43,0x48,0x43,0x49,0xC8,0x61,0x43,0x48,0xC2,0x68, + 0x52,0x08,0x52,0x00,0xC2,0x60,0x20,0x00,0x0C,0x30,0x04,0xC8,0xCA,0x61,0x4A,0x69, + 0x52,0x06,0xFC,0xD4,0xF9,0xE7,0x40,0x1E,0xFD,0xD2,0x70,0x47,0xF0,0xB5,0x3D,0x48, + 0x3B,0x4A,0x01,0x23,0x03,0x61,0x19,0x00,0x3A,0x48,0x00,0x23,0x43,0x61,0x83,0x61, + 0x01,0x26,0x35,0x00,0x9D,0x40,0x03,0x20,0x36,0x4C,0x00,0x04,0x28,0x43,0x60,0x61, + 0x08,0x00,0x40,0x1E,0xFD,0xD2,0x01,0x20,0x00,0x04,0x28,0x43,0x60,0x61,0x08,0x00, + 0x40,0x1E,0xFD,0xD2,0x65,0x61,0x48,0x00,0x86,0x46,0x40,0x1E,0xFD,0xD2,0xE7,0x69, + 0x00,0x20,0x5C,0x01,0xA4,0x46,0x64,0x46,0x24,0x18,0x3D,0x00,0xC5,0x40,0x16,0x5D, + 0xED,0x07,0xED,0x0F,0x75,0x19,0x40,0x1C,0x20,0x28,0x15,0x55,0xF3,0xD3,0x5B,0x1C, + 0x10,0x2B,0xD5,0xD3,0x23,0x48,0x00,0x23,0x43,0x61,0x83,0x61,0x01,0x25,0x9D,0x40, + 0x03,0x20,0x20,0x4C,0x00,0x04,0x28,0x43,0xA0,0x61,0x08,0x00,0x40,0x1E,0xFD,0xD2, + 0x01,0x20,0x00,0x04,0x28,0x43,0xA0,0x61,0x08,0x00,0x40,0x1E,0xFD,0xD2,0xA5,0x61, + 0x70,0x46,0x40,0x1E,0xFD,0xD2,0xE7,0x69,0x5C,0x01,0xFF,0x34,0x00,0x20,0xFF,0x34, + 0x02,0x34,0xA4,0x46,0x64,0x46,0x24,0x18,0x3D,0x00,0xC5,0x40,0x16,0x5D,0xED,0x07, + 0xED,0x0F,0x75,0x19,0x40,0x1C,0x20,0x28,0x15,0x55,0xF3,0xD3,0x5B,0x1C,0x10,0x2B, + 0xD4,0xD3,0x49,0x1C,0xC8,0x29,0x9F,0xD9,0x3B,0xE7,0x00,0x00,0xA0,0x06,0x00,0x20, + 0x74,0xF5,0xFF,0xFF,0x54,0x0B,0x00,0x00,0x00,0x78,0x00,0x00,0x40,0x90,0x00,0x40, + 0x00,0xA0,0x00,0x40,0xAB,0xFC,0xFF,0x8F,0x00,0x40,0x00,0x30,0x00,0x20,0x00,0x40, + 0xAC,0x08,0x00,0x20,0x00,0xA1,0x00,0x40,0x00,0xC0,0x9F,0xE5,0x1C,0xFF,0x2F,0xE1, + 0x3F,0x05,0x00,0x20,0x78,0x47,0xC0,0x46,0x04,0xF0,0x1F,0xE5,0xF8,0x07,0x00,0x00, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47,0x40,0x04,0x00,0x00,0xC0,0x7B,0x00,0x00, + 0xC0,0x75,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x03,0x00,0x00, + 0x00,0x7B,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x02,0x00,0x00, + 0x00,0x76,0x00,0x00,0x00,0x02,0x00,0x00,0x5E,0x00,0xCC,0x00,0x00,0x00,0x00,0x00, + 0x49,0x53,0x54,0x56,0x31,0x54,0x41,0x47}; + +#endif // __IST30XXB_FW_H__ diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb_misc.c b/drivers/input/touchscreen/ist30xxb/ist30xxb_misc.c new file mode 100755 index 00000000..f91e85ee --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb_misc.c @@ -0,0 +1,1142 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xxb_update.h" +#include "ist30xxb_misc.h" + +#define TSP_CH_SCREEN (1) +#define TSP_CH_KEY (2) + +#define TOUCH_NODE_PARSING_DEBUG (0) + +extern struct ist30xx_data *ts_data; + +TSP_INFO ist30xx_tsp_info; +TKEY_INFO ist30xx_tkey_info; + +static u32 *ist30xx_frame_buf; +static u32 *ist30xx_frame_rawbuf; +static u32 *ist30xx_frame_fltbuf; + + +int ist30xx_tkey_update_info(void) +{ + int ret = 0; + u32 tkey_info1, tkey_info2, tkey_info3; + TKEY_INFO *tkey = &ist30xx_tkey_info; + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_KEY_INFO1, &tkey_info1); + if (ret) return ret; + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_KEY_INFO2, &tkey_info2); + if (ret) return ret; + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_KEY_INFO3, &tkey_info3); + if (ret) return ret; + + tkey->enable = ((tkey_info1 & (0xFF << 24)) ? true : false); + tkey->key_num = (tkey_info1 >> 16) & 0xFF; + tkey->ch_num[0] = (tkey_info2 >> 24) & 0xFF; + tkey->ch_num[1] = (tkey_info2 >> 16) & 0xFF; + tkey->ch_num[2] = (tkey_info2 >> 8) & 0xFF; + tkey->ch_num[3] = tkey_info2 & 0xFF; + tkey->ch_num[4] = (tkey_info3 >> 24) & 0xFF; + + return ret; +} + + +#define TSP_INFO_SWAP_XY (1 << 0) +#define TSP_INFO_FLIP_X (1 << 1) +#define TSP_INFO_FLIP_Y (1 << 2) +int ist30xx_tsp_update_info(void) +{ + int ret = 0; + u32 tsp_ch_num, tsp_swap, tsp_dir; + TSP_INFO *tsp = &ist30xx_tsp_info; + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_TSP_SWAP_INFO, &tsp_swap); + if (ret) return ret; + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_TSP_DIRECTION, &tsp_dir); + if (ret) return ret; + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_TSP_CHNUM1, &tsp_ch_num); + if (ret || !tsp_ch_num) return ret; + + tsp->finger_num = IST30XX_MAX_MT_FINGERS; + + tsp->ch_num.rx = tsp_ch_num >> 16; + tsp->ch_num.tx = tsp_ch_num & 0xFFFF; + + tsp->dir.swap_xy = (tsp_swap & TSP_INFO_SWAP_XY ? true : false); + tsp->dir.flip_x = (tsp_swap & TSP_INFO_FLIP_X ? true : false); + tsp->dir.flip_y = (tsp_swap & TSP_INFO_FLIP_Y ? true : false); + + tsp->node.len = tsp->ch_num.tx * tsp->ch_num.rx; + tsp->height = (tsp->dir.swap_xy ? tsp->ch_num.rx : tsp->ch_num.tx); + tsp->width = (tsp->dir.swap_xy ? tsp->ch_num.tx : tsp->ch_num.rx); + + return ret; +} + + +int ist30xx_check_valid_ch(int ch_tx, int ch_rx) +{ + TKEY_INFO *tkey = &ist30xx_tkey_info; + TSP_INFO *tsp = &ist30xx_tsp_info; + + if ((ch_tx > tsp->ch_num.tx) || (ch_rx > tsp->ch_num.rx)) + return 0; + + if (tkey->enable) { + if (tkey->axis_rx) { + tsp_verb("tx: %d, rx: %d\n", ch_tx, ch_rx); + if (ch_rx == tsp->ch_num.rx - 1) { + tsp_verb("ch_tx: %d\n", ch_tx); + if ((ch_tx == tkey->ch_num[0]) || (ch_tx == tkey->ch_num[1]) || + (ch_tx == tkey->ch_num[2]) || (ch_tx == tkey->ch_num[3]) || + (ch_tx == tkey->ch_num[4])) + return TSP_CH_KEY; + else + return 0; + } + } else { + if (ch_tx == tsp->ch_num.tx - 1) { + if ((ch_rx == tkey->ch_num[0]) || (ch_rx == tkey->ch_num[1]) || + (ch_rx == tkey->ch_num[2]) || (ch_rx == tkey->ch_num[3]) || + (ch_rx == tkey->ch_num[4])) + return TSP_CH_KEY; + else + return 0; + } + } + } + + return TSP_CH_SCREEN; +} + + +int ist30xx_parse_touch_node(u8 flag, struct TSP_NODE_BUF *node) +{ +#if TOUCH_NODE_PARSING_DEBUG + int j; + TSP_INFO *tsp = &ist30xx_tsp_info; +#endif + int i; + u16 *raw = (u16 *)&node->raw; + u16 *base = (u16 *)&node->base; + u16 *filter = (u16 *)&node->filter; + + for (i = 0; i < node->len; i++) { + if (flag & (NODE_FLAG_RAW | NODE_FLAG_BASE)) { + *raw++ = *ist30xx_frame_rawbuf & 0xFFF; + *base++ = (*ist30xx_frame_rawbuf >> 16) & 0xFFF; + + ist30xx_frame_rawbuf++; + } + if (flag & NODE_FLAG_FILTER) + *filter++ = *ist30xx_frame_fltbuf++ & 0xFFF; + } + +#if TOUCH_NODE_PARSING_DEBUG + tsp_info("RAW - %d * %d\n", tsp->ch_num.tx, tsp->ch_num.rx); + for (i = 0; i < tsp->ch_num.tx; i++) { + printk("\n[ TSP ] "); + for (j = 0; j < tsp->ch_num.rx; j++) + printk("%4d ", node->raw[i][j]); + } + + tsp_info("BASE - %d * %d\n", tsp->ch_num.tx, tsp->ch_num.rx); + for (i = 0; i < tsp->ch_num.tx; i++) { + printk("\n[ TSP ] "); + for (j = 0; j < tsp->ch_num.rx; j++) + printk("%4d ", node->base[i][j]); + } + + tsp_info("FILTER - %d * %d\n", tsp->ch_num.tx, tsp->ch_num.rx); + for (i = 0; i < tsp->ch_num.tx; i++) { + printk("\n[ TSP ] "); + for (j = 0; j < tsp->ch_num.rx; j++) + printk("%4d ", node->filter[i][j]); + } +#endif + + return 0; +} + +int print_touch_node(u8 flag, struct TSP_NODE_BUF *node, char *buf, bool ch_tsp) +{ + int i, j; + int count = 0; + int val = 0; + const int msg_len = 128; + char msg[msg_len]; + TSP_INFO *tsp = &ist30xx_tsp_info; + + if (tsp->dir.swap_xy) { + } else { + for (i = 0; i < tsp->ch_num.tx; i++) { + for (j = 0; j < tsp->ch_num.rx; j++) { + if (ch_tsp && (ist30xx_check_valid_ch(i, j) != TSP_CH_SCREEN)) + continue; + + if (flag == NODE_FLAG_RAW) + val = (int)node->raw[i][j]; + else if (flag == NODE_FLAG_BASE) + val = (int)node->base[i][j]; + else if (flag == NODE_FLAG_FILTER) + val = (int)node->filter[i][j]; + else if (flag == NODE_FLAG_DIFF) + val = (int)(node->raw[i][j] - node->base[i][j]); + else + return 0; + + if (val < 0) val = 0; + + count += snprintf(msg, msg_len, "%4d ", val); + strncat(buf, msg, msg_len); + } + + count += snprintf(msg, msg_len, "\n"); + strncat(buf, msg, msg_len); + } + } + + return count; +} + +int parse_tsp_node(u8 flag, struct TSP_NODE_BUF *node, s16 *buf16) +{ + int i, j; + s16 val = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + + if ((flag != NODE_FLAG_RAW) && (flag != NODE_FLAG_BASE) && + (flag != NODE_FLAG_FILTER) && (flag != NODE_FLAG_DIFF)) + return -EPERM; + + if (tsp->dir.swap_xy) { + } else { + for (i = 0; i < tsp->ch_num.tx; i++) { + for (j = 0; j < tsp->ch_num.rx; j++) { + if (ist30xx_check_valid_ch(i, j) != TSP_CH_SCREEN) + continue; + + switch ((int)flag) { + case NODE_FLAG_RAW: + val = (s16)node->raw[i][j]; + break; + case NODE_FLAG_BASE: + val = (s16)node->base[i][j]; + break; + case NODE_FLAG_FILTER: + val = (s16)node->filter[i][j]; + break; + case NODE_FLAG_DIFF: + val = (s16)(node->raw[i][j] - node->base[i][j]); + break; + } + + if (val < 0) val = 0; + + *buf16++ = val; + } + } + } + + return 0; +} + + +int ist30xx_read_touch_node(u8 flag, struct TSP_NODE_BUF *node) +{ + int ret = 0; + + ist30xx_disable_irq(ts_data); + ret = ist30xx_cmd_reg(ts_data->client, CMD_ENTER_REG_ACCESS); + if (ret) goto read_tsp_node_end; + + ret = ist30xx_write_cmd(ts_data->client, IST30XX_RX_CNT_ADDR, node->len); + if (ret) goto read_tsp_node_end; + + if (flag & (NODE_FLAG_RAW | NODE_FLAG_BASE)) { + tsp_debug("Reg addr: %x, size: %d\n", IST30XXB_RAW_ADDR, node->len); + ret = ist30xx_read_buf(ts_data->client, IST30XXB_RAW_ADDR, + ist30xx_frame_rawbuf, node->len); + if (ret) goto read_tsp_node_end; + } + if (flag & NODE_FLAG_FILTER) { + tsp_debug("Reg addr: %x, size: %d\n", IST30XXB_FILTER_ADDR, node->len); + ret = ist30xx_read_buf(ts_data->client, IST30XXB_FILTER_ADDR, + ist30xx_frame_fltbuf, node->len); + if (ret) goto read_tsp_node_end; + } + + ret = ist30xx_cmd_reg(ts_data->client, CMD_EXIT_REG_ACCESS); + if (ret) goto read_tsp_node_end; + + ret = ist30xx_cmd_start_scan(ts_data->client); + if (ret) goto read_tsp_node_end; + +read_tsp_node_end: + ist30xx_enable_irq(ts_data); + + return ret; +} + + +/* sysfs: /sys/class/touch/node/refresh */ +ssize_t ist30xx_frame_refresh(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + u8 flag = NODE_FLAG_RAW | NODE_FLAG_BASE | NODE_FLAG_FILTER; + + ret = ist30xx_read_touch_node(flag, &tsp->node); + if (ret) + ret = sprintf(buf, "cmd 1frame raw update fail\n"); + + ret = ist30xx_parse_touch_node(flag, &tsp->node); + + return ret; +} + + +/* sysfs: /sys/class/touch/node/base */ +ssize_t ist30xx_base_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xxb baseline(%d)\n", tsp->node.len); + + count += print_touch_node(NODE_FLAG_BASE, &tsp->node, buf, false); + + return count; +} + + +/* sysfs: /sys/class/touch/node/raw */ +ssize_t ist30xx_raw_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xxb raw(%d)\n", tsp->node.len); + + count += print_touch_node(NODE_FLAG_RAW, &tsp->node, buf, false); + + return count; +} + + +/* sysfs: /sys/class/touch/node/diff */ +ssize_t ist30xx_diff_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xxb difference (%d)\n", tsp->node.len); + + count += print_touch_node(NODE_FLAG_DIFF, &tsp->node, buf, false); + + return count; +} + + +/* sysfs: /sys/class/touch/node/filter */ +ssize_t ist30xx_filter_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xxb filter (%d)\n", tsp->node.len); + + count += print_touch_node(NODE_FLAG_FILTER, &tsp->node, buf, false); + + return count; +} + + +extern int calib_ms_delay; +/* sysfs: /sys/class/touch/sys/clb */ +ssize_t ist30xx_calib_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret = -1; + int ms_delay; + + sscanf(buf, "%d", &ms_delay); + + if (ms_delay > 10 && ms_delay < 1000) // 1sec ~ 100sec + calib_ms_delay = ms_delay; + + tsp_info("Calibration wait time %dsec\n", calib_ms_delay / 10); + + ist30xx_disable_irq(ts_data); + ret = ist30xx_cmd_run_device(ts_data->client); + if (ret) { + ist30xx_enable_irq(ts_data); + return size; + } + ist30xx_calibrate(1); + + ist30xx_start(ts_data); + + return size; +} + +ssize_t ist30xx_calib_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret; + int count = 0; + u32 value; + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(ts_data); + ret = ist30xx_cmd_run_device(ts_data->client); + if (ret) + goto calib_show_end; + + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_CALIB_RESULT, &value); + if (ret) { + count = sprintf(buf, "Error Read Calibration Result\n"); + goto calib_show_end; + } + + count = sprintf(buf, + "Calibration Status : %d, Max raw gap : %d - (raw: %08x)\n", + CALIB_TO_STATUS(value), CALIB_TO_GAP(value), value); + +calib_show_end: + ist30xx_start(ts_data); + ist30xx_enable_irq(ts_data); + mutex_unlock(&ist30xx_mutex); + + return count; +} + + +/* sysfs: /sys/class/touch/sys/power */ +ssize_t ist30xx_power_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + u32 power_en; + + sscanf(buf, "%d", &power_en); + + tsp_info("Power enable: %d\n", power_en); + if (power_en > 1) { + tsp_err("Unknown argument value, %d\n", power_en); + return size; + } + + if (power_en) { + mutex_lock(&ist30xx_mutex); + ist30xx_internal_resume(ts_data); + ist30xx_enable_irq(ts_data); + mutex_unlock(&ist30xx_mutex); + + ist30xx_start(ts_data); + } else { + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(ts_data); + ist30xx_internal_suspend(ts_data); + mutex_unlock(&ist30xx_mutex); + } + + return size; +} + +extern int ist30xx_max_error_cnt; +/* sysfs: /sys/class/touch/sys/errcnt */ +ssize_t ist30xx_errcnt_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int err_cnt; + + sscanf(buf, "%d", &err_cnt); + + if (err_cnt < 0) return size; + + tsp_info("Request reset error count: %d\n", err_cnt); + + ist30xx_max_error_cnt = err_cnt; + + return size; +} + +#if IST30XX_EVENT_MODE +extern int ist30xx_max_scan_retry; +/* sysfs: /sys/class/touch/sys/scancnt */ +ssize_t ist30xx_scancnt_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int retry; + + sscanf(buf, "%d", &retry); + + if (retry < 0) return size; + + tsp_info("Timer scan count retry: %d\n", retry); + + ist30xx_max_scan_retry = retry; + + return size; +} + +extern int timer_period_ms; +/* sysfs: /sys/class/touch/sys/timerms */ +ssize_t ist30xx_timerms_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ms; + + sscanf(buf, "%d", &ms); + + if ((ms < 0) || (ms > 10000)) return size; + + tsp_info("Timer period ms: %dms\n", ms); + + timer_period_ms = ms; + + return size; +} +#endif + +extern int ist30xx_dbg_level; +/* sysfs: /sys/class/touch/sys/printk */ +ssize_t ist30xx_printk_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int level; + + sscanf(buf, "%d", &level); + + if ((level < DEV_ERR) || (level > DEV_VERB)) return size; + + tsp_info("prink log level: %d\n", level); + + ist30xx_dbg_level = level; + + return size; +} + +ssize_t ist30xx_printk_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + return sprintf(buf, "prink log level: %d\n", ist30xx_dbg_level); +} + +/* sysfs: /sys/class/touch/sys/dummy */ +ssize_t ist30xx_dummy_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret; + int count = 0; + u32 value; + + ist30xx_disable_irq(ts_data); + ret = ist30xx_read_cmd(ts_data->client, CMD_GET_COORD, &value); + if (ret) + count = sprintf(buf, "Error Read Calibration Result\n"); + ist30xx_enable_irq(ts_data); + + count = sprintf(buf, + "Calibration Status : %d, Max raw gap : %d - (raw: %08x)\n", + CALIB_TO_STATUS(value), CALIB_TO_GAP(value), value); + + return count; +} + + +#define TUNES_CMD_WRITE (1) +#define TUNES_CMD_READ (2) +#define TUNES_CMD_REG_ENTER (3) +#define TUNES_CMD_REG_EXIT (4) +#define TUNES_CMD_UPDATE_PARAM (5) +#define TUNES_CMD_UPDATE_FW (6) + +#define DIRECT_ADDR(k) (IST30XXB_DA_ADDR(k)) +#define DIRECT_CMD_WRITE ('w') +#define DIRECT_CMD_READ ('r') + +#pragma pack(1) +typedef struct { + u8 cmd; + u32 addr; + u16 len; +} TUNES_INFO; +#pragma pack() +#pragma pack(1) +typedef struct { + char cmd; + u32 addr; + u32 val; +} DIRECT_INFO; +#pragma pack() + +static TUNES_INFO ist30xx_tunes; +static DIRECT_INFO ist30xx_direct; +static bool tunes_cmd_done = false; +static bool ist30xx_reg_mode = false; + +/* sysfs: /sys/class/touch/sys/direct */ +ssize_t ist30xxb_direct_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret = -EPERM; + DIRECT_INFO *direct = (DIRECT_INFO *)&ist30xx_direct; + + sscanf(buf, "%c %x %x", &direct->cmd, &direct->addr, &direct->val); + + tsp_debug("Direct cmd: %c, addr: %x, val: %x\n", + direct->cmd, direct->addr, direct->val); + + if ((direct->cmd != DIRECT_CMD_WRITE) && (direct->cmd != DIRECT_CMD_READ)) { + tsp_warn("Direct cmd is not correct!\n"); + return size; + } + + if (direct->cmd == DIRECT_CMD_WRITE) { + ret = ist30xx_write_cmd(ts_data->client, DIRECT_ADDR(direct->addr), + direct->val); + ret = ist30xx_read_cmd(ts_data->client, DIRECT_ADDR(direct->addr), + &direct->val); + tsp_debug("Direct write addr: %x, val: %x\n", + direct->addr, direct->val); + } + + return size; +} + +#define DIRECT_BUF_COUNT (4) +ssize_t ist30xxb_direct_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int i, ret, count = 0; + int len; + u32 addr; + u32 buf32[DIRECT_BUF_COUNT]; + int max_len = DIRECT_BUF_COUNT; + const int msg_len = 256; + char msg[msg_len]; + + DIRECT_INFO *direct = (DIRECT_INFO *)&ist30xx_direct; + + if (direct->cmd != DIRECT_CMD_READ) + return sprintf(buf, "ex) echo r addr len > direct\n"); + + len = direct->val; + addr = DIRECT_ADDR(direct->addr); + + ts_data->status.event_mode = false; + ist30xx_disable_irq(ts_data); + while (len > 0) { + if (len < max_len) max_len = len; + + memset(buf32, 0, sizeof(buf32)); + ret = ist30xxb_burst_read(ts_data->client, addr, buf32, max_len); + if (ret) { + count = sprintf(buf, "I2C Burst read fail, addr: %x\n", addr); + break; + } + + for (i = 0; i < max_len; i++) { + count += snprintf(msg, msg_len, "0x%08x ", buf32[i]); + strncat(buf, msg, msg_len); + } + count += snprintf(msg, msg_len, "\n"); + strncat(buf, msg, msg_len); + + addr += max_len * IST30XX_DATA_LEN; + len -= max_len; + } + ist30xx_enable_irq(ts_data); + ts_data->status.event_mode = true; + + tsp_debug("%s", buf); + + return count; +} + +/* sysfs: /sys/class/touch/tunes/regcmd */ +ssize_t tunes_regcmd_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret = -1; + u32 *buf32; + + memcpy(&ist30xx_tunes, buf, sizeof(ist30xx_tunes)); + buf += sizeof(ist30xx_tunes); + buf32 = (u32 *)buf; + + tunes_cmd_done = false; + + switch (ist30xx_tunes.cmd) { + case TUNES_CMD_WRITE: + break; + case TUNES_CMD_READ: + break; + case TUNES_CMD_REG_ENTER: + ist30xx_disable_irq(ts_data); + ret = ist30xx_cmd_run_device(ts_data->client); + if (ret) + goto regcmd_fail; + + /* enter reg access mode */ + ret = ist30xx_cmd_reg(ts_data->client, CMD_ENTER_REG_ACCESS); + if (ret) + goto regcmd_fail; + + ist30xx_reg_mode = true; + + break; + case TUNES_CMD_REG_EXIT: + /* exit reg access mode */ + ret = ist30xx_cmd_reg(ts_data->client, CMD_EXIT_REG_ACCESS); + if (ret) + goto regcmd_fail; + + ret = ist30xx_cmd_start_scan(ts_data->client); + if (ret) + goto regcmd_fail; + + ist30xx_reg_mode = false; + + ist30xx_enable_irq(ts_data); + break; + default: + ist30xx_enable_irq(ts_data); + return size; + } + tunes_cmd_done = true; + + return size; + +regcmd_fail: + tsp_err("Tunes regcmd i2c_fail, ret=%d\n", ret); + return size; +} + +ssize_t tunes_regcmd_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int size; + + size = sprintf(buf, "cmd: 0x%02x, addr: 0x%08x, len: 0x%04x\n", + ist30xx_tunes.cmd, ist30xx_tunes.addr, ist30xx_tunes.len); + + return size; +} + +#define MAX_WRITE_LEN (1) +/* sysfs: /sys/class/touch/tunes/reg */ +ssize_t tunes_reg_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret; + u32 *buf32 = (u32 *)buf; + int waddr, wcnt = 0, len = 0; + + if (ist30xx_tunes.cmd != TUNES_CMD_WRITE) { + tsp_err("error, IST30XX_REG_CMD is not correct!\n"); + return size; + } + + if (!ist30xx_reg_mode) { + tsp_err("error, IST30XX_REG_CMD is not ready!\n"); + return size; + } + + if (!tunes_cmd_done) { + tsp_err("error, IST30XX_REG_CMD is not ready!\n"); + return size; + } + + waddr = ist30xx_tunes.addr; + if (ist30xx_tunes.len >= MAX_WRITE_LEN) + len = MAX_WRITE_LEN; + else + len = ist30xx_tunes.len; + + while (wcnt < ist30xx_tunes.len) { + ret = ist30xx_write_buf(ts_data->client, waddr, buf32, len); + if (ret) { + tsp_err("Tunes regstore i2c_fail, ret=%d\n", ret); + return size; + } + + wcnt += len; + + if ((ist30xx_tunes.len - wcnt) < MAX_WRITE_LEN) + len = ist30xx_tunes.len - wcnt; + + buf32 += MAX_WRITE_LEN; + waddr += MAX_WRITE_LEN * IST30XX_DATA_LEN; + } + + tunes_cmd_done = false; + + return size; +} + +ssize_t tunes_reg_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret; + int size; + u32 *buf32 = (u32 *)buf; + +#if I2C_MONOPOLY_MODE + unsigned long flags; +#endif + + if (ist30xx_tunes.cmd != TUNES_CMD_READ) { + tsp_err("error, IST30XX_REG_CMD is not correct!\n"); + return 0; + } + + if (!tunes_cmd_done) { + tsp_err("error, IST30XX_REG_CMD is not ready!\n"); + return 0; + } + + size = ist30xx_tunes.len; + ret = ist30xx_write_cmd(ts_data->client, IST30XX_RX_CNT_ADDR, size); + if (ret) { + tsp_err("Tunes regshow i2c_fail, ret=%d\n", ret); + return 0; + } + +#if I2C_MONOPOLY_MODE + local_irq_save(flags); // Activated only when the GPIO I2C is used +#endif + ret = ist30xx_read_buf(ts_data->client, ist30xx_tunes.addr, buf32, size); +#if I2C_MONOPOLY_MODE + local_irq_restore(flags); // Activated only when the GPIO I2C is used +#endif + if (ret) { + tsp_err("Tunes regshow i2c_fail, ret=%d\n", ret); + return size; + } + + size = ist30xx_tunes.len * IST30XX_DATA_LEN; + + tunes_cmd_done = false; + + return size; +} + + +/* sysfs: /sys/class/touch/tunes/firmware */ +ssize_t tunes_fw_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + ist30xx_get_update_info(ts_data, buf, size); + + mutex_lock(&ist30xx_mutex); + ist30xx_fw_update(ts_data->client, buf, size, true); + mutex_unlock(&ist30xx_mutex); + + ist30xx_calibrate(1); + + ist30xx_init_touch_driver(ts_data); + + return size; +} + + +/* sysfs: /sys/class/touch/tunes/adb */ +ssize_t tunes_adb_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret; + char *tmp, *ptr; + char token[9]; + u32 cmd, addr, len, val; + int write_len; + + sscanf(buf, "%x %x %x", &cmd, &addr, &len); + + switch (cmd) { + case TUNES_CMD_WRITE: /* write cmd */ + write_len = 0; + ptr = (char *)(buf + 15); + + while (write_len < len) { + memcpy(token, ptr, 8); + token[8] = 0; + val = simple_strtoul(token, &tmp, 16); + ret = ist30xx_write_buf(ts_data->client, addr, &val, 1); + if (ret) { + tsp_err("Tunes regstore i2c_fail, ret=%d\n", ret); + return size; + } + + ptr += 8; + write_len++; + addr += 4; + } + break; + + case TUNES_CMD_READ: /* read cmd */ + ist30xx_tunes.cmd = cmd; + ist30xx_tunes.addr = addr; + ist30xx_tunes.len = len; + break; + + case TUNES_CMD_REG_ENTER: /* enter */ + ist30xx_disable_irq(ts_data); + ret = ist30xx_cmd_run_device(ts_data->client); + if (ret < 0) + goto cmd_fail; + + ret = ist30xx_cmd_reg(ts_data->client, CMD_ENTER_REG_ACCESS); + if (ret < 0) + goto cmd_fail; + ist30xx_reg_mode = true; + break; + + case TUNES_CMD_REG_EXIT: /* exit */ + if (ist30xx_reg_mode == true) { + ret = ist30xx_cmd_reg(ts_data->client, CMD_EXIT_REG_ACCESS); + if (ret < 0) + goto cmd_fail; + + ret = ist30xx_cmd_start_scan(ts_data->client); + if (ret < 0) + goto cmd_fail; + ist30xx_reg_mode = false; + ist30xx_enable_irq(ts_data); + } + break; + + default: + break; + } + + return size; + +cmd_fail: + tsp_err("Tunes adb i2c_fail\n"); + return size; +} + +ssize_t tunes_adb_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret; + int i, len, size = 0; + char reg_val[10]; + +#if I2C_MONOPOLY_MODE + unsigned long flags; +#endif + + ret = ist30xx_write_cmd(ts_data->client, IST30XX_RX_CNT_ADDR, ist30xx_tunes.len); + if (ret) { + tsp_err("Tunes regshow i2c_fail, ret=%d\n", ret); + return size; + } + +#if I2C_MONOPOLY_MODE + local_irq_save(flags); +#endif + ret = ist30xx_read_buf(ts_data->client, ist30xx_tunes.addr, + ist30xx_frame_buf, ist30xx_tunes.len); +#if I2C_MONOPOLY_MODE + local_irq_restore(flags); +#endif + if (ret) { + tsp_err("Tunes regshow i2c_fail, ret=%d\n", ret); + return size; + } + + size = 0; + buf[0] = 0; + len = sprintf(reg_val, "%08x", ist30xx_tunes.addr); + strcat(buf, reg_val); + size += len; + for (i = 0; i < ist30xx_tunes.len; i++) { + len = sprintf(reg_val, "%08x", ist30xx_frame_buf[i]); + strcat(buf, reg_val); + size += len; + } + + return size; +} + +#if IST30XX_ALGORITHM_MODE +/* sysfs: /sys/class/touch/tunes/algorithm */ +extern u32 ist30xx_algr_addr, ist30xx_algr_size; +ssize_t ist30xx_algr_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + sscanf(buf, "%x %d", &ist30xx_algr_addr, &ist30xx_algr_size); + tsp_info("Algorithm addr: 0x%x, count: %d\n", + ist30xx_algr_addr, ist30xx_algr_size); + + ist30xx_algr_addr |= IST30XXB_ACCESS_ADDR; + + return size; +} + +ssize_t ist30xx_algr_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret; + u32 algr_addr; + int count = 0; + + ret = ist30xx_read_cmd(ts_data->client, IST30XXB_MEM_ALGORITHM, &algr_addr); + if (ret) { + tsp_warn("Algorithm mem addr read fail!\n"); + return 0; + } + + tsp_info("algr_addr(0x%x): 0x%x\n", IST30XXB_MEM_ALGORITHM, algr_addr); + + count = sprintf(buf, "Algorithm addr : 0x%x\n", algr_addr); + + return count; +} +#endif // IST30XX_ALGORITHM_MODE + +#define MISC_DEFAULT_ATTR (0644) + +/* sysfs */ +static DEVICE_ATTR(refresh, MISC_DEFAULT_ATTR, ist30xx_frame_refresh, NULL); +static DEVICE_ATTR(filter, MISC_DEFAULT_ATTR, ist30xx_filter_show, NULL); +static DEVICE_ATTR(raw, MISC_DEFAULT_ATTR, ist30xx_raw_show, NULL); +static DEVICE_ATTR(base, MISC_DEFAULT_ATTR, ist30xx_base_show, NULL); +static DEVICE_ATTR(diff, MISC_DEFAULT_ATTR, ist30xx_diff_show, NULL); + +static DEVICE_ATTR(printk, MISC_DEFAULT_ATTR, ist30xx_printk_show, ist30xx_printk_store); +static DEVICE_ATTR(direct, MISC_DEFAULT_ATTR, ist30xxb_direct_show, ist30xxb_direct_store); +static DEVICE_ATTR(clb, MISC_DEFAULT_ATTR, ist30xx_calib_show, ist30xx_calib_store); +static DEVICE_ATTR(tsp_power, MISC_DEFAULT_ATTR, NULL, ist30xx_power_store); +static DEVICE_ATTR(errcnt, MISC_DEFAULT_ATTR, NULL, ist30xx_errcnt_store); +static DEVICE_ATTR(dummy, MISC_DEFAULT_ATTR, ist30xx_dummy_show, NULL); +#if IST30XX_EVENT_MODE +static DEVICE_ATTR(scancnt, MISC_DEFAULT_ATTR, NULL, ist30xx_scancnt_store); +static DEVICE_ATTR(timerms, MISC_DEFAULT_ATTR, NULL, ist30xx_timerms_store); +#endif + +static DEVICE_ATTR(regcmd, MISC_DEFAULT_ATTR, tunes_regcmd_show, tunes_regcmd_store); +static DEVICE_ATTR(reg, MISC_DEFAULT_ATTR, tunes_reg_show, tunes_reg_store); +static DEVICE_ATTR(tunes_fw, MISC_DEFAULT_ATTR, NULL, tunes_fw_store); +static DEVICE_ATTR(adb, MISC_DEFAULT_ATTR, tunes_adb_show, tunes_adb_store); +#if IST30XX_ALGORITHM_MODE +static DEVICE_ATTR(algorithm, MISC_DEFAULT_ATTR, ist30xx_algr_show, ist30xx_algr_store); +#endif + +static struct attribute *node_attributes[] = { + &dev_attr_refresh.attr, + &dev_attr_filter.attr, + &dev_attr_raw.attr, + &dev_attr_base.attr, + &dev_attr_diff.attr, + NULL, +}; + +static struct attribute *sys_attributes[] = { + &dev_attr_printk.attr, + &dev_attr_direct.attr, + &dev_attr_clb.attr, + &dev_attr_tsp_power.attr, + &dev_attr_errcnt.attr, + &dev_attr_dummy.attr, +#if IST30XX_EVENT_MODE + &dev_attr_scancnt.attr, + &dev_attr_timerms.attr, +#endif + NULL, +}; + +static struct attribute *tunes_attributes[] = { + &dev_attr_regcmd.attr, + &dev_attr_reg.attr, + &dev_attr_tunes_fw.attr, + &dev_attr_adb.attr, +#if IST30XX_ALGORITHM_MODE + &dev_attr_algorithm.attr, +#endif + NULL, +}; + +static struct attribute_group node_attr_group = { + .attrs = node_attributes, +}; + +static struct attribute_group sys_attr_group = { + .attrs = sys_attributes, +}; + +static struct attribute_group tunes_attr_group = { + .attrs = tunes_attributes, +}; + +extern struct class *ist30xx_class; +struct device *ist30xx_sys_dev; +struct device *ist30xx_tunes_dev; +struct device *ist30xx_node_dev; + + +int ist30xx_init_misc_sysfs(void) +{ + /* /sys/class/touch/sys */ + ist30xx_sys_dev = device_create(ist30xx_class, NULL, 0, NULL, "sys"); + + /* /sys/class/touch/sys/... */ + if (sysfs_create_group(&ist30xx_sys_dev->kobj, &sys_attr_group)) + tsp_err("Failed to create sysfs group(%s)!\n", "sys"); + + /* /sys/class/touch/tunes */ + ist30xx_tunes_dev = device_create(ist30xx_class, NULL, 0, NULL, "tunes"); + + /* /sys/class/touch/tunes/... */ + if (sysfs_create_group(&ist30xx_tunes_dev->kobj, &tunes_attr_group)) + tsp_err("Failed to create sysfs group(%s)!\n", "tunes"); + + /* /sys/class/touch/node */ + ist30xx_node_dev = device_create(ist30xx_class, NULL, 0, NULL, "node"); + + /* /sys/class/touch/node/... */ + if (sysfs_create_group(&ist30xx_node_dev->kobj, &node_attr_group)) + tsp_err("Failed to create sysfs group(%s)!\n", "node"); + + ist30xx_frame_buf = kmalloc(4096, GFP_KERNEL); + ist30xx_frame_rawbuf = kmalloc(4096, GFP_KERNEL); + ist30xx_frame_fltbuf = kmalloc(4096, GFP_KERNEL); + if (!ist30xx_frame_buf || !ist30xx_frame_rawbuf || !ist30xx_frame_fltbuf) + return -ENOMEM; + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb_misc.h b/drivers/input/touchscreen/ist30xxb/ist30xxb_misc.h new file mode 100755 index 00000000..9062d88b --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb_misc.h @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_MISC_H__ +#define __IST30XX_MISC_H__ + +#include "ist30xxb_tsp.h" + + +#define IST30XXB_RAW_ADDR (0x40100200) +#define IST30XXB_FILTER_ADDR (0x40101000) + +#define IST30XX_RX_CNT_ADDR (0x20000038) +#define IST30XX_CONFIG_ADDR (0x20000040) + +#define NODE_FLAG_RAW (1) +#define NODE_FLAG_BASE (1 << 1) +#define NODE_FLAG_FILTER (1 << 2) +#define NODE_FLAG_DIFF (1 << 3) + +struct TSP_CH_NUM { + u8 tx; + u8 rx; +}; +struct TSP_NODE_BUF { + u16 raw[NODE_TX_NUM][NODE_RX_NUM]; + u16 base[NODE_TX_NUM][NODE_RX_NUM]; + u16 filter[NODE_TX_NUM][NODE_RX_NUM]; + u16 min_raw; + u16 max_raw; + u16 min_base; + u16 max_base; + u16 len; +}; +struct TSP_DIRECTION { + bool swap_xy; + bool flip_x; + bool flip_y; +}; +typedef struct _TSP_INFO { + struct TSP_CH_NUM ch_num; + struct TSP_DIRECTION dir; + struct TSP_NODE_BUF node; + int height; + int width; + int finger_num; +} TSP_INFO; +typedef struct _TKEY_INFO { + int key_num; + bool enable; + bool axis_rx; + u8 axis_chnum; + u8 ch_num[5]; +} TKEY_INFO; + +int ist30xx_parse_touch_node(u8 flag, struct TSP_NODE_BUF *node); +int ist30xx_read_touch_node(u8 flag, struct TSP_NODE_BUF *node); + +int ist30xx_tsp_update_info(void); +int ist30xx_tkey_update_info(void); + +int ist30xx_get_tsp_info(struct ist30xx_data *data); +int ist30xx_get_tkey_info(struct ist30xx_data *data); + +int ist30xx_init_misc_sysfs(void); + +#endif // __IST30XX_MISC_H__ diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb_sec.c b/drivers/input/touchscreen/ist30xxb/ist30xxb_sec.c new file mode 100755 index 00000000..d8ee815f --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb_sec.c @@ -0,0 +1,831 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xxb_update.h" +#include "ist30xxb_misc.h" + + +static char IsfwUpdate[20] = { 0 }; + +#define FW_DOWNLOADING "Downloading" +#define FW_DOWNLOAD_COMPLETE "Complete" +#define FW_DOWNLOAD_FAIL "FAIL" + +#define FACTORY_BUF_SIZE (1024) +#define BUILT_IN (0) + +#define CMD_STATE_WAITING (0) +#define CMD_STATE_RUNNING (1) +#define CMD_STATE_OK (2) +#define CMD_STATE_FAIL (3) +#define CMD_STATE_NA (4) + +#define TSP_NODE_DEBUG (1) + +static u16 node_value[TSP_TOTAL_NUM]; + +extern struct ist30xx_data *ts_data; +extern TSP_INFO ist30xx_tsp_info; +extern TKEY_INFO ist30xx_tkey_info; + + +#define TSP_CMD(name, func) .cmd_name = name, .cmd_func = func +struct tsp_cmd { + struct list_head list; + const char * cmd_name; + void (*cmd_func)(void *dev_data); +}; + +u32 ist30xxb_get_fw_ver(struct ist30xx_data *data) +{ + u32 addr = data->tags.cfg_addr + 4; + u32 len = 1; + u32 ver = 0; + int ret = -EPERM; + + ist30xx_disable_irq(data); + ret = ist30xx_cmd_reg(data->client, CMD_ENTER_REG_ACCESS); + if (ret) goto get_fw_ver_fail; + + ret = ist30xx_write_cmd(data->client, IST30XX_RX_CNT_ADDR, len); + if (ret) goto get_fw_ver_fail; + + ret = ist30xx_read_cmd(data->client, addr, &ver); + if (ret) goto get_fw_ver_fail; + + tsp_debug("Reg addr: %x, ver: %x\n", addr, ver); + + ret = ist30xx_cmd_reg(data->client, CMD_EXIT_REG_ACCESS); + if (ret == 0) + goto get_fw_ver_end; + +get_fw_ver_fail: + ist30xx_cmd_run_device(data->client); + +get_fw_ver_end: + ist30xx_cmd_start_scan(data->client); + ist30xx_enable_irq(data); + + return ver; +} + +int ist30xxb_get_key_sensitivity(struct ist30xx_data *data, int id) +{ + u32 addr = IST30XXB_MEM_COUNT + 4 * sizeof(u32); + u32 val = 0; + + if (id >= ist30xx_tkey_info.key_num) + return 0; + + ist30xx_disable_irq(data); + ist30xx_read_cmd(ts_data->client, addr, &val); + ist30xx_enable_irq(data); + + tsp_debug("Reg addr: %x, val: %8x\n", addr, val); + + val >>= (16 * id); + + return (int)(val & 0xFFFF); +} + + +/* Factory CMD function */ +static void set_default_result(struct sec_factory *sec) +{ + char delim = ':'; + + memset(sec->cmd_result, 0, ARRAY_SIZE(sec->cmd_result)); + memcpy(sec->cmd_result, sec->cmd, strlen(sec->cmd)); + strncat(sec->cmd_result, &delim, CMD_STATE_RUNNING); +} + +static void set_cmd_result(struct sec_factory *sec, char *buf, int len) +{ + strncat(sec->cmd_result, buf, len); +} + +static void not_support_cmd(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%s", "NA"); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_NA; + dev_info(&data->client->dev, "%s: \"%s(%d)\"\n", __func__, + buf, strnlen(buf, sizeof(buf))); + return; +} + +static void get_chip_vendor(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%s", TSP_CHIP_VENDOR); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_chip_name(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%s", TSP_CHIP_NAME); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_chip_id(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%#02x", data->chip_id); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void fw_update(void *dev_data) +{ + int ret; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + tsp_info("%s(), %d\n", __func__, sec->cmd_param[0]); + + switch (sec->cmd_param[0]) { + case BUILT_IN: + sec->cmd_state = CMD_STATE_OK; + ret = ist30xx_fw_recovery(data); + if (ret < 0) { + sec->cmd_state = CMD_STATE_FAIL; + return; + } + break; + + default: + tsp_warn("%s(), Invalid fw file type!\n", __func__); + break; + } + + if (sec->cmd_state == CMD_STATE_OK) + snprintf(buf, sizeof(buf), "%s", "OK"); + else + snprintf(buf, sizeof(buf), "%s", "NG"); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); +} + + +static void get_fw_ver_bin(void *dev_data) +{ + u32 ver = 0; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + ver = ist30xx_parse_ver(FLAG_PARAM, data->fw.buf); + snprintf(buf, sizeof(buf), "IM00%04x", ver); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_fw_ver_ic(void *dev_data) +{ + u32 ver = 0; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + if (data->status.power == 1) + ver = ist30xxb_get_fw_ver(ts_data); + + snprintf(buf, sizeof(buf), "IM00%04x", ver & 0xFFFF); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_threshold(void *dev_data) +{ + char buf[16] = { 0 }; + int val = TSP_THRESHOLD; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + snprintf(buf, sizeof(buf), "%d", val); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_x_num(void *dev_data) +{ + int val = ist30xx_tsp_info.width; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + if (val >= 0) { + snprintf(buf, sizeof(buf), "%u", val); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); + } else { + snprintf(buf, sizeof(buf), "%s", "NG"); + sec->cmd_state = CMD_STATE_FAIL; + dev_info(&data->client->dev, + "%s: fail to read num of x (%d).\n", __func__, val); + } + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + tsp_info("%s(), %s\n", __func__, buf); +} + +static void get_y_num(void *dev_data) +{ + int val = ist30xx_tsp_info.height; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + if (val >= 0) { + snprintf(buf, sizeof(buf), "%u", val); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); + } else { + snprintf(buf, sizeof(buf), "%s", "NG"); + sec->cmd_state = CMD_STATE_FAIL; + dev_info(&data->client->dev, + "%s: fail to read num of x (%d).\n", __func__, val); + } + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + tsp_info("%s(), %s\n", __func__, buf); +} + +int check_tsp_channel(void *dev_data) +{ + int node = -EPERM; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + TSP_INFO *tsp = &ist30xx_tsp_info; + + if ((sec->cmd_param[0] < 0) || (sec->cmd_param[0] >= tsp->width) || + (sec->cmd_param[1] < 0) || (sec->cmd_param[1] >= tsp->height)) { + dev_info(&data->client->dev, "%s: parameter error: %u,%u\n", + __func__, sec->cmd_param[0], sec->cmd_param[1]); + } else { + node = sec->cmd_param[0] + sec->cmd_param[1] * tsp->width; + dev_info(&data->client->dev, "%s: node = %d\n", __func__, node); + } + + return node; +} + + +extern int parse_tsp_node(u8 flag, struct TSP_NODE_BUF *node, s16 *buf16); +void run_raw_read(void *dev_data) +{ + int i, ret; + int min_val, max_val; + char buf[16] = { 0 }; + u8 flag = NODE_FLAG_RAW; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + TSP_INFO *tsp = &ist30xx_tsp_info; + + set_default_result(sec); + + ret = ist30xx_read_touch_node(flag, &tsp->node); + if (ret) { + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), tsp node read fail!\n", __func__); + return; + } + ist30xx_parse_touch_node(flag, &tsp->node); + + ret = parse_tsp_node(flag, &tsp->node, node_value); + if (ret) { + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), tsp node parse fail - flag: %d\n", __func__, flag); + return; + } + + min_val = max_val = node_value[0]; + for (i = 0; i < tsp->width * tsp->height; i++) { +#if TSP_NODE_DEBUG + if ((i % tsp->width) == 0) + printk("\n%s %4d: ", IST30XX_DEBUG_TAG, i); + + printk("%4d ", node_value[i]); +#endif + + max_val = max(max_val, (int)node_value[i]); + min_val = min(min_val, (int)node_value[i]); + } + + snprintf(buf, sizeof(buf), "%d,%d", min_val, max_val); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); +} + +void get_raw_value(void *dev_data) +{ + int idx = 0; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + idx = check_tsp_channel(data); + if (idx < 0) { // Parameter parsing fail + snprintf(buf, sizeof(buf), "%s", "NG"); + sec->cmd_state = CMD_STATE_FAIL; + } else { + snprintf(buf, sizeof(buf), "%d", node_value[idx]); + sec->cmd_state = CMD_STATE_OK; + } + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + tsp_info("%s(), [%d][%d]: %s\n", __func__, + sec->cmd_param[0], sec->cmd_param[1], buf); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); +} + + + +/* sysfs: /sys/class/sec/tsp/close_tsp_test */ +static ssize_t show_close_tsp_test(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return snprintf(buf, FACTORY_BUF_SIZE, "%u\n", 0); +} + +/* sysfs: /sys/class/sec/tsp/cmd */ +static ssize_t store_cmd(struct device *dev, struct device_attribute + *devattr, const char *buf, size_t count) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + struct sec_factory *sec = (struct sec_factory *)&data->sec; + struct i2c_client *client = data->client; + + char *cur, *start, *end; + char msg[SEC_CMD_STR_LEN] = { 0 }; + int len, i; + struct tsp_cmd *tsp_cmd_ptr = NULL; + char delim = ','; + bool cmd_found = false; + int param_cnt = 0; + int ret; + + if (sec->cmd_is_running == true) { + dev_err(&client->dev, "tsp_cmd: other cmd is running.\n"); + tsp_err("tsp_cmd: other cmd is running.\n"); + goto err_out; + } + + /* check lock */ + mutex_lock(&sec->cmd_lock); + sec->cmd_is_running = true; + mutex_unlock(&sec->cmd_lock); + + sec->cmd_state = CMD_STATE_RUNNING; + + for (i = 0; i < ARRAY_SIZE(sec->cmd_param); i++) + sec->cmd_param[i] = 0; + + len = (int)count; + if (*(buf + len - 1) == '\n') + len--; + memset(sec->cmd, 0, ARRAY_SIZE(sec->cmd)); + memcpy(sec->cmd, buf, len); + + cur = strchr(buf, (int)delim); + if (cur) + memcpy(msg, buf, cur - buf); + else + memcpy(msg, buf, len); + /* find command */ + list_for_each_entry(tsp_cmd_ptr, &sec->cmd_list_head, list) { + if (!strcmp(msg, tsp_cmd_ptr->cmd_name)) { + cmd_found = true; + break; + } + } + + /* set not_support_cmd */ + if (!cmd_found) { + list_for_each_entry(tsp_cmd_ptr, &sec->cmd_list_head, list) { + if (!strcmp("not_support_cmd", tsp_cmd_ptr->cmd_name)) + break; + } + } + + /* parsing parameters */ + if (cur && cmd_found) { + cur++; + start = cur; + memset(msg, 0, ARRAY_SIZE(msg)); + do { + if (*cur == delim || cur - buf == len) { + end = cur; + memcpy(msg, start, end - start); + *(msg + strlen(msg)) = '\0'; + ret = kstrtoint(msg, 10, \ + sec->cmd_param + param_cnt); + start = cur + 1; + memset(msg, 0, ARRAY_SIZE(msg)); + param_cnt++; + } + cur++; + } while (cur - buf <= len); + } + dev_info(&client->dev, "cmd = %s\n", tsp_cmd_ptr->cmd_name); + tsp_info("SEC CMD = %s\n", tsp_cmd_ptr->cmd_name); + + for (i = 0; i < param_cnt; i++) + dev_info(&client->dev, "cmd param %d= %d\n", i, sec->cmd_param[i]); + + tsp_cmd_ptr->cmd_func(data); + +err_out: + return count; +} + +/* sysfs: /sys/class/sec/tsp/cmd_status */ +static ssize_t show_cmd_status(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + struct sec_factory *sec = (struct sec_factory *)&data->sec; + char msg[16] = { 0 }; + + dev_info(&data->client->dev, "tsp cmd: status:%d\n", sec->cmd_state); + + if (sec->cmd_state == CMD_STATE_WAITING) + snprintf(msg, sizeof(msg), "WAITING"); + + else if (sec->cmd_state == CMD_STATE_RUNNING) + snprintf(msg, sizeof(msg), "RUNNING"); + + else if (sec->cmd_state == CMD_STATE_OK) + snprintf(msg, sizeof(msg), "OK"); + + else if (sec->cmd_state == CMD_STATE_FAIL) + snprintf(msg, sizeof(msg), "FAIL"); + + else if (sec->cmd_state == CMD_STATE_NA) + snprintf(msg, sizeof(msg), "NOT_APPLICABLE"); + + return snprintf(buf, FACTORY_BUF_SIZE, "%s\n", msg); +} + +/* sysfs: /sys/class/sec/tsp/result */ +static ssize_t show_cmd_result(struct device *dev, struct device_attribute + *devattr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + dev_info(&data->client->dev, "tsp cmd: result: %s\n", sec->cmd_result); + + mutex_lock(&sec->cmd_lock); + sec->cmd_is_running = false; + mutex_unlock(&sec->cmd_lock); + + sec->cmd_state = CMD_STATE_WAITING; + + return snprintf(buf, FACTORY_BUF_SIZE, "%s\n", sec->cmd_result); +} + + + +/* sysfs: /sys/class/sec/tsp/sec_touchscreen/tsp_firm_version_phone */ +static ssize_t phone_firmware_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + u32 ver = ist30xx_parse_ver(FLAG_PARAM, ts_data->fw.buf); + + tsp_info("%s(), IM00%04x\n", __func__, ver); + + return sprintf(buf, "IM00%04x", ver); +} + +/* sysfs: /sys/class/sec/tsp/sec_touchscreen/tsp_firm_version_panel */ +static ssize_t part_firmware_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + u32 ver = 0; + + if (ts_data->status.power == 1) + ver = ist30xxb_get_fw_ver(ts_data); + + tsp_info("%s(), IM00%04x\n", __func__, ver); + + return sprintf(buf, "IM00%04x", ver); +} + +/* sysfs: /sys/class/sec/tsp/sec_touchscreen/tsp_threshold */ +static ssize_t threshold_firmware_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int val = TSP_THRESHOLD; + + tsp_info("%s(), %d\n", __func__, val); + + return sprintf(buf, "%d", val); +} + +/* sysfs: /sys/class/sec/tsp/sec_touchscreen/tsp_firm_update */ +static ssize_t firmware_update(struct device *dev, struct device_attribute *attr, char *buf) +{ + bool ret; + + sprintf(IsfwUpdate, "%s\n", FW_DOWNLOADING); + tsp_info("%s(), %s\n", __func__, IsfwUpdate); + + ret = ist30xx_fw_recovery(ts_data); + ret = (ret == 0 ? 1 : -1); + + sprintf(IsfwUpdate, "%s\n", + (ret > 0 ? FW_DOWNLOAD_COMPLETE : FW_DOWNLOAD_FAIL)); + tsp_info("%s(), %s\n", __func__, IsfwUpdate); + + return sprintf(buf, "%d", ret); +} + +/* sysfs: /sys/class/sec/tsp/sec_touchscreen/tsp_firm_update_status */ +static ssize_t firmware_update_status(struct device *dev, struct device_attribute *attr, char *buf) +{ + tsp_info("%s(), %s\n", __func__, IsfwUpdate); + + return sprintf(buf, "%s\n", IsfwUpdate); +} + + +/* sysfs: /sys/class/sec/tsp/sec_touchkey/touchkey_menu */ +static ssize_t menu_sensitivity_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int sensitivity = ist30xxb_get_key_sensitivity(ts_data, 0); + + tsp_info("%s(), %d\n", __func__, sensitivity); + + return sprintf(buf, "%d\n", sensitivity); +} + +/* sysfs: /sys/class/sec/tsp/sec_touchkey/touchkey_back */ +static ssize_t back_sensitivity_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int sensitivity = ist30xxb_get_key_sensitivity(ts_data, 1); + + tsp_info("%s(), %d\n", __func__, sensitivity); + + return sprintf(buf, "%d\n", sensitivity); +} + +/* sysfs: /sys/class/sec/tsp/sec_touchkey/touchkey_threshold */ +static ssize_t touchkey_threshold_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int val = TKEY_THRESHOLD; + + tsp_info("%s(), %d\n", __func__, val); + + return snprintf(buf, sizeof(int), "%d\n", val); +} + + + +struct tsp_cmd tsp_cmds[] = { + { TSP_CMD("fw_update", not_support_cmd), }, + { TSP_CMD("get_fw_ver_bin", get_fw_ver_bin), }, + { TSP_CMD("get_fw_ver_ic", get_fw_ver_ic), }, + { TSP_CMD("get_config_ver", not_support_cmd), }, + { TSP_CMD("get_threshold", not_support_cmd), }, + { TSP_CMD("module_off_master", not_support_cmd), }, + { TSP_CMD("module_on_master", not_support_cmd), }, + { TSP_CMD("module_off_slave", not_support_cmd), }, + { TSP_CMD("module_on_slave", not_support_cmd), }, + { TSP_CMD("get_chip_vendor", get_chip_vendor), }, + { TSP_CMD("get_chip_name", get_chip_name), }, + { TSP_CMD("run_rawcap_read", run_raw_read), }, + { TSP_CMD("get_x_num", get_x_num), }, + { TSP_CMD("get_y_num", get_y_num), }, + { TSP_CMD("get_reference", not_support_cmd), }, + { TSP_CMD("get_cm_abs", not_support_cmd), }, + { TSP_CMD("get_rawcap", not_support_cmd), }, + { TSP_CMD("get_cm_delta", not_support_cmd), }, + { TSP_CMD("get_intensity", not_support_cmd), }, + { TSP_CMD("run_reference_read", not_support_cmd), }, + { TSP_CMD("run_cm_abs_read", not_support_cmd), }, + { TSP_CMD("run_cm_delta_read", not_support_cmd), }, + { TSP_CMD("run_intensity_read", not_support_cmd), }, + { TSP_CMD("not_support_cmd", not_support_cmd), }, +}; + + +#define SEC_DEFAULT_ATTR (S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH) +/* sysfs - touchscreen */ +static DEVICE_ATTR(tsp_firm_version_phone, SEC_DEFAULT_ATTR, + phone_firmware_show, NULL); +static DEVICE_ATTR(tsp_firm_version_panel, SEC_DEFAULT_ATTR, + part_firmware_show, NULL); +static DEVICE_ATTR(tsp_threshold, SEC_DEFAULT_ATTR, + threshold_firmware_show, NULL); +static DEVICE_ATTR(tsp_firm_update, SEC_DEFAULT_ATTR, + firmware_update, NULL); +static DEVICE_ATTR(tsp_firm_update_status, SEC_DEFAULT_ATTR, + firmware_update_status, NULL); + +/* sysfs - touchkey */ +static DEVICE_ATTR(touchkey_menu, SEC_DEFAULT_ATTR, + menu_sensitivity_show, NULL); +static DEVICE_ATTR(touchkey_back, SEC_DEFAULT_ATTR, + back_sensitivity_show, NULL); +static DEVICE_ATTR(touchkey_threshold, SEC_DEFAULT_ATTR, + touchkey_threshold_show, NULL); + +/* sysfs - tsp */ +static DEVICE_ATTR(close_tsp_test, S_IRUGO, show_close_tsp_test, NULL); +static DEVICE_ATTR(cmd, S_IWUSR | S_IWGRP, NULL, store_cmd); +static DEVICE_ATTR(cmd_status, S_IRUGO, show_cmd_status, NULL); +static DEVICE_ATTR(cmd_result, S_IRUGO, show_cmd_result, NULL); + +static struct attribute *sec_tsp_attributes[] = { + &dev_attr_tsp_firm_version_phone.attr, + &dev_attr_tsp_firm_version_panel.attr, + &dev_attr_tsp_threshold.attr, + &dev_attr_tsp_firm_update.attr, + &dev_attr_tsp_firm_update_status.attr, + NULL, +}; + +static struct attribute *sec_tkey_attributes[] = { + &dev_attr_touchkey_menu.attr, + &dev_attr_touchkey_back.attr, + &dev_attr_touchkey_threshold.attr, + NULL, +}; + +static struct attribute *sec_touch_facotry_attributes[] = { + &dev_attr_close_tsp_test.attr, + &dev_attr_cmd.attr, + &dev_attr_cmd_status.attr, + &dev_attr_cmd_result.attr, + NULL, +}; + +static struct attribute_group sec_tsp_attr_group = { + .attrs = sec_tsp_attributes, +}; + +static struct attribute_group sec_tkey_attr_group = { + .attrs = sec_tkey_attributes, +}; + +static struct attribute_group sec_touch_factory_attr_group = { + .attrs = sec_touch_facotry_attributes, +}; + +extern struct class *sec_class; +struct device *sec_touchscreen; +EXPORT_SYMBOL(sec_touchscreen); +struct device *sec_touchkey; +EXPORT_SYMBOL(sec_touchkey); +struct device *sec_fac_dev; + + +int sec_touch_sysfs(struct ist30xx_data *data) +{ + + printk("[TSP] %s\n", __func__); + /* /sys/class/sec/sec_touchscreen */ + sec_touchscreen = device_create(sec_class, NULL, 0, NULL, "sec_touchscreen"); + if (IS_ERR(sec_touchscreen)) { + tsp_err("Failed to create device (%s)!\n", "sec_touchscreen"); + return -ENODEV; + } + /* /sys/class/sec/sec_touchscreen/... */ + if (sysfs_create_group(&sec_touchscreen->kobj, &sec_tsp_attr_group)) + tsp_err("Failed to create sysfs group(%s)!\n", "sec_touchscreen"); + + /* /sys/class/sec/sec_touchkey */ + sec_touchkey = device_create(sec_class, NULL, 0, NULL, "sec_touchkey"); + if (IS_ERR(sec_touchkey)) { + tsp_err("Failed to create device (%s)!\n", "sec_touchkey"); + return -ENODEV; + } + /* /sys/class/sec/sec_touchkey/... */ + if (sysfs_create_group(&sec_touchkey->kobj, &sec_tkey_attr_group)) + tsp_err("Failed to create sysfs group(%s)!\n", "sec_touchkey"); + + /* /sys/class/sec/tsp */ + sec_fac_dev = device_create(sec_class, NULL, 0, data, "tsp"); + if (IS_ERR(sec_fac_dev)) { + tsp_err("Failed to create device (%s)!\n", "tsp"); + return -ENODEV; + } + /* /sys/class/sec/tsp/... */ + if (sysfs_create_group(&sec_fac_dev->kobj, &sec_touch_factory_attr_group)) + tsp_err("Failed to create sysfs group(%s)!\n", "tsp"); + + return 0; +} +EXPORT_SYMBOL(sec_touch_sysfs); +int sec_fac_cmd_init(struct ist30xx_data *data) +{ + int i; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + INIT_LIST_HEAD(&sec->cmd_list_head); + for (i = 0; i < ARRAY_SIZE(tsp_cmds); i++) + list_add_tail(&tsp_cmds[i].list, &sec->cmd_list_head); + + mutex_init(&sec->cmd_lock); + sec->cmd_is_running = false; + + return 0; +} +EXPORT_SYMBOL(sec_fac_cmd_init); diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb_sec.h b/drivers/input/touchscreen/ist30xxb/ist30xxb_sec.h new file mode 100755 index 00000000..a696a015 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb_sec.h @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_SEC_H__ +#define __IST30XX_SEC_H__ + + +#define SEC_CMD_STR_LEN 32 +#define SEC_CMD_RESULT_STR_LEN 512 +#define SEC_CMD_PARAM_NUM 8 + +#include "ist30xxb_tsp.h" + +struct sec_factory { + struct list_head cmd_list_head; + unsigned char cmd_state; + char cmd[SEC_CMD_STR_LEN]; + int cmd_param[SEC_CMD_PARAM_NUM]; + char cmd_result[SEC_CMD_RESULT_STR_LEN]; + struct mutex cmd_lock; + bool cmd_is_running; +}; + +#endif // __IST30XX_SEC_H__ diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb_sec_test.c b/drivers/input/touchscreen/ist30xxb/ist30xxb_sec_test.c new file mode 100755 index 00000000..ce01a49d --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb_sec_test.c @@ -0,0 +1,582 @@ +/* +* Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. +* +* 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 "ist30xxb_update.h" +#include "ist30xxb_misc.h" +#include "ist30xxb_sec_tsp.h" + +extern struct ist30xx_data *ts_data; +extern TSP_INFO ist30xx_tsp_info; +extern TKEY_INFO ist30xx_tkey_info; + + +#define TSP_BUF_SIZE (1024) +/* /sys/class/sec/tsp/close_tsp_test */ +ssize_t sec_tsp_test_close_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +DMSG("[TSP] tsp test close\n"); + +return snprintf(buf, TSP_BUF_SIZE, "%u\n", 0); +} + +/* /sys/class/sec/tsp/cmd_status */ +ssize_t sec_tsp_cmd_status_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +DMSG("[TSP] tsp cmd status : Ready"); + +return snprintf(buf, sizeof(char)*16, "Ready\n"); +} + +/* /sys/class/sec/tsp/cmd_result */ +ssize_t sec_tsp_cmd_result_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +DMSG("[TSP] tsp cmd result : Ready"); + +return snprintf(buf, sizeof(char)*16, "Ready\n"); +} + +/* /sys/class/sec/tsp/cmd */ +ssize_t sec_tsp_cmd_store(struct device *dev, +struct device_attribute *attr, const char *buf, size_t size) +{ +DMSG("[TSP] tsp cmd store\n"); + +return size; +} + +/* /sys/class/sec/tsp/intensity_logging_on */ +ssize_t sec_tsp_intensity_log_on(struct device *dev, +struct device_attribute *attr, char *buf) +{ +DMSG("[TSP] tsp intensity logging on : Ready"); + +return snprintf(buf, sizeof(char)*16, "Ready\n"); +} + +/* /sys/class/sec/tsp/intensity_logging_off */ +ssize_t sec_tsp_intensity_log_off(struct device *dev, +struct device_attribute *attr, char *buf) +{ +DMSG("[TSP] tsp intensity logging off : Ready"); + +return snprintf(buf, sizeof(char)*16, "Ready\n"); +} + + +extern ssize_t ist30xx_frame_refresh(struct device *dev, +struct device_attribute *attr, char *buf); +/* /sys/class/sec/tsp/read_frame */ +ssize_t sec_tsp_read_frame_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +int ret; + +ret = ist30xx_enter_debug_mode(); + if (ret) + return snprintf(buf, sizeof(char)*16, "fail, sec_read_frame\n"); + +ist30xx_frame_refresh(dev, attr, buf); + +return snprintf(buf, sizeof(char)*16, "sec_read_frame\n"); +} + +static u16 *node_raw_buf; +static u16 *node_baseline_buf; +/* sysfs: /sys/class/sec/tsp/read_node */ +ssize_t sec_tsp_read_node_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +int ret; + +ret = ist30xx_read_tsp_node(node_raw_buf, node_baseline_buf); + if (ret) + return snprintf(buf, sizeof(char)*16, "fail, sec_read_frame\n"); +return 0; +} + +/* sysfs: /sys/class/sec/tsp/raw */ +ssize_t sec_tsp_raw_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ + int i, j; + int count = 0; + const int msg_len = 128; + char msg[msg_len]; + TSP_INFO *tsp = &ist30xx_tsp_info; + + ist30xx_parse_tsp_node(node_raw_buf, node_baseline_buf); + + for (i = 0; i < tsp->height; i++) { + for (j = 0; j < tsp->width; j++) { + count += snprintf(msg, msg_len, + "%04d ", *node_raw_buf++); + strncat(buf, msg, msg_len); + } + + count += snprintf(msg, msg_len, "\n"); + strncat(buf, msg, msg_len); + } + + return count; +} +/* sysfs: /sys/class/sec/tsp/baseline */ +ssize_t sec_tsp_baseline_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ + int i, j; + int count = 0; + const int msg_len = 128; + char msg[msg_len]; + TSP_INFO *tsp = &ist30xx_tsp_info; + + ist30xx_parse_tsp_node(node_raw_buf, node_baseline_buf); + + for (i = 0; i < tsp->height; i++) { + for (j = 0; j < tsp->width; j++) { + count += snprintf(msg, msg_len, "%04d ", + *node_baseline_buf++); + strncat(buf, msg, msg_len); + } + + count += snprintf(msg, msg_len, "\n"); + strncat(buf, msg, msg_len); + } + + return count; +} + + +/* /sys/class/sec/tsp/chip_vendor */ +ssize_t sec_tsp_chip_vendor_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ + int ret; + +ret = ist30xx_cmd_run_device(ts_data->client); + if (ret) + return sprintf(buf, "NULL"); + +ret = ist30xx_read_cmd(ts_data->client, CMD_GET_CHIP_ID, &ts_data->chip_id); + if (ret) + return sprintf(buf, "NULL"); + +if ((ts_data->chip_id != IST30XX_CHIP_ID) && + (ts_data->chip_id != IST30XXA_CHIP_ID)) + return sprintf(buf, "NULL"); + +DMSG("[TSP] tsp chip vendor: %s\n", IST30XX_CHIP_VENDOR); + +return sprintf(buf, "%s\n", IST30XX_CHIP_VENDOR); +} + +/* /sys/class/sec/tsp/chip_name */ +ssize_t sec_tsp_chip_name_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ + int ret; + +ret = ist30xx_cmd_run_device(ts_data->client); + if (ret) + return sprintf(buf, "NULL"); + +ret = ist30xx_read_cmd(ts_data->client, CMD_GET_CHIP_ID, &ts_data->chip_id); + if (ret) + return sprintf(buf, "NULL"); + +if ((ts_data->chip_id != IST30XX_CHIP_ID) && + (ts_data->chip_id != IST30XXA_CHIP_ID)) + return sprintf(buf, "NULL"); + +DMSG("[TSP] tsp chip name: %s\n", IST30XX_CHIP_NAME); + +return sprintf(buf, "%s\n", IST30XX_CHIP_NAME); +} + +/* /sys/class/sec/tsp/panel_vendor */ +ssize_t sec_tsp_panel_vendor_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ + int ret; +u32 panel_vendor; + +ret = ist30xx_cmd_run_device(ts_data->client); + if (ret) + return sprintf(buf, "NULL"); + +ret = ist30xx_read_cmd(ts_data->client, CMD_GET_TSP_VENDOR, &panel_vendor); + if (ret) + return sprintf(buf, "NULL"); + +DMSG("[TSP] tsp panel vendor: %d\n", panel_vendor); + +return sprintf(buf, "%d\n", panel_vendor); +} + +/* /sys/class/sec/tsp/fw_ver */ +ssize_t sec_tsp_fw_ver_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ + int ret; + +ret = ist30xx_cmd_run_device(ts_data->client); + if (ret) + return sprintf(buf, "NULL"); + +ret = ist30xx_read_cmd(ts_data->client, CMD_GET_FW_VER, &ts_data->fw.ver); + if (ret) + return sprintf(buf, "NULL"); + +ret = ist30xx_read_cmd(ts_data->client, CMD_GET_PARAM_VER, &ts_data->param_ver); + if (ret) + return sprintf(buf, "NULL"); + +DMSG("[TSP] tsp version: %d(%d.%d.%d)\n", ts_data->param_ver, +(ts_data->fw.ver>>16) & 0xFF, (ts_data->fw.ver>>8) & 0xFF, +ts_data->fw.ver & 0xFF); + +return sprintf(buf, "%d(%d.%d.%d)\n", ts_data->param_ver, +(ts_data->fw.ver>>16) & 0xFF, (ts_data->fw.ver>>8) & 0xFF, +ts_data->fw.ver & 0xFF); +} + +/* /sys/class/sec/tsp/raw_range */ +ssize_t sec_tsp_raw_range_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +DMSG("[TSP] tsp raw range: %d~%d\n", +IST30XX_MIN_RAW_DATA, IST30XX_MAX_RAW_DATA); + +return sprintf(buf, "%d,%d\n", IST30XX_MIN_RAW_DATA, IST30XX_MAX_RAW_DATA); +} + +/* /sys/class/sec/tsp/base_range */ +ssize_t sec_tsp_base_range_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +DMSG("[TSP] tsp base range: %d~%d\n", +IST30XX_MIN_BASELINE, IST30XX_MAX_BASELINE); + +return sprintf(buf, "%d,%d\n", IST30XX_MIN_BASELINE, IST30XX_MAX_BASELINE); +} + +/* /sys/class/sec/tsp/zval_range */ +ssize_t sec_tsp_zval_range_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +DMSG("[TSP] tsp raw range: %d~%d\n", +IST30XX_MIN_ZVALUE_TSP, IST30XX_MAX_ZVALUE_TSP); + +return sprintf(buf, "%d,%d\n", +IST30XX_MIN_ZVALUE_TSP, IST30XX_MAX_ZVALUE_TSP); +} + +/* /sys/class/sec/tsp/node_num */ +ssize_t sec_tsp_node_num_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +DMSG("[TSP] tsp node num: width:%d, height: %d\n", +ist30xx_tsp_info.width, ist30xx_tsp_info.height); + +return sprintf(buf, "%d,%d\n", +ist30xx_tsp_info.width, ist30xx_tsp_info.height); +} + + +/* /sys/class/sec/tkey/tkey_back */ +ssize_t sec_back_key_state_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +int key_state=0; + +DMSG("[TSP] back tkey state: %d\n", key_state); + +return snprintf(buf, sizeof(buf), "%d\n", key_state); +} + +/* /sys/class/sec/tkey/tkey_menu */ +ssize_t sec_menu_key_state_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +int key_state=0; + +DMSG("[TSP] menu tkey state: %d\n", key_state); + +return snprintf(buf, sizeof(int), "%d\n", key_state); +} + +/* /sys/class/sec/tkey/tkey_hom */ +ssize_t sec_home_key_state_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +int key_state=0; + +DMSG("[TSP] home tkey state: %d\n", key_state); + +return snprintf(buf, sizeof(int), "%d\n", key_state); +} + +/* /sys/class/sec/tkey/tkey_recent */ +ssize_t sec_recent_key_state_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +int key_state=0; + +DMSG("[TSP] recent tkey state: %d\n", key_state); + +return snprintf(buf, sizeof(int), "%d\n", key_state); +} + +/* /sys/class/sec/tkey/tkey_threshold */ +ssize_t sec_tkey_threshold_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +int threshold=0; + +DMSG("[TSP] touch tkey threshold: %d\n", threshold); + +return snprintf(buf, sizeof(int), "%d\n", threshold); +} + +/* /sys/class/sec/tkey/tkey_raw_data0 */ +ssize_t sec_tkey_rawcnt0_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +int raw_cnt=0; + +DMSG("[TSP] raw counter0: %d\n", raw_cnt); + +return snprintf(buf, sizeof(int), "%d\n", raw_cnt); +} + +/* /sys/class/sec/tkey/tkey_raw_data1 */ +ssize_t sec_tkey_rawcnt1_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +int raw_cnt=0; + +DMSG("[TSP] raw counter1: %d\n", raw_cnt); + +return snprintf(buf, sizeof(int), "%d\n", raw_cnt); +} + +/* /sys/class/sec/tkey/tkey_raw_data2 */ +ssize_t sec_tkey_rawcnt2_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +int raw_cnt=0; + +DMSG("[TSP] raw counter2: %d\n", raw_cnt); + +return snprintf(buf, sizeof(int), "%d\n", raw_cnt); +} + +/* /sys/class/sec/tkey/tkey_raw_data3 */ +ssize_t sec_tkey_rawcnt3_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +int raw_cnt=0; + +DMSG("[TSP] raw counter3 : %d\n", raw_cnt); + +return snprintf(buf, sizeof(int), "%d\n", raw_cnt); +} + + +extern bool get_zvalue_mode; +extern int ist30xx_zvalue; +/* /sys/class/sec/tkey/tkey_zvalue */ +ssize_t sec_tkey_zvalue_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +u32 zvalue = ist30xx_zvalue; +DMSG("[TSP] tkey zvalue: %d\n", zvalue); + +ist30xx_zvalue = 0; + +return snprintf(buf, sizeof(int), "%d\n", zvalue); +} + +ssize_t sec_tkey_zvalue_store(struct device *dev, +struct device_attribute *attr, const char *buf, size_t size) +{ +int ret; +int cmd; +u32 val; + +sscanf(buf, "%d", &cmd); + +DMSG("[TSP] tkey zvalue cmd(%d)\n", cmd); + +val = (cmd > 0 ? 0x00C80001 : 0); + +if (cmd) { + ist30xx_disable_irq(ts_data); + ist30xx_cmd_run_device(ts_data->client); + ist30xx_enable_irq(ts_data); +} + +ret = ist30xx_write_cmd(ts_data->client, CMD_ZVALUE_MODE, val); + if (ret) { + pr_err("[ TSP ] fail, zvalue mode enter(%d)\n", ret); +return size; + } + +get_zvalue_mode = (cmd > 0 ? true : false); + +DMSG("[TSP] tkey zvalue val: %x, cmd: %d\n", val, cmd); + +return size; +} + +/* /sys/class/sec/tkey/tkey_zval_range */ +ssize_t sec_tkey_zval_range_show(struct device *dev, +struct device_attribute *attr, char *buf) +{ +DMSG("[TSP] zvalue range: %d~%d\n", +IST30XX_MIN_ZVALUE_TKEY, IST30XX_MAX_ZVALUE_TKEY); + +return sprintf(buf, "%d,%d\n", +IST30XX_MIN_ZVALUE_TKEY, IST30XX_MAX_ZVALUE_TKEY); +} + + +/* sysfs */ +static DEVICE_ATTR(close_tsp_test, S_IRUGO, sec_tsp_test_close_show, NULL); +static DEVICE_ATTR(cmd_status, S_IRUGO, sec_tsp_cmd_status_show, NULL); +static DEVICE_ATTR(cmd_result, S_IRUGO, sec_tsp_cmd_result_show, NULL); +static DEVICE_ATTR(cmd, S_IWUSR | S_IWGRP, NULL, sec_tsp_cmd_store); + +static DEVICE_ATTR(intensity_logging_on, S_IRUGO, sec_tsp_intensity_log_on, +NULL); +static DEVICE_ATTR(intensity_logging_off, S_IRUGO, sec_tsp_intensity_log_off, +NULL); + +static DEVICE_ATTR(read_frame, S_IRUGO, sec_tsp_read_frame_show, NULL); +static DEVICE_ATTR(read_node, S_IRUGO, sec_tsp_read_node_show, NULL); +static DEVICE_ATTR(raw, S_IRUGO, sec_tsp_raw_show, NULL); +static DEVICE_ATTR(baseline, S_IRUGO, sec_tsp_baseline_show, NULL); +static DEVICE_ATTR(chip_vendor, S_IRUGO, sec_tsp_chip_vendor_show, NULL); +static DEVICE_ATTR(chip_name, S_IRUGO, sec_tsp_chip_name_show, NULL); +static DEVICE_ATTR(panel_vendor, S_IRUGO, sec_tsp_panel_vendor_show, NULL); +static DEVICE_ATTR(fw_ver, S_IRUGO, sec_tsp_fw_ver_show, NULL); +static DEVICE_ATTR(raw_range, S_IRUGO, sec_tsp_raw_range_show, NULL); +static DEVICE_ATTR(base_range, S_IRUGO, sec_tsp_base_range_show, NULL); +static DEVICE_ATTR(zval_range, S_IRUGO, sec_tsp_zval_range_show, NULL); +static DEVICE_ATTR(node_num, S_IRUGO, sec_tsp_node_num_show, NULL); + +static struct attribute *sec_tsp_attributes[] = { +&dev_attr_close_tsp_test.attr, +&dev_attr_cmd.attr, +&dev_attr_cmd_status.attr, +&dev_attr_cmd_result.attr, + +&dev_attr_intensity_logging_on.attr, +&dev_attr_intensity_logging_off.attr, + +&dev_attr_read_frame.attr, +&dev_attr_read_node.attr, +&dev_attr_raw.attr, +&dev_attr_baseline.attr, +&dev_attr_chip_vendor.attr, +&dev_attr_chip_name.attr, +&dev_attr_panel_vendor.attr, +&dev_attr_fw_ver.attr, +&dev_attr_raw_range.attr, +&dev_attr_base_range.attr, +&dev_attr_zval_range.attr, +&dev_attr_node_num.attr, + +NULL, +}; +static struct attribute_group sec_tsp_attr_group = { +.attrs = sec_tsp_attributes, +}; + +static DEVICE_ATTR(tkey_back, S_IRUGO, sec_back_key_state_show, NULL); +static DEVICE_ATTR(tkey_home, S_IRUGO, sec_home_key_state_show, NULL); +static DEVICE_ATTR(tkey_menu, S_IRUGO, sec_menu_key_state_show, NULL); +static DEVICE_ATTR(tkey_recent, S_IRUGO, sec_recent_key_state_show, NULL); +static DEVICE_ATTR(tkey_threshold, S_IRUGO, sec_tkey_threshold_show, NULL); +static DEVICE_ATTR(tkey_raw_data0, S_IRUGO, sec_tkey_rawcnt0_show, NULL); +static DEVICE_ATTR(tkey_raw_data1, S_IRUGO, sec_tkey_rawcnt1_show, NULL); +static DEVICE_ATTR(tkey_raw_data2, S_IRUGO, sec_tkey_rawcnt2_show, NULL); +static DEVICE_ATTR(tkey_raw_data3, S_IRUGO, sec_tkey_rawcnt3_show, NULL); +static DEVICE_ATTR(tkey_zvalue, S_IRWXUGO, + sec_tkey_zvalue_show, sec_tkey_zvalue_store); +static DEVICE_ATTR(tkey_zval_range, S_IRUGO, sec_tkey_zval_range_show, NULL); + +static struct attribute *sec_tkey_attributes[] = { +&dev_attr_tkey_back.attr, +&dev_attr_tkey_home.attr, +&dev_attr_tkey_menu.attr, +&dev_attr_tkey_recent.attr, +&dev_attr_tkey_threshold.attr, +&dev_attr_tkey_raw_data0.attr, +&dev_attr_tkey_raw_data1.attr, +&dev_attr_tkey_raw_data2.attr, +&dev_attr_tkey_raw_data3.attr, + +&dev_attr_tkey_zvalue.attr, +&dev_attr_tkey_zval_range.attr, +NULL, +}; +static struct attribute_group sec_tkey_attr_group = { +.attrs = sec_tkey_attributes, +}; + + +struct class *sec_dev_class; +struct device *sec_tsp_dev; +struct device *sec_tk_dev; + + +int ist30xx_sec_sysfs(void) +{ + +sec_dev_class = class_create(THIS_MODULE, "sec_factory"); +if (!sec_dev_class) + pr_err("[ TSP ] Failed to create device class(%s)!\n", "sec"); + +/* /sys/class/sec_factory/tsp */ + sec_tsp_dev = device_create(sec_dev_class, NULL, 0, NULL, "tsp"); + + /* /sys/class/sec/tsp/... */ + if (sysfs_create_group(&sec_tsp_dev->kobj, &sec_tsp_attr_group)) + pr_err( + "[ TSP ] Failed to create sysfs group(%s)!\n", + "sec_tsp"); + + /* /sys/class/sec/tkey */ + sec_tk_dev = device_create(sec_dev_class, NULL, 0, NULL, "tkey"); + + /* /sys/class/sec/tkey/... */ +if (sysfs_create_group(&sec_tk_dev->kobj, &sec_tkey_attr_group)) + pr_err("[ TSP ] Failed to create sysfs group(%s)!\n", "tkey"); + + node_raw_buf = kmalloc(4096, GFP_KERNEL); + node_baseline_buf = kmalloc(4096, GFP_KERNEL); + + return 0; +} +EXPORT_SYMBOL(ist30xx_sec_sysfs); diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb_sec_tsp.h b/drivers/input/touchscreen/ist30xxb/ist30xxb_sec_tsp.h new file mode 100755 index 00000000..48f1c8f7 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb_sec_tsp.h @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_SEC_TSP_H__ +#define __IST30XX_SEC_TSP_H__ + +#define IST30XX_DD_VERSION (1) + +#define IST30XX_CHIP_VENDOR ("IMAGIS") +#define IST30XX_CHIP_NAME ("IST30xx Series") + +#define IST30XX_MIN_RAW_DATA (2100) +#define IST30XX_MAX_RAW_DATA (3900) + +#define IST30XX_MIN_BASELINE (2100) +#define IST30XX_MAX_BASELINE (3900) + +#define IST30XX_MIN_ZVALUE_TSP (175) +#define IST30XX_MAX_ZVALUE_TSP (325) + +#define IST30XX_MIN_ZVALUE_TKEY (210) +#define IST30XX_MAX_ZVALUE_TKEY (390) + +#endif /* __IST30XX_SEC_TSP_H__ */ diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb_sys.c b/drivers/input/touchscreen/ist30xxb/ist30xxb_sys.c new file mode 100644 index 00000000..1c90ca70 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb_sys.c @@ -0,0 +1,413 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 + +/****************************************************************************** + * Return value of Error + * EPERM : 1 (Operation not permitted) + * ENOENT : 2 (No such file or directory) + * EIO : 5 (I/O error) + * ENXIO : 6 (No such device or address) + * EINVAL : 22 (Invalid argument) + *****************************************************************************/ + +extern struct ist30xx_data *ts_data; +#if IST30XX_NOISE_MODE +#endif +const u32 pos_cmd = cpu_to_be32(CMD_GET_COORD); +struct i2c_msg pos_msg[READ_CMD_MSG_LEN] = { + { + .flags = 0, + .len = IST30XX_ADDR_LEN, + .buf = (u8 *)&pos_cmd, + }, + { .flags = I2C_M_RD, }, +}; + +int ist30xx_get_position(struct i2c_client *client, u32 *buf, u16 len) +{ + int ret, i; + + pos_msg[0].addr = client->addr; + pos_msg[1].addr = client->addr; + pos_msg[1].len = len * IST30XX_DATA_LEN, + pos_msg[1].buf = (u8 *)buf, + + ret = i2c_transfer(client->adapter, pos_msg, READ_CMD_MSG_LEN); + if (ret != READ_CMD_MSG_LEN) { + tsp_err("%s: i2c failed (%d)\n", __func__, ret); + return -EIO; + } + + for (i = 0; i < len; i++) + buf[i] = cpu_to_be32(buf[i]); + + return 0; +} + +int ist30xx_cmd_run_device(struct i2c_client *client) +{ + int ret = -EIO; + + ist30xx_reset(); + ret = ist30xx_write_cmd(client, CMD_RUN_DEVICE, 0); + msleep(10); + + return ret; +} + +int ist30xx_cmd_start_scan(struct i2c_client *client) +{ + int ret; + + ret = ist30xx_write_cmd(client, CMD_START_SCAN, 0); + + msleep(100); + +#if IST30XX_NOISE_MODE + ts_data->status.noise_mode = true; +#endif + + return ret; +} + +int ist30xx_cmd_calibrate(struct i2c_client *client) +{ + int ret = ist30xx_write_cmd(client, CMD_CALIBRATE, 0); + + tsp_info("%s\n", __func__); + + msleep(100); + + return ret; +} + +int ist30xx_cmd_check_calib(struct i2c_client *client) +{ + int ret = ist30xx_write_cmd(client, CMD_CHECK_CALIB, 0); + + tsp_info("*** Check Calibration cmd ***\n"); + + msleep(20); + + return ret; +} + +int ist30xx_cmd_update(struct i2c_client *client, int cmd) +{ + u32 val = (cmd == CMD_ENTER_FW_UPDATE ? CMD_FW_UPDATE_MAGIC : 0); + int ret = ist30xx_write_cmd(client, cmd, val); + + msleep(10); + + return ret; +} + +int ist30xx_cmd_reg(struct i2c_client *client, int cmd) +{ + int ret = ist30xx_write_cmd(client, cmd, 0); + + if (cmd == CMD_ENTER_REG_ACCESS) + msleep(100); + else if (cmd == CMD_EXIT_REG_ACCESS) + msleep(10); + + return ret; +} + + +int ist30xx_read_cmd(struct i2c_client *client, u32 cmd, u32 *buf) +{ + int ret; + u32 le_reg = cpu_to_be32(cmd); + + struct i2c_msg msg[READ_CMD_MSG_LEN] = { + { + .addr = client->addr, + .flags = 0, + .len = IST30XX_ADDR_LEN, + .buf = (u8 *)&le_reg, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = IST30XX_DATA_LEN, + .buf = (u8 *)buf, + }, + }; + + ret = i2c_transfer(client->adapter, msg, READ_CMD_MSG_LEN); + if (ret != READ_CMD_MSG_LEN) { + tsp_err("%s: i2c failed (%d), cmd: %x\n", __func__, ret, cmd); + return -EIO; + } + *buf = cpu_to_be32(*buf); + + return 0; +} + + +int ist30xx_write_cmd(struct i2c_client *client, u32 cmd, u32 val) +{ + int ret; + struct i2c_msg msg; + u8 msg_buf[IST30XX_ADDR_LEN + IST30XX_DATA_LEN]; + + put_unaligned_be32(cmd, msg_buf); + put_unaligned_be32(val, msg_buf + IST30XX_ADDR_LEN); + + msg.addr = client->addr; + msg.flags = 0; + msg.len = IST30XX_ADDR_LEN + IST30XX_DATA_LEN; + msg.buf = msg_buf; + + ret = i2c_transfer(client->adapter, &msg, WRITE_CMD_MSG_LEN); + if (ret != WRITE_CMD_MSG_LEN) { + tsp_err("%s: i2c failed (%d), cmd: %x(%x)\n", __func__, ret, cmd, val); + return -EIO; + } + + return 0; +} + +#define TSP_PWR_LDO_GPIO 41 +#define GPIO_TSP_SCL 35 +#define GPIO_TSP_SDA 40 +static struct regulator *touch_regulator; +#if defined(CONFIG_MACH_CORSICA_VE) || defined(CONFIG_MACH_POCKET2) || defined(CONFIG_MACH_VIVALTO) +static void ts_power_enable(int en) +{ + int ret=0; + struct regulator *touch_regulator_1v8 = NULL; + struct regulator *touch_regulator_3v3 = NULL; + + tsp_info("[TSP] %s, %d\n", __func__, en ); + + touch_regulator_1v8 = regulator_get(NULL,"vddsim2"); + if (IS_ERR(touch_regulator_1v8)) { + touch_regulator_1v8 = NULL; + tsp_info("get touch_regulator_1v8 regulator error\n"); + return; + } + +#ifdef CONFIG_TSP_0_1_A + touch_regulator_3v3 = regulator_get(NULL,"vddcon"); +#else + touch_regulator_3v3 = regulator_get(NULL,"vddcammot"); +#endif + if (IS_ERR(touch_regulator_3v3)) { + touch_regulator_1v8 = NULL; + tsp_info("get touch_regulator_3v3 regulator error\n"); + return; + } + + if(en) { + regulator_set_voltage(touch_regulator_1v8, 1800000, 1800000); + ret = regulator_enable(touch_regulator_1v8); + if (ret) { + tsp_info(KERN_ERR "%s: touch_regulator_1v8 enable failed (%d)\n",__func__, ret); + } + + regulator_set_voltage(touch_regulator_3v3, 3300000, 3300000); + ret = regulator_enable(touch_regulator_3v3); + if (ret) { + tsp_info(KERN_ERR "%s: touch_regulator_3v3 enable failed (%d)\n",__func__, ret); + } + } + else + { + ret = regulator_disable(touch_regulator_1v8); + if (ret) { + tsp_info(KERN_ERR "%s: touch_regulator_3v0 disable failed (%d)\n",__func__, ret); + } + + ret = regulator_disable(touch_regulator_3v3); + if (ret) { + tsp_info(KERN_ERR "%s: touch_regulator_3v0 disable failed (%d)\n",__func__, ret); + } + } +} +#elif defined(CONFIG_MACH_YOUNG2) +static void ts_power_enable(int en) +{ + int ret=0; + struct regulator *touch_regulator_3v0 = NULL; + + tsp_info("[TSP] %s, %d\n", __func__, en ); + + touch_regulator_3v0 = regulator_get(NULL,"vddsim2"); + if (IS_ERR(touch_regulator_3v0)) { + touch_regulator_3v0 = NULL; + tsp_info("get touch_regulator_3v0 regulator error\n"); + return; + } + if(en) { + regulator_set_voltage(touch_regulator_3v0, 3000000, 3000000); + ret = regulator_enable(touch_regulator_3v0); + if (ret) { + tsp_info(KERN_ERR "%s: touch_regulator_3v0 enable failed (%d)\n",__func__, ret); + } + } + else + { + ret = regulator_disable(touch_regulator_3v0); + if (ret) { + tsp_info(KERN_ERR "%s: touch_regulator_3v0 disable failed (%d)\n",__func__, ret); + } + } +} +#elif defined(CONFIG_MACH_PIKEAYOUNG2DTV) +static void ts_power_enable(int en) +{ + int ret=0; + struct regulator *touch_regulator_1v8 = NULL; + struct regulator *touch_regulator_3v3 = NULL; + + tsp_info("[TSP] %s, %d\n", __func__, en ); + + touch_regulator_3v3 = regulator_get(NULL,"vddsim2"); + if (IS_ERR(touch_regulator_3v3)) { + touch_regulator_3v3 = NULL; + tsp_info("get touch_regulator_1v8 regulator error\n"); + return; + } + + touch_regulator_1v8 = regulator_get(NULL,"vdd18"); + + if (IS_ERR(touch_regulator_1v8)) { + touch_regulator_1v8 = NULL; + tsp_info("get touch_regulator_1v8 regulator error\n"); + return; + } + + if(en) { + regulator_set_voltage(touch_regulator_1v8, 1800000, 1800000); + ret = regulator_enable(touch_regulator_1v8); + if (ret) { + tsp_info(KERN_ERR "%s: touch_regulator_1v8 enable failed (%d)\n",__func__, ret); + } + + regulator_set_voltage(touch_regulator_3v3, 3000000, 3000000); + ret = regulator_enable(touch_regulator_3v3); + if (ret) { + tsp_info(KERN_ERR "%s: touch_regulator_3v0 enable failed (%d)\n",__func__, ret); + } + } + else + { + ret = regulator_disable(touch_regulator_3v3); + if (ret) { + tsp_info(KERN_ERR "%s: touch_regulator_3v0 disable failed (%d)\n",__func__, ret); + } + } +} +#endif +int ist30xx_power_on(void) +{ + if (ts_data->status.power != 1) { + tsp_info("%s()\n", __func__); + /* VDD enable */ + msleep(5); + /* VDDIO enable */ + ts_power_enable(1); + msleep(100); + ts_data->status.power = 1; + } + + return 0; +} + + +int ist30xx_power_off(void) +{ + if (ts_data->status.power != 0) { + tsp_info("%s()\n", __func__); + /* VDDIO disable */ + msleep(5); + + /* VDD disable */ + ts_power_enable(0); + msleep(50); + ts_data->status.power = 0; + ts_data->status.noise_mode = false; + } + + return 0; +} + + +int ist30xx_reset(void) +{ + tsp_info("%s()\n", __func__); + ist30xx_power_off(); + msleep(10); + ist30xx_power_on(); + + ts_data->status.power = 1; + return 0; +} + + +int ist30xx_internal_suspend(struct ist30xx_data *data) +{ + ist30xx_power_off(); + return 0; +} + + +int ist30xx_internal_resume(struct ist30xx_data *data) +{ + ist30xx_power_on(); + ist30xx_write_cmd(data->client, CMD_RUN_DEVICE, 0); + msleep(10); + return 0; +} + + +int ist30xx_init_system(void) +{ + int ret; + + // TODO : place additional code here. +#if 1 + ret = ist30xx_power_on(); + if (ret) { + printk("[TSP] %s: ist30xx_power_on failed (%d)\n", __func__, ret); + return -EIO; + } +#endif + +#if 0 + ret = ist30xx_reset(); + if (ret) { + tsp_err("%s: ist30xx_reset failed (%d)\n", __func__, ret); + return -EIO; + } +#endif + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb_tracking.c b/drivers/input/touchscreen/ist30xxb/ist30xxb_tracking.c new file mode 100755 index 00000000..706e4cb7 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb_tracking.c @@ -0,0 +1,205 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xxb_update.h" +#include "ist30xxb_misc.h" +#include "ist30xxb_tracking.h" + +#define S_IRWXUGO 0644 + +IST30XX_RING_BUF TrackBuf; +IST30XX_RING_BUF *pTrackBuf; + +void ist30xx_tracking_init(void) +{ + pTrackBuf = &TrackBuf; + + pTrackBuf->RingBufCtr = 0; + pTrackBuf->RingBufInIdx = 0; + pTrackBuf->RingBufOutIdx = 0; +} + +void ist30xx_tracking_deinit(void) +{ +} + +int ist30xx_get_track(u32 *ms, u32 *status) +{ + unsigned long flags; + //spinlock_t mr_lock = SPIN_LOCK_UNLOCKED; + spinlock_t mr_lock = __SPIN_LOCK_UNLOCKED(); + + if (!pTrackBuf->RingBufCtr) + return IST30XX_RINGBUF_EMPTY; + + spin_lock_irqsave(&mr_lock, flags); + + if (pTrackBuf->RingBufOutIdx == IST30XX_RINGBUF_SIZE) + pTrackBuf->RingBufOutIdx = 0; + *ms = pTrackBuf->TimeBuf[pTrackBuf->RingBufOutIdx]; + *status = pTrackBuf->StatusBuf[pTrackBuf->RingBufOutIdx]; + + pTrackBuf->RingBufOutIdx++; + pTrackBuf->RingBufCtr--; + + spin_unlock_irqrestore(&mr_lock, flags); + + return IST30XX_RINGBUF_NO_ERR; +} + +int ist30xx_get_track_cnt(void) +{ + return pTrackBuf->RingBufCtr; +} + +#if IST30XX_TRACKING_MODE +int ist30xx_put_track(u32 ms, u32 status) +{ + unsigned long flags; + //spinlock_t mr_lock = SPIN_LOCK_UNLOCKED; + spinlock_t mr_lock = __SPIN_LOCK_UNLOCKED(); + #if PRINT_TSP_LOG + printk("[TSP] %s : %d\n", __func__, __LINE__); + #endif + //spin_lock_irqsave(&mr_lock, flags); + return 0; + pTrackBuf->RingBufCtr++; + + if (pTrackBuf->RingBufCtr > IST30XX_RINGBUF_SIZE) { + pTrackBuf->RingBufCtr = IST30XX_RINGBUF_SIZE; + pTrackBuf->RingBufOutIdx++; + } + if (pTrackBuf->RingBufInIdx == IST30XX_RINGBUF_SIZE) + pTrackBuf->RingBufInIdx = 0; + if (pTrackBuf->RingBufOutIdx == IST30XX_RINGBUF_SIZE) + pTrackBuf->RingBufOutIdx = 0; + pTrackBuf->TimeBuf[pTrackBuf->RingBufInIdx] = ms; + pTrackBuf->StatusBuf[pTrackBuf->RingBufInIdx] = status; + pTrackBuf->RingBufInIdx++; + //spin_unlock_irqrestore(&mr_lock, flags); + + return IST30XX_RINGBUF_NO_ERR; +} + +static struct timespec t_track; +int ist30xx_tracking(u32 status) +{ + u32 ms; + + ktime_get_ts(&t_track); + ms = t_track.tv_sec * 1000 + t_track.tv_nsec / 1000000; + + return ist30xx_put_track(ms, status); +} +#else +int ist30xx_put_track(u32 ms, u32 status) +{ + return 0; +} +int ist30xx_tracking(u32 status) +{ + return 0; +} +#endif // IST30XX_TRACKING_MODE + +#define MAX_TRACKING_COUNT (300) +struct timespec t_curr; // ns + +/* sysfs: /sys/class/touch/tracking/track_frame */ +ssize_t ist30xx_track_frame_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int i, buf_cnt = 0; + int track_cnt = MAX_TRACKING_COUNT; + u32 *buf32 = (u32 *)buf; + u32 ms = 0, status = 0; + finger_info *finger = (finger_info *)&status; + + mutex_lock(&ist30xx_mutex); + + buf[0] = '\0'; + + if (track_cnt > ist30xx_get_track_cnt()) + track_cnt = ist30xx_get_track_cnt(); + + tsp_verb("num: %d of %d\n", track_cnt, ist30xx_get_track_cnt()); + + for (i = 0; i < track_cnt; i++) { + ist30xx_get_track(&ms, &status); + finger = (finger_info *)&status; + + tsp_verb("%08X: %08x\n", ms, status); + *buf32++ = ms; + *buf32++ = status; + + buf_cnt += (sizeof(u32) * 2); + } + + mutex_unlock(&ist30xx_mutex); + + return buf_cnt; +} + +/* sysfs: /sys/class/touch/tracking/track_cnt */ +ssize_t ist30xx_track_cnt_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + u32 *buf32 = (u32 *)buf; + + *buf32 = (u32)ist30xx_get_track_cnt(); + + tsp_verb("cnt: %d\n", *buf32); + + return sizeof(u32); +} + + +/* sysfs */ +static DEVICE_ATTR(track_frame, S_IRWXUGO, ist30xx_track_frame_show, NULL); +static DEVICE_ATTR(track_cnt, S_IRWXUGO, ist30xx_track_cnt_show, NULL); + +static struct attribute *tracking_attributes[] = { + &dev_attr_track_frame.attr, + &dev_attr_track_cnt.attr, + NULL, +}; + +static struct attribute_group tracking_attr_group = { + .attrs = tracking_attributes, +}; + +extern struct class *ist30xx_class; +struct device *ist30xx_tracking_dev; + +int ist30xx_init_tracking_sysfs(void) +{ + /* /sys/class/touch/tracking */ + ist30xx_tracking_dev = device_create(ist30xx_class, NULL, 0, NULL, "tracking"); + + /* /sys/class/touch/tracking/... */ + if (sysfs_create_group(&ist30xx_tracking_dev->kobj, &tracking_attr_group)) + tsp_err("[ TSP ] Failed to create sysfs group(%s)!\n", "tracking"); + + ist30xx_tracking_init(); + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb_tracking.h b/drivers/input/touchscreen/ist30xxb/ist30xxb_tracking.h new file mode 100755 index 00000000..7cfbecfc --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb_tracking.h @@ -0,0 +1,51 @@ +#ifndef __IST30XX_TRACKING_H__ +#define __IST30XX_TRACKING_H__ + + +#define IST30XX_RINGBUF_NO_ERR (0) +#define IST30XX_RINGBUF_NOT_ENOUGH (1) +#define IST30XX_RINGBUF_EMPTY (2) +#define IST30XX_RINGBUF_FULL (3) +#define IST30XX_RINGBUF_TIMEOUT (4) +#define IST30XX_RINGBUF_SIZE (1024) + +#define TRACK_PWR_OFF (0x0) +#define TRACK_PWR_ON (0x1) +#define TRACK_PWR_RESET (0x3) +#define TRACK_INTR_ENABLE (0x4) +#define TRACK_INTR_DISABLE (0x5) +#define TRACK_CMD_SCAN (0x11) +#define TRACK_CMD_TACON (0x12) +#define TRACK_CMD_TADISCON (0x13) +#define TRACK_CMD_FWUPDATE (0x14) +#define TRACK_CMD_PRUPDATE (0x15) +#define TRACK_CMD_CALIB (0x16) +#define TRACK_CMD_CHKSUM (0x17) +#define TRACK_CMD_CHKSUM_ALL (0x18) +#define TRACK_POS_FINGER (0x20) +#define TRACK_POS_KEY (0x30) +#define TRACK_POS_UNKNOWN (0x3F) + + +typedef struct _IST30XX_RINGBUF { + u16 RingBufCtr; // Number of characters in the ring buffer + u16 RingBufInIdx; + u16 RingBufOutIdx; + u32 TimeBuf[IST30XX_RINGBUF_SIZE]; // Ring buffer for time + u32 StatusBuf[IST30XX_RINGBUF_SIZE]; // Ring buffer for status +} IST30XX_RING_BUF; + + +void ist30xx_tracking_init(void); +void ist30xx_tracking_deinit(void); + +int ist30xx_put_track(u32 ms, u32 status); +int ist30xx_get_track(u32 *ms, u32 *status); + +int ist30xx_get_track_cnt(void); + +int ist30xx_tracking(u32 status); + +int ist30xx_init_tracking_sysfs(void); + +#endif // __IST30XX_TRACKING_H__ diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb_tsp.h b/drivers/input/touchscreen/ist30xxb/ist30xxb_tsp.h new file mode 100755 index 00000000..132128ae --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb_tsp.h @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_TSP_H__ +#define __IST30XX_TSP_H__ + +#define IST30XX_DD_VERSION (2) + +#define IST30XX_MULTIPLE_TSP (0) + +#define TSP_CHIP_VENDOR ("IMAGIS") +#define TSP_CHIP_NAME ("IST3032B") + +#define IST30XXB_PARSE_TSPTYPE(k) ((k >> 1) & 0xF) + +#define TSP_TYPE_UNKNOWN (0xF0) +#define TSP_TYPE_ALPS (0xF) +#define TSP_TYPE_EELY (0xE) +#define TSP_TYPE_TOP (0xD) +#define TSP_TYPE_DIGITECH (0xC) +#define TSP_TYPE_ILJIN (0xB) +#define TSP_TYPE_SYNOPEX (0xA) +#define TSP_TYPE_SMAC (0x9) +#define TSP_TYPE_TAEYANG (0x8) +#define TSP_TYPE_TOVIS (0x7) +#define TSP_TYPE_ELK (0x6) + +#define FLAG_NODE_Y (0) +#define FLAG_NODE_X (1) + +#define NODE_TX_NUM (18) +#define NODE_RX_NUM (13) +#define NODE_TOTAL_NUM (TSP_TX_NUM * TSP_RX_NUM) + +#define TSP_TX_NUM (18) +#define TSP_RX_NUM (12) +#define TSP_TOTAL_NUM (TSP_TX_NUM * TSP_RX_NUM) + +#define TSP_THRESHOLD (30) +#define TKEY_THRESHOLD (350) + +#endif // __IST30XX_TSP_H__ diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb_update.c b/drivers/input/touchscreen/ist30xxb/ist30xxb_update.c new file mode 100644 index 00000000..40b1f6df --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb_update.c @@ -0,0 +1,1363 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xxb_update.h" + +#if IST30XX_DEBUG +#include "ist30xxb_misc.h" +#endif + +#if IST30XX_INTERNAL_BIN +#if defined(CONFIG_MACH_POCKET2) +#include "IST30xxB_FW_Star2_Ver0002.h" +#elif defined(CONFIG_MACH_YOUNG2) +#include "ist30xxb_fw_young2_ver0001.h" +#elif defined(CONFIG_MACH_PIKEAYOUNG2DTV) +#include "ist30xxb_fw_pikeayoung2dtv_ver0001.h" +#elif defined(CONFIG_MACH_CORSICA_VE) +#include "IST30xxB_FW_Corsica_VE_Ver0007.h" +#elif defined(CONFIG_MACH_VIVALTO) +#include "IST30xxB_FW_vivalto_Ver0001_fw.h" +#endif +#endif // IST30XX_INTERNAL_BIN + +struct ist30xx_tags *ts_tags; + +u32 ist30xx_fw_ver = 0; +u32 ist30xx_param_ver = 0; + +extern struct ist30xx_data *ts_data; + +extern void ist30xx_disable_irq(struct ist30xx_data *data); +extern void ist30xx_enable_irq(struct ist30xx_data *data); + + +int ist30xx_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, + int msg_num, u8 *cmd_buf) +{ + int ret = 0; + int idx = msg_num - 1; + int size = msgs[idx].len; + u8 *msg_buf = NULL; + u8 *pbuf = NULL; + int trans_size, max_size = 0; + + if (msg_num == WRITE_CMD_MSG_LEN) + max_size = I2C_MAX_WRITE_SIZE; + else if (msg_num == READ_CMD_MSG_LEN) + max_size = I2C_MAX_READ_SIZE; + + if (max_size == 0) { + tsp_err("%s() : transaction size(%d)\n", __func__, max_size); + return -EINVAL; + } + + if (msg_num == WRITE_CMD_MSG_LEN) { + msg_buf = kmalloc(max_size + IST30XX_ADDR_LEN, GFP_KERNEL); + if (!msg_buf) + return -ENOMEM; + memcpy(msg_buf, cmd_buf, IST30XX_ADDR_LEN); + pbuf = msgs[idx].buf; + } + + while (size > 0) { + trans_size = (size >= max_size ? max_size : size); + + msgs[idx].len = trans_size; + if (msg_num == WRITE_CMD_MSG_LEN) { + memcpy(&msg_buf[IST30XX_ADDR_LEN], pbuf, trans_size); + msgs[idx].buf = msg_buf; + msgs[idx].len += IST30XX_ADDR_LEN; + } + ret = i2c_transfer(adap, msgs, msg_num); + if (ret != msg_num) { + tsp_err("%s() : i2c_transfer failed(%d), num=%d\n", + __func__, ret, msg_num); + break; + } + + if (msg_num == WRITE_CMD_MSG_LEN) + pbuf += trans_size; + else + msgs[idx].buf += trans_size; + + size -= trans_size; + } + + if (msg_num == WRITE_CMD_MSG_LEN) + kfree(msg_buf); + + return ret; +} + +int ist30xx_read_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len) +{ + int ret, i; + u32 le_reg = cpu_to_be32(cmd); + + struct i2c_msg msg[READ_CMD_MSG_LEN] = { + { + .addr = client->addr, + .flags = 0, + .len = IST30XX_ADDR_LEN, + .buf = (u8 *)&le_reg, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = len * IST30XX_DATA_LEN, + .buf = (u8 *)buf, + }, + }; + + ret = ist30xx_i2c_transfer(client->adapter, msg, READ_CMD_MSG_LEN, NULL); + if (ret != READ_CMD_MSG_LEN) + return -EIO; + + for (i = 0; i < len; i++) + buf[i] = cpu_to_be32(buf[i]); + + return 0; +} + +int ist30xx_write_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len) +{ + int i; + int ret; + struct i2c_msg msg; + u8 cmd_buf[IST30XX_ADDR_LEN]; + u8 msg_buf[IST30XX_DATA_LEN * (len + 1)]; + + put_unaligned_be32(cmd, cmd_buf); + + if (len > 0) { + for (i = 0; i < len; i++) + put_unaligned_be32(buf[i], msg_buf + (i * IST30XX_DATA_LEN)); + } else { + /* then add dummy data(4byte) */ + put_unaligned_be32(0, msg_buf); + len = 1; + } + + msg.addr = client->addr; + msg.flags = 0; + msg.len = IST30XX_DATA_LEN * len; + msg.buf = msg_buf; + + ret = ist30xx_i2c_transfer(client->adapter, &msg, WRITE_CMD_MSG_LEN, cmd_buf); + if (ret != WRITE_CMD_MSG_LEN) + return -EIO; + + return 0; +} + +int ist30xxb_burst_read(struct i2c_client *client, u32 addr, + u32 *buf32, int len) +{ + int ret = 0; + int i; + int max_len = I2C_MAX_READ_SIZE / IST30XX_DATA_LEN; + + addr |= IST30XXB_BURST_ACCESS; + + for (i = 0; i < len; i += max_len) { + if (len < max_len) max_len = len; + + ret = ist30xx_read_buf(client, addr, buf32, max_len); + if (ret) { + tsp_err("Burst fail, addr: %x\n", __func__, addr); + return ret; + } + + addr += max_len * IST30XX_DATA_LEN; + buf32 += max_len; + } + + return 0; +} + +#define IST30XXB_ISP_READ (1) +#define IST30XXB_ISP_WRITE (2) +#define IST30XXB_ISP_ERASE_ALL (3) +#define IST30XXB_ISP_ERASE_PAGE (4) + +int ist30xxb_isp_enable(bool enable) +{ + int ret = 0; + + if (enable) { + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_EEPISPEN, 0x3); + if (ret) return ret; + + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_LDOOSC, 0xF4C8); + if (ret) return ret; + + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_CLKDIV, 0x3); + if (ret) return ret; + + msleep(5); + } else { + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_EEPISPEN, 0x2); + if (ret) return ret; + + msleep(1); + } + + return 0; +} + +int ist30xxb_isp_mode(int mode) +{ + int ret = 0; + u32 val = 0; + + switch (mode) { + case IST30XXB_ISP_READ: + val = 0x1C0; + break; + case IST30XXB_ISP_WRITE: + val = 0x1A8; + break; + case IST30XXB_ISP_ERASE_ALL: + val = 0x1A7; + break; + case IST30XXB_ISP_ERASE_PAGE: + val = 0x1A3; + break; + default: + tsp_err("ISP fail, unknown mode\n"); + return -EINVAL; + } + + ret = ist30xx_write_cmd(ts_data->client, IST30XXB_REG_EEPMODE, val); + if (ret) { + tsp_err("ISP fail, IST30XXB_REG_EEPMODE\n"); + return ret; + } + + return 0; +} + +int ist30xxb_isp_erase(struct i2c_client *client, int mode, u32 addr) +{ + int ret = 0; + u32 val = 0x1A0; + u8 buf[EEPROM_PAGE_SIZE] = { 0, }; + + ret = ist30xxb_isp_mode(mode); + if (ret) return ret; + + ret = ist30xx_write_cmd(client, IST30XXB_REG_EEPADDR, addr); + if (ret) { + tsp_err("ISP fail, IST30XXB_REG_EEPADDR\n"); + return ret; + } + + val = (EEPROM_PAGE_SIZE / IST30XX_DATA_LEN); + ret = ist30xx_write_buf(client, IST30XXB_REG_EEPWDAT, (u32 *)buf, val); + if (ret) { + tsp_err("ISP fail, IST30XXB_REG_EEPWDAT\n"); + return ret; + } + + msleep(30); + + return 0; +} + +int ist30xxb_isp_write(struct i2c_client *client, u32 addr, + const u32 *buf32, int len) +{ + int ret = 0; + + ret = ist30xx_write_cmd(client, IST30XXB_REG_EEPADDR, addr); + if (ret) { + tsp_err("ISP fail, IST30XXB_REG_EEPADDR\n"); + return ret; + } + + ret = ist30xx_write_buf(client, IST30XXB_REG_EEPWDAT, (u32 *)buf32, len); + if (ret) { + tsp_err("ISP fail, IST30XXB_REG_EEPWDAT\n"); + return ret; + } + + return 0; +} + +int ist30xxb_isp_read(struct i2c_client *client, u32 addr, + u32 *buf32, int len) +{ + int ret = 0; + int i; + int max_len = I2C_MAX_READ_SIZE / IST30XX_DATA_LEN; + + for (i = 0; i < len; i += max_len) { + if (len < max_len) max_len = len; + + /* IST30xxB ISP read mode */ + ret = ist30xxb_isp_mode(IST30XXB_ISP_READ); + if (ret) return ret; + + ret = ist30xx_write_cmd(client, IST30XXB_REG_EEPADDR, addr); + if (ret) { + tsp_err("ISP fail, IST30XXB_REG_EEPADDR\n"); + return ret; + } + + ret = ist30xx_read_buf(client, IST30XXB_REG_EEPRDAT, buf32, max_len); + if (ret) { + tsp_err("ISP fail, IST30XXB_REG_EEPWDAT\n"); + return ret; + } + + addr += max_len * IST30XX_DATA_LEN; + buf32 += max_len; + } + + return 0; +} + +int ist30xxb_cmd_read_chksum(struct i2c_client *client, + u32 start_addr, u32 end_addr, u32 *chksum) +{ + int ret = 0; + u32 val = (1 << 31); // Chkecksum enable + + val |= start_addr; + val |= (end_addr / IST30XX_DATA_LEN - 1) << 16; + + ret = ist30xx_write_cmd(client, IST30XXB_REG_CHKSMOD, val); + if (ret) { + tsp_err("ISP fail, IST30XXB_REG_CHKSMOD (%x)\n", val); + return ret; + } + + msleep(10); + + ret = ist30xx_read_cmd(client, IST30XXB_REG_CHKSDAT, chksum); + if (ret) { + tsp_err("ISP fail, IST30XXB_REG_CHKSDAT (%x)\n", chksum); + return ret; + } + + tsp_verb("chksum: %x (%x~%x)\n", *chksum, start_addr, end_addr); + + return 0; +} + +int ist30xxb_read_chksum(struct i2c_client *client, u32 *chksum) +{ + int ret = 0; + u32 start_addr, end_addr; + u32 chksum1 = 0, chksum2 = 0; + + start_addr = 0; + end_addr = ts_data->tags.flag_addr; + ret = ist30xxb_cmd_read_chksum(client, start_addr, end_addr, &chksum1); + if (ret) return ret; + + start_addr = ts_data->tags.flag_addr + ts_data->tags.flag_size; + end_addr = ts_data->tags.sensor2_addr + ts_data->tags.sensor2_size; + ret = ist30xxb_cmd_read_chksum(client, start_addr, end_addr, &chksum2); + if (ret) return ret; + + *chksum = chksum1 | (chksum2 << 16); + + tsp_info("Chksum: %x(%x~%x, %x~%x)\n", *chksum, 0, ts_data->tags.flag_addr, + start_addr, end_addr); + + return 0; +} + + +int ist30xxb_isp_fw_read(struct i2c_client *client, u32 *buf32) +{ + int ret = 0; + int i; + + u16 addr = EEPROM_BASE_ADDR; + int len = EEPROM_PAGE_SIZE / IST30XX_DATA_LEN; + + ist30xx_reset(); + + /* IST30xxB ISP enable */ + ret = ist30xxb_isp_enable(true); + if (ret) return ret; + + for (i = 0; i < IST30XX_EEPROM_SIZE; i += EEPROM_PAGE_SIZE) { + ret = ist30xxb_isp_read(client, addr, buf32, len); + if (ret) goto isp_fw_read_end; + + addr += EEPROM_PAGE_SIZE; + buf32 += len; + } + +isp_fw_read_end: + /* IST30xxB ISP disable */ + ist30xxb_isp_enable(false); + return ret; +} + +int ist30xxb_isp_fw_update(struct i2c_client *client, const u8 *buf, u32 *chksum) +{ + int ret = 0; + int i; + u32 page_cnt = IST30XX_EEPROM_SIZE / EEPROM_PAGE_SIZE; + u16 addr = EEPROM_BASE_ADDR; + int len = EEPROM_PAGE_SIZE / IST30XX_DATA_LEN; + + /* IST30xxB ISP enable */ + ret = ist30xxb_isp_enable(true); + + ret = ist30xxb_isp_erase(client, IST30XXB_ISP_ERASE_ALL, 0); + if (ret) goto isp_fw_update_end; + + for (i = 0; i < page_cnt; i++) { + /* IST30xxB ISP write mode */ + ret = ist30xxb_isp_mode(IST30XXB_ISP_WRITE); + if (ret) goto isp_fw_update_end; + + ret = ist30xxb_isp_write(client, addr, (u32 *)buf, len); + if (ret) goto isp_fw_update_end; + + addr += EEPROM_PAGE_SIZE; + buf += EEPROM_PAGE_SIZE; + + msleep(5); + } + + /* IST30xxB ISP disable */ + ret = ist30xxb_isp_enable(false); + if (ret) return ret; + return 0; + +isp_fw_update_end: + ist30xxb_isp_enable(false); + return ret; +} + +int ist30xxb_isp_bootloader(struct i2c_client *client, const u8 *buf) +{ + int ret = 0; + int i; + u16 addr = EEPROM_BASE_ADDR; + u32 page_cnt = (ts_data->fw.index) / EEPROM_PAGE_SIZE; + int buf_cnt = EEPROM_PAGE_SIZE / IST30XX_DATA_LEN; + + tsp_info("*** Bootloader update (0x%x~0x%x) ***\n", + EEPROM_BASE_ADDR, ts_data->fw.index); + + /* IST30xxB ISP enable */ + ret = ist30xxb_isp_enable(true); + + ret = ist30xxb_isp_erase(client, IST30XXB_ISP_ERASE_ALL, 0); + if (ret) goto ist30xxb_isp_bootloader; + + for (i = 0; i < page_cnt; i++) { + /* IST30xxB ISP write mode */ + ret = ist30xxb_isp_mode(IST30XXB_ISP_WRITE); + if (ret) goto ist30xxb_isp_bootloader; + + ret = ist30xxb_isp_write(client, addr, (u32 *)buf, buf_cnt); + if (ret) goto ist30xxb_isp_bootloader; + + addr += EEPROM_PAGE_SIZE; + buf += EEPROM_PAGE_SIZE; + + msleep(5); + } + + /* IST30xxB ISP disable */ + ret = ist30xxb_isp_enable(false); + if (ret) return ret; + return 0; + +ist30xxb_isp_bootloader: + ist30xxb_isp_enable(false); + return ret; +} + + +int ist30xx_fw_write(struct i2c_client *client, const u8 *buf) +{ + int ret; + int len; + u32 *buf32 = (u32 *)(buf + ts_data->fw.index); + u32 size = ts_data->fw.size; + + if (size < 0 || size > IST30XX_EEPROM_SIZE) + return -ENOEXEC; + + while (size > 0) { + len = (size >= EEPROM_PAGE_SIZE ? EEPROM_PAGE_SIZE : size); + + ret = ist30xx_write_buf(client, CMD_ENTER_FW_UPDATE, buf32, (len >> 2)); + if (ret) + return ret; + + buf32 += (len >> 2); + size -= len; + + msleep(5); + } + return 0; +} + + +u32 ist30xx_parse_ver(int flag, const u8 *buf) +{ + u32 ver = 0; + u32 *buf32 = (u32 *)buf; + + if (flag == FLAG_FW) + ver = (u32)buf32[(ts_data->tags.flag_addr + 4) >> 2]; + else if (flag == FLAG_PARAM) + ver = (u32)(buf32[(ts_data->tags.cfg_addr + 4) >> 2] & 0xFFFF); + else + tsp_warn("Parsing ver's flag is not corrent!\n"); + + return ver; +} + + +int calib_ms_delay = WAIT_CALIB_CNT; +int ist30xx_calib_wait(void) +{ + int cnt = calib_ms_delay; + + ts_data->status.calib_msg = 0; + while (cnt-- > 0) { + msleep(100); + + if (ts_data->status.calib_msg) { + tsp_info("Calibration status : %d, Max raw gap : %d - (%08x)\n", + CALIB_TO_STATUS(ts_data->status.calib_msg), + CALIB_TO_GAP(ts_data->status.calib_msg), + ts_data->status.calib_msg); + + if (CALIB_TO_GAP(ts_data->status.calib_msg) < CALIB_THRESHOLD) + return 0; // Calibrate success + else + return -EAGAIN; + } + } + tsp_warn("Calibration time out\n"); + + return -EPERM; +} + +int ist30xx_calibrate(int wait_cnt) +{ + int ret = -ENOEXEC; + + tsp_info("*** Calibrate %ds ***\n", calib_ms_delay / 10); + + ts_data->status.update = 1; + while (wait_cnt--) { + ist30xx_disable_irq(ts_data); + ret = ist30xx_cmd_run_device(ts_data->client); + if (ret) continue; + + ret = ist30xx_cmd_calibrate(ts_data->client); + if (ret) continue; + + ist30xx_enable_irq(ts_data); + ret = ist30xx_calib_wait(); + if (!ret) break; + } + + ist30xx_disable_irq(ts_data); + ist30xx_cmd_run_device(ts_data->client); + + ts_data->status.update = 2; + + ist30xx_enable_irq(ts_data); + + return ret; +} + + +int ist30xx_parse_tags(struct ist30xx_data *data, const u8 *buf, const u32 size) +{ + int ret = -EPERM; + + ts_tags = (struct ist30xx_tags *)(&buf[size - sizeof(struct ist30xx_tags)]); + + if (!strncmp(ts_tags->magic1, IST30XX_TAG_MAGIC, sizeof(ts_tags->magic1)) + && !strncmp(ts_tags->magic2, IST30XX_TAG_MAGIC, sizeof(ts_tags->magic2))) { + data->fw.index = ts_tags->fw_addr; + data->fw.size = ts_tags->flag_addr - ts_tags->fw_addr + + ts_tags->flag_size; + data->fw.chksum = ts_tags->chksum; + data->tags = *ts_tags; + + ret = 0; + } + + tsp_verb("Tagts magic1: %s, magic2: %s\n", + ts_tags->magic1, ts_tags->magic2); + tsp_verb(" fw: %x(%x)\n", ts_tags->fw_addr, ts_tags->fw_size); + tsp_verb(" flag: %x(%x)\n", ts_tags->flag_addr, ts_tags->flag_size); + tsp_verb(" cfg: %x(%x)\n", ts_tags->cfg_addr, ts_tags->cfg_size); + tsp_verb(" sensor1: %x(%x)\n", ts_tags->sensor1_addr, ts_tags->sensor1_size); + tsp_verb(" sensor2: %x(%x)\n", ts_tags->sensor2_addr, ts_tags->sensor2_size); + tsp_verb(" sensor3: %x(%x)\n", ts_tags->sensor3_addr, ts_tags->sensor3_size); + tsp_verb(" chksum: %x\n", ts_tags->chksum); + + return ret; +} + +void ist30xx_get_update_info(struct ist30xx_data *data, const u8 *buf, const u32 size) +{ + int ret; + + ret = ist30xx_parse_tags(data, buf, size); + if (ret != TAGS_PARSE_OK) + tsp_warn("Cannot find tags of F/W, make a tags by 'tagts.exe'\n"); +} + +#if (IST30XX_DEBUG) && (IST30XX_INTERNAL_BIN) +extern TSP_INFO ist30xx_tsp_info; +extern TKEY_INFO ist30xx_tkey_info; +int ist30xx_get_tkey_info(struct ist30xx_data *data) +{ + int ret = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + TKEY_INFO *tkey = &ist30xx_tkey_info; + u8 *cfg_buf; + + ist30xx_get_update_info(data, data->fw.buf, data->fw.buf_size); + cfg_buf = (u8 *)&data->fw.buf[data->tags.cfg_addr]; + + tkey->enable = (bool)(cfg_buf[0x14] & 1); + tkey->axis_rx = (bool)((cfg_buf[0x14] >> 1) & 1); + tkey->key_num = (u8)cfg_buf[0x15]; + tkey->ch_num[0] = (u8)cfg_buf[0x16]; + tkey->ch_num[1] = (u8)cfg_buf[0x17]; + tkey->ch_num[2] = (u8)cfg_buf[0x18]; + tkey->ch_num[3] = (u8)cfg_buf[0x19]; + tkey->ch_num[4] = (u8)cfg_buf[0x1A]; + + if (tkey->axis_rx) { + if (tsp->dir.swap_xy) tsp->height -= 1; + else tsp->width -= 1; + } else { + if (tsp->dir.swap_xy) tsp->width -= 1; + else tsp->height -= 1; + } + + return ret; +} + +#define TSP_INFO_SWAP_XY (1 << 0) +#define TSP_INFO_FLIP_X (1 << 1) +#define TSP_INFO_FLIP_Y (1 << 2) +int ist30xx_get_tsp_info(struct ist30xx_data *data) +{ + int ret = 0; + TSP_INFO *tsp = &ist30xx_tsp_info; + u8 *cfg_buf, *sensor_buf; + + ist30xx_get_update_info(data, data->fw.buf, data->fw.buf_size); + cfg_buf = (u8 *)&data->fw.buf[data->tags.cfg_addr]; + sensor_buf = (u8 *)&data->fw.buf[data->tags.sensor1_addr]; + + tsp->finger_num = (u8)cfg_buf[0x0E]; + tsp->dir.swap_xy = (bool)(cfg_buf[0xF] & TSP_INFO_SWAP_XY ? true : false); + tsp->dir.flip_x = (bool)(cfg_buf[0xF] & TSP_INFO_FLIP_X ? true : false); + tsp->dir.flip_y = (bool)(cfg_buf[0xF] & TSP_INFO_FLIP_Y ? true : false); + + tsp->ch_num.tx = (u8)sensor_buf[0x40]; + tsp->ch_num.rx = (u8)sensor_buf[0x41]; + + tsp->node.len = tsp->ch_num.tx * tsp->ch_num.rx; + tsp->height = (tsp->dir.swap_xy ? tsp->ch_num.rx : tsp->ch_num.tx); + tsp->width = (tsp->dir.swap_xy ? tsp->ch_num.tx : tsp->ch_num.rx); + + return ret; +} +#endif // (IST30XX_DEBUG) && (IST30XX_INTERNAL_BIN) + + +#define update_next_step(ret) { if (ret) goto end; } +int ist30xx_fw_update(struct i2c_client *client, const u8 *buf, int size, bool mode) +{ + int ret = 0; + u32 chksum = 0; + struct ist30xx_fw *fw = &ts_data->fw; + + tsp_info("*** Firmware update ***\n"); + tsp_info(" core: %x, param: %x, addr: 0x%x ~ 0x%x\n", + ist30xx_fw_ver, ist30xx_param_ver, fw->index, (fw->index + fw->size)); + + ts_data->status.update = 1; + + ist30xx_disable_irq(ts_data); + + ist30xx_reset(); + + if (mode) { /* ISP Mode */ + ret = ist30xxb_isp_fw_update(client, buf, &chksum); + update_next_step(ret); + } else { /* I2C SW Mode */ + ret = ist30xx_cmd_update(client, CMD_ENTER_FW_UPDATE); + update_next_step(ret); + + ret = ist30xx_fw_write(client, buf); + update_next_step(ret); + } + msleep(50); + + buf += IST30XX_EEPROM_SIZE; + size -= IST30XX_EEPROM_SIZE; + + ret = ist30xx_cmd_run_device(client); + update_next_step(ret); + + ret = ist30xx_read_cmd(client, CMD_GET_CHECKSUM, &chksum); + if ((ret) || (chksum != fw->chksum)) + goto end; + + if ((ret) || (chksum != fw->chksum)) + goto end; + + ret = ist30xx_get_ver_info(ts_data); + update_next_step(ret); + +end: + if (ret) { + tsp_warn("Firmware update Fail!, ret=%d\n", ret); + } else if (chksum != fw->chksum) { + tsp_warn("Error CheckSum: %x(%x)\n", chksum, fw->chksum); + ret = -ENOEXEC; + } + + ist30xx_enable_irq(ts_data); + + ts_data->status.update = 2; + + return ret; +} + +int ist30xx_fw_recovery(struct ist30xx_data *data) +{ + int ret = -EPERM; + u8 *fw = data->fw.buf; + int fw_size = data->fw.buf_size; + + ist30xx_get_update_info(data, fw, fw_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_fw_update(data->client, fw, fw_size, true); + mutex_unlock(&ist30xx_mutex); + + ist30xx_calibrate(1); + + ist30xx_init_touch_driver(data); + + return ret; +} + + +#define fw_update_next_step(ret) { if (ret) { step = 1; goto end; } } +#define param_update_next_step(ret) { if (ret) { step = 2; goto end; } } +int ist30xx_fw_param_update(struct i2c_client *client, const u8 *buf) +{ + int ret = 0; + int step = 0; + u16 len = 0; + int size = IST30XX_EEPROM_SIZE; + u32 chksum = 0, ver = 0; + u32 *param = (u32 *)buf; + struct ist30xx_fw *fw = &ts_data->fw; + + tsp_info("*** FW param update ***\n"); + tsp_info(" core: %x, param: %x, addr: 0x%x ~ 0x%x\n", + ist30xx_fw_ver, ist30xx_param_ver, fw->index, (fw->index + fw->size)); + + ts_data->status.update = 1; + + ist30xx_disable_irq(ts_data); + ist30xx_reset(); + + /* FW update by SW */ + ret = ist30xx_cmd_update(client, CMD_ENTER_FW_UPDATE); + fw_update_next_step(ret); + + ret = ist30xx_fw_write(client, buf); + fw_update_next_step(ret); + + msleep(50); + + param = (u32 *)(buf + (fw->index + fw->size)); + size -= fw->size; + + ret = ist30xx_cmd_run_device(client); + fw_update_next_step(ret); + + ret = ist30xx_read_cmd(client, CMD_GET_CHECKSUM, &chksum); + if ((ret) || (chksum != fw->chksum)) + goto end; + + ret = ist30xx_read_cmd(client, CMD_GET_FW_VER, &ver); + update_next_step(ret); + fw->prev_core_ver = fw->core_ver; + fw->core_ver = ver; + tsp_info("F/W core version : %x\n", fw->core_ver); + + /* update parameters */ + ret = ist30xx_cmd_update(client, CMD_ENTER_UPDATE); + param_update_next_step(ret); + + /* config */ + len = (ts_data->tags.cfg_size >> 2); + ret = ist30xx_write_buf(client, CMD_UPDATE_CONFIG, param, len); + param_update_next_step(ret); + msleep(10); + + param += len; + size -= (len << 2); + + /* sensor */ + len = ((ts_data->tags.sensor1_size + ts_data->tags.sensor2_size) >> 2); + ret = ist30xx_write_buf(client, CMD_UPDATE_SENSOR, param, len); + param_update_next_step(ret); + msleep(10); + + param += len; + size -= (len << 2); + + ret = ist30xx_cmd_update(client, CMD_EXIT_UPDATE); + param_update_next_step(ret); + msleep(120); + + ret = ist30xx_cmd_run_device(client); + update_next_step(ret); + + ret = ist30xx_read_cmd(client, CMD_GET_PARAM_VER, &ver); + update_next_step(ret); + fw->prev_param_ver = fw->param_ver; + fw->param_ver = ver; + tsp_info("Param version : %x\n", fw->param_ver); + +end: + if (ret) { + if (step == 1) + tsp_warn("Firmware update Fail!, ret=%d", ret); + else if (step == 2) + tsp_warn("Parameters update Fail!, ret=%d", ret); + } else if (chksum != fw->chksum) { + tsp_warn("Error CheckSum: %08x(%08x)\n", chksum, fw->chksum); + ret = -ENOEXEC; + } + + ist30xx_enable_irq(ts_data); + ts_data->status.update = 2; + + return ret; +} + + +#if IST30XX_INTERNAL_BIN +int ist30xx_check_fw(struct ist30xx_data *data, const u8 *buf) +{ + int ret; + u32 chksum; + + ret = ist30xx_read_cmd(data->client, CMD_GET_CHECKSUM, &chksum); + if (ret) return ret; + + if (chksum != data->fw.chksum) { + tsp_warn("Checksum compare error %08x(%08x)\n", chksum, data->fw.chksum); + return -EPERM; + } + + return 0; +} + +bool ist30xx_check_valid_vendor(u32 tsp_vendor) +{ + switch (tsp_vendor) { + case TSP_TYPE_ALPS: + case TSP_TYPE_EELY: + case TSP_TYPE_TOP: + case TSP_TYPE_DIGITECH: + case TSP_TYPE_ILJIN: + case TSP_TYPE_SYNOPEX: + case TSP_TYPE_SMAC: + case TSP_TYPE_TAEYANG: + case TSP_TYPE_TOVIS: + case TSP_TYPE_ELK: + return true; + default: + return false; + } + + return false; +} +#if 1 //sinjan.kumar +#if IST30XX_MULTIPLE_TSP +void ist30xx_set_tsp_fw(struct ist30xx_data *data) +{ + char *str; + struct ist30xx_fw *fw = &data->fw; + + switch (data->tsp_type) { + case TSP_TYPE_ILJIN: + str = "ILJIN"; + fw->buf = (u8 *)ist30xxb_fw; + fw->buf_size = sizeof(ist30xxb_fw); + break; + case TSP_TYPE_SYNOPEX: + str = "SYNOPEX"; + fw->buf = (u8 *)ist30xxb_fw1; + fw->buf_size = sizeof(ist30xxb_fw1); + break; + case TSP_TYPE_UNKNOWN: + default: + str = "Unknown"; + tsp_warn("Unknown TSP vendor(0x%x)\n", data->tsp_type); + break; + } + tsp_info("TSP vendor : %s(%x)\n", str, data->tsp_type); + + ist30xx_get_update_info(ts_data, fw->buf, fw->buf_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw->buf); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw->buf); +} +#endif // IST30XX_MULTIPLE_TSP +#endif //sinjan.kumar + +int ist30xx_check_auto_update(struct ist30xx_data *data) +{ +#if 1 //sinjan.kumar + int ret = 0; + int retry = IST30XX_FW_UPDATE_RETRY; + u32 tsp_type = TSP_TYPE_UNKNOWN; //sinjan.kumar + u32 chksum; + bool tsp_check = false; + struct ist30xx_fw *fw = &data->fw; + + while (retry--) { + ret = ist30xx_read_cmd(data->client, + CMD_GET_TSP_PANNEL_TYPE, &tsp_type); + if (ret == 0) { + if (ist30xx_check_valid_vendor(tsp_type) == true) + tsp_check = true; + break; + } + } + + retry = IST30XX_FW_UPDATE_RETRY; + + if (!tsp_check) { + while (retry--) { + /* FW recovery */ + tsp_info("tsp type: %x\n", tsp_type); + ret = ist30xxb_isp_bootloader(data->client, fw->buf); + if (ret == 0) { + ist30xx_reset(); + ret = ist30xx_read_cmd(data->client, + CMD_GET_TSP_PANNEL_TYPE, &tsp_type); + tsp_info("tsp type: %x\n", tsp_type); + if (ret == 0) // recovery OK + if (ist30xx_check_valid_vendor(tsp_type) == true) { + data->tsp_type = tsp_type; +#if IST30XX_MULTIPLE_TSP + ist30xx_set_tsp_fw(data); +#endif + break; + } + } + + if (retry == 0) return 1; /* TSP is not connected */ + } + } + + ist30xx_write_cmd(data->client, CMD_RUN_DEVICE, 0); + msleep(10); + + ist30xx_get_ver_info(data); + + if ((fw->param_ver > 0) && (fw->param_ver < 0xFFFFFFFF) && + ((fw->core_ver & MASK_FW_VER) == IST30XX_FW_VER3)) { + tsp_info("Version compare IC: %x(%x), BIN: %x(%x)\n", + fw->param_ver, fw->core_ver, ist30xx_param_ver, ist30xx_fw_ver); + + /* If FW version is same, check FW checksum */ + if ((fw->core_ver == ist30xx_fw_ver) && + (fw->param_ver == ist30xx_param_ver)) { + ret = ist30xx_read_cmd(data->client, CMD_GET_CHECKSUM, &chksum); + if (ret) goto fw_check_end; + + if ((ret) || (chksum != fw->chksum)) { + tsp_warn("Checksum error, IC: %x, Bin: %x\n", + chksum, fw->chksum); + goto fw_check_end; + } + } + + /* + * fw->core_ver : FW core version in TSP IC + * fw->param_ver : FW version if TSP IC + * ist30xx_fw_ver : FW core version in FW Binary + * ist30xx_fw_ver : FW version in FW Binary + */ + /* If the ver of binary is higher than ver of IC, FW update operate. */ + + if ((fw->core_ver >= ist30xx_fw_ver) && + (fw->param_ver >= ist30xx_param_ver)) + return 0; + } + +fw_check_end: + return -EAGAIN; + #endif return 0; //sinjan.kumar +} + +int ist30xx_auto_bin_update(struct ist30xx_data *data) +{ +#if 1 //sinjan.kumar + int ret = 0; + int retry = IST30XX_FW_UPDATE_RETRY; + struct ist30xx_fw *fw = &data->fw; + + fw->buf = (u8 *)ist30xxb_fw; + fw->buf_size = sizeof(ist30xxb_fw); + +#if IST30XX_MULTIPLE_TSP + ist30xx_set_tsp_fw(data); +#else + ist30xx_get_update_info(data, fw->buf, fw->buf_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw->buf); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw->buf); +#endif + + tsp_info("IC: %x, Binary ver core: %x, param: %x\n", + data->chip_id, ist30xx_fw_ver, ist30xx_param_ver); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_check_auto_update(data); + mutex_unlock(&ist30xx_mutex); + //return 0; + //printk("[TSP] %s : %d\n", __func__, __LINE__); + if (ret >= 0) + return ret; + //printk("[TSP] %s : %d\n", __func__, __LINE__); +update_bin: // TSP is not ready / FW update + tsp_info("Update version. param(core): %x(%x) -> %x(%x)\n", + fw->param_ver, fw->core_ver, ist30xx_param_ver, ist30xx_fw_ver); + //printk("[TSP] %s : %d\n", __func__, __LINE__); + mutex_lock(&ist30xx_mutex); + while (retry--) { + //printk("[TSP] %s : %d\n", __func__, __LINE__); + ret = ist30xx_fw_update(data->client, fw->buf, fw->buf_size, true); + if (!ret) break; + } + mutex_unlock(&ist30xx_mutex); + + if (ret) + return ret; + + if (retry > 0 && ist30xx_check_fw(data, fw->buf)) + goto update_bin; + + ist30xx_calibrate(IST30XX_FW_UPDATE_RETRY); + + return ret; + #endif return 0; //sinjan.kumar +} +#endif // IST30XX_INTERNAL_BIN + + +/* sysfs: /sys/class/touch/firmware/boot */ +ssize_t ist30xx_boot_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret; + int fw_size = 0; + u8 *fw = NULL; + char *tmp; + const struct firmware *request_fw = NULL; + + unsigned long mode = simple_strtoul(buf, &tmp, 10); + + if (mode == MASK_UPDATE_ISP || mode == MASK_UPDATE_FW) { + ret = request_firmware(&request_fw, IST30XXB_FW_NAME, &ts_data->client->dev); + if (ret) { + tsp_warn("File not found, %s\n", IST30XXB_FW_NAME); + return size; + } + fw = (u8 *)request_fw->data; + fw_size = (u32)request_fw->size; + } else { +#if IST30XX_INTERNAL_BIN + fw = ts_data->fw.buf; + fw_size = ts_data->fw.buf_size; +#else + return size; +#endif // IST30XX_INTERNAL_BIN + } + + if (mode == 3) { + tsp_info("EEPROM all erase test\n"); + ist30xx_disable_irq(ts_data); + mutex_lock(&ist30xx_mutex); + + ist30xxb_isp_enable(true); + ist30xxb_isp_erase(ts_data->client, IST30XXB_ISP_ERASE_ALL, 0); + ist30xxb_isp_enable(false); + + mutex_unlock(&ist30xx_mutex); + ist30xx_enable_irq(ts_data); + } else { + ist30xx_get_update_info(ts_data, fw, fw_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw); + + ist30xx_disable_irq(ts_data); + + mutex_lock(&ist30xx_mutex); + ist30xxb_isp_bootloader(ts_data->client, fw); + mutex_unlock(&ist30xx_mutex); + + if (mode == MASK_UPDATE_ISP || mode == MASK_UPDATE_FW) + release_firmware(request_fw); + } + + return size; +} + +u32 buf32_eeprom[IST30XX_EEPROM_SIZE / IST30XX_DATA_LEN]; +ssize_t ist30xx_fw_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int i; + u8 *buf8 = (u8 *)buf32_eeprom;; + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(ts_data); + + ist30xxb_isp_fw_read(ts_data->client, buf32_eeprom); + for (i = 0; i < IST30XX_EEPROM_SIZE; i += 16) { + tsp_debug("%07x: %02x%02x %02x%02x %02x%02x %02x%02x %02x%02x %02x%02x %02x%02x %02x%02x\n", i, + buf8[i], buf8[i + 1], buf8[i + 2], buf8[i + 3], + buf8[i + 4], buf8[i + 5], buf8[i + 6], buf8[i + 7], + buf8[i + 8], buf8[i + 9], buf8[i + 10], buf8[i + 11], + buf8[i + 12], buf8[i + 13], buf8[i + 14], buf8[i + 15]); + } + + ist30xx_enable_irq(ts_data); + mutex_unlock(&ist30xx_mutex); + + return 0; +} + +/* sysfs: /sys/class/touch/firmware/firmware */ +ssize_t ist30xx_fw_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret; + bool isp_mode = false; + int fw_size = 0; + u8 *fw = NULL; + char *tmp; + const struct firmware *request_fw = NULL; + + unsigned long mode = simple_strtoul(buf, &tmp, 10); + + if (mode == MASK_UPDATE_ISP || mode == MASK_UPDATE_FW) { + ret = request_firmware(&request_fw, IST30XXB_FW_NAME, &ts_data->client->dev); + if (ret) { + tsp_warn("File not found, %s\n", IST30XXB_FW_NAME); + return size; + } + fw = (u8 *)request_fw->data; + fw_size = (u32)request_fw->size; + isp_mode = (mode == MASK_UPDATE_ISP ? true : false); + } else { +#if IST30XX_INTERNAL_BIN + fw = ts_data->fw.buf; + fw_size = ts_data->fw.buf_size; +#else + return size; +#endif // IST30XX_INTERNAL_BIN + } + + ist30xx_get_update_info(ts_data, fw, fw_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw); + + mutex_lock(&ist30xx_mutex); + ist30xx_fw_update(ts_data->client, fw, fw_size, isp_mode); + mutex_unlock(&ist30xx_mutex); + + ist30xx_calibrate(1); + + ist30xx_init_touch_driver(ts_data); + + if (mode == MASK_UPDATE_ISP || mode == MASK_UPDATE_FW) + release_firmware(request_fw); + + return size; +} + +ssize_t ist30xx_fw_status(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count; + + switch (ts_data->status.update) { + case 1: + count = sprintf(buf, "Downloading\n"); + break; + case 2: + count = sprintf(buf, "Update success, ver %x(%x) -> %x(%x), status : %d, gap : %d\n", + ts_data->fw.prev_param_ver, ts_data->fw.prev_core_ver, + ts_data->fw.param_ver, ts_data->fw.core_ver, + CALIB_TO_STATUS(ts_data->status.calib_msg), + CALIB_TO_GAP(ts_data->status.calib_msg)); + break; + default: + count = sprintf(buf, "Pass\n"); + } + + return count; +} + + +/* sysfs: /sys/class/touch/firmware/fwparam */ +ssize_t ist30xx_fwparam_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret; + int fw_size = 0; + u8 *fw = NULL; + char *tmp; + const struct firmware *request_fw = NULL; + + unsigned long mode = simple_strtoul(buf, &tmp, 10); + + if (mode == MASK_UPDATE_FW) { + ret = request_firmware(&request_fw, IST30XXB_FW_NAME, &ts_data->client->dev); + if (ret) { + tsp_warn("File not found, %s\n", IST30XXB_FW_NAME); + return size; + } + fw = (u8 *)request_fw->data; + fw_size = (u32)request_fw->size; + } else { +#if IST30XX_INTERNAL_BIN + fw = ts_data->fw.buf; + fw_size = ts_data->fw.buf_size; +#else + return size; +#endif // IST30XX_INTERNAL_BIN + } + + ist30xx_get_update_info(ts_data, fw, fw_size); + ist30xx_fw_ver = ist30xx_parse_ver(FLAG_FW, fw); + ist30xx_param_ver = ist30xx_parse_ver(FLAG_PARAM, fw); + + mutex_lock(&ist30xx_mutex); + ist30xx_fw_param_update(ts_data->client, fw); + mutex_unlock(&ist30xx_mutex); + + ist30xx_calibrate(1); + + ist30xx_init_touch_driver(ts_data); + + if (mode == MASK_UPDATE_FW) + release_firmware(request_fw); + + return size; +} + + +/* sysfs: /sys/class/touch/firmware/viersion */ +ssize_t ist30xx_fw_version(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count; + + count = sprintf(buf, "IST30XX id: 0x%x, f/w core: 0x%x, param ver: 0x%x\n", + ts_data->chip_id, ts_data->fw.core_ver, ts_data->fw.param_ver); + +#if IST30XX_INTERNAL_BIN + { + char msg[128]; + + ist30xx_get_update_info(ts_data, ts_data->fw.buf, ts_data->fw.buf_size); + + count += snprintf(msg, sizeof(msg), + " Header - f/w ver: 0x%x, param ver: 0x%x\r\n", + ist30xx_parse_ver(FLAG_FW, ts_data->fw.buf), + ist30xx_parse_ver(FLAG_PARAM, ts_data->fw.buf)); + strncat(buf, msg, sizeof(msg)); + } +#endif + + return count; +} + + +/* sysfs */ +static DEVICE_ATTR(firmware, 0644, ist30xx_fw_status, ist30xx_fw_store); +static DEVICE_ATTR(fwparam, 0644, NULL, ist30xx_fwparam_store); +static DEVICE_ATTR(boot, 0644, ist30xx_fw_show, ist30xx_boot_store); +static DEVICE_ATTR(version, 0644, ist30xx_fw_version, NULL); + +struct class *ist30xx_class; +struct device *ist30xx_fw_dev; + +static struct attribute *fw_attributes[] = { + &dev_attr_firmware.attr, + &dev_attr_fwparam.attr, + &dev_attr_boot.attr, + &dev_attr_version.attr, + NULL, +}; + +static struct attribute_group fw_attr_group = { + .attrs = fw_attributes, +}; + + +int ist30xx_init_update_sysfs(void) +{ + /* /sys/class/touch */ + ist30xx_class = class_create(THIS_MODULE, "touch"); + + /* /sys/class/touch/firmware */ + ist30xx_fw_dev = device_create(ist30xx_class, NULL, 0, NULL, "firmware"); + + /* /sys/class/touch/firmware/... */ + if (sysfs_create_group(&ist30xx_fw_dev->kobj, &fw_attr_group)) + tsp_err("Failed to create sysfs group(%s)!\n", "firmware"); + + ts_data->status.update = 0; + ts_data->status.calib = 0; + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xxb/ist30xxb_update.h b/drivers/input/touchscreen/ist30xxb/ist30xxb_update.h new file mode 100755 index 00000000..f9bf28f7 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxb/ist30xxb_update.h @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XX_UPDATE_H__ +#define __IST30XX_UPDATE_H__ + +#include "ist30xxb_tsp.h" + +#define IST30XX_INTERNAL_BIN (1) +#define IST30XX_CHECK_CALIB (0) + +#if IST30XX_INTERNAL_BIN +#define IST30XX_UPDATE_BY_WORKQUEUE (0) +#define IST30XX_UPDATE_DELAY (3 * HZ) +#endif // IST30XX_INTERNAL_BIN + +#define IST30XX_EEPROM_SIZE (0x8000) +#define EEPROM_PAGE_SIZE (64) +#define EEPROM_BASE_ADDR (0) + +#define IST30XXB_ACCESS_ADDR (1 << 31) +#define IST30XXB_BURST_ACCESS (1 << 27) +#define IST30XXB_DA_ADDR(k) (k | IST30XXB_ACCESS_ADDR) + +#define IST30XXB_REG_TSPTYPE IST30XXB_DA_ADDR(0x40002010) + +#define IST30XXB_REG_EEPMODE IST30XXB_DA_ADDR(0x40007000) +#define IST30XXB_REG_EEPADDR IST30XXB_DA_ADDR(0x40007004) +#define IST30XXB_REG_EEPWDAT IST30XXB_DA_ADDR(0x40007008) +#define IST30XXB_REG_EEPRDAT IST30XXB_DA_ADDR(0x4000700C) +#define IST30XXB_REG_EEPISPEN IST30XXB_DA_ADDR(0x40007010) +#define IST30XXB_REG_CHKSMOD IST30XXB_DA_ADDR(0x40007014) +#define IST30XXB_REG_CHKSDAT IST30XXB_DA_ADDR(0x40007038) + +#define IST30XXB_REG_CHIPID IST30XXB_DA_ADDR(0x40000000) +#define IST30XXB_REG_LDOOSC IST30XXB_DA_ADDR(0x40000030) +#define IST30XXB_REG_CLKDIV IST30XXB_DA_ADDR(0x4000004C) + +#define IST30XXB_MEM_ADDR (0x20000000) +#define IST30XXB_MEM_COUNT IST30XXB_DA_ADDR(IST30XXB_MEM_ADDR | 0x5F0) +#define IST30XXB_MEM_ALGORITHM IST30XXB_DA_ADDR(IST30XXB_MEM_ADDR | 0x34) +#define IST30XXB_MEM_CMD IST30XXB_DA_ADDR(IST30XXB_MEM_ADDR | 0x3C) +#define IST30XXB_MEM_FINGERS IST30XXB_DA_ADDR(IST30XXB_MEM_ADDR | 0x4) + +#define IST30XX_FW_NAME "ist30xx.fw" +#define IST30XXB_FW_NAME "ist30xxb.fw" + +#define MASK_FW_VER (0xFFFF0000) +#define IST30XX_FW_VER1 (0x00010000) +#define IST30XX_FW_VER2 (0x00020000) +#define IST30XX_FW_VER3 (0x00030000) + +#define IST30XX_FW_UPDATE_RETRY (3) + +#define WAIT_CALIB_CNT (50) +#define CALIB_THRESHOLD (100) + +#define CALIB_TO_GAP(n) ((n >> 16) & 0xFFF) +#define CALIB_TO_STATUS(n) ((n >> 12) & 0xF) + +#define MASK_UPDATE_BIN (1) +#define MASK_UPDATE_FW (1) +#define MASK_UPDATE_ISP (2) +#define MASK_UPDATE_ALL (3) + +#define CHKSUM_FW (1) +#define CHKSUM_ALL (2) + +#define FLAG_FW (1) +#define FLAG_PARAM (2) + +#define TAGS_PARSE_OK (0) + +/* I2C Transaction size */ +#define I2C_MAX_WRITE_SIZE (64) /* bytes */ +#define I2C_MAX_READ_SIZE (8) /* bytes */ + +int ist30xx_read_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len); +int ist30xx_write_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len); + +int ist30xxb_burst_read(struct i2c_client *client, u32 addr, u32 *buf32, int len); + +int ist30xxb_read_chksum(struct i2c_client *client, u32 *chksum); + +void ist30xx_get_update_info(struct ist30xx_data *data, const u8 *buf, const u32 size); + +u32 ist30xx_parse_ver(int flag, const u8 *buf); + +int ist30xx_fw_update(struct i2c_client *client, const u8 *buf, int size, bool mode); +int ist30xx_fw_param_update(struct i2c_client *client, const u8 *buf); +int ist30xx_fw_recovery(struct ist30xx_data *data); + +int ist30xx_auto_fw_update(struct ist30xx_data *data); +int ist30xx_auto_param_update(struct ist30xx_data *data); +int ist30xx_auto_bin_update(struct ist30xx_data *data); + +int ist30xx_calibrate(int wait_cnt); +int ist30xx_calib_wait(void); + +int ist30xx_init_update_sysfs(void); + +#endif // __IST30XX_UPDATE_H__ diff --git a/drivers/input/touchscreen/ist30xxc/Makefile b/drivers/input/touchscreen/ist30xxc/Makefile new file mode 100644 index 00000000..ee22adea --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/Makefile @@ -0,0 +1,7 @@ +# +# Makefile for the Imagis touch driver +# + +# Each configuration option enables a list of files. + +obj-$(CONFIG_TOUCHSCREEN_IST30XXC) += ist30xxc.o ist30xxc_misc.o ist30xxc_sys.o ist30xxc_update.o ist30xxc_tracking.o ist30xxc_sec.o ist30xxc_cmcs.o diff --git a/drivers/input/touchscreen/ist30xxc/firmware/coreprimeve3g_fw.h b/drivers/input/touchscreen/ist30xxc/firmware/coreprimeve3g_fw.h new file mode 100644 index 00000000..8233afaa --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/firmware/coreprimeve3g_fw.h @@ -0,0 +1,2134 @@ + +#ifndef __IST30XXC_FW_H__ +#define __IST30XXC_FW_H__ + +// Chip ID : 0x0000032C +// FW Ver : 0x02010000 +// Param Ver : 0x00000001 +// FW Download CRC : 0xFABF8076 +// Normal CRC : 0x5CB04982 + +static unsigned char ist30xxc_fw[] = { + 0x80, 0x00, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0xDC, 0x10, 0x00, 0x80, 0xFC, 0x00, 0x00, 0x80, + 0x04, 0x01, 0x00, 0x80, 0x6C, 0x1B, 0x00, 0x80, 0x1C, 0x1B, 0x00, 0x80, 0x44, 0x1B, 0x00, 0x80, + 0xF4, 0x1A, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0xB0, 0x1B, 0x00, 0x80, + 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0C, 0x10, 0x00, 0x17, 0x08, 0x80, 0x00, 0x80, 0x2C, 0x80, 0x5C, 0x6F, 0xAB, 0x0B, 0x00, 0x00, + 0x08, 0x70, 0x00, 0x40, 0x04, 0x61, 0x99, 0x67, 0x10, 0x00, 0x91, 0x67, 0x08, 0x70, 0x0F, 0x00, + 0x11, 0x17, 0x0C, 0x70, 0xC0, 0x10, 0x0C, 0x60, 0xC0, 0x10, 0xC6, 0x76, 0xB2, 0x04, 0xB1, 0x07, + 0x24, 0x74, 0xF2, 0xFC, 0x08, 0x30, 0x00, 0x80, 0x04, 0x70, 0x0C, 0x40, 0xC0, 0x10, 0x0C, 0x50, + 0xC0, 0x10, 0x2C, 0x30, 0xC0, 0x71, 0x2F, 0x64, 0x07, 0x00, 0xC6, 0x65, 0xB2, 0x07, 0x2F, 0x23, + 0x07, 0x00, 0x30, 0x22, 0x24, 0x74, 0xB1, 0x26, 0xF2, 0xF7, 0x0C, 0x70, 0xC0, 0x10, 0x0C, 0x60, + 0x10, 0x11, 0xC6, 0x76, 0xB2, 0x04, 0xB1, 0x07, 0x24, 0x74, 0xF2, 0xFC, 0x2B, 0x0F, 0x00, 0x00, + 0xCB, 0x7A, 0x03, 0x00, 0xB9, 0x20, 0x88, 0x17, 0x04, 0x22, 0xF2, 0x0D, 0xB9, 0x20, 0x88, 0x17, + 0x04, 0x23, 0xF2, 0x09, 0xB9, 0x20, 0x88, 0x17, 0x04, 0x24, 0xF2, 0x05, 0xB9, 0x20, 0x88, 0x17, + 0x04, 0x21, 0xF2, 0x01, 0xB9, 0x10, 0x84, 0x17, 0xB9, 0x30, 0x8C, 0x17, 0x08, 0x30, 0x00, 0x50, + 0xB9, 0x03, 0x00, 0x10, 0xD9, 0x40, 0x90, 0x17, 0xD9, 0x80, 0xA0, 0x17, 0xD9, 0xC0, 0xB0, 0x17, + 0x01, 0x40, 0x01, 0x51, 0xC9, 0x40, 0xC0, 0x17, 0x99, 0x20, 0x80, 0x17, 0x08, 0x20, 0x01, 0x00, + 0xB1, 0x23, 0x98, 0x40, 0x80, 0x17, 0x92, 0xFE, 0x09, 0x00, 0x01, 0x00, 0x04, 0x23, 0xB9, 0x23, + 0x00, 0x10, 0xF2, 0x01, 0x48, 0x40, 0xC0, 0x17, 0x11, 0x15, 0x11, 0x04, 0x58, 0xC0, 0xB0, 0x17, + 0x58, 0x80, 0xA0, 0x17, 0x58, 0x40, 0x90, 0x17, 0x48, 0x20, 0x88, 0x17, 0x38, 0x10, 0x84, 0x17, + 0x61, 0x00, 0x00, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x0B, 0x43, 0x00, 0x00, + 0x4B, 0x49, 0x00, 0x00, 0x6B, 0x4A, 0x00, 0x00, 0x4B, 0x25, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x0B, 0x50, 0x00, 0x00, 0x4B, 0x52, 0x00, 0x00, + 0x8B, 0x51, 0x00, 0x00, 0x0B, 0x53, 0x00, 0x00, 0xEB, 0x54, 0x00, 0x00, 0xAB, 0x55, 0x00, 0x00, + 0xCB, 0x57, 0x00, 0x00, 0xEB, 0x62, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x04, 0x21, 0xB1, 0xF1, 0x4B, 0x58, 0x00, 0x00, 0x4B, 0x5E, 0x00, 0x00, 0x8B, 0x45, + 0x00, 0x00, 0x4B, 0x5D, 0x00, 0x00, 0x04, 0x20, 0x4B, 0x6D, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0x04, 0x2A, 0xD1, 0xC1, 0x6B, 0x40, 0x00, 0x00, + 0x8B, 0x42, 0x00, 0x00, 0xCB, 0x0B, 0x00, 0x00, 0x2B, 0x4F, 0x00, 0x00, 0xAB, 0x0C, 0x00, 0x00, + 0x6B, 0x36, 0x00, 0x00, 0x0B, 0x89, 0x00, 0x00, 0xEB, 0x12, 0x00, 0x00, 0x0B, 0x0E, 0x00, 0x00, + 0x28, 0x20, 0xD8, 0x10, 0x6B, 0x14, 0x00, 0x00, 0x2B, 0x88, 0x00, 0x00, 0x98, 0xC0, 0x03, 0x11, + 0x92, 0xF8, 0x8B, 0x85, 0x00, 0x00, 0x04, 0x21, 0x4B, 0x58, 0x00, 0x00, 0x2B, 0x77, 0x00, 0x00, + 0xAB, 0x7C, 0x00, 0x00, 0x06, 0x2C, 0x4B, 0x58, 0x00, 0x00, 0xCB, 0x84, 0x00, 0x00, 0x0B, 0x86, + 0x00, 0x00, 0x6B, 0x70, 0x00, 0x00, 0xF2, 0xE5, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x04, 0x30, + 0xB9, 0x37, 0x08, 0x30, 0xB9, 0x47, 0x00, 0x30, 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x70, 0x01, 0x11, + 0x82, 0x08, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x00, 0x30, 0x64, 0x71, 0xB9, 0x76, 0x00, 0x30, + 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x70, 0x01, 0x11, 0x82, 0x09, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, + 0x00, 0x30, 0x14, 0x52, 0x56, 0x75, 0xB9, 0x76, 0x00, 0x30, 0xE1, 0xF0, 0x98, 0x70, 0x01, 0x11, + 0x82, 0x05, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x08, 0x30, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x30, + 0x38, 0x76, 0x28, 0x00, 0xD4, 0x74, 0x92, 0xFD, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0x00, 0x30, + 0x38, 0x76, 0x40, 0x01, 0x23, 0x77, 0xB9, 0x76, 0x40, 0x01, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x30, + 0x38, 0x27, 0x40, 0x01, 0xF7, 0x2F, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, 0xEB, 0x15, 0x00, 0x00, + 0x04, 0x70, 0xC6, 0x27, 0x82, 0x0D, 0xEB, 0x14, 0x00, 0x00, 0x08, 0x70, 0x00, 0x30, 0x08, 0x60, + 0x00, 0x80, 0xB9, 0x67, 0x40, 0x01, 0x38, 0x77, 0x3C, 0x01, 0xB9, 0x70, 0xC4, 0x10, 0x30, 0xF1, + 0x06, 0x27, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, + 0x06, 0xE2, 0x77, 0xE8, 0xCC, 0xE0, 0x14, 0x00, 0x0C, 0xD0, 0xFF, 0xFF, 0xB1, 0xB1, 0x56, 0xD2, + 0x82, 0x45, 0xCC, 0xE0, 0x14, 0x00, 0xD2, 0x18, 0xCC, 0xE0, 0x10, 0x00, 0x82, 0x36, 0xCC, 0xE0, + 0x10, 0x00, 0xD2, 0x08, 0xC4, 0xE1, 0x82, 0x2E, 0xC4, 0xE2, 0x92, 0x4A, 0x99, 0xD0, 0x03, 0x11, + 0xF2, 0x65, 0xCC, 0xE0, 0x12, 0x00, 0x82, 0x2C, 0xCC, 0xE0, 0x12, 0x00, 0xD2, 0x2C, 0x99, 0xD0, + 0x01, 0x11, 0xFA, 0x8D, 0x00, 0x00, 0xCC, 0xE0, 0x22, 0x00, 0x82, 0x31, 0xCC, 0xE0, 0x22, 0x00, + 0xD2, 0x0D, 0xCC, 0xE0, 0x20, 0x00, 0x82, 0x25, 0xCC, 0xE0, 0x20, 0x00, 0xD2, 0x25, 0xCC, 0xE0, + 0x15, 0x00, 0x92, 0x2E, 0x99, 0xD0, 0xFD, 0x10, 0xF2, 0x7A, 0xCC, 0xE0, 0x80, 0x00, 0x82, 0x25, + 0xCC, 0xE0, 0x81, 0x00, 0x82, 0x1F, 0xCC, 0xE0, 0x23, 0x00, 0x92, 0x22, 0xA9, 0xD0, 0xF2, 0x10, + 0xF2, 0x6E, 0x99, 0xE0, 0x04, 0x11, 0xF2, 0x6B, 0x99, 0xD0, 0x02, 0x11, 0xF2, 0x68, 0x99, 0xD0, + 0x00, 0x11, 0xF2, 0x65, 0x99, 0xD0, 0xFF, 0x10, 0xF2, 0x62, 0x99, 0xD0, 0xFE, 0x10, 0xF2, 0x5F, + 0xA9, 0xD0, 0xF6, 0x10, 0xF2, 0x5C, 0xA9, 0xD0, 0xF8, 0x10, 0xF2, 0x59, 0xA9, 0xD0, 0xF4, 0x10, + 0xF2, 0x56, 0x99, 0xD0, 0xFB, 0x10, 0xF2, 0x53, 0x99, 0xD0, 0xFA, 0x10, 0xF2, 0x4E, 0xCC, 0xE0, + 0x32, 0x00, 0xD2, 0x18, 0xCC, 0xE0, 0x31, 0x00, 0xB2, 0x2E, 0xC4, 0xE2, 0x82, 0x17, 0xCC, 0xE0, + 0x30, 0x00, 0x92, 0x45, 0xAB, 0x13, 0x00, 0x00, 0x04, 0x20, 0x4B, 0xD6, 0x00, 0x00, 0x0C, 0xB0, + 0x40, 0x01, 0x08, 0xE0, 0x00, 0x30, 0x08, 0xD0, 0x30, 0x00, 0x06, 0xCE, 0x26, 0xBE, 0x24, 0xD1, + 0xF2, 0x31, 0xCC, 0xE0, 0x80, 0x00, 0x82, 0x31, 0xF2, 0x32, 0x8B, 0xC7, 0x00, 0x00, 0xC4, 0xD0, + 0x08, 0xE0, 0x00, 0x40, 0x82, 0x09, 0xAB, 0x13, 0x00, 0x00, 0x38, 0x7E, 0x54, 0x10, 0xB9, 0x70, + 0xC0, 0x10, 0x14, 0x71, 0xF2, 0x05, 0xEB, 0x12, 0x00, 0x00, 0x38, 0x70, 0xC0, 0x10, 0xB9, 0x7E, + 0x54, 0x10, 0xF2, 0x1D, 0xAB, 0x13, 0x00, 0x00, 0x04, 0x20, 0x4B, 0xD6, 0x00, 0x00, 0x06, 0x2E, + 0x8B, 0x05, 0x01, 0x00, 0xF2, 0x14, 0xB8, 0x7E, 0x40, 0x01, 0x32, 0xFE, 0x38, 0x7E, 0x28, 0x00, + 0xD4, 0x74, 0x92, 0xFD, 0xB1, 0x6B, 0x38, 0x7C, 0x3C, 0x01, 0xC6, 0x7D, 0x92, 0xF5, 0x04, 0x74, + 0xF1, 0x70, 0x08, 0x60, 0x00, 0x80, 0xF2, 0xF0, 0xEB, 0x5F, 0x00, 0x00, 0x58, 0xC1, 0x04, 0x00, + 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x08, 0xE0, + 0x00, 0x30, 0x0C, 0xD0, 0x00, 0x01, 0x26, 0xDE, 0xEB, 0x14, 0x00, 0x00, 0x06, 0x2D, 0x0C, 0x30, + 0x40, 0x00, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x38, 0x7E, 0x28, 0x00, 0xD4, 0x72, 0x82, 0x05, + 0x04, 0x72, 0xB9, 0x7E, 0x28, 0x00, 0xF2, 0xF1, 0x38, 0x7E, 0x40, 0x01, 0xB9, 0x7E, 0x40, 0x01, + 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x34, 0x18, 0x0C, 0x20, 0x00, 0x00, 0x0C, 0x30, + 0x80, 0x00, 0xC1, 0xE1, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x06, 0x2E, 0x0C, 0x20, 0x00, 0x17, + 0x0C, 0x30, 0x80, 0x00, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, + 0x00, 0x82, 0x38, 0x67, 0xF8, 0x01, 0x0C, 0xE0, 0x00, 0x17, 0xB9, 0x60, 0x00, 0x00, 0x38, 0x67, + 0xFC, 0x01, 0xB9, 0x60, 0x04, 0x00, 0x08, 0x60, 0x00, 0x80, 0x38, 0x66, 0x04, 0x78, 0xB9, 0x60, + 0x08, 0x00, 0x38, 0x67, 0xF0, 0x01, 0xB9, 0x60, 0x0C, 0x00, 0x38, 0x67, 0xF4, 0x01, 0x38, 0x77, + 0xCC, 0x01, 0xB9, 0x60, 0x10, 0x00, 0xB9, 0x70, 0x1C, 0x00, 0x08, 0x70, 0x00, 0x40, 0x38, 0x77, + 0x10, 0x20, 0xB9, 0xE0, 0x70, 0x00, 0x08, 0x60, 0x00, 0x80, 0xF7, 0x70, 0xB9, 0x70, 0x20, 0x00, + 0x08, 0x70, 0xE0, 0x01, 0x2C, 0x70, 0x20, 0x03, 0xB9, 0x70, 0x40, 0x00, 0x08, 0x70, 0x0D, 0x00, + 0x2C, 0x70, 0x12, 0x00, 0xB9, 0x70, 0x44, 0x00, 0x08, 0x70, 0x02, 0x01, 0x2C, 0x70, 0x11, 0x0B, + 0xB9, 0x70, 0x48, 0x00, 0x08, 0x70, 0x11, 0x0C, 0x2C, 0x70, 0xFF, 0xFF, 0xB9, 0x70, 0x4C, 0x00, + 0x14, 0x71, 0xB9, 0x70, 0x50, 0x00, 0x08, 0x70, 0x0B, 0x00, 0x2C, 0x70, 0x11, 0x00, 0xB9, 0x70, + 0x54, 0x00, 0x08, 0x70, 0xFF, 0x00, 0x2C, 0x70, 0x00, 0xFF, 0xB9, 0x70, 0x58, 0x00, 0x04, 0x78, + 0xB9, 0x70, 0x60, 0x00, 0x08, 0x70, 0x98, 0x08, 0x2C, 0x70, 0x98, 0x08, 0x2C, 0x60, 0x5C, 0x7A, + 0xB9, 0x70, 0x64, 0x00, 0x28, 0x76, 0x28, 0x00, 0x28, 0x66, 0x22, 0x00, 0xB9, 0x00, 0x5C, 0x00, + 0x57, 0x78, 0x66, 0x76, 0xB9, 0x70, 0x68, 0x00, 0x08, 0x70, 0x00, 0x30, 0x2C, 0x70, 0x00, 0x42, + 0xB9, 0x70, 0x74, 0x00, 0x0C, 0x70, 0x80, 0x08, 0xB9, 0x70, 0x78, 0x00, 0x4B, 0x23, 0x00, 0x00, + 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x0C, 0xE0, + 0x80, 0x08, 0x18, 0x6E, 0x0A, 0x08, 0x04, 0x70, 0xC6, 0x67, 0x06, 0xD2, 0x82, 0x19, 0x0C, 0xF0, + 0x54, 0x01, 0xF1, 0xF0, 0x38, 0x7E, 0xD8, 0x07, 0x0C, 0x50, 0x08, 0x08, 0xB1, 0x7D, 0x0C, 0x70, + 0x5C, 0x10, 0x26, 0x5E, 0x04, 0x61, 0xB0, 0x37, 0x82, 0x06, 0x06, 0x46, 0x57, 0x41, 0x26, 0x4D, + 0xB1, 0x34, 0x24, 0x61, 0x24, 0x74, 0xC6, 0x75, 0x92, 0xF7, 0x18, 0x7E, 0x0A, 0x08, 0x50, 0xC1, + 0x06, 0x27, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x04, 0x70, 0x06, 0x67, 0x3F, 0x57, 0x03, 0x00, + 0xC4, 0x50, 0x02, 0x08, 0x2F, 0x57, 0x02, 0x00, 0x10, 0x55, 0x24, 0x71, 0x26, 0x65, 0x13, 0x66, + 0xF2, 0xF6, 0x06, 0x26, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x30, 0xE2, + 0x08, 0x70, 0xFF, 0x00, 0x2C, 0x70, 0xFF, 0xFF, 0x56, 0xE7, 0x6C, 0xE0, 0x00, 0x0C, 0xB1, 0xE2, + 0x57, 0x31, 0x06, 0xD2, 0x4B, 0x30, 0x00, 0x00, 0x57, 0x2C, 0x66, 0x2E, 0xB1, 0x2D, 0x50, 0xC1, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x54, 0x00, 0x06, 0x21, 0x0C, 0x30, + 0x40, 0x00, 0xD9, 0xC1, 0x44, 0x00, 0xCB, 0x2D, 0x00, 0x00, 0x86, 0xD2, 0x82, 0x29, 0x06, 0x21, + 0x06, 0x3D, 0x4B, 0x31, 0x00, 0x00, 0x98, 0x70, 0xFC, 0x10, 0x82, 0x0A, 0x0C, 0x20, 0x40, 0x00, + 0x26, 0x21, 0x0C, 0x30, 0x00, 0x17, 0x99, 0x01, 0x40, 0x00, 0x4B, 0x37, 0x00, 0x00, 0x08, 0xE0, + 0x00, 0x30, 0x0C, 0xC0, 0x04, 0x01, 0x26, 0xCE, 0xEB, 0x14, 0x00, 0x00, 0x06, 0x2C, 0x06, 0x31, + 0x0C, 0x40, 0x2C, 0x00, 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x38, 0x7E, 0x28, 0x00, 0xD4, 0x72, + 0x82, 0x05, 0x04, 0x72, 0xB9, 0x7E, 0x28, 0x00, 0xF2, 0xF0, 0x6B, 0x15, 0x00, 0x00, 0x06, 0x2D, + 0x58, 0xC1, 0x44, 0x00, 0x2C, 0x10, 0x54, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x50, 0x00, 0x00, + 0x0C, 0x70, 0x78, 0x00, 0x34, 0x54, 0x04, 0x60, 0x30, 0x47, 0x34, 0x74, 0xC6, 0x75, 0x26, 0x64, + 0x92, 0xFC, 0xB9, 0x60, 0x7C, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, + 0xD1, 0x81, 0x0C, 0x70, 0x80, 0x08, 0x98, 0xD7, 0x83, 0x07, 0x06, 0xC2, 0x06, 0xE3, 0x06, 0xB7, + 0x92, 0x3E, 0x0C, 0x80, 0x6B, 0x0C, 0x06, 0xA7, 0x0C, 0x90, 0x80, 0x02, 0x18, 0x7B, 0x01, 0x04, + 0xC6, 0x7D, 0xC2, 0x03, 0xC4, 0xD8, 0x92, 0x03, 0x91, 0xDC, 0xF2, 0x5A, 0x60, 0x78, 0x0C, 0x30, + 0x64, 0x00, 0x34, 0x71, 0x57, 0x72, 0x26, 0x7A, 0x18, 0x67, 0x89, 0x02, 0x18, 0x77, 0x88, 0x02, + 0x2F, 0x56, 0x06, 0x00, 0x26, 0x56, 0x57, 0x51, 0x26, 0x65, 0x26, 0x67, 0x13, 0x66, 0x26, 0x66, + 0x26, 0x69, 0x70, 0x26, 0x26, 0x22, 0x06, 0x72, 0x57, 0x72, 0x3F, 0x22, 0x07, 0x00, 0xAB, 0x8F, + 0x00, 0x00, 0x0C, 0x70, 0x90, 0x01, 0x26, 0x72, 0xCC, 0x70, 0x58, 0x02, 0xD2, 0x03, 0xB1, 0x7E, + 0xF2, 0x09, 0x3C, 0x20, 0xC8, 0x00, 0x04, 0x33, 0xAB, 0x8F, 0x00, 0x00, 0x2C, 0x20, 0x58, 0x02, + 0xB1, 0x2E, 0x24, 0xD1, 0x24, 0xE4, 0x13, 0xDD, 0x24, 0x81, 0xF2, 0xC9, 0x28, 0x27, 0x0C, 0x00, + 0x1C, 0x60, 0xA5, 0x01, 0x26, 0x62, 0xCC, 0x60, 0xE8, 0x03, 0xD2, 0x17, 0x0C, 0xB0, 0x8D, 0x05, + 0x3F, 0xD2, 0x0B, 0x00, 0x06, 0x3D, 0x06, 0x2D, 0xEB, 0x8B, 0x00, 0x00, 0x0C, 0x30, 0xE9, 0x03, + 0xAB, 0x8F, 0x00, 0x00, 0x06, 0x3D, 0xEB, 0x8B, 0x00, 0x00, 0x0C, 0x30, 0xE9, 0x03, 0xAB, 0x8F, + 0x00, 0x00, 0x3F, 0x22, 0x0B, 0x00, 0xF2, 0x09, 0xCC, 0x20, 0x8D, 0x05, 0xC2, 0x06, 0x3C, 0x20, + 0x8D, 0x05, 0x77, 0x21, 0x2C, 0x20, 0x8D, 0x05, 0x04, 0x61, 0x91, 0x6C, 0xB1, 0x2E, 0x58, 0xC1, + 0x10, 0x00, 0x50, 0x81, 0x04, 0x20, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x70, + 0x64, 0x00, 0xB1, 0x71, 0x30, 0x71, 0x14, 0x61, 0xC4, 0x70, 0x26, 0x67, 0xB1, 0x61, 0x92, 0xFB, + 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x70, 0x06, 0x01, 0xB1, 0x71, 0x30, 0x71, 0x14, 0x61, + 0xC4, 0x70, 0x26, 0x67, 0xB1, 0x61, 0x92, 0xFB, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x1C, 0x26, 0x22, + 0xC9, 0xE1, 0x04, 0x00, 0x06, 0xE2, 0xB1, 0x01, 0x57, 0xE1, 0xB1, 0x01, 0x26, 0xE2, 0x30, 0x71, + 0xC6, 0x7E, 0xB2, 0x07, 0xAB, 0x3F, 0x00, 0x00, 0x30, 0x71, 0x24, 0x71, 0xB1, 0x71, 0xF2, 0xF8, + 0x48, 0xE1, 0x04, 0x00, 0x24, 0x1C, 0xE1, 0xF0, 0xF7, 0x40, 0x04, 0x70, 0xC6, 0x74, 0x82, 0x07, + 0x2F, 0x67, 0x07, 0x00, 0x26, 0x62, 0xA1, 0x36, 0x24, 0x71, 0xF2, 0xF9, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x04, 0x20, 0xB1, 0xF1, 0x2B, 0xC8, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x08, 0x60, 0x00, 0x00, 0x08, 0x70, 0x00, 0x00, 0x2C, 0x60, 0x80, 0x00, 0x2C, 0x70, 0xCC, 0x01, + 0x36, 0x76, 0xC4, 0x70, 0x34, 0x14, 0xB1, 0xF1, 0x32, 0x02, 0x24, 0x73, 0x06, 0x47, 0x08, 0x50, + 0x00, 0x80, 0x67, 0x41, 0x04, 0x70, 0x2C, 0x50, 0x5C, 0x6F, 0x14, 0x21, 0xC6, 0x74, 0x04, 0x34, + 0x26, 0x36, 0x32, 0x05, 0x30, 0xF5, 0x24, 0x54, 0xB1, 0xF6, 0xF2, 0x02, 0xB1, 0x26, 0x24, 0x71, + 0xCC, 0x70, 0x80, 0x00, 0x82, 0x03, 0x06, 0x63, 0xF2, 0xF2, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x28, 0x60, 0xF6, 0x10, 0xCC, 0x60, 0xFF, 0xFF, 0x92, 0x05, 0x0C, 0x60, 0xE0, 0x2E, 0xA9, 0x60, + 0xF6, 0x10, 0x28, 0x60, 0xF8, 0x10, 0xCC, 0x60, 0xFF, 0xFF, 0x92, 0x05, 0x0C, 0x60, 0x80, 0x3E, + 0xA9, 0x60, 0xF8, 0x10, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x40, 0x00, 0x80, 0x34, 0x14, 0x08, 0x70, + 0x00, 0x80, 0x2C, 0x40, 0x0C, 0x78, 0xB1, 0xF1, 0x2C, 0x70, 0x42, 0x78, 0x0C, 0x50, 0xF0, 0x10, + 0x2C, 0x40, 0x31, 0x00, 0x14, 0xF1, 0x10, 0x67, 0xCC, 0x60, 0xFF, 0x00, 0x82, 0x0E, 0x18, 0x27, + 0x05, 0x00, 0xCC, 0x20, 0xFF, 0x00, 0x82, 0x09, 0x2F, 0x36, 0x06, 0x00, 0x26, 0x36, 0x57, 0x31, + 0x26, 0x63, 0x26, 0x26, 0xA1, 0x25, 0xF2, 0x02, 0xA1, 0xF5, 0x34, 0x71, 0xC6, 0x74, 0x34, 0x52, + 0x92, 0xEB, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x20, 0x80, 0x08, 0x04, 0x30, + 0x0C, 0x40, 0x40, 0x08, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0xCB, 0x46, 0x00, 0x00, + 0xAB, 0x1A, 0x01, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x60, 0xF4, 0x01, + 0xB9, 0x60, 0xD8, 0x10, 0x99, 0x00, 0x0D, 0x11, 0x14, 0x61, 0x99, 0x60, 0x0C, 0x11, 0xB9, 0x00, + 0xD4, 0x10, 0xB9, 0x00, 0xD0, 0x10, 0x99, 0x00, 0x0B, 0x11, 0xB9, 0x00, 0xCC, 0x10, 0xB9, 0x00, + 0xC8, 0x10, 0x99, 0x00, 0x0A, 0x11, 0x04, 0x63, 0x99, 0x60, 0x09, 0x11, 0x99, 0x00, 0x04, 0x11, + 0x99, 0x00, 0x03, 0x11, 0x04, 0x71, 0x99, 0x70, 0x02, 0x11, 0x08, 0x60, 0x00, 0x80, 0x2C, 0x60, + 0x00, 0x78, 0x18, 0x46, 0x09, 0x00, 0x99, 0x40, 0x01, 0x11, 0x99, 0x00, 0x00, 0x11, 0x99, 0x70, + 0xFF, 0x10, 0x99, 0x00, 0xFE, 0x10, 0x14, 0x51, 0xA9, 0x50, 0xF8, 0x10, 0xA9, 0x50, 0xF6, 0x10, + 0x18, 0x56, 0x0A, 0x00, 0x99, 0x50, 0xFD, 0x10, 0xA9, 0x00, 0xF4, 0x10, 0xA9, 0x00, 0xF2, 0x10, + 0x99, 0x00, 0xFC, 0x10, 0x99, 0x00, 0xFB, 0x10, 0x99, 0x00, 0xFA, 0x10, 0x99, 0x70, 0x08, 0x11, + 0x99, 0x00, 0x07, 0x11, 0x99, 0x70, 0x06, 0x11, 0x99, 0x00, 0x05, 0x11, 0xB9, 0x00, 0xFC, 0x17, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x2B, 0xB3, 0x00, 0x00, 0x0C, 0x60, 0x15, 0x00, + 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x04, 0x70, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0xB1, 0xF1, 0x6B, 0xD1, 0x00, 0x00, 0x04, 0x31, 0x0C, 0x20, 0x20, 0x00, 0x0B, 0xD0, + 0x00, 0x00, 0x0C, 0x20, 0xFF, 0x00, 0xCB, 0xCD, 0x00, 0x00, 0x04, 0x24, 0x04, 0x31, 0x8B, 0xCA, + 0x00, 0x00, 0x04, 0x21, 0x6B, 0xC7, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0xB1, 0xF1, 0xEB, 0xC8, 0x00, 0x00, 0x04, 0x20, 0x0B, 0xD5, 0x00, 0x00, 0xAB, 0xC6, + 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0x04, 0x21, 0xB1, 0xF1, 0xAB, 0xD2, + 0x00, 0x00, 0x0C, 0x20, 0x10, 0x00, 0x2B, 0xD2, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x28, 0xC0, 0xD8, 0x10, 0x08, 0xE0, 0x00, 0x40, 0x0C, 0x20, + 0x40, 0x00, 0x38, 0xDE, 0x54, 0x10, 0xEB, 0xCB, 0x00, 0x00, 0x06, 0x3C, 0x0C, 0x20, 0xFF, 0xFF, + 0x04, 0x4A, 0x4B, 0x12, 0x00, 0x00, 0x04, 0x28, 0xB9, 0xDE, 0x54, 0x10, 0x04, 0x30, 0xEB, 0xD6, + 0x00, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, + 0x2B, 0xD3, 0x00, 0x00, 0x04, 0x25, 0x04, 0x31, 0xEB, 0xD6, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x20, 0x00, 0x01, 0xB1, 0xF1, 0xEB, 0xCB, 0x00, 0x00, + 0x0C, 0x20, 0x80, 0x00, 0xEB, 0xCB, 0x00, 0x00, 0x04, 0x20, 0x06, 0x52, 0x0C, 0x30, 0x27, 0x00, + 0x0C, 0x40, 0xFF, 0xFF, 0x0C, 0x60, 0x01, 0x02, 0x0B, 0xDF, 0x00, 0x00, 0x04, 0x21, 0x0C, 0x30, + 0x8F, 0x01, 0x0C, 0x40, 0xFF, 0xFF, 0x04, 0x50, 0x0C, 0x60, 0x01, 0x02, 0x0B, 0xDF, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x04, 0x21, 0xB1, 0xF1, 0x4B, 0xD6, + 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0xC4, 0x20, 0x34, 0x14, 0xB1, 0xF1, 0x82, 0x09, + 0x0C, 0x20, 0x00, 0x60, 0xEB, 0xCB, 0x00, 0x00, 0x04, 0x21, 0x2B, 0xAD, 0x00, 0x00, 0xF2, 0x07, + 0x2B, 0xAD, 0x00, 0x00, 0x0C, 0x20, 0x00, 0x60, 0xCB, 0xCC, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x08, 0xD0, 0x00, 0x40, 0x38, 0xED, + 0x70, 0x60, 0x06, 0xC3, 0x23, 0xEE, 0x06, 0x3E, 0xEB, 0x8B, 0x00, 0x00, 0x0C, 0x30, 0xA0, 0x0F, + 0xAB, 0x8F, 0x00, 0x00, 0x24, 0x25, 0x04, 0x3A, 0xAB, 0x8F, 0x00, 0x00, 0x38, 0x7D, 0x78, 0x71, + 0x06, 0xD2, 0x77, 0x7C, 0x24, 0x72, 0xC6, 0x27, 0xB2, 0x02, 0x06, 0xD7, 0xC4, 0xC0, 0x82, 0x18, + 0x06, 0x7E, 0xD7, 0x71, 0x2F, 0x2E, 0x0E, 0x00, 0x26, 0x27, 0x06, 0x3D, 0xAB, 0x8F, 0x00, 0x00, + 0x3C, 0xE0, 0xB0, 0x9A, 0xCC, 0xE0, 0x20, 0x03, 0x04, 0x71, 0xD2, 0x02, 0x04, 0x70, 0xD7, 0x7F, + 0x66, 0x72, 0x0C, 0x60, 0x00, 0x00, 0xB9, 0x76, 0x3C, 0x00, 0x6B, 0x36, 0x00, 0x00, 0x06, 0x2D, + 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x38, 0x70, 0xE4, 0x10, 0x34, 0x14, 0xB1, 0xF1, + 0x18, 0x27, 0x08, 0x00, 0x04, 0x31, 0xAB, 0x59, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, + 0x18, 0x70, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x28, 0x20, 0xF4, 0x10, 0x34, 0x18, 0xD4, 0x21, + 0xC1, 0xE1, 0x82, 0x0A, 0x04, 0x21, 0xAB, 0xBC, 0x02, 0x00, 0x18, 0x60, 0x09, 0x11, 0x1C, 0x70, + 0x80, 0x00, 0x66, 0x76, 0xF2, 0x07, 0xAB, 0xBC, 0x02, 0x00, 0x18, 0x70, 0x09, 0x11, 0x5C, 0x70, + 0x7F, 0x00, 0x99, 0x70, 0x09, 0x11, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x34, 0x14, 0x04, 0x21, + 0xB1, 0xF1, 0x0B, 0xD5, 0x00, 0x00, 0x98, 0x70, 0xFA, 0x10, 0x82, 0x25, 0x5C, 0x70, 0xF0, 0x00, + 0xCC, 0x70, 0x80, 0x00, 0x82, 0x0A, 0xCC, 0x70, 0xC0, 0x00, 0x82, 0x1A, 0xCC, 0x70, 0x40, 0x00, + 0x92, 0x1A, 0x99, 0x00, 0x01, 0x11, 0xF2, 0x17, 0x04, 0x71, 0x99, 0x70, 0xFC, 0x10, 0x99, 0x70, + 0xFE, 0x10, 0x99, 0x00, 0xFF, 0x10, 0x04, 0x20, 0x99, 0x70, 0xFB, 0x10, 0xAB, 0xBC, 0x02, 0x00, + 0x18, 0x60, 0x09, 0x11, 0x5C, 0x60, 0x7F, 0x00, 0x99, 0x60, 0x09, 0x11, 0xF2, 0x04, 0x04, 0x61, + 0x99, 0x60, 0xFC, 0x10, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, + 0x08, 0x40, 0x00, 0x00, 0x2C, 0x20, 0x80, 0x02, 0x08, 0x30, 0x00, 0x80, 0x2C, 0x40, 0x98, 0x03, + 0x3C, 0x10, 0x10, 0x00, 0x36, 0x42, 0x2C, 0x30, 0xA8, 0x70, 0xD1, 0xC1, 0x0C, 0xF0, 0x04, 0x01, + 0xF1, 0xF0, 0x0C, 0x30, 0x00, 0x84, 0x04, 0x20, 0x0C, 0xF0, 0x3C, 0x03, 0xF1, 0xF0, 0x0C, 0xE0, + 0x00, 0x00, 0x08, 0x30, 0x00, 0x80, 0xB9, 0x2E, 0x18, 0x00, 0x2C, 0x30, 0x00, 0x80, 0x04, 0x20, + 0x0C, 0xF0, 0x3C, 0x03, 0xF1, 0xF0, 0x08, 0x70, 0x00, 0x80, 0x38, 0xC7, 0xD0, 0x83, 0xB9, 0x2E, + 0x14, 0x00, 0x06, 0xD2, 0xCC, 0xC0, 0xFF, 0x00, 0x82, 0x1B, 0xC6, 0xC2, 0x82, 0x19, 0xEB, 0x14, + 0x00, 0x00, 0x08, 0x60, 0x1C, 0xE1, 0x08, 0x70, 0x00, 0x30, 0x2C, 0x60, 0x01, 0xE9, 0xB9, 0x67, + 0x04, 0x01, 0xB9, 0xC7, 0x08, 0x01, 0xB9, 0xD7, 0x0C, 0x01, 0x38, 0x6E, 0x18, 0x00, 0xB9, 0x67, + 0x10, 0x01, 0xEB, 0xD5, 0x00, 0x00, 0x04, 0x2A, 0x6B, 0x40, 0x00, 0x00, 0xF2, 0xFB, 0x50, 0xC1, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x60, 0x06, 0x11, 0x34, 0x14, 0xB1, 0xF1, + 0x82, 0x09, 0x34, 0x61, 0x93, 0x66, 0x99, 0x60, 0x06, 0x11, 0x92, 0x36, 0x99, 0x00, 0x08, 0x11, + 0xF2, 0x33, 0xAB, 0xB2, 0x00, 0x00, 0xCC, 0x20, 0x1B, 0x00, 0xC2, 0x0A, 0x38, 0x50, 0xD0, 0x10, + 0x18, 0x60, 0x07, 0x11, 0x34, 0x53, 0xC6, 0x65, 0xB2, 0x17, 0x24, 0x61, 0xF2, 0x13, 0x98, 0x60, + 0x07, 0x11, 0x82, 0x12, 0x98, 0x50, 0x0D, 0x11, 0x82, 0x04, 0xB8, 0x50, 0xD4, 0x10, 0x92, 0x0C, + 0xCC, 0x20, 0x18, 0x00, 0xD2, 0x09, 0x18, 0x50, 0x05, 0x11, 0xCC, 0x50, 0x14, 0x00, 0xD2, 0x04, + 0x34, 0x61, 0x99, 0x60, 0x07, 0x11, 0x98, 0x50, 0x08, 0x11, 0x92, 0x09, 0x18, 0x70, 0x07, 0x11, + 0xC4, 0x7E, 0xC2, 0x0A, 0x04, 0x71, 0x99, 0x70, 0x08, 0x11, 0xF2, 0x06, 0x98, 0x70, 0x07, 0x11, + 0x92, 0x03, 0x99, 0x00, 0x08, 0x11, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x18, 0xC1, 0xE1, + 0x06, 0xE2, 0x0B, 0xC3, 0x00, 0x00, 0x06, 0x2E, 0x6B, 0xBD, 0x00, 0x00, 0x40, 0xE1, 0x24, 0x18, + 0xE1, 0xF0, 0x00, 0x00, 0x04, 0x20, 0x34, 0x14, 0x06, 0x32, 0xB1, 0xF1, 0xEB, 0x09, 0x01, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xD2, + 0x18, 0x20, 0x09, 0x11, 0x5C, 0x20, 0xF0, 0x00, 0x64, 0x23, 0x99, 0x20, 0x09, 0x11, 0xAB, 0xB6, + 0x00, 0x00, 0x0B, 0xB1, 0x00, 0x00, 0xC4, 0xD0, 0x92, 0x06, 0x8B, 0xB0, 0x00, 0x00, 0x04, 0x24, + 0x0B, 0xE9, 0x00, 0x00, 0x2B, 0x12, 0x01, 0x00, 0x0C, 0xE0, 0x15, 0x00, 0xB4, 0xE1, 0x82, 0x0D, + 0x04, 0x21, 0xCB, 0xAF, 0x00, 0x00, 0x04, 0x21, 0xCB, 0xAE, 0x00, 0x00, 0xC4, 0xD0, 0x82, 0xF7, + 0xEB, 0x15, 0x00, 0x00, 0xC4, 0x20, 0x82, 0xF3, 0x8B, 0xB1, 0x00, 0x00, 0x50, 0xC1, 0x04, 0x61, + 0x99, 0x60, 0x0A, 0x11, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, + 0x0C, 0x60, 0x80, 0x08, 0xA8, 0x76, 0x24, 0x00, 0x82, 0x05, 0x34, 0x71, 0xA9, 0x76, 0x24, 0x00, + 0xF2, 0x30, 0x18, 0x60, 0x0D, 0x11, 0x18, 0x70, 0x0C, 0x11, 0xC6, 0x76, 0x92, 0x2A, 0xC4, 0x70, + 0x82, 0x04, 0x28, 0x70, 0xF6, 0x10, 0xF2, 0x03, 0x28, 0x70, 0xF8, 0x10, 0xC6, 0x72, 0xC2, 0x21, + 0x36, 0x72, 0x06, 0x27, 0x57, 0x23, 0x57, 0x74, 0x26, 0x27, 0x0C, 0x30, 0x10, 0x27, 0xAB, 0x8F, + 0x00, 0x00, 0xC4, 0x2A, 0xC2, 0x16, 0x8B, 0xD3, 0x00, 0x00, 0xEB, 0xD3, 0x00, 0x00, 0x98, 0x70, + 0xFD, 0x10, 0x82, 0x04, 0x4B, 0xC7, 0x00, 0x00, 0xF2, 0x08, 0x18, 0x70, 0x0F, 0x11, 0x93, 0x07, + 0x92, 0x04, 0xAB, 0x3F, 0x00, 0x00, 0xF2, 0xFA, 0x99, 0x00, 0x0F, 0x11, 0x6B, 0xD4, 0x00, 0x00, + 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, 0x18, 0x70, 0xFB, 0x10, 0x0C, 0x60, 0xFA, 0x00, + 0xC4, 0x70, 0x92, 0x05, 0x38, 0x70, 0xE4, 0x10, 0x28, 0x67, 0x1E, 0x00, 0x0C, 0x70, 0x80, 0x08, + 0x28, 0x57, 0x46, 0x01, 0x26, 0x65, 0x28, 0x57, 0x0C, 0x00, 0xC6, 0x65, 0x02, 0x17, 0x98, 0x57, + 0x02, 0x04, 0x92, 0x14, 0x28, 0x57, 0x06, 0x00, 0xDC, 0x50, 0xE0, 0x02, 0x92, 0x0F, 0x38, 0x70, + 0xCC, 0x10, 0x04, 0x21, 0x24, 0x71, 0xB9, 0x70, 0xCC, 0x10, 0x38, 0x60, 0xE4, 0x10, 0x18, 0x66, + 0x20, 0x00, 0xC6, 0x76, 0xD2, 0x06, 0x06, 0x25, 0xF2, 0x04, 0xB9, 0x00, 0xCC, 0x10, 0x04, 0x20, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x18, 0x70, 0x0D, 0x11, 0x18, 0x50, + 0x0C, 0x11, 0xC6, 0x57, 0x82, 0x3F, 0x99, 0x70, 0x0C, 0x11, 0xC4, 0x70, 0x18, 0x70, 0x09, 0x11, + 0x1C, 0x60, 0x10, 0x00, 0x56, 0x76, 0x82, 0x1C, 0x64, 0x72, 0x99, 0x70, 0x09, 0x11, 0x0B, 0x1D, + 0x01, 0x00, 0xB9, 0x00, 0xD4, 0x10, 0xB9, 0x00, 0xCC, 0x10, 0x38, 0x70, 0xE4, 0x10, 0x18, 0x27, + 0x41, 0x00, 0x18, 0x37, 0x78, 0x00, 0x18, 0x47, 0x77, 0x00, 0x18, 0x57, 0x58, 0x00, 0x18, 0x67, + 0x20, 0x00, 0x0C, 0xF0, 0xA8, 0x00, 0xF1, 0xF0, 0xB9, 0x20, 0xD0, 0x10, 0xF2, 0x0C, 0x64, 0x71, + 0x99, 0x70, 0x09, 0x11, 0x4B, 0x1E, 0x01, 0x00, 0x38, 0x70, 0xE4, 0x10, 0x18, 0x67, 0x55, 0x00, + 0x99, 0x60, 0xF5, 0x0A, 0x98, 0x70, 0x0D, 0x11, 0x82, 0x05, 0x0C, 0xF0, 0x68, 0x01, 0xF1, 0xF0, + 0xF2, 0x05, 0x18, 0x20, 0x09, 0x11, 0xCB, 0xC0, 0x00, 0x00, 0x18, 0x20, 0x09, 0x11, 0xEB, 0x6B, + 0x00, 0x00, 0x18, 0x20, 0x09, 0x11, 0xCB, 0x67, 0x00, 0x00, 0x18, 0x20, 0x09, 0x11, 0xAB, 0xB6, + 0x00, 0x00, 0x18, 0x20, 0x09, 0x11, 0xCB, 0xC0, 0x00, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x98, 0x70, 0x0D, 0x11, 0x06, 0xDE, + 0x82, 0x53, 0x04, 0x63, 0x99, 0x60, 0x0A, 0x11, 0x4B, 0x74, 0x00, 0x00, 0xC4, 0x20, 0x82, 0x07, + 0x0B, 0xB1, 0x00, 0x00, 0x0C, 0xF0, 0x68, 0x01, 0xF1, 0xF0, 0xF2, 0x03, 0x8B, 0xB1, 0x00, 0x00, + 0x0C, 0xF0, 0x8C, 0x01, 0xF1, 0xF0, 0x04, 0x21, 0xCB, 0xAF, 0x00, 0x00, 0x4B, 0x27, 0x01, 0x00, + 0x06, 0xE2, 0x04, 0x21, 0xCB, 0xAE, 0x00, 0x00, 0x04, 0x28, 0xCB, 0xAF, 0x00, 0x00, 0x0C, 0x20, + 0x10, 0x00, 0xCB, 0xAE, 0x00, 0x00, 0xC4, 0xE0, 0x82, 0x03, 0xAB, 0x2A, 0x01, 0x00, 0x98, 0x70, + 0x85, 0x08, 0x82, 0x06, 0xB9, 0x00, 0xD4, 0x10, 0xB9, 0x00, 0xC8, 0x10, 0xF2, 0x06, 0x38, 0x70, + 0xD4, 0x10, 0x24, 0x71, 0xB9, 0x70, 0xD4, 0x10, 0xAB, 0x16, 0x01, 0x00, 0x38, 0x70, 0xD0, 0x10, + 0x38, 0x60, 0xD4, 0x10, 0x24, 0x73, 0xC6, 0x67, 0xA2, 0x05, 0x99, 0x00, 0x0D, 0x11, 0x99, 0x00, + 0x05, 0x11, 0x98, 0x60, 0x0B, 0x11, 0x82, 0x35, 0x04, 0x20, 0x99, 0x00, 0x0B, 0x11, 0x99, 0x00, + 0x0D, 0x11, 0x8B, 0xE1, 0x00, 0x00, 0x28, 0x20, 0xD8, 0x10, 0x6B, 0x14, 0x00, 0x00, 0x04, 0x21, + 0x4B, 0x6D, 0x00, 0x00, 0xF2, 0x26, 0x04, 0x62, 0x99, 0x60, 0x0A, 0x11, 0x0B, 0xB1, 0x00, 0x00, + 0x04, 0x21, 0xCB, 0xAF, 0x00, 0x00, 0x04, 0x21, 0xCB, 0xAE, 0x00, 0x00, 0x04, 0x28, 0xCB, 0xAF, + 0x00, 0x00, 0x0C, 0x20, 0x10, 0x00, 0xCB, 0xAE, 0x00, 0x00, 0xAB, 0x16, 0x01, 0x00, 0xAB, 0x8F, + 0x02, 0x00, 0xC4, 0x20, 0x82, 0x0C, 0x18, 0x70, 0xFA, 0x10, 0x5C, 0x70, 0xF0, 0x00, 0xCC, 0x70, + 0x40, 0x00, 0x82, 0x07, 0x04, 0x71, 0x99, 0x70, 0x0D, 0x11, 0xF2, 0x03, 0xAB, 0x6C, 0x00, 0x00, + 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, 0xCB, 0x32, 0x00, 0x00, + 0xC4, 0x20, 0x82, 0x03, 0xEB, 0xD5, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x04, 0x20, 0xB1, 0xF1, 0xCB, 0xE0, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x34, 0x18, 0x04, 0x20, 0xC1, 0xE1, 0x4B, 0xE2, 0x00, 0x00, 0x06, 0xE2, 0x04, 0x20, 0x8B, 0xE1, + 0x00, 0x00, 0x06, 0x2E, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, + 0xEB, 0x14, 0x00, 0x00, 0x08, 0x70, 0x1C, 0xE1, 0x08, 0x60, 0x00, 0x30, 0x2C, 0x70, 0x04, 0xE9, + 0xB9, 0x76, 0x04, 0x01, 0xB9, 0x76, 0x08, 0x01, 0xEB, 0xD5, 0x00, 0x00, 0x04, 0x2A, 0x6B, 0x40, + 0x00, 0x00, 0xF2, 0xFB, 0x34, 0x14, 0xB1, 0xF1, 0x4B, 0x16, 0x00, 0x00, 0xC4, 0x20, 0x82, 0x05, + 0x38, 0x20, 0xC4, 0x10, 0xCB, 0x17, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x18, 0x04, 0x21, 0xC1, 0xE1, 0xCB, 0xE0, 0x00, 0x00, 0x08, 0xE0, 0x07, 0x00, 0x2C, 0xE0, + 0x20, 0xA1, 0x2B, 0x88, 0x00, 0x00, 0x98, 0x70, 0x04, 0x11, 0x92, 0x1B, 0x04, 0x21, 0x4B, 0xE2, + 0x00, 0x00, 0x26, 0x22, 0x06, 0x72, 0x57, 0x71, 0x26, 0x27, 0xC6, 0x2E, 0xC2, 0xF3, 0x08, 0x70, + 0x00, 0x80, 0x38, 0x77, 0xCC, 0x83, 0xCC, 0x70, 0xFF, 0x00, 0x82, 0x04, 0x98, 0x70, 0x03, 0x11, + 0x82, 0x08, 0x04, 0x21, 0x8B, 0xE1, 0x00, 0x00, 0x04, 0x21, 0xCB, 0xE0, 0x00, 0x00, 0xF2, 0xE2, + 0x04, 0x21, 0x8B, 0xE1, 0x00, 0x00, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x0C, 0x70, 0xFF, 0x7F, + 0x26, 0x72, 0xCC, 0x70, 0xFE, 0xFF, 0x34, 0x14, 0xB1, 0xF1, 0xD2, 0x07, 0x0C, 0x70, 0xFF, 0x7F, + 0x26, 0x73, 0xCC, 0x70, 0xFE, 0xFF, 0xC2, 0x04, 0xFB, 0x99, 0x00, 0x00, 0xF2, 0x0F, 0x08, 0x70, + 0x00, 0x40, 0x04, 0x61, 0x57, 0x28, 0x23, 0x33, 0xB9, 0x67, 0x00, 0x80, 0x66, 0x23, 0xB9, 0x27, + 0x04, 0x80, 0xB9, 0x07, 0x08, 0x80, 0x38, 0x27, 0x0C, 0x80, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0xC4, 0x20, 0x34, 0x14, 0xB1, 0xF1, 0x06, 0x23, 0x82, 0x10, 0x57, 0x26, 0x5C, 0x40, 0xFF, 0x0F, + 0x66, 0x24, 0x08, 0x60, 0x00, 0x40, 0xB9, 0x26, 0x14, 0x80, 0x38, 0x76, 0x20, 0x80, 0xD4, 0x71, + 0x82, 0xFD, 0x38, 0x26, 0x18, 0x80, 0xF2, 0x04, 0x06, 0x34, 0x1B, 0x9B, 0x00, 0x00, 0x30, 0xF1, + 0x24, 0x14, 0xE1, 0xF0, 0x08, 0x60, 0x0F, 0x00, 0x2C, 0x60, 0xFF, 0xFF, 0xC6, 0x26, 0x34, 0x14, + 0xB1, 0xF1, 0x06, 0x72, 0x06, 0x43, 0xD2, 0x04, 0xCC, 0x30, 0xFF, 0x0F, 0xC2, 0x06, 0x06, 0x27, + 0x06, 0x34, 0x1B, 0x9B, 0x00, 0x00, 0xF2, 0x05, 0x04, 0x21, 0x06, 0x37, 0x0B, 0x8E, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xD3, + 0xF7, 0xDF, 0xC4, 0xD0, 0x06, 0xE4, 0xF7, 0xEF, 0x82, 0x02, 0x16, 0x33, 0xC4, 0xE0, 0x82, 0x02, + 0x16, 0x44, 0xC4, 0x20, 0x82, 0x10, 0x5C, 0x40, 0xFF, 0x0F, 0x57, 0x36, 0x66, 0x43, 0x08, 0x60, + 0x00, 0x40, 0xB9, 0x46, 0x14, 0x80, 0x38, 0x76, 0x20, 0x80, 0xD4, 0x71, 0x82, 0xFD, 0x38, 0x26, + 0x18, 0x80, 0xF2, 0x05, 0x06, 0x23, 0x06, 0x34, 0x1B, 0x9B, 0x00, 0x00, 0xC6, 0xDE, 0x82, 0x02, + 0x16, 0x22, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0x07, 0x00, + 0x2C, 0x60, 0xFF, 0xFF, 0x2F, 0x56, 0x02, 0x00, 0x08, 0x60, 0x0F, 0x00, 0x2C, 0x60, 0xFE, 0xFF, + 0xC6, 0x56, 0x34, 0x14, 0xB1, 0xF1, 0x06, 0x72, 0x06, 0x43, 0xD2, 0x08, 0x0C, 0x60, 0xFF, 0x07, + 0x26, 0x63, 0xCC, 0x60, 0xFE, 0x0F, 0x04, 0x21, 0xC2, 0x02, 0x04, 0x20, 0x06, 0x37, 0x4B, 0x91, + 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0xC4, 0x20, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, + 0x06, 0xE3, 0x06, 0xD4, 0x82, 0x0E, 0x57, 0xE6, 0x66, 0xE4, 0x08, 0x60, 0x00, 0x40, 0xB9, 0xE6, + 0x14, 0x80, 0x38, 0x76, 0x20, 0x80, 0xD4, 0x71, 0x82, 0xFD, 0x38, 0x26, 0x1C, 0x80, 0xF2, 0x0A, + 0x06, 0x23, 0x06, 0x34, 0x1B, 0x9B, 0x00, 0x00, 0x06, 0x3D, 0xEB, 0x8B, 0x00, 0x00, 0x3F, 0x22, + 0x0E, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x0F, 0x00, + 0x2C, 0x70, 0xFF, 0xFF, 0xC6, 0x27, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xD2, 0x06, 0xE3, + 0xD2, 0x04, 0xCC, 0x30, 0xFF, 0x0F, 0xC2, 0x0B, 0x06, 0x3E, 0x06, 0x2D, 0x1B, 0x9B, 0x00, 0x00, + 0x06, 0x3E, 0xEB, 0x8B, 0x00, 0x00, 0x3F, 0x22, 0x0D, 0x00, 0xF2, 0x06, 0x04, 0x21, 0x06, 0x3D, + 0x06, 0x4E, 0xCB, 0x95, 0x00, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0xC4, 0x30, + 0x04, 0x40, 0x04, 0x50, 0x0C, 0x60, 0x20, 0x00, 0x52, 0x03, 0xA6, 0x42, 0x25, 0x50, 0xB4, 0x61, + 0x02, 0x06, 0xA6, 0x44, 0x25, 0x55, 0xA6, 0x33, 0x42, 0xF9, 0xF2, 0xFA, 0x06, 0x24, 0x06, 0x35, + 0xE1, 0xF0, 0x04, 0x40, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x9E, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x9D, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x9C, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x9B, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x9A, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x99, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x98, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x97, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x96, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x95, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x94, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x93, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x92, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x91, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x90, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x8F, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8E, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8D, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8C, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8B, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x8A, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x89, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x88, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x87, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x86, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x85, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x84, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x83, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x82, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x81, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x80, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x7F, 0x00, 0x00, 0xE1, 0xF0, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x62, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x63, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x64, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x65, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x66, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x67, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x68, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x69, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x6A, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x6B, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x6C, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x6D, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x6E, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x6F, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x70, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x71, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x72, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x73, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x74, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x75, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x76, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x77, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x78, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x79, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x7A, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x7B, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x7C, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x7D, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x7E, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x7F, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x80, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, 0x08, 0x70, 0x00, 0x40, 0xC4, 0x20, 0x38, 0x67, + 0x30, 0x71, 0x82, 0x09, 0x08, 0x50, 0x40, 0x00, 0x66, 0x65, 0xB9, 0x67, 0x30, 0x71, 0xAB, 0x3F, + 0x00, 0x00, 0xF2, 0x08, 0x08, 0x50, 0xBF, 0xFF, 0x2C, 0x50, 0xFF, 0xFF, 0x56, 0x65, 0xB9, 0x67, + 0x30, 0x71, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x08, 0x70, + 0xD6, 0x72, 0x82, 0xFD, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0x38, 0x67, 0x08, 0x70, + 0xB9, 0x67, 0x08, 0x70, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, 0x06, 0xE2, 0x4B, 0xAF, + 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0xB9, 0xE7, 0x00, 0x70, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, + 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x70, 0x70, 0x64, 0x72, 0xB9, 0x76, 0x70, 0x70, 0xE1, 0xF0, + 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x70, 0x70, 0x64, 0x71, 0xB9, 0x76, 0x70, 0x70, 0xE1, 0xF0, + 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x70, 0x70, 0x14, 0x52, 0x56, 0x75, 0xB9, 0x76, 0x70, 0x70, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0x38, 0x27, 0xE0, 0x70, 0x5C, 0x20, 0xFF, 0x7F, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0x38, 0x27, 0x5C, 0x70, 0x5C, 0x20, 0x7F, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x20, 0x00, 0x40, 0x08, 0x30, 0x00, 0x80, 0x34, 0x18, 0x2C, 0x20, + 0x08, 0x70, 0x2C, 0x30, 0x08, 0x7C, 0x0C, 0x40, 0xF8, 0x01, 0xC1, 0xE1, 0x0C, 0xF0, 0x04, 0x01, + 0xF1, 0xF0, 0x0C, 0x20, 0x00, 0x46, 0x08, 0xE0, 0x00, 0x30, 0x08, 0x30, 0x00, 0x80, 0x26, 0x2E, + 0x2C, 0x30, 0x00, 0x7E, 0x0C, 0x40, 0x00, 0x02, 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x0C, 0x20, + 0x00, 0x40, 0x08, 0x30, 0x00, 0x80, 0x26, 0x2E, 0x2C, 0x30, 0x00, 0x80, 0x0C, 0x40, 0x00, 0x02, + 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x00, 0x42, 0x08, 0x30, 0x98, 0x08, 0x26, 0x2E, + 0x2C, 0x30, 0x98, 0x08, 0x0C, 0x40, 0x00, 0x04, 0x0C, 0xF0, 0x40, 0x01, 0xF1, 0xF0, 0x40, 0xE1, + 0x24, 0x18, 0xE1, 0xF0, 0xC4, 0x23, 0x82, 0x4E, 0xC4, 0x23, 0x08, 0x70, 0x00, 0x40, 0xD2, 0x06, + 0xC4, 0x21, 0x82, 0x1C, 0xC4, 0x22, 0x82, 0x2E, 0xF2, 0x5A, 0xCC, 0x20, 0x81, 0x00, 0x82, 0x16, + 0xCC, 0x20, 0x82, 0x00, 0x82, 0x27, 0xC4, 0x28, 0x92, 0x52, 0x08, 0x60, 0x22, 0x00, 0x2C, 0x60, + 0x11, 0x11, 0xB9, 0x67, 0x34, 0x70, 0x04, 0x62, 0xB9, 0x67, 0x64, 0x70, 0x08, 0x60, 0x01, 0x00, + 0x2C, 0x60, 0x53, 0x86, 0xB9, 0x67, 0x54, 0x70, 0xF2, 0x42, 0x08, 0x60, 0x22, 0x00, 0x2C, 0x60, + 0x23, 0x13, 0xB9, 0x67, 0x34, 0x70, 0x04, 0x63, 0xB9, 0x67, 0x64, 0x70, 0x08, 0x60, 0x01, 0x00, + 0x2C, 0x60, 0x51, 0x86, 0xB9, 0x67, 0x54, 0x70, 0x08, 0x60, 0xA0, 0x8F, 0x2C, 0x60, 0x80, 0x0F, + 0xF2, 0x2C, 0x08, 0x60, 0x22, 0x00, 0x2C, 0x60, 0x23, 0x13, 0xB9, 0x67, 0x34, 0x70, 0x04, 0x63, + 0xB9, 0x67, 0x64, 0x70, 0x08, 0x70, 0x01, 0x00, 0x08, 0x60, 0x00, 0x40, 0x2C, 0x70, 0x51, 0x86, + 0xB9, 0x76, 0x54, 0x70, 0x08, 0x70, 0xA0, 0x8F, 0x2C, 0x70, 0x80, 0x0F, 0xB9, 0x76, 0x6C, 0x70, + 0xF2, 0x16, 0x08, 0x60, 0x22, 0x00, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x11, 0x11, 0xB9, 0x67, + 0x34, 0x70, 0x04, 0x62, 0xB9, 0x67, 0x64, 0x70, 0x08, 0x60, 0x01, 0x00, 0x2C, 0x60, 0x51, 0x86, + 0xB9, 0x67, 0x54, 0x70, 0x0C, 0x60, 0x00, 0x0F, 0xB9, 0x67, 0x6C, 0x70, 0x08, 0x70, 0x00, 0x40, + 0x08, 0x60, 0xFA, 0x00, 0xB9, 0x67, 0x30, 0x70, 0xE1, 0xF0, 0x00, 0x00, 0x54, 0x2F, 0xC4, 0x21, + 0x92, 0x04, 0x38, 0x60, 0xDC, 0x10, 0xF2, 0x03, 0x38, 0x60, 0xE0, 0x10, 0x38, 0x56, 0x08, 0x00, + 0x08, 0x70, 0x00, 0x40, 0xB9, 0x57, 0xB4, 0x70, 0x38, 0x56, 0x0C, 0x00, 0x08, 0x40, 0xDF, 0xFF, + 0xB9, 0x57, 0xB8, 0x70, 0x38, 0x56, 0x10, 0x00, 0x2C, 0x40, 0xFF, 0xFF, 0x56, 0x54, 0xB9, 0x57, + 0xC0, 0x70, 0x38, 0x56, 0x14, 0x00, 0xB9, 0x57, 0xC4, 0x70, 0x98, 0x50, 0xFB, 0x10, 0x82, 0x0C, + 0x08, 0x60, 0x01, 0x00, 0x2C, 0x60, 0x40, 0x62, 0xB9, 0x67, 0xAC, 0x70, 0x08, 0x60, 0x10, 0x00, + 0x2C, 0x60, 0x10, 0x00, 0xF2, 0x06, 0x30, 0x56, 0xB9, 0x57, 0xAC, 0x70, 0x38, 0x66, 0x04, 0x00, + 0xB9, 0x67, 0xB0, 0x70, 0xE1, 0xF0, 0x00, 0x00, 0x54, 0x2F, 0xC4, 0x21, 0x92, 0x04, 0x38, 0x70, + 0xDC, 0x10, 0xF2, 0x03, 0x38, 0x70, 0xE0, 0x10, 0x18, 0x60, 0x82, 0x0C, 0xC4, 0x62, 0xC2, 0x04, + 0x38, 0x57, 0x20, 0x00, 0xF2, 0x08, 0xC4, 0x62, 0x92, 0x04, 0x38, 0x57, 0x1C, 0x00, 0xF2, 0x03, + 0x38, 0x57, 0x18, 0x00, 0x08, 0x60, 0x00, 0x40, 0xB9, 0x56, 0xC8, 0x70, 0x38, 0x57, 0x24, 0x00, + 0xB9, 0x56, 0xCC, 0x70, 0x38, 0x77, 0x28, 0x00, 0xB9, 0x76, 0xD4, 0x70, 0xE1, 0xF0, 0x00, 0x00, + 0x54, 0x2F, 0xC4, 0x21, 0x92, 0x04, 0x38, 0x70, 0xDC, 0x10, 0xF2, 0x03, 0x38, 0x70, 0xE0, 0x10, + 0x38, 0x57, 0x2C, 0x00, 0x08, 0x60, 0x00, 0x40, 0xB9, 0x56, 0x8C, 0x70, 0x38, 0x57, 0x30, 0x00, + 0xB9, 0x56, 0x90, 0x70, 0x38, 0x57, 0x34, 0x00, 0xB9, 0x56, 0x94, 0x70, 0x38, 0x57, 0x38, 0x00, + 0xB9, 0x56, 0x98, 0x70, 0x38, 0x57, 0x3C, 0x00, 0xB9, 0x56, 0x9C, 0x70, 0x38, 0x57, 0x40, 0x00, + 0xB9, 0x56, 0xA0, 0x70, 0x38, 0x57, 0x44, 0x00, 0xB9, 0x56, 0xA4, 0x70, 0x38, 0x77, 0x48, 0x00, + 0xB9, 0x76, 0xA8, 0x70, 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x60, 0x00, 0xDE, 0x08, 0x70, 0x00, 0x40, + 0xB9, 0x67, 0x10, 0x60, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x07, 0x10, 0x60, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0x0C, 0x60, 0xFE, 0x00, 0xB9, 0x67, 0x0C, 0x20, + 0xB9, 0x07, 0x18, 0x20, 0xE1, 0xF0, 0x00, 0x00, 0x51, 0x00, 0xE1, 0xF0, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x70, 0xAD, 0xDE, 0x2C, 0x70, 0x2C, 0x03, 0x08, 0x60, 0x00, 0x40, 0xB9, 0x76, 0x00, 0x10, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0xAD, 0xDE, 0x08, 0x60, 0x00, 0x40, 0x2C, 0x70, 0x2C, 0x03, + 0xB9, 0x76, 0x00, 0x10, 0xB9, 0x26, 0x6C, 0x10, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0xAD, 0xDE, + 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x2C, 0x03, 0xB9, 0x67, 0x00, 0x10, 0x0C, 0x50, 0x10, 0x00, + 0xB9, 0x57, 0x20, 0x10, 0x08, 0x50, 0x38, 0x03, 0xB9, 0x67, 0x00, 0x10, 0x2C, 0x50, 0x80, 0x88, + 0xB9, 0x57, 0x24, 0x10, 0xB9, 0x67, 0x00, 0x10, 0xB9, 0x07, 0x28, 0x10, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x2C, 0x03, 0xB9, 0x67, 0x00, 0x10, + 0xC4, 0x30, 0x38, 0x67, 0x50, 0x10, 0x82, 0x05, 0x66, 0x62, 0xB9, 0x67, 0x50, 0x10, 0xF2, 0x05, + 0x15, 0x22, 0x56, 0x26, 0xB9, 0x27, 0x50, 0x10, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0xAD, 0xDE, + 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x2C, 0x03, 0xB9, 0x67, 0x00, 0x10, 0x38, 0x67, 0x54, 0x10, + 0x66, 0x62, 0xB9, 0x67, 0x54, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, + 0x2C, 0x60, 0x2C, 0x03, 0xB9, 0x67, 0x00, 0x10, 0x38, 0x67, 0x54, 0x10, 0x15, 0x22, 0x56, 0x26, + 0xB9, 0x27, 0x54, 0x10, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, + 0x2C, 0x60, 0x2C, 0x03, 0xB9, 0x67, 0x00, 0x10, 0x38, 0x57, 0x58, 0x10, 0xCC, 0x20, 0xFF, 0x00, + 0x1C, 0x40, 0x00, 0x01, 0x56, 0x54, 0x92, 0x0A, 0xB9, 0x57, 0x58, 0x10, 0xB9, 0x67, 0x00, 0x10, + 0x38, 0x67, 0x4C, 0x10, 0x14, 0x52, 0x56, 0x65, 0xF2, 0x09, 0x66, 0x52, 0xB9, 0x57, 0x58, 0x10, + 0xB9, 0x67, 0x00, 0x10, 0x38, 0x67, 0x4C, 0x10, 0x64, 0x61, 0xB9, 0x67, 0x4C, 0x10, 0xE1, 0xF0, + 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x2C, 0x03, 0xB9, 0x67, 0x00, 0x10, + 0xC4, 0x30, 0x38, 0x67, 0x4C, 0x10, 0x82, 0x05, 0x66, 0x62, 0xB9, 0x67, 0x4C, 0x10, 0xF2, 0x05, + 0x15, 0x22, 0x56, 0x26, 0xB9, 0x27, 0x4C, 0x10, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0xAD, 0xDE, + 0x08, 0x60, 0x00, 0x40, 0x2C, 0x70, 0x2C, 0x03, 0xB9, 0x76, 0x00, 0x10, 0x04, 0x73, 0xB9, 0x76, + 0x44, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x08, 0x10, 0x66, 0x72, 0xB9, 0x76, + 0x08, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x64, 0x10, 0x66, 0x72, 0xB9, 0x76, + 0x64, 0x10, 0xE1, 0xF0, 0x04, 0x62, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x14, 0x10, 0xE1, 0xF0, + 0x23, 0x22, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x10, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, + 0x38, 0x76, 0x14, 0x10, 0x64, 0x71, 0xB9, 0x76, 0x14, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, + 0x38, 0x76, 0x14, 0x10, 0x14, 0x52, 0x56, 0x75, 0xB9, 0x76, 0x14, 0x10, 0xE1, 0xF0, 0x00, 0x00, + 0xC4, 0x20, 0x0C, 0x70, 0x10, 0x00, 0x82, 0x03, 0x0C, 0x70, 0xA0, 0x00, 0x6C, 0x70, 0x00, 0x01, + 0x08, 0x60, 0x00, 0x40, 0xB9, 0x76, 0x74, 0x10, 0xE1, 0xF0, 0x00, 0x00, 0x04, 0x61, 0x08, 0x70, + 0x00, 0x40, 0xB9, 0x67, 0x70, 0x10, 0xE1, 0xF0, 0xC4, 0x20, 0x08, 0x70, 0x00, 0x40, 0x82, 0x04, + 0x04, 0x61, 0xB1, 0x67, 0xF2, 0x02, 0xB1, 0x07, 0xE1, 0xF0, 0x00, 0x00, 0xC4, 0x30, 0x57, 0x21, + 0x08, 0x70, 0x00, 0x40, 0x26, 0x72, 0x82, 0x04, 0x04, 0x61, 0xB1, 0x67, 0xF2, 0x02, 0xB1, 0x07, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xC1, 0x61, 0x01, 0x61, 0x01, 0x70, 0xC9, 0x61, + 0x08, 0x00, 0x04, 0x62, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x10, 0x30, 0x48, 0x61, 0x08, 0x00, + 0x11, 0x16, 0x11, 0x07, 0x40, 0x61, 0x2C, 0x10, 0x10, 0x00, 0x61, 0x00, 0x3C, 0x10, 0x10, 0x00, + 0xC1, 0x61, 0x01, 0x61, 0x01, 0x70, 0xC9, 0x61, 0x08, 0x00, 0x04, 0x61, 0x08, 0x70, 0x00, 0x40, + 0xB9, 0x67, 0x14, 0x40, 0x48, 0x61, 0x08, 0x00, 0x11, 0x16, 0x11, 0x07, 0x40, 0x61, 0x2C, 0x10, + 0x10, 0x00, 0x61, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xC1, 0x61, 0x01, 0x61, 0x01, 0x70, 0xC9, 0x61, + 0x08, 0x00, 0x04, 0x61, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x14, 0x50, 0x48, 0x61, 0x08, 0x00, + 0x11, 0x16, 0x11, 0x07, 0x40, 0x61, 0x2C, 0x10, 0x10, 0x00, 0x61, 0x00, 0x3C, 0x10, 0x24, 0x00, + 0xD9, 0x41, 0x08, 0x00, 0x01, 0x61, 0x01, 0x70, 0xC9, 0x61, 0x1C, 0x00, 0x04, 0x61, 0xB9, 0xF1, + 0x18, 0x00, 0xC1, 0x21, 0x99, 0x60, 0x0F, 0x11, 0xEB, 0x3E, 0x00, 0x00, 0x04, 0x61, 0x08, 0x70, + 0x00, 0x40, 0xB9, 0x67, 0x78, 0x10, 0x48, 0x61, 0x1C, 0x00, 0x38, 0xF1, 0x18, 0x00, 0x40, 0x21, + 0x11, 0x16, 0x11, 0x07, 0x58, 0x41, 0x08, 0x00, 0x2C, 0x10, 0x24, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x3C, 0x10, 0x10, 0x00, 0xC1, 0x61, 0x01, 0x61, 0x01, 0x70, 0xC9, 0x61, 0x08, 0x00, 0x08, 0x70, + 0x00, 0x40, 0x38, 0x67, 0x08, 0x70, 0xB9, 0x67, 0x08, 0x70, 0x04, 0x61, 0x99, 0x60, 0x0E, 0x11, + 0x48, 0x61, 0x08, 0x00, 0x11, 0x16, 0x11, 0x07, 0x40, 0x61, 0x2C, 0x10, 0x10, 0x00, 0x61, 0x00, + 0x08, 0x70, 0x04, 0x00, 0x24, 0x74, 0x26, 0x27, 0x08, 0x70, 0xFF, 0xBF, 0x57, 0x26, 0x2C, 0x70, + 0x00, 0xC0, 0xB1, 0x42, 0x26, 0x27, 0x0C, 0x40, 0x04, 0x40, 0x08, 0x70, 0x00, 0x40, 0x26, 0x47, + 0x26, 0x42, 0xB1, 0x34, 0x0C, 0x40, 0x10, 0x40, 0x26, 0x47, 0x26, 0x42, 0x2C, 0x70, 0x08, 0x40, + 0xB1, 0x54, 0x26, 0x27, 0xB1, 0x62, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x70, 0x08, 0x40, + 0x57, 0x26, 0x26, 0x27, 0x30, 0x72, 0x6C, 0x70, 0x00, 0x01, 0xB1, 0x72, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x70, 0x00, 0x40, 0x2C, 0x70, 0x08, 0x40, 0x57, 0x26, 0x26, 0x27, 0x30, 0x72, 0x1C, 0x60, + 0x01, 0x01, 0x56, 0x76, 0xB1, 0x72, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x40, 0x57, 0x26, 0x2C, 0x70, + 0x0C, 0x40, 0x26, 0x72, 0x30, 0x27, 0xE1, 0xF0, 0x2F, 0x62, 0x02, 0x00, 0x26, 0x62, 0x57, 0x61, + 0x26, 0x62, 0xC4, 0x3A, 0x26, 0x63, 0xB1, 0x64, 0x06, 0x72, 0xC2, 0x12, 0x06, 0x57, 0x0C, 0x50, + 0xE8, 0x10, 0x28, 0x55, 0x02, 0x00, 0x04, 0x20, 0xC6, 0x65, 0x92, 0x03, 0x0C, 0x20, 0x98, 0x08, + 0x28, 0x70, 0xE8, 0x10, 0xC6, 0x67, 0x92, 0x0D, 0x0C, 0x20, 0x98, 0x08, 0xF2, 0x0A, 0xCC, 0x70, + 0x10, 0x00, 0x0C, 0x20, 0x98, 0x08, 0xC2, 0x05, 0xCC, 0x70, 0xFF, 0x00, 0x82, 0x02, 0x04, 0x20, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x30, 0x2C, 0x70, 0x00, 0x40, 0x26, 0x22, 0x2F, 0x57, + 0x02, 0x00, 0x20, 0x65, 0xC4, 0x40, 0x13, 0x76, 0x77, 0x64, 0x82, 0x09, 0xC4, 0x30, 0x82, 0x04, + 0x26, 0x74, 0x26, 0x64, 0xF2, 0x11, 0x36, 0x64, 0x36, 0x74, 0xF2, 0x0E, 0xC4, 0x30, 0x82, 0x07, + 0xC6, 0x67, 0x02, 0x03, 0x24, 0x71, 0xF2, 0x0D, 0x24, 0x61, 0xF2, 0x06, 0xC6, 0x67, 0x02, 0x03, + 0x34, 0x61, 0xF2, 0x02, 0x34, 0x71, 0xC4, 0x70, 0x02, 0x06, 0xCC, 0x70, 0xFF, 0x00, 0x12, 0x06, + 0x04, 0x20, 0xF2, 0x07, 0x14, 0x21, 0x04, 0x71, 0xF2, 0x04, 0x14, 0x21, 0x0C, 0x70, 0xFF, 0x00, + 0xC4, 0x60, 0x02, 0x08, 0xCC, 0x60, 0xFF, 0x00, 0x02, 0x07, 0x14, 0x21, 0x0C, 0x60, 0xFF, 0x00, + 0xF2, 0x03, 0x14, 0x21, 0x04, 0x61, 0x57, 0x64, 0x66, 0x67, 0xA1, 0x65, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x24, 0x04, 0xD9, 0xC1, 0x14, 0x04, 0x08, 0x70, 0x00, 0x40, 0xD9, 0x81, 0x04, 0x04, + 0x38, 0xA7, 0x68, 0x70, 0xB9, 0x07, 0x68, 0x70, 0x23, 0x32, 0x0C, 0x40, 0x00, 0x02, 0x06, 0x21, + 0xCB, 0x41, 0x00, 0x00, 0x0C, 0x20, 0x00, 0x03, 0x26, 0x21, 0x04, 0x30, 0x0C, 0x40, 0x00, 0x01, + 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x00, 0x02, 0x26, 0x21, 0x04, 0x31, 0x0C, 0x40, + 0x00, 0x01, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x04, 0x21, 0x08, 0xB0, 0x00, 0x30, 0xCB, 0xAF, + 0x00, 0x00, 0x0C, 0xC0, 0x82, 0x00, 0x2C, 0xB0, 0x00, 0x42, 0x04, 0x21, 0x04, 0xD0, 0xCB, 0xAE, + 0x00, 0x00, 0x06, 0xED, 0x04, 0x90, 0x0C, 0x40, 0x00, 0x04, 0x06, 0x2D, 0x06, 0x39, 0x26, 0x41, + 0xCB, 0xE2, 0x00, 0x00, 0x86, 0x62, 0x82, 0x5E, 0x38, 0x21, 0x00, 0x04, 0x06, 0x72, 0x57, 0x71, + 0x26, 0x7B, 0x30, 0x77, 0x5C, 0x70, 0xFF, 0x0F, 0x36, 0x76, 0x0C, 0x60, 0x00, 0x03, 0x26, 0x61, + 0x26, 0x62, 0x90, 0x46, 0x82, 0x04, 0xCC, 0x70, 0x1E, 0x00, 0x02, 0x4B, 0x0C, 0x50, 0x00, 0x02, + 0x26, 0x51, 0x26, 0x52, 0x10, 0x65, 0xC4, 0x61, 0x2F, 0x62, 0x02, 0x00, 0x92, 0x07, 0xC4, 0x70, + 0x22, 0x27, 0xC4, 0x70, 0x91, 0x05, 0x92, 0x11, 0xF2, 0x23, 0xC4, 0x70, 0x12, 0x0E, 0x04, 0x31, + 0x91, 0x35, 0x2F, 0x56, 0x01, 0x00, 0xA0, 0x55, 0x92, 0x1B, 0x0C, 0x50, 0x00, 0x03, 0x26, 0x51, + 0x24, 0x41, 0x26, 0x52, 0x91, 0x45, 0xF2, 0x14, 0x2F, 0x56, 0x01, 0x00, 0x20, 0x55, 0x26, 0x55, + 0x06, 0x45, 0x57, 0x41, 0x26, 0x54, 0x06, 0x45, 0xD7, 0x41, 0x3F, 0x55, 0x04, 0x00, 0xC6, 0x75, + 0x32, 0x07, 0x2F, 0x56, 0x01, 0x00, 0x20, 0x75, 0xF7, 0x70, 0xA1, 0x75, 0xF2, 0x0F, 0x2F, 0x56, + 0x01, 0x00, 0x20, 0x55, 0x26, 0x55, 0x06, 0x45, 0x57, 0x41, 0x26, 0x54, 0x06, 0x45, 0xD7, 0x41, + 0x36, 0x54, 0xC6, 0x57, 0x32, 0x03, 0xC4, 0x70, 0x22, 0xED, 0x0C, 0x70, 0x00, 0x02, 0x26, 0x71, + 0x26, 0x72, 0x26, 0x61, 0x10, 0x37, 0x20, 0x46, 0x2B, 0xE5, 0x00, 0x00, 0xC4, 0x20, 0x32, 0x02, + 0x24, 0xE1, 0x24, 0x91, 0xC4, 0x9D, 0x92, 0x98, 0x24, 0xD1, 0xCC, 0xD0, 0x12, 0x00, 0x92, 0x93, + 0xCC, 0xE0, 0xBD, 0x00, 0x82, 0x07, 0xB4, 0xC1, 0x82, 0x05, 0x04, 0x21, 0xCB, 0xAF, 0x00, 0x00, + 0xF2, 0x85, 0x08, 0x70, 0x00, 0x40, 0xB9, 0xA7, 0x68, 0x70, 0x58, 0xC1, 0x14, 0x04, 0x58, 0x81, + 0x04, 0x04, 0x2C, 0x10, 0x24, 0x04, 0xE1, 0xF0, 0x3C, 0x10, 0x34, 0x00, 0xD9, 0x81, 0x14, 0x00, + 0xD9, 0xC1, 0x24, 0x00, 0xB9, 0x21, 0x04, 0x00, 0x06, 0x93, 0x06, 0x84, 0x04, 0xEA, 0x04, 0x21, + 0xCB, 0xAF, 0x00, 0x00, 0x04, 0x21, 0xCB, 0xAE, 0x00, 0x00, 0xB4, 0xE1, 0x92, 0xF9, 0x08, 0xC0, + 0x00, 0x30, 0x1C, 0x50, 0x88, 0x13, 0x06, 0xBE, 0x06, 0x7E, 0x06, 0x6E, 0x06, 0xAE, 0x2C, 0xC0, + 0x00, 0x42, 0x04, 0xD0, 0x06, 0x2E, 0x06, 0x3D, 0x06, 0x41, 0xB9, 0x51, 0x10, 0x00, 0xB9, 0x61, + 0x08, 0x00, 0xB9, 0x71, 0x0C, 0x00, 0xCB, 0xE2, 0x00, 0x00, 0x86, 0x22, 0x38, 0x51, 0x10, 0x00, + 0x38, 0x61, 0x08, 0x00, 0x38, 0x71, 0x0C, 0x00, 0x82, 0x19, 0x30, 0x41, 0x57, 0x41, 0x26, 0x4C, + 0x30, 0x44, 0x5C, 0x40, 0xFF, 0x0F, 0x3F, 0x22, 0x04, 0x00, 0xC4, 0x20, 0x32, 0x02, 0x16, 0x22, + 0xCC, 0x20, 0xC8, 0x00, 0x02, 0x02, 0x04, 0xA1, 0x1C, 0x40, 0xC8, 0x00, 0x26, 0x42, 0xC6, 0x54, + 0x32, 0x05, 0x06, 0x54, 0x06, 0xBE, 0x06, 0x7D, 0x06, 0x62, 0x24, 0xD1, 0xC4, 0xDD, 0x92, 0xD3, + 0x24, 0xE1, 0xCC, 0xE0, 0x12, 0x00, 0x92, 0xCE, 0xB1, 0x68, 0xB1, 0x79, 0x04, 0x20, 0x38, 0x71, + 0x04, 0x00, 0xC6, 0xA2, 0xB1, 0xB7, 0x82, 0x02, 0x04, 0x24, 0x58, 0xC1, 0x24, 0x00, 0x58, 0x81, + 0x14, 0x00, 0x2C, 0x10, 0x34, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xE4, + 0x06, 0xC2, 0x04, 0x28, 0x06, 0xD3, 0xAB, 0xB6, 0x00, 0x00, 0x08, 0x20, 0x00, 0x30, 0x08, 0x30, + 0x80, 0x80, 0x2C, 0x30, 0x80, 0x80, 0x0C, 0x40, 0x00, 0x02, 0x2C, 0x20, 0x00, 0x40, 0x0C, 0xF0, + 0x40, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x80, 0x00, 0x0B, 0xE9, 0x00, 0x00, 0x06, 0x2C, 0x06, 0x3D, + 0x06, 0x4E, 0x4B, 0xF4, 0x00, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xE3, 0x06, 0xD2, 0xCB, 0xC5, 0x00, 0x00, 0x0C, 0x20, + 0x38, 0x00, 0x04, 0x30, 0x0C, 0xF0, 0xC8, 0x02, 0xF1, 0xF0, 0x0C, 0xF0, 0x98, 0x02, 0xF1, 0xF0, + 0x06, 0x4D, 0x0C, 0x20, 0x58, 0x01, 0x04, 0x30, 0x0C, 0x50, 0x80, 0x00, 0x0C, 0xF0, 0xFC, 0x02, + 0xF1, 0xF0, 0x0C, 0x30, 0x80, 0x00, 0x06, 0x4E, 0x0C, 0x20, 0x58, 0x01, 0x06, 0x53, 0x0C, 0xF0, + 0xFC, 0x02, 0xF1, 0xF0, 0x4B, 0xC6, 0x00, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, + 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, 0x08, 0xD0, 0x00, 0x80, 0xD1, 0x81, 0x06, 0xC4, + 0x06, 0x92, 0x06, 0xB3, 0x06, 0x2E, 0x0C, 0x20, 0x80, 0x06, 0x06, 0x3D, 0x2C, 0x30, 0x00, 0x82, + 0x0C, 0x40, 0x00, 0x02, 0x06, 0xA6, 0x06, 0x85, 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x06, 0x58, + 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0xAB, 0x0C, 0x57, 0x56, 0x66, 0x57, 0x57, 0x98, 0x06, 0x7E, + 0x0C, 0x70, 0x80, 0x06, 0x66, 0x59, 0xA9, 0x57, 0xCC, 0x01, 0x77, 0x58, 0xA9, 0x57, 0xCE, 0x01, + 0x38, 0x50, 0x14, 0x00, 0x2C, 0xD0, 0x00, 0x82, 0xA9, 0x57, 0xD0, 0x01, 0x77, 0x58, 0xA9, 0x57, + 0xD2, 0x01, 0x38, 0x5D, 0xC8, 0x01, 0x06, 0x3B, 0x57, 0x38, 0x66, 0x3C, 0x24, 0x51, 0xCC, 0xA0, + 0x32, 0x00, 0xA9, 0x37, 0xC4, 0x01, 0xA9, 0x57, 0xC8, 0x01, 0x77, 0x38, 0x77, 0x58, 0xA9, 0x37, + 0xC6, 0x01, 0xA9, 0x57, 0xCA, 0x01, 0x04, 0x60, 0x92, 0x05, 0xA9, 0x67, 0xC0, 0x01, 0xA9, 0x67, + 0xC2, 0x01, 0x08, 0x20, 0x00, 0x00, 0x08, 0x40, 0x00, 0x00, 0x2C, 0x20, 0x80, 0x02, 0x08, 0x30, + 0x00, 0x80, 0x2C, 0x40, 0x98, 0x03, 0x36, 0x42, 0x2C, 0x30, 0xA8, 0x70, 0x0C, 0xF0, 0x04, 0x01, + 0xF1, 0xF0, 0x08, 0x20, 0x00, 0x30, 0x06, 0x3E, 0x0C, 0x30, 0x80, 0x06, 0x2C, 0x20, 0x00, 0x40, + 0x8B, 0xFC, 0x00, 0x00, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, + 0x18, 0x70, 0x09, 0x11, 0x1C, 0x50, 0x10, 0x00, 0x56, 0x75, 0xCC, 0x20, 0x32, 0x00, 0x3C, 0x10, + 0x1C, 0x00, 0x64, 0x78, 0xD9, 0xC1, 0x0C, 0x00, 0x99, 0x70, 0x09, 0x11, 0x08, 0xE0, 0x00, 0x80, + 0x06, 0xD2, 0x2C, 0xE0, 0x00, 0x82, 0x92, 0x09, 0xB8, 0x7E, 0xC0, 0x01, 0x92, 0x06, 0x0C, 0x20, + 0x78, 0x00, 0x6B, 0x40, 0x00, 0x00, 0xF2, 0x1C, 0x4B, 0x5D, 0x00, 0x00, 0x04, 0x21, 0x4B, 0x58, + 0x00, 0x00, 0x04, 0x21, 0xCB, 0xAF, 0x00, 0x00, 0x04, 0x21, 0xCB, 0xAE, 0x00, 0x00, 0x04, 0x28, + 0x04, 0x34, 0x26, 0x31, 0x06, 0x41, 0x26, 0x21, 0x4B, 0xFA, 0x00, 0x00, 0x06, 0x52, 0x38, 0x31, + 0x08, 0x00, 0x30, 0x21, 0x38, 0x41, 0x04, 0x00, 0x06, 0x6D, 0x0B, 0xFF, 0x00, 0x00, 0xEB, 0x14, + 0x00, 0x00, 0x38, 0x6E, 0xCC, 0x01, 0x08, 0x70, 0x00, 0x30, 0xB9, 0x67, 0x04, 0x01, 0x38, 0x6E, + 0xC4, 0x01, 0xB9, 0x67, 0x08, 0x01, 0xEB, 0xD5, 0x00, 0x00, 0xF2, 0x00, 0x98, 0x70, 0x02, 0x11, + 0x3C, 0x10, 0x24, 0x02, 0xD9, 0x81, 0x04, 0x02, 0xD9, 0xC1, 0x14, 0x02, 0x06, 0xA2, 0x06, 0x93, + 0x82, 0x73, 0x04, 0xD0, 0x08, 0xB0, 0x00, 0x30, 0x06, 0xED, 0x2C, 0xB0, 0x00, 0x42, 0x04, 0xC0, + 0x0C, 0x40, 0x00, 0x02, 0x06, 0x2D, 0x06, 0x3C, 0x26, 0x41, 0xCB, 0xE2, 0x00, 0x00, 0x86, 0x22, + 0x82, 0x2C, 0xCC, 0x20, 0x98, 0x08, 0x92, 0x06, 0x0C, 0x60, 0x60, 0x09, 0x0C, 0x50, 0xD0, 0x07, + 0xF2, 0x09, 0x23, 0x52, 0x0C, 0x60, 0xC8, 0x00, 0x26, 0x65, 0x3C, 0x50, 0xC8, 0x00, 0x23, 0x66, + 0x23, 0x55, 0x38, 0x21, 0x00, 0x02, 0xC4, 0x91, 0x06, 0x72, 0x57, 0x71, 0x26, 0x7B, 0x30, 0x77, + 0x82, 0x02, 0x67, 0x78, 0x5C, 0x70, 0xFF, 0x0F, 0xC6, 0x75, 0x04, 0x31, 0x22, 0x04, 0xC6, 0x76, + 0x02, 0x0C, 0x04, 0x30, 0x06, 0x4A, 0x2B, 0xE5, 0x00, 0x00, 0x38, 0x61, 0x00, 0x02, 0x2F, 0x7E, + 0x0E, 0x00, 0x26, 0x71, 0xA1, 0x67, 0x24, 0xE1, 0x24, 0xC1, 0xC4, 0xCD, 0x92, 0xCA, 0x24, 0xD1, + 0xCC, 0xD0, 0x12, 0x00, 0x92, 0xC5, 0xC4, 0xE0, 0x82, 0x2F, 0x04, 0x23, 0xAB, 0xB6, 0x00, 0x00, + 0x04, 0x21, 0xCB, 0xAF, 0x00, 0x00, 0x04, 0x21, 0xCB, 0xAE, 0x00, 0x00, 0x34, 0xE1, 0x26, 0xEE, + 0x14, 0xF2, 0x08, 0x50, 0x00, 0x30, 0x26, 0xE1, 0x26, 0xF1, 0x2C, 0x50, 0x00, 0x42, 0x20, 0x4E, + 0x0C, 0x20, 0x3C, 0x00, 0x06, 0x34, 0x57, 0x31, 0x26, 0x35, 0x30, 0x73, 0x5C, 0x70, 0xFF, 0x0F, + 0x26, 0x27, 0xCC, 0x20, 0xFF, 0x0F, 0x06, 0x62, 0xC2, 0x03, 0x0C, 0x60, 0xFF, 0x0F, 0x34, 0xE2, + 0x57, 0x68, 0xC6, 0xEF, 0x66, 0x67, 0xB1, 0x63, 0x92, 0xEB, 0x18, 0x20, 0x09, 0x11, 0xB9, 0x41, + 0x00, 0x02, 0xAB, 0xB6, 0x00, 0x00, 0x58, 0xC1, 0x14, 0x02, 0x58, 0x81, 0x04, 0x02, 0x2C, 0x10, + 0x24, 0x02, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x30, 0x0C, 0x70, 0x00, 0x42, 0x0C, 0x40, 0xA8, 0x45, + 0x26, 0x76, 0x26, 0x46, 0x30, 0x57, 0x0C, 0x60, 0x3C, 0x00, 0x5C, 0x50, 0xFF, 0x0F, 0x26, 0x65, + 0x57, 0x68, 0x66, 0x65, 0xB1, 0x67, 0x24, 0x74, 0xC6, 0x74, 0x92, 0xF5, 0xE1, 0xF0, 0x00, 0x00, + 0x98, 0x50, 0x07, 0x09, 0x38, 0x60, 0xE4, 0x10, 0x18, 0x46, 0x76, 0x00, 0x18, 0x76, 0x75, 0x00, + 0x92, 0x09, 0x98, 0x50, 0x08, 0x09, 0x82, 0x06, 0x26, 0x65, 0x18, 0x66, 0x92, 0x00, 0x26, 0x76, + 0x13, 0x77, 0x98, 0x60, 0x08, 0x11, 0x82, 0x05, 0x24, 0x71, 0x24, 0x41, 0x13, 0x77, 0x13, 0x44, + 0x10, 0x62, 0x04, 0x50, 0xC6, 0x65, 0x82, 0x14, 0xC6, 0x67, 0xA2, 0x12, 0xCC, 0x60, 0x13, 0x00, + 0xC2, 0x0B, 0x24, 0x41, 0x06, 0x74, 0x57, 0x71, 0x57, 0x42, 0x26, 0x47, 0xC6, 0x64, 0x1C, 0x70, + 0x10, 0x00, 0x32, 0x04, 0xF2, 0x05, 0x0C, 0x70, 0x13, 0x00, 0x91, 0x72, 0x04, 0x51, 0x06, 0x25, + 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x40, 0x80, 0x08, 0x30, 0x74, 0x18, 0x60, 0x9A, 0x08, 0x08, 0x50, + 0x0F, 0x00, 0x2C, 0x50, 0xFF, 0xFF, 0x24, 0x71, 0x56, 0x75, 0x08, 0x50, 0x00, 0x3C, 0x66, 0x75, + 0x06, 0x56, 0x57, 0x5A, 0x08, 0x30, 0xF0, 0x00, 0x16, 0x66, 0x56, 0x53, 0xF7, 0x6F, 0x66, 0x75, + 0x57, 0x6A, 0xB1, 0x74, 0x6C, 0x60, 0x75, 0x00, 0xD7, 0x7A, 0x66, 0x67, 0x08, 0x70, 0x00, 0x30, + 0xB9, 0x67, 0x00, 0x01, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x20, 0x80, 0x02, 0x04, 0x30, + 0x0C, 0x40, 0x00, 0x02, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x80, 0x04, + 0x04, 0x30, 0x0C, 0x40, 0x00, 0x02, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x80, 0x06, + 0x04, 0x30, 0x0C, 0x40, 0x00, 0x02, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, 0xCB, 0x18, 0x01, 0x00, 0x08, 0x70, 0x00, 0x80, + 0x18, 0x27, 0x08, 0x78, 0xAB, 0xBC, 0x02, 0x00, 0xCB, 0xAD, 0x01, 0x00, 0x0C, 0x70, 0x14, 0x00, + 0xA9, 0x70, 0xA4, 0x08, 0x38, 0x70, 0xE4, 0x10, 0x18, 0x67, 0x55, 0x00, 0x99, 0x60, 0xF5, 0x0A, + 0x4B, 0x30, 0x03, 0x00, 0x99, 0x00, 0xEC, 0x0A, 0xEB, 0x99, 0x01, 0x00, 0x38, 0x70, 0xE4, 0x10, + 0x40, 0xE1, 0x18, 0x67, 0xB9, 0x00, 0x99, 0x60, 0x08, 0x10, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x14, 0x61, 0xB1, 0xF1, 0x99, 0x60, 0x09, 0x10, 0xCB, 0xBF, 0x02, 0x00, 0x0B, 0x14, + 0x02, 0x00, 0x6B, 0x2F, 0x01, 0x00, 0x2B, 0x30, 0x01, 0x00, 0x0B, 0x13, 0x03, 0x00, 0x30, 0xF1, + 0x99, 0x00, 0x9B, 0x08, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x20, 0x58, 0x10, 0x04, 0x30, + 0x0C, 0x40, 0x34, 0x00, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x0B, 0x2C, 0x01, 0x00, 0x2B, 0x14, 0x02, 0x00, + 0xAB, 0xE9, 0x01, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x70, 0x85, 0x08, + 0x34, 0x18, 0xC1, 0xE1, 0x82, 0x0A, 0x18, 0x60, 0x85, 0x0C, 0xCC, 0x60, 0xC7, 0x00, 0xD2, 0x2E, + 0x24, 0x61, 0x99, 0x60, 0x85, 0x0C, 0xF2, 0x2A, 0x14, 0x61, 0x99, 0x00, 0x85, 0x0C, 0x99, 0x60, + 0x09, 0x10, 0x38, 0x60, 0xD4, 0x10, 0x06, 0xE7, 0xC4, 0x64, 0xC2, 0x09, 0x2B, 0x30, 0x01, 0x00, + 0x6B, 0x2F, 0x01, 0x00, 0xCB, 0xBF, 0x02, 0x00, 0x0B, 0x13, 0x03, 0x00, 0x99, 0x00, 0x8C, 0x0C, + 0x99, 0x00, 0x93, 0x0C, 0x14, 0x71, 0x99, 0x70, 0x89, 0x0C, 0x99, 0x70, 0x88, 0x0C, 0x38, 0x70, + 0xD0, 0x10, 0x0C, 0x60, 0x14, 0x00, 0xC6, 0x76, 0xD2, 0x03, 0x34, 0x71, 0x13, 0x67, 0x38, 0x70, + 0xD4, 0x10, 0xC6, 0x76, 0xC2, 0x03, 0x0B, 0x14, 0x02, 0x00, 0x98, 0x70, 0x0B, 0x11, 0x82, 0x1A, + 0x28, 0x70, 0x86, 0x08, 0x1C, 0x60, 0xE1, 0x00, 0x56, 0x76, 0xA9, 0x70, 0x86, 0x08, 0x2B, 0x1F, + 0x01, 0x00, 0x6B, 0xDA, 0x02, 0x00, 0x6B, 0xDD, 0x02, 0x00, 0x0B, 0x13, 0x03, 0x00, 0x38, 0x70, + 0xE4, 0x10, 0x99, 0x00, 0x9A, 0x08, 0x18, 0x67, 0x55, 0x00, 0x99, 0x00, 0x5E, 0x09, 0x99, 0x60, + 0xF5, 0x0A, 0x38, 0x50, 0x58, 0x10, 0x06, 0x75, 0x18, 0x40, 0x86, 0x0C, 0x77, 0x76, 0x54, 0x7F, + 0xC6, 0x47, 0x32, 0x04, 0x99, 0x70, 0x86, 0x0C, 0xF2, 0x07, 0x06, 0x75, 0xDC, 0x70, 0x00, 0xF0, + 0x92, 0x03, 0x99, 0x00, 0x86, 0x0C, 0x98, 0x70, 0xBE, 0x10, 0x82, 0x0A, 0x18, 0x70, 0x9B, 0x08, + 0xCC, 0x70, 0xFF, 0x00, 0x82, 0x07, 0x24, 0x71, 0x99, 0x70, 0x9B, 0x08, 0xF2, 0x03, 0x99, 0x00, + 0x9B, 0x08, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, 0x2B, 0x1F, 0x01, 0x00, + 0x0B, 0x9C, 0x02, 0x00, 0x6B, 0xB9, 0x02, 0x00, 0x0B, 0x19, 0x02, 0x00, 0x6B, 0xEB, 0x01, 0x00, + 0x2B, 0x7E, 0x01, 0x00, 0x2B, 0x37, 0x01, 0x00, 0x98, 0x70, 0x84, 0x0C, 0x82, 0x07, 0x99, 0x00, + 0x8A, 0x10, 0xEB, 0x1F, 0x01, 0x00, 0x04, 0x20, 0xF2, 0x1A, 0x38, 0x70, 0xE4, 0x10, 0x98, 0x77, + 0xA6, 0x00, 0x92, 0x06, 0x8B, 0xAE, 0x01, 0x00, 0xEB, 0xA1, 0x01, 0x00, 0xF2, 0x05, 0xEB, 0xA1, + 0x01, 0x00, 0x8B, 0xAE, 0x01, 0x00, 0x6B, 0xF5, 0x02, 0x00, 0x6B, 0xDD, 0x02, 0x00, 0x8B, 0xD6, + 0x02, 0x00, 0x6B, 0x02, 0x03, 0x00, 0x8B, 0xE2, 0x02, 0x00, 0x04, 0x21, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x18, 0x20, 0xBE, 0x10, 0x18, 0x30, 0x8A, 0x10, 0x34, 0x14, 0xB1, 0xF1, + 0x8B, 0x33, 0x03, 0x00, 0x4B, 0x1A, 0x03, 0x00, 0xEB, 0x12, 0x03, 0x00, 0x4B, 0x07, 0x03, 0x00, + 0xEB, 0x0F, 0x03, 0x00, 0xEB, 0x1F, 0x01, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x18, 0x0C, 0x20, 0x6B, 0x0C, 0x04, 0x30, 0x04, 0x4B, 0xC1, 0xE1, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0x20, 0x00, 0x0B, 0x04, 0x30, 0x0C, 0x40, 0xB0, 0x00, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0xE0, 0x80, 0x08, 0x99, 0x0E, 0x01, 0x04, 0x0C, 0x20, 0xDA, 0x0F, 0x04, 0x30, + 0x0C, 0x40, 0x28, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x99, 0x0E, 0x83, 0x07, 0x0C, 0x20, + 0x58, 0x10, 0x04, 0x30, 0x04, 0x44, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x5C, 0x10, + 0x04, 0x30, 0x0C, 0x40, 0x2C, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x99, 0x0E, 0x0A, 0x08, + 0xA9, 0x0E, 0x08, 0x08, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x20, + 0xFE, 0x08, 0x04, 0x30, 0x04, 0x4C, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, + 0x24, 0x14, 0xE1, 0xF0, 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x60, 0xE4, 0x10, 0x34, 0x14, 0xB1, 0xF1, + 0x0C, 0x70, 0x80, 0x08, 0x98, 0x57, 0x0F, 0x04, 0x28, 0x26, 0x72, 0x00, 0x82, 0x04, 0x28, 0x26, + 0x7A, 0x00, 0xF2, 0x08, 0x98, 0x77, 0x10, 0x04, 0x82, 0x05, 0x28, 0x76, 0x7A, 0x00, 0x26, 0x27, + 0x23, 0x22, 0x06, 0x32, 0xEB, 0x8B, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x30, 0x00, 0xD9, 0xC1, 0x20, 0x00, 0xD9, 0x81, 0x10, 0x00, 0x06, 0xD3, 0x06, 0xA3, + 0x0C, 0xC0, 0x80, 0x08, 0x04, 0x81, 0x57, 0xD2, 0xD7, 0xA1, 0x26, 0xDC, 0x26, 0xAC, 0xB1, 0x51, + 0x26, 0x84, 0x04, 0xB8, 0x0C, 0x50, 0xE6, 0x00, 0x06, 0x62, 0x26, 0xBD, 0x26, 0x5A, 0x04, 0x74, + 0x13, 0x88, 0x0C, 0x20, 0x80, 0x02, 0x06, 0xE3, 0x99, 0x8B, 0x82, 0x02, 0x06, 0x94, 0x06, 0x35, + 0x06, 0x47, 0x26, 0x2D, 0xB9, 0x61, 0x0C, 0x00, 0xB9, 0x51, 0x04, 0x00, 0xB9, 0x71, 0x08, 0x00, + 0x0B, 0x7A, 0x03, 0x00, 0x38, 0x71, 0x08, 0x00, 0x38, 0x51, 0x04, 0x00, 0x0C, 0x20, 0x84, 0x02, + 0x26, 0x2D, 0x06, 0x47, 0x06, 0x35, 0x0B, 0x7A, 0x03, 0x00, 0x28, 0x7A, 0xEA, 0x00, 0x26, 0xC9, + 0x99, 0x7B, 0x83, 0x02, 0x30, 0x71, 0x99, 0x7D, 0x8C, 0x02, 0x28, 0x7A, 0xE4, 0x00, 0xA9, 0x7B, + 0x80, 0x02, 0x38, 0x61, 0x0C, 0x00, 0x26, 0x6E, 0x91, 0x86, 0x24, 0xE1, 0x99, 0xEC, 0xEB, 0x03, + 0x99, 0x0C, 0xE0, 0x03, 0x58, 0xC1, 0x20, 0x00, 0x58, 0x81, 0x10, 0x00, 0x2C, 0x10, 0x30, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x8C, 0x02, 0xD9, 0xC1, 0x7C, 0x02, 0x38, 0x70, 0xE4, 0x10, + 0xD9, 0x81, 0x6C, 0x02, 0x0C, 0x50, 0x75, 0x00, 0x0C, 0x60, 0x77, 0x00, 0x0C, 0x40, 0x78, 0x00, + 0x26, 0x57, 0x26, 0x67, 0x26, 0x47, 0x10, 0x55, 0x18, 0xE7, 0x76, 0x00, 0x10, 0x66, 0x10, 0x74, + 0xB9, 0x51, 0x40, 0x02, 0x04, 0xD0, 0xB9, 0x61, 0x4C, 0x02, 0xB9, 0x71, 0x54, 0x02, 0x0C, 0xB0, + 0xBC, 0x0B, 0x06, 0xAD, 0x0C, 0x90, 0x80, 0x08, 0x18, 0x79, 0x02, 0x04, 0x06, 0x89, 0xC6, 0xA7, + 0x32, 0x0F, 0x14, 0x72, 0x26, 0x7B, 0x90, 0x77, 0x82, 0x07, 0x06, 0x2B, 0x8B, 0x13, 0x01, 0x00, + 0xC4, 0x20, 0x82, 0x02, 0x24, 0xD1, 0x24, 0xA1, 0x2C, 0xB0, 0x10, 0x00, 0xF2, 0xEE, 0xC4, 0xD0, + 0x99, 0x09, 0x88, 0x00, 0x78, 0x29, 0x7E, 0x00, 0x78, 0x59, 0x82, 0x00, 0x78, 0x39, 0x80, 0x00, + 0x78, 0x69, 0x84, 0x00, 0x82, 0x22, 0x3F, 0x55, 0x02, 0x00, 0xC4, 0x50, 0x38, 0x40, 0xE4, 0x10, + 0x32, 0x02, 0x16, 0x55, 0x28, 0x24, 0x86, 0x00, 0x43, 0x55, 0xC6, 0x52, 0x32, 0x16, 0x3F, 0x66, + 0x03, 0x00, 0xC4, 0x60, 0x32, 0x02, 0x16, 0x66, 0x28, 0x54, 0x88, 0x00, 0x43, 0x66, 0xC6, 0x65, + 0x32, 0x03, 0x04, 0x61, 0xF2, 0x08, 0x28, 0x54, 0x8A, 0x00, 0xC6, 0x65, 0x32, 0x03, 0x04, 0x62, + 0xF2, 0x02, 0x04, 0x63, 0x99, 0x68, 0x88, 0x00, 0x98, 0x68, 0x87, 0x00, 0x92, 0x0F, 0x98, 0x68, + 0x88, 0x00, 0x82, 0x0C, 0x38, 0x50, 0xE4, 0x10, 0x26, 0x65, 0x18, 0x66, 0x92, 0x00, 0x38, 0x51, + 0x40, 0x02, 0x26, 0x65, 0x13, 0x66, 0xB9, 0x61, 0x40, 0x02, 0x38, 0x60, 0xE4, 0x10, 0x18, 0x58, + 0x05, 0x04, 0x18, 0x66, 0x92, 0x00, 0xC6, 0x56, 0xB2, 0x07, 0x98, 0x68, 0x86, 0x00, 0x82, 0x04, + 0x04, 0x61, 0x99, 0x68, 0x87, 0x00, 0x98, 0x60, 0x08, 0x11, 0x82, 0x0F, 0x38, 0x61, 0x40, 0x02, + 0x24, 0xE1, 0x24, 0x61, 0x13, 0x66, 0xB9, 0x61, 0x40, 0x02, 0x38, 0x61, 0x4C, 0x02, 0x13, 0xEE, + 0x24, 0x61, 0x13, 0x66, 0xB9, 0x61, 0x4C, 0x02, 0x0C, 0x20, 0x28, 0x02, 0x26, 0x21, 0x04, 0x30, + 0x04, 0x4B, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x28, 0x68, 0x06, 0x00, 0xDC, 0x60, 0xE0, 0x00, + 0x82, 0x0A, 0x0B, 0x2C, 0x01, 0x00, 0x6B, 0xDA, 0x02, 0x00, 0x04, 0x61, 0x99, 0x68, 0xE2, 0x00, + 0xFA, 0x90, 0x02, 0x00, 0x98, 0x68, 0x03, 0x04, 0x99, 0x08, 0xE2, 0x00, 0x82, 0x04, 0x34, 0x61, + 0x99, 0x68, 0x03, 0x04, 0x98, 0xD8, 0x04, 0x00, 0x92, 0x05, 0x98, 0x68, 0x02, 0x04, 0x8A, 0x81, + 0x02, 0x00, 0x98, 0x38, 0x02, 0x04, 0x92, 0x1D, 0x0C, 0x20, 0xB0, 0x0B, 0x0C, 0x40, 0xB0, 0x00, + 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x98, 0xE8, 0x03, 0x04, 0x9A, 0x73, 0x02, 0x00, 0xC6, 0xED, + 0x32, 0x0C, 0x0C, 0x20, 0x28, 0x02, 0x06, 0x3E, 0x06, 0x4E, 0x26, 0x21, 0x0C, 0x50, 0x14, 0x00, + 0x0B, 0x32, 0x01, 0x00, 0x24, 0xE1, 0xF2, 0xF4, 0x99, 0xD8, 0x01, 0x04, 0xFA, 0x62, 0x02, 0x00, + 0x0C, 0x20, 0x10, 0x02, 0x26, 0x21, 0x04, 0x4C, 0x04, 0x31, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x18, 0x28, 0x02, 0x04, 0x04, 0x60, 0x06, 0x48, 0xB9, 0x61, 0x44, 0x02, 0x06, 0x56, 0xC6, 0x52, + 0x32, 0x12, 0x18, 0x34, 0x3C, 0x03, 0xCC, 0x30, 0x13, 0x00, 0xC2, 0x04, 0x04, 0x71, 0xB9, 0x71, + 0x44, 0x02, 0x34, 0x31, 0xCC, 0x30, 0x12, 0x00, 0xD2, 0x02, 0x04, 0x61, 0x24, 0x51, 0x2C, 0x40, + 0x10, 0x00, 0xF2, 0xEE, 0xC4, 0x60, 0x82, 0x04, 0x04, 0x50, 0xB9, 0x51, 0x44, 0x02, 0x4B, 0x30, + 0x01, 0x00, 0x38, 0x60, 0xE4, 0x10, 0xB9, 0x21, 0x3C, 0x02, 0x18, 0xC6, 0x74, 0x00, 0x06, 0x3C, + 0xEB, 0x93, 0x00, 0x00, 0x06, 0x3C, 0xEB, 0x93, 0x00, 0x00, 0x24, 0xE2, 0x06, 0x6E, 0x57, 0x61, + 0x57, 0xE2, 0x26, 0x6E, 0xB9, 0x61, 0x58, 0x02, 0x04, 0x70, 0x04, 0x62, 0x14, 0x51, 0xB9, 0x21, + 0x50, 0x02, 0xB9, 0x61, 0x34, 0x02, 0xB9, 0x71, 0x48, 0x02, 0xB9, 0x51, 0x38, 0x02, 0x38, 0xE1, + 0x34, 0x02, 0x06, 0x21, 0x34, 0xE1, 0x13, 0x6E, 0x14, 0x31, 0x0C, 0x40, 0x10, 0x02, 0xB9, 0x61, + 0x34, 0x02, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x1C, 0x02, 0x26, 0x21, 0x14, 0x31, + 0x04, 0x4B, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x06, 0x51, 0x04, 0xB0, 0xC6, 0xBD, 0x32, 0x65, + 0xB8, 0x71, 0x34, 0x02, 0x38, 0xE1, 0x3C, 0x02, 0x92, 0x06, 0xB8, 0x61, 0x44, 0x02, 0x92, 0x03, + 0x38, 0xE1, 0x50, 0x02, 0x0C, 0x70, 0x1C, 0x02, 0x06, 0x9B, 0x26, 0x71, 0xD7, 0x91, 0x26, 0x7B, + 0x26, 0x98, 0x0C, 0xC0, 0x80, 0x08, 0x04, 0xA1, 0xB9, 0x71, 0x5C, 0x02, 0x18, 0x68, 0x02, 0x04, + 0x14, 0x41, 0x26, 0x4A, 0xC6, 0x46, 0x32, 0x45, 0x98, 0x6C, 0x3A, 0x03, 0x82, 0x3E, 0x0C, 0x20, + 0x3C, 0x03, 0x26, 0x2C, 0xB9, 0x51, 0x68, 0x02, 0x8B, 0x13, 0x01, 0x00, 0x38, 0x61, 0x34, 0x02, + 0x38, 0x51, 0x68, 0x02, 0xC6, 0x26, 0x92, 0x31, 0x78, 0x2C, 0x34, 0x03, 0x78, 0x69, 0xE6, 0x00, + 0x36, 0x26, 0xC4, 0x20, 0x32, 0x02, 0x16, 0x22, 0x78, 0x4C, 0x36, 0x03, 0x78, 0x69, 0xE8, 0x00, + 0x3F, 0x66, 0x04, 0x00, 0xC4, 0x60, 0x32, 0x02, 0x16, 0x66, 0x06, 0x32, 0xB9, 0x51, 0x68, 0x02, + 0xB9, 0x61, 0x60, 0x02, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x61, 0x60, 0x02, 0x06, 0x42, 0x06, 0x36, + 0x06, 0x26, 0xB9, 0x41, 0x64, 0x02, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x41, 0x64, 0x02, 0x38, 0x51, + 0x68, 0x02, 0x26, 0x24, 0xC6, 0x2E, 0x32, 0x05, 0x38, 0x71, 0x5C, 0x02, 0x06, 0xE2, 0x91, 0xA7, + 0x06, 0x6A, 0x57, 0x61, 0x26, 0x65, 0xB1, 0x26, 0x24, 0xA1, 0x2C, 0xC0, 0x10, 0x00, 0xF2, 0xB7, + 0x24, 0xB1, 0x2C, 0x50, 0x30, 0x00, 0xF2, 0x9B, 0x04, 0x70, 0xC6, 0x7D, 0x3A, 0xDA, 0x00, 0x00, + 0xB8, 0x61, 0x34, 0x02, 0x38, 0x51, 0x3C, 0x02, 0x92, 0x09, 0xB8, 0x51, 0x44, 0x02, 0x82, 0x04, + 0x38, 0x51, 0x3C, 0x02, 0xF2, 0x03, 0x38, 0x51, 0x50, 0x02, 0x04, 0x31, 0x04, 0x60, 0x0C, 0x40, + 0x28, 0x02, 0x26, 0x41, 0x26, 0x46, 0x90, 0xF4, 0x92, 0x18, 0x0C, 0x40, 0x1C, 0x02, 0x26, 0x41, + 0x26, 0x46, 0x60, 0x24, 0x2F, 0x46, 0x06, 0x00, 0x26, 0x46, 0x57, 0x41, 0x26, 0x42, 0x57, 0x41, + 0x26, 0x41, 0x30, 0x44, 0xC6, 0x45, 0x32, 0x09, 0xC4, 0x40, 0x22, 0x07, 0xC4, 0x20, 0x22, 0x05, + 0x06, 0x54, 0xB9, 0x61, 0x38, 0x02, 0x06, 0x3F, 0x24, 0x61, 0xC6, 0x6D, 0x22, 0xE1, 0xC4, 0x30, + 0x9A, 0xA5, 0x00, 0x00, 0x38, 0xE1, 0x38, 0x02, 0x38, 0x61, 0x48, 0x02, 0x57, 0xE2, 0x24, 0x61, + 0x26, 0xE8, 0xB9, 0x61, 0x48, 0x02, 0x98, 0x6E, 0x8A, 0x02, 0x0C, 0xA0, 0x80, 0x02, 0x26, 0xAE, + 0x9A, 0x95, 0x00, 0x00, 0x38, 0x51, 0x38, 0x02, 0x0C, 0x60, 0x1C, 0x02, 0x26, 0x61, 0x26, 0x65, + 0x60, 0xC6, 0xB9, 0x71, 0x60, 0x02, 0x04, 0x3A, 0x26, 0x3C, 0x57, 0x32, 0x26, 0x38, 0x06, 0x2A, + 0x2C, 0x30, 0x80, 0x02, 0x0C, 0x40, 0x10, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x38, 0xB1, + 0x38, 0x02, 0x0C, 0x90, 0xE6, 0x00, 0xD7, 0xB1, 0x26, 0xB8, 0x26, 0x9B, 0x06, 0x39, 0x04, 0x44, + 0x06, 0x2A, 0x0B, 0x7A, 0x03, 0x00, 0x28, 0x6B, 0xEA, 0x00, 0x04, 0x24, 0x99, 0x6E, 0x8B, 0x02, + 0x26, 0x2A, 0x06, 0x39, 0x04, 0x44, 0x0B, 0x7A, 0x03, 0x00, 0x28, 0x6B, 0xE4, 0x00, 0x38, 0x51, + 0x40, 0x02, 0xA9, 0x6E, 0x88, 0x02, 0x18, 0x6E, 0x8C, 0x02, 0x38, 0x71, 0x60, 0x02, 0xC6, 0x56, + 0x22, 0x04, 0x24, 0x61, 0x99, 0x6E, 0x8C, 0x02, 0x18, 0x6E, 0x8C, 0x02, 0xCC, 0x60, 0x13, 0x00, + 0xC2, 0x09, 0x38, 0x51, 0x58, 0x02, 0xC6, 0x65, 0x32, 0x05, 0x2C, 0x60, 0x14, 0x00, 0x99, 0x6E, + 0x8C, 0x02, 0x38, 0x41, 0x38, 0x02, 0x18, 0x6E, 0x8A, 0x02, 0x18, 0xF8, 0x02, 0x04, 0x0C, 0x50, + 0x28, 0x02, 0x26, 0x51, 0x26, 0x54, 0x91, 0x65, 0x06, 0x54, 0x34, 0x61, 0x26, 0x68, 0x24, 0x51, + 0x99, 0x56, 0xEB, 0x03, 0x99, 0x06, 0xE0, 0x03, 0x0C, 0x60, 0x10, 0x02, 0x26, 0x61, 0x26, 0x6C, + 0x91, 0x06, 0x57, 0xC1, 0x06, 0x41, 0x04, 0x60, 0x14, 0xE1, 0x2F, 0x5C, 0x04, 0x00, 0xB1, 0xE5, + 0xB8, 0x51, 0x34, 0x02, 0x38, 0x31, 0x3C, 0x02, 0x92, 0x06, 0xB8, 0x51, 0x44, 0x02, 0x92, 0x03, + 0x38, 0x31, 0x50, 0x02, 0x0C, 0x50, 0x28, 0x02, 0x26, 0x51, 0x26, 0x56, 0x90, 0x55, 0x82, 0x07, + 0x24, 0x61, 0xC6, 0x6D, 0x2C, 0x40, 0x30, 0x00, 0x22, 0xE9, 0xF2, 0x12, 0x0C, 0xB0, 0x1C, 0x02, + 0x26, 0xB1, 0x26, 0xB6, 0xC6, 0x5F, 0x32, 0xF5, 0x24, 0x51, 0x06, 0x25, 0x57, 0x21, 0x26, 0x24, + 0xB0, 0x22, 0x22, 0xF9, 0xC6, 0x23, 0x32, 0xF7, 0x91, 0x5B, 0x06, 0x32, 0xF2, 0xF4, 0x18, 0x68, + 0x02, 0x04, 0x38, 0x51, 0x48, 0x02, 0xC6, 0x56, 0x32, 0x04, 0x24, 0x71, 0xFA, 0x27, 0xFF, 0xFF, + 0xB8, 0x61, 0x34, 0x02, 0x9A, 0xA5, 0xFE, 0xFF, 0x99, 0x08, 0x04, 0x04, 0x0C, 0xA0, 0xBC, 0x0B, + 0x06, 0xE6, 0x06, 0xC6, 0x06, 0xB6, 0x18, 0x58, 0x02, 0x04, 0xC6, 0xC5, 0x32, 0x0C, 0x0C, 0x50, + 0x10, 0x02, 0x24, 0xC1, 0x26, 0x51, 0x26, 0x5C, 0x90, 0x55, 0x82, 0x76, 0x2F, 0x5B, 0x0D, 0x00, + 0xC4, 0x5A, 0x02, 0x0F, 0x28, 0x68, 0x06, 0x00, 0x04, 0x54, 0xD6, 0x56, 0x82, 0x71, 0x38, 0x51, + 0x54, 0x02, 0x14, 0x75, 0x56, 0x67, 0x99, 0x58, 0x03, 0x04, 0xA9, 0x68, 0x06, 0x00, 0xF2, 0x68, + 0x14, 0x42, 0x26, 0x4A, 0x10, 0x44, 0x38, 0x71, 0x4C, 0x02, 0x06, 0x94, 0x34, 0x91, 0xB9, 0x41, + 0x34, 0x02, 0x26, 0x98, 0x0C, 0x40, 0x60, 0x01, 0x26, 0x49, 0x18, 0x24, 0x80, 0x02, 0x14, 0x3C, + 0xC6, 0x27, 0x26, 0x3A, 0xB2, 0x3C, 0xC4, 0xBA, 0x12, 0x3A, 0x06, 0x2A, 0xB9, 0x31, 0x60, 0x02, + 0xB9, 0x41, 0x64, 0x02, 0xB9, 0x51, 0x68, 0x02, 0x8B, 0x13, 0x01, 0x00, 0xC4, 0x20, 0x38, 0x31, + 0x60, 0x02, 0x38, 0x41, 0x64, 0x02, 0x38, 0x51, 0x68, 0x02, 0x82, 0x29, 0x18, 0x24, 0x80, 0x02, + 0x24, 0xB1, 0x24, 0x21, 0x99, 0x24, 0x80, 0x02, 0x06, 0x25, 0x57, 0x22, 0x26, 0x28, 0x0C, 0x40, + 0x10, 0x00, 0x2C, 0x20, 0x80, 0x02, 0xB9, 0x51, 0x68, 0x02, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, + 0x38, 0x51, 0x68, 0x02, 0x38, 0x61, 0x34, 0x02, 0x0C, 0x40, 0x28, 0x02, 0x26, 0x41, 0x26, 0x45, + 0x24, 0x51, 0x99, 0x59, 0xEB, 0x03, 0x98, 0x58, 0x1A, 0x00, 0x91, 0x64, 0x04, 0x71, 0x99, 0x78, + 0x04, 0x04, 0x24, 0xE1, 0x92, 0x19, 0x99, 0x78, 0x1A, 0x00, 0xF2, 0x16, 0x06, 0x2A, 0x8B, 0x13, + 0x01, 0x00, 0xC4, 0x20, 0x82, 0x11, 0x04, 0x41, 0x99, 0x48, 0x86, 0x00, 0x10, 0x5A, 0xCC, 0x50, + 0x13, 0x00, 0xC2, 0x0A, 0x18, 0x58, 0x02, 0x04, 0xC4, 0x51, 0x92, 0x06, 0x28, 0x58, 0x06, 0x00, + 0x64, 0x54, 0xA9, 0x58, 0x06, 0x00, 0x2C, 0xA0, 0x10, 0x00, 0xFA, 0x7E, 0xFF, 0xFF, 0x0C, 0x90, + 0x0C, 0x0B, 0x04, 0xC0, 0x04, 0xA1, 0xC6, 0xCD, 0x32, 0x28, 0x0C, 0x60, 0x28, 0x02, 0x26, 0x61, + 0x26, 0x6C, 0x90, 0x46, 0x92, 0x15, 0x06, 0x6B, 0x0C, 0x60, 0x6B, 0x0C, 0xE0, 0x56, 0x92, 0x0C, + 0xE8, 0x56, 0x0B, 0x00, 0x92, 0x09, 0x0C, 0x20, 0x28, 0x02, 0x26, 0x21, 0x06, 0x3C, 0x04, 0x51, + 0x0B, 0x32, 0x01, 0x00, 0xF2, 0x05, 0x24, 0x41, 0xC4, 0x4B, 0x24, 0x61, 0x92, 0xF0, 0x98, 0x68, + 0x03, 0x04, 0x82, 0x07, 0x06, 0x29, 0x8B, 0x13, 0x01, 0x00, 0xC4, 0x20, 0x92, 0x02, 0x91, 0xA9, + 0x24, 0xC1, 0x2C, 0x90, 0x10, 0x00, 0xF2, 0xD8, 0x26, 0xDE, 0x99, 0xD8, 0x01, 0x04, 0xF2, 0x03, + 0x99, 0x08, 0x04, 0x04, 0x58, 0xC1, 0x7C, 0x02, 0x58, 0x81, 0x6C, 0x02, 0x2C, 0x10, 0x8C, 0x02, + 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x70, 0xE4, 0x10, 0x3C, 0x10, 0x00, 0x01, 0xD9, 0xC1, 0xF0, 0x00, + 0xD9, 0x81, 0xE0, 0x00, 0x18, 0xA7, 0x47, 0x00, 0x18, 0xE7, 0x46, 0x00, 0x2F, 0xDA, 0x0A, 0x00, + 0x16, 0x7D, 0xB9, 0x71, 0xA8, 0x00, 0x24, 0x7D, 0xB9, 0x71, 0xA4, 0x00, 0x0C, 0x70, 0x50, 0x00, + 0x26, 0x71, 0x0C, 0xB0, 0x80, 0x08, 0x06, 0x27, 0x0C, 0x30, 0x50, 0x00, 0xB9, 0x71, 0xD8, 0x00, + 0xA9, 0x0B, 0x76, 0x02, 0xB9, 0x0B, 0x78, 0x02, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x06, 0x21, + 0x0C, 0x30, 0x50, 0x00, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x2F, 0x5E, 0x0E, 0x00, 0x2F, 0x6E, + 0x05, 0x00, 0x26, 0x5B, 0x57, 0x61, 0xB9, 0x51, 0xAC, 0x00, 0x04, 0x5D, 0x36, 0x5A, 0x26, 0x6E, + 0x26, 0x6A, 0xB9, 0x51, 0xB8, 0x00, 0x04, 0x99, 0x26, 0x66, 0x0C, 0x50, 0x80, 0x02, 0x26, 0x65, + 0x36, 0x9E, 0x26, 0xDB, 0x26, 0x99, 0xB9, 0x61, 0xC4, 0x00, 0x14, 0x71, 0x0C, 0x60, 0x12, 0x00, + 0xB9, 0xD1, 0xC0, 0x00, 0x36, 0x6E, 0x04, 0xD0, 0x26, 0x79, 0x06, 0xCD, 0x06, 0x8D, 0xB9, 0xD1, + 0xA0, 0x00, 0xB9, 0x61, 0xBC, 0x00, 0xB9, 0x71, 0xC8, 0x00, 0x38, 0x71, 0xB8, 0x00, 0xC6, 0xA7, + 0x3A, 0x8F, 0x00, 0x00, 0x38, 0x71, 0xC4, 0x00, 0x0C, 0x50, 0x50, 0x00, 0x26, 0x7D, 0xB9, 0x71, + 0xB0, 0x00, 0x38, 0x71, 0xC0, 0x00, 0x04, 0x60, 0x26, 0x7D, 0x26, 0x51, 0xB9, 0x71, 0xB4, 0x00, + 0x26, 0x5C, 0x06, 0x76, 0x38, 0x31, 0xBC, 0x00, 0x2F, 0x4E, 0x07, 0x00, 0xC6, 0x43, 0x32, 0x1E, + 0x38, 0xF1, 0xB4, 0x00, 0x38, 0x41, 0xB0, 0x00, 0x78, 0x2F, 0x8A, 0x00, 0x38, 0xF1, 0xAC, 0x00, + 0x2F, 0x37, 0x07, 0x00, 0x26, 0x3F, 0x26, 0x46, 0x78, 0x33, 0xB2, 0x00, 0x70, 0x44, 0x26, 0x32, + 0x26, 0x43, 0x38, 0x21, 0xA0, 0x00, 0x30, 0x35, 0x26, 0x24, 0x26, 0x43, 0xB9, 0x21, 0xA0, 0x00, + 0xB1, 0x45, 0x24, 0x71, 0x2C, 0x60, 0x1A, 0x00, 0xF2, 0xDE, 0x0C, 0x70, 0x50, 0x00, 0x26, 0x71, + 0x26, 0x7C, 0x30, 0x27, 0xB9, 0x71, 0xD8, 0x00, 0x06, 0x39, 0xEB, 0x93, 0x00, 0x00, 0x38, 0x71, + 0xD8, 0x00, 0x04, 0x60, 0xB1, 0x27, 0x06, 0x52, 0x06, 0x76, 0x2F, 0x4C, 0x01, 0x00, 0x38, 0x21, + 0xBC, 0x00, 0x2F, 0x3E, 0x07, 0x00, 0xC6, 0x32, 0x32, 0x31, 0x38, 0x31, 0xB0, 0x00, 0x38, 0x21, + 0xB4, 0x00, 0x26, 0x36, 0x70, 0x33, 0x78, 0xF2, 0x8A, 0x00, 0x36, 0x35, 0xB9, 0x31, 0xDC, 0x00, + 0x38, 0x31, 0xAC, 0x00, 0x2F, 0x27, 0x07, 0x00, 0x26, 0x23, 0x78, 0x22, 0xB2, 0x00, 0xB9, 0x41, + 0xD4, 0x00, 0xB9, 0x51, 0xCC, 0x00, 0x26, 0x2F, 0x38, 0xF1, 0xDC, 0x00, 0xB9, 0x61, 0xD0, 0x00, + 0xB9, 0x71, 0xD8, 0x00, 0x26, 0x2F, 0x06, 0x32, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x41, 0xD4, 0x00, + 0x38, 0x71, 0xD8, 0x00, 0x38, 0x61, 0xD0, 0x00, 0x30, 0x34, 0x38, 0x51, 0xCC, 0x00, 0x26, 0x23, + 0xB1, 0x24, 0x24, 0x71, 0x2C, 0x60, 0x1A, 0x00, 0xF2, 0xCB, 0x2F, 0x7C, 0x01, 0x00, 0x30, 0x27, + 0x38, 0x31, 0xC8, 0x00, 0xB9, 0x71, 0xD8, 0x00, 0x24, 0xA1, 0xEB, 0x93, 0x00, 0x00, 0x38, 0x71, + 0xD8, 0x00, 0x26, 0x82, 0xB1, 0x27, 0x24, 0xC4, 0x24, 0xD2, 0xFA, 0x70, 0xFF, 0xFF, 0x38, 0x31, + 0xA4, 0x00, 0x06, 0x28, 0xEB, 0x93, 0x00, 0x00, 0x38, 0x31, 0xA4, 0x00, 0x06, 0xD2, 0x06, 0x29, + 0xEB, 0x8B, 0x00, 0x00, 0x06, 0x32, 0x38, 0x21, 0xA0, 0x00, 0x04, 0x90, 0xEB, 0x93, 0x00, 0x00, + 0x38, 0x8B, 0x78, 0x02, 0x43, 0xA2, 0x06, 0xC2, 0xA9, 0xAB, 0x76, 0x02, 0x38, 0x71, 0xA4, 0x00, + 0xC6, 0x97, 0x32, 0x0D, 0x06, 0x79, 0x57, 0x71, 0x26, 0x71, 0x30, 0x27, 0x24, 0x91, 0x3F, 0x22, + 0x0D, 0x00, 0x06, 0x32, 0xEB, 0x8B, 0x00, 0x00, 0x26, 0x82, 0xF2, 0xF1, 0x38, 0x31, 0xA8, 0x00, + 0x06, 0x28, 0x24, 0x3C, 0xEB, 0x93, 0x00, 0x00, 0x38, 0x31, 0xB8, 0x00, 0x06, 0xDB, 0xEB, 0x93, + 0x00, 0x00, 0x0C, 0x30, 0x12, 0x00, 0x36, 0x3E, 0xEB, 0x93, 0x00, 0x00, 0x86, 0x22, 0x32, 0x03, + 0x2C, 0x20, 0xFF, 0x03, 0xC4, 0xA0, 0x67, 0x25, 0xB9, 0x2D, 0x78, 0x02, 0x92, 0x04, 0x24, 0xC1, + 0xA9, 0xCB, 0x76, 0x02, 0x58, 0xC1, 0xF0, 0x00, 0x58, 0x81, 0xE0, 0x00, 0x2C, 0x10, 0x00, 0x01, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x40, 0x00, 0xD9, 0xC1, 0x30, 0x00, 0xD9, 0x81, 0x20, 0x00, + 0x0C, 0xE0, 0x80, 0x08, 0x28, 0x6E, 0x06, 0x00, 0x0C, 0x50, 0x20, 0x00, 0x38, 0x70, 0xE4, 0x10, + 0xD6, 0x56, 0x30, 0xB7, 0x18, 0x97, 0x56, 0x00, 0x82, 0x09, 0x98, 0x5E, 0x04, 0x00, 0x92, 0x06, + 0x1C, 0x40, 0x21, 0x00, 0x56, 0x64, 0xA9, 0x6E, 0x06, 0x00, 0x28, 0x5E, 0x66, 0x02, 0x28, 0x67, + 0x6C, 0x00, 0xC6, 0x56, 0xC2, 0x16, 0x28, 0x5E, 0x6A, 0x02, 0x28, 0x67, 0x70, 0x00, 0xC6, 0x56, + 0xB2, 0x10, 0x28, 0x5E, 0x68, 0x02, 0x28, 0x67, 0x6E, 0x00, 0xC6, 0x56, 0xB2, 0x0A, 0x28, 0x6E, + 0x06, 0x00, 0x28, 0x77, 0x6A, 0x00, 0x6C, 0x60, 0x40, 0x00, 0xA9, 0x6E, 0x06, 0x00, 0xF2, 0x08, + 0x98, 0x7E, 0x04, 0x00, 0x92, 0x0F, 0xE8, 0x7E, 0x6C, 0x02, 0x02, 0x05, 0x34, 0x71, 0x99, 0x7E, + 0x6C, 0x02, 0xF2, 0x08, 0x28, 0x7E, 0x06, 0x00, 0x1C, 0x50, 0x41, 0x00, 0x56, 0x75, 0xA9, 0x7E, + 0x06, 0x00, 0x0C, 0x70, 0x00, 0x20, 0xD6, 0x7B, 0x8A, 0x8E, 0x00, 0x00, 0x18, 0x7E, 0x02, 0x04, + 0x04, 0xA1, 0xC4, 0x70, 0x92, 0x05, 0x18, 0xAE, 0x04, 0x00, 0x16, 0xAA, 0xF7, 0xAF, 0x2B, 0x6B, + 0x01, 0x00, 0x98, 0x8E, 0x04, 0x00, 0x82, 0x3D, 0x38, 0xD0, 0xE4, 0x10, 0x28, 0x7E, 0x08, 0x00, + 0x28, 0x6D, 0x4C, 0x00, 0xC6, 0x67, 0xC2, 0x35, 0x78, 0x6E, 0x76, 0x02, 0xB9, 0x71, 0x14, 0x00, + 0x06, 0x57, 0xD7, 0x51, 0x2F, 0x27, 0x07, 0x00, 0x26, 0x25, 0x06, 0x36, 0xB9, 0x61, 0x18, 0x00, + 0xEB, 0x93, 0x00, 0x00, 0x18, 0x5D, 0x4E, 0x00, 0x38, 0x61, 0x18, 0x00, 0x38, 0x71, 0x14, 0x00, + 0xC6, 0x25, 0x32, 0x1F, 0x3F, 0x26, 0x07, 0x00, 0x04, 0x3A, 0xEB, 0x93, 0x00, 0x00, 0x18, 0x7D, + 0x4F, 0x00, 0xC6, 0x27, 0x32, 0x16, 0x28, 0x6E, 0x70, 0x02, 0x18, 0x7D, 0x50, 0x00, 0xC6, 0x67, + 0xC2, 0x10, 0x78, 0x7D, 0x52, 0x00, 0x38, 0x6E, 0x78, 0x02, 0xC6, 0x67, 0x32, 0x0A, 0x98, 0x7E, + 0xDE, 0x00, 0x92, 0x07, 0x28, 0x7E, 0x7C, 0x02, 0xCC, 0x70, 0x13, 0x00, 0xCA, 0x0F, 0x01, 0x00, + 0x38, 0x60, 0xE4, 0x10, 0x38, 0x5E, 0x78, 0x02, 0x18, 0x76, 0x54, 0x00, 0xC6, 0x57, 0x22, 0x13, + 0xC4, 0x80, 0x82, 0x11, 0x28, 0x7E, 0x06, 0x00, 0xDC, 0x70, 0x80, 0x00, 0x92, 0x0C, 0x18, 0x7E, + 0x75, 0x02, 0x18, 0x66, 0x57, 0x00, 0xC6, 0x67, 0xC2, 0x06, 0xC6, 0x79, 0xC2, 0x04, 0x24, 0x71, + 0x99, 0x7E, 0x75, 0x02, 0x18, 0x7E, 0x75, 0x02, 0xC6, 0x79, 0x28, 0x7E, 0x06, 0x00, 0xD2, 0x0C, + 0xC4, 0xA1, 0x92, 0x0A, 0x6C, 0x70, 0x80, 0x00, 0xA9, 0x7E, 0x06, 0x00, 0x38, 0x70, 0xE4, 0x10, + 0x18, 0x77, 0x58, 0x00, 0xF2, 0x16, 0x0C, 0x60, 0x80, 0x00, 0xD6, 0x67, 0x82, 0x14, 0x98, 0x6E, + 0x74, 0x02, 0x92, 0x0D, 0x1C, 0x60, 0x81, 0x00, 0x56, 0x76, 0xA9, 0x7E, 0x06, 0x00, 0x38, 0x70, + 0xE4, 0x10, 0x18, 0x77, 0x55, 0x00, 0x99, 0x7E, 0x75, 0x02, 0xF2, 0x05, 0x06, 0x76, 0x34, 0x71, + 0x99, 0x7E, 0x74, 0x02, 0x98, 0x5E, 0x04, 0x00, 0x8A, 0xDA, 0x00, 0x00, 0x38, 0x20, 0xE4, 0x10, + 0x28, 0x3E, 0x06, 0x00, 0x0C, 0x70, 0x60, 0x00, 0x26, 0x72, 0x10, 0x77, 0x18, 0x62, 0x5F, 0x00, + 0x0C, 0x40, 0x10, 0x00, 0xD6, 0x43, 0xB9, 0x71, 0x04, 0x00, 0x18, 0x72, 0x61, 0x00, 0x82, 0x07, + 0xC6, 0x67, 0xC2, 0x04, 0x36, 0x67, 0x13, 0x66, 0xF2, 0x02, 0x04, 0x61, 0x0C, 0x40, 0xA4, 0x01, + 0x26, 0x4E, 0x20, 0x44, 0xB1, 0x51, 0x04, 0x82, 0x04, 0x50, 0x56, 0x8B, 0x54, 0xB4, 0xB9, 0x41, + 0x08, 0x00, 0x0C, 0x70, 0xC8, 0x09, 0x06, 0xD5, 0x06, 0xC5, 0xB9, 0x81, 0x0C, 0x00, 0xB9, 0xB1, + 0x10, 0x00, 0xA8, 0x47, 0x04, 0x00, 0x82, 0x57, 0x38, 0xA1, 0x0C, 0x00, 0x04, 0xB0, 0xC6, 0xAB, + 0x82, 0x09, 0x38, 0xF1, 0x04, 0x00, 0xC6, 0x4F, 0xC2, 0x05, 0xB1, 0xB1, 0x6C, 0x30, 0x20, 0x00, + 0x04, 0xB1, 0xB8, 0x81, 0x10, 0x00, 0x82, 0x47, 0xC4, 0xB0, 0x92, 0x45, 0xC6, 0x46, 0xA2, 0x43, + 0x18, 0x42, 0x5E, 0x00, 0x38, 0xA1, 0x08, 0x00, 0xC6, 0x4A, 0xB2, 0x3D, 0x18, 0x47, 0x06, 0x00, + 0x2F, 0xF4, 0x04, 0x00, 0x26, 0xF4, 0x57, 0xF1, 0x26, 0xFE, 0xE8, 0x9F, 0xA6, 0x01, 0x02, 0x33, + 0x06, 0xA5, 0x63, 0xA4, 0xD4, 0xA1, 0x92, 0x2F, 0x70, 0x87, 0x18, 0xAF, 0xA7, 0x01, 0xB9, 0x81, + 0x1C, 0x00, 0x0C, 0x80, 0x80, 0x08, 0xD7, 0xA1, 0x26, 0xA8, 0x38, 0x81, 0x1C, 0x00, 0xA9, 0x8A, + 0xE6, 0x00, 0x78, 0x87, 0x02, 0x00, 0xA9, 0x8A, 0xE8, 0x00, 0x04, 0xA1, 0x53, 0xA4, 0x06, 0x4A, + 0x66, 0x45, 0x23, 0x54, 0x04, 0x42, 0x26, 0x4B, 0x13, 0x44, 0x26, 0x4F, 0x18, 0xA4, 0xA6, 0x01, + 0x24, 0xB1, 0x06, 0x4A, 0xD7, 0x41, 0x26, 0x4E, 0xA9, 0x04, 0xE6, 0x00, 0xA9, 0x04, 0xE8, 0x00, + 0xA9, 0x04, 0xEA, 0x00, 0xC6, 0x9B, 0x04, 0x41, 0x53, 0x4A, 0x66, 0x4D, 0x23, 0xD4, 0x92, 0xEB, + 0x26, 0xC9, 0x23, 0xCC, 0x24, 0x78, 0x0C, 0xF0, 0x20, 0x0A, 0xC6, 0x7F, 0x92, 0xA3, 0x30, 0x41, + 0xA9, 0x3E, 0x06, 0x00, 0xC4, 0xC0, 0x99, 0x4E, 0x04, 0x00, 0x82, 0x44, 0x04, 0xB0, 0x0C, 0x80, + 0xB4, 0x09, 0x18, 0x7E, 0x04, 0x00, 0xC6, 0xB7, 0x32, 0x26, 0x06, 0x7D, 0x63, 0x7B, 0xD4, 0x71, + 0x82, 0x20, 0x06, 0x2B, 0xD7, 0x21, 0x2C, 0x20, 0xE4, 0x00, 0x06, 0xAB, 0x26, 0x2E, 0x18, 0x7E, + 0x04, 0x00, 0xC6, 0xA7, 0xB2, 0x14, 0xC4, 0xAA, 0x04, 0x98, 0x26, 0x92, 0x92, 0x08, 0x06, 0x28, + 0x04, 0x30, 0x04, 0x48, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0xF2, 0x06, 0x06, 0x39, 0x04, 0x48, + 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x24, 0xA1, 0x06, 0x29, 0xF2, 0xEA, 0xF7, 0xD0, 0x34, 0xB1, + 0x24, 0xB1, 0xF2, 0xD8, 0x3F, 0xCC, 0x07, 0x00, 0x28, 0x7E, 0x06, 0x00, 0x99, 0xCE, 0x04, 0x00, + 0x6C, 0x70, 0x10, 0x00, 0xA9, 0x7E, 0x06, 0x00, 0xF2, 0x12, 0x98, 0x7E, 0x75, 0x02, 0x8A, 0x0B, + 0xFF, 0xFF, 0x18, 0x6D, 0x59, 0x00, 0xC6, 0x67, 0xAA, 0x06, 0xFF, 0xFF, 0x34, 0x71, 0xFA, 0x01, + 0xFF, 0xFF, 0x1C, 0x50, 0x11, 0x00, 0x56, 0x35, 0xA9, 0x3E, 0x06, 0x00, 0x58, 0xC1, 0x30, 0x00, + 0x58, 0x81, 0x20, 0x00, 0x2C, 0x10, 0x40, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x20, 0x00, + 0xD9, 0xC1, 0x10, 0x00, 0xD1, 0x81, 0x0C, 0xD0, 0xA6, 0x08, 0x04, 0xE0, 0x06, 0x2E, 0x04, 0x3B, + 0xEB, 0x93, 0x00, 0x00, 0x2C, 0xE0, 0xC0, 0x12, 0xCC, 0xE0, 0xC0, 0xF3, 0x2C, 0x20, 0xDA, 0x00, + 0xA1, 0x2D, 0x24, 0xD2, 0x92, 0xF4, 0x08, 0xD0, 0x02, 0x00, 0x0C, 0xC0, 0xD2, 0x08, 0x04, 0xE0, + 0x2C, 0xD0, 0xC0, 0x51, 0x06, 0x2E, 0x0C, 0x30, 0x11, 0x00, 0xEB, 0x93, 0x00, 0x00, 0x2C, 0xE0, + 0x40, 0x1F, 0xC6, 0xED, 0x2C, 0x20, 0xEB, 0x00, 0xA1, 0x2C, 0x24, 0xC2, 0x92, 0xF4, 0x08, 0xD0, + 0x00, 0x80, 0x0C, 0xC0, 0x80, 0x08, 0x0C, 0x90, 0x36, 0x07, 0x0C, 0xE0, 0xA6, 0x0F, 0x2C, 0xD0, + 0x3E, 0x78, 0x26, 0x9C, 0x18, 0x7D, 0x05, 0x00, 0x1C, 0x20, 0xDA, 0x00, 0x2C, 0x70, 0x12, 0x00, + 0x26, 0x77, 0x26, 0x7C, 0x28, 0xA7, 0x02, 0x00, 0x04, 0x3A, 0x26, 0x2A, 0xEB, 0x93, 0x00, 0x00, + 0x10, 0x7D, 0xA9, 0x2E, 0x04, 0x00, 0x1C, 0x20, 0xEB, 0x00, 0x2C, 0x70, 0x28, 0x00, 0x26, 0x77, + 0x26, 0x7C, 0x28, 0xB7, 0x02, 0x00, 0x04, 0x3A, 0x26, 0x2B, 0xEB, 0x93, 0x00, 0x00, 0xA1, 0x2E, + 0x0C, 0x20, 0xDA, 0x00, 0x04, 0x3A, 0x26, 0x2A, 0xEB, 0x93, 0x00, 0x00, 0xA9, 0x2E, 0x06, 0x00, + 0x0C, 0x20, 0xEB, 0x00, 0x26, 0x2B, 0x04, 0x3A, 0xEB, 0x93, 0x00, 0x00, 0xA9, 0x2E, 0x02, 0x00, + 0x24, 0xE8, 0xC6, 0xE9, 0x24, 0xD1, 0x92, 0xCF, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, + 0x20, 0x00, 0xE1, 0xF0, 0x38, 0x60, 0xE4, 0x10, 0xC4, 0x20, 0x18, 0x66, 0xA5, 0x00, 0x06, 0x52, + 0x32, 0x02, 0x16, 0x52, 0xC6, 0x56, 0x02, 0x08, 0xC6, 0x26, 0x02, 0x04, 0x3F, 0x66, 0x03, 0x00, + 0xF2, 0x02, 0x26, 0x63, 0x23, 0x46, 0x06, 0x24, 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x70, 0xE4, 0x10, + 0x3C, 0x10, 0x24, 0x00, 0xD9, 0xC1, 0x14, 0x00, 0xD9, 0x81, 0x04, 0x00, 0x30, 0x77, 0xDC, 0x70, + 0x10, 0x00, 0x82, 0x41, 0x0C, 0xC0, 0x80, 0x08, 0x98, 0x9C, 0x01, 0x04, 0x82, 0x3C, 0x98, 0x8C, + 0x02, 0x04, 0x82, 0x39, 0x0C, 0xE0, 0x00, 0x0B, 0x04, 0xD0, 0xC6, 0xD9, 0x32, 0x34, 0x06, 0x6A, + 0x0C, 0x60, 0xBA, 0x0B, 0x04, 0x70, 0xC6, 0x78, 0x32, 0x2A, 0x2C, 0x60, 0x10, 0x00, 0x1C, 0x50, + 0x10, 0x00, 0x26, 0x56, 0x18, 0x4E, 0x0A, 0x00, 0x10, 0x55, 0xC6, 0x45, 0x92, 0x1E, 0x24, 0x7B, + 0x57, 0x72, 0x26, 0x7C, 0x78, 0x47, 0x80, 0x02, 0x78, 0xB7, 0x82, 0x02, 0x70, 0x3E, 0x78, 0x7E, + 0x02, 0x00, 0x3F, 0x24, 0x03, 0x00, 0x36, 0x7B, 0x23, 0x33, 0x23, 0x44, 0xB1, 0x71, 0xAB, 0xA0, + 0x01, 0x00, 0xA1, 0x2E, 0x30, 0x71, 0x28, 0x3E, 0x02, 0x00, 0x06, 0x27, 0x23, 0x4B, 0xAB, 0xA0, + 0x01, 0x00, 0xA9, 0x2E, 0x02, 0x00, 0xF2, 0x03, 0x24, 0x71, 0xF2, 0xD6, 0x24, 0xD1, 0x2C, 0xE0, + 0x10, 0x00, 0xF2, 0xCC, 0x58, 0xC1, 0x14, 0x00, 0x58, 0x81, 0x04, 0x00, 0x2C, 0x10, 0x24, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0xC6, 0x34, 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, 0xD1, 0x81, + 0x06, 0xE2, 0x78, 0xA1, 0x20, 0x00, 0x78, 0xC1, 0x24, 0x00, 0x78, 0xD1, 0x28, 0x00, 0x32, 0x05, + 0xA1, 0xC2, 0xA9, 0xD2, 0x02, 0x00, 0xF2, 0x20, 0xC6, 0x35, 0x22, 0x05, 0xA1, 0x62, 0xA9, 0xA2, + 0x02, 0x00, 0xF2, 0x1A, 0x3F, 0x94, 0x03, 0x00, 0x06, 0x29, 0x3F, 0x3C, 0x06, 0x00, 0x3F, 0xB4, + 0x05, 0x00, 0xEB, 0x8B, 0x00, 0x00, 0x06, 0x3B, 0xEB, 0x93, 0x00, 0x00, 0x26, 0x2C, 0xA1, 0x2E, + 0x3F, 0x3D, 0x0A, 0x00, 0x06, 0x29, 0xEB, 0x8B, 0x00, 0x00, 0x06, 0x3B, 0xEB, 0x93, 0x00, 0x00, + 0x26, 0x2D, 0xA9, 0x2E, 0x02, 0x00, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, 0x20, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x2F, 0x72, 0x02, 0x00, 0x26, 0x72, 0x06, 0x67, 0x57, 0x62, 0x26, 0x76, + 0x26, 0x27, 0x0C, 0x70, 0x80, 0x08, 0x2C, 0x20, 0x14, 0x04, 0x26, 0x27, 0x04, 0x72, 0x26, 0x72, + 0x06, 0x67, 0x04, 0x59, 0x34, 0x51, 0xC4, 0x50, 0xA9, 0x06, 0x24, 0x00, 0xA9, 0x06, 0x26, 0x00, + 0x34, 0x64, 0x92, 0xF9, 0x04, 0x61, 0x99, 0x67, 0x28, 0x00, 0x38, 0x60, 0xE4, 0x10, 0xA9, 0x07, + 0x2A, 0x00, 0x18, 0x66, 0x98, 0x00, 0x99, 0x07, 0x2D, 0x00, 0xA9, 0x07, 0x32, 0x00, 0x99, 0x67, + 0x2C, 0x00, 0xA9, 0x07, 0x30, 0x00, 0x14, 0x61, 0xA9, 0x07, 0x2E, 0x00, 0xA9, 0x62, 0x02, 0x00, + 0xA9, 0x67, 0x02, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, 0x04, 0xE0, 0x06, 0x2E, + 0xAB, 0xAA, 0x01, 0x00, 0x24, 0xE1, 0xC4, 0xEB, 0x92, 0xFB, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, + 0x38, 0x70, 0xE4, 0x10, 0x3C, 0x10, 0x8C, 0x00, 0x0C, 0x60, 0xA3, 0x00, 0xD9, 0xC1, 0x7C, 0x00, + 0xD9, 0x81, 0x6C, 0x00, 0x26, 0x67, 0x10, 0x66, 0xB9, 0x61, 0x3C, 0x00, 0x30, 0x67, 0xD4, 0x68, + 0x8A, 0x9A, 0x03, 0x00, 0x18, 0xB7, 0x96, 0x00, 0x06, 0xD7, 0x04, 0xE0, 0x18, 0x2D, 0x99, 0x00, + 0x04, 0xCC, 0x26, 0xC1, 0x06, 0x3B, 0xEB, 0x8B, 0x00, 0x00, 0x26, 0xCE, 0x24, 0xE4, 0xCC, 0xE0, + 0x28, 0x00, 0xB1, 0x2C, 0x24, 0xD1, 0x92, 0xF3, 0x0C, 0xD0, 0x80, 0x08, 0x98, 0x7D, 0x01, 0x04, + 0x92, 0x05, 0xCB, 0xAD, 0x01, 0x00, 0xFA, 0x7F, 0x03, 0x00, 0x04, 0x70, 0x06, 0xED, 0xB9, 0x71, + 0x38, 0x00, 0x38, 0x71, 0x38, 0x00, 0x26, 0x7D, 0xE8, 0xA7, 0xEB, 0x03, 0x82, 0x15, 0x0C, 0x60, + 0xE4, 0x10, 0x30, 0x76, 0x34, 0xA1, 0x98, 0x77, 0xA4, 0x00, 0x57, 0xA2, 0x26, 0xAD, 0x0C, 0xB0, + 0x80, 0x02, 0x26, 0xBA, 0x9A, 0xD1, 0x00, 0x00, 0x04, 0x2C, 0x26, 0x2B, 0x8B, 0x13, 0x01, 0x00, + 0xC4, 0x20, 0x9A, 0xCA, 0x00, 0x00, 0x38, 0x21, 0x38, 0x00, 0xAB, 0xAA, 0x01, 0x00, 0x38, 0x71, + 0x38, 0x00, 0x2C, 0xE0, 0x34, 0x00, 0x24, 0x71, 0xC4, 0x7B, 0xB9, 0x71, 0x38, 0x00, 0x92, 0xDA, + 0x18, 0x6D, 0x8A, 0x02, 0x99, 0x0D, 0x11, 0x04, 0x34, 0x61, 0x2F, 0x76, 0x06, 0x00, 0x26, 0x76, + 0x06, 0x57, 0x57, 0x52, 0x26, 0x75, 0x26, 0x76, 0x26, 0x7D, 0x2C, 0x70, 0x16, 0x04, 0x78, 0x57, + 0x08, 0x00, 0x78, 0x67, 0x04, 0x00, 0x36, 0x65, 0xC4, 0x60, 0x32, 0x02, 0x16, 0x66, 0xCC, 0x60, + 0xC8, 0x00, 0x02, 0x06, 0xC4, 0x50, 0x82, 0x04, 0x04, 0x61, 0x99, 0x6D, 0x11, 0x04, 0x18, 0x6D, + 0x01, 0x04, 0xC4, 0x61, 0x9A, 0x85, 0x00, 0x00, 0x98, 0x6D, 0x02, 0x04, 0x8A, 0x23, 0x03, 0x00, + 0xF8, 0x67, 0x08, 0x00, 0x8A, 0x1F, 0x03, 0x00, 0xF8, 0x57, 0x0A, 0x00, 0x8A, 0x1B, 0x03, 0x00, + 0xF8, 0x57, 0x04, 0x00, 0x8A, 0x17, 0x03, 0x00, 0xF8, 0x47, 0x06, 0x00, 0x8A, 0x13, 0x03, 0x00, + 0x3F, 0x66, 0x05, 0x00, 0xC4, 0x60, 0x32, 0x02, 0x16, 0x66, 0x38, 0x30, 0xE4, 0x10, 0x28, 0x53, + 0x7C, 0x00, 0xC6, 0x65, 0x02, 0x1E, 0x18, 0x4D, 0x0E, 0x04, 0x04, 0x61, 0x5C, 0x40, 0xFC, 0x00, + 0x99, 0x4D, 0x0E, 0x04, 0x99, 0x6D, 0x0C, 0x04, 0x78, 0xF7, 0x04, 0x00, 0x78, 0x27, 0x08, 0x00, + 0xC6, 0xF2, 0x02, 0x07, 0x64, 0x41, 0x99, 0x4D, 0x0E, 0x04, 0x04, 0x61, 0x04, 0x50, 0xF2, 0x0F, + 0xC6, 0xF2, 0x04, 0x61, 0x04, 0x50, 0x32, 0x0B, 0x64, 0x42, 0x99, 0x4D, 0x0E, 0x04, 0xF2, 0x07, + 0xC4, 0x6A, 0x04, 0x51, 0x12, 0x02, 0x04, 0x50, 0x13, 0x55, 0x04, 0x60, 0x78, 0x27, 0x06, 0x00, + 0x78, 0x47, 0x0A, 0x00, 0x3F, 0x44, 0x02, 0x00, 0xC4, 0x40, 0x32, 0x02, 0x16, 0x44, 0x28, 0x33, + 0x7C, 0x00, 0xC6, 0x43, 0x02, 0x1A, 0x18, 0x4D, 0x0E, 0x04, 0x04, 0x31, 0x5C, 0x40, 0xF3, 0x00, + 0x99, 0x4D, 0x0E, 0x04, 0x99, 0x3D, 0x0C, 0x04, 0x78, 0x37, 0x06, 0x00, 0x78, 0x77, 0x0A, 0x00, + 0xC6, 0x37, 0x02, 0x03, 0x64, 0x44, 0xF2, 0x04, 0xC6, 0x37, 0x32, 0x04, 0x64, 0x48, 0x99, 0x4D, + 0x0E, 0x04, 0x24, 0x61, 0x13, 0x66, 0xF2, 0x05, 0xC4, 0x4A, 0x02, 0x03, 0x24, 0x51, 0x13, 0x55, + 0x98, 0x7D, 0x0F, 0x04, 0x92, 0x11, 0xC4, 0x52, 0x92, 0x0C, 0x18, 0x7D, 0x0D, 0x04, 0xCC, 0x70, + 0xFF, 0x00, 0x8A, 0xB0, 0x02, 0x00, 0x24, 0x71, 0x99, 0x7D, 0x0D, 0x04, 0xFA, 0xAB, 0x02, 0x00, + 0xC4, 0x60, 0x8A, 0xA8, 0x02, 0x00, 0x99, 0x0D, 0x0D, 0x04, 0xFA, 0xA4, 0x02, 0x00, 0xC4, 0x62, + 0x9A, 0xAA, 0x02, 0x00, 0x0C, 0x70, 0x7E, 0x00, 0x26, 0x7D, 0x0C, 0x30, 0x80, 0x02, 0x06, 0x27, + 0x26, 0x3D, 0x04, 0x44, 0x0B, 0x7A, 0x03, 0x00, 0x06, 0x72, 0x04, 0x24, 0x26, 0x27, 0x0C, 0x30, + 0x90, 0x02, 0xFA, 0x95, 0x02, 0x00, 0x0C, 0xC0, 0x16, 0x04, 0x26, 0xCE, 0x06, 0x7C, 0x04, 0x68, + 0x28, 0x57, 0x20, 0x00, 0xB4, 0x61, 0xA9, 0x57, 0x24, 0x00, 0x28, 0x57, 0x22, 0x00, 0x34, 0x74, + 0xA9, 0x57, 0x2A, 0x00, 0x92, 0xF6, 0x78, 0x7A, 0x80, 0x02, 0xCC, 0x70, 0xDF, 0x01, 0x1A, 0x28, + 0xFF, 0xFF, 0x78, 0x7A, 0x82, 0x02, 0xCC, 0x70, 0x1F, 0x03, 0x1A, 0x22, 0xFF, 0xFF, 0x0C, 0x20, + 0x1A, 0x04, 0x06, 0x3B, 0x26, 0x2E, 0x04, 0x44, 0x0B, 0x7A, 0x03, 0x00, 0x04, 0x71, 0x99, 0x7D, + 0xE0, 0x00, 0x18, 0x7E, 0x3E, 0x04, 0x78, 0x2E, 0x1A, 0x04, 0x78, 0x3E, 0x1E, 0x04, 0xC4, 0x71, + 0xC2, 0x12, 0x3F, 0x73, 0x02, 0x00, 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, 0x43, 0x67, 0x78, 0x5E, + 0x1C, 0x04, 0x78, 0x7E, 0x20, 0x04, 0x3F, 0x77, 0x05, 0x00, 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, + 0x43, 0x87, 0xF2, 0x04, 0x0C, 0x80, 0x64, 0x00, 0x06, 0x68, 0xB9, 0x61, 0x68, 0x00, 0x0C, 0xF0, + 0xD4, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x34, 0x00, 0x78, 0x3E, 0x20, 0x04, 0x78, 0x2E, 0x1C, 0x04, + 0x0C, 0xF0, 0xD4, 0x00, 0xF1, 0xF0, 0x06, 0x92, 0x78, 0x3E, 0x22, 0x04, 0x38, 0x21, 0x34, 0x00, + 0x0C, 0xF0, 0xD4, 0x00, 0xF1, 0xF0, 0x78, 0x3E, 0x24, 0x04, 0xB9, 0x21, 0x40, 0x00, 0x06, 0x29, + 0x0C, 0xF0, 0xD4, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x44, 0x00, 0x78, 0x3E, 0x26, 0x04, 0x78, 0x4E, + 0x2A, 0x04, 0x38, 0x21, 0x40, 0x00, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, 0x43, 0x22, 0xB9, 0x21, + 0x48, 0x00, 0x78, 0x3E, 0x28, 0x04, 0x78, 0x4E, 0x2C, 0x04, 0x38, 0x21, 0x44, 0x00, 0x0C, 0xF0, + 0xD8, 0x00, 0xF1, 0xF0, 0x43, 0x22, 0xB9, 0x21, 0x4C, 0x00, 0x78, 0x3E, 0x2E, 0x04, 0x78, 0x4E, + 0x32, 0x04, 0x38, 0x21, 0x48, 0x00, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, 0x43, 0x22, 0xB9, 0x21, + 0x50, 0x00, 0x78, 0x3E, 0x30, 0x04, 0x78, 0x4E, 0x34, 0x04, 0x38, 0x21, 0x4C, 0x00, 0x0C, 0xF0, + 0xD8, 0x00, 0xF1, 0xF0, 0x43, 0x22, 0xB9, 0x21, 0x54, 0x00, 0x78, 0x3E, 0x36, 0x04, 0x78, 0x4E, + 0x3A, 0x04, 0x38, 0x21, 0x50, 0x00, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, 0x43, 0x22, 0xB9, 0x21, + 0x58, 0x00, 0x78, 0x3E, 0x38, 0x04, 0x78, 0x4E, 0x3C, 0x04, 0x38, 0x21, 0x54, 0x00, 0x0C, 0xF0, + 0xD8, 0x00, 0xF1, 0xF0, 0x38, 0x61, 0x68, 0x00, 0x43, 0x22, 0xB9, 0x21, 0x5C, 0x00, 0x06, 0x38, + 0x06, 0x26, 0x0C, 0xF0, 0x80, 0x00, 0xF1, 0xF0, 0x99, 0x20, 0x05, 0x11, 0x28, 0x7E, 0x46, 0x04, + 0x04, 0x31, 0xA9, 0x7E, 0x48, 0x04, 0x28, 0x7E, 0x44, 0x04, 0xA9, 0x2E, 0x44, 0x04, 0xA9, 0x7E, + 0x46, 0x04, 0x18, 0x7E, 0x43, 0x04, 0x26, 0x37, 0x26, 0x77, 0x2F, 0x63, 0x03, 0x00, 0x26, 0xC7, + 0x04, 0x70, 0x16, 0x66, 0x06, 0x27, 0x2F, 0x57, 0x0C, 0x00, 0x34, 0x72, 0x78, 0x55, 0x2E, 0x00, + 0xC6, 0x76, 0x26, 0x25, 0x92, 0xF9, 0xEB, 0x93, 0x00, 0x00, 0x38, 0x71, 0x10, 0x00, 0x06, 0xC2, + 0xB9, 0x71, 0x60, 0x00, 0x38, 0x61, 0x60, 0x00, 0x04, 0x71, 0xC6, 0x26, 0x02, 0x11, 0x38, 0x61, + 0x18, 0x00, 0x04, 0x72, 0xC6, 0x26, 0x02, 0x0C, 0x38, 0x61, 0x20, 0x00, 0x04, 0x73, 0xC6, 0x26, + 0x02, 0x07, 0x38, 0x61, 0x28, 0x00, 0x04, 0x75, 0xC6, 0x26, 0x12, 0x02, 0x04, 0x74, 0x18, 0x6E, + 0x42, 0x04, 0x3F, 0x36, 0x07, 0x00, 0x0C, 0x70, 0xE4, 0x10, 0x30, 0x47, 0x78, 0x7E, 0x40, 0x04, + 0x18, 0x24, 0x97, 0x00, 0xC4, 0x30, 0x16, 0x52, 0x02, 0x04, 0xC6, 0x72, 0x92, 0x0F, 0xF2, 0x05, + 0xC4, 0x30, 0x82, 0x06, 0xC6, 0x75, 0x92, 0x06, 0xA9, 0x0E, 0x40, 0x04, 0xF2, 0x0A, 0xC4, 0x70, + 0x02, 0x03, 0x34, 0x71, 0xF2, 0x04, 0xC4, 0x70, 0x82, 0x04, 0x24, 0x71, 0xA9, 0x7E, 0x40, 0x04, + 0x78, 0x7E, 0x40, 0x04, 0x18, 0x44, 0x97, 0x00, 0xC6, 0x74, 0x92, 0x05, 0xC4, 0x64, 0xD2, 0x03, + 0x24, 0x61, 0xF2, 0x0E, 0x28, 0x4D, 0x06, 0x00, 0xD4, 0x48, 0x82, 0x05, 0xC6, 0x75, 0x92, 0x0A, + 0xC4, 0x61, 0xF2, 0x04, 0xC6, 0x75, 0x92, 0x06, 0xC4, 0x63, 0xC2, 0x04, 0x34, 0x61, 0x99, 0x6E, + 0x42, 0x04, 0x18, 0x5E, 0x3E, 0x04, 0x38, 0x21, 0x58, 0x00, 0x06, 0x35, 0xB9, 0x51, 0x64, 0x00, + 0xEB, 0x93, 0x00, 0x00, 0x38, 0x51, 0x64, 0x00, 0x43, 0x82, 0x38, 0x21, 0x5C, 0x00, 0x06, 0x35, + 0xEB, 0x93, 0x00, 0x00, 0x18, 0x4E, 0x42, 0x04, 0x38, 0x51, 0x64, 0x00, 0xC4, 0x41, 0x43, 0x72, + 0x92, 0x35, 0xC4, 0x58, 0xC2, 0x0E, 0x38, 0x21, 0x58, 0x00, 0x04, 0x39, 0xEB, 0x93, 0x00, 0x00, + 0x43, 0x82, 0x38, 0x21, 0x5C, 0x00, 0x04, 0x39, 0xEB, 0x93, 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, + 0xC4, 0x56, 0xC2, 0x15, 0x38, 0x21, 0x50, 0x00, 0xB9, 0x71, 0x64, 0x00, 0x04, 0x37, 0xEB, 0x93, + 0x00, 0x00, 0x43, 0x92, 0x38, 0x21, 0x54, 0x00, 0x04, 0x37, 0xEB, 0x93, 0x00, 0x00, 0x38, 0x71, + 0x64, 0x00, 0x06, 0x48, 0x06, 0x57, 0x06, 0x89, 0x43, 0x72, 0xF2, 0x03, 0x06, 0x48, 0x06, 0x57, + 0xB9, 0x41, 0x04, 0x00, 0xB9, 0x51, 0x08, 0x00, 0xB1, 0x71, 0x06, 0x2B, 0x06, 0x3C, 0x38, 0x41, + 0x0C, 0x00, 0x38, 0x51, 0x60, 0x00, 0xFA, 0x9C, 0x00, 0x00, 0xC4, 0x42, 0x92, 0x34, 0xC4, 0x56, + 0xC2, 0x0E, 0x38, 0x21, 0x50, 0x00, 0x04, 0x37, 0xEB, 0x93, 0x00, 0x00, 0x43, 0x82, 0x38, 0x21, + 0x54, 0x00, 0x04, 0x37, 0xEB, 0x93, 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, 0xC4, 0x54, 0xC2, 0x15, + 0x38, 0x21, 0x48, 0x00, 0xB9, 0x71, 0x64, 0x00, 0x04, 0x35, 0xEB, 0x93, 0x00, 0x00, 0x43, 0x92, + 0x38, 0x21, 0x4C, 0x00, 0x04, 0x35, 0xEB, 0x93, 0x00, 0x00, 0x38, 0x71, 0x64, 0x00, 0x06, 0x48, + 0x06, 0x57, 0x06, 0x89, 0x43, 0x72, 0xF2, 0x03, 0x06, 0x48, 0x06, 0x57, 0xB9, 0x41, 0x04, 0x00, + 0xB9, 0x51, 0x08, 0x00, 0xB1, 0x71, 0x06, 0x2B, 0x06, 0x3C, 0x38, 0x41, 0x14, 0x00, 0x38, 0x51, + 0x18, 0x00, 0xF2, 0x66, 0xC4, 0x43, 0x92, 0x34, 0xC4, 0x54, 0xC2, 0x0E, 0x38, 0x21, 0x48, 0x00, + 0x04, 0x35, 0xEB, 0x93, 0x00, 0x00, 0x43, 0x82, 0x38, 0x21, 0x4C, 0x00, 0x04, 0x35, 0xEB, 0x93, + 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, 0xC4, 0x52, 0xC2, 0x15, 0x38, 0x21, 0x40, 0x00, 0xB9, 0x71, + 0x64, 0x00, 0x04, 0x33, 0xEB, 0x93, 0x00, 0x00, 0x43, 0x92, 0x38, 0x21, 0x44, 0x00, 0x04, 0x33, + 0xEB, 0x93, 0x00, 0x00, 0x38, 0x71, 0x64, 0x00, 0x06, 0x48, 0x06, 0x57, 0x06, 0x89, 0x43, 0x72, + 0xF2, 0x03, 0x06, 0x48, 0x06, 0x57, 0xB9, 0x41, 0x04, 0x00, 0xB9, 0x51, 0x08, 0x00, 0xB1, 0x71, + 0x06, 0x2B, 0x06, 0x3C, 0x38, 0x41, 0x1C, 0x00, 0x38, 0x51, 0x20, 0x00, 0xF2, 0x31, 0xC4, 0x44, + 0x92, 0x31, 0xC4, 0x52, 0xC2, 0x0E, 0x38, 0x21, 0x40, 0x00, 0x04, 0x33, 0xEB, 0x93, 0x00, 0x00, + 0x43, 0x82, 0x38, 0x21, 0x44, 0x00, 0x04, 0x33, 0xEB, 0x93, 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, + 0xC4, 0x52, 0x92, 0x11, 0x38, 0x51, 0x34, 0x00, 0x38, 0x61, 0x34, 0x00, 0x06, 0x49, 0xF7, 0x4F, + 0xF7, 0x5F, 0x26, 0x94, 0x26, 0x56, 0xE7, 0x50, 0xE7, 0x90, 0x06, 0x38, 0x06, 0x47, 0x43, 0x85, + 0x43, 0x79, 0xF2, 0x03, 0x06, 0x38, 0x06, 0x47, 0xB9, 0x41, 0x08, 0x00, 0x38, 0x51, 0x28, 0x00, + 0x38, 0x41, 0x24, 0x00, 0xB9, 0x31, 0x04, 0x00, 0xB1, 0x71, 0x06, 0x2B, 0x06, 0x3C, 0x06, 0x68, + 0xF2, 0x20, 0xC4, 0x51, 0xC2, 0x0E, 0x38, 0x61, 0x34, 0x00, 0x38, 0x71, 0x34, 0x00, 0xF7, 0x6F, + 0x26, 0x67, 0x06, 0x79, 0xF7, 0x7F, 0x26, 0x97, 0xE7, 0x60, 0xE7, 0x90, 0x43, 0x86, 0x43, 0x79, + 0x78, 0x5E, 0x1C, 0x04, 0x78, 0xFE, 0x1A, 0x04, 0x38, 0x41, 0x2C, 0x00, 0xB1, 0x51, 0x38, 0x51, + 0x30, 0x00, 0xB9, 0x81, 0x04, 0x00, 0xB9, 0x71, 0x08, 0x00, 0x06, 0x2B, 0x06, 0x3C, 0x06, 0x6F, + 0x2B, 0xA7, 0x01, 0x00, 0x18, 0x7E, 0x3E, 0x04, 0xC4, 0x78, 0xD2, 0x04, 0x24, 0x71, 0x99, 0x7E, + 0x3E, 0x04, 0x18, 0x7E, 0x43, 0x04, 0xC4, 0x71, 0xD2, 0x04, 0x24, 0x71, 0x99, 0x7E, 0x43, 0x04, + 0x18, 0x7A, 0x8A, 0x02, 0x04, 0x92, 0x34, 0x71, 0x2F, 0x67, 0x07, 0x00, 0x26, 0x67, 0x06, 0x56, + 0x57, 0x52, 0x26, 0x65, 0x26, 0x76, 0x2C, 0x70, 0x14, 0x04, 0x26, 0x7D, 0xF8, 0x27, 0x02, 0x00, + 0x26, 0x97, 0x22, 0x39, 0xF8, 0x79, 0x02, 0x00, 0x22, 0x36, 0x38, 0x61, 0x3C, 0x00, 0xB9, 0x71, + 0x64, 0x00, 0x0C, 0xC0, 0x64, 0x00, 0x06, 0x8C, 0x36, 0x86, 0x06, 0x38, 0xEB, 0x8B, 0x00, 0x00, + 0x06, 0x3C, 0xEB, 0x93, 0x00, 0x00, 0x06, 0x62, 0x38, 0x31, 0x3C, 0x00, 0x78, 0x2A, 0x80, 0x02, + 0xB9, 0x61, 0x68, 0x00, 0xEB, 0x8B, 0x00, 0x00, 0x06, 0x3C, 0xEB, 0x93, 0x00, 0x00, 0x38, 0x61, + 0x68, 0x00, 0x38, 0x71, 0x64, 0x00, 0x26, 0x26, 0x06, 0x38, 0xA9, 0x2A, 0x80, 0x02, 0x06, 0x27, + 0xEB, 0x8B, 0x00, 0x00, 0x06, 0x3C, 0xEB, 0x93, 0x00, 0x00, 0x06, 0x82, 0x38, 0x31, 0x3C, 0x00, + 0x78, 0x2A, 0x82, 0x02, 0xEB, 0x8B, 0x00, 0x00, 0x06, 0x3C, 0xEB, 0x93, 0x00, 0x00, 0x26, 0x28, + 0xA9, 0x2A, 0x82, 0x02, 0x06, 0x29, 0x06, 0x3B, 0x04, 0x44, 0x0B, 0x7A, 0x03, 0x00, 0xFA, 0xB0, + 0xFC, 0xFF, 0x0C, 0x20, 0x7E, 0x00, 0x26, 0x2D, 0x0C, 0x30, 0x80, 0x02, 0x26, 0x3D, 0x04, 0x44, + 0x0B, 0x7A, 0x03, 0x00, 0x58, 0xC1, 0x7C, 0x00, 0x58, 0x81, 0x6C, 0x00, 0x2C, 0x10, 0x8C, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x20, 0xC8, 0x09, 0x04, 0x30, 0x0C, 0x40, 0x58, 0x00, + 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x26, 0x0A, 0x14, 0x31, 0x0C, 0x40, + 0xC0, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x0C, 0x70, 0x80, 0x08, 0xA9, 0x07, + 0x22, 0x00, 0xA9, 0x07, 0x7C, 0x02, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x68, 0x02, + 0xD9, 0xC1, 0x58, 0x02, 0x38, 0xD0, 0xE4, 0x10, 0xD9, 0x81, 0x48, 0x02, 0x0C, 0xE0, 0x80, 0x08, + 0x18, 0xCD, 0x5A, 0x00, 0xA9, 0x0E, 0x70, 0x02, 0x18, 0x3D, 0x48, 0x00, 0x28, 0x2E, 0x08, 0x00, + 0xEB, 0x8B, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0xEB, 0x93, 0x00, 0x00, 0x23, 0x22, 0xA9, 0x2E, + 0x72, 0x02, 0x28, 0x7D, 0x4A, 0x00, 0xC6, 0x27, 0xB2, 0x03, 0xA9, 0x7E, 0x72, 0x02, 0x28, 0x7E, + 0x06, 0x00, 0xDC, 0x70, 0x10, 0x00, 0x82, 0x08, 0x18, 0x7D, 0x62, 0x00, 0x36, 0xC7, 0xC4, 0xC0, + 0x12, 0x02, 0x04, 0xC1, 0x13, 0xCC, 0x0C, 0x20, 0x00, 0x02, 0x26, 0x21, 0x04, 0x30, 0x0C, 0x40, + 0x10, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x06, 0x21, 0x04, 0x30, 0x0C, 0x40, 0x00, 0x01, + 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x00, 0x01, 0x26, 0x21, 0x04, 0x30, 0x0C, 0x40, + 0xC0, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0xC0, 0x01, 0x0C, 0x40, 0x40, 0x00, + 0x26, 0x21, 0x04, 0x30, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x28, 0x2E, 0x08, 0x00, 0xA9, 0x0E, + 0xA0, 0x01, 0x06, 0x3C, 0xEB, 0x8B, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0xAB, 0x8F, 0x00, 0x00, + 0x28, 0x7E, 0x0E, 0x00, 0x04, 0x60, 0x26, 0x27, 0xA9, 0x2E, 0xA2, 0x01, 0xB9, 0x61, 0x10, 0x02, + 0x06, 0x86, 0x04, 0xA1, 0x06, 0xC6, 0x2F, 0x78, 0x08, 0x00, 0x26, 0x7E, 0xB9, 0x71, 0x34, 0x02, + 0x04, 0xD0, 0x38, 0x71, 0x10, 0x02, 0x26, 0x7D, 0x23, 0x77, 0x0C, 0x60, 0x80, 0x02, 0xB9, 0x71, + 0x14, 0x02, 0x26, 0x77, 0x26, 0x76, 0x70, 0x77, 0x28, 0x6E, 0x72, 0x02, 0xC6, 0x76, 0x02, 0x06, + 0x28, 0x6E, 0x70, 0x02, 0x24, 0x61, 0xA9, 0x6E, 0x70, 0x02, 0x0C, 0x40, 0xA2, 0x01, 0x26, 0x4E, + 0x70, 0x44, 0xC6, 0x74, 0xB9, 0x41, 0x18, 0x02, 0x0A, 0xE7, 0x00, 0x00, 0x2F, 0x7D, 0x0D, 0x00, + 0x04, 0xB0, 0x26, 0x7E, 0xB9, 0x71, 0x30, 0x02, 0xB9, 0xB1, 0x1C, 0x02, 0xB9, 0xB1, 0x20, 0x02, + 0xB9, 0xB1, 0x24, 0x02, 0x06, 0x6B, 0xB9, 0xB1, 0x28, 0x02, 0x06, 0x5B, 0x38, 0x91, 0x14, 0x02, + 0x38, 0x21, 0x18, 0x02, 0x23, 0x7B, 0x26, 0x97, 0x23, 0x99, 0x2F, 0x49, 0x09, 0x00, 0x0C, 0xF0, + 0x80, 0x02, 0x26, 0x4F, 0x70, 0x44, 0xC6, 0x42, 0x0A, 0x8A, 0x00, 0x00, 0x13, 0x3C, 0xB9, 0x31, + 0x2C, 0x02, 0x38, 0xF1, 0x2C, 0x02, 0x36, 0x42, 0x38, 0x21, 0x30, 0x02, 0x2F, 0x39, 0x01, 0x00, + 0x91, 0xF3, 0x2F, 0x3B, 0x0B, 0x00, 0x26, 0x32, 0x28, 0x33, 0x26, 0x00, 0xB9, 0x51, 0x38, 0x02, + 0x06, 0x24, 0xB9, 0x61, 0x3C, 0x02, 0xB9, 0x71, 0x44, 0x02, 0xB9, 0x41, 0x40, 0x02, 0xEB, 0x8B, + 0x00, 0x00, 0x38, 0x31, 0x1C, 0x02, 0x38, 0xF1, 0x34, 0x02, 0x38, 0x41, 0x40, 0x02, 0x26, 0x32, + 0xB9, 0x31, 0x1C, 0x02, 0x28, 0x3F, 0x52, 0x00, 0x06, 0x24, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x31, + 0x20, 0x02, 0x38, 0xF1, 0x24, 0x02, 0x38, 0x41, 0x40, 0x02, 0x38, 0x71, 0x44, 0x02, 0x38, 0x51, + 0x38, 0x02, 0x38, 0x61, 0x3C, 0x02, 0xC4, 0x80, 0x26, 0x32, 0x26, 0xF4, 0x24, 0x71, 0xB9, 0x31, + 0x20, 0x02, 0xB9, 0xF1, 0x24, 0x02, 0x23, 0x77, 0x82, 0x45, 0xC4, 0x50, 0x14, 0x4D, 0x26, 0x41, + 0x26, 0x49, 0x92, 0x14, 0x90, 0x44, 0x92, 0x0F, 0xC4, 0xD0, 0x82, 0x08, 0x14, 0x4E, 0x26, 0x41, + 0x26, 0x49, 0x90, 0x44, 0x92, 0x08, 0xC4, 0xDC, 0x82, 0x35, 0x14, 0x2C, 0x26, 0x21, 0x26, 0x92, + 0x90, 0x49, 0x82, 0x30, 0x06, 0xC4, 0x04, 0x51, 0xF2, 0x2D, 0x90, 0x44, 0x82, 0x04, 0xC6, 0x4C, + 0x9A, 0x82, 0x01, 0x00, 0xC4, 0xD0, 0x82, 0x0B, 0x14, 0x4E, 0x26, 0x41, 0x26, 0x49, 0x90, 0x44, + 0x82, 0x04, 0xC6, 0x4C, 0x9A, 0x78, 0x01, 0x00, 0xC4, 0xDC, 0x82, 0x09, 0x14, 0x3C, 0x26, 0x31, + 0x26, 0x93, 0x90, 0x49, 0x82, 0x04, 0xC6, 0x4C, 0x9A, 0x6E, 0x01, 0x00, 0xB8, 0x41, 0x28, 0x02, + 0x82, 0x11, 0xC4, 0x6A, 0xD2, 0x0F, 0xC4, 0xCA, 0xD2, 0x0D, 0xC6, 0xC6, 0x0C, 0x40, 0x00, 0x02, + 0x26, 0x41, 0xC2, 0x04, 0x26, 0x4C, 0x91, 0x64, 0xF2, 0x05, 0x38, 0xF1, 0x2C, 0x02, 0x26, 0x46, + 0x91, 0xF4, 0x24, 0xD1, 0xC4, 0xDD, 0x24, 0xB1, 0x9A, 0x6A, 0xFF, 0xFF, 0x14, 0x61, 0x26, 0x6A, + 0xC4, 0x6E, 0xD2, 0x3A, 0xC4, 0x50, 0x92, 0x03, 0x06, 0xCA, 0x24, 0xA1, 0x38, 0x21, 0x14, 0x02, + 0xB9, 0x71, 0x44, 0x02, 0x06, 0x47, 0x26, 0x21, 0x33, 0x3C, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x14, 0x51, 0x26, 0x5C, 0x2F, 0x65, 0x05, 0x00, 0x26, 0x65, 0x57, 0x61, 0x26, 0x61, 0x38, 0x46, + 0x00, 0x01, 0x38, 0x21, 0x1C, 0x02, 0x38, 0x31, 0x20, 0x02, 0x38, 0xF1, 0x24, 0x02, 0x38, 0x71, + 0x44, 0x02, 0x26, 0x42, 0xB9, 0x46, 0x00, 0x01, 0x38, 0x46, 0x04, 0x01, 0x57, 0x51, 0x26, 0x43, + 0xB9, 0x46, 0x04, 0x01, 0x38, 0x46, 0x08, 0x01, 0x26, 0x4F, 0xB9, 0x46, 0x08, 0x01, 0x2F, 0x65, + 0x01, 0x00, 0x28, 0x56, 0xC0, 0x01, 0x99, 0x86, 0xC3, 0x01, 0x26, 0x75, 0xA9, 0x76, 0xC0, 0x01, + 0x04, 0x71, 0x99, 0x76, 0xC2, 0x01, 0x24, 0xD1, 0xC4, 0xDC, 0x0A, 0xFC, 0xFE, 0xFF, 0x38, 0x71, + 0x10, 0x02, 0x24, 0x81, 0x24, 0x7D, 0xCC, 0x80, 0x12, 0x00, 0x23, 0x77, 0xB9, 0x71, 0x10, 0x02, + 0x9A, 0xEB, 0xFE, 0xFF, 0x14, 0x91, 0x26, 0x9A, 0xC4, 0x9F, 0xC2, 0x09, 0x18, 0x8E, 0x04, 0x00, + 0x28, 0xCE, 0x22, 0x00, 0x06, 0xDE, 0x04, 0xB0, 0xFA, 0xEE, 0x00, 0x00, 0x14, 0xB2, 0x26, 0xBA, + 0x2F, 0xDB, 0x0B, 0x00, 0x06, 0xCA, 0x26, 0xDB, 0x0C, 0x20, 0x00, 0x01, 0x57, 0xC1, 0x57, 0xD1, + 0x26, 0x21, 0x26, 0xC1, 0x0C, 0x70, 0xB4, 0x01, 0x06, 0x89, 0x26, 0xD2, 0x2C, 0xC0, 0xB8, 0x01, + 0x26, 0x71, 0xC4, 0x80, 0x82, 0x45, 0x0C, 0x60, 0x00, 0x02, 0x26, 0x61, 0x26, 0x68, 0x10, 0x66, + 0x34, 0x61, 0x13, 0x56, 0xC4, 0x5F, 0xD2, 0x38, 0x2F, 0x56, 0x06, 0x00, 0x26, 0x56, 0x57, 0x51, + 0x26, 0x51, 0x30, 0x3D, 0x38, 0x45, 0x00, 0x01, 0x57, 0x61, 0x26, 0x43, 0xB9, 0x45, 0x00, 0x01, + 0x38, 0x3D, 0x04, 0x00, 0x38, 0x45, 0x04, 0x01, 0x26, 0x61, 0x26, 0x43, 0xB9, 0x45, 0x04, 0x01, + 0x38, 0x3D, 0x08, 0x00, 0x38, 0x45, 0x08, 0x01, 0x06, 0x2D, 0x26, 0x43, 0xB9, 0x45, 0x08, 0x01, + 0x20, 0x4C, 0x28, 0x56, 0xC0, 0x01, 0x04, 0x3C, 0x26, 0x54, 0xA9, 0x56, 0xC0, 0x01, 0x3F, 0x4D, + 0x07, 0x00, 0x26, 0x3D, 0xB9, 0x71, 0x44, 0x02, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x0C, 0x40, + 0xFC, 0x01, 0x04, 0x34, 0x26, 0x41, 0x06, 0x2C, 0x26, 0x3C, 0x36, 0x4C, 0x0C, 0xF0, 0xEC, 0x00, + 0xF1, 0xF0, 0x38, 0x71, 0x44, 0x02, 0x34, 0x81, 0x34, 0xDC, 0x34, 0xC4, 0xF2, 0xBB, 0x0C, 0x70, + 0x00, 0x02, 0x26, 0x71, 0x26, 0x7B, 0x06, 0x6A, 0xC4, 0x61, 0x82, 0x1C, 0x98, 0x57, 0x01, 0x00, + 0x82, 0x16, 0x90, 0x57, 0x82, 0x14, 0x06, 0x56, 0xC6, 0x59, 0xD2, 0x0E, 0x0C, 0x40, 0x00, 0x02, + 0x26, 0x41, 0x26, 0x45, 0x18, 0x27, 0x01, 0x00, 0x10, 0x34, 0xC6, 0x23, 0x92, 0x03, 0x10, 0x37, + 0x91, 0x34, 0x24, 0x51, 0xF2, 0xF2, 0x10, 0x57, 0x99, 0x57, 0x01, 0x00, 0x34, 0x61, 0x34, 0x71, + 0xF2, 0xE4, 0x06, 0x76, 0xC6, 0x7A, 0x8A, 0x7B, 0xFF, 0xFF, 0x0C, 0x50, 0x00, 0x02, 0x26, 0x51, + 0x26, 0x57, 0x90, 0x45, 0x92, 0x03, 0x91, 0x65, 0x24, 0x61, 0x24, 0x71, 0xF2, 0xF4, 0x18, 0x7D, + 0xE5, 0x00, 0x0C, 0x30, 0x00, 0x02, 0x2F, 0x67, 0x07, 0x00, 0x26, 0x67, 0x57, 0x61, 0x26, 0x76, + 0x18, 0x6D, 0xE4, 0x00, 0x26, 0x31, 0x26, 0x76, 0x26, 0x71, 0x10, 0x77, 0x26, 0x73, 0x10, 0x57, + 0x14, 0x71, 0x26, 0x75, 0xB3, 0x77, 0x22, 0x4D, 0x06, 0x67, 0x57, 0x61, 0x26, 0x61, 0x28, 0x36, + 0xC0, 0x01, 0x99, 0x5D, 0x4E, 0x01, 0x2F, 0x25, 0x05, 0x00, 0x2F, 0x45, 0x02, 0x00, 0x57, 0x41, + 0xA9, 0x3D, 0x4C, 0x01, 0x26, 0x4E, 0x04, 0x61, 0x2F, 0xF6, 0x04, 0x00, 0xE8, 0xFF, 0xA6, 0x01, + 0x32, 0x3D, 0x26, 0x52, 0x57, 0x51, 0x26, 0x5E, 0x26, 0x65, 0x99, 0xB6, 0xA6, 0x01, 0x18, 0x65, + 0xA6, 0x01, 0x24, 0x61, 0x99, 0x65, 0xA6, 0x01, 0x13, 0x63, 0xC6, 0xC6, 0xA9, 0x6D, 0xEA, 0x00, + 0x06, 0x5C, 0xB2, 0x02, 0x06, 0x56, 0x2F, 0x97, 0x07, 0x00, 0x2F, 0x67, 0x09, 0x00, 0x57, 0x61, + 0x26, 0x61, 0xB8, 0xA6, 0x08, 0x01, 0x23, 0xC5, 0x92, 0x02, 0x04, 0xA1, 0x26, 0x79, 0x57, 0x71, + 0x2F, 0x97, 0x01, 0x00, 0x38, 0x29, 0x00, 0x01, 0xB9, 0xA9, 0x08, 0x01, 0x06, 0x3A, 0xAB, 0x8F, + 0x00, 0x00, 0x04, 0x3A, 0xAB, 0x8F, 0x00, 0x00, 0xA9, 0x2D, 0x48, 0x01, 0x38, 0x29, 0x04, 0x01, + 0x06, 0x3A, 0xAB, 0x8F, 0x00, 0x00, 0x04, 0x3A, 0xAB, 0x8F, 0x00, 0x00, 0xA9, 0x2D, 0x4A, 0x01, + 0x24, 0xB1, 0x24, 0xD8, 0xC6, 0xB8, 0x22, 0x9C, 0xF2, 0x05, 0x24, 0x61, 0xC4, 0x6C, 0x92, 0xBD, + 0xF2, 0xCC, 0xA9, 0xCE, 0x22, 0x00, 0x58, 0xC1, 0x58, 0x02, 0x58, 0x81, 0x48, 0x02, 0x2C, 0x10, + 0x68, 0x02, 0xE1, 0xF0, 0x06, 0x64, 0x04, 0x41, 0xB9, 0x41, 0x28, 0x02, 0xFA, 0x93, 0xFE, 0xFF, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x20, 0x64, 0x09, 0x04, 0x30, 0x0C, 0x40, 0x58, 0x00, + 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x99, 0x00, 0x84, 0x08, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x2F, 0x75, 0x05, 0x00, 0x26, 0x75, 0x57, 0x71, 0x26, 0x75, 0x3C, 0x10, + 0x14, 0x00, 0x34, 0x51, 0xD9, 0xC1, 0x04, 0x00, 0x2F, 0xE4, 0x07, 0x00, 0x2F, 0x75, 0x05, 0x00, + 0x26, 0x75, 0x57, 0x71, 0x26, 0x75, 0x26, 0x74, 0x26, 0x77, 0x34, 0x72, 0x26, 0xEE, 0x26, 0xE3, + 0xB1, 0xB1, 0x26, 0x37, 0x34, 0x41, 0x04, 0x70, 0x06, 0xF3, 0x04, 0x60, 0x2F, 0xD7, 0x05, 0x00, + 0xCC, 0xD0, 0x11, 0x00, 0xD2, 0x09, 0x2F, 0xC6, 0x04, 0x00, 0xC4, 0xCC, 0xD2, 0x05, 0x70, 0xBF, + 0x70, 0xCE, 0xC6, 0xBC, 0x12, 0x0E, 0x24, 0x61, 0xC4, 0x63, 0x24, 0xF2, 0x92, 0xF2, 0x24, 0x71, + 0xC4, 0x73, 0x2C, 0x30, 0x1A, 0x00, 0x92, 0xE9, 0x70, 0x7E, 0xB1, 0x72, 0x04, 0x21, 0xF2, 0x02, + 0x04, 0x20, 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x58, 0x01, 0x0C, 0x20, 0x82, 0x00, 0x26, 0x21, 0x04, 0x30, 0x04, 0x44, 0xD9, 0xC1, + 0x48, 0x01, 0xD9, 0x81, 0x38, 0x01, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x34, 0x00, + 0x26, 0x21, 0x04, 0x30, 0x0C, 0x40, 0x21, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x70, + 0x80, 0x08, 0x0C, 0x60, 0xFF, 0x0F, 0xA9, 0x67, 0x08, 0x00, 0x18, 0x67, 0x02, 0x04, 0xA9, 0x07, + 0x0A, 0x00, 0xA9, 0x07, 0x0C, 0x00, 0xC4, 0x62, 0xA9, 0x07, 0xDC, 0x00, 0xA9, 0x07, 0xA4, 0x01, + 0x78, 0xD7, 0x0E, 0x00, 0x06, 0xA7, 0xC2, 0x08, 0x38, 0x70, 0xE4, 0x10, 0x0C, 0x30, 0x26, 0x00, + 0x26, 0x37, 0x20, 0x73, 0xF2, 0x18, 0xC4, 0x62, 0x92, 0x08, 0x38, 0x70, 0xE4, 0x10, 0x0C, 0x40, + 0x24, 0x00, 0x26, 0x47, 0x20, 0x74, 0xF2, 0x0F, 0x18, 0x70, 0xFB, 0x10, 0x0C, 0x90, 0x2C, 0x01, + 0xC4, 0x70, 0xB9, 0x91, 0xB0, 0x00, 0x92, 0x09, 0x38, 0x70, 0xE4, 0x10, 0x0C, 0xC0, 0x22, 0x00, + 0x26, 0xC7, 0x20, 0x7C, 0xB9, 0x71, 0xB0, 0x00, 0x38, 0x71, 0xB0, 0x00, 0x28, 0xCA, 0x46, 0x01, + 0x38, 0xB0, 0xE4, 0x10, 0x26, 0xC7, 0x23, 0xCC, 0x0C, 0x70, 0x28, 0x00, 0xA9, 0xCA, 0x3C, 0x01, + 0x26, 0x7B, 0x20, 0x77, 0x04, 0x3D, 0xB9, 0x71, 0x14, 0x01, 0x08, 0x70, 0x00, 0x40, 0x38, 0x27, + 0xE4, 0x70, 0x13, 0x22, 0xEB, 0x97, 0x00, 0x00, 0xA3, 0x22, 0x82, 0x03, 0xC4, 0x2A, 0x92, 0x06, + 0x28, 0x7B, 0x2A, 0x00, 0x26, 0xC7, 0xA9, 0xCA, 0x3C, 0x01, 0x2B, 0xB2, 0x00, 0x00, 0x38, 0xE0, + 0xE4, 0x10, 0x04, 0xB1, 0x28, 0x3E, 0xBC, 0x00, 0xEB, 0x8B, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, + 0xAB, 0x8F, 0x00, 0x00, 0xB9, 0x21, 0x18, 0x01, 0x18, 0x2A, 0x02, 0x04, 0xC6, 0x2B, 0xC2, 0x08, + 0x18, 0x3E, 0x3D, 0x00, 0xEB, 0x8B, 0x00, 0x00, 0x86, 0xB2, 0x92, 0x02, 0x04, 0xB1, 0x18, 0x3E, + 0x3C, 0x00, 0x78, 0x2A, 0xDA, 0x00, 0x06, 0xCA, 0xEB, 0x8B, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, + 0xEB, 0x93, 0x00, 0x00, 0x28, 0x7E, 0x3A, 0x00, 0xC6, 0x27, 0xB2, 0x02, 0x06, 0x27, 0x06, 0x3B, + 0xAB, 0x8F, 0x00, 0x00, 0xA9, 0x2C, 0xDC, 0x00, 0x06, 0x3B, 0x06, 0x2D, 0xAB, 0x8F, 0x00, 0x00, + 0x30, 0x7E, 0xB9, 0x21, 0x1C, 0x01, 0x0C, 0x60, 0x00, 0x40, 0xD6, 0x67, 0x82, 0x06, 0x0C, 0x60, + 0x80, 0x06, 0xB9, 0x61, 0xAC, 0x00, 0xF2, 0x05, 0x0C, 0x90, 0x80, 0x02, 0xB9, 0x91, 0xAC, 0x00, + 0xDC, 0x70, 0x00, 0x80, 0x82, 0x06, 0x0C, 0x70, 0x80, 0x06, 0xB9, 0x71, 0xC8, 0x00, 0xF2, 0x05, + 0x0C, 0xC0, 0x80, 0x02, 0xB9, 0xC1, 0xC8, 0x00, 0x0C, 0x70, 0xCE, 0x08, 0xB9, 0x71, 0x98, 0x00, + 0x04, 0x70, 0xB9, 0x71, 0x90, 0x00, 0xB9, 0x71, 0xC4, 0x00, 0x38, 0x71, 0x90, 0x00, 0x04, 0xC0, + 0x23, 0x77, 0x06, 0x97, 0xB9, 0x71, 0xB4, 0x00, 0x26, 0x77, 0x26, 0x79, 0x57, 0x71, 0x26, 0x79, + 0x23, 0x77, 0xB9, 0x71, 0x20, 0x01, 0x0C, 0x70, 0xA2, 0x08, 0xB9, 0x71, 0x9C, 0x00, 0x38, 0x71, + 0x90, 0x00, 0xB9, 0xC1, 0xA0, 0x00, 0x13, 0x77, 0xB9, 0x71, 0x10, 0x01, 0x34, 0x71, 0xB9, 0x71, + 0x24, 0x01, 0x38, 0xC1, 0xA0, 0x00, 0x38, 0x31, 0x20, 0x01, 0x26, 0x3C, 0x23, 0x33, 0x06, 0xD3, + 0x26, 0xD3, 0x0C, 0x70, 0x80, 0x02, 0x26, 0x7D, 0x70, 0x67, 0x38, 0x70, 0xE4, 0x10, 0xB9, 0x31, + 0x8C, 0x00, 0x43, 0xEC, 0x28, 0x77, 0x5C, 0x00, 0x43, 0xB3, 0xC6, 0x67, 0x02, 0x06, 0x28, 0x7A, + 0xA4, 0x01, 0x24, 0x71, 0xA9, 0x7A, 0xA4, 0x01, 0x0C, 0x70, 0x34, 0x00, 0xE7, 0xB1, 0x26, 0x71, + 0x38, 0xC1, 0x8C, 0x00, 0x26, 0x7B, 0x10, 0x77, 0x54, 0xC7, 0x63, 0x7C, 0xD4, 0x71, 0x9A, 0xA5, + 0x03, 0x00, 0x38, 0x71, 0x90, 0x00, 0xCC, 0x70, 0x11, 0x00, 0x82, 0x0C, 0xC4, 0xEA, 0x12, 0x0A, + 0x04, 0x9B, 0x0C, 0x60, 0x11, 0x00, 0xB9, 0x91, 0xA8, 0x00, 0xB9, 0x61, 0xA4, 0x00, 0x04, 0x72, + 0xF2, 0x09, 0x04, 0x9D, 0x0C, 0x60, 0x12, 0x00, 0xB9, 0x91, 0xA8, 0x00, 0xB9, 0x61, 0xA4, 0x00, + 0x04, 0x71, 0xB9, 0x71, 0x94, 0x00, 0x06, 0x73, 0x0C, 0x70, 0x80, 0x06, 0x26, 0x7D, 0x38, 0x91, + 0x18, 0x01, 0x70, 0x77, 0x43, 0x69, 0xC6, 0x76, 0x2A, 0x80, 0x03, 0x00, 0x38, 0x61, 0x94, 0x00, + 0xC4, 0x61, 0x92, 0x08, 0x38, 0x91, 0x14, 0x01, 0x43, 0x69, 0xC6, 0x76, 0x2A, 0x76, 0x03, 0x00, + 0xF2, 0x06, 0x78, 0x6A, 0x3C, 0x01, 0xC6, 0x67, 0x1A, 0x70, 0x03, 0x00, 0x38, 0x51, 0x90, 0x00, + 0xB9, 0x01, 0x88, 0x00, 0x0C, 0x20, 0x88, 0x00, 0x26, 0x21, 0x0C, 0x30, 0x80, 0x06, 0x06, 0x4E, + 0x2B, 0x15, 0x02, 0x00, 0xC4, 0x20, 0x8A, 0x61, 0x03, 0x00, 0x38, 0x71, 0xAC, 0x00, 0x26, 0xD7, + 0x70, 0x6D, 0x28, 0x7A, 0x0E, 0x00, 0x3F, 0x77, 0x06, 0x00, 0xC4, 0x70, 0x0A, 0x56, 0x03, 0x00, + 0x78, 0x6A, 0xDC, 0x00, 0xC6, 0x76, 0x0A, 0x51, 0x03, 0x00, 0x38, 0x71, 0x88, 0x00, 0x28, 0x6A, + 0x0C, 0x00, 0xC6, 0x76, 0x22, 0x09, 0xA9, 0x7A, 0x0C, 0x00, 0x18, 0x7A, 0x04, 0x00, 0x24, 0x71, + 0x13, 0x77, 0xB9, 0x71, 0xC4, 0x00, 0x0C, 0x90, 0x34, 0x00, 0x26, 0x91, 0x26, 0xB9, 0x10, 0x5B, + 0x04, 0x71, 0x06, 0x67, 0x53, 0x6C, 0xC4, 0xEC, 0x66, 0x65, 0x91, 0x6B, 0x82, 0x0C, 0x38, 0x51, + 0x8C, 0x00, 0x26, 0x57, 0x06, 0x65, 0xE7, 0x61, 0x26, 0x69, 0x54, 0x57, 0x53, 0x75, 0x10, 0x56, + 0x66, 0x75, 0x91, 0x76, 0x38, 0xC1, 0x90, 0x00, 0xCC, 0xC0, 0x11, 0x00, 0x82, 0x36, 0x38, 0x71, + 0x8C, 0x00, 0x0C, 0xF0, 0x34, 0x00, 0x24, 0x7D, 0x06, 0x57, 0xE7, 0x51, 0x26, 0xF1, 0x04, 0x67, + 0x56, 0x67, 0x26, 0x5F, 0x04, 0x71, 0x10, 0x45, 0x06, 0x37, 0x53, 0x36, 0x06, 0x63, 0xC4, 0xE0, + 0x66, 0x64, 0x91, 0x65, 0x92, 0x12, 0x38, 0x71, 0x8C, 0x00, 0x0C, 0x40, 0x34, 0x00, 0x24, 0x7E, + 0x06, 0x67, 0xE7, 0x61, 0x26, 0x41, 0x04, 0x57, 0x56, 0x57, 0x26, 0x64, 0x04, 0x71, 0x53, 0x75, + 0x10, 0x56, 0x66, 0x75, 0x91, 0x76, 0xF2, 0x11, 0x38, 0x51, 0x8C, 0x00, 0x0C, 0x90, 0x34, 0x00, + 0x24, 0x5C, 0x06, 0x65, 0xE7, 0x61, 0x26, 0x91, 0x26, 0x69, 0x54, 0x57, 0x53, 0x75, 0x10, 0x56, + 0xC4, 0xEC, 0x66, 0x75, 0x91, 0x76, 0x92, 0xE0, 0x38, 0xC1, 0xA0, 0x00, 0x38, 0x41, 0x1C, 0x01, + 0x13, 0xCC, 0x0C, 0xF0, 0x68, 0x00, 0x04, 0x20, 0xB9, 0xC1, 0xB8, 0x00, 0x23, 0x44, 0x34, 0xC1, + 0x26, 0xF1, 0x0C, 0x60, 0xFF, 0xFF, 0x06, 0xE1, 0x06, 0x32, 0xB9, 0xC1, 0xC0, 0x00, 0xB9, 0x41, + 0xBC, 0x00, 0x38, 0x71, 0x24, 0x01, 0x06, 0xDF, 0x26, 0x76, 0x33, 0x77, 0x2F, 0x87, 0x07, 0x00, + 0x26, 0x87, 0x57, 0x81, 0x26, 0x87, 0x23, 0x88, 0x06, 0x4E, 0x0C, 0x50, 0xFF, 0xFF, 0x38, 0x91, + 0xC0, 0x00, 0xC4, 0x70, 0x26, 0x95, 0x33, 0x99, 0x22, 0x0B, 0x38, 0xC1, 0xA4, 0x00, 0xC6, 0x7C, + 0x32, 0x07, 0xC4, 0x90, 0x22, 0x05, 0x38, 0xC1, 0xA8, 0x00, 0xC6, 0x9C, 0x22, 0x03, 0xA1, 0x04, + 0xF2, 0x1F, 0x26, 0x98, 0x38, 0xC1, 0xAC, 0x00, 0x23, 0x99, 0x26, 0x99, 0x26, 0xC9, 0x20, 0xBC, + 0x38, 0xC1, 0xBC, 0x00, 0x36, 0xBC, 0x06, 0xCB, 0xC3, 0xBB, 0x32, 0x02, 0x04, 0xC0, 0xC4, 0x62, + 0xA1, 0xC4, 0x43, 0xBC, 0xD2, 0x0D, 0xC4, 0x52, 0xD2, 0x0B, 0x38, 0xC1, 0xC8, 0x00, 0x26, 0x2B, + 0x26, 0x9C, 0x20, 0xC9, 0x38, 0x91, 0xBC, 0x00, 0x24, 0x31, 0x36, 0xC9, 0xA1, 0xCD, 0x24, 0x51, + 0x23, 0x55, 0xC4, 0x54, 0x24, 0x42, 0x24, 0xD2, 0x92, 0xCB, 0x24, 0x61, 0x23, 0x66, 0xC4, 0x64, + 0x24, 0xEA, 0x24, 0xF6, 0x92, 0xB7, 0x98, 0x70, 0xFA, 0x10, 0x92, 0x1A, 0x34, 0x31, 0xC4, 0x30, + 0x12, 0x02, 0x04, 0x31, 0x38, 0xC1, 0x94, 0x00, 0xC4, 0xC1, 0x92, 0x12, 0x78, 0xE1, 0x18, 0x00, + 0x38, 0xD0, 0xE4, 0x10, 0xAB, 0x8F, 0x00, 0x00, 0x3F, 0x22, 0x0E, 0x00, 0x28, 0x7D, 0x34, 0x00, + 0xC6, 0x27, 0xB2, 0x06, 0x28, 0x7D, 0x36, 0x00, 0xC6, 0xE7, 0x2A, 0x77, 0x02, 0x00, 0x38, 0x70, + 0xE4, 0x10, 0x78, 0x21, 0x78, 0x00, 0x28, 0x37, 0x32, 0x00, 0xEB, 0x8B, 0x00, 0x00, 0x0C, 0x30, + 0x64, 0x00, 0xEB, 0x93, 0x00, 0x00, 0x38, 0x61, 0x94, 0x00, 0x43, 0x22, 0xC4, 0x61, 0x92, 0x32, + 0x06, 0x76, 0x0C, 0x70, 0xE8, 0x10, 0x38, 0x31, 0x8C, 0x00, 0x28, 0x80, 0xE8, 0x10, 0x28, 0xF7, + 0x02, 0x00, 0x28, 0xE7, 0x04, 0x00, 0x28, 0xD7, 0x06, 0x00, 0x28, 0xC7, 0x08, 0x00, 0x04, 0x48, + 0x26, 0x41, 0x04, 0x50, 0x2C, 0x30, 0x1C, 0x00, 0x1C, 0xB0, 0x32, 0x00, 0x2F, 0x75, 0x03, 0x00, + 0x04, 0x60, 0xC6, 0x78, 0x82, 0x0D, 0xC6, 0x7F, 0x82, 0x0B, 0xC6, 0x7E, 0x82, 0x09, 0xC6, 0x7D, + 0x82, 0x07, 0xC6, 0x7C, 0x82, 0x05, 0x2F, 0x96, 0x04, 0x00, 0xA9, 0x09, 0x28, 0x00, 0x34, 0x6A, + 0xC6, 0x6B, 0x34, 0x71, 0x92, 0xEF, 0x34, 0x5D, 0x1C, 0x70, 0x41, 0x00, 0xC6, 0x57, 0x34, 0x42, + 0x92, 0xE6, 0x78, 0x71, 0x18, 0x00, 0x28, 0x6A, 0x08, 0x00, 0xB9, 0x71, 0x88, 0x00, 0xC6, 0x67, + 0x02, 0x03, 0xA9, 0x7A, 0x08, 0x00, 0x28, 0x6A, 0x0A, 0x00, 0xC6, 0x67, 0x32, 0x03, 0xA9, 0x7A, + 0x0A, 0x00, 0x18, 0x7A, 0x04, 0x00, 0x78, 0x61, 0x76, 0x00, 0x38, 0x91, 0xB8, 0x00, 0x38, 0xC1, + 0x10, 0x01, 0xD7, 0x71, 0xC6, 0x62, 0x26, 0x7A, 0x99, 0x97, 0xE4, 0x00, 0x99, 0xC7, 0xE5, 0x00, + 0x04, 0x72, 0x12, 0x0A, 0x78, 0x61, 0x70, 0x00, 0xC6, 0x62, 0x12, 0x06, 0x78, 0x61, 0x7C, 0x00, + 0xC6, 0x62, 0x12, 0x02, 0x04, 0x70, 0x78, 0x61, 0x7A, 0x00, 0xC6, 0x62, 0x12, 0x09, 0x78, 0x61, + 0x74, 0x00, 0xC6, 0x62, 0x12, 0x05, 0x78, 0x61, 0x80, 0x00, 0xC6, 0x62, 0x02, 0x02, 0x64, 0x74, + 0x78, 0x61, 0x72, 0x00, 0xC6, 0x62, 0x12, 0x09, 0x78, 0x61, 0x70, 0x00, 0xC6, 0x62, 0x12, 0x05, + 0x78, 0x61, 0x74, 0x00, 0xC6, 0x62, 0x02, 0x02, 0x64, 0x78, 0x78, 0x61, 0x7E, 0x00, 0xC6, 0x62, + 0x12, 0x09, 0x78, 0x61, 0x7C, 0x00, 0xC6, 0x62, 0x12, 0x05, 0x78, 0x61, 0x80, 0x00, 0xC6, 0x62, + 0x02, 0x03, 0x6C, 0x70, 0x10, 0x00, 0x04, 0x32, 0x04, 0x24, 0x04, 0xF8, 0x56, 0x37, 0x56, 0x27, + 0x56, 0xF7, 0x04, 0x68, 0x0C, 0x50, 0x28, 0x00, 0x14, 0x42, 0x5C, 0x70, 0x10, 0x00, 0x26, 0x61, + 0x26, 0x51, 0x26, 0x41, 0x13, 0x33, 0x13, 0x22, 0x13, 0xFF, 0x13, 0x77, 0xC4, 0x30, 0x92, 0x02, + 0xA1, 0x05, 0xC4, 0x20, 0x92, 0x03, 0xA9, 0x05, 0x08, 0x00, 0xC4, 0xF0, 0x92, 0x02, 0xA1, 0x06, + 0xC4, 0x70, 0x92, 0x03, 0xA9, 0x06, 0x28, 0x00, 0x34, 0x62, 0xC6, 0x64, 0x34, 0x5A, 0x92, 0xEF, + 0x70, 0x71, 0xB9, 0x71, 0x8C, 0x00, 0x04, 0x72, 0x26, 0x71, 0x70, 0x77, 0x38, 0x21, 0x8C, 0x00, + 0xB9, 0x71, 0x94, 0x00, 0x04, 0x74, 0x26, 0x71, 0x70, 0x77, 0x38, 0x31, 0x94, 0x00, 0xB9, 0x71, + 0xA4, 0x00, 0x04, 0x76, 0x26, 0x71, 0x70, 0x77, 0x38, 0x41, 0xA4, 0x00, 0xB9, 0x71, 0xA8, 0x00, + 0x04, 0x78, 0x26, 0x71, 0x70, 0x77, 0x38, 0x51, 0xA8, 0x00, 0x06, 0x67, 0xB9, 0x71, 0xB8, 0x00, + 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x0C, 0x70, 0x28, 0x00, 0x26, 0x71, 0x70, 0x77, 0x06, 0x92, + 0xB9, 0x71, 0xBC, 0x00, 0x0C, 0x70, 0x2A, 0x00, 0x26, 0x71, 0x70, 0x77, 0x38, 0x21, 0xBC, 0x00, + 0xB9, 0x71, 0xC0, 0x00, 0x0C, 0x70, 0x2C, 0x00, 0x26, 0x71, 0x70, 0x77, 0x38, 0x31, 0xC0, 0x00, + 0xB9, 0x71, 0xCC, 0x00, 0x0C, 0x70, 0x2E, 0x00, 0x26, 0x71, 0x70, 0x77, 0x38, 0x41, 0xCC, 0x00, + 0xB9, 0x71, 0xD0, 0x00, 0x0C, 0x70, 0x30, 0x00, 0x26, 0x71, 0x70, 0x77, 0x38, 0x51, 0xD0, 0x00, + 0x06, 0x67, 0xB9, 0x71, 0xD4, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x04, 0x7A, 0x26, 0x71, + 0x70, 0x77, 0x06, 0xC2, 0xB9, 0x71, 0xD8, 0x00, 0x04, 0x7C, 0x26, 0x71, 0x70, 0x77, 0x38, 0x21, + 0xD8, 0x00, 0xB9, 0x71, 0xDC, 0x00, 0x04, 0x7E, 0x26, 0x71, 0x70, 0x77, 0x38, 0x31, 0xDC, 0x00, + 0xB9, 0x71, 0xE0, 0x00, 0x0C, 0x70, 0x10, 0x00, 0x26, 0x71, 0x70, 0x77, 0x38, 0x41, 0xE0, 0x00, + 0xB9, 0x71, 0xE4, 0x00, 0x0C, 0x70, 0x12, 0x00, 0x26, 0x71, 0x70, 0x77, 0x38, 0x51, 0xE4, 0x00, + 0x06, 0x67, 0xB9, 0x71, 0xE8, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x0C, 0x70, 0x14, 0x00, + 0x26, 0x71, 0x70, 0x77, 0xB9, 0x21, 0xEC, 0x00, 0x78, 0x41, 0x18, 0x00, 0xB9, 0x71, 0xF0, 0x00, + 0x0C, 0x70, 0x16, 0x00, 0x26, 0x71, 0x70, 0x77, 0x38, 0x21, 0xF0, 0x00, 0xB9, 0x71, 0xF4, 0x00, + 0x0C, 0x70, 0x1A, 0x00, 0x26, 0x71, 0x70, 0x77, 0x38, 0x31, 0xF4, 0x00, 0xB9, 0x71, 0xF8, 0x00, + 0x0C, 0x70, 0x1C, 0x00, 0x26, 0x71, 0x70, 0x77, 0x38, 0x51, 0xF8, 0x00, 0x06, 0x67, 0xB9, 0x71, + 0xFC, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x0C, 0x70, 0x20, 0x00, 0x26, 0x71, 0x70, 0x77, + 0x78, 0xD1, 0x1E, 0x00, 0xB9, 0x71, 0x00, 0x01, 0x0C, 0x70, 0x22, 0x00, 0x26, 0x71, 0x70, 0x77, + 0x38, 0x31, 0x00, 0x01, 0xB9, 0x71, 0x04, 0x01, 0x0C, 0x70, 0x24, 0x00, 0x26, 0x71, 0x70, 0x77, + 0x38, 0x41, 0x04, 0x01, 0xB9, 0x71, 0x08, 0x01, 0x0C, 0x70, 0x26, 0x00, 0x26, 0x71, 0x70, 0x77, + 0x38, 0x51, 0x08, 0x01, 0x06, 0xE2, 0x06, 0x67, 0x06, 0x2D, 0xB9, 0x71, 0x0C, 0x01, 0x0C, 0xF0, + 0xE0, 0x00, 0xF1, 0xF0, 0x38, 0x31, 0xEC, 0x00, 0x06, 0xB2, 0x06, 0x4E, 0x06, 0x29, 0x06, 0x5B, + 0x06, 0x6C, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x86, 0x82, 0x92, 0x06, 0x04, 0x7A, 0x04, 0x8A, + 0xA9, 0x71, 0x18, 0x00, 0x06, 0xE8, 0x06, 0x29, 0x38, 0x91, 0x98, 0x00, 0x20, 0x39, 0xEB, 0x8B, + 0x00, 0x00, 0x38, 0x71, 0x98, 0x00, 0x06, 0x92, 0x28, 0x37, 0x02, 0x00, 0x38, 0x21, 0xEC, 0x00, + 0xEB, 0x8B, 0x00, 0x00, 0x38, 0xF1, 0x98, 0x00, 0x06, 0x72, 0x28, 0x3F, 0x04, 0x00, 0xB9, 0x71, + 0x34, 0x01, 0x06, 0x2E, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x51, 0x98, 0x00, 0x06, 0x42, 0x28, 0x35, + 0x06, 0x00, 0xB9, 0x41, 0x30, 0x01, 0x06, 0x2B, 0xEB, 0x8B, 0x00, 0x00, 0x06, 0xE2, 0x06, 0x2C, + 0x38, 0xC1, 0x98, 0x00, 0x28, 0x3C, 0x08, 0x00, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x71, 0x34, 0x01, + 0x38, 0x41, 0x30, 0x01, 0x06, 0x37, 0x06, 0x62, 0x06, 0x5E, 0x06, 0x29, 0x0C, 0xF0, 0xE0, 0x00, + 0xF1, 0xF0, 0x06, 0x38, 0xEB, 0x93, 0x00, 0x00, 0x0C, 0xE0, 0x80, 0x08, 0x18, 0x7E, 0x04, 0x00, + 0x86, 0x22, 0xD7, 0x71, 0x26, 0x7E, 0x32, 0x02, 0x04, 0x20, 0xA9, 0x27, 0xE8, 0x00, 0x38, 0x31, + 0xD8, 0x00, 0x38, 0x41, 0xF0, 0x00, 0x38, 0x61, 0xBC, 0x00, 0x38, 0x21, 0x8C, 0x00, 0x06, 0x5D, + 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x8C, 0x00, 0x38, 0x31, 0xE8, 0x00, 0x38, 0x41, + 0xFC, 0x00, 0x38, 0x51, 0x0C, 0x01, 0x38, 0x61, 0xD4, 0x00, 0x38, 0x21, 0xB8, 0x00, 0x0C, 0xF0, + 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0xC2, 0x38, 0x31, 0xDC, 0x00, 0x38, 0x41, 0xF4, 0x00, 0x38, 0x51, + 0x00, 0x01, 0x38, 0x61, 0xC0, 0x00, 0x38, 0x21, 0x94, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, + 0x06, 0xB2, 0x38, 0x31, 0xE0, 0x00, 0x78, 0x41, 0x18, 0x00, 0x38, 0x51, 0x04, 0x01, 0x38, 0x61, + 0xCC, 0x00, 0x38, 0x21, 0xA4, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0xD2, 0x38, 0x31, + 0xE4, 0x00, 0x38, 0x41, 0xF8, 0x00, 0x38, 0x51, 0x08, 0x01, 0x38, 0x61, 0xD0, 0x00, 0x38, 0x21, + 0xA8, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0x92, 0x38, 0x21, 0x8C, 0x00, 0x06, 0x3B, + 0x06, 0x4D, 0x06, 0x59, 0x06, 0x6C, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x86, 0x82, 0x92, 0x06, + 0x04, 0x7A, 0x04, 0x8A, 0xA9, 0x71, 0x18, 0x00, 0x06, 0xD8, 0x38, 0x71, 0x9C, 0x00, 0x38, 0x21, + 0x8C, 0x00, 0x20, 0x37, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0xF1, 0x9C, 0x00, 0x06, 0x72, 0x28, 0x3F, + 0x02, 0x00, 0xB9, 0x71, 0x34, 0x01, 0x06, 0x2B, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x41, 0x9C, 0x00, + 0x06, 0xB2, 0x28, 0x34, 0x04, 0x00, 0x06, 0x2D, 0xEB, 0x8B, 0x00, 0x00, 0x06, 0x42, 0x06, 0x29, + 0x38, 0x91, 0x9C, 0x00, 0x28, 0x39, 0x06, 0x00, 0xB9, 0x41, 0x30, 0x01, 0xEB, 0x8B, 0x00, 0x00, + 0x28, 0x39, 0x08, 0x00, 0x06, 0xD2, 0x06, 0x2C, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x71, 0x34, 0x01, + 0x38, 0x41, 0x30, 0x01, 0x06, 0x62, 0x06, 0x3B, 0x06, 0x27, 0x06, 0x5D, 0x0C, 0xF0, 0xE0, 0x00, + 0xF1, 0xF0, 0x06, 0x38, 0xEB, 0x93, 0x00, 0x00, 0x18, 0x7E, 0x04, 0x00, 0x86, 0x22, 0x06, 0x67, + 0xD7, 0x61, 0x0C, 0xC0, 0x80, 0x08, 0x26, 0x6C, 0x32, 0x02, 0x04, 0x20, 0x24, 0x71, 0x13, 0x77, + 0xC4, 0x7A, 0xA9, 0x26, 0xE6, 0x00, 0x99, 0x7E, 0x04, 0x00, 0xC2, 0x07, 0x04, 0x7B, 0x0C, 0xF0, + 0x80, 0x08, 0x99, 0x7F, 0x04, 0x00, 0xF2, 0x1D, 0x38, 0x71, 0xA0, 0x00, 0x38, 0x91, 0x9C, 0x00, + 0x24, 0x71, 0xC4, 0x7D, 0x24, 0x92, 0xB9, 0x71, 0xA0, 0x00, 0xB9, 0x91, 0x9C, 0x00, 0x9A, 0x2A, + 0xFC, 0xFF, 0x38, 0x71, 0xB4, 0x00, 0x38, 0xC1, 0x98, 0x00, 0x24, 0x71, 0x43, 0x77, 0xCC, 0x70, + 0x12, 0x00, 0x24, 0xC2, 0xB9, 0x71, 0x90, 0x00, 0xB9, 0xC1, 0x98, 0x00, 0x9A, 0xFF, 0xFB, 0xFF, + 0x38, 0xE0, 0xE4, 0x10, 0x30, 0x7E, 0xDC, 0x70, 0x80, 0x00, 0x82, 0x68, 0x98, 0x7A, 0x04, 0x00, + 0x92, 0x17, 0xA8, 0x7A, 0x46, 0x01, 0x82, 0x0B, 0x18, 0x7A, 0x44, 0x01, 0x18, 0x6E, 0x41, 0x00, + 0xC6, 0x67, 0xC2, 0x05, 0x24, 0x71, 0x99, 0x7A, 0x44, 0x01, 0xF2, 0x58, 0xB9, 0x0A, 0x40, 0x01, + 0x99, 0x0A, 0x45, 0x01, 0x99, 0x0A, 0x44, 0x01, 0xA9, 0x0A, 0x46, 0x01, 0xF2, 0x4F, 0x18, 0xDA, + 0x45, 0x01, 0x18, 0x7E, 0x3E, 0x00, 0xC6, 0xD7, 0xB2, 0x11, 0x24, 0xD1, 0x13, 0xDD, 0x99, 0xDA, + 0x45, 0x01, 0x18, 0x7E, 0x3F, 0x00, 0xC6, 0x7D, 0xB2, 0x3F, 0x38, 0x7A, 0x40, 0x01, 0x28, 0x6A, + 0x0C, 0x00, 0x26, 0x76, 0xB9, 0x7A, 0x40, 0x01, 0xF2, 0x37, 0xC6, 0xD7, 0x92, 0x35, 0x38, 0x7A, + 0x40, 0x01, 0x28, 0x2A, 0x0C, 0x00, 0x26, 0x27, 0xB9, 0x2A, 0x40, 0x01, 0x18, 0x3E, 0x3F, 0x00, + 0x3F, 0x33, 0x0D, 0x00, 0x24, 0x31, 0xAB, 0x8F, 0x00, 0x00, 0xA9, 0x0A, 0x46, 0x01, 0x28, 0x7E, + 0x42, 0x00, 0xB9, 0x2A, 0x40, 0x01, 0x06, 0xC2, 0xC6, 0x27, 0xC2, 0x15, 0x38, 0x71, 0xB0, 0x00, + 0x18, 0x3E, 0x40, 0x00, 0x36, 0x27, 0xEB, 0x8B, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0xAB, 0x8F, + 0x00, 0x00, 0x23, 0x22, 0xA9, 0x2A, 0x46, 0x01, 0x28, 0x7E, 0x44, 0x00, 0xC6, 0x27, 0xC2, 0x03, + 0xA9, 0x7A, 0x46, 0x01, 0x18, 0x3E, 0x3F, 0x00, 0x06, 0x2C, 0x3F, 0x33, 0x0D, 0x00, 0xEB, 0x8B, + 0x00, 0x00, 0xB9, 0x2A, 0x40, 0x01, 0x99, 0x0A, 0x44, 0x01, 0x18, 0x8A, 0x04, 0x00, 0x68, 0x9A, + 0x89, 0x07, 0x04, 0xB0, 0x14, 0xE1, 0x06, 0xCB, 0xC6, 0xC8, 0x32, 0x4D, 0x06, 0xDC, 0xD7, 0xD1, + 0x26, 0xDA, 0x78, 0x2D, 0xE6, 0x00, 0x04, 0x3A, 0xEB, 0x93, 0x00, 0x00, 0x06, 0x42, 0xA9, 0x2D, + 0xE6, 0x00, 0x78, 0x2D, 0xE8, 0x00, 0xB9, 0x41, 0x30, 0x01, 0x04, 0x3A, 0xEB, 0x93, 0x00, 0x00, + 0x38, 0x41, 0x30, 0x01, 0x18, 0x3D, 0xE4, 0x00, 0x43, 0x22, 0xA9, 0x2D, 0xE8, 0x00, 0x43, 0x44, + 0x0C, 0x70, 0xA6, 0x0F, 0x04, 0x60, 0x78, 0x57, 0x04, 0x00, 0xC6, 0x54, 0x12, 0x12, 0x78, 0x57, + 0x06, 0x00, 0xC6, 0x54, 0x22, 0x0E, 0x70, 0x57, 0xC6, 0x52, 0x12, 0x0B, 0x78, 0x57, 0x02, 0x00, + 0xC6, 0x52, 0x22, 0x07, 0x0C, 0x50, 0xE5, 0x00, 0x26, 0x5D, 0x10, 0x55, 0xB9, 0x51, 0x90, 0x00, + 0x38, 0x51, 0x90, 0x00, 0x06, 0xF5, 0x26, 0x55, 0x26, 0x5F, 0x57, 0x51, 0x26, 0x5F, 0x26, 0x53, + 0x26, 0x55, 0x0C, 0xF0, 0x80, 0x02, 0x26, 0x5F, 0x70, 0x55, 0xC6, 0xB5, 0x32, 0x04, 0x33, 0x96, + 0x06, 0xB5, 0x06, 0xEC, 0x24, 0x61, 0x43, 0x66, 0xC4, 0x62, 0x24, 0x78, 0x92, 0xD5, 0x24, 0xC1, + 0x43, 0xCC, 0xF2, 0xB3, 0x98, 0x7A, 0x05, 0x00, 0xB9, 0xE1, 0x90, 0x00, 0xB9, 0xB1, 0x88, 0x00, + 0x99, 0x9A, 0x89, 0x07, 0x92, 0x23, 0xC4, 0x81, 0xC2, 0x21, 0x98, 0x7A, 0x02, 0x04, 0x92, 0x1E, + 0xB8, 0x71, 0xC4, 0x00, 0x82, 0x1B, 0x34, 0x71, 0xD7, 0x71, 0x26, 0x7A, 0x78, 0x57, 0xE6, 0x00, + 0x78, 0x67, 0xE8, 0x00, 0x0C, 0x40, 0x3E, 0x01, 0x0C, 0x70, 0x66, 0x09, 0x26, 0x4A, 0xC6, 0x74, + 0x82, 0x06, 0xA1, 0x07, 0xA9, 0x07, 0x02, 0x00, 0x24, 0x78, 0xF2, 0xFA, 0x04, 0x71, 0x99, 0x7A, + 0x04, 0x00, 0xA9, 0x5A, 0xE6, 0x00, 0xA9, 0x6A, 0xE8, 0x00, 0x28, 0x5A, 0x06, 0x00, 0x04, 0x71, + 0xD6, 0x75, 0x82, 0x1B, 0x18, 0x5A, 0x04, 0x00, 0xC4, 0x51, 0xC2, 0x39, 0xC4, 0xE0, 0x22, 0x37, + 0xC6, 0xE5, 0x32, 0x0E, 0x06, 0x4E, 0x24, 0xE1, 0x06, 0x7E, 0xD7, 0x71, 0x26, 0x7A, 0x48, 0x67, + 0xE4, 0x00, 0xD7, 0x41, 0x26, 0x4A, 0xC9, 0x64, 0xE4, 0x00, 0x43, 0xEE, 0xF2, 0xF2, 0x06, 0x75, + 0x34, 0x71, 0x99, 0x7A, 0x04, 0x00, 0xF2, 0x23, 0x04, 0x72, 0xD6, 0x75, 0x82, 0x20, 0x18, 0x4A, + 0x04, 0x00, 0xC4, 0x41, 0xC2, 0x1C, 0xC4, 0xE0, 0x22, 0x1A, 0xC6, 0xE4, 0x32, 0x0E, 0x06, 0x3E, + 0x24, 0xE1, 0x06, 0x7E, 0xD7, 0x71, 0x26, 0x7A, 0x48, 0x67, 0xE4, 0x00, 0xD7, 0x31, 0x26, 0x3A, + 0xC9, 0x63, 0xE4, 0x00, 0x43, 0xEE, 0xF2, 0xF2, 0x06, 0x74, 0x34, 0x71, 0x99, 0x7A, 0x04, 0x00, + 0x14, 0xF3, 0x06, 0x75, 0x56, 0x7F, 0x64, 0x71, 0xA9, 0x7A, 0x06, 0x00, 0x18, 0x7A, 0x04, 0x00, + 0xC4, 0x71, 0xCA, 0x48, 0x01, 0x00, 0x18, 0x7A, 0x6D, 0x02, 0x0C, 0x90, 0x00, 0x19, 0xC4, 0x70, + 0x82, 0x03, 0x0C, 0x90, 0xA0, 0x28, 0x0C, 0x20, 0x58, 0x00, 0x26, 0x21, 0x04, 0x30, 0x0C, 0x40, + 0x16, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x18, 0xCA, 0x04, 0x00, 0x04, 0xB0, 0x06, 0xEB, + 0xC6, 0xEC, 0x32, 0x47, 0x06, 0x7E, 0xD7, 0x71, 0x2F, 0x67, 0x0A, 0x00, 0x2F, 0x7E, 0x0E, 0x00, + 0x2C, 0x60, 0xE4, 0x00, 0x06, 0xDE, 0x26, 0x71, 0xC6, 0xDC, 0x32, 0x38, 0x06, 0x5D, 0xD7, 0x51, + 0x26, 0x5A, 0x78, 0x86, 0x02, 0x00, 0x78, 0x45, 0xE6, 0x00, 0x36, 0x84, 0xC4, 0x80, 0x32, 0x02, + 0x16, 0x88, 0x78, 0x26, 0x04, 0x00, 0x78, 0x55, 0xE8, 0x00, 0x36, 0x25, 0xC4, 0x20, 0x32, 0x02, + 0x16, 0x22, 0x06, 0x32, 0xB9, 0x61, 0x2C, 0x01, 0xB9, 0x71, 0x34, 0x01, 0xEB, 0x8B, 0x00, 0x00, + 0x06, 0x52, 0x06, 0x38, 0x06, 0x28, 0xB9, 0x51, 0x28, 0x01, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x51, + 0x28, 0x01, 0x38, 0x61, 0x2C, 0x01, 0x38, 0x71, 0x34, 0x01, 0x26, 0x25, 0xC6, 0x92, 0xC2, 0x0B, + 0x28, 0x47, 0x58, 0x00, 0x04, 0x51, 0x53, 0x5D, 0xC6, 0xED, 0x66, 0x54, 0xA9, 0x57, 0x58, 0x00, + 0x82, 0x02, 0x04, 0xB1, 0x24, 0xD1, 0x43, 0xDD, 0xF2, 0xC8, 0x24, 0xE1, 0x43, 0xEE, 0xF2, 0xB9, + 0xC4, 0xB1, 0x92, 0x04, 0x99, 0xBA, 0x6D, 0x02, 0xF2, 0x03, 0x99, 0x0A, 0x6D, 0x02, 0x14, 0x71, + 0x26, 0x7C, 0x43, 0x77, 0x14, 0x21, 0xC6, 0x72, 0x82, 0x23, 0x2F, 0x57, 0x07, 0x00, 0x26, 0x51, + 0xA8, 0x65, 0x58, 0x00, 0x82, 0x1A, 0x04, 0x61, 0x26, 0x67, 0x43, 0x66, 0x06, 0x45, 0xC6, 0x6C, + 0x32, 0x14, 0x28, 0x34, 0x58, 0x00, 0x06, 0x53, 0x63, 0x56, 0xD4, 0x51, 0x82, 0x0B, 0x2F, 0x56, + 0x06, 0x00, 0x26, 0x51, 0x28, 0xF5, 0x58, 0x00, 0x66, 0x3F, 0xA9, 0x34, 0x58, 0x00, 0xA9, 0x05, + 0x58, 0x00, 0x24, 0x61, 0x43, 0x66, 0xF2, 0xEC, 0x34, 0x71, 0x43, 0x77, 0xF2, 0xDD, 0x04, 0xC0, + 0x06, 0xDC, 0x18, 0xEA, 0x04, 0x00, 0xC6, 0xDE, 0x3A, 0x8D, 0x00, 0x00, 0x2F, 0x6D, 0x0D, 0x00, + 0x26, 0x61, 0xA8, 0x76, 0x58, 0x00, 0x04, 0x81, 0x26, 0x8D, 0x8A, 0x81, 0x00, 0x00, 0x0C, 0x40, + 0x80, 0x08, 0xD7, 0xD1, 0x26, 0xD4, 0x18, 0x7D, 0xE5, 0x00, 0x38, 0x91, 0xAC, 0x00, 0x78, 0x3D, + 0xE6, 0x00, 0x2F, 0x57, 0x07, 0x00, 0x26, 0x57, 0x57, 0x51, 0x26, 0x75, 0x18, 0x5D, 0xE4, 0x00, + 0x26, 0x75, 0x26, 0x77, 0x26, 0x79, 0x70, 0xE7, 0xB9, 0x61, 0x2C, 0x01, 0x06, 0x2E, 0xEB, 0x8B, + 0x00, 0x00, 0x78, 0x3D, 0xE8, 0x00, 0x06, 0x92, 0x06, 0x2E, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x61, + 0x2C, 0x01, 0x06, 0xB2, 0x43, 0x78, 0xB9, 0x61, 0x8C, 0x00, 0x18, 0x6A, 0x04, 0x00, 0xC6, 0x76, + 0x32, 0x45, 0x38, 0x51, 0x8C, 0x00, 0x28, 0x65, 0x58, 0x00, 0x63, 0x67, 0xD4, 0x61, 0x82, 0x3B, + 0x06, 0x67, 0x0C, 0xF0, 0x80, 0x08, 0xD7, 0x61, 0x26, 0x6F, 0x18, 0x56, 0xE5, 0x00, 0x0C, 0x40, + 0xE4, 0x00, 0x2F, 0x35, 0x05, 0x00, 0x26, 0x35, 0x57, 0x31, 0x26, 0x53, 0x18, 0x36, 0xE4, 0x00, + 0x26, 0x46, 0x26, 0x53, 0x38, 0x31, 0xAC, 0x00, 0x26, 0x55, 0x26, 0x53, 0x70, 0x55, 0x78, 0x36, + 0xE6, 0x00, 0xB9, 0x71, 0x34, 0x01, 0x26, 0xE5, 0x06, 0x25, 0xB9, 0x41, 0x30, 0x01, 0xB9, 0x51, + 0x28, 0x01, 0xB9, 0x61, 0x2C, 0x01, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x61, 0x2C, 0x01, 0x38, 0x51, + 0x28, 0x01, 0x78, 0x36, 0xE8, 0x00, 0x26, 0x92, 0x06, 0x25, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x41, + 0x30, 0x01, 0x26, 0xB2, 0x04, 0x30, 0x06, 0x24, 0x04, 0x48, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x38, 0x71, 0x34, 0x01, 0x24, 0x71, 0x43, 0x77, 0xF2, 0xB9, 0xC4, 0xE0, 0x92, 0x02, 0x04, 0xE1, + 0x06, 0x3E, 0x06, 0x29, 0xAB, 0x8F, 0x00, 0x00, 0xA9, 0x2D, 0xE6, 0x00, 0x06, 0x3E, 0x06, 0x2B, + 0x24, 0xC1, 0xAB, 0x8F, 0x00, 0x00, 0x23, 0xCC, 0xA9, 0x2D, 0xE8, 0x00, 0x43, 0xD8, 0xFA, 0x72, + 0xFF, 0xFF, 0x34, 0xE1, 0x43, 0xEE, 0x14, 0xD1, 0x06, 0xBA, 0xC6, 0xED, 0x82, 0x1C, 0x06, 0x7E, + 0xD7, 0x71, 0x26, 0x7A, 0xF8, 0x67, 0xE6, 0x00, 0x0C, 0x20, 0xE4, 0x00, 0x26, 0x27, 0x92, 0x10, + 0xF8, 0x77, 0xE8, 0x00, 0x92, 0x0D, 0xC4, 0xE9, 0x12, 0x0B, 0x04, 0x31, 0x26, 0x3E, 0xD7, 0x31, + 0x26, 0x3B, 0x2C, 0x30, 0xE4, 0x00, 0x04, 0x48, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x34, 0xE1, + 0x43, 0xEE, 0xF2, 0xE4, 0x18, 0x7A, 0x04, 0x00, 0xC6, 0x7C, 0xA2, 0x06, 0x99, 0xCA, 0x04, 0x00, + 0xF2, 0x03, 0x99, 0x0A, 0x6D, 0x02, 0x98, 0x7A, 0x86, 0x07, 0x92, 0x08, 0x28, 0x7A, 0x06, 0x00, + 0xD4, 0x72, 0x82, 0x13, 0xB8, 0x61, 0x90, 0x00, 0x32, 0x10, 0x38, 0x60, 0xE4, 0x10, 0x18, 0x7A, + 0x87, 0x07, 0x99, 0x0A, 0x04, 0x00, 0x18, 0x66, 0xB8, 0x00, 0xC6, 0x67, 0xD2, 0x03, 0x99, 0x0A, + 0x86, 0x07, 0x24, 0x71, 0x99, 0x7A, 0x87, 0x07, 0x18, 0x7A, 0x04, 0x00, 0x99, 0x7A, 0x05, 0x00, + 0x99, 0x7A, 0x1A, 0x00, 0x58, 0xC1, 0x48, 0x01, 0x58, 0x81, 0x38, 0x01, 0x2C, 0x10, 0x58, 0x01, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x28, 0xE0, 0xC6, 0x09, 0x98, 0x70, + 0xFB, 0x10, 0x82, 0x04, 0x2C, 0xE0, 0xFA, 0x00, 0xF2, 0x06, 0x38, 0x70, 0xE4, 0x10, 0x28, 0x77, + 0x1E, 0x00, 0x26, 0xE7, 0x08, 0x70, 0x00, 0x40, 0x38, 0x27, 0xE4, 0x70, 0x04, 0x3D, 0x13, 0x22, + 0xEB, 0x97, 0x00, 0x00, 0xA3, 0x22, 0x82, 0x03, 0xC4, 0x2C, 0x92, 0x03, 0x2C, 0xE0, 0x64, 0x00, + 0x2B, 0xB2, 0x00, 0x00, 0x06, 0xD2, 0xCB, 0x76, 0x03, 0x00, 0xC6, 0xDE, 0x04, 0x21, 0xB2, 0x02, + 0x04, 0x20, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x24, 0x00, + 0xD9, 0xC1, 0x14, 0x00, 0x38, 0xE0, 0xE4, 0x10, 0xD9, 0x81, 0x04, 0x00, 0x06, 0xC2, 0x04, 0x30, + 0x06, 0x2D, 0x0C, 0x20, 0x0A, 0x09, 0x0C, 0x40, 0x54, 0x00, 0x0C, 0x90, 0x80, 0x08, 0x0C, 0x80, + 0xA0, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0xD0, 0x0A, 0x09, 0x26, 0x89, 0x06, 0xBC, + 0x30, 0x3B, 0x18, 0x2E, 0x0B, 0x00, 0xEB, 0x8B, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0xAB, 0x8F, + 0x00, 0x00, 0x06, 0xA2, 0x38, 0x3B, 0xA0, 0x00, 0x18, 0x2E, 0x0C, 0x00, 0xEB, 0x8B, 0x00, 0x00, + 0x0C, 0x30, 0x64, 0x00, 0xAB, 0x8F, 0x00, 0x00, 0x06, 0x62, 0x0C, 0x30, 0x11, 0x00, 0x06, 0x2A, + 0xB1, 0x61, 0xEB, 0x93, 0x00, 0x00, 0x28, 0x7E, 0x14, 0x00, 0x30, 0x61, 0xC6, 0x27, 0x06, 0xA2, + 0x02, 0x02, 0x06, 0xA7, 0x06, 0x26, 0x0C, 0x30, 0x11, 0x00, 0xEB, 0x93, 0x00, 0x00, 0x28, 0x7E, + 0x16, 0x00, 0xC6, 0x27, 0x02, 0x02, 0x06, 0x27, 0x18, 0x3E, 0x0E, 0x00, 0x3F, 0x22, 0x0A, 0x00, + 0xEB, 0x8B, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0xEB, 0x93, 0x00, 0x00, 0xA1, 0x2D, 0x24, 0xD2, + 0xC6, 0xD8, 0x24, 0xB4, 0x92, 0xC6, 0x06, 0xB9, 0x0C, 0xD0, 0x32, 0x09, 0x2C, 0xB0, 0xD4, 0x00, + 0x38, 0x3C, 0x50, 0x00, 0x18, 0x2E, 0x09, 0x00, 0xEB, 0x8B, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, + 0xAB, 0x8F, 0x00, 0x00, 0x06, 0xA2, 0x38, 0x3C, 0xF0, 0x00, 0x18, 0x2E, 0x0A, 0x00, 0xEB, 0x8B, + 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0xAB, 0x8F, 0x00, 0x00, 0x06, 0x92, 0x04, 0x3B, 0x06, 0x2A, + 0xEB, 0x93, 0x00, 0x00, 0x28, 0x7E, 0x10, 0x00, 0x06, 0xA2, 0xC6, 0x27, 0x02, 0x02, 0x06, 0xA7, + 0x06, 0x29, 0x04, 0x3B, 0xEB, 0x93, 0x00, 0x00, 0x28, 0x7E, 0x12, 0x00, 0xC6, 0x27, 0x02, 0x02, + 0x06, 0x27, 0x18, 0x3E, 0x0D, 0x00, 0x3F, 0x22, 0x0A, 0x00, 0xEB, 0x8B, 0x00, 0x00, 0x0C, 0x30, + 0x64, 0x00, 0xEB, 0x93, 0x00, 0x00, 0xA1, 0x2D, 0x24, 0xD2, 0xC6, 0xDB, 0x24, 0xC4, 0x92, 0xC9, + 0x58, 0xC1, 0x14, 0x00, 0x58, 0x81, 0x04, 0x00, 0x2C, 0x10, 0x24, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0xBC, 0x01, 0xD9, 0xC1, 0xAC, 0x01, 0x38, 0xC0, 0xE4, 0x10, 0xD9, 0x81, 0x9C, 0x01, + 0x0C, 0xD0, 0x80, 0x08, 0x18, 0x7C, 0xAC, 0x00, 0x18, 0x6D, 0xDE, 0x00, 0xC6, 0x67, 0x28, 0x7D, + 0x06, 0x00, 0xA2, 0x09, 0x6C, 0x70, 0x00, 0x01, 0xA9, 0x7D, 0x06, 0x00, 0x04, 0x61, 0x99, 0x60, + 0x0B, 0x11, 0xF2, 0x06, 0x1C, 0x30, 0x01, 0x01, 0x56, 0x73, 0xA9, 0x7D, 0x06, 0x00, 0x98, 0x70, + 0xFB, 0x10, 0xA9, 0x0D, 0x66, 0x02, 0xA9, 0x0D, 0x68, 0x02, 0xA9, 0x0D, 0x6A, 0x02, 0x92, 0x0E, + 0x0C, 0x50, 0x30, 0x00, 0x0C, 0x60, 0x2E, 0x00, 0x26, 0x5C, 0x26, 0x6C, 0x70, 0x55, 0x20, 0x66, + 0xB9, 0x51, 0x74, 0x01, 0xB9, 0x61, 0x60, 0x01, 0xF2, 0x08, 0x0C, 0x70, 0x90, 0x01, 0x04, 0x90, + 0xB9, 0x71, 0x60, 0x01, 0xB9, 0x91, 0x74, 0x01, 0x06, 0x21, 0x0C, 0x30, 0x48, 0x01, 0x0C, 0xF0, + 0x54, 0x01, 0xF1, 0xF0, 0x06, 0x76, 0x0C, 0x70, 0xE8, 0x10, 0x20, 0x67, 0xB9, 0x01, 0x54, 0x01, + 0x04, 0x52, 0x26, 0x57, 0x20, 0x55, 0xB9, 0x61, 0x8C, 0x01, 0x06, 0x96, 0x0C, 0x90, 0x08, 0x11, + 0x10, 0x69, 0xB9, 0x51, 0x90, 0x01, 0x0C, 0x50, 0x7C, 0x02, 0x26, 0x5D, 0x20, 0x55, 0xB9, 0x61, + 0x88, 0x01, 0x38, 0x61, 0x40, 0x01, 0x38, 0x91, 0x44, 0x01, 0xB9, 0x51, 0x6C, 0x01, 0xB9, 0x61, + 0x80, 0x01, 0x0C, 0x50, 0x50, 0x00, 0x04, 0x60, 0xB9, 0x01, 0x50, 0x01, 0xB9, 0x01, 0x4C, 0x01, + 0xB9, 0x01, 0x48, 0x01, 0x06, 0x20, 0xB9, 0x01, 0x68, 0x01, 0xB9, 0x01, 0x70, 0x01, 0xB9, 0x91, + 0x7C, 0x01, 0x26, 0x51, 0xB9, 0x61, 0x58, 0x01, 0xB9, 0x61, 0x84, 0x01, 0xB9, 0x61, 0x64, 0x01, + 0x06, 0xB6, 0x06, 0x86, 0x2F, 0x38, 0x08, 0x00, 0x0C, 0x70, 0x80, 0x04, 0x26, 0x73, 0x0C, 0x90, + 0x80, 0x02, 0x06, 0xE1, 0xB9, 0x71, 0x94, 0x01, 0xB9, 0x81, 0x5C, 0x01, 0x26, 0x39, 0x04, 0x40, + 0x0C, 0xA0, 0x80, 0x02, 0x20, 0x93, 0x0C, 0xF0, 0xFF, 0x0F, 0x56, 0xF9, 0x38, 0x91, 0x94, 0x01, + 0xB9, 0xF1, 0x98, 0x01, 0x2F, 0x74, 0x04, 0x00, 0x26, 0x79, 0x20, 0x77, 0x38, 0x91, 0x8C, 0x01, + 0x0C, 0xF0, 0xFF, 0x0F, 0x56, 0xF7, 0x38, 0x71, 0x98, 0x01, 0xB9, 0xF1, 0x78, 0x01, 0x36, 0x7F, + 0x38, 0xF1, 0x5C, 0x01, 0xC6, 0x9F, 0x82, 0x0C, 0x38, 0x91, 0x90, 0x01, 0xC6, 0x9F, 0x82, 0x08, + 0xC4, 0x4A, 0x1A, 0x26, 0x01, 0x00, 0xCC, 0x60, 0x11, 0x00, 0x8A, 0x22, 0x01, 0x00, 0xC4, 0x70, + 0xA1, 0x73, 0x22, 0x34, 0x30, 0xFE, 0xC6, 0x7B, 0x26, 0xF7, 0xB1, 0xFE, 0x30, 0xF5, 0x26, 0xF7, + 0xB1, 0xF5, 0x02, 0x06, 0xB9, 0x61, 0x84, 0x01, 0xB9, 0x41, 0x64, 0x01, 0x06, 0xB7, 0x28, 0xFC, + 0x64, 0x00, 0xC6, 0x7F, 0x02, 0x0F, 0x28, 0xFD, 0x66, 0x02, 0x24, 0xF1, 0xA9, 0xFD, 0x66, 0x02, + 0x28, 0xFC, 0x66, 0x00, 0xC6, 0x7F, 0x02, 0x06, 0x28, 0xFD, 0x6A, 0x02, 0x24, 0xF1, 0xA9, 0xFD, + 0x6A, 0x02, 0xB8, 0xF1, 0x88, 0x01, 0x82, 0x05, 0xA9, 0x0D, 0x66, 0x02, 0xA9, 0x0D, 0x6A, 0x02, + 0x28, 0xFC, 0xAA, 0x00, 0xC6, 0x7F, 0x02, 0x0A, 0x26, 0xFF, 0xC6, 0x7F, 0x24, 0x21, 0x02, 0x06, + 0x38, 0x71, 0x68, 0x01, 0x24, 0x71, 0xB9, 0x71, 0x68, 0x01, 0x38, 0x91, 0x78, 0x01, 0x38, 0xF1, + 0x98, 0x01, 0x36, 0x9F, 0xC4, 0x90, 0x02, 0x2E, 0x38, 0x7E, 0xA0, 0x00, 0x26, 0x79, 0xB9, 0x7E, + 0xA0, 0x00, 0x38, 0x75, 0xA0, 0x00, 0x26, 0x79, 0xB9, 0x75, 0xA0, 0x00, 0x28, 0x7C, 0x68, 0x00, + 0xC6, 0x97, 0x02, 0x06, 0x28, 0x7D, 0x68, 0x02, 0x24, 0x71, 0xA9, 0x7D, 0x68, 0x02, 0x28, 0x7C, + 0xAA, 0x00, 0xC6, 0x97, 0x02, 0x0E, 0x26, 0x77, 0x38, 0xF1, 0x58, 0x01, 0xC6, 0x97, 0x24, 0xF1, + 0x02, 0x06, 0x38, 0x71, 0x70, 0x01, 0x24, 0x71, 0xB9, 0x71, 0x70, 0x01, 0xB9, 0xF1, 0x58, 0x01, + 0xCC, 0x90, 0xC8, 0x00, 0x02, 0x07, 0x38, 0x71, 0x6C, 0x01, 0x24, 0x71, 0x23, 0x77, 0xB9, 0x71, + 0x6C, 0x01, 0x38, 0x91, 0x5C, 0x01, 0x24, 0x41, 0xC4, 0x4D, 0x24, 0x91, 0xB9, 0x91, 0x5C, 0x01, + 0x24, 0x32, 0x24, 0xE4, 0x9A, 0x68, 0xFF, 0xFF, 0x24, 0x8D, 0x30, 0x45, 0x38, 0x75, 0xA0, 0x00, + 0x38, 0xF1, 0x80, 0x01, 0x38, 0x31, 0x7C, 0x01, 0xCC, 0x80, 0xEA, 0x00, 0x26, 0x4F, 0x26, 0x73, + 0x24, 0x61, 0x24, 0x54, 0x82, 0x07, 0xB9, 0x41, 0x80, 0x01, 0xB9, 0x71, 0x7C, 0x01, 0xFA, 0x43, + 0xFF, 0xFF, 0x38, 0x31, 0x58, 0x01, 0x38, 0xF1, 0x68, 0x01, 0x38, 0x51, 0x70, 0x01, 0x38, 0x61, + 0x6C, 0x01, 0xB9, 0x31, 0x48, 0x01, 0xB9, 0x21, 0x50, 0x01, 0xB9, 0xF1, 0x54, 0x01, 0xB9, 0x51, + 0x4C, 0x01, 0xA9, 0x6D, 0x7C, 0x02, 0xB9, 0x41, 0x40, 0x01, 0xB9, 0x71, 0x44, 0x01, 0xCB, 0x76, + 0x03, 0x00, 0xE8, 0x3D, 0x89, 0x07, 0x22, 0x33, 0x28, 0x60, 0xE8, 0x10, 0x28, 0x2C, 0xBA, 0x00, + 0x26, 0x66, 0x2F, 0x76, 0x0A, 0x00, 0x70, 0x47, 0x04, 0x51, 0xC6, 0x42, 0x12, 0x02, 0x04, 0x50, + 0x04, 0x70, 0xC6, 0x47, 0x13, 0x55, 0x02, 0x02, 0x23, 0x74, 0x0C, 0x90, 0xE8, 0x10, 0x28, 0x49, + 0x02, 0x00, 0x26, 0x44, 0x26, 0x4A, 0x70, 0x44, 0xC6, 0x42, 0x02, 0x03, 0x24, 0x51, 0x13, 0x55, + 0xC6, 0x74, 0x32, 0x02, 0x23, 0x74, 0xC4, 0x50, 0x82, 0x12, 0xC4, 0x30, 0x26, 0x6A, 0x92, 0x03, + 0xA1, 0x76, 0xF2, 0x02, 0xA1, 0x06, 0x0C, 0xF0, 0xE8, 0x10, 0x28, 0x6F, 0x02, 0x00, 0xC4, 0x31, + 0x26, 0x66, 0x26, 0xA6, 0x92, 0x03, 0xA1, 0x7A, 0xF2, 0x02, 0xA1, 0x0A, 0x30, 0x7C, 0x28, 0xEC, + 0x2C, 0x00, 0xD4, 0x71, 0xA9, 0xED, 0x0E, 0x00, 0x82, 0x1C, 0x38, 0x31, 0x40, 0x01, 0x38, 0x21, + 0x60, 0x01, 0xEB, 0x8B, 0x00, 0x00, 0x0C, 0x30, 0x68, 0x5B, 0xAB, 0x8F, 0x00, 0x00, 0x06, 0xC2, + 0x38, 0x31, 0x60, 0x01, 0x38, 0x21, 0x74, 0x01, 0xEB, 0x8B, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, + 0xEB, 0x93, 0x00, 0x00, 0x43, 0x22, 0x26, 0x2C, 0xC6, 0x2E, 0xB2, 0x03, 0xA9, 0x2D, 0x0E, 0x00, + 0x06, 0x21, 0x6B, 0x92, 0x02, 0x00, 0xC4, 0xB0, 0x82, 0x14, 0x38, 0x71, 0x64, 0x01, 0x26, 0x77, + 0x26, 0x7D, 0x78, 0x67, 0x8A, 0x00, 0x38, 0x71, 0x84, 0x01, 0x2C, 0x70, 0x14, 0x00, 0x26, 0x77, + 0x26, 0x7D, 0x78, 0x77, 0x8A, 0x00, 0x26, 0x76, 0x36, 0xB7, 0xC4, 0xB0, 0x32, 0x02, 0x04, 0xB0, + 0x0C, 0x30, 0x48, 0x01, 0x06, 0x21, 0x26, 0x31, 0xA9, 0xBD, 0xDA, 0x00, 0x4B, 0xC0, 0x02, 0x00, + 0x58, 0xC1, 0xAC, 0x01, 0x58, 0x81, 0x9C, 0x01, 0x2C, 0x10, 0xBC, 0x01, 0xE1, 0xF0, 0x04, 0xF0, + 0xC6, 0x7F, 0x02, 0x02, 0x43, 0xF7, 0xA1, 0xF3, 0xFA, 0x45, 0xFF, 0xFF, 0x3C, 0x10, 0x14, 0x00, + 0xD9, 0xC1, 0x04, 0x00, 0xB1, 0xB1, 0x0C, 0xF0, 0x54, 0x09, 0x0C, 0x30, 0x52, 0x04, 0x0C, 0x50, + 0x11, 0x00, 0x14, 0xD1, 0x06, 0x2E, 0x0C, 0x20, 0x22, 0x09, 0x06, 0x73, 0x04, 0x6C, 0xC4, 0x6A, + 0x12, 0x0B, 0xCC, 0x50, 0x11, 0x00, 0x82, 0x08, 0x70, 0xB2, 0x70, 0x4F, 0x70, 0xC7, 0x26, 0x4B, + 0x3F, 0x44, 0x0C, 0x00, 0xF2, 0x02, 0x70, 0x47, 0xC4, 0x40, 0x12, 0x03, 0xA1, 0x07, 0xF2, 0x02, + 0xA1, 0x47, 0x34, 0x61, 0xC6, 0x6D, 0x34, 0x72, 0x34, 0x22, 0x92, 0xEA, 0x34, 0x51, 0xC6, 0x56, + 0x34, 0xF2, 0x3C, 0x30, 0x1A, 0x00, 0x92, 0xDF, 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, + 0x14, 0x00, 0xE1, 0xF0, 0xC4, 0x20, 0x0C, 0x70, 0x80, 0x08, 0x28, 0x37, 0x06, 0x00, 0x82, 0x15, + 0x64, 0x38, 0xA9, 0x37, 0x06, 0x00, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x1C, 0x7B, 0xB9, 0x70, + 0xE4, 0x10, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0xC4, 0x79, 0xB9, 0x70, 0xE0, 0x10, 0x08, 0x70, + 0x00, 0x80, 0x2C, 0x70, 0x2C, 0x79, 0xF2, 0x15, 0x14, 0x29, 0x56, 0x32, 0xA9, 0x37, 0x06, 0x00, + 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x5C, 0x7A, 0xB9, 0x70, 0xE4, 0x10, 0x08, 0x70, 0x00, 0x80, + 0x2C, 0x70, 0x10, 0x7A, 0xB9, 0x70, 0xE0, 0x10, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x78, 0x79, + 0xB9, 0x70, 0xDC, 0x10, 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x70, 0x80, 0x08, 0x99, 0x07, 0xE1, 0x00, + 0x99, 0x07, 0xE0, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xC2, + 0x38, 0x22, 0x44, 0x01, 0x06, 0xE3, 0x0C, 0x30, 0xBB, 0x00, 0x38, 0xD0, 0xE4, 0x10, 0xAB, 0x8F, + 0x00, 0x00, 0x0C, 0x70, 0x80, 0x08, 0xB9, 0x2C, 0x44, 0x01, 0x06, 0x32, 0x28, 0x27, 0x06, 0x00, + 0x30, 0x5E, 0x38, 0x4E, 0x08, 0x00, 0x38, 0xFE, 0x04, 0x00, 0x04, 0x68, 0x56, 0x62, 0xA3, 0xC6, + 0x5C, 0x20, 0x80, 0x00, 0x82, 0x18, 0x26, 0x44, 0xC6, 0x54, 0x04, 0x61, 0x12, 0x06, 0xCC, 0x30, + 0xFA, 0x00, 0xD2, 0x02, 0x04, 0x60, 0x13, 0x66, 0xCC, 0xF0, 0x23, 0x00, 0x02, 0x07, 0x38, 0x4E, + 0x0C, 0x00, 0xCC, 0x40, 0x22, 0x00, 0x12, 0x02, 0x04, 0x61, 0xC4, 0x20, 0x82, 0x1D, 0xCC, 0x50, + 0x14, 0x00, 0xF2, 0x18, 0xCC, 0x30, 0x96, 0x00, 0x04, 0x61, 0xD2, 0x02, 0x06, 0x6C, 0xC6, 0x54, + 0x13, 0x66, 0x02, 0x04, 0xC4, 0x58, 0x02, 0x02, 0x04, 0x61, 0xCC, 0xF0, 0x14, 0x00, 0x02, 0x07, + 0x38, 0x4E, 0x0C, 0x00, 0xCC, 0x40, 0x13, 0x00, 0x12, 0x02, 0x04, 0x61, 0xC4, 0x20, 0x82, 0x04, + 0xC4, 0x5A, 0x02, 0x02, 0x04, 0x61, 0x98, 0x57, 0xE0, 0x00, 0x92, 0x04, 0x98, 0x57, 0xE2, 0x00, + 0x82, 0x08, 0x18, 0x57, 0xE1, 0x00, 0xCC, 0x50, 0xFF, 0x00, 0x82, 0x09, 0x24, 0x51, 0xF2, 0x05, + 0x98, 0x57, 0xE1, 0x00, 0x82, 0x04, 0x34, 0x51, 0x99, 0x57, 0xE1, 0x00, 0x18, 0x57, 0xE1, 0x00, + 0x18, 0x4D, 0xB0, 0x00, 0xC6, 0x45, 0xA2, 0x02, 0x04, 0x60, 0x98, 0x40, 0x08, 0x11, 0x92, 0x12, + 0xC4, 0x60, 0x82, 0x10, 0x18, 0x67, 0xDE, 0x00, 0xCC, 0x60, 0xFF, 0x00, 0x82, 0x04, 0x24, 0x61, + 0x99, 0x67, 0xDE, 0x00, 0x98, 0x67, 0xDF, 0x00, 0x82, 0x17, 0x34, 0x61, 0x99, 0x67, 0xDF, 0x00, + 0xF2, 0x13, 0x18, 0x67, 0xDF, 0x00, 0x24, 0x61, 0x13, 0x66, 0x99, 0x67, 0xDF, 0x00, 0x18, 0x4D, + 0xAD, 0x00, 0xC6, 0x46, 0x92, 0x09, 0x98, 0x67, 0xDE, 0x00, 0x99, 0x07, 0xDF, 0x00, 0x82, 0x04, + 0x34, 0x61, 0x99, 0x67, 0xDE, 0x00, 0x18, 0x6D, 0xB1, 0x00, 0xC6, 0x65, 0xC2, 0x0A, 0x98, 0x67, + 0xDE, 0x00, 0x82, 0x05, 0x18, 0x6D, 0xB2, 0x00, 0x99, 0x67, 0xDE, 0x00, 0x99, 0x07, 0xDF, 0x00, + 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x18, 0x70, 0xFF, 0x10, 0xC4, 0x71, 0x82, 0x07, + 0x0C, 0x50, 0xDF, 0x01, 0x0C, 0x60, 0x1F, 0x03, 0x04, 0x70, 0xF2, 0x06, 0x0C, 0x50, 0xDD, 0x01, + 0x0C, 0x60, 0x1D, 0x03, 0x04, 0x72, 0x70, 0x42, 0xC6, 0x47, 0x32, 0x03, 0xA1, 0x72, 0xF2, 0x04, + 0xC6, 0x45, 0x02, 0x02, 0xA1, 0x52, 0x78, 0x52, 0x02, 0x00, 0xC6, 0x57, 0x32, 0x04, 0xA9, 0x72, + 0x02, 0x00, 0xF2, 0x05, 0xC6, 0x56, 0x02, 0x03, 0xA9, 0x62, 0x02, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x98, 0x70, 0xFB, 0x10, 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, 0xD1, 0x81, 0x06, 0xE2, + 0x82, 0x06, 0x04, 0x70, 0x0C, 0xA0, 0x64, 0x00, 0x06, 0xB7, 0xF2, 0x05, 0x04, 0x71, 0x0C, 0xA0, + 0x66, 0x00, 0x04, 0xB3, 0x20, 0x6E, 0x23, 0x77, 0x26, 0x67, 0xA1, 0x6E, 0x28, 0x6E, 0x02, 0x00, + 0x06, 0x2E, 0x26, 0x76, 0xA9, 0x7E, 0x02, 0x00, 0x4B, 0xCA, 0x02, 0x00, 0x0C, 0x70, 0x80, 0x08, + 0x18, 0x67, 0x05, 0x04, 0xC4, 0x62, 0x92, 0x08, 0x20, 0x6E, 0xA9, 0x67, 0x1C, 0x00, 0x28, 0x6E, + 0x02, 0x00, 0xA9, 0x67, 0x1E, 0x00, 0x18, 0x67, 0x01, 0x04, 0xC4, 0x61, 0xD2, 0x11, 0x28, 0xC7, + 0x1C, 0x00, 0x1C, 0x60, 0x32, 0x00, 0x26, 0x6C, 0xCC, 0x60, 0x7C, 0x01, 0xD2, 0x09, 0x28, 0xD7, + 0x1E, 0x00, 0x1C, 0x70, 0x32, 0x00, 0x26, 0x7D, 0xCC, 0x70, 0xBC, 0x02, 0xC2, 0x05, 0x0C, 0xD0, + 0x90, 0x01, 0x0C, 0xC0, 0xF0, 0x00, 0xCC, 0xA0, 0x64, 0x00, 0x04, 0x90, 0x82, 0x04, 0x1C, 0x90, + 0x64, 0x00, 0x26, 0x9A, 0x70, 0xAE, 0xC6, 0xAC, 0x3F, 0x7C, 0x0A, 0x00, 0x32, 0x02, 0x24, 0x71, + 0x86, 0x27, 0x32, 0x02, 0x16, 0x22, 0x2F, 0x82, 0x02, 0x00, 0x26, 0x82, 0x06, 0x68, 0xC4, 0x20, + 0xD7, 0x62, 0x26, 0x86, 0x26, 0x82, 0x82, 0x05, 0x06, 0x39, 0xEB, 0x8B, 0x00, 0x00, 0x26, 0x82, + 0x04, 0x71, 0xD6, 0x7B, 0x82, 0x0F, 0x06, 0x28, 0x0C, 0x30, 0x64, 0x00, 0xEB, 0x93, 0x00, 0x00, + 0xC6, 0xAC, 0x22, 0x04, 0x26, 0xC2, 0xA1, 0xCE, 0xF2, 0x05, 0x34, 0xC1, 0x3F, 0x22, 0x0C, 0x00, + 0xA1, 0x2E, 0x78, 0xCE, 0x02, 0x00, 0xC6, 0xCD, 0x3F, 0x7D, 0x0C, 0x00, 0x32, 0x02, 0x24, 0x71, + 0x86, 0x27, 0x32, 0x02, 0x16, 0x22, 0x2F, 0xA2, 0x02, 0x00, 0x26, 0xA2, 0x06, 0x6A, 0xC4, 0x20, + 0xD7, 0x62, 0x26, 0xA6, 0x26, 0xA2, 0x82, 0x05, 0x06, 0x39, 0xEB, 0x8B, 0x00, 0x00, 0x26, 0xA2, + 0xD4, 0xB2, 0x82, 0x11, 0x06, 0x2A, 0x0C, 0x30, 0x64, 0x00, 0xEB, 0x93, 0x00, 0x00, 0xC6, 0xCD, + 0x22, 0x05, 0x26, 0xD2, 0xA9, 0xDE, 0x02, 0x00, 0xF2, 0x06, 0x34, 0xD1, 0x3F, 0x22, 0x0D, 0x00, + 0xA9, 0x2E, 0x02, 0x00, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, + 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, 0x08, 0xC0, 0x00, 0xFF, 0x0C, 0xE0, 0x5C, 0x10, + 0x04, 0xD0, 0x2C, 0xC0, 0xFF, 0x0F, 0x28, 0x70, 0x88, 0x10, 0x63, 0x7D, 0xD4, 0x71, 0x82, 0x25, + 0x30, 0x6E, 0x06, 0x76, 0x77, 0x76, 0x5C, 0x70, 0xFF, 0x0F, 0xA1, 0x71, 0x18, 0x70, 0xFF, 0x10, + 0x5C, 0x60, 0xFF, 0x0F, 0xC4, 0x71, 0xA9, 0x61, 0x02, 0x00, 0x92, 0x04, 0x06, 0x21, 0x8B, 0xCC, + 0x02, 0x00, 0x06, 0x21, 0x4B, 0xCA, 0x02, 0x00, 0x20, 0x61, 0x30, 0x7E, 0x5C, 0x60, 0xFF, 0x0F, + 0x57, 0x66, 0x56, 0x7C, 0x66, 0x76, 0x28, 0x61, 0x02, 0x00, 0x1C, 0x50, 0x00, 0x10, 0x5C, 0x60, + 0xFF, 0x0F, 0x56, 0x75, 0x66, 0x76, 0xB1, 0x7E, 0x24, 0xD1, 0xC4, 0xDB, 0x24, 0xE4, 0x92, 0xD4, + 0x58, 0xC1, 0x04, 0x00, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0x0C, 0x20, + 0x4B, 0x10, 0x14, 0x31, 0x04, 0x4B, 0xC1, 0xE1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, + 0x40, 0x10, 0x14, 0x31, 0x04, 0x4B, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0xE0, 0x80, 0x08, + 0x38, 0x7E, 0x8C, 0x07, 0x18, 0x6E, 0x84, 0x07, 0x77, 0x76, 0x54, 0x7F, 0xA6, 0x76, 0x82, 0x0E, + 0x04, 0x71, 0x99, 0x7E, 0x0A, 0x08, 0xB9, 0x0E, 0xD8, 0x07, 0x0C, 0x20, 0x5C, 0x10, 0x04, 0x30, + 0x0C, 0x40, 0x2C, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x99, 0x0E, 0x84, 0x07, 0xCB, 0xAD, + 0x01, 0x00, 0x4B, 0x30, 0x03, 0x00, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x3C, 0x10, 0x14, 0x00, + 0xD9, 0xC1, 0x04, 0x00, 0xB1, 0xB1, 0x0C, 0xE0, 0x80, 0x08, 0x98, 0xDE, 0x01, 0x04, 0x82, 0x19, + 0x06, 0x2C, 0x0C, 0x20, 0xB0, 0x0B, 0x0C, 0x30, 0x00, 0x0B, 0x0C, 0x40, 0xB0, 0x00, 0x0C, 0xF0, + 0xEC, 0x00, 0xF1, 0xF0, 0x06, 0x2B, 0x0C, 0x20, 0x76, 0x0C, 0x0C, 0x30, 0x6B, 0x0C, 0x04, 0x4B, + 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x18, 0x7E, 0x01, 0x04, 0x99, 0x7E, 0x02, 0x04, 0xF2, 0x2A, + 0x06, 0x2B, 0x0C, 0x20, 0x76, 0x0C, 0x06, 0x3D, 0x04, 0x4B, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x06, 0x2C, 0x0C, 0x20, 0xB0, 0x0B, 0x06, 0x3D, 0x0C, 0x40, 0xB0, 0x00, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0x20, 0x60, 0x0C, 0x06, 0x3D, 0x04, 0x4B, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x28, 0x7E, 0x06, 0x00, 0x99, 0x0E, 0x02, 0x04, 0x1C, 0x60, 0x14, 0x00, 0x56, 0x76, 0xA9, 0x7E, + 0x06, 0x00, 0x38, 0x70, 0xE4, 0x10, 0x99, 0x0E, 0x85, 0x07, 0x18, 0x77, 0xB9, 0x00, 0x99, 0x7E, + 0x88, 0x07, 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x0C, 0xE0, 0x80, 0x08, 0x18, 0x7E, 0x0A, 0x08, 0x06, 0xD2, + 0x26, 0x72, 0xC4, 0x70, 0x0C, 0x20, 0x0C, 0x10, 0x82, 0x0E, 0x0C, 0x30, 0x58, 0x10, 0x0C, 0x40, + 0x34, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x18, 0x7E, 0x0A, 0x08, 0x26, 0xD7, 0x99, 0xDE, + 0xBE, 0x07, 0xF2, 0x14, 0x98, 0x3E, 0xBE, 0x07, 0x82, 0x0C, 0x0C, 0x30, 0x58, 0x10, 0x0C, 0x40, + 0x34, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x04, 0x71, 0x99, 0x7E, 0x0A, 0x08, 0xF2, 0x06, + 0x0C, 0x40, 0x34, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, 0x06, 0xC2, 0x06, 0xE3, + 0x06, 0x23, 0x06, 0x3C, 0xB1, 0xB1, 0xEB, 0x67, 0x03, 0x00, 0x86, 0x22, 0x9A, 0x82, 0x00, 0x00, + 0xD4, 0xC3, 0x92, 0x05, 0x18, 0x7E, 0x0D, 0x00, 0xC4, 0x76, 0x92, 0x5B, 0x18, 0x6E, 0x0A, 0x00, + 0x14, 0x51, 0x26, 0x56, 0x04, 0x71, 0x53, 0x75, 0x0C, 0x50, 0x80, 0x08, 0x28, 0x45, 0x08, 0x08, + 0x43, 0x77, 0x66, 0x47, 0xA9, 0x45, 0x08, 0x08, 0x38, 0x45, 0xD8, 0x07, 0x1C, 0x30, 0x00, 0x04, + 0x66, 0x74, 0x5C, 0x70, 0xFF, 0x03, 0x56, 0x43, 0x66, 0x47, 0x06, 0x74, 0x77, 0x76, 0x24, 0x71, + 0x54, 0x7F, 0x1C, 0x30, 0x01, 0xF0, 0x57, 0x76, 0x56, 0x43, 0x66, 0x47, 0x57, 0x61, 0xB9, 0x45, + 0xD8, 0x07, 0x26, 0x65, 0x18, 0x7E, 0x0A, 0x00, 0x38, 0x56, 0xD8, 0x07, 0x08, 0x40, 0xFF, 0x0F, + 0x2C, 0x40, 0xFF, 0xFF, 0x57, 0x7E, 0x56, 0x54, 0x66, 0x57, 0xB9, 0x56, 0xD8, 0x07, 0x20, 0x4E, + 0x08, 0x70, 0x00, 0xFF, 0x5C, 0x40, 0xFF, 0x0F, 0x2C, 0x70, 0xFF, 0x0F, 0x57, 0x46, 0x56, 0x75, + 0x66, 0x74, 0xB9, 0x76, 0xD8, 0x07, 0x28, 0x5E, 0x02, 0x00, 0x1C, 0x40, 0x00, 0x10, 0x5C, 0x50, + 0xFF, 0x0F, 0x56, 0x74, 0x66, 0x75, 0xB9, 0x76, 0xD8, 0x07, 0x18, 0x5E, 0x0B, 0x00, 0x13, 0x75, + 0xC4, 0x7F, 0xC2, 0x02, 0x04, 0x5F, 0x38, 0x76, 0xD8, 0x07, 0x08, 0x40, 0xFF, 0xF0, 0x54, 0x5F, + 0x2C, 0x40, 0xFF, 0xFF, 0x57, 0x5C, 0x56, 0x74, 0x66, 0x75, 0xB9, 0x76, 0xD8, 0x07, 0xF2, 0x03, + 0xC4, 0x7A, 0x82, 0x03, 0x04, 0x20, 0xF2, 0x1D, 0x0C, 0xD0, 0xB0, 0x0B, 0x06, 0x7B, 0x0C, 0x70, + 0x80, 0x08, 0x18, 0x77, 0x02, 0x04, 0xC6, 0xC7, 0x32, 0xF6, 0x18, 0x6E, 0x0A, 0x00, 0x18, 0x7D, + 0x0A, 0x00, 0xC6, 0x67, 0x92, 0x0A, 0x06, 0x2E, 0x06, 0x3D, 0x04, 0x44, 0x0B, 0x7A, 0x03, 0x00, + 0x18, 0x7D, 0x0B, 0x00, 0x99, 0x7E, 0x0B, 0x00, 0x24, 0xC1, 0x2C, 0xD0, 0x10, 0x00, 0xF2, 0xE7, + 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x18, 0x72, 0x06, 0x00, + 0xD4, 0x74, 0x82, 0x25, 0x0C, 0x40, 0x80, 0x08, 0x38, 0x54, 0xD8, 0x07, 0x08, 0x60, 0x1F, 0xFF, + 0x06, 0x75, 0xF7, 0x7A, 0x24, 0x71, 0x54, 0x77, 0x2C, 0x60, 0xFF, 0xFF, 0xD7, 0x7A, 0x56, 0x65, + 0x66, 0x67, 0xB9, 0x64, 0xD8, 0x07, 0x18, 0x52, 0x05, 0x00, 0x04, 0x71, 0x34, 0x51, 0x53, 0x75, + 0x06, 0x56, 0x77, 0x58, 0x66, 0x75, 0x08, 0x50, 0xE0, 0xFF, 0x5C, 0x70, 0x1F, 0x00, 0x2C, 0x50, + 0xFF, 0xFF, 0x57, 0x78, 0x56, 0x56, 0x66, 0x57, 0xB9, 0x54, 0xD8, 0x07, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0xB1, 0xF1, 0x0C, 0x60, 0x80, 0x08, 0x38, 0x76, 0xD8, 0x07, 0x77, 0x76, 0x54, 0x7F, + 0xC4, 0x78, 0x02, 0x26, 0x28, 0x46, 0x08, 0x08, 0x04, 0x70, 0x0C, 0x30, 0x5C, 0x10, 0x06, 0x57, + 0x04, 0xF1, 0x06, 0x24, 0x63, 0x25, 0xD4, 0x21, 0x82, 0x0A, 0xC4, 0x77, 0xC2, 0x07, 0x06, 0x2F, + 0x53, 0x25, 0x15, 0x22, 0xB1, 0x03, 0x56, 0x42, 0xF2, 0x02, 0x24, 0x71, 0x24, 0x51, 0xC4, 0x5B, + 0x24, 0x34, 0x92, 0xF0, 0x04, 0x5F, 0x56, 0x57, 0x38, 0x76, 0xD8, 0x07, 0xA9, 0x46, 0x08, 0x08, + 0x1C, 0x40, 0x01, 0xF0, 0x57, 0x56, 0x56, 0x74, 0x66, 0x75, 0xB9, 0x76, 0xD8, 0x07, 0x38, 0x76, + 0xD8, 0x07, 0x0C, 0x50, 0x00, 0xF0, 0xD6, 0x57, 0x82, 0x06, 0x77, 0x76, 0x54, 0x7F, 0x24, 0x71, + 0x99, 0x76, 0x0A, 0x08, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x20, 0x00, + 0xD9, 0xC1, 0x10, 0x00, 0xD1, 0x81, 0x0C, 0xE0, 0x80, 0x08, 0xE8, 0xCE, 0xCB, 0x07, 0x92, 0x2A, + 0x98, 0x7E, 0x01, 0x04, 0x82, 0x27, 0x0C, 0x90, 0x30, 0x03, 0x0C, 0xD0, 0x00, 0x0B, 0x26, 0x9E, + 0x06, 0xBC, 0x04, 0x2C, 0x26, 0x2D, 0x8B, 0x13, 0x01, 0x00, 0xC4, 0x20, 0x82, 0x13, 0xC4, 0xC7, + 0xDA, 0x98, 0x00, 0x00, 0x18, 0x7D, 0x0A, 0x00, 0x04, 0xA1, 0x26, 0xAB, 0x26, 0xBE, 0x99, 0x7B, + 0xCB, 0x07, 0x04, 0x21, 0x06, 0x3D, 0xAB, 0xE5, 0x02, 0x00, 0xC4, 0x20, 0x92, 0x04, 0x24, 0xC1, + 0xF2, 0x02, 0x06, 0xAB, 0x2C, 0xD0, 0x10, 0x00, 0xC6, 0xD9, 0x8A, 0x83, 0x00, 0x00, 0x06, 0xBA, + 0xF2, 0xE1, 0x98, 0x7E, 0x02, 0x04, 0x92, 0x04, 0x98, 0x7E, 0x01, 0x04, 0x82, 0x7A, 0x04, 0xD0, + 0x06, 0xCD, 0x06, 0xAE, 0x14, 0x91, 0x2F, 0x7C, 0x0E, 0x00, 0x68, 0x77, 0xCB, 0x07, 0x34, 0x71, + 0xC4, 0x70, 0x32, 0x04, 0x04, 0xC0, 0x06, 0xAE, 0xF2, 0x47, 0x26, 0x7A, 0x68, 0xB7, 0xEB, 0x03, + 0x34, 0xB1, 0xC4, 0xB0, 0x32, 0x1D, 0x68, 0x37, 0xF6, 0x03, 0x04, 0x24, 0x24, 0x3A, 0x57, 0x32, + 0x26, 0x3A, 0x2C, 0x30, 0x80, 0x02, 0xAB, 0xE5, 0x02, 0x00, 0xC4, 0x20, 0x92, 0x02, 0x24, 0xD1, + 0x06, 0x7C, 0xC4, 0x79, 0x12, 0x09, 0x24, 0x71, 0x2F, 0x67, 0x0E, 0x00, 0x18, 0x56, 0xCB, 0x07, + 0x99, 0x56, 0xCA, 0x07, 0xF2, 0xF7, 0x99, 0x9E, 0xD5, 0x07, 0x34, 0xC1, 0xF2, 0x12, 0x57, 0xB2, + 0x26, 0xBA, 0x2C, 0xB0, 0x80, 0x02, 0x04, 0x2C, 0x26, 0x2B, 0x8B, 0x13, 0x01, 0x00, 0xC4, 0x20, + 0x82, 0x08, 0x04, 0x22, 0x06, 0x3B, 0xAB, 0xE5, 0x02, 0x00, 0xC4, 0x20, 0x92, 0x02, 0x24, 0xD1, + 0x24, 0xC1, 0xC4, 0xCA, 0x02, 0xC1, 0xF2, 0xC7, 0x57, 0x72, 0x2F, 0x9A, 0x07, 0x00, 0x0C, 0xB0, + 0x80, 0x02, 0x26, 0xB9, 0x04, 0x2C, 0x26, 0x2B, 0x8B, 0x13, 0x01, 0x00, 0xC4, 0x20, 0x92, 0x0C, + 0x24, 0xC1, 0xC4, 0xCB, 0x82, 0x26, 0x2F, 0x7C, 0x0E, 0x00, 0x68, 0x77, 0xEB, 0x03, 0x34, 0x71, + 0xC4, 0x70, 0x32, 0xEB, 0xF2, 0xF6, 0xC4, 0xD7, 0xD2, 0x1C, 0x04, 0x70, 0x2F, 0x67, 0x0E, 0x00, + 0x68, 0x56, 0xCB, 0x07, 0x14, 0x41, 0x26, 0x45, 0xC6, 0x4C, 0x82, 0xEB, 0xC4, 0x50, 0x12, 0x0D, + 0x18, 0x79, 0x8A, 0x02, 0x04, 0x21, 0x99, 0x76, 0xCB, 0x07, 0x06, 0x3B, 0xAB, 0xE5, 0x02, 0x00, + 0xC4, 0x20, 0x92, 0xDF, 0x24, 0xD1, 0xF2, 0xDD, 0x24, 0x71, 0xC4, 0x7B, 0x92, 0xE8, 0xF2, 0xD9, + 0x04, 0x70, 0x06, 0x4E, 0x24, 0x71, 0x06, 0x67, 0x2F, 0x34, 0x07, 0x00, 0x2F, 0x56, 0x0E, 0x00, + 0xE8, 0x25, 0xCB, 0x07, 0x02, 0x07, 0x68, 0xF3, 0xCA, 0x07, 0xC6, 0xF2, 0x92, 0x03, 0x99, 0x05, + 0xCB, 0x07, 0x24, 0x61, 0xC4, 0x6A, 0x02, 0xF3, 0xC4, 0x7A, 0x92, 0xED, 0x8B, 0xF1, 0x02, 0x00, + 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, 0x38, 0x70, 0xE4, 0x10, + 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x30, 0x77, 0x04, 0x20, 0x5C, 0x70, 0x00, 0x01, 0xC6, 0x72, + 0x82, 0x40, 0x98, 0x50, 0xFE, 0x10, 0x92, 0x3D, 0x0C, 0x60, 0x80, 0x08, 0x38, 0x46, 0xD8, 0x07, + 0x0C, 0x70, 0x00, 0xF0, 0xD6, 0x74, 0x06, 0x25, 0x82, 0x34, 0x38, 0x76, 0x8C, 0x07, 0x76, 0x74, + 0xDC, 0x70, 0xFF, 0xF3, 0x92, 0x2E, 0x28, 0xD6, 0x08, 0x08, 0x77, 0x46, 0x54, 0x4F, 0x06, 0x57, + 0x06, 0x3D, 0x63, 0x35, 0xD4, 0x31, 0x82, 0x1A, 0x04, 0x31, 0x26, 0x35, 0x57, 0x31, 0x26, 0x36, + 0x38, 0xE3, 0xD8, 0x07, 0x38, 0xF3, 0x8C, 0x07, 0x06, 0x2E, 0x06, 0x3F, 0x77, 0x26, 0x77, 0x36, + 0x5C, 0x20, 0xFF, 0x0F, 0x5C, 0x30, 0xFF, 0x0F, 0xC6, 0x23, 0x24, 0x71, 0x92, 0x11, 0x5C, 0xE0, + 0xFF, 0x0F, 0x5C, 0xF0, 0xFF, 0x0F, 0xC6, 0xEF, 0x92, 0x0B, 0xC6, 0x74, 0xB2, 0x04, 0x24, 0x51, + 0xC4, 0x5B, 0x92, 0xDF, 0x18, 0x26, 0x0A, 0x08, 0x99, 0x06, 0x0A, 0x08, 0xF2, 0x02, 0x04, 0x20, + 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x44, 0x00, 0x06, 0x21, 0x04, 0x30, + 0x0C, 0x40, 0x2C, 0x00, 0xD9, 0xC1, 0x34, 0x00, 0xC9, 0xA1, 0x2C, 0x00, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0xE0, 0x80, 0x08, 0x98, 0x7E, 0x0A, 0x08, 0x92, 0x0A, 0x98, 0x3E, 0xBE, 0x07, + 0x92, 0x07, 0x0C, 0x20, 0x40, 0x10, 0x04, 0x4B, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x98, 0x7E, + 0x0A, 0x08, 0x82, 0x66, 0x98, 0x7E, 0xBE, 0x07, 0x82, 0x63, 0x28, 0xDE, 0x08, 0x08, 0x04, 0x71, + 0x08, 0xF0, 0xFF, 0x0F, 0x06, 0x32, 0x0C, 0x30, 0x5C, 0x10, 0x04, 0x40, 0x06, 0xB7, 0x2C, 0xF0, + 0xFF, 0xFF, 0x14, 0x61, 0x26, 0x67, 0x06, 0x5D, 0x63, 0x56, 0x06, 0x65, 0xD4, 0x61, 0x82, 0x26, + 0x13, 0x57, 0x04, 0x60, 0x2F, 0xC6, 0x0E, 0x00, 0x68, 0xCC, 0xC0, 0x07, 0x24, 0x61, 0xC6, 0xC7, + 0x82, 0x0C, 0xC4, 0x6B, 0x92, 0xF8, 0x04, 0x60, 0x2F, 0xC6, 0x0E, 0x00, 0xE8, 0xAC, 0xC0, 0x07, + 0x24, 0x61, 0x92, 0x05, 0x99, 0x7C, 0xC0, 0x07, 0x13, 0x56, 0xF2, 0x03, 0xC4, 0x6B, 0x92, 0xF5, + 0x14, 0xC1, 0x26, 0xC5, 0x06, 0x6B, 0x53, 0x6C, 0x66, 0x64, 0x23, 0x46, 0x30, 0x63, 0x57, 0xC1, + 0x57, 0x5E, 0x56, 0x6F, 0x26, 0xC1, 0x66, 0x65, 0xB1, 0x6C, 0x24, 0x71, 0xC4, 0x7C, 0x24, 0x34, + 0x92, 0xD1, 0x04, 0x70, 0x06, 0x6D, 0x63, 0x67, 0xD4, 0x61, 0x24, 0x71, 0x92, 0x0D, 0x2F, 0x56, + 0x0E, 0x00, 0x68, 0x35, 0xC0, 0x07, 0xC6, 0x37, 0x92, 0x04, 0x99, 0x05, 0xC0, 0x07, 0xF2, 0x04, + 0x24, 0x61, 0xC4, 0x6B, 0x92, 0xF5, 0xC4, 0x7B, 0x92, 0xEE, 0x38, 0x7E, 0xD8, 0x07, 0x1C, 0x60, + 0x00, 0x04, 0x5C, 0x40, 0xFF, 0x03, 0x56, 0x76, 0x66, 0x74, 0xB9, 0x7E, 0xD8, 0x07, 0x0C, 0x20, + 0x5C, 0x10, 0x06, 0x31, 0x0C, 0x40, 0x2C, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x58, 0xC1, + 0x34, 0x00, 0x48, 0xA1, 0x2C, 0x00, 0x2C, 0x10, 0x44, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, + 0xD1, 0xC1, 0x0C, 0xE0, 0x80, 0x08, 0x98, 0x7E, 0x83, 0x07, 0x82, 0x18, 0x0C, 0xC0, 0xDA, 0x0F, + 0x04, 0xD0, 0x18, 0x7E, 0x83, 0x07, 0xC6, 0xD7, 0x32, 0x07, 0x06, 0x2C, 0xEB, 0xEE, 0x02, 0x00, + 0x24, 0xD1, 0x24, 0xC8, 0xF2, 0xF7, 0x38, 0x7E, 0xD8, 0x07, 0x08, 0x60, 0xE0, 0x00, 0xD6, 0x76, + 0x82, 0x0E, 0x98, 0x7E, 0x0A, 0x08, 0x92, 0x0B, 0xF2, 0x07, 0x98, 0x7E, 0x0A, 0x08, 0x92, 0x07, + 0x98, 0x7E, 0x84, 0x07, 0x82, 0x04, 0x04, 0x71, 0x99, 0x7E, 0x0A, 0x08, 0x18, 0x7E, 0x83, 0x07, + 0x99, 0x7E, 0x84, 0x07, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x0C, 0x20, 0x88, 0x0C, 0x04, 0x30, 0x04, 0x4D, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x30, 0xF1, 0x0C, 0x70, 0x80, 0x08, 0x14, 0x61, 0x99, 0x67, 0x09, 0x04, 0x99, 0x67, + 0x08, 0x04, 0x99, 0x67, 0x0B, 0x04, 0x99, 0x67, 0x0A, 0x04, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0xC4, 0x41, 0x34, 0x14, 0xB1, 0xF1, 0x02, 0x09, 0xC4, 0x4E, 0x14, 0x72, 0x26, 0x74, 0x13, 0x77, + 0x0C, 0xF0, 0x10, 0x00, 0x12, 0x05, 0xF2, 0x02, 0x04, 0x70, 0x24, 0x42, 0x13, 0xF4, 0x08, 0x60, + 0x00, 0x30, 0x2C, 0x60, 0x00, 0x60, 0xC6, 0x7F, 0xD2, 0x16, 0x2F, 0x57, 0x07, 0x00, 0x26, 0x57, + 0x57, 0x51, 0x26, 0x57, 0x26, 0x53, 0x57, 0x51, 0x26, 0x56, 0x30, 0x55, 0x5C, 0x50, 0xFF, 0x7F, + 0xC6, 0x25, 0xB2, 0x06, 0x04, 0x61, 0x99, 0x60, 0x90, 0x0C, 0x04, 0x21, 0xF2, 0x05, 0x24, 0x71, + 0x23, 0x77, 0xF2, 0xEA, 0x04, 0x20, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0xC4, 0x41, 0x34, 0x14, + 0xB1, 0xF1, 0x02, 0x08, 0xC4, 0x4A, 0x14, 0x72, 0x26, 0x74, 0x13, 0x77, 0x04, 0xFC, 0x12, 0x05, + 0xF2, 0x02, 0x04, 0x70, 0x24, 0x42, 0x13, 0xF4, 0x2F, 0x63, 0x03, 0x00, 0x26, 0x63, 0x57, 0x61, + 0x26, 0x36, 0x08, 0x60, 0x00, 0x30, 0x2C, 0x60, 0x00, 0x60, 0xC6, 0x7F, 0xD2, 0x12, 0x2F, 0x57, + 0x03, 0x00, 0x57, 0x51, 0x26, 0x56, 0x30, 0x55, 0x5C, 0x50, 0xFF, 0x7F, 0xC6, 0x25, 0xB2, 0x06, + 0x04, 0x61, 0x99, 0x60, 0x90, 0x0C, 0x04, 0x21, 0xF2, 0x05, 0x24, 0x71, 0x23, 0x77, 0xF2, 0xEE, + 0x04, 0x20, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x3C, 0x10, 0x28, 0x00, 0xD9, 0xC1, 0x18, 0x00, + 0xD9, 0x81, 0x08, 0x00, 0x2B, 0xB2, 0x00, 0x00, 0x0C, 0xE0, 0x80, 0x08, 0x28, 0x7E, 0x22, 0x00, + 0xB1, 0x21, 0xC4, 0x7F, 0xC2, 0x12, 0x98, 0x70, 0x08, 0x11, 0x82, 0x0F, 0x38, 0x7E, 0xD8, 0x07, + 0x5C, 0x70, 0x00, 0xF0, 0xCC, 0x70, 0x00, 0x10, 0x92, 0x08, 0x04, 0x71, 0x99, 0x7E, 0x12, 0x04, + 0x99, 0x0E, 0x0F, 0x04, 0x99, 0x7E, 0x10, 0x04, 0x18, 0x7E, 0x0D, 0x04, 0xC4, 0x72, 0xC2, 0x08, + 0x04, 0x71, 0x99, 0x0E, 0x0F, 0x04, 0x99, 0x7E, 0x10, 0x04, 0x99, 0x0E, 0x12, 0x04, 0x98, 0x7E, + 0x12, 0x04, 0x82, 0x12, 0x98, 0x7E, 0x11, 0x04, 0x82, 0x0F, 0x98, 0x7E, 0x10, 0x04, 0x82, 0x0C, + 0x04, 0x71, 0x99, 0x0E, 0x12, 0x04, 0x99, 0x7E, 0x0F, 0x04, 0x99, 0x0E, 0x10, 0x04, 0x0B, 0x2C, + 0x01, 0x00, 0x6B, 0xDA, 0x02, 0x00, 0x98, 0x7E, 0x10, 0x04, 0x9A, 0xC8, 0x00, 0x00, 0x98, 0x7E, + 0x0F, 0x04, 0x9A, 0xC4, 0x00, 0x00, 0x18, 0x7E, 0x0C, 0x04, 0xC4, 0x71, 0x9A, 0xBF, 0x00, 0x00, + 0x18, 0x7E, 0x05, 0x00, 0xC4, 0x71, 0x9A, 0xBA, 0x00, 0x00, 0x18, 0x6E, 0x89, 0x02, 0x18, 0x5E, + 0x88, 0x02, 0xC4, 0x60, 0x82, 0x08, 0xCC, 0x60, 0x10, 0x00, 0x14, 0x71, 0x26, 0x76, 0x13, 0xB7, + 0x82, 0x07, 0xF2, 0x02, 0x06, 0xB6, 0x04, 0xA1, 0x26, 0xA6, 0x13, 0xAA, 0xF2, 0x03, 0x04, 0xBF, + 0x06, 0xA6, 0xC4, 0x50, 0x82, 0x07, 0xC4, 0x5A, 0x14, 0xC1, 0x26, 0xC5, 0x13, 0xCC, 0x82, 0x07, + 0xF2, 0x02, 0x06, 0xC5, 0x04, 0x91, 0x26, 0x95, 0x13, 0x99, 0xF2, 0x03, 0x04, 0xC9, 0x06, 0x95, + 0x2F, 0x46, 0x06, 0x00, 0x26, 0x46, 0x57, 0x41, 0x26, 0x64, 0x26, 0x56, 0x08, 0x80, 0x00, 0x30, + 0x57, 0x51, 0x2C, 0x80, 0x00, 0x60, 0x26, 0x58, 0x30, 0xD5, 0x04, 0x50, 0x5C, 0xD0, 0xFF, 0x7F, + 0xC6, 0xBA, 0xD2, 0x67, 0x2F, 0x6B, 0x0B, 0x00, 0x30, 0x31, 0x28, 0x2E, 0x3C, 0x01, 0x26, 0x6B, + 0x57, 0x61, 0x2F, 0xFB, 0x06, 0x00, 0x23, 0x33, 0x06, 0x6C, 0xC6, 0x69, 0xD2, 0x56, 0x2F, 0x46, + 0x0F, 0x00, 0x57, 0x41, 0x26, 0x48, 0x30, 0x44, 0x5C, 0x40, 0xFF, 0x7F, 0xC6, 0x42, 0xA2, 0x4A, + 0xC6, 0x43, 0x92, 0x48, 0x18, 0x4E, 0x89, 0x02, 0xC6, 0x4B, 0x92, 0x05, 0x18, 0x5E, 0x88, 0x02, + 0xC6, 0x56, 0x82, 0x3B, 0x18, 0x6E, 0x0E, 0x04, 0x04, 0x51, 0xD6, 0x56, 0x82, 0x13, 0x18, 0x3E, + 0x88, 0x02, 0x24, 0x32, 0x13, 0x33, 0xC4, 0x3A, 0xC2, 0x07, 0x18, 0x6E, 0x0E, 0x04, 0x04, 0x54, + 0xD6, 0x56, 0x92, 0x10, 0xF2, 0x1C, 0x06, 0x2D, 0x8B, 0x14, 0x03, 0x00, 0xC4, 0x20, 0x82, 0xF6, + 0xF2, 0x27, 0xD4, 0x62, 0x82, 0xF3, 0x18, 0x3E, 0x88, 0x02, 0x06, 0x2D, 0x34, 0x32, 0x13, 0x33, + 0xF2, 0xF4, 0x18, 0x3E, 0x89, 0x02, 0x24, 0x32, 0x13, 0x33, 0xCC, 0x30, 0x10, 0x00, 0xC2, 0x05, + 0x98, 0x6E, 0x10, 0x04, 0x82, 0x12, 0xF2, 0x14, 0x06, 0x2D, 0xF2, 0x08, 0xD4, 0x68, 0x82, 0xF9, + 0x18, 0x3E, 0x89, 0x02, 0x06, 0x2D, 0x34, 0x32, 0x13, 0x33, 0x18, 0x4E, 0x88, 0x02, 0x6B, 0x17, + 0x03, 0x00, 0xC4, 0x20, 0x92, 0x05, 0xF2, 0xED, 0x04, 0x61, 0x99, 0x6E, 0x0F, 0x04, 0x04, 0x51, + 0xF2, 0x04, 0x24, 0x61, 0x13, 0x66, 0xF2, 0xAA, 0x04, 0x71, 0x26, 0x7B, 0x13, 0xB7, 0xF2, 0x99, + 0x98, 0x7E, 0x0F, 0x04, 0x82, 0x0D, 0x18, 0x7E, 0x14, 0x04, 0xC4, 0x71, 0x92, 0x09, 0xB9, 0x51, + 0x04, 0x00, 0x0B, 0x2C, 0x01, 0x00, 0x6B, 0xDA, 0x02, 0x00, 0x38, 0x51, 0x04, 0x00, 0x98, 0x7E, + 0x0F, 0x04, 0x92, 0x0C, 0xC4, 0x50, 0x92, 0x0A, 0x30, 0x61, 0x28, 0x7E, 0x3C, 0x01, 0x23, 0xB6, + 0xC6, 0x7B, 0xD2, 0x04, 0x04, 0x71, 0x99, 0x7E, 0x10, 0x04, 0x38, 0x6E, 0xD8, 0x07, 0x06, 0x76, + 0x5C, 0x60, 0x00, 0xF0, 0x77, 0x76, 0xCC, 0x60, 0x00, 0x10, 0x54, 0x7F, 0x99, 0x7E, 0x14, 0x04, + 0x92, 0x11, 0x18, 0x6E, 0x0B, 0x04, 0x28, 0x7E, 0x88, 0x02, 0xCC, 0x60, 0xFF, 0x00, 0xA9, 0x7E, + 0x08, 0x04, 0x92, 0x08, 0x18, 0x6E, 0x0A, 0x04, 0xCC, 0x60, 0xFF, 0x00, 0x92, 0x03, 0xA9, 0x7E, + 0x0A, 0x04, 0x58, 0xC1, 0x18, 0x00, 0x58, 0x81, 0x08, 0x00, 0x2C, 0x10, 0x28, 0x00, 0xE1, 0xF0, + 0x2C, 0x20, 0x65, 0x00, 0x0C, 0x60, 0x80, 0x08, 0x3C, 0x10, 0x10, 0x00, 0x57, 0x22, 0xD1, 0xC1, + 0x2F, 0xD6, 0x02, 0x00, 0x04, 0xE2, 0x26, 0xED, 0x14, 0x71, 0xA8, 0xC6, 0x08, 0x08, 0xA9, 0x7E, + 0x04, 0x00, 0xA9, 0x7E, 0x06, 0x00, 0xA9, 0x7E, 0x08, 0x00, 0xA9, 0x7E, 0x0A, 0x00, 0xA9, 0x0D, + 0x02, 0x00, 0xA9, 0x0E, 0x02, 0x00, 0x92, 0x10, 0x0C, 0x20, 0x88, 0x0F, 0x06, 0x3C, 0x04, 0x48, + 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x90, 0x0F, 0x06, 0x3C, 0x0C, 0x40, 0x16, 0x00, + 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0xA9, 0x0E, 0x0C, 0x00, 0xA9, 0x0D, 0x10, 0x00, 0x50, 0xC1, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, 0x04, 0xE0, 0x06, 0x2E, + 0x0B, 0x2D, 0x03, 0x00, 0x24, 0xE1, 0xC4, 0xEB, 0x92, 0xFB, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, + 0x3C, 0x10, 0x18, 0x00, 0xB9, 0x31, 0x04, 0x00, 0xD9, 0xC1, 0x08, 0x00, 0x18, 0xD1, 0x04, 0x00, + 0xB1, 0x21, 0x23, 0xC2, 0xC6, 0x4D, 0x28, 0x31, 0x02, 0x00, 0x18, 0xE1, 0x05, 0x00, 0x32, 0x03, + 0x43, 0x2E, 0xF2, 0x11, 0xC6, 0x4C, 0x22, 0x03, 0x43, 0x23, 0xF2, 0x0D, 0x3F, 0x2D, 0x04, 0x00, + 0x36, 0x3E, 0xEB, 0x8B, 0x00, 0x00, 0x43, 0x22, 0x3F, 0x3D, 0x0C, 0x00, 0xEB, 0x93, 0x00, 0x00, + 0x26, 0x2E, 0x43, 0x22, 0x58, 0xC1, 0x08, 0x00, 0x2C, 0x10, 0x18, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x38, 0x70, 0xE4, 0x10, 0x3C, 0x10, 0x70, 0x00, 0xD9, 0xC1, 0x60, 0x00, 0xD9, 0x81, 0x50, 0x00, + 0x30, 0x77, 0xDC, 0x70, 0x00, 0x08, 0x8A, 0xC4, 0x02, 0x00, 0xC4, 0x30, 0x92, 0x0C, 0xC4, 0x20, + 0x9A, 0xBF, 0x02, 0x00, 0xA8, 0x70, 0x88, 0x10, 0x9A, 0xBB, 0x02, 0x00, 0x4B, 0x30, 0x03, 0x00, + 0xFA, 0xB7, 0x02, 0x00, 0x98, 0x70, 0x08, 0x11, 0x0C, 0xE0, 0x80, 0x08, 0x82, 0x29, 0x28, 0x7E, + 0x22, 0x00, 0xC4, 0x79, 0xC2, 0x0E, 0x0C, 0x70, 0x14, 0x00, 0x99, 0x7E, 0x06, 0x07, 0x0C, 0x70, + 0x64, 0x00, 0xA9, 0x7E, 0x02, 0x07, 0x99, 0x0E, 0x07, 0x07, 0x0C, 0x70, 0x50, 0x00, 0xF2, 0x31, + 0xC4, 0x75, 0xC2, 0x0C, 0x0C, 0x70, 0x14, 0x00, 0x99, 0x7E, 0x06, 0x07, 0x0C, 0x70, 0x64, 0x00, + 0xA9, 0x7E, 0x02, 0x07, 0x99, 0x0E, 0x07, 0x07, 0xF2, 0x24, 0x04, 0x7A, 0x99, 0x7E, 0x06, 0x07, + 0x0C, 0x70, 0x64, 0x00, 0xA9, 0x7E, 0x02, 0x07, 0x99, 0x0E, 0x07, 0x07, 0xF2, 0x18, 0x98, 0x7E, + 0x6D, 0x02, 0x92, 0xDA, 0x28, 0x7E, 0x06, 0x00, 0x0C, 0x60, 0x10, 0x00, 0xD6, 0x67, 0x92, 0xD4, + 0xD4, 0x78, 0x0C, 0x70, 0x14, 0x00, 0x99, 0x7E, 0x06, 0x07, 0x0C, 0x70, 0x64, 0x00, 0xA9, 0x7E, + 0x02, 0x07, 0x0C, 0x70, 0x1E, 0x00, 0x99, 0x7E, 0x07, 0x07, 0x82, 0x25, 0x0C, 0x70, 0x96, 0x00, + 0xA9, 0x7E, 0x04, 0x07, 0x0C, 0x70, 0xD6, 0x0E, 0xB9, 0x71, 0x18, 0x00, 0x0C, 0x70, 0xD8, 0x0E, + 0xB9, 0x71, 0x14, 0x00, 0x0C, 0x70, 0x90, 0x0F, 0xB9, 0x71, 0x2C, 0x00, 0x08, 0x50, 0x00, 0xFF, + 0x04, 0xA0, 0x0C, 0x70, 0x82, 0x0F, 0x2C, 0x50, 0xFF, 0x0F, 0x06, 0xDE, 0xB9, 0x71, 0x08, 0x00, + 0xB9, 0xA1, 0x10, 0x00, 0xB9, 0xA1, 0x38, 0x00, 0xB9, 0xA1, 0x34, 0x00, 0x06, 0xCA, 0xB9, 0x51, + 0x30, 0x00, 0xF2, 0x04, 0x0C, 0x70, 0xC8, 0x00, 0xF2, 0xDC, 0x28, 0x7E, 0x08, 0x08, 0x63, 0x7C, + 0xD4, 0x71, 0x92, 0x06, 0x06, 0x2C, 0x0B, 0x2D, 0x03, 0x00, 0xFA, 0x1C, 0x02, 0x00, 0x04, 0x71, + 0x26, 0x7C, 0x57, 0x71, 0x26, 0x7E, 0x38, 0x67, 0xD8, 0x07, 0x06, 0x76, 0x77, 0x76, 0x5C, 0x70, + 0xFF, 0x0F, 0x43, 0x57, 0x5C, 0x60, 0xFF, 0x0F, 0xB9, 0x51, 0x24, 0x00, 0x43, 0x56, 0xB9, 0x51, + 0x28, 0x00, 0xF8, 0x5D, 0x56, 0x06, 0x32, 0x21, 0x38, 0x51, 0x24, 0x00, 0x38, 0x31, 0x18, 0x00, + 0x38, 0x41, 0x24, 0x00, 0xA1, 0x53, 0x38, 0x51, 0x28, 0x00, 0x38, 0x31, 0x14, 0x00, 0xA1, 0x53, + 0x06, 0x5C, 0x57, 0x52, 0x38, 0x31, 0x28, 0x00, 0x26, 0x5E, 0xA9, 0x45, 0x5A, 0x06, 0x38, 0x41, + 0x08, 0x00, 0xA9, 0x35, 0x5C, 0x06, 0xA9, 0x0D, 0x52, 0x06, 0xA9, 0x0D, 0x54, 0x06, 0x04, 0x51, + 0x99, 0x54, 0x0E, 0x00, 0x99, 0x54, 0x0F, 0x00, 0x78, 0x5D, 0x5A, 0x06, 0x36, 0x75, 0xB9, 0x71, + 0x04, 0x00, 0x78, 0x7D, 0x5C, 0x06, 0x38, 0x51, 0x04, 0x00, 0x36, 0x67, 0xB9, 0x61, 0x0C, 0x00, + 0x86, 0x65, 0xB9, 0x51, 0x1C, 0x00, 0x32, 0x04, 0x16, 0x76, 0xB9, 0x71, 0x1C, 0x00, 0x38, 0x51, + 0x0C, 0x00, 0x86, 0x65, 0xB9, 0x51, 0x20, 0x00, 0x32, 0x04, 0x16, 0x76, 0xB9, 0x71, 0x20, 0x00, + 0x38, 0x51, 0x1C, 0x00, 0x38, 0x61, 0x20, 0x00, 0x43, 0x25, 0x43, 0x36, 0x0C, 0xF0, 0x80, 0x00, + 0xF1, 0xF0, 0x98, 0x70, 0x08, 0x11, 0x06, 0x82, 0xB9, 0x71, 0x3C, 0x00, 0x82, 0x30, 0x28, 0xBE, + 0x04, 0x07, 0x28, 0x7E, 0x02, 0x07, 0x57, 0xB8, 0x66, 0xB7, 0x28, 0x7E, 0x06, 0x07, 0x06, 0x2B, + 0x06, 0x37, 0x06, 0x48, 0xB9, 0x71, 0x4C, 0x00, 0x0B, 0x31, 0x03, 0x00, 0x28, 0x6E, 0x22, 0x00, + 0x38, 0x71, 0x4C, 0x00, 0xC4, 0x67, 0x06, 0x92, 0xC2, 0x0A, 0x06, 0x68, 0xF7, 0x6F, 0x2F, 0x48, + 0x06, 0x00, 0xE7, 0x40, 0x06, 0x2B, 0x06, 0x37, 0x43, 0x44, 0xF2, 0x0D, 0x04, 0x33, 0x2F, 0x28, + 0x08, 0x00, 0xB9, 0x71, 0x4C, 0x00, 0xEB, 0x93, 0x00, 0x00, 0x38, 0x71, 0x4C, 0x00, 0x43, 0x42, + 0x06, 0x37, 0x06, 0x2B, 0x0B, 0x31, 0x03, 0x00, 0x06, 0xB2, 0xF2, 0x48, 0x98, 0x7E, 0x6D, 0x02, + 0x92, 0x06, 0x28, 0x7E, 0x06, 0x00, 0xDC, 0x70, 0x10, 0x00, 0x82, 0x10, 0x86, 0x88, 0x32, 0x02, + 0x24, 0x83, 0x28, 0x7E, 0x04, 0x07, 0x28, 0x2E, 0x02, 0x07, 0x28, 0x3E, 0x06, 0x07, 0x06, 0x48, + 0x67, 0x41, 0x57, 0x78, 0x66, 0x27, 0x43, 0x44, 0xF2, 0x2D, 0x28, 0x7E, 0x22, 0x00, 0x28, 0x9E, + 0x04, 0x07, 0x28, 0xBE, 0x06, 0x07, 0xC4, 0x77, 0x28, 0x7E, 0x02, 0x07, 0xC2, 0x1E, 0x04, 0x33, + 0x26, 0x22, 0xB9, 0x71, 0x4C, 0x00, 0xEB, 0x93, 0x00, 0x00, 0x38, 0x71, 0x4C, 0x00, 0x57, 0x98, + 0x66, 0x97, 0x06, 0x7B, 0x23, 0x77, 0x43, 0x42, 0x06, 0x37, 0x06, 0x29, 0xB9, 0x71, 0x4C, 0x00, + 0x0B, 0x31, 0x03, 0x00, 0x38, 0x71, 0x4C, 0x00, 0x06, 0xB2, 0x06, 0x37, 0x06, 0x29, 0x06, 0x48, + 0x0B, 0x31, 0x03, 0x00, 0x06, 0x92, 0xF2, 0x0A, 0x06, 0x29, 0x57, 0x28, 0x66, 0x27, 0x06, 0x3B, + 0x06, 0x48, 0x0B, 0x31, 0x03, 0x00, 0x06, 0xB2, 0x06, 0x92, 0x18, 0x7E, 0x05, 0x04, 0xC4, 0x72, + 0xD2, 0x0B, 0x0C, 0x70, 0x32, 0x00, 0xA9, 0x0E, 0x0A, 0x07, 0xA9, 0x0E, 0x08, 0x07, 0xA9, 0x7E, + 0x0E, 0x07, 0xA9, 0x7E, 0x0C, 0x07, 0x38, 0x60, 0xE4, 0x10, 0x78, 0x2E, 0x08, 0x07, 0x18, 0x56, + 0xA7, 0x00, 0x18, 0x76, 0xA9, 0x00, 0x18, 0x66, 0xA8, 0x00, 0xB9, 0x51, 0x44, 0x00, 0x06, 0x35, + 0x2F, 0x86, 0x05, 0x00, 0x26, 0x87, 0xB9, 0x71, 0x4C, 0x00, 0xB9, 0x61, 0x48, 0x00, 0xEB, 0x8B, + 0x00, 0x00, 0x38, 0x61, 0x48, 0x00, 0x06, 0x42, 0x78, 0x2E, 0x0C, 0x07, 0xB9, 0x41, 0x40, 0x00, + 0x06, 0x36, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x71, 0x4C, 0x00, 0x38, 0x41, 0x40, 0x00, 0x06, 0x39, + 0x26, 0x42, 0x06, 0x27, 0xB9, 0x41, 0x40, 0x00, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x41, 0x40, 0x00, + 0x43, 0x22, 0x26, 0x24, 0x06, 0x38, 0xEB, 0x93, 0x00, 0x00, 0x38, 0x51, 0x44, 0x00, 0x43, 0x92, + 0x78, 0x2E, 0x0A, 0x07, 0x06, 0x35, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x61, 0x48, 0x00, 0x06, 0x52, + 0x78, 0x2E, 0x0E, 0x07, 0xB9, 0x51, 0x44, 0x00, 0x06, 0x36, 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x71, + 0x4C, 0x00, 0x38, 0x51, 0x44, 0x00, 0x06, 0x3B, 0x26, 0x52, 0x06, 0x27, 0xB9, 0x51, 0x44, 0x00, + 0xEB, 0x8B, 0x00, 0x00, 0x38, 0x51, 0x44, 0x00, 0x43, 0x22, 0x26, 0x25, 0x06, 0x38, 0xEB, 0x93, + 0x00, 0x00, 0x43, 0x72, 0x38, 0x21, 0x1C, 0x00, 0xB9, 0x71, 0x4C, 0x00, 0x06, 0x39, 0xEB, 0x8B, + 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0xEB, 0x93, 0x00, 0x00, 0x38, 0x71, 0x4C, 0x00, 0x06, 0x62, + 0x06, 0x82, 0x38, 0x21, 0x20, 0x00, 0xB9, 0x61, 0x48, 0x00, 0x06, 0x37, 0xEB, 0x8B, 0x00, 0x00, + 0x0C, 0x30, 0x64, 0x00, 0xEB, 0x93, 0x00, 0x00, 0xB8, 0x51, 0x3C, 0x00, 0x38, 0x61, 0x48, 0x00, + 0x38, 0x71, 0x4C, 0x00, 0x06, 0xB2, 0x92, 0x12, 0xC4, 0x60, 0x92, 0x07, 0x38, 0x61, 0x1C, 0x00, + 0x04, 0x81, 0xC4, 0x64, 0x12, 0x02, 0x06, 0x85, 0xC4, 0xB0, 0x92, 0x08, 0x38, 0x51, 0x20, 0x00, + 0x04, 0x61, 0xC4, 0x54, 0x12, 0x02, 0x06, 0x6B, 0x06, 0xB6, 0xC6, 0x9A, 0x06, 0x69, 0x32, 0x02, + 0x06, 0x6A, 0x38, 0x51, 0x10, 0x00, 0x43, 0xA6, 0xC6, 0x75, 0x06, 0x67, 0x32, 0x02, 0x06, 0x65, + 0x43, 0x66, 0xB9, 0x61, 0x10, 0x00, 0x38, 0x31, 0x08, 0x00, 0x38, 0x61, 0x04, 0x00, 0x68, 0x43, + 0x0E, 0x00, 0x15, 0x96, 0xF7, 0x9F, 0x38, 0x61, 0x0C, 0x00, 0x33, 0x59, 0xC6, 0x45, 0x15, 0x76, + 0xF7, 0x7F, 0x33, 0x67, 0x92, 0x04, 0x04, 0x41, 0xB9, 0x41, 0x34, 0x00, 0x38, 0x31, 0x08, 0x00, + 0x68, 0x43, 0x0F, 0x00, 0xC6, 0x46, 0x92, 0x04, 0x04, 0x41, 0xB9, 0x41, 0x38, 0x00, 0x38, 0x31, + 0x2C, 0x00, 0x04, 0x44, 0x91, 0x53, 0x2F, 0x5C, 0x0C, 0x00, 0x26, 0x5E, 0x99, 0x65, 0x11, 0x07, + 0x0C, 0x50, 0x5A, 0x06, 0x26, 0x5D, 0x06, 0x35, 0x06, 0x21, 0xB9, 0x51, 0x04, 0x00, 0xB9, 0x71, + 0x4C, 0x00, 0x0B, 0x7A, 0x03, 0x00, 0x2B, 0xB2, 0x00, 0x00, 0x18, 0x6E, 0x06, 0x04, 0x20, 0x51, + 0x38, 0x71, 0x4C, 0x00, 0xC4, 0x61, 0x28, 0x61, 0x02, 0x00, 0xD2, 0x19, 0x28, 0x4E, 0x3C, 0x01, + 0x23, 0x22, 0xC6, 0x42, 0xC2, 0x14, 0x98, 0x4E, 0x0F, 0x04, 0x92, 0x11, 0x78, 0x4D, 0x52, 0x06, + 0xC6, 0x48, 0x02, 0x05, 0xB8, 0x31, 0x34, 0x00, 0x82, 0x02, 0x06, 0x84, 0x78, 0x4D, 0x54, 0x06, + 0xC6, 0x4B, 0x02, 0x05, 0xB8, 0x31, 0x38, 0x00, 0x82, 0x02, 0x06, 0xB4, 0xC4, 0x90, 0x92, 0x02, + 0x16, 0x88, 0x23, 0x88, 0xC4, 0x70, 0x26, 0x85, 0xA1, 0x81, 0x92, 0x02, 0x16, 0xBB, 0x23, 0xBB, + 0x26, 0xB6, 0x06, 0x21, 0xA9, 0xB1, 0x02, 0x00, 0x4B, 0xCA, 0x02, 0x00, 0x78, 0x7D, 0x5A, 0x06, + 0x70, 0x91, 0x3F, 0x77, 0x09, 0x00, 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, 0xA9, 0x7D, 0x52, 0x06, + 0x78, 0xB1, 0x02, 0x00, 0x78, 0x7D, 0x5C, 0x06, 0x3F, 0x77, 0x0B, 0x00, 0xC4, 0x70, 0x32, 0x02, + 0x16, 0x77, 0x38, 0x51, 0x24, 0x00, 0x38, 0x61, 0x18, 0x00, 0xA9, 0x7D, 0x54, 0x06, 0x38, 0x71, + 0x28, 0x00, 0xA1, 0x56, 0x38, 0x51, 0x14, 0x00, 0x38, 0x21, 0x04, 0x00, 0xA1, 0x75, 0x06, 0x31, + 0x04, 0x44, 0x0B, 0x7A, 0x03, 0x00, 0x04, 0x71, 0x26, 0x7C, 0x57, 0x71, 0x2F, 0x67, 0x0E, 0x00, + 0x38, 0x76, 0xD8, 0x07, 0x38, 0x51, 0x30, 0x00, 0x5C, 0x90, 0xFF, 0x0F, 0x57, 0x96, 0x56, 0x75, + 0x66, 0x79, 0x1C, 0x30, 0x00, 0x10, 0x5C, 0xB0, 0xFF, 0x0F, 0x56, 0x73, 0x66, 0x7B, 0xB9, 0x76, + 0xD8, 0x07, 0x38, 0x51, 0x18, 0x00, 0x38, 0x61, 0x14, 0x00, 0x38, 0x71, 0x2C, 0x00, 0x2C, 0x50, + 0x10, 0x00, 0xB9, 0x51, 0x18, 0x00, 0x38, 0x51, 0x08, 0x00, 0x24, 0xC1, 0xC4, 0xCB, 0x2C, 0x60, + 0x10, 0x00, 0x24, 0x72, 0x24, 0x52, 0xB9, 0x61, 0x14, 0x00, 0xB9, 0x71, 0x2C, 0x00, 0xB9, 0x51, + 0x08, 0x00, 0x2C, 0xD0, 0x10, 0x00, 0x9A, 0xC2, 0xFD, 0xFF, 0x38, 0x7E, 0x08, 0x07, 0x38, 0x61, + 0x10, 0x00, 0xA9, 0xAE, 0x08, 0x07, 0xB9, 0x7E, 0x0C, 0x07, 0xA9, 0x6E, 0x0A, 0x07, 0x58, 0xC1, + 0x60, 0x00, 0x58, 0x81, 0x50, 0x00, 0x2C, 0x10, 0x70, 0x00, 0xE1, 0xF0, 0x0C, 0x70, 0xA6, 0x0F, + 0x04, 0x60, 0x78, 0x57, 0x04, 0x00, 0x24, 0x61, 0xC6, 0x25, 0x22, 0x0E, 0x78, 0x57, 0x06, 0x00, + 0xC6, 0x25, 0x12, 0x0A, 0x70, 0x57, 0xC6, 0x35, 0x22, 0x07, 0x78, 0x57, 0x02, 0x00, 0xC6, 0x35, + 0x12, 0x03, 0x13, 0x26, 0xF2, 0x06, 0x13, 0x66, 0xC4, 0x62, 0x24, 0x78, 0x92, 0xEB, 0x04, 0x20, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, 0xB1, 0xB1, 0x0C, 0xE0, + 0x80, 0x08, 0x28, 0x7E, 0x06, 0x00, 0x18, 0xCE, 0x83, 0x07, 0xD4, 0x71, 0x06, 0xD2, 0x06, 0xB3, + 0x92, 0x3F, 0x38, 0x60, 0xE4, 0x10, 0x18, 0x7E, 0x88, 0x07, 0x18, 0x66, 0xB9, 0x00, 0xC6, 0x67, + 0xC2, 0x05, 0x24, 0x71, 0x99, 0x7E, 0x88, 0x07, 0xF2, 0x33, 0x18, 0x72, 0x0A, 0x00, 0xD7, 0xC1, + 0x2C, 0xC0, 0x34, 0x00, 0x26, 0xCE, 0x0C, 0x20, 0x26, 0x07, 0x99, 0x7C, 0x2A, 0x07, 0x26, 0x2C, + 0x06, 0x3D, 0x04, 0x44, 0x0B, 0x7A, 0x03, 0x00, 0x99, 0xBC, 0x2B, 0x07, 0x18, 0x7D, 0x0D, 0x00, + 0x04, 0x62, 0x99, 0x7C, 0x2C, 0x07, 0x18, 0x7E, 0x83, 0x07, 0x24, 0x71, 0x99, 0x7E, 0x83, 0x07, + 0x18, 0x7D, 0x0D, 0x00, 0xD6, 0x67, 0x82, 0x14, 0x04, 0x64, 0xD6, 0x67, 0x82, 0x09, 0x04, 0x71, + 0x99, 0x7E, 0x85, 0x07, 0x99, 0x0E, 0x86, 0x07, 0x99, 0x0E, 0x87, 0x07, 0xF2, 0x09, 0xDC, 0x70, + 0x18, 0x00, 0x82, 0x06, 0x04, 0x71, 0x99, 0x0E, 0x85, 0x07, 0x99, 0x7E, 0x86, 0x07, 0x58, 0xC1, + 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, + 0xD1, 0xC1, 0x06, 0xE2, 0x06, 0x63, 0x70, 0x22, 0x78, 0x3E, 0x02, 0x00, 0x0C, 0xD0, 0x80, 0x08, + 0x0C, 0x40, 0x36, 0x07, 0x0C, 0x50, 0xA6, 0x0F, 0x26, 0x4D, 0x04, 0x70, 0x78, 0xF5, 0x04, 0x00, + 0xC6, 0xF2, 0x12, 0x0D, 0x78, 0xF5, 0x06, 0x00, 0xC6, 0x2F, 0x12, 0x09, 0x70, 0xF5, 0xC6, 0xF3, + 0x12, 0x06, 0x78, 0xF5, 0x02, 0x00, 0xC6, 0x3F, 0x12, 0x02, 0x04, 0x71, 0x24, 0x58, 0xC6, 0x54, + 0x92, 0xEE, 0xC4, 0x70, 0x82, 0x77, 0xC4, 0x61, 0x82, 0x09, 0xC4, 0x61, 0xA2, 0x6F, 0xC4, 0x62, + 0x82, 0x1E, 0xC4, 0x64, 0x82, 0x44, 0xFA, 0xAF, 0x00, 0x00, 0x18, 0x6D, 0x85, 0x07, 0x14, 0x71, + 0xC4, 0x60, 0x9A, 0xAA, 0x00, 0x00, 0xEB, 0x60, 0x03, 0x00, 0x86, 0xC2, 0x82, 0x09, 0x04, 0x76, + 0x99, 0x7E, 0x0D, 0x00, 0x06, 0x2E, 0x06, 0x3C, 0xAB, 0x62, 0x03, 0x00, 0xF2, 0x04, 0x04, 0x72, + 0x99, 0x7E, 0x0D, 0x00, 0x99, 0xCE, 0x0E, 0x00, 0xFA, 0x96, 0x00, 0x00, 0x18, 0x7E, 0x0D, 0x00, + 0x04, 0x61, 0xD6, 0x67, 0x82, 0x0B, 0xD4, 0x76, 0x82, 0x06, 0x04, 0x7A, 0x99, 0x7E, 0x0D, 0x00, + 0xFA, 0x84, 0x00, 0x00, 0x0C, 0x70, 0x12, 0x00, 0xF2, 0x42, 0x04, 0x62, 0xD6, 0x67, 0x14, 0x71, + 0x8A, 0x83, 0x00, 0x00, 0xEB, 0x60, 0x03, 0x00, 0x86, 0x32, 0x82, 0x0A, 0x98, 0x7E, 0x0E, 0x00, + 0x92, 0x07, 0x04, 0x76, 0x99, 0x7E, 0x0D, 0x00, 0x99, 0x3E, 0x0E, 0x00, 0xF2, 0x04, 0x04, 0x72, + 0x99, 0x7E, 0x0D, 0x00, 0x06, 0x2E, 0xAB, 0x62, 0x03, 0x00, 0xF2, 0x6D, 0x18, 0x7E, 0x0D, 0x00, + 0x04, 0x61, 0xD6, 0x67, 0x92, 0xD9, 0x04, 0x62, 0xD6, 0x67, 0x14, 0x71, 0x82, 0x65, 0xEB, 0x60, + 0x03, 0x00, 0x86, 0x22, 0x18, 0x3E, 0x0E, 0x00, 0x82, 0x11, 0xC4, 0x30, 0x82, 0x11, 0xC6, 0x23, + 0x04, 0x7A, 0x82, 0x03, 0x0C, 0x70, 0x12, 0x00, 0x99, 0x7E, 0x0D, 0x00, 0x06, 0x2E, 0xAB, 0x62, + 0x03, 0x00, 0x04, 0x71, 0x99, 0x7E, 0x0C, 0x00, 0xF2, 0x06, 0xC4, 0x30, 0x92, 0xF4, 0x04, 0x72, + 0x99, 0x7E, 0x0D, 0x00, 0x99, 0x0E, 0x0E, 0x00, 0xF2, 0x46, 0x04, 0x72, 0x99, 0x7E, 0x0D, 0x00, + 0xF2, 0x42, 0xC4, 0x61, 0x82, 0x08, 0xC4, 0x61, 0xA2, 0x3A, 0xC4, 0x62, 0x82, 0x09, 0xC4, 0x64, + 0x82, 0x1B, 0xF2, 0x3A, 0x99, 0x6E, 0x0D, 0x00, 0x99, 0x0D, 0x88, 0x07, 0xF2, 0x35, 0x18, 0x7E, + 0x0D, 0x00, 0xD4, 0x72, 0x82, 0x15, 0x98, 0x3E, 0x0E, 0x00, 0x82, 0x08, 0x0C, 0x70, 0x12, 0x00, + 0x99, 0x7E, 0x0D, 0x00, 0x06, 0x2E, 0xAB, 0x62, 0x03, 0x00, 0x04, 0x71, 0x99, 0x7E, 0x0D, 0x00, + 0x99, 0x0D, 0x88, 0x07, 0xF2, 0x18, 0x18, 0x7E, 0x0D, 0x00, 0xD4, 0x72, 0x92, 0x07, 0x04, 0x71, + 0x99, 0x7E, 0x0D, 0x00, 0x99, 0x0D, 0x88, 0x07, 0xF2, 0x10, 0x98, 0x3E, 0x0E, 0x00, 0x04, 0x72, + 0x99, 0x7E, 0x0D, 0x00, 0x82, 0x07, 0x04, 0x7A, 0x99, 0x7E, 0x0D, 0x00, 0x06, 0x2E, 0xAB, 0x62, + 0x03, 0x00, 0x04, 0x71, 0x99, 0x7E, 0x0C, 0x00, 0x04, 0x70, 0xF2, 0x06, 0x04, 0x62, 0x99, 0x6E, + 0x0D, 0x00, 0xF2, 0x02, 0x14, 0x71, 0x28, 0x5D, 0x06, 0x00, 0x04, 0x63, 0xD6, 0x65, 0x92, 0x07, + 0x18, 0x6E, 0x0D, 0x00, 0x54, 0x63, 0x66, 0x65, 0xA9, 0x6D, 0x06, 0x00, 0x50, 0xC1, 0x06, 0x27, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x18, 0x40, 0x0D, 0x11, 0xC4, 0x40, 0x28, 0x50, + 0xE8, 0x10, 0x06, 0x37, 0x0C, 0x70, 0x80, 0x08, 0x82, 0x07, 0x0C, 0x60, 0x80, 0x06, 0x26, 0x55, + 0x26, 0x56, 0x20, 0x65, 0xF2, 0x0A, 0x08, 0x60, 0x00, 0x30, 0x57, 0x51, 0x2C, 0x60, 0x00, 0x60, + 0x26, 0x65, 0x30, 0x66, 0x5C, 0x60, 0xFF, 0x7F, 0xC4, 0x40, 0xA9, 0x67, 0x10, 0x00, 0x06, 0x63, + 0x0C, 0x60, 0xE8, 0x10, 0x28, 0x66, 0x02, 0x00, 0x92, 0x0B, 0x08, 0x50, 0x00, 0x30, 0x57, 0x61, + 0x2C, 0x50, 0x00, 0x60, 0x26, 0x56, 0x30, 0x65, 0x5C, 0x60, 0xFF, 0x7F, 0xF2, 0x06, 0x26, 0x66, + 0x0C, 0x50, 0x80, 0x06, 0x26, 0x65, 0x20, 0x66, 0xA9, 0x67, 0x12, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x04, 0x70, 0xC6, 0x74, 0x82, 0x09, 0x2F, 0x67, 0x03, 0x00, 0x60, 0x56, 0x2F, 0x67, 0x02, 0x00, + 0x91, 0x56, 0x24, 0x71, 0xF2, 0xF7, 0xE1, 0xF0, 0x71, 0x00, 0xF2, 0xFF, 0xC6, 0x23, 0x06, 0x72, + 0x32, 0x02, 0x06, 0x73, 0x43, 0x27, 0xE1, 0xF0, 0xC6, 0x23, 0x22, 0x07, 0xC6, 0x24, 0x06, 0x72, + 0x32, 0x02, 0x06, 0x74, 0x43, 0x27, 0xF2, 0x06, 0xC6, 0x34, 0x06, 0x23, 0x32, 0x02, 0x06, 0x24, + 0x43, 0x22, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xE5, 0x06, 0xD6, 0x6B, 0x04, + 0x00, 0x00, 0x06, 0x3E, 0x06, 0x4D, 0x6B, 0x04, 0x00, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, + 0xE1, 0xF0, 0x24, 0x00, 0xC6, 0x23, 0x06, 0x72, 0x02, 0x02, 0x06, 0x73, 0x43, 0x27, 0xE1, 0xF0, + 0x26, 0x23, 0xE1, 0xF0, 0x26, 0x23, 0x26, 0x24, 0xE1, 0xF0, 0x24, 0x00, 0x26, 0x32, 0x26, 0x43, + 0x26, 0x54, 0x2F, 0x26, 0x05, 0x00, 0xE1, 0xF0, 0x04, 0x70, 0xC6, 0x74, 0x82, 0x09, 0x2F, 0x67, + 0x03, 0x00, 0x60, 0x56, 0x2F, 0x67, 0x02, 0x00, 0x91, 0x56, 0x24, 0x71, 0xF2, 0xF7, 0xE1, 0xF0, + 0x34, 0x14, 0xB1, 0xF1, 0x77, 0x41, 0x04, 0x70, 0x14, 0x61, 0x34, 0x41, 0xC6, 0x46, 0x82, 0x09, + 0x2F, 0x57, 0x03, 0x00, 0x30, 0xF5, 0x2F, 0x57, 0x02, 0x00, 0xB1, 0xF5, 0x24, 0x74, 0xF2, 0xF6, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x24, 0x00, 0x04, 0x70, 0xC6, 0x74, 0x82, 0x06, 0x2F, 0x67, + 0x02, 0x00, 0x91, 0x36, 0x24, 0x71, 0xF2, 0xFA, 0xE1, 0xF0, 0x24, 0x00, 0x77, 0x41, 0x14, 0x71, + 0x34, 0x41, 0xC6, 0x47, 0x82, 0x04, 0xB1, 0x32, 0x24, 0x24, 0xF2, 0xFB, 0xE1, 0xF0, 0x24, 0x00, + 0x77, 0x31, 0x14, 0x71, 0x34, 0x31, 0xC6, 0x37, 0x82, 0x04, 0xB1, 0x02, 0x24, 0x24, 0xF2, 0xFB, + 0xE1, 0xF0, 0x24, 0x00, 0x08, 0x50, 0x00, 0x30, 0x0C, 0x70, 0xA4, 0x45, 0x0C, 0x40, 0xFC, 0x41, + 0x0C, 0x60, 0x52, 0x06, 0x26, 0x75, 0x26, 0x45, 0x30, 0x57, 0x34, 0x74, 0xC6, 0x74, 0x77, 0x58, + 0xA1, 0x56, 0x34, 0x62, 0x92, 0xFA, 0xE1, 0xF0, 0x34, 0x18, 0xC1, 0xE1, 0x08, 0x70, 0x00, 0x30, + 0x2C, 0x70, 0xA4, 0x63, 0x0C, 0x60, 0xE9, 0x00, 0x0C, 0xE0, 0x80, 0x06, 0x0C, 0x20, 0x80, 0x02, + 0x14, 0x41, 0x30, 0xF7, 0x2F, 0x56, 0x06, 0x00, 0x2F, 0x3E, 0x05, 0x00, 0xA1, 0xF3, 0x1C, 0x30, + 0x00, 0x1E, 0x26, 0x37, 0x30, 0x33, 0x34, 0x61, 0xC6, 0x64, 0x26, 0x52, 0xA1, 0x35, 0x34, 0x74, + 0x92, 0xF1, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x70, 0x1E, 0x00, 0xB1, 0x71, + 0x30, 0x71, 0x14, 0x61, 0xC4, 0x70, 0x26, 0x67, 0xB1, 0x61, 0x92, 0xFB, 0x24, 0x14, 0xE1, 0xF0, + 0x34, 0x18, 0xC1, 0xE1, 0x0C, 0x70, 0x00, 0x41, 0x08, 0xE0, 0x00, 0x40, 0xB9, 0x7E, 0x00, 0x60, + 0x0C, 0x70, 0x38, 0x00, 0xB9, 0x7E, 0x30, 0x60, 0x0B, 0x14, 0x00, 0x00, 0x0C, 0x70, 0x00, 0x81, + 0xB9, 0x7E, 0x00, 0x60, 0x0B, 0x14, 0x00, 0x00, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x24, 0x00, + 0x34, 0x14, 0xB1, 0xF1, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x07, 0x90, 0x60, 0xB9, 0x27, 0x00, 0x60, + 0xB9, 0x37, 0x04, 0x60, 0xB9, 0x07, 0x08, 0x60, 0x38, 0x67, 0x90, 0x60, 0xD4, 0x61, 0x82, 0xFD, + 0x0C, 0x60, 0x00, 0x81, 0xB9, 0x67, 0x00, 0x60, 0x0B, 0x14, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x24, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x00, 0x60, + 0x04, 0x60, 0xC6, 0x65, 0x2F, 0x23, 0x06, 0x00, 0x82, 0x0D, 0xB9, 0x27, 0x04, 0x60, 0x30, 0x24, + 0xB9, 0x27, 0x08, 0x60, 0x38, 0x27, 0x90, 0x60, 0xD4, 0x22, 0x82, 0xFD, 0x24, 0x61, 0x24, 0x44, + 0xF2, 0xF1, 0x0C, 0x60, 0x00, 0x81, 0xB9, 0x67, 0x00, 0x60, 0x0B, 0x14, 0x00, 0x00, 0x30, 0xF1, + 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x18, 0xC1, 0xE1, 0x08, 0x70, 0x00, 0x40, 0x0C, 0x60, 0x00, 0xDE, + 0xB9, 0x67, 0x10, 0x60, 0x77, 0x31, 0x0C, 0x60, 0x90, 0x81, 0xB9, 0x67, 0x00, 0x60, 0x77, 0x21, + 0x34, 0x31, 0x08, 0x60, 0x00, 0x13, 0xB9, 0x27, 0x04, 0x60, 0x66, 0x36, 0xB9, 0x37, 0x14, 0x60, + 0x08, 0x50, 0x00, 0x10, 0x38, 0x67, 0x14, 0x60, 0x0C, 0x40, 0x14, 0x60, 0xD6, 0x65, 0x26, 0x47, + 0x92, 0xFA, 0x38, 0xE7, 0x18, 0x60, 0xB1, 0x04, 0x0C, 0x60, 0x00, 0x81, 0xB9, 0x67, 0x00, 0x60, + 0xB9, 0x07, 0x10, 0x60, 0x0B, 0x14, 0x00, 0x00, 0x06, 0x2E, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0D, 0x12, 0x0B, 0x11, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xE0, 0x01, 0x20, 0x03, 0x08, 0x00, 0x03, 0x02, 0x66, 0x00, + 0x66, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, + 0x98, 0x08, 0x01, 0xC8, 0xC8, 0x00, 0x80, 0x00, 0x01, 0x1E, 0x01, 0x02, 0x98, 0x08, 0x11, 0x11, + 0xFF, 0xFF, 0xFF, 0x0B, 0x0C, 0xFF, 0xFF, 0xFF, 0x80, 0x3E, 0x00, 0x00, 0xE0, 0x2E, 0x00, 0x00, + 0xE0, 0x2E, 0x00, 0x00, 0xA0, 0x86, 0x01, 0x00, 0x80, 0x96, 0x98, 0x00, 0xE8, 0x03, 0x00, 0x00, + 0x3C, 0x00, 0xC8, 0x00, 0xC8, 0x00, 0xC8, 0x00, 0xC8, 0x00, 0x14, 0x00, 0x00, 0x01, 0x14, 0x00, + 0x03, 0x00, 0x5A, 0x00, 0x01, 0x00, 0x0A, 0x00, 0xE8, 0x03, 0x64, 0x64, 0x64, 0x01, 0x1C, 0x1C, + 0x04, 0x0F, 0x00, 0x0A, 0x06, 0x14, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x50, 0x00, + 0x14, 0x00, 0x01, 0x00, 0x90, 0x01, 0x00, 0x00, 0xFA, 0x00, 0x2C, 0x01, 0x00, 0x00, 0x64, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x11, 0x11, 0x22, 0x00, 0x23, 0x13, 0x22, 0x00, + 0x23, 0x13, 0x22, 0x00, 0x23, 0x13, 0x22, 0x00, 0x23, 0x13, 0x22, 0x00, 0x23, 0x13, 0x22, 0x00, + 0x23, 0x13, 0x22, 0x00, 0x23, 0x13, 0x22, 0x00, 0x23, 0x13, 0x22, 0x00, 0x11, 0x11, 0x22, 0x00, + 0x51, 0x86, 0x01, 0x00, 0x51, 0x86, 0x01, 0x00, 0x51, 0x86, 0x01, 0x00, 0x51, 0x86, 0x01, 0x00, + 0x51, 0x86, 0x01, 0x00, 0x53, 0x86, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x0F, 0x00, 0x00, 0x80, 0x0F, 0xA0, 0x8F, 0x80, 0x0F, 0xA0, 0x8F, 0x40, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x08, 0x00, 0xFF, 0x00, 0x30, 0x00, 0xFF, 0x05, 0xFF, 0x03, 0x10, 0x10, 0x98, 0x00, + 0x10, 0x5F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, + 0x00, 0x00, 0x08, 0x84, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x64, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0xC8, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, + 0xFF, 0x00, 0x30, 0x00, 0xFF, 0x05, 0xFF, 0x03, 0x10, 0x10, 0x98, 0x00, 0x10, 0x5F, 0x10, 0x3F, + 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x04, 0x82, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0xFF, 0x00, 0x30, 0x00, + 0xFF, 0x05, 0xFF, 0x03, 0x10, 0x10, 0x98, 0x00, 0x10, 0x5F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, + 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x08, 0x84, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x80, 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0xC8, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x02, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0xFF, 0x00, 0x30, 0x00, 0xFF, 0x05, 0xFF, 0x03, + 0x10, 0x10, 0x98, 0x00, 0x10, 0x5F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, + 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x02, 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, + 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xB9, 0x00, 0x00, + 0x4C, 0x4F, 0x06, 0x00, 0x52, 0x64, 0x00, 0x64, 0x00, 0x64, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x64, 0x64, 0xC8, 0x00, 0x14, 0x00, 0x2C, 0x01, 0x14, 0x00, 0x5E, 0x01, + 0x5E, 0x01, 0x5E, 0x01, 0x2C, 0x01, 0x00, 0x00, 0x08, 0x00, 0x90, 0x01, 0x00, 0x00, 0x50, 0x00, + 0x01, 0x00, 0x01, 0x00, 0xC8, 0x00, 0x01, 0x00, 0x0A, 0x02, 0x05, 0x01, 0x32, 0x0A, 0xB8, 0x0B, + 0xF4, 0x01, 0x01, 0x01, 0x0A, 0x00, 0x1E, 0x00, 0x2C, 0x01, 0x32, 0xFA, 0x0A, 0x00, 0x32, 0x00, + 0x00, 0x05, 0x04, 0x0A, 0x05, 0x06, 0x46, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x1E, 0x07, 0x1E, 0x00, + 0x96, 0x00, 0x2C, 0x01, 0x64, 0x00, 0x14, 0x00, 0x2D, 0x00, 0x14, 0x00, 0x14, 0x00, 0x2C, 0x01, + 0x03, 0x02, 0x01, 0x01, 0x01, 0x00, 0x50, 0x00, 0x64, 0x00, 0xF0, 0x00, 0x14, 0x00, 0x50, 0x00, + 0xDC, 0x00, 0x1E, 0x00, 0x32, 0x00, 0x64, 0x00, 0x14, 0x04, 0xFD, 0x02, 0x00, 0x03, 0x14, 0x01, + 0x02, 0x03, 0x01, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0F, 0x19, 0x32, 0x4B, 0x64, 0x5F, + 0x00, 0x02, 0x00, 0x32, 0x32, 0x14, 0x5A, 0x00, 0x0A, 0x0A, 0x1E, 0x00, 0x05, 0x0A, 0x01, 0x00, + 0x8C, 0x00, 0xC8, 0x00, 0x05, 0x05, 0xC8, 0x00, 0x14, 0x00, 0x00, 0x00, 0x9D, 0xB9, 0x00, 0x00, + 0x4C, 0x4F, 0x06, 0x00, 0x52, 0x64, 0x00, 0x64, 0x00, 0x64, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x64, 0x64, 0xC8, 0x00, 0x14, 0x00, 0x2C, 0x01, 0x14, 0x00, 0x40, 0x01, + 0x90, 0x01, 0x90, 0x01, 0x2C, 0x01, 0x00, 0x00, 0x08, 0x00, 0x90, 0x01, 0x00, 0x00, 0x50, 0x00, + 0x01, 0x00, 0x01, 0x00, 0xC8, 0x00, 0x01, 0x00, 0x0A, 0x02, 0x05, 0x01, 0x32, 0x0A, 0xB8, 0x0B, + 0xF4, 0x01, 0x01, 0x01, 0x0A, 0x00, 0x1E, 0x00, 0x2C, 0x01, 0x32, 0xFA, 0x0A, 0x00, 0x32, 0x00, + 0x00, 0x05, 0x04, 0x0A, 0x05, 0x06, 0x46, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x1E, 0x07, 0x1E, 0x00, + 0x96, 0x00, 0x2C, 0x01, 0x64, 0x00, 0x14, 0x00, 0x2D, 0x00, 0x14, 0x00, 0x14, 0x00, 0x2C, 0x01, + 0x05, 0x02, 0x01, 0x01, 0x01, 0x00, 0x50, 0x00, 0x96, 0x00, 0x18, 0x01, 0x14, 0x00, 0x50, 0x00, + 0xDC, 0x00, 0x1E, 0x00, 0x32, 0x00, 0x64, 0x00, 0x14, 0x04, 0xFD, 0x02, 0x00, 0x03, 0x14, 0x01, + 0x02, 0x03, 0x01, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0F, 0x19, 0x32, 0x4B, 0x64, 0x5F, + 0x00, 0x02, 0x00, 0x32, 0x32, 0x14, 0x46, 0x00, 0x0A, 0x0A, 0x1E, 0x00, 0x05, 0x0A, 0x01, 0x00, + 0x8C, 0x00, 0xC8, 0x00, 0x05, 0x05, 0xC8, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x12, 0x0D, 0x12, 0x0D, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x52, 0x4F, 0x4F, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x88, 0x89, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x23, 0x11, 0x22, 0x00, 0x44, 0xFF, 0x0F, 0x00, 0x11, 0x11, 0x00, 0x00, + 0x32, 0x64, 0x01, 0x02, 0xFF, 0x07, 0x2C, 0x01, 0x02, 0x32, 0x10, 0x10, 0x32, 0x14, 0x07, 0x00, + 0x64, 0x00, 0x64, 0x10, 0x51, 0x86, 0x01, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0F, 0xA0, 0x8F, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, + 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x10, 0x00, 0xFF, 0x00, 0x30, 0x00, 0xFF, 0x05, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x10, 0x98, 0x00, 0x10, 0x5F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x04, 0x82, + 0x00, 0x00, 0xFF, 0x0F, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x0E, 0x57, 0x0F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0xD6, 0xF1, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x71, 0x84, 0x40, 0x00, 0x15, 0x33, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x64, 0x00, 0xD0, 0x07, 0x09, 0x17, 0x08, 0x18, 0x07, 0x19, 0x06, 0x1A, + 0x05, 0x1B, 0x04, 0x1C, 0x03, 0x1D, 0x02, 0x1E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x16, 0x0A, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x20, 0x86, 0x00, 0x00, 0x00, 0x50, 0x05, 0x05, 0x00, 0x00, + 0x25, 0x19, 0x19, 0x0D, 0x3D, 0x31, 0x31, 0x25, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x4F, 0x29, 0x27, 0x00, 0x4F, 0x2A, 0x27, 0x01, 0x4F, 0x2B, 0x27, 0x02, 0x4F, 0x2E, 0x27, 0x04, + 0x4F, 0x2F, 0x27, 0x06, 0x4F, 0x31, 0x27, 0x0B, 0x4F, 0x34, 0x27, 0x0D, 0x4F, 0x3C, 0x27, 0x12, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x07, 0x13, 0x20, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, + 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, + 0x34, 0x34, 0x34, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, + 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, + 0x00, 0xD0, 0xF1, 0x3F, 0x21, 0xF0, 0xF1, 0x3F, 0x42, 0xF0, 0xF1, 0x3F, 0x63, 0xF0, 0xF1, 0x3F, + 0x84, 0xF0, 0xF1, 0x3F, 0xA5, 0xF0, 0xF1, 0x3F, 0xC6, 0xF0, 0xF1, 0x3F, 0xE7, 0xF0, 0xF1, 0x3F, + 0x08, 0xF1, 0xF1, 0x3F, 0x29, 0xF1, 0xF1, 0x3F, 0x4A, 0xF1, 0xF1, 0x3F, 0x6B, 0xF1, 0xF1, 0x3F, + 0x8C, 0xF1, 0xF1, 0x3F, 0xAD, 0xF1, 0xF1, 0x3F, 0xCE, 0xF1, 0xF1, 0x3F, 0xEF, 0xF1, 0xF1, 0x3F, + 0x10, 0xF2, 0xF1, 0x3F, 0x31, 0xE2, 0xF1, 0x7F, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xC0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x40, 0x1C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x28, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x28, + 0xFF, 0x07, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0xFF, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0x0F, 0x00, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x40, 0x00, 0x40, 0x00, 0x30, 0x00, 0x42, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x49, 0x53, 0x54, 0x56, 0x32, 0x54, 0x41, 0x47, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x78, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x82, 0x00, 0x80, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, + 0x00, 0x42, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x82, 0x49, 0xB0, 0x5C, 0x76, 0x80, 0xBF, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x13, 0x03, 0xDF, 0x07, 0x12, 0x3B, 0x35, 0x00, 0x49, 0x53, 0x54, 0x56, 0x32, 0x54, 0x41, 0x47 +}; + +#endif // __IST30XXC_FW_H__ \ No newline at end of file diff --git a/drivers/input/touchscreen/ist30xxc/firmware/ist30xxc_fw.h b/drivers/input/touchscreen/ist30xxc/firmware/ist30xxc_fw.h new file mode 100644 index 00000000..267fb105 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/firmware/ist30xxc_fw.h @@ -0,0 +1,4054 @@ + +#ifndef __IST30XXC_FW_H__ +#define __IST30XXC_FW_H__ + +// Chip ID : 0x0000038C +// FW Ver : 0x02010000 +// Param Ver : 0x00000004 +// FW Download CRC : 0x44A4BC98 +// Normal CRC : 0x637657C8 + +static unsigned char ist30xxc_fw[] = { + 0x80, 0x00, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x54, 0x12, 0x00, 0x80, 0xFC, 0x00, 0x00, 0x80, + 0x04, 0x01, 0x00, 0x80, 0x50, 0x1D, 0x00, 0x80, 0x00, 0x1D, 0x00, 0x80, 0x28, 0x1D, 0x00, 0x80, + 0xD8, 0x1C, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x94, 0x1D, 0x00, 0x80, + 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0C, 0x10, 0x00, 0x27, 0x08, 0x80, 0x00, 0x80, 0x2C, 0x80, 0x08, 0x7A, 0xAB, 0x0B, 0x00, 0x00, + 0x08, 0x70, 0x00, 0x40, 0x04, 0x61, 0x99, 0x67, 0x10, 0x00, 0x91, 0x67, 0x08, 0x70, 0x0F, 0x00, + 0x11, 0x17, 0x0C, 0x70, 0x70, 0x15, 0x0C, 0x60, 0x70, 0x15, 0xC6, 0x76, 0xB2, 0x04, 0xB1, 0x07, + 0x24, 0x74, 0xF2, 0xFC, 0x08, 0x30, 0x00, 0x80, 0x04, 0x70, 0x0C, 0x40, 0x70, 0x15, 0x0C, 0x50, + 0x70, 0x15, 0x2C, 0x30, 0x60, 0x7C, 0x2F, 0x64, 0x07, 0x00, 0xC6, 0x65, 0xB2, 0x07, 0x2F, 0x23, + 0x07, 0x00, 0x30, 0x22, 0x24, 0x74, 0xB1, 0x26, 0xF2, 0xF7, 0x0C, 0x70, 0x70, 0x15, 0x0C, 0x60, + 0xC4, 0x15, 0xC6, 0x76, 0xB2, 0x04, 0xB1, 0x07, 0x24, 0x74, 0xF2, 0xFC, 0x2B, 0x0F, 0x00, 0x00, + 0x2B, 0xD0, 0x03, 0x00, 0xB9, 0x20, 0x88, 0x27, 0x04, 0x22, 0xF2, 0x0D, 0xB9, 0x20, 0x88, 0x27, + 0x04, 0x23, 0xF2, 0x09, 0xB9, 0x20, 0x88, 0x27, 0x04, 0x24, 0xF2, 0x05, 0xB9, 0x20, 0x88, 0x27, + 0x04, 0x21, 0xF2, 0x01, 0xB9, 0x10, 0x84, 0x27, 0xB9, 0x30, 0x8C, 0x27, 0x08, 0x30, 0x00, 0x50, + 0xB9, 0x03, 0x00, 0x10, 0xD9, 0x40, 0x90, 0x27, 0xD9, 0x80, 0xA0, 0x27, 0xD9, 0xC0, 0xB0, 0x27, + 0x01, 0x40, 0x01, 0x51, 0xC9, 0x40, 0xC0, 0x27, 0x99, 0x20, 0x80, 0x27, 0x08, 0x20, 0x01, 0x00, + 0xB1, 0x23, 0x98, 0x40, 0x80, 0x27, 0x92, 0xFE, 0x09, 0x00, 0x01, 0x00, 0x04, 0x23, 0xB9, 0x23, + 0x00, 0x10, 0xF2, 0x01, 0x48, 0x40, 0xC0, 0x27, 0x11, 0x15, 0x11, 0x04, 0x58, 0xC0, 0xB0, 0x27, + 0x58, 0x80, 0xA0, 0x27, 0x58, 0x40, 0x90, 0x27, 0x48, 0x20, 0x88, 0x27, 0x38, 0x10, 0x84, 0x27, + 0x61, 0x00, 0x00, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x8B, 0x4C, 0x00, 0x00, + 0xCB, 0x52, 0x00, 0x00, 0xEB, 0x53, 0x00, 0x00, 0x4B, 0x25, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x8B, 0x59, 0x00, 0x00, 0xCB, 0x5B, 0x00, 0x00, + 0x0B, 0x5B, 0x00, 0x00, 0x8B, 0x5C, 0x00, 0x00, 0x6B, 0x5E, 0x00, 0x00, 0x2B, 0x5F, 0x00, 0x00, + 0x4B, 0x61, 0x00, 0x00, 0x6B, 0x6F, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x04, 0x21, 0xB1, 0xF1, 0xCB, 0x61, 0x00, 0x00, 0xCB, 0x6A, 0x00, 0x00, 0x0B, 0x4F, + 0x00, 0x00, 0xAB, 0x69, 0x00, 0x00, 0x04, 0x20, 0x2B, 0x7A, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0x04, 0x2A, 0xD1, 0xC1, 0xEB, 0x49, 0x00, 0x00, + 0x0B, 0x4C, 0x00, 0x00, 0xCB, 0x0B, 0x00, 0x00, 0xAB, 0x58, 0x00, 0x00, 0xAB, 0x0C, 0x00, 0x00, + 0x8B, 0x36, 0x00, 0x00, 0xCB, 0x94, 0x00, 0x00, 0xEB, 0x12, 0x00, 0x00, 0x0B, 0x0E, 0x00, 0x00, + 0x28, 0x20, 0x88, 0x15, 0x6B, 0x14, 0x00, 0x00, 0xEB, 0x93, 0x00, 0x00, 0x98, 0xC0, 0xB5, 0x15, + 0x92, 0xF8, 0x4B, 0x91, 0x00, 0x00, 0x04, 0x21, 0xCB, 0x61, 0x00, 0x00, 0xEB, 0x82, 0x00, 0x00, + 0x6B, 0x88, 0x00, 0x00, 0x06, 0x2C, 0xCB, 0x61, 0x00, 0x00, 0x8B, 0x90, 0x00, 0x00, 0xCB, 0x91, + 0x00, 0x00, 0x2B, 0x7C, 0x00, 0x00, 0xF2, 0xE5, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x04, 0x30, + 0xB9, 0x37, 0x08, 0x30, 0xB9, 0x47, 0x00, 0x30, 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x70, 0xB3, 0x15, + 0x82, 0x08, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x00, 0x30, 0x64, 0x71, 0xB9, 0x76, 0x00, 0x30, + 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x70, 0xB3, 0x15, 0x82, 0x09, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, + 0x00, 0x30, 0x14, 0x52, 0x56, 0x75, 0xB9, 0x76, 0x00, 0x30, 0xE1, 0xF0, 0x98, 0x70, 0xB3, 0x15, + 0x82, 0x05, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x08, 0x30, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x30, + 0x38, 0x76, 0x28, 0x00, 0xD4, 0x74, 0x92, 0xFD, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0x00, 0x30, + 0x38, 0x76, 0x40, 0x01, 0x23, 0x77, 0xB9, 0x76, 0x40, 0x01, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x30, + 0x38, 0x27, 0x40, 0x01, 0xF7, 0x2F, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, 0xEB, 0x15, 0x00, 0x00, + 0x04, 0x70, 0xC6, 0x27, 0x82, 0x0D, 0xEB, 0x14, 0x00, 0x00, 0x08, 0x70, 0x00, 0x30, 0x08, 0x60, + 0x00, 0x80, 0xB9, 0x67, 0x40, 0x01, 0x38, 0x77, 0x3C, 0x01, 0xB9, 0x70, 0x74, 0x15, 0x30, 0xF1, + 0x06, 0x27, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, + 0x06, 0xE2, 0x77, 0xE8, 0xCC, 0xE0, 0x14, 0x00, 0x0C, 0xD0, 0xFF, 0xFF, 0xB1, 0xB1, 0x56, 0xD2, + 0x82, 0x45, 0xCC, 0xE0, 0x14, 0x00, 0xD2, 0x18, 0xCC, 0xE0, 0x10, 0x00, 0x82, 0x36, 0xCC, 0xE0, + 0x10, 0x00, 0xD2, 0x08, 0xC4, 0xE1, 0x82, 0x2E, 0xC4, 0xE2, 0x92, 0x4A, 0x99, 0xD0, 0xB5, 0x15, + 0xF2, 0x65, 0xCC, 0xE0, 0x12, 0x00, 0x82, 0x2C, 0xCC, 0xE0, 0x12, 0x00, 0xD2, 0x2C, 0x99, 0xD0, + 0xB3, 0x15, 0xFA, 0x8D, 0x00, 0x00, 0xCC, 0xE0, 0x22, 0x00, 0x82, 0x31, 0xCC, 0xE0, 0x22, 0x00, + 0xD2, 0x0D, 0xCC, 0xE0, 0x20, 0x00, 0x82, 0x25, 0xCC, 0xE0, 0x20, 0x00, 0xD2, 0x25, 0xCC, 0xE0, + 0x15, 0x00, 0x92, 0x2E, 0x99, 0xD0, 0xAF, 0x15, 0xF2, 0x7A, 0xCC, 0xE0, 0x80, 0x00, 0x82, 0x25, + 0xCC, 0xE0, 0x81, 0x00, 0x82, 0x1F, 0xCC, 0xE0, 0x23, 0x00, 0x92, 0x22, 0xA9, 0xD0, 0xA4, 0x15, + 0xF2, 0x6E, 0x99, 0xE0, 0xB6, 0x15, 0xF2, 0x6B, 0x99, 0xD0, 0xB4, 0x15, 0xF2, 0x68, 0x99, 0xD0, + 0xB2, 0x15, 0xF2, 0x65, 0x99, 0xD0, 0xB1, 0x15, 0xF2, 0x62, 0x99, 0xD0, 0xB0, 0x15, 0xF2, 0x5F, + 0xA9, 0xD0, 0xA8, 0x15, 0xF2, 0x5C, 0xA9, 0xD0, 0xAA, 0x15, 0xF2, 0x59, 0xA9, 0xD0, 0xA6, 0x15, + 0xF2, 0x56, 0x99, 0xD0, 0xAD, 0x15, 0xF2, 0x53, 0x99, 0xD0, 0xAC, 0x15, 0xF2, 0x4E, 0xCC, 0xE0, + 0x32, 0x00, 0xD2, 0x18, 0xCC, 0xE0, 0x31, 0x00, 0xB2, 0x2E, 0xC4, 0xE2, 0x82, 0x17, 0xCC, 0xE0, + 0x30, 0x00, 0x92, 0x45, 0xAB, 0x13, 0x00, 0x00, 0x04, 0x20, 0x6B, 0xE5, 0x00, 0x00, 0x0C, 0xB0, + 0x40, 0x01, 0x08, 0xE0, 0x00, 0x30, 0x08, 0xD0, 0x30, 0x00, 0x06, 0xCE, 0x26, 0xBE, 0x24, 0xD1, + 0xF2, 0x31, 0xCC, 0xE0, 0x80, 0x00, 0x82, 0x31, 0xF2, 0x32, 0xAB, 0xD6, 0x00, 0x00, 0xC4, 0xD0, + 0x08, 0xE0, 0x00, 0x40, 0x82, 0x09, 0xAB, 0x13, 0x00, 0x00, 0x38, 0x7E, 0x54, 0x10, 0xB9, 0x70, + 0x70, 0x15, 0x14, 0x71, 0xF2, 0x05, 0xEB, 0x12, 0x00, 0x00, 0x38, 0x70, 0x70, 0x15, 0xB9, 0x7E, + 0x54, 0x10, 0xF2, 0x1D, 0xAB, 0x13, 0x00, 0x00, 0x04, 0x20, 0x6B, 0xE5, 0x00, 0x00, 0x06, 0x2E, + 0x0B, 0x18, 0x01, 0x00, 0xF2, 0x14, 0xB8, 0x7E, 0x40, 0x01, 0x32, 0xFE, 0x38, 0x7E, 0x28, 0x00, + 0xD4, 0x74, 0x92, 0xFD, 0xB1, 0x6B, 0x38, 0x7C, 0x3C, 0x01, 0xC6, 0x7D, 0x92, 0xF5, 0x04, 0x74, + 0xF1, 0x70, 0x08, 0x60, 0x00, 0x80, 0xF2, 0xF0, 0x6B, 0x6C, 0x00, 0x00, 0x58, 0xC1, 0x04, 0x00, + 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x08, 0xE0, + 0x00, 0x30, 0x0C, 0xD0, 0x00, 0x01, 0x26, 0xDE, 0xEB, 0x14, 0x00, 0x00, 0x06, 0x2D, 0x0C, 0x30, + 0x40, 0x00, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x38, 0x7E, 0x28, 0x00, 0xD4, 0x72, 0x82, 0x05, + 0x04, 0x72, 0xB9, 0x7E, 0x28, 0x00, 0xF2, 0xF1, 0x38, 0x7E, 0x40, 0x01, 0xB9, 0x7E, 0x40, 0x01, + 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x34, 0x18, 0x0C, 0x20, 0x00, 0x00, 0x0C, 0x30, + 0x80, 0x00, 0xC1, 0xE1, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x06, 0x2E, 0x0C, 0x20, 0x00, 0x27, + 0x0C, 0x30, 0x80, 0x00, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, + 0x00, 0xFA, 0x38, 0x67, 0xF8, 0x01, 0x0C, 0xE0, 0x00, 0x27, 0xB9, 0x60, 0x00, 0x00, 0x38, 0x67, + 0xFC, 0x01, 0xB9, 0x60, 0x04, 0x00, 0x08, 0x60, 0x00, 0x80, 0x38, 0x66, 0x04, 0xDC, 0xB9, 0x60, + 0x08, 0x00, 0x38, 0x67, 0xF0, 0x01, 0xB9, 0x60, 0x0C, 0x00, 0x38, 0x67, 0xF4, 0x01, 0x38, 0x77, + 0xCC, 0x01, 0xB9, 0x60, 0x10, 0x00, 0xB9, 0x70, 0x1C, 0x00, 0x08, 0x70, 0x00, 0x40, 0x38, 0x77, + 0x10, 0x20, 0xB9, 0xE0, 0x70, 0x00, 0x08, 0x60, 0x00, 0x80, 0xF7, 0x70, 0xB9, 0x70, 0x20, 0x00, + 0x08, 0x70, 0x80, 0x04, 0x2C, 0x70, 0xFF, 0x07, 0xB9, 0x70, 0x40, 0x00, 0x08, 0x70, 0x0E, 0x00, + 0x2C, 0x70, 0x16, 0x00, 0xB9, 0x70, 0x44, 0x00, 0x08, 0x70, 0x02, 0x01, 0x2C, 0x70, 0x14, 0x0C, + 0xB9, 0x70, 0x48, 0x00, 0x08, 0x70, 0x14, 0x0D, 0x2C, 0x70, 0xFF, 0xFF, 0xB9, 0x70, 0x4C, 0x00, + 0x14, 0x71, 0xB9, 0x70, 0x50, 0x00, 0x08, 0x70, 0x0C, 0x00, 0x2C, 0x70, 0x14, 0x00, 0xB9, 0x70, + 0x54, 0x00, 0x08, 0x70, 0x15, 0x01, 0x2C, 0x70, 0x00, 0xFF, 0xB9, 0x70, 0x58, 0x00, 0x04, 0x72, + 0xB9, 0x70, 0x60, 0x00, 0x08, 0x70, 0x08, 0x07, 0x2C, 0x70, 0x08, 0x07, 0x2C, 0x60, 0x7C, 0xDE, + 0xB9, 0x70, 0x64, 0x00, 0x28, 0x76, 0x28, 0x00, 0x28, 0x66, 0x22, 0x00, 0xB9, 0x00, 0x5C, 0x00, + 0x57, 0x78, 0x66, 0x76, 0xB9, 0x70, 0x68, 0x00, 0x08, 0x70, 0x00, 0x30, 0x2C, 0x70, 0x00, 0x49, + 0xB9, 0x70, 0x74, 0x00, 0x0C, 0x70, 0x00, 0x10, 0xB9, 0x70, 0x78, 0x00, 0x4B, 0x23, 0x00, 0x00, + 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x0C, 0xE0, + 0x00, 0x10, 0x18, 0x6E, 0x52, 0x05, 0x04, 0x70, 0xC6, 0x67, 0x06, 0xD2, 0x82, 0x19, 0x0C, 0xF0, + 0x54, 0x01, 0xF1, 0xF0, 0x38, 0x7E, 0x38, 0x05, 0x0C, 0x50, 0x50, 0x05, 0xB1, 0x7D, 0x0C, 0x70, + 0x3C, 0x15, 0x26, 0x5E, 0x04, 0x61, 0xB0, 0x37, 0x82, 0x06, 0x06, 0x46, 0x57, 0x41, 0x26, 0x4D, + 0xB1, 0x34, 0x24, 0x61, 0x24, 0x74, 0xC6, 0x75, 0x92, 0xF7, 0x18, 0x7E, 0x52, 0x05, 0x50, 0xC1, + 0x06, 0x27, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x04, 0x70, 0x06, 0x67, 0x3F, 0x57, 0x03, 0x00, + 0xC4, 0x50, 0x02, 0x08, 0x2F, 0x57, 0x02, 0x00, 0x10, 0x55, 0x24, 0x71, 0x26, 0x65, 0x13, 0x66, + 0xF2, 0xF6, 0x06, 0x26, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x30, 0xE2, + 0x08, 0x70, 0xFF, 0x00, 0x2C, 0x70, 0xFF, 0xFF, 0x56, 0xE7, 0x6C, 0xE0, 0x00, 0x0C, 0xB1, 0xE2, + 0x57, 0x31, 0x06, 0xD2, 0x4B, 0x30, 0x00, 0x00, 0x57, 0x2C, 0x66, 0x2E, 0xB1, 0x2D, 0x50, 0xC1, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x54, 0x00, 0xD9, 0xC1, 0x44, 0x00, + 0x0B, 0x3C, 0x00, 0x00, 0x06, 0x21, 0x0C, 0x30, 0x40, 0x00, 0xCB, 0x2D, 0x00, 0x00, 0x86, 0xD2, + 0x82, 0x29, 0x06, 0x21, 0x06, 0x3D, 0x4B, 0x31, 0x00, 0x00, 0x98, 0x70, 0xAE, 0x15, 0x82, 0x0A, + 0x0C, 0x20, 0x40, 0x00, 0x26, 0x21, 0x0C, 0x30, 0x00, 0x27, 0x99, 0x01, 0x40, 0x00, 0x0B, 0x41, + 0x00, 0x00, 0x08, 0xE0, 0x00, 0x30, 0x0C, 0xC0, 0x04, 0x01, 0x26, 0xCE, 0xEB, 0x14, 0x00, 0x00, + 0x06, 0x2C, 0x06, 0x31, 0x0C, 0x40, 0x2C, 0x00, 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x38, 0x7E, + 0x28, 0x00, 0xD4, 0x72, 0x82, 0x05, 0x04, 0x72, 0xB9, 0x7E, 0x28, 0x00, 0xF2, 0xF0, 0x6B, 0x15, + 0x00, 0x00, 0x06, 0x2D, 0x58, 0xC1, 0x44, 0x00, 0x2C, 0x10, 0x54, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x0C, 0x50, 0x00, 0x00, 0x0C, 0x70, 0x78, 0x00, 0x34, 0x54, 0x04, 0x60, 0x30, 0x47, 0x34, 0x74, + 0xC6, 0x75, 0x26, 0x64, 0x92, 0xFC, 0xB9, 0x60, 0x7C, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x30, 0x00, + 0xD9, 0x81, 0x10, 0x00, 0xD9, 0xC1, 0x20, 0x00, 0x30, 0x22, 0x30, 0xB3, 0x08, 0xC0, 0x00, 0x80, + 0x08, 0x80, 0x00, 0x80, 0x06, 0xA4, 0x06, 0x95, 0xB1, 0x21, 0x04, 0xD0, 0x2C, 0xC0, 0x1C, 0x7A, + 0x2C, 0x80, 0x08, 0x7A, 0x2F, 0x7C, 0x0D, 0x00, 0x20, 0xE7, 0x30, 0x21, 0x36, 0x2E, 0x06, 0x32, + 0xAB, 0x97, 0x00, 0x00, 0x06, 0x42, 0x04, 0x70, 0x2F, 0x58, 0x07, 0x00, 0x20, 0x55, 0xB9, 0x41, + 0x04, 0x00, 0xB9, 0x71, 0x0C, 0x00, 0x3F, 0x25, 0x0B, 0x00, 0x06, 0x32, 0xB9, 0x51, 0x08, 0x00, + 0xAB, 0x97, 0x00, 0x00, 0x38, 0x41, 0x04, 0x00, 0x38, 0x51, 0x08, 0x00, 0x38, 0x71, 0x0C, 0x00, + 0x26, 0x24, 0xCC, 0x20, 0x0F, 0x21, 0xD2, 0x05, 0xB1, 0xEA, 0xB1, 0x59, 0x04, 0x21, 0xF2, 0x09, + 0x24, 0x72, 0xCC, 0x70, 0x14, 0x00, 0x92, 0xE1, 0x24, 0xD2, 0xC4, 0xDC, 0x92, 0xD4, 0x14, 0x21, + 0x58, 0xC1, 0x20, 0x00, 0x58, 0x81, 0x10, 0x00, 0x2C, 0x10, 0x30, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x18, 0x70, 0xAC, 0x15, 0x3C, 0x10, 0x20, 0x00, 0xCC, 0x70, 0x80, 0x00, 0xD9, 0xC1, 0x10, 0x00, + 0x92, 0x42, 0x0C, 0xD0, 0x00, 0x10, 0x18, 0x7D, 0x52, 0x05, 0xC4, 0x72, 0x92, 0x3C, 0x38, 0xCD, + 0x3C, 0x05, 0x0C, 0x70, 0xFF, 0x0F, 0x56, 0x7C, 0xB9, 0x71, 0x08, 0x00, 0x06, 0x7C, 0x77, 0x76, + 0x04, 0x2C, 0x04, 0x38, 0x04, 0x44, 0x5C, 0x70, 0xFF, 0x0F, 0x26, 0x21, 0x26, 0x31, 0x26, 0x41, + 0x06, 0x51, 0xB9, 0x71, 0x0C, 0x00, 0x6B, 0x37, 0x00, 0x00, 0x14, 0x71, 0xC6, 0x27, 0x82, 0x23, + 0x38, 0x21, 0x04, 0x00, 0x38, 0x71, 0x0C, 0x00, 0x26, 0x22, 0x26, 0x27, 0x04, 0x33, 0x0B, 0x9B, + 0x00, 0x00, 0x08, 0xE0, 0x00, 0xFF, 0x5C, 0x20, 0xFF, 0x0F, 0x2C, 0xE0, 0xFF, 0x0F, 0x57, 0x26, + 0x56, 0xEC, 0x66, 0xE2, 0x30, 0x21, 0x38, 0x71, 0x08, 0x00, 0x26, 0x22, 0x26, 0x27, 0x04, 0x33, + 0x0B, 0x9B, 0x00, 0x00, 0x1C, 0x70, 0x00, 0x10, 0x5C, 0x20, 0xFF, 0x0F, 0x56, 0xE7, 0x66, 0xE2, + 0xB9, 0xED, 0x3C, 0x05, 0x58, 0xC1, 0x10, 0x00, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, 0xD1, 0x81, 0x0C, 0x60, 0x00, 0x10, 0x98, 0xD6, + 0x07, 0x05, 0x06, 0xC2, 0x06, 0xE3, 0x06, 0xB6, 0x92, 0x40, 0x0C, 0x80, 0x1D, 0x13, 0x06, 0xA6, + 0x0C, 0x90, 0x80, 0x02, 0x18, 0x7B, 0x27, 0x03, 0xC6, 0x7D, 0xC2, 0x03, 0xC4, 0xD2, 0x92, 0x03, + 0x91, 0xDC, 0xF2, 0x56, 0x60, 0x78, 0x0C, 0x30, 0x64, 0x00, 0x34, 0x71, 0x57, 0x72, 0x26, 0x7A, + 0x18, 0x67, 0x81, 0x02, 0x18, 0x77, 0x80, 0x02, 0x26, 0x66, 0x06, 0x56, 0xD7, 0x51, 0x3F, 0x66, + 0x05, 0x00, 0x26, 0x76, 0x23, 0x77, 0x26, 0x77, 0x26, 0x79, 0x70, 0x77, 0x26, 0x77, 0x06, 0x67, + 0x57, 0x61, 0x26, 0x76, 0x06, 0x27, 0xD7, 0x21, 0x36, 0x27, 0x0B, 0x9B, 0x00, 0x00, 0x0C, 0x70, + 0x80, 0x02, 0x26, 0x72, 0xCC, 0x70, 0x09, 0x06, 0xD2, 0x03, 0xB1, 0x7E, 0xF2, 0x09, 0x3C, 0x20, + 0x89, 0x03, 0x04, 0x33, 0x0B, 0x9B, 0x00, 0x00, 0x2C, 0x20, 0x09, 0x06, 0xB1, 0x2E, 0x24, 0xD1, + 0x24, 0xE4, 0x13, 0xDD, 0x24, 0x81, 0xF2, 0xC7, 0x28, 0x26, 0x0C, 0x00, 0x1C, 0x60, 0x91, 0x01, + 0x26, 0x62, 0xCC, 0x60, 0x6B, 0x07, 0xD2, 0x0F, 0x0C, 0xD0, 0xFC, 0x08, 0x3F, 0x22, 0x0D, 0x00, + 0x06, 0x32, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x6C, 0x07, 0x0B, 0x9B, 0x00, 0x00, 0x3F, 0x22, + 0x0D, 0x00, 0xF2, 0x0B, 0xCC, 0x20, 0xFC, 0x08, 0xC2, 0x08, 0x3C, 0x20, 0xFC, 0x08, 0x04, 0x33, + 0x0B, 0x9B, 0x00, 0x00, 0x2C, 0x20, 0xFC, 0x08, 0x04, 0x61, 0x91, 0x6C, 0xB1, 0x2E, 0x58, 0xC1, + 0x10, 0x00, 0x50, 0x81, 0x04, 0x20, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x70, + 0x64, 0x00, 0xB1, 0x71, 0x30, 0x71, 0x14, 0x61, 0xC4, 0x70, 0x26, 0x67, 0xB1, 0x61, 0x92, 0xFB, + 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x70, 0x06, 0x01, 0xB1, 0x71, 0x30, 0x71, 0x14, 0x61, + 0xC4, 0x70, 0x26, 0x67, 0xB1, 0x61, 0x92, 0xFB, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x1C, 0x26, 0x22, + 0xC9, 0xE1, 0x04, 0x00, 0x06, 0xE2, 0xB1, 0x01, 0x57, 0xE1, 0xB1, 0x01, 0x26, 0xE2, 0x30, 0x71, + 0xC6, 0x7E, 0xB2, 0x07, 0x2B, 0x49, 0x00, 0x00, 0x30, 0x71, 0x24, 0x71, 0xB1, 0x71, 0xF2, 0xF8, + 0x48, 0xE1, 0x04, 0x00, 0x24, 0x1C, 0xE1, 0xF0, 0xF7, 0x40, 0x04, 0x70, 0xC6, 0x74, 0x82, 0x07, + 0x2F, 0x67, 0x07, 0x00, 0x26, 0x62, 0xA1, 0x36, 0x24, 0x71, 0xF2, 0xF9, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x04, 0x20, 0xB1, 0xF1, 0x4B, 0xD7, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x08, 0x60, 0x00, 0x00, 0x08, 0x70, 0x00, 0x00, 0x2C, 0x60, 0x80, 0x00, 0x2C, 0x70, 0xCC, 0x01, + 0x36, 0x76, 0xC4, 0x70, 0x34, 0x14, 0xB1, 0xF1, 0x32, 0x02, 0x24, 0x73, 0x06, 0x47, 0x08, 0x50, + 0x00, 0x80, 0x67, 0x41, 0x04, 0x70, 0x2C, 0x50, 0x28, 0x7A, 0x14, 0x21, 0xC6, 0x74, 0x04, 0x34, + 0x26, 0x36, 0x32, 0x05, 0x30, 0xF5, 0x24, 0x54, 0xB1, 0xF6, 0xF2, 0x02, 0xB1, 0x26, 0x24, 0x71, + 0xCC, 0x70, 0x80, 0x00, 0x82, 0x03, 0x06, 0x63, 0xF2, 0xF2, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x28, 0x60, 0xA8, 0x15, 0xCC, 0x60, 0xFF, 0xFF, 0x92, 0x05, 0x0C, 0x60, 0xC8, 0x32, 0xA9, 0x60, + 0xA8, 0x15, 0x28, 0x60, 0xAA, 0x15, 0xCC, 0x60, 0xFF, 0xFF, 0x92, 0x05, 0x0C, 0x60, 0xC8, 0x32, + 0xA9, 0x60, 0xAA, 0x15, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x50, 0x00, 0x80, 0x34, 0x14, 0x08, 0x70, + 0x00, 0x80, 0x2C, 0x50, 0x0C, 0xDC, 0xB1, 0xF1, 0x2C, 0x70, 0x42, 0xDC, 0x0C, 0x60, 0xA0, 0x15, + 0x2C, 0x50, 0x31, 0x00, 0x14, 0x21, 0x10, 0x47, 0xCC, 0x40, 0xFF, 0x00, 0x82, 0x0E, 0x18, 0x37, + 0x05, 0x00, 0xCC, 0x30, 0xFF, 0x00, 0x82, 0x09, 0x26, 0x44, 0x06, 0xF4, 0xD7, 0xF1, 0x3F, 0x44, + 0x0F, 0x00, 0x26, 0x34, 0xA1, 0x36, 0xF2, 0x02, 0xA1, 0x26, 0x34, 0x71, 0xC6, 0x75, 0x34, 0x62, + 0x92, 0xEB, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x20, 0x00, 0x10, 0x04, 0x30, + 0x0C, 0x40, 0x70, 0x05, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x4B, 0x50, 0x00, 0x00, + 0xEB, 0x2C, 0x01, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x60, 0xF4, 0x01, + 0xB9, 0x60, 0x88, 0x15, 0x99, 0x00, 0xBF, 0x15, 0x14, 0x61, 0x99, 0x60, 0xBE, 0x15, 0xB9, 0x00, + 0x84, 0x15, 0xB9, 0x00, 0x80, 0x15, 0x99, 0x00, 0xBD, 0x15, 0xB9, 0x00, 0x7C, 0x15, 0xB9, 0x00, + 0x78, 0x15, 0x99, 0x00, 0xBC, 0x15, 0x04, 0x63, 0x99, 0x60, 0xBB, 0x15, 0x99, 0x00, 0xB6, 0x15, + 0x99, 0x00, 0xB5, 0x15, 0x04, 0x71, 0x99, 0x70, 0xB4, 0x15, 0x08, 0x60, 0x00, 0x80, 0x2C, 0x60, + 0x00, 0xDC, 0x18, 0x46, 0x09, 0x00, 0x99, 0x40, 0xB3, 0x15, 0x99, 0x00, 0xB2, 0x15, 0x99, 0x70, + 0xB1, 0x15, 0x99, 0x00, 0xB0, 0x15, 0x14, 0x51, 0xA9, 0x50, 0xAA, 0x15, 0xA9, 0x50, 0xA8, 0x15, + 0x18, 0x56, 0x0A, 0x00, 0x99, 0x50, 0xAF, 0x15, 0xA9, 0x00, 0xA6, 0x15, 0xA9, 0x00, 0xA4, 0x15, + 0x99, 0x00, 0xAE, 0x15, 0x99, 0x00, 0xAD, 0x15, 0x99, 0x00, 0xAC, 0x15, 0x99, 0x70, 0xBA, 0x15, + 0x99, 0x00, 0xB9, 0x15, 0x99, 0x70, 0xB8, 0x15, 0x99, 0x00, 0xB7, 0x15, 0xB9, 0x00, 0xFC, 0x17, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x4B, 0xBC, 0x00, 0x00, 0x0C, 0x60, 0x15, 0x00, + 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x04, 0x70, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0xB1, 0xF1, 0x8B, 0xE0, 0x00, 0x00, 0x04, 0x31, 0x0C, 0x20, 0x20, 0x00, 0x2B, 0xDF, + 0x00, 0x00, 0x0C, 0x20, 0xFF, 0x00, 0xEB, 0xDC, 0x00, 0x00, 0x04, 0x24, 0x04, 0x31, 0xAB, 0xD9, + 0x00, 0x00, 0x04, 0x21, 0xCB, 0xD5, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0xB1, 0xF1, 0x0B, 0xD8, 0x00, 0x00, 0x04, 0x20, 0x2B, 0xE4, 0x00, 0x00, 0x0B, 0xD5, + 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0x04, 0x21, 0xB1, 0xF1, 0xCB, 0xE1, + 0x00, 0x00, 0x0C, 0x20, 0x10, 0x00, 0x4B, 0xE1, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x28, 0xC0, 0x88, 0x15, 0x08, 0xE0, 0x00, 0x40, 0x0C, 0x20, + 0x40, 0x00, 0x38, 0xDE, 0x54, 0x10, 0x0B, 0xDB, 0x00, 0x00, 0x06, 0x3C, 0x0C, 0x20, 0xFF, 0xFF, + 0x04, 0x4A, 0x4B, 0x12, 0x00, 0x00, 0x04, 0x28, 0xB9, 0xDE, 0x54, 0x10, 0x04, 0x30, 0x0B, 0xE6, + 0x00, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, + 0x4B, 0xE2, 0x00, 0x00, 0x04, 0x25, 0x04, 0x31, 0x0B, 0xE6, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x20, 0x00, 0x01, 0xB1, 0xF1, 0x0B, 0xDB, 0x00, 0x00, + 0x0C, 0x20, 0x80, 0x00, 0x0B, 0xDB, 0x00, 0x00, 0x04, 0x20, 0x06, 0x52, 0x0C, 0x30, 0x27, 0x00, + 0x0C, 0x40, 0xFF, 0xFF, 0x0C, 0x60, 0x01, 0x02, 0x2B, 0xEE, 0x00, 0x00, 0x04, 0x21, 0x0C, 0x30, + 0x8F, 0x01, 0x0C, 0x40, 0xFF, 0xFF, 0x04, 0x50, 0x0C, 0x60, 0x01, 0x02, 0x2B, 0xEE, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x04, 0x21, 0xB1, 0xF1, 0x6B, 0xE5, + 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0xC4, 0x20, 0x34, 0x14, 0xB1, 0xF1, 0x82, 0x09, + 0x0C, 0x20, 0x00, 0x60, 0x0B, 0xDB, 0x00, 0x00, 0x04, 0x21, 0x6B, 0xB5, 0x00, 0x00, 0xF2, 0x07, + 0x6B, 0xB5, 0x00, 0x00, 0x0C, 0x20, 0x00, 0x60, 0xEB, 0xDB, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x08, 0x60, 0x00, 0x40, 0x38, 0xE6, + 0x70, 0x60, 0x06, 0x72, 0x23, 0xEE, 0xCC, 0xE0, 0x00, 0xC9, 0x06, 0xC3, 0xC2, 0x05, 0x08, 0x60, + 0x04, 0x00, 0x66, 0xE6, 0xF7, 0xE1, 0x06, 0x37, 0x06, 0x2E, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, + 0xA0, 0x0F, 0x0B, 0x9B, 0x00, 0x00, 0x24, 0x25, 0x04, 0x3A, 0x0B, 0x9B, 0x00, 0x00, 0x08, 0x70, + 0x00, 0x40, 0x38, 0x77, 0xCC, 0x71, 0x06, 0xD2, 0x77, 0x7C, 0x24, 0x72, 0xC6, 0x27, 0xB2, 0x02, + 0x06, 0xD7, 0xC4, 0xC0, 0x82, 0x18, 0x06, 0x7E, 0xD7, 0x71, 0x2F, 0x2E, 0x0E, 0x00, 0x26, 0x27, + 0x06, 0x3D, 0x0B, 0x9B, 0x00, 0x00, 0x3C, 0xE0, 0xB0, 0x9A, 0xCC, 0xE0, 0x20, 0x03, 0x04, 0x71, + 0xD2, 0x02, 0x04, 0x70, 0xD7, 0x7F, 0x66, 0x72, 0x0C, 0x60, 0x00, 0x00, 0xB9, 0x76, 0x3C, 0x00, + 0x8B, 0x36, 0x00, 0x00, 0x06, 0x2D, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x38, 0x70, 0x94, 0x15, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x38, 0xE7, 0x04, 0x00, 0x18, 0x27, + 0x05, 0x00, 0x04, 0x30, 0x0C, 0xC0, 0xFF, 0x00, 0x2B, 0x63, 0x00, 0x00, 0x56, 0xCE, 0x06, 0xD2, + 0x04, 0x30, 0x06, 0x2C, 0x2B, 0x63, 0x00, 0x00, 0x08, 0x70, 0xFF, 0xFF, 0x56, 0x7E, 0x57, 0xD4, + 0x66, 0x72, 0x66, 0x7D, 0x08, 0x60, 0x00, 0x40, 0xB9, 0x76, 0x6C, 0x72, 0x50, 0xC1, 0x2C, 0x10, + 0x10, 0x00, 0xE1, 0xF0, 0x38, 0x70, 0x94, 0x15, 0x34, 0x14, 0xB1, 0xF1, 0x18, 0x27, 0x08, 0x00, + 0x04, 0x31, 0x2B, 0x63, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x18, 0x70, 0x8B, 0x67, + 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x28, 0x20, 0xA6, 0x15, 0x34, 0x18, 0xD4, 0x21, + 0xC1, 0xE1, 0x82, 0x0A, 0x04, 0x21, 0x2B, 0x15, 0x03, 0x00, 0x18, 0x60, 0xBB, 0x15, 0x1C, 0x70, + 0x80, 0x00, 0x66, 0x76, 0xF2, 0x07, 0x2B, 0x15, 0x03, 0x00, 0x18, 0x70, 0xBB, 0x15, 0x5C, 0x70, + 0x7F, 0x00, 0x99, 0x70, 0xBB, 0x15, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x34, 0x14, 0x04, 0x21, + 0xB1, 0xF1, 0x2B, 0xE4, 0x00, 0x00, 0x98, 0x70, 0xAC, 0x15, 0x82, 0x25, 0x5C, 0x70, 0xF0, 0x00, + 0xCC, 0x70, 0x80, 0x00, 0x82, 0x0A, 0xCC, 0x70, 0xC0, 0x00, 0x82, 0x1A, 0xCC, 0x70, 0x40, 0x00, + 0x92, 0x1A, 0x99, 0x00, 0xB3, 0x15, 0xF2, 0x17, 0x04, 0x71, 0x99, 0x70, 0xAE, 0x15, 0x99, 0x70, + 0xB0, 0x15, 0x99, 0x00, 0xB1, 0x15, 0x04, 0x20, 0x99, 0x00, 0xAD, 0x15, 0x2B, 0x15, 0x03, 0x00, + 0x18, 0x60, 0xBB, 0x15, 0x5C, 0x60, 0x7F, 0x00, 0x99, 0x60, 0xBB, 0x15, 0xF2, 0x04, 0x04, 0x61, + 0x99, 0x60, 0xAE, 0x15, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, + 0x08, 0x40, 0x00, 0x00, 0x2C, 0x20, 0x80, 0x02, 0x08, 0x30, 0x00, 0x80, 0x2C, 0x40, 0x6C, 0x03, + 0x3C, 0x10, 0x10, 0x00, 0x36, 0x42, 0x2C, 0x30, 0x74, 0x7B, 0xD1, 0xC1, 0x0C, 0xF0, 0x04, 0x01, + 0xF1, 0xF0, 0x0C, 0x30, 0x00, 0xFC, 0x04, 0x20, 0x0C, 0xF0, 0x10, 0x03, 0xF1, 0xF0, 0x0C, 0xE0, + 0x00, 0x00, 0x08, 0x30, 0x00, 0x80, 0xB9, 0x2E, 0x18, 0x00, 0x2C, 0x30, 0x00, 0xF0, 0x04, 0x20, + 0x0C, 0xF0, 0x10, 0x03, 0xF1, 0xF0, 0x08, 0x70, 0x00, 0x80, 0x38, 0xC7, 0xD0, 0xFB, 0xB9, 0x2E, + 0x14, 0x00, 0x06, 0xD2, 0xCC, 0xC0, 0xFF, 0x00, 0x82, 0x1B, 0xC6, 0xC2, 0x82, 0x19, 0xEB, 0x14, + 0x00, 0x00, 0x08, 0x60, 0x1C, 0xE1, 0x08, 0x70, 0x00, 0x30, 0x2C, 0x60, 0x01, 0xE9, 0xB9, 0x67, + 0x04, 0x01, 0xB9, 0xC7, 0x08, 0x01, 0xB9, 0xD7, 0x0C, 0x01, 0x38, 0x6E, 0x18, 0x00, 0xB9, 0x67, + 0x10, 0x01, 0x0B, 0xE5, 0x00, 0x00, 0x04, 0x2A, 0xEB, 0x49, 0x00, 0x00, 0xF2, 0xFB, 0x50, 0xC1, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x60, 0xB8, 0x15, 0x34, 0x18, 0xC1, 0xE1, + 0x82, 0x09, 0x34, 0x61, 0x93, 0x66, 0x99, 0x60, 0xB8, 0x15, 0x92, 0x3B, 0x99, 0x00, 0xBA, 0x15, + 0xF2, 0x38, 0xDC, 0x20, 0x80, 0x00, 0x0C, 0xE0, 0x50, 0x00, 0x82, 0x03, 0x0C, 0xE0, 0x35, 0x00, + 0xEB, 0xBA, 0x00, 0x00, 0xC6, 0x2E, 0xA2, 0x0A, 0x38, 0x50, 0x80, 0x15, 0x18, 0x60, 0xB9, 0x15, + 0x34, 0x53, 0xC6, 0x65, 0xB2, 0x17, 0x24, 0x61, 0xF2, 0x13, 0x98, 0x60, 0xB9, 0x15, 0x82, 0x12, + 0x98, 0x50, 0xBF, 0x15, 0x82, 0x04, 0xB8, 0x50, 0x84, 0x15, 0x92, 0x0C, 0x34, 0xE4, 0xC6, 0x2E, + 0xD2, 0x09, 0x18, 0x50, 0xB7, 0x15, 0xCC, 0x50, 0x30, 0x00, 0xD2, 0x04, 0x34, 0x61, 0x99, 0x60, + 0xB9, 0x15, 0x98, 0x50, 0xBA, 0x15, 0x18, 0x70, 0xB9, 0x15, 0x92, 0x07, 0xC4, 0x74, 0xC2, 0x09, + 0x04, 0x71, 0x99, 0x70, 0xBA, 0x15, 0xF2, 0x05, 0xC4, 0x72, 0xD2, 0x03, 0x99, 0x00, 0xBA, 0x15, + 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, 0x06, 0xE2, 0x6B, 0xD1, + 0x00, 0x00, 0x06, 0x2E, 0xCB, 0xCB, 0x00, 0x00, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, + 0x04, 0x20, 0x34, 0x14, 0x06, 0x32, 0xB1, 0xF1, 0x6B, 0x1C, 0x01, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, 0x06, 0xE2, 0x18, 0x20, 0xBB, 0x15, 0x5C, 0x20, + 0xF0, 0x00, 0x64, 0x23, 0x99, 0x20, 0xBB, 0x15, 0x4B, 0xC1, 0x00, 0x00, 0x4B, 0xB9, 0x00, 0x00, + 0xC4, 0xE0, 0x92, 0x06, 0xCB, 0xB8, 0x00, 0x00, 0x04, 0x24, 0x4B, 0xF9, 0x00, 0x00, 0xAB, 0x24, + 0x01, 0x00, 0xCB, 0xB9, 0x00, 0x00, 0x40, 0xE1, 0x04, 0x61, 0x99, 0x60, 0xBC, 0x15, 0x24, 0x18, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, 0x0C, 0x60, 0x00, 0x10, 0xA8, 0x76, 0x24, 0x00, + 0x82, 0x05, 0x34, 0x71, 0xA9, 0x76, 0x24, 0x00, 0xF2, 0x30, 0x18, 0x60, 0xBF, 0x15, 0x18, 0x70, + 0xBE, 0x15, 0xC6, 0x76, 0x92, 0x2A, 0xC4, 0x70, 0x82, 0x04, 0x28, 0x70, 0xA8, 0x15, 0xF2, 0x03, + 0x28, 0x70, 0xAA, 0x15, 0xC6, 0x72, 0xC2, 0x21, 0x36, 0x72, 0x06, 0x27, 0x57, 0x23, 0x57, 0x74, + 0x26, 0x27, 0x0C, 0x30, 0x10, 0x27, 0x0B, 0x9B, 0x00, 0x00, 0xC4, 0x2A, 0xC2, 0x16, 0xAB, 0xE2, + 0x00, 0x00, 0x0B, 0xE3, 0x00, 0x00, 0x98, 0x70, 0xAF, 0x15, 0x82, 0x04, 0xAB, 0xD5, 0x00, 0x00, + 0xF2, 0x08, 0x18, 0x70, 0xC1, 0x15, 0x93, 0x07, 0x92, 0x04, 0x2B, 0x49, 0x00, 0x00, 0xF2, 0xFA, + 0x99, 0x00, 0xC1, 0x15, 0x8B, 0xE3, 0x00, 0x00, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, + 0x18, 0x70, 0xAD, 0x15, 0x0C, 0x60, 0x96, 0x00, 0xC4, 0x70, 0x92, 0x05, 0x38, 0x70, 0x94, 0x15, + 0x28, 0x67, 0x1E, 0x00, 0x0C, 0x70, 0x00, 0x10, 0x28, 0x57, 0x6A, 0x01, 0x26, 0x65, 0x28, 0x57, + 0x0C, 0x00, 0xC6, 0x65, 0x02, 0x17, 0x98, 0x57, 0x28, 0x03, 0x92, 0x14, 0x28, 0x57, 0x06, 0x00, + 0xDC, 0x50, 0xE0, 0x06, 0x92, 0x0F, 0x38, 0x70, 0x7C, 0x15, 0x04, 0x21, 0x24, 0x71, 0xB9, 0x70, + 0x7C, 0x15, 0x38, 0x60, 0x94, 0x15, 0x18, 0x66, 0x20, 0x00, 0xC6, 0x76, 0xD2, 0x06, 0x06, 0x25, + 0xF2, 0x04, 0xB9, 0x00, 0x7C, 0x15, 0x04, 0x20, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, + 0xD1, 0xC1, 0x18, 0x70, 0xBF, 0x15, 0x18, 0x50, 0xBE, 0x15, 0xC6, 0x57, 0x82, 0x3F, 0x99, 0x70, + 0xBE, 0x15, 0xC4, 0x70, 0x18, 0x70, 0xBB, 0x15, 0x1C, 0x60, 0x10, 0x00, 0x56, 0x76, 0x82, 0x1C, + 0x64, 0x72, 0x99, 0x70, 0xBB, 0x15, 0x8B, 0x2F, 0x01, 0x00, 0xB9, 0x00, 0x84, 0x15, 0xB9, 0x00, + 0x7C, 0x15, 0x38, 0x70, 0x94, 0x15, 0x18, 0x27, 0x41, 0x00, 0x18, 0x37, 0x78, 0x00, 0x18, 0x47, + 0x77, 0x00, 0x18, 0x57, 0x58, 0x00, 0x18, 0x67, 0x20, 0x00, 0x0C, 0xF0, 0xA8, 0x00, 0xF1, 0xF0, + 0xB9, 0x20, 0x80, 0x15, 0xF2, 0x0C, 0x64, 0x71, 0x99, 0x70, 0xBB, 0x15, 0xCB, 0x30, 0x01, 0x00, + 0x38, 0x70, 0x94, 0x15, 0x18, 0x67, 0x55, 0x00, 0x99, 0x60, 0x6D, 0x12, 0x98, 0x70, 0xBF, 0x15, + 0x82, 0x05, 0x0C, 0xF0, 0x68, 0x01, 0xF1, 0xF0, 0xF2, 0x05, 0x18, 0x20, 0xBB, 0x15, 0x2B, 0xCF, + 0x00, 0x00, 0x18, 0x20, 0xBB, 0x15, 0xCB, 0x78, 0x00, 0x00, 0x18, 0x20, 0xBB, 0x15, 0x4B, 0x74, + 0x00, 0x00, 0x18, 0x20, 0xBB, 0x15, 0x4B, 0xC1, 0x00, 0x00, 0x18, 0x20, 0xBB, 0x15, 0x2B, 0xCF, + 0x00, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, + 0xD1, 0xC1, 0x98, 0x70, 0xBF, 0x15, 0x06, 0xDE, 0x82, 0x53, 0x04, 0x63, 0x99, 0x60, 0xBC, 0x15, + 0x0B, 0x80, 0x00, 0x00, 0xC4, 0x20, 0x82, 0x07, 0x4B, 0xB9, 0x00, 0x00, 0x0C, 0xF0, 0x68, 0x01, + 0xF1, 0xF0, 0xF2, 0x03, 0xCB, 0xB9, 0x00, 0x00, 0x0C, 0xF0, 0x8C, 0x01, 0xF1, 0xF0, 0x04, 0x21, + 0x0B, 0xB8, 0x00, 0x00, 0xCB, 0x39, 0x01, 0x00, 0x06, 0xE2, 0x04, 0x21, 0x0B, 0xB7, 0x00, 0x00, + 0x04, 0x28, 0x0B, 0xB8, 0x00, 0x00, 0x0C, 0x20, 0x10, 0x00, 0x0B, 0xB7, 0x00, 0x00, 0xC4, 0xE0, + 0x82, 0x03, 0x2B, 0x3D, 0x01, 0x00, 0x98, 0x70, 0x05, 0x10, 0x82, 0x06, 0xB9, 0x00, 0x84, 0x15, + 0xB9, 0x00, 0x78, 0x15, 0xF2, 0x06, 0x38, 0x70, 0x84, 0x15, 0x24, 0x71, 0xB9, 0x70, 0x84, 0x15, + 0xEB, 0x28, 0x01, 0x00, 0x38, 0x70, 0x80, 0x15, 0x38, 0x60, 0x84, 0x15, 0x24, 0x73, 0xC6, 0x67, + 0xA2, 0x05, 0x99, 0x00, 0xBF, 0x15, 0x99, 0x00, 0xB7, 0x15, 0x98, 0x60, 0xBD, 0x15, 0x82, 0x35, + 0x04, 0x20, 0x99, 0x00, 0xBD, 0x15, 0x99, 0x00, 0xBF, 0x15, 0xAB, 0xF0, 0x00, 0x00, 0x28, 0x20, + 0x88, 0x15, 0x6B, 0x14, 0x00, 0x00, 0x04, 0x21, 0x2B, 0x7A, 0x00, 0x00, 0xF2, 0x26, 0x04, 0x62, + 0x99, 0x60, 0xBC, 0x15, 0x4B, 0xB9, 0x00, 0x00, 0x04, 0x21, 0x0B, 0xB8, 0x00, 0x00, 0x04, 0x21, + 0x0B, 0xB7, 0x00, 0x00, 0x04, 0x28, 0x0B, 0xB8, 0x00, 0x00, 0x0C, 0x20, 0x10, 0x00, 0x0B, 0xB7, + 0x00, 0x00, 0xEB, 0x28, 0x01, 0x00, 0xAB, 0xD4, 0x02, 0x00, 0xC4, 0x20, 0x82, 0x0C, 0x18, 0x70, + 0xAC, 0x15, 0x5C, 0x70, 0xF0, 0x00, 0xCC, 0x70, 0x40, 0x00, 0x82, 0x07, 0x04, 0x71, 0x99, 0x70, + 0xBF, 0x15, 0xF2, 0x03, 0x8B, 0x79, 0x00, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, + 0x34, 0x14, 0xB1, 0xF1, 0xCB, 0x32, 0x00, 0x00, 0xC4, 0x20, 0x82, 0x03, 0x0B, 0xE5, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x04, 0x20, 0xB1, 0xF1, 0xEB, 0xEF, + 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x18, 0x04, 0x20, 0xC1, 0xE1, 0x6B, 0xF1, + 0x00, 0x00, 0x06, 0xE2, 0x04, 0x20, 0xAB, 0xF0, 0x00, 0x00, 0x06, 0x2E, 0x40, 0xE1, 0x24, 0x18, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0xEB, 0x14, 0x00, 0x00, 0x08, 0x70, 0x1C, 0xE1, + 0x08, 0x60, 0x00, 0x30, 0x2C, 0x70, 0x04, 0xE9, 0xB9, 0x76, 0x04, 0x01, 0xB9, 0x76, 0x08, 0x01, + 0x0B, 0xE5, 0x00, 0x00, 0x04, 0x2A, 0xEB, 0x49, 0x00, 0x00, 0xF2, 0xFB, 0x34, 0x14, 0xB1, 0xF1, + 0x4B, 0x16, 0x00, 0x00, 0xC4, 0x20, 0x82, 0x05, 0x38, 0x20, 0x74, 0x15, 0xCB, 0x17, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0x04, 0x21, 0xC1, 0xE1, 0xEB, 0xEF, + 0x00, 0x00, 0x08, 0xE0, 0x07, 0x00, 0x2C, 0xE0, 0x20, 0xA1, 0xEB, 0x93, 0x00, 0x00, 0x98, 0x70, + 0xB6, 0x15, 0x92, 0x1B, 0x04, 0x21, 0x6B, 0xF1, 0x00, 0x00, 0x26, 0x22, 0x06, 0x72, 0x57, 0x71, + 0x26, 0x27, 0xC6, 0x2E, 0xC2, 0xF3, 0x08, 0x70, 0x00, 0x80, 0x38, 0x77, 0xCC, 0xFB, 0xCC, 0x70, + 0xFF, 0x00, 0x82, 0x04, 0x98, 0x70, 0xB5, 0x15, 0x82, 0x08, 0x04, 0x21, 0xAB, 0xF0, 0x00, 0x00, + 0x04, 0x21, 0xEB, 0xEF, 0x00, 0x00, 0xF2, 0xE2, 0x04, 0x21, 0xAB, 0xF0, 0x00, 0x00, 0x40, 0xE1, + 0x24, 0x18, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x80, 0xC6, 0x27, 0x34, 0x14, 0xB1, 0xF1, 0x82, 0x03, + 0xC6, 0x37, 0x92, 0x04, 0x3B, 0xA2, 0x00, 0x00, 0xF2, 0x0E, 0x08, 0x70, 0x00, 0x40, 0x04, 0x61, + 0xB9, 0x67, 0x00, 0x80, 0xB9, 0x27, 0x04, 0x80, 0xB9, 0x37, 0x08, 0x80, 0xB9, 0x07, 0x0C, 0x80, + 0x38, 0x27, 0x10, 0x80, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0xC4, 0x20, 0x34, 0x14, + 0xB1, 0xF1, 0x82, 0x0F, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x37, 0x18, 0x80, 0xB9, 0x47, 0x1C, 0x80, + 0x06, 0x67, 0x38, 0x76, 0x28, 0x80, 0xD4, 0x71, 0x82, 0xFD, 0x38, 0x26, 0x20, 0x80, 0xF2, 0x05, + 0x06, 0x23, 0x06, 0x34, 0x5B, 0xA3, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x06, 0x72, 0x34, 0x14, 0x06, 0x43, 0x04, 0x21, 0x06, 0x37, 0xB1, 0xF1, 0x6B, 0x99, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xD3, + 0xF7, 0xDF, 0xC4, 0xD0, 0x06, 0xE4, 0xF7, 0xEF, 0x82, 0x02, 0x16, 0x33, 0xC4, 0xE0, 0x82, 0x02, + 0x16, 0x44, 0xC4, 0x20, 0x82, 0x0F, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x37, 0x18, 0x80, 0xB9, 0x47, + 0x1C, 0x80, 0x06, 0x67, 0x38, 0x76, 0x28, 0x80, 0xD4, 0x71, 0x82, 0xFD, 0x38, 0x26, 0x20, 0x80, + 0xF2, 0x05, 0x06, 0x23, 0x06, 0x34, 0x5B, 0xA3, 0x00, 0x00, 0xC6, 0xDE, 0x82, 0x02, 0x16, 0x22, + 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x80, 0xC6, 0x26, 0x34, 0x14, + 0xB1, 0xF1, 0x06, 0x72, 0x06, 0x43, 0x82, 0x04, 0xC6, 0x36, 0x04, 0x21, 0x92, 0x02, 0x04, 0x20, + 0x06, 0x37, 0xCB, 0x9B, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0xC4, 0x20, 0x3C, 0x10, + 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xE3, 0x06, 0xD4, 0x82, 0x0F, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x37, + 0x18, 0x80, 0xB9, 0x47, 0x1C, 0x80, 0x06, 0x67, 0x38, 0x76, 0x28, 0x80, 0xD4, 0x71, 0x82, 0xFD, + 0x38, 0x26, 0x24, 0x80, 0xF2, 0x0A, 0x06, 0x23, 0x06, 0x34, 0x5B, 0xA3, 0x00, 0x00, 0x06, 0x3D, + 0xAB, 0x97, 0x00, 0x00, 0x3F, 0x22, 0x0E, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, + 0x06, 0x72, 0x34, 0x14, 0x06, 0x43, 0x04, 0x21, 0x06, 0x37, 0xB1, 0xF1, 0x6B, 0x9F, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0xC4, 0x30, 0x04, 0x40, 0x04, 0x50, 0x0C, 0x60, 0x20, 0x00, + 0x52, 0x03, 0xA6, 0x42, 0x25, 0x50, 0xB4, 0x61, 0x02, 0x06, 0xA6, 0x44, 0x25, 0x55, 0xA6, 0x33, + 0x42, 0xF9, 0xF2, 0xFA, 0x06, 0x24, 0x06, 0x35, 0xE1, 0xF0, 0x04, 0x40, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x9E, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x9D, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x9C, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x9B, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x9A, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x99, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x98, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x97, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x96, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x95, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x94, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x93, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x92, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x91, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x90, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8F, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x8E, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8D, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8C, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x8B, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8A, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x89, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x88, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x87, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x86, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x85, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x84, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x83, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x82, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x81, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x80, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x7F, 0x00, 0x00, 0xE1, 0xF0, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x62, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x63, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x64, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x65, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x66, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x67, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x68, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x69, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x6A, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x6B, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x6C, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x6D, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x6E, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x6F, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x70, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x71, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x72, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x73, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x74, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x75, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x76, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x77, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x78, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x79, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x7A, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x7B, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x7C, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x7D, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x7E, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x7F, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x80, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, + 0x08, 0x70, 0x00, 0x40, 0xC4, 0x20, 0x38, 0x67, 0x60, 0x71, 0x82, 0x09, 0x08, 0x50, 0x40, 0x00, + 0x66, 0x65, 0xB9, 0x67, 0x60, 0x71, 0x2B, 0x49, 0x00, 0x00, 0xF2, 0x08, 0x08, 0x50, 0xBF, 0xFF, + 0x2C, 0x50, 0xFF, 0xFF, 0x56, 0x65, 0xB9, 0x67, 0x60, 0x71, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x08, 0x70, 0xD6, 0x72, 0x82, 0xFD, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x70, 0x00, 0x40, 0x38, 0x67, 0x08, 0x70, 0xB9, 0x67, 0x08, 0x70, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x18, 0xC1, 0xE1, 0x06, 0xE2, 0x8B, 0xB7, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0xB9, 0xE7, + 0x00, 0x70, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x70, 0x70, + 0x64, 0x72, 0xB9, 0x76, 0x70, 0x70, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x70, 0x70, + 0x64, 0x71, 0xB9, 0x76, 0x70, 0x70, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x70, 0x70, + 0x14, 0x52, 0x56, 0x75, 0xB9, 0x76, 0x70, 0x70, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, + 0x38, 0x27, 0xE0, 0x70, 0x5C, 0x20, 0xFF, 0x7F, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, + 0x38, 0x27, 0x5C, 0x70, 0x5C, 0x20, 0x7F, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0xC4, 0x20, 0x08, 0x60, + 0x00, 0x40, 0x82, 0x08, 0x08, 0x70, 0x0F, 0xC0, 0x2C, 0x70, 0xFF, 0xFF, 0xB9, 0x76, 0x3C, 0x71, + 0xF2, 0x03, 0xB9, 0x06, 0x3C, 0x71, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x0C, 0x20, + 0x08, 0x70, 0x08, 0xD0, 0x00, 0x40, 0x08, 0x30, 0x00, 0x80, 0x26, 0x2D, 0x2C, 0x30, 0x08, 0xE2, + 0x0C, 0x40, 0xF8, 0x02, 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x00, 0x40, 0x08, 0xE0, + 0x00, 0x30, 0x08, 0x30, 0x00, 0x80, 0x26, 0x2E, 0x2C, 0x30, 0x00, 0xE5, 0x0C, 0x40, 0x00, 0x09, + 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0xC4, 0x52, 0x08, 0x30, 0x00, 0x80, 0x26, 0x2E, + 0x2C, 0x30, 0x00, 0xEE, 0x0C, 0x40, 0x50, 0x01, 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x08, 0x70, + 0x0F, 0xC0, 0x2C, 0x70, 0xFF, 0xFF, 0x0C, 0x20, 0x00, 0x40, 0x08, 0x30, 0x00, 0x80, 0xB9, 0x7D, + 0x3C, 0x71, 0x26, 0x2E, 0x2C, 0x30, 0x00, 0xF0, 0x0C, 0x40, 0x00, 0x09, 0x0C, 0xF0, 0x04, 0x01, + 0xF1, 0xF0, 0x0C, 0x20, 0x00, 0x49, 0x08, 0x30, 0x08, 0x07, 0xB9, 0x0D, 0x3C, 0x71, 0x26, 0x2E, + 0x2C, 0x30, 0x08, 0x07, 0x0C, 0x40, 0x00, 0x09, 0x0C, 0xF0, 0x40, 0x01, 0xF1, 0xF0, 0x50, 0xC1, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0xC4, 0x23, 0x82, 0x77, 0xC4, 0x23, 0x08, 0x70, + 0x00, 0x40, 0xD2, 0x07, 0xC4, 0x21, 0x82, 0x1C, 0xC4, 0x22, 0x82, 0x2D, 0xFA, 0x89, 0x00, 0x00, + 0xCC, 0x20, 0x81, 0x00, 0x82, 0x1E, 0xCC, 0x20, 0x82, 0x00, 0x82, 0x3D, 0xC4, 0x28, 0x9A, 0x80, + 0x00, 0x00, 0x0C, 0x50, 0x40, 0x40, 0xB9, 0x57, 0x34, 0x70, 0x04, 0x51, 0xB9, 0x57, 0x64, 0x70, + 0x08, 0x50, 0x03, 0x00, 0x2C, 0x50, 0x63, 0x07, 0xB9, 0x57, 0x54, 0x70, 0xF2, 0x6B, 0x08, 0x50, + 0x14, 0x00, 0x2C, 0x50, 0x60, 0x40, 0xB9, 0x57, 0x34, 0x70, 0xB9, 0x27, 0x64, 0x70, 0xF2, 0x1E, + 0x08, 0x50, 0x12, 0x00, 0x2C, 0x50, 0x40, 0x20, 0xB9, 0x57, 0x34, 0x70, 0x04, 0x52, 0xB9, 0x57, + 0x64, 0x70, 0xF2, 0x38, 0x98, 0x50, 0xBA, 0x15, 0x82, 0x06, 0x08, 0x50, 0x12, 0x00, 0x2C, 0x50, + 0x60, 0x4A, 0xF2, 0x05, 0x08, 0x50, 0x14, 0x00, 0x2C, 0x50, 0x60, 0x40, 0xB9, 0x57, 0x34, 0x70, + 0x04, 0x51, 0xB9, 0x57, 0x64, 0x70, 0x08, 0x70, 0x00, 0x40, 0x08, 0x50, 0x05, 0x00, 0x2C, 0x50, + 0x61, 0x07, 0xF2, 0x24, 0x98, 0x50, 0xBA, 0x15, 0x82, 0x12, 0x28, 0x40, 0x22, 0x10, 0x08, 0x50, + 0x12, 0x00, 0xC4, 0x49, 0xC2, 0x04, 0x2C, 0x50, 0x45, 0x38, 0xF2, 0x0D, 0xC4, 0x45, 0xC2, 0x04, + 0x2C, 0x50, 0x42, 0x38, 0xF2, 0x08, 0x2C, 0x50, 0x40, 0x38, 0xF2, 0x05, 0x08, 0x50, 0x12, 0x00, + 0x2C, 0x50, 0x40, 0x20, 0xB9, 0x57, 0x34, 0x70, 0x04, 0x52, 0xB9, 0x57, 0x64, 0x70, 0x08, 0x70, + 0x00, 0x40, 0x08, 0x50, 0x03, 0x00, 0x2C, 0x50, 0x61, 0x57, 0xB9, 0x57, 0x54, 0x70, 0x08, 0x50, + 0x80, 0x0F, 0x2C, 0x50, 0x80, 0x0F, 0xF2, 0x14, 0x08, 0x70, 0x00, 0x40, 0x0C, 0x50, 0x26, 0x26, + 0xB9, 0x57, 0x34, 0x70, 0x04, 0x51, 0xB9, 0x57, 0x64, 0x70, 0x08, 0x50, 0x03, 0x00, 0x2C, 0x50, + 0x63, 0x07, 0xB9, 0x57, 0x54, 0x70, 0x08, 0x50, 0x00, 0x0E, 0x2C, 0x50, 0x00, 0x0E, 0xB9, 0x57, + 0x6C, 0x70, 0x08, 0x50, 0xF0, 0x07, 0x2C, 0x50, 0x66, 0x7F, 0xB9, 0x57, 0x1C, 0x71, 0x08, 0x70, + 0x00, 0x40, 0x08, 0x50, 0x96, 0x00, 0xB9, 0x57, 0x30, 0x70, 0x98, 0x70, 0xBA, 0x15, 0x08, 0x60, + 0x00, 0x40, 0x82, 0x04, 0x0C, 0x70, 0xFF, 0x3F, 0xF2, 0x05, 0x08, 0x70, 0x01, 0x00, 0x2C, 0x70, + 0xFF, 0x3F, 0xB9, 0x76, 0x58, 0x70, 0xE1, 0xF0, 0x54, 0x2F, 0xC4, 0x21, 0x92, 0x04, 0x38, 0x60, + 0x8C, 0x15, 0xF2, 0x03, 0x38, 0x60, 0x90, 0x15, 0x38, 0x56, 0x08, 0x00, 0x08, 0x70, 0x00, 0x40, + 0xB9, 0x57, 0xB4, 0x70, 0x38, 0x56, 0x0C, 0x00, 0x08, 0x40, 0xDF, 0xFF, 0xB9, 0x57, 0xB8, 0x70, + 0x38, 0x56, 0x10, 0x00, 0x2C, 0x40, 0xFF, 0xFF, 0x56, 0x54, 0xB9, 0x57, 0xC0, 0x70, 0x38, 0x56, + 0x14, 0x00, 0xB9, 0x57, 0xC4, 0x70, 0x98, 0x50, 0xAD, 0x15, 0x82, 0x0C, 0x08, 0x60, 0x01, 0x00, + 0x2C, 0x60, 0x81, 0x11, 0xB9, 0x67, 0xAC, 0x70, 0x08, 0x60, 0x10, 0x00, 0x2C, 0x60, 0x10, 0x00, + 0xF2, 0x06, 0x30, 0x56, 0xB9, 0x57, 0xAC, 0x70, 0x38, 0x66, 0x04, 0x00, 0xB9, 0x67, 0xB0, 0x70, + 0xE1, 0xF0, 0x00, 0x00, 0x54, 0x2F, 0xC4, 0x21, 0x92, 0x04, 0x38, 0x70, 0x8C, 0x15, 0xF2, 0x03, + 0x38, 0x70, 0x90, 0x15, 0x18, 0x60, 0x28, 0x13, 0xC4, 0x62, 0xC2, 0x04, 0x38, 0x57, 0x20, 0x00, + 0xF2, 0x08, 0xC4, 0x62, 0x92, 0x04, 0x38, 0x57, 0x1C, 0x00, 0xF2, 0x03, 0x38, 0x57, 0x18, 0x00, + 0x08, 0x60, 0x00, 0x40, 0xB9, 0x56, 0xC8, 0x70, 0x38, 0x57, 0x24, 0x00, 0xB9, 0x56, 0xCC, 0x70, + 0x38, 0x77, 0x28, 0x00, 0xB9, 0x76, 0xD4, 0x70, 0xE1, 0xF0, 0x00, 0x00, 0x54, 0x2F, 0xC4, 0x21, + 0x92, 0x04, 0x38, 0x70, 0x8C, 0x15, 0xF2, 0x03, 0x38, 0x70, 0x90, 0x15, 0x38, 0x57, 0x2C, 0x00, + 0x08, 0x60, 0x00, 0x40, 0xB9, 0x56, 0x8C, 0x70, 0x38, 0x57, 0x30, 0x00, 0xB9, 0x56, 0x90, 0x70, + 0x38, 0x57, 0x34, 0x00, 0xB9, 0x56, 0x94, 0x70, 0x38, 0x57, 0x38, 0x00, 0xB9, 0x56, 0x98, 0x70, + 0x38, 0x57, 0x3C, 0x00, 0xB9, 0x56, 0x9C, 0x70, 0x38, 0x57, 0x40, 0x00, 0xB9, 0x56, 0xA0, 0x70, + 0x38, 0x57, 0x44, 0x00, 0xB9, 0x56, 0xA4, 0x70, 0x38, 0x77, 0x48, 0x00, 0xB9, 0x76, 0xA8, 0x70, + 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x60, 0x00, 0xDE, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x10, 0x60, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x07, 0x10, 0x60, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x70, 0x00, 0x40, 0x0C, 0x60, 0xFE, 0x00, 0xB9, 0x67, 0x0C, 0x20, 0xB9, 0x07, 0x18, 0x20, + 0xE1, 0xF0, 0x00, 0x00, 0x51, 0x00, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x40, 0xC4, 0x20, 0x38, 0x67, + 0x34, 0x10, 0x82, 0x03, 0x64, 0x63, 0xF2, 0x03, 0x14, 0x54, 0x56, 0x65, 0xB9, 0x67, 0x34, 0x10, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0xAD, 0xDE, 0x2C, 0x70, 0x8C, 0x03, 0x08, 0x60, 0x00, 0x40, + 0xB9, 0x76, 0x00, 0x10, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0xAD, 0xDE, 0x08, 0x60, 0x00, 0x40, + 0x2C, 0x70, 0x8C, 0x03, 0xB9, 0x76, 0x00, 0x10, 0xB9, 0x26, 0x6C, 0x10, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, 0xB9, 0x67, 0x00, 0x10, + 0x0C, 0x50, 0x10, 0x00, 0xB9, 0x57, 0x20, 0x10, 0x08, 0x50, 0x38, 0x03, 0xB9, 0x67, 0x00, 0x10, + 0x2C, 0x50, 0x80, 0x88, 0xB9, 0x57, 0x24, 0x10, 0xB9, 0x67, 0x00, 0x10, 0xB9, 0x07, 0x28, 0x10, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, + 0xB9, 0x67, 0x00, 0x10, 0xC4, 0x30, 0x38, 0x67, 0x50, 0x10, 0x82, 0x05, 0x66, 0x62, 0xB9, 0x67, + 0x50, 0x10, 0xF2, 0x05, 0x15, 0x22, 0x56, 0x26, 0xB9, 0x27, 0x50, 0x10, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, 0xB9, 0x67, 0x00, 0x10, + 0x38, 0x67, 0x54, 0x10, 0x66, 0x62, 0xB9, 0x67, 0x54, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0xAD, 0xDE, + 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, 0xB9, 0x67, 0x00, 0x10, 0x38, 0x67, 0x54, 0x10, + 0x15, 0x22, 0x56, 0x26, 0xB9, 0x27, 0x54, 0x10, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0xAD, 0xDE, + 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, 0xB9, 0x67, 0x00, 0x10, 0x38, 0x57, 0x58, 0x10, + 0xCC, 0x20, 0xFF, 0x00, 0x1C, 0x40, 0x00, 0x01, 0x56, 0x54, 0x92, 0x0A, 0xB9, 0x57, 0x58, 0x10, + 0xB9, 0x67, 0x00, 0x10, 0x38, 0x67, 0x4C, 0x10, 0x14, 0x52, 0x56, 0x65, 0xF2, 0x09, 0x66, 0x52, + 0xB9, 0x57, 0x58, 0x10, 0xB9, 0x67, 0x00, 0x10, 0x38, 0x67, 0x4C, 0x10, 0x64, 0x61, 0xB9, 0x67, + 0x4C, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, + 0xB9, 0x67, 0x00, 0x10, 0xC4, 0x30, 0x38, 0x67, 0x4C, 0x10, 0x82, 0x05, 0x66, 0x62, 0xB9, 0x67, + 0x4C, 0x10, 0xF2, 0x05, 0x15, 0x22, 0x56, 0x26, 0xB9, 0x27, 0x4C, 0x10, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x70, 0xAD, 0xDE, 0x08, 0x60, 0x00, 0x40, 0x2C, 0x70, 0x8C, 0x03, 0xB9, 0x76, 0x00, 0x10, + 0x04, 0x73, 0xB9, 0x76, 0x44, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x08, 0x10, + 0x66, 0x72, 0xB9, 0x76, 0x08, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x64, 0x10, + 0x66, 0x72, 0xB9, 0x76, 0x64, 0x10, 0xE1, 0xF0, 0x04, 0x62, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, + 0x14, 0x10, 0xE1, 0xF0, 0x23, 0x22, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x10, 0x10, 0xE1, 0xF0, + 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x14, 0x10, 0x64, 0x71, 0xB9, 0x76, 0x14, 0x10, 0xE1, 0xF0, + 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x14, 0x10, 0x14, 0x52, 0x56, 0x75, 0xB9, 0x76, 0x14, 0x10, + 0xE1, 0xF0, 0x00, 0x00, 0xC4, 0x20, 0x0C, 0x70, 0x10, 0x00, 0x82, 0x03, 0x0C, 0x70, 0xA0, 0x00, + 0x6C, 0x70, 0x00, 0x01, 0x08, 0x60, 0x00, 0x40, 0xB9, 0x76, 0x74, 0x10, 0xE1, 0xF0, 0x00, 0x00, + 0x04, 0x61, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x70, 0x10, 0xE1, 0xF0, 0xC4, 0x20, 0x08, 0x70, + 0x00, 0x40, 0x82, 0x04, 0x04, 0x61, 0xB1, 0x67, 0xF2, 0x02, 0xB1, 0x07, 0xE1, 0xF0, 0x00, 0x00, + 0xC4, 0x30, 0x57, 0x21, 0x08, 0x70, 0x00, 0x40, 0x26, 0x72, 0x82, 0x04, 0x04, 0x61, 0xB1, 0x67, + 0xF2, 0x02, 0xB1, 0x07, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xC1, 0x61, 0x01, 0x61, + 0x01, 0x70, 0xC9, 0x61, 0x08, 0x00, 0x04, 0x62, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x10, 0x30, + 0x48, 0x61, 0x08, 0x00, 0x11, 0x16, 0x11, 0x07, 0x40, 0x61, 0x2C, 0x10, 0x10, 0x00, 0x61, 0x00, + 0x3C, 0x10, 0x10, 0x00, 0xC1, 0x61, 0x01, 0x61, 0x01, 0x70, 0xC9, 0x61, 0x08, 0x00, 0x04, 0x61, + 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x14, 0x40, 0x48, 0x61, 0x08, 0x00, 0x11, 0x16, 0x11, 0x07, + 0x40, 0x61, 0x2C, 0x10, 0x10, 0x00, 0x61, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xC1, 0x61, 0x01, 0x61, + 0x01, 0x70, 0xC9, 0x61, 0x08, 0x00, 0x04, 0x61, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x14, 0x50, + 0x48, 0x61, 0x08, 0x00, 0x11, 0x16, 0x11, 0x07, 0x40, 0x61, 0x2C, 0x10, 0x10, 0x00, 0x61, 0x00, + 0x3C, 0x10, 0x24, 0x00, 0xD9, 0x41, 0x08, 0x00, 0x01, 0x61, 0x01, 0x70, 0xC9, 0x61, 0x1C, 0x00, + 0x04, 0x61, 0xB9, 0xF1, 0x18, 0x00, 0xC1, 0x21, 0x99, 0x60, 0xC1, 0x15, 0x6B, 0x48, 0x00, 0x00, + 0x04, 0x61, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x78, 0x10, 0x48, 0x61, 0x1C, 0x00, 0x38, 0xF1, + 0x18, 0x00, 0x40, 0x21, 0x11, 0x16, 0x11, 0x07, 0x58, 0x41, 0x08, 0x00, 0x2C, 0x10, 0x24, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xC1, 0x61, 0x01, 0x61, 0x01, 0x70, 0xC9, 0x61, + 0x08, 0x00, 0x08, 0x70, 0x00, 0x40, 0x38, 0x67, 0x08, 0x70, 0xB9, 0x67, 0x08, 0x70, 0x04, 0x61, + 0x99, 0x60, 0xC0, 0x15, 0x48, 0x61, 0x08, 0x00, 0x11, 0x16, 0x11, 0x07, 0x40, 0x61, 0x2C, 0x10, + 0x10, 0x00, 0x61, 0x00, 0x08, 0x70, 0x04, 0x00, 0x24, 0x74, 0x26, 0x27, 0x08, 0x70, 0xFF, 0xBF, + 0x57, 0x26, 0x2C, 0x70, 0x00, 0xC0, 0xB1, 0x42, 0x26, 0x27, 0x0C, 0x40, 0x04, 0x40, 0x08, 0x70, + 0x00, 0x40, 0x26, 0x47, 0x26, 0x42, 0xB1, 0x34, 0x0C, 0x40, 0x10, 0x40, 0x26, 0x47, 0x26, 0x42, + 0x2C, 0x70, 0x08, 0x40, 0xB1, 0x54, 0x26, 0x27, 0xB1, 0x62, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x40, + 0x2C, 0x70, 0x08, 0x40, 0x57, 0x26, 0x26, 0x27, 0x30, 0x72, 0x6C, 0x70, 0x00, 0x01, 0xB1, 0x72, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x70, 0x08, 0x40, 0x57, 0x26, 0x26, 0x27, + 0x30, 0x72, 0x1C, 0x60, 0x01, 0x01, 0x56, 0x76, 0xB1, 0x72, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x40, + 0x57, 0x26, 0x2C, 0x70, 0x0C, 0x40, 0x26, 0x72, 0x30, 0x27, 0xE1, 0xF0, 0x06, 0x52, 0x2F, 0x62, + 0x02, 0x00, 0x57, 0x52, 0x3F, 0x66, 0x05, 0x00, 0xC4, 0x3B, 0x26, 0x63, 0xB1, 0x64, 0x06, 0x72, + 0xC2, 0x0F, 0x06, 0x57, 0x0C, 0x50, 0x98, 0x15, 0x28, 0x55, 0x02, 0x00, 0x04, 0x20, 0xC6, 0x65, + 0x92, 0x03, 0x0C, 0x20, 0x08, 0x07, 0x28, 0x70, 0x98, 0x15, 0xC6, 0x67, 0xF2, 0x0C, 0xCC, 0x70, + 0x13, 0x00, 0x0C, 0x20, 0x08, 0x07, 0xC2, 0x0A, 0xCC, 0x70, 0x15, 0x00, 0x82, 0x07, 0xCC, 0x70, + 0xFF, 0x00, 0x04, 0x20, 0x92, 0x03, 0x0C, 0x20, 0x08, 0x07, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, + 0xD1, 0xC1, 0x06, 0xC2, 0x06, 0xE4, 0x04, 0x21, 0x06, 0xD3, 0x6B, 0xBB, 0x00, 0x00, 0x08, 0x70, + 0x00, 0x30, 0x2C, 0x70, 0x00, 0x40, 0x57, 0xC1, 0x2F, 0x27, 0x0C, 0x00, 0x30, 0x62, 0xC4, 0xE0, + 0x0C, 0x70, 0xFF, 0x03, 0x56, 0x76, 0x77, 0x65, 0x82, 0x09, 0xC4, 0xD0, 0x82, 0x04, 0x26, 0x7E, + 0x26, 0x6E, 0xF2, 0x11, 0x36, 0x6E, 0x36, 0x7E, 0xF2, 0x0E, 0xC4, 0xD0, 0x82, 0x07, 0xC6, 0x67, + 0x02, 0x03, 0x24, 0x71, 0xF2, 0x08, 0x24, 0x61, 0xF2, 0x06, 0xC6, 0x67, 0x02, 0x03, 0x34, 0x61, + 0xF2, 0x02, 0x34, 0x71, 0xC4, 0x70, 0x02, 0x09, 0xCC, 0x70, 0xFF, 0x03, 0x04, 0xE0, 0x02, 0x07, + 0x14, 0xE1, 0x0C, 0x70, 0xFF, 0x03, 0xF2, 0x03, 0x14, 0xE1, 0x04, 0x71, 0xC4, 0x60, 0x02, 0x08, + 0xCC, 0x60, 0xFF, 0x03, 0x02, 0x07, 0x14, 0xE1, 0x0C, 0x60, 0xFF, 0x03, 0xF2, 0x03, 0x14, 0xE1, + 0x04, 0x61, 0x57, 0x65, 0x66, 0x67, 0xB1, 0x62, 0x04, 0x20, 0x6B, 0xBB, 0x00, 0x00, 0x06, 0x2E, + 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x1C, 0x09, 0x23, 0x32, 0x0C, 0x40, + 0x80, 0x04, 0x06, 0x21, 0xD9, 0xC1, 0x0C, 0x09, 0xC9, 0xA1, 0x04, 0x09, 0x4B, 0x4B, 0x00, 0x00, + 0x0C, 0x20, 0xC0, 0x06, 0x26, 0x21, 0x04, 0x30, 0x0C, 0x40, 0x40, 0x02, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0x20, 0x80, 0x04, 0x26, 0x21, 0x04, 0x31, 0x0C, 0x40, 0x40, 0x02, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x04, 0x21, 0x08, 0xB0, 0x00, 0x30, 0x0B, 0xB8, 0x00, 0x00, 0x0C, 0xC0, + 0x22, 0x00, 0x2C, 0xB0, 0x00, 0x49, 0x04, 0x21, 0x04, 0xD0, 0x0B, 0xB7, 0x00, 0x00, 0x06, 0xED, + 0x04, 0xA0, 0x0C, 0x40, 0x00, 0x09, 0x06, 0x2D, 0x06, 0x3A, 0x26, 0x41, 0xEB, 0xF1, 0x00, 0x00, + 0x86, 0x62, 0x82, 0x5E, 0x38, 0x21, 0x00, 0x09, 0x06, 0x72, 0x57, 0x71, 0x26, 0x7B, 0x30, 0x77, + 0x5C, 0x70, 0xFF, 0x0F, 0x36, 0x76, 0x0C, 0x60, 0xC0, 0x06, 0x26, 0x61, 0x26, 0x62, 0x90, 0x46, + 0x82, 0x04, 0xCC, 0x70, 0x46, 0x00, 0x02, 0x4B, 0x0C, 0x50, 0x80, 0x04, 0x26, 0x51, 0x26, 0x52, + 0x10, 0x65, 0xC4, 0x61, 0x2F, 0x62, 0x02, 0x00, 0x92, 0x07, 0xC4, 0x70, 0x22, 0x27, 0xC4, 0x70, + 0x91, 0x05, 0x92, 0x11, 0xF2, 0x23, 0xC4, 0x70, 0x12, 0x0E, 0x04, 0x31, 0x91, 0x35, 0x2F, 0x56, + 0x01, 0x00, 0xA0, 0x55, 0x92, 0x1B, 0x0C, 0x50, 0xC0, 0x06, 0x26, 0x51, 0x24, 0x41, 0x26, 0x52, + 0x91, 0x45, 0xF2, 0x14, 0x2F, 0x56, 0x01, 0x00, 0x20, 0x55, 0x26, 0x55, 0x06, 0x45, 0x57, 0x41, + 0x26, 0x54, 0x06, 0x45, 0xD7, 0x41, 0x3F, 0x55, 0x04, 0x00, 0xC6, 0x75, 0x32, 0x07, 0x2F, 0x56, + 0x01, 0x00, 0x20, 0x75, 0xF7, 0x70, 0xA1, 0x75, 0xF2, 0x0F, 0x2F, 0x56, 0x01, 0x00, 0x20, 0x55, + 0x26, 0x55, 0x06, 0x45, 0x57, 0x41, 0x26, 0x54, 0x06, 0x45, 0xD7, 0x41, 0x36, 0x54, 0xC6, 0x57, + 0x32, 0x03, 0xC4, 0x70, 0x22, 0xED, 0x0C, 0x70, 0x80, 0x04, 0x26, 0x71, 0x26, 0x72, 0x26, 0x61, + 0x10, 0x37, 0x20, 0x46, 0x6B, 0xF4, 0x00, 0x00, 0xC4, 0x20, 0x32, 0x02, 0x24, 0xE1, 0x24, 0xA1, + 0xC4, 0xAE, 0x92, 0x98, 0x24, 0xD1, 0xCC, 0xD0, 0x16, 0x00, 0x92, 0x93, 0xCC, 0xE0, 0xFE, 0x00, + 0x82, 0x07, 0xB4, 0xC1, 0x82, 0x05, 0x04, 0x21, 0x0B, 0xB8, 0x00, 0x00, 0xF2, 0x85, 0x58, 0xC1, + 0x0C, 0x09, 0x48, 0xA1, 0x04, 0x09, 0x2C, 0x10, 0x1C, 0x09, 0xE1, 0xF0, 0x3C, 0x10, 0x34, 0x00, + 0xD9, 0x81, 0x14, 0x00, 0xD9, 0xC1, 0x24, 0x00, 0xB9, 0x21, 0x04, 0x00, 0x06, 0x93, 0x06, 0x84, + 0x04, 0xEA, 0x04, 0x21, 0x0B, 0xB8, 0x00, 0x00, 0x04, 0x21, 0x0B, 0xB7, 0x00, 0x00, 0xB4, 0xE1, + 0x92, 0xF9, 0x08, 0xC0, 0x00, 0x30, 0x1C, 0x50, 0x88, 0x13, 0x06, 0xBE, 0x06, 0x7E, 0x06, 0x6E, + 0x06, 0xAE, 0x2C, 0xC0, 0x00, 0x49, 0x04, 0xD0, 0x06, 0x2E, 0x06, 0x3D, 0x06, 0x41, 0xB9, 0x51, + 0x10, 0x00, 0xB9, 0x61, 0x08, 0x00, 0xB9, 0x71, 0x0C, 0x00, 0xEB, 0xF1, 0x00, 0x00, 0x86, 0x22, + 0x38, 0x51, 0x10, 0x00, 0x38, 0x61, 0x08, 0x00, 0x38, 0x71, 0x0C, 0x00, 0x82, 0x19, 0x30, 0x41, + 0x57, 0x41, 0x26, 0x4C, 0x30, 0x44, 0x5C, 0x40, 0xFF, 0x0F, 0x3F, 0x22, 0x04, 0x00, 0xC4, 0x20, + 0x32, 0x02, 0x16, 0x22, 0xCC, 0x20, 0xC8, 0x00, 0x02, 0x02, 0x04, 0xA1, 0x1C, 0x40, 0xC8, 0x00, + 0x26, 0x42, 0xC6, 0x54, 0x32, 0x05, 0x06, 0x54, 0x06, 0xBE, 0x06, 0x7D, 0x06, 0x62, 0x24, 0xD1, + 0xC4, 0xDE, 0x92, 0xD3, 0x24, 0xE1, 0xCC, 0xE0, 0x16, 0x00, 0x92, 0xCE, 0xB1, 0x68, 0xB1, 0x79, + 0x04, 0x20, 0x38, 0x71, 0x04, 0x00, 0xC6, 0xA2, 0xB1, 0xB7, 0x82, 0x02, 0x04, 0x24, 0x58, 0xC1, + 0x24, 0x00, 0x58, 0x81, 0x14, 0x00, 0x2C, 0x10, 0x34, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, + 0xD1, 0xC1, 0x06, 0xE4, 0x06, 0xC2, 0x04, 0x28, 0x06, 0xD3, 0x4B, 0xC1, 0x00, 0x00, 0x08, 0x70, + 0x01, 0x00, 0x2C, 0x70, 0xFF, 0x3F, 0x08, 0x60, 0x00, 0x40, 0xB9, 0x76, 0x58, 0x70, 0x04, 0x21, + 0x6B, 0xBB, 0x00, 0x00, 0x08, 0x20, 0x00, 0x30, 0x08, 0x30, 0x08, 0x00, 0x2C, 0x30, 0x00, 0x02, + 0x0C, 0x40, 0x00, 0x09, 0x2C, 0x20, 0x00, 0x40, 0x0C, 0xF0, 0x40, 0x01, 0xF1, 0xF0, 0x04, 0x20, + 0x6B, 0xBB, 0x00, 0x00, 0x0C, 0x20, 0x00, 0x02, 0x4B, 0xF9, 0x00, 0x00, 0x06, 0x2C, 0x06, 0x3D, + 0x06, 0x4E, 0xEB, 0x03, 0x01, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x18, 0x00, 0xD9, 0xC1, 0x08, 0x00, 0xC1, 0xA1, 0x06, 0xC3, 0x06, 0xB2, 0x2B, 0xD4, + 0x00, 0x00, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x00, 0xF0, 0x08, 0x60, 0x00, 0x80, 0x2F, 0xD6, + 0x07, 0x00, 0x2C, 0x60, 0x00, 0x0C, 0x2F, 0xA6, 0x07, 0x00, 0x06, 0xED, 0x06, 0x3E, 0x0C, 0x20, + 0x30, 0x00, 0x77, 0x31, 0x0C, 0xF0, 0x9C, 0x02, 0xF1, 0xF0, 0x2C, 0xE0, 0x00, 0x04, 0xC6, 0xEA, + 0x92, 0xF6, 0x0C, 0xF0, 0x98, 0x02, 0xF1, 0xF0, 0x06, 0x3D, 0x06, 0x4B, 0x0C, 0x20, 0x50, 0x01, + 0x77, 0x31, 0x0C, 0x50, 0x40, 0x02, 0x0C, 0xF0, 0xD0, 0x02, 0xF1, 0xF0, 0x2B, 0x49, 0x00, 0x00, + 0x08, 0x30, 0x00, 0x80, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x30, 0x00, 0xFA, 0x26, 0x37, 0x06, 0x4C, + 0x0C, 0x20, 0x50, 0x01, 0x77, 0x31, 0x0C, 0x50, 0x80, 0x00, 0x0C, 0xF0, 0xD0, 0x02, 0xF1, 0xF0, + 0xAB, 0xD4, 0x00, 0x00, 0x58, 0xC1, 0x08, 0x00, 0x40, 0xA1, 0x2C, 0x10, 0x18, 0x00, 0xE1, 0xF0, + 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, 0x08, 0xD0, 0x00, 0x80, 0xD1, 0x81, 0x06, 0xC4, + 0x06, 0x92, 0x06, 0xB3, 0x06, 0x2E, 0x0C, 0x20, 0x80, 0x0B, 0x06, 0x3D, 0x2C, 0x30, 0x00, 0xFA, + 0x0C, 0x40, 0x00, 0x02, 0x06, 0xA6, 0x06, 0x85, 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x06, 0x58, + 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0xAB, 0x0C, 0x57, 0x56, 0x66, 0x57, 0x57, 0x98, 0x06, 0x7E, + 0x0C, 0x70, 0x80, 0x0B, 0x66, 0x59, 0xA9, 0x57, 0xCC, 0x01, 0x77, 0x58, 0xA9, 0x57, 0xCE, 0x01, + 0x38, 0x50, 0x14, 0x00, 0x2C, 0xD0, 0x00, 0xFA, 0xA9, 0x57, 0xD0, 0x01, 0x77, 0x58, 0xA9, 0x57, + 0xD2, 0x01, 0x38, 0x5D, 0xC8, 0x01, 0x06, 0x3B, 0x57, 0x38, 0x66, 0x3C, 0x24, 0x51, 0xCC, 0xA0, + 0x32, 0x00, 0xA9, 0x37, 0xC4, 0x01, 0xA9, 0x57, 0xC8, 0x01, 0x77, 0x38, 0x77, 0x58, 0xA9, 0x37, + 0xC6, 0x01, 0xA9, 0x57, 0xCA, 0x01, 0x04, 0x60, 0x92, 0x05, 0xA9, 0x67, 0xC0, 0x01, 0xA9, 0x67, + 0xC2, 0x01, 0x08, 0x20, 0x00, 0x00, 0x08, 0x40, 0x00, 0x00, 0x2C, 0x20, 0x80, 0x02, 0x08, 0x30, + 0x00, 0x80, 0x2C, 0x40, 0x6C, 0x03, 0x36, 0x42, 0x2C, 0x30, 0x74, 0x7B, 0x0C, 0xF0, 0x04, 0x01, + 0xF1, 0xF0, 0x08, 0x20, 0x00, 0x30, 0x06, 0x3E, 0x0C, 0x30, 0x80, 0x0B, 0x2C, 0x20, 0x00, 0x40, + 0x0B, 0x0D, 0x01, 0x00, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, + 0x18, 0x70, 0xBB, 0x15, 0x1C, 0x50, 0x10, 0x00, 0x56, 0x75, 0xCC, 0x20, 0x32, 0x00, 0x3C, 0x10, + 0x1C, 0x00, 0x64, 0x78, 0xD9, 0xC1, 0x0C, 0x00, 0x99, 0x70, 0xBB, 0x15, 0x08, 0xE0, 0x00, 0x80, + 0x06, 0xD2, 0x2C, 0xE0, 0x00, 0xFA, 0x92, 0x09, 0xB8, 0x7E, 0xC0, 0x01, 0x92, 0x06, 0x0C, 0x20, + 0x78, 0x00, 0xEB, 0x49, 0x00, 0x00, 0xF2, 0x1C, 0xAB, 0x69, 0x00, 0x00, 0x04, 0x21, 0xCB, 0x61, + 0x00, 0x00, 0x04, 0x21, 0x0B, 0xB8, 0x00, 0x00, 0x04, 0x21, 0x0B, 0xB7, 0x00, 0x00, 0x04, 0x28, + 0x04, 0x34, 0x26, 0x31, 0x06, 0x41, 0x26, 0x21, 0xEB, 0x09, 0x01, 0x00, 0x06, 0x52, 0x38, 0x31, + 0x08, 0x00, 0x30, 0x21, 0x38, 0x41, 0x04, 0x00, 0x06, 0x6D, 0x8B, 0x11, 0x01, 0x00, 0xEB, 0x14, + 0x00, 0x00, 0x38, 0x6E, 0xCC, 0x01, 0x08, 0x70, 0x00, 0x30, 0xB9, 0x67, 0x04, 0x01, 0x38, 0x6E, + 0xC4, 0x01, 0xB9, 0x67, 0x08, 0x01, 0x0B, 0xE5, 0x00, 0x00, 0xF2, 0x00, 0x98, 0x70, 0xB4, 0x15, + 0x3C, 0x10, 0xA4, 0x04, 0xD9, 0x81, 0x84, 0x04, 0xD9, 0xC1, 0x94, 0x04, 0x06, 0xA2, 0x06, 0x93, + 0x82, 0x72, 0x04, 0xD0, 0x08, 0xB0, 0x00, 0x30, 0x06, 0xED, 0x2C, 0xB0, 0x00, 0x49, 0x04, 0xC0, + 0x0C, 0x40, 0x80, 0x04, 0x06, 0x2D, 0x06, 0x3C, 0x26, 0x41, 0xEB, 0xF1, 0x00, 0x00, 0x86, 0x22, + 0x82, 0x2C, 0xCC, 0x20, 0x08, 0x07, 0x92, 0x06, 0x0C, 0x60, 0xFC, 0x08, 0x0C, 0x50, 0x14, 0x05, + 0xF2, 0x09, 0x23, 0x52, 0x0C, 0x60, 0xF4, 0x01, 0x26, 0x65, 0x3C, 0x50, 0xF4, 0x01, 0x23, 0x66, + 0x23, 0x55, 0x38, 0x21, 0x80, 0x04, 0xC4, 0x91, 0x06, 0x72, 0x57, 0x71, 0x26, 0x7B, 0x30, 0x77, + 0x82, 0x02, 0x67, 0x78, 0x5C, 0x70, 0xFF, 0x0F, 0xC6, 0x75, 0x04, 0x31, 0x22, 0x04, 0xC6, 0x76, + 0x02, 0x0C, 0x04, 0x30, 0x06, 0x4A, 0x6B, 0xF4, 0x00, 0x00, 0x38, 0x61, 0x80, 0x04, 0x2F, 0x7E, + 0x0E, 0x00, 0x26, 0x71, 0xA1, 0x67, 0x24, 0xE1, 0x24, 0xC1, 0xC4, 0xCE, 0x92, 0xCA, 0x24, 0xD1, + 0xCC, 0xD0, 0x16, 0x00, 0x92, 0xC5, 0xC4, 0xE0, 0x82, 0x2E, 0x04, 0x23, 0x4B, 0xC1, 0x00, 0x00, + 0x04, 0x21, 0x0B, 0xB8, 0x00, 0x00, 0x04, 0x21, 0x0B, 0xB7, 0x00, 0x00, 0x34, 0xE1, 0x26, 0xEE, + 0x14, 0xF2, 0x08, 0x50, 0x00, 0x30, 0x26, 0xE1, 0x26, 0xF1, 0x2C, 0x50, 0x00, 0x49, 0x20, 0x4E, + 0x04, 0x2A, 0x06, 0x34, 0x57, 0x31, 0x26, 0x35, 0x30, 0x73, 0x5C, 0x70, 0xFF, 0x0F, 0x26, 0x27, + 0xCC, 0x20, 0xFF, 0x0F, 0x06, 0x62, 0xC2, 0x03, 0x0C, 0x60, 0xFF, 0x0F, 0x34, 0xE2, 0x57, 0x68, + 0xC6, 0xEF, 0x66, 0x67, 0xB1, 0x63, 0x92, 0xEC, 0x18, 0x20, 0xBB, 0x15, 0xB9, 0x41, 0x80, 0x04, + 0x4B, 0xC1, 0x00, 0x00, 0x58, 0xC1, 0x94, 0x04, 0x58, 0x81, 0x84, 0x04, 0x2C, 0x10, 0xA4, 0x04, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0x00, 0x30, 0x0C, 0x70, 0x00, 0x49, 0x0C, 0x40, 0xD0, 0x4D, + 0x26, 0x76, 0x26, 0x46, 0x30, 0x57, 0x04, 0x6A, 0x5C, 0x50, 0xFF, 0x0F, 0x26, 0x65, 0x57, 0x68, + 0x66, 0x65, 0xB1, 0x67, 0x24, 0x74, 0xC6, 0x74, 0x92, 0xF6, 0xE1, 0xF0, 0x98, 0x60, 0xAF, 0x10, + 0x38, 0x70, 0x94, 0x15, 0x18, 0x57, 0x76, 0x00, 0x18, 0x47, 0x75, 0x00, 0x92, 0x09, 0x98, 0x60, + 0xB0, 0x10, 0x82, 0x06, 0x26, 0x76, 0x18, 0x77, 0x92, 0x00, 0x26, 0x47, 0x13, 0x44, 0x98, 0x70, + 0xBA, 0x15, 0x82, 0x03, 0x24, 0x51, 0x13, 0x55, 0x10, 0x72, 0x04, 0x60, 0xC6, 0x76, 0x82, 0x14, + 0xC6, 0x74, 0xA2, 0x12, 0xCC, 0x70, 0x13, 0x00, 0xC2, 0x0B, 0x24, 0x51, 0x06, 0x45, 0x57, 0x41, + 0x57, 0x52, 0x26, 0x54, 0xC6, 0x75, 0x22, 0x08, 0x1C, 0x70, 0x10, 0x00, 0xF2, 0x03, 0x0C, 0x70, + 0x13, 0x00, 0x91, 0x72, 0x04, 0x61, 0x06, 0x26, 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x40, 0x00, 0x10, + 0x30, 0x74, 0x18, 0x60, 0x1A, 0x10, 0x08, 0x50, 0x0F, 0x00, 0x2C, 0x50, 0xFF, 0xFF, 0x24, 0x71, + 0x56, 0x75, 0x08, 0x50, 0x00, 0x3C, 0x66, 0x75, 0x06, 0x56, 0x57, 0x5A, 0x08, 0x30, 0xF0, 0x00, + 0x16, 0x66, 0x56, 0x53, 0xF7, 0x6F, 0x66, 0x75, 0x57, 0x6A, 0xB1, 0x74, 0x6C, 0x60, 0x75, 0x00, + 0xD7, 0x7A, 0x66, 0x67, 0x08, 0x70, 0x00, 0x30, 0xB9, 0x67, 0x00, 0x01, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x0C, 0x20, 0x80, 0x02, 0x04, 0x30, 0x0C, 0x40, 0x80, 0x04, 0xB1, 0xF1, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x00, 0x07, 0x04, 0x30, 0x0C, 0x40, 0x80, 0x04, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x80, 0x0B, 0x04, 0x30, 0x0C, 0x40, 0x80, 0x04, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, + 0x0B, 0x2B, 0x01, 0x00, 0x08, 0x70, 0x00, 0x80, 0x18, 0x27, 0x08, 0xDC, 0x2B, 0x15, 0x03, 0x00, + 0xCB, 0xCD, 0x01, 0x00, 0x0C, 0x70, 0x14, 0x00, 0xA9, 0x70, 0x24, 0x10, 0x38, 0x70, 0x94, 0x15, + 0x18, 0x67, 0x55, 0x00, 0x99, 0x60, 0x6D, 0x12, 0xAB, 0x81, 0x03, 0x00, 0x99, 0x00, 0x62, 0x12, + 0x99, 0x00, 0x63, 0x12, 0x99, 0x00, 0x64, 0x12, 0xAB, 0xB9, 0x01, 0x00, 0x38, 0x70, 0x94, 0x15, + 0x40, 0xE1, 0x18, 0x67, 0xC5, 0x00, 0x99, 0x60, 0x0C, 0x15, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x14, 0x61, 0xB1, 0xF1, 0x99, 0x60, 0x0D, 0x15, 0x4B, 0x18, 0x03, 0x00, 0xCB, 0x33, + 0x02, 0x00, 0xEB, 0x41, 0x01, 0x00, 0xAB, 0x42, 0x01, 0x00, 0x8B, 0x64, 0x03, 0x00, 0x30, 0xF1, + 0x99, 0x00, 0x1B, 0x10, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x20, 0x38, 0x15, 0x04, 0x30, + 0x0C, 0x40, 0x1C, 0x00, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x8B, 0x3E, 0x01, 0x00, 0x4B, 0x36, 0x02, 0x00, + 0x4B, 0x09, 0x02, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x70, 0x05, 0x10, + 0x34, 0x18, 0xC1, 0xE1, 0x82, 0x0A, 0x18, 0x60, 0x2B, 0x13, 0xCC, 0x60, 0xC7, 0x00, 0xD2, 0x2E, + 0x24, 0x61, 0x99, 0x60, 0x2B, 0x13, 0xF2, 0x2A, 0x14, 0x61, 0x99, 0x00, 0x2B, 0x13, 0x99, 0x60, + 0x0D, 0x15, 0x38, 0x60, 0x84, 0x15, 0x06, 0xE7, 0xC4, 0x64, 0xC2, 0x09, 0xAB, 0x42, 0x01, 0x00, + 0xEB, 0x41, 0x01, 0x00, 0x4B, 0x18, 0x03, 0x00, 0x8B, 0x64, 0x03, 0x00, 0x99, 0x00, 0x32, 0x13, + 0x99, 0x00, 0x39, 0x13, 0x14, 0x71, 0x99, 0x70, 0x2F, 0x13, 0x99, 0x70, 0x2E, 0x13, 0x38, 0x70, + 0x80, 0x15, 0x0C, 0x60, 0x14, 0x00, 0xC6, 0x76, 0xD2, 0x03, 0x34, 0x71, 0x13, 0x67, 0x38, 0x70, + 0x84, 0x15, 0xC6, 0x76, 0xC2, 0x03, 0xCB, 0x33, 0x02, 0x00, 0x98, 0x70, 0xBD, 0x15, 0x82, 0x1A, + 0x28, 0x70, 0x06, 0x10, 0x1C, 0x60, 0xE1, 0x00, 0x56, 0x76, 0xA9, 0x70, 0x06, 0x10, 0xAB, 0x31, + 0x01, 0x00, 0x8B, 0x30, 0x03, 0x00, 0x8B, 0x33, 0x03, 0x00, 0x8B, 0x64, 0x03, 0x00, 0x38, 0x70, + 0x94, 0x15, 0x99, 0x00, 0x1A, 0x10, 0x18, 0x67, 0x55, 0x00, 0x99, 0x60, 0x6D, 0x12, 0x99, 0x00, + 0x2E, 0x11, 0x38, 0x50, 0x38, 0x15, 0x06, 0x75, 0x18, 0x40, 0x2C, 0x13, 0x77, 0x76, 0x54, 0x7F, + 0xC6, 0x47, 0x32, 0x04, 0x99, 0x70, 0x2C, 0x13, 0xF2, 0x07, 0x06, 0x75, 0xDC, 0x70, 0x00, 0xF0, + 0x92, 0x03, 0x99, 0x00, 0x2C, 0x13, 0x98, 0x70, 0x6E, 0x15, 0x82, 0x0A, 0x18, 0x70, 0x1B, 0x10, + 0xCC, 0x70, 0xFF, 0x00, 0x82, 0x07, 0x24, 0x71, 0x99, 0x70, 0x1B, 0x10, 0xF2, 0x03, 0x99, 0x00, + 0x1B, 0x10, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, 0xAB, 0x31, 0x01, 0x00, + 0x2B, 0xE7, 0x02, 0x00, 0x4B, 0x0E, 0x03, 0x00, 0x2B, 0x3C, 0x02, 0x00, 0x0B, 0x0B, 0x02, 0x00, + 0x0B, 0x94, 0x01, 0x00, 0xEB, 0x49, 0x01, 0x00, 0x98, 0x70, 0x2A, 0x13, 0x82, 0x07, 0x99, 0x00, + 0x52, 0x15, 0x6B, 0x32, 0x01, 0x00, 0x04, 0x20, 0xF2, 0x1A, 0x38, 0x70, 0x94, 0x15, 0x98, 0x77, + 0xB2, 0x00, 0x92, 0x06, 0x8B, 0xCE, 0x01, 0x00, 0x2B, 0xC2, 0x01, 0x00, 0xF2, 0x05, 0x2B, 0xC2, + 0x01, 0x00, 0x8B, 0xCE, 0x01, 0x00, 0x8B, 0x4B, 0x03, 0x00, 0x8B, 0x33, 0x03, 0x00, 0xAB, 0x2C, + 0x03, 0x00, 0x8B, 0x58, 0x03, 0x00, 0xAB, 0x38, 0x03, 0x00, 0x04, 0x21, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x18, 0x20, 0x6E, 0x15, 0x18, 0x30, 0x52, 0x15, 0x34, 0x14, 0xB1, 0xF1, + 0xEB, 0x84, 0x03, 0x00, 0xEB, 0x6B, 0x03, 0x00, 0x6B, 0x64, 0x03, 0x00, 0xCB, 0x58, 0x03, 0x00, + 0x6B, 0x61, 0x03, 0x00, 0x6B, 0x32, 0x01, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x18, 0x0C, 0x20, 0x1D, 0x13, 0x04, 0x30, 0x04, 0x45, 0xC1, 0xE1, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0x20, 0x78, 0x12, 0x04, 0x30, 0x0C, 0x40, 0x50, 0x00, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0xE0, 0x00, 0x10, 0x99, 0x0E, 0x27, 0x03, 0x0C, 0x20, 0xDE, 0x14, 0x04, 0x30, + 0x0C, 0x40, 0x28, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x99, 0x0E, 0x07, 0x05, 0x0C, 0x20, + 0x38, 0x15, 0x04, 0x30, 0x04, 0x44, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x3C, 0x15, + 0x04, 0x30, 0x0C, 0x40, 0x14, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x99, 0x0E, 0x52, 0x05, + 0xA9, 0x0E, 0x50, 0x05, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x20, + 0xA6, 0x10, 0x04, 0x30, 0x04, 0x4C, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, + 0x24, 0x14, 0xE1, 0xF0, 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x60, 0x94, 0x15, 0x34, 0x14, 0xB1, 0xF1, + 0x0C, 0x70, 0x00, 0x10, 0x98, 0x57, 0x35, 0x03, 0x28, 0x26, 0x72, 0x00, 0x82, 0x04, 0x28, 0x26, + 0x7A, 0x00, 0xF2, 0x08, 0x98, 0x77, 0x36, 0x03, 0x82, 0x05, 0x28, 0x76, 0x7A, 0x00, 0x26, 0x27, + 0x23, 0x22, 0x06, 0x32, 0xAB, 0x97, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x30, 0x00, 0xD9, 0xC1, 0x20, 0x00, 0x06, 0x73, 0x06, 0xC3, 0xD9, 0x81, 0x10, 0x00, + 0x0C, 0xD0, 0x00, 0x10, 0x04, 0x91, 0x57, 0xC2, 0xD7, 0x71, 0x26, 0xCD, 0xB1, 0x51, 0x26, 0x7D, + 0x26, 0x94, 0x04, 0xB8, 0x04, 0x54, 0x06, 0x62, 0x26, 0xBC, 0x26, 0x57, 0x13, 0x99, 0x2C, 0x70, + 0x3A, 0x01, 0x04, 0x84, 0x0C, 0x20, 0x78, 0x02, 0x06, 0xE3, 0x99, 0x9B, 0x7A, 0x02, 0x06, 0xA4, + 0x06, 0x37, 0x06, 0x48, 0x26, 0x2C, 0xB9, 0x51, 0x0C, 0x00, 0xB9, 0x61, 0x08, 0x00, 0xB9, 0x71, + 0x04, 0x00, 0x6B, 0xCF, 0x03, 0x00, 0x38, 0x71, 0x04, 0x00, 0x0C, 0x20, 0x7C, 0x02, 0x06, 0x48, + 0x26, 0x2C, 0x06, 0x37, 0x6B, 0xCF, 0x03, 0x00, 0x04, 0x71, 0x26, 0x7E, 0x06, 0x47, 0xD7, 0x41, + 0x26, 0x4D, 0x28, 0x44, 0x36, 0x01, 0x26, 0xDA, 0x99, 0x4B, 0x7B, 0x02, 0x30, 0x41, 0x99, 0x4C, + 0x84, 0x02, 0x38, 0x51, 0x0C, 0x00, 0x28, 0x55, 0x34, 0x01, 0xA9, 0x5B, 0x78, 0x02, 0x38, 0x61, + 0x08, 0x00, 0x26, 0xE6, 0x91, 0x9E, 0x99, 0x7D, 0x1D, 0x03, 0x99, 0x0D, 0x18, 0x03, 0x58, 0xC1, + 0x20, 0x00, 0x58, 0x81, 0x10, 0x00, 0x2C, 0x10, 0x30, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0xE8, 0x00, + 0xD9, 0xC1, 0xD8, 0x00, 0x38, 0x70, 0x94, 0x15, 0xD9, 0x81, 0xC8, 0x00, 0x0C, 0x50, 0x75, 0x00, + 0x0C, 0x60, 0x77, 0x00, 0x0C, 0x20, 0x78, 0x00, 0x26, 0x57, 0x26, 0x67, 0x26, 0x27, 0x10, 0x55, + 0x18, 0xE7, 0x76, 0x00, 0x10, 0x66, 0x10, 0x72, 0xB9, 0x51, 0xA4, 0x00, 0x04, 0xB0, 0xB9, 0x61, + 0xA8, 0x00, 0xB9, 0x71, 0xB0, 0x00, 0x0C, 0xA0, 0xD4, 0x12, 0x06, 0x9B, 0x0C, 0x80, 0x00, 0x10, + 0x18, 0x78, 0x28, 0x03, 0x06, 0xD8, 0xC6, 0x97, 0x32, 0x0F, 0x14, 0x72, 0x26, 0x7A, 0x90, 0x77, + 0x82, 0x07, 0x06, 0x2A, 0xEB, 0x25, 0x01, 0x00, 0xC4, 0x20, 0x82, 0x02, 0x24, 0xB1, 0x24, 0x91, + 0x2C, 0xA0, 0x10, 0x00, 0xF2, 0xEE, 0xC4, 0xB0, 0x99, 0x08, 0xB0, 0x00, 0x78, 0x38, 0xA6, 0x00, + 0x78, 0x68, 0xAA, 0x00, 0x78, 0x48, 0xA8, 0x00, 0x78, 0x78, 0xAC, 0x00, 0x82, 0x22, 0x3F, 0x66, + 0x03, 0x00, 0xC4, 0x60, 0x38, 0x50, 0x94, 0x15, 0x32, 0x02, 0x16, 0x66, 0x28, 0x35, 0x86, 0x00, + 0x43, 0x66, 0xC6, 0x63, 0x32, 0x16, 0x3F, 0x77, 0x04, 0x00, 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, + 0x28, 0x65, 0x88, 0x00, 0x43, 0x77, 0xC6, 0x76, 0x32, 0x03, 0x04, 0x71, 0xF2, 0x08, 0x28, 0x65, + 0x8A, 0x00, 0xC6, 0x76, 0x32, 0x03, 0x04, 0x72, 0xF2, 0x02, 0x04, 0x73, 0x99, 0x7D, 0xB0, 0x00, + 0x98, 0x7D, 0xAF, 0x00, 0x92, 0x0F, 0x98, 0x7D, 0xB0, 0x00, 0x82, 0x0C, 0x38, 0x60, 0x94, 0x15, + 0x38, 0x51, 0xA4, 0x00, 0x26, 0x76, 0x18, 0x77, 0x92, 0x00, 0x26, 0x75, 0x13, 0x77, 0xB9, 0x71, + 0xA4, 0x00, 0x38, 0x70, 0x94, 0x15, 0x18, 0x6D, 0x2B, 0x03, 0x18, 0x77, 0x92, 0x00, 0xC6, 0x67, + 0xB2, 0x07, 0x98, 0x7D, 0xAE, 0x00, 0x82, 0x04, 0x04, 0x71, 0x99, 0x7D, 0xAF, 0x00, 0x98, 0x70, + 0xBA, 0x15, 0x82, 0x09, 0x38, 0x71, 0xA8, 0x00, 0x24, 0xE1, 0x24, 0x71, 0x13, 0x77, 0x13, 0xEE, + 0xB9, 0x71, 0xA8, 0x00, 0x0C, 0x20, 0x88, 0x00, 0x26, 0x21, 0x04, 0x30, 0x04, 0x45, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x28, 0x7D, 0x06, 0x00, 0xDC, 0x70, 0xE0, 0x04, 0x82, 0x0A, 0x8B, 0x3E, + 0x01, 0x00, 0x8B, 0x30, 0x03, 0x00, 0x04, 0x71, 0x99, 0x7D, 0x32, 0x01, 0xFA, 0xC8, 0x02, 0x00, + 0x98, 0x7D, 0x29, 0x03, 0x99, 0x0D, 0x32, 0x01, 0x82, 0x04, 0x34, 0x71, 0x99, 0x7D, 0x29, 0x03, + 0x98, 0x8D, 0x04, 0x00, 0x92, 0x05, 0x98, 0x7D, 0x28, 0x03, 0x8A, 0xB9, 0x02, 0x00, 0x98, 0x3D, + 0x28, 0x03, 0x92, 0x1D, 0x0C, 0x20, 0xC8, 0x12, 0x0C, 0x40, 0x50, 0x00, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x98, 0xED, 0x29, 0x03, 0x9A, 0xAB, 0x02, 0x00, 0xC6, 0xE8, 0x32, 0x0C, 0x0C, 0x20, + 0x88, 0x00, 0x06, 0x3E, 0x06, 0x4E, 0x26, 0x21, 0x0C, 0x50, 0x14, 0x00, 0x8B, 0x44, 0x01, 0x00, + 0x24, 0xE1, 0xF2, 0xF4, 0x99, 0x8D, 0x27, 0x03, 0xFA, 0x9A, 0x02, 0x00, 0x0C, 0x20, 0x78, 0x00, + 0x04, 0x31, 0x26, 0x21, 0x04, 0x46, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x18, 0x3D, 0x28, 0x03, + 0x04, 0x70, 0x06, 0x5D, 0xB9, 0x71, 0x9C, 0x00, 0x06, 0x67, 0xC6, 0x63, 0x32, 0x12, 0x18, 0x45, + 0xD4, 0x02, 0xCC, 0x40, 0x13, 0x00, 0xC2, 0x04, 0x04, 0x21, 0xB9, 0x21, 0x9C, 0x00, 0x34, 0x41, + 0xCC, 0x40, 0x12, 0x00, 0xD2, 0x02, 0x04, 0x71, 0x24, 0x61, 0x2C, 0x50, 0x10, 0x00, 0xF2, 0xEE, + 0xC4, 0x70, 0x82, 0x04, 0x04, 0x50, 0xB9, 0x51, 0x9C, 0x00, 0xCB, 0x42, 0x01, 0x00, 0x38, 0x70, + 0x94, 0x15, 0xB9, 0x21, 0x98, 0x00, 0x18, 0xC7, 0x74, 0x00, 0x06, 0x3C, 0x4B, 0x9E, 0x00, 0x00, + 0x06, 0x3C, 0x4B, 0x9E, 0x00, 0x00, 0x24, 0xE2, 0x06, 0x7E, 0x57, 0x71, 0x57, 0xE2, 0x26, 0x7E, + 0xB9, 0x71, 0xB4, 0x00, 0x04, 0x62, 0x04, 0x70, 0x14, 0x51, 0xB9, 0x21, 0xAC, 0x00, 0xB9, 0x61, + 0x90, 0x00, 0xB9, 0x71, 0xA0, 0x00, 0xB9, 0x51, 0x94, 0x00, 0x38, 0xE1, 0x90, 0x00, 0x06, 0x21, + 0x34, 0xE1, 0x13, 0x6E, 0x14, 0x31, 0x0C, 0x40, 0x78, 0x00, 0xB9, 0x61, 0x90, 0x00, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x80, 0x00, 0x26, 0x21, 0x14, 0x31, 0x04, 0x45, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x06, 0x61, 0x04, 0xB0, 0xC6, 0xB8, 0x32, 0x65, 0xB8, 0x71, 0x90, 0x00, + 0x38, 0xE1, 0x98, 0x00, 0x92, 0x06, 0xB8, 0x51, 0x9C, 0x00, 0x92, 0x03, 0x38, 0xE1, 0xAC, 0x00, + 0x0C, 0x70, 0x80, 0x00, 0x06, 0x9B, 0x26, 0x71, 0xD7, 0x91, 0x26, 0x7B, 0x26, 0x9D, 0x0C, 0xC0, + 0x00, 0x10, 0x04, 0xA1, 0xB9, 0x71, 0xB8, 0x00, 0x18, 0x7D, 0x28, 0x03, 0x14, 0x51, 0x26, 0x5A, + 0xC6, 0x57, 0x32, 0x45, 0x98, 0x7C, 0xD2, 0x02, 0x82, 0x3E, 0x0C, 0x20, 0xD4, 0x02, 0x26, 0x2C, + 0xB9, 0x61, 0xBC, 0x00, 0xEB, 0x25, 0x01, 0x00, 0x38, 0x51, 0x90, 0x00, 0x38, 0x61, 0xBC, 0x00, + 0xC6, 0x25, 0x92, 0x31, 0x78, 0x2C, 0xCC, 0x02, 0x78, 0x79, 0x3A, 0x01, 0x36, 0x27, 0xC4, 0x20, + 0x32, 0x02, 0x16, 0x22, 0x78, 0x5C, 0xCE, 0x02, 0x78, 0x79, 0x3C, 0x01, 0x3F, 0x77, 0x05, 0x00, + 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, 0x06, 0x32, 0xB9, 0x61, 0xBC, 0x00, 0xB9, 0x71, 0xC0, 0x00, + 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0xC0, 0x00, 0x06, 0x52, 0x06, 0x37, 0x06, 0x27, 0xB9, 0x51, + 0xC4, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x51, 0xC4, 0x00, 0x38, 0x61, 0xBC, 0x00, 0x26, 0x25, + 0xC6, 0x2E, 0x32, 0x05, 0x38, 0x71, 0xB8, 0x00, 0x06, 0xE2, 0x91, 0xA7, 0x06, 0x7A, 0x57, 0x71, + 0x26, 0x76, 0xB1, 0x27, 0x24, 0xA1, 0x2C, 0xC0, 0x10, 0x00, 0xF2, 0xB7, 0x24, 0xB1, 0x2C, 0x60, + 0x18, 0x00, 0xF2, 0x9B, 0x04, 0x70, 0xC6, 0x78, 0x3A, 0xE9, 0x00, 0x00, 0xB8, 0x61, 0x90, 0x00, + 0x38, 0x51, 0x98, 0x00, 0x92, 0x09, 0xB8, 0x51, 0x9C, 0x00, 0x82, 0x04, 0x38, 0x51, 0x98, 0x00, + 0xF2, 0x03, 0x38, 0x51, 0xAC, 0x00, 0x04, 0x31, 0x04, 0x60, 0x0C, 0x40, 0x88, 0x00, 0x26, 0x41, + 0x26, 0x46, 0x90, 0xF4, 0x92, 0x18, 0x0C, 0x40, 0x80, 0x00, 0x26, 0x41, 0x26, 0x46, 0x60, 0x24, + 0x2F, 0x46, 0x06, 0x00, 0x26, 0x46, 0x26, 0x44, 0x26, 0x42, 0x57, 0x41, 0x26, 0x41, 0x30, 0x44, + 0xC6, 0x45, 0x32, 0x09, 0xC4, 0x40, 0x22, 0x07, 0xC4, 0x20, 0x22, 0x05, 0x06, 0x54, 0xB9, 0x61, + 0x94, 0x00, 0x06, 0x3F, 0x24, 0x61, 0xC6, 0x68, 0x22, 0xE1, 0xC4, 0x30, 0x9A, 0xB4, 0x00, 0x00, + 0x38, 0xE1, 0x94, 0x00, 0x38, 0x61, 0xA0, 0x00, 0x57, 0xE2, 0x24, 0x61, 0x26, 0xED, 0xB9, 0x61, + 0xA0, 0x00, 0x98, 0x6E, 0x82, 0x02, 0x0C, 0xB0, 0x78, 0x02, 0x26, 0xBE, 0x9A, 0xA4, 0x00, 0x00, + 0x38, 0x51, 0x94, 0x00, 0x0C, 0x60, 0x80, 0x00, 0x26, 0x61, 0x26, 0x65, 0x60, 0xC6, 0xB9, 0x71, + 0xC0, 0x00, 0x04, 0x34, 0x26, 0x3C, 0x0C, 0x60, 0x00, 0x10, 0x57, 0x32, 0x26, 0x36, 0x06, 0x2B, + 0x2C, 0x30, 0x78, 0x02, 0x0C, 0x40, 0x10, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x38, 0x91, + 0x94, 0x00, 0x0C, 0x20, 0x00, 0x10, 0xD7, 0x91, 0x26, 0x92, 0x04, 0x54, 0x26, 0x59, 0x2C, 0x90, + 0x3A, 0x01, 0x06, 0x39, 0x04, 0x44, 0x06, 0x2B, 0xB9, 0x51, 0xC4, 0x00, 0x6B, 0xCF, 0x03, 0x00, + 0x38, 0xA1, 0x94, 0x00, 0x24, 0xA1, 0x06, 0x6A, 0x0C, 0x30, 0x00, 0x10, 0xD7, 0x61, 0x26, 0x63, + 0x28, 0x66, 0x36, 0x01, 0x04, 0x24, 0x99, 0x6E, 0x83, 0x02, 0x26, 0x2B, 0x06, 0x39, 0x04, 0x44, + 0x6B, 0xCF, 0x03, 0x00, 0x38, 0x51, 0xC4, 0x00, 0x28, 0x65, 0x34, 0x01, 0x38, 0x51, 0xA4, 0x00, + 0xA9, 0x6E, 0x80, 0x02, 0x18, 0x6E, 0x84, 0x02, 0x38, 0x71, 0xC0, 0x00, 0xC6, 0x56, 0x22, 0x04, + 0x24, 0x61, 0x99, 0x6E, 0x84, 0x02, 0x18, 0x6E, 0x84, 0x02, 0xCC, 0x60, 0x13, 0x00, 0xC2, 0x09, + 0x38, 0x51, 0xB4, 0x00, 0xC6, 0x65, 0x32, 0x05, 0x2C, 0x60, 0x14, 0x00, 0x99, 0x6E, 0x84, 0x02, + 0x38, 0x21, 0x94, 0x00, 0x18, 0x6E, 0x82, 0x02, 0x18, 0xFD, 0x28, 0x03, 0x0C, 0x50, 0x88, 0x00, + 0x26, 0x51, 0x26, 0x52, 0x91, 0x65, 0x34, 0x61, 0x26, 0x6D, 0x99, 0xA6, 0x1D, 0x03, 0x99, 0x06, + 0x18, 0x03, 0x0C, 0x60, 0x78, 0x00, 0x26, 0x61, 0x26, 0x6C, 0x91, 0x06, 0x57, 0xC1, 0x06, 0x41, + 0x04, 0x60, 0x2F, 0x5C, 0x04, 0x00, 0x14, 0x31, 0xB1, 0x35, 0xB8, 0x51, 0x90, 0x00, 0x38, 0x31, + 0x98, 0x00, 0x92, 0x06, 0xB8, 0x51, 0x9C, 0x00, 0x92, 0x03, 0x38, 0x31, 0xAC, 0x00, 0x0C, 0x50, + 0x88, 0x00, 0x26, 0x51, 0x26, 0x56, 0x90, 0x55, 0x82, 0x07, 0x24, 0x61, 0xC6, 0x68, 0x2C, 0x40, + 0x18, 0x00, 0x22, 0xE8, 0xF2, 0x12, 0x0C, 0xE0, 0x80, 0x00, 0x26, 0xE1, 0x26, 0xE6, 0xC6, 0x5F, + 0x32, 0xF5, 0x24, 0x51, 0x06, 0x25, 0x57, 0x21, 0x26, 0x24, 0xB0, 0x22, 0x22, 0xF9, 0xC6, 0x23, + 0x32, 0xF7, 0x91, 0x5E, 0x06, 0x32, 0xF2, 0xF4, 0x18, 0x6D, 0x28, 0x03, 0x38, 0x51, 0xA0, 0x00, + 0xC6, 0x56, 0x32, 0x04, 0x24, 0x71, 0xFA, 0x18, 0xFF, 0xFF, 0xB8, 0x61, 0x90, 0x00, 0x9A, 0x96, + 0xFE, 0xFF, 0x99, 0x0D, 0x2A, 0x03, 0x0C, 0xA0, 0xD4, 0x12, 0x06, 0xE6, 0x06, 0xB6, 0x06, 0xCD, + 0x18, 0x5D, 0x28, 0x03, 0x38, 0x61, 0x90, 0x00, 0xC6, 0x65, 0x32, 0x10, 0x38, 0x71, 0x90, 0x00, + 0x0C, 0x50, 0x78, 0x00, 0x24, 0x71, 0x26, 0x51, 0x26, 0x57, 0x90, 0x55, 0xB9, 0x71, 0x90, 0x00, + 0x82, 0x76, 0x2F, 0x5B, 0x08, 0x00, 0xC4, 0x54, 0x02, 0x0F, 0x28, 0x7D, 0x06, 0x00, 0x04, 0x64, + 0xD6, 0x67, 0x82, 0x71, 0x38, 0x51, 0xB0, 0x00, 0x14, 0x65, 0x56, 0x76, 0x99, 0x5D, 0x29, 0x03, + 0xA9, 0x7D, 0x06, 0x00, 0xF2, 0x68, 0x14, 0x42, 0x26, 0x4A, 0x10, 0x44, 0x38, 0x61, 0xA8, 0x00, + 0x06, 0x94, 0x34, 0x91, 0xB9, 0x41, 0x94, 0x00, 0x26, 0x9C, 0x0C, 0x40, 0xA0, 0x00, 0x26, 0x49, + 0x18, 0x24, 0x78, 0x02, 0x14, 0x3C, 0xC6, 0x26, 0x26, 0x3A, 0xB2, 0x3C, 0xC4, 0xB4, 0x12, 0x3A, + 0x06, 0x2A, 0xB9, 0x31, 0xBC, 0x00, 0xB9, 0x41, 0xC0, 0x00, 0xB9, 0x51, 0xC4, 0x00, 0xEB, 0x25, + 0x01, 0x00, 0xC4, 0x20, 0x38, 0x31, 0xBC, 0x00, 0x38, 0x41, 0xC0, 0x00, 0x38, 0x51, 0xC4, 0x00, + 0x82, 0x29, 0x18, 0x24, 0x78, 0x02, 0x24, 0xB1, 0x24, 0x21, 0x99, 0x24, 0x78, 0x02, 0x06, 0x25, + 0x57, 0x22, 0x26, 0x2C, 0x2C, 0x20, 0x78, 0x02, 0x0C, 0x40, 0x10, 0x00, 0xB9, 0x51, 0xC4, 0x00, + 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x38, 0x51, 0xC4, 0x00, 0x38, 0x71, 0x94, 0x00, 0x0C, 0x40, + 0x88, 0x00, 0x26, 0x41, 0x26, 0x45, 0x24, 0x51, 0x99, 0x59, 0x1D, 0x03, 0x98, 0x5C, 0x1A, 0x00, + 0x91, 0x74, 0x04, 0x21, 0x99, 0x2C, 0x2A, 0x03, 0x24, 0xE1, 0x92, 0x19, 0x99, 0x2C, 0x1A, 0x00, + 0xF2, 0x16, 0x06, 0x2A, 0xEB, 0x25, 0x01, 0x00, 0xC4, 0x20, 0x82, 0x11, 0x04, 0x31, 0x99, 0x3D, + 0xAE, 0x00, 0x10, 0x5A, 0xCC, 0x50, 0x13, 0x00, 0xC2, 0x0A, 0x18, 0x5C, 0x28, 0x03, 0xC4, 0x51, + 0x92, 0x06, 0x28, 0x5C, 0x06, 0x00, 0x64, 0x54, 0xA9, 0x5C, 0x06, 0x00, 0x2C, 0xA0, 0x10, 0x00, + 0xFA, 0x78, 0xFF, 0xFF, 0x0C, 0xA0, 0x84, 0x12, 0x04, 0xC0, 0x0C, 0xB0, 0x80, 0x0B, 0xC6, 0xC8, + 0x32, 0x4A, 0x0C, 0x70, 0x88, 0x00, 0x26, 0x71, 0x26, 0x7C, 0x90, 0x47, 0x92, 0x36, 0x0C, 0x70, + 0x1D, 0x13, 0xE0, 0x67, 0x92, 0x2E, 0xE8, 0x67, 0x05, 0x00, 0x92, 0x2B, 0x18, 0x3D, 0x28, 0x03, + 0x0C, 0x70, 0x27, 0x00, 0x26, 0x74, 0xD7, 0x71, 0xC4, 0x31, 0x26, 0x7D, 0x18, 0x57, 0x01, 0x00, + 0x10, 0x27, 0x38, 0x70, 0x94, 0x15, 0xC2, 0x04, 0x28, 0x77, 0x26, 0x00, 0xF2, 0x08, 0xC4, 0x30, + 0x82, 0x04, 0x28, 0x77, 0x24, 0x00, 0xF2, 0x03, 0x28, 0x77, 0x22, 0x00, 0x26, 0x55, 0x06, 0x65, + 0xD7, 0x61, 0x36, 0x65, 0x26, 0x62, 0x26, 0x66, 0x26, 0x6B, 0x70, 0x66, 0xC6, 0x67, 0x22, 0x0D, + 0x0C, 0x20, 0x88, 0x00, 0x26, 0x21, 0x06, 0x3C, 0x04, 0x51, 0x8B, 0x44, 0x01, 0x00, 0xF2, 0x05, + 0x24, 0x41, 0xC4, 0x45, 0x24, 0x71, 0x92, 0xCE, 0x98, 0x7D, 0x29, 0x03, 0x82, 0x08, 0x06, 0x2A, + 0xEB, 0x25, 0x01, 0x00, 0xC4, 0x20, 0x92, 0x03, 0x04, 0x71, 0x91, 0x7A, 0x24, 0xC1, 0x2C, 0xA0, + 0x10, 0x00, 0xF2, 0xB6, 0x26, 0xE8, 0x99, 0xED, 0x27, 0x03, 0xF2, 0x03, 0x99, 0x0D, 0x2A, 0x03, + 0x58, 0xC1, 0xD8, 0x00, 0x58, 0x81, 0xC8, 0x00, 0x2C, 0x10, 0xE8, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x38, 0x70, 0x94, 0x15, 0x3C, 0x10, 0x4C, 0x01, 0xD9, 0xC1, 0x3C, 0x01, 0xD9, 0x81, 0x2C, 0x01, + 0x18, 0xE7, 0x46, 0x00, 0x18, 0x97, 0x47, 0x00, 0x0C, 0x70, 0x78, 0x00, 0x26, 0x71, 0x0C, 0xB0, + 0x00, 0x10, 0x06, 0x27, 0x0C, 0x30, 0x78, 0x00, 0xB9, 0x71, 0x24, 0x01, 0xA9, 0x0B, 0x6E, 0x02, + 0xB9, 0x0B, 0x70, 0x02, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x06, 0x21, 0x0C, 0x30, 0x78, 0x00, + 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x06, 0x5E, 0x2F, 0x6E, 0x0E, 0x00, 0x57, 0x52, 0x36, 0x56, + 0x26, 0x6B, 0xB9, 0x61, 0xF8, 0x00, 0x04, 0x6E, 0x36, 0x69, 0x04, 0x8B, 0x26, 0x59, 0xB9, 0x61, + 0x04, 0x01, 0x0C, 0x60, 0x80, 0x02, 0x36, 0x8E, 0x26, 0x55, 0x26, 0x56, 0x26, 0x88, 0x04, 0xA7, + 0x2F, 0x49, 0x09, 0x00, 0x0C, 0x60, 0x16, 0x00, 0x14, 0x71, 0x04, 0xD0, 0x36, 0xA9, 0x26, 0x4B, + 0x36, 0x6E, 0x26, 0x78, 0x26, 0xAA, 0xB9, 0x41, 0x0C, 0x01, 0x06, 0xCD, 0xB9, 0xD1, 0xF4, 0x00, + 0xB9, 0xD1, 0xF0, 0x00, 0xB9, 0x51, 0x10, 0x01, 0xB9, 0x61, 0x08, 0x01, 0xB9, 0x71, 0x14, 0x01, + 0x38, 0x71, 0x04, 0x01, 0xC6, 0x97, 0x3A, 0x93, 0x00, 0x00, 0x38, 0x71, 0x10, 0x01, 0x0C, 0x50, + 0x78, 0x00, 0x26, 0x7D, 0xB9, 0x71, 0xFC, 0x00, 0x38, 0x71, 0x0C, 0x01, 0x04, 0x60, 0x26, 0x7D, + 0x26, 0x51, 0xB9, 0x71, 0x00, 0x01, 0x26, 0x5C, 0x06, 0x76, 0x38, 0x31, 0x08, 0x01, 0x2F, 0x4E, + 0x07, 0x00, 0xC6, 0x43, 0x32, 0x1E, 0x38, 0xF1, 0x00, 0x01, 0x38, 0x41, 0xFC, 0x00, 0x78, 0x2F, + 0xB2, 0x00, 0x38, 0xF1, 0xF8, 0x00, 0x2F, 0x37, 0x07, 0x00, 0x26, 0x3F, 0x26, 0x46, 0x78, 0x33, + 0xEE, 0x00, 0x70, 0x44, 0x26, 0x32, 0x26, 0x43, 0x38, 0x21, 0xF0, 0x00, 0x30, 0x35, 0x26, 0x24, + 0x26, 0x43, 0xB9, 0x21, 0xF0, 0x00, 0xB1, 0x45, 0x24, 0x71, 0x2C, 0x60, 0x1C, 0x00, 0xF2, 0xDE, + 0x0C, 0x70, 0x78, 0x00, 0x26, 0x71, 0x26, 0x7C, 0x30, 0x27, 0xB9, 0x71, 0x24, 0x01, 0x06, 0x38, + 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, 0x24, 0x01, 0x04, 0x60, 0xB1, 0x27, 0x06, 0x52, 0x06, 0x76, + 0x2F, 0x4C, 0x01, 0x00, 0x38, 0x21, 0x08, 0x01, 0x2F, 0x3E, 0x07, 0x00, 0xC6, 0x32, 0x32, 0x31, + 0x38, 0x31, 0xFC, 0x00, 0x38, 0x21, 0x00, 0x01, 0x26, 0x36, 0x70, 0x33, 0x78, 0xF2, 0xB2, 0x00, + 0x36, 0x35, 0xB9, 0x31, 0x28, 0x01, 0x38, 0x31, 0xF8, 0x00, 0x2F, 0x27, 0x07, 0x00, 0x26, 0x23, + 0x78, 0x22, 0xEE, 0x00, 0xB9, 0x41, 0x20, 0x01, 0xB9, 0x51, 0x18, 0x01, 0x26, 0x2F, 0x38, 0xF1, + 0x28, 0x01, 0xB9, 0x61, 0x1C, 0x01, 0xB9, 0x71, 0x24, 0x01, 0x26, 0x2F, 0x06, 0x32, 0xAB, 0x97, + 0x00, 0x00, 0x38, 0x41, 0x20, 0x01, 0x38, 0x71, 0x24, 0x01, 0x38, 0x61, 0x1C, 0x01, 0x30, 0x34, + 0x38, 0x51, 0x18, 0x01, 0x26, 0x23, 0xB1, 0x24, 0x24, 0x71, 0x2C, 0x60, 0x1C, 0x00, 0xF2, 0xCB, + 0x2F, 0x7C, 0x01, 0x00, 0x30, 0x27, 0x38, 0x31, 0x14, 0x01, 0xB9, 0x71, 0x24, 0x01, 0x24, 0x91, + 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, 0x24, 0x01, 0x24, 0xC4, 0xB1, 0x27, 0x38, 0x71, 0xF4, 0x00, + 0x24, 0xD2, 0x26, 0x72, 0xB9, 0x71, 0xF4, 0x00, 0xFA, 0x6C, 0xFF, 0xFF, 0x38, 0x21, 0xF4, 0x00, + 0x06, 0x3A, 0x4B, 0x9E, 0x00, 0x00, 0x06, 0x3A, 0x06, 0xD2, 0x06, 0x28, 0xAB, 0x97, 0x00, 0x00, + 0x06, 0x32, 0x38, 0x21, 0xF0, 0x00, 0x04, 0x80, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x7B, 0x70, 0x02, + 0x43, 0x92, 0x06, 0xC2, 0xA9, 0x9B, 0x6E, 0x02, 0xC6, 0x8A, 0x32, 0x11, 0x06, 0x68, 0x57, 0x61, + 0x26, 0x61, 0x30, 0x26, 0xB9, 0x71, 0x24, 0x01, 0x24, 0x81, 0x3F, 0x22, 0x0D, 0x00, 0x06, 0x32, + 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x24, 0x01, 0x26, 0x72, 0xF2, 0xEF, 0x14, 0x31, 0x06, 0x27, + 0x26, 0x3A, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x31, 0x04, 0x01, 0x06, 0xDB, 0x4B, 0x9E, 0x00, 0x00, + 0x0C, 0x30, 0x16, 0x00, 0x36, 0x3E, 0x4B, 0x9E, 0x00, 0x00, 0x86, 0x22, 0x32, 0x03, 0x2C, 0x20, + 0xFF, 0x03, 0xC4, 0x90, 0x67, 0x25, 0xB9, 0x2D, 0x70, 0x02, 0x92, 0x04, 0x24, 0xC1, 0xA9, 0xCB, + 0x6E, 0x02, 0x58, 0xC1, 0x3C, 0x01, 0x58, 0x81, 0x2C, 0x01, 0x2C, 0x10, 0x4C, 0x01, 0xE1, 0xF0, + 0x3C, 0x10, 0x40, 0x00, 0xD9, 0x81, 0x20, 0x00, 0x38, 0x70, 0x94, 0x15, 0xD9, 0xC1, 0x30, 0x00, + 0x0C, 0xE0, 0x00, 0x10, 0x30, 0xB7, 0x18, 0xC7, 0x56, 0x00, 0x28, 0x7E, 0x06, 0x00, 0x0C, 0x60, + 0x20, 0x00, 0xD6, 0x67, 0x82, 0x09, 0x98, 0x6E, 0x04, 0x00, 0x92, 0x06, 0x1C, 0x40, 0x21, 0x00, + 0x56, 0x74, 0xA9, 0x7E, 0x06, 0x00, 0x28, 0x6E, 0x60, 0x02, 0x18, 0x4E, 0x38, 0x01, 0x18, 0x5E, + 0x39, 0x01, 0xC4, 0x65, 0x28, 0x30, 0xA2, 0x15, 0xC2, 0x06, 0x34, 0x31, 0xA9, 0x30, 0xA2, 0x15, + 0x04, 0x71, 0xF2, 0x0B, 0xCC, 0x30, 0x14, 0x00, 0x02, 0x04, 0xA9, 0x00, 0xA2, 0x15, 0xF2, 0x04, + 0x24, 0x31, 0xA9, 0x30, 0xA2, 0x15, 0x04, 0x70, 0x14, 0x32, 0x26, 0x34, 0xC4, 0x37, 0xD2, 0x19, + 0x14, 0x47, 0x26, 0x45, 0xC4, 0x48, 0xD2, 0x2C, 0xC4, 0x70, 0x82, 0x07, 0x28, 0x5E, 0x06, 0x00, + 0x0C, 0x70, 0x23, 0x00, 0x54, 0x58, 0xF2, 0x08, 0x28, 0x5E, 0x06, 0x00, 0x28, 0x6E, 0x58, 0x02, + 0x54, 0x58, 0x0C, 0x70, 0x34, 0x00, 0xC4, 0x50, 0x82, 0x56, 0x0C, 0x70, 0x50, 0x00, 0xF2, 0x53, + 0xC4, 0x41, 0xC2, 0x03, 0xC4, 0x49, 0xC2, 0x56, 0x34, 0x53, 0xC4, 0x5C, 0xD2, 0x53, 0xC4, 0x70, + 0x82, 0x07, 0x28, 0x5E, 0x06, 0x00, 0x0C, 0x70, 0x96, 0x00, 0x54, 0x58, 0xF2, 0x2A, 0x28, 0x5E, + 0x06, 0x00, 0x28, 0x6E, 0x5A, 0x02, 0x54, 0x58, 0x0C, 0x70, 0x32, 0x00, 0xF2, 0x22, 0xC4, 0x51, + 0xD2, 0x0E, 0xC4, 0x70, 0x82, 0x04, 0xCC, 0x60, 0x46, 0x00, 0xF2, 0x36, 0x28, 0x5E, 0x06, 0x00, + 0x28, 0x6E, 0x5C, 0x02, 0x54, 0x58, 0x0C, 0x70, 0x32, 0x00, 0xF2, 0x29, 0x14, 0x42, 0x26, 0x45, + 0xC4, 0x44, 0xD2, 0x14, 0xC4, 0x70, 0x82, 0x06, 0x28, 0x5E, 0x06, 0x00, 0x04, 0x7F, 0x54, 0x58, + 0xF2, 0x08, 0x28, 0x5E, 0x06, 0x00, 0x28, 0x6E, 0x5C, 0x02, 0x54, 0x58, 0x0C, 0x70, 0x6E, 0x00, + 0xC4, 0x50, 0x82, 0x19, 0x0C, 0x70, 0x3C, 0x00, 0xF2, 0x16, 0xC4, 0x5F, 0xC2, 0x1B, 0xC4, 0x70, + 0x82, 0x07, 0x28, 0x5E, 0x06, 0x00, 0x0C, 0x70, 0x1E, 0x00, 0x54, 0x58, 0xF2, 0x08, 0x28, 0x5E, + 0x06, 0x00, 0x28, 0x6E, 0x5C, 0x02, 0x54, 0x58, 0x0C, 0x70, 0x50, 0x00, 0xC4, 0x50, 0x82, 0x03, + 0x0C, 0x70, 0x46, 0x00, 0xC6, 0x67, 0x02, 0x06, 0x18, 0x7E, 0x04, 0x00, 0xC4, 0x71, 0xCA, 0x80, + 0x01, 0x00, 0x98, 0x7E, 0x63, 0x02, 0x99, 0x0E, 0x62, 0x02, 0x82, 0x05, 0x34, 0x71, 0x99, 0x7E, + 0x63, 0x02, 0xF2, 0x08, 0x28, 0x7E, 0x06, 0x00, 0x1C, 0x60, 0x01, 0x04, 0x56, 0x76, 0xA9, 0x7E, + 0x06, 0x00, 0x0C, 0x70, 0x00, 0x20, 0xD6, 0x7B, 0x8A, 0x91, 0x00, 0x00, 0x18, 0x7E, 0x28, 0x03, + 0x04, 0x91, 0xC4, 0x70, 0x92, 0x05, 0x18, 0x9E, 0x04, 0x00, 0x16, 0x99, 0xF7, 0x9F, 0x0B, 0x81, + 0x01, 0x00, 0x98, 0x8E, 0x04, 0x00, 0x82, 0x40, 0x38, 0xD0, 0x94, 0x15, 0x28, 0x7E, 0x08, 0x00, + 0x28, 0x6D, 0x4C, 0x00, 0xC6, 0x67, 0xC2, 0x38, 0x78, 0x6E, 0x6E, 0x02, 0xB9, 0x71, 0x14, 0x00, + 0x06, 0x57, 0xD7, 0x51, 0x2F, 0x27, 0x07, 0x00, 0x26, 0x25, 0x06, 0x36, 0xB9, 0x61, 0x18, 0x00, + 0x4B, 0x9E, 0x00, 0x00, 0x18, 0x5D, 0x4E, 0x00, 0x38, 0x61, 0x18, 0x00, 0x38, 0x71, 0x14, 0x00, + 0xC6, 0x25, 0x32, 0x22, 0x3F, 0x26, 0x07, 0x00, 0x04, 0x3A, 0x4B, 0x9E, 0x00, 0x00, 0x18, 0x7D, + 0x4F, 0x00, 0xC6, 0x27, 0x32, 0x19, 0x28, 0x6E, 0x68, 0x02, 0x18, 0x7D, 0x50, 0x00, 0xC6, 0x67, + 0xC2, 0x13, 0x78, 0x7D, 0x52, 0x00, 0x38, 0x6E, 0x70, 0x02, 0xC6, 0x67, 0x32, 0x0D, 0x98, 0x70, + 0xBA, 0x15, 0x92, 0x0A, 0x98, 0x7E, 0x2E, 0x01, 0x92, 0x07, 0x28, 0x7E, 0x74, 0x02, 0xCC, 0x70, + 0x13, 0x00, 0xCA, 0x39, 0x01, 0x00, 0x38, 0x60, 0x94, 0x15, 0x38, 0x5E, 0x70, 0x02, 0x18, 0x76, + 0x54, 0x00, 0xC6, 0x57, 0x22, 0x13, 0xC4, 0x80, 0x82, 0x11, 0x28, 0x7E, 0x06, 0x00, 0xDC, 0x70, + 0x80, 0x00, 0x92, 0x0C, 0x18, 0x7E, 0x6D, 0x02, 0x18, 0x66, 0x57, 0x00, 0xC6, 0x67, 0xC2, 0x06, + 0xC6, 0x7C, 0xC2, 0x04, 0x24, 0x71, 0x99, 0x7E, 0x6D, 0x02, 0x18, 0x7E, 0x6D, 0x02, 0xC6, 0x7C, + 0x28, 0x7E, 0x06, 0x00, 0xD2, 0x0C, 0xC4, 0x91, 0x92, 0x0A, 0x6C, 0x70, 0x80, 0x00, 0xA9, 0x7E, + 0x06, 0x00, 0x38, 0x70, 0x94, 0x15, 0x18, 0x77, 0x58, 0x00, 0xF2, 0x16, 0x0C, 0x60, 0x80, 0x00, + 0xD6, 0x67, 0x82, 0x14, 0x98, 0x6E, 0x6C, 0x02, 0x92, 0x0D, 0x1C, 0x80, 0x81, 0x00, 0x56, 0x78, + 0xA9, 0x7E, 0x06, 0x00, 0x38, 0x70, 0x94, 0x15, 0x18, 0x77, 0x55, 0x00, 0x99, 0x7E, 0x6D, 0x02, + 0xF2, 0x05, 0x06, 0x76, 0x34, 0x71, 0x99, 0x7E, 0x6C, 0x02, 0x98, 0x5E, 0x04, 0x00, 0x8A, 0x04, + 0x01, 0x00, 0x38, 0x20, 0x94, 0x15, 0x28, 0x3E, 0x06, 0x00, 0x0C, 0x40, 0x60, 0x00, 0x26, 0x42, + 0x10, 0x44, 0x18, 0x62, 0x5F, 0x00, 0x18, 0x72, 0x61, 0x00, 0xB9, 0x41, 0x04, 0x00, 0x0C, 0x40, + 0x10, 0x00, 0xD6, 0x43, 0x82, 0x07, 0xC6, 0x67, 0xC2, 0x04, 0x36, 0x67, 0x13, 0x66, 0xF2, 0x02, + 0x04, 0x61, 0x0C, 0x70, 0x18, 0x02, 0x26, 0x7E, 0x20, 0x77, 0xB1, 0x51, 0x04, 0x82, 0x04, 0x50, + 0x56, 0x8B, 0xB9, 0x71, 0x08, 0x00, 0x54, 0xB4, 0x0C, 0x70, 0xEC, 0x11, 0x06, 0xD5, 0x06, 0xC5, + 0xB9, 0x81, 0x0C, 0x00, 0xB9, 0xB1, 0x10, 0x00, 0xA8, 0x47, 0x04, 0x00, 0x82, 0x5B, 0x38, 0xA1, + 0x0C, 0x00, 0x04, 0xB0, 0xC6, 0xAB, 0x82, 0x09, 0x38, 0xF1, 0x04, 0x00, 0xC6, 0x4F, 0xC2, 0x05, + 0xB1, 0xB1, 0x6C, 0x30, 0x20, 0x00, 0x04, 0xB1, 0xB8, 0x81, 0x10, 0x00, 0x82, 0x4B, 0xC4, 0xB0, + 0x92, 0x49, 0xC6, 0x46, 0xA2, 0x47, 0x18, 0x42, 0x5E, 0x00, 0x38, 0xA1, 0x08, 0x00, 0xC6, 0x4A, + 0xB2, 0x41, 0x18, 0x47, 0x06, 0x00, 0x2F, 0xF4, 0x04, 0x00, 0x26, 0xF4, 0x26, 0xFF, 0x26, 0xFE, + 0xE8, 0x9F, 0x1A, 0x02, 0x02, 0x37, 0x06, 0xA5, 0x63, 0xA4, 0xD4, 0xA1, 0x92, 0x33, 0x70, 0x87, + 0x18, 0xAF, 0x1B, 0x02, 0xB9, 0x81, 0x1C, 0x00, 0x0C, 0x80, 0x00, 0x10, 0xD7, 0xA1, 0x26, 0xA8, + 0x38, 0x81, 0x1C, 0x00, 0xA9, 0x8A, 0x3A, 0x01, 0x78, 0x87, 0x02, 0x00, 0xA9, 0x8A, 0x3C, 0x01, + 0x04, 0xA1, 0x53, 0xA4, 0x06, 0x4A, 0x66, 0x45, 0x23, 0x54, 0x04, 0x42, 0x26, 0x4B, 0x13, 0x44, + 0x26, 0x4F, 0x18, 0xA4, 0x1A, 0x02, 0x24, 0xB1, 0x06, 0x4A, 0xD7, 0x41, 0x26, 0x4E, 0xA9, 0x04, + 0x3A, 0x01, 0xA9, 0x04, 0x3C, 0x01, 0x04, 0x41, 0x26, 0x4A, 0xD7, 0x41, 0x26, 0x4E, 0xA9, 0x04, + 0x36, 0x01, 0xC6, 0x9B, 0x04, 0x41, 0x53, 0x4A, 0x66, 0x4D, 0x23, 0xD4, 0x92, 0xE7, 0x26, 0xC9, + 0x23, 0xCC, 0x24, 0x78, 0x0C, 0xF0, 0x14, 0x12, 0xC6, 0x7F, 0x92, 0x9F, 0x30, 0x41, 0xA9, 0x3E, + 0x06, 0x00, 0xC4, 0xC0, 0x99, 0x4E, 0x04, 0x00, 0x82, 0x6A, 0x0C, 0xA0, 0x00, 0x10, 0x2C, 0xA0, + 0x38, 0x01, 0x04, 0x68, 0x26, 0x6A, 0x04, 0xB0, 0xB9, 0x61, 0x04, 0x00, 0x18, 0x7E, 0x04, 0x00, + 0xC6, 0xB7, 0x32, 0x2B, 0x06, 0x7D, 0x63, 0x7B, 0xD4, 0x71, 0x82, 0x25, 0x06, 0x7B, 0xD7, 0x71, + 0x06, 0x8B, 0xB1, 0x71, 0x04, 0x90, 0x18, 0x5E, 0x04, 0x00, 0xC6, 0x85, 0xB2, 0x1A, 0xC4, 0x84, + 0x92, 0x09, 0x0C, 0x20, 0x58, 0x11, 0x04, 0x30, 0x04, 0x48, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0xF2, 0x0D, 0x30, 0x21, 0x38, 0x31, 0x04, 0x00, 0x30, 0x61, 0x26, 0x2A, 0x26, 0x36, 0x26, 0x29, + 0x26, 0x39, 0x04, 0x48, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x24, 0x81, 0x24, 0x98, 0xF2, 0xE4, + 0xF7, 0xD0, 0x34, 0xB1, 0x24, 0xB1, 0xF2, 0xD3, 0x3F, 0xCC, 0x07, 0x00, 0x28, 0x7E, 0x06, 0x00, + 0x99, 0xCE, 0x04, 0x00, 0x6C, 0x70, 0x10, 0x00, 0xA9, 0x7E, 0x06, 0x00, 0xF2, 0x2D, 0x28, 0x7E, + 0x06, 0x00, 0x0C, 0x60, 0x00, 0x04, 0x66, 0x67, 0xA9, 0x6E, 0x06, 0x00, 0x04, 0x68, 0xD6, 0x67, + 0x0C, 0x70, 0x28, 0x00, 0x82, 0x03, 0x0C, 0x70, 0x14, 0x00, 0x99, 0x7E, 0x63, 0x02, 0x18, 0x7E, + 0x62, 0x02, 0xCC, 0x70, 0x13, 0x00, 0x1A, 0x7E, 0xFE, 0xFF, 0x24, 0x71, 0x99, 0x7E, 0x62, 0x02, + 0xFA, 0x79, 0xFE, 0xFF, 0x98, 0x7E, 0x6D, 0x02, 0x8A, 0xE1, 0xFE, 0xFF, 0x18, 0x6D, 0x59, 0x00, + 0xC6, 0x67, 0xAA, 0xDC, 0xFE, 0xFF, 0x34, 0x71, 0xFA, 0xD7, 0xFE, 0xFF, 0x1C, 0x70, 0x11, 0x00, + 0x56, 0x37, 0xA9, 0x3E, 0x06, 0x00, 0x58, 0xC1, 0x30, 0x00, 0x58, 0x81, 0x20, 0x00, 0x2C, 0x10, + 0x40, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, 0x08, 0xD0, 0x02, 0x00, + 0xD1, 0x81, 0x0C, 0xC0, 0x26, 0x10, 0x04, 0xE0, 0x2C, 0xD0, 0x00, 0x76, 0x06, 0x2E, 0x04, 0x3C, + 0x4B, 0x9E, 0x00, 0x00, 0x2C, 0xE0, 0x00, 0x2D, 0xC6, 0xED, 0x2C, 0x20, 0xE0, 0x01, 0xA1, 0x2C, + 0x24, 0xC2, 0x92, 0xF5, 0x08, 0xD0, 0x06, 0x00, 0x0C, 0xC0, 0x66, 0x10, 0x04, 0xE0, 0x2C, 0xD0, + 0x24, 0xDF, 0x06, 0x2E, 0x0C, 0x30, 0x14, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x2C, 0xE0, 0xF6, 0x4F, + 0xC6, 0xED, 0x2C, 0x20, 0xFF, 0x01, 0xA1, 0x2C, 0x24, 0xC2, 0x92, 0xF4, 0x08, 0xD0, 0x00, 0x80, + 0x0C, 0xC0, 0x00, 0x10, 0x0C, 0x90, 0xBA, 0x04, 0x0C, 0xE0, 0xAA, 0x14, 0x2C, 0xD0, 0x3E, 0xDC, + 0x26, 0x9C, 0x18, 0x7D, 0x05, 0x00, 0x1C, 0x20, 0xE0, 0x01, 0x2C, 0x70, 0x12, 0x00, 0x26, 0x77, + 0x26, 0x7C, 0x28, 0xA7, 0x02, 0x00, 0x04, 0x3A, 0x26, 0x2A, 0x0B, 0x9B, 0x00, 0x00, 0x10, 0x7D, + 0xA9, 0x2E, 0x04, 0x00, 0x1C, 0x20, 0xFF, 0x01, 0x2C, 0x70, 0x32, 0x00, 0x26, 0x77, 0x26, 0x7C, + 0x28, 0xB7, 0x02, 0x00, 0x04, 0x3A, 0x26, 0x2B, 0x0B, 0x9B, 0x00, 0x00, 0xA1, 0x2E, 0x0C, 0x20, + 0xE0, 0x01, 0x04, 0x3A, 0x26, 0x2A, 0x0B, 0x9B, 0x00, 0x00, 0xA9, 0x2E, 0x06, 0x00, 0x0C, 0x20, + 0xFF, 0x01, 0x26, 0x2B, 0x04, 0x3A, 0x0B, 0x9B, 0x00, 0x00, 0xA9, 0x2E, 0x02, 0x00, 0x24, 0xE8, + 0xC6, 0xE9, 0x24, 0xD1, 0x92, 0xCF, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, 0x20, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x60, 0x94, 0x15, 0x06, 0x72, 0x28, 0x66, 0xB0, 0x00, 0xC4, 0x70, + 0x13, 0x56, 0x32, 0x02, 0x16, 0x27, 0xC6, 0x25, 0x02, 0x0B, 0xC6, 0x75, 0x0C, 0x40, 0xFF, 0x00, + 0x56, 0x46, 0x02, 0x04, 0x3F, 0x44, 0x03, 0x00, 0xF2, 0x02, 0x26, 0x43, 0x23, 0x44, 0x06, 0x24, + 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x70, 0x94, 0x15, 0x3C, 0x10, 0x24, 0x00, 0xD9, 0xC1, 0x14, 0x00, + 0xD9, 0x81, 0x04, 0x00, 0x30, 0x77, 0xDC, 0x70, 0x10, 0x00, 0x82, 0x41, 0x0C, 0xC0, 0x00, 0x10, + 0x98, 0x9C, 0x27, 0x03, 0x82, 0x3C, 0x98, 0x8C, 0x28, 0x03, 0x82, 0x39, 0x0C, 0xE0, 0x78, 0x12, + 0x04, 0xD0, 0xC6, 0xD9, 0x32, 0x34, 0x06, 0x6A, 0x0C, 0x60, 0xD2, 0x12, 0x04, 0x70, 0xC6, 0x78, + 0x32, 0x2A, 0x2C, 0x60, 0x10, 0x00, 0x1C, 0x50, 0x10, 0x00, 0x26, 0x56, 0x18, 0x4E, 0x0A, 0x00, + 0x10, 0x55, 0xC6, 0x45, 0x92, 0x1E, 0x24, 0x75, 0x57, 0x72, 0x26, 0x7C, 0x78, 0x47, 0x78, 0x02, + 0x78, 0xB7, 0x7A, 0x02, 0x70, 0x3E, 0x78, 0x7E, 0x02, 0x00, 0x3F, 0x24, 0x03, 0x00, 0x36, 0x7B, + 0x23, 0x33, 0x23, 0x44, 0xB1, 0x71, 0xAB, 0xC0, 0x01, 0x00, 0xA1, 0x2E, 0x30, 0x71, 0x28, 0x3E, + 0x02, 0x00, 0x06, 0x27, 0x23, 0x4B, 0xAB, 0xC0, 0x01, 0x00, 0xA9, 0x2E, 0x02, 0x00, 0xF2, 0x03, + 0x24, 0x71, 0xF2, 0xD6, 0x24, 0xD1, 0x2C, 0xE0, 0x10, 0x00, 0xF2, 0xCC, 0x58, 0xC1, 0x14, 0x00, + 0x58, 0x81, 0x04, 0x00, 0x2C, 0x10, 0x24, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0xC6, 0x34, 0x3C, 0x10, + 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, 0xD1, 0x81, 0x06, 0xE2, 0x78, 0xA1, 0x20, 0x00, 0x78, 0xC1, + 0x24, 0x00, 0x78, 0xD1, 0x28, 0x00, 0x32, 0x05, 0xA1, 0xC2, 0xA9, 0xD2, 0x02, 0x00, 0xF2, 0x20, + 0xC6, 0x35, 0x22, 0x05, 0xA1, 0x62, 0xA9, 0xA2, 0x02, 0x00, 0xF2, 0x1A, 0x3F, 0x94, 0x03, 0x00, + 0x06, 0x29, 0x3F, 0x3C, 0x06, 0x00, 0x3F, 0xB4, 0x05, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x06, 0x3B, + 0x4B, 0x9E, 0x00, 0x00, 0x26, 0x2C, 0xA1, 0x2E, 0x3F, 0x3D, 0x0A, 0x00, 0x06, 0x29, 0xAB, 0x97, + 0x00, 0x00, 0x06, 0x3B, 0x4B, 0x9E, 0x00, 0x00, 0x26, 0x2D, 0xA9, 0x2E, 0x02, 0x00, 0x58, 0xC1, + 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x2F, 0x72, 0x02, 0x00, + 0x26, 0x72, 0x06, 0x67, 0x57, 0x62, 0x26, 0x76, 0x26, 0x27, 0x0C, 0x70, 0x00, 0x10, 0x2C, 0x20, + 0x3C, 0x03, 0x26, 0x27, 0x06, 0x72, 0x04, 0x69, 0x34, 0x61, 0xC4, 0x60, 0xA9, 0x07, 0x24, 0x00, + 0xA9, 0x07, 0x26, 0x00, 0x34, 0x74, 0x92, 0xF9, 0x04, 0x71, 0x99, 0x72, 0x28, 0x00, 0x38, 0x70, + 0x94, 0x15, 0xA9, 0x02, 0x2A, 0x00, 0x18, 0x77, 0x98, 0x00, 0x99, 0x02, 0x2D, 0x00, 0xA9, 0x02, + 0x32, 0x00, 0x99, 0x72, 0x2C, 0x00, 0x14, 0x71, 0xA9, 0x02, 0x30, 0x00, 0xA9, 0x02, 0x2E, 0x00, + 0xA1, 0x72, 0xA9, 0x72, 0x02, 0x00, 0xE1, 0xF0, 0x34, 0x18, 0xC1, 0xE1, 0x04, 0xE0, 0x06, 0x2E, + 0xEB, 0xCA, 0x01, 0x00, 0x24, 0xE1, 0xC4, 0xE5, 0x92, 0xFB, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, + 0x38, 0x70, 0x94, 0x15, 0x3C, 0x10, 0x8C, 0x00, 0x0C, 0x60, 0xAE, 0x00, 0xD9, 0xC1, 0x7C, 0x00, + 0xD9, 0x81, 0x6C, 0x00, 0x26, 0x67, 0x10, 0x66, 0xB9, 0x61, 0x3C, 0x00, 0x30, 0x67, 0xD4, 0x68, + 0x8A, 0x95, 0x03, 0x00, 0x18, 0xB7, 0x96, 0x00, 0x06, 0xD7, 0x04, 0xE0, 0x28, 0x2D, 0x9A, 0x00, + 0x04, 0xCC, 0x26, 0xC1, 0x06, 0x3B, 0xAB, 0x97, 0x00, 0x00, 0x26, 0xCE, 0x24, 0xE4, 0xCC, 0xE0, + 0x28, 0x00, 0xB1, 0x2C, 0x24, 0xD2, 0x92, 0xF3, 0x0C, 0xD0, 0x00, 0x10, 0x98, 0x7D, 0x27, 0x03, + 0x92, 0x05, 0xCB, 0xCD, 0x01, 0x00, 0xFA, 0x7A, 0x03, 0x00, 0x04, 0x70, 0x06, 0xED, 0xB9, 0x71, + 0x38, 0x00, 0x38, 0x71, 0x38, 0x00, 0x26, 0x7D, 0xE8, 0xA7, 0x1D, 0x03, 0x82, 0x15, 0x0C, 0x60, + 0x94, 0x15, 0x30, 0x76, 0x34, 0xA1, 0x98, 0x77, 0xAF, 0x00, 0x57, 0xA2, 0x26, 0xAD, 0x0C, 0xB0, + 0x78, 0x02, 0x26, 0xBA, 0x9A, 0xD3, 0x00, 0x00, 0x04, 0x2C, 0x26, 0x2B, 0xEB, 0x25, 0x01, 0x00, + 0xC4, 0x20, 0x9A, 0xCC, 0x00, 0x00, 0x38, 0x21, 0x38, 0x00, 0xEB, 0xCA, 0x01, 0x00, 0x38, 0x71, + 0x38, 0x00, 0x2C, 0xE0, 0x34, 0x00, 0x24, 0x71, 0xC4, 0x75, 0xB9, 0x71, 0x38, 0x00, 0x92, 0xDA, + 0x18, 0x6D, 0x82, 0x02, 0x99, 0x0D, 0x37, 0x03, 0x34, 0x61, 0x2F, 0x76, 0x06, 0x00, 0x26, 0x76, + 0x06, 0x57, 0x57, 0x52, 0x26, 0x75, 0x26, 0x76, 0x2C, 0x70, 0x3C, 0x03, 0x26, 0x7D, 0x78, 0x57, + 0x08, 0x00, 0x78, 0x67, 0x04, 0x00, 0x36, 0x65, 0xC4, 0x60, 0x32, 0x02, 0x16, 0x66, 0xCC, 0x60, + 0x40, 0x01, 0x02, 0x06, 0xC4, 0x50, 0x82, 0x04, 0x04, 0x61, 0x99, 0x6D, 0x37, 0x03, 0x18, 0x6D, + 0x27, 0x03, 0xC4, 0x61, 0x9A, 0x87, 0x00, 0x00, 0x98, 0x6D, 0x28, 0x03, 0x8A, 0x1E, 0x03, 0x00, + 0xF8, 0x67, 0x08, 0x00, 0x8A, 0x1A, 0x03, 0x00, 0xF8, 0x57, 0x0A, 0x00, 0x8A, 0x16, 0x03, 0x00, + 0xF8, 0x57, 0x04, 0x00, 0x8A, 0x12, 0x03, 0x00, 0xF8, 0x47, 0x06, 0x00, 0x8A, 0x0E, 0x03, 0x00, + 0x3F, 0x66, 0x05, 0x00, 0xC4, 0x60, 0x32, 0x02, 0x16, 0x66, 0x38, 0x30, 0x94, 0x15, 0x28, 0x53, + 0x7C, 0x00, 0xC6, 0x65, 0x02, 0x1E, 0x18, 0x4D, 0x34, 0x03, 0x04, 0x61, 0x5C, 0x40, 0xFC, 0x00, + 0x99, 0x4D, 0x34, 0x03, 0x99, 0x6D, 0x32, 0x03, 0x78, 0xF7, 0x04, 0x00, 0x78, 0x27, 0x08, 0x00, + 0xC6, 0xF2, 0x02, 0x07, 0x64, 0x41, 0x99, 0x4D, 0x34, 0x03, 0x04, 0x61, 0x04, 0x50, 0xF2, 0x10, + 0xC6, 0xF2, 0x04, 0x61, 0x04, 0x50, 0x32, 0x0C, 0x64, 0x42, 0x99, 0x4D, 0x34, 0x03, 0xF2, 0x08, + 0xCC, 0x60, 0x10, 0x00, 0x04, 0x51, 0x12, 0x02, 0x04, 0x50, 0x13, 0x55, 0x04, 0x60, 0x78, 0x27, + 0x06, 0x00, 0x78, 0x47, 0x0A, 0x00, 0x3F, 0x44, 0x02, 0x00, 0xC4, 0x40, 0x32, 0x02, 0x16, 0x44, + 0x28, 0x33, 0x7C, 0x00, 0xC6, 0x43, 0x02, 0x1A, 0x18, 0x4D, 0x34, 0x03, 0x04, 0x31, 0x5C, 0x40, + 0xF3, 0x00, 0x99, 0x4D, 0x34, 0x03, 0x99, 0x3D, 0x32, 0x03, 0x78, 0x37, 0x06, 0x00, 0x78, 0x77, + 0x0A, 0x00, 0xC6, 0x37, 0x02, 0x03, 0x64, 0x44, 0xF2, 0x04, 0xC6, 0x37, 0x32, 0x04, 0x64, 0x48, + 0x99, 0x4D, 0x34, 0x03, 0x24, 0x61, 0x13, 0x66, 0xF2, 0x06, 0xCC, 0x40, 0x10, 0x00, 0x02, 0x03, + 0x24, 0x51, 0x13, 0x55, 0x98, 0x7D, 0x35, 0x03, 0x92, 0x11, 0xC4, 0x52, 0x92, 0x0C, 0x18, 0x7D, + 0x33, 0x03, 0xCC, 0x70, 0xFF, 0x00, 0x8A, 0xA9, 0x02, 0x00, 0x24, 0x71, 0x99, 0x7D, 0x33, 0x03, + 0xFA, 0xA4, 0x02, 0x00, 0xC4, 0x60, 0x8A, 0xA1, 0x02, 0x00, 0x99, 0x0D, 0x33, 0x03, 0xFA, 0x9D, + 0x02, 0x00, 0xC4, 0x62, 0x9A, 0xA3, 0x02, 0x00, 0x0C, 0x70, 0xA6, 0x00, 0x26, 0x7D, 0x0C, 0x30, + 0x78, 0x02, 0x06, 0x27, 0x26, 0x3D, 0x04, 0x44, 0x6B, 0xCF, 0x03, 0x00, 0x06, 0x72, 0x04, 0x24, + 0x26, 0x27, 0x0C, 0x30, 0x88, 0x02, 0xFA, 0x8E, 0x02, 0x00, 0x78, 0x7A, 0x78, 0x02, 0xCC, 0x70, + 0x7F, 0x04, 0x1A, 0x36, 0xFF, 0xFF, 0x78, 0x7A, 0x7A, 0x02, 0xCC, 0x70, 0xFE, 0x07, 0x1A, 0x30, + 0xFF, 0xFF, 0x0C, 0xC0, 0x3C, 0x03, 0x26, 0xCE, 0x06, 0x7C, 0x04, 0x68, 0x28, 0x57, 0x20, 0x00, + 0x34, 0x61, 0xA9, 0x57, 0x24, 0x00, 0x28, 0x57, 0x22, 0x00, 0xC4, 0x60, 0xA9, 0x57, 0x26, 0x00, + 0x34, 0x74, 0x92, 0xF5, 0x0C, 0x20, 0x40, 0x03, 0x06, 0x3B, 0x26, 0x2E, 0x04, 0x44, 0x6B, 0xCF, + 0x03, 0x00, 0x04, 0x71, 0x99, 0x7D, 0x30, 0x01, 0x18, 0x7E, 0x64, 0x03, 0x78, 0x2E, 0x40, 0x03, + 0x78, 0x3E, 0x44, 0x03, 0xC4, 0x71, 0xC2, 0x12, 0x3F, 0x73, 0x02, 0x00, 0xC4, 0x70, 0x32, 0x02, + 0x16, 0x77, 0x43, 0x67, 0x78, 0x5E, 0x42, 0x03, 0x78, 0x7E, 0x46, 0x03, 0x3F, 0x77, 0x05, 0x00, + 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, 0x43, 0x87, 0xF2, 0x04, 0x0C, 0x80, 0xA0, 0x00, 0x06, 0x68, + 0xB9, 0x61, 0x68, 0x00, 0x0C, 0xF0, 0xD4, 0x00, 0xF1, 0xF0, 0x06, 0x92, 0x78, 0x3E, 0x46, 0x03, + 0x78, 0x2E, 0x42, 0x03, 0x0C, 0xF0, 0xD4, 0x00, 0xF1, 0xF0, 0x78, 0x3E, 0x48, 0x03, 0xB9, 0x21, + 0x34, 0x00, 0x06, 0x29, 0x0C, 0xF0, 0xD4, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x40, 0x00, 0x78, 0x3E, + 0x4A, 0x03, 0x38, 0x21, 0x34, 0x00, 0x0C, 0xF0, 0xD4, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x44, 0x00, + 0x78, 0x3E, 0x4C, 0x03, 0x78, 0x4E, 0x50, 0x03, 0x38, 0x21, 0x40, 0x00, 0x0C, 0xF0, 0xD8, 0x00, + 0xF1, 0xF0, 0xB9, 0x21, 0x48, 0x00, 0x78, 0x3E, 0x4E, 0x03, 0x78, 0x4E, 0x52, 0x03, 0x38, 0x21, + 0x44, 0x00, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x4C, 0x00, 0x78, 0x3E, 0x54, 0x03, + 0x78, 0x4E, 0x58, 0x03, 0x38, 0x21, 0x48, 0x00, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, 0xB9, 0x21, + 0x50, 0x00, 0x78, 0x3E, 0x56, 0x03, 0x78, 0x4E, 0x5A, 0x03, 0x38, 0x21, 0x4C, 0x00, 0x0C, 0xF0, + 0xD8, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x54, 0x00, 0x78, 0x3E, 0x5C, 0x03, 0x78, 0x4E, 0x60, 0x03, + 0x38, 0x21, 0x50, 0x00, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x58, 0x00, 0x78, 0x3E, + 0x5E, 0x03, 0x78, 0x4E, 0x62, 0x03, 0x38, 0x21, 0x54, 0x00, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, + 0x38, 0x61, 0x68, 0x00, 0xB9, 0x21, 0x5C, 0x00, 0x06, 0x38, 0x06, 0x26, 0x0C, 0xF0, 0x80, 0x00, + 0xF1, 0xF0, 0x99, 0x20, 0xB7, 0x15, 0x28, 0x7E, 0x6C, 0x03, 0x04, 0x31, 0xA9, 0x7E, 0x6E, 0x03, + 0x28, 0x7E, 0x6A, 0x03, 0xA9, 0x2E, 0x6A, 0x03, 0xA9, 0x7E, 0x6C, 0x03, 0x18, 0x7E, 0x69, 0x03, + 0x26, 0x37, 0x26, 0x77, 0x2F, 0x63, 0x03, 0x00, 0x26, 0xC7, 0x04, 0x70, 0x16, 0x66, 0x06, 0x27, + 0x2F, 0x57, 0x0C, 0x00, 0x34, 0x72, 0x78, 0x55, 0x2E, 0x00, 0xC6, 0x76, 0x26, 0x25, 0x92, 0xF9, + 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, 0x10, 0x00, 0x06, 0xC2, 0xB9, 0x71, 0x60, 0x00, 0x38, 0x61, + 0x60, 0x00, 0x04, 0x71, 0xC6, 0x26, 0x02, 0x11, 0x38, 0x61, 0x18, 0x00, 0x04, 0x72, 0xC6, 0x26, + 0x02, 0x0C, 0x38, 0x61, 0x20, 0x00, 0x04, 0x73, 0xC6, 0x26, 0x02, 0x07, 0x38, 0x61, 0x28, 0x00, + 0x04, 0x75, 0xC6, 0x26, 0x12, 0x02, 0x04, 0x74, 0x18, 0x6E, 0x68, 0x03, 0x3F, 0x36, 0x07, 0x00, + 0x0C, 0x70, 0x94, 0x15, 0x30, 0x47, 0x78, 0x7E, 0x66, 0x03, 0x18, 0x24, 0x97, 0x00, 0xC4, 0x30, + 0x16, 0x52, 0x02, 0x04, 0xC6, 0x72, 0x92, 0x0F, 0xF2, 0x05, 0xC4, 0x30, 0x82, 0x06, 0xC6, 0x75, + 0x92, 0x06, 0xA9, 0x0E, 0x66, 0x03, 0xF2, 0x0A, 0xC4, 0x70, 0x02, 0x03, 0x34, 0x71, 0xF2, 0x04, + 0xC4, 0x70, 0x82, 0x04, 0x24, 0x71, 0xA9, 0x7E, 0x66, 0x03, 0x78, 0x7E, 0x66, 0x03, 0x18, 0x44, + 0x97, 0x00, 0xC6, 0x74, 0x92, 0x05, 0xC4, 0x64, 0xD2, 0x03, 0x24, 0x61, 0xF2, 0x0E, 0x28, 0x4D, + 0x06, 0x00, 0xD4, 0x48, 0x82, 0x05, 0xC6, 0x75, 0x92, 0x0A, 0xC4, 0x61, 0xF2, 0x04, 0xC6, 0x75, + 0x92, 0x06, 0xC4, 0x63, 0xC2, 0x04, 0x34, 0x61, 0x99, 0x6E, 0x68, 0x03, 0x18, 0x5E, 0x64, 0x03, + 0x38, 0x21, 0x58, 0x00, 0x06, 0x35, 0xB9, 0x51, 0x64, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x51, + 0x64, 0x00, 0x43, 0x82, 0x38, 0x21, 0x5C, 0x00, 0x06, 0x35, 0x4B, 0x9E, 0x00, 0x00, 0x18, 0x4E, + 0x68, 0x03, 0x38, 0x51, 0x64, 0x00, 0xC4, 0x41, 0x43, 0x72, 0x92, 0x35, 0xC4, 0x58, 0xC2, 0x0E, + 0x38, 0x21, 0x58, 0x00, 0x04, 0x39, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x82, 0x38, 0x21, 0x5C, 0x00, + 0x04, 0x39, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, 0xC4, 0x56, 0xC2, 0x15, 0x38, 0x21, + 0x50, 0x00, 0xB9, 0x71, 0x64, 0x00, 0x04, 0x37, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x92, 0x38, 0x21, + 0x54, 0x00, 0x04, 0x37, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, 0x64, 0x00, 0x06, 0x48, 0x06, 0x57, + 0x06, 0x89, 0x43, 0x72, 0xF2, 0x03, 0x06, 0x48, 0x06, 0x57, 0xB9, 0x41, 0x04, 0x00, 0xB9, 0x51, + 0x08, 0x00, 0xB1, 0x71, 0x06, 0x2B, 0x06, 0x3C, 0x38, 0x41, 0x0C, 0x00, 0x38, 0x51, 0x60, 0x00, + 0xFA, 0x9C, 0x00, 0x00, 0xC4, 0x42, 0x92, 0x34, 0xC4, 0x56, 0xC2, 0x0E, 0x38, 0x21, 0x50, 0x00, + 0x04, 0x37, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x82, 0x38, 0x21, 0x54, 0x00, 0x04, 0x37, 0x4B, 0x9E, + 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, 0xC4, 0x54, 0xC2, 0x15, 0x38, 0x21, 0x48, 0x00, 0xB9, 0x71, + 0x64, 0x00, 0x04, 0x35, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x92, 0x38, 0x21, 0x4C, 0x00, 0x04, 0x35, + 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, 0x64, 0x00, 0x06, 0x48, 0x06, 0x57, 0x06, 0x89, 0x43, 0x72, + 0xF2, 0x03, 0x06, 0x48, 0x06, 0x57, 0xB9, 0x41, 0x04, 0x00, 0xB9, 0x51, 0x08, 0x00, 0xB1, 0x71, + 0x06, 0x2B, 0x06, 0x3C, 0x38, 0x41, 0x14, 0x00, 0x38, 0x51, 0x18, 0x00, 0xF2, 0x66, 0xC4, 0x43, + 0x92, 0x34, 0xC4, 0x54, 0xC2, 0x0E, 0x38, 0x21, 0x48, 0x00, 0x04, 0x35, 0x4B, 0x9E, 0x00, 0x00, + 0x43, 0x82, 0x38, 0x21, 0x4C, 0x00, 0x04, 0x35, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, + 0xC4, 0x52, 0xC2, 0x15, 0x38, 0x21, 0x40, 0x00, 0xB9, 0x71, 0x64, 0x00, 0x04, 0x33, 0x4B, 0x9E, + 0x00, 0x00, 0x43, 0x92, 0x38, 0x21, 0x44, 0x00, 0x04, 0x33, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, + 0x64, 0x00, 0x06, 0x48, 0x06, 0x57, 0x06, 0x89, 0x43, 0x72, 0xF2, 0x03, 0x06, 0x48, 0x06, 0x57, + 0xB9, 0x41, 0x04, 0x00, 0xB9, 0x51, 0x08, 0x00, 0xB1, 0x71, 0x06, 0x2B, 0x06, 0x3C, 0x38, 0x41, + 0x1C, 0x00, 0x38, 0x51, 0x20, 0x00, 0xF2, 0x31, 0xC4, 0x44, 0x92, 0x31, 0xC4, 0x52, 0xC2, 0x0E, + 0x38, 0x21, 0x40, 0x00, 0x04, 0x33, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x82, 0x38, 0x21, 0x44, 0x00, + 0x04, 0x33, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, 0xC4, 0x52, 0x92, 0x11, 0x38, 0x41, + 0x34, 0x00, 0x38, 0x61, 0x34, 0x00, 0x06, 0x59, 0xF7, 0x5F, 0xF7, 0x4F, 0x26, 0x59, 0x26, 0x46, + 0xE7, 0x50, 0xE7, 0x40, 0x06, 0x28, 0x06, 0x37, 0x43, 0x85, 0x43, 0x74, 0xF2, 0x03, 0x06, 0x28, + 0x06, 0x37, 0x38, 0x41, 0x24, 0x00, 0x38, 0x51, 0x28, 0x00, 0xB9, 0x21, 0x04, 0x00, 0xB9, 0x31, + 0x08, 0x00, 0xB1, 0x71, 0x06, 0x2B, 0x06, 0x3C, 0x06, 0x68, 0xF2, 0x20, 0xC4, 0x51, 0xC2, 0x0E, + 0x06, 0x69, 0xF7, 0x6F, 0x26, 0x69, 0xE7, 0x60, 0x38, 0x71, 0x34, 0x00, 0x43, 0x86, 0x38, 0x61, + 0x34, 0x00, 0xF7, 0x7F, 0x26, 0x76, 0xE7, 0x70, 0x43, 0x77, 0x78, 0x5E, 0x42, 0x03, 0x78, 0xFE, + 0x40, 0x03, 0x38, 0x41, 0x2C, 0x00, 0xB1, 0x51, 0x38, 0x51, 0x30, 0x00, 0xB9, 0x81, 0x04, 0x00, + 0xB9, 0x71, 0x08, 0x00, 0x06, 0x2B, 0x06, 0x3C, 0x06, 0x6F, 0x6B, 0xC7, 0x01, 0x00, 0x18, 0x7E, + 0x64, 0x03, 0xC4, 0x78, 0xD2, 0x04, 0x24, 0x71, 0x99, 0x7E, 0x64, 0x03, 0x18, 0x7E, 0x69, 0x03, + 0xC4, 0x71, 0xD2, 0x04, 0x24, 0x71, 0x99, 0x7E, 0x69, 0x03, 0x18, 0x7A, 0x82, 0x02, 0x34, 0x71, + 0x2F, 0x67, 0x07, 0x00, 0x26, 0x67, 0x06, 0x96, 0x57, 0x92, 0x26, 0x69, 0x26, 0x76, 0x2C, 0x70, + 0x3C, 0x03, 0x2F, 0x97, 0x0D, 0x00, 0xF0, 0x29, 0x22, 0x39, 0xF8, 0x79, 0x02, 0x00, 0x22, 0x36, + 0x38, 0x61, 0x3C, 0x00, 0xB9, 0x71, 0x64, 0x00, 0x0C, 0xC0, 0x64, 0x00, 0x06, 0x8C, 0x36, 0x86, + 0x06, 0x38, 0xAB, 0x97, 0x00, 0x00, 0x06, 0x3C, 0x4B, 0x9E, 0x00, 0x00, 0x06, 0x62, 0x38, 0x31, + 0x3C, 0x00, 0x78, 0x2A, 0x78, 0x02, 0xB9, 0x61, 0x68, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x06, 0x3C, + 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x61, 0x68, 0x00, 0x38, 0x71, 0x64, 0x00, 0x26, 0x26, 0x06, 0x38, + 0xA9, 0x2A, 0x78, 0x02, 0x06, 0x27, 0xAB, 0x97, 0x00, 0x00, 0x06, 0x3C, 0x4B, 0x9E, 0x00, 0x00, + 0x06, 0x82, 0x38, 0x31, 0x3C, 0x00, 0x78, 0x2A, 0x7A, 0x02, 0xAB, 0x97, 0x00, 0x00, 0x06, 0x3C, + 0x4B, 0x9E, 0x00, 0x00, 0x26, 0x28, 0xA9, 0x2A, 0x7A, 0x02, 0x06, 0x29, 0x06, 0x3B, 0x04, 0x44, + 0x6B, 0xCF, 0x03, 0x00, 0xFA, 0xB5, 0xFC, 0xFF, 0x0C, 0x20, 0xA6, 0x00, 0x26, 0x2D, 0x0C, 0x30, + 0x78, 0x02, 0x26, 0x3D, 0x04, 0x44, 0x6B, 0xCF, 0x03, 0x00, 0x58, 0xC1, 0x7C, 0x00, 0x58, 0x81, + 0x6C, 0x00, 0x2C, 0x10, 0x8C, 0x00, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x20, 0xEC, 0x11, 0x04, 0x30, + 0x0C, 0x40, 0x28, 0x00, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x1A, 0x12, + 0x14, 0x31, 0x0C, 0x40, 0x3C, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x0C, 0x70, + 0x00, 0x10, 0xA9, 0x07, 0x22, 0x00, 0xA9, 0x07, 0x74, 0x02, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x44, 0x03, 0xD9, 0xC1, 0x34, 0x03, 0x38, 0xD0, 0x94, 0x15, 0xD9, 0x81, 0x24, 0x03, + 0x0C, 0xE0, 0x00, 0x10, 0x18, 0xCD, 0x5A, 0x00, 0xA9, 0x0E, 0x68, 0x02, 0x18, 0x3D, 0x48, 0x00, + 0x28, 0x2E, 0x08, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x4B, 0x9E, 0x00, 0x00, + 0x23, 0x22, 0xA9, 0x2E, 0x6A, 0x02, 0x28, 0x7D, 0x4A, 0x00, 0xC6, 0x27, 0xB2, 0x03, 0xA9, 0x7E, + 0x6A, 0x02, 0x28, 0x7E, 0x06, 0x00, 0xDC, 0x70, 0x10, 0x00, 0x82, 0x08, 0x18, 0x7D, 0x62, 0x00, + 0x36, 0xC7, 0xC4, 0xC0, 0x12, 0x02, 0x04, 0xC1, 0x13, 0xCC, 0x0C, 0x20, 0xE0, 0x02, 0x26, 0x21, + 0x04, 0x30, 0x04, 0x4A, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x06, 0x21, 0x04, 0x30, 0x0C, 0x40, + 0x40, 0x02, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x40, 0x02, 0x26, 0x21, 0x04, 0x30, + 0x0C, 0x40, 0x78, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0xB8, 0x02, 0x0C, 0x40, + 0x28, 0x00, 0x26, 0x21, 0x04, 0x30, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x28, 0x2E, 0x08, 0x00, + 0xA9, 0x0E, 0x14, 0x02, 0x06, 0x3C, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9B, + 0x00, 0x00, 0x28, 0x7E, 0x0E, 0x00, 0x04, 0x60, 0x26, 0x27, 0xA9, 0x2E, 0x16, 0x02, 0xB9, 0x61, + 0xEC, 0x02, 0x06, 0x86, 0x04, 0xA1, 0x06, 0xC6, 0x2F, 0x78, 0x08, 0x00, 0x26, 0x7E, 0xB9, 0x71, + 0x10, 0x03, 0x04, 0xD0, 0x38, 0x71, 0xEC, 0x02, 0x26, 0x7D, 0x23, 0x77, 0x0C, 0x60, 0x80, 0x02, + 0xB9, 0x71, 0xF0, 0x02, 0x26, 0x77, 0x26, 0x76, 0x70, 0x77, 0x28, 0x6E, 0x6A, 0x02, 0xC6, 0x76, + 0x02, 0x06, 0x28, 0x6E, 0x68, 0x02, 0x24, 0x61, 0xA9, 0x6E, 0x68, 0x02, 0x0C, 0x40, 0x16, 0x02, + 0x26, 0x4E, 0x70, 0x44, 0xC6, 0x74, 0xB9, 0x41, 0xF4, 0x02, 0x0A, 0xE7, 0x00, 0x00, 0x2F, 0x7D, + 0x0D, 0x00, 0x04, 0xB0, 0x26, 0x7E, 0xB9, 0x71, 0x0C, 0x03, 0xB9, 0xB1, 0xF8, 0x02, 0xB9, 0xB1, + 0xFC, 0x02, 0xB9, 0xB1, 0x00, 0x03, 0x06, 0x6B, 0xB9, 0xB1, 0x04, 0x03, 0x06, 0x5B, 0x38, 0x91, + 0xF0, 0x02, 0x38, 0x21, 0xF4, 0x02, 0x23, 0x7B, 0x26, 0x97, 0x23, 0x99, 0x2F, 0x49, 0x09, 0x00, + 0x0C, 0xF0, 0x80, 0x02, 0x26, 0x4F, 0x70, 0x44, 0xC6, 0x42, 0x0A, 0x8A, 0x00, 0x00, 0x13, 0x3C, + 0xB9, 0x31, 0x08, 0x03, 0x38, 0xF1, 0x08, 0x03, 0x36, 0x42, 0x38, 0x21, 0x0C, 0x03, 0x2F, 0x39, + 0x01, 0x00, 0x91, 0xF3, 0x2F, 0x3B, 0x0B, 0x00, 0x26, 0x32, 0x28, 0x33, 0x26, 0x00, 0xB9, 0x51, + 0x14, 0x03, 0x06, 0x24, 0xB9, 0x61, 0x18, 0x03, 0xB9, 0x71, 0x20, 0x03, 0xB9, 0x41, 0x1C, 0x03, + 0xAB, 0x97, 0x00, 0x00, 0x38, 0x31, 0xF8, 0x02, 0x38, 0xF1, 0x10, 0x03, 0x38, 0x41, 0x1C, 0x03, + 0x26, 0x32, 0xB9, 0x31, 0xF8, 0x02, 0x28, 0x3F, 0x66, 0x00, 0x06, 0x24, 0xAB, 0x97, 0x00, 0x00, + 0x38, 0x31, 0xFC, 0x02, 0x38, 0xF1, 0x00, 0x03, 0x38, 0x41, 0x1C, 0x03, 0x38, 0x71, 0x20, 0x03, + 0x38, 0x51, 0x14, 0x03, 0x38, 0x61, 0x18, 0x03, 0xC4, 0x80, 0x26, 0x32, 0x26, 0xF4, 0x24, 0x71, + 0xB9, 0x31, 0xFC, 0x02, 0xB9, 0xF1, 0x00, 0x03, 0x23, 0x77, 0x82, 0x45, 0xC4, 0x50, 0x14, 0x4E, + 0x26, 0x41, 0x26, 0x49, 0x92, 0x14, 0x90, 0x44, 0x92, 0x0F, 0xC4, 0xD0, 0x82, 0x08, 0x14, 0x4F, + 0x26, 0x41, 0x26, 0x49, 0x90, 0x44, 0x92, 0x08, 0xC4, 0xDD, 0x82, 0x35, 0x14, 0x2D, 0x26, 0x21, + 0x26, 0x92, 0x90, 0x49, 0x82, 0x30, 0x06, 0xC4, 0x04, 0x51, 0xF2, 0x2D, 0x90, 0x44, 0x82, 0x04, + 0xC6, 0x4C, 0x9A, 0x84, 0x01, 0x00, 0xC4, 0xD0, 0x82, 0x0B, 0x14, 0x4F, 0x26, 0x41, 0x26, 0x49, + 0x90, 0x44, 0x82, 0x04, 0xC6, 0x4C, 0x9A, 0x7A, 0x01, 0x00, 0xC4, 0xDD, 0x82, 0x09, 0x14, 0x3D, + 0x26, 0x31, 0x26, 0x93, 0x90, 0x49, 0x82, 0x04, 0xC6, 0x4C, 0x9A, 0x70, 0x01, 0x00, 0xB8, 0x41, + 0x04, 0x03, 0x82, 0x11, 0xC4, 0x64, 0xD2, 0x0F, 0xC4, 0xC4, 0xD2, 0x0D, 0xC6, 0xC6, 0x0C, 0x40, + 0xE0, 0x02, 0x26, 0x41, 0xC2, 0x04, 0x26, 0x4C, 0x91, 0x64, 0xF2, 0x05, 0x38, 0xF1, 0x08, 0x03, + 0x26, 0x46, 0x91, 0xF4, 0x24, 0xD1, 0xC4, 0xDE, 0x24, 0xB1, 0x9A, 0x6A, 0xFF, 0xFF, 0x14, 0x61, + 0x26, 0x6A, 0xC4, 0x68, 0xD2, 0x3A, 0xC4, 0x50, 0x92, 0x03, 0x06, 0xCA, 0x24, 0xA1, 0x38, 0x21, + 0xF0, 0x02, 0xB9, 0x71, 0x20, 0x03, 0x06, 0x47, 0x26, 0x21, 0x33, 0x3C, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x14, 0x51, 0x26, 0x5C, 0x2F, 0x65, 0x05, 0x00, 0x26, 0x65, 0x57, 0x61, 0x26, 0x61, + 0x38, 0x46, 0x40, 0x02, 0x38, 0x21, 0xF8, 0x02, 0x38, 0x31, 0xFC, 0x02, 0x38, 0xF1, 0x00, 0x03, + 0x38, 0x71, 0x20, 0x03, 0x26, 0x42, 0xB9, 0x46, 0x40, 0x02, 0x38, 0x46, 0x44, 0x02, 0x57, 0x51, + 0x26, 0x43, 0xB9, 0x46, 0x44, 0x02, 0x38, 0x46, 0x48, 0x02, 0x26, 0x4F, 0xB9, 0x46, 0x48, 0x02, + 0x2F, 0x65, 0x01, 0x00, 0x28, 0x56, 0xB8, 0x02, 0x99, 0x86, 0xBB, 0x02, 0x26, 0x75, 0xA9, 0x76, + 0xB8, 0x02, 0x04, 0x71, 0x99, 0x76, 0xBA, 0x02, 0x24, 0xD1, 0xC4, 0xDD, 0x0A, 0xFC, 0xFE, 0xFF, + 0x38, 0x71, 0xEC, 0x02, 0x24, 0x81, 0x24, 0x7E, 0xCC, 0x80, 0x16, 0x00, 0x23, 0x77, 0xB9, 0x71, + 0xEC, 0x02, 0x9A, 0xEB, 0xFE, 0xFF, 0x14, 0x91, 0x26, 0x9A, 0xC4, 0x99, 0xC2, 0x09, 0x18, 0x8E, + 0x04, 0x00, 0x28, 0xCE, 0x22, 0x00, 0x06, 0xDE, 0x04, 0xB0, 0xFA, 0xF0, 0x00, 0x00, 0x14, 0xB2, + 0x26, 0xBA, 0x2F, 0xDB, 0x0B, 0x00, 0x06, 0xCA, 0x26, 0xDB, 0x0C, 0x20, 0x40, 0x02, 0x57, 0xC1, + 0x57, 0xD1, 0x26, 0x21, 0x26, 0xC1, 0x0C, 0x70, 0xAC, 0x02, 0x06, 0x89, 0x26, 0xD2, 0x2C, 0xC0, + 0xB0, 0x02, 0x26, 0x71, 0xC4, 0x80, 0x82, 0x45, 0x0C, 0x60, 0xE0, 0x02, 0x26, 0x61, 0x26, 0x68, + 0x10, 0x66, 0x34, 0x61, 0x13, 0x56, 0xC4, 0x59, 0xD2, 0x38, 0x2F, 0x56, 0x06, 0x00, 0x26, 0x56, + 0x57, 0x51, 0x26, 0x51, 0x30, 0x3D, 0x38, 0x45, 0x40, 0x02, 0x57, 0x61, 0x26, 0x43, 0xB9, 0x45, + 0x40, 0x02, 0x38, 0x3D, 0x04, 0x00, 0x38, 0x45, 0x44, 0x02, 0x26, 0x61, 0x26, 0x43, 0xB9, 0x45, + 0x44, 0x02, 0x38, 0x3D, 0x08, 0x00, 0x38, 0x45, 0x48, 0x02, 0x06, 0x2D, 0x26, 0x43, 0xB9, 0x45, + 0x48, 0x02, 0x20, 0x4C, 0x28, 0x56, 0xB8, 0x02, 0x04, 0x3C, 0x26, 0x54, 0xA9, 0x56, 0xB8, 0x02, + 0x3F, 0x4D, 0x07, 0x00, 0x26, 0x3D, 0xB9, 0x71, 0x20, 0x03, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, + 0x0C, 0x40, 0xDC, 0x02, 0x04, 0x34, 0x26, 0x41, 0x06, 0x2C, 0x26, 0x3C, 0x36, 0x4C, 0x0C, 0xF0, + 0xEC, 0x00, 0xF1, 0xF0, 0x38, 0x71, 0x20, 0x03, 0x34, 0x81, 0x34, 0xDC, 0x34, 0xC4, 0xF2, 0xBB, + 0x0C, 0x70, 0xE0, 0x02, 0x26, 0x71, 0x26, 0x7B, 0x06, 0x6A, 0xC4, 0x61, 0x82, 0x1C, 0x98, 0x57, + 0x01, 0x00, 0x82, 0x16, 0x90, 0x57, 0x82, 0x14, 0x06, 0x56, 0xC6, 0x59, 0xD2, 0x0E, 0x0C, 0x40, + 0xE0, 0x02, 0x26, 0x41, 0x26, 0x45, 0x18, 0x27, 0x01, 0x00, 0x10, 0x34, 0xC6, 0x23, 0x92, 0x03, + 0x10, 0x37, 0x91, 0x34, 0x24, 0x51, 0xF2, 0xF2, 0x10, 0x57, 0x99, 0x57, 0x01, 0x00, 0x34, 0x61, + 0x34, 0x71, 0xF2, 0xE4, 0x06, 0x76, 0xC6, 0x7A, 0x8A, 0x7B, 0xFF, 0xFF, 0x0C, 0x50, 0xE0, 0x02, + 0x26, 0x51, 0x26, 0x57, 0x90, 0x45, 0x92, 0x03, 0x91, 0x65, 0x24, 0x61, 0x24, 0x71, 0xF2, 0xF4, + 0x18, 0x7D, 0x39, 0x01, 0x0C, 0x30, 0xE0, 0x02, 0x26, 0x77, 0x06, 0x67, 0xD7, 0x61, 0x3F, 0x77, + 0x06, 0x00, 0x18, 0x6D, 0x38, 0x01, 0x26, 0x31, 0x26, 0x76, 0x23, 0x77, 0x26, 0x71, 0x10, 0x77, + 0x26, 0x73, 0x10, 0x57, 0x14, 0x71, 0x26, 0x75, 0xB3, 0x77, 0x22, 0x4E, 0x06, 0x67, 0x57, 0x61, + 0x26, 0x61, 0x28, 0x46, 0xB8, 0x02, 0x99, 0x5D, 0xF2, 0x01, 0x2F, 0x35, 0x05, 0x00, 0x2F, 0x65, + 0x03, 0x00, 0x26, 0x66, 0x2F, 0xF6, 0x0E, 0x00, 0xA9, 0x4D, 0xF0, 0x01, 0x04, 0x61, 0x2F, 0x26, + 0x0F, 0x00, 0xE8, 0x22, 0x1A, 0x02, 0x32, 0x3D, 0x26, 0x53, 0x26, 0x55, 0x26, 0x5E, 0x26, 0x65, + 0x99, 0xB6, 0x1A, 0x02, 0x18, 0x65, 0x1A, 0x02, 0x24, 0x61, 0x99, 0x65, 0x1A, 0x02, 0x13, 0x64, + 0xC6, 0xC6, 0xA9, 0x6D, 0x3E, 0x01, 0x06, 0x5C, 0xB2, 0x02, 0x06, 0x56, 0x2F, 0x97, 0x07, 0x00, + 0x2F, 0x67, 0x09, 0x00, 0x57, 0x61, 0x26, 0x61, 0xB8, 0xA6, 0x48, 0x02, 0x23, 0xC5, 0x92, 0x02, + 0x04, 0xA1, 0x26, 0x79, 0x57, 0x71, 0x2F, 0x97, 0x01, 0x00, 0x38, 0x29, 0x40, 0x02, 0xB9, 0xA9, + 0x48, 0x02, 0x06, 0x3A, 0x0B, 0x9B, 0x00, 0x00, 0x04, 0x3A, 0x0B, 0x9B, 0x00, 0x00, 0xA9, 0x2D, + 0xEC, 0x01, 0x38, 0x29, 0x44, 0x02, 0x06, 0x3A, 0x0B, 0x9B, 0x00, 0x00, 0x04, 0x3A, 0x0B, 0x9B, + 0x00, 0x00, 0xA9, 0x2D, 0xEE, 0x01, 0x24, 0xB1, 0x24, 0xD8, 0xC6, 0xB8, 0x22, 0x9A, 0xF2, 0x05, + 0x24, 0x61, 0xC4, 0x66, 0x92, 0xBD, 0xF2, 0xCC, 0xA9, 0xCE, 0x22, 0x00, 0x58, 0xC1, 0x34, 0x03, + 0x58, 0x81, 0x24, 0x03, 0x2C, 0x10, 0x44, 0x03, 0xE1, 0xF0, 0x06, 0x64, 0x04, 0x41, 0xB9, 0x41, + 0x04, 0x03, 0xFA, 0x91, 0xFE, 0xFF, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x40, 0x80, 0x00, 0x0C, 0x20, + 0x6C, 0x11, 0x04, 0x30, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x70, 0x00, 0x10, + 0x1C, 0x60, 0xFA, 0x00, 0xA9, 0x67, 0xE4, 0x01, 0xA9, 0x67, 0xE6, 0x01, 0x28, 0x67, 0x06, 0x00, + 0x54, 0x68, 0xA3, 0x46, 0x18, 0x50, 0xBA, 0x15, 0x92, 0x04, 0x06, 0x64, 0xC4, 0x50, 0xF2, 0x03, + 0x04, 0x60, 0xC6, 0x56, 0x82, 0x03, 0x0C, 0x60, 0x32, 0x00, 0x30, 0xF1, 0x99, 0x67, 0xE9, 0x01, + 0x99, 0x07, 0xEA, 0x01, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x20, 0x38, 0x11, 0x04, 0x30, + 0x0C, 0x40, 0x28, 0x00, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x0C, 0x70, + 0x00, 0x10, 0x99, 0x07, 0x04, 0x00, 0xA9, 0x07, 0x34, 0x01, 0xA9, 0x07, 0x36, 0x01, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x14, 0x00, 0x2F, 0x75, 0x05, 0x00, 0xD9, 0xC1, 0x04, 0x00, + 0x06, 0xD5, 0x34, 0x51, 0x57, 0xD2, 0x06, 0x65, 0x36, 0xD7, 0x57, 0x62, 0x2F, 0x75, 0x05, 0x00, + 0x3F, 0x77, 0x06, 0x00, 0x26, 0x74, 0x26, 0xD4, 0x26, 0x77, 0x26, 0xDD, 0x34, 0x72, 0x26, 0xD3, + 0xB1, 0xB1, 0x26, 0x37, 0x04, 0xE0, 0x34, 0x41, 0x06, 0x74, 0x06, 0xF3, 0x04, 0x60, 0xC4, 0x50, + 0x22, 0x11, 0xCC, 0x50, 0x14, 0x00, 0x02, 0x06, 0xC4, 0x7C, 0x82, 0x08, 0xC4, 0x7D, 0x92, 0x0A, + 0xF2, 0x05, 0xC4, 0x70, 0x22, 0x07, 0xC4, 0x7D, 0x12, 0x05, 0x70, 0xBF, 0x70, 0xCD, 0xC6, 0xBC, + 0x12, 0x12, 0x24, 0x61, 0x43, 0x66, 0xC4, 0x63, 0x24, 0x71, 0x24, 0xF2, 0x92, 0xE9, 0x24, 0xE1, + 0x43, 0xEE, 0xC4, 0xE3, 0x2C, 0x30, 0x1C, 0x00, 0x24, 0x51, 0x92, 0xDF, 0x70, 0x7D, 0xB1, 0x72, + 0x04, 0x21, 0xF2, 0x02, 0x04, 0x20, 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x60, 0x01, 0x0C, 0x20, 0x9E, 0x00, 0x26, 0x21, 0x04, 0x30, + 0x04, 0x44, 0xD9, 0xC1, 0x50, 0x01, 0xD9, 0x81, 0x40, 0x01, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x06, 0x21, 0x04, 0x30, 0x0C, 0x40, 0x49, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0xE0, + 0x00, 0x10, 0x0C, 0x70, 0xFF, 0x0F, 0xA9, 0x7E, 0x08, 0x00, 0x18, 0x70, 0xAD, 0x15, 0xA9, 0x0E, + 0x0A, 0x00, 0x0C, 0x80, 0x2C, 0x01, 0xC4, 0x70, 0xA9, 0x0E, 0x0C, 0x00, 0xA9, 0x0E, 0x2C, 0x01, + 0xA9, 0x0E, 0x18, 0x02, 0xB9, 0x81, 0xDC, 0x00, 0x78, 0xCE, 0x0E, 0x00, 0x92, 0x09, 0x38, 0x70, + 0x94, 0x15, 0x0C, 0xF0, 0x22, 0x00, 0x26, 0xF7, 0x20, 0x7F, 0xB9, 0x71, 0xDC, 0x00, 0x28, 0x7E, + 0x6A, 0x01, 0x38, 0x81, 0xDC, 0x00, 0x38, 0xD0, 0x94, 0x15, 0x26, 0x78, 0x23, 0x77, 0x0C, 0x40, + 0x28, 0x00, 0xA9, 0x7E, 0x60, 0x01, 0x26, 0x4D, 0x20, 0x44, 0x98, 0x60, 0xBA, 0x15, 0xB9, 0x41, + 0xF8, 0x00, 0x82, 0x09, 0x28, 0x6E, 0x06, 0x00, 0xD4, 0x68, 0x92, 0x05, 0x2C, 0x70, 0xC8, 0x00, + 0xA9, 0x7E, 0x60, 0x01, 0x08, 0x70, 0x00, 0x40, 0x38, 0x27, 0xE4, 0x70, 0x04, 0x3E, 0x5C, 0x20, + 0xFF, 0x01, 0x8B, 0xA1, 0x00, 0x00, 0xA3, 0x22, 0x82, 0x03, 0xC4, 0x2B, 0x92, 0x08, 0x28, 0x6D, + 0x2A, 0x00, 0x28, 0x7E, 0x60, 0x01, 0x26, 0x76, 0xA9, 0x7E, 0x60, 0x01, 0x6B, 0xBA, 0x00, 0x00, + 0x38, 0xD0, 0x94, 0x15, 0x04, 0xA1, 0x28, 0x3D, 0xC8, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, + 0x64, 0x00, 0x0B, 0x9B, 0x00, 0x00, 0xB9, 0x21, 0xFC, 0x00, 0x18, 0x2E, 0x28, 0x03, 0xC6, 0x2A, + 0xC2, 0x08, 0x18, 0x3D, 0x3D, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x86, 0xA2, 0x92, 0x02, 0x04, 0xA1, + 0x18, 0x3D, 0x3C, 0x00, 0x78, 0x2E, 0x2A, 0x01, 0x06, 0xBE, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, + 0x64, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x28, 0x7D, 0x3A, 0x00, 0xC6, 0x27, 0xB2, 0x02, 0x06, 0x27, + 0x06, 0x3A, 0x0B, 0x9B, 0x00, 0x00, 0xA9, 0x2B, 0x2C, 0x01, 0x06, 0x3A, 0x06, 0x2C, 0x0B, 0x9B, + 0x00, 0x00, 0x30, 0x7D, 0xB9, 0x21, 0x00, 0x01, 0xDC, 0x70, 0x00, 0x80, 0x92, 0x04, 0x0C, 0x70, + 0x80, 0x02, 0xF2, 0x03, 0x0C, 0x70, 0x80, 0x0B, 0xB9, 0x71, 0xE8, 0x00, 0x0C, 0x70, 0x62, 0x10, + 0xB9, 0x71, 0xC0, 0x00, 0x06, 0xB7, 0x0C, 0xB0, 0x64, 0x11, 0x04, 0x70, 0xB9, 0x71, 0xB0, 0x00, + 0xB9, 0x71, 0xB4, 0x00, 0xB9, 0x71, 0xD8, 0x00, 0x0C, 0x70, 0x4C, 0x00, 0x26, 0x71, 0x34, 0x72, + 0xB9, 0x71, 0x28, 0x01, 0x38, 0x71, 0xB0, 0x00, 0x38, 0xA1, 0xB0, 0x00, 0x38, 0x81, 0xB0, 0x00, + 0x23, 0x77, 0xB9, 0x71, 0xE4, 0x00, 0x26, 0x77, 0x06, 0x67, 0xD7, 0x61, 0x3F, 0x77, 0x06, 0x00, + 0x23, 0x77, 0x43, 0xAA, 0xB9, 0x71, 0x1C, 0x01, 0x04, 0x71, 0xB9, 0xA1, 0xA8, 0x00, 0x06, 0xA7, + 0x53, 0xA8, 0x06, 0x68, 0x34, 0x61, 0xB9, 0xA1, 0x08, 0x01, 0x06, 0xA7, 0x53, 0xA6, 0x06, 0x87, + 0x34, 0x61, 0x53, 0x86, 0x38, 0x61, 0xB0, 0x00, 0xB9, 0xA1, 0x0C, 0x01, 0x38, 0xA1, 0xB0, 0x00, + 0xB9, 0x81, 0x10, 0x01, 0x24, 0x62, 0x26, 0xA7, 0x06, 0x87, 0x53, 0x76, 0xB9, 0x71, 0x18, 0x01, + 0x53, 0x8A, 0xB9, 0xA1, 0xE0, 0x00, 0x0C, 0x70, 0x22, 0x10, 0x04, 0xA0, 0xB9, 0x81, 0x14, 0x01, + 0xB9, 0x71, 0xC4, 0x00, 0xB9, 0xA1, 0xC8, 0x00, 0x0C, 0x90, 0x00, 0x10, 0x28, 0x7E, 0x06, 0x00, + 0x38, 0x81, 0xC8, 0x00, 0xD4, 0x78, 0x43, 0xD8, 0x92, 0x11, 0x38, 0x71, 0xE4, 0x00, 0x34, 0x7C, + 0xC4, 0x75, 0xC2, 0x15, 0x38, 0x70, 0x94, 0x15, 0x0C, 0x40, 0x32, 0x00, 0x26, 0x47, 0x20, 0x74, + 0xB9, 0x71, 0xB8, 0x00, 0x0C, 0x70, 0x80, 0x02, 0xF2, 0x10, 0x38, 0x70, 0x94, 0x15, 0x0C, 0xF0, + 0x32, 0x00, 0x26, 0xF7, 0x20, 0x7F, 0xB9, 0x71, 0xB8, 0x00, 0xF2, 0x05, 0x0C, 0x60, 0x50, 0x00, + 0xB9, 0x61, 0xB8, 0x00, 0x0C, 0x70, 0x80, 0x0B, 0xB9, 0x71, 0xCC, 0x00, 0x38, 0x71, 0xA8, 0x00, + 0xCC, 0x70, 0x15, 0x00, 0x92, 0x08, 0x38, 0x71, 0xC8, 0x00, 0x34, 0x7C, 0x23, 0x77, 0xC4, 0x71, + 0xDA, 0xE0, 0x04, 0x00, 0x38, 0x81, 0xC8, 0x00, 0x38, 0x31, 0x1C, 0x01, 0x26, 0x38, 0x23, 0x33, + 0x06, 0x83, 0x26, 0x83, 0x0C, 0x70, 0x80, 0x02, 0x26, 0x78, 0x70, 0x67, 0x38, 0x70, 0x94, 0x15, + 0xB9, 0x31, 0xAC, 0x00, 0x43, 0xC3, 0x28, 0x77, 0x5C, 0x00, 0xC6, 0x67, 0x02, 0x06, 0x28, 0x7E, + 0x18, 0x02, 0x24, 0x71, 0xA9, 0x7E, 0x18, 0x02, 0xE7, 0xC1, 0x38, 0xA1, 0xAC, 0x00, 0x26, 0xC1, + 0x10, 0x7C, 0x54, 0xA7, 0x63, 0x7A, 0xD4, 0x71, 0x9A, 0xBC, 0x04, 0x00, 0x38, 0x71, 0xA8, 0x00, + 0xCC, 0x70, 0x13, 0x00, 0x04, 0x71, 0xB9, 0x71, 0xBC, 0x00, 0x12, 0x06, 0xC4, 0xDB, 0x12, 0x04, + 0x04, 0x72, 0xB9, 0x71, 0xBC, 0x00, 0x06, 0x73, 0x0C, 0x70, 0x80, 0x0B, 0x26, 0x78, 0x38, 0xF1, + 0xFC, 0x00, 0x70, 0x77, 0x43, 0x6F, 0xC6, 0x76, 0x2A, 0xA4, 0x04, 0x00, 0x38, 0x41, 0xBC, 0x00, + 0xC4, 0x41, 0x92, 0x08, 0x38, 0x51, 0xF8, 0x00, 0x43, 0x65, 0xC6, 0x76, 0x2A, 0x9A, 0x04, 0x00, + 0xF2, 0x06, 0x78, 0x6E, 0x60, 0x01, 0xC6, 0x67, 0x1A, 0x94, 0x04, 0x00, 0x38, 0x51, 0xA8, 0x00, + 0xB9, 0x01, 0xA4, 0x00, 0x0C, 0x20, 0xA4, 0x00, 0x26, 0x21, 0x0C, 0x30, 0x80, 0x0B, 0x06, 0x4D, + 0xAB, 0x37, 0x02, 0x00, 0xC4, 0x20, 0x8A, 0x85, 0x04, 0x00, 0x38, 0x71, 0xCC, 0x00, 0x26, 0x78, + 0x70, 0x67, 0x28, 0x7E, 0x0E, 0x00, 0x3F, 0x77, 0x06, 0x00, 0xC4, 0x70, 0x0A, 0x7A, 0x04, 0x00, + 0x78, 0x6E, 0x2C, 0x01, 0xC6, 0x76, 0x0A, 0x75, 0x04, 0x00, 0x38, 0x71, 0xA4, 0x00, 0x28, 0x6E, + 0x0C, 0x00, 0xC6, 0x76, 0x22, 0x0B, 0xA9, 0x7E, 0x0C, 0x00, 0x18, 0x7E, 0x04, 0x00, 0x24, 0x71, + 0x13, 0x77, 0xB9, 0x71, 0xD8, 0x00, 0x99, 0x7E, 0x57, 0x02, 0x10, 0x5C, 0x04, 0x71, 0x06, 0x67, + 0x53, 0x6A, 0xC4, 0xDD, 0x66, 0x65, 0x91, 0x6C, 0x82, 0x0C, 0x38, 0x51, 0xAC, 0x00, 0x26, 0x57, + 0x06, 0x65, 0xE7, 0x61, 0x26, 0x61, 0x54, 0x57, 0x53, 0x75, 0x10, 0x56, 0x66, 0x75, 0x91, 0x76, + 0x38, 0x71, 0xA8, 0x00, 0xCC, 0x70, 0x15, 0x00, 0x82, 0x2D, 0x38, 0x71, 0xAC, 0x00, 0x04, 0x67, + 0x24, 0x7E, 0x06, 0x57, 0xE7, 0x51, 0x56, 0x67, 0x26, 0x51, 0x04, 0x71, 0x10, 0x45, 0x06, 0x87, + 0x53, 0x86, 0x06, 0x68, 0xC4, 0xD0, 0x66, 0x64, 0x91, 0x65, 0x92, 0x0F, 0x38, 0x71, 0xAC, 0x00, + 0x04, 0x57, 0x24, 0x7F, 0x06, 0x67, 0xE7, 0x61, 0x56, 0x57, 0x26, 0x61, 0x04, 0x71, 0x53, 0x75, + 0x10, 0x56, 0x66, 0x75, 0x91, 0x76, 0xF2, 0x0E, 0x38, 0x51, 0xAC, 0x00, 0xC4, 0xDD, 0x24, 0x5D, + 0x06, 0x65, 0xE7, 0x61, 0x26, 0x61, 0x54, 0x57, 0x53, 0x75, 0x10, 0x56, 0x66, 0x75, 0x91, 0x76, + 0x92, 0xE6, 0x38, 0x41, 0xC8, 0x00, 0x38, 0xA1, 0xB0, 0x00, 0x38, 0x51, 0x00, 0x01, 0x13, 0x44, + 0x06, 0x74, 0x13, 0xAA, 0x34, 0x72, 0xB9, 0xA1, 0xEC, 0x00, 0x0C, 0xD0, 0x78, 0x00, 0x04, 0x20, + 0x0C, 0xC0, 0x4C, 0x00, 0x34, 0xA1, 0x33, 0x77, 0x23, 0x55, 0x26, 0xD1, 0x0C, 0x60, 0xFF, 0xFF, + 0x26, 0xC1, 0x06, 0x32, 0xB9, 0xA1, 0x20, 0x01, 0xB9, 0x41, 0xF0, 0x00, 0xB9, 0x71, 0x24, 0x01, + 0xB9, 0x51, 0xF4, 0x00, 0x38, 0xF1, 0x20, 0x01, 0x38, 0x71, 0x24, 0x01, 0xB9, 0xD1, 0xD4, 0x00, + 0x26, 0xF6, 0x33, 0xFF, 0x2F, 0x5F, 0x0F, 0x00, 0x06, 0x45, 0xD7, 0x41, 0x3F, 0x55, 0x04, 0x00, + 0x23, 0x55, 0xB9, 0x51, 0x04, 0x01, 0x06, 0x4C, 0x0C, 0x50, 0xFF, 0xFF, 0xC4, 0xF0, 0x22, 0x0D, + 0xCC, 0xF0, 0x14, 0x00, 0x02, 0x06, 0xC4, 0x7C, 0x82, 0x0A, 0xC4, 0x7D, 0x92, 0x06, 0xF2, 0x07, + 0xC4, 0x70, 0x22, 0x03, 0xC4, 0x7D, 0x02, 0x03, 0xA1, 0x04, 0xF2, 0x2E, 0x38, 0x81, 0x04, 0x01, + 0x38, 0xA1, 0xCC, 0x00, 0x26, 0x87, 0x23, 0x88, 0x26, 0x88, 0x26, 0xA8, 0x20, 0xAA, 0xB9, 0x81, + 0x3C, 0x01, 0x06, 0x8A, 0x38, 0xA1, 0xF4, 0x00, 0x36, 0x8A, 0xB9, 0x81, 0xD0, 0x00, 0x06, 0xA8, + 0xC3, 0x88, 0x32, 0x02, 0x04, 0xA0, 0xC4, 0x62, 0x43, 0x8A, 0xB9, 0x81, 0xD0, 0x00, 0xA1, 0xA4, + 0xD2, 0x13, 0xC4, 0x52, 0xD2, 0x11, 0x38, 0xA1, 0xE8, 0x00, 0x38, 0x81, 0x3C, 0x01, 0x24, 0x31, + 0x26, 0x8A, 0x20, 0xA8, 0x38, 0x81, 0xF4, 0x00, 0x36, 0xA8, 0x38, 0x81, 0xD4, 0x00, 0xA1, 0xA8, + 0x38, 0xA1, 0xD0, 0x00, 0x26, 0x2A, 0x38, 0x81, 0xD4, 0x00, 0x24, 0x51, 0x23, 0x55, 0xC4, 0x54, + 0x24, 0x82, 0x24, 0x71, 0xB9, 0x81, 0xD4, 0x00, 0x24, 0x42, 0x33, 0x77, 0x92, 0xB8, 0x24, 0x61, + 0x23, 0x66, 0xC4, 0x64, 0x24, 0xCA, 0x24, 0xD6, 0x92, 0x9E, 0x98, 0x70, 0xAC, 0x15, 0x92, 0x1A, + 0x34, 0x31, 0xC4, 0x30, 0x12, 0x02, 0x04, 0x31, 0x38, 0xA1, 0xBC, 0x00, 0xC4, 0xA1, 0x92, 0x12, + 0x38, 0xC0, 0x94, 0x15, 0x78, 0xD1, 0x64, 0x00, 0x0B, 0x9B, 0x00, 0x00, 0x28, 0x7C, 0x34, 0x00, + 0x3F, 0x22, 0x0D, 0x00, 0xC6, 0x27, 0xB2, 0x06, 0x28, 0x7C, 0x36, 0x00, 0xC6, 0xD7, 0x2A, 0x81, + 0x03, 0x00, 0x38, 0x31, 0xB8, 0x00, 0x78, 0x21, 0x88, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, + 0x64, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, 0xBC, 0x00, 0x43, 0x22, 0xC4, 0x71, 0x92, 0x3C, + 0x06, 0x76, 0x0C, 0x70, 0x98, 0x15, 0x04, 0xA8, 0x26, 0xA7, 0x20, 0x67, 0x28, 0xF7, 0x02, 0x00, + 0x28, 0xD7, 0x04, 0x00, 0x28, 0xC7, 0x06, 0x00, 0x38, 0x31, 0xAC, 0x00, 0x20, 0x7A, 0xB9, 0x61, + 0xB8, 0x00, 0x0C, 0x40, 0x4C, 0x00, 0x26, 0x41, 0xB9, 0x71, 0xD4, 0x00, 0x24, 0x48, 0x04, 0x50, + 0x2C, 0x30, 0x1E, 0x00, 0x1C, 0xA0, 0x32, 0x00, 0x2F, 0x75, 0x03, 0x00, 0x04, 0x60, 0x38, 0x81, + 0xB8, 0x00, 0xC6, 0x78, 0x82, 0x0F, 0xC6, 0x7F, 0x82, 0x0D, 0xC6, 0x7D, 0x82, 0x0B, 0xC6, 0x7C, + 0x82, 0x09, 0x38, 0x81, 0xD4, 0x00, 0xC6, 0x78, 0x82, 0x05, 0x2F, 0x86, 0x04, 0x00, 0xA9, 0x08, + 0x28, 0x00, 0x34, 0x6A, 0xC6, 0x6A, 0x34, 0x71, 0x92, 0xEB, 0x34, 0x5E, 0x1C, 0x60, 0x46, 0x00, + 0xC6, 0x56, 0x34, 0x42, 0x92, 0xE2, 0x78, 0x71, 0x64, 0x00, 0x28, 0x6E, 0x08, 0x00, 0xB9, 0x71, + 0xA4, 0x00, 0xC6, 0x67, 0x02, 0x03, 0xA9, 0x7E, 0x08, 0x00, 0x28, 0x6E, 0x0A, 0x00, 0xC6, 0x67, + 0x32, 0x03, 0xA9, 0x7E, 0x0A, 0x00, 0x38, 0x71, 0xB4, 0x00, 0x38, 0x81, 0x08, 0x01, 0xB8, 0xA1, + 0xA8, 0x00, 0x66, 0x78, 0xB9, 0x71, 0xB4, 0x00, 0x82, 0x12, 0x38, 0x81, 0x0C, 0x01, 0xC4, 0xA1, + 0x66, 0x78, 0xB9, 0x71, 0xB4, 0x00, 0x82, 0x0B, 0x38, 0xA1, 0x10, 0x01, 0x66, 0x7A, 0xB9, 0x71, + 0xB4, 0x00, 0x38, 0x71, 0xA8, 0x00, 0xCC, 0x70, 0x15, 0x00, 0x82, 0x12, 0x38, 0x71, 0xA8, 0x00, + 0x38, 0x81, 0xB4, 0x00, 0x38, 0xA1, 0x14, 0x01, 0xCC, 0x70, 0x14, 0x00, 0x66, 0x8A, 0xB9, 0x81, + 0xB4, 0x00, 0x82, 0x06, 0x38, 0xA1, 0x18, 0x01, 0x66, 0x8A, 0xB9, 0x81, 0xB4, 0x00, 0x0C, 0xF0, + 0x00, 0x10, 0x18, 0x7F, 0x04, 0x00, 0x78, 0x61, 0x86, 0x00, 0x38, 0x41, 0xF0, 0x00, 0x38, 0x51, + 0xEC, 0x00, 0xD7, 0x71, 0xC6, 0x62, 0x26, 0x7F, 0x99, 0x47, 0x38, 0x01, 0x99, 0x57, 0x39, 0x01, + 0x04, 0x72, 0x12, 0x0A, 0x78, 0x61, 0x80, 0x00, 0xC6, 0x62, 0x12, 0x06, 0x78, 0x61, 0x8C, 0x00, + 0xC6, 0x62, 0x12, 0x02, 0x04, 0x70, 0x78, 0x61, 0x8A, 0x00, 0xC6, 0x62, 0x12, 0x09, 0x78, 0x61, + 0x84, 0x00, 0xC6, 0x62, 0x12, 0x05, 0x78, 0x61, 0x90, 0x00, 0xC6, 0x62, 0x02, 0x02, 0x64, 0x74, + 0x78, 0x61, 0x82, 0x00, 0xC6, 0x62, 0x12, 0x09, 0x78, 0x61, 0x80, 0x00, 0xC6, 0x62, 0x12, 0x05, + 0x78, 0x61, 0x84, 0x00, 0xC6, 0x62, 0x02, 0x02, 0x64, 0x78, 0x78, 0x61, 0x8E, 0x00, 0xC6, 0x62, + 0x12, 0x09, 0x78, 0x61, 0x8C, 0x00, 0xC6, 0x62, 0x12, 0x05, 0x78, 0x61, 0x90, 0x00, 0xC6, 0x62, + 0x02, 0x03, 0x6C, 0x70, 0x10, 0x00, 0x0C, 0x60, 0x4C, 0x00, 0x04, 0x42, 0x04, 0x34, 0x04, 0x28, + 0x56, 0x47, 0x56, 0x37, 0x56, 0x27, 0x26, 0x61, 0x0C, 0x50, 0x74, 0x00, 0x5C, 0x70, 0x10, 0x00, + 0x24, 0x68, 0x26, 0x51, 0x13, 0x44, 0x13, 0x33, 0x13, 0x22, 0x13, 0x77, 0xC4, 0x40, 0x92, 0x02, + 0xA1, 0x05, 0xC4, 0x30, 0x92, 0x03, 0xA9, 0x05, 0x08, 0x00, 0xC4, 0x20, 0x92, 0x02, 0xA1, 0x06, + 0xC4, 0x70, 0x92, 0x03, 0xA9, 0x06, 0x28, 0x00, 0x38, 0x81, 0x28, 0x01, 0x34, 0x62, 0xC6, 0x68, + 0x34, 0x5A, 0x92, 0xED, 0x78, 0x31, 0x4E, 0x00, 0x78, 0x41, 0x50, 0x00, 0x78, 0x51, 0x52, 0x00, + 0x78, 0x61, 0x54, 0x00, 0x78, 0x21, 0x4C, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0xB9, 0x21, + 0xAC, 0x00, 0x78, 0x31, 0x76, 0x00, 0x78, 0x41, 0x78, 0x00, 0x78, 0x51, 0x7A, 0x00, 0x78, 0x61, + 0x7C, 0x00, 0x78, 0x21, 0x74, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0xB8, 0x00, + 0x78, 0x31, 0x58, 0x00, 0x78, 0x41, 0x5A, 0x00, 0x78, 0x51, 0x5C, 0x00, 0x78, 0x61, 0x5E, 0x00, + 0x78, 0x21, 0x56, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x78, 0x31, 0x62, 0x00, 0x78, 0x41, + 0x64, 0x00, 0x78, 0x51, 0x66, 0x00, 0x78, 0x61, 0x68, 0x00, 0x06, 0xA2, 0x78, 0x21, 0x60, 0x00, + 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0xD2, 0x78, 0x31, 0x6C, 0x00, 0x78, 0x21, 0x6A, 0x00, + 0x78, 0x41, 0x6E, 0x00, 0x78, 0x51, 0x70, 0x00, 0x78, 0x61, 0x72, 0x00, 0x0C, 0xF0, 0xE0, 0x00, + 0xF1, 0xF0, 0x0C, 0xF0, 0x00, 0x10, 0xF8, 0x7F, 0xE6, 0x01, 0x06, 0xC2, 0x32, 0x05, 0x38, 0x31, + 0xA8, 0x00, 0xA9, 0x3F, 0xE6, 0x01, 0x78, 0x79, 0xE6, 0x01, 0x38, 0x81, 0xB0, 0x00, 0x14, 0x61, + 0x26, 0x67, 0xC6, 0x68, 0x1A, 0x34, 0x01, 0x00, 0x24, 0x71, 0xC6, 0x78, 0x2A, 0x30, 0x01, 0x00, + 0x98, 0x89, 0x04, 0x00, 0x9A, 0x27, 0x01, 0x00, 0x18, 0x79, 0x28, 0x03, 0xC4, 0x71, 0xDA, 0x22, + 0x01, 0x00, 0x38, 0x71, 0xBC, 0x00, 0xC4, 0x72, 0x9A, 0x1D, 0x01, 0x00, 0x98, 0x70, 0xBA, 0x15, + 0x82, 0x03, 0x0C, 0x80, 0x32, 0x00, 0x28, 0x69, 0x06, 0x00, 0xD4, 0x68, 0x82, 0x06, 0x04, 0x80, + 0xC6, 0x78, 0x82, 0x03, 0x0C, 0x80, 0x32, 0x00, 0x78, 0x79, 0xE4, 0x01, 0x06, 0x6D, 0x06, 0x2D, + 0x57, 0x63, 0x57, 0x22, 0x26, 0x26, 0x0C, 0x30, 0x64, 0x00, 0xB9, 0x71, 0x38, 0x01, 0x4B, 0x9E, + 0x00, 0x00, 0xC6, 0x2A, 0x38, 0x71, 0x38, 0x01, 0x02, 0x07, 0xC6, 0x2C, 0x02, 0x05, 0x38, 0xF1, + 0xA8, 0x00, 0xC6, 0x7F, 0x92, 0x1D, 0x18, 0x79, 0xE8, 0x01, 0xCC, 0x70, 0xFF, 0x00, 0x82, 0x04, + 0x24, 0x71, 0x99, 0x79, 0xE8, 0x01, 0x18, 0x79, 0xE8, 0x01, 0xC4, 0x73, 0xC2, 0x15, 0x18, 0x79, + 0xE9, 0x01, 0x99, 0x09, 0xE8, 0x01, 0xC6, 0x78, 0xB2, 0x04, 0x99, 0x89, 0xE9, 0x01, 0xF2, 0x0C, + 0xCC, 0x70, 0x3E, 0x00, 0xD2, 0x09, 0x24, 0x71, 0x99, 0x79, 0xE9, 0x01, 0xF2, 0x05, 0x99, 0x09, + 0xE8, 0x01, 0x99, 0x09, 0xE9, 0x01, 0x38, 0x71, 0xA8, 0x00, 0xC4, 0x71, 0x02, 0x28, 0xB0, 0x2B, + 0x82, 0x1D, 0x18, 0x89, 0xE9, 0x01, 0x06, 0x38, 0xAB, 0x97, 0x00, 0x00, 0x06, 0x72, 0x38, 0x21, + 0xAC, 0x00, 0xB9, 0x71, 0x38, 0x01, 0x0C, 0x30, 0x40, 0x00, 0x36, 0x38, 0xAB, 0x97, 0x00, 0x00, + 0x38, 0x71, 0x38, 0x01, 0x26, 0x27, 0x67, 0x23, 0xC4, 0x20, 0xB1, 0x2B, 0x92, 0x03, 0x04, 0x7A, + 0xB1, 0x7B, 0x30, 0x8B, 0xB9, 0x81, 0xAC, 0x00, 0xF2, 0x0D, 0xB8, 0x71, 0xAC, 0x00, 0x92, 0x03, + 0x04, 0x7A, 0xF2, 0x03, 0x38, 0x71, 0xAC, 0x00, 0xB1, 0x7B, 0xF2, 0x04, 0xB8, 0x81, 0xA8, 0x00, + 0x82, 0x26, 0xB8, 0x2B, 0x04, 0x00, 0x82, 0x1D, 0x18, 0x89, 0xE9, 0x01, 0x06, 0x38, 0xAB, 0x97, + 0x00, 0x00, 0x0C, 0x30, 0x40, 0x00, 0x06, 0x72, 0x36, 0x38, 0x06, 0x2A, 0xB9, 0x71, 0x38, 0x01, + 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x38, 0x01, 0x26, 0x27, 0x67, 0x23, 0xC4, 0x20, 0xB9, 0x2B, + 0x04, 0x00, 0x92, 0x04, 0x04, 0x7A, 0xB9, 0x7B, 0x04, 0x00, 0x38, 0xAB, 0x04, 0x00, 0xF2, 0x07, + 0xC4, 0xA0, 0x04, 0x7A, 0x82, 0x02, 0x06, 0x7A, 0xB9, 0x7B, 0x04, 0x00, 0xB8, 0x2B, 0x08, 0x00, + 0x82, 0x1D, 0x18, 0x89, 0xE9, 0x01, 0x06, 0x38, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x40, 0x00, + 0x06, 0x72, 0x36, 0x38, 0x06, 0x2D, 0xB9, 0x71, 0x38, 0x01, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, + 0x38, 0x01, 0x26, 0x27, 0x67, 0x23, 0xC4, 0x20, 0xB9, 0x2B, 0x08, 0x00, 0x92, 0x04, 0x04, 0x7A, + 0xB9, 0x7B, 0x08, 0x00, 0x38, 0xDB, 0x08, 0x00, 0xF2, 0x07, 0xC4, 0xD0, 0x04, 0x7A, 0x82, 0x02, + 0x06, 0x7D, 0xB9, 0x7B, 0x08, 0x00, 0x38, 0x71, 0xA8, 0x00, 0xCC, 0x70, 0x15, 0x00, 0x82, 0x55, + 0xB8, 0x2B, 0x0C, 0x00, 0x82, 0x1D, 0x18, 0x89, 0xE9, 0x01, 0x06, 0x38, 0xAB, 0x97, 0x00, 0x00, + 0x0C, 0x30, 0x40, 0x00, 0x06, 0x72, 0x36, 0x38, 0x06, 0x2C, 0xB9, 0x71, 0x38, 0x01, 0xAB, 0x97, + 0x00, 0x00, 0x38, 0x71, 0x38, 0x01, 0x26, 0x27, 0x67, 0x23, 0xC4, 0x20, 0xB9, 0x2B, 0x0C, 0x00, + 0x92, 0x04, 0x04, 0x7A, 0xB9, 0x7B, 0x0C, 0x00, 0x38, 0xCB, 0x0C, 0x00, 0xF2, 0x07, 0xC4, 0xC0, + 0x04, 0x7A, 0x82, 0x02, 0x06, 0x7C, 0xB9, 0x7B, 0x0C, 0x00, 0x38, 0x81, 0xA8, 0x00, 0xCC, 0x80, + 0x13, 0x00, 0x12, 0x2B, 0xB8, 0x2B, 0x10, 0x00, 0x82, 0x20, 0x18, 0x89, 0xE9, 0x01, 0x06, 0x38, + 0xAB, 0x97, 0x00, 0x00, 0x06, 0x72, 0x38, 0x21, 0xB8, 0x00, 0xB9, 0x71, 0x38, 0x01, 0x0C, 0x30, + 0x40, 0x00, 0x36, 0x38, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x38, 0x01, 0x26, 0x27, 0x67, 0x23, + 0xC4, 0x20, 0xB9, 0x2B, 0x10, 0x00, 0x92, 0x04, 0x04, 0x7A, 0xB9, 0x7B, 0x10, 0x00, 0x38, 0x7B, + 0x10, 0x00, 0xB9, 0x71, 0xB8, 0x00, 0xF2, 0x09, 0xB8, 0x81, 0xB8, 0x00, 0x04, 0x7A, 0x82, 0x03, + 0x38, 0x71, 0xB8, 0x00, 0xB9, 0x7B, 0x10, 0x00, 0x38, 0xF1, 0xA8, 0x00, 0xA9, 0xF9, 0xE4, 0x01, + 0xF2, 0x0A, 0x38, 0x31, 0xA8, 0x00, 0xA9, 0x39, 0xE4, 0x01, 0xF2, 0x05, 0x38, 0x41, 0xA8, 0x00, + 0xA9, 0x49, 0xE4, 0x01, 0x38, 0x21, 0xAC, 0x00, 0x38, 0x61, 0xB8, 0x00, 0x06, 0x3A, 0x06, 0x4D, + 0x06, 0x5C, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x86, 0x82, 0x92, 0x06, 0x04, 0x7A, 0x04, 0xDA, + 0xA9, 0x71, 0x64, 0x00, 0x06, 0x8D, 0x38, 0x71, 0xC0, 0x00, 0x38, 0x21, 0xAC, 0x00, 0x20, 0x37, + 0xAB, 0x97, 0x00, 0x00, 0x06, 0x72, 0x06, 0x2A, 0x38, 0xA1, 0xC0, 0x00, 0x28, 0x3A, 0x02, 0x00, + 0xB9, 0x71, 0x38, 0x01, 0xAB, 0x97, 0x00, 0x00, 0x38, 0xF1, 0xC0, 0x00, 0x06, 0xA2, 0x28, 0x3F, + 0x04, 0x00, 0x06, 0x2D, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x51, 0xC0, 0x00, 0x06, 0x42, 0x28, 0x35, + 0x06, 0x00, 0xB9, 0x41, 0x34, 0x01, 0x06, 0x2C, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x61, 0xC0, 0x00, + 0x06, 0xD2, 0x28, 0x36, 0x08, 0x00, 0x38, 0x21, 0xB8, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, + 0x38, 0x01, 0x38, 0x41, 0x34, 0x01, 0x06, 0x62, 0x06, 0x3A, 0x06, 0x27, 0x06, 0x5D, 0x0C, 0xF0, + 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0x38, 0x4B, 0x9E, 0x00, 0x00, 0x18, 0x79, 0x04, 0x00, 0x86, 0x22, + 0xD7, 0x71, 0x26, 0x79, 0x24, 0x74, 0x32, 0x02, 0x04, 0x20, 0xA9, 0x27, 0x38, 0x01, 0x78, 0x31, + 0x56, 0x00, 0x78, 0x41, 0x60, 0x00, 0x78, 0x51, 0x6A, 0x00, 0x78, 0x61, 0x74, 0x00, 0x78, 0x21, + 0x4C, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0xAC, 0x00, 0x78, 0x31, 0x5E, 0x00, + 0x78, 0x41, 0x68, 0x00, 0x78, 0x51, 0x72, 0x00, 0x78, 0x61, 0x7C, 0x00, 0x78, 0x21, 0x54, 0x00, + 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0xC2, 0x78, 0x31, 0x58, 0x00, 0x78, 0x41, 0x62, 0x00, + 0x78, 0x51, 0x6C, 0x00, 0x78, 0x61, 0x76, 0x00, 0x78, 0x21, 0x4E, 0x00, 0x0C, 0xF0, 0xE0, 0x00, + 0xF1, 0xF0, 0x06, 0xA2, 0x78, 0x31, 0x5A, 0x00, 0x78, 0x41, 0x64, 0x00, 0x78, 0x51, 0x6E, 0x00, + 0x78, 0x61, 0x78, 0x00, 0x78, 0x21, 0x50, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0xD2, + 0x78, 0x31, 0x5C, 0x00, 0x78, 0x41, 0x66, 0x00, 0x78, 0x51, 0x70, 0x00, 0x78, 0x61, 0x7A, 0x00, + 0x78, 0x21, 0x52, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0xBC, 0x00, 0x38, 0x51, + 0xBC, 0x00, 0x38, 0x21, 0xAC, 0x00, 0x06, 0x3A, 0x06, 0x4D, 0x06, 0x6C, 0x0C, 0xF0, 0xE0, 0x00, + 0xF1, 0xF0, 0x86, 0x82, 0x92, 0x06, 0x04, 0x7A, 0x04, 0x8A, 0xA9, 0x71, 0x64, 0x00, 0x06, 0xD8, + 0x38, 0x71, 0xC4, 0x00, 0x38, 0x21, 0xAC, 0x00, 0x20, 0x37, 0xAB, 0x97, 0x00, 0x00, 0x06, 0x72, + 0x06, 0x2A, 0x38, 0xA1, 0xC4, 0x00, 0x28, 0x3A, 0x02, 0x00, 0xB9, 0x71, 0x38, 0x01, 0xAB, 0x97, + 0x00, 0x00, 0x38, 0xF1, 0xC4, 0x00, 0x06, 0xA2, 0x28, 0x3F, 0x04, 0x00, 0x06, 0x2D, 0xAB, 0x97, + 0x00, 0x00, 0x38, 0x51, 0xC4, 0x00, 0x06, 0x42, 0x28, 0x35, 0x06, 0x00, 0x38, 0x21, 0xBC, 0x00, + 0xB9, 0x41, 0x34, 0x01, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x61, 0xC4, 0x00, 0x06, 0xD2, 0x28, 0x36, + 0x08, 0x00, 0x06, 0x2C, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x38, 0x01, 0x38, 0x41, 0x34, 0x01, + 0x06, 0x62, 0x06, 0x3A, 0x06, 0x27, 0x06, 0x5D, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0x38, + 0x4B, 0x9E, 0x00, 0x00, 0x18, 0x69, 0x04, 0x00, 0x86, 0x22, 0x06, 0x76, 0xD7, 0x71, 0x26, 0x79, + 0x24, 0x74, 0x32, 0x02, 0x04, 0x20, 0xA9, 0x27, 0x36, 0x01, 0x06, 0x76, 0x24, 0x71, 0x13, 0x77, + 0xC4, 0x74, 0x99, 0x79, 0x04, 0x00, 0xC2, 0x05, 0x04, 0x75, 0x99, 0x79, 0x04, 0x00, 0xF2, 0x1D, + 0x38, 0x71, 0xC8, 0x00, 0x38, 0x81, 0xC4, 0x00, 0x24, 0x71, 0xC4, 0x7E, 0x24, 0x82, 0xB9, 0x71, + 0xC8, 0x00, 0xB9, 0x81, 0xC4, 0x00, 0x9A, 0xE3, 0xFA, 0xFF, 0x38, 0x71, 0xE0, 0x00, 0x38, 0xA1, + 0xC0, 0x00, 0xCC, 0x70, 0x16, 0x00, 0x24, 0xA2, 0xB9, 0xA1, 0xC0, 0x00, 0x24, 0xB4, 0x82, 0x05, + 0xB9, 0x71, 0xB0, 0x00, 0xFA, 0x98, 0xFA, 0xFF, 0x78, 0x7E, 0xE6, 0x01, 0x78, 0x6E, 0xE4, 0x01, + 0x14, 0x51, 0x26, 0x57, 0xC6, 0x56, 0x12, 0x04, 0x24, 0x71, 0xC6, 0x76, 0x32, 0x07, 0x18, 0x7E, + 0xEA, 0x01, 0x24, 0x71, 0x99, 0x7E, 0xEA, 0x01, 0xF2, 0x03, 0x99, 0x0E, 0xEA, 0x01, 0x38, 0x60, + 0x80, 0x15, 0x14, 0x51, 0xC4, 0x65, 0x26, 0x56, 0x13, 0x55, 0x04, 0x75, 0xD2, 0x02, 0x06, 0x75, + 0x18, 0x5E, 0xEA, 0x01, 0x13, 0x37, 0x0C, 0x40, 0x6C, 0x11, 0x04, 0x70, 0x38, 0x61, 0xB4, 0x00, + 0x73, 0x67, 0xD4, 0x61, 0x92, 0x05, 0xC6, 0x53, 0xC2, 0x03, 0xB1, 0x04, 0x06, 0x56, 0x24, 0x71, + 0xCC, 0x70, 0x16, 0x00, 0x24, 0x44, 0x92, 0xF3, 0x18, 0xBE, 0x04, 0x00, 0x99, 0x5E, 0xEA, 0x01, + 0xC4, 0xB1, 0x92, 0x6D, 0x18, 0xDE, 0x38, 0x01, 0xC4, 0xDB, 0xD2, 0x69, 0x14, 0x61, 0x26, 0x6D, + 0xC4, 0x69, 0x0C, 0xA0, 0x26, 0x01, 0x43, 0x7D, 0x26, 0xAD, 0x0C, 0x90, 0x80, 0x02, 0xD2, 0x12, + 0x14, 0x61, 0x04, 0x31, 0x26, 0x6A, 0x26, 0x3A, 0x26, 0x66, 0x26, 0x33, 0x26, 0x69, 0x26, 0x39, + 0x70, 0x46, 0x70, 0x53, 0xC6, 0x45, 0x02, 0x03, 0xA1, 0x03, 0xF2, 0x04, 0xC6, 0x45, 0x32, 0x02, + 0xA1, 0x06, 0xC4, 0x70, 0x82, 0x18, 0x14, 0x61, 0x26, 0x6A, 0x26, 0x66, 0x26, 0x69, 0x70, 0xC6, + 0x0C, 0x60, 0x11, 0x00, 0x26, 0x6D, 0x26, 0x66, 0x26, 0x6E, 0x28, 0x36, 0x02, 0x00, 0xB9, 0x71, + 0x38, 0x01, 0x06, 0x2C, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x38, 0x01, 0x06, 0x82, 0xC4, 0x7B, + 0x82, 0x19, 0xF2, 0x03, 0x06, 0xC7, 0x06, 0x87, 0x04, 0x71, 0x26, 0x7A, 0x0C, 0x60, 0x13, 0x00, + 0x26, 0x77, 0x26, 0x6D, 0x26, 0x79, 0x26, 0x66, 0x70, 0x77, 0x26, 0x6E, 0x28, 0x36, 0x02, 0x00, + 0xB9, 0x71, 0x38, 0x01, 0x06, 0x27, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x38, 0x01, 0x26, 0x82, + 0x26, 0xC7, 0x26, 0xAA, 0x26, 0x9A, 0x70, 0x29, 0x2C, 0xD0, 0x12, 0x00, 0x26, 0xC2, 0xC4, 0xC0, + 0x26, 0xDD, 0x26, 0xDE, 0x92, 0x09, 0x28, 0x2D, 0x02, 0x00, 0x04, 0xCA, 0x26, 0x22, 0x06, 0x82, + 0x57, 0x81, 0x26, 0x28, 0xF2, 0x06, 0x28, 0x3D, 0x02, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x26, 0x28, + 0x06, 0x3C, 0x4B, 0x9E, 0x00, 0x00, 0xA9, 0x2E, 0x34, 0x01, 0xF2, 0x05, 0xA9, 0x0E, 0x34, 0x01, + 0xA9, 0x0E, 0x36, 0x01, 0x38, 0xD0, 0x94, 0x15, 0x30, 0x7D, 0xDC, 0x70, 0x80, 0x00, 0x82, 0x67, + 0xC4, 0xB0, 0x92, 0x17, 0xA8, 0x7E, 0x6A, 0x01, 0x82, 0x0B, 0x18, 0x7E, 0x68, 0x01, 0x18, 0x6D, + 0x41, 0x00, 0xC6, 0x67, 0xC2, 0x05, 0x24, 0x71, 0x99, 0x7E, 0x68, 0x01, 0xF2, 0x58, 0xB9, 0x0E, + 0x64, 0x01, 0x99, 0x0E, 0x69, 0x01, 0x99, 0x0E, 0x68, 0x01, 0xA9, 0x0E, 0x6A, 0x01, 0xF2, 0x4F, + 0x18, 0xCE, 0x69, 0x01, 0x18, 0x7D, 0x3E, 0x00, 0xC6, 0xC7, 0xB2, 0x11, 0x24, 0xC1, 0x13, 0xCC, + 0x99, 0xCE, 0x69, 0x01, 0x18, 0x7D, 0x3F, 0x00, 0xC6, 0x7C, 0xB2, 0x3F, 0x38, 0x7E, 0x64, 0x01, + 0x28, 0x6E, 0x0C, 0x00, 0x26, 0x76, 0xB9, 0x7E, 0x64, 0x01, 0xF2, 0x37, 0xC6, 0xC7, 0x92, 0x35, + 0x38, 0x7E, 0x64, 0x01, 0x28, 0x2E, 0x0C, 0x00, 0x26, 0x27, 0xB9, 0x2E, 0x64, 0x01, 0x18, 0x3D, + 0x3F, 0x00, 0x3F, 0x33, 0x0C, 0x00, 0x24, 0x31, 0x0B, 0x9B, 0x00, 0x00, 0xA9, 0x0E, 0x6A, 0x01, + 0x28, 0x7D, 0x42, 0x00, 0xB9, 0x2E, 0x64, 0x01, 0x06, 0xA2, 0xC6, 0x27, 0xC2, 0x15, 0x38, 0x71, + 0xDC, 0x00, 0x18, 0x3D, 0x40, 0x00, 0x36, 0x27, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, + 0x0B, 0x9B, 0x00, 0x00, 0x23, 0x22, 0xA9, 0x2E, 0x6A, 0x01, 0x28, 0x7D, 0x44, 0x00, 0xC6, 0x27, + 0xC2, 0x03, 0xA9, 0x7E, 0x6A, 0x01, 0x18, 0x3D, 0x3F, 0x00, 0x06, 0x2A, 0x3F, 0x33, 0x0C, 0x00, + 0xAB, 0x97, 0x00, 0x00, 0xB9, 0x2E, 0x64, 0x01, 0x99, 0x0E, 0x68, 0x01, 0x0C, 0x40, 0x0D, 0x05, + 0x26, 0x4E, 0x60, 0x44, 0x04, 0xA0, 0xB9, 0x41, 0xA8, 0x00, 0x14, 0xD1, 0x06, 0xCA, 0x0C, 0x90, + 0x16, 0x00, 0xC6, 0xCB, 0x32, 0x56, 0x06, 0x5C, 0xD7, 0x51, 0x26, 0x5E, 0x04, 0x84, 0x26, 0x85, + 0x78, 0x28, 0x36, 0x01, 0xB9, 0x51, 0x2C, 0x01, 0x04, 0x3A, 0x4B, 0x9E, 0x00, 0x00, 0x06, 0x42, + 0xA9, 0x28, 0x36, 0x01, 0x78, 0x28, 0x38, 0x01, 0xB9, 0x41, 0x34, 0x01, 0x04, 0x3A, 0x4B, 0x9E, + 0x00, 0x00, 0x0C, 0x60, 0x34, 0x01, 0x26, 0x68, 0x10, 0x66, 0x38, 0x41, 0x34, 0x01, 0x38, 0x51, + 0x2C, 0x01, 0xB9, 0x61, 0xB0, 0x00, 0x43, 0x22, 0xA9, 0x28, 0x38, 0x01, 0x43, 0x44, 0x0C, 0x70, + 0xAA, 0x14, 0x04, 0x60, 0x78, 0x37, 0x04, 0x00, 0xC6, 0x34, 0x12, 0x0E, 0x78, 0x37, 0x06, 0x00, + 0xC6, 0x34, 0x22, 0x0A, 0x70, 0x37, 0xC6, 0x32, 0x12, 0x07, 0x78, 0x37, 0x02, 0x00, 0xC6, 0x32, + 0x22, 0x03, 0x18, 0x95, 0x39, 0x01, 0x06, 0xF9, 0x38, 0x81, 0xB0, 0x00, 0x57, 0xF2, 0x2F, 0x39, + 0x09, 0x00, 0x3F, 0x33, 0x0F, 0x00, 0x26, 0x38, 0x26, 0x33, 0x0C, 0xF0, 0x80, 0x02, 0x26, 0x3F, + 0x70, 0x33, 0xC6, 0xA3, 0x32, 0x06, 0x33, 0x86, 0xB9, 0x81, 0xA8, 0x00, 0x06, 0xA3, 0x06, 0xDC, + 0x24, 0x61, 0x43, 0x66, 0xC4, 0x62, 0x24, 0x78, 0x92, 0xD6, 0x24, 0xC1, 0x43, 0xCC, 0xF2, 0xAA, + 0xB9, 0xA1, 0xA4, 0x00, 0x98, 0x7E, 0x05, 0x00, 0x38, 0xA1, 0xA8, 0x00, 0xB9, 0xD1, 0xB0, 0x00, + 0x99, 0xAE, 0x0D, 0x05, 0x92, 0x23, 0xC4, 0xB1, 0xC2, 0x21, 0x98, 0x7E, 0x28, 0x03, 0x92, 0x1E, + 0xB8, 0x71, 0xD8, 0x00, 0x82, 0x1B, 0x34, 0x71, 0xD7, 0x71, 0x26, 0x7E, 0x78, 0x57, 0x3A, 0x01, + 0x78, 0x67, 0x3C, 0x01, 0x0C, 0x40, 0x62, 0x01, 0x0C, 0x70, 0x3A, 0x11, 0x26, 0x4E, 0xC6, 0x74, + 0x82, 0x06, 0xA1, 0x07, 0xA9, 0x07, 0x02, 0x00, 0x24, 0x78, 0xF2, 0xFA, 0x04, 0x71, 0x99, 0x7E, + 0x04, 0x00, 0xA9, 0x5E, 0x3A, 0x01, 0xA9, 0x6E, 0x3C, 0x01, 0x28, 0x5E, 0x06, 0x00, 0x04, 0x71, + 0xD6, 0x75, 0x82, 0x1B, 0x18, 0x5E, 0x04, 0x00, 0xC4, 0x51, 0xC2, 0x39, 0xC4, 0xD0, 0x22, 0x37, + 0xC6, 0xD5, 0x32, 0x0E, 0x06, 0x4D, 0x24, 0xD1, 0x06, 0x7D, 0xD7, 0x71, 0x26, 0x7E, 0x48, 0x67, + 0x38, 0x01, 0xD7, 0x41, 0x26, 0x4E, 0xC9, 0x64, 0x38, 0x01, 0x43, 0xDD, 0xF2, 0xF2, 0x06, 0x75, + 0x34, 0x71, 0x99, 0x7E, 0x04, 0x00, 0xF2, 0x23, 0x04, 0x72, 0xD6, 0x75, 0x82, 0x20, 0x18, 0x4E, + 0x04, 0x00, 0xC4, 0x41, 0xC2, 0x1C, 0xC4, 0xD0, 0x22, 0x1A, 0xC6, 0xD4, 0x32, 0x0E, 0x06, 0x3D, + 0x24, 0xD1, 0x06, 0x7D, 0xD7, 0x71, 0x26, 0x7E, 0x48, 0x67, 0x38, 0x01, 0xD7, 0x31, 0x26, 0x3E, + 0xC9, 0x63, 0x38, 0x01, 0x43, 0xDD, 0xF2, 0xF2, 0x06, 0x74, 0x34, 0x71, 0x99, 0x7E, 0x04, 0x00, + 0x14, 0x83, 0x06, 0x75, 0x56, 0x78, 0x64, 0x71, 0xA9, 0x7E, 0x06, 0x00, 0x18, 0x7E, 0x04, 0x00, + 0xC4, 0x71, 0xCA, 0x59, 0x01, 0x00, 0x18, 0x7E, 0x56, 0x02, 0x0C, 0x80, 0x00, 0x64, 0xC4, 0x70, + 0x82, 0x03, 0x0C, 0x80, 0x00, 0x94, 0x0C, 0x20, 0x94, 0x00, 0x26, 0x21, 0x04, 0x30, 0x04, 0x4A, + 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x18, 0xBE, 0x04, 0x00, 0x04, 0xA0, 0x06, 0xDA, 0x04, 0x51, + 0xC6, 0xDB, 0x32, 0x4D, 0x06, 0x9D, 0xD7, 0x91, 0x26, 0x9E, 0x2F, 0x6D, 0x0D, 0x00, 0x2C, 0x90, + 0x38, 0x01, 0x06, 0xCD, 0x26, 0x61, 0xC6, 0xCB, 0x32, 0x3F, 0x06, 0x7C, 0xD7, 0x71, 0x24, 0x74, + 0x2F, 0x47, 0x0E, 0x00, 0x78, 0x39, 0x02, 0x00, 0x78, 0x74, 0x36, 0x01, 0x3F, 0x77, 0x03, 0x00, + 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, 0x78, 0x29, 0x04, 0x00, 0x78, 0x44, 0x38, 0x01, 0x36, 0x24, + 0xC4, 0x20, 0x32, 0x02, 0x16, 0x22, 0x06, 0x32, 0xB9, 0x51, 0x2C, 0x01, 0xB9, 0x61, 0x30, 0x01, + 0xB9, 0x71, 0x38, 0x01, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x38, 0x01, 0x06, 0x42, 0x06, 0x37, + 0x06, 0x27, 0xB9, 0x41, 0x34, 0x01, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x41, 0x34, 0x01, 0x38, 0x51, + 0x2C, 0x01, 0x38, 0x61, 0x30, 0x01, 0x26, 0x24, 0xC6, 0x82, 0xC2, 0x0B, 0x28, 0x46, 0x94, 0x00, + 0x06, 0x75, 0x53, 0x7C, 0xC6, 0xDC, 0x66, 0x74, 0xA9, 0x76, 0x94, 0x00, 0x82, 0x02, 0x04, 0xA1, + 0x24, 0xC1, 0x43, 0xCC, 0xF2, 0xC1, 0x24, 0xD1, 0x43, 0xDD, 0xF2, 0xB3, 0xC4, 0xA1, 0x92, 0x04, + 0x99, 0xAE, 0x56, 0x02, 0xF2, 0x03, 0x99, 0x0E, 0x56, 0x02, 0x14, 0x71, 0x26, 0x7B, 0x43, 0x77, + 0x14, 0x21, 0xC6, 0x72, 0x82, 0x23, 0x2F, 0x57, 0x07, 0x00, 0x26, 0x51, 0xA8, 0x65, 0x94, 0x00, + 0x82, 0x1A, 0x04, 0x61, 0x26, 0x67, 0x43, 0x66, 0x06, 0x45, 0xC6, 0x6B, 0x32, 0x14, 0x28, 0x34, + 0x94, 0x00, 0x06, 0x53, 0x63, 0x56, 0xD4, 0x51, 0x82, 0x0B, 0x2F, 0x56, 0x06, 0x00, 0x26, 0x51, + 0x28, 0xF5, 0x94, 0x00, 0x66, 0x3F, 0xA9, 0x34, 0x94, 0x00, 0xA9, 0x05, 0x94, 0x00, 0x24, 0x61, + 0x43, 0x66, 0xF2, 0xEC, 0x34, 0x71, 0x43, 0x77, 0xF2, 0xDD, 0x04, 0xB0, 0x06, 0xCB, 0x18, 0xDE, + 0x04, 0x00, 0xC6, 0xCD, 0x3A, 0x93, 0x00, 0x00, 0x2F, 0x6C, 0x0C, 0x00, 0x26, 0x61, 0xA8, 0x76, + 0x94, 0x00, 0x04, 0x81, 0x26, 0x8C, 0x8A, 0x87, 0x00, 0x00, 0xD7, 0xC1, 0x0C, 0xA0, 0x00, 0x10, + 0x24, 0xC4, 0x26, 0xCA, 0x18, 0x7C, 0x35, 0x01, 0x38, 0xA1, 0xCC, 0x00, 0x78, 0x3C, 0x36, 0x01, + 0x26, 0x77, 0x06, 0x57, 0xD7, 0x51, 0x3F, 0x77, 0x05, 0x00, 0x18, 0x5C, 0x34, 0x01, 0x26, 0x75, + 0x23, 0x77, 0x26, 0x77, 0x26, 0x7A, 0x70, 0xD7, 0xB9, 0x61, 0x30, 0x01, 0x06, 0x2D, 0xAB, 0x97, + 0x00, 0x00, 0x78, 0x3C, 0x38, 0x01, 0x06, 0x92, 0x06, 0x2D, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x61, + 0x30, 0x01, 0x06, 0xA2, 0x43, 0x78, 0xB9, 0x61, 0xA8, 0x00, 0x0C, 0x40, 0x00, 0x10, 0x18, 0x64, + 0x04, 0x00, 0xC6, 0x76, 0x32, 0x47, 0x38, 0x51, 0xA8, 0x00, 0x28, 0x65, 0x94, 0x00, 0x63, 0x67, + 0xD4, 0x61, 0x82, 0x3D, 0x06, 0x67, 0xD7, 0x61, 0x0C, 0xF0, 0x00, 0x10, 0x24, 0x64, 0x26, 0x6F, + 0x18, 0x56, 0x35, 0x01, 0x0C, 0x40, 0x34, 0x01, 0x26, 0x55, 0x06, 0x35, 0xD7, 0x31, 0x3F, 0x55, + 0x03, 0x00, 0x18, 0x36, 0x34, 0x01, 0x26, 0x46, 0x26, 0x53, 0x38, 0x31, 0xCC, 0x00, 0x23, 0x55, + 0x26, 0x55, 0x26, 0x53, 0x70, 0x55, 0x78, 0x36, 0x36, 0x01, 0xB9, 0x71, 0x38, 0x01, 0x06, 0x25, + 0xB9, 0x41, 0x34, 0x01, 0x26, 0xD5, 0xB9, 0x51, 0x2C, 0x01, 0xB9, 0x61, 0x30, 0x01, 0xAB, 0x97, + 0x00, 0x00, 0x38, 0x61, 0x30, 0x01, 0x38, 0x51, 0x2C, 0x01, 0x78, 0x36, 0x38, 0x01, 0x26, 0x92, + 0x06, 0x25, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x41, 0x34, 0x01, 0x26, 0xA2, 0x04, 0x30, 0x06, 0x24, + 0x04, 0x48, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x38, 0x71, 0x38, 0x01, 0x24, 0x71, 0x43, 0x77, + 0xF2, 0xB5, 0xC4, 0xD0, 0x92, 0x02, 0x04, 0xD1, 0x06, 0x3D, 0x06, 0x29, 0x0B, 0x9B, 0x00, 0x00, + 0xA9, 0x2C, 0x36, 0x01, 0x06, 0x3D, 0x06, 0x2A, 0x24, 0xB1, 0x0B, 0x9B, 0x00, 0x00, 0x23, 0xBB, + 0xA9, 0x2C, 0x38, 0x01, 0x43, 0xC8, 0xFA, 0x6C, 0xFF, 0xFF, 0x34, 0xD1, 0x43, 0xDD, 0x14, 0xC1, + 0x0C, 0xA0, 0x00, 0x10, 0xC6, 0xDC, 0x82, 0x1E, 0x06, 0x7D, 0xD7, 0x71, 0x24, 0x74, 0x0C, 0x50, + 0x00, 0x10, 0x26, 0x75, 0xF8, 0x67, 0x36, 0x01, 0x0C, 0x20, 0x34, 0x01, 0x26, 0x27, 0x92, 0x0F, + 0xF8, 0x77, 0x38, 0x01, 0x92, 0x0C, 0xC4, 0xD3, 0x12, 0x0A, 0x06, 0x3D, 0xD7, 0x31, 0x26, 0x3A, + 0x2C, 0x30, 0x40, 0x01, 0x04, 0x48, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x34, 0xD1, 0x43, 0xDD, + 0xF2, 0xE2, 0x0C, 0x60, 0x00, 0x10, 0x18, 0x76, 0x04, 0x00, 0xC6, 0x7B, 0xA2, 0x06, 0x99, 0xB6, + 0x04, 0x00, 0xF2, 0x03, 0x99, 0x0E, 0x56, 0x02, 0x98, 0x7E, 0x0A, 0x05, 0x92, 0x08, 0x28, 0x7E, + 0x06, 0x00, 0xD4, 0x72, 0x82, 0x13, 0xB8, 0x71, 0xB0, 0x00, 0x32, 0x10, 0x38, 0x60, 0x94, 0x15, + 0x18, 0x7E, 0x0B, 0x05, 0x99, 0x0E, 0x04, 0x00, 0x18, 0x66, 0xC4, 0x00, 0xC6, 0x67, 0xD2, 0x03, + 0x99, 0x0E, 0x0A, 0x05, 0x24, 0x71, 0x99, 0x7E, 0x0B, 0x05, 0x18, 0x7E, 0x04, 0x00, 0x99, 0x7E, + 0x05, 0x00, 0x99, 0x7E, 0x1A, 0x00, 0x58, 0xC1, 0x50, 0x01, 0x58, 0x81, 0x40, 0x01, 0x2C, 0x10, + 0x60, 0x01, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x28, 0xE0, 0x6A, 0x11, 0x98, 0x70, + 0xAD, 0x15, 0x82, 0x04, 0x2C, 0xE0, 0x96, 0x00, 0xF2, 0x06, 0x38, 0x70, 0x94, 0x15, 0x28, 0x77, + 0x1E, 0x00, 0x26, 0xE7, 0x08, 0x70, 0x00, 0x40, 0x38, 0x27, 0xE4, 0x70, 0x04, 0x3E, 0x5C, 0x20, + 0xFF, 0x01, 0x8B, 0xA1, 0x00, 0x00, 0xA3, 0x22, 0x82, 0x03, 0xC4, 0x2D, 0x92, 0x03, 0x2C, 0xE0, + 0x64, 0x00, 0x6B, 0xBA, 0x00, 0x00, 0x06, 0xD2, 0x6B, 0xC7, 0x03, 0x00, 0xC6, 0xDE, 0x04, 0x21, + 0xB2, 0x02, 0x04, 0x20, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x24, 0x00, + 0xD9, 0xC1, 0x14, 0x00, 0x38, 0xE0, 0x94, 0x15, 0xD9, 0x81, 0x04, 0x00, 0x06, 0xD2, 0x04, 0x30, + 0x06, 0x2B, 0x0C, 0x20, 0xB2, 0x10, 0x0C, 0x40, 0x7C, 0x00, 0x0C, 0x90, 0x00, 0x10, 0x0C, 0x80, + 0xCA, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0xB0, 0xB2, 0x10, 0x26, 0x89, 0x06, 0xCD, + 0x06, 0xAD, 0x28, 0x4A, 0xE4, 0x01, 0x28, 0x3A, 0xE2, 0x01, 0x28, 0x2A, 0xE0, 0x01, 0x0C, 0xF0, + 0xD8, 0x00, 0xF1, 0xF0, 0x30, 0x6C, 0x3F, 0x22, 0x06, 0x00, 0xB1, 0x2C, 0x18, 0x3E, 0x0B, 0x00, + 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9B, 0x00, 0x00, 0x06, 0x62, 0x38, 0x3C, + 0xF0, 0x00, 0x18, 0x2E, 0x0C, 0x00, 0xB1, 0x61, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, + 0x0B, 0x9B, 0x00, 0x00, 0x30, 0x61, 0x06, 0x42, 0x0C, 0x30, 0x11, 0x00, 0x06, 0x26, 0xB1, 0x41, + 0x4B, 0x9E, 0x00, 0x00, 0x28, 0x5E, 0x14, 0x00, 0x30, 0x41, 0xC6, 0x25, 0x06, 0x62, 0x02, 0x02, + 0x06, 0x65, 0x06, 0x24, 0x0C, 0x30, 0x14, 0x00, 0xB1, 0x61, 0x4B, 0x9E, 0x00, 0x00, 0x28, 0x5E, + 0x16, 0x00, 0x30, 0x61, 0xC6, 0x25, 0x02, 0x02, 0x06, 0x25, 0x18, 0x3E, 0x0E, 0x00, 0x3F, 0x22, + 0x06, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0xA1, 0x2B, + 0x24, 0xB2, 0xC6, 0xB8, 0x24, 0xA6, 0x24, 0xC4, 0x92, 0xB5, 0x0C, 0x80, 0xEE, 0x10, 0x2C, 0x90, + 0x16, 0x01, 0x06, 0xCD, 0x06, 0xBD, 0x28, 0x4B, 0x98, 0x02, 0x28, 0x3B, 0x96, 0x02, 0x28, 0x2B, + 0x94, 0x02, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, 0x38, 0x7C, 0x78, 0x00, 0x3F, 0x22, 0x07, 0x00, + 0xB9, 0x2C, 0x78, 0x00, 0x18, 0x3E, 0x09, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, + 0x0B, 0x9B, 0x00, 0x00, 0x06, 0x72, 0x38, 0x3C, 0x68, 0x01, 0x18, 0x2E, 0x0A, 0x00, 0xB1, 0x71, + 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9B, 0x00, 0x00, 0x30, 0x71, 0x06, 0x52, + 0x04, 0x39, 0x06, 0x27, 0xB1, 0x51, 0x4B, 0x9E, 0x00, 0x00, 0x28, 0x6E, 0x10, 0x00, 0x30, 0x51, + 0xC6, 0x26, 0x06, 0x72, 0x02, 0x02, 0x06, 0x76, 0x06, 0x25, 0x04, 0x3C, 0xB1, 0x71, 0x4B, 0x9E, + 0x00, 0x00, 0x28, 0x6E, 0x12, 0x00, 0x30, 0x71, 0xC6, 0x26, 0x02, 0x02, 0x06, 0x26, 0x18, 0x3E, + 0x0D, 0x00, 0x3F, 0x22, 0x07, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x4B, 0x9E, + 0x00, 0x00, 0xA1, 0x28, 0x24, 0x82, 0xC6, 0x89, 0x24, 0xB6, 0x24, 0xC4, 0x92, 0xB5, 0x28, 0x4D, + 0x16, 0x03, 0x28, 0x3D, 0x14, 0x03, 0x28, 0x2D, 0x12, 0x03, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, + 0x38, 0x7D, 0xCC, 0x00, 0x3F, 0x22, 0x07, 0x00, 0xB9, 0x2D, 0xCC, 0x00, 0x18, 0x3E, 0x18, 0x00, + 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9B, 0x00, 0x00, 0x38, 0x3D, 0xBC, 0x01, + 0x06, 0xB2, 0x18, 0x2E, 0x19, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9B, + 0x00, 0x00, 0x06, 0xC2, 0x04, 0x39, 0x06, 0x2B, 0x4B, 0x9E, 0x00, 0x00, 0x28, 0x7E, 0x1A, 0x00, + 0x06, 0xD2, 0xC6, 0x27, 0x02, 0x02, 0x06, 0xD7, 0x06, 0x2C, 0x04, 0x3C, 0x4B, 0x9E, 0x00, 0x00, + 0x28, 0x7E, 0x1C, 0x00, 0x0C, 0xA0, 0x00, 0x10, 0xC6, 0x27, 0x02, 0x02, 0x06, 0x27, 0x36, 0xD2, + 0xA9, 0xDA, 0x18, 0x01, 0x58, 0xC1, 0x14, 0x00, 0x58, 0x81, 0x04, 0x00, 0x2C, 0x10, 0x24, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0xD0, 0x03, 0xD9, 0xC1, 0xC0, 0x03, 0x38, 0xC0, 0x94, 0x15, + 0xD9, 0x81, 0xB0, 0x03, 0x0C, 0xD0, 0x00, 0x10, 0x18, 0x7C, 0xB8, 0x00, 0x18, 0x6D, 0x2E, 0x01, + 0xC6, 0x67, 0x28, 0x7D, 0x06, 0x00, 0xA2, 0x09, 0x6C, 0x70, 0x00, 0x01, 0xA9, 0x7D, 0x06, 0x00, + 0x04, 0x61, 0x99, 0x60, 0xBD, 0x15, 0xF2, 0x06, 0x1C, 0x20, 0x01, 0x01, 0x56, 0x72, 0xA9, 0x7D, + 0x06, 0x00, 0x98, 0x70, 0xAD, 0x15, 0xA9, 0x0D, 0x58, 0x02, 0xA9, 0x0D, 0x5A, 0x02, 0xA9, 0x0D, + 0x5C, 0x02, 0xA9, 0x0D, 0x5E, 0x02, 0xA9, 0x0D, 0x60, 0x02, 0x92, 0x0E, 0x0C, 0x50, 0x30, 0x00, + 0x0C, 0x60, 0x2E, 0x00, 0x26, 0x5C, 0x26, 0x6C, 0x70, 0x55, 0x20, 0x66, 0xB9, 0x51, 0x84, 0x03, + 0xB9, 0x61, 0x70, 0x03, 0xF2, 0x08, 0x0C, 0x70, 0x90, 0x01, 0x04, 0x80, 0xB9, 0x71, 0x70, 0x03, + 0xB9, 0x81, 0x84, 0x03, 0x06, 0x21, 0x0C, 0x30, 0x50, 0x03, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, + 0x06, 0x67, 0x0C, 0x60, 0x98, 0x15, 0x20, 0x76, 0xB9, 0x01, 0x5C, 0x03, 0x04, 0x52, 0xB9, 0x71, + 0xA0, 0x03, 0x28, 0x7D, 0x06, 0x00, 0xB9, 0x01, 0x58, 0x03, 0x26, 0x56, 0x54, 0x78, 0x23, 0x77, + 0x20, 0x55, 0xB9, 0x71, 0x68, 0x03, 0x06, 0x87, 0x0C, 0x80, 0xBA, 0x15, 0x10, 0x78, 0xB9, 0x51, + 0xA4, 0x03, 0x0C, 0x50, 0x74, 0x02, 0x26, 0x5D, 0x20, 0x55, 0xB9, 0x71, 0x9C, 0x03, 0x38, 0x71, + 0x48, 0x03, 0x38, 0x81, 0x4C, 0x03, 0xB9, 0x51, 0x7C, 0x03, 0xB9, 0x71, 0x94, 0x03, 0x0C, 0x40, + 0x78, 0x00, 0x04, 0x70, 0x0C, 0x50, 0x94, 0x02, 0xB9, 0x01, 0x54, 0x03, 0xB9, 0x01, 0x50, 0x03, + 0xB9, 0x01, 0xAC, 0x03, 0xB9, 0x01, 0x78, 0x03, 0xB9, 0x01, 0x80, 0x03, 0xB9, 0x81, 0x90, 0x03, + 0x26, 0x41, 0x26, 0x51, 0xB9, 0x71, 0x60, 0x03, 0xB9, 0x71, 0x98, 0x03, 0xB9, 0x71, 0x74, 0x03, + 0x06, 0xB7, 0xB9, 0x71, 0x64, 0x03, 0x38, 0x21, 0x64, 0x03, 0x06, 0x92, 0x0C, 0xF0, 0x00, 0x07, + 0x26, 0x22, 0x26, 0xF2, 0x0C, 0x60, 0xE0, 0x01, 0x0C, 0x80, 0x80, 0x02, 0x06, 0xE1, 0x26, 0x61, + 0xB9, 0xF1, 0xA8, 0x03, 0xB9, 0x91, 0x6C, 0x03, 0x26, 0x28, 0x04, 0x30, 0x0C, 0xA0, 0x80, 0x02, + 0x20, 0xF2, 0x38, 0x81, 0xA8, 0x03, 0x0C, 0x90, 0xFF, 0x0F, 0x56, 0x9F, 0x2F, 0xF3, 0x03, 0x00, + 0x26, 0xF8, 0x20, 0xFF, 0xB9, 0x91, 0x88, 0x03, 0x0C, 0x90, 0xFF, 0x0F, 0x56, 0x9F, 0x38, 0xF1, + 0x88, 0x03, 0xB9, 0x91, 0x8C, 0x03, 0x38, 0x81, 0xA0, 0x03, 0x36, 0xF9, 0x38, 0x91, 0x6C, 0x03, + 0xC6, 0x89, 0x82, 0x0C, 0x38, 0x81, 0xA4, 0x03, 0xC6, 0x89, 0x82, 0x08, 0xC4, 0x3B, 0x1A, 0x8E, + 0x01, 0x00, 0xCC, 0x70, 0x13, 0x00, 0x1A, 0x86, 0x01, 0x00, 0xC4, 0xF0, 0xA1, 0xF2, 0x2A, 0x94, + 0x00, 0x00, 0xCC, 0x70, 0x13, 0x00, 0x12, 0x1E, 0x30, 0x9E, 0x26, 0x9F, 0xB1, 0x9E, 0x20, 0x96, + 0xC6, 0x9F, 0x32, 0x09, 0x28, 0x86, 0x02, 0x00, 0xA1, 0xF6, 0xA9, 0x96, 0x02, 0x00, 0xA9, 0x86, + 0x04, 0x00, 0xF2, 0x10, 0x28, 0x96, 0x02, 0x00, 0xC6, 0x9F, 0x32, 0x06, 0xA9, 0x96, 0x04, 0x00, + 0xA9, 0xF6, 0x02, 0x00, 0xF2, 0x07, 0x28, 0x96, 0x04, 0x00, 0xC6, 0x9F, 0x32, 0x03, 0xA9, 0xF6, + 0x04, 0x00, 0x30, 0x94, 0x26, 0x9F, 0xB1, 0x94, 0x20, 0x95, 0xC6, 0x9F, 0x32, 0x09, 0x28, 0x85, + 0x02, 0x00, 0xA1, 0xF5, 0xA9, 0x95, 0x02, 0x00, 0xA9, 0x85, 0x04, 0x00, 0xF2, 0x10, 0x28, 0x95, + 0x02, 0x00, 0xC6, 0x9F, 0x32, 0x06, 0xA9, 0x95, 0x04, 0x00, 0xA9, 0xF5, 0x02, 0x00, 0xF2, 0x07, + 0x28, 0x95, 0x04, 0x00, 0xC6, 0x9F, 0x32, 0x03, 0xA9, 0xF5, 0x04, 0x00, 0xC6, 0xFB, 0x02, 0x06, + 0xB9, 0x71, 0x98, 0x03, 0xB9, 0x31, 0x74, 0x03, 0x06, 0xBF, 0xB8, 0x91, 0x68, 0x03, 0x9A, 0x45, + 0x01, 0x00, 0xCC, 0xF0, 0xED, 0x02, 0x0C, 0x90, 0xEE, 0x02, 0x1A, 0x45, 0x01, 0x00, 0xCC, 0xF0, + 0xC8, 0x00, 0x02, 0x06, 0x28, 0x9D, 0x58, 0x02, 0x24, 0x91, 0xA9, 0x9D, 0x58, 0x02, 0xB8, 0x81, + 0x68, 0x03, 0x0C, 0x90, 0x64, 0x00, 0x82, 0x03, 0x0C, 0x90, 0xC8, 0x00, 0xC6, 0xF9, 0x02, 0x06, + 0x28, 0x9D, 0x5A, 0x02, 0x24, 0x91, 0xA9, 0x9D, 0x5A, 0x02, 0xB8, 0x81, 0x68, 0x03, 0x0C, 0x90, + 0x50, 0x00, 0x82, 0x03, 0x0C, 0x90, 0xB4, 0x00, 0xC6, 0xF9, 0x02, 0x06, 0x28, 0x9D, 0x5C, 0x02, + 0x24, 0x91, 0xA9, 0x9D, 0x5C, 0x02, 0xB8, 0x81, 0x68, 0x03, 0x0C, 0x90, 0x64, 0x00, 0x82, 0x03, + 0x0C, 0x90, 0xFA, 0x00, 0xC6, 0xF9, 0x02, 0x06, 0x28, 0x9D, 0x5E, 0x02, 0x24, 0x91, 0xA9, 0x9D, + 0x5E, 0x02, 0xB8, 0x91, 0x9C, 0x03, 0x82, 0x0B, 0xA9, 0x0D, 0x58, 0x02, 0xA9, 0x0D, 0x5A, 0x02, + 0xA9, 0x0D, 0x5C, 0x02, 0xA9, 0x0D, 0x5E, 0x02, 0xA9, 0x0D, 0x60, 0x02, 0x28, 0x9C, 0xB6, 0x00, + 0xC6, 0xF9, 0x1A, 0x0B, 0x01, 0x00, 0x38, 0xF1, 0x8C, 0x03, 0x38, 0x81, 0x88, 0x03, 0x36, 0xF8, + 0xC4, 0xF0, 0x02, 0x28, 0xCC, 0x70, 0x13, 0x00, 0x12, 0x06, 0x38, 0x9E, 0xF0, 0x00, 0x26, 0x9F, + 0xB9, 0x9E, 0xF0, 0x00, 0x38, 0x94, 0xF0, 0x00, 0x26, 0x9F, 0xB9, 0x94, 0xF0, 0x00, 0x28, 0x9C, + 0xB6, 0x00, 0xC6, 0xF9, 0x02, 0x0E, 0x38, 0x81, 0x60, 0x03, 0x26, 0x99, 0xC6, 0xF9, 0x24, 0x81, + 0xB9, 0x81, 0x60, 0x03, 0x02, 0x06, 0x38, 0x91, 0x80, 0x03, 0x24, 0x91, 0xB9, 0x91, 0x80, 0x03, + 0xCC, 0xF0, 0xC8, 0x00, 0x02, 0x07, 0x38, 0xF1, 0x7C, 0x03, 0x24, 0xF1, 0x23, 0xFF, 0xB9, 0xF1, + 0x7C, 0x03, 0x38, 0xF1, 0x6C, 0x03, 0x24, 0x31, 0xC4, 0x3E, 0x24, 0xF1, 0xB9, 0xF1, 0x6C, 0x03, + 0x24, 0x22, 0x24, 0xE4, 0x24, 0x66, 0x9A, 0x0D, 0xFF, 0xFF, 0x38, 0x21, 0x64, 0x03, 0x30, 0x34, + 0x38, 0x61, 0x94, 0x03, 0x38, 0x81, 0x90, 0x03, 0x24, 0x2E, 0x26, 0x36, 0xCC, 0x20, 0x34, 0x01, + 0x38, 0x64, 0xF0, 0x00, 0xB9, 0x21, 0x64, 0x03, 0x24, 0x71, 0x26, 0x68, 0x24, 0x44, 0x24, 0x56, + 0x82, 0x07, 0xB9, 0x31, 0x94, 0x03, 0xB9, 0x61, 0x90, 0x03, 0xFA, 0xDE, 0xFE, 0xFF, 0x38, 0xF1, + 0x78, 0x03, 0x38, 0x21, 0x60, 0x03, 0x38, 0x51, 0x80, 0x03, 0x38, 0x71, 0x7C, 0x03, 0x38, 0x91, + 0xAC, 0x03, 0xB9, 0x31, 0x48, 0x03, 0xB9, 0xF1, 0x5C, 0x03, 0xB9, 0x21, 0x50, 0x03, 0xB9, 0x51, + 0x54, 0x03, 0xA9, 0x7D, 0x74, 0x02, 0xB9, 0x61, 0x4C, 0x03, 0xB9, 0x91, 0x58, 0x03, 0xAB, 0xCA, + 0x03, 0x00, 0x6B, 0xC7, 0x03, 0x00, 0xE8, 0x3D, 0x0D, 0x05, 0x22, 0x33, 0x28, 0x60, 0x98, 0x15, + 0x28, 0x2C, 0xC6, 0x00, 0x26, 0x66, 0x2F, 0x76, 0x0A, 0x00, 0x70, 0x47, 0x04, 0x51, 0xC6, 0x42, + 0x12, 0x02, 0x04, 0x50, 0x04, 0x70, 0xC6, 0x47, 0x13, 0x55, 0x02, 0x02, 0x23, 0x74, 0x0C, 0x80, + 0x98, 0x15, 0x28, 0x48, 0x02, 0x00, 0x26, 0x44, 0x26, 0x4A, 0x70, 0x44, 0xC6, 0x42, 0x02, 0x03, + 0x24, 0x51, 0x13, 0x55, 0xC6, 0x74, 0x32, 0x02, 0x23, 0x74, 0xC4, 0x50, 0x82, 0x12, 0xC4, 0x30, + 0x26, 0x6A, 0x92, 0x03, 0xA1, 0x76, 0xF2, 0x02, 0xA1, 0x06, 0x0C, 0x90, 0x98, 0x15, 0x28, 0x69, + 0x02, 0x00, 0xC4, 0x31, 0x26, 0x66, 0x26, 0xA6, 0x92, 0x03, 0xA1, 0x7A, 0xF2, 0x02, 0xA1, 0x0A, + 0x30, 0x7C, 0x28, 0xEC, 0x2C, 0x00, 0xD4, 0x71, 0xA9, 0xED, 0x0E, 0x00, 0x82, 0x1C, 0x38, 0x31, + 0x48, 0x03, 0x38, 0x21, 0x70, 0x03, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x50, 0x78, 0x0B, 0x9B, + 0x00, 0x00, 0x06, 0xC2, 0x38, 0x31, 0x70, 0x03, 0x38, 0x21, 0x84, 0x03, 0xAB, 0x97, 0x00, 0x00, + 0x0C, 0x30, 0x64, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x22, 0x26, 0x2C, 0xC6, 0x2E, 0xB2, 0x03, + 0xA9, 0x2D, 0x0E, 0x00, 0x06, 0x21, 0x6B, 0xD7, 0x02, 0x00, 0xC4, 0xB0, 0x82, 0x14, 0x38, 0x71, + 0x74, 0x03, 0x26, 0x77, 0x26, 0x7D, 0x78, 0x67, 0xB2, 0x00, 0x38, 0x71, 0x98, 0x03, 0x2C, 0x70, + 0x1E, 0x00, 0x26, 0x77, 0x26, 0x7D, 0x78, 0x77, 0xB2, 0x00, 0x26, 0x76, 0x36, 0xB7, 0xC4, 0xB0, + 0x32, 0x02, 0x04, 0xB0, 0x0C, 0x30, 0x50, 0x03, 0x06, 0x21, 0x26, 0x31, 0xA9, 0xBD, 0x2A, 0x01, + 0xCB, 0x18, 0x03, 0x00, 0x58, 0xC1, 0xC0, 0x03, 0x58, 0x81, 0xB0, 0x03, 0x2C, 0x10, 0xD0, 0x03, + 0xE1, 0xF0, 0xCC, 0x70, 0x15, 0x00, 0x8A, 0x7A, 0xFE, 0xFF, 0x04, 0x90, 0xC6, 0xF9, 0x02, 0x02, + 0x43, 0x9F, 0xA1, 0x92, 0xFA, 0x37, 0xFF, 0xFF, 0xCC, 0xF0, 0x57, 0x02, 0x0C, 0x90, 0x58, 0x02, + 0x0A, 0xBF, 0xFE, 0xFF, 0xC6, 0xF9, 0x0A, 0xEE, 0xFE, 0xFF, 0x28, 0x9D, 0x60, 0x02, 0x24, 0x91, + 0xA9, 0x9D, 0x60, 0x02, 0xFA, 0xE7, 0xFE, 0xFF, 0x26, 0x99, 0x38, 0x81, 0xAC, 0x03, 0xC6, 0xF9, + 0x24, 0x81, 0x02, 0x06, 0x38, 0xF1, 0x78, 0x03, 0x24, 0xF1, 0xB9, 0xF1, 0x78, 0x03, 0xB9, 0x81, + 0xAC, 0x03, 0xFA, 0xEA, 0xFE, 0xFF, 0x00, 0x00, 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, + 0xD1, 0x81, 0x0C, 0xE0, 0x80, 0x02, 0x78, 0x7E, 0x4A, 0x02, 0xCC, 0x70, 0x00, 0x01, 0x12, 0x06, + 0x78, 0x7E, 0x48, 0x02, 0xCC, 0x70, 0x00, 0x01, 0x02, 0x0A, 0x0C, 0x60, 0x2C, 0x02, 0x0C, 0x70, + 0x94, 0x04, 0x26, 0x6E, 0xA1, 0x07, 0x24, 0x72, 0xC6, 0x76, 0x92, 0xFD, 0x78, 0xA0, 0x18, 0x11, + 0x06, 0xD7, 0x0C, 0x30, 0xE6, 0x04, 0x0C, 0xD0, 0x18, 0x11, 0x04, 0x20, 0x0C, 0x40, 0x15, 0x00, + 0x14, 0x91, 0x06, 0xFB, 0x0C, 0xF0, 0xCC, 0x10, 0x06, 0x73, 0x04, 0x5D, 0xC4, 0x5B, 0x12, 0x16, + 0xCC, 0x40, 0x13, 0x00, 0x12, 0x08, 0x70, 0x8F, 0x70, 0x6D, 0x70, 0xC7, 0x26, 0x68, 0x3F, 0x66, + 0x0C, 0x00, 0xF2, 0x0D, 0xCC, 0x40, 0x15, 0x00, 0x92, 0x0C, 0x70, 0x67, 0x36, 0x6A, 0xC4, 0x60, + 0x06, 0xC6, 0x32, 0x02, 0x04, 0xC0, 0x26, 0x2C, 0xF2, 0x02, 0x70, 0x67, 0xC4, 0x60, 0x12, 0x03, + 0xA1, 0x07, 0xF2, 0x02, 0xA1, 0x67, 0x34, 0x51, 0xC6, 0x59, 0x34, 0x72, 0x34, 0xF2, 0x92, 0xDF, + 0x34, 0x41, 0xC6, 0x45, 0x3C, 0x30, 0x1C, 0x00, 0x34, 0xD2, 0x92, 0xD4, 0x04, 0x3C, 0x0B, 0x9B, + 0x00, 0x00, 0x0C, 0x70, 0xCC, 0x04, 0x2C, 0xE0, 0x64, 0x02, 0x20, 0x67, 0x36, 0x62, 0xC3, 0x66, + 0x22, 0x03, 0xA1, 0x67, 0xF2, 0x02, 0xA1, 0x07, 0xF8, 0x67, 0x1C, 0x00, 0x32, 0x03, 0xA9, 0x07, + 0x1C, 0x00, 0x24, 0x72, 0xC6, 0x7E, 0x92, 0xF2, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, + 0x20, 0x00, 0xE1, 0xF0, 0xC4, 0x20, 0x0C, 0x70, 0x00, 0x10, 0x28, 0x37, 0x06, 0x00, 0x82, 0x15, + 0x64, 0x38, 0xA9, 0x37, 0x06, 0x00, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x48, 0xDF, 0xB9, 0x70, + 0x94, 0x15, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0xE4, 0xDD, 0xB9, 0x70, 0x90, 0x15, 0x08, 0x70, + 0x00, 0x80, 0x2C, 0x70, 0x4C, 0xDD, 0xF2, 0x15, 0x14, 0x29, 0x56, 0x32, 0xA9, 0x37, 0x06, 0x00, + 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x7C, 0xDE, 0xB9, 0x70, 0x94, 0x15, 0x08, 0x70, 0x00, 0x80, + 0x2C, 0x70, 0x30, 0xDE, 0xB9, 0x70, 0x90, 0x15, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x98, 0xDD, + 0xB9, 0x70, 0x8C, 0x15, 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x70, 0x00, 0x10, 0x99, 0x07, 0x31, 0x01, + 0x99, 0x07, 0x30, 0x01, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xD2, + 0x38, 0x22, 0x4C, 0x03, 0x06, 0xE3, 0x0C, 0x30, 0xF0, 0x00, 0x38, 0xC0, 0x94, 0x15, 0x0B, 0x9B, + 0x00, 0x00, 0x0C, 0x70, 0x00, 0x10, 0xB9, 0x2D, 0x4C, 0x03, 0x06, 0x32, 0x28, 0x27, 0x06, 0x00, + 0x30, 0x5E, 0x38, 0x4E, 0x08, 0x00, 0x38, 0xFE, 0x04, 0x00, 0x04, 0x68, 0x56, 0x62, 0xA3, 0xD6, + 0x5C, 0x20, 0x80, 0x00, 0x82, 0x18, 0x26, 0x44, 0xC6, 0x54, 0x04, 0x61, 0x12, 0x06, 0xCC, 0x30, + 0xFA, 0x00, 0xD2, 0x02, 0x04, 0x60, 0x13, 0x66, 0xCC, 0xF0, 0x23, 0x00, 0x02, 0x07, 0x38, 0x4E, + 0x0C, 0x00, 0xCC, 0x40, 0x22, 0x00, 0x12, 0x02, 0x04, 0x61, 0xC4, 0x20, 0x82, 0x1D, 0xCC, 0x50, + 0x14, 0x00, 0xF2, 0x18, 0xCC, 0x30, 0x96, 0x00, 0x04, 0x61, 0xD2, 0x02, 0x06, 0x6D, 0xC6, 0x54, + 0x13, 0x66, 0x02, 0x04, 0xC4, 0x58, 0x02, 0x02, 0x04, 0x61, 0xCC, 0xF0, 0x14, 0x00, 0x02, 0x07, + 0x38, 0x4E, 0x0C, 0x00, 0xCC, 0x40, 0x13, 0x00, 0x12, 0x02, 0x04, 0x61, 0xC4, 0x20, 0x82, 0x04, + 0xC4, 0x5A, 0x02, 0x02, 0x04, 0x61, 0x98, 0x50, 0xBA, 0x15, 0x92, 0x12, 0xC4, 0x60, 0x82, 0x10, + 0x18, 0x67, 0x2E, 0x01, 0xCC, 0x60, 0xFF, 0x00, 0x82, 0x04, 0x24, 0x61, 0x99, 0x67, 0x2E, 0x01, + 0x98, 0x67, 0x2F, 0x01, 0x82, 0x17, 0x34, 0x61, 0x99, 0x67, 0x2F, 0x01, 0xF2, 0x13, 0x18, 0x67, + 0x2F, 0x01, 0x24, 0x61, 0x13, 0x66, 0x99, 0x67, 0x2F, 0x01, 0x18, 0x5C, 0xB9, 0x00, 0xC6, 0x56, + 0x92, 0x09, 0x98, 0x67, 0x2E, 0x01, 0x99, 0x07, 0x2F, 0x01, 0x82, 0x04, 0x34, 0x61, 0x99, 0x67, + 0x2E, 0x01, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x18, 0x70, 0xB1, 0x15, + 0xC4, 0x71, 0x82, 0x07, 0x0C, 0x50, 0x7F, 0x04, 0x0C, 0x60, 0xFE, 0x07, 0x04, 0x70, 0xF2, 0x06, + 0x0C, 0x50, 0x7D, 0x04, 0x0C, 0x60, 0xFC, 0x07, 0x04, 0x72, 0x70, 0x42, 0xC6, 0x47, 0x32, 0x03, + 0xA1, 0x72, 0xF2, 0x04, 0xC6, 0x45, 0x02, 0x02, 0xA1, 0x52, 0x78, 0x52, 0x02, 0x00, 0xC6, 0x57, + 0x32, 0x04, 0xA9, 0x72, 0x02, 0x00, 0xF2, 0x05, 0xC6, 0x56, 0x02, 0x03, 0xA9, 0x62, 0x02, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x70, 0xAD, 0x15, 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, + 0xD1, 0x81, 0x06, 0xE2, 0x82, 0x06, 0x04, 0x70, 0x0C, 0xA0, 0x64, 0x00, 0x06, 0xB7, 0xF2, 0x05, + 0x04, 0x71, 0x0C, 0xA0, 0x67, 0x00, 0x04, 0xB3, 0x20, 0x6E, 0x23, 0x77, 0x26, 0x67, 0xA1, 0x6E, + 0x28, 0x6E, 0x02, 0x00, 0x06, 0x2E, 0x26, 0x76, 0xA9, 0x7E, 0x02, 0x00, 0x6B, 0x20, 0x03, 0x00, + 0x0C, 0x70, 0x00, 0x10, 0x18, 0x67, 0x2B, 0x03, 0xC4, 0x62, 0x92, 0x08, 0x20, 0x6E, 0xA9, 0x67, + 0x1C, 0x00, 0x28, 0x6E, 0x02, 0x00, 0xA9, 0x67, 0x1E, 0x00, 0x18, 0x67, 0x27, 0x03, 0xC4, 0x61, + 0xD2, 0x11, 0x28, 0xC7, 0x1C, 0x00, 0x1C, 0x60, 0x50, 0x00, 0x26, 0x6C, 0xCC, 0x60, 0xE0, 0x03, + 0xD2, 0x09, 0x28, 0xD7, 0x1E, 0x00, 0x1C, 0x70, 0x50, 0x00, 0x26, 0x7D, 0xCC, 0x70, 0x5F, 0x07, + 0xC2, 0x05, 0x0C, 0xD0, 0xFF, 0x03, 0x0C, 0xC0, 0x40, 0x02, 0xCC, 0xA0, 0x64, 0x00, 0x04, 0x90, + 0x82, 0x04, 0x1C, 0x90, 0x64, 0x00, 0x26, 0x9A, 0x70, 0xAE, 0xC6, 0xAC, 0x3F, 0x7C, 0x0A, 0x00, + 0x32, 0x02, 0x24, 0x71, 0x86, 0x27, 0x32, 0x02, 0x16, 0x22, 0x2F, 0x82, 0x02, 0x00, 0x26, 0x82, + 0x06, 0x68, 0xC4, 0x20, 0xD7, 0x62, 0x26, 0x86, 0x26, 0x82, 0x82, 0x05, 0x06, 0x39, 0xAB, 0x97, + 0x00, 0x00, 0x26, 0x82, 0x04, 0x71, 0xD6, 0x7B, 0x82, 0x0F, 0x06, 0x28, 0x0C, 0x30, 0x64, 0x00, + 0x4B, 0x9E, 0x00, 0x00, 0xC6, 0xAC, 0x22, 0x04, 0x26, 0xC2, 0xA1, 0xCE, 0xF2, 0x05, 0x34, 0xC1, + 0x3F, 0x22, 0x0C, 0x00, 0xA1, 0x2E, 0x78, 0xCE, 0x02, 0x00, 0xC6, 0xCD, 0x3F, 0x7D, 0x0C, 0x00, + 0x32, 0x02, 0x24, 0x71, 0x86, 0x27, 0x32, 0x02, 0x16, 0x22, 0x2F, 0xA2, 0x02, 0x00, 0x26, 0xA2, + 0x06, 0x6A, 0xC4, 0x20, 0xD7, 0x62, 0x26, 0xA6, 0x26, 0xA2, 0x82, 0x05, 0x06, 0x39, 0xAB, 0x97, + 0x00, 0x00, 0x26, 0xA2, 0xD4, 0xB2, 0x82, 0x11, 0x06, 0x2A, 0x0C, 0x30, 0x64, 0x00, 0x4B, 0x9E, + 0x00, 0x00, 0xC6, 0xCD, 0x22, 0x05, 0x26, 0xD2, 0xA9, 0xDE, 0x02, 0x00, 0xF2, 0x06, 0x34, 0xD1, + 0x3F, 0x22, 0x0D, 0x00, 0xA9, 0x2E, 0x02, 0x00, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, + 0x20, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, 0x08, 0xC0, 0x00, 0xFF, + 0x0C, 0xE0, 0x3C, 0x15, 0x04, 0xD0, 0x2C, 0xC0, 0xFF, 0x0F, 0x28, 0x70, 0x50, 0x15, 0x63, 0x7D, + 0xD4, 0x71, 0x82, 0x25, 0x30, 0x6E, 0x06, 0x76, 0x77, 0x76, 0x5C, 0x70, 0xFF, 0x0F, 0xA1, 0x71, + 0x18, 0x70, 0xB1, 0x15, 0x5C, 0x60, 0xFF, 0x0F, 0xC4, 0x71, 0xA9, 0x61, 0x02, 0x00, 0x92, 0x04, + 0x06, 0x21, 0xAB, 0x22, 0x03, 0x00, 0x06, 0x21, 0x6B, 0x20, 0x03, 0x00, 0x20, 0x61, 0x30, 0x7E, + 0x5C, 0x60, 0xFF, 0x0F, 0x57, 0x66, 0x56, 0x7C, 0x66, 0x76, 0x28, 0x61, 0x02, 0x00, 0x1C, 0x50, + 0x00, 0x10, 0x5C, 0x60, 0xFF, 0x0F, 0x56, 0x75, 0x66, 0x76, 0xB1, 0x7E, 0x24, 0xD1, 0xC4, 0xD5, + 0x24, 0xE4, 0x92, 0xD4, 0x58, 0xC1, 0x04, 0x00, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x18, 0x0C, 0x20, 0x31, 0x15, 0x14, 0x31, 0x04, 0x45, 0xC1, 0xE1, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0x20, 0x2C, 0x15, 0x14, 0x31, 0x04, 0x45, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x0C, 0xE0, 0x00, 0x10, 0x38, 0x7E, 0x10, 0x05, 0x18, 0x6E, 0x08, 0x05, 0x77, 0x76, 0x54, 0x7F, + 0xA6, 0x76, 0x82, 0x0E, 0x04, 0x71, 0x99, 0x7E, 0x52, 0x05, 0xB9, 0x0E, 0x38, 0x05, 0x0C, 0x20, + 0x3C, 0x15, 0x04, 0x30, 0x0C, 0x40, 0x14, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x99, 0x0E, + 0x08, 0x05, 0xCB, 0xCD, 0x01, 0x00, 0xAB, 0x81, 0x03, 0x00, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, + 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, 0xB1, 0xB1, 0x0C, 0xE0, 0x00, 0x10, 0x98, 0xDE, + 0x27, 0x03, 0x82, 0x19, 0x06, 0x2C, 0x0C, 0x20, 0xC8, 0x12, 0x0C, 0x30, 0x78, 0x12, 0x0C, 0x40, + 0x50, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x06, 0x2B, 0x0C, 0x20, 0x22, 0x13, 0x0C, 0x30, + 0x1D, 0x13, 0x04, 0x45, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x18, 0x7E, 0x27, 0x03, 0x99, 0x7E, + 0x28, 0x03, 0xF2, 0x2A, 0x06, 0x2B, 0x0C, 0x20, 0x22, 0x13, 0x06, 0x3D, 0x04, 0x45, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x06, 0x2C, 0x0C, 0x20, 0xC8, 0x12, 0x06, 0x3D, 0x0C, 0x40, 0x50, 0x00, + 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x18, 0x13, 0x06, 0x3D, 0x04, 0x45, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x28, 0x7E, 0x06, 0x00, 0x99, 0x0E, 0x28, 0x03, 0x1C, 0x60, 0x14, 0x00, + 0x56, 0x76, 0xA9, 0x7E, 0x06, 0x00, 0x38, 0x70, 0x94, 0x15, 0x99, 0x0E, 0x09, 0x05, 0x18, 0x77, + 0xC5, 0x00, 0x99, 0x7E, 0x0C, 0x05, 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x0C, 0xE0, 0x00, 0x10, 0x18, 0x7E, + 0x52, 0x05, 0x06, 0xD2, 0x26, 0x72, 0xC4, 0x70, 0x0C, 0x20, 0x10, 0x15, 0x82, 0x0E, 0x0C, 0x30, + 0x38, 0x15, 0x0C, 0x40, 0x1C, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x18, 0x7E, 0x52, 0x05, + 0x26, 0xD7, 0x99, 0xDE, 0x2A, 0x05, 0xF2, 0x14, 0x98, 0x3E, 0x2A, 0x05, 0x82, 0x0C, 0x0C, 0x30, + 0x38, 0x15, 0x0C, 0x40, 0x1C, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x04, 0x71, 0x99, 0x7E, + 0x52, 0x05, 0xF2, 0x06, 0x0C, 0x40, 0x1C, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x50, 0xC1, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, + 0x06, 0xC2, 0x06, 0xE3, 0x06, 0x23, 0x06, 0x3C, 0xB1, 0xB1, 0x8B, 0xB8, 0x03, 0x00, 0x86, 0x22, + 0x9A, 0x82, 0x00, 0x00, 0xD4, 0xC3, 0x92, 0x05, 0x18, 0x7E, 0x0D, 0x00, 0xC4, 0x76, 0x92, 0x5B, + 0x18, 0x6E, 0x0A, 0x00, 0x14, 0x51, 0x26, 0x56, 0x04, 0x71, 0x53, 0x75, 0x0C, 0x50, 0x00, 0x10, + 0x28, 0x45, 0x50, 0x05, 0x43, 0x77, 0x66, 0x47, 0xA9, 0x45, 0x50, 0x05, 0x38, 0x45, 0x38, 0x05, + 0x1C, 0x30, 0x00, 0x04, 0x66, 0x74, 0x5C, 0x70, 0xFF, 0x03, 0x56, 0x43, 0x66, 0x47, 0x06, 0x74, + 0x77, 0x76, 0x24, 0x71, 0x54, 0x7F, 0x1C, 0x30, 0x01, 0xF0, 0x57, 0x76, 0x56, 0x43, 0x66, 0x47, + 0x57, 0x61, 0xB9, 0x45, 0x38, 0x05, 0x26, 0x65, 0x18, 0x7E, 0x0A, 0x00, 0x38, 0x56, 0x38, 0x05, + 0x08, 0x40, 0xFF, 0x0F, 0x2C, 0x40, 0xFF, 0xFF, 0x57, 0x7E, 0x56, 0x54, 0x66, 0x57, 0xB9, 0x56, + 0x38, 0x05, 0x20, 0x4E, 0x08, 0x70, 0x00, 0xFF, 0x5C, 0x40, 0xFF, 0x0F, 0x2C, 0x70, 0xFF, 0x0F, + 0x57, 0x46, 0x56, 0x75, 0x66, 0x74, 0xB9, 0x76, 0x38, 0x05, 0x28, 0x5E, 0x02, 0x00, 0x1C, 0x40, + 0x00, 0x10, 0x5C, 0x50, 0xFF, 0x0F, 0x56, 0x74, 0x66, 0x75, 0xB9, 0x76, 0x38, 0x05, 0x18, 0x5E, + 0x0B, 0x00, 0x13, 0x75, 0xC4, 0x7F, 0xC2, 0x02, 0x04, 0x5F, 0x38, 0x76, 0x38, 0x05, 0x08, 0x40, + 0xFF, 0xF0, 0x54, 0x5F, 0x2C, 0x40, 0xFF, 0xFF, 0x57, 0x5C, 0x56, 0x74, 0x66, 0x75, 0xB9, 0x76, + 0x38, 0x05, 0xF2, 0x03, 0xC4, 0x7A, 0x82, 0x03, 0x04, 0x20, 0xF2, 0x1D, 0x0C, 0xD0, 0xC8, 0x12, + 0x06, 0x7B, 0x0C, 0x70, 0x00, 0x10, 0x18, 0x77, 0x28, 0x03, 0xC6, 0xC7, 0x32, 0xF6, 0x18, 0x6E, + 0x0A, 0x00, 0x18, 0x7D, 0x0A, 0x00, 0xC6, 0x67, 0x92, 0x0A, 0x06, 0x2E, 0x06, 0x3D, 0x04, 0x44, + 0x6B, 0xCF, 0x03, 0x00, 0x18, 0x7D, 0x0B, 0x00, 0x99, 0x7E, 0x0B, 0x00, 0x24, 0xC1, 0x2C, 0xD0, + 0x10, 0x00, 0xF2, 0xE7, 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, + 0x18, 0x72, 0x06, 0x00, 0xD4, 0x74, 0x82, 0x25, 0x0C, 0x40, 0x00, 0x10, 0x38, 0x54, 0x38, 0x05, + 0x08, 0x60, 0x1F, 0xFF, 0x06, 0x75, 0xF7, 0x7A, 0x24, 0x71, 0x54, 0x77, 0x2C, 0x60, 0xFF, 0xFF, + 0xD7, 0x7A, 0x56, 0x65, 0x66, 0x67, 0xB9, 0x64, 0x38, 0x05, 0x18, 0x52, 0x05, 0x00, 0x04, 0x71, + 0x34, 0x51, 0x53, 0x75, 0x06, 0x56, 0x77, 0x58, 0x66, 0x75, 0x08, 0x50, 0xE0, 0xFF, 0x5C, 0x70, + 0x1F, 0x00, 0x2C, 0x50, 0xFF, 0xFF, 0x57, 0x78, 0x56, 0x56, 0x66, 0x57, 0xB9, 0x54, 0x38, 0x05, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x0C, 0x60, 0x00, 0x10, 0x38, 0x76, 0x38, 0x05, + 0x77, 0x76, 0x54, 0x7F, 0xC4, 0x72, 0x02, 0x26, 0x28, 0x46, 0x50, 0x05, 0x04, 0x70, 0x0C, 0x30, + 0x3C, 0x15, 0x06, 0x57, 0x04, 0xF1, 0x06, 0x24, 0x63, 0x25, 0xD4, 0x21, 0x82, 0x0A, 0xC4, 0x71, + 0xC2, 0x07, 0x06, 0x2F, 0x53, 0x25, 0x15, 0x22, 0xB1, 0x03, 0x56, 0x42, 0xF2, 0x02, 0x24, 0x71, + 0x24, 0x51, 0xC4, 0x55, 0x24, 0x34, 0x92, 0xF0, 0x04, 0x5F, 0x56, 0x57, 0x38, 0x76, 0x38, 0x05, + 0xA9, 0x46, 0x50, 0x05, 0x1C, 0x40, 0x01, 0xF0, 0x57, 0x56, 0x56, 0x74, 0x66, 0x75, 0xB9, 0x76, + 0x38, 0x05, 0x38, 0x76, 0x38, 0x05, 0x0C, 0x50, 0x00, 0xF0, 0xD6, 0x57, 0x82, 0x06, 0x77, 0x76, + 0x54, 0x7F, 0x24, 0x71, 0x99, 0x76, 0x52, 0x05, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, 0xD1, 0x81, 0x0C, 0xE0, 0x00, 0x10, 0xE8, 0xCE, + 0x31, 0x05, 0x92, 0x2A, 0x98, 0x7E, 0x27, 0x03, 0x82, 0x27, 0x0C, 0x90, 0xC8, 0x02, 0x0C, 0xD0, + 0x78, 0x12, 0x26, 0x9E, 0x06, 0xBC, 0x04, 0x2C, 0x26, 0x2D, 0xEB, 0x25, 0x01, 0x00, 0xC4, 0x20, + 0x82, 0x13, 0xC4, 0xC1, 0xDA, 0x98, 0x00, 0x00, 0x18, 0x7D, 0x0A, 0x00, 0x04, 0xA1, 0x26, 0xAB, + 0x26, 0xBE, 0x99, 0x7B, 0x31, 0x05, 0x04, 0x21, 0x06, 0x3D, 0xCB, 0x3B, 0x03, 0x00, 0xC4, 0x20, + 0x92, 0x04, 0x24, 0xC1, 0xF2, 0x02, 0x06, 0xAB, 0x2C, 0xD0, 0x10, 0x00, 0xC6, 0xD9, 0x8A, 0x83, + 0x00, 0x00, 0x06, 0xBA, 0xF2, 0xE1, 0x98, 0x7E, 0x28, 0x03, 0x92, 0x04, 0x98, 0x7E, 0x27, 0x03, + 0x82, 0x7A, 0x04, 0xD0, 0x06, 0xCD, 0x06, 0xAE, 0x14, 0x91, 0x2F, 0x7C, 0x0E, 0x00, 0x68, 0x77, + 0x31, 0x05, 0x34, 0x71, 0xC4, 0x70, 0x32, 0x04, 0x04, 0xC0, 0x06, 0xAE, 0xF2, 0x47, 0x26, 0x7A, + 0x68, 0xB7, 0x1D, 0x03, 0x34, 0xB1, 0xC4, 0xB0, 0x32, 0x1D, 0x68, 0x37, 0x22, 0x03, 0x04, 0x24, + 0x24, 0x34, 0x57, 0x32, 0x26, 0x3A, 0x2C, 0x30, 0x78, 0x02, 0xCB, 0x3B, 0x03, 0x00, 0xC4, 0x20, + 0x92, 0x02, 0x24, 0xD1, 0x06, 0x7C, 0xC4, 0x73, 0x12, 0x09, 0x24, 0x71, 0x2F, 0x67, 0x0E, 0x00, + 0x18, 0x56, 0x31, 0x05, 0x99, 0x56, 0x30, 0x05, 0xF2, 0xF7, 0x99, 0x9E, 0x35, 0x05, 0x34, 0xC1, + 0xF2, 0x12, 0x57, 0xB2, 0x26, 0xBA, 0x2C, 0xB0, 0x78, 0x02, 0x04, 0x2C, 0x26, 0x2B, 0xEB, 0x25, + 0x01, 0x00, 0xC4, 0x20, 0x82, 0x08, 0x04, 0x22, 0x06, 0x3B, 0xCB, 0x3B, 0x03, 0x00, 0xC4, 0x20, + 0x92, 0x02, 0x24, 0xD1, 0x24, 0xC1, 0xC4, 0xC4, 0x02, 0xC1, 0xF2, 0xC7, 0x57, 0x72, 0x2F, 0x9A, + 0x07, 0x00, 0x0C, 0xB0, 0x78, 0x02, 0x26, 0xB9, 0x04, 0x2C, 0x26, 0x2B, 0xEB, 0x25, 0x01, 0x00, + 0xC4, 0x20, 0x92, 0x0C, 0x24, 0xC1, 0xC4, 0xC5, 0x82, 0x26, 0x2F, 0x7C, 0x0E, 0x00, 0x68, 0x77, + 0x1D, 0x03, 0x34, 0x71, 0xC4, 0x70, 0x32, 0xEB, 0xF2, 0xF6, 0xC4, 0xD1, 0xD2, 0x1C, 0x04, 0x70, + 0x2F, 0x67, 0x0E, 0x00, 0x68, 0x56, 0x31, 0x05, 0x14, 0x41, 0x26, 0x45, 0xC6, 0x4C, 0x82, 0xEB, + 0xC4, 0x50, 0x12, 0x0D, 0x18, 0x79, 0x82, 0x02, 0x04, 0x21, 0x99, 0x76, 0x31, 0x05, 0x06, 0x3B, + 0xCB, 0x3B, 0x03, 0x00, 0xC4, 0x20, 0x92, 0xDF, 0x24, 0xD1, 0xF2, 0xDD, 0x24, 0x71, 0xC4, 0x75, + 0x92, 0xE8, 0xF2, 0xD9, 0x04, 0x70, 0x06, 0x4E, 0x24, 0x71, 0x06, 0x67, 0x2F, 0x34, 0x07, 0x00, + 0x2F, 0x56, 0x0E, 0x00, 0xE8, 0x25, 0x31, 0x05, 0x02, 0x07, 0x68, 0xF3, 0x30, 0x05, 0xC6, 0xF2, + 0x92, 0x03, 0x99, 0x05, 0x31, 0x05, 0x24, 0x61, 0xC4, 0x64, 0x02, 0xF3, 0xC4, 0x74, 0x92, 0xED, + 0xAB, 0x47, 0x03, 0x00, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, + 0x18, 0x20, 0x52, 0x15, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x2C, 0x00, 0x06, 0x21, 0x04, 0x30, + 0x0C, 0x40, 0x14, 0x00, 0xD9, 0xC1, 0x1C, 0x00, 0xC9, 0xA1, 0x14, 0x00, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0xE0, 0x00, 0x10, 0x98, 0x7E, 0x52, 0x05, 0x92, 0x0A, 0x98, 0x3E, 0x2A, 0x05, + 0x92, 0x07, 0x0C, 0x20, 0x2C, 0x15, 0x04, 0x45, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x98, 0x7E, + 0x52, 0x05, 0x82, 0x66, 0x98, 0x7E, 0x2A, 0x05, 0x82, 0x63, 0x28, 0xDE, 0x50, 0x05, 0x04, 0x71, + 0x08, 0xF0, 0xFF, 0x0F, 0x06, 0x32, 0x0C, 0x30, 0x3C, 0x15, 0x04, 0x40, 0x06, 0xB7, 0x2C, 0xF0, + 0xFF, 0xFF, 0x14, 0x61, 0x26, 0x67, 0x06, 0x5D, 0x63, 0x56, 0x06, 0x65, 0xD4, 0x61, 0x82, 0x26, + 0x13, 0x57, 0x04, 0x60, 0x2F, 0xC6, 0x0E, 0x00, 0x68, 0xCC, 0x2C, 0x05, 0x24, 0x61, 0xC6, 0xC7, + 0x82, 0x0C, 0xC4, 0x65, 0x92, 0xF8, 0x04, 0x60, 0x2F, 0xC6, 0x0E, 0x00, 0xE8, 0xAC, 0x2C, 0x05, + 0x24, 0x61, 0x92, 0x05, 0x99, 0x7C, 0x2C, 0x05, 0x13, 0x56, 0xF2, 0x03, 0xC4, 0x65, 0x92, 0xF5, + 0x14, 0xC1, 0x26, 0xC5, 0x06, 0x6B, 0x53, 0x6C, 0x66, 0x64, 0x23, 0x46, 0x30, 0x63, 0x57, 0xC1, + 0x57, 0x5E, 0x56, 0x6F, 0x26, 0xC1, 0x66, 0x65, 0xB1, 0x6C, 0x24, 0x71, 0xC4, 0x76, 0x24, 0x34, + 0x92, 0xD1, 0x04, 0x70, 0x06, 0x6D, 0x63, 0x67, 0xD4, 0x61, 0x24, 0x71, 0x92, 0x0D, 0x2F, 0x56, + 0x0E, 0x00, 0x68, 0x35, 0x2C, 0x05, 0xC6, 0x37, 0x92, 0x04, 0x99, 0x05, 0x2C, 0x05, 0xF2, 0x04, + 0x24, 0x61, 0xC4, 0x65, 0x92, 0xF5, 0xC4, 0x75, 0x92, 0xEE, 0x38, 0x7E, 0x38, 0x05, 0x1C, 0x60, + 0x00, 0x04, 0x5C, 0x40, 0xFF, 0x03, 0x56, 0x76, 0x66, 0x74, 0xB9, 0x7E, 0x38, 0x05, 0x0C, 0x20, + 0x3C, 0x15, 0x06, 0x31, 0x0C, 0x40, 0x14, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x58, 0xC1, + 0x1C, 0x00, 0x48, 0xA1, 0x14, 0x00, 0x2C, 0x10, 0x2C, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, + 0xD1, 0xC1, 0x0C, 0xE0, 0x00, 0x10, 0x98, 0x7E, 0x07, 0x05, 0x82, 0x18, 0x0C, 0xC0, 0xDE, 0x14, + 0x04, 0xD0, 0x18, 0x7E, 0x07, 0x05, 0xC6, 0xD7, 0x32, 0x07, 0x06, 0x2C, 0x0B, 0x45, 0x03, 0x00, + 0x24, 0xD1, 0x24, 0xC8, 0xF2, 0xF7, 0x38, 0x7E, 0x38, 0x05, 0x08, 0x60, 0xE0, 0x00, 0xD6, 0x76, + 0x82, 0x0E, 0x98, 0x7E, 0x52, 0x05, 0x92, 0x0B, 0xF2, 0x07, 0x98, 0x7E, 0x52, 0x05, 0x92, 0x07, + 0x98, 0x7E, 0x08, 0x05, 0x82, 0x04, 0x04, 0x71, 0x99, 0x7E, 0x52, 0x05, 0x18, 0x7E, 0x07, 0x05, + 0x99, 0x7E, 0x08, 0x05, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x0C, 0x20, 0x2E, 0x13, 0x04, 0x30, 0x04, 0x4D, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x30, 0xF1, 0x0C, 0x70, 0x00, 0x10, 0x14, 0x61, 0x99, 0x67, 0x2F, 0x03, 0x99, 0x67, + 0x2E, 0x03, 0x99, 0x67, 0x31, 0x03, 0x99, 0x67, 0x30, 0x03, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0xC4, 0x41, 0x34, 0x14, 0xB1, 0xF1, 0x02, 0x0A, 0xCC, 0x40, 0x11, 0x00, 0x14, 0x72, 0x26, 0x74, + 0x13, 0x77, 0x0C, 0xF0, 0x13, 0x00, 0x12, 0x05, 0xF2, 0x02, 0x04, 0x70, 0x24, 0x42, 0x13, 0xF4, + 0x08, 0x60, 0x00, 0x30, 0x2C, 0x60, 0x00, 0xA0, 0xC6, 0x7F, 0xD2, 0x17, 0x06, 0x47, 0x57, 0x42, + 0x2F, 0x57, 0x07, 0x00, 0x3F, 0x55, 0x04, 0x00, 0x26, 0x53, 0x57, 0x51, 0x26, 0x56, 0x30, 0x55, + 0x5C, 0x50, 0xFF, 0x7F, 0xC6, 0x25, 0xB2, 0x06, 0x04, 0x61, 0x99, 0x60, 0x36, 0x13, 0x04, 0x21, + 0xF2, 0x05, 0x24, 0x71, 0x23, 0x77, 0xF2, 0xE9, 0x04, 0x20, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0xC4, 0x41, 0x34, 0x14, 0xB1, 0xF1, 0x02, 0x08, 0xC4, 0x4B, 0x14, 0x72, 0x26, 0x74, 0x13, 0x77, + 0x04, 0xFD, 0x12, 0x05, 0xF2, 0x02, 0x04, 0x70, 0x24, 0x42, 0x13, 0xF4, 0x26, 0x33, 0x06, 0x63, + 0xD7, 0x61, 0x3F, 0x33, 0x06, 0x00, 0x08, 0x60, 0x00, 0x30, 0x2C, 0x60, 0x00, 0xA0, 0xC6, 0x7F, + 0xD2, 0x12, 0x2F, 0x57, 0x03, 0x00, 0x57, 0x51, 0x26, 0x56, 0x30, 0x55, 0x5C, 0x50, 0xFF, 0x7F, + 0xC6, 0x25, 0xB2, 0x06, 0x04, 0x61, 0x99, 0x60, 0x36, 0x13, 0x04, 0x21, 0xF2, 0x05, 0x24, 0x71, + 0x23, 0x77, 0xF2, 0xEE, 0x04, 0x20, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x3C, 0x10, 0x28, 0x00, + 0xD9, 0xC1, 0x18, 0x00, 0xD9, 0x81, 0x08, 0x00, 0x6B, 0xBA, 0x00, 0x00, 0x0C, 0xE0, 0x00, 0x10, + 0x28, 0x7E, 0x22, 0x00, 0xB1, 0x21, 0xC4, 0x7F, 0xC2, 0x12, 0x98, 0x70, 0xBA, 0x15, 0x82, 0x0F, + 0x38, 0x7E, 0x38, 0x05, 0x5C, 0x70, 0x00, 0xF0, 0xCC, 0x70, 0x00, 0x10, 0x92, 0x08, 0x04, 0x71, + 0x99, 0x7E, 0x38, 0x03, 0x99, 0x0E, 0x35, 0x03, 0x99, 0x7E, 0x36, 0x03, 0x18, 0x7E, 0x33, 0x03, + 0xC4, 0x72, 0xC2, 0x08, 0x04, 0x71, 0x99, 0x0E, 0x35, 0x03, 0x99, 0x7E, 0x36, 0x03, 0x99, 0x0E, + 0x38, 0x03, 0x98, 0x7E, 0x38, 0x03, 0x82, 0x12, 0x98, 0x7E, 0x37, 0x03, 0x82, 0x0F, 0x98, 0x7E, + 0x36, 0x03, 0x82, 0x0C, 0x04, 0x71, 0x99, 0x0E, 0x38, 0x03, 0x99, 0x7E, 0x35, 0x03, 0x99, 0x0E, + 0x36, 0x03, 0x8B, 0x3E, 0x01, 0x00, 0x8B, 0x30, 0x03, 0x00, 0x98, 0x7E, 0x36, 0x03, 0x9A, 0xC8, + 0x00, 0x00, 0x98, 0x7E, 0x35, 0x03, 0x9A, 0xC4, 0x00, 0x00, 0x18, 0x7E, 0x32, 0x03, 0xC4, 0x71, + 0x9A, 0xBF, 0x00, 0x00, 0x18, 0x7E, 0x05, 0x00, 0xC4, 0x71, 0x9A, 0xBA, 0x00, 0x00, 0x18, 0x6E, + 0x81, 0x02, 0x18, 0x5E, 0x80, 0x02, 0xC4, 0x60, 0x82, 0x08, 0xCC, 0x60, 0x13, 0x00, 0x14, 0x71, + 0x26, 0x76, 0x13, 0xB7, 0x82, 0x07, 0xF2, 0x02, 0x06, 0xB6, 0x04, 0xA1, 0x26, 0xA6, 0x13, 0xAA, + 0xF2, 0x04, 0x0C, 0xB0, 0x12, 0x00, 0x06, 0xA6, 0xC4, 0x50, 0x82, 0x07, 0xC4, 0x5B, 0x14, 0xC1, + 0x26, 0xC5, 0x13, 0xCC, 0x82, 0x07, 0xF2, 0x02, 0x06, 0xC5, 0x04, 0x91, 0x26, 0x95, 0x13, 0x99, + 0xF2, 0x03, 0x04, 0xCA, 0x06, 0x95, 0x26, 0x66, 0x06, 0x46, 0xD7, 0x41, 0x3F, 0x66, 0x04, 0x00, + 0x26, 0x56, 0x08, 0x80, 0x00, 0x30, 0x57, 0x51, 0x2C, 0x80, 0x00, 0xA0, 0x26, 0x58, 0x30, 0xD5, + 0x04, 0x50, 0x5C, 0xD0, 0xFF, 0x7F, 0xC6, 0xBA, 0xD2, 0x66, 0x30, 0x31, 0x28, 0x2E, 0x60, 0x01, + 0x06, 0xFB, 0x2F, 0x6B, 0x0B, 0x00, 0x57, 0xF2, 0x36, 0xF6, 0x23, 0x33, 0x06, 0x6C, 0xC6, 0x69, + 0xD2, 0x56, 0x2F, 0x46, 0x0F, 0x00, 0x57, 0x41, 0x26, 0x48, 0x30, 0x44, 0x5C, 0x40, 0xFF, 0x7F, + 0xC6, 0x42, 0xA2, 0x4A, 0xC6, 0x43, 0x92, 0x48, 0x18, 0x4E, 0x81, 0x02, 0xC6, 0x4B, 0x92, 0x05, + 0x18, 0x5E, 0x80, 0x02, 0xC6, 0x56, 0x82, 0x3B, 0x18, 0x6E, 0x34, 0x03, 0x04, 0x51, 0xD6, 0x56, + 0x82, 0x13, 0x18, 0x3E, 0x80, 0x02, 0x24, 0x32, 0x13, 0x33, 0xC4, 0x3B, 0xC2, 0x07, 0x18, 0x6E, + 0x34, 0x03, 0x04, 0x54, 0xD6, 0x56, 0x92, 0x10, 0xF2, 0x1C, 0x06, 0x2D, 0x0B, 0x66, 0x03, 0x00, + 0xC4, 0x20, 0x82, 0xF6, 0xF2, 0x27, 0xD4, 0x62, 0x82, 0xF3, 0x18, 0x3E, 0x80, 0x02, 0x06, 0x2D, + 0x34, 0x32, 0x13, 0x33, 0xF2, 0xF4, 0x18, 0x3E, 0x81, 0x02, 0x24, 0x32, 0x13, 0x33, 0xCC, 0x30, + 0x13, 0x00, 0xC2, 0x05, 0x98, 0x6E, 0x36, 0x03, 0x82, 0x12, 0xF2, 0x14, 0x06, 0x2D, 0xF2, 0x08, + 0xD4, 0x68, 0x82, 0xF9, 0x18, 0x3E, 0x81, 0x02, 0x06, 0x2D, 0x34, 0x32, 0x13, 0x33, 0x18, 0x4E, + 0x80, 0x02, 0x0B, 0x69, 0x03, 0x00, 0xC4, 0x20, 0x92, 0x05, 0xF2, 0xED, 0x04, 0x61, 0x99, 0x6E, + 0x35, 0x03, 0x04, 0x51, 0xF2, 0x04, 0x24, 0x61, 0x13, 0x66, 0xF2, 0xAA, 0x04, 0x71, 0x26, 0x7B, + 0x13, 0xB7, 0xF2, 0x9A, 0x98, 0x7E, 0x35, 0x03, 0x82, 0x0D, 0x18, 0x7E, 0x3A, 0x03, 0xC4, 0x71, + 0x92, 0x09, 0xB9, 0x51, 0x04, 0x00, 0x8B, 0x3E, 0x01, 0x00, 0x8B, 0x30, 0x03, 0x00, 0x38, 0x51, + 0x04, 0x00, 0x98, 0x7E, 0x35, 0x03, 0x92, 0x0C, 0xC4, 0x50, 0x92, 0x0A, 0x30, 0x61, 0x28, 0x7E, + 0x60, 0x01, 0x23, 0xB6, 0xC6, 0x7B, 0xD2, 0x04, 0x04, 0x71, 0x99, 0x7E, 0x36, 0x03, 0x38, 0x6E, + 0x38, 0x05, 0x06, 0x76, 0x5C, 0x60, 0x00, 0xF0, 0x77, 0x76, 0xCC, 0x60, 0x00, 0x10, 0x54, 0x7F, + 0x99, 0x7E, 0x3A, 0x03, 0x92, 0x11, 0x18, 0x6E, 0x31, 0x03, 0x28, 0x7E, 0x80, 0x02, 0xCC, 0x60, + 0xFF, 0x00, 0xA9, 0x7E, 0x2E, 0x03, 0x92, 0x08, 0x18, 0x6E, 0x30, 0x03, 0xCC, 0x60, 0xFF, 0x00, + 0x92, 0x03, 0xA9, 0x7E, 0x30, 0x03, 0x58, 0xC1, 0x18, 0x00, 0x58, 0x81, 0x08, 0x00, 0x2C, 0x10, + 0x28, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x0C, 0x60, 0x00, 0x10, 0x2C, 0x20, + 0x44, 0x00, 0xA8, 0xD6, 0x50, 0x05, 0x57, 0x22, 0x2F, 0xE6, 0x02, 0x00, 0x14, 0x71, 0xA9, 0x7E, + 0x04, 0x00, 0xA9, 0x7E, 0x06, 0x00, 0xA9, 0x7E, 0x08, 0x00, 0xA9, 0x7E, 0x0A, 0x00, 0xA1, 0x0E, + 0xA9, 0x0E, 0x02, 0x00, 0x92, 0x0F, 0x0C, 0x20, 0x98, 0x14, 0x06, 0x3D, 0x04, 0x48, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0xA0, 0x14, 0x06, 0x3D, 0x04, 0x4A, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0xA9, 0x0E, 0x0C, 0x00, 0xA9, 0x0E, 0x0E, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, 0x04, 0xE0, 0x06, 0x2E, 0xAB, 0x7E, 0x03, 0x00, + 0x24, 0xE1, 0xC4, 0xE5, 0x92, 0xFB, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x3C, 0x10, 0x18, 0x00, + 0xB9, 0x31, 0x04, 0x00, 0xD9, 0xC1, 0x08, 0x00, 0x28, 0xD1, 0x04, 0x00, 0xB1, 0x21, 0x23, 0xC2, + 0xC6, 0x4D, 0x28, 0x31, 0x02, 0x00, 0x28, 0xE1, 0x06, 0x00, 0x32, 0x03, 0x43, 0x2E, 0xF2, 0x11, + 0xC6, 0x4C, 0x22, 0x03, 0x43, 0x23, 0xF2, 0x0D, 0x3F, 0x2D, 0x04, 0x00, 0x36, 0x3E, 0xAB, 0x97, + 0x00, 0x00, 0x43, 0x22, 0x3F, 0x3D, 0x0C, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x26, 0x2E, 0x43, 0x22, + 0x58, 0xC1, 0x08, 0x00, 0x2C, 0x10, 0x18, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x70, 0x94, 0x15, + 0x3C, 0x10, 0x78, 0x00, 0xD9, 0xC1, 0x68, 0x00, 0xD9, 0x81, 0x58, 0x00, 0x30, 0x77, 0xDC, 0x70, + 0x00, 0x08, 0x8A, 0xB8, 0x02, 0x00, 0xC4, 0x30, 0x92, 0x0C, 0xC4, 0x20, 0x9A, 0xB3, 0x02, 0x00, + 0xA8, 0x70, 0x50, 0x15, 0x9A, 0xAF, 0x02, 0x00, 0xAB, 0x81, 0x03, 0x00, 0xFA, 0xAB, 0x02, 0x00, + 0x98, 0x70, 0xBA, 0x15, 0x0C, 0xE0, 0x00, 0x10, 0x82, 0x2C, 0x28, 0x7E, 0x22, 0x00, 0xC4, 0x79, + 0xC2, 0x0E, 0x0C, 0x70, 0x20, 0x00, 0xA9, 0x7E, 0x94, 0x04, 0x0C, 0x70, 0xA0, 0x00, 0xA9, 0x7E, + 0x90, 0x04, 0xA9, 0x0E, 0x96, 0x04, 0x0C, 0x70, 0x50, 0x00, 0xF2, 0x34, 0xC4, 0x75, 0xC2, 0x0E, + 0x0C, 0x70, 0x20, 0x00, 0xA9, 0x7E, 0x94, 0x04, 0x0C, 0x70, 0xA0, 0x00, 0xA9, 0x7E, 0x90, 0x04, + 0xA9, 0x0E, 0x96, 0x04, 0x0C, 0x70, 0x64, 0x00, 0xF2, 0x25, 0x0C, 0x70, 0x10, 0x00, 0xA9, 0x7E, + 0x94, 0x04, 0x0C, 0x70, 0xA0, 0x00, 0xA9, 0x7E, 0x90, 0x04, 0xA9, 0x0E, 0x96, 0x04, 0xF2, 0x18, + 0x98, 0x7E, 0x56, 0x02, 0x92, 0xD7, 0x28, 0x7E, 0x06, 0x00, 0x0C, 0x60, 0x10, 0x00, 0xD6, 0x67, + 0x92, 0xD1, 0xD4, 0x78, 0x0C, 0x70, 0x20, 0x00, 0xA9, 0x7E, 0x94, 0x04, 0x0C, 0x70, 0xA0, 0x00, + 0xA9, 0x7E, 0x90, 0x04, 0x0C, 0x70, 0x1E, 0x00, 0xA9, 0x7E, 0x96, 0x04, 0x82, 0x2F, 0x0C, 0x70, + 0x96, 0x00, 0xA9, 0x7E, 0x92, 0x04, 0x0C, 0x70, 0x44, 0x14, 0xB9, 0x71, 0x1C, 0x00, 0x0C, 0x70, + 0x46, 0x14, 0xB9, 0x71, 0x18, 0x00, 0x0C, 0x70, 0xA0, 0x14, 0xB9, 0x71, 0x34, 0x00, 0x0C, 0x70, + 0x90, 0x14, 0xB9, 0x71, 0x0C, 0x00, 0x0C, 0x70, 0x48, 0x14, 0xB9, 0x71, 0x30, 0x00, 0x08, 0x60, + 0x00, 0xFF, 0x04, 0x50, 0x0C, 0x70, 0x4A, 0x14, 0x2C, 0x60, 0xFF, 0x0F, 0x06, 0xDE, 0xB9, 0x71, + 0x2C, 0x00, 0xB9, 0x51, 0x04, 0x00, 0xB9, 0x51, 0x14, 0x00, 0xB9, 0x51, 0x40, 0x00, 0xB9, 0x51, + 0x3C, 0x00, 0x06, 0xB5, 0xB9, 0x61, 0x38, 0x00, 0xF2, 0x04, 0x0C, 0x70, 0xC8, 0x00, 0xF2, 0xD2, + 0x28, 0x7E, 0x50, 0x05, 0x63, 0x7B, 0xD4, 0x71, 0x92, 0x06, 0x06, 0x2B, 0xAB, 0x7E, 0x03, 0x00, + 0xFA, 0xF5, 0x01, 0x00, 0x04, 0x71, 0x26, 0x7B, 0x57, 0x71, 0x26, 0x7E, 0x38, 0x67, 0x38, 0x05, + 0x06, 0x76, 0x77, 0x76, 0x5C, 0x70, 0xFF, 0x0F, 0x43, 0x57, 0x5C, 0x60, 0xFF, 0x0F, 0xB9, 0x51, + 0x24, 0x00, 0x43, 0x56, 0xB9, 0x51, 0x28, 0x00, 0xF8, 0x5D, 0x44, 0x04, 0x32, 0x20, 0x38, 0x51, + 0x24, 0x00, 0x38, 0x41, 0x1C, 0x00, 0xA1, 0x54, 0x38, 0x51, 0x28, 0x00, 0x38, 0x41, 0x18, 0x00, + 0xA1, 0x54, 0x38, 0x51, 0x24, 0x00, 0x38, 0x41, 0x30, 0x00, 0xA1, 0x54, 0x38, 0x51, 0x28, 0x00, + 0x38, 0x41, 0x2C, 0x00, 0xA1, 0x54, 0x38, 0x41, 0x0C, 0x00, 0xA9, 0x0D, 0x40, 0x04, 0xA9, 0x0D, + 0x42, 0x04, 0x04, 0x51, 0x99, 0x54, 0x10, 0x00, 0x99, 0x54, 0x11, 0x00, 0x78, 0x5D, 0x48, 0x04, + 0x36, 0x75, 0xB9, 0x71, 0x08, 0x00, 0x78, 0x7D, 0x4A, 0x04, 0xB8, 0xA1, 0x08, 0x00, 0x36, 0x67, + 0xB9, 0x61, 0x10, 0x00, 0x32, 0x02, 0x16, 0xAA, 0x38, 0x51, 0x10, 0x00, 0x86, 0x65, 0xB9, 0x51, + 0x20, 0x00, 0x32, 0x04, 0x16, 0x76, 0xB9, 0x71, 0x20, 0x00, 0x38, 0x51, 0x20, 0x00, 0x43, 0x2A, + 0x43, 0x35, 0x0C, 0xF0, 0x80, 0x00, 0xF1, 0xF0, 0x98, 0x70, 0xBA, 0x15, 0x06, 0x82, 0xB9, 0x71, + 0x44, 0x00, 0x82, 0x26, 0x38, 0x2E, 0x90, 0x04, 0x38, 0x3E, 0x94, 0x04, 0x06, 0x48, 0x6B, 0x82, + 0x03, 0x00, 0x28, 0x7E, 0x22, 0x00, 0x06, 0x92, 0xC4, 0x77, 0xC2, 0x0C, 0x06, 0x78, 0xF7, 0x7F, + 0x2F, 0x48, 0x07, 0x00, 0xE7, 0x40, 0x38, 0x2E, 0x90, 0x04, 0x38, 0x3E, 0x94, 0x04, 0x43, 0x44, + 0xF2, 0x0B, 0x04, 0x33, 0x2F, 0x28, 0x08, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x42, 0x38, 0x3E, + 0x94, 0x04, 0x38, 0x2E, 0x90, 0x04, 0x6B, 0x82, 0x03, 0x00, 0x06, 0xC2, 0xF2, 0x36, 0x98, 0x7E, + 0x56, 0x02, 0x92, 0x06, 0x28, 0x7E, 0x06, 0x00, 0xDC, 0x70, 0x10, 0x00, 0x82, 0x0C, 0x86, 0x88, + 0x32, 0x02, 0x24, 0x83, 0x06, 0x48, 0x67, 0x41, 0x38, 0x2E, 0x90, 0x04, 0x38, 0x3E, 0x94, 0x04, + 0x43, 0x44, 0xF2, 0x1F, 0x28, 0x7E, 0x22, 0x00, 0xC4, 0x77, 0xC2, 0x16, 0x04, 0x33, 0x26, 0x22, + 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x42, 0x38, 0x3E, 0x94, 0x04, 0x38, 0x2E, 0x90, 0x04, 0x6B, 0x82, + 0x03, 0x00, 0x06, 0xC2, 0x38, 0x3E, 0x94, 0x04, 0x38, 0x2E, 0x90, 0x04, 0x06, 0x48, 0x6B, 0x82, + 0x03, 0x00, 0x06, 0x92, 0xF2, 0x0A, 0x38, 0x2E, 0x90, 0x04, 0x38, 0x3E, 0x94, 0x04, 0x06, 0x48, + 0x6B, 0x82, 0x03, 0x00, 0x06, 0xC2, 0x06, 0x92, 0x18, 0x7E, 0x2B, 0x03, 0xC4, 0x72, 0xD2, 0x0B, + 0x0C, 0x70, 0x50, 0x00, 0xA9, 0x0E, 0x9A, 0x04, 0xA9, 0x0E, 0x98, 0x04, 0xA9, 0x7E, 0x9E, 0x04, + 0xA9, 0x7E, 0x9C, 0x04, 0x38, 0x60, 0x94, 0x15, 0x78, 0x2E, 0x98, 0x04, 0x18, 0x56, 0xB3, 0x00, + 0x18, 0x76, 0xB5, 0x00, 0x18, 0x66, 0xB4, 0x00, 0xB9, 0x51, 0x4C, 0x00, 0x06, 0x35, 0x2F, 0x86, + 0x05, 0x00, 0x26, 0x87, 0xB9, 0x71, 0x54, 0x00, 0xB9, 0x61, 0x50, 0x00, 0xAB, 0x97, 0x00, 0x00, + 0x38, 0x61, 0x50, 0x00, 0x06, 0x42, 0x78, 0x2E, 0x9C, 0x04, 0xB9, 0x41, 0x48, 0x00, 0x06, 0x36, + 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x54, 0x00, 0x38, 0x41, 0x48, 0x00, 0x06, 0x39, 0x26, 0x42, + 0x06, 0x27, 0xB9, 0x41, 0x48, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x41, 0x48, 0x00, 0x43, 0x22, + 0x26, 0x24, 0x06, 0x38, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x51, 0x4C, 0x00, 0x43, 0x92, 0x78, 0x2E, + 0x9A, 0x04, 0x06, 0x35, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x61, 0x50, 0x00, 0x06, 0x52, 0x78, 0x2E, + 0x9E, 0x04, 0xB9, 0x51, 0x4C, 0x00, 0x06, 0x36, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x54, 0x00, + 0x38, 0x51, 0x4C, 0x00, 0x06, 0x3C, 0x26, 0x52, 0x06, 0x27, 0xB9, 0x51, 0x4C, 0x00, 0xAB, 0x97, + 0x00, 0x00, 0x38, 0x51, 0x4C, 0x00, 0x43, 0x22, 0x26, 0x25, 0x06, 0x38, 0x4B, 0x9E, 0x00, 0x00, + 0x43, 0x72, 0x06, 0x39, 0x06, 0x2A, 0xB9, 0x71, 0x54, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, + 0x64, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, 0x54, 0x00, 0x06, 0x62, 0x06, 0x82, 0x38, 0x21, + 0x20, 0x00, 0xB9, 0x61, 0x50, 0x00, 0x06, 0x37, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, + 0x4B, 0x9E, 0x00, 0x00, 0xB8, 0x51, 0x44, 0x00, 0x38, 0x61, 0x50, 0x00, 0x38, 0x71, 0x54, 0x00, + 0x06, 0xC2, 0x92, 0x10, 0xC4, 0x60, 0x92, 0x05, 0xC4, 0xA4, 0x04, 0x81, 0x12, 0x02, 0x06, 0x85, + 0xC4, 0xC0, 0x92, 0x08, 0x38, 0x51, 0x20, 0x00, 0x04, 0x61, 0xC4, 0x54, 0x12, 0x02, 0x06, 0x6C, + 0x06, 0xC6, 0x38, 0x51, 0x04, 0x00, 0x06, 0x69, 0xC6, 0x95, 0x32, 0x02, 0x06, 0x65, 0x38, 0x51, + 0x14, 0x00, 0x43, 0x66, 0xC6, 0x75, 0xB9, 0x61, 0x04, 0x00, 0x06, 0x67, 0x32, 0x02, 0x06, 0x65, + 0x43, 0x66, 0xB9, 0x61, 0x14, 0x00, 0x38, 0x41, 0x0C, 0x00, 0x38, 0x61, 0x08, 0x00, 0x38, 0x71, + 0x10, 0x00, 0x68, 0x54, 0x10, 0x00, 0x15, 0xA6, 0xF7, 0xAF, 0x33, 0x6A, 0xC6, 0x56, 0x15, 0x97, + 0xF7, 0x9F, 0x33, 0x79, 0x92, 0x04, 0x04, 0x51, 0xB9, 0x51, 0x3C, 0x00, 0x38, 0x41, 0x0C, 0x00, + 0x68, 0x54, 0x11, 0x00, 0xC6, 0x57, 0x92, 0x04, 0x04, 0x51, 0xB9, 0x51, 0x40, 0x00, 0x38, 0x51, + 0x34, 0x00, 0x04, 0x44, 0x91, 0x65, 0x2F, 0x6B, 0x0B, 0x00, 0x26, 0x6E, 0x99, 0x76, 0xA1, 0x04, + 0x0C, 0x60, 0x48, 0x04, 0x26, 0x6D, 0x06, 0x36, 0x06, 0x21, 0xB9, 0x61, 0x08, 0x00, 0x6B, 0xCF, + 0x03, 0x00, 0x6B, 0xBA, 0x00, 0x00, 0x18, 0x7E, 0x2C, 0x03, 0xC4, 0x71, 0x20, 0x71, 0xD2, 0x19, + 0x28, 0x6E, 0x60, 0x01, 0x23, 0x22, 0xC6, 0x62, 0xC2, 0x14, 0x98, 0x6E, 0x35, 0x03, 0x92, 0x11, + 0x78, 0x6D, 0x40, 0x04, 0xC6, 0x68, 0x02, 0x05, 0xB8, 0x51, 0x3C, 0x00, 0x82, 0x02, 0x06, 0x86, + 0x78, 0x6D, 0x42, 0x04, 0xC6, 0x6C, 0x02, 0x05, 0xB8, 0x51, 0x40, 0x00, 0x82, 0x02, 0x06, 0xC6, + 0xC4, 0xA0, 0x92, 0x02, 0x16, 0x88, 0x23, 0x88, 0xC4, 0x90, 0x26, 0x87, 0xA1, 0x81, 0x28, 0x71, + 0x02, 0x00, 0x92, 0x02, 0x16, 0xCC, 0x23, 0xCC, 0x26, 0xC7, 0x06, 0x21, 0xA9, 0xC1, 0x02, 0x00, + 0x6B, 0x20, 0x03, 0x00, 0x78, 0x7D, 0x48, 0x04, 0x70, 0xA1, 0x3F, 0x77, 0x0A, 0x00, 0xC4, 0x70, + 0x32, 0x02, 0x16, 0x77, 0xA9, 0x7D, 0x40, 0x04, 0x78, 0xC1, 0x02, 0x00, 0x78, 0x7D, 0x4A, 0x04, + 0x3F, 0x77, 0x0C, 0x00, 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, 0xA9, 0x7D, 0x42, 0x04, 0x38, 0x61, + 0x24, 0x00, 0x38, 0x71, 0x1C, 0x00, 0x38, 0x51, 0x28, 0x00, 0x38, 0x21, 0x08, 0x00, 0xA1, 0x67, + 0x38, 0x61, 0x18, 0x00, 0x04, 0x44, 0xA1, 0x56, 0x06, 0x31, 0x6B, 0xCF, 0x03, 0x00, 0x04, 0x71, + 0x26, 0x7B, 0x57, 0x71, 0x2F, 0x67, 0x0E, 0x00, 0x38, 0x76, 0x38, 0x05, 0x38, 0x51, 0x38, 0x00, + 0x5C, 0xA0, 0xFF, 0x0F, 0x57, 0xA6, 0x56, 0x75, 0x66, 0x7A, 0x1C, 0x40, 0x00, 0x10, 0x5C, 0xC0, + 0xFF, 0x0F, 0x56, 0x74, 0x66, 0x7C, 0xB9, 0x76, 0x38, 0x05, 0x38, 0x51, 0x1C, 0x00, 0x38, 0x61, + 0x18, 0x00, 0x38, 0x71, 0x34, 0x00, 0x2C, 0x50, 0x10, 0x00, 0x2C, 0x60, 0x10, 0x00, 0x24, 0x72, + 0xB9, 0x51, 0x1C, 0x00, 0xB9, 0x61, 0x18, 0x00, 0x38, 0x51, 0x0C, 0x00, 0x38, 0x61, 0x30, 0x00, + 0xB9, 0x71, 0x34, 0x00, 0x38, 0x71, 0x2C, 0x00, 0x24, 0xB1, 0xC4, 0xB5, 0x24, 0x52, 0x2C, 0x60, + 0x10, 0x00, 0x2C, 0x70, 0x10, 0x00, 0xB9, 0x51, 0x0C, 0x00, 0xB9, 0x61, 0x30, 0x00, 0xB9, 0x71, + 0x2C, 0x00, 0x2C, 0xD0, 0x10, 0x00, 0x9A, 0xDD, 0xFD, 0xFF, 0x38, 0x7E, 0x98, 0x04, 0x38, 0x41, + 0x04, 0x00, 0x38, 0x51, 0x14, 0x00, 0xB9, 0x7E, 0x9C, 0x04, 0xA9, 0x4E, 0x98, 0x04, 0xA9, 0x5E, + 0x9A, 0x04, 0x58, 0xC1, 0x68, 0x00, 0x58, 0x81, 0x58, 0x00, 0x2C, 0x10, 0x78, 0x00, 0xE1, 0xF0, + 0x0C, 0x70, 0xAA, 0x14, 0x04, 0x60, 0x78, 0x57, 0x04, 0x00, 0x24, 0x61, 0xC6, 0x25, 0x22, 0x0E, + 0x78, 0x57, 0x06, 0x00, 0xC6, 0x25, 0x12, 0x0A, 0x70, 0x57, 0xC6, 0x35, 0x22, 0x07, 0x78, 0x57, + 0x02, 0x00, 0xC6, 0x35, 0x12, 0x03, 0x13, 0x26, 0xF2, 0x06, 0x13, 0x66, 0xC4, 0x62, 0x24, 0x78, + 0x92, 0xEB, 0x04, 0x20, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, + 0xB1, 0xB1, 0x0C, 0xE0, 0x00, 0x10, 0x28, 0x7E, 0x06, 0x00, 0x18, 0xCE, 0x07, 0x05, 0xD4, 0x71, + 0x06, 0xD2, 0x06, 0xB3, 0x92, 0x3F, 0x38, 0x60, 0x94, 0x15, 0x18, 0x7E, 0x0C, 0x05, 0x18, 0x66, + 0xC5, 0x00, 0xC6, 0x67, 0xC2, 0x05, 0x24, 0x71, 0x99, 0x7E, 0x0C, 0x05, 0xF2, 0x33, 0x18, 0x72, + 0x0A, 0x00, 0xD7, 0xC1, 0x2C, 0xC0, 0x34, 0x00, 0x26, 0xCE, 0x0C, 0x20, 0xAA, 0x04, 0x99, 0x7C, + 0xAE, 0x04, 0x26, 0x2C, 0x06, 0x3D, 0x04, 0x44, 0x6B, 0xCF, 0x03, 0x00, 0x99, 0xBC, 0xAF, 0x04, + 0x18, 0x7D, 0x0D, 0x00, 0x04, 0x62, 0x99, 0x7C, 0xB0, 0x04, 0x18, 0x7E, 0x07, 0x05, 0x24, 0x71, + 0x99, 0x7E, 0x07, 0x05, 0x18, 0x7D, 0x0D, 0x00, 0xD6, 0x67, 0x82, 0x14, 0x04, 0x64, 0xD6, 0x67, + 0x82, 0x09, 0x04, 0x71, 0x99, 0x7E, 0x09, 0x05, 0x99, 0x0E, 0x0A, 0x05, 0x99, 0x0E, 0x0B, 0x05, + 0xF2, 0x09, 0xDC, 0x70, 0x18, 0x00, 0x82, 0x06, 0x04, 0x71, 0x99, 0x0E, 0x09, 0x05, 0x99, 0x7E, + 0x0A, 0x05, 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xE2, 0x06, 0x63, 0x70, 0x22, 0x78, 0x3E, 0x02, 0x00, + 0x0C, 0xD0, 0x00, 0x10, 0x0C, 0x40, 0xBA, 0x04, 0x0C, 0x50, 0xAA, 0x14, 0x26, 0x4D, 0x04, 0x70, + 0x78, 0xF5, 0x04, 0x00, 0xC6, 0xF2, 0x12, 0x0D, 0x78, 0xF5, 0x06, 0x00, 0xC6, 0x2F, 0x12, 0x09, + 0x70, 0xF5, 0xC6, 0xF3, 0x12, 0x06, 0x78, 0xF5, 0x02, 0x00, 0xC6, 0x3F, 0x12, 0x02, 0x04, 0x71, + 0x24, 0x58, 0xC6, 0x54, 0x92, 0xEE, 0xC4, 0x70, 0x82, 0x77, 0xC4, 0x61, 0x82, 0x09, 0xC4, 0x61, + 0xA2, 0x6F, 0xC4, 0x62, 0x82, 0x1E, 0xC4, 0x64, 0x82, 0x44, 0xFA, 0xAF, 0x00, 0x00, 0x18, 0x6D, + 0x09, 0x05, 0x14, 0x71, 0xC4, 0x60, 0x9A, 0xAA, 0x00, 0x00, 0x8B, 0xB1, 0x03, 0x00, 0x86, 0xC2, + 0x82, 0x09, 0x04, 0x76, 0x99, 0x7E, 0x0D, 0x00, 0x06, 0x2E, 0x06, 0x3C, 0x4B, 0xB3, 0x03, 0x00, + 0xF2, 0x04, 0x04, 0x72, 0x99, 0x7E, 0x0D, 0x00, 0x99, 0xCE, 0x0E, 0x00, 0xFA, 0x96, 0x00, 0x00, + 0x18, 0x7E, 0x0D, 0x00, 0x04, 0x61, 0xD6, 0x67, 0x82, 0x0B, 0xD4, 0x76, 0x82, 0x06, 0x04, 0x7A, + 0x99, 0x7E, 0x0D, 0x00, 0xFA, 0x84, 0x00, 0x00, 0x0C, 0x70, 0x12, 0x00, 0xF2, 0x42, 0x04, 0x62, + 0xD6, 0x67, 0x14, 0x71, 0x8A, 0x83, 0x00, 0x00, 0x8B, 0xB1, 0x03, 0x00, 0x86, 0x32, 0x82, 0x0A, + 0x98, 0x7E, 0x0E, 0x00, 0x92, 0x07, 0x04, 0x76, 0x99, 0x7E, 0x0D, 0x00, 0x99, 0x3E, 0x0E, 0x00, + 0xF2, 0x04, 0x04, 0x72, 0x99, 0x7E, 0x0D, 0x00, 0x06, 0x2E, 0x4B, 0xB3, 0x03, 0x00, 0xF2, 0x6D, + 0x18, 0x7E, 0x0D, 0x00, 0x04, 0x61, 0xD6, 0x67, 0x92, 0xD9, 0x04, 0x62, 0xD6, 0x67, 0x14, 0x71, + 0x82, 0x65, 0x8B, 0xB1, 0x03, 0x00, 0x86, 0x22, 0x18, 0x3E, 0x0E, 0x00, 0x82, 0x11, 0xC4, 0x30, + 0x82, 0x11, 0xC6, 0x23, 0x04, 0x7A, 0x82, 0x03, 0x0C, 0x70, 0x12, 0x00, 0x99, 0x7E, 0x0D, 0x00, + 0x06, 0x2E, 0x4B, 0xB3, 0x03, 0x00, 0x04, 0x71, 0x99, 0x7E, 0x0C, 0x00, 0xF2, 0x06, 0xC4, 0x30, + 0x92, 0xF4, 0x04, 0x72, 0x99, 0x7E, 0x0D, 0x00, 0x99, 0x0E, 0x0E, 0x00, 0xF2, 0x46, 0x04, 0x72, + 0x99, 0x7E, 0x0D, 0x00, 0xF2, 0x42, 0xC4, 0x61, 0x82, 0x08, 0xC4, 0x61, 0xA2, 0x3A, 0xC4, 0x62, + 0x82, 0x09, 0xC4, 0x64, 0x82, 0x1B, 0xF2, 0x3A, 0x99, 0x6E, 0x0D, 0x00, 0x99, 0x0D, 0x0C, 0x05, + 0xF2, 0x35, 0x18, 0x7E, 0x0D, 0x00, 0xD4, 0x72, 0x82, 0x15, 0x98, 0x3E, 0x0E, 0x00, 0x82, 0x08, + 0x0C, 0x70, 0x12, 0x00, 0x99, 0x7E, 0x0D, 0x00, 0x06, 0x2E, 0x4B, 0xB3, 0x03, 0x00, 0x04, 0x71, + 0x99, 0x7E, 0x0D, 0x00, 0x99, 0x0D, 0x0C, 0x05, 0xF2, 0x18, 0x18, 0x7E, 0x0D, 0x00, 0xD4, 0x72, + 0x92, 0x07, 0x04, 0x71, 0x99, 0x7E, 0x0D, 0x00, 0x99, 0x0D, 0x0C, 0x05, 0xF2, 0x10, 0x98, 0x3E, + 0x0E, 0x00, 0x04, 0x72, 0x99, 0x7E, 0x0D, 0x00, 0x82, 0x07, 0x04, 0x7A, 0x99, 0x7E, 0x0D, 0x00, + 0x06, 0x2E, 0x4B, 0xB3, 0x03, 0x00, 0x04, 0x71, 0x99, 0x7E, 0x0C, 0x00, 0x04, 0x70, 0xF2, 0x06, + 0x04, 0x62, 0x99, 0x6E, 0x0D, 0x00, 0xF2, 0x02, 0x14, 0x71, 0x28, 0x5D, 0x06, 0x00, 0x04, 0x63, + 0xD6, 0x65, 0x92, 0x07, 0x18, 0x6E, 0x0D, 0x00, 0x54, 0x63, 0x66, 0x65, 0xA9, 0x6D, 0x06, 0x00, + 0x50, 0xC1, 0x06, 0x27, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x18, 0x40, 0xBF, 0x15, + 0xC4, 0x40, 0x28, 0x50, 0x98, 0x15, 0x06, 0x37, 0x0C, 0x70, 0x00, 0x10, 0x82, 0x07, 0x0C, 0x60, + 0x80, 0x0B, 0x26, 0x55, 0x26, 0x56, 0x20, 0x65, 0xF2, 0x0A, 0x08, 0x60, 0x00, 0x30, 0x57, 0x51, + 0x2C, 0x60, 0x00, 0xA0, 0x26, 0x65, 0x30, 0x66, 0x5C, 0x60, 0xFF, 0x7F, 0xC4, 0x40, 0xA9, 0x67, + 0x10, 0x00, 0x06, 0x63, 0x0C, 0x60, 0x98, 0x15, 0x28, 0x66, 0x02, 0x00, 0x92, 0x0B, 0x08, 0x50, + 0x00, 0x30, 0x57, 0x61, 0x2C, 0x50, 0x00, 0xA0, 0x26, 0x56, 0x30, 0x65, 0x5C, 0x60, 0xFF, 0x7F, + 0xF2, 0x06, 0x26, 0x66, 0x0C, 0x50, 0x80, 0x0B, 0x26, 0x65, 0x20, 0x66, 0xA9, 0x67, 0x12, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x18, 0x00, 0xC1, 0xA1, 0x38, 0xB0, 0x94, 0x15, 0xD9, 0xC1, + 0x08, 0x00, 0x30, 0x7B, 0xDC, 0x70, 0x00, 0x40, 0x82, 0x06, 0x0C, 0xC0, 0xFF, 0x7F, 0x0C, 0xE0, + 0x80, 0x0B, 0xF2, 0x05, 0x0C, 0xC0, 0xFF, 0x0F, 0x0C, 0xE0, 0x80, 0x02, 0x28, 0xA0, 0x06, 0x10, + 0x2C, 0xE0, 0x14, 0x02, 0x54, 0xA8, 0x23, 0xAA, 0x04, 0xD0, 0xC4, 0xD1, 0xC2, 0x05, 0x14, 0x7A, + 0x26, 0x7D, 0xC4, 0x71, 0xD2, 0x0F, 0xC4, 0xA0, 0x92, 0x0A, 0x70, 0x7E, 0x26, 0x77, 0x06, 0x67, + 0x57, 0x61, 0x26, 0x76, 0x06, 0x27, 0x57, 0x22, 0x36, 0x27, 0xF2, 0x09, 0x70, 0x2E, 0x26, 0x22, + 0xF2, 0x0A, 0x70, 0x2E, 0x28, 0x3B, 0xC0, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, + 0x4B, 0x9E, 0x00, 0x00, 0xC4, 0x20, 0x32, 0x03, 0xA1, 0x0E, 0xF2, 0x06, 0xC6, 0x2C, 0x02, 0x03, + 0xA1, 0xCE, 0xF2, 0x02, 0xA1, 0x2E, 0x24, 0xD1, 0xC4, 0xDC, 0x24, 0xE2, 0x92, 0xD7, 0x58, 0xC1, + 0x08, 0x00, 0x40, 0xA1, 0x2C, 0x10, 0x18, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x04, 0x70, 0xC6, 0x74, + 0x82, 0x09, 0x2F, 0x67, 0x03, 0x00, 0x60, 0x56, 0x2F, 0x67, 0x02, 0x00, 0x91, 0x56, 0x24, 0x71, + 0xF2, 0xF7, 0xE1, 0xF0, 0x71, 0x00, 0xF2, 0xFF, 0x66, 0x00, 0x33, 0x01, 0x00, 0x02, 0xCC, 0x02, + 0x99, 0x03, 0x66, 0x04, 0x33, 0x05, 0xFF, 0x05, 0xCC, 0x06, 0x99, 0x07, 0x60, 0x00, 0x20, 0x01, + 0xE0, 0x01, 0xA0, 0x02, 0x60, 0x03, 0x20, 0x04, 0xC6, 0x23, 0x06, 0x72, 0x32, 0x02, 0x06, 0x73, + 0x43, 0x27, 0xE1, 0xF0, 0xC6, 0x23, 0x22, 0x07, 0xC6, 0x24, 0x06, 0x72, 0x32, 0x02, 0x06, 0x74, + 0x43, 0x27, 0xF2, 0x06, 0xC6, 0x34, 0x06, 0x23, 0x32, 0x02, 0x06, 0x24, 0x43, 0x22, 0xE1, 0xF0, + 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xE5, 0x06, 0xD6, 0x6B, 0x04, 0x00, 0x00, 0x06, 0x3E, + 0x06, 0x4D, 0x6B, 0x04, 0x00, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x24, 0x00, + 0xC6, 0x23, 0x06, 0x72, 0x02, 0x02, 0x06, 0x73, 0x43, 0x27, 0xE1, 0xF0, 0x26, 0x23, 0xE1, 0xF0, + 0x26, 0x23, 0x26, 0x24, 0xE1, 0xF0, 0x24, 0x00, 0x26, 0x32, 0x26, 0x43, 0x26, 0x54, 0x2F, 0x26, + 0x05, 0x00, 0xE1, 0xF0, 0x04, 0x70, 0xC6, 0x74, 0x82, 0x09, 0x2F, 0x67, 0x03, 0x00, 0x60, 0x56, + 0x2F, 0x67, 0x02, 0x00, 0x91, 0x56, 0x24, 0x71, 0xF2, 0xF7, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, + 0x77, 0x41, 0x04, 0x70, 0x14, 0x61, 0x34, 0x41, 0xC6, 0x46, 0x82, 0x09, 0x2F, 0x57, 0x03, 0x00, + 0x30, 0xF5, 0x2F, 0x57, 0x02, 0x00, 0xB1, 0xF5, 0x24, 0x74, 0xF2, 0xF6, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x24, 0x00, 0x04, 0x70, 0xC6, 0x74, 0x82, 0x06, 0x2F, 0x67, 0x02, 0x00, 0x91, 0x36, + 0x24, 0x71, 0xF2, 0xFA, 0xE1, 0xF0, 0x24, 0x00, 0x77, 0x41, 0x14, 0x71, 0x34, 0x41, 0xC6, 0x47, + 0x82, 0x04, 0xB1, 0x32, 0x24, 0x24, 0xF2, 0xFB, 0xE1, 0xF0, 0x24, 0x00, 0x77, 0x31, 0x14, 0x71, + 0x34, 0x31, 0xC6, 0x37, 0x82, 0x04, 0xB1, 0x02, 0x24, 0x24, 0xF2, 0xFB, 0xE1, 0xF0, 0x24, 0x00, + 0x08, 0x50, 0x00, 0x30, 0x0C, 0x70, 0xCC, 0x4D, 0x0C, 0x40, 0xFC, 0x48, 0x0C, 0x60, 0x66, 0x09, + 0x26, 0x75, 0x26, 0x45, 0x30, 0x57, 0x34, 0x74, 0xC6, 0x74, 0x77, 0x58, 0xA1, 0x56, 0x34, 0x62, + 0x92, 0xFA, 0xE1, 0xF0, 0x34, 0x18, 0xC1, 0xE1, 0x08, 0x70, 0x00, 0x30, 0x2C, 0x70, 0xCC, 0xA4, + 0x0C, 0x60, 0x33, 0x01, 0x0C, 0xE0, 0x80, 0x0B, 0x0C, 0x20, 0x80, 0x02, 0x14, 0x41, 0x30, 0xF7, + 0x2F, 0x56, 0x06, 0x00, 0x2F, 0x3E, 0x05, 0x00, 0xA1, 0xF3, 0x1C, 0x30, 0x00, 0x57, 0x26, 0x37, + 0x30, 0x33, 0x34, 0x61, 0xC6, 0x64, 0x26, 0x52, 0xA1, 0x35, 0x34, 0x74, 0x92, 0xF1, 0x40, 0xE1, + 0x24, 0x18, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x70, 0x1E, 0x00, 0xB1, 0x71, 0x30, 0x71, 0x14, 0x61, + 0xC4, 0x70, 0x26, 0x67, 0xB1, 0x61, 0x92, 0xFB, 0x24, 0x14, 0xE1, 0xF0, 0xE1, 0xF0, 0x24, 0x00, + 0x34, 0x14, 0xB1, 0xF1, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x07, 0x90, 0x60, 0xB9, 0x27, 0x00, 0x60, + 0xB9, 0x37, 0x04, 0x60, 0xB9, 0x07, 0x08, 0x60, 0x38, 0x67, 0x90, 0x60, 0xD4, 0x61, 0x82, 0xFD, + 0x0C, 0x60, 0x00, 0x81, 0xB9, 0x67, 0x00, 0x60, 0x0B, 0x14, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x24, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x00, 0x60, + 0x04, 0x60, 0xC6, 0x65, 0x2F, 0x23, 0x06, 0x00, 0x82, 0x0D, 0xB9, 0x27, 0x04, 0x60, 0x30, 0x24, + 0xB9, 0x27, 0x08, 0x60, 0x38, 0x27, 0x90, 0x60, 0xD4, 0x22, 0x82, 0xFD, 0x24, 0x61, 0x24, 0x44, + 0xF2, 0xF1, 0x0C, 0x60, 0x00, 0x81, 0xB9, 0x67, 0x00, 0x60, 0x0B, 0x14, 0x00, 0x00, 0x30, 0xF1, + 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x18, 0xC1, 0xE1, 0x08, 0x70, 0x00, 0x40, 0x0C, 0x60, 0x00, 0xDE, + 0xB9, 0x67, 0x10, 0x60, 0x77, 0x31, 0x0C, 0x60, 0x90, 0x01, 0xB9, 0x67, 0x00, 0x60, 0x77, 0x21, + 0x34, 0x31, 0x08, 0x60, 0x00, 0x13, 0xB9, 0x27, 0x04, 0x60, 0x66, 0x36, 0xB9, 0x37, 0x14, 0x60, + 0x08, 0x50, 0x00, 0x10, 0x38, 0x67, 0x14, 0x60, 0x0C, 0x40, 0x14, 0x60, 0xD6, 0x65, 0x26, 0x47, + 0x92, 0xFA, 0x38, 0xE7, 0x18, 0x60, 0xB1, 0x04, 0x0C, 0x60, 0x00, 0x81, 0xB9, 0x67, 0x00, 0x60, + 0xB9, 0x07, 0x10, 0x60, 0x0B, 0x14, 0x00, 0x00, 0x06, 0x2E, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0E, 0x16, 0x0C, 0x14, + 0x01, 0x15, 0xFF, 0xFF, 0xFF, 0x00, 0x80, 0x04, 0xFF, 0x07, 0x02, 0x00, 0x03, 0x02, 0x67, 0x00, + 0x67, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, + 0x08, 0x07, 0x01, 0xC8, 0xC8, 0x00, 0x00, 0x02, 0x01, 0x46, 0x01, 0x02, 0x08, 0x07, 0x14, 0x14, + 0xFF, 0xFF, 0xFF, 0x0C, 0x0D, 0xFF, 0xFF, 0xFF, 0xC8, 0x32, 0x00, 0x00, 0xC8, 0x32, 0x00, 0x00, + 0xC8, 0x32, 0x00, 0x00, 0xA0, 0x86, 0x01, 0x00, 0x80, 0x96, 0x98, 0x00, 0xE8, 0x03, 0x00, 0x00, + 0x0A, 0x00, 0xF4, 0x01, 0xF4, 0x01, 0xF4, 0x01, 0xF4, 0x01, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, + 0x01, 0x00, 0x5A, 0x00, 0x01, 0x00, 0x0A, 0x00, 0xA0, 0x0F, 0x64, 0x64, 0x64, 0x01, 0x50, 0x35, + 0x04, 0x05, 0x02, 0x0A, 0x06, 0x00, 0x30, 0x00, 0xC8, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, + 0xA0, 0x00, 0x20, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x96, 0x00, 0x2C, 0x01, 0x00, 0x00, + 0x64, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x96, 0x00, 0x26, 0x26, 0x00, 0x00, 0x60, 0x40, 0x14, 0x00, + 0x40, 0x20, 0x12, 0x00, 0x60, 0x40, 0x14, 0x00, 0x60, 0x4A, 0x12, 0x00, 0x40, 0x20, 0x12, 0x00, + 0x40, 0x38, 0x12, 0x00, 0x45, 0x38, 0x12, 0x00, 0x42, 0x38, 0x12, 0x00, 0x40, 0x40, 0x00, 0x00, + 0x63, 0x07, 0x03, 0x00, 0x61, 0x07, 0x05, 0x00, 0x61, 0x57, 0x03, 0x00, 0x61, 0x07, 0x05, 0x00, + 0x61, 0x57, 0x03, 0x00, 0x63, 0x07, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x00, 0x0E, 0x80, 0x0F, 0x80, 0x0F, 0x80, 0x0F, 0x80, 0x0F, 0x66, 0x7F, 0xF0, 0x07, + 0x66, 0x7F, 0xF0, 0x07, 0x66, 0x7F, 0xF0, 0x07, 0x66, 0x7F, 0xF0, 0x07, 0x66, 0x7F, 0xF0, 0x07, + 0x66, 0x7F, 0xF0, 0x07, 0xFF, 0x3F, 0x01, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0x40, 0xE2, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x08, 0x00, + 0x10, 0x3F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, + 0x00, 0x00, 0x08, 0x82, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x64, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2C, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x08, 0x00, 0x10, 0x3F, 0x10, 0x3F, + 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x08, 0x82, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2C, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x08, 0x00, 0x10, 0x5F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, + 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x08, 0x82, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x80, 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x2C, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x10, 0x08, 0x00, 0x10, 0x5F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, + 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x08, 0x82, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, + 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x2C, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xB9, 0x00, 0x00, + 0x50, 0x50, 0x05, 0x00, 0x50, 0x64, 0x00, 0x64, 0x00, 0x64, 0x64, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x2C, 0x01, 0x00, 0x00, 0x64, 0x64, 0xC8, 0x00, 0x14, 0x00, 0x2C, 0x01, 0x1E, 0x00, 0x90, 0x01, + 0x90, 0x01, 0x90, 0x01, 0x90, 0x01, 0x00, 0x00, 0x08, 0x00, 0x90, 0x01, 0x00, 0x00, 0x3C, 0x00, + 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0A, 0x02, 0x05, 0x01, 0x32, 0x0A, 0xB8, 0x0B, + 0xF4, 0x01, 0x01, 0x01, 0x0A, 0x00, 0x1E, 0x00, 0xBC, 0x02, 0xFA, 0xFA, 0x0A, 0x00, 0x96, 0x00, + 0x00, 0x05, 0x04, 0x0A, 0x05, 0x06, 0x32, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x1E, 0x03, 0x14, 0x00, + 0x20, 0x03, 0xDC, 0x05, 0xC8, 0x00, 0x14, 0x00, 0x28, 0x00, 0x14, 0x00, 0x0A, 0x00, 0xE0, 0x01, + 0x05, 0x04, 0x01, 0x01, 0x01, 0x00, 0x80, 0x00, 0xD0, 0x00, 0x80, 0x01, 0x20, 0x00, 0x80, 0x00, + 0x60, 0x01, 0x30, 0x00, 0x50, 0x00, 0xA0, 0x00, 0x14, 0x04, 0xFD, 0x02, 0x00, 0x03, 0x14, 0x01, + 0x02, 0x06, 0x01, 0x04, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, + 0x18, 0x00, 0x18, 0x00, 0x20, 0x00, 0x20, 0x00, 0xA0, 0x00, 0x64, 0x00, 0x03, 0x00, 0x00, 0x2D, + 0x2D, 0x0A, 0x96, 0x00, 0x0A, 0x0A, 0x30, 0x00, 0x05, 0x0A, 0x01, 0x00, 0x2C, 0x01, 0xC8, 0x00, + 0x05, 0x05, 0xC8, 0x00, 0x14, 0x00, 0x00, 0x00, 0x9D, 0xF9, 0x00, 0x00, 0x50, 0x50, 0x05, 0x00, + 0x50, 0x64, 0x00, 0x64, 0x00, 0x64, 0x64, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x00, + 0x64, 0x64, 0xC8, 0x00, 0x14, 0x00, 0x90, 0x01, 0x64, 0x00, 0xF4, 0x01, 0xF4, 0x01, 0xF4, 0x01, + 0x58, 0x02, 0x00, 0x00, 0x08, 0x00, 0x90, 0x01, 0x00, 0x00, 0x46, 0x00, 0x01, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x0A, 0x02, 0x05, 0x01, 0x32, 0x0A, 0xB8, 0x0B, 0xF4, 0x01, 0x01, 0x01, + 0x28, 0x00, 0x64, 0x00, 0xD0, 0x07, 0xFF, 0xFF, 0x0A, 0x00, 0x96, 0x00, 0x00, 0x05, 0x04, 0x0A, + 0x05, 0x06, 0x50, 0x00, 0x00, 0x00, 0x00, 0x14, 0x1E, 0x03, 0x14, 0x00, 0x20, 0x03, 0xDC, 0x05, + 0xC8, 0x00, 0x14, 0x00, 0x28, 0x00, 0x1E, 0x00, 0x0A, 0x00, 0xE0, 0x01, 0x05, 0x04, 0x01, 0x01, + 0x01, 0x00, 0x80, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0x20, 0x00, 0x80, 0x00, 0x60, 0x01, 0x30, 0x00, + 0x50, 0x00, 0xA0, 0x00, 0x14, 0x04, 0xFD, 0x02, 0x00, 0x03, 0x14, 0x01, 0x02, 0x03, 0x02, 0x04, + 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x18, 0x00, 0x18, 0x00, + 0x20, 0x00, 0x20, 0x00, 0xA0, 0x00, 0x64, 0x00, 0x03, 0x00, 0x00, 0x2D, 0x2D, 0x0A, 0x96, 0x00, + 0x0A, 0x0A, 0x30, 0x00, 0x05, 0x0A, 0x01, 0x00, 0xC8, 0x00, 0xC8, 0x00, 0x05, 0x05, 0xC8, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0D, 0x58, 0x00, 0x00, 0x16, 0x0E, 0x15, 0x0E, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xB9, 0x02, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x96, 0x00, 0x26, 0x26, 0x00, 0x00, 0x54, 0xFF, 0x0F, 0x00, 0x08, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x2C, 0x01, 0x38, 0x48, 0x10, 0x10, 0x01, 0x00, 0x08, 0x00, + 0xC8, 0x00, 0xC8, 0x10, 0x63, 0x07, 0x03, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0x26, 0x05, 0x00, 0x00, + 0x64, 0xC0, 0x12, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x0E, + 0x00, 0x00, 0x80, 0x00, 0xFF, 0x0F, 0xFF, 0x0F, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, + 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x16, 0x0E, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, + 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x2C, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xE2, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x10, 0x08, 0x00, 0x10, 0x3F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x08, 0x82, + 0x2C, 0x01, 0xFF, 0x0F, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x34, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xAC, 0x0D, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x7F, 0xF0, 0x07, + 0xDC, 0xC5, 0xDA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x16, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x07, 0x41, 0x06, 0x00, + 0xB8, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x31, 0x84, 0x40, 0x00, 0x15, 0xF3, 0x88, 0x00, 0x00, 0xFF, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x3F, 0x00, 0x88, 0xBF, 0x01, 0x20, 0x00, 0x00, + 0x0C, 0x0D, 0x0E, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, + 0x1E, 0x21, 0x22, 0x23, 0x0A, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0C, + 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x00, 0x00, 0xFF, 0x00, 0x20, 0x86, 0x00, 0x00, 0x00, 0x4E, + 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x0F, 0x00, 0x48, 0x26, 0x22, 0x00, + 0x4C, 0x27, 0x26, 0x01, 0x4A, 0x27, 0x24, 0x01, 0x48, 0x2A, 0x22, 0x04, 0x48, 0x2B, 0x22, 0x05, + 0x48, 0x2C, 0x22, 0x06, 0x48, 0x2D, 0x22, 0x07, 0x48, 0x2E, 0x22, 0x08, 0x4C, 0x26, 0x26, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x4C, 0x26, 0x26, 0x00, 0x46, 0x27, 0x20, 0x01, 0xFF, 0xF7, 0xFF, 0xFF, + 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x00, 0x00, 0x26, 0x07, 0x13, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x50, 0x05, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x46, 0x1E, 0x09, 0x0F, 0x46, 0x1E, 0x09, 0x0F, 0x44, 0x16, 0x09, 0x0F, 0x4E, 0x3E, 0x09, 0x0F, + 0x3E, 0xFE, 0x08, 0x0E, 0x3F, 0x02, 0x09, 0x0E, 0x37, 0xDE, 0x08, 0x0E, 0x3E, 0xFE, 0x08, 0x0E, + 0x40, 0x02, 0x09, 0x0D, 0x57, 0x5E, 0x09, 0x0D, 0x43, 0x0E, 0x09, 0x0D, 0x47, 0x1E, 0x09, 0x0D, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x7E, 0xFE, 0x09, 0x13, 0x88, 0x26, 0x0A, 0x13, + 0x86, 0x1E, 0x0A, 0x13, 0x96, 0x5E, 0x0A, 0x13, 0x7C, 0xF6, 0x09, 0x12, 0x81, 0x06, 0x0A, 0x12, + 0x6E, 0xBA, 0x09, 0x12, 0x76, 0xDE, 0x09, 0x12, 0x7E, 0xFE, 0x09, 0x11, 0x95, 0x56, 0x0A, 0x11, + 0x7A, 0xEE, 0x09, 0x11, 0x82, 0x0A, 0x0A, 0x11, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x62, 0x8A, 0x19, 0x13, 0x67, 0x9E, 0x19, 0x13, 0x6A, 0xAA, 0x19, 0x13, 0x7C, 0xF6, 0x19, 0x13, + 0x69, 0xA6, 0x19, 0x12, 0x70, 0xC2, 0x19, 0x12, 0x60, 0x86, 0x19, 0x12, 0x65, 0x96, 0x19, 0x12, + 0x66, 0x9E, 0x19, 0x11, 0x72, 0xCE, 0x19, 0x11, 0x61, 0x86, 0x19, 0x11, 0x64, 0x96, 0x19, 0x11, + 0x00, 0x02, 0x18, 0x0A, 0x00, 0x02, 0x18, 0x0A, 0x4D, 0x36, 0x19, 0x13, 0x52, 0x4E, 0x19, 0x13, + 0x52, 0x4E, 0x19, 0x13, 0x64, 0x96, 0x19, 0x13, 0x53, 0x4E, 0x19, 0x12, 0x59, 0x66, 0x19, 0x12, + 0x4C, 0x36, 0x19, 0x12, 0x50, 0x46, 0x19, 0x12, 0x4F, 0x3E, 0x19, 0x11, 0x5B, 0x6E, 0x19, 0x11, + 0x4C, 0x36, 0x19, 0x11, 0x4E, 0x3E, 0x19, 0x11, 0x00, 0x02, 0x18, 0x0A, 0x00, 0x02, 0x18, 0x0A, + 0x50, 0x42, 0x19, 0x13, 0x54, 0x56, 0x19, 0x13, 0x56, 0x5E, 0x19, 0x13, 0x66, 0x9E, 0x19, 0x13, + 0x56, 0x5E, 0x19, 0x12, 0x5B, 0x6E, 0x19, 0x12, 0x4E, 0x3E, 0x19, 0x12, 0x51, 0x46, 0x19, 0x12, + 0x51, 0x46, 0x19, 0x11, 0x5D, 0x76, 0x19, 0x11, 0x4F, 0x3E, 0x19, 0x11, 0x4E, 0x3E, 0x19, 0x11, + 0x00, 0x02, 0x18, 0x0A, 0x00, 0x02, 0x18, 0x0A, 0x48, 0x26, 0x19, 0x13, 0x4F, 0x3E, 0x19, 0x13, + 0x4F, 0x42, 0x19, 0x13, 0x60, 0x86, 0x19, 0x13, 0x50, 0x46, 0x19, 0x12, 0x56, 0x5E, 0x19, 0x12, + 0x47, 0x1E, 0x19, 0x12, 0x4B, 0x2E, 0x19, 0x12, 0x4A, 0x2E, 0x19, 0x11, 0x56, 0x5E, 0x19, 0x11, + 0x47, 0x1E, 0x19, 0x11, 0x48, 0x26, 0x19, 0x11, 0x00, 0x02, 0x18, 0x0A, 0x00, 0x02, 0x18, 0x0A, + 0x36, 0xDE, 0x18, 0x10, 0x38, 0xE6, 0x18, 0x10, 0x3A, 0xEE, 0x18, 0x10, 0x47, 0x1E, 0x19, 0x10, + 0x3C, 0xF6, 0x18, 0x0F, 0x41, 0x06, 0x19, 0x0F, 0x38, 0xE6, 0x18, 0x0F, 0x3A, 0xEE, 0x18, 0x0F, + 0x38, 0xE6, 0x18, 0x0E, 0x3C, 0xF6, 0x18, 0x0E, 0x2C, 0xB6, 0x18, 0x0E, 0x37, 0xDE, 0x18, 0x0E, + 0x00, 0x02, 0x18, 0x0A, 0x00, 0x02, 0x18, 0x0A, 0x34, 0xD6, 0x18, 0x10, 0x38, 0xE6, 0x18, 0x10, + 0x3A, 0xEE, 0x18, 0x10, 0x46, 0x1A, 0x19, 0x10, 0x3C, 0xF2, 0x18, 0x0F, 0x3F, 0xFE, 0x18, 0x0F, + 0x36, 0xDA, 0x18, 0x0F, 0x38, 0xE6, 0x18, 0x0F, 0x36, 0xDE, 0x18, 0x0E, 0x3C, 0xF6, 0x18, 0x0E, + 0x31, 0xC6, 0x18, 0x0E, 0x33, 0xCE, 0x18, 0x0E, 0x00, 0x02, 0x18, 0x0A, 0x00, 0x02, 0x18, 0x0A, + 0x3F, 0xFE, 0x28, 0x10, 0x44, 0x16, 0x29, 0x10, 0x44, 0x16, 0x29, 0x10, 0x52, 0x4E, 0x29, 0x10, + 0x45, 0x16, 0x29, 0x0F, 0x4A, 0x2E, 0x29, 0x0F, 0x3D, 0xF6, 0x28, 0x0F, 0x41, 0x06, 0x29, 0x0F, + 0x40, 0x02, 0x29, 0x0E, 0x48, 0x26, 0x29, 0x0E, 0x3B, 0xEE, 0x28, 0x0E, 0x3C, 0xF6, 0x28, 0x0E, + 0x00, 0x02, 0x28, 0x0A, 0x00, 0x02, 0x28, 0x0A, 0x40, 0x06, 0x29, 0x0D, 0x47, 0x1E, 0x29, 0x0D, + 0x48, 0x26, 0x29, 0x0D, 0x55, 0x56, 0x29, 0x0D, 0x48, 0x26, 0x29, 0x0C, 0x4E, 0x3E, 0x29, 0x0C, + 0x3F, 0xFE, 0x28, 0x0C, 0x42, 0x0E, 0x29, 0x0C, 0x42, 0x0A, 0x29, 0x0B, 0x4B, 0x2E, 0x29, 0x0B, + 0x3E, 0xFE, 0x28, 0x0B, 0x3E, 0xFE, 0x28, 0x0B, 0x00, 0x02, 0x28, 0x0A, 0x00, 0x02, 0x28, 0x0A, + 0x41, 0x06, 0x29, 0x0D, 0x45, 0x16, 0x29, 0x0D, 0x46, 0x1E, 0x29, 0x0D, 0x52, 0x4E, 0x29, 0x0D, + 0x46, 0x1E, 0x29, 0x0C, 0x4B, 0x2E, 0x29, 0x0C, 0x3E, 0xFE, 0x28, 0x0C, 0x41, 0x06, 0x29, 0x0C, + 0x41, 0x06, 0x29, 0x0B, 0x48, 0x26, 0x29, 0x0B, 0x3D, 0xF6, 0x28, 0x0B, 0x3A, 0xEE, 0x28, 0x0B, + 0x00, 0x02, 0x28, 0x0A, 0x00, 0x02, 0x28, 0x0A, 0x3D, 0xF6, 0x28, 0x0D, 0x47, 0x1E, 0x29, 0x0D, + 0x47, 0x1E, 0x29, 0x0D, 0x54, 0x56, 0x29, 0x0D, 0x46, 0x1E, 0x29, 0x0C, 0x4C, 0x36, 0x29, 0x0C, + 0x3E, 0xFA, 0x28, 0x0C, 0x41, 0x06, 0x29, 0x0C, 0x40, 0x06, 0x29, 0x0B, 0x49, 0x26, 0x29, 0x0B, + 0x3D, 0xF6, 0x28, 0x0B, 0x3C, 0xF6, 0x28, 0x0B, 0x00, 0x02, 0x28, 0x0A, 0x00, 0x02, 0x28, 0x0A, + 0x33, 0xCE, 0x38, 0x0A, 0x38, 0xE6, 0x38, 0x0A, 0x38, 0xE6, 0x38, 0x0B, 0x41, 0x06, 0x39, 0x0B, + 0x37, 0xDE, 0x38, 0x0A, 0x3A, 0xEE, 0x38, 0x0A, 0x30, 0xC6, 0x38, 0x0A, 0x34, 0xD6, 0x38, 0x0A, + 0x32, 0xCE, 0x38, 0x09, 0x3A, 0xEE, 0x38, 0x09, 0x30, 0xC2, 0x38, 0x09, 0x2E, 0xBE, 0x38, 0x09, + 0x00, 0x02, 0x38, 0x0A, 0x00, 0x02, 0x38, 0x0A, 0x33, 0xCE, 0x48, 0x0A, 0x36, 0xDE, 0x48, 0x0A, + 0x36, 0xDE, 0x48, 0x0B, 0x40, 0x06, 0x49, 0x0B, 0x36, 0xDE, 0x48, 0x0A, 0x39, 0xE6, 0x48, 0x0A, + 0x2E, 0xBE, 0x48, 0x0A, 0x32, 0xCE, 0x48, 0x0A, 0x31, 0xC6, 0x48, 0x09, 0x38, 0xE6, 0x48, 0x09, + 0x2E, 0xBE, 0x48, 0x09, 0x2E, 0xBA, 0x48, 0x09, 0x00, 0x02, 0x48, 0x0A, 0x00, 0x02, 0x48, 0x0A, + 0x2E, 0xBE, 0x58, 0x0A, 0x33, 0xCE, 0x58, 0x0A, 0x33, 0xCE, 0x58, 0x0B, 0x3E, 0xFA, 0x58, 0x0B, + 0x32, 0xCE, 0x58, 0x0A, 0x36, 0xDA, 0x58, 0x0A, 0x2C, 0xB6, 0x58, 0x0A, 0x2F, 0xBE, 0x58, 0x0A, + 0x2E, 0xBE, 0x58, 0x09, 0x36, 0xDA, 0x58, 0x09, 0x2C, 0xB2, 0x58, 0x09, 0x2D, 0xB6, 0x58, 0x09, + 0x00, 0x02, 0x58, 0x0A, 0x00, 0x02, 0x58, 0x0A, 0x30, 0xC2, 0x68, 0x0A, 0x35, 0xD6, 0x68, 0x0A, + 0x35, 0xD6, 0x68, 0x0B, 0x3F, 0xFE, 0x68, 0x0B, 0x33, 0xCE, 0x68, 0x0A, 0x37, 0xDE, 0x68, 0x0A, + 0x2D, 0xB6, 0x68, 0x0A, 0x30, 0xC6, 0x68, 0x0A, 0x2F, 0xC2, 0x68, 0x09, 0x37, 0xDE, 0x68, 0x09, + 0x2C, 0xB6, 0x68, 0x09, 0x2B, 0xAE, 0x68, 0x09, 0x00, 0x02, 0x68, 0x0A, 0x00, 0x02, 0x68, 0x0A, + 0x2A, 0xAE, 0x78, 0x0C, 0x31, 0xC6, 0x78, 0x0B, 0x31, 0xC6, 0x78, 0x0B, 0x3B, 0xEE, 0x78, 0x0B, + 0x30, 0xC6, 0x78, 0x0A, 0x33, 0xCE, 0x78, 0x0A, 0x2A, 0xAE, 0x78, 0x0A, 0x2E, 0xBA, 0x78, 0x0A, + 0x2D, 0xB6, 0x78, 0x09, 0x34, 0xD6, 0x78, 0x09, 0x2A, 0xAA, 0x78, 0x09, 0x29, 0xA6, 0x78, 0x0A, + 0x00, 0x02, 0x78, 0x0A, 0x00, 0x02, 0x78, 0x0A, 0x46, 0x1E, 0x89, 0x0E, 0x4D, 0x36, 0x89, 0x0E, + 0x4D, 0x36, 0x89, 0x0E, 0x5D, 0x76, 0x89, 0x0E, 0x4E, 0x3A, 0x89, 0x0D, 0x52, 0x4A, 0x89, 0x0D, + 0x40, 0x06, 0x89, 0x0D, 0x46, 0x1E, 0x89, 0x0D, 0x46, 0x1A, 0x89, 0x0C, 0x50, 0x46, 0x89, 0x0C, + 0x42, 0x0A, 0x89, 0x0C, 0x48, 0x26, 0x89, 0x0C, 0x00, 0x02, 0x88, 0x0A, 0x00, 0x02, 0x88, 0x0A, + 0x49, 0x26, 0x89, 0x0E, 0x49, 0x26, 0x89, 0x0E, 0x49, 0x26, 0x89, 0x0E, 0x58, 0x66, 0x89, 0x0E, + 0x49, 0x26, 0x89, 0x0D, 0x4D, 0x36, 0x89, 0x0D, 0x3F, 0xFE, 0x88, 0x0D, 0x44, 0x16, 0x89, 0x0D, + 0x43, 0x0E, 0x89, 0x0C, 0x4E, 0x3E, 0x89, 0x0C, 0x40, 0x02, 0x89, 0x0C, 0x42, 0x0A, 0x89, 0x0C, + 0x00, 0x02, 0x88, 0x0A, 0x00, 0x02, 0x88, 0x0A, 0x3A, 0xEA, 0x88, 0x10, 0x3C, 0xF6, 0x88, 0x0F, + 0x3D, 0xF6, 0x88, 0x0E, 0x49, 0x26, 0x89, 0x0E, 0x3D, 0xFA, 0x88, 0x0D, 0x3F, 0x02, 0x89, 0x0D, + 0x32, 0xCE, 0x88, 0x0D, 0x38, 0xE6, 0x88, 0x0D, 0x36, 0xDE, 0x88, 0x0C, 0x40, 0x06, 0x89, 0x0C, + 0x34, 0xD6, 0x88, 0x0D, 0x38, 0xE6, 0x88, 0x0D, 0x00, 0x02, 0x88, 0x0A, 0x00, 0x02, 0x88, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x98, 0x66, 0xFA, 0x13, 0x60, 0x86, 0xF9, 0x0E, 0x3F, 0xFE, 0xE8, 0x0A, 0x4A, 0x2A, 0xE9, 0x0A, + 0x4B, 0x2E, 0xE9, 0x0A, 0x5A, 0x6E, 0xE9, 0x0A, 0x4C, 0x32, 0xE9, 0x0A, 0x50, 0x46, 0xE9, 0x0A, + 0x41, 0x06, 0xE9, 0x0A, 0x45, 0x16, 0xE9, 0x0A, 0x44, 0x16, 0xE9, 0x0A, 0x4E, 0x3E, 0xE9, 0x0A, + 0x40, 0x02, 0xE9, 0x0A, 0x3E, 0xFE, 0xE8, 0x0A, 0x00, 0x02, 0xE8, 0x0A, 0x00, 0x02, 0xE8, 0x0A, + 0x00, 0x02, 0x18, 0x0C, 0x00, 0x02, 0x18, 0x0C, 0x00, 0x02, 0x18, 0x0C, 0x00, 0x02, 0x18, 0x0C, + 0x00, 0x02, 0x18, 0x0E, 0x00, 0x02, 0x18, 0x0C, 0x00, 0x02, 0x18, 0x0C, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0xF8, 0x10, 0x00, 0x02, 0xF8, 0x12, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x40, 0xF0, 0x33, 0x21, 0x40, 0xF0, 0x33, 0x42, 0x40, 0xF0, 0x33, 0x63, 0x40, 0xF0, 0x33, + 0x84, 0x40, 0xF0, 0x33, 0xA5, 0x40, 0xF0, 0x33, 0xC6, 0xC0, 0xF1, 0x33, 0xE7, 0xC0, 0xF1, 0x33, + 0x08, 0xC1, 0xF1, 0x33, 0x29, 0xC1, 0xF1, 0x33, 0x4A, 0xC1, 0xF1, 0x33, 0x6B, 0xC1, 0xF1, 0x33, + 0x8C, 0xC1, 0xF1, 0x33, 0xAD, 0xC1, 0xF1, 0x33, 0xCE, 0xC1, 0xF1, 0x33, 0xEF, 0xC1, 0xF1, 0x33, + 0x10, 0xC2, 0xF1, 0x33, 0x31, 0xC2, 0xF1, 0x33, 0x52, 0xC2, 0xF1, 0x33, 0x73, 0xC2, 0xF1, 0x33, + 0x94, 0xC2, 0xF1, 0x73, 0xB5, 0xC2, 0xF1, 0x33, 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, + 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, + 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x38, 0x30, 0x00, 0x34, 0x2F, 0x24, 0x1F, 0x00, 0x00, 0x00, 0x00, + 0x34, 0x2C, 0x24, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x3F, 0xF0, 0x03, 0x00, 0x80, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, + 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, + 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, + 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, + 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, + 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, + 0x30, 0x30, 0x30, 0x30, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, + 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 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, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x40, 0x00, 0x40, 0x00, 0x30, 0x00, 0x49, 0x00, 0x30, 0x00, 0xA0, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x49, 0x53, 0x54, 0x56, 0x32, 0x54, 0x41, 0x47, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xDC, 0x00, 0x00, + 0x00, 0xDC, 0x00, 0x80, 0x00, 0x06, 0x00, 0x00, 0x00, 0xE2, 0x00, 0x80, 0x00, 0x0E, 0x00, 0x00, + 0x00, 0xF0, 0x00, 0x80, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x80, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x49, 0x00, 0x30, 0x00, 0xA0, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xC8, 0x57, 0x76, 0x63, 0x98, 0xBC, 0xA4, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x03, 0xDF, 0x07, 0x04, 0x0C, 0x22, 0x00, 0x49, 0x53, 0x54, 0x56, 0x32, 0x54, 0x41, 0x47 +}; + +#endif // __IST30XXC_FW_H__ \ No newline at end of file diff --git a/drivers/input/touchscreen/ist30xxc/firmware/j7mlte_fw.h b/drivers/input/touchscreen/ist30xxc/firmware/j7mlte_fw.h new file mode 100644 index 00000000..267fb105 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/firmware/j7mlte_fw.h @@ -0,0 +1,4054 @@ + +#ifndef __IST30XXC_FW_H__ +#define __IST30XXC_FW_H__ + +// Chip ID : 0x0000038C +// FW Ver : 0x02010000 +// Param Ver : 0x00000004 +// FW Download CRC : 0x44A4BC98 +// Normal CRC : 0x637657C8 + +static unsigned char ist30xxc_fw[] = { + 0x80, 0x00, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x54, 0x12, 0x00, 0x80, 0xFC, 0x00, 0x00, 0x80, + 0x04, 0x01, 0x00, 0x80, 0x50, 0x1D, 0x00, 0x80, 0x00, 0x1D, 0x00, 0x80, 0x28, 0x1D, 0x00, 0x80, + 0xD8, 0x1C, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x94, 0x1D, 0x00, 0x80, + 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0C, 0x10, 0x00, 0x27, 0x08, 0x80, 0x00, 0x80, 0x2C, 0x80, 0x08, 0x7A, 0xAB, 0x0B, 0x00, 0x00, + 0x08, 0x70, 0x00, 0x40, 0x04, 0x61, 0x99, 0x67, 0x10, 0x00, 0x91, 0x67, 0x08, 0x70, 0x0F, 0x00, + 0x11, 0x17, 0x0C, 0x70, 0x70, 0x15, 0x0C, 0x60, 0x70, 0x15, 0xC6, 0x76, 0xB2, 0x04, 0xB1, 0x07, + 0x24, 0x74, 0xF2, 0xFC, 0x08, 0x30, 0x00, 0x80, 0x04, 0x70, 0x0C, 0x40, 0x70, 0x15, 0x0C, 0x50, + 0x70, 0x15, 0x2C, 0x30, 0x60, 0x7C, 0x2F, 0x64, 0x07, 0x00, 0xC6, 0x65, 0xB2, 0x07, 0x2F, 0x23, + 0x07, 0x00, 0x30, 0x22, 0x24, 0x74, 0xB1, 0x26, 0xF2, 0xF7, 0x0C, 0x70, 0x70, 0x15, 0x0C, 0x60, + 0xC4, 0x15, 0xC6, 0x76, 0xB2, 0x04, 0xB1, 0x07, 0x24, 0x74, 0xF2, 0xFC, 0x2B, 0x0F, 0x00, 0x00, + 0x2B, 0xD0, 0x03, 0x00, 0xB9, 0x20, 0x88, 0x27, 0x04, 0x22, 0xF2, 0x0D, 0xB9, 0x20, 0x88, 0x27, + 0x04, 0x23, 0xF2, 0x09, 0xB9, 0x20, 0x88, 0x27, 0x04, 0x24, 0xF2, 0x05, 0xB9, 0x20, 0x88, 0x27, + 0x04, 0x21, 0xF2, 0x01, 0xB9, 0x10, 0x84, 0x27, 0xB9, 0x30, 0x8C, 0x27, 0x08, 0x30, 0x00, 0x50, + 0xB9, 0x03, 0x00, 0x10, 0xD9, 0x40, 0x90, 0x27, 0xD9, 0x80, 0xA0, 0x27, 0xD9, 0xC0, 0xB0, 0x27, + 0x01, 0x40, 0x01, 0x51, 0xC9, 0x40, 0xC0, 0x27, 0x99, 0x20, 0x80, 0x27, 0x08, 0x20, 0x01, 0x00, + 0xB1, 0x23, 0x98, 0x40, 0x80, 0x27, 0x92, 0xFE, 0x09, 0x00, 0x01, 0x00, 0x04, 0x23, 0xB9, 0x23, + 0x00, 0x10, 0xF2, 0x01, 0x48, 0x40, 0xC0, 0x27, 0x11, 0x15, 0x11, 0x04, 0x58, 0xC0, 0xB0, 0x27, + 0x58, 0x80, 0xA0, 0x27, 0x58, 0x40, 0x90, 0x27, 0x48, 0x20, 0x88, 0x27, 0x38, 0x10, 0x84, 0x27, + 0x61, 0x00, 0x00, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x8B, 0x4C, 0x00, 0x00, + 0xCB, 0x52, 0x00, 0x00, 0xEB, 0x53, 0x00, 0x00, 0x4B, 0x25, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x8B, 0x59, 0x00, 0x00, 0xCB, 0x5B, 0x00, 0x00, + 0x0B, 0x5B, 0x00, 0x00, 0x8B, 0x5C, 0x00, 0x00, 0x6B, 0x5E, 0x00, 0x00, 0x2B, 0x5F, 0x00, 0x00, + 0x4B, 0x61, 0x00, 0x00, 0x6B, 0x6F, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x04, 0x21, 0xB1, 0xF1, 0xCB, 0x61, 0x00, 0x00, 0xCB, 0x6A, 0x00, 0x00, 0x0B, 0x4F, + 0x00, 0x00, 0xAB, 0x69, 0x00, 0x00, 0x04, 0x20, 0x2B, 0x7A, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0x04, 0x2A, 0xD1, 0xC1, 0xEB, 0x49, 0x00, 0x00, + 0x0B, 0x4C, 0x00, 0x00, 0xCB, 0x0B, 0x00, 0x00, 0xAB, 0x58, 0x00, 0x00, 0xAB, 0x0C, 0x00, 0x00, + 0x8B, 0x36, 0x00, 0x00, 0xCB, 0x94, 0x00, 0x00, 0xEB, 0x12, 0x00, 0x00, 0x0B, 0x0E, 0x00, 0x00, + 0x28, 0x20, 0x88, 0x15, 0x6B, 0x14, 0x00, 0x00, 0xEB, 0x93, 0x00, 0x00, 0x98, 0xC0, 0xB5, 0x15, + 0x92, 0xF8, 0x4B, 0x91, 0x00, 0x00, 0x04, 0x21, 0xCB, 0x61, 0x00, 0x00, 0xEB, 0x82, 0x00, 0x00, + 0x6B, 0x88, 0x00, 0x00, 0x06, 0x2C, 0xCB, 0x61, 0x00, 0x00, 0x8B, 0x90, 0x00, 0x00, 0xCB, 0x91, + 0x00, 0x00, 0x2B, 0x7C, 0x00, 0x00, 0xF2, 0xE5, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x04, 0x30, + 0xB9, 0x37, 0x08, 0x30, 0xB9, 0x47, 0x00, 0x30, 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x70, 0xB3, 0x15, + 0x82, 0x08, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x00, 0x30, 0x64, 0x71, 0xB9, 0x76, 0x00, 0x30, + 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x70, 0xB3, 0x15, 0x82, 0x09, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, + 0x00, 0x30, 0x14, 0x52, 0x56, 0x75, 0xB9, 0x76, 0x00, 0x30, 0xE1, 0xF0, 0x98, 0x70, 0xB3, 0x15, + 0x82, 0x05, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x08, 0x30, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x30, + 0x38, 0x76, 0x28, 0x00, 0xD4, 0x74, 0x92, 0xFD, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0x00, 0x30, + 0x38, 0x76, 0x40, 0x01, 0x23, 0x77, 0xB9, 0x76, 0x40, 0x01, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x30, + 0x38, 0x27, 0x40, 0x01, 0xF7, 0x2F, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, 0xEB, 0x15, 0x00, 0x00, + 0x04, 0x70, 0xC6, 0x27, 0x82, 0x0D, 0xEB, 0x14, 0x00, 0x00, 0x08, 0x70, 0x00, 0x30, 0x08, 0x60, + 0x00, 0x80, 0xB9, 0x67, 0x40, 0x01, 0x38, 0x77, 0x3C, 0x01, 0xB9, 0x70, 0x74, 0x15, 0x30, 0xF1, + 0x06, 0x27, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, + 0x06, 0xE2, 0x77, 0xE8, 0xCC, 0xE0, 0x14, 0x00, 0x0C, 0xD0, 0xFF, 0xFF, 0xB1, 0xB1, 0x56, 0xD2, + 0x82, 0x45, 0xCC, 0xE0, 0x14, 0x00, 0xD2, 0x18, 0xCC, 0xE0, 0x10, 0x00, 0x82, 0x36, 0xCC, 0xE0, + 0x10, 0x00, 0xD2, 0x08, 0xC4, 0xE1, 0x82, 0x2E, 0xC4, 0xE2, 0x92, 0x4A, 0x99, 0xD0, 0xB5, 0x15, + 0xF2, 0x65, 0xCC, 0xE0, 0x12, 0x00, 0x82, 0x2C, 0xCC, 0xE0, 0x12, 0x00, 0xD2, 0x2C, 0x99, 0xD0, + 0xB3, 0x15, 0xFA, 0x8D, 0x00, 0x00, 0xCC, 0xE0, 0x22, 0x00, 0x82, 0x31, 0xCC, 0xE0, 0x22, 0x00, + 0xD2, 0x0D, 0xCC, 0xE0, 0x20, 0x00, 0x82, 0x25, 0xCC, 0xE0, 0x20, 0x00, 0xD2, 0x25, 0xCC, 0xE0, + 0x15, 0x00, 0x92, 0x2E, 0x99, 0xD0, 0xAF, 0x15, 0xF2, 0x7A, 0xCC, 0xE0, 0x80, 0x00, 0x82, 0x25, + 0xCC, 0xE0, 0x81, 0x00, 0x82, 0x1F, 0xCC, 0xE0, 0x23, 0x00, 0x92, 0x22, 0xA9, 0xD0, 0xA4, 0x15, + 0xF2, 0x6E, 0x99, 0xE0, 0xB6, 0x15, 0xF2, 0x6B, 0x99, 0xD0, 0xB4, 0x15, 0xF2, 0x68, 0x99, 0xD0, + 0xB2, 0x15, 0xF2, 0x65, 0x99, 0xD0, 0xB1, 0x15, 0xF2, 0x62, 0x99, 0xD0, 0xB0, 0x15, 0xF2, 0x5F, + 0xA9, 0xD0, 0xA8, 0x15, 0xF2, 0x5C, 0xA9, 0xD0, 0xAA, 0x15, 0xF2, 0x59, 0xA9, 0xD0, 0xA6, 0x15, + 0xF2, 0x56, 0x99, 0xD0, 0xAD, 0x15, 0xF2, 0x53, 0x99, 0xD0, 0xAC, 0x15, 0xF2, 0x4E, 0xCC, 0xE0, + 0x32, 0x00, 0xD2, 0x18, 0xCC, 0xE0, 0x31, 0x00, 0xB2, 0x2E, 0xC4, 0xE2, 0x82, 0x17, 0xCC, 0xE0, + 0x30, 0x00, 0x92, 0x45, 0xAB, 0x13, 0x00, 0x00, 0x04, 0x20, 0x6B, 0xE5, 0x00, 0x00, 0x0C, 0xB0, + 0x40, 0x01, 0x08, 0xE0, 0x00, 0x30, 0x08, 0xD0, 0x30, 0x00, 0x06, 0xCE, 0x26, 0xBE, 0x24, 0xD1, + 0xF2, 0x31, 0xCC, 0xE0, 0x80, 0x00, 0x82, 0x31, 0xF2, 0x32, 0xAB, 0xD6, 0x00, 0x00, 0xC4, 0xD0, + 0x08, 0xE0, 0x00, 0x40, 0x82, 0x09, 0xAB, 0x13, 0x00, 0x00, 0x38, 0x7E, 0x54, 0x10, 0xB9, 0x70, + 0x70, 0x15, 0x14, 0x71, 0xF2, 0x05, 0xEB, 0x12, 0x00, 0x00, 0x38, 0x70, 0x70, 0x15, 0xB9, 0x7E, + 0x54, 0x10, 0xF2, 0x1D, 0xAB, 0x13, 0x00, 0x00, 0x04, 0x20, 0x6B, 0xE5, 0x00, 0x00, 0x06, 0x2E, + 0x0B, 0x18, 0x01, 0x00, 0xF2, 0x14, 0xB8, 0x7E, 0x40, 0x01, 0x32, 0xFE, 0x38, 0x7E, 0x28, 0x00, + 0xD4, 0x74, 0x92, 0xFD, 0xB1, 0x6B, 0x38, 0x7C, 0x3C, 0x01, 0xC6, 0x7D, 0x92, 0xF5, 0x04, 0x74, + 0xF1, 0x70, 0x08, 0x60, 0x00, 0x80, 0xF2, 0xF0, 0x6B, 0x6C, 0x00, 0x00, 0x58, 0xC1, 0x04, 0x00, + 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x08, 0xE0, + 0x00, 0x30, 0x0C, 0xD0, 0x00, 0x01, 0x26, 0xDE, 0xEB, 0x14, 0x00, 0x00, 0x06, 0x2D, 0x0C, 0x30, + 0x40, 0x00, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x38, 0x7E, 0x28, 0x00, 0xD4, 0x72, 0x82, 0x05, + 0x04, 0x72, 0xB9, 0x7E, 0x28, 0x00, 0xF2, 0xF1, 0x38, 0x7E, 0x40, 0x01, 0xB9, 0x7E, 0x40, 0x01, + 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x34, 0x18, 0x0C, 0x20, 0x00, 0x00, 0x0C, 0x30, + 0x80, 0x00, 0xC1, 0xE1, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x06, 0x2E, 0x0C, 0x20, 0x00, 0x27, + 0x0C, 0x30, 0x80, 0x00, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, + 0x00, 0xFA, 0x38, 0x67, 0xF8, 0x01, 0x0C, 0xE0, 0x00, 0x27, 0xB9, 0x60, 0x00, 0x00, 0x38, 0x67, + 0xFC, 0x01, 0xB9, 0x60, 0x04, 0x00, 0x08, 0x60, 0x00, 0x80, 0x38, 0x66, 0x04, 0xDC, 0xB9, 0x60, + 0x08, 0x00, 0x38, 0x67, 0xF0, 0x01, 0xB9, 0x60, 0x0C, 0x00, 0x38, 0x67, 0xF4, 0x01, 0x38, 0x77, + 0xCC, 0x01, 0xB9, 0x60, 0x10, 0x00, 0xB9, 0x70, 0x1C, 0x00, 0x08, 0x70, 0x00, 0x40, 0x38, 0x77, + 0x10, 0x20, 0xB9, 0xE0, 0x70, 0x00, 0x08, 0x60, 0x00, 0x80, 0xF7, 0x70, 0xB9, 0x70, 0x20, 0x00, + 0x08, 0x70, 0x80, 0x04, 0x2C, 0x70, 0xFF, 0x07, 0xB9, 0x70, 0x40, 0x00, 0x08, 0x70, 0x0E, 0x00, + 0x2C, 0x70, 0x16, 0x00, 0xB9, 0x70, 0x44, 0x00, 0x08, 0x70, 0x02, 0x01, 0x2C, 0x70, 0x14, 0x0C, + 0xB9, 0x70, 0x48, 0x00, 0x08, 0x70, 0x14, 0x0D, 0x2C, 0x70, 0xFF, 0xFF, 0xB9, 0x70, 0x4C, 0x00, + 0x14, 0x71, 0xB9, 0x70, 0x50, 0x00, 0x08, 0x70, 0x0C, 0x00, 0x2C, 0x70, 0x14, 0x00, 0xB9, 0x70, + 0x54, 0x00, 0x08, 0x70, 0x15, 0x01, 0x2C, 0x70, 0x00, 0xFF, 0xB9, 0x70, 0x58, 0x00, 0x04, 0x72, + 0xB9, 0x70, 0x60, 0x00, 0x08, 0x70, 0x08, 0x07, 0x2C, 0x70, 0x08, 0x07, 0x2C, 0x60, 0x7C, 0xDE, + 0xB9, 0x70, 0x64, 0x00, 0x28, 0x76, 0x28, 0x00, 0x28, 0x66, 0x22, 0x00, 0xB9, 0x00, 0x5C, 0x00, + 0x57, 0x78, 0x66, 0x76, 0xB9, 0x70, 0x68, 0x00, 0x08, 0x70, 0x00, 0x30, 0x2C, 0x70, 0x00, 0x49, + 0xB9, 0x70, 0x74, 0x00, 0x0C, 0x70, 0x00, 0x10, 0xB9, 0x70, 0x78, 0x00, 0x4B, 0x23, 0x00, 0x00, + 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x0C, 0xE0, + 0x00, 0x10, 0x18, 0x6E, 0x52, 0x05, 0x04, 0x70, 0xC6, 0x67, 0x06, 0xD2, 0x82, 0x19, 0x0C, 0xF0, + 0x54, 0x01, 0xF1, 0xF0, 0x38, 0x7E, 0x38, 0x05, 0x0C, 0x50, 0x50, 0x05, 0xB1, 0x7D, 0x0C, 0x70, + 0x3C, 0x15, 0x26, 0x5E, 0x04, 0x61, 0xB0, 0x37, 0x82, 0x06, 0x06, 0x46, 0x57, 0x41, 0x26, 0x4D, + 0xB1, 0x34, 0x24, 0x61, 0x24, 0x74, 0xC6, 0x75, 0x92, 0xF7, 0x18, 0x7E, 0x52, 0x05, 0x50, 0xC1, + 0x06, 0x27, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x04, 0x70, 0x06, 0x67, 0x3F, 0x57, 0x03, 0x00, + 0xC4, 0x50, 0x02, 0x08, 0x2F, 0x57, 0x02, 0x00, 0x10, 0x55, 0x24, 0x71, 0x26, 0x65, 0x13, 0x66, + 0xF2, 0xF6, 0x06, 0x26, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x30, 0xE2, + 0x08, 0x70, 0xFF, 0x00, 0x2C, 0x70, 0xFF, 0xFF, 0x56, 0xE7, 0x6C, 0xE0, 0x00, 0x0C, 0xB1, 0xE2, + 0x57, 0x31, 0x06, 0xD2, 0x4B, 0x30, 0x00, 0x00, 0x57, 0x2C, 0x66, 0x2E, 0xB1, 0x2D, 0x50, 0xC1, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x54, 0x00, 0xD9, 0xC1, 0x44, 0x00, + 0x0B, 0x3C, 0x00, 0x00, 0x06, 0x21, 0x0C, 0x30, 0x40, 0x00, 0xCB, 0x2D, 0x00, 0x00, 0x86, 0xD2, + 0x82, 0x29, 0x06, 0x21, 0x06, 0x3D, 0x4B, 0x31, 0x00, 0x00, 0x98, 0x70, 0xAE, 0x15, 0x82, 0x0A, + 0x0C, 0x20, 0x40, 0x00, 0x26, 0x21, 0x0C, 0x30, 0x00, 0x27, 0x99, 0x01, 0x40, 0x00, 0x0B, 0x41, + 0x00, 0x00, 0x08, 0xE0, 0x00, 0x30, 0x0C, 0xC0, 0x04, 0x01, 0x26, 0xCE, 0xEB, 0x14, 0x00, 0x00, + 0x06, 0x2C, 0x06, 0x31, 0x0C, 0x40, 0x2C, 0x00, 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x38, 0x7E, + 0x28, 0x00, 0xD4, 0x72, 0x82, 0x05, 0x04, 0x72, 0xB9, 0x7E, 0x28, 0x00, 0xF2, 0xF0, 0x6B, 0x15, + 0x00, 0x00, 0x06, 0x2D, 0x58, 0xC1, 0x44, 0x00, 0x2C, 0x10, 0x54, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x0C, 0x50, 0x00, 0x00, 0x0C, 0x70, 0x78, 0x00, 0x34, 0x54, 0x04, 0x60, 0x30, 0x47, 0x34, 0x74, + 0xC6, 0x75, 0x26, 0x64, 0x92, 0xFC, 0xB9, 0x60, 0x7C, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x30, 0x00, + 0xD9, 0x81, 0x10, 0x00, 0xD9, 0xC1, 0x20, 0x00, 0x30, 0x22, 0x30, 0xB3, 0x08, 0xC0, 0x00, 0x80, + 0x08, 0x80, 0x00, 0x80, 0x06, 0xA4, 0x06, 0x95, 0xB1, 0x21, 0x04, 0xD0, 0x2C, 0xC0, 0x1C, 0x7A, + 0x2C, 0x80, 0x08, 0x7A, 0x2F, 0x7C, 0x0D, 0x00, 0x20, 0xE7, 0x30, 0x21, 0x36, 0x2E, 0x06, 0x32, + 0xAB, 0x97, 0x00, 0x00, 0x06, 0x42, 0x04, 0x70, 0x2F, 0x58, 0x07, 0x00, 0x20, 0x55, 0xB9, 0x41, + 0x04, 0x00, 0xB9, 0x71, 0x0C, 0x00, 0x3F, 0x25, 0x0B, 0x00, 0x06, 0x32, 0xB9, 0x51, 0x08, 0x00, + 0xAB, 0x97, 0x00, 0x00, 0x38, 0x41, 0x04, 0x00, 0x38, 0x51, 0x08, 0x00, 0x38, 0x71, 0x0C, 0x00, + 0x26, 0x24, 0xCC, 0x20, 0x0F, 0x21, 0xD2, 0x05, 0xB1, 0xEA, 0xB1, 0x59, 0x04, 0x21, 0xF2, 0x09, + 0x24, 0x72, 0xCC, 0x70, 0x14, 0x00, 0x92, 0xE1, 0x24, 0xD2, 0xC4, 0xDC, 0x92, 0xD4, 0x14, 0x21, + 0x58, 0xC1, 0x20, 0x00, 0x58, 0x81, 0x10, 0x00, 0x2C, 0x10, 0x30, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x18, 0x70, 0xAC, 0x15, 0x3C, 0x10, 0x20, 0x00, 0xCC, 0x70, 0x80, 0x00, 0xD9, 0xC1, 0x10, 0x00, + 0x92, 0x42, 0x0C, 0xD0, 0x00, 0x10, 0x18, 0x7D, 0x52, 0x05, 0xC4, 0x72, 0x92, 0x3C, 0x38, 0xCD, + 0x3C, 0x05, 0x0C, 0x70, 0xFF, 0x0F, 0x56, 0x7C, 0xB9, 0x71, 0x08, 0x00, 0x06, 0x7C, 0x77, 0x76, + 0x04, 0x2C, 0x04, 0x38, 0x04, 0x44, 0x5C, 0x70, 0xFF, 0x0F, 0x26, 0x21, 0x26, 0x31, 0x26, 0x41, + 0x06, 0x51, 0xB9, 0x71, 0x0C, 0x00, 0x6B, 0x37, 0x00, 0x00, 0x14, 0x71, 0xC6, 0x27, 0x82, 0x23, + 0x38, 0x21, 0x04, 0x00, 0x38, 0x71, 0x0C, 0x00, 0x26, 0x22, 0x26, 0x27, 0x04, 0x33, 0x0B, 0x9B, + 0x00, 0x00, 0x08, 0xE0, 0x00, 0xFF, 0x5C, 0x20, 0xFF, 0x0F, 0x2C, 0xE0, 0xFF, 0x0F, 0x57, 0x26, + 0x56, 0xEC, 0x66, 0xE2, 0x30, 0x21, 0x38, 0x71, 0x08, 0x00, 0x26, 0x22, 0x26, 0x27, 0x04, 0x33, + 0x0B, 0x9B, 0x00, 0x00, 0x1C, 0x70, 0x00, 0x10, 0x5C, 0x20, 0xFF, 0x0F, 0x56, 0xE7, 0x66, 0xE2, + 0xB9, 0xED, 0x3C, 0x05, 0x58, 0xC1, 0x10, 0x00, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, 0xD1, 0x81, 0x0C, 0x60, 0x00, 0x10, 0x98, 0xD6, + 0x07, 0x05, 0x06, 0xC2, 0x06, 0xE3, 0x06, 0xB6, 0x92, 0x40, 0x0C, 0x80, 0x1D, 0x13, 0x06, 0xA6, + 0x0C, 0x90, 0x80, 0x02, 0x18, 0x7B, 0x27, 0x03, 0xC6, 0x7D, 0xC2, 0x03, 0xC4, 0xD2, 0x92, 0x03, + 0x91, 0xDC, 0xF2, 0x56, 0x60, 0x78, 0x0C, 0x30, 0x64, 0x00, 0x34, 0x71, 0x57, 0x72, 0x26, 0x7A, + 0x18, 0x67, 0x81, 0x02, 0x18, 0x77, 0x80, 0x02, 0x26, 0x66, 0x06, 0x56, 0xD7, 0x51, 0x3F, 0x66, + 0x05, 0x00, 0x26, 0x76, 0x23, 0x77, 0x26, 0x77, 0x26, 0x79, 0x70, 0x77, 0x26, 0x77, 0x06, 0x67, + 0x57, 0x61, 0x26, 0x76, 0x06, 0x27, 0xD7, 0x21, 0x36, 0x27, 0x0B, 0x9B, 0x00, 0x00, 0x0C, 0x70, + 0x80, 0x02, 0x26, 0x72, 0xCC, 0x70, 0x09, 0x06, 0xD2, 0x03, 0xB1, 0x7E, 0xF2, 0x09, 0x3C, 0x20, + 0x89, 0x03, 0x04, 0x33, 0x0B, 0x9B, 0x00, 0x00, 0x2C, 0x20, 0x09, 0x06, 0xB1, 0x2E, 0x24, 0xD1, + 0x24, 0xE4, 0x13, 0xDD, 0x24, 0x81, 0xF2, 0xC7, 0x28, 0x26, 0x0C, 0x00, 0x1C, 0x60, 0x91, 0x01, + 0x26, 0x62, 0xCC, 0x60, 0x6B, 0x07, 0xD2, 0x0F, 0x0C, 0xD0, 0xFC, 0x08, 0x3F, 0x22, 0x0D, 0x00, + 0x06, 0x32, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x6C, 0x07, 0x0B, 0x9B, 0x00, 0x00, 0x3F, 0x22, + 0x0D, 0x00, 0xF2, 0x0B, 0xCC, 0x20, 0xFC, 0x08, 0xC2, 0x08, 0x3C, 0x20, 0xFC, 0x08, 0x04, 0x33, + 0x0B, 0x9B, 0x00, 0x00, 0x2C, 0x20, 0xFC, 0x08, 0x04, 0x61, 0x91, 0x6C, 0xB1, 0x2E, 0x58, 0xC1, + 0x10, 0x00, 0x50, 0x81, 0x04, 0x20, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x70, + 0x64, 0x00, 0xB1, 0x71, 0x30, 0x71, 0x14, 0x61, 0xC4, 0x70, 0x26, 0x67, 0xB1, 0x61, 0x92, 0xFB, + 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x70, 0x06, 0x01, 0xB1, 0x71, 0x30, 0x71, 0x14, 0x61, + 0xC4, 0x70, 0x26, 0x67, 0xB1, 0x61, 0x92, 0xFB, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x1C, 0x26, 0x22, + 0xC9, 0xE1, 0x04, 0x00, 0x06, 0xE2, 0xB1, 0x01, 0x57, 0xE1, 0xB1, 0x01, 0x26, 0xE2, 0x30, 0x71, + 0xC6, 0x7E, 0xB2, 0x07, 0x2B, 0x49, 0x00, 0x00, 0x30, 0x71, 0x24, 0x71, 0xB1, 0x71, 0xF2, 0xF8, + 0x48, 0xE1, 0x04, 0x00, 0x24, 0x1C, 0xE1, 0xF0, 0xF7, 0x40, 0x04, 0x70, 0xC6, 0x74, 0x82, 0x07, + 0x2F, 0x67, 0x07, 0x00, 0x26, 0x62, 0xA1, 0x36, 0x24, 0x71, 0xF2, 0xF9, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x04, 0x20, 0xB1, 0xF1, 0x4B, 0xD7, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x08, 0x60, 0x00, 0x00, 0x08, 0x70, 0x00, 0x00, 0x2C, 0x60, 0x80, 0x00, 0x2C, 0x70, 0xCC, 0x01, + 0x36, 0x76, 0xC4, 0x70, 0x34, 0x14, 0xB1, 0xF1, 0x32, 0x02, 0x24, 0x73, 0x06, 0x47, 0x08, 0x50, + 0x00, 0x80, 0x67, 0x41, 0x04, 0x70, 0x2C, 0x50, 0x28, 0x7A, 0x14, 0x21, 0xC6, 0x74, 0x04, 0x34, + 0x26, 0x36, 0x32, 0x05, 0x30, 0xF5, 0x24, 0x54, 0xB1, 0xF6, 0xF2, 0x02, 0xB1, 0x26, 0x24, 0x71, + 0xCC, 0x70, 0x80, 0x00, 0x82, 0x03, 0x06, 0x63, 0xF2, 0xF2, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x28, 0x60, 0xA8, 0x15, 0xCC, 0x60, 0xFF, 0xFF, 0x92, 0x05, 0x0C, 0x60, 0xC8, 0x32, 0xA9, 0x60, + 0xA8, 0x15, 0x28, 0x60, 0xAA, 0x15, 0xCC, 0x60, 0xFF, 0xFF, 0x92, 0x05, 0x0C, 0x60, 0xC8, 0x32, + 0xA9, 0x60, 0xAA, 0x15, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x50, 0x00, 0x80, 0x34, 0x14, 0x08, 0x70, + 0x00, 0x80, 0x2C, 0x50, 0x0C, 0xDC, 0xB1, 0xF1, 0x2C, 0x70, 0x42, 0xDC, 0x0C, 0x60, 0xA0, 0x15, + 0x2C, 0x50, 0x31, 0x00, 0x14, 0x21, 0x10, 0x47, 0xCC, 0x40, 0xFF, 0x00, 0x82, 0x0E, 0x18, 0x37, + 0x05, 0x00, 0xCC, 0x30, 0xFF, 0x00, 0x82, 0x09, 0x26, 0x44, 0x06, 0xF4, 0xD7, 0xF1, 0x3F, 0x44, + 0x0F, 0x00, 0x26, 0x34, 0xA1, 0x36, 0xF2, 0x02, 0xA1, 0x26, 0x34, 0x71, 0xC6, 0x75, 0x34, 0x62, + 0x92, 0xEB, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x20, 0x00, 0x10, 0x04, 0x30, + 0x0C, 0x40, 0x70, 0x05, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x4B, 0x50, 0x00, 0x00, + 0xEB, 0x2C, 0x01, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x60, 0xF4, 0x01, + 0xB9, 0x60, 0x88, 0x15, 0x99, 0x00, 0xBF, 0x15, 0x14, 0x61, 0x99, 0x60, 0xBE, 0x15, 0xB9, 0x00, + 0x84, 0x15, 0xB9, 0x00, 0x80, 0x15, 0x99, 0x00, 0xBD, 0x15, 0xB9, 0x00, 0x7C, 0x15, 0xB9, 0x00, + 0x78, 0x15, 0x99, 0x00, 0xBC, 0x15, 0x04, 0x63, 0x99, 0x60, 0xBB, 0x15, 0x99, 0x00, 0xB6, 0x15, + 0x99, 0x00, 0xB5, 0x15, 0x04, 0x71, 0x99, 0x70, 0xB4, 0x15, 0x08, 0x60, 0x00, 0x80, 0x2C, 0x60, + 0x00, 0xDC, 0x18, 0x46, 0x09, 0x00, 0x99, 0x40, 0xB3, 0x15, 0x99, 0x00, 0xB2, 0x15, 0x99, 0x70, + 0xB1, 0x15, 0x99, 0x00, 0xB0, 0x15, 0x14, 0x51, 0xA9, 0x50, 0xAA, 0x15, 0xA9, 0x50, 0xA8, 0x15, + 0x18, 0x56, 0x0A, 0x00, 0x99, 0x50, 0xAF, 0x15, 0xA9, 0x00, 0xA6, 0x15, 0xA9, 0x00, 0xA4, 0x15, + 0x99, 0x00, 0xAE, 0x15, 0x99, 0x00, 0xAD, 0x15, 0x99, 0x00, 0xAC, 0x15, 0x99, 0x70, 0xBA, 0x15, + 0x99, 0x00, 0xB9, 0x15, 0x99, 0x70, 0xB8, 0x15, 0x99, 0x00, 0xB7, 0x15, 0xB9, 0x00, 0xFC, 0x17, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x4B, 0xBC, 0x00, 0x00, 0x0C, 0x60, 0x15, 0x00, + 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x04, 0x70, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0xB1, 0xF1, 0x8B, 0xE0, 0x00, 0x00, 0x04, 0x31, 0x0C, 0x20, 0x20, 0x00, 0x2B, 0xDF, + 0x00, 0x00, 0x0C, 0x20, 0xFF, 0x00, 0xEB, 0xDC, 0x00, 0x00, 0x04, 0x24, 0x04, 0x31, 0xAB, 0xD9, + 0x00, 0x00, 0x04, 0x21, 0xCB, 0xD5, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0xB1, 0xF1, 0x0B, 0xD8, 0x00, 0x00, 0x04, 0x20, 0x2B, 0xE4, 0x00, 0x00, 0x0B, 0xD5, + 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0x04, 0x21, 0xB1, 0xF1, 0xCB, 0xE1, + 0x00, 0x00, 0x0C, 0x20, 0x10, 0x00, 0x4B, 0xE1, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x28, 0xC0, 0x88, 0x15, 0x08, 0xE0, 0x00, 0x40, 0x0C, 0x20, + 0x40, 0x00, 0x38, 0xDE, 0x54, 0x10, 0x0B, 0xDB, 0x00, 0x00, 0x06, 0x3C, 0x0C, 0x20, 0xFF, 0xFF, + 0x04, 0x4A, 0x4B, 0x12, 0x00, 0x00, 0x04, 0x28, 0xB9, 0xDE, 0x54, 0x10, 0x04, 0x30, 0x0B, 0xE6, + 0x00, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, + 0x4B, 0xE2, 0x00, 0x00, 0x04, 0x25, 0x04, 0x31, 0x0B, 0xE6, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x20, 0x00, 0x01, 0xB1, 0xF1, 0x0B, 0xDB, 0x00, 0x00, + 0x0C, 0x20, 0x80, 0x00, 0x0B, 0xDB, 0x00, 0x00, 0x04, 0x20, 0x06, 0x52, 0x0C, 0x30, 0x27, 0x00, + 0x0C, 0x40, 0xFF, 0xFF, 0x0C, 0x60, 0x01, 0x02, 0x2B, 0xEE, 0x00, 0x00, 0x04, 0x21, 0x0C, 0x30, + 0x8F, 0x01, 0x0C, 0x40, 0xFF, 0xFF, 0x04, 0x50, 0x0C, 0x60, 0x01, 0x02, 0x2B, 0xEE, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x04, 0x21, 0xB1, 0xF1, 0x6B, 0xE5, + 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0xC4, 0x20, 0x34, 0x14, 0xB1, 0xF1, 0x82, 0x09, + 0x0C, 0x20, 0x00, 0x60, 0x0B, 0xDB, 0x00, 0x00, 0x04, 0x21, 0x6B, 0xB5, 0x00, 0x00, 0xF2, 0x07, + 0x6B, 0xB5, 0x00, 0x00, 0x0C, 0x20, 0x00, 0x60, 0xEB, 0xDB, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x08, 0x60, 0x00, 0x40, 0x38, 0xE6, + 0x70, 0x60, 0x06, 0x72, 0x23, 0xEE, 0xCC, 0xE0, 0x00, 0xC9, 0x06, 0xC3, 0xC2, 0x05, 0x08, 0x60, + 0x04, 0x00, 0x66, 0xE6, 0xF7, 0xE1, 0x06, 0x37, 0x06, 0x2E, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, + 0xA0, 0x0F, 0x0B, 0x9B, 0x00, 0x00, 0x24, 0x25, 0x04, 0x3A, 0x0B, 0x9B, 0x00, 0x00, 0x08, 0x70, + 0x00, 0x40, 0x38, 0x77, 0xCC, 0x71, 0x06, 0xD2, 0x77, 0x7C, 0x24, 0x72, 0xC6, 0x27, 0xB2, 0x02, + 0x06, 0xD7, 0xC4, 0xC0, 0x82, 0x18, 0x06, 0x7E, 0xD7, 0x71, 0x2F, 0x2E, 0x0E, 0x00, 0x26, 0x27, + 0x06, 0x3D, 0x0B, 0x9B, 0x00, 0x00, 0x3C, 0xE0, 0xB0, 0x9A, 0xCC, 0xE0, 0x20, 0x03, 0x04, 0x71, + 0xD2, 0x02, 0x04, 0x70, 0xD7, 0x7F, 0x66, 0x72, 0x0C, 0x60, 0x00, 0x00, 0xB9, 0x76, 0x3C, 0x00, + 0x8B, 0x36, 0x00, 0x00, 0x06, 0x2D, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x38, 0x70, 0x94, 0x15, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x38, 0xE7, 0x04, 0x00, 0x18, 0x27, + 0x05, 0x00, 0x04, 0x30, 0x0C, 0xC0, 0xFF, 0x00, 0x2B, 0x63, 0x00, 0x00, 0x56, 0xCE, 0x06, 0xD2, + 0x04, 0x30, 0x06, 0x2C, 0x2B, 0x63, 0x00, 0x00, 0x08, 0x70, 0xFF, 0xFF, 0x56, 0x7E, 0x57, 0xD4, + 0x66, 0x72, 0x66, 0x7D, 0x08, 0x60, 0x00, 0x40, 0xB9, 0x76, 0x6C, 0x72, 0x50, 0xC1, 0x2C, 0x10, + 0x10, 0x00, 0xE1, 0xF0, 0x38, 0x70, 0x94, 0x15, 0x34, 0x14, 0xB1, 0xF1, 0x18, 0x27, 0x08, 0x00, + 0x04, 0x31, 0x2B, 0x63, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x18, 0x70, 0x8B, 0x67, + 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x28, 0x20, 0xA6, 0x15, 0x34, 0x18, 0xD4, 0x21, + 0xC1, 0xE1, 0x82, 0x0A, 0x04, 0x21, 0x2B, 0x15, 0x03, 0x00, 0x18, 0x60, 0xBB, 0x15, 0x1C, 0x70, + 0x80, 0x00, 0x66, 0x76, 0xF2, 0x07, 0x2B, 0x15, 0x03, 0x00, 0x18, 0x70, 0xBB, 0x15, 0x5C, 0x70, + 0x7F, 0x00, 0x99, 0x70, 0xBB, 0x15, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x34, 0x14, 0x04, 0x21, + 0xB1, 0xF1, 0x2B, 0xE4, 0x00, 0x00, 0x98, 0x70, 0xAC, 0x15, 0x82, 0x25, 0x5C, 0x70, 0xF0, 0x00, + 0xCC, 0x70, 0x80, 0x00, 0x82, 0x0A, 0xCC, 0x70, 0xC0, 0x00, 0x82, 0x1A, 0xCC, 0x70, 0x40, 0x00, + 0x92, 0x1A, 0x99, 0x00, 0xB3, 0x15, 0xF2, 0x17, 0x04, 0x71, 0x99, 0x70, 0xAE, 0x15, 0x99, 0x70, + 0xB0, 0x15, 0x99, 0x00, 0xB1, 0x15, 0x04, 0x20, 0x99, 0x00, 0xAD, 0x15, 0x2B, 0x15, 0x03, 0x00, + 0x18, 0x60, 0xBB, 0x15, 0x5C, 0x60, 0x7F, 0x00, 0x99, 0x60, 0xBB, 0x15, 0xF2, 0x04, 0x04, 0x61, + 0x99, 0x60, 0xAE, 0x15, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, + 0x08, 0x40, 0x00, 0x00, 0x2C, 0x20, 0x80, 0x02, 0x08, 0x30, 0x00, 0x80, 0x2C, 0x40, 0x6C, 0x03, + 0x3C, 0x10, 0x10, 0x00, 0x36, 0x42, 0x2C, 0x30, 0x74, 0x7B, 0xD1, 0xC1, 0x0C, 0xF0, 0x04, 0x01, + 0xF1, 0xF0, 0x0C, 0x30, 0x00, 0xFC, 0x04, 0x20, 0x0C, 0xF0, 0x10, 0x03, 0xF1, 0xF0, 0x0C, 0xE0, + 0x00, 0x00, 0x08, 0x30, 0x00, 0x80, 0xB9, 0x2E, 0x18, 0x00, 0x2C, 0x30, 0x00, 0xF0, 0x04, 0x20, + 0x0C, 0xF0, 0x10, 0x03, 0xF1, 0xF0, 0x08, 0x70, 0x00, 0x80, 0x38, 0xC7, 0xD0, 0xFB, 0xB9, 0x2E, + 0x14, 0x00, 0x06, 0xD2, 0xCC, 0xC0, 0xFF, 0x00, 0x82, 0x1B, 0xC6, 0xC2, 0x82, 0x19, 0xEB, 0x14, + 0x00, 0x00, 0x08, 0x60, 0x1C, 0xE1, 0x08, 0x70, 0x00, 0x30, 0x2C, 0x60, 0x01, 0xE9, 0xB9, 0x67, + 0x04, 0x01, 0xB9, 0xC7, 0x08, 0x01, 0xB9, 0xD7, 0x0C, 0x01, 0x38, 0x6E, 0x18, 0x00, 0xB9, 0x67, + 0x10, 0x01, 0x0B, 0xE5, 0x00, 0x00, 0x04, 0x2A, 0xEB, 0x49, 0x00, 0x00, 0xF2, 0xFB, 0x50, 0xC1, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x60, 0xB8, 0x15, 0x34, 0x18, 0xC1, 0xE1, + 0x82, 0x09, 0x34, 0x61, 0x93, 0x66, 0x99, 0x60, 0xB8, 0x15, 0x92, 0x3B, 0x99, 0x00, 0xBA, 0x15, + 0xF2, 0x38, 0xDC, 0x20, 0x80, 0x00, 0x0C, 0xE0, 0x50, 0x00, 0x82, 0x03, 0x0C, 0xE0, 0x35, 0x00, + 0xEB, 0xBA, 0x00, 0x00, 0xC6, 0x2E, 0xA2, 0x0A, 0x38, 0x50, 0x80, 0x15, 0x18, 0x60, 0xB9, 0x15, + 0x34, 0x53, 0xC6, 0x65, 0xB2, 0x17, 0x24, 0x61, 0xF2, 0x13, 0x98, 0x60, 0xB9, 0x15, 0x82, 0x12, + 0x98, 0x50, 0xBF, 0x15, 0x82, 0x04, 0xB8, 0x50, 0x84, 0x15, 0x92, 0x0C, 0x34, 0xE4, 0xC6, 0x2E, + 0xD2, 0x09, 0x18, 0x50, 0xB7, 0x15, 0xCC, 0x50, 0x30, 0x00, 0xD2, 0x04, 0x34, 0x61, 0x99, 0x60, + 0xB9, 0x15, 0x98, 0x50, 0xBA, 0x15, 0x18, 0x70, 0xB9, 0x15, 0x92, 0x07, 0xC4, 0x74, 0xC2, 0x09, + 0x04, 0x71, 0x99, 0x70, 0xBA, 0x15, 0xF2, 0x05, 0xC4, 0x72, 0xD2, 0x03, 0x99, 0x00, 0xBA, 0x15, + 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, 0x06, 0xE2, 0x6B, 0xD1, + 0x00, 0x00, 0x06, 0x2E, 0xCB, 0xCB, 0x00, 0x00, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, + 0x04, 0x20, 0x34, 0x14, 0x06, 0x32, 0xB1, 0xF1, 0x6B, 0x1C, 0x01, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, 0x06, 0xE2, 0x18, 0x20, 0xBB, 0x15, 0x5C, 0x20, + 0xF0, 0x00, 0x64, 0x23, 0x99, 0x20, 0xBB, 0x15, 0x4B, 0xC1, 0x00, 0x00, 0x4B, 0xB9, 0x00, 0x00, + 0xC4, 0xE0, 0x92, 0x06, 0xCB, 0xB8, 0x00, 0x00, 0x04, 0x24, 0x4B, 0xF9, 0x00, 0x00, 0xAB, 0x24, + 0x01, 0x00, 0xCB, 0xB9, 0x00, 0x00, 0x40, 0xE1, 0x04, 0x61, 0x99, 0x60, 0xBC, 0x15, 0x24, 0x18, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, 0x0C, 0x60, 0x00, 0x10, 0xA8, 0x76, 0x24, 0x00, + 0x82, 0x05, 0x34, 0x71, 0xA9, 0x76, 0x24, 0x00, 0xF2, 0x30, 0x18, 0x60, 0xBF, 0x15, 0x18, 0x70, + 0xBE, 0x15, 0xC6, 0x76, 0x92, 0x2A, 0xC4, 0x70, 0x82, 0x04, 0x28, 0x70, 0xA8, 0x15, 0xF2, 0x03, + 0x28, 0x70, 0xAA, 0x15, 0xC6, 0x72, 0xC2, 0x21, 0x36, 0x72, 0x06, 0x27, 0x57, 0x23, 0x57, 0x74, + 0x26, 0x27, 0x0C, 0x30, 0x10, 0x27, 0x0B, 0x9B, 0x00, 0x00, 0xC4, 0x2A, 0xC2, 0x16, 0xAB, 0xE2, + 0x00, 0x00, 0x0B, 0xE3, 0x00, 0x00, 0x98, 0x70, 0xAF, 0x15, 0x82, 0x04, 0xAB, 0xD5, 0x00, 0x00, + 0xF2, 0x08, 0x18, 0x70, 0xC1, 0x15, 0x93, 0x07, 0x92, 0x04, 0x2B, 0x49, 0x00, 0x00, 0xF2, 0xFA, + 0x99, 0x00, 0xC1, 0x15, 0x8B, 0xE3, 0x00, 0x00, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, + 0x18, 0x70, 0xAD, 0x15, 0x0C, 0x60, 0x96, 0x00, 0xC4, 0x70, 0x92, 0x05, 0x38, 0x70, 0x94, 0x15, + 0x28, 0x67, 0x1E, 0x00, 0x0C, 0x70, 0x00, 0x10, 0x28, 0x57, 0x6A, 0x01, 0x26, 0x65, 0x28, 0x57, + 0x0C, 0x00, 0xC6, 0x65, 0x02, 0x17, 0x98, 0x57, 0x28, 0x03, 0x92, 0x14, 0x28, 0x57, 0x06, 0x00, + 0xDC, 0x50, 0xE0, 0x06, 0x92, 0x0F, 0x38, 0x70, 0x7C, 0x15, 0x04, 0x21, 0x24, 0x71, 0xB9, 0x70, + 0x7C, 0x15, 0x38, 0x60, 0x94, 0x15, 0x18, 0x66, 0x20, 0x00, 0xC6, 0x76, 0xD2, 0x06, 0x06, 0x25, + 0xF2, 0x04, 0xB9, 0x00, 0x7C, 0x15, 0x04, 0x20, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, + 0xD1, 0xC1, 0x18, 0x70, 0xBF, 0x15, 0x18, 0x50, 0xBE, 0x15, 0xC6, 0x57, 0x82, 0x3F, 0x99, 0x70, + 0xBE, 0x15, 0xC4, 0x70, 0x18, 0x70, 0xBB, 0x15, 0x1C, 0x60, 0x10, 0x00, 0x56, 0x76, 0x82, 0x1C, + 0x64, 0x72, 0x99, 0x70, 0xBB, 0x15, 0x8B, 0x2F, 0x01, 0x00, 0xB9, 0x00, 0x84, 0x15, 0xB9, 0x00, + 0x7C, 0x15, 0x38, 0x70, 0x94, 0x15, 0x18, 0x27, 0x41, 0x00, 0x18, 0x37, 0x78, 0x00, 0x18, 0x47, + 0x77, 0x00, 0x18, 0x57, 0x58, 0x00, 0x18, 0x67, 0x20, 0x00, 0x0C, 0xF0, 0xA8, 0x00, 0xF1, 0xF0, + 0xB9, 0x20, 0x80, 0x15, 0xF2, 0x0C, 0x64, 0x71, 0x99, 0x70, 0xBB, 0x15, 0xCB, 0x30, 0x01, 0x00, + 0x38, 0x70, 0x94, 0x15, 0x18, 0x67, 0x55, 0x00, 0x99, 0x60, 0x6D, 0x12, 0x98, 0x70, 0xBF, 0x15, + 0x82, 0x05, 0x0C, 0xF0, 0x68, 0x01, 0xF1, 0xF0, 0xF2, 0x05, 0x18, 0x20, 0xBB, 0x15, 0x2B, 0xCF, + 0x00, 0x00, 0x18, 0x20, 0xBB, 0x15, 0xCB, 0x78, 0x00, 0x00, 0x18, 0x20, 0xBB, 0x15, 0x4B, 0x74, + 0x00, 0x00, 0x18, 0x20, 0xBB, 0x15, 0x4B, 0xC1, 0x00, 0x00, 0x18, 0x20, 0xBB, 0x15, 0x2B, 0xCF, + 0x00, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, + 0xD1, 0xC1, 0x98, 0x70, 0xBF, 0x15, 0x06, 0xDE, 0x82, 0x53, 0x04, 0x63, 0x99, 0x60, 0xBC, 0x15, + 0x0B, 0x80, 0x00, 0x00, 0xC4, 0x20, 0x82, 0x07, 0x4B, 0xB9, 0x00, 0x00, 0x0C, 0xF0, 0x68, 0x01, + 0xF1, 0xF0, 0xF2, 0x03, 0xCB, 0xB9, 0x00, 0x00, 0x0C, 0xF0, 0x8C, 0x01, 0xF1, 0xF0, 0x04, 0x21, + 0x0B, 0xB8, 0x00, 0x00, 0xCB, 0x39, 0x01, 0x00, 0x06, 0xE2, 0x04, 0x21, 0x0B, 0xB7, 0x00, 0x00, + 0x04, 0x28, 0x0B, 0xB8, 0x00, 0x00, 0x0C, 0x20, 0x10, 0x00, 0x0B, 0xB7, 0x00, 0x00, 0xC4, 0xE0, + 0x82, 0x03, 0x2B, 0x3D, 0x01, 0x00, 0x98, 0x70, 0x05, 0x10, 0x82, 0x06, 0xB9, 0x00, 0x84, 0x15, + 0xB9, 0x00, 0x78, 0x15, 0xF2, 0x06, 0x38, 0x70, 0x84, 0x15, 0x24, 0x71, 0xB9, 0x70, 0x84, 0x15, + 0xEB, 0x28, 0x01, 0x00, 0x38, 0x70, 0x80, 0x15, 0x38, 0x60, 0x84, 0x15, 0x24, 0x73, 0xC6, 0x67, + 0xA2, 0x05, 0x99, 0x00, 0xBF, 0x15, 0x99, 0x00, 0xB7, 0x15, 0x98, 0x60, 0xBD, 0x15, 0x82, 0x35, + 0x04, 0x20, 0x99, 0x00, 0xBD, 0x15, 0x99, 0x00, 0xBF, 0x15, 0xAB, 0xF0, 0x00, 0x00, 0x28, 0x20, + 0x88, 0x15, 0x6B, 0x14, 0x00, 0x00, 0x04, 0x21, 0x2B, 0x7A, 0x00, 0x00, 0xF2, 0x26, 0x04, 0x62, + 0x99, 0x60, 0xBC, 0x15, 0x4B, 0xB9, 0x00, 0x00, 0x04, 0x21, 0x0B, 0xB8, 0x00, 0x00, 0x04, 0x21, + 0x0B, 0xB7, 0x00, 0x00, 0x04, 0x28, 0x0B, 0xB8, 0x00, 0x00, 0x0C, 0x20, 0x10, 0x00, 0x0B, 0xB7, + 0x00, 0x00, 0xEB, 0x28, 0x01, 0x00, 0xAB, 0xD4, 0x02, 0x00, 0xC4, 0x20, 0x82, 0x0C, 0x18, 0x70, + 0xAC, 0x15, 0x5C, 0x70, 0xF0, 0x00, 0xCC, 0x70, 0x40, 0x00, 0x82, 0x07, 0x04, 0x71, 0x99, 0x70, + 0xBF, 0x15, 0xF2, 0x03, 0x8B, 0x79, 0x00, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, + 0x34, 0x14, 0xB1, 0xF1, 0xCB, 0x32, 0x00, 0x00, 0xC4, 0x20, 0x82, 0x03, 0x0B, 0xE5, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x04, 0x20, 0xB1, 0xF1, 0xEB, 0xEF, + 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x18, 0x04, 0x20, 0xC1, 0xE1, 0x6B, 0xF1, + 0x00, 0x00, 0x06, 0xE2, 0x04, 0x20, 0xAB, 0xF0, 0x00, 0x00, 0x06, 0x2E, 0x40, 0xE1, 0x24, 0x18, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0xEB, 0x14, 0x00, 0x00, 0x08, 0x70, 0x1C, 0xE1, + 0x08, 0x60, 0x00, 0x30, 0x2C, 0x70, 0x04, 0xE9, 0xB9, 0x76, 0x04, 0x01, 0xB9, 0x76, 0x08, 0x01, + 0x0B, 0xE5, 0x00, 0x00, 0x04, 0x2A, 0xEB, 0x49, 0x00, 0x00, 0xF2, 0xFB, 0x34, 0x14, 0xB1, 0xF1, + 0x4B, 0x16, 0x00, 0x00, 0xC4, 0x20, 0x82, 0x05, 0x38, 0x20, 0x74, 0x15, 0xCB, 0x17, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0x04, 0x21, 0xC1, 0xE1, 0xEB, 0xEF, + 0x00, 0x00, 0x08, 0xE0, 0x07, 0x00, 0x2C, 0xE0, 0x20, 0xA1, 0xEB, 0x93, 0x00, 0x00, 0x98, 0x70, + 0xB6, 0x15, 0x92, 0x1B, 0x04, 0x21, 0x6B, 0xF1, 0x00, 0x00, 0x26, 0x22, 0x06, 0x72, 0x57, 0x71, + 0x26, 0x27, 0xC6, 0x2E, 0xC2, 0xF3, 0x08, 0x70, 0x00, 0x80, 0x38, 0x77, 0xCC, 0xFB, 0xCC, 0x70, + 0xFF, 0x00, 0x82, 0x04, 0x98, 0x70, 0xB5, 0x15, 0x82, 0x08, 0x04, 0x21, 0xAB, 0xF0, 0x00, 0x00, + 0x04, 0x21, 0xEB, 0xEF, 0x00, 0x00, 0xF2, 0xE2, 0x04, 0x21, 0xAB, 0xF0, 0x00, 0x00, 0x40, 0xE1, + 0x24, 0x18, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x80, 0xC6, 0x27, 0x34, 0x14, 0xB1, 0xF1, 0x82, 0x03, + 0xC6, 0x37, 0x92, 0x04, 0x3B, 0xA2, 0x00, 0x00, 0xF2, 0x0E, 0x08, 0x70, 0x00, 0x40, 0x04, 0x61, + 0xB9, 0x67, 0x00, 0x80, 0xB9, 0x27, 0x04, 0x80, 0xB9, 0x37, 0x08, 0x80, 0xB9, 0x07, 0x0C, 0x80, + 0x38, 0x27, 0x10, 0x80, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0xC4, 0x20, 0x34, 0x14, + 0xB1, 0xF1, 0x82, 0x0F, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x37, 0x18, 0x80, 0xB9, 0x47, 0x1C, 0x80, + 0x06, 0x67, 0x38, 0x76, 0x28, 0x80, 0xD4, 0x71, 0x82, 0xFD, 0x38, 0x26, 0x20, 0x80, 0xF2, 0x05, + 0x06, 0x23, 0x06, 0x34, 0x5B, 0xA3, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x06, 0x72, 0x34, 0x14, 0x06, 0x43, 0x04, 0x21, 0x06, 0x37, 0xB1, 0xF1, 0x6B, 0x99, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xD3, + 0xF7, 0xDF, 0xC4, 0xD0, 0x06, 0xE4, 0xF7, 0xEF, 0x82, 0x02, 0x16, 0x33, 0xC4, 0xE0, 0x82, 0x02, + 0x16, 0x44, 0xC4, 0x20, 0x82, 0x0F, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x37, 0x18, 0x80, 0xB9, 0x47, + 0x1C, 0x80, 0x06, 0x67, 0x38, 0x76, 0x28, 0x80, 0xD4, 0x71, 0x82, 0xFD, 0x38, 0x26, 0x20, 0x80, + 0xF2, 0x05, 0x06, 0x23, 0x06, 0x34, 0x5B, 0xA3, 0x00, 0x00, 0xC6, 0xDE, 0x82, 0x02, 0x16, 0x22, + 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x80, 0xC6, 0x26, 0x34, 0x14, + 0xB1, 0xF1, 0x06, 0x72, 0x06, 0x43, 0x82, 0x04, 0xC6, 0x36, 0x04, 0x21, 0x92, 0x02, 0x04, 0x20, + 0x06, 0x37, 0xCB, 0x9B, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0xC4, 0x20, 0x3C, 0x10, + 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xE3, 0x06, 0xD4, 0x82, 0x0F, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x37, + 0x18, 0x80, 0xB9, 0x47, 0x1C, 0x80, 0x06, 0x67, 0x38, 0x76, 0x28, 0x80, 0xD4, 0x71, 0x82, 0xFD, + 0x38, 0x26, 0x24, 0x80, 0xF2, 0x0A, 0x06, 0x23, 0x06, 0x34, 0x5B, 0xA3, 0x00, 0x00, 0x06, 0x3D, + 0xAB, 0x97, 0x00, 0x00, 0x3F, 0x22, 0x0E, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, + 0x06, 0x72, 0x34, 0x14, 0x06, 0x43, 0x04, 0x21, 0x06, 0x37, 0xB1, 0xF1, 0x6B, 0x9F, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0xC4, 0x30, 0x04, 0x40, 0x04, 0x50, 0x0C, 0x60, 0x20, 0x00, + 0x52, 0x03, 0xA6, 0x42, 0x25, 0x50, 0xB4, 0x61, 0x02, 0x06, 0xA6, 0x44, 0x25, 0x55, 0xA6, 0x33, + 0x42, 0xF9, 0xF2, 0xFA, 0x06, 0x24, 0x06, 0x35, 0xE1, 0xF0, 0x04, 0x40, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x9E, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x9D, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x9C, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x9B, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x9A, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x99, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x98, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x97, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x96, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x95, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x94, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x93, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x92, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x91, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x90, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8F, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x8E, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8D, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8C, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x8B, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8A, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x89, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x88, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x87, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x86, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x85, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x84, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x83, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x82, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x81, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x80, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x7F, 0x00, 0x00, 0xE1, 0xF0, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x62, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x63, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x64, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x65, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x66, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x67, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x68, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x69, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x6A, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x6B, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x6C, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x6D, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x6E, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x6F, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x70, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x71, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x72, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x73, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x74, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x75, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x76, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x77, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x78, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x79, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x7A, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x7B, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x7C, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x7D, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x7E, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x7F, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x80, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, + 0x08, 0x70, 0x00, 0x40, 0xC4, 0x20, 0x38, 0x67, 0x60, 0x71, 0x82, 0x09, 0x08, 0x50, 0x40, 0x00, + 0x66, 0x65, 0xB9, 0x67, 0x60, 0x71, 0x2B, 0x49, 0x00, 0x00, 0xF2, 0x08, 0x08, 0x50, 0xBF, 0xFF, + 0x2C, 0x50, 0xFF, 0xFF, 0x56, 0x65, 0xB9, 0x67, 0x60, 0x71, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x08, 0x70, 0xD6, 0x72, 0x82, 0xFD, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x70, 0x00, 0x40, 0x38, 0x67, 0x08, 0x70, 0xB9, 0x67, 0x08, 0x70, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x18, 0xC1, 0xE1, 0x06, 0xE2, 0x8B, 0xB7, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0xB9, 0xE7, + 0x00, 0x70, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x70, 0x70, + 0x64, 0x72, 0xB9, 0x76, 0x70, 0x70, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x70, 0x70, + 0x64, 0x71, 0xB9, 0x76, 0x70, 0x70, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x70, 0x70, + 0x14, 0x52, 0x56, 0x75, 0xB9, 0x76, 0x70, 0x70, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, + 0x38, 0x27, 0xE0, 0x70, 0x5C, 0x20, 0xFF, 0x7F, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, + 0x38, 0x27, 0x5C, 0x70, 0x5C, 0x20, 0x7F, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0xC4, 0x20, 0x08, 0x60, + 0x00, 0x40, 0x82, 0x08, 0x08, 0x70, 0x0F, 0xC0, 0x2C, 0x70, 0xFF, 0xFF, 0xB9, 0x76, 0x3C, 0x71, + 0xF2, 0x03, 0xB9, 0x06, 0x3C, 0x71, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x0C, 0x20, + 0x08, 0x70, 0x08, 0xD0, 0x00, 0x40, 0x08, 0x30, 0x00, 0x80, 0x26, 0x2D, 0x2C, 0x30, 0x08, 0xE2, + 0x0C, 0x40, 0xF8, 0x02, 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x00, 0x40, 0x08, 0xE0, + 0x00, 0x30, 0x08, 0x30, 0x00, 0x80, 0x26, 0x2E, 0x2C, 0x30, 0x00, 0xE5, 0x0C, 0x40, 0x00, 0x09, + 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0xC4, 0x52, 0x08, 0x30, 0x00, 0x80, 0x26, 0x2E, + 0x2C, 0x30, 0x00, 0xEE, 0x0C, 0x40, 0x50, 0x01, 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x08, 0x70, + 0x0F, 0xC0, 0x2C, 0x70, 0xFF, 0xFF, 0x0C, 0x20, 0x00, 0x40, 0x08, 0x30, 0x00, 0x80, 0xB9, 0x7D, + 0x3C, 0x71, 0x26, 0x2E, 0x2C, 0x30, 0x00, 0xF0, 0x0C, 0x40, 0x00, 0x09, 0x0C, 0xF0, 0x04, 0x01, + 0xF1, 0xF0, 0x0C, 0x20, 0x00, 0x49, 0x08, 0x30, 0x08, 0x07, 0xB9, 0x0D, 0x3C, 0x71, 0x26, 0x2E, + 0x2C, 0x30, 0x08, 0x07, 0x0C, 0x40, 0x00, 0x09, 0x0C, 0xF0, 0x40, 0x01, 0xF1, 0xF0, 0x50, 0xC1, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0xC4, 0x23, 0x82, 0x77, 0xC4, 0x23, 0x08, 0x70, + 0x00, 0x40, 0xD2, 0x07, 0xC4, 0x21, 0x82, 0x1C, 0xC4, 0x22, 0x82, 0x2D, 0xFA, 0x89, 0x00, 0x00, + 0xCC, 0x20, 0x81, 0x00, 0x82, 0x1E, 0xCC, 0x20, 0x82, 0x00, 0x82, 0x3D, 0xC4, 0x28, 0x9A, 0x80, + 0x00, 0x00, 0x0C, 0x50, 0x40, 0x40, 0xB9, 0x57, 0x34, 0x70, 0x04, 0x51, 0xB9, 0x57, 0x64, 0x70, + 0x08, 0x50, 0x03, 0x00, 0x2C, 0x50, 0x63, 0x07, 0xB9, 0x57, 0x54, 0x70, 0xF2, 0x6B, 0x08, 0x50, + 0x14, 0x00, 0x2C, 0x50, 0x60, 0x40, 0xB9, 0x57, 0x34, 0x70, 0xB9, 0x27, 0x64, 0x70, 0xF2, 0x1E, + 0x08, 0x50, 0x12, 0x00, 0x2C, 0x50, 0x40, 0x20, 0xB9, 0x57, 0x34, 0x70, 0x04, 0x52, 0xB9, 0x57, + 0x64, 0x70, 0xF2, 0x38, 0x98, 0x50, 0xBA, 0x15, 0x82, 0x06, 0x08, 0x50, 0x12, 0x00, 0x2C, 0x50, + 0x60, 0x4A, 0xF2, 0x05, 0x08, 0x50, 0x14, 0x00, 0x2C, 0x50, 0x60, 0x40, 0xB9, 0x57, 0x34, 0x70, + 0x04, 0x51, 0xB9, 0x57, 0x64, 0x70, 0x08, 0x70, 0x00, 0x40, 0x08, 0x50, 0x05, 0x00, 0x2C, 0x50, + 0x61, 0x07, 0xF2, 0x24, 0x98, 0x50, 0xBA, 0x15, 0x82, 0x12, 0x28, 0x40, 0x22, 0x10, 0x08, 0x50, + 0x12, 0x00, 0xC4, 0x49, 0xC2, 0x04, 0x2C, 0x50, 0x45, 0x38, 0xF2, 0x0D, 0xC4, 0x45, 0xC2, 0x04, + 0x2C, 0x50, 0x42, 0x38, 0xF2, 0x08, 0x2C, 0x50, 0x40, 0x38, 0xF2, 0x05, 0x08, 0x50, 0x12, 0x00, + 0x2C, 0x50, 0x40, 0x20, 0xB9, 0x57, 0x34, 0x70, 0x04, 0x52, 0xB9, 0x57, 0x64, 0x70, 0x08, 0x70, + 0x00, 0x40, 0x08, 0x50, 0x03, 0x00, 0x2C, 0x50, 0x61, 0x57, 0xB9, 0x57, 0x54, 0x70, 0x08, 0x50, + 0x80, 0x0F, 0x2C, 0x50, 0x80, 0x0F, 0xF2, 0x14, 0x08, 0x70, 0x00, 0x40, 0x0C, 0x50, 0x26, 0x26, + 0xB9, 0x57, 0x34, 0x70, 0x04, 0x51, 0xB9, 0x57, 0x64, 0x70, 0x08, 0x50, 0x03, 0x00, 0x2C, 0x50, + 0x63, 0x07, 0xB9, 0x57, 0x54, 0x70, 0x08, 0x50, 0x00, 0x0E, 0x2C, 0x50, 0x00, 0x0E, 0xB9, 0x57, + 0x6C, 0x70, 0x08, 0x50, 0xF0, 0x07, 0x2C, 0x50, 0x66, 0x7F, 0xB9, 0x57, 0x1C, 0x71, 0x08, 0x70, + 0x00, 0x40, 0x08, 0x50, 0x96, 0x00, 0xB9, 0x57, 0x30, 0x70, 0x98, 0x70, 0xBA, 0x15, 0x08, 0x60, + 0x00, 0x40, 0x82, 0x04, 0x0C, 0x70, 0xFF, 0x3F, 0xF2, 0x05, 0x08, 0x70, 0x01, 0x00, 0x2C, 0x70, + 0xFF, 0x3F, 0xB9, 0x76, 0x58, 0x70, 0xE1, 0xF0, 0x54, 0x2F, 0xC4, 0x21, 0x92, 0x04, 0x38, 0x60, + 0x8C, 0x15, 0xF2, 0x03, 0x38, 0x60, 0x90, 0x15, 0x38, 0x56, 0x08, 0x00, 0x08, 0x70, 0x00, 0x40, + 0xB9, 0x57, 0xB4, 0x70, 0x38, 0x56, 0x0C, 0x00, 0x08, 0x40, 0xDF, 0xFF, 0xB9, 0x57, 0xB8, 0x70, + 0x38, 0x56, 0x10, 0x00, 0x2C, 0x40, 0xFF, 0xFF, 0x56, 0x54, 0xB9, 0x57, 0xC0, 0x70, 0x38, 0x56, + 0x14, 0x00, 0xB9, 0x57, 0xC4, 0x70, 0x98, 0x50, 0xAD, 0x15, 0x82, 0x0C, 0x08, 0x60, 0x01, 0x00, + 0x2C, 0x60, 0x81, 0x11, 0xB9, 0x67, 0xAC, 0x70, 0x08, 0x60, 0x10, 0x00, 0x2C, 0x60, 0x10, 0x00, + 0xF2, 0x06, 0x30, 0x56, 0xB9, 0x57, 0xAC, 0x70, 0x38, 0x66, 0x04, 0x00, 0xB9, 0x67, 0xB0, 0x70, + 0xE1, 0xF0, 0x00, 0x00, 0x54, 0x2F, 0xC4, 0x21, 0x92, 0x04, 0x38, 0x70, 0x8C, 0x15, 0xF2, 0x03, + 0x38, 0x70, 0x90, 0x15, 0x18, 0x60, 0x28, 0x13, 0xC4, 0x62, 0xC2, 0x04, 0x38, 0x57, 0x20, 0x00, + 0xF2, 0x08, 0xC4, 0x62, 0x92, 0x04, 0x38, 0x57, 0x1C, 0x00, 0xF2, 0x03, 0x38, 0x57, 0x18, 0x00, + 0x08, 0x60, 0x00, 0x40, 0xB9, 0x56, 0xC8, 0x70, 0x38, 0x57, 0x24, 0x00, 0xB9, 0x56, 0xCC, 0x70, + 0x38, 0x77, 0x28, 0x00, 0xB9, 0x76, 0xD4, 0x70, 0xE1, 0xF0, 0x00, 0x00, 0x54, 0x2F, 0xC4, 0x21, + 0x92, 0x04, 0x38, 0x70, 0x8C, 0x15, 0xF2, 0x03, 0x38, 0x70, 0x90, 0x15, 0x38, 0x57, 0x2C, 0x00, + 0x08, 0x60, 0x00, 0x40, 0xB9, 0x56, 0x8C, 0x70, 0x38, 0x57, 0x30, 0x00, 0xB9, 0x56, 0x90, 0x70, + 0x38, 0x57, 0x34, 0x00, 0xB9, 0x56, 0x94, 0x70, 0x38, 0x57, 0x38, 0x00, 0xB9, 0x56, 0x98, 0x70, + 0x38, 0x57, 0x3C, 0x00, 0xB9, 0x56, 0x9C, 0x70, 0x38, 0x57, 0x40, 0x00, 0xB9, 0x56, 0xA0, 0x70, + 0x38, 0x57, 0x44, 0x00, 0xB9, 0x56, 0xA4, 0x70, 0x38, 0x77, 0x48, 0x00, 0xB9, 0x76, 0xA8, 0x70, + 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x60, 0x00, 0xDE, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x10, 0x60, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x07, 0x10, 0x60, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x70, 0x00, 0x40, 0x0C, 0x60, 0xFE, 0x00, 0xB9, 0x67, 0x0C, 0x20, 0xB9, 0x07, 0x18, 0x20, + 0xE1, 0xF0, 0x00, 0x00, 0x51, 0x00, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x40, 0xC4, 0x20, 0x38, 0x67, + 0x34, 0x10, 0x82, 0x03, 0x64, 0x63, 0xF2, 0x03, 0x14, 0x54, 0x56, 0x65, 0xB9, 0x67, 0x34, 0x10, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0xAD, 0xDE, 0x2C, 0x70, 0x8C, 0x03, 0x08, 0x60, 0x00, 0x40, + 0xB9, 0x76, 0x00, 0x10, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0xAD, 0xDE, 0x08, 0x60, 0x00, 0x40, + 0x2C, 0x70, 0x8C, 0x03, 0xB9, 0x76, 0x00, 0x10, 0xB9, 0x26, 0x6C, 0x10, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, 0xB9, 0x67, 0x00, 0x10, + 0x0C, 0x50, 0x10, 0x00, 0xB9, 0x57, 0x20, 0x10, 0x08, 0x50, 0x38, 0x03, 0xB9, 0x67, 0x00, 0x10, + 0x2C, 0x50, 0x80, 0x88, 0xB9, 0x57, 0x24, 0x10, 0xB9, 0x67, 0x00, 0x10, 0xB9, 0x07, 0x28, 0x10, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, + 0xB9, 0x67, 0x00, 0x10, 0xC4, 0x30, 0x38, 0x67, 0x50, 0x10, 0x82, 0x05, 0x66, 0x62, 0xB9, 0x67, + 0x50, 0x10, 0xF2, 0x05, 0x15, 0x22, 0x56, 0x26, 0xB9, 0x27, 0x50, 0x10, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, 0xB9, 0x67, 0x00, 0x10, + 0x38, 0x67, 0x54, 0x10, 0x66, 0x62, 0xB9, 0x67, 0x54, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0xAD, 0xDE, + 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, 0xB9, 0x67, 0x00, 0x10, 0x38, 0x67, 0x54, 0x10, + 0x15, 0x22, 0x56, 0x26, 0xB9, 0x27, 0x54, 0x10, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0xAD, 0xDE, + 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, 0xB9, 0x67, 0x00, 0x10, 0x38, 0x57, 0x58, 0x10, + 0xCC, 0x20, 0xFF, 0x00, 0x1C, 0x40, 0x00, 0x01, 0x56, 0x54, 0x92, 0x0A, 0xB9, 0x57, 0x58, 0x10, + 0xB9, 0x67, 0x00, 0x10, 0x38, 0x67, 0x4C, 0x10, 0x14, 0x52, 0x56, 0x65, 0xF2, 0x09, 0x66, 0x52, + 0xB9, 0x57, 0x58, 0x10, 0xB9, 0x67, 0x00, 0x10, 0x38, 0x67, 0x4C, 0x10, 0x64, 0x61, 0xB9, 0x67, + 0x4C, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, + 0xB9, 0x67, 0x00, 0x10, 0xC4, 0x30, 0x38, 0x67, 0x4C, 0x10, 0x82, 0x05, 0x66, 0x62, 0xB9, 0x67, + 0x4C, 0x10, 0xF2, 0x05, 0x15, 0x22, 0x56, 0x26, 0xB9, 0x27, 0x4C, 0x10, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x70, 0xAD, 0xDE, 0x08, 0x60, 0x00, 0x40, 0x2C, 0x70, 0x8C, 0x03, 0xB9, 0x76, 0x00, 0x10, + 0x04, 0x73, 0xB9, 0x76, 0x44, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x08, 0x10, + 0x66, 0x72, 0xB9, 0x76, 0x08, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x64, 0x10, + 0x66, 0x72, 0xB9, 0x76, 0x64, 0x10, 0xE1, 0xF0, 0x04, 0x62, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, + 0x14, 0x10, 0xE1, 0xF0, 0x23, 0x22, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x10, 0x10, 0xE1, 0xF0, + 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x14, 0x10, 0x64, 0x71, 0xB9, 0x76, 0x14, 0x10, 0xE1, 0xF0, + 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x14, 0x10, 0x14, 0x52, 0x56, 0x75, 0xB9, 0x76, 0x14, 0x10, + 0xE1, 0xF0, 0x00, 0x00, 0xC4, 0x20, 0x0C, 0x70, 0x10, 0x00, 0x82, 0x03, 0x0C, 0x70, 0xA0, 0x00, + 0x6C, 0x70, 0x00, 0x01, 0x08, 0x60, 0x00, 0x40, 0xB9, 0x76, 0x74, 0x10, 0xE1, 0xF0, 0x00, 0x00, + 0x04, 0x61, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x70, 0x10, 0xE1, 0xF0, 0xC4, 0x20, 0x08, 0x70, + 0x00, 0x40, 0x82, 0x04, 0x04, 0x61, 0xB1, 0x67, 0xF2, 0x02, 0xB1, 0x07, 0xE1, 0xF0, 0x00, 0x00, + 0xC4, 0x30, 0x57, 0x21, 0x08, 0x70, 0x00, 0x40, 0x26, 0x72, 0x82, 0x04, 0x04, 0x61, 0xB1, 0x67, + 0xF2, 0x02, 0xB1, 0x07, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xC1, 0x61, 0x01, 0x61, + 0x01, 0x70, 0xC9, 0x61, 0x08, 0x00, 0x04, 0x62, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x10, 0x30, + 0x48, 0x61, 0x08, 0x00, 0x11, 0x16, 0x11, 0x07, 0x40, 0x61, 0x2C, 0x10, 0x10, 0x00, 0x61, 0x00, + 0x3C, 0x10, 0x10, 0x00, 0xC1, 0x61, 0x01, 0x61, 0x01, 0x70, 0xC9, 0x61, 0x08, 0x00, 0x04, 0x61, + 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x14, 0x40, 0x48, 0x61, 0x08, 0x00, 0x11, 0x16, 0x11, 0x07, + 0x40, 0x61, 0x2C, 0x10, 0x10, 0x00, 0x61, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xC1, 0x61, 0x01, 0x61, + 0x01, 0x70, 0xC9, 0x61, 0x08, 0x00, 0x04, 0x61, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x14, 0x50, + 0x48, 0x61, 0x08, 0x00, 0x11, 0x16, 0x11, 0x07, 0x40, 0x61, 0x2C, 0x10, 0x10, 0x00, 0x61, 0x00, + 0x3C, 0x10, 0x24, 0x00, 0xD9, 0x41, 0x08, 0x00, 0x01, 0x61, 0x01, 0x70, 0xC9, 0x61, 0x1C, 0x00, + 0x04, 0x61, 0xB9, 0xF1, 0x18, 0x00, 0xC1, 0x21, 0x99, 0x60, 0xC1, 0x15, 0x6B, 0x48, 0x00, 0x00, + 0x04, 0x61, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x78, 0x10, 0x48, 0x61, 0x1C, 0x00, 0x38, 0xF1, + 0x18, 0x00, 0x40, 0x21, 0x11, 0x16, 0x11, 0x07, 0x58, 0x41, 0x08, 0x00, 0x2C, 0x10, 0x24, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xC1, 0x61, 0x01, 0x61, 0x01, 0x70, 0xC9, 0x61, + 0x08, 0x00, 0x08, 0x70, 0x00, 0x40, 0x38, 0x67, 0x08, 0x70, 0xB9, 0x67, 0x08, 0x70, 0x04, 0x61, + 0x99, 0x60, 0xC0, 0x15, 0x48, 0x61, 0x08, 0x00, 0x11, 0x16, 0x11, 0x07, 0x40, 0x61, 0x2C, 0x10, + 0x10, 0x00, 0x61, 0x00, 0x08, 0x70, 0x04, 0x00, 0x24, 0x74, 0x26, 0x27, 0x08, 0x70, 0xFF, 0xBF, + 0x57, 0x26, 0x2C, 0x70, 0x00, 0xC0, 0xB1, 0x42, 0x26, 0x27, 0x0C, 0x40, 0x04, 0x40, 0x08, 0x70, + 0x00, 0x40, 0x26, 0x47, 0x26, 0x42, 0xB1, 0x34, 0x0C, 0x40, 0x10, 0x40, 0x26, 0x47, 0x26, 0x42, + 0x2C, 0x70, 0x08, 0x40, 0xB1, 0x54, 0x26, 0x27, 0xB1, 0x62, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x40, + 0x2C, 0x70, 0x08, 0x40, 0x57, 0x26, 0x26, 0x27, 0x30, 0x72, 0x6C, 0x70, 0x00, 0x01, 0xB1, 0x72, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x70, 0x08, 0x40, 0x57, 0x26, 0x26, 0x27, + 0x30, 0x72, 0x1C, 0x60, 0x01, 0x01, 0x56, 0x76, 0xB1, 0x72, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x40, + 0x57, 0x26, 0x2C, 0x70, 0x0C, 0x40, 0x26, 0x72, 0x30, 0x27, 0xE1, 0xF0, 0x06, 0x52, 0x2F, 0x62, + 0x02, 0x00, 0x57, 0x52, 0x3F, 0x66, 0x05, 0x00, 0xC4, 0x3B, 0x26, 0x63, 0xB1, 0x64, 0x06, 0x72, + 0xC2, 0x0F, 0x06, 0x57, 0x0C, 0x50, 0x98, 0x15, 0x28, 0x55, 0x02, 0x00, 0x04, 0x20, 0xC6, 0x65, + 0x92, 0x03, 0x0C, 0x20, 0x08, 0x07, 0x28, 0x70, 0x98, 0x15, 0xC6, 0x67, 0xF2, 0x0C, 0xCC, 0x70, + 0x13, 0x00, 0x0C, 0x20, 0x08, 0x07, 0xC2, 0x0A, 0xCC, 0x70, 0x15, 0x00, 0x82, 0x07, 0xCC, 0x70, + 0xFF, 0x00, 0x04, 0x20, 0x92, 0x03, 0x0C, 0x20, 0x08, 0x07, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, + 0xD1, 0xC1, 0x06, 0xC2, 0x06, 0xE4, 0x04, 0x21, 0x06, 0xD3, 0x6B, 0xBB, 0x00, 0x00, 0x08, 0x70, + 0x00, 0x30, 0x2C, 0x70, 0x00, 0x40, 0x57, 0xC1, 0x2F, 0x27, 0x0C, 0x00, 0x30, 0x62, 0xC4, 0xE0, + 0x0C, 0x70, 0xFF, 0x03, 0x56, 0x76, 0x77, 0x65, 0x82, 0x09, 0xC4, 0xD0, 0x82, 0x04, 0x26, 0x7E, + 0x26, 0x6E, 0xF2, 0x11, 0x36, 0x6E, 0x36, 0x7E, 0xF2, 0x0E, 0xC4, 0xD0, 0x82, 0x07, 0xC6, 0x67, + 0x02, 0x03, 0x24, 0x71, 0xF2, 0x08, 0x24, 0x61, 0xF2, 0x06, 0xC6, 0x67, 0x02, 0x03, 0x34, 0x61, + 0xF2, 0x02, 0x34, 0x71, 0xC4, 0x70, 0x02, 0x09, 0xCC, 0x70, 0xFF, 0x03, 0x04, 0xE0, 0x02, 0x07, + 0x14, 0xE1, 0x0C, 0x70, 0xFF, 0x03, 0xF2, 0x03, 0x14, 0xE1, 0x04, 0x71, 0xC4, 0x60, 0x02, 0x08, + 0xCC, 0x60, 0xFF, 0x03, 0x02, 0x07, 0x14, 0xE1, 0x0C, 0x60, 0xFF, 0x03, 0xF2, 0x03, 0x14, 0xE1, + 0x04, 0x61, 0x57, 0x65, 0x66, 0x67, 0xB1, 0x62, 0x04, 0x20, 0x6B, 0xBB, 0x00, 0x00, 0x06, 0x2E, + 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x1C, 0x09, 0x23, 0x32, 0x0C, 0x40, + 0x80, 0x04, 0x06, 0x21, 0xD9, 0xC1, 0x0C, 0x09, 0xC9, 0xA1, 0x04, 0x09, 0x4B, 0x4B, 0x00, 0x00, + 0x0C, 0x20, 0xC0, 0x06, 0x26, 0x21, 0x04, 0x30, 0x0C, 0x40, 0x40, 0x02, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0x20, 0x80, 0x04, 0x26, 0x21, 0x04, 0x31, 0x0C, 0x40, 0x40, 0x02, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x04, 0x21, 0x08, 0xB0, 0x00, 0x30, 0x0B, 0xB8, 0x00, 0x00, 0x0C, 0xC0, + 0x22, 0x00, 0x2C, 0xB0, 0x00, 0x49, 0x04, 0x21, 0x04, 0xD0, 0x0B, 0xB7, 0x00, 0x00, 0x06, 0xED, + 0x04, 0xA0, 0x0C, 0x40, 0x00, 0x09, 0x06, 0x2D, 0x06, 0x3A, 0x26, 0x41, 0xEB, 0xF1, 0x00, 0x00, + 0x86, 0x62, 0x82, 0x5E, 0x38, 0x21, 0x00, 0x09, 0x06, 0x72, 0x57, 0x71, 0x26, 0x7B, 0x30, 0x77, + 0x5C, 0x70, 0xFF, 0x0F, 0x36, 0x76, 0x0C, 0x60, 0xC0, 0x06, 0x26, 0x61, 0x26, 0x62, 0x90, 0x46, + 0x82, 0x04, 0xCC, 0x70, 0x46, 0x00, 0x02, 0x4B, 0x0C, 0x50, 0x80, 0x04, 0x26, 0x51, 0x26, 0x52, + 0x10, 0x65, 0xC4, 0x61, 0x2F, 0x62, 0x02, 0x00, 0x92, 0x07, 0xC4, 0x70, 0x22, 0x27, 0xC4, 0x70, + 0x91, 0x05, 0x92, 0x11, 0xF2, 0x23, 0xC4, 0x70, 0x12, 0x0E, 0x04, 0x31, 0x91, 0x35, 0x2F, 0x56, + 0x01, 0x00, 0xA0, 0x55, 0x92, 0x1B, 0x0C, 0x50, 0xC0, 0x06, 0x26, 0x51, 0x24, 0x41, 0x26, 0x52, + 0x91, 0x45, 0xF2, 0x14, 0x2F, 0x56, 0x01, 0x00, 0x20, 0x55, 0x26, 0x55, 0x06, 0x45, 0x57, 0x41, + 0x26, 0x54, 0x06, 0x45, 0xD7, 0x41, 0x3F, 0x55, 0x04, 0x00, 0xC6, 0x75, 0x32, 0x07, 0x2F, 0x56, + 0x01, 0x00, 0x20, 0x75, 0xF7, 0x70, 0xA1, 0x75, 0xF2, 0x0F, 0x2F, 0x56, 0x01, 0x00, 0x20, 0x55, + 0x26, 0x55, 0x06, 0x45, 0x57, 0x41, 0x26, 0x54, 0x06, 0x45, 0xD7, 0x41, 0x36, 0x54, 0xC6, 0x57, + 0x32, 0x03, 0xC4, 0x70, 0x22, 0xED, 0x0C, 0x70, 0x80, 0x04, 0x26, 0x71, 0x26, 0x72, 0x26, 0x61, + 0x10, 0x37, 0x20, 0x46, 0x6B, 0xF4, 0x00, 0x00, 0xC4, 0x20, 0x32, 0x02, 0x24, 0xE1, 0x24, 0xA1, + 0xC4, 0xAE, 0x92, 0x98, 0x24, 0xD1, 0xCC, 0xD0, 0x16, 0x00, 0x92, 0x93, 0xCC, 0xE0, 0xFE, 0x00, + 0x82, 0x07, 0xB4, 0xC1, 0x82, 0x05, 0x04, 0x21, 0x0B, 0xB8, 0x00, 0x00, 0xF2, 0x85, 0x58, 0xC1, + 0x0C, 0x09, 0x48, 0xA1, 0x04, 0x09, 0x2C, 0x10, 0x1C, 0x09, 0xE1, 0xF0, 0x3C, 0x10, 0x34, 0x00, + 0xD9, 0x81, 0x14, 0x00, 0xD9, 0xC1, 0x24, 0x00, 0xB9, 0x21, 0x04, 0x00, 0x06, 0x93, 0x06, 0x84, + 0x04, 0xEA, 0x04, 0x21, 0x0B, 0xB8, 0x00, 0x00, 0x04, 0x21, 0x0B, 0xB7, 0x00, 0x00, 0xB4, 0xE1, + 0x92, 0xF9, 0x08, 0xC0, 0x00, 0x30, 0x1C, 0x50, 0x88, 0x13, 0x06, 0xBE, 0x06, 0x7E, 0x06, 0x6E, + 0x06, 0xAE, 0x2C, 0xC0, 0x00, 0x49, 0x04, 0xD0, 0x06, 0x2E, 0x06, 0x3D, 0x06, 0x41, 0xB9, 0x51, + 0x10, 0x00, 0xB9, 0x61, 0x08, 0x00, 0xB9, 0x71, 0x0C, 0x00, 0xEB, 0xF1, 0x00, 0x00, 0x86, 0x22, + 0x38, 0x51, 0x10, 0x00, 0x38, 0x61, 0x08, 0x00, 0x38, 0x71, 0x0C, 0x00, 0x82, 0x19, 0x30, 0x41, + 0x57, 0x41, 0x26, 0x4C, 0x30, 0x44, 0x5C, 0x40, 0xFF, 0x0F, 0x3F, 0x22, 0x04, 0x00, 0xC4, 0x20, + 0x32, 0x02, 0x16, 0x22, 0xCC, 0x20, 0xC8, 0x00, 0x02, 0x02, 0x04, 0xA1, 0x1C, 0x40, 0xC8, 0x00, + 0x26, 0x42, 0xC6, 0x54, 0x32, 0x05, 0x06, 0x54, 0x06, 0xBE, 0x06, 0x7D, 0x06, 0x62, 0x24, 0xD1, + 0xC4, 0xDE, 0x92, 0xD3, 0x24, 0xE1, 0xCC, 0xE0, 0x16, 0x00, 0x92, 0xCE, 0xB1, 0x68, 0xB1, 0x79, + 0x04, 0x20, 0x38, 0x71, 0x04, 0x00, 0xC6, 0xA2, 0xB1, 0xB7, 0x82, 0x02, 0x04, 0x24, 0x58, 0xC1, + 0x24, 0x00, 0x58, 0x81, 0x14, 0x00, 0x2C, 0x10, 0x34, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, + 0xD1, 0xC1, 0x06, 0xE4, 0x06, 0xC2, 0x04, 0x28, 0x06, 0xD3, 0x4B, 0xC1, 0x00, 0x00, 0x08, 0x70, + 0x01, 0x00, 0x2C, 0x70, 0xFF, 0x3F, 0x08, 0x60, 0x00, 0x40, 0xB9, 0x76, 0x58, 0x70, 0x04, 0x21, + 0x6B, 0xBB, 0x00, 0x00, 0x08, 0x20, 0x00, 0x30, 0x08, 0x30, 0x08, 0x00, 0x2C, 0x30, 0x00, 0x02, + 0x0C, 0x40, 0x00, 0x09, 0x2C, 0x20, 0x00, 0x40, 0x0C, 0xF0, 0x40, 0x01, 0xF1, 0xF0, 0x04, 0x20, + 0x6B, 0xBB, 0x00, 0x00, 0x0C, 0x20, 0x00, 0x02, 0x4B, 0xF9, 0x00, 0x00, 0x06, 0x2C, 0x06, 0x3D, + 0x06, 0x4E, 0xEB, 0x03, 0x01, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x18, 0x00, 0xD9, 0xC1, 0x08, 0x00, 0xC1, 0xA1, 0x06, 0xC3, 0x06, 0xB2, 0x2B, 0xD4, + 0x00, 0x00, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x00, 0xF0, 0x08, 0x60, 0x00, 0x80, 0x2F, 0xD6, + 0x07, 0x00, 0x2C, 0x60, 0x00, 0x0C, 0x2F, 0xA6, 0x07, 0x00, 0x06, 0xED, 0x06, 0x3E, 0x0C, 0x20, + 0x30, 0x00, 0x77, 0x31, 0x0C, 0xF0, 0x9C, 0x02, 0xF1, 0xF0, 0x2C, 0xE0, 0x00, 0x04, 0xC6, 0xEA, + 0x92, 0xF6, 0x0C, 0xF0, 0x98, 0x02, 0xF1, 0xF0, 0x06, 0x3D, 0x06, 0x4B, 0x0C, 0x20, 0x50, 0x01, + 0x77, 0x31, 0x0C, 0x50, 0x40, 0x02, 0x0C, 0xF0, 0xD0, 0x02, 0xF1, 0xF0, 0x2B, 0x49, 0x00, 0x00, + 0x08, 0x30, 0x00, 0x80, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x30, 0x00, 0xFA, 0x26, 0x37, 0x06, 0x4C, + 0x0C, 0x20, 0x50, 0x01, 0x77, 0x31, 0x0C, 0x50, 0x80, 0x00, 0x0C, 0xF0, 0xD0, 0x02, 0xF1, 0xF0, + 0xAB, 0xD4, 0x00, 0x00, 0x58, 0xC1, 0x08, 0x00, 0x40, 0xA1, 0x2C, 0x10, 0x18, 0x00, 0xE1, 0xF0, + 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, 0x08, 0xD0, 0x00, 0x80, 0xD1, 0x81, 0x06, 0xC4, + 0x06, 0x92, 0x06, 0xB3, 0x06, 0x2E, 0x0C, 0x20, 0x80, 0x0B, 0x06, 0x3D, 0x2C, 0x30, 0x00, 0xFA, + 0x0C, 0x40, 0x00, 0x02, 0x06, 0xA6, 0x06, 0x85, 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x06, 0x58, + 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0xAB, 0x0C, 0x57, 0x56, 0x66, 0x57, 0x57, 0x98, 0x06, 0x7E, + 0x0C, 0x70, 0x80, 0x0B, 0x66, 0x59, 0xA9, 0x57, 0xCC, 0x01, 0x77, 0x58, 0xA9, 0x57, 0xCE, 0x01, + 0x38, 0x50, 0x14, 0x00, 0x2C, 0xD0, 0x00, 0xFA, 0xA9, 0x57, 0xD0, 0x01, 0x77, 0x58, 0xA9, 0x57, + 0xD2, 0x01, 0x38, 0x5D, 0xC8, 0x01, 0x06, 0x3B, 0x57, 0x38, 0x66, 0x3C, 0x24, 0x51, 0xCC, 0xA0, + 0x32, 0x00, 0xA9, 0x37, 0xC4, 0x01, 0xA9, 0x57, 0xC8, 0x01, 0x77, 0x38, 0x77, 0x58, 0xA9, 0x37, + 0xC6, 0x01, 0xA9, 0x57, 0xCA, 0x01, 0x04, 0x60, 0x92, 0x05, 0xA9, 0x67, 0xC0, 0x01, 0xA9, 0x67, + 0xC2, 0x01, 0x08, 0x20, 0x00, 0x00, 0x08, 0x40, 0x00, 0x00, 0x2C, 0x20, 0x80, 0x02, 0x08, 0x30, + 0x00, 0x80, 0x2C, 0x40, 0x6C, 0x03, 0x36, 0x42, 0x2C, 0x30, 0x74, 0x7B, 0x0C, 0xF0, 0x04, 0x01, + 0xF1, 0xF0, 0x08, 0x20, 0x00, 0x30, 0x06, 0x3E, 0x0C, 0x30, 0x80, 0x0B, 0x2C, 0x20, 0x00, 0x40, + 0x0B, 0x0D, 0x01, 0x00, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, + 0x18, 0x70, 0xBB, 0x15, 0x1C, 0x50, 0x10, 0x00, 0x56, 0x75, 0xCC, 0x20, 0x32, 0x00, 0x3C, 0x10, + 0x1C, 0x00, 0x64, 0x78, 0xD9, 0xC1, 0x0C, 0x00, 0x99, 0x70, 0xBB, 0x15, 0x08, 0xE0, 0x00, 0x80, + 0x06, 0xD2, 0x2C, 0xE0, 0x00, 0xFA, 0x92, 0x09, 0xB8, 0x7E, 0xC0, 0x01, 0x92, 0x06, 0x0C, 0x20, + 0x78, 0x00, 0xEB, 0x49, 0x00, 0x00, 0xF2, 0x1C, 0xAB, 0x69, 0x00, 0x00, 0x04, 0x21, 0xCB, 0x61, + 0x00, 0x00, 0x04, 0x21, 0x0B, 0xB8, 0x00, 0x00, 0x04, 0x21, 0x0B, 0xB7, 0x00, 0x00, 0x04, 0x28, + 0x04, 0x34, 0x26, 0x31, 0x06, 0x41, 0x26, 0x21, 0xEB, 0x09, 0x01, 0x00, 0x06, 0x52, 0x38, 0x31, + 0x08, 0x00, 0x30, 0x21, 0x38, 0x41, 0x04, 0x00, 0x06, 0x6D, 0x8B, 0x11, 0x01, 0x00, 0xEB, 0x14, + 0x00, 0x00, 0x38, 0x6E, 0xCC, 0x01, 0x08, 0x70, 0x00, 0x30, 0xB9, 0x67, 0x04, 0x01, 0x38, 0x6E, + 0xC4, 0x01, 0xB9, 0x67, 0x08, 0x01, 0x0B, 0xE5, 0x00, 0x00, 0xF2, 0x00, 0x98, 0x70, 0xB4, 0x15, + 0x3C, 0x10, 0xA4, 0x04, 0xD9, 0x81, 0x84, 0x04, 0xD9, 0xC1, 0x94, 0x04, 0x06, 0xA2, 0x06, 0x93, + 0x82, 0x72, 0x04, 0xD0, 0x08, 0xB0, 0x00, 0x30, 0x06, 0xED, 0x2C, 0xB0, 0x00, 0x49, 0x04, 0xC0, + 0x0C, 0x40, 0x80, 0x04, 0x06, 0x2D, 0x06, 0x3C, 0x26, 0x41, 0xEB, 0xF1, 0x00, 0x00, 0x86, 0x22, + 0x82, 0x2C, 0xCC, 0x20, 0x08, 0x07, 0x92, 0x06, 0x0C, 0x60, 0xFC, 0x08, 0x0C, 0x50, 0x14, 0x05, + 0xF2, 0x09, 0x23, 0x52, 0x0C, 0x60, 0xF4, 0x01, 0x26, 0x65, 0x3C, 0x50, 0xF4, 0x01, 0x23, 0x66, + 0x23, 0x55, 0x38, 0x21, 0x80, 0x04, 0xC4, 0x91, 0x06, 0x72, 0x57, 0x71, 0x26, 0x7B, 0x30, 0x77, + 0x82, 0x02, 0x67, 0x78, 0x5C, 0x70, 0xFF, 0x0F, 0xC6, 0x75, 0x04, 0x31, 0x22, 0x04, 0xC6, 0x76, + 0x02, 0x0C, 0x04, 0x30, 0x06, 0x4A, 0x6B, 0xF4, 0x00, 0x00, 0x38, 0x61, 0x80, 0x04, 0x2F, 0x7E, + 0x0E, 0x00, 0x26, 0x71, 0xA1, 0x67, 0x24, 0xE1, 0x24, 0xC1, 0xC4, 0xCE, 0x92, 0xCA, 0x24, 0xD1, + 0xCC, 0xD0, 0x16, 0x00, 0x92, 0xC5, 0xC4, 0xE0, 0x82, 0x2E, 0x04, 0x23, 0x4B, 0xC1, 0x00, 0x00, + 0x04, 0x21, 0x0B, 0xB8, 0x00, 0x00, 0x04, 0x21, 0x0B, 0xB7, 0x00, 0x00, 0x34, 0xE1, 0x26, 0xEE, + 0x14, 0xF2, 0x08, 0x50, 0x00, 0x30, 0x26, 0xE1, 0x26, 0xF1, 0x2C, 0x50, 0x00, 0x49, 0x20, 0x4E, + 0x04, 0x2A, 0x06, 0x34, 0x57, 0x31, 0x26, 0x35, 0x30, 0x73, 0x5C, 0x70, 0xFF, 0x0F, 0x26, 0x27, + 0xCC, 0x20, 0xFF, 0x0F, 0x06, 0x62, 0xC2, 0x03, 0x0C, 0x60, 0xFF, 0x0F, 0x34, 0xE2, 0x57, 0x68, + 0xC6, 0xEF, 0x66, 0x67, 0xB1, 0x63, 0x92, 0xEC, 0x18, 0x20, 0xBB, 0x15, 0xB9, 0x41, 0x80, 0x04, + 0x4B, 0xC1, 0x00, 0x00, 0x58, 0xC1, 0x94, 0x04, 0x58, 0x81, 0x84, 0x04, 0x2C, 0x10, 0xA4, 0x04, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0x00, 0x30, 0x0C, 0x70, 0x00, 0x49, 0x0C, 0x40, 0xD0, 0x4D, + 0x26, 0x76, 0x26, 0x46, 0x30, 0x57, 0x04, 0x6A, 0x5C, 0x50, 0xFF, 0x0F, 0x26, 0x65, 0x57, 0x68, + 0x66, 0x65, 0xB1, 0x67, 0x24, 0x74, 0xC6, 0x74, 0x92, 0xF6, 0xE1, 0xF0, 0x98, 0x60, 0xAF, 0x10, + 0x38, 0x70, 0x94, 0x15, 0x18, 0x57, 0x76, 0x00, 0x18, 0x47, 0x75, 0x00, 0x92, 0x09, 0x98, 0x60, + 0xB0, 0x10, 0x82, 0x06, 0x26, 0x76, 0x18, 0x77, 0x92, 0x00, 0x26, 0x47, 0x13, 0x44, 0x98, 0x70, + 0xBA, 0x15, 0x82, 0x03, 0x24, 0x51, 0x13, 0x55, 0x10, 0x72, 0x04, 0x60, 0xC6, 0x76, 0x82, 0x14, + 0xC6, 0x74, 0xA2, 0x12, 0xCC, 0x70, 0x13, 0x00, 0xC2, 0x0B, 0x24, 0x51, 0x06, 0x45, 0x57, 0x41, + 0x57, 0x52, 0x26, 0x54, 0xC6, 0x75, 0x22, 0x08, 0x1C, 0x70, 0x10, 0x00, 0xF2, 0x03, 0x0C, 0x70, + 0x13, 0x00, 0x91, 0x72, 0x04, 0x61, 0x06, 0x26, 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x40, 0x00, 0x10, + 0x30, 0x74, 0x18, 0x60, 0x1A, 0x10, 0x08, 0x50, 0x0F, 0x00, 0x2C, 0x50, 0xFF, 0xFF, 0x24, 0x71, + 0x56, 0x75, 0x08, 0x50, 0x00, 0x3C, 0x66, 0x75, 0x06, 0x56, 0x57, 0x5A, 0x08, 0x30, 0xF0, 0x00, + 0x16, 0x66, 0x56, 0x53, 0xF7, 0x6F, 0x66, 0x75, 0x57, 0x6A, 0xB1, 0x74, 0x6C, 0x60, 0x75, 0x00, + 0xD7, 0x7A, 0x66, 0x67, 0x08, 0x70, 0x00, 0x30, 0xB9, 0x67, 0x00, 0x01, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x0C, 0x20, 0x80, 0x02, 0x04, 0x30, 0x0C, 0x40, 0x80, 0x04, 0xB1, 0xF1, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x00, 0x07, 0x04, 0x30, 0x0C, 0x40, 0x80, 0x04, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x80, 0x0B, 0x04, 0x30, 0x0C, 0x40, 0x80, 0x04, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, + 0x0B, 0x2B, 0x01, 0x00, 0x08, 0x70, 0x00, 0x80, 0x18, 0x27, 0x08, 0xDC, 0x2B, 0x15, 0x03, 0x00, + 0xCB, 0xCD, 0x01, 0x00, 0x0C, 0x70, 0x14, 0x00, 0xA9, 0x70, 0x24, 0x10, 0x38, 0x70, 0x94, 0x15, + 0x18, 0x67, 0x55, 0x00, 0x99, 0x60, 0x6D, 0x12, 0xAB, 0x81, 0x03, 0x00, 0x99, 0x00, 0x62, 0x12, + 0x99, 0x00, 0x63, 0x12, 0x99, 0x00, 0x64, 0x12, 0xAB, 0xB9, 0x01, 0x00, 0x38, 0x70, 0x94, 0x15, + 0x40, 0xE1, 0x18, 0x67, 0xC5, 0x00, 0x99, 0x60, 0x0C, 0x15, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x14, 0x61, 0xB1, 0xF1, 0x99, 0x60, 0x0D, 0x15, 0x4B, 0x18, 0x03, 0x00, 0xCB, 0x33, + 0x02, 0x00, 0xEB, 0x41, 0x01, 0x00, 0xAB, 0x42, 0x01, 0x00, 0x8B, 0x64, 0x03, 0x00, 0x30, 0xF1, + 0x99, 0x00, 0x1B, 0x10, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x20, 0x38, 0x15, 0x04, 0x30, + 0x0C, 0x40, 0x1C, 0x00, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x8B, 0x3E, 0x01, 0x00, 0x4B, 0x36, 0x02, 0x00, + 0x4B, 0x09, 0x02, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x70, 0x05, 0x10, + 0x34, 0x18, 0xC1, 0xE1, 0x82, 0x0A, 0x18, 0x60, 0x2B, 0x13, 0xCC, 0x60, 0xC7, 0x00, 0xD2, 0x2E, + 0x24, 0x61, 0x99, 0x60, 0x2B, 0x13, 0xF2, 0x2A, 0x14, 0x61, 0x99, 0x00, 0x2B, 0x13, 0x99, 0x60, + 0x0D, 0x15, 0x38, 0x60, 0x84, 0x15, 0x06, 0xE7, 0xC4, 0x64, 0xC2, 0x09, 0xAB, 0x42, 0x01, 0x00, + 0xEB, 0x41, 0x01, 0x00, 0x4B, 0x18, 0x03, 0x00, 0x8B, 0x64, 0x03, 0x00, 0x99, 0x00, 0x32, 0x13, + 0x99, 0x00, 0x39, 0x13, 0x14, 0x71, 0x99, 0x70, 0x2F, 0x13, 0x99, 0x70, 0x2E, 0x13, 0x38, 0x70, + 0x80, 0x15, 0x0C, 0x60, 0x14, 0x00, 0xC6, 0x76, 0xD2, 0x03, 0x34, 0x71, 0x13, 0x67, 0x38, 0x70, + 0x84, 0x15, 0xC6, 0x76, 0xC2, 0x03, 0xCB, 0x33, 0x02, 0x00, 0x98, 0x70, 0xBD, 0x15, 0x82, 0x1A, + 0x28, 0x70, 0x06, 0x10, 0x1C, 0x60, 0xE1, 0x00, 0x56, 0x76, 0xA9, 0x70, 0x06, 0x10, 0xAB, 0x31, + 0x01, 0x00, 0x8B, 0x30, 0x03, 0x00, 0x8B, 0x33, 0x03, 0x00, 0x8B, 0x64, 0x03, 0x00, 0x38, 0x70, + 0x94, 0x15, 0x99, 0x00, 0x1A, 0x10, 0x18, 0x67, 0x55, 0x00, 0x99, 0x60, 0x6D, 0x12, 0x99, 0x00, + 0x2E, 0x11, 0x38, 0x50, 0x38, 0x15, 0x06, 0x75, 0x18, 0x40, 0x2C, 0x13, 0x77, 0x76, 0x54, 0x7F, + 0xC6, 0x47, 0x32, 0x04, 0x99, 0x70, 0x2C, 0x13, 0xF2, 0x07, 0x06, 0x75, 0xDC, 0x70, 0x00, 0xF0, + 0x92, 0x03, 0x99, 0x00, 0x2C, 0x13, 0x98, 0x70, 0x6E, 0x15, 0x82, 0x0A, 0x18, 0x70, 0x1B, 0x10, + 0xCC, 0x70, 0xFF, 0x00, 0x82, 0x07, 0x24, 0x71, 0x99, 0x70, 0x1B, 0x10, 0xF2, 0x03, 0x99, 0x00, + 0x1B, 0x10, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, 0xAB, 0x31, 0x01, 0x00, + 0x2B, 0xE7, 0x02, 0x00, 0x4B, 0x0E, 0x03, 0x00, 0x2B, 0x3C, 0x02, 0x00, 0x0B, 0x0B, 0x02, 0x00, + 0x0B, 0x94, 0x01, 0x00, 0xEB, 0x49, 0x01, 0x00, 0x98, 0x70, 0x2A, 0x13, 0x82, 0x07, 0x99, 0x00, + 0x52, 0x15, 0x6B, 0x32, 0x01, 0x00, 0x04, 0x20, 0xF2, 0x1A, 0x38, 0x70, 0x94, 0x15, 0x98, 0x77, + 0xB2, 0x00, 0x92, 0x06, 0x8B, 0xCE, 0x01, 0x00, 0x2B, 0xC2, 0x01, 0x00, 0xF2, 0x05, 0x2B, 0xC2, + 0x01, 0x00, 0x8B, 0xCE, 0x01, 0x00, 0x8B, 0x4B, 0x03, 0x00, 0x8B, 0x33, 0x03, 0x00, 0xAB, 0x2C, + 0x03, 0x00, 0x8B, 0x58, 0x03, 0x00, 0xAB, 0x38, 0x03, 0x00, 0x04, 0x21, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x18, 0x20, 0x6E, 0x15, 0x18, 0x30, 0x52, 0x15, 0x34, 0x14, 0xB1, 0xF1, + 0xEB, 0x84, 0x03, 0x00, 0xEB, 0x6B, 0x03, 0x00, 0x6B, 0x64, 0x03, 0x00, 0xCB, 0x58, 0x03, 0x00, + 0x6B, 0x61, 0x03, 0x00, 0x6B, 0x32, 0x01, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x18, 0x0C, 0x20, 0x1D, 0x13, 0x04, 0x30, 0x04, 0x45, 0xC1, 0xE1, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0x20, 0x78, 0x12, 0x04, 0x30, 0x0C, 0x40, 0x50, 0x00, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0xE0, 0x00, 0x10, 0x99, 0x0E, 0x27, 0x03, 0x0C, 0x20, 0xDE, 0x14, 0x04, 0x30, + 0x0C, 0x40, 0x28, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x99, 0x0E, 0x07, 0x05, 0x0C, 0x20, + 0x38, 0x15, 0x04, 0x30, 0x04, 0x44, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x3C, 0x15, + 0x04, 0x30, 0x0C, 0x40, 0x14, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x99, 0x0E, 0x52, 0x05, + 0xA9, 0x0E, 0x50, 0x05, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x20, + 0xA6, 0x10, 0x04, 0x30, 0x04, 0x4C, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, + 0x24, 0x14, 0xE1, 0xF0, 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x60, 0x94, 0x15, 0x34, 0x14, 0xB1, 0xF1, + 0x0C, 0x70, 0x00, 0x10, 0x98, 0x57, 0x35, 0x03, 0x28, 0x26, 0x72, 0x00, 0x82, 0x04, 0x28, 0x26, + 0x7A, 0x00, 0xF2, 0x08, 0x98, 0x77, 0x36, 0x03, 0x82, 0x05, 0x28, 0x76, 0x7A, 0x00, 0x26, 0x27, + 0x23, 0x22, 0x06, 0x32, 0xAB, 0x97, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x30, 0x00, 0xD9, 0xC1, 0x20, 0x00, 0x06, 0x73, 0x06, 0xC3, 0xD9, 0x81, 0x10, 0x00, + 0x0C, 0xD0, 0x00, 0x10, 0x04, 0x91, 0x57, 0xC2, 0xD7, 0x71, 0x26, 0xCD, 0xB1, 0x51, 0x26, 0x7D, + 0x26, 0x94, 0x04, 0xB8, 0x04, 0x54, 0x06, 0x62, 0x26, 0xBC, 0x26, 0x57, 0x13, 0x99, 0x2C, 0x70, + 0x3A, 0x01, 0x04, 0x84, 0x0C, 0x20, 0x78, 0x02, 0x06, 0xE3, 0x99, 0x9B, 0x7A, 0x02, 0x06, 0xA4, + 0x06, 0x37, 0x06, 0x48, 0x26, 0x2C, 0xB9, 0x51, 0x0C, 0x00, 0xB9, 0x61, 0x08, 0x00, 0xB9, 0x71, + 0x04, 0x00, 0x6B, 0xCF, 0x03, 0x00, 0x38, 0x71, 0x04, 0x00, 0x0C, 0x20, 0x7C, 0x02, 0x06, 0x48, + 0x26, 0x2C, 0x06, 0x37, 0x6B, 0xCF, 0x03, 0x00, 0x04, 0x71, 0x26, 0x7E, 0x06, 0x47, 0xD7, 0x41, + 0x26, 0x4D, 0x28, 0x44, 0x36, 0x01, 0x26, 0xDA, 0x99, 0x4B, 0x7B, 0x02, 0x30, 0x41, 0x99, 0x4C, + 0x84, 0x02, 0x38, 0x51, 0x0C, 0x00, 0x28, 0x55, 0x34, 0x01, 0xA9, 0x5B, 0x78, 0x02, 0x38, 0x61, + 0x08, 0x00, 0x26, 0xE6, 0x91, 0x9E, 0x99, 0x7D, 0x1D, 0x03, 0x99, 0x0D, 0x18, 0x03, 0x58, 0xC1, + 0x20, 0x00, 0x58, 0x81, 0x10, 0x00, 0x2C, 0x10, 0x30, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0xE8, 0x00, + 0xD9, 0xC1, 0xD8, 0x00, 0x38, 0x70, 0x94, 0x15, 0xD9, 0x81, 0xC8, 0x00, 0x0C, 0x50, 0x75, 0x00, + 0x0C, 0x60, 0x77, 0x00, 0x0C, 0x20, 0x78, 0x00, 0x26, 0x57, 0x26, 0x67, 0x26, 0x27, 0x10, 0x55, + 0x18, 0xE7, 0x76, 0x00, 0x10, 0x66, 0x10, 0x72, 0xB9, 0x51, 0xA4, 0x00, 0x04, 0xB0, 0xB9, 0x61, + 0xA8, 0x00, 0xB9, 0x71, 0xB0, 0x00, 0x0C, 0xA0, 0xD4, 0x12, 0x06, 0x9B, 0x0C, 0x80, 0x00, 0x10, + 0x18, 0x78, 0x28, 0x03, 0x06, 0xD8, 0xC6, 0x97, 0x32, 0x0F, 0x14, 0x72, 0x26, 0x7A, 0x90, 0x77, + 0x82, 0x07, 0x06, 0x2A, 0xEB, 0x25, 0x01, 0x00, 0xC4, 0x20, 0x82, 0x02, 0x24, 0xB1, 0x24, 0x91, + 0x2C, 0xA0, 0x10, 0x00, 0xF2, 0xEE, 0xC4, 0xB0, 0x99, 0x08, 0xB0, 0x00, 0x78, 0x38, 0xA6, 0x00, + 0x78, 0x68, 0xAA, 0x00, 0x78, 0x48, 0xA8, 0x00, 0x78, 0x78, 0xAC, 0x00, 0x82, 0x22, 0x3F, 0x66, + 0x03, 0x00, 0xC4, 0x60, 0x38, 0x50, 0x94, 0x15, 0x32, 0x02, 0x16, 0x66, 0x28, 0x35, 0x86, 0x00, + 0x43, 0x66, 0xC6, 0x63, 0x32, 0x16, 0x3F, 0x77, 0x04, 0x00, 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, + 0x28, 0x65, 0x88, 0x00, 0x43, 0x77, 0xC6, 0x76, 0x32, 0x03, 0x04, 0x71, 0xF2, 0x08, 0x28, 0x65, + 0x8A, 0x00, 0xC6, 0x76, 0x32, 0x03, 0x04, 0x72, 0xF2, 0x02, 0x04, 0x73, 0x99, 0x7D, 0xB0, 0x00, + 0x98, 0x7D, 0xAF, 0x00, 0x92, 0x0F, 0x98, 0x7D, 0xB0, 0x00, 0x82, 0x0C, 0x38, 0x60, 0x94, 0x15, + 0x38, 0x51, 0xA4, 0x00, 0x26, 0x76, 0x18, 0x77, 0x92, 0x00, 0x26, 0x75, 0x13, 0x77, 0xB9, 0x71, + 0xA4, 0x00, 0x38, 0x70, 0x94, 0x15, 0x18, 0x6D, 0x2B, 0x03, 0x18, 0x77, 0x92, 0x00, 0xC6, 0x67, + 0xB2, 0x07, 0x98, 0x7D, 0xAE, 0x00, 0x82, 0x04, 0x04, 0x71, 0x99, 0x7D, 0xAF, 0x00, 0x98, 0x70, + 0xBA, 0x15, 0x82, 0x09, 0x38, 0x71, 0xA8, 0x00, 0x24, 0xE1, 0x24, 0x71, 0x13, 0x77, 0x13, 0xEE, + 0xB9, 0x71, 0xA8, 0x00, 0x0C, 0x20, 0x88, 0x00, 0x26, 0x21, 0x04, 0x30, 0x04, 0x45, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x28, 0x7D, 0x06, 0x00, 0xDC, 0x70, 0xE0, 0x04, 0x82, 0x0A, 0x8B, 0x3E, + 0x01, 0x00, 0x8B, 0x30, 0x03, 0x00, 0x04, 0x71, 0x99, 0x7D, 0x32, 0x01, 0xFA, 0xC8, 0x02, 0x00, + 0x98, 0x7D, 0x29, 0x03, 0x99, 0x0D, 0x32, 0x01, 0x82, 0x04, 0x34, 0x71, 0x99, 0x7D, 0x29, 0x03, + 0x98, 0x8D, 0x04, 0x00, 0x92, 0x05, 0x98, 0x7D, 0x28, 0x03, 0x8A, 0xB9, 0x02, 0x00, 0x98, 0x3D, + 0x28, 0x03, 0x92, 0x1D, 0x0C, 0x20, 0xC8, 0x12, 0x0C, 0x40, 0x50, 0x00, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x98, 0xED, 0x29, 0x03, 0x9A, 0xAB, 0x02, 0x00, 0xC6, 0xE8, 0x32, 0x0C, 0x0C, 0x20, + 0x88, 0x00, 0x06, 0x3E, 0x06, 0x4E, 0x26, 0x21, 0x0C, 0x50, 0x14, 0x00, 0x8B, 0x44, 0x01, 0x00, + 0x24, 0xE1, 0xF2, 0xF4, 0x99, 0x8D, 0x27, 0x03, 0xFA, 0x9A, 0x02, 0x00, 0x0C, 0x20, 0x78, 0x00, + 0x04, 0x31, 0x26, 0x21, 0x04, 0x46, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x18, 0x3D, 0x28, 0x03, + 0x04, 0x70, 0x06, 0x5D, 0xB9, 0x71, 0x9C, 0x00, 0x06, 0x67, 0xC6, 0x63, 0x32, 0x12, 0x18, 0x45, + 0xD4, 0x02, 0xCC, 0x40, 0x13, 0x00, 0xC2, 0x04, 0x04, 0x21, 0xB9, 0x21, 0x9C, 0x00, 0x34, 0x41, + 0xCC, 0x40, 0x12, 0x00, 0xD2, 0x02, 0x04, 0x71, 0x24, 0x61, 0x2C, 0x50, 0x10, 0x00, 0xF2, 0xEE, + 0xC4, 0x70, 0x82, 0x04, 0x04, 0x50, 0xB9, 0x51, 0x9C, 0x00, 0xCB, 0x42, 0x01, 0x00, 0x38, 0x70, + 0x94, 0x15, 0xB9, 0x21, 0x98, 0x00, 0x18, 0xC7, 0x74, 0x00, 0x06, 0x3C, 0x4B, 0x9E, 0x00, 0x00, + 0x06, 0x3C, 0x4B, 0x9E, 0x00, 0x00, 0x24, 0xE2, 0x06, 0x7E, 0x57, 0x71, 0x57, 0xE2, 0x26, 0x7E, + 0xB9, 0x71, 0xB4, 0x00, 0x04, 0x62, 0x04, 0x70, 0x14, 0x51, 0xB9, 0x21, 0xAC, 0x00, 0xB9, 0x61, + 0x90, 0x00, 0xB9, 0x71, 0xA0, 0x00, 0xB9, 0x51, 0x94, 0x00, 0x38, 0xE1, 0x90, 0x00, 0x06, 0x21, + 0x34, 0xE1, 0x13, 0x6E, 0x14, 0x31, 0x0C, 0x40, 0x78, 0x00, 0xB9, 0x61, 0x90, 0x00, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x80, 0x00, 0x26, 0x21, 0x14, 0x31, 0x04, 0x45, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x06, 0x61, 0x04, 0xB0, 0xC6, 0xB8, 0x32, 0x65, 0xB8, 0x71, 0x90, 0x00, + 0x38, 0xE1, 0x98, 0x00, 0x92, 0x06, 0xB8, 0x51, 0x9C, 0x00, 0x92, 0x03, 0x38, 0xE1, 0xAC, 0x00, + 0x0C, 0x70, 0x80, 0x00, 0x06, 0x9B, 0x26, 0x71, 0xD7, 0x91, 0x26, 0x7B, 0x26, 0x9D, 0x0C, 0xC0, + 0x00, 0x10, 0x04, 0xA1, 0xB9, 0x71, 0xB8, 0x00, 0x18, 0x7D, 0x28, 0x03, 0x14, 0x51, 0x26, 0x5A, + 0xC6, 0x57, 0x32, 0x45, 0x98, 0x7C, 0xD2, 0x02, 0x82, 0x3E, 0x0C, 0x20, 0xD4, 0x02, 0x26, 0x2C, + 0xB9, 0x61, 0xBC, 0x00, 0xEB, 0x25, 0x01, 0x00, 0x38, 0x51, 0x90, 0x00, 0x38, 0x61, 0xBC, 0x00, + 0xC6, 0x25, 0x92, 0x31, 0x78, 0x2C, 0xCC, 0x02, 0x78, 0x79, 0x3A, 0x01, 0x36, 0x27, 0xC4, 0x20, + 0x32, 0x02, 0x16, 0x22, 0x78, 0x5C, 0xCE, 0x02, 0x78, 0x79, 0x3C, 0x01, 0x3F, 0x77, 0x05, 0x00, + 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, 0x06, 0x32, 0xB9, 0x61, 0xBC, 0x00, 0xB9, 0x71, 0xC0, 0x00, + 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0xC0, 0x00, 0x06, 0x52, 0x06, 0x37, 0x06, 0x27, 0xB9, 0x51, + 0xC4, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x51, 0xC4, 0x00, 0x38, 0x61, 0xBC, 0x00, 0x26, 0x25, + 0xC6, 0x2E, 0x32, 0x05, 0x38, 0x71, 0xB8, 0x00, 0x06, 0xE2, 0x91, 0xA7, 0x06, 0x7A, 0x57, 0x71, + 0x26, 0x76, 0xB1, 0x27, 0x24, 0xA1, 0x2C, 0xC0, 0x10, 0x00, 0xF2, 0xB7, 0x24, 0xB1, 0x2C, 0x60, + 0x18, 0x00, 0xF2, 0x9B, 0x04, 0x70, 0xC6, 0x78, 0x3A, 0xE9, 0x00, 0x00, 0xB8, 0x61, 0x90, 0x00, + 0x38, 0x51, 0x98, 0x00, 0x92, 0x09, 0xB8, 0x51, 0x9C, 0x00, 0x82, 0x04, 0x38, 0x51, 0x98, 0x00, + 0xF2, 0x03, 0x38, 0x51, 0xAC, 0x00, 0x04, 0x31, 0x04, 0x60, 0x0C, 0x40, 0x88, 0x00, 0x26, 0x41, + 0x26, 0x46, 0x90, 0xF4, 0x92, 0x18, 0x0C, 0x40, 0x80, 0x00, 0x26, 0x41, 0x26, 0x46, 0x60, 0x24, + 0x2F, 0x46, 0x06, 0x00, 0x26, 0x46, 0x26, 0x44, 0x26, 0x42, 0x57, 0x41, 0x26, 0x41, 0x30, 0x44, + 0xC6, 0x45, 0x32, 0x09, 0xC4, 0x40, 0x22, 0x07, 0xC4, 0x20, 0x22, 0x05, 0x06, 0x54, 0xB9, 0x61, + 0x94, 0x00, 0x06, 0x3F, 0x24, 0x61, 0xC6, 0x68, 0x22, 0xE1, 0xC4, 0x30, 0x9A, 0xB4, 0x00, 0x00, + 0x38, 0xE1, 0x94, 0x00, 0x38, 0x61, 0xA0, 0x00, 0x57, 0xE2, 0x24, 0x61, 0x26, 0xED, 0xB9, 0x61, + 0xA0, 0x00, 0x98, 0x6E, 0x82, 0x02, 0x0C, 0xB0, 0x78, 0x02, 0x26, 0xBE, 0x9A, 0xA4, 0x00, 0x00, + 0x38, 0x51, 0x94, 0x00, 0x0C, 0x60, 0x80, 0x00, 0x26, 0x61, 0x26, 0x65, 0x60, 0xC6, 0xB9, 0x71, + 0xC0, 0x00, 0x04, 0x34, 0x26, 0x3C, 0x0C, 0x60, 0x00, 0x10, 0x57, 0x32, 0x26, 0x36, 0x06, 0x2B, + 0x2C, 0x30, 0x78, 0x02, 0x0C, 0x40, 0x10, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x38, 0x91, + 0x94, 0x00, 0x0C, 0x20, 0x00, 0x10, 0xD7, 0x91, 0x26, 0x92, 0x04, 0x54, 0x26, 0x59, 0x2C, 0x90, + 0x3A, 0x01, 0x06, 0x39, 0x04, 0x44, 0x06, 0x2B, 0xB9, 0x51, 0xC4, 0x00, 0x6B, 0xCF, 0x03, 0x00, + 0x38, 0xA1, 0x94, 0x00, 0x24, 0xA1, 0x06, 0x6A, 0x0C, 0x30, 0x00, 0x10, 0xD7, 0x61, 0x26, 0x63, + 0x28, 0x66, 0x36, 0x01, 0x04, 0x24, 0x99, 0x6E, 0x83, 0x02, 0x26, 0x2B, 0x06, 0x39, 0x04, 0x44, + 0x6B, 0xCF, 0x03, 0x00, 0x38, 0x51, 0xC4, 0x00, 0x28, 0x65, 0x34, 0x01, 0x38, 0x51, 0xA4, 0x00, + 0xA9, 0x6E, 0x80, 0x02, 0x18, 0x6E, 0x84, 0x02, 0x38, 0x71, 0xC0, 0x00, 0xC6, 0x56, 0x22, 0x04, + 0x24, 0x61, 0x99, 0x6E, 0x84, 0x02, 0x18, 0x6E, 0x84, 0x02, 0xCC, 0x60, 0x13, 0x00, 0xC2, 0x09, + 0x38, 0x51, 0xB4, 0x00, 0xC6, 0x65, 0x32, 0x05, 0x2C, 0x60, 0x14, 0x00, 0x99, 0x6E, 0x84, 0x02, + 0x38, 0x21, 0x94, 0x00, 0x18, 0x6E, 0x82, 0x02, 0x18, 0xFD, 0x28, 0x03, 0x0C, 0x50, 0x88, 0x00, + 0x26, 0x51, 0x26, 0x52, 0x91, 0x65, 0x34, 0x61, 0x26, 0x6D, 0x99, 0xA6, 0x1D, 0x03, 0x99, 0x06, + 0x18, 0x03, 0x0C, 0x60, 0x78, 0x00, 0x26, 0x61, 0x26, 0x6C, 0x91, 0x06, 0x57, 0xC1, 0x06, 0x41, + 0x04, 0x60, 0x2F, 0x5C, 0x04, 0x00, 0x14, 0x31, 0xB1, 0x35, 0xB8, 0x51, 0x90, 0x00, 0x38, 0x31, + 0x98, 0x00, 0x92, 0x06, 0xB8, 0x51, 0x9C, 0x00, 0x92, 0x03, 0x38, 0x31, 0xAC, 0x00, 0x0C, 0x50, + 0x88, 0x00, 0x26, 0x51, 0x26, 0x56, 0x90, 0x55, 0x82, 0x07, 0x24, 0x61, 0xC6, 0x68, 0x2C, 0x40, + 0x18, 0x00, 0x22, 0xE8, 0xF2, 0x12, 0x0C, 0xE0, 0x80, 0x00, 0x26, 0xE1, 0x26, 0xE6, 0xC6, 0x5F, + 0x32, 0xF5, 0x24, 0x51, 0x06, 0x25, 0x57, 0x21, 0x26, 0x24, 0xB0, 0x22, 0x22, 0xF9, 0xC6, 0x23, + 0x32, 0xF7, 0x91, 0x5E, 0x06, 0x32, 0xF2, 0xF4, 0x18, 0x6D, 0x28, 0x03, 0x38, 0x51, 0xA0, 0x00, + 0xC6, 0x56, 0x32, 0x04, 0x24, 0x71, 0xFA, 0x18, 0xFF, 0xFF, 0xB8, 0x61, 0x90, 0x00, 0x9A, 0x96, + 0xFE, 0xFF, 0x99, 0x0D, 0x2A, 0x03, 0x0C, 0xA0, 0xD4, 0x12, 0x06, 0xE6, 0x06, 0xB6, 0x06, 0xCD, + 0x18, 0x5D, 0x28, 0x03, 0x38, 0x61, 0x90, 0x00, 0xC6, 0x65, 0x32, 0x10, 0x38, 0x71, 0x90, 0x00, + 0x0C, 0x50, 0x78, 0x00, 0x24, 0x71, 0x26, 0x51, 0x26, 0x57, 0x90, 0x55, 0xB9, 0x71, 0x90, 0x00, + 0x82, 0x76, 0x2F, 0x5B, 0x08, 0x00, 0xC4, 0x54, 0x02, 0x0F, 0x28, 0x7D, 0x06, 0x00, 0x04, 0x64, + 0xD6, 0x67, 0x82, 0x71, 0x38, 0x51, 0xB0, 0x00, 0x14, 0x65, 0x56, 0x76, 0x99, 0x5D, 0x29, 0x03, + 0xA9, 0x7D, 0x06, 0x00, 0xF2, 0x68, 0x14, 0x42, 0x26, 0x4A, 0x10, 0x44, 0x38, 0x61, 0xA8, 0x00, + 0x06, 0x94, 0x34, 0x91, 0xB9, 0x41, 0x94, 0x00, 0x26, 0x9C, 0x0C, 0x40, 0xA0, 0x00, 0x26, 0x49, + 0x18, 0x24, 0x78, 0x02, 0x14, 0x3C, 0xC6, 0x26, 0x26, 0x3A, 0xB2, 0x3C, 0xC4, 0xB4, 0x12, 0x3A, + 0x06, 0x2A, 0xB9, 0x31, 0xBC, 0x00, 0xB9, 0x41, 0xC0, 0x00, 0xB9, 0x51, 0xC4, 0x00, 0xEB, 0x25, + 0x01, 0x00, 0xC4, 0x20, 0x38, 0x31, 0xBC, 0x00, 0x38, 0x41, 0xC0, 0x00, 0x38, 0x51, 0xC4, 0x00, + 0x82, 0x29, 0x18, 0x24, 0x78, 0x02, 0x24, 0xB1, 0x24, 0x21, 0x99, 0x24, 0x78, 0x02, 0x06, 0x25, + 0x57, 0x22, 0x26, 0x2C, 0x2C, 0x20, 0x78, 0x02, 0x0C, 0x40, 0x10, 0x00, 0xB9, 0x51, 0xC4, 0x00, + 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x38, 0x51, 0xC4, 0x00, 0x38, 0x71, 0x94, 0x00, 0x0C, 0x40, + 0x88, 0x00, 0x26, 0x41, 0x26, 0x45, 0x24, 0x51, 0x99, 0x59, 0x1D, 0x03, 0x98, 0x5C, 0x1A, 0x00, + 0x91, 0x74, 0x04, 0x21, 0x99, 0x2C, 0x2A, 0x03, 0x24, 0xE1, 0x92, 0x19, 0x99, 0x2C, 0x1A, 0x00, + 0xF2, 0x16, 0x06, 0x2A, 0xEB, 0x25, 0x01, 0x00, 0xC4, 0x20, 0x82, 0x11, 0x04, 0x31, 0x99, 0x3D, + 0xAE, 0x00, 0x10, 0x5A, 0xCC, 0x50, 0x13, 0x00, 0xC2, 0x0A, 0x18, 0x5C, 0x28, 0x03, 0xC4, 0x51, + 0x92, 0x06, 0x28, 0x5C, 0x06, 0x00, 0x64, 0x54, 0xA9, 0x5C, 0x06, 0x00, 0x2C, 0xA0, 0x10, 0x00, + 0xFA, 0x78, 0xFF, 0xFF, 0x0C, 0xA0, 0x84, 0x12, 0x04, 0xC0, 0x0C, 0xB0, 0x80, 0x0B, 0xC6, 0xC8, + 0x32, 0x4A, 0x0C, 0x70, 0x88, 0x00, 0x26, 0x71, 0x26, 0x7C, 0x90, 0x47, 0x92, 0x36, 0x0C, 0x70, + 0x1D, 0x13, 0xE0, 0x67, 0x92, 0x2E, 0xE8, 0x67, 0x05, 0x00, 0x92, 0x2B, 0x18, 0x3D, 0x28, 0x03, + 0x0C, 0x70, 0x27, 0x00, 0x26, 0x74, 0xD7, 0x71, 0xC4, 0x31, 0x26, 0x7D, 0x18, 0x57, 0x01, 0x00, + 0x10, 0x27, 0x38, 0x70, 0x94, 0x15, 0xC2, 0x04, 0x28, 0x77, 0x26, 0x00, 0xF2, 0x08, 0xC4, 0x30, + 0x82, 0x04, 0x28, 0x77, 0x24, 0x00, 0xF2, 0x03, 0x28, 0x77, 0x22, 0x00, 0x26, 0x55, 0x06, 0x65, + 0xD7, 0x61, 0x36, 0x65, 0x26, 0x62, 0x26, 0x66, 0x26, 0x6B, 0x70, 0x66, 0xC6, 0x67, 0x22, 0x0D, + 0x0C, 0x20, 0x88, 0x00, 0x26, 0x21, 0x06, 0x3C, 0x04, 0x51, 0x8B, 0x44, 0x01, 0x00, 0xF2, 0x05, + 0x24, 0x41, 0xC4, 0x45, 0x24, 0x71, 0x92, 0xCE, 0x98, 0x7D, 0x29, 0x03, 0x82, 0x08, 0x06, 0x2A, + 0xEB, 0x25, 0x01, 0x00, 0xC4, 0x20, 0x92, 0x03, 0x04, 0x71, 0x91, 0x7A, 0x24, 0xC1, 0x2C, 0xA0, + 0x10, 0x00, 0xF2, 0xB6, 0x26, 0xE8, 0x99, 0xED, 0x27, 0x03, 0xF2, 0x03, 0x99, 0x0D, 0x2A, 0x03, + 0x58, 0xC1, 0xD8, 0x00, 0x58, 0x81, 0xC8, 0x00, 0x2C, 0x10, 0xE8, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x38, 0x70, 0x94, 0x15, 0x3C, 0x10, 0x4C, 0x01, 0xD9, 0xC1, 0x3C, 0x01, 0xD9, 0x81, 0x2C, 0x01, + 0x18, 0xE7, 0x46, 0x00, 0x18, 0x97, 0x47, 0x00, 0x0C, 0x70, 0x78, 0x00, 0x26, 0x71, 0x0C, 0xB0, + 0x00, 0x10, 0x06, 0x27, 0x0C, 0x30, 0x78, 0x00, 0xB9, 0x71, 0x24, 0x01, 0xA9, 0x0B, 0x6E, 0x02, + 0xB9, 0x0B, 0x70, 0x02, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x06, 0x21, 0x0C, 0x30, 0x78, 0x00, + 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x06, 0x5E, 0x2F, 0x6E, 0x0E, 0x00, 0x57, 0x52, 0x36, 0x56, + 0x26, 0x6B, 0xB9, 0x61, 0xF8, 0x00, 0x04, 0x6E, 0x36, 0x69, 0x04, 0x8B, 0x26, 0x59, 0xB9, 0x61, + 0x04, 0x01, 0x0C, 0x60, 0x80, 0x02, 0x36, 0x8E, 0x26, 0x55, 0x26, 0x56, 0x26, 0x88, 0x04, 0xA7, + 0x2F, 0x49, 0x09, 0x00, 0x0C, 0x60, 0x16, 0x00, 0x14, 0x71, 0x04, 0xD0, 0x36, 0xA9, 0x26, 0x4B, + 0x36, 0x6E, 0x26, 0x78, 0x26, 0xAA, 0xB9, 0x41, 0x0C, 0x01, 0x06, 0xCD, 0xB9, 0xD1, 0xF4, 0x00, + 0xB9, 0xD1, 0xF0, 0x00, 0xB9, 0x51, 0x10, 0x01, 0xB9, 0x61, 0x08, 0x01, 0xB9, 0x71, 0x14, 0x01, + 0x38, 0x71, 0x04, 0x01, 0xC6, 0x97, 0x3A, 0x93, 0x00, 0x00, 0x38, 0x71, 0x10, 0x01, 0x0C, 0x50, + 0x78, 0x00, 0x26, 0x7D, 0xB9, 0x71, 0xFC, 0x00, 0x38, 0x71, 0x0C, 0x01, 0x04, 0x60, 0x26, 0x7D, + 0x26, 0x51, 0xB9, 0x71, 0x00, 0x01, 0x26, 0x5C, 0x06, 0x76, 0x38, 0x31, 0x08, 0x01, 0x2F, 0x4E, + 0x07, 0x00, 0xC6, 0x43, 0x32, 0x1E, 0x38, 0xF1, 0x00, 0x01, 0x38, 0x41, 0xFC, 0x00, 0x78, 0x2F, + 0xB2, 0x00, 0x38, 0xF1, 0xF8, 0x00, 0x2F, 0x37, 0x07, 0x00, 0x26, 0x3F, 0x26, 0x46, 0x78, 0x33, + 0xEE, 0x00, 0x70, 0x44, 0x26, 0x32, 0x26, 0x43, 0x38, 0x21, 0xF0, 0x00, 0x30, 0x35, 0x26, 0x24, + 0x26, 0x43, 0xB9, 0x21, 0xF0, 0x00, 0xB1, 0x45, 0x24, 0x71, 0x2C, 0x60, 0x1C, 0x00, 0xF2, 0xDE, + 0x0C, 0x70, 0x78, 0x00, 0x26, 0x71, 0x26, 0x7C, 0x30, 0x27, 0xB9, 0x71, 0x24, 0x01, 0x06, 0x38, + 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, 0x24, 0x01, 0x04, 0x60, 0xB1, 0x27, 0x06, 0x52, 0x06, 0x76, + 0x2F, 0x4C, 0x01, 0x00, 0x38, 0x21, 0x08, 0x01, 0x2F, 0x3E, 0x07, 0x00, 0xC6, 0x32, 0x32, 0x31, + 0x38, 0x31, 0xFC, 0x00, 0x38, 0x21, 0x00, 0x01, 0x26, 0x36, 0x70, 0x33, 0x78, 0xF2, 0xB2, 0x00, + 0x36, 0x35, 0xB9, 0x31, 0x28, 0x01, 0x38, 0x31, 0xF8, 0x00, 0x2F, 0x27, 0x07, 0x00, 0x26, 0x23, + 0x78, 0x22, 0xEE, 0x00, 0xB9, 0x41, 0x20, 0x01, 0xB9, 0x51, 0x18, 0x01, 0x26, 0x2F, 0x38, 0xF1, + 0x28, 0x01, 0xB9, 0x61, 0x1C, 0x01, 0xB9, 0x71, 0x24, 0x01, 0x26, 0x2F, 0x06, 0x32, 0xAB, 0x97, + 0x00, 0x00, 0x38, 0x41, 0x20, 0x01, 0x38, 0x71, 0x24, 0x01, 0x38, 0x61, 0x1C, 0x01, 0x30, 0x34, + 0x38, 0x51, 0x18, 0x01, 0x26, 0x23, 0xB1, 0x24, 0x24, 0x71, 0x2C, 0x60, 0x1C, 0x00, 0xF2, 0xCB, + 0x2F, 0x7C, 0x01, 0x00, 0x30, 0x27, 0x38, 0x31, 0x14, 0x01, 0xB9, 0x71, 0x24, 0x01, 0x24, 0x91, + 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, 0x24, 0x01, 0x24, 0xC4, 0xB1, 0x27, 0x38, 0x71, 0xF4, 0x00, + 0x24, 0xD2, 0x26, 0x72, 0xB9, 0x71, 0xF4, 0x00, 0xFA, 0x6C, 0xFF, 0xFF, 0x38, 0x21, 0xF4, 0x00, + 0x06, 0x3A, 0x4B, 0x9E, 0x00, 0x00, 0x06, 0x3A, 0x06, 0xD2, 0x06, 0x28, 0xAB, 0x97, 0x00, 0x00, + 0x06, 0x32, 0x38, 0x21, 0xF0, 0x00, 0x04, 0x80, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x7B, 0x70, 0x02, + 0x43, 0x92, 0x06, 0xC2, 0xA9, 0x9B, 0x6E, 0x02, 0xC6, 0x8A, 0x32, 0x11, 0x06, 0x68, 0x57, 0x61, + 0x26, 0x61, 0x30, 0x26, 0xB9, 0x71, 0x24, 0x01, 0x24, 0x81, 0x3F, 0x22, 0x0D, 0x00, 0x06, 0x32, + 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x24, 0x01, 0x26, 0x72, 0xF2, 0xEF, 0x14, 0x31, 0x06, 0x27, + 0x26, 0x3A, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x31, 0x04, 0x01, 0x06, 0xDB, 0x4B, 0x9E, 0x00, 0x00, + 0x0C, 0x30, 0x16, 0x00, 0x36, 0x3E, 0x4B, 0x9E, 0x00, 0x00, 0x86, 0x22, 0x32, 0x03, 0x2C, 0x20, + 0xFF, 0x03, 0xC4, 0x90, 0x67, 0x25, 0xB9, 0x2D, 0x70, 0x02, 0x92, 0x04, 0x24, 0xC1, 0xA9, 0xCB, + 0x6E, 0x02, 0x58, 0xC1, 0x3C, 0x01, 0x58, 0x81, 0x2C, 0x01, 0x2C, 0x10, 0x4C, 0x01, 0xE1, 0xF0, + 0x3C, 0x10, 0x40, 0x00, 0xD9, 0x81, 0x20, 0x00, 0x38, 0x70, 0x94, 0x15, 0xD9, 0xC1, 0x30, 0x00, + 0x0C, 0xE0, 0x00, 0x10, 0x30, 0xB7, 0x18, 0xC7, 0x56, 0x00, 0x28, 0x7E, 0x06, 0x00, 0x0C, 0x60, + 0x20, 0x00, 0xD6, 0x67, 0x82, 0x09, 0x98, 0x6E, 0x04, 0x00, 0x92, 0x06, 0x1C, 0x40, 0x21, 0x00, + 0x56, 0x74, 0xA9, 0x7E, 0x06, 0x00, 0x28, 0x6E, 0x60, 0x02, 0x18, 0x4E, 0x38, 0x01, 0x18, 0x5E, + 0x39, 0x01, 0xC4, 0x65, 0x28, 0x30, 0xA2, 0x15, 0xC2, 0x06, 0x34, 0x31, 0xA9, 0x30, 0xA2, 0x15, + 0x04, 0x71, 0xF2, 0x0B, 0xCC, 0x30, 0x14, 0x00, 0x02, 0x04, 0xA9, 0x00, 0xA2, 0x15, 0xF2, 0x04, + 0x24, 0x31, 0xA9, 0x30, 0xA2, 0x15, 0x04, 0x70, 0x14, 0x32, 0x26, 0x34, 0xC4, 0x37, 0xD2, 0x19, + 0x14, 0x47, 0x26, 0x45, 0xC4, 0x48, 0xD2, 0x2C, 0xC4, 0x70, 0x82, 0x07, 0x28, 0x5E, 0x06, 0x00, + 0x0C, 0x70, 0x23, 0x00, 0x54, 0x58, 0xF2, 0x08, 0x28, 0x5E, 0x06, 0x00, 0x28, 0x6E, 0x58, 0x02, + 0x54, 0x58, 0x0C, 0x70, 0x34, 0x00, 0xC4, 0x50, 0x82, 0x56, 0x0C, 0x70, 0x50, 0x00, 0xF2, 0x53, + 0xC4, 0x41, 0xC2, 0x03, 0xC4, 0x49, 0xC2, 0x56, 0x34, 0x53, 0xC4, 0x5C, 0xD2, 0x53, 0xC4, 0x70, + 0x82, 0x07, 0x28, 0x5E, 0x06, 0x00, 0x0C, 0x70, 0x96, 0x00, 0x54, 0x58, 0xF2, 0x2A, 0x28, 0x5E, + 0x06, 0x00, 0x28, 0x6E, 0x5A, 0x02, 0x54, 0x58, 0x0C, 0x70, 0x32, 0x00, 0xF2, 0x22, 0xC4, 0x51, + 0xD2, 0x0E, 0xC4, 0x70, 0x82, 0x04, 0xCC, 0x60, 0x46, 0x00, 0xF2, 0x36, 0x28, 0x5E, 0x06, 0x00, + 0x28, 0x6E, 0x5C, 0x02, 0x54, 0x58, 0x0C, 0x70, 0x32, 0x00, 0xF2, 0x29, 0x14, 0x42, 0x26, 0x45, + 0xC4, 0x44, 0xD2, 0x14, 0xC4, 0x70, 0x82, 0x06, 0x28, 0x5E, 0x06, 0x00, 0x04, 0x7F, 0x54, 0x58, + 0xF2, 0x08, 0x28, 0x5E, 0x06, 0x00, 0x28, 0x6E, 0x5C, 0x02, 0x54, 0x58, 0x0C, 0x70, 0x6E, 0x00, + 0xC4, 0x50, 0x82, 0x19, 0x0C, 0x70, 0x3C, 0x00, 0xF2, 0x16, 0xC4, 0x5F, 0xC2, 0x1B, 0xC4, 0x70, + 0x82, 0x07, 0x28, 0x5E, 0x06, 0x00, 0x0C, 0x70, 0x1E, 0x00, 0x54, 0x58, 0xF2, 0x08, 0x28, 0x5E, + 0x06, 0x00, 0x28, 0x6E, 0x5C, 0x02, 0x54, 0x58, 0x0C, 0x70, 0x50, 0x00, 0xC4, 0x50, 0x82, 0x03, + 0x0C, 0x70, 0x46, 0x00, 0xC6, 0x67, 0x02, 0x06, 0x18, 0x7E, 0x04, 0x00, 0xC4, 0x71, 0xCA, 0x80, + 0x01, 0x00, 0x98, 0x7E, 0x63, 0x02, 0x99, 0x0E, 0x62, 0x02, 0x82, 0x05, 0x34, 0x71, 0x99, 0x7E, + 0x63, 0x02, 0xF2, 0x08, 0x28, 0x7E, 0x06, 0x00, 0x1C, 0x60, 0x01, 0x04, 0x56, 0x76, 0xA9, 0x7E, + 0x06, 0x00, 0x0C, 0x70, 0x00, 0x20, 0xD6, 0x7B, 0x8A, 0x91, 0x00, 0x00, 0x18, 0x7E, 0x28, 0x03, + 0x04, 0x91, 0xC4, 0x70, 0x92, 0x05, 0x18, 0x9E, 0x04, 0x00, 0x16, 0x99, 0xF7, 0x9F, 0x0B, 0x81, + 0x01, 0x00, 0x98, 0x8E, 0x04, 0x00, 0x82, 0x40, 0x38, 0xD0, 0x94, 0x15, 0x28, 0x7E, 0x08, 0x00, + 0x28, 0x6D, 0x4C, 0x00, 0xC6, 0x67, 0xC2, 0x38, 0x78, 0x6E, 0x6E, 0x02, 0xB9, 0x71, 0x14, 0x00, + 0x06, 0x57, 0xD7, 0x51, 0x2F, 0x27, 0x07, 0x00, 0x26, 0x25, 0x06, 0x36, 0xB9, 0x61, 0x18, 0x00, + 0x4B, 0x9E, 0x00, 0x00, 0x18, 0x5D, 0x4E, 0x00, 0x38, 0x61, 0x18, 0x00, 0x38, 0x71, 0x14, 0x00, + 0xC6, 0x25, 0x32, 0x22, 0x3F, 0x26, 0x07, 0x00, 0x04, 0x3A, 0x4B, 0x9E, 0x00, 0x00, 0x18, 0x7D, + 0x4F, 0x00, 0xC6, 0x27, 0x32, 0x19, 0x28, 0x6E, 0x68, 0x02, 0x18, 0x7D, 0x50, 0x00, 0xC6, 0x67, + 0xC2, 0x13, 0x78, 0x7D, 0x52, 0x00, 0x38, 0x6E, 0x70, 0x02, 0xC6, 0x67, 0x32, 0x0D, 0x98, 0x70, + 0xBA, 0x15, 0x92, 0x0A, 0x98, 0x7E, 0x2E, 0x01, 0x92, 0x07, 0x28, 0x7E, 0x74, 0x02, 0xCC, 0x70, + 0x13, 0x00, 0xCA, 0x39, 0x01, 0x00, 0x38, 0x60, 0x94, 0x15, 0x38, 0x5E, 0x70, 0x02, 0x18, 0x76, + 0x54, 0x00, 0xC6, 0x57, 0x22, 0x13, 0xC4, 0x80, 0x82, 0x11, 0x28, 0x7E, 0x06, 0x00, 0xDC, 0x70, + 0x80, 0x00, 0x92, 0x0C, 0x18, 0x7E, 0x6D, 0x02, 0x18, 0x66, 0x57, 0x00, 0xC6, 0x67, 0xC2, 0x06, + 0xC6, 0x7C, 0xC2, 0x04, 0x24, 0x71, 0x99, 0x7E, 0x6D, 0x02, 0x18, 0x7E, 0x6D, 0x02, 0xC6, 0x7C, + 0x28, 0x7E, 0x06, 0x00, 0xD2, 0x0C, 0xC4, 0x91, 0x92, 0x0A, 0x6C, 0x70, 0x80, 0x00, 0xA9, 0x7E, + 0x06, 0x00, 0x38, 0x70, 0x94, 0x15, 0x18, 0x77, 0x58, 0x00, 0xF2, 0x16, 0x0C, 0x60, 0x80, 0x00, + 0xD6, 0x67, 0x82, 0x14, 0x98, 0x6E, 0x6C, 0x02, 0x92, 0x0D, 0x1C, 0x80, 0x81, 0x00, 0x56, 0x78, + 0xA9, 0x7E, 0x06, 0x00, 0x38, 0x70, 0x94, 0x15, 0x18, 0x77, 0x55, 0x00, 0x99, 0x7E, 0x6D, 0x02, + 0xF2, 0x05, 0x06, 0x76, 0x34, 0x71, 0x99, 0x7E, 0x6C, 0x02, 0x98, 0x5E, 0x04, 0x00, 0x8A, 0x04, + 0x01, 0x00, 0x38, 0x20, 0x94, 0x15, 0x28, 0x3E, 0x06, 0x00, 0x0C, 0x40, 0x60, 0x00, 0x26, 0x42, + 0x10, 0x44, 0x18, 0x62, 0x5F, 0x00, 0x18, 0x72, 0x61, 0x00, 0xB9, 0x41, 0x04, 0x00, 0x0C, 0x40, + 0x10, 0x00, 0xD6, 0x43, 0x82, 0x07, 0xC6, 0x67, 0xC2, 0x04, 0x36, 0x67, 0x13, 0x66, 0xF2, 0x02, + 0x04, 0x61, 0x0C, 0x70, 0x18, 0x02, 0x26, 0x7E, 0x20, 0x77, 0xB1, 0x51, 0x04, 0x82, 0x04, 0x50, + 0x56, 0x8B, 0xB9, 0x71, 0x08, 0x00, 0x54, 0xB4, 0x0C, 0x70, 0xEC, 0x11, 0x06, 0xD5, 0x06, 0xC5, + 0xB9, 0x81, 0x0C, 0x00, 0xB9, 0xB1, 0x10, 0x00, 0xA8, 0x47, 0x04, 0x00, 0x82, 0x5B, 0x38, 0xA1, + 0x0C, 0x00, 0x04, 0xB0, 0xC6, 0xAB, 0x82, 0x09, 0x38, 0xF1, 0x04, 0x00, 0xC6, 0x4F, 0xC2, 0x05, + 0xB1, 0xB1, 0x6C, 0x30, 0x20, 0x00, 0x04, 0xB1, 0xB8, 0x81, 0x10, 0x00, 0x82, 0x4B, 0xC4, 0xB0, + 0x92, 0x49, 0xC6, 0x46, 0xA2, 0x47, 0x18, 0x42, 0x5E, 0x00, 0x38, 0xA1, 0x08, 0x00, 0xC6, 0x4A, + 0xB2, 0x41, 0x18, 0x47, 0x06, 0x00, 0x2F, 0xF4, 0x04, 0x00, 0x26, 0xF4, 0x26, 0xFF, 0x26, 0xFE, + 0xE8, 0x9F, 0x1A, 0x02, 0x02, 0x37, 0x06, 0xA5, 0x63, 0xA4, 0xD4, 0xA1, 0x92, 0x33, 0x70, 0x87, + 0x18, 0xAF, 0x1B, 0x02, 0xB9, 0x81, 0x1C, 0x00, 0x0C, 0x80, 0x00, 0x10, 0xD7, 0xA1, 0x26, 0xA8, + 0x38, 0x81, 0x1C, 0x00, 0xA9, 0x8A, 0x3A, 0x01, 0x78, 0x87, 0x02, 0x00, 0xA9, 0x8A, 0x3C, 0x01, + 0x04, 0xA1, 0x53, 0xA4, 0x06, 0x4A, 0x66, 0x45, 0x23, 0x54, 0x04, 0x42, 0x26, 0x4B, 0x13, 0x44, + 0x26, 0x4F, 0x18, 0xA4, 0x1A, 0x02, 0x24, 0xB1, 0x06, 0x4A, 0xD7, 0x41, 0x26, 0x4E, 0xA9, 0x04, + 0x3A, 0x01, 0xA9, 0x04, 0x3C, 0x01, 0x04, 0x41, 0x26, 0x4A, 0xD7, 0x41, 0x26, 0x4E, 0xA9, 0x04, + 0x36, 0x01, 0xC6, 0x9B, 0x04, 0x41, 0x53, 0x4A, 0x66, 0x4D, 0x23, 0xD4, 0x92, 0xE7, 0x26, 0xC9, + 0x23, 0xCC, 0x24, 0x78, 0x0C, 0xF0, 0x14, 0x12, 0xC6, 0x7F, 0x92, 0x9F, 0x30, 0x41, 0xA9, 0x3E, + 0x06, 0x00, 0xC4, 0xC0, 0x99, 0x4E, 0x04, 0x00, 0x82, 0x6A, 0x0C, 0xA0, 0x00, 0x10, 0x2C, 0xA0, + 0x38, 0x01, 0x04, 0x68, 0x26, 0x6A, 0x04, 0xB0, 0xB9, 0x61, 0x04, 0x00, 0x18, 0x7E, 0x04, 0x00, + 0xC6, 0xB7, 0x32, 0x2B, 0x06, 0x7D, 0x63, 0x7B, 0xD4, 0x71, 0x82, 0x25, 0x06, 0x7B, 0xD7, 0x71, + 0x06, 0x8B, 0xB1, 0x71, 0x04, 0x90, 0x18, 0x5E, 0x04, 0x00, 0xC6, 0x85, 0xB2, 0x1A, 0xC4, 0x84, + 0x92, 0x09, 0x0C, 0x20, 0x58, 0x11, 0x04, 0x30, 0x04, 0x48, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0xF2, 0x0D, 0x30, 0x21, 0x38, 0x31, 0x04, 0x00, 0x30, 0x61, 0x26, 0x2A, 0x26, 0x36, 0x26, 0x29, + 0x26, 0x39, 0x04, 0x48, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x24, 0x81, 0x24, 0x98, 0xF2, 0xE4, + 0xF7, 0xD0, 0x34, 0xB1, 0x24, 0xB1, 0xF2, 0xD3, 0x3F, 0xCC, 0x07, 0x00, 0x28, 0x7E, 0x06, 0x00, + 0x99, 0xCE, 0x04, 0x00, 0x6C, 0x70, 0x10, 0x00, 0xA9, 0x7E, 0x06, 0x00, 0xF2, 0x2D, 0x28, 0x7E, + 0x06, 0x00, 0x0C, 0x60, 0x00, 0x04, 0x66, 0x67, 0xA9, 0x6E, 0x06, 0x00, 0x04, 0x68, 0xD6, 0x67, + 0x0C, 0x70, 0x28, 0x00, 0x82, 0x03, 0x0C, 0x70, 0x14, 0x00, 0x99, 0x7E, 0x63, 0x02, 0x18, 0x7E, + 0x62, 0x02, 0xCC, 0x70, 0x13, 0x00, 0x1A, 0x7E, 0xFE, 0xFF, 0x24, 0x71, 0x99, 0x7E, 0x62, 0x02, + 0xFA, 0x79, 0xFE, 0xFF, 0x98, 0x7E, 0x6D, 0x02, 0x8A, 0xE1, 0xFE, 0xFF, 0x18, 0x6D, 0x59, 0x00, + 0xC6, 0x67, 0xAA, 0xDC, 0xFE, 0xFF, 0x34, 0x71, 0xFA, 0xD7, 0xFE, 0xFF, 0x1C, 0x70, 0x11, 0x00, + 0x56, 0x37, 0xA9, 0x3E, 0x06, 0x00, 0x58, 0xC1, 0x30, 0x00, 0x58, 0x81, 0x20, 0x00, 0x2C, 0x10, + 0x40, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, 0x08, 0xD0, 0x02, 0x00, + 0xD1, 0x81, 0x0C, 0xC0, 0x26, 0x10, 0x04, 0xE0, 0x2C, 0xD0, 0x00, 0x76, 0x06, 0x2E, 0x04, 0x3C, + 0x4B, 0x9E, 0x00, 0x00, 0x2C, 0xE0, 0x00, 0x2D, 0xC6, 0xED, 0x2C, 0x20, 0xE0, 0x01, 0xA1, 0x2C, + 0x24, 0xC2, 0x92, 0xF5, 0x08, 0xD0, 0x06, 0x00, 0x0C, 0xC0, 0x66, 0x10, 0x04, 0xE0, 0x2C, 0xD0, + 0x24, 0xDF, 0x06, 0x2E, 0x0C, 0x30, 0x14, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x2C, 0xE0, 0xF6, 0x4F, + 0xC6, 0xED, 0x2C, 0x20, 0xFF, 0x01, 0xA1, 0x2C, 0x24, 0xC2, 0x92, 0xF4, 0x08, 0xD0, 0x00, 0x80, + 0x0C, 0xC0, 0x00, 0x10, 0x0C, 0x90, 0xBA, 0x04, 0x0C, 0xE0, 0xAA, 0x14, 0x2C, 0xD0, 0x3E, 0xDC, + 0x26, 0x9C, 0x18, 0x7D, 0x05, 0x00, 0x1C, 0x20, 0xE0, 0x01, 0x2C, 0x70, 0x12, 0x00, 0x26, 0x77, + 0x26, 0x7C, 0x28, 0xA7, 0x02, 0x00, 0x04, 0x3A, 0x26, 0x2A, 0x0B, 0x9B, 0x00, 0x00, 0x10, 0x7D, + 0xA9, 0x2E, 0x04, 0x00, 0x1C, 0x20, 0xFF, 0x01, 0x2C, 0x70, 0x32, 0x00, 0x26, 0x77, 0x26, 0x7C, + 0x28, 0xB7, 0x02, 0x00, 0x04, 0x3A, 0x26, 0x2B, 0x0B, 0x9B, 0x00, 0x00, 0xA1, 0x2E, 0x0C, 0x20, + 0xE0, 0x01, 0x04, 0x3A, 0x26, 0x2A, 0x0B, 0x9B, 0x00, 0x00, 0xA9, 0x2E, 0x06, 0x00, 0x0C, 0x20, + 0xFF, 0x01, 0x26, 0x2B, 0x04, 0x3A, 0x0B, 0x9B, 0x00, 0x00, 0xA9, 0x2E, 0x02, 0x00, 0x24, 0xE8, + 0xC6, 0xE9, 0x24, 0xD1, 0x92, 0xCF, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, 0x20, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x60, 0x94, 0x15, 0x06, 0x72, 0x28, 0x66, 0xB0, 0x00, 0xC4, 0x70, + 0x13, 0x56, 0x32, 0x02, 0x16, 0x27, 0xC6, 0x25, 0x02, 0x0B, 0xC6, 0x75, 0x0C, 0x40, 0xFF, 0x00, + 0x56, 0x46, 0x02, 0x04, 0x3F, 0x44, 0x03, 0x00, 0xF2, 0x02, 0x26, 0x43, 0x23, 0x44, 0x06, 0x24, + 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x70, 0x94, 0x15, 0x3C, 0x10, 0x24, 0x00, 0xD9, 0xC1, 0x14, 0x00, + 0xD9, 0x81, 0x04, 0x00, 0x30, 0x77, 0xDC, 0x70, 0x10, 0x00, 0x82, 0x41, 0x0C, 0xC0, 0x00, 0x10, + 0x98, 0x9C, 0x27, 0x03, 0x82, 0x3C, 0x98, 0x8C, 0x28, 0x03, 0x82, 0x39, 0x0C, 0xE0, 0x78, 0x12, + 0x04, 0xD0, 0xC6, 0xD9, 0x32, 0x34, 0x06, 0x6A, 0x0C, 0x60, 0xD2, 0x12, 0x04, 0x70, 0xC6, 0x78, + 0x32, 0x2A, 0x2C, 0x60, 0x10, 0x00, 0x1C, 0x50, 0x10, 0x00, 0x26, 0x56, 0x18, 0x4E, 0x0A, 0x00, + 0x10, 0x55, 0xC6, 0x45, 0x92, 0x1E, 0x24, 0x75, 0x57, 0x72, 0x26, 0x7C, 0x78, 0x47, 0x78, 0x02, + 0x78, 0xB7, 0x7A, 0x02, 0x70, 0x3E, 0x78, 0x7E, 0x02, 0x00, 0x3F, 0x24, 0x03, 0x00, 0x36, 0x7B, + 0x23, 0x33, 0x23, 0x44, 0xB1, 0x71, 0xAB, 0xC0, 0x01, 0x00, 0xA1, 0x2E, 0x30, 0x71, 0x28, 0x3E, + 0x02, 0x00, 0x06, 0x27, 0x23, 0x4B, 0xAB, 0xC0, 0x01, 0x00, 0xA9, 0x2E, 0x02, 0x00, 0xF2, 0x03, + 0x24, 0x71, 0xF2, 0xD6, 0x24, 0xD1, 0x2C, 0xE0, 0x10, 0x00, 0xF2, 0xCC, 0x58, 0xC1, 0x14, 0x00, + 0x58, 0x81, 0x04, 0x00, 0x2C, 0x10, 0x24, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0xC6, 0x34, 0x3C, 0x10, + 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, 0xD1, 0x81, 0x06, 0xE2, 0x78, 0xA1, 0x20, 0x00, 0x78, 0xC1, + 0x24, 0x00, 0x78, 0xD1, 0x28, 0x00, 0x32, 0x05, 0xA1, 0xC2, 0xA9, 0xD2, 0x02, 0x00, 0xF2, 0x20, + 0xC6, 0x35, 0x22, 0x05, 0xA1, 0x62, 0xA9, 0xA2, 0x02, 0x00, 0xF2, 0x1A, 0x3F, 0x94, 0x03, 0x00, + 0x06, 0x29, 0x3F, 0x3C, 0x06, 0x00, 0x3F, 0xB4, 0x05, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x06, 0x3B, + 0x4B, 0x9E, 0x00, 0x00, 0x26, 0x2C, 0xA1, 0x2E, 0x3F, 0x3D, 0x0A, 0x00, 0x06, 0x29, 0xAB, 0x97, + 0x00, 0x00, 0x06, 0x3B, 0x4B, 0x9E, 0x00, 0x00, 0x26, 0x2D, 0xA9, 0x2E, 0x02, 0x00, 0x58, 0xC1, + 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x2F, 0x72, 0x02, 0x00, + 0x26, 0x72, 0x06, 0x67, 0x57, 0x62, 0x26, 0x76, 0x26, 0x27, 0x0C, 0x70, 0x00, 0x10, 0x2C, 0x20, + 0x3C, 0x03, 0x26, 0x27, 0x06, 0x72, 0x04, 0x69, 0x34, 0x61, 0xC4, 0x60, 0xA9, 0x07, 0x24, 0x00, + 0xA9, 0x07, 0x26, 0x00, 0x34, 0x74, 0x92, 0xF9, 0x04, 0x71, 0x99, 0x72, 0x28, 0x00, 0x38, 0x70, + 0x94, 0x15, 0xA9, 0x02, 0x2A, 0x00, 0x18, 0x77, 0x98, 0x00, 0x99, 0x02, 0x2D, 0x00, 0xA9, 0x02, + 0x32, 0x00, 0x99, 0x72, 0x2C, 0x00, 0x14, 0x71, 0xA9, 0x02, 0x30, 0x00, 0xA9, 0x02, 0x2E, 0x00, + 0xA1, 0x72, 0xA9, 0x72, 0x02, 0x00, 0xE1, 0xF0, 0x34, 0x18, 0xC1, 0xE1, 0x04, 0xE0, 0x06, 0x2E, + 0xEB, 0xCA, 0x01, 0x00, 0x24, 0xE1, 0xC4, 0xE5, 0x92, 0xFB, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, + 0x38, 0x70, 0x94, 0x15, 0x3C, 0x10, 0x8C, 0x00, 0x0C, 0x60, 0xAE, 0x00, 0xD9, 0xC1, 0x7C, 0x00, + 0xD9, 0x81, 0x6C, 0x00, 0x26, 0x67, 0x10, 0x66, 0xB9, 0x61, 0x3C, 0x00, 0x30, 0x67, 0xD4, 0x68, + 0x8A, 0x95, 0x03, 0x00, 0x18, 0xB7, 0x96, 0x00, 0x06, 0xD7, 0x04, 0xE0, 0x28, 0x2D, 0x9A, 0x00, + 0x04, 0xCC, 0x26, 0xC1, 0x06, 0x3B, 0xAB, 0x97, 0x00, 0x00, 0x26, 0xCE, 0x24, 0xE4, 0xCC, 0xE0, + 0x28, 0x00, 0xB1, 0x2C, 0x24, 0xD2, 0x92, 0xF3, 0x0C, 0xD0, 0x00, 0x10, 0x98, 0x7D, 0x27, 0x03, + 0x92, 0x05, 0xCB, 0xCD, 0x01, 0x00, 0xFA, 0x7A, 0x03, 0x00, 0x04, 0x70, 0x06, 0xED, 0xB9, 0x71, + 0x38, 0x00, 0x38, 0x71, 0x38, 0x00, 0x26, 0x7D, 0xE8, 0xA7, 0x1D, 0x03, 0x82, 0x15, 0x0C, 0x60, + 0x94, 0x15, 0x30, 0x76, 0x34, 0xA1, 0x98, 0x77, 0xAF, 0x00, 0x57, 0xA2, 0x26, 0xAD, 0x0C, 0xB0, + 0x78, 0x02, 0x26, 0xBA, 0x9A, 0xD3, 0x00, 0x00, 0x04, 0x2C, 0x26, 0x2B, 0xEB, 0x25, 0x01, 0x00, + 0xC4, 0x20, 0x9A, 0xCC, 0x00, 0x00, 0x38, 0x21, 0x38, 0x00, 0xEB, 0xCA, 0x01, 0x00, 0x38, 0x71, + 0x38, 0x00, 0x2C, 0xE0, 0x34, 0x00, 0x24, 0x71, 0xC4, 0x75, 0xB9, 0x71, 0x38, 0x00, 0x92, 0xDA, + 0x18, 0x6D, 0x82, 0x02, 0x99, 0x0D, 0x37, 0x03, 0x34, 0x61, 0x2F, 0x76, 0x06, 0x00, 0x26, 0x76, + 0x06, 0x57, 0x57, 0x52, 0x26, 0x75, 0x26, 0x76, 0x2C, 0x70, 0x3C, 0x03, 0x26, 0x7D, 0x78, 0x57, + 0x08, 0x00, 0x78, 0x67, 0x04, 0x00, 0x36, 0x65, 0xC4, 0x60, 0x32, 0x02, 0x16, 0x66, 0xCC, 0x60, + 0x40, 0x01, 0x02, 0x06, 0xC4, 0x50, 0x82, 0x04, 0x04, 0x61, 0x99, 0x6D, 0x37, 0x03, 0x18, 0x6D, + 0x27, 0x03, 0xC4, 0x61, 0x9A, 0x87, 0x00, 0x00, 0x98, 0x6D, 0x28, 0x03, 0x8A, 0x1E, 0x03, 0x00, + 0xF8, 0x67, 0x08, 0x00, 0x8A, 0x1A, 0x03, 0x00, 0xF8, 0x57, 0x0A, 0x00, 0x8A, 0x16, 0x03, 0x00, + 0xF8, 0x57, 0x04, 0x00, 0x8A, 0x12, 0x03, 0x00, 0xF8, 0x47, 0x06, 0x00, 0x8A, 0x0E, 0x03, 0x00, + 0x3F, 0x66, 0x05, 0x00, 0xC4, 0x60, 0x32, 0x02, 0x16, 0x66, 0x38, 0x30, 0x94, 0x15, 0x28, 0x53, + 0x7C, 0x00, 0xC6, 0x65, 0x02, 0x1E, 0x18, 0x4D, 0x34, 0x03, 0x04, 0x61, 0x5C, 0x40, 0xFC, 0x00, + 0x99, 0x4D, 0x34, 0x03, 0x99, 0x6D, 0x32, 0x03, 0x78, 0xF7, 0x04, 0x00, 0x78, 0x27, 0x08, 0x00, + 0xC6, 0xF2, 0x02, 0x07, 0x64, 0x41, 0x99, 0x4D, 0x34, 0x03, 0x04, 0x61, 0x04, 0x50, 0xF2, 0x10, + 0xC6, 0xF2, 0x04, 0x61, 0x04, 0x50, 0x32, 0x0C, 0x64, 0x42, 0x99, 0x4D, 0x34, 0x03, 0xF2, 0x08, + 0xCC, 0x60, 0x10, 0x00, 0x04, 0x51, 0x12, 0x02, 0x04, 0x50, 0x13, 0x55, 0x04, 0x60, 0x78, 0x27, + 0x06, 0x00, 0x78, 0x47, 0x0A, 0x00, 0x3F, 0x44, 0x02, 0x00, 0xC4, 0x40, 0x32, 0x02, 0x16, 0x44, + 0x28, 0x33, 0x7C, 0x00, 0xC6, 0x43, 0x02, 0x1A, 0x18, 0x4D, 0x34, 0x03, 0x04, 0x31, 0x5C, 0x40, + 0xF3, 0x00, 0x99, 0x4D, 0x34, 0x03, 0x99, 0x3D, 0x32, 0x03, 0x78, 0x37, 0x06, 0x00, 0x78, 0x77, + 0x0A, 0x00, 0xC6, 0x37, 0x02, 0x03, 0x64, 0x44, 0xF2, 0x04, 0xC6, 0x37, 0x32, 0x04, 0x64, 0x48, + 0x99, 0x4D, 0x34, 0x03, 0x24, 0x61, 0x13, 0x66, 0xF2, 0x06, 0xCC, 0x40, 0x10, 0x00, 0x02, 0x03, + 0x24, 0x51, 0x13, 0x55, 0x98, 0x7D, 0x35, 0x03, 0x92, 0x11, 0xC4, 0x52, 0x92, 0x0C, 0x18, 0x7D, + 0x33, 0x03, 0xCC, 0x70, 0xFF, 0x00, 0x8A, 0xA9, 0x02, 0x00, 0x24, 0x71, 0x99, 0x7D, 0x33, 0x03, + 0xFA, 0xA4, 0x02, 0x00, 0xC4, 0x60, 0x8A, 0xA1, 0x02, 0x00, 0x99, 0x0D, 0x33, 0x03, 0xFA, 0x9D, + 0x02, 0x00, 0xC4, 0x62, 0x9A, 0xA3, 0x02, 0x00, 0x0C, 0x70, 0xA6, 0x00, 0x26, 0x7D, 0x0C, 0x30, + 0x78, 0x02, 0x06, 0x27, 0x26, 0x3D, 0x04, 0x44, 0x6B, 0xCF, 0x03, 0x00, 0x06, 0x72, 0x04, 0x24, + 0x26, 0x27, 0x0C, 0x30, 0x88, 0x02, 0xFA, 0x8E, 0x02, 0x00, 0x78, 0x7A, 0x78, 0x02, 0xCC, 0x70, + 0x7F, 0x04, 0x1A, 0x36, 0xFF, 0xFF, 0x78, 0x7A, 0x7A, 0x02, 0xCC, 0x70, 0xFE, 0x07, 0x1A, 0x30, + 0xFF, 0xFF, 0x0C, 0xC0, 0x3C, 0x03, 0x26, 0xCE, 0x06, 0x7C, 0x04, 0x68, 0x28, 0x57, 0x20, 0x00, + 0x34, 0x61, 0xA9, 0x57, 0x24, 0x00, 0x28, 0x57, 0x22, 0x00, 0xC4, 0x60, 0xA9, 0x57, 0x26, 0x00, + 0x34, 0x74, 0x92, 0xF5, 0x0C, 0x20, 0x40, 0x03, 0x06, 0x3B, 0x26, 0x2E, 0x04, 0x44, 0x6B, 0xCF, + 0x03, 0x00, 0x04, 0x71, 0x99, 0x7D, 0x30, 0x01, 0x18, 0x7E, 0x64, 0x03, 0x78, 0x2E, 0x40, 0x03, + 0x78, 0x3E, 0x44, 0x03, 0xC4, 0x71, 0xC2, 0x12, 0x3F, 0x73, 0x02, 0x00, 0xC4, 0x70, 0x32, 0x02, + 0x16, 0x77, 0x43, 0x67, 0x78, 0x5E, 0x42, 0x03, 0x78, 0x7E, 0x46, 0x03, 0x3F, 0x77, 0x05, 0x00, + 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, 0x43, 0x87, 0xF2, 0x04, 0x0C, 0x80, 0xA0, 0x00, 0x06, 0x68, + 0xB9, 0x61, 0x68, 0x00, 0x0C, 0xF0, 0xD4, 0x00, 0xF1, 0xF0, 0x06, 0x92, 0x78, 0x3E, 0x46, 0x03, + 0x78, 0x2E, 0x42, 0x03, 0x0C, 0xF0, 0xD4, 0x00, 0xF1, 0xF0, 0x78, 0x3E, 0x48, 0x03, 0xB9, 0x21, + 0x34, 0x00, 0x06, 0x29, 0x0C, 0xF0, 0xD4, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x40, 0x00, 0x78, 0x3E, + 0x4A, 0x03, 0x38, 0x21, 0x34, 0x00, 0x0C, 0xF0, 0xD4, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x44, 0x00, + 0x78, 0x3E, 0x4C, 0x03, 0x78, 0x4E, 0x50, 0x03, 0x38, 0x21, 0x40, 0x00, 0x0C, 0xF0, 0xD8, 0x00, + 0xF1, 0xF0, 0xB9, 0x21, 0x48, 0x00, 0x78, 0x3E, 0x4E, 0x03, 0x78, 0x4E, 0x52, 0x03, 0x38, 0x21, + 0x44, 0x00, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x4C, 0x00, 0x78, 0x3E, 0x54, 0x03, + 0x78, 0x4E, 0x58, 0x03, 0x38, 0x21, 0x48, 0x00, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, 0xB9, 0x21, + 0x50, 0x00, 0x78, 0x3E, 0x56, 0x03, 0x78, 0x4E, 0x5A, 0x03, 0x38, 0x21, 0x4C, 0x00, 0x0C, 0xF0, + 0xD8, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x54, 0x00, 0x78, 0x3E, 0x5C, 0x03, 0x78, 0x4E, 0x60, 0x03, + 0x38, 0x21, 0x50, 0x00, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x58, 0x00, 0x78, 0x3E, + 0x5E, 0x03, 0x78, 0x4E, 0x62, 0x03, 0x38, 0x21, 0x54, 0x00, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, + 0x38, 0x61, 0x68, 0x00, 0xB9, 0x21, 0x5C, 0x00, 0x06, 0x38, 0x06, 0x26, 0x0C, 0xF0, 0x80, 0x00, + 0xF1, 0xF0, 0x99, 0x20, 0xB7, 0x15, 0x28, 0x7E, 0x6C, 0x03, 0x04, 0x31, 0xA9, 0x7E, 0x6E, 0x03, + 0x28, 0x7E, 0x6A, 0x03, 0xA9, 0x2E, 0x6A, 0x03, 0xA9, 0x7E, 0x6C, 0x03, 0x18, 0x7E, 0x69, 0x03, + 0x26, 0x37, 0x26, 0x77, 0x2F, 0x63, 0x03, 0x00, 0x26, 0xC7, 0x04, 0x70, 0x16, 0x66, 0x06, 0x27, + 0x2F, 0x57, 0x0C, 0x00, 0x34, 0x72, 0x78, 0x55, 0x2E, 0x00, 0xC6, 0x76, 0x26, 0x25, 0x92, 0xF9, + 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, 0x10, 0x00, 0x06, 0xC2, 0xB9, 0x71, 0x60, 0x00, 0x38, 0x61, + 0x60, 0x00, 0x04, 0x71, 0xC6, 0x26, 0x02, 0x11, 0x38, 0x61, 0x18, 0x00, 0x04, 0x72, 0xC6, 0x26, + 0x02, 0x0C, 0x38, 0x61, 0x20, 0x00, 0x04, 0x73, 0xC6, 0x26, 0x02, 0x07, 0x38, 0x61, 0x28, 0x00, + 0x04, 0x75, 0xC6, 0x26, 0x12, 0x02, 0x04, 0x74, 0x18, 0x6E, 0x68, 0x03, 0x3F, 0x36, 0x07, 0x00, + 0x0C, 0x70, 0x94, 0x15, 0x30, 0x47, 0x78, 0x7E, 0x66, 0x03, 0x18, 0x24, 0x97, 0x00, 0xC4, 0x30, + 0x16, 0x52, 0x02, 0x04, 0xC6, 0x72, 0x92, 0x0F, 0xF2, 0x05, 0xC4, 0x30, 0x82, 0x06, 0xC6, 0x75, + 0x92, 0x06, 0xA9, 0x0E, 0x66, 0x03, 0xF2, 0x0A, 0xC4, 0x70, 0x02, 0x03, 0x34, 0x71, 0xF2, 0x04, + 0xC4, 0x70, 0x82, 0x04, 0x24, 0x71, 0xA9, 0x7E, 0x66, 0x03, 0x78, 0x7E, 0x66, 0x03, 0x18, 0x44, + 0x97, 0x00, 0xC6, 0x74, 0x92, 0x05, 0xC4, 0x64, 0xD2, 0x03, 0x24, 0x61, 0xF2, 0x0E, 0x28, 0x4D, + 0x06, 0x00, 0xD4, 0x48, 0x82, 0x05, 0xC6, 0x75, 0x92, 0x0A, 0xC4, 0x61, 0xF2, 0x04, 0xC6, 0x75, + 0x92, 0x06, 0xC4, 0x63, 0xC2, 0x04, 0x34, 0x61, 0x99, 0x6E, 0x68, 0x03, 0x18, 0x5E, 0x64, 0x03, + 0x38, 0x21, 0x58, 0x00, 0x06, 0x35, 0xB9, 0x51, 0x64, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x51, + 0x64, 0x00, 0x43, 0x82, 0x38, 0x21, 0x5C, 0x00, 0x06, 0x35, 0x4B, 0x9E, 0x00, 0x00, 0x18, 0x4E, + 0x68, 0x03, 0x38, 0x51, 0x64, 0x00, 0xC4, 0x41, 0x43, 0x72, 0x92, 0x35, 0xC4, 0x58, 0xC2, 0x0E, + 0x38, 0x21, 0x58, 0x00, 0x04, 0x39, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x82, 0x38, 0x21, 0x5C, 0x00, + 0x04, 0x39, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, 0xC4, 0x56, 0xC2, 0x15, 0x38, 0x21, + 0x50, 0x00, 0xB9, 0x71, 0x64, 0x00, 0x04, 0x37, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x92, 0x38, 0x21, + 0x54, 0x00, 0x04, 0x37, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, 0x64, 0x00, 0x06, 0x48, 0x06, 0x57, + 0x06, 0x89, 0x43, 0x72, 0xF2, 0x03, 0x06, 0x48, 0x06, 0x57, 0xB9, 0x41, 0x04, 0x00, 0xB9, 0x51, + 0x08, 0x00, 0xB1, 0x71, 0x06, 0x2B, 0x06, 0x3C, 0x38, 0x41, 0x0C, 0x00, 0x38, 0x51, 0x60, 0x00, + 0xFA, 0x9C, 0x00, 0x00, 0xC4, 0x42, 0x92, 0x34, 0xC4, 0x56, 0xC2, 0x0E, 0x38, 0x21, 0x50, 0x00, + 0x04, 0x37, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x82, 0x38, 0x21, 0x54, 0x00, 0x04, 0x37, 0x4B, 0x9E, + 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, 0xC4, 0x54, 0xC2, 0x15, 0x38, 0x21, 0x48, 0x00, 0xB9, 0x71, + 0x64, 0x00, 0x04, 0x35, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x92, 0x38, 0x21, 0x4C, 0x00, 0x04, 0x35, + 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, 0x64, 0x00, 0x06, 0x48, 0x06, 0x57, 0x06, 0x89, 0x43, 0x72, + 0xF2, 0x03, 0x06, 0x48, 0x06, 0x57, 0xB9, 0x41, 0x04, 0x00, 0xB9, 0x51, 0x08, 0x00, 0xB1, 0x71, + 0x06, 0x2B, 0x06, 0x3C, 0x38, 0x41, 0x14, 0x00, 0x38, 0x51, 0x18, 0x00, 0xF2, 0x66, 0xC4, 0x43, + 0x92, 0x34, 0xC4, 0x54, 0xC2, 0x0E, 0x38, 0x21, 0x48, 0x00, 0x04, 0x35, 0x4B, 0x9E, 0x00, 0x00, + 0x43, 0x82, 0x38, 0x21, 0x4C, 0x00, 0x04, 0x35, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, + 0xC4, 0x52, 0xC2, 0x15, 0x38, 0x21, 0x40, 0x00, 0xB9, 0x71, 0x64, 0x00, 0x04, 0x33, 0x4B, 0x9E, + 0x00, 0x00, 0x43, 0x92, 0x38, 0x21, 0x44, 0x00, 0x04, 0x33, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, + 0x64, 0x00, 0x06, 0x48, 0x06, 0x57, 0x06, 0x89, 0x43, 0x72, 0xF2, 0x03, 0x06, 0x48, 0x06, 0x57, + 0xB9, 0x41, 0x04, 0x00, 0xB9, 0x51, 0x08, 0x00, 0xB1, 0x71, 0x06, 0x2B, 0x06, 0x3C, 0x38, 0x41, + 0x1C, 0x00, 0x38, 0x51, 0x20, 0x00, 0xF2, 0x31, 0xC4, 0x44, 0x92, 0x31, 0xC4, 0x52, 0xC2, 0x0E, + 0x38, 0x21, 0x40, 0x00, 0x04, 0x33, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x82, 0x38, 0x21, 0x44, 0x00, + 0x04, 0x33, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, 0xC4, 0x52, 0x92, 0x11, 0x38, 0x41, + 0x34, 0x00, 0x38, 0x61, 0x34, 0x00, 0x06, 0x59, 0xF7, 0x5F, 0xF7, 0x4F, 0x26, 0x59, 0x26, 0x46, + 0xE7, 0x50, 0xE7, 0x40, 0x06, 0x28, 0x06, 0x37, 0x43, 0x85, 0x43, 0x74, 0xF2, 0x03, 0x06, 0x28, + 0x06, 0x37, 0x38, 0x41, 0x24, 0x00, 0x38, 0x51, 0x28, 0x00, 0xB9, 0x21, 0x04, 0x00, 0xB9, 0x31, + 0x08, 0x00, 0xB1, 0x71, 0x06, 0x2B, 0x06, 0x3C, 0x06, 0x68, 0xF2, 0x20, 0xC4, 0x51, 0xC2, 0x0E, + 0x06, 0x69, 0xF7, 0x6F, 0x26, 0x69, 0xE7, 0x60, 0x38, 0x71, 0x34, 0x00, 0x43, 0x86, 0x38, 0x61, + 0x34, 0x00, 0xF7, 0x7F, 0x26, 0x76, 0xE7, 0x70, 0x43, 0x77, 0x78, 0x5E, 0x42, 0x03, 0x78, 0xFE, + 0x40, 0x03, 0x38, 0x41, 0x2C, 0x00, 0xB1, 0x51, 0x38, 0x51, 0x30, 0x00, 0xB9, 0x81, 0x04, 0x00, + 0xB9, 0x71, 0x08, 0x00, 0x06, 0x2B, 0x06, 0x3C, 0x06, 0x6F, 0x6B, 0xC7, 0x01, 0x00, 0x18, 0x7E, + 0x64, 0x03, 0xC4, 0x78, 0xD2, 0x04, 0x24, 0x71, 0x99, 0x7E, 0x64, 0x03, 0x18, 0x7E, 0x69, 0x03, + 0xC4, 0x71, 0xD2, 0x04, 0x24, 0x71, 0x99, 0x7E, 0x69, 0x03, 0x18, 0x7A, 0x82, 0x02, 0x34, 0x71, + 0x2F, 0x67, 0x07, 0x00, 0x26, 0x67, 0x06, 0x96, 0x57, 0x92, 0x26, 0x69, 0x26, 0x76, 0x2C, 0x70, + 0x3C, 0x03, 0x2F, 0x97, 0x0D, 0x00, 0xF0, 0x29, 0x22, 0x39, 0xF8, 0x79, 0x02, 0x00, 0x22, 0x36, + 0x38, 0x61, 0x3C, 0x00, 0xB9, 0x71, 0x64, 0x00, 0x0C, 0xC0, 0x64, 0x00, 0x06, 0x8C, 0x36, 0x86, + 0x06, 0x38, 0xAB, 0x97, 0x00, 0x00, 0x06, 0x3C, 0x4B, 0x9E, 0x00, 0x00, 0x06, 0x62, 0x38, 0x31, + 0x3C, 0x00, 0x78, 0x2A, 0x78, 0x02, 0xB9, 0x61, 0x68, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x06, 0x3C, + 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x61, 0x68, 0x00, 0x38, 0x71, 0x64, 0x00, 0x26, 0x26, 0x06, 0x38, + 0xA9, 0x2A, 0x78, 0x02, 0x06, 0x27, 0xAB, 0x97, 0x00, 0x00, 0x06, 0x3C, 0x4B, 0x9E, 0x00, 0x00, + 0x06, 0x82, 0x38, 0x31, 0x3C, 0x00, 0x78, 0x2A, 0x7A, 0x02, 0xAB, 0x97, 0x00, 0x00, 0x06, 0x3C, + 0x4B, 0x9E, 0x00, 0x00, 0x26, 0x28, 0xA9, 0x2A, 0x7A, 0x02, 0x06, 0x29, 0x06, 0x3B, 0x04, 0x44, + 0x6B, 0xCF, 0x03, 0x00, 0xFA, 0xB5, 0xFC, 0xFF, 0x0C, 0x20, 0xA6, 0x00, 0x26, 0x2D, 0x0C, 0x30, + 0x78, 0x02, 0x26, 0x3D, 0x04, 0x44, 0x6B, 0xCF, 0x03, 0x00, 0x58, 0xC1, 0x7C, 0x00, 0x58, 0x81, + 0x6C, 0x00, 0x2C, 0x10, 0x8C, 0x00, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x20, 0xEC, 0x11, 0x04, 0x30, + 0x0C, 0x40, 0x28, 0x00, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x1A, 0x12, + 0x14, 0x31, 0x0C, 0x40, 0x3C, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x0C, 0x70, + 0x00, 0x10, 0xA9, 0x07, 0x22, 0x00, 0xA9, 0x07, 0x74, 0x02, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x44, 0x03, 0xD9, 0xC1, 0x34, 0x03, 0x38, 0xD0, 0x94, 0x15, 0xD9, 0x81, 0x24, 0x03, + 0x0C, 0xE0, 0x00, 0x10, 0x18, 0xCD, 0x5A, 0x00, 0xA9, 0x0E, 0x68, 0x02, 0x18, 0x3D, 0x48, 0x00, + 0x28, 0x2E, 0x08, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x4B, 0x9E, 0x00, 0x00, + 0x23, 0x22, 0xA9, 0x2E, 0x6A, 0x02, 0x28, 0x7D, 0x4A, 0x00, 0xC6, 0x27, 0xB2, 0x03, 0xA9, 0x7E, + 0x6A, 0x02, 0x28, 0x7E, 0x06, 0x00, 0xDC, 0x70, 0x10, 0x00, 0x82, 0x08, 0x18, 0x7D, 0x62, 0x00, + 0x36, 0xC7, 0xC4, 0xC0, 0x12, 0x02, 0x04, 0xC1, 0x13, 0xCC, 0x0C, 0x20, 0xE0, 0x02, 0x26, 0x21, + 0x04, 0x30, 0x04, 0x4A, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x06, 0x21, 0x04, 0x30, 0x0C, 0x40, + 0x40, 0x02, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x40, 0x02, 0x26, 0x21, 0x04, 0x30, + 0x0C, 0x40, 0x78, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0xB8, 0x02, 0x0C, 0x40, + 0x28, 0x00, 0x26, 0x21, 0x04, 0x30, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x28, 0x2E, 0x08, 0x00, + 0xA9, 0x0E, 0x14, 0x02, 0x06, 0x3C, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9B, + 0x00, 0x00, 0x28, 0x7E, 0x0E, 0x00, 0x04, 0x60, 0x26, 0x27, 0xA9, 0x2E, 0x16, 0x02, 0xB9, 0x61, + 0xEC, 0x02, 0x06, 0x86, 0x04, 0xA1, 0x06, 0xC6, 0x2F, 0x78, 0x08, 0x00, 0x26, 0x7E, 0xB9, 0x71, + 0x10, 0x03, 0x04, 0xD0, 0x38, 0x71, 0xEC, 0x02, 0x26, 0x7D, 0x23, 0x77, 0x0C, 0x60, 0x80, 0x02, + 0xB9, 0x71, 0xF0, 0x02, 0x26, 0x77, 0x26, 0x76, 0x70, 0x77, 0x28, 0x6E, 0x6A, 0x02, 0xC6, 0x76, + 0x02, 0x06, 0x28, 0x6E, 0x68, 0x02, 0x24, 0x61, 0xA9, 0x6E, 0x68, 0x02, 0x0C, 0x40, 0x16, 0x02, + 0x26, 0x4E, 0x70, 0x44, 0xC6, 0x74, 0xB9, 0x41, 0xF4, 0x02, 0x0A, 0xE7, 0x00, 0x00, 0x2F, 0x7D, + 0x0D, 0x00, 0x04, 0xB0, 0x26, 0x7E, 0xB9, 0x71, 0x0C, 0x03, 0xB9, 0xB1, 0xF8, 0x02, 0xB9, 0xB1, + 0xFC, 0x02, 0xB9, 0xB1, 0x00, 0x03, 0x06, 0x6B, 0xB9, 0xB1, 0x04, 0x03, 0x06, 0x5B, 0x38, 0x91, + 0xF0, 0x02, 0x38, 0x21, 0xF4, 0x02, 0x23, 0x7B, 0x26, 0x97, 0x23, 0x99, 0x2F, 0x49, 0x09, 0x00, + 0x0C, 0xF0, 0x80, 0x02, 0x26, 0x4F, 0x70, 0x44, 0xC6, 0x42, 0x0A, 0x8A, 0x00, 0x00, 0x13, 0x3C, + 0xB9, 0x31, 0x08, 0x03, 0x38, 0xF1, 0x08, 0x03, 0x36, 0x42, 0x38, 0x21, 0x0C, 0x03, 0x2F, 0x39, + 0x01, 0x00, 0x91, 0xF3, 0x2F, 0x3B, 0x0B, 0x00, 0x26, 0x32, 0x28, 0x33, 0x26, 0x00, 0xB9, 0x51, + 0x14, 0x03, 0x06, 0x24, 0xB9, 0x61, 0x18, 0x03, 0xB9, 0x71, 0x20, 0x03, 0xB9, 0x41, 0x1C, 0x03, + 0xAB, 0x97, 0x00, 0x00, 0x38, 0x31, 0xF8, 0x02, 0x38, 0xF1, 0x10, 0x03, 0x38, 0x41, 0x1C, 0x03, + 0x26, 0x32, 0xB9, 0x31, 0xF8, 0x02, 0x28, 0x3F, 0x66, 0x00, 0x06, 0x24, 0xAB, 0x97, 0x00, 0x00, + 0x38, 0x31, 0xFC, 0x02, 0x38, 0xF1, 0x00, 0x03, 0x38, 0x41, 0x1C, 0x03, 0x38, 0x71, 0x20, 0x03, + 0x38, 0x51, 0x14, 0x03, 0x38, 0x61, 0x18, 0x03, 0xC4, 0x80, 0x26, 0x32, 0x26, 0xF4, 0x24, 0x71, + 0xB9, 0x31, 0xFC, 0x02, 0xB9, 0xF1, 0x00, 0x03, 0x23, 0x77, 0x82, 0x45, 0xC4, 0x50, 0x14, 0x4E, + 0x26, 0x41, 0x26, 0x49, 0x92, 0x14, 0x90, 0x44, 0x92, 0x0F, 0xC4, 0xD0, 0x82, 0x08, 0x14, 0x4F, + 0x26, 0x41, 0x26, 0x49, 0x90, 0x44, 0x92, 0x08, 0xC4, 0xDD, 0x82, 0x35, 0x14, 0x2D, 0x26, 0x21, + 0x26, 0x92, 0x90, 0x49, 0x82, 0x30, 0x06, 0xC4, 0x04, 0x51, 0xF2, 0x2D, 0x90, 0x44, 0x82, 0x04, + 0xC6, 0x4C, 0x9A, 0x84, 0x01, 0x00, 0xC4, 0xD0, 0x82, 0x0B, 0x14, 0x4F, 0x26, 0x41, 0x26, 0x49, + 0x90, 0x44, 0x82, 0x04, 0xC6, 0x4C, 0x9A, 0x7A, 0x01, 0x00, 0xC4, 0xDD, 0x82, 0x09, 0x14, 0x3D, + 0x26, 0x31, 0x26, 0x93, 0x90, 0x49, 0x82, 0x04, 0xC6, 0x4C, 0x9A, 0x70, 0x01, 0x00, 0xB8, 0x41, + 0x04, 0x03, 0x82, 0x11, 0xC4, 0x64, 0xD2, 0x0F, 0xC4, 0xC4, 0xD2, 0x0D, 0xC6, 0xC6, 0x0C, 0x40, + 0xE0, 0x02, 0x26, 0x41, 0xC2, 0x04, 0x26, 0x4C, 0x91, 0x64, 0xF2, 0x05, 0x38, 0xF1, 0x08, 0x03, + 0x26, 0x46, 0x91, 0xF4, 0x24, 0xD1, 0xC4, 0xDE, 0x24, 0xB1, 0x9A, 0x6A, 0xFF, 0xFF, 0x14, 0x61, + 0x26, 0x6A, 0xC4, 0x68, 0xD2, 0x3A, 0xC4, 0x50, 0x92, 0x03, 0x06, 0xCA, 0x24, 0xA1, 0x38, 0x21, + 0xF0, 0x02, 0xB9, 0x71, 0x20, 0x03, 0x06, 0x47, 0x26, 0x21, 0x33, 0x3C, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x14, 0x51, 0x26, 0x5C, 0x2F, 0x65, 0x05, 0x00, 0x26, 0x65, 0x57, 0x61, 0x26, 0x61, + 0x38, 0x46, 0x40, 0x02, 0x38, 0x21, 0xF8, 0x02, 0x38, 0x31, 0xFC, 0x02, 0x38, 0xF1, 0x00, 0x03, + 0x38, 0x71, 0x20, 0x03, 0x26, 0x42, 0xB9, 0x46, 0x40, 0x02, 0x38, 0x46, 0x44, 0x02, 0x57, 0x51, + 0x26, 0x43, 0xB9, 0x46, 0x44, 0x02, 0x38, 0x46, 0x48, 0x02, 0x26, 0x4F, 0xB9, 0x46, 0x48, 0x02, + 0x2F, 0x65, 0x01, 0x00, 0x28, 0x56, 0xB8, 0x02, 0x99, 0x86, 0xBB, 0x02, 0x26, 0x75, 0xA9, 0x76, + 0xB8, 0x02, 0x04, 0x71, 0x99, 0x76, 0xBA, 0x02, 0x24, 0xD1, 0xC4, 0xDD, 0x0A, 0xFC, 0xFE, 0xFF, + 0x38, 0x71, 0xEC, 0x02, 0x24, 0x81, 0x24, 0x7E, 0xCC, 0x80, 0x16, 0x00, 0x23, 0x77, 0xB9, 0x71, + 0xEC, 0x02, 0x9A, 0xEB, 0xFE, 0xFF, 0x14, 0x91, 0x26, 0x9A, 0xC4, 0x99, 0xC2, 0x09, 0x18, 0x8E, + 0x04, 0x00, 0x28, 0xCE, 0x22, 0x00, 0x06, 0xDE, 0x04, 0xB0, 0xFA, 0xF0, 0x00, 0x00, 0x14, 0xB2, + 0x26, 0xBA, 0x2F, 0xDB, 0x0B, 0x00, 0x06, 0xCA, 0x26, 0xDB, 0x0C, 0x20, 0x40, 0x02, 0x57, 0xC1, + 0x57, 0xD1, 0x26, 0x21, 0x26, 0xC1, 0x0C, 0x70, 0xAC, 0x02, 0x06, 0x89, 0x26, 0xD2, 0x2C, 0xC0, + 0xB0, 0x02, 0x26, 0x71, 0xC4, 0x80, 0x82, 0x45, 0x0C, 0x60, 0xE0, 0x02, 0x26, 0x61, 0x26, 0x68, + 0x10, 0x66, 0x34, 0x61, 0x13, 0x56, 0xC4, 0x59, 0xD2, 0x38, 0x2F, 0x56, 0x06, 0x00, 0x26, 0x56, + 0x57, 0x51, 0x26, 0x51, 0x30, 0x3D, 0x38, 0x45, 0x40, 0x02, 0x57, 0x61, 0x26, 0x43, 0xB9, 0x45, + 0x40, 0x02, 0x38, 0x3D, 0x04, 0x00, 0x38, 0x45, 0x44, 0x02, 0x26, 0x61, 0x26, 0x43, 0xB9, 0x45, + 0x44, 0x02, 0x38, 0x3D, 0x08, 0x00, 0x38, 0x45, 0x48, 0x02, 0x06, 0x2D, 0x26, 0x43, 0xB9, 0x45, + 0x48, 0x02, 0x20, 0x4C, 0x28, 0x56, 0xB8, 0x02, 0x04, 0x3C, 0x26, 0x54, 0xA9, 0x56, 0xB8, 0x02, + 0x3F, 0x4D, 0x07, 0x00, 0x26, 0x3D, 0xB9, 0x71, 0x20, 0x03, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, + 0x0C, 0x40, 0xDC, 0x02, 0x04, 0x34, 0x26, 0x41, 0x06, 0x2C, 0x26, 0x3C, 0x36, 0x4C, 0x0C, 0xF0, + 0xEC, 0x00, 0xF1, 0xF0, 0x38, 0x71, 0x20, 0x03, 0x34, 0x81, 0x34, 0xDC, 0x34, 0xC4, 0xF2, 0xBB, + 0x0C, 0x70, 0xE0, 0x02, 0x26, 0x71, 0x26, 0x7B, 0x06, 0x6A, 0xC4, 0x61, 0x82, 0x1C, 0x98, 0x57, + 0x01, 0x00, 0x82, 0x16, 0x90, 0x57, 0x82, 0x14, 0x06, 0x56, 0xC6, 0x59, 0xD2, 0x0E, 0x0C, 0x40, + 0xE0, 0x02, 0x26, 0x41, 0x26, 0x45, 0x18, 0x27, 0x01, 0x00, 0x10, 0x34, 0xC6, 0x23, 0x92, 0x03, + 0x10, 0x37, 0x91, 0x34, 0x24, 0x51, 0xF2, 0xF2, 0x10, 0x57, 0x99, 0x57, 0x01, 0x00, 0x34, 0x61, + 0x34, 0x71, 0xF2, 0xE4, 0x06, 0x76, 0xC6, 0x7A, 0x8A, 0x7B, 0xFF, 0xFF, 0x0C, 0x50, 0xE0, 0x02, + 0x26, 0x51, 0x26, 0x57, 0x90, 0x45, 0x92, 0x03, 0x91, 0x65, 0x24, 0x61, 0x24, 0x71, 0xF2, 0xF4, + 0x18, 0x7D, 0x39, 0x01, 0x0C, 0x30, 0xE0, 0x02, 0x26, 0x77, 0x06, 0x67, 0xD7, 0x61, 0x3F, 0x77, + 0x06, 0x00, 0x18, 0x6D, 0x38, 0x01, 0x26, 0x31, 0x26, 0x76, 0x23, 0x77, 0x26, 0x71, 0x10, 0x77, + 0x26, 0x73, 0x10, 0x57, 0x14, 0x71, 0x26, 0x75, 0xB3, 0x77, 0x22, 0x4E, 0x06, 0x67, 0x57, 0x61, + 0x26, 0x61, 0x28, 0x46, 0xB8, 0x02, 0x99, 0x5D, 0xF2, 0x01, 0x2F, 0x35, 0x05, 0x00, 0x2F, 0x65, + 0x03, 0x00, 0x26, 0x66, 0x2F, 0xF6, 0x0E, 0x00, 0xA9, 0x4D, 0xF0, 0x01, 0x04, 0x61, 0x2F, 0x26, + 0x0F, 0x00, 0xE8, 0x22, 0x1A, 0x02, 0x32, 0x3D, 0x26, 0x53, 0x26, 0x55, 0x26, 0x5E, 0x26, 0x65, + 0x99, 0xB6, 0x1A, 0x02, 0x18, 0x65, 0x1A, 0x02, 0x24, 0x61, 0x99, 0x65, 0x1A, 0x02, 0x13, 0x64, + 0xC6, 0xC6, 0xA9, 0x6D, 0x3E, 0x01, 0x06, 0x5C, 0xB2, 0x02, 0x06, 0x56, 0x2F, 0x97, 0x07, 0x00, + 0x2F, 0x67, 0x09, 0x00, 0x57, 0x61, 0x26, 0x61, 0xB8, 0xA6, 0x48, 0x02, 0x23, 0xC5, 0x92, 0x02, + 0x04, 0xA1, 0x26, 0x79, 0x57, 0x71, 0x2F, 0x97, 0x01, 0x00, 0x38, 0x29, 0x40, 0x02, 0xB9, 0xA9, + 0x48, 0x02, 0x06, 0x3A, 0x0B, 0x9B, 0x00, 0x00, 0x04, 0x3A, 0x0B, 0x9B, 0x00, 0x00, 0xA9, 0x2D, + 0xEC, 0x01, 0x38, 0x29, 0x44, 0x02, 0x06, 0x3A, 0x0B, 0x9B, 0x00, 0x00, 0x04, 0x3A, 0x0B, 0x9B, + 0x00, 0x00, 0xA9, 0x2D, 0xEE, 0x01, 0x24, 0xB1, 0x24, 0xD8, 0xC6, 0xB8, 0x22, 0x9A, 0xF2, 0x05, + 0x24, 0x61, 0xC4, 0x66, 0x92, 0xBD, 0xF2, 0xCC, 0xA9, 0xCE, 0x22, 0x00, 0x58, 0xC1, 0x34, 0x03, + 0x58, 0x81, 0x24, 0x03, 0x2C, 0x10, 0x44, 0x03, 0xE1, 0xF0, 0x06, 0x64, 0x04, 0x41, 0xB9, 0x41, + 0x04, 0x03, 0xFA, 0x91, 0xFE, 0xFF, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x40, 0x80, 0x00, 0x0C, 0x20, + 0x6C, 0x11, 0x04, 0x30, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x70, 0x00, 0x10, + 0x1C, 0x60, 0xFA, 0x00, 0xA9, 0x67, 0xE4, 0x01, 0xA9, 0x67, 0xE6, 0x01, 0x28, 0x67, 0x06, 0x00, + 0x54, 0x68, 0xA3, 0x46, 0x18, 0x50, 0xBA, 0x15, 0x92, 0x04, 0x06, 0x64, 0xC4, 0x50, 0xF2, 0x03, + 0x04, 0x60, 0xC6, 0x56, 0x82, 0x03, 0x0C, 0x60, 0x32, 0x00, 0x30, 0xF1, 0x99, 0x67, 0xE9, 0x01, + 0x99, 0x07, 0xEA, 0x01, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x20, 0x38, 0x11, 0x04, 0x30, + 0x0C, 0x40, 0x28, 0x00, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x0C, 0x70, + 0x00, 0x10, 0x99, 0x07, 0x04, 0x00, 0xA9, 0x07, 0x34, 0x01, 0xA9, 0x07, 0x36, 0x01, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x14, 0x00, 0x2F, 0x75, 0x05, 0x00, 0xD9, 0xC1, 0x04, 0x00, + 0x06, 0xD5, 0x34, 0x51, 0x57, 0xD2, 0x06, 0x65, 0x36, 0xD7, 0x57, 0x62, 0x2F, 0x75, 0x05, 0x00, + 0x3F, 0x77, 0x06, 0x00, 0x26, 0x74, 0x26, 0xD4, 0x26, 0x77, 0x26, 0xDD, 0x34, 0x72, 0x26, 0xD3, + 0xB1, 0xB1, 0x26, 0x37, 0x04, 0xE0, 0x34, 0x41, 0x06, 0x74, 0x06, 0xF3, 0x04, 0x60, 0xC4, 0x50, + 0x22, 0x11, 0xCC, 0x50, 0x14, 0x00, 0x02, 0x06, 0xC4, 0x7C, 0x82, 0x08, 0xC4, 0x7D, 0x92, 0x0A, + 0xF2, 0x05, 0xC4, 0x70, 0x22, 0x07, 0xC4, 0x7D, 0x12, 0x05, 0x70, 0xBF, 0x70, 0xCD, 0xC6, 0xBC, + 0x12, 0x12, 0x24, 0x61, 0x43, 0x66, 0xC4, 0x63, 0x24, 0x71, 0x24, 0xF2, 0x92, 0xE9, 0x24, 0xE1, + 0x43, 0xEE, 0xC4, 0xE3, 0x2C, 0x30, 0x1C, 0x00, 0x24, 0x51, 0x92, 0xDF, 0x70, 0x7D, 0xB1, 0x72, + 0x04, 0x21, 0xF2, 0x02, 0x04, 0x20, 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x60, 0x01, 0x0C, 0x20, 0x9E, 0x00, 0x26, 0x21, 0x04, 0x30, + 0x04, 0x44, 0xD9, 0xC1, 0x50, 0x01, 0xD9, 0x81, 0x40, 0x01, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x06, 0x21, 0x04, 0x30, 0x0C, 0x40, 0x49, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0xE0, + 0x00, 0x10, 0x0C, 0x70, 0xFF, 0x0F, 0xA9, 0x7E, 0x08, 0x00, 0x18, 0x70, 0xAD, 0x15, 0xA9, 0x0E, + 0x0A, 0x00, 0x0C, 0x80, 0x2C, 0x01, 0xC4, 0x70, 0xA9, 0x0E, 0x0C, 0x00, 0xA9, 0x0E, 0x2C, 0x01, + 0xA9, 0x0E, 0x18, 0x02, 0xB9, 0x81, 0xDC, 0x00, 0x78, 0xCE, 0x0E, 0x00, 0x92, 0x09, 0x38, 0x70, + 0x94, 0x15, 0x0C, 0xF0, 0x22, 0x00, 0x26, 0xF7, 0x20, 0x7F, 0xB9, 0x71, 0xDC, 0x00, 0x28, 0x7E, + 0x6A, 0x01, 0x38, 0x81, 0xDC, 0x00, 0x38, 0xD0, 0x94, 0x15, 0x26, 0x78, 0x23, 0x77, 0x0C, 0x40, + 0x28, 0x00, 0xA9, 0x7E, 0x60, 0x01, 0x26, 0x4D, 0x20, 0x44, 0x98, 0x60, 0xBA, 0x15, 0xB9, 0x41, + 0xF8, 0x00, 0x82, 0x09, 0x28, 0x6E, 0x06, 0x00, 0xD4, 0x68, 0x92, 0x05, 0x2C, 0x70, 0xC8, 0x00, + 0xA9, 0x7E, 0x60, 0x01, 0x08, 0x70, 0x00, 0x40, 0x38, 0x27, 0xE4, 0x70, 0x04, 0x3E, 0x5C, 0x20, + 0xFF, 0x01, 0x8B, 0xA1, 0x00, 0x00, 0xA3, 0x22, 0x82, 0x03, 0xC4, 0x2B, 0x92, 0x08, 0x28, 0x6D, + 0x2A, 0x00, 0x28, 0x7E, 0x60, 0x01, 0x26, 0x76, 0xA9, 0x7E, 0x60, 0x01, 0x6B, 0xBA, 0x00, 0x00, + 0x38, 0xD0, 0x94, 0x15, 0x04, 0xA1, 0x28, 0x3D, 0xC8, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, + 0x64, 0x00, 0x0B, 0x9B, 0x00, 0x00, 0xB9, 0x21, 0xFC, 0x00, 0x18, 0x2E, 0x28, 0x03, 0xC6, 0x2A, + 0xC2, 0x08, 0x18, 0x3D, 0x3D, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x86, 0xA2, 0x92, 0x02, 0x04, 0xA1, + 0x18, 0x3D, 0x3C, 0x00, 0x78, 0x2E, 0x2A, 0x01, 0x06, 0xBE, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, + 0x64, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x28, 0x7D, 0x3A, 0x00, 0xC6, 0x27, 0xB2, 0x02, 0x06, 0x27, + 0x06, 0x3A, 0x0B, 0x9B, 0x00, 0x00, 0xA9, 0x2B, 0x2C, 0x01, 0x06, 0x3A, 0x06, 0x2C, 0x0B, 0x9B, + 0x00, 0x00, 0x30, 0x7D, 0xB9, 0x21, 0x00, 0x01, 0xDC, 0x70, 0x00, 0x80, 0x92, 0x04, 0x0C, 0x70, + 0x80, 0x02, 0xF2, 0x03, 0x0C, 0x70, 0x80, 0x0B, 0xB9, 0x71, 0xE8, 0x00, 0x0C, 0x70, 0x62, 0x10, + 0xB9, 0x71, 0xC0, 0x00, 0x06, 0xB7, 0x0C, 0xB0, 0x64, 0x11, 0x04, 0x70, 0xB9, 0x71, 0xB0, 0x00, + 0xB9, 0x71, 0xB4, 0x00, 0xB9, 0x71, 0xD8, 0x00, 0x0C, 0x70, 0x4C, 0x00, 0x26, 0x71, 0x34, 0x72, + 0xB9, 0x71, 0x28, 0x01, 0x38, 0x71, 0xB0, 0x00, 0x38, 0xA1, 0xB0, 0x00, 0x38, 0x81, 0xB0, 0x00, + 0x23, 0x77, 0xB9, 0x71, 0xE4, 0x00, 0x26, 0x77, 0x06, 0x67, 0xD7, 0x61, 0x3F, 0x77, 0x06, 0x00, + 0x23, 0x77, 0x43, 0xAA, 0xB9, 0x71, 0x1C, 0x01, 0x04, 0x71, 0xB9, 0xA1, 0xA8, 0x00, 0x06, 0xA7, + 0x53, 0xA8, 0x06, 0x68, 0x34, 0x61, 0xB9, 0xA1, 0x08, 0x01, 0x06, 0xA7, 0x53, 0xA6, 0x06, 0x87, + 0x34, 0x61, 0x53, 0x86, 0x38, 0x61, 0xB0, 0x00, 0xB9, 0xA1, 0x0C, 0x01, 0x38, 0xA1, 0xB0, 0x00, + 0xB9, 0x81, 0x10, 0x01, 0x24, 0x62, 0x26, 0xA7, 0x06, 0x87, 0x53, 0x76, 0xB9, 0x71, 0x18, 0x01, + 0x53, 0x8A, 0xB9, 0xA1, 0xE0, 0x00, 0x0C, 0x70, 0x22, 0x10, 0x04, 0xA0, 0xB9, 0x81, 0x14, 0x01, + 0xB9, 0x71, 0xC4, 0x00, 0xB9, 0xA1, 0xC8, 0x00, 0x0C, 0x90, 0x00, 0x10, 0x28, 0x7E, 0x06, 0x00, + 0x38, 0x81, 0xC8, 0x00, 0xD4, 0x78, 0x43, 0xD8, 0x92, 0x11, 0x38, 0x71, 0xE4, 0x00, 0x34, 0x7C, + 0xC4, 0x75, 0xC2, 0x15, 0x38, 0x70, 0x94, 0x15, 0x0C, 0x40, 0x32, 0x00, 0x26, 0x47, 0x20, 0x74, + 0xB9, 0x71, 0xB8, 0x00, 0x0C, 0x70, 0x80, 0x02, 0xF2, 0x10, 0x38, 0x70, 0x94, 0x15, 0x0C, 0xF0, + 0x32, 0x00, 0x26, 0xF7, 0x20, 0x7F, 0xB9, 0x71, 0xB8, 0x00, 0xF2, 0x05, 0x0C, 0x60, 0x50, 0x00, + 0xB9, 0x61, 0xB8, 0x00, 0x0C, 0x70, 0x80, 0x0B, 0xB9, 0x71, 0xCC, 0x00, 0x38, 0x71, 0xA8, 0x00, + 0xCC, 0x70, 0x15, 0x00, 0x92, 0x08, 0x38, 0x71, 0xC8, 0x00, 0x34, 0x7C, 0x23, 0x77, 0xC4, 0x71, + 0xDA, 0xE0, 0x04, 0x00, 0x38, 0x81, 0xC8, 0x00, 0x38, 0x31, 0x1C, 0x01, 0x26, 0x38, 0x23, 0x33, + 0x06, 0x83, 0x26, 0x83, 0x0C, 0x70, 0x80, 0x02, 0x26, 0x78, 0x70, 0x67, 0x38, 0x70, 0x94, 0x15, + 0xB9, 0x31, 0xAC, 0x00, 0x43, 0xC3, 0x28, 0x77, 0x5C, 0x00, 0xC6, 0x67, 0x02, 0x06, 0x28, 0x7E, + 0x18, 0x02, 0x24, 0x71, 0xA9, 0x7E, 0x18, 0x02, 0xE7, 0xC1, 0x38, 0xA1, 0xAC, 0x00, 0x26, 0xC1, + 0x10, 0x7C, 0x54, 0xA7, 0x63, 0x7A, 0xD4, 0x71, 0x9A, 0xBC, 0x04, 0x00, 0x38, 0x71, 0xA8, 0x00, + 0xCC, 0x70, 0x13, 0x00, 0x04, 0x71, 0xB9, 0x71, 0xBC, 0x00, 0x12, 0x06, 0xC4, 0xDB, 0x12, 0x04, + 0x04, 0x72, 0xB9, 0x71, 0xBC, 0x00, 0x06, 0x73, 0x0C, 0x70, 0x80, 0x0B, 0x26, 0x78, 0x38, 0xF1, + 0xFC, 0x00, 0x70, 0x77, 0x43, 0x6F, 0xC6, 0x76, 0x2A, 0xA4, 0x04, 0x00, 0x38, 0x41, 0xBC, 0x00, + 0xC4, 0x41, 0x92, 0x08, 0x38, 0x51, 0xF8, 0x00, 0x43, 0x65, 0xC6, 0x76, 0x2A, 0x9A, 0x04, 0x00, + 0xF2, 0x06, 0x78, 0x6E, 0x60, 0x01, 0xC6, 0x67, 0x1A, 0x94, 0x04, 0x00, 0x38, 0x51, 0xA8, 0x00, + 0xB9, 0x01, 0xA4, 0x00, 0x0C, 0x20, 0xA4, 0x00, 0x26, 0x21, 0x0C, 0x30, 0x80, 0x0B, 0x06, 0x4D, + 0xAB, 0x37, 0x02, 0x00, 0xC4, 0x20, 0x8A, 0x85, 0x04, 0x00, 0x38, 0x71, 0xCC, 0x00, 0x26, 0x78, + 0x70, 0x67, 0x28, 0x7E, 0x0E, 0x00, 0x3F, 0x77, 0x06, 0x00, 0xC4, 0x70, 0x0A, 0x7A, 0x04, 0x00, + 0x78, 0x6E, 0x2C, 0x01, 0xC6, 0x76, 0x0A, 0x75, 0x04, 0x00, 0x38, 0x71, 0xA4, 0x00, 0x28, 0x6E, + 0x0C, 0x00, 0xC6, 0x76, 0x22, 0x0B, 0xA9, 0x7E, 0x0C, 0x00, 0x18, 0x7E, 0x04, 0x00, 0x24, 0x71, + 0x13, 0x77, 0xB9, 0x71, 0xD8, 0x00, 0x99, 0x7E, 0x57, 0x02, 0x10, 0x5C, 0x04, 0x71, 0x06, 0x67, + 0x53, 0x6A, 0xC4, 0xDD, 0x66, 0x65, 0x91, 0x6C, 0x82, 0x0C, 0x38, 0x51, 0xAC, 0x00, 0x26, 0x57, + 0x06, 0x65, 0xE7, 0x61, 0x26, 0x61, 0x54, 0x57, 0x53, 0x75, 0x10, 0x56, 0x66, 0x75, 0x91, 0x76, + 0x38, 0x71, 0xA8, 0x00, 0xCC, 0x70, 0x15, 0x00, 0x82, 0x2D, 0x38, 0x71, 0xAC, 0x00, 0x04, 0x67, + 0x24, 0x7E, 0x06, 0x57, 0xE7, 0x51, 0x56, 0x67, 0x26, 0x51, 0x04, 0x71, 0x10, 0x45, 0x06, 0x87, + 0x53, 0x86, 0x06, 0x68, 0xC4, 0xD0, 0x66, 0x64, 0x91, 0x65, 0x92, 0x0F, 0x38, 0x71, 0xAC, 0x00, + 0x04, 0x57, 0x24, 0x7F, 0x06, 0x67, 0xE7, 0x61, 0x56, 0x57, 0x26, 0x61, 0x04, 0x71, 0x53, 0x75, + 0x10, 0x56, 0x66, 0x75, 0x91, 0x76, 0xF2, 0x0E, 0x38, 0x51, 0xAC, 0x00, 0xC4, 0xDD, 0x24, 0x5D, + 0x06, 0x65, 0xE7, 0x61, 0x26, 0x61, 0x54, 0x57, 0x53, 0x75, 0x10, 0x56, 0x66, 0x75, 0x91, 0x76, + 0x92, 0xE6, 0x38, 0x41, 0xC8, 0x00, 0x38, 0xA1, 0xB0, 0x00, 0x38, 0x51, 0x00, 0x01, 0x13, 0x44, + 0x06, 0x74, 0x13, 0xAA, 0x34, 0x72, 0xB9, 0xA1, 0xEC, 0x00, 0x0C, 0xD0, 0x78, 0x00, 0x04, 0x20, + 0x0C, 0xC0, 0x4C, 0x00, 0x34, 0xA1, 0x33, 0x77, 0x23, 0x55, 0x26, 0xD1, 0x0C, 0x60, 0xFF, 0xFF, + 0x26, 0xC1, 0x06, 0x32, 0xB9, 0xA1, 0x20, 0x01, 0xB9, 0x41, 0xF0, 0x00, 0xB9, 0x71, 0x24, 0x01, + 0xB9, 0x51, 0xF4, 0x00, 0x38, 0xF1, 0x20, 0x01, 0x38, 0x71, 0x24, 0x01, 0xB9, 0xD1, 0xD4, 0x00, + 0x26, 0xF6, 0x33, 0xFF, 0x2F, 0x5F, 0x0F, 0x00, 0x06, 0x45, 0xD7, 0x41, 0x3F, 0x55, 0x04, 0x00, + 0x23, 0x55, 0xB9, 0x51, 0x04, 0x01, 0x06, 0x4C, 0x0C, 0x50, 0xFF, 0xFF, 0xC4, 0xF0, 0x22, 0x0D, + 0xCC, 0xF0, 0x14, 0x00, 0x02, 0x06, 0xC4, 0x7C, 0x82, 0x0A, 0xC4, 0x7D, 0x92, 0x06, 0xF2, 0x07, + 0xC4, 0x70, 0x22, 0x03, 0xC4, 0x7D, 0x02, 0x03, 0xA1, 0x04, 0xF2, 0x2E, 0x38, 0x81, 0x04, 0x01, + 0x38, 0xA1, 0xCC, 0x00, 0x26, 0x87, 0x23, 0x88, 0x26, 0x88, 0x26, 0xA8, 0x20, 0xAA, 0xB9, 0x81, + 0x3C, 0x01, 0x06, 0x8A, 0x38, 0xA1, 0xF4, 0x00, 0x36, 0x8A, 0xB9, 0x81, 0xD0, 0x00, 0x06, 0xA8, + 0xC3, 0x88, 0x32, 0x02, 0x04, 0xA0, 0xC4, 0x62, 0x43, 0x8A, 0xB9, 0x81, 0xD0, 0x00, 0xA1, 0xA4, + 0xD2, 0x13, 0xC4, 0x52, 0xD2, 0x11, 0x38, 0xA1, 0xE8, 0x00, 0x38, 0x81, 0x3C, 0x01, 0x24, 0x31, + 0x26, 0x8A, 0x20, 0xA8, 0x38, 0x81, 0xF4, 0x00, 0x36, 0xA8, 0x38, 0x81, 0xD4, 0x00, 0xA1, 0xA8, + 0x38, 0xA1, 0xD0, 0x00, 0x26, 0x2A, 0x38, 0x81, 0xD4, 0x00, 0x24, 0x51, 0x23, 0x55, 0xC4, 0x54, + 0x24, 0x82, 0x24, 0x71, 0xB9, 0x81, 0xD4, 0x00, 0x24, 0x42, 0x33, 0x77, 0x92, 0xB8, 0x24, 0x61, + 0x23, 0x66, 0xC4, 0x64, 0x24, 0xCA, 0x24, 0xD6, 0x92, 0x9E, 0x98, 0x70, 0xAC, 0x15, 0x92, 0x1A, + 0x34, 0x31, 0xC4, 0x30, 0x12, 0x02, 0x04, 0x31, 0x38, 0xA1, 0xBC, 0x00, 0xC4, 0xA1, 0x92, 0x12, + 0x38, 0xC0, 0x94, 0x15, 0x78, 0xD1, 0x64, 0x00, 0x0B, 0x9B, 0x00, 0x00, 0x28, 0x7C, 0x34, 0x00, + 0x3F, 0x22, 0x0D, 0x00, 0xC6, 0x27, 0xB2, 0x06, 0x28, 0x7C, 0x36, 0x00, 0xC6, 0xD7, 0x2A, 0x81, + 0x03, 0x00, 0x38, 0x31, 0xB8, 0x00, 0x78, 0x21, 0x88, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, + 0x64, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, 0xBC, 0x00, 0x43, 0x22, 0xC4, 0x71, 0x92, 0x3C, + 0x06, 0x76, 0x0C, 0x70, 0x98, 0x15, 0x04, 0xA8, 0x26, 0xA7, 0x20, 0x67, 0x28, 0xF7, 0x02, 0x00, + 0x28, 0xD7, 0x04, 0x00, 0x28, 0xC7, 0x06, 0x00, 0x38, 0x31, 0xAC, 0x00, 0x20, 0x7A, 0xB9, 0x61, + 0xB8, 0x00, 0x0C, 0x40, 0x4C, 0x00, 0x26, 0x41, 0xB9, 0x71, 0xD4, 0x00, 0x24, 0x48, 0x04, 0x50, + 0x2C, 0x30, 0x1E, 0x00, 0x1C, 0xA0, 0x32, 0x00, 0x2F, 0x75, 0x03, 0x00, 0x04, 0x60, 0x38, 0x81, + 0xB8, 0x00, 0xC6, 0x78, 0x82, 0x0F, 0xC6, 0x7F, 0x82, 0x0D, 0xC6, 0x7D, 0x82, 0x0B, 0xC6, 0x7C, + 0x82, 0x09, 0x38, 0x81, 0xD4, 0x00, 0xC6, 0x78, 0x82, 0x05, 0x2F, 0x86, 0x04, 0x00, 0xA9, 0x08, + 0x28, 0x00, 0x34, 0x6A, 0xC6, 0x6A, 0x34, 0x71, 0x92, 0xEB, 0x34, 0x5E, 0x1C, 0x60, 0x46, 0x00, + 0xC6, 0x56, 0x34, 0x42, 0x92, 0xE2, 0x78, 0x71, 0x64, 0x00, 0x28, 0x6E, 0x08, 0x00, 0xB9, 0x71, + 0xA4, 0x00, 0xC6, 0x67, 0x02, 0x03, 0xA9, 0x7E, 0x08, 0x00, 0x28, 0x6E, 0x0A, 0x00, 0xC6, 0x67, + 0x32, 0x03, 0xA9, 0x7E, 0x0A, 0x00, 0x38, 0x71, 0xB4, 0x00, 0x38, 0x81, 0x08, 0x01, 0xB8, 0xA1, + 0xA8, 0x00, 0x66, 0x78, 0xB9, 0x71, 0xB4, 0x00, 0x82, 0x12, 0x38, 0x81, 0x0C, 0x01, 0xC4, 0xA1, + 0x66, 0x78, 0xB9, 0x71, 0xB4, 0x00, 0x82, 0x0B, 0x38, 0xA1, 0x10, 0x01, 0x66, 0x7A, 0xB9, 0x71, + 0xB4, 0x00, 0x38, 0x71, 0xA8, 0x00, 0xCC, 0x70, 0x15, 0x00, 0x82, 0x12, 0x38, 0x71, 0xA8, 0x00, + 0x38, 0x81, 0xB4, 0x00, 0x38, 0xA1, 0x14, 0x01, 0xCC, 0x70, 0x14, 0x00, 0x66, 0x8A, 0xB9, 0x81, + 0xB4, 0x00, 0x82, 0x06, 0x38, 0xA1, 0x18, 0x01, 0x66, 0x8A, 0xB9, 0x81, 0xB4, 0x00, 0x0C, 0xF0, + 0x00, 0x10, 0x18, 0x7F, 0x04, 0x00, 0x78, 0x61, 0x86, 0x00, 0x38, 0x41, 0xF0, 0x00, 0x38, 0x51, + 0xEC, 0x00, 0xD7, 0x71, 0xC6, 0x62, 0x26, 0x7F, 0x99, 0x47, 0x38, 0x01, 0x99, 0x57, 0x39, 0x01, + 0x04, 0x72, 0x12, 0x0A, 0x78, 0x61, 0x80, 0x00, 0xC6, 0x62, 0x12, 0x06, 0x78, 0x61, 0x8C, 0x00, + 0xC6, 0x62, 0x12, 0x02, 0x04, 0x70, 0x78, 0x61, 0x8A, 0x00, 0xC6, 0x62, 0x12, 0x09, 0x78, 0x61, + 0x84, 0x00, 0xC6, 0x62, 0x12, 0x05, 0x78, 0x61, 0x90, 0x00, 0xC6, 0x62, 0x02, 0x02, 0x64, 0x74, + 0x78, 0x61, 0x82, 0x00, 0xC6, 0x62, 0x12, 0x09, 0x78, 0x61, 0x80, 0x00, 0xC6, 0x62, 0x12, 0x05, + 0x78, 0x61, 0x84, 0x00, 0xC6, 0x62, 0x02, 0x02, 0x64, 0x78, 0x78, 0x61, 0x8E, 0x00, 0xC6, 0x62, + 0x12, 0x09, 0x78, 0x61, 0x8C, 0x00, 0xC6, 0x62, 0x12, 0x05, 0x78, 0x61, 0x90, 0x00, 0xC6, 0x62, + 0x02, 0x03, 0x6C, 0x70, 0x10, 0x00, 0x0C, 0x60, 0x4C, 0x00, 0x04, 0x42, 0x04, 0x34, 0x04, 0x28, + 0x56, 0x47, 0x56, 0x37, 0x56, 0x27, 0x26, 0x61, 0x0C, 0x50, 0x74, 0x00, 0x5C, 0x70, 0x10, 0x00, + 0x24, 0x68, 0x26, 0x51, 0x13, 0x44, 0x13, 0x33, 0x13, 0x22, 0x13, 0x77, 0xC4, 0x40, 0x92, 0x02, + 0xA1, 0x05, 0xC4, 0x30, 0x92, 0x03, 0xA9, 0x05, 0x08, 0x00, 0xC4, 0x20, 0x92, 0x02, 0xA1, 0x06, + 0xC4, 0x70, 0x92, 0x03, 0xA9, 0x06, 0x28, 0x00, 0x38, 0x81, 0x28, 0x01, 0x34, 0x62, 0xC6, 0x68, + 0x34, 0x5A, 0x92, 0xED, 0x78, 0x31, 0x4E, 0x00, 0x78, 0x41, 0x50, 0x00, 0x78, 0x51, 0x52, 0x00, + 0x78, 0x61, 0x54, 0x00, 0x78, 0x21, 0x4C, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0xB9, 0x21, + 0xAC, 0x00, 0x78, 0x31, 0x76, 0x00, 0x78, 0x41, 0x78, 0x00, 0x78, 0x51, 0x7A, 0x00, 0x78, 0x61, + 0x7C, 0x00, 0x78, 0x21, 0x74, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0xB8, 0x00, + 0x78, 0x31, 0x58, 0x00, 0x78, 0x41, 0x5A, 0x00, 0x78, 0x51, 0x5C, 0x00, 0x78, 0x61, 0x5E, 0x00, + 0x78, 0x21, 0x56, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x78, 0x31, 0x62, 0x00, 0x78, 0x41, + 0x64, 0x00, 0x78, 0x51, 0x66, 0x00, 0x78, 0x61, 0x68, 0x00, 0x06, 0xA2, 0x78, 0x21, 0x60, 0x00, + 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0xD2, 0x78, 0x31, 0x6C, 0x00, 0x78, 0x21, 0x6A, 0x00, + 0x78, 0x41, 0x6E, 0x00, 0x78, 0x51, 0x70, 0x00, 0x78, 0x61, 0x72, 0x00, 0x0C, 0xF0, 0xE0, 0x00, + 0xF1, 0xF0, 0x0C, 0xF0, 0x00, 0x10, 0xF8, 0x7F, 0xE6, 0x01, 0x06, 0xC2, 0x32, 0x05, 0x38, 0x31, + 0xA8, 0x00, 0xA9, 0x3F, 0xE6, 0x01, 0x78, 0x79, 0xE6, 0x01, 0x38, 0x81, 0xB0, 0x00, 0x14, 0x61, + 0x26, 0x67, 0xC6, 0x68, 0x1A, 0x34, 0x01, 0x00, 0x24, 0x71, 0xC6, 0x78, 0x2A, 0x30, 0x01, 0x00, + 0x98, 0x89, 0x04, 0x00, 0x9A, 0x27, 0x01, 0x00, 0x18, 0x79, 0x28, 0x03, 0xC4, 0x71, 0xDA, 0x22, + 0x01, 0x00, 0x38, 0x71, 0xBC, 0x00, 0xC4, 0x72, 0x9A, 0x1D, 0x01, 0x00, 0x98, 0x70, 0xBA, 0x15, + 0x82, 0x03, 0x0C, 0x80, 0x32, 0x00, 0x28, 0x69, 0x06, 0x00, 0xD4, 0x68, 0x82, 0x06, 0x04, 0x80, + 0xC6, 0x78, 0x82, 0x03, 0x0C, 0x80, 0x32, 0x00, 0x78, 0x79, 0xE4, 0x01, 0x06, 0x6D, 0x06, 0x2D, + 0x57, 0x63, 0x57, 0x22, 0x26, 0x26, 0x0C, 0x30, 0x64, 0x00, 0xB9, 0x71, 0x38, 0x01, 0x4B, 0x9E, + 0x00, 0x00, 0xC6, 0x2A, 0x38, 0x71, 0x38, 0x01, 0x02, 0x07, 0xC6, 0x2C, 0x02, 0x05, 0x38, 0xF1, + 0xA8, 0x00, 0xC6, 0x7F, 0x92, 0x1D, 0x18, 0x79, 0xE8, 0x01, 0xCC, 0x70, 0xFF, 0x00, 0x82, 0x04, + 0x24, 0x71, 0x99, 0x79, 0xE8, 0x01, 0x18, 0x79, 0xE8, 0x01, 0xC4, 0x73, 0xC2, 0x15, 0x18, 0x79, + 0xE9, 0x01, 0x99, 0x09, 0xE8, 0x01, 0xC6, 0x78, 0xB2, 0x04, 0x99, 0x89, 0xE9, 0x01, 0xF2, 0x0C, + 0xCC, 0x70, 0x3E, 0x00, 0xD2, 0x09, 0x24, 0x71, 0x99, 0x79, 0xE9, 0x01, 0xF2, 0x05, 0x99, 0x09, + 0xE8, 0x01, 0x99, 0x09, 0xE9, 0x01, 0x38, 0x71, 0xA8, 0x00, 0xC4, 0x71, 0x02, 0x28, 0xB0, 0x2B, + 0x82, 0x1D, 0x18, 0x89, 0xE9, 0x01, 0x06, 0x38, 0xAB, 0x97, 0x00, 0x00, 0x06, 0x72, 0x38, 0x21, + 0xAC, 0x00, 0xB9, 0x71, 0x38, 0x01, 0x0C, 0x30, 0x40, 0x00, 0x36, 0x38, 0xAB, 0x97, 0x00, 0x00, + 0x38, 0x71, 0x38, 0x01, 0x26, 0x27, 0x67, 0x23, 0xC4, 0x20, 0xB1, 0x2B, 0x92, 0x03, 0x04, 0x7A, + 0xB1, 0x7B, 0x30, 0x8B, 0xB9, 0x81, 0xAC, 0x00, 0xF2, 0x0D, 0xB8, 0x71, 0xAC, 0x00, 0x92, 0x03, + 0x04, 0x7A, 0xF2, 0x03, 0x38, 0x71, 0xAC, 0x00, 0xB1, 0x7B, 0xF2, 0x04, 0xB8, 0x81, 0xA8, 0x00, + 0x82, 0x26, 0xB8, 0x2B, 0x04, 0x00, 0x82, 0x1D, 0x18, 0x89, 0xE9, 0x01, 0x06, 0x38, 0xAB, 0x97, + 0x00, 0x00, 0x0C, 0x30, 0x40, 0x00, 0x06, 0x72, 0x36, 0x38, 0x06, 0x2A, 0xB9, 0x71, 0x38, 0x01, + 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x38, 0x01, 0x26, 0x27, 0x67, 0x23, 0xC4, 0x20, 0xB9, 0x2B, + 0x04, 0x00, 0x92, 0x04, 0x04, 0x7A, 0xB9, 0x7B, 0x04, 0x00, 0x38, 0xAB, 0x04, 0x00, 0xF2, 0x07, + 0xC4, 0xA0, 0x04, 0x7A, 0x82, 0x02, 0x06, 0x7A, 0xB9, 0x7B, 0x04, 0x00, 0xB8, 0x2B, 0x08, 0x00, + 0x82, 0x1D, 0x18, 0x89, 0xE9, 0x01, 0x06, 0x38, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x40, 0x00, + 0x06, 0x72, 0x36, 0x38, 0x06, 0x2D, 0xB9, 0x71, 0x38, 0x01, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, + 0x38, 0x01, 0x26, 0x27, 0x67, 0x23, 0xC4, 0x20, 0xB9, 0x2B, 0x08, 0x00, 0x92, 0x04, 0x04, 0x7A, + 0xB9, 0x7B, 0x08, 0x00, 0x38, 0xDB, 0x08, 0x00, 0xF2, 0x07, 0xC4, 0xD0, 0x04, 0x7A, 0x82, 0x02, + 0x06, 0x7D, 0xB9, 0x7B, 0x08, 0x00, 0x38, 0x71, 0xA8, 0x00, 0xCC, 0x70, 0x15, 0x00, 0x82, 0x55, + 0xB8, 0x2B, 0x0C, 0x00, 0x82, 0x1D, 0x18, 0x89, 0xE9, 0x01, 0x06, 0x38, 0xAB, 0x97, 0x00, 0x00, + 0x0C, 0x30, 0x40, 0x00, 0x06, 0x72, 0x36, 0x38, 0x06, 0x2C, 0xB9, 0x71, 0x38, 0x01, 0xAB, 0x97, + 0x00, 0x00, 0x38, 0x71, 0x38, 0x01, 0x26, 0x27, 0x67, 0x23, 0xC4, 0x20, 0xB9, 0x2B, 0x0C, 0x00, + 0x92, 0x04, 0x04, 0x7A, 0xB9, 0x7B, 0x0C, 0x00, 0x38, 0xCB, 0x0C, 0x00, 0xF2, 0x07, 0xC4, 0xC0, + 0x04, 0x7A, 0x82, 0x02, 0x06, 0x7C, 0xB9, 0x7B, 0x0C, 0x00, 0x38, 0x81, 0xA8, 0x00, 0xCC, 0x80, + 0x13, 0x00, 0x12, 0x2B, 0xB8, 0x2B, 0x10, 0x00, 0x82, 0x20, 0x18, 0x89, 0xE9, 0x01, 0x06, 0x38, + 0xAB, 0x97, 0x00, 0x00, 0x06, 0x72, 0x38, 0x21, 0xB8, 0x00, 0xB9, 0x71, 0x38, 0x01, 0x0C, 0x30, + 0x40, 0x00, 0x36, 0x38, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x38, 0x01, 0x26, 0x27, 0x67, 0x23, + 0xC4, 0x20, 0xB9, 0x2B, 0x10, 0x00, 0x92, 0x04, 0x04, 0x7A, 0xB9, 0x7B, 0x10, 0x00, 0x38, 0x7B, + 0x10, 0x00, 0xB9, 0x71, 0xB8, 0x00, 0xF2, 0x09, 0xB8, 0x81, 0xB8, 0x00, 0x04, 0x7A, 0x82, 0x03, + 0x38, 0x71, 0xB8, 0x00, 0xB9, 0x7B, 0x10, 0x00, 0x38, 0xF1, 0xA8, 0x00, 0xA9, 0xF9, 0xE4, 0x01, + 0xF2, 0x0A, 0x38, 0x31, 0xA8, 0x00, 0xA9, 0x39, 0xE4, 0x01, 0xF2, 0x05, 0x38, 0x41, 0xA8, 0x00, + 0xA9, 0x49, 0xE4, 0x01, 0x38, 0x21, 0xAC, 0x00, 0x38, 0x61, 0xB8, 0x00, 0x06, 0x3A, 0x06, 0x4D, + 0x06, 0x5C, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x86, 0x82, 0x92, 0x06, 0x04, 0x7A, 0x04, 0xDA, + 0xA9, 0x71, 0x64, 0x00, 0x06, 0x8D, 0x38, 0x71, 0xC0, 0x00, 0x38, 0x21, 0xAC, 0x00, 0x20, 0x37, + 0xAB, 0x97, 0x00, 0x00, 0x06, 0x72, 0x06, 0x2A, 0x38, 0xA1, 0xC0, 0x00, 0x28, 0x3A, 0x02, 0x00, + 0xB9, 0x71, 0x38, 0x01, 0xAB, 0x97, 0x00, 0x00, 0x38, 0xF1, 0xC0, 0x00, 0x06, 0xA2, 0x28, 0x3F, + 0x04, 0x00, 0x06, 0x2D, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x51, 0xC0, 0x00, 0x06, 0x42, 0x28, 0x35, + 0x06, 0x00, 0xB9, 0x41, 0x34, 0x01, 0x06, 0x2C, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x61, 0xC0, 0x00, + 0x06, 0xD2, 0x28, 0x36, 0x08, 0x00, 0x38, 0x21, 0xB8, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, + 0x38, 0x01, 0x38, 0x41, 0x34, 0x01, 0x06, 0x62, 0x06, 0x3A, 0x06, 0x27, 0x06, 0x5D, 0x0C, 0xF0, + 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0x38, 0x4B, 0x9E, 0x00, 0x00, 0x18, 0x79, 0x04, 0x00, 0x86, 0x22, + 0xD7, 0x71, 0x26, 0x79, 0x24, 0x74, 0x32, 0x02, 0x04, 0x20, 0xA9, 0x27, 0x38, 0x01, 0x78, 0x31, + 0x56, 0x00, 0x78, 0x41, 0x60, 0x00, 0x78, 0x51, 0x6A, 0x00, 0x78, 0x61, 0x74, 0x00, 0x78, 0x21, + 0x4C, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0xAC, 0x00, 0x78, 0x31, 0x5E, 0x00, + 0x78, 0x41, 0x68, 0x00, 0x78, 0x51, 0x72, 0x00, 0x78, 0x61, 0x7C, 0x00, 0x78, 0x21, 0x54, 0x00, + 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0xC2, 0x78, 0x31, 0x58, 0x00, 0x78, 0x41, 0x62, 0x00, + 0x78, 0x51, 0x6C, 0x00, 0x78, 0x61, 0x76, 0x00, 0x78, 0x21, 0x4E, 0x00, 0x0C, 0xF0, 0xE0, 0x00, + 0xF1, 0xF0, 0x06, 0xA2, 0x78, 0x31, 0x5A, 0x00, 0x78, 0x41, 0x64, 0x00, 0x78, 0x51, 0x6E, 0x00, + 0x78, 0x61, 0x78, 0x00, 0x78, 0x21, 0x50, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0xD2, + 0x78, 0x31, 0x5C, 0x00, 0x78, 0x41, 0x66, 0x00, 0x78, 0x51, 0x70, 0x00, 0x78, 0x61, 0x7A, 0x00, + 0x78, 0x21, 0x52, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0xBC, 0x00, 0x38, 0x51, + 0xBC, 0x00, 0x38, 0x21, 0xAC, 0x00, 0x06, 0x3A, 0x06, 0x4D, 0x06, 0x6C, 0x0C, 0xF0, 0xE0, 0x00, + 0xF1, 0xF0, 0x86, 0x82, 0x92, 0x06, 0x04, 0x7A, 0x04, 0x8A, 0xA9, 0x71, 0x64, 0x00, 0x06, 0xD8, + 0x38, 0x71, 0xC4, 0x00, 0x38, 0x21, 0xAC, 0x00, 0x20, 0x37, 0xAB, 0x97, 0x00, 0x00, 0x06, 0x72, + 0x06, 0x2A, 0x38, 0xA1, 0xC4, 0x00, 0x28, 0x3A, 0x02, 0x00, 0xB9, 0x71, 0x38, 0x01, 0xAB, 0x97, + 0x00, 0x00, 0x38, 0xF1, 0xC4, 0x00, 0x06, 0xA2, 0x28, 0x3F, 0x04, 0x00, 0x06, 0x2D, 0xAB, 0x97, + 0x00, 0x00, 0x38, 0x51, 0xC4, 0x00, 0x06, 0x42, 0x28, 0x35, 0x06, 0x00, 0x38, 0x21, 0xBC, 0x00, + 0xB9, 0x41, 0x34, 0x01, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x61, 0xC4, 0x00, 0x06, 0xD2, 0x28, 0x36, + 0x08, 0x00, 0x06, 0x2C, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x38, 0x01, 0x38, 0x41, 0x34, 0x01, + 0x06, 0x62, 0x06, 0x3A, 0x06, 0x27, 0x06, 0x5D, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0x38, + 0x4B, 0x9E, 0x00, 0x00, 0x18, 0x69, 0x04, 0x00, 0x86, 0x22, 0x06, 0x76, 0xD7, 0x71, 0x26, 0x79, + 0x24, 0x74, 0x32, 0x02, 0x04, 0x20, 0xA9, 0x27, 0x36, 0x01, 0x06, 0x76, 0x24, 0x71, 0x13, 0x77, + 0xC4, 0x74, 0x99, 0x79, 0x04, 0x00, 0xC2, 0x05, 0x04, 0x75, 0x99, 0x79, 0x04, 0x00, 0xF2, 0x1D, + 0x38, 0x71, 0xC8, 0x00, 0x38, 0x81, 0xC4, 0x00, 0x24, 0x71, 0xC4, 0x7E, 0x24, 0x82, 0xB9, 0x71, + 0xC8, 0x00, 0xB9, 0x81, 0xC4, 0x00, 0x9A, 0xE3, 0xFA, 0xFF, 0x38, 0x71, 0xE0, 0x00, 0x38, 0xA1, + 0xC0, 0x00, 0xCC, 0x70, 0x16, 0x00, 0x24, 0xA2, 0xB9, 0xA1, 0xC0, 0x00, 0x24, 0xB4, 0x82, 0x05, + 0xB9, 0x71, 0xB0, 0x00, 0xFA, 0x98, 0xFA, 0xFF, 0x78, 0x7E, 0xE6, 0x01, 0x78, 0x6E, 0xE4, 0x01, + 0x14, 0x51, 0x26, 0x57, 0xC6, 0x56, 0x12, 0x04, 0x24, 0x71, 0xC6, 0x76, 0x32, 0x07, 0x18, 0x7E, + 0xEA, 0x01, 0x24, 0x71, 0x99, 0x7E, 0xEA, 0x01, 0xF2, 0x03, 0x99, 0x0E, 0xEA, 0x01, 0x38, 0x60, + 0x80, 0x15, 0x14, 0x51, 0xC4, 0x65, 0x26, 0x56, 0x13, 0x55, 0x04, 0x75, 0xD2, 0x02, 0x06, 0x75, + 0x18, 0x5E, 0xEA, 0x01, 0x13, 0x37, 0x0C, 0x40, 0x6C, 0x11, 0x04, 0x70, 0x38, 0x61, 0xB4, 0x00, + 0x73, 0x67, 0xD4, 0x61, 0x92, 0x05, 0xC6, 0x53, 0xC2, 0x03, 0xB1, 0x04, 0x06, 0x56, 0x24, 0x71, + 0xCC, 0x70, 0x16, 0x00, 0x24, 0x44, 0x92, 0xF3, 0x18, 0xBE, 0x04, 0x00, 0x99, 0x5E, 0xEA, 0x01, + 0xC4, 0xB1, 0x92, 0x6D, 0x18, 0xDE, 0x38, 0x01, 0xC4, 0xDB, 0xD2, 0x69, 0x14, 0x61, 0x26, 0x6D, + 0xC4, 0x69, 0x0C, 0xA0, 0x26, 0x01, 0x43, 0x7D, 0x26, 0xAD, 0x0C, 0x90, 0x80, 0x02, 0xD2, 0x12, + 0x14, 0x61, 0x04, 0x31, 0x26, 0x6A, 0x26, 0x3A, 0x26, 0x66, 0x26, 0x33, 0x26, 0x69, 0x26, 0x39, + 0x70, 0x46, 0x70, 0x53, 0xC6, 0x45, 0x02, 0x03, 0xA1, 0x03, 0xF2, 0x04, 0xC6, 0x45, 0x32, 0x02, + 0xA1, 0x06, 0xC4, 0x70, 0x82, 0x18, 0x14, 0x61, 0x26, 0x6A, 0x26, 0x66, 0x26, 0x69, 0x70, 0xC6, + 0x0C, 0x60, 0x11, 0x00, 0x26, 0x6D, 0x26, 0x66, 0x26, 0x6E, 0x28, 0x36, 0x02, 0x00, 0xB9, 0x71, + 0x38, 0x01, 0x06, 0x2C, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x38, 0x01, 0x06, 0x82, 0xC4, 0x7B, + 0x82, 0x19, 0xF2, 0x03, 0x06, 0xC7, 0x06, 0x87, 0x04, 0x71, 0x26, 0x7A, 0x0C, 0x60, 0x13, 0x00, + 0x26, 0x77, 0x26, 0x6D, 0x26, 0x79, 0x26, 0x66, 0x70, 0x77, 0x26, 0x6E, 0x28, 0x36, 0x02, 0x00, + 0xB9, 0x71, 0x38, 0x01, 0x06, 0x27, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x38, 0x01, 0x26, 0x82, + 0x26, 0xC7, 0x26, 0xAA, 0x26, 0x9A, 0x70, 0x29, 0x2C, 0xD0, 0x12, 0x00, 0x26, 0xC2, 0xC4, 0xC0, + 0x26, 0xDD, 0x26, 0xDE, 0x92, 0x09, 0x28, 0x2D, 0x02, 0x00, 0x04, 0xCA, 0x26, 0x22, 0x06, 0x82, + 0x57, 0x81, 0x26, 0x28, 0xF2, 0x06, 0x28, 0x3D, 0x02, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x26, 0x28, + 0x06, 0x3C, 0x4B, 0x9E, 0x00, 0x00, 0xA9, 0x2E, 0x34, 0x01, 0xF2, 0x05, 0xA9, 0x0E, 0x34, 0x01, + 0xA9, 0x0E, 0x36, 0x01, 0x38, 0xD0, 0x94, 0x15, 0x30, 0x7D, 0xDC, 0x70, 0x80, 0x00, 0x82, 0x67, + 0xC4, 0xB0, 0x92, 0x17, 0xA8, 0x7E, 0x6A, 0x01, 0x82, 0x0B, 0x18, 0x7E, 0x68, 0x01, 0x18, 0x6D, + 0x41, 0x00, 0xC6, 0x67, 0xC2, 0x05, 0x24, 0x71, 0x99, 0x7E, 0x68, 0x01, 0xF2, 0x58, 0xB9, 0x0E, + 0x64, 0x01, 0x99, 0x0E, 0x69, 0x01, 0x99, 0x0E, 0x68, 0x01, 0xA9, 0x0E, 0x6A, 0x01, 0xF2, 0x4F, + 0x18, 0xCE, 0x69, 0x01, 0x18, 0x7D, 0x3E, 0x00, 0xC6, 0xC7, 0xB2, 0x11, 0x24, 0xC1, 0x13, 0xCC, + 0x99, 0xCE, 0x69, 0x01, 0x18, 0x7D, 0x3F, 0x00, 0xC6, 0x7C, 0xB2, 0x3F, 0x38, 0x7E, 0x64, 0x01, + 0x28, 0x6E, 0x0C, 0x00, 0x26, 0x76, 0xB9, 0x7E, 0x64, 0x01, 0xF2, 0x37, 0xC6, 0xC7, 0x92, 0x35, + 0x38, 0x7E, 0x64, 0x01, 0x28, 0x2E, 0x0C, 0x00, 0x26, 0x27, 0xB9, 0x2E, 0x64, 0x01, 0x18, 0x3D, + 0x3F, 0x00, 0x3F, 0x33, 0x0C, 0x00, 0x24, 0x31, 0x0B, 0x9B, 0x00, 0x00, 0xA9, 0x0E, 0x6A, 0x01, + 0x28, 0x7D, 0x42, 0x00, 0xB9, 0x2E, 0x64, 0x01, 0x06, 0xA2, 0xC6, 0x27, 0xC2, 0x15, 0x38, 0x71, + 0xDC, 0x00, 0x18, 0x3D, 0x40, 0x00, 0x36, 0x27, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, + 0x0B, 0x9B, 0x00, 0x00, 0x23, 0x22, 0xA9, 0x2E, 0x6A, 0x01, 0x28, 0x7D, 0x44, 0x00, 0xC6, 0x27, + 0xC2, 0x03, 0xA9, 0x7E, 0x6A, 0x01, 0x18, 0x3D, 0x3F, 0x00, 0x06, 0x2A, 0x3F, 0x33, 0x0C, 0x00, + 0xAB, 0x97, 0x00, 0x00, 0xB9, 0x2E, 0x64, 0x01, 0x99, 0x0E, 0x68, 0x01, 0x0C, 0x40, 0x0D, 0x05, + 0x26, 0x4E, 0x60, 0x44, 0x04, 0xA0, 0xB9, 0x41, 0xA8, 0x00, 0x14, 0xD1, 0x06, 0xCA, 0x0C, 0x90, + 0x16, 0x00, 0xC6, 0xCB, 0x32, 0x56, 0x06, 0x5C, 0xD7, 0x51, 0x26, 0x5E, 0x04, 0x84, 0x26, 0x85, + 0x78, 0x28, 0x36, 0x01, 0xB9, 0x51, 0x2C, 0x01, 0x04, 0x3A, 0x4B, 0x9E, 0x00, 0x00, 0x06, 0x42, + 0xA9, 0x28, 0x36, 0x01, 0x78, 0x28, 0x38, 0x01, 0xB9, 0x41, 0x34, 0x01, 0x04, 0x3A, 0x4B, 0x9E, + 0x00, 0x00, 0x0C, 0x60, 0x34, 0x01, 0x26, 0x68, 0x10, 0x66, 0x38, 0x41, 0x34, 0x01, 0x38, 0x51, + 0x2C, 0x01, 0xB9, 0x61, 0xB0, 0x00, 0x43, 0x22, 0xA9, 0x28, 0x38, 0x01, 0x43, 0x44, 0x0C, 0x70, + 0xAA, 0x14, 0x04, 0x60, 0x78, 0x37, 0x04, 0x00, 0xC6, 0x34, 0x12, 0x0E, 0x78, 0x37, 0x06, 0x00, + 0xC6, 0x34, 0x22, 0x0A, 0x70, 0x37, 0xC6, 0x32, 0x12, 0x07, 0x78, 0x37, 0x02, 0x00, 0xC6, 0x32, + 0x22, 0x03, 0x18, 0x95, 0x39, 0x01, 0x06, 0xF9, 0x38, 0x81, 0xB0, 0x00, 0x57, 0xF2, 0x2F, 0x39, + 0x09, 0x00, 0x3F, 0x33, 0x0F, 0x00, 0x26, 0x38, 0x26, 0x33, 0x0C, 0xF0, 0x80, 0x02, 0x26, 0x3F, + 0x70, 0x33, 0xC6, 0xA3, 0x32, 0x06, 0x33, 0x86, 0xB9, 0x81, 0xA8, 0x00, 0x06, 0xA3, 0x06, 0xDC, + 0x24, 0x61, 0x43, 0x66, 0xC4, 0x62, 0x24, 0x78, 0x92, 0xD6, 0x24, 0xC1, 0x43, 0xCC, 0xF2, 0xAA, + 0xB9, 0xA1, 0xA4, 0x00, 0x98, 0x7E, 0x05, 0x00, 0x38, 0xA1, 0xA8, 0x00, 0xB9, 0xD1, 0xB0, 0x00, + 0x99, 0xAE, 0x0D, 0x05, 0x92, 0x23, 0xC4, 0xB1, 0xC2, 0x21, 0x98, 0x7E, 0x28, 0x03, 0x92, 0x1E, + 0xB8, 0x71, 0xD8, 0x00, 0x82, 0x1B, 0x34, 0x71, 0xD7, 0x71, 0x26, 0x7E, 0x78, 0x57, 0x3A, 0x01, + 0x78, 0x67, 0x3C, 0x01, 0x0C, 0x40, 0x62, 0x01, 0x0C, 0x70, 0x3A, 0x11, 0x26, 0x4E, 0xC6, 0x74, + 0x82, 0x06, 0xA1, 0x07, 0xA9, 0x07, 0x02, 0x00, 0x24, 0x78, 0xF2, 0xFA, 0x04, 0x71, 0x99, 0x7E, + 0x04, 0x00, 0xA9, 0x5E, 0x3A, 0x01, 0xA9, 0x6E, 0x3C, 0x01, 0x28, 0x5E, 0x06, 0x00, 0x04, 0x71, + 0xD6, 0x75, 0x82, 0x1B, 0x18, 0x5E, 0x04, 0x00, 0xC4, 0x51, 0xC2, 0x39, 0xC4, 0xD0, 0x22, 0x37, + 0xC6, 0xD5, 0x32, 0x0E, 0x06, 0x4D, 0x24, 0xD1, 0x06, 0x7D, 0xD7, 0x71, 0x26, 0x7E, 0x48, 0x67, + 0x38, 0x01, 0xD7, 0x41, 0x26, 0x4E, 0xC9, 0x64, 0x38, 0x01, 0x43, 0xDD, 0xF2, 0xF2, 0x06, 0x75, + 0x34, 0x71, 0x99, 0x7E, 0x04, 0x00, 0xF2, 0x23, 0x04, 0x72, 0xD6, 0x75, 0x82, 0x20, 0x18, 0x4E, + 0x04, 0x00, 0xC4, 0x41, 0xC2, 0x1C, 0xC4, 0xD0, 0x22, 0x1A, 0xC6, 0xD4, 0x32, 0x0E, 0x06, 0x3D, + 0x24, 0xD1, 0x06, 0x7D, 0xD7, 0x71, 0x26, 0x7E, 0x48, 0x67, 0x38, 0x01, 0xD7, 0x31, 0x26, 0x3E, + 0xC9, 0x63, 0x38, 0x01, 0x43, 0xDD, 0xF2, 0xF2, 0x06, 0x74, 0x34, 0x71, 0x99, 0x7E, 0x04, 0x00, + 0x14, 0x83, 0x06, 0x75, 0x56, 0x78, 0x64, 0x71, 0xA9, 0x7E, 0x06, 0x00, 0x18, 0x7E, 0x04, 0x00, + 0xC4, 0x71, 0xCA, 0x59, 0x01, 0x00, 0x18, 0x7E, 0x56, 0x02, 0x0C, 0x80, 0x00, 0x64, 0xC4, 0x70, + 0x82, 0x03, 0x0C, 0x80, 0x00, 0x94, 0x0C, 0x20, 0x94, 0x00, 0x26, 0x21, 0x04, 0x30, 0x04, 0x4A, + 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x18, 0xBE, 0x04, 0x00, 0x04, 0xA0, 0x06, 0xDA, 0x04, 0x51, + 0xC6, 0xDB, 0x32, 0x4D, 0x06, 0x9D, 0xD7, 0x91, 0x26, 0x9E, 0x2F, 0x6D, 0x0D, 0x00, 0x2C, 0x90, + 0x38, 0x01, 0x06, 0xCD, 0x26, 0x61, 0xC6, 0xCB, 0x32, 0x3F, 0x06, 0x7C, 0xD7, 0x71, 0x24, 0x74, + 0x2F, 0x47, 0x0E, 0x00, 0x78, 0x39, 0x02, 0x00, 0x78, 0x74, 0x36, 0x01, 0x3F, 0x77, 0x03, 0x00, + 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, 0x78, 0x29, 0x04, 0x00, 0x78, 0x44, 0x38, 0x01, 0x36, 0x24, + 0xC4, 0x20, 0x32, 0x02, 0x16, 0x22, 0x06, 0x32, 0xB9, 0x51, 0x2C, 0x01, 0xB9, 0x61, 0x30, 0x01, + 0xB9, 0x71, 0x38, 0x01, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x38, 0x01, 0x06, 0x42, 0x06, 0x37, + 0x06, 0x27, 0xB9, 0x41, 0x34, 0x01, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x41, 0x34, 0x01, 0x38, 0x51, + 0x2C, 0x01, 0x38, 0x61, 0x30, 0x01, 0x26, 0x24, 0xC6, 0x82, 0xC2, 0x0B, 0x28, 0x46, 0x94, 0x00, + 0x06, 0x75, 0x53, 0x7C, 0xC6, 0xDC, 0x66, 0x74, 0xA9, 0x76, 0x94, 0x00, 0x82, 0x02, 0x04, 0xA1, + 0x24, 0xC1, 0x43, 0xCC, 0xF2, 0xC1, 0x24, 0xD1, 0x43, 0xDD, 0xF2, 0xB3, 0xC4, 0xA1, 0x92, 0x04, + 0x99, 0xAE, 0x56, 0x02, 0xF2, 0x03, 0x99, 0x0E, 0x56, 0x02, 0x14, 0x71, 0x26, 0x7B, 0x43, 0x77, + 0x14, 0x21, 0xC6, 0x72, 0x82, 0x23, 0x2F, 0x57, 0x07, 0x00, 0x26, 0x51, 0xA8, 0x65, 0x94, 0x00, + 0x82, 0x1A, 0x04, 0x61, 0x26, 0x67, 0x43, 0x66, 0x06, 0x45, 0xC6, 0x6B, 0x32, 0x14, 0x28, 0x34, + 0x94, 0x00, 0x06, 0x53, 0x63, 0x56, 0xD4, 0x51, 0x82, 0x0B, 0x2F, 0x56, 0x06, 0x00, 0x26, 0x51, + 0x28, 0xF5, 0x94, 0x00, 0x66, 0x3F, 0xA9, 0x34, 0x94, 0x00, 0xA9, 0x05, 0x94, 0x00, 0x24, 0x61, + 0x43, 0x66, 0xF2, 0xEC, 0x34, 0x71, 0x43, 0x77, 0xF2, 0xDD, 0x04, 0xB0, 0x06, 0xCB, 0x18, 0xDE, + 0x04, 0x00, 0xC6, 0xCD, 0x3A, 0x93, 0x00, 0x00, 0x2F, 0x6C, 0x0C, 0x00, 0x26, 0x61, 0xA8, 0x76, + 0x94, 0x00, 0x04, 0x81, 0x26, 0x8C, 0x8A, 0x87, 0x00, 0x00, 0xD7, 0xC1, 0x0C, 0xA0, 0x00, 0x10, + 0x24, 0xC4, 0x26, 0xCA, 0x18, 0x7C, 0x35, 0x01, 0x38, 0xA1, 0xCC, 0x00, 0x78, 0x3C, 0x36, 0x01, + 0x26, 0x77, 0x06, 0x57, 0xD7, 0x51, 0x3F, 0x77, 0x05, 0x00, 0x18, 0x5C, 0x34, 0x01, 0x26, 0x75, + 0x23, 0x77, 0x26, 0x77, 0x26, 0x7A, 0x70, 0xD7, 0xB9, 0x61, 0x30, 0x01, 0x06, 0x2D, 0xAB, 0x97, + 0x00, 0x00, 0x78, 0x3C, 0x38, 0x01, 0x06, 0x92, 0x06, 0x2D, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x61, + 0x30, 0x01, 0x06, 0xA2, 0x43, 0x78, 0xB9, 0x61, 0xA8, 0x00, 0x0C, 0x40, 0x00, 0x10, 0x18, 0x64, + 0x04, 0x00, 0xC6, 0x76, 0x32, 0x47, 0x38, 0x51, 0xA8, 0x00, 0x28, 0x65, 0x94, 0x00, 0x63, 0x67, + 0xD4, 0x61, 0x82, 0x3D, 0x06, 0x67, 0xD7, 0x61, 0x0C, 0xF0, 0x00, 0x10, 0x24, 0x64, 0x26, 0x6F, + 0x18, 0x56, 0x35, 0x01, 0x0C, 0x40, 0x34, 0x01, 0x26, 0x55, 0x06, 0x35, 0xD7, 0x31, 0x3F, 0x55, + 0x03, 0x00, 0x18, 0x36, 0x34, 0x01, 0x26, 0x46, 0x26, 0x53, 0x38, 0x31, 0xCC, 0x00, 0x23, 0x55, + 0x26, 0x55, 0x26, 0x53, 0x70, 0x55, 0x78, 0x36, 0x36, 0x01, 0xB9, 0x71, 0x38, 0x01, 0x06, 0x25, + 0xB9, 0x41, 0x34, 0x01, 0x26, 0xD5, 0xB9, 0x51, 0x2C, 0x01, 0xB9, 0x61, 0x30, 0x01, 0xAB, 0x97, + 0x00, 0x00, 0x38, 0x61, 0x30, 0x01, 0x38, 0x51, 0x2C, 0x01, 0x78, 0x36, 0x38, 0x01, 0x26, 0x92, + 0x06, 0x25, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x41, 0x34, 0x01, 0x26, 0xA2, 0x04, 0x30, 0x06, 0x24, + 0x04, 0x48, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x38, 0x71, 0x38, 0x01, 0x24, 0x71, 0x43, 0x77, + 0xF2, 0xB5, 0xC4, 0xD0, 0x92, 0x02, 0x04, 0xD1, 0x06, 0x3D, 0x06, 0x29, 0x0B, 0x9B, 0x00, 0x00, + 0xA9, 0x2C, 0x36, 0x01, 0x06, 0x3D, 0x06, 0x2A, 0x24, 0xB1, 0x0B, 0x9B, 0x00, 0x00, 0x23, 0xBB, + 0xA9, 0x2C, 0x38, 0x01, 0x43, 0xC8, 0xFA, 0x6C, 0xFF, 0xFF, 0x34, 0xD1, 0x43, 0xDD, 0x14, 0xC1, + 0x0C, 0xA0, 0x00, 0x10, 0xC6, 0xDC, 0x82, 0x1E, 0x06, 0x7D, 0xD7, 0x71, 0x24, 0x74, 0x0C, 0x50, + 0x00, 0x10, 0x26, 0x75, 0xF8, 0x67, 0x36, 0x01, 0x0C, 0x20, 0x34, 0x01, 0x26, 0x27, 0x92, 0x0F, + 0xF8, 0x77, 0x38, 0x01, 0x92, 0x0C, 0xC4, 0xD3, 0x12, 0x0A, 0x06, 0x3D, 0xD7, 0x31, 0x26, 0x3A, + 0x2C, 0x30, 0x40, 0x01, 0x04, 0x48, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x34, 0xD1, 0x43, 0xDD, + 0xF2, 0xE2, 0x0C, 0x60, 0x00, 0x10, 0x18, 0x76, 0x04, 0x00, 0xC6, 0x7B, 0xA2, 0x06, 0x99, 0xB6, + 0x04, 0x00, 0xF2, 0x03, 0x99, 0x0E, 0x56, 0x02, 0x98, 0x7E, 0x0A, 0x05, 0x92, 0x08, 0x28, 0x7E, + 0x06, 0x00, 0xD4, 0x72, 0x82, 0x13, 0xB8, 0x71, 0xB0, 0x00, 0x32, 0x10, 0x38, 0x60, 0x94, 0x15, + 0x18, 0x7E, 0x0B, 0x05, 0x99, 0x0E, 0x04, 0x00, 0x18, 0x66, 0xC4, 0x00, 0xC6, 0x67, 0xD2, 0x03, + 0x99, 0x0E, 0x0A, 0x05, 0x24, 0x71, 0x99, 0x7E, 0x0B, 0x05, 0x18, 0x7E, 0x04, 0x00, 0x99, 0x7E, + 0x05, 0x00, 0x99, 0x7E, 0x1A, 0x00, 0x58, 0xC1, 0x50, 0x01, 0x58, 0x81, 0x40, 0x01, 0x2C, 0x10, + 0x60, 0x01, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x28, 0xE0, 0x6A, 0x11, 0x98, 0x70, + 0xAD, 0x15, 0x82, 0x04, 0x2C, 0xE0, 0x96, 0x00, 0xF2, 0x06, 0x38, 0x70, 0x94, 0x15, 0x28, 0x77, + 0x1E, 0x00, 0x26, 0xE7, 0x08, 0x70, 0x00, 0x40, 0x38, 0x27, 0xE4, 0x70, 0x04, 0x3E, 0x5C, 0x20, + 0xFF, 0x01, 0x8B, 0xA1, 0x00, 0x00, 0xA3, 0x22, 0x82, 0x03, 0xC4, 0x2D, 0x92, 0x03, 0x2C, 0xE0, + 0x64, 0x00, 0x6B, 0xBA, 0x00, 0x00, 0x06, 0xD2, 0x6B, 0xC7, 0x03, 0x00, 0xC6, 0xDE, 0x04, 0x21, + 0xB2, 0x02, 0x04, 0x20, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x24, 0x00, + 0xD9, 0xC1, 0x14, 0x00, 0x38, 0xE0, 0x94, 0x15, 0xD9, 0x81, 0x04, 0x00, 0x06, 0xD2, 0x04, 0x30, + 0x06, 0x2B, 0x0C, 0x20, 0xB2, 0x10, 0x0C, 0x40, 0x7C, 0x00, 0x0C, 0x90, 0x00, 0x10, 0x0C, 0x80, + 0xCA, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0xB0, 0xB2, 0x10, 0x26, 0x89, 0x06, 0xCD, + 0x06, 0xAD, 0x28, 0x4A, 0xE4, 0x01, 0x28, 0x3A, 0xE2, 0x01, 0x28, 0x2A, 0xE0, 0x01, 0x0C, 0xF0, + 0xD8, 0x00, 0xF1, 0xF0, 0x30, 0x6C, 0x3F, 0x22, 0x06, 0x00, 0xB1, 0x2C, 0x18, 0x3E, 0x0B, 0x00, + 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9B, 0x00, 0x00, 0x06, 0x62, 0x38, 0x3C, + 0xF0, 0x00, 0x18, 0x2E, 0x0C, 0x00, 0xB1, 0x61, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, + 0x0B, 0x9B, 0x00, 0x00, 0x30, 0x61, 0x06, 0x42, 0x0C, 0x30, 0x11, 0x00, 0x06, 0x26, 0xB1, 0x41, + 0x4B, 0x9E, 0x00, 0x00, 0x28, 0x5E, 0x14, 0x00, 0x30, 0x41, 0xC6, 0x25, 0x06, 0x62, 0x02, 0x02, + 0x06, 0x65, 0x06, 0x24, 0x0C, 0x30, 0x14, 0x00, 0xB1, 0x61, 0x4B, 0x9E, 0x00, 0x00, 0x28, 0x5E, + 0x16, 0x00, 0x30, 0x61, 0xC6, 0x25, 0x02, 0x02, 0x06, 0x25, 0x18, 0x3E, 0x0E, 0x00, 0x3F, 0x22, + 0x06, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0xA1, 0x2B, + 0x24, 0xB2, 0xC6, 0xB8, 0x24, 0xA6, 0x24, 0xC4, 0x92, 0xB5, 0x0C, 0x80, 0xEE, 0x10, 0x2C, 0x90, + 0x16, 0x01, 0x06, 0xCD, 0x06, 0xBD, 0x28, 0x4B, 0x98, 0x02, 0x28, 0x3B, 0x96, 0x02, 0x28, 0x2B, + 0x94, 0x02, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, 0x38, 0x7C, 0x78, 0x00, 0x3F, 0x22, 0x07, 0x00, + 0xB9, 0x2C, 0x78, 0x00, 0x18, 0x3E, 0x09, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, + 0x0B, 0x9B, 0x00, 0x00, 0x06, 0x72, 0x38, 0x3C, 0x68, 0x01, 0x18, 0x2E, 0x0A, 0x00, 0xB1, 0x71, + 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9B, 0x00, 0x00, 0x30, 0x71, 0x06, 0x52, + 0x04, 0x39, 0x06, 0x27, 0xB1, 0x51, 0x4B, 0x9E, 0x00, 0x00, 0x28, 0x6E, 0x10, 0x00, 0x30, 0x51, + 0xC6, 0x26, 0x06, 0x72, 0x02, 0x02, 0x06, 0x76, 0x06, 0x25, 0x04, 0x3C, 0xB1, 0x71, 0x4B, 0x9E, + 0x00, 0x00, 0x28, 0x6E, 0x12, 0x00, 0x30, 0x71, 0xC6, 0x26, 0x02, 0x02, 0x06, 0x26, 0x18, 0x3E, + 0x0D, 0x00, 0x3F, 0x22, 0x07, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x4B, 0x9E, + 0x00, 0x00, 0xA1, 0x28, 0x24, 0x82, 0xC6, 0x89, 0x24, 0xB6, 0x24, 0xC4, 0x92, 0xB5, 0x28, 0x4D, + 0x16, 0x03, 0x28, 0x3D, 0x14, 0x03, 0x28, 0x2D, 0x12, 0x03, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, + 0x38, 0x7D, 0xCC, 0x00, 0x3F, 0x22, 0x07, 0x00, 0xB9, 0x2D, 0xCC, 0x00, 0x18, 0x3E, 0x18, 0x00, + 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9B, 0x00, 0x00, 0x38, 0x3D, 0xBC, 0x01, + 0x06, 0xB2, 0x18, 0x2E, 0x19, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9B, + 0x00, 0x00, 0x06, 0xC2, 0x04, 0x39, 0x06, 0x2B, 0x4B, 0x9E, 0x00, 0x00, 0x28, 0x7E, 0x1A, 0x00, + 0x06, 0xD2, 0xC6, 0x27, 0x02, 0x02, 0x06, 0xD7, 0x06, 0x2C, 0x04, 0x3C, 0x4B, 0x9E, 0x00, 0x00, + 0x28, 0x7E, 0x1C, 0x00, 0x0C, 0xA0, 0x00, 0x10, 0xC6, 0x27, 0x02, 0x02, 0x06, 0x27, 0x36, 0xD2, + 0xA9, 0xDA, 0x18, 0x01, 0x58, 0xC1, 0x14, 0x00, 0x58, 0x81, 0x04, 0x00, 0x2C, 0x10, 0x24, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0xD0, 0x03, 0xD9, 0xC1, 0xC0, 0x03, 0x38, 0xC0, 0x94, 0x15, + 0xD9, 0x81, 0xB0, 0x03, 0x0C, 0xD0, 0x00, 0x10, 0x18, 0x7C, 0xB8, 0x00, 0x18, 0x6D, 0x2E, 0x01, + 0xC6, 0x67, 0x28, 0x7D, 0x06, 0x00, 0xA2, 0x09, 0x6C, 0x70, 0x00, 0x01, 0xA9, 0x7D, 0x06, 0x00, + 0x04, 0x61, 0x99, 0x60, 0xBD, 0x15, 0xF2, 0x06, 0x1C, 0x20, 0x01, 0x01, 0x56, 0x72, 0xA9, 0x7D, + 0x06, 0x00, 0x98, 0x70, 0xAD, 0x15, 0xA9, 0x0D, 0x58, 0x02, 0xA9, 0x0D, 0x5A, 0x02, 0xA9, 0x0D, + 0x5C, 0x02, 0xA9, 0x0D, 0x5E, 0x02, 0xA9, 0x0D, 0x60, 0x02, 0x92, 0x0E, 0x0C, 0x50, 0x30, 0x00, + 0x0C, 0x60, 0x2E, 0x00, 0x26, 0x5C, 0x26, 0x6C, 0x70, 0x55, 0x20, 0x66, 0xB9, 0x51, 0x84, 0x03, + 0xB9, 0x61, 0x70, 0x03, 0xF2, 0x08, 0x0C, 0x70, 0x90, 0x01, 0x04, 0x80, 0xB9, 0x71, 0x70, 0x03, + 0xB9, 0x81, 0x84, 0x03, 0x06, 0x21, 0x0C, 0x30, 0x50, 0x03, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, + 0x06, 0x67, 0x0C, 0x60, 0x98, 0x15, 0x20, 0x76, 0xB9, 0x01, 0x5C, 0x03, 0x04, 0x52, 0xB9, 0x71, + 0xA0, 0x03, 0x28, 0x7D, 0x06, 0x00, 0xB9, 0x01, 0x58, 0x03, 0x26, 0x56, 0x54, 0x78, 0x23, 0x77, + 0x20, 0x55, 0xB9, 0x71, 0x68, 0x03, 0x06, 0x87, 0x0C, 0x80, 0xBA, 0x15, 0x10, 0x78, 0xB9, 0x51, + 0xA4, 0x03, 0x0C, 0x50, 0x74, 0x02, 0x26, 0x5D, 0x20, 0x55, 0xB9, 0x71, 0x9C, 0x03, 0x38, 0x71, + 0x48, 0x03, 0x38, 0x81, 0x4C, 0x03, 0xB9, 0x51, 0x7C, 0x03, 0xB9, 0x71, 0x94, 0x03, 0x0C, 0x40, + 0x78, 0x00, 0x04, 0x70, 0x0C, 0x50, 0x94, 0x02, 0xB9, 0x01, 0x54, 0x03, 0xB9, 0x01, 0x50, 0x03, + 0xB9, 0x01, 0xAC, 0x03, 0xB9, 0x01, 0x78, 0x03, 0xB9, 0x01, 0x80, 0x03, 0xB9, 0x81, 0x90, 0x03, + 0x26, 0x41, 0x26, 0x51, 0xB9, 0x71, 0x60, 0x03, 0xB9, 0x71, 0x98, 0x03, 0xB9, 0x71, 0x74, 0x03, + 0x06, 0xB7, 0xB9, 0x71, 0x64, 0x03, 0x38, 0x21, 0x64, 0x03, 0x06, 0x92, 0x0C, 0xF0, 0x00, 0x07, + 0x26, 0x22, 0x26, 0xF2, 0x0C, 0x60, 0xE0, 0x01, 0x0C, 0x80, 0x80, 0x02, 0x06, 0xE1, 0x26, 0x61, + 0xB9, 0xF1, 0xA8, 0x03, 0xB9, 0x91, 0x6C, 0x03, 0x26, 0x28, 0x04, 0x30, 0x0C, 0xA0, 0x80, 0x02, + 0x20, 0xF2, 0x38, 0x81, 0xA8, 0x03, 0x0C, 0x90, 0xFF, 0x0F, 0x56, 0x9F, 0x2F, 0xF3, 0x03, 0x00, + 0x26, 0xF8, 0x20, 0xFF, 0xB9, 0x91, 0x88, 0x03, 0x0C, 0x90, 0xFF, 0x0F, 0x56, 0x9F, 0x38, 0xF1, + 0x88, 0x03, 0xB9, 0x91, 0x8C, 0x03, 0x38, 0x81, 0xA0, 0x03, 0x36, 0xF9, 0x38, 0x91, 0x6C, 0x03, + 0xC6, 0x89, 0x82, 0x0C, 0x38, 0x81, 0xA4, 0x03, 0xC6, 0x89, 0x82, 0x08, 0xC4, 0x3B, 0x1A, 0x8E, + 0x01, 0x00, 0xCC, 0x70, 0x13, 0x00, 0x1A, 0x86, 0x01, 0x00, 0xC4, 0xF0, 0xA1, 0xF2, 0x2A, 0x94, + 0x00, 0x00, 0xCC, 0x70, 0x13, 0x00, 0x12, 0x1E, 0x30, 0x9E, 0x26, 0x9F, 0xB1, 0x9E, 0x20, 0x96, + 0xC6, 0x9F, 0x32, 0x09, 0x28, 0x86, 0x02, 0x00, 0xA1, 0xF6, 0xA9, 0x96, 0x02, 0x00, 0xA9, 0x86, + 0x04, 0x00, 0xF2, 0x10, 0x28, 0x96, 0x02, 0x00, 0xC6, 0x9F, 0x32, 0x06, 0xA9, 0x96, 0x04, 0x00, + 0xA9, 0xF6, 0x02, 0x00, 0xF2, 0x07, 0x28, 0x96, 0x04, 0x00, 0xC6, 0x9F, 0x32, 0x03, 0xA9, 0xF6, + 0x04, 0x00, 0x30, 0x94, 0x26, 0x9F, 0xB1, 0x94, 0x20, 0x95, 0xC6, 0x9F, 0x32, 0x09, 0x28, 0x85, + 0x02, 0x00, 0xA1, 0xF5, 0xA9, 0x95, 0x02, 0x00, 0xA9, 0x85, 0x04, 0x00, 0xF2, 0x10, 0x28, 0x95, + 0x02, 0x00, 0xC6, 0x9F, 0x32, 0x06, 0xA9, 0x95, 0x04, 0x00, 0xA9, 0xF5, 0x02, 0x00, 0xF2, 0x07, + 0x28, 0x95, 0x04, 0x00, 0xC6, 0x9F, 0x32, 0x03, 0xA9, 0xF5, 0x04, 0x00, 0xC6, 0xFB, 0x02, 0x06, + 0xB9, 0x71, 0x98, 0x03, 0xB9, 0x31, 0x74, 0x03, 0x06, 0xBF, 0xB8, 0x91, 0x68, 0x03, 0x9A, 0x45, + 0x01, 0x00, 0xCC, 0xF0, 0xED, 0x02, 0x0C, 0x90, 0xEE, 0x02, 0x1A, 0x45, 0x01, 0x00, 0xCC, 0xF0, + 0xC8, 0x00, 0x02, 0x06, 0x28, 0x9D, 0x58, 0x02, 0x24, 0x91, 0xA9, 0x9D, 0x58, 0x02, 0xB8, 0x81, + 0x68, 0x03, 0x0C, 0x90, 0x64, 0x00, 0x82, 0x03, 0x0C, 0x90, 0xC8, 0x00, 0xC6, 0xF9, 0x02, 0x06, + 0x28, 0x9D, 0x5A, 0x02, 0x24, 0x91, 0xA9, 0x9D, 0x5A, 0x02, 0xB8, 0x81, 0x68, 0x03, 0x0C, 0x90, + 0x50, 0x00, 0x82, 0x03, 0x0C, 0x90, 0xB4, 0x00, 0xC6, 0xF9, 0x02, 0x06, 0x28, 0x9D, 0x5C, 0x02, + 0x24, 0x91, 0xA9, 0x9D, 0x5C, 0x02, 0xB8, 0x81, 0x68, 0x03, 0x0C, 0x90, 0x64, 0x00, 0x82, 0x03, + 0x0C, 0x90, 0xFA, 0x00, 0xC6, 0xF9, 0x02, 0x06, 0x28, 0x9D, 0x5E, 0x02, 0x24, 0x91, 0xA9, 0x9D, + 0x5E, 0x02, 0xB8, 0x91, 0x9C, 0x03, 0x82, 0x0B, 0xA9, 0x0D, 0x58, 0x02, 0xA9, 0x0D, 0x5A, 0x02, + 0xA9, 0x0D, 0x5C, 0x02, 0xA9, 0x0D, 0x5E, 0x02, 0xA9, 0x0D, 0x60, 0x02, 0x28, 0x9C, 0xB6, 0x00, + 0xC6, 0xF9, 0x1A, 0x0B, 0x01, 0x00, 0x38, 0xF1, 0x8C, 0x03, 0x38, 0x81, 0x88, 0x03, 0x36, 0xF8, + 0xC4, 0xF0, 0x02, 0x28, 0xCC, 0x70, 0x13, 0x00, 0x12, 0x06, 0x38, 0x9E, 0xF0, 0x00, 0x26, 0x9F, + 0xB9, 0x9E, 0xF0, 0x00, 0x38, 0x94, 0xF0, 0x00, 0x26, 0x9F, 0xB9, 0x94, 0xF0, 0x00, 0x28, 0x9C, + 0xB6, 0x00, 0xC6, 0xF9, 0x02, 0x0E, 0x38, 0x81, 0x60, 0x03, 0x26, 0x99, 0xC6, 0xF9, 0x24, 0x81, + 0xB9, 0x81, 0x60, 0x03, 0x02, 0x06, 0x38, 0x91, 0x80, 0x03, 0x24, 0x91, 0xB9, 0x91, 0x80, 0x03, + 0xCC, 0xF0, 0xC8, 0x00, 0x02, 0x07, 0x38, 0xF1, 0x7C, 0x03, 0x24, 0xF1, 0x23, 0xFF, 0xB9, 0xF1, + 0x7C, 0x03, 0x38, 0xF1, 0x6C, 0x03, 0x24, 0x31, 0xC4, 0x3E, 0x24, 0xF1, 0xB9, 0xF1, 0x6C, 0x03, + 0x24, 0x22, 0x24, 0xE4, 0x24, 0x66, 0x9A, 0x0D, 0xFF, 0xFF, 0x38, 0x21, 0x64, 0x03, 0x30, 0x34, + 0x38, 0x61, 0x94, 0x03, 0x38, 0x81, 0x90, 0x03, 0x24, 0x2E, 0x26, 0x36, 0xCC, 0x20, 0x34, 0x01, + 0x38, 0x64, 0xF0, 0x00, 0xB9, 0x21, 0x64, 0x03, 0x24, 0x71, 0x26, 0x68, 0x24, 0x44, 0x24, 0x56, + 0x82, 0x07, 0xB9, 0x31, 0x94, 0x03, 0xB9, 0x61, 0x90, 0x03, 0xFA, 0xDE, 0xFE, 0xFF, 0x38, 0xF1, + 0x78, 0x03, 0x38, 0x21, 0x60, 0x03, 0x38, 0x51, 0x80, 0x03, 0x38, 0x71, 0x7C, 0x03, 0x38, 0x91, + 0xAC, 0x03, 0xB9, 0x31, 0x48, 0x03, 0xB9, 0xF1, 0x5C, 0x03, 0xB9, 0x21, 0x50, 0x03, 0xB9, 0x51, + 0x54, 0x03, 0xA9, 0x7D, 0x74, 0x02, 0xB9, 0x61, 0x4C, 0x03, 0xB9, 0x91, 0x58, 0x03, 0xAB, 0xCA, + 0x03, 0x00, 0x6B, 0xC7, 0x03, 0x00, 0xE8, 0x3D, 0x0D, 0x05, 0x22, 0x33, 0x28, 0x60, 0x98, 0x15, + 0x28, 0x2C, 0xC6, 0x00, 0x26, 0x66, 0x2F, 0x76, 0x0A, 0x00, 0x70, 0x47, 0x04, 0x51, 0xC6, 0x42, + 0x12, 0x02, 0x04, 0x50, 0x04, 0x70, 0xC6, 0x47, 0x13, 0x55, 0x02, 0x02, 0x23, 0x74, 0x0C, 0x80, + 0x98, 0x15, 0x28, 0x48, 0x02, 0x00, 0x26, 0x44, 0x26, 0x4A, 0x70, 0x44, 0xC6, 0x42, 0x02, 0x03, + 0x24, 0x51, 0x13, 0x55, 0xC6, 0x74, 0x32, 0x02, 0x23, 0x74, 0xC4, 0x50, 0x82, 0x12, 0xC4, 0x30, + 0x26, 0x6A, 0x92, 0x03, 0xA1, 0x76, 0xF2, 0x02, 0xA1, 0x06, 0x0C, 0x90, 0x98, 0x15, 0x28, 0x69, + 0x02, 0x00, 0xC4, 0x31, 0x26, 0x66, 0x26, 0xA6, 0x92, 0x03, 0xA1, 0x7A, 0xF2, 0x02, 0xA1, 0x0A, + 0x30, 0x7C, 0x28, 0xEC, 0x2C, 0x00, 0xD4, 0x71, 0xA9, 0xED, 0x0E, 0x00, 0x82, 0x1C, 0x38, 0x31, + 0x48, 0x03, 0x38, 0x21, 0x70, 0x03, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x50, 0x78, 0x0B, 0x9B, + 0x00, 0x00, 0x06, 0xC2, 0x38, 0x31, 0x70, 0x03, 0x38, 0x21, 0x84, 0x03, 0xAB, 0x97, 0x00, 0x00, + 0x0C, 0x30, 0x64, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x22, 0x26, 0x2C, 0xC6, 0x2E, 0xB2, 0x03, + 0xA9, 0x2D, 0x0E, 0x00, 0x06, 0x21, 0x6B, 0xD7, 0x02, 0x00, 0xC4, 0xB0, 0x82, 0x14, 0x38, 0x71, + 0x74, 0x03, 0x26, 0x77, 0x26, 0x7D, 0x78, 0x67, 0xB2, 0x00, 0x38, 0x71, 0x98, 0x03, 0x2C, 0x70, + 0x1E, 0x00, 0x26, 0x77, 0x26, 0x7D, 0x78, 0x77, 0xB2, 0x00, 0x26, 0x76, 0x36, 0xB7, 0xC4, 0xB0, + 0x32, 0x02, 0x04, 0xB0, 0x0C, 0x30, 0x50, 0x03, 0x06, 0x21, 0x26, 0x31, 0xA9, 0xBD, 0x2A, 0x01, + 0xCB, 0x18, 0x03, 0x00, 0x58, 0xC1, 0xC0, 0x03, 0x58, 0x81, 0xB0, 0x03, 0x2C, 0x10, 0xD0, 0x03, + 0xE1, 0xF0, 0xCC, 0x70, 0x15, 0x00, 0x8A, 0x7A, 0xFE, 0xFF, 0x04, 0x90, 0xC6, 0xF9, 0x02, 0x02, + 0x43, 0x9F, 0xA1, 0x92, 0xFA, 0x37, 0xFF, 0xFF, 0xCC, 0xF0, 0x57, 0x02, 0x0C, 0x90, 0x58, 0x02, + 0x0A, 0xBF, 0xFE, 0xFF, 0xC6, 0xF9, 0x0A, 0xEE, 0xFE, 0xFF, 0x28, 0x9D, 0x60, 0x02, 0x24, 0x91, + 0xA9, 0x9D, 0x60, 0x02, 0xFA, 0xE7, 0xFE, 0xFF, 0x26, 0x99, 0x38, 0x81, 0xAC, 0x03, 0xC6, 0xF9, + 0x24, 0x81, 0x02, 0x06, 0x38, 0xF1, 0x78, 0x03, 0x24, 0xF1, 0xB9, 0xF1, 0x78, 0x03, 0xB9, 0x81, + 0xAC, 0x03, 0xFA, 0xEA, 0xFE, 0xFF, 0x00, 0x00, 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, + 0xD1, 0x81, 0x0C, 0xE0, 0x80, 0x02, 0x78, 0x7E, 0x4A, 0x02, 0xCC, 0x70, 0x00, 0x01, 0x12, 0x06, + 0x78, 0x7E, 0x48, 0x02, 0xCC, 0x70, 0x00, 0x01, 0x02, 0x0A, 0x0C, 0x60, 0x2C, 0x02, 0x0C, 0x70, + 0x94, 0x04, 0x26, 0x6E, 0xA1, 0x07, 0x24, 0x72, 0xC6, 0x76, 0x92, 0xFD, 0x78, 0xA0, 0x18, 0x11, + 0x06, 0xD7, 0x0C, 0x30, 0xE6, 0x04, 0x0C, 0xD0, 0x18, 0x11, 0x04, 0x20, 0x0C, 0x40, 0x15, 0x00, + 0x14, 0x91, 0x06, 0xFB, 0x0C, 0xF0, 0xCC, 0x10, 0x06, 0x73, 0x04, 0x5D, 0xC4, 0x5B, 0x12, 0x16, + 0xCC, 0x40, 0x13, 0x00, 0x12, 0x08, 0x70, 0x8F, 0x70, 0x6D, 0x70, 0xC7, 0x26, 0x68, 0x3F, 0x66, + 0x0C, 0x00, 0xF2, 0x0D, 0xCC, 0x40, 0x15, 0x00, 0x92, 0x0C, 0x70, 0x67, 0x36, 0x6A, 0xC4, 0x60, + 0x06, 0xC6, 0x32, 0x02, 0x04, 0xC0, 0x26, 0x2C, 0xF2, 0x02, 0x70, 0x67, 0xC4, 0x60, 0x12, 0x03, + 0xA1, 0x07, 0xF2, 0x02, 0xA1, 0x67, 0x34, 0x51, 0xC6, 0x59, 0x34, 0x72, 0x34, 0xF2, 0x92, 0xDF, + 0x34, 0x41, 0xC6, 0x45, 0x3C, 0x30, 0x1C, 0x00, 0x34, 0xD2, 0x92, 0xD4, 0x04, 0x3C, 0x0B, 0x9B, + 0x00, 0x00, 0x0C, 0x70, 0xCC, 0x04, 0x2C, 0xE0, 0x64, 0x02, 0x20, 0x67, 0x36, 0x62, 0xC3, 0x66, + 0x22, 0x03, 0xA1, 0x67, 0xF2, 0x02, 0xA1, 0x07, 0xF8, 0x67, 0x1C, 0x00, 0x32, 0x03, 0xA9, 0x07, + 0x1C, 0x00, 0x24, 0x72, 0xC6, 0x7E, 0x92, 0xF2, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, + 0x20, 0x00, 0xE1, 0xF0, 0xC4, 0x20, 0x0C, 0x70, 0x00, 0x10, 0x28, 0x37, 0x06, 0x00, 0x82, 0x15, + 0x64, 0x38, 0xA9, 0x37, 0x06, 0x00, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x48, 0xDF, 0xB9, 0x70, + 0x94, 0x15, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0xE4, 0xDD, 0xB9, 0x70, 0x90, 0x15, 0x08, 0x70, + 0x00, 0x80, 0x2C, 0x70, 0x4C, 0xDD, 0xF2, 0x15, 0x14, 0x29, 0x56, 0x32, 0xA9, 0x37, 0x06, 0x00, + 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x7C, 0xDE, 0xB9, 0x70, 0x94, 0x15, 0x08, 0x70, 0x00, 0x80, + 0x2C, 0x70, 0x30, 0xDE, 0xB9, 0x70, 0x90, 0x15, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x98, 0xDD, + 0xB9, 0x70, 0x8C, 0x15, 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x70, 0x00, 0x10, 0x99, 0x07, 0x31, 0x01, + 0x99, 0x07, 0x30, 0x01, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xD2, + 0x38, 0x22, 0x4C, 0x03, 0x06, 0xE3, 0x0C, 0x30, 0xF0, 0x00, 0x38, 0xC0, 0x94, 0x15, 0x0B, 0x9B, + 0x00, 0x00, 0x0C, 0x70, 0x00, 0x10, 0xB9, 0x2D, 0x4C, 0x03, 0x06, 0x32, 0x28, 0x27, 0x06, 0x00, + 0x30, 0x5E, 0x38, 0x4E, 0x08, 0x00, 0x38, 0xFE, 0x04, 0x00, 0x04, 0x68, 0x56, 0x62, 0xA3, 0xD6, + 0x5C, 0x20, 0x80, 0x00, 0x82, 0x18, 0x26, 0x44, 0xC6, 0x54, 0x04, 0x61, 0x12, 0x06, 0xCC, 0x30, + 0xFA, 0x00, 0xD2, 0x02, 0x04, 0x60, 0x13, 0x66, 0xCC, 0xF0, 0x23, 0x00, 0x02, 0x07, 0x38, 0x4E, + 0x0C, 0x00, 0xCC, 0x40, 0x22, 0x00, 0x12, 0x02, 0x04, 0x61, 0xC4, 0x20, 0x82, 0x1D, 0xCC, 0x50, + 0x14, 0x00, 0xF2, 0x18, 0xCC, 0x30, 0x96, 0x00, 0x04, 0x61, 0xD2, 0x02, 0x06, 0x6D, 0xC6, 0x54, + 0x13, 0x66, 0x02, 0x04, 0xC4, 0x58, 0x02, 0x02, 0x04, 0x61, 0xCC, 0xF0, 0x14, 0x00, 0x02, 0x07, + 0x38, 0x4E, 0x0C, 0x00, 0xCC, 0x40, 0x13, 0x00, 0x12, 0x02, 0x04, 0x61, 0xC4, 0x20, 0x82, 0x04, + 0xC4, 0x5A, 0x02, 0x02, 0x04, 0x61, 0x98, 0x50, 0xBA, 0x15, 0x92, 0x12, 0xC4, 0x60, 0x82, 0x10, + 0x18, 0x67, 0x2E, 0x01, 0xCC, 0x60, 0xFF, 0x00, 0x82, 0x04, 0x24, 0x61, 0x99, 0x67, 0x2E, 0x01, + 0x98, 0x67, 0x2F, 0x01, 0x82, 0x17, 0x34, 0x61, 0x99, 0x67, 0x2F, 0x01, 0xF2, 0x13, 0x18, 0x67, + 0x2F, 0x01, 0x24, 0x61, 0x13, 0x66, 0x99, 0x67, 0x2F, 0x01, 0x18, 0x5C, 0xB9, 0x00, 0xC6, 0x56, + 0x92, 0x09, 0x98, 0x67, 0x2E, 0x01, 0x99, 0x07, 0x2F, 0x01, 0x82, 0x04, 0x34, 0x61, 0x99, 0x67, + 0x2E, 0x01, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x18, 0x70, 0xB1, 0x15, + 0xC4, 0x71, 0x82, 0x07, 0x0C, 0x50, 0x7F, 0x04, 0x0C, 0x60, 0xFE, 0x07, 0x04, 0x70, 0xF2, 0x06, + 0x0C, 0x50, 0x7D, 0x04, 0x0C, 0x60, 0xFC, 0x07, 0x04, 0x72, 0x70, 0x42, 0xC6, 0x47, 0x32, 0x03, + 0xA1, 0x72, 0xF2, 0x04, 0xC6, 0x45, 0x02, 0x02, 0xA1, 0x52, 0x78, 0x52, 0x02, 0x00, 0xC6, 0x57, + 0x32, 0x04, 0xA9, 0x72, 0x02, 0x00, 0xF2, 0x05, 0xC6, 0x56, 0x02, 0x03, 0xA9, 0x62, 0x02, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x70, 0xAD, 0x15, 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, + 0xD1, 0x81, 0x06, 0xE2, 0x82, 0x06, 0x04, 0x70, 0x0C, 0xA0, 0x64, 0x00, 0x06, 0xB7, 0xF2, 0x05, + 0x04, 0x71, 0x0C, 0xA0, 0x67, 0x00, 0x04, 0xB3, 0x20, 0x6E, 0x23, 0x77, 0x26, 0x67, 0xA1, 0x6E, + 0x28, 0x6E, 0x02, 0x00, 0x06, 0x2E, 0x26, 0x76, 0xA9, 0x7E, 0x02, 0x00, 0x6B, 0x20, 0x03, 0x00, + 0x0C, 0x70, 0x00, 0x10, 0x18, 0x67, 0x2B, 0x03, 0xC4, 0x62, 0x92, 0x08, 0x20, 0x6E, 0xA9, 0x67, + 0x1C, 0x00, 0x28, 0x6E, 0x02, 0x00, 0xA9, 0x67, 0x1E, 0x00, 0x18, 0x67, 0x27, 0x03, 0xC4, 0x61, + 0xD2, 0x11, 0x28, 0xC7, 0x1C, 0x00, 0x1C, 0x60, 0x50, 0x00, 0x26, 0x6C, 0xCC, 0x60, 0xE0, 0x03, + 0xD2, 0x09, 0x28, 0xD7, 0x1E, 0x00, 0x1C, 0x70, 0x50, 0x00, 0x26, 0x7D, 0xCC, 0x70, 0x5F, 0x07, + 0xC2, 0x05, 0x0C, 0xD0, 0xFF, 0x03, 0x0C, 0xC0, 0x40, 0x02, 0xCC, 0xA0, 0x64, 0x00, 0x04, 0x90, + 0x82, 0x04, 0x1C, 0x90, 0x64, 0x00, 0x26, 0x9A, 0x70, 0xAE, 0xC6, 0xAC, 0x3F, 0x7C, 0x0A, 0x00, + 0x32, 0x02, 0x24, 0x71, 0x86, 0x27, 0x32, 0x02, 0x16, 0x22, 0x2F, 0x82, 0x02, 0x00, 0x26, 0x82, + 0x06, 0x68, 0xC4, 0x20, 0xD7, 0x62, 0x26, 0x86, 0x26, 0x82, 0x82, 0x05, 0x06, 0x39, 0xAB, 0x97, + 0x00, 0x00, 0x26, 0x82, 0x04, 0x71, 0xD6, 0x7B, 0x82, 0x0F, 0x06, 0x28, 0x0C, 0x30, 0x64, 0x00, + 0x4B, 0x9E, 0x00, 0x00, 0xC6, 0xAC, 0x22, 0x04, 0x26, 0xC2, 0xA1, 0xCE, 0xF2, 0x05, 0x34, 0xC1, + 0x3F, 0x22, 0x0C, 0x00, 0xA1, 0x2E, 0x78, 0xCE, 0x02, 0x00, 0xC6, 0xCD, 0x3F, 0x7D, 0x0C, 0x00, + 0x32, 0x02, 0x24, 0x71, 0x86, 0x27, 0x32, 0x02, 0x16, 0x22, 0x2F, 0xA2, 0x02, 0x00, 0x26, 0xA2, + 0x06, 0x6A, 0xC4, 0x20, 0xD7, 0x62, 0x26, 0xA6, 0x26, 0xA2, 0x82, 0x05, 0x06, 0x39, 0xAB, 0x97, + 0x00, 0x00, 0x26, 0xA2, 0xD4, 0xB2, 0x82, 0x11, 0x06, 0x2A, 0x0C, 0x30, 0x64, 0x00, 0x4B, 0x9E, + 0x00, 0x00, 0xC6, 0xCD, 0x22, 0x05, 0x26, 0xD2, 0xA9, 0xDE, 0x02, 0x00, 0xF2, 0x06, 0x34, 0xD1, + 0x3F, 0x22, 0x0D, 0x00, 0xA9, 0x2E, 0x02, 0x00, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, + 0x20, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, 0x08, 0xC0, 0x00, 0xFF, + 0x0C, 0xE0, 0x3C, 0x15, 0x04, 0xD0, 0x2C, 0xC0, 0xFF, 0x0F, 0x28, 0x70, 0x50, 0x15, 0x63, 0x7D, + 0xD4, 0x71, 0x82, 0x25, 0x30, 0x6E, 0x06, 0x76, 0x77, 0x76, 0x5C, 0x70, 0xFF, 0x0F, 0xA1, 0x71, + 0x18, 0x70, 0xB1, 0x15, 0x5C, 0x60, 0xFF, 0x0F, 0xC4, 0x71, 0xA9, 0x61, 0x02, 0x00, 0x92, 0x04, + 0x06, 0x21, 0xAB, 0x22, 0x03, 0x00, 0x06, 0x21, 0x6B, 0x20, 0x03, 0x00, 0x20, 0x61, 0x30, 0x7E, + 0x5C, 0x60, 0xFF, 0x0F, 0x57, 0x66, 0x56, 0x7C, 0x66, 0x76, 0x28, 0x61, 0x02, 0x00, 0x1C, 0x50, + 0x00, 0x10, 0x5C, 0x60, 0xFF, 0x0F, 0x56, 0x75, 0x66, 0x76, 0xB1, 0x7E, 0x24, 0xD1, 0xC4, 0xD5, + 0x24, 0xE4, 0x92, 0xD4, 0x58, 0xC1, 0x04, 0x00, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x18, 0x0C, 0x20, 0x31, 0x15, 0x14, 0x31, 0x04, 0x45, 0xC1, 0xE1, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0x20, 0x2C, 0x15, 0x14, 0x31, 0x04, 0x45, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x0C, 0xE0, 0x00, 0x10, 0x38, 0x7E, 0x10, 0x05, 0x18, 0x6E, 0x08, 0x05, 0x77, 0x76, 0x54, 0x7F, + 0xA6, 0x76, 0x82, 0x0E, 0x04, 0x71, 0x99, 0x7E, 0x52, 0x05, 0xB9, 0x0E, 0x38, 0x05, 0x0C, 0x20, + 0x3C, 0x15, 0x04, 0x30, 0x0C, 0x40, 0x14, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x99, 0x0E, + 0x08, 0x05, 0xCB, 0xCD, 0x01, 0x00, 0xAB, 0x81, 0x03, 0x00, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, + 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, 0xB1, 0xB1, 0x0C, 0xE0, 0x00, 0x10, 0x98, 0xDE, + 0x27, 0x03, 0x82, 0x19, 0x06, 0x2C, 0x0C, 0x20, 0xC8, 0x12, 0x0C, 0x30, 0x78, 0x12, 0x0C, 0x40, + 0x50, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x06, 0x2B, 0x0C, 0x20, 0x22, 0x13, 0x0C, 0x30, + 0x1D, 0x13, 0x04, 0x45, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x18, 0x7E, 0x27, 0x03, 0x99, 0x7E, + 0x28, 0x03, 0xF2, 0x2A, 0x06, 0x2B, 0x0C, 0x20, 0x22, 0x13, 0x06, 0x3D, 0x04, 0x45, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x06, 0x2C, 0x0C, 0x20, 0xC8, 0x12, 0x06, 0x3D, 0x0C, 0x40, 0x50, 0x00, + 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x18, 0x13, 0x06, 0x3D, 0x04, 0x45, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x28, 0x7E, 0x06, 0x00, 0x99, 0x0E, 0x28, 0x03, 0x1C, 0x60, 0x14, 0x00, + 0x56, 0x76, 0xA9, 0x7E, 0x06, 0x00, 0x38, 0x70, 0x94, 0x15, 0x99, 0x0E, 0x09, 0x05, 0x18, 0x77, + 0xC5, 0x00, 0x99, 0x7E, 0x0C, 0x05, 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x0C, 0xE0, 0x00, 0x10, 0x18, 0x7E, + 0x52, 0x05, 0x06, 0xD2, 0x26, 0x72, 0xC4, 0x70, 0x0C, 0x20, 0x10, 0x15, 0x82, 0x0E, 0x0C, 0x30, + 0x38, 0x15, 0x0C, 0x40, 0x1C, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x18, 0x7E, 0x52, 0x05, + 0x26, 0xD7, 0x99, 0xDE, 0x2A, 0x05, 0xF2, 0x14, 0x98, 0x3E, 0x2A, 0x05, 0x82, 0x0C, 0x0C, 0x30, + 0x38, 0x15, 0x0C, 0x40, 0x1C, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x04, 0x71, 0x99, 0x7E, + 0x52, 0x05, 0xF2, 0x06, 0x0C, 0x40, 0x1C, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x50, 0xC1, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, + 0x06, 0xC2, 0x06, 0xE3, 0x06, 0x23, 0x06, 0x3C, 0xB1, 0xB1, 0x8B, 0xB8, 0x03, 0x00, 0x86, 0x22, + 0x9A, 0x82, 0x00, 0x00, 0xD4, 0xC3, 0x92, 0x05, 0x18, 0x7E, 0x0D, 0x00, 0xC4, 0x76, 0x92, 0x5B, + 0x18, 0x6E, 0x0A, 0x00, 0x14, 0x51, 0x26, 0x56, 0x04, 0x71, 0x53, 0x75, 0x0C, 0x50, 0x00, 0x10, + 0x28, 0x45, 0x50, 0x05, 0x43, 0x77, 0x66, 0x47, 0xA9, 0x45, 0x50, 0x05, 0x38, 0x45, 0x38, 0x05, + 0x1C, 0x30, 0x00, 0x04, 0x66, 0x74, 0x5C, 0x70, 0xFF, 0x03, 0x56, 0x43, 0x66, 0x47, 0x06, 0x74, + 0x77, 0x76, 0x24, 0x71, 0x54, 0x7F, 0x1C, 0x30, 0x01, 0xF0, 0x57, 0x76, 0x56, 0x43, 0x66, 0x47, + 0x57, 0x61, 0xB9, 0x45, 0x38, 0x05, 0x26, 0x65, 0x18, 0x7E, 0x0A, 0x00, 0x38, 0x56, 0x38, 0x05, + 0x08, 0x40, 0xFF, 0x0F, 0x2C, 0x40, 0xFF, 0xFF, 0x57, 0x7E, 0x56, 0x54, 0x66, 0x57, 0xB9, 0x56, + 0x38, 0x05, 0x20, 0x4E, 0x08, 0x70, 0x00, 0xFF, 0x5C, 0x40, 0xFF, 0x0F, 0x2C, 0x70, 0xFF, 0x0F, + 0x57, 0x46, 0x56, 0x75, 0x66, 0x74, 0xB9, 0x76, 0x38, 0x05, 0x28, 0x5E, 0x02, 0x00, 0x1C, 0x40, + 0x00, 0x10, 0x5C, 0x50, 0xFF, 0x0F, 0x56, 0x74, 0x66, 0x75, 0xB9, 0x76, 0x38, 0x05, 0x18, 0x5E, + 0x0B, 0x00, 0x13, 0x75, 0xC4, 0x7F, 0xC2, 0x02, 0x04, 0x5F, 0x38, 0x76, 0x38, 0x05, 0x08, 0x40, + 0xFF, 0xF0, 0x54, 0x5F, 0x2C, 0x40, 0xFF, 0xFF, 0x57, 0x5C, 0x56, 0x74, 0x66, 0x75, 0xB9, 0x76, + 0x38, 0x05, 0xF2, 0x03, 0xC4, 0x7A, 0x82, 0x03, 0x04, 0x20, 0xF2, 0x1D, 0x0C, 0xD0, 0xC8, 0x12, + 0x06, 0x7B, 0x0C, 0x70, 0x00, 0x10, 0x18, 0x77, 0x28, 0x03, 0xC6, 0xC7, 0x32, 0xF6, 0x18, 0x6E, + 0x0A, 0x00, 0x18, 0x7D, 0x0A, 0x00, 0xC6, 0x67, 0x92, 0x0A, 0x06, 0x2E, 0x06, 0x3D, 0x04, 0x44, + 0x6B, 0xCF, 0x03, 0x00, 0x18, 0x7D, 0x0B, 0x00, 0x99, 0x7E, 0x0B, 0x00, 0x24, 0xC1, 0x2C, 0xD0, + 0x10, 0x00, 0xF2, 0xE7, 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, + 0x18, 0x72, 0x06, 0x00, 0xD4, 0x74, 0x82, 0x25, 0x0C, 0x40, 0x00, 0x10, 0x38, 0x54, 0x38, 0x05, + 0x08, 0x60, 0x1F, 0xFF, 0x06, 0x75, 0xF7, 0x7A, 0x24, 0x71, 0x54, 0x77, 0x2C, 0x60, 0xFF, 0xFF, + 0xD7, 0x7A, 0x56, 0x65, 0x66, 0x67, 0xB9, 0x64, 0x38, 0x05, 0x18, 0x52, 0x05, 0x00, 0x04, 0x71, + 0x34, 0x51, 0x53, 0x75, 0x06, 0x56, 0x77, 0x58, 0x66, 0x75, 0x08, 0x50, 0xE0, 0xFF, 0x5C, 0x70, + 0x1F, 0x00, 0x2C, 0x50, 0xFF, 0xFF, 0x57, 0x78, 0x56, 0x56, 0x66, 0x57, 0xB9, 0x54, 0x38, 0x05, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x0C, 0x60, 0x00, 0x10, 0x38, 0x76, 0x38, 0x05, + 0x77, 0x76, 0x54, 0x7F, 0xC4, 0x72, 0x02, 0x26, 0x28, 0x46, 0x50, 0x05, 0x04, 0x70, 0x0C, 0x30, + 0x3C, 0x15, 0x06, 0x57, 0x04, 0xF1, 0x06, 0x24, 0x63, 0x25, 0xD4, 0x21, 0x82, 0x0A, 0xC4, 0x71, + 0xC2, 0x07, 0x06, 0x2F, 0x53, 0x25, 0x15, 0x22, 0xB1, 0x03, 0x56, 0x42, 0xF2, 0x02, 0x24, 0x71, + 0x24, 0x51, 0xC4, 0x55, 0x24, 0x34, 0x92, 0xF0, 0x04, 0x5F, 0x56, 0x57, 0x38, 0x76, 0x38, 0x05, + 0xA9, 0x46, 0x50, 0x05, 0x1C, 0x40, 0x01, 0xF0, 0x57, 0x56, 0x56, 0x74, 0x66, 0x75, 0xB9, 0x76, + 0x38, 0x05, 0x38, 0x76, 0x38, 0x05, 0x0C, 0x50, 0x00, 0xF0, 0xD6, 0x57, 0x82, 0x06, 0x77, 0x76, + 0x54, 0x7F, 0x24, 0x71, 0x99, 0x76, 0x52, 0x05, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, 0xD1, 0x81, 0x0C, 0xE0, 0x00, 0x10, 0xE8, 0xCE, + 0x31, 0x05, 0x92, 0x2A, 0x98, 0x7E, 0x27, 0x03, 0x82, 0x27, 0x0C, 0x90, 0xC8, 0x02, 0x0C, 0xD0, + 0x78, 0x12, 0x26, 0x9E, 0x06, 0xBC, 0x04, 0x2C, 0x26, 0x2D, 0xEB, 0x25, 0x01, 0x00, 0xC4, 0x20, + 0x82, 0x13, 0xC4, 0xC1, 0xDA, 0x98, 0x00, 0x00, 0x18, 0x7D, 0x0A, 0x00, 0x04, 0xA1, 0x26, 0xAB, + 0x26, 0xBE, 0x99, 0x7B, 0x31, 0x05, 0x04, 0x21, 0x06, 0x3D, 0xCB, 0x3B, 0x03, 0x00, 0xC4, 0x20, + 0x92, 0x04, 0x24, 0xC1, 0xF2, 0x02, 0x06, 0xAB, 0x2C, 0xD0, 0x10, 0x00, 0xC6, 0xD9, 0x8A, 0x83, + 0x00, 0x00, 0x06, 0xBA, 0xF2, 0xE1, 0x98, 0x7E, 0x28, 0x03, 0x92, 0x04, 0x98, 0x7E, 0x27, 0x03, + 0x82, 0x7A, 0x04, 0xD0, 0x06, 0xCD, 0x06, 0xAE, 0x14, 0x91, 0x2F, 0x7C, 0x0E, 0x00, 0x68, 0x77, + 0x31, 0x05, 0x34, 0x71, 0xC4, 0x70, 0x32, 0x04, 0x04, 0xC0, 0x06, 0xAE, 0xF2, 0x47, 0x26, 0x7A, + 0x68, 0xB7, 0x1D, 0x03, 0x34, 0xB1, 0xC4, 0xB0, 0x32, 0x1D, 0x68, 0x37, 0x22, 0x03, 0x04, 0x24, + 0x24, 0x34, 0x57, 0x32, 0x26, 0x3A, 0x2C, 0x30, 0x78, 0x02, 0xCB, 0x3B, 0x03, 0x00, 0xC4, 0x20, + 0x92, 0x02, 0x24, 0xD1, 0x06, 0x7C, 0xC4, 0x73, 0x12, 0x09, 0x24, 0x71, 0x2F, 0x67, 0x0E, 0x00, + 0x18, 0x56, 0x31, 0x05, 0x99, 0x56, 0x30, 0x05, 0xF2, 0xF7, 0x99, 0x9E, 0x35, 0x05, 0x34, 0xC1, + 0xF2, 0x12, 0x57, 0xB2, 0x26, 0xBA, 0x2C, 0xB0, 0x78, 0x02, 0x04, 0x2C, 0x26, 0x2B, 0xEB, 0x25, + 0x01, 0x00, 0xC4, 0x20, 0x82, 0x08, 0x04, 0x22, 0x06, 0x3B, 0xCB, 0x3B, 0x03, 0x00, 0xC4, 0x20, + 0x92, 0x02, 0x24, 0xD1, 0x24, 0xC1, 0xC4, 0xC4, 0x02, 0xC1, 0xF2, 0xC7, 0x57, 0x72, 0x2F, 0x9A, + 0x07, 0x00, 0x0C, 0xB0, 0x78, 0x02, 0x26, 0xB9, 0x04, 0x2C, 0x26, 0x2B, 0xEB, 0x25, 0x01, 0x00, + 0xC4, 0x20, 0x92, 0x0C, 0x24, 0xC1, 0xC4, 0xC5, 0x82, 0x26, 0x2F, 0x7C, 0x0E, 0x00, 0x68, 0x77, + 0x1D, 0x03, 0x34, 0x71, 0xC4, 0x70, 0x32, 0xEB, 0xF2, 0xF6, 0xC4, 0xD1, 0xD2, 0x1C, 0x04, 0x70, + 0x2F, 0x67, 0x0E, 0x00, 0x68, 0x56, 0x31, 0x05, 0x14, 0x41, 0x26, 0x45, 0xC6, 0x4C, 0x82, 0xEB, + 0xC4, 0x50, 0x12, 0x0D, 0x18, 0x79, 0x82, 0x02, 0x04, 0x21, 0x99, 0x76, 0x31, 0x05, 0x06, 0x3B, + 0xCB, 0x3B, 0x03, 0x00, 0xC4, 0x20, 0x92, 0xDF, 0x24, 0xD1, 0xF2, 0xDD, 0x24, 0x71, 0xC4, 0x75, + 0x92, 0xE8, 0xF2, 0xD9, 0x04, 0x70, 0x06, 0x4E, 0x24, 0x71, 0x06, 0x67, 0x2F, 0x34, 0x07, 0x00, + 0x2F, 0x56, 0x0E, 0x00, 0xE8, 0x25, 0x31, 0x05, 0x02, 0x07, 0x68, 0xF3, 0x30, 0x05, 0xC6, 0xF2, + 0x92, 0x03, 0x99, 0x05, 0x31, 0x05, 0x24, 0x61, 0xC4, 0x64, 0x02, 0xF3, 0xC4, 0x74, 0x92, 0xED, + 0xAB, 0x47, 0x03, 0x00, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, + 0x18, 0x20, 0x52, 0x15, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x2C, 0x00, 0x06, 0x21, 0x04, 0x30, + 0x0C, 0x40, 0x14, 0x00, 0xD9, 0xC1, 0x1C, 0x00, 0xC9, 0xA1, 0x14, 0x00, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0xE0, 0x00, 0x10, 0x98, 0x7E, 0x52, 0x05, 0x92, 0x0A, 0x98, 0x3E, 0x2A, 0x05, + 0x92, 0x07, 0x0C, 0x20, 0x2C, 0x15, 0x04, 0x45, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x98, 0x7E, + 0x52, 0x05, 0x82, 0x66, 0x98, 0x7E, 0x2A, 0x05, 0x82, 0x63, 0x28, 0xDE, 0x50, 0x05, 0x04, 0x71, + 0x08, 0xF0, 0xFF, 0x0F, 0x06, 0x32, 0x0C, 0x30, 0x3C, 0x15, 0x04, 0x40, 0x06, 0xB7, 0x2C, 0xF0, + 0xFF, 0xFF, 0x14, 0x61, 0x26, 0x67, 0x06, 0x5D, 0x63, 0x56, 0x06, 0x65, 0xD4, 0x61, 0x82, 0x26, + 0x13, 0x57, 0x04, 0x60, 0x2F, 0xC6, 0x0E, 0x00, 0x68, 0xCC, 0x2C, 0x05, 0x24, 0x61, 0xC6, 0xC7, + 0x82, 0x0C, 0xC4, 0x65, 0x92, 0xF8, 0x04, 0x60, 0x2F, 0xC6, 0x0E, 0x00, 0xE8, 0xAC, 0x2C, 0x05, + 0x24, 0x61, 0x92, 0x05, 0x99, 0x7C, 0x2C, 0x05, 0x13, 0x56, 0xF2, 0x03, 0xC4, 0x65, 0x92, 0xF5, + 0x14, 0xC1, 0x26, 0xC5, 0x06, 0x6B, 0x53, 0x6C, 0x66, 0x64, 0x23, 0x46, 0x30, 0x63, 0x57, 0xC1, + 0x57, 0x5E, 0x56, 0x6F, 0x26, 0xC1, 0x66, 0x65, 0xB1, 0x6C, 0x24, 0x71, 0xC4, 0x76, 0x24, 0x34, + 0x92, 0xD1, 0x04, 0x70, 0x06, 0x6D, 0x63, 0x67, 0xD4, 0x61, 0x24, 0x71, 0x92, 0x0D, 0x2F, 0x56, + 0x0E, 0x00, 0x68, 0x35, 0x2C, 0x05, 0xC6, 0x37, 0x92, 0x04, 0x99, 0x05, 0x2C, 0x05, 0xF2, 0x04, + 0x24, 0x61, 0xC4, 0x65, 0x92, 0xF5, 0xC4, 0x75, 0x92, 0xEE, 0x38, 0x7E, 0x38, 0x05, 0x1C, 0x60, + 0x00, 0x04, 0x5C, 0x40, 0xFF, 0x03, 0x56, 0x76, 0x66, 0x74, 0xB9, 0x7E, 0x38, 0x05, 0x0C, 0x20, + 0x3C, 0x15, 0x06, 0x31, 0x0C, 0x40, 0x14, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x58, 0xC1, + 0x1C, 0x00, 0x48, 0xA1, 0x14, 0x00, 0x2C, 0x10, 0x2C, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, + 0xD1, 0xC1, 0x0C, 0xE0, 0x00, 0x10, 0x98, 0x7E, 0x07, 0x05, 0x82, 0x18, 0x0C, 0xC0, 0xDE, 0x14, + 0x04, 0xD0, 0x18, 0x7E, 0x07, 0x05, 0xC6, 0xD7, 0x32, 0x07, 0x06, 0x2C, 0x0B, 0x45, 0x03, 0x00, + 0x24, 0xD1, 0x24, 0xC8, 0xF2, 0xF7, 0x38, 0x7E, 0x38, 0x05, 0x08, 0x60, 0xE0, 0x00, 0xD6, 0x76, + 0x82, 0x0E, 0x98, 0x7E, 0x52, 0x05, 0x92, 0x0B, 0xF2, 0x07, 0x98, 0x7E, 0x52, 0x05, 0x92, 0x07, + 0x98, 0x7E, 0x08, 0x05, 0x82, 0x04, 0x04, 0x71, 0x99, 0x7E, 0x52, 0x05, 0x18, 0x7E, 0x07, 0x05, + 0x99, 0x7E, 0x08, 0x05, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x0C, 0x20, 0x2E, 0x13, 0x04, 0x30, 0x04, 0x4D, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x30, 0xF1, 0x0C, 0x70, 0x00, 0x10, 0x14, 0x61, 0x99, 0x67, 0x2F, 0x03, 0x99, 0x67, + 0x2E, 0x03, 0x99, 0x67, 0x31, 0x03, 0x99, 0x67, 0x30, 0x03, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0xC4, 0x41, 0x34, 0x14, 0xB1, 0xF1, 0x02, 0x0A, 0xCC, 0x40, 0x11, 0x00, 0x14, 0x72, 0x26, 0x74, + 0x13, 0x77, 0x0C, 0xF0, 0x13, 0x00, 0x12, 0x05, 0xF2, 0x02, 0x04, 0x70, 0x24, 0x42, 0x13, 0xF4, + 0x08, 0x60, 0x00, 0x30, 0x2C, 0x60, 0x00, 0xA0, 0xC6, 0x7F, 0xD2, 0x17, 0x06, 0x47, 0x57, 0x42, + 0x2F, 0x57, 0x07, 0x00, 0x3F, 0x55, 0x04, 0x00, 0x26, 0x53, 0x57, 0x51, 0x26, 0x56, 0x30, 0x55, + 0x5C, 0x50, 0xFF, 0x7F, 0xC6, 0x25, 0xB2, 0x06, 0x04, 0x61, 0x99, 0x60, 0x36, 0x13, 0x04, 0x21, + 0xF2, 0x05, 0x24, 0x71, 0x23, 0x77, 0xF2, 0xE9, 0x04, 0x20, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0xC4, 0x41, 0x34, 0x14, 0xB1, 0xF1, 0x02, 0x08, 0xC4, 0x4B, 0x14, 0x72, 0x26, 0x74, 0x13, 0x77, + 0x04, 0xFD, 0x12, 0x05, 0xF2, 0x02, 0x04, 0x70, 0x24, 0x42, 0x13, 0xF4, 0x26, 0x33, 0x06, 0x63, + 0xD7, 0x61, 0x3F, 0x33, 0x06, 0x00, 0x08, 0x60, 0x00, 0x30, 0x2C, 0x60, 0x00, 0xA0, 0xC6, 0x7F, + 0xD2, 0x12, 0x2F, 0x57, 0x03, 0x00, 0x57, 0x51, 0x26, 0x56, 0x30, 0x55, 0x5C, 0x50, 0xFF, 0x7F, + 0xC6, 0x25, 0xB2, 0x06, 0x04, 0x61, 0x99, 0x60, 0x36, 0x13, 0x04, 0x21, 0xF2, 0x05, 0x24, 0x71, + 0x23, 0x77, 0xF2, 0xEE, 0x04, 0x20, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x3C, 0x10, 0x28, 0x00, + 0xD9, 0xC1, 0x18, 0x00, 0xD9, 0x81, 0x08, 0x00, 0x6B, 0xBA, 0x00, 0x00, 0x0C, 0xE0, 0x00, 0x10, + 0x28, 0x7E, 0x22, 0x00, 0xB1, 0x21, 0xC4, 0x7F, 0xC2, 0x12, 0x98, 0x70, 0xBA, 0x15, 0x82, 0x0F, + 0x38, 0x7E, 0x38, 0x05, 0x5C, 0x70, 0x00, 0xF0, 0xCC, 0x70, 0x00, 0x10, 0x92, 0x08, 0x04, 0x71, + 0x99, 0x7E, 0x38, 0x03, 0x99, 0x0E, 0x35, 0x03, 0x99, 0x7E, 0x36, 0x03, 0x18, 0x7E, 0x33, 0x03, + 0xC4, 0x72, 0xC2, 0x08, 0x04, 0x71, 0x99, 0x0E, 0x35, 0x03, 0x99, 0x7E, 0x36, 0x03, 0x99, 0x0E, + 0x38, 0x03, 0x98, 0x7E, 0x38, 0x03, 0x82, 0x12, 0x98, 0x7E, 0x37, 0x03, 0x82, 0x0F, 0x98, 0x7E, + 0x36, 0x03, 0x82, 0x0C, 0x04, 0x71, 0x99, 0x0E, 0x38, 0x03, 0x99, 0x7E, 0x35, 0x03, 0x99, 0x0E, + 0x36, 0x03, 0x8B, 0x3E, 0x01, 0x00, 0x8B, 0x30, 0x03, 0x00, 0x98, 0x7E, 0x36, 0x03, 0x9A, 0xC8, + 0x00, 0x00, 0x98, 0x7E, 0x35, 0x03, 0x9A, 0xC4, 0x00, 0x00, 0x18, 0x7E, 0x32, 0x03, 0xC4, 0x71, + 0x9A, 0xBF, 0x00, 0x00, 0x18, 0x7E, 0x05, 0x00, 0xC4, 0x71, 0x9A, 0xBA, 0x00, 0x00, 0x18, 0x6E, + 0x81, 0x02, 0x18, 0x5E, 0x80, 0x02, 0xC4, 0x60, 0x82, 0x08, 0xCC, 0x60, 0x13, 0x00, 0x14, 0x71, + 0x26, 0x76, 0x13, 0xB7, 0x82, 0x07, 0xF2, 0x02, 0x06, 0xB6, 0x04, 0xA1, 0x26, 0xA6, 0x13, 0xAA, + 0xF2, 0x04, 0x0C, 0xB0, 0x12, 0x00, 0x06, 0xA6, 0xC4, 0x50, 0x82, 0x07, 0xC4, 0x5B, 0x14, 0xC1, + 0x26, 0xC5, 0x13, 0xCC, 0x82, 0x07, 0xF2, 0x02, 0x06, 0xC5, 0x04, 0x91, 0x26, 0x95, 0x13, 0x99, + 0xF2, 0x03, 0x04, 0xCA, 0x06, 0x95, 0x26, 0x66, 0x06, 0x46, 0xD7, 0x41, 0x3F, 0x66, 0x04, 0x00, + 0x26, 0x56, 0x08, 0x80, 0x00, 0x30, 0x57, 0x51, 0x2C, 0x80, 0x00, 0xA0, 0x26, 0x58, 0x30, 0xD5, + 0x04, 0x50, 0x5C, 0xD0, 0xFF, 0x7F, 0xC6, 0xBA, 0xD2, 0x66, 0x30, 0x31, 0x28, 0x2E, 0x60, 0x01, + 0x06, 0xFB, 0x2F, 0x6B, 0x0B, 0x00, 0x57, 0xF2, 0x36, 0xF6, 0x23, 0x33, 0x06, 0x6C, 0xC6, 0x69, + 0xD2, 0x56, 0x2F, 0x46, 0x0F, 0x00, 0x57, 0x41, 0x26, 0x48, 0x30, 0x44, 0x5C, 0x40, 0xFF, 0x7F, + 0xC6, 0x42, 0xA2, 0x4A, 0xC6, 0x43, 0x92, 0x48, 0x18, 0x4E, 0x81, 0x02, 0xC6, 0x4B, 0x92, 0x05, + 0x18, 0x5E, 0x80, 0x02, 0xC6, 0x56, 0x82, 0x3B, 0x18, 0x6E, 0x34, 0x03, 0x04, 0x51, 0xD6, 0x56, + 0x82, 0x13, 0x18, 0x3E, 0x80, 0x02, 0x24, 0x32, 0x13, 0x33, 0xC4, 0x3B, 0xC2, 0x07, 0x18, 0x6E, + 0x34, 0x03, 0x04, 0x54, 0xD6, 0x56, 0x92, 0x10, 0xF2, 0x1C, 0x06, 0x2D, 0x0B, 0x66, 0x03, 0x00, + 0xC4, 0x20, 0x82, 0xF6, 0xF2, 0x27, 0xD4, 0x62, 0x82, 0xF3, 0x18, 0x3E, 0x80, 0x02, 0x06, 0x2D, + 0x34, 0x32, 0x13, 0x33, 0xF2, 0xF4, 0x18, 0x3E, 0x81, 0x02, 0x24, 0x32, 0x13, 0x33, 0xCC, 0x30, + 0x13, 0x00, 0xC2, 0x05, 0x98, 0x6E, 0x36, 0x03, 0x82, 0x12, 0xF2, 0x14, 0x06, 0x2D, 0xF2, 0x08, + 0xD4, 0x68, 0x82, 0xF9, 0x18, 0x3E, 0x81, 0x02, 0x06, 0x2D, 0x34, 0x32, 0x13, 0x33, 0x18, 0x4E, + 0x80, 0x02, 0x0B, 0x69, 0x03, 0x00, 0xC4, 0x20, 0x92, 0x05, 0xF2, 0xED, 0x04, 0x61, 0x99, 0x6E, + 0x35, 0x03, 0x04, 0x51, 0xF2, 0x04, 0x24, 0x61, 0x13, 0x66, 0xF2, 0xAA, 0x04, 0x71, 0x26, 0x7B, + 0x13, 0xB7, 0xF2, 0x9A, 0x98, 0x7E, 0x35, 0x03, 0x82, 0x0D, 0x18, 0x7E, 0x3A, 0x03, 0xC4, 0x71, + 0x92, 0x09, 0xB9, 0x51, 0x04, 0x00, 0x8B, 0x3E, 0x01, 0x00, 0x8B, 0x30, 0x03, 0x00, 0x38, 0x51, + 0x04, 0x00, 0x98, 0x7E, 0x35, 0x03, 0x92, 0x0C, 0xC4, 0x50, 0x92, 0x0A, 0x30, 0x61, 0x28, 0x7E, + 0x60, 0x01, 0x23, 0xB6, 0xC6, 0x7B, 0xD2, 0x04, 0x04, 0x71, 0x99, 0x7E, 0x36, 0x03, 0x38, 0x6E, + 0x38, 0x05, 0x06, 0x76, 0x5C, 0x60, 0x00, 0xF0, 0x77, 0x76, 0xCC, 0x60, 0x00, 0x10, 0x54, 0x7F, + 0x99, 0x7E, 0x3A, 0x03, 0x92, 0x11, 0x18, 0x6E, 0x31, 0x03, 0x28, 0x7E, 0x80, 0x02, 0xCC, 0x60, + 0xFF, 0x00, 0xA9, 0x7E, 0x2E, 0x03, 0x92, 0x08, 0x18, 0x6E, 0x30, 0x03, 0xCC, 0x60, 0xFF, 0x00, + 0x92, 0x03, 0xA9, 0x7E, 0x30, 0x03, 0x58, 0xC1, 0x18, 0x00, 0x58, 0x81, 0x08, 0x00, 0x2C, 0x10, + 0x28, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x0C, 0x60, 0x00, 0x10, 0x2C, 0x20, + 0x44, 0x00, 0xA8, 0xD6, 0x50, 0x05, 0x57, 0x22, 0x2F, 0xE6, 0x02, 0x00, 0x14, 0x71, 0xA9, 0x7E, + 0x04, 0x00, 0xA9, 0x7E, 0x06, 0x00, 0xA9, 0x7E, 0x08, 0x00, 0xA9, 0x7E, 0x0A, 0x00, 0xA1, 0x0E, + 0xA9, 0x0E, 0x02, 0x00, 0x92, 0x0F, 0x0C, 0x20, 0x98, 0x14, 0x06, 0x3D, 0x04, 0x48, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0xA0, 0x14, 0x06, 0x3D, 0x04, 0x4A, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0xA9, 0x0E, 0x0C, 0x00, 0xA9, 0x0E, 0x0E, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, 0x04, 0xE0, 0x06, 0x2E, 0xAB, 0x7E, 0x03, 0x00, + 0x24, 0xE1, 0xC4, 0xE5, 0x92, 0xFB, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x3C, 0x10, 0x18, 0x00, + 0xB9, 0x31, 0x04, 0x00, 0xD9, 0xC1, 0x08, 0x00, 0x28, 0xD1, 0x04, 0x00, 0xB1, 0x21, 0x23, 0xC2, + 0xC6, 0x4D, 0x28, 0x31, 0x02, 0x00, 0x28, 0xE1, 0x06, 0x00, 0x32, 0x03, 0x43, 0x2E, 0xF2, 0x11, + 0xC6, 0x4C, 0x22, 0x03, 0x43, 0x23, 0xF2, 0x0D, 0x3F, 0x2D, 0x04, 0x00, 0x36, 0x3E, 0xAB, 0x97, + 0x00, 0x00, 0x43, 0x22, 0x3F, 0x3D, 0x0C, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x26, 0x2E, 0x43, 0x22, + 0x58, 0xC1, 0x08, 0x00, 0x2C, 0x10, 0x18, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x70, 0x94, 0x15, + 0x3C, 0x10, 0x78, 0x00, 0xD9, 0xC1, 0x68, 0x00, 0xD9, 0x81, 0x58, 0x00, 0x30, 0x77, 0xDC, 0x70, + 0x00, 0x08, 0x8A, 0xB8, 0x02, 0x00, 0xC4, 0x30, 0x92, 0x0C, 0xC4, 0x20, 0x9A, 0xB3, 0x02, 0x00, + 0xA8, 0x70, 0x50, 0x15, 0x9A, 0xAF, 0x02, 0x00, 0xAB, 0x81, 0x03, 0x00, 0xFA, 0xAB, 0x02, 0x00, + 0x98, 0x70, 0xBA, 0x15, 0x0C, 0xE0, 0x00, 0x10, 0x82, 0x2C, 0x28, 0x7E, 0x22, 0x00, 0xC4, 0x79, + 0xC2, 0x0E, 0x0C, 0x70, 0x20, 0x00, 0xA9, 0x7E, 0x94, 0x04, 0x0C, 0x70, 0xA0, 0x00, 0xA9, 0x7E, + 0x90, 0x04, 0xA9, 0x0E, 0x96, 0x04, 0x0C, 0x70, 0x50, 0x00, 0xF2, 0x34, 0xC4, 0x75, 0xC2, 0x0E, + 0x0C, 0x70, 0x20, 0x00, 0xA9, 0x7E, 0x94, 0x04, 0x0C, 0x70, 0xA0, 0x00, 0xA9, 0x7E, 0x90, 0x04, + 0xA9, 0x0E, 0x96, 0x04, 0x0C, 0x70, 0x64, 0x00, 0xF2, 0x25, 0x0C, 0x70, 0x10, 0x00, 0xA9, 0x7E, + 0x94, 0x04, 0x0C, 0x70, 0xA0, 0x00, 0xA9, 0x7E, 0x90, 0x04, 0xA9, 0x0E, 0x96, 0x04, 0xF2, 0x18, + 0x98, 0x7E, 0x56, 0x02, 0x92, 0xD7, 0x28, 0x7E, 0x06, 0x00, 0x0C, 0x60, 0x10, 0x00, 0xD6, 0x67, + 0x92, 0xD1, 0xD4, 0x78, 0x0C, 0x70, 0x20, 0x00, 0xA9, 0x7E, 0x94, 0x04, 0x0C, 0x70, 0xA0, 0x00, + 0xA9, 0x7E, 0x90, 0x04, 0x0C, 0x70, 0x1E, 0x00, 0xA9, 0x7E, 0x96, 0x04, 0x82, 0x2F, 0x0C, 0x70, + 0x96, 0x00, 0xA9, 0x7E, 0x92, 0x04, 0x0C, 0x70, 0x44, 0x14, 0xB9, 0x71, 0x1C, 0x00, 0x0C, 0x70, + 0x46, 0x14, 0xB9, 0x71, 0x18, 0x00, 0x0C, 0x70, 0xA0, 0x14, 0xB9, 0x71, 0x34, 0x00, 0x0C, 0x70, + 0x90, 0x14, 0xB9, 0x71, 0x0C, 0x00, 0x0C, 0x70, 0x48, 0x14, 0xB9, 0x71, 0x30, 0x00, 0x08, 0x60, + 0x00, 0xFF, 0x04, 0x50, 0x0C, 0x70, 0x4A, 0x14, 0x2C, 0x60, 0xFF, 0x0F, 0x06, 0xDE, 0xB9, 0x71, + 0x2C, 0x00, 0xB9, 0x51, 0x04, 0x00, 0xB9, 0x51, 0x14, 0x00, 0xB9, 0x51, 0x40, 0x00, 0xB9, 0x51, + 0x3C, 0x00, 0x06, 0xB5, 0xB9, 0x61, 0x38, 0x00, 0xF2, 0x04, 0x0C, 0x70, 0xC8, 0x00, 0xF2, 0xD2, + 0x28, 0x7E, 0x50, 0x05, 0x63, 0x7B, 0xD4, 0x71, 0x92, 0x06, 0x06, 0x2B, 0xAB, 0x7E, 0x03, 0x00, + 0xFA, 0xF5, 0x01, 0x00, 0x04, 0x71, 0x26, 0x7B, 0x57, 0x71, 0x26, 0x7E, 0x38, 0x67, 0x38, 0x05, + 0x06, 0x76, 0x77, 0x76, 0x5C, 0x70, 0xFF, 0x0F, 0x43, 0x57, 0x5C, 0x60, 0xFF, 0x0F, 0xB9, 0x51, + 0x24, 0x00, 0x43, 0x56, 0xB9, 0x51, 0x28, 0x00, 0xF8, 0x5D, 0x44, 0x04, 0x32, 0x20, 0x38, 0x51, + 0x24, 0x00, 0x38, 0x41, 0x1C, 0x00, 0xA1, 0x54, 0x38, 0x51, 0x28, 0x00, 0x38, 0x41, 0x18, 0x00, + 0xA1, 0x54, 0x38, 0x51, 0x24, 0x00, 0x38, 0x41, 0x30, 0x00, 0xA1, 0x54, 0x38, 0x51, 0x28, 0x00, + 0x38, 0x41, 0x2C, 0x00, 0xA1, 0x54, 0x38, 0x41, 0x0C, 0x00, 0xA9, 0x0D, 0x40, 0x04, 0xA9, 0x0D, + 0x42, 0x04, 0x04, 0x51, 0x99, 0x54, 0x10, 0x00, 0x99, 0x54, 0x11, 0x00, 0x78, 0x5D, 0x48, 0x04, + 0x36, 0x75, 0xB9, 0x71, 0x08, 0x00, 0x78, 0x7D, 0x4A, 0x04, 0xB8, 0xA1, 0x08, 0x00, 0x36, 0x67, + 0xB9, 0x61, 0x10, 0x00, 0x32, 0x02, 0x16, 0xAA, 0x38, 0x51, 0x10, 0x00, 0x86, 0x65, 0xB9, 0x51, + 0x20, 0x00, 0x32, 0x04, 0x16, 0x76, 0xB9, 0x71, 0x20, 0x00, 0x38, 0x51, 0x20, 0x00, 0x43, 0x2A, + 0x43, 0x35, 0x0C, 0xF0, 0x80, 0x00, 0xF1, 0xF0, 0x98, 0x70, 0xBA, 0x15, 0x06, 0x82, 0xB9, 0x71, + 0x44, 0x00, 0x82, 0x26, 0x38, 0x2E, 0x90, 0x04, 0x38, 0x3E, 0x94, 0x04, 0x06, 0x48, 0x6B, 0x82, + 0x03, 0x00, 0x28, 0x7E, 0x22, 0x00, 0x06, 0x92, 0xC4, 0x77, 0xC2, 0x0C, 0x06, 0x78, 0xF7, 0x7F, + 0x2F, 0x48, 0x07, 0x00, 0xE7, 0x40, 0x38, 0x2E, 0x90, 0x04, 0x38, 0x3E, 0x94, 0x04, 0x43, 0x44, + 0xF2, 0x0B, 0x04, 0x33, 0x2F, 0x28, 0x08, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x42, 0x38, 0x3E, + 0x94, 0x04, 0x38, 0x2E, 0x90, 0x04, 0x6B, 0x82, 0x03, 0x00, 0x06, 0xC2, 0xF2, 0x36, 0x98, 0x7E, + 0x56, 0x02, 0x92, 0x06, 0x28, 0x7E, 0x06, 0x00, 0xDC, 0x70, 0x10, 0x00, 0x82, 0x0C, 0x86, 0x88, + 0x32, 0x02, 0x24, 0x83, 0x06, 0x48, 0x67, 0x41, 0x38, 0x2E, 0x90, 0x04, 0x38, 0x3E, 0x94, 0x04, + 0x43, 0x44, 0xF2, 0x1F, 0x28, 0x7E, 0x22, 0x00, 0xC4, 0x77, 0xC2, 0x16, 0x04, 0x33, 0x26, 0x22, + 0x4B, 0x9E, 0x00, 0x00, 0x43, 0x42, 0x38, 0x3E, 0x94, 0x04, 0x38, 0x2E, 0x90, 0x04, 0x6B, 0x82, + 0x03, 0x00, 0x06, 0xC2, 0x38, 0x3E, 0x94, 0x04, 0x38, 0x2E, 0x90, 0x04, 0x06, 0x48, 0x6B, 0x82, + 0x03, 0x00, 0x06, 0x92, 0xF2, 0x0A, 0x38, 0x2E, 0x90, 0x04, 0x38, 0x3E, 0x94, 0x04, 0x06, 0x48, + 0x6B, 0x82, 0x03, 0x00, 0x06, 0xC2, 0x06, 0x92, 0x18, 0x7E, 0x2B, 0x03, 0xC4, 0x72, 0xD2, 0x0B, + 0x0C, 0x70, 0x50, 0x00, 0xA9, 0x0E, 0x9A, 0x04, 0xA9, 0x0E, 0x98, 0x04, 0xA9, 0x7E, 0x9E, 0x04, + 0xA9, 0x7E, 0x9C, 0x04, 0x38, 0x60, 0x94, 0x15, 0x78, 0x2E, 0x98, 0x04, 0x18, 0x56, 0xB3, 0x00, + 0x18, 0x76, 0xB5, 0x00, 0x18, 0x66, 0xB4, 0x00, 0xB9, 0x51, 0x4C, 0x00, 0x06, 0x35, 0x2F, 0x86, + 0x05, 0x00, 0x26, 0x87, 0xB9, 0x71, 0x54, 0x00, 0xB9, 0x61, 0x50, 0x00, 0xAB, 0x97, 0x00, 0x00, + 0x38, 0x61, 0x50, 0x00, 0x06, 0x42, 0x78, 0x2E, 0x9C, 0x04, 0xB9, 0x41, 0x48, 0x00, 0x06, 0x36, + 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x54, 0x00, 0x38, 0x41, 0x48, 0x00, 0x06, 0x39, 0x26, 0x42, + 0x06, 0x27, 0xB9, 0x41, 0x48, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x41, 0x48, 0x00, 0x43, 0x22, + 0x26, 0x24, 0x06, 0x38, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x51, 0x4C, 0x00, 0x43, 0x92, 0x78, 0x2E, + 0x9A, 0x04, 0x06, 0x35, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x61, 0x50, 0x00, 0x06, 0x52, 0x78, 0x2E, + 0x9E, 0x04, 0xB9, 0x51, 0x4C, 0x00, 0x06, 0x36, 0xAB, 0x97, 0x00, 0x00, 0x38, 0x71, 0x54, 0x00, + 0x38, 0x51, 0x4C, 0x00, 0x06, 0x3C, 0x26, 0x52, 0x06, 0x27, 0xB9, 0x51, 0x4C, 0x00, 0xAB, 0x97, + 0x00, 0x00, 0x38, 0x51, 0x4C, 0x00, 0x43, 0x22, 0x26, 0x25, 0x06, 0x38, 0x4B, 0x9E, 0x00, 0x00, + 0x43, 0x72, 0x06, 0x39, 0x06, 0x2A, 0xB9, 0x71, 0x54, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, + 0x64, 0x00, 0x4B, 0x9E, 0x00, 0x00, 0x38, 0x71, 0x54, 0x00, 0x06, 0x62, 0x06, 0x82, 0x38, 0x21, + 0x20, 0x00, 0xB9, 0x61, 0x50, 0x00, 0x06, 0x37, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, + 0x4B, 0x9E, 0x00, 0x00, 0xB8, 0x51, 0x44, 0x00, 0x38, 0x61, 0x50, 0x00, 0x38, 0x71, 0x54, 0x00, + 0x06, 0xC2, 0x92, 0x10, 0xC4, 0x60, 0x92, 0x05, 0xC4, 0xA4, 0x04, 0x81, 0x12, 0x02, 0x06, 0x85, + 0xC4, 0xC0, 0x92, 0x08, 0x38, 0x51, 0x20, 0x00, 0x04, 0x61, 0xC4, 0x54, 0x12, 0x02, 0x06, 0x6C, + 0x06, 0xC6, 0x38, 0x51, 0x04, 0x00, 0x06, 0x69, 0xC6, 0x95, 0x32, 0x02, 0x06, 0x65, 0x38, 0x51, + 0x14, 0x00, 0x43, 0x66, 0xC6, 0x75, 0xB9, 0x61, 0x04, 0x00, 0x06, 0x67, 0x32, 0x02, 0x06, 0x65, + 0x43, 0x66, 0xB9, 0x61, 0x14, 0x00, 0x38, 0x41, 0x0C, 0x00, 0x38, 0x61, 0x08, 0x00, 0x38, 0x71, + 0x10, 0x00, 0x68, 0x54, 0x10, 0x00, 0x15, 0xA6, 0xF7, 0xAF, 0x33, 0x6A, 0xC6, 0x56, 0x15, 0x97, + 0xF7, 0x9F, 0x33, 0x79, 0x92, 0x04, 0x04, 0x51, 0xB9, 0x51, 0x3C, 0x00, 0x38, 0x41, 0x0C, 0x00, + 0x68, 0x54, 0x11, 0x00, 0xC6, 0x57, 0x92, 0x04, 0x04, 0x51, 0xB9, 0x51, 0x40, 0x00, 0x38, 0x51, + 0x34, 0x00, 0x04, 0x44, 0x91, 0x65, 0x2F, 0x6B, 0x0B, 0x00, 0x26, 0x6E, 0x99, 0x76, 0xA1, 0x04, + 0x0C, 0x60, 0x48, 0x04, 0x26, 0x6D, 0x06, 0x36, 0x06, 0x21, 0xB9, 0x61, 0x08, 0x00, 0x6B, 0xCF, + 0x03, 0x00, 0x6B, 0xBA, 0x00, 0x00, 0x18, 0x7E, 0x2C, 0x03, 0xC4, 0x71, 0x20, 0x71, 0xD2, 0x19, + 0x28, 0x6E, 0x60, 0x01, 0x23, 0x22, 0xC6, 0x62, 0xC2, 0x14, 0x98, 0x6E, 0x35, 0x03, 0x92, 0x11, + 0x78, 0x6D, 0x40, 0x04, 0xC6, 0x68, 0x02, 0x05, 0xB8, 0x51, 0x3C, 0x00, 0x82, 0x02, 0x06, 0x86, + 0x78, 0x6D, 0x42, 0x04, 0xC6, 0x6C, 0x02, 0x05, 0xB8, 0x51, 0x40, 0x00, 0x82, 0x02, 0x06, 0xC6, + 0xC4, 0xA0, 0x92, 0x02, 0x16, 0x88, 0x23, 0x88, 0xC4, 0x90, 0x26, 0x87, 0xA1, 0x81, 0x28, 0x71, + 0x02, 0x00, 0x92, 0x02, 0x16, 0xCC, 0x23, 0xCC, 0x26, 0xC7, 0x06, 0x21, 0xA9, 0xC1, 0x02, 0x00, + 0x6B, 0x20, 0x03, 0x00, 0x78, 0x7D, 0x48, 0x04, 0x70, 0xA1, 0x3F, 0x77, 0x0A, 0x00, 0xC4, 0x70, + 0x32, 0x02, 0x16, 0x77, 0xA9, 0x7D, 0x40, 0x04, 0x78, 0xC1, 0x02, 0x00, 0x78, 0x7D, 0x4A, 0x04, + 0x3F, 0x77, 0x0C, 0x00, 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, 0xA9, 0x7D, 0x42, 0x04, 0x38, 0x61, + 0x24, 0x00, 0x38, 0x71, 0x1C, 0x00, 0x38, 0x51, 0x28, 0x00, 0x38, 0x21, 0x08, 0x00, 0xA1, 0x67, + 0x38, 0x61, 0x18, 0x00, 0x04, 0x44, 0xA1, 0x56, 0x06, 0x31, 0x6B, 0xCF, 0x03, 0x00, 0x04, 0x71, + 0x26, 0x7B, 0x57, 0x71, 0x2F, 0x67, 0x0E, 0x00, 0x38, 0x76, 0x38, 0x05, 0x38, 0x51, 0x38, 0x00, + 0x5C, 0xA0, 0xFF, 0x0F, 0x57, 0xA6, 0x56, 0x75, 0x66, 0x7A, 0x1C, 0x40, 0x00, 0x10, 0x5C, 0xC0, + 0xFF, 0x0F, 0x56, 0x74, 0x66, 0x7C, 0xB9, 0x76, 0x38, 0x05, 0x38, 0x51, 0x1C, 0x00, 0x38, 0x61, + 0x18, 0x00, 0x38, 0x71, 0x34, 0x00, 0x2C, 0x50, 0x10, 0x00, 0x2C, 0x60, 0x10, 0x00, 0x24, 0x72, + 0xB9, 0x51, 0x1C, 0x00, 0xB9, 0x61, 0x18, 0x00, 0x38, 0x51, 0x0C, 0x00, 0x38, 0x61, 0x30, 0x00, + 0xB9, 0x71, 0x34, 0x00, 0x38, 0x71, 0x2C, 0x00, 0x24, 0xB1, 0xC4, 0xB5, 0x24, 0x52, 0x2C, 0x60, + 0x10, 0x00, 0x2C, 0x70, 0x10, 0x00, 0xB9, 0x51, 0x0C, 0x00, 0xB9, 0x61, 0x30, 0x00, 0xB9, 0x71, + 0x2C, 0x00, 0x2C, 0xD0, 0x10, 0x00, 0x9A, 0xDD, 0xFD, 0xFF, 0x38, 0x7E, 0x98, 0x04, 0x38, 0x41, + 0x04, 0x00, 0x38, 0x51, 0x14, 0x00, 0xB9, 0x7E, 0x9C, 0x04, 0xA9, 0x4E, 0x98, 0x04, 0xA9, 0x5E, + 0x9A, 0x04, 0x58, 0xC1, 0x68, 0x00, 0x58, 0x81, 0x58, 0x00, 0x2C, 0x10, 0x78, 0x00, 0xE1, 0xF0, + 0x0C, 0x70, 0xAA, 0x14, 0x04, 0x60, 0x78, 0x57, 0x04, 0x00, 0x24, 0x61, 0xC6, 0x25, 0x22, 0x0E, + 0x78, 0x57, 0x06, 0x00, 0xC6, 0x25, 0x12, 0x0A, 0x70, 0x57, 0xC6, 0x35, 0x22, 0x07, 0x78, 0x57, + 0x02, 0x00, 0xC6, 0x35, 0x12, 0x03, 0x13, 0x26, 0xF2, 0x06, 0x13, 0x66, 0xC4, 0x62, 0x24, 0x78, + 0x92, 0xEB, 0x04, 0x20, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, + 0xB1, 0xB1, 0x0C, 0xE0, 0x00, 0x10, 0x28, 0x7E, 0x06, 0x00, 0x18, 0xCE, 0x07, 0x05, 0xD4, 0x71, + 0x06, 0xD2, 0x06, 0xB3, 0x92, 0x3F, 0x38, 0x60, 0x94, 0x15, 0x18, 0x7E, 0x0C, 0x05, 0x18, 0x66, + 0xC5, 0x00, 0xC6, 0x67, 0xC2, 0x05, 0x24, 0x71, 0x99, 0x7E, 0x0C, 0x05, 0xF2, 0x33, 0x18, 0x72, + 0x0A, 0x00, 0xD7, 0xC1, 0x2C, 0xC0, 0x34, 0x00, 0x26, 0xCE, 0x0C, 0x20, 0xAA, 0x04, 0x99, 0x7C, + 0xAE, 0x04, 0x26, 0x2C, 0x06, 0x3D, 0x04, 0x44, 0x6B, 0xCF, 0x03, 0x00, 0x99, 0xBC, 0xAF, 0x04, + 0x18, 0x7D, 0x0D, 0x00, 0x04, 0x62, 0x99, 0x7C, 0xB0, 0x04, 0x18, 0x7E, 0x07, 0x05, 0x24, 0x71, + 0x99, 0x7E, 0x07, 0x05, 0x18, 0x7D, 0x0D, 0x00, 0xD6, 0x67, 0x82, 0x14, 0x04, 0x64, 0xD6, 0x67, + 0x82, 0x09, 0x04, 0x71, 0x99, 0x7E, 0x09, 0x05, 0x99, 0x0E, 0x0A, 0x05, 0x99, 0x0E, 0x0B, 0x05, + 0xF2, 0x09, 0xDC, 0x70, 0x18, 0x00, 0x82, 0x06, 0x04, 0x71, 0x99, 0x0E, 0x09, 0x05, 0x99, 0x7E, + 0x0A, 0x05, 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xE2, 0x06, 0x63, 0x70, 0x22, 0x78, 0x3E, 0x02, 0x00, + 0x0C, 0xD0, 0x00, 0x10, 0x0C, 0x40, 0xBA, 0x04, 0x0C, 0x50, 0xAA, 0x14, 0x26, 0x4D, 0x04, 0x70, + 0x78, 0xF5, 0x04, 0x00, 0xC6, 0xF2, 0x12, 0x0D, 0x78, 0xF5, 0x06, 0x00, 0xC6, 0x2F, 0x12, 0x09, + 0x70, 0xF5, 0xC6, 0xF3, 0x12, 0x06, 0x78, 0xF5, 0x02, 0x00, 0xC6, 0x3F, 0x12, 0x02, 0x04, 0x71, + 0x24, 0x58, 0xC6, 0x54, 0x92, 0xEE, 0xC4, 0x70, 0x82, 0x77, 0xC4, 0x61, 0x82, 0x09, 0xC4, 0x61, + 0xA2, 0x6F, 0xC4, 0x62, 0x82, 0x1E, 0xC4, 0x64, 0x82, 0x44, 0xFA, 0xAF, 0x00, 0x00, 0x18, 0x6D, + 0x09, 0x05, 0x14, 0x71, 0xC4, 0x60, 0x9A, 0xAA, 0x00, 0x00, 0x8B, 0xB1, 0x03, 0x00, 0x86, 0xC2, + 0x82, 0x09, 0x04, 0x76, 0x99, 0x7E, 0x0D, 0x00, 0x06, 0x2E, 0x06, 0x3C, 0x4B, 0xB3, 0x03, 0x00, + 0xF2, 0x04, 0x04, 0x72, 0x99, 0x7E, 0x0D, 0x00, 0x99, 0xCE, 0x0E, 0x00, 0xFA, 0x96, 0x00, 0x00, + 0x18, 0x7E, 0x0D, 0x00, 0x04, 0x61, 0xD6, 0x67, 0x82, 0x0B, 0xD4, 0x76, 0x82, 0x06, 0x04, 0x7A, + 0x99, 0x7E, 0x0D, 0x00, 0xFA, 0x84, 0x00, 0x00, 0x0C, 0x70, 0x12, 0x00, 0xF2, 0x42, 0x04, 0x62, + 0xD6, 0x67, 0x14, 0x71, 0x8A, 0x83, 0x00, 0x00, 0x8B, 0xB1, 0x03, 0x00, 0x86, 0x32, 0x82, 0x0A, + 0x98, 0x7E, 0x0E, 0x00, 0x92, 0x07, 0x04, 0x76, 0x99, 0x7E, 0x0D, 0x00, 0x99, 0x3E, 0x0E, 0x00, + 0xF2, 0x04, 0x04, 0x72, 0x99, 0x7E, 0x0D, 0x00, 0x06, 0x2E, 0x4B, 0xB3, 0x03, 0x00, 0xF2, 0x6D, + 0x18, 0x7E, 0x0D, 0x00, 0x04, 0x61, 0xD6, 0x67, 0x92, 0xD9, 0x04, 0x62, 0xD6, 0x67, 0x14, 0x71, + 0x82, 0x65, 0x8B, 0xB1, 0x03, 0x00, 0x86, 0x22, 0x18, 0x3E, 0x0E, 0x00, 0x82, 0x11, 0xC4, 0x30, + 0x82, 0x11, 0xC6, 0x23, 0x04, 0x7A, 0x82, 0x03, 0x0C, 0x70, 0x12, 0x00, 0x99, 0x7E, 0x0D, 0x00, + 0x06, 0x2E, 0x4B, 0xB3, 0x03, 0x00, 0x04, 0x71, 0x99, 0x7E, 0x0C, 0x00, 0xF2, 0x06, 0xC4, 0x30, + 0x92, 0xF4, 0x04, 0x72, 0x99, 0x7E, 0x0D, 0x00, 0x99, 0x0E, 0x0E, 0x00, 0xF2, 0x46, 0x04, 0x72, + 0x99, 0x7E, 0x0D, 0x00, 0xF2, 0x42, 0xC4, 0x61, 0x82, 0x08, 0xC4, 0x61, 0xA2, 0x3A, 0xC4, 0x62, + 0x82, 0x09, 0xC4, 0x64, 0x82, 0x1B, 0xF2, 0x3A, 0x99, 0x6E, 0x0D, 0x00, 0x99, 0x0D, 0x0C, 0x05, + 0xF2, 0x35, 0x18, 0x7E, 0x0D, 0x00, 0xD4, 0x72, 0x82, 0x15, 0x98, 0x3E, 0x0E, 0x00, 0x82, 0x08, + 0x0C, 0x70, 0x12, 0x00, 0x99, 0x7E, 0x0D, 0x00, 0x06, 0x2E, 0x4B, 0xB3, 0x03, 0x00, 0x04, 0x71, + 0x99, 0x7E, 0x0D, 0x00, 0x99, 0x0D, 0x0C, 0x05, 0xF2, 0x18, 0x18, 0x7E, 0x0D, 0x00, 0xD4, 0x72, + 0x92, 0x07, 0x04, 0x71, 0x99, 0x7E, 0x0D, 0x00, 0x99, 0x0D, 0x0C, 0x05, 0xF2, 0x10, 0x98, 0x3E, + 0x0E, 0x00, 0x04, 0x72, 0x99, 0x7E, 0x0D, 0x00, 0x82, 0x07, 0x04, 0x7A, 0x99, 0x7E, 0x0D, 0x00, + 0x06, 0x2E, 0x4B, 0xB3, 0x03, 0x00, 0x04, 0x71, 0x99, 0x7E, 0x0C, 0x00, 0x04, 0x70, 0xF2, 0x06, + 0x04, 0x62, 0x99, 0x6E, 0x0D, 0x00, 0xF2, 0x02, 0x14, 0x71, 0x28, 0x5D, 0x06, 0x00, 0x04, 0x63, + 0xD6, 0x65, 0x92, 0x07, 0x18, 0x6E, 0x0D, 0x00, 0x54, 0x63, 0x66, 0x65, 0xA9, 0x6D, 0x06, 0x00, + 0x50, 0xC1, 0x06, 0x27, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x18, 0x40, 0xBF, 0x15, + 0xC4, 0x40, 0x28, 0x50, 0x98, 0x15, 0x06, 0x37, 0x0C, 0x70, 0x00, 0x10, 0x82, 0x07, 0x0C, 0x60, + 0x80, 0x0B, 0x26, 0x55, 0x26, 0x56, 0x20, 0x65, 0xF2, 0x0A, 0x08, 0x60, 0x00, 0x30, 0x57, 0x51, + 0x2C, 0x60, 0x00, 0xA0, 0x26, 0x65, 0x30, 0x66, 0x5C, 0x60, 0xFF, 0x7F, 0xC4, 0x40, 0xA9, 0x67, + 0x10, 0x00, 0x06, 0x63, 0x0C, 0x60, 0x98, 0x15, 0x28, 0x66, 0x02, 0x00, 0x92, 0x0B, 0x08, 0x50, + 0x00, 0x30, 0x57, 0x61, 0x2C, 0x50, 0x00, 0xA0, 0x26, 0x56, 0x30, 0x65, 0x5C, 0x60, 0xFF, 0x7F, + 0xF2, 0x06, 0x26, 0x66, 0x0C, 0x50, 0x80, 0x0B, 0x26, 0x65, 0x20, 0x66, 0xA9, 0x67, 0x12, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x18, 0x00, 0xC1, 0xA1, 0x38, 0xB0, 0x94, 0x15, 0xD9, 0xC1, + 0x08, 0x00, 0x30, 0x7B, 0xDC, 0x70, 0x00, 0x40, 0x82, 0x06, 0x0C, 0xC0, 0xFF, 0x7F, 0x0C, 0xE0, + 0x80, 0x0B, 0xF2, 0x05, 0x0C, 0xC0, 0xFF, 0x0F, 0x0C, 0xE0, 0x80, 0x02, 0x28, 0xA0, 0x06, 0x10, + 0x2C, 0xE0, 0x14, 0x02, 0x54, 0xA8, 0x23, 0xAA, 0x04, 0xD0, 0xC4, 0xD1, 0xC2, 0x05, 0x14, 0x7A, + 0x26, 0x7D, 0xC4, 0x71, 0xD2, 0x0F, 0xC4, 0xA0, 0x92, 0x0A, 0x70, 0x7E, 0x26, 0x77, 0x06, 0x67, + 0x57, 0x61, 0x26, 0x76, 0x06, 0x27, 0x57, 0x22, 0x36, 0x27, 0xF2, 0x09, 0x70, 0x2E, 0x26, 0x22, + 0xF2, 0x0A, 0x70, 0x2E, 0x28, 0x3B, 0xC0, 0x00, 0xAB, 0x97, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, + 0x4B, 0x9E, 0x00, 0x00, 0xC4, 0x20, 0x32, 0x03, 0xA1, 0x0E, 0xF2, 0x06, 0xC6, 0x2C, 0x02, 0x03, + 0xA1, 0xCE, 0xF2, 0x02, 0xA1, 0x2E, 0x24, 0xD1, 0xC4, 0xDC, 0x24, 0xE2, 0x92, 0xD7, 0x58, 0xC1, + 0x08, 0x00, 0x40, 0xA1, 0x2C, 0x10, 0x18, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x04, 0x70, 0xC6, 0x74, + 0x82, 0x09, 0x2F, 0x67, 0x03, 0x00, 0x60, 0x56, 0x2F, 0x67, 0x02, 0x00, 0x91, 0x56, 0x24, 0x71, + 0xF2, 0xF7, 0xE1, 0xF0, 0x71, 0x00, 0xF2, 0xFF, 0x66, 0x00, 0x33, 0x01, 0x00, 0x02, 0xCC, 0x02, + 0x99, 0x03, 0x66, 0x04, 0x33, 0x05, 0xFF, 0x05, 0xCC, 0x06, 0x99, 0x07, 0x60, 0x00, 0x20, 0x01, + 0xE0, 0x01, 0xA0, 0x02, 0x60, 0x03, 0x20, 0x04, 0xC6, 0x23, 0x06, 0x72, 0x32, 0x02, 0x06, 0x73, + 0x43, 0x27, 0xE1, 0xF0, 0xC6, 0x23, 0x22, 0x07, 0xC6, 0x24, 0x06, 0x72, 0x32, 0x02, 0x06, 0x74, + 0x43, 0x27, 0xF2, 0x06, 0xC6, 0x34, 0x06, 0x23, 0x32, 0x02, 0x06, 0x24, 0x43, 0x22, 0xE1, 0xF0, + 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xE5, 0x06, 0xD6, 0x6B, 0x04, 0x00, 0x00, 0x06, 0x3E, + 0x06, 0x4D, 0x6B, 0x04, 0x00, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x24, 0x00, + 0xC6, 0x23, 0x06, 0x72, 0x02, 0x02, 0x06, 0x73, 0x43, 0x27, 0xE1, 0xF0, 0x26, 0x23, 0xE1, 0xF0, + 0x26, 0x23, 0x26, 0x24, 0xE1, 0xF0, 0x24, 0x00, 0x26, 0x32, 0x26, 0x43, 0x26, 0x54, 0x2F, 0x26, + 0x05, 0x00, 0xE1, 0xF0, 0x04, 0x70, 0xC6, 0x74, 0x82, 0x09, 0x2F, 0x67, 0x03, 0x00, 0x60, 0x56, + 0x2F, 0x67, 0x02, 0x00, 0x91, 0x56, 0x24, 0x71, 0xF2, 0xF7, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, + 0x77, 0x41, 0x04, 0x70, 0x14, 0x61, 0x34, 0x41, 0xC6, 0x46, 0x82, 0x09, 0x2F, 0x57, 0x03, 0x00, + 0x30, 0xF5, 0x2F, 0x57, 0x02, 0x00, 0xB1, 0xF5, 0x24, 0x74, 0xF2, 0xF6, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x24, 0x00, 0x04, 0x70, 0xC6, 0x74, 0x82, 0x06, 0x2F, 0x67, 0x02, 0x00, 0x91, 0x36, + 0x24, 0x71, 0xF2, 0xFA, 0xE1, 0xF0, 0x24, 0x00, 0x77, 0x41, 0x14, 0x71, 0x34, 0x41, 0xC6, 0x47, + 0x82, 0x04, 0xB1, 0x32, 0x24, 0x24, 0xF2, 0xFB, 0xE1, 0xF0, 0x24, 0x00, 0x77, 0x31, 0x14, 0x71, + 0x34, 0x31, 0xC6, 0x37, 0x82, 0x04, 0xB1, 0x02, 0x24, 0x24, 0xF2, 0xFB, 0xE1, 0xF0, 0x24, 0x00, + 0x08, 0x50, 0x00, 0x30, 0x0C, 0x70, 0xCC, 0x4D, 0x0C, 0x40, 0xFC, 0x48, 0x0C, 0x60, 0x66, 0x09, + 0x26, 0x75, 0x26, 0x45, 0x30, 0x57, 0x34, 0x74, 0xC6, 0x74, 0x77, 0x58, 0xA1, 0x56, 0x34, 0x62, + 0x92, 0xFA, 0xE1, 0xF0, 0x34, 0x18, 0xC1, 0xE1, 0x08, 0x70, 0x00, 0x30, 0x2C, 0x70, 0xCC, 0xA4, + 0x0C, 0x60, 0x33, 0x01, 0x0C, 0xE0, 0x80, 0x0B, 0x0C, 0x20, 0x80, 0x02, 0x14, 0x41, 0x30, 0xF7, + 0x2F, 0x56, 0x06, 0x00, 0x2F, 0x3E, 0x05, 0x00, 0xA1, 0xF3, 0x1C, 0x30, 0x00, 0x57, 0x26, 0x37, + 0x30, 0x33, 0x34, 0x61, 0xC6, 0x64, 0x26, 0x52, 0xA1, 0x35, 0x34, 0x74, 0x92, 0xF1, 0x40, 0xE1, + 0x24, 0x18, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x70, 0x1E, 0x00, 0xB1, 0x71, 0x30, 0x71, 0x14, 0x61, + 0xC4, 0x70, 0x26, 0x67, 0xB1, 0x61, 0x92, 0xFB, 0x24, 0x14, 0xE1, 0xF0, 0xE1, 0xF0, 0x24, 0x00, + 0x34, 0x14, 0xB1, 0xF1, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x07, 0x90, 0x60, 0xB9, 0x27, 0x00, 0x60, + 0xB9, 0x37, 0x04, 0x60, 0xB9, 0x07, 0x08, 0x60, 0x38, 0x67, 0x90, 0x60, 0xD4, 0x61, 0x82, 0xFD, + 0x0C, 0x60, 0x00, 0x81, 0xB9, 0x67, 0x00, 0x60, 0x0B, 0x14, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x24, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x00, 0x60, + 0x04, 0x60, 0xC6, 0x65, 0x2F, 0x23, 0x06, 0x00, 0x82, 0x0D, 0xB9, 0x27, 0x04, 0x60, 0x30, 0x24, + 0xB9, 0x27, 0x08, 0x60, 0x38, 0x27, 0x90, 0x60, 0xD4, 0x22, 0x82, 0xFD, 0x24, 0x61, 0x24, 0x44, + 0xF2, 0xF1, 0x0C, 0x60, 0x00, 0x81, 0xB9, 0x67, 0x00, 0x60, 0x0B, 0x14, 0x00, 0x00, 0x30, 0xF1, + 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x18, 0xC1, 0xE1, 0x08, 0x70, 0x00, 0x40, 0x0C, 0x60, 0x00, 0xDE, + 0xB9, 0x67, 0x10, 0x60, 0x77, 0x31, 0x0C, 0x60, 0x90, 0x01, 0xB9, 0x67, 0x00, 0x60, 0x77, 0x21, + 0x34, 0x31, 0x08, 0x60, 0x00, 0x13, 0xB9, 0x27, 0x04, 0x60, 0x66, 0x36, 0xB9, 0x37, 0x14, 0x60, + 0x08, 0x50, 0x00, 0x10, 0x38, 0x67, 0x14, 0x60, 0x0C, 0x40, 0x14, 0x60, 0xD6, 0x65, 0x26, 0x47, + 0x92, 0xFA, 0x38, 0xE7, 0x18, 0x60, 0xB1, 0x04, 0x0C, 0x60, 0x00, 0x81, 0xB9, 0x67, 0x00, 0x60, + 0xB9, 0x07, 0x10, 0x60, 0x0B, 0x14, 0x00, 0x00, 0x06, 0x2E, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0E, 0x16, 0x0C, 0x14, + 0x01, 0x15, 0xFF, 0xFF, 0xFF, 0x00, 0x80, 0x04, 0xFF, 0x07, 0x02, 0x00, 0x03, 0x02, 0x67, 0x00, + 0x67, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, + 0x08, 0x07, 0x01, 0xC8, 0xC8, 0x00, 0x00, 0x02, 0x01, 0x46, 0x01, 0x02, 0x08, 0x07, 0x14, 0x14, + 0xFF, 0xFF, 0xFF, 0x0C, 0x0D, 0xFF, 0xFF, 0xFF, 0xC8, 0x32, 0x00, 0x00, 0xC8, 0x32, 0x00, 0x00, + 0xC8, 0x32, 0x00, 0x00, 0xA0, 0x86, 0x01, 0x00, 0x80, 0x96, 0x98, 0x00, 0xE8, 0x03, 0x00, 0x00, + 0x0A, 0x00, 0xF4, 0x01, 0xF4, 0x01, 0xF4, 0x01, 0xF4, 0x01, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, + 0x01, 0x00, 0x5A, 0x00, 0x01, 0x00, 0x0A, 0x00, 0xA0, 0x0F, 0x64, 0x64, 0x64, 0x01, 0x50, 0x35, + 0x04, 0x05, 0x02, 0x0A, 0x06, 0x00, 0x30, 0x00, 0xC8, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, + 0xA0, 0x00, 0x20, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x96, 0x00, 0x2C, 0x01, 0x00, 0x00, + 0x64, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x96, 0x00, 0x26, 0x26, 0x00, 0x00, 0x60, 0x40, 0x14, 0x00, + 0x40, 0x20, 0x12, 0x00, 0x60, 0x40, 0x14, 0x00, 0x60, 0x4A, 0x12, 0x00, 0x40, 0x20, 0x12, 0x00, + 0x40, 0x38, 0x12, 0x00, 0x45, 0x38, 0x12, 0x00, 0x42, 0x38, 0x12, 0x00, 0x40, 0x40, 0x00, 0x00, + 0x63, 0x07, 0x03, 0x00, 0x61, 0x07, 0x05, 0x00, 0x61, 0x57, 0x03, 0x00, 0x61, 0x07, 0x05, 0x00, + 0x61, 0x57, 0x03, 0x00, 0x63, 0x07, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x00, 0x0E, 0x80, 0x0F, 0x80, 0x0F, 0x80, 0x0F, 0x80, 0x0F, 0x66, 0x7F, 0xF0, 0x07, + 0x66, 0x7F, 0xF0, 0x07, 0x66, 0x7F, 0xF0, 0x07, 0x66, 0x7F, 0xF0, 0x07, 0x66, 0x7F, 0xF0, 0x07, + 0x66, 0x7F, 0xF0, 0x07, 0xFF, 0x3F, 0x01, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0x40, 0xE2, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x08, 0x00, + 0x10, 0x3F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, + 0x00, 0x00, 0x08, 0x82, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x64, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2C, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x08, 0x00, 0x10, 0x3F, 0x10, 0x3F, + 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x08, 0x82, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2C, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x08, 0x00, 0x10, 0x5F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, + 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x08, 0x82, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x80, 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x2C, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x10, 0x08, 0x00, 0x10, 0x5F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, + 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x08, 0x82, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, + 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x2C, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xB9, 0x00, 0x00, + 0x50, 0x50, 0x05, 0x00, 0x50, 0x64, 0x00, 0x64, 0x00, 0x64, 0x64, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x2C, 0x01, 0x00, 0x00, 0x64, 0x64, 0xC8, 0x00, 0x14, 0x00, 0x2C, 0x01, 0x1E, 0x00, 0x90, 0x01, + 0x90, 0x01, 0x90, 0x01, 0x90, 0x01, 0x00, 0x00, 0x08, 0x00, 0x90, 0x01, 0x00, 0x00, 0x3C, 0x00, + 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0A, 0x02, 0x05, 0x01, 0x32, 0x0A, 0xB8, 0x0B, + 0xF4, 0x01, 0x01, 0x01, 0x0A, 0x00, 0x1E, 0x00, 0xBC, 0x02, 0xFA, 0xFA, 0x0A, 0x00, 0x96, 0x00, + 0x00, 0x05, 0x04, 0x0A, 0x05, 0x06, 0x32, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x1E, 0x03, 0x14, 0x00, + 0x20, 0x03, 0xDC, 0x05, 0xC8, 0x00, 0x14, 0x00, 0x28, 0x00, 0x14, 0x00, 0x0A, 0x00, 0xE0, 0x01, + 0x05, 0x04, 0x01, 0x01, 0x01, 0x00, 0x80, 0x00, 0xD0, 0x00, 0x80, 0x01, 0x20, 0x00, 0x80, 0x00, + 0x60, 0x01, 0x30, 0x00, 0x50, 0x00, 0xA0, 0x00, 0x14, 0x04, 0xFD, 0x02, 0x00, 0x03, 0x14, 0x01, + 0x02, 0x06, 0x01, 0x04, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, + 0x18, 0x00, 0x18, 0x00, 0x20, 0x00, 0x20, 0x00, 0xA0, 0x00, 0x64, 0x00, 0x03, 0x00, 0x00, 0x2D, + 0x2D, 0x0A, 0x96, 0x00, 0x0A, 0x0A, 0x30, 0x00, 0x05, 0x0A, 0x01, 0x00, 0x2C, 0x01, 0xC8, 0x00, + 0x05, 0x05, 0xC8, 0x00, 0x14, 0x00, 0x00, 0x00, 0x9D, 0xF9, 0x00, 0x00, 0x50, 0x50, 0x05, 0x00, + 0x50, 0x64, 0x00, 0x64, 0x00, 0x64, 0x64, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x00, + 0x64, 0x64, 0xC8, 0x00, 0x14, 0x00, 0x90, 0x01, 0x64, 0x00, 0xF4, 0x01, 0xF4, 0x01, 0xF4, 0x01, + 0x58, 0x02, 0x00, 0x00, 0x08, 0x00, 0x90, 0x01, 0x00, 0x00, 0x46, 0x00, 0x01, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x0A, 0x02, 0x05, 0x01, 0x32, 0x0A, 0xB8, 0x0B, 0xF4, 0x01, 0x01, 0x01, + 0x28, 0x00, 0x64, 0x00, 0xD0, 0x07, 0xFF, 0xFF, 0x0A, 0x00, 0x96, 0x00, 0x00, 0x05, 0x04, 0x0A, + 0x05, 0x06, 0x50, 0x00, 0x00, 0x00, 0x00, 0x14, 0x1E, 0x03, 0x14, 0x00, 0x20, 0x03, 0xDC, 0x05, + 0xC8, 0x00, 0x14, 0x00, 0x28, 0x00, 0x1E, 0x00, 0x0A, 0x00, 0xE0, 0x01, 0x05, 0x04, 0x01, 0x01, + 0x01, 0x00, 0x80, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0x20, 0x00, 0x80, 0x00, 0x60, 0x01, 0x30, 0x00, + 0x50, 0x00, 0xA0, 0x00, 0x14, 0x04, 0xFD, 0x02, 0x00, 0x03, 0x14, 0x01, 0x02, 0x03, 0x02, 0x04, + 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x18, 0x00, 0x18, 0x00, + 0x20, 0x00, 0x20, 0x00, 0xA0, 0x00, 0x64, 0x00, 0x03, 0x00, 0x00, 0x2D, 0x2D, 0x0A, 0x96, 0x00, + 0x0A, 0x0A, 0x30, 0x00, 0x05, 0x0A, 0x01, 0x00, 0xC8, 0x00, 0xC8, 0x00, 0x05, 0x05, 0xC8, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0D, 0x58, 0x00, 0x00, 0x16, 0x0E, 0x15, 0x0E, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xB9, 0x02, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x96, 0x00, 0x26, 0x26, 0x00, 0x00, 0x54, 0xFF, 0x0F, 0x00, 0x08, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x2C, 0x01, 0x38, 0x48, 0x10, 0x10, 0x01, 0x00, 0x08, 0x00, + 0xC8, 0x00, 0xC8, 0x10, 0x63, 0x07, 0x03, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0x26, 0x05, 0x00, 0x00, + 0x64, 0xC0, 0x12, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x0E, + 0x00, 0x00, 0x80, 0x00, 0xFF, 0x0F, 0xFF, 0x0F, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, + 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x16, 0x0E, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, + 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x2C, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xE2, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x10, 0x08, 0x00, 0x10, 0x3F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x08, 0x82, + 0x2C, 0x01, 0xFF, 0x0F, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x34, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xAC, 0x0D, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x7F, 0xF0, 0x07, + 0xDC, 0xC5, 0xDA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x16, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x07, 0x41, 0x06, 0x00, + 0xB8, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x31, 0x84, 0x40, 0x00, 0x15, 0xF3, 0x88, 0x00, 0x00, 0xFF, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x3F, 0x00, 0x88, 0xBF, 0x01, 0x20, 0x00, 0x00, + 0x0C, 0x0D, 0x0E, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, + 0x1E, 0x21, 0x22, 0x23, 0x0A, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0C, + 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x00, 0x00, 0xFF, 0x00, 0x20, 0x86, 0x00, 0x00, 0x00, 0x4E, + 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x0F, 0x00, 0x48, 0x26, 0x22, 0x00, + 0x4C, 0x27, 0x26, 0x01, 0x4A, 0x27, 0x24, 0x01, 0x48, 0x2A, 0x22, 0x04, 0x48, 0x2B, 0x22, 0x05, + 0x48, 0x2C, 0x22, 0x06, 0x48, 0x2D, 0x22, 0x07, 0x48, 0x2E, 0x22, 0x08, 0x4C, 0x26, 0x26, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x4C, 0x26, 0x26, 0x00, 0x46, 0x27, 0x20, 0x01, 0xFF, 0xF7, 0xFF, 0xFF, + 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x00, 0x00, 0x26, 0x07, 0x13, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x50, 0x05, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x46, 0x1E, 0x09, 0x0F, 0x46, 0x1E, 0x09, 0x0F, 0x44, 0x16, 0x09, 0x0F, 0x4E, 0x3E, 0x09, 0x0F, + 0x3E, 0xFE, 0x08, 0x0E, 0x3F, 0x02, 0x09, 0x0E, 0x37, 0xDE, 0x08, 0x0E, 0x3E, 0xFE, 0x08, 0x0E, + 0x40, 0x02, 0x09, 0x0D, 0x57, 0x5E, 0x09, 0x0D, 0x43, 0x0E, 0x09, 0x0D, 0x47, 0x1E, 0x09, 0x0D, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x7E, 0xFE, 0x09, 0x13, 0x88, 0x26, 0x0A, 0x13, + 0x86, 0x1E, 0x0A, 0x13, 0x96, 0x5E, 0x0A, 0x13, 0x7C, 0xF6, 0x09, 0x12, 0x81, 0x06, 0x0A, 0x12, + 0x6E, 0xBA, 0x09, 0x12, 0x76, 0xDE, 0x09, 0x12, 0x7E, 0xFE, 0x09, 0x11, 0x95, 0x56, 0x0A, 0x11, + 0x7A, 0xEE, 0x09, 0x11, 0x82, 0x0A, 0x0A, 0x11, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x62, 0x8A, 0x19, 0x13, 0x67, 0x9E, 0x19, 0x13, 0x6A, 0xAA, 0x19, 0x13, 0x7C, 0xF6, 0x19, 0x13, + 0x69, 0xA6, 0x19, 0x12, 0x70, 0xC2, 0x19, 0x12, 0x60, 0x86, 0x19, 0x12, 0x65, 0x96, 0x19, 0x12, + 0x66, 0x9E, 0x19, 0x11, 0x72, 0xCE, 0x19, 0x11, 0x61, 0x86, 0x19, 0x11, 0x64, 0x96, 0x19, 0x11, + 0x00, 0x02, 0x18, 0x0A, 0x00, 0x02, 0x18, 0x0A, 0x4D, 0x36, 0x19, 0x13, 0x52, 0x4E, 0x19, 0x13, + 0x52, 0x4E, 0x19, 0x13, 0x64, 0x96, 0x19, 0x13, 0x53, 0x4E, 0x19, 0x12, 0x59, 0x66, 0x19, 0x12, + 0x4C, 0x36, 0x19, 0x12, 0x50, 0x46, 0x19, 0x12, 0x4F, 0x3E, 0x19, 0x11, 0x5B, 0x6E, 0x19, 0x11, + 0x4C, 0x36, 0x19, 0x11, 0x4E, 0x3E, 0x19, 0x11, 0x00, 0x02, 0x18, 0x0A, 0x00, 0x02, 0x18, 0x0A, + 0x50, 0x42, 0x19, 0x13, 0x54, 0x56, 0x19, 0x13, 0x56, 0x5E, 0x19, 0x13, 0x66, 0x9E, 0x19, 0x13, + 0x56, 0x5E, 0x19, 0x12, 0x5B, 0x6E, 0x19, 0x12, 0x4E, 0x3E, 0x19, 0x12, 0x51, 0x46, 0x19, 0x12, + 0x51, 0x46, 0x19, 0x11, 0x5D, 0x76, 0x19, 0x11, 0x4F, 0x3E, 0x19, 0x11, 0x4E, 0x3E, 0x19, 0x11, + 0x00, 0x02, 0x18, 0x0A, 0x00, 0x02, 0x18, 0x0A, 0x48, 0x26, 0x19, 0x13, 0x4F, 0x3E, 0x19, 0x13, + 0x4F, 0x42, 0x19, 0x13, 0x60, 0x86, 0x19, 0x13, 0x50, 0x46, 0x19, 0x12, 0x56, 0x5E, 0x19, 0x12, + 0x47, 0x1E, 0x19, 0x12, 0x4B, 0x2E, 0x19, 0x12, 0x4A, 0x2E, 0x19, 0x11, 0x56, 0x5E, 0x19, 0x11, + 0x47, 0x1E, 0x19, 0x11, 0x48, 0x26, 0x19, 0x11, 0x00, 0x02, 0x18, 0x0A, 0x00, 0x02, 0x18, 0x0A, + 0x36, 0xDE, 0x18, 0x10, 0x38, 0xE6, 0x18, 0x10, 0x3A, 0xEE, 0x18, 0x10, 0x47, 0x1E, 0x19, 0x10, + 0x3C, 0xF6, 0x18, 0x0F, 0x41, 0x06, 0x19, 0x0F, 0x38, 0xE6, 0x18, 0x0F, 0x3A, 0xEE, 0x18, 0x0F, + 0x38, 0xE6, 0x18, 0x0E, 0x3C, 0xF6, 0x18, 0x0E, 0x2C, 0xB6, 0x18, 0x0E, 0x37, 0xDE, 0x18, 0x0E, + 0x00, 0x02, 0x18, 0x0A, 0x00, 0x02, 0x18, 0x0A, 0x34, 0xD6, 0x18, 0x10, 0x38, 0xE6, 0x18, 0x10, + 0x3A, 0xEE, 0x18, 0x10, 0x46, 0x1A, 0x19, 0x10, 0x3C, 0xF2, 0x18, 0x0F, 0x3F, 0xFE, 0x18, 0x0F, + 0x36, 0xDA, 0x18, 0x0F, 0x38, 0xE6, 0x18, 0x0F, 0x36, 0xDE, 0x18, 0x0E, 0x3C, 0xF6, 0x18, 0x0E, + 0x31, 0xC6, 0x18, 0x0E, 0x33, 0xCE, 0x18, 0x0E, 0x00, 0x02, 0x18, 0x0A, 0x00, 0x02, 0x18, 0x0A, + 0x3F, 0xFE, 0x28, 0x10, 0x44, 0x16, 0x29, 0x10, 0x44, 0x16, 0x29, 0x10, 0x52, 0x4E, 0x29, 0x10, + 0x45, 0x16, 0x29, 0x0F, 0x4A, 0x2E, 0x29, 0x0F, 0x3D, 0xF6, 0x28, 0x0F, 0x41, 0x06, 0x29, 0x0F, + 0x40, 0x02, 0x29, 0x0E, 0x48, 0x26, 0x29, 0x0E, 0x3B, 0xEE, 0x28, 0x0E, 0x3C, 0xF6, 0x28, 0x0E, + 0x00, 0x02, 0x28, 0x0A, 0x00, 0x02, 0x28, 0x0A, 0x40, 0x06, 0x29, 0x0D, 0x47, 0x1E, 0x29, 0x0D, + 0x48, 0x26, 0x29, 0x0D, 0x55, 0x56, 0x29, 0x0D, 0x48, 0x26, 0x29, 0x0C, 0x4E, 0x3E, 0x29, 0x0C, + 0x3F, 0xFE, 0x28, 0x0C, 0x42, 0x0E, 0x29, 0x0C, 0x42, 0x0A, 0x29, 0x0B, 0x4B, 0x2E, 0x29, 0x0B, + 0x3E, 0xFE, 0x28, 0x0B, 0x3E, 0xFE, 0x28, 0x0B, 0x00, 0x02, 0x28, 0x0A, 0x00, 0x02, 0x28, 0x0A, + 0x41, 0x06, 0x29, 0x0D, 0x45, 0x16, 0x29, 0x0D, 0x46, 0x1E, 0x29, 0x0D, 0x52, 0x4E, 0x29, 0x0D, + 0x46, 0x1E, 0x29, 0x0C, 0x4B, 0x2E, 0x29, 0x0C, 0x3E, 0xFE, 0x28, 0x0C, 0x41, 0x06, 0x29, 0x0C, + 0x41, 0x06, 0x29, 0x0B, 0x48, 0x26, 0x29, 0x0B, 0x3D, 0xF6, 0x28, 0x0B, 0x3A, 0xEE, 0x28, 0x0B, + 0x00, 0x02, 0x28, 0x0A, 0x00, 0x02, 0x28, 0x0A, 0x3D, 0xF6, 0x28, 0x0D, 0x47, 0x1E, 0x29, 0x0D, + 0x47, 0x1E, 0x29, 0x0D, 0x54, 0x56, 0x29, 0x0D, 0x46, 0x1E, 0x29, 0x0C, 0x4C, 0x36, 0x29, 0x0C, + 0x3E, 0xFA, 0x28, 0x0C, 0x41, 0x06, 0x29, 0x0C, 0x40, 0x06, 0x29, 0x0B, 0x49, 0x26, 0x29, 0x0B, + 0x3D, 0xF6, 0x28, 0x0B, 0x3C, 0xF6, 0x28, 0x0B, 0x00, 0x02, 0x28, 0x0A, 0x00, 0x02, 0x28, 0x0A, + 0x33, 0xCE, 0x38, 0x0A, 0x38, 0xE6, 0x38, 0x0A, 0x38, 0xE6, 0x38, 0x0B, 0x41, 0x06, 0x39, 0x0B, + 0x37, 0xDE, 0x38, 0x0A, 0x3A, 0xEE, 0x38, 0x0A, 0x30, 0xC6, 0x38, 0x0A, 0x34, 0xD6, 0x38, 0x0A, + 0x32, 0xCE, 0x38, 0x09, 0x3A, 0xEE, 0x38, 0x09, 0x30, 0xC2, 0x38, 0x09, 0x2E, 0xBE, 0x38, 0x09, + 0x00, 0x02, 0x38, 0x0A, 0x00, 0x02, 0x38, 0x0A, 0x33, 0xCE, 0x48, 0x0A, 0x36, 0xDE, 0x48, 0x0A, + 0x36, 0xDE, 0x48, 0x0B, 0x40, 0x06, 0x49, 0x0B, 0x36, 0xDE, 0x48, 0x0A, 0x39, 0xE6, 0x48, 0x0A, + 0x2E, 0xBE, 0x48, 0x0A, 0x32, 0xCE, 0x48, 0x0A, 0x31, 0xC6, 0x48, 0x09, 0x38, 0xE6, 0x48, 0x09, + 0x2E, 0xBE, 0x48, 0x09, 0x2E, 0xBA, 0x48, 0x09, 0x00, 0x02, 0x48, 0x0A, 0x00, 0x02, 0x48, 0x0A, + 0x2E, 0xBE, 0x58, 0x0A, 0x33, 0xCE, 0x58, 0x0A, 0x33, 0xCE, 0x58, 0x0B, 0x3E, 0xFA, 0x58, 0x0B, + 0x32, 0xCE, 0x58, 0x0A, 0x36, 0xDA, 0x58, 0x0A, 0x2C, 0xB6, 0x58, 0x0A, 0x2F, 0xBE, 0x58, 0x0A, + 0x2E, 0xBE, 0x58, 0x09, 0x36, 0xDA, 0x58, 0x09, 0x2C, 0xB2, 0x58, 0x09, 0x2D, 0xB6, 0x58, 0x09, + 0x00, 0x02, 0x58, 0x0A, 0x00, 0x02, 0x58, 0x0A, 0x30, 0xC2, 0x68, 0x0A, 0x35, 0xD6, 0x68, 0x0A, + 0x35, 0xD6, 0x68, 0x0B, 0x3F, 0xFE, 0x68, 0x0B, 0x33, 0xCE, 0x68, 0x0A, 0x37, 0xDE, 0x68, 0x0A, + 0x2D, 0xB6, 0x68, 0x0A, 0x30, 0xC6, 0x68, 0x0A, 0x2F, 0xC2, 0x68, 0x09, 0x37, 0xDE, 0x68, 0x09, + 0x2C, 0xB6, 0x68, 0x09, 0x2B, 0xAE, 0x68, 0x09, 0x00, 0x02, 0x68, 0x0A, 0x00, 0x02, 0x68, 0x0A, + 0x2A, 0xAE, 0x78, 0x0C, 0x31, 0xC6, 0x78, 0x0B, 0x31, 0xC6, 0x78, 0x0B, 0x3B, 0xEE, 0x78, 0x0B, + 0x30, 0xC6, 0x78, 0x0A, 0x33, 0xCE, 0x78, 0x0A, 0x2A, 0xAE, 0x78, 0x0A, 0x2E, 0xBA, 0x78, 0x0A, + 0x2D, 0xB6, 0x78, 0x09, 0x34, 0xD6, 0x78, 0x09, 0x2A, 0xAA, 0x78, 0x09, 0x29, 0xA6, 0x78, 0x0A, + 0x00, 0x02, 0x78, 0x0A, 0x00, 0x02, 0x78, 0x0A, 0x46, 0x1E, 0x89, 0x0E, 0x4D, 0x36, 0x89, 0x0E, + 0x4D, 0x36, 0x89, 0x0E, 0x5D, 0x76, 0x89, 0x0E, 0x4E, 0x3A, 0x89, 0x0D, 0x52, 0x4A, 0x89, 0x0D, + 0x40, 0x06, 0x89, 0x0D, 0x46, 0x1E, 0x89, 0x0D, 0x46, 0x1A, 0x89, 0x0C, 0x50, 0x46, 0x89, 0x0C, + 0x42, 0x0A, 0x89, 0x0C, 0x48, 0x26, 0x89, 0x0C, 0x00, 0x02, 0x88, 0x0A, 0x00, 0x02, 0x88, 0x0A, + 0x49, 0x26, 0x89, 0x0E, 0x49, 0x26, 0x89, 0x0E, 0x49, 0x26, 0x89, 0x0E, 0x58, 0x66, 0x89, 0x0E, + 0x49, 0x26, 0x89, 0x0D, 0x4D, 0x36, 0x89, 0x0D, 0x3F, 0xFE, 0x88, 0x0D, 0x44, 0x16, 0x89, 0x0D, + 0x43, 0x0E, 0x89, 0x0C, 0x4E, 0x3E, 0x89, 0x0C, 0x40, 0x02, 0x89, 0x0C, 0x42, 0x0A, 0x89, 0x0C, + 0x00, 0x02, 0x88, 0x0A, 0x00, 0x02, 0x88, 0x0A, 0x3A, 0xEA, 0x88, 0x10, 0x3C, 0xF6, 0x88, 0x0F, + 0x3D, 0xF6, 0x88, 0x0E, 0x49, 0x26, 0x89, 0x0E, 0x3D, 0xFA, 0x88, 0x0D, 0x3F, 0x02, 0x89, 0x0D, + 0x32, 0xCE, 0x88, 0x0D, 0x38, 0xE6, 0x88, 0x0D, 0x36, 0xDE, 0x88, 0x0C, 0x40, 0x06, 0x89, 0x0C, + 0x34, 0xD6, 0x88, 0x0D, 0x38, 0xE6, 0x88, 0x0D, 0x00, 0x02, 0x88, 0x0A, 0x00, 0x02, 0x88, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x98, 0x66, 0xFA, 0x13, 0x60, 0x86, 0xF9, 0x0E, 0x3F, 0xFE, 0xE8, 0x0A, 0x4A, 0x2A, 0xE9, 0x0A, + 0x4B, 0x2E, 0xE9, 0x0A, 0x5A, 0x6E, 0xE9, 0x0A, 0x4C, 0x32, 0xE9, 0x0A, 0x50, 0x46, 0xE9, 0x0A, + 0x41, 0x06, 0xE9, 0x0A, 0x45, 0x16, 0xE9, 0x0A, 0x44, 0x16, 0xE9, 0x0A, 0x4E, 0x3E, 0xE9, 0x0A, + 0x40, 0x02, 0xE9, 0x0A, 0x3E, 0xFE, 0xE8, 0x0A, 0x00, 0x02, 0xE8, 0x0A, 0x00, 0x02, 0xE8, 0x0A, + 0x00, 0x02, 0x18, 0x0C, 0x00, 0x02, 0x18, 0x0C, 0x00, 0x02, 0x18, 0x0C, 0x00, 0x02, 0x18, 0x0C, + 0x00, 0x02, 0x18, 0x0E, 0x00, 0x02, 0x18, 0x0C, 0x00, 0x02, 0x18, 0x0C, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0xF8, 0x10, 0x00, 0x02, 0xF8, 0x12, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x40, 0xF0, 0x33, 0x21, 0x40, 0xF0, 0x33, 0x42, 0x40, 0xF0, 0x33, 0x63, 0x40, 0xF0, 0x33, + 0x84, 0x40, 0xF0, 0x33, 0xA5, 0x40, 0xF0, 0x33, 0xC6, 0xC0, 0xF1, 0x33, 0xE7, 0xC0, 0xF1, 0x33, + 0x08, 0xC1, 0xF1, 0x33, 0x29, 0xC1, 0xF1, 0x33, 0x4A, 0xC1, 0xF1, 0x33, 0x6B, 0xC1, 0xF1, 0x33, + 0x8C, 0xC1, 0xF1, 0x33, 0xAD, 0xC1, 0xF1, 0x33, 0xCE, 0xC1, 0xF1, 0x33, 0xEF, 0xC1, 0xF1, 0x33, + 0x10, 0xC2, 0xF1, 0x33, 0x31, 0xC2, 0xF1, 0x33, 0x52, 0xC2, 0xF1, 0x33, 0x73, 0xC2, 0xF1, 0x33, + 0x94, 0xC2, 0xF1, 0x73, 0xB5, 0xC2, 0xF1, 0x33, 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, + 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, + 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x38, 0x30, 0x00, 0x34, 0x2F, 0x24, 0x1F, 0x00, 0x00, 0x00, 0x00, + 0x34, 0x2C, 0x24, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x3F, 0xF0, 0x03, 0x00, 0x80, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, + 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, + 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, + 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, + 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, + 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, 0x26, 0x26, 0x26, 0x00, + 0x30, 0x30, 0x30, 0x30, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, + 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 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, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x40, 0x00, 0x40, 0x00, 0x30, 0x00, 0x49, 0x00, 0x30, 0x00, 0xA0, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x49, 0x53, 0x54, 0x56, 0x32, 0x54, 0x41, 0x47, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xDC, 0x00, 0x00, + 0x00, 0xDC, 0x00, 0x80, 0x00, 0x06, 0x00, 0x00, 0x00, 0xE2, 0x00, 0x80, 0x00, 0x0E, 0x00, 0x00, + 0x00, 0xF0, 0x00, 0x80, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x80, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x49, 0x00, 0x30, 0x00, 0xA0, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xC8, 0x57, 0x76, 0x63, 0x98, 0xBC, 0xA4, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x03, 0xDF, 0x07, 0x04, 0x0C, 0x22, 0x00, 0x49, 0x53, 0x54, 0x56, 0x32, 0x54, 0x41, 0x47 +}; + +#endif // __IST30XXC_FW_H__ \ No newline at end of file diff --git a/drivers/input/touchscreen/ist30xxc/firmware/ss_sharklt8_fw.h b/drivers/input/touchscreen/ist30xxc/firmware/ss_sharklt8_fw.h new file mode 100755 index 00000000..0144ecaf --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/firmware/ss_sharklt8_fw.h @@ -0,0 +1,4054 @@ + +#ifndef __IST30XXC_FW_H__ +#define __IST30XXC_FW_H__ + +// Chip ID : 0x0000038C +// FW Ver : 0x02020000 +// Param Ver : 0x00000009 +// FW Download CRC : 0x5729B945 +// Normal CRC : 0x76F4A7A7 + +static unsigned char ist30xxc_fw[] = { + 0x80, 0x00, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0xF8, 0x1C, 0x00, 0x80, 0xFC, 0x00, 0x00, 0x80, + 0x04, 0x01, 0x00, 0x80, 0x7C, 0x1D, 0x00, 0x80, 0x2C, 0x1D, 0x00, 0x80, 0x54, 0x1D, 0x00, 0x80, + 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0xC0, 0x1D, 0x00, 0x80, + 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, 0x0C, 0x01, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0C, 0x10, 0x00, 0x27, 0x08, 0x80, 0x00, 0x80, 0x2C, 0x80, 0x40, 0x7C, 0xAB, 0x0B, 0x00, 0x00, + 0x08, 0x70, 0x00, 0x40, 0x04, 0x61, 0x99, 0x67, 0x10, 0x00, 0x91, 0x67, 0x08, 0x70, 0x0F, 0x00, + 0x11, 0x17, 0x0C, 0x70, 0x0C, 0x16, 0x0C, 0x60, 0x0C, 0x16, 0xC6, 0x76, 0xB2, 0x04, 0xB1, 0x07, + 0x24, 0x74, 0xF2, 0xFC, 0x08, 0x30, 0x00, 0x80, 0x04, 0x70, 0x0C, 0x40, 0x0C, 0x16, 0x0C, 0x50, + 0x1C, 0x16, 0x2C, 0x30, 0xA8, 0x7E, 0x2F, 0x64, 0x07, 0x00, 0xC6, 0x65, 0xB2, 0x07, 0x2F, 0x23, + 0x07, 0x00, 0x30, 0x22, 0x24, 0x74, 0xB1, 0x26, 0xF2, 0xF7, 0x0C, 0x70, 0x1C, 0x16, 0x0C, 0x60, + 0x6C, 0x16, 0xC6, 0x76, 0xB2, 0x04, 0xB1, 0x07, 0x24, 0x74, 0xF2, 0xFC, 0xAB, 0x0F, 0x00, 0x00, + 0xEB, 0xE1, 0x03, 0x00, 0xB9, 0x20, 0x88, 0x27, 0x04, 0x22, 0xF2, 0x0D, 0xB9, 0x20, 0x88, 0x27, + 0x04, 0x23, 0xF2, 0x09, 0xB9, 0x20, 0x88, 0x27, 0x04, 0x24, 0xF2, 0x05, 0xB9, 0x20, 0x88, 0x27, + 0x04, 0x21, 0xF2, 0x01, 0xB9, 0x10, 0x84, 0x27, 0xB9, 0x30, 0x8C, 0x27, 0x08, 0x30, 0x00, 0x50, + 0xB9, 0x03, 0x00, 0x10, 0xD9, 0x40, 0x90, 0x27, 0xD9, 0x80, 0xA0, 0x27, 0xD9, 0xC0, 0xB0, 0x27, + 0x01, 0x40, 0x01, 0x51, 0xC9, 0x40, 0xC0, 0x27, 0x99, 0x20, 0x80, 0x27, 0x08, 0x20, 0x01, 0x00, + 0xB1, 0x23, 0x98, 0x40, 0x80, 0x27, 0x92, 0xFE, 0x09, 0x00, 0x01, 0x00, 0x04, 0x23, 0xB9, 0x23, + 0x00, 0x10, 0xF2, 0x01, 0x48, 0x40, 0xC0, 0x27, 0x11, 0x15, 0x11, 0x04, 0x58, 0xC0, 0xB0, 0x27, + 0x58, 0x80, 0xA0, 0x27, 0x58, 0x40, 0x90, 0x27, 0x48, 0x20, 0x88, 0x27, 0x38, 0x10, 0x84, 0x27, + 0x61, 0x00, 0x00, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x8B, 0x51, 0x00, 0x00, + 0xCB, 0x57, 0x00, 0x00, 0xEB, 0x58, 0x00, 0x00, 0x2B, 0x23, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x6B, 0x5D, 0x00, 0x00, 0x8B, 0x6C, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x4B, 0x5E, 0x00, 0x00, + 0x8B, 0x60, 0x00, 0x00, 0xCB, 0x5F, 0x00, 0x00, 0x4B, 0x61, 0x00, 0x00, 0x0B, 0x62, 0x00, 0x00, + 0x2B, 0x64, 0x00, 0x00, 0xEB, 0x71, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x04, 0x21, 0xB1, 0xF1, 0xAB, 0x64, 0x00, 0x00, 0xAB, 0x6D, 0x00, 0x00, 0x0B, 0x54, + 0x00, 0x00, 0x8B, 0x6C, 0x00, 0x00, 0x04, 0x20, 0x0B, 0x7C, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0x04, 0x2A, 0xD1, 0xC1, 0xEB, 0x4E, 0x00, 0x00, + 0x0B, 0x51, 0x00, 0x00, 0xCB, 0x0B, 0x00, 0x00, 0xAB, 0x0C, 0x00, 0x00, 0x4B, 0x0D, 0x00, 0x00, + 0x6B, 0x34, 0x00, 0x00, 0xCB, 0x97, 0x00, 0x00, 0x8B, 0x0E, 0x00, 0x00, 0xEB, 0x96, 0x00, 0x00, + 0x98, 0xD0, 0x5E, 0x16, 0x92, 0xFC, 0x8B, 0x95, 0x00, 0x00, 0x04, 0x21, 0xAB, 0x64, 0x00, 0x00, + 0xAB, 0x86, 0x00, 0x00, 0xEB, 0x93, 0x00, 0x00, 0x06, 0x2D, 0xAB, 0x64, 0x00, 0x00, 0xCB, 0x94, + 0x00, 0x00, 0x0B, 0x96, 0x00, 0x00, 0xEB, 0x7E, 0x00, 0x00, 0xF2, 0xE9, 0x08, 0x60, 0x00, 0x30, + 0x38, 0x76, 0x28, 0x00, 0xD4, 0x74, 0x92, 0xFD, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0x00, 0x30, + 0x38, 0x76, 0x40, 0x01, 0x23, 0x77, 0xB9, 0x76, 0x40, 0x01, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x30, + 0x38, 0x27, 0x40, 0x01, 0xF7, 0x2F, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, 0x6B, 0x13, 0x00, 0x00, + 0x04, 0x70, 0xC6, 0x27, 0x82, 0x0D, 0x6B, 0x12, 0x00, 0x00, 0x08, 0x70, 0x00, 0x30, 0x08, 0x60, + 0x00, 0x80, 0xB9, 0x67, 0x40, 0x01, 0x38, 0x77, 0x3C, 0x01, 0xB9, 0x70, 0x20, 0x16, 0x30, 0xF1, + 0x06, 0x27, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, + 0x06, 0xE2, 0x77, 0xE8, 0xCC, 0xE0, 0x15, 0x00, 0x0C, 0xD0, 0xFF, 0xFF, 0xB1, 0xB1, 0x56, 0xD2, + 0x82, 0x49, 0xCC, 0xE0, 0x15, 0x00, 0xD2, 0x1B, 0xCC, 0xE0, 0x10, 0x00, 0x82, 0x37, 0xCC, 0xE0, + 0x10, 0x00, 0xD2, 0x08, 0xC4, 0xE1, 0x82, 0x2F, 0xC4, 0xE2, 0x92, 0x48, 0x99, 0xD0, 0x5E, 0x16, + 0xF2, 0x61, 0xCC, 0xE0, 0x13, 0x00, 0x82, 0x2D, 0xCC, 0xE0, 0x13, 0x00, 0xD2, 0x2D, 0xCC, 0xE0, + 0x12, 0x00, 0x92, 0x3C, 0x99, 0xD0, 0x5C, 0x16, 0xFA, 0x8F, 0x00, 0x00, 0xCC, 0xE0, 0x22, 0x00, + 0x82, 0x2C, 0xCC, 0xE0, 0x22, 0x00, 0xD2, 0x0B, 0xCC, 0xE0, 0x20, 0x00, 0x82, 0x20, 0xCC, 0xE0, + 0x21, 0x00, 0x92, 0x2C, 0xA9, 0xD0, 0x54, 0x16, 0xFA, 0x7F, 0x00, 0x00, 0xCC, 0xE0, 0x80, 0x00, + 0x82, 0x22, 0xCC, 0xE0, 0x81, 0x00, 0x82, 0x1C, 0xCC, 0xE0, 0x23, 0x00, 0x92, 0x1F, 0xA9, 0xD0, + 0x4E, 0x16, 0xF2, 0x72, 0x99, 0xE0, 0x5F, 0x16, 0xF2, 0x6F, 0x99, 0xD0, 0x5D, 0x16, 0xF2, 0x6C, + 0x99, 0xD0, 0x5B, 0x16, 0xF2, 0x69, 0x99, 0xD0, 0x5A, 0x16, 0xF2, 0x66, 0xA9, 0xD0, 0x52, 0x16, + 0xF2, 0x63, 0x99, 0xD0, 0x59, 0x16, 0xF2, 0x60, 0xA9, 0xD0, 0x50, 0x16, 0xF2, 0x5D, 0x99, 0xD0, + 0x57, 0x16, 0xF2, 0x5A, 0x99, 0xD0, 0x56, 0x16, 0xF2, 0x55, 0xCC, 0xE0, 0x32, 0x00, 0xD2, 0x16, + 0xCC, 0xE0, 0x31, 0x00, 0xB2, 0x37, 0xC4, 0xE2, 0x82, 0x15, 0xCC, 0xE0, 0x30, 0x00, 0x92, 0x4C, + 0x04, 0x20, 0x6B, 0xE6, 0x00, 0x00, 0x0C, 0xB0, 0x40, 0x01, 0x08, 0xE0, 0x00, 0x30, 0x08, 0xD0, + 0x30, 0x00, 0x06, 0xCE, 0x26, 0xBE, 0x24, 0xD1, 0xF2, 0x3A, 0xCC, 0xE0, 0x80, 0x00, 0x82, 0x3A, + 0xF2, 0x3B, 0xCB, 0xD7, 0x00, 0x00, 0xC4, 0xD0, 0x82, 0x0E, 0x08, 0x50, 0x00, 0x40, 0x38, 0x75, + 0x54, 0x10, 0x08, 0x40, 0x00, 0x80, 0x66, 0x74, 0xB9, 0x70, 0x1C, 0x16, 0x14, 0x71, 0xB9, 0x75, + 0x54, 0x10, 0xF2, 0x2A, 0xB8, 0x50, 0x1C, 0x16, 0x32, 0x0A, 0x08, 0x70, 0xFF, 0x7F, 0x2C, 0x70, + 0xFF, 0xFF, 0x56, 0x75, 0x08, 0x50, 0x00, 0x40, 0xB9, 0x75, 0x54, 0x10, 0xB9, 0x00, 0x1C, 0x16, + 0xF2, 0x1B, 0x04, 0x20, 0x6B, 0xE6, 0x00, 0x00, 0x06, 0x2E, 0x0B, 0x17, 0x01, 0x00, 0xF2, 0x14, + 0xB8, 0x7E, 0x40, 0x01, 0x32, 0xFE, 0x38, 0x7E, 0x28, 0x00, 0xD4, 0x74, 0x92, 0xFD, 0xB1, 0x6B, + 0x38, 0x7C, 0x3C, 0x01, 0xC6, 0x7D, 0x92, 0xF5, 0x04, 0x74, 0xF1, 0x70, 0x08, 0x60, 0x00, 0x80, + 0xF2, 0xF0, 0x4B, 0x6F, 0x00, 0x00, 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x08, 0xE0, 0x00, 0x30, 0x0C, 0xD0, + 0x00, 0x01, 0x26, 0xDE, 0x6B, 0x12, 0x00, 0x00, 0x06, 0x2D, 0x0C, 0x30, 0x40, 0x00, 0x0C, 0xF0, + 0x54, 0x01, 0xF1, 0xF0, 0x38, 0x7E, 0x28, 0x00, 0xD4, 0x72, 0x82, 0x05, 0x04, 0x72, 0xB9, 0x7E, + 0x28, 0x00, 0xF2, 0xF1, 0x38, 0x7E, 0x40, 0x01, 0xB9, 0x7E, 0x40, 0x01, 0x50, 0xC1, 0x2C, 0x10, + 0x10, 0x00, 0xE1, 0xF0, 0x34, 0x18, 0x0C, 0x20, 0x00, 0x00, 0x0C, 0x30, 0x80, 0x00, 0xC1, 0xE1, + 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x06, 0x2E, 0x0C, 0x20, 0x00, 0x27, 0x0C, 0x30, 0x80, 0x00, + 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x00, 0xFA, 0x38, 0x67, + 0xF8, 0x01, 0x0C, 0xE0, 0x00, 0x27, 0xB9, 0x60, 0x00, 0x00, 0x38, 0x67, 0xFC, 0x01, 0xB9, 0x60, + 0x04, 0x00, 0x08, 0x60, 0x00, 0x80, 0x38, 0x66, 0x04, 0xDC, 0xB9, 0x60, 0x08, 0x00, 0x38, 0x67, + 0xF0, 0x01, 0xB9, 0x60, 0x0C, 0x00, 0x38, 0x67, 0xF4, 0x01, 0x38, 0x77, 0xCC, 0x01, 0xB9, 0x60, + 0x10, 0x00, 0xB9, 0x70, 0x1C, 0x00, 0x08, 0x70, 0x00, 0x40, 0x38, 0x77, 0x10, 0x20, 0xB9, 0xE0, + 0x70, 0x00, 0x08, 0x60, 0x00, 0x80, 0xF7, 0x70, 0xB9, 0x70, 0x20, 0x00, 0x08, 0x70, 0xD0, 0x02, + 0x2C, 0x70, 0x00, 0x05, 0xB9, 0x70, 0x40, 0x00, 0x08, 0x70, 0x0D, 0x00, 0x2C, 0x70, 0x13, 0x00, + 0xB9, 0x70, 0x44, 0x00, 0x08, 0x70, 0x02, 0x01, 0x2C, 0x70, 0x12, 0x0B, 0xB9, 0x70, 0x48, 0x00, + 0x08, 0x70, 0x12, 0x0C, 0x2C, 0x70, 0xFF, 0xFF, 0xB9, 0x70, 0x4C, 0x00, 0x14, 0x71, 0xB9, 0x70, + 0x50, 0x00, 0x08, 0x70, 0x0B, 0x00, 0x2C, 0x70, 0x12, 0x00, 0xB9, 0x70, 0x54, 0x00, 0x08, 0x70, + 0xFF, 0x00, 0x2C, 0x70, 0x00, 0xFF, 0xB9, 0x70, 0x58, 0x00, 0x04, 0x72, 0xB9, 0x70, 0x60, 0x00, + 0x08, 0x70, 0x08, 0x07, 0x2C, 0x70, 0x08, 0x07, 0x2C, 0x60, 0x88, 0xDE, 0xB9, 0x70, 0x64, 0x00, + 0x28, 0x76, 0x2C, 0x00, 0x28, 0x66, 0x26, 0x00, 0xB9, 0x00, 0x5C, 0x00, 0x57, 0x78, 0x66, 0x76, + 0xB9, 0x70, 0x68, 0x00, 0x08, 0x70, 0x00, 0x30, 0x2C, 0x70, 0x00, 0x49, 0xB9, 0x70, 0x74, 0x00, + 0x0C, 0x70, 0x00, 0x10, 0xB9, 0x70, 0x78, 0x00, 0x2B, 0x21, 0x00, 0x00, 0x40, 0xE1, 0x24, 0x18, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x0C, 0xE0, 0x00, 0x10, 0x18, 0x6E, + 0xEE, 0x05, 0x04, 0x70, 0xC6, 0x67, 0x06, 0xD2, 0x82, 0x19, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, + 0x38, 0x7E, 0xD4, 0x05, 0x0C, 0x50, 0xEC, 0x05, 0xB1, 0x7D, 0x0C, 0x70, 0xD8, 0x15, 0x26, 0x5E, + 0x04, 0x61, 0xB0, 0x37, 0x82, 0x06, 0x06, 0x46, 0x57, 0x41, 0x26, 0x4D, 0xB1, 0x34, 0x24, 0x61, + 0x24, 0x74, 0xC6, 0x75, 0x92, 0xF7, 0x18, 0x7E, 0xEE, 0x05, 0x50, 0xC1, 0x06, 0x27, 0x2C, 0x10, + 0x10, 0x00, 0xE1, 0xF0, 0x04, 0x70, 0x06, 0x67, 0x3F, 0x57, 0x03, 0x00, 0xC4, 0x50, 0x02, 0x08, + 0x2F, 0x57, 0x02, 0x00, 0x10, 0x55, 0x24, 0x71, 0x26, 0x65, 0x13, 0x66, 0xF2, 0xF6, 0x06, 0x26, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x30, 0xE2, 0x08, 0x70, 0xFF, 0x00, + 0x2C, 0x70, 0xFF, 0xFF, 0x56, 0xE7, 0x6C, 0xE0, 0x00, 0x0C, 0xB1, 0xE2, 0x57, 0x31, 0x06, 0xD2, + 0x2B, 0x2E, 0x00, 0x00, 0x57, 0x2C, 0x66, 0x2E, 0xB1, 0x2D, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x54, 0x00, 0xD9, 0xC1, 0x44, 0x00, 0x8B, 0x43, 0x00, 0x00, + 0x06, 0x21, 0x0C, 0x30, 0x40, 0x00, 0xAB, 0x2B, 0x00, 0x00, 0x86, 0xD2, 0x82, 0x29, 0x06, 0x21, + 0x06, 0x3D, 0x2B, 0x2F, 0x00, 0x00, 0x98, 0x70, 0x58, 0x16, 0x82, 0x0A, 0x0C, 0x20, 0x40, 0x00, + 0x26, 0x21, 0x0C, 0x30, 0x00, 0x27, 0x99, 0x01, 0x40, 0x00, 0x4B, 0x48, 0x00, 0x00, 0x08, 0xE0, + 0x00, 0x30, 0x0C, 0xC0, 0x04, 0x01, 0x26, 0xCE, 0x6B, 0x12, 0x00, 0x00, 0x06, 0x2C, 0x06, 0x31, + 0x0C, 0x40, 0x2C, 0x00, 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x38, 0x7E, 0x28, 0x00, 0xD4, 0x72, + 0x82, 0x05, 0x04, 0x72, 0xB9, 0x7E, 0x28, 0x00, 0xF2, 0xF0, 0xEB, 0x12, 0x00, 0x00, 0x06, 0x2D, + 0x58, 0xC1, 0x44, 0x00, 0x2C, 0x10, 0x54, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x50, 0x00, 0x00, + 0x0C, 0x70, 0x78, 0x00, 0x34, 0x54, 0x04, 0x60, 0x30, 0x47, 0x34, 0x74, 0xC6, 0x75, 0x26, 0x64, + 0x92, 0xFC, 0xB9, 0x60, 0x7C, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x30, 0x00, 0xD9, 0x81, 0x10, 0x00, + 0xD9, 0xC1, 0x20, 0x00, 0x30, 0xC2, 0x1C, 0x20, 0x20, 0x00, 0x26, 0x2C, 0x06, 0xE3, 0x06, 0x32, + 0x06, 0xA4, 0x06, 0x95, 0xAB, 0x9A, 0x00, 0x00, 0x30, 0xBE, 0x06, 0x72, 0x0C, 0x80, 0xD5, 0x00, + 0x04, 0xD0, 0x3F, 0x28, 0x0B, 0x00, 0x06, 0x32, 0xB9, 0x71, 0x04, 0x00, 0xAB, 0x9A, 0x00, 0x00, + 0x38, 0x71, 0x04, 0x00, 0x26, 0x27, 0xCC, 0x20, 0xC8, 0x04, 0xD2, 0x0D, 0x0C, 0x70, 0x20, 0x00, + 0xB1, 0x7A, 0x26, 0xDD, 0xB1, 0x89, 0x28, 0x6D, 0x14, 0x16, 0x30, 0x7E, 0x26, 0x76, 0x28, 0x6D, + 0x0C, 0x16, 0xF2, 0x30, 0x24, 0xD1, 0xC4, 0xD4, 0x2C, 0x80, 0x1D, 0x01, 0x92, 0xE3, 0x1C, 0x20, + 0xB0, 0x02, 0x26, 0x2C, 0x06, 0x32, 0xAB, 0x9A, 0x00, 0x00, 0x06, 0x72, 0x0C, 0x80, 0x46, 0x00, + 0x04, 0xD0, 0x3F, 0x28, 0x0B, 0x00, 0x06, 0x32, 0xB9, 0x71, 0x04, 0x00, 0xAB, 0x9A, 0x00, 0x00, + 0x38, 0x71, 0x04, 0x00, 0x26, 0x27, 0xCC, 0x20, 0xC8, 0x04, 0xD2, 0x18, 0x0C, 0x70, 0xB0, 0x02, + 0xB1, 0x7A, 0x08, 0x70, 0x00, 0x80, 0x26, 0xDD, 0x2C, 0x70, 0x4C, 0x7C, 0x26, 0x7D, 0xB1, 0x89, + 0x20, 0x67, 0x30, 0x7E, 0x26, 0x76, 0x08, 0x60, 0x00, 0x80, 0x2C, 0x60, 0x40, 0x7C, 0x26, 0xD6, + 0x20, 0x6D, 0x36, 0x76, 0xB1, 0x7E, 0x04, 0x21, 0xF2, 0x7C, 0x24, 0xD1, 0xC4, 0xD5, 0x2C, 0x80, + 0x1D, 0x01, 0x92, 0xD8, 0x04, 0x80, 0x08, 0x60, 0x00, 0x80, 0x2C, 0x60, 0x64, 0x7C, 0x26, 0x68, + 0x20, 0x66, 0x06, 0x2C, 0x36, 0x26, 0x06, 0x32, 0xB1, 0x61, 0xAB, 0x9A, 0x00, 0x00, 0x06, 0x42, + 0x04, 0xD0, 0x08, 0x60, 0x00, 0x80, 0x2F, 0x5D, 0x0D, 0x00, 0x2C, 0x60, 0x40, 0x7C, 0x26, 0x65, + 0x20, 0x66, 0xB9, 0x41, 0x04, 0x00, 0xB9, 0x51, 0x0C, 0x00, 0x3F, 0x26, 0x0B, 0x00, 0x06, 0x32, + 0xB9, 0x61, 0x08, 0x00, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x41, 0x04, 0x00, 0x38, 0x51, 0x0C, 0x00, + 0x38, 0x61, 0x08, 0x00, 0x26, 0x24, 0xCC, 0x20, 0xC8, 0x04, 0xD2, 0x0A, 0x30, 0x71, 0xB1, 0x7A, + 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x4C, 0x7C, 0x26, 0x57, 0x20, 0x75, 0xF2, 0x29, 0x24, 0xD1, + 0xC4, 0xD5, 0x92, 0xD8, 0x24, 0x82, 0xC4, 0x8A, 0x92, 0xC7, 0x04, 0x80, 0xF2, 0x27, 0x24, 0xD1, + 0xC4, 0xD4, 0x82, 0x33, 0x2F, 0x5D, 0x0D, 0x00, 0x28, 0x65, 0x0C, 0x16, 0xB9, 0x41, 0x04, 0x00, + 0xB9, 0x51, 0x0C, 0x00, 0x3F, 0x26, 0x0B, 0x00, 0x06, 0x32, 0xB9, 0x61, 0x08, 0x00, 0xAB, 0x9A, + 0x00, 0x00, 0x38, 0x41, 0x04, 0x00, 0x38, 0x51, 0x0C, 0x00, 0x38, 0x61, 0x08, 0x00, 0x26, 0x24, + 0xCC, 0x20, 0xC8, 0x04, 0xD2, 0xE5, 0x30, 0x71, 0xB1, 0x7A, 0x28, 0x75, 0x14, 0x16, 0xB1, 0x79, + 0x30, 0x5E, 0x3F, 0x66, 0x05, 0x00, 0x26, 0x76, 0xF2, 0x96, 0x08, 0x60, 0x00, 0x80, 0x2C, 0x60, + 0x58, 0x7C, 0x26, 0x68, 0x20, 0x66, 0x06, 0x2C, 0x36, 0x26, 0x06, 0x32, 0xB1, 0x61, 0xAB, 0x9A, + 0x00, 0x00, 0x06, 0x42, 0x04, 0xD0, 0xF2, 0xCF, 0x24, 0x82, 0xC4, 0x8A, 0x92, 0xEF, 0x14, 0x21, + 0x58, 0xC1, 0x20, 0x00, 0x58, 0x81, 0x10, 0x00, 0x2C, 0x10, 0x30, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x18, 0x70, 0x56, 0x16, 0x3C, 0x10, 0x20, 0x00, 0xCC, 0x70, 0x80, 0x00, 0xD9, 0xC1, 0x10, 0x00, + 0x92, 0x3F, 0x0C, 0xD0, 0x00, 0x10, 0x18, 0x7D, 0xEE, 0x05, 0xC4, 0x72, 0x92, 0x39, 0x38, 0xCD, + 0xD8, 0x05, 0x0C, 0x70, 0xFF, 0x0F, 0x56, 0x7C, 0xB9, 0x71, 0x08, 0x00, 0x06, 0x7C, 0x77, 0x76, + 0x04, 0x2C, 0x04, 0x38, 0x04, 0x44, 0x5C, 0x70, 0xFF, 0x0F, 0x26, 0x21, 0x26, 0x31, 0x26, 0x41, + 0x06, 0x51, 0xB9, 0x71, 0x0C, 0x00, 0x4B, 0x35, 0x00, 0x00, 0x14, 0x71, 0xC6, 0x27, 0x82, 0x20, + 0x38, 0x61, 0x0C, 0x00, 0x38, 0x71, 0x04, 0x00, 0x30, 0x21, 0x26, 0x76, 0xF7, 0x70, 0x08, 0xE0, + 0x00, 0xFF, 0x5C, 0x70, 0xFF, 0x0F, 0x2C, 0xE0, 0xFF, 0x0F, 0x57, 0x76, 0x56, 0xEC, 0x66, 0xE7, + 0x38, 0x71, 0x08, 0x00, 0x26, 0x22, 0x26, 0x27, 0x04, 0x33, 0x0B, 0x9E, 0x00, 0x00, 0x1C, 0x70, + 0x00, 0x10, 0x5C, 0x20, 0xFF, 0x0F, 0x56, 0xE7, 0x66, 0xE2, 0xB9, 0xED, 0xD8, 0x05, 0x58, 0xC1, + 0x10, 0x00, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x20, 0x00, 0xD1, 0x81, 0xD9, 0xC1, + 0x10, 0x00, 0x0C, 0x70, 0x00, 0x10, 0x98, 0xE7, 0xA1, 0x05, 0x06, 0xB2, 0x06, 0xD3, 0x06, 0xA7, + 0x92, 0x30, 0x0C, 0xC0, 0xB5, 0x13, 0x06, 0x97, 0x0C, 0x80, 0x80, 0x0B, 0x18, 0x7A, 0xBF, 0x03, + 0xC6, 0x7E, 0xC2, 0x03, 0xC4, 0xE2, 0x92, 0x03, 0x91, 0xEB, 0xF2, 0x32, 0x60, 0x7C, 0x0C, 0x30, + 0x64, 0x00, 0x34, 0x71, 0x57, 0x72, 0x26, 0x79, 0x18, 0x67, 0x19, 0x03, 0x18, 0x77, 0x18, 0x03, + 0x2F, 0x56, 0x06, 0x00, 0x26, 0x56, 0x57, 0x51, 0x26, 0x65, 0x26, 0x67, 0x13, 0x66, 0x26, 0x66, + 0x26, 0x68, 0x70, 0x76, 0x24, 0xC1, 0x06, 0x27, 0xD7, 0x21, 0xD7, 0x72, 0x26, 0x27, 0x0B, 0x9E, + 0x00, 0x00, 0x2C, 0x20, 0x90, 0x01, 0x24, 0xE1, 0xB1, 0x2D, 0x13, 0xEE, 0x24, 0xD4, 0xF2, 0xD7, + 0x28, 0x77, 0x0C, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x06, 0x27, 0xD7, 0x21, 0xD7, 0x72, 0x26, 0x27, + 0x0B, 0x9E, 0x00, 0x00, 0x04, 0x71, 0x91, 0x7B, 0x2C, 0x20, 0x90, 0x01, 0xB1, 0x2D, 0x58, 0xC1, + 0x10, 0x00, 0x50, 0x81, 0x04, 0x20, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x70, + 0x64, 0x00, 0xB1, 0x71, 0x30, 0x71, 0x14, 0x61, 0xC4, 0x70, 0x26, 0x67, 0xB1, 0x61, 0x92, 0xFB, + 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x70, 0x06, 0x01, 0xB1, 0x71, 0x30, 0x71, 0x14, 0x61, + 0xC4, 0x70, 0x26, 0x67, 0xB1, 0x61, 0x92, 0xFB, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x1C, 0x26, 0x22, + 0xC9, 0xE1, 0x04, 0x00, 0x06, 0xE2, 0xB1, 0x01, 0x57, 0xE1, 0xB1, 0x01, 0x26, 0xE2, 0x30, 0x71, + 0xC6, 0x7E, 0xB2, 0x07, 0x2B, 0x4E, 0x00, 0x00, 0x30, 0x71, 0x24, 0x71, 0xB1, 0x71, 0xF2, 0xF8, + 0x48, 0xE1, 0x04, 0x00, 0x24, 0x1C, 0xE1, 0xF0, 0xF7, 0x40, 0x04, 0x70, 0xC6, 0x74, 0x82, 0x07, + 0x2F, 0x67, 0x07, 0x00, 0x26, 0x62, 0xA1, 0x36, 0x24, 0x71, 0xF2, 0xF9, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x04, 0x20, 0xB1, 0xF1, 0x6B, 0xD8, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x08, 0x60, 0x00, 0x00, 0x08, 0x70, 0x00, 0x00, 0x2C, 0x60, 0x80, 0x00, 0x2C, 0x70, 0xCC, 0x01, + 0x36, 0x76, 0xC4, 0x70, 0x34, 0x14, 0xB1, 0xF1, 0x32, 0x02, 0x24, 0x73, 0x06, 0x47, 0x08, 0x50, + 0x00, 0x80, 0x67, 0x41, 0x04, 0x70, 0x2C, 0x50, 0x70, 0x7C, 0x14, 0x21, 0xC6, 0x74, 0x04, 0x34, + 0x26, 0x36, 0x32, 0x05, 0x30, 0xF5, 0x24, 0x54, 0xB1, 0xF6, 0xF2, 0x02, 0xB1, 0x26, 0x24, 0x71, + 0xCC, 0x70, 0x80, 0x00, 0x82, 0x03, 0x06, 0x63, 0xF2, 0xF2, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x28, 0x60, 0x52, 0x16, 0xCC, 0x60, 0xFF, 0xFF, 0x92, 0x05, 0x0C, 0x60, 0xD4, 0x30, 0xA9, 0x60, + 0x52, 0x16, 0x28, 0x60, 0x54, 0x16, 0xCC, 0x60, 0xFF, 0xFF, 0x92, 0x05, 0x0C, 0x60, 0xD4, 0x30, + 0xA9, 0x60, 0x54, 0x16, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x40, 0x00, 0x80, 0x34, 0x14, 0x08, 0x70, + 0x00, 0x80, 0x2C, 0x40, 0x0C, 0xDC, 0xB1, 0xF1, 0x2C, 0x70, 0x1E, 0xDC, 0x0C, 0x50, 0x4C, 0x16, + 0x24, 0x4D, 0x14, 0xF1, 0x10, 0x67, 0xCC, 0x60, 0xFF, 0x00, 0x82, 0x0E, 0x18, 0x27, 0x05, 0x00, + 0xCC, 0x20, 0xFF, 0x00, 0x82, 0x09, 0x2F, 0x36, 0x06, 0x00, 0x26, 0x36, 0x57, 0x31, 0x26, 0x63, + 0x26, 0x26, 0xA1, 0x25, 0xF2, 0x02, 0xA1, 0xF5, 0x34, 0x71, 0xC6, 0x74, 0x34, 0x52, 0x92, 0xEB, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x20, 0x00, 0x10, 0x04, 0x30, + 0x0C, 0x40, 0x0C, 0x06, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x4B, 0x55, 0x00, 0x00, + 0x0B, 0x2E, 0x01, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x60, 0xF4, 0x01, + 0xB9, 0x60, 0x34, 0x16, 0x14, 0x61, 0x99, 0x00, 0x68, 0x16, 0x99, 0x60, 0x67, 0x16, 0xB9, 0x00, + 0x30, 0x16, 0xB9, 0x00, 0x2C, 0x16, 0x99, 0x00, 0x66, 0x16, 0xB9, 0x00, 0x28, 0x16, 0xB9, 0x00, + 0x24, 0x16, 0x04, 0x63, 0x99, 0x00, 0x65, 0x16, 0x99, 0x60, 0x64, 0x16, 0x99, 0x00, 0x5F, 0x16, + 0x99, 0x00, 0x5E, 0x16, 0x04, 0x71, 0x99, 0x70, 0x5D, 0x16, 0x99, 0x00, 0x5C, 0x16, 0x99, 0x70, + 0x5B, 0x16, 0x99, 0x00, 0x5A, 0x16, 0x14, 0x61, 0xA9, 0x60, 0x54, 0x16, 0xA9, 0x60, 0x52, 0x16, + 0x08, 0x60, 0x00, 0x80, 0x2C, 0x60, 0x00, 0xDC, 0x18, 0x46, 0x0A, 0x00, 0x99, 0x40, 0x59, 0x16, + 0x18, 0x56, 0x08, 0x00, 0xA9, 0x50, 0x50, 0x16, 0xA9, 0x00, 0x4E, 0x16, 0x99, 0x00, 0x58, 0x16, + 0x99, 0x00, 0x57, 0x16, 0x99, 0x00, 0x56, 0x16, 0x99, 0x70, 0x63, 0x16, 0x99, 0x00, 0x62, 0x16, + 0x99, 0x70, 0x61, 0x16, 0x99, 0x00, 0x60, 0x16, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, + 0x4B, 0xBF, 0x00, 0x00, 0x0C, 0x60, 0x15, 0x00, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x04, 0x70, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0xAB, 0xE1, 0x00, 0x00, + 0x04, 0x31, 0x0C, 0x20, 0x20, 0x00, 0x4B, 0xE0, 0x00, 0x00, 0x0C, 0x20, 0xFF, 0x00, 0x0B, 0xDE, + 0x00, 0x00, 0x04, 0x24, 0x04, 0x31, 0xCB, 0xDA, 0x00, 0x00, 0x04, 0x21, 0xEB, 0xD6, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x2B, 0xD9, 0x00, 0x00, + 0x04, 0x20, 0x4B, 0xE5, 0x00, 0x00, 0x2B, 0xD6, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x34, 0x14, 0x04, 0x21, 0xB1, 0xF1, 0xEB, 0xE2, 0x00, 0x00, 0x0C, 0x20, 0x10, 0x00, 0x6B, 0xE2, + 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, 0x6B, 0xE3, 0x00, 0x00, + 0x04, 0x25, 0x04, 0x31, 0x0B, 0xE7, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x0C, 0x20, 0x00, 0x01, 0xB1, 0xF1, 0x2B, 0xDC, 0x00, 0x00, 0x0C, 0x20, 0x80, 0x00, + 0x2B, 0xDC, 0x00, 0x00, 0x04, 0x20, 0x06, 0x52, 0x0C, 0x30, 0x27, 0x00, 0x0C, 0x40, 0xFF, 0xFF, + 0x0C, 0x60, 0x01, 0x02, 0x8B, 0xEF, 0x00, 0x00, 0x04, 0x21, 0x0C, 0x30, 0x8F, 0x01, 0x0C, 0x40, + 0xFF, 0xFF, 0x04, 0x50, 0x0C, 0x60, 0x01, 0x02, 0x8B, 0xEF, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x04, 0x21, 0xB1, 0xF1, 0x6B, 0xE6, 0x00, 0x00, 0x30, 0xF1, + 0x24, 0x14, 0xE1, 0xF0, 0xC4, 0x20, 0x34, 0x14, 0xB1, 0xF1, 0x82, 0x09, 0x0C, 0x20, 0x00, 0x60, + 0x2B, 0xDC, 0x00, 0x00, 0x04, 0x21, 0x6B, 0xB8, 0x00, 0x00, 0xF2, 0x07, 0x6B, 0xB8, 0x00, 0x00, + 0x0C, 0x20, 0x00, 0x60, 0x0B, 0xDD, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x08, 0x60, 0x00, 0x40, 0x38, 0xE6, 0x70, 0x60, 0x06, 0x72, + 0x23, 0xEE, 0xCC, 0xE0, 0x00, 0xC9, 0x06, 0xC3, 0xC2, 0x05, 0x08, 0x60, 0x04, 0x00, 0x66, 0xE6, + 0xF7, 0xE1, 0x06, 0x37, 0x06, 0x2E, 0xAB, 0x9A, 0x00, 0x00, 0x0C, 0x30, 0xA0, 0x0F, 0x0B, 0x9E, + 0x00, 0x00, 0x24, 0x25, 0x04, 0x3A, 0x0B, 0x9E, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0x38, 0x77, + 0xCC, 0x71, 0x06, 0xD2, 0x77, 0x7C, 0x24, 0x72, 0xC6, 0x27, 0xB2, 0x02, 0x06, 0xD7, 0xC4, 0xC0, + 0x82, 0x18, 0x06, 0x7E, 0xD7, 0x71, 0x2F, 0x2E, 0x0E, 0x00, 0x26, 0x27, 0x06, 0x3D, 0x0B, 0x9E, + 0x00, 0x00, 0x3C, 0xE0, 0xB0, 0x9A, 0xCC, 0xE0, 0x20, 0x03, 0x04, 0x71, 0xD2, 0x02, 0x04, 0x70, + 0xD7, 0x7F, 0x66, 0x72, 0x0C, 0x60, 0x00, 0x00, 0xB9, 0x76, 0x3C, 0x00, 0x6B, 0x34, 0x00, 0x00, + 0x06, 0x2D, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x70, 0x40, 0x16, + 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x38, 0xE7, 0x04, 0x00, 0x18, 0x27, 0x05, 0x00, 0x04, 0x30, + 0x0C, 0xC0, 0xFF, 0x00, 0x0B, 0x66, 0x00, 0x00, 0x56, 0xCE, 0x06, 0xD2, 0x04, 0x30, 0x06, 0x2C, + 0x0B, 0x66, 0x00, 0x00, 0x08, 0x70, 0xFF, 0xFF, 0x56, 0x7E, 0x57, 0xD4, 0x66, 0x72, 0x66, 0x7D, + 0x08, 0x60, 0x00, 0x40, 0xB9, 0x76, 0x6C, 0x72, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, + 0x38, 0x70, 0x40, 0x16, 0x34, 0x14, 0xB1, 0xF1, 0x18, 0x27, 0x08, 0x00, 0x04, 0x31, 0x0B, 0x66, + 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x18, 0x70, 0x6B, 0x6A, 0x00, 0x00, 0x30, 0xF1, + 0x24, 0x14, 0xE1, 0xF0, 0x28, 0x20, 0x50, 0x16, 0x34, 0x18, 0xD4, 0x21, 0xC1, 0xE1, 0x82, 0x0A, + 0x04, 0x21, 0x0B, 0x16, 0x03, 0x00, 0x18, 0x60, 0x64, 0x16, 0x1C, 0x70, 0x80, 0x00, 0x66, 0x76, + 0xF2, 0x07, 0x0B, 0x16, 0x03, 0x00, 0x18, 0x70, 0x64, 0x16, 0x5C, 0x70, 0x7F, 0x00, 0x99, 0x70, + 0x64, 0x16, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x34, 0x14, 0x04, 0x21, 0xB1, 0xF1, 0x4B, 0xE5, + 0x00, 0x00, 0x98, 0x70, 0x56, 0x16, 0x82, 0x1F, 0x5C, 0x70, 0xF0, 0x00, 0xCC, 0x70, 0x80, 0x00, + 0x82, 0x08, 0xCC, 0x70, 0xC0, 0x00, 0x92, 0x17, 0x04, 0x61, 0x99, 0x60, 0x58, 0x16, 0xF2, 0x13, + 0x04, 0x71, 0x99, 0x70, 0x58, 0x16, 0x99, 0x70, 0x5A, 0x16, 0x99, 0x00, 0x5B, 0x16, 0x04, 0x20, + 0x99, 0x00, 0x57, 0x16, 0x0B, 0x16, 0x03, 0x00, 0x18, 0x60, 0x64, 0x16, 0x5C, 0x60, 0x7F, 0x00, + 0x99, 0x60, 0x64, 0x16, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, + 0x08, 0x40, 0x00, 0x00, 0x2C, 0x20, 0x80, 0x02, 0x08, 0x30, 0x00, 0x80, 0x2C, 0x40, 0x6C, 0x03, + 0x3C, 0x10, 0x10, 0x00, 0x36, 0x42, 0x2C, 0x30, 0xBC, 0x7D, 0xD1, 0xC1, 0x0C, 0xF0, 0x04, 0x01, + 0xF1, 0xF0, 0x0C, 0x30, 0x00, 0xFC, 0x04, 0x20, 0x0C, 0xF0, 0x10, 0x03, 0xF1, 0xF0, 0x0C, 0xE0, + 0x00, 0x00, 0x08, 0x30, 0x00, 0x80, 0xB9, 0x2E, 0x18, 0x00, 0x2C, 0x30, 0x00, 0xF0, 0x04, 0x20, + 0x0C, 0xF0, 0x10, 0x03, 0xF1, 0xF0, 0x08, 0x70, 0x00, 0x80, 0x38, 0xC7, 0xD0, 0xFB, 0xB9, 0x2E, + 0x14, 0x00, 0x06, 0xD2, 0xCC, 0xC0, 0xFF, 0x00, 0x82, 0x1B, 0xC6, 0xC2, 0x82, 0x19, 0x6B, 0x12, + 0x00, 0x00, 0x08, 0x60, 0x1C, 0xE1, 0x08, 0x70, 0x00, 0x30, 0x2C, 0x60, 0x01, 0xE9, 0xB9, 0x67, + 0x04, 0x01, 0xB9, 0xC7, 0x08, 0x01, 0xB9, 0xD7, 0x0C, 0x01, 0x38, 0x6E, 0x18, 0x00, 0xB9, 0x67, + 0x10, 0x01, 0x0B, 0xE6, 0x00, 0x00, 0x04, 0x2A, 0xEB, 0x4E, 0x00, 0x00, 0xF2, 0xFB, 0x50, 0xC1, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x60, 0x61, 0x16, 0x34, 0x18, 0xC1, 0xE1, + 0x82, 0x09, 0x34, 0x61, 0x93, 0x66, 0x99, 0x60, 0x61, 0x16, 0x92, 0x3B, 0x99, 0x00, 0x63, 0x16, + 0xF2, 0x38, 0xDC, 0x20, 0x80, 0x00, 0x0C, 0xE0, 0x3C, 0x00, 0x82, 0x03, 0x0C, 0xE0, 0x30, 0x00, + 0xEB, 0xBD, 0x00, 0x00, 0xC6, 0x2E, 0xA2, 0x0A, 0x38, 0x50, 0x2C, 0x16, 0x18, 0x60, 0x62, 0x16, + 0x34, 0x53, 0xC6, 0x65, 0xB2, 0x17, 0x24, 0x61, 0xF2, 0x13, 0x98, 0x60, 0x62, 0x16, 0x82, 0x12, + 0x98, 0x50, 0x68, 0x16, 0x82, 0x04, 0xB8, 0x50, 0x30, 0x16, 0x92, 0x0C, 0x34, 0xE4, 0xC6, 0x2E, + 0xD2, 0x09, 0x18, 0x50, 0x60, 0x16, 0xCC, 0x50, 0x1E, 0x00, 0xD2, 0x04, 0x34, 0x61, 0x99, 0x60, + 0x62, 0x16, 0x98, 0x50, 0x63, 0x16, 0x18, 0x70, 0x62, 0x16, 0x92, 0x07, 0xC4, 0x74, 0xC2, 0x09, + 0x04, 0x71, 0x99, 0x70, 0x63, 0x16, 0xF2, 0x05, 0xC4, 0x72, 0xD2, 0x03, 0x99, 0x00, 0x63, 0x16, + 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0xC1, 0xE1, 0x06, 0xE2, 0x8B, 0xD2, + 0x00, 0x00, 0x06, 0x2E, 0xEB, 0xCC, 0x00, 0x00, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x18, 0xC1, 0xE1, 0x06, 0xE2, 0x18, 0x20, 0x64, 0x16, 0x5C, 0x20, 0xF0, 0x00, 0x64, 0x23, + 0x99, 0x20, 0x64, 0x16, 0x4B, 0xC4, 0x00, 0x00, 0x4B, 0xBC, 0x00, 0x00, 0xC4, 0xE0, 0x92, 0x14, + 0xCB, 0xBB, 0x00, 0x00, 0x04, 0x21, 0x0B, 0xBB, 0x00, 0x00, 0x04, 0x21, 0x0B, 0xBA, 0x00, 0x00, + 0x04, 0x21, 0x06, 0x3E, 0x06, 0x4E, 0x06, 0x5E, 0xAB, 0x1C, 0x01, 0x00, 0xC4, 0x20, 0x82, 0x04, + 0x04, 0x24, 0x2B, 0xFA, 0x00, 0x00, 0x6B, 0x1B, 0x01, 0x00, 0xCB, 0xBC, 0x00, 0x00, 0x40, 0xE1, + 0x04, 0x61, 0x99, 0x60, 0x65, 0x16, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x70, 0x58, 0x16, + 0x34, 0x18, 0xC1, 0xE1, 0x92, 0x0A, 0x0C, 0x60, 0x00, 0x10, 0xA8, 0x76, 0x20, 0x00, 0x82, 0x05, + 0x34, 0x71, 0xA9, 0x76, 0x20, 0x00, 0xF2, 0x3E, 0x18, 0x60, 0x68, 0x16, 0x18, 0x70, 0x67, 0x16, + 0xC6, 0x76, 0x92, 0x38, 0xC4, 0x70, 0x82, 0x04, 0x28, 0x70, 0x52, 0x16, 0xF2, 0x0E, 0x38, 0x60, + 0x24, 0x16, 0x04, 0x51, 0xCC, 0x60, 0x8F, 0x01, 0x26, 0x56, 0xB9, 0x50, 0x24, 0x16, 0x0C, 0x70, + 0x30, 0x75, 0xD2, 0x03, 0x28, 0x70, 0x54, 0x16, 0xC6, 0x72, 0xC2, 0x24, 0x36, 0x72, 0x06, 0x27, + 0x06, 0x67, 0xD7, 0x62, 0xD7, 0x21, 0x26, 0x26, 0x36, 0x27, 0xD7, 0x21, 0x0C, 0x30, 0x10, 0x27, + 0x0B, 0x9E, 0x00, 0x00, 0xC4, 0x2A, 0xC2, 0x16, 0xCB, 0xE3, 0x00, 0x00, 0x2B, 0xE4, 0x00, 0x00, + 0x98, 0x70, 0x59, 0x16, 0x82, 0x04, 0xCB, 0xD6, 0x00, 0x00, 0xF2, 0x08, 0x18, 0x70, 0x6A, 0x16, + 0x93, 0x07, 0x92, 0x04, 0x2B, 0x4E, 0x00, 0x00, 0xF2, 0xFA, 0x99, 0x00, 0x6A, 0x16, 0xAB, 0xE4, + 0x00, 0x00, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x18, 0x70, 0x57, 0x16, 0x0C, 0x60, 0x96, 0x00, + 0xC4, 0x70, 0x92, 0x05, 0x38, 0x70, 0x40, 0x16, 0x28, 0x67, 0x22, 0x00, 0x0C, 0x70, 0x00, 0x10, + 0x28, 0x57, 0xEE, 0x01, 0x26, 0x65, 0x28, 0x57, 0x0C, 0x00, 0xC6, 0x65, 0x02, 0x17, 0x98, 0x57, + 0xC0, 0x03, 0x92, 0x14, 0x28, 0x57, 0x06, 0x00, 0xDC, 0x50, 0xE0, 0x0E, 0x92, 0x0F, 0x38, 0x70, + 0x28, 0x16, 0x04, 0x21, 0x24, 0x71, 0xB9, 0x70, 0x28, 0x16, 0x38, 0x60, 0x40, 0x16, 0x18, 0x66, + 0x24, 0x00, 0xC6, 0x76, 0xD2, 0x06, 0x06, 0x25, 0xF2, 0x04, 0xB9, 0x00, 0x28, 0x16, 0x04, 0x20, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x18, 0x70, 0x68, 0x16, 0x18, 0x50, + 0x67, 0x16, 0xC6, 0x57, 0x82, 0x3F, 0x99, 0x70, 0x67, 0x16, 0xC4, 0x70, 0x18, 0x70, 0x64, 0x16, + 0x1C, 0x60, 0x10, 0x00, 0x56, 0x76, 0x82, 0x1C, 0x64, 0x72, 0x99, 0x70, 0x64, 0x16, 0xCB, 0x30, + 0x01, 0x00, 0xB9, 0x00, 0x30, 0x16, 0xB9, 0x00, 0x28, 0x16, 0x38, 0x70, 0x40, 0x16, 0x18, 0x27, + 0x41, 0x00, 0x18, 0x37, 0x7A, 0x00, 0x18, 0x47, 0x79, 0x00, 0x18, 0x57, 0x5A, 0x00, 0x18, 0x67, + 0x24, 0x00, 0x0C, 0xF0, 0xA8, 0x00, 0xF1, 0xF0, 0xB9, 0x20, 0x2C, 0x16, 0xF2, 0x0C, 0x64, 0x71, + 0x99, 0x70, 0x64, 0x16, 0x0B, 0x32, 0x01, 0x00, 0x38, 0x70, 0x40, 0x16, 0x18, 0x67, 0x57, 0x00, + 0x99, 0x60, 0x05, 0x13, 0x98, 0x70, 0x68, 0x16, 0x82, 0x05, 0x0C, 0xF0, 0x68, 0x01, 0xF1, 0xF0, + 0xF2, 0x05, 0x18, 0x20, 0x64, 0x16, 0x4B, 0xD0, 0x00, 0x00, 0x18, 0x20, 0x64, 0x16, 0x4B, 0x7B, + 0x00, 0x00, 0x18, 0x20, 0x64, 0x16, 0xCB, 0x76, 0x00, 0x00, 0x18, 0x20, 0x64, 0x16, 0x4B, 0xC4, + 0x00, 0x00, 0x18, 0x20, 0x64, 0x16, 0x4B, 0xD0, 0x00, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x04, 0x62, 0xB1, 0xF1, 0x99, 0x60, 0x65, 0x16, 0x4B, 0xBC, + 0x00, 0x00, 0x04, 0x21, 0x0B, 0xBB, 0x00, 0x00, 0x04, 0x21, 0x0B, 0xBA, 0x00, 0x00, 0x04, 0x28, + 0x0B, 0xBB, 0x00, 0x00, 0x0C, 0x20, 0x10, 0x00, 0x0B, 0xBA, 0x00, 0x00, 0x0B, 0x2A, 0x01, 0x00, + 0x8B, 0xD4, 0x02, 0x00, 0x86, 0x32, 0x82, 0x0C, 0x18, 0x70, 0x56, 0x16, 0x5C, 0x70, 0xF0, 0x00, + 0xCC, 0x70, 0x40, 0x00, 0x82, 0x07, 0x04, 0x61, 0x99, 0x60, 0x68, 0x16, 0xF2, 0x03, 0x4B, 0x21, + 0x01, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x18, 0x04, 0x63, 0xC1, 0xE1, 0x99, 0x60, + 0x65, 0x16, 0xCB, 0x83, 0x00, 0x00, 0xC4, 0x20, 0x82, 0x07, 0x4B, 0xBC, 0x00, 0x00, 0x0C, 0xF0, + 0x68, 0x01, 0xF1, 0xF0, 0xF2, 0x03, 0xCB, 0xBC, 0x00, 0x00, 0x0C, 0xF0, 0x8C, 0x01, 0xF1, 0xF0, + 0x04, 0x21, 0x0B, 0xBB, 0x00, 0x00, 0x8B, 0x3D, 0x01, 0x00, 0x06, 0xE2, 0x04, 0x21, 0x0B, 0xBA, + 0x00, 0x00, 0x04, 0x28, 0x0B, 0xBB, 0x00, 0x00, 0x0C, 0x20, 0x10, 0x00, 0x0B, 0xBA, 0x00, 0x00, + 0xC4, 0xE0, 0x82, 0x03, 0x0B, 0x41, 0x01, 0x00, 0x98, 0x70, 0x05, 0x10, 0x82, 0x06, 0xB9, 0x00, + 0x30, 0x16, 0xB9, 0x00, 0x24, 0x16, 0xF2, 0x06, 0x38, 0x70, 0x30, 0x16, 0x24, 0x71, 0xB9, 0x70, + 0x30, 0x16, 0x0B, 0x2A, 0x01, 0x00, 0x38, 0x70, 0x2C, 0x16, 0x38, 0x60, 0x30, 0x16, 0x24, 0x73, + 0xC6, 0x67, 0xA2, 0x05, 0x99, 0x00, 0x68, 0x16, 0x99, 0x00, 0x60, 0x16, 0x98, 0x60, 0x66, 0x16, + 0x82, 0x0B, 0x04, 0x20, 0x99, 0x00, 0x68, 0x16, 0x99, 0x00, 0x66, 0x16, 0x0B, 0xF2, 0x00, 0x00, + 0x04, 0x21, 0x0B, 0x7C, 0x00, 0x00, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x98, 0x70, 0x68, 0x16, + 0x34, 0x14, 0xB1, 0xF1, 0x82, 0x04, 0xCB, 0x8E, 0x00, 0x00, 0xF2, 0x03, 0x2B, 0x8C, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0xAB, 0x30, 0x00, 0x00, + 0xC4, 0x20, 0x82, 0x03, 0x0B, 0xE6, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x04, 0x20, 0xB1, 0xF1, 0x4B, 0xF1, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x34, 0x18, 0x04, 0x20, 0xC1, 0xE1, 0xCB, 0xF2, 0x00, 0x00, 0x06, 0xE2, 0x04, 0x20, 0x0B, 0xF2, + 0x00, 0x00, 0x06, 0x2E, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, + 0xCB, 0x13, 0x00, 0x00, 0xC4, 0x20, 0x82, 0x05, 0x38, 0x20, 0x20, 0x16, 0x4B, 0x15, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0x04, 0x21, 0xC1, 0xE1, 0x4B, 0xF1, + 0x00, 0x00, 0x08, 0xE0, 0x07, 0x00, 0x2C, 0xE0, 0x20, 0xA1, 0xEB, 0x96, 0x00, 0x00, 0x98, 0x70, + 0x5F, 0x16, 0x92, 0x1B, 0x04, 0x21, 0xCB, 0xF2, 0x00, 0x00, 0x26, 0x22, 0x06, 0x72, 0x57, 0x71, + 0x26, 0x27, 0xC6, 0x2E, 0xC2, 0xF3, 0x08, 0x70, 0x00, 0x80, 0x38, 0x77, 0xCC, 0xFB, 0xCC, 0x70, + 0xFF, 0x00, 0x82, 0x04, 0x98, 0x70, 0x5E, 0x16, 0x82, 0x08, 0x04, 0x21, 0x0B, 0xF2, 0x00, 0x00, + 0x04, 0x21, 0x4B, 0xF1, 0x00, 0x00, 0xF2, 0xE2, 0x04, 0x21, 0x0B, 0xF2, 0x00, 0x00, 0x40, 0xE1, + 0x24, 0x18, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x80, 0xC6, 0x27, 0x34, 0x14, 0xB1, 0xF1, 0x82, 0x03, + 0xC6, 0x37, 0x92, 0x04, 0x3B, 0xA5, 0x00, 0x00, 0xF2, 0x0E, 0x08, 0x70, 0x00, 0x40, 0x04, 0x61, + 0xB9, 0x67, 0x00, 0x80, 0xB9, 0x27, 0x04, 0x80, 0xB9, 0x37, 0x08, 0x80, 0xB9, 0x07, 0x0C, 0x80, + 0x38, 0x27, 0x10, 0x80, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0xC4, 0x20, 0x34, 0x14, + 0xB1, 0xF1, 0x82, 0x0F, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x37, 0x18, 0x80, 0xB9, 0x47, 0x1C, 0x80, + 0x06, 0x67, 0x38, 0x76, 0x28, 0x80, 0xD4, 0x71, 0x82, 0xFD, 0x38, 0x26, 0x20, 0x80, 0xF2, 0x05, + 0x06, 0x23, 0x06, 0x34, 0x5B, 0xA6, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x06, 0x72, 0x34, 0x14, 0x06, 0x43, 0x04, 0x21, 0x06, 0x37, 0xB1, 0xF1, 0x6B, 0x9C, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xD3, + 0xF7, 0xDF, 0xC4, 0xD0, 0x06, 0xE4, 0xF7, 0xEF, 0x82, 0x02, 0x16, 0x33, 0xC4, 0xE0, 0x82, 0x02, + 0x16, 0x44, 0xC4, 0x20, 0x82, 0x0F, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x37, 0x18, 0x80, 0xB9, 0x47, + 0x1C, 0x80, 0x06, 0x67, 0x38, 0x76, 0x28, 0x80, 0xD4, 0x71, 0x82, 0xFD, 0x38, 0x26, 0x20, 0x80, + 0xF2, 0x05, 0x06, 0x23, 0x06, 0x34, 0x5B, 0xA6, 0x00, 0x00, 0xC6, 0xDE, 0x82, 0x02, 0x16, 0x22, + 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x80, 0xC6, 0x26, 0x34, 0x14, + 0xB1, 0xF1, 0x06, 0x72, 0x06, 0x43, 0x82, 0x04, 0xC6, 0x36, 0x04, 0x21, 0x92, 0x02, 0x04, 0x20, + 0x06, 0x37, 0xCB, 0x9E, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0xC4, 0x20, 0x3C, 0x10, + 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xE3, 0x06, 0xD4, 0x82, 0x0F, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x37, + 0x18, 0x80, 0xB9, 0x47, 0x1C, 0x80, 0x06, 0x67, 0x38, 0x76, 0x28, 0x80, 0xD4, 0x71, 0x82, 0xFD, + 0x38, 0x26, 0x24, 0x80, 0xF2, 0x0A, 0x06, 0x23, 0x06, 0x34, 0x5B, 0xA6, 0x00, 0x00, 0x06, 0x3D, + 0xAB, 0x9A, 0x00, 0x00, 0x3F, 0x22, 0x0E, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, + 0x06, 0x72, 0x34, 0x14, 0x06, 0x43, 0x04, 0x21, 0x06, 0x37, 0xB1, 0xF1, 0x6B, 0xA2, 0x00, 0x00, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0xC4, 0x30, 0x04, 0x40, 0x04, 0x50, 0x0C, 0x60, 0x20, 0x00, + 0x52, 0x03, 0xA6, 0x42, 0x25, 0x50, 0xB4, 0x61, 0x02, 0x06, 0xA6, 0x44, 0x25, 0x55, 0xA6, 0x33, + 0x42, 0xF9, 0xF2, 0xFA, 0x06, 0x24, 0x06, 0x35, 0xE1, 0xF0, 0x04, 0x40, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x9E, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x9D, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x9C, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x9B, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x9A, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x99, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x98, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x97, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x96, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x95, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x94, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x93, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x92, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x91, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x90, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8F, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x8E, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8D, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8C, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x8B, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x8A, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x89, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x88, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x87, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, + 0xC6, 0x43, 0xBA, 0x86, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x85, 0x00, 0x00, + 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x84, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, + 0xBA, 0x83, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x82, 0x00, 0x00, 0xA6, 0x22, + 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x81, 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x80, + 0x00, 0x00, 0xA6, 0x22, 0x25, 0x44, 0xC6, 0x43, 0xBA, 0x7F, 0x00, 0x00, 0xE1, 0xF0, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x62, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x63, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x64, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x65, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x66, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x67, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x68, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x69, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x6A, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x6B, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x6C, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x6D, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x6E, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x6F, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x70, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x71, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x72, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x73, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x74, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x75, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x76, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x77, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x78, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x79, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x7A, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x7B, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x7C, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x7D, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x7E, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xFA, 0x7F, 0xFF, 0xFF, 0x36, 0x43, + 0x24, 0x21, 0xFA, 0x80, 0xFF, 0xFF, 0x36, 0x43, 0x24, 0x21, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, + 0x08, 0x70, 0x00, 0x40, 0xC4, 0x20, 0x38, 0x67, 0x60, 0x71, 0x82, 0x09, 0x08, 0x50, 0x40, 0x00, + 0x66, 0x65, 0xB9, 0x67, 0x60, 0x71, 0x2B, 0x4E, 0x00, 0x00, 0xF2, 0x08, 0x08, 0x50, 0xBF, 0xFF, + 0x2C, 0x50, 0xFF, 0xFF, 0x56, 0x65, 0xB9, 0x67, 0x60, 0x71, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x08, 0x70, 0xD6, 0x72, 0x82, 0xFD, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x70, 0x00, 0x40, 0x38, 0x67, 0x08, 0x70, 0xB9, 0x67, 0x08, 0x70, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x18, 0xC1, 0xE1, 0x06, 0xE2, 0x8B, 0xBA, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0xB9, 0xE7, + 0x00, 0x70, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x70, 0x70, + 0x64, 0x72, 0xB9, 0x76, 0x70, 0x70, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x70, 0x70, + 0x64, 0x71, 0xB9, 0x76, 0x70, 0x70, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x70, 0x70, + 0x14, 0x52, 0x56, 0x75, 0xB9, 0x76, 0x70, 0x70, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, + 0x38, 0x27, 0xE0, 0x70, 0x5C, 0x20, 0xFF, 0x7F, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, + 0x38, 0x27, 0x5C, 0x70, 0x5C, 0x20, 0x7F, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0xC4, 0x20, 0x08, 0x60, + 0x00, 0x40, 0x82, 0x08, 0x08, 0x70, 0x0F, 0xC0, 0x2C, 0x70, 0xFF, 0xFF, 0xB9, 0x76, 0x3C, 0x71, + 0xF2, 0x03, 0xB9, 0x06, 0x3C, 0x71, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x0C, 0x20, + 0x08, 0x70, 0x08, 0xD0, 0x00, 0x40, 0x08, 0x30, 0x00, 0x80, 0x26, 0x2D, 0x2C, 0x30, 0x08, 0xE2, + 0x0C, 0x40, 0xF8, 0x02, 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x00, 0x40, 0x08, 0xE0, + 0x00, 0x30, 0x08, 0x30, 0x00, 0x80, 0x26, 0x2E, 0x2C, 0x30, 0x00, 0xE5, 0x0C, 0x40, 0x00, 0x09, + 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0xC4, 0x52, 0x08, 0x30, 0x00, 0x80, 0x26, 0x2E, + 0x2C, 0x30, 0x00, 0xEE, 0x0C, 0x40, 0x50, 0x01, 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x08, 0x70, + 0x0F, 0xC0, 0x2C, 0x70, 0xFF, 0xFF, 0x0C, 0x20, 0x00, 0x40, 0x08, 0x30, 0x00, 0x80, 0xB9, 0x7D, + 0x3C, 0x71, 0x26, 0x2E, 0x2C, 0x30, 0x00, 0xF0, 0x0C, 0x40, 0x00, 0x09, 0x0C, 0xF0, 0x04, 0x01, + 0xF1, 0xF0, 0x0C, 0x20, 0x00, 0x49, 0x08, 0x30, 0x08, 0x07, 0xB9, 0x0D, 0x3C, 0x71, 0x26, 0x2E, + 0x2C, 0x30, 0x08, 0x07, 0x0C, 0x40, 0x00, 0x09, 0x0C, 0xF0, 0x40, 0x01, 0xF1, 0xF0, 0x50, 0xC1, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0xC4, 0x23, 0x82, 0x5F, 0xC4, 0x23, 0x08, 0x70, + 0x00, 0x40, 0xD2, 0x06, 0xC4, 0x21, 0x82, 0x1A, 0xC4, 0x22, 0x82, 0x2B, 0xF2, 0x71, 0xCC, 0x20, + 0x81, 0x00, 0x82, 0x1D, 0xCC, 0x20, 0x82, 0x00, 0x82, 0x3A, 0xC4, 0x28, 0x92, 0x69, 0x0C, 0x50, + 0x40, 0x40, 0xB9, 0x57, 0x34, 0x70, 0x04, 0x51, 0xB9, 0x57, 0x64, 0x70, 0x08, 0x50, 0x03, 0x00, + 0x2C, 0x50, 0x63, 0x07, 0xB9, 0x57, 0x54, 0x70, 0xF2, 0x55, 0x08, 0x50, 0x14, 0x00, 0x2C, 0x50, + 0x4C, 0x26, 0xB9, 0x57, 0x34, 0x70, 0xB9, 0x27, 0x64, 0x70, 0xF2, 0x1C, 0x08, 0x50, 0x23, 0x00, + 0x2C, 0x50, 0x48, 0x20, 0xB9, 0x57, 0x34, 0x70, 0x04, 0x51, 0xB9, 0x57, 0x64, 0x70, 0xF2, 0x22, + 0x98, 0x50, 0x63, 0x16, 0x08, 0x50, 0x14, 0x00, 0x2C, 0x50, 0x4C, 0x26, 0xB9, 0x57, 0x34, 0x70, + 0x82, 0x04, 0xB9, 0x27, 0x64, 0x70, 0xF2, 0x04, 0x04, 0x51, 0xB9, 0x57, 0x64, 0x70, 0x08, 0x70, + 0x00, 0x40, 0x08, 0x50, 0x03, 0x00, 0x2C, 0x50, 0x61, 0xC7, 0xF2, 0x10, 0x08, 0x50, 0x23, 0x00, + 0x2C, 0x50, 0x48, 0x20, 0xB9, 0x57, 0x34, 0x70, 0x04, 0x52, 0xB9, 0x57, 0x64, 0x70, 0x08, 0x70, + 0x00, 0x40, 0x08, 0x50, 0x03, 0x00, 0x2C, 0x50, 0x61, 0x07, 0xB9, 0x57, 0x54, 0x70, 0x08, 0x50, + 0x80, 0x0F, 0x2C, 0x50, 0x80, 0x0F, 0xF2, 0x14, 0x08, 0x70, 0x00, 0x40, 0x0C, 0x50, 0x26, 0x26, + 0xB9, 0x57, 0x34, 0x70, 0x04, 0x51, 0xB9, 0x57, 0x64, 0x70, 0x08, 0x50, 0x03, 0x00, 0x2C, 0x50, + 0x63, 0x07, 0xB9, 0x57, 0x54, 0x70, 0x08, 0x50, 0x00, 0x0E, 0x2C, 0x50, 0x00, 0x0E, 0xB9, 0x57, + 0x6C, 0x70, 0x08, 0x50, 0xF0, 0x07, 0x2C, 0x50, 0x66, 0x7F, 0xB9, 0x57, 0x1C, 0x71, 0x08, 0x70, + 0x00, 0x40, 0x08, 0x50, 0x64, 0x00, 0xB9, 0x57, 0x30, 0x70, 0x08, 0x70, 0x01, 0x00, 0x08, 0x60, + 0x00, 0x40, 0x2C, 0x70, 0xFF, 0x3F, 0xB9, 0x76, 0x58, 0x70, 0xE1, 0xF0, 0x54, 0x2F, 0xC4, 0x21, + 0x92, 0x04, 0x38, 0x60, 0x38, 0x16, 0xF2, 0x03, 0x38, 0x60, 0x3C, 0x16, 0x38, 0x56, 0x08, 0x00, + 0x08, 0x70, 0x00, 0x40, 0xB9, 0x57, 0xB4, 0x70, 0x38, 0x56, 0x0C, 0x00, 0x08, 0x40, 0xDF, 0xFF, + 0xB9, 0x57, 0xB8, 0x70, 0x38, 0x56, 0x10, 0x00, 0x2C, 0x40, 0xFF, 0xFF, 0x56, 0x54, 0xB9, 0x57, + 0xC0, 0x70, 0x38, 0x56, 0x14, 0x00, 0xB9, 0x57, 0xC4, 0x70, 0x98, 0x50, 0x57, 0x16, 0x82, 0x0C, + 0x08, 0x60, 0x01, 0x00, 0x2C, 0x60, 0x81, 0x11, 0xB9, 0x67, 0xAC, 0x70, 0x08, 0x60, 0x10, 0x00, + 0x2C, 0x60, 0x10, 0x00, 0xF2, 0x06, 0x30, 0x56, 0xB9, 0x57, 0xAC, 0x70, 0x38, 0x66, 0x04, 0x00, + 0xB9, 0x67, 0xB0, 0x70, 0xE1, 0xF0, 0x00, 0x00, 0x54, 0x2F, 0xC4, 0x21, 0x92, 0x04, 0x38, 0x70, + 0x38, 0x16, 0xF2, 0x03, 0x38, 0x70, 0x3C, 0x16, 0x18, 0x60, 0xC0, 0x13, 0xC4, 0x62, 0xC2, 0x04, + 0x38, 0x57, 0x20, 0x00, 0xF2, 0x08, 0xC4, 0x62, 0x92, 0x04, 0x38, 0x57, 0x1C, 0x00, 0xF2, 0x03, + 0x38, 0x57, 0x18, 0x00, 0x08, 0x60, 0x00, 0x40, 0xB9, 0x56, 0xC8, 0x70, 0x38, 0x57, 0x24, 0x00, + 0xB9, 0x56, 0xCC, 0x70, 0x38, 0x77, 0x28, 0x00, 0xB9, 0x76, 0xD4, 0x70, 0xE1, 0xF0, 0x00, 0x00, + 0x54, 0x2F, 0xC4, 0x21, 0x92, 0x04, 0x38, 0x70, 0x38, 0x16, 0xF2, 0x03, 0x38, 0x70, 0x3C, 0x16, + 0x38, 0x57, 0x2C, 0x00, 0x08, 0x60, 0x00, 0x40, 0xB9, 0x56, 0x8C, 0x70, 0x38, 0x57, 0x30, 0x00, + 0xB9, 0x56, 0x90, 0x70, 0x38, 0x57, 0x34, 0x00, 0xB9, 0x56, 0x94, 0x70, 0x38, 0x57, 0x38, 0x00, + 0xB9, 0x56, 0x98, 0x70, 0x38, 0x57, 0x3C, 0x00, 0xB9, 0x56, 0x9C, 0x70, 0x38, 0x57, 0x40, 0x00, + 0xB9, 0x56, 0xA0, 0x70, 0x38, 0x57, 0x44, 0x00, 0xB9, 0x56, 0xA4, 0x70, 0x38, 0x77, 0x48, 0x00, + 0xB9, 0x76, 0xA8, 0x70, 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x60, 0x00, 0xDE, 0x08, 0x70, 0x00, 0x40, + 0xB9, 0x67, 0x10, 0x60, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x07, 0x10, 0x60, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0x0C, 0x60, 0xFE, 0x00, 0xB9, 0x67, 0x0C, 0x20, + 0xB9, 0x07, 0x18, 0x20, 0xE1, 0xF0, 0x00, 0x00, 0x51, 0x00, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x40, + 0xC4, 0x20, 0x38, 0x67, 0x34, 0x10, 0x82, 0x03, 0x64, 0x63, 0xF2, 0x03, 0x14, 0x54, 0x56, 0x65, + 0xB9, 0x67, 0x34, 0x10, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0xAD, 0xDE, 0x2C, 0x70, 0x8C, 0x03, + 0x08, 0x60, 0x00, 0x40, 0xB9, 0x76, 0x00, 0x10, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0xAD, 0xDE, + 0x08, 0x60, 0x00, 0x40, 0x2C, 0x70, 0x8C, 0x03, 0xB9, 0x76, 0x00, 0x10, 0xB9, 0x26, 0x6C, 0x10, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, + 0xB9, 0x67, 0x00, 0x10, 0x0C, 0x50, 0x10, 0x00, 0xB9, 0x57, 0x20, 0x10, 0x08, 0x50, 0x38, 0x03, + 0xB9, 0x67, 0x00, 0x10, 0x2C, 0x50, 0x80, 0x88, 0xB9, 0x57, 0x24, 0x10, 0xB9, 0x67, 0x00, 0x10, + 0xB9, 0x07, 0x28, 0x10, 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, + 0x2C, 0x60, 0x8C, 0x03, 0xB9, 0x67, 0x00, 0x10, 0xC4, 0x30, 0x38, 0x67, 0x50, 0x10, 0x82, 0x05, + 0x66, 0x62, 0xB9, 0x67, 0x50, 0x10, 0xF2, 0x05, 0x15, 0x22, 0x56, 0x26, 0xB9, 0x27, 0x50, 0x10, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, + 0xB9, 0x67, 0x00, 0x10, 0x38, 0x67, 0x54, 0x10, 0x66, 0x62, 0xB9, 0x67, 0x54, 0x10, 0xE1, 0xF0, + 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, 0xB9, 0x67, 0x00, 0x10, + 0x38, 0x67, 0x54, 0x10, 0x15, 0x22, 0x56, 0x26, 0xB9, 0x27, 0x54, 0x10, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x60, 0x8C, 0x03, 0xB9, 0x67, 0x00, 0x10, + 0x38, 0x57, 0x58, 0x10, 0xCC, 0x20, 0xFF, 0x00, 0x1C, 0x40, 0x00, 0x01, 0x56, 0x54, 0x92, 0x0A, + 0xB9, 0x57, 0x58, 0x10, 0xB9, 0x67, 0x00, 0x10, 0x38, 0x67, 0x4C, 0x10, 0x14, 0x52, 0x56, 0x65, + 0xF2, 0x09, 0x66, 0x52, 0xB9, 0x57, 0x58, 0x10, 0xB9, 0x67, 0x00, 0x10, 0x38, 0x67, 0x4C, 0x10, + 0x64, 0x61, 0xB9, 0x67, 0x4C, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0xAD, 0xDE, 0x08, 0x70, 0x00, 0x40, + 0x2C, 0x60, 0x8C, 0x03, 0xB9, 0x67, 0x00, 0x10, 0xC4, 0x30, 0x38, 0x67, 0x4C, 0x10, 0x82, 0x05, + 0x66, 0x62, 0xB9, 0x67, 0x4C, 0x10, 0xF2, 0x05, 0x15, 0x22, 0x56, 0x26, 0xB9, 0x27, 0x4C, 0x10, + 0xE1, 0xF0, 0x00, 0x00, 0x08, 0x70, 0xAD, 0xDE, 0x08, 0x60, 0x00, 0x40, 0x2C, 0x70, 0x8C, 0x03, + 0xB9, 0x76, 0x00, 0x10, 0x04, 0x73, 0xB9, 0x76, 0x44, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, + 0x38, 0x76, 0x08, 0x10, 0x66, 0x72, 0xB9, 0x76, 0x08, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, + 0x38, 0x76, 0x64, 0x10, 0x66, 0x72, 0xB9, 0x76, 0x64, 0x10, 0xE1, 0xF0, 0x04, 0x62, 0x08, 0x70, + 0x00, 0x40, 0xB9, 0x67, 0x14, 0x10, 0xE1, 0xF0, 0x23, 0x22, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, + 0x10, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x14, 0x10, 0x64, 0x71, 0xB9, 0x76, + 0x14, 0x10, 0xE1, 0xF0, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x14, 0x10, 0x14, 0x52, 0x56, 0x75, + 0xB9, 0x76, 0x14, 0x10, 0xE1, 0xF0, 0x00, 0x00, 0xC4, 0x20, 0x04, 0x7F, 0x82, 0x03, 0x0C, 0x70, + 0x9C, 0x00, 0x6C, 0x70, 0x00, 0x01, 0x08, 0x60, 0x00, 0x40, 0xB9, 0x76, 0x74, 0x10, 0xE1, 0xF0, + 0x04, 0x61, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x70, 0x10, 0xE1, 0xF0, 0xC4, 0x20, 0x08, 0x70, + 0x00, 0x40, 0x82, 0x04, 0x04, 0x61, 0xB1, 0x67, 0xF2, 0x02, 0xB1, 0x07, 0xE1, 0xF0, 0x00, 0x00, + 0xC4, 0x30, 0x57, 0x21, 0x08, 0x70, 0x00, 0x40, 0x26, 0x72, 0x82, 0x04, 0x04, 0x61, 0xB1, 0x67, + 0xF2, 0x02, 0xB1, 0x07, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x6B, 0x12, + 0x00, 0x00, 0x08, 0x70, 0x1C, 0xE1, 0x08, 0x60, 0x00, 0x30, 0x2C, 0x70, 0x04, 0xE9, 0xB9, 0x76, + 0x04, 0x01, 0x08, 0xE0, 0x00, 0x40, 0xB9, 0x76, 0x08, 0x01, 0x2C, 0xE0, 0x70, 0x10, 0x04, 0xD1, + 0xB1, 0xDE, 0x04, 0x2A, 0xEB, 0x4E, 0x00, 0x00, 0xF2, 0xFC, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, + 0xC1, 0x61, 0x01, 0x61, 0x01, 0x70, 0xC9, 0x61, 0x08, 0x00, 0x04, 0x61, 0x08, 0x70, 0x00, 0x40, + 0xB9, 0x67, 0x14, 0x40, 0x48, 0x61, 0x08, 0x00, 0x11, 0x16, 0x11, 0x07, 0x40, 0x61, 0x2C, 0x10, + 0x10, 0x00, 0x61, 0x00, 0x3C, 0x10, 0x10, 0x00, 0xC1, 0x61, 0x01, 0x61, 0x01, 0x70, 0xC9, 0x61, + 0x08, 0x00, 0x04, 0x61, 0x08, 0x70, 0x00, 0x40, 0xB9, 0x67, 0x14, 0x50, 0x48, 0x61, 0x08, 0x00, + 0x11, 0x16, 0x11, 0x07, 0x40, 0x61, 0x2C, 0x10, 0x10, 0x00, 0x61, 0x00, 0x3C, 0x10, 0x24, 0x00, + 0xD9, 0x41, 0x08, 0x00, 0x01, 0x61, 0x01, 0x70, 0xC9, 0x61, 0x1C, 0x00, 0x04, 0x61, 0xB9, 0xF1, + 0x18, 0x00, 0xC1, 0x21, 0x99, 0x60, 0x6A, 0x16, 0x6B, 0x4D, 0x00, 0x00, 0x04, 0x61, 0x08, 0x70, + 0x00, 0x40, 0xB9, 0x67, 0x78, 0x10, 0x48, 0x61, 0x1C, 0x00, 0x38, 0xF1, 0x18, 0x00, 0x40, 0x21, + 0x11, 0x16, 0x11, 0x07, 0x58, 0x41, 0x08, 0x00, 0x2C, 0x10, 0x24, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x3C, 0x10, 0x10, 0x00, 0xC1, 0x61, 0x01, 0x61, 0x01, 0x70, 0xC9, 0x61, 0x08, 0x00, 0x08, 0x70, + 0x00, 0x40, 0x38, 0x67, 0x08, 0x70, 0xB9, 0x67, 0x08, 0x70, 0x04, 0x61, 0x99, 0x60, 0x69, 0x16, + 0x48, 0x61, 0x08, 0x00, 0x11, 0x16, 0x11, 0x07, 0x40, 0x61, 0x2C, 0x10, 0x10, 0x00, 0x61, 0x00, + 0x08, 0x70, 0x04, 0x00, 0x24, 0x74, 0x26, 0x27, 0x08, 0x70, 0xFF, 0xBF, 0x57, 0x26, 0x2C, 0x70, + 0x00, 0xC0, 0xB1, 0x42, 0x26, 0x27, 0x0C, 0x40, 0x04, 0x40, 0x08, 0x70, 0x00, 0x40, 0x26, 0x47, + 0x26, 0x42, 0xB1, 0x34, 0x0C, 0x40, 0x10, 0x40, 0x26, 0x47, 0x26, 0x42, 0x2C, 0x70, 0x08, 0x40, + 0xB1, 0x54, 0x26, 0x27, 0xB1, 0x62, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x40, 0x2C, 0x70, 0x08, 0x40, + 0x57, 0x26, 0x26, 0x27, 0x30, 0x72, 0x6C, 0x70, 0x00, 0x01, 0xB1, 0x72, 0xE1, 0xF0, 0x00, 0x00, + 0x08, 0x70, 0x00, 0x40, 0x2C, 0x70, 0x08, 0x40, 0x57, 0x26, 0x26, 0x27, 0x30, 0x72, 0x1C, 0x60, + 0x01, 0x01, 0x56, 0x76, 0xB1, 0x72, 0xE1, 0xF0, 0x08, 0x70, 0x00, 0x40, 0x57, 0x26, 0x2C, 0x70, + 0x0C, 0x40, 0x26, 0x72, 0x30, 0x27, 0xE1, 0xF0, 0x2F, 0x62, 0x02, 0x00, 0x26, 0x62, 0x57, 0x61, + 0x26, 0x62, 0xC4, 0x3A, 0x26, 0x63, 0xB1, 0x64, 0x06, 0x72, 0xC2, 0x0D, 0x06, 0x57, 0x0C, 0x50, + 0x44, 0x16, 0x28, 0x70, 0x44, 0x16, 0x28, 0x55, 0x02, 0x00, 0xC6, 0x67, 0x04, 0x21, 0x82, 0x0C, + 0xC6, 0x65, 0xF2, 0x08, 0xCC, 0x70, 0x11, 0x00, 0x04, 0x22, 0xC2, 0x06, 0xCC, 0x70, 0xFF, 0x00, + 0x04, 0x23, 0x82, 0x02, 0x04, 0x20, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xC2, + 0x06, 0xE4, 0x04, 0x21, 0x06, 0xD3, 0x6B, 0xBE, 0x00, 0x00, 0x08, 0x70, 0x00, 0x30, 0x2C, 0x70, + 0x00, 0x40, 0x57, 0xC1, 0x2F, 0x27, 0x0C, 0x00, 0x30, 0x62, 0xC4, 0xE0, 0x0C, 0x70, 0xFF, 0x03, + 0x56, 0x76, 0x77, 0x65, 0x82, 0x09, 0xC4, 0xD0, 0x82, 0x04, 0x26, 0x7E, 0x26, 0x6E, 0xF2, 0x11, + 0x36, 0x6E, 0x36, 0x7E, 0xF2, 0x0E, 0xC4, 0xD0, 0x82, 0x07, 0xC6, 0x67, 0x02, 0x03, 0x24, 0x71, + 0xF2, 0x08, 0x24, 0x61, 0xF2, 0x06, 0xC6, 0x67, 0x02, 0x03, 0x34, 0x61, 0xF2, 0x02, 0x34, 0x71, + 0xC4, 0x70, 0x02, 0x09, 0xCC, 0x70, 0xFF, 0x03, 0x04, 0xE0, 0x02, 0x07, 0x14, 0xE1, 0x0C, 0x70, + 0xFF, 0x03, 0xF2, 0x03, 0x14, 0xE1, 0x04, 0x71, 0xC4, 0x60, 0x02, 0x08, 0xCC, 0x60, 0xFF, 0x03, + 0x02, 0x07, 0x14, 0xE1, 0x0C, 0x60, 0xFF, 0x03, 0xF2, 0x03, 0x14, 0xE1, 0x04, 0x61, 0x57, 0x65, + 0x66, 0x67, 0xB1, 0x62, 0x04, 0x20, 0x6B, 0xBE, 0x00, 0x00, 0x06, 0x2E, 0x50, 0xC1, 0x2C, 0x10, + 0x10, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x1C, 0x09, 0x23, 0x32, 0x0C, 0x40, 0x80, 0x04, 0x06, 0x21, + 0xD9, 0xC1, 0x0C, 0x09, 0xC9, 0xA1, 0x04, 0x09, 0x4B, 0x50, 0x00, 0x00, 0x0C, 0x20, 0xC0, 0x06, + 0x26, 0x21, 0x04, 0x30, 0x0C, 0x40, 0x40, 0x02, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, + 0x80, 0x04, 0x26, 0x21, 0x04, 0x31, 0x0C, 0x40, 0x40, 0x02, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x04, 0x21, 0x08, 0xA0, 0x00, 0x30, 0x0B, 0xBB, 0x00, 0x00, 0x0C, 0xB0, 0x22, 0x00, 0x2C, 0xA0, + 0x00, 0x49, 0x04, 0x21, 0x04, 0xD0, 0x0B, 0xBA, 0x00, 0x00, 0x06, 0xED, 0x04, 0xC0, 0x0C, 0x40, + 0x00, 0x09, 0x06, 0x2D, 0x06, 0x3C, 0x26, 0x41, 0x4B, 0xF3, 0x00, 0x00, 0xC4, 0x20, 0x82, 0x3F, + 0x38, 0x21, 0x00, 0x09, 0x0C, 0x60, 0xC0, 0x06, 0x06, 0x72, 0x57, 0x71, 0x26, 0x61, 0x26, 0x7A, + 0x26, 0x62, 0x30, 0x77, 0x90, 0x46, 0x5C, 0x70, 0xFF, 0x0F, 0x3C, 0x70, 0x08, 0x07, 0x82, 0x04, + 0xCC, 0x70, 0x46, 0x00, 0x02, 0x2B, 0x0C, 0x60, 0x80, 0x04, 0x26, 0x61, 0x26, 0x62, 0x10, 0x56, + 0xC4, 0x51, 0x2F, 0x52, 0x02, 0x00, 0x92, 0x05, 0xC4, 0x70, 0x22, 0x12, 0x91, 0x06, 0xF2, 0x10, + 0xC4, 0x70, 0x12, 0x0E, 0x04, 0x71, 0x91, 0x76, 0x2F, 0x75, 0x01, 0x00, 0xA0, 0x77, 0x92, 0x08, + 0x0C, 0x70, 0xC0, 0x06, 0x04, 0x61, 0x26, 0x71, 0x26, 0x64, 0x26, 0x72, 0x91, 0x67, 0x2F, 0x75, + 0x01, 0x00, 0x20, 0x47, 0xF7, 0x40, 0xA1, 0x47, 0x0C, 0x70, 0x80, 0x04, 0x26, 0x71, 0x26, 0x72, + 0x10, 0x37, 0x4B, 0xF5, 0x00, 0x00, 0xC4, 0x20, 0x32, 0x02, 0x24, 0xE1, 0x24, 0xC1, 0xC4, 0xCD, + 0x92, 0xB7, 0x24, 0xD1, 0xCC, 0xD0, 0x13, 0x00, 0x92, 0xB2, 0xCC, 0xE0, 0xC8, 0x00, 0x82, 0x07, + 0xB4, 0xB1, 0x82, 0x05, 0x04, 0x21, 0x0B, 0xBB, 0x00, 0x00, 0xF2, 0xA4, 0x58, 0xC1, 0x0C, 0x09, + 0x48, 0xA1, 0x04, 0x09, 0x2C, 0x10, 0x1C, 0x09, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x34, 0x00, + 0xD9, 0x81, 0x14, 0x00, 0xD9, 0xC1, 0x24, 0x00, 0xB9, 0x21, 0x04, 0x00, 0x06, 0x93, 0x06, 0x84, + 0x04, 0xEA, 0x04, 0x21, 0x0B, 0xBB, 0x00, 0x00, 0x04, 0x21, 0x0B, 0xBA, 0x00, 0x00, 0xB4, 0xE1, + 0x92, 0xF9, 0x08, 0xC0, 0x00, 0x30, 0x1C, 0x50, 0x88, 0x13, 0x06, 0xBE, 0x06, 0x7E, 0x06, 0x6E, + 0x06, 0xAE, 0x2C, 0xC0, 0x00, 0x49, 0x04, 0xD0, 0x06, 0x2E, 0x06, 0x3D, 0x06, 0x41, 0xB9, 0x51, + 0x10, 0x00, 0xB9, 0x61, 0x08, 0x00, 0xB9, 0x71, 0x0C, 0x00, 0x4B, 0xF3, 0x00, 0x00, 0xC4, 0x20, + 0x38, 0x51, 0x10, 0x00, 0x38, 0x61, 0x08, 0x00, 0x38, 0x71, 0x0C, 0x00, 0x82, 0x19, 0x30, 0x41, + 0x57, 0x41, 0x26, 0x4C, 0x30, 0x44, 0x5C, 0x40, 0xFF, 0x0F, 0x3C, 0x40, 0x08, 0x07, 0xC4, 0x40, + 0x32, 0x02, 0x16, 0x44, 0xCC, 0x40, 0xC8, 0x00, 0x02, 0x02, 0x04, 0xA1, 0x1C, 0x30, 0xC8, 0x00, + 0x26, 0x34, 0xC6, 0x53, 0x32, 0x05, 0x06, 0x53, 0x06, 0xBE, 0x06, 0x7D, 0x06, 0x64, 0x24, 0xD1, + 0xC4, 0xDD, 0x92, 0xD3, 0x24, 0xE1, 0xCC, 0xE0, 0x13, 0x00, 0x92, 0xCE, 0xB1, 0x68, 0xB1, 0x79, + 0x04, 0x20, 0x38, 0x71, 0x04, 0x00, 0xC6, 0xA2, 0xB1, 0xB7, 0x82, 0x02, 0x04, 0x24, 0x58, 0xC1, + 0x24, 0x00, 0x58, 0x81, 0x14, 0x00, 0x2C, 0x10, 0x34, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, + 0xD1, 0xC1, 0x06, 0xE4, 0x06, 0xC2, 0x04, 0x28, 0x06, 0xD3, 0x4B, 0xC4, 0x00, 0x00, 0x08, 0x70, + 0x01, 0x00, 0x2C, 0x70, 0xFF, 0x3F, 0x08, 0x60, 0x00, 0x40, 0xB9, 0x76, 0x58, 0x70, 0x04, 0x21, + 0x6B, 0xBE, 0x00, 0x00, 0x08, 0x20, 0x00, 0x30, 0x08, 0x30, 0x08, 0x00, 0x2C, 0x30, 0x00, 0x02, + 0x0C, 0x40, 0x00, 0x09, 0x2C, 0x20, 0x00, 0x40, 0x0C, 0xF0, 0x40, 0x01, 0xF1, 0xF0, 0x04, 0x20, + 0x6B, 0xBE, 0x00, 0x00, 0x0C, 0x20, 0x00, 0x02, 0x2B, 0xFA, 0x00, 0x00, 0x06, 0x2C, 0x06, 0x3D, + 0x06, 0x4E, 0xEB, 0x02, 0x01, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x18, 0x00, 0xD9, 0xC1, 0x08, 0x00, 0xC1, 0xA1, 0x06, 0xC3, 0x06, 0xB2, 0x4B, 0xD5, + 0x00, 0x00, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x00, 0xF0, 0x08, 0x60, 0x00, 0x80, 0x2F, 0xD6, + 0x07, 0x00, 0x2C, 0x60, 0x00, 0x0C, 0x2F, 0xA6, 0x07, 0x00, 0x06, 0xED, 0x06, 0x3E, 0x0C, 0x20, + 0x30, 0x00, 0x77, 0x31, 0x0C, 0xF0, 0x9C, 0x02, 0xF1, 0xF0, 0x2C, 0xE0, 0x00, 0x04, 0xC6, 0xEA, + 0x92, 0xF6, 0x0C, 0xF0, 0x98, 0x02, 0xF1, 0xF0, 0x06, 0x3D, 0x06, 0x4B, 0x0C, 0x20, 0x50, 0x01, + 0x77, 0x31, 0x0C, 0x50, 0x40, 0x02, 0x0C, 0xF0, 0xD0, 0x02, 0xF1, 0xF0, 0x2B, 0x4E, 0x00, 0x00, + 0x08, 0x30, 0x00, 0x80, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x30, 0x00, 0xFA, 0x26, 0x37, 0x06, 0x4C, + 0x0C, 0x20, 0x50, 0x01, 0x77, 0x31, 0x0C, 0x50, 0x80, 0x00, 0x0C, 0xF0, 0xD0, 0x02, 0xF1, 0xF0, + 0xCB, 0xD5, 0x00, 0x00, 0x58, 0xC1, 0x08, 0x00, 0x40, 0xA1, 0x2C, 0x10, 0x18, 0x00, 0xE1, 0xF0, + 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, 0x08, 0xD0, 0x00, 0x80, 0xD1, 0x81, 0x06, 0xC4, + 0x06, 0x92, 0x06, 0xB3, 0x06, 0x2E, 0x0C, 0x20, 0x80, 0x0B, 0x06, 0x3D, 0x2C, 0x30, 0x00, 0xFA, + 0x0C, 0x40, 0x00, 0x02, 0x06, 0xA6, 0x06, 0x85, 0x0C, 0xF0, 0x04, 0x01, 0xF1, 0xF0, 0x06, 0x58, + 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0xAB, 0x0C, 0x57, 0x56, 0x66, 0x57, 0x57, 0x98, 0x06, 0x7E, + 0x0C, 0x70, 0x80, 0x0B, 0x66, 0x59, 0xA9, 0x57, 0xCC, 0x01, 0x77, 0x58, 0xA9, 0x57, 0xCE, 0x01, + 0x38, 0x50, 0x14, 0x00, 0x2C, 0xD0, 0x00, 0xFA, 0xA9, 0x57, 0xD0, 0x01, 0x77, 0x58, 0xA9, 0x57, + 0xD2, 0x01, 0x38, 0x5D, 0xC8, 0x01, 0x06, 0x3B, 0x57, 0x38, 0x66, 0x3C, 0x24, 0x51, 0xCC, 0xA0, + 0x32, 0x00, 0xA9, 0x37, 0xC4, 0x01, 0xA9, 0x57, 0xC8, 0x01, 0x77, 0x38, 0x77, 0x58, 0xA9, 0x37, + 0xC6, 0x01, 0xA9, 0x57, 0xCA, 0x01, 0x04, 0x60, 0x92, 0x05, 0xA9, 0x67, 0xC0, 0x01, 0xA9, 0x67, + 0xC2, 0x01, 0x08, 0x20, 0x00, 0x00, 0x08, 0x40, 0x00, 0x00, 0x2C, 0x20, 0x80, 0x02, 0x08, 0x30, + 0x00, 0x80, 0x2C, 0x40, 0x6C, 0x03, 0x36, 0x42, 0x2C, 0x30, 0xBC, 0x7D, 0x0C, 0xF0, 0x04, 0x01, + 0xF1, 0xF0, 0x08, 0x20, 0x00, 0x30, 0x06, 0x3E, 0x0C, 0x30, 0x80, 0x0B, 0x2C, 0x20, 0x00, 0x40, + 0x0B, 0x0C, 0x01, 0x00, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, + 0x18, 0x70, 0x64, 0x16, 0x1C, 0x50, 0x10, 0x00, 0x56, 0x75, 0xCC, 0x20, 0x32, 0x00, 0x3C, 0x10, + 0x1C, 0x00, 0x64, 0x78, 0xD9, 0xC1, 0x0C, 0x00, 0x99, 0x70, 0x64, 0x16, 0x08, 0xE0, 0x00, 0x80, + 0x06, 0xD2, 0x2C, 0xE0, 0x00, 0xFA, 0x92, 0x09, 0xB8, 0x7E, 0xC0, 0x01, 0x92, 0x06, 0x0C, 0x20, + 0x78, 0x00, 0xEB, 0x4E, 0x00, 0x00, 0xF2, 0x1C, 0x8B, 0x6C, 0x00, 0x00, 0x04, 0x21, 0xAB, 0x64, + 0x00, 0x00, 0x04, 0x21, 0x0B, 0xBB, 0x00, 0x00, 0x04, 0x21, 0x0B, 0xBA, 0x00, 0x00, 0x04, 0x28, + 0x04, 0x34, 0x26, 0x31, 0x06, 0x41, 0x26, 0x21, 0xEB, 0x08, 0x01, 0x00, 0x06, 0x52, 0x38, 0x31, + 0x08, 0x00, 0x30, 0x21, 0x38, 0x41, 0x04, 0x00, 0x06, 0x6D, 0x8B, 0x10, 0x01, 0x00, 0x6B, 0x12, + 0x00, 0x00, 0x38, 0x6E, 0xCC, 0x01, 0x08, 0x70, 0x00, 0x30, 0xB9, 0x67, 0x04, 0x01, 0x38, 0x6E, + 0xC4, 0x01, 0xB9, 0x67, 0x08, 0x01, 0x0B, 0xE6, 0x00, 0x00, 0xF2, 0x00, 0x08, 0x60, 0x00, 0x30, + 0x0C, 0x70, 0x00, 0x49, 0x0C, 0x40, 0xDC, 0x4C, 0x26, 0x76, 0x26, 0x46, 0x30, 0x57, 0x04, 0x6A, + 0x5C, 0x50, 0xFF, 0x0F, 0x26, 0x65, 0x57, 0x68, 0x66, 0x65, 0xB1, 0x67, 0x24, 0x74, 0xC6, 0x74, + 0x92, 0xF6, 0xE1, 0xF0, 0x3C, 0x10, 0x28, 0x00, 0xD9, 0x81, 0x08, 0x00, 0xD9, 0xC1, 0x18, 0x00, + 0x04, 0x80, 0x08, 0xC0, 0x00, 0x30, 0xB9, 0x21, 0x04, 0x00, 0x06, 0xB3, 0x06, 0xA4, 0x06, 0x95, + 0x06, 0xE8, 0x2C, 0xC0, 0x00, 0x49, 0x04, 0xD0, 0x06, 0x28, 0x06, 0x3D, 0x06, 0x41, 0x4B, 0xF3, + 0x00, 0x00, 0xC4, 0x20, 0x82, 0x23, 0x30, 0x21, 0x38, 0x71, 0x04, 0x00, 0x06, 0x62, 0xC4, 0x71, + 0x57, 0x61, 0x26, 0x6C, 0x30, 0x66, 0x82, 0x02, 0x67, 0x68, 0x5C, 0x60, 0xFF, 0x0F, 0xCC, 0x60, + 0x13, 0x05, 0x12, 0x05, 0xC4, 0xB0, 0x04, 0x31, 0x82, 0x10, 0xF2, 0x07, 0xCC, 0x60, 0xFC, 0x08, + 0x02, 0x0D, 0xC4, 0xB0, 0x82, 0x0A, 0x04, 0x30, 0x06, 0x4A, 0x4B, 0xF5, 0x00, 0x00, 0x30, 0x51, + 0x2F, 0x6E, 0x0E, 0x00, 0x26, 0x69, 0xA1, 0x56, 0x24, 0xE1, 0x24, 0xD1, 0xC4, 0xDD, 0x92, 0xD5, + 0x24, 0x81, 0xCC, 0x80, 0x13, 0x00, 0x92, 0xD0, 0x06, 0x2E, 0x58, 0xC1, 0x18, 0x00, 0x58, 0x81, + 0x08, 0x00, 0x2C, 0x10, 0x28, 0x00, 0xE1, 0xF0, 0x98, 0x70, 0x5D, 0x16, 0x3C, 0x10, 0xA0, 0x04, + 0xD9, 0xC1, 0x90, 0x04, 0xD9, 0x81, 0x80, 0x04, 0x06, 0x42, 0x82, 0x4A, 0x06, 0x23, 0x06, 0x51, + 0x04, 0x31, 0xAB, 0x1C, 0x01, 0x00, 0x86, 0xD2, 0x02, 0x43, 0x04, 0x23, 0x4B, 0xC4, 0x00, 0x00, + 0x04, 0x21, 0x0B, 0xBB, 0x00, 0x00, 0x34, 0xD1, 0x04, 0x21, 0x26, 0xDD, 0x14, 0xA2, 0x08, 0xB0, + 0x00, 0x30, 0x0B, 0xBA, 0x00, 0x00, 0x26, 0xD1, 0x26, 0xA1, 0x2C, 0xB0, 0x00, 0x49, 0x20, 0x7D, + 0x0C, 0xC0, 0xFF, 0x0F, 0x57, 0x71, 0x2F, 0x9B, 0x07, 0x00, 0x30, 0xE9, 0x56, 0xCE, 0x67, 0xE8, + 0x5C, 0xE0, 0xFF, 0x0F, 0xC6, 0xCE, 0x3F, 0x7E, 0x0C, 0x00, 0x02, 0x09, 0x06, 0x67, 0x06, 0x27, + 0xD7, 0x61, 0x57, 0x23, 0x36, 0x26, 0x36, 0x27, 0x26, 0x22, 0xF2, 0x05, 0x06, 0x27, 0x57, 0x22, + 0x57, 0x73, 0x26, 0x27, 0x0C, 0x30, 0x64, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0x26, 0x2E, 0xCC, 0x20, + 0xFF, 0x0F, 0x06, 0xE2, 0x02, 0x03, 0x0C, 0xE0, 0xFF, 0x0F, 0x34, 0xD2, 0x57, 0xE8, 0xC6, 0xDA, + 0x66, 0xEC, 0xB1, 0xE9, 0x92, 0xD5, 0x18, 0x20, 0x64, 0x16, 0x4B, 0xC4, 0x00, 0x00, 0x58, 0xC1, + 0x90, 0x04, 0x58, 0x81, 0x80, 0x04, 0x2C, 0x10, 0xA0, 0x04, 0xE1, 0xF0, 0x98, 0x50, 0x37, 0x11, + 0x38, 0x60, 0x40, 0x16, 0x18, 0x46, 0x78, 0x00, 0x18, 0x76, 0x77, 0x00, 0x92, 0x09, 0x98, 0x50, + 0x38, 0x11, 0x82, 0x06, 0x26, 0x65, 0x18, 0x66, 0x98, 0x00, 0x26, 0x76, 0x13, 0x77, 0x98, 0x60, + 0x63, 0x16, 0x82, 0x05, 0x24, 0x72, 0x24, 0x41, 0x13, 0x77, 0x13, 0x44, 0x10, 0x62, 0x04, 0x50, + 0xC6, 0x65, 0x82, 0x14, 0xC6, 0x67, 0xA2, 0x12, 0xCC, 0x60, 0x13, 0x00, 0xC2, 0x0B, 0x24, 0x41, + 0x06, 0x74, 0x57, 0x71, 0x57, 0x42, 0x26, 0x47, 0xC6, 0x64, 0x1C, 0x70, 0x10, 0x00, 0x32, 0x04, + 0xF2, 0x05, 0x0C, 0x70, 0x13, 0x00, 0x91, 0x72, 0x04, 0x51, 0x06, 0x25, 0xE1, 0xF0, 0x00, 0x00, + 0x0C, 0x40, 0x00, 0x10, 0x30, 0x74, 0x18, 0x60, 0x1A, 0x10, 0x08, 0x50, 0x0F, 0x00, 0x2C, 0x50, + 0xFF, 0xFF, 0x24, 0x71, 0x56, 0x75, 0x08, 0x50, 0x00, 0x3C, 0x66, 0x75, 0x06, 0x56, 0x57, 0x5A, + 0x08, 0x30, 0xF0, 0x00, 0x16, 0x66, 0x56, 0x53, 0xF7, 0x6F, 0x66, 0x75, 0x57, 0x6A, 0xB1, 0x74, + 0x6C, 0x60, 0x75, 0x00, 0xD7, 0x7A, 0x66, 0x67, 0x08, 0x70, 0x00, 0x30, 0xB9, 0x67, 0x00, 0x01, + 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x20, 0x80, 0x02, 0x04, 0x30, 0x0C, 0x40, 0x80, 0x04, + 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x00, 0x07, 0x04, 0x30, 0x0C, 0x40, + 0x80, 0x04, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0x80, 0x0B, 0x04, 0x30, 0x0C, 0x40, + 0x80, 0x04, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0xB1, 0xF1, 0x2B, 0x2C, 0x01, 0x00, 0x08, 0x70, 0x00, 0x80, 0x18, 0x27, 0x08, 0xDC, + 0x0B, 0x16, 0x03, 0x00, 0xEB, 0xC0, 0x01, 0x00, 0x0C, 0x70, 0x14, 0x00, 0xA9, 0x70, 0x20, 0x10, + 0xCB, 0xD4, 0x01, 0x00, 0x8B, 0x90, 0x03, 0x00, 0x38, 0x70, 0x40, 0x16, 0x30, 0xF1, 0x18, 0x57, + 0xD5, 0x00, 0x99, 0x50, 0xA6, 0x15, 0x18, 0x67, 0x57, 0x00, 0x99, 0x60, 0x05, 0x13, 0x0C, 0x60, + 0x40, 0x00, 0xB9, 0x60, 0x28, 0x11, 0x99, 0x00, 0xF8, 0x12, 0x99, 0x00, 0xF9, 0x12, 0x99, 0x00, + 0xFA, 0x12, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x2B, 0x19, 0x03, 0x00, + 0x4B, 0x3B, 0x02, 0x00, 0xCB, 0x45, 0x01, 0x00, 0x8B, 0x46, 0x01, 0x00, 0x6B, 0x73, 0x03, 0x00, + 0xCB, 0x25, 0x03, 0x00, 0x30, 0xF1, 0x99, 0x00, 0x1B, 0x10, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x0C, 0x20, 0xD4, 0x15, 0x04, 0x30, 0x0C, 0x40, 0x1C, 0x00, 0xB1, 0xF1, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, + 0x6B, 0x42, 0x01, 0x00, 0x6B, 0x3D, 0x02, 0x00, 0x8B, 0x10, 0x02, 0x00, 0x30, 0xF1, 0x24, 0x14, + 0xE1, 0xF0, 0x00, 0x00, 0x98, 0x70, 0x05, 0x10, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x82, 0x0A, + 0x18, 0x60, 0xC3, 0x13, 0xCC, 0x60, 0xC7, 0x00, 0xD2, 0x32, 0x24, 0x61, 0x99, 0x60, 0xC3, 0x13, + 0xF2, 0x2E, 0x99, 0x00, 0xC3, 0x13, 0xCB, 0x25, 0x03, 0x00, 0x99, 0x00, 0xCA, 0x13, 0x99, 0x00, + 0xD1, 0x13, 0x14, 0x71, 0x99, 0x70, 0xC7, 0x13, 0x99, 0x70, 0xC6, 0x13, 0x38, 0x60, 0x30, 0x16, + 0x06, 0xE7, 0xC4, 0x64, 0xC2, 0x09, 0x8B, 0x46, 0x01, 0x00, 0xCB, 0x45, 0x01, 0x00, 0x2B, 0x19, + 0x03, 0x00, 0x6B, 0x73, 0x03, 0x00, 0x38, 0x60, 0x2C, 0x16, 0x0C, 0x70, 0x14, 0x00, 0xC6, 0x67, + 0xD2, 0x04, 0x06, 0x76, 0x34, 0x71, 0x13, 0x77, 0x98, 0x60, 0x56, 0x16, 0x82, 0x02, 0x04, 0x70, + 0x38, 0x60, 0x30, 0x16, 0xC6, 0x67, 0xC2, 0x03, 0x4B, 0x3B, 0x02, 0x00, 0x98, 0x60, 0x25, 0x11, + 0x82, 0x06, 0xCC, 0x60, 0xF9, 0x00, 0xD2, 0x0F, 0x24, 0x61, 0xF2, 0x0B, 0x38, 0x60, 0xD4, 0x15, + 0x06, 0x56, 0x77, 0x56, 0xF7, 0x6A, 0x54, 0x5F, 0x54, 0x67, 0xA6, 0x65, 0x82, 0x04, 0x04, 0x61, + 0x99, 0x60, 0x25, 0x11, 0x98, 0x60, 0xC2, 0x13, 0x06, 0xD7, 0x92, 0x07, 0x38, 0x70, 0xD4, 0x15, + 0xD4, 0x71, 0x92, 0x03, 0xCB, 0x25, 0x03, 0x00, 0x38, 0x50, 0xD4, 0x15, 0x06, 0x75, 0x18, 0x40, + 0xC4, 0x13, 0x77, 0x76, 0x54, 0x7F, 0xC6, 0x47, 0x32, 0x04, 0x99, 0x70, 0xC4, 0x13, 0xF2, 0x0A, + 0x06, 0x75, 0xDC, 0x70, 0x00, 0xF0, 0x92, 0x06, 0x98, 0x70, 0xC2, 0x13, 0x92, 0x03, 0x99, 0x00, + 0xC4, 0x13, 0x98, 0x70, 0x66, 0x16, 0x82, 0x1A, 0x28, 0x70, 0x06, 0x10, 0x1C, 0x60, 0xE1, 0x0C, + 0x56, 0x76, 0xA9, 0x70, 0x06, 0x10, 0xEB, 0x32, 0x01, 0x00, 0x4B, 0x39, 0x03, 0x00, 0x4B, 0x3C, + 0x03, 0x00, 0x6B, 0x73, 0x03, 0x00, 0x99, 0x00, 0xB4, 0x11, 0x38, 0x70, 0x40, 0x16, 0x99, 0x00, + 0x1A, 0x10, 0x18, 0x67, 0x57, 0x00, 0x99, 0x60, 0x05, 0x13, 0x98, 0x70, 0x0A, 0x16, 0x82, 0x0A, + 0x18, 0x70, 0x1B, 0x10, 0xCC, 0x70, 0xFF, 0x00, 0x82, 0x07, 0x24, 0x71, 0x99, 0x70, 0x1B, 0x10, + 0xF2, 0x03, 0x99, 0x00, 0x1B, 0x10, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0xB1, 0xF1, 0xEB, 0x32, 0x01, 0x00, 0xAB, 0x19, 0x03, 0x00, 0x6B, 0xE2, 0x02, 0x00, + 0x4B, 0x00, 0x03, 0x00, 0x4B, 0x42, 0x02, 0x00, 0x4B, 0x12, 0x02, 0x00, 0x4B, 0x9C, 0x01, 0x00, + 0x8B, 0x4D, 0x01, 0x00, 0x98, 0x70, 0xC2, 0x13, 0x82, 0x07, 0x99, 0x00, 0xEE, 0x15, 0xAB, 0x33, + 0x01, 0x00, 0x04, 0x20, 0xF2, 0x1A, 0x38, 0x70, 0x40, 0x16, 0x98, 0x77, 0xB8, 0x00, 0x92, 0x06, + 0x8B, 0xD5, 0x01, 0x00, 0x2B, 0xC9, 0x01, 0x00, 0xF2, 0x05, 0x2B, 0xC9, 0x01, 0x00, 0x8B, 0xD5, + 0x01, 0x00, 0x4B, 0x54, 0x03, 0x00, 0x4B, 0x3C, 0x03, 0x00, 0x4B, 0x35, 0x03, 0x00, 0x4B, 0x61, + 0x03, 0x00, 0x6B, 0x41, 0x03, 0x00, 0x04, 0x21, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, + 0x18, 0x20, 0x0A, 0x16, 0x18, 0x30, 0xEE, 0x15, 0x34, 0x14, 0xB1, 0xF1, 0xCB, 0x93, 0x03, 0x00, + 0xAB, 0x7A, 0x03, 0x00, 0x4B, 0x73, 0x03, 0x00, 0x8B, 0x61, 0x03, 0x00, 0x2B, 0x6A, 0x03, 0x00, + 0xAB, 0x33, 0x01, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0x0C, 0x20, + 0xB5, 0x13, 0x04, 0x30, 0x04, 0x45, 0xC1, 0xE1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, + 0x10, 0x13, 0x04, 0x30, 0x0C, 0x40, 0x50, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0xE0, + 0x00, 0x10, 0x99, 0x0E, 0xBF, 0x03, 0x0C, 0x20, 0x78, 0x15, 0x04, 0x30, 0x0C, 0x40, 0x28, 0x00, + 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x99, 0x0E, 0xA1, 0x05, 0x0C, 0x20, 0xD4, 0x15, 0x04, 0x30, + 0x04, 0x44, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0xD8, 0x15, 0x04, 0x30, 0x0C, 0x40, + 0x14, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x99, 0x0E, 0xEE, 0x05, 0xA9, 0x0E, 0xEC, 0x05, + 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x20, 0x2E, 0x11, 0x04, 0x30, + 0x04, 0x4C, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, + 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x60, 0x40, 0x16, 0x34, 0x14, 0xB1, 0xF1, 0x0C, 0x70, 0x00, 0x10, + 0x98, 0x57, 0xCD, 0x03, 0x28, 0x26, 0x74, 0x00, 0x82, 0x04, 0x28, 0x26, 0x7C, 0x00, 0xF2, 0x08, + 0x98, 0x77, 0xCE, 0x03, 0x82, 0x05, 0x28, 0x76, 0x7C, 0x00, 0x26, 0x27, 0x23, 0x22, 0x06, 0x32, + 0xAB, 0x9A, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x30, 0x00, + 0xD9, 0xC1, 0x20, 0x00, 0xD9, 0x81, 0x10, 0x00, 0x06, 0xD3, 0x06, 0xA3, 0x0C, 0xC0, 0x00, 0x10, + 0x04, 0x81, 0x57, 0xD2, 0xD7, 0xA1, 0x26, 0xDC, 0x26, 0xAC, 0xB1, 0x51, 0x26, 0x84, 0x04, 0xB8, + 0x0C, 0x50, 0xBE, 0x01, 0x06, 0x62, 0x26, 0xBD, 0x26, 0x5A, 0x04, 0x74, 0x13, 0x88, 0x0C, 0x20, + 0x10, 0x03, 0x06, 0xE3, 0x99, 0x8B, 0x12, 0x03, 0x06, 0x94, 0x06, 0x35, 0x06, 0x47, 0x26, 0x2D, + 0xB9, 0x61, 0x0C, 0x00, 0xB9, 0x51, 0x04, 0x00, 0xB9, 0x71, 0x08, 0x00, 0x8B, 0xE0, 0x03, 0x00, + 0x38, 0x71, 0x08, 0x00, 0x38, 0x51, 0x04, 0x00, 0x0C, 0x20, 0x14, 0x03, 0x26, 0x2D, 0x06, 0x47, + 0x06, 0x35, 0x8B, 0xE0, 0x03, 0x00, 0x28, 0x7A, 0xC2, 0x01, 0x26, 0xC9, 0x99, 0x7B, 0x13, 0x03, + 0x30, 0x71, 0x99, 0x7D, 0x1C, 0x03, 0x28, 0x7A, 0xBC, 0x01, 0xA9, 0x7B, 0x10, 0x03, 0x38, 0x61, + 0x0C, 0x00, 0x26, 0x6E, 0x91, 0x86, 0x24, 0xE1, 0x99, 0xEC, 0xB5, 0x03, 0x99, 0x0C, 0xB0, 0x03, + 0x58, 0xC1, 0x20, 0x00, 0x58, 0x81, 0x10, 0x00, 0x2C, 0x10, 0x30, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0xE8, 0x00, 0xD9, 0xC1, 0xD8, 0x00, 0x38, 0x70, 0x40, 0x16, 0xD9, 0x81, 0xC8, 0x00, + 0x0C, 0x60, 0x77, 0x00, 0x26, 0x67, 0x10, 0x66, 0x18, 0xE7, 0x78, 0x00, 0xB9, 0x61, 0x98, 0x00, + 0x0C, 0x20, 0x7A, 0x00, 0x0C, 0x60, 0x79, 0x00, 0x26, 0x67, 0x26, 0x27, 0x10, 0x66, 0x10, 0x72, + 0x04, 0xB0, 0xB9, 0x61, 0xAC, 0x00, 0xB9, 0x71, 0xB0, 0x00, 0x0C, 0xA0, 0x6C, 0x13, 0x06, 0x9B, + 0x0C, 0x80, 0x00, 0x10, 0x18, 0x78, 0xC0, 0x03, 0x06, 0xD8, 0xC6, 0x97, 0x32, 0x0F, 0x14, 0x72, + 0x26, 0x7A, 0x90, 0x77, 0x82, 0x07, 0x06, 0x2A, 0xEB, 0x26, 0x01, 0x00, 0xC4, 0x20, 0x82, 0x02, + 0x24, 0xB1, 0x24, 0x91, 0x2C, 0xA0, 0x10, 0x00, 0xF2, 0xEE, 0xC4, 0xB0, 0x99, 0x08, 0x38, 0x01, + 0x78, 0x38, 0x2E, 0x01, 0x78, 0x68, 0x32, 0x01, 0x78, 0x48, 0x30, 0x01, 0x78, 0x78, 0x34, 0x01, + 0x82, 0x22, 0x3F, 0x66, 0x03, 0x00, 0xC4, 0x60, 0x38, 0x50, 0x40, 0x16, 0x32, 0x02, 0x16, 0x66, + 0x28, 0x35, 0x8C, 0x00, 0x43, 0x66, 0xC6, 0x63, 0x32, 0x16, 0x3F, 0x77, 0x04, 0x00, 0xC4, 0x70, + 0x32, 0x02, 0x16, 0x77, 0x28, 0x65, 0x8E, 0x00, 0x43, 0x77, 0xC6, 0x76, 0x32, 0x03, 0x04, 0x71, + 0xF2, 0x08, 0x28, 0x65, 0x90, 0x00, 0xC6, 0x76, 0x32, 0x03, 0x04, 0x72, 0xF2, 0x02, 0x04, 0x73, + 0x99, 0x7D, 0x38, 0x01, 0x98, 0x7D, 0x37, 0x01, 0x92, 0x0F, 0x98, 0x7D, 0x38, 0x01, 0x82, 0x0C, + 0x38, 0x60, 0x40, 0x16, 0x26, 0x76, 0x18, 0x77, 0x98, 0x00, 0x38, 0x61, 0x98, 0x00, 0x26, 0x76, + 0x13, 0x77, 0xB9, 0x71, 0x98, 0x00, 0x38, 0x70, 0x40, 0x16, 0x18, 0x6D, 0xC3, 0x03, 0x18, 0x77, + 0x98, 0x00, 0xC6, 0x67, 0xB2, 0x07, 0x98, 0x7D, 0x36, 0x01, 0x82, 0x04, 0x04, 0x71, 0x99, 0x7D, + 0x37, 0x01, 0x98, 0x70, 0x63, 0x16, 0x82, 0x09, 0x38, 0x71, 0x98, 0x00, 0x24, 0xE1, 0x24, 0x72, + 0x13, 0x77, 0xB9, 0x71, 0x98, 0x00, 0x13, 0xEE, 0x0C, 0x20, 0x88, 0x00, 0x26, 0x21, 0x04, 0x30, + 0x04, 0x45, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x28, 0x7D, 0x06, 0x00, 0xDC, 0x70, 0xE0, 0x0C, + 0x82, 0x12, 0x6B, 0x42, 0x01, 0x00, 0x4B, 0x39, 0x03, 0x00, 0x04, 0x71, 0x99, 0x7D, 0xB8, 0x01, + 0x38, 0x70, 0x40, 0x16, 0x99, 0x0D, 0xC2, 0x03, 0x18, 0x77, 0x57, 0x00, 0x99, 0x7D, 0x05, 0x03, + 0xFA, 0x17, 0x03, 0x00, 0x98, 0x7D, 0xC1, 0x03, 0x99, 0x0D, 0xB8, 0x01, 0x82, 0x04, 0x34, 0x71, + 0x99, 0x7D, 0xC1, 0x03, 0x98, 0xCD, 0x04, 0x00, 0x92, 0x05, 0x98, 0x7D, 0xC0, 0x03, 0x8A, 0x06, + 0x03, 0x00, 0x98, 0x3D, 0xC0, 0x03, 0x92, 0x1D, 0x0C, 0x20, 0x60, 0x13, 0x0C, 0x40, 0x50, 0x00, + 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x98, 0xED, 0xC1, 0x03, 0x9A, 0xF8, 0x02, 0x00, 0xC6, 0xEC, + 0x32, 0x0C, 0x0C, 0x20, 0x88, 0x00, 0x06, 0x3E, 0x06, 0x4E, 0x26, 0x21, 0x0C, 0x50, 0x14, 0x00, + 0x6B, 0x48, 0x01, 0x00, 0x24, 0xE1, 0xF2, 0xF4, 0x99, 0xCD, 0xBF, 0x03, 0xFA, 0xE7, 0x02, 0x00, + 0x0C, 0x20, 0x78, 0x00, 0x04, 0x31, 0x26, 0x21, 0x04, 0x46, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x18, 0x3D, 0xC0, 0x03, 0x04, 0x70, 0x06, 0x5D, 0xB9, 0x71, 0x9C, 0x00, 0x06, 0x67, 0xC6, 0x63, + 0x32, 0x12, 0x18, 0x45, 0x6C, 0x03, 0xCC, 0x40, 0x13, 0x00, 0xC2, 0x04, 0x04, 0x21, 0xB9, 0x21, + 0x9C, 0x00, 0x34, 0x41, 0xCC, 0x40, 0x12, 0x00, 0xD2, 0x02, 0x04, 0x71, 0x24, 0x61, 0x2C, 0x50, + 0x10, 0x00, 0xF2, 0xEE, 0xC4, 0x70, 0x82, 0x04, 0x04, 0x60, 0xB9, 0x61, 0x9C, 0x00, 0xAB, 0x46, + 0x01, 0x00, 0x38, 0x70, 0x40, 0x16, 0xB9, 0x21, 0x94, 0x00, 0x18, 0xB7, 0x76, 0x00, 0x06, 0x3B, + 0x4B, 0xA1, 0x00, 0x00, 0x06, 0x3B, 0x4B, 0xA1, 0x00, 0x00, 0x24, 0xE2, 0x06, 0x7E, 0x57, 0x71, + 0x57, 0xE2, 0x26, 0x7E, 0xB9, 0x71, 0xB4, 0x00, 0x14, 0x61, 0x04, 0x70, 0xB9, 0x21, 0xA8, 0x00, + 0x04, 0xB2, 0xB9, 0x71, 0xA4, 0x00, 0xB9, 0x61, 0x90, 0x00, 0x06, 0x21, 0x14, 0x31, 0x0C, 0x40, + 0x78, 0x00, 0x0C, 0x90, 0x80, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x26, 0x91, 0x06, 0x29, + 0x14, 0x31, 0x04, 0x45, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x34, 0xB1, 0x13, 0xBB, 0x0C, 0xA0, + 0xBE, 0x11, 0x06, 0x51, 0x04, 0xE0, 0xC6, 0xEC, 0x3A, 0x8E, 0x00, 0x00, 0xC4, 0xB0, 0x38, 0x71, + 0x94, 0x00, 0x92, 0x09, 0xB8, 0x71, 0x9C, 0x00, 0x82, 0x04, 0x38, 0x71, 0x94, 0x00, 0xF2, 0x03, + 0x38, 0x71, 0xA8, 0x00, 0x0C, 0x60, 0x80, 0x00, 0x26, 0x61, 0x26, 0x6E, 0x0C, 0x90, 0x00, 0x10, + 0x04, 0x81, 0xB9, 0x61, 0xA0, 0x00, 0x18, 0x6D, 0xC0, 0x03, 0x14, 0x41, 0x26, 0x48, 0xC6, 0x46, + 0x32, 0x6C, 0x98, 0x49, 0x6A, 0x03, 0x18, 0x69, 0x6D, 0x03, 0x82, 0x63, 0x0C, 0x20, 0x6C, 0x03, + 0x26, 0x29, 0xB9, 0x51, 0xC4, 0x00, 0xB9, 0x61, 0xC0, 0x00, 0xB9, 0x71, 0xBC, 0x00, 0xEB, 0x26, + 0x01, 0x00, 0xC6, 0x2B, 0x38, 0x51, 0xC4, 0x00, 0x38, 0x61, 0xC0, 0x00, 0x38, 0x71, 0xBC, 0x00, + 0x92, 0x50, 0x04, 0x42, 0xD6, 0x46, 0x82, 0x0A, 0x70, 0x4A, 0xCC, 0x40, 0xCF, 0x02, 0x12, 0x06, + 0x78, 0x4A, 0x02, 0x00, 0xCC, 0x40, 0xFF, 0x04, 0x02, 0x1D, 0xD4, 0x61, 0x82, 0x0A, 0x70, 0x6A, + 0xCC, 0x60, 0xCF, 0x02, 0x12, 0x17, 0x78, 0x6A, 0x02, 0x00, 0xCC, 0x60, 0xFF, 0x04, 0x12, 0x12, + 0x78, 0x29, 0x64, 0x03, 0x70, 0x6A, 0x36, 0x26, 0xC4, 0x20, 0x32, 0x02, 0x16, 0x22, 0x78, 0x49, + 0x66, 0x03, 0x78, 0x6A, 0x02, 0x00, 0x3F, 0x66, 0x04, 0x00, 0xC4, 0x60, 0x32, 0x07, 0x16, 0x66, + 0xF2, 0x05, 0x0C, 0x60, 0x00, 0x05, 0x0C, 0x20, 0xD0, 0x02, 0x06, 0x32, 0xB9, 0x51, 0xC4, 0x00, + 0xB9, 0x71, 0xBC, 0x00, 0xB9, 0x61, 0xC0, 0x00, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x61, 0xC0, 0x00, + 0x06, 0x42, 0x06, 0x36, 0x06, 0x26, 0xB9, 0x41, 0xB8, 0x00, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x41, + 0xB8, 0x00, 0x38, 0x71, 0xBC, 0x00, 0x38, 0x51, 0xC4, 0x00, 0x26, 0x24, 0xC6, 0x27, 0x32, 0x05, + 0x38, 0x71, 0xA0, 0x00, 0x91, 0x87, 0x06, 0x72, 0x06, 0x68, 0x57, 0x61, 0x26, 0x65, 0xB1, 0x26, + 0x24, 0x81, 0x2C, 0x90, 0x10, 0x00, 0xF2, 0x90, 0x24, 0xE1, 0x2C, 0x50, 0x18, 0x00, 0x24, 0xA8, + 0xFA, 0x73, 0xFF, 0xFF, 0x04, 0x60, 0xB9, 0x61, 0xA0, 0x00, 0x38, 0x61, 0xA0, 0x00, 0xC6, 0x6C, + 0x3A, 0xF7, 0x00, 0x00, 0xC4, 0xB0, 0x38, 0x61, 0x94, 0x00, 0x92, 0x06, 0xB8, 0x71, 0x9C, 0x00, + 0x92, 0x03, 0x38, 0x61, 0xA8, 0x00, 0x04, 0x41, 0x04, 0x70, 0x0C, 0x50, 0x88, 0x00, 0x26, 0x51, + 0x26, 0x57, 0x90, 0x25, 0x92, 0x18, 0x0C, 0x50, 0x80, 0x00, 0x26, 0x51, 0x26, 0x57, 0x60, 0x35, + 0x2F, 0x57, 0x07, 0x00, 0x26, 0x57, 0x26, 0x55, 0x26, 0x53, 0x57, 0x51, 0x26, 0x51, 0x30, 0x55, + 0xC6, 0x56, 0x32, 0x09, 0xC4, 0x50, 0x22, 0x07, 0xC4, 0x30, 0x22, 0x05, 0x06, 0x65, 0xB9, 0x71, + 0x90, 0x00, 0x06, 0x42, 0x24, 0x71, 0xC6, 0x7C, 0x22, 0xE1, 0xC4, 0x40, 0x9A, 0xC2, 0x00, 0x00, + 0x38, 0xE1, 0x90, 0x00, 0x38, 0x61, 0xA4, 0x00, 0x57, 0xE2, 0x26, 0xED, 0x98, 0x7E, 0x1A, 0x03, + 0x24, 0x61, 0x0C, 0x80, 0x10, 0x03, 0xB9, 0x61, 0xA4, 0x00, 0x26, 0x8E, 0x9A, 0xB2, 0x00, 0x00, + 0x38, 0x71, 0x90, 0x00, 0x04, 0x34, 0x26, 0x71, 0x68, 0x97, 0x80, 0x00, 0x06, 0x28, 0x26, 0x39, + 0x57, 0x32, 0x26, 0x3D, 0x2C, 0x30, 0x10, 0x03, 0x0C, 0x40, 0x10, 0x00, 0x0C, 0xF0, 0xEC, 0x00, + 0xF1, 0xF0, 0x38, 0xA1, 0x90, 0x00, 0x0C, 0x70, 0xBE, 0x01, 0xD7, 0xA1, 0x26, 0xAD, 0x26, 0x7A, + 0x06, 0x37, 0x04, 0x44, 0x06, 0x28, 0xB9, 0x71, 0xBC, 0x00, 0x8B, 0xE0, 0x03, 0x00, 0x28, 0x6A, + 0xC2, 0x01, 0x04, 0x24, 0x99, 0x6E, 0x1B, 0x03, 0x38, 0x71, 0xBC, 0x00, 0x04, 0x44, 0x06, 0x37, + 0x26, 0x28, 0x8B, 0xE0, 0x03, 0x00, 0x28, 0x7A, 0xBC, 0x01, 0x18, 0x4E, 0x1C, 0x03, 0xA9, 0x7E, + 0x18, 0x03, 0x38, 0x71, 0x98, 0x00, 0xC6, 0x74, 0x22, 0x25, 0x18, 0x5D, 0xC0, 0x03, 0x18, 0x7E, + 0x19, 0x03, 0x18, 0x3E, 0x18, 0x03, 0xC4, 0x52, 0x38, 0x60, 0x40, 0x16, 0xC2, 0x04, 0x28, 0x66, + 0x2A, 0x00, 0xF2, 0x08, 0xC4, 0x52, 0x92, 0x04, 0x28, 0x66, 0x28, 0x00, 0xF2, 0x03, 0x28, 0x66, + 0x26, 0x00, 0x2F, 0x57, 0x07, 0x00, 0x26, 0x57, 0x57, 0x51, 0x26, 0x75, 0x26, 0x37, 0x26, 0x33, + 0x0C, 0x20, 0x80, 0x0B, 0x26, 0x32, 0x70, 0x73, 0xC6, 0x76, 0x02, 0x04, 0x24, 0x41, 0x99, 0x4E, + 0x1C, 0x03, 0x18, 0x7E, 0x1C, 0x03, 0xCC, 0x70, 0x13, 0x00, 0xC2, 0x09, 0x38, 0x61, 0xB4, 0x00, + 0xC6, 0x76, 0x32, 0x05, 0x2C, 0x70, 0x14, 0x00, 0x99, 0x7E, 0x1C, 0x03, 0x38, 0x61, 0x90, 0x00, + 0x18, 0x7E, 0x1A, 0x03, 0x18, 0xFD, 0xC0, 0x03, 0x0C, 0xA0, 0x88, 0x00, 0x26, 0xA1, 0x26, 0x6A, + 0x91, 0x76, 0x38, 0x61, 0x90, 0x00, 0x34, 0x71, 0x26, 0x7D, 0x24, 0x61, 0x99, 0x67, 0xB5, 0x03, + 0x99, 0x07, 0xB0, 0x03, 0x06, 0x29, 0x2F, 0x79, 0x01, 0x00, 0x99, 0x07, 0x78, 0x00, 0x57, 0x21, + 0x06, 0x51, 0x04, 0x70, 0x14, 0xE1, 0xC4, 0xB0, 0x2F, 0x62, 0x05, 0x00, 0xB1, 0xE6, 0x38, 0x41, + 0x94, 0x00, 0x92, 0x06, 0xB8, 0x61, 0x9C, 0x00, 0x92, 0x03, 0x38, 0x41, 0xA8, 0x00, 0x2F, 0x67, + 0x0A, 0x00, 0x90, 0x66, 0x82, 0x07, 0x24, 0x71, 0xC6, 0x7C, 0x2C, 0x50, 0x18, 0x00, 0x22, 0xEC, + 0xF2, 0x12, 0x0C, 0x90, 0x80, 0x00, 0x26, 0x91, 0x26, 0x97, 0xC6, 0x6F, 0x32, 0xF5, 0x24, 0x61, + 0x06, 0x36, 0x57, 0x31, 0x26, 0x35, 0xB0, 0x33, 0x22, 0xF9, 0xC6, 0x34, 0x32, 0xF7, 0x91, 0x69, + 0x06, 0x43, 0xF2, 0xF4, 0x18, 0x7D, 0xC0, 0x03, 0x38, 0x61, 0xA4, 0x00, 0xC6, 0x67, 0x32, 0x08, + 0x38, 0x71, 0xA0, 0x00, 0x24, 0x71, 0xB9, 0x71, 0xA0, 0x00, 0xFA, 0x08, 0xFF, 0xFF, 0xC4, 0xB0, + 0x9A, 0x5D, 0xFE, 0xFF, 0x99, 0x0D, 0xC2, 0x03, 0x0C, 0x80, 0x6C, 0x13, 0x06, 0xEB, 0x06, 0xAB, + 0x18, 0x6D, 0xC0, 0x03, 0xC6, 0xE6, 0x32, 0x0C, 0x0C, 0x60, 0x78, 0x00, 0x24, 0xE1, 0x26, 0x61, + 0x26, 0x6E, 0x90, 0x66, 0x82, 0x76, 0x2F, 0x6A, 0x0C, 0x00, 0xC4, 0x64, 0x02, 0x0F, 0x28, 0x7D, + 0x06, 0x00, 0x04, 0x64, 0xD6, 0x67, 0x82, 0x71, 0x38, 0x61, 0xB0, 0x00, 0x14, 0x25, 0x56, 0x72, + 0x99, 0x6D, 0xC1, 0x03, 0xA9, 0x7D, 0x06, 0x00, 0xF2, 0x68, 0x14, 0x52, 0x26, 0x58, 0x10, 0x55, + 0x38, 0x71, 0xAC, 0x00, 0x06, 0x95, 0x34, 0x91, 0xB9, 0x51, 0x90, 0x00, 0x26, 0x9D, 0x0C, 0x50, + 0xA0, 0x00, 0x26, 0x59, 0x18, 0x45, 0x10, 0x03, 0x14, 0x3C, 0xC6, 0x47, 0x26, 0x38, 0xB2, 0x3C, + 0xC4, 0xA4, 0x12, 0x3A, 0x06, 0x28, 0xB9, 0x31, 0xB8, 0x00, 0xB9, 0x51, 0xC4, 0x00, 0xB9, 0x61, + 0xC0, 0x00, 0xEB, 0x26, 0x01, 0x00, 0xC4, 0x20, 0x38, 0x31, 0xB8, 0x00, 0x38, 0x51, 0xC4, 0x00, + 0x38, 0x61, 0xC0, 0x00, 0x82, 0x29, 0x18, 0x45, 0x10, 0x03, 0x06, 0x26, 0x57, 0x22, 0x24, 0x41, + 0x26, 0x2D, 0x99, 0x45, 0x10, 0x03, 0x2C, 0x20, 0x10, 0x03, 0x0C, 0x40, 0x10, 0x00, 0xB9, 0x61, + 0xC0, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x38, 0x61, 0xC0, 0x00, 0x38, 0x71, 0x90, 0x00, + 0x0C, 0x50, 0x88, 0x00, 0x26, 0x51, 0x26, 0x56, 0x91, 0x75, 0x98, 0x5D, 0x1A, 0x00, 0x24, 0x61, + 0x99, 0x69, 0xB5, 0x03, 0x04, 0x61, 0x99, 0x6D, 0xC2, 0x03, 0x24, 0xA1, 0x24, 0xB1, 0x92, 0x19, + 0x99, 0x6D, 0x1A, 0x00, 0xF2, 0x16, 0x06, 0x28, 0xEB, 0x26, 0x01, 0x00, 0xC4, 0x20, 0x82, 0x11, + 0x04, 0x61, 0x99, 0x6D, 0x36, 0x01, 0x10, 0x68, 0xCC, 0x60, 0x13, 0x00, 0xC2, 0x0A, 0x18, 0x6D, + 0xC0, 0x03, 0xC4, 0x61, 0x92, 0x06, 0x28, 0x6D, 0x06, 0x00, 0x64, 0x64, 0xA9, 0x6D, 0x06, 0x00, + 0x2C, 0x80, 0x10, 0x00, 0xFA, 0x7E, 0xFF, 0xFF, 0x0C, 0x60, 0x00, 0x10, 0x0C, 0x70, 0x6D, 0x13, + 0x2C, 0x60, 0xBD, 0x03, 0x04, 0xA0, 0x10, 0x57, 0xD4, 0x52, 0x82, 0x02, 0x04, 0xA1, 0x2C, 0x70, + 0x10, 0x00, 0xC6, 0x76, 0x92, 0xF9, 0x18, 0x9D, 0x04, 0x00, 0x04, 0xE0, 0x0C, 0x40, 0x00, 0x10, + 0x0C, 0x60, 0xC0, 0x11, 0x06, 0x5E, 0x2C, 0x40, 0x54, 0x05, 0xC6, 0x59, 0x22, 0x05, 0x0C, 0x80, + 0x1C, 0x13, 0x04, 0x90, 0xF2, 0x3D, 0x14, 0x72, 0x26, 0x76, 0x70, 0x37, 0x06, 0x7F, 0x0C, 0x70, + 0x44, 0x15, 0x78, 0x27, 0x04, 0x00, 0xC6, 0x23, 0x12, 0x0E, 0x78, 0x27, 0x06, 0x00, 0xC6, 0x23, + 0x22, 0x0A, 0x70, 0x26, 0x70, 0x87, 0xC6, 0x82, 0x12, 0x06, 0x78, 0x87, 0x02, 0x00, 0xC6, 0x82, + 0x22, 0x02, 0x04, 0xE1, 0x24, 0x78, 0xC6, 0x74, 0x92, 0xED, 0x24, 0x51, 0x24, 0x68, 0xF2, 0xDE, + 0x0C, 0x70, 0x88, 0x00, 0x26, 0x71, 0x26, 0x79, 0x90, 0x47, 0x92, 0x14, 0x0C, 0x70, 0xB5, 0x13, + 0xE0, 0x67, 0x92, 0x1B, 0xE8, 0x67, 0x05, 0x00, 0x92, 0x18, 0xC4, 0xA1, 0x0C, 0x20, 0x88, 0x00, + 0x26, 0x21, 0x06, 0x39, 0x92, 0x10, 0xC4, 0xE0, 0x0C, 0x50, 0x13, 0x00, 0x92, 0x0C, 0x6B, 0x48, + 0x01, 0x00, 0x98, 0x7D, 0xC1, 0x03, 0x92, 0x0E, 0x24, 0x91, 0x2C, 0x80, 0x10, 0x00, 0xC6, 0x9C, + 0x22, 0xE0, 0xF2, 0x10, 0x04, 0x51, 0xF2, 0xF4, 0x24, 0x41, 0xC4, 0x45, 0x24, 0x71, 0x92, 0xE1, + 0xF2, 0xF1, 0x06, 0x28, 0xEB, 0x26, 0x01, 0x00, 0xC4, 0x20, 0x92, 0xEF, 0x04, 0x71, 0x91, 0x78, + 0xF2, 0xEC, 0x26, 0xBC, 0x99, 0xBD, 0xBF, 0x03, 0xF2, 0x03, 0x99, 0x0D, 0xC2, 0x03, 0x58, 0xC1, + 0xD8, 0x00, 0x58, 0x81, 0xC8, 0x00, 0x2C, 0x10, 0xE8, 0x00, 0xE1, 0xF0, 0x38, 0x70, 0x40, 0x16, + 0x3C, 0x10, 0x48, 0x01, 0xD9, 0xC1, 0x38, 0x01, 0xD9, 0x81, 0x28, 0x01, 0x18, 0xE7, 0x46, 0x00, + 0x18, 0xB7, 0x47, 0x00, 0x2F, 0xDE, 0x0E, 0x00, 0x16, 0x7D, 0x0C, 0x60, 0x13, 0x00, 0x26, 0x67, + 0x2F, 0xCB, 0x0B, 0x00, 0xB9, 0x61, 0xF4, 0x00, 0x16, 0x6C, 0xB9, 0x61, 0xF8, 0x00, 0x24, 0x6D, + 0xB9, 0x61, 0xF0, 0x00, 0x0C, 0x60, 0x78, 0x00, 0x26, 0x61, 0x0C, 0xA0, 0x00, 0x10, 0x06, 0x26, + 0x0C, 0x30, 0x78, 0x00, 0xB9, 0x71, 0x20, 0x01, 0xA9, 0x0A, 0x06, 0x03, 0xB9, 0x0A, 0x08, 0x03, + 0xB9, 0x61, 0x1C, 0x01, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x06, 0x21, 0x0C, 0x30, 0x78, 0x00, + 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x2F, 0x5E, 0x0D, 0x00, 0x57, 0x51, 0x26, 0x5E, 0xB9, 0x51, + 0x0C, 0x01, 0x38, 0x71, 0x20, 0x01, 0x04, 0x5D, 0x36, 0x5B, 0x26, 0xDA, 0xB9, 0x51, 0x04, 0x01, + 0x0C, 0x50, 0x13, 0x00, 0x26, 0xCA, 0xB9, 0xD1, 0xFC, 0x00, 0x36, 0x5E, 0x04, 0xD0, 0x2C, 0x70, + 0x12, 0x00, 0x2C, 0xC0, 0x3A, 0x01, 0x06, 0x8D, 0x06, 0x9D, 0xB9, 0x51, 0x08, 0x01, 0xB9, 0x71, + 0x10, 0x01, 0x38, 0x61, 0x04, 0x01, 0xC6, 0xB6, 0x3A, 0x85, 0x00, 0x00, 0x38, 0x71, 0x0C, 0x01, + 0x26, 0x7B, 0x26, 0x77, 0x0C, 0x60, 0x80, 0x02, 0x26, 0x67, 0x0C, 0x50, 0x78, 0x00, 0xB9, 0x61, + 0x00, 0x01, 0x26, 0x51, 0x04, 0x60, 0x06, 0x76, 0x26, 0x5D, 0x38, 0x21, 0x08, 0x01, 0x2F, 0x4E, + 0x07, 0x00, 0xC6, 0x42, 0x32, 0x17, 0x38, 0xF1, 0xFC, 0x00, 0x38, 0x41, 0x00, 0x01, 0x70, 0x2C, + 0x2F, 0x37, 0x07, 0x00, 0x26, 0x3F, 0x26, 0x46, 0x78, 0x33, 0x76, 0x01, 0x70, 0x44, 0x26, 0x32, + 0x26, 0x43, 0x30, 0x35, 0x26, 0x94, 0x26, 0x43, 0xB1, 0x45, 0x24, 0x71, 0x2C, 0x60, 0x1A, 0x00, + 0xF2, 0xE5, 0x0C, 0x70, 0x78, 0x00, 0x26, 0x71, 0x26, 0x7D, 0x30, 0x27, 0x38, 0x31, 0xF4, 0x00, + 0xB9, 0x71, 0x20, 0x01, 0x4B, 0xA1, 0x00, 0x00, 0x38, 0x71, 0x20, 0x01, 0x04, 0x60, 0xB1, 0x27, + 0x06, 0x52, 0x06, 0x76, 0x2F, 0x4D, 0x01, 0x00, 0x38, 0x21, 0x08, 0x01, 0x2F, 0x3E, 0x07, 0x00, + 0xC6, 0x32, 0x32, 0x2E, 0x38, 0x31, 0x00, 0x01, 0x70, 0xFC, 0x26, 0x36, 0x70, 0x33, 0x2F, 0x27, + 0x07, 0x00, 0x36, 0x35, 0xB9, 0x31, 0x24, 0x01, 0x38, 0x31, 0xFC, 0x00, 0x26, 0x23, 0x78, 0x22, + 0x76, 0x01, 0xB9, 0x41, 0x18, 0x01, 0xB9, 0x51, 0x14, 0x01, 0x26, 0x2F, 0x38, 0xF1, 0x24, 0x01, + 0xB9, 0x61, 0x1C, 0x01, 0xB9, 0x71, 0x20, 0x01, 0x26, 0x2F, 0x06, 0x32, 0xAB, 0x9A, 0x00, 0x00, + 0x38, 0x41, 0x18, 0x01, 0x38, 0x71, 0x20, 0x01, 0x38, 0x61, 0x1C, 0x01, 0x30, 0x34, 0x38, 0x51, + 0x14, 0x01, 0x26, 0x23, 0xB1, 0x24, 0x24, 0x71, 0x2C, 0x60, 0x1A, 0x00, 0xF2, 0xCE, 0x2F, 0x7D, + 0x01, 0x00, 0x30, 0x27, 0x38, 0x31, 0x10, 0x01, 0xB9, 0x71, 0x20, 0x01, 0x24, 0xB1, 0x4B, 0xA1, + 0x00, 0x00, 0x38, 0x71, 0x20, 0x01, 0x26, 0x82, 0xB1, 0x27, 0x24, 0xD4, 0x24, 0xC2, 0xFA, 0x7A, + 0xFF, 0xFF, 0x38, 0x31, 0xF0, 0x00, 0x06, 0x28, 0x4B, 0xA1, 0x00, 0x00, 0x38, 0x31, 0xF0, 0x00, + 0x06, 0xD2, 0x38, 0x21, 0xF4, 0x00, 0xAB, 0x9A, 0x00, 0x00, 0x06, 0x32, 0x06, 0x29, 0x4B, 0xA1, + 0x00, 0x00, 0x38, 0x8A, 0x08, 0x03, 0x43, 0xB2, 0x06, 0xC2, 0xA9, 0xBA, 0x06, 0x03, 0x04, 0x90, + 0x38, 0x71, 0xF0, 0x00, 0xC6, 0x97, 0x32, 0x0D, 0x06, 0x79, 0x57, 0x71, 0x26, 0x71, 0x30, 0x27, + 0x24, 0x91, 0x3F, 0x22, 0x0D, 0x00, 0x06, 0x32, 0xAB, 0x9A, 0x00, 0x00, 0x26, 0x82, 0xF2, 0xF1, + 0x38, 0x31, 0xF8, 0x00, 0x06, 0x28, 0x24, 0x3C, 0x4B, 0xA1, 0x00, 0x00, 0x38, 0x31, 0x04, 0x01, + 0x06, 0xDA, 0x4B, 0xA1, 0x00, 0x00, 0x0C, 0x30, 0x13, 0x00, 0x36, 0x3E, 0x4B, 0xA1, 0x00, 0x00, + 0x86, 0x22, 0x32, 0x03, 0x2C, 0x20, 0xFF, 0x03, 0xC4, 0xB0, 0x67, 0x25, 0xB9, 0x2D, 0x08, 0x03, + 0x92, 0x04, 0x24, 0xC1, 0xA9, 0xCA, 0x06, 0x03, 0x58, 0xC1, 0x38, 0x01, 0x58, 0x81, 0x28, 0x01, + 0x2C, 0x10, 0x48, 0x01, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x48, 0x00, 0xD9, 0xC1, 0x38, 0x00, + 0x38, 0x70, 0x40, 0x16, 0xD9, 0x81, 0x28, 0x00, 0x0C, 0x30, 0x58, 0x00, 0x26, 0x37, 0x30, 0xB7, + 0x10, 0x73, 0xB1, 0x71, 0x98, 0x70, 0x56, 0x16, 0x06, 0x87, 0x0C, 0x80, 0x00, 0x10, 0x92, 0x26, + 0x28, 0x78, 0xFC, 0x02, 0xCC, 0x70, 0x14, 0x00, 0x0C, 0x70, 0x80, 0x0B, 0x78, 0x67, 0xEA, 0x01, + 0xC2, 0x0E, 0xCC, 0x60, 0x80, 0x01, 0x02, 0x1A, 0x78, 0x77, 0xEC, 0x01, 0xCC, 0x70, 0x80, 0x01, + 0x02, 0x15, 0x28, 0x78, 0x06, 0x00, 0x6C, 0x70, 0x00, 0x08, 0xF2, 0x0E, 0xCC, 0x60, 0x95, 0x00, + 0x12, 0x0D, 0x78, 0x77, 0xEC, 0x01, 0xCC, 0x70, 0x95, 0x00, 0x12, 0x08, 0x28, 0x78, 0x06, 0x00, + 0x1C, 0x50, 0x01, 0x08, 0x56, 0x75, 0xA9, 0x78, 0x06, 0x00, 0x18, 0x78, 0x04, 0x00, 0xC4, 0x71, + 0x92, 0x54, 0x18, 0x68, 0xCB, 0x03, 0x0C, 0x70, 0x64, 0x00, 0xC4, 0x65, 0xD2, 0x02, 0x04, 0x70, + 0x18, 0x58, 0xBC, 0x01, 0x18, 0x68, 0xBD, 0x01, 0x34, 0x54, 0x13, 0x55, 0xC4, 0x52, 0x14, 0x56, + 0x26, 0x56, 0x2C, 0x70, 0x1E, 0x00, 0x13, 0x55, 0xD2, 0x06, 0xC4, 0x55, 0xD2, 0x09, 0x28, 0x68, + 0xF0, 0x02, 0xF2, 0x0B, 0xC4, 0x55, 0xD2, 0x07, 0x28, 0x68, 0xF2, 0x02, 0xF2, 0x06, 0x28, 0x68, + 0xF4, 0x02, 0xF2, 0x03, 0x28, 0x68, 0xF6, 0x02, 0xC6, 0x67, 0x02, 0x13, 0x28, 0x78, 0x06, 0x00, + 0x6C, 0x70, 0x00, 0x04, 0xA9, 0x78, 0x06, 0x00, 0x0C, 0x70, 0x1E, 0x00, 0x99, 0x78, 0xF9, 0x02, + 0x18, 0x78, 0xF8, 0x02, 0xC4, 0x79, 0x12, 0x1B, 0x24, 0x71, 0x99, 0x78, 0xF8, 0x02, 0xF2, 0x17, + 0x98, 0x78, 0xF9, 0x02, 0x99, 0x08, 0xF8, 0x02, 0x82, 0x05, 0x34, 0x71, 0x99, 0x78, 0xF9, 0x02, + 0xF2, 0x0E, 0x28, 0x78, 0x06, 0x00, 0x0C, 0x60, 0x00, 0x04, 0xD6, 0x67, 0x82, 0x03, 0x99, 0x08, + 0xFA, 0x02, 0x1C, 0x60, 0x01, 0x04, 0x56, 0x76, 0xA9, 0x78, 0x06, 0x00, 0x98, 0x78, 0xFA, 0x02, + 0x82, 0x04, 0x34, 0x71, 0x99, 0x78, 0xFA, 0x02, 0x0C, 0x70, 0x00, 0x20, 0xD6, 0x7B, 0x8A, 0xA3, + 0x00, 0x00, 0x18, 0x78, 0xC0, 0x03, 0x04, 0xC1, 0xC4, 0x70, 0x92, 0x05, 0x18, 0xC8, 0x04, 0x00, + 0x16, 0xCC, 0xF7, 0xCF, 0xEB, 0x89, 0x01, 0x00, 0x28, 0x78, 0x08, 0x00, 0x78, 0x48, 0x06, 0x03, + 0x04, 0x50, 0x3F, 0x24, 0x07, 0x00, 0xC4, 0x29, 0x02, 0x0D, 0x04, 0x3A, 0xB9, 0x41, 0x1C, 0x00, + 0xB9, 0x71, 0x18, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0x38, 0x71, 0x18, 0x00, 0x38, 0x41, 0x1C, 0x00, + 0x06, 0x52, 0x0C, 0x60, 0x00, 0x03, 0x26, 0x68, 0x20, 0x66, 0x98, 0x98, 0x04, 0x00, 0x38, 0xA8, + 0x08, 0x03, 0xB9, 0x61, 0x04, 0x00, 0x82, 0x35, 0x38, 0xE0, 0x40, 0x16, 0x28, 0x3E, 0x4C, 0x00, + 0xC6, 0x73, 0xB2, 0x2F, 0x26, 0x77, 0x06, 0x27, 0x57, 0x21, 0x26, 0x27, 0x06, 0x34, 0xB9, 0x51, + 0x18, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0x86, 0x22, 0x38, 0x51, 0x18, 0x00, 0x32, 0x02, 0x04, 0x20, + 0x28, 0x7E, 0x4E, 0x00, 0xC6, 0x27, 0xB2, 0x1D, 0x28, 0x7E, 0x50, 0x00, 0xC6, 0x57, 0xB2, 0x19, + 0x28, 0x2E, 0x52, 0x00, 0x06, 0x39, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x71, 0x04, 0x00, 0xC6, 0x72, + 0xC2, 0x10, 0xC4, 0xA0, 0x06, 0x7A, 0x32, 0x02, 0x04, 0x70, 0x78, 0x5E, 0x54, 0x00, 0xC6, 0x75, + 0xA2, 0x04, 0x98, 0x78, 0xFA, 0x02, 0x82, 0x05, 0x98, 0x78, 0xB4, 0x01, 0x8A, 0xFB, 0x00, 0x00, + 0x38, 0x50, 0x40, 0x16, 0x18, 0x75, 0x56, 0x00, 0xC6, 0xA7, 0x22, 0x14, 0xC4, 0x90, 0x82, 0x12, + 0x28, 0x78, 0x06, 0x00, 0xDC, 0x70, 0x80, 0x00, 0x92, 0x0D, 0x18, 0x78, 0x05, 0x03, 0x18, 0x65, + 0x59, 0x00, 0xC6, 0x67, 0xC2, 0x07, 0x30, 0x91, 0xC6, 0x79, 0xC2, 0x04, 0x24, 0x71, 0x99, 0x78, + 0x05, 0x03, 0x18, 0x78, 0x05, 0x03, 0x30, 0x51, 0xC6, 0x75, 0x28, 0x78, 0x06, 0x00, 0xD2, 0x0C, + 0xC4, 0xC1, 0x92, 0x0A, 0x6C, 0x70, 0x80, 0x00, 0xA9, 0x78, 0x06, 0x00, 0x38, 0x70, 0x40, 0x16, + 0x18, 0x77, 0x5A, 0x00, 0xF2, 0x16, 0x0C, 0x60, 0x80, 0x00, 0xD6, 0x67, 0x82, 0x14, 0x98, 0x68, + 0x04, 0x03, 0x92, 0x0D, 0x1C, 0x60, 0x81, 0x00, 0x56, 0x76, 0xA9, 0x78, 0x06, 0x00, 0x38, 0x70, + 0x40, 0x16, 0x18, 0x77, 0x57, 0x00, 0x99, 0x78, 0x05, 0x03, 0xF2, 0x05, 0x06, 0x76, 0x34, 0x71, + 0x99, 0x78, 0x04, 0x03, 0x98, 0x38, 0x04, 0x00, 0x8A, 0x0A, 0x01, 0x00, 0x38, 0xF0, 0x40, 0x16, + 0x28, 0x68, 0x06, 0x00, 0x0C, 0x70, 0x61, 0x00, 0x26, 0x7F, 0x10, 0x77, 0x18, 0x2F, 0x62, 0x00, + 0x0C, 0x40, 0x10, 0x00, 0xD6, 0x46, 0xB9, 0x71, 0x24, 0x00, 0x18, 0x7F, 0x63, 0x00, 0x82, 0x0E, + 0x38, 0x91, 0x24, 0x00, 0xC6, 0x97, 0xC2, 0x07, 0x06, 0x59, 0x36, 0x57, 0x13, 0x55, 0xB9, 0x51, + 0x24, 0x00, 0xF2, 0x04, 0x04, 0xC1, 0xB9, 0xC1, 0x24, 0x00, 0x0C, 0x50, 0xCB, 0x03, 0x26, 0x58, + 0x10, 0x55, 0x0C, 0x70, 0xC4, 0x03, 0xB9, 0x51, 0x04, 0x00, 0x26, 0x78, 0x0C, 0x50, 0xB0, 0x02, + 0x10, 0x77, 0x26, 0x58, 0x20, 0x55, 0xB9, 0x71, 0x08, 0x00, 0x04, 0x92, 0x04, 0x40, 0x56, 0x9B, + 0x54, 0xB4, 0xB9, 0x51, 0x0C, 0x00, 0x0C, 0x70, 0x70, 0x12, 0x06, 0xA3, 0x06, 0xE4, 0x06, 0xD4, + 0xB9, 0x91, 0x10, 0x00, 0xB9, 0xB1, 0x14, 0x00, 0xA8, 0x37, 0x08, 0x00, 0x82, 0x30, 0x38, 0xB1, + 0x10, 0x00, 0x04, 0xC0, 0xC6, 0xBC, 0x82, 0x1E, 0x38, 0xC1, 0x04, 0x00, 0xC4, 0xC5, 0xC2, 0x04, + 0x2C, 0x20, 0x14, 0x00, 0x13, 0x22, 0xC6, 0x32, 0xC2, 0x06, 0x6C, 0x60, 0x20, 0x00, 0x04, 0xA0, + 0x04, 0xC1, 0xF2, 0x10, 0x0C, 0xB0, 0x20, 0x00, 0x04, 0xC0, 0x56, 0xB6, 0xC6, 0xBC, 0x82, 0x0A, + 0xC4, 0xA1, 0xD2, 0x08, 0x1C, 0xB0, 0x14, 0x00, 0x26, 0xB2, 0xC6, 0x3B, 0x32, 0x03, 0x5C, 0x60, + 0xDF, 0xFF, 0xB8, 0x51, 0x14, 0x00, 0x82, 0x0B, 0x38, 0x91, 0x08, 0x00, 0xC4, 0x91, 0xD2, 0x07, + 0xC4, 0xC0, 0x92, 0x05, 0x38, 0xB1, 0x24, 0x00, 0xC6, 0x3B, 0xB2, 0x50, 0x24, 0x7C, 0x0C, 0xB0, + 0xAC, 0x12, 0xC6, 0x7B, 0x92, 0xCA, 0xC4, 0xD0, 0x99, 0xA8, 0x04, 0x00, 0xA9, 0x68, 0x06, 0x00, + 0x8A, 0x89, 0x00, 0x00, 0x04, 0xC0, 0x0C, 0x90, 0xDC, 0x11, 0x18, 0x78, 0x04, 0x00, 0xC6, 0xC7, + 0x32, 0x26, 0x06, 0x7E, 0x63, 0x7C, 0xD4, 0x71, 0x82, 0x20, 0x06, 0x2C, 0xD7, 0x21, 0x2C, 0x20, + 0xBC, 0x01, 0x06, 0xBC, 0x26, 0x28, 0x18, 0x78, 0x04, 0x00, 0xC6, 0xB7, 0xB2, 0x14, 0xC4, 0xB4, + 0x04, 0xA8, 0x26, 0xA2, 0x92, 0x08, 0x06, 0x29, 0x04, 0x30, 0x04, 0x48, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0xF2, 0x06, 0x06, 0x3A, 0x04, 0x48, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x24, 0xB1, + 0x06, 0x2A, 0xF2, 0xEA, 0xF7, 0xE0, 0x34, 0xC1, 0x24, 0xC1, 0xF2, 0xD8, 0x3F, 0xDD, 0x07, 0x00, + 0x28, 0x78, 0x06, 0x00, 0x99, 0xD8, 0x04, 0x00, 0x6C, 0x70, 0x10, 0x00, 0xA9, 0x78, 0x06, 0x00, + 0xF2, 0x56, 0x98, 0x78, 0x05, 0x03, 0x8A, 0x1E, 0xFF, 0xFF, 0x18, 0x6E, 0x5B, 0x00, 0xC6, 0x67, + 0xAA, 0x19, 0xFF, 0xFF, 0x34, 0x71, 0xFA, 0x14, 0xFF, 0xFF, 0x18, 0x3F, 0x60, 0x00, 0x38, 0x51, + 0x0C, 0x00, 0xC6, 0x35, 0xB2, 0xAC, 0x18, 0x37, 0x0A, 0x00, 0x2F, 0xB3, 0x03, 0x00, 0x26, 0xB3, + 0x26, 0xBB, 0x26, 0xB8, 0xE8, 0x9B, 0xB2, 0x02, 0xB1, 0x91, 0x02, 0xA1, 0x06, 0x94, 0x63, 0x93, + 0xD4, 0x91, 0x92, 0x9D, 0x0C, 0x50, 0xB3, 0x02, 0x26, 0x5B, 0x10, 0x55, 0x0C, 0x90, 0x00, 0x10, + 0xD7, 0x51, 0x26, 0x59, 0x30, 0x97, 0xA9, 0x95, 0xBE, 0x01, 0x38, 0x97, 0x04, 0x00, 0xA9, 0x95, + 0xC0, 0x01, 0x04, 0x51, 0x53, 0x53, 0x06, 0x35, 0x66, 0x34, 0x23, 0x43, 0x04, 0x32, 0x26, 0x3C, + 0x13, 0x33, 0x26, 0x3B, 0x18, 0x93, 0xB2, 0x02, 0x24, 0xC1, 0x06, 0x39, 0xD7, 0x31, 0x26, 0x38, + 0xA9, 0x03, 0xBE, 0x01, 0xA9, 0x03, 0xC0, 0x01, 0xA9, 0x03, 0xC2, 0x01, 0x04, 0x31, 0x53, 0x39, + 0x30, 0x91, 0x66, 0x3E, 0xC6, 0x9C, 0x23, 0xE3, 0x92, 0xEA, 0x26, 0xD9, 0x23, 0xDD, 0xFA, 0x6F, + 0xFF, 0xFF, 0x1C, 0xC0, 0x11, 0x00, 0x56, 0x6C, 0xA9, 0x68, 0x06, 0x00, 0x58, 0xC1, 0x38, 0x00, + 0x58, 0x81, 0x28, 0x00, 0x2C, 0x10, 0x48, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x20, 0x00, + 0xD9, 0xC1, 0x10, 0x00, 0x08, 0xD0, 0x01, 0x00, 0xD1, 0x81, 0x0C, 0xC0, 0x24, 0x10, 0x04, 0xE0, + 0x2C, 0xD0, 0xA0, 0x6D, 0x06, 0x2E, 0x04, 0x3B, 0x0B, 0x9E, 0x00, 0x00, 0x2C, 0xE0, 0x20, 0x1C, + 0xC6, 0xED, 0x2C, 0x20, 0x47, 0x01, 0xB1, 0x2C, 0x24, 0xC4, 0x92, 0xF5, 0x08, 0xD0, 0x03, 0x00, + 0x0C, 0xC0, 0xA4, 0x10, 0x04, 0xE0, 0x2C, 0xD0, 0x00, 0xE8, 0x06, 0x2E, 0x0C, 0x30, 0x12, 0x00, + 0x0B, 0x9E, 0x00, 0x00, 0x2C, 0xE0, 0x00, 0x32, 0xC6, 0xED, 0x2C, 0x20, 0x63, 0x01, 0xB1, 0x2C, + 0x24, 0xC4, 0x92, 0xF4, 0x08, 0xD0, 0x00, 0x80, 0x0C, 0xC0, 0x00, 0x10, 0x0C, 0x90, 0x54, 0x05, + 0x0C, 0xE0, 0x44, 0x15, 0x2C, 0xD0, 0x1A, 0xDC, 0x26, 0x9C, 0x18, 0x7D, 0x05, 0x00, 0x1C, 0x20, + 0x47, 0x01, 0x24, 0x79, 0x57, 0x71, 0x26, 0x7C, 0x30, 0xA7, 0x04, 0x3A, 0x26, 0x2A, 0x0B, 0x9E, + 0x00, 0x00, 0x10, 0x7D, 0xA9, 0x2E, 0x04, 0x00, 0x1C, 0x20, 0x63, 0x01, 0x2C, 0x70, 0x29, 0x00, + 0x57, 0x71, 0x26, 0x7C, 0x30, 0xB7, 0x04, 0x3A, 0x26, 0x2B, 0x0B, 0x9E, 0x00, 0x00, 0xA1, 0x2E, + 0x0C, 0x20, 0x47, 0x01, 0x04, 0x3A, 0x26, 0x2A, 0x0B, 0x9E, 0x00, 0x00, 0xA9, 0x2E, 0x06, 0x00, + 0x0C, 0x20, 0x63, 0x01, 0x26, 0x2B, 0x04, 0x3A, 0x0B, 0x9E, 0x00, 0x00, 0xA9, 0x2E, 0x02, 0x00, + 0x24, 0xE8, 0xC6, 0xE9, 0x24, 0xD1, 0x92, 0xD2, 0x58, 0xC1, 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, + 0x20, 0x00, 0xE1, 0xF0, 0x38, 0x60, 0x40, 0x16, 0x06, 0x72, 0x28, 0x66, 0xB6, 0x00, 0xC4, 0x70, + 0x13, 0x56, 0x32, 0x02, 0x16, 0x27, 0xC6, 0x25, 0x02, 0x0B, 0xC6, 0x75, 0x0C, 0x40, 0xFF, 0x00, + 0x56, 0x46, 0x02, 0x04, 0x3F, 0x44, 0x03, 0x00, 0xF2, 0x02, 0x26, 0x43, 0x23, 0x44, 0x06, 0x24, + 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x70, 0x40, 0x16, 0x3C, 0x10, 0x24, 0x00, 0xD9, 0xC1, 0x14, 0x00, + 0xD9, 0x81, 0x04, 0x00, 0x30, 0x77, 0xDC, 0x70, 0x10, 0x00, 0x82, 0x41, 0x0C, 0xC0, 0x00, 0x10, + 0x98, 0x9C, 0xBF, 0x03, 0x82, 0x3C, 0x98, 0x8C, 0xC0, 0x03, 0x82, 0x39, 0x0C, 0xE0, 0x10, 0x13, + 0x04, 0xD0, 0xC6, 0xD9, 0x32, 0x34, 0x06, 0x6A, 0x0C, 0x60, 0x6A, 0x13, 0x04, 0x70, 0xC6, 0x78, + 0x32, 0x2A, 0x2C, 0x60, 0x10, 0x00, 0x1C, 0x50, 0x10, 0x00, 0x26, 0x56, 0x18, 0x4E, 0x0A, 0x00, + 0x10, 0x55, 0xC6, 0x45, 0x92, 0x1E, 0x24, 0x75, 0x57, 0x72, 0x26, 0x7C, 0x78, 0x47, 0x10, 0x03, + 0x78, 0xB7, 0x12, 0x03, 0x70, 0x3E, 0x78, 0x7E, 0x02, 0x00, 0x3F, 0x24, 0x03, 0x00, 0x36, 0x7B, + 0x23, 0x33, 0x23, 0x44, 0xB1, 0x71, 0xAB, 0xC7, 0x01, 0x00, 0xA1, 0x2E, 0x30, 0x71, 0x28, 0x3E, + 0x02, 0x00, 0x06, 0x27, 0x23, 0x4B, 0xAB, 0xC7, 0x01, 0x00, 0xA9, 0x2E, 0x02, 0x00, 0xF2, 0x03, + 0x24, 0x71, 0xF2, 0xD6, 0x24, 0xD1, 0x2C, 0xE0, 0x10, 0x00, 0xF2, 0xCC, 0x58, 0xC1, 0x14, 0x00, + 0x58, 0x81, 0x04, 0x00, 0x2C, 0x10, 0x24, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0xC6, 0x34, 0x3C, 0x10, + 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, 0xD1, 0x81, 0x06, 0xE2, 0x78, 0xA1, 0x20, 0x00, 0x78, 0xC1, + 0x24, 0x00, 0x78, 0xD1, 0x28, 0x00, 0x32, 0x05, 0xA1, 0xC2, 0xA9, 0xD2, 0x02, 0x00, 0xF2, 0x20, + 0xC6, 0x35, 0x22, 0x05, 0xA1, 0x62, 0xA9, 0xA2, 0x02, 0x00, 0xF2, 0x1A, 0x3F, 0x94, 0x03, 0x00, + 0x06, 0x29, 0x3F, 0x3C, 0x06, 0x00, 0x3F, 0xB4, 0x05, 0x00, 0xAB, 0x9A, 0x00, 0x00, 0x06, 0x3B, + 0x4B, 0xA1, 0x00, 0x00, 0x26, 0x2C, 0xA1, 0x2E, 0x3F, 0x3D, 0x0A, 0x00, 0x06, 0x29, 0xAB, 0x9A, + 0x00, 0x00, 0x06, 0x3B, 0x4B, 0xA1, 0x00, 0x00, 0x26, 0x2D, 0xA9, 0x2E, 0x02, 0x00, 0x58, 0xC1, + 0x10, 0x00, 0x50, 0x81, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x2F, 0x72, 0x02, 0x00, + 0x26, 0x72, 0x06, 0x67, 0x57, 0x62, 0x26, 0x76, 0x26, 0x27, 0x0C, 0x70, 0x00, 0x10, 0x2C, 0x20, + 0xD4, 0x03, 0x26, 0x27, 0x06, 0x72, 0x04, 0x69, 0x34, 0x61, 0xC4, 0x60, 0xA9, 0x07, 0x24, 0x00, + 0xA9, 0x07, 0x26, 0x00, 0x34, 0x74, 0x92, 0xF9, 0x04, 0x71, 0x99, 0x72, 0x28, 0x00, 0x38, 0x70, + 0x40, 0x16, 0xA9, 0x02, 0x2A, 0x00, 0x18, 0x77, 0x9E, 0x00, 0x99, 0x02, 0x2D, 0x00, 0xA9, 0x02, + 0x32, 0x00, 0x99, 0x72, 0x2C, 0x00, 0x14, 0x71, 0xA9, 0x02, 0x30, 0x00, 0xA9, 0x02, 0x2E, 0x00, + 0xA1, 0x72, 0xA9, 0x72, 0x02, 0x00, 0xE1, 0xF0, 0x34, 0x18, 0xC1, 0xE1, 0x04, 0xE0, 0x06, 0x2E, + 0xEB, 0xD1, 0x01, 0x00, 0x24, 0xE1, 0xC4, 0xE5, 0x92, 0xFB, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, + 0x38, 0x70, 0x40, 0x16, 0x3C, 0x10, 0x8C, 0x00, 0x0C, 0x60, 0xB4, 0x00, 0xD9, 0xC1, 0x7C, 0x00, + 0xD9, 0x81, 0x6C, 0x00, 0x26, 0x67, 0x10, 0x66, 0xB9, 0x61, 0x3C, 0x00, 0x30, 0x67, 0xD4, 0x68, + 0x8A, 0x98, 0x03, 0x00, 0x18, 0xB7, 0x9C, 0x00, 0x06, 0xD7, 0x04, 0xE0, 0x28, 0x2D, 0xA0, 0x00, + 0x04, 0xCC, 0x26, 0xC1, 0x06, 0x3B, 0xAB, 0x9A, 0x00, 0x00, 0x26, 0xCE, 0x24, 0xE4, 0xCC, 0xE0, + 0x28, 0x00, 0xB1, 0x2C, 0x24, 0xD2, 0x92, 0xF3, 0x0C, 0xD0, 0x00, 0x10, 0x98, 0x7D, 0xBF, 0x03, + 0x92, 0x05, 0xCB, 0xD4, 0x01, 0x00, 0xFA, 0x7D, 0x03, 0x00, 0x04, 0x70, 0x06, 0xED, 0xB9, 0x71, + 0x38, 0x00, 0x38, 0x71, 0x38, 0x00, 0x26, 0x7D, 0xE8, 0xA7, 0xB5, 0x03, 0x82, 0x15, 0x0C, 0x60, + 0x40, 0x16, 0x30, 0x76, 0x34, 0xA1, 0x98, 0x77, 0xB5, 0x00, 0x57, 0xA2, 0x26, 0xAD, 0x0C, 0xB0, + 0x10, 0x03, 0x26, 0xBA, 0x9A, 0xD6, 0x00, 0x00, 0x04, 0x2C, 0x26, 0x2B, 0xEB, 0x26, 0x01, 0x00, + 0xC4, 0x20, 0x9A, 0xCF, 0x00, 0x00, 0x38, 0x21, 0x38, 0x00, 0xEB, 0xD1, 0x01, 0x00, 0x38, 0x71, + 0x38, 0x00, 0x2C, 0xE0, 0x34, 0x00, 0x24, 0x71, 0xC4, 0x75, 0xB9, 0x71, 0x38, 0x00, 0x92, 0xDA, + 0x18, 0x6D, 0x1A, 0x03, 0x99, 0x0D, 0xCF, 0x03, 0x34, 0x61, 0x2F, 0x76, 0x06, 0x00, 0x26, 0x76, + 0x06, 0x57, 0x57, 0x52, 0x26, 0x75, 0x26, 0x76, 0x2C, 0x70, 0xD4, 0x03, 0x26, 0x7D, 0x78, 0x57, + 0x08, 0x00, 0x38, 0x30, 0x40, 0x16, 0x78, 0x67, 0x04, 0x00, 0x36, 0x65, 0xC4, 0x60, 0x32, 0x02, + 0x16, 0x66, 0x28, 0x43, 0x80, 0x00, 0xC6, 0x64, 0x02, 0x06, 0xC4, 0x50, 0x82, 0x04, 0x04, 0x61, + 0x99, 0x6D, 0xCF, 0x03, 0x18, 0x6D, 0xBF, 0x03, 0xC4, 0x61, 0x9A, 0x87, 0x00, 0x00, 0x98, 0x6D, + 0xC0, 0x03, 0x8A, 0x1E, 0x03, 0x00, 0xF8, 0x67, 0x08, 0x00, 0x8A, 0x1A, 0x03, 0x00, 0xF8, 0x57, + 0x0A, 0x00, 0x8A, 0x16, 0x03, 0x00, 0xF8, 0x57, 0x04, 0x00, 0x8A, 0x12, 0x03, 0x00, 0xF8, 0x47, + 0x06, 0x00, 0x8A, 0x0E, 0x03, 0x00, 0x3F, 0x66, 0x05, 0x00, 0xC4, 0x60, 0x32, 0x02, 0x16, 0x66, + 0x28, 0x53, 0x7E, 0x00, 0xC6, 0x65, 0x02, 0x1E, 0x18, 0x4D, 0xCC, 0x03, 0x04, 0x61, 0x5C, 0x40, + 0xFC, 0x00, 0x99, 0x4D, 0xCC, 0x03, 0x99, 0x6D, 0xCA, 0x03, 0x78, 0xF7, 0x04, 0x00, 0x78, 0x27, + 0x08, 0x00, 0xC6, 0xF2, 0x02, 0x07, 0x64, 0x41, 0x99, 0x4D, 0xCC, 0x03, 0x04, 0x61, 0x04, 0x50, + 0xF2, 0x11, 0xC6, 0xF2, 0x04, 0x61, 0x04, 0x50, 0x32, 0x0D, 0x64, 0x42, 0x99, 0x4D, 0xCC, 0x03, + 0xF2, 0x09, 0x28, 0x43, 0x82, 0x00, 0x04, 0x51, 0xC6, 0x64, 0x12, 0x02, 0x04, 0x50, 0x13, 0x55, + 0x04, 0x60, 0x78, 0x27, 0x06, 0x00, 0x78, 0x47, 0x0A, 0x00, 0x3F, 0x44, 0x02, 0x00, 0xC4, 0x40, + 0x32, 0x02, 0x16, 0x44, 0x28, 0x23, 0x7E, 0x00, 0xC6, 0x42, 0x02, 0x1A, 0x18, 0x4D, 0xCC, 0x03, + 0x04, 0x31, 0x5C, 0x40, 0xF3, 0x00, 0x99, 0x4D, 0xCC, 0x03, 0x99, 0x3D, 0xCA, 0x03, 0x78, 0x37, + 0x06, 0x00, 0x78, 0x77, 0x0A, 0x00, 0xC6, 0x37, 0x02, 0x03, 0x64, 0x44, 0xF2, 0x04, 0xC6, 0x37, + 0x32, 0x04, 0x64, 0x48, 0x99, 0x4D, 0xCC, 0x03, 0x24, 0x61, 0x13, 0x66, 0xF2, 0x07, 0x28, 0x73, + 0x82, 0x00, 0xC6, 0x47, 0x02, 0x03, 0x24, 0x51, 0x13, 0x55, 0x98, 0x7D, 0xCD, 0x03, 0x92, 0x11, + 0xC4, 0x52, 0x92, 0x0C, 0x18, 0x7D, 0xCB, 0x03, 0xCC, 0x70, 0xFF, 0x00, 0x8A, 0xA9, 0x02, 0x00, + 0x24, 0x71, 0x99, 0x7D, 0xCB, 0x03, 0xFA, 0xA4, 0x02, 0x00, 0xC4, 0x60, 0x8A, 0xA1, 0x02, 0x00, + 0x99, 0x0D, 0xCB, 0x03, 0xFA, 0x9D, 0x02, 0x00, 0xC4, 0x62, 0x9A, 0xA3, 0x02, 0x00, 0x0C, 0x70, + 0x2E, 0x01, 0x26, 0x7D, 0x0C, 0x30, 0x10, 0x03, 0x06, 0x27, 0x26, 0x3D, 0x04, 0x44, 0x8B, 0xE0, + 0x03, 0x00, 0x06, 0x72, 0x04, 0x24, 0x26, 0x27, 0x0C, 0x30, 0x20, 0x03, 0xFA, 0x8E, 0x02, 0x00, + 0x78, 0x7A, 0x10, 0x03, 0xCC, 0x70, 0xCF, 0x02, 0x1A, 0x33, 0xFF, 0xFF, 0x78, 0x7A, 0x12, 0x03, + 0xCC, 0x70, 0xFF, 0x04, 0x1A, 0x2D, 0xFF, 0xFF, 0x0C, 0xC0, 0xD4, 0x03, 0x26, 0xCE, 0x06, 0x7C, + 0x04, 0x68, 0x28, 0x57, 0x20, 0x00, 0x34, 0x61, 0xA9, 0x57, 0x24, 0x00, 0x28, 0x57, 0x22, 0x00, + 0xC4, 0x60, 0xA9, 0x57, 0x26, 0x00, 0x34, 0x74, 0x92, 0xF5, 0x0C, 0x20, 0xD8, 0x03, 0x06, 0x3B, + 0x26, 0x2E, 0x04, 0x44, 0x8B, 0xE0, 0x03, 0x00, 0x04, 0x71, 0x99, 0x7D, 0xB6, 0x01, 0x18, 0x7E, + 0xFC, 0x03, 0x78, 0x2E, 0xD8, 0x03, 0x78, 0x3E, 0xDC, 0x03, 0xC4, 0x71, 0xC2, 0x12, 0x3F, 0x73, + 0x02, 0x00, 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, 0x43, 0x67, 0x78, 0x5E, 0xDA, 0x03, 0x78, 0x7E, + 0xDE, 0x03, 0x3F, 0x77, 0x05, 0x00, 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, 0x43, 0x87, 0xF2, 0x04, + 0x0C, 0x80, 0x64, 0x00, 0x06, 0x68, 0xB9, 0x61, 0x68, 0x00, 0x0C, 0xF0, 0xD4, 0x00, 0xF1, 0xF0, + 0x06, 0x92, 0x78, 0x3E, 0xDE, 0x03, 0x78, 0x2E, 0xDA, 0x03, 0x0C, 0xF0, 0xD4, 0x00, 0xF1, 0xF0, + 0x78, 0x3E, 0xE0, 0x03, 0xB9, 0x21, 0x34, 0x00, 0x06, 0x29, 0x0C, 0xF0, 0xD4, 0x00, 0xF1, 0xF0, + 0xB9, 0x21, 0x40, 0x00, 0x78, 0x3E, 0xE2, 0x03, 0x38, 0x21, 0x34, 0x00, 0x0C, 0xF0, 0xD4, 0x00, + 0xF1, 0xF0, 0xB9, 0x21, 0x44, 0x00, 0x78, 0x3E, 0xE4, 0x03, 0x78, 0x4E, 0xE8, 0x03, 0x38, 0x21, + 0x40, 0x00, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x48, 0x00, 0x78, 0x3E, 0xE6, 0x03, + 0x78, 0x4E, 0xEA, 0x03, 0x38, 0x21, 0x44, 0x00, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, 0xB9, 0x21, + 0x4C, 0x00, 0x78, 0x3E, 0xEC, 0x03, 0x78, 0x4E, 0xF0, 0x03, 0x38, 0x21, 0x48, 0x00, 0x0C, 0xF0, + 0xD8, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x50, 0x00, 0x78, 0x3E, 0xEE, 0x03, 0x78, 0x4E, 0xF2, 0x03, + 0x38, 0x21, 0x4C, 0x00, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, 0xB9, 0x21, 0x54, 0x00, 0x78, 0x3E, + 0xF4, 0x03, 0x78, 0x4E, 0xF8, 0x03, 0x38, 0x21, 0x50, 0x00, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, + 0xB9, 0x21, 0x58, 0x00, 0x78, 0x3E, 0xF6, 0x03, 0x78, 0x4E, 0xFA, 0x03, 0x38, 0x21, 0x54, 0x00, + 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, 0x38, 0x61, 0x68, 0x00, 0xB9, 0x21, 0x5C, 0x00, 0x06, 0x38, + 0x06, 0x26, 0x0C, 0xF0, 0x80, 0x00, 0xF1, 0xF0, 0x99, 0x20, 0x60, 0x16, 0x28, 0x7E, 0x04, 0x04, + 0x04, 0x31, 0xA9, 0x7E, 0x06, 0x04, 0x28, 0x7E, 0x02, 0x04, 0xA9, 0x2E, 0x02, 0x04, 0xA9, 0x7E, + 0x04, 0x04, 0x18, 0x7E, 0x01, 0x04, 0x26, 0x37, 0x26, 0x77, 0x2F, 0x63, 0x03, 0x00, 0x26, 0xC7, + 0x04, 0x70, 0x16, 0x66, 0x06, 0x27, 0x2F, 0x57, 0x0C, 0x00, 0x34, 0x72, 0x78, 0x55, 0x2E, 0x00, + 0xC6, 0x76, 0x26, 0x25, 0x92, 0xF9, 0x4B, 0xA1, 0x00, 0x00, 0x38, 0x71, 0x10, 0x00, 0x06, 0xC2, + 0xB9, 0x71, 0x60, 0x00, 0x38, 0x61, 0x60, 0x00, 0x04, 0x71, 0xC6, 0x26, 0x02, 0x11, 0x38, 0x61, + 0x18, 0x00, 0x04, 0x72, 0xC6, 0x26, 0x02, 0x0C, 0x38, 0x61, 0x20, 0x00, 0x04, 0x73, 0xC6, 0x26, + 0x02, 0x07, 0x38, 0x61, 0x28, 0x00, 0x04, 0x75, 0xC6, 0x26, 0x12, 0x02, 0x04, 0x74, 0x18, 0x6E, + 0x00, 0x04, 0x3F, 0x36, 0x07, 0x00, 0x0C, 0x70, 0x40, 0x16, 0x30, 0x47, 0x78, 0x7E, 0xFE, 0x03, + 0x18, 0x24, 0x9D, 0x00, 0xC4, 0x30, 0x16, 0x52, 0x02, 0x04, 0xC6, 0x72, 0x92, 0x0F, 0xF2, 0x05, + 0xC4, 0x30, 0x82, 0x06, 0xC6, 0x75, 0x92, 0x06, 0xA9, 0x0E, 0xFE, 0x03, 0xF2, 0x0A, 0xC4, 0x70, + 0x02, 0x03, 0x34, 0x71, 0xF2, 0x04, 0xC4, 0x70, 0x82, 0x04, 0x24, 0x71, 0xA9, 0x7E, 0xFE, 0x03, + 0x78, 0x7E, 0xFE, 0x03, 0x18, 0x44, 0x9D, 0x00, 0xC6, 0x74, 0x92, 0x05, 0xC4, 0x64, 0xD2, 0x03, + 0x24, 0x61, 0xF2, 0x0E, 0x28, 0x4D, 0x06, 0x00, 0xD4, 0x48, 0x82, 0x05, 0xC6, 0x75, 0x92, 0x0A, + 0xC4, 0x61, 0xF2, 0x04, 0xC6, 0x75, 0x92, 0x06, 0xC4, 0x63, 0xC2, 0x04, 0x34, 0x61, 0x99, 0x6E, + 0x00, 0x04, 0x18, 0x5E, 0xFC, 0x03, 0x38, 0x21, 0x58, 0x00, 0x06, 0x35, 0xB9, 0x51, 0x64, 0x00, + 0x4B, 0xA1, 0x00, 0x00, 0x38, 0x51, 0x64, 0x00, 0x43, 0x82, 0x38, 0x21, 0x5C, 0x00, 0x06, 0x35, + 0x4B, 0xA1, 0x00, 0x00, 0x18, 0x4E, 0x00, 0x04, 0x38, 0x51, 0x64, 0x00, 0xC4, 0x41, 0x43, 0x72, + 0x92, 0x35, 0xC4, 0x58, 0xC2, 0x0E, 0x38, 0x21, 0x58, 0x00, 0x04, 0x39, 0x4B, 0xA1, 0x00, 0x00, + 0x43, 0x82, 0x38, 0x21, 0x5C, 0x00, 0x04, 0x39, 0x4B, 0xA1, 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, + 0xC4, 0x56, 0xC2, 0x15, 0x38, 0x21, 0x50, 0x00, 0xB9, 0x71, 0x64, 0x00, 0x04, 0x37, 0x4B, 0xA1, + 0x00, 0x00, 0x43, 0x92, 0x38, 0x21, 0x54, 0x00, 0x04, 0x37, 0x4B, 0xA1, 0x00, 0x00, 0x38, 0x71, + 0x64, 0x00, 0x06, 0x48, 0x06, 0x57, 0x06, 0x89, 0x43, 0x72, 0xF2, 0x03, 0x06, 0x48, 0x06, 0x57, + 0xB9, 0x41, 0x04, 0x00, 0xB9, 0x51, 0x08, 0x00, 0xB1, 0x71, 0x06, 0x2B, 0x06, 0x3C, 0x38, 0x41, + 0x0C, 0x00, 0x38, 0x51, 0x60, 0x00, 0xFA, 0x9C, 0x00, 0x00, 0xC4, 0x42, 0x92, 0x34, 0xC4, 0x56, + 0xC2, 0x0E, 0x38, 0x21, 0x50, 0x00, 0x04, 0x37, 0x4B, 0xA1, 0x00, 0x00, 0x43, 0x82, 0x38, 0x21, + 0x54, 0x00, 0x04, 0x37, 0x4B, 0xA1, 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, 0xC4, 0x54, 0xC2, 0x15, + 0x38, 0x21, 0x48, 0x00, 0xB9, 0x71, 0x64, 0x00, 0x04, 0x35, 0x4B, 0xA1, 0x00, 0x00, 0x43, 0x92, + 0x38, 0x21, 0x4C, 0x00, 0x04, 0x35, 0x4B, 0xA1, 0x00, 0x00, 0x38, 0x71, 0x64, 0x00, 0x06, 0x48, + 0x06, 0x57, 0x06, 0x89, 0x43, 0x72, 0xF2, 0x03, 0x06, 0x48, 0x06, 0x57, 0xB9, 0x41, 0x04, 0x00, + 0xB9, 0x51, 0x08, 0x00, 0xB1, 0x71, 0x06, 0x2B, 0x06, 0x3C, 0x38, 0x41, 0x14, 0x00, 0x38, 0x51, + 0x18, 0x00, 0xF2, 0x66, 0xC4, 0x43, 0x92, 0x34, 0xC4, 0x54, 0xC2, 0x0E, 0x38, 0x21, 0x48, 0x00, + 0x04, 0x35, 0x4B, 0xA1, 0x00, 0x00, 0x43, 0x82, 0x38, 0x21, 0x4C, 0x00, 0x04, 0x35, 0x4B, 0xA1, + 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, 0xC4, 0x52, 0xC2, 0x15, 0x38, 0x21, 0x40, 0x00, 0xB9, 0x71, + 0x64, 0x00, 0x04, 0x33, 0x4B, 0xA1, 0x00, 0x00, 0x43, 0x92, 0x38, 0x21, 0x44, 0x00, 0x04, 0x33, + 0x4B, 0xA1, 0x00, 0x00, 0x38, 0x71, 0x64, 0x00, 0x06, 0x48, 0x06, 0x57, 0x06, 0x89, 0x43, 0x72, + 0xF2, 0x03, 0x06, 0x48, 0x06, 0x57, 0xB9, 0x41, 0x04, 0x00, 0xB9, 0x51, 0x08, 0x00, 0xB1, 0x71, + 0x06, 0x2B, 0x06, 0x3C, 0x38, 0x41, 0x1C, 0x00, 0x38, 0x51, 0x20, 0x00, 0xF2, 0x31, 0xC4, 0x44, + 0x92, 0x31, 0xC4, 0x52, 0xC2, 0x0E, 0x38, 0x21, 0x40, 0x00, 0x04, 0x33, 0x4B, 0xA1, 0x00, 0x00, + 0x43, 0x82, 0x38, 0x21, 0x44, 0x00, 0x04, 0x33, 0x4B, 0xA1, 0x00, 0x00, 0x43, 0x72, 0xF2, 0x03, + 0xC4, 0x52, 0x92, 0x11, 0x38, 0x41, 0x34, 0x00, 0x38, 0x61, 0x34, 0x00, 0x06, 0x59, 0xF7, 0x5F, + 0xF7, 0x4F, 0x26, 0x59, 0x26, 0x46, 0xE7, 0x50, 0xE7, 0x40, 0x06, 0x28, 0x06, 0x37, 0x43, 0x85, + 0x43, 0x74, 0xF2, 0x03, 0x06, 0x28, 0x06, 0x37, 0x38, 0x41, 0x24, 0x00, 0x38, 0x51, 0x28, 0x00, + 0xB9, 0x21, 0x04, 0x00, 0xB9, 0x31, 0x08, 0x00, 0xB1, 0x71, 0x06, 0x2B, 0x06, 0x3C, 0x06, 0x68, + 0xF2, 0x20, 0xC4, 0x51, 0xC2, 0x0E, 0x06, 0x69, 0xF7, 0x6F, 0x26, 0x69, 0xE7, 0x60, 0x38, 0x71, + 0x34, 0x00, 0x43, 0x86, 0x38, 0x61, 0x34, 0x00, 0xF7, 0x7F, 0x26, 0x76, 0xE7, 0x70, 0x43, 0x77, + 0x78, 0x5E, 0xDA, 0x03, 0x78, 0xFE, 0xD8, 0x03, 0x38, 0x41, 0x2C, 0x00, 0xB1, 0x51, 0x38, 0x51, + 0x30, 0x00, 0xB9, 0x81, 0x04, 0x00, 0xB9, 0x71, 0x08, 0x00, 0x06, 0x2B, 0x06, 0x3C, 0x06, 0x6F, + 0x6B, 0xCE, 0x01, 0x00, 0x18, 0x7E, 0xFC, 0x03, 0xC4, 0x78, 0xD2, 0x04, 0x24, 0x71, 0x99, 0x7E, + 0xFC, 0x03, 0x18, 0x7E, 0x01, 0x04, 0xC4, 0x71, 0xD2, 0x04, 0x24, 0x71, 0x99, 0x7E, 0x01, 0x04, + 0x18, 0x7A, 0x1A, 0x03, 0x34, 0x71, 0x2F, 0x67, 0x07, 0x00, 0x26, 0x67, 0x06, 0x96, 0x57, 0x92, + 0x26, 0x69, 0x26, 0x76, 0x2C, 0x70, 0xD4, 0x03, 0x2F, 0x97, 0x0D, 0x00, 0xF0, 0x29, 0x22, 0x39, + 0xF8, 0x79, 0x02, 0x00, 0x22, 0x36, 0x38, 0x61, 0x3C, 0x00, 0xB9, 0x71, 0x64, 0x00, 0x0C, 0xC0, + 0x64, 0x00, 0x06, 0x8C, 0x36, 0x86, 0x06, 0x38, 0xAB, 0x9A, 0x00, 0x00, 0x06, 0x3C, 0x4B, 0xA1, + 0x00, 0x00, 0x06, 0x62, 0x38, 0x31, 0x3C, 0x00, 0x78, 0x2A, 0x10, 0x03, 0xB9, 0x61, 0x68, 0x00, + 0xAB, 0x9A, 0x00, 0x00, 0x06, 0x3C, 0x4B, 0xA1, 0x00, 0x00, 0x38, 0x61, 0x68, 0x00, 0x38, 0x71, + 0x64, 0x00, 0x26, 0x26, 0x06, 0x38, 0xA9, 0x2A, 0x10, 0x03, 0x06, 0x27, 0xAB, 0x9A, 0x00, 0x00, + 0x06, 0x3C, 0x4B, 0xA1, 0x00, 0x00, 0x06, 0x82, 0x38, 0x31, 0x3C, 0x00, 0x78, 0x2A, 0x12, 0x03, + 0xAB, 0x9A, 0x00, 0x00, 0x06, 0x3C, 0x4B, 0xA1, 0x00, 0x00, 0x26, 0x28, 0xA9, 0x2A, 0x12, 0x03, + 0x06, 0x29, 0x06, 0x3B, 0x04, 0x44, 0x8B, 0xE0, 0x03, 0x00, 0xFA, 0xB2, 0xFC, 0xFF, 0x0C, 0x20, + 0x2E, 0x01, 0x26, 0x2D, 0x0C, 0x30, 0x10, 0x03, 0x26, 0x3D, 0x04, 0x44, 0x8B, 0xE0, 0x03, 0x00, + 0x58, 0xC1, 0x7C, 0x00, 0x58, 0x81, 0x6C, 0x00, 0x2C, 0x10, 0x8C, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x14, 0x0C, 0x20, 0x70, 0x12, 0x04, 0x30, 0x0C, 0x40, 0x3C, 0x00, 0xB1, 0xF1, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0xB2, 0x12, 0x14, 0x31, 0x0C, 0x40, 0x3C, 0x00, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, 0x0C, 0x70, 0x00, 0x10, 0xA9, 0x07, 0x1E, 0x00, 0xA9, 0x07, + 0x0C, 0x03, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x44, 0x03, 0xD9, 0xC1, 0x34, 0x03, + 0x38, 0xD0, 0x40, 0x16, 0xD9, 0x81, 0x24, 0x03, 0x0C, 0xE0, 0x00, 0x10, 0x18, 0xCD, 0x5C, 0x00, + 0xA9, 0x0E, 0x00, 0x03, 0x18, 0x3D, 0x48, 0x00, 0x28, 0x2E, 0x08, 0x00, 0xAB, 0x9A, 0x00, 0x00, + 0x0C, 0x30, 0x64, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0x23, 0x22, 0xA9, 0x2E, 0x02, 0x03, 0x28, 0x7D, + 0x4A, 0x00, 0xC6, 0x27, 0xB2, 0x03, 0xA9, 0x7E, 0x02, 0x03, 0x28, 0x7E, 0x06, 0x00, 0xDC, 0x70, + 0x10, 0x00, 0x82, 0x08, 0x18, 0x7D, 0x64, 0x00, 0x36, 0xC7, 0xC4, 0xC0, 0x12, 0x02, 0x04, 0xC1, + 0x13, 0xCC, 0x0C, 0x20, 0xE0, 0x02, 0x26, 0x21, 0x04, 0x30, 0x04, 0x4A, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x06, 0x21, 0x04, 0x30, 0x0C, 0x40, 0x40, 0x02, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x0C, 0x20, 0x40, 0x02, 0x26, 0x21, 0x04, 0x30, 0x0C, 0x40, 0x78, 0x00, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0x20, 0xB8, 0x02, 0x0C, 0x40, 0x28, 0x00, 0x26, 0x21, 0x04, 0x30, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x28, 0x2E, 0x08, 0x00, 0xA9, 0x0E, 0xAC, 0x02, 0x06, 0x3C, 0xAB, 0x9A, + 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9E, 0x00, 0x00, 0x28, 0x7E, 0x0E, 0x00, 0x04, 0x60, + 0x26, 0x27, 0xA9, 0x2E, 0xAE, 0x02, 0xB9, 0x61, 0xEC, 0x02, 0x06, 0x86, 0x04, 0xA1, 0x06, 0xD6, + 0x06, 0x78, 0x57, 0x71, 0x26, 0x7E, 0xB9, 0x71, 0x10, 0x03, 0x04, 0xC0, 0x38, 0x71, 0xEC, 0x02, + 0x26, 0x7C, 0x23, 0x77, 0x0C, 0x60, 0x80, 0x02, 0xB9, 0x71, 0xF0, 0x02, 0x26, 0x77, 0x26, 0x76, + 0x70, 0x77, 0x28, 0x6E, 0x02, 0x03, 0xC6, 0x76, 0x02, 0x06, 0x28, 0x6E, 0x00, 0x03, 0x24, 0x61, + 0xA9, 0x6E, 0x00, 0x03, 0x0C, 0x40, 0xAE, 0x02, 0x26, 0x4E, 0x70, 0x44, 0xC6, 0x74, 0xB9, 0x41, + 0xF4, 0x02, 0x0A, 0xE7, 0x00, 0x00, 0x06, 0x7C, 0x57, 0x71, 0x04, 0xB0, 0x26, 0x7E, 0xB9, 0x71, + 0x0C, 0x03, 0xB9, 0xB1, 0xF8, 0x02, 0xB9, 0xB1, 0xFC, 0x02, 0xB9, 0xB1, 0x00, 0x03, 0x06, 0x6B, + 0xB9, 0xB1, 0x04, 0x03, 0x06, 0x5B, 0x38, 0x91, 0xF0, 0x02, 0x38, 0x21, 0xF4, 0x02, 0x23, 0x7B, + 0x26, 0x97, 0x23, 0x99, 0x2F, 0x49, 0x09, 0x00, 0x0C, 0xF0, 0x80, 0x02, 0x26, 0x4F, 0x70, 0x44, + 0xC6, 0x42, 0x0A, 0x8A, 0x00, 0x00, 0x13, 0x3D, 0xB9, 0x31, 0x08, 0x03, 0x38, 0xF1, 0x08, 0x03, + 0x36, 0x42, 0x2F, 0x39, 0x01, 0x00, 0x38, 0x21, 0x0C, 0x03, 0x91, 0xF3, 0x06, 0x3B, 0x57, 0x31, + 0x26, 0x32, 0x38, 0x33, 0x24, 0x00, 0xB9, 0x51, 0x14, 0x03, 0x06, 0x24, 0xB9, 0x61, 0x18, 0x03, + 0xB9, 0x71, 0x20, 0x03, 0xB9, 0x41, 0x1C, 0x03, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x31, 0xF8, 0x02, + 0x38, 0xF1, 0x10, 0x03, 0x38, 0x41, 0x1C, 0x03, 0x26, 0x32, 0xB9, 0x31, 0xF8, 0x02, 0x38, 0x3F, + 0xA4, 0x00, 0x06, 0x24, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x31, 0xFC, 0x02, 0x38, 0xF1, 0x00, 0x03, + 0x38, 0x41, 0x1C, 0x03, 0x38, 0x71, 0x20, 0x03, 0x38, 0x51, 0x14, 0x03, 0x38, 0x61, 0x18, 0x03, + 0xC4, 0x80, 0x26, 0x32, 0x26, 0xF4, 0x24, 0x71, 0xB9, 0x31, 0xFC, 0x02, 0xB9, 0xF1, 0x00, 0x03, + 0x23, 0x77, 0x82, 0x45, 0xC4, 0x50, 0x14, 0x4D, 0x26, 0x41, 0x26, 0x49, 0x92, 0x14, 0x90, 0x44, + 0x92, 0x0F, 0xC4, 0xC0, 0x82, 0x08, 0x14, 0x4E, 0x26, 0x41, 0x26, 0x49, 0x90, 0x44, 0x92, 0x08, + 0xC4, 0xCC, 0x82, 0x35, 0x14, 0x2C, 0x26, 0x21, 0x26, 0x92, 0x90, 0x49, 0x82, 0x30, 0x06, 0xD4, + 0x04, 0x51, 0xF2, 0x2D, 0x90, 0x44, 0x82, 0x04, 0xC6, 0x4D, 0x9A, 0x88, 0x01, 0x00, 0xC4, 0xC0, + 0x82, 0x0B, 0x14, 0x4E, 0x26, 0x41, 0x26, 0x49, 0x90, 0x44, 0x82, 0x04, 0xC6, 0x4D, 0x9A, 0x7E, + 0x01, 0x00, 0xC4, 0xCC, 0x82, 0x09, 0x14, 0x3C, 0x26, 0x31, 0x26, 0x93, 0x90, 0x49, 0x82, 0x04, + 0xC6, 0x4D, 0x9A, 0x74, 0x01, 0x00, 0xB8, 0x41, 0x04, 0x03, 0x82, 0x11, 0xC4, 0x64, 0xD2, 0x0F, + 0xC4, 0xD4, 0xD2, 0x0D, 0xC6, 0xD6, 0x0C, 0x40, 0xE0, 0x02, 0x26, 0x41, 0xC2, 0x04, 0x26, 0x4D, + 0x91, 0x64, 0xF2, 0x05, 0x38, 0xF1, 0x08, 0x03, 0x26, 0x46, 0x91, 0xF4, 0x24, 0xC1, 0xC4, 0xCD, + 0x24, 0xB1, 0x9A, 0x6A, 0xFF, 0xFF, 0x14, 0x61, 0x26, 0x6A, 0xC4, 0x68, 0xD2, 0x3A, 0xC4, 0x50, + 0x92, 0x03, 0x06, 0xDA, 0x24, 0xA1, 0x38, 0x21, 0xF0, 0x02, 0xB9, 0x71, 0x20, 0x03, 0x06, 0x47, + 0x26, 0x21, 0x33, 0x3D, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x14, 0x51, 0x26, 0x5D, 0x2F, 0x65, + 0x05, 0x00, 0x26, 0x65, 0x57, 0x61, 0x26, 0x61, 0x38, 0x46, 0x40, 0x02, 0x38, 0x21, 0xF8, 0x02, + 0x38, 0x31, 0xFC, 0x02, 0x38, 0xF1, 0x00, 0x03, 0x38, 0x71, 0x20, 0x03, 0x26, 0x42, 0xB9, 0x46, + 0x40, 0x02, 0x38, 0x46, 0x44, 0x02, 0x57, 0x51, 0x26, 0x43, 0xB9, 0x46, 0x44, 0x02, 0x38, 0x46, + 0x48, 0x02, 0x26, 0x4F, 0xB9, 0x46, 0x48, 0x02, 0x2F, 0x65, 0x01, 0x00, 0x28, 0x56, 0xB8, 0x02, + 0x99, 0x86, 0xBB, 0x02, 0x26, 0x75, 0xA9, 0x76, 0xB8, 0x02, 0x04, 0x71, 0x99, 0x76, 0xBA, 0x02, + 0x24, 0xC1, 0xC4, 0xCC, 0x0A, 0xFC, 0xFE, 0xFF, 0x38, 0x71, 0xEC, 0x02, 0x24, 0x81, 0x24, 0x7D, + 0xCC, 0x80, 0x13, 0x00, 0x23, 0x77, 0xB9, 0x71, 0xEC, 0x02, 0x9A, 0xEB, 0xFE, 0xFF, 0x14, 0x91, + 0x26, 0x9A, 0xC4, 0x99, 0xC2, 0x0B, 0x18, 0x8E, 0x04, 0x00, 0x28, 0xBE, 0x1E, 0x00, 0x06, 0xCE, + 0x0C, 0xD0, 0x70, 0x12, 0x04, 0xA0, 0xFA, 0xF2, 0x00, 0x00, 0x14, 0xB2, 0x26, 0xBA, 0x2F, 0xDB, + 0x0B, 0x00, 0x06, 0xCA, 0x26, 0xDB, 0x0C, 0x20, 0x40, 0x02, 0x57, 0xC1, 0x57, 0xD1, 0x26, 0x21, + 0x26, 0xC1, 0x0C, 0x70, 0xAC, 0x02, 0x06, 0x89, 0x26, 0xD2, 0x2C, 0xC0, 0xB0, 0x02, 0x26, 0x71, + 0xC4, 0x80, 0x82, 0x45, 0x0C, 0x60, 0xE0, 0x02, 0x26, 0x61, 0x26, 0x68, 0x10, 0x66, 0x34, 0x61, + 0x13, 0x56, 0xC4, 0x59, 0xD2, 0x38, 0x2F, 0x56, 0x06, 0x00, 0x26, 0x56, 0x57, 0x51, 0x26, 0x51, + 0x30, 0x3D, 0x38, 0x45, 0x40, 0x02, 0x57, 0x61, 0x26, 0x43, 0xB9, 0x45, 0x40, 0x02, 0x38, 0x3D, + 0x04, 0x00, 0x38, 0x45, 0x44, 0x02, 0x26, 0x61, 0x26, 0x43, 0xB9, 0x45, 0x44, 0x02, 0x38, 0x3D, + 0x08, 0x00, 0x38, 0x45, 0x48, 0x02, 0x06, 0x2D, 0x26, 0x43, 0xB9, 0x45, 0x48, 0x02, 0x20, 0x4C, + 0x28, 0x56, 0xB8, 0x02, 0x04, 0x3C, 0x26, 0x54, 0xA9, 0x56, 0xB8, 0x02, 0x3F, 0x4D, 0x07, 0x00, + 0x26, 0x3D, 0xB9, 0x71, 0x20, 0x03, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x0C, 0x40, 0xDC, 0x02, + 0x04, 0x34, 0x26, 0x41, 0x06, 0x2C, 0x26, 0x3C, 0x36, 0x4C, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, + 0x38, 0x71, 0x20, 0x03, 0x34, 0x81, 0x34, 0xDC, 0x34, 0xC4, 0xF2, 0xBB, 0x0C, 0x70, 0xE0, 0x02, + 0x26, 0x71, 0x26, 0x7B, 0x06, 0x6A, 0xC4, 0x61, 0x82, 0x1C, 0x98, 0x57, 0x01, 0x00, 0x82, 0x16, + 0x90, 0x57, 0x82, 0x14, 0x06, 0x56, 0xC6, 0x59, 0xD2, 0x0E, 0x0C, 0x40, 0xE0, 0x02, 0x26, 0x41, + 0x26, 0x45, 0x18, 0x27, 0x01, 0x00, 0x10, 0x34, 0xC6, 0x23, 0x92, 0x03, 0x10, 0x37, 0x91, 0x34, + 0x24, 0x51, 0xF2, 0xF2, 0x10, 0x57, 0x99, 0x57, 0x01, 0x00, 0x34, 0x61, 0x34, 0x71, 0xF2, 0xE4, + 0x06, 0x76, 0xC6, 0x7A, 0x8A, 0x79, 0xFF, 0xFF, 0x0C, 0x50, 0xE0, 0x02, 0x26, 0x51, 0x26, 0x57, + 0x90, 0x45, 0x92, 0x03, 0x91, 0x65, 0x24, 0x61, 0x24, 0x71, 0xF2, 0xF4, 0x18, 0x7C, 0xBD, 0x01, + 0x0C, 0x30, 0xE0, 0x02, 0x2F, 0x67, 0x07, 0x00, 0x26, 0x67, 0x57, 0x61, 0x26, 0x76, 0x18, 0x6C, + 0xBC, 0x01, 0x26, 0x31, 0x26, 0x76, 0x26, 0x71, 0x10, 0x77, 0x26, 0x73, 0x10, 0x57, 0x14, 0x71, + 0x26, 0x75, 0xB3, 0x77, 0x22, 0x50, 0x06, 0x67, 0x57, 0x61, 0x26, 0x61, 0x28, 0x46, 0xB8, 0x02, + 0x99, 0x5D, 0x0A, 0x00, 0x2F, 0x35, 0x05, 0x00, 0x2F, 0x65, 0x03, 0x00, 0x26, 0x66, 0x2F, 0xF6, + 0x0E, 0x00, 0xA9, 0x4D, 0x08, 0x00, 0x04, 0x61, 0x2F, 0x26, 0x0F, 0x00, 0xE8, 0x22, 0xB2, 0x02, + 0x32, 0x40, 0x26, 0x53, 0x26, 0x55, 0x26, 0x5E, 0x26, 0x65, 0x99, 0xA6, 0xB2, 0x02, 0x18, 0x65, + 0xB2, 0x02, 0x24, 0x61, 0x99, 0x65, 0xB2, 0x02, 0x13, 0x64, 0xC6, 0xB6, 0xA9, 0x6C, 0xC2, 0x01, + 0x06, 0x5B, 0xB2, 0x02, 0x06, 0x56, 0x23, 0xB5, 0x2F, 0x57, 0x07, 0x00, 0x2F, 0x67, 0x05, 0x00, + 0x57, 0x61, 0x26, 0x61, 0xB8, 0x96, 0x48, 0x02, 0x92, 0x02, 0x04, 0x91, 0x26, 0x75, 0x57, 0x71, + 0x26, 0x71, 0x38, 0x27, 0x40, 0x02, 0xB9, 0x97, 0x48, 0x02, 0x06, 0x39, 0xB9, 0x71, 0x20, 0x03, + 0x0B, 0x9E, 0x00, 0x00, 0x04, 0x3A, 0x0B, 0x9E, 0x00, 0x00, 0xB1, 0x2D, 0x38, 0x71, 0x20, 0x03, + 0x06, 0x39, 0x38, 0x27, 0x44, 0x02, 0x0B, 0x9E, 0x00, 0x00, 0x04, 0x3A, 0x0B, 0x9E, 0x00, 0x00, + 0xB9, 0x2D, 0x04, 0x00, 0x24, 0xA1, 0x24, 0xC8, 0x24, 0xDC, 0xC6, 0xA8, 0x22, 0x98, 0xF2, 0x05, + 0x24, 0x61, 0xC4, 0x66, 0x92, 0xBA, 0xF2, 0xC9, 0xA9, 0xBE, 0x1E, 0x00, 0x58, 0xC1, 0x34, 0x03, + 0x58, 0x81, 0x24, 0x03, 0x2C, 0x10, 0x44, 0x03, 0xE1, 0xF0, 0x06, 0x64, 0x04, 0x41, 0xB9, 0x41, + 0x04, 0x03, 0xFA, 0x8D, 0xFE, 0xFF, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x20, 0xF0, 0x11, 0x04, 0x30, + 0x0C, 0x40, 0x80, 0x00, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x1C, 0x60, 0xFA, 0x00, + 0x0C, 0x70, 0x00, 0x10, 0xA9, 0x67, 0x68, 0x02, 0xA9, 0x67, 0x6A, 0x02, 0x18, 0x50, 0x63, 0x16, + 0x0C, 0x60, 0x1E, 0x00, 0xC4, 0x50, 0x82, 0x03, 0x0C, 0x60, 0x32, 0x00, 0x30, 0xF1, 0x99, 0x67, + 0x6D, 0x02, 0x99, 0x07, 0x6E, 0x02, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x20, + 0xBC, 0x11, 0x04, 0x30, 0x0C, 0x40, 0x28, 0x00, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x30, 0xF1, 0x99, 0x00, 0x04, 0x10, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x2F, 0x75, 0x05, 0x00, + 0x26, 0x75, 0x57, 0x71, 0x26, 0x75, 0x3C, 0x10, 0x14, 0x00, 0x34, 0x51, 0xD9, 0xC1, 0x04, 0x00, + 0x2F, 0xE4, 0x07, 0x00, 0x2F, 0x75, 0x05, 0x00, 0x26, 0x75, 0x57, 0x71, 0x26, 0x75, 0x26, 0x74, + 0x26, 0x77, 0x34, 0x72, 0x26, 0xEE, 0x26, 0xE3, 0xB1, 0xB1, 0x26, 0x37, 0x34, 0x41, 0x04, 0x70, + 0x06, 0xF3, 0x04, 0x60, 0x2F, 0xD7, 0x05, 0x00, 0xCC, 0xD0, 0x12, 0x00, 0xD2, 0x09, 0x2F, 0xC6, + 0x04, 0x00, 0xC4, 0xCC, 0xD2, 0x05, 0x70, 0xBF, 0x70, 0xCE, 0xC6, 0xBC, 0x12, 0x0E, 0x24, 0x61, + 0xC4, 0x63, 0x24, 0xF2, 0x92, 0xF2, 0x24, 0x71, 0xC4, 0x73, 0x2C, 0x30, 0x1A, 0x00, 0x92, 0xE9, + 0x70, 0x7E, 0xB1, 0x72, 0x04, 0x21, 0xF2, 0x02, 0x04, 0x20, 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, + 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x50, 0x01, 0x0C, 0x20, 0x9E, 0x00, + 0x26, 0x21, 0x04, 0x30, 0x04, 0x44, 0xD9, 0xC1, 0x40, 0x01, 0xD9, 0x81, 0x30, 0x01, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x06, 0x21, 0x04, 0x30, 0x0C, 0x40, 0x49, 0x00, 0x0C, 0xF0, 0x2C, 0x01, + 0xF1, 0xF0, 0x0C, 0xE0, 0x00, 0x10, 0x0C, 0x70, 0xFF, 0x0F, 0xA9, 0x7E, 0x08, 0x00, 0x04, 0x7E, + 0x26, 0x7E, 0x20, 0x77, 0xA9, 0x0E, 0x0A, 0x00, 0x0C, 0x80, 0x2C, 0x01, 0xB9, 0x71, 0xE0, 0x00, + 0x18, 0x70, 0x57, 0x16, 0xA9, 0x0E, 0x0C, 0x00, 0xA9, 0x0E, 0xB0, 0x02, 0xC4, 0x70, 0xB9, 0x81, + 0xD4, 0x00, 0x92, 0x09, 0x38, 0x70, 0x40, 0x16, 0x0C, 0xF0, 0x26, 0x00, 0x26, 0xF7, 0x20, 0x7F, + 0xB9, 0x71, 0xD4, 0x00, 0x38, 0x71, 0xD4, 0x00, 0x28, 0xDE, 0xEE, 0x01, 0x38, 0xC0, 0x40, 0x16, + 0x26, 0xD7, 0x23, 0xDD, 0x0C, 0x70, 0x2C, 0x00, 0xA9, 0xDE, 0xE4, 0x01, 0x26, 0x7C, 0x20, 0x77, + 0x04, 0x3D, 0xB9, 0x71, 0xEC, 0x00, 0x08, 0x70, 0x00, 0x40, 0x38, 0x27, 0xE4, 0x70, 0x5C, 0x20, + 0xFF, 0x01, 0x8B, 0xA4, 0x00, 0x00, 0xA3, 0x22, 0x82, 0x03, 0xC4, 0x2A, 0x92, 0x06, 0x28, 0x7C, + 0x2E, 0x00, 0x26, 0xD7, 0xA9, 0xDE, 0xE4, 0x01, 0x6B, 0xBD, 0x00, 0x00, 0x38, 0xD0, 0x40, 0x16, + 0x28, 0x3D, 0xD8, 0x00, 0xAB, 0x9A, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9E, 0x00, 0x00, + 0x30, 0x7D, 0xB9, 0x21, 0xF0, 0x00, 0x0C, 0x60, 0x00, 0x40, 0xD6, 0x67, 0x82, 0x06, 0x0C, 0x60, + 0x80, 0x0B, 0xB9, 0x61, 0xCC, 0x00, 0xF2, 0x05, 0x0C, 0xB0, 0x80, 0x02, 0xB9, 0xB1, 0xCC, 0x00, + 0xDC, 0x70, 0x00, 0x80, 0x82, 0x04, 0x0C, 0x70, 0x80, 0x0B, 0xF2, 0x03, 0x0C, 0x70, 0x80, 0x02, + 0x04, 0x80, 0xB9, 0x81, 0xA8, 0x00, 0xB9, 0x81, 0xB0, 0x00, 0xB9, 0x81, 0xD0, 0x00, 0x0C, 0x80, + 0x4C, 0x00, 0x26, 0x81, 0xB9, 0x71, 0xDC, 0x00, 0x34, 0x82, 0x06, 0x97, 0x0C, 0x90, 0x9C, 0x10, + 0xB9, 0x81, 0x18, 0x01, 0x38, 0x71, 0xA8, 0x00, 0x38, 0x81, 0xA8, 0x00, 0x06, 0xB7, 0x26, 0x77, + 0x26, 0x7B, 0x57, 0x71, 0x26, 0x7B, 0x23, 0x77, 0x43, 0x88, 0xB9, 0x71, 0x0C, 0x01, 0x04, 0x71, + 0x06, 0x6B, 0xB9, 0x81, 0xAC, 0x00, 0x06, 0x87, 0x53, 0x8B, 0x34, 0x61, 0x06, 0xB7, 0x53, 0xB6, + 0x38, 0x61, 0xA8, 0x00, 0xB9, 0x81, 0xF8, 0x00, 0x06, 0x87, 0x34, 0x62, 0x53, 0x86, 0x38, 0x61, + 0xA8, 0x00, 0xB9, 0xB1, 0xFC, 0x00, 0x38, 0xB1, 0xA8, 0x00, 0xB9, 0x81, 0x00, 0x01, 0x24, 0x62, + 0x26, 0xB7, 0x06, 0x87, 0x53, 0x76, 0xB9, 0x71, 0x08, 0x01, 0x53, 0x8B, 0xB9, 0xB1, 0xD8, 0x00, + 0x0C, 0x70, 0x1C, 0x10, 0x04, 0xB0, 0xB9, 0x81, 0x04, 0x01, 0xB9, 0x71, 0xC0, 0x00, 0xB9, 0xB1, + 0xC4, 0x00, 0x38, 0xB1, 0xC4, 0x00, 0x38, 0xA1, 0x0C, 0x01, 0x26, 0xAB, 0x23, 0xAA, 0x2F, 0x6A, + 0x0A, 0x00, 0x0C, 0x70, 0x80, 0x02, 0x26, 0x76, 0x70, 0x57, 0x38, 0x70, 0x40, 0x16, 0x43, 0xDB, + 0x28, 0x77, 0x5E, 0x00, 0x43, 0xCA, 0xC6, 0x57, 0x02, 0x06, 0x28, 0x7E, 0xB0, 0x02, 0x24, 0x71, + 0xA9, 0x7E, 0xB0, 0x02, 0xE7, 0xC1, 0x26, 0xC1, 0x10, 0x7C, 0x04, 0xB7, 0x56, 0xBA, 0x63, 0x7B, + 0xD4, 0x71, 0x9A, 0xA1, 0x04, 0x00, 0x38, 0x71, 0xAC, 0x00, 0xCC, 0x70, 0x12, 0x00, 0x82, 0x0C, + 0xC4, 0xDA, 0x12, 0x15, 0x04, 0x8B, 0x0C, 0x70, 0x12, 0x00, 0xB9, 0x81, 0xBC, 0x00, 0xB9, 0x71, + 0xB4, 0x00, 0x04, 0x82, 0xF2, 0x14, 0x04, 0x7D, 0xB9, 0x71, 0xBC, 0x00, 0x0C, 0x80, 0x13, 0x00, + 0x04, 0x71, 0xB9, 0x81, 0xB4, 0x00, 0xB9, 0x71, 0xB8, 0x00, 0xF2, 0x0B, 0x04, 0x8D, 0x0C, 0x70, + 0x13, 0x00, 0xB9, 0x81, 0xBC, 0x00, 0xB9, 0x71, 0xB4, 0x00, 0x04, 0x81, 0xB9, 0x81, 0xB8, 0x00, + 0x06, 0x73, 0x0C, 0x70, 0x80, 0x0B, 0x26, 0x67, 0x38, 0x81, 0xF0, 0x00, 0x70, 0x76, 0x43, 0x68, + 0xC6, 0x76, 0x2A, 0x71, 0x04, 0x00, 0x38, 0x81, 0xB8, 0x00, 0xC4, 0x81, 0x92, 0x08, 0x38, 0x81, + 0xEC, 0x00, 0x43, 0x68, 0xC6, 0x76, 0x2A, 0x67, 0x04, 0x00, 0xF2, 0x06, 0x78, 0x6E, 0xE4, 0x01, + 0xC6, 0x67, 0x1A, 0x61, 0x04, 0x00, 0x38, 0x51, 0xAC, 0x00, 0xB9, 0x01, 0xA4, 0x00, 0x0C, 0x20, + 0xA4, 0x00, 0x26, 0x21, 0x0C, 0x30, 0x80, 0x0B, 0x06, 0x4D, 0x6B, 0x3E, 0x02, 0x00, 0xC4, 0x20, + 0x8A, 0x52, 0x04, 0x00, 0x38, 0x71, 0xA4, 0x00, 0x28, 0x6E, 0x0C, 0x00, 0xC6, 0x76, 0x22, 0x09, + 0xA9, 0x7E, 0x0C, 0x00, 0x18, 0x7E, 0x04, 0x00, 0x24, 0x71, 0x13, 0x77, 0xB9, 0x71, 0xD0, 0x00, + 0x10, 0x5C, 0x04, 0x71, 0x06, 0x67, 0x53, 0x6B, 0xC4, 0xDC, 0x66, 0x65, 0x91, 0x6C, 0x82, 0x0B, + 0x06, 0x57, 0x26, 0x5A, 0x06, 0x65, 0xE7, 0x61, 0x26, 0x61, 0x54, 0x57, 0x53, 0x75, 0x10, 0x56, + 0x66, 0x75, 0x91, 0x76, 0x38, 0xB1, 0xAC, 0x00, 0xCC, 0xB0, 0x12, 0x00, 0x82, 0x2A, 0x04, 0x7D, + 0x26, 0x7A, 0x06, 0x57, 0xE7, 0x51, 0x04, 0x67, 0x56, 0x67, 0x26, 0x51, 0x04, 0x71, 0x10, 0x45, + 0x06, 0xF7, 0x53, 0xF6, 0x06, 0x6F, 0xC4, 0xD0, 0x66, 0x64, 0x91, 0x65, 0x92, 0x0E, 0x04, 0x7E, + 0x26, 0x7A, 0x06, 0x67, 0xE7, 0x61, 0x04, 0x57, 0x56, 0x57, 0x26, 0x61, 0x04, 0x71, 0x53, 0x75, + 0x10, 0x56, 0x66, 0x75, 0x91, 0x76, 0xF2, 0x0D, 0x04, 0x5C, 0x26, 0x5A, 0x06, 0x65, 0xE7, 0x61, + 0x26, 0x61, 0x54, 0x57, 0x53, 0x75, 0x10, 0x56, 0xC4, 0xDC, 0x66, 0x75, 0x91, 0x76, 0x92, 0xE8, + 0x38, 0x41, 0xA8, 0x00, 0x38, 0x51, 0xC4, 0x00, 0x13, 0x44, 0x13, 0x55, 0xB9, 0x41, 0xE4, 0x00, + 0x0C, 0xF0, 0x78, 0x00, 0x04, 0x20, 0x0C, 0xD0, 0x4C, 0x00, 0x34, 0x41, 0xB9, 0x51, 0xE8, 0x00, + 0x34, 0x51, 0x26, 0xF1, 0x0C, 0x60, 0xFF, 0xFF, 0x26, 0xD1, 0x06, 0x32, 0xB9, 0x41, 0x10, 0x01, + 0xB9, 0x51, 0x14, 0x01, 0x38, 0x71, 0x10, 0x01, 0x06, 0xCF, 0x26, 0x76, 0x33, 0x77, 0x2F, 0x57, + 0x07, 0x00, 0x26, 0x57, 0x57, 0x51, 0x26, 0x57, 0x23, 0x55, 0xB9, 0x51, 0xF4, 0x00, 0x06, 0x4D, + 0x0C, 0x50, 0xFF, 0xFF, 0x38, 0x81, 0x14, 0x01, 0xC4, 0x70, 0x26, 0x85, 0x33, 0x88, 0x22, 0x0B, + 0x38, 0xB1, 0xB4, 0x00, 0xC6, 0x7B, 0x32, 0x07, 0xC4, 0x80, 0x22, 0x05, 0x38, 0xB1, 0xBC, 0x00, + 0xC6, 0x8B, 0x22, 0x03, 0xA1, 0x04, 0xF2, 0x2C, 0x38, 0xB1, 0xF4, 0x00, 0x26, 0x8B, 0x38, 0xB1, + 0xCC, 0x00, 0x23, 0x88, 0x26, 0x88, 0x26, 0xB8, 0x20, 0xBB, 0xB9, 0x81, 0x2C, 0x01, 0x06, 0x8B, + 0x38, 0xB1, 0xE0, 0x00, 0x36, 0x8B, 0xB9, 0x81, 0xC8, 0x00, 0x06, 0xB8, 0xC3, 0x88, 0x32, 0x02, + 0x04, 0xB0, 0xC4, 0x62, 0x43, 0x8B, 0xB9, 0x81, 0xC8, 0x00, 0xA1, 0xB4, 0xD2, 0x11, 0xC4, 0x52, + 0xD2, 0x0F, 0x38, 0xB1, 0xDC, 0x00, 0x38, 0x81, 0x2C, 0x01, 0x24, 0x31, 0x26, 0x8B, 0x20, 0xB8, + 0x38, 0x81, 0xE0, 0x00, 0x36, 0xB8, 0xA1, 0xBC, 0x38, 0xB1, 0xC8, 0x00, 0x26, 0x2B, 0x24, 0x51, + 0x23, 0x55, 0xC4, 0x54, 0x24, 0x42, 0x24, 0xC2, 0x92, 0xBE, 0x24, 0x61, 0x23, 0x66, 0xC4, 0x64, + 0x24, 0xDA, 0x24, 0xF6, 0x92, 0xA8, 0x98, 0x70, 0x56, 0x16, 0x92, 0x1A, 0x34, 0x31, 0xC4, 0x30, + 0x12, 0x02, 0x04, 0x31, 0x38, 0x71, 0xB8, 0x00, 0xC4, 0x71, 0x92, 0x12, 0x38, 0xC0, 0x40, 0x16, + 0x0B, 0x9E, 0x00, 0x00, 0x78, 0xD1, 0x64, 0x00, 0x28, 0x7C, 0x38, 0x00, 0x3F, 0x22, 0x0D, 0x00, + 0xC6, 0x27, 0xB2, 0x06, 0x28, 0x7C, 0x3A, 0x00, 0xC6, 0xD7, 0x2A, 0x75, 0x03, 0x00, 0x38, 0x70, + 0x40, 0x16, 0x78, 0x21, 0x88, 0x00, 0x28, 0x37, 0x36, 0x00, 0xAB, 0x9A, 0x00, 0x00, 0x0C, 0x30, + 0x64, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0x38, 0x71, 0xB8, 0x00, 0x43, 0x22, 0xC4, 0x71, 0x92, 0x36, + 0x06, 0x76, 0x0C, 0x70, 0x44, 0x16, 0x20, 0x67, 0x28, 0xF7, 0x02, 0x00, 0x28, 0xD7, 0x04, 0x00, + 0x28, 0xC7, 0x06, 0x00, 0x28, 0xB7, 0x08, 0x00, 0xB9, 0x61, 0xB4, 0x00, 0x0C, 0x40, 0x4C, 0x00, + 0x26, 0x41, 0x0C, 0x30, 0x1C, 0x00, 0x26, 0x3A, 0x24, 0x48, 0x04, 0x50, 0x1C, 0xA0, 0x32, 0x00, + 0x2F, 0x75, 0x03, 0x00, 0x04, 0x60, 0x38, 0x81, 0xB4, 0x00, 0xC6, 0x78, 0x82, 0x0D, 0xC6, 0x7F, + 0x82, 0x0B, 0xC6, 0x7D, 0x82, 0x09, 0xC6, 0x7C, 0x82, 0x07, 0xC6, 0x7B, 0x82, 0x05, 0x2F, 0x86, + 0x04, 0x00, 0xA9, 0x08, 0x28, 0x00, 0x34, 0x6A, 0xC6, 0x6A, 0x34, 0x71, 0x92, 0xED, 0x34, 0x5D, + 0x1C, 0x60, 0x41, 0x00, 0xC6, 0x56, 0x34, 0x42, 0x92, 0xE4, 0x78, 0x71, 0x64, 0x00, 0x28, 0x6E, + 0x08, 0x00, 0xB9, 0x71, 0xA4, 0x00, 0xC6, 0x67, 0x02, 0x03, 0xA9, 0x7E, 0x08, 0x00, 0x28, 0x6E, + 0x0A, 0x00, 0xC6, 0x67, 0x32, 0x03, 0xA9, 0x7E, 0x0A, 0x00, 0x38, 0x71, 0xB0, 0x00, 0x38, 0x81, + 0xF8, 0x00, 0xB8, 0xB1, 0xAC, 0x00, 0x66, 0x78, 0xB9, 0x71, 0xB0, 0x00, 0x82, 0x12, 0x38, 0x81, + 0xFC, 0x00, 0xC4, 0xB1, 0x66, 0x78, 0xB9, 0x71, 0xB0, 0x00, 0x82, 0x0B, 0x38, 0xB1, 0x00, 0x01, + 0x66, 0x7B, 0xB9, 0x71, 0xB0, 0x00, 0x38, 0x71, 0xAC, 0x00, 0xCC, 0x70, 0x12, 0x00, 0x82, 0x12, + 0x38, 0x71, 0xAC, 0x00, 0x38, 0x81, 0xB0, 0x00, 0x38, 0xB1, 0x04, 0x01, 0xCC, 0x70, 0x11, 0x00, + 0x66, 0x8B, 0xB9, 0x81, 0xB0, 0x00, 0x82, 0x06, 0x38, 0xB1, 0x08, 0x01, 0x66, 0x8B, 0xB9, 0x81, + 0xB0, 0x00, 0x18, 0x7E, 0x04, 0x00, 0x78, 0x61, 0x86, 0x00, 0x38, 0x41, 0xE8, 0x00, 0x38, 0x51, + 0xE4, 0x00, 0xD7, 0x71, 0xC6, 0x62, 0x26, 0x7E, 0x99, 0x47, 0xBC, 0x01, 0x99, 0x57, 0xBD, 0x01, + 0x04, 0x72, 0x12, 0x0A, 0x78, 0x61, 0x80, 0x00, 0xC6, 0x62, 0x12, 0x06, 0x78, 0x61, 0x8C, 0x00, + 0xC6, 0x62, 0x12, 0x02, 0x04, 0x70, 0x78, 0x61, 0x8A, 0x00, 0xC6, 0x62, 0x12, 0x09, 0x78, 0x61, + 0x84, 0x00, 0xC6, 0x62, 0x12, 0x05, 0x78, 0x61, 0x90, 0x00, 0xC6, 0x62, 0x02, 0x02, 0x64, 0x74, + 0x78, 0x61, 0x82, 0x00, 0xC6, 0x62, 0x12, 0x09, 0x78, 0x61, 0x80, 0x00, 0xC6, 0x62, 0x12, 0x05, + 0x78, 0x61, 0x84, 0x00, 0xC6, 0x62, 0x02, 0x02, 0x64, 0x78, 0x78, 0x61, 0x8E, 0x00, 0xC6, 0x62, + 0x12, 0x09, 0x78, 0x61, 0x8C, 0x00, 0xC6, 0x62, 0x12, 0x05, 0x78, 0x61, 0x90, 0x00, 0xC6, 0x62, + 0x02, 0x03, 0x6C, 0x70, 0x10, 0x00, 0x0C, 0x60, 0x4C, 0x00, 0x04, 0x42, 0x04, 0x34, 0x04, 0x28, + 0x56, 0x47, 0x56, 0x37, 0x56, 0x27, 0x26, 0x61, 0x0C, 0x50, 0x74, 0x00, 0x5C, 0x70, 0x10, 0x00, + 0x24, 0x68, 0x26, 0x51, 0x13, 0x44, 0x13, 0x33, 0x13, 0x22, 0x13, 0x77, 0xC4, 0x40, 0x92, 0x02, + 0xA1, 0x05, 0xC4, 0x30, 0x92, 0x03, 0xA9, 0x05, 0x08, 0x00, 0xC4, 0x20, 0x92, 0x02, 0xA1, 0x06, + 0xC4, 0x70, 0x92, 0x03, 0xA9, 0x06, 0x28, 0x00, 0x38, 0x81, 0x18, 0x01, 0x34, 0x62, 0xC6, 0x68, + 0x34, 0x5A, 0x92, 0xED, 0x78, 0x31, 0x4E, 0x00, 0x78, 0x41, 0x50, 0x00, 0x78, 0x51, 0x52, 0x00, + 0x78, 0x61, 0x54, 0x00, 0x78, 0x21, 0x4C, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0xB9, 0x21, + 0xB4, 0x00, 0x78, 0x31, 0x76, 0x00, 0x78, 0x41, 0x78, 0x00, 0x78, 0x51, 0x7A, 0x00, 0x78, 0x61, + 0x7C, 0x00, 0x78, 0x21, 0x74, 0x00, 0x0C, 0xD0, 0x00, 0x10, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, + 0xB9, 0x21, 0xBC, 0x00, 0x78, 0x31, 0x58, 0x00, 0x78, 0x41, 0x5A, 0x00, 0x78, 0x51, 0x5C, 0x00, + 0x78, 0x61, 0x5E, 0x00, 0x78, 0x21, 0x56, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x78, 0x31, + 0x62, 0x00, 0x78, 0x41, 0x64, 0x00, 0x78, 0x51, 0x66, 0x00, 0x78, 0x61, 0x68, 0x00, 0x06, 0xA2, + 0x78, 0x21, 0x60, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0xC2, 0x78, 0x31, 0x6C, 0x00, + 0x78, 0x21, 0x6A, 0x00, 0x78, 0x41, 0x6E, 0x00, 0x78, 0x51, 0x70, 0x00, 0x78, 0x61, 0x72, 0x00, + 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0xF8, 0x7D, 0x6A, 0x02, 0x06, 0xB2, 0x32, 0x05, 0x38, 0xF1, + 0xAC, 0x00, 0xA9, 0xFD, 0x6A, 0x02, 0x78, 0x7D, 0x6A, 0x02, 0x38, 0x81, 0xA8, 0x00, 0x14, 0x61, + 0x26, 0x67, 0xC6, 0x68, 0x1A, 0x34, 0x01, 0x00, 0x24, 0x71, 0xC6, 0x78, 0x2A, 0x30, 0x01, 0x00, + 0x98, 0x7D, 0x04, 0x00, 0x9A, 0x27, 0x01, 0x00, 0x18, 0x7D, 0xC0, 0x03, 0xC4, 0x71, 0xDA, 0x22, + 0x01, 0x00, 0x38, 0x71, 0xB8, 0x00, 0xC4, 0x72, 0x9A, 0x1D, 0x01, 0x00, 0x18, 0x70, 0x63, 0x16, + 0x0C, 0x80, 0x1E, 0x00, 0xC4, 0x70, 0x82, 0x03, 0x0C, 0x80, 0x32, 0x00, 0x78, 0x7D, 0x68, 0x02, + 0x06, 0x6C, 0x06, 0x2C, 0x57, 0x63, 0x57, 0x22, 0x26, 0x26, 0x0C, 0x30, 0x64, 0x00, 0xB9, 0x71, + 0x28, 0x01, 0x4B, 0xA1, 0x00, 0x00, 0xC6, 0x2A, 0x38, 0x71, 0x28, 0x01, 0x02, 0x07, 0xC6, 0x2B, + 0x02, 0x05, 0x38, 0xF1, 0xAC, 0x00, 0xC6, 0x7F, 0x92, 0x1D, 0x18, 0x7D, 0x6C, 0x02, 0xCC, 0x70, + 0xFF, 0x00, 0x82, 0x04, 0x24, 0x71, 0x99, 0x7D, 0x6C, 0x02, 0x18, 0x7D, 0x6C, 0x02, 0xC4, 0x73, + 0xC2, 0x15, 0x18, 0x7D, 0x6D, 0x02, 0x99, 0x0D, 0x6C, 0x02, 0xC6, 0x78, 0xB2, 0x04, 0x99, 0x8D, + 0x6D, 0x02, 0xF2, 0x0C, 0xCC, 0x70, 0x3E, 0x00, 0xD2, 0x09, 0x24, 0x71, 0x99, 0x7D, 0x6D, 0x02, + 0xF2, 0x05, 0x99, 0x0D, 0x6C, 0x02, 0x99, 0x0D, 0x6D, 0x02, 0x38, 0x71, 0xAC, 0x00, 0xC4, 0x71, + 0x02, 0x2D, 0xB8, 0x29, 0x4C, 0x01, 0x82, 0x20, 0x18, 0x8D, 0x6D, 0x02, 0x06, 0x38, 0xAB, 0x9A, + 0x00, 0x00, 0x06, 0x72, 0x38, 0x21, 0xB4, 0x00, 0xB9, 0x71, 0x28, 0x01, 0x0C, 0x30, 0x40, 0x00, + 0x36, 0x38, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x71, 0x28, 0x01, 0x26, 0x27, 0x67, 0x23, 0xC4, 0x20, + 0xB9, 0x29, 0x4C, 0x01, 0x92, 0x04, 0x04, 0x7A, 0xB9, 0x79, 0x4C, 0x01, 0x38, 0x89, 0x4C, 0x01, + 0xB9, 0x81, 0xB4, 0x00, 0xF2, 0x0E, 0xB8, 0x71, 0xB4, 0x00, 0x92, 0x03, 0x04, 0x7A, 0xF2, 0x03, + 0x38, 0x71, 0xB4, 0x00, 0xB9, 0x79, 0x4C, 0x01, 0xF2, 0x04, 0xB8, 0x81, 0xAC, 0x00, 0x82, 0x26, + 0xB8, 0x29, 0x50, 0x01, 0x82, 0x1D, 0x18, 0x8D, 0x6D, 0x02, 0x06, 0x38, 0xAB, 0x9A, 0x00, 0x00, + 0x0C, 0x30, 0x40, 0x00, 0x06, 0x72, 0x36, 0x38, 0x06, 0x2A, 0xB9, 0x71, 0x28, 0x01, 0xAB, 0x9A, + 0x00, 0x00, 0x38, 0x71, 0x28, 0x01, 0x26, 0x27, 0x67, 0x23, 0xC4, 0x20, 0xB9, 0x29, 0x50, 0x01, + 0x92, 0x04, 0x04, 0x7A, 0xB9, 0x79, 0x50, 0x01, 0x38, 0xA9, 0x50, 0x01, 0xF2, 0x07, 0xC4, 0xA0, + 0x04, 0x7A, 0x82, 0x02, 0x06, 0x7A, 0xB9, 0x79, 0x50, 0x01, 0xB8, 0x29, 0x54, 0x01, 0x82, 0x1E, + 0x18, 0x8D, 0x6D, 0x02, 0x06, 0x38, 0xAB, 0x9A, 0x00, 0x00, 0x0C, 0x30, 0x40, 0x00, 0x06, 0x72, + 0x36, 0x38, 0x06, 0x2C, 0xB9, 0x71, 0x28, 0x01, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x71, 0x28, 0x01, + 0x26, 0x27, 0x67, 0x23, 0xC4, 0x20, 0x82, 0x04, 0xB9, 0x29, 0x54, 0x01, 0xF2, 0x04, 0x04, 0x7A, + 0xB9, 0x79, 0x54, 0x01, 0x38, 0xC9, 0x54, 0x01, 0xF2, 0x07, 0xC4, 0xC0, 0x04, 0x7A, 0x82, 0x02, + 0x06, 0x7C, 0xB9, 0x79, 0x54, 0x01, 0x38, 0x71, 0xAC, 0x00, 0xCC, 0x70, 0x12, 0x00, 0x82, 0x55, + 0xB8, 0x29, 0x58, 0x01, 0x82, 0x1D, 0x18, 0x8D, 0x6D, 0x02, 0x06, 0x38, 0xAB, 0x9A, 0x00, 0x00, + 0x0C, 0x30, 0x40, 0x00, 0x06, 0x72, 0x36, 0x38, 0x06, 0x2B, 0xB9, 0x71, 0x28, 0x01, 0xAB, 0x9A, + 0x00, 0x00, 0x38, 0x71, 0x28, 0x01, 0x26, 0x27, 0x67, 0x23, 0xC4, 0x20, 0xB9, 0x29, 0x58, 0x01, + 0x92, 0x04, 0x04, 0x7A, 0xB9, 0x79, 0x58, 0x01, 0x38, 0xB9, 0x58, 0x01, 0xF2, 0x07, 0xC4, 0xB0, + 0x04, 0x7A, 0x82, 0x02, 0x06, 0x7B, 0xB9, 0x79, 0x58, 0x01, 0x38, 0x81, 0xAC, 0x00, 0xCC, 0x80, + 0x10, 0x00, 0x12, 0x2B, 0xB8, 0x29, 0x5C, 0x01, 0x82, 0x20, 0x18, 0x8D, 0x6D, 0x02, 0x06, 0x38, + 0xAB, 0x9A, 0x00, 0x00, 0x06, 0x72, 0x38, 0x21, 0xBC, 0x00, 0xB9, 0x71, 0x28, 0x01, 0x0C, 0x30, + 0x40, 0x00, 0x36, 0x38, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x71, 0x28, 0x01, 0x26, 0x27, 0x67, 0x23, + 0xC4, 0x20, 0xB9, 0x29, 0x5C, 0x01, 0x92, 0x04, 0x04, 0x7A, 0xB9, 0x79, 0x5C, 0x01, 0x38, 0x79, + 0x5C, 0x01, 0xB9, 0x71, 0xBC, 0x00, 0xF2, 0x09, 0xB8, 0x81, 0xBC, 0x00, 0x04, 0x7A, 0x82, 0x03, + 0x38, 0x71, 0xBC, 0x00, 0xB9, 0x79, 0x5C, 0x01, 0x38, 0xF1, 0xAC, 0x00, 0xA9, 0xFD, 0x68, 0x02, + 0xF2, 0x0A, 0x38, 0x31, 0xAC, 0x00, 0xA9, 0x3D, 0x68, 0x02, 0xF2, 0x05, 0x38, 0x41, 0xAC, 0x00, + 0xA9, 0x4D, 0x68, 0x02, 0x38, 0x21, 0xB4, 0x00, 0x38, 0x61, 0xBC, 0x00, 0x06, 0x3A, 0x06, 0x4C, + 0x06, 0x5B, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x86, 0x82, 0x92, 0x06, 0x04, 0x7A, 0x04, 0xCA, + 0xA9, 0x71, 0x64, 0x00, 0x06, 0x8C, 0x30, 0x39, 0x38, 0x21, 0xB4, 0x00, 0xAB, 0x9A, 0x00, 0x00, + 0x38, 0x39, 0x04, 0x00, 0x06, 0x72, 0x06, 0x2A, 0xB9, 0x71, 0x28, 0x01, 0xAB, 0x9A, 0x00, 0x00, + 0x38, 0x39, 0x08, 0x00, 0x06, 0xA2, 0x06, 0x2C, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x39, 0x0C, 0x00, + 0x06, 0x42, 0x06, 0x2B, 0xB9, 0x41, 0x20, 0x01, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x39, 0x10, 0x00, + 0x06, 0xC2, 0x38, 0x21, 0xBC, 0x00, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x71, 0x28, 0x01, 0x38, 0x41, + 0x20, 0x01, 0x06, 0x62, 0x06, 0x5C, 0x06, 0x27, 0x06, 0x3A, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, + 0x06, 0x38, 0x4B, 0xA1, 0x00, 0x00, 0x18, 0x7D, 0x04, 0x00, 0x86, 0x22, 0xD7, 0x71, 0x0C, 0x50, + 0x00, 0x10, 0x26, 0x75, 0x32, 0x02, 0x04, 0x20, 0xA9, 0x27, 0xC0, 0x01, 0x78, 0x31, 0x56, 0x00, + 0x78, 0x41, 0x60, 0x00, 0x78, 0x51, 0x6A, 0x00, 0x78, 0x61, 0x74, 0x00, 0x78, 0x21, 0x4C, 0x00, + 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0x82, 0x78, 0x31, 0x5E, 0x00, 0x78, 0x41, 0x68, 0x00, + 0x78, 0x51, 0x72, 0x00, 0x78, 0x61, 0x7C, 0x00, 0x78, 0x21, 0x54, 0x00, 0x0C, 0xF0, 0xE0, 0x00, + 0xF1, 0xF0, 0x06, 0xB2, 0x78, 0x31, 0x58, 0x00, 0x78, 0x41, 0x62, 0x00, 0x78, 0x51, 0x6C, 0x00, + 0x78, 0x61, 0x76, 0x00, 0x78, 0x21, 0x4E, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0xB9, 0x21, + 0xB8, 0x00, 0x78, 0x31, 0x5A, 0x00, 0x78, 0x41, 0x64, 0x00, 0x78, 0x51, 0x6E, 0x00, 0x78, 0x61, + 0x78, 0x00, 0x78, 0x21, 0x50, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x06, 0xC2, 0x78, 0x31, + 0x5C, 0x00, 0x78, 0x41, 0x66, 0x00, 0x78, 0x51, 0x70, 0x00, 0x78, 0x61, 0x7A, 0x00, 0x78, 0x21, + 0x52, 0x00, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x38, 0x31, 0xB8, 0x00, 0x06, 0xA2, 0x06, 0x4C, + 0x06, 0x28, 0x06, 0x5A, 0x06, 0x6B, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x86, 0x72, 0x92, 0x06, + 0x04, 0x7A, 0xA9, 0x71, 0x64, 0x00, 0x04, 0x7A, 0x06, 0xC7, 0x06, 0x28, 0x38, 0x81, 0xC0, 0x00, + 0x30, 0x38, 0xB9, 0x71, 0x28, 0x01, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0xF1, 0xC0, 0x00, 0x06, 0x82, + 0x38, 0x3F, 0x04, 0x00, 0x38, 0x21, 0xB8, 0x00, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x41, 0xC0, 0x00, + 0x06, 0x52, 0x38, 0x34, 0x08, 0x00, 0xB9, 0x51, 0x24, 0x01, 0x06, 0x2C, 0xAB, 0x9A, 0x00, 0x00, + 0x38, 0x61, 0xC0, 0x00, 0x06, 0x42, 0x38, 0x36, 0x0C, 0x00, 0xB9, 0x41, 0x20, 0x01, 0x06, 0x2A, + 0xAB, 0x9A, 0x00, 0x00, 0x06, 0xC2, 0x06, 0x2B, 0x38, 0xB1, 0xC0, 0x00, 0x38, 0x3B, 0x10, 0x00, + 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x51, 0x24, 0x01, 0x38, 0x41, 0x20, 0x01, 0x06, 0x62, 0x06, 0x35, + 0x06, 0x28, 0x06, 0x5C, 0x0C, 0xF0, 0xE0, 0x00, 0xF1, 0xF0, 0x38, 0x71, 0x28, 0x01, 0x06, 0x37, + 0x4B, 0xA1, 0x00, 0x00, 0x18, 0x7D, 0x04, 0x00, 0x86, 0x22, 0x06, 0x67, 0xD7, 0x61, 0x0C, 0xF0, + 0x00, 0x10, 0x26, 0x6F, 0x32, 0x02, 0x04, 0x20, 0x24, 0x71, 0x13, 0x77, 0xC4, 0x74, 0xA9, 0x26, + 0xBE, 0x01, 0x99, 0x7D, 0x04, 0x00, 0xC2, 0x07, 0x04, 0x75, 0x0C, 0x30, 0x00, 0x10, 0x99, 0x73, + 0x04, 0x00, 0xF2, 0x18, 0x38, 0x71, 0xC4, 0x00, 0x38, 0x81, 0xC0, 0x00, 0x24, 0x71, 0xC4, 0x7D, + 0x24, 0x84, 0xB9, 0x71, 0xC4, 0x00, 0xB9, 0x81, 0xC0, 0x00, 0x9A, 0x34, 0xFB, 0xFF, 0x38, 0xB1, + 0xD8, 0x00, 0x24, 0x94, 0xCC, 0xB0, 0x13, 0x00, 0x82, 0x05, 0xB9, 0xB1, 0xA8, 0x00, 0xFA, 0xF3, + 0xFA, 0xFF, 0x78, 0x7E, 0x6A, 0x02, 0x78, 0x6E, 0x68, 0x02, 0x14, 0x51, 0x26, 0x57, 0xC6, 0x56, + 0x12, 0x04, 0x24, 0x71, 0xC6, 0x76, 0x32, 0x07, 0x18, 0x7E, 0x6E, 0x02, 0x24, 0x71, 0x99, 0x7E, + 0x6E, 0x02, 0xF2, 0x03, 0x99, 0x0E, 0x6E, 0x02, 0x38, 0x60, 0x2C, 0x16, 0x14, 0x51, 0xC4, 0x65, + 0x26, 0x56, 0x13, 0x55, 0x04, 0x75, 0xD2, 0x02, 0x06, 0x75, 0x18, 0x5E, 0x6E, 0x02, 0x13, 0x37, + 0x0C, 0x40, 0xF0, 0x11, 0x04, 0x70, 0x38, 0x61, 0xB0, 0x00, 0x73, 0x67, 0xD4, 0x61, 0x92, 0x05, + 0xC6, 0x53, 0xC2, 0x03, 0xB1, 0x04, 0x06, 0x56, 0x24, 0x71, 0xCC, 0x70, 0x13, 0x00, 0x24, 0x44, + 0x92, 0xF3, 0x38, 0xD0, 0x40, 0x16, 0x99, 0x5E, 0x6E, 0x02, 0x30, 0x7D, 0xDC, 0x70, 0x80, 0x00, + 0x82, 0x68, 0x98, 0x7E, 0x04, 0x00, 0x92, 0x17, 0xA8, 0x7E, 0xEE, 0x01, 0x82, 0x0B, 0x18, 0x7E, + 0xEC, 0x01, 0x18, 0x6D, 0x41, 0x00, 0xC6, 0x67, 0xC2, 0x05, 0x24, 0x71, 0x99, 0x7E, 0xEC, 0x01, + 0xF2, 0x58, 0xB9, 0x0E, 0xE8, 0x01, 0x99, 0x0E, 0xED, 0x01, 0x99, 0x0E, 0xEC, 0x01, 0xA9, 0x0E, + 0xEE, 0x01, 0xF2, 0x4F, 0x18, 0xCE, 0xED, 0x01, 0x18, 0x7D, 0x3E, 0x00, 0xC6, 0xC7, 0xB2, 0x11, + 0x24, 0xC1, 0x13, 0xCC, 0x99, 0xCE, 0xED, 0x01, 0x18, 0x7D, 0x3F, 0x00, 0xC6, 0x7C, 0xB2, 0x3F, + 0x38, 0x7E, 0xE8, 0x01, 0x28, 0x6E, 0x0C, 0x00, 0x26, 0x76, 0xB9, 0x7E, 0xE8, 0x01, 0xF2, 0x37, + 0xC6, 0xC7, 0x92, 0x35, 0x38, 0x7E, 0xE8, 0x01, 0x28, 0x2E, 0x0C, 0x00, 0x26, 0x27, 0xB9, 0x2E, + 0xE8, 0x01, 0x18, 0x3D, 0x3F, 0x00, 0x3F, 0x33, 0x0C, 0x00, 0x24, 0x31, 0x0B, 0x9E, 0x00, 0x00, + 0xA9, 0x0E, 0xEE, 0x01, 0x28, 0x7D, 0x42, 0x00, 0xB9, 0x2E, 0xE8, 0x01, 0x06, 0xB2, 0xC6, 0x27, + 0xC2, 0x15, 0x38, 0x71, 0xD4, 0x00, 0x18, 0x3D, 0x40, 0x00, 0x36, 0x27, 0xAB, 0x9A, 0x00, 0x00, + 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9E, 0x00, 0x00, 0x23, 0x22, 0xA9, 0x2E, 0xEE, 0x01, 0x28, 0x7D, + 0x44, 0x00, 0xC6, 0x27, 0xC2, 0x03, 0xA9, 0x7E, 0xEE, 0x01, 0x18, 0x3D, 0x3F, 0x00, 0x06, 0x2B, + 0x3F, 0x33, 0x0C, 0x00, 0xAB, 0x9A, 0x00, 0x00, 0xB9, 0x2E, 0xE8, 0x01, 0x99, 0x0E, 0xEC, 0x01, + 0x18, 0x9E, 0x04, 0x00, 0x04, 0xA0, 0x0C, 0x50, 0x54, 0x05, 0x14, 0xD1, 0x06, 0xCA, 0x26, 0x5E, + 0xC6, 0xC9, 0x32, 0x48, 0x06, 0xBC, 0xD7, 0xB1, 0x26, 0xBE, 0x78, 0x2B, 0xBE, 0x01, 0xB9, 0x51, + 0x24, 0x01, 0x04, 0x3A, 0x4B, 0xA1, 0x00, 0x00, 0x06, 0x72, 0xA9, 0x2B, 0xBE, 0x01, 0x78, 0x2B, + 0xC0, 0x01, 0xB9, 0x71, 0x28, 0x01, 0x04, 0x3A, 0x4B, 0xA1, 0x00, 0x00, 0x38, 0x71, 0x28, 0x01, + 0x38, 0x51, 0x24, 0x01, 0x43, 0x22, 0x43, 0x37, 0xA9, 0x2B, 0xC0, 0x01, 0x06, 0x78, 0x0C, 0x70, + 0x44, 0x15, 0x78, 0x67, 0x04, 0x00, 0xC6, 0x63, 0x12, 0x1F, 0x78, 0x67, 0x06, 0x00, 0xC6, 0x63, + 0x22, 0x1B, 0x70, 0x67, 0xC6, 0x62, 0x12, 0x18, 0x78, 0x67, 0x02, 0x00, 0xC6, 0x62, 0x22, 0x14, + 0x18, 0x6B, 0xBD, 0x01, 0x18, 0xFB, 0xBC, 0x01, 0x2F, 0x46, 0x06, 0x00, 0x26, 0x46, 0x57, 0x41, + 0x26, 0x64, 0x26, 0x6F, 0x26, 0x66, 0x0C, 0xF0, 0x80, 0x02, 0x26, 0x6F, 0x70, 0x66, 0xC6, 0xA6, + 0x32, 0x03, 0x06, 0xA6, 0x06, 0xDC, 0x24, 0x78, 0xC6, 0x75, 0x92, 0xDC, 0x24, 0xC1, 0x43, 0xCC, + 0xF2, 0xB8, 0x98, 0x7E, 0x05, 0x00, 0xB9, 0xD1, 0xAC, 0x00, 0xB9, 0xA1, 0xA4, 0x00, 0x92, 0x23, + 0xC4, 0x91, 0xC2, 0x21, 0x98, 0x7E, 0xC0, 0x03, 0x92, 0x1E, 0xB8, 0x71, 0xD0, 0x00, 0x82, 0x1B, + 0x34, 0x71, 0xD7, 0x71, 0x26, 0x7E, 0x78, 0x57, 0xBE, 0x01, 0x78, 0x67, 0xC0, 0x01, 0x0C, 0x40, + 0xE6, 0x01, 0x0C, 0x70, 0xBE, 0x11, 0x26, 0x4E, 0xC6, 0x74, 0x82, 0x06, 0xA1, 0x07, 0xA9, 0x07, + 0x02, 0x00, 0x24, 0x78, 0xF2, 0xFA, 0x04, 0x71, 0x99, 0x7E, 0x04, 0x00, 0xA9, 0x5E, 0xBE, 0x01, + 0xA9, 0x6E, 0xC0, 0x01, 0x18, 0x7E, 0x04, 0x00, 0xC4, 0x71, 0x92, 0x05, 0xC4, 0xD0, 0x3A, 0x91, + 0x00, 0x00, 0xF2, 0x06, 0xC4, 0x72, 0x9A, 0x90, 0x00, 0x00, 0xC4, 0xD0, 0x32, 0x06, 0x04, 0x71, + 0x99, 0x7E, 0x2C, 0x01, 0xFA, 0x8E, 0x00, 0x00, 0x18, 0x7E, 0xBD, 0x01, 0xCC, 0x70, 0x11, 0x00, + 0x92, 0x05, 0x18, 0x7E, 0xBC, 0x01, 0xC4, 0x7A, 0xC2, 0x0C, 0x18, 0x7E, 0xC5, 0x01, 0xCC, 0x70, + 0x11, 0x00, 0x92, 0xEE, 0x18, 0x7E, 0xC4, 0x01, 0x04, 0x51, 0xC4, 0x7A, 0xD2, 0xE9, 0xF2, 0x02, + 0x04, 0x50, 0xD7, 0x51, 0x26, 0x5E, 0x18, 0x75, 0xBD, 0x01, 0x2F, 0x67, 0x07, 0x00, 0x26, 0x67, + 0x57, 0x61, 0x26, 0x76, 0x18, 0x65, 0xBC, 0x01, 0x0C, 0x40, 0x80, 0x0B, 0x26, 0x76, 0x06, 0x6D, + 0xD7, 0x61, 0x2F, 0x36, 0x0E, 0x00, 0x26, 0x77, 0x2F, 0x27, 0x04, 0x00, 0x18, 0x73, 0xBD, 0x01, + 0x2F, 0x57, 0x07, 0x00, 0x26, 0x57, 0x57, 0x51, 0x26, 0x75, 0x18, 0x53, 0xBC, 0x01, 0x70, 0x32, + 0x26, 0x57, 0x26, 0x55, 0x26, 0x45, 0x70, 0x74, 0xC6, 0x37, 0x02, 0x07, 0x18, 0x7E, 0x2C, 0x01, + 0xC4, 0x72, 0x82, 0x03, 0x06, 0x7D, 0xF2, 0x12, 0x18, 0x7E, 0x2C, 0x01, 0xC4, 0x71, 0x82, 0xFB, + 0x26, 0x6E, 0x18, 0x76, 0xBC, 0x01, 0x18, 0x86, 0xBD, 0x01, 0x78, 0x96, 0xBE, 0x01, 0x78, 0xA6, + 0xC0, 0x01, 0x28, 0xB6, 0xC2, 0x01, 0x04, 0xC0, 0xF2, 0x15, 0xC4, 0x71, 0x12, 0x0F, 0x04, 0x51, + 0x26, 0x57, 0x06, 0x47, 0x06, 0x75, 0xD7, 0x71, 0x26, 0x7E, 0x48, 0x67, 0xBC, 0x01, 0xD7, 0x41, + 0x26, 0x4E, 0xC9, 0x64, 0xBC, 0x01, 0x43, 0x75, 0xF2, 0xF1, 0x04, 0x71, 0x99, 0x7E, 0x04, 0x00, + 0xF2, 0x98, 0x24, 0xC8, 0xCC, 0xC0, 0x30, 0x00, 0x82, 0x0F, 0x2F, 0x2C, 0x0E, 0x00, 0x2C, 0x20, + 0xB4, 0x01, 0x04, 0x30, 0x04, 0x48, 0xB9, 0x71, 0x28, 0x01, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x38, 0x71, 0x28, 0x01, 0xF2, 0xEF, 0x04, 0x61, 0x99, 0x6E, 0x04, 0x00, 0x99, 0x7E, 0xBC, 0x01, + 0x99, 0x8E, 0xBD, 0x01, 0xA9, 0x9E, 0xBE, 0x01, 0xA9, 0xAE, 0xC0, 0x01, 0xA9, 0xBE, 0xC2, 0x01, + 0x04, 0x72, 0xFA, 0x77, 0xFF, 0xFF, 0xC4, 0x70, 0x9A, 0x73, 0xFF, 0xFF, 0x99, 0x0E, 0x2C, 0x01, + 0x28, 0x5E, 0x06, 0x00, 0x04, 0x71, 0xD6, 0x75, 0x82, 0x1B, 0x18, 0x5E, 0x04, 0x00, 0xC4, 0x51, + 0xC2, 0x39, 0xC4, 0xD0, 0x22, 0x37, 0xC6, 0xD5, 0x32, 0x0E, 0x06, 0x4D, 0x24, 0xD1, 0x06, 0x7D, + 0xD7, 0x71, 0x26, 0x7E, 0x48, 0x67, 0xBC, 0x01, 0xD7, 0x41, 0x26, 0x4E, 0xC9, 0x64, 0xBC, 0x01, + 0x43, 0xDD, 0xF2, 0xF2, 0x06, 0x75, 0x34, 0x71, 0x99, 0x7E, 0x04, 0x00, 0xF2, 0x23, 0x04, 0x72, + 0xD6, 0x75, 0x82, 0x20, 0x18, 0x4E, 0x04, 0x00, 0xC4, 0x41, 0xC2, 0x1C, 0xC4, 0xD0, 0x22, 0x1A, + 0xC6, 0xD4, 0x32, 0x0E, 0x06, 0x3D, 0x24, 0xD1, 0x06, 0x7D, 0xD7, 0x71, 0x26, 0x7E, 0x48, 0x67, + 0xBC, 0x01, 0xD7, 0x31, 0x26, 0x3E, 0xC9, 0x63, 0xBC, 0x01, 0x43, 0xDD, 0xF2, 0xF2, 0x06, 0x74, + 0x34, 0x71, 0x99, 0x7E, 0x04, 0x00, 0x14, 0x83, 0x06, 0x75, 0x56, 0x78, 0x64, 0x71, 0xA9, 0x7E, + 0x06, 0x00, 0x18, 0x7E, 0x04, 0x00, 0xC4, 0x71, 0xCA, 0x56, 0x01, 0x00, 0x18, 0x7E, 0xC4, 0x03, + 0xC4, 0x71, 0xDA, 0x51, 0x01, 0x00, 0x18, 0x7E, 0xEE, 0x02, 0x0C, 0x80, 0x00, 0x19, 0xC4, 0x70, + 0x82, 0x03, 0x0C, 0x80, 0xA0, 0x28, 0x0C, 0x20, 0x94, 0x00, 0x26, 0x21, 0x04, 0x30, 0x04, 0x4A, + 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x18, 0xBE, 0x04, 0x00, 0x04, 0xA0, 0x06, 0xDA, 0x04, 0x51, + 0xC6, 0xDB, 0x32, 0x4B, 0x06, 0x9D, 0xD7, 0x91, 0x26, 0x9E, 0x2F, 0x6D, 0x0D, 0x00, 0x2C, 0x90, + 0xBC, 0x01, 0x06, 0xCD, 0x26, 0x61, 0xC6, 0xCB, 0x32, 0x3D, 0x06, 0x4C, 0xD7, 0x41, 0x26, 0x4E, + 0x78, 0x39, 0x02, 0x00, 0x78, 0x74, 0xBE, 0x01, 0x3F, 0x77, 0x03, 0x00, 0xC4, 0x70, 0x32, 0x02, + 0x16, 0x77, 0x78, 0x29, 0x04, 0x00, 0x78, 0x44, 0xC0, 0x01, 0x36, 0x24, 0xC4, 0x20, 0x32, 0x02, + 0x16, 0x22, 0x06, 0x32, 0xB9, 0x51, 0x24, 0x01, 0xB9, 0x61, 0x1C, 0x01, 0xB9, 0x71, 0x28, 0x01, + 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x71, 0x28, 0x01, 0x06, 0x42, 0x06, 0x37, 0x06, 0x27, 0xB9, 0x41, + 0x20, 0x01, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x41, 0x20, 0x01, 0x38, 0x51, 0x24, 0x01, 0x38, 0x61, + 0x1C, 0x01, 0x26, 0x24, 0xC6, 0x82, 0xC2, 0x0B, 0x28, 0x46, 0x94, 0x00, 0x06, 0x75, 0x53, 0x7C, + 0xC6, 0xDC, 0x66, 0x74, 0xA9, 0x76, 0x94, 0x00, 0x82, 0x02, 0x04, 0xA1, 0x24, 0xC1, 0x43, 0xCC, + 0xF2, 0xC3, 0x24, 0xD1, 0x43, 0xDD, 0xF2, 0xB5, 0xC4, 0xA1, 0x92, 0x04, 0x99, 0xAE, 0xEE, 0x02, + 0xF2, 0x03, 0x99, 0x0E, 0xEE, 0x02, 0x14, 0x71, 0x26, 0x7B, 0x43, 0x77, 0x14, 0x21, 0xC6, 0x72, + 0x82, 0x23, 0x2F, 0x57, 0x07, 0x00, 0x26, 0x51, 0xA8, 0x65, 0x94, 0x00, 0x82, 0x1A, 0x04, 0x61, + 0x26, 0x67, 0x43, 0x66, 0x06, 0x45, 0xC6, 0x6B, 0x32, 0x14, 0x28, 0x34, 0x94, 0x00, 0x06, 0x53, + 0x63, 0x56, 0xD4, 0x51, 0x82, 0x0B, 0x2F, 0x56, 0x06, 0x00, 0x26, 0x51, 0x28, 0xF5, 0x94, 0x00, + 0x66, 0x3F, 0xA9, 0x34, 0x94, 0x00, 0xA9, 0x05, 0x94, 0x00, 0x24, 0x61, 0x43, 0x66, 0xF2, 0xEC, + 0x34, 0x71, 0x43, 0x77, 0xF2, 0xDD, 0x04, 0xB0, 0x06, 0xCB, 0x06, 0xAE, 0x18, 0xDE, 0x04, 0x00, + 0x06, 0x9A, 0xC6, 0xCD, 0x3A, 0x91, 0x00, 0x00, 0x2F, 0x6C, 0x0C, 0x00, 0x26, 0x61, 0xA8, 0x76, + 0x94, 0x00, 0x04, 0x51, 0x26, 0x5C, 0xB9, 0x51, 0xA8, 0x00, 0x8A, 0x81, 0x00, 0x00, 0xD7, 0xC1, + 0x26, 0xCA, 0x18, 0x7C, 0xBD, 0x01, 0x38, 0x81, 0xCC, 0x00, 0x78, 0x3C, 0xBE, 0x01, 0x2F, 0x57, + 0x07, 0x00, 0x26, 0x57, 0x57, 0x51, 0x26, 0x75, 0x18, 0x5C, 0xBC, 0x01, 0x26, 0x75, 0x26, 0x77, + 0x26, 0x78, 0x70, 0xD7, 0xB9, 0x61, 0x1C, 0x01, 0x06, 0x2D, 0xAB, 0x9A, 0x00, 0x00, 0x78, 0x3C, + 0xC0, 0x01, 0x06, 0x82, 0x06, 0x2D, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x51, 0xA8, 0x00, 0x38, 0x61, + 0x1C, 0x01, 0x06, 0x92, 0x43, 0x75, 0xB9, 0x61, 0xB0, 0x00, 0x18, 0x6A, 0x04, 0x00, 0xC6, 0x76, + 0x32, 0x45, 0x38, 0x51, 0xB0, 0x00, 0x28, 0x65, 0x94, 0x00, 0x63, 0x67, 0xD4, 0x61, 0x82, 0x3B, + 0x06, 0x67, 0x0C, 0xF0, 0x00, 0x10, 0xD7, 0x61, 0x26, 0x6F, 0x18, 0x56, 0xBD, 0x01, 0x0C, 0x40, + 0xBC, 0x01, 0x2F, 0x35, 0x05, 0x00, 0x26, 0x35, 0x57, 0x31, 0x26, 0x53, 0x18, 0x36, 0xBC, 0x01, + 0x26, 0x46, 0x26, 0x53, 0x38, 0x31, 0xCC, 0x00, 0x26, 0x55, 0x26, 0x53, 0x70, 0x55, 0x78, 0x36, + 0xBE, 0x01, 0xB9, 0x71, 0x28, 0x01, 0x06, 0x25, 0xB9, 0x41, 0x20, 0x01, 0x26, 0xD5, 0xB9, 0x51, + 0x24, 0x01, 0xB9, 0x61, 0x1C, 0x01, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x61, 0x1C, 0x01, 0x38, 0x51, + 0x24, 0x01, 0x78, 0x36, 0xC0, 0x01, 0x26, 0x82, 0x06, 0x25, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x41, + 0x20, 0x01, 0x26, 0x92, 0x04, 0x30, 0x06, 0x24, 0x04, 0x48, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x38, 0x71, 0x28, 0x01, 0x24, 0x71, 0x43, 0x77, 0xF2, 0xB9, 0xC4, 0xD0, 0x92, 0x02, 0x04, 0xD1, + 0x06, 0x3D, 0x06, 0x28, 0x0B, 0x9E, 0x00, 0x00, 0xA9, 0x2C, 0xBE, 0x01, 0x06, 0x3D, 0x06, 0x29, + 0x24, 0xB1, 0x0B, 0x9E, 0x00, 0x00, 0x23, 0xBB, 0xA9, 0x2C, 0xC0, 0x01, 0x38, 0x51, 0xA8, 0x00, + 0x43, 0xC5, 0xFA, 0x6D, 0xFF, 0xFF, 0x34, 0xD1, 0x43, 0xDD, 0x14, 0xC1, 0xC6, 0xDC, 0x82, 0x1C, + 0x06, 0x7D, 0xD7, 0x71, 0x26, 0x79, 0xF8, 0x67, 0xBE, 0x01, 0x0C, 0x20, 0xBC, 0x01, 0x26, 0x27, + 0x92, 0x10, 0xF8, 0x77, 0xC0, 0x01, 0x92, 0x0D, 0xC4, 0xD3, 0x12, 0x0B, 0x04, 0x31, 0x26, 0x3D, + 0xD7, 0x31, 0x26, 0x3A, 0x2C, 0x30, 0xBC, 0x01, 0x04, 0x48, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, + 0x34, 0xD1, 0x43, 0xDD, 0xF2, 0xE4, 0x18, 0x79, 0x04, 0x00, 0xC6, 0x7B, 0xA2, 0x06, 0x99, 0xB9, + 0x04, 0x00, 0xF2, 0x03, 0x99, 0x0E, 0xEE, 0x02, 0x98, 0x7E, 0xA4, 0x05, 0x92, 0x08, 0x28, 0x7E, + 0x06, 0x00, 0xD4, 0x72, 0x82, 0x13, 0xB8, 0x61, 0xAC, 0x00, 0x32, 0x10, 0x38, 0x60, 0x40, 0x16, + 0x18, 0x7E, 0xA5, 0x05, 0x99, 0x0E, 0x04, 0x00, 0x18, 0x66, 0xD4, 0x00, 0xC6, 0x67, 0xD2, 0x03, + 0x99, 0x0E, 0xA4, 0x05, 0x24, 0x71, 0x99, 0x7E, 0xA5, 0x05, 0x18, 0x7E, 0x04, 0x00, 0x98, 0x6E, + 0x24, 0x01, 0x99, 0x7E, 0x05, 0x00, 0x99, 0x7E, 0x1A, 0x00, 0x82, 0x07, 0xCC, 0x60, 0xF9, 0x00, + 0xD2, 0x09, 0x06, 0x76, 0x24, 0x71, 0xF2, 0x04, 0xC4, 0x70, 0x82, 0x04, 0x04, 0x71, 0x99, 0x7E, + 0x24, 0x01, 0x58, 0xC1, 0x40, 0x01, 0x58, 0x81, 0x30, 0x01, 0x2C, 0x10, 0x50, 0x01, 0xE1, 0xF0, + 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x28, 0xE0, 0xEE, 0x11, 0x98, 0x70, 0x57, 0x16, 0x82, 0x04, + 0x2C, 0xE0, 0x96, 0x00, 0xF2, 0x06, 0x38, 0x70, 0x40, 0x16, 0x28, 0x77, 0x22, 0x00, 0x26, 0xE7, + 0x08, 0x70, 0x00, 0x40, 0x38, 0x27, 0xE4, 0x70, 0x04, 0x3D, 0x5C, 0x20, 0xFF, 0x01, 0x8B, 0xA4, + 0x00, 0x00, 0xA3, 0x22, 0x82, 0x03, 0xC4, 0x2C, 0x92, 0x03, 0x2C, 0xE0, 0x64, 0x00, 0x6B, 0xBD, + 0x00, 0x00, 0x06, 0xD2, 0xEB, 0xD6, 0x03, 0x00, 0xC6, 0xDE, 0x04, 0x21, 0xB2, 0x02, 0x04, 0x20, + 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x24, 0x00, 0xD9, 0xC1, 0x14, 0x00, + 0x38, 0xE0, 0x40, 0x16, 0xD9, 0x81, 0x04, 0x00, 0x06, 0xD2, 0x04, 0x30, 0x06, 0x2A, 0x0C, 0x20, + 0x3A, 0x11, 0x0C, 0x40, 0x7A, 0x00, 0x0C, 0x90, 0x00, 0x10, 0x0C, 0x80, 0x50, 0x01, 0x0C, 0xF0, + 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0xA0, 0x3A, 0x11, 0x26, 0x89, 0x06, 0xCD, 0x06, 0xBD, 0x28, 0x4B, + 0xE4, 0x01, 0x28, 0x3B, 0xE2, 0x01, 0x28, 0x2B, 0xE0, 0x01, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, + 0x30, 0x7C, 0x3F, 0x22, 0x07, 0x00, 0xB1, 0x2C, 0x18, 0x3E, 0x0B, 0x00, 0xAB, 0x9A, 0x00, 0x00, + 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9E, 0x00, 0x00, 0x06, 0x72, 0x38, 0x3C, 0xF0, 0x00, 0x18, 0x2E, + 0x0C, 0x00, 0xB1, 0x71, 0xAB, 0x9A, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9E, 0x00, 0x00, + 0x30, 0x71, 0x06, 0x52, 0x04, 0x3F, 0x06, 0x27, 0xB1, 0x51, 0x4B, 0xA1, 0x00, 0x00, 0x28, 0x6E, + 0x14, 0x00, 0x30, 0x51, 0xC6, 0x26, 0x06, 0x72, 0x02, 0x02, 0x06, 0x76, 0x06, 0x25, 0x0C, 0x30, + 0x12, 0x00, 0xB1, 0x71, 0x4B, 0xA1, 0x00, 0x00, 0x28, 0x6E, 0x16, 0x00, 0x30, 0x71, 0xC6, 0x26, + 0x02, 0x02, 0x06, 0x26, 0x18, 0x3E, 0x0E, 0x00, 0x3F, 0x22, 0x07, 0x00, 0xAB, 0x9A, 0x00, 0x00, + 0x0C, 0x30, 0x64, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0xA1, 0x2A, 0x24, 0xA2, 0xC6, 0xA8, 0x24, 0xB6, + 0x24, 0xC4, 0x92, 0xB6, 0x0C, 0xA0, 0x76, 0x11, 0x2C, 0x90, 0x9A, 0x01, 0x06, 0xCD, 0x28, 0x4C, + 0x98, 0x02, 0x28, 0x3C, 0x96, 0x02, 0x28, 0x2C, 0x94, 0x02, 0x0C, 0xF0, 0xD8, 0x00, 0xF1, 0xF0, + 0x38, 0x7D, 0x78, 0x00, 0x3F, 0x22, 0x07, 0x00, 0xB9, 0x2D, 0x78, 0x00, 0x18, 0x3E, 0x09, 0x00, + 0xAB, 0x9A, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x0B, 0x9E, 0x00, 0x00, 0x06, 0xB2, 0x38, 0x3D, + 0x68, 0x01, 0x18, 0x2E, 0x0A, 0x00, 0xE7, 0xB1, 0xAB, 0x9A, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, + 0x0B, 0x9E, 0x00, 0x00, 0x28, 0x7E, 0x10, 0x00, 0xC6, 0xB7, 0x02, 0x02, 0x06, 0xB7, 0x04, 0x3B, + 0x4B, 0xA1, 0x00, 0x00, 0x28, 0x7E, 0x12, 0x00, 0xC6, 0x27, 0x02, 0x02, 0x06, 0x27, 0x18, 0x3E, + 0x0D, 0x00, 0x3F, 0x22, 0x0B, 0x00, 0xAB, 0x9A, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x4B, 0xA1, + 0x00, 0x00, 0xA1, 0x2A, 0x24, 0xA2, 0xC6, 0xA9, 0x24, 0xC6, 0x24, 0xD4, 0x92, 0xC1, 0x58, 0xC1, + 0x14, 0x00, 0x58, 0x81, 0x04, 0x00, 0x2C, 0x10, 0x24, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0xC4, 0x03, + 0xD9, 0x81, 0xA4, 0x03, 0x38, 0xB0, 0x40, 0x16, 0xD9, 0xC1, 0xB4, 0x03, 0x98, 0x70, 0x57, 0x16, + 0xB9, 0x01, 0x5C, 0x03, 0x0C, 0xD0, 0x00, 0x10, 0xB9, 0x01, 0x58, 0x03, 0xB9, 0x01, 0x54, 0x03, + 0xB9, 0x01, 0x50, 0x03, 0xA9, 0x0D, 0xF0, 0x02, 0xA9, 0x0D, 0xF2, 0x02, 0xA9, 0x0D, 0xF4, 0x02, + 0xA9, 0x0D, 0xF6, 0x02, 0xA9, 0x0D, 0xFC, 0x02, 0x92, 0x0E, 0x0C, 0x50, 0x34, 0x00, 0x0C, 0x70, + 0x32, 0x00, 0x26, 0x5B, 0x26, 0x7B, 0x70, 0x55, 0x20, 0x77, 0xB9, 0x51, 0x78, 0x03, 0xB9, 0x71, + 0x68, 0x03, 0xF2, 0x08, 0x0C, 0x90, 0x90, 0x01, 0x04, 0x50, 0xB9, 0x91, 0x68, 0x03, 0xB9, 0x51, + 0x78, 0x03, 0x06, 0x21, 0x0C, 0x30, 0x50, 0x03, 0x0C, 0xF0, 0x54, 0x01, 0xF1, 0xF0, 0x28, 0xCD, + 0x0A, 0x00, 0x2F, 0xEC, 0x0C, 0x00, 0x06, 0x67, 0x0C, 0x60, 0x44, 0x16, 0x04, 0x32, 0x26, 0x36, + 0x2F, 0x2C, 0x0E, 0x00, 0x20, 0x76, 0x20, 0x63, 0xD7, 0x21, 0x26, 0x2C, 0x0C, 0x30, 0x64, 0x00, + 0x26, 0x22, 0xB9, 0x71, 0x94, 0x03, 0xB9, 0x61, 0x98, 0x03, 0x0B, 0x9E, 0x00, 0x00, 0x06, 0x7C, + 0xD7, 0x72, 0xB9, 0x21, 0x8C, 0x03, 0x2F, 0x27, 0x0E, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x26, 0x2C, + 0x0B, 0x9E, 0x00, 0x00, 0x38, 0x51, 0x5C, 0x03, 0x38, 0x71, 0x50, 0x03, 0x38, 0x91, 0x54, 0x03, + 0xB9, 0x51, 0x6C, 0x03, 0x0C, 0x50, 0x0C, 0x03, 0x26, 0x5D, 0x20, 0x55, 0xB9, 0x71, 0x60, 0x03, + 0xB9, 0x91, 0x74, 0x03, 0x38, 0x71, 0x48, 0x03, 0x38, 0x91, 0x4C, 0x03, 0x38, 0x81, 0x58, 0x03, + 0xB9, 0x51, 0x70, 0x03, 0x04, 0x30, 0x0C, 0x40, 0x78, 0x00, 0x0C, 0x50, 0x94, 0x02, 0xB9, 0x21, + 0x90, 0x03, 0xB9, 0x71, 0x88, 0x03, 0xB9, 0x91, 0x84, 0x03, 0x26, 0x41, 0x26, 0x51, 0xB9, 0x31, + 0x64, 0x03, 0x06, 0xF3, 0x2F, 0x2F, 0x0F, 0x00, 0x0C, 0x70, 0x00, 0x07, 0x26, 0x72, 0x0C, 0x60, + 0xE0, 0x01, 0x0C, 0x90, 0x80, 0x02, 0x06, 0xE1, 0x26, 0x61, 0xB9, 0x71, 0x9C, 0x03, 0x06, 0xAF, + 0x26, 0x29, 0x04, 0x30, 0x20, 0x72, 0x0C, 0x90, 0xFF, 0x0F, 0x56, 0x97, 0xB9, 0x91, 0x7C, 0x03, + 0x38, 0x91, 0x9C, 0x03, 0x2F, 0x73, 0x03, 0x00, 0x26, 0x79, 0x20, 0x77, 0x0C, 0x90, 0xFF, 0x0F, + 0x56, 0x97, 0x38, 0x71, 0x7C, 0x03, 0xB9, 0x91, 0x80, 0x03, 0x36, 0x79, 0x38, 0x91, 0x94, 0x03, + 0xC6, 0x9A, 0x82, 0x0E, 0x38, 0x91, 0x98, 0x03, 0xC6, 0x9A, 0x82, 0x0A, 0xC4, 0x3A, 0x1A, 0x26, + 0x01, 0x00, 0x38, 0x91, 0x64, 0x03, 0xCC, 0x90, 0x12, 0x00, 0x8A, 0x20, 0x01, 0x00, 0xC4, 0x70, + 0xA1, 0x72, 0x22, 0x76, 0x30, 0x9E, 0x26, 0x97, 0xB1, 0x9E, 0x20, 0x96, 0xC6, 0x97, 0xB9, 0x91, + 0xA0, 0x03, 0x28, 0x96, 0x02, 0x00, 0x32, 0x09, 0xA9, 0x96, 0x04, 0x00, 0x38, 0x91, 0xA0, 0x03, + 0xA1, 0x76, 0xA9, 0x96, 0x02, 0x00, 0xF2, 0x0E, 0xC6, 0x97, 0x32, 0x06, 0xA9, 0x96, 0x04, 0x00, + 0xA9, 0x76, 0x02, 0x00, 0xF2, 0x07, 0x28, 0x96, 0x04, 0x00, 0xC6, 0x97, 0x32, 0x03, 0xA9, 0x76, + 0x04, 0x00, 0x30, 0x94, 0x26, 0x97, 0xB1, 0x94, 0x20, 0x95, 0xC6, 0x97, 0xB9, 0x91, 0xA0, 0x03, + 0x28, 0x95, 0x02, 0x00, 0x32, 0x09, 0xA9, 0x95, 0x04, 0x00, 0x38, 0x91, 0xA0, 0x03, 0xA1, 0x75, + 0xA9, 0x95, 0x02, 0x00, 0xF2, 0x0E, 0xC6, 0x97, 0x32, 0x06, 0xA9, 0x95, 0x04, 0x00, 0xA9, 0x75, + 0x02, 0x00, 0xF2, 0x07, 0x28, 0x95, 0x04, 0x00, 0xC6, 0x97, 0x32, 0x03, 0xA9, 0x75, 0x04, 0x00, + 0x1C, 0x90, 0x33, 0x00, 0x26, 0x97, 0xCC, 0x90, 0x4E, 0x00, 0xD2, 0x06, 0x28, 0x9D, 0xFC, 0x02, + 0x24, 0x91, 0xA9, 0x9D, 0xFC, 0x02, 0xCC, 0xC0, 0x64, 0x00, 0x02, 0x1D, 0x38, 0x91, 0x8C, 0x03, + 0xC6, 0x79, 0xC2, 0x06, 0x28, 0x9D, 0xF0, 0x02, 0x24, 0x91, 0xA9, 0x9D, 0xF0, 0x02, 0x38, 0x91, + 0x90, 0x03, 0xC6, 0x79, 0xC2, 0x10, 0x28, 0x9D, 0xF2, 0x02, 0x24, 0x91, 0xA9, 0x9D, 0xF2, 0x02, + 0x28, 0x9D, 0xF4, 0x02, 0x24, 0x91, 0xA9, 0x9D, 0xF4, 0x02, 0x28, 0x9D, 0xF6, 0x02, 0x24, 0x91, + 0xA9, 0x9D, 0xF6, 0x02, 0x28, 0x9B, 0xC0, 0x00, 0xC6, 0x79, 0x02, 0x0A, 0x26, 0x99, 0xC6, 0x79, + 0x24, 0x81, 0x02, 0x06, 0x38, 0x71, 0x6C, 0x03, 0x24, 0x71, 0xB9, 0x71, 0x6C, 0x03, 0x38, 0x91, + 0x80, 0x03, 0x38, 0x71, 0x7C, 0x03, 0x36, 0x97, 0xC4, 0x90, 0xB9, 0x91, 0x80, 0x03, 0x02, 0x2E, + 0x38, 0x9E, 0xF0, 0x00, 0x38, 0x71, 0x80, 0x03, 0x26, 0x97, 0xB9, 0x9E, 0xF0, 0x00, 0x38, 0x94, + 0xF0, 0x00, 0x26, 0x97, 0x0C, 0x70, 0xC0, 0x00, 0xB9, 0x94, 0xF0, 0x00, 0x26, 0x7B, 0x20, 0x77, + 0x38, 0x91, 0x80, 0x03, 0xB9, 0x71, 0x7C, 0x03, 0xC6, 0x97, 0x02, 0x12, 0x38, 0x71, 0x60, 0x03, + 0x38, 0x91, 0x7C, 0x03, 0x24, 0x71, 0xB9, 0x71, 0x60, 0x03, 0x38, 0x71, 0x80, 0x03, 0x26, 0x99, + 0xC6, 0x79, 0x02, 0x06, 0x38, 0x91, 0x74, 0x03, 0x24, 0x91, 0xB9, 0x91, 0x74, 0x03, 0x38, 0x71, + 0x70, 0x03, 0x24, 0x71, 0x23, 0x77, 0xB9, 0x71, 0x70, 0x03, 0x24, 0x31, 0xC4, 0x3D, 0x24, 0x22, + 0x24, 0xA1, 0x24, 0xE4, 0x24, 0x66, 0x9A, 0x27, 0xFF, 0xFF, 0x30, 0x64, 0x38, 0x31, 0x88, 0x03, + 0x38, 0x74, 0xF0, 0x00, 0x38, 0x91, 0x84, 0x03, 0x26, 0x63, 0x38, 0x31, 0x64, 0x03, 0x24, 0xFD, + 0xCC, 0xF0, 0xF7, 0x00, 0x24, 0x31, 0xB9, 0x31, 0x64, 0x03, 0x26, 0x79, 0x24, 0x44, 0x24, 0x56, + 0x82, 0x07, 0xB9, 0x61, 0x88, 0x03, 0xB9, 0x71, 0x84, 0x03, 0xFA, 0xFD, 0xFE, 0xFF, 0x38, 0x31, + 0x6C, 0x03, 0x38, 0x51, 0x60, 0x03, 0x38, 0x91, 0x74, 0x03, 0xB9, 0x31, 0x5C, 0x03, 0x38, 0x31, + 0x70, 0x03, 0xB9, 0x71, 0x4C, 0x03, 0xB9, 0x51, 0x50, 0x03, 0xA9, 0x3D, 0x0C, 0x03, 0xB9, 0x61, + 0x48, 0x03, 0xB9, 0x81, 0x58, 0x03, 0xB9, 0x91, 0x54, 0x03, 0x2B, 0xDA, 0x03, 0x00, 0x2B, 0xDD, + 0x03, 0x00, 0xEB, 0xD6, 0x03, 0x00, 0x30, 0x7B, 0x28, 0xEB, 0x30, 0x00, 0xD4, 0x71, 0xA9, 0xED, + 0x0E, 0x00, 0x82, 0x1C, 0x38, 0x31, 0x48, 0x03, 0x38, 0x21, 0x68, 0x03, 0xAB, 0x9A, 0x00, 0x00, + 0x0C, 0x30, 0x7C, 0x60, 0x0B, 0x9E, 0x00, 0x00, 0x06, 0xC2, 0x38, 0x31, 0x68, 0x03, 0x38, 0x21, + 0x78, 0x03, 0xAB, 0x9A, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0x43, 0x22, + 0x26, 0x2C, 0xC6, 0x2E, 0xB2, 0x03, 0xA9, 0x2D, 0x0E, 0x00, 0x06, 0x21, 0x4B, 0xD7, 0x02, 0x00, + 0x0C, 0x30, 0x50, 0x03, 0x06, 0x21, 0x26, 0x31, 0x4B, 0x1B, 0x03, 0x00, 0x58, 0xC1, 0xB4, 0x03, + 0x58, 0x81, 0xA4, 0x03, 0x2C, 0x10, 0xC4, 0x03, 0xE1, 0xF0, 0x04, 0x90, 0xC6, 0x79, 0x02, 0x02, + 0x43, 0x97, 0xA1, 0x92, 0xF2, 0x8B, 0x00, 0x00, 0x3C, 0x10, 0x48, 0x00, 0x0C, 0x20, 0x18, 0x00, + 0x04, 0x30, 0x26, 0x21, 0x04, 0x4B, 0xD9, 0xC1, 0x38, 0x00, 0xD9, 0x81, 0x28, 0x00, 0x4B, 0xE1, + 0x03, 0x00, 0x06, 0xE1, 0x04, 0x70, 0x0C, 0x30, 0x1E, 0x00, 0x0C, 0x20, 0x80, 0x02, 0x0C, 0xD0, + 0x18, 0x00, 0x2F, 0xF7, 0x07, 0x00, 0x04, 0x60, 0x26, 0xD1, 0xA1, 0x3E, 0x26, 0xF2, 0x06, 0x56, + 0x26, 0xD7, 0x2F, 0x46, 0x0F, 0x00, 0x70, 0x44, 0x20, 0xCE, 0xC6, 0x4C, 0x02, 0x03, 0x91, 0x5D, + 0xA1, 0x4E, 0x2C, 0x60, 0x1A, 0x00, 0xCC, 0x60, 0xD4, 0x01, 0x24, 0x51, 0x92, 0xF3, 0x24, 0x71, + 0xC4, 0x7B, 0x24, 0xE2, 0x92, 0xE5, 0x0C, 0xE0, 0xD2, 0x03, 0x04, 0xB0, 0x2F, 0x7B, 0x0B, 0x00, + 0x26, 0x71, 0x20, 0xD7, 0xCC, 0xD0, 0x1E, 0x00, 0xCA, 0xEF, 0x00, 0x00, 0x0C, 0x70, 0x18, 0x00, + 0x26, 0x71, 0x26, 0x7B, 0x10, 0x77, 0xCC, 0x70, 0x10, 0x00, 0x82, 0x61, 0xCC, 0x70, 0x11, 0x00, + 0x82, 0x06, 0xC4, 0x7F, 0x9A, 0xE1, 0x00, 0x00, 0xFA, 0x90, 0x00, 0x00, 0x06, 0x7D, 0x2F, 0xCD, + 0x0D, 0x00, 0xD7, 0x71, 0x26, 0x7C, 0x06, 0x27, 0x78, 0x8E, 0x4E, 0x00, 0xD7, 0x21, 0x36, 0x27, + 0x0C, 0x30, 0x64, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0xC6, 0x28, 0x06, 0x7D, 0xD7, 0x72, 0x28, 0x9E, + 0x34, 0x00, 0x28, 0xAE, 0x4E, 0x00, 0x12, 0x10, 0x06, 0x6D, 0x06, 0x2D, 0x57, 0x63, 0x57, 0x22, + 0x26, 0x26, 0x0C, 0x30, 0x64, 0x00, 0xB9, 0x71, 0x24, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0xC6, 0x28, + 0x38, 0x71, 0x24, 0x00, 0x02, 0x19, 0x3F, 0xCC, 0x07, 0x00, 0x1C, 0x30, 0x64, 0x00, 0x06, 0x2C, + 0x4B, 0xA1, 0x00, 0x00, 0x23, 0x22, 0x26, 0x92, 0x26, 0xA2, 0xA9, 0x9E, 0x34, 0x00, 0xA9, 0xAE, + 0x4E, 0x00, 0x06, 0x2C, 0x0C, 0x30, 0x64, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0x28, 0x7E, 0x68, 0x00, + 0x26, 0x27, 0xFA, 0xA0, 0x00, 0x00, 0x3F, 0x2C, 0x07, 0x00, 0x1C, 0x30, 0x64, 0x00, 0x4B, 0xA1, + 0x00, 0x00, 0x28, 0x7E, 0x1A, 0x00, 0x14, 0x35, 0x26, 0x27, 0xA9, 0x2E, 0x1A, 0x00, 0x06, 0x2D, + 0x4B, 0xA1, 0x00, 0x00, 0x26, 0x29, 0xA9, 0x2E, 0x34, 0x00, 0x14, 0x3A, 0x06, 0x2D, 0x4B, 0xA1, + 0x00, 0x00, 0x26, 0x2A, 0xA9, 0x2E, 0x4E, 0x00, 0xFA, 0x87, 0x00, 0x00, 0x78, 0x9E, 0x34, 0x00, + 0x78, 0xCE, 0x68, 0x00, 0x06, 0x7D, 0x2F, 0xAD, 0x0D, 0x00, 0xD7, 0x71, 0x26, 0x7A, 0xC6, 0x9C, + 0x06, 0x27, 0xD7, 0x21, 0x36, 0x27, 0x0C, 0x30, 0x64, 0x00, 0x02, 0x10, 0x4B, 0xA1, 0x00, 0x00, + 0xC6, 0x29, 0x12, 0x10, 0x06, 0x7D, 0x06, 0x2D, 0x57, 0x73, 0x57, 0x22, 0x26, 0x27, 0x0C, 0x30, + 0x64, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0xC6, 0x29, 0xF2, 0x11, 0x4B, 0xA1, 0x00, 0x00, 0xC6, 0x2C, + 0x02, 0x03, 0x06, 0x2D, 0xF2, 0x0D, 0x06, 0x7D, 0x06, 0x2D, 0x57, 0x73, 0x57, 0x22, 0x26, 0x27, + 0x0C, 0x30, 0x64, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0xC6, 0x2C, 0x06, 0x2D, 0x02, 0x4F, 0xD7, 0x22, + 0x36, 0x2A, 0x1C, 0x30, 0x64, 0x00, 0xF2, 0x4B, 0x78, 0x6E, 0x1A, 0x00, 0x78, 0x7E, 0x4E, 0x00, + 0x20, 0x9E, 0x28, 0xAE, 0x1A, 0x00, 0x28, 0xCE, 0x68, 0x00, 0xC6, 0x67, 0x06, 0x5D, 0x06, 0x8D, + 0x2F, 0x2D, 0x0D, 0x00, 0xD7, 0x51, 0x57, 0x82, 0x02, 0x12, 0x26, 0x52, 0x06, 0x25, 0xD7, 0x21, + 0x36, 0x25, 0x0C, 0x30, 0x64, 0x00, 0xB9, 0x61, 0x24, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0x38, 0x61, + 0x24, 0x00, 0xC6, 0x26, 0x12, 0x13, 0xB9, 0x61, 0x24, 0x00, 0xF2, 0x17, 0x2F, 0x65, 0x02, 0x00, + 0x06, 0x26, 0xD7, 0x21, 0x36, 0x26, 0x0C, 0x30, 0x64, 0x00, 0xB9, 0x71, 0x24, 0x00, 0x4B, 0xA1, + 0x00, 0x00, 0x38, 0x71, 0x24, 0x00, 0xC6, 0x27, 0x02, 0x06, 0x3F, 0x2D, 0x08, 0x00, 0x1C, 0x30, + 0x64, 0x00, 0xF2, 0x07, 0xB9, 0x71, 0x24, 0x00, 0x1C, 0x30, 0x64, 0x00, 0x3F, 0x2D, 0x08, 0x00, + 0x4B, 0xA1, 0x00, 0x00, 0x26, 0x29, 0xA1, 0x2E, 0x1C, 0x30, 0x14, 0x00, 0x06, 0x2D, 0x4B, 0xA1, + 0x00, 0x00, 0x26, 0x2A, 0xA9, 0x2E, 0x1A, 0x00, 0x06, 0x2D, 0x14, 0x3A, 0x4B, 0xA1, 0x00, 0x00, + 0x26, 0x2C, 0xA9, 0x2E, 0x68, 0x00, 0x24, 0xB1, 0xC4, 0xBB, 0x24, 0xE2, 0x9A, 0x08, 0xFF, 0xFF, + 0x0C, 0xF0, 0x9A, 0x11, 0x0C, 0x30, 0x6C, 0x04, 0x0C, 0x50, 0x12, 0x00, 0x14, 0xD1, 0x06, 0x2E, + 0x0C, 0x20, 0x52, 0x11, 0x06, 0x73, 0x04, 0x6C, 0xC4, 0x6A, 0x12, 0x0B, 0xCC, 0x50, 0x12, 0x00, + 0x82, 0x08, 0x70, 0xB2, 0x70, 0x4F, 0x70, 0xC7, 0x26, 0x4B, 0x3F, 0x44, 0x0C, 0x00, 0xF2, 0x02, + 0x70, 0x47, 0xC4, 0x40, 0x12, 0x03, 0xA1, 0x07, 0xF2, 0x02, 0xA1, 0x47, 0x34, 0x61, 0xC6, 0x6D, + 0x34, 0x72, 0x34, 0x22, 0x92, 0xEA, 0x34, 0x51, 0xC6, 0x56, 0x34, 0xF2, 0x3C, 0x30, 0x1A, 0x00, + 0x92, 0xDF, 0x58, 0xC1, 0x38, 0x00, 0x58, 0x81, 0x28, 0x00, 0x2C, 0x10, 0x48, 0x00, 0xE1, 0xF0, + 0xC4, 0x20, 0x0C, 0x70, 0x00, 0x10, 0x28, 0x37, 0x06, 0x00, 0x82, 0x15, 0x64, 0x38, 0xA9, 0x37, + 0x06, 0x00, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x64, 0xDF, 0xB9, 0x70, 0x40, 0x16, 0x08, 0x70, + 0x00, 0x80, 0x2C, 0x70, 0xF0, 0xDD, 0xB9, 0x70, 0x3C, 0x16, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, + 0x58, 0xDD, 0xF2, 0x15, 0x14, 0x29, 0x56, 0x32, 0xA9, 0x37, 0x06, 0x00, 0x08, 0x70, 0x00, 0x80, + 0x2C, 0x70, 0x88, 0xDE, 0xB9, 0x70, 0x40, 0x16, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0x3C, 0xDE, + 0xB9, 0x70, 0x3C, 0x16, 0x08, 0x70, 0x00, 0x80, 0x2C, 0x70, 0xA4, 0xDD, 0xB9, 0x70, 0x38, 0x16, + 0xE1, 0xF0, 0x00, 0x00, 0x0C, 0x70, 0x00, 0x10, 0x99, 0x07, 0xB7, 0x01, 0x99, 0x07, 0xB6, 0x01, + 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x60, 0x40, 0x16, 0x0C, 0x70, 0x00, 0x10, 0x18, 0x66, 0xC2, 0x00, + 0x18, 0x57, 0xB4, 0x01, 0xC6, 0x56, 0x28, 0x67, 0x06, 0x00, 0xA2, 0x09, 0x6C, 0x60, 0x00, 0x01, + 0xA9, 0x67, 0x06, 0x00, 0x04, 0x61, 0x99, 0x60, 0x66, 0x16, 0xF2, 0x06, 0x1C, 0x50, 0x01, 0x01, + 0x56, 0x65, 0xA9, 0x67, 0x06, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xD2, + 0x38, 0x22, 0x4C, 0x03, 0x06, 0xE3, 0x0C, 0x30, 0xC6, 0x00, 0x38, 0xC0, 0x40, 0x16, 0x0B, 0x9E, + 0x00, 0x00, 0x0C, 0x70, 0x00, 0x10, 0xB9, 0x2D, 0x4C, 0x03, 0x06, 0x32, 0x28, 0x27, 0x06, 0x00, + 0x30, 0x5E, 0x38, 0x4E, 0x08, 0x00, 0x38, 0xFE, 0x04, 0x00, 0x04, 0x68, 0x56, 0x62, 0xA3, 0xD6, + 0x5C, 0x20, 0x80, 0x00, 0x82, 0x18, 0x26, 0x44, 0xC6, 0x54, 0x04, 0x61, 0x12, 0x06, 0xCC, 0x30, + 0xFA, 0x00, 0xD2, 0x02, 0x04, 0x60, 0x13, 0x66, 0xCC, 0xF0, 0x23, 0x00, 0x02, 0x07, 0x38, 0x4E, + 0x0C, 0x00, 0xCC, 0x40, 0x22, 0x00, 0x12, 0x02, 0x04, 0x61, 0xC4, 0x20, 0x82, 0x1D, 0xCC, 0x50, + 0x14, 0x00, 0xF2, 0x18, 0xCC, 0x30, 0x96, 0x00, 0x04, 0x61, 0xD2, 0x02, 0x06, 0x6D, 0xC6, 0x54, + 0x13, 0x66, 0x02, 0x04, 0xC4, 0x58, 0x02, 0x02, 0x04, 0x61, 0xCC, 0xF0, 0x14, 0x00, 0x02, 0x07, + 0x38, 0x4E, 0x0C, 0x00, 0xCC, 0x40, 0x13, 0x00, 0x12, 0x02, 0x04, 0x61, 0xC4, 0x20, 0x82, 0x04, + 0xC4, 0x5A, 0x02, 0x02, 0x04, 0x61, 0x98, 0x50, 0x63, 0x16, 0x92, 0x12, 0xC4, 0x60, 0x82, 0x10, + 0x18, 0x67, 0xB4, 0x01, 0xCC, 0x60, 0xFF, 0x00, 0x82, 0x04, 0x24, 0x61, 0x99, 0x67, 0xB4, 0x01, + 0x98, 0x67, 0xB5, 0x01, 0x82, 0x17, 0x34, 0x61, 0x99, 0x67, 0xB5, 0x01, 0xF2, 0x13, 0x18, 0x67, + 0xB5, 0x01, 0x24, 0x61, 0x13, 0x66, 0x99, 0x67, 0xB5, 0x01, 0x18, 0x5C, 0xC3, 0x00, 0xC6, 0x56, + 0x92, 0x09, 0x98, 0x67, 0xB4, 0x01, 0x99, 0x07, 0xB5, 0x01, 0x82, 0x04, 0x34, 0x61, 0x99, 0x67, + 0xB4, 0x01, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x28, 0x70, 0x50, 0x16, + 0x5C, 0x70, 0x10, 0x00, 0xA3, 0x77, 0x92, 0x0A, 0x18, 0x60, 0x5B, 0x16, 0xC4, 0x61, 0x82, 0x0C, + 0x0C, 0x50, 0xCF, 0x02, 0x0C, 0x60, 0xFF, 0x04, 0xF2, 0x0C, 0x0C, 0x50, 0xCF, 0x02, 0x0C, 0x60, + 0xFF, 0x04, 0x04, 0x70, 0xF2, 0x06, 0x0C, 0x50, 0xCD, 0x02, 0x0C, 0x60, 0xFD, 0x04, 0x04, 0x72, + 0x70, 0x42, 0xC6, 0x47, 0x32, 0x03, 0xA1, 0x72, 0xF2, 0x04, 0xC6, 0x45, 0x02, 0x02, 0xA1, 0x52, + 0x78, 0x52, 0x02, 0x00, 0xC6, 0x57, 0x32, 0x04, 0xA9, 0x72, 0x02, 0x00, 0xF2, 0x05, 0xC6, 0x56, + 0x02, 0x03, 0xA9, 0x62, 0x02, 0x00, 0xE1, 0xF0, 0x0C, 0x70, 0x00, 0x10, 0x14, 0x61, 0xA9, 0x67, + 0xD8, 0x04, 0xA9, 0x67, 0xDA, 0x04, 0xE1, 0xF0, 0x28, 0x70, 0x50, 0x16, 0x3C, 0x10, 0x24, 0x00, + 0x5C, 0x70, 0x10, 0x00, 0xA3, 0x77, 0xD9, 0xC1, 0x14, 0x00, 0xD9, 0x81, 0x04, 0x00, 0x06, 0xE2, + 0x06, 0xD3, 0x92, 0x08, 0x98, 0x60, 0x57, 0x16, 0x82, 0x09, 0x0C, 0x90, 0x64, 0x00, 0x06, 0xA7, + 0xF2, 0x09, 0x04, 0x70, 0x0C, 0x90, 0x73, 0x00, 0xF2, 0x04, 0x04, 0x71, 0x0C, 0x90, 0x69, 0x00, + 0x04, 0xA3, 0x20, 0x6E, 0x23, 0x77, 0x26, 0x67, 0xA1, 0x6E, 0x28, 0x6E, 0x02, 0x00, 0x06, 0x2E, + 0x26, 0x76, 0xA9, 0x7E, 0x02, 0x00, 0xEB, 0x22, 0x03, 0x00, 0xC4, 0xD1, 0x78, 0xCE, 0x02, 0x00, + 0x70, 0xDE, 0x92, 0x5A, 0x0C, 0xB0, 0x00, 0x10, 0x38, 0x6B, 0xD8, 0x04, 0x14, 0x71, 0xC6, 0x67, + 0x9A, 0xB0, 0x00, 0x00, 0xCC, 0xD0, 0x45, 0x00, 0x12, 0x0E, 0x1C, 0x70, 0x20, 0x00, 0x26, 0x7D, + 0x06, 0x27, 0x06, 0x67, 0x57, 0x22, 0xD7, 0x63, 0x26, 0x26, 0x26, 0x27, 0x26, 0x22, 0x1C, 0x30, + 0x46, 0x00, 0xF2, 0x10, 0xCC, 0xD0, 0x8A, 0x02, 0x02, 0x14, 0x0C, 0x70, 0xB0, 0x02, 0x36, 0x7D, + 0x06, 0x27, 0x06, 0x67, 0x57, 0x22, 0xD7, 0x63, 0x26, 0x26, 0x26, 0x27, 0x26, 0x22, 0x0C, 0x30, + 0x46, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0x2C, 0x20, 0x68, 0x01, 0xA9, 0x2B, 0xD8, 0x04, 0xF2, 0x03, + 0xA9, 0xDB, 0xD8, 0x04, 0xCC, 0xC0, 0x63, 0x00, 0x12, 0x0E, 0x1C, 0x70, 0x23, 0x00, 0x26, 0x7C, + 0x06, 0x67, 0x57, 0x61, 0xD7, 0x72, 0x26, 0x76, 0x06, 0x27, 0x57, 0x22, 0x36, 0x27, 0x1C, 0x30, + 0x64, 0x00, 0xF2, 0x10, 0xCC, 0xC0, 0x9C, 0x04, 0x02, 0x14, 0x0C, 0x70, 0xDD, 0x04, 0x36, 0x7C, + 0x06, 0x67, 0x57, 0x61, 0xD7, 0x72, 0x26, 0x76, 0x06, 0x27, 0x57, 0x22, 0x36, 0x27, 0x0C, 0x30, + 0x64, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0x2C, 0x20, 0x80, 0x02, 0xA9, 0x2B, 0xDA, 0x04, 0xF2, 0x61, + 0xA9, 0xCB, 0xDA, 0x04, 0xF2, 0x5E, 0x0C, 0xB0, 0x80, 0x02, 0x0C, 0x80, 0x68, 0x01, 0xCC, 0x90, + 0x64, 0x00, 0x04, 0x60, 0x82, 0x04, 0x1C, 0x60, 0x64, 0x00, 0x26, 0x69, 0xC6, 0xD8, 0x3F, 0x78, + 0x0D, 0x00, 0x32, 0x02, 0x24, 0x71, 0x86, 0x27, 0x32, 0x02, 0x16, 0x22, 0x2F, 0x92, 0x02, 0x00, + 0x26, 0x92, 0x06, 0x59, 0xC4, 0x20, 0xD7, 0x52, 0x26, 0x95, 0x26, 0x92, 0x82, 0x07, 0x06, 0x36, + 0xB1, 0x61, 0xAB, 0x9A, 0x00, 0x00, 0x30, 0x61, 0x26, 0x92, 0x04, 0x71, 0xD6, 0x7A, 0x82, 0x11, + 0x06, 0x29, 0x0C, 0x30, 0x64, 0x00, 0xB1, 0x61, 0x4B, 0xA1, 0x00, 0x00, 0xC6, 0xD8, 0x30, 0x61, + 0x22, 0x04, 0x26, 0x82, 0xA1, 0x8E, 0xF2, 0x05, 0x34, 0x81, 0x3F, 0x22, 0x08, 0x00, 0xA1, 0x2E, + 0xC6, 0xCB, 0x3F, 0x7B, 0x0C, 0x00, 0x32, 0x02, 0x24, 0x71, 0x86, 0x27, 0x32, 0x02, 0x16, 0x22, + 0x2F, 0xD2, 0x02, 0x00, 0x26, 0xD2, 0x06, 0x5D, 0xC4, 0x20, 0xD7, 0x52, 0x26, 0xD5, 0x26, 0xD2, + 0x82, 0x05, 0x06, 0x36, 0xAB, 0x9A, 0x00, 0x00, 0x26, 0xD2, 0xD4, 0xA2, 0x82, 0x17, 0x06, 0x2D, + 0x0C, 0x30, 0x64, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0xC6, 0xCB, 0x22, 0x05, 0x26, 0xB2, 0xA9, 0xBE, + 0x02, 0x00, 0xF2, 0x0C, 0x34, 0xB1, 0x3F, 0x22, 0x0B, 0x00, 0xA9, 0x2E, 0x02, 0x00, 0xF2, 0x06, + 0x28, 0x8B, 0xD8, 0x04, 0x28, 0xBB, 0xDA, 0x04, 0xF2, 0xA3, 0x58, 0xC1, 0x14, 0x00, 0x58, 0x81, + 0x04, 0x00, 0x2C, 0x10, 0x24, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, + 0x08, 0xC0, 0x00, 0xFF, 0x0C, 0xE0, 0xD8, 0x15, 0x04, 0xD0, 0x2C, 0xC0, 0xFF, 0x0F, 0x28, 0x70, + 0xEC, 0x15, 0x63, 0x7D, 0xD4, 0x71, 0x82, 0x27, 0x30, 0x3E, 0x06, 0x73, 0x77, 0x76, 0x5C, 0x70, + 0xFF, 0x0F, 0xA1, 0x71, 0x0C, 0x70, 0xFF, 0x0F, 0x56, 0x73, 0xA9, 0x71, 0x02, 0x00, 0x18, 0x70, + 0x5B, 0x16, 0xC4, 0x71, 0x92, 0x05, 0x06, 0x21, 0x77, 0x3E, 0x4B, 0x26, 0x03, 0x00, 0x06, 0x21, + 0xEB, 0x22, 0x03, 0x00, 0x20, 0x61, 0x30, 0x7E, 0x5C, 0x60, 0xFF, 0x0F, 0x57, 0x66, 0x56, 0x7C, + 0x66, 0x76, 0x28, 0x61, 0x02, 0x00, 0x1C, 0x50, 0x00, 0x10, 0x5C, 0x60, 0xFF, 0x0F, 0x56, 0x75, + 0x66, 0x76, 0xB1, 0x7E, 0x24, 0xD1, 0xC4, 0xD5, 0x24, 0xE4, 0x92, 0xD2, 0x58, 0xC1, 0x04, 0x00, + 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x18, 0x0C, 0x20, 0xCD, 0x15, 0x14, 0x31, + 0x04, 0x45, 0xC1, 0xE1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, 0xC8, 0x15, 0x14, 0x31, + 0x04, 0x45, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0xE0, 0x00, 0x10, 0x38, 0x7E, 0xAC, 0x05, + 0x18, 0x6E, 0xA2, 0x05, 0x77, 0x76, 0x54, 0x7F, 0xA6, 0x76, 0x82, 0x0E, 0x04, 0x71, 0x99, 0x7E, + 0xEE, 0x05, 0xB9, 0x0E, 0xD4, 0x05, 0x0C, 0x20, 0xD8, 0x15, 0x04, 0x30, 0x0C, 0x40, 0x14, 0x00, + 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x99, 0x0E, 0xA2, 0x05, 0xCB, 0xD4, 0x01, 0x00, 0x8B, 0x90, + 0x03, 0x00, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, + 0xB1, 0xB1, 0x0C, 0xE0, 0x00, 0x10, 0x98, 0xDE, 0xBF, 0x03, 0x82, 0x19, 0x06, 0x2C, 0x0C, 0x20, + 0x60, 0x13, 0x0C, 0x30, 0x10, 0x13, 0x0C, 0x40, 0x50, 0x00, 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, + 0x06, 0x2B, 0x0C, 0x20, 0xBA, 0x13, 0x0C, 0x30, 0xB5, 0x13, 0x04, 0x45, 0x0C, 0xF0, 0xEC, 0x00, + 0xF1, 0xF0, 0x18, 0x7E, 0xBF, 0x03, 0x99, 0x7E, 0xC0, 0x03, 0xF2, 0x2A, 0x06, 0x2B, 0x0C, 0x20, + 0xBA, 0x13, 0x06, 0x3D, 0x04, 0x45, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x06, 0x2C, 0x0C, 0x20, + 0x60, 0x13, 0x06, 0x3D, 0x0C, 0x40, 0x50, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0x20, + 0xB0, 0x13, 0x06, 0x3D, 0x04, 0x45, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x28, 0x7E, 0x06, 0x00, + 0x99, 0x0E, 0xC0, 0x03, 0x1C, 0x60, 0x14, 0x00, 0x56, 0x76, 0xA9, 0x7E, 0x06, 0x00, 0x38, 0x70, + 0x40, 0x16, 0x99, 0x0E, 0xA3, 0x05, 0x18, 0x77, 0xD5, 0x00, 0x99, 0x7E, 0xA6, 0x05, 0x58, 0xC1, + 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x10, 0x00, + 0xD1, 0xC1, 0x0C, 0xE0, 0x00, 0x10, 0x18, 0x7E, 0xEE, 0x05, 0x06, 0xD2, 0x26, 0x72, 0xC4, 0x70, + 0x0C, 0x20, 0xAC, 0x15, 0x82, 0x0E, 0x0C, 0x30, 0xD4, 0x15, 0x0C, 0x40, 0x1C, 0x00, 0x0C, 0xF0, + 0xEC, 0x00, 0xF1, 0xF0, 0x18, 0x7E, 0xEE, 0x05, 0x26, 0xD7, 0x99, 0xDE, 0xC6, 0x05, 0xF2, 0x14, + 0x98, 0x3E, 0xC6, 0x05, 0x82, 0x0C, 0x0C, 0x30, 0xD4, 0x15, 0x0C, 0x40, 0x1C, 0x00, 0x0C, 0xF0, + 0xEC, 0x00, 0xF1, 0xF0, 0x04, 0x71, 0x99, 0x7E, 0xEE, 0x05, 0xF2, 0x06, 0x0C, 0x40, 0x1C, 0x00, + 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, 0x06, 0xC2, 0x06, 0xE3, 0x06, 0x23, 0x06, 0x3C, + 0xB1, 0xB1, 0x0B, 0xC8, 0x03, 0x00, 0x86, 0x22, 0x9A, 0x82, 0x00, 0x00, 0xD4, 0xC3, 0x92, 0x05, + 0x18, 0x7E, 0x0D, 0x00, 0xC4, 0x76, 0x92, 0x5B, 0x18, 0x6E, 0x0A, 0x00, 0x14, 0x51, 0x26, 0x56, + 0x04, 0x71, 0x53, 0x75, 0x0C, 0x50, 0x00, 0x10, 0x28, 0x45, 0xEC, 0x05, 0x43, 0x77, 0x66, 0x47, + 0xA9, 0x45, 0xEC, 0x05, 0x38, 0x45, 0xD4, 0x05, 0x1C, 0x30, 0x00, 0x04, 0x66, 0x74, 0x5C, 0x70, + 0xFF, 0x03, 0x56, 0x43, 0x66, 0x47, 0x06, 0x74, 0x77, 0x76, 0x24, 0x71, 0x54, 0x7F, 0x1C, 0x30, + 0x01, 0xF0, 0x57, 0x76, 0x56, 0x43, 0x66, 0x47, 0x57, 0x61, 0xB9, 0x45, 0xD4, 0x05, 0x26, 0x65, + 0x18, 0x7E, 0x0A, 0x00, 0x38, 0x56, 0xD4, 0x05, 0x08, 0x40, 0xFF, 0x0F, 0x2C, 0x40, 0xFF, 0xFF, + 0x57, 0x7E, 0x56, 0x54, 0x66, 0x57, 0xB9, 0x56, 0xD4, 0x05, 0x20, 0x4E, 0x08, 0x70, 0x00, 0xFF, + 0x5C, 0x40, 0xFF, 0x0F, 0x2C, 0x70, 0xFF, 0x0F, 0x57, 0x46, 0x56, 0x75, 0x66, 0x74, 0xB9, 0x76, + 0xD4, 0x05, 0x28, 0x5E, 0x02, 0x00, 0x1C, 0x40, 0x00, 0x10, 0x5C, 0x50, 0xFF, 0x0F, 0x56, 0x74, + 0x66, 0x75, 0xB9, 0x76, 0xD4, 0x05, 0x18, 0x5E, 0x0B, 0x00, 0x13, 0x75, 0xC4, 0x7F, 0xC2, 0x02, + 0x04, 0x5F, 0x38, 0x76, 0xD4, 0x05, 0x08, 0x40, 0xFF, 0xF0, 0x54, 0x5F, 0x2C, 0x40, 0xFF, 0xFF, + 0x57, 0x5C, 0x56, 0x74, 0x66, 0x75, 0xB9, 0x76, 0xD4, 0x05, 0xF2, 0x03, 0xC4, 0x7A, 0x82, 0x03, + 0x04, 0x20, 0xF2, 0x1D, 0x0C, 0xD0, 0x60, 0x13, 0x06, 0x7B, 0x0C, 0x70, 0x00, 0x10, 0x18, 0x77, + 0xC0, 0x03, 0xC6, 0xC7, 0x32, 0xF6, 0x18, 0x6E, 0x0A, 0x00, 0x18, 0x7D, 0x0A, 0x00, 0xC6, 0x67, + 0x92, 0x0A, 0x06, 0x2E, 0x06, 0x3D, 0x04, 0x44, 0x8B, 0xE0, 0x03, 0x00, 0x18, 0x7D, 0x0B, 0x00, + 0x99, 0x7E, 0x0B, 0x00, 0x24, 0xC1, 0x2C, 0xD0, 0x10, 0x00, 0xF2, 0xE7, 0x58, 0xC1, 0x04, 0x00, + 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x18, 0x72, 0x06, 0x00, 0xD4, 0x74, 0x82, 0x25, + 0x0C, 0x40, 0x00, 0x10, 0x38, 0x54, 0xD4, 0x05, 0x08, 0x60, 0x1F, 0xFF, 0x06, 0x75, 0xF7, 0x7A, + 0x24, 0x71, 0x54, 0x77, 0x2C, 0x60, 0xFF, 0xFF, 0xD7, 0x7A, 0x56, 0x65, 0x66, 0x67, 0xB9, 0x64, + 0xD4, 0x05, 0x18, 0x52, 0x05, 0x00, 0x04, 0x71, 0x34, 0x51, 0x53, 0x75, 0x06, 0x56, 0x77, 0x58, + 0x66, 0x75, 0x08, 0x50, 0xE0, 0xFF, 0x5C, 0x70, 0x1F, 0x00, 0x2C, 0x50, 0xFF, 0xFF, 0x57, 0x78, + 0x56, 0x56, 0x66, 0x57, 0xB9, 0x54, 0xD4, 0x05, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0xB1, 0xF1, + 0x0C, 0x60, 0x00, 0x10, 0x38, 0x76, 0xD4, 0x05, 0x77, 0x76, 0x54, 0x7F, 0xC4, 0x72, 0x02, 0x26, + 0x28, 0x46, 0xEC, 0x05, 0x04, 0x70, 0x0C, 0x30, 0xD8, 0x15, 0x06, 0x57, 0x04, 0xF1, 0x06, 0x24, + 0x63, 0x25, 0xD4, 0x21, 0x82, 0x0A, 0xC4, 0x71, 0xC2, 0x07, 0x06, 0x2F, 0x53, 0x25, 0x15, 0x22, + 0xB1, 0x03, 0x56, 0x42, 0xF2, 0x02, 0x24, 0x71, 0x24, 0x51, 0xC4, 0x55, 0x24, 0x34, 0x92, 0xF0, + 0x04, 0x5F, 0x56, 0x57, 0x38, 0x76, 0xD4, 0x05, 0xA9, 0x46, 0xEC, 0x05, 0x1C, 0x40, 0x01, 0xF0, + 0x57, 0x56, 0x56, 0x74, 0x66, 0x75, 0xB9, 0x76, 0xD4, 0x05, 0x38, 0x76, 0xD4, 0x05, 0x0C, 0x50, + 0x00, 0xF0, 0xD6, 0x57, 0x82, 0x06, 0x77, 0x76, 0x54, 0x7F, 0x24, 0x71, 0x99, 0x76, 0xEE, 0x05, + 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x20, 0x00, 0xD9, 0xC1, 0x10, 0x00, + 0xD1, 0x81, 0x0C, 0xE0, 0x00, 0x10, 0xE8, 0xCE, 0xCD, 0x05, 0x92, 0x2A, 0x98, 0x7E, 0xBF, 0x03, + 0x82, 0x27, 0x0C, 0x90, 0x60, 0x03, 0x0C, 0xD0, 0x10, 0x13, 0x26, 0x9E, 0x06, 0xBC, 0x04, 0x2C, + 0x26, 0x2D, 0xEB, 0x26, 0x01, 0x00, 0xC4, 0x20, 0x82, 0x13, 0xC4, 0xC1, 0xDA, 0x98, 0x00, 0x00, + 0x18, 0x7D, 0x0A, 0x00, 0x04, 0xA1, 0x26, 0xAB, 0x26, 0xBE, 0x99, 0x7B, 0xCD, 0x05, 0x04, 0x21, + 0x06, 0x3D, 0x8B, 0x44, 0x03, 0x00, 0xC4, 0x20, 0x92, 0x04, 0x24, 0xC1, 0xF2, 0x02, 0x06, 0xAB, + 0x2C, 0xD0, 0x10, 0x00, 0xC6, 0xD9, 0x8A, 0x83, 0x00, 0x00, 0x06, 0xBA, 0xF2, 0xE1, 0x98, 0x7E, + 0xC0, 0x03, 0x92, 0x04, 0x98, 0x7E, 0xBF, 0x03, 0x82, 0x7A, 0x04, 0xD0, 0x06, 0xCD, 0x06, 0xAE, + 0x14, 0x91, 0x2F, 0x7C, 0x0E, 0x00, 0x68, 0x77, 0xCD, 0x05, 0x34, 0x71, 0xC4, 0x70, 0x32, 0x04, + 0x04, 0xC0, 0x06, 0xAE, 0xF2, 0x47, 0x26, 0x7A, 0x68, 0xB7, 0xB5, 0x03, 0x34, 0xB1, 0xC4, 0xB0, + 0x32, 0x1D, 0x68, 0x37, 0xBA, 0x03, 0x04, 0x24, 0x24, 0x34, 0x57, 0x32, 0x26, 0x3A, 0x2C, 0x30, + 0x10, 0x03, 0x8B, 0x44, 0x03, 0x00, 0xC4, 0x20, 0x92, 0x02, 0x24, 0xD1, 0x06, 0x7C, 0xC4, 0x73, + 0x12, 0x09, 0x24, 0x71, 0x2F, 0x67, 0x0E, 0x00, 0x18, 0x56, 0xCD, 0x05, 0x99, 0x56, 0xCC, 0x05, + 0xF2, 0xF7, 0x99, 0x9E, 0xD1, 0x05, 0x34, 0xC1, 0xF2, 0x12, 0x57, 0xB2, 0x26, 0xBA, 0x2C, 0xB0, + 0x10, 0x03, 0x04, 0x2C, 0x26, 0x2B, 0xEB, 0x26, 0x01, 0x00, 0xC4, 0x20, 0x82, 0x08, 0x04, 0x22, + 0x06, 0x3B, 0x8B, 0x44, 0x03, 0x00, 0xC4, 0x20, 0x92, 0x02, 0x24, 0xD1, 0x24, 0xC1, 0xC4, 0xC4, + 0x02, 0xC1, 0xF2, 0xC7, 0x57, 0x72, 0x2F, 0x9A, 0x07, 0x00, 0x0C, 0xB0, 0x10, 0x03, 0x26, 0xB9, + 0x04, 0x2C, 0x26, 0x2B, 0xEB, 0x26, 0x01, 0x00, 0xC4, 0x20, 0x92, 0x0C, 0x24, 0xC1, 0xC4, 0xC5, + 0x82, 0x26, 0x2F, 0x7C, 0x0E, 0x00, 0x68, 0x77, 0xB5, 0x03, 0x34, 0x71, 0xC4, 0x70, 0x32, 0xEB, + 0xF2, 0xF6, 0xC4, 0xD1, 0xD2, 0x1C, 0x04, 0x70, 0x2F, 0x67, 0x0E, 0x00, 0x68, 0x56, 0xCD, 0x05, + 0x14, 0x41, 0x26, 0x45, 0xC6, 0x4C, 0x82, 0xEB, 0xC4, 0x50, 0x12, 0x0D, 0x18, 0x79, 0x1A, 0x03, + 0x04, 0x21, 0x99, 0x76, 0xCD, 0x05, 0x06, 0x3B, 0x8B, 0x44, 0x03, 0x00, 0xC4, 0x20, 0x92, 0xDF, + 0x24, 0xD1, 0xF2, 0xDD, 0x24, 0x71, 0xC4, 0x75, 0x92, 0xE8, 0xF2, 0xD9, 0x04, 0x70, 0x06, 0x4E, + 0x24, 0x71, 0x06, 0x67, 0x2F, 0x34, 0x07, 0x00, 0x2F, 0x56, 0x0E, 0x00, 0xE8, 0x25, 0xCD, 0x05, + 0x02, 0x07, 0x68, 0xF3, 0xCC, 0x05, 0xC6, 0xF2, 0x92, 0x03, 0x99, 0x05, 0xCD, 0x05, 0x24, 0x61, + 0xC4, 0x64, 0x02, 0xF3, 0xC4, 0x74, 0x92, 0xED, 0x6B, 0x50, 0x03, 0x00, 0x58, 0xC1, 0x10, 0x00, + 0x50, 0x81, 0x2C, 0x10, 0x20, 0x00, 0xE1, 0xF0, 0x18, 0x20, 0xEE, 0x15, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x2C, 0x00, 0x06, 0x21, 0x04, 0x30, 0x0C, 0x40, 0x14, 0x00, 0xD9, 0xC1, 0x1C, 0x00, + 0xC9, 0xA1, 0x14, 0x00, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x0C, 0xE0, 0x00, 0x10, 0x98, 0x7E, + 0xEE, 0x05, 0x92, 0x0A, 0x98, 0x3E, 0xC6, 0x05, 0x92, 0x07, 0x0C, 0x20, 0xC8, 0x15, 0x04, 0x45, + 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x98, 0x7E, 0xEE, 0x05, 0x82, 0x66, 0x98, 0x7E, 0xC6, 0x05, + 0x82, 0x63, 0x28, 0xDE, 0xEC, 0x05, 0x04, 0x71, 0x08, 0xF0, 0xFF, 0x0F, 0x06, 0x32, 0x0C, 0x30, + 0xD8, 0x15, 0x04, 0x40, 0x06, 0xB7, 0x2C, 0xF0, 0xFF, 0xFF, 0x14, 0x61, 0x26, 0x67, 0x06, 0x5D, + 0x63, 0x56, 0x06, 0x65, 0xD4, 0x61, 0x82, 0x26, 0x13, 0x57, 0x04, 0x60, 0x2F, 0xC6, 0x0E, 0x00, + 0x68, 0xCC, 0xC8, 0x05, 0x24, 0x61, 0xC6, 0xC7, 0x82, 0x0C, 0xC4, 0x65, 0x92, 0xF8, 0x04, 0x60, + 0x2F, 0xC6, 0x0E, 0x00, 0xE8, 0xAC, 0xC8, 0x05, 0x24, 0x61, 0x92, 0x05, 0x99, 0x7C, 0xC8, 0x05, + 0x13, 0x56, 0xF2, 0x03, 0xC4, 0x65, 0x92, 0xF5, 0x14, 0xC1, 0x26, 0xC5, 0x06, 0x6B, 0x53, 0x6C, + 0x66, 0x64, 0x23, 0x46, 0x30, 0x63, 0x57, 0xC1, 0x57, 0x5E, 0x56, 0x6F, 0x26, 0xC1, 0x66, 0x65, + 0xB1, 0x6C, 0x24, 0x71, 0xC4, 0x76, 0x24, 0x34, 0x92, 0xD1, 0x04, 0x70, 0x06, 0x6D, 0x63, 0x67, + 0xD4, 0x61, 0x24, 0x71, 0x92, 0x0D, 0x2F, 0x56, 0x0E, 0x00, 0x68, 0x35, 0xC8, 0x05, 0xC6, 0x37, + 0x92, 0x04, 0x99, 0x05, 0xC8, 0x05, 0xF2, 0x04, 0x24, 0x61, 0xC4, 0x65, 0x92, 0xF5, 0xC4, 0x75, + 0x92, 0xEE, 0x38, 0x7E, 0xD4, 0x05, 0x1C, 0x60, 0x00, 0x04, 0x5C, 0x40, 0xFF, 0x03, 0x56, 0x76, + 0x66, 0x74, 0xB9, 0x7E, 0xD4, 0x05, 0x0C, 0x20, 0xD8, 0x15, 0x06, 0x31, 0x0C, 0x40, 0x14, 0x00, + 0x0C, 0xF0, 0xEC, 0x00, 0xF1, 0xF0, 0x58, 0xC1, 0x1C, 0x00, 0x48, 0xA1, 0x14, 0x00, 0x2C, 0x10, + 0x2C, 0x00, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x0C, 0xE0, 0x00, 0x10, 0x98, 0x7E, + 0xA1, 0x05, 0x82, 0x74, 0x0C, 0xC0, 0x78, 0x15, 0x04, 0xD0, 0x18, 0x7E, 0xA1, 0x05, 0xC6, 0xD7, + 0x32, 0x07, 0x06, 0x2C, 0xCB, 0x4D, 0x03, 0x00, 0x24, 0xD1, 0x24, 0xC8, 0xF2, 0xF7, 0x38, 0x6E, + 0xD4, 0x05, 0x08, 0x70, 0xE0, 0x00, 0xD6, 0x76, 0x82, 0x57, 0x08, 0x70, 0x1F, 0xFF, 0x2C, 0x70, + 0xFF, 0xFF, 0x08, 0x50, 0xE0, 0xFF, 0x56, 0x67, 0x2C, 0x50, 0xFF, 0xFF, 0x56, 0x65, 0xB9, 0x6E, + 0xD4, 0x05, 0x28, 0xF0, 0x44, 0x16, 0x38, 0x40, 0x40, 0x16, 0x0C, 0x20, 0x80, 0x02, 0x26, 0xFF, + 0x26, 0xF2, 0x70, 0xDF, 0x28, 0xF4, 0x3C, 0x00, 0xC6, 0xDF, 0x22, 0x0B, 0x56, 0x76, 0x08, 0x60, + 0x20, 0x00, 0x66, 0x76, 0x56, 0x75, 0x08, 0x60, 0x01, 0x00, 0x66, 0x76, 0xB9, 0x7E, 0xD4, 0x05, + 0x0C, 0x30, 0x44, 0x16, 0x28, 0x73, 0x02, 0x00, 0x26, 0x77, 0x26, 0x27, 0x70, 0x62, 0x28, 0x74, + 0x3C, 0x00, 0xC6, 0x67, 0x22, 0x13, 0x38, 0x5E, 0xD4, 0x05, 0x08, 0x70, 0x1F, 0xFF, 0x06, 0x65, + 0xF7, 0x6A, 0x24, 0x61, 0x54, 0x67, 0x2C, 0x70, 0xFF, 0xFF, 0xD7, 0x6A, 0x56, 0x75, 0x66, 0x76, + 0x04, 0x62, 0x57, 0x68, 0x66, 0x76, 0xB9, 0x7E, 0xD4, 0x05, 0xB8, 0x7E, 0xD4, 0x05, 0x82, 0x12, + 0x38, 0x6E, 0xA8, 0x05, 0xC6, 0x67, 0x92, 0x0E, 0x08, 0x70, 0x1F, 0xFF, 0x2C, 0x70, 0xFF, 0xFF, + 0x56, 0x76, 0x08, 0x60, 0xE0, 0xFF, 0x2C, 0x60, 0xFF, 0xFF, 0x56, 0x76, 0xB9, 0x7E, 0xD4, 0x05, + 0xF2, 0x03, 0xB9, 0x7E, 0xA8, 0x05, 0x38, 0x7E, 0xD4, 0x05, 0x08, 0x60, 0xE0, 0x00, 0xD6, 0x76, + 0x82, 0x13, 0x98, 0x7E, 0xEE, 0x05, 0x92, 0x10, 0xF2, 0x09, 0x98, 0x7E, 0xEE, 0x05, 0x92, 0x0A, + 0x98, 0x7E, 0xA2, 0x05, 0x82, 0x07, 0xB9, 0x0E, 0xA8, 0x05, 0x04, 0x71, 0x99, 0x7E, 0xEE, 0x05, + 0xF2, 0x03, 0xB9, 0x0E, 0xA8, 0x05, 0x18, 0x7E, 0xA1, 0x05, 0x99, 0x7E, 0xA2, 0x05, 0x50, 0xC1, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x34, 0x14, 0x0C, 0x20, + 0xC6, 0x13, 0x04, 0x30, 0x04, 0x4D, 0xB1, 0xF1, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0x30, 0xF1, + 0x0C, 0x70, 0x00, 0x10, 0x14, 0x61, 0x99, 0x67, 0xC7, 0x03, 0x99, 0x67, 0xC6, 0x03, 0x99, 0x67, + 0xC9, 0x03, 0x99, 0x67, 0xC8, 0x03, 0x24, 0x14, 0xE1, 0xF0, 0x00, 0x00, 0xC4, 0x41, 0x34, 0x14, + 0xB1, 0xF1, 0x02, 0x09, 0xC4, 0x4F, 0x14, 0x72, 0x26, 0x74, 0x13, 0x77, 0x0C, 0xF0, 0x11, 0x00, + 0x12, 0x05, 0xF2, 0x02, 0x04, 0x70, 0x24, 0x42, 0x13, 0xF4, 0x08, 0x60, 0x00, 0x30, 0x2C, 0x60, + 0x00, 0xA0, 0xC6, 0x7F, 0xD2, 0x16, 0x2F, 0x57, 0x07, 0x00, 0x26, 0x57, 0x57, 0x51, 0x26, 0x57, + 0x26, 0x53, 0x57, 0x51, 0x26, 0x56, 0x30, 0x55, 0x5C, 0x50, 0xFF, 0x7F, 0xC6, 0x25, 0xB2, 0x06, + 0x04, 0x61, 0x99, 0x60, 0xCE, 0x13, 0x04, 0x21, 0xF2, 0x05, 0x24, 0x71, 0x23, 0x77, 0xF2, 0xEA, + 0x04, 0x20, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0xC4, 0x41, 0x34, 0x14, 0xB1, 0xF1, 0x02, 0x08, + 0xC4, 0x4A, 0x14, 0x72, 0x26, 0x74, 0x13, 0x77, 0x04, 0xFC, 0x12, 0x05, 0xF2, 0x02, 0x04, 0x70, + 0x24, 0x42, 0x13, 0xF4, 0x2F, 0x63, 0x03, 0x00, 0x26, 0x63, 0x57, 0x61, 0x26, 0x36, 0x08, 0x60, + 0x00, 0x30, 0x2C, 0x60, 0x00, 0xA0, 0xC6, 0x7F, 0xD2, 0x12, 0x2F, 0x57, 0x03, 0x00, 0x57, 0x51, + 0x26, 0x56, 0x30, 0x55, 0x5C, 0x50, 0xFF, 0x7F, 0xC6, 0x25, 0xB2, 0x06, 0x04, 0x61, 0x99, 0x60, + 0xCE, 0x13, 0x04, 0x21, 0xF2, 0x05, 0x24, 0x71, 0x23, 0x77, 0xF2, 0xEE, 0x04, 0x20, 0x30, 0xF1, + 0x24, 0x14, 0xE1, 0xF0, 0x3C, 0x10, 0x28, 0x00, 0xD9, 0xC1, 0x18, 0x00, 0xD9, 0x81, 0x08, 0x00, + 0x6B, 0xBD, 0x00, 0x00, 0x0C, 0xE0, 0x00, 0x10, 0x28, 0x7E, 0x1E, 0x00, 0xB1, 0x21, 0xC4, 0x7F, + 0xC2, 0x12, 0x98, 0x70, 0x63, 0x16, 0x82, 0x0F, 0x38, 0x7E, 0xD4, 0x05, 0x5C, 0x70, 0x00, 0xF0, + 0xCC, 0x70, 0x00, 0x10, 0x92, 0x08, 0x04, 0x71, 0x99, 0x7E, 0xD0, 0x03, 0x99, 0x0E, 0xCD, 0x03, + 0x99, 0x7E, 0xCE, 0x03, 0x18, 0x7E, 0xCB, 0x03, 0xC4, 0x72, 0xC2, 0x08, 0x04, 0x71, 0x99, 0x0E, + 0xCD, 0x03, 0x99, 0x7E, 0xCE, 0x03, 0x99, 0x0E, 0xD0, 0x03, 0x98, 0x7E, 0xD0, 0x03, 0x82, 0x12, + 0x98, 0x7E, 0xCF, 0x03, 0x82, 0x0F, 0x98, 0x7E, 0xCE, 0x03, 0x82, 0x0C, 0x04, 0x71, 0x99, 0x0E, + 0xD0, 0x03, 0x99, 0x7E, 0xCD, 0x03, 0x99, 0x0E, 0xCE, 0x03, 0x6B, 0x42, 0x01, 0x00, 0x4B, 0x39, + 0x03, 0x00, 0x98, 0x7E, 0xCE, 0x03, 0x9A, 0xC9, 0x00, 0x00, 0x98, 0x7E, 0xCD, 0x03, 0x9A, 0xC5, + 0x00, 0x00, 0x18, 0x7E, 0xCA, 0x03, 0xC4, 0x71, 0x9A, 0xC0, 0x00, 0x00, 0x18, 0x7E, 0x05, 0x00, + 0xC4, 0x71, 0x9A, 0xBB, 0x00, 0x00, 0x18, 0x6E, 0x19, 0x03, 0x18, 0x5E, 0x18, 0x03, 0xC4, 0x60, + 0x82, 0x08, 0xCC, 0x60, 0x11, 0x00, 0x14, 0x71, 0x26, 0x76, 0x13, 0xB7, 0x82, 0x07, 0xF2, 0x02, + 0x06, 0xB6, 0x04, 0xA1, 0x26, 0xA6, 0x13, 0xAA, 0xF2, 0x04, 0x0C, 0xB0, 0x10, 0x00, 0x06, 0xA6, + 0xC4, 0x50, 0x82, 0x07, 0xC4, 0x5A, 0x14, 0xC1, 0x26, 0xC5, 0x13, 0xCC, 0x82, 0x07, 0xF2, 0x02, + 0x06, 0xC5, 0x04, 0x91, 0x26, 0x95, 0x13, 0x99, 0xF2, 0x03, 0x04, 0xC9, 0x06, 0x95, 0x2F, 0x46, + 0x06, 0x00, 0x26, 0x46, 0x57, 0x41, 0x26, 0x64, 0x26, 0x56, 0x08, 0x80, 0x00, 0x30, 0x57, 0x51, + 0x2C, 0x80, 0x00, 0xA0, 0x26, 0x58, 0x30, 0xD5, 0x04, 0x50, 0x5C, 0xD0, 0xFF, 0x7F, 0xC6, 0xBA, + 0xD2, 0x67, 0x2F, 0x6B, 0x0B, 0x00, 0x30, 0x31, 0x28, 0x2E, 0xE4, 0x01, 0x26, 0x6B, 0x57, 0x61, + 0x2F, 0xFB, 0x06, 0x00, 0x23, 0x33, 0x06, 0x6C, 0xC6, 0x69, 0xD2, 0x56, 0x2F, 0x46, 0x0F, 0x00, + 0x57, 0x41, 0x26, 0x48, 0x30, 0x44, 0x5C, 0x40, 0xFF, 0x7F, 0xC6, 0x42, 0xA2, 0x4A, 0xC6, 0x43, + 0x92, 0x48, 0x18, 0x4E, 0x19, 0x03, 0xC6, 0x4B, 0x92, 0x05, 0x18, 0x5E, 0x18, 0x03, 0xC6, 0x56, + 0x82, 0x3B, 0x18, 0x6E, 0xCC, 0x03, 0x04, 0x51, 0xD6, 0x56, 0x82, 0x13, 0x18, 0x3E, 0x18, 0x03, + 0x24, 0x32, 0x13, 0x33, 0xC4, 0x3A, 0xC2, 0x07, 0x18, 0x6E, 0xCC, 0x03, 0x04, 0x54, 0xD6, 0x56, + 0x92, 0x10, 0xF2, 0x1C, 0x06, 0x2D, 0xEB, 0x74, 0x03, 0x00, 0xC4, 0x20, 0x82, 0xF6, 0xF2, 0x27, + 0xD4, 0x62, 0x82, 0xF3, 0x18, 0x3E, 0x18, 0x03, 0x06, 0x2D, 0x34, 0x32, 0x13, 0x33, 0xF2, 0xF4, + 0x18, 0x3E, 0x19, 0x03, 0x24, 0x32, 0x13, 0x33, 0xCC, 0x30, 0x11, 0x00, 0xC2, 0x05, 0x98, 0x6E, + 0xCE, 0x03, 0x82, 0x12, 0xF2, 0x14, 0x06, 0x2D, 0xF2, 0x08, 0xD4, 0x68, 0x82, 0xF9, 0x18, 0x3E, + 0x19, 0x03, 0x06, 0x2D, 0x34, 0x32, 0x13, 0x33, 0x18, 0x4E, 0x18, 0x03, 0xCB, 0x77, 0x03, 0x00, + 0xC4, 0x20, 0x92, 0x05, 0xF2, 0xED, 0x04, 0x61, 0x99, 0x6E, 0xCD, 0x03, 0x04, 0x51, 0xF2, 0x04, + 0x24, 0x61, 0x13, 0x66, 0xF2, 0xAA, 0x04, 0x71, 0x26, 0x7B, 0x13, 0xB7, 0xF2, 0x99, 0x98, 0x7E, + 0xCD, 0x03, 0x82, 0x0D, 0x18, 0x7E, 0xD2, 0x03, 0xC4, 0x71, 0x92, 0x09, 0xB9, 0x51, 0x04, 0x00, + 0x6B, 0x42, 0x01, 0x00, 0x4B, 0x39, 0x03, 0x00, 0x38, 0x51, 0x04, 0x00, 0x98, 0x7E, 0xCD, 0x03, + 0x92, 0x0C, 0xC4, 0x50, 0x92, 0x0A, 0x30, 0x61, 0x28, 0x7E, 0xE4, 0x01, 0x23, 0xB6, 0xC6, 0x7B, + 0xD2, 0x04, 0x04, 0x71, 0x99, 0x7E, 0xCE, 0x03, 0x38, 0x6E, 0xD4, 0x05, 0x06, 0x76, 0x5C, 0x60, + 0x00, 0xF0, 0x77, 0x76, 0xCC, 0x60, 0x00, 0x10, 0x54, 0x7F, 0x99, 0x7E, 0xD2, 0x03, 0x92, 0x11, + 0x18, 0x6E, 0xC9, 0x03, 0x28, 0x7E, 0x18, 0x03, 0xCC, 0x60, 0xFF, 0x00, 0xA9, 0x7E, 0xC6, 0x03, + 0x92, 0x08, 0x18, 0x6E, 0xC8, 0x03, 0xCC, 0x60, 0xFF, 0x00, 0x92, 0x03, 0xA9, 0x7E, 0xC8, 0x03, + 0x58, 0xC1, 0x18, 0x00, 0x58, 0x81, 0x08, 0x00, 0x2C, 0x10, 0x28, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x0C, 0x60, 0x00, 0x10, 0x57, 0x22, 0xA8, 0xD6, 0xEC, 0x05, + 0x2C, 0x20, 0xDC, 0x04, 0x2F, 0xE6, 0x02, 0x00, 0x14, 0x71, 0xA9, 0x7E, 0x04, 0x00, 0xA9, 0x7E, + 0x06, 0x00, 0xA9, 0x7E, 0x08, 0x00, 0xA9, 0x7E, 0x0A, 0x00, 0xA1, 0x0E, 0xA9, 0x0E, 0x02, 0x00, + 0x92, 0x0F, 0x0C, 0x20, 0x32, 0x15, 0x06, 0x3D, 0x04, 0x48, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, + 0x0C, 0x20, 0x3A, 0x15, 0x06, 0x3D, 0x04, 0x4A, 0x0C, 0xF0, 0x2C, 0x01, 0xF1, 0xF0, 0xA9, 0x0E, + 0x0C, 0x00, 0xA9, 0x0E, 0x0E, 0x00, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x34, 0x18, 0xC1, 0xE1, 0x04, 0xE0, 0x06, 0x2E, 0x8B, 0x8D, 0x03, 0x00, 0x24, 0xE1, 0xC4, 0xE5, + 0x92, 0xFB, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x3C, 0x10, 0x18, 0x00, 0xB9, 0x31, 0x04, 0x00, + 0xD9, 0xC1, 0x08, 0x00, 0x18, 0xD1, 0x04, 0x00, 0xB1, 0x21, 0x23, 0xC2, 0xC6, 0x4D, 0x28, 0x31, + 0x02, 0x00, 0x18, 0xE1, 0x05, 0x00, 0x32, 0x03, 0x43, 0x2E, 0xF2, 0x11, 0xC6, 0x4C, 0x22, 0x03, + 0x43, 0x23, 0xF2, 0x0D, 0x3F, 0x2D, 0x04, 0x00, 0x36, 0x3E, 0xAB, 0x9A, 0x00, 0x00, 0x43, 0x22, + 0x3F, 0x3D, 0x0C, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0x26, 0x2E, 0x43, 0x22, 0x58, 0xC1, 0x08, 0x00, + 0x2C, 0x10, 0x18, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x70, 0x40, 0x16, 0x3C, 0x10, 0x78, 0x00, + 0xD9, 0xC1, 0x68, 0x00, 0xD9, 0x81, 0x58, 0x00, 0x30, 0x77, 0xDC, 0x70, 0x00, 0x08, 0x8A, 0xC1, + 0x02, 0x00, 0xC4, 0x30, 0x92, 0x0C, 0xC4, 0x20, 0x9A, 0xBC, 0x02, 0x00, 0xA8, 0x70, 0xEC, 0x15, + 0x9A, 0xB8, 0x02, 0x00, 0x8B, 0x90, 0x03, 0x00, 0xFA, 0xB4, 0x02, 0x00, 0x98, 0x70, 0x63, 0x16, + 0x0C, 0xE0, 0x00, 0x10, 0x82, 0x20, 0x28, 0x7E, 0x1E, 0x00, 0xC4, 0x79, 0xC2, 0x07, 0x04, 0x7A, + 0x99, 0x7E, 0x30, 0x05, 0x0C, 0x70, 0xFA, 0x00, 0xF2, 0x25, 0xC4, 0x75, 0x04, 0x7A, 0x99, 0x7E, + 0x30, 0x05, 0xC2, 0x0A, 0x0C, 0x70, 0xDC, 0x00, 0xA9, 0x7E, 0x2C, 0x05, 0x99, 0x0E, 0x31, 0x05, + 0x0C, 0x70, 0x78, 0x00, 0xF2, 0x2E, 0x0C, 0x70, 0xB4, 0x00, 0xA9, 0x7E, 0x2C, 0x05, 0x99, 0x0E, + 0x31, 0x05, 0xF2, 0x25, 0x98, 0x7E, 0xEE, 0x02, 0x92, 0x07, 0x28, 0x7E, 0x06, 0x00, 0x0C, 0x60, + 0x10, 0x00, 0xD6, 0x67, 0x82, 0x0E, 0x0C, 0x70, 0x14, 0x00, 0x99, 0x7E, 0x30, 0x05, 0x0C, 0x70, + 0x64, 0x00, 0xA9, 0x7E, 0x2C, 0x05, 0x99, 0x0E, 0x31, 0x05, 0x0C, 0x70, 0x50, 0x00, 0xF2, 0x11, + 0xD4, 0x78, 0x0C, 0x70, 0x14, 0x00, 0x99, 0x7E, 0x30, 0x05, 0x0C, 0x70, 0x64, 0x00, 0xA9, 0x7E, + 0x2C, 0x05, 0x0C, 0x70, 0x1E, 0x00, 0x99, 0x7E, 0x31, 0x05, 0x82, 0x2F, 0x0C, 0x70, 0x96, 0x00, + 0xA9, 0x7E, 0x2E, 0x05, 0x0C, 0x70, 0xE0, 0x14, 0xB9, 0x71, 0x1C, 0x00, 0x0C, 0x70, 0xE2, 0x14, + 0xB9, 0x71, 0x18, 0x00, 0x0C, 0x70, 0x3A, 0x15, 0xB9, 0x71, 0x34, 0x00, 0x0C, 0x70, 0x2C, 0x15, + 0xB9, 0x71, 0x0C, 0x00, 0x0C, 0x70, 0xE4, 0x14, 0xB9, 0x71, 0x30, 0x00, 0x08, 0x60, 0x00, 0xFF, + 0x04, 0x50, 0x0C, 0x70, 0xE6, 0x14, 0x2C, 0x60, 0xFF, 0x0F, 0x06, 0xDE, 0xB9, 0x71, 0x2C, 0x00, + 0xB9, 0x51, 0x04, 0x00, 0xB9, 0x51, 0x14, 0x00, 0xB9, 0x51, 0x40, 0x00, 0xB9, 0x51, 0x3C, 0x00, + 0x06, 0xB5, 0xB9, 0x61, 0x38, 0x00, 0xF2, 0x04, 0x0C, 0x70, 0xC8, 0x00, 0xF2, 0xD2, 0x28, 0x7E, + 0xEC, 0x05, 0x63, 0x7B, 0xD4, 0x71, 0x92, 0x06, 0x06, 0x2B, 0x8B, 0x8D, 0x03, 0x00, 0xFA, 0xF9, + 0x01, 0x00, 0x04, 0x71, 0x26, 0x7B, 0x57, 0x71, 0x26, 0x7E, 0x38, 0x67, 0xD4, 0x05, 0x06, 0x76, + 0x77, 0x76, 0x5C, 0x70, 0xFF, 0x0F, 0x43, 0x57, 0x5C, 0x60, 0xFF, 0x0F, 0xB9, 0x51, 0x24, 0x00, + 0x43, 0x56, 0xB9, 0x51, 0x28, 0x00, 0xF8, 0x5D, 0xE0, 0x04, 0x32, 0x20, 0x38, 0x51, 0x24, 0x00, + 0x38, 0x41, 0x1C, 0x00, 0xA1, 0x54, 0x38, 0x51, 0x28, 0x00, 0x38, 0x41, 0x18, 0x00, 0xA1, 0x54, + 0x38, 0x51, 0x24, 0x00, 0x38, 0x41, 0x30, 0x00, 0xA1, 0x54, 0x38, 0x51, 0x28, 0x00, 0x38, 0x41, + 0x2C, 0x00, 0xA1, 0x54, 0x38, 0x41, 0x0C, 0x00, 0xA9, 0x0D, 0xDC, 0x04, 0xA9, 0x0D, 0xDE, 0x04, + 0x04, 0x51, 0x99, 0x54, 0x0E, 0x00, 0x99, 0x54, 0x0F, 0x00, 0x78, 0x5D, 0xE4, 0x04, 0x36, 0x75, + 0xB9, 0x71, 0x08, 0x00, 0x78, 0x7D, 0xE6, 0x04, 0xB8, 0xA1, 0x08, 0x00, 0x36, 0x67, 0xB9, 0x61, + 0x10, 0x00, 0x32, 0x02, 0x16, 0xAA, 0x38, 0x51, 0x10, 0x00, 0x86, 0x65, 0xB9, 0x51, 0x20, 0x00, + 0x32, 0x04, 0x16, 0x76, 0xB9, 0x71, 0x20, 0x00, 0x38, 0x51, 0x20, 0x00, 0x43, 0x2A, 0x43, 0x35, + 0x0C, 0xF0, 0x80, 0x00, 0xF1, 0xF0, 0x98, 0x70, 0x63, 0x16, 0x06, 0x82, 0xB9, 0x71, 0x44, 0x00, + 0x82, 0x26, 0x38, 0x2E, 0x2C, 0x05, 0x38, 0x3E, 0x30, 0x05, 0x06, 0x48, 0x4B, 0x91, 0x03, 0x00, + 0x28, 0x7E, 0x1E, 0x00, 0x06, 0x92, 0xC4, 0x77, 0xC2, 0x0C, 0x06, 0x78, 0xF7, 0x7F, 0x2F, 0x48, + 0x07, 0x00, 0xE7, 0x40, 0x38, 0x2E, 0x2C, 0x05, 0x38, 0x3E, 0x30, 0x05, 0x43, 0x44, 0xF2, 0x0B, + 0x04, 0x33, 0x2F, 0x28, 0x08, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0x43, 0x42, 0x38, 0x3E, 0x30, 0x05, + 0x38, 0x2E, 0x2C, 0x05, 0x4B, 0x91, 0x03, 0x00, 0x06, 0xC2, 0xF2, 0x36, 0x98, 0x7E, 0xEE, 0x02, + 0x92, 0x06, 0x28, 0x7E, 0x06, 0x00, 0xDC, 0x70, 0x10, 0x00, 0x82, 0x0C, 0x86, 0x88, 0x32, 0x02, + 0x24, 0x83, 0x06, 0x48, 0x67, 0x41, 0x38, 0x2E, 0x2C, 0x05, 0x38, 0x3E, 0x30, 0x05, 0x43, 0x44, + 0xF2, 0x1F, 0x28, 0x7E, 0x1E, 0x00, 0xC4, 0x77, 0xC2, 0x16, 0x04, 0x33, 0x26, 0x22, 0x4B, 0xA1, + 0x00, 0x00, 0x43, 0x42, 0x38, 0x3E, 0x30, 0x05, 0x38, 0x2E, 0x2C, 0x05, 0x4B, 0x91, 0x03, 0x00, + 0x06, 0xC2, 0x38, 0x3E, 0x30, 0x05, 0x38, 0x2E, 0x2C, 0x05, 0x06, 0x48, 0x4B, 0x91, 0x03, 0x00, + 0x06, 0x92, 0xF2, 0x0A, 0x38, 0x2E, 0x2C, 0x05, 0x38, 0x3E, 0x30, 0x05, 0x06, 0x48, 0x4B, 0x91, + 0x03, 0x00, 0x06, 0xC2, 0x06, 0x92, 0x18, 0x7E, 0xC3, 0x03, 0xC4, 0x72, 0xD2, 0x0F, 0x38, 0x60, + 0x40, 0x16, 0x78, 0x56, 0xBC, 0x00, 0xA9, 0x5E, 0x34, 0x05, 0xA9, 0x5E, 0x32, 0x05, 0x78, 0x66, + 0xBE, 0x00, 0xA9, 0x6E, 0x38, 0x05, 0xA9, 0x6E, 0x36, 0x05, 0x38, 0x60, 0x40, 0x16, 0x78, 0x2E, + 0x32, 0x05, 0x18, 0x56, 0xB9, 0x00, 0x18, 0x76, 0xBB, 0x00, 0x18, 0x66, 0xBA, 0x00, 0xB9, 0x51, + 0x4C, 0x00, 0x06, 0x35, 0x2F, 0x86, 0x05, 0x00, 0x26, 0x87, 0xB9, 0x71, 0x54, 0x00, 0xB9, 0x61, + 0x50, 0x00, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x61, 0x50, 0x00, 0x06, 0x42, 0x78, 0x2E, 0x36, 0x05, + 0xB9, 0x41, 0x48, 0x00, 0x06, 0x36, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x71, 0x54, 0x00, 0x38, 0x41, + 0x48, 0x00, 0x06, 0x39, 0x26, 0x42, 0x06, 0x27, 0xB9, 0x41, 0x48, 0x00, 0xAB, 0x9A, 0x00, 0x00, + 0x38, 0x41, 0x48, 0x00, 0x43, 0x22, 0x26, 0x24, 0x06, 0x38, 0x4B, 0xA1, 0x00, 0x00, 0x38, 0x51, + 0x4C, 0x00, 0x43, 0x92, 0x78, 0x2E, 0x34, 0x05, 0x06, 0x35, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x61, + 0x50, 0x00, 0x06, 0x52, 0x78, 0x2E, 0x38, 0x05, 0xB9, 0x51, 0x4C, 0x00, 0x06, 0x36, 0xAB, 0x9A, + 0x00, 0x00, 0x38, 0x71, 0x54, 0x00, 0x38, 0x51, 0x4C, 0x00, 0x06, 0x3C, 0x26, 0x52, 0x06, 0x27, + 0xB9, 0x51, 0x4C, 0x00, 0xAB, 0x9A, 0x00, 0x00, 0x38, 0x51, 0x4C, 0x00, 0x43, 0x22, 0x26, 0x25, + 0x06, 0x38, 0x4B, 0xA1, 0x00, 0x00, 0x43, 0x72, 0x06, 0x39, 0x06, 0x2A, 0xB9, 0x71, 0x54, 0x00, + 0xAB, 0x9A, 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0x38, 0x71, 0x54, 0x00, + 0x06, 0x62, 0x06, 0x82, 0x38, 0x21, 0x20, 0x00, 0xB9, 0x61, 0x50, 0x00, 0x06, 0x37, 0xAB, 0x9A, + 0x00, 0x00, 0x0C, 0x30, 0x64, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0xB8, 0x51, 0x44, 0x00, 0x38, 0x61, + 0x50, 0x00, 0x38, 0x71, 0x54, 0x00, 0x06, 0xC2, 0x92, 0x10, 0xC4, 0x60, 0x92, 0x05, 0xC4, 0xA4, + 0x04, 0x81, 0x12, 0x02, 0x06, 0x85, 0xC4, 0xC0, 0x92, 0x08, 0x38, 0x51, 0x20, 0x00, 0x04, 0x61, + 0xC4, 0x54, 0x12, 0x02, 0x06, 0x6C, 0x06, 0xC6, 0x38, 0x51, 0x04, 0x00, 0x06, 0x69, 0xC6, 0x95, + 0x32, 0x02, 0x06, 0x65, 0x38, 0x51, 0x14, 0x00, 0x43, 0x66, 0xC6, 0x75, 0xB9, 0x61, 0x04, 0x00, + 0x06, 0x67, 0x32, 0x02, 0x06, 0x65, 0x43, 0x66, 0xB9, 0x61, 0x14, 0x00, 0x38, 0x41, 0x0C, 0x00, + 0x38, 0x61, 0x08, 0x00, 0x38, 0x71, 0x10, 0x00, 0x68, 0x54, 0x0E, 0x00, 0x15, 0xA6, 0xF7, 0xAF, + 0x33, 0x6A, 0xC6, 0x56, 0x15, 0x97, 0xF7, 0x9F, 0x33, 0x79, 0x92, 0x04, 0x04, 0x51, 0xB9, 0x51, + 0x3C, 0x00, 0x38, 0x41, 0x0C, 0x00, 0x68, 0x54, 0x0F, 0x00, 0xC6, 0x57, 0x92, 0x04, 0x04, 0x51, + 0xB9, 0x51, 0x40, 0x00, 0x38, 0x51, 0x34, 0x00, 0x04, 0x44, 0x91, 0x65, 0x2F, 0x6B, 0x0B, 0x00, + 0x26, 0x6E, 0x99, 0x76, 0x3B, 0x05, 0x0C, 0x60, 0xE4, 0x04, 0x26, 0x6D, 0x06, 0x36, 0x06, 0x21, + 0xB9, 0x61, 0x08, 0x00, 0x8B, 0xE0, 0x03, 0x00, 0x6B, 0xBD, 0x00, 0x00, 0x18, 0x7E, 0xC4, 0x03, + 0xC4, 0x71, 0x20, 0x71, 0xD2, 0x19, 0x28, 0x6E, 0xE4, 0x01, 0x23, 0x22, 0xC6, 0x62, 0xC2, 0x14, + 0x98, 0x6E, 0xCD, 0x03, 0x92, 0x11, 0x78, 0x6D, 0xDC, 0x04, 0xC6, 0x68, 0x02, 0x05, 0xB8, 0x51, + 0x3C, 0x00, 0x82, 0x02, 0x06, 0x86, 0x78, 0x6D, 0xDE, 0x04, 0xC6, 0x6C, 0x02, 0x05, 0xB8, 0x51, + 0x40, 0x00, 0x82, 0x02, 0x06, 0xC6, 0xC4, 0xA0, 0x92, 0x02, 0x16, 0x88, 0x23, 0x88, 0xC4, 0x90, + 0x26, 0x87, 0xA1, 0x81, 0x28, 0x71, 0x02, 0x00, 0x92, 0x02, 0x16, 0xCC, 0x23, 0xCC, 0x26, 0xC7, + 0x06, 0x21, 0xA9, 0xC1, 0x02, 0x00, 0xEB, 0x22, 0x03, 0x00, 0x78, 0x7D, 0xE4, 0x04, 0x70, 0xA1, + 0x3F, 0x77, 0x0A, 0x00, 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, 0xA9, 0x7D, 0xDC, 0x04, 0x78, 0xC1, + 0x02, 0x00, 0x78, 0x7D, 0xE6, 0x04, 0x3F, 0x77, 0x0C, 0x00, 0xC4, 0x70, 0x32, 0x02, 0x16, 0x77, + 0xA9, 0x7D, 0xDE, 0x04, 0x38, 0x61, 0x24, 0x00, 0x38, 0x71, 0x1C, 0x00, 0x38, 0x51, 0x28, 0x00, + 0x38, 0x21, 0x08, 0x00, 0xA1, 0x67, 0x38, 0x61, 0x18, 0x00, 0x04, 0x44, 0xA1, 0x56, 0x06, 0x31, + 0x8B, 0xE0, 0x03, 0x00, 0x04, 0x71, 0x26, 0x7B, 0x57, 0x71, 0x2F, 0x67, 0x0E, 0x00, 0x38, 0x76, + 0xD4, 0x05, 0x38, 0x51, 0x38, 0x00, 0x5C, 0xA0, 0xFF, 0x0F, 0x57, 0xA6, 0x56, 0x75, 0x66, 0x7A, + 0x1C, 0x40, 0x00, 0x10, 0x5C, 0xC0, 0xFF, 0x0F, 0x56, 0x74, 0x66, 0x7C, 0xB9, 0x76, 0xD4, 0x05, + 0x38, 0x51, 0x1C, 0x00, 0x38, 0x61, 0x18, 0x00, 0x38, 0x71, 0x34, 0x00, 0x2C, 0x50, 0x10, 0x00, + 0x2C, 0x60, 0x10, 0x00, 0x24, 0x72, 0xB9, 0x51, 0x1C, 0x00, 0xB9, 0x61, 0x18, 0x00, 0x38, 0x51, + 0x0C, 0x00, 0x38, 0x61, 0x30, 0x00, 0xB9, 0x71, 0x34, 0x00, 0x38, 0x71, 0x2C, 0x00, 0x24, 0xB1, + 0xC4, 0xB5, 0x24, 0x52, 0x2C, 0x60, 0x10, 0x00, 0x2C, 0x70, 0x10, 0x00, 0xB9, 0x51, 0x0C, 0x00, + 0xB9, 0x61, 0x30, 0x00, 0xB9, 0x71, 0x2C, 0x00, 0x2C, 0xD0, 0x10, 0x00, 0x9A, 0xD9, 0xFD, 0xFF, + 0x0C, 0x20, 0x36, 0x05, 0x26, 0x2E, 0x14, 0x34, 0x04, 0x44, 0x26, 0x32, 0x8B, 0xE0, 0x03, 0x00, + 0x38, 0x41, 0x04, 0x00, 0x38, 0x51, 0x14, 0x00, 0xA9, 0x4E, 0x32, 0x05, 0xA9, 0x5E, 0x34, 0x05, + 0x58, 0xC1, 0x68, 0x00, 0x58, 0x81, 0x58, 0x00, 0x2C, 0x10, 0x78, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x0C, 0x70, 0x44, 0x15, 0x04, 0x60, 0x78, 0x57, 0x04, 0x00, 0x24, 0x61, 0xC6, 0x25, 0x22, 0x0E, + 0x78, 0x57, 0x06, 0x00, 0xC6, 0x25, 0x12, 0x0A, 0x70, 0x57, 0xC6, 0x35, 0x22, 0x07, 0x78, 0x57, + 0x02, 0x00, 0xC6, 0x35, 0x12, 0x03, 0x13, 0x26, 0xF2, 0x06, 0x13, 0x66, 0xC4, 0x62, 0x24, 0x78, + 0x92, 0xEB, 0x04, 0x20, 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x14, 0x00, 0xD9, 0xC1, 0x04, 0x00, + 0xB1, 0xB1, 0x0C, 0xE0, 0x00, 0x10, 0x28, 0x7E, 0x06, 0x00, 0x18, 0xCE, 0xA1, 0x05, 0xD4, 0x71, + 0x06, 0xD2, 0x06, 0xB3, 0x92, 0x3F, 0x38, 0x60, 0x40, 0x16, 0x18, 0x7E, 0xA6, 0x05, 0x18, 0x66, + 0xD5, 0x00, 0xC6, 0x67, 0xC2, 0x05, 0x24, 0x71, 0x99, 0x7E, 0xA6, 0x05, 0xF2, 0x33, 0x18, 0x72, + 0x0A, 0x00, 0xD7, 0xC1, 0x2C, 0xC0, 0x34, 0x00, 0x26, 0xCE, 0x0C, 0x20, 0x44, 0x05, 0x99, 0x7C, + 0x48, 0x05, 0x26, 0x2C, 0x06, 0x3D, 0x04, 0x44, 0x8B, 0xE0, 0x03, 0x00, 0x99, 0xBC, 0x49, 0x05, + 0x18, 0x7D, 0x0D, 0x00, 0x04, 0x62, 0x99, 0x7C, 0x4A, 0x05, 0x18, 0x7E, 0xA1, 0x05, 0x24, 0x71, + 0x99, 0x7E, 0xA1, 0x05, 0x18, 0x7D, 0x0D, 0x00, 0xD6, 0x67, 0x82, 0x14, 0x04, 0x64, 0xD6, 0x67, + 0x82, 0x09, 0x04, 0x71, 0x99, 0x7E, 0xA3, 0x05, 0x99, 0x0E, 0xA4, 0x05, 0x99, 0x0E, 0xA5, 0x05, + 0xF2, 0x09, 0xDC, 0x70, 0x18, 0x00, 0x82, 0x06, 0x04, 0x71, 0x99, 0x0E, 0xA3, 0x05, 0x99, 0x7E, + 0xA4, 0x05, 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xE2, 0x06, 0x63, 0x70, 0x22, 0x78, 0x3E, 0x02, 0x00, + 0x0C, 0xD0, 0x00, 0x10, 0x0C, 0x40, 0x54, 0x05, 0x0C, 0x50, 0x44, 0x15, 0x26, 0x4D, 0x04, 0x70, + 0x78, 0xF5, 0x04, 0x00, 0xC6, 0xF2, 0x12, 0x0D, 0x78, 0xF5, 0x06, 0x00, 0xC6, 0x2F, 0x12, 0x09, + 0x70, 0xF5, 0xC6, 0xF3, 0x12, 0x06, 0x78, 0xF5, 0x02, 0x00, 0xC6, 0x3F, 0x12, 0x02, 0x04, 0x71, + 0x24, 0x58, 0xC6, 0x54, 0x92, 0xEE, 0xC4, 0x70, 0x82, 0x77, 0xC4, 0x61, 0x82, 0x09, 0xC4, 0x61, + 0xA2, 0x6F, 0xC4, 0x62, 0x82, 0x1E, 0xC4, 0x64, 0x82, 0x44, 0xFA, 0xAF, 0x00, 0x00, 0x18, 0x6D, + 0xA3, 0x05, 0x14, 0x71, 0xC4, 0x60, 0x9A, 0xAA, 0x00, 0x00, 0x0B, 0xC1, 0x03, 0x00, 0x86, 0xC2, + 0x82, 0x09, 0x04, 0x76, 0x99, 0x7E, 0x0D, 0x00, 0x06, 0x2E, 0x06, 0x3C, 0xCB, 0xC2, 0x03, 0x00, + 0xF2, 0x04, 0x04, 0x72, 0x99, 0x7E, 0x0D, 0x00, 0x99, 0xCE, 0x0E, 0x00, 0xFA, 0x96, 0x00, 0x00, + 0x18, 0x7E, 0x0D, 0x00, 0x04, 0x61, 0xD6, 0x67, 0x82, 0x0B, 0xD4, 0x76, 0x82, 0x06, 0x04, 0x7A, + 0x99, 0x7E, 0x0D, 0x00, 0xFA, 0x84, 0x00, 0x00, 0x0C, 0x70, 0x12, 0x00, 0xF2, 0x42, 0x04, 0x62, + 0xD6, 0x67, 0x14, 0x71, 0x8A, 0x83, 0x00, 0x00, 0x0B, 0xC1, 0x03, 0x00, 0x86, 0x32, 0x82, 0x0A, + 0x98, 0x7E, 0x0E, 0x00, 0x92, 0x07, 0x04, 0x76, 0x99, 0x7E, 0x0D, 0x00, 0x99, 0x3E, 0x0E, 0x00, + 0xF2, 0x04, 0x04, 0x76, 0x99, 0x7E, 0x0D, 0x00, 0x06, 0x2E, 0xCB, 0xC2, 0x03, 0x00, 0xF2, 0x6D, + 0x18, 0x7E, 0x0D, 0x00, 0x04, 0x61, 0xD6, 0x67, 0x92, 0xD9, 0x04, 0x62, 0xD6, 0x67, 0x14, 0x71, + 0x82, 0x65, 0x0B, 0xC1, 0x03, 0x00, 0x86, 0x22, 0x18, 0x3E, 0x0E, 0x00, 0x82, 0x11, 0xC4, 0x30, + 0x82, 0x11, 0xC6, 0x23, 0x04, 0x7A, 0x82, 0x03, 0x0C, 0x70, 0x12, 0x00, 0x99, 0x7E, 0x0D, 0x00, + 0x06, 0x2E, 0xCB, 0xC2, 0x03, 0x00, 0x04, 0x71, 0x99, 0x7E, 0x0C, 0x00, 0xF2, 0x06, 0xC4, 0x30, + 0x92, 0xF4, 0x04, 0x72, 0x99, 0x7E, 0x0D, 0x00, 0x99, 0x0E, 0x0E, 0x00, 0xF2, 0x46, 0x04, 0x72, + 0x99, 0x7E, 0x0D, 0x00, 0xF2, 0x42, 0xC4, 0x61, 0x82, 0x08, 0xC4, 0x61, 0xA2, 0x3A, 0xC4, 0x62, + 0x82, 0x09, 0xC4, 0x64, 0x82, 0x1B, 0xF2, 0x3A, 0x99, 0x6E, 0x0D, 0x00, 0x99, 0x0D, 0xA6, 0x05, + 0xF2, 0x35, 0x18, 0x7E, 0x0D, 0x00, 0xD4, 0x72, 0x82, 0x15, 0x98, 0x3E, 0x0E, 0x00, 0x82, 0x08, + 0x0C, 0x70, 0x12, 0x00, 0x99, 0x7E, 0x0D, 0x00, 0x06, 0x2E, 0xCB, 0xC2, 0x03, 0x00, 0x04, 0x71, + 0x99, 0x7E, 0x0D, 0x00, 0x99, 0x0D, 0xA6, 0x05, 0xF2, 0x18, 0x18, 0x7E, 0x0D, 0x00, 0xD4, 0x72, + 0x92, 0x07, 0x04, 0x71, 0x99, 0x7E, 0x0D, 0x00, 0x99, 0x0D, 0xA6, 0x05, 0xF2, 0x10, 0x98, 0x3E, + 0x0E, 0x00, 0x04, 0x72, 0x99, 0x7E, 0x0D, 0x00, 0x82, 0x07, 0x04, 0x7A, 0x99, 0x7E, 0x0D, 0x00, + 0x06, 0x2E, 0xCB, 0xC2, 0x03, 0x00, 0x04, 0x71, 0x99, 0x7E, 0x0C, 0x00, 0x04, 0x70, 0xF2, 0x06, + 0x04, 0x62, 0x99, 0x6E, 0x0D, 0x00, 0xF2, 0x02, 0x14, 0x71, 0x28, 0x5D, 0x06, 0x00, 0x04, 0x63, + 0xD6, 0x65, 0x92, 0x07, 0x18, 0x6E, 0x0D, 0x00, 0x54, 0x63, 0x66, 0x65, 0xA9, 0x6D, 0x06, 0x00, + 0x50, 0xC1, 0x06, 0x27, 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x00, 0x00, 0x18, 0x40, 0x68, 0x16, + 0xC4, 0x40, 0x28, 0x50, 0x44, 0x16, 0x06, 0x37, 0x0C, 0x70, 0x00, 0x10, 0x82, 0x07, 0x0C, 0x60, + 0x80, 0x0B, 0x26, 0x55, 0x26, 0x56, 0x20, 0x65, 0xF2, 0x0A, 0x08, 0x60, 0x00, 0x30, 0x57, 0x51, + 0x2C, 0x60, 0x00, 0xA0, 0x26, 0x65, 0x30, 0x66, 0x5C, 0x60, 0xFF, 0x7F, 0xC4, 0x40, 0xA9, 0x67, + 0x10, 0x00, 0x06, 0x63, 0x0C, 0x60, 0x44, 0x16, 0x28, 0x66, 0x02, 0x00, 0x92, 0x0B, 0x08, 0x50, + 0x00, 0x30, 0x57, 0x61, 0x2C, 0x50, 0x00, 0xA0, 0x26, 0x56, 0x30, 0x65, 0x5C, 0x60, 0xFF, 0x7F, + 0xF2, 0x06, 0x26, 0x66, 0x0C, 0x50, 0x80, 0x0B, 0x26, 0x65, 0x20, 0x66, 0xA9, 0x67, 0x12, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x38, 0x70, 0x40, 0x16, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x30, 0x77, + 0xDC, 0x70, 0x00, 0x40, 0x82, 0x06, 0x0C, 0xC0, 0xFF, 0x7F, 0x0C, 0xE0, 0x80, 0x0B, 0xF2, 0x05, + 0x0C, 0xC0, 0xFF, 0x0F, 0x0C, 0xE0, 0x80, 0x02, 0x04, 0xD0, 0x70, 0x7E, 0x0C, 0x30, 0x64, 0x00, + 0x06, 0x67, 0x57, 0x61, 0x26, 0x76, 0x06, 0x27, 0x57, 0x22, 0x26, 0x27, 0x4B, 0xA1, 0x00, 0x00, + 0x86, 0x22, 0x32, 0x03, 0xA1, 0x0E, 0xF2, 0x06, 0xC6, 0x2C, 0x02, 0x03, 0xA1, 0xCE, 0xF2, 0x02, + 0xA1, 0x2E, 0x24, 0xD1, 0xC4, 0xDB, 0x24, 0xE2, 0x92, 0xE9, 0x50, 0xC1, 0x2C, 0x10, 0x10, 0x00, + 0xE1, 0xF0, 0x00, 0x00, 0x3C, 0x10, 0x14, 0x00, 0xB1, 0xB1, 0x38, 0xB0, 0x40, 0x16, 0xD9, 0xC1, + 0x04, 0x00, 0x30, 0x7B, 0xDC, 0x70, 0x00, 0x40, 0x82, 0x06, 0x0C, 0xC0, 0xFF, 0x7F, 0x0C, 0xE0, + 0x80, 0x0B, 0xF2, 0x05, 0x0C, 0xC0, 0xFF, 0x0F, 0x0C, 0xE0, 0x80, 0x02, 0x2C, 0xE0, 0xBA, 0x01, + 0x0C, 0xD0, 0xDD, 0x00, 0x28, 0x3B, 0xD0, 0x00, 0x70, 0x2E, 0xAB, 0x9A, 0x00, 0x00, 0x0C, 0x30, + 0x64, 0x00, 0x4B, 0xA1, 0x00, 0x00, 0x86, 0x22, 0x32, 0x03, 0xA1, 0x0E, 0xF2, 0x06, 0xC6, 0x2C, + 0x02, 0x03, 0xA1, 0xCE, 0xF2, 0x02, 0xA1, 0x2E, 0x24, 0xD1, 0xCC, 0xD0, 0xE8, 0x00, 0x24, 0xE2, + 0x92, 0xEA, 0x58, 0xC1, 0x04, 0x00, 0x30, 0xB1, 0x2C, 0x10, 0x14, 0x00, 0xE1, 0xF0, 0x00, 0x00, + 0x04, 0x70, 0xC6, 0x74, 0x82, 0x09, 0x2F, 0x67, 0x03, 0x00, 0x60, 0x56, 0x2F, 0x67, 0x02, 0x00, + 0x91, 0x56, 0x24, 0x71, 0xF2, 0xF7, 0xE1, 0xF0, 0x04, 0x70, 0xC6, 0x74, 0x82, 0x06, 0x2F, 0x67, + 0x02, 0x00, 0x91, 0x36, 0x24, 0x71, 0xF2, 0xFA, 0xE1, 0xF0, 0x00, 0x00, 0x71, 0x00, 0xF2, 0xFF, + 0x4D, 0x00, 0x6C, 0x01, 0x7B, 0x02, 0x9D, 0x03, 0xBC, 0x04, 0x00, 0x00, 0x46, 0x00, 0x63, 0x01, + 0x80, 0x02, 0x9D, 0x03, 0xBA, 0x04, 0x00, 0x00, 0x83, 0x00, 0x06, 0x01, 0x89, 0x01, 0x0C, 0x02, + 0x8F, 0x02, 0x00, 0x00, 0x41, 0x00, 0xC4, 0x00, 0x47, 0x01, 0xCA, 0x01, 0x4D, 0x02, 0x00, 0x00, + 0xC6, 0x23, 0x06, 0x72, 0x32, 0x02, 0x06, 0x73, 0x43, 0x27, 0xE1, 0xF0, 0xC6, 0x23, 0x22, 0x07, + 0xC6, 0x24, 0x06, 0x72, 0x32, 0x02, 0x06, 0x74, 0x43, 0x27, 0xF2, 0x06, 0xC6, 0x34, 0x06, 0x23, + 0x32, 0x02, 0x06, 0x24, 0x43, 0x22, 0xE1, 0xF0, 0x3C, 0x10, 0x10, 0x00, 0xD1, 0xC1, 0x06, 0xE5, + 0x06, 0xD6, 0x6B, 0x04, 0x00, 0x00, 0x06, 0x3E, 0x06, 0x4D, 0x6B, 0x04, 0x00, 0x00, 0x50, 0xC1, + 0x2C, 0x10, 0x10, 0x00, 0xE1, 0xF0, 0x24, 0x00, 0xC6, 0x23, 0x06, 0x72, 0x02, 0x02, 0x06, 0x73, + 0x43, 0x27, 0xE1, 0xF0, 0x26, 0x23, 0xE1, 0xF0, 0x26, 0x23, 0x26, 0x24, 0xE1, 0xF0, 0x24, 0x00, + 0x26, 0x32, 0x26, 0x43, 0x26, 0x54, 0x2F, 0x26, 0x05, 0x00, 0xE1, 0xF0, 0x04, 0x70, 0xC6, 0x74, + 0x82, 0x09, 0x2F, 0x67, 0x03, 0x00, 0x60, 0x56, 0x2F, 0x67, 0x02, 0x00, 0x91, 0x56, 0x24, 0x71, + 0xF2, 0xF7, 0xE1, 0xF0, 0x34, 0x14, 0xB1, 0xF1, 0x77, 0x41, 0x04, 0x70, 0x14, 0x61, 0x34, 0x41, + 0xC6, 0x46, 0x82, 0x09, 0x2F, 0x57, 0x03, 0x00, 0x30, 0xF5, 0x2F, 0x57, 0x02, 0x00, 0xB1, 0xF5, + 0x24, 0x74, 0xF2, 0xF6, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x24, 0x00, 0x04, 0x70, 0xC6, 0x74, + 0x82, 0x06, 0x2F, 0x67, 0x02, 0x00, 0x91, 0x36, 0x24, 0x71, 0xF2, 0xFA, 0xE1, 0xF0, 0x24, 0x00, + 0x77, 0x41, 0x14, 0x71, 0x34, 0x41, 0xC6, 0x47, 0x82, 0x04, 0xB1, 0x32, 0x24, 0x24, 0xF2, 0xFB, + 0xE1, 0xF0, 0x24, 0x00, 0x77, 0x31, 0x14, 0x71, 0x34, 0x31, 0xC6, 0x37, 0x82, 0x04, 0xB1, 0x02, + 0x24, 0x24, 0xF2, 0xFB, 0xE1, 0xF0, 0x24, 0x00, 0x08, 0x50, 0x00, 0x30, 0x0C, 0x70, 0xD8, 0x4C, + 0x0C, 0x40, 0xFC, 0x48, 0x0C, 0x60, 0xEC, 0x08, 0x26, 0x75, 0x26, 0x45, 0x30, 0x57, 0x34, 0x74, + 0xC6, 0x74, 0x77, 0x58, 0xA1, 0x56, 0x34, 0x62, 0x92, 0xFA, 0xE1, 0xF0, 0x34, 0x18, 0xC1, 0xE1, + 0x08, 0x70, 0x00, 0x30, 0x2C, 0x70, 0xD8, 0xA3, 0x0C, 0x60, 0xF6, 0x00, 0x0C, 0xE0, 0x80, 0x0B, + 0x0C, 0x20, 0x80, 0x02, 0x14, 0x41, 0x30, 0xF7, 0x2F, 0x56, 0x06, 0x00, 0x2F, 0x3E, 0x05, 0x00, + 0xA1, 0xF3, 0x1C, 0x30, 0x00, 0x57, 0x26, 0x37, 0x30, 0x33, 0x34, 0x61, 0xC6, 0x64, 0x26, 0x52, + 0xA1, 0x35, 0x34, 0x74, 0x92, 0xF1, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0x34, 0x14, 0x0C, 0x70, + 0x1E, 0x00, 0xB1, 0x71, 0x30, 0x71, 0x14, 0x61, 0xC4, 0x70, 0x26, 0x67, 0xB1, 0x61, 0x92, 0xFB, + 0x24, 0x14, 0xE1, 0xF0, 0xE1, 0xF0, 0x24, 0x00, 0x34, 0x14, 0xB1, 0xF1, 0x08, 0x70, 0x00, 0x40, + 0xB9, 0x07, 0x90, 0x60, 0xB9, 0x27, 0x00, 0x60, 0xB9, 0x37, 0x04, 0x60, 0xB9, 0x07, 0x08, 0x60, + 0x38, 0x67, 0x90, 0x60, 0xD4, 0x61, 0x82, 0xFD, 0x0C, 0x60, 0x00, 0x81, 0xB9, 0x67, 0x00, 0x60, + 0x0B, 0x14, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x24, 0x00, 0x34, 0x14, 0xB1, 0xF1, + 0x08, 0x70, 0x00, 0x40, 0xB9, 0x27, 0x00, 0x60, 0x04, 0x60, 0xC6, 0x65, 0x2F, 0x23, 0x06, 0x00, + 0x82, 0x0D, 0xB9, 0x27, 0x04, 0x60, 0x30, 0x24, 0xB9, 0x27, 0x08, 0x60, 0x38, 0x27, 0x90, 0x60, + 0xD4, 0x22, 0x82, 0xFD, 0x24, 0x61, 0x24, 0x44, 0xF2, 0xF1, 0x0C, 0x60, 0x00, 0x81, 0xB9, 0x67, + 0x00, 0x60, 0x0B, 0x14, 0x00, 0x00, 0x30, 0xF1, 0x24, 0x14, 0xE1, 0xF0, 0x34, 0x18, 0xC1, 0xE1, + 0x08, 0x70, 0x00, 0x40, 0x0C, 0x60, 0x00, 0xDE, 0xB9, 0x67, 0x10, 0x60, 0x77, 0x31, 0x0C, 0x60, + 0x90, 0x01, 0xB9, 0x67, 0x00, 0x60, 0x77, 0x21, 0x34, 0x31, 0x08, 0x60, 0x00, 0x13, 0xB9, 0x27, + 0x04, 0x60, 0x66, 0x36, 0xB9, 0x37, 0x14, 0x60, 0x08, 0x50, 0x00, 0x10, 0x38, 0x67, 0x14, 0x60, + 0x0C, 0x40, 0x14, 0x60, 0xD6, 0x65, 0x26, 0x47, 0x92, 0xFA, 0x38, 0xE7, 0x18, 0x60, 0xB1, 0x04, + 0x0C, 0x60, 0x00, 0x81, 0xB9, 0x67, 0x00, 0x60, 0xB9, 0x07, 0x10, 0x60, 0x0B, 0x14, 0x00, 0x00, + 0x06, 0x2E, 0x40, 0xE1, 0x24, 0x18, 0xE1, 0xF0, 0xD8, 0x00, 0xED, 0x01, 0x11, 0x03, 0x30, 0x04, + 0xD5, 0x00, 0xF2, 0x01, 0x0E, 0x03, 0x2B, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x02, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0D, 0x13, 0x0B, 0x12, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x02, 0x00, 0x08, 0x07, 0x12, 0x12, 0xFF, 0xFF, 0xFF, 0x0B, + 0x0C, 0xFF, 0xFF, 0xFF, 0xD0, 0x02, 0x00, 0x05, 0xFF, 0x11, 0xFF, 0x1F, 0x02, 0x00, 0x03, 0x02, + 0x69, 0x00, 0x69, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x46, 0x00, 0x64, 0x00, 0x08, 0x07, 0x01, 0xC8, 0xC8, 0x00, 0x00, 0x02, 0x01, 0x46, 0x00, 0x01, + 0x00, 0x02, 0x00, 0x00, 0xD4, 0x30, 0x00, 0x00, 0xD4, 0x30, 0x00, 0x00, 0xD4, 0x30, 0x00, 0x00, + 0xA0, 0x86, 0x01, 0x00, 0x40, 0x4B, 0x4C, 0x00, 0x30, 0x75, 0x00, 0x00, 0xF4, 0x01, 0xF4, 0x01, + 0xF4, 0x01, 0xF4, 0x01, 0x6E, 0x50, 0x00, 0x0A, 0x01, 0x00, 0x14, 0x00, 0x00, 0x00, 0x5A, 0x00, + 0x01, 0x00, 0x0A, 0x00, 0xA0, 0x0F, 0x64, 0x64, 0x64, 0x01, 0x3C, 0x30, 0x04, 0x05, 0x02, 0x0A, + 0x06, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x14, 0x00, + 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x96, 0x00, 0x2C, 0x01, 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, + 0x00, 0x00, 0x64, 0x00, 0x26, 0x26, 0x00, 0x00, 0x4C, 0x26, 0x14, 0x00, 0x48, 0x20, 0x23, 0x00, + 0x4C, 0x26, 0x14, 0x00, 0x4C, 0x26, 0x14, 0x00, 0x48, 0x20, 0x23, 0x00, 0x48, 0x20, 0x23, 0x00, + 0x48, 0x20, 0x23, 0x00, 0x48, 0x20, 0x23, 0x00, 0x40, 0x40, 0x00, 0x00, 0x63, 0x07, 0x03, 0x00, + 0x61, 0xC7, 0x03, 0x00, 0x61, 0x07, 0x03, 0x00, 0x61, 0xC7, 0x03, 0x00, 0x61, 0x07, 0x03, 0x00, + 0x63, 0x07, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x0E, + 0x80, 0x0F, 0x80, 0x0F, 0x80, 0x0F, 0x80, 0x0F, 0x66, 0x7F, 0xF0, 0x07, 0x66, 0x7F, 0xF0, 0x07, + 0x66, 0x7F, 0xF0, 0x07, 0x66, 0x7F, 0xF0, 0x07, 0x66, 0x7F, 0xF0, 0x07, 0x66, 0x7F, 0xF0, 0x07, + 0xFF, 0x3F, 0x01, 0x00, 0xFF, 0x3F, 0x01, 0x00, 0x40, 0x42, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x88, 0x00, 0x10, 0x3F, 0x10, 0x3F, + 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x08, 0x82, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x64, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x64, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x40, 0x42, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x88, 0x00, 0x10, 0x3F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, + 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x08, 0x82, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x80, 0x64, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x32, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x42, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x10, 0x88, 0x00, 0x10, 0x3F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, + 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x08, 0x82, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, + 0x64, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x64, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x42, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x88, 0x00, + 0x10, 0x3F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, 0x64, 0x3C, 0x10, 0x00, + 0x00, 0x00, 0x08, 0x82, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x64, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x32, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xB9, 0x00, 0x00, 0x52, 0x52, 0x05, 0x00, + 0x52, 0x32, 0x00, 0x32, 0x00, 0x32, 0x19, 0x00, 0x64, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x64, 0x64, 0xC8, 0x00, 0x14, 0x00, 0x02, 0x00, 0x32, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x2C, 0x01, + 0x90, 0x01, 0x90, 0x01, 0xC2, 0x01, 0x00, 0x00, 0x28, 0x00, 0x64, 0x00, 0x00, 0x00, 0x46, 0x00, + 0x01, 0x00, 0x01, 0x00, 0xC8, 0x00, 0x05, 0x01, 0x32, 0x0A, 0xB8, 0x0B, 0xF4, 0x01, 0x01, 0x01, + 0x1E, 0x00, 0x1E, 0x00, 0x20, 0x03, 0x64, 0x00, 0x64, 0x00, 0x0E, 0x00, 0xFA, 0x00, 0x00, 0x05, + 0x04, 0x0A, 0x01, 0x06, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3C, 0x02, 0x28, 0x00, 0x20, 0x03, + 0xDC, 0x05, 0xC8, 0x00, 0x14, 0x00, 0x28, 0x00, 0x14, 0x00, 0x0A, 0x00, 0xC2, 0x01, 0x05, 0x02, + 0x01, 0x01, 0x01, 0x00, 0x50, 0x00, 0x78, 0x00, 0xC8, 0x00, 0x0A, 0x00, 0x68, 0x01, 0x1E, 0x00, + 0x78, 0x00, 0x4A, 0x01, 0x2D, 0x00, 0x4B, 0x00, 0x96, 0x00, 0x14, 0x04, 0xFD, 0x02, 0x00, 0x03, + 0x14, 0x01, 0x02, 0x03, 0x01, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x0F, 0x00, 0x19, 0x00, 0x32, 0x00, 0x4B, 0x00, 0x64, 0x00, 0x64, 0x01, 0x03, 0x00, + 0x00, 0x2D, 0x2D, 0x0A, 0x00, 0x00, 0x32, 0x00, 0x96, 0x00, 0x0A, 0x0A, 0x1E, 0x00, 0x05, 0x0A, + 0x01, 0x00, 0x64, 0x00, 0xC8, 0x00, 0x05, 0x00, 0x82, 0x00, 0xC8, 0x00, 0x05, 0x05, 0xC8, 0x00, + 0x14, 0x00, 0x64, 0x00, 0x1F, 0xB9, 0x00, 0x00, 0x52, 0x52, 0x05, 0x00, 0x52, 0x32, 0x00, 0x32, + 0x00, 0x32, 0x19, 0x00, 0x64, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x64, 0x64, 0xC8, 0x00, + 0x14, 0x00, 0x02, 0x00, 0x32, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x2C, 0x01, 0x90, 0x01, 0x90, 0x01, + 0xC2, 0x01, 0x00, 0x00, 0x28, 0x00, 0x64, 0x00, 0x00, 0x00, 0x46, 0x00, 0x01, 0x00, 0x01, 0x00, + 0xC8, 0x00, 0x05, 0x01, 0x32, 0x0A, 0xB8, 0x0B, 0xF4, 0x01, 0x01, 0x01, 0x1E, 0x00, 0x1E, 0x00, + 0x20, 0x03, 0x64, 0x00, 0x64, 0x00, 0x0E, 0x00, 0xFA, 0x00, 0x00, 0x05, 0x04, 0x0A, 0x01, 0x06, + 0x3C, 0x00, 0x00, 0x00, 0x00, 0x06, 0x3C, 0x02, 0x28, 0x00, 0x20, 0x03, 0xDC, 0x05, 0xC8, 0x00, + 0x14, 0x00, 0x28, 0x00, 0x1E, 0x00, 0x0A, 0x00, 0xC2, 0x01, 0x05, 0x02, 0x01, 0x01, 0x01, 0x00, + 0x50, 0x00, 0x78, 0x00, 0xC8, 0x00, 0x0A, 0x00, 0x68, 0x01, 0x1E, 0x00, 0x78, 0x00, 0x4A, 0x01, + 0x2D, 0x00, 0x4B, 0x00, 0x96, 0x00, 0x14, 0x04, 0xFD, 0x02, 0x00, 0x03, 0x14, 0x01, 0x02, 0x03, + 0x01, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x0F, 0x00, + 0x19, 0x00, 0x32, 0x00, 0x4B, 0x00, 0x64, 0x00, 0x64, 0x01, 0x03, 0x00, 0x00, 0x2D, 0x2D, 0x0A, + 0x00, 0x00, 0x32, 0x00, 0x96, 0x00, 0x0A, 0x0A, 0x1E, 0x00, 0x05, 0x0A, 0x01, 0x00, 0x64, 0x00, + 0xC8, 0x00, 0x05, 0x00, 0x82, 0x00, 0xC8, 0x00, 0x05, 0x05, 0xC8, 0x00, 0x14, 0x00, 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, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x0D, 0x13, 0x0D, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x2C, 0x01, 0x60, 0x30, 0x14, 0x00, 0x54, 0xFF, 0x0F, 0x00, 0x08, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0x2C, 0x01, 0x38, 0x48, 0x10, 0x10, 0x01, 0x00, 0x08, 0x00, + 0xC8, 0x00, 0xC8, 0x10, 0x61, 0x07, 0x04, 0x00, 0xFF, 0x3F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x64, 0xC0, 0x12, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x80, 0x0F, + 0x01, 0x00, 0x80, 0x00, 0xFF, 0x0F, 0xFF, 0x0F, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, + 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x13, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, + 0x32, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x32, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x42, 0x01, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x10, 0x88, 0x00, 0x10, 0x5F, 0x10, 0x3F, 0x64, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x08, 0x82, + 0x2C, 0x01, 0xFF, 0x0F, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xAC, 0x0D, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x7F, 0xF0, 0x07, + 0xDC, 0xC5, 0xDA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x13, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0x08, 0x06, 0x00, + 0xD7, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x31, 0x84, 0x40, 0x00, 0x15, 0xF3, 0x88, 0x00, 0x00, 0xFF, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x3F, 0x00, 0x88, 0xBE, 0x01, 0x20, 0x00, 0x00, + 0x0C, 0x0D, 0x0E, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, + 0x1E, 0x21, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0B, + 0x00, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x00, 0x00, 0xFF, 0x00, 0x20, 0x86, 0x00, 0x00, 0x00, 0x50, + 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x0F, 0x00, 0x4E, 0x27, 0x27, 0x00, + 0x4E, 0x28, 0x27, 0x01, 0x4E, 0x29, 0x27, 0x02, 0x4E, 0x2A, 0x27, 0x03, 0x4E, 0x2B, 0x27, 0x04, + 0x4E, 0x2C, 0x24, 0x05, 0x4E, 0x2D, 0x27, 0x06, 0x4E, 0x2E, 0x27, 0x07, 0x4E, 0x2F, 0x27, 0x08, + 0x4E, 0x30, 0x27, 0x09, 0x4F, 0x32, 0x28, 0x0B, 0x4F, 0x34, 0x28, 0x0D, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x37, 0x27, 0x10, 0x00, 0x37, 0x27, 0x10, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x00, 0x00, 0x26, 0x07, 0x13, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x52, 0x05, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3F, 0xFE, 0x08, 0x2D, 0x38, 0xE6, 0x08, 0x2D, 0x49, 0x26, 0x09, 0x2D, 0x35, 0xD6, 0x08, 0x2D, + 0x44, 0x16, 0x09, 0x2D, 0x32, 0xCE, 0x08, 0x2D, 0x2C, 0xB2, 0x08, 0x2D, 0x3B, 0xEE, 0x08, 0x2D, + 0x29, 0xA6, 0x08, 0x2D, 0x3A, 0xEE, 0x08, 0x2D, 0x28, 0xA2, 0x08, 0x2D, 0x00, 0x02, 0x08, 0x00, + 0x00, 0x02, 0x08, 0x00, 0x97, 0x5E, 0x0A, 0x2D, 0x8E, 0x3E, 0x0A, 0x2D, 0xAE, 0xBE, 0x0A, 0x2D, + 0x97, 0x5E, 0x0A, 0x2D, 0xA4, 0x96, 0x0A, 0x2D, 0x85, 0x16, 0x0A, 0x2D, 0x77, 0xDE, 0x09, 0x2D, + 0x8F, 0x3E, 0x0A, 0x2D, 0x78, 0xE6, 0x09, 0x2D, 0x8A, 0x2A, 0x0A, 0x2D, 0x69, 0xA6, 0x09, 0x2D, + 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x95, 0x56, 0x0A, 0x2E, 0x8F, 0x3E, 0x0A, 0x2E, + 0xAF, 0xC2, 0x0A, 0x2E, 0x9A, 0x6E, 0x0A, 0x2E, 0xA9, 0xA6, 0x0A, 0x2E, 0x89, 0x26, 0x0A, 0x2E, + 0x79, 0xE6, 0x09, 0x2E, 0x91, 0x46, 0x0A, 0x2E, 0x79, 0xE6, 0x09, 0x2E, 0x89, 0x26, 0x0A, 0x2E, + 0x69, 0xA6, 0x09, 0x2E, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x66, 0x9E, 0x09, 0x2C, + 0x61, 0x86, 0x09, 0x2C, 0x7A, 0xEE, 0x09, 0x2C, 0x66, 0x9E, 0x09, 0x2C, 0x73, 0xCE, 0x09, 0x2C, + 0x5E, 0x7E, 0x09, 0x2C, 0x52, 0x4E, 0x09, 0x2C, 0x62, 0x8A, 0x09, 0x2C, 0x50, 0x46, 0x09, 0x2C, + 0x5E, 0x7A, 0x09, 0x2C, 0x42, 0x0A, 0x09, 0x2C, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, + 0x60, 0x86, 0x09, 0x2B, 0x5B, 0x6E, 0x09, 0x2B, 0x75, 0xD6, 0x09, 0x2B, 0x63, 0x8E, 0x09, 0x2B, + 0x6E, 0xBE, 0x09, 0x2B, 0x5A, 0x6E, 0x09, 0x2B, 0x4E, 0x3E, 0x09, 0x2B, 0x5E, 0x7E, 0x09, 0x2B, + 0x4A, 0x2E, 0x09, 0x2B, 0x59, 0x66, 0x09, 0x2B, 0x3F, 0xFE, 0x08, 0x2B, 0x00, 0x02, 0x08, 0x00, + 0x00, 0x02, 0x08, 0x00, 0x56, 0x5E, 0x09, 0x29, 0x52, 0x4E, 0x09, 0x29, 0x6C, 0xB6, 0x09, 0x29, + 0x58, 0x66, 0x09, 0x29, 0x64, 0x96, 0x09, 0x29, 0x50, 0x46, 0x09, 0x29, 0x44, 0x16, 0x09, 0x29, + 0x54, 0x56, 0x09, 0x29, 0x40, 0x06, 0x09, 0x29, 0x4E, 0x3E, 0x09, 0x29, 0x34, 0xD6, 0x08, 0x29, + 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x5F, 0x7E, 0x09, 0x27, 0x5B, 0x6E, 0x09, 0x27, + 0x75, 0xD6, 0x09, 0x27, 0x61, 0x86, 0x09, 0x27, 0x6E, 0xBE, 0x09, 0x27, 0x59, 0x66, 0x09, 0x27, + 0x4D, 0x3A, 0x09, 0x27, 0x5D, 0x76, 0x09, 0x27, 0x4C, 0x32, 0x09, 0x27, 0x56, 0x5E, 0x09, 0x27, + 0x40, 0x02, 0x09, 0x27, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x45, 0x16, 0x19, 0x24, + 0x40, 0x06, 0x19, 0x24, 0x54, 0x52, 0x19, 0x24, 0x44, 0x16, 0x19, 0x24, 0x50, 0x42, 0x19, 0x24, + 0x40, 0x06, 0x19, 0x24, 0x38, 0xE6, 0x18, 0x24, 0x41, 0x06, 0x19, 0x24, 0x34, 0xD6, 0x18, 0x24, + 0x3F, 0x02, 0x19, 0x24, 0x2A, 0xAE, 0x18, 0x24, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, + 0x40, 0x02, 0x29, 0x22, 0x3C, 0xF6, 0x28, 0x22, 0x4D, 0x36, 0x29, 0x22, 0x40, 0x06, 0x29, 0x22, + 0x49, 0x26, 0x29, 0x22, 0x3D, 0xF6, 0x28, 0x22, 0x35, 0xDA, 0x28, 0x22, 0x3F, 0xFE, 0x28, 0x22, + 0x32, 0xCE, 0x28, 0x22, 0x3E, 0xFE, 0x28, 0x22, 0x2C, 0xB2, 0x28, 0x22, 0x00, 0x02, 0x08, 0x00, + 0x00, 0x02, 0x08, 0x00, 0x36, 0xDA, 0x38, 0x1D, 0x31, 0xC6, 0x38, 0x1D, 0x40, 0x02, 0x39, 0x1D, + 0x33, 0xCE, 0x38, 0x1D, 0x3E, 0xFA, 0x38, 0x1D, 0x31, 0xC6, 0x38, 0x1D, 0x2A, 0xAE, 0x38, 0x1D, + 0x34, 0xD6, 0x38, 0x1D, 0x28, 0xA6, 0x38, 0x1D, 0x32, 0xCE, 0x38, 0x1D, 0x22, 0x8E, 0x38, 0x1D, + 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x35, 0xD6, 0x48, 0x1B, 0x31, 0xC6, 0x48, 0x1B, + 0x40, 0x02, 0x49, 0x1B, 0x34, 0xD6, 0x48, 0x1B, 0x3D, 0xF6, 0x48, 0x1B, 0x31, 0xC6, 0x48, 0x1B, + 0x2A, 0xAE, 0x48, 0x1B, 0x34, 0xD6, 0x48, 0x1B, 0x28, 0xA6, 0x48, 0x1B, 0x32, 0xCE, 0x48, 0x1B, + 0x23, 0x8E, 0x48, 0x1B, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x30, 0xC6, 0x58, 0x17, + 0x2B, 0xAE, 0x58, 0x17, 0x3A, 0xEE, 0x58, 0x17, 0x2E, 0xBE, 0x58, 0x17, 0x36, 0xDE, 0x58, 0x17, + 0x2B, 0xAE, 0x58, 0x17, 0x25, 0x96, 0x58, 0x17, 0x2F, 0xBE, 0x58, 0x17, 0x23, 0x8E, 0x58, 0x17, + 0x2D, 0xBA, 0x58, 0x17, 0x1D, 0x76, 0x58, 0x17, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, + 0x2F, 0xBE, 0x68, 0x17, 0x2D, 0xB6, 0x68, 0x17, 0x3B, 0xEE, 0x68, 0x17, 0x2F, 0xBE, 0x68, 0x17, + 0x37, 0xDE, 0x68, 0x17, 0x2D, 0xB6, 0x68, 0x17, 0x26, 0x9E, 0x68, 0x17, 0x2F, 0xBE, 0x68, 0x17, + 0x24, 0x92, 0x68, 0x17, 0x2E, 0xBA, 0x68, 0x17, 0x1F, 0x7E, 0x68, 0x17, 0x00, 0x02, 0x08, 0x00, + 0x00, 0x02, 0x08, 0x00, 0x2E, 0xBA, 0x78, 0x14, 0x29, 0xA6, 0x78, 0x14, 0x36, 0xDE, 0x78, 0x14, + 0x2B, 0xAE, 0x78, 0x14, 0x33, 0xCE, 0x78, 0x14, 0x29, 0xA6, 0x78, 0x14, 0x23, 0x8E, 0x78, 0x14, + 0x2B, 0xAE, 0x78, 0x14, 0x20, 0x86, 0x78, 0x14, 0x29, 0xAA, 0x78, 0x14, 0x19, 0x66, 0x78, 0x14, + 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x31, 0xC6, 0x88, 0x13, 0x28, 0xA6, 0x88, 0x13, + 0x36, 0xDE, 0x88, 0x13, 0x2B, 0xAE, 0x88, 0x13, 0x33, 0xCE, 0x88, 0x13, 0x28, 0xA6, 0x88, 0x13, + 0x22, 0x8E, 0x88, 0x13, 0x2B, 0xAE, 0x88, 0x13, 0x20, 0x86, 0x88, 0x13, 0x29, 0xA6, 0x88, 0x13, + 0x1B, 0x6E, 0x88, 0x13, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x27, 0x9E, 0x98, 0x12, + 0x23, 0x8E, 0x98, 0x12, 0x30, 0xC2, 0x98, 0x12, 0x25, 0x9A, 0x98, 0x12, 0x2D, 0xB6, 0x98, 0x12, + 0x23, 0x8E, 0x98, 0x12, 0x1E, 0x7E, 0x98, 0x12, 0x25, 0x96, 0x98, 0x12, 0x1B, 0x6E, 0x98, 0x12, + 0x24, 0x96, 0x98, 0x12, 0x1A, 0x6E, 0x98, 0x12, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, + 0x25, 0x96, 0xA8, 0x13, 0x1D, 0x76, 0xA8, 0x13, 0x2A, 0xAE, 0xA8, 0x13, 0x20, 0x82, 0xA8, 0x13, + 0x27, 0x9E, 0xA8, 0x13, 0x1F, 0x7E, 0xA8, 0x13, 0x1C, 0x72, 0xA8, 0x13, 0x22, 0x8E, 0xA8, 0x13, + 0x17, 0x62, 0xA8, 0x13, 0x20, 0x86, 0xA8, 0x13, 0x13, 0x4E, 0xA8, 0x13, 0x00, 0x02, 0x08, 0x00, + 0x00, 0x02, 0x08, 0x00, 0x17, 0x5E, 0xB8, 0x12, 0x14, 0x56, 0xB8, 0x12, 0x20, 0x86, 0xB8, 0x12, + 0x16, 0x5E, 0xB8, 0x12, 0x1E, 0x7E, 0xB8, 0x12, 0x16, 0x5E, 0xB8, 0x12, 0x13, 0x4E, 0xB8, 0x12, + 0x1A, 0x6A, 0xB8, 0x12, 0x0F, 0x3E, 0xB8, 0x12, 0x18, 0x62, 0xB8, 0x12, 0x0F, 0x3E, 0xB8, 0x12, + 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, + 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, + 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, + 0x00, 0x02, 0x08, 0x00, 0xE4, 0x96, 0xEB, 0x2E, 0xB6, 0xDE, 0xFA, 0x22, 0x00, 0x02, 0x88, 0x0C, + 0x00, 0x02, 0x88, 0x0C, 0x00, 0x02, 0x88, 0x0C, 0x00, 0x02, 0x88, 0x0A, 0x00, 0x02, 0x88, 0x0A, + 0x00, 0x02, 0x88, 0x0E, 0x00, 0x02, 0x88, 0x0E, 0x00, 0x02, 0x88, 0x0E, 0x00, 0x02, 0x88, 0x0E, + 0x00, 0x02, 0x88, 0x0D, 0x00, 0x02, 0x88, 0x0D, 0x00, 0x02, 0x88, 0x0D, 0x00, 0x02, 0x88, 0x0D, + 0x00, 0x02, 0x88, 0x0C, 0x00, 0x02, 0x88, 0x0C, 0x00, 0x02, 0x88, 0x0C, 0x00, 0x02, 0x88, 0x0C, + 0x00, 0x02, 0x88, 0x0A, 0x00, 0x02, 0x88, 0x0A, 0x00, 0x02, 0x88, 0x10, 0x00, 0x02, 0x88, 0x0F, + 0x00, 0x02, 0x88, 0x0E, 0x00, 0x02, 0x88, 0x0E, 0x00, 0x02, 0x88, 0x0D, 0x00, 0x02, 0x88, 0x0D, + 0x00, 0x02, 0x88, 0x0D, 0x00, 0x02, 0x88, 0x0D, 0x00, 0x02, 0x88, 0x0C, 0x00, 0x02, 0x88, 0x0C, + 0x00, 0x02, 0x88, 0x0D, 0x00, 0x02, 0x88, 0x0D, 0x00, 0x02, 0x88, 0x0A, 0x00, 0x02, 0x88, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0xF8, 0x13, 0x00, 0x02, 0xF8, 0x0E, 0x00, 0x02, 0xE8, 0x0A, 0x00, 0x02, 0xE8, 0x0A, + 0x00, 0x02, 0xE8, 0x0A, 0x00, 0x02, 0xE8, 0x0A, 0x00, 0x02, 0xE8, 0x0A, 0x00, 0x02, 0xE8, 0x0A, + 0x00, 0x02, 0xE8, 0x0A, 0x00, 0x02, 0xE8, 0x0A, 0x00, 0x02, 0xE8, 0x0A, 0x00, 0x02, 0xE8, 0x0A, + 0x00, 0x02, 0xE8, 0x0A, 0x00, 0x02, 0xE8, 0x0A, 0x00, 0x02, 0xE8, 0x0A, 0x00, 0x02, 0xE8, 0x0A, + 0x00, 0x02, 0x18, 0x0C, 0x00, 0x02, 0x18, 0x0C, 0x00, 0x02, 0x18, 0x0C, 0x00, 0x02, 0x18, 0x0C, + 0x00, 0x02, 0x18, 0x0E, 0x00, 0x02, 0x18, 0x0C, 0x00, 0x02, 0x18, 0x0C, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0xF8, 0x10, 0x00, 0x02, 0xF8, 0x12, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x28, 0x16, + 0x00, 0x02, 0x28, 0x16, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, 0x00, 0x02, 0x08, 0x0A, + 0x00, 0x60, 0xF0, 0x3F, 0x21, 0x70, 0xF0, 0x3F, 0x42, 0x70, 0xF0, 0x3F, 0x63, 0x70, 0xF0, 0x3F, + 0x84, 0x70, 0xF0, 0x3F, 0xA5, 0x70, 0xF0, 0x3F, 0xC6, 0xF0, 0xF1, 0x3F, 0xE7, 0xF0, 0xF1, 0x3F, + 0x08, 0xF1, 0xF1, 0x3F, 0x29, 0xF1, 0xF1, 0x3F, 0x4A, 0xF1, 0xF1, 0x3F, 0x6B, 0xF1, 0xF1, 0x3F, + 0x8C, 0xF1, 0xF1, 0x3F, 0xAD, 0xF1, 0xF1, 0x3F, 0xCE, 0xF1, 0xF1, 0x3F, 0xEF, 0xF1, 0xF1, 0x3F, + 0x10, 0xF2, 0xF1, 0x3F, 0x31, 0xD2, 0xF1, 0x3F, 0x52, 0xC2, 0xF1, 0x73, 0x00, 0xC0, 0xF1, 0x3F, + 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, + 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, + 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0xC0, 0xF1, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x4E, 0x49, 0x30, 0x00, 0x37, 0x30, 0x10, 0x09, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x4B, 0x46, 0x24, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x27, 0x3F, 0xE0, 0x03, 0x00, 0x80, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x31, 0x31, 0x00, 0x31, 0x31, 0x31, 0x00, + 0x31, 0x31, 0x31, 0x00, 0x31, 0x31, 0x31, 0x00, 0x31, 0x31, 0x31, 0x00, 0x31, 0x31, 0x31, 0x00, + 0x31, 0x31, 0x31, 0x00, 0x31, 0x31, 0x31, 0x00, 0x31, 0x31, 0x31, 0x00, 0x31, 0x31, 0x31, 0x00, + 0x31, 0x31, 0x31, 0x00, 0x31, 0x31, 0x31, 0x00, 0x31, 0x31, 0x31, 0x00, 0x31, 0x31, 0x31, 0x00, + 0x31, 0x31, 0x31, 0x00, 0x31, 0x31, 0x31, 0x00, 0x31, 0x31, 0x31, 0x00, 0x31, 0x31, 0x31, 0x00, + 0x31, 0x31, 0x31, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, + 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, + 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 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, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x40, 0x00, 0x40, 0x00, 0x30, 0x00, 0x49, 0x00, 0x30, 0x00, 0xA0, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, + 0x49, 0x53, 0x54, 0x56, 0x32, 0x54, 0x41, 0x47, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xDC, 0x00, 0x00, + 0x00, 0xDC, 0x00, 0x80, 0x00, 0x06, 0x00, 0x00, 0x00, 0xE2, 0x00, 0x80, 0x00, 0x0E, 0x00, 0x00, + 0x00, 0xF0, 0x00, 0x80, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x80, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x49, 0x00, 0x30, 0x00, 0xA0, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xA7, 0xA7, 0xF4, 0x76, 0x45, 0xB9, 0x29, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x04, 0xDF, 0x07, 0x0C, 0x2B, 0x0E, 0x00, 0x49, 0x53, 0x54, 0x56, 0x32, 0x54, 0x41, 0x47 +}; + +#endif // __IST30XXC_FW_H__ \ No newline at end of file diff --git a/drivers/input/touchscreen/ist30xxc/ist30xxc.c b/drivers/input/touchscreen/ist30xxc/ist30xxc.c new file mode 100644 index 00000000..50b46cd6 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/ist30xxc.c @@ -0,0 +1,1566 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 + +#if CONFIG_EXTCON_S2MM001B +#include +#endif + +#include "ist30xxc.h" +#include "ist30xxc_update.h" +#include "ist30xxc_tracking.h" +#ifdef CONFIG_OF +#include +#include +#include +#endif + +#if IST30XX_DEBUG +#include "ist30xxc_misc.h" +#endif + +#if IST30XX_CMCS_TEST +#include "ist30xxc_cmcs.h" +#endif + +#define MAX_ERR_CNT (100) +#define EVENT_TIMER_INTERVAL (HZ * timer_period_ms / 1000) +u32 event_ms = 0, timer_ms = 0; +static struct timer_list event_timer; +static struct timespec t_current; // ns +int timer_period_ms = 500; // 0.5sec + +#if IST30XX_USE_KEY +int ist30xx_key_code[] = { 0, KEY_APPSELECT, KEY_BACK }; +#endif + +char *ist_vdd_name = "vddsim2"; + +struct ist30xx_data *ts_data; +EXPORT_SYMBOL(ts_data); +DEFINE_MUTEX(ist30xx_mutex); + +#ifdef CONFIG_ARM64 +struct class *sec_class; +EXPORT_SYMBOL(sec_class); +#endif + +int ist30xx_dbg_level = IST30XX_DEBUG_LEVEL; +void tsp_printk(int level, const char *fmt, ...) +{ + struct va_format vaf; + va_list args; + + if (ist30xx_dbg_level < level) + return; + + va_start(args, fmt); + + vaf.fmt = fmt; + vaf.va = &args; + + printk("%s %pV", IST30XX_DEBUG_TAG, &vaf); + + va_end(args); +} + +long get_milli_second(void) +{ + ktime_get_ts(&t_current); + + return t_current.tv_sec * 1000 + t_current.tv_nsec / 1000000; +} + +int ist30xx_intr_wait(struct ist30xx_data *data, long ms) +{ + long start_ms = get_milli_second(); + long curr_ms = 0; + + while (1) { + if (!data->irq_working) + break; + + curr_ms = get_milli_second(); + if ((curr_ms < 0) || (start_ms < 0) || (curr_ms - start_ms > ms)) { + tsp_info("%s() timeout(%dms)\n", __func__, ms); + return -EPERM; + } + + msleep(2); + } + + return 0; +} + +void ist30xx_disable_irq(struct ist30xx_data *data) +{ + if (likely(data->irq_enabled)) { + ist30xx_tracking(TRACK_INTR_DISABLE); + disable_irq(data->client->irq); + data->irq_enabled = 0; + data->status.event_mode = false; + } +} + +void ist30xx_enable_irq(struct ist30xx_data *data) +{ + if (likely(!data->irq_enabled)) { + ist30xx_tracking(TRACK_INTR_ENABLE); + enable_irq(data->client->irq); + msleep(10); + data->irq_enabled = 1; + data->status.event_mode = true; + } +} + +void ist30xx_scheduled_reset(struct ist30xx_data *data) +{ + if (likely(data->initialized)) + schedule_delayed_work(&data->work_reset_check, 0); +} + +static void ist30xx_request_reset(struct ist30xx_data *data) +{ + data->irq_err_cnt++; + if (unlikely(data->irq_err_cnt >= data->max_irq_err_cnt)) { + tsp_info("%s()\n", __func__); + ist30xx_scheduled_reset(data); + data->irq_err_cnt = 0; + } +} + +#define NOISE_MODE_TA (0) +#define NOISE_MODE_CALL (1) +#define NOISE_MODE_COVER (2) +#define NOISE_MODE_POWER (8) +void ist30xx_start(struct ist30xx_data *data) +{ + if (data->initialized) { + data->scan_count = 0; + data->scan_retry = 0; + mod_timer(&event_timer, get_jiffies_64() + EVENT_TIMER_INTERVAL * 2); + } + + ist30xx_write_cmd(data->client, IST30XX_HIB_CMD, + ((eHCOM_SET_MODE_SPECIAL << 16) | (data->noise_mode & 0xFFFF))); + + ist30xx_write_cmd(data->client, IST30XX_HIB_CMD, + ((eHCOM_SET_LOCAL_MODEL << 16) | (TSP_LOCAL_CODE & 0xFFFF))); + + tsp_info("%s(), local : %d, mode : 0x%x\n", __func__, + TSP_LOCAL_CODE & 0xFFFF, data->noise_mode & 0xFFFF); + + if (data->report_rate >= 0) { + ist30xx_write_cmd(data->client, IST30XX_HIB_CMD, + ((eHCOM_SET_TIME_ACTIVE << 16) | (data->report_rate & 0xFFFF))); + tsp_info(" active rate : %dus\n", data->report_rate); + } + + if (data->idle_rate >= 0) { + ist30xx_write_cmd(data->client, IST30XX_HIB_CMD, + ((eHCOM_SET_TIME_IDLE << 16) | (data->idle_rate & 0xFFFF))); + tsp_info(" idle rate : %dus\n", data->idle_rate); + } + +#if IST30XX_JIG_MODE + if (data->jig_mode) { + ist30xx_write_cmd(data->client, IST30XX_HIB_CMD, + (eHCOM_SET_JIG_MODE << 16) | (IST30XX_JIG_TOUCH & 0xFFFF)); + tsp_info(" jig mode start\n"); + } + + if (data->debug_mode || data->jig_mode) { +#else + if (data->debug_mode) { +#endif + ist30xx_write_cmd(data->client, IST30XX_HIB_CMD, + (eHCOM_SLEEP_MODE_EN << 16) | (IST30XX_DISABLE & 0xFFFF)); + tsp_info(" debug mode start\n"); + } + + ist30xx_cmd_start_scan(data); +} + + +int ist30xx_get_ver_info(struct ist30xx_data *data) +{ + int ret; + + data->fw.prev.main_ver = data->fw.cur.main_ver; + data->fw.prev.fw_ver = data->fw.cur.fw_ver; + data->fw.prev.core_ver = data->fw.cur.core_ver; + data->fw.prev.test_ver = data->fw.cur.test_ver; + data->fw.cur.main_ver = 0; + data->fw.cur.fw_ver = 0; + data->fw.cur.core_ver = 0; + data->fw.cur.test_ver = 0; + + ret = ist30xx_cmd_hold(data->client, 1); + if (unlikely(ret)) + return ret; + + ret = ist30xx_read_reg(data->client, + IST30XX_DA_ADDR(eHCOM_GET_VER_MAIN), &data->fw.cur.main_ver); + if (unlikely(ret)) + goto err_get_ver; + + ret = ist30xx_read_reg(data->client, + IST30XX_DA_ADDR(eHCOM_GET_VER_FW), &data->fw.cur.fw_ver); + if (unlikely(ret)) + goto err_get_ver; + + ret = ist30xx_read_reg(data->client, + IST30XX_DA_ADDR(eHCOM_GET_VER_CORE), &data->fw.cur.core_ver); + if (unlikely(ret)) + goto err_get_ver; + + ret = ist30xx_read_reg(data->client, + IST30XX_DA_ADDR(eHCOM_GET_VER_TEST), &data->fw.cur.test_ver); + if (unlikely(ret)) + goto err_get_ver; + + ret = ist30xx_cmd_hold(data->client, 0); + if (unlikely(ret)) + goto err_get_ver; + + tsp_info("IC version main: %x, fw: %x, test: %x, core: %x\n", + data->fw.cur.main_ver, data->fw.cur.fw_ver, data->fw.cur.test_ver, + data->fw.cur.core_ver); + + return 0; + +err_get_ver: + ist30xx_reset(data, false); + + return ret; +} + +#define CALIB_MSG_MASK (0xF0000FFF) +#define CALIB_MSG_VALID (0x80000CAB) +#define TRACKING_INTR_VALID (0x127EA597) +u32 tracking_intr_value = TRACKING_INTR_VALID; +int ist30xx_get_info(struct ist30xx_data *data) +{ + int ret; + u32 calib_msg; + u32 ms; + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + +#if IST30XX_INTERNAL_BIN +#if IST30XX_UPDATE_BY_WORKQUEUE + ist30xx_get_update_info(data, data->fw.buf, data->fw.buf_size); +#endif + ist30xx_get_tsp_info(data); +#else + ret = ist30xx_get_ver_info(data); + if (unlikely(ret)) + goto get_info_end; + + ret = ist30xx_get_tsp_info(data); + if (unlikely(ret)) + goto get_info_end; +#endif // IST30XX_INTERNAL_BIN + + ist30xx_print_info(data); + + ret = ist30xx_read_cmd(data, eHCOM_GET_CAL_RESULT, &calib_msg); + if (likely(ret == 0)) { + tsp_info("calib status: 0x%08x\n", calib_msg); + ms = get_milli_second(); + ist30xx_put_track_ms(ms); + ist30xx_put_track(&tracking_intr_value, 1); + ist30xx_put_track(&calib_msg, 1); + if ((calib_msg & CALIB_MSG_MASK) != CALIB_MSG_VALID || + CALIB_TO_STATUS(calib_msg) > 0) { + ist30xx_calibrate(data, IST30XX_MAX_RETRY_CNT); + } + } + +#if IST30XX_CHECK_CALIB + if (likely(!data->status.update)) { + ret = ist30xx_cmd_check_calib(data->client); + if (likely(!ret)) { + data->status.calib = 1; + data->status.calib_msg = 0; + event_ms = (u32)get_milli_second(); + data->status.event_mode = true; + } + } +#else + ist30xx_start(data); +#endif + +#if !(IST30XX_INTERNAL_BIN) +get_info_end: +#endif + + ist30xx_enable_irq(data); + mutex_unlock(&ist30xx_mutex); + + return ret; +} + +#if IST30XX_GESTURE +#define GESTURE_MAGIC_STRING (0x4170CF00) +#define GESTURE_MAGIC_MASK (0xFFFFFF00) +#define GESTURE_MESSAGE_MASK (~GESTURE_MAGIC_MASK) +#define PARSE_GESTURE_MESSAGE(n) \ + ((n & GESTURE_MAGIC_MASK) == GESTURE_MAGIC_STRING ? \ + (n & GESTURE_MESSAGE_MASK) : -EINVAL) +void ist30xx_gesture_cmd(struct ist30xx_data *data, int cmd) +{ + tsp_info("Gesture cmd: %d\n", cmd); + + switch (cmd) { + case 0x01: + input_report_key(data->input_dev, KEY_VOLUMEUP, 1); + input_sync(data->input_dev); + input_report_key(data->input_dev, KEY_VOLUMEUP, 0); + input_sync(data->input_dev); + break; + + case 0x02: + input_report_key(data->input_dev, KEY_VOLUMEDOWN, 1); + input_sync(data->input_dev); + input_report_key(data->input_dev, KEY_VOLUMEDOWN, 0); + input_sync(data->input_dev); + break; + + case 0x03: + input_report_key(data->input_dev, KEY_PREVIOUSSONG, 1); + input_sync(data->input_dev); + input_report_key(data->input_dev, KEY_PREVIOUSSONG, 0); + input_sync(data->input_dev); + break; + + case 0x04: + input_report_key(data->input_dev, KEY_NEXTSONG, 1); + input_sync(data->input_dev); + input_report_key(data->input_dev, KEY_NEXTSONG, 0); + input_sync(data->input_dev); + break; + + case 0x11: + input_report_key(data->input_dev, KEY_PLAYPAUSE, 1); + input_sync(data->input_dev); + input_report_key(data->input_dev, KEY_PLAYPAUSE, 0); + input_sync(data->input_dev); + break; + + case 0x12: + input_report_key(data->input_dev, KEY_SCREENLOCK, 1); + input_sync(data->input_dev); + input_report_key(data->input_dev, KEY_SCREENLOCK, 0); + input_sync(data->input_dev); + break; + + case 0x13: + input_report_key(data->input_dev, KEY_PLAYPAUSE, 1); + input_sync(data->input_dev); + input_report_key(data->input_dev, KEY_PLAYPAUSE, 0); + input_sync(data->input_dev); + break; + + case 0x14: + input_report_key(data->input_dev, KEY_PLAYPAUSE, 1); + input_sync(data->input_dev); + input_report_key(data->input_dev, KEY_PLAYPAUSE, 0); + input_sync(data->input_dev); + break; + + case 0x21: + input_report_key(data->input_dev, KEY_MUTE, 1); + input_sync(data->input_dev); + input_report_key(data->input_dev, KEY_MUTE, 0); + input_sync(data->input_dev); + break; + + default: + break; + } +} +#endif + +#define PRESS_MSG_MASK (0x01) +#define MULTI_MSG_MASK (0x02) +#define TOUCH_DOWN_MESSAGE ("p") +#define TOUCH_UP_MESSAGE ("r") +#define TOUCH_MOVE_MESSAGE (" ") +bool tsp_touched[IST30XX_MAX_MT_FINGERS] = { false, }; +void print_tsp_event(struct ist30xx_data *data, finger_info *finger) +{ + int idx = finger->bit_field.id - 1; + bool press; + + press = PRESSED_FINGER(data->t_status, finger->bit_field.id); + + if (press) { + if (tsp_touched[idx] == false) { // touch down + tsp_noti("%s%d (%d, %d)\n", + TOUCH_DOWN_MESSAGE, finger->bit_field.id, + finger->bit_field.x, finger->bit_field.y); + tsp_touched[idx] = true; + } else { // touch move + tsp_debug("%s%d (%d, %d)\n", + TOUCH_MOVE_MESSAGE, finger->bit_field.id, + finger->bit_field.x, finger->bit_field.y); + } + } else { + if (tsp_touched[idx] == true) { // touch up + tsp_noti("%s%d\n", TOUCH_UP_MESSAGE, finger->bit_field.id); + tsp_touched[idx] = false; + } + } +} +#if IST30XX_USE_KEY +#define PRESS_MSG_KEY (0x06) +bool tkey_pressed[IST30XX_MAX_KEYS] = { false, }; +void print_tkey_event(struct ist30xx_data *data, int id) +{ + int idx = id - 1; + bool press = PRESSED_KEY(data->t_status, id); + + if (press) { + if (tkey_pressed[idx] == false) { // tkey down + tsp_noti("k %s%d\n", TOUCH_DOWN_MESSAGE, id); + tkey_pressed[idx] = true; + } + } else { + if (tkey_pressed[idx] == true) { // tkey up + tsp_noti("k %s%d\n", TOUCH_UP_MESSAGE, id); + tkey_pressed[idx] = false; + } + } +} +#endif +static void release_finger(struct ist30xx_data *data, int id) +{ + input_mt_slot(data->input_dev, id - 1); + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, false); + + ist30xx_tracking(TRACK_POS_FINGER + id); + tsp_info("%s() %d\n", __func__, id); + + tsp_touched[id - 1] = false; + + input_sync(data->input_dev); +} + +#if IST30XX_USE_KEY +#define CANCEL_KEY (0xFF) +#define RELEASE_KEY (0) +static void release_key(struct ist30xx_data *data, int id, u8 key_status) +{ + input_report_key(data->input_dev, ist30xx_key_code[id], key_status); + + ist30xx_tracking(TRACK_POS_KEY + id); + tsp_info("%s() key%d, status: %d\n", __func__, id, key_status); + + tkey_pressed[id - 1] = false; + + input_sync(data->input_dev); +} +#endif +static void clear_input_data(struct ist30xx_data *data) +{ + int id = 1; + u32 status; + + status = PARSE_FINGER_STATUS(data->t_status); + while (status) { + if (status & 1) + release_finger(data, id); + status >>= 1; + id++; + } +#if IST30XX_USE_KEY + id = 1; + status = PARSE_KEY_STATUS(data->t_status); + while (status) { + if (status & 1) + release_key(data, id, RELEASE_KEY); + status >>= 1; + id++; + } +#endif + data->t_status = 0; +} + +static int check_report_fingers(struct ist30xx_data *data, int finger_counts) +{ + int i; + finger_info *fingers = (finger_info *)data->fingers; + + /* current finger info */ + for (i = 0; i < finger_counts; i++) { + if (unlikely((fingers[i].bit_field.x >= IST30XX_MAX_X) || + (fingers[i].bit_field.y >= IST30XX_MAX_Y))) { + tsp_warn("Invalid touch data - %d: %d(%d, %d), 0x%08x\n", i, + fingers[i].bit_field.id, + fingers[i].bit_field.x, + fingers[i].bit_field.y, + fingers[i].full_field); + fingers[i].bit_field.id = 0; + ist30xx_tracking(TRACK_POS_UNKNOWN); + return -EPERM; + } + } + + return 0; +} + +static int check_valid_coord(u32 *msg, int cnt) +{ + u8 *buf = (u8 *)msg; + u8 chksum1 = msg[0] >> 24; + u8 chksum2 = 0; + u32 tmp = msg[0]; + + msg[0] &= 0x00FFFFFF; + + cnt *= IST30XX_DATA_LEN; + + while (cnt--) + chksum2 += *buf++; + + msg[0] = tmp; + + if (chksum1 != chksum2) { + tsp_err("intr chksum: %02x, %02x\n", chksum1, chksum2); + return -EPERM; + } + + return 0; +} + +static void report_input_data(struct ist30xx_data *data, int finger_counts, + int key_counts) +{ + int id; + bool press = false; + finger_info *fingers = (finger_info *)data->fingers; +#if IST30XX_JIG_MODE + u32 *z_values = (u32 *)data->z_values; +#endif + int idx = 0; + u32 status; + + status = PARSE_FINGER_STATUS(data->t_status); + for (id = 0; id < IST30XX_MAX_MT_FINGERS; id++) { + press = (status & (1 << id)) ? true : false; + + input_mt_slot(data->input_dev, id); + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, press); + + fingers[idx].bit_field.id = id + 1; + print_tsp_event(data, &fingers[idx]); + + if (press == false) + continue; + + input_report_abs(data->input_dev, ABS_MT_POSITION_X, + fingers[idx].bit_field.x); + input_report_abs(data->input_dev, ABS_MT_POSITION_Y, + fingers[idx].bit_field.y); + input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, + fingers[idx].bit_field.area); +#if IST30XX_JIG_MODE + if (data->jig_mode) + input_report_abs(data->input_dev, ABS_MT_PRESSURE, z_values[idx]); +#endif + idx++; + } + +#if IST30XX_USE_KEY + status = PARSE_KEY_STATUS(data->t_status); + for (id = 0; id < IST30XX_MAX_KEYS; id++) { + press = (status & (1 << id)) ? true : false; + + input_report_key(data->input_dev, ist30xx_key_code[id + 1], press); + + print_tkey_event(data, id + 1); + } +#endif // IST30XX_USE_KEY + + data->irq_err_cnt = 0; + data->scan_retry = 0; + + input_sync(data->input_dev); +} + +/* + * CMD : CMD_GET_COORD + * + * 1st [31:24] [23:21] [20:16] [15:12] [11:10] [9:0] + * Checksum KeyCnt KeyStatus FingerCnt Rsvd. FingerStatus + * 2nd [31:28] [27:24] [23:12] [11:0] + * ID Area X Y + */ +#define TRACKING_INTR_DEBUG1_VALID (0x127A6E81) +#define TRACKING_INTR_DEBUG2_VALID (0x127A6E82) +#define TRACKING_INTR_DEBUG3_VALID (0x127A6E83) +u32 tracking_intr_debug_value = 0; +u32 intr_debug_addr, intr_debug2_addr, intr_debug3_addr = 0; +u32 intr_debug_size, intr_debug2_size, intr_debug3_size = 0; +static irqreturn_t ist30xx_irq_thread(int irq, void *ptr) +{ + int i, ret; + int key_cnt, finger_cnt, read_cnt; + struct ist30xx_data *data = (struct ist30xx_data *)ptr; + int offset = 1; +#if IST30XX_STATUS_DEBUG + u32 touch_status; +#endif + u32 t_status; + u32 msg[IST30XX_MAX_MT_FINGERS * 2 + offset]; + u32 ms; + + data->irq_working = true; + + if (unlikely(!data->irq_enabled)) + goto irq_end; + + ms = get_milli_second(); + + if (intr_debug_addr >= 0 && intr_debug_size > 0) { + tsp_noti("Intr_debug (addr: 0x%08x)\n", intr_debug_addr); + ist30xx_burst_read(data->client, IST30XX_DA_ADDR(intr_debug_addr), + &msg[0], intr_debug_size, true); + + for (i = 0; i < intr_debug_size; i++) { + tsp_noti("\t%08x\n", msg[i]); + } + + tracking_intr_debug_value = TRACKING_INTR_DEBUG1_VALID; + ist30xx_put_track_ms(ms); + ist30xx_put_track(&tracking_intr_debug_value, 1); + ist30xx_put_track(msg, intr_debug_size); + } + + if (intr_debug2_addr >= 0 && intr_debug2_size > 0) { + tsp_noti("Intr_debug2 (addr: 0x%08x)\n", intr_debug2_addr); + ist30xx_burst_read(data->client, IST30XX_DA_ADDR(intr_debug2_addr), + &msg[0], intr_debug2_size, true); + + for (i = 0; i < intr_debug2_size; i++) { + tsp_noti("\t%08x\n", msg[i]); + } + + tracking_intr_debug_value = TRACKING_INTR_DEBUG2_VALID; + ist30xx_put_track_ms(ms); + ist30xx_put_track(&tracking_intr_debug_value, 1); + ist30xx_put_track(msg, intr_debug2_size); + } + + memset(msg, 0, sizeof(msg)); + + ret = ist30xx_read_reg(data->client, IST30XX_HIB_INTR_MSG, msg); + if (unlikely(ret)) + goto irq_err; + + tsp_verb("intr msg: 0x%08x\n", *msg); + + // TSP IC Exception + if (unlikely((*msg & IST30XX_EXCEPT_MASK) == IST30XX_EXCEPT_VALUE)) { + tsp_err("Occured IC exception(0x%02X)\n", *msg & 0xFF); +#if I2C_BURST_MODE + ret = ist30xx_burst_read(data->client, + IST30XX_HIB_COORD, &msg[offset], IST30XX_MAX_EXCEPT_SIZE, true); +#else + for (i = 0; i < IST30XX_MAX_EXCEPT_SIZE; i++) { + ret = ist30xx_read_reg(data->client, + IST30XX_HIB_COORD + (i * 4), &msg[i + offset]); + } +#endif + if (unlikely(ret)) + tsp_err(" exception value read error(%d)\n", ret); + else + tsp_err(" exception value : 0x%08X, 0x%08X\n", msg[1], msg[2]); + + goto irq_ic_err; + } + + if (unlikely(*msg == 0 || *msg == 0xFFFFFFFF)) // Unknown CMD + goto irq_err; + + event_ms = ms; + ist30xx_put_track_ms(event_ms); + ist30xx_put_track(&tracking_intr_value, 1); + ist30xx_put_track(msg, 1); + + if (unlikely((*msg & CALIB_MSG_MASK) == CALIB_MSG_VALID)) { + data->status.calib_msg = *msg; + tsp_info("calib status: 0x%08x\n", data->status.calib_msg); + + goto irq_end; + } + +#if IST30XX_CMCS_TEST + if (unlikely(*msg == IST30XX_CMCS_MSG_VALID)) { + data->status.cmcs = 1; + tsp_info("cmcs status: 0x%08x\n", *msg); + + goto irq_end; + } +#endif + +#if IST30XX_GESTURE + ret = PARSE_GESTURE_MESSAGE(*msg); + if (unlikely(ret > 0)) { + tsp_info("Gesture ID: %d (0x%08x)\n", ret, *msg); + ist30xx_gesture_cmd(data, ret); + + goto irq_end; + } +#endif + +#if IST30XX_STATUS_DEBUG + ret = ist30xx_read_reg(data->client, + IST30XX_HIB_TOUCH_STATUS, &touch_status); + + if (ret == 0) { + tsp_debug("ALG : 0x%08X\n", touch_status); + } + + memset(data->fingers, 0, sizeof(data->fingers)); +#endif + + /* Unknown interrupt data for extend coordinate */ + if (unlikely(!CHECK_INTR_STATUS(*msg))) + goto irq_err; + + t_status = *msg; + key_cnt = PARSE_KEY_CNT(t_status); + finger_cnt = PARSE_FINGER_CNT(t_status); + + if (unlikely((finger_cnt > data->max_fingers) || + (key_cnt > data->max_keys))) { + tsp_warn("Invalid touch count - finger: %d(%d), key: %d(%d)\n", + finger_cnt, data->max_fingers, key_cnt, data->max_keys); + goto irq_err; + } + + if (finger_cnt > 0) { +#if I2C_BURST_MODE + ret = ist30xx_burst_read(data->client, + IST30XX_HIB_COORD, &msg[offset], finger_cnt, true); + if (unlikely(ret)) + goto irq_err; + + for (i = 0; i < finger_cnt; i++) + data->fingers[i].full_field = msg[i + offset]; +#else + for (i = 0; i < finger_cnt; i++) { + ret = ist30xx_read_reg(data->client, + IST30XX_HIB_COORD + (i * 4), &msg[i + offset]); + if (unlikely(ret)) + goto irq_err; + + data->fingers[i].full_field = msg[i + offset]; + } +#endif // I2C_BURST_MODE + +#if IST30XX_JIG_MODE + if (data->jig_mode) { + // z-values ram address define + ret = ist30xx_burst_read(data->client, + IST30XX_DA_ADDR(data->tags.zvalue_base), + data->z_values, finger_cnt, true); + } +#endif + ist30xx_put_track(msg + offset, finger_cnt); + for (i = 0; i < finger_cnt; i++) { +#if IST30XX_JIG_MODE + if (data->jig_mode) + tsp_verb("intr msg(%d): 0x%08x, %d\n", + i + offset, msg[i + offset], data->z_values[i]); + else +#endif + tsp_verb("intr msg(%d): 0x%08x\n", i + offset, msg[i + offset]); + } + } + + read_cnt = finger_cnt + 1; + + ret = check_valid_coord(&msg[0], read_cnt); + if (unlikely(ret)) + goto irq_err; + + ret = check_report_fingers(data, finger_cnt); + if (unlikely(ret)) + goto irq_err; + + data->t_status = t_status; + report_input_data(data, finger_cnt, key_cnt); + + if (intr_debug3_addr >= 0 && intr_debug3_size > 0) { + tsp_noti("Intr_debug3 (addr: 0x%08x)\n", intr_debug3_addr); + ist30xx_burst_read(data->client, IST30XX_DA_ADDR(intr_debug3_addr), + &msg[0], intr_debug3_size, true); + + for (i = 0; i < intr_debug3_size; i++) { + tsp_noti("\t%08x\n", msg[i]); + } + + tracking_intr_debug_value = TRACKING_INTR_DEBUG3_VALID; + ist30xx_put_track_ms(ms); + ist30xx_put_track(&tracking_intr_debug_value, 1); + ist30xx_put_track(msg, intr_debug3_size); + } + + goto irq_end; + +irq_err: + tsp_err("intr msg: 0x%08x, ret: %d\n", msg[0], ret); + ist30xx_request_reset(data); +irq_end: + data->irq_working = false; + event_ms = (u32)get_milli_second(); + return IRQ_HANDLED; + +irq_ic_err: + ist30xx_scheduled_reset(data); + data->irq_working = false; + event_ms = (u32)get_milli_second(); + return IRQ_HANDLED; +} + +static int ist30xx_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct ist30xx_data *data = i2c_get_clientdata(client); + + del_timer(&event_timer); + cancel_delayed_work_sync(&data->work_noise_protect); + cancel_delayed_work_sync(&data->work_reset_check); + cancel_delayed_work_sync(&data->work_debug_algorithm); + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + ist30xx_internal_suspend(data); + clear_input_data(data); +#if IST30XX_GESTURE + if (data->gesture) { + ist30xx_start(data); + data->status.noise_mode = false; + ist30xx_enable_irq(data); + } +#endif + mutex_unlock(&ist30xx_mutex); + + return 0; +} + +static int ist30xx_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct ist30xx_data *data = i2c_get_clientdata(client); + + data->noise_mode |= (1 << NOISE_MODE_POWER); + + mutex_lock(&ist30xx_mutex); + ist30xx_internal_resume(data); + ist30xx_start(data); + ist30xx_enable_irq(data); + mutex_unlock(&ist30xx_mutex); + + return 0; +} + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void ist30xx_early_suspend(struct early_suspend *h) +{ + struct ist30xx_data *data = container_of(h, struct ist30xx_data, + early_suspend); + + ist30xx_suspend(&data->client->dev); +} +static void ist30xx_late_resume(struct early_suspend *h) +{ + struct ist30xx_data *data = container_of(h, struct ist30xx_data, + early_suspend); + + ist30xx_resume(&data->client->dev); +} +#endif + +void ist30xx_set_ta_mode(bool mode) +{ + tsp_info("%s(), mode = %d\n", __func__, mode); + + if (unlikely(mode == ((ts_data->noise_mode >> NOISE_MODE_TA) & 1))) + return; + + if (mode) + ts_data->noise_mode |= (1 << NOISE_MODE_TA); + else + ts_data->noise_mode &= ~(1 << NOISE_MODE_TA); + +#if IST30XX_TA_RESET + if (unlikely(ts_data->initialized)) + ist30xx_scheduled_reset(ts_data); +#else + ist30xx_write_cmd(ts_data->client, IST30XX_HIB_CMD, + ((eHCOM_SET_MODE_SPECIAL << 16) | (ts_data->noise_mode & 0xFFFF))); +#endif + + ist30xx_tracking(mode ? TRACK_CMD_TACON : TRACK_CMD_TADISCON); +} +EXPORT_SYMBOL(ist30xx_set_ta_mode); + +void ist30xx_set_call_mode(int mode) +{ + tsp_info("%s(), mode = %d\n", __func__, mode); + + if (unlikely(mode == ((ts_data->noise_mode >> NOISE_MODE_CALL) & 1))) + return; + + if (mode) + ts_data->noise_mode |= (1 << NOISE_MODE_CALL); + else + ts_data->noise_mode &= ~(1 << NOISE_MODE_CALL); + +#if IST30XX_TA_RESET + if (unlikely(ts_data->initialized)) + ist30xx_scheduled_reset(ts_data); +#else + ist30xx_write_cmd(ts_data->client, IST30XX_HIB_CMD, + ((eHCOM_SET_MODE_SPECIAL << 16) | (ts_data->noise_mode & 0xFFFF))); +#endif + + ist30xx_tracking(mode ? TRACK_CMD_CALL : TRACK_CMD_NOTCALL); +} +EXPORT_SYMBOL(ist30xx_set_call_mode); + +void ist30xx_set_cover_mode(int mode) +{ + tsp_info("%s(), mode = %d\n", __func__, mode); + + if (unlikely(mode == ((ts_data->noise_mode >> NOISE_MODE_COVER) & 1))) + return; + + if (mode) + ts_data->noise_mode |= (1 << NOISE_MODE_COVER); + else + ts_data->noise_mode &= ~(1 << NOISE_MODE_COVER); + +#if IST30XX_TA_RESET + if (unlikely(ts_data->initialized)) + ist30xx_scheduled_reset(ts_data); +#else + ist30xx_write_cmd(ts_data->client, IST30XX_HIB_CMD, + ((eHCOM_SET_MODE_SPECIAL << 16) | (ts_data->noise_mode & 0xFFFF))); +#endif + + ist30xx_tracking(mode ? TRACK_CMD_COVER : TRACK_CMD_NOTCOVER); +} +EXPORT_SYMBOL(ist30xx_set_cover_mode); + +static void reset_work_func(struct work_struct *work) +{ + struct delayed_work *delayed_work = to_delayed_work(work); + struct ist30xx_data *data = container_of(delayed_work, + struct ist30xx_data, work_reset_check); + + if (unlikely((data == NULL) || (data->client == NULL))) + return; + + tsp_info("Request reset function\n"); + + if (likely((data->initialized == 1) && (data->status.power == 1) && + (data->status.update != 1) && (data->status.calib != 1))) { + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); +#if IST30XX_GESTURE + if (data->suspend) + ist30xx_internal_suspend(data); + else +#endif + ist30xx_reset(data, false); + + clear_input_data(data); + ist30xx_start(data); +#if IST30XX_GESTURE + if (data->gesture && data->suspend) + data->status.noise_mode = false; +#endif + ist30xx_enable_irq(data); + mutex_unlock(&ist30xx_mutex); + } +} + +#if IST30XX_INTERNAL_BIN +#if IST30XX_UPDATE_BY_WORKQUEUE +static void fw_update_func(struct work_struct *work) +{ + struct delayed_work *delayed_work = to_delayed_work(work); + struct ist30xx_data *data = container_of(delayed_work, + struct ist30xx_data, work_fw_update); + + if (unlikely((data == NULL) || (data->client == NULL))) + return; + + tsp_info("FW update function\n"); + + if (likely(ist30xx_auto_bin_update(data))) + ist30xx_disable_irq(data); +} +#endif // IST30XX_UPDATE_BY_WORKQUEUE +#endif // IST30XX_INTERNAL_BIN + +#define TOUCH_STATUS_MAGIC (0x00000075) +#define TOUCH_STATUS_MASK (0x000000FF) +#define FINGER_ENABLE_MASK (0x00100000) +#define SCAN_CNT_MASK (0xFFE00000) +#define GET_FINGER_ENABLE(n) ((n & FINGER_ENABLE_MASK) >> 20) +#define GET_SCAN_CNT(n) ((n & SCAN_CNT_MASK) >> 21) +u32 ist30xx_algr_addr = 0, ist30xx_algr_size = 0; +static void noise_work_func(struct work_struct *work) +{ + int ret; + u32 touch_status = 0; + u32 scan_count = 0; + struct delayed_work *delayed_work = to_delayed_work(work); + struct ist30xx_data *data = container_of(delayed_work, + struct ist30xx_data, work_noise_protect); + + ret = ist30xx_read_reg(data->client, + IST30XX_HIB_TOUCH_STATUS, &touch_status); + if (unlikely(ret)) { + tsp_warn("Touch status read fail!\n"); + goto retry_timer; + } + + ist30xx_put_track_ms(timer_ms); + ist30xx_put_track(&touch_status, 1); + + tsp_verb("Touch Info: 0x%08x\n", touch_status); + + /* Check valid scan count */ + if (unlikely((touch_status & TOUCH_STATUS_MASK) != TOUCH_STATUS_MAGIC)) { + tsp_warn("Touch status is not corrected! (0x%08x)\n", touch_status); + goto retry_timer; + } + + /* Status of IC is idle */ + if (GET_FINGER_ENABLE(touch_status) == 0) { + if ((PARSE_FINGER_CNT(data->t_status) > 0) || + (PARSE_KEY_CNT(data->t_status) > 0)) + clear_input_data(data); + } + + scan_count = GET_SCAN_CNT(touch_status); + + /* Status of IC is lock-up */ + if (unlikely(scan_count == data->scan_count)) { + tsp_warn("TSP IC is not responded! (0x%08x)\n", scan_count); + goto retry_timer; + } + + data->scan_retry = 0; + data->scan_count = scan_count; + return; + +retry_timer: + data->scan_retry++; + tsp_warn("Retry touch status!(%d)\n", data->scan_retry); + + if (unlikely(data->scan_retry == data->max_scan_retry)) { + ist30xx_scheduled_reset(data); + data->scan_retry = 0; + } +} + +static void debug_work_func(struct work_struct *work) +{ +#if IST30XX_ALGORITHM_MODE + int ret = -EPERM; + int i; + u32 *buf32; + + struct delayed_work *delayed_work = to_delayed_work(work); + struct ist30xx_data *data = container_of(delayed_work, + struct ist30xx_data, work_debug_algorithm); + + buf32 = kzalloc(ist30xx_algr_size, GFP_KERNEL); + + for (i = 0; i < ist30xx_algr_size; i++) { + ret = ist30xx_read_buf(data->client, + ist30xx_algr_addr + IST30XX_DATA_LEN * i, &buf32[i], 1); + if (ret) { + tsp_warn("Algorithm mem addr read fail!\n"); + return; + } + } + + ist30xx_put_track(buf32, ist30xx_algr_size); + + tsp_debug(" 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x\n", + buf32[0], buf32[1], buf32[2], buf32[3], buf32[4]); +#endif +} + +void timer_handler(unsigned long timer_data) +{ + struct ist30xx_data *data = (struct ist30xx_data *)timer_data; + struct ist30xx_status *status = &data->status; + + if (data->irq_working) + goto restart_timer; + + if (status->event_mode) { + if (likely((status->power == 1) && (status->update != 1))) { + timer_ms = (u32)get_milli_second(); + if (unlikely(status->calib == 1)) { // Check calibration + if ((status->calib_msg & CALIB_MSG_MASK) == CALIB_MSG_VALID) { + tsp_info("Calibration check OK!!\n"); + schedule_delayed_work(&data->work_reset_check, 0); + status->calib = 0; + } else if (timer_ms - event_ms >= 3000) { // 3second + tsp_info("calibration timeout over 3sec\n"); + schedule_delayed_work(&data->work_reset_check, 0); + status->calib = 0; + } + } else if (likely(status->noise_mode)) { + if (timer_ms - event_ms > 100) // 100ms after last interrupt + schedule_delayed_work(&data->work_noise_protect, 0); + } + +#if IST30XX_ALGORITHM_MODE + if ((ist30xx_algr_addr >= IST30XX_DIRECT_ACCESS) && + (ist30xx_algr_size > 0)) { + if (timer_ms - event_ms > 100) // 100ms after last interrupt + schedule_delayed_work(&data->work_debug_algorithm, 0); + } +#endif + } + } + +restart_timer: + mod_timer(&event_timer, get_jiffies_64() + EVENT_TIMER_INTERVAL); +} + +extern struct class *ist30xx_class; +#if SEC_FACTORY_MODE +extern struct class *sec_class; +extern int sec_touch_sysfs(struct ist30xx_data *data); +extern int sec_fac_cmd_init(struct ist30xx_data *data); +#endif +static int ist30xx_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + int ret; + int retry = 3; +#ifdef CONFIG_OF + struct device_node *np = client->dev.of_node; + struct ist30xx_platform_data *pdata; +#endif + struct ist30xx_data *data; + struct input_dev *input_dev; + int ist_gpio = 0; + + tsp_info("### IMAGIS probe(ver:%s, protocol:%X, addr:0x%02X) ###\n", + IMAGIS_DD_VERSION, IMAGIS_PROTOCOL_B, client->addr); + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + printk(KERN_INFO "i2c_check_functionality error\n"); + return -EIO; + } + + data = kzalloc(sizeof(*data), GFP_KERNEL); + if (!data) + return -ENOMEM; + +#ifdef CONFIG_OF + // TODO: load device tree + tsp_info("the client->dev.of_node=0x%x\n", client->dev.of_node); + + if (client->dev.of_node){ + ist_gpio = of_get_gpio(np, 0); + of_property_read_string(np, "tsp_pwr_name", &ist_vdd_name); + tsp_info("gpio id=%d,power name:%s\n", ist_gpio,ist_vdd_name); + } +#endif + + input_dev = input_allocate_device(); + if (unlikely(!input_dev)) { + ret = -ENOMEM; + tsp_err("%s(), input_allocate_device failed (%d)\n", + __func__, ret); + goto err_alloc_dev; + } + +#ifndef CONFIG_OF + ist_gpio = 82; + ist_vdd_name = "vddsim2"; +#endif + + /* configure touchscreen interrupt gpio */ + ret = gpio_request(ist_gpio, "ist30xx_irq_gpio"); + printk("[TSP]request gpio id = %d\n", ist_gpio); + if (ret) { + tsp_err("unable to request gpio.(%s)\r\n",input_dev->name); + goto err_init_drv; + } + client->irq = gpio_to_irq(ist_gpio); + tsp_info("client->irq : %d\n", client->irq); + data->max_fingers = IST30XX_MAX_MT_FINGERS; + data->max_keys = IST30XX_MAX_KEYS; + data->irq_enabled = 1; + data->client = client; + data->input_dev = input_dev; + i2c_set_clientdata(client, data); + + input_mt_init_slots(input_dev, IST30XX_MAX_MT_FINGERS, 0); + + input_dev->name = "ist30xx_ts_input"; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + + set_bit(EV_ABS, input_dev->evbit); + set_bit(INPUT_PROP_DIRECT, input_dev->propbit); + + input_set_abs_params(data->input_dev, ABS_MT_POSITION_X, + 0, IST30XX_MAX_X - 1, 0, 0); + input_set_abs_params(data->input_dev, ABS_MT_POSITION_Y, + 0, IST30XX_MAX_Y - 1, 0, 0); + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, IST30XX_MAX_W, 0, 0); +#if IST30XX_JIG_MODE + input_set_abs_params(input_dev, ABS_MT_PRESSURE, 0, 0, 0, 0); +#endif + +#if IST30XX_USE_KEY + { + int i; + set_bit(EV_KEY, input_dev->evbit); + set_bit(EV_SYN, input_dev->evbit); + for (i = 1; i < ARRAY_SIZE(ist30xx_key_code); i++) + set_bit(ist30xx_key_code[i], input_dev->keybit); + } + +#if IST30XX_GESTURE + input_set_capability(input_dev, EV_KEY, KEY_POWER); + input_set_capability(input_dev, EV_KEY, KEY_PLAYPAUSE); + input_set_capability(input_dev, EV_KEY, KEY_NEXTSONG); + input_set_capability(input_dev, EV_KEY, KEY_PREVIOUSSONG); + input_set_capability(input_dev, EV_KEY, KEY_VOLUMEUP); + input_set_capability(input_dev, EV_KEY, KEY_VOLUMEDOWN); + input_set_capability(input_dev, EV_KEY, KEY_MUTE); +#endif +#endif + + input_set_drvdata(input_dev, data); + ret = input_register_device(input_dev); + if (unlikely(ret)) { + input_free_device(input_dev); + goto err_reg_dev; + } + +#ifdef CONFIG_HAS_EARLYSUSPEND + data->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + data->early_suspend.suspend = ist30xx_early_suspend; + data->early_suspend.resume = ist30xx_late_resume; + register_early_suspend(&data->early_suspend); +#endif + + ts_data = data; + + ret = ist30xx_init_system(data); + if (unlikely(ret)) { + tsp_err("chip initialization failed\n"); + goto err_init_drv; + } + + ret = request_threaded_irq(client->irq, NULL, ist30xx_irq_thread, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, "ist30xx_ts", data); + if (unlikely(ret)) + goto err_init_drv; + + ist30xx_disable_irq(data); + + while (retry-- > 0) { + ret = ist30xx_read_cmd(data, IST30XX_REG_CHIPID, &data->chip_id); + data->chip_id &= 0xFFFF; + if (unlikely(ret == 0)) { + if ((data->chip_id == IST30XX_CHIP_ID) || + (data->chip_id == IST30XXC_DEFAULT_CHIP_ID) || + (data->chip_id == IST3048C_DEFAULT_CHIP_ID)) { + break; + } + } else if (unlikely(retry == 0)) { + goto err_irq; + } + + ist30xx_reset(data, false); + } + +#if (IMAGIS_TSP_IC < IMAGIS_IST3038C) + retry = 3; + data->tsp_type = TSP_TYPE_UNKNOWN; + while (retry-- > 0) { + ret = ist30xx_read_cmd(data, IST30XX_REG_TSPTYPE, &data->tsp_type); + if (likely(ret == 0)) { + data->tsp_type = IST30XX_PARSE_TSPTYPE(data->tsp_type); + tsp_info("tsptype: %x\n", data->tsp_type); + break; + } + + if (unlikely(retry == 0)) + goto err_irq; + } + + tsp_info("TSP IC: %x, TSP Vendor: %x\n", data->chip_id, data->tsp_type); +#else + tsp_info("TSP IC: %x\n", data->chip_id); +#endif + data->status.event_mode = false; + +#if IST30XX_INTERNAL_BIN +#if IST30XX_UPDATE_BY_WORKQUEUE + INIT_DELAYED_WORK(&data->work_fw_update, fw_update_func); + schedule_delayed_work(&data->work_fw_update, IST30XX_UPDATE_DELAY); +#else + ret = ist30xx_auto_bin_update(data); + if (unlikely(ret != 0)) + goto err_irq; +#endif // IST30XX_UPDATE_BY_WORKQUEUE +#endif // IST30XX_INTERNAL_BIN + + ret = ist30xx_init_update_sysfs(data); + if (unlikely(ret)) + goto err_sysfs; + +#if IST30XX_DEBUG + ret = ist30xx_init_misc_sysfs(data); + if (unlikely(ret)) + goto err_sysfs; +#endif + +#if IST30XX_CMCS_TEST + ret = ist30xx_init_cmcs_sysfs(data); + if (unlikely(ret)) + goto err_sysfs; +#endif + +#if IST30XX_TRACKING_MODE + ret = ist30xx_init_tracking_sysfs(); + if (unlikely(ret)) + goto err_sysfs; +#endif + +#if SEC_FACTORY_MODE + ret = sec_fac_cmd_init(data); + if (unlikely(ret)) + goto err_sysfs; + + ret = sec_touch_sysfs(data); + if (unlikely(ret)) + goto err_sysfs; +#endif + + // INIT VARIABLE (DEFAULT) +#if IST30XX_GESTURE + data->suspend = false; + data->gesture = false; +#endif + data->irq_working = false; + data->max_scan_retry = 2; + data->max_irq_err_cnt = MAX_ERR_CNT; + data->report_rate = -1; + data->idle_rate = -1; + + INIT_DELAYED_WORK(&data->work_reset_check, reset_work_func); + INIT_DELAYED_WORK(&data->work_noise_protect, noise_work_func); + INIT_DELAYED_WORK(&data->work_debug_algorithm, debug_work_func); + + init_timer(&event_timer); + event_timer.data = (unsigned long)data; + event_timer.function = timer_handler; + event_timer.expires = jiffies_64 + (EVENT_TIMER_INTERVAL); + mod_timer(&event_timer, get_jiffies_64() + EVENT_TIMER_INTERVAL * 2); + + ret = ist30xx_get_info(data); + tsp_info("Get info: %s\n", (ret == 0 ? "success" : "fail")); + + data->initialized = true; + + pm_runtime_enable(&client->dev); + + tsp_info("### IMAGIS probe success ###\n"); + + return 0; + +err_sysfs: + class_destroy(ist30xx_class); +err_irq: + tsp_info("ChipID: %x\n", data->chip_id); + ist30xx_disable_irq(data); + free_irq(client->irq, data); +err_init_drv: + data->status.event_mode = false; + ist30xx_power_off(data); +#ifdef CONFIG_HAS_EARLYSUSPEND + unregister_early_suspend(&data->early_suspend); +#endif + input_unregister_device(input_dev); +err_reg_dev: +err_alloc_dev: + kfree(data); + tsp_err("Error, ist30xx init driver\n"); + return -ENODEV; +} + + +static int ist30xx_remove(struct i2c_client *client) +{ + struct ist30xx_data *data = i2c_get_clientdata(client); + +#ifdef CONFIG_HAS_EARLYSUSPEND + unregister_early_suspend(&data->early_suspend); +#endif + + ist30xx_disable_irq(data); + free_irq(client->irq, data); + ist30xx_power_off(data); + + input_unregister_device(data->input_dev); + kfree(data); + + return 0; +} + +static void ist30xx_shutdown(struct i2c_client *client) +{ + struct ist30xx_data *data = i2c_get_clientdata(client); + + del_timer(&event_timer); + cancel_delayed_work_sync(&data->work_noise_protect); + cancel_delayed_work_sync(&data->work_reset_check); + cancel_delayed_work_sync(&data->work_debug_algorithm); + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + ist30xx_internal_suspend(data); + clear_input_data(data); + mutex_unlock(&ist30xx_mutex); +} + +static struct i2c_device_id ist30xx_idtable[] = { + { IST30XX_DEV_NAME, 0 }, + {}, +}; +MODULE_DEVICE_TABLE(i2c, ist30xx_idtable); + +#ifdef CONFIG_OF +static struct of_device_id ist30xx_match_table[] = { + { .compatible = "Imagis,IST30XXC", }, + { }, +}; +#else +#define ist30xx_match_table NULL +#endif + +#ifndef CONFIG_HAS_EARLYSUSPEND +static const struct dev_pm_ops ist30xx_pm_ops = { + SET_RUNTIME_PM_OPS(ist30xx_suspend, ist30xx_resume, NULL) +}; +#endif + +static struct i2c_driver ist30xx_i2c_driver = { + .id_table = ist30xx_idtable, + .probe = ist30xx_probe, + .remove = ist30xx_remove, + .shutdown = ist30xx_shutdown, + .driver = { + .owner = THIS_MODULE, + .name = IST30XX_DEV_NAME, + .of_match_table = ist30xx_match_table, +#ifndef CONFIG_HAS_EARLYSUSPEND + .pm = &ist30xx_pm_ops, +#endif + }, +}; + +static int __init ist30xx_init(void) +{ +#ifdef CONFIG_ARM64 + sec_class = class_create(THIS_MODULE, "sec"); + if (IS_ERR(sec_class)) { + pr_err("Failed to create class(sec)!\n"); + printk("Failed create class \n"); + return PTR_ERR(sec_class); + } +#endif + + return i2c_add_driver(&ist30xx_i2c_driver); +} + + +static void __exit ist30xx_exit(void) +{ + i2c_del_driver(&ist30xx_i2c_driver); +} + +module_init(ist30xx_init); +module_exit(ist30xx_exit); + +#if CONFIG_EXTCON_S2MM001B +static int extcon_notifier(struct notifier_block *nb, + unsigned long state, void *edev) +{ + ist30xx_set_ta_mode(extcon_get_state(edev)); + + return NOTIFY_OK; +} + +static int ta_init_detect(void) +{ + struct extcon_dev *edev = NULL; + static struct notifier_block nb; + + if (!ts_data) + return -EPERM; + + edev = extcon_get_extcon_dev("s2mm001b"); + if (!edev) { + pr_err("Failed to get extcon dev\n"); + return -ENXIO; + } + + nb.notifier_call = extcon_notifier; + + extcon_register_notifier(edev, &nb); + + return 0; +} +late_initcall(ta_init_detect); +#endif + +MODULE_DESCRIPTION("Imagis IST30XX touch driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/ist30xxc/ist30xxc.h b/drivers/input/touchscreen/ist30xxc/ist30xxc.h new file mode 100755 index 00000000..5c877fcf --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/ist30xxc.h @@ -0,0 +1,514 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XXC_H__ +#define __IST30XXC_H__ + +/* + * Support F/W ver : IST30xxC v1.0.0.0 + * Support IC : IST3026C, IST3032C + * Release : 2015.01.05 by Hoony + */ + +#define IMAGIS_DD_VERSION ("2.0.0.0") + +#define IMAGIS_IST3026C (1) /* 3026C */ +#define IMAGIS_IST3032C (2) /* 3032C */ +#define IMAGIS_IST3038C (3) /* 3038C */ +#define IMAGIS_IST3044C (4) /* 3044C */ +#define IMAGIS_IST3048C (5) /* 3048C */ + +#if defined(CONFIG_MACH_SS_SHARKLT8) || defined(CONFIG_MACH_SS_SHARKLT8LIGHTSLEEP) +#define IMAGIS_TSP_IC IMAGIS_IST3038C +#else +#define IMAGIS_TSP_IC IMAGIS_IST3032C +#endif + +#define TSP_CHIP_VENDOR ("IMAGIS") + +#define IMAGIS_PROTOCOL_A (0xA) +#define IMAGIS_PROTOCOL_B (0xB) +#define IMAGIS_PROTOCOL_TYPE IMAGIS_PROTOCOL_B + +#define IST30XXC_DEFAULT_CHIP_ID (0x300C) +#define IST3048C_DEFAULT_CHIP_ID (0x3048) +#if (IMAGIS_TSP_IC == IMAGIS_IST3026C) +#define TSP_CHIP_NAME ("IST3026C") +#define IST30XX_CHIP_ID (0x026C) +#define IST30XX_NODE_TOTAL_NUM (16 * 16) +#elif (IMAGIS_TSP_IC == IMAGIS_IST3032C) +#define TSP_CHIP_NAME ("IST3032C") +#define IST30XX_CHIP_ID (0x032C) +#define IST30XX_NODE_TOTAL_NUM (16 * 16) +#elif (IMAGIS_TSP_IC == IMAGIS_IST3038C) +#define TSP_CHIP_NAME ("IST3038C") +#define IST30XX_CHIP_ID (0x038C) +#define IST30XX_NODE_TOTAL_NUM (24 * 24) +#elif (IMAGIS_TSP_IC == IMAGIS_IST3044C) +#define TSP_CHIP_NAME ("IST3044C") +#define IST30XX_CHIP_ID (0x044C) +#define IST30XX_NODE_TOTAL_NUM (24 * 24) +#elif (IMAGIS_TSP_IC == IMAGIS_IST3048C) +#define TSP_CHIP_NAME ("IST3048C") +#define IST30XX_CHIP_ID (0x048C) +#define IST30XX_NODE_TOTAL_NUM (24 * 24) +#else +#define TSP_CHIP_NAME ("IST30XXC") +#define IST30XX_CHIP_ID (0x300C) +#define IST30XX_NODE_TOTAL_NUM (24 * 24) +#endif + +/* IST30XX FUNCTION ENABLE & DISABLE */ +#define IST30XX_INTERNAL_BIN (1) +#define IST30XX_CHECK_CALIB (0) +#if IST30XX_INTERNAL_BIN +#if (IMAGIS_TSP_IC < IMAGIS_IST3038C) +#define IST30XX_MULTIPLE_TSP (0) +#endif +#define IST30XX_UPDATE_BY_WORKQUEUE (0) +#define IST30XX_UPDATE_DELAY (3 * HZ) +#endif + +#define IST30XX_EVENT_MODE (1) +#if IST30XX_EVENT_MODE +#define IST30XX_NOISE_MODE (1) +#define IST30XX_TRACKING_MODE (1) +#define IST30XX_ALGORITHM_MODE (1) +#else +#define IST30XX_NOISE_MODE (0) // fixed +#define IST30XX_TRACKING_MODE (0) // fixed +#define IST30XX_ALGORITHM_MODE (0) // fixed +#endif + +#define IST30XX_TA_RESET (1) +#define IST30XX_USE_KEY (1) +#define IST30XX_DEBUG (1) +#define IST30XX_CMCS_TEST (1) +#define IST30XX_GESTURE (0) +#define IST30XX_STATUS_DEBUG (0) +#if (IST30XX_DEBUG && IST30XX_CMCS_TEST) +#define IST30XX_JIG_MODE (1) +#else +#define IST30XX_JIG_MODE (0) // fixed +#endif + +#define SEC_FACTORY_MODE (1) +/* IST30XX FUNCTION ENABLE & DISABLE */ + +#define IST30XX_ADDR_LEN (4) +#define IST30XX_DATA_LEN (4) + +#define IST30XX_MAX_MT_FINGERS (10) +#define IST30XX_MAX_KEYS (5) + +#if defined(CONFIG_MACH_SS_SHARKLT8) || defined(CONFIG_MACH_SS_SHARKLT8LIGHTSLEEP) +#define IST30XX_MAX_X (720) // LCD Resolution +#define IST30XX_MAX_Y (1280) // LCD Resolution +#else +#define IST30XX_MAX_X (480) // LCD Resolution +#define IST30XX_MAX_Y (800) // LCD Resolution +#endif +#define IST30XX_MAX_W (15) + +#define IST30XX_EXCEPT_MASK (0xFFFFFF00) +#define IST30XX_EXCEPT_VALUE (0xE11CE900) +#define IST30XX_MAX_EXCEPT_SIZE (2) + +#define IST30XX_JIG_TOUCH (0xC0) +#define IST30XX_ENABLE (1) +#define IST30XX_DISABLE (0) + +/* retry count */ +#define IST30XX_MAX_RETRY_CNT (3) + +/* Local */ +#define TSP_LOCAL_EU (0) +#define TSP_LOCAL_EEU (1) +#define TSP_LOCAL_TD (11) +#define TSP_LOCAL_CMCC (12) +#define TSP_LOCAL_CU (13) +#define TSP_LOCAL_SPRD (14) +#define TSP_LOCAL_CTC (15) +#define TSP_LOCAL_INDIA (21) +#define TSP_LOCAL_SWASIA (22) +#define TSP_LOCAL_NA (31) +#define TSP_LOCAL_LA (32) +#define TSP_LOCAL_CODE TSP_LOCAL_EU + +/* Debug message */ +#define DEV_ERR (1) +#define DEV_WARN (2) +#define DEV_INFO (3) +#define DEV_NOTI (4) +#define DEV_DEBUG (5) +#define DEV_VERB (6) + +#define IST30XX_DEBUG_TAG "[ TSP ]" +#define IST30XX_DEBUG_LEVEL DEV_NOTI + +#define tsp_err(fmt, ...) tsp_printk(DEV_ERR, fmt, ## __VA_ARGS__) +#define tsp_warn(fmt, ...) tsp_printk(DEV_WARN, fmt, ## __VA_ARGS__) +#define tsp_info(fmt, ...) tsp_printk(DEV_INFO, fmt, ## __VA_ARGS__) +#define tsp_noti(fmt, ...) tsp_printk(DEV_NOTI, fmt, ## __VA_ARGS__) +#define tsp_debug(fmt, ...) tsp_printk(DEV_DEBUG, fmt, ## __VA_ARGS__) +#define tsp_verb(fmt, ...) tsp_printk(DEV_VERB, fmt, ## __VA_ARGS__) + +/* i2c setting */ +// I2C Device info +#define IST30XX_DEV_NAME "IST3038C" +#define IST30XX_DEV_ID (0xA0 >> 1) + +// I2C Mode +#define I2C_BURST_MODE (1) +#define I2C_MONOPOLY_MODE (0) + +// I2C transfer msg number +#define WRITE_CMD_MSG_LEN (1) +#define READ_CMD_MSG_LEN (2) + +// I2C address/Data length +#define IST30XX_ADDR_LEN (4) /* bytes */ +#define IST30XX_DATA_LEN (4) /* bytes */ + +// I2C transaction size +#define I2C_MAX_WRITE_SIZE (0x0100) /* bytes */ +#define I2C_MAX_READ_SIZE (0x0080) /* bytes */ + +// I2C access mode +#define IST30XX_DIRECT_ACCESS (1 << 31) +#define IST30XX_BURST_ACCESS (1 << 27) +#define IST30XX_HIB_ACCESS (0x800B << 16) +#define IST30XX_DA_ADDR(n) (n | IST30XX_DIRECT_ACCESS) +#define IST30XX_BA_ADDR(n) (n | IST30XX_BURST_ACCESS) +#define IST30XX_HA_ADDR(n) (n | IST30XX_HIB_ACCESS) + +/* register */ +// Info register +#define IST30XX_REG_CHIPID IST30XX_DA_ADDR(0x40001000) +#define IST30XX_REG_TSPTYPE IST30XX_DA_ADDR(0x40002010) + +// HIB register +#define IST30XX_HIB_BASE (0x30000100) +#define IST30XX_HIB_TOUCH_STATUS IST30XX_HA_ADDR(IST30XX_HIB_BASE | 0x00) +#define IST30XX_HIB_INTR_MSG IST30XX_HA_ADDR(IST30XX_HIB_BASE | 0x04) +#define IST30XX_HIB_COORD IST30XX_HA_ADDR(IST30XX_HIB_BASE | 0x08) +#define IST30XX_HIB_CMD IST30XX_HA_ADDR(IST30XX_HIB_BASE | 0x3C) +#define IST30XX_HIB_RW_STATUS IST30XX_HA_ADDR(IST30XX_HIB_BASE | 0x40) + +/* interrupt macro */ +#define IST30XX_INTR_STATUS (0x00000C00) +#define CHECK_INTR_STATUS(n) (((n & IST30XX_INTR_STATUS) \ + == IST30XX_INTR_STATUS) ? 1 : 0) +#define PARSE_FINGER_CNT(n) ((n >> 12) & 0xF) +#define PARSE_KEY_CNT(n) ((n >> 21) & 0x7) +/* Finger status: [9:0] */ +#define PARSE_FINGER_STATUS(n) (n & 0x3FF) +/* Key status: [20:16] */ +#define PARSE_KEY_STATUS(n) ((n >> 16) & 0x1F) +#define PRESSED_FINGER(s, id) ((s & (1 << (id - 1))) ? true : false) +#define PRESSED_KEY(s, id) ((s & (1 << (16 + id - 1))) ? true : false) + +#define IST30XX_MAX_CMD_SIZE (0x20) +#define IST30XX_CMD_ADDR(n) (n * 4) +#define IST30XX_CMD_VALUE(n) (n / 4) +enum ist30xx_read_commands { + eHCOM_GET_CHIP_ID = IST30XX_CMD_ADDR(0x00), + eHCOM_GET_VER_MAIN = IST30XX_CMD_ADDR(0x01), + eHCOM_GET_VER_FW = IST30XX_CMD_ADDR(0x02), + eHCOM_GET_VER_CORE = IST30XX_CMD_ADDR(0x03), + eHCOM_GET_VER_TEST = IST30XX_CMD_ADDR(0x04), + eHCOM_GET_CRC32 = IST30XX_CMD_ADDR(0x05), + eHCOM_GET_CRC32_ALL = IST30XX_CMD_ADDR(0x06), + eHCOM_GET_CAL_RESULT = IST30XX_CMD_ADDR(0x07), + eHCOM_GET_TSP_VENDOR = IST30XX_CMD_ADDR(0x08), + + eHCOM_GET_LCD_INFO = IST30XX_CMD_ADDR(0x10), + eHCOM_GET_TSP_INFO = IST30XX_CMD_ADDR(0x11), + eHCOM_GET_KEY_INFO_0 = IST30XX_CMD_ADDR(0x12), + eHCOM_GET_KEY_INFO_1 = IST30XX_CMD_ADDR(0x13), + eHCOM_GET_KEY_INFO_2 = IST30XX_CMD_ADDR(0x14), + eHCOM_GET_SCR_INFO = IST30XX_CMD_ADDR(0x15), + eHCOM_GET_GTX_INFO = IST30XX_CMD_ADDR(0x16), + eHCOM_GET_SWAP_INFO = IST30XX_CMD_ADDR(0x17), + eHCOM_GET_FINGER_INFO = IST30XX_CMD_ADDR(0x18), + eHCOM_GET_BASELINE = IST30XX_CMD_ADDR(0x19), + eHCOM_GET_TOUCH_TH = IST30XX_CMD_ADDR(0x1A), + + eHCOM_GET_ZVALUE_BASE = IST30XX_CMD_ADDR(0x1C), + eHCOM_GET_CDC_BASE = IST30XX_CMD_ADDR(0x1D), + eHCOM_GET_ALGO_BASE = IST30XX_CMD_ADDR(0x1E), + eHCOM_GET_COM_CHECKSUM = IST30XX_CMD_ADDR(0x1F), +}; + +enum ist30xx_write_commands { + eHCOM_FW_START = 0x01, + eHCOM_FW_HOLD = 0x02, + + eHCOM_CP_CORRECT_EN = 0x10, + eHCOM_WDT_EN = 0x11, + eHCOM_GESTURE_EN = 0x12, + eHCOM_SCALE_EN = 0x13, + eHCOM_NEW_POSITION_DIS = 0x14, + eHCOM_SLEEP_MODE_EN = 0x15, + + eHCOM_SET_TIME_ACTIVE = 0x20, + eHCOM_SET_TIME_IDLE = 0x21, + eHCOM_SET_MODE_SPECIAL = 0x22, + eHCOM_SET_LOCAL_MODEL = 0x23, + + eHCOM_RUN_RAMCODE = 0x30, + eHCOM_RUN_CAL_AUTO = 0x31, + eHCOM_RUN_CAL_PARAM = 0x32, + + eHCOM_SET_JIG_MODE = 0x80, + eHCOM_SET_JIG_SENSITI = 0x81, + + eHCOM_DEFAULT = 0xFF, +}; + +typedef union { + struct { + u32 y : 12; + u32 x : 12; + u32 area : 4; + u32 id : 4; + } bit_field; + u32 full_field; +} finger_info; + +struct ist30xx_status { + int power; + int update; + int update_result; + int calib; + int calib_msg; + int cmcs; + bool event_mode; + bool noise_mode; +}; + +struct ist30xx_version { + u32 main_ver; + u32 fw_ver; + u32 core_ver; + u32 test_ver; +}; + +struct ist30xx_fw { + struct ist30xx_version prev; + struct ist30xx_version cur; + struct ist30xx_version bin; + u32 index; + u32 size; + u32 chksum; + u32 buf_size; + u8 *buf; +}; + +#define IST30XX_TAG_MAGIC "ISTV2TAG" +struct ist30xx_tags { + char magic1[8]; + u32 rom_base; + u32 ram_base; + u32 reserved0; + u32 reserved1; + + u32 fw_addr; + u32 fw_size; + u32 cfg_addr; + u32 cfg_size; + u32 sensor_addr; + u32 sensor_size; + u32 cp_addr; + u32 cp_size; + u32 flag_addr; + u32 flag_size; + u32 reserved2; + u32 reserved3; + + u32 zvalue_base; + u32 algo_base; + u32 raw_base; + u32 filter_base; + u32 reserved4; + u32 reserved5; + + u32 chksum; + u32 chksum_all; + u32 reserved6; + u32 reserved7; + + u8 day; + u8 month; + u16 year; + u8 hour; + u8 min; + u8 sec; + u8 reserved8; + char magic2[8]; +}; + +struct ist30xx_platform_data { + int max_x; + int max_y; + int max_w; + int irq_flag; + int avdd_volt; + struct regulator *avdd_regulator; +}; + +struct CH_NUM { + u8 tx; + u8 rx; +}; + +struct GTX_INFO { + u8 num; + u8 ch_num[4]; +}; + +struct TSP_NODE_BUF { + u16 raw[IST30XX_NODE_TOTAL_NUM]; + u16 base[IST30XX_NODE_TOTAL_NUM]; + u16 filter[IST30XX_NODE_TOTAL_NUM]; + u16 min_raw; + u16 max_raw; + u16 min_base; + u16 max_base; + u16 len; +}; + +struct TSP_DIRECTION { + bool swap_xy; + bool flip_x; + bool flip_y; +}; + +typedef struct _TSP_INFO { + struct CH_NUM ch_num; + struct CH_NUM screen; + struct GTX_INFO gtx; + struct TSP_DIRECTION dir; + struct TSP_NODE_BUF node; + int height; + int width; + int finger_num; + u16 baseline; +} TSP_INFO; + +typedef struct _TKEY_INFO { + int key_num; + bool enable; + struct CH_NUM ch_num[IST30XX_MAX_KEYS]; + u16 baseline; +} TKEY_INFO; + +#if SEC_FACTORY_MODE +#include "ist30xxc_sec.h" +#endif + +#ifdef CONFIG_HAS_EARLYSUSPEND +#include +#endif +struct ist30xx_data { + struct i2c_client *client; + struct input_dev *input_dev; + struct ist30xx_platform_data *pdata; + TSP_INFO tsp_info; + TKEY_INFO tkey_info; +#ifdef CONFIG_HAS_EARLYSUSPEND + struct early_suspend early_suspend; +#endif + struct ist30xx_status status; + struct ist30xx_fw fw; + struct ist30xx_tags tags; +#if SEC_FACTORY_MODE + struct sec_factory sec; +#endif + u32 chip_id; + u32 tsp_type; + u32 max_fingers; + u32 max_keys; + u32 t_status; + finger_info fingers[IST30XX_MAX_MT_FINGERS]; + volatile bool irq_working; + u32 irq_enabled; + bool initialized; + u32 noise_mode; + u32 debug_mode; +#if IST30XX_JIG_MODE + u32 jig_mode; + u32 z_values[IST30XX_MAX_MT_FINGERS]; +#endif + int report_rate; + int idle_rate; +#if IST30XX_GESTURE + bool suspend; + bool gesture; +#endif + int scan_count; + int scan_retry; + int max_scan_retry; + int irq_err_cnt; + int max_irq_err_cnt; + struct delayed_work work_reset_check; + struct delayed_work work_noise_protect; + struct delayed_work work_debug_algorithm; +#if IST30XX_INTERNAL_BIN +#if IST30XX_UPDATE_BY_WORKQUEUE + struct delayed_work work_fw_update; +#endif +#endif +}; + +extern struct mutex ist30xx_mutex; +extern int ist30xx_dbg_level; + +void tsp_printk(int level, const char *fmt, ...); +int ist30xx_intr_wait(struct ist30xx_data *data, long ms); + +void ist30xx_enable_irq(struct ist30xx_data *data); +void ist30xx_disable_irq(struct ist30xx_data *data); +void ist30xx_set_ta_mode(bool charging); +void ist30xx_set_cover_mode(int mode); +void ist30xx_start(struct ist30xx_data *data); +int ist30xx_get_ver_info(struct ist30xx_data *data); + +int ist30xx_read_reg(struct i2c_client *client, u32 reg, u32 *buf); +int ist30xx_read_cmd(struct ist30xx_data *data, u32 cmd, u32 *buf); +int ist30xx_write_cmd(struct i2c_client *client, u32 cmd, u32 val); +int ist30xx_read_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len); +int ist30xx_write_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len); +int ist30xx_burst_read(struct i2c_client *client, u32 addr, + u32 *buf32, u16 len, bool bit_en); +int ist30xx_burst_write(struct i2c_client *client, u32 addr, + u32 *buf32, u16 len); + +int ist30xx_cmd_start_scan(struct ist30xx_data *data); +int ist30xx_cmd_calibrate(struct i2c_client *client); +int ist30xx_cmd_check_calib(struct i2c_client *client); +int ist30xx_cmd_update(struct i2c_client *client, int cmd); +int ist30xx_cmd_hold(struct i2c_client *client, int enable); + +int ist30xx_power_on(struct ist30xx_data *data, bool download); +int ist30xx_power_off(struct ist30xx_data *data); +int ist30xx_reset(struct ist30xx_data *data, bool download); + +int ist30xx_internal_suspend(struct ist30xx_data *data); +int ist30xx_internal_resume(struct ist30xx_data *data); + +int ist30xx_init_system(struct ist30xx_data *data); + +#endif // __IST30XXC_H__ diff --git a/drivers/input/touchscreen/ist30xxc/ist30xxc_cmcs.c b/drivers/input/touchscreen/ist30xxc/ist30xxc_cmcs.c new file mode 100644 index 00000000..07649b3a --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/ist30xxc_cmcs.c @@ -0,0 +1,1548 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xxc.h" +#include "ist30xxc_cmcs.h" + +#if IST30XX_INTERNAL_CMCS_BIN +#include "ist30xxc_cmcs_bin.h" +#endif + +#define TSP_CH_UNUSED (0) +#define TSP_CH_SCREEN (1) +#define TSP_CH_GTX (2) +#define TSP_CH_KEY (3) +#define TSP_CH_UNKNOWN (-1) + +#define CMCS_TAGS_PARSE_OK (0) + +int cmcs_ready = CMCS_READY; +u8 *ts_cmcs_bin = NULL; +u32 ts_cmcs_bin_size = 0; +CMCS_BIN_INFO ist30xx_cmcs_bin; +CMCS_BIN_INFO *ts_cmcs = (CMCS_BIN_INFO *)&ist30xx_cmcs_bin; +CMCS_BUF ist30xx_cmcs_buf; +CMCS_BUF *ts_cmcs_buf = (CMCS_BUF *)&ist30xx_cmcs_buf; + +int ist30xx_parse_cmcs_bin(const u8 *buf, const u32 size) +{ + int ret = -EPERM; + int i; + int node_spec_cnt; + + memcpy(ts_cmcs->magic1, buf, sizeof(ts_cmcs->magic1)); + memcpy(ts_cmcs->magic2, &buf[size - sizeof(ts_cmcs->magic2)], + sizeof(ts_cmcs->magic2)); + + if (!strncmp(ts_cmcs->magic1, IST30XX_CMCS_MAGIC, sizeof(ts_cmcs->magic1)) + && !strncmp(ts_cmcs->magic2, IST30XX_CMCS_MAGIC, + sizeof(ts_cmcs->magic2))) { + int idx; + + idx = sizeof(ts_cmcs->magic1); + + memcpy(&ts_cmcs->items.cnt, &buf[idx], sizeof(ts_cmcs->items.cnt)); + idx += sizeof(ts_cmcs->items.cnt); + ts_cmcs->items.item = kmalloc( + sizeof(struct CMCS_ITEM_INFO) * ts_cmcs->items.cnt, GFP_KERNEL); + + for (i = 0; i < ts_cmcs->items.cnt; i++) { + memcpy(&ts_cmcs->items.item[i], &buf[idx], + sizeof(struct CMCS_ITEM_INFO)); + idx += sizeof(struct CMCS_ITEM_INFO); + } + + memcpy(&ts_cmcs->cmds.cnt, &buf[idx], sizeof(ts_cmcs->cmds.cnt)); + idx += sizeof(ts_cmcs->cmds.cnt); + ts_cmcs->cmds.cmd = kmalloc( + sizeof(struct CMCS_CMD_INFO) * ts_cmcs->cmds.cnt, GFP_KERNEL); + + for (i = 0; i < ts_cmcs->cmds.cnt; i++) { + memcpy(&ts_cmcs->cmds.cmd[i], &buf[idx], + sizeof(struct CMCS_CMD_INFO)); + idx += sizeof(struct CMCS_CMD_INFO); + } + + memcpy(&ts_cmcs->spec_slope, &buf[idx], sizeof(ts_cmcs->spec_slope)); + idx += sizeof(ts_cmcs->spec_slope); + + memcpy(&ts_cmcs->spec_cr, &buf[idx], sizeof(ts_cmcs->spec_cr)); + idx += sizeof(ts_cmcs->spec_cr); + + memcpy(&ts_cmcs->param, &buf[idx], sizeof(ts_cmcs->param)); + idx += sizeof(ts_cmcs->param); + + ts_cmcs->spec_item = kmalloc( + sizeof(struct CMCS_SPEC_TOTAL) * ts_cmcs->items.cnt, + GFP_KERNEL); + + for (i = 0; i < ts_cmcs->items.cnt; i++) { + if (!strncmp(ts_cmcs->items.item[i].spec_type, "N", 1)) { + memcpy(&node_spec_cnt, &buf[idx], sizeof(node_spec_cnt)); + ts_cmcs->spec_item[i].spec_node.node_cnt = node_spec_cnt; + idx += sizeof(node_spec_cnt); + ts_cmcs->spec_item[i].spec_node.buf_min = (u16 *)&buf[idx]; + idx += node_spec_cnt * sizeof(s16); + ts_cmcs->spec_item[i].spec_node.buf_max = (u16 *)&buf[idx]; + idx += node_spec_cnt * sizeof(s16); + } else if (!strncmp(ts_cmcs->items.item[i].spec_type, "T", 1)) { + memcpy(&ts_cmcs->spec_item[i].spec_total, &buf[idx], + sizeof(struct CMCS_SPEC_TOTAL)); + idx += sizeof(struct CMCS_SPEC_TOTAL); + } + } + + ts_cmcs->buf_cmcs = (u8 *)&buf[idx]; + idx += ts_cmcs->param.cmcs_size; + + ts_cmcs->buf_sensor = (u32 *)&buf[idx]; + + ret = 0; + } + + tsp_verb("Magic1: %s, Magic2: %s\n", ts_cmcs->magic1, ts_cmcs->magic2); + tsp_verb(" item(%d)\n", ts_cmcs->items.cnt); + + for (i = 0; i < ts_cmcs->items.cnt; i++) { + tsp_verb(" (%d): %s, 0x%08x, %d, %s, %s\n", + i, ts_cmcs->items.item[i].name, ts_cmcs->items.item[i].addr, + ts_cmcs->items.item[i].size, ts_cmcs->items.item[i].data_type, + ts_cmcs->items.item[i].spec_type); + } + + tsp_verb(" cmd(%d)\n", ts_cmcs->cmds.cnt); + + for (i = 0; i < ts_cmcs->cmds.cnt; i++) { + tsp_verb(" (%d): 0x%08x, 0x%08x\n", + i, ts_cmcs->cmds.cmd[i].addr, ts_cmcs->cmds.cmd[i].value); + } + + tsp_verb(" param\n"); + tsp_verb(" fw: 0x%08x, %d\n", ts_cmcs->param.cmcs_size_addr, + ts_cmcs->param.cmcs_size); + tsp_verb(" cm sensor1: 0x%08x, %d\n", ts_cmcs->param.cm_sensor1_addr, + ts_cmcs->param.cm_sensor1_size); + tsp_verb(" cm sensor2: 0x%08x, %d\n", ts_cmcs->param.cm_sensor2_addr, + ts_cmcs->param.cm_sensor2_size); + tsp_verb(" cm sensor3: 0x%08x, %d\n", ts_cmcs->param.cm_sensor3_addr, + ts_cmcs->param.cm_sensor3_size); + tsp_verb(" cs sensor1: 0x%08x, %d\n", ts_cmcs->param.cs_sensor1_addr, + ts_cmcs->param.cs_sensor1_size); + tsp_verb(" cs sensor2: 0x%08x, %d\n", ts_cmcs->param.cs_sensor2_addr, + ts_cmcs->param.cs_sensor2_size); + tsp_verb(" cs sensor3: 0x%08x, %d\n", ts_cmcs->param.cs_sensor3_addr, + ts_cmcs->param.cs_sensor3_size); + tsp_verb(" chksum: 0x%08x\n", ts_cmcs->param.cmcs_chksum, + ts_cmcs->param.cm_sensor_chksum, ts_cmcs->param.cs_sensor_chksum); + tsp_verb(" slope(%s)\n", ts_cmcs->spec_slope.name); + tsp_verb(" x(%d,%d),y(%d,%d),gtx_x(%d,%d),gtx_y(%d,%d),key(%d,%d)\n", + ts_cmcs->spec_slope.x_min, ts_cmcs->spec_slope.x_max, + ts_cmcs->spec_slope.y_min, ts_cmcs->spec_slope.y_max, + ts_cmcs->spec_slope.gtx_x_min, ts_cmcs->spec_slope.gtx_x_max, + ts_cmcs->spec_slope.gtx_y_min, ts_cmcs->spec_slope.gtx_y_max, + ts_cmcs->spec_slope.key_min, ts_cmcs->spec_slope.key_max); + tsp_verb(" cr: screen(%4d, %4d), gtx(%4d, %4d), key(%4d, %4d)\n", + ts_cmcs->spec_cr.screen_min, ts_cmcs->spec_cr.screen_max, + ts_cmcs->spec_cr.gtx_min, ts_cmcs->spec_cr.gtx_max, + ts_cmcs->spec_cr.key_min, ts_cmcs->spec_cr.key_max); + + for (i = 0; i < ts_cmcs->items.cnt; i++) { + if (!strncmp(ts_cmcs->items.item[i].spec_type, "N", 1)) { + tsp_verb(" %s\n", ts_cmcs->items.item[i].name); + tsp_verb(" min: %x, %x, %x, %x\n", + ts_cmcs->spec_item[i].spec_node.buf_min[0], + ts_cmcs->spec_item[i].spec_node.buf_min[1], + ts_cmcs->spec_item[i].spec_node.buf_min[2], + ts_cmcs->spec_item[i].spec_node.buf_min[3]); + tsp_verb(" max: %x, %x, %x, %x\n", + ts_cmcs->spec_item[i].spec_node.buf_max[0], + ts_cmcs->spec_item[i].spec_node.buf_max[1], + ts_cmcs->spec_item[i].spec_node.buf_max[2], + ts_cmcs->spec_item[i].spec_node.buf_max[3]); + } else if (!strncmp(ts_cmcs->items.item[i].spec_type, "T", 1)) { + tsp_verb(" %s: screen(%4d, %4d), gtx(%4d, %4d), key(%4d, %4d)\n", + ts_cmcs->items.item[i].name, + ts_cmcs->spec_item[i].spec_total.screen_min, + ts_cmcs->spec_item[i].spec_total.screen_max, + ts_cmcs->spec_item[i].spec_total.gtx_min, + ts_cmcs->spec_item[i].spec_total.gtx_max, + ts_cmcs->spec_item[i].spec_total.key_min, + ts_cmcs->spec_item[i].spec_total.key_max); + } + } + + tsp_verb(" cmcs: %x, %x, %x, %x\n", ts_cmcs->buf_cmcs[0], + ts_cmcs->buf_cmcs[1], ts_cmcs->buf_cmcs[2], ts_cmcs->buf_cmcs[3]); + tsp_verb(" sensor: %x, %x, %x, %x\n", + ts_cmcs->buf_sensor[0], ts_cmcs->buf_sensor[1], + ts_cmcs->buf_sensor[2], ts_cmcs->buf_sensor[3]); + + return ret; +} + +int ist30xx_get_cmcs_info(const u8 *buf, const u32 size) +{ + int ret; + + cmcs_ready = CMCS_NOT_READY; + + ret = ist30xx_parse_cmcs_bin(buf, size); + if (unlikely(ret != CMCS_TAGS_PARSE_OK)) + tsp_warn("Cannot find tags of CMCS, make a bin by 'cmcs2bin.exe'\n"); + + return ret; +} + +int ist30xx_set_cmcs_sensor(struct i2c_client *client, CMCS_PARAM param, + u32 *buf32) +{ + int ret; + int len; + u32 waddr; + + waddr = IST30XX_DA_ADDR(param.cm_sensor1_addr); + len = (param.cm_sensor1_size / IST30XX_DATA_LEN) - 2; + buf32 += 2; + tsp_verb("%08x %08x %08x %08x\n", buf32[0], buf32[1], buf32[2], buf32[3]); + tsp_verb("%08x(%d)\n", waddr, len); + + if (len > 0) { + ret = ist30xx_burst_write(client, waddr, buf32, len); + if (ret) + return ret; + + tsp_info("cm sensor reg1 loaded!\n"); + } + + buf32 += len; + waddr = IST30XX_DA_ADDR(param.cm_sensor2_addr); + len = param.cm_sensor2_size / IST30XX_DATA_LEN; + tsp_verb("%08x %08x %08x %08x\n", buf32[0], buf32[1], buf32[2], buf32[3]); + tsp_verb("%08x(%d)\n", waddr, len); + + if (len > 0) { + ret = ist30xx_burst_write(client, waddr, buf32, len); + if (ret) + return ret; + + tsp_info("cm sensor reg2 loaded!\n"); + } + + buf32 += len; + waddr = IST30XX_DA_ADDR(param.cm_sensor3_addr); + len = param.cm_sensor3_size / IST30XX_DATA_LEN; + tsp_verb("%08x %08x %08x %08x\n", buf32[0], buf32[1], buf32[2], buf32[3]); + tsp_verb("%08x(%d)\n", waddr, len); + + if (len > 0) { + ret = ist30xx_burst_write(client, waddr, buf32, len); + if (ret) + return ret; + + tsp_info("cm sensor reg3 loaded!\n"); + } + + buf32 += len; + waddr = IST30XX_DA_ADDR(param.cs_sensor1_addr); + len = param.cs_sensor1_size / IST30XX_DATA_LEN; + tsp_verb("%08x %08x %08x %08x\n", buf32[0], buf32[1], buf32[2], buf32[3]); + tsp_verb("%08x(%d)\n", waddr, len); + + if (len > 0) { + ret = ist30xx_burst_write(client, waddr, buf32, len); + if (ret) + return ret; + + tsp_info("cs sensor reg1 loaded!\n"); + } + + buf32 += len; + waddr = IST30XX_DA_ADDR(param.cs_sensor2_addr); + len = param.cs_sensor2_size / IST30XX_DATA_LEN; + tsp_verb("%08x %08x %08x %08x\n", buf32[0], buf32[1], buf32[2], buf32[3]); + tsp_verb("%08x(%d)\n", waddr, len); + + if (len > 0) { + ret = ist30xx_burst_write(client, waddr, buf32, len); + if (ret) + return ret; + + tsp_info("cs sensor reg2 loaded!\n"); + } + + buf32 += len; + waddr = IST30XX_DA_ADDR(param.cs_sensor3_addr); + len = param.cs_sensor3_size / IST30XX_DATA_LEN; + tsp_verb("%08x %08x %08x %08x\n", buf32[0], buf32[1], buf32[2], buf32[3]); + tsp_verb("%08x(%d)\n", waddr, len); + + if (len > 0) { + ret = ist30xx_burst_write(client, waddr, buf32, len); + if (ret) + return ret; + + tsp_info("cs sensor reg3 loaded!\n"); + } + + return 0; +} + +int ist30xx_set_cmcs_cmd(struct i2c_client *client, CMCS_CMD cmds) +{ + int ret; + int i; + u32 val; + u32 waddr; + + for (i = 0; i < cmds.cnt; i++) { + waddr = IST30XX_DA_ADDR(cmds.cmd[i].addr); + val = cmds.cmd[i].value; + ret = ist30xx_write_cmd(client, waddr, val); + if (ret) + return ret; + tsp_verb("cmd%d(0x%08x): 0x%08x\n", i, waddr, val); + } + + return 0; +} + +int ist30xx_parse_cmcs_buf(struct ist30xx_data *data, s16 *buf) +{ + int i, j; + TSP_INFO *tsp = &data->tsp_info; + + tsp_info(" %d * %d\n", tsp->ch_num.tx, tsp->ch_num.rx); + for (i = 0; i < tsp->ch_num.tx; i++) { + tsp_info(" "); + for (j = 0; j < tsp->ch_num.rx; j++) + printk("%5d ", buf[i * tsp->ch_num.rx + j]); + printk("\n"); + } + + return 0; +} + +int ist30xx_apply_cmcs_slope(struct ist30xx_data *data, CMCS_BUF *cmcs_buf) +{ + int i, j, k; + int idx1, idx2, gtx_idx, key_idx; + int type; + int success = false; + TSP_INFO *tsp = &data->tsp_info; + int width = tsp->screen.rx; + int height = tsp->screen.tx; + s16 *presult; + s16 *pspec_min = (s16 *)cmcs_buf->spec_min; + s16 *pspec_max = (s16 *)cmcs_buf->spec_max; + s16 *pslope0 = (s16 *)cmcs_buf->slope0; + s16 *pslope1 = (s16 *)cmcs_buf->slope1; + + memset(cmcs_buf->slope0, 0, sizeof(cmcs_buf->slope0)); + memset(cmcs_buf->slope1, 0, sizeof(cmcs_buf->slope1)); + + if (!strncmp(ts_cmcs->spec_slope.name, IST30XX_CMCS_CS, 2)) + presult = (s16 *)&cmcs_buf->cs; + else + presult = (s16 *)&cmcs_buf->cm; + + for (i = 0; i < ts_cmcs->items.cnt; i++) { + if (!strncmp(ts_cmcs->spec_slope.name, + ts_cmcs->items.item[i].name, 2)) { + idx1 = idx2 = gtx_idx = key_idx = 0; + gtx_idx = tsp->screen.tx * tsp->screen.rx; + key_idx = gtx_idx + (tsp->gtx.num * tsp->screen.rx); + for (j = 0; j < tsp->ch_num.tx; j++) { + for (k = 0; k < tsp->ch_num.rx; k++) { + type = check_tsp_type(data, j, k); + idx1 = (j * tsp->ch_num.rx) + k; + + if (type == TSP_CH_UNKNOWN) { + continue; + } else if (type == TSP_CH_UNUSED) { + cmcs_buf->spec_min[idx1] = 0; + cmcs_buf->spec_max[idx1] = 0; + } else if (type == TSP_CH_GTX) { + cmcs_buf->spec_min[idx1] = + ts_cmcs->spec_item[i].spec_node.buf_min[gtx_idx]; + cmcs_buf->spec_max[idx1] = + ts_cmcs->spec_item[i].spec_node.buf_max[gtx_idx]; + gtx_idx++; + } else if (type == TSP_CH_KEY) { + cmcs_buf->spec_min[idx1] = + ts_cmcs->spec_item[i].spec_node.buf_min[key_idx]; + cmcs_buf->spec_max[idx1] = + ts_cmcs->spec_item[i].spec_node.buf_max[key_idx]; + key_idx++; + } else { + cmcs_buf->spec_min[idx1] = + ts_cmcs->spec_item[i].spec_node.buf_min[idx2]; + cmcs_buf->spec_max[idx1] = + ts_cmcs->spec_item[i].spec_node.buf_max[idx2]; + idx2++; + } + } + } + success = true; + } + } + + if (success == false) + return -1; + +#if CMCS_PARSING_DEBUG + idx1 = 0; + tsp_info("# Node cm min specific\n"); + for (i = 0; i < tsp->ch_num.tx; i++) { + tsp_info(" "); + for (j = 0; j < tsp->ch_num.rx; j++) + printk("%5d ", cmcs_buf->spec_min[idx1++]); + printk("\n"); + } + + idx1 = 0; + tsp_info("# Node cm max specific\n"); + for (i = 0; i < tsp->ch_num.tx; i++) { + tsp_info(" "); + for (j = 0; j < tsp->ch_num.rx; j++) + printk("%5d ", cmcs_buf->spec_max[idx1++]); + printk("\n"); + } +#endif + + tsp_verb("# Apply slope0_x\n"); + for (i = 0; i < height; i++) { + for (j = 0; j < width - 1; j++) { + idx1 = (i * tsp->ch_num.rx) + j; + idx2 = idx1 + 1; + + pslope0[idx1] = (presult[idx2] - presult[idx1]); + pslope0[idx1] += + (((pspec_min[idx1] + pspec_max[idx1]) / 2) - + ((pspec_min[idx2] + pspec_max[idx2]) / 2)); + } + } + + tsp_verb("# Apply slope1_y\n"); + for (i = 0; i < height - 1; i++) { + for (j = 0; j < width; j++) { + idx1 = (i * tsp->ch_num.rx) + j; + idx2 = idx1 + tsp->ch_num.rx; + + pslope1[idx1] = (presult[idx2] - presult[idx1]); + pslope1[idx1] += + (((pspec_min[idx1] + pspec_max[idx1]) / 2) - + ((pspec_min[idx2] + pspec_max[idx2]) / 2)); + } + } + + tsp_verb("# Apply slope0_gtx_x\n"); + for (i = 0; i < tsp->gtx.num; i++) { + if (tsp->gtx.ch_num[i] > height) { + for (j = 0; j < width - 1; j++) { + idx1 = (tsp->gtx.ch_num[i] * tsp->ch_num.rx) + j; + idx2 = idx1 + 1; + + pslope0[idx1] = (presult[idx2] - presult[idx1]); + pslope0[idx1] += + (((pspec_min[idx1] + pspec_max[idx1]) / 2) - + ((pspec_min[idx2] + pspec_max[idx2]) / 2)); + } + } + } + + tsp_verb("# Apply slope1_gtx_y\n"); + for (i = 0; i < (tsp->gtx.num - 1); i++) { + if (tsp->gtx.ch_num[i] > height) { + for (j = 0; j < width; j++) { + idx1 = (tsp->gtx.ch_num[i] * tsp->ch_num.rx) + j; + idx2 = idx1 + tsp->ch_num.rx; + + pslope1[idx1] = (presult[idx2] - presult[idx1]); + pslope1[idx1] += + (((pspec_min[idx1] + pspec_max[idx1]) / 2) - + ((pspec_min[idx2] + pspec_max[idx2]) / 2)); + } + } + } + +#if CMCS_PARSING_DEBUG + tsp_info("# slope0_x\n"); + for (i = 0; i < height; i++) { + tsp_info(" "); + for (j = 0; j < width; j++) { + idx1 = (i * tsp->ch_num.rx) + j; + printk("%5d ", pslope0[idx1]); + } + printk("\n"); + } + + tsp_info("# slope1_y\n"); + for (i = 0; i < height; i++) { + tsp_info(" "); + for (j = 0; j < width; j++) { + idx1 = (i * tsp->ch_num.rx) + j; + printk("%5d ", pslope1[idx1]); + } + printk("\n"); + } + + tsp_info("# slope0_gtx_x\n"); + for (i = 0; i < tsp->gtx.num; i++) { + tsp_info(" "); + for (j = 0; j < width; j++) { + idx1 = (tsp->gtx.ch_num[i] * tsp->ch_num.rx) + j; + printk("%5d ", pslope0[idx1]); + } + printk("\n"); + } + + tsp_info("# slope1_gtx_y\n"); + for (i = 0; i < tsp->gtx.num; i++) { + tsp_info(" "); + for (j = 0; j < width; j++) { + idx1 = (tsp->gtx.ch_num[i] * tsp->ch_num.rx) + j; + printk("%5d ", pslope1[idx1]); + } + printk("\n"); + } + +#endif + + return 0; +} + +int ist30xx_get_cmcs_buf(struct ist30xx_data *data, const char *mode, + CMCS_ITEM items, s16 *buf) +{ + int ret = -EINVAL; + int i; + bool success = false; + u32 waddr; + u16 len; + + for (i = 0; i < items.cnt; i++) { + if (!strncmp(items.item[i].name, mode, 2)) { + waddr = IST30XX_DA_ADDR(items.item[i].addr); + len = items.item[i].size / IST30XX_DATA_LEN; + ret = ist30xx_burst_read(data->client, + waddr, (u32 *)buf, len, true); + if (unlikely(ret)) + return ret; + tsp_verb("%s, 0x%08x, %d\n", __func__, waddr, len); + success = true; + } + } + + if (success == false) + return ret; + +#if CMCS_PARSING_DEBUG + ret = ist30xx_parse_cmcs_buf(data, buf); +#endif + + return ret; +} + +int ist30xx_cmcs_wait(struct ist30xx_data *data) +{ + int cnt = IST30XX_CMCS_TIMEOUT / 100; + + data->status.cmcs = 0; + while (cnt-- > 0) { + msleep(100); + + if (data->status.cmcs) { + tsp_info("CMCS test complete\n"); + return 0; + } + } + tsp_warn("cmcs time out\n"); + + return -EPERM; +} + +#define cmcs_next_step(ret) { if (unlikely(ret)) goto end; msleep(20); } +int ist30xx_cmcs_test(struct ist30xx_data *data, const u8 *buf, int size) +{ + int ret; + int len; + u32 waddr; + u32 val; + u32 cs_chksum = 0; + u32 chksum = 0; + u32 *buf32; + + tsp_info("*** CM/CS test ***\n"); + + ist30xx_disable_irq(data); + ist30xx_reset(data, false); + + ret = ist30xx_write_cmd(data->client, + IST30XX_HIB_CMD, (eHCOM_RUN_RAMCODE << 16) | 0); + cmcs_next_step(ret); + + /* Set sensor register */ + buf32 = ts_cmcs->buf_sensor; + ret = ist30xx_set_cmcs_sensor(data->client, ts_cmcs->param, buf32); + cmcs_next_step(ret); + + /* Set command */ + ret = ist30xx_set_cmcs_cmd(data->client, ts_cmcs->cmds); + cmcs_next_step(ret); + + /* Load cmcs test code */ + buf32 = (u32 *)ts_cmcs->buf_cmcs; + len = ts_cmcs->param.cmcs_size / IST30XX_DATA_LEN - 1; + tsp_verb("%08x %08x %08x %08x\n", buf32[0], buf32[1], buf32[2], buf32[3]); + waddr = IST30XX_DA_ADDR(data->tags.ram_base); + tsp_verb("%08x(%d)\n", waddr, len); + + ret = ist30xx_burst_write(data->client, waddr, buf32, len); + cmcs_next_step(ret); + + waddr = IST30XX_DA_ADDR(ts_cmcs->param.cmcs_size_addr); + val = ts_cmcs->param.cmcs_size - 4; + ret = ist30xx_write_cmd(data->client, waddr, val); + cmcs_next_step(ret); + tsp_verb("size(0x%08x): 0x%08x\n", waddr, val); + + tsp_info("cmcs code loaded!\n"); + + /* Cal checksum & run cmcs */ + ret = ist30xx_write_cmd(data->client, + IST30XX_HIB_CMD, (eHCOM_RUN_RAMCODE << 16) | 1); + cmcs_next_step(ret); + + /* Check checksum */ + ret = ist30xx_read_reg(data->client, IST30XX_CMCS_CHECKSUM, &chksum); + cmcs_next_step(ret); + if (chksum != ts_cmcs->param.cmcs_chksum) + goto end; + + /* Check cs sensor checksum */ + ret = ist30xx_read_reg(data->client, IST30XX_CMCS_CS_CHECKSUM, &cs_chksum); + cmcs_next_step(ret); + if (cs_chksum != ts_cmcs->param.cs_sensor_chksum) + goto end; + + tsp_info("CM/CS code ready!!\n"); + + ist30xx_enable_irq(data); + /* Wait CMCS test result */ + if (ist30xx_cmcs_wait(data) == 0) { + tsp_info("CM/CS test OK\n"); + } else { + tsp_info("CM/CS test Fail!\n"); + ret = -ENOEXEC; + goto end; + } + ist30xx_disable_irq(data); + + /* Read CM data */ + memset(ts_cmcs_buf->cm, 0, sizeof(ts_cmcs_buf->cm)); + + ret = ist30xx_get_cmcs_buf(data, + IST30XX_CMCS_CM, ts_cmcs->items, ts_cmcs_buf->cm); + cmcs_next_step(ret); + + /* Read CS data */ + memset(ts_cmcs_buf->cs, 0, sizeof(ts_cmcs_buf->cs)); + + ret = ist30xx_get_cmcs_buf(data, + IST30XX_CMCS_CS, ts_cmcs->items, ts_cmcs_buf->cs); + cmcs_next_step(ret); + + ret = ist30xx_apply_cmcs_slope(data, ts_cmcs_buf); + cmcs_next_step(ret); + + cmcs_ready = CMCS_READY; +end: + if (unlikely(ret)) { + tsp_warn("CM/CS test Fail!, ret=%d\n", ret); + } else if (unlikely(chksum != ts_cmcs->param.cmcs_chksum)) { + tsp_warn("Error CheckSum: %x(%x)\n", + chksum, ts_cmcs->param.cmcs_chksum); + ret = -ENOEXEC; + } else if (unlikely(cs_chksum != ts_cmcs->param.cs_sensor_chksum)) { + tsp_warn("Error CS Sensor CheckSum: %x(%x)\n", + cs_chksum, ts_cmcs->param.cs_sensor_chksum); + ret = -ENOEXEC; + } + + ist30xx_reset(data, false); + ist30xx_start(data); + ist30xx_enable_irq(data); + + return ret; +} + + +int check_tsp_type(struct ist30xx_data *data, int tx, int rx) +{ + int i; + TSP_INFO *tsp = &data->tsp_info; + TKEY_INFO *tkey = &data->tkey_info; + + if ((tx >= tsp->ch_num.tx) || (tx < 0) || + (rx >= tsp->ch_num.rx) || (rx < 0)) { + tsp_warn("TSP channel is not correct!! (%d * %d)\n", tx, rx); + return TSP_CH_UNKNOWN; + } + + if ((tx >= tsp->screen.tx) || (rx >= tsp->screen.rx)) { + for (i = 0; i < tsp->gtx.num; i++) { + if ((tx == tsp->gtx.ch_num[i]) && (rx < tsp->screen.rx)) + return TSP_CH_GTX; + } + + for (i = 0; i < tkey->key_num; i++) { + if ((tx == tkey->ch_num[i].tx) && + (rx == tkey->ch_num[i].rx)) + return TSP_CH_KEY; + } + } else { + return TSP_CH_SCREEN; + } + + return TSP_CH_UNUSED; +} + +int print_cmcs(struct ist30xx_data *data, s16 *buf16, char *buf) +{ + int i, j; + int idx; + int type; + int count = 0; + char msg[128]; + + TSP_INFO *tsp = &data->tsp_info; + + int tx_num = tsp->ch_num.tx; + int rx_num = tsp->ch_num.rx; + + for (i = 0; i < tx_num; i++) { + for (j = 0; j < rx_num; j++) { + type = check_tsp_type(data, i, j); + idx = (i * rx_num) + j; + if ((type == TSP_CH_UNKNOWN) || (type == TSP_CH_UNUSED)) + count += sprintf(msg, "%5d ", 0); + else + count += sprintf(msg, "%5d ", buf16[idx]); + + strcat(buf, msg); + } + + count += sprintf(msg, "\n"); + strcat(buf, msg); + } + + return count; +} + +int print_line_cmcs(struct ist30xx_data *data, int mode, s16 *buf16, char *buf) +{ + int i, j; + int idx; + int type; + int count = 0; + int key_index[5] = { 0, }; + int key_cnt = 0; + char msg[128]; + + TSP_INFO *tsp = &data->tsp_info; + + int tx_num = tsp->ch_num.tx; + int rx_num = tsp->ch_num.rx; + + for (i = 0; i < tx_num; i++) { + for (j = 0; j < rx_num; j++) { + type = check_tsp_type(data, i, j); + if ((type == TSP_CH_UNKNOWN) || (type == TSP_CH_UNUSED)) + continue; // Ignore + + if ((mode == CMCS_FLAG_CM_SLOPE0) && + (j == (tsp->screen.rx - 1))) + continue; + else if ((mode == CMCS_FLAG_CM_SLOPE1) && + (i == (tsp->screen.tx - 1))) + continue; + + if ((mode == CMCS_FLAG_CM_SLOPE0) && (type == TSP_CH_GTX) && + (j == (tsp->screen.rx - 1))) + continue; + else if ((mode == CMCS_FLAG_CM_SLOPE1) && + (type == TSP_CH_GTX) && + (i == tsp->gtx.ch_num[tsp->gtx.num - 1])) + continue; + + idx = (i * rx_num) + j; + + if (type == TSP_CH_KEY) { + key_index[key_cnt++] = idx; + continue; + } + + count += sprintf(msg, "%5d ", buf16[idx]); + strcat(buf, msg); + } + } + + tsp_info("key cnt: %d\n", key_cnt); + if ((mode != CMCS_FLAG_CM_SLOPE0) && (mode != CMCS_FLAG_CM_SLOPE1)) { + tsp_info("key cnt: %d\n", key_cnt); + for (i = 0; i < key_cnt; i++) { + count += sprintf(msg, "%5d ", buf16[key_index[i]]); + strcat(buf, msg); + } + } + + count += sprintf(msg, "\n"); + strcat(buf, msg); + + return count; +} + +/* sysfs: /sys/class/touch/cmcs/info */ +ssize_t ist30xx_cmcs_info_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int i; + int count; + char msg[128]; + struct ist30xx_data *data = dev_get_drvdata(dev); + TSP_INFO *tsp = &data->tsp_info; + TKEY_INFO *tkey = &data->tkey_info; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + /* Channel */ + count = sprintf(msg, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d ", + tsp->ch_num.tx, tsp->ch_num.rx, tsp->screen.tx, tsp->screen.rx, + tsp->gtx.num, tsp->gtx.ch_num[0], tsp->gtx.ch_num[1], + tsp->gtx.ch_num[2], tsp->gtx.ch_num[3], tkey->key_num, + tkey->ch_num[0].tx, tkey->ch_num[0].rx, tkey->ch_num[1].tx, + tkey->ch_num[1].rx, tkey->ch_num[2].tx, tkey->ch_num[2].rx, + tkey->ch_num[3].tx, tkey->ch_num[3].rx, tkey->ch_num[4].tx, + tkey->ch_num[4].rx); + strcat(buf, msg); + + /* Slope */ + count += sprintf(msg, "%d %d %d %d %d %d %d %d %d %d ", + ts_cmcs->spec_slope.x_min, ts_cmcs->spec_slope.x_max, + ts_cmcs->spec_slope.y_min, ts_cmcs->spec_slope.y_max, + ts_cmcs->spec_slope.gtx_x_min, ts_cmcs->spec_slope.gtx_x_max, + ts_cmcs->spec_slope.gtx_y_min, ts_cmcs->spec_slope.gtx_y_max, + ts_cmcs->spec_slope.key_min, ts_cmcs->spec_slope.key_max); + strcat(buf, msg); + + /* CS */ + for (i = 0; i < ts_cmcs->items.cnt; i++) { + if (!strncmp(ts_cmcs->items.item[i].name, IST30XX_CMCS_CS, 2)) { + if (!strncmp(ts_cmcs->items.item[i].spec_type, "T", 1)) { + count += sprintf(msg, "%d %d %d %d %d %d ", + ts_cmcs->spec_item[i].spec_total.screen_min, + ts_cmcs->spec_item[i].spec_total.screen_max, + ts_cmcs->spec_item[i].spec_total.gtx_min, + ts_cmcs->spec_item[i].spec_total.gtx_max, + ts_cmcs->spec_item[i].spec_total.key_min, + ts_cmcs->spec_item[i].spec_total.key_max); + strcat(buf, msg); + } + } + } + + /* CR */ + count += sprintf(msg, "%d %d %d %d %d %d ", + ts_cmcs->spec_cr.screen_min, ts_cmcs->spec_cr.screen_max, + ts_cmcs->spec_cr.gtx_min, ts_cmcs->spec_cr.gtx_max, + ts_cmcs->spec_cr.key_min, ts_cmcs->spec_cr.key_max); + strcat(buf, msg); + + tsp_verb("%s\n", buf); + + return count; +} + +/* sysfs: /sys/class/touch/cmcs/cmcs_binary */ +ssize_t ist30xx_cmcs_binary_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret; + struct ist30xx_data *data = dev_get_drvdata(dev); + + if ((ts_cmcs_bin == NULL) || (ts_cmcs_bin_size == 0)) + return sprintf(buf, "Binary is not correct(%d)\n", ts_cmcs_bin_size); + + ret = ist30xx_get_cmcs_info(ts_cmcs_bin, ts_cmcs_bin_size); + if (ret) + goto binary_end; + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_cmcs_test(data, ts_cmcs_bin, ts_cmcs_bin_size); + mutex_unlock(&ist30xx_mutex); + +binary_end: + return sprintf(buf, (ret == 0 ? "OK\n" : "Fail\n")); +} + +/* sysfs: /sys/class/touch/cmcs/cmcs_custom */ +ssize_t ist30xx_cmcs_custom_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret; + int bin_size = 0; + u8 *bin = NULL; + const struct firmware *req_bin = NULL; + struct ist30xx_data *data = dev_get_drvdata(dev); + + ret = request_firmware(&req_bin, IST30XX_CMCS_NAME, &data->client->dev); + if (ret) + return sprintf(buf, "File not found, %s\n", IST30XX_CMCS_NAME); + + bin = (u8 *)req_bin->data; + bin_size = (u32)req_bin->size; + + ret = ist30xx_get_cmcs_info(bin, bin_size); + if (ret) + goto custom_end; + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_cmcs_test(data, bin, bin_size); + mutex_unlock(&ist30xx_mutex); + +custom_end: + release_firmware(req_bin); + + return sprintf(buf, (ret == 0 ? "OK\n" : "Fail\n")); +} + +#define MAX_FILE_PATH 255 +/* sysfs: /sys/class/touch/cmcs/cmcs_sdcard */ +ssize_t ist30xx_cmcs_sdcard_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret = 0; + int bin_size = 0; + u8 *bin = NULL; + const u8 *buff = 0; + mm_segment_t old_fs = { 0 }; + struct file *fp = NULL; + long fsize = 0, nread = 0; + char fw_path[MAX_FILE_PATH]; + struct ist30xx_data *data = dev_get_drvdata(dev); + + old_fs = get_fs(); + set_fs(get_ds()); + + snprintf(fw_path, MAX_FILE_PATH, "/sdcard/%s", + IST30XX_CMCS_NAME); + fp = filp_open(fw_path, O_RDONLY, 0); + if (IS_ERR(fp)) { + tsp_info("file %s open error:%d\n", fw_path, (s32)fp); + ret = -ENOENT; + goto err_file_open; + } + + fsize = fp->f_path.dentry->d_inode->i_size; + + buff = kzalloc((size_t)fsize, GFP_KERNEL); + if (!buff) { + tsp_info("fail to alloc buffer\n"); + ret = -ENOMEM; + goto err_alloc; + } + + nread = vfs_read(fp, (char __user *)buff, fsize, &fp->f_pos); + if (nread != fsize) { + tsp_info("mismatch fw size\n"); + + goto err_fw_size; + } + + bin = (u8 *)buff; + bin_size = (u32)fsize; + + filp_close(fp, current->files); + set_fs(old_fs); + tsp_info("firmware is loaded!!\n"); + + ret = ist30xx_get_cmcs_info(bin, bin_size); + if (ret) + goto sdcard_end; + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_cmcs_test(data, bin, bin_size); + mutex_unlock(&ist30xx_mutex); + +err_fw_size: + if (buff) + kfree(buff); +err_alloc: + if (fp) + filp_close(fp, NULL); +err_file_open: + set_fs(old_fs); + +sdcard_end: + tsp_info("size: %d\n", sprintf(buf, (ret == 0 ? "OK\n" : "Fail\n"))); + + return sprintf(buf, (ret == 0 ? "OK\n" : "Fail\n")); +} + +/* sysfs: /sys/class/touch/cmcs/cm */ +ssize_t ist30xx_cm_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + TSP_INFO *tsp = &data->tsp_info; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + tsp_verb("CM (%d * %d)\n",tsp->ch_num.tx, tsp->ch_num.rx); + + return print_cmcs(data, ts_cmcs_buf->cm, buf); +} + +/* sysfs: /sys/class/touch/cmcs/cm_spec_min */ +ssize_t ist30xx_cm_spec_min_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + TSP_INFO *tsp = &data->tsp_info; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + tsp_verb("CM Spec Min (%d * %d)\n", tsp->ch_num.tx, tsp->ch_num.rx); + + return print_cmcs(data, ts_cmcs_buf->spec_min, buf); +} + +/* sysfs: /sys/class/touch/cmcs/cm_spec_max */ +ssize_t ist30xx_cm_spec_max_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + TSP_INFO *tsp = &data->tsp_info; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + tsp_verb("CM Spec Max (%d * %d)\n", tsp->ch_num.tx, tsp->ch_num.rx); + + return print_cmcs(data, ts_cmcs_buf->spec_max, buf); +} + +/* sysfs: /sys/class/touch/cmcs/cm_slope0 */ +ssize_t ist30xx_cm_slope0_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + TSP_INFO *tsp = &data->tsp_info; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + tsp_verb("CM Slope0_X (%d * %d)\n", tsp->ch_num.tx, tsp->ch_num.rx); + + return print_cmcs(data, ts_cmcs_buf->slope0, buf); +} + +/* sysfs: /sys/class/touch/cmcs/cm_slope1 */ +ssize_t ist30xx_cm_slope1_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + TSP_INFO *tsp = &data->tsp_info; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + tsp_verb("CM Slope1_Y (%d * %d)\n", tsp->ch_num.tx, tsp->ch_num.rx); + + return print_cmcs(data, ts_cmcs_buf->slope1, buf); +} + +/* sysfs: /sys/class/touch/cmcs/cs */ +ssize_t ist30xx_cs_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + TSP_INFO *tsp = &data->tsp_info; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + tsp_verb("CS (%d * %d)\n", tsp->ch_num.tx, tsp->ch_num.rx); + + return print_cmcs(data, ts_cmcs_buf->cs, buf); +} + +int print_cm_slope_result(struct ist30xx_data *data, u8 flag, s16 *buf16, + char *buf) +{ + int i, j; + int type, idx; + int count = 0, err_cnt = 0; + int min_spec, max_spec, gtx_min_spec, gtx_max_spec; + + char msg[128]; + + TSP_INFO *tsp = &data->tsp_info; + struct CMCS_SPEC_SLOPE *spec = + (struct CMCS_SPEC_SLOPE *)&ts_cmcs->spec_slope; + + if (flag == CMCS_FLAG_CM_SLOPE0) { + min_spec = spec->x_min; + max_spec = spec->x_max; + gtx_min_spec = spec->gtx_x_min; + gtx_max_spec = spec->gtx_x_max; + } else if (flag == CMCS_FLAG_CM_SLOPE1) { + min_spec = spec->y_min; + max_spec = spec->y_max; + gtx_min_spec = spec->gtx_y_min; + gtx_max_spec = spec->gtx_y_max; + } else { + count = sprintf(msg, "Unknown flag: %d\n", flag); + strcat(buf, msg); + return count; + } + + count = sprintf(msg, "Spec: screen(%d~%d), GTx(%d~%d)\n", + min_spec, max_spec, gtx_min_spec, gtx_max_spec); + strcat(buf, msg); + + for (i = 0; i < tsp->ch_num.tx; i++) { + for (j = 0; j < tsp->ch_num.rx; j++) { + idx = (i * tsp->ch_num.rx) + j; + + type = check_tsp_type(data, i, j); + if ((type == TSP_CH_UNKNOWN) || (type == TSP_CH_UNUSED) || + (type == TSP_CH_KEY)) + continue; // Ignore + + if (type == TSP_CH_SCREEN) { + if ((buf16[idx] >= min_spec) && (buf16[idx] <= max_spec)) + continue; // OK + } else if (type == TSP_CH_GTX) { + if ((buf16[idx] >= gtx_min_spec) && + (buf16[idx] <= gtx_max_spec)) + continue; // OK + } + + count += sprintf(msg, "%2d,%2d:%4d\n", i, j, buf16[idx]); + strcat(buf, msg); + + err_cnt++; + } + } + + /* Check error count */ + if (err_cnt == 0) + count += sprintf(msg, "OK\n"); + else + count += sprintf(msg, "Fail, node count: %d\n", err_cnt); + strcat(buf, msg); + + return count; +} + +int print_cm_key_slope_result(struct ist30xx_data *data, s16 *buf16, char *buf, + bool print) +{ + int i, j; + int type, idx; + int count = 0; + int min_spec, max_spec; + int key_num = 0; + s16 key_cm[5] = { 0, }; + s16 slope_result; + + char msg[128]; + + TSP_INFO *tsp = &data->tsp_info; + struct CMCS_SPEC_SLOPE *spec = + (struct CMCS_SPEC_SLOPE *)&ts_cmcs->spec_slope; + + min_spec = spec->key_min; + max_spec = spec->key_max; + + if (print) { + count = sprintf(msg, "Spec: %d ~ %d\n", min_spec, max_spec); + strcat(buf, msg); + } + + for (i = 0; i < tsp->ch_num.tx; i++) { + for (j = 0; j < tsp->ch_num.rx; j++) { + idx = (i * tsp->ch_num.rx) + j; + + type = check_tsp_type(data, i, j); + if (type == TSP_CH_KEY) + key_cm[key_num++] = buf16[idx]; + } + } + + /* Check key slope */ + slope_result = key_cm[0] - key_cm[1]; + + if (print) { + if ((slope_result >= min_spec) && (slope_result <= max_spec)) + count += sprintf(msg, "OK (%d)\n", slope_result); + else + count += sprintf(msg, "Fail (%d)\n", slope_result); + } else { + count += sprintf(msg, "%d\n", + (slope_result >= 0 ? slope_result : -slope_result)); + } + + strcat(buf, msg); + + return count; +} + +int print_cs_result(struct ist30xx_data *data, s16 *buf16, char *buf) +{ + int i, j; + bool success = false; + int type, idx; + int count = 0, err_cnt = 0; + int min_spec, max_spec; + + char msg[128]; + + TSP_INFO *tsp = &data->tsp_info; + struct CMCS_SPEC_TOTAL *spec; + + for (i = 0; i < ts_cmcs->items.cnt; i++) { + if (!strncmp(ts_cmcs->items.item[i].name, IST30XX_CMCS_CS, 2)) { + if (!strncmp(ts_cmcs->items.item[i].spec_type, "T", 1)) { + spec = + (struct CMCS_SPEC_TOTAL *)&ts_cmcs->spec_item[i].spec_total; + success = true; + break; + } + } + } + + if (success == false) + return 0; + + count = sprintf(msg, "Spec: screen(%d~%d), gtx(%d~%d), key(%d~%d)\n", + spec->screen_min, spec->screen_max, spec->gtx_min, + spec->gtx_max, spec->key_min, spec->key_max); + strcat(buf, msg); + + for (i = 0; i < tsp->ch_num.tx; i++) { + for (j = 0; j < tsp->ch_num.rx; j++) { + idx = (i * tsp->ch_num.rx) + j; + + type = check_tsp_type(data, i, j); + if ((type == TSP_CH_UNKNOWN) || (type == TSP_CH_UNUSED)) + continue; // Ignore + + if (type == TSP_CH_SCREEN) { + min_spec = spec->screen_min; + max_spec = spec->screen_max; + } else if (type == TSP_CH_GTX) { + min_spec = spec->gtx_min; + max_spec = spec->gtx_max; + } else { // TSP_CH_KEY + min_spec = spec->key_min; + max_spec = spec->key_max; + } + + if ((buf16[idx] >= min_spec) && (buf16[idx] <= max_spec)) + continue; // OK + + count += sprintf(msg, "%2d,%2d:%4d\n", i, j, buf16[idx]); + strcat(buf, msg); + + err_cnt++; + } + } + + /* Check error count */ + if (err_cnt == 0) + count += sprintf(msg, "OK\n"); + else + count += sprintf(msg, "Fail, node count: %d\n", err_cnt); + strcat(buf, msg); + + return count; +} + +/* sysfs: /sys/class/touch/cmcs/cm_result */ +ssize_t ist30xx_cm_result_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int i, j; + int type, idx, err_cnt = 0; + int min_spec, max_spec; + int count = 0; + short cm; + char msg[128]; + + struct ist30xx_data *data = dev_get_drvdata(dev); + TSP_INFO *tsp = &data->tsp_info; + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + for (i = 0; i < tsp->ch_num.tx; i++) { + for (j = 0; j < tsp->ch_num.rx; j++) { + idx = (i * tsp->ch_num.rx) + j; + + type = check_tsp_type(data, i, j); + if ((type == TSP_CH_UNKNOWN) || (type == TSP_CH_UNUSED)) + continue; + + min_spec = ts_cmcs_buf->spec_min[idx]; + max_spec = ts_cmcs_buf->spec_max[idx]; + + cm = ts_cmcs_buf->cm[idx]; + if ((cm >= min_spec) && (cm <= max_spec)) + continue; // OK + + count += sprintf(msg, "%2d,%2d:%4d (%4d~%4d)\n", + i, j, cm, min_spec, max_spec); + strcat(buf, msg); + + err_cnt++; + } + } + + /* Check error count */ + if (err_cnt == 0) + count += sprintf(msg, "OK\n"); + else + count += sprintf(msg, "Fail, node count: %d\n", err_cnt); + strcat(buf, msg); + + return count; +} + +/* sysfs: /sys/class/touch/cmcs/cm_slope0_result */ +ssize_t ist30xx_cm_slope0_result_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + return print_cm_slope_result(data, CMCS_FLAG_CM_SLOPE0, + ts_cmcs_buf->slope0, buf); +} + +/* sysfs: /sys/class/touch/cmcs/cm_slope1_result */ +ssize_t ist30xx_cm_slope1_result_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + return print_cm_slope_result(data, CMCS_FLAG_CM_SLOPE1, + ts_cmcs_buf->slope1, buf); +} +/* sysfs: /sys/class/touch/cmcs/cm_key_slope_result */ +ssize_t ist30xx_cm_key_slope_result_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + return print_cm_key_slope_result(data, ts_cmcs_buf->cm, buf, true); +} + +/* sysfs: /sys/class/touch/cmcs/cs_result */ +ssize_t ist30xx_cs_result_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + return print_cs_result(data, ts_cmcs_buf->cs, buf); +} + +/* sysfs: /sys/class/touch/cmcs/line_cm */ +ssize_t ist30xx_line_cm_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + return print_line_cmcs(data, CMCS_FLAG_CM, ts_cmcs_buf->cm, buf); +} + +/* sysfs: /sys/class/touch/cmcs/line_cm_slope0 */ +ssize_t ist30xx_line_cm_slope0_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + return print_line_cmcs(data, CMCS_FLAG_CM_SLOPE0, ts_cmcs_buf->slope0, buf); +} + +/* sysfs: /sys/class/touch/cmcs/line_cm_slope1 */ +ssize_t ist30xx_line_cm_slope1_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + return print_line_cmcs(data, CMCS_FLAG_CM_SLOPE1, ts_cmcs_buf->slope1, buf); +} + +/* sysfs: /sys/class/touch/cmcs/line_cs */ +ssize_t ist30xx_line_cs_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "CMCS test is not work!!\n"); + + return print_line_cmcs(data, CMCS_FLAG_CS, ts_cmcs_buf->cs, buf); +} + +/* sysfs: /sys/class/touch/cmcs/cm_key_slope_value */ +ssize_t ist30xx_cm_key_slope_value_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret; + struct ist30xx_data *data = dev_get_drvdata(dev); + + if ((ts_cmcs_bin == NULL) || (ts_cmcs_bin_size == 0)) + return sprintf(buf, "%s", "FFFF"); + + ret = ist30xx_get_cmcs_info(ts_cmcs_bin, ts_cmcs_bin_size); + if (ret) + return sprintf(buf, "%s", "FFFF"); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_cmcs_test(data, ts_cmcs_bin, ts_cmcs_bin_size); + mutex_unlock(&ist30xx_mutex); + + if (ret) + return sprintf(buf, "%s", "FFFF"); + + if (cmcs_ready == CMCS_NOT_READY) + return sprintf(buf, "%s", "FFFF"); + + return print_cm_key_slope_result(data, ts_cmcs_buf->cm, buf, false); +} + +/* sysfs : cmcs */ +static DEVICE_ATTR(info, S_IRUGO, ist30xx_cmcs_info_show, NULL); +static DEVICE_ATTR(cmcs_binary, S_IRUGO, ist30xx_cmcs_binary_show, NULL); +static DEVICE_ATTR(cmcs_custom, S_IRUGO, ist30xx_cmcs_custom_show, NULL); +static DEVICE_ATTR(cmcs_sdcard, S_IRUGO, ist30xx_cmcs_sdcard_show, NULL); +static DEVICE_ATTR(cm, S_IRUGO, ist30xx_cm_show, NULL); +static DEVICE_ATTR(cm_spec_min, S_IRUGO, ist30xx_cm_spec_min_show, NULL); +static DEVICE_ATTR(cm_spec_max, S_IRUGO, ist30xx_cm_spec_max_show, NULL); +static DEVICE_ATTR(cm_slope0, S_IRUGO, ist30xx_cm_slope0_show, NULL); +static DEVICE_ATTR(cm_slope1, S_IRUGO, ist30xx_cm_slope1_show, NULL); +static DEVICE_ATTR(cs, S_IRUGO, ist30xx_cs_show, NULL); +static DEVICE_ATTR(cm_result, S_IRUGO, ist30xx_cm_result_show, NULL); +static DEVICE_ATTR(cm_slope0_result, S_IRUGO, + ist30xx_cm_slope0_result_show, NULL); +static DEVICE_ATTR(cm_slope1_result, S_IRUGO, + ist30xx_cm_slope1_result_show, NULL); +static DEVICE_ATTR(cm_key_slope_result, S_IRUGO, + ist30xx_cm_key_slope_result_show, NULL); +static DEVICE_ATTR(cs_result, S_IRUGO, ist30xx_cs_result_show, NULL); +static DEVICE_ATTR(line_cm, S_IRUGO, ist30xx_line_cm_show, NULL); +static DEVICE_ATTR(line_cm_slope0, S_IRUGO, ist30xx_line_cm_slope0_show, NULL); +static DEVICE_ATTR(line_cm_slope1, S_IRUGO, ist30xx_line_cm_slope1_show, NULL); +static DEVICE_ATTR(line_cs, S_IRUGO, ist30xx_line_cs_show, NULL); +static DEVICE_ATTR(cm_key_slope_value, S_IRUGO, + ist30xx_cm_key_slope_value_show, NULL); + +static struct attribute *cmcs_attributes[] = { + &dev_attr_info.attr, + &dev_attr_cmcs_binary.attr, + &dev_attr_cmcs_custom.attr, + &dev_attr_cmcs_sdcard.attr, + &dev_attr_cm.attr, + &dev_attr_cm_spec_min.attr, + &dev_attr_cm_spec_max.attr, + &dev_attr_cm_slope0.attr, + &dev_attr_cm_slope1.attr, + &dev_attr_cs.attr, + &dev_attr_cm_result.attr, + &dev_attr_cm_slope0_result.attr, + &dev_attr_cm_slope1_result.attr, + &dev_attr_cm_key_slope_result.attr, + &dev_attr_cs_result.attr, + &dev_attr_line_cm.attr, + &dev_attr_line_cm_slope0.attr, + &dev_attr_line_cm_slope1.attr, + &dev_attr_line_cs.attr, + &dev_attr_cm_key_slope_value.attr, + NULL, +}; + +static struct attribute_group cmcs_attr_group = { + .attrs = cmcs_attributes, +}; + +extern struct class *ist30xx_class; +struct device *ist30xx_cmcs_dev; + +int ist30xx_init_cmcs_sysfs(struct ist30xx_data *data) +{ + /* /sys/class/touch/cmcs */ + ist30xx_cmcs_dev = device_create(ist30xx_class, NULL, 0, data, "cmcs"); + + /* /sys/class/touch/cmcs/... */ + if (unlikely(sysfs_create_group(&ist30xx_cmcs_dev->kobj, + &cmcs_attr_group))) + tsp_err("Failed to create sysfs group(%s)!\n", "cmcs"); + +#if IST30XX_INTERNAL_CMCS_BIN + ts_cmcs_bin = (u8 *)ist30xx_cmcs; + ts_cmcs_bin_size = sizeof(ist30xx_cmcs); + + ist30xx_get_cmcs_info(ts_cmcs_bin, ts_cmcs_bin_size); +#endif + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xxc/ist30xxc_cmcs.h b/drivers/input/touchscreen/ist30xxc/ist30xxc_cmcs.h new file mode 100644 index 00000000..9a10b3d2 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/ist30xxc_cmcs.h @@ -0,0 +1,160 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XXC_CMCS_H__ +#define __IST30XXC_CMCS_H__ + +#define IST30XX_INTERNAL_CMCS_BIN (1) + +#define CMCS_PARSING_DEBUG (0) +#define CMCS_RAMCODE_READ (0) + +#define CMCS_FLAG_CM (1) +#define CMCS_FLAG_CM_SPEC (1 << 1) +#define CMCS_FLAG_CM_SLOPE0 (1 << 2) +#define CMCS_FLAG_CM_SLOPE1 (1 << 3) +#define CMCS_FLAG_CS (1 << 4) + +#define CMCS_READY (0) +#define CMCS_NOT_READY (-1) + +#define IST30XX_CMCS_MSG_VALID (0x8FAB0FAB) +#define IST30XX_CMCS_TIMEOUT (10000) // unit : msec + +#define IST30XX_CMCS_CM ("CM") +#define IST30XX_CMCS_CS ("CS") + +// CMCS addr +#define IST30XX_CMCS_CHECKSUM IST30XX_DA_ADDR(0x300B0100) +#define IST30XX_CMCS_CS_CHECKSUM IST30XX_DA_ADDR(0x300B0108) +#define IST30XX_CMCS_PATTERN IST30XX_DA_ADDR(0x300B0104) + +#define ENABLE_CM_MODE(n) (n & 1) +#define ENABLE_CS_MODE(n) ((n >> 1) & 1) + +#define IST30XX_CMCS_NAME "ist30xxc.cms" +#define IST30XX_CMCS_MAGIC "CMCS2TAG" + +struct CMCS_SPEC_NODE { + u32 node_cnt; + u16 *buf_min; + u16 *buf_max; +}; + +struct CMCS_SPEC_TOTAL { + u16 screen_min; + u16 screen_max; + u16 gtx_min; + u16 gtx_max; + u16 key_min; + u16 key_max; +}; + +struct CMCS_ITEM_INFO { + char name[8]; + u32 addr; + u32 size; + char data_type[2]; + char spec_type[2]; +}; + +typedef struct _CMCS_ITEM { + u32 cnt; + struct CMCS_ITEM_INFO *item; +} CMCS_ITEM; + +struct CMCS_CMD_INFO { + u32 addr; + u32 value; +}; + +typedef struct _CMCS_CMD { + u32 cnt; + struct CMCS_CMD_INFO *cmd; +} CMCS_CMD; + +union CMCS_SPEC_ITEM { + struct CMCS_SPEC_NODE spec_node; + struct CMCS_SPEC_TOTAL spec_total; +}; + +struct CMCS_SPEC_SLOPE { + char name[8]; + s16 x_min; + s16 x_max; + s16 gtx_x_min; + s16 gtx_x_max; + s16 y_min; + s16 y_max; + s16 gtx_y_min; + s16 gtx_y_max; + s16 key_min; + s16 key_max; +}; + +struct CMCS_REG_INFO { + char name[8]; + u32 addr; + u32 size; +}; + +typedef struct _CMCS_PARAM { + u32 cmcs_size_addr; + u32 cmcs_size; + u32 cm_sensor1_addr; + u32 cm_sensor1_size; + u32 cm_sensor2_addr; + u32 cm_sensor2_size; + u32 cm_sensor3_addr; + u32 cm_sensor3_size; + u32 cs_sensor1_addr; + u32 cs_sensor1_size; + u32 cs_sensor2_addr; + u32 cs_sensor2_size; + u32 cs_sensor3_addr; + u32 cs_sensor3_size; + u32 cmcs_chksum; + u32 cm_sensor_chksum; + u32 cs_sensor_chksum; +} CMCS_PARAM; + +typedef struct _CMCS_BIN_INFO { + char magic1[8]; + CMCS_ITEM items; + CMCS_CMD cmds; + struct CMCS_SPEC_SLOPE spec_slope; + struct CMCS_SPEC_TOTAL spec_cr; + CMCS_PARAM param; + union CMCS_SPEC_ITEM *spec_item; + u8 *buf_cmcs; + u32 *buf_sensor; + char magic2[8]; +} CMCS_BIN_INFO; + +typedef struct _CMCS_BUF { + s16 cm[IST30XX_NODE_TOTAL_NUM]; + s16 spec_min[IST30XX_NODE_TOTAL_NUM]; + s16 spec_max[IST30XX_NODE_TOTAL_NUM]; + s16 slope0[IST30XX_NODE_TOTAL_NUM]; + s16 slope1[IST30XX_NODE_TOTAL_NUM]; + s16 cs[IST30XX_NODE_TOTAL_NUM]; +} CMCS_BUF; + +int check_tsp_type(struct ist30xx_data *data, int tx, int rx); +int ist30xx_get_cmcs_info(const u8 *buf, const u32 size); +int ist30xx_cmcs_test(struct ist30xx_data *data, const u8 *buf, int size); +int ist30xx_init_cmcs_sysfs(struct ist30xx_data *data); + +#endif // __IST30XXC_CMCS_H__ diff --git a/drivers/input/touchscreen/ist30xxc/ist30xxc_cmcs_bin.h b/drivers/input/touchscreen/ist30xxc/ist30xxc_cmcs_bin.h new file mode 100644 index 00000000..429cfe1d --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/ist30xxc_cmcs_bin.h @@ -0,0 +1,625 @@ +#ifndef __IST30XXC_CMCS_BIN_H__ +#define __IST30XXC_CMCS_BIN_H__ + +/* ist30xx cmcs binary: model( ) */ +static unsigned char ist30xx_cmcs[] = { + 0x43, 0x4d, 0x43, 0x53, 0x32, 0x54, 0x41, 0x47, 0x02, 0x00, 0x00, 0x00, 0x43, 0x4d, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x4e, 0x00, 0x4e, 0x00, + 0x43, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, + 0x4e, 0x00, 0x54, 0x00, 0x02, 0x00, 0x00, 0x00, 0x24, 0x11, 0x00, 0x00, 0xac, 0x0d, 0xac, 0x0d, + 0x28, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x38, 0xff, 0xc8, 0x00, 0x38, 0xff, 0xc8, 0x00, 0x38, 0xff, 0xc8, 0x00, 0x38, 0xff, 0xc8, 0x00, + 0x38, 0xff, 0xc8, 0x00, 0x78, 0x05, 0x98, 0x08, 0x78, 0x05, 0x98, 0x08, 0x78, 0x05, 0x98, 0x08, + 0x20, 0x11, 0x00, 0x00, 0x24, 0x07, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x30, 0x00, 0x09, 0x00, 0x00, 0xc4, 0x52, 0x00, 0x30, 0x50, 0x01, 0x00, 0x00, + 0x30, 0x11, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x30, 0x14, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, + 0x30, 0x1d, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x3a, 0x59, 0x64, 0x20, 0x57, 0x1d, 0x1a, 0x44, + 0x22, 0xc4, 0xa5, 0x15, 0xff, 0x00, 0x00, 0x00, 0x6d, 0x04, 0x46, 0x04, 0x20, 0x04, 0xf9, 0x03, + 0xc6, 0x03, 0xa3, 0x03, 0x99, 0x03, 0x9f, 0x03, 0xbb, 0x03, 0x48, 0x04, 0xe3, 0x03, 0xda, 0x03, + 0x0c, 0x04, 0xff, 0x03, 0xe4, 0x03, 0xcd, 0x03, 0xab, 0x03, 0x92, 0x03, 0x7d, 0x03, 0x73, 0x03, + 0xa6, 0x03, 0xbb, 0x03, 0xa6, 0x03, 0xa4, 0x03, 0xa9, 0x03, 0x98, 0x03, 0x9d, 0x03, 0x92, 0x03, + 0x8b, 0x03, 0x81, 0x03, 0x6c, 0x03, 0x51, 0x03, 0x5b, 0x03, 0x62, 0x03, 0x57, 0x03, 0x38, 0x03, + 0x4e, 0x04, 0x48, 0x04, 0x46, 0x04, 0x3b, 0x04, 0x26, 0x04, 0x2a, 0x04, 0x0c, 0x04, 0xf3, 0x03, + 0xf6, 0x03, 0xf9, 0x03, 0xec, 0x03, 0xdc, 0x03, 0x34, 0x04, 0x26, 0x04, 0x32, 0x04, 0x25, 0x04, + 0x16, 0x04, 0x0f, 0x04, 0xf3, 0x03, 0xdc, 0x03, 0xe8, 0x03, 0xf5, 0x03, 0x13, 0x04, 0xad, 0x03, + 0x01, 0x04, 0xfe, 0x03, 0x07, 0x04, 0xfe, 0x03, 0xef, 0x03, 0xeb, 0x03, 0xcf, 0x03, 0xb7, 0x03, + 0xbb, 0x03, 0xba, 0x03, 0xae, 0x03, 0x99, 0x03, 0x1b, 0x04, 0x0f, 0x04, 0x1a, 0x04, 0x11, 0x04, + 0x03, 0x04, 0xfc, 0x03, 0xe3, 0x03, 0xc7, 0x03, 0xd0, 0x03, 0xd8, 0x03, 0x07, 0x04, 0x95, 0x03, + 0xc4, 0x03, 0xc5, 0x03, 0xca, 0x03, 0xc3, 0x03, 0xb6, 0x03, 0xb4, 0x03, 0x9b, 0x03, 0x84, 0x03, + 0x88, 0x03, 0x83, 0x03, 0x76, 0x03, 0x68, 0x03, 0x03, 0x04, 0xf6, 0x03, 0xfd, 0x03, 0xf5, 0x03, + 0xe7, 0x03, 0xe4, 0x03, 0xcd, 0x03, 0xb2, 0x03, 0xb8, 0x03, 0xb1, 0x03, 0xab, 0x03, 0x7c, 0x03, + 0x05, 0x04, 0x09, 0x04, 0x11, 0x04, 0x0a, 0x04, 0xfb, 0x03, 0xf8, 0x03, 0xe0, 0x03, 0xc3, 0x03, + 0xcb, 0x03, 0xc4, 0x03, 0xb6, 0x03, 0xa8, 0x03, 0x30, 0x04, 0x22, 0x04, 0x2d, 0x04, 0x25, 0x04, + 0x17, 0x04, 0x13, 0x04, 0xf7, 0x03, 0xdb, 0x03, 0xe4, 0x03, 0xda, 0x03, 0xcf, 0x03, 0x9c, 0x03, + 0x31, 0x04, 0x42, 0x04, 0x4c, 0x04, 0x48, 0x04, 0x38, 0x04, 0x36, 0x04, 0x18, 0x04, 0xfa, 0x03, + 0x04, 0x04, 0xfa, 0x03, 0xeb, 0x03, 0xde, 0x03, 0x34, 0x04, 0x26, 0x04, 0x33, 0x04, 0x2f, 0x04, + 0x1c, 0x04, 0x16, 0x04, 0xfd, 0x03, 0xe2, 0x03, 0xe9, 0x03, 0xe3, 0x03, 0xd4, 0x03, 0x94, 0x03, + 0x4f, 0x04, 0x3a, 0x04, 0x44, 0x04, 0x41, 0x04, 0x2f, 0x04, 0x2a, 0x04, 0x0e, 0x04, 0xf1, 0x03, + 0xfa, 0x03, 0xf3, 0x03, 0xe3, 0x03, 0xd0, 0x03, 0xe0, 0x03, 0xd6, 0x03, 0xe3, 0x03, 0xda, 0x03, + 0xd4, 0x03, 0xc9, 0x03, 0xb1, 0x03, 0x95, 0x03, 0x9e, 0x03, 0x91, 0x03, 0x8d, 0x03, 0x7d, 0x03, + 0x26, 0x04, 0x1d, 0x04, 0x29, 0x04, 0x25, 0x04, 0x18, 0x04, 0x13, 0x04, 0xf4, 0x03, 0xd6, 0x03, + 0xdf, 0x03, 0xd5, 0x03, 0xc9, 0x03, 0xb3, 0x03, 0x09, 0x04, 0x02, 0x04, 0x10, 0x04, 0x09, 0x04, + 0xfe, 0x03, 0xf8, 0x03, 0xda, 0x03, 0xbc, 0x03, 0xc5, 0x03, 0xba, 0x03, 0xb2, 0x03, 0x97, 0x03, + 0xc0, 0x03, 0x9e, 0x03, 0xab, 0x03, 0xae, 0x03, 0xa1, 0x03, 0x8f, 0x03, 0x73, 0x03, 0x68, 0x03, + 0x6a, 0x03, 0x55, 0x03, 0x3b, 0x03, 0x8c, 0x03, 0xee, 0x03, 0x6d, 0x03, 0x71, 0x03, 0x6b, 0x03, + 0x5f, 0x03, 0x5a, 0x03, 0x5c, 0x03, 0x41, 0x03, 0x3e, 0x03, 0x2e, 0x03, 0x2a, 0x03, 0x55, 0x03, + 0xd6, 0x03, 0x66, 0x03, 0x68, 0x03, 0x6d, 0x03, 0x62, 0x03, 0x57, 0x03, 0x27, 0x03, 0x1a, 0x03, + 0x1a, 0x03, 0x17, 0x03, 0x14, 0x03, 0x65, 0x03, 0xb4, 0x03, 0xd5, 0x03, 0xdd, 0x03, 0xd9, 0x03, + 0xca, 0x03, 0xc7, 0x03, 0xbb, 0x03, 0x9b, 0x03, 0x9f, 0x03, 0x96, 0x03, 0x89, 0x03, 0x4c, 0x03, + 0xfe, 0x03, 0xeb, 0x02, 0x00, 0x00, 0x61, 0x07, 0x20, 0x07, 0xe0, 0x06, 0x9e, 0x06, 0x4a, 0x06, + 0x10, 0x06, 0x00, 0x06, 0x09, 0x06, 0x37, 0x06, 0x22, 0x07, 0x7a, 0x06, 0x6c, 0x06, 0xbf, 0x06, + 0xa8, 0x06, 0x7d, 0x06, 0x55, 0x06, 0x1d, 0x06, 0xf3, 0x05, 0xd0, 0x05, 0xc0, 0x05, 0x14, 0x06, + 0x37, 0x06, 0x14, 0x06, 0x11, 0x06, 0x19, 0x06, 0xfd, 0x05, 0x06, 0x06, 0xf4, 0x05, 0xe7, 0x05, + 0xd7, 0x05, 0xb5, 0x05, 0x87, 0x05, 0x98, 0x05, 0xa3, 0x05, 0x92, 0x05, 0x5e, 0x05, 0x2d, 0x07, + 0x23, 0x07, 0x1f, 0x07, 0x0d, 0x07, 0xea, 0x06, 0xf1, 0x06, 0xbf, 0x06, 0x94, 0x06, 0x9b, 0x06, + 0x9f, 0x06, 0x8a, 0x06, 0x6f, 0x06, 0x01, 0x07, 0xea, 0x06, 0xfe, 0x06, 0xe9, 0x06, 0xcf, 0x06, + 0xc4, 0x06, 0x95, 0x06, 0x6f, 0x06, 0x82, 0x06, 0x99, 0x06, 0xcb, 0x06, 0x20, 0x06, 0xac, 0x06, + 0xa8, 0x06, 0xb6, 0x06, 0xa8, 0x06, 0x8e, 0x06, 0x88, 0x06, 0x5a, 0x06, 0x32, 0x06, 0x37, 0x06, + 0x37, 0x06, 0x22, 0x06, 0xfe, 0x05, 0xd8, 0x06, 0xc4, 0x06, 0xd6, 0x06, 0xc6, 0x06, 0xb0, 0x06, + 0xa4, 0x06, 0x7a, 0x06, 0x4c, 0x06, 0x5b, 0x06, 0x68, 0x06, 0xb7, 0x06, 0xf8, 0x05, 0x47, 0x06, + 0x48, 0x06, 0x50, 0x06, 0x45, 0x06, 0x30, 0x06, 0x2c, 0x06, 0x02, 0x06, 0xdb, 0x05, 0xe2, 0x05, + 0xda, 0x05, 0xc5, 0x05, 0xad, 0x05, 0xb0, 0x06, 0x9a, 0x06, 0xa6, 0x06, 0x98, 0x06, 0x80, 0x06, + 0x7c, 0x06, 0x55, 0x06, 0x28, 0x06, 0x33, 0x06, 0x26, 0x06, 0x1c, 0x06, 0xce, 0x05, 0xb3, 0x06, + 0xb9, 0x06, 0xc7, 0x06, 0xbc, 0x06, 0xa2, 0x06, 0x9d, 0x06, 0x75, 0x06, 0x46, 0x06, 0x52, 0x06, + 0x47, 0x06, 0x2f, 0x06, 0x18, 0x06, 0xfa, 0x06, 0xe3, 0x06, 0xf5, 0x06, 0xe9, 0x06, 0xd1, 0x06, + 0xca, 0x06, 0x9b, 0x06, 0x6d, 0x06, 0x7c, 0x06, 0x6b, 0x06, 0x58, 0x06, 0x04, 0x06, 0xfc, 0x06, + 0x18, 0x07, 0x2a, 0x07, 0x22, 0x07, 0x08, 0x07, 0x04, 0x07, 0xd3, 0x06, 0xa1, 0x06, 0xb1, 0x06, + 0xa1, 0x06, 0x88, 0x06, 0x72, 0x06, 0x01, 0x07, 0xe9, 0x06, 0x00, 0x07, 0xfa, 0x06, 0xda, 0x06, + 0xcf, 0x06, 0xa6, 0x06, 0x78, 0x06, 0x85, 0x06, 0x7b, 0x06, 0x61, 0x06, 0xf7, 0x05, 0x2e, 0x07, + 0x0b, 0x07, 0x1c, 0x07, 0x18, 0x07, 0xf9, 0x06, 0xf0, 0x06, 0xc2, 0x06, 0x92, 0x06, 0xa0, 0x06, + 0x95, 0x06, 0x7a, 0x06, 0x5a, 0x06, 0x76, 0x06, 0x65, 0x06, 0x7b, 0x06, 0x6b, 0x06, 0x61, 0x06, + 0x4f, 0x06, 0x27, 0x06, 0xf8, 0x05, 0x08, 0x06, 0xf2, 0x05, 0xeb, 0x05, 0xd0, 0x05, 0xeb, 0x06, + 0xdb, 0x06, 0xf0, 0x06, 0xe8, 0x06, 0xd3, 0x06, 0xca, 0x06, 0x96, 0x06, 0x64, 0x06, 0x73, 0x06, + 0x63, 0x06, 0x4f, 0x06, 0x2a, 0x06, 0xba, 0x06, 0xae, 0x06, 0xc5, 0x06, 0xba, 0x06, 0xa8, 0x06, + 0x9d, 0x06, 0x6b, 0x06, 0x3a, 0x06, 0x48, 0x06, 0x36, 0x06, 0x28, 0x06, 0xfc, 0x05, 0x40, 0x06, + 0x07, 0x06, 0x1d, 0x06, 0x21, 0x06, 0x0d, 0x06, 0xef, 0x05, 0xc0, 0x05, 0xae, 0x05, 0xb0, 0x05, + 0x8e, 0x05, 0x62, 0x05, 0xea, 0x05, 0x8c, 0x06, 0xb6, 0x05, 0xbd, 0x05, 0xb2, 0x05, 0x9e, 0x05, + 0x95, 0x05, 0x99, 0x05, 0x6c, 0x05, 0x67, 0x05, 0x4c, 0x05, 0x46, 0x05, 0x8e, 0x05, 0x64, 0x06, + 0xaa, 0x05, 0xad, 0x05, 0xb5, 0x05, 0xa3, 0x05, 0x91, 0x05, 0x42, 0x05, 0x2c, 0x05, 0x2c, 0x05, + 0x27, 0x05, 0x21, 0x05, 0xa8, 0x05, 0x8e, 0x05, 0xc0, 0x05, 0xcc, 0x05, 0xc6, 0x05, 0xae, 0x05, + 0xaa, 0x05, 0x98, 0x05, 0x68, 0x05, 0x6f, 0x05, 0x60, 0x05, 0x4d, 0x05, 0xf2, 0x04, 0xa8, 0x06, + 0xdd, 0x04, 0x00, 0x00, 0x1c, 0x0c, 0x74, 0x0e, 0x1c, 0x0c, 0x74, 0x0e, 0x1c, 0x0c, 0x74, 0x0e, + 0x04, 0x00, 0x00, 0x00, 0x0c, 0x10, 0x1c, 0x11, 0x0c, 0x80, 0x20, 0x07, 0xeb, 0x33, 0x00, 0x00, + 0xf2, 0xfe, 0x00, 0x00, 0x08, 0x70, 0x00, 0x40, 0x38, 0x67, 0x08, 0x70, 0xb9, 0x67, 0x08, 0x70, + 0xe1, 0xf0, 0x00, 0x00, 0x08, 0x60, 0x00, 0x40, 0x38, 0x76, 0x08, 0x70, 0xd6, 0x72, 0x82, 0xfd, + 0xe1, 0xf0, 0x00, 0x00, 0x3c, 0x10, 0x10, 0x00, 0xd1, 0xc1, 0x06, 0xe2, 0x08, 0xd0, 0x00, 0x40, + 0x04, 0xc1, 0xc4, 0xe0, 0x82, 0x0a, 0xab, 0x00, 0x00, 0x00, 0x04, 0x21, 0xb9, 0xcd, 0x00, 0x70, + 0x2b, 0x01, 0x00, 0x00, 0x34, 0xe1, 0xf2, 0xf6, 0x50, 0xc1, 0x2c, 0x10, 0x10, 0x00, 0xe1, 0xf0, + 0x77, 0x41, 0x14, 0x71, 0x34, 0x41, 0xc6, 0x47, 0x82, 0x04, 0xb1, 0x32, 0x24, 0x24, 0xf2, 0xfb, + 0xe1, 0xf0, 0x00, 0x00, 0xf7, 0x40, 0x04, 0x70, 0xc6, 0x74, 0x82, 0x07, 0x2f, 0x67, 0x07, 0x00, + 0x26, 0x62, 0xa1, 0x36, 0x24, 0x71, 0xf2, 0xf9, 0xe1, 0xf0, 0x00, 0x00, 0x04, 0x70, 0xc6, 0x74, + 0x82, 0x06, 0x2f, 0x67, 0x02, 0x00, 0x91, 0x36, 0x24, 0x71, 0xf2, 0xfa, 0xe1, 0xf0, 0x00, 0x00, + 0x34, 0x14, 0xb1, 0xf1, 0x77, 0x41, 0x04, 0x70, 0x14, 0x61, 0x34, 0x41, 0xc6, 0x46, 0x82, 0x09, + 0x2f, 0x57, 0x03, 0x00, 0x30, 0xf5, 0x2f, 0x57, 0x02, 0x00, 0xb1, 0xf5, 0x24, 0x74, 0xf2, 0xf6, + 0x30, 0xf1, 0x24, 0x14, 0xe1, 0xf0, 0x00, 0x00, 0x04, 0x70, 0xc6, 0x74, 0x82, 0x09, 0x2f, 0x67, + 0x03, 0x00, 0x10, 0x56, 0x2f, 0x67, 0x02, 0x00, 0x91, 0x56, 0x24, 0x71, 0xf2, 0xf7, 0xe1, 0xf0, + 0x08, 0x60, 0x00, 0x30, 0x38, 0x76, 0x28, 0x00, 0xd4, 0x74, 0x92, 0xfd, 0xe1, 0xf0, 0x00, 0x00, + 0x77, 0x31, 0x04, 0x70, 0x14, 0x61, 0x34, 0x31, 0xc6, 0x36, 0x82, 0x05, 0x30, 0x52, 0x24, 0x24, + 0x26, 0x75, 0xf2, 0xfa, 0x06, 0x27, 0xe1, 0xf0, 0x04, 0x6e, 0xa9, 0x60, 0x62, 0x07, 0x0c, 0x60, + 0x16, 0x00, 0xa9, 0x60, 0x60, 0x07, 0x04, 0x6c, 0xa9, 0x60, 0x5e, 0x07, 0x0c, 0x60, 0x14, 0x00, + 0xa9, 0x60, 0x5c, 0x07, 0x0c, 0x50, 0x24, 0x01, 0x06, 0x76, 0x0c, 0x70, 0x20, 0x07, 0xb9, 0x50, + 0x20, 0x07, 0x0c, 0x60, 0x25, 0x01, 0xb9, 0x67, 0x04, 0x00, 0x0c, 0x60, 0xf1, 0x0e, 0xb9, 0x67, + 0x08, 0x00, 0xb9, 0x67, 0x0c, 0x00, 0xb9, 0x67, 0x10, 0x00, 0xe1, 0xf0, 0x3c, 0x10, 0x20, 0x00, + 0xd9, 0xc1, 0x10, 0x00, 0x08, 0xc0, 0x00, 0x30, 0xd1, 0x81, 0x04, 0xd0, 0x06, 0xb2, 0x2c, 0xc0, + 0x00, 0x49, 0x78, 0x70, 0x60, 0x07, 0xc6, 0xd7, 0x32, 0x18, 0x04, 0xe0, 0x78, 0x30, 0x62, 0x07, + 0xc6, 0xe3, 0x32, 0x11, 0x06, 0x2d, 0xdb, 0x37, 0x00, 0x00, 0x26, 0x2e, 0x06, 0x72, 0x57, 0x71, + 0x26, 0x7c, 0x30, 0x77, 0x2f, 0x62, 0x02, 0x00, 0x26, 0x6b, 0x5c, 0x70, 0xff, 0x0f, 0xa1, 0x76, + 0x24, 0xe1, 0xf2, 0xed, 0x24, 0xd1, 0xf2, 0xe6, 0x58, 0xc1, 0x10, 0x00, 0x50, 0x81, 0x2c, 0x10, + 0x20, 0x00, 0xe1, 0xf0, 0x3c, 0x10, 0x10, 0x00, 0xd1, 0xc1, 0x06, 0xd3, 0x78, 0x30, 0x62, 0x07, + 0x06, 0xe2, 0x06, 0xc4, 0xdb, 0x37, 0x00, 0x00, 0x78, 0x60, 0x5e, 0x07, 0x2f, 0x7d, 0x02, 0x00, + 0xc6, 0xd6, 0xb1, 0x7c, 0xa2, 0x12, 0x06, 0x56, 0x0c, 0x50, 0x20, 0x07, 0x38, 0x55, 0x04, 0x00, + 0x04, 0x20, 0xc6, 0x75, 0x92, 0x03, 0x28, 0x20, 0x3a, 0x07, 0x38, 0x60, 0x20, 0x07, 0xc6, 0x76, + 0x92, 0x12, 0x28, 0x20, 0x3a, 0x07, 0xf2, 0x0f, 0x78, 0x70, 0x5c, 0x07, 0xc6, 0xe7, 0xb2, 0x04, + 0x28, 0x20, 0x38, 0x07, 0xf2, 0x08, 0xcc, 0xe0, 0x15, 0x00, 0x82, 0xfb, 0xcc, 0xe0, 0xff, 0x00, + 0x82, 0xf8, 0x04, 0x20, 0x50, 0xc1, 0x2c, 0x10, 0x10, 0x00, 0xe1, 0xf0, 0x08, 0x70, 0x0f, 0xc0, + 0x2c, 0x70, 0xff, 0xff, 0x08, 0x60, 0x00, 0x40, 0xb9, 0x76, 0x3c, 0x71, 0x08, 0x70, 0x00, 0x30, + 0x2c, 0x70, 0x00, 0x40, 0x57, 0x21, 0x2f, 0x57, 0x02, 0x00, 0x30, 0x75, 0xc4, 0x40, 0x0c, 0x60, + 0xff, 0x03, 0x56, 0x67, 0x77, 0x75, 0x5c, 0x70, 0xff, 0x03, 0x82, 0x09, 0xc4, 0x30, 0x82, 0x04, + 0x26, 0x64, 0x26, 0x74, 0xf2, 0x11, 0x36, 0x74, 0x36, 0x64, 0xf2, 0x0e, 0xc4, 0x30, 0x82, 0x07, + 0xc6, 0x76, 0x02, 0x03, 0x24, 0x61, 0xf2, 0x0d, 0x24, 0x71, 0xf2, 0x06, 0xc6, 0x76, 0x02, 0x03, + 0x34, 0x71, 0xf2, 0x02, 0x34, 0x61, 0xc4, 0x60, 0x02, 0x06, 0xcc, 0x60, 0xff, 0x03, 0x12, 0x06, + 0x04, 0x20, 0xf2, 0x07, 0x14, 0x21, 0x04, 0x61, 0xf2, 0x04, 0x14, 0x21, 0x0c, 0x60, 0xff, 0x03, + 0xc4, 0x70, 0x02, 0x08, 0xcc, 0x70, 0xff, 0x03, 0x02, 0x07, 0x14, 0x21, 0x0c, 0x70, 0xff, 0x03, + 0xf2, 0x03, 0x14, 0x21, 0x04, 0x71, 0x57, 0x75, 0x66, 0x76, 0xb1, 0x75, 0x08, 0x70, 0x00, 0x40, + 0xb9, 0x07, 0x3c, 0x71, 0xe1, 0xf0, 0x00, 0x00, 0x3c, 0x10, 0x28, 0x00, 0xd9, 0xc1, 0x18, 0x00, + 0x06, 0xe2, 0x78, 0x20, 0x5c, 0x07, 0xd9, 0x81, 0x08, 0x00, 0x78, 0x30, 0x5e, 0x07, 0x24, 0x21, + 0xdb, 0x37, 0x00, 0x00, 0x24, 0x22, 0xb9, 0x21, 0x04, 0x00, 0x0c, 0x20, 0x30, 0x11, 0x23, 0x3e, + 0x0c, 0x40, 0x68, 0x02, 0xab, 0x03, 0x00, 0x00, 0x06, 0x2a, 0x0c, 0x20, 0xb0, 0x15, 0x04, 0x30, + 0x0c, 0x40, 0x34, 0x01, 0x6b, 0x04, 0x00, 0x00, 0x06, 0x29, 0x0c, 0x20, 0xf0, 0x17, 0x04, 0x31, + 0x0c, 0x40, 0x34, 0x01, 0x08, 0xc0, 0x00, 0x30, 0x6b, 0x04, 0x00, 0x00, 0x0c, 0xd0, 0x82, 0x00, + 0x2c, 0xc0, 0x00, 0x49, 0x04, 0x21, 0x04, 0x80, 0xab, 0x01, 0x00, 0x00, 0x06, 0xe8, 0x78, 0x70, + 0x60, 0x07, 0xc6, 0x87, 0x32, 0x48, 0x04, 0xb0, 0x78, 0x60, 0x62, 0x07, 0xc6, 0xb6, 0x32, 0x41, + 0x06, 0x41, 0x06, 0x28, 0x06, 0x3b, 0x2b, 0x0d, 0x00, 0x00, 0x86, 0x42, 0x82, 0x38, 0x30, 0x21, + 0x06, 0x5a, 0x0c, 0x50, 0xb0, 0x15, 0x06, 0x62, 0x57, 0x61, 0x26, 0x6c, 0x30, 0x66, 0x26, 0x52, + 0x5c, 0x60, 0xff, 0x0f, 0x3f, 0x44, 0x06, 0x00, 0x90, 0x65, 0x82, 0x04, 0xcc, 0x40, 0x46, 0x00, + 0x02, 0x25, 0x06, 0x69, 0x0c, 0x60, 0xf0, 0x17, 0x26, 0x62, 0x10, 0x36, 0xc4, 0x31, 0x0c, 0xf0, + 0x30, 0x11, 0x2f, 0x32, 0x02, 0x00, 0x92, 0x05, 0xc4, 0x40, 0x22, 0x0e, 0x91, 0x06, 0xf2, 0x0c, + 0xc4, 0x40, 0x12, 0x0a, 0x04, 0x41, 0x91, 0x46, 0x2f, 0x43, 0x0f, 0x00, 0xa0, 0x44, 0x92, 0x04, + 0x10, 0x45, 0x24, 0x41, 0x91, 0x45, 0x2f, 0x53, 0x0f, 0x00, 0x20, 0x45, 0xf7, 0x40, 0xa1, 0x45, + 0x10, 0x36, 0x6b, 0x10, 0x00, 0x00, 0xc4, 0x20, 0x32, 0x02, 0x24, 0xe1, 0x24, 0xb1, 0xf2, 0xbd, + 0x24, 0x81, 0xf2, 0xb6, 0x38, 0x71, 0x04, 0x00, 0xc6, 0xe7, 0xb2, 0x03, 0xb4, 0xd1, 0x92, 0xab, + 0x58, 0xc1, 0x18, 0x00, 0x58, 0x81, 0x08, 0x00, 0x2c, 0x10, 0x28, 0x00, 0xe1, 0xf0, 0x00, 0x00, + 0x34, 0x18, 0x08, 0x70, 0x0f, 0xc0, 0xc1, 0xe1, 0x2c, 0x70, 0xff, 0xff, 0x08, 0xe0, 0x00, 0x40, + 0x08, 0x20, 0x00, 0x30, 0x08, 0x30, 0x06, 0x00, 0xb9, 0x7e, 0x3c, 0x71, 0x2c, 0x20, 0x00, 0x40, + 0x2c, 0x30, 0x80, 0x01, 0x0c, 0x40, 0x00, 0x09, 0x0b, 0x03, 0x00, 0x00, 0xb9, 0x0e, 0x3c, 0x71, + 0x0c, 0x20, 0x00, 0x02, 0x4b, 0x15, 0x00, 0x00, 0x40, 0xe1, 0x24, 0x18, 0xe1, 0xf0, 0x00, 0x00, + 0x34, 0x18, 0xc1, 0xe1, 0x08, 0x60, 0x00, 0x30, 0x08, 0x50, 0xff, 0xcf, 0x0c, 0x70, 0x6c, 0x53, + 0x0c, 0xf0, 0x98, 0xac, 0x0c, 0x40, 0x7c, 0x53, 0x26, 0xf5, 0x26, 0x76, 0x0c, 0xe0, 0x38, 0x07, + 0x2c, 0x50, 0xa8, 0xac, 0x26, 0x46, 0x30, 0x27, 0x2f, 0x6e, 0x07, 0x00, 0x2f, 0x3f, 0x06, 0x00, + 0xb1, 0x23, 0x38, 0x37, 0x10, 0x00, 0x26, 0x65, 0xb1, 0x36, 0xb1, 0x07, 0xb9, 0x07, 0x10, 0x00, + 0x24, 0x74, 0xc6, 0x74, 0x92, 0xf1, 0x40, 0xe1, 0x24, 0x18, 0xe1, 0xf0, 0x34, 0x18, 0x08, 0x60, + 0x00, 0x30, 0x08, 0x50, 0xff, 0xcf, 0xc1, 0xe1, 0x0c, 0x70, 0x6c, 0x53, 0x0c, 0xf0, 0x98, 0xac, + 0x0c, 0x40, 0x7c, 0x53, 0x26, 0xf5, 0x26, 0x76, 0x0c, 0x30, 0x38, 0x07, 0x2c, 0x50, 0xa8, 0xac, + 0x26, 0x46, 0x2f, 0x63, 0x07, 0x00, 0x2f, 0xef, 0x06, 0x00, 0x30, 0xee, 0xc4, 0x20, 0xb1, 0xe7, + 0x92, 0x05, 0x26, 0x65, 0x30, 0x66, 0xb9, 0x67, 0x10, 0x00, 0x24, 0x74, 0xc6, 0x74, 0x92, 0xf2, + 0x40, 0xe1, 0x24, 0x18, 0xe1, 0xf0, 0x00, 0x00, 0x3c, 0x10, 0xb0, 0x00, 0xd9, 0xc1, 0xa0, 0x00, + 0xd9, 0x81, 0x90, 0x00, 0x08, 0xe0, 0x00, 0x40, 0x38, 0x7e, 0x0c, 0x70, 0x08, 0x60, 0xff, 0xe0, + 0x2c, 0x60, 0xff, 0xe0, 0x56, 0x76, 0x08, 0x60, 0x00, 0x01, 0x2c, 0x60, 0x00, 0x01, 0x66, 0x76, + 0x06, 0xc2, 0x0c, 0x30, 0xa8, 0x71, 0x0c, 0x20, 0x70, 0x00, 0xb9, 0x7e, 0x0c, 0x70, 0x26, 0x3e, + 0x26, 0x21, 0x0c, 0x40, 0x20, 0x00, 0x4b, 0x06, 0x00, 0x00, 0x0c, 0x20, 0xa8, 0x71, 0x26, 0x2e, + 0x04, 0x30, 0x0c, 0x40, 0x20, 0x00, 0x6b, 0x04, 0x00, 0x00, 0x08, 0x30, 0x00, 0x30, 0x06, 0x21, + 0x2c, 0x30, 0x00, 0x40, 0x0c, 0x40, 0x70, 0x00, 0x0b, 0x05, 0x00, 0x00, 0x0c, 0xb0, 0x62, 0x07, + 0x38, 0xae, 0x78, 0x71, 0x14, 0xe1, 0x24, 0xe1, 0xcc, 0xe0, 0x1f, 0x00, 0x82, 0x61, 0x04, 0x71, + 0x53, 0x7e, 0x06, 0x67, 0xd6, 0x6a, 0x82, 0xf8, 0x08, 0x60, 0x00, 0x80, 0x66, 0x67, 0x08, 0x70, + 0x00, 0x40, 0xb9, 0x67, 0x78, 0x71, 0x0c, 0x70, 0x70, 0x00, 0x26, 0x71, 0x26, 0x7e, 0x10, 0xd7, + 0x70, 0x3b, 0x06, 0x7d, 0x57, 0x71, 0x26, 0x71, 0x30, 0x67, 0x08, 0x70, 0x00, 0x30, 0xb9, 0x67, + 0x00, 0x40, 0x2f, 0x6d, 0x03, 0x00, 0x57, 0x61, 0x26, 0x61, 0x30, 0x66, 0x78, 0x20, 0x60, 0x07, + 0xb9, 0x67, 0x04, 0x40, 0x06, 0xf3, 0x0c, 0x40, 0x08, 0x40, 0x26, 0x3d, 0x26, 0x47, 0x57, 0xf1, + 0x57, 0x31, 0x04, 0x50, 0x04, 0x62, 0x2c, 0x70, 0x00, 0x40, 0xc6, 0x62, 0x26, 0x5f, 0x32, 0x09, + 0x2f, 0x87, 0x05, 0x00, 0x26, 0x83, 0x30, 0x88, 0x24, 0x61, 0xb1, 0x84, 0x24, 0x44, 0xf2, 0xf6, + 0x04, 0x25, 0xab, 0x01, 0x00, 0x00, 0x70, 0x3b, 0x78, 0x20, 0x60, 0x07, 0x26, 0x33, 0x26, 0xdd, + 0x36, 0xd3, 0x0c, 0x70, 0x80, 0x1e, 0x2f, 0xfd, 0x0c, 0x00, 0x08, 0x60, 0x00, 0x30, 0x26, 0xd7, + 0x04, 0x70, 0x2c, 0x60, 0x00, 0x49, 0x06, 0x57, 0xc6, 0x52, 0x26, 0x73, 0x32, 0xad, 0x30, 0x46, + 0x2f, 0x87, 0x0f, 0x00, 0x20, 0x88, 0x5c, 0x40, 0xff, 0x0f, 0x36, 0x48, 0xc4, 0x40, 0x2f, 0x97, + 0x0d, 0x00, 0x32, 0x02, 0x04, 0x40, 0xa1, 0x49, 0x24, 0x51, 0x24, 0x64, 0xf2, 0xee, 0x58, 0xc1, + 0xa0, 0x00, 0x58, 0x81, 0x90, 0x00, 0x2c, 0x10, 0xb0, 0x00, 0xe1, 0xf0, 0x34, 0x18, 0xc1, 0xe1, + 0x0b, 0x20, 0x00, 0x00, 0x04, 0x25, 0xab, 0x01, 0x00, 0x00, 0x06, 0x2e, 0x0c, 0x20, 0x00, 0x23, + 0x6b, 0x0a, 0x00, 0x00, 0x04, 0x20, 0x6b, 0x22, 0x00, 0x00, 0x06, 0x2e, 0x0c, 0x20, 0x00, 0x23, + 0xcb, 0x24, 0x00, 0x00, 0x40, 0xe1, 0x24, 0x18, 0xe1, 0xf0, 0x00, 0x00, 0x34, 0x14, 0xb1, 0xf1, + 0x0b, 0x20, 0x00, 0x00, 0x0b, 0x1e, 0x00, 0x00, 0x04, 0x21, 0x6b, 0x22, 0x00, 0x00, 0x04, 0x2a, + 0xab, 0x01, 0x00, 0x00, 0x0c, 0x20, 0x00, 0x23, 0x6b, 0x0a, 0x00, 0x00, 0x30, 0xf1, 0x24, 0x14, + 0xe1, 0xf0, 0x00, 0x00, 0x08, 0x20, 0x00, 0x40, 0x34, 0x18, 0x2c, 0x20, 0x08, 0x70, 0x0c, 0x30, + 0x38, 0x11, 0x0c, 0x40, 0xf8, 0x02, 0xc1, 0xe1, 0x0b, 0x05, 0x00, 0x00, 0x0c, 0x20, 0x00, 0x40, + 0x08, 0xe0, 0x00, 0x30, 0x26, 0x2e, 0x0c, 0x30, 0x30, 0x14, 0x0c, 0x40, 0x00, 0x09, 0x0b, 0x05, + 0x00, 0x00, 0x0c, 0x20, 0xc4, 0x52, 0x26, 0x2e, 0x0c, 0x30, 0x30, 0x1d, 0x0c, 0x40, 0x50, 0x01, + 0x0b, 0x05, 0x00, 0x00, 0x40, 0xe1, 0x24, 0x18, 0xe1, 0xf0, 0x00, 0x00, 0x3c, 0x10, 0x10, 0x00, + 0x08, 0x70, 0x00, 0x30, 0xd1, 0xc1, 0x2c, 0x70, 0x00, 0x01, 0xb9, 0x70, 0x34, 0x07, 0x0b, 0x07, + 0x00, 0x00, 0x38, 0x30, 0x20, 0x11, 0x38, 0xd0, 0x34, 0x07, 0x04, 0x20, 0x06, 0xc7, 0x0c, 0xc0, + 0x20, 0x11, 0x8b, 0x07, 0x00, 0x00, 0xb1, 0x2d, 0x0c, 0x20, 0x30, 0x11, 0x0c, 0x30, 0x80, 0x1e, + 0x36, 0x32, 0x8b, 0x07, 0x00, 0x00, 0xb9, 0x2d, 0x08, 0x00, 0x38, 0x7c, 0x04, 0x00, 0x06, 0x56, + 0x0c, 0x50, 0x38, 0x07, 0xa9, 0x70, 0x38, 0x07, 0x77, 0x78, 0xa9, 0x75, 0x02, 0x00, 0x4b, 0x08, + 0x00, 0x00, 0xeb, 0x2e, 0x00, 0x00, 0xab, 0x31, 0x00, 0x00, 0x6b, 0x30, 0x00, 0x00, 0x38, 0x60, + 0x34, 0x07, 0x08, 0x70, 0xab, 0x8f, 0x2c, 0x70, 0xab, 0x0f, 0xb9, 0x76, 0x04, 0x00, 0x04, 0x61, + 0x08, 0x70, 0x00, 0x40, 0xb9, 0x67, 0x70, 0x10, 0xf2, 0x00, 0xc4, 0x30, 0x04, 0x40, 0x04, 0x50, + 0x0c, 0x60, 0x20, 0x00, 0x52, 0x03, 0xa6, 0x42, 0x25, 0x50, 0xb4, 0x61, 0x02, 0x06, 0xa6, 0x44, + 0x25, 0x55, 0xa6, 0x33, 0x42, 0xf9, 0xf2, 0xfa, 0x06, 0x24, 0x06, 0x35, 0xe1, 0xf0, 0x00, 0x00, + 0x3a, 0x59, 0x64, 0x20, 0x00, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x16, 0x0e, 0x16, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x18, 0x20, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x18, 0x18, 0x12, 0x00, 0x14, 0xc8, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x14, 0x64, 0x08, 0x08, 0xe8, 0x03, 0x2c, 0x01, 0x14, 0x32, 0x10, 0x10, + 0x20, 0x18, 0x07, 0x00, 0x64, 0x00, 0x64, 0x10, 0x63, 0x07, 0x02, 0x00, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x64, 0xc0, 0x12, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x0f, 0x60, 0x0f, 0x30, 0x31, 0x83, 0x00, 0xff, 0x0f, 0xff, 0x0f, 0x00, 0x80, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x0b, 0x16, 0x0c, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x80, 0x2c, 0x01, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x2c, 0x01, 0x01, 0x00, + 0x00, 0x80, 0x00, 0x00, 0xc8, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0xc8, 0x00, 0x01, 0x00, + 0x40, 0xe2, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0xff, 0x00, 0x30, 0x00, 0xff, 0x05, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0xa8, 0x00, 0x10, 0x3f, 0x10, 0x3f, 0x64, 0x3c, 0x10, 0x00, + 0x00, 0x00, 0x04, 0x82, 0x00, 0x00, 0xff, 0x0f, 0x01, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x66, 0x7f, 0xf0, 0x07, 0x00, 0xf0, 0xff, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe8, 0x03, 0x00, 0x0f, 0x16, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x54, 0xff, 0x05, 0x00, 0xb8, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x51, 0x84, 0x40, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x3f, 0x00, 0x88, 0xbf, + 0x01, 0x20, 0x00, 0x00, 0x0c, 0x0d, 0x0e, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, + 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x21, 0x22, 0x23, 0x0a, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, + 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, + 0x00, 0x00, 0x00, 0x0c, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x00, 0xff, 0x00, 0x30, 0x86, + 0x00, 0x00, 0x00, 0xe0, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xff, 0x0f, 0x00, + 0xd5, 0x70, 0x65, 0x00, 0xd5, 0x71, 0x65, 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, 0x33, 0x29, 0x0b, 0x01, 0x38, 0x28, 0x10, 0x00, 0x38, 0x28, 0x10, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x26, 0x07, 0x13, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0xff, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x09, 0x01, 0x04, 0x00, 0x09, 0x01, 0x04, 0x00, 0x09, + 0x01, 0x04, 0x00, 0x09, 0x01, 0x04, 0x00, 0x09, 0x01, 0x04, 0x00, 0x09, 0x01, 0x04, 0x00, 0x09, + 0x01, 0x04, 0x00, 0x09, 0x01, 0x04, 0x00, 0x09, 0x01, 0x04, 0x00, 0x09, 0x00, 0x02, 0x08, 0x09, + 0x00, 0x02, 0x08, 0x09, 0x01, 0x04, 0x00, 0x09, 0x01, 0x04, 0x00, 0x09, 0x01, 0x04, 0x00, 0x0f, + 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x0f, + 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x0f, 0x00, 0x02, 0x08, 0x0f, + 0x00, 0x02, 0x08, 0x0f, 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x0f, + 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, + 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, + 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x0b, + 0x01, 0x04, 0x00, 0x0b, 0x01, 0x04, 0x00, 0x0b, 0x01, 0x04, 0x00, 0x0b, 0x00, 0x02, 0x08, 0x0b, + 0x00, 0x02, 0x08, 0x0b, 0x01, 0x04, 0x00, 0x0b, 0x01, 0x04, 0x00, 0x0b, 0x01, 0x04, 0x00, 0x0b, + 0x01, 0x04, 0x00, 0x0b, 0x01, 0x04, 0x00, 0x0b, 0x01, 0x04, 0x00, 0x0b, 0x01, 0x04, 0x00, 0x0b, + 0x01, 0x04, 0x00, 0x0b, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x00, 0x02, 0x08, 0x0c, + 0x00, 0x02, 0x08, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, + 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, + 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x00, 0x02, 0x08, 0x0c, + 0x00, 0x02, 0x08, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, + 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, + 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x00, 0x02, 0x08, 0x0c, + 0x00, 0x02, 0x08, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, + 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, + 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x00, 0x02, 0x08, 0x0c, + 0x00, 0x02, 0x08, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0c, 0x01, 0x04, 0x00, 0x0d, + 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, + 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x00, 0x02, 0x08, 0x0d, + 0x00, 0x02, 0x08, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, + 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, + 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x00, 0x02, 0x08, 0x0d, + 0x00, 0x02, 0x08, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, + 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, + 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x00, 0x02, 0x08, 0x0d, + 0x00, 0x02, 0x08, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, + 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, + 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x00, 0x02, 0x08, 0x0d, + 0x00, 0x02, 0x08, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, + 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, + 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x00, 0x02, 0x08, 0x0d, + 0x00, 0x02, 0x08, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, + 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, + 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x00, 0x02, 0x08, 0x0d, + 0x00, 0x02, 0x08, 0x0d, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, + 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, + 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x00, 0x02, 0x08, 0x0e, + 0x00, 0x02, 0x08, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, + 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, + 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x00, 0x02, 0x08, 0x0e, + 0x00, 0x02, 0x08, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, + 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, + 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, + 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x0f, + 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x0f, 0x00, 0x02, 0x08, 0x0f, + 0x00, 0x02, 0x08, 0x0f, 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x0f, + 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x0f, + 0x01, 0x04, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x10, 0x01, 0x04, 0x00, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x01, 0x04, 0x10, 0x0d, + 0x01, 0x04, 0x10, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, + 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, + 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x01, 0x04, 0x00, 0x0d, 0x00, 0x02, 0x08, 0x0d, + 0x00, 0x02, 0x08, 0x0d, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, + 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, + 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x01, 0x04, 0x00, 0x0e, 0x00, 0x02, 0x08, 0x0e, + 0x00, 0x02, 0x08, 0x0e, 0x00, 0x02, 0x08, 0x0e, 0x00, 0x02, 0x08, 0x0e, 0x00, 0x02, 0x08, 0x0b, + 0x00, 0x02, 0x08, 0x0b, 0x00, 0x02, 0x08, 0x0b, 0x00, 0x02, 0x08, 0x0b, 0x00, 0x02, 0x08, 0x0b, + 0x00, 0x02, 0x08, 0x0b, 0x00, 0x02, 0x08, 0x0b, 0x00, 0x02, 0x08, 0x0b, 0x00, 0x02, 0x08, 0x0b, + 0x00, 0x02, 0x08, 0x0b, 0x00, 0x02, 0x08, 0x0b, 0x00, 0x02, 0x08, 0x0b, 0x00, 0x02, 0x08, 0x0b, + 0x00, 0x02, 0x08, 0x0b, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x18, 0x1a, 0x00, 0x02, 0x18, 0x1a, 0x00, 0x02, 0x08, 0x0e, + 0x00, 0x02, 0x08, 0x0e, 0x00, 0x02, 0x08, 0x0e, 0x00, 0x02, 0x08, 0x0e, 0x00, 0x02, 0x08, 0x0e, + 0x00, 0x02, 0x08, 0x0e, 0x00, 0x02, 0x08, 0x0e, 0x00, 0x02, 0x08, 0x0e, 0x00, 0x02, 0x08, 0x0e, + 0x00, 0x02, 0x08, 0x0e, 0x00, 0x02, 0x08, 0x0e, 0x00, 0x02, 0x08, 0x0e, 0x00, 0x02, 0x08, 0x0e, + 0x00, 0x02, 0x08, 0x0e, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, 0x00, 0x02, 0x08, 0x10, + 0x00, 0x02, 0x08, 0x10, 0x00, 0xc0, 0xf1, 0xff, 0x21, 0xc0, 0xf1, 0xff, 0x42, 0xc0, 0xf1, 0xff, + 0x63, 0xc0, 0xf1, 0xff, 0x84, 0xc0, 0xf1, 0xff, 0xa5, 0xc0, 0xf1, 0xff, 0xc6, 0xc0, 0xf1, 0xff, + 0xe7, 0xc0, 0xf1, 0xff, 0x08, 0xc1, 0xf1, 0xff, 0x29, 0xc1, 0xf1, 0xff, 0x4a, 0xc1, 0xf1, 0xff, + 0x6b, 0xc1, 0xf1, 0xff, 0x8c, 0xc1, 0xf1, 0xff, 0xad, 0xc1, 0xf1, 0xff, 0xce, 0xc1, 0xf1, 0xff, + 0xef, 0xc1, 0xf1, 0xff, 0x10, 0xc2, 0xf1, 0xff, 0x31, 0xc2, 0xf1, 0xff, 0x52, 0xc2, 0xf1, 0xff, + 0x73, 0xc2, 0xf1, 0xfb, 0x94, 0xc2, 0xf1, 0xf7, 0xb5, 0xc2, 0xf1, 0xf7, 0x00, 0xc0, 0xf1, 0xff, + 0x00, 0xc0, 0xf1, 0xff, 0x00, 0xc0, 0xf1, 0xff, 0x00, 0xc0, 0xf1, 0xff, 0x00, 0xc0, 0xf1, 0xff, + 0x00, 0xc0, 0xf1, 0xff, 0x00, 0xc0, 0xf1, 0xff, 0x00, 0xc0, 0xf1, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xc0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2e, 0x28, 0x06, 0x00, 0x2e, 0x28, 0x06, 0x00, 0x2d, 0x28, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x3f, 0xf0, 0x03, 0x00, + 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xf8, 0x03, 0x00, 0x18, 0x18, 0x18, 0x10, + 0x18, 0x18, 0x18, 0x10, 0x18, 0x18, 0x18, 0x10, 0x18, 0x18, 0x18, 0x10, 0x18, 0x18, 0x18, 0x10, + 0x18, 0x18, 0x18, 0x10, 0x18, 0x18, 0x18, 0x10, 0x18, 0x18, 0x18, 0x10, 0x18, 0x18, 0x18, 0x10, + 0x18, 0x18, 0x18, 0x10, 0x18, 0x18, 0x18, 0x10, 0x18, 0x18, 0x18, 0x10, 0x18, 0x18, 0x18, 0x10, + 0x18, 0x18, 0x18, 0x10, 0x18, 0x18, 0x18, 0x10, 0x18, 0x18, 0x18, 0x10, 0x18, 0x18, 0x18, 0x10, + 0x18, 0x18, 0x18, 0x10, 0x18, 0x18, 0x18, 0x10, 0x18, 0x18, 0x18, 0x10, 0x18, 0x18, 0x18, 0x10, + 0x18, 0x18, 0x18, 0x10, 0x10, 0x10, 0x10, 0x10, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, + 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, + 0x04, 0x41, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x16, 0x0e, 0x16, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x60, 0x21, 0x06, 0x00, 0x90, 0x00, 0x00, 0x00, 0x18, 0x20, 0x00, 0x00, + 0x48, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x30, 0x18, 0x12, 0x00, 0x14, 0xc8, 0x00, 0x00, + 0x08, 0x08, 0x00, 0x00, 0x14, 0x64, 0x08, 0x08, 0xe8, 0x03, 0x2c, 0x01, 0x14, 0x32, 0x10, 0x10, + 0x20, 0x18, 0x07, 0x00, 0x64, 0x00, 0x64, 0x10, 0x63, 0x07, 0x02, 0x00, 0x32, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x64, 0xc0, 0x12, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xa0, 0x0f, 0x00, 0x00, 0x30, 0x31, 0x83, 0x01, 0xff, 0x0f, 0xff, 0x0f, 0x00, 0x80, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x0b, 0x17, 0x0f, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x80, 0x2c, 0x01, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x2c, 0x01, 0x01, 0x00, + 0x00, 0x80, 0x00, 0x00, 0xc8, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0xc8, 0x00, 0x01, 0x00, + 0x40, 0xc2, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0xff, 0x00, 0x30, 0x00, 0xff, 0x05, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0xa8, 0x00, 0x10, 0x3f, 0x10, 0x3f, 0x64, 0x3c, 0x10, 0x00, + 0x00, 0x00, 0x04, 0x82, 0x00, 0x00, 0xff, 0x0f, 0x01, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x66, 0x20, 0x00, 0x02, 0x00, 0xf0, 0xff, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe8, 0x03, 0x00, 0x0f, 0x17, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x07, 0x07, 0x00, 0xec, 0x53, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x51, 0x84, 0x40, 0x00, 0x15, 0x52, 0x80, 0x00, 0x14, 0x40, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x3f, 0x00, 0x88, 0xbf, + 0x01, 0x20, 0x00, 0x00, 0x0c, 0x0d, 0x0e, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, + 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x21, 0x22, 0x23, 0x0a, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, + 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, + 0x00, 0x00, 0x00, 0x0c, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x00, 0xff, 0x00, 0x30, 0x86, + 0x00, 0x00, 0x00, 0x52, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xff, 0x0f, 0x00, + 0x38, 0x28, 0x10, 0x00, 0x48, 0x38, 0x28, 0x10, 0x48, 0x29, 0x20, 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, 0x50, 0x29, 0x28, 0x01, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x26, 0x07, 0x13, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x23, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x23, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x23, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x23, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x23, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x23, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x23, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x23, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x23, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x23, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x23, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x23, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x23, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, 0x28, 0xa6, 0x08, 0x08, + 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x23, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, 0x27, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, + 0x23, 0x8e, 0x08, 0x08, 0x29, 0xa6, 0x08, 0x08, 0x22, 0x8e, 0x08, 0x08, 0x26, 0x9e, 0x08, 0x08, + 0x26, 0x9e, 0x08, 0x08, 0x25, 0x96, 0x08, 0x08, 0x23, 0x8e, 0x08, 0x08, 0x00, 0x02, 0x08, 0x08, + 0x00, 0x02, 0x08, 0x08, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, 0x00, 0x02, 0x08, 0x04, + 0x00, 0x02, 0x08, 0x04, 0x00, 0xc0, 0xf1, 0x3f, 0x21, 0xc0, 0xf1, 0x3f, 0x42, 0xc0, 0xf1, 0x3f, + 0x63, 0xc0, 0xf1, 0x3f, 0x84, 0xc0, 0xf1, 0x3f, 0xa5, 0xc0, 0xf1, 0x3f, 0xc6, 0xc0, 0xf1, 0x3f, + 0xe7, 0xc0, 0xf1, 0x3f, 0x08, 0xc1, 0xf1, 0x3f, 0x29, 0xc1, 0xf1, 0x3f, 0x4a, 0xc1, 0xf1, 0x3f, + 0x6b, 0xc1, 0xf1, 0x3f, 0x8c, 0xc1, 0xf1, 0x3f, 0xad, 0xc1, 0xf1, 0x3f, 0xce, 0xc1, 0xf1, 0x3f, + 0xef, 0xc1, 0xf1, 0x3f, 0x10, 0xc2, 0xf1, 0x3f, 0x31, 0xc2, 0xf1, 0x3f, 0x52, 0xc2, 0xf1, 0x3f, + 0x73, 0xc2, 0xf1, 0x3f, 0x94, 0xc2, 0xf1, 0x7f, 0xb5, 0xc2, 0xf1, 0x3f, 0x00, 0xc0, 0xf1, 0x3f, + 0x00, 0xc0, 0xf1, 0x3f, 0x00, 0xc0, 0xf1, 0x3f, 0x00, 0xc0, 0xf1, 0x3f, 0x00, 0xc0, 0xf1, 0x3f, + 0x00, 0xc0, 0xf1, 0x3f, 0x00, 0xc0, 0xf1, 0x3f, 0x00, 0xc0, 0xf1, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x40, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x28, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0, 0x03, 0x00, + 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x2e, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x10, 0x10, 0x10, 0x10, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, + 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, 0x04, 0x41, 0x10, 0x00, + 0xcc, 0xcc, 0xcc, 0x0c, 0x43, 0x4d, 0x43, 0x53, 0x32, 0x54, 0x41, 0x47 +}; + +#endif // __IST30XXC_CMCS_BIN_H__ diff --git a/drivers/input/touchscreen/ist30xxc/ist30xxc_misc.c b/drivers/input/touchscreen/ist30xxc/ist30xxc_misc.c new file mode 100644 index 00000000..48d2b58d --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/ist30xxc_misc.c @@ -0,0 +1,1502 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xxc.h" +#include "ist30xxc_update.h" +#include "ist30xxc_misc.h" + +#define TSP_CH_UNUSED (0) +#define TSP_CH_SCREEN (1) +#define TSP_CH_GTX (2) +#define TSP_CH_KEY (3) +#define TSP_CH_UNKNOWN (-1) + +#define TOUCH_NODE_PARSING_DEBUG (0) + +static u32 *ist30xx_frame_buf; +static u32 *ist30xx_frame_rawbuf; +static u32 *ist30xx_frame_fltbuf; + +int ist30xx_check_valid_ch(struct ist30xx_data *data, int ch_tx, int ch_rx) +{ + int i; + TKEY_INFO *tkey = &data->tkey_info; + TSP_INFO *tsp = &data->tsp_info; + + if (unlikely((ch_tx >= tsp->ch_num.tx) || (ch_rx >= tsp->ch_num.rx))) + return TSP_CH_UNKNOWN; + + if ((ch_tx >= tsp->screen.tx) || (ch_rx >= tsp->screen.rx)) { + if (tsp->gtx.num) { + for (i = 0; i < tsp->gtx.num; i++) { + if ((ch_tx == tsp->gtx.ch_num[i]) && (ch_rx < tsp->screen.rx)) + return TSP_CH_GTX; + } + } + + if (tkey->enable) { + for (i = 0; i < tkey->key_num; i++) { + if ((ch_tx == tkey->ch_num[i].tx) && + (ch_rx == tkey->ch_num[i].rx)) + return TSP_CH_KEY; + } + } + } else { + return TSP_CH_SCREEN; + } + + return TSP_CH_UNUSED; +} + +int ist30xx_parse_touch_node(struct ist30xx_data *data, u8 flag, + struct TSP_NODE_BUF *node) +{ +#if TOUCH_NODE_PARSING_DEBUG + int j; + TSP_INFO *tsp = &data->tsp_info; +#endif + int i; + u16 *raw = (u16 *)&node->raw; + u16 *base = (u16 *)&node->base; + u16 *filter = (u16 *)&node->filter; + u32 *tmp_rawbuf = ist30xx_frame_rawbuf; + u32 *tmp_fltbuf = ist30xx_frame_fltbuf; + + for (i = 0; i < node->len; i++) { + if (flag & (NODE_FLAG_RAW | NODE_FLAG_BASE)) { + *raw++ = *tmp_rawbuf & 0xFFF; + *base++ = (*tmp_rawbuf >> 16) & 0xFFF; + + tmp_rawbuf++; + } + if (flag & NODE_FLAG_FILTER) + *filter++ = *tmp_fltbuf++ & 0xFFF; + } + +#if TOUCH_NODE_PARSING_DEBUG + tsp_info("RAW - %d * %d\n", tsp->ch_num.tx, tsp->ch_num.rx); + for (i = 0; i < tsp->ch_num.tx; i++) { + printk("\n[ TSP ] "); + for (j = 0; j < tsp->ch_num.rx; j++) + printk("%4d ", node->raw[(i * tsp->ch_num.rx) + j]); + } + + tsp_info("BASE - %d * %d\n", tsp->ch_num.tx, tsp->ch_num.rx); + for (i = 0; i < tsp->ch_num.tx; i++) { + printk("\n[ TSP ] "); + for (j = 0; j < tsp->ch_num.rx; j++) + printk("%4d ", node->base[(i * tsp->ch_num.rx) + j]); + } + + tsp_info("FILTER - %d * %d\n", tsp->ch_num.tx, tsp->ch_num.rx); + for (i = 0; i < tsp->ch_num.tx; i++) { + printk("\n[ TSP ] "); + for (j = 0; j < tsp->ch_num.rx; j++) + printk("%4d ", node->filter[(i * tsp->ch_num.rx) + j]); + } +#endif + + return 0; +} + +int print_touch_node(struct ist30xx_data *data, u8 flag, + struct TSP_NODE_BUF *node, char *buf) +{ + int i, j; + int count = 0; + int val = 0; + const int msg_len = 128; + char msg[msg_len]; + TSP_INFO *tsp = &data->tsp_info; + + if (tsp->dir.swap_xy) { + for (i = 0; i < tsp->ch_num.rx; i++) { + for (j = 0; j < tsp->ch_num.tx; j++) { + if (flag == NODE_FLAG_RAW) + val = (int)node->raw[(j * tsp->ch_num.rx) + i]; + else if (flag == NODE_FLAG_BASE) + val = (int)node->base[(j * tsp->ch_num.rx) + i]; + else if (flag == NODE_FLAG_FILTER) + val = (int)node->filter[(j * tsp->ch_num.rx) + i]; + else if (flag == NODE_FLAG_DIFF) + val = (int)(node->raw[(j * tsp->ch_num.rx) + i] + - node->base[(j * tsp->ch_num.rx) + i]); + else + return 0; + + if (val < 0) val = 0; + + if (ist30xx_check_valid_ch(data, j, i) == TSP_CH_UNUSED) + count += snprintf(msg, msg_len, "%4d ", 0); + else + count += snprintf(msg, msg_len, "%4d ", val); + + strncat(buf, msg, msg_len); + } + + count += snprintf(msg, msg_len, "\n"); + strncat(buf, msg, msg_len); + } + } else { + for (i = 0; i < tsp->ch_num.tx; i++) { + for (j = 0; j < tsp->ch_num.rx; j++) { + if (flag == NODE_FLAG_RAW) + val = (int)node->raw[(i * tsp->ch_num.rx) + j]; + else if (flag == NODE_FLAG_BASE) + val = (int)node->base[(i * tsp->ch_num.rx) + j]; + else if (flag == NODE_FLAG_FILTER) + val = (int)node->filter[(i * tsp->ch_num.rx) + j]; + else if (flag == NODE_FLAG_DIFF) + val = (int)(node->raw[(i * tsp->ch_num.rx) + j] + - node->base[(i * tsp->ch_num.rx) + j]); + else + return 0; + + if (val < 0) val = 0; + + if (ist30xx_check_valid_ch(data, i, j) == TSP_CH_UNUSED) + count += snprintf(msg, msg_len, "%4d ", 0); + else + count += snprintf(msg, msg_len, "%4d ", val); + + strncat(buf, msg, msg_len); + } + + count += snprintf(msg, msg_len, "\n"); + strncat(buf, msg, msg_len); + } + } + + return count; +} + +int parse_tsp_node(struct ist30xx_data *data, u8 flag, + struct TSP_NODE_BUF *node, s16 *buf16, bool only_screen) +{ + int i, j; + s16 val = 0; + TSP_INFO *tsp = &data->tsp_info; + + if (unlikely((flag != NODE_FLAG_RAW) && (flag != NODE_FLAG_BASE) && + (flag != NODE_FLAG_FILTER) && (flag != NODE_FLAG_DIFF))) + return -EPERM; + + for (i = 0; i < tsp->ch_num.tx; i++) { + for (j = 0; j < tsp->ch_num.rx; j++) { + if (only_screen) { + if (ist30xx_check_valid_ch(data, i, j) != TSP_CH_SCREEN) + continue; + } + switch (flag) { + case NODE_FLAG_RAW: + val = (s16)node->raw[(i * tsp->ch_num.rx) + j]; + break; + case NODE_FLAG_BASE: + val = (s16)node->base[(i * tsp->ch_num.rx) + j]; + break; + case NODE_FLAG_FILTER: + val = (s16)node->filter[(i * tsp->ch_num.rx) + j]; + break; + case NODE_FLAG_DIFF: + val = (s16)(node->raw[(i * tsp->ch_num.rx) + j] + - node->base[(i * tsp->ch_num.rx) + j]); + break; + } + + if (val < 0) + val = 0; + + if (ist30xx_check_valid_ch(data, i, j) == TSP_CH_UNUSED) + val = 0; + + *buf16++ = val; + } + } + + return 0; +} + +int ist30xx_read_touch_node(struct ist30xx_data *data, u8 flag, + struct TSP_NODE_BUF *node) +{ + int i; + int ret; + u32 addr; + u32 *tmp_rawbuf = ist30xx_frame_rawbuf; + u32 *tmp_fltbuf = ist30xx_frame_fltbuf; + + ist30xx_disable_irq(data); + + if (flag & NODE_FLAG_NO_CCP) { + ist30xx_reset(data, false); + ret = ist30xx_write_cmd(data->client, IST30XX_HIB_CMD, + ((eHCOM_CP_CORRECT_EN << 16) | (IST30XX_DISABLE & 0xFFFF))); + if (unlikely(ret)) + goto read_tsp_node_end; + + msleep(1000); + } + + ret = ist30xx_cmd_hold(data->client, 1); + if (unlikely(ret)) + goto read_tsp_node_end; + + addr = IST30XX_DA_ADDR(data->tags.raw_base); + if (flag & (NODE_FLAG_RAW | NODE_FLAG_BASE)) { + tsp_info("Reg addr: %x, size: %d\n", addr, node->len); + for (i = 0; i < node->len; i++) { + ret = ist30xx_read_buf(data->client, addr, tmp_rawbuf, 1); + if (unlikely(ret)) + goto reg_access_end; + + addr += IST30XX_DATA_LEN; + tmp_rawbuf++; + } + } + + addr = IST30XX_DA_ADDR(data->tags.filter_base); + if (flag & NODE_FLAG_FILTER) { + tsp_info("Reg addr: %x, size: %d\n", addr, node->len); + for (i = 0; i < node->len; i++) { + ret = ist30xx_read_buf(data->client, addr, tmp_fltbuf, 1); + if (unlikely(ret)) + goto reg_access_end; + + addr += IST30XX_DATA_LEN; + tmp_fltbuf++; + } + } + +reg_access_end: + ist30xx_cmd_hold(data->client, 0); + + if (flag & NODE_FLAG_NO_CCP) { + ist30xx_reset(data, false); + ist30xx_start(data); + } + +read_tsp_node_end: + ist30xx_enable_irq(data); + + return ret; +} + +/* sysfs: /sys/class/touch/node/refresh */ +ssize_t ist30xx_frame_refresh(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret = 0; + struct ist30xx_data *data = dev_get_drvdata(dev); + TSP_INFO *tsp = &data->tsp_info; + u8 flag = NODE_FLAG_RAW | NODE_FLAG_BASE | NODE_FLAG_FILTER; + + tsp_info("refresh\n"); + mutex_lock(&ist30xx_mutex); + ret = ist30xx_read_touch_node(data, flag, &tsp->node); + if (unlikely(ret)) { + mutex_unlock(&ist30xx_mutex); + tsp_err("cmd 1frame raw update fail\n"); + return sprintf(buf, "FAIL\n"); + } + mutex_unlock(&ist30xx_mutex); + + ist30xx_parse_touch_node(data, flag, &tsp->node); + + return sprintf(buf, "OK\n"); +} + + +/* sysfs: /sys/class/touch/node/read_nocp */ +ssize_t ist30xx_frame_nocp(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret = 0; + struct ist30xx_data *data = dev_get_drvdata(dev); + TSP_INFO *tsp = &data->tsp_info; + u8 flag = NODE_FLAG_RAW | NODE_FLAG_BASE | NODE_FLAG_FILTER | + NODE_FLAG_NO_CCP; + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_read_touch_node(data, flag, &tsp->node); + if (unlikely(ret)) { + mutex_unlock(&ist30xx_mutex); + tsp_err("cmd 1frame raw update fail\n"); + return sprintf(buf, "FAIL\n"); + } + mutex_unlock(&ist30xx_mutex); + + ist30xx_parse_touch_node(data, flag, &tsp->node); + + return sprintf(buf, "OK\n"); +} + + +/* sysfs: /sys/class/touch/node/base */ +ssize_t ist30xx_base_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + struct ist30xx_data *data = dev_get_drvdata(dev); + TSP_INFO *tsp = &data->tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xx baseline(%d)\n", tsp->node.len); + + count += print_touch_node(data, NODE_FLAG_BASE, &tsp->node, buf); + + return count; +} + + +/* sysfs: /sys/class/touch/node/raw */ +ssize_t ist30xx_raw_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + struct ist30xx_data *data = dev_get_drvdata(dev); + TSP_INFO *tsp = &data->tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xx raw(%d)\n", tsp->node.len); + + count += print_touch_node(data, NODE_FLAG_RAW, &tsp->node, buf); + + return count; +} + + +/* sysfs: /sys/class/touch/node/diff */ +ssize_t ist30xx_diff_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + struct ist30xx_data *data = dev_get_drvdata(dev); + TSP_INFO *tsp = &data->tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xx difference (%d)\n", tsp->node.len); + + count += print_touch_node(data, NODE_FLAG_DIFF, &tsp->node, buf); + + return count; +} + + +/* sysfs: /sys/class/touch/node/filter */ +ssize_t ist30xx_filter_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + struct ist30xx_data *data = dev_get_drvdata(dev); + TSP_INFO *tsp = &data->tsp_info; + + buf[0] = '\0'; + count = sprintf(buf, "dump ist30xx filter (%d)\n", tsp->node.len); + + count += print_touch_node(data, NODE_FLAG_FILTER, &tsp->node, buf); + + return count; +} + +/* sysfs: /sys/class/touch/sys/debug_mode */ +ssize_t ist30xx_debug_mode_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + int ret = 0; + int enable; + struct ist30xx_data *data = dev_get_drvdata(dev); + + sscanf(buf, "%d", &enable); + + if (unlikely((enable != 0) && (enable != 1))) { + tsp_err("input data error(%d)\n", enable); + return size; + } + + if (data->status.power) { + ret = ist30xx_write_cmd(data->client, IST30XX_HIB_CMD, + (eHCOM_SLEEP_MODE_EN << 16) | ((enable ? 0 : 1) & 0xFFFF)); + + if (ret) { + tsp_info("failed to set debug mode(%d)\n", enable); + } else { + data->debug_mode = enable; + tsp_info("debug mode %s\n", enable ? "start" : "stop"); + } + } else { + data->debug_mode = enable; + tsp_info("debug mode %s\n", enable ? "start" : "stop"); + } + + return size; +} + +#if IST30XX_JIG_MODE +/* sysfs: /sys/class/touch/sys/jig_mode */ +ssize_t ist30xx_jig_mode_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + int enable; + struct ist30xx_data *data = dev_get_drvdata(dev); + + sscanf(buf, "%d", &enable); + + if (unlikely((enable != 0) && (enable != 1))) { + tsp_err("input data error(%d)\n", enable); + return size; + } + + data->jig_mode = enable; + tsp_info("set jig mode: %s\n", enable ? "start" : "stop"); + + mutex_lock(&ist30xx_mutex); + ist30xx_reset(data, false); + ist30xx_start(data); + mutex_unlock(&ist30xx_mutex); + + return size; +} +#endif + +extern int calib_ms_delay; +/* sysfs: /sys/class/touch/sys/clb_time */ +ssize_t ist30xx_calib_time_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + int ms_delay; + + sscanf(buf, "%d", &ms_delay); + + if (ms_delay > 10 && ms_delay < 1000) // 1sec ~ 100sec + calib_ms_delay = ms_delay; + + tsp_info("Calibration wait time %dsec\n", calib_ms_delay / 10); + + return size; +} + +/* sysfs: /sys/class/touch/sys/clb */ +ssize_t ist30xx_calib_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + + ist30xx_reset(data, false); + ist30xx_calibrate(data, 1); + + mutex_unlock(&ist30xx_mutex); + ist30xx_start(data); + + return 0; +} + +/* sysfs: /sys/class/touch/sys/clb_result */ +ssize_t ist30xx_calib_result_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret; + int count = 0; + u32 value; + struct ist30xx_data *data = dev_get_drvdata(dev); + + ret = ist30xx_read_cmd(data, eHCOM_GET_CAL_RESULT, &value); + if (unlikely(ret)) { + mutex_lock(&ist30xx_mutex); + ist30xx_reset(data, false); + ist30xx_start(data); + mutex_unlock(&ist30xx_mutex); + tsp_warn("Error Read Calibration Result\n"); + count = sprintf(buf, "Error Read Calibration Result\n"); + goto calib_show_end; + } + + count = sprintf(buf, + "Calibration Status : %d, Max raw gap : %d - (raw: %08x)\n", + CALIB_TO_STATUS(value), CALIB_TO_GAP(value), value); + +calib_show_end: + + return count; +} + +/* sysfs: /sys/class/touch/sys/power_on */ +ssize_t ist30xx_power_on_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + + tsp_info("Power enable: %d\n", true); + + mutex_lock(&ist30xx_mutex); + ist30xx_internal_resume(data); + ist30xx_enable_irq(data); + mutex_unlock(&ist30xx_mutex); + + ist30xx_start(data); + + return 0; +} + +/* sysfs: /sys/class/touch/sys/power_off */ +ssize_t ist30xx_power_off_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + + tsp_info("Power enable: %d\n", false); + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + ist30xx_internal_suspend(data); + mutex_unlock(&ist30xx_mutex); + + return 0; +} + +/* sysfs: /sys/class/touch/sys/errcnt */ +ssize_t ist30xx_errcnt_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int err_cnt; + struct ist30xx_data *data = dev_get_drvdata(dev); + + sscanf(buf, "%d", &err_cnt); + + if (unlikely(err_cnt < 0)) + return size; + + tsp_info("Request reset error count: %d\n", err_cnt); + + data->max_irq_err_cnt = err_cnt; + + return size; +} + +/* sysfs: /sys/class/touch/sys/scancnt */ +ssize_t ist30xx_scancnt_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int retry; + struct ist30xx_data *data = dev_get_drvdata(dev); + + sscanf(buf, "%d", &retry); + + if (unlikely(retry < 0)) + return size; + + tsp_info("Timer scan count retry: %d\n", retry); + + data->max_scan_retry = retry; + + return size; +} + +extern int timer_period_ms; +/* sysfs: /sys/class/touch/sys/timerms */ +ssize_t ist30xx_timerms_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ms; + + sscanf(buf, "%d", &ms); + + if (unlikely((ms < 0) || (ms > 10000))) + return size; + + tsp_info("Timer period ms: %dms\n", ms); + + timer_period_ms = ms; + + return size; +} + +extern int ist30xx_dbg_level; +/* sysfs: /sys/class/touch/sys/printk */ +ssize_t ist30xx_printk_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int level; + + sscanf(buf, "%d", &level); + + if (unlikely((level < DEV_ERR) || (level > DEV_VERB))) + return size; + + tsp_info("prink log level: %d\n", level); + + ist30xx_dbg_level = level; + + return size; +} + +ssize_t ist30xx_printk_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + return sprintf(buf, "prink log level: %d\n", ist30xx_dbg_level); +} + +/* sysfs: /sys/class/touch/sys/printk5 */ +ssize_t ist30xx_printk5_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + tsp_info("prink log level:%d\n", DEV_DEBUG); + + ist30xx_dbg_level = DEV_DEBUG; + + return 0; +} + +/* sysfs: /sys/class/touch/sys/printk6 */ +ssize_t ist30xx_printk6_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + tsp_info("prink log level:%d\n", DEV_VERB); + + ist30xx_dbg_level = DEV_VERB; + + return 0; +} + +#if IST30XX_GESTURE +/* sysfs: /sys/class/touch/sys/gesture */ +ssize_t ist30xx_gesture_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int gesture; + struct ist30xx_data *data = dev_get_drvdata(dev); + + sscanf(buf, "%d", &gesture); + + tsp_info("gesture enable : %s\n", (gesture == 0) ? "disable" : "enable"); + + data->gesture = (gesture == 0) ? false : true; + + return size; +} +#endif + +/* sysfs: /sys/class/touch/sys/touch_rate */ +ssize_t ist30xx_touch_rate_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + int rate; + struct ist30xx_data *data = dev_get_drvdata(dev); + + sscanf(buf, "%d", &rate); // us + + if (unlikely(rate > 0xFFFF)) // over 65.5ms + return size; + + data->report_rate = rate; + ist30xx_write_cmd(data->client, IST30XX_HIB_CMD, + ((eHCOM_SET_TIME_ACTIVE << 16) | (data->report_rate & 0xFFFF))); + tsp_info(" active rate : %dus\n", data->report_rate); + + return size; +} + +/* sysfs: /sys/class/touch/sys/idle_rate */ +ssize_t ist30xx_idle_scan_rate_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + int rate; + struct ist30xx_data *data = dev_get_drvdata(dev); + + sscanf(buf, "%d", &rate); // us + + if (unlikely(rate > 0xFFFF)) // over 65.5ms + return size; + + data->idle_rate = rate; + ist30xx_write_cmd(data->client, IST30XX_HIB_CMD, + ((eHCOM_SET_TIME_IDLE << 16) | (data->idle_rate & 0xFFFF))); + tsp_info(" idle rate : %dus\n", data->idle_rate); + + return size; +} + +extern void ist30xx_set_ta_mode(bool charging); +/* sysfs: /sys/class/touch/sys/mode_ta */ +ssize_t ist30xx_ta_mode_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int mode; + + sscanf(buf, "%d", &mode); + + if (unlikely((mode != 0) && (mode != 1))) // enable/disable + return size; + + ist30xx_set_ta_mode(mode); + + return size; +} + +extern void ist30xx_set_call_mode(int mode); +/* sysfs: /sys/class/touch/sys/mode_call */ +ssize_t ist30xx_call_mode_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + int mode; + + sscanf(buf, "%d", &mode); + + if (unlikely((mode != 0) && (mode != 1))) // enable/disable + return size; + + ist30xx_set_call_mode(mode); + + return size; +} + +extern void ist30xx_set_cover_mode(int mode); +/* sysfs: /sys/class/touch/sys/mode_cover */ +ssize_t ist30xx_cover_mode_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + int mode; + + sscanf(buf, "%d", &mode); + + if (unlikely((mode != 0) && (mode != 1))) // enable/disable + return size; + + ist30xx_set_cover_mode(mode); + + return size; +} + +#define TUNES_CMD_WRITE (1) +#define TUNES_CMD_READ (2) +#define TUNES_CMD_REG_ENTER (3) +#define TUNES_CMD_REG_EXIT (4) +#define TUNES_CMD_UPDATE_PARAM (5) +#define TUNES_CMD_UPDATE_FW (6) + +#define DIRECT_ADDR(n) (IST30XX_DA_ADDR(n)) +#define DIRECT_CMD_WRITE ('w') +#define DIRECT_CMD_READ ('r') + +#pragma pack(1) +typedef struct { + u8 cmd; + u32 addr; + u16 len; +} TUNES_INFO; +#pragma pack() +#pragma pack(1) +typedef struct { + char cmd; + u32 addr; + u32 val; +} DIRECT_INFO; +#pragma pack() + +static TUNES_INFO ist30xx_tunes; +static DIRECT_INFO ist30xx_direct; +static bool tunes_cmd_done = false; +static bool ist30xx_reg_mode = false; + +/* sysfs: /sys/class/touch/sys/direct */ +ssize_t ist30xx_direct_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret = -EPERM; + struct ist30xx_data *data = dev_get_drvdata(dev); + DIRECT_INFO *direct = (DIRECT_INFO *)&ist30xx_direct; + + sscanf(buf, "%c %x %x", &direct->cmd, &direct->addr, &direct->val); + + tsp_debug("Direct cmd: %c, addr: %x, val: %x\n", + direct->cmd, direct->addr, direct->val); + + if (unlikely((direct->cmd != DIRECT_CMD_WRITE) && + (direct->cmd != DIRECT_CMD_READ))) { + tsp_warn("Direct cmd is not correct!\n"); + return size; + } + + if (ist30xx_intr_wait(data, 30) < 0) + return size; + + data->status.event_mode = false; + if (direct->cmd == DIRECT_CMD_WRITE) { + ist30xx_cmd_hold(data->client, 1); + ist30xx_write_cmd(data->client, DIRECT_ADDR(direct->addr), + direct->val); + ist30xx_read_reg(data->client, DIRECT_ADDR(direct->addr), + &direct->val); + ret = ist30xx_cmd_hold(data->client, 0); + if (ret) { + tsp_debug("Direct write fail\n"); + ist30xx_reset(data, false); + ist30xx_start(data); + } else { + tsp_debug("Direct write addr: %x, val: %x\n", + direct->addr, direct->val); + } + } + data->status.event_mode = true; + + return size; +} + +#define DIRECT_BUF_COUNT (4) +ssize_t ist30xx_direct_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int i, ret, count = 0; + int len; + u32 addr; + u32 buf32[DIRECT_BUF_COUNT]; + int max_len = DIRECT_BUF_COUNT; + const int msg_len = 256; + char msg[msg_len]; + struct ist30xx_data *data = dev_get_drvdata(dev); + DIRECT_INFO *direct = (DIRECT_INFO *)&ist30xx_direct; + + if (unlikely(direct->cmd != DIRECT_CMD_READ)) + return sprintf(buf, "ex) echo r addr len > direct\n"); + + len = direct->val; + addr = DIRECT_ADDR(direct->addr); + + if (ist30xx_intr_wait(data, 30) < 0) + return 0; + + data->status.event_mode = false; + ist30xx_cmd_hold(data->client, 1); + + while (len > 0) { + if (len < max_len) max_len = len; + + memset(buf32, 0, sizeof(buf32)); + for (i = 0; i < max_len; i++) { + ret = ist30xx_read_buf(data->client, addr, &buf32[i], 1); + if (unlikely(ret)) { + count = sprintf(buf, "I2C Burst read fail, addr: %x\n", addr); + break; + } + + addr += IST30XX_DATA_LEN; + } + + for (i = 0; i < max_len; i++) { + count += snprintf(msg, msg_len, "0x%08x ", buf32[i]); + strncat(buf, msg, msg_len); + } + count += snprintf(msg, msg_len, "\n"); + strncat(buf, msg, msg_len); + + len -= max_len; + } + + ret = ist30xx_cmd_hold(data->client, 0); + if (ret) { + ist30xx_reset(data, false); + ist30xx_start(data); + } + data->status.event_mode = true; + + tsp_debug("%s", buf); + + return count; +} + +/* sysfs: /sys/class/touch/tunes/node_info */ +ssize_t tunes_node_info_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int size; + struct ist30xx_data *data = dev_get_drvdata(dev); + TSP_INFO *tsp = &data->tsp_info; + TKEY_INFO *tkey = &data->tkey_info; + + + size = sprintf(buf, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d", + data->chip_id, tsp->dir.swap_xy, tsp->ch_num.tx, + tsp->ch_num.rx,tsp->screen.tx, tsp->screen.rx, + tsp->gtx.num, tsp->gtx.ch_num[0], + tsp->gtx.ch_num[1], tsp->gtx.ch_num[2], tsp->gtx.ch_num[3], + tsp->baseline, tkey->enable, tkey->baseline, tkey->key_num, + tkey->ch_num[0].tx, tkey->ch_num[0].rx, tkey->ch_num[1].tx, + tkey->ch_num[1].rx, tkey->ch_num[2].tx, tkey->ch_num[2].rx, + tkey->ch_num[3].tx, tkey->ch_num[3].rx, tkey->ch_num[4].tx, + tkey->ch_num[4].rx, data->tags.raw_base, data->tags.filter_base); + + return size; +} + +/* sysfs: /sys/class/touch/tunes/regcmd */ +ssize_t tunes_regcmd_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret = -1; + u32 *buf32; + struct ist30xx_data *data = dev_get_drvdata(dev); + + memcpy(&ist30xx_tunes, buf, sizeof(ist30xx_tunes)); + buf += sizeof(ist30xx_tunes); + buf32 = (u32 *)buf; + + tunes_cmd_done = false; + + switch (ist30xx_tunes.cmd) { + case TUNES_CMD_WRITE: + break; + case TUNES_CMD_READ: + break; + case TUNES_CMD_REG_ENTER: + ist30xx_disable_irq(data); + + /* enter reg access mode */ + ret = ist30xx_cmd_hold(data->client, 1); + if (unlikely(ret)) + goto regcmd_fail; + + ist30xx_reg_mode = true; + break; + case TUNES_CMD_REG_EXIT: + /* exit reg access mode */ + ret = ist30xx_cmd_hold(data->client, 0); + if (unlikely(ret)) { + ist30xx_reset(data, false); + ist30xx_start(data); + goto regcmd_fail; + } + + ist30xx_reg_mode = false; + ist30xx_enable_irq(data); + break; + default: + ist30xx_enable_irq(data); + return size; + } + tunes_cmd_done = true; + + return size; + +regcmd_fail: + tsp_err("Tunes regcmd i2c_fail, ret=%d\n", ret); + return size; +} + +ssize_t tunes_regcmd_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int size; + + size = sprintf(buf, "cmd: 0x%02x, addr: 0x%08x, len: 0x%04x\n", + ist30xx_tunes.cmd, ist30xx_tunes.addr, ist30xx_tunes.len); + + return size; +} + +#define MAX_WRITE_LEN (1) +/* sysfs: /sys/class/touch/tunes/reg */ +ssize_t tunes_reg_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret; + u32 *buf32 = (u32 *)buf; + int waddr, wcnt = 0, len = 0; + struct ist30xx_data *data = dev_get_drvdata(dev); + + if (unlikely(ist30xx_tunes.cmd != TUNES_CMD_WRITE)) { + tsp_err("error, IST30XX_REG_CMD is not correct!\n"); + return size; + } + + if (unlikely(!ist30xx_reg_mode)) { + tsp_err("error, IST30XX_REG_CMD is not ready!\n"); + return size; + } + + if (unlikely(!tunes_cmd_done)) { + tsp_err("error, IST30XX_REG_CMD is not ready!\n"); + return size; + } + + waddr = ist30xx_tunes.addr; + if (ist30xx_tunes.len >= MAX_WRITE_LEN) + len = MAX_WRITE_LEN; + else + len = ist30xx_tunes.len; + + while (wcnt < ist30xx_tunes.len) { + ret = ist30xx_write_buf(data->client, waddr, buf32, len); + if (unlikely(ret)) { + tsp_err("Tunes regstore i2c_fail, ret=%d\n", ret); + return size; + } + + wcnt += len; + + if ((ist30xx_tunes.len - wcnt) < MAX_WRITE_LEN) + len = ist30xx_tunes.len - wcnt; + + buf32 += MAX_WRITE_LEN; + waddr += MAX_WRITE_LEN * IST30XX_DATA_LEN; + } + + tunes_cmd_done = false; + + return size; +} + +ssize_t tunes_reg_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret; + int size; +#if I2C_MONOPOLY_MODE + unsigned long flags; +#endif + struct ist30xx_data *data = dev_get_drvdata(dev); + + if (unlikely(ist30xx_tunes.cmd != TUNES_CMD_READ)) { + tsp_err("error, IST30XX_REG_CMD is not correct!\n"); + return 0; + } + + if (unlikely(!tunes_cmd_done)) { + tsp_err("error, IST30XX_REG_CMD is not ready!\n"); + return 0; + } + +#if I2C_MONOPOLY_MODE + local_irq_save(flags); // Activated only when the GPIO I2C is used +#endif + ret = ist30xx_burst_read(data->client, ist30xx_tunes.addr, + (u32 *)buf, ist30xx_tunes.len, false); +#if I2C_MONOPOLY_MODE + local_irq_restore(flags); // Activated only when the GPIO I2C is used +#endif + if (unlikely(ret)) { + tsp_err("Tunes regshow i2c_fail, ret=%d\n", ret); + return size; + } + + size = ist30xx_tunes.len * IST30XX_DATA_LEN; + + tunes_cmd_done = false; + + return size; +} + +/* sysfs: /sys/class/touch/tunes/adb */ +ssize_t tunes_adb_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret; + char *tmp, *ptr; + char token[9]; + u32 cmd, addr, len, val; + int write_len; + struct ist30xx_data *data = dev_get_drvdata(dev); + + sscanf(buf, "%x %x %x", &cmd, &addr, &len); + + switch (cmd) { + case TUNES_CMD_WRITE: /* write cmd */ + write_len = 0; + ptr = (char *)(buf + 15); + + while (write_len < len) { + memcpy(token, ptr, 8); + token[8] = 0; + val = simple_strtoul(token, &tmp, 16); + ret = ist30xx_write_buf(data->client, addr, &val, 1); + if (unlikely(ret)) { + tsp_err("Tunes regstore i2c_fail, ret=%d\n", ret); + return size; + } + + ptr += 8; + write_len++; + addr += 4; + } + break; + + case TUNES_CMD_READ: /* read cmd */ + ist30xx_tunes.cmd = cmd; + ist30xx_tunes.addr = addr; + ist30xx_tunes.len = len; + break; + + case TUNES_CMD_REG_ENTER: /* enter */ + ist30xx_disable_irq(data); + + ret = ist30xx_cmd_hold(data->client, 1); + if (unlikely(ret < 0)) { + goto cmd_fail; + } + + ist30xx_reg_mode = true; + break; + + case TUNES_CMD_REG_EXIT: /* exit */ + if (ist30xx_reg_mode == true) { + ret = ist30xx_cmd_hold(data->client, 0); + if (unlikely(ret < 0)) { + ist30xx_reset(data, false); + ist30xx_start(data); + goto cmd_fail; + } + + ist30xx_reg_mode = false; + ist30xx_enable_irq(data); + } + break; + + default: + break; + } + + return size; + +cmd_fail: + tsp_err("Tunes adb i2c_fail\n"); + return size; +} + +ssize_t tunes_adb_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret; + int i, len, size = 0; + char reg_val[10]; +#if I2C_MONOPOLY_MODE + unsigned long flags; +#endif + struct ist30xx_data *data = dev_get_drvdata(dev); + + tsp_info("tunes_adb_show,%08x,%d\n", ist30xx_tunes.addr, ist30xx_tunes.len); + +#if I2C_MONOPOLY_MODE + local_irq_save(flags); // Activated only when the GPIO I2C is used +#endif + ret = ist30xx_burst_read(data->client, ist30xx_tunes.addr, + ist30xx_frame_buf, ist30xx_tunes.len, false); + if (unlikely(ret)) { + tsp_err("Tunes adbshow i2c_fail, ret=%d\n", ret); + return size; + } + +#if I2C_MONOPOLY_MODE + local_irq_restore(flags); // Activated only when the GPIO I2C is used +#endif + + size = 0; + buf[0] = 0; + len = sprintf(reg_val, "%08x", ist30xx_tunes.addr); + strcat(buf, reg_val); + size += len; + for (i = 0; i < ist30xx_tunes.len; i++) { + len = sprintf(reg_val, "%08x", ist30xx_frame_buf[i]); + strcat(buf, reg_val); + size += len; + } + + return size; +} + +#if IST30XX_ALGORITHM_MODE +/* sysfs: /sys/class/touch/tunes/algorithm */ +extern u32 ist30xx_algr_addr, ist30xx_algr_size; +ssize_t ist30xx_algr_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + sscanf(buf, "%x %d", &ist30xx_algr_addr, &ist30xx_algr_size); + + tsp_info("Algorithm addr: 0x%x, count: %d\n", + ist30xx_algr_addr, ist30xx_algr_size); + + ist30xx_algr_addr |= IST30XX_DIRECT_ACCESS; + + return size; +} + +ssize_t ist30xx_algr_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int ret; + u32 algr_addr; + int count = 0; + struct ist30xx_data *data = dev_get_drvdata(dev); + + ret = ist30xx_read_cmd(data, eHCOM_GET_ALGO_BASE, &algr_addr); + if (unlikely(ret)) { + mutex_lock(&ist30xx_mutex); + ist30xx_reset(data, false); + ist30xx_start(data); + mutex_unlock(&ist30xx_mutex); + tsp_warn("Algorithm mem addr read fail!\n"); + return 0; + } + + tsp_info("algr_addr(0x%x): 0x%x\n", eHCOM_GET_ALGO_BASE, algr_addr); + + count = sprintf(buf, "Algorithm addr : 0x%x\n", algr_addr); + + return count; +} +#endif // IST30XX_ALGORITHM_MODE + +/* sysfs: /sys/class/touch/tunes/intr_debug */ +extern u32 intr_debug_addr, intr_debug_size; +ssize_t intr_debug_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + sscanf(buf, "%x %d", &intr_debug_addr, &intr_debug_size); + tsp_info("Interrupt debug addr: 0x%x, count: %d\n", + intr_debug_addr, intr_debug_size); + + intr_debug_addr |= IST30XX_DIRECT_ACCESS; + + return size; +} + +ssize_t intr_debug_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + + tsp_info("intr_debug_addr(0x%x): %d\n", intr_debug_addr, intr_debug_size); + + count = sprintf(buf, "intr_debug_addr(0x%x): %d\n", + intr_debug_addr, intr_debug_size); + + return count; +} + +/* sysfs: /sys/class/touch/tunes/intr_debug2 */ +extern u32 intr_debug2_addr, intr_debug2_size; +ssize_t intr_debug2_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + sscanf(buf, "%x %d", &intr_debug2_addr, &intr_debug2_size); + tsp_info("Interrupt debug2 addr: 0x%x, count: %d\n", + intr_debug2_addr, intr_debug2_size); + + intr_debug2_addr |= IST30XX_DIRECT_ACCESS; + + return size; +} + +ssize_t intr_debug2_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + + tsp_info("intr_debug2_addr(0x%x): %d\n", + intr_debug2_addr, intr_debug2_size); + + count = sprintf(buf, "intr_debug2_addr(0x%x): %d\n", + intr_debug2_addr, intr_debug2_size); + + return count; +} + +/* sysfs: /sys/class/touch/tunes/intr_debug3 */ +extern u32 intr_debug3_addr, intr_debug3_size; +ssize_t intr_debug3_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + sscanf(buf, "%x %d", &intr_debug3_addr, &intr_debug3_size); + tsp_info("Interrupt debug3 addr: 0x%x, count: %d\n", + intr_debug3_addr, intr_debug3_size); + + intr_debug3_addr |= IST30XX_DIRECT_ACCESS; + + return size; +} + +ssize_t intr_debug3_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int count = 0; + + tsp_info("intr_debug3_addr(0x%x): %d\n", + intr_debug3_addr, intr_debug3_size); + + count = sprintf(buf, "intr_debug3_addr(0x%x): %d\n", + intr_debug3_addr, intr_debug3_size); + + return count; +} + +/* sysfs : node */ +static DEVICE_ATTR(refresh, S_IRWXUGO, ist30xx_frame_refresh, NULL); +static DEVICE_ATTR(nocp, S_IRWXUGO, ist30xx_frame_nocp, NULL); +static DEVICE_ATTR(filter, S_IRWXUGO, ist30xx_filter_show, NULL); +static DEVICE_ATTR(raw, S_IRWXUGO, ist30xx_raw_show, NULL); +static DEVICE_ATTR(base, S_IRWXUGO, ist30xx_base_show, NULL); +static DEVICE_ATTR(diff, S_IRWXUGO, ist30xx_diff_show, NULL); + +/* sysfs : sys */ +static DEVICE_ATTR(debug_mode, S_IRWXUGO, NULL, ist30xx_debug_mode_store); +#if IST30XX_JIG_MODE +static DEVICE_ATTR(jig_mode, S_IRWXUGO, NULL, ist30xx_jig_mode_store); +#endif +static DEVICE_ATTR(printk, S_IRWXUGO, + ist30xx_printk_show, ist30xx_printk_store); +static DEVICE_ATTR(printk5, S_IRWXUGO, ist30xx_printk5_show, NULL); +static DEVICE_ATTR(printk6, S_IRWXUGO, ist30xx_printk6_show, NULL); +#if IST30XX_GESTURE +static DEVICE_ATTR(gesture, S_IRWXUGO, NULL, ist30xx_gesture_store); +#endif +static DEVICE_ATTR(direct, S_IRWXUGO, + ist30xx_direct_show, ist30xx_direct_store); +static DEVICE_ATTR(clb_time, S_IRWXUGO, NULL, ist30xx_calib_time_store); +static DEVICE_ATTR(clb, S_IRWXUGO, ist30xx_calib_show, NULL); +static DEVICE_ATTR(clb_result, S_IRWXUGO, ist30xx_calib_result_show, NULL); +static DEVICE_ATTR(tsp_power_on, S_IRWXUGO, ist30xx_power_on_show, NULL); +static DEVICE_ATTR(tsp_power_off, S_IRWXUGO, ist30xx_power_off_show, NULL); +static DEVICE_ATTR(errcnt, S_IRWXUGO, NULL, ist30xx_errcnt_store); +static DEVICE_ATTR(scancnt, S_IRWXUGO, NULL, ist30xx_scancnt_store); +static DEVICE_ATTR(timerms, S_IRWXUGO, NULL, ist30xx_timerms_store); +static DEVICE_ATTR(report_rate, S_IRWXUGO, NULL, ist30xx_touch_rate_store); +static DEVICE_ATTR(idle_rate, S_IRWXUGO, NULL, ist30xx_idle_scan_rate_store); +static DEVICE_ATTR(mode_ta, S_IRWXUGO, NULL, ist30xx_ta_mode_store); +static DEVICE_ATTR(mode_call, S_IRWXUGO, NULL, ist30xx_call_mode_store); +static DEVICE_ATTR(mode_cover, S_IRWXUGO, NULL, ist30xx_cover_mode_store); + +/* sysfs : tunes */ +static DEVICE_ATTR(node_info, S_IRWXUGO, tunes_node_info_show, NULL); +static DEVICE_ATTR(regcmd, S_IRWXUGO, tunes_regcmd_show, tunes_regcmd_store); +static DEVICE_ATTR(reg, S_IRWXUGO, tunes_reg_show, tunes_reg_store); +static DEVICE_ATTR(adb, S_IRWXUGO, tunes_adb_show, tunes_adb_store); +#if IST30XX_ALGORITHM_MODE +static DEVICE_ATTR(algorithm, S_IRWXUGO, ist30xx_algr_show, ist30xx_algr_store); +#endif +static DEVICE_ATTR(intr_debug, S_IRWXUGO, intr_debug_show, intr_debug_store); +static DEVICE_ATTR(intr_debug2, S_IRWXUGO, intr_debug2_show, intr_debug2_store); +static DEVICE_ATTR(intr_debug3, S_IRWXUGO, intr_debug3_show, intr_debug3_store); + +static struct attribute *node_attributes[] = { + &dev_attr_refresh.attr, + &dev_attr_nocp.attr, + &dev_attr_filter.attr, + &dev_attr_raw.attr, + &dev_attr_base.attr, + &dev_attr_diff.attr, + NULL, +}; + +static struct attribute *sys_attributes[] = { + &dev_attr_debug_mode.attr, +#if IST30XX_JIG_MODE + &dev_attr_jig_mode.attr, +#endif + &dev_attr_printk.attr, + &dev_attr_printk5.attr, + &dev_attr_printk6.attr, +#if IST30XX_GESTURE + &dev_attr_gesture.attr, +#endif + &dev_attr_direct.attr, + &dev_attr_clb_time.attr, + &dev_attr_clb.attr, + &dev_attr_clb_result.attr, + &dev_attr_tsp_power_on.attr, + &dev_attr_tsp_power_off.attr, + &dev_attr_errcnt.attr, + &dev_attr_scancnt.attr, + &dev_attr_timerms.attr, + &dev_attr_report_rate.attr, + &dev_attr_idle_rate.attr, + &dev_attr_mode_ta.attr, + &dev_attr_mode_call.attr, + &dev_attr_mode_cover.attr, + NULL, +}; + +static struct attribute *tunes_attributes[] = { + &dev_attr_node_info.attr, + &dev_attr_regcmd.attr, + &dev_attr_reg.attr, + &dev_attr_adb.attr, +#if IST30XX_ALGORITHM_MODE + &dev_attr_algorithm.attr, +#endif + &dev_attr_intr_debug.attr, + &dev_attr_intr_debug2.attr, + &dev_attr_intr_debug3.attr, + NULL, +}; + +static struct attribute_group node_attr_group = { + .attrs = node_attributes, +}; + +static struct attribute_group sys_attr_group = { + .attrs = sys_attributes, +}; + +static struct attribute_group tunes_attr_group = { + .attrs = tunes_attributes, +}; + +extern struct class *ist30xx_class; +struct device *ist30xx_sys_dev; +struct device *ist30xx_tunes_dev; +struct device *ist30xx_node_dev; + +int ist30xx_init_misc_sysfs(struct ist30xx_data *data) +{ + int frame_buf_size = IST30XX_NODE_TOTAL_NUM * IST30XX_DATA_LEN; + + /* /sys/class/touch/sys */ + ist30xx_sys_dev = device_create(ist30xx_class, NULL, 0, data, "sys"); + + /* /sys/class/touch/sys/... */ + if (unlikely(sysfs_create_group(&ist30xx_sys_dev->kobj, + &sys_attr_group))) + tsp_err("Failed to create sysfs group(%s)!\n", "sys"); + + /* /sys/class/touch/tunes */ + ist30xx_tunes_dev = device_create(ist30xx_class, NULL, 0, data, "tunes"); + + /* /sys/class/touch/tunes/... */ + if (unlikely(sysfs_create_group(&ist30xx_tunes_dev->kobj, + &tunes_attr_group))) + tsp_err("Failed to create sysfs group(%s)!\n", "tunes"); + + /* /sys/class/touch/node */ + ist30xx_node_dev = device_create(ist30xx_class, NULL, 0, data, "node"); + + /* /sys/class/touch/node/... */ + if (unlikely(sysfs_create_group(&ist30xx_node_dev->kobj, + &node_attr_group))) + tsp_err("Failed to create sysfs group(%s)!\n", "node"); + + ist30xx_frame_buf = kmalloc(frame_buf_size, GFP_KERNEL); + ist30xx_frame_rawbuf = kmalloc(frame_buf_size, GFP_KERNEL); + ist30xx_frame_fltbuf = kmalloc(frame_buf_size, GFP_KERNEL); + if (!ist30xx_frame_buf || !ist30xx_frame_rawbuf || !ist30xx_frame_fltbuf) + return -ENOMEM; + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xxc/ist30xxc_misc.h b/drivers/input/touchscreen/ist30xxc/ist30xxc_misc.h new file mode 100644 index 00000000..6f811ccd --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/ist30xxc_misc.h @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XXC_MISC_H__ +#define __IST30XXC_MISC_H__ + +#define NODE_FLAG_RAW (1) +#define NODE_FLAG_BASE (1 << 1) +#define NODE_FLAG_FILTER (1 << 2) +#define NODE_FLAG_DIFF (1 << 3) +#define NODE_FLAG_ALL (0xF) +#define NODE_FLAG_NO_CCP (1 << 7) + +int ist30xx_check_valid_ch(struct ist30xx_data *data, int ch_tx, int ch_rx); +int ist30xx_parse_touch_node(struct ist30xx_data *data, u8 flag, + struct TSP_NODE_BUF *node); +int parse_tsp_node(struct ist30xx_data *data, u8 flag, + struct TSP_NODE_BUF *node, s16 *buf16, bool only_screen); +int ist30xx_read_touch_node(struct ist30xx_data *data, u8 flag, + struct TSP_NODE_BUF *node); + +int ist30xx_init_misc_sysfs(struct ist30xx_data *data); + +#endif // __IST30XXC_MISC_H__ diff --git a/drivers/input/touchscreen/ist30xxc/ist30xxc_sec.c b/drivers/input/touchscreen/ist30xxc/ist30xxc_sec.c new file mode 100644 index 00000000..c9b82535 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/ist30xxc_sec.c @@ -0,0 +1,1402 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xxc.h" +#include "ist30xxc_update.h" +#if IST30XX_DEBUG +#include "ist30xxc_misc.h" +#endif +#if IST30XX_CMCS_TEST +#include "ist30xxc_cmcs.h" +#endif + +#if SEC_FACTORY_MODE +static char IsfwUpdate[20] = { 0 }; + +#define FW_DOWNLOADING "Downloading" +#define FW_DOWNLOAD_COMPLETE "Complete" +#define FW_DOWNLOAD_FAIL "FAIL" + +#define FACTORY_BUF_SIZE (2048) +#define BUILT_IN (0) +#define UMS (1) + +#define CMD_STATE_WAITING (0) +#define CMD_STATE_RUNNING (1) +#define CMD_STATE_OK (2) +#define CMD_STATE_FAIL (3) +#define CMD_STATE_NA (4) + +#define TSP_NODE_DEBUG (0) +#define TSP_CM_DEBUG (0) + +#define TSP_CH_UNUSED (0) +#define TSP_CH_SCREEN (1) +#define TSP_CH_GTX (2) +#define TSP_CH_KEY (3) +#define TSP_CH_UNKNOWN (-1) + +#define TSP_CMD(name, func) .cmd_name = name, .cmd_func = func +struct tsp_cmd { + struct list_head list; + const char * cmd_name; + void (*cmd_func)(void *dev_data); +}; + +u32 ist30xx_get_fw_ver(struct ist30xx_data *data) +{ + u32 ver = 0; + int ret = 0; + + ret = ist30xx_read_cmd(data, eHCOM_GET_VER_FW, &ver); + if (unlikely(ret)) { + ist30xx_reset(data, false); + ist30xx_start(data); + tsp_info("%s(), ret=%d\n", __func__, ret); + return ver; + } + + tsp_debug("Reg addr: %x, ver: %x\n", eHCOM_GET_VER_FW, ver); + + return ver; +} + +#define KEY_SENSITIVITY_OFFSET 0x10 +u32 key_sensitivity = 0; +int ist30xx_get_key_sensitivity(struct ist30xx_data *data, int id) +{ + u32 addr = IST30XX_DA_ADDR(data->tags.algo_base) + KEY_SENSITIVITY_OFFSET; + u32 val = 0; + int ret = 0; + + if (unlikely(id >= data->tkey_info.key_num)) + return 0; + + if (ist30xx_intr_wait(data, 30) < 0) + return 0; + + ret = ist30xx_read_cmd(data, addr, &val); + if (ret) { + ist30xx_reset(data, false); + ist30xx_start(data); + tsp_info("%s(), ret=%d\n", __func__, ret); + return 0; + } + + if ((val & 0xFFF) == 0xFFF) + return (key_sensitivity >> (16 * id)) & 0xFFFF; + + key_sensitivity = val; + + tsp_debug("Reg addr: %x, val: %8x\n", addr, val); + + val >>= (16 * id); + + return (int)(val & 0xFFFF); +} + + +/* Factory CMD function */ +static void set_default_result(struct sec_factory *sec) +{ + char delim = ':'; + + memset(sec->cmd_result, 0, ARRAY_SIZE(sec->cmd_result)); + memcpy(sec->cmd_result, sec->cmd, strlen(sec->cmd)); + strncat(sec->cmd_result, &delim, CMD_STATE_RUNNING); +} + +static void set_cmd_result(struct sec_factory *sec, char *buf, int len) +{ + strncat(sec->cmd_result, buf, len); +} + +static void not_support_cmd(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%s", "NA"); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_NA; + dev_info(&data->client->dev, "%s: \"%s(%d)\"\n", __func__, + buf, strnlen(buf, sizeof(buf))); + return; +} + +static void get_chip_vendor(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%s", TSP_CHIP_VENDOR); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_chip_name(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%s", TSP_CHIP_NAME); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_chip_id(void *dev_data) +{ + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + snprintf(buf, sizeof(buf), "%#02x", data->chip_id); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} +#include +#define MAX_FW_PATH 255 +static void fw_update(void *dev_data) +{ + int ret; + char buf[16] = { 0 }; + mm_segment_t old_fs = {0}; + struct file *fp = NULL; + long fsize = 0, nread = 0; + u8 *fw; + char fw_path[MAX_FW_PATH+1]; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + tsp_info("%s(), %d\n", __func__, sec->cmd_param[0]); + + switch (sec->cmd_param[0]) { + case BUILT_IN: + sec->cmd_state = CMD_STATE_OK; + ret = ist30xx_fw_recovery(data); + if (ret < 0) + sec->cmd_state = CMD_STATE_FAIL; + break; + case UMS: + sec->cmd_state = CMD_STATE_OK; + old_fs = get_fs(); + set_fs(get_ds()); + + snprintf(fw_path, MAX_FW_PATH, "/sdcard/%s", IST30XX_FW_NAME); + fp = filp_open(fw_path, O_RDONLY, 0); + if (IS_ERR(fp)) { + tsp_warn("%s(), file %s open error:%d\n", __func__, + fw_path, (s32)fp); + sec->cmd_state= CMD_STATE_FAIL; + set_fs(old_fs); + break; + } + + fsize = fp->f_path.dentry->d_inode->i_size; + if (fsize != data->fw.buf_size) { + tsp_warn("%s(), invalid fw size!!\n", __func__); + sec->cmd_state = CMD_STATE_FAIL; + set_fs(old_fs); + break; + } + fw = kzalloc((size_t)fsize, GFP_KERNEL); + if (!fw) { + tsp_warn("%s(), failed to alloc buffer for fw\n", __func__); + sec->cmd_state = CMD_STATE_FAIL; + filp_close(fp, NULL); + set_fs(old_fs); + break; + } + nread = vfs_read(fp, (char __user *)fw, fsize, &fp->f_pos); + if (nread != fsize) { + tsp_warn("%s(), failed to read fw\n", __func__); + sec->cmd_state = CMD_STATE_FAIL; + filp_close(fp, NULL); + set_fs(old_fs); + break; + } + + filp_close(fp, current->files); + set_fs(old_fs); + tsp_info("%s(), ums fw is loaded!!\n", __func__); + + ret = ist30xx_get_update_info(data, fw, fsize); + if (ret) { + sec->cmd_state = CMD_STATE_FAIL; + break; + } + data->fw.bin.main_ver = ist30xx_parse_ver(data, FLAG_MAIN, fw); + data->fw.bin.fw_ver = ist30xx_parse_ver(data, FLAG_FW, fw); + data->fw.bin.test_ver = ist30xx_parse_ver(data, FLAG_TEST, fw); + data->fw.bin.core_ver = ist30xx_parse_ver(data, FLAG_CORE, fw); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_fw_update(data, fw, fsize); + if (ret) { + sec->cmd_state = CMD_STATE_FAIL; + break; + } + + mutex_unlock(&ist30xx_mutex); + + ist30xx_calibrate(data, 1); + break; + + default: + tsp_warn("%s(), Invalid fw file type!\n", __func__); + break; + } + + if (sec->cmd_state == CMD_STATE_OK) + snprintf(buf, sizeof(buf), "%s", "OK"); + else + snprintf(buf, sizeof(buf), "%s", "NG"); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); +} + + +static void get_fw_ver_bin(void *dev_data) +{ + u32 ver = 0; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + ver = ist30xx_parse_ver(data, FLAG_FW, data->fw.buf); + snprintf(buf, sizeof(buf), "IM00%04x", ver); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_fw_ver_ic(void *dev_data) +{ + u32 ver = 0; + char msg[8]; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + if (data->status.power == 1) + ver = ist30xx_get_fw_ver(data); + + snprintf(buf, sizeof(buf), "IM00%04x", ver & 0xFFFF); + + if (data->fw.cur.test_ver > 0) { + sprintf(msg, "(T%d)", data->fw.cur.test_ver); + strcat(buf, msg); + } + + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_threshold(void *dev_data) +{ + int ret = 0; + u32 val = 0; + char buf[16] = { 0 }; + int threshold; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + ret = ist30xx_read_cmd(data, eHCOM_GET_TOUCH_TH, &val); + if (unlikely(ret)) { + ist30xx_reset(data, false); + ist30xx_start(data); + tsp_info("%s(), ret=%d\n", __func__, ret); + val = 0; + } + + set_default_result(sec); + + threshold = (int)(val & 0xFFFF); + + snprintf(buf, sizeof(buf), "%d", threshold); + tsp_info("%s(), %s\n", __func__, buf); + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, + buf, strnlen(buf, sizeof(buf))); +} + +static void get_scr_x_num(void *dev_data) +{ + int val = -1; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + if (data->tsp_info.dir.swap_xy) + val = data->tsp_info.screen.tx; + else + val = data->tsp_info.screen.rx; + + if (val >= 0) { + snprintf(buf, sizeof(buf), "%u", val); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); + } else { + snprintf(buf, sizeof(buf), "%s", "NG"); + sec->cmd_state = CMD_STATE_FAIL; + dev_info(&data->client->dev, + "%s: fail to read num of x (%d).\n", __func__, val); + } + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + tsp_info("%s(), %s\n", __func__, buf); +} + +static void get_scr_y_num(void *dev_data) +{ + int val = -1; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + if (data->tsp_info.dir.swap_xy) + val = data->tsp_info.screen.rx; + else + val = data->tsp_info.screen.tx; + + if (val >= 0) { + snprintf(buf, sizeof(buf), "%u", val); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); + } else { + snprintf(buf, sizeof(buf), "%s", "NG"); + sec->cmd_state = CMD_STATE_FAIL; + dev_info(&data->client->dev, + "%s: fail to read num of y (%d).\n", __func__, val); + } + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + tsp_info("%s(), %s\n", __func__, buf); +} + +static void get_all_x_num(void *dev_data) +{ + int val = - 1; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + if (data->tsp_info.dir.swap_xy) + val = data->tsp_info.ch_num.tx; + else + val = data->tsp_info.ch_num.rx; + + if (val >= 0) { + snprintf(buf, sizeof(buf), "%u", val); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); + } else { + snprintf(buf, sizeof(buf), "%s", "NG"); + sec->cmd_state = CMD_STATE_FAIL; + dev_info(&data->client->dev, + "%s: fail to read all num of x (%d).\n", __func__, val); + } + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + tsp_info("%s(), %s\n", __func__, buf); +} + +static void get_all_y_num(void *dev_data) +{ + int val = -1; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + if (data->tsp_info.dir.swap_xy) + val = data->tsp_info.ch_num.rx; + else + val = data->tsp_info.ch_num.tx; + + if (val >= 0) { + snprintf(buf, sizeof(buf), "%u", val); + sec->cmd_state = CMD_STATE_OK; + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); + } else { + snprintf(buf, sizeof(buf), "%s", "NG"); + sec->cmd_state = CMD_STATE_FAIL; + dev_info(&data->client->dev, + "%s: fail to read all num of y (%d).\n", __func__, val); + } + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + tsp_info("%s(), %s\n", __func__, buf); +} + +int check_tsp_channel(void *dev_data, int width, int height) +{ + int node = -EPERM; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + if ((sec->cmd_param[0] < 0) || (sec->cmd_param[0] >= width) || + (sec->cmd_param[1] < 0) || (sec->cmd_param[1] >= height)) { + tsp_info("%s: parameter error: %u,%u\n", + __func__, sec->cmd_param[0], sec->cmd_param[1]); + } else { + node = sec->cmd_param[0] + sec->cmd_param[1] * width; + tsp_info("%s: node = %d\n", __func__, node); + } + + return node; +} + +static u16 node_value[IST30XX_NODE_TOTAL_NUM]; +void get_raw_array(void *dev_data) +{ + int i, ret; + int count = 0; + char *buf; + const int msg_len = 16; + char msg[msg_len]; + u8 flag = NODE_FLAG_RAW; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + TSP_INFO *tsp = &data->tsp_info; + + set_default_result(sec); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_read_touch_node(data, flag, &tsp->node); + if (ret) { + mutex_unlock(&ist30xx_mutex); + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), tsp node read fail!\n", __func__); + return; + } + mutex_unlock(&ist30xx_mutex); + ist30xx_parse_touch_node(data, flag, &tsp->node); + + ret = parse_tsp_node(data, flag, &tsp->node, node_value, false); + if (ret) { + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), tsp node parse fail - flag: %d\n", __func__, flag); + return; + } + + buf = kmalloc(IST30XX_NODE_TOTAL_NUM * 5, GFP_KERNEL); + memset(buf, 0, sizeof(buf)); + + for (i = 0; i < tsp->ch_num.rx * tsp->ch_num.tx; i++) { +#if TSP_NODE_DEBUG + if ((i % tsp->ch_num.rx) == 0) + printk("\n%s %4d: ", IST30XX_DEBUG_TAG, i); + + printk("%4d ", node_value[i]); +#endif + count += snprintf(msg, msg_len, "%d,", node_value[i]); + strncat(buf, msg, msg_len); + } + + printk("\n"); + tsp_info("%s: %d\n", __func__, count - 1); + sec->cmd_state = CMD_STATE_OK; + set_cmd_result(sec, buf, count - 1); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, count); + kfree(buf); +} + +void run_raw_read(void *dev_data) +{ + int i; + int ret = 0; + int min_val, max_val; + char buf[16] = { 0 }; + u8 flag = NODE_FLAG_RAW; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + TSP_INFO *tsp = &data->tsp_info; + + set_default_result(sec); + + ret = ist30xx_read_touch_node(data, flag, &tsp->node); + if (ret) { + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), tsp node read fail!\n", __func__); + return; + } + ist30xx_parse_touch_node(data, flag, &tsp->node); + + ret = parse_tsp_node(data, flag, &tsp->node, node_value, true); + if (ret) { + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), tsp node parse fail - flag: %d\n", __func__, flag); + return; + } + + min_val = max_val = node_value[0]; + for (i = 0; i < tsp->screen.rx * tsp->screen.tx; i++) { +#if TSP_NODE_DEBUG + if ((i % tsp->screen.rx) == 0) + printk("\n%s %4d: ", IST30XX_DEBUG_TAG, i); + + printk("%4d ", node_value[i]); +#endif + + max_val = max(max_val, (int)node_value[i]); + min_val = min(min_val, (int)node_value[i]); + } + + snprintf(buf, sizeof(buf), "%d,%d", min_val, max_val); + tsp_info("%s(), %s\n", __func__, buf); + + sec->cmd_state = CMD_STATE_OK; + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); +} + +void get_raw_value(void *dev_data) +{ + int idx = 0; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + TSP_INFO *tsp = &data->tsp_info; + + set_default_result(sec); + + idx = check_tsp_channel(data, tsp->screen.rx, tsp->screen.tx); + if (idx < 0) { // Parameter parsing fail + snprintf(buf, sizeof(buf), "%s", "NG"); + sec->cmd_state = CMD_STATE_FAIL; + } else { + snprintf(buf, sizeof(buf), "%d", node_value[idx]); + sec->cmd_state = CMD_STATE_OK; + } + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + tsp_info("%s(), [%d][%d]: %s\n", __func__, + sec->cmd_param[0], sec->cmd_param[1], buf); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); +} + +#if IST30XX_CMCS_TEST +extern u8 *ts_cmcs_bin; +extern u32 ts_cmcs_bin_size; +extern CMCS_BIN_INFO *ts_cmcs; +extern CMCS_BUF *ts_cmcs_buf; +void run_cm_test(void *dev_data) +{ + int i, j; + int ret = 0; + char buf[16] = { 0 }; + int type, idx; + int min_val, max_val; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + TSP_INFO *tsp = &data->tsp_info; + + set_default_result(sec); + + if ((ts_cmcs_bin == NULL) || (ts_cmcs_bin_size == 0)) { + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), Binary is not correct!\n", __func__); + return; + } + + ret = ist30xx_get_cmcs_info(ts_cmcs_bin, ts_cmcs_bin_size); + if (unlikely(ret)) { + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), tsp get cmcs infomation fail!\n", __func__); + return; + } + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_cmcs_test(data, ts_cmcs_bin, ts_cmcs_bin_size); + if (unlikely(ret)) { + mutex_unlock(&ist30xx_mutex); + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), tsp cmcs test fail!\n", __func__); + return; + } + mutex_unlock(&ist30xx_mutex); + + min_val = max_val = ts_cmcs_buf->cm[0]; + for (i = 0; i < tsp->ch_num.tx; i++) { +#if TSP_CM_DEBUG + printk("%s", IST30XX_DEBUG_TAG); +#endif + for (j = 0; j < tsp->ch_num.rx; j++) { + idx = (i * tsp->ch_num.rx) + j; + type = check_tsp_type(data, i, j); + + if ((type == TSP_CH_SCREEN) || (type == TSP_CH_GTX)) { + max_val = max(max_val, (int)ts_cmcs_buf->cm[idx]); + min_val = min(min_val, (int)ts_cmcs_buf->cm[idx]); + } +#if TSP_CM_DEBUG + printk("%5d ", ts_cmcs_buf->cm[idx]); +#endif + } +#if TSP_CM_DEBUG + printk("\n"); +#endif + } + + snprintf(buf, sizeof(buf), "%d,%d", min_val, max_val); + tsp_info("%s(), %s\n", __func__, buf); + + sec->cmd_state = CMD_STATE_OK; + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); +} + +void get_cm_value(void *dev_data) +{ + int idx = 0; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + TSP_INFO *tsp = &data->tsp_info; + + set_default_result(sec); + + idx = check_tsp_channel(data, tsp->ch_num.rx, tsp->ch_num.tx); + if (idx < 0) { // Parameter parsing fail + snprintf(buf, sizeof(buf), "%s", "NG"); + sec->cmd_state = CMD_STATE_FAIL; + } else { + snprintf(buf, sizeof(buf), "%d", ts_cmcs_buf->cm[idx]); + sec->cmd_state = CMD_STATE_OK; + } + + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + tsp_info("%s(), [%d][%d]: %s\n", __func__, + sec->cmd_param[0], sec->cmd_param[1], buf); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); +} + +void run_cmcs_test(void *dev_data) +{ + int ret = 0; + char buf[16] = { 0 }; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + set_default_result(sec); + + if ((ts_cmcs_bin == NULL) || (ts_cmcs_bin_size == 0)) { + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), Binary is not correct!\n", __func__); + return; + } + + ret = ist30xx_get_cmcs_info(ts_cmcs_bin, ts_cmcs_bin_size); + if (unlikely(ret)) { + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), tsp get cmcs infomation fail!\n", __func__); + return; + } + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_cmcs_test(data, ts_cmcs_bin, ts_cmcs_bin_size); + if (unlikely(ret)) { + mutex_unlock(&ist30xx_mutex); + sec->cmd_state = CMD_STATE_FAIL; + tsp_warn("%s(), tsp cmcs test fail!\n", __func__); + return; + } + mutex_unlock(&ist30xx_mutex); + + snprintf(buf, sizeof(buf), "%s", "OK"); + tsp_info("%s(), %s\n", __func__, buf); + + sec->cmd_state = CMD_STATE_OK; + set_cmd_result(sec, buf, strnlen(buf, sizeof(buf))); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, + strnlen(buf, sizeof(buf))); +} + +void get_cm_array(void *dev_data) +{ + int i; + int count = 0; + int type; + char *buf; + const int msg_len = 16; + char msg[msg_len]; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + TSP_INFO *tsp = &data->tsp_info; + + set_default_result(sec); + + buf = kmalloc(IST30XX_NODE_TOTAL_NUM * 5, GFP_KERNEL); + memset(buf, 0, sizeof(buf)); + + for (i = 0; i < tsp->ch_num.rx * tsp->ch_num.tx; i++) { +#if TSP_CM_DEBUG + if ((i % tsp->ch_num.rx) == 0) + printk("\n%s %4d: ", IST30XX_DEBUG_TAG, i); + + printk("%4d ", ts_cmcs_buf->cm[i]); +#endif + type = check_tsp_type(data, i / tsp->ch_num.rx, i % tsp->ch_num.rx); + if ((type == TSP_CH_UNKNOWN) || (type == TSP_CH_UNUSED)) + count += snprintf(msg, msg_len, "%d,", 0); + else + count += snprintf(msg, msg_len, "%d,", ts_cmcs_buf->cm[i]); + strncat(buf, msg, msg_len); + } + + printk("\n"); + tsp_info("%s: %d\n", __func__, count - 1); + sec->cmd_state = CMD_STATE_OK; + set_cmd_result(sec, buf, count - 1); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, count); + kfree(buf); +} + +void get_slope0_array(void *dev_data) +{ + int i; + int count = 0; + char *buf; + const int msg_len = 16; + char msg[msg_len]; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + TSP_INFO *tsp = &data->tsp_info; + + set_default_result(sec); + + buf = kmalloc(IST30XX_NODE_TOTAL_NUM * 5, GFP_KERNEL); + memset(buf, 0, sizeof(buf)); + + for (i = 0; i < tsp->ch_num.rx * tsp->ch_num.tx; i++) { +#if TSP_CM_DEBUG + if ((i % tsp->ch_num.rx) == 0) + printk("\n%s %4d: ", IST30XX_DEBUG_TAG, i); + + printk("%4d ", ts_cmcs_buf->slope0[i]); +#endif + count += snprintf(msg, msg_len, "%d,", ts_cmcs_buf->slope0[i]); + strncat(buf, msg, msg_len); + } + + printk("\n"); + tsp_info("%s: %d\n", __func__, count - 1); + sec->cmd_state = CMD_STATE_OK; + set_cmd_result(sec, buf, count - 1); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, count); + kfree(buf); +} + +void get_slope1_array(void *dev_data) +{ + int i; + int count = 0; + char *buf; + const int msg_len = 16; + char msg[msg_len]; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + TSP_INFO *tsp = &data->tsp_info; + + set_default_result(sec); + + buf = kmalloc(IST30XX_NODE_TOTAL_NUM * 5, GFP_KERNEL); + memset(buf, 0, sizeof(buf)); + + for (i = 0; i < tsp->ch_num.rx * tsp->ch_num.tx; i++) { +#if TSP_CM_DEBUG + if ((i % tsp->ch_num.rx) == 0) + printk("\n%s %4d: ", IST30XX_DEBUG_TAG, i); + + printk("%4d ", ts_cmcs_buf->slope1[i]); +#endif + count += snprintf(msg, msg_len, "%d,", ts_cmcs_buf->slope1[i]); + strncat(buf, msg, msg_len); + } + + printk("\n"); + tsp_info("%s: %d\n", __func__, count - 1); + sec->cmd_state = CMD_STATE_OK; + set_cmd_result(sec, buf, count - 1); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, count); + kfree(buf); +} + +void get_cs_array(void *dev_data) +{ + int i; + int count = 0; + int type; + char *buf; + const int msg_len = 16; + char msg[msg_len]; + + struct ist30xx_data *data = (struct ist30xx_data *)dev_data; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + TSP_INFO *tsp = &data->tsp_info; + + set_default_result(sec); + + buf = kmalloc(IST30XX_NODE_TOTAL_NUM * 5, GFP_KERNEL); + memset(buf, 0, sizeof(buf)); + + for (i = 0; i < tsp->ch_num.rx * tsp->ch_num.tx; i++) { +#if TSP_CM_DEBUG + if ((i % tsp->ch_num.rx) == 0) + printk("\n%s %4d: ", IST30XX_DEBUG_TAG, i); + + printk("%4d ", ts_cmcs_buf->cs[i]); +#endif + type = check_tsp_type(data, i / tsp->ch_num.rx, i % tsp->ch_num.rx); + if ((type == TSP_CH_UNKNOWN) || (type == TSP_CH_UNUSED)) + count += snprintf(msg, msg_len, "%d,", 0); + else + count += snprintf(msg, msg_len, "%d,", ts_cmcs_buf->cs[i]); + strncat(buf, msg, msg_len); + } + + printk("\n"); + tsp_info("%s: %d\n", __func__, count - 1); + sec->cmd_state = CMD_STATE_OK; + set_cmd_result(sec, buf, count - 1); + dev_info(&data->client->dev, "%s: %s(%d)\n", __func__, buf, count); + kfree(buf); +} +#endif +/* sysfs: /sys/class/sec/tsp/close_tsp_test */ +static ssize_t show_close_tsp_test(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return snprintf(buf, FACTORY_BUF_SIZE, "%u\n", 0); +} + +/* sysfs: /sys/class/sec/tsp/cmd */ +static ssize_t store_cmd(struct device *dev, struct device_attribute + *devattr, const char *buf, size_t count) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + struct sec_factory *sec = (struct sec_factory *)&data->sec; + struct i2c_client *client = data->client; + + char *cur, *start, *end; + char msg[SEC_CMD_STR_LEN] = { 0 }; + int len, i; + struct tsp_cmd *tsp_cmd_ptr = NULL; + char delim = ','; + bool cmd_found = false; + int param_cnt = 0; + int ret; + + if (sec->cmd_is_running == true) { + dev_err(&client->dev, "tsp_cmd: other cmd is running.\n"); + tsp_err("tsp_cmd: other cmd is running.\n"); + goto err_out; + } + + /* check lock */ + mutex_lock(&sec->cmd_lock); + sec->cmd_is_running = true; + mutex_unlock(&sec->cmd_lock); + + sec->cmd_state = CMD_STATE_RUNNING; + + for (i = 0; i < ARRAY_SIZE(sec->cmd_param); i++) + sec->cmd_param[i] = 0; + + len = (int)count; + if (*(buf + len - 1) == '\n') + len--; + memset(sec->cmd, 0, ARRAY_SIZE(sec->cmd)); + memcpy(sec->cmd, buf, len); + + cur = strchr(buf, (int)delim); + if (cur) + memcpy(msg, buf, cur - buf); + else + memcpy(msg, buf, len); + /* find command */ + list_for_each_entry(tsp_cmd_ptr, &sec->cmd_list_head, list) { + if (!strcmp(msg, tsp_cmd_ptr->cmd_name)) { + cmd_found = true; + break; + } + } + + /* set not_support_cmd */ + if (!cmd_found) { + list_for_each_entry(tsp_cmd_ptr, &sec->cmd_list_head, list) { + if (!strcmp("not_support_cmd", tsp_cmd_ptr->cmd_name)) + break; + } + } + + /* parsing parameters */ + if (cur && cmd_found) { + cur++; + start = cur; + memset(msg, 0, ARRAY_SIZE(msg)); + do { + if (*cur == delim || cur - buf == len) { + end = cur; + memcpy(msg, start, end - start); + *(msg + strlen(msg)) = '\0'; + ret = kstrtoint(msg, 10, \ + sec->cmd_param + param_cnt); + start = cur + 1; + memset(msg, 0, ARRAY_SIZE(msg)); + param_cnt++; + } + cur++; + } while (cur - buf <= len); + } + tsp_info("SEC CMD = %s\n", tsp_cmd_ptr->cmd_name); + + for (i = 0; i < param_cnt; i++) + tsp_info("SEC CMD Param %d= %d\n", i, sec->cmd_param[i]); + + tsp_cmd_ptr->cmd_func(data); + +err_out: + return count; +} + +/* sysfs: /sys/class/sec/tsp/cmd_status */ +static ssize_t show_cmd_status(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + struct sec_factory *sec = (struct sec_factory *)&data->sec; + char msg[16] = { 0 }; + + dev_info(&data->client->dev, "tsp cmd: status:%d\n", sec->cmd_state); + + if (sec->cmd_state == CMD_STATE_WAITING) + snprintf(msg, sizeof(msg), "WAITING"); + else if (sec->cmd_state == CMD_STATE_RUNNING) + snprintf(msg, sizeof(msg), "RUNNING"); + else if (sec->cmd_state == CMD_STATE_OK) + snprintf(msg, sizeof(msg), "OK"); + else if (sec->cmd_state == CMD_STATE_FAIL) + snprintf(msg, sizeof(msg), "FAIL"); + else if (sec->cmd_state == CMD_STATE_NA) + snprintf(msg, sizeof(msg), "NOT_APPLICABLE"); + + return snprintf(buf, FACTORY_BUF_SIZE, "%s\n", msg); +} + +/* sysfs: /sys/class/sec/tsp/cmd_result */ +static ssize_t show_cmd_result(struct device *dev, struct device_attribute + *devattr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + dev_info(&data->client->dev, "tsp cmd: result: %s\n", sec->cmd_result); + + mutex_lock(&sec->cmd_lock); + sec->cmd_is_running = false; + mutex_unlock(&sec->cmd_lock); + + sec->cmd_state = CMD_STATE_WAITING; + + return snprintf(buf, FACTORY_BUF_SIZE, "%s\n", sec->cmd_result); +} + + + +/* sysfs: /sys/class/sec/sec_touchscreen/tsp_firm_version_phone */ +static ssize_t phone_firmware_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ist30xx_data *data = dev_get_drvdata(dev); + + u32 ver = ist30xx_parse_ver(data, FLAG_FW, data->fw.buf); + + tsp_info("%s(), IM00%04x\n", __func__, ver); + + return sprintf(buf, "IM00%04x", ver); +} + +/* sysfs: /sys/class/sec/sec_touchscreen/tsp_firm_version_panel */ +static ssize_t part_firmware_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + u32 ver = 0; + struct ist30xx_data *data = dev_get_drvdata(dev); + + if (data->status.power == 1) + ver = ist30xx_get_fw_ver(data); + + tsp_info("%s(), IM00%04x\n", __func__, ver); + + return sprintf(buf, "IM00%04x", ver); +} + +/* sysfs: /sys/class/sec/sec_touchscreen/tsp_threshold */ +static ssize_t threshold_firmware_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret = 0; + u32 val = 0; + int threshold = 0; + struct ist30xx_data *data = dev_get_drvdata(dev); + + ret = ist30xx_read_cmd(data, eHCOM_GET_TOUCH_TH, &val); + if (unlikely(ret)) { + ist30xx_reset(data, false); + ist30xx_start(data); + tsp_info("%s(), ret=%d\n", __func__, ret); + val = 0; + } + + threshold = (int)(val & 0xFFFF); + + tsp_info("%s(), %d (ret=%d)\n", __func__, threshold, ret); + + return sprintf(buf, "%d", threshold); +} + +/* sysfs: /sys/class/sec/sec_touchscreen/tsp_firm_update */ +static ssize_t firmware_update(struct device *dev, + struct device_attribute *attr, char *buf) +{ + bool ret; + struct ist30xx_data *data = dev_get_drvdata(dev); + + sprintf(IsfwUpdate, "%s\n", FW_DOWNLOADING); + tsp_info("%s(), %s\n", __func__, IsfwUpdate); + + ret = ist30xx_fw_recovery(data); + ret = (ret == 0 ? 1 : -1); + + sprintf(IsfwUpdate, "%s\n", + (ret > 0 ? FW_DOWNLOAD_COMPLETE : FW_DOWNLOAD_FAIL)); + tsp_info("%s(), %s\n", __func__, IsfwUpdate); + + return sprintf(buf, "%d", ret); +} + +/* sysfs: /sys/class/sec/sec_touchscreen/tsp_firm_update_status */ +static ssize_t firmware_update_status(struct device *dev, + struct device_attribute *attr, char *buf) +{ + tsp_info("%s(), %s\n", __func__, IsfwUpdate); + + return sprintf(buf, "%s\n", IsfwUpdate); +} + +/* sysfs: /sys/class/sec/sec_touchkey/touchkey_menu */ +/* sysfs: /sys/class/sec/sec_touchkey/touchkey_recent */ +static ssize_t recent_sensitivity_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int sensitivity = 0; + struct ist30xx_data *data = dev_get_drvdata(dev); + + sensitivity = ist30xx_get_key_sensitivity(data, 0); + + tsp_info("%s(), %d\n", __func__, sensitivity); + + return sprintf(buf, "%d", sensitivity); +} + +/* sysfs: /sys/class/sec/sec_touchkey/touchkey_back */ +static ssize_t back_sensitivity_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int sensitivity = 0; + struct ist30xx_data *data = dev_get_drvdata(dev); + + sensitivity = ist30xx_get_key_sensitivity(data, 1); + + tsp_info("%s(), %d\n", __func__, sensitivity); + + return sprintf(buf, "%d", sensitivity); +} + +/* sysfs: /sys/class/sec/sec_touchkey/touchkey_threshold */ +static ssize_t touchkey_threshold_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret = 0; + u32 val = 0; + int threshold = 0; + struct ist30xx_data *data = dev_get_drvdata(dev); + + ret = ist30xx_read_cmd(data, eHCOM_GET_TOUCH_TH, &val); + if (unlikely(ret)) { + ist30xx_reset(data, false); + ist30xx_start(data); + val = 0; + } + + threshold = (int)((val >> 16) & 0xFFFF); + + tsp_info("%s(), %d (ret=%d)\n", __func__, threshold, ret); + + return sprintf(buf, "%d", threshold); +} + +struct tsp_cmd tsp_cmds[] = { + { TSP_CMD("get_chip_vendor", get_chip_vendor), }, + { TSP_CMD("get_chip_name", get_chip_name), }, + { TSP_CMD("get_chip_id", get_chip_id), }, + { TSP_CMD("fw_update", fw_update), }, + { TSP_CMD("get_fw_ver_bin", get_fw_ver_bin), }, + { TSP_CMD("get_fw_ver_ic", get_fw_ver_ic), }, + { TSP_CMD("get_threshold", get_threshold), }, + { TSP_CMD("get_x_num", get_scr_x_num), }, + { TSP_CMD("get_y_num", get_scr_y_num), }, + { TSP_CMD("get_all_x_num", get_all_x_num), }, + { TSP_CMD("get_all_y_num", get_all_y_num), }, + { TSP_CMD("run_raw_read", run_raw_read), }, + { TSP_CMD("get_raw_value", get_raw_value), }, +#if IST30XX_CMCS_TEST + { TSP_CMD("run_cm_test", run_cm_test), }, + { TSP_CMD("get_cm_value", get_cm_value), }, +#if IST30XX_JIG_MODE + { TSP_CMD("get_raw_array", get_raw_array), }, + { TSP_CMD("run_cmcs_test", run_cmcs_test), }, + { TSP_CMD("get_cm_array", get_cm_array), }, + { TSP_CMD("get_slope0_array",get_slope0_array),}, + { TSP_CMD("get_slope1_array",get_slope1_array),}, + { TSP_CMD("get_cs_array", get_cs_array), }, + { TSP_CMD("get_cs0_array", get_cs_array), }, + { TSP_CMD("get_cs1_array", get_cs_array), }, +#endif +#endif + { TSP_CMD("not_support_cmd", not_support_cmd), }, +}; + +#define SEC_DEFAULT_ATTR (S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH) +/* sysfs - touchscreen */ +static DEVICE_ATTR(tsp_firm_version_phone, SEC_DEFAULT_ATTR, + phone_firmware_show, NULL); +static DEVICE_ATTR(tsp_firm_version_panel, SEC_DEFAULT_ATTR, + part_firmware_show, NULL); +static DEVICE_ATTR(tsp_threshold, SEC_DEFAULT_ATTR, + threshold_firmware_show, NULL); +static DEVICE_ATTR(tsp_firm_update, SEC_DEFAULT_ATTR, + firmware_update, NULL); +static DEVICE_ATTR(tsp_firm_update_status, SEC_DEFAULT_ATTR, + firmware_update_status, NULL); + +/* sysfs - touchkey */ +static DEVICE_ATTR(touchkey_menu, SEC_DEFAULT_ATTR, + recent_sensitivity_show, NULL); +static DEVICE_ATTR(touchkey_recent, SEC_DEFAULT_ATTR, + recent_sensitivity_show, NULL); +static DEVICE_ATTR(touchkey_back, SEC_DEFAULT_ATTR, + back_sensitivity_show, NULL); +static DEVICE_ATTR(touchkey_threshold, SEC_DEFAULT_ATTR, + touchkey_threshold_show, NULL); + +/* sysfs - tsp */ +static DEVICE_ATTR(close_tsp_test, S_IRUGO, show_close_tsp_test, NULL); +static DEVICE_ATTR(cmd, S_IWUSR | S_IWGRP, NULL, store_cmd); +static DEVICE_ATTR(cmd_status, S_IRUGO, show_cmd_status, NULL); +static DEVICE_ATTR(cmd_result, S_IRUGO, show_cmd_result, NULL); + +static struct attribute *sec_tsp_attributes[] = { + &dev_attr_tsp_firm_version_phone.attr, + &dev_attr_tsp_firm_version_panel.attr, + &dev_attr_tsp_threshold.attr, + &dev_attr_tsp_firm_update.attr, + &dev_attr_tsp_firm_update_status.attr, + NULL, +}; + +static struct attribute *sec_tkey_attributes[] = { + &dev_attr_touchkey_menu.attr, + &dev_attr_touchkey_recent.attr, + &dev_attr_touchkey_back.attr, + &dev_attr_touchkey_threshold.attr, + NULL, +}; + +static struct attribute *sec_touch_facotry_attributes[] = { + &dev_attr_close_tsp_test.attr, + &dev_attr_cmd.attr, + &dev_attr_cmd_status.attr, + &dev_attr_cmd_result.attr, + NULL, +}; + +static struct attribute_group sec_tsp_attr_group = { + .attrs = sec_tsp_attributes, +}; + +static struct attribute_group sec_tkey_attr_group = { + .attrs = sec_tkey_attributes, +}; + +static struct attribute_group sec_touch_factory_attr_group = { + .attrs = sec_touch_facotry_attributes, +}; + +extern struct class *sec_class; +struct device *sec_touchscreen; +struct device *sec_touchkey; +struct device *sec_fac_dev; + +int sec_touch_sysfs(struct ist30xx_data *data) +{ + /* /sys/class/sec/sec_touchscreen */ + sec_touchscreen = device_create(sec_class, NULL, 1, data, + "sec_touchscreen"); + if (IS_ERR(sec_touchscreen)) { + tsp_err("Failed to create device (%s)!\n", "sec_touchscreen"); + goto err_sec_touchscreen; + } + /* /sys/class/sec/sec_touchscreen/... */ + if (sysfs_create_group(&sec_touchscreen->kobj, &sec_tsp_attr_group)) { + tsp_err("Failed to create sysfs group(%s)!\n", "sec_touchscreen"); + goto err_sec_touchscreen_attr; + } + + /* /sys/class/sec/sec_touchkey */ + sec_touchkey = device_create(sec_class, NULL, 2, data, "sec_touchkey"); + if (IS_ERR(sec_touchkey)) { + tsp_err("Failed to create device (%s)!\n", "sec_touchkey"); + goto err_sec_touchkey; + } + /* /sys/class/sec/sec_touchkey/... */ + if (sysfs_create_group(&sec_touchkey->kobj, &sec_tkey_attr_group)) { + tsp_err("Failed to create sysfs group(%s)!\n", "sec_touchkey"); + goto err_sec_touchkey_attr; + } + + /* /sys/class/sec/tsp */ + sec_fac_dev = device_create(sec_class, NULL, 3, data, "tsp"); + if (IS_ERR(sec_fac_dev)) { + tsp_err("Failed to create device (%s)!\n", "tsp"); + goto err_sec_fac_dev; + } + /* /sys/class/sec/tsp/... */ + if (sysfs_create_group(&sec_fac_dev->kobj, &sec_touch_factory_attr_group)) { + tsp_err("Failed to create sysfs group(%s)!\n", "tsp"); + goto err_sec_fac_dev_attr; + } + + return 0; + +err_sec_fac_dev_attr: + device_destroy(sec_class, 3); +err_sec_fac_dev: +err_sec_touchkey_attr: + device_destroy(sec_class, 2); +err_sec_touchkey: +err_sec_touchscreen_attr: + device_destroy(sec_class, 1); +err_sec_touchscreen: + + return -ENODEV; +} +EXPORT_SYMBOL(sec_touch_sysfs); +int sec_fac_cmd_init(struct ist30xx_data *data) +{ + int i; + struct sec_factory *sec = (struct sec_factory *)&data->sec; + + INIT_LIST_HEAD(&sec->cmd_list_head); + for (i = 0; i < ARRAY_SIZE(tsp_cmds); i++) + list_add_tail(&tsp_cmds[i].list, &sec->cmd_list_head); + + mutex_init(&sec->cmd_lock); + sec->cmd_is_running = false; + + return 0; +} +EXPORT_SYMBOL(sec_fac_cmd_init); +#endif diff --git a/drivers/input/touchscreen/ist30xxc/ist30xxc_sec.h b/drivers/input/touchscreen/ist30xxc/ist30xxc_sec.h new file mode 100644 index 00000000..95e04e35 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/ist30xxc_sec.h @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XXC_SEC_H__ +#define __IST30XXC_SEC_H__ + + +#define SEC_CMD_STR_LEN 32 +#define SEC_CMD_RESULT_STR_LEN 2048 +#define SEC_CMD_PARAM_NUM 8 + +struct sec_factory { + struct list_head cmd_list_head; + unsigned char cmd_state; + char cmd[SEC_CMD_STR_LEN]; + int cmd_param[SEC_CMD_PARAM_NUM]; + char cmd_result[SEC_CMD_RESULT_STR_LEN]; + struct mutex cmd_lock; + bool cmd_is_running; +}; +#endif // __IST30XXC_SEC_H__ diff --git a/drivers/input/touchscreen/ist30xxc/ist30xxc_sys.c b/drivers/input/touchscreen/ist30xxc/ist30xxc_sys.c new file mode 100644 index 00000000..b419fb31 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/ist30xxc_sys.c @@ -0,0 +1,481 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xxc.h" +#include "ist30xxc_tracking.h" + +extern char *ist_vdd_name; +/****************************************************************************** + * Return value of Error + * EPERM : 1 (Operation not permitted) + * ENOENT : 2 (No such file or directory) + * EIO : 5 (I/O error) + * ENXIO : 6 (No such device or address) + * EINVAL : 22 (Invalid argument) + *****************************************************************************/ + +int ist30xx_cmd_gesture(struct i2c_client *client, int value) +{ + int ret = -EIO; + + if (value > 3) + return ret; + + ret = ist30xx_write_cmd(client, + IST30XX_HIB_CMD, (eHCOM_GESTURE_EN << 16) | (value & 0xFFFF)); + + return ret; +} + +int ist30xx_cmd_start_scan(struct ist30xx_data *data) +{ + int ret = ist30xx_write_cmd(data->client, IST30XX_HIB_CMD, + (eHCOM_FW_START << 16) | (IST30XX_ENABLE & 0xFFFF)); + + ist30xx_tracking(TRACK_CMD_SCAN); + + data->status.noise_mode = true; + + return ret; +} + +int ist30xx_cmd_calibrate(struct i2c_client *client) +{ + int ret = ist30xx_write_cmd(client, + IST30XX_HIB_CMD, (eHCOM_RUN_CAL_AUTO << 16)); + + ist30xx_tracking(TRACK_CMD_CALIB); + + tsp_info("%s\n", __func__); + + return ret; +} + +int ist30xx_cmd_check_calib(struct i2c_client *client) +{ + int ret = ist30xx_write_cmd(client, IST30XX_HIB_CMD, + (eHCOM_RUN_CAL_PARAM << 16) | (IST30XX_ENABLE & 0xFFFF)); + + ist30xx_tracking(TRACK_CMD_CHECK_CALIB); + + tsp_info("*** Check Calibration cmd ***\n"); + + return ret; +} + +int ist30xx_cmd_hold(struct i2c_client *client, int enable) +{ + int ret = ist30xx_write_cmd(client, + IST30XX_HIB_CMD, (eHCOM_FW_HOLD << 16) | (enable & 0xFFFF)); + + msleep(40); + + if (enable) + ist30xx_tracking(TRACK_CMD_ENTER_REG); + else + ist30xx_tracking(TRACK_CMD_EXIT_REG); + + return ret; +} + +int ist30xx_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, + int msg_num, u8 *cmd_buf) +{ + int ret = 0; + int idx = msg_num - 1; + int size = msgs[idx].len; + u8 *msg_buf = NULL; + u8 *pbuf = NULL; + int trans_size, max_size = 0; + + if (msg_num == WRITE_CMD_MSG_LEN) + max_size = I2C_MAX_WRITE_SIZE; + else if (msg_num == READ_CMD_MSG_LEN) + max_size = I2C_MAX_READ_SIZE; + + if (unlikely(max_size == 0)) { + tsp_err("%s() : transaction size(%d)\n", __func__, max_size); + return -EINVAL; + } + + if (msg_num == WRITE_CMD_MSG_LEN) { + msg_buf = kmalloc(max_size + IST30XX_ADDR_LEN, GFP_KERNEL); + if (!msg_buf) + return -ENOMEM; + memcpy(msg_buf, cmd_buf, IST30XX_ADDR_LEN); + pbuf = msgs[idx].buf; + } + + while (size > 0) { + trans_size = (size >= max_size ? max_size : size); + + msgs[idx].len = trans_size; + if (msg_num == WRITE_CMD_MSG_LEN) { + memcpy(&msg_buf[IST30XX_ADDR_LEN], pbuf, trans_size); + msgs[idx].buf = msg_buf; + msgs[idx].len += IST30XX_ADDR_LEN; + } + ret = i2c_transfer(adap, msgs, msg_num); + if (unlikely(ret != msg_num)) { + tsp_err("%s() : i2c_transfer failed(%d), num=%d\n", + __func__, ret, msg_num); + break; + } + + if (msg_num == WRITE_CMD_MSG_LEN) + pbuf += trans_size; + else + msgs[idx].buf += trans_size; + + size -= trans_size; + } + + if (msg_num == WRITE_CMD_MSG_LEN) + kfree(msg_buf); + + return ret; +} + +int ist30xx_read_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len) +{ + int ret, i; + u32 le_reg = cpu_to_be32(cmd); + + struct i2c_msg msg[READ_CMD_MSG_LEN] = { + { + .addr = client->addr, + .flags = 0, + .len = IST30XX_ADDR_LEN, + .buf = (u8 *)&le_reg, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = len * IST30XX_DATA_LEN, + .buf = (u8 *)buf, + }, + }; + + ret = ist30xx_i2c_transfer(client->adapter, msg, READ_CMD_MSG_LEN, NULL); + if (unlikely(ret != READ_CMD_MSG_LEN)) + return -EIO; + + for (i = 0; i < len; i++) + buf[i] = cpu_to_be32(buf[i]); + + return 0; +} + +int ist30xx_write_buf(struct i2c_client *client, u32 cmd, u32 *buf, u16 len) +{ + int i; + int ret; + struct i2c_msg msg; + u8 cmd_buf[IST30XX_ADDR_LEN]; + u8 msg_buf[IST30XX_DATA_LEN * (len + 1)]; + + put_unaligned_be32(cmd, cmd_buf); + + if (likely(len > 0)) { + for (i = 0; i < len; i++) + put_unaligned_be32(buf[i], msg_buf + (i * IST30XX_DATA_LEN)); + } else { + /* then add dummy data(4byte) */ + put_unaligned_be32(0, msg_buf); + len = 1; + } + + msg.addr = client->addr; + msg.flags = 0; + msg.len = len * IST30XX_DATA_LEN; + msg.buf = msg_buf; + + ret = ist30xx_i2c_transfer(client->adapter, &msg, WRITE_CMD_MSG_LEN, + cmd_buf); + if (unlikely(ret != WRITE_CMD_MSG_LEN)) + return -EIO; + + return 0; +} + +int ist30xx_read_reg(struct i2c_client *client, u32 reg, u32 *buf) +{ + int ret; + u32 le_reg = cpu_to_be32(reg); + + struct i2c_msg msg[READ_CMD_MSG_LEN] = { + { + .addr = client->addr, + .flags = 0, + .len = IST30XX_ADDR_LEN, + .buf = (u8 *)&le_reg, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = IST30XX_DATA_LEN, + .buf = (u8 *)buf, + }, + }; + + ret = i2c_transfer(client->adapter, msg, READ_CMD_MSG_LEN); + if (ret != READ_CMD_MSG_LEN) { + tsp_err("%s: i2c failed (%d), cmd: %x\n", __func__, ret, reg); + return -EIO; + } + *buf = cpu_to_be32(*buf); + + return 0; +} + +int ist30xx_read_cmd(struct ist30xx_data *data, u32 cmd, u32 *buf) +{ + int ret; + + ret = ist30xx_cmd_hold(data->client, 1); + if (unlikely(ret)) + return ret; + + ist30xx_read_reg(data->client, IST30XX_DA_ADDR(cmd), buf); + + ret = ist30xx_cmd_hold(data->client, 0); + if (unlikely(ret)) { + ist30xx_reset(data, false); + return ret; + } + + return ret; +} + +int ist30xx_write_cmd(struct i2c_client *client, u32 cmd, u32 val) +{ + int ret; + + struct i2c_msg msg; + u8 msg_buf[IST30XX_ADDR_LEN + IST30XX_DATA_LEN]; + + put_unaligned_be32(cmd, msg_buf); + put_unaligned_be32(val, msg_buf + IST30XX_ADDR_LEN); + + msg.addr = client->addr; + msg.flags = 0; + msg.len = IST30XX_ADDR_LEN + IST30XX_DATA_LEN; + msg.buf = msg_buf; + + ret = i2c_transfer(client->adapter, &msg, WRITE_CMD_MSG_LEN); + if (ret != WRITE_CMD_MSG_LEN) { + tsp_err("%s: i2c failed (%d), cmd: %x(%x)\n", __func__, ret, cmd, val); + return -EIO; + } + + msleep(40); + + return 0; +} + +int ist30xx_burst_read(struct i2c_client *client, u32 addr, + u32 *buf32, u16 len, bool bit_en) +{ + int ret = 0; + int i; + u16 max_len = I2C_MAX_READ_SIZE / IST30XX_DATA_LEN; + u16 remain_len = len; + + if (bit_en) + addr = IST30XX_BA_ADDR(addr); + + for (i = 0; i < len; i += max_len) { + if (remain_len < max_len) max_len = remain_len; + + ret = ist30xx_read_buf(client, addr, buf32, max_len); + if (unlikely(ret)) { + tsp_err("Burst fail, addr: %x\n", __func__, addr); + return ret; + } + + addr += max_len * IST30XX_DATA_LEN; + buf32 += max_len; + remain_len -= max_len; + } + + return 0; +} + +int ist30xx_burst_write(struct i2c_client *client, u32 addr, + u32 *buf32, u16 len) +{ + int ret = 0; + int i; + u16 max_len = I2C_MAX_WRITE_SIZE / IST30XX_DATA_LEN; + u16 remain_len = len; + + addr = IST30XX_BA_ADDR(addr); + + for (i = 0; i < len; i += max_len) { + if (remain_len < max_len) max_len = remain_len; + + ret = ist30xx_write_buf(client, addr, buf32, max_len); + if (unlikely(ret)) { + tsp_err("Burst fail, addr: %x\n", __func__, addr); + return ret; + } + + addr += max_len * IST30XX_DATA_LEN; + buf32 += max_len; + remain_len -= max_len; + } + + return 0; +} + +static struct regulator *touch_regulator; +static void ts_power_enable(struct ist30xx_data *data, int en) +{ + struct i2c_client *client = data->client; + int ret; + + tsp_info("%s %s\n", __func__, (en) ? "on" : "off"); + + if (touch_regulator == NULL) { + touch_regulator = regulator_get(&client->dev, ist_vdd_name); + if (IS_ERR(touch_regulator)) { + ret = PTR_ERR(touch_regulator); + dev_err(&client->dev, + "Failed to get vdd regulator(%d)\n", ret); + return ret; + } + + ret = regulator_set_voltage(touch_regulator, 3000000, 3000000); + if (ret < 0) { + dev_err(&client->dev, + "Failed to set vdd regulator(%d)\n", ret); + regulator_put(touch_regulator); + touch_regulator = NULL; + return ret; + } + } + + if (en){ + if(data->status.power) + printk("%s:already enabled\n",__func__); + else + regulator_enable(touch_regulator); + } + else{ + if(data->status.power) + regulator_disable(touch_regulator); + else + printk("%s:already disabled\n",__func__); + } +} + +int ist30xx_power_on(struct ist30xx_data *data, bool download) +{ + if (data->status.power != 1) { + tsp_info("%s()\n", __func__); + ist30xx_tracking(TRACK_PWR_ON); + /* VDD enable */ + ts_power_enable(data, 1); + if (download) + msleep(8); + else + msleep(50); + + data->status.power = 1; + } + + return 0; +} + +int ist30xx_power_off(struct ist30xx_data *data) +{ + if (data->status.power != 0) { + tsp_info("%s()\n", __func__); + ist30xx_tracking(TRACK_PWR_OFF); + /* VDD disable */ + ts_power_enable(data, 0); + msleep(50); + data->status.power = 0; + data->status.noise_mode = false; + } + + return 0; +} + +int ist30xx_reset(struct ist30xx_data *data, bool download) +{ + tsp_info("%s()\n", __func__); + ist30xx_power_off(data); + msleep(10); + ist30xx_power_on(data, download); + + return 0; +} + +int ist30xx_internal_suspend(struct ist30xx_data *data) +{ +#if IST30XX_GESTURE + data->suspend = true; + if (data->gesture) { + ist30xx_reset(data, false); + ist30xx_cmd_gesture(data->client, 3); + } else { + ist30xx_power_off(data); + } +#else + ist30xx_power_off(data); +#endif + return 0; +} + +int ist30xx_internal_resume(struct ist30xx_data *data) +{ +#if IST30XX_GESTURE + data->suspend = false; + if (data->gesture) + ist30xx_reset(data, false); + else + ist30xx_power_on(data, false); +#else + ist30xx_power_on(data, false); +#endif + + return 0; +} + +int ist30xx_init_system(struct ist30xx_data *data) +{ + int ret; + + // TODO : place additional code here. + ret = ist30xx_power_on(data, false); + if (ret) { + tsp_err("%s: ist30xx_init_system failed (%d)\n", __func__, ret); + return -EIO; + } + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xxc/ist30xxc_tracking.c b/drivers/input/touchscreen/ist30xxc/ist30xxc_tracking.c new file mode 100644 index 00000000..89920e1e --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/ist30xxc_tracking.c @@ -0,0 +1,231 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xxc.h" +#include "ist30xxc_tracking.h" + +IST30XX_RING_BUF TrackBuf; +IST30XX_RING_BUF *pTrackBuf; + +bool tracking_initialize = false; + +void ist30xx_tracking_init(void) +{ + if (tracking_initialize) + return; + + pTrackBuf = &TrackBuf; + + pTrackBuf->RingBufCtr = 0; + pTrackBuf->RingBufInIdx = 0; + pTrackBuf->RingBufOutIdx = 0; + + tracking_initialize = true; +} + +void ist30xx_tracking_deinit(void) +{ +} + +static spinlock_t mr_lock = __SPIN_LOCK_UNLOCKED(); +int ist30xx_get_track(u32 *track, int cnt) +{ + int i; + u8 *buf = (u8 *)track; + unsigned long flags; + + + cnt *= sizeof(track[0]); + + spin_lock_irqsave(&mr_lock, flags); + + if (pTrackBuf->RingBufCtr < (u16)cnt) { + spin_unlock_irqrestore(&mr_lock, flags); + return IST30XX_RINGBUF_NOT_ENOUGH; + } + + for (i = 0; i < cnt; i++) { + if (pTrackBuf->RingBufOutIdx == IST30XX_MAX_LOG_SIZE) + pTrackBuf->RingBufOutIdx = 0; + + *buf++ = (u8)pTrackBuf->LogBuf[pTrackBuf->RingBufOutIdx++]; + pTrackBuf->RingBufCtr--; + } + + spin_unlock_irqrestore(&mr_lock, flags); + + return IST30XX_RINGBUF_NO_ERR; +} + +u32 ist30xx_get_track_cnt(void) +{ + return pTrackBuf->RingBufCtr; +} + +#if IST30XX_TRACKING_MODE +int ist30xx_put_track(u32 *track, int cnt) +{ + int i; + u8 *buf = (u8 *)track; + unsigned long flags; + + spin_lock_irqsave(&mr_lock, flags); + + cnt *= sizeof(track[0]); + + pTrackBuf->RingBufCtr += cnt; + if (pTrackBuf->RingBufCtr > IST30XX_MAX_LOG_SIZE) { + pTrackBuf->RingBufOutIdx += + (pTrackBuf->RingBufCtr - IST30XX_MAX_LOG_SIZE); + if (pTrackBuf->RingBufOutIdx >= IST30XX_MAX_LOG_SIZE) + pTrackBuf->RingBufOutIdx -= IST30XX_MAX_LOG_SIZE; + + pTrackBuf->RingBufCtr = IST30XX_MAX_LOG_SIZE; + } + + for (i = 0; i < cnt; i++) { + if (pTrackBuf->RingBufInIdx == IST30XX_MAX_LOG_SIZE) + pTrackBuf->RingBufInIdx = 0; + pTrackBuf->LogBuf[pTrackBuf->RingBufInIdx++] = *buf++; + } + + spin_unlock_irqrestore(&mr_lock, flags); + + return IST30XX_RINGBUF_NO_ERR; +} + +int ist30xx_put_track_ms(u32 ms) +{ + ms &= 0x0000FFFF; + ms |= IST30XX_TRACKING_MAGIC; + + return ist30xx_put_track(&ms, 1); +} + +static struct timespec t_track; +int ist30xx_tracking(u32 status) +{ + u32 ms; + + if (!tracking_initialize) + ist30xx_tracking_init(); + + ktime_get_ts(&t_track); + ms = t_track.tv_sec * 1000 + t_track.tv_nsec / 1000000; + + ist30xx_put_track_ms(ms); + ist30xx_put_track(&status, 1); + + return 0; +} +#else +int ist30xx_put_track(u32 *track, int cnt) +{ + return 0; +} +int ist30xx_put_track_ms(u32 ms) +{ + return 0; +} +int ist30xx_tracking(u32 status) +{ + return 0; +} +#endif // IST30XX_TRACKING_MODE + +#define MAX_TRACKING_COUNT (1024) +/* sysfs: /sys/class/touch/tracking/track_frame */ +ssize_t ist30xx_track_frame_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int i, buf_cnt = 0; + u32 track_cnt = MAX_TRACKING_COUNT; + u32 track; + char msg[10]; + + mutex_lock(&ist30xx_mutex); + + buf[0] = '\0'; + + if (track_cnt > ist30xx_get_track_cnt()) + track_cnt = ist30xx_get_track_cnt(); + + track_cnt /= sizeof(track); + + tsp_verb("num: %d of %d\n", track_cnt, ist30xx_get_track_cnt()); + + for (i = 0; i < track_cnt; i++) { + ist30xx_get_track(&track, 1); + + tsp_verb("%08X\n", track); + + buf_cnt += sprintf(msg, "%08x", track); + strcat(buf, msg); + } + + mutex_unlock(&ist30xx_mutex); + + return buf_cnt; +} + +/* sysfs: /sys/class/touch/tracking/track_cnt */ +ssize_t ist30xx_track_cnt_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + u32 val = (u32)ist30xx_get_track_cnt(); + + tsp_verb("tracking cnt: %d\n", val); + + return sprintf(buf, "%08x", val); +} + + +/* sysfs */ +static DEVICE_ATTR(track_frame, S_IRWXUGO, ist30xx_track_frame_show, NULL); +static DEVICE_ATTR(track_cnt, S_IRWXUGO, ist30xx_track_cnt_show, NULL); + +static struct attribute *tracking_attributes[] = { + &dev_attr_track_frame.attr, + &dev_attr_track_cnt.attr, + NULL, +}; + +static struct attribute_group tracking_attr_group = { + .attrs = tracking_attributes, +}; + +extern struct class *ist30xx_class; +struct device *ist30xx_tracking_dev; + +int ist30xx_init_tracking_sysfs(void) +{ + /* /sys/class/touch/tracking */ + ist30xx_tracking_dev = device_create(ist30xx_class, NULL, 0, NULL, + "tracking"); + + /* /sys/class/touch/tracking/... */ + if (sysfs_create_group(&ist30xx_tracking_dev->kobj, &tracking_attr_group)) + tsp_err("[ TSP ] Failed to create sysfs group(%s)!\n", "tracking"); + + ist30xx_tracking_init(); + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xxc/ist30xxc_tracking.h b/drivers/input/touchscreen/ist30xxc/ist30xxc_tracking.h new file mode 100644 index 00000000..599942d3 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/ist30xxc_tracking.h @@ -0,0 +1,61 @@ +#ifndef __IST30XXC_TRACKING_H__ +#define __IST30XXC_TRACKING_H__ + + +#define IST30XX_RINGBUF_NO_ERR (0) +#define IST30XX_RINGBUF_NOT_ENOUGH (1) +#define IST30XX_RINGBUF_EMPTY (2) +#define IST30XX_RINGBUF_FULL (3) +#define IST30XX_RINGBUF_TIMEOUT (4) +#define IST30XX_MAX_LOG_SIZE (4 * 100 * 1024) // 4bytes * 100Kbytes, Single touch: about 12minutes + +#define TRACK_PWR_ON (0x1) +#define TRACK_PWR_OFF (0x2) +#define TRACK_PWR_RESET (0x3) +#define TRACK_INTR_ENABLE (0x4) +#define TRACK_INTR_DISABLE (0x5) +#define TRACK_CMD_RUN_DEVICE (0x10) +#define TRACK_CMD_SCAN (0x11) +#define TRACK_CMD_TACON (0x12) +#define TRACK_CMD_TADISCON (0x13) +#define TRACK_CMD_FWUPDATE (0x14) +#define TRACK_CMD_PRUPDATE (0x15) +#define TRACK_CMD_CALIB (0x16) +#define TRACK_CMD_CHECK_CALIB (0x17) +#define TRACK_CMD_CHKSUM (0x18) +#define TRACK_CMD_CHKSUM_ALL (0x19) +#define TRACK_CMD_ENTER_REG (0x1A) +#define TRACK_CMD_EXIT_REG (0x1B) +#define TRACK_CMD_CALL (0x1C) +#define TRACK_CMD_NOTCALL (0x1D) +#define TRACK_CMD_COVER (0x1E) +#define TRACK_CMD_NOTCOVER (0x1F) +#define TRACK_POS_FINGER (0x20) +#define TRACK_POS_KEY (0x30) +#define TRACK_POS_UNKNOWN (0x3F) + +#define IST30XX_TRACKING_MAGIC (0x7750 << 16) + + +typedef struct _IST30XX_RINGBUF { + u32 RingBufCtr; // Number of characters in the ring buffer + u32 RingBufInIdx; + u32 RingBufOutIdx; + u8 LogBuf[IST30XX_MAX_LOG_SIZE]; // Ring buffer for status +} IST30XX_RING_BUF; + + +void ist30xx_tracking_init(void); +void ist30xx_tracking_deinit(void); + +int ist30xx_get_track(u32 *track, int cnt); +int ist30xx_put_track(u32 *track, int cnt); +int ist30xx_put_track_ms(u32 ms); + +u32 ist30xx_get_track_cnt(void); + +int ist30xx_tracking(u32 status); + +int ist30xx_init_tracking_sysfs(void); + +#endif // __IST30XXC_TRACKING_H__ diff --git a/drivers/input/touchscreen/ist30xxc/ist30xxc_update.c b/drivers/input/touchscreen/ist30xxc/ist30xxc_update.c new file mode 100755 index 00000000..92073196 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/ist30xxc_update.c @@ -0,0 +1,1474 @@ +/* + * Copyright (C) 2010,Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 "ist30xxc.h" +#include "ist30xxc_update.h" +#include "ist30xxc_tracking.h" + +#if IST30XX_INTERNAL_BIN +#if defined(CONFIG_MACH_SS_SHARKLT8) || defined(CONFIG_MACH_SS_SHARKLT8LIGHTSLEEP) +#include "./firmware/ss_sharklt8_fw.h" +#else +#include "./firmware/coreprimeve3g_fw.h" +#endif +#if (IMAGIS_TSP_IC < IMAGIS_IST3038C) +#if IST30XX_MULTIPLE_TSP +//#include "./firmware/ist30xxc_fw_tsp_Ver0000_porting.h" +#endif +#endif +#endif // IST30XX_INTERNAL_BIN + +#define TAGS_PARSE_OK (0) + +// ISP burst r/w +int ist30xx_isp_read_burst(struct i2c_client *client, u32 addr, + u32 *buf32, u16 len) +{ + int ret = 0; + int i; + u16 max_len = I2C_MAX_READ_SIZE / IST30XX_DATA_LEN; + u16 remain_len = len; + + for (i = 0; i < len; i += max_len) { + if (remain_len < max_len) max_len = remain_len; + ret = ist30xx_read_buf(client, addr, buf32, max_len); + if (unlikely(ret)) { + tsp_err("Burst fail, addr: %x\n", __func__, addr); + return ret; + } + + buf32 += max_len; + remain_len -= max_len; + } + + return 0; +} + +int ist30xx_isp_write_burst(struct i2c_client *client, u32 addr, + u32 *buf32, u16 len) +{ + int ret = 0; + int i; + u16 max_len = I2C_MAX_WRITE_SIZE / IST30XX_DATA_LEN; + u16 remain_len = len; + + for (i = 0; i < len; i += max_len) { + if (remain_len < max_len) max_len = remain_len; + ret = ist30xx_write_buf(client, addr, buf32, max_len); + if (unlikely(ret)) { + tsp_err("Burst fail, addr: %x\n", addr); + return ret; + } + + buf32 += max_len; + remain_len -= max_len; + } + + return 0; +} + +#define IST30XX_ISP_READ_TOTAL_S (0x01) +#define IST30XX_ISP_READ_TOTAL_B (0x11) +#define IST30XX_ISP_READ_MAIN_S (0x02) +#define IST30XX_ISP_READ_MAIN_B (0x12) +#define IST30XX_ISP_READ_INFO_S (0x03) +#define IST30XX_ISP_READ_INFO_B (0x13) +#define IST30XX_ISP_PROG_TOTAL_S (0x04) +#define IST30XX_ISP_PROG_TOTAL_B (0x14) +#define IST30XX_ISP_PROG_MAIN_S (0x05) +#define IST30XX_ISP_PROG_MAIN_B (0x15) +#define IST30XX_ISP_PROG_INFO_S (0x06) +#define IST30XX_ISP_PROG_INFO_B (0x16) +#define IST30XX_ISP_ERASE_BLOCK (0x07) +#define IST30XX_ISP_ERASE_SECTOR (0x08) +#define IST30XX_ISP_ERASE_PAGE (0x09) +#define IST30XX_ISP_ERASE_INFO (0x0A) +#define IST30XX_ISP_READ_TOTAL_CRC (0x1B) +#define IST30XX_ISP_READ_MAIN_CRC (0x1C) +#define IST30XX_ISP_READ_INFO_CRC (0x1D) +int ist30xxc_isp_enable(struct i2c_client *client, bool enable) +{ + int ret = 0; + + if (enable) { + ret = ist30xx_write_cmd(client, IST30XX_FLASH_ISPEN, 0xDE01); + if (unlikely(ret)) + return ret; + +#if (IMAGIS_TSP_IC < IMAGIS_IST3038C) + ret = ist30xx_write_cmd(client, IST30XX_FLASH_MODE, 0x4100); + if (unlikely(ret)) + return ret; + + ret = ist30xx_write_cmd(client, IST30XX_FLASH_TEST_MODE1, 0x38); + if (unlikely(ret)) + return ret; +#endif + } else { + ret = ist30xx_write_cmd(client, IST30XX_FLASH_ISPEN, 0x2); + if (unlikely(ret)) + return ret; + } + + msleep(1); + + return ret; +} + +int ist30xxc_isp_mode(struct i2c_client *client, int mode) +{ + int ret = 0; + u32 val = 0; + + switch (mode) { + case IST30XX_ISP_READ_TOTAL_S: + val = 0x8090; + break; + case IST30XX_ISP_READ_TOTAL_B: + case IST30XX_ISP_READ_TOTAL_CRC: + val = 0x8190; + break; + case IST30XX_ISP_READ_MAIN_S: + val = 0x0090; + break; + case IST30XX_ISP_READ_MAIN_B: + case IST30XX_ISP_READ_MAIN_CRC: + val = 0x0190; + break; + case IST30XX_ISP_READ_INFO_S: + val = 0x0098; + break; + case IST30XX_ISP_READ_INFO_B: + case IST30XX_ISP_READ_INFO_CRC: + val = 0x0198; + break; + case IST30XX_ISP_PROG_TOTAL_S: + val = 0x8050; + break; + case IST30XX_ISP_PROG_TOTAL_B: + val = 0x8150; + break; + case IST30XX_ISP_PROG_MAIN_S: + val = 0x0050; + break; + case IST30XX_ISP_PROG_MAIN_B: + val = 0x0150; + break; + case IST30XX_ISP_PROG_INFO_S: + val = 0x0058; + break; + case IST30XX_ISP_PROG_INFO_B: + val = 0x0158; + break; + case IST30XX_ISP_ERASE_BLOCK: + val = 0x0031; + break; + case IST30XX_ISP_ERASE_SECTOR: + val = 0x0032; + break; + case IST30XX_ISP_ERASE_PAGE: + val = 0x0030; + break; + case IST30XX_ISP_ERASE_INFO: + val = 0x0038; + break; + default: + tsp_err("ISP fail, unknown mode\n"); + return -EINVAL; + } + +#if (IMAGIS_TSP_IC > IMAGIS_IST3032C) + val &= ~(0x8000); +#endif + + ret = ist30xx_write_cmd(client, IST30XX_FLASH_MODE, val); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XX_FLASH_MODE\n"); + return ret; + } + + return 0; +} + +int ist30xxc_isp_erase(struct i2c_client *client, int mode, u32 index) +{ + int ret = 0; + + ret = ist30xxc_isp_mode(client, mode); + if (unlikely(ret)) + return ret; + + ret = ist30xx_write_cmd(client, IST30XX_FLASH_DIN, index); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XX_FLASH_DIN\n"); + return ret; + } + + msleep(50); // Flash erase time : Mininum 40msec + + return ret; +} + + +int ist30xxc_isp_program(struct i2c_client *client, u32 addr, int mode, + const u32 *buf32, int len) +{ + int ret = 0; + + ret = ist30xxc_isp_mode(client, mode); + if (unlikely(ret)) + return ret; + + ret = ist30xx_write_cmd(client, IST30XX_FLASH_ADDR, addr); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XX_FLASH_ADDR\n"); + return ret; + } + + if (mode & 0x10) + ret = ist30xx_isp_write_burst(client, + IST30XX_FLASH_DIN, (u32 *)buf32, len); + else + ret = ist30xx_write_buf(client, IST30XX_FLASH_DIN, (u32 *)buf32, len); + + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XX_FLASH_DIN\n"); + return ret; + } + + return ret; +} + +int ist30xxc_isp_read(struct i2c_client *client, u32 addr, int mode, + u32 *buf32, int len) +{ + int ret = 0; + + /* IST30xxB ISP read mode */ + ret = ist30xxc_isp_mode(client, mode); + if (unlikely(ret)) + return ret; + + ret = ist30xx_write_cmd(client, IST30XX_FLASH_ADDR, addr); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XX_FLASH_ADDR\n"); + return ret; + } + + if (mode & 0x10) + ret = ist30xx_isp_read_burst(client, IST30XX_FLASH_DOUT, buf32, len); + else + ret = ist30xx_read_buf(client, IST30XX_FLASH_DOUT, buf32, len); + + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XX_FLASH_DOUT\n"); + return ret; + } + + return 0; +} + +int ist30xxc_cmd_read_chksum(struct i2c_client *client, int mode, + u32 start_addr, u32 end_addr, u32 *chksum) +{ + int ret = 0; + u32 val = (1 << 28) | (1 << 25) | (1 << 24) | (1 << 20) | (1 << 16); + + val |= (end_addr / IST30XX_ADDR_LEN) - 1; + + ret = ist30xxc_isp_mode(client, mode); + if (unlikely(ret)) + return ret; + + ret = ist30xx_write_cmd(client, IST30XX_FLASH_ADDR, start_addr); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XX_FLASH_ADDR (%x)\n", val); + return ret; + } + + ret = ist30xx_write_cmd(client, IST30XX_FLASH_AUTO_READ, val); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XX_FLASH_AUTO_READ (%x)\n", val); + return ret; + } + + msleep(100); + + ret = ist30xx_read_reg(client, IST30XX_FLASH_CRC, chksum); + if (unlikely(ret)) { + tsp_err("ISP fail, IST30XX_FLASH_CRC (%x)\n", chksum); + return ret; + } + + return 0; +} + +int ist30xxc_read_chksum(struct ist30xx_data *data, u32 *chksum) +{ + int ret = 0; + u32 start_addr, end_addr; + + start_addr = data->tags.fw_addr; + end_addr = data->tags.sensor_addr + data->tags.sensor_size; + ret = ist30xxc_cmd_read_chksum(data->client, + IST30XX_ISP_READ_TOTAL_CRC, start_addr, end_addr, chksum); + if (unlikely(ret)) + return ret; + + tsp_info("chksum: %x(%x~%x)\n", *chksum, start_addr, end_addr); + + return 0; +} + +int ist30xxc_read_chksum_all(struct i2c_client *client, u32 *chksum) +{ + int ret = 0; + u32 start_addr, end_addr; + + start_addr = IST30XX_FLASH_BASE_ADDR; + end_addr = IST30XX_FLASH_BASE_ADDR + IST30XX_FLASH_TOTAL_SIZE; + ret = ist30xxc_cmd_read_chksum(client, + IST30XX_ISP_READ_TOTAL_CRC, start_addr, end_addr, chksum); + if (unlikely(ret)) + return ret; + + tsp_info("chksum: %x(%x~%x)\n", *chksum, start_addr, end_addr); + + return 0; +} + +int ist30xxc_isp_fw_read(struct ist30xx_data *data, u32 *buf32) +{ + int ret = 0; + int i; + int len; + u32 addr = IST30XX_FLASH_BASE_ADDR; + + ist30xx_reset(data, true); + + /* IST30xxB ISP enable */ + ret = ist30xxc_isp_enable(data->client, true); + if (unlikely(ret)) + return ret; + +#if I2C_BURST_MODE + for (i = 0; i < IST30XX_FLASH_TOTAL_SIZE; i += I2C_MAX_READ_SIZE) { + len = I2C_MAX_READ_SIZE / IST30XX_DATA_LEN; + if ((IST30XX_FLASH_TOTAL_SIZE - i) < I2C_MAX_READ_SIZE) + len = (IST30XX_FLASH_TOTAL_SIZE - i) / IST30XX_DATA_LEN; + + ret = ist30xxc_isp_read(data->client, addr, IST30XX_ISP_READ_TOTAL_B, + buf32, len); + if (unlikely(ret)) + goto isp_fw_read_end; + + addr += len; + buf32 += len; + } +#else + for (i = 0; i < IST30XX_FLASH_MAIN_SIZE; i += IST30XX_DATA_LEN) { + ret = ist30xxc_isp_read(data->client, addr, IST30XX_ISP_READ_TOTAL_S, + buf32, 1); + if (unlikely(ret)) + goto isp_fw_read_end; + + addr++; + buf32++; + } +#endif +isp_fw_read_end: + /* IST30xxC ISP disable */ + ist30xxc_isp_enable(data->client, false); + ist30xx_reset(data, false); + return ret; +} + +int ist30xxc_isp_fw_update(struct ist30xx_data *data, const u8 *buf) +{ +#if !(I2C_BURST_MODE) + int i; +#endif + int ret = 0; + u32 addr = IST30XX_FLASH_BASE_ADDR; + + ist30xx_reset(data, true); + + /* IST30xxC ISP enable */ + ret = ist30xxc_isp_enable(data->client, true); + if (unlikely(ret)) + goto isp_fw_update_end; + + /* IST30xxC ISP erase */ + ret = ist30xxc_isp_erase(data->client, IST30XX_ISP_ERASE_BLOCK, 0); + if (unlikely(ret)) + goto isp_fw_update_end; + +#if (IST30XX_FLASH_INFO_SIZE > 0) + ret = ist30xxc_isp_erase(data->client, IST30XX_ISP_ERASE_INFO, 0); + if (unlikely(ret)) + goto isp_fw_update_end; +#endif + + ist30xx_reset(data, true); + + /* IST30xxC ISP enable */ + ret = ist30xxc_isp_enable(data->client, true); + if (unlikely(ret)) + goto isp_fw_update_end; + +#if I2C_BURST_MODE + /* IST30xxC ISP write burst */ +#if 0 + for (i = 0; i < IST30XX_FLASH_TOTAL_SIZE / IST30XX_FLASH_PAGE_SIZE; i++) { + ret = ist30xxc_isp_program(data->client, addr, + IST30XX_ISP_PROG_TOTAL_B, (u32 *)buf, + IST30XX_FLASH_PAGE_SIZE / IST30XX_DATA_LEN); + if (unlikely(ret)) + goto isp_fw_update_end; + + addr += IST30XX_FLASH_PAGE_SIZE / IST30XX_DATA_LEN; + buf += IST30XX_FLASH_PAGE_SIZE; + } +#else + ret = ist30xxc_isp_program(data->client, addr, IST30XX_ISP_PROG_TOTAL_B, + (u32 *)buf, IST30XX_FLASH_TOTAL_SIZE / IST30XX_DATA_LEN); + if (unlikely(ret)) + goto isp_fw_update_end; +#endif +#else + /* IST30xxC ISP write single */ + for (i = 0; i < IST30XX_FLASH_TOTAL_SIZE; i += IST30XX_DATA_LEN) { + ret = ist30xxc_isp_program(data->client, addr, + IST30XX_ISP_PROG_TOTAL_S, (u32 *)buf, 1); + if (unlikely(ret)) + goto isp_fw_update_end; + + addr++; + buf += IST30XX_DATA_LEN; + } +#endif + +isp_fw_update_end: + /* IST30xxC ISP disable */ + ist30xxc_isp_enable(data->client, false); + ist30xx_reset(data, false); + return ret; +} + +u32 ist30xx_parse_ver(struct ist30xx_data *data, int flag, const u8 *buf) +{ + u32 ver = 0; + u32 *buf32 = (u32 *)buf; + + if (flag == FLAG_MAIN) + ver = (u32)buf32[(data->tags.flag_addr + 0x1FC) >> 2]; + else if (flag == FLAG_TEST) + ver = (u32)buf32[(data->tags.flag_addr + 0x1F4) >> 2]; + else if (flag == FLAG_FW) + ver = (u32)(buf32[(data->tags.cfg_addr + 0x4) >> 2] & 0xFFFF); + else if (flag == FLAG_CORE) + ver = (u32)buf32[(data->tags.flag_addr + 0x1F0) >> 2]; + else + tsp_warn("Parsing ver's flag is not corrent!\n"); + + return ver; +} + +int calib_ms_delay = CALIB_WAIT_TIME; +int ist30xx_calib_wait(struct ist30xx_data *data) +{ + int cnt = calib_ms_delay; + + data->status.calib_msg = 0; + while (cnt-- > 0) { + msleep(100); + + if (data->status.calib_msg) { + tsp_info("Calibration status : %d, Max raw gap : %d - (%08x)\n", + CALIB_TO_STATUS(data->status.calib_msg), + CALIB_TO_GAP(data->status.calib_msg), + data->status.calib_msg); + if (CALIB_TO_STATUS(data->status.calib_msg) == 0) + return 0; // Calibrate success + else + return -EAGAIN; + } + } + tsp_warn("Calibration time out\n"); + + return -EPERM; +} + +int ist30xx_calibrate(struct ist30xx_data *data, int wait_cnt) +{ + int ret = -ENOEXEC; + + tsp_info("*** Calibrate %ds ***\n", calib_ms_delay / 10); + + data->status.update = 1; + ist30xx_disable_irq(data); + while (1) { + ret = ist30xx_cmd_calibrate(data->client); + if (unlikely(ret)) + continue; + + ist30xx_enable_irq(data); + ret = ist30xx_calib_wait(data); + if (likely(!ret)) + break; + + ist30xx_disable_irq(data); + + if (--wait_cnt == 0) + break; + + ist30xx_reset(data, false); + } + + ist30xx_disable_irq(data); + ist30xx_reset(data, false); + data->status.update = 2; + ist30xx_enable_irq(data); + + return ret; +} + + +int ist30xx_parse_tags(struct ist30xx_data *data, const u8 *buf, const u32 size) +{ + int ret = -EPERM; + struct ist30xx_tags *tags; + + tags = (struct ist30xx_tags *)(&buf[size - sizeof(struct ist30xx_tags)]); + + if (!strncmp(tags->magic1, IST30XX_TAG_MAGIC, sizeof(tags->magic1)) + && !strncmp(tags->magic2, IST30XX_TAG_MAGIC, sizeof(tags->magic2)) + ) { + data->tags = *tags; + + data->tags.fw_addr -= data->tags.rom_base; + data->tags.cfg_addr -= data->tags.rom_base; + data->tags.sensor_addr -= data->tags.rom_base; + data->tags.cp_addr -= data->tags.rom_base; + data->tags.flag_addr -= data->tags.rom_base; + + data->fw.index = data->tags.fw_addr; + data->fw.size = tags->flag_addr - tags->fw_addr + + tags->flag_size; + data->fw.chksum = tags->chksum; + + tsp_verb("Tagts magic1: %s, magic2: %s\n", + data->tags.magic1, data->tags.magic2); + tsp_verb(" rom: %x\n", data->tags.rom_base); + tsp_verb(" ram: %x\n", data->tags.ram_base); + tsp_verb(" fw: %x(%x)\n", data->tags.fw_addr, data->tags.fw_size); + tsp_verb(" cfg: %x(%x)\n", data->tags.cfg_addr, data->tags.cfg_size); + tsp_verb(" sensor: %x(%x)\n", + data->tags.sensor_addr, data->tags.sensor_size); + tsp_verb(" cp: %x(%x)\n", data->tags.cp_addr, data->tags.cp_size); + tsp_verb(" flag: %x(%x)\n", data->tags.flag_addr, data->tags.flag_size); + tsp_verb(" zvalue: %x\n", data->tags.zvalue_base); + tsp_verb(" algo: %x\n", data->tags.algo_base); + tsp_verb(" raw: %x\n", data->tags.raw_base); + tsp_verb(" filter: %x\n", data->tags.filter_base); + tsp_verb(" chksum: %x\n", data->tags.chksum); + tsp_verb(" chksum_all: %x\n", data->tags.chksum_all); + tsp_verb(" build time: %04d/%02d/%02d (%02d:%02d:%02d)\n", + data->tags.year, data->tags.month, data->tags.day, + data->tags.hour, data->tags.min, data->tags.sec); + + ret = 0; + } + + return ret; +} + +int ist30xx_get_update_info(struct ist30xx_data *data, const u8 *buf, + const u32 size) +{ + int ret; + + ret = ist30xx_parse_tags(data, buf, size); + if (unlikely(ret != TAGS_PARSE_OK)) + tsp_warn("Cannot find tags of F/W, make a tags by 'tagts.exe'\n"); + + return ret; +} + +#define TSP_INFO_SWAP_XY (1 << 0) +#define TSP_INFO_FLIP_X (1 << 1) +#define TSP_INFO_FLIP_Y (1 << 2) +u32 ist30xx_info_cal_crc(u32 *buf) +{ + int i; + u32 chksum32 = 0; + + for (i = 0; i < IST30XX_MAX_CMD_SIZE - 1; i++) { + chksum32 += *buf++; + } + + return chksum32; +} + +int ist30xx_tsp_update_info(struct ist30xx_data *data) +{ + int ret = 0; + u32 chksum; + u32 info[IST30XX_MAX_CMD_SIZE]; + u32 tsp_lcd, tsp_swap, tsp_scr, tsp_gtx, tsp_ch; + u32 tkey_info0, tkey_info1, tkey_info2; + u32 finger_info, baseline, threshold; + TSP_INFO *tsp = &data->tsp_info; +#if IST30XX_USE_KEY + TKEY_INFO *tkey = &data->tkey_info; +#endif + + ret = ist30xx_cmd_hold(data->client, 1); + if (unlikely(ret)) + return ret; + + ret = ist30xx_burst_read(data->client, + IST30XX_DA_ADDR(eHCOM_GET_CHIP_ID), &info[0], + IST30XX_MAX_CMD_SIZE, true); + if (unlikely(ret)) + return ret; + + ist30xx_cmd_hold(data->client, 0); + if (unlikely(ret)) { + ist30xx_reset(data, false); + return ret; + } + + ret = ist30xx_read_cmd(data, IST30XX_REG_CHIPID, &data->chip_id); + if (unlikely(ret)) + return ret; + + if ((info[IST30XX_CMD_VALUE(eHCOM_GET_CHIP_ID)] != data->chip_id) || + (info[IST30XX_CMD_VALUE(eHCOM_GET_CHIP_ID)] == 0) || + (info[IST30XX_CMD_VALUE(eHCOM_GET_CHIP_ID)] == 0xFFFF)) + return -EINVAL; + + chksum = ist30xx_info_cal_crc((u32*)info); + if (chksum != info[IST30XX_MAX_CMD_SIZE - 1]) { + tsp_err("info checksum : %08X, %08X\n", + chksum, info[IST30XX_MAX_CMD_SIZE - 1]); + return -EINVAL; + } + tsp_info("info read success\n"); + + tsp_lcd = info[IST30XX_CMD_VALUE(eHCOM_GET_LCD_INFO)]; + tsp_ch = info[IST30XX_CMD_VALUE(eHCOM_GET_TSP_INFO)]; + tkey_info0 = info[IST30XX_CMD_VALUE(eHCOM_GET_KEY_INFO_0)]; + tkey_info1 = info[IST30XX_CMD_VALUE(eHCOM_GET_KEY_INFO_1)]; + tkey_info2 = info[IST30XX_CMD_VALUE(eHCOM_GET_KEY_INFO_2)]; + tsp_scr = info[IST30XX_CMD_VALUE(eHCOM_GET_SCR_INFO)]; + tsp_gtx = info[IST30XX_CMD_VALUE(eHCOM_GET_GTX_INFO)]; + tsp_swap = info[IST30XX_CMD_VALUE(eHCOM_GET_SWAP_INFO)]; + finger_info = info[IST30XX_CMD_VALUE(eHCOM_GET_FINGER_INFO)]; + baseline = info[IST30XX_CMD_VALUE(eHCOM_GET_BASELINE)]; + threshold = info[IST30XX_CMD_VALUE(eHCOM_GET_TOUCH_TH)]; + + tsp->ch_num.rx = (tsp_ch >> 16) & 0xFFFF; + tsp->ch_num.tx = tsp_ch & 0xFFFF; + + tsp->node.len = tsp->ch_num.tx * tsp->ch_num.rx; + + tsp->gtx.num = (tsp_gtx >> 24) & 0xFF; + tsp->gtx.ch_num[0] = (tsp_gtx >> 16) & 0xFF; + tsp->gtx.ch_num[1] = (tsp_gtx >> 8) & 0xFF; + tsp->gtx.ch_num[2] = 0xFF; + tsp->gtx.ch_num[3] = 0xFF; + + tsp->finger_num = finger_info; + tsp->dir.swap_xy = (tsp_swap & TSP_INFO_SWAP_XY ? true : false); + tsp->dir.flip_x = (tsp_swap & TSP_INFO_FLIP_X ? true : false); + tsp->dir.flip_y = (tsp_swap & TSP_INFO_FLIP_Y ? true : false); + + tsp->baseline = baseline & 0xFFFF; + + tsp->screen.rx = (tsp_scr >> 16) & 0xFFFF; + tsp->screen.tx = tsp_scr & 0xFFFF; + + if (tsp->dir.swap_xy) { + tsp->width = tsp_lcd & 0xFFFF; + tsp->height = (tsp_lcd >> 16) & 0xFFFF; + } else { + tsp->width = (tsp_lcd >> 16) & 0xFFFF; + tsp->height = tsp_lcd & 0xFFFF; + } + +#if IST30XX_USE_KEY + tkey->enable = (((tkey_info0 >> 24) & 0xFF) ? true : false); + tkey->key_num = (tkey_info0 >> 16) & 0xFF; + tkey->ch_num[0].tx = tkey_info0 & 0xFF; + tkey->ch_num[0].rx = (tkey_info0 >> 8) & 0xFF; + tkey->ch_num[1].tx = (tkey_info1 >> 16) & 0xFF; + tkey->ch_num[1].rx = (tkey_info1 >> 24) & 0xFF; + tkey->ch_num[2].tx = tkey_info1 & 0xFF; + tkey->ch_num[2].rx = (tkey_info1 >> 8) & 0xFF; + tkey->ch_num[3].tx = (tkey_info2 >> 16) & 0xFF; + tkey->ch_num[3].rx = (tkey_info2 >> 24) & 0xFF; + tkey->ch_num[4].tx = tkey_info2 & 0xFF; + tkey->ch_num[4].rx = (tkey_info2 >> 8) & 0xFF; + + tkey->baseline = (baseline >> 16) & 0xFFFF; +#endif + + return ret; +} + +int ist30xx_get_tsp_info(struct ist30xx_data *data) +{ + int ret = 0; + int retry = 3; +#if IST30XX_INTERNAL_BIN + TSP_INFO *tsp = &data->tsp_info; +#if IST30XX_USE_KEY + TKEY_INFO *tkey = &data->tkey_info; +#endif + u8 *cfg_buf; +#endif + + while (retry--) { + ret = ist30xx_tsp_update_info(data); + if (ret == 0) { + tsp_info("tsp update info success!\n"); + return ret; + } + } + +#if IST30XX_INTERNAL_BIN + cfg_buf = (u8 *)&data->fw.buf[data->tags.cfg_addr]; + + tsp->ch_num.rx = (u8)cfg_buf[0x0C]; + tsp->ch_num.tx = (u8)cfg_buf[0x0D]; + tsp->node.len = tsp->ch_num.tx * tsp->ch_num.rx; + + tsp->gtx.num = (u8)cfg_buf[0x10]; + tsp->gtx.ch_num[0] = (u8)cfg_buf[0x11]; + tsp->gtx.ch_num[1] = (u8)cfg_buf[0x12]; + tsp->gtx.ch_num[2] = (u8)cfg_buf[0x13]; + tsp->gtx.ch_num[3] = (u8)cfg_buf[0x14]; + + tsp->finger_num = (u8)cfg_buf[0x1A]; + tsp->dir.swap_xy = (bool)(cfg_buf[0x1B] & TSP_INFO_SWAP_XY ? true : false); + tsp->dir.flip_x = (bool)(cfg_buf[0x1B] & TSP_INFO_FLIP_X ? true : false); + tsp->dir.flip_y = (bool)(cfg_buf[0x1B] & TSP_INFO_FLIP_Y ? true : false); + + tsp->baseline = (u16)((cfg_buf[0x31] << 8) | cfg_buf[0x30]); + + tsp->screen.rx = (u8)cfg_buf[0x0E]; + tsp->screen.tx = (u8)cfg_buf[0x0F]; + + if (tsp->dir.swap_xy) { + tsp->width = (u16)((cfg_buf[0x19] << 8) | cfg_buf[0x18]); + tsp->height = (u16)((cfg_buf[0x17] << 8) | cfg_buf[0x16]); + } else { + tsp->width = (u16)((cfg_buf[0x17] << 8) | cfg_buf[0x16]); + tsp->height = (u16)((cfg_buf[0x19] << 8) | cfg_buf[0x18]); + } + +#if IST30XX_USE_KEY + tkey->enable = (bool)(cfg_buf[0x3A] & 1); + tkey->key_num = (u8)cfg_buf[0x3B]; + tkey->ch_num[0].tx = (u8)cfg_buf[0x3E]; + tkey->ch_num[0].rx = (u8)cfg_buf[0x43]; + tkey->ch_num[1].tx = (u8)cfg_buf[0x3F]; + tkey->ch_num[1].rx = (u8)cfg_buf[0x44]; + tkey->ch_num[2].tx = (u8)cfg_buf[0x40]; + tkey->ch_num[2].rx = (u8)cfg_buf[0x45]; + tkey->ch_num[3].tx = (u8)cfg_buf[0x41]; + tkey->ch_num[3].rx = (u8)cfg_buf[0x46]; + tkey->ch_num[4].tx = (u8)cfg_buf[0x42]; + tkey->ch_num[4].rx = (u8)cfg_buf[0x47]; + + tkey->baseline = (u16)((cfg_buf[0x3D] << 8) | cfg_buf[0x3C]); +#endif +#endif + + return ret; +} + +void ist30xx_print_info(struct ist30xx_data *data) +{ + TSP_INFO *tsp = &data->tsp_info; + TKEY_INFO *tkey = &data->tkey_info; + + tsp_info("*** TSP/TKEY info ***\n"); + tsp_info("TSP info: \n"); + tsp_info(" finger num: %d\n", tsp->finger_num); + tsp_info(" dir swap: %d, flip x: %d, y: %d\n", + tsp->dir.swap_xy, tsp->dir.flip_x, tsp->dir.flip_y); + tsp_info(" baseline: %d\n", tsp->baseline); + tsp_info(" ch_num tx: %d, rx: %d\n", tsp->ch_num.tx, tsp->ch_num.rx); + tsp_info(" screen tx: %d, rx: %d\n", tsp->screen.tx, tsp->screen.rx); + tsp_info(" width: %d, height: %d\n", tsp->width, tsp->height); + tsp_info(" gtx num: %d, ch [1]: %d, [2]: %d, [3]: %d, [4]: %d\n", + tsp->gtx.num, tsp->gtx.ch_num[0], tsp->gtx.ch_num[1], + tsp->gtx.ch_num[2], tsp->gtx.ch_num[3]); + tsp_info(" node len: %d\n", tsp->node.len); + tsp_info("TKEY info: \n"); + tsp_info(" enable: %d, key num: %d\n", tkey->enable, tkey->key_num); + tsp_info(" ch [0]: %d,%d [1]: %d,%d [2]: %d,%d [3]: %d,%d [4]: %d,%d\n", + tkey->ch_num[0].tx, tkey->ch_num[0].rx, tkey->ch_num[1].tx, + tkey->ch_num[1].rx, tkey->ch_num[2].tx, tkey->ch_num[2].rx, + tkey->ch_num[3].tx, tkey->ch_num[3].rx, tkey->ch_num[4].tx, + tkey->ch_num[4].rx); + tsp_info(" baseline : %d\n", tkey->baseline); +} + +#define update_next_step(ret) { if (unlikely(ret)) goto end; } +int ist30xx_fw_update(struct ist30xx_data *data, const u8 *buf, int size) +{ + int ret = 0; + u32 chksum = 0; + struct ist30xx_fw *fw = &data->fw; + + tsp_info("*** Firmware update ***\n"); + tsp_info(" main: %x, fw: %x, test: %x, core: %x(addr: 0x%x ~ 0x%x)\n", + fw->bin.main_ver, fw->bin.fw_ver, fw->bin.test_ver, fw->bin.core_ver, + fw->index, (fw->index + fw->size)); + + data->status.update = 1; + data->status.update_result = 0; + + ist30xx_disable_irq(data); + + ret = ist30xxc_isp_fw_update(data, buf); + update_next_step(ret); + + ret = ist30xx_read_cmd(data, eHCOM_GET_CRC32, &chksum); + if (unlikely((ret) || (chksum != fw->chksum))) { + if (unlikely(ret)) + ist30xx_reset(data, false); + + goto end; + } + + ret = ist30xx_get_ver_info(data); + update_next_step(ret); + +end: + if (unlikely(ret)) { + data->status.update_result = 1; + tsp_warn("Firmware update Fail!, ret=%d\n", ret); + } else if (unlikely(chksum != fw->chksum)) { + data->status.update_result = 1; + tsp_warn("Error CheckSum: %x(%x)\n", chksum, fw->chksum); + ret = -ENOEXEC; + } + + ist30xx_enable_irq(data); + + data->status.update = 2; + + return ret; +} + +int ist30xx_fw_recovery(struct ist30xx_data *data) +{ + int ret = -EPERM; + u8 *fw = data->fw.buf; + int fw_size = data->fw.buf_size; + + ret = ist30xx_get_update_info(data, fw, fw_size); + if (ret) + return ret; + + data->fw.bin.main_ver = ist30xx_parse_ver(data, FLAG_MAIN, fw); + data->fw.bin.fw_ver = ist30xx_parse_ver(data, FLAG_FW, fw); + data->fw.bin.test_ver = ist30xx_parse_ver(data, FLAG_TEST, fw); + data->fw.bin.core_ver = ist30xx_parse_ver(data, FLAG_CORE, fw); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_fw_update(data, fw, fw_size); + if (ret == 0) + ist30xx_calibrate(data, 1); + mutex_unlock(&ist30xx_mutex); + + ist30xx_start(data); + + return ret; +} + +#if IST30XX_INTERNAL_BIN +int ist30xx_check_fw(struct ist30xx_data *data, const u8 *buf) +{ + int ret; + u32 chksum; + + ret = ist30xx_read_cmd(data, eHCOM_GET_CRC32, &chksum); + if (unlikely(ret)) { + ist30xx_reset(data, false); + return ret; + } + + if (unlikely(chksum != data->fw.chksum)) { + tsp_warn("Checksum compare error, (IC: %08x, Bin: %08x)\n", + chksum, data->fw.chksum); + return -EPERM; + } + + return 0; +} + +bool ist30xx_check_valid_vendor(u32 tsp_vendor) +{ +#if (IMAGIS_TSP_IC < IMAGIS_IST3038C) + switch (tsp_vendor) { + case TSP_TYPE_ALPS: + case TSP_TYPE_EELY: + case TSP_TYPE_TOP: + case TSP_TYPE_MELFAS: + case TSP_TYPE_ILJIN: + case TSP_TYPE_SYNOPEX: + case TSP_TYPE_SMAC: + case TSP_TYPE_TAEYANG: + case TSP_TYPE_TOVIS: + case TSP_TYPE_ELK: + case TSP_TYPE_OTHERS: + return true; + default: + return false; + } +#else + if (tsp_vendor < TSP_TYPE_NO) + return true; +#endif + + return false; +} + +#if (IMAGIS_TSP_IC < IMAGIS_IST3038C) +#if IST30XX_MULTIPLE_TSP +void ist30xx_set_tsp_fw(struct ist30xx_data *data) +{ + char *str; + struct ist30xx_fw *fw = &data->fw; + + switch (data->tsp_type) { + case TSP_TYPE_ILJIN: + str = "ALPS/ILJIN"; + fw->buf = (u8 *)ist30xxc_fw; + fw->buf_size = sizeof(ist30xxc_fw); + break; + case TSP_TYPE_EELY: + str = "EELY"; + fw->buf = (u8 *)ist30xxc_fw2; + fw->buf_size = sizeof(ist30xxc_fw2); + break; + + case TSP_TYPE_UNKNOWN: + default: + str = "Unknown"; + tsp_warn("Unknown TSP vendor(0x%x)\n", data->tsp_type); + break; + } + tsp_info("TSP vendor : %s(%x)\n", str, data->tsp_type); +} +#endif // IST30XX_MULTIPLE_TSP +#endif // (IMAGIS_TSP_IC < IMAGIS_IST3038C) + +int ist30xx_check_auto_update(struct ist30xx_data *data) +{ + int ret = 0; + int retry = IST30XX_MAX_RETRY_CNT; + u32 tsp_type = TSP_TYPE_UNKNOWN; + bool tsp_check = false; + u32 chksum; + struct ist30xx_fw *fw = &data->fw; + + while (retry--) { + ret = ist30xx_read_cmd(data, eHCOM_GET_TSP_VENDOR, &tsp_type); + if (likely(ret == 0)) { + if (likely(ist30xx_check_valid_vendor(tsp_type) == true)) + tsp_check = true; + break; + } + + ist30xx_reset(data, false); + } +#if (IMAGIS_TSP_IC < IMAGIS_IST3038C) + tsp_info("TSP vendor: %x\n", tsp_type); +#endif + + if (unlikely(!tsp_check)) + goto fw_check_end; + + ist30xx_get_ver_info(data); + + if (likely((fw->cur.fw_ver > 0) && (fw->cur.fw_ver < 0xFFFFFFFF))) { + tsp_info("Version compare IC: %x(%x), BIN: %x(%x)\n", fw->cur.fw_ver, + fw->cur.main_ver, fw->bin.fw_ver, fw->bin.main_ver); + + /* If FW version is same, check FW checksum */ + if (likely((fw->cur.main_ver == fw->bin.main_ver) && + (fw->cur.fw_ver == fw->bin.fw_ver) && + (fw->cur.test_ver == 0))) { + ret = ist30xx_read_cmd(data, eHCOM_GET_CRC32, &chksum); + if (unlikely((ret) || (chksum != fw->chksum))) { + tsp_warn("Checksum error, IC: %x, Bin: %x (ret: %d)\n", + chksum, fw->chksum, ret); + goto fw_check_end; + } + } + + /* + * fw->cur.main_ver : Main version in TSP IC + * fw->cur.fw_ver : FW version if TSP IC + * fw->bin.main_ver : Main version in FW Binary + * fw->bin.fw_ver : FW version in FW Binary + */ + /* If the ver of binary is higher than ver of IC, FW update operate. */ + + if (likely((fw->cur.main_ver >= fw->bin.main_ver) && + (fw->cur.fw_ver >= fw->bin.fw_ver))) + return 0; + } + +fw_check_end: + return -EAGAIN; +} + +int ist30xx_auto_bin_update(struct ist30xx_data *data) +{ + int ret = 0; + int retry = IST30XX_MAX_RETRY_CNT; + struct ist30xx_fw *fw = &data->fw; + + fw->buf = (u8 *)ist30xxc_fw; + fw->buf_size = sizeof(ist30xxc_fw); + +#if (IMAGIS_TSP_IC < IMAGIS_IST3038C) +#if IST30XX_MULTIPLE_TSP + ist30xx_set_tsp_fw(data); +#endif +#endif + + ret = ist30xx_get_update_info(data, fw->buf, fw->buf_size); + if (unlikely(ret)) + return 1; + fw->bin.main_ver = ist30xx_parse_ver(data, FLAG_MAIN, fw->buf); + fw->bin.fw_ver = ist30xx_parse_ver(data, FLAG_FW, fw->buf); + fw->bin.test_ver = ist30xx_parse_ver(data, FLAG_TEST, fw->buf); + fw->bin.core_ver = ist30xx_parse_ver(data, FLAG_CORE, fw->buf); + + tsp_info("IC: %x, Binary ver main: %x, fw: %x, test: %x, core: %x\n", + data->chip_id, fw->bin.main_ver, fw->bin.fw_ver, fw->bin.test_ver, + fw->bin.core_ver); + + mutex_lock(&ist30xx_mutex); + ret = ist30xx_check_auto_update(data); + mutex_unlock(&ist30xx_mutex); + + if (likely(ret >= 0)) + return ret; + +update_bin: // TSP is not ready / FW update + tsp_info("Update version. fw(main, test, core): %x(%x, %x, %x) -> %x(%x, %x, %x)\n", + fw->cur.fw_ver, fw->cur.main_ver, fw->cur.test_ver, fw->cur.core_ver, + fw->bin.fw_ver, fw->bin.main_ver, fw->bin.test_ver, fw->bin.core_ver); + + mutex_lock(&ist30xx_mutex); + while (retry--) { + ret = ist30xx_fw_update(data, fw->buf, fw->buf_size); + if (unlikely(!ret)) + break; + } + mutex_unlock(&ist30xx_mutex); + + if (unlikely(ret)) + return ret; + + if (unlikely(retry > 0 && ist30xx_check_fw(data, fw->buf))) + goto update_bin; + + mutex_lock(&ist30xx_mutex); + ist30xx_calibrate(data, IST30XX_MAX_RETRY_CNT); + mutex_unlock(&ist30xx_mutex); + + return ret; +} +#endif // IST30XX_INTERNAL_BIN + +#define MAX_FILE_PATH 255 +/* sysfs: /sys/class/touch/firmware/firmware */ +ssize_t ist30xx_fw_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t size) +{ + int ret; + int fw_size = 0; + u8 *fw = NULL; + const u8 *buff = 0; + mm_segment_t old_fs = { 0 }; + struct file *fp = NULL; + long fsize = 0, nread = 0; + char fw_path[MAX_FILE_PATH]; + const struct firmware *request_fw = NULL; + int mode = 0; + int calib = 1; + struct ist30xx_data *data = dev_get_drvdata(dev); + + sscanf(buf, "%d %d", &mode, &calib); + + switch (mode) { + case MASK_UPDATE_INTERNAL: +#if IST30XX_INTERNAL_BIN + fw = data->fw.buf; + fw_size = data->fw.buf_size; +#else + tsp_warn("Not support internal bin!!\n"); + return size; +#endif + break; + + case MASK_UPDATE_FW: + ret = request_firmware(&request_fw, IST30XX_FW_NAME, + &data->client->dev); + if (ret) { + tsp_warn("File not found, %s\n", IST30XX_FW_NAME); + return size; + } + + fw = (u8 *)request_fw->data; + fw_size = (u32)request_fw->size; + tsp_info("firmware is loaded!!\n"); + break; + + case MASK_UPDATE_SDCARD: + old_fs = get_fs(); + set_fs(get_ds()); + + snprintf(fw_path, MAX_FILE_PATH, "/sdcard/%s", + IST30XX_FW_NAME); + fp = filp_open(fw_path, O_RDONLY, 0); + if (IS_ERR(fp)) { + tsp_info("file %s open error:%d\n", fw_path, (s32)fp); + goto err_file_open; + } + + fsize = fp->f_path.dentry->d_inode->i_size; + + buff = kzalloc((size_t)fsize, GFP_KERNEL); + if (!buff) { + tsp_info("fail to alloc buffer\n"); + goto err_alloc; + } + + nread = vfs_read(fp, (char __user *)buff, fsize, &fp->f_pos); + if (nread != fsize) { + tsp_info("mismatch fw size\n"); + goto err_fw_size; + } + + fw = (u8 *)buff; + fw_size = (u32)fsize; + + filp_close(fp, current->files); + tsp_info("firmware is loaded!!\n"); + break; + + case MASK_UPDATE_ERASE: + tsp_info("EEPROM all erase!!\n"); + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + ist30xx_reset(data, true); + ist30xxc_isp_enable(data->client, true); + ist30xxc_isp_erase(data->client, IST30XX_ISP_ERASE_BLOCK, 0); +#if (IST30XX_FLASH_INFO_SIZE > 0) + ist30xxc_isp_erase(data->client, IST30XX_ISP_ERASE_INFO, 0); +#endif + ist30xxc_isp_enable(data->client, false); + ist30xx_reset(data, false); + ist30xx_start(data); + ist30xx_enable_irq(data); + mutex_unlock(&ist30xx_mutex); + + default: + return size; + } + + ret = ist30xx_get_update_info(data, fw, fw_size); + if (ret) + goto err_get_info; + + data->fw.bin.main_ver = ist30xx_parse_ver(data, FLAG_MAIN, fw); + data->fw.bin.fw_ver = ist30xx_parse_ver(data, FLAG_FW, fw); + data->fw.bin.test_ver = ist30xx_parse_ver(data, FLAG_TEST, fw); + data->fw.bin.core_ver = ist30xx_parse_ver(data, FLAG_CORE, fw); + + mutex_lock(&ist30xx_mutex); + ist30xx_fw_update(data, fw, fw_size); + + if (calib) + ist30xx_calibrate(data, 1); + mutex_unlock(&ist30xx_mutex); + + ist30xx_start(data); + +err_get_info: + if (request_fw != NULL) + release_firmware(request_fw); + + if (fp != NULL) { +err_fw_size: + kfree(buff); +err_alloc: + filp_close(fp, NULL); +err_file_open: + set_fs(old_fs); + } + + return size; +} + +/* sysfs: /sys/class/touch/firmware/fw_sdcard */ +ssize_t ist30xx_fw_sdcard_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int ret = 0; + int fw_size = 0; + u8 *fw = NULL; + const u8 *buff = 0; + mm_segment_t old_fs = { 0 }; + struct file *fp = NULL; + long fsize = 0, nread = 0; + char fw_path[MAX_FILE_PATH]; + struct ist30xx_data *data = dev_get_drvdata(dev); + + old_fs = get_fs(); + set_fs(get_ds()); + + snprintf(fw_path, MAX_FILE_PATH, "/sdcard/%s", + IST30XX_FW_NAME); + fp = filp_open(fw_path, O_RDONLY, 0); + if (IS_ERR(fp)) { + tsp_info("file %s open error:%d\n", fw_path, (s32)fp); + goto err_file_open; + } + + fsize = fp->f_path.dentry->d_inode->i_size; + + buff = kzalloc((size_t)fsize, GFP_KERNEL); + if (!buff) { + tsp_info("fail to alloc buffer\n"); + goto err_alloc; + } + + nread = vfs_read(fp, (char __user *)buff, fsize, &fp->f_pos); + if (nread != fsize) { + tsp_info("mismatch fw size\n"); + goto err_fw_size; + } + + fw = (u8 *)buff; + fw_size = (u32)fsize; + + filp_close(fp, current->files); + tsp_info("firmware is loaded!!\n"); + + ret = ist30xx_get_update_info(data, fw, fw_size); + if (ret) + goto err_get_info; + data->fw.bin.main_ver = ist30xx_parse_ver(data, FLAG_MAIN, fw); + data->fw.bin.fw_ver = ist30xx_parse_ver(data, FLAG_FW, fw); + data->fw.bin.test_ver = ist30xx_parse_ver(data, FLAG_TEST, fw); + data->fw.bin.core_ver = ist30xx_parse_ver(data, FLAG_CORE, fw); + + mutex_lock(&ist30xx_mutex); + ist30xx_fw_update(data, fw, fw_size); + mutex_unlock(&ist30xx_mutex); + + ist30xx_start(data); + +err_get_info: +err_fw_size: + if (buff) + kfree(buff); +err_alloc: + if (fp) + filp_close(fp, NULL); +err_file_open: + set_fs(old_fs); + + return 0; +} + +/* sysfs: /sys/class/touch/firmware/firmware */ +ssize_t ist30xx_fw_status_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int count; + struct ist30xx_data *data = dev_get_drvdata(dev); + + switch (data->status.update) { + case 1: + count = sprintf(buf, "Downloading\n"); + break; + case 2: + if (data->status.update_result) { + count = sprintf(buf, "Update fail\n"); + } else { + count = sprintf(buf, "Update success, ver %x(%x, %x, %x)-> %x(%x, %x, %x), " + "status : %d, gap : %d\n", + data->fw.prev.fw_ver, data->fw.prev.main_ver, + data->fw.prev.test_ver, data->fw.prev.core_ver, + data->fw.cur.fw_ver, data->fw.cur.main_ver, + data->fw.cur.test_ver, data->fw.cur.core_ver, + CALIB_TO_STATUS(data->status.calib_msg), + CALIB_TO_GAP(data->status.calib_msg)); + } + break; + default: + count = sprintf(buf, "Pass\n"); + } + + return count; +} + +/* sysfs: /sys/class/touch/firmware/fw_read */ +u32 buf32_flash[IST30XX_FLASH_TOTAL_SIZE / IST30XX_DATA_LEN]; +ssize_t ist30xx_fw_read_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int i; + mm_segment_t old_fs = { 0 }; + struct file *fp = NULL; + char fw_path[MAX_FILE_PATH]; + u8 *buf8 = (u8 *)buf32_flash; + struct ist30xx_data *data = dev_get_drvdata(dev); + + mutex_lock(&ist30xx_mutex); + ist30xx_disable_irq(data); + + ist30xxc_isp_fw_read(data, buf32_flash); + for (i = 0; i < IST30XX_FLASH_TOTAL_SIZE; i += 16) { + tsp_debug("%07x: %02x%02x %02x%02x %02x%02x %02x%02x " + "%02x%02x %02x%02x %02x%02x %02x%02x\n", i, + buf8[i], buf8[i + 1], buf8[i + 2], buf8[i + 3], + buf8[i + 4], buf8[i + 5], buf8[i + 6], buf8[i + 7], + buf8[i + 8], buf8[i + 9], buf8[i + 10], buf8[i + 11], + buf8[i + 12], buf8[i + 13], buf8[i + 14], buf8[i + 15]); + } + + old_fs = get_fs(); + set_fs(get_ds()); + + snprintf(fw_path, MAX_FILE_PATH, "/sdcard/%s", IST30XX_BIN_NAME); + fp = filp_open(fw_path, O_CREAT|O_WRONLY|O_TRUNC, 0); + if (IS_ERR(fp)) { + tsp_info("file %s open error:%d\n", fw_path, (s32)fp); + goto err_file_open; + } + + fp->f_op->write(fp, buf8, IST30XX_FLASH_TOTAL_SIZE, &fp->f_pos); + fput(fp); + + filp_close(fp, NULL); + set_fs(old_fs); + +err_file_open: + ist30xx_enable_irq(data); + mutex_unlock(&ist30xx_mutex); + + ist30xx_start(data); + + return 0; +} + +/* sysfs: /sys/class/touch/firmware/version */ +ssize_t ist30xx_fw_version_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int count; + struct ist30xx_data *data = dev_get_drvdata(dev); + + count = sprintf(buf, "ID: %x, main: %x, fw: %x, test: %x, core: %x\n", + data->chip_id, data->fw.cur.main_ver, data->fw.cur.fw_ver, + data->fw.cur.test_ver, data->fw.cur.core_ver); + +#if IST30XX_INTERNAL_BIN + { + char msg[128]; + + ist30xx_get_update_info(data, data->fw.buf, data->fw.buf_size); + + count += snprintf(msg, sizeof(msg), + " Header - main: %x, fw: %x, test: %x, core: %x\n", + ist30xx_parse_ver(data, FLAG_MAIN, data->fw.buf), + ist30xx_parse_ver(data, FLAG_FW, data->fw.buf), + ist30xx_parse_ver(data, FLAG_TEST, data->fw.buf), + ist30xx_parse_ver(data, FLAG_CORE, data->fw.buf)); + strncat(buf, msg, sizeof(msg)); + } +#endif + + return count; +} + + +/* sysfs */ +static DEVICE_ATTR(fw_read, S_IRWXUGO, ist30xx_fw_read_show, NULL); +static DEVICE_ATTR(firmware, S_IRWXUGO, ist30xx_fw_status_show, + ist30xx_fw_store); +static DEVICE_ATTR(fw_sdcard, S_IRWXUGO, ist30xx_fw_sdcard_show, NULL); +static DEVICE_ATTR(version, S_IRWXUGO, ist30xx_fw_version_show, NULL); + +struct class *ist30xx_class; +struct device *ist30xx_fw_dev; + +static struct attribute *fw_attributes[] = { + &dev_attr_fw_read.attr, + &dev_attr_firmware.attr, + &dev_attr_fw_sdcard.attr, + &dev_attr_version.attr, + NULL, +}; + +static struct attribute_group fw_attr_group = { + .attrs = fw_attributes, +}; + +int ist30xx_init_update_sysfs(struct ist30xx_data *data) +{ + /* /sys/class/touch */ + ist30xx_class = class_create(THIS_MODULE, "touch"); + + /* /sys/class/touch/firmware */ + ist30xx_fw_dev = device_create(ist30xx_class, NULL, 0, data, "firmware"); + + /* /sys/class/touch/firmware/... */ + if (unlikely(sysfs_create_group(&ist30xx_fw_dev->kobj, &fw_attr_group))) + tsp_err("Failed to create sysfs group(%s)!\n", "firmware"); + + data->status.update = 0; + data->status.calib = 0; + data->status.update_result = 0; + + return 0; +} diff --git a/drivers/input/touchscreen/ist30xxc/ist30xxc_update.h b/drivers/input/touchscreen/ist30xxc/ist30xxc_update.h new file mode 100644 index 00000000..142106f9 --- /dev/null +++ b/drivers/input/touchscreen/ist30xxc/ist30xxc_update.h @@ -0,0 +1,101 @@ +/* + * Copyright (C) 2010, Imagis Technology Co. Ltd. All Rights Reserved. + * + * 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 __IST30XXC_UPDATE_H__ +#define __IST30XXC_UPDATE_H__ + +// Flash size +#define IST30XX_FLASH_BASE_ADDR (0x0) +#if (IMAGIS_TSP_IC < IMAGIS_IST3038C) +#define IST30XX_FLASH_MAIN_SIZE (0x8000) +#define IST30XX_FLASH_INFO_SIZE (0x400) +#define IST30XX_FLASH_TOTAL_SIZE (0x8400) +#else +#define IST30XX_FLASH_MAIN_SIZE (0xFC00) +#define IST30XX_FLASH_INFO_SIZE (0x0) +#define IST30XX_FLASH_TOTAL_SIZE (0xFC00) +#endif +#define IST30XX_FLASH_PAGE_SIZE (0x400) + +// Flash register +#define IST30XX_FLASH_BASE (0x40006000) +#define IST30XX_FLASH_MODE IST30XX_DA_ADDR(IST30XX_FLASH_BASE | 0x00) +#define IST30XX_FLASH_ADDR IST30XX_DA_ADDR(IST30XX_FLASH_BASE | 0x04) +#define IST30XX_FLASH_DIN IST30XX_DA_ADDR(IST30XX_FLASH_BASE | 0x08) +#define IST30XX_FLASH_DOUT IST30XX_DA_ADDR(IST30XX_FLASH_BASE | 0x0C) +#define IST30XX_FLASH_ISPEN IST30XX_DA_ADDR(IST30XX_FLASH_BASE | 0x10) +#define IST30XX_FLASH_AUTO_READ IST30XX_DA_ADDR(IST30XX_FLASH_BASE | 0x14) +#define IST30XX_FLASH_CRC IST30XX_DA_ADDR(IST30XX_FLASH_BASE | 0x18) +#define IST30XX_FLASH_TEST_MODE1 IST30XX_DA_ADDR(IST30XX_FLASH_BASE | 0x30) +#define IST30XX_FLASH_STATUS IST30XX_DA_ADDR(IST30XX_FLASH_BASE | 0x90) + +// F/W update Info +#define IST30XX_FW_NAME "ist30xxc.fw" +#define IST30XX_BIN_NAME "ist30xxc.bin" + +// Calibration +#define CALIB_WAIT_TIME (50) /* unit : 100msec */ +#define CALIB_TO_GAP(n) ((n >> 16) & 0xFFF) +#define CALIB_TO_STATUS(n) ((n >> 12) & 0xF) +#define CALIB_TO_OS_VALUE(n) ((n >> 12) & 0xFFFF) + +// Update func +#define MASK_UPDATE_INTERNAL (1) +#define MASK_UPDATE_FW (2) +#define MASK_UPDATE_SDCARD (3) +#define MASK_UPDATE_ERASE (4) + +// Version flag +#define FLAG_MAIN (1) +#define FLAG_FW (2) +#define FLAG_CORE (3) +#define FLAG_TEST (4) + +// TSP vendor (using gpio) +#define TSP_TYPE_UNKNOWN (0xF0) +#define TSP_TYPE_ALPS (0xF) +#define TSP_TYPE_EELY (0xE) +#define TSP_TYPE_TOP (0xD) +#define TSP_TYPE_MELFAS (0xC) +#define TSP_TYPE_ILJIN (0xB) +#define TSP_TYPE_SYNOPEX (0xA) +#define TSP_TYPE_SMAC (0x9) +#define TSP_TYPE_TAEYANG (0x8) +#define TSP_TYPE_TOVIS (0x7) +#define TSP_TYPE_ELK (0x6) +#define TSP_TYPE_OTHERS (0x5) +#define TSP_TYPE_NO (0x10) + +#define IST30XX_PARSE_TSPTYPE(n) ((n >> 1) & 0xF) + +int ist30xx_read_chksum(struct i2c_client *client, u32 *chksum); +int ist30xx_read_chksum_all(struct i2c_client *client, u32 *chksum); + +int ist30xx_get_update_info(struct ist30xx_data *data, const u8 *buf, + const u32 size); +int ist30xx_get_tsp_info(struct ist30xx_data *data); +void ist30xx_print_info(struct ist30xx_data *data); +u32 ist30xx_parse_ver(struct ist30xx_data *data, int flag, const u8 *buf); + +int ist30xx_fw_update(struct ist30xx_data *data, const u8 *buf, int size); +int ist30xx_fw_recovery(struct ist30xx_data *data); + +int ist30xx_auto_bin_update(struct ist30xx_data *data); + +int ist30xx_calibrate(struct ist30xx_data *data, int wait_cnt); + +int ist30xx_init_update_sysfs(struct ist30xx_data *data); + +#endif // __IST30XXC_UPDATE_H__ diff --git a/drivers/input/touchscreen/ito_test/open_test_ANA1_8861A_lianchuang.h b/drivers/input/touchscreen/ito_test/open_test_ANA1_8861A_lianchuang.h new file mode 100644 index 00000000..1aa390c1 --- /dev/null +++ b/drivers/input/touchscreen/ito_test/open_test_ANA1_8861A_lianchuang.h @@ -0,0 +1,527 @@ + + + + +//MP Setting +#define IDLE_SENSOR_SH4_1 0x2CD1 +#define IDLE_SENSOR_SH4_2 0x6333 +#define IDLE_SENSOR_SH4_3 0x560D +///////////////////////////////////////////////////// +// Constant for ANA Setting +///////////////////////////////////////////////////// +#define ANA1_SET_SH4_0x00 0xFFFF +#define ANA1_SET_SH4_0x01 0x007F +#define ANA1_SET_SH4_0x02 0x001E +#define ANA1_SET_SH4_0x03 0x4800 +#define ANA1_SET_SH4_0x04 0x7FF1 +#define ANA1_SET_SH4_0x05 0xF7FF +#define ANA1_SET_SH4_0x06 0x1F1F +#define ANA1_SET_SH4_0x07 0x0610 +#define ANA1_SET_SH4_0x08 0x0000 +#define ANA1_SET_SH4_0x09 0x0000 +#define ANA1_SET_SH4_0x0A 0x0000 +#define ANA1_SET_SH4_0x0B 0x0000 +#define ANA1_SET_SH4_0x0C 0x0000 +#define ANA1_SET_SH4_0x0D 0x0000 +#define ANA1_SET_SH4_0x0E 0x0000 +#define ANA1_SET_SH4_0x0F 0x0000 +#define ANA1_SET_SH4_0x10 0x0000 +#define ANA1_SET_SH4_0x11 0x0000 +#define ANA1_SET_SH4_0x12 0x0000 +#define ANA1_SET_SH4_0x13 0x0000 +#define ANA1_SET_SH4_0x14 0x0000 +#define ANA1_SET_SH4_0x15 0x0000 +#define ANA1_SET_SH4_0x16 0x0000 +#define ANA1_SET_SH4_0x17 0x0000 +#define ANA1_SET_SH4_0x18 0x0000 +#define ANA1_SET_SH4_0x19 0x0000 +#define ANA1_SET_SH4_0x1A 0x0000 +#define ANA1_SET_SH4_0x1B 0x0000 +#define ANA1_SET_SH4_0x1C 0x0000 +#define ANA1_SET_SH4_0x1D 0x0000 +#define ANA1_SET_SH4_0x1E 0x0000 +#define ANA1_SET_SH4_0x1F 0x0000 +#define ANA1_SET_SH4_0x20 0x0000 +#define ANA1_SET_SH4_0x21 0x0000 +#define ANA1_SET_SH4_0x22 0x0000 +#define ANA1_SET_SH4_0x23 0x0000 +#define ANA1_SET_SH4_0x24 0x0000 +#define ANA1_SET_SH4_0x25 0x0002 +#define ANA1_SET_SH4_0x26 0x0000 +#define ANA1_SET_SH4_0x27 0x3E0C +#define ANA1_SET_SH4_0x28 0x3E3E +#define ANA1_SET_SH4_0x29 0x3E09 +#define ANA1_SET_SH4_0x2A 0x3E3E +#define ANA1_SET_SH4_0x2B 0x3E08 +#define ANA1_SET_SH4_0x2C 0x3E3E +#define ANA1_SET_SH4_0x2D 0x3E05 +#define ANA1_SET_SH4_0x2E 0x3E3E +#define ANA1_SET_SH4_0x2F 0x3E2B +#define ANA1_SET_SH4_0x30 0x3E3E +#define ANA1_SET_SH4_0x31 0x3E28 +#define ANA1_SET_SH4_0x32 0x3E3E +#define ANA1_SET_SH4_0x33 0x3E24 +#define ANA1_SET_SH4_0x34 0x3E3E +#define ANA1_SET_SH4_0x35 0x3E21 +#define ANA1_SET_SH4_0x36 0x3E3E +#define ANA1_SET_SH4_0x37 0x3E0E +#define ANA1_SET_SH4_0x38 0x3E3E +#define ANA1_SET_SH4_0x39 0x3E12 +#define ANA1_SET_SH4_0x3A 0x3E3E +#define ANA1_SET_SH4_0x3B 0x3E13 +#define ANA1_SET_SH4_0x3C 0x3E3E +#define ANA1_SET_SH4_0x3D 0x3E3E +#define ANA1_SET_SH4_0x3E 0x3E3E +#define ANA1_SET_SH4_0x3F 0x0000 +#define ANA1_SET_SH4_0x40 0x0000 +#define ANA1_SET_SH4_0x41 0x0000 +#define ANA1_SET_SH4_0x42 0x0000 +#define ANA1_SET_SH4_0x43 0x0000 +#define ANA1_SET_SH4_0x44 0x0000 +#define ANA1_SET_SH4_0x45 0x0000 +#define ANA1_SET_SH4_0x46 0x0000 +#define ANA1_SET_SH4_0x47 0x0000 +#define ANA1_SET_SH4_0x48 0x0000 +#define ANA1_SET_SH4_0x49 0x0000 +#define ANA1_SET_SH4_0x4A 0x0000 +#define ANA1_SET_SH4_0x4B 0x0000 +#define ANA1_SET_SH4_0x4C 0x0000 +#define ANA1_SET_SH4_0x4D 0x0000 +#define ANA1_SET_SH4_0x4E 0x0000 +#define ANA1_SET_SH4_0x4F 0x0000 +#define ANA1_SET_SH4_0x50 0x0000 +#define ANA1_SET_SH4_0x51 0x0000 +#define ANA1_SET_SH4_0x52 0x0000 +#define ANA1_SET_SH4_0x53 0x0000 +#define ANA1_SET_SH4_0x54 0x0000 +#define ANA1_SET_SH4_0x55 0x0000 +#define ANA1_SET_SH4_0x56 0x0000 +#define ANA1_SET_SH4_0x57 0x0000 +#define ANA1_SET_SH4_0x58 0x0000 +#define ANA1_SET_SH4_0x59 0x0000 +#define ANA1_SET_SH4_0x5A 0x0000 +#define ANA1_SET_SH4_0x5B 0x0000 +#define ANA1_SET_SH4_0x5C 0x0000 +#define ANA1_SET_SH4_0x5D 0x0000 +#define ANA1_SET_SH4_0x5E 0x0000 +#define ANA1_SET_SH4_0x5F 0x0000 +#define ANA1_SET_SH4_0x60 0x0000 +#define ANA1_SET_SH4_0x61 0x0000 +#define ANA1_SET_SH4_0x62 0x0000 +#define ANA1_SET_SH4_0x63 0x0000 +#define ANA1_SET_SH4_0x64 0x0000 +#define ANA1_SET_SH4_0x65 0x0000 +#define ANA1_SET_SH4_0x66 0x0000 +#define ANA1_SET_SH4_0x67 0x0000 +#define ANA1_SET_SH4_0x68 0x0000 +#define ANA1_SET_SH4_0x69 0x0000 +#define ANA1_SET_SH4_0x6A 0x0000 +#define ANA1_SET_SH4_0x6B 0x0000 +#define ANA1_SET_SH4_0x6C 0x0000 +#define ANA1_SET_SH4_0x6D 0x0000 +#define ANA1_SET_SH4_0x6E 0x0000 +#define ANA1_SET_SH4_0x6F 0x0000 +#define ANA1_SET_SH4_0x70 0x0000 +#define ANA1_SET_SH4_0x71 0x0000 +#define ANA1_SET_SH4_0x72 0x0000 +#define ANA1_SET_SH4_0x73 0x0000 +#define ANA1_SET_SH4_0x74 0x0000 +#define ANA1_SET_SH4_0x75 0x0000 +#define ANA1_SET_SH4_0x76 0x0C00 +#define ANA1_SET_SH4_0x77 0xFFFF +#define ANA1_SET_SH4_0x78 0xFFFF +#define ANA1_SET_SH4_0x79 0x3FFF +#define ANA1_SET_SH4_0x7A 0x0000 +#define ANA1_SET_SH4_0x7B 0x0000 +#define ANA1_SET_SH4_0x7C 0x0000 +#define ANA1_SET_SH4_0x7D 0x0000 +#define ANA1_SET_SH4_0x7E 0x0000 +#define ANA1_SET_SH4_0x7F 0x0000 + + + + +#define ANA2_SET_SH4_0x00 0x0048 +#define ANA2_SET_SH4_0x01 0x0000 +#define ANA2_SET_SH4_0x02 0x1111 +#define ANA2_SET_SH4_0x03 0x0011 +#define ANA2_SET_SH4_0x04 0x0002 +#define ANA2_SET_SH4_0x05 0x0001 +#define ANA2_SET_SH4_0x05_UP 0xB8A8 +#define ANA2_SET_SH4_0x06 0x0000 +#define ANA2_SET_SH4_0x07 0x0000 +#define ANA2_SET_SH4_0x08 0x0000 +#define ANA2_SET_SH4_0x09 0x0000 +#define ANA2_SET_SH4_0x0A 0x0030 +#define ANA2_SET_SH4_0x0B 0x0014 +#define ANA2_SET_SH4_0x0C 0x0000 +#define ANA2_SET_SH4_0x0D 0x0031 +#define ANA2_SET_SH4_0x0E 0x0031 +#define ANA2_SET_SH4_0x0F 0x0031 +#define ANA2_SET_SH4_0x10 0x0031 +#define ANA2_SET_SH4_0x11 0x0000 +#define ANA2_SET_SH4_0x12 0x04C0 +#define ANA2_SET_SH4_0x13 0x2102 +#define ANA2_SET_SH4_0x14 0x0003 +#define ANA2_SET_SH4_0x15 0x0013 +#define ANA2_SET_SH4_0x16 0x0015 +#define ANA2_SET_SH4_0x17 0x0015 +#define ANA2_SET_SH4_0x18 0x0015 +#define ANA2_SET_SH4_0x19 0xDCAC +#define ANA2_SET_SH4_0x1A 0x0000 +#define ANA2_SET_SH4_0x1B 0x0000 +#define ANA2_SET_SH4_0x1C 0x0000 +#define ANA2_SET_SH4_0x1D 0x1111 +#define ANA2_SET_SH4_0x1E 0x0000 +#define ANA2_SET_SH4_0x1F 0x0000 +#define ANA2_SET_SH4_0x20 0xC000 +#define ANA2_SET_SH4_0x21 0x0000 +#define ANA2_SET_SH4_0x22 0x0000 +#define ANA2_SET_SH4_0x23 0x0000 +#define ANA2_SET_SH4_0x24 0x0000 +#define ANA2_SET_SH4_0x25 0x0000 +#define ANA2_SET_SH4_0x26 0x0000 +#define ANA2_SET_SH4_0x27 0x0000 +#define ANA2_SET_SH4_0x28 0x0000 +#define ANA2_SET_SH4_0x29 0x0000 +#define ANA2_SET_SH4_0x2A 0x0000 +#define ANA2_SET_SH4_0x2B 0x0000 +#define ANA2_SET_SH4_0x2C 0x0000 +#define ANA2_SET_SH4_0x2D 0x0000 +#define ANA2_SET_SH4_0x2E 0x0000 +#define ANA2_SET_SH4_0x2F 0x0000 +#define ANA2_SET_SH4_0x30 0x0000 +#define ANA2_SET_SH4_0x31 0x0000 +#define ANA2_SET_SH4_0x32 0x0000 +#define ANA2_SET_SH4_0x33 0x0000 +#define ANA2_SET_SH4_0x34 0x0000 +#define ANA2_SET_SH4_0x35 0x0000 +#define ANA2_SET_SH4_0x36 0x0000 +#define ANA2_SET_SH4_0x37 0x0000 +#define ANA2_SET_SH4_0x38 0x0000 +#define ANA2_SET_SH4_0x39 0x0000 +#define ANA2_SET_SH4_0x3A 0x0000 +#define ANA2_SET_SH4_0x3B 0x0000 +#define ANA2_SET_SH4_0x3C 0x0000 +#define ANA2_SET_SH4_0x3D 0x0000 +#define ANA2_SET_SH4_0x3E 0x0000 +#define ANA2_SET_SH4_0x3F 0x0000 +#define ANA2_SET_SH4_0x40 0x0000 +#define ANA2_SET_SH4_0x41 0x0000 +#define ANA2_SET_SH4_0x42 0x0000 +#define ANA2_SET_SH4_0x43 0x0000 +#define ANA2_SET_SH4_0x44 0x0000 +#define ANA2_SET_SH4_0x45 0x0000 +#define ANA2_SET_SH4_0x46 0x0000 +#define ANA2_SET_SH4_0x47 0x0000 +#define ANA2_SET_SH4_0x48 0x0000 +#define ANA2_SET_SH4_0x49 0x0000 +#define ANA2_SET_SH4_0x4A 0x0000 +#define ANA2_SET_SH4_0x4B 0x0000 +#define ANA2_SET_SH4_0x4C 0x0000 +#define ANA2_SET_SH4_0x4D 0x0000 +#define ANA2_SET_SH4_0x4E 0x0000 +#define ANA2_SET_SH4_0x4F 0x0000 +#define ANA2_SET_SH4_0x50 0x0000 +#define ANA2_SET_SH4_0x51 0x0000 +#define ANA2_SET_SH4_0x52 0x0000 +#define ANA2_SET_SH4_0x53 0x0000 +#define ANA2_SET_SH4_0x54 0x0000 +#define ANA2_SET_SH4_0x55 0x0000 +#define ANA2_SET_SH4_0x56 0x0000 +#define ANA2_SET_SH4_0x57 0x0000 +#define ANA2_SET_SH4_0x58 0x0000 +#define ANA2_SET_SH4_0x59 0x0000 +#define ANA2_SET_SH4_0x5A 0x0000 +#define ANA2_SET_SH4_0x5B 0x0000 +#define ANA2_SET_SH4_0x5C 0x0000 +#define ANA2_SET_SH4_0x5D 0x0000 +#define ANA2_SET_SH4_0x5E 0x0000 +#define ANA2_SET_SH4_0x5F 0x0000 +#define ANA2_SET_SH4_0x60 0x0000 +#define ANA2_SET_SH4_0x61 0x0000 +#define ANA2_SET_SH4_0x62 0x0000 +#define ANA2_SET_SH4_0x63 0x0000 +#define ANA2_SET_SH4_0x64 0x0000 +#define ANA2_SET_SH4_0x65 0x0000 +#define ANA2_SET_SH4_0x66 0x0000 +#define ANA2_SET_SH4_0x67 0x0000 +#define ANA2_SET_SH4_0x68 0x0000 +#define ANA2_SET_SH4_0x69 0x0000 +#define ANA2_SET_SH4_0x6A 0x0000 +#define ANA2_SET_SH4_0x6B 0x0000 +#define ANA2_SET_SH4_0x6C 0x0000 +#define ANA2_SET_SH4_0x6D 0x0000 +#define ANA2_SET_SH4_0x6E 0x0000 +#define ANA2_SET_SH4_0x6F 0x0000 +#define ANA2_SET_SH4_0x70 0x0010 + + + + + + +#define NUM_SENSOR_LIANCHUANG 32 +#define NUM_KEY_LIANCHUANG 3 +#define NUM_DUMMY_LIANCHUANG 2 +#define ENABLE_2R_LIANCHUANG 1 + + +u8 MAP1_lianchuang[NUM_SENSOR_LIANCHUANG/2] = {0,3,4,7,8,11,12,15,16,19,20,23,24,27,28,31}; +u8 MAP2_lianchuang[NUM_SENSOR_LIANCHUANG/2] = {1,2,5,6,9,10,13,14,17,18,21,22,25,26,29,30}; +u8 MAP3_lianchuang[NUM_SENSOR_LIANCHUANG+NUM_DUMMY_LIANCHUANG+NUM_KEY_LIANCHUANG] = {34,7,6,5,4,3,2,1,0,32,16,17,35,18,19,20,21,22,23,24,25,26,27,28,36,29,30,31,33,15,14,13,12,11,10,9,8}; +u8 MAP40_1_lianchuang[(NUM_SENSOR_LIANCHUANG/4)-2] = {3,4,7,8,11,12}; +u8 MAP40_2_lianchuang[2] = {0,15}; +u8 MAP40_3_lianchuang[(NUM_SENSOR_LIANCHUANG/4)-2] = {19,20,23,24,27,28}; +u8 MAP40_4_lianchuang[2] = {16,31}; +u8 MAP41_1_lianchuang[(NUM_SENSOR_LIANCHUANG/4)-2] = {2,5,6,9,10,13}; +u8 MAP41_2_lianchuang[2] = {1,14}; +u8 MAP41_3_lianchuang[(NUM_SENSOR_LIANCHUANG/4)-2] = {18,21,22,25,26,29}; +u8 MAP41_4_lianchuang[2] = {17,30}; + +uint16_t open_1_lianchuang[241] = +{ + ANA1_SET_SH4_0x00, + ANA1_SET_SH4_0x01, + ANA1_SET_SH4_0x02, + ANA1_SET_SH4_0x03, + ANA1_SET_SH4_0x04, + ANA1_SET_SH4_0x05, + ANA1_SET_SH4_0x06, + ANA1_SET_SH4_0x07, + ANA1_SET_SH4_0x08, + ANA1_SET_SH4_0x09, + ANA1_SET_SH4_0x0A, + ANA1_SET_SH4_0x0B, + ANA1_SET_SH4_0x0C, + ANA1_SET_SH4_0x0D, + ANA1_SET_SH4_0x0E, + ANA1_SET_SH4_0x0F, + ANA1_SET_SH4_0x10, + ANA1_SET_SH4_0x11, + ANA1_SET_SH4_0x12, + ANA1_SET_SH4_0x13, + ANA1_SET_SH4_0x14, + ANA1_SET_SH4_0x15, + ANA1_SET_SH4_0x16, + ANA1_SET_SH4_0x17, + ANA1_SET_SH4_0x18, + ANA1_SET_SH4_0x19, + ANA1_SET_SH4_0x1A, + ANA1_SET_SH4_0x1B, + ANA1_SET_SH4_0x1C, + ANA1_SET_SH4_0x1D, + ANA1_SET_SH4_0x1E, + ANA1_SET_SH4_0x1F, + ANA1_SET_SH4_0x20, + ANA1_SET_SH4_0x21, + ANA1_SET_SH4_0x22, + ANA1_SET_SH4_0x23, + ANA1_SET_SH4_0x24, + ANA1_SET_SH4_0x25, + ANA1_SET_SH4_0x26, + ANA1_SET_SH4_0x27, + ANA1_SET_SH4_0x28, + ANA1_SET_SH4_0x29, + ANA1_SET_SH4_0x2A, + ANA1_SET_SH4_0x2B, + ANA1_SET_SH4_0x2C, + ANA1_SET_SH4_0x2D, + ANA1_SET_SH4_0x2E, + ANA1_SET_SH4_0x2F, + ANA1_SET_SH4_0x30, + ANA1_SET_SH4_0x31, + ANA1_SET_SH4_0x32, + ANA1_SET_SH4_0x33, + ANA1_SET_SH4_0x34, + ANA1_SET_SH4_0x35, + ANA1_SET_SH4_0x36, + ANA1_SET_SH4_0x37, + ANA1_SET_SH4_0x38, + ANA1_SET_SH4_0x39, + ANA1_SET_SH4_0x3A, + ANA1_SET_SH4_0x3B, + ANA1_SET_SH4_0x3C, + ANA1_SET_SH4_0x3D, + ANA1_SET_SH4_0x3E, + ANA1_SET_SH4_0x3F, + ANA1_SET_SH4_0x40, + ANA1_SET_SH4_0x41, + ANA1_SET_SH4_0x42, + ANA1_SET_SH4_0x43, + ANA1_SET_SH4_0x44, + ANA1_SET_SH4_0x45, + ANA1_SET_SH4_0x46, + ANA1_SET_SH4_0x47, + ANA1_SET_SH4_0x48, + ANA1_SET_SH4_0x49, + ANA1_SET_SH4_0x4A, + ANA1_SET_SH4_0x4B, + ANA1_SET_SH4_0x4C, + ANA1_SET_SH4_0x4D, + ANA1_SET_SH4_0x4E, + ANA1_SET_SH4_0x4F, + ANA1_SET_SH4_0x50, + ANA1_SET_SH4_0x51, + ANA1_SET_SH4_0x52, + ANA1_SET_SH4_0x53, + ANA1_SET_SH4_0x54, + ANA1_SET_SH4_0x55, + ANA1_SET_SH4_0x56, + ANA1_SET_SH4_0x57, + ANA1_SET_SH4_0x58, + ANA1_SET_SH4_0x59, + ANA1_SET_SH4_0x5A, + ANA1_SET_SH4_0x5B, + ANA1_SET_SH4_0x5C, + ANA1_SET_SH4_0x5D, + ANA1_SET_SH4_0x5E, + ANA1_SET_SH4_0x5F, + ANA1_SET_SH4_0x60, + ANA1_SET_SH4_0x61, + ANA1_SET_SH4_0x62, + ANA1_SET_SH4_0x63, + ANA1_SET_SH4_0x64, + ANA1_SET_SH4_0x65, + ANA1_SET_SH4_0x66, + ANA1_SET_SH4_0x67, + ANA1_SET_SH4_0x68, + ANA1_SET_SH4_0x69, + ANA1_SET_SH4_0x6A, + ANA1_SET_SH4_0x6B, + ANA1_SET_SH4_0x6C, + ANA1_SET_SH4_0x6D, + ANA1_SET_SH4_0x6E, + ANA1_SET_SH4_0x6F, + ANA1_SET_SH4_0x70, + ANA1_SET_SH4_0x71, + ANA1_SET_SH4_0x72, + ANA1_SET_SH4_0x73, + ANA1_SET_SH4_0x74, + ANA1_SET_SH4_0x75, + ANA1_SET_SH4_0x76, + ANA1_SET_SH4_0x77, + ANA1_SET_SH4_0x78, + ANA1_SET_SH4_0x79, + ANA1_SET_SH4_0x7A, + ANA1_SET_SH4_0x7B, + ANA1_SET_SH4_0x7C, + ANA1_SET_SH4_0x7D, + ANA1_SET_SH4_0x7E, + ANA1_SET_SH4_0x7F, +//ANA2 + ANA2_SET_SH4_0x00, + ANA2_SET_SH4_0x01, + ANA2_SET_SH4_0x02, + ANA2_SET_SH4_0x03, + ANA2_SET_SH4_0x04, + ANA2_SET_SH4_0x05, + ANA2_SET_SH4_0x06, + ANA2_SET_SH4_0x07, + ANA2_SET_SH4_0x08, + ANA2_SET_SH4_0x09, + ANA2_SET_SH4_0x0A, + ANA2_SET_SH4_0x0B, + ANA2_SET_SH4_0x0C, + ANA2_SET_SH4_0x0D, + ANA2_SET_SH4_0x0E, + ANA2_SET_SH4_0x0F, + ANA2_SET_SH4_0x10, + ANA2_SET_SH4_0x11, + ANA2_SET_SH4_0x12, + ANA2_SET_SH4_0x13, + ANA2_SET_SH4_0x14, + ANA2_SET_SH4_0x15, + ANA2_SET_SH4_0x16, + ANA2_SET_SH4_0x17, + ANA2_SET_SH4_0x18, + ANA2_SET_SH4_0x19, + ANA2_SET_SH4_0x1A, + ANA2_SET_SH4_0x1B, + ANA2_SET_SH4_0x1C, + ANA2_SET_SH4_0x1D, + ANA2_SET_SH4_0x1E, + ANA2_SET_SH4_0x1F, + ANA2_SET_SH4_0x20, + ANA2_SET_SH4_0x21, + ANA2_SET_SH4_0x22, + ANA2_SET_SH4_0x23, + ANA2_SET_SH4_0x24, + ANA2_SET_SH4_0x25, + ANA2_SET_SH4_0x26, + ANA2_SET_SH4_0x27, + ANA2_SET_SH4_0x28, + ANA2_SET_SH4_0x29, + ANA2_SET_SH4_0x2A, + ANA2_SET_SH4_0x2B, + ANA2_SET_SH4_0x2C, + ANA2_SET_SH4_0x2D, + ANA2_SET_SH4_0x2E, + ANA2_SET_SH4_0x2F, + ANA2_SET_SH4_0x30, + ANA2_SET_SH4_0x31, + ANA2_SET_SH4_0x32, + ANA2_SET_SH4_0x33, + ANA2_SET_SH4_0x34, + ANA2_SET_SH4_0x35, + ANA2_SET_SH4_0x36, + ANA2_SET_SH4_0x37, + ANA2_SET_SH4_0x38, + ANA2_SET_SH4_0x39, + ANA2_SET_SH4_0x3A, + ANA2_SET_SH4_0x3B, + ANA2_SET_SH4_0x3C, + ANA2_SET_SH4_0x3D, + ANA2_SET_SH4_0x3E, + ANA2_SET_SH4_0x3F, + ANA2_SET_SH4_0x40, + ANA2_SET_SH4_0x41, + ANA2_SET_SH4_0x42, + ANA2_SET_SH4_0x43, + ANA2_SET_SH4_0x44, + ANA2_SET_SH4_0x45, + ANA2_SET_SH4_0x46, + ANA2_SET_SH4_0x47, + ANA2_SET_SH4_0x48, + ANA2_SET_SH4_0x49, + ANA2_SET_SH4_0x4A, + ANA2_SET_SH4_0x4B, + ANA2_SET_SH4_0x4C, + ANA2_SET_SH4_0x4D, + ANA2_SET_SH4_0x4E, + ANA2_SET_SH4_0x4F, + ANA2_SET_SH4_0x50, + ANA2_SET_SH4_0x51, + ANA2_SET_SH4_0x52, + ANA2_SET_SH4_0x53, + ANA2_SET_SH4_0x54, + ANA2_SET_SH4_0x55, + ANA2_SET_SH4_0x56, + ANA2_SET_SH4_0x57, + ANA2_SET_SH4_0x58, + ANA2_SET_SH4_0x59, + ANA2_SET_SH4_0x5A, + ANA2_SET_SH4_0x5B, + ANA2_SET_SH4_0x5C, + ANA2_SET_SH4_0x5D, + ANA2_SET_SH4_0x5E, + ANA2_SET_SH4_0x5F, + ANA2_SET_SH4_0x60, + ANA2_SET_SH4_0x61, + ANA2_SET_SH4_0x62, + ANA2_SET_SH4_0x63, + ANA2_SET_SH4_0x64, + ANA2_SET_SH4_0x65, + ANA2_SET_SH4_0x66, + ANA2_SET_SH4_0x67, + ANA2_SET_SH4_0x68, + ANA2_SET_SH4_0x69, + ANA2_SET_SH4_0x6A, + ANA2_SET_SH4_0x6B, + ANA2_SET_SH4_0x6C, + ANA2_SET_SH4_0x6D, + ANA2_SET_SH4_0x6E, + ANA2_SET_SH4_0x6F, + ANA2_SET_SH4_0x70, +}; + diff --git a/drivers/input/touchscreen/ito_test/open_test_ANA1_B_8861A_lianchuang.h b/drivers/input/touchscreen/ito_test/open_test_ANA1_B_8861A_lianchuang.h new file mode 100644 index 00000000..33f38b5a --- /dev/null +++ b/drivers/input/touchscreen/ito_test/open_test_ANA1_B_8861A_lianchuang.h @@ -0,0 +1,494 @@ +#define ANA1_SET_SH4B_0x00 0xFFFF +#define ANA1_SET_SH4B_0x01 0x007F +#define ANA1_SET_SH4B_0x02 0x001E +#define ANA1_SET_SH4B_0x03 0x4800 +#define ANA1_SET_SH4B_0x04 0x7FF1 +#define ANA1_SET_SH4B_0x05 0xF7FF +#define ANA1_SET_SH4B_0x06 0x1F1F +#define ANA1_SET_SH4B_0x07 0x0610 +#define ANA1_SET_SH4B_0x08 0x0000 +#define ANA1_SET_SH4B_0x09 0x0000 +#define ANA1_SET_SH4B_0x0A 0x0000 +#define ANA1_SET_SH4B_0x0B 0x0000 +#define ANA1_SET_SH4B_0x0C 0x0000 +#define ANA1_SET_SH4B_0x0D 0x0000 +#define ANA1_SET_SH4B_0x0E 0x0000 +#define ANA1_SET_SH4B_0x0F 0x0000 +#define ANA1_SET_SH4B_0x10 0x0000 +#define ANA1_SET_SH4B_0x11 0x0000 +#define ANA1_SET_SH4B_0x12 0x0000 +#define ANA1_SET_SH4B_0x13 0x0000 +#define ANA1_SET_SH4B_0x14 0x0000 +#define ANA1_SET_SH4B_0x15 0x0000 +#define ANA1_SET_SH4B_0x16 0x0000 +#define ANA1_SET_SH4B_0x17 0x0000 +#define ANA1_SET_SH4B_0x18 0x0000 +#define ANA1_SET_SH4B_0x19 0x0000 +#define ANA1_SET_SH4B_0x1A 0x0000 +#define ANA1_SET_SH4B_0x1B 0x0000 +#define ANA1_SET_SH4B_0x1C 0x0000 +#define ANA1_SET_SH4B_0x1D 0x0000 +#define ANA1_SET_SH4B_0x1E 0x0000 +#define ANA1_SET_SH4B_0x1F 0x0000 +#define ANA1_SET_SH4B_0x20 0x0000 +#define ANA1_SET_SH4B_0x21 0x0000 +#define ANA1_SET_SH4B_0x22 0x0000 +#define ANA1_SET_SH4B_0x23 0x0000 +#define ANA1_SET_SH4B_0x24 0x0000 +#define ANA1_SET_SH4B_0x25 0x0002 +#define ANA1_SET_SH4B_0x26 0x0000 +#define ANA1_SET_SH4B_0x27 0x3E16 +#define ANA1_SET_SH4B_0x28 0x3E3E +#define ANA1_SET_SH4B_0x29 0x3E17 +#define ANA1_SET_SH4B_0x2A 0x3E3E +#define ANA1_SET_SH4B_0x2B 0x3E1A +#define ANA1_SET_SH4B_0x2C 0x3E3E +#define ANA1_SET_SH4B_0x2D 0x3E1C +#define ANA1_SET_SH4B_0x2E 0x3E3E +#define ANA1_SET_SH4B_0x2F 0x3E1F +#define ANA1_SET_SH4B_0x30 0x3E3E +#define ANA1_SET_SH4B_0x31 0x3E3E +#define ANA1_SET_SH4B_0x32 0x3E3E +#define ANA1_SET_SH4B_0x33 0x3E3E +#define ANA1_SET_SH4B_0x34 0x3E3E +#define ANA1_SET_SH4B_0x35 0x3E3E +#define ANA1_SET_SH4B_0x36 0x3E3E +#define ANA1_SET_SH4B_0x37 0x3E3E +#define ANA1_SET_SH4B_0x38 0x3E3E +#define ANA1_SET_SH4B_0x39 0x3E3E +#define ANA1_SET_SH4B_0x3A 0x3E3E +#define ANA1_SET_SH4B_0x3B 0x3E3E +#define ANA1_SET_SH4B_0x3C 0x3E3E +#define ANA1_SET_SH4B_0x3D 0x3E3E +#define ANA1_SET_SH4B_0x3E 0x3E3E +#define ANA1_SET_SH4B_0x3F 0x0000 +#define ANA1_SET_SH4B_0x40 0x0000 +#define ANA1_SET_SH4B_0x41 0x0000 +#define ANA1_SET_SH4B_0x42 0x0000 +#define ANA1_SET_SH4B_0x43 0x0000 +#define ANA1_SET_SH4B_0x44 0x0000 +#define ANA1_SET_SH4B_0x45 0x0000 +#define ANA1_SET_SH4B_0x46 0x0000 +#define ANA1_SET_SH4B_0x47 0x0000 +#define ANA1_SET_SH4B_0x48 0x0000 +#define ANA1_SET_SH4B_0x49 0x0000 +#define ANA1_SET_SH4B_0x4A 0x0000 +#define ANA1_SET_SH4B_0x4B 0x0000 +#define ANA1_SET_SH4B_0x4C 0x0000 +#define ANA1_SET_SH4B_0x4D 0x0000 +#define ANA1_SET_SH4B_0x4E 0x0000 +#define ANA1_SET_SH4B_0x4F 0x0000 +#define ANA1_SET_SH4B_0x50 0x0000 +#define ANA1_SET_SH4B_0x51 0x0000 +#define ANA1_SET_SH4B_0x52 0x0000 +#define ANA1_SET_SH4B_0x53 0x0000 +#define ANA1_SET_SH4B_0x54 0x0000 +#define ANA1_SET_SH4B_0x55 0x0000 +#define ANA1_SET_SH4B_0x56 0x0000 +#define ANA1_SET_SH4B_0x57 0x0000 +#define ANA1_SET_SH4B_0x58 0x0000 +#define ANA1_SET_SH4B_0x59 0x0000 +#define ANA1_SET_SH4B_0x5A 0x0000 +#define ANA1_SET_SH4B_0x5B 0x0000 +#define ANA1_SET_SH4B_0x5C 0x0000 +#define ANA1_SET_SH4B_0x5D 0x0000 +#define ANA1_SET_SH4B_0x5E 0x0000 +#define ANA1_SET_SH4B_0x5F 0x0000 +#define ANA1_SET_SH4B_0x60 0x0000 +#define ANA1_SET_SH4B_0x61 0x0000 +#define ANA1_SET_SH4B_0x62 0x0000 +#define ANA1_SET_SH4B_0x63 0x0000 +#define ANA1_SET_SH4B_0x64 0x0000 +#define ANA1_SET_SH4B_0x65 0x0000 +#define ANA1_SET_SH4B_0x66 0x0000 +#define ANA1_SET_SH4B_0x67 0x0000 +#define ANA1_SET_SH4B_0x68 0x0000 +#define ANA1_SET_SH4B_0x69 0x0000 +#define ANA1_SET_SH4B_0x6A 0x0000 +#define ANA1_SET_SH4B_0x6B 0x0000 +#define ANA1_SET_SH4B_0x6C 0x0000 +#define ANA1_SET_SH4B_0x6D 0x0000 +#define ANA1_SET_SH4B_0x6E 0x0000 +#define ANA1_SET_SH4B_0x6F 0x0000 +#define ANA1_SET_SH4B_0x70 0x0000 +#define ANA1_SET_SH4B_0x71 0x0000 +#define ANA1_SET_SH4B_0x72 0x0000 +#define ANA1_SET_SH4B_0x73 0x0000 +#define ANA1_SET_SH4B_0x74 0x0000 +#define ANA1_SET_SH4B_0x75 0x0000 +#define ANA1_SET_SH4B_0x76 0x0C00 +#define ANA1_SET_SH4B_0x77 0xFFFF +#define ANA1_SET_SH4B_0x78 0xFFFF +#define ANA1_SET_SH4B_0x79 0x3FFF +#define ANA1_SET_SH4B_0x7A 0x0000 +#define ANA1_SET_SH4B_0x7B 0x0000 +#define ANA1_SET_SH4B_0x7C 0x0000 +#define ANA1_SET_SH4B_0x7D 0x0000 +#define ANA1_SET_SH4B_0x7E 0x0000 +#define ANA1_SET_SH4B_0x7F 0x0000 + + + + +#define ANA2_SET_SH4B_0x00 0x0048 +#define ANA2_SET_SH4B_0x01 0x0000 +#define ANA2_SET_SH4B_0x02 0x1111 +#define ANA2_SET_SH4B_0x03 0x0011 +#define ANA2_SET_SH4B_0x04 0x0002 +#define ANA2_SET_SH4B_0x05 0x0001 +#define ANA2_SET_SH4B_0x05_UP 0xB8A8 +#define ANA2_SET_SH4B_0x06 0x0000 +#define ANA2_SET_SH4B_0x07 0x0000 +#define ANA2_SET_SH4B_0x08 0x0000 +#define ANA2_SET_SH4B_0x09 0x0000 +#define ANA2_SET_SH4B_0x0A 0x0030 +#define ANA2_SET_SH4B_0x0B 0x0008 +#define ANA2_SET_SH4B_0x0C 0x0000 +#define ANA2_SET_SH4B_0x0D 0x0031 +#define ANA2_SET_SH4B_0x0E 0x0031 +#define ANA2_SET_SH4B_0x0F 0x0031 +#define ANA2_SET_SH4B_0x10 0x0031 +#define ANA2_SET_SH4B_0x11 0x0000 +#define ANA2_SET_SH4B_0x12 0x04C0 +#define ANA2_SET_SH4B_0x13 0x2102 +#define ANA2_SET_SH4B_0x14 0x0003 +#define ANA2_SET_SH4B_0x15 0x0013 +#define ANA2_SET_SH4B_0x16 0x0015 +#define ANA2_SET_SH4B_0x17 0x0015 +#define ANA2_SET_SH4B_0x18 0x0015 +#define ANA2_SET_SH4B_0x19 0xDCAC +#define ANA2_SET_SH4B_0x1A 0x0000 +#define ANA2_SET_SH4B_0x1B 0x0000 +#define ANA2_SET_SH4B_0x1C 0x0000 +#define ANA2_SET_SH4B_0x1D 0x1111 +#define ANA2_SET_SH4B_0x1E 0x0000 +#define ANA2_SET_SH4B_0x1F 0x0000 +#define ANA2_SET_SH4B_0x20 0xC000 +#define ANA2_SET_SH4B_0x21 0x0000 +#define ANA2_SET_SH4B_0x22 0x0000 +#define ANA2_SET_SH4B_0x23 0x0000 +#define ANA2_SET_SH4B_0x24 0x0000 +#define ANA2_SET_SH4B_0x25 0x0000 +#define ANA2_SET_SH4B_0x26 0x0000 +#define ANA2_SET_SH4B_0x27 0x0000 +#define ANA2_SET_SH4B_0x28 0x0000 +#define ANA2_SET_SH4B_0x29 0x0000 +#define ANA2_SET_SH4B_0x2A 0x0000 +#define ANA2_SET_SH4B_0x2B 0x0000 +#define ANA2_SET_SH4B_0x2C 0x0000 +#define ANA2_SET_SH4B_0x2D 0x0000 +#define ANA2_SET_SH4B_0x2E 0x0000 +#define ANA2_SET_SH4B_0x2F 0x0000 +#define ANA2_SET_SH4B_0x30 0x0000 +#define ANA2_SET_SH4B_0x31 0x0000 +#define ANA2_SET_SH4B_0x32 0x0000 +#define ANA2_SET_SH4B_0x33 0x0000 +#define ANA2_SET_SH4B_0x34 0x0000 +#define ANA2_SET_SH4B_0x35 0x0000 +#define ANA2_SET_SH4B_0x36 0x0000 +#define ANA2_SET_SH4B_0x37 0x0000 +#define ANA2_SET_SH4B_0x38 0x0000 +#define ANA2_SET_SH4B_0x39 0x0000 +#define ANA2_SET_SH4B_0x3A 0x0000 +#define ANA2_SET_SH4B_0x3B 0x0000 +#define ANA2_SET_SH4B_0x3C 0x0000 +#define ANA2_SET_SH4B_0x3D 0x0000 +#define ANA2_SET_SH4B_0x3E 0x0000 +#define ANA2_SET_SH4B_0x3F 0x0000 +#define ANA2_SET_SH4B_0x40 0x0000 +#define ANA2_SET_SH4B_0x41 0x0000 +#define ANA2_SET_SH4B_0x42 0x0000 +#define ANA2_SET_SH4B_0x43 0x0000 +#define ANA2_SET_SH4B_0x44 0x0000 +#define ANA2_SET_SH4B_0x45 0x0000 +#define ANA2_SET_SH4B_0x46 0x0000 +#define ANA2_SET_SH4B_0x47 0x0000 +#define ANA2_SET_SH4B_0x48 0x0000 +#define ANA2_SET_SH4B_0x49 0x0000 +#define ANA2_SET_SH4B_0x4A 0x0000 +#define ANA2_SET_SH4B_0x4B 0x0000 +#define ANA2_SET_SH4B_0x4C 0x0000 +#define ANA2_SET_SH4B_0x4D 0x0000 +#define ANA2_SET_SH4B_0x4E 0x0000 +#define ANA2_SET_SH4B_0x4F 0x0000 +#define ANA2_SET_SH4B_0x50 0x0000 +#define ANA2_SET_SH4B_0x51 0x0000 +#define ANA2_SET_SH4B_0x52 0x0000 +#define ANA2_SET_SH4B_0x53 0x0000 +#define ANA2_SET_SH4B_0x54 0x0000 +#define ANA2_SET_SH4B_0x55 0x0000 +#define ANA2_SET_SH4B_0x56 0x0000 +#define ANA2_SET_SH4B_0x57 0x0000 +#define ANA2_SET_SH4B_0x58 0x0000 +#define ANA2_SET_SH4B_0x59 0x0000 +#define ANA2_SET_SH4B_0x5A 0x0000 +#define ANA2_SET_SH4B_0x5B 0x0000 +#define ANA2_SET_SH4B_0x5C 0x0000 +#define ANA2_SET_SH4B_0x5D 0x0000 +#define ANA2_SET_SH4B_0x5E 0x0000 +#define ANA2_SET_SH4B_0x5F 0x0000 +#define ANA2_SET_SH4B_0x60 0x0000 +#define ANA2_SET_SH4B_0x61 0x0000 +#define ANA2_SET_SH4B_0x62 0x0000 +#define ANA2_SET_SH4B_0x63 0x0000 +#define ANA2_SET_SH4B_0x64 0x0000 +#define ANA2_SET_SH4B_0x65 0x0000 +#define ANA2_SET_SH4B_0x66 0x0000 +#define ANA2_SET_SH4B_0x67 0x0000 +#define ANA2_SET_SH4B_0x68 0x0000 +#define ANA2_SET_SH4B_0x69 0x0000 +#define ANA2_SET_SH4B_0x6A 0x0000 +#define ANA2_SET_SH4B_0x6B 0x0000 +#define ANA2_SET_SH4B_0x6C 0x0000 +#define ANA2_SET_SH4B_0x6D 0x0000 +#define ANA2_SET_SH4B_0x6E 0x0000 +#define ANA2_SET_SH4B_0x6F 0x0000 +#define ANA2_SET_SH4B_0x70 0x0010 + +uint16_t open_1B_lianchuang[241] = +{ + ANA1_SET_SH4B_0x00, + ANA1_SET_SH4B_0x01, + ANA1_SET_SH4B_0x02, + ANA1_SET_SH4B_0x03, + ANA1_SET_SH4B_0x04, + ANA1_SET_SH4B_0x05, + ANA1_SET_SH4B_0x06, + ANA1_SET_SH4B_0x07, + ANA1_SET_SH4B_0x08, + ANA1_SET_SH4B_0x09, + ANA1_SET_SH4B_0x0A, + ANA1_SET_SH4B_0x0B, + ANA1_SET_SH4B_0x0C, + ANA1_SET_SH4B_0x0D, + ANA1_SET_SH4B_0x0E, + ANA1_SET_SH4B_0x0F, + ANA1_SET_SH4B_0x10, + ANA1_SET_SH4B_0x11, + ANA1_SET_SH4B_0x12, + ANA1_SET_SH4B_0x13, + ANA1_SET_SH4B_0x14, + ANA1_SET_SH4B_0x15, + ANA1_SET_SH4B_0x16, + ANA1_SET_SH4B_0x17, + ANA1_SET_SH4B_0x18, + ANA1_SET_SH4B_0x19, + ANA1_SET_SH4B_0x1A, + ANA1_SET_SH4B_0x1B, + ANA1_SET_SH4B_0x1C, + ANA1_SET_SH4B_0x1D, + ANA1_SET_SH4B_0x1E, + ANA1_SET_SH4B_0x1F, + ANA1_SET_SH4B_0x20, + ANA1_SET_SH4B_0x21, + ANA1_SET_SH4B_0x22, + ANA1_SET_SH4B_0x23, + ANA1_SET_SH4B_0x24, + ANA1_SET_SH4B_0x25, + ANA1_SET_SH4B_0x26, + ANA1_SET_SH4B_0x27, + ANA1_SET_SH4B_0x28, + ANA1_SET_SH4B_0x29, + ANA1_SET_SH4B_0x2A, + ANA1_SET_SH4B_0x2B, + ANA1_SET_SH4B_0x2C, + ANA1_SET_SH4B_0x2D, + ANA1_SET_SH4B_0x2E, + ANA1_SET_SH4B_0x2F, + ANA1_SET_SH4B_0x30, + ANA1_SET_SH4B_0x31, + ANA1_SET_SH4B_0x32, + ANA1_SET_SH4B_0x33, + ANA1_SET_SH4B_0x34, + ANA1_SET_SH4B_0x35, + ANA1_SET_SH4B_0x36, + ANA1_SET_SH4B_0x37, + ANA1_SET_SH4B_0x38, + ANA1_SET_SH4B_0x39, + ANA1_SET_SH4B_0x3A, + ANA1_SET_SH4B_0x3B, + ANA1_SET_SH4B_0x3C, + ANA1_SET_SH4B_0x3D, + ANA1_SET_SH4B_0x3E, + ANA1_SET_SH4B_0x3F, + ANA1_SET_SH4B_0x40, + ANA1_SET_SH4B_0x41, + ANA1_SET_SH4B_0x42, + ANA1_SET_SH4B_0x43, + ANA1_SET_SH4B_0x44, + ANA1_SET_SH4B_0x45, + ANA1_SET_SH4B_0x46, + ANA1_SET_SH4B_0x47, + ANA1_SET_SH4B_0x48, + ANA1_SET_SH4B_0x49, + ANA1_SET_SH4B_0x4A, + ANA1_SET_SH4B_0x4B, + ANA1_SET_SH4B_0x4C, + ANA1_SET_SH4B_0x4D, + ANA1_SET_SH4B_0x4E, + ANA1_SET_SH4B_0x4F, + ANA1_SET_SH4B_0x50, + ANA1_SET_SH4B_0x51, + ANA1_SET_SH4B_0x52, + ANA1_SET_SH4B_0x53, + ANA1_SET_SH4B_0x54, + ANA1_SET_SH4B_0x55, + ANA1_SET_SH4B_0x56, + ANA1_SET_SH4B_0x57, + ANA1_SET_SH4B_0x58, + ANA1_SET_SH4B_0x59, + ANA1_SET_SH4B_0x5A, + ANA1_SET_SH4B_0x5B, + ANA1_SET_SH4B_0x5C, + ANA1_SET_SH4B_0x5D, + ANA1_SET_SH4B_0x5E, + ANA1_SET_SH4B_0x5F, + ANA1_SET_SH4B_0x60, + ANA1_SET_SH4B_0x61, + ANA1_SET_SH4B_0x62, + ANA1_SET_SH4B_0x63, + ANA1_SET_SH4B_0x64, + ANA1_SET_SH4B_0x65, + ANA1_SET_SH4B_0x66, + ANA1_SET_SH4B_0x67, + ANA1_SET_SH4B_0x68, + ANA1_SET_SH4B_0x69, + ANA1_SET_SH4B_0x6A, + ANA1_SET_SH4B_0x6B, + ANA1_SET_SH4B_0x6C, + ANA1_SET_SH4B_0x6D, + ANA1_SET_SH4B_0x6E, + ANA1_SET_SH4B_0x6F, + ANA1_SET_SH4B_0x70, + ANA1_SET_SH4B_0x71, + ANA1_SET_SH4B_0x72, + ANA1_SET_SH4B_0x73, + ANA1_SET_SH4B_0x74, + ANA1_SET_SH4B_0x75, + ANA1_SET_SH4B_0x76, + ANA1_SET_SH4B_0x77, + ANA1_SET_SH4B_0x78, + ANA1_SET_SH4B_0x79, + ANA1_SET_SH4B_0x7A, + ANA1_SET_SH4B_0x7B, + ANA1_SET_SH4B_0x7C, + ANA1_SET_SH4B_0x7D, + ANA1_SET_SH4B_0x7E, + ANA1_SET_SH4B_0x7F, +//ANA2 + ANA2_SET_SH4B_0x00, + ANA2_SET_SH4B_0x01, + ANA2_SET_SH4B_0x02, + ANA2_SET_SH4B_0x03, + ANA2_SET_SH4B_0x04, + ANA2_SET_SH4B_0x05, + ANA2_SET_SH4B_0x06, + ANA2_SET_SH4B_0x07, + ANA2_SET_SH4B_0x08, + ANA2_SET_SH4B_0x09, + ANA2_SET_SH4B_0x0A, + ANA2_SET_SH4B_0x0B, + ANA2_SET_SH4B_0x0C, + ANA2_SET_SH4B_0x0D, + ANA2_SET_SH4B_0x0E, + ANA2_SET_SH4B_0x0F, + ANA2_SET_SH4B_0x10, + ANA2_SET_SH4B_0x11, + ANA2_SET_SH4B_0x12, + ANA2_SET_SH4B_0x13, + ANA2_SET_SH4B_0x14, + ANA2_SET_SH4B_0x15, + ANA2_SET_SH4B_0x16, + ANA2_SET_SH4B_0x17, + ANA2_SET_SH4B_0x18, + ANA2_SET_SH4B_0x19, + ANA2_SET_SH4B_0x1A, + ANA2_SET_SH4B_0x1B, + ANA2_SET_SH4B_0x1C, + ANA2_SET_SH4B_0x1D, + ANA2_SET_SH4B_0x1E, + ANA2_SET_SH4B_0x1F, + ANA2_SET_SH4B_0x20, + ANA2_SET_SH4B_0x21, + ANA2_SET_SH4B_0x22, + ANA2_SET_SH4B_0x23, + ANA2_SET_SH4B_0x24, + ANA2_SET_SH4B_0x25, + ANA2_SET_SH4B_0x26, + ANA2_SET_SH4B_0x27, + ANA2_SET_SH4B_0x28, + ANA2_SET_SH4B_0x29, + ANA2_SET_SH4B_0x2A, + ANA2_SET_SH4B_0x2B, + ANA2_SET_SH4B_0x2C, + ANA2_SET_SH4B_0x2D, + ANA2_SET_SH4B_0x2E, + ANA2_SET_SH4B_0x2F, + ANA2_SET_SH4B_0x30, + ANA2_SET_SH4B_0x31, + ANA2_SET_SH4B_0x32, + ANA2_SET_SH4B_0x33, + ANA2_SET_SH4B_0x34, + ANA2_SET_SH4B_0x35, + ANA2_SET_SH4B_0x36, + ANA2_SET_SH4B_0x37, + ANA2_SET_SH4B_0x38, + ANA2_SET_SH4B_0x39, + ANA2_SET_SH4B_0x3A, + ANA2_SET_SH4B_0x3B, + ANA2_SET_SH4B_0x3C, + ANA2_SET_SH4B_0x3D, + ANA2_SET_SH4B_0x3E, + ANA2_SET_SH4B_0x3F, + ANA2_SET_SH4B_0x40, + ANA2_SET_SH4B_0x41, + ANA2_SET_SH4B_0x42, + ANA2_SET_SH4B_0x43, + ANA2_SET_SH4B_0x44, + ANA2_SET_SH4B_0x45, + ANA2_SET_SH4B_0x46, + ANA2_SET_SH4B_0x47, + ANA2_SET_SH4B_0x48, + ANA2_SET_SH4B_0x49, + ANA2_SET_SH4B_0x4A, + ANA2_SET_SH4B_0x4B, + ANA2_SET_SH4B_0x4C, + ANA2_SET_SH4B_0x4D, + ANA2_SET_SH4B_0x4E, + ANA2_SET_SH4B_0x4F, + ANA2_SET_SH4B_0x50, + ANA2_SET_SH4B_0x51, + ANA2_SET_SH4B_0x52, + ANA2_SET_SH4B_0x53, + ANA2_SET_SH4B_0x54, + ANA2_SET_SH4B_0x55, + ANA2_SET_SH4B_0x56, + ANA2_SET_SH4B_0x57, + ANA2_SET_SH4B_0x58, + ANA2_SET_SH4B_0x59, + ANA2_SET_SH4B_0x5A, + ANA2_SET_SH4B_0x5B, + ANA2_SET_SH4B_0x5C, + ANA2_SET_SH4B_0x5D, + ANA2_SET_SH4B_0x5E, + ANA2_SET_SH4B_0x5F, + ANA2_SET_SH4B_0x60, + ANA2_SET_SH4B_0x61, + ANA2_SET_SH4B_0x62, + ANA2_SET_SH4B_0x63, + ANA2_SET_SH4B_0x64, + ANA2_SET_SH4B_0x65, + ANA2_SET_SH4B_0x66, + ANA2_SET_SH4B_0x67, + ANA2_SET_SH4B_0x68, + ANA2_SET_SH4B_0x69, + ANA2_SET_SH4B_0x6A, + ANA2_SET_SH4B_0x6B, + ANA2_SET_SH4B_0x6C, + ANA2_SET_SH4B_0x6D, + ANA2_SET_SH4B_0x6E, + ANA2_SET_SH4B_0x6F, + ANA2_SET_SH4B_0x70, +}; + + diff --git a/drivers/input/touchscreen/ito_test/open_test_ANA2_8861A_lianchuang.h b/drivers/input/touchscreen/ito_test/open_test_ANA2_8861A_lianchuang.h new file mode 100644 index 00000000..aaccf1f5 --- /dev/null +++ b/drivers/input/touchscreen/ito_test/open_test_ANA2_8861A_lianchuang.h @@ -0,0 +1,506 @@ + + + + +//MP Setting +#define IDLE_SENSOR_SH5_1 0x7331 +#define IDLE_SENSOR_SH5_2 0x94CC +#define IDLE_SENSOR_SH5_3 0x5913 +///////////////////////////////////////////////////// +// Constant for ANA Setting +///////////////////////////////////////////////////// +#define ANA1_SET_SH5_0x00 0xFFFF +#define ANA1_SET_SH5_0x01 0x007F +#define ANA1_SET_SH5_0x02 0x001E +#define ANA1_SET_SH5_0x03 0x4800 +#define ANA1_SET_SH5_0x04 0x7FF1 +#define ANA1_SET_SH5_0x05 0xF7FF +#define ANA1_SET_SH5_0x06 0x1F1F +#define ANA1_SET_SH5_0x07 0x0610 +#define ANA1_SET_SH5_0x08 0x0000 +#define ANA1_SET_SH5_0x09 0x0000 +#define ANA1_SET_SH5_0x0A 0x0000 +#define ANA1_SET_SH5_0x0B 0x0000 +#define ANA1_SET_SH5_0x0C 0x0000 +#define ANA1_SET_SH5_0x0D 0x0000 +#define ANA1_SET_SH5_0x0E 0x0000 +#define ANA1_SET_SH5_0x0F 0x0000 +#define ANA1_SET_SH5_0x10 0x0000 +#define ANA1_SET_SH5_0x11 0x0000 +#define ANA1_SET_SH5_0x12 0x0000 +#define ANA1_SET_SH5_0x13 0x0000 +#define ANA1_SET_SH5_0x14 0x0000 +#define ANA1_SET_SH5_0x15 0x0000 +#define ANA1_SET_SH5_0x16 0x0000 +#define ANA1_SET_SH5_0x17 0x0000 +#define ANA1_SET_SH5_0x18 0x0000 +#define ANA1_SET_SH5_0x19 0x0000 +#define ANA1_SET_SH5_0x1A 0x0000 +#define ANA1_SET_SH5_0x1B 0x0000 +#define ANA1_SET_SH5_0x1C 0x0000 +#define ANA1_SET_SH5_0x1D 0x0000 +#define ANA1_SET_SH5_0x1E 0x0000 +#define ANA1_SET_SH5_0x1F 0x0000 +#define ANA1_SET_SH5_0x20 0x0000 +#define ANA1_SET_SH5_0x21 0x0000 +#define ANA1_SET_SH5_0x22 0x0000 +#define ANA1_SET_SH5_0x23 0x0000 +#define ANA1_SET_SH5_0x24 0x0000 +#define ANA1_SET_SH5_0x25 0x0002 +#define ANA1_SET_SH5_0x26 0x0000 +#define ANA1_SET_SH5_0x27 0x3E0B +#define ANA1_SET_SH5_0x28 0x3E3E +#define ANA1_SET_SH5_0x29 0x3E0A +#define ANA1_SET_SH5_0x2A 0x3E3E +#define ANA1_SET_SH5_0x2B 0x3E07 +#define ANA1_SET_SH5_0x2C 0x3E3E +#define ANA1_SET_SH5_0x2D 0x3E06 +#define ANA1_SET_SH5_0x2E 0x3E3E +#define ANA1_SET_SH5_0x2F 0x3E2A +#define ANA1_SET_SH5_0x30 0x3E3E +#define ANA1_SET_SH5_0x31 0x3E29 +#define ANA1_SET_SH5_0x32 0x3E3E +#define ANA1_SET_SH5_0x33 0x3E23 +#define ANA1_SET_SH5_0x34 0x3E3E +#define ANA1_SET_SH5_0x35 0x3E22 +#define ANA1_SET_SH5_0x36 0x3E3E +#define ANA1_SET_SH5_0x37 0x3E10 +#define ANA1_SET_SH5_0x38 0x3E3E +#define ANA1_SET_SH5_0x39 0x3E11 +#define ANA1_SET_SH5_0x3A 0x3E3E +#define ANA1_SET_SH5_0x3B 0x3E14 +#define ANA1_SET_SH5_0x3C 0x3E3E +#define ANA1_SET_SH5_0x3D 0x3E3E +#define ANA1_SET_SH5_0x3E 0x3E3E +#define ANA1_SET_SH5_0x3F 0x0000 +#define ANA1_SET_SH5_0x40 0x0000 +#define ANA1_SET_SH5_0x41 0x0000 +#define ANA1_SET_SH5_0x42 0x0000 +#define ANA1_SET_SH5_0x43 0x0000 +#define ANA1_SET_SH5_0x44 0x0000 +#define ANA1_SET_SH5_0x45 0x0000 +#define ANA1_SET_SH5_0x46 0x0000 +#define ANA1_SET_SH5_0x47 0x0000 +#define ANA1_SET_SH5_0x48 0x0000 +#define ANA1_SET_SH5_0x49 0x0000 +#define ANA1_SET_SH5_0x4A 0x0000 +#define ANA1_SET_SH5_0x4B 0x0000 +#define ANA1_SET_SH5_0x4C 0x0000 +#define ANA1_SET_SH5_0x4D 0x0000 +#define ANA1_SET_SH5_0x4E 0x0000 +#define ANA1_SET_SH5_0x4F 0x0000 +#define ANA1_SET_SH5_0x50 0x0000 +#define ANA1_SET_SH5_0x51 0x0000 +#define ANA1_SET_SH5_0x52 0x0000 +#define ANA1_SET_SH5_0x53 0x0000 +#define ANA1_SET_SH5_0x54 0x0000 +#define ANA1_SET_SH5_0x55 0x0000 +#define ANA1_SET_SH5_0x56 0x0000 +#define ANA1_SET_SH5_0x57 0x0000 +#define ANA1_SET_SH5_0x58 0x0000 +#define ANA1_SET_SH5_0x59 0x0000 +#define ANA1_SET_SH5_0x5A 0x0000 +#define ANA1_SET_SH5_0x5B 0x0000 +#define ANA1_SET_SH5_0x5C 0x0000 +#define ANA1_SET_SH5_0x5D 0x0000 +#define ANA1_SET_SH5_0x5E 0x0000 +#define ANA1_SET_SH5_0x5F 0x0000 +#define ANA1_SET_SH5_0x60 0x0000 +#define ANA1_SET_SH5_0x61 0x0000 +#define ANA1_SET_SH5_0x62 0x0000 +#define ANA1_SET_SH5_0x63 0x0000 +#define ANA1_SET_SH5_0x64 0x0000 +#define ANA1_SET_SH5_0x65 0x0000 +#define ANA1_SET_SH5_0x66 0x0000 +#define ANA1_SET_SH5_0x67 0x0000 +#define ANA1_SET_SH5_0x68 0x0000 +#define ANA1_SET_SH5_0x69 0x0000 +#define ANA1_SET_SH5_0x6A 0x0000 +#define ANA1_SET_SH5_0x6B 0x0000 +#define ANA1_SET_SH5_0x6C 0x0000 +#define ANA1_SET_SH5_0x6D 0x0000 +#define ANA1_SET_SH5_0x6E 0x0000 +#define ANA1_SET_SH5_0x6F 0x0000 +#define ANA1_SET_SH5_0x70 0x0000 +#define ANA1_SET_SH5_0x71 0x0000 +#define ANA1_SET_SH5_0x72 0x0000 +#define ANA1_SET_SH5_0x73 0x0000 +#define ANA1_SET_SH5_0x74 0x0000 +#define ANA1_SET_SH5_0x75 0x0000 +#define ANA1_SET_SH5_0x76 0x0C00 +#define ANA1_SET_SH5_0x77 0xFFFF +#define ANA1_SET_SH5_0x78 0xFFFF +#define ANA1_SET_SH5_0x79 0x3FFF +#define ANA1_SET_SH5_0x7A 0x0000 +#define ANA1_SET_SH5_0x7B 0x0000 +#define ANA1_SET_SH5_0x7C 0x0000 +#define ANA1_SET_SH5_0x7D 0x0000 +#define ANA1_SET_SH5_0x7E 0x0000 +#define ANA1_SET_SH5_0x7F 0x0000 + + + + +#define ANA2_SET_SH5_0x00 0x0048 +#define ANA2_SET_SH5_0x01 0x0000 +#define ANA2_SET_SH5_0x02 0x1111 +#define ANA2_SET_SH5_0x03 0x0011 +#define ANA2_SET_SH5_0x04 0x0002 +#define ANA2_SET_SH5_0x05 0x0001 +#define ANA2_SET_SH5_0x05_UP 0xB8A8 +#define ANA2_SET_SH5_0x06 0x0000 +#define ANA2_SET_SH5_0x07 0x0000 +#define ANA2_SET_SH5_0x08 0x0000 +#define ANA2_SET_SH5_0x09 0x0000 +#define ANA2_SET_SH5_0x0A 0x0030 +#define ANA2_SET_SH5_0x0B 0x0014 +#define ANA2_SET_SH5_0x0C 0x0000 +#define ANA2_SET_SH5_0x0D 0x0031 +#define ANA2_SET_SH5_0x0E 0x0031 +#define ANA2_SET_SH5_0x0F 0x0031 +#define ANA2_SET_SH5_0x10 0x0031 +#define ANA2_SET_SH5_0x11 0x0000 +#define ANA2_SET_SH5_0x12 0x04C0 +#define ANA2_SET_SH5_0x13 0x2102 +#define ANA2_SET_SH5_0x14 0x0003 +#define ANA2_SET_SH5_0x15 0x0013 +#define ANA2_SET_SH5_0x16 0x0015 +#define ANA2_SET_SH5_0x17 0x0015 +#define ANA2_SET_SH5_0x18 0x0015 +#define ANA2_SET_SH5_0x19 0xDCAC +#define ANA2_SET_SH5_0x1A 0x0000 +#define ANA2_SET_SH5_0x1B 0x0000 +#define ANA2_SET_SH5_0x1C 0x0000 +#define ANA2_SET_SH5_0x1D 0x1111 +#define ANA2_SET_SH5_0x1E 0x0000 +#define ANA2_SET_SH5_0x1F 0x0000 +#define ANA2_SET_SH5_0x20 0xC000 +#define ANA2_SET_SH5_0x21 0x0000 +#define ANA2_SET_SH5_0x22 0x0000 +#define ANA2_SET_SH5_0x23 0x0000 +#define ANA2_SET_SH5_0x24 0x0000 +#define ANA2_SET_SH5_0x25 0x0000 +#define ANA2_SET_SH5_0x26 0x0000 +#define ANA2_SET_SH5_0x27 0x0000 +#define ANA2_SET_SH5_0x28 0x0000 +#define ANA2_SET_SH5_0x29 0x0000 +#define ANA2_SET_SH5_0x2A 0x0000 +#define ANA2_SET_SH5_0x2B 0x0000 +#define ANA2_SET_SH5_0x2C 0x0000 +#define ANA2_SET_SH5_0x2D 0x0000 +#define ANA2_SET_SH5_0x2E 0x0000 +#define ANA2_SET_SH5_0x2F 0x0000 +#define ANA2_SET_SH5_0x30 0x0000 +#define ANA2_SET_SH5_0x31 0x0000 +#define ANA2_SET_SH5_0x32 0x0000 +#define ANA2_SET_SH5_0x33 0x0000 +#define ANA2_SET_SH5_0x34 0x0000 +#define ANA2_SET_SH5_0x35 0x0000 +#define ANA2_SET_SH5_0x36 0x0000 +#define ANA2_SET_SH5_0x37 0x0000 +#define ANA2_SET_SH5_0x38 0x0000 +#define ANA2_SET_SH5_0x39 0x0000 +#define ANA2_SET_SH5_0x3A 0x0000 +#define ANA2_SET_SH5_0x3B 0x0000 +#define ANA2_SET_SH5_0x3C 0x0000 +#define ANA2_SET_SH5_0x3D 0x0000 +#define ANA2_SET_SH5_0x3E 0x0000 +#define ANA2_SET_SH5_0x3F 0x0000 +#define ANA2_SET_SH5_0x40 0x0000 +#define ANA2_SET_SH5_0x41 0x0000 +#define ANA2_SET_SH5_0x42 0x0000 +#define ANA2_SET_SH5_0x43 0x0000 +#define ANA2_SET_SH5_0x44 0x0000 +#define ANA2_SET_SH5_0x45 0x0000 +#define ANA2_SET_SH5_0x46 0x0000 +#define ANA2_SET_SH5_0x47 0x0000 +#define ANA2_SET_SH5_0x48 0x0000 +#define ANA2_SET_SH5_0x49 0x0000 +#define ANA2_SET_SH5_0x4A 0x0000 +#define ANA2_SET_SH5_0x4B 0x0000 +#define ANA2_SET_SH5_0x4C 0x0000 +#define ANA2_SET_SH5_0x4D 0x0000 +#define ANA2_SET_SH5_0x4E 0x0000 +#define ANA2_SET_SH5_0x4F 0x0000 +#define ANA2_SET_SH5_0x50 0x0000 +#define ANA2_SET_SH5_0x51 0x0000 +#define ANA2_SET_SH5_0x52 0x0000 +#define ANA2_SET_SH5_0x53 0x0000 +#define ANA2_SET_SH5_0x54 0x0000 +#define ANA2_SET_SH5_0x55 0x0000 +#define ANA2_SET_SH5_0x56 0x0000 +#define ANA2_SET_SH5_0x57 0x0000 +#define ANA2_SET_SH5_0x58 0x0000 +#define ANA2_SET_SH5_0x59 0x0000 +#define ANA2_SET_SH5_0x5A 0x0000 +#define ANA2_SET_SH5_0x5B 0x0000 +#define ANA2_SET_SH5_0x5C 0x0000 +#define ANA2_SET_SH5_0x5D 0x0000 +#define ANA2_SET_SH5_0x5E 0x0000 +#define ANA2_SET_SH5_0x5F 0x0000 +#define ANA2_SET_SH5_0x60 0x0000 +#define ANA2_SET_SH5_0x61 0x0000 +#define ANA2_SET_SH5_0x62 0x0000 +#define ANA2_SET_SH5_0x63 0x0000 +#define ANA2_SET_SH5_0x64 0x0000 +#define ANA2_SET_SH5_0x65 0x0000 +#define ANA2_SET_SH5_0x66 0x0000 +#define ANA2_SET_SH5_0x67 0x0000 +#define ANA2_SET_SH5_0x68 0x0000 +#define ANA2_SET_SH5_0x69 0x0000 +#define ANA2_SET_SH5_0x6A 0x0000 +#define ANA2_SET_SH5_0x6B 0x0000 +#define ANA2_SET_SH5_0x6C 0x0000 +#define ANA2_SET_SH5_0x6D 0x0000 +#define ANA2_SET_SH5_0x6E 0x0000 +#define ANA2_SET_SH5_0x6F 0x0000 +#define ANA2_SET_SH5_0x70 0x0010 + +uint16_t open_2_lianchuang[241] = +{ + ANA1_SET_SH5_0x00, + ANA1_SET_SH5_0x01, + ANA1_SET_SH5_0x02, + ANA1_SET_SH5_0x03, + ANA1_SET_SH5_0x04, + ANA1_SET_SH5_0x05, + ANA1_SET_SH5_0x06, + ANA1_SET_SH5_0x07, + ANA1_SET_SH5_0x08, + ANA1_SET_SH5_0x09, + ANA1_SET_SH5_0x0A, + ANA1_SET_SH5_0x0B, + ANA1_SET_SH5_0x0C, + ANA1_SET_SH5_0x0D, + ANA1_SET_SH5_0x0E, + ANA1_SET_SH5_0x0F, + ANA1_SET_SH5_0x10, + ANA1_SET_SH5_0x11, + ANA1_SET_SH5_0x12, + ANA1_SET_SH5_0x13, + ANA1_SET_SH5_0x14, + ANA1_SET_SH5_0x15, + ANA1_SET_SH5_0x16, + ANA1_SET_SH5_0x17, + ANA1_SET_SH5_0x18, + ANA1_SET_SH5_0x19, + ANA1_SET_SH5_0x1A, + ANA1_SET_SH5_0x1B, + ANA1_SET_SH5_0x1C, + ANA1_SET_SH5_0x1D, + ANA1_SET_SH5_0x1E, + ANA1_SET_SH5_0x1F, + ANA1_SET_SH5_0x20, + ANA1_SET_SH5_0x21, + ANA1_SET_SH5_0x22, + ANA1_SET_SH5_0x23, + ANA1_SET_SH5_0x24, + ANA1_SET_SH5_0x25, + ANA1_SET_SH5_0x26, + ANA1_SET_SH5_0x27, + ANA1_SET_SH5_0x28, + ANA1_SET_SH5_0x29, + ANA1_SET_SH5_0x2A, + ANA1_SET_SH5_0x2B, + ANA1_SET_SH5_0x2C, + ANA1_SET_SH5_0x2D, + ANA1_SET_SH5_0x2E, + ANA1_SET_SH5_0x2F, + ANA1_SET_SH5_0x30, + ANA1_SET_SH5_0x31, + ANA1_SET_SH5_0x32, + ANA1_SET_SH5_0x33, + ANA1_SET_SH5_0x34, + ANA1_SET_SH5_0x35, + ANA1_SET_SH5_0x36, + ANA1_SET_SH5_0x37, + ANA1_SET_SH5_0x38, + ANA1_SET_SH5_0x39, + ANA1_SET_SH5_0x3A, + ANA1_SET_SH5_0x3B, + ANA1_SET_SH5_0x3C, + ANA1_SET_SH5_0x3D, + ANA1_SET_SH5_0x3E, + ANA1_SET_SH5_0x3F, + ANA1_SET_SH5_0x40, + ANA1_SET_SH5_0x41, + ANA1_SET_SH5_0x42, + ANA1_SET_SH5_0x43, + ANA1_SET_SH5_0x44, + ANA1_SET_SH5_0x45, + ANA1_SET_SH5_0x46, + ANA1_SET_SH5_0x47, + ANA1_SET_SH5_0x48, + ANA1_SET_SH5_0x49, + ANA1_SET_SH5_0x4A, + ANA1_SET_SH5_0x4B, + ANA1_SET_SH5_0x4C, + ANA1_SET_SH5_0x4D, + ANA1_SET_SH5_0x4E, + ANA1_SET_SH5_0x4F, + ANA1_SET_SH5_0x50, + ANA1_SET_SH5_0x51, + ANA1_SET_SH5_0x52, + ANA1_SET_SH5_0x53, + ANA1_SET_SH5_0x54, + ANA1_SET_SH5_0x55, + ANA1_SET_SH5_0x56, + ANA1_SET_SH5_0x57, + ANA1_SET_SH5_0x58, + ANA1_SET_SH5_0x59, + ANA1_SET_SH5_0x5A, + ANA1_SET_SH5_0x5B, + ANA1_SET_SH5_0x5C, + ANA1_SET_SH5_0x5D, + ANA1_SET_SH5_0x5E, + ANA1_SET_SH5_0x5F, + ANA1_SET_SH5_0x60, + ANA1_SET_SH5_0x61, + ANA1_SET_SH5_0x62, + ANA1_SET_SH5_0x63, + ANA1_SET_SH5_0x64, + ANA1_SET_SH5_0x65, + ANA1_SET_SH5_0x66, + ANA1_SET_SH5_0x67, + ANA1_SET_SH5_0x68, + ANA1_SET_SH5_0x69, + ANA1_SET_SH5_0x6A, + ANA1_SET_SH5_0x6B, + ANA1_SET_SH5_0x6C, + ANA1_SET_SH5_0x6D, + ANA1_SET_SH5_0x6E, + ANA1_SET_SH5_0x6F, + ANA1_SET_SH5_0x70, + ANA1_SET_SH5_0x71, + ANA1_SET_SH5_0x72, + ANA1_SET_SH5_0x73, + ANA1_SET_SH5_0x74, + ANA1_SET_SH5_0x75, + ANA1_SET_SH5_0x76, + ANA1_SET_SH5_0x77, + ANA1_SET_SH5_0x78, + ANA1_SET_SH5_0x79, + ANA1_SET_SH5_0x7A, + ANA1_SET_SH5_0x7B, + ANA1_SET_SH5_0x7C, + ANA1_SET_SH5_0x7D, + ANA1_SET_SH5_0x7E, + ANA1_SET_SH5_0x7F, +//ANA2 + ANA2_SET_SH5_0x00, + ANA2_SET_SH5_0x01, + ANA2_SET_SH5_0x02, + ANA2_SET_SH5_0x03, + ANA2_SET_SH5_0x04, + ANA2_SET_SH5_0x05, + ANA2_SET_SH5_0x06, + ANA2_SET_SH5_0x07, + ANA2_SET_SH5_0x08, + ANA2_SET_SH5_0x09, + ANA2_SET_SH5_0x0A, + ANA2_SET_SH5_0x0B, + ANA2_SET_SH5_0x0C, + ANA2_SET_SH5_0x0D, + ANA2_SET_SH5_0x0E, + ANA2_SET_SH5_0x0F, + ANA2_SET_SH5_0x10, + ANA2_SET_SH5_0x11, + ANA2_SET_SH5_0x12, + ANA2_SET_SH5_0x13, + ANA2_SET_SH5_0x14, + ANA2_SET_SH5_0x15, + ANA2_SET_SH5_0x16, + ANA2_SET_SH5_0x17, + ANA2_SET_SH5_0x18, + ANA2_SET_SH5_0x19, + ANA2_SET_SH5_0x1A, + ANA2_SET_SH5_0x1B, + ANA2_SET_SH5_0x1C, + ANA2_SET_SH5_0x1D, + ANA2_SET_SH5_0x1E, + ANA2_SET_SH5_0x1F, + ANA2_SET_SH5_0x20, + ANA2_SET_SH5_0x21, + ANA2_SET_SH5_0x22, + ANA2_SET_SH5_0x23, + ANA2_SET_SH5_0x24, + ANA2_SET_SH5_0x25, + ANA2_SET_SH5_0x26, + ANA2_SET_SH5_0x27, + ANA2_SET_SH5_0x28, + ANA2_SET_SH5_0x29, + ANA2_SET_SH5_0x2A, + ANA2_SET_SH5_0x2B, + ANA2_SET_SH5_0x2C, + ANA2_SET_SH5_0x2D, + ANA2_SET_SH5_0x2E, + ANA2_SET_SH5_0x2F, + ANA2_SET_SH5_0x30, + ANA2_SET_SH5_0x31, + ANA2_SET_SH5_0x32, + ANA2_SET_SH5_0x33, + ANA2_SET_SH5_0x34, + ANA2_SET_SH5_0x35, + ANA2_SET_SH5_0x36, + ANA2_SET_SH5_0x37, + ANA2_SET_SH5_0x38, + ANA2_SET_SH5_0x39, + ANA2_SET_SH5_0x3A, + ANA2_SET_SH5_0x3B, + ANA2_SET_SH5_0x3C, + ANA2_SET_SH5_0x3D, + ANA2_SET_SH5_0x3E, + ANA2_SET_SH5_0x3F, + ANA2_SET_SH5_0x40, + ANA2_SET_SH5_0x41, + ANA2_SET_SH5_0x42, + ANA2_SET_SH5_0x43, + ANA2_SET_SH5_0x44, + ANA2_SET_SH5_0x45, + ANA2_SET_SH5_0x46, + ANA2_SET_SH5_0x47, + ANA2_SET_SH5_0x48, + ANA2_SET_SH5_0x49, + ANA2_SET_SH5_0x4A, + ANA2_SET_SH5_0x4B, + ANA2_SET_SH5_0x4C, + ANA2_SET_SH5_0x4D, + ANA2_SET_SH5_0x4E, + ANA2_SET_SH5_0x4F, + ANA2_SET_SH5_0x50, + ANA2_SET_SH5_0x51, + ANA2_SET_SH5_0x52, + ANA2_SET_SH5_0x53, + ANA2_SET_SH5_0x54, + ANA2_SET_SH5_0x55, + ANA2_SET_SH5_0x56, + ANA2_SET_SH5_0x57, + ANA2_SET_SH5_0x58, + ANA2_SET_SH5_0x59, + ANA2_SET_SH5_0x5A, + ANA2_SET_SH5_0x5B, + ANA2_SET_SH5_0x5C, + ANA2_SET_SH5_0x5D, + ANA2_SET_SH5_0x5E, + ANA2_SET_SH5_0x5F, + ANA2_SET_SH5_0x60, + ANA2_SET_SH5_0x61, + ANA2_SET_SH5_0x62, + ANA2_SET_SH5_0x63, + ANA2_SET_SH5_0x64, + ANA2_SET_SH5_0x65, + ANA2_SET_SH5_0x66, + ANA2_SET_SH5_0x67, + ANA2_SET_SH5_0x68, + ANA2_SET_SH5_0x69, + ANA2_SET_SH5_0x6A, + ANA2_SET_SH5_0x6B, + ANA2_SET_SH5_0x6C, + ANA2_SET_SH5_0x6D, + ANA2_SET_SH5_0x6E, + ANA2_SET_SH5_0x6F, + ANA2_SET_SH5_0x70, + +}; + + diff --git a/drivers/input/touchscreen/ito_test/open_test_ANA2_B_8861A_lianchuang.h b/drivers/input/touchscreen/ito_test/open_test_ANA2_B_8861A_lianchuang.h new file mode 100644 index 00000000..5e8ee3f5 --- /dev/null +++ b/drivers/input/touchscreen/ito_test/open_test_ANA2_B_8861A_lianchuang.h @@ -0,0 +1,494 @@ +#define ANA1_SET_SH5B_0x00 0xFFFF +#define ANA1_SET_SH5B_0x01 0x007F +#define ANA1_SET_SH5B_0x02 0x001E +#define ANA1_SET_SH5B_0x03 0x4800 +#define ANA1_SET_SH5B_0x04 0x7FF1 +#define ANA1_SET_SH5B_0x05 0xF7FF +#define ANA1_SET_SH5B_0x06 0x1F1F +#define ANA1_SET_SH5B_0x07 0x0610 +#define ANA1_SET_SH5B_0x08 0x0000 +#define ANA1_SET_SH5B_0x09 0x0000 +#define ANA1_SET_SH5B_0x0A 0x0000 +#define ANA1_SET_SH5B_0x0B 0x0000 +#define ANA1_SET_SH5B_0x0C 0x0000 +#define ANA1_SET_SH5B_0x0D 0x0000 +#define ANA1_SET_SH5B_0x0E 0x0000 +#define ANA1_SET_SH5B_0x0F 0x0000 +#define ANA1_SET_SH5B_0x10 0x0000 +#define ANA1_SET_SH5B_0x11 0x0000 +#define ANA1_SET_SH5B_0x12 0x0000 +#define ANA1_SET_SH5B_0x13 0x0000 +#define ANA1_SET_SH5B_0x14 0x0000 +#define ANA1_SET_SH5B_0x15 0x0000 +#define ANA1_SET_SH5B_0x16 0x0000 +#define ANA1_SET_SH5B_0x17 0x0000 +#define ANA1_SET_SH5B_0x18 0x0000 +#define ANA1_SET_SH5B_0x19 0x0000 +#define ANA1_SET_SH5B_0x1A 0x0000 +#define ANA1_SET_SH5B_0x1B 0x0000 +#define ANA1_SET_SH5B_0x1C 0x0000 +#define ANA1_SET_SH5B_0x1D 0x0000 +#define ANA1_SET_SH5B_0x1E 0x0000 +#define ANA1_SET_SH5B_0x1F 0x0000 +#define ANA1_SET_SH5B_0x20 0x0000 +#define ANA1_SET_SH5B_0x21 0x0000 +#define ANA1_SET_SH5B_0x22 0x0000 +#define ANA1_SET_SH5B_0x23 0x0000 +#define ANA1_SET_SH5B_0x24 0x0000 +#define ANA1_SET_SH5B_0x25 0x0002 +#define ANA1_SET_SH5B_0x26 0x0000 +#define ANA1_SET_SH5B_0x27 0x3E15 +#define ANA1_SET_SH5B_0x28 0x3E3E +#define ANA1_SET_SH5B_0x29 0x3E18 +#define ANA1_SET_SH5B_0x2A 0x3E3E +#define ANA1_SET_SH5B_0x2B 0x3E19 +#define ANA1_SET_SH5B_0x2C 0x3E3E +#define ANA1_SET_SH5B_0x2D 0x3E1D +#define ANA1_SET_SH5B_0x2E 0x3E3E +#define ANA1_SET_SH5B_0x2F 0x3E1E +#define ANA1_SET_SH5B_0x30 0x3E3E +#define ANA1_SET_SH5B_0x31 0x3E3E +#define ANA1_SET_SH5B_0x32 0x3E3E +#define ANA1_SET_SH5B_0x33 0x3E3E +#define ANA1_SET_SH5B_0x34 0x3E3E +#define ANA1_SET_SH5B_0x35 0x3E3E +#define ANA1_SET_SH5B_0x36 0x3E3E +#define ANA1_SET_SH5B_0x37 0x3E3E +#define ANA1_SET_SH5B_0x38 0x3E3E +#define ANA1_SET_SH5B_0x39 0x3E3E +#define ANA1_SET_SH5B_0x3A 0x3E3E +#define ANA1_SET_SH5B_0x3B 0x3E3E +#define ANA1_SET_SH5B_0x3C 0x3E3E +#define ANA1_SET_SH5B_0x3D 0x3E3E +#define ANA1_SET_SH5B_0x3E 0x3E3E +#define ANA1_SET_SH5B_0x3F 0x0000 +#define ANA1_SET_SH5B_0x40 0x0000 +#define ANA1_SET_SH5B_0x41 0x0000 +#define ANA1_SET_SH5B_0x42 0x0000 +#define ANA1_SET_SH5B_0x43 0x0000 +#define ANA1_SET_SH5B_0x44 0x0000 +#define ANA1_SET_SH5B_0x45 0x0000 +#define ANA1_SET_SH5B_0x46 0x0000 +#define ANA1_SET_SH5B_0x47 0x0000 +#define ANA1_SET_SH5B_0x48 0x0000 +#define ANA1_SET_SH5B_0x49 0x0000 +#define ANA1_SET_SH5B_0x4A 0x0000 +#define ANA1_SET_SH5B_0x4B 0x0000 +#define ANA1_SET_SH5B_0x4C 0x0000 +#define ANA1_SET_SH5B_0x4D 0x0000 +#define ANA1_SET_SH5B_0x4E 0x0000 +#define ANA1_SET_SH5B_0x4F 0x0000 +#define ANA1_SET_SH5B_0x50 0x0000 +#define ANA1_SET_SH5B_0x51 0x0000 +#define ANA1_SET_SH5B_0x52 0x0000 +#define ANA1_SET_SH5B_0x53 0x0000 +#define ANA1_SET_SH5B_0x54 0x0000 +#define ANA1_SET_SH5B_0x55 0x0000 +#define ANA1_SET_SH5B_0x56 0x0000 +#define ANA1_SET_SH5B_0x57 0x0000 +#define ANA1_SET_SH5B_0x58 0x0000 +#define ANA1_SET_SH5B_0x59 0x0000 +#define ANA1_SET_SH5B_0x5A 0x0000 +#define ANA1_SET_SH5B_0x5B 0x0000 +#define ANA1_SET_SH5B_0x5C 0x0000 +#define ANA1_SET_SH5B_0x5D 0x0000 +#define ANA1_SET_SH5B_0x5E 0x0000 +#define ANA1_SET_SH5B_0x5F 0x0000 +#define ANA1_SET_SH5B_0x60 0x0000 +#define ANA1_SET_SH5B_0x61 0x0000 +#define ANA1_SET_SH5B_0x62 0x0000 +#define ANA1_SET_SH5B_0x63 0x0000 +#define ANA1_SET_SH5B_0x64 0x0000 +#define ANA1_SET_SH5B_0x65 0x0000 +#define ANA1_SET_SH5B_0x66 0x0000 +#define ANA1_SET_SH5B_0x67 0x0000 +#define ANA1_SET_SH5B_0x68 0x0000 +#define ANA1_SET_SH5B_0x69 0x0000 +#define ANA1_SET_SH5B_0x6A 0x0000 +#define ANA1_SET_SH5B_0x6B 0x0000 +#define ANA1_SET_SH5B_0x6C 0x0000 +#define ANA1_SET_SH5B_0x6D 0x0000 +#define ANA1_SET_SH5B_0x6E 0x0000 +#define ANA1_SET_SH5B_0x6F 0x0000 +#define ANA1_SET_SH5B_0x70 0x0000 +#define ANA1_SET_SH5B_0x71 0x0000 +#define ANA1_SET_SH5B_0x72 0x0000 +#define ANA1_SET_SH5B_0x73 0x0000 +#define ANA1_SET_SH5B_0x74 0x0000 +#define ANA1_SET_SH5B_0x75 0x0000 +#define ANA1_SET_SH5B_0x76 0x0C00 +#define ANA1_SET_SH5B_0x77 0xFFFF +#define ANA1_SET_SH5B_0x78 0xFFFF +#define ANA1_SET_SH5B_0x79 0x3FFF +#define ANA1_SET_SH5B_0x7A 0x0000 +#define ANA1_SET_SH5B_0x7B 0x0000 +#define ANA1_SET_SH5B_0x7C 0x0000 +#define ANA1_SET_SH5B_0x7D 0x0000 +#define ANA1_SET_SH5B_0x7E 0x0000 +#define ANA1_SET_SH5B_0x7F 0x0000 + + + + +#define ANA2_SET_SH5B_0x00 0x0048 +#define ANA2_SET_SH5B_0x01 0x0000 +#define ANA2_SET_SH5B_0x02 0x1111 +#define ANA2_SET_SH5B_0x03 0x0011 +#define ANA2_SET_SH5B_0x04 0x0002 +#define ANA2_SET_SH5B_0x05 0x0001 +#define ANA2_SET_SH5B_0x05_UP 0xB8A8 +#define ANA2_SET_SH5B_0x06 0x0000 +#define ANA2_SET_SH5B_0x07 0x0000 +#define ANA2_SET_SH5B_0x08 0x0000 +#define ANA2_SET_SH5B_0x09 0x0000 +#define ANA2_SET_SH5B_0x0A 0x0030 +#define ANA2_SET_SH5B_0x0B 0x0008 +#define ANA2_SET_SH5B_0x0C 0x0000 +#define ANA2_SET_SH5B_0x0D 0x0031 +#define ANA2_SET_SH5B_0x0E 0x0031 +#define ANA2_SET_SH5B_0x0F 0x0031 +#define ANA2_SET_SH5B_0x10 0x0031 +#define ANA2_SET_SH5B_0x11 0x0000 +#define ANA2_SET_SH5B_0x12 0x04C0 +#define ANA2_SET_SH5B_0x13 0x2102 +#define ANA2_SET_SH5B_0x14 0x0003 +#define ANA2_SET_SH5B_0x15 0x0013 +#define ANA2_SET_SH5B_0x16 0x0015 +#define ANA2_SET_SH5B_0x17 0x0015 +#define ANA2_SET_SH5B_0x18 0x0015 +#define ANA2_SET_SH5B_0x19 0xDCAC +#define ANA2_SET_SH5B_0x1A 0x0000 +#define ANA2_SET_SH5B_0x1B 0x0000 +#define ANA2_SET_SH5B_0x1C 0x0000 +#define ANA2_SET_SH5B_0x1D 0x1111 +#define ANA2_SET_SH5B_0x1E 0x0000 +#define ANA2_SET_SH5B_0x1F 0x0000 +#define ANA2_SET_SH5B_0x20 0xC000 +#define ANA2_SET_SH5B_0x21 0x0000 +#define ANA2_SET_SH5B_0x22 0x0000 +#define ANA2_SET_SH5B_0x23 0x0000 +#define ANA2_SET_SH5B_0x24 0x0000 +#define ANA2_SET_SH5B_0x25 0x0000 +#define ANA2_SET_SH5B_0x26 0x0000 +#define ANA2_SET_SH5B_0x27 0x0000 +#define ANA2_SET_SH5B_0x28 0x0000 +#define ANA2_SET_SH5B_0x29 0x0000 +#define ANA2_SET_SH5B_0x2A 0x0000 +#define ANA2_SET_SH5B_0x2B 0x0000 +#define ANA2_SET_SH5B_0x2C 0x0000 +#define ANA2_SET_SH5B_0x2D 0x0000 +#define ANA2_SET_SH5B_0x2E 0x0000 +#define ANA2_SET_SH5B_0x2F 0x0000 +#define ANA2_SET_SH5B_0x30 0x0000 +#define ANA2_SET_SH5B_0x31 0x0000 +#define ANA2_SET_SH5B_0x32 0x0000 +#define ANA2_SET_SH5B_0x33 0x0000 +#define ANA2_SET_SH5B_0x34 0x0000 +#define ANA2_SET_SH5B_0x35 0x0000 +#define ANA2_SET_SH5B_0x36 0x0000 +#define ANA2_SET_SH5B_0x37 0x0000 +#define ANA2_SET_SH5B_0x38 0x0000 +#define ANA2_SET_SH5B_0x39 0x0000 +#define ANA2_SET_SH5B_0x3A 0x0000 +#define ANA2_SET_SH5B_0x3B 0x0000 +#define ANA2_SET_SH5B_0x3C 0x0000 +#define ANA2_SET_SH5B_0x3D 0x0000 +#define ANA2_SET_SH5B_0x3E 0x0000 +#define ANA2_SET_SH5B_0x3F 0x0000 +#define ANA2_SET_SH5B_0x40 0x0000 +#define ANA2_SET_SH5B_0x41 0x0000 +#define ANA2_SET_SH5B_0x42 0x0000 +#define ANA2_SET_SH5B_0x43 0x0000 +#define ANA2_SET_SH5B_0x44 0x0000 +#define ANA2_SET_SH5B_0x45 0x0000 +#define ANA2_SET_SH5B_0x46 0x0000 +#define ANA2_SET_SH5B_0x47 0x0000 +#define ANA2_SET_SH5B_0x48 0x0000 +#define ANA2_SET_SH5B_0x49 0x0000 +#define ANA2_SET_SH5B_0x4A 0x0000 +#define ANA2_SET_SH5B_0x4B 0x0000 +#define ANA2_SET_SH5B_0x4C 0x0000 +#define ANA2_SET_SH5B_0x4D 0x0000 +#define ANA2_SET_SH5B_0x4E 0x0000 +#define ANA2_SET_SH5B_0x4F 0x0000 +#define ANA2_SET_SH5B_0x50 0x0000 +#define ANA2_SET_SH5B_0x51 0x0000 +#define ANA2_SET_SH5B_0x52 0x0000 +#define ANA2_SET_SH5B_0x53 0x0000 +#define ANA2_SET_SH5B_0x54 0x0000 +#define ANA2_SET_SH5B_0x55 0x0000 +#define ANA2_SET_SH5B_0x56 0x0000 +#define ANA2_SET_SH5B_0x57 0x0000 +#define ANA2_SET_SH5B_0x58 0x0000 +#define ANA2_SET_SH5B_0x59 0x0000 +#define ANA2_SET_SH5B_0x5A 0x0000 +#define ANA2_SET_SH5B_0x5B 0x0000 +#define ANA2_SET_SH5B_0x5C 0x0000 +#define ANA2_SET_SH5B_0x5D 0x0000 +#define ANA2_SET_SH5B_0x5E 0x0000 +#define ANA2_SET_SH5B_0x5F 0x0000 +#define ANA2_SET_SH5B_0x60 0x0000 +#define ANA2_SET_SH5B_0x61 0x0000 +#define ANA2_SET_SH5B_0x62 0x0000 +#define ANA2_SET_SH5B_0x63 0x0000 +#define ANA2_SET_SH5B_0x64 0x0000 +#define ANA2_SET_SH5B_0x65 0x0000 +#define ANA2_SET_SH5B_0x66 0x0000 +#define ANA2_SET_SH5B_0x67 0x0000 +#define ANA2_SET_SH5B_0x68 0x0000 +#define ANA2_SET_SH5B_0x69 0x0000 +#define ANA2_SET_SH5B_0x6A 0x0000 +#define ANA2_SET_SH5B_0x6B 0x0000 +#define ANA2_SET_SH5B_0x6C 0x0000 +#define ANA2_SET_SH5B_0x6D 0x0000 +#define ANA2_SET_SH5B_0x6E 0x0000 +#define ANA2_SET_SH5B_0x6F 0x0000 +#define ANA2_SET_SH5B_0x70 0x0010 + +uint16_t open_2B_lianchuang[241] = +{ + ANA1_SET_SH5B_0x00, + ANA1_SET_SH5B_0x01, + ANA1_SET_SH5B_0x02, + ANA1_SET_SH5B_0x03, + ANA1_SET_SH5B_0x04, + ANA1_SET_SH5B_0x05, + ANA1_SET_SH5B_0x06, + ANA1_SET_SH5B_0x07, + ANA1_SET_SH5B_0x08, + ANA1_SET_SH5B_0x09, + ANA1_SET_SH5B_0x0A, + ANA1_SET_SH5B_0x0B, + ANA1_SET_SH5B_0x0C, + ANA1_SET_SH5B_0x0D, + ANA1_SET_SH5B_0x0E, + ANA1_SET_SH5B_0x0F, + ANA1_SET_SH5B_0x10, + ANA1_SET_SH5B_0x11, + ANA1_SET_SH5B_0x12, + ANA1_SET_SH5B_0x13, + ANA1_SET_SH5B_0x14, + ANA1_SET_SH5B_0x15, + ANA1_SET_SH5B_0x16, + ANA1_SET_SH5B_0x17, + ANA1_SET_SH5B_0x18, + ANA1_SET_SH5B_0x19, + ANA1_SET_SH5B_0x1A, + ANA1_SET_SH5B_0x1B, + ANA1_SET_SH5B_0x1C, + ANA1_SET_SH5B_0x1D, + ANA1_SET_SH5B_0x1E, + ANA1_SET_SH5B_0x1F, + ANA1_SET_SH5B_0x20, + ANA1_SET_SH5B_0x21, + ANA1_SET_SH5B_0x22, + ANA1_SET_SH5B_0x23, + ANA1_SET_SH5B_0x24, + ANA1_SET_SH5B_0x25, + ANA1_SET_SH5B_0x26, + ANA1_SET_SH5B_0x27, + ANA1_SET_SH5B_0x28, + ANA1_SET_SH5B_0x29, + ANA1_SET_SH5B_0x2A, + ANA1_SET_SH5B_0x2B, + ANA1_SET_SH5B_0x2C, + ANA1_SET_SH5B_0x2D, + ANA1_SET_SH5B_0x2E, + ANA1_SET_SH5B_0x2F, + ANA1_SET_SH5B_0x30, + ANA1_SET_SH5B_0x31, + ANA1_SET_SH5B_0x32, + ANA1_SET_SH5B_0x33, + ANA1_SET_SH5B_0x34, + ANA1_SET_SH5B_0x35, + ANA1_SET_SH5B_0x36, + ANA1_SET_SH5B_0x37, + ANA1_SET_SH5B_0x38, + ANA1_SET_SH5B_0x39, + ANA1_SET_SH5B_0x3A, + ANA1_SET_SH5B_0x3B, + ANA1_SET_SH5B_0x3C, + ANA1_SET_SH5B_0x3D, + ANA1_SET_SH5B_0x3E, + ANA1_SET_SH5B_0x3F, + ANA1_SET_SH5B_0x40, + ANA1_SET_SH5B_0x41, + ANA1_SET_SH5B_0x42, + ANA1_SET_SH5B_0x43, + ANA1_SET_SH5B_0x44, + ANA1_SET_SH5B_0x45, + ANA1_SET_SH5B_0x46, + ANA1_SET_SH5B_0x47, + ANA1_SET_SH5B_0x48, + ANA1_SET_SH5B_0x49, + ANA1_SET_SH5B_0x4A, + ANA1_SET_SH5B_0x4B, + ANA1_SET_SH5B_0x4C, + ANA1_SET_SH5B_0x4D, + ANA1_SET_SH5B_0x4E, + ANA1_SET_SH5B_0x4F, + ANA1_SET_SH5B_0x50, + ANA1_SET_SH5B_0x51, + ANA1_SET_SH5B_0x52, + ANA1_SET_SH5B_0x53, + ANA1_SET_SH5B_0x54, + ANA1_SET_SH5B_0x55, + ANA1_SET_SH5B_0x56, + ANA1_SET_SH5B_0x57, + ANA1_SET_SH5B_0x58, + ANA1_SET_SH5B_0x59, + ANA1_SET_SH5B_0x5A, + ANA1_SET_SH5B_0x5B, + ANA1_SET_SH5B_0x5C, + ANA1_SET_SH5B_0x5D, + ANA1_SET_SH5B_0x5E, + ANA1_SET_SH5B_0x5F, + ANA1_SET_SH5B_0x60, + ANA1_SET_SH5B_0x61, + ANA1_SET_SH5B_0x62, + ANA1_SET_SH5B_0x63, + ANA1_SET_SH5B_0x64, + ANA1_SET_SH5B_0x65, + ANA1_SET_SH5B_0x66, + ANA1_SET_SH5B_0x67, + ANA1_SET_SH5B_0x68, + ANA1_SET_SH5B_0x69, + ANA1_SET_SH5B_0x6A, + ANA1_SET_SH5B_0x6B, + ANA1_SET_SH5B_0x6C, + ANA1_SET_SH5B_0x6D, + ANA1_SET_SH5B_0x6E, + ANA1_SET_SH5B_0x6F, + ANA1_SET_SH5B_0x70, + ANA1_SET_SH5B_0x71, + ANA1_SET_SH5B_0x72, + ANA1_SET_SH5B_0x73, + ANA1_SET_SH5B_0x74, + ANA1_SET_SH5B_0x75, + ANA1_SET_SH5B_0x76, + ANA1_SET_SH5B_0x77, + ANA1_SET_SH5B_0x78, + ANA1_SET_SH5B_0x79, + ANA1_SET_SH5B_0x7A, + ANA1_SET_SH5B_0x7B, + ANA1_SET_SH5B_0x7C, + ANA1_SET_SH5B_0x7D, + ANA1_SET_SH5B_0x7E, + ANA1_SET_SH5B_0x7F, +//ANA2 + ANA2_SET_SH5B_0x00, + ANA2_SET_SH5B_0x01, + ANA2_SET_SH5B_0x02, + ANA2_SET_SH5B_0x03, + ANA2_SET_SH5B_0x04, + ANA2_SET_SH5B_0x05, + ANA2_SET_SH5B_0x06, + ANA2_SET_SH5B_0x07, + ANA2_SET_SH5B_0x08, + ANA2_SET_SH5B_0x09, + ANA2_SET_SH5B_0x0A, + ANA2_SET_SH5B_0x0B, + ANA2_SET_SH5B_0x0C, + ANA2_SET_SH5B_0x0D, + ANA2_SET_SH5B_0x0E, + ANA2_SET_SH5B_0x0F, + ANA2_SET_SH5B_0x10, + ANA2_SET_SH5B_0x11, + ANA2_SET_SH5B_0x12, + ANA2_SET_SH5B_0x13, + ANA2_SET_SH5B_0x14, + ANA2_SET_SH5B_0x15, + ANA2_SET_SH5B_0x16, + ANA2_SET_SH5B_0x17, + ANA2_SET_SH5B_0x18, + ANA2_SET_SH5B_0x19, + ANA2_SET_SH5B_0x1A, + ANA2_SET_SH5B_0x1B, + ANA2_SET_SH5B_0x1C, + ANA2_SET_SH5B_0x1D, + ANA2_SET_SH5B_0x1E, + ANA2_SET_SH5B_0x1F, + ANA2_SET_SH5B_0x20, + ANA2_SET_SH5B_0x21, + ANA2_SET_SH5B_0x22, + ANA2_SET_SH5B_0x23, + ANA2_SET_SH5B_0x24, + ANA2_SET_SH5B_0x25, + ANA2_SET_SH5B_0x26, + ANA2_SET_SH5B_0x27, + ANA2_SET_SH5B_0x28, + ANA2_SET_SH5B_0x29, + ANA2_SET_SH5B_0x2A, + ANA2_SET_SH5B_0x2B, + ANA2_SET_SH5B_0x2C, + ANA2_SET_SH5B_0x2D, + ANA2_SET_SH5B_0x2E, + ANA2_SET_SH5B_0x2F, + ANA2_SET_SH5B_0x30, + ANA2_SET_SH5B_0x31, + ANA2_SET_SH5B_0x32, + ANA2_SET_SH5B_0x33, + ANA2_SET_SH5B_0x34, + ANA2_SET_SH5B_0x35, + ANA2_SET_SH5B_0x36, + ANA2_SET_SH5B_0x37, + ANA2_SET_SH5B_0x38, + ANA2_SET_SH5B_0x39, + ANA2_SET_SH5B_0x3A, + ANA2_SET_SH5B_0x3B, + ANA2_SET_SH5B_0x3C, + ANA2_SET_SH5B_0x3D, + ANA2_SET_SH5B_0x3E, + ANA2_SET_SH5B_0x3F, + ANA2_SET_SH5B_0x40, + ANA2_SET_SH5B_0x41, + ANA2_SET_SH5B_0x42, + ANA2_SET_SH5B_0x43, + ANA2_SET_SH5B_0x44, + ANA2_SET_SH5B_0x45, + ANA2_SET_SH5B_0x46, + ANA2_SET_SH5B_0x47, + ANA2_SET_SH5B_0x48, + ANA2_SET_SH5B_0x49, + ANA2_SET_SH5B_0x4A, + ANA2_SET_SH5B_0x4B, + ANA2_SET_SH5B_0x4C, + ANA2_SET_SH5B_0x4D, + ANA2_SET_SH5B_0x4E, + ANA2_SET_SH5B_0x4F, + ANA2_SET_SH5B_0x50, + ANA2_SET_SH5B_0x51, + ANA2_SET_SH5B_0x52, + ANA2_SET_SH5B_0x53, + ANA2_SET_SH5B_0x54, + ANA2_SET_SH5B_0x55, + ANA2_SET_SH5B_0x56, + ANA2_SET_SH5B_0x57, + ANA2_SET_SH5B_0x58, + ANA2_SET_SH5B_0x59, + ANA2_SET_SH5B_0x5A, + ANA2_SET_SH5B_0x5B, + ANA2_SET_SH5B_0x5C, + ANA2_SET_SH5B_0x5D, + ANA2_SET_SH5B_0x5E, + ANA2_SET_SH5B_0x5F, + ANA2_SET_SH5B_0x60, + ANA2_SET_SH5B_0x61, + ANA2_SET_SH5B_0x62, + ANA2_SET_SH5B_0x63, + ANA2_SET_SH5B_0x64, + ANA2_SET_SH5B_0x65, + ANA2_SET_SH5B_0x66, + ANA2_SET_SH5B_0x67, + ANA2_SET_SH5B_0x68, + ANA2_SET_SH5B_0x69, + ANA2_SET_SH5B_0x6A, + ANA2_SET_SH5B_0x6B, + ANA2_SET_SH5B_0x6C, + ANA2_SET_SH5B_0x6D, + ANA2_SET_SH5B_0x6E, + ANA2_SET_SH5B_0x6F, + ANA2_SET_SH5B_0x70, +}; + + diff --git a/drivers/input/touchscreen/ito_test/open_test_ANA3_8861A_lianchuang.h b/drivers/input/touchscreen/ito_test/open_test_ANA3_8861A_lianchuang.h new file mode 100644 index 00000000..1bfe9813 --- /dev/null +++ b/drivers/input/touchscreen/ito_test/open_test_ANA3_8861A_lianchuang.h @@ -0,0 +1,504 @@ + + + + +//MP Setting +#define IDLE_SENSOR_SH6_1 0x0000 +#define IDLE_SENSOR_SH6_2 0x0000 +#define IDLE_SENSOR_SH6_3 0x4000 +///////////////////////////////////////////////////// +// Constant for ANA Setting +///////////////////////////////////////////////////// +#define ANA1_SET_SH6_0x00 0xFFFF +#define ANA1_SET_SH6_0x01 0x007F +#define ANA1_SET_SH6_0x02 0x001E +#define ANA1_SET_SH6_0x03 0x4800 +#define ANA1_SET_SH6_0x04 0x7FF1 +#define ANA1_SET_SH6_0x05 0xF7FF +#define ANA1_SET_SH6_0x06 0x1F1F +#define ANA1_SET_SH6_0x07 0x0610 +#define ANA1_SET_SH6_0x08 0x0000 +#define ANA1_SET_SH6_0x09 0x0000 +#define ANA1_SET_SH6_0x0A 0x0000 +#define ANA1_SET_SH6_0x0B 0x0000 +#define ANA1_SET_SH6_0x0C 0x0000 +#define ANA1_SET_SH6_0x0D 0x0000 +#define ANA1_SET_SH6_0x0E 0x0000 +#define ANA1_SET_SH6_0x0F 0x0000 +#define ANA1_SET_SH6_0x10 0x0000 +#define ANA1_SET_SH6_0x11 0x0000 +#define ANA1_SET_SH6_0x12 0x0000 +#define ANA1_SET_SH6_0x13 0x0000 +#define ANA1_SET_SH6_0x14 0x0000 +#define ANA1_SET_SH6_0x15 0x0000 +#define ANA1_SET_SH6_0x16 0x0000 +#define ANA1_SET_SH6_0x17 0x0000 +#define ANA1_SET_SH6_0x18 0x0000 +#define ANA1_SET_SH6_0x19 0x0000 +#define ANA1_SET_SH6_0x1A 0x0000 +#define ANA1_SET_SH6_0x1B 0x0000 +#define ANA1_SET_SH6_0x1C 0x0000 +#define ANA1_SET_SH6_0x1D 0x0000 +#define ANA1_SET_SH6_0x1E 0x0000 +#define ANA1_SET_SH6_0x1F 0x0000 +#define ANA1_SET_SH6_0x20 0x0000 +#define ANA1_SET_SH6_0x21 0x0000 +#define ANA1_SET_SH6_0x22 0x0000 +#define ANA1_SET_SH6_0x23 0x0000 +#define ANA1_SET_SH6_0x24 0x0000 +#define ANA1_SET_SH6_0x25 0x0000 +#define ANA1_SET_SH6_0x26 0x0000 +#define ANA1_SET_SH6_0x27 0x0500 +#define ANA1_SET_SH6_0x28 0x0706 +#define ANA1_SET_SH6_0x29 0x0908 +#define ANA1_SET_SH6_0x2A 0x0B0A +#define ANA1_SET_SH6_0x2B 0x0D0C +#define ANA1_SET_SH6_0x2C 0x100E +#define ANA1_SET_SH6_0x2D 0x1104 +#define ANA1_SET_SH6_0x2E 0x1312 +#define ANA1_SET_SH6_0x2F 0x1514 +#define ANA1_SET_SH6_0x30 0x1716 +#define ANA1_SET_SH6_0x31 0x1918 +#define ANA1_SET_SH6_0x32 0x1C1A +#define ANA1_SET_SH6_0x33 0x1D2C +#define ANA1_SET_SH6_0x34 0x1F1E +#define ANA1_SET_SH6_0x35 0x2120 +#define ANA1_SET_SH6_0x36 0x2322 +#define ANA1_SET_SH6_0x37 0x2824 +#define ANA1_SET_SH6_0x38 0x2A29 +#define ANA1_SET_SH6_0x39 0x3E2B +#define ANA1_SET_SH6_0x3A 0x3E3E +#define ANA1_SET_SH6_0x3B 0x3E3E +#define ANA1_SET_SH6_0x3C 0x3E3E +#define ANA1_SET_SH6_0x3D 0x3E3E +#define ANA1_SET_SH6_0x3E 0x3E3E +#define ANA1_SET_SH6_0x3F 0x0000 +#define ANA1_SET_SH6_0x40 0x0000 +#define ANA1_SET_SH6_0x41 0x0000 +#define ANA1_SET_SH6_0x42 0x0000 +#define ANA1_SET_SH6_0x43 0x0000 +#define ANA1_SET_SH6_0x44 0x0000 +#define ANA1_SET_SH6_0x45 0x0000 +#define ANA1_SET_SH6_0x46 0x0000 +#define ANA1_SET_SH6_0x47 0x0000 +#define ANA1_SET_SH6_0x48 0x0000 +#define ANA1_SET_SH6_0x49 0x0000 +#define ANA1_SET_SH6_0x4A 0x0000 +#define ANA1_SET_SH6_0x4B 0x0000 +#define ANA1_SET_SH6_0x4C 0x0000 +#define ANA1_SET_SH6_0x4D 0x0000 +#define ANA1_SET_SH6_0x4E 0x0000 +#define ANA1_SET_SH6_0x4F 0x0000 +#define ANA1_SET_SH6_0x50 0x0000 +#define ANA1_SET_SH6_0x51 0x0000 +#define ANA1_SET_SH6_0x52 0x0000 +#define ANA1_SET_SH6_0x53 0x0000 +#define ANA1_SET_SH6_0x54 0x0000 +#define ANA1_SET_SH6_0x55 0x0000 +#define ANA1_SET_SH6_0x56 0x0000 +#define ANA1_SET_SH6_0x57 0x0000 +#define ANA1_SET_SH6_0x58 0x0000 +#define ANA1_SET_SH6_0x59 0x0000 +#define ANA1_SET_SH6_0x5A 0x0000 +#define ANA1_SET_SH6_0x5B 0x0000 +#define ANA1_SET_SH6_0x5C 0x0000 +#define ANA1_SET_SH6_0x5D 0x0000 +#define ANA1_SET_SH6_0x5E 0x0000 +#define ANA1_SET_SH6_0x5F 0x0000 +#define ANA1_SET_SH6_0x60 0x0000 +#define ANA1_SET_SH6_0x61 0x0000 +#define ANA1_SET_SH6_0x62 0x0000 +#define ANA1_SET_SH6_0x63 0x0000 +#define ANA1_SET_SH6_0x64 0x0000 +#define ANA1_SET_SH6_0x65 0x0000 +#define ANA1_SET_SH6_0x66 0x0000 +#define ANA1_SET_SH6_0x67 0x0000 +#define ANA1_SET_SH6_0x68 0x0000 +#define ANA1_SET_SH6_0x69 0x0000 +#define ANA1_SET_SH6_0x6A 0x0000 +#define ANA1_SET_SH6_0x6B 0x0000 +#define ANA1_SET_SH6_0x6C 0x0000 +#define ANA1_SET_SH6_0x6D 0x0000 +#define ANA1_SET_SH6_0x6E 0x0000 +#define ANA1_SET_SH6_0x6F 0x0000 +#define ANA1_SET_SH6_0x70 0x0000 +#define ANA1_SET_SH6_0x71 0x0000 +#define ANA1_SET_SH6_0x72 0x0000 +#define ANA1_SET_SH6_0x73 0x0000 +#define ANA1_SET_SH6_0x74 0x0000 +#define ANA1_SET_SH6_0x75 0x0000 +#define ANA1_SET_SH6_0x76 0x0C00 +#define ANA1_SET_SH6_0x77 0xFFFF +#define ANA1_SET_SH6_0x78 0xFFFF +#define ANA1_SET_SH6_0x79 0x3FFF +#define ANA1_SET_SH6_0x7A 0x0001 +#define ANA1_SET_SH6_0x7B 0x0001 +#define ANA1_SET_SH6_0x7C 0x0001 +#define ANA1_SET_SH6_0x7D 0x0000 +#define ANA1_SET_SH6_0x7E 0x0000 +#define ANA1_SET_SH6_0x7F 0x0000 + + + + +#define ANA2_SET_SH6_0x00 0x0048 +#define ANA2_SET_SH6_0x01 0x0000 +#define ANA2_SET_SH6_0x02 0x1111 +#define ANA2_SET_SH6_0x03 0x0011 +#define ANA2_SET_SH6_0x04 0x0002 +#define ANA2_SET_SH6_0x05 0x1CCC +#define ANA2_SET_SH6_0x05_UP 0xCCC1 +#define ANA2_SET_SH6_0x06 0x0000 +#define ANA2_SET_SH6_0x07 0x0000 +#define ANA2_SET_SH6_0x08 0x0000 +#define ANA2_SET_SH6_0x09 0x0000 +#define ANA2_SET_SH6_0x0A 0x0030 +#define ANA2_SET_SH6_0x0B 0x0006 +#define ANA2_SET_SH6_0x0C 0x0000 +#define ANA2_SET_SH6_0x0D 0x0031 +#define ANA2_SET_SH6_0x0E 0x0031 +#define ANA2_SET_SH6_0x0F 0x0031 +#define ANA2_SET_SH6_0x10 0x0031 +#define ANA2_SET_SH6_0x11 0x0000 +#define ANA2_SET_SH6_0x12 0x04C0 +#define ANA2_SET_SH6_0x13 0x2102 +#define ANA2_SET_SH6_0x14 0x0003 +#define ANA2_SET_SH6_0x15 0x0013 +#define ANA2_SET_SH6_0x16 0x0015 +#define ANA2_SET_SH6_0x17 0x0015 +#define ANA2_SET_SH6_0x18 0x0015 +#define ANA2_SET_SH6_0x19 0xDCAC +#define ANA2_SET_SH6_0x1A 0x0000 +#define ANA2_SET_SH6_0x1B 0x0000 +#define ANA2_SET_SH6_0x1C 0x0000 +#define ANA2_SET_SH6_0x1D 0x1111 +#define ANA2_SET_SH6_0x1E 0x0000 +#define ANA2_SET_SH6_0x1F 0x0000 +#define ANA2_SET_SH6_0x20 0xC000 +#define ANA2_SET_SH6_0x21 0x0000 +#define ANA2_SET_SH6_0x22 0x0000 +#define ANA2_SET_SH6_0x23 0x0000 +#define ANA2_SET_SH6_0x24 0x0000 +#define ANA2_SET_SH6_0x25 0x0000 +#define ANA2_SET_SH6_0x26 0x0000 +#define ANA2_SET_SH6_0x27 0x0000 +#define ANA2_SET_SH6_0x28 0x0000 +#define ANA2_SET_SH6_0x29 0x0000 +#define ANA2_SET_SH6_0x2A 0x0000 +#define ANA2_SET_SH6_0x2B 0x0000 +#define ANA2_SET_SH6_0x2C 0x0000 +#define ANA2_SET_SH6_0x2D 0x0000 +#define ANA2_SET_SH6_0x2E 0x0000 +#define ANA2_SET_SH6_0x2F 0x0000 +#define ANA2_SET_SH6_0x30 0x0000 +#define ANA2_SET_SH6_0x31 0x0000 +#define ANA2_SET_SH6_0x32 0x0000 +#define ANA2_SET_SH6_0x33 0x0000 +#define ANA2_SET_SH6_0x34 0x0000 +#define ANA2_SET_SH6_0x35 0x0000 +#define ANA2_SET_SH6_0x36 0x0000 +#define ANA2_SET_SH6_0x37 0x0000 +#define ANA2_SET_SH6_0x38 0x0000 +#define ANA2_SET_SH6_0x39 0x0000 +#define ANA2_SET_SH6_0x3A 0x0000 +#define ANA2_SET_SH6_0x3B 0x0000 +#define ANA2_SET_SH6_0x3C 0x0000 +#define ANA2_SET_SH6_0x3D 0x0000 +#define ANA2_SET_SH6_0x3E 0x0000 +#define ANA2_SET_SH6_0x3F 0x0000 +#define ANA2_SET_SH6_0x40 0x0000 +#define ANA2_SET_SH6_0x41 0x0000 +#define ANA2_SET_SH6_0x42 0x0000 +#define ANA2_SET_SH6_0x43 0x0000 +#define ANA2_SET_SH6_0x44 0x0000 +#define ANA2_SET_SH6_0x45 0x0000 +#define ANA2_SET_SH6_0x46 0x0000 +#define ANA2_SET_SH6_0x47 0x0000 +#define ANA2_SET_SH6_0x48 0x0000 +#define ANA2_SET_SH6_0x49 0x0000 +#define ANA2_SET_SH6_0x4A 0x0000 +#define ANA2_SET_SH6_0x4B 0x0000 +#define ANA2_SET_SH6_0x4C 0x0000 +#define ANA2_SET_SH6_0x4D 0x0000 +#define ANA2_SET_SH6_0x4E 0x0000 +#define ANA2_SET_SH6_0x4F 0x0000 +#define ANA2_SET_SH6_0x50 0x0000 +#define ANA2_SET_SH6_0x51 0x0000 +#define ANA2_SET_SH6_0x52 0x0000 +#define ANA2_SET_SH6_0x53 0x0000 +#define ANA2_SET_SH6_0x54 0x0000 +#define ANA2_SET_SH6_0x55 0x0000 +#define ANA2_SET_SH6_0x56 0x0000 +#define ANA2_SET_SH6_0x57 0x0000 +#define ANA2_SET_SH6_0x58 0x0000 +#define ANA2_SET_SH6_0x59 0x0000 +#define ANA2_SET_SH6_0x5A 0x0000 +#define ANA2_SET_SH6_0x5B 0x0000 +#define ANA2_SET_SH6_0x5C 0x0000 +#define ANA2_SET_SH6_0x5D 0x0000 +#define ANA2_SET_SH6_0x5E 0x0000 +#define ANA2_SET_SH6_0x5F 0x0000 +#define ANA2_SET_SH6_0x60 0x0000 +#define ANA2_SET_SH6_0x61 0x0000 +#define ANA2_SET_SH6_0x62 0x0000 +#define ANA2_SET_SH6_0x63 0x0000 +#define ANA2_SET_SH6_0x64 0x0000 +#define ANA2_SET_SH6_0x65 0x0000 +#define ANA2_SET_SH6_0x66 0x0000 +#define ANA2_SET_SH6_0x67 0x0000 +#define ANA2_SET_SH6_0x68 0x0000 +#define ANA2_SET_SH6_0x69 0x0000 +#define ANA2_SET_SH6_0x6A 0x0000 +#define ANA2_SET_SH6_0x6B 0x0000 +#define ANA2_SET_SH6_0x6C 0x0000 +#define ANA2_SET_SH6_0x6D 0x0000 +#define ANA2_SET_SH6_0x6E 0x0000 +#define ANA2_SET_SH6_0x6F 0x0000 +#define ANA2_SET_SH6_0x70 0x0010 + +uint16_t open_3_lianchuang[241] = +{ + ANA1_SET_SH6_0x00, + ANA1_SET_SH6_0x01, + ANA1_SET_SH6_0x02, + ANA1_SET_SH6_0x03, + ANA1_SET_SH6_0x04, + ANA1_SET_SH6_0x05, + ANA1_SET_SH6_0x06, + ANA1_SET_SH6_0x07, + ANA1_SET_SH6_0x08, + ANA1_SET_SH6_0x09, + ANA1_SET_SH6_0x0A, + ANA1_SET_SH6_0x0B, + ANA1_SET_SH6_0x0C, + ANA1_SET_SH6_0x0D, + ANA1_SET_SH6_0x0E, + ANA1_SET_SH6_0x0F, + ANA1_SET_SH6_0x10, + ANA1_SET_SH6_0x11, + ANA1_SET_SH6_0x12, + ANA1_SET_SH6_0x13, + ANA1_SET_SH6_0x14, + ANA1_SET_SH6_0x15, + ANA1_SET_SH6_0x16, + ANA1_SET_SH6_0x17, + ANA1_SET_SH6_0x18, + ANA1_SET_SH6_0x19, + ANA1_SET_SH6_0x1A, + ANA1_SET_SH6_0x1B, + ANA1_SET_SH6_0x1C, + ANA1_SET_SH6_0x1D, + ANA1_SET_SH6_0x1E, + ANA1_SET_SH6_0x1F, + ANA1_SET_SH6_0x20, + ANA1_SET_SH6_0x21, + ANA1_SET_SH6_0x22, + ANA1_SET_SH6_0x23, + ANA1_SET_SH6_0x24, + ANA1_SET_SH6_0x25, + ANA1_SET_SH6_0x26, + ANA1_SET_SH6_0x27, + ANA1_SET_SH6_0x28, + ANA1_SET_SH6_0x29, + ANA1_SET_SH6_0x2A, + ANA1_SET_SH6_0x2B, + ANA1_SET_SH6_0x2C, + ANA1_SET_SH6_0x2D, + ANA1_SET_SH6_0x2E, + ANA1_SET_SH6_0x2F, + ANA1_SET_SH6_0x30, + ANA1_SET_SH6_0x31, + ANA1_SET_SH6_0x32, + ANA1_SET_SH6_0x33, + ANA1_SET_SH6_0x34, + ANA1_SET_SH6_0x35, + ANA1_SET_SH6_0x36, + ANA1_SET_SH6_0x37, + ANA1_SET_SH6_0x38, + ANA1_SET_SH6_0x39, + ANA1_SET_SH6_0x3A, + ANA1_SET_SH6_0x3B, + ANA1_SET_SH6_0x3C, + ANA1_SET_SH6_0x3D, + ANA1_SET_SH6_0x3E, + ANA1_SET_SH6_0x3F, + ANA1_SET_SH6_0x40, + ANA1_SET_SH6_0x41, + ANA1_SET_SH6_0x42, + ANA1_SET_SH6_0x43, + ANA1_SET_SH6_0x44, + ANA1_SET_SH6_0x45, + ANA1_SET_SH6_0x46, + ANA1_SET_SH6_0x47, + ANA1_SET_SH6_0x48, + ANA1_SET_SH6_0x49, + ANA1_SET_SH6_0x4A, + ANA1_SET_SH6_0x4B, + ANA1_SET_SH6_0x4C, + ANA1_SET_SH6_0x4D, + ANA1_SET_SH6_0x4E, + ANA1_SET_SH6_0x4F, + ANA1_SET_SH6_0x50, + ANA1_SET_SH6_0x51, + ANA1_SET_SH6_0x52, + ANA1_SET_SH6_0x53, + ANA1_SET_SH6_0x54, + ANA1_SET_SH6_0x55, + ANA1_SET_SH6_0x56, + ANA1_SET_SH6_0x57, + ANA1_SET_SH6_0x58, + ANA1_SET_SH6_0x59, + ANA1_SET_SH6_0x5A, + ANA1_SET_SH6_0x5B, + ANA1_SET_SH6_0x5C, + ANA1_SET_SH6_0x5D, + ANA1_SET_SH6_0x5E, + ANA1_SET_SH6_0x5F, + ANA1_SET_SH6_0x60, + ANA1_SET_SH6_0x61, + ANA1_SET_SH6_0x62, + ANA1_SET_SH6_0x63, + ANA1_SET_SH6_0x64, + ANA1_SET_SH6_0x65, + ANA1_SET_SH6_0x66, + ANA1_SET_SH6_0x67, + ANA1_SET_SH6_0x68, + ANA1_SET_SH6_0x69, + ANA1_SET_SH6_0x6A, + ANA1_SET_SH6_0x6B, + ANA1_SET_SH6_0x6C, + ANA1_SET_SH6_0x6D, + ANA1_SET_SH6_0x6E, + ANA1_SET_SH6_0x6F, + ANA1_SET_SH6_0x70, + ANA1_SET_SH6_0x71, + ANA1_SET_SH6_0x72, + ANA1_SET_SH6_0x73, + ANA1_SET_SH6_0x74, + ANA1_SET_SH6_0x75, + ANA1_SET_SH6_0x76, + ANA1_SET_SH6_0x77, + ANA1_SET_SH6_0x78, + ANA1_SET_SH6_0x79, + ANA1_SET_SH6_0x7A, + ANA1_SET_SH6_0x7B, + ANA1_SET_SH6_0x7C, + ANA1_SET_SH6_0x7D, + ANA1_SET_SH6_0x7E, + ANA1_SET_SH6_0x7F, +//ANA2 + ANA2_SET_SH6_0x00, + ANA2_SET_SH6_0x01, + ANA2_SET_SH6_0x02, + ANA2_SET_SH6_0x03, + ANA2_SET_SH6_0x04, + ANA2_SET_SH6_0x05, + ANA2_SET_SH6_0x06, + ANA2_SET_SH6_0x07, + ANA2_SET_SH6_0x08, + ANA2_SET_SH6_0x09, + ANA2_SET_SH6_0x0A, + ANA2_SET_SH6_0x0B, + ANA2_SET_SH6_0x0C, + ANA2_SET_SH6_0x0D, + ANA2_SET_SH6_0x0E, + ANA2_SET_SH6_0x0F, + ANA2_SET_SH6_0x10, + ANA2_SET_SH6_0x11, + ANA2_SET_SH6_0x12, + ANA2_SET_SH6_0x13, + ANA2_SET_SH6_0x14, + ANA2_SET_SH6_0x15, + ANA2_SET_SH6_0x16, + ANA2_SET_SH6_0x17, + ANA2_SET_SH6_0x18, + ANA2_SET_SH6_0x19, + ANA2_SET_SH6_0x1A, + ANA2_SET_SH6_0x1B, + ANA2_SET_SH6_0x1C, + ANA2_SET_SH6_0x1D, + ANA2_SET_SH6_0x1E, + ANA2_SET_SH6_0x1F, + ANA2_SET_SH6_0x20, + ANA2_SET_SH6_0x21, + ANA2_SET_SH6_0x22, + ANA2_SET_SH6_0x23, + ANA2_SET_SH6_0x24, + ANA2_SET_SH6_0x25, + ANA2_SET_SH6_0x26, + ANA2_SET_SH6_0x27, + ANA2_SET_SH6_0x28, + ANA2_SET_SH6_0x29, + ANA2_SET_SH6_0x2A, + ANA2_SET_SH6_0x2B, + ANA2_SET_SH6_0x2C, + ANA2_SET_SH6_0x2D, + ANA2_SET_SH6_0x2E, + ANA2_SET_SH6_0x2F, + ANA2_SET_SH6_0x30, + ANA2_SET_SH6_0x31, + ANA2_SET_SH6_0x32, + ANA2_SET_SH6_0x33, + ANA2_SET_SH6_0x34, + ANA2_SET_SH6_0x35, + ANA2_SET_SH6_0x36, + ANA2_SET_SH6_0x37, + ANA2_SET_SH6_0x38, + ANA2_SET_SH6_0x39, + ANA2_SET_SH6_0x3A, + ANA2_SET_SH6_0x3B, + ANA2_SET_SH6_0x3C, + ANA2_SET_SH6_0x3D, + ANA2_SET_SH6_0x3E, + ANA2_SET_SH6_0x3F, + ANA2_SET_SH6_0x40, + ANA2_SET_SH6_0x41, + ANA2_SET_SH6_0x42, + ANA2_SET_SH6_0x43, + ANA2_SET_SH6_0x44, + ANA2_SET_SH6_0x45, + ANA2_SET_SH6_0x46, + ANA2_SET_SH6_0x47, + ANA2_SET_SH6_0x48, + ANA2_SET_SH6_0x49, + ANA2_SET_SH6_0x4A, + ANA2_SET_SH6_0x4B, + ANA2_SET_SH6_0x4C, + ANA2_SET_SH6_0x4D, + ANA2_SET_SH6_0x4E, + ANA2_SET_SH6_0x4F, + ANA2_SET_SH6_0x50, + ANA2_SET_SH6_0x51, + ANA2_SET_SH6_0x52, + ANA2_SET_SH6_0x53, + ANA2_SET_SH6_0x54, + ANA2_SET_SH6_0x55, + ANA2_SET_SH6_0x56, + ANA2_SET_SH6_0x57, + ANA2_SET_SH6_0x58, + ANA2_SET_SH6_0x59, + ANA2_SET_SH6_0x5A, + ANA2_SET_SH6_0x5B, + ANA2_SET_SH6_0x5C, + ANA2_SET_SH6_0x5D, + ANA2_SET_SH6_0x5E, + ANA2_SET_SH6_0x5F, + ANA2_SET_SH6_0x60, + ANA2_SET_SH6_0x61, + ANA2_SET_SH6_0x62, + ANA2_SET_SH6_0x63, + ANA2_SET_SH6_0x64, + ANA2_SET_SH6_0x65, + ANA2_SET_SH6_0x66, + ANA2_SET_SH6_0x67, + ANA2_SET_SH6_0x68, + ANA2_SET_SH6_0x69, + ANA2_SET_SH6_0x6A, + ANA2_SET_SH6_0x6B, + ANA2_SET_SH6_0x6C, + ANA2_SET_SH6_0x6D, + ANA2_SET_SH6_0x6E, + ANA2_SET_SH6_0x6F, + ANA2_SET_SH6_0x70, + +}; \ No newline at end of file diff --git a/drivers/input/touchscreen/jornada720_ts.c b/drivers/input/touchscreen/jornada720_ts.c new file mode 100644 index 00000000..282d7c7a --- /dev/null +++ b/drivers/input/touchscreen/jornada720_ts.c @@ -0,0 +1,177 @@ +/* + * drivers/input/touchscreen/jornada720_ts.c + * + * Copyright (C) 2007 Kristoffer Ericson + * + * Copyright (C) 2006 Filip Zyzniewski + * based on HP Jornada 56x touchscreen driver by Alex Lange + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * HP Jornada 710/720/729 Touchscreen Driver + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +MODULE_AUTHOR("Kristoffer Ericson "); +MODULE_DESCRIPTION("HP Jornada 710/720/728 touchscreen driver"); +MODULE_LICENSE("GPL v2"); + +struct jornada_ts { + struct input_dev *dev; + int x_data[4]; /* X sample values */ + int y_data[4]; /* Y sample values */ +}; + +static void jornada720_ts_collect_data(struct jornada_ts *jornada_ts) +{ + + /* 3 low word X samples */ + jornada_ts->x_data[0] = jornada_ssp_byte(TXDUMMY); + jornada_ts->x_data[1] = jornada_ssp_byte(TXDUMMY); + jornada_ts->x_data[2] = jornada_ssp_byte(TXDUMMY); + + /* 3 low word Y samples */ + jornada_ts->y_data[0] = jornada_ssp_byte(TXDUMMY); + jornada_ts->y_data[1] = jornada_ssp_byte(TXDUMMY); + jornada_ts->y_data[2] = jornada_ssp_byte(TXDUMMY); + + /* combined x samples bits */ + jornada_ts->x_data[3] = jornada_ssp_byte(TXDUMMY); + + /* combined y samples bits */ + jornada_ts->y_data[3] = jornada_ssp_byte(TXDUMMY); +} + +static int jornada720_ts_average(int coords[4]) +{ + int coord, high_bits = coords[3]; + + coord = coords[0] | ((high_bits & 0x03) << 8); + coord += coords[1] | ((high_bits & 0x0c) << 6); + coord += coords[2] | ((high_bits & 0x30) << 4); + + return coord / 3; +} + +static irqreturn_t jornada720_ts_interrupt(int irq, void *dev_id) +{ + struct platform_device *pdev = dev_id; + struct jornada_ts *jornada_ts = platform_get_drvdata(pdev); + struct input_dev *input = jornada_ts->dev; + int x, y; + + /* If GPIO_GPIO9 is set to high then report pen up */ + if (GPLR & GPIO_GPIO(9)) { + input_report_key(input, BTN_TOUCH, 0); + input_sync(input); + } else { + jornada_ssp_start(); + + /* proper reply to request is always TXDUMMY */ + if (jornada_ssp_inout(GETTOUCHSAMPLES) == TXDUMMY) { + jornada720_ts_collect_data(jornada_ts); + + x = jornada720_ts_average(jornada_ts->x_data); + y = jornada720_ts_average(jornada_ts->y_data); + + input_report_key(input, BTN_TOUCH, 1); + input_report_abs(input, ABS_X, x); + input_report_abs(input, ABS_Y, y); + input_sync(input); + } + + jornada_ssp_end(); + } + + return IRQ_HANDLED; +} + +static int jornada720_ts_probe(struct platform_device *pdev) +{ + struct jornada_ts *jornada_ts; + struct input_dev *input_dev; + int error; + + jornada_ts = kzalloc(sizeof(struct jornada_ts), GFP_KERNEL); + input_dev = input_allocate_device(); + + if (!jornada_ts || !input_dev) { + error = -ENOMEM; + goto fail1; + } + + platform_set_drvdata(pdev, jornada_ts); + + jornada_ts->dev = input_dev; + + input_dev->name = "HP Jornada 7xx Touchscreen"; + input_dev->phys = "jornadats/input0"; + input_dev->id.bustype = BUS_HOST; + input_dev->dev.parent = &pdev->dev; + + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(input_dev, ABS_X, 270, 3900, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 180, 3700, 0, 0); + + error = request_irq(IRQ_GPIO9, + jornada720_ts_interrupt, + IRQF_TRIGGER_RISING, + "HP7XX Touchscreen driver", pdev); + if (error) { + printk(KERN_INFO "HP7XX TS : Unable to acquire irq!\n"); + goto fail1; + } + + error = input_register_device(jornada_ts->dev); + if (error) + goto fail2; + + return 0; + + fail2: + free_irq(IRQ_GPIO9, pdev); + fail1: + platform_set_drvdata(pdev, NULL); + input_free_device(input_dev); + kfree(jornada_ts); + return error; +} + +static int jornada720_ts_remove(struct platform_device *pdev) +{ + struct jornada_ts *jornada_ts = platform_get_drvdata(pdev); + + free_irq(IRQ_GPIO9, pdev); + platform_set_drvdata(pdev, NULL); + input_unregister_device(jornada_ts->dev); + kfree(jornada_ts); + + return 0; +} + +/* work with hotplug and coldplug */ +MODULE_ALIAS("platform:jornada_ts"); + +static struct platform_driver jornada720_ts_driver = { + .probe = jornada720_ts_probe, + .remove = jornada720_ts_remove, + .driver = { + .name = "jornada_ts", + .owner = THIS_MODULE, + }, +}; +module_platform_driver(jornada720_ts_driver); diff --git a/drivers/input/touchscreen/lpc32xx_ts.c b/drivers/input/touchscreen/lpc32xx_ts.c new file mode 100644 index 00000000..9101ee52 --- /dev/null +++ b/drivers/input/touchscreen/lpc32xx_ts.c @@ -0,0 +1,410 @@ +/* + * LPC32xx built-in touchscreen driver + * + * Copyright (C) 2010 NXP Semiconductors + * + * 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 + +/* + * Touchscreen controller register offsets + */ +#define LPC32XX_TSC_STAT 0x00 +#define LPC32XX_TSC_SEL 0x04 +#define LPC32XX_TSC_CON 0x08 +#define LPC32XX_TSC_FIFO 0x0C +#define LPC32XX_TSC_DTR 0x10 +#define LPC32XX_TSC_RTR 0x14 +#define LPC32XX_TSC_UTR 0x18 +#define LPC32XX_TSC_TTR 0x1C +#define LPC32XX_TSC_DXP 0x20 +#define LPC32XX_TSC_MIN_X 0x24 +#define LPC32XX_TSC_MAX_X 0x28 +#define LPC32XX_TSC_MIN_Y 0x2C +#define LPC32XX_TSC_MAX_Y 0x30 +#define LPC32XX_TSC_AUX_UTR 0x34 +#define LPC32XX_TSC_AUX_MIN 0x38 +#define LPC32XX_TSC_AUX_MAX 0x3C + +#define LPC32XX_TSC_STAT_FIFO_OVRRN (1 << 8) +#define LPC32XX_TSC_STAT_FIFO_EMPTY (1 << 7) + +#define LPC32XX_TSC_SEL_DEFVAL 0x0284 + +#define LPC32XX_TSC_ADCCON_IRQ_TO_FIFO_4 (0x1 << 11) +#define LPC32XX_TSC_ADCCON_X_SAMPLE_SIZE(s) ((10 - (s)) << 7) +#define LPC32XX_TSC_ADCCON_Y_SAMPLE_SIZE(s) ((10 - (s)) << 4) +#define LPC32XX_TSC_ADCCON_POWER_UP (1 << 2) +#define LPC32XX_TSC_ADCCON_AUTO_EN (1 << 0) + +#define LPC32XX_TSC_FIFO_TS_P_LEVEL (1 << 31) +#define LPC32XX_TSC_FIFO_NORMALIZE_X_VAL(x) (((x) & 0x03FF0000) >> 16) +#define LPC32XX_TSC_FIFO_NORMALIZE_Y_VAL(y) ((y) & 0x000003FF) + +#define LPC32XX_TSC_ADCDAT_VALUE_MASK 0x000003FF + +#define LPC32XX_TSC_MIN_XY_VAL 0x0 +#define LPC32XX_TSC_MAX_XY_VAL 0x3FF + +#define MOD_NAME "ts-lpc32xx" + +#define tsc_readl(dev, reg) \ + __raw_readl((dev)->tsc_base + (reg)) +#define tsc_writel(dev, reg, val) \ + __raw_writel((val), (dev)->tsc_base + (reg)) + +struct lpc32xx_tsc { + struct input_dev *dev; + void __iomem *tsc_base; + int irq; + struct clk *clk; +}; + +static void lpc32xx_fifo_clear(struct lpc32xx_tsc *tsc) +{ + while (!(tsc_readl(tsc, LPC32XX_TSC_STAT) & + LPC32XX_TSC_STAT_FIFO_EMPTY)) + tsc_readl(tsc, LPC32XX_TSC_FIFO); +} + +static irqreturn_t lpc32xx_ts_interrupt(int irq, void *dev_id) +{ + u32 tmp, rv[4], xs[4], ys[4]; + int idx; + struct lpc32xx_tsc *tsc = dev_id; + struct input_dev *input = tsc->dev; + + tmp = tsc_readl(tsc, LPC32XX_TSC_STAT); + + if (tmp & LPC32XX_TSC_STAT_FIFO_OVRRN) { + /* FIFO overflow - throw away samples */ + lpc32xx_fifo_clear(tsc); + return IRQ_HANDLED; + } + + /* + * Gather and normalize 4 samples. Pen-up events may have less + * than 4 samples, but its ok to pop 4 and let the last sample + * pen status check drop the samples. + */ + idx = 0; + while (idx < 4 && + !(tsc_readl(tsc, LPC32XX_TSC_STAT) & + LPC32XX_TSC_STAT_FIFO_EMPTY)) { + tmp = tsc_readl(tsc, LPC32XX_TSC_FIFO); + xs[idx] = LPC32XX_TSC_ADCDAT_VALUE_MASK - + LPC32XX_TSC_FIFO_NORMALIZE_X_VAL(tmp); + ys[idx] = LPC32XX_TSC_ADCDAT_VALUE_MASK - + LPC32XX_TSC_FIFO_NORMALIZE_Y_VAL(tmp); + rv[idx] = tmp; + idx++; + } + + /* Data is only valid if pen is still down in last sample */ + if (!(rv[3] & LPC32XX_TSC_FIFO_TS_P_LEVEL) && idx == 4) { + /* Use average of 2nd and 3rd sample for position */ + input_report_abs(input, ABS_X, (xs[1] + xs[2]) / 2); + input_report_abs(input, ABS_Y, (ys[1] + ys[2]) / 2); + input_report_key(input, BTN_TOUCH, 1); + } else { + input_report_key(input, BTN_TOUCH, 0); + } + + input_sync(input); + + return IRQ_HANDLED; +} + +static void lpc32xx_stop_tsc(struct lpc32xx_tsc *tsc) +{ + /* Disable auto mode */ + tsc_writel(tsc, LPC32XX_TSC_CON, + tsc_readl(tsc, LPC32XX_TSC_CON) & + ~LPC32XX_TSC_ADCCON_AUTO_EN); + + clk_disable(tsc->clk); +} + +static void lpc32xx_setup_tsc(struct lpc32xx_tsc *tsc) +{ + u32 tmp; + + clk_enable(tsc->clk); + + tmp = tsc_readl(tsc, LPC32XX_TSC_CON) & ~LPC32XX_TSC_ADCCON_POWER_UP; + + /* Set the TSC FIFO depth to 4 samples @ 10-bits per sample (max) */ + tmp = LPC32XX_TSC_ADCCON_IRQ_TO_FIFO_4 | + LPC32XX_TSC_ADCCON_X_SAMPLE_SIZE(10) | + LPC32XX_TSC_ADCCON_Y_SAMPLE_SIZE(10); + tsc_writel(tsc, LPC32XX_TSC_CON, tmp); + + /* These values are all preset */ + tsc_writel(tsc, LPC32XX_TSC_SEL, LPC32XX_TSC_SEL_DEFVAL); + tsc_writel(tsc, LPC32XX_TSC_MIN_X, LPC32XX_TSC_MIN_XY_VAL); + tsc_writel(tsc, LPC32XX_TSC_MAX_X, LPC32XX_TSC_MAX_XY_VAL); + tsc_writel(tsc, LPC32XX_TSC_MIN_Y, LPC32XX_TSC_MIN_XY_VAL); + tsc_writel(tsc, LPC32XX_TSC_MAX_Y, LPC32XX_TSC_MAX_XY_VAL); + + /* Aux support is not used */ + tsc_writel(tsc, LPC32XX_TSC_AUX_UTR, 0); + tsc_writel(tsc, LPC32XX_TSC_AUX_MIN, 0); + tsc_writel(tsc, LPC32XX_TSC_AUX_MAX, 0); + + /* + * Set sample rate to about 240Hz per X/Y pair. A single measurement + * consists of 4 pairs which gives about a 60Hz sample rate based on + * a stable 32768Hz clock source. Values are in clocks. + * Rate is (32768 / (RTR + XCONV + RTR + YCONV + DXP + TTR + UTR) / 4 + */ + tsc_writel(tsc, LPC32XX_TSC_RTR, 0x2); + tsc_writel(tsc, LPC32XX_TSC_DTR, 0x2); + tsc_writel(tsc, LPC32XX_TSC_TTR, 0x10); + tsc_writel(tsc, LPC32XX_TSC_DXP, 0x4); + tsc_writel(tsc, LPC32XX_TSC_UTR, 88); + + lpc32xx_fifo_clear(tsc); + + /* Enable automatic ts event capture */ + tsc_writel(tsc, LPC32XX_TSC_CON, tmp | LPC32XX_TSC_ADCCON_AUTO_EN); +} + +static int lpc32xx_ts_open(struct input_dev *dev) +{ + struct lpc32xx_tsc *tsc = input_get_drvdata(dev); + + lpc32xx_setup_tsc(tsc); + + return 0; +} + +static void lpc32xx_ts_close(struct input_dev *dev) +{ + struct lpc32xx_tsc *tsc = input_get_drvdata(dev); + + lpc32xx_stop_tsc(tsc); +} + +static int lpc32xx_ts_probe(struct platform_device *pdev) +{ + struct lpc32xx_tsc *tsc; + struct input_dev *input; + struct resource *res; + resource_size_t size; + int irq; + int error; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!res) { + dev_err(&pdev->dev, "Can't get memory resource\n"); + return -ENOENT; + } + + irq = platform_get_irq(pdev, 0); + if (irq < 0) { + dev_err(&pdev->dev, "Can't get interrupt resource\n"); + return irq; + } + + tsc = kzalloc(sizeof(*tsc), GFP_KERNEL); + input = input_allocate_device(); + if (!tsc || !input) { + dev_err(&pdev->dev, "failed allocating memory\n"); + error = -ENOMEM; + goto err_free_mem; + } + + tsc->dev = input; + tsc->irq = irq; + + size = resource_size(res); + + if (!request_mem_region(res->start, size, pdev->name)) { + dev_err(&pdev->dev, "TSC registers are not free\n"); + error = -EBUSY; + goto err_free_mem; + } + + tsc->tsc_base = ioremap(res->start, size); + if (!tsc->tsc_base) { + dev_err(&pdev->dev, "Can't map memory\n"); + error = -ENOMEM; + goto err_release_mem; + } + + tsc->clk = clk_get(&pdev->dev, NULL); + if (IS_ERR(tsc->clk)) { + dev_err(&pdev->dev, "failed getting clock\n"); + error = PTR_ERR(tsc->clk); + goto err_unmap; + } + + input->name = MOD_NAME; + input->phys = "lpc32xx/input0"; + input->id.bustype = BUS_HOST; + input->id.vendor = 0x0001; + input->id.product = 0x0002; + input->id.version = 0x0100; + input->dev.parent = &pdev->dev; + input->open = lpc32xx_ts_open; + input->close = lpc32xx_ts_close; + + input->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(input, ABS_X, LPC32XX_TSC_MIN_XY_VAL, + LPC32XX_TSC_MAX_XY_VAL, 0, 0); + input_set_abs_params(input, ABS_Y, LPC32XX_TSC_MIN_XY_VAL, + LPC32XX_TSC_MAX_XY_VAL, 0, 0); + + input_set_drvdata(input, tsc); + + error = request_irq(tsc->irq, lpc32xx_ts_interrupt, + 0, pdev->name, tsc); + if (error) { + dev_err(&pdev->dev, "failed requesting interrupt\n"); + goto err_put_clock; + } + + error = input_register_device(input); + if (error) { + dev_err(&pdev->dev, "failed registering input device\n"); + goto err_free_irq; + } + + platform_set_drvdata(pdev, tsc); + device_init_wakeup(&pdev->dev, 1); + + return 0; + +err_free_irq: + free_irq(tsc->irq, tsc); +err_put_clock: + clk_put(tsc->clk); +err_unmap: + iounmap(tsc->tsc_base); +err_release_mem: + release_mem_region(res->start, size); +err_free_mem: + input_free_device(input); + kfree(tsc); + + return error; +} + +static int lpc32xx_ts_remove(struct platform_device *pdev) +{ + struct lpc32xx_tsc *tsc = platform_get_drvdata(pdev); + struct resource *res; + + device_init_wakeup(&pdev->dev, 0); + free_irq(tsc->irq, tsc); + + input_unregister_device(tsc->dev); + + clk_put(tsc->clk); + + iounmap(tsc->tsc_base); + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + release_mem_region(res->start, resource_size(res)); + + kfree(tsc); + + return 0; +} + +#ifdef CONFIG_PM +static int lpc32xx_ts_suspend(struct device *dev) +{ + struct lpc32xx_tsc *tsc = dev_get_drvdata(dev); + struct input_dev *input = tsc->dev; + + /* + * Suspend and resume can be called when the device hasn't been + * enabled. If there are no users that have the device open, then + * avoid calling the TSC stop and start functions as the TSC + * isn't yet clocked. + */ + mutex_lock(&input->mutex); + + if (input->users) { + if (device_may_wakeup(dev)) + enable_irq_wake(tsc->irq); + else + lpc32xx_stop_tsc(tsc); + } + + mutex_unlock(&input->mutex); + + return 0; +} + +static int lpc32xx_ts_resume(struct device *dev) +{ + struct lpc32xx_tsc *tsc = dev_get_drvdata(dev); + struct input_dev *input = tsc->dev; + + mutex_lock(&input->mutex); + + if (input->users) { + if (device_may_wakeup(dev)) + disable_irq_wake(tsc->irq); + else + lpc32xx_setup_tsc(tsc); + } + + mutex_unlock(&input->mutex); + + return 0; +} + +static const struct dev_pm_ops lpc32xx_ts_pm_ops = { + .suspend = lpc32xx_ts_suspend, + .resume = lpc32xx_ts_resume, +}; +#define LPC32XX_TS_PM_OPS (&lpc32xx_ts_pm_ops) +#else +#define LPC32XX_TS_PM_OPS NULL +#endif + +#ifdef CONFIG_OF +static struct of_device_id lpc32xx_tsc_of_match[] = { + { .compatible = "nxp,lpc3220-tsc", }, + { }, +}; +MODULE_DEVICE_TABLE(of, lpc32xx_tsc_of_match); +#endif + +static struct platform_driver lpc32xx_ts_driver = { + .probe = lpc32xx_ts_probe, + .remove = lpc32xx_ts_remove, + .driver = { + .name = MOD_NAME, + .owner = THIS_MODULE, + .pm = LPC32XX_TS_PM_OPS, + .of_match_table = of_match_ptr(lpc32xx_tsc_of_match), + }, +}; +module_platform_driver(lpc32xx_ts_driver); + +MODULE_AUTHOR("Kevin Wells + * Parts Copyright : Ian Molton + * Andrew Zabolotny + * + * 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. + * + * Notes: + * This is a wm97xx extended touch driver to capture touch + * data in a continuous manner on the Intel XScale architecture + * + * Features: + * - codecs supported:- WM9705, WM9712, WM9713 + * - processors supported:- Intel XScale PXA25x, PXA26x, PXA27x + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +struct continuous { + u16 id; /* codec id */ + u8 code; /* continuous code */ + u8 reads; /* number of coord reads per read cycle */ + u32 speed; /* number of coords per second */ +}; + +#define WM_READS(sp) ((sp / HZ) + 1) + +static const struct continuous cinfo[] = { + {WM9705_ID2, 0, WM_READS(94), 94}, + {WM9705_ID2, 1, WM_READS(188), 188}, + {WM9705_ID2, 2, WM_READS(375), 375}, + {WM9705_ID2, 3, WM_READS(750), 750}, + {WM9712_ID2, 0, WM_READS(94), 94}, + {WM9712_ID2, 1, WM_READS(188), 188}, + {WM9712_ID2, 2, WM_READS(375), 375}, + {WM9712_ID2, 3, WM_READS(750), 750}, + {WM9713_ID2, 0, WM_READS(94), 94}, + {WM9713_ID2, 1, WM_READS(120), 120}, + {WM9713_ID2, 2, WM_READS(154), 154}, + {WM9713_ID2, 3, WM_READS(188), 188}, +}; + +/* continuous speed index */ +static int sp_idx; +static u16 last, tries; +static int irq; + +/* + * Pen sampling frequency (Hz) in continuous mode. + */ +static int cont_rate = 200; +module_param(cont_rate, int, 0); +MODULE_PARM_DESC(cont_rate, "Sampling rate in continuous mode (Hz)"); + +/* + * Pen down detection. + * + * This driver can either poll or use an interrupt to indicate a pen down + * event. If the irq request fails then it will fall back to polling mode. + */ +static int pen_int; +module_param(pen_int, int, 0); +MODULE_PARM_DESC(pen_int, "Pen down detection (1 = interrupt, 0 = polling)"); + +/* + * Pressure readback. + * + * Set to 1 to read back pen down pressure + */ +static int pressure; +module_param(pressure, int, 0); +MODULE_PARM_DESC(pressure, "Pressure readback (1 = pressure, 0 = no pressure)"); + +/* + * AC97 touch data slot. + * + * Touch screen readback data ac97 slot + */ +static int ac97_touch_slot = 5; +module_param(ac97_touch_slot, int, 0); +MODULE_PARM_DESC(ac97_touch_slot, "Touch screen data slot AC97 number"); + + +/* flush AC97 slot 5 FIFO on pxa machines */ +#ifdef CONFIG_PXA27x +static void wm97xx_acc_pen_up(struct wm97xx *wm) +{ + schedule_timeout_uninterruptible(1); + + while (MISR & (1 << 2)) + MODR; +} +#else +static void wm97xx_acc_pen_up(struct wm97xx *wm) +{ + unsigned int count; + + schedule_timeout_uninterruptible(1); + + for (count = 0; count < 16; count++) + MODR; +} +#endif + +static int wm97xx_acc_pen_down(struct wm97xx *wm) +{ + u16 x, y, p = 0x100 | WM97XX_ADCSEL_PRES; + int reads = 0; + + /* When the AC97 queue has been drained we need to allow time + * to buffer up samples otherwise we end up spinning polling + * for samples. The controller can't have a suitably low + * threshold set to use the notifications it gives. + */ + schedule_timeout_uninterruptible(1); + + if (tries > 5) { + tries = 0; + return RC_PENUP; + } + + x = MODR; + if (x == last) { + tries++; + return RC_AGAIN; + } + last = x; + do { + if (reads) + x = MODR; + y = MODR; + if (pressure) + p = MODR; + + dev_dbg(wm->dev, "Raw coordinates: x=%x, y=%x, p=%x\n", + x, y, p); + + /* are samples valid */ + if ((x & WM97XX_ADCSEL_MASK) != WM97XX_ADCSEL_X || + (y & WM97XX_ADCSEL_MASK) != WM97XX_ADCSEL_Y || + (p & WM97XX_ADCSEL_MASK) != WM97XX_ADCSEL_PRES) + goto up; + + /* coordinate is good */ + tries = 0; + input_report_abs(wm->input_dev, ABS_X, x & 0xfff); + input_report_abs(wm->input_dev, ABS_Y, y & 0xfff); + input_report_abs(wm->input_dev, ABS_PRESSURE, p & 0xfff); + input_report_key(wm->input_dev, BTN_TOUCH, (p != 0)); + input_sync(wm->input_dev); + reads++; + } while (reads < cinfo[sp_idx].reads); +up: + return RC_PENDOWN | RC_AGAIN; +} + +static int wm97xx_acc_startup(struct wm97xx *wm) +{ + int idx = 0, ret = 0; + + /* check we have a codec */ + if (wm->ac97 == NULL) + return -ENODEV; + + /* Go you big red fire engine */ + for (idx = 0; idx < ARRAY_SIZE(cinfo); idx++) { + if (wm->id != cinfo[idx].id) + continue; + sp_idx = idx; + if (cont_rate <= cinfo[idx].speed) + break; + } + wm->acc_rate = cinfo[sp_idx].code; + wm->acc_slot = ac97_touch_slot; + dev_info(wm->dev, + "mainstone accelerated touchscreen driver, %d samples/sec\n", + cinfo[sp_idx].speed); + + /* IRQ driven touchscreen is used on Palm hardware */ + if (machine_is_palmt5() || machine_is_palmtx() || machine_is_palmld()) { + pen_int = 1; + irq = 27; + /* There is some obscure mutant of WM9712 interbred with WM9713 + * used on Palm HW */ + wm->variant = WM97xx_WM1613; + } else if (machine_is_mainstone() && pen_int) + irq = 4; + + if (irq) { + ret = gpio_request(irq, "Touchscreen IRQ"); + if (ret) + goto out; + + ret = gpio_direction_input(irq); + if (ret) { + gpio_free(irq); + goto out; + } + + wm->pen_irq = gpio_to_irq(irq); + irq_set_irq_type(wm->pen_irq, IRQ_TYPE_EDGE_BOTH); + } else /* pen irq not supported */ + pen_int = 0; + + /* codec specific irq config */ + if (pen_int) { + switch (wm->id) { + case WM9705_ID2: + break; + case WM9712_ID2: + case WM9713_ID2: + /* use PEN_DOWN GPIO 13 to assert IRQ on GPIO line 2 */ + wm97xx_config_gpio(wm, WM97XX_GPIO_13, WM97XX_GPIO_IN, + WM97XX_GPIO_POL_HIGH, + WM97XX_GPIO_STICKY, + WM97XX_GPIO_WAKE); + wm97xx_config_gpio(wm, WM97XX_GPIO_2, WM97XX_GPIO_OUT, + WM97XX_GPIO_POL_HIGH, + WM97XX_GPIO_NOTSTICKY, + WM97XX_GPIO_NOWAKE); + break; + default: + dev_err(wm->dev, + "pen down irq not supported on this device\n"); + pen_int = 0; + break; + } + } + +out: + return ret; +} + +static void wm97xx_acc_shutdown(struct wm97xx *wm) +{ + /* codec specific deconfig */ + if (pen_int) { + if (irq) + gpio_free(irq); + wm->pen_irq = 0; + } +} + +static void wm97xx_irq_enable(struct wm97xx *wm, int enable) +{ + if (enable) + enable_irq(wm->pen_irq); + else + disable_irq_nosync(wm->pen_irq); +} + +static struct wm97xx_mach_ops mainstone_mach_ops = { + .acc_enabled = 1, + .acc_pen_up = wm97xx_acc_pen_up, + .acc_pen_down = wm97xx_acc_pen_down, + .acc_startup = wm97xx_acc_startup, + .acc_shutdown = wm97xx_acc_shutdown, + .irq_enable = wm97xx_irq_enable, + .irq_gpio = WM97XX_GPIO_2, +}; + +static int mainstone_wm97xx_probe(struct platform_device *pdev) +{ + struct wm97xx *wm = platform_get_drvdata(pdev); + + return wm97xx_register_mach_ops(wm, &mainstone_mach_ops); +} + +static int mainstone_wm97xx_remove(struct platform_device *pdev) +{ + struct wm97xx *wm = platform_get_drvdata(pdev); + + wm97xx_unregister_mach_ops(wm); + return 0; +} + +static struct platform_driver mainstone_wm97xx_driver = { + .probe = mainstone_wm97xx_probe, + .remove = mainstone_wm97xx_remove, + .driver = { + .name = "wm97xx-touch", + }, +}; +module_platform_driver(mainstone_wm97xx_driver); + +/* Module information */ +MODULE_AUTHOR("Liam Girdwood "); +MODULE_DESCRIPTION("wm97xx continuous touch driver for mainstone"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/max11801_ts.c b/drivers/input/touchscreen/max11801_ts.c new file mode 100644 index 00000000..00bc6caa --- /dev/null +++ b/drivers/input/touchscreen/max11801_ts.c @@ -0,0 +1,262 @@ +/* + * Driver for MAXI MAX11801 - A Resistive touch screen controller with + * i2c interface + * + * Copyright (C) 2011 Freescale Semiconductor, Inc. + * Author: Zhang Jiejing + * + * Based on mcs5000_ts.c + * + * 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 driver aims to support the series of MAXI touch chips max11801 + * through max11803. The main difference between these 4 chips can be + * found in the table below: + * ----------------------------------------------------- + * | CHIP | AUTO MODE SUPPORT(FIFO) | INTERFACE | + * |----------------------------------------------------| + * | max11800 | YES | SPI | + * | max11801 | YES | I2C | + * | max11802 | NO | SPI | + * | max11803 | NO | I2C | + * ------------------------------------------------------ + * + * Currently, this driver only supports max11801. + * + * Data Sheet: + * http://www.maxim-ic.com/datasheet/index.mvp/id/5943 + */ + +#include +#include +#include +#include +#include +#include +#include + +/* Register Address define */ +#define GENERNAL_STATUS_REG 0x00 +#define GENERNAL_CONF_REG 0x01 +#define MESURE_RES_CONF_REG 0x02 +#define MESURE_AVER_CONF_REG 0x03 +#define ADC_SAMPLE_TIME_CONF_REG 0x04 +#define PANEL_SETUPTIME_CONF_REG 0x05 +#define DELAY_CONVERSION_CONF_REG 0x06 +#define TOUCH_DETECT_PULLUP_CONF_REG 0x07 +#define AUTO_MODE_TIME_CONF_REG 0x08 /* only for max11800/max11801 */ +#define APERTURE_CONF_REG 0x09 /* only for max11800/max11801 */ +#define AUX_MESURE_CONF_REG 0x0a +#define OP_MODE_CONF_REG 0x0b + +/* FIFO is found only in max11800 and max11801 */ +#define FIFO_RD_CMD (0x50 << 1) +#define MAX11801_FIFO_INT (1 << 2) +#define MAX11801_FIFO_OVERFLOW (1 << 3) + +#define XY_BUFSIZE 4 +#define XY_BUF_OFFSET 4 + +#define MAX11801_MAX_X 0xfff +#define MAX11801_MAX_Y 0xfff + +#define MEASURE_TAG_OFFSET 2 +#define MEASURE_TAG_MASK (3 << MEASURE_TAG_OFFSET) +#define EVENT_TAG_OFFSET 0 +#define EVENT_TAG_MASK (3 << EVENT_TAG_OFFSET) +#define MEASURE_X_TAG (0 << MEASURE_TAG_OFFSET) +#define MEASURE_Y_TAG (1 << MEASURE_TAG_OFFSET) + +/* These are the state of touch event state machine */ +enum { + EVENT_INIT, + EVENT_MIDDLE, + EVENT_RELEASE, + EVENT_FIFO_END +}; + +struct max11801_data { + struct i2c_client *client; + struct input_dev *input_dev; +}; + +static u8 read_register(struct i2c_client *client, int addr) +{ + /* XXX: The chip ignores LSB of register address */ + return i2c_smbus_read_byte_data(client, addr << 1); +} + +static int max11801_write_reg(struct i2c_client *client, int addr, int data) +{ + /* XXX: The chip ignores LSB of register address */ + return i2c_smbus_write_byte_data(client, addr << 1, data); +} + +static irqreturn_t max11801_ts_interrupt(int irq, void *dev_id) +{ + struct max11801_data *data = dev_id; + struct i2c_client *client = data->client; + int status, i, ret; + u8 buf[XY_BUFSIZE]; + int x = -1; + int y = -1; + + status = read_register(data->client, GENERNAL_STATUS_REG); + + if (status & (MAX11801_FIFO_INT | MAX11801_FIFO_OVERFLOW)) { + status = read_register(data->client, GENERNAL_STATUS_REG); + + ret = i2c_smbus_read_i2c_block_data(client, FIFO_RD_CMD, + XY_BUFSIZE, buf); + + /* + * We should get 4 bytes buffer that contains X,Y + * and event tag + */ + if (ret < XY_BUFSIZE) + goto out; + + for (i = 0; i < XY_BUFSIZE; i += XY_BUFSIZE / 2) { + if ((buf[i + 1] & MEASURE_TAG_MASK) == MEASURE_X_TAG) + x = (buf[i] << XY_BUF_OFFSET) + + (buf[i + 1] >> XY_BUF_OFFSET); + else if ((buf[i + 1] & MEASURE_TAG_MASK) == MEASURE_Y_TAG) + y = (buf[i] << XY_BUF_OFFSET) + + (buf[i + 1] >> XY_BUF_OFFSET); + } + + if ((buf[1] & EVENT_TAG_MASK) != (buf[3] & EVENT_TAG_MASK)) + goto out; + + switch (buf[1] & EVENT_TAG_MASK) { + case EVENT_INIT: + /* fall through */ + case EVENT_MIDDLE: + input_report_abs(data->input_dev, ABS_X, x); + input_report_abs(data->input_dev, ABS_Y, y); + input_event(data->input_dev, EV_KEY, BTN_TOUCH, 1); + input_sync(data->input_dev); + break; + + case EVENT_RELEASE: + input_event(data->input_dev, EV_KEY, BTN_TOUCH, 0); + input_sync(data->input_dev); + break; + + case EVENT_FIFO_END: + break; + } + } +out: + return IRQ_HANDLED; +} + +static void max11801_ts_phy_init(struct max11801_data *data) +{ + struct i2c_client *client = data->client; + + /* Average X,Y, take 16 samples, average eight media sample */ + max11801_write_reg(client, MESURE_AVER_CONF_REG, 0xff); + /* X,Y panel setup time set to 20us */ + max11801_write_reg(client, PANEL_SETUPTIME_CONF_REG, 0x11); + /* Rough pullup time (2uS), Fine pullup time (10us) */ + max11801_write_reg(client, TOUCH_DETECT_PULLUP_CONF_REG, 0x10); + /* Auto mode init period = 5ms , scan period = 5ms*/ + max11801_write_reg(client, AUTO_MODE_TIME_CONF_REG, 0xaa); + /* Aperture X,Y set to +- 4LSB */ + max11801_write_reg(client, APERTURE_CONF_REG, 0x33); + /* Enable Power, enable Automode, enable Aperture, enable Average X,Y */ + max11801_write_reg(client, OP_MODE_CONF_REG, 0x36); +} + +static int max11801_ts_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct max11801_data *data; + struct input_dev *input_dev; + int error; + + data = kzalloc(sizeof(struct max11801_data), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!data || !input_dev) { + dev_err(&client->dev, "Failed to allocate memory\n"); + error = -ENOMEM; + goto err_free_mem; + } + + data->client = client; + data->input_dev = input_dev; + + input_dev->name = "max11801_ts"; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(BTN_TOUCH, input_dev->keybit); + input_set_abs_params(input_dev, ABS_X, 0, MAX11801_MAX_X, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 0, MAX11801_MAX_Y, 0, 0); + input_set_drvdata(input_dev, data); + + max11801_ts_phy_init(data); + + error = request_threaded_irq(client->irq, NULL, max11801_ts_interrupt, + IRQF_TRIGGER_LOW | IRQF_ONESHOT, + "max11801_ts", data); + if (error) { + dev_err(&client->dev, "Failed to register interrupt\n"); + goto err_free_mem; + } + + error = input_register_device(data->input_dev); + if (error) + goto err_free_irq; + + i2c_set_clientdata(client, data); + return 0; + +err_free_irq: + free_irq(client->irq, data); +err_free_mem: + input_free_device(input_dev); + kfree(data); + return error; +} + +static int max11801_ts_remove(struct i2c_client *client) +{ + struct max11801_data *data = i2c_get_clientdata(client); + + free_irq(client->irq, data); + input_unregister_device(data->input_dev); + kfree(data); + + return 0; +} + +static const struct i2c_device_id max11801_ts_id[] = { + {"max11801", 0}, + { } +}; +MODULE_DEVICE_TABLE(i2c, max11801_ts_id); + +static struct i2c_driver max11801_ts_driver = { + .driver = { + .name = "max11801_ts", + .owner = THIS_MODULE, + }, + .id_table = max11801_ts_id, + .probe = max11801_ts_probe, + .remove = max11801_ts_remove, +}; + +module_i2c_driver(max11801_ts_driver); + +MODULE_AUTHOR("Zhang Jiejing "); +MODULE_DESCRIPTION("Touchscreen driver for MAXI MAX11801 controller"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/mc13783_ts.c b/drivers/input/touchscreen/mc13783_ts.c new file mode 100644 index 00000000..89308fe3 --- /dev/null +++ b/drivers/input/touchscreen/mc13783_ts.c @@ -0,0 +1,258 @@ +/* + * Driver for the Freescale Semiconductor MC13783 touchscreen. + * + * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. + * Copyright (C) 2009 Sascha Hauer, Pengutronix + * + * Initial development of this code was funded by + * Phytec Messtechnik GmbH, http://www.phytec.de/ + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ +#include +#include +#include +#include +#include +#include +#include +#include + +#define MC13783_TS_NAME "mc13783-ts" + +#define DEFAULT_SAMPLE_TOLERANCE 300 + +static unsigned int sample_tolerance = DEFAULT_SAMPLE_TOLERANCE; +module_param(sample_tolerance, uint, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(sample_tolerance, + "If the minimal and maximal value read out for one axis (out " + "of three) differ by this value (default: " + __stringify(DEFAULT_SAMPLE_TOLERANCE) ") or more, the reading " + "is supposed to be wrong and is discarded. Set to 0 to " + "disable this check."); + +struct mc13783_ts_priv { + struct input_dev *idev; + struct mc13xxx *mc13xxx; + struct delayed_work work; + struct workqueue_struct *workq; + unsigned int sample[4]; + struct mc13xxx_ts_platform_data *touch; +}; + +static irqreturn_t mc13783_ts_handler(int irq, void *data) +{ + struct mc13783_ts_priv *priv = data; + + mc13xxx_irq_ack(priv->mc13xxx, irq); + + /* + * Kick off reading coordinates. Note that if work happens already + * be queued for future execution (it rearms itself) it will not + * be rescheduled for immediate execution here. However the rearm + * delay is HZ / 50 which is acceptable. + */ + queue_delayed_work(priv->workq, &priv->work, 0); + + return IRQ_HANDLED; +} + +#define sort3(a0, a1, a2) ({ \ + if (a0 > a1) \ + swap(a0, a1); \ + if (a1 > a2) \ + swap(a1, a2); \ + if (a0 > a1) \ + swap(a0, a1); \ + }) + +static void mc13783_ts_report_sample(struct mc13783_ts_priv *priv) +{ + struct input_dev *idev = priv->idev; + int x0, x1, x2, y0, y1, y2; + int cr0, cr1; + + /* + * the values are 10-bit wide only, but the two least significant + * bits are for future 12 bit use and reading yields 0 + */ + x0 = priv->sample[0] & 0xfff; + x1 = priv->sample[1] & 0xfff; + x2 = priv->sample[2] & 0xfff; + y0 = priv->sample[3] & 0xfff; + y1 = (priv->sample[0] >> 12) & 0xfff; + y2 = (priv->sample[1] >> 12) & 0xfff; + cr0 = (priv->sample[2] >> 12) & 0xfff; + cr1 = (priv->sample[3] >> 12) & 0xfff; + + dev_dbg(&idev->dev, + "x: (% 4d,% 4d,% 4d) y: (% 4d, % 4d,% 4d) cr: (% 4d, % 4d)\n", + x0, x1, x2, y0, y1, y2, cr0, cr1); + + sort3(x0, x1, x2); + sort3(y0, y1, y2); + + cr0 = (cr0 + cr1) / 2; + + if (!cr0 || !sample_tolerance || + (x2 - x0 < sample_tolerance && + y2 - y0 < sample_tolerance)) { + /* report the median coordinate and average pressure */ + if (cr0) { + input_report_abs(idev, ABS_X, x1); + input_report_abs(idev, ABS_Y, y1); + + dev_dbg(&idev->dev, "report (%d, %d, %d)\n", + x1, y1, 0x1000 - cr0); + queue_delayed_work(priv->workq, &priv->work, HZ / 50); + } else + dev_dbg(&idev->dev, "report release\n"); + + input_report_abs(idev, ABS_PRESSURE, + cr0 ? 0x1000 - cr0 : cr0); + input_report_key(idev, BTN_TOUCH, cr0); + input_sync(idev); + } else + dev_dbg(&idev->dev, "discard event\n"); +} + +static void mc13783_ts_work(struct work_struct *work) +{ + struct mc13783_ts_priv *priv = + container_of(work, struct mc13783_ts_priv, work.work); + unsigned int mode = MC13XXX_ADC_MODE_TS; + unsigned int channel = 12; + + if (mc13xxx_adc_do_conversion(priv->mc13xxx, + mode, channel, + priv->touch->ato, priv->touch->atox, + priv->sample) == 0) + mc13783_ts_report_sample(priv); +} + +static int mc13783_ts_open(struct input_dev *dev) +{ + struct mc13783_ts_priv *priv = input_get_drvdata(dev); + int ret; + + mc13xxx_lock(priv->mc13xxx); + + mc13xxx_irq_ack(priv->mc13xxx, MC13XXX_IRQ_TS); + + ret = mc13xxx_irq_request(priv->mc13xxx, MC13XXX_IRQ_TS, + mc13783_ts_handler, MC13783_TS_NAME, priv); + if (ret) + goto out; + + ret = mc13xxx_reg_rmw(priv->mc13xxx, MC13XXX_ADC0, + MC13XXX_ADC0_TSMOD_MASK, MC13XXX_ADC0_TSMOD0); + if (ret) + mc13xxx_irq_free(priv->mc13xxx, MC13XXX_IRQ_TS, priv); +out: + mc13xxx_unlock(priv->mc13xxx); + return ret; +} + +static void mc13783_ts_close(struct input_dev *dev) +{ + struct mc13783_ts_priv *priv = input_get_drvdata(dev); + + mc13xxx_lock(priv->mc13xxx); + mc13xxx_reg_rmw(priv->mc13xxx, MC13XXX_ADC0, + MC13XXX_ADC0_TSMOD_MASK, 0); + mc13xxx_irq_free(priv->mc13xxx, MC13XXX_IRQ_TS, priv); + mc13xxx_unlock(priv->mc13xxx); + + cancel_delayed_work_sync(&priv->work); +} + +static int __init mc13783_ts_probe(struct platform_device *pdev) +{ + struct mc13783_ts_priv *priv; + struct input_dev *idev; + int ret = -ENOMEM; + + priv = kzalloc(sizeof(*priv), GFP_KERNEL); + idev = input_allocate_device(); + if (!priv || !idev) + goto err_free_mem; + + INIT_DELAYED_WORK(&priv->work, mc13783_ts_work); + priv->mc13xxx = dev_get_drvdata(pdev->dev.parent); + priv->idev = idev; + priv->touch = dev_get_platdata(&pdev->dev); + if (!priv->touch) { + dev_err(&pdev->dev, "missing platform data\n"); + ret = -ENODEV; + goto err_free_mem; + } + + /* + * We need separate workqueue because mc13783_adc_do_conversion + * uses keventd and thus would deadlock. + */ + priv->workq = create_singlethread_workqueue("mc13783_ts"); + if (!priv->workq) + goto err_free_mem; + + idev->name = MC13783_TS_NAME; + idev->dev.parent = &pdev->dev; + + idev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + idev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(idev, ABS_X, 0, 0xfff, 0, 0); + input_set_abs_params(idev, ABS_Y, 0, 0xfff, 0, 0); + input_set_abs_params(idev, ABS_PRESSURE, 0, 0xfff, 0, 0); + + idev->open = mc13783_ts_open; + idev->close = mc13783_ts_close; + + input_set_drvdata(idev, priv); + + ret = input_register_device(priv->idev); + if (ret) { + dev_err(&pdev->dev, + "register input device failed with %d\n", ret); + goto err_destroy_wq; + } + + platform_set_drvdata(pdev, priv); + return 0; + +err_destroy_wq: + destroy_workqueue(priv->workq); +err_free_mem: + input_free_device(idev); + kfree(priv); + return ret; +} + +static int mc13783_ts_remove(struct platform_device *pdev) +{ + struct mc13783_ts_priv *priv = platform_get_drvdata(pdev); + + platform_set_drvdata(pdev, NULL); + + destroy_workqueue(priv->workq); + input_unregister_device(priv->idev); + kfree(priv); + + return 0; +} + +static struct platform_driver mc13783_ts_driver = { + .remove = mc13783_ts_remove, + .driver = { + .owner = THIS_MODULE, + .name = MC13783_TS_NAME, + }, +}; + +module_platform_driver_probe(mc13783_ts_driver, mc13783_ts_probe); + +MODULE_DESCRIPTION("MC13783 input touchscreen driver"); +MODULE_AUTHOR("Sascha Hauer "); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" MC13783_TS_NAME); diff --git a/drivers/input/touchscreen/mcs5000_ts.c b/drivers/input/touchscreen/mcs5000_ts.c new file mode 100644 index 00000000..f9f4e0c5 --- /dev/null +++ b/drivers/input/touchscreen/mcs5000_ts.c @@ -0,0 +1,310 @@ +/* + * mcs5000_ts.c - Touchscreen driver for MELFAS MCS-5000 controller + * + * Copyright (C) 2009 Samsung Electronics Co.Ltd + * Author: Joonyoung Shim + * + * Based on wm97xx-core.c + * + * 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. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +/* Registers */ +#define MCS5000_TS_STATUS 0x00 +#define STATUS_OFFSET 0 +#define STATUS_NO (0 << STATUS_OFFSET) +#define STATUS_INIT (1 << STATUS_OFFSET) +#define STATUS_SENSING (2 << STATUS_OFFSET) +#define STATUS_COORD (3 << STATUS_OFFSET) +#define STATUS_GESTURE (4 << STATUS_OFFSET) +#define ERROR_OFFSET 4 +#define ERROR_NO (0 << ERROR_OFFSET) +#define ERROR_POWER_ON_RESET (1 << ERROR_OFFSET) +#define ERROR_INT_RESET (2 << ERROR_OFFSET) +#define ERROR_EXT_RESET (3 << ERROR_OFFSET) +#define ERROR_INVALID_REG_ADDRESS (8 << ERROR_OFFSET) +#define ERROR_INVALID_REG_VALUE (9 << ERROR_OFFSET) + +#define MCS5000_TS_OP_MODE 0x01 +#define RESET_OFFSET 0 +#define RESET_NO (0 << RESET_OFFSET) +#define RESET_EXT_SOFT (1 << RESET_OFFSET) +#define OP_MODE_OFFSET 1 +#define OP_MODE_SLEEP (0 << OP_MODE_OFFSET) +#define OP_MODE_ACTIVE (1 << OP_MODE_OFFSET) +#define GESTURE_OFFSET 4 +#define GESTURE_DISABLE (0 << GESTURE_OFFSET) +#define GESTURE_ENABLE (1 << GESTURE_OFFSET) +#define PROXIMITY_OFFSET 5 +#define PROXIMITY_DISABLE (0 << PROXIMITY_OFFSET) +#define PROXIMITY_ENABLE (1 << PROXIMITY_OFFSET) +#define SCAN_MODE_OFFSET 6 +#define SCAN_MODE_INTERRUPT (0 << SCAN_MODE_OFFSET) +#define SCAN_MODE_POLLING (1 << SCAN_MODE_OFFSET) +#define REPORT_RATE_OFFSET 7 +#define REPORT_RATE_40 (0 << REPORT_RATE_OFFSET) +#define REPORT_RATE_80 (1 << REPORT_RATE_OFFSET) + +#define MCS5000_TS_SENS_CTL 0x02 +#define MCS5000_TS_FILTER_CTL 0x03 +#define PRI_FILTER_OFFSET 0 +#define SEC_FILTER_OFFSET 4 + +#define MCS5000_TS_X_SIZE_UPPER 0x08 +#define MCS5000_TS_X_SIZE_LOWER 0x09 +#define MCS5000_TS_Y_SIZE_UPPER 0x0A +#define MCS5000_TS_Y_SIZE_LOWER 0x0B + +#define MCS5000_TS_INPUT_INFO 0x10 +#define INPUT_TYPE_OFFSET 0 +#define INPUT_TYPE_NONTOUCH (0 << INPUT_TYPE_OFFSET) +#define INPUT_TYPE_SINGLE (1 << INPUT_TYPE_OFFSET) +#define INPUT_TYPE_DUAL (2 << INPUT_TYPE_OFFSET) +#define INPUT_TYPE_PALM (3 << INPUT_TYPE_OFFSET) +#define INPUT_TYPE_PROXIMITY (7 << INPUT_TYPE_OFFSET) +#define GESTURE_CODE_OFFSET 3 +#define GESTURE_CODE_NO (0 << GESTURE_CODE_OFFSET) + +#define MCS5000_TS_X_POS_UPPER 0x11 +#define MCS5000_TS_X_POS_LOWER 0x12 +#define MCS5000_TS_Y_POS_UPPER 0x13 +#define MCS5000_TS_Y_POS_LOWER 0x14 +#define MCS5000_TS_Z_POS 0x15 +#define MCS5000_TS_WIDTH 0x16 +#define MCS5000_TS_GESTURE_VAL 0x17 +#define MCS5000_TS_MODULE_REV 0x20 +#define MCS5000_TS_FIRMWARE_VER 0x21 + +/* Touchscreen absolute values */ +#define MCS5000_MAX_XC 0x3ff +#define MCS5000_MAX_YC 0x3ff + +enum mcs5000_ts_read_offset { + READ_INPUT_INFO, + READ_X_POS_UPPER, + READ_X_POS_LOWER, + READ_Y_POS_UPPER, + READ_Y_POS_LOWER, + READ_BLOCK_SIZE, +}; + +/* Each client has this additional data */ +struct mcs5000_ts_data { + struct i2c_client *client; + struct input_dev *input_dev; + const struct mcs_platform_data *platform_data; +}; + +static irqreturn_t mcs5000_ts_interrupt(int irq, void *dev_id) +{ + struct mcs5000_ts_data *data = dev_id; + struct i2c_client *client = data->client; + u8 buffer[READ_BLOCK_SIZE]; + int err; + int x; + int y; + + err = i2c_smbus_read_i2c_block_data(client, MCS5000_TS_INPUT_INFO, + READ_BLOCK_SIZE, buffer); + if (err < 0) { + dev_err(&client->dev, "%s, err[%d]\n", __func__, err); + goto out; + } + + switch (buffer[READ_INPUT_INFO]) { + case INPUT_TYPE_NONTOUCH: + input_report_key(data->input_dev, BTN_TOUCH, 0); + input_sync(data->input_dev); + break; + + case INPUT_TYPE_SINGLE: + x = (buffer[READ_X_POS_UPPER] << 8) | buffer[READ_X_POS_LOWER]; + y = (buffer[READ_Y_POS_UPPER] << 8) | buffer[READ_Y_POS_LOWER]; + + input_report_key(data->input_dev, BTN_TOUCH, 1); + input_report_abs(data->input_dev, ABS_X, x); + input_report_abs(data->input_dev, ABS_Y, y); + input_sync(data->input_dev); + break; + + case INPUT_TYPE_DUAL: + /* TODO */ + break; + + case INPUT_TYPE_PALM: + /* TODO */ + break; + + case INPUT_TYPE_PROXIMITY: + /* TODO */ + break; + + default: + dev_err(&client->dev, "Unknown ts input type %d\n", + buffer[READ_INPUT_INFO]); + break; + } + + out: + return IRQ_HANDLED; +} + +static void mcs5000_ts_phys_init(struct mcs5000_ts_data *data) +{ + const struct mcs_platform_data *platform_data = + data->platform_data; + struct i2c_client *client = data->client; + + /* Touch reset & sleep mode */ + i2c_smbus_write_byte_data(client, MCS5000_TS_OP_MODE, + RESET_EXT_SOFT | OP_MODE_SLEEP); + + /* Touch size */ + i2c_smbus_write_byte_data(client, MCS5000_TS_X_SIZE_UPPER, + platform_data->x_size >> 8); + i2c_smbus_write_byte_data(client, MCS5000_TS_X_SIZE_LOWER, + platform_data->x_size & 0xff); + i2c_smbus_write_byte_data(client, MCS5000_TS_Y_SIZE_UPPER, + platform_data->y_size >> 8); + i2c_smbus_write_byte_data(client, MCS5000_TS_Y_SIZE_LOWER, + platform_data->y_size & 0xff); + + /* Touch active mode & 80 report rate */ + i2c_smbus_write_byte_data(data->client, MCS5000_TS_OP_MODE, + OP_MODE_ACTIVE | REPORT_RATE_80); +} + +static int mcs5000_ts_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct mcs5000_ts_data *data; + struct input_dev *input_dev; + int ret; + + if (!client->dev.platform_data) + return -EINVAL; + + data = kzalloc(sizeof(struct mcs5000_ts_data), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!data || !input_dev) { + dev_err(&client->dev, "Failed to allocate memory\n"); + ret = -ENOMEM; + goto err_free_mem; + } + + data->client = client; + data->input_dev = input_dev; + data->platform_data = client->dev.platform_data; + + input_dev->name = "MELPAS MCS-5000 Touchscreen"; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(BTN_TOUCH, input_dev->keybit); + input_set_abs_params(input_dev, ABS_X, 0, MCS5000_MAX_XC, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 0, MCS5000_MAX_YC, 0, 0); + + input_set_drvdata(input_dev, data); + + if (data->platform_data->cfg_pin) + data->platform_data->cfg_pin(); + + ret = request_threaded_irq(client->irq, NULL, mcs5000_ts_interrupt, + IRQF_TRIGGER_LOW | IRQF_ONESHOT, "mcs5000_ts", data); + + if (ret < 0) { + dev_err(&client->dev, "Failed to register interrupt\n"); + goto err_free_mem; + } + + ret = input_register_device(data->input_dev); + if (ret < 0) + goto err_free_irq; + + mcs5000_ts_phys_init(data); + i2c_set_clientdata(client, data); + + return 0; + +err_free_irq: + free_irq(client->irq, data); +err_free_mem: + input_free_device(input_dev); + kfree(data); + return ret; +} + +static int mcs5000_ts_remove(struct i2c_client *client) +{ + struct mcs5000_ts_data *data = i2c_get_clientdata(client); + + free_irq(client->irq, data); + input_unregister_device(data->input_dev); + kfree(data); + + return 0; +} + +#ifdef CONFIG_PM +static int mcs5000_ts_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + + /* Touch sleep mode */ + i2c_smbus_write_byte_data(client, MCS5000_TS_OP_MODE, OP_MODE_SLEEP); + + return 0; +} + +static int mcs5000_ts_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct mcs5000_ts_data *data = i2c_get_clientdata(client); + + mcs5000_ts_phys_init(data); + + return 0; +} + +static SIMPLE_DEV_PM_OPS(mcs5000_ts_pm, mcs5000_ts_suspend, mcs5000_ts_resume); +#endif + +static const struct i2c_device_id mcs5000_ts_id[] = { + { "mcs5000_ts", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, mcs5000_ts_id); + +static struct i2c_driver mcs5000_ts_driver = { + .probe = mcs5000_ts_probe, + .remove = mcs5000_ts_remove, + .driver = { + .name = "mcs5000_ts", +#ifdef CONFIG_PM + .pm = &mcs5000_ts_pm, +#endif + }, + .id_table = mcs5000_ts_id, +}; + +module_i2c_driver(mcs5000_ts_driver); + +/* Module information */ +MODULE_AUTHOR("Joonyoung Shim "); +MODULE_DESCRIPTION("Touchscreen driver for MELFAS MCS-5000 controller"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/migor_ts.c b/drivers/input/touchscreen/migor_ts.c new file mode 100644 index 00000000..c038db93 --- /dev/null +++ b/drivers/input/touchscreen/migor_ts.c @@ -0,0 +1,249 @@ +/* + * Touch Screen driver for Renesas MIGO-R Platform + * + * Copyright (c) 2008 Magnus Damm + * Copyright (c) 2007 Ujjwal Pande , + * Kenati Technologies Pvt Ltd. + * + * This file 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 file 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. + * + * You should have received a copy of the GNU General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define EVENT_PENDOWN 1 +#define EVENT_REPEAT 2 +#define EVENT_PENUP 3 + +struct migor_ts_priv { + struct i2c_client *client; + struct input_dev *input; + int irq; +}; + +static const u_int8_t migor_ts_ena_seq[17] = { 0x33, 0x22, 0x11, + 0x01, 0x06, 0x07, }; +static const u_int8_t migor_ts_dis_seq[17] = { }; + +static irqreturn_t migor_ts_isr(int irq, void *dev_id) +{ + struct migor_ts_priv *priv = dev_id; + unsigned short xpos, ypos; + unsigned char event; + u_int8_t buf[16]; + + /* + * The touch screen controller chip is hooked up to the CPU + * using I2C and a single interrupt line. The interrupt line + * is pulled low whenever someone taps the screen. To deassert + * the interrupt line we need to acknowledge the interrupt by + * communicating with the controller over the slow i2c bus. + * + * Since I2C bus controller may sleep we are using threaded + * IRQ here. + */ + + memset(buf, 0, sizeof(buf)); + + /* Set Index 0 */ + buf[0] = 0; + if (i2c_master_send(priv->client, buf, 1) != 1) { + dev_err(&priv->client->dev, "Unable to write i2c index\n"); + goto out; + } + + /* Now do Page Read */ + if (i2c_master_recv(priv->client, buf, sizeof(buf)) != sizeof(buf)) { + dev_err(&priv->client->dev, "Unable to read i2c page\n"); + goto out; + } + + ypos = ((buf[9] & 0x03) << 8 | buf[8]); + xpos = ((buf[11] & 0x03) << 8 | buf[10]); + event = buf[12]; + + switch (event) { + case EVENT_PENDOWN: + case EVENT_REPEAT: + input_report_key(priv->input, BTN_TOUCH, 1); + input_report_abs(priv->input, ABS_X, ypos); /*X-Y swap*/ + input_report_abs(priv->input, ABS_Y, xpos); + input_sync(priv->input); + break; + + case EVENT_PENUP: + input_report_key(priv->input, BTN_TOUCH, 0); + input_sync(priv->input); + break; + } + + out: + return IRQ_HANDLED; +} + +static int migor_ts_open(struct input_dev *dev) +{ + struct migor_ts_priv *priv = input_get_drvdata(dev); + struct i2c_client *client = priv->client; + int count; + + /* enable controller */ + count = i2c_master_send(client, migor_ts_ena_seq, + sizeof(migor_ts_ena_seq)); + if (count != sizeof(migor_ts_ena_seq)) { + dev_err(&client->dev, "Unable to enable touchscreen.\n"); + return -ENXIO; + } + + return 0; +} + +static void migor_ts_close(struct input_dev *dev) +{ + struct migor_ts_priv *priv = input_get_drvdata(dev); + struct i2c_client *client = priv->client; + + disable_irq(priv->irq); + + /* disable controller */ + i2c_master_send(client, migor_ts_dis_seq, sizeof(migor_ts_dis_seq)); + + enable_irq(priv->irq); +} + +static int migor_ts_probe(struct i2c_client *client, + const struct i2c_device_id *idp) +{ + struct migor_ts_priv *priv; + struct input_dev *input; + int error; + + priv = kzalloc(sizeof(*priv), GFP_KERNEL); + input = input_allocate_device(); + if (!priv || !input) { + dev_err(&client->dev, "failed to allocate memory\n"); + error = -ENOMEM; + goto err_free_mem; + } + + priv->client = client; + priv->input = input; + priv->irq = client->irq; + + input->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + + __set_bit(BTN_TOUCH, input->keybit); + + input_set_abs_params(input, ABS_X, 95, 955, 0, 0); + input_set_abs_params(input, ABS_Y, 85, 935, 0, 0); + + input->name = client->name; + input->id.bustype = BUS_I2C; + input->dev.parent = &client->dev; + + input->open = migor_ts_open; + input->close = migor_ts_close; + + input_set_drvdata(input, priv); + + error = request_threaded_irq(priv->irq, NULL, migor_ts_isr, + IRQF_TRIGGER_LOW | IRQF_ONESHOT, + client->name, priv); + if (error) { + dev_err(&client->dev, "Unable to request touchscreen IRQ.\n"); + goto err_free_mem; + } + + error = input_register_device(input); + if (error) + goto err_free_irq; + + i2c_set_clientdata(client, priv); + device_init_wakeup(&client->dev, 1); + + return 0; + + err_free_irq: + free_irq(priv->irq, priv); + err_free_mem: + input_free_device(input); + kfree(priv); + return error; +} + +static int migor_ts_remove(struct i2c_client *client) +{ + struct migor_ts_priv *priv = i2c_get_clientdata(client); + + free_irq(priv->irq, priv); + input_unregister_device(priv->input); + kfree(priv); + + dev_set_drvdata(&client->dev, NULL); + + return 0; +} + +static int migor_ts_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct migor_ts_priv *priv = i2c_get_clientdata(client); + + if (device_may_wakeup(&client->dev)) + enable_irq_wake(priv->irq); + + return 0; +} + +static int migor_ts_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct migor_ts_priv *priv = i2c_get_clientdata(client); + + if (device_may_wakeup(&client->dev)) + disable_irq_wake(priv->irq); + + return 0; +} + +static SIMPLE_DEV_PM_OPS(migor_ts_pm, migor_ts_suspend, migor_ts_resume); + +static const struct i2c_device_id migor_ts_id[] = { + { "migor_ts", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, migor_ts); + +static struct i2c_driver migor_ts_driver = { + .driver = { + .name = "migor_ts", + .pm = &migor_ts_pm, + }, + .probe = migor_ts_probe, + .remove = migor_ts_remove, + .id_table = migor_ts_id, +}; + +module_i2c_driver(migor_ts_driver); + +MODULE_DESCRIPTION("MigoR Touchscreen driver"); +MODULE_AUTHOR("Magnus Damm "); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/mk712.c b/drivers/input/touchscreen/mk712.c new file mode 100644 index 00000000..36e57dea --- /dev/null +++ b/drivers/input/touchscreen/mk712.c @@ -0,0 +1,219 @@ +/* + * ICS MK712 touchscreen controller driver + * + * Copyright (c) 1999-2002 Transmeta Corporation + * Copyright (c) 2005 Rick Koch + * Copyright (c) 2005 Vojtech Pavlik + */ + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +/* + * This driver supports the ICS MicroClock MK712 TouchScreen controller, + * found in Gateway AOL Connected Touchpad computers. + * + * Documentation for ICS MK712 can be found at: + * http://www.idt.com/products/getDoc.cfm?docID=18713923 + */ + +/* + * 1999-12-18: original version, Daniel Quinlan + * 1999-12-19: added anti-jitter code, report pen-up events, fixed mk712_poll + * to use queue_empty, Nathan Laredo + * 1999-12-20: improved random point rejection, Nathan Laredo + * 2000-01-05: checked in new anti-jitter code, changed mouse protocol, fixed + * queue code, added module options, other fixes, Daniel Quinlan + * 2002-03-15: Clean up for kernel merge + * Fixed multi open race, fixed memory checks, fixed resource + * allocation, fixed close/powerdown bug, switched to new init + * 2005-01-18: Ported to 2.6 from 2.4.28, Rick Koch + * 2005-02-05: Rewritten for the input layer, Vojtech Pavlik + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +MODULE_AUTHOR("Daniel Quinlan , Vojtech Pavlik "); +MODULE_DESCRIPTION("ICS MicroClock MK712 TouchScreen driver"); +MODULE_LICENSE("GPL"); + +static unsigned int mk712_io = 0x260; /* Also 0x200, 0x208, 0x300 */ +module_param_named(io, mk712_io, uint, 0); +MODULE_PARM_DESC(io, "I/O base address of MK712 touchscreen controller"); + +static unsigned int mk712_irq = 10; /* Also 12, 14, 15 */ +module_param_named(irq, mk712_irq, uint, 0); +MODULE_PARM_DESC(irq, "IRQ of MK712 touchscreen controller"); + +/* eight 8-bit registers */ +#define MK712_STATUS 0 +#define MK712_X 2 +#define MK712_Y 4 +#define MK712_CONTROL 6 +#define MK712_RATE 7 + +/* status */ +#define MK712_STATUS_TOUCH 0x10 +#define MK712_CONVERSION_COMPLETE 0x80 + +/* control */ +#define MK712_ENABLE_INT 0x01 +#define MK712_INT_ON_CONVERSION_COMPLETE 0x02 +#define MK712_INT_ON_CHANGE_IN_TOUCH_STATUS 0x04 +#define MK712_ENABLE_PERIODIC_CONVERSIONS 0x10 +#define MK712_READ_ONE_POINT 0x20 +#define MK712_POWERUP 0x40 + +static struct input_dev *mk712_dev; +static DEFINE_SPINLOCK(mk712_lock); + +static irqreturn_t mk712_interrupt(int irq, void *dev_id) +{ + unsigned char status; + static int debounce = 1; + static unsigned short last_x; + static unsigned short last_y; + + spin_lock(&mk712_lock); + + status = inb(mk712_io + MK712_STATUS); + + if (~status & MK712_CONVERSION_COMPLETE) { + debounce = 1; + goto end; + } + + if (~status & MK712_STATUS_TOUCH) { + debounce = 1; + input_report_key(mk712_dev, BTN_TOUCH, 0); + goto end; + } + + if (debounce) { + debounce = 0; + goto end; + } + + input_report_key(mk712_dev, BTN_TOUCH, 1); + input_report_abs(mk712_dev, ABS_X, last_x); + input_report_abs(mk712_dev, ABS_Y, last_y); + + end: + last_x = inw(mk712_io + MK712_X) & 0x0fff; + last_y = inw(mk712_io + MK712_Y) & 0x0fff; + input_sync(mk712_dev); + spin_unlock(&mk712_lock); + return IRQ_HANDLED; +} + +static int mk712_open(struct input_dev *dev) +{ + unsigned long flags; + + spin_lock_irqsave(&mk712_lock, flags); + + outb(0, mk712_io + MK712_CONTROL); /* Reset */ + + outb(MK712_ENABLE_INT | MK712_INT_ON_CONVERSION_COMPLETE | + MK712_INT_ON_CHANGE_IN_TOUCH_STATUS | + MK712_ENABLE_PERIODIC_CONVERSIONS | + MK712_POWERUP, mk712_io + MK712_CONTROL); + + outb(10, mk712_io + MK712_RATE); /* 187 points per second */ + + spin_unlock_irqrestore(&mk712_lock, flags); + + return 0; +} + +static void mk712_close(struct input_dev *dev) +{ + unsigned long flags; + + spin_lock_irqsave(&mk712_lock, flags); + + outb(0, mk712_io + MK712_CONTROL); + + spin_unlock_irqrestore(&mk712_lock, flags); +} + +static int __init mk712_init(void) +{ + int err; + + if (!request_region(mk712_io, 8, "mk712")) { + printk(KERN_WARNING "mk712: unable to get IO region\n"); + return -ENODEV; + } + + outb(0, mk712_io + MK712_CONTROL); + + if ((inw(mk712_io + MK712_X) & 0xf000) || /* Sanity check */ + (inw(mk712_io + MK712_Y) & 0xf000) || + (inw(mk712_io + MK712_STATUS) & 0xf333)) { + printk(KERN_WARNING "mk712: device not present\n"); + err = -ENODEV; + goto fail1; + } + + mk712_dev = input_allocate_device(); + if (!mk712_dev) { + printk(KERN_ERR "mk712: not enough memory\n"); + err = -ENOMEM; + goto fail1; + } + + mk712_dev->name = "ICS MicroClock MK712 TouchScreen"; + mk712_dev->phys = "isa0260/input0"; + mk712_dev->id.bustype = BUS_ISA; + mk712_dev->id.vendor = 0x0005; + mk712_dev->id.product = 0x0001; + mk712_dev->id.version = 0x0100; + + mk712_dev->open = mk712_open; + mk712_dev->close = mk712_close; + + mk712_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + mk712_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(mk712_dev, ABS_X, 0, 0xfff, 88, 0); + input_set_abs_params(mk712_dev, ABS_Y, 0, 0xfff, 88, 0); + + if (request_irq(mk712_irq, mk712_interrupt, 0, "mk712", mk712_dev)) { + printk(KERN_WARNING "mk712: unable to get IRQ\n"); + err = -EBUSY; + goto fail1; + } + + err = input_register_device(mk712_dev); + if (err) + goto fail2; + + return 0; + + fail2: free_irq(mk712_irq, mk712_dev); + fail1: input_free_device(mk712_dev); + release_region(mk712_io, 8); + return err; +} + +static void __exit mk712_exit(void) +{ + input_unregister_device(mk712_dev); + free_irq(mk712_irq, mk712_dev); + release_region(mk712_io, 8); +} + +module_init(mk712_init); +module_exit(mk712_exit); diff --git a/drivers/input/touchscreen/mms100s_ts.c b/drivers/input/touchscreen/mms100s_ts.c new file mode 100755 index 00000000..cdf8ec25 --- /dev/null +++ b/drivers/input/touchscreen/mms100s_ts.c @@ -0,0 +1,1593 @@ +/* + * Touchscreen driver for Melfas MMS-100s series + * + * Copyright (C) 2013 Melfas Inc. + * Author: DVK team + * + * 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. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Flag to enable touch key */ +#define MMS_HAS_TOUCH_KEY 1 + +#define ESD_DETECT_COUNT 10 + +/* + * ISC_XFER_LEN - ISC unit transfer length. + * Give number of 2 power n, where n is between 2 and 10 + * i.e. 4, 8, 16 ,,, 1024 + */ +#define ISC_XFER_LEN 1024 + +#define MMS_FLASH_PAGE_SZ 1024 +#define ISC_BLOCK_NUM (MMS_FLASH_PAGE_SZ / ISC_XFER_LEN) + +#define FLASH_VERBOSE_DEBUG 1 +#define MAX_SECTION_NUM 3 + +#define MAX_FINGER_NUM 5 +#define FINGER_EVENT_SZ 6 +#define MAX_WIDTH 30 +#define MAX_PRESSURE 255 +#define MAX_LOG_LENGTH 128 + +/* Registers */ +#define MMS_MODE_CONTROL 0x01 +#define MMS_TX_NUM 0x0B +#define MMS_RX_NUM 0x0C +#define MMS_KEY_NUM 0x0D +#define MMS_EVENT_PKT_SZ 0x0F +#define MMS_INPUT_EVENT 0x10 +#define MMS_UNIVERSAL_CMD 0xA0 +#define MMS_UNIVERSAL_RESULT 0xAF + +#define MMS_CMD_ENTER_ISC 0x5F +#define MMS_FW_VERSION 0xE1 +#define MMS_POWER_CONTROL 0xB0 + +/* Universal commands */ +#define MMS_CMD_SET_LOG_MODE 0x20 + +/* Event types */ +#define MMS_LOG_EVENT 0xD +#define MMS_NOTIFY_EVENT 0xE +#define MMS_ERROR_EVENT 0xF +#define MMS_TOUCH_KEY_EVENT 0x40 + +/* Firmware file name */ +#define FW_NAME "mms_ts.fw" + +enum{ + SYS_TXNUM = 3, + SYS_RXNUM, + SYS_CLEAR, + SYS_ENABLE, + SYS_DISABLE, + SYS_INTERRUPT, + SYS_RESET, +}; + +enum { + GET_RX_NUM = 1, + GET_TX_NUM, + GET_EVENT_DATA, +}; + +enum { + LOG_TYPE_U08 = 2, + LOG_TYPE_S08, + LOG_TYPE_U16, + LOG_TYPE_S16, + LOG_TYPE_U32 = 8, + LOG_TYPE_S32, +}; + +enum { + ISC_ADDR = 0xD5, + + ISC_CMD_READ_STATUS = 0xD9, + ISC_CMD_READ = 0x4000, + ISC_CMD_EXIT = 0x8200, + ISC_CMD_PAGE_ERASE = 0xC000, + ISC_CMD_ERASE = 0xC100, + ISC_PAGE_ERASE_DONE = 0x10000, + ISC_PAGE_ERASE_ENTER = 0x20000, +}; + +struct mms_ts_info { + struct i2c_client *client; + struct input_dev *input_dev; + char phys[32]; + + u8 tx_num; + u8 rx_num; + u8 key_num; + int irq; + + int data_cmd; + + struct mms_ts_platform_data *pdata; + + char *fw_name; + struct completion init_done; + struct early_suspend early_suspend; + + struct mutex lock; + bool enabled; + + struct cdev cdev; + dev_t mms_dev; + struct class *class; + + struct mms_log_data { + u8 *data; + int cmd; + } log; +}; + +struct mms_bin_hdr { + char tag[8]; + u16 core_version; + u16 section_num; + u16 contains_full_binary; + u16 reserved0; + + u32 binary_offset; + u32 binary_length; + + u32 extention_offset; + u32 reserved1; + +} __attribute__ ((packed)); + +struct mms_fw_img { + u16 type; + u16 version; + + u16 start_page; + u16 end_page; + + u32 offset; + u32 length; + +} __attribute__ ((packed)); + +struct isc_packet { + u8 cmd; + u32 addr; + u8 data[0]; +} __attribute__ ((packed)); + + +static int esd_cnt; +static void mms_report_input_data(struct mms_ts_info *info, u8 sz, u8 *buf); +static void mms_ts_early_suspend(struct early_suspend *h); +static void mms_ts_late_resume(struct early_suspend *h); +static int mms_ts_config(struct mms_ts_info *info); + +/* mms_ts_enable - wake-up func (VDD on) */ +static void mms_ts_enable(struct mms_ts_info *info) +{ +pr_debug("%s enable tsp %d\n",__func__,__LINE__); + if (info->enabled) + return; + pr_debug("%s %d\n",__func__,__LINE__); + mutex_lock(&info->lock); + + /* + gpio_direction_output(info->pdata->gpio_resetb, 0); + udelay(5); + gpio_direction_input(info->pdata->gpio_resetb); + */ + + /* use vdd control instead */ + info->pdata->vdd_on(1); + msleep(50); + pr_debug("%s %d \n",__func__,__LINE__); + info->enabled = true; + pr_debug("%s %d \n",__func__,__LINE__); + enable_irq(info->irq); +pr_debug("%s %d \n",__func__,__LINE__); + mutex_unlock(&info->lock); + +} + +/* mms_ts_disable - sleep func (VDD off) */ +static void mms_ts_disable(struct mms_ts_info *info) +{ +pr_debug("%s disable tsp %d \n",__func__,__LINE__); + if (!info->enabled) + return; + + i2c_smbus_write_byte_data(info->client, MMS_POWER_CONTROL, 1); + + mutex_lock(&info->lock); + + disable_irq(info->irq); + + /* + i2c_smbus_write_byte_data(info->client, MMS_MODE_CONTROL, 0); + usleep_range(10000, 12000); + */ + + /* use vdd control instead */ + msleep(50); + info->pdata->vdd_on(0); + msleep(50); + + info->enabled = false; + + mutex_unlock(&info->lock); +} + +/* mms_reboot - IC reset */ +static void mms_reboot(struct mms_ts_info *info) +{ + struct i2c_adapter *adapter = to_i2c_adapter(info->client->dev.parent); +pr_debug("%s reboot 1 %d",__func__,__LINE__); + i2c_smbus_write_byte_data(info->client, MMS_POWER_CONTROL, 1); + i2c_lock_adapter(adapter); + msleep(50); + info->pdata->vdd_on(0); + msleep(150); + + info->pdata->vdd_on(1); + msleep(50); + + i2c_unlock_adapter(adapter); +} + +/* + * mms_clear_input_data - all finger point release + */ +static void mms_clear_input_data(struct mms_ts_info *info) +{ + int i; + + for (i = 0; i < MAX_FINGER_NUM; i++) { + input_mt_slot(info->input_dev, i); + input_mt_report_slot_state(info->input_dev, MT_TOOL_FINGER, false); + } + input_sync(info->input_dev); + + return; +} + +/* + * mms_fs_open, mms_fs_release, mms_event_handler, mms_fs_read, mms_fs_write + * melfas debugging function + */ +static int mms_fs_open(struct inode *node, struct file *fp) +{ + struct mms_ts_info *info; + struct i2c_client *client; + struct i2c_msg msg; + u8 buf[3] = { + MMS_UNIVERSAL_CMD, + MMS_CMD_SET_LOG_MODE, + true, + }; + + info = container_of(node->i_cdev, struct mms_ts_info, cdev); + client = info->client; + + disable_irq(info->irq); + fp->private_data = info; + + msg.addr = client->addr; + msg.flags = 0; + msg.buf = buf; + msg.len = sizeof(buf); + + i2c_transfer(client->adapter, &msg, 1); + + info->log.data = kzalloc(MAX_LOG_LENGTH * 20 + 5, GFP_KERNEL); + + mms_clear_input_data(info); + + return 0; +} + +static int mms_fs_release(struct inode *node, struct file *fp) +{ + struct mms_ts_info *info = fp->private_data; + + mms_clear_input_data(info); + mms_reboot(info); + + kfree(info->log.data); + enable_irq(info->irq); + + return 0; +} + +static void mms_event_handler(struct mms_ts_info *info) +{ + struct i2c_client *client = info->client; + int sz; + int ret; + int row_num; + u8 reg = MMS_INPUT_EVENT; + struct i2c_msg msg[] = { + { + .addr = client->addr, + .flags = 0, + .buf = ®, + .len = 1, + }, { + .addr = client->addr, + .flags = I2C_M_RD, + .buf = info->log.data, + }, + + }; + struct mms_log_pkt { + u8 marker; + u8 log_info; + u8 code; + u8 element_sz; + u8 row_sz; + } __attribute__ ((packed)) *pkt = (struct mms_log_pkt *)info->log.data; + + memset(pkt, 0, sizeof(*pkt)); + + if (gpio_get_value(info->pdata->gpio_resetb)) + return; + + sz = i2c_smbus_read_byte_data(client, MMS_EVENT_PKT_SZ); + msg[1].len = sz; + + ret = i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg)); + if (ret != ARRAY_SIZE(msg)) { + dev_err(&client->dev, + "failed to read %d bytes of data\n", + sz); + return; + } + + if ((pkt->marker & 0xf) == MMS_LOG_EVENT) { + if ((pkt->log_info & 0x7) == 0x1) { + pkt->element_sz = 0; + pkt->row_sz = 0; + + return; + } + + switch (pkt->log_info >> 4) { + case LOG_TYPE_U08: + case LOG_TYPE_S08: + msg[1].len = pkt->element_sz; + break; + case LOG_TYPE_U16: + case LOG_TYPE_S16: + msg[1].len = pkt->element_sz * 2; + break; + case LOG_TYPE_U32: + case LOG_TYPE_S32: + msg[1].len = pkt->element_sz * 4; + break; + default: + dev_err(&client->dev, "invalied log type\n"); + return; + } + + msg[1].buf = info->log.data + sizeof(struct mms_log_pkt); + reg = MMS_UNIVERSAL_RESULT; + row_num = pkt->row_sz ? pkt->row_sz : 1; + + while (row_num--) { + while (gpio_get_value(info->pdata->gpio_resetb)) + ; + ret = i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg)); + msg[1].buf += msg[1].len; + }; + } else { + mms_report_input_data(info, sz, info->log.data); + memset(pkt, 0, sizeof(*pkt)); + } + + return; +} + +/* mms_report_input_data - The position of a touch send to platfrom */ +static void mms_report_input_data(struct mms_ts_info *info, u8 sz, u8 *buf) +{ + int i; + struct i2c_client *client = info->client; + int id; + int x; + int y; + int touch_major; + int pressure; + int key_code; + int key_state; + u8 *tmp; + + if (buf[0] == MMS_NOTIFY_EVENT) { + dev_info(&client->dev, "TSP mode changed (%d)\n", buf[1]); + goto out; + } else if (buf[0] == MMS_ERROR_EVENT) { + dev_info(&client->dev, "Error detected, restarting TSP\n"); + mms_clear_input_data(info); + mms_reboot(info); + esd_cnt++; + if (esd_cnt>= ESD_DETECT_COUNT) + { + i2c_smbus_write_byte_data(info->client, MMS_MODE_CONTROL, 0x04); + esd_cnt =0; + } + goto out; + } + + for (i = 0; i < sz; i += FINGER_EVENT_SZ) { + tmp = buf + i; + esd_cnt =0; + if (tmp[0] & MMS_TOUCH_KEY_EVENT) { + switch (tmp[0] & 0xf) { + case 1: + key_code = KEY_MENU; + break; + case 2: + key_code = KEY_BACK; + break; + default: + dev_err(&client->dev, "unknown key type\n"); + goto out; + break; + } + + key_state = (tmp[0] & 0x80) ? 1 : 0; + input_report_key(info->input_dev, key_code, key_state); + + } else { + id = (tmp[0] & 0xf) -1; + + x = tmp[2] | ((tmp[1] & 0xf) << 8); + y = tmp[3] | (((tmp[1] >> 4 ) & 0xf) << 8); + touch_major = tmp[4]; + pressure = tmp[5]; + + input_mt_slot(info->input_dev, id); + + if (!(tmp[0] & 0x80)) { + input_mt_report_slot_state(info->input_dev, MT_TOOL_FINGER, false); + continue; + } + + input_mt_report_slot_state(info->input_dev, MT_TOOL_FINGER, true); + input_report_abs(info->input_dev, ABS_MT_POSITION_X, x); + input_report_abs(info->input_dev, ABS_MT_POSITION_Y, y); + input_report_abs(info->input_dev, ABS_MT_TOUCH_MAJOR, touch_major); + input_report_abs(info->input_dev, ABS_MT_PRESSURE, pressure); +// dev_notice(&client->dev,"P [%2d],([%3d],[%4d]) , major=%d, pressure=%d",id, x, y, tmp[4], tmp[5]); + } + } + + input_sync(info->input_dev); + +out: + return; + +} + +static ssize_t mms_fs_read(struct file *fp, char *rbuf, size_t cnt, loff_t *fpos) +{ + struct mms_ts_info *info = fp->private_data; + struct i2c_client *client = info->client; + int ret = 0; + + switch (info->log.cmd) { + case GET_RX_NUM: + ret = copy_to_user(rbuf, &info->rx_num, 1); + break; + case GET_TX_NUM: + ret = copy_to_user(rbuf, &info->tx_num, 1); + break; + case GET_EVENT_DATA: + mms_event_handler(info); + /* copy data without log marker */ + ret = copy_to_user(rbuf, info->log.data + 1, cnt); + break; + default: + dev_err(&client->dev, "unknown command\n"); + ret = -EFAULT; + break; + } + + return ret; +} + +static ssize_t mms_fs_write(struct file *fp, const char *wbuf, size_t cnt, loff_t *fpos) +{ + struct mms_ts_info *info = fp->private_data; + struct i2c_client *client = info->client; + u8 *buf; + struct i2c_msg msg = { + .addr = client->addr, + .flags = 0, + .len = cnt, + }; + int ret = 0; + + mutex_lock(&info->lock); + + if (!info->enabled) + goto tsp_disabled; + + msg.buf = buf = kzalloc(cnt + 1, GFP_KERNEL); + + if ((buf == NULL) || copy_from_user(buf, wbuf, cnt)) { + dev_err(&client->dev, "failed to read data from user\n"); + ret = -EIO; + goto out; + } + + if (cnt == 1) { + info->log.cmd = *buf; + } else { + if (i2c_transfer(client->adapter, &msg, 1) != 1) { + dev_err(&client->dev, "failed to transfer data\n"); + ret = -EIO; + goto out; + } + } + + ret = 0; + +out: + kfree(buf); +tsp_disabled: + mutex_unlock(&info->lock); + + return ret; +} +/* + * mms_isc_read_status - Check erase state function + */ +static int mms_isc_read_status(struct mms_ts_info *info, u32 val) +{ + struct i2c_client *client = info->client; + u8 cmd = ISC_CMD_READ_STATUS; + u32 result = 0; + int cnt = 100; + int ret = 0; + + do { + i2c_smbus_read_i2c_block_data(client, cmd, 4, (u8 *)&result); + if (result == val) + break; + msleep(1); + } while (--cnt); + + if (!cnt) { + dev_err(&client->dev, + "status read fail. cnt : %d, val : 0x%x != 0x%x\n", + cnt, result, val); + } + return ret; +} + +static int mms_isc_transfer_cmd(struct mms_ts_info *info, int cmd) +{ + struct i2c_client *client = info->client; + struct isc_packet pkt = { ISC_ADDR, cmd }; + struct i2c_msg msg = { + .addr = client->addr, + .flags = 0, + .len = sizeof(struct isc_packet), + .buf = (u8 *)&pkt, + }; + + return (i2c_transfer(client->adapter, &msg, 1) != 1); +} + +/* + * mms_isc_erase_page - ic page erase(1 kbyte) + */ +static int mms_isc_erase_page(struct mms_ts_info *info, int page) +{ + return mms_isc_transfer_cmd(info, ISC_CMD_PAGE_ERASE | page) || + mms_isc_read_status(info, ISC_PAGE_ERASE_DONE | ISC_PAGE_ERASE_ENTER | page); +} + +/* + * mms_isc_enter - isc enter command + */ +static int mms_isc_enter(struct mms_ts_info *info) +{ + return i2c_smbus_write_byte_data(info->client, MMS_CMD_ENTER_ISC, true); +} + +static int mms_isc_exit(struct mms_ts_info *info) +{ + return mms_isc_transfer_cmd(info, ISC_CMD_EXIT); +} + +/* + * mms_flash_section - f/w section(boot,core,config) download func + */ +static int mms_flash_section(struct mms_ts_info *info, struct mms_fw_img *img, const u8 *data) +{ + struct i2c_client *client = info->client; + struct isc_packet *isc_packet; + int ret; + int page, i; + struct i2c_msg msg[2] = { + { + .addr = client->addr, + .flags = 0, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = ISC_XFER_LEN, + }, + }; + int ptr = img->offset; + + isc_packet = kzalloc(sizeof(*isc_packet) + ISC_XFER_LEN, GFP_KERNEL); + isc_packet->cmd = ISC_ADDR; + + msg[0].buf = (u8 *)isc_packet; + msg[1].buf = kzalloc(ISC_XFER_LEN, GFP_KERNEL); + + for (page = img->start_page; page <= img->end_page; page++) { + mms_isc_erase_page(info, page); + + for (i = 0; i < ISC_BLOCK_NUM; i++, ptr += ISC_XFER_LEN) { + /* flash firmware */ + u32 tmp = page * 256 + i * (ISC_XFER_LEN / 4); + put_unaligned_le32(tmp, &isc_packet->addr); + msg[0].len = sizeof(struct isc_packet) + ISC_XFER_LEN; + + memcpy(isc_packet->data, data + ptr, ISC_XFER_LEN); + if (i2c_transfer(client->adapter, msg, 1) != 1) + goto i2c_err; + + /* verify firmware */ + tmp |= ISC_CMD_READ; + put_unaligned_le32(tmp, &isc_packet->addr); + msg[0].len = sizeof(struct isc_packet); + + if (i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg)) != ARRAY_SIZE(msg)) + goto i2c_err; + + if (memcmp(isc_packet->data, msg[1].buf, ISC_XFER_LEN)) { +#if FLASH_VERBOSE_DEBUG + print_hex_dump(KERN_ERR, "mms fw wr : ", + DUMP_PREFIX_OFFSET, 16, 1, + isc_packet->data, ISC_XFER_LEN, false); + + print_hex_dump(KERN_ERR, "mms fw rd : ", + DUMP_PREFIX_OFFSET, 16, 1, + msg[1].buf, ISC_XFER_LEN, false); +#endif + dev_err(&client->dev, "flash verify failed\n"); + ret = -1; + goto out; + } + + } + } + + dev_info(&client->dev, "section [%d] update succeeded\n", img->type); + + ret = 0; + goto out; + +i2c_err: + dev_err(&client->dev, "i2c failed @ %s\n", __func__); + ret = -1; + +out: + kfree(isc_packet); + kfree(msg[1].buf); + + return ret; +} + +/* + * get_fw_version - f/w version read + */ +static int get_fw_version(struct i2c_client *client, u8 *buf) +{ + u8 cmd = MMS_FW_VERSION; + struct i2c_msg msg[2] = { + { + .addr = client->addr, + .flags = 0, + .buf = &cmd, + .len = 1, + }, { + .addr = client->addr, + .flags = I2C_M_RD, + .buf = buf, + .len = MAX_SECTION_NUM, + }, + }; + + return (i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg)) != ARRAY_SIZE(msg)); +} + +/* + * mms_flash_fw -flash_section of parent function + * this function is IC version binary version compare and Download + */ +static int mms_flash_fw(const struct firmware *fw, struct mms_ts_info *info) +{ + int ret; + int i; + struct mms_bin_hdr *fw_hdr; + struct mms_fw_img **img; + struct i2c_client *client = info->client; + u8 ver[MAX_SECTION_NUM]; + u8 target[MAX_SECTION_NUM]; + int offset = sizeof(struct mms_bin_hdr); + int retires = 3; + bool update_flag = false; + bool isc_flag = true; + + fw_hdr = (struct mms_bin_hdr *)fw->data; + img = kzalloc(sizeof(*img) * fw_hdr->section_num, GFP_KERNEL); + + while (retires--) { + if (!get_fw_version(client, ver)) + break; + else + mms_reboot(info); + } + + if (retires < 0) { + dev_warn(&client->dev, "failed to obtain ver. info\n"); + isc_flag = false; + memset(ver, 0xff, sizeof(ver)); + } else { + print_hex_dump(KERN_INFO, "mms_ts fw ver : ", DUMP_PREFIX_NONE, 16, 1, + ver, MAX_SECTION_NUM, false); + } + + for (i = 0; i < fw_hdr->section_num; i++, offset += sizeof(struct mms_fw_img)) { + img[i] = (struct mms_fw_img *)(fw->data + offset); + target[i] = img[i]->version; + + if (ver[img[i]->type] != target[i]) { + if(isc_flag){ + mms_isc_enter(info); + isc_flag = false; + } + update_flag = true; + dev_info(&client->dev, + "section [%d] is need to be updated. ver : 0x%x, bin : 0x%x\n", + img[i]->type, ver[img[i]->type], target[i]); + + if ((ret = mms_flash_section(info, img[i], fw->data + fw_hdr->binary_offset))) { + mms_reboot(info); + goto out; + } + //memset(ver, 0xff, sizeof(ver)); + } else { + dev_info(&client->dev, "section [%d] is up to date\n", i); + } + } + + if (update_flag){ + mms_isc_exit(info); + msleep(5); + mms_reboot(info); + } + + + + if (get_fw_version(client, ver)) { + dev_err(&client->dev, "failed to obtain version after flash\n"); + ret = -1; + goto out; + } else { + for (i = 0; i < fw_hdr->section_num; i++) { + if (ver[img[i]->type] != target[i]) { + dev_info(&client->dev, + "version mismatch after flash. [%d] 0x%x != 0x%x\n", + i, ver[img[i]->type], target[i]); + + ret = -1; + goto out; + } + } + } + + ret = 0; + +out: + kfree(img); + + return ret; +} + +static void mms_fw_update_controller(const struct firmware *fw, void * context) +{ + struct mms_ts_info *info = context; + int retires = 3; + int ret; + + if (!fw) { + dev_err(&info->client->dev, "failed to read firmware\n"); + complete_all(&info->init_done); + return; + } + + do { + ret = mms_flash_fw(fw, info); + } while (ret && --retires); + + if (!retires) { + dev_err(&info->client->dev, "failed to flash firmware after retires\n"); + } + mms_ts_config(info); + release_firmware(fw); +} + +/* mms_ts_interrupt - interrupt thread */ +static irqreturn_t mms_ts_interrupt(int irq, void *dev_id) +{ +pr_debug("%s interrupt call %d \n",__func__,__LINE__); + struct mms_ts_info *info = dev_id; + struct i2c_client *client = info->client; + u8 buf[MAX_FINGER_NUM * FINGER_EVENT_SZ] = { 0, }; + int ret; + int sz; + u8 reg = MMS_INPUT_EVENT; + struct i2c_msg msg[] = { + { + .addr = client->addr, + .flags = 0, + .buf = ®, + .len = 1, + }, { + .addr = client->addr, + .flags = I2C_M_RD, + .buf = buf, + }, + }; + + sz = i2c_smbus_read_byte_data(client, MMS_EVENT_PKT_SZ); + msg[1].len = sz; + + ret = i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg)); + + if (ret != ARRAY_SIZE(msg)) { + dev_err(&client->dev, + "failed to read %d bytes of touch data (%d)\n", + sz, ret); + } else { + pr_debug("%s report event %d \n",__func__,__LINE__); + mms_report_input_data(info, sz, buf); + } + + return IRQ_HANDLED; +} + +/* + * mms_ts_input_open - Register input device after call this function + * this function is wait firmware flash wait + */ +static int mms_ts_input_open(struct input_dev *dev) +{ +pr_debug("%s enter1 %d",__func__,__LINE__); + struct mms_ts_info *info = input_get_drvdata(dev); + int ret; +pr_debug("%s enterw %d",__func__,__LINE__); + ret = wait_for_completion_interruptible_timeout(&info->init_done, + msecs_to_jiffies(90 * MSEC_PER_SEC)); + + if (ret > 0) { + if (info->irq != -1) { + pr_debug("%s %d",__func__,__LINE__); + mms_ts_enable(info); + ret = 0; + } else { + ret = -ENXIO; + } + } else { + dev_err(&dev->dev, "error while waiting for device to init\n"); + ret = -ENXIO; + } + + return ret; +} + +/* + * mms_ts_input_close -If device power off state call this function + */ +static void mms_ts_input_close(struct input_dev *dev) +{ + struct mms_ts_info *info = input_get_drvdata(dev); + + mms_ts_disable(info); +} + +/* + * mms_ts_config - f/w check download & irq thread register + */ +static int mms_ts_config(struct mms_ts_info *info) +{ +pr_debug("%s config 1 %d \n",__func__,__LINE__); + struct i2c_client *client = info->client; + int ret; + pr_debug("%s config 2 %d \n",__func__,__LINE__); + ret = request_threaded_irq(client->irq, NULL, mms_ts_interrupt, + IRQF_TRIGGER_LOW | IRQF_ONESHOT, + "mms_ts", info); +pr_debug("%s irq registered %d\n",__func__,__LINE__); + if (ret) { + dev_err(&client->dev, "failed to register irq\n"); + goto out; + } + disable_irq(client->irq); + info->irq = client->irq; + barrier(); + + info->tx_num = i2c_smbus_read_byte_data(client, MMS_TX_NUM); + info->rx_num = i2c_smbus_read_byte_data(client, MMS_RX_NUM); + info->key_num = i2c_smbus_read_byte_data(client, MMS_KEY_NUM); + + dev_info(&client->dev, "Melfas touch controller initialized\n"); + pr_debug("%s reboot called %d\n",__func__,__LINE__); + mms_reboot(info); + complete_all(&info->init_done); + pr_debug("%s init done %d\n",__func__,__LINE__); + +out: + return ret; +} + +/* + * bin_report_read, bin_report_write, bin_sysfs_read, bin_sysfs_write + * melfas debugging function + */ +static ssize_t bin_report_read(struct file *fp, struct kobject *kobj, struct bin_attribute *attr, + char *buf, loff_t off, size_t count) +{ + struct device *dev = container_of(kobj, struct device, kobj); + struct i2c_client *client = to_i2c_client(dev); + struct mms_ts_info *info = i2c_get_clientdata(client); + count = 0; + switch(info->data_cmd){ + case SYS_TXNUM: + dev_info(&info->client->dev, "tx send %d \n",info->tx_num); + buf[0]=info->tx_num; + count =1; + info->data_cmd = 0; + break; + case SYS_RXNUM: + dev_info(&info->client->dev, "rx send%d\n", info->rx_num); + buf[0]=info->rx_num; + count =1; + info->data_cmd = 0; + break; + case SYS_CLEAR: + dev_info(&info->client->dev, "Input clear\n"); + mms_clear_input_data(info); + count = 1; + info->data_cmd = 0; + break; + case SYS_ENABLE: + dev_info(&info->client->dev, "enable_irq \n"); + enable_irq(info->irq); + count = 1; + info->data_cmd = 0; + break; + case SYS_DISABLE: + dev_info(&info->client->dev, "disable_irq \n"); + disable_irq(info->irq); + count = 1; + info->data_cmd = 0; + break; + case SYS_INTERRUPT: + count = gpio_get_value(info->pdata->gpio_resetb); + info->data_cmd = 0; + break; + case SYS_RESET: + mms_reboot(info); + dev_info(&info->client->dev, "read mms_reboot\n"); + count = 1; + info->data_cmd = 0; + break; + } + return count; +} + +static ssize_t bin_report_write(struct file *fp, struct kobject *kobj, struct bin_attribute *attr, + char *buf, loff_t off, size_t count) +{ + struct device *dev = container_of(kobj, struct device, kobj); + struct i2c_client *client = to_i2c_client(dev); + struct mms_ts_info *info = i2c_get_clientdata(client); + if(buf[0]==100){ + mms_report_input_data(info, buf[1], &buf[2]); + }else{ + info->data_cmd=(int)buf[0]; + } + return count; +} +static struct bin_attribute bin_attr_data = { + .attr = { + .name = "report_data", + .mode = S_IRWXUGO, +}, + .size = PAGE_SIZE, + .read = bin_report_read, + .write = bin_report_write, +}; + +static ssize_t bin_sysfs_read(struct file *fp, struct kobject *kobj , struct bin_attribute *attr, + char *buf, loff_t off,size_t count) +{ + struct device *dev = container_of(kobj, struct device, kobj); + struct i2c_client *client = to_i2c_client(dev); + struct mms_ts_info *info = i2c_get_clientdata(client); + struct i2c_msg msg; + info->client = client; + msg.addr = client->addr; + msg.flags = I2C_M_RD ; + msg.buf = (u8 *)buf; + msg.len = count; + + switch (count) + { + case 65535: + mms_reboot(info); + dev_info(&client->dev, "read mms_reboot\n"); + return 0; + + default : + if(i2c_transfer(client->adapter, &msg, 1) != 1){ + dev_err(&client->dev, "failed to transfer data\n"); + mms_reboot(info); + return 0; + } + break; + + } + + return count; +} + +static ssize_t bin_sysfs_write(struct file *fp, struct kobject *kobj, struct bin_attribute *attr, + char *buf, loff_t off, size_t count) +{ + struct device *dev = container_of(kobj, struct device, kobj); + struct i2c_client *client = to_i2c_client(dev); + struct mms_ts_info *info = i2c_get_clientdata(client); + struct i2c_msg msg; + + msg.addr =client->addr; + msg.flags = 0; + msg.buf = (u8 *)buf; + msg.len = count; + + + if(i2c_transfer(client->adapter, &msg, 1) != 1){ + dev_err(&client->dev, "failed to transfer data\n"); + mms_reboot(info); + return 0; + } + + return count; +} + +static struct bin_attribute bin_attr = { + .attr = { + .name = "mms_bin", + .mode = S_IRWXUGO, + }, + .size = MMS_FLASH_PAGE_SZ, + .read = bin_sysfs_read, + .write = bin_sysfs_write, +}; + +static struct file_operations mms_fops = { + .owner = THIS_MODULE, + .open = mms_fs_open, + .release = mms_fs_release, + .read = mms_fs_read, + .write = mms_fs_write, +}; + +//melfas test mode +#ifdef __MMS_TEST_MODE__ +struct mms_ts_test test; +static ssize_t mms_intensity(struct device *dev, struct device_attribute *attr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + int ret; + dev_info(&info->client->dev, "Intensity Test\n"); + if(get_intensity(&test)!=0){ + dev_err(&info->client->dev, "Intensity Test failed\n"); + return -1; + } + ret = snprintf(buf,PAGE_SIZE,"%s\n",test.get_data); + return ret; +} + +static DEVICE_ATTR(intensity, 0666, mms_intensity, NULL); + +static ssize_t mms_cmdelta(struct device *dev, struct device_attribute *attr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + int ret; + dev_info(&info->client->dev, "cm delta Test\n"); + get_cm_test_init(&test); + get_cm_delta(&test); + get_cm_test_exit(&test); + + ret = snprintf(buf,PAGE_SIZE,"%s\n",test.get_data); + memset(test.get_data,0,4096); + return ret; +} +static DEVICE_ATTR(cmdelta, 0666, mms_cmdelta, NULL); + +static ssize_t mms_cmabs(struct device *dev, struct device_attribute *attr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + int ret; + dev_info(&info->client->dev, "cm delta Test\n"); + get_cm_test_init(&test); + get_cm_abs(&test); + get_cm_test_exit(&test); + + + ret = snprintf(buf,PAGE_SIZE,"%s\n",test.get_data); + memset(test.get_data,0,4096); + return ret; +} +static DEVICE_ATTR(cmabs, 0666, mms_cmabs, NULL); + +static ssize_t mms_cmjitter(struct device *dev, struct device_attribute *attr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + int ret; + dev_info(&info->client->dev, "cm delta Test\n"); + get_cm_test_init(&test); + get_cm_jitter(&test); + get_cm_test_exit(&test); + + ret = snprintf(buf,PAGE_SIZE,"%s\n",test.get_data); + memset(test.get_data,0,4096); + return ret; +} +static DEVICE_ATTR(cmjitter, 0666, mms_cmjitter, NULL); + +static struct attribute *mms_attrs[] = { + &dev_attr_intensity.attr, + &dev_attr_cmdelta.attr, + &dev_attr_cmabs.attr, + &dev_attr_cmjitter.attr, + NULL, +}; + +static const struct attribute_group mms_attr_group = { + .attrs = mms_attrs, +}; +#endif + +#ifdef CONFIG_OF +static const u8 mms_ts_keycode[] = {KEY_MENU, KEY_BACK}; +static unsigned int gpio_touchkey_len_en; +static const char * vdd_name; + +static void mms_ts_vdd_enable(bool on) +{ + static struct regulator *ts_vdd = NULL; + + if (ts_vdd == NULL) { + ts_vdd = regulator_get(NULL, vdd_name); + + if (IS_ERR(ts_vdd)) { + pr_err("Get regulator of TSP error!\n"); + return; + } + } + if (on) { + regulator_set_voltage(ts_vdd, 3000000, 3000000); + regulator_enable(ts_vdd); + } + else if (regulator_is_enabled(ts_vdd)) { + regulator_disable(ts_vdd); + } +} + +static void touchkey_led_vdd_enable(bool on) +{ + static int ret = 0; + + if (ret == 0) { + ret = gpio_request(gpio_touchkey_len_en, "touchkey_led_en"); + if (ret) { + printk("%s: request gpio error\n", __func__); + return -EIO; + } + gpio_direction_output(gpio_touchkey_len_en, 0); + ret = 1; + } + gpio_set_value(gpio_touchkey_len_en,on); +} + +static struct mms_ts_platform_data * mms_ts_parse_dt(struct device *dev) +{ + struct mms_ts_platform_data *pdata; + struct device_node *np = dev->of_node; + int ret; + + pdata = kzalloc(sizeof(*pdata), GFP_KERNEL); + if (!pdata) { + dev_err(dev, "Could not allocate struct mms_ts_platform_data"); + return NULL; + } + pdata->gpio_sda = of_get_gpio(np, 0); + if(pdata->gpio_sda < 0){ + dev_err(dev, "fail to get gpio_sda\n"); + goto fail; + } + pdata->gpio_scl = of_get_gpio(np, 1); + if(pdata->gpio_scl < 0){ + dev_err(dev, "fail to get gpio_scl\n"); + goto fail; + } + pdata->gpio_int = of_get_gpio(np, 2); + if(pdata->gpio_int < 0){ + dev_err(dev, "fail to get gpio_int\n"); + goto fail; + } + gpio_touchkey_len_en = of_get_gpio(np, 3); + if(gpio_touchkey_len_en < 0){ + dev_err(dev, "fail to gpio_touchkey_len_en\n"); + goto fail; + } + ret = of_property_read_string(np, "vdd_name", &vdd_name); + if(ret){ + dev_err(dev, "fail to get vdd_name\n"); + goto fail; + } + ret = of_property_read_u32(np, "max_x", &pdata->max_x); + if(ret){ + dev_err(dev, "fail to get max_x\n"); + goto fail; + } + ret = of_property_read_u32(np, "max_y", &pdata->max_y); + if(ret){ + dev_err(dev, "fail to get max_y\n"); + goto fail; + } + ret = of_property_read_u32(np, "use_touchkey", &pdata->use_touchkey); + if(ret){ + dev_err(dev, "fail to get use_touchkey\n"); + goto fail; + } + + pdata->vdd_on = mms_ts_vdd_enable; + pdata->tkey_led_vdd_on = touchkey_led_vdd_enable; + pdata->touchkey_keycode = mms_ts_keycode; + return pdata; +fail: + kfree(pdata); + return NULL; +} +#endif + + +static int __init mms_ts_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); + struct mms_ts_info *info; + struct input_dev *input_dev; + int ret = 0; + const char *fw_name = FW_NAME; + struct mms_ts_platform_data * pdata; + + printk("probe enter \n"); + +#ifdef CONFIG_OF + struct device_node *np = client->dev.of_node; + if (np && !client->dev.platform_data) { + pdata = mms_ts_parse_dt(&client->dev); + if(pdata) { + client->dev.platform_data = pdata; + } else { + return -ENODEV; + } + } +#endif + + if (!i2c_check_functionality(adapter, I2C_FUNC_I2C)) + return -EIO; + + info = kzalloc(sizeof(struct mms_ts_info), GFP_KERNEL); + + + input_dev = input_allocate_device(); + + if (!input_dev) { + dev_err(&client->dev, "Failed to allocated memory\n"); + return -ENOMEM; + } + + info->client = client; + info->input_dev = input_dev; + info->pdata = client->dev.platform_data; + init_completion(&info->init_done); + info->irq = -1; +pr_debug("probe mutex init \n"); + mutex_init(&info->lock); + + client->irq = gpio_to_irq(info->pdata->gpio_int); + input_mt_init_slots(input_dev, MAX_FINGER_NUM,0); + + snprintf(info->phys, sizeof(info->phys), + "%s/input0", dev_name(&client->dev)); + + input_dev->name = "Melfas MMS100s Touch Screen"; + input_dev->phys = info->phys; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + +pr_debug("probe dev init \n"); + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(INPUT_PROP_DIRECT, input_dev->propbit); + + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, MAX_WIDTH, 0, 0); + input_set_abs_params(input_dev, ABS_MT_PRESSURE, 0, MAX_PRESSURE, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_X, 0, info->pdata->max_x, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, 0, info->pdata->max_y, 0, 0); + + input_set_drvdata(input_dev, info); + +#if MMS_HAS_TOUCH_KEY + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(KEY_MENU, input_dev->keybit); + __set_bit(KEY_BACK, input_dev->keybit); +#endif + + ret = input_register_device(input_dev); + if (ret) { + dev_err(&client->dev, "failed to register input dev\n"); + return -EIO; + } + + i2c_set_clientdata(client, info); + + //mms_reboot(info); + mms_ts_enable(info); + info->enabled = true; + ret = request_threaded_irq(client->irq, NULL, mms_ts_interrupt, + IRQF_TRIGGER_LOW | IRQF_ONESHOT," mms_ts", info); + if (ret < 0) { + dev_err(&client->dev, "Failed to register interrupt\n"); + } + info->irq = client->irq; + +pr_debug("%s enable FW %d\n",__func__,__LINE__); + info->fw_name = kstrdup(fw_name, GFP_KERNEL); +pr_debug("%s enable tsp %d\n",__func__,__LINE__); + ret = request_firmware_nowait(THIS_MODULE, true, fw_name, &client->dev, + GFP_KERNEL, info, mms_fw_update_controller); + if (ret) { + dev_err(&client->dev, "failed to schedule firmware update\n"); + return -EIO; + } + + esd_cnt = 0; +#ifdef CONFIG_HAS_EARLYSUSPEND + info->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + info->early_suspend.suspend = mms_ts_early_suspend; + info->early_suspend.resume = mms_ts_late_resume; + register_early_suspend(&info->early_suspend); +#endif +pr_debug("%s ALLOCH %d\n",__func__,__LINE__); + if (alloc_chrdev_region(&info->mms_dev, 0, 1, "mms_ts")) { + dev_err(&client->dev, "failed to allocate device region\n"); + return -ENOMEM; + } +pr_debug("%s FOPS %d\n",__func__,__LINE__); + cdev_init(&info->cdev, &mms_fops); + info->cdev.owner = THIS_MODULE; + + if (cdev_add(&info->cdev, info->mms_dev, 1)) { + dev_err(&client->dev, "failed to add ch dev\n"); + return -EIO; + } +pr_debug("%s CLASS CREATE %d\n",__func__,__LINE__); + info->class = class_create(THIS_MODULE, "mms_ts"); + device_create(info->class, NULL, info->mms_dev, NULL, "mms_ts"); + + if(sysfs_create_bin_file(&client->dev.kobj ,&bin_attr)){ + dev_err(&client->dev, "failed to create sysfs symlink\n"); + return -EAGAIN; + } + + if(sysfs_create_bin_file(&client->dev.kobj ,&bin_attr_data)){ + dev_err(&client->dev, "failed to create sysfs symlink\n"); + return -EAGAIN; + } + + if (sysfs_create_link(NULL, &client->dev.kobj, "mms_ts")) { + dev_err(&client->dev, "failed to create sysfs symlink\n"); + return -EAGAIN; + } +#ifdef __MMS_TEST_MODE__ + if (sysfs_create_group(&client->dev.kobj, &mms_attr_group)) { + dev_err(&client->dev, "failed to create sysfs group\n"); + return -EAGAIN; + } + test.get_data = kzalloc(4096, GFP_KERNEL); + test.client = client; + test.pdata = info->pdata; + test.tx_num = info->tx_num; + test.rx_num = info->rx_num; + test.key_num = info->key_num; + test.irq = info->irq; +#endif + dev_notice(&client->dev, "mms dev initialized\n"); + + return 0; +} + +static int __exit mms_ts_remove(struct i2c_client *client) +{ + struct mms_ts_info *info = i2c_get_clientdata(client); + + if (info->irq >= 0) + free_irq(info->irq, info); + +#ifdef __MMS_TEST_MODE__ + sysfs_remove_group(&info->client->dev.kobj, &mms_attr_group); + kfree(test.get_data); +#endif + sysfs_remove_link(NULL, "mms_ts"); + sysfs_remove_bin_file(&client->dev.kobj, &bin_attr); + sysfs_remove_bin_file(&client->dev.kobj, &bin_attr_data); + input_unregister_device(info->input_dev); + unregister_early_suspend(&info->early_suspend); + + device_destroy(info->class, info->mms_dev); + class_destroy(info->class); +#ifdef CONFIG_OF + kfree(info->pdata); +#endif + kfree(info->fw_name); + kfree(info); + + return 0; +} + +#if defined(CONFIG_PM) || defined(CONFIG_HAS_EARLYSUSPEND) +static int mms_ts_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct mms_ts_info *info = i2c_get_clientdata(client); + + mutex_lock(&info->input_dev->mutex); + + if (info->input_dev->users) { + mms_ts_disable(info); + mms_clear_input_data(info); + } + + mutex_unlock(&info->input_dev->mutex); + return 0; + +} + +static int mms_ts_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct mms_ts_info *info = i2c_get_clientdata(client); + + mutex_lock(&info->input_dev->mutex); + + if (info->input_dev->users) + mms_ts_enable(info); + + mutex_unlock(&info->input_dev->mutex); + + return 0; +} +#endif + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void mms_ts_early_suspend(struct early_suspend *h) +{ + struct mms_ts_info *info; + info = container_of(h, struct mms_ts_info, early_suspend); + mms_ts_suspend(&info->client->dev); +} + +static void mms_ts_late_resume(struct early_suspend *h) +{ + struct mms_ts_info *info; + info = container_of(h, struct mms_ts_info, early_suspend); + mms_ts_resume(&info->client->dev); +} +#endif + +#if defined(CONFIG_PM) && !defined(CONFIG_HAS_EARLYSUSPEND) +static const struct dev_pm_ops mms_ts_pm_ops = { + .suspend = mms_ts_suspend, + .resume = mms_ts_resume, +} +#endif + +static const struct i2c_device_id mms_ts_id[] = { + {"mms_ts", 0}, + { } +}; +MODULE_DEVICE_TABLE(i2c, mms_ts_id); + +#ifdef CONFIG_OF +static const struct of_device_id mms_ts_of_match[] = { + { .compatible = "Melfas,mms_ts", }, + { } +}; +#endif + +static struct i2c_driver mms_ts_driver = { + .probe = mms_ts_probe, + .remove = mms_ts_remove, + .driver = { + .name = "mms_ts", +#if defined(CONFIG_PM) && !defined(CONFIG_HAS_EARLYSUSPEND) + .pm = &mms_ts_pm_ops, +#endif +#ifdef CONFIG_OF + .of_match_table = mms_ts_of_match, +#endif + }, + .id_table = mms_ts_id, +}; + +static int __init mms_ts_init(void) +{ + return i2c_add_driver(&mms_ts_driver); +} + +static void __exit mms_ts_exit(void) +{ + return i2c_del_driver(&mms_ts_driver); +} + +module_init(mms_ts_init); +module_exit(mms_ts_exit); + +MODULE_VERSION("1.6.1"); +MODULE_DESCRIPTION("Touchscreen driver for MELFAS MMS-100s series"); +MODULE_LICENSE("GPL"); + diff --git a/drivers/input/touchscreen/mms114.c b/drivers/input/touchscreen/mms114.c new file mode 100644 index 00000000..1443532f --- /dev/null +++ b/drivers/input/touchscreen/mms114.c @@ -0,0 +1,596 @@ +/* + * Copyright (C) 2012 Samsung Electronics Co.Ltd + * Author: Joonyoung Shim + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Write only registers */ +#define MMS114_MODE_CONTROL 0x01 +#define MMS114_OPERATION_MODE_MASK 0xE +#define MMS114_ACTIVE (1 << 1) + +#define MMS114_XY_RESOLUTION_H 0x02 +#define MMS114_X_RESOLUTION 0x03 +#define MMS114_Y_RESOLUTION 0x04 +#define MMS114_CONTACT_THRESHOLD 0x05 +#define MMS114_MOVING_THRESHOLD 0x06 + +/* Read only registers */ +#define MMS114_PACKET_SIZE 0x0F +#define MMS114_INFOMATION 0x10 +#define MMS114_TSP_REV 0xF0 + +/* Minimum delay time is 50us between stop and start signal of i2c */ +#define MMS114_I2C_DELAY 50 + +/* 200ms needs after power on */ +#define MMS114_POWERON_DELAY 200 + +/* Touchscreen absolute values */ +#define MMS114_MAX_AREA 0xff + +#define MMS114_MAX_TOUCH 10 +#define MMS114_PACKET_NUM 8 + +/* Touch type */ +#define MMS114_TYPE_NONE 0 +#define MMS114_TYPE_TOUCHSCREEN 1 +#define MMS114_TYPE_TOUCHKEY 2 + +struct mms114_data { + struct i2c_client *client; + struct input_dev *input_dev; + struct regulator *core_reg; + struct regulator *io_reg; + const struct mms114_platform_data *pdata; + + /* Use cache data for mode control register(write only) */ + u8 cache_mode_control; +}; + +struct mms114_touch { + u8 id:4, reserved_bit4:1, type:2, pressed:1; + u8 x_hi:4, y_hi:4; + u8 x_lo; + u8 y_lo; + u8 width; + u8 strength; + u8 reserved[2]; +} __packed; + +static int __mms114_read_reg(struct mms114_data *data, unsigned int reg, + unsigned int len, u8 *val) +{ + struct i2c_client *client = data->client; + struct i2c_msg xfer[2]; + u8 buf = reg & 0xff; + int error; + + if (reg <= MMS114_MODE_CONTROL && reg + len > MMS114_MODE_CONTROL) + BUG(); + + /* Write register: use repeated start */ + xfer[0].addr = client->addr; + xfer[0].flags = I2C_M_TEN | I2C_M_NOSTART; + xfer[0].len = 1; + xfer[0].buf = &buf; + + /* Read data */ + xfer[1].addr = client->addr; + xfer[1].flags = I2C_M_RD; + xfer[1].len = len; + xfer[1].buf = val; + + error = i2c_transfer(client->adapter, xfer, 2); + if (error != 2) { + dev_err(&client->dev, + "%s: i2c transfer failed (%d)\n", __func__, error); + return error < 0 ? error : -EIO; + } + udelay(MMS114_I2C_DELAY); + + return 0; +} + +static int mms114_read_reg(struct mms114_data *data, unsigned int reg) +{ + u8 val; + int error; + + if (reg == MMS114_MODE_CONTROL) + return data->cache_mode_control; + + error = __mms114_read_reg(data, reg, 1, &val); + return error < 0 ? error : val; +} + +static int mms114_write_reg(struct mms114_data *data, unsigned int reg, + unsigned int val) +{ + struct i2c_client *client = data->client; + u8 buf[2]; + int error; + + buf[0] = reg & 0xff; + buf[1] = val & 0xff; + + error = i2c_master_send(client, buf, 2); + if (error != 2) { + dev_err(&client->dev, + "%s: i2c send failed (%d)\n", __func__, error); + return error < 0 ? error : -EIO; + } + udelay(MMS114_I2C_DELAY); + + if (reg == MMS114_MODE_CONTROL) + data->cache_mode_control = val; + + return 0; +} + +static void mms114_process_mt(struct mms114_data *data, struct mms114_touch *touch) +{ + const struct mms114_platform_data *pdata = data->pdata; + struct i2c_client *client = data->client; + struct input_dev *input_dev = data->input_dev; + unsigned int id; + unsigned int x; + unsigned int y; + + if (touch->id > MMS114_MAX_TOUCH) { + dev_err(&client->dev, "Wrong touch id (%d)\n", touch->id); + return; + } + + if (touch->type != MMS114_TYPE_TOUCHSCREEN) { + dev_err(&client->dev, "Wrong touch type (%d)\n", touch->type); + return; + } + + id = touch->id - 1; + x = touch->x_lo | touch->x_hi << 8; + y = touch->y_lo | touch->y_hi << 8; + if (x > pdata->x_size || y > pdata->y_size) { + dev_dbg(&client->dev, + "Wrong touch coordinates (%d, %d)\n", x, y); + return; + } + + if (pdata->x_invert) + x = pdata->x_size - x; + if (pdata->y_invert) + y = pdata->y_size - y; + + dev_dbg(&client->dev, + "id: %d, type: %d, pressed: %d, x: %d, y: %d, width: %d, strength: %d\n", + id, touch->type, touch->pressed, + x, y, touch->width, touch->strength); + + input_mt_slot(input_dev, id); + input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, touch->pressed); + + if (touch->pressed) { + input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, touch->width); + input_report_abs(input_dev, ABS_MT_POSITION_X, x); + input_report_abs(input_dev, ABS_MT_POSITION_Y, y); + input_report_abs(input_dev, ABS_MT_PRESSURE, touch->strength); + } +} + +static irqreturn_t mms114_interrupt(int irq, void *dev_id) +{ + struct mms114_data *data = dev_id; + struct input_dev *input_dev = data->input_dev; + struct mms114_touch touch[MMS114_MAX_TOUCH]; + int packet_size; + int touch_size; + int index; + int error; + + mutex_lock(&input_dev->mutex); + if (!input_dev->users) { + mutex_unlock(&input_dev->mutex); + goto out; + } + mutex_unlock(&input_dev->mutex); + + packet_size = mms114_read_reg(data, MMS114_PACKET_SIZE); + if (packet_size <= 0) + goto out; + + touch_size = packet_size / MMS114_PACKET_NUM; + + error = __mms114_read_reg(data, MMS114_INFOMATION, packet_size, + (u8 *)touch); + if (error < 0) + goto out; + + for (index = 0; index < touch_size; index++) + mms114_process_mt(data, touch + index); + + input_mt_report_pointer_emulation(data->input_dev, true); + input_sync(data->input_dev); + +out: + return IRQ_HANDLED; +} + +static int mms114_set_active(struct mms114_data *data, bool active) +{ + int val; + + val = mms114_read_reg(data, MMS114_MODE_CONTROL); + if (val < 0) + return val; + + val &= ~MMS114_OPERATION_MODE_MASK; + + /* If active is false, sleep mode */ + if (active) + val |= MMS114_ACTIVE; + + return mms114_write_reg(data, MMS114_MODE_CONTROL, val); +} + +static int mms114_get_version(struct mms114_data *data) +{ + struct device *dev = &data->client->dev; + u8 buf[6]; + int error; + + error = __mms114_read_reg(data, MMS114_TSP_REV, 6, buf); + if (error < 0) + return error; + + dev_info(dev, "TSP Rev: 0x%x, HW Rev: 0x%x, Firmware Ver: 0x%x\n", + buf[0], buf[1], buf[3]); + + return 0; +} + +static int mms114_setup_regs(struct mms114_data *data) +{ + const struct mms114_platform_data *pdata = data->pdata; + int val; + int error; + + error = mms114_get_version(data); + if (error < 0) + return error; + + error = mms114_set_active(data, true); + if (error < 0) + return error; + + val = (pdata->x_size >> 8) & 0xf; + val |= ((pdata->y_size >> 8) & 0xf) << 4; + error = mms114_write_reg(data, MMS114_XY_RESOLUTION_H, val); + if (error < 0) + return error; + + val = pdata->x_size & 0xff; + error = mms114_write_reg(data, MMS114_X_RESOLUTION, val); + if (error < 0) + return error; + + val = pdata->y_size & 0xff; + error = mms114_write_reg(data, MMS114_Y_RESOLUTION, val); + if (error < 0) + return error; + + if (pdata->contact_threshold) { + error = mms114_write_reg(data, MMS114_CONTACT_THRESHOLD, + pdata->contact_threshold); + if (error < 0) + return error; + } + + if (pdata->moving_threshold) { + error = mms114_write_reg(data, MMS114_MOVING_THRESHOLD, + pdata->moving_threshold); + if (error < 0) + return error; + } + + return 0; +} + +static int mms114_start(struct mms114_data *data) +{ + struct i2c_client *client = data->client; + int error; + + error = regulator_enable(data->core_reg); + if (error) { + dev_err(&client->dev, "Failed to enable avdd: %d\n", error); + return error; + } + + error = regulator_enable(data->io_reg); + if (error) { + dev_err(&client->dev, "Failed to enable vdd: %d\n", error); + regulator_disable(data->core_reg); + return error; + } + + mdelay(MMS114_POWERON_DELAY); + + error = mms114_setup_regs(data); + if (error < 0) { + regulator_disable(data->io_reg); + regulator_disable(data->core_reg); + return error; + } + + if (data->pdata->cfg_pin) + data->pdata->cfg_pin(true); + + enable_irq(client->irq); + + return 0; +} + +static void mms114_stop(struct mms114_data *data) +{ + struct i2c_client *client = data->client; + int error; + + disable_irq(client->irq); + + if (data->pdata->cfg_pin) + data->pdata->cfg_pin(false); + + error = regulator_disable(data->io_reg); + if (error) + dev_warn(&client->dev, "Failed to disable vdd: %d\n", error); + + error = regulator_disable(data->core_reg); + if (error) + dev_warn(&client->dev, "Failed to disable avdd: %d\n", error); +} + +static int mms114_input_open(struct input_dev *dev) +{ + struct mms114_data *data = input_get_drvdata(dev); + + return mms114_start(data); +} + +static void mms114_input_close(struct input_dev *dev) +{ + struct mms114_data *data = input_get_drvdata(dev); + + mms114_stop(data); +} + +#ifdef CONFIG_OF +static struct mms114_platform_data *mms114_parse_dt(struct device *dev) +{ + struct mms114_platform_data *pdata; + struct device_node *np = dev->of_node; + + if (!np) + return NULL; + + pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL); + if (!pdata) { + dev_err(dev, "failed to allocate platform data\n"); + return NULL; + } + + if (of_property_read_u32(np, "x-size", &pdata->x_size)) { + dev_err(dev, "failed to get x-size property\n"); + return NULL; + }; + + if (of_property_read_u32(np, "y-size", &pdata->y_size)) { + dev_err(dev, "failed to get y-size property\n"); + return NULL; + }; + + of_property_read_u32(np, "contact-threshold", + &pdata->contact_threshold); + of_property_read_u32(np, "moving-threshold", + &pdata->moving_threshold); + + if (of_find_property(np, "x-invert", NULL)) + pdata->x_invert = true; + if (of_find_property(np, "y-invert", NULL)) + pdata->y_invert = true; + + return pdata; +} +#else +static inline struct mms114_platform_data *mms114_parse_dt(struct device *dev) +{ + return NULL; +} +#endif + +static int mms114_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + const struct mms114_platform_data *pdata; + struct mms114_data *data; + struct input_dev *input_dev; + int error; + + pdata = dev_get_platdata(&client->dev); + if (!pdata) + pdata = mms114_parse_dt(&client->dev); + + if (!pdata) { + dev_err(&client->dev, "Need platform data\n"); + return -EINVAL; + } + + if (!i2c_check_functionality(client->adapter, + I2C_FUNC_PROTOCOL_MANGLING)) { + dev_err(&client->dev, + "Need i2c bus that supports protocol mangling\n"); + return -ENODEV; + } + + data = devm_kzalloc(&client->dev, sizeof(struct mms114_data), + GFP_KERNEL); + input_dev = devm_input_allocate_device(&client->dev); + if (!data || !input_dev) { + dev_err(&client->dev, "Failed to allocate memory\n"); + return -ENOMEM; + } + + data->client = client; + data->input_dev = input_dev; + data->pdata = pdata; + + input_dev->name = "MELPAS MMS114 Touchscreen"; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + input_dev->open = mms114_input_open; + input_dev->close = mms114_input_close; + + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(BTN_TOUCH, input_dev->keybit); + input_set_abs_params(input_dev, ABS_X, 0, data->pdata->x_size, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 0, data->pdata->y_size, 0, 0); + + /* For multi touch */ + input_mt_init_slots(input_dev, MMS114_MAX_TOUCH, 0); + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, + 0, MMS114_MAX_AREA, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_X, + 0, data->pdata->x_size, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, + 0, data->pdata->y_size, 0, 0); + input_set_abs_params(input_dev, ABS_MT_PRESSURE, 0, 255, 0, 0); + + input_set_drvdata(input_dev, data); + i2c_set_clientdata(client, data); + + data->core_reg = devm_regulator_get(&client->dev, "avdd"); + if (IS_ERR(data->core_reg)) { + error = PTR_ERR(data->core_reg); + dev_err(&client->dev, + "Unable to get the Core regulator (%d)\n", error); + return error; + } + + data->io_reg = devm_regulator_get(&client->dev, "vdd"); + if (IS_ERR(data->io_reg)) { + error = PTR_ERR(data->io_reg); + dev_err(&client->dev, + "Unable to get the IO regulator (%d)\n", error); + return error; + } + + error = devm_request_threaded_irq(&client->dev, client->irq, NULL, + mms114_interrupt, IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + dev_name(&client->dev), data); + if (error) { + dev_err(&client->dev, "Failed to register interrupt\n"); + return error; + } + disable_irq(client->irq); + + error = input_register_device(data->input_dev); + if (error) { + dev_err(&client->dev, "Failed to register input device\n"); + return error; + } + + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int mms114_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct mms114_data *data = i2c_get_clientdata(client); + struct input_dev *input_dev = data->input_dev; + int id; + + /* Release all touch */ + for (id = 0; id < MMS114_MAX_TOUCH; id++) { + input_mt_slot(input_dev, id); + input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, false); + } + + input_mt_report_pointer_emulation(input_dev, true); + input_sync(input_dev); + + mutex_lock(&input_dev->mutex); + if (input_dev->users) + mms114_stop(data); + mutex_unlock(&input_dev->mutex); + + return 0; +} + +static int mms114_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct mms114_data *data = i2c_get_clientdata(client); + struct input_dev *input_dev = data->input_dev; + int error; + + mutex_lock(&input_dev->mutex); + if (input_dev->users) { + error = mms114_start(data); + if (error < 0) { + mutex_unlock(&input_dev->mutex); + return error; + } + } + mutex_unlock(&input_dev->mutex); + + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(mms114_pm_ops, mms114_suspend, mms114_resume); + +static const struct i2c_device_id mms114_id[] = { + { "mms114", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, mms114_id); + +#ifdef CONFIG_OF +static struct of_device_id mms114_dt_match[] = { + { .compatible = "melfas,mms114" }, + { } +}; +#endif + +static struct i2c_driver mms114_driver = { + .driver = { + .name = "mms114", + .owner = THIS_MODULE, + .pm = &mms114_pm_ops, + .of_match_table = of_match_ptr(mms114_dt_match), + }, + .probe = mms114_probe, + .id_table = mms114_id, +}; + +module_i2c_driver(mms114_driver); + +/* Module information */ +MODULE_AUTHOR("Joonyoung Shim "); +MODULE_DESCRIPTION("MELFAS mms114 Touchscreen driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/mms134s/Makefile b/drivers/input/touchscreen/mms134s/Makefile new file mode 100644 index 00000000..a4a9939b --- /dev/null +++ b/drivers/input/touchscreen/mms134s/Makefile @@ -0,0 +1,6 @@ +# +# Makefile for the input core drivers. +# + +# Each configuration option enables a list of files. +obj-$(CONFIG_TOUCHSCREEN_MMS134S) += mms134s.o diff --git a/drivers/input/touchscreen/mms134s/mms134s.c b/drivers/input/touchscreen/mms134s/mms134s.c new file mode 100644 index 00000000..883ffdd6 --- /dev/null +++ b/drivers/input/touchscreen/mms134s/mms134s.c @@ -0,0 +1,1134 @@ +/* + * Copyright (C) 2014 Samsung Electronics Co. Ltd. All Rights Reserved. + * + * 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 +#ifdef CONFIG_OF +#include +#include +#endif +#ifdef CONFIG_PM_RUNTIME +#include +#endif + +#include "mms134s_fw.h" + +//#define dev_info(fmt, args...) printk(KERN_DEBUG "[TSP] %s: " fmt,__func__,## args) +//#define dev_err(fmt, args...) printk(KERN_DEBUG "[TSP] err: %s: " fmt,__func__,## args) +//#ifdef CONFIG_OF +//static struct regulator *mms_vdd_regulator; +static bool power_onoff_state = false; + +static int mms_setup_power(struct mms_info *info, bool onoff) +{ + + int ret=0; + struct regulator *touch_regulator_1v8 = NULL; + struct regulator *touch_regulator_3v3 = NULL; + + pr_info("[TSP] %s \n", __func__); + + touch_regulator_1v8 = regulator_get(NULL,"vddsim2"); + if (IS_ERR(touch_regulator_1v8)) { + touch_regulator_1v8 = NULL; + pr_info("get touch_regulator_1v8 regulator error\n"); + return; + } + + touch_regulator_3v3 = regulator_get(NULL,"vddcon"); + + if (IS_ERR(touch_regulator_3v3)) { + touch_regulator_1v8 = NULL; + pr_info("get touch_regulator_3v3 regulator error\n"); + return; + } + + if(onoff) { + regulator_set_voltage(touch_regulator_1v8, 1800000, 1800000); + ret = regulator_enable(touch_regulator_1v8); + if (ret) { + pr_info(KERN_ERR "%s: touch_regulator_1v8 enable failed (%d)\n",__func__, ret); + } + + regulator_set_voltage(touch_regulator_3v3, 3000000, 3000000); + ret = regulator_enable(touch_regulator_3v3); + if (ret) { + pr_info(KERN_ERR "%s: touch_regulator_3v3 enable failed (%d)\n",__func__, ret); + } + } + else + { + ret = regulator_disable(touch_regulator_1v8); + if (ret) { + pr_info(KERN_ERR "%s: touch_regulator_3v0 disable failed (%d)\n",__func__, ret); + } + + ret = regulator_disable(touch_regulator_3v3); + if (ret) { + pr_info(KERN_ERR "%s: touch_regulator_3v0 disable failed (%d)\n",__func__, ret); + } + } + + +#if 0 + struct device dev = info->client->dev; + int min_uv, max_uv; + int ret = 0; + + if (onoff) { + if (!mms_vdd_regulator) { + mms_vdd_regulator = regulator_get(&dev, "vddcammot"); + + if (IS_ERR(mms_vdd_regulator)) { + ret = PTR_ERR(mms_vdd_regulator); + dev_err(&dev, "Failed to get mms_vdd_regulator (%d)\n", ret); + printk("[TSP] mms_setup_power Failed to get mms_vdd_regulator (%d)\n", ret); + return ret; + } + + min_uv = max_uv = info->pdata->vdd_regulator_volt; + printk("[TSP] mms_setup_power before regulator_set_voltage \n"); + ret = regulator_set_voltage(mms_vdd_regulator, min_uv, max_uv); + if (ret < 0) { + dev_err(&dev, "Failed to set mms_vdd_regulator to \ + %d, %d uV (%d)\n", min_uv, max_uv, ret); + printk("[TSP] mms_setup_power Failed to set regulator_set_voltage (%d)\n", ret); + regulator_put(mms_vdd_regulator); + return ret; + } + + dev_info(&dev, "Set mms_vdd_regulator to %d, %d uV\n", + min_uv, max_uv); + printk("[TSP] mms_setup_power Set mms_vdd_regulator to %d, %d uV\n",min_uv, max_uv); + } + } + else { + if (mms_vdd_regulator) { + regulator_put(mms_vdd_regulator); + dev_info(&dev, "Put mms_vdd_regulator\n"); + printk( "[TSP] mms_setup_power Put mms_vdd_regulator\n"); + } + } +#endif + return ret; +} + +static int mms_onoff_power(struct mms_info *info, bool onoff) +{ + int ret = 0; + + if (onoff != power_onoff_state) + { + pr_info("%s()\n", __func__); + msleep(5); + + ret = mms_setup_power(info, onoff); + msleep(100); + power_onoff_state = onoff; + + } +#if 0 + struct device dev = info->client->dev; + int ret = 0; + + if (!mms_vdd_regulator) { + dev_err(&dev, "%s : no regulator\n", __func__); + printk("[TSP] %s : no regulator\n", __func__); + return -1; + } + + if (onoff) + regulator_enable(mms_vdd_regulator); + else + regulator_disable(mms_vdd_regulator); + + dev_info(&dev, "%s : %s\n", __func__, (onoff) ? "on" : "off"); + printk("[TSP]%s : %s\n", __func__, (onoff) ? "on" : "off"); +#endif + + return ret; +} +//#endif + +/* mms_enable - wake-up func (VDD on) */ +static void mms_enable(struct mms_info *info) +{ + if (info->enabled) { + dev_err(&info->client->dev, "%s : Already enable\n", __func__); + return; + } + + /* use vdd control instead */ + mms_onoff_power(info, true); + msleep(50); + + info->enabled = true; + enable_irq(info->irq); +} + +/* mms_disable - sleep func (VDD off) */ +static void mms_disable(struct mms_info *info) +{ + if (!info->enabled) { + dev_err(&info->client->dev, "%s : Already disable\n", __func__); + return; + } + + i2c_smbus_write_byte_data(info->client, MMS_POWER_CONTROL, 1); + + disable_irq(info->irq); + + /* use vdd control instead */ + msleep(50); + mms_onoff_power(info, false); + msleep(50); + + info->enabled = false; +} + +/* mms_reboot - IC reset */ +static void mms_reboot(struct mms_info *info) +{ + struct i2c_adapter *adapter = to_i2c_adapter(info->client->dev.parent); + + i2c_smbus_write_byte_data(info->client, MMS_POWER_CONTROL, 1); + i2c_lock_adapter(adapter); + + msleep(50); + mms_onoff_power(info, false); + msleep(150); + + mms_onoff_power(info, true); + msleep(50); + + i2c_unlock_adapter(adapter); +} + +/* + * mms_clear_input_data - all finger point release + */ +static void mms_clear_input_data(struct mms_info *info) +{ + int i; + + for (i = 0; i < MAX_FINGER_NUM; i++) { + input_mt_slot(info->input_dev, i); + + if (!info->finger_state[i]) + continue; + + info->finger_state[i] = false; + input_mt_report_slot_state(info->input_dev, MT_TOOL_FINGER, false); + dev_info(&info->client->dev, "[R][%d] : forced clear\n", i); + } + + input_sync(info->input_dev); + + return; +} + +/* mms_report_input_data - The position of a touch send to platfrom */ +static void mms_report_input_data(struct mms_info *info, u8 sz, u8 *buf) +{ + struct i2c_client *client = info->client; + static int esd_cnt = 0; + int x, y, id, i; + int major; + int pressure; + int key_code; + int key_state; + u8 *tmp; + + if (buf[0] == MMS_LOG_EVENT) { + dev_info(&client->dev, "TSP Log evnet (%d)\n", buf[1]); + goto out; + } else if (buf[0] == MMS_NOTIFY_EVENT) { + dev_info(&client->dev, "TSP mode changed (%d)\n", buf[1]); + goto out; + } else if (buf[0] == MMS_ERROR_EVENT) { + dev_info(&client->dev, "Error detected, restarting TSP\n"); + mms_clear_input_data(info); + mms_reboot(info); + esd_cnt++; + + if (esd_cnt >= ESD_DETECT_COUNT) { + i2c_smbus_write_byte_data(info->client, MMS_MODE_CONTROL, 0x04); + esd_cnt =0; + } + + goto out; + } + + for (i = 0; i < sz; i += FINGER_EVENT_SZ) { + tmp = buf + i; + esd_cnt = 0; + dev_info(&client->dev, "%d's event is 0x%x\n", i, tmp[0]); + if (tmp[0] & MMS_TOUCH_KEY_EVENT) { + switch (tmp[0] & 0xf) { + case 1: + key_code = KEY_MENU; + break; + case 2: + key_code = KEY_BACK; + break; + default: + dev_err(&client->dev, "Unknown key type\n"); + goto out; + } + + key_state = (tmp[0] & 0x80) ? 1 : 0; + input_report_key(info->input_dev, key_code, key_state); +#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP + dev_info(&client->dev, "key[%3d] is %s\n", key_code, + key_state ? "pressed" : "releaseed"); +#else + dev_info(&client->dev, + "key is %s\n", key_state ? "pressed" : "releaseed"); +#endif + + } else { + id = (tmp[0] & 0xf) - 1; + + x = tmp[2] | ((tmp[1] & 0xf) << 8); + y = tmp[3] | (((tmp[1] >> 4 ) & 0xf) << 8); + major = tmp[4]; + pressure = tmp[5]; + + input_mt_slot(info->input_dev, id); + + if (!(tmp[0] & 0x80)) { + if (info->finger_state[id]) { + info->finger_state[id] = false; + input_mt_report_slot_state(info->input_dev, + MT_TOOL_FINGER, false); + +#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP + dev_info(&client->dev, "[R][%d]: X[%d], Y[%d]\n", id, x, y); +#else + dev_info(&client->dev, "[R][%d]\n"); +#endif + } + continue; + } + + input_mt_report_slot_state(info->input_dev, MT_TOOL_FINGER, true); + input_report_abs(info->input_dev, ABS_MT_POSITION_X, x); + input_report_abs(info->input_dev, ABS_MT_POSITION_Y, y); + input_report_abs(info->input_dev, ABS_MT_TOUCH_MAJOR, major); + input_report_abs(info->input_dev, ABS_MT_PRESSURE, pressure); + + if (!info->finger_state[id]) { + info->finger_state[id] = true; +#ifndef CONFIG_SAMSUNG_PRODUCT_SHIP + dev_info(&client->dev, + "[P][%d]: X[%d], Y[%d], W[%d], Z[%d]\n", + id, x, y, major, pressure); +#else + dev_info(&client->dev, "[P][%d]\n",id); +#endif + } + } + } + + input_sync(info->input_dev); + +out: + dev_info(&client->dev, "end of %s\n", __func__); + return; +} + +/* mms_interrupt - interrupt thread */ +static irqreturn_t mms_interrupt(int irq, void *dev_id) +{ + struct mms_info *info = (struct mms_info *)dev_id; + struct i2c_client *client = info->client; + u8 reg = MMS_EVENT_PKT; + u8 buf[MAX_FINGER_NUM * FINGER_EVENT_SZ] = {0, }; + int ret, sz; + dev_info(&client->dev, "[TSP] %s: irq=%d", __func__,irq); + struct i2c_msg msg[] = { + { + .addr = client->addr, + .flags = 0, + .buf = ®, + .len = 1, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .buf = buf, + }, + }; + + dev_info(&client->dev,"[TSP] %s client:", __func__, client+MMS_EVENT_PKT_SZ); + sz = i2c_smbus_read_byte_data(client, MMS_EVENT_PKT_SZ); + if (sz < 0) { + dev_err(&client->dev, + "%s : Failed to read event packet size(%d)\n", __func__, sz); + goto out; + } + msg[1].len = sz; + + ret = i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg)); + dev_info(&client->dev, "event is 0x%x, packet size is %d\n", buf[0], sz); + if (ret != ARRAY_SIZE(msg)) + dev_err(&client->dev, + "Failed to read %d bytes of touch data (%d)\n", sz, ret); + else + mms_report_input_data(info, sz, buf); + +out: + dev_info(&client->dev, "end of %s\n", __func__); + return IRQ_HANDLED; +} +/* +static int mms_usb_switch_nofify(struct notifer_block *nb, unsigned long val, + void *dev) +{ + struct mms_info *info = container_of(nb, struct mms_info, nb); + struct i2c_client *client = info->client; + + dev_info(&client->dev, "%s : val = %d\n", __func__, val); +} +*/ +static int mms_config(struct mms_info *info) +{ + struct i2c_client *client = info->client; + int ret = 0; + +/* info->nb.notifier_call = mms_usb_switch_nofify; + pxa_usb_register_notifier(PXA_USB_DEV_OTG, &info->nb);*/ + + info->enabled = true; + +out: + return ret; +} + +/* + * mms_isc_read_status - Check erase state function + */ +static int mms_isc_read_status(struct mms_info *info, u32 val) +{ + struct i2c_client *client = info->client; + u8 cmd = ISC_CMD_READ_STATUS; + u32 result = 0; + int cnt = 100; + int ret = 0; + + do { + i2c_smbus_read_i2c_block_data(client, cmd, 4, (u8 *)&result); + + if (result == val) + break; + + msleep(1); + } while (--cnt); + + if (!cnt) { + dev_err(&client->dev, + "Failed to read status. cnt : %d, val : 0x%x != 0x%x\n", + cnt, result, val); + } + + return ret; +} + +static int mms_isc_transfer_cmd(struct mms_info *info, int cmd) +{ + struct i2c_client *client = info->client; + struct isc_packet pkt = { ISC_ADDR, cmd }; + struct i2c_msg msg = { + .addr = client->addr, + .flags = 0, + .len = sizeof(struct isc_packet), + .buf = (u8 *)&pkt, + }; + + return i2c_transfer(client->adapter, &msg, 1) != 1; +} + +/* + * mms_isc_erase_page - ic page erase(1 kbyte) + */ +static int mms_isc_erase_page(struct mms_info *info, int page) +{ + return mms_isc_transfer_cmd(info, ISC_CMD_PAGE_ERASE | page) || + mms_isc_read_status( + info, ISC_PAGE_ERASE_DONE | ISC_PAGE_ERASE_ENTER | page + ); +} + +/* + * mms_isc_enter - isc enter command + */ +static int mms_isc_enter(struct mms_info *info) +{ + return i2c_smbus_write_byte_data(info->client, MMS_CMD_ENTER_ISC, true); +} + +static int mms_isc_exit(struct mms_info *info) +{ + return mms_isc_transfer_cmd(info, ISC_CMD_EXIT); +} + +/* + * mms_get_fw_version - f/w version read + */ +static int mms_get_fw_version(struct i2c_client *client, u8 *buf) +{ + u8 cmd = MMS_FW_VERSION; + struct i2c_msg msg[2] = { + { + .addr = client->addr, + .flags = 0, + .buf = &cmd, + .len = 1, + }, { + .addr = client->addr, + .flags = I2C_M_RD, + .buf = buf, + .len = MAX_SECTION_NUM, + }, + }; + + return i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg)) + != ARRAY_SIZE(msg); +} + +/* + * mms_flash_section - f/w section(boot,core,config) download func + */ +static int mms_flash_section(struct mms_info *info, struct mms_fw_img *img, + const u8 *data) +{ + struct i2c_client *client = info->client; + struct isc_packet *isc_packet; + struct i2c_msg msg[2] = { + { + .addr = client->addr, + .flags = 0, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = ISC_XFER_LEN, + }, + }; + int ptr = img->offset; + int ret; + int page, i; + u32 tmp; + + isc_packet = kzalloc(sizeof(struct isc_packet) + ISC_XFER_LEN, GFP_KERNEL); + isc_packet->cmd = ISC_ADDR; + + msg[0].buf = (u8 *)isc_packet; + msg[1].buf = kzalloc(ISC_XFER_LEN, GFP_KERNEL); + + for (page = img->start_page; page <= img->end_page; page++) { + mms_isc_erase_page(info, page); + + for (i = 0; i < ISC_BLOCK_NUM; i++, ptr += ISC_XFER_LEN) { + /* flash firmware */ + tmp = page * 256 + i * (ISC_XFER_LEN / 4); + put_unaligned_le32(tmp, &isc_packet->addr); + msg[0].len = sizeof(struct isc_packet) + ISC_XFER_LEN; + + memcpy(isc_packet->data, data + ptr, ISC_XFER_LEN); + + if (i2c_transfer(client->adapter, msg, 1) != 1) + goto i2c_err; + + /* verify firmware */ + tmp |= ISC_CMD_READ; + put_unaligned_le32(tmp, &isc_packet->addr); + msg[0].len = sizeof(struct isc_packet); + + if (i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg)) + != ARRAY_SIZE(msg)) + goto i2c_err; + + if (memcmp(isc_packet->data, msg[1].buf, ISC_XFER_LEN)) { +#if FLASH_VERBOSE_DEBUG + print_hex_dump(KERN_ERR, "mms134s fw wr : ", + DUMP_PREFIX_OFFSET, 16, 1, + isc_packet->data, ISC_XFER_LEN, false); + + print_hex_dump(KERN_ERR, "mms134s fw rd : ", + DUMP_PREFIX_OFFSET, 16, 1, + msg[1].buf, ISC_XFER_LEN, false); +#endif + dev_err(&client->dev, "Failed to flash verify\n"); + ret = -1; + goto out; + } + } + } + + dev_info(&client->dev, "Section [%d] update succeeded\n", img->type); + + ret = 0; + goto out; + +i2c_err: + dev_err(&client->dev, "%s : i2c failed\n", __func__); + ret = -1; + +out: + kfree(isc_packet); + kfree(msg[1].buf); + + return ret; +} + +/* + * mms_flash_fw -flash_section of parent function + * this function is IC version binary version compare and Download + */ +static int mms_flash_fw(const struct firmware *fw, struct mms_info *info) +{ + int ret = 0; + int i; + struct mms_bin_hdr *fw_hdr = (struct mms_bin_hdr *)fw->data; + struct mms_fw_img **img; + struct i2c_client *client = info->client; + u8 ver[MAX_SECTION_NUM]; + u8 target[MAX_SECTION_NUM]; + int offset = sizeof(struct mms_bin_hdr); + int retires = 3; + bool update_flag = false; + bool isc_flag = true; + + img = kzalloc( + sizeof(struct mms_fw_img *) * fw_hdr->section_num, GFP_KERNEL); + + while (retires--) { + if (!mms_get_fw_version(client, ver)) + break; + else + mms_reboot(info); + } + + if (retires < 0) { + dev_err(&client->dev, "Failed to obtain ver. info\n"); + isc_flag = false; + memset(ver, 0xff, sizeof(ver)); + } else { + print_hex_dump(KERN_INFO, "mms134s fw ver : ", DUMP_PREFIX_NONE, 16, 1, + ver, MAX_SECTION_NUM, false); + } + + for (i = 0; i < fw_hdr->section_num; i++, + offset += sizeof(struct mms_fw_img)) { + img[i] = (struct mms_fw_img *)(fw->data + offset); + target[i] = img[i]->version; + + if (ver[img[i]->type] != target[i]) { + if(isc_flag){ + mms_isc_enter(info); + isc_flag = false; + } + + update_flag = true; + dev_info(&client->dev, + "Section [%d] is need to be updated. ver : 0x%x, bin : 0x%x\n", + img[i]->type, ver[img[i]->type], target[i]); + + if (ret = mms_flash_section( + info, img[i], fw->data + fw_hdr->binary_offset)) { + mms_reboot(info); + goto out; + } + } else { + dev_info(&client->dev, "Section [%d] is up to date\n", i); + } + } + + if (update_flag) { + mms_isc_exit(info); + msleep(5); + mms_reboot(info); + } + + if (mms_get_fw_version(client, ver)) { + dev_err(&client->dev, "Failed to obtain version after flash\n"); + ret = -1; + goto out; + } else { + for (i = 0; i < fw_hdr->section_num; i++) { + if (ver[img[i]->type] != target[i]) { + dev_info(&client->dev, + "Version mismatch after flash. [%d] 0x%x != 0x%x\n", + i, ver[img[i]->type], target[i]); + + ret = -1; + goto out; + } + } + } + +out: + kfree(img); + + return ret; +} + +/* + * mms_fw_update_controller - firmware check & update + */ +#if 0 +static int mms_fw_update_controller(struct mms_info *info) +{ + struct i2c_client *client = info->client; + struct firmware *fw; + int retires = 3; + int ret = 0; + + ret = request_firmware(&fw, MMS_FW_NAME, &client->dev); + if (ret) { + dev_err(&info->client->dev, "Failed to requesting firmware\n"); + goto out; + } + + do { + ret = mms_flash_fw(fw, info); + } while (ret && --retires); + + if (!retires) + dev_err(&info->client->dev, "Failed to flash fw after retires\n"); + + release_firmware(fw); + +out: + return ret; +} +#else +static void mms_fw_update_controller(const struct firmware *fw, void * context) +{ + struct mms_info *info = context; + int retires = 3; + int ret; + + if (!fw) { + dev_err(&info->client->dev, "failed to read firmware\n"); + return; + } + + do { + ret = mms_flash_fw(fw, info); + } while (ret && --retires); + + if (!retires) { + dev_err(&info->client->dev, "failed to flash firmware after retires\n"); + } + mms_config(info); + release_firmware(fw); +} +#endif + +#ifdef CONFIG_OF +static struct of_device_id mms_dt_ids[] = { + { .compatible = "melfas,mms134s", }, + {} +}; +MODULE_DEVICE_TABLE(of, mms_dt_ids); + +static int mms_probe_dt(struct device_node *np, struct device *dev, + struct mms_platform_data *pdata) +{ + struct of_device_id *match; + int ret = 0; + + if (!np) { + dev_err(dev, "Device node not found\n"); + return -EINVAL; + } + + match = of_match_device(mms_dt_ids, dev); + if (!match) { + dev_err(dev, "Compatible mismatch\n"); + return -EINVAL; + } + + ret = of_property_read_u32(np, "melfas,max_x", &pdata->max_x); + if (ret) { + dev_err(dev, "Failed to get property max_x from node(%d)\n", ret); + goto out; + } + + ret = of_property_read_u32(np, "melfas,max_y", &pdata->max_y); + if (ret) { + dev_err(dev, "Failed to get property max_y from node(%d)\n", ret); + goto out; + } + + ret = of_property_read_u32(np, "melfas,irqflags", &pdata->irqflags); + if (ret) { + dev_err(dev, "Failed to get property irqflags from node(%d)\n", ret); + goto out; + } + + pdata->gpio_int = of_get_named_gpio(np, "melfas,gpio_int", 0); + if (pdata->gpio_int < 0) { + dev_err(dev, "Failed to get property gpio_int(%d)\n", pdata->gpio_int); + ret = pdata->gpio_int; + goto out; + } + + ret = of_property_read_u32(np, + "melfas,vdd_regulator_volt", &pdata->vdd_regulator_volt); + if (ret) { + dev_err(dev, + "Failed to get property vdd_regulator_volt from node(%d)\n", ret); + goto out; + } + + ret = of_property_read_string(np, "melfas,inkernel_fw_name", + &pdata->inkernel_fw_name); + if (ret) { + dev_err(dev, + "Failed to get property inkernel_fw_name from node(%d)\n", ret); + goto out; + } + + ret = of_property_read_string(np, "melfas,ums_fw_name", + &pdata->ums_fw_name); + if (ret) { + dev_err(dev, + "Failed to get property ums_fw_name from node(%d)\n", ret); + goto out; + } + +out: + return ret; +} +#endif + +#if TSP_SEC_FACTORY +#include "mms134s_sec.c" +#endif + +static int mms_probe(struct i2c_client *client, struct i2c_device_id *id) +{ + struct mms_platform_data *pdata = client->dev.platform_data; + struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); + struct device_node *np = client->dev.of_node; + struct mms_info *info; + struct input_dev *input_dev; + int ret = 0; + + printk("[TSP] start mms_probe\n"); + + if (!i2c_check_functionality(adapter, I2C_FUNC_I2C)) { + dev_err(&client->dev, "Not compatible i2c function\n"); + printk("[TSP] %s Not compatible i2c function\n",__func__); + return -EIO; + } +#ifdef CONFIG_OF + pdata = kzalloc(sizeof(struct mms_platform_data), GFP_KERNEL); + if (!pdata) { + dev_err(&client->dev, "Failed to allocate memory\n"); + pirntk("[TSP] %s Failed to allocate memory\n",__func__); + return -ENOMEM; + } + + ret = mms_probe_dt(np, &client->dev, pdata); + if (ret < 0) { + dev_err(&client->dev, "Failed to get platform data from node\n"); + printk("[TSP] %s Failed to get platform data from node\n",__func__); + goto err_probe_dt; + } +#else + + if (!pdata) { + dev_err(&client->dev, "Platform data not found\n"); + printk("[TSP] %s Platform data not found\n",__func__); + return -EINVAL; + } +#endif + + info = kzalloc(sizeof(struct mms_info), GFP_KERNEL); + if (!info) { + dev_err(&client->dev, "Failed to allocate memory\n"); + printk("[TSP] Failed to allocate memory\n"); + ret = -ENOMEM; + goto err_data_alloc; + } + + info->client = client; + info->pdata = pdata; + + /*set vdd regulator*/ + mms_setup_power(info, true); + mms_onoff_power(info, true); + + /*upload firmware file*/ + dev_info(&client->dev, "%s enable FW %d\n",__func__,__LINE__); + info->pdata->inkernel_fw_name = kstrdup(MMS_FW_NAME, GFP_KERNEL); + dev_info(&client->dev, "firmware name: %s\n", info->pdata->inkernel_fw_name); + dev_info(&client->dev, "%s enable tsp %d\n",__func__,__LINE__); + ret = request_firmware_nowait(THIS_MODULE, true, MMS_FW_NAME, &client->dev, + GFP_KERNEL, info, mms_fw_update_controller); + + if (ret) { + dev_err(&client->dev, "failed to schedule firmware update\n"); + kfree(info); + goto err_data_alloc; + } + + dev_info(&client->dev, "firmware request done\n"); + + input_dev = input_allocate_device(); + if (!input_dev) { + dev_err(&client->dev, "Failed to allocate memory\n"); + printk("[TSP] Failed to allocate memory\n"); + ret = -ENOMEM; + goto err_input_alloc; + } + + info->input_dev = input_dev; + + snprintf(info->phys, sizeof(info->phys), "%s/input0", + dev_name(&client->dev)); + + dev_info(&client->dev, "[TSP] %s/input0",dev_name(&client->dev)); + input_dev->name = "Melfas MMS134s Touch Screen"; + input_dev->phys = info->phys; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(INPUT_PROP_DIRECT, input_dev->propbit); + +#if MMS_HAS_TOUCH_KEY + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(KEY_MENU, input_dev->keybit); + __set_bit(KEY_BACK, input_dev->keybit); +#endif + + input_mt_init_slots(input_dev, MAX_FINGER_NUM, 0); + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, MAX_WIDTH, 0, 0); + input_set_abs_params(input_dev, ABS_MT_PRESSURE, 0, MAX_PRESSURE, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_X, 0, + info->pdata->max_x, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, 0, + info->pdata->max_y, 0, 0); + + ret = input_register_device(input_dev); + if (ret) { + dev_err(&client->dev, "Failed to register input dev(%d)\n", ret); + printk("[TSP] Failed to register input dev(%d)\n", ret); + goto err_input_register; + } + + input_set_drvdata(input_dev, info); + i2c_set_clientdata(client, info); + + mms_enable(info); + info->enabled = true; + + info->finger_state = kzalloc(sizeof(bool) * MAX_FINGER_NUM, GFP_KERNEL); + if (!info->finger_state) { + dev_err(&client->dev, "Failed to allocate memory\n"); + printk("[TSP] Failed to allocate memory\n"); + ret = -ENOMEM; + goto err_state_alloc; + } + memset(info->finger_state, 0x00, sizeof(bool) * MAX_FINGER_NUM); + + /* configure touchscreen interrupt gpio */ + ret = gpio_request(52, "mms134s_irq_gpio"); + if (ret) { + dev_err(&client->dev, "[TSP]unable to request gpio.\n"); + goto err_init_drv; + } + client->irq = gpio_to_irq(52); + info->irq = gpio_to_irq(52); + + dev_info(&client->dev,"[TSP] client-> irq = %d \n",client->irq); + ret = request_threaded_irq(client->irq, NULL, mms_interrupt, + IRQF_TRIGGER_LOW | IRQF_ONESHOT,"mms134s", info); + + if (ret) { + dev_err(&client->dev, "Failed to register irq(%d)\n", ret); + printk("[TSP] Failed to register irq(%d)\n", ret); + goto err_request_irq; + } + + ret = mms_config(info); + if (ret) { + dev_err(&client->dev, "Failed mms134 configuration\n"); + printk("[TSP] Failed mms134 configuration\n"); + goto err_mms_config; + } + +#ifdef CONFIG_PM_RUNTIME + pm_runtime_enable(&client->dev); +#endif + +#if TSP_SEC_FACTORY + ret = init_sec(info); + if (ret) { + dev_err(&client->dev, "Failed to initialize SEC_FACTORY\n"); + printk("[TSP] Failed to initialize SEC_FACTORY\n"); + goto err_init_sec; + } +#endif + + dev_info(&client->dev, "mms134s initialized\n"); + printk("[TSP] mms134s initialized\n"); + + return 0; + +err_init_drv: +err_init_sec: +err_mms_config: +err_request_irq: + kfree(info->finger_state); +err_state_alloc: + input_unregister_device(input_dev); +err_input_register: + input_free_device(input_dev); +err_input_alloc: + kfree(info); +err_data_alloc: +#ifdef CONFIG_OF +err_probe_dt: + kfree(pdata); +#endif + dev_info(&client->dev, "Failed to initialization\n"); + printk("[TSP] Failed to initialization\n"); + + return ret; +} + +static int mms_remove(struct i2c_client *client) +{ + struct mms_info *info = i2c_get_clientdata(client); + + kfree(info->finger_state); + input_unregister_device(info->input_dev); + input_free_device(info->input_dev); +#ifdef CONIFG_OF + kfree(info->pdata); +#endif + kfree(info); + return 0; +} + +#ifdef CONFIG_PM +static int mms_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct mms_info *info = i2c_get_clientdata(client); + + mutex_lock(&info->input_dev->mutex); + + if (info->input_dev->users) { + mms_clear_input_data(info); + mms_disable(info); + } + + mutex_unlock(&info->input_dev->mutex); + + return 0; +} + +static int mms_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct mms_info *info = i2c_get_clientdata(client); + + mutex_lock(&info->input_dev->mutex); + + if (info->input_dev->users) + mms_enable(info); + + mutex_unlock(&info->input_dev->mutex); + + return 0; +} +#endif + +static struct i2c_device_id mms_id[] = { + {MMS_DEV_NAME, 0}, +}; +MODULE_DEVICE_TABLE(i2c, mms_id); + +#ifdef CONFIG_PM +static struct dev_pm_ops mms_pm_ops = { +#ifdef CONFIG_PM_RUNTIME + SET_RUNTIME_PM_OPS(mms_suspend, mms_resume, NULL) +#else + .suspend = mms_suspend, + .resume = mms_resume, +#endif +}; +#endif + +static struct i2c_driver mms_driver = { + .id_table = mms_id, + .probe = mms_probe, + .remove = mms_remove, + .driver = { + .owner = THIS_MODULE, + .name = MMS_DEV_NAME, +#ifdef CONFIG_OF + .of_match_table = of_match_ptr(mms_dt_ids), +#endif +#ifdef CONFIG_PM + .pm = &mms_pm_ops, +#endif + }, +}; + +static int __init mms134s_init(void) +{ + // #if PRINT_TSP_LOG + printk("[TSP] mms134s_init\n"); + // #endif + + + return i2c_add_driver(&mms_driver); + } + + + static void __exit mms134s_exit(void) + { + i2c_del_driver(&mms_driver); + } + + module_init(mms134s_init); + module_exit(mms134s_exit); + + +MODULE_DESCRIPTION("Touchscreen driver for MELFAS MMS134S"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/mms134s/mms134s_fw.h b/drivers/input/touchscreen/mms134s/mms134s_fw.h new file mode 100644 index 00000000..abcf97e8 --- /dev/null +++ b/drivers/input/touchscreen/mms134s/mms134s_fw.h @@ -0,0 +1,1296 @@ + +//--------------------------------------------- +// Hex2Mfsb Converter v1.3 +// 2013.04.09 +//--------------------------------------------- + +int mms134s_fw_size = 20544; + +char mms134s_fw[] = +{ + 0x4D, 0x42, 0x4E, 0x01, 0x4D, 0x31, 0x48, 0x53, 0x32, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x02, 0x00, 0x28, 0x00, 0x01, 0x00, 0x13, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, + 0x00, 0x18, 0x00, 0x20, 0xD9, 0x00, 0x00, 0x00, 0xE9, 0x03, 0x00, 0x00, 0xE9, 0x03, 0x00, 0x00, + 0xE9, 0x03, 0x00, 0x00, 0xE9, 0x03, 0x00, 0x00, 0xE9, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE9, 0x03, 0x00, 0x00, + 0xE9, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE9, 0x03, 0x00, 0x00, 0xE9, 0x03, 0x00, 0x00, + 0x2D, 0x02, 0x00, 0x00, 0x89, 0x03, 0x00, 0x00, 0x41, 0x02, 0x00, 0x00, 0x19, 0x02, 0x00, 0x00, + 0xD5, 0x03, 0x00, 0x00, 0x06, 0x4B, 0x01, 0x22, 0x1A, 0x70, 0x80, 0x23, 0xDB, 0x05, 0x00, 0x21, + 0x59, 0x70, 0x19, 0x68, 0x0F, 0x20, 0x81, 0x43, 0x0A, 0x43, 0x1A, 0x60, 0x70, 0x47, 0xC0, 0x46, + 0x00, 0x00, 0x00, 0x20, 0x06, 0x4B, 0x01, 0x22, 0x1A, 0x70, 0x80, 0x23, 0xDB, 0x05, 0x19, 0x68, + 0x04, 0x4A, 0x0A, 0x40, 0x80, 0x21, 0x49, 0x02, 0x0A, 0x43, 0x1A, 0x60, 0x70, 0x47, 0xC0, 0x46, + 0x01, 0x00, 0x00, 0x20, 0xFF, 0xFF, 0xF0, 0xFF, 0x00, 0xB5, 0x06, 0x4B, 0x72, 0xB6, 0x1A, 0x78, + 0x00, 0x2A, 0x04, 0xD0, 0xC0, 0x46, 0xC0, 0x46, 0x62, 0xB6, 0x30, 0xBF, 0xF6, 0xE7, 0x62, 0xB6, + 0x00, 0xBD, 0xC0, 0x46, 0x01, 0x00, 0x00, 0x20, 0x00, 0xB5, 0x06, 0x4B, 0x72, 0xB6, 0x1A, 0x78, + 0x00, 0x2A, 0x04, 0xD0, 0xC0, 0x46, 0xC0, 0x46, 0x62, 0xB6, 0x30, 0xBF, 0xF6, 0xE7, 0x62, 0xB6, + 0x00, 0xBD, 0xC0, 0x46, 0x00, 0x00, 0x00, 0x20, 0x38, 0xB5, 0xFF, 0x23, 0x00, 0x22, 0x1B, 0x04, + 0x1A, 0x60, 0xBF, 0xF3, 0x6F, 0x8F, 0x80, 0x22, 0xCD, 0x23, 0xD2, 0x05, 0x13, 0x71, 0x01, 0x33, + 0xDB, 0xB2, 0xF2, 0x2B, 0xFA, 0xD1, 0x80, 0x23, 0x0E, 0x22, 0xDB, 0x05, 0x5A, 0x72, 0x33, 0x49, + 0x33, 0x4B, 0x00, 0x22, 0x00, 0xE0, 0x04, 0xC3, 0x8B, 0x42, 0xFC, 0xD3, 0x31, 0x4B, 0xFF, 0x22, + 0x1A, 0x70, 0x31, 0x49, 0x80, 0x23, 0x31, 0x4A, 0xDB, 0x00, 0x14, 0x68, 0x01, 0xCB, 0x20, 0x18, + 0x10, 0x60, 0x8B, 0x42, 0xF9, 0xD1, 0x00, 0x22, 0x2D, 0x4C, 0x2E, 0x48, 0x11, 0x1C, 0x10, 0x23, + 0x01, 0x3B, 0xDB, 0xB2, 0xE5, 0x5C, 0x52, 0x19, 0xC5, 0x5C, 0xD2, 0xB2, 0x49, 0x19, 0xC9, 0xB2, + 0x00, 0x2B, 0xF5, 0xD1, 0x28, 0x4C, 0x23, 0x78, 0xFF, 0x3B, 0x58, 0x42, 0x43, 0x41, 0x1A, 0x43, + 0x26, 0x4B, 0x18, 0x78, 0xFF, 0x38, 0x45, 0x42, 0x68, 0x41, 0x01, 0x43, 0x24, 0x48, 0x17, 0xD1, + 0x24, 0x49, 0x01, 0x60, 0x1D, 0x49, 0x09, 0x68, 0x00, 0x29, 0x15, 0xD1, 0x00, 0x2A, 0x13, 0xD1, + 0x21, 0x78, 0x1A, 0x78, 0x91, 0x42, 0x0F, 0xD1, 0x1F, 0x4A, 0x11, 0x78, 0x1F, 0x4A, 0x12, 0x78, + 0x91, 0x42, 0x09, 0xD1, 0x1A, 0x78, 0x13, 0x4B, 0x1A, 0x70, 0x00, 0xF0, 0x49, 0xF9, 0x03, 0xE0, + 0x00, 0x2A, 0x01, 0xD1, 0x1A, 0x4B, 0x03, 0x60, 0xA0, 0x23, 0x84, 0x22, 0xDB, 0x05, 0x5A, 0x70, + 0x13, 0x4A, 0x12, 0x68, 0x00, 0x2A, 0x03, 0xD0, 0x11, 0x78, 0x80, 0x22, 0x0A, 0x43, 0xDA, 0x70, + 0x14, 0x4B, 0x15, 0x4A, 0x13, 0x60, 0x15, 0x4A, 0x13, 0x60, 0x15, 0x4A, 0x13, 0x60, 0x15, 0x4B, + 0x04, 0x22, 0x1A, 0x60, 0x02, 0x22, 0x1A, 0x60, 0x62, 0xB6, 0xFE, 0xE7, 0x28, 0x06, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x20, 0x24, 0x06, 0x00, 0x20, 0xF0, 0x4F, 0x00, 0x00, 0x14, 0x00, 0x00, 0x20, + 0x10, 0x04, 0x00, 0x00, 0xF0, 0x4F, 0x00, 0x00, 0x1F, 0x04, 0x00, 0x00, 0xFF, 0x4F, 0x00, 0x00, + 0x20, 0x06, 0x00, 0x20, 0xF1, 0x4F, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0xFE, 0x4F, 0x00, 0x00, + 0x11, 0x04, 0x00, 0x00, 0xE9, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x20, 0x0C, 0x00, 0x00, 0x20, + 0x10, 0x00, 0x00, 0x20, 0x00, 0xE1, 0x00, 0xE0, 0x03, 0x4A, 0x00, 0x23, 0x13, 0x70, 0x80, 0x22, + 0xD2, 0x05, 0x13, 0x70, 0x70, 0x47, 0xC0, 0x46, 0x00, 0x00, 0x00, 0x20, 0x03, 0x4A, 0x00, 0x23, + 0x13, 0x70, 0x80, 0x22, 0xD2, 0x05, 0xD3, 0x63, 0x70, 0x47, 0xC0, 0x46, 0x02, 0x00, 0x00, 0x20, + 0x7F, 0xB5, 0xA0, 0x23, 0xDB, 0x05, 0x9C, 0x68, 0x64, 0x07, 0x64, 0x0F, 0xE2, 0xB2, 0x02, 0x2A, + 0x1D, 0xD0, 0x04, 0x2A, 0x6D, 0xD0, 0x01, 0x2A, 0x72, 0xD1, 0x42, 0x49, 0x00, 0x20, 0x08, 0x60, + 0x18, 0x7B, 0x41, 0x49, 0x08, 0x60, 0x09, 0x68, 0x5F, 0x29, 0x69, 0xD1, 0x44, 0x21, 0x59, 0x70, + 0x80, 0x21, 0xC9, 0x05, 0x48, 0x69, 0x08, 0x24, 0x20, 0x43, 0x48, 0x61, 0x19, 0x68, 0x0A, 0x43, + 0x1A, 0x60, 0xC0, 0x46, 0x1A, 0x68, 0x10, 0x21, 0x0A, 0x43, 0x1A, 0x60, 0xFE, 0xE7, 0x37, 0x4B, + 0x1B, 0x78, 0x02, 0x2B, 0x03, 0xD1, 0x33, 0x4B, 0x1A, 0x68, 0x08, 0x32, 0x1A, 0x60, 0x34, 0x4B, + 0x1B, 0x68, 0x98, 0x47, 0x30, 0x4B, 0x19, 0x68, 0x2E, 0x4B, 0xC9, 0xB2, 0x18, 0x68, 0x0B, 0x1C, + 0x40, 0x33, 0xDB, 0xB2, 0xC0, 0xB2, 0x0C, 0x2B, 0x16, 0xD8, 0x09, 0x18, 0x08, 0x1C, 0xCC, 0x23, + 0xC0, 0x38, 0x5B, 0x1A, 0x08, 0x2B, 0x00, 0xDD, 0x08, 0x23, 0xDB, 0xB2, 0x29, 0x49, 0x2A, 0x4A, + 0x07, 0xE0, 0x01, 0x3B, 0xDB, 0xB2, 0x0E, 0x68, 0x5D, 0x1C, 0x2D, 0x18, 0x75, 0x19, 0x2D, 0x78, + 0x9D, 0x54, 0x00, 0x2B, 0xF5, 0xD1, 0x2B, 0xE0, 0x0B, 0x1C, 0x1F, 0x33, 0xDB, 0xB2, 0x0A, 0x2B, + 0x26, 0xD8, 0x22, 0x4B, 0x01, 0x25, 0x1A, 0x78, 0x01, 0xAB, 0x1A, 0x70, 0x32, 0x22, 0x5A, 0x70, + 0x1F, 0x4A, 0x5D, 0x71, 0x12, 0x78, 0x9D, 0x71, 0x9A, 0x70, 0x00, 0x22, 0xDA, 0x70, 0x1A, 0x71, + 0xDA, 0x71, 0x1A, 0x72, 0x5A, 0x72, 0x09, 0x18, 0x13, 0x22, 0x17, 0x4D, 0x9A, 0x72, 0xE1, 0x39, + 0x08, 0x22, 0x01, 0x3A, 0xD2, 0xB2, 0x58, 0x18, 0x80, 0x5C, 0x50, 0x55, 0x00, 0x2A, 0xF8, 0xD1, + 0x06, 0xE0, 0x14, 0x4B, 0x1B, 0x68, 0x98, 0x47, 0x0A, 0x4B, 0x1A, 0x68, 0x04, 0x32, 0x1A, 0x60, + 0x0A, 0x4B, 0x01, 0x21, 0x1C, 0x70, 0xA0, 0x23, 0xDB, 0x05, 0x1A, 0x68, 0x0A, 0x43, 0x1A, 0x60, + 0xC0, 0x46, 0xC0, 0x46, 0xC0, 0x46, 0xC0, 0x46, 0x1A, 0x68, 0x10, 0x21, 0x0A, 0x43, 0x1A, 0x60, + 0x7F, 0xBD, 0xC0, 0x46, 0x18, 0x06, 0x00, 0x20, 0x1C, 0x06, 0x00, 0x20, 0x03, 0x00, 0x00, 0x20, + 0x0C, 0x00, 0x00, 0x20, 0x20, 0x06, 0x00, 0x20, 0x10, 0x00, 0x00, 0x50, 0xFF, 0x03, 0x00, 0x00, + 0x24, 0x06, 0x00, 0x20, 0x08, 0x00, 0x00, 0x20, 0x10, 0xB5, 0xA0, 0x23, 0x11, 0x22, 0xDB, 0x05, + 0x0D, 0x4C, 0x1A, 0x70, 0x22, 0x78, 0x02, 0x2A, 0x01, 0xD1, 0x0C, 0x4B, 0x0E, 0xE0, 0x22, 0x78, + 0x00, 0x2A, 0x0D, 0xD0, 0x98, 0x68, 0xF0, 0x22, 0x12, 0x03, 0x80, 0x21, 0x10, 0x40, 0xC9, 0x02, + 0x88, 0x42, 0x05, 0xD0, 0x9B, 0x68, 0x13, 0x42, 0x02, 0xD0, 0x05, 0x4B, 0x1B, 0x68, 0x98, 0x47, + 0x00, 0x23, 0x23, 0x70, 0x10, 0xBD, 0xC0, 0x46, 0x03, 0x00, 0x00, 0x20, 0x10, 0x00, 0x00, 0x20, + 0x08, 0x00, 0x00, 0x20, 0x03, 0x4A, 0x00, 0x23, 0x13, 0x70, 0x80, 0x22, 0xD2, 0x05, 0x93, 0x70, + 0x70, 0x47, 0xC0, 0x46, 0x01, 0x00, 0x00, 0x20, 0x70, 0x47, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x03, + 0x4D, 0x31, 0x48, 0x53, 0x43, 0x46, 0x33, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xF6, 0x48, 0x4D, 0x45, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x28, + 0xF8, 0xB5, 0x02, 0xF0, 0x33, 0xF9, 0x02, 0xF0, 0x97, 0xFE, 0x03, 0xF0, 0xCF, 0xF9, 0xD4, 0x4B, + 0x1B, 0x68, 0x98, 0x47, 0xD3, 0x4B, 0x0E, 0x22, 0x1A, 0x70, 0xD3, 0x4B, 0x1A, 0x78, 0x00, 0x2A, + 0x27, 0xD1, 0xD0, 0x49, 0x0D, 0x20, 0x08, 0x70, 0xD0, 0x49, 0x0A, 0x70, 0x01, 0x22, 0x1A, 0x70, + 0x00, 0xF0, 0x18, 0xFA, 0xCE, 0x4B, 0x9A, 0x78, 0x5A, 0x70, 0xC9, 0x4B, 0x1B, 0x68, 0x98, 0x47, + 0x01, 0xF0, 0xB6, 0xFD, 0x00, 0xF0, 0x2A, 0xFF, 0x80, 0x23, 0xDB, 0x05, 0x59, 0x6B, 0xC9, 0x4A, + 0x0A, 0x40, 0x5A, 0x63, 0x00, 0xF0, 0x14, 0xFA, 0x01, 0xF0, 0x40, 0xFE, 0x00, 0xF0, 0x1E, 0xFF, + 0x00, 0xF0, 0x10, 0xFF, 0xC4, 0x4B, 0x02, 0x20, 0x1B, 0x68, 0x98, 0x47, 0xC3, 0x48, 0x01, 0xF0, + 0xE1, 0xFE, 0xC3, 0x4B, 0x1A, 0x78, 0x00, 0x2A, 0x03, 0xD1, 0xC2, 0x4A, 0x12, 0x78, 0x00, 0x2A, + 0x05, 0xD0, 0x80, 0x21, 0xC9, 0x05, 0x08, 0x22, 0x48, 0x69, 0x10, 0x42, 0xFC, 0xD0, 0xBD, 0x4A, + 0x12, 0x78, 0x1A, 0x70, 0xB3, 0x4B, 0x1F, 0x78, 0x7B, 0xB2, 0x0D, 0x2B, 0x09, 0xD0, 0x02, 0xDC, + 0x00, 0x2B, 0x42, 0xD0, 0xDF, 0xE0, 0x0F, 0x2B, 0x17, 0xD0, 0x11, 0x2B, 0x00, 0xD0, 0xDA, 0xE0, + 0x1A, 0xE0, 0xAF, 0x4B, 0x58, 0x78, 0x02, 0xF0, 0xC4, 0xF8, 0xB3, 0x4D, 0xA8, 0x78, 0x01, 0xF0, + 0x8D, 0xFE, 0xB2, 0x4C, 0x20, 0x60, 0xE8, 0x78, 0x01, 0xF0, 0x88, 0xFE, 0xB0, 0x4B, 0x60, 0x60, + 0x1B, 0x7A, 0xAA, 0x78, 0x5B, 0xB2, 0x53, 0x43, 0xA3, 0x60, 0xA4, 0x4B, 0x00, 0x22, 0x1A, 0x70, + 0xA9, 0x4B, 0x18, 0x78, 0x00, 0xF0, 0x1E, 0xFB, 0xA0, 0x4B, 0x01, 0x22, 0x1A, 0x70, 0x00, 0xF0, + 0xC7, 0xF9, 0xFF, 0xF7, 0x9F, 0xFD, 0x02, 0xF0, 0xDF, 0xF8, 0xA3, 0x4B, 0x00, 0x25, 0x1C, 0x7D, + 0x06, 0xE0, 0x02, 0xF0, 0x71, 0xF9, 0x00, 0xF0, 0xB3, 0xF9, 0xFF, 0xF7, 0x93, 0xFD, 0x01, 0x35, + 0xAC, 0x42, 0xF6, 0xD1, 0x02, 0xF0, 0xD2, 0xF9, 0x00, 0xF0, 0xAA, 0xF9, 0x91, 0x4B, 0x00, 0x22, + 0x1A, 0x70, 0x95, 0x4B, 0x20, 0x20, 0x1B, 0x68, 0x98, 0x47, 0x80, 0x23, 0xDB, 0x05, 0x1A, 0x7A, + 0x12, 0x2A, 0x06, 0xD0, 0x1B, 0x7A, 0x1A, 0x2B, 0x03, 0xD0, 0x96, 0x4B, 0x01, 0x20, 0x1B, 0x68, + 0x98, 0x47, 0x00, 0xF0, 0xA3, 0xF9, 0x94, 0x4B, 0x01, 0x26, 0x80, 0x24, 0x1E, 0x70, 0xE4, 0x05, + 0xE2, 0x6B, 0x80, 0x23, 0x5B, 0x04, 0x13, 0x43, 0xE3, 0x63, 0xFF, 0xF7, 0x6B, 0xFD, 0x70, 0x42, + 0x8E, 0x49, 0x8F, 0x4A, 0x02, 0xF0, 0x22, 0xFD, 0x02, 0xF0, 0xF6, 0xF9, 0x00, 0x28, 0x05, 0xD1, + 0xE3, 0x6B, 0x1B, 0x0E, 0x1B, 0x06, 0x1E, 0x43, 0xE6, 0x63, 0x6D, 0xE0, 0x7E, 0x4D, 0x04, 0x20, + 0x2B, 0x68, 0x98, 0x47, 0x87, 0x4B, 0x1A, 0x78, 0x87, 0x4B, 0x00, 0x2A, 0x1B, 0xD0, 0x1A, 0x68, + 0x03, 0x2A, 0x01, 0xDC, 0x01, 0x32, 0x0C, 0xE0, 0x00, 0xF0, 0xB4, 0xF9, 0x71, 0x4B, 0x0F, 0x22, + 0x1A, 0x70, 0x82, 0x4B, 0x1A, 0x78, 0x09, 0x2A, 0x01, 0xD8, 0x01, 0x32, 0x1A, 0x70, 0x7E, 0x4B, + 0x00, 0x22, 0x1A, 0x60, 0x80, 0x23, 0xDB, 0x05, 0xDA, 0x6B, 0x01, 0x21, 0x12, 0x0E, 0x12, 0x06, + 0x0A, 0x43, 0xDA, 0x63, 0x48, 0xE0, 0x1A, 0x60, 0x00, 0xF0, 0xB8, 0xFE, 0x2B, 0x68, 0x07, 0x20, + 0x98, 0x47, 0x00, 0xF0, 0x79, 0xFE, 0xFF, 0xF7, 0x3D, 0xFD, 0x75, 0x4B, 0x1B, 0x78, 0x00, 0x2B, + 0x10, 0xD1, 0x02, 0xF0, 0x45, 0xFD, 0x00, 0x28, 0x0C, 0xD1, 0x00, 0xF0, 0x8B, 0xF9, 0x5D, 0x4B, + 0x0F, 0x22, 0x1A, 0x70, 0xE3, 0x6B, 0x1B, 0x0E, 0x1B, 0x06, 0x1E, 0x43, 0xE6, 0x63, 0xFF, 0xF7, + 0x3B, 0xFD, 0x29, 0xE0, 0xFF, 0xF7, 0x38, 0xFD, 0x00, 0xF0, 0xAA, 0xFE, 0x69, 0x4B, 0x1B, 0x68, + 0x98, 0x47, 0x01, 0xF0, 0x83, 0xFA, 0x01, 0xF0, 0xBD, 0xFB, 0x57, 0x4B, 0x0F, 0x20, 0x1B, 0x68, + 0x98, 0x47, 0x65, 0x4B, 0x1B, 0x78, 0x00, 0x2B, 0x0B, 0xD1, 0x64, 0x4B, 0x1B, 0x78, 0x00, 0x2B, + 0x07, 0xD0, 0x80, 0x23, 0xDB, 0x05, 0xDA, 0x6B, 0x01, 0x21, 0x12, 0x0E, 0x12, 0x06, 0x0A, 0x43, + 0xDA, 0x63, 0x00, 0xF0, 0x69, 0xF9, 0x00, 0x28, 0x06, 0xD0, 0x4B, 0x4B, 0x12, 0x20, 0x1B, 0x68, + 0x98, 0x47, 0x5B, 0x4B, 0x1B, 0x68, 0x98, 0x47, 0x00, 0xF0, 0x5A, 0xFA, 0x59, 0x4B, 0x00, 0x20, + 0x18, 0x56, 0x00, 0xF0, 0x15, 0xFA, 0x44, 0x4B, 0x14, 0x20, 0x1B, 0x68, 0x98, 0x47, 0x56, 0x4B, + 0x1F, 0x70, 0x3E, 0x4B, 0x1B, 0x78, 0x00, 0x2B, 0x00, 0xD1, 0xCE, 0xE6, 0x53, 0x4E, 0x00, 0x25, + 0x33, 0x78, 0xAB, 0x42, 0x00, 0xD0, 0xD4, 0xE0, 0xC7, 0xE6, 0x3B, 0x78, 0x5B, 0xB2, 0x01, 0x33, + 0x00, 0xD1, 0xCF, 0xE0, 0x3C, 0x78, 0x63, 0xB2, 0x03, 0x2B, 0x5B, 0xD0, 0x05, 0xDC, 0x01, 0x2B, + 0x4D, 0xD0, 0x53, 0xDC, 0x00, 0x2B, 0x09, 0xD0, 0xB0, 0xE0, 0x05, 0x2B, 0x00, 0xD1, 0xA6, 0xE0, + 0x00, 0xDA, 0x9B, 0xE0, 0x06, 0x2B, 0x00, 0xD0, 0xA8, 0xE0, 0x2D, 0xE0, 0x80, 0x22, 0xD2, 0x05, + 0x08, 0x23, 0x51, 0x69, 0x19, 0x42, 0xFC, 0xD0, 0x2D, 0x4A, 0x01, 0x23, 0x13, 0x70, 0x40, 0x4A, + 0x00, 0x24, 0x15, 0x68, 0x14, 0x60, 0x3F, 0x4A, 0x3F, 0x49, 0x13, 0x70, 0x3F, 0x4A, 0x10, 0x68, + 0x01, 0x40, 0x80, 0x20, 0x98, 0x40, 0x01, 0x43, 0x11, 0x60, 0x3D, 0x4A, 0x16, 0x20, 0x13, 0x60, + 0x3C, 0x4A, 0x13, 0x70, 0x20, 0x4B, 0x1B, 0x68, 0x98, 0x47, 0x00, 0xF0, 0xB3, 0xF8, 0x1C, 0x4B, + 0x9A, 0x78, 0x5A, 0x70, 0x01, 0xF0, 0xAC, 0xFC, 0x01, 0xF0, 0x1C, 0xFF, 0x01, 0xF0, 0x78, 0xFF, + 0x20, 0x1C, 0x00, 0xF0, 0x07, 0xFA, 0x79, 0xE0, 0x00, 0x23, 0x33, 0x70, 0x19, 0x4B, 0x32, 0x49, + 0x1A, 0x78, 0x17, 0x4B, 0x18, 0x48, 0x1A, 0x70, 0x29, 0x4B, 0x2D, 0x4A, 0x1D, 0x60, 0x01, 0x23, + 0x13, 0x60, 0x2C, 0x4A, 0x13, 0x70, 0x50, 0x22, 0x02, 0xF0, 0x62, 0xFE, 0x66, 0xE0, 0x0E, 0x4B, + 0x18, 0x20, 0x1B, 0x68, 0x98, 0x47, 0x27, 0x4B, 0x1C, 0x70, 0x5F, 0xE0, 0x0A, 0x4B, 0x19, 0x20, + 0x1B, 0x68, 0x02, 0xE0, 0x08, 0x4B, 0x1A, 0x20, 0x1B, 0x68, 0x98, 0x47, 0x01, 0x22, 0x53, 0xE0, + 0x14, 0x07, 0x00, 0x20, 0xBD, 0x09, 0x00, 0x20, 0x6F, 0x07, 0x00, 0x20, 0x6E, 0x07, 0x00, 0x20, + 0x98, 0x0A, 0x00, 0x20, 0xFF, 0xC0, 0xFF, 0xFF, 0x54, 0x08, 0x00, 0x20, 0x50, 0x46, 0x00, 0x00, + 0x6C, 0x07, 0x00, 0x20, 0x6D, 0x07, 0x00, 0x20, 0xC8, 0x0B, 0x00, 0x20, 0xB0, 0x09, 0x00, 0x20, + 0x58, 0x0A, 0x00, 0x20, 0x18, 0x07, 0x00, 0x20, 0x02, 0x00, 0x00, 0x20, 0x60, 0x0F, 0x00, 0x20, + 0x62, 0x0F, 0x00, 0x20, 0xA0, 0x07, 0x00, 0x20, 0x9C, 0x07, 0x00, 0x20, 0xA4, 0x07, 0x00, 0x20, + 0x98, 0x07, 0x00, 0x20, 0x50, 0x08, 0x00, 0x20, 0x0B, 0x08, 0x00, 0x20, 0x88, 0x08, 0x00, 0x20, + 0x5C, 0x08, 0x00, 0x20, 0x96, 0x07, 0x00, 0x20, 0x31, 0x06, 0x00, 0x20, 0x70, 0x07, 0x00, 0x20, + 0x28, 0x06, 0x00, 0x20, 0x18, 0x0C, 0x00, 0x20, 0xFF, 0xF8, 0xFF, 0xFF, 0x68, 0x11, 0x00, 0x20, + 0x94, 0x09, 0x00, 0x20, 0x21, 0x0A, 0x00, 0x20, 0x98, 0x35, 0x00, 0x00, 0x15, 0x4B, 0x1A, 0x68, + 0x15, 0x4B, 0x1B, 0x68, 0xD2, 0x1A, 0x15, 0x4B, 0x1A, 0x60, 0x04, 0x22, 0x04, 0xE0, 0x14, 0x4B, + 0x1C, 0x20, 0x1B, 0x68, 0x98, 0x47, 0x08, 0x22, 0x12, 0x4B, 0x1A, 0x70, 0x0F, 0x4A, 0x12, 0x4B, + 0x08, 0x21, 0x1A, 0x60, 0x80, 0x23, 0xDB, 0x05, 0x5A, 0x69, 0x8A, 0x43, 0x5A, 0x61, 0x0F, 0x4A, + 0x10, 0x78, 0x06, 0x28, 0x02, 0xD1, 0x58, 0x69, 0x08, 0x42, 0xFC, 0xD0, 0xFF, 0x23, 0x13, 0x70, + 0x00, 0xE0, 0x0A, 0x4F, 0x33, 0x78, 0x00, 0x2B, 0x00, 0xD0, 0x26, 0xE7, 0x08, 0x4A, 0x13, 0x70, + 0xEB, 0xE5, 0xC0, 0x46, 0xEC, 0x4F, 0x00, 0x00, 0x14, 0x00, 0x00, 0x20, 0x94, 0x09, 0x00, 0x20, + 0x54, 0x08, 0x00, 0x20, 0x21, 0x0A, 0x00, 0x20, 0x64, 0x0F, 0x00, 0x20, 0xB0, 0x0B, 0x00, 0x20, + 0x6F, 0x07, 0x00, 0x20, 0x08, 0xB5, 0x02, 0xF0, 0x8B, 0xFC, 0x02, 0xF0, 0xCD, 0xFC, 0x08, 0xBD, + 0x08, 0xB5, 0x80, 0x23, 0x01, 0x22, 0xDB, 0x05, 0x5A, 0x70, 0xFF, 0xF7, 0x0D, 0xFC, 0x08, 0xBD, + 0x08, 0xB5, 0xFF, 0xF7, 0xD7, 0xFB, 0xFF, 0xF7, 0xF3, 0xFF, 0x08, 0xBD, 0x00, 0xB5, 0x18, 0x4B, + 0x18, 0x4A, 0x18, 0x78, 0x41, 0xB2, 0x4B, 0x1C, 0x03, 0xD0, 0x17, 0x4B, 0x1B, 0x78, 0x00, 0x2B, + 0x04, 0xD0, 0x00, 0x23, 0x13, 0x60, 0x98, 0x42, 0x0E, 0xD1, 0x14, 0xE0, 0x13, 0x4B, 0x10, 0x68, + 0x9B, 0x68, 0x98, 0x42, 0x01, 0xDA, 0x01, 0x30, 0x10, 0x60, 0x01, 0x29, 0x0B, 0xD0, 0x0D, 0x4A, + 0x12, 0x68, 0x9A, 0x42, 0x07, 0xDB, 0x01, 0x23, 0x0C, 0x49, 0x9A, 0x00, 0x89, 0x58, 0x0C, 0x4A, + 0x11, 0x60, 0x07, 0x4A, 0x13, 0x70, 0x0A, 0x4B, 0x19, 0x68, 0x80, 0x23, 0xDB, 0x05, 0xDA, 0x6B, + 0x09, 0x02, 0x12, 0x0E, 0x09, 0x0A, 0x12, 0x06, 0x0A, 0x43, 0xDA, 0x63, 0x00, 0xBD, 0xC0, 0x46, + 0x32, 0x06, 0x00, 0x20, 0x10, 0x07, 0x00, 0x20, 0x0B, 0x08, 0x00, 0x20, 0xB0, 0x09, 0x00, 0x20, + 0x04, 0x00, 0x00, 0x20, 0x08, 0xB5, 0x01, 0xF0, 0xB9, 0xF8, 0x02, 0x4B, 0x1B, 0x68, 0x98, 0x47, + 0x08, 0xBD, 0xC0, 0x46, 0x5C, 0x08, 0x00, 0x20, 0x10, 0xB5, 0x4B, 0x4B, 0x4B, 0x4A, 0x19, 0x78, + 0x00, 0x20, 0xCB, 0xB2, 0x00, 0x2B, 0x04, 0xD1, 0x10, 0x68, 0x49, 0x4C, 0xA0, 0x42, 0x01, 0xD0, + 0x01, 0x30, 0x10, 0x60, 0x47, 0x4A, 0x00, 0x20, 0x10, 0x70, 0x83, 0x42, 0x2F, 0xD1, 0x46, 0x48, + 0x04, 0x78, 0x00, 0x2C, 0x0A, 0xD0, 0x02, 0x78, 0x01, 0x23, 0x52, 0xB2, 0x02, 0x2A, 0x00, 0xD1, + 0x13, 0x1C, 0x40, 0x4A, 0x13, 0x70, 0x00, 0x23, 0x03, 0x70, 0x72, 0xE0, 0x3F, 0x4C, 0x20, 0x78, + 0x00, 0x28, 0x05, 0xD0, 0x3E, 0x4B, 0x01, 0x20, 0x10, 0x70, 0x21, 0x70, 0x19, 0x70, 0x69, 0xE0, + 0x3C, 0x4C, 0x3D, 0x48, 0xE1, 0x1C, 0xC9, 0x7F, 0x00, 0x68, 0x88, 0x42, 0x0A, 0xDB, 0x3B, 0x49, + 0x04, 0x34, 0x08, 0x68, 0x01, 0x30, 0x08, 0x60, 0xE4, 0x7F, 0xA0, 0x42, 0x02, 0xDB, 0x0B, 0x60, + 0x02, 0x21, 0x11, 0x70, 0x36, 0x49, 0x00, 0x22, 0x0A, 0x70, 0x33, 0x49, 0x25, 0xE0, 0x35, 0x4A, + 0x10, 0x60, 0x35, 0x4A, 0x12, 0x78, 0x00, 0x2A, 0x20, 0xD0, 0x34, 0x4A, 0x2D, 0x48, 0x14, 0x88, + 0x01, 0x8C, 0x2F, 0x4A, 0x8C, 0x42, 0x12, 0xD2, 0x31, 0x49, 0x0C, 0x88, 0x31, 0x49, 0x45, 0x31, + 0x09, 0x78, 0x8C, 0x42, 0x0B, 0xD2, 0x12, 0x78, 0x00, 0x2A, 0x0F, 0xD1, 0x26, 0x4A, 0x03, 0x30, + 0x11, 0x68, 0xC0, 0x7F, 0x81, 0x42, 0x09, 0xDA, 0x01, 0x31, 0x11, 0x60, 0x06, 0xE0, 0x01, 0x21, + 0x11, 0x70, 0x21, 0x49, 0x00, 0x22, 0x0A, 0x60, 0x20, 0x49, 0x0A, 0x60, 0x22, 0x4A, 0x01, 0x20, + 0x12, 0x78, 0x00, 0x2A, 0x26, 0xD1, 0x24, 0x4A, 0x12, 0x78, 0x00, 0x2A, 0x1E, 0xD0, 0x17, 0x4A, + 0x12, 0x78, 0x00, 0x2A, 0x1E, 0xD1, 0x1D, 0x4A, 0x11, 0x88, 0x16, 0x4A, 0x92, 0x8A, 0x91, 0x42, + 0x05, 0xD3, 0x1E, 0x4A, 0x12, 0x78, 0x00, 0x2A, 0x01, 0xD0, 0x11, 0x4A, 0x10, 0x70, 0x00, 0x2B, + 0x0F, 0xD0, 0x0F, 0x4B, 0x1B, 0x78, 0x00, 0x2B, 0x0B, 0xD0, 0x18, 0x4B, 0x01, 0x20, 0x1B, 0x78, + 0x00, 0x2B, 0x07, 0xD0, 0x09, 0x4B, 0x18, 0x70, 0x00, 0x20, 0x03, 0xE0, 0x08, 0x4B, 0x1A, 0x70, + 0x00, 0xE0, 0x01, 0x20, 0x10, 0xBD, 0xC0, 0x46, 0x20, 0x0C, 0x00, 0x20, 0x88, 0x07, 0x00, 0x20, + 0xFF, 0xFF, 0xFF, 0x7F, 0x96, 0x07, 0x00, 0x20, 0x77, 0x07, 0x00, 0x20, 0x94, 0x07, 0x00, 0x20, + 0x95, 0x07, 0x00, 0x20, 0x58, 0x0A, 0x00, 0x20, 0x78, 0x07, 0x00, 0x20, 0x80, 0x07, 0x00, 0x20, + 0x7C, 0x07, 0x00, 0x20, 0x84, 0x07, 0x00, 0x20, 0x76, 0x07, 0x00, 0x20, 0x60, 0x0F, 0x00, 0x20, + 0x62, 0x0F, 0x00, 0x20, 0xC8, 0x0B, 0x00, 0x20, 0x88, 0x08, 0x00, 0x20, 0xA2, 0x07, 0x00, 0x20, + 0x38, 0xB5, 0x42, 0x1E, 0xD2, 0xB2, 0x03, 0x1C, 0x01, 0x2A, 0x27, 0xD8, 0x14, 0x48, 0x15, 0x4D, + 0x15, 0x4C, 0x02, 0x2B, 0x08, 0xD1, 0x15, 0x49, 0x50, 0x22, 0x02, 0xF0, 0xA9, 0xFC, 0x00, 0x23, + 0x2B, 0x70, 0x0E, 0x20, 0x23, 0x68, 0x07, 0xE0, 0x11, 0x49, 0x50, 0x22, 0x02, 0xF0, 0xA0, 0xFC, + 0x01, 0x23, 0x2B, 0x70, 0x23, 0x68, 0x0D, 0x20, 0x98, 0x47, 0xFF, 0xF7, 0xCB, 0xFE, 0x0D, 0x4B, + 0x05, 0x33, 0xDA, 0x7F, 0x0C, 0x4B, 0x1A, 0x70, 0x1B, 0x78, 0x0E, 0x2B, 0x04, 0xD1, 0x0B, 0x4B, + 0x9A, 0x78, 0x5A, 0x70, 0x01, 0xF0, 0xBC, 0xFA, 0x01, 0xF0, 0x2C, 0xFD, 0x38, 0xBD, 0xC0, 0x46, + 0xC8, 0x0B, 0x00, 0x20, 0x76, 0x07, 0x00, 0x20, 0x54, 0x08, 0x00, 0x20, 0x98, 0x35, 0x00, 0x00, + 0xE8, 0x35, 0x00, 0x00, 0x58, 0x0A, 0x00, 0x20, 0xBD, 0x09, 0x00, 0x20, 0x98, 0x0A, 0x00, 0x20, + 0x08, 0xB5, 0x80, 0x23, 0x01, 0x22, 0xDB, 0x05, 0x5A, 0x70, 0xFF, 0xF7, 0xBD, 0xFA, 0x01, 0xF0, + 0x79, 0xFB, 0x08, 0xBD, 0xF0, 0xB5, 0x55, 0x4B, 0x7F, 0x22, 0xD9, 0x79, 0x80, 0x23, 0xDB, 0x05, + 0x11, 0x40, 0x53, 0x4C, 0x9A, 0x6B, 0x09, 0x06, 0x22, 0x40, 0x0A, 0x43, 0x9A, 0x63, 0xC0, 0x22, + 0xFF, 0x21, 0x89, 0xB0, 0x4F, 0x48, 0xD2, 0x00, 0x02, 0xF0, 0x98, 0xFC, 0x4E, 0x4B, 0x5B, 0x68, + 0x5B, 0x00, 0x5B, 0x42, 0x19, 0x1C, 0x08, 0x31, 0x01, 0xDA, 0x08, 0x23, 0x5B, 0x42, 0xDB, 0xB2, + 0x05, 0x93, 0xFF, 0x25, 0x4D, 0xE0, 0x00, 0x24, 0x20, 0x1C, 0x31, 0x1C, 0x02, 0x22, 0x01, 0x34, + 0x01, 0xF0, 0x9B, 0xFB, 0x14, 0x2C, 0xF7, 0xD1, 0x20, 0x1C, 0x31, 0x1C, 0x02, 0x22, 0x01, 0xF0, + 0xED, 0xFB, 0xFF, 0xF7, 0x7D, 0xFE, 0x3D, 0x4B, 0x40, 0x48, 0x1B, 0x7A, 0x00, 0x21, 0x04, 0x93, + 0x0C, 0x22, 0xAC, 0x46, 0x2A, 0xE0, 0x54, 0x00, 0x14, 0x2B, 0x04, 0xD1, 0x3C, 0x4D, 0x2C, 0x5B, + 0x04, 0x9D, 0x2C, 0x41, 0x03, 0xE0, 0x01, 0x9E, 0x04, 0x9F, 0xA4, 0x5B, 0x3C, 0x41, 0x9D, 0x00, + 0x47, 0x59, 0x03, 0x95, 0xA7, 0x42, 0x0F, 0xD3, 0x3F, 0x1B, 0x5E, 0x00, 0x06, 0x96, 0x02, 0x97, + 0x08, 0x25, 0x6F, 0x46, 0xEE, 0x5B, 0x07, 0x9F, 0x06, 0x9D, 0x7E, 0x53, 0x03, 0x9F, 0x31, 0x4D, + 0xC4, 0x51, 0x66, 0x46, 0x6C, 0x18, 0xE6, 0x54, 0x01, 0x9C, 0x20, 0x3C, 0x01, 0x94, 0x01, 0x3B, + 0xD9, 0xD2, 0x01, 0x3A, 0x80, 0x38, 0x15, 0x39, 0x00, 0x2A, 0x07, 0xD0, 0x2A, 0x4D, 0x2B, 0x4E, + 0x4C, 0x00, 0x2C, 0x19, 0x14, 0x23, 0x07, 0x94, 0x01, 0x96, 0xCC, 0xE7, 0x65, 0x46, 0x01, 0x3D, + 0xED, 0xB2, 0x6F, 0x46, 0x14, 0x21, 0xCB, 0x57, 0x6E, 0xB2, 0x9E, 0x42, 0xAB, 0xDA, 0x24, 0x4B, + 0x1B, 0x78, 0x00, 0x2B, 0x06, 0xD1, 0x23, 0x4B, 0x23, 0x49, 0x1C, 0x78, 0x1D, 0x4B, 0x18, 0x1C, + 0xFC, 0x38, 0x0C, 0xE0, 0x00, 0x24, 0x0D, 0xE0, 0x15, 0x22, 0x01, 0x3A, 0x00, 0x2C, 0x03, 0xD0, + 0x9D, 0x5C, 0x8E, 0x5C, 0x75, 0x19, 0x9D, 0x54, 0x00, 0x2A, 0xF6, 0xD1, 0x15, 0x3B, 0x83, 0x42, + 0xF2, 0xD1, 0xEF, 0xE7, 0x20, 0x1C, 0x00, 0x21, 0x01, 0x22, 0x01, 0x34, 0x01, 0xF0, 0x2D, 0xFB, + 0x14, 0x2C, 0xF7, 0xD1, 0x20, 0x1C, 0x00, 0x21, 0x01, 0x22, 0x01, 0xF0, 0x7F, 0xFB, 0x07, 0x4B, + 0x7F, 0x22, 0x9C, 0x79, 0x80, 0x23, 0xDB, 0x05, 0x05, 0x4D, 0x22, 0x40, 0x9C, 0x6B, 0x12, 0x06, + 0x2C, 0x40, 0x14, 0x43, 0x09, 0xB0, 0x9C, 0x63, 0xF0, 0xBD, 0xC0, 0x46, 0xC8, 0x0B, 0x00, 0x20, + 0xFF, 0xFF, 0xFF, 0x80, 0x18, 0x00, 0x00, 0x20, 0x60, 0x08, 0x00, 0x20, 0x98, 0x05, 0x00, 0x20, + 0xC0, 0x0A, 0x00, 0x40, 0x87, 0x0B, 0x00, 0x20, 0xF6, 0x0E, 0x00, 0x20, 0xA0, 0x0A, 0x00, 0x40, + 0x70, 0x07, 0x00, 0x20, 0x76, 0x07, 0x00, 0x20, 0x69, 0x36, 0x00, 0x00, 0xF0, 0xB5, 0x85, 0xB0, + 0x04, 0x1C, 0x01, 0x25, 0x00, 0x28, 0x17, 0xD1, 0x81, 0x4B, 0x21, 0x1C, 0xFC, 0x22, 0x81, 0x48, + 0x1D, 0x78, 0x02, 0xF0, 0xDB, 0xFB, 0xC0, 0x22, 0x21, 0x1C, 0xD2, 0x00, 0x7E, 0x48, 0x02, 0xF0, + 0xD5, 0xFB, 0x21, 0x1C, 0x04, 0x22, 0x7D, 0x48, 0x02, 0xF0, 0xD0, 0xFB, 0x7C, 0x48, 0x21, 0x1C, + 0x10, 0x22, 0x6D, 0xB2, 0x02, 0xF0, 0xCA, 0xFB, 0x7A, 0x4B, 0x01, 0x3D, 0x01, 0x22, 0xED, 0xB2, + 0x1A, 0x60, 0x00, 0x95, 0xDD, 0xE0, 0xFF, 0xF7, 0xC3, 0xFD, 0x77, 0x4D, 0x0C, 0x22, 0x2D, 0x7A, + 0xA4, 0x46, 0x01, 0x95, 0x01, 0x3A, 0xD2, 0xB2, 0x51, 0x1C, 0x74, 0x4E, 0x49, 0x00, 0x8B, 0x5B, + 0x01, 0x98, 0x03, 0x91, 0x03, 0x41, 0x15, 0x20, 0x50, 0x43, 0x02, 0x93, 0x14, 0x23, 0x01, 0x3B, + 0x6F, 0x4C, 0xDB, 0xB2, 0x59, 0x01, 0x03, 0x9D, 0x09, 0x19, 0x6C, 0x5A, 0x01, 0x9E, 0x61, 0x46, + 0x34, 0x41, 0x01, 0x29, 0x12, 0xD1, 0x6B, 0x4D, 0x03, 0x9E, 0x59, 0x01, 0x49, 0x19, 0x71, 0x5A, + 0x01, 0x9D, 0x02, 0x9E, 0x29, 0x41, 0x64, 0x18, 0x64, 0x10, 0x00, 0x21, 0xA6, 0x42, 0x00, 0xDD, + 0x31, 0x1B, 0xC5, 0x18, 0x64, 0x4C, 0x6D, 0x00, 0x29, 0x53, 0x48, 0xE0, 0x61, 0x46, 0x02, 0x29, + 0x41, 0xD0, 0x57, 0x49, 0x00, 0x9D, 0x09, 0x78, 0x49, 0xB2, 0x01, 0x39, 0x8D, 0x42, 0x3A, 0xDA, + 0xC5, 0x18, 0x5D, 0x49, 0x6D, 0x00, 0x69, 0x5E, 0x53, 0x4D, 0x09, 0x1B, 0x00, 0x29, 0x11, 0xDD, + 0xFF, 0x29, 0x01, 0xDD, 0xFF, 0x21, 0x01, 0xE0, 0x05, 0x29, 0x0C, 0xDD, 0x57, 0x01, 0xFF, 0x18, + 0xBF, 0x00, 0xEE, 0x59, 0x01, 0x36, 0xEE, 0x51, 0x02, 0x2E, 0x17, 0xD9, 0x49, 0x4D, 0xC6, 0x18, + 0x71, 0x55, 0x13, 0xE0, 0x00, 0x21, 0x56, 0x01, 0xF6, 0x18, 0xB6, 0x00, 0xAD, 0x59, 0x02, 0x2D, + 0x0C, 0xD8, 0x44, 0x4D, 0xC6, 0x18, 0x77, 0x5D, 0xB9, 0x42, 0x00, 0xDA, 0x39, 0x1C, 0x71, 0x55, + 0x55, 0x01, 0xED, 0x18, 0x40, 0x49, 0xAD, 0x00, 0x00, 0x26, 0x6E, 0x50, 0x41, 0x49, 0x0D, 0x68, + 0x00, 0x2D, 0x08, 0xD0, 0x56, 0x01, 0xF6, 0x18, 0x3B, 0x4D, 0xB6, 0x00, 0x75, 0x59, 0x02, 0x2D, + 0x01, 0xD9, 0x00, 0x25, 0x0D, 0x60, 0xC1, 0x18, 0x3F, 0x4D, 0x49, 0x00, 0x4C, 0x53, 0x00, 0x2B, + 0x95, 0xD1, 0x00, 0x2A, 0x86, 0xD1, 0x38, 0x4B, 0x3C, 0x48, 0x1E, 0x7A, 0x02, 0x23, 0x01, 0x3B, + 0xDB, 0xB2, 0x36, 0x49, 0x3A, 0x4D, 0x5A, 0x1C, 0x52, 0x00, 0x8C, 0x5A, 0xE9, 0x5C, 0x35, 0x4D, + 0x49, 0x01, 0x49, 0x19, 0x51, 0x5A, 0x62, 0x46, 0x31, 0x41, 0x01, 0x2A, 0x07, 0xD1, 0x34, 0x41, + 0x00, 0x22, 0x8C, 0x42, 0x00, 0xDD, 0x62, 0x1A, 0x59, 0x00, 0x42, 0x52, 0x3A, 0xE0, 0x02, 0x2A, + 0x35, 0xD0, 0x23, 0x4D, 0x00, 0x9C, 0x2A, 0x78, 0x52, 0xB2, 0x01, 0x3A, 0x94, 0x42, 0x2E, 0xDA, + 0x5A, 0x00, 0x82, 0x5E, 0x22, 0x4D, 0x52, 0x1A, 0x00, 0x2A, 0x0E, 0xDD, 0xFF, 0x2A, 0x01, 0xDD, + 0xFF, 0x22, 0x01, 0xE0, 0x05, 0x2A, 0x09, 0xDD, 0x9C, 0x00, 0x2F, 0x59, 0x01, 0x37, 0x2F, 0x51, + 0x02, 0x2F, 0x11, 0xD9, 0x19, 0x4C, 0xE2, 0x54, 0x0E, 0xE0, 0x00, 0x22, 0x9C, 0x00, 0x2C, 0x59, + 0x02, 0x2C, 0x09, 0xD8, 0x15, 0x4C, 0xE5, 0x5C, 0xAA, 0x42, 0x00, 0xDA, 0x2A, 0x1C, 0xE2, 0x54, + 0x13, 0x4A, 0x9C, 0x00, 0x00, 0x25, 0xA5, 0x50, 0x12, 0x4A, 0x14, 0x68, 0x00, 0x2C, 0x06, 0xD0, + 0x0F, 0x4C, 0x9D, 0x00, 0x2C, 0x59, 0x02, 0x2C, 0x01, 0xD9, 0x00, 0x24, 0x14, 0x60, 0x13, 0x4C, + 0x5A, 0x00, 0x11, 0x53, 0x00, 0x2B, 0xAA, 0xD1, 0x00, 0x9B, 0x64, 0x46, 0x01, 0x3B, 0xDB, 0xB2, + 0x00, 0x93, 0x00, 0x9D, 0xFF, 0x2D, 0x00, 0xD0, 0x1D, 0xE7, 0x05, 0xB0, 0xF0, 0xBD, 0xC0, 0x46, + 0x30, 0x06, 0x00, 0x20, 0xA0, 0x0A, 0x00, 0x20, 0x18, 0x00, 0x00, 0x20, 0x6E, 0x11, 0x00, 0x20, + 0x78, 0x08, 0x00, 0x20, 0x94, 0x09, 0x00, 0x20, 0xC8, 0x0B, 0x00, 0x20, 0x00, 0x08, 0x00, 0x40, + 0x20, 0x08, 0x00, 0x40, 0x40, 0x08, 0x00, 0x40, 0x28, 0x0D, 0x00, 0x20, 0xBE, 0x0B, 0x00, 0x20, + 0x61, 0x36, 0x00, 0x00, 0xF0, 0xB5, 0xB4, 0x4B, 0x01, 0x22, 0x1A, 0x60, 0x8D, 0xB0, 0x80, 0x23, + 0x0B, 0x90, 0xDB, 0x05, 0x9A, 0x68, 0xB1, 0x4C, 0x80, 0x21, 0x49, 0x01, 0x22, 0x40, 0x0A, 0x43, + 0x9A, 0x60, 0x99, 0x68, 0x80, 0x22, 0x12, 0x02, 0x0A, 0x43, 0x00, 0x26, 0x00, 0x27, 0x9A, 0x60, + 0xFB, 0x20, 0x01, 0xF0, 0x8E, 0xFB, 0x02, 0x96, 0x03, 0x97, 0x21, 0x27, 0x01, 0x3F, 0xFF, 0xB2, + 0x38, 0x1C, 0x00, 0xF0, 0x6B, 0xF9, 0x02, 0x9A, 0x03, 0x9E, 0x10, 0x43, 0x0E, 0x43, 0x05, 0x96, + 0x02, 0x90, 0x03, 0x96, 0x00, 0x2F, 0xF1, 0xD1, 0xC6, 0x43, 0x09, 0x96, 0x03, 0x9E, 0xA0, 0x4D, + 0xF6, 0x43, 0x0A, 0x96, 0x2B, 0x68, 0x09, 0x9E, 0x9E, 0x4C, 0x33, 0x40, 0x2B, 0x60, 0x0A, 0x9E, + 0x6B, 0x68, 0x03, 0x99, 0x33, 0x40, 0x6B, 0x60, 0x09, 0x9E, 0x23, 0x68, 0x33, 0x40, 0x23, 0x60, + 0x0A, 0x9E, 0x63, 0x68, 0x33, 0x40, 0x98, 0x4E, 0x63, 0x60, 0x33, 0x68, 0x03, 0x43, 0x33, 0x60, + 0x73, 0x68, 0x64, 0x20, 0x0B, 0x43, 0x73, 0x60, 0x01, 0xF0, 0x54, 0xF9, 0x2A, 0x68, 0x6B, 0x68, + 0x0B, 0xA9, 0x08, 0x78, 0x07, 0x92, 0x08, 0x93, 0x00, 0xF0, 0x38, 0xF9, 0x07, 0x9A, 0x03, 0x1C, + 0x04, 0x90, 0x13, 0x43, 0x08, 0x98, 0x06, 0x91, 0x2B, 0x60, 0x0B, 0x1C, 0x03, 0x43, 0x6B, 0x60, + 0x0A, 0x20, 0x01, 0xF0, 0x3F, 0xF9, 0x05, 0x9B, 0x06, 0x98, 0x04, 0x9A, 0x02, 0x99, 0x83, 0x43, + 0x05, 0x93, 0x91, 0x43, 0x85, 0x4B, 0x02, 0x91, 0x00, 0x20, 0x00, 0x21, 0x03, 0xC3, 0x84, 0x4A, + 0x84, 0x49, 0x11, 0x60, 0x84, 0x4A, 0x04, 0x21, 0x10, 0x68, 0x08, 0x43, 0x10, 0x60, 0x10, 0x68, + 0x02, 0x21, 0x88, 0x43, 0x10, 0x60, 0x20, 0x68, 0x02, 0x99, 0x08, 0x43, 0x20, 0x60, 0x05, 0x99, + 0x60, 0x68, 0x08, 0x43, 0x60, 0x60, 0x10, 0x68, 0x01, 0x21, 0x8C, 0x46, 0x08, 0x43, 0x7B, 0x49, + 0x10, 0x60, 0x0F, 0x60, 0x7A, 0x4F, 0x7B, 0x49, 0x07, 0x97, 0x67, 0x46, 0x04, 0x97, 0x2F, 0x1C, + 0x25, 0x1C, 0x34, 0x1C, 0x75, 0x48, 0x78, 0x4E, 0x00, 0x68, 0x06, 0x90, 0x30, 0x78, 0xF6, 0x78, + 0xB4, 0x46, 0x86, 0x00, 0x30, 0x18, 0x06, 0x02, 0x30, 0x1A, 0x66, 0x46, 0x01, 0x36, 0x30, 0x41, + 0x6C, 0x4E, 0x30, 0x1A, 0x06, 0x9E, 0x86, 0x42, 0x23, 0xD3, 0x48, 0x68, 0x0E, 0x68, 0x84, 0x46, + 0x02, 0x98, 0xB0, 0x43, 0x05, 0x9E, 0x08, 0x90, 0x60, 0x46, 0x86, 0x43, 0x01, 0x96, 0x1E, 0x1C, + 0x08, 0x3E, 0x70, 0x68, 0x84, 0x46, 0x01, 0x98, 0x84, 0x45, 0x04, 0xD3, 0xDA, 0xD1, 0x36, 0x68, + 0x08, 0x98, 0x86, 0x42, 0xD6, 0xD2, 0x07, 0x98, 0x06, 0x9E, 0x40, 0xC0, 0x08, 0x9E, 0x07, 0x90, + 0x1E, 0x60, 0x04, 0x9E, 0x01, 0x98, 0x01, 0x36, 0x58, 0x60, 0x04, 0x96, 0x08, 0x33, 0x21, 0x2E, + 0xC8, 0xD1, 0x13, 0x68, 0x01, 0x21, 0x8B, 0x43, 0x13, 0x60, 0x5C, 0x48, 0xFF, 0x21, 0x21, 0x22, + 0x02, 0xF0, 0xF4, 0xF9, 0x04, 0x9E, 0x01, 0x2E, 0x67, 0xD0, 0x33, 0x1C, 0x01, 0x3B, 0x4F, 0x4A, + 0xDE, 0x00, 0xB6, 0x18, 0x56, 0x4A, 0x9B, 0x00, 0x9A, 0x18, 0x58, 0xE0, 0x33, 0x1C, 0x08, 0x3B, + 0x06, 0xCB, 0x33, 0x68, 0x21, 0x20, 0x8B, 0x43, 0x07, 0x93, 0x73, 0x68, 0x02, 0x90, 0x93, 0x43, + 0x08, 0x93, 0x02, 0x99, 0x6A, 0x46, 0x01, 0x39, 0x08, 0x23, 0x02, 0x91, 0x98, 0x5C, 0x00, 0xF0, + 0x9D, 0xF8, 0x07, 0x9A, 0x08, 0x9B, 0x10, 0x40, 0x19, 0x40, 0x08, 0x43, 0x39, 0xD0, 0x46, 0x48, + 0x05, 0x99, 0xC3, 0x78, 0x0A, 0x68, 0x3F, 0x48, 0x01, 0x33, 0x82, 0x1A, 0x9A, 0x40, 0x42, 0x49, + 0x06, 0x92, 0x48, 0x78, 0x02, 0xF0, 0x34, 0xF8, 0x01, 0x1C, 0x06, 0x98, 0x02, 0xF0, 0xD0, 0xF8, + 0x0B, 0x9A, 0x07, 0x23, 0x14, 0x2A, 0x00, 0xDC, 0x0A, 0x23, 0x58, 0x43, 0xFF, 0x23, 0xC0, 0x08, + 0x98, 0x42, 0x18, 0xD8, 0x38, 0x48, 0x05, 0x99, 0xC3, 0x78, 0x0A, 0x68, 0x31, 0x48, 0x01, 0x33, + 0x82, 0x1A, 0x9A, 0x40, 0x34, 0x49, 0x06, 0x92, 0x48, 0x78, 0x02, 0xF0, 0x19, 0xF8, 0x01, 0x1C, + 0x06, 0x98, 0x02, 0xF0, 0xB5, 0xF8, 0x0B, 0x9A, 0x07, 0x23, 0x14, 0x2A, 0x00, 0xDC, 0x0A, 0x23, + 0x43, 0x43, 0xDB, 0x08, 0xDB, 0xB2, 0x2D, 0x4A, 0x02, 0x98, 0x13, 0x54, 0x1E, 0x4B, 0x01, 0x22, + 0x1A, 0x60, 0x02, 0x99, 0x00, 0x29, 0xB4, 0xD1, 0x05, 0x9A, 0x08, 0x3E, 0x04, 0x3A, 0x04, 0x9B, + 0x05, 0x92, 0x01, 0x3B, 0x04, 0x93, 0x00, 0x2B, 0xA0, 0xD1, 0x09, 0x9E, 0x23, 0x68, 0x25, 0x4A, + 0x33, 0x40, 0x23, 0x60, 0x0A, 0x9E, 0x63, 0x68, 0x07, 0x21, 0x33, 0x40, 0x63, 0x60, 0x09, 0x9E, + 0x3B, 0x68, 0x12, 0x48, 0x33, 0x40, 0x3B, 0x60, 0x0A, 0x9E, 0x7B, 0x68, 0x33, 0x40, 0x7B, 0x60, + 0x2B, 0x68, 0x09, 0x9F, 0x0D, 0xB0, 0x3B, 0x40, 0x2B, 0x60, 0x6B, 0x68, 0x33, 0x40, 0x6B, 0x60, + 0x54, 0x7C, 0x80, 0x23, 0xDB, 0x05, 0x21, 0x40, 0x9C, 0x68, 0x09, 0x03, 0x04, 0x40, 0x0C, 0x43, + 0x9C, 0x60, 0x91, 0x7C, 0x01, 0x22, 0x98, 0x68, 0x11, 0x40, 0x13, 0x4A, 0xC9, 0x03, 0x02, 0x40, + 0x0A, 0x43, 0x9A, 0x60, 0xF0, 0xBD, 0xC0, 0x46, 0x94, 0x09, 0x00, 0x20, 0xFF, 0x8F, 0xFF, 0xFF, + 0x0C, 0x00, 0x00, 0x40, 0x14, 0x00, 0x00, 0x40, 0x24, 0x00, 0x00, 0x40, 0x28, 0x0D, 0x00, 0x20, + 0x14, 0xE0, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0x00, 0x10, 0xE0, 0x00, 0xE0, 0x18, 0xE0, 0x00, 0xE0, + 0x1C, 0x00, 0x00, 0x20, 0x1C, 0x00, 0x00, 0x40, 0x98, 0x0A, 0x00, 0x20, 0xA0, 0x0A, 0x00, 0x20, + 0x18, 0x00, 0x00, 0x20, 0xC8, 0x0B, 0x00, 0x20, 0xFF, 0x7F, 0xFF, 0xFF, 0x10, 0xB5, 0x14, 0x28, + 0x06, 0xD9, 0x0D, 0x4B, 0x18, 0x18, 0x15, 0x23, 0x5B, 0x42, 0xC3, 0x56, 0x06, 0x33, 0x02, 0xE0, + 0x0A, 0x4B, 0x1B, 0x56, 0x12, 0x33, 0x01, 0x24, 0x1F, 0x2B, 0x04, 0xDD, 0x21, 0x1C, 0x20, 0x3B, + 0x99, 0x40, 0x00, 0x24, 0x01, 0xE0, 0x9C, 0x40, 0x00, 0x21, 0x00, 0x22, 0x0B, 0x1C, 0x20, 0x1C, + 0x11, 0x1C, 0x80, 0x18, 0x59, 0x41, 0x10, 0xBD, 0x51, 0x36, 0x00, 0x00, 0x38, 0x36, 0x00, 0x00, + 0x00, 0xB5, 0x43, 0x78, 0x5A, 0xB2, 0x0A, 0x2A, 0x01, 0xDC, 0x01, 0x33, 0x43, 0x70, 0x03, 0x78, + 0x5A, 0xB2, 0x00, 0x2A, 0x01, 0xDD, 0x01, 0x3B, 0x03, 0x70, 0xC3, 0x78, 0x5A, 0xB2, 0x11, 0x2A, + 0x01, 0xDC, 0x01, 0x33, 0xC3, 0x70, 0x83, 0x78, 0x5A, 0xB2, 0x00, 0x2A, 0x01, 0xDD, 0x01, 0x3B, + 0x83, 0x70, 0x00, 0xBD, 0x03, 0x4B, 0x00, 0x22, 0x1A, 0x60, 0x03, 0x4B, 0x01, 0x22, 0x52, 0x42, + 0x5A, 0x60, 0x70, 0x47, 0x20, 0x0C, 0x00, 0x20, 0x2C, 0x08, 0x00, 0x20, 0x10, 0xB5, 0x18, 0x23, + 0x00, 0x21, 0x05, 0xE0, 0x01, 0x3A, 0xD2, 0xB2, 0x54, 0x00, 0x21, 0x52, 0x00, 0x2A, 0xF9, 0xD1, + 0x01, 0x3B, 0xDB, 0xB2, 0xFF, 0x2B, 0x04, 0xD0, 0x02, 0x4A, 0x58, 0x01, 0x80, 0x18, 0x10, 0x22, + 0xF0, 0xE7, 0x10, 0xBD, 0x00, 0x08, 0x00, 0x40, 0x00, 0xB5, 0x16, 0x49, 0x16, 0x4B, 0x0A, 0x1C, + 0x44, 0x32, 0x1B, 0x78, 0x12, 0x78, 0x5A, 0x43, 0x14, 0x4B, 0x92, 0x09, 0x9B, 0x68, 0x9A, 0x42, + 0x00, 0xDA, 0x1A, 0x1C, 0x12, 0x4B, 0x18, 0x68, 0x23, 0x23, 0x01, 0x28, 0x00, 0xDD, 0x19, 0x23, + 0x08, 0x1C, 0x38, 0x30, 0x5A, 0x43, 0x03, 0x70, 0x09, 0x7E, 0x92, 0x11, 0x8A, 0x42, 0x00, 0xDA, + 0x0A, 0x1C, 0x0C, 0x4B, 0x1A, 0x60, 0x80, 0x23, 0xDB, 0x05, 0x19, 0x6B, 0x12, 0x05, 0x09, 0x03, + 0x09, 0x0B, 0x11, 0x43, 0x19, 0x63, 0x18, 0x6B, 0x11, 0x0B, 0x07, 0x4A, 0x02, 0x40, 0x0A, 0x43, + 0x1A, 0x63, 0x00, 0xBD, 0xC8, 0x0B, 0x00, 0x20, 0xAC, 0x09, 0x00, 0x20, 0xAC, 0x07, 0x00, 0x20, + 0xE0, 0x07, 0x00, 0x20, 0xB4, 0x0B, 0x00, 0x20, 0xFF, 0x00, 0xF0, 0xFF, 0x08, 0xB5, 0x84, 0x22, + 0x52, 0x00, 0x05, 0x48, 0x00, 0x21, 0x02, 0xF0, 0x99, 0xF8, 0x04, 0x4B, 0x00, 0x22, 0x1A, 0x60, + 0x01, 0x22, 0x52, 0x42, 0x5A, 0x60, 0x08, 0xBD, 0x20, 0x0C, 0x00, 0x20, 0x0C, 0x08, 0x00, 0x20, + 0xF0, 0xB5, 0xA1, 0x22, 0x93, 0xB0, 0x00, 0x21, 0x52, 0x00, 0xB8, 0x48, 0x02, 0xF0, 0x86, 0xF8, + 0x00, 0x21, 0xFC, 0x22, 0xB6, 0x48, 0x02, 0xF0, 0x81, 0xF8, 0xB6, 0x4C, 0x84, 0x22, 0x00, 0x21, + 0x52, 0x00, 0x20, 0x1C, 0x02, 0xF0, 0x7A, 0xF8, 0x0D, 0x25, 0x7F, 0x21, 0xFF, 0x22, 0x01, 0x3D, + 0xED, 0xB2, 0x2B, 0x1C, 0x34, 0x33, 0x9B, 0x00, 0xE3, 0x18, 0x99, 0x71, 0x19, 0x71, 0xDA, 0x71, + 0x5A, 0x71, 0x00, 0x2D, 0xF3, 0xD1, 0xAC, 0x4C, 0x20, 0x1C, 0xFF, 0xF7, 0x51, 0xFF, 0x64, 0x78, + 0x68, 0x46, 0x07, 0x94, 0x1C, 0x21, 0x08, 0x56, 0x17, 0x22, 0x42, 0x43, 0xA3, 0x4B, 0x01, 0x95, + 0xA4, 0x4D, 0xD3, 0x18, 0x0A, 0x90, 0x08, 0x93, 0x2F, 0x1C, 0x79, 0xE1, 0xDB, 0x78, 0x01, 0x9C, + 0x5A, 0xB2, 0xDB, 0xB2, 0x05, 0x93, 0x0A, 0x9B, 0x01, 0x32, 0x01, 0x33, 0x1B, 0x1B, 0x03, 0x92, + 0x0F, 0x93, 0x5E, 0xE1, 0x03, 0x9E, 0x0F, 0x9C, 0x9C, 0x49, 0x32, 0x01, 0x12, 0x19, 0x50, 0x5C, + 0x8C, 0x46, 0x43, 0x1E, 0xDB, 0xB2, 0x9A, 0x49, 0x52, 0x00, 0x0C, 0x2B, 0x62, 0xD8, 0x08, 0x9E, + 0xB4, 0x46, 0x03, 0x9E, 0xB4, 0x44, 0x66, 0x46, 0xF0, 0x75, 0x96, 0x48, 0x89, 0x5A, 0x44, 0x69, + 0x8A, 0xB2, 0x01, 0x34, 0x44, 0x61, 0x04, 0x9C, 0x98, 0x00, 0x54, 0x43, 0x38, 0x18, 0x46, 0x68, + 0x8C, 0x46, 0x34, 0x19, 0x44, 0x60, 0x02, 0x9C, 0x18, 0x1C, 0x0E, 0x30, 0x54, 0x43, 0x80, 0x00, + 0xC6, 0x59, 0x04, 0x21, 0x34, 0x19, 0xC4, 0x51, 0x18, 0x1C, 0x0D, 0x30, 0xC0, 0x00, 0x38, 0x18, + 0x84, 0x88, 0x04, 0x9E, 0x14, 0x19, 0x84, 0x80, 0x44, 0x89, 0x0C, 0x34, 0x44, 0x81, 0x18, 0x1C, + 0x34, 0x30, 0x84, 0x00, 0x3C, 0x19, 0x61, 0x56, 0x8E, 0x42, 0x04, 0xDA, 0x07, 0x99, 0x01, 0x9E, + 0x89, 0x1B, 0x06, 0x91, 0x21, 0x71, 0x80, 0x00, 0x38, 0x18, 0x05, 0x24, 0x04, 0x57, 0x04, 0x9E, + 0xA6, 0x42, 0x03, 0xDD, 0x07, 0x9E, 0x01, 0x99, 0x74, 0x1A, 0x44, 0x71, 0x18, 0x1C, 0x34, 0x30, + 0x84, 0x00, 0x3C, 0x19, 0x06, 0x26, 0xA6, 0x57, 0x02, 0x99, 0xB1, 0x42, 0x03, 0xDA, 0x6E, 0x46, + 0x14, 0x21, 0x8E, 0x5D, 0xA6, 0x71, 0x6F, 0x4C, 0x80, 0x00, 0x20, 0x18, 0x07, 0x26, 0x86, 0x57, + 0x02, 0x99, 0xB1, 0x42, 0x03, 0xDD, 0x6E, 0x46, 0x14, 0x21, 0x8E, 0x5D, 0xC6, 0x71, 0x0D, 0x33, + 0xDB, 0x00, 0xE4, 0x18, 0x06, 0x20, 0x23, 0x5E, 0x93, 0x42, 0x00, 0xDB, 0xEA, 0xE0, 0x61, 0x46, + 0xE1, 0x80, 0xE7, 0xE0, 0x8B, 0x5A, 0x09, 0x93, 0x00, 0x2B, 0x00, 0xD1, 0xE2, 0xE0, 0x07, 0x9A, + 0x01, 0x9E, 0x00, 0x23, 0x92, 0x1B, 0x11, 0x93, 0x04, 0x24, 0x06, 0x92, 0x62, 0x48, 0x01, 0x3C, + 0xE4, 0xB2, 0x02, 0x5D, 0x61, 0x48, 0x05, 0x9E, 0x06, 0x99, 0x03, 0x5D, 0xB2, 0x18, 0x5B, 0x18, + 0x52, 0xB2, 0x01, 0x32, 0x5B, 0xB2, 0x12, 0x01, 0x01, 0x33, 0xD3, 0x18, 0x62, 0x46, 0xD1, 0x5C, + 0x00, 0x23, 0xCE, 0xB2, 0x72, 0x1E, 0x0C, 0x2A, 0x03, 0xD9, 0x0A, 0xE0, 0x01, 0x33, 0xDB, 0xB2, + 0x01, 0xE0, 0x11, 0xAA, 0x76, 0xB2, 0xD0, 0x5C, 0x00, 0x28, 0x01, 0xD0, 0xB0, 0x42, 0xF5, 0xD1, + 0xD1, 0x54, 0x00, 0x2C, 0xDA, 0xD1, 0x23, 0x1C, 0x11, 0xAA, 0x9A, 0x5C, 0xDE, 0xB2, 0x00, 0x2A, + 0x04, 0xD0, 0x01, 0x33, 0x04, 0x2B, 0xF7, 0xD1, 0x1E, 0x1C, 0x02, 0xE0, 0x00, 0x2E, 0x00, 0xD1, + 0xA8, 0xE0, 0x08, 0x98, 0x03, 0x99, 0x32, 0x1C, 0x43, 0x18, 0x0E, 0x32, 0xDA, 0x75, 0x31, 0x1C, + 0x09, 0x98, 0x01, 0xF0, 0xF3, 0xFE, 0x04, 0x9A, 0x02, 0x9B, 0x42, 0x43, 0x43, 0x43, 0x0C, 0x92, + 0x0D, 0x93, 0x41, 0x42, 0x00, 0x22, 0x73, 0x1E, 0x0E, 0x91, 0x06, 0x92, 0x0B, 0x93, 0x21, 0xE0, + 0x61, 0x46, 0x0B, 0x5D, 0x01, 0x34, 0x01, 0x3B, 0x5B, 0xB2, 0x9A, 0x00, 0xAA, 0x18, 0x51, 0x68, + 0xE4, 0xB2, 0x8C, 0x46, 0x0C, 0x99, 0x8C, 0x44, 0x61, 0x46, 0x51, 0x60, 0x1A, 0x1C, 0x0E, 0x32, + 0x92, 0x00, 0xA9, 0x58, 0x0D, 0x33, 0x8C, 0x46, 0x0D, 0x99, 0xDB, 0x00, 0x8C, 0x44, 0x61, 0x46, + 0xA9, 0x50, 0xEB, 0x18, 0x9A, 0x88, 0x82, 0x18, 0x9A, 0x80, 0x31, 0x4A, 0x91, 0x5D, 0x5A, 0x89, + 0x8A, 0x18, 0x5A, 0x81, 0x06, 0x99, 0x09, 0x9A, 0x8B, 0x18, 0x0E, 0x9A, 0x89, 0x18, 0x0B, 0x9A, + 0x06, 0x91, 0x11, 0xA9, 0x8C, 0x46, 0x94, 0x42, 0xD2, 0xDB, 0x0A, 0x5D, 0x04, 0x98, 0x01, 0x3A, + 0x52, 0xB2, 0x91, 0x00, 0x58, 0x43, 0x69, 0x18, 0x4C, 0x68, 0xB4, 0x46, 0x20, 0x18, 0x48, 0x60, + 0x02, 0x98, 0x11, 0x1C, 0x58, 0x43, 0x0E, 0x31, 0x89, 0x00, 0x6C, 0x58, 0x0D, 0x32, 0x20, 0x18, + 0xD2, 0x00, 0x68, 0x50, 0xAA, 0x18, 0x91, 0x88, 0x5B, 0x18, 0x93, 0x80, 0x1C, 0x4B, 0x99, 0x5D, + 0x53, 0x89, 0xCB, 0x18, 0x53, 0x81, 0x01, 0x21, 0x00, 0x23, 0x40, 0xE0, 0x44, 0x24, 0xE4, 0x18, + 0x68, 0x46, 0x26, 0x5C, 0x02, 0x9C, 0x70, 0x1E, 0xC0, 0xB2, 0x06, 0x90, 0xA0, 0x5C, 0x06, 0x9E, + 0x44, 0x1E, 0xE4, 0xB2, 0x15, 0x20, 0xA6, 0x42, 0x05, 0xD2, 0x70, 0x43, 0x08, 0x4E, 0x04, 0x19, + 0x01, 0x20, 0x30, 0x55, 0x07, 0xE0, 0x44, 0x43, 0x06, 0x9E, 0x05, 0x48, 0xA4, 0x19, 0x06, 0x94, + 0x06, 0x9E, 0x01, 0x24, 0x84, 0x55, 0x01, 0x32, 0x1A, 0xE0, 0xC0, 0x46, 0xAA, 0x0F, 0x00, 0x20, + 0xA0, 0x0A, 0x00, 0x20, 0x8C, 0x08, 0x00, 0x20, 0x22, 0x0F, 0x00, 0x20, 0x00, 0x02, 0x00, 0x40, + 0x00, 0x04, 0x00, 0x40, 0xAC, 0x07, 0x00, 0x20, 0x67, 0x35, 0x00, 0x00, 0x63, 0x35, 0x00, 0x00, + 0x5E, 0x35, 0x00, 0x00, 0x4E, 0xB2, 0x11, 0xA8, 0x80, 0x19, 0x00, 0x22, 0x02, 0x90, 0x09, 0x96, + 0x09, 0x9C, 0x10, 0x19, 0x60, 0x45, 0xC1, 0xDB, 0x01, 0x31, 0x01, 0x33, 0xC9, 0xB2, 0x0B, 0x9E, + 0xB3, 0x42, 0xEF, 0xDB, 0x05, 0x9B, 0x03, 0x9C, 0x01, 0x3B, 0x01, 0x3C, 0xDB, 0xB2, 0x03, 0x94, + 0x05, 0x93, 0x03, 0x9E, 0x3A, 0x4B, 0x01, 0x3E, 0x02, 0x96, 0x9B, 0x78, 0x5B, 0xB2, 0x9E, 0x42, + 0x00, 0xDB, 0x97, 0xE6, 0x01, 0x9C, 0x08, 0x9E, 0x01, 0x34, 0x17, 0x3E, 0x01, 0x94, 0x08, 0x96, + 0x0A, 0x9C, 0x01, 0x9E, 0x32, 0x4B, 0xA4, 0x1B, 0x04, 0x94, 0x00, 0x22, 0x9A, 0x56, 0x94, 0x42, + 0x00, 0xDB, 0x7B, 0xE6, 0x2F, 0x4E, 0x00, 0x27, 0x34, 0x1C, 0x35, 0x1C, 0x68, 0x3C, 0x34, 0x3D, + 0x00, 0x21, 0x70, 0x5E, 0xFB, 0xB2, 0x01, 0x90, 0x00, 0x28, 0x1D, 0xD0, 0xF0, 0x88, 0x0C, 0x21, + 0x01, 0xF0, 0xD6, 0xFD, 0xF0, 0x80, 0x20, 0x68, 0x01, 0x99, 0xC0, 0x01, 0x01, 0xF0, 0x1E, 0xFE, + 0x01, 0xC4, 0x28, 0x68, 0x01, 0x99, 0xC0, 0x01, 0x01, 0xF0, 0x18, 0xFE, 0x01, 0xC5, 0x38, 0x1C, + 0x21, 0x4A, 0x34, 0x30, 0x80, 0x00, 0x80, 0x18, 0x04, 0x30, 0x01, 0x37, 0xFF, 0xF7, 0x98, 0xFD, + 0x08, 0x36, 0x0D, 0x2F, 0xDC, 0xD1, 0x3B, 0x1C, 0x1B, 0x4A, 0x1C, 0x49, 0x13, 0x60, 0x1C, 0x4B, + 0x1A, 0x1C, 0x31, 0x33, 0x30, 0x32, 0x1B, 0x78, 0x17, 0x78, 0x01, 0x93, 0x0B, 0x68, 0x02, 0x22, + 0xBC, 0x46, 0x01, 0x3A, 0xD2, 0xB2, 0x17, 0x4C, 0x50, 0x00, 0x20, 0x5A, 0x06, 0xB2, 0xF6, 0x43, + 0xF6, 0x17, 0x06, 0x40, 0x10, 0x1D, 0xB5, 0xB2, 0x40, 0x00, 0x46, 0x52, 0x0E, 0x1C, 0x00, 0x2D, + 0x10, 0xD0, 0x11, 0x4F, 0x2D, 0xB2, 0xC7, 0x5F, 0x00, 0x2F, 0x04, 0xDC, 0x65, 0x45, 0x08, 0xDA, + 0x00, 0x25, 0x45, 0x52, 0x06, 0xE0, 0x01, 0x9F, 0xBD, 0x42, 0x02, 0xDA, 0x00, 0x24, 0x44, 0x52, + 0x00, 0xE0, 0x01, 0x33, 0x00, 0x2A, 0xDC, 0xD1, 0x13, 0xB0, 0x33, 0x60, 0xF0, 0xBD, 0xC0, 0x46, + 0x22, 0x0F, 0x00, 0x20, 0xF8, 0x08, 0x00, 0x20, 0x8C, 0x08, 0x00, 0x20, 0x0C, 0x08, 0x00, 0x20, + 0xC8, 0x0B, 0x00, 0x20, 0xBE, 0x0B, 0x00, 0x20, 0x1C, 0x08, 0x00, 0x20, 0xF0, 0xB5, 0x43, 0x1C, + 0x07, 0x1C, 0x8F, 0xB0, 0x9D, 0x4E, 0x0D, 0x37, 0xDB, 0xB2, 0x09, 0x93, 0xFB, 0x00, 0xF3, 0x18, + 0x02, 0x92, 0x05, 0x93, 0x07, 0x97, 0x04, 0x1C, 0x04, 0x20, 0x1F, 0x5E, 0x0B, 0x1C, 0x0D, 0x33, + 0xDB, 0x00, 0xF3, 0x18, 0x03, 0x97, 0x08, 0x93, 0x04, 0x20, 0x1F, 0x5E, 0x03, 0x98, 0x04, 0x97, + 0xC7, 0x19, 0x06, 0x97, 0x8B, 0x00, 0xA7, 0x00, 0xF7, 0x19, 0xF3, 0x18, 0x03, 0x9A, 0x78, 0x68, + 0x5B, 0x68, 0x0D, 0x1C, 0x04, 0x99, 0x50, 0x43, 0x4B, 0x43, 0x06, 0x99, 0x18, 0x18, 0x01, 0xF0, + 0x9D, 0xFD, 0x2B, 0x1C, 0x00, 0xB2, 0x0E, 0x33, 0x78, 0x60, 0x9B, 0x00, 0x27, 0x1C, 0x9B, 0x59, + 0x04, 0x98, 0x0E, 0x37, 0xBF, 0x00, 0x43, 0x43, 0x03, 0x99, 0xB8, 0x59, 0x48, 0x43, 0x06, 0x99, + 0x18, 0x18, 0x01, 0xF0, 0x8B, 0xFD, 0x00, 0xB2, 0xB8, 0x51, 0x20, 0x1C, 0x34, 0x30, 0x80, 0x00, + 0x30, 0x18, 0x02, 0x99, 0x04, 0x22, 0x04, 0x30, 0x01, 0xF0, 0xE2, 0xFD, 0x08, 0x9F, 0xFB, 0x88, + 0x05, 0x9F, 0x1A, 0xB2, 0x06, 0x21, 0x79, 0x5E, 0x91, 0x42, 0x01, 0xDA, 0x05, 0x9F, 0xFB, 0x80, + 0x07, 0x9F, 0x2B, 0x1C, 0x0D, 0x33, 0xFA, 0x00, 0xDB, 0x00, 0xF3, 0x18, 0xB6, 0x18, 0x99, 0x88, + 0xB2, 0x88, 0x8A, 0x18, 0xB2, 0x80, 0x59, 0x89, 0x72, 0x89, 0x8A, 0x18, 0xE9, 0xB2, 0x48, 0x1C, + 0x40, 0xB2, 0x03, 0x90, 0x15, 0x20, 0x60, 0x43, 0x72, 0x81, 0x03, 0x9E, 0x00, 0x22, 0x30, 0x18, + 0x9A, 0x80, 0x04, 0x90, 0x13, 0x1C, 0x06, 0x91, 0x0E, 0xE0, 0x15, 0x26, 0x6E, 0x43, 0x04, 0x99, + 0xB4, 0x46, 0x78, 0x18, 0x03, 0x99, 0x8C, 0x44, 0x67, 0x44, 0xC1, 0x5C, 0xFE, 0x5C, 0x31, 0x43, + 0xC1, 0x54, 0x00, 0x20, 0xF8, 0x54, 0x01, 0x33, 0x01, 0x32, 0x06, 0x9E, 0xD2, 0xB2, 0x90, 0x19, + 0x40, 0xB2, 0x5F, 0x4F, 0x0C, 0x28, 0xE8, 0xDD, 0x15, 0x20, 0x60, 0x43, 0x7A, 0x19, 0x00, 0x23, + 0xC7, 0x19, 0x11, 0xE0, 0xA3, 0x42, 0x05, 0xDA, 0x51, 0x1B, 0x0E, 0x5D, 0x10, 0x78, 0x30, 0x43, + 0x08, 0x55, 0x05, 0xE0, 0xA3, 0x42, 0x03, 0xDD, 0x10, 0x78, 0xF9, 0x5C, 0x01, 0x43, 0xF9, 0x54, + 0x00, 0x21, 0x11, 0x70, 0x01, 0x33, 0x15, 0x32, 0xAB, 0x42, 0xEB, 0xDB, 0x02, 0x9F, 0x68, 0x46, + 0x3F, 0x78, 0x10, 0x21, 0x04, 0x97, 0x08, 0x56, 0x17, 0x27, 0x07, 0x90, 0x47, 0x43, 0x00, 0x22, + 0xA4, 0x46, 0x5E, 0xE0, 0x02, 0x9C, 0x00, 0x20, 0xA1, 0x78, 0x4A, 0x4C, 0x4E, 0xB2, 0xBB, 0x19, + 0x1B, 0x19, 0x08, 0x96, 0x0D, 0x93, 0x4C, 0xE0, 0x08, 0x9B, 0x0D, 0x9C, 0xC3, 0x18, 0x24, 0x18, + 0x0A, 0x93, 0x23, 0x7E, 0x07, 0x9E, 0x01, 0x3B, 0x96, 0x19, 0xDB, 0xB2, 0x0B, 0x96, 0x03, 0x94, + 0x05, 0x93, 0x6E, 0x46, 0x14, 0x24, 0xA3, 0x57, 0x0E, 0x2B, 0x37, 0xDD, 0x00, 0x23, 0x01, 0x26, + 0x06, 0x93, 0x76, 0x42, 0x04, 0x23, 0x00, 0x92, 0x01, 0x3B, 0x3B, 0x4C, 0xDB, 0xB2, 0xE4, 0x56, + 0x3A, 0x4A, 0x0C, 0x94, 0xD2, 0x56, 0x0B, 0x9C, 0xA4, 0x18, 0x01, 0x34, 0x17, 0x22, 0x62, 0x43, + 0x34, 0x4C, 0xA4, 0x18, 0x0A, 0x9A, 0xA2, 0x18, 0x0C, 0x9C, 0x01, 0x92, 0x14, 0x19, 0x0C, 0x94, + 0x64, 0x78, 0x01, 0x3C, 0xE4, 0xB2, 0x0C, 0x2C, 0x0D, 0xD8, 0x64, 0xB2, 0x64, 0x45, 0x01, 0xD0, + 0xAC, 0x42, 0x08, 0xD1, 0x72, 0x1C, 0x02, 0xD0, 0xA6, 0x42, 0x02, 0xD1, 0x03, 0xE0, 0x26, 0x1C, + 0x01, 0xE0, 0x01, 0x24, 0x06, 0x94, 0x00, 0x2B, 0xD6, 0xD1, 0x06, 0x9E, 0x00, 0x9A, 0x00, 0x2E, + 0x04, 0xD0, 0x6B, 0x46, 0x14, 0x24, 0xE4, 0x5C, 0x03, 0x9B, 0x1C, 0x76, 0x01, 0x31, 0xC9, 0xB2, + 0x01, 0x30, 0x02, 0x9E, 0x03, 0x24, 0x34, 0x57, 0x4B, 0xB2, 0x9C, 0x42, 0xAC, 0xDA, 0x01, 0x32, + 0x17, 0x37, 0x04, 0x98, 0x02, 0x9C, 0x01, 0x21, 0x13, 0x18, 0x61, 0x56, 0x5B, 0xB2, 0x99, 0x42, + 0x98, 0xDA, 0x23, 0x78, 0x00, 0x20, 0x5E, 0xB2, 0x01, 0x36, 0x17, 0x24, 0xAC, 0x46, 0x1D, 0xE0, + 0x02, 0x9D, 0x32, 0x18, 0xA9, 0x78, 0x62, 0x43, 0x4D, 0xB2, 0x01, 0x35, 0x11, 0x4F, 0xAA, 0x18, + 0xD2, 0x19, 0x0A, 0xE0, 0x15, 0x78, 0x01, 0x3D, 0x6D, 0xB2, 0x65, 0x45, 0x02, 0xD1, 0x09, 0xAD, + 0x2D, 0x78, 0x15, 0x70, 0x01, 0x31, 0xC9, 0xB2, 0x01, 0x32, 0x02, 0x9D, 0x03, 0x27, 0xEF, 0x57, + 0x4D, 0xB2, 0xAF, 0x42, 0xEE, 0xDA, 0x01, 0x33, 0xDB, 0xB2, 0x01, 0x30, 0x02, 0x9F, 0x01, 0x21, + 0x79, 0x56, 0x5A, 0xB2, 0x91, 0x42, 0xDB, 0xDA, 0x0F, 0xB0, 0xF0, 0xBD, 0x8C, 0x08, 0x00, 0x20, + 0xA0, 0x0A, 0x00, 0x20, 0xAA, 0x0F, 0x00, 0x20, 0x67, 0x35, 0x00, 0x00, 0x63, 0x35, 0x00, 0x00, + 0x10, 0xB5, 0x0B, 0x78, 0x00, 0x24, 0x04, 0x57, 0x5A, 0xB2, 0x94, 0x42, 0x00, 0xDD, 0x03, 0x70, + 0x4B, 0x78, 0x01, 0x24, 0x04, 0x57, 0x5A, 0xB2, 0x94, 0x42, 0x00, 0xDA, 0x43, 0x70, 0x8B, 0x78, + 0x02, 0x24, 0x04, 0x57, 0x5A, 0xB2, 0x94, 0x42, 0x00, 0xDD, 0x83, 0x70, 0xCB, 0x78, 0x03, 0x21, + 0x41, 0x56, 0x5A, 0xB2, 0x91, 0x42, 0x00, 0xDA, 0xC3, 0x70, 0x10, 0xBD, 0x08, 0xB5, 0x00, 0xF0, + 0x03, 0xF8, 0x00, 0xF0, 0x2D, 0xF8, 0x08, 0xBD, 0x38, 0xB5, 0x00, 0x21, 0x05, 0x22, 0x0E, 0x48, + 0x01, 0xF0, 0xF4, 0xFC, 0x00, 0x22, 0x0D, 0x49, 0x0D, 0x4C, 0x05, 0x23, 0x10, 0x1C, 0x01, 0x3B, + 0xDB, 0xB2, 0x1D, 0x1C, 0x0D, 0x35, 0xED, 0x00, 0x4D, 0x19, 0xAA, 0x80, 0xDD, 0x1C, 0xED, 0x00, + 0x2A, 0x53, 0x08, 0x4D, 0xE8, 0x54, 0x08, 0x4D, 0xE8, 0x54, 0x00, 0x2B, 0xEF, 0xD1, 0x07, 0x4A, + 0x0B, 0x60, 0x13, 0x60, 0x38, 0xBD, 0xC0, 0x46, 0x04, 0x08, 0x00, 0x20, 0x20, 0x0C, 0x00, 0x20, + 0xC0, 0x09, 0x00, 0x20, 0xB8, 0x0B, 0x00, 0x20, 0x38, 0x0A, 0x00, 0x20, 0x5C, 0x0F, 0x00, 0x20, + 0x38, 0xB5, 0x09, 0x4C, 0x01, 0x23, 0x00, 0x25, 0x5B, 0x42, 0x29, 0x1C, 0x63, 0x60, 0x25, 0x60, + 0x04, 0x22, 0x06, 0x48, 0x01, 0xF0, 0xC2, 0xFC, 0x29, 0x1C, 0x05, 0x22, 0x04, 0x48, 0x01, 0xF0, + 0xBD, 0xFC, 0xA5, 0x60, 0xE5, 0x60, 0x38, 0xBD, 0x0C, 0x08, 0x00, 0x20, 0x6E, 0x11, 0x00, 0x20, + 0x28, 0x0A, 0x00, 0x20, 0x49, 0x43, 0x40, 0x43, 0x40, 0x18, 0x70, 0x47, 0xF0, 0xB5, 0x92, 0x4B, + 0x85, 0xB0, 0x1B, 0x68, 0x05, 0x2B, 0x00, 0xDD, 0x05, 0x23, 0x90, 0x4A, 0x01, 0x21, 0x13, 0x60, + 0x49, 0x42, 0x0D, 0x22, 0x8E, 0x48, 0x01, 0xF0, 0xA1, 0xFC, 0x8E, 0x48, 0xFF, 0x21, 0x34, 0x22, + 0x01, 0xF0, 0x9C, 0xFC, 0x8C, 0x4B, 0x00, 0x24, 0x1B, 0x68, 0x01, 0x93, 0x8B, 0x4B, 0x5B, 0x6A, + 0x02, 0x93, 0x85, 0x4B, 0x1B, 0x68, 0x03, 0x93, 0x89, 0x4D, 0xE3, 0x00, 0x5B, 0x19, 0x18, 0x26, + 0x9B, 0x5F, 0x00, 0x2B, 0x3F, 0xD0, 0x87, 0x4D, 0xA3, 0x00, 0xEF, 0x58, 0x01, 0x9E, 0x86, 0x4B, + 0x02, 0x9D, 0x62, 0x00, 0xB7, 0x40, 0xD3, 0x18, 0x01, 0x26, 0x7F, 0x19, 0x76, 0x42, 0x00, 0x25, + 0x00, 0x93, 0x20, 0xE0, 0x2B, 0x1C, 0x0D, 0x33, 0x77, 0x48, 0xDB, 0x00, 0xC3, 0x18, 0x04, 0x21, + 0x5B, 0x5E, 0x00, 0x2B, 0x15, 0xD0, 0x00, 0x9A, 0xAB, 0x00, 0xC3, 0x18, 0x58, 0x68, 0x93, 0x88, + 0x71, 0x4A, 0xC0, 0x1A, 0x2B, 0x1C, 0x0E, 0x33, 0x9B, 0x00, 0x99, 0x58, 0x00, 0x9A, 0x00, 0xB2, + 0xD3, 0x89, 0xC9, 0x1A, 0x09, 0xB2, 0xFF, 0xF7, 0xAD, 0xFF, 0xB8, 0x42, 0x01, 0xDA, 0x2E, 0x1C, + 0x07, 0x1C, 0x01, 0x35, 0xED, 0xB2, 0x03, 0x9B, 0x9D, 0x42, 0xDB, 0xDB, 0x75, 0x1C, 0x0A, 0xD0, + 0x67, 0x4B, 0x68, 0x49, 0x98, 0x57, 0xB2, 0x00, 0x01, 0x30, 0x02, 0xD0, 0x88, 0x58, 0xB8, 0x42, + 0x01, 0xD9, 0x8F, 0x50, 0x9C, 0x55, 0x01, 0x34, 0x05, 0x2C, 0xB5, 0xD1, 0x00, 0x23, 0x5E, 0x4A, + 0x5E, 0x49, 0x32, 0xE0, 0x5E, 0x4E, 0xF0, 0x5C, 0x44, 0xB2, 0x01, 0x34, 0x2B, 0xD0, 0x9D, 0x00, + 0xC0, 0xB2, 0x01, 0x95, 0x55, 0x19, 0x87, 0x00, 0x6D, 0x68, 0xCC, 0x19, 0x65, 0x60, 0x1D, 0x1C, + 0x0E, 0x35, 0x04, 0x1C, 0xAD, 0x00, 0xAD, 0x58, 0x0E, 0x34, 0xA4, 0x00, 0x65, 0x50, 0x04, 0x1C, + 0x1D, 0x1C, 0x0D, 0x34, 0x0D, 0x35, 0xE4, 0x00, 0xED, 0x00, 0x0C, 0x19, 0x55, 0x19, 0x00, 0x97, + 0x04, 0x34, 0x04, 0x35, 0xC0, 0xCD, 0xC0, 0xC4, 0x1C, 0x1C, 0x34, 0x34, 0xA4, 0x00, 0x34, 0x30, + 0x14, 0x19, 0x64, 0x68, 0x80, 0x00, 0x08, 0x18, 0x44, 0x60, 0x4A, 0x48, 0x01, 0x9C, 0x00, 0x9D, + 0x20, 0x58, 0x4C, 0x4E, 0xA8, 0x51, 0x01, 0x33, 0xDB, 0xB2, 0x10, 0x68, 0x83, 0x42, 0xC9, 0xDB, + 0x00, 0x23, 0x41, 0x4E, 0x4E, 0xE0, 0x42, 0x4F, 0xFA, 0x56, 0x01, 0x32, 0x48, 0xD1, 0x1A, 0x1C, + 0x0D, 0x32, 0xD2, 0x00, 0xB2, 0x18, 0x04, 0x20, 0x12, 0x5E, 0x00, 0x2A, 0x40, 0xD0, 0x00, 0x20, + 0x3F, 0x4F, 0x02, 0x1C, 0xC4, 0x19, 0x18, 0x25, 0x65, 0x5F, 0xD1, 0xB2, 0x00, 0x2D, 0x33, 0xD1, + 0x36, 0x4D, 0x6C, 0x24, 0x2D, 0x18, 0xAC, 0x46, 0xA4, 0x44, 0x65, 0x46, 0x00, 0x24, 0x2D, 0x5F, + 0x00, 0x2D, 0x29, 0xD1, 0x32, 0x48, 0x31, 0x4D, 0xC1, 0x54, 0x94, 0x00, 0x2E, 0x48, 0x2C, 0x19, + 0x9D, 0x00, 0x45, 0x19, 0x6D, 0x68, 0x2D, 0x4F, 0x65, 0x60, 0x1D, 0x1C, 0x0E, 0x35, 0x14, 0x1C, + 0xAD, 0x00, 0x2D, 0x58, 0x0E, 0x34, 0xA4, 0x00, 0x3D, 0x51, 0x14, 0x1C, 0x1D, 0x1C, 0x0D, 0x34, + 0x0D, 0x35, 0xE4, 0x00, 0xED, 0x00, 0x3C, 0x19, 0x45, 0x19, 0x04, 0x34, 0x04, 0x35, 0x82, 0xCD, + 0x82, 0xC4, 0x1C, 0x1C, 0x34, 0x34, 0xA4, 0x00, 0x34, 0x32, 0x20, 0x49, 0x00, 0x19, 0x92, 0x00, + 0x40, 0x68, 0x8A, 0x18, 0x50, 0x60, 0x03, 0xE0, 0x01, 0x32, 0x08, 0x30, 0x05, 0x2A, 0xC1, 0xD1, + 0x01, 0x33, 0xDB, 0xB2, 0x32, 0x68, 0x93, 0x42, 0xAD, 0xDB, 0x20, 0x4B, 0x18, 0x49, 0x1C, 0x1C, + 0x0D, 0x34, 0xFF, 0x20, 0x1A, 0x78, 0x04, 0x2A, 0x02, 0xD8, 0x8A, 0x5C, 0x1A, 0x70, 0x00, 0xE0, + 0x18, 0x70, 0x01, 0x33, 0xA3, 0x42, 0xF5, 0xD1, 0x19, 0x4A, 0x10, 0x48, 0x00, 0x23, 0x13, 0x60, + 0x19, 0x1C, 0x05, 0x22, 0x06, 0x1C, 0x01, 0x3A, 0xD2, 0xB2, 0x14, 0x1C, 0x0D, 0x34, 0xE5, 0x00, + 0x45, 0x19, 0x6D, 0x89, 0xA9, 0x42, 0x00, 0xDA, 0x29, 0x1C, 0xE4, 0x00, 0x34, 0x19, 0x04, 0x25, + 0x64, 0x5F, 0xA3, 0x42, 0x00, 0xDA, 0x23, 0x1C, 0x00, 0x2A, 0xEC, 0xD1, 0x0C, 0x4A, 0x05, 0xB0, + 0x51, 0x60, 0x13, 0x60, 0xF0, 0xBD, 0xC0, 0x46, 0x8C, 0x08, 0x00, 0x20, 0x20, 0x0C, 0x00, 0x20, + 0x14, 0x0A, 0x00, 0x20, 0x28, 0x0F, 0x00, 0x20, 0x38, 0x06, 0x00, 0x20, 0xC8, 0x0B, 0x00, 0x20, + 0xC0, 0x09, 0x00, 0x20, 0x9C, 0x0B, 0x00, 0x20, 0x40, 0x0A, 0x00, 0x20, 0x98, 0x09, 0x00, 0x20, + 0x6C, 0x08, 0x00, 0x20, 0xF0, 0xB5, 0x22, 0x48, 0x22, 0x4A, 0x23, 0x49, 0x05, 0x23, 0x01, 0x3B, + 0xDB, 0xB2, 0xDD, 0x1C, 0xED, 0x00, 0x2D, 0x5E, 0x00, 0x2D, 0x23, 0xD0, 0x1D, 0x1C, 0x0D, 0x35, + 0xED, 0x00, 0x55, 0x19, 0x04, 0x26, 0xAD, 0x5F, 0x00, 0x2D, 0x1B, 0xD0, 0x9D, 0x00, 0x55, 0x19, + 0x6E, 0x68, 0x5D, 0x00, 0x47, 0x19, 0x04, 0x24, 0x3C, 0x5F, 0x37, 0x1B, 0x16, 0x4C, 0x7F, 0x10, + 0xBE, 0x19, 0x65, 0x19, 0xAE, 0x80, 0x1D, 0x1C, 0x0E, 0x35, 0xAD, 0x00, 0x56, 0x59, 0x1D, 0x1D, + 0x6D, 0x00, 0x47, 0x19, 0x06, 0x24, 0x3C, 0x5F, 0x37, 0x1B, 0x0F, 0x4C, 0x7F, 0x10, 0xBE, 0x19, + 0x65, 0x19, 0x0C, 0xE0, 0x9E, 0x00, 0x96, 0x19, 0x76, 0x68, 0x5D, 0x00, 0x4D, 0x19, 0xAE, 0x80, + 0x1E, 0x1C, 0x0E, 0x36, 0x1D, 0x1D, 0xB6, 0x00, 0x6D, 0x00, 0x96, 0x59, 0x4D, 0x19, 0xEE, 0x80, + 0x00, 0x2B, 0xC4, 0xD1, 0x03, 0x4B, 0x1A, 0x68, 0x03, 0x4B, 0x1A, 0x60, 0xF0, 0xBD, 0xC0, 0x46, + 0xC0, 0x09, 0x00, 0x20, 0x20, 0x0C, 0x00, 0x20, 0x40, 0x0A, 0x00, 0x20, 0x38, 0xB5, 0x04, 0x1C, + 0x08, 0x1C, 0x00, 0x2A, 0x07, 0xD0, 0x54, 0x43, 0x58, 0x43, 0xD1, 0x18, 0x20, 0x18, 0x4D, 0x10, + 0x40, 0x19, 0x01, 0xF0, 0x7B, 0xFA, 0x38, 0xBD, 0xF7, 0xB5, 0x03, 0x68, 0x04, 0x1C, 0x18, 0x01, + 0xC3, 0x1A, 0xC0, 0x21, 0x58, 0x01, 0xC9, 0x00, 0x01, 0xF0, 0x70, 0xFA, 0x63, 0x68, 0x07, 0x1C, + 0x05, 0x1C, 0xC8, 0x20, 0x14, 0x37, 0x80, 0x00, 0x98, 0x21, 0x58, 0x43, 0x27, 0x60, 0x09, 0x01, + 0x01, 0xF0, 0x64, 0xFA, 0x2C, 0x4B, 0x15, 0x30, 0x1B, 0x78, 0x60, 0x60, 0x00, 0x2B, 0x03, 0xD1, + 0x87, 0x20, 0x9B, 0x26, 0x40, 0x00, 0x01, 0xE0, 0x28, 0x48, 0xA5, 0x26, 0x28, 0x4B, 0x1B, 0x78, + 0x01, 0x93, 0x00, 0x2B, 0x01, 0xD1, 0x82, 0x20, 0x40, 0x00, 0xEF, 0x2F, 0x03, 0xDC, 0xDC, 0x3D, + 0x68, 0x43, 0xF0, 0x21, 0x06, 0xE0, 0xDC, 0x2D, 0x08, 0xD0, 0xDC, 0x23, 0x5D, 0x1B, 0x68, 0x43, + 0xF0, 0x21, 0x49, 0x42, 0x01, 0xF0, 0x42, 0xFA, 0xF0, 0x30, 0x20, 0x60, 0x01, 0x9B, 0x00, 0x2B, + 0x1A, 0xD0, 0x60, 0x68, 0x77, 0x28, 0x06, 0xDC, 0x78, 0x38, 0x70, 0x43, 0x78, 0x21, 0x01, 0xF0, + 0x35, 0xFA, 0x78, 0x30, 0x0F, 0xE0, 0xC8, 0x23, 0x9B, 0x00, 0x1B, 0x1A, 0x77, 0x2B, 0x0B, 0xDC, + 0xAA, 0x23, 0x9B, 0x00, 0x18, 0x1A, 0x78, 0x21, 0x70, 0x43, 0x49, 0x42, 0x01, 0xF0, 0x26, 0xFA, + 0xAA, 0x23, 0x9B, 0x00, 0xC0, 0x18, 0x60, 0x60, 0x23, 0x68, 0x00, 0x2B, 0x01, 0xDC, 0x01, 0x23, + 0x04, 0xE0, 0x0C, 0x4A, 0x93, 0x42, 0x02, 0xDD, 0xF0, 0x23, 0x5B, 0x00, 0x23, 0x60, 0x63, 0x68, + 0x00, 0x2B, 0x01, 0xDC, 0x01, 0x23, 0x04, 0xE0, 0x07, 0x4A, 0x93, 0x42, 0x02, 0xDD, 0xC8, 0x23, + 0x9B, 0x00, 0x63, 0x60, 0xF7, 0xBD, 0xC0, 0x46, 0x76, 0x07, 0x00, 0x20, 0x1D, 0x01, 0x00, 0x00, + 0x40, 0x06, 0x00, 0x20, 0xDF, 0x01, 0x00, 0x00, 0x1F, 0x03, 0x00, 0x00, 0xEF, 0xF3, 0x08, 0x80, + 0x70, 0x47, 0x00, 0xBA, 0x70, 0x47, 0x40, 0xBA, 0x70, 0x47, 0xC0, 0xBA, 0x70, 0x47, 0x70, 0xB5, + 0x00, 0x28, 0x16, 0xDA, 0xC0, 0xB2, 0x0F, 0x23, 0x03, 0x40, 0x08, 0x3B, 0x12, 0x4A, 0x9B, 0x08, + 0x9B, 0x00, 0x9B, 0x18, 0x03, 0x22, 0x10, 0x40, 0x90, 0x40, 0xFF, 0x22, 0x5D, 0x68, 0x14, 0x1C, + 0x84, 0x40, 0x89, 0x01, 0xA5, 0x43, 0x0A, 0x40, 0x82, 0x40, 0x28, 0x1C, 0x10, 0x43, 0x58, 0x60, + 0x11, 0xE0, 0x03, 0x24, 0x82, 0x08, 0x09, 0x4B, 0x20, 0x40, 0xC0, 0x32, 0xA0, 0x40, 0x92, 0x00, + 0xFF, 0x24, 0xD5, 0x58, 0x26, 0x1C, 0x86, 0x40, 0x89, 0x01, 0xB5, 0x43, 0x0C, 0x40, 0x84, 0x40, + 0x28, 0x1C, 0x20, 0x43, 0xD0, 0x50, 0x70, 0xBD, 0x18, 0xED, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE0, + 0x38, 0xB5, 0x80, 0x24, 0xE4, 0x05, 0x62, 0x68, 0x26, 0x4B, 0x00, 0x25, 0x13, 0x40, 0x63, 0x60, + 0x3F, 0x23, 0x65, 0x62, 0xA5, 0x62, 0xE5, 0x60, 0x25, 0x61, 0x63, 0x61, 0xA5, 0x61, 0x00, 0xF0, + 0x47, 0xF8, 0xA2, 0x68, 0x80, 0x23, 0x1B, 0x01, 0x13, 0x43, 0xA3, 0x60, 0x00, 0xF0, 0xB2, 0xFA, + 0x23, 0x6B, 0x60, 0x22, 0x93, 0x43, 0x23, 0x63, 0x23, 0x6B, 0x80, 0x22, 0x13, 0x43, 0x23, 0x63, + 0x00, 0xF0, 0x18, 0xFB, 0x00, 0xF0, 0x8E, 0xF8, 0x00, 0xF0, 0x02, 0xFB, 0x28, 0x1C, 0x65, 0x70, + 0x02, 0x21, 0xFF, 0xF7, 0xA4, 0xFF, 0x29, 0x1C, 0x01, 0x20, 0xFF, 0xF7, 0xA0, 0xFF, 0x02, 0x20, + 0x01, 0x21, 0xFF, 0xF7, 0x9C, 0xFF, 0x03, 0x20, 0x01, 0x1C, 0xFF, 0xF7, 0x98, 0xFF, 0x04, 0x20, + 0x03, 0x21, 0xFF, 0xF7, 0x94, 0xFF, 0x05, 0x20, 0x02, 0x21, 0xFF, 0xF7, 0x90, 0xFF, 0x0A, 0x4B, + 0x01, 0x22, 0x1A, 0x60, 0x02, 0x22, 0x1A, 0x60, 0x08, 0x21, 0x04, 0x22, 0x1A, 0x60, 0x19, 0x60, + 0x10, 0x21, 0x19, 0x60, 0xFC, 0x33, 0x5D, 0x60, 0x04, 0x4B, 0x19, 0x69, 0x0A, 0x43, 0x1A, 0x61, + 0x62, 0xB6, 0x38, 0xBD, 0xFF, 0xFE, 0xFF, 0xFF, 0x00, 0xE1, 0x00, 0xE0, 0x00, 0xED, 0x00, 0xE0, + 0x30, 0xB5, 0x18, 0x4A, 0x80, 0x23, 0x51, 0x78, 0xDB, 0x05, 0x19, 0x71, 0xD1, 0x78, 0x01, 0x20, + 0x5C, 0x68, 0x08, 0x40, 0x14, 0x49, 0x80, 0x07, 0x21, 0x40, 0x01, 0x43, 0x59, 0x60, 0x11, 0x79, + 0x03, 0x20, 0x5C, 0x68, 0x08, 0x40, 0x11, 0x49, 0x00, 0x07, 0x21, 0x40, 0x01, 0x43, 0x59, 0x60, + 0x54, 0x79, 0x0F, 0x21, 0x5D, 0x68, 0x0E, 0x48, 0x0C, 0x40, 0x24, 0x04, 0x28, 0x40, 0x20, 0x43, + 0x58, 0x60, 0x94, 0x79, 0x0B, 0x48, 0x5D, 0x68, 0x0C, 0x40, 0x28, 0x40, 0x24, 0x06, 0x20, 0x43, + 0x58, 0x60, 0xD2, 0x79, 0x58, 0x68, 0x11, 0x40, 0x0A, 0x05, 0x07, 0x49, 0x01, 0x40, 0x11, 0x43, + 0x59, 0x60, 0x30, 0xBD, 0x98, 0x0A, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xCF, + 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0x06, 0x4B, 0x3F, 0x20, + 0x19, 0x68, 0x80, 0x23, 0xDB, 0x05, 0x01, 0x39, 0x01, 0x40, 0x04, 0x4A, 0x58, 0x6B, 0x09, 0x02, + 0x02, 0x40, 0x0A, 0x43, 0x5A, 0x63, 0x70, 0x47, 0x24, 0x0A, 0x00, 0x20, 0xFF, 0xC0, 0xFF, 0xFF, + 0x80, 0x23, 0xDB, 0x05, 0xD9, 0x68, 0x08, 0x22, 0x91, 0x43, 0xD9, 0x60, 0x59, 0x69, 0x0A, 0x43, + 0x5A, 0x61, 0x70, 0x47, 0x10, 0xB5, 0xA0, 0x23, 0xDB, 0x05, 0x59, 0x68, 0x29, 0x4A, 0x80, 0x20, + 0x0A, 0x40, 0x5A, 0x60, 0x1A, 0x68, 0xC0, 0x00, 0x52, 0x00, 0x52, 0x08, 0x1A, 0x60, 0x19, 0x68, + 0x80, 0x22, 0x12, 0x06, 0x0A, 0x43, 0x1A, 0x60, 0x1A, 0x68, 0x01, 0x21, 0x8A, 0x43, 0x1A, 0x60, + 0x1A, 0x68, 0x10, 0x21, 0x8A, 0x43, 0x1A, 0x60, 0x19, 0x68, 0x1F, 0x4A, 0x0A, 0x40, 0x80, 0x21, + 0x09, 0x02, 0x0A, 0x43, 0x1A, 0x60, 0x1A, 0x68, 0x1C, 0x49, 0x0A, 0x40, 0x02, 0x43, 0x1A, 0x60, + 0x1B, 0x4A, 0x12, 0x68, 0x00, 0x2A, 0x08, 0xD0, 0x12, 0x78, 0x7F, 0x20, 0x10, 0x40, 0x1C, 0x68, + 0x18, 0x4A, 0x00, 0x06, 0x22, 0x40, 0x02, 0x43, 0x1A, 0x60, 0xA0, 0x23, 0xDB, 0x05, 0x5A, 0x68, + 0x01, 0x20, 0x02, 0x43, 0x5A, 0x60, 0x5A, 0x68, 0x11, 0x40, 0x80, 0x22, 0x82, 0x40, 0x11, 0x43, + 0x59, 0x60, 0x59, 0x68, 0x10, 0x4A, 0x0A, 0x40, 0xC0, 0x21, 0x89, 0x02, 0x0A, 0x43, 0x5A, 0x60, + 0x59, 0x68, 0x80, 0x22, 0x92, 0x05, 0x0A, 0x43, 0x5A, 0x60, 0x59, 0x68, 0x80, 0x22, 0x52, 0x05, + 0x0A, 0x43, 0x5A, 0x60, 0xC0, 0x46, 0x80, 0x22, 0x59, 0x68, 0x52, 0x04, 0x0A, 0x43, 0x5A, 0x60, + 0x10, 0xBD, 0xC0, 0x46, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, + 0x20, 0x06, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xF8, 0xFF, 0x38, 0xB5, 0x09, 0x4B, + 0x09, 0x49, 0x5A, 0x78, 0xDC, 0x78, 0x51, 0x43, 0x08, 0x4B, 0x05, 0x1C, 0xC9, 0x18, 0x08, 0x48, + 0x01, 0xF0, 0xA4, 0xF8, 0x06, 0x4B, 0x29, 0x1C, 0x01, 0x34, 0x58, 0x43, 0xA1, 0x40, 0x01, 0xF0, + 0x9D, 0xF8, 0x38, 0xBD, 0x98, 0x0A, 0x00, 0x20, 0x44, 0xFE, 0xFF, 0xFF, 0xFE, 0x24, 0x02, 0x00, + 0x40, 0x42, 0x0F, 0x00, 0x00, 0xB5, 0x06, 0x4B, 0x72, 0xB6, 0x1A, 0x78, 0x00, 0x2A, 0x04, 0xD0, + 0xC0, 0x46, 0xC0, 0x46, 0x62, 0xB6, 0x30, 0xBF, 0xF6, 0xE7, 0x62, 0xB6, 0x00, 0xBD, 0xC0, 0x46, + 0x02, 0x00, 0x00, 0x20, 0x70, 0xB5, 0x13, 0x49, 0x13, 0x4B, 0x04, 0x24, 0x19, 0x60, 0x13, 0x4B, + 0x13, 0x4D, 0x1A, 0x68, 0x22, 0x43, 0x1A, 0x60, 0x1A, 0x68, 0x02, 0x24, 0xA2, 0x43, 0x1A, 0x60, + 0x1A, 0x68, 0x01, 0x24, 0x22, 0x43, 0x0F, 0x4C, 0x1A, 0x60, 0x00, 0x22, 0x22, 0x60, 0x0E, 0x4A, + 0x11, 0x60, 0x2E, 0x78, 0xED, 0x78, 0x70, 0x43, 0x01, 0x35, 0xE8, 0x40, 0x09, 0x1A, 0x11, 0x60, + 0x20, 0x68, 0x11, 0x68, 0x88, 0x42, 0xFB, 0xD2, 0x1A, 0x68, 0x01, 0x21, 0x8A, 0x43, 0x1A, 0x60, + 0x70, 0xBD, 0xC0, 0x46, 0xFF, 0xFF, 0xFF, 0x00, 0x14, 0xE0, 0x00, 0xE0, 0x10, 0xE0, 0x00, 0xE0, + 0x98, 0x0A, 0x00, 0x20, 0x18, 0xE0, 0x00, 0xE0, 0x58, 0x08, 0x00, 0x20, 0x01, 0x30, 0x43, 0x00, + 0x18, 0x18, 0x40, 0x18, 0x70, 0x47, 0x3F, 0x30, 0x70, 0x47, 0xF0, 0xB5, 0x93, 0x1E, 0x87, 0xB0, + 0x17, 0x1C, 0x5A, 0x1E, 0x93, 0x41, 0x00, 0x24, 0x01, 0x90, 0x5B, 0x42, 0x68, 0x46, 0x02, 0x91, + 0x04, 0x94, 0x84, 0x82, 0x0C, 0x25, 0x03, 0x93, 0x01, 0x3D, 0xED, 0xB2, 0x01, 0x2F, 0x06, 0xD1, + 0x15, 0x23, 0x6B, 0x43, 0x01, 0x99, 0x1E, 0x4A, 0x5B, 0x18, 0x9C, 0x56, 0x01, 0xE0, 0x03, 0x9B, + 0x1C, 0x40, 0x02, 0x98, 0x24, 0x18, 0x21, 0x1C, 0x08, 0x31, 0x02, 0xDA, 0x08, 0x24, 0x64, 0x42, + 0x02, 0xE0, 0x07, 0x2C, 0x00, 0xDD, 0x07, 0x24, 0x0F, 0x23, 0x1C, 0x40, 0x15, 0x4B, 0x03, 0x21, + 0x5E, 0x57, 0x30, 0x1C, 0x01, 0xF0, 0x1A, 0xF8, 0x40, 0xB2, 0x83, 0x00, 0xC0, 0x1A, 0x36, 0x18, + 0x76, 0x00, 0x22, 0x1C, 0x10, 0x20, 0x9A, 0x40, 0x80, 0x19, 0x69, 0x46, 0x13, 0x1C, 0x42, 0x5A, + 0x13, 0x43, 0x43, 0x52, 0x00, 0x2D, 0xCF, 0xD1, 0x0B, 0x4D, 0x03, 0x24, 0x0C, 0x26, 0x01, 0x3C, + 0xE4, 0xB2, 0x01, 0x98, 0x21, 0x1C, 0xFF, 0xF7, 0xB1, 0xFF, 0x63, 0x00, 0x70, 0x43, 0x10, 0x33, + 0x69, 0x46, 0x5B, 0x5A, 0x42, 0x5B, 0x43, 0x53, 0x00, 0x2C, 0xF0, 0xD1, 0x07, 0xB0, 0xF0, 0xBD, + 0xA0, 0x0A, 0x00, 0x20, 0x51, 0x36, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x40, 0xF0, 0xB5, 0x93, 0x1E, + 0x17, 0x1C, 0x5A, 0x1E, 0x93, 0x41, 0x85, 0xB0, 0x00, 0x26, 0x5B, 0x42, 0x01, 0x90, 0x02, 0x91, + 0x34, 0x1C, 0x02, 0x25, 0x03, 0x93, 0x01, 0x3D, 0xED, 0xB2, 0x01, 0x2F, 0x06, 0xD1, 0x15, 0x23, + 0x6B, 0x43, 0x01, 0x9A, 0x9B, 0x18, 0x16, 0x4A, 0x9C, 0x56, 0x01, 0xE0, 0x03, 0x9B, 0x1C, 0x40, + 0x02, 0x9A, 0xA4, 0x18, 0x23, 0x1C, 0x08, 0x33, 0x02, 0xDA, 0x08, 0x24, 0x64, 0x42, 0x02, 0xE0, + 0x07, 0x2C, 0x00, 0xDD, 0x07, 0x24, 0x0F, 0x23, 0x1C, 0x40, 0x0E, 0x4B, 0x0E, 0x4A, 0x5B, 0x57, + 0x03, 0x21, 0xD0, 0x56, 0x00, 0xF0, 0xC2, 0xFF, 0x43, 0xB2, 0x9B, 0x00, 0x22, 0x1C, 0x9A, 0x40, + 0x16, 0x43, 0xB6, 0xB2, 0x00, 0x2D, 0xD6, 0xD1, 0x01, 0x98, 0x14, 0x38, 0xFF, 0xF7, 0x6B, 0xFF, + 0x0C, 0x22, 0x50, 0x43, 0x05, 0x4B, 0x05, 0xB0, 0xC2, 0x5A, 0xC6, 0x52, 0xF0, 0xBD, 0xC0, 0x46, + 0xA0, 0x0A, 0x00, 0x20, 0x65, 0x36, 0x00, 0x00, 0x51, 0x36, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x40, + 0xF0, 0xB5, 0x8D, 0xB0, 0x03, 0xAC, 0x01, 0x91, 0x06, 0x1C, 0x00, 0x21, 0x20, 0x1C, 0x24, 0x22, + 0x01, 0xF0, 0x3C, 0xF8, 0x0C, 0x25, 0x27, 0x1C, 0x20, 0x49, 0x01, 0x3D, 0xED, 0xB2, 0x4C, 0x57, + 0x03, 0x21, 0x20, 0x1C, 0x00, 0xF0, 0x92, 0xFF, 0x40, 0xB2, 0x82, 0x00, 0x83, 0x1A, 0xE3, 0x18, + 0x0C, 0x21, 0x4B, 0x43, 0x69, 0x1C, 0xFB, 0x18, 0x91, 0x40, 0x0A, 0x1C, 0x19, 0x89, 0x0A, 0x43, + 0x1A, 0x81, 0x01, 0x22, 0xA2, 0x40, 0x14, 0x1C, 0x5A, 0x88, 0x14, 0x43, 0x5C, 0x80, 0x00, 0x2D, + 0xE2, 0xD1, 0x03, 0x24, 0x0C, 0x25, 0x01, 0x9A, 0x01, 0x3C, 0xE4, 0xB2, 0x00, 0x2A, 0x08, 0xD0, + 0x2B, 0x1C, 0x63, 0x43, 0x0E, 0x4A, 0x03, 0xA9, 0x92, 0x57, 0xCB, 0x18, 0x01, 0x21, 0x91, 0x40, + 0x59, 0x60, 0x2F, 0x1C, 0x67, 0x43, 0x03, 0xAA, 0xD7, 0x19, 0x73, 0x1C, 0x7B, 0x81, 0x21, 0x1C, + 0x30, 0x1C, 0xFF, 0xF7, 0x13, 0xFF, 0x68, 0x43, 0x06, 0x4B, 0x39, 0x1C, 0xC0, 0x18, 0x0C, 0x22, + 0x00, 0xF0, 0xBE, 0xFF, 0x00, 0x2C, 0xDE, 0xD1, 0x0D, 0xB0, 0xF0, 0xBD, 0x51, 0x36, 0x00, 0x00, + 0x38, 0x36, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x40, 0xF0, 0xB5, 0x87, 0xB0, 0x03, 0xAC, 0x0C, 0x25, + 0x2A, 0x1C, 0x01, 0x90, 0x00, 0x21, 0x20, 0x1C, 0x00, 0xF0, 0xE8, 0xFF, 0x20, 0x4A, 0x01, 0x21, + 0x20, 0x4B, 0x51, 0x56, 0x12, 0x78, 0x5E, 0x56, 0x52, 0xB2, 0x30, 0x1C, 0x03, 0x21, 0x9F, 0x5C, + 0x00, 0xF0, 0x3C, 0xFF, 0x40, 0xB2, 0x7F, 0xB2, 0x80, 0x00, 0x02, 0x23, 0x83, 0x40, 0x03, 0x21, + 0x38, 0x1C, 0x00, 0x93, 0x00, 0xF0, 0x32, 0xFF, 0x01, 0x23, 0x40, 0xB2, 0x80, 0x00, 0x1A, 0x1C, + 0x82, 0x40, 0x10, 0x1C, 0x00, 0x9A, 0x14, 0x49, 0x10, 0x43, 0x1A, 0x1C, 0xB2, 0x40, 0x80, 0xB2, + 0x16, 0x1C, 0x1A, 0x1C, 0x00, 0x90, 0xBA, 0x40, 0x01, 0x98, 0x16, 0x43, 0x0F, 0x4A, 0x14, 0x38, + 0x12, 0x56, 0xB6, 0xB2, 0x8F, 0x56, 0xBB, 0x40, 0x1F, 0x1C, 0xFF, 0xF7, 0xCC, 0xFE, 0x6B, 0x46, + 0x1B, 0x88, 0x68, 0x43, 0x23, 0x81, 0x0A, 0x4A, 0x01, 0x9B, 0x80, 0x18, 0x02, 0x33, 0x2A, 0x1C, + 0x21, 0x1C, 0x66, 0x80, 0x67, 0x60, 0x63, 0x81, 0x00, 0xF0, 0x6A, 0xFF, 0x07, 0xB0, 0xF0, 0xBD, + 0x65, 0x36, 0x00, 0x00, 0x51, 0x36, 0x00, 0x00, 0x38, 0x36, 0x00, 0x00, 0x61, 0x36, 0x00, 0x00, + 0x00, 0x0C, 0x00, 0x40, 0x70, 0xB5, 0x24, 0x4A, 0x80, 0x23, 0xDB, 0x05, 0x54, 0x7C, 0x9D, 0x68, + 0x07, 0x21, 0x22, 0x48, 0x0C, 0x40, 0x24, 0x03, 0x28, 0x40, 0x20, 0x43, 0x98, 0x60, 0x9C, 0x68, + 0x1F, 0x48, 0x20, 0x40, 0x98, 0x60, 0x9C, 0x68, 0x1E, 0x48, 0x20, 0x40, 0x98, 0x60, 0x94, 0x7A, + 0x3F, 0x20, 0x9D, 0x68, 0x04, 0x40, 0x1C, 0x48, 0xA4, 0x04, 0x28, 0x40, 0x20, 0x43, 0x98, 0x60, + 0x50, 0x7A, 0x9C, 0x68, 0x01, 0x40, 0x08, 0x06, 0x18, 0x49, 0x21, 0x40, 0x01, 0x43, 0x99, 0x60, + 0x98, 0x68, 0x80, 0x21, 0x09, 0x05, 0x01, 0x43, 0x15, 0x48, 0x99, 0x60, 0x04, 0x68, 0x19, 0x1C, + 0x38, 0x31, 0x0C, 0x70, 0x45, 0x68, 0x9E, 0x6B, 0x7F, 0x21, 0x12, 0x4C, 0x0D, 0x40, 0x34, 0x40, + 0x2D, 0x02, 0x2C, 0x43, 0x9C, 0x63, 0x84, 0x68, 0x9D, 0x6B, 0x0F, 0x48, 0x0C, 0x40, 0x28, 0x40, + 0x24, 0x04, 0x20, 0x43, 0x98, 0x63, 0x92, 0x79, 0x98, 0x6B, 0x11, 0x40, 0x0A, 0x06, 0x0B, 0x49, + 0x01, 0x40, 0x11, 0x43, 0x99, 0x63, 0x70, 0xBD, 0xC8, 0x0B, 0x00, 0x20, 0xFF, 0x8F, 0xFF, 0xFF, + 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, + 0x60, 0x08, 0x00, 0x20, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, + 0x10, 0xB5, 0x01, 0x20, 0x40, 0x42, 0x00, 0x21, 0xFF, 0xF7, 0xF2, 0xFE, 0x00, 0x24, 0x20, 0x1C, + 0x01, 0x21, 0x01, 0x34, 0xFF, 0xF7, 0xEC, 0xFE, 0x14, 0x2C, 0xF8, 0xD1, 0x20, 0x1C, 0xFF, 0xF7, + 0x3B, 0xFF, 0x10, 0xBD, 0x80, 0x23, 0xDB, 0x05, 0x1A, 0x6B, 0x1F, 0x21, 0x8A, 0x43, 0x15, 0x21, + 0x0A, 0x43, 0x1A, 0x63, 0x5A, 0x6B, 0x0F, 0x21, 0x8A, 0x43, 0x0E, 0x21, 0x0A, 0x43, 0x5A, 0x63, + 0x70, 0x47, 0x00, 0xB5, 0x80, 0x21, 0xC9, 0x05, 0x0B, 0x79, 0x5A, 0x1E, 0x98, 0x42, 0x09, 0xDD, + 0x01, 0xE0, 0xDA, 0xB2, 0x0A, 0x71, 0x01, 0x33, 0x83, 0x42, 0xFA, 0xDD, 0x04, 0xE0, 0xD3, 0xB2, + 0x0B, 0x71, 0x01, 0x3A, 0x82, 0x42, 0xFA, 0xDA, 0x00, 0xBD, 0xC0, 0x46, 0x08, 0xB5, 0x0C, 0x4A, + 0x0C, 0x4B, 0x0D, 0x49, 0x01, 0xE0, 0x01, 0xCA, 0x01, 0xC3, 0x8B, 0x42, 0xFB, 0xD3, 0x0B, 0x4B, + 0x0B, 0x49, 0x00, 0x22, 0x00, 0xE0, 0x04, 0xC3, 0x8B, 0x42, 0xFC, 0xD3, 0xFF, 0xF7, 0x56, 0xFC, + 0x08, 0x4B, 0x00, 0x22, 0x00, 0xE0, 0x04, 0xC3, 0x83, 0x42, 0xFC, 0xD3, 0x08, 0xBD, 0xC0, 0x46, + 0x00, 0x4F, 0x00, 0x00, 0x28, 0x06, 0x00, 0x20, 0x0C, 0x07, 0x00, 0x20, 0x10, 0x07, 0x00, 0x20, + 0x74, 0x11, 0x00, 0x20, 0x18, 0x14, 0x00, 0x20, 0xF7, 0xB5, 0x3B, 0x4A, 0x01, 0x23, 0x13, 0x70, + 0x3A, 0x4A, 0x0C, 0x20, 0x13, 0x70, 0x3A, 0x4A, 0x13, 0x70, 0x3A, 0x4A, 0x00, 0x23, 0x01, 0x38, + 0xC0, 0xB2, 0x81, 0x00, 0x8B, 0x50, 0x00, 0x28, 0xF9, 0xD1, 0x37, 0x4B, 0x37, 0x4A, 0x18, 0x70, + 0x01, 0x23, 0x13, 0x70, 0x36, 0x4A, 0x13, 0x70, 0x36, 0x4B, 0x19, 0x7A, 0x0C, 0x23, 0x01, 0x3B, + 0xDB, 0xB2, 0x35, 0x4A, 0x5C, 0x1C, 0x64, 0x00, 0xA5, 0x5A, 0x34, 0x4E, 0x0D, 0x41, 0x5A, 0x00, + 0x95, 0x53, 0x5E, 0x01, 0x13, 0x22, 0x01, 0x95, 0x00, 0x96, 0x01, 0x3A, 0xD2, 0xB2, 0x30, 0x4F, + 0x55, 0x01, 0xED, 0x19, 0x65, 0x5B, 0x2F, 0x4E, 0xAC, 0x46, 0x55, 0x01, 0xAD, 0x19, 0x65, 0x5B, + 0x67, 0x46, 0x0F, 0x41, 0xBC, 0x46, 0x2F, 0x1C, 0x0F, 0x41, 0x01, 0x9D, 0x67, 0x44, 0x00, 0x9E, + 0x7F, 0x10, 0xEF, 0x1B, 0xC0, 0x19, 0x28, 0x4D, 0xB7, 0x18, 0xBF, 0x00, 0x00, 0x26, 0x7E, 0x51, + 0xB2, 0x42, 0xE2, 0xD1, 0xB3, 0x42, 0xD2, 0xD1, 0x1E, 0x4B, 0x24, 0x4C, 0x1E, 0x8D, 0x00, 0x2E, + 0x02, 0xD1, 0x40, 0x23, 0x23, 0x60, 0x0D, 0xE0, 0xE4, 0x21, 0x5D, 0x8D, 0x00, 0xF0, 0xEE, 0xFD, + 0x76, 0x1B, 0xB6, 0x01, 0x41, 0x1B, 0x30, 0x1C, 0x00, 0xF0, 0xE8, 0xFD, 0x6E, 0x28, 0x00, 0xDD, + 0x6E, 0x20, 0x20, 0x60, 0x13, 0x4C, 0x64, 0x20, 0xE3, 0x7C, 0xA6, 0x78, 0x58, 0x43, 0x21, 0x7A, + 0xA3, 0x79, 0x37, 0x1C, 0x8F, 0x40, 0x58, 0x43, 0x39, 0x1C, 0x00, 0xF0, 0xD7, 0xFD, 0x14, 0x4D, + 0x28, 0x60, 0xE1, 0x78, 0x70, 0x43, 0x00, 0xF0, 0xD1, 0xFD, 0x00, 0x21, 0x68, 0x60, 0x10, 0x22, + 0x10, 0x48, 0x00, 0xF0, 0x6B, 0xFE, 0xF7, 0xBD, 0xBC, 0x09, 0x00, 0x20, 0x99, 0x07, 0x00, 0x20, + 0x9A, 0x07, 0x00, 0x20, 0x30, 0x11, 0x00, 0x20, 0x26, 0x0F, 0x00, 0x20, 0x30, 0x0A, 0x00, 0x20, + 0x68, 0x0F, 0x00, 0x20, 0xC8, 0x0B, 0x00, 0x20, 0x00, 0x08, 0x00, 0x40, 0x16, 0x11, 0x00, 0x20, + 0x20, 0x08, 0x00, 0x40, 0x40, 0x08, 0x00, 0x40, 0x18, 0x00, 0x00, 0x20, 0x34, 0x0A, 0x00, 0x20, + 0x48, 0x08, 0x00, 0x20, 0x78, 0x08, 0x00, 0x20, 0xF7, 0xB5, 0x2C, 0x4B, 0x0C, 0x22, 0x19, 0x7A, + 0x5B, 0x78, 0x00, 0x93, 0x2A, 0x4B, 0x1B, 0x68, 0x01, 0x93, 0x33, 0xE0, 0x15, 0x20, 0x50, 0x43, + 0x54, 0x1C, 0x13, 0x23, 0x64, 0x00, 0x94, 0x46, 0x01, 0x3B, 0xDB, 0xB2, 0x25, 0x4D, 0x5A, 0x01, + 0x52, 0x19, 0xA2, 0x5A, 0x00, 0x9E, 0x0A, 0x41, 0x00, 0x2E, 0x06, 0xD0, 0x22, 0x4F, 0xC5, 0x18, + 0xED, 0x5D, 0x6A, 0x43, 0x01, 0x9D, 0x6A, 0x43, 0x12, 0x13, 0x1E, 0x4F, 0x5E, 0x1C, 0x75, 0x01, + 0xED, 0x19, 0x65, 0x5B, 0x00, 0x9F, 0x0D, 0x41, 0x00, 0x2F, 0x06, 0xD0, 0x1A, 0x4F, 0x86, 0x19, + 0xF6, 0x5D, 0x75, 0x43, 0x01, 0x9E, 0x75, 0x43, 0x2D, 0x13, 0x67, 0x46, 0x7E, 0x01, 0x52, 0x19, + 0xF6, 0x18, 0x16, 0x4D, 0xB6, 0x00, 0x77, 0x59, 0x52, 0x10, 0xD7, 0x19, 0x77, 0x51, 0x00, 0x2B, + 0xD2, 0xD1, 0x62, 0x46, 0x01, 0x3A, 0xD2, 0xB2, 0xFF, 0x2A, 0xC7, 0xD1, 0x10, 0x49, 0x11, 0x48, + 0x4B, 0x78, 0x09, 0x78, 0x5B, 0x01, 0x1B, 0x18, 0x98, 0x88, 0x08, 0x4B, 0x0D, 0x4D, 0x1A, 0x7A, + 0x0D, 0x4B, 0x10, 0x41, 0x5C, 0x68, 0x49, 0x01, 0x00, 0x19, 0x49, 0x19, 0x58, 0x60, 0x49, 0x88, + 0x11, 0x41, 0x0A, 0x1C, 0x19, 0x68, 0x52, 0x18, 0x1A, 0x60, 0xF7, 0xBD, 0xC8, 0x0B, 0x00, 0x20, + 0x34, 0x0A, 0x00, 0x20, 0x20, 0x08, 0x00, 0x40, 0x7E, 0x36, 0x00, 0x00, 0x18, 0x00, 0x00, 0x20, + 0x61, 0x36, 0x00, 0x00, 0x40, 0x08, 0x00, 0x40, 0x78, 0x08, 0x00, 0x20, 0xF0, 0xB5, 0x21, 0x4B, + 0x85, 0xB0, 0x1B, 0x7D, 0x0C, 0x25, 0x01, 0x93, 0x1F, 0x4F, 0x18, 0xE0, 0x15, 0x22, 0x6A, 0x43, + 0x69, 0x01, 0x13, 0x24, 0x02, 0x91, 0x03, 0x92, 0x02, 0x9B, 0x01, 0x3C, 0xE4, 0xB2, 0x1E, 0x19, + 0xB6, 0x00, 0xF0, 0x59, 0x01, 0x99, 0x00, 0xF0, 0xDB, 0xFC, 0x03, 0x99, 0x00, 0x04, 0x0B, 0x19, + 0x16, 0x49, 0x5B, 0x00, 0x00, 0x22, 0xF0, 0x51, 0x5A, 0x52, 0x94, 0x42, 0xEC, 0xD1, 0x01, 0x3D, + 0xED, 0xB2, 0xFF, 0x2D, 0xE2, 0xD1, 0x0F, 0x4C, 0x11, 0x4D, 0x26, 0x7D, 0x68, 0x68, 0x31, 0x1C, + 0x00, 0xF0, 0xC6, 0xFC, 0x64, 0x78, 0x00, 0x2C, 0x03, 0xD0, 0x0E, 0x4B, 0x5B, 0x78, 0x58, 0x43, + 0x80, 0x11, 0x00, 0x04, 0x68, 0x60, 0x31, 0x1C, 0x28, 0x68, 0x00, 0xF0, 0xB9, 0xFC, 0x00, 0x2C, + 0x03, 0xD0, 0x08, 0x4B, 0x1B, 0x78, 0x58, 0x43, 0x80, 0x11, 0x05, 0x4B, 0x00, 0x04, 0x05, 0xB0, + 0x18, 0x60, 0xF0, 0xBD, 0xC8, 0x0B, 0x00, 0x20, 0x18, 0x00, 0x00, 0x20, 0x28, 0x0D, 0x00, 0x20, + 0x78, 0x08, 0x00, 0x20, 0x7A, 0x37, 0x00, 0x00, 0xF0, 0xB5, 0xB9, 0x4B, 0x00, 0x22, 0x1A, 0x70, + 0xB8, 0x4B, 0x97, 0xB0, 0x1E, 0x78, 0x96, 0x42, 0x33, 0xD1, 0xB7, 0x4C, 0xB7, 0x4D, 0x20, 0x78, + 0x29, 0x78, 0x00, 0xF0, 0xCB, 0xFB, 0xB6, 0x4B, 0x1A, 0x1C, 0x08, 0x32, 0x3E, 0x21, 0x52, 0x5E, + 0x90, 0x42, 0x00, 0xDD, 0x8B, 0xE2, 0x48, 0x33, 0x00, 0x22, 0x9B, 0x5E, 0x98, 0x42, 0x00, 0xDA, + 0x85, 0xE2, 0xB0, 0x4B, 0x1A, 0x78, 0x00, 0x2A, 0x12, 0xD0, 0x22, 0x78, 0x01, 0x32, 0xD2, 0xB2, + 0x22, 0x70, 0x52, 0xB2, 0x0A, 0x2A, 0x0B, 0xDD, 0x01, 0x22, 0x22, 0x70, 0x2A, 0x78, 0x01, 0x32, + 0xD2, 0xB2, 0x2A, 0x70, 0x52, 0xB2, 0x12, 0x2A, 0x02, 0xDD, 0xA7, 0x4A, 0x1E, 0x70, 0x16, 0x70, + 0x1A, 0x78, 0x00, 0x2A, 0x05, 0xD1, 0xA1, 0x49, 0x01, 0x22, 0x0A, 0x70, 0x9E, 0x49, 0x1A, 0x70, + 0x0A, 0x70, 0x00, 0x21, 0x34, 0x22, 0xA1, 0x48, 0x00, 0xF0, 0x50, 0xFD, 0xA0, 0x4B, 0x00, 0x24, + 0x1C, 0x80, 0xA0, 0x4B, 0x7F, 0x22, 0x9A, 0x70, 0x1A, 0x70, 0xDC, 0x70, 0x5C, 0x70, 0x21, 0x1C, + 0x40, 0x22, 0x9D, 0x48, 0x00, 0xF0, 0x42, 0xFD, 0x18, 0x22, 0x9C, 0x48, 0x21, 0x1C, 0x00, 0xF0, + 0x3D, 0xFD, 0x9B, 0x4B, 0x9B, 0x4D, 0x1F, 0x68, 0x91, 0x48, 0x9B, 0x4E, 0x0C, 0x22, 0x01, 0x3A, + 0xD2, 0xB2, 0x53, 0x1C, 0x5B, 0x00, 0x5C, 0x5B, 0x01, 0x7A, 0x0C, 0x41, 0x01, 0x94, 0x00, 0x24, + 0x5C, 0x53, 0x43, 0x78, 0x00, 0x2B, 0x08, 0xD0, 0x15, 0x23, 0x53, 0x43, 0xF3, 0x18, 0x01, 0x99, + 0xDB, 0x7C, 0x59, 0x43, 0x79, 0x43, 0x09, 0x13, 0x01, 0x91, 0x51, 0x00, 0x6C, 0x46, 0x8C, 0x46, + 0x8E, 0x4B, 0xA1, 0x88, 0x64, 0x46, 0xE1, 0x52, 0x00, 0x2A, 0xE0, 0xD1, 0x88, 0x49, 0x09, 0x68, + 0x13, 0x91, 0x8B, 0x49, 0x09, 0x78, 0x14, 0x91, 0x8A, 0x49, 0x08, 0x78, 0x7F, 0x49, 0x0C, 0x68, + 0xCE, 0x69, 0x0E, 0x94, 0x7E, 0x4C, 0x8F, 0x68, 0x24, 0x88, 0x0D, 0x96, 0x04, 0x94, 0x7D, 0x4C, + 0x06, 0x97, 0x66, 0x78, 0xCD, 0x6A, 0x0B, 0x96, 0x27, 0x78, 0x08, 0x97, 0xE6, 0x78, 0x0F, 0x6A, + 0x09, 0x96, 0xA4, 0x78, 0x0E, 0x6B, 0x0A, 0x94, 0x4C, 0x68, 0x07, 0x97, 0x0C, 0x94, 0x02, 0x96, + 0xC9, 0x68, 0x01, 0x92, 0x0F, 0x91, 0x0C, 0x21, 0x06, 0xE1, 0x01, 0x3A, 0xD2, 0xB2, 0x7A, 0x4F, + 0x53, 0x01, 0xDF, 0x19, 0x6A, 0x4C, 0x10, 0x9B, 0x03, 0x97, 0xD8, 0x5B, 0x23, 0x7A, 0x18, 0x41, + 0x03, 0x1C, 0x60, 0x78, 0x00, 0x28, 0x07, 0xD0, 0x11, 0x9E, 0x6F, 0x48, 0xB4, 0x18, 0x20, 0x5C, + 0x13, 0x9F, 0x43, 0x43, 0x7B, 0x43, 0x1B, 0x13, 0x6C, 0x4E, 0x48, 0x00, 0x84, 0x5F, 0x6B, 0x4F, + 0xC3, 0x53, 0x1B, 0x19, 0x5B, 0x10, 0x48, 0x01, 0x12, 0x93, 0x80, 0x18, 0x6B, 0x4B, 0x80, 0x00, + 0xC3, 0x58, 0x10, 0x20, 0x1B, 0x0C, 0x05, 0x93, 0x14, 0x9B, 0x00, 0x2B, 0x00, 0xD0, 0x0A, 0x20, + 0x12, 0x9C, 0x46, 0xB2, 0x74, 0x43, 0x11, 0x9F, 0x15, 0x94, 0x65, 0x4B, 0xBC, 0x18, 0x64, 0x00, + 0xE3, 0x5E, 0x15, 0x9F, 0x9C, 0x46, 0x05, 0x9B, 0x9C, 0x44, 0x10, 0x23, 0x9B, 0x1B, 0x66, 0x46, + 0x73, 0x43, 0x05, 0x9E, 0xFB, 0x18, 0x1B, 0x11, 0x5D, 0x4F, 0x9B, 0x1B, 0xE3, 0x53, 0x57, 0xD4, + 0x4B, 0x4C, 0x15, 0x26, 0xA6, 0x57, 0xB3, 0x42, 0x03, 0xDB, 0x0E, 0x9F, 0x9E, 0x1B, 0xBF, 0x19, + 0x0E, 0x97, 0x1C, 0x1C, 0x0A, 0x3C, 0x15, 0x94, 0x09, 0x2B, 0x00, 0xDD, 0x2D, 0x19, 0x09, 0x26, + 0x34, 0x1C, 0x15, 0x9E, 0x00, 0x27, 0xB4, 0x42, 0x7F, 0x41, 0xBC, 0x46, 0x0D, 0x9F, 0x1E, 0x1C, + 0x3C, 0x1C, 0x64, 0x44, 0x14, 0x3E, 0x0D, 0x94, 0x09, 0x2E, 0x03, 0xD8, 0x04, 0x9E, 0x01, 0x36, + 0xB6, 0xB2, 0x04, 0x96, 0x06, 0x9E, 0x9E, 0x42, 0x00, 0xDA, 0x06, 0x93, 0x38, 0x4F, 0x3C, 0x7E, + 0xA3, 0x42, 0x1B, 0xDB, 0x0B, 0xAE, 0x00, 0x24, 0x34, 0x57, 0x8C, 0x42, 0x01, 0xDA, 0xCF, 0xB2, + 0x0B, 0x97, 0x08, 0xAE, 0x00, 0x24, 0x34, 0x57, 0x8C, 0x42, 0x01, 0xDD, 0xCF, 0xB2, 0x08, 0x97, + 0x09, 0xAE, 0x00, 0x24, 0x34, 0x57, 0x94, 0x42, 0x01, 0xDA, 0xD7, 0xB2, 0x09, 0x97, 0x0A, 0xAE, + 0x00, 0x24, 0x34, 0x57, 0x94, 0x42, 0x01, 0xDD, 0xD7, 0xB2, 0x0A, 0x97, 0x01, 0x9C, 0x10, 0x9E, + 0xE4, 0x18, 0x03, 0x9F, 0x01, 0x94, 0x9B, 0xB2, 0x2B, 0x4C, 0xF3, 0x53, 0x56, 0x00, 0x37, 0x5B, + 0xDF, 0x19, 0x37, 0x53, 0x29, 0x4C, 0x4E, 0x00, 0x37, 0x5B, 0xDB, 0x19, 0x33, 0x53, 0x21, 0xE0, + 0x9C, 0x1C, 0x03, 0xDA, 0x07, 0x9F, 0x9E, 0x1C, 0xBF, 0x19, 0x07, 0x97, 0x1C, 0x4E, 0x16, 0x24, + 0x34, 0x57, 0xA3, 0x42, 0x03, 0xDC, 0x0C, 0x9F, 0x1C, 0x1B, 0x3F, 0x19, 0x0C, 0x97, 0x1C, 0x1C, + 0x09, 0x34, 0x04, 0xDA, 0x02, 0x9E, 0x1C, 0x1C, 0x0A, 0x34, 0x36, 0x19, 0x02, 0x96, 0x0F, 0x9F, + 0x9F, 0x42, 0x00, 0xDD, 0x0F, 0x93, 0x01, 0x9C, 0x10, 0x9E, 0x03, 0x9F, 0xE4, 0x1A, 0x00, 0x23, + 0x01, 0x94, 0xF3, 0x53, 0x11, 0x9B, 0x05, 0x9F, 0x9C, 0x18, 0x1D, 0x4B, 0x64, 0x00, 0xE4, 0x5E, + 0x12, 0x9B, 0x3C, 0x1B, 0xE4, 0x1A, 0x0D, 0x4B, 0x28, 0x27, 0xDE, 0x5F, 0xA6, 0x42, 0x00, 0xDA, + 0x1C, 0x85, 0x2A, 0x27, 0xDE, 0x5F, 0xA6, 0x42, 0x33, 0xDD, 0x5C, 0x85, 0x31, 0xE0, 0xC0, 0x46, + 0x98, 0x07, 0x00, 0x20, 0x71, 0x07, 0x00, 0x20, 0x9A, 0x07, 0x00, 0x20, 0x99, 0x07, 0x00, 0x20, + 0xC8, 0x0B, 0x00, 0x20, 0xBC, 0x09, 0x00, 0x20, 0x60, 0x11, 0x00, 0x20, 0xAC, 0x07, 0x00, 0x20, + 0xAA, 0x07, 0x00, 0x20, 0x22, 0x0F, 0x00, 0x20, 0x6A, 0x0F, 0x00, 0x20, 0x80, 0x0A, 0x00, 0x20, + 0x34, 0x0A, 0x00, 0x20, 0x80, 0x0A, 0x00, 0x40, 0x7E, 0x36, 0x00, 0x00, 0xEC, 0x10, 0x00, 0x20, + 0x76, 0x07, 0x00, 0x20, 0x35, 0x06, 0x00, 0x20, 0x20, 0x08, 0x00, 0x40, 0x18, 0x00, 0x00, 0x20, + 0x28, 0x0D, 0x00, 0x20, 0x4B, 0x1C, 0x5B, 0x00, 0x10, 0x93, 0x15, 0x23, 0x4B, 0x43, 0x13, 0x22, + 0x11, 0x93, 0x00, 0x2A, 0x00, 0xD0, 0xF8, 0xE6, 0x01, 0x39, 0xC9, 0xB2, 0xFF, 0x29, 0xF1, 0xD1, + 0x92, 0x4B, 0x6F, 0x46, 0x18, 0x70, 0x10, 0x20, 0x91, 0x4B, 0xC7, 0x5B, 0x0E, 0x9C, 0x0D, 0x9E, + 0x90, 0x4A, 0x1C, 0x60, 0x17, 0x80, 0xDE, 0x61, 0x0B, 0xA9, 0x08, 0xAC, 0x09, 0xAE, 0x0A, 0xAF, + 0x8D, 0x4A, 0x06, 0x98, 0x09, 0x78, 0x24, 0x78, 0x36, 0x78, 0x3F, 0x78, 0x98, 0x60, 0x51, 0x70, + 0x14, 0x70, 0x07, 0x98, 0x0F, 0x9C, 0xD6, 0x70, 0x97, 0x70, 0x0C, 0x99, 0x02, 0x9A, 0x18, 0x62, + 0xDC, 0x60, 0xDD, 0x62, 0x59, 0x60, 0x1A, 0x63, 0x84, 0x4B, 0x85, 0x4C, 0x1B, 0x78, 0x85, 0x48, + 0x00, 0x2B, 0x7A, 0xD1, 0x84, 0x4B, 0x1B, 0x78, 0x00, 0x2B, 0x76, 0xD0, 0x83, 0x4B, 0x19, 0x78, + 0x00, 0x29, 0x72, 0xD1, 0x24, 0x78, 0xAD, 0x18, 0x63, 0xB2, 0x9B, 0x00, 0xC5, 0x50, 0xE5, 0xB2, + 0xAA, 0x1D, 0xD2, 0xB2, 0x06, 0x23, 0x01, 0x3B, 0xDB, 0xB2, 0xEE, 0x1A, 0xF6, 0xB2, 0xB6, 0x00, + 0x36, 0x58, 0x89, 0x19, 0x16, 0x1C, 0x0B, 0x2A, 0x01, 0xD9, 0x0C, 0x3E, 0xF6, 0xB2, 0xB6, 0x00, + 0x86, 0x59, 0x01, 0x3A, 0x89, 0x1B, 0xD2, 0xB2, 0x00, 0x2B, 0xEC, 0xD1, 0x01, 0x34, 0x70, 0x4A, + 0xE4, 0xB2, 0x14, 0x70, 0x64, 0xB2, 0x0B, 0x2C, 0x00, 0xDD, 0x13, 0x70, 0x70, 0x4E, 0x71, 0x4B, + 0x89, 0x19, 0x99, 0x42, 0x02, 0xD8, 0x70, 0x4B, 0x01, 0x22, 0x1A, 0x70, 0x64, 0x4A, 0x28, 0x27, + 0xD1, 0x5F, 0x2A, 0x20, 0x13, 0x5E, 0xCB, 0x1A, 0x28, 0x2B, 0x06, 0xDC, 0x6B, 0x4B, 0x1A, 0x78, + 0x51, 0xB2, 0x01, 0x32, 0x02, 0x29, 0x04, 0xDD, 0x04, 0xE0, 0x2C, 0x2B, 0x02, 0xDD, 0x67, 0x4B, + 0x00, 0x22, 0x1A, 0x70, 0x64, 0x4B, 0x1A, 0x78, 0x00, 0x2A, 0x38, 0xD0, 0x63, 0x4A, 0x12, 0x78, + 0x00, 0x2A, 0x01, 0xD1, 0x1A, 0x70, 0x32, 0xE0, 0x0C, 0x23, 0x03, 0x2A, 0x14, 0xD0, 0x2E, 0xE0, + 0x15, 0x25, 0x5D, 0x43, 0x13, 0x22, 0x5E, 0x01, 0x01, 0x3A, 0xD2, 0xB2, 0xAF, 0x18, 0x5C, 0x4C, + 0x7F, 0x00, 0x3F, 0x5F, 0xB0, 0x18, 0x80, 0x00, 0x3F, 0x04, 0xBC, 0x46, 0x47, 0x58, 0x67, 0x44, + 0x47, 0x50, 0x00, 0x2A, 0xF0, 0xD1, 0x00, 0xE0, 0x56, 0x49, 0x01, 0x3B, 0xDB, 0xB2, 0xFF, 0x2B, + 0xE6, 0xD1, 0x4C, 0x4B, 0x00, 0x22, 0x19, 0x1C, 0x30, 0x31, 0x04, 0xC3, 0x8B, 0x42, 0xFC, 0xD1, + 0x4D, 0x4B, 0x00, 0x22, 0x1A, 0x70, 0x01, 0x20, 0x7D, 0xE0, 0x30, 0x22, 0x00, 0x21, 0x00, 0xF0, + 0x3D, 0xFB, 0x4A, 0x4A, 0x00, 0x23, 0x13, 0x70, 0x47, 0x4A, 0x23, 0x70, 0x13, 0x70, 0x3C, 0x4C, + 0x49, 0x4B, 0xA2, 0x68, 0x22, 0x61, 0xD9, 0x7A, 0x8A, 0x42, 0x04, 0xDC, 0x0C, 0x26, 0x9B, 0x5F, + 0xE2, 0x68, 0x9A, 0x42, 0x02, 0xDA, 0x45, 0x4B, 0x01, 0x22, 0x1A, 0x70, 0xE4, 0x21, 0x01, 0x98, + 0x00, 0xF0, 0x84, 0xFA, 0x34, 0x4B, 0x60, 0x62, 0x01, 0x22, 0x9A, 0x56, 0x1B, 0x78, 0xD0, 0x17, + 0x5B, 0xB2, 0xD9, 0x0F, 0x9A, 0x42, 0x48, 0x41, 0x3D, 0x4B, 0x3B, 0x4E, 0x18, 0x70, 0x3D, 0x4B, + 0x00, 0x22, 0x37, 0x1C, 0x1A, 0x70, 0x02, 0x24, 0x4A, 0x37, 0x3B, 0x4B, 0x01, 0x3C, 0xE4, 0xB2, + 0x19, 0x5D, 0x3A, 0x48, 0x01, 0x31, 0x4B, 0x01, 0x62, 0x1C, 0x1B, 0x18, 0x52, 0x00, 0xD5, 0x5A, + 0x33, 0x7A, 0x62, 0x00, 0x1D, 0x41, 0x36, 0x4B, 0xD5, 0x52, 0x36, 0x4B, 0x1B, 0x78, 0x00, 0x2B, + 0x13, 0xD1, 0xC9, 0xB2, 0x20, 0x1C, 0x00, 0xF0, 0x41, 0xF9, 0x00, 0x21, 0x7B, 0x5E, 0x98, 0x42, + 0x05, 0xDC, 0x33, 0x1C, 0x4C, 0x33, 0x00, 0x22, 0x9B, 0x5E, 0x98, 0x42, 0x05, 0xDA, 0x2E, 0x4B, + 0x01, 0x20, 0x1B, 0x68, 0x98, 0x47, 0x00, 0x20, 0x25, 0xE0, 0x23, 0x4B, 0x5A, 0x78, 0x00, 0x2A, + 0x03, 0xD0, 0x2A, 0x4A, 0x12, 0x5D, 0x55, 0x43, 0xAD, 0x11, 0x29, 0x4A, 0xA1, 0x00, 0x8A, 0x58, + 0x5B, 0x7E, 0x12, 0x0C, 0xAD, 0x1A, 0x9D, 0x42, 0x02, 0xDB, 0x1D, 0x4B, 0x01, 0x22, 0x1A, 0x70, + 0x24, 0x4B, 0x62, 0x00, 0xD5, 0x52, 0x1B, 0x4B, 0x1A, 0x78, 0x95, 0x42, 0x00, 0xDA, 0x15, 0x1C, + 0xED, 0xB2, 0x1D, 0x70, 0x00, 0x2C, 0xB8, 0xD1, 0x13, 0x4B, 0x01, 0x20, 0xDB, 0x7A, 0xAB, 0x42, + 0x01, 0xD2, 0x12, 0x4B, 0x18, 0x70, 0x17, 0xB0, 0xF0, 0xBD, 0xC0, 0x46, 0x35, 0x06, 0x00, 0x20, + 0xAC, 0x07, 0x00, 0x20, 0xAA, 0x07, 0x00, 0x20, 0x22, 0x0F, 0x00, 0x20, 0x76, 0x07, 0x00, 0x20, + 0x26, 0x0F, 0x00, 0x20, 0x30, 0x11, 0x00, 0x20, 0x40, 0x06, 0x00, 0x20, 0xA2, 0x07, 0x00, 0x20, + 0xDB, 0x05, 0x00, 0x00, 0xAE, 0x04, 0x00, 0x00, 0x68, 0x0F, 0x00, 0x20, 0x30, 0x0A, 0x00, 0x20, + 0x28, 0x0D, 0x00, 0x20, 0x18, 0x00, 0x00, 0x20, 0xC8, 0x0B, 0x00, 0x20, 0x98, 0x07, 0x00, 0x20, + 0x88, 0x08, 0x00, 0x20, 0xAC, 0x09, 0x00, 0x20, 0x61, 0x36, 0x00, 0x00, 0x20, 0x08, 0x00, 0x40, + 0xEC, 0x10, 0x00, 0x20, 0x71, 0x07, 0x00, 0x20, 0x18, 0x07, 0x00, 0x20, 0x7A, 0x37, 0x00, 0x00, + 0x78, 0x08, 0x00, 0x20, 0xBE, 0x0B, 0x00, 0x20, 0xF0, 0xB5, 0x0C, 0x4B, 0x0C, 0x4D, 0x0D, 0x4C, + 0x0D, 0x49, 0x1E, 0x7A, 0x0C, 0x23, 0x01, 0x3B, 0xDB, 0xB2, 0x5A, 0x1C, 0x52, 0x00, 0x52, 0x5B, + 0x32, 0x41, 0x47, 0x1C, 0x02, 0xD1, 0x5F, 0x00, 0x7A, 0x52, 0x03, 0xE0, 0x5F, 0x01, 0x3F, 0x18, + 0xBF, 0x00, 0x3A, 0x51, 0x00, 0x2B, 0xEE, 0xD1, 0xF0, 0xBD, 0xC0, 0x46, 0xC8, 0x0B, 0x00, 0x20, + 0x00, 0x08, 0x00, 0x40, 0x18, 0x00, 0x00, 0x20, 0x16, 0x11, 0x00, 0x20, 0xF0, 0xB5, 0x87, 0xB0, + 0x04, 0x91, 0x29, 0x4C, 0x00, 0x21, 0x05, 0x92, 0x0D, 0x1C, 0x0C, 0x23, 0x00, 0x90, 0x00, 0x98, + 0x01, 0x3B, 0xDB, 0xB2, 0x01, 0x30, 0x06, 0xD0, 0x00, 0x9E, 0x5A, 0x01, 0x92, 0x19, 0x23, 0x4F, + 0x92, 0x00, 0xBA, 0x5A, 0x02, 0xE0, 0x22, 0x48, 0x5A, 0x00, 0x12, 0x5A, 0x5E, 0x1C, 0x21, 0x4F, + 0x03, 0x96, 0x76, 0x00, 0xF6, 0x5B, 0x20, 0x48, 0xB4, 0x46, 0x06, 0x7A, 0x67, 0x46, 0x37, 0x41, + 0x58, 0x00, 0x12, 0xB2, 0x1D, 0x4E, 0xBA, 0x1A, 0x01, 0x97, 0x07, 0x1C, 0x02, 0x90, 0xBA, 0x53, + 0x00, 0x2A, 0x01, 0xDA, 0x89, 0x1A, 0x00, 0xE0, 0x89, 0x18, 0x00, 0x9E, 0x01, 0x36, 0x07, 0xD0, + 0x00, 0x98, 0x5F, 0x01, 0x3F, 0x18, 0x11, 0x4E, 0x01, 0x98, 0xBF, 0x00, 0xB8, 0x51, 0x0C, 0xE0, + 0x0F, 0x4E, 0x6F, 0x46, 0x02, 0x98, 0xB4, 0x46, 0xBE, 0x88, 0x67, 0x46, 0x3E, 0x52, 0x03, 0x9F, + 0x0C, 0x4E, 0x7F, 0x00, 0x00, 0x20, 0x03, 0x97, 0xF0, 0x53, 0x94, 0x42, 0x00, 0xDD, 0x14, 0x1C, + 0x95, 0x42, 0x00, 0xDA, 0x15, 0x1C, 0x00, 0x2B, 0xB9, 0xD1, 0x05, 0x9E, 0x04, 0x9B, 0x2C, 0x1B, + 0x07, 0xB0, 0x19, 0x80, 0x34, 0x80, 0xF0, 0xBD, 0xFF, 0xFF, 0x00, 0x00, 0x18, 0x00, 0x00, 0x20, + 0x16, 0x11, 0x00, 0x20, 0x00, 0x08, 0x00, 0x40, 0xC8, 0x0B, 0x00, 0x20, 0xEC, 0x10, 0x00, 0x20, + 0xF7, 0xB5, 0x1E, 0x4B, 0x1E, 0x4A, 0x3F, 0x33, 0x1B, 0x78, 0x51, 0x6A, 0x99, 0x40, 0x00, 0x29, + 0x00, 0xDC, 0x01, 0x21, 0x1B, 0x4B, 0x00, 0x22, 0x9A, 0x56, 0x1B, 0x4B, 0x92, 0x00, 0xD3, 0x58, + 0x1A, 0x48, 0x59, 0x43, 0x0C, 0x23, 0x14, 0xE0, 0x15, 0x25, 0x5D, 0x43, 0x13, 0x22, 0x5E, 0x01, + 0x01, 0x95, 0x01, 0x9D, 0x01, 0x3A, 0xD2, 0xB2, 0xAF, 0x18, 0x15, 0x4D, 0x7F, 0x00, 0x7D, 0x5F, + 0xB4, 0x18, 0x4D, 0x43, 0xA4, 0x00, 0x27, 0x58, 0xAC, 0x46, 0x67, 0x44, 0x27, 0x50, 0x00, 0x2A, + 0xEF, 0xD1, 0x01, 0x3B, 0xDB, 0xB2, 0xFF, 0x2B, 0xE6, 0xD1, 0x0E, 0x4A, 0x0E, 0x4B, 0x02, 0x24, + 0x10, 0x5F, 0x5C, 0x68, 0x48, 0x43, 0x00, 0x19, 0x58, 0x60, 0x00, 0x25, 0x52, 0x5F, 0x01, 0x20, + 0x51, 0x43, 0x1A, 0x68, 0x89, 0x18, 0x19, 0x60, 0xFE, 0xBD, 0xC0, 0x46, 0xC8, 0x0B, 0x00, 0x20, + 0xAC, 0x07, 0x00, 0x20, 0x32, 0x06, 0x00, 0x20, 0x48, 0x08, 0x00, 0x20, 0x18, 0x00, 0x00, 0x20, + 0x28, 0x0D, 0x00, 0x20, 0xBE, 0x0B, 0x00, 0x20, 0x78, 0x08, 0x00, 0x20, 0x07, 0x4B, 0x49, 0x01, + 0xC9, 0x18, 0x43, 0x1C, 0x5B, 0x00, 0x06, 0x4A, 0x59, 0x5A, 0x06, 0x4B, 0x40, 0x00, 0x12, 0x7A, + 0xC3, 0x5A, 0x08, 0x1C, 0x10, 0x41, 0x18, 0x1A, 0x70, 0x47, 0xC0, 0x46, 0x20, 0x08, 0x00, 0x40, + 0xC8, 0x0B, 0x00, 0x20, 0x16, 0x11, 0x00, 0x20, 0x08, 0xB5, 0x05, 0x49, 0x50, 0x22, 0x05, 0x48, + 0x00, 0xF0, 0x5E, 0xF9, 0x04, 0x48, 0x05, 0x49, 0x28, 0x22, 0x00, 0xF0, 0x59, 0xF9, 0x08, 0xBD, + 0x98, 0x35, 0x00, 0x00, 0xC8, 0x0B, 0x00, 0x20, 0x58, 0x0A, 0x00, 0x20, 0x70, 0x35, 0x00, 0x00, + 0x08, 0xB5, 0x04, 0x49, 0x04, 0x4B, 0x41, 0x43, 0x04, 0x48, 0xC9, 0x18, 0x00, 0xF0, 0xE6, 0xF8, + 0xC0, 0xB2, 0x08, 0xBD, 0x44, 0xFE, 0xFF, 0xFF, 0xFE, 0x24, 0x02, 0x00, 0x40, 0x42, 0x0F, 0x00, + 0x10, 0xB5, 0x1A, 0x4B, 0x00, 0x22, 0xDA, 0x70, 0x01, 0x22, 0x1A, 0x71, 0xB0, 0x22, 0x9A, 0x70, + 0x10, 0x22, 0x1A, 0x70, 0x0C, 0x22, 0x5A, 0x71, 0x02, 0x22, 0x9A, 0x71, 0x09, 0x22, 0xDA, 0x71, + 0x13, 0x4A, 0x12, 0x78, 0xAA, 0x2A, 0x1F, 0xD1, 0x12, 0x49, 0x13, 0x4A, 0x00, 0x24, 0x0C, 0x57, + 0x12, 0x49, 0x12, 0x78, 0x09, 0x78, 0x50, 0xB2, 0x49, 0xB2, 0x04, 0x19, 0x64, 0x18, 0x10, 0x49, + 0x09, 0x78, 0x49, 0xB2, 0x8C, 0x42, 0x0F, 0xD1, 0x0E, 0x49, 0x9C, 0x78, 0x41, 0x31, 0x09, 0x78, + 0x20, 0x18, 0x40, 0x18, 0xFF, 0x28, 0x03, 0xDD, 0xC9, 0x43, 0xC9, 0xB2, 0x99, 0x70, 0x03, 0xE0, + 0x99, 0x78, 0x8A, 0x18, 0xD2, 0xB2, 0x9A, 0x70, 0x10, 0xBD, 0xC0, 0x46, 0x98, 0x0A, 0x00, 0x20, + 0xA0, 0x00, 0xE0, 0x00, 0xA2, 0x00, 0xE0, 0x00, 0xA1, 0x00, 0xE0, 0x00, 0xA3, 0x00, 0xE0, 0x00, + 0xA4, 0x00, 0xE0, 0x00, 0xC8, 0x0B, 0x00, 0x20, 0x70, 0xB5, 0x17, 0x4D, 0x6B, 0x79, 0xDA, 0x08, + 0x01, 0xD0, 0x08, 0x3B, 0xDB, 0xB2, 0x00, 0x26, 0x07, 0x2B, 0x03, 0xD0, 0x02, 0x22, 0x9A, 0x42, + 0x76, 0x41, 0x96, 0x1B, 0x2B, 0x78, 0x11, 0x4C, 0x9A, 0x00, 0xD3, 0x18, 0x33, 0x41, 0xDB, 0xB2, + 0x23, 0x60, 0x2B, 0x78, 0xFA, 0x20, 0x80, 0x00, 0x58, 0x43, 0x0D, 0x4B, 0x01, 0x36, 0x99, 0x88, + 0xB1, 0x40, 0x00, 0xF0, 0x7B, 0xF8, 0xC1, 0xB2, 0x61, 0x60, 0x2B, 0x78, 0x2D, 0x20, 0xB1, 0x40, + 0x58, 0x43, 0x00, 0xF0, 0x73, 0xF8, 0x07, 0x4B, 0xF2, 0x22, 0x1A, 0x80, 0x06, 0x4B, 0xC0, 0xB2, + 0x40, 0x22, 0xA0, 0x60, 0x1A, 0x60, 0x70, 0xBD, 0x98, 0x0A, 0x00, 0x20, 0x60, 0x08, 0x00, 0x20, + 0xC8, 0x0B, 0x00, 0x20, 0xB2, 0x0B, 0x00, 0x20, 0x24, 0x0A, 0x00, 0x20, 0x00, 0xB5, 0x07, 0x4A, + 0x13, 0x68, 0x03, 0x60, 0x03, 0x23, 0x08, 0x1C, 0x98, 0x43, 0x03, 0x1C, 0x88, 0x42, 0x00, 0xD0, + 0x04, 0x33, 0x11, 0x68, 0xCB, 0x18, 0x13, 0x60, 0x00, 0xBD, 0xC0, 0x46, 0x2C, 0x06, 0x00, 0x20, + 0x00, 0x29, 0x34, 0xD0, 0x01, 0x23, 0x00, 0x22, 0x10, 0xB4, 0x88, 0x42, 0x2C, 0xD3, 0x01, 0x24, + 0x24, 0x07, 0xA1, 0x42, 0x04, 0xD2, 0x81, 0x42, 0x02, 0xD2, 0x09, 0x01, 0x1B, 0x01, 0xF8, 0xE7, + 0xE4, 0x00, 0xA1, 0x42, 0x04, 0xD2, 0x81, 0x42, 0x02, 0xD2, 0x49, 0x00, 0x5B, 0x00, 0xF8, 0xE7, + 0x88, 0x42, 0x01, 0xD3, 0x40, 0x1A, 0x1A, 0x43, 0x4C, 0x08, 0xA0, 0x42, 0x02, 0xD3, 0x00, 0x1B, + 0x5C, 0x08, 0x22, 0x43, 0x8C, 0x08, 0xA0, 0x42, 0x02, 0xD3, 0x00, 0x1B, 0x9C, 0x08, 0x22, 0x43, + 0xCC, 0x08, 0xA0, 0x42, 0x02, 0xD3, 0x00, 0x1B, 0xDC, 0x08, 0x22, 0x43, 0x00, 0x28, 0x03, 0xD0, + 0x1B, 0x09, 0x01, 0xD0, 0x09, 0x09, 0xE3, 0xE7, 0x10, 0x1C, 0x10, 0xBC, 0x70, 0x47, 0x00, 0x28, + 0x01, 0xD0, 0x00, 0x20, 0xC0, 0x43, 0x07, 0xB4, 0x02, 0x48, 0x02, 0xA1, 0x40, 0x18, 0x02, 0x90, + 0x03, 0xBD, 0xC0, 0x46, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x29, 0xF0, 0xD0, 0x03, 0xB5, 0xFF, 0xF7, + 0xB9, 0xFF, 0x0E, 0xBC, 0x42, 0x43, 0x89, 0x1A, 0x18, 0x47, 0xC0, 0x46, 0x00, 0x29, 0x41, 0xD0, + 0x10, 0xB4, 0x04, 0x1C, 0x4C, 0x40, 0xA4, 0x46, 0x01, 0x23, 0x00, 0x22, 0x00, 0x29, 0x00, 0xD5, + 0x49, 0x42, 0x00, 0x28, 0x00, 0xD5, 0x40, 0x42, 0x88, 0x42, 0x2C, 0xD3, 0x01, 0x24, 0x24, 0x07, + 0xA1, 0x42, 0x04, 0xD2, 0x81, 0x42, 0x02, 0xD2, 0x09, 0x01, 0x1B, 0x01, 0xF8, 0xE7, 0xE4, 0x00, + 0xA1, 0x42, 0x04, 0xD2, 0x81, 0x42, 0x02, 0xD2, 0x49, 0x00, 0x5B, 0x00, 0xF8, 0xE7, 0x88, 0x42, + 0x01, 0xD3, 0x40, 0x1A, 0x1A, 0x43, 0x4C, 0x08, 0xA0, 0x42, 0x02, 0xD3, 0x00, 0x1B, 0x5C, 0x08, + 0x22, 0x43, 0x8C, 0x08, 0xA0, 0x42, 0x02, 0xD3, 0x00, 0x1B, 0x9C, 0x08, 0x22, 0x43, 0xCC, 0x08, + 0xA0, 0x42, 0x02, 0xD3, 0x00, 0x1B, 0xDC, 0x08, 0x22, 0x43, 0x00, 0x28, 0x03, 0xD0, 0x1B, 0x09, + 0x01, 0xD0, 0x09, 0x09, 0xE3, 0xE7, 0x10, 0x1C, 0x64, 0x46, 0x00, 0x2C, 0x00, 0xD5, 0x40, 0x42, + 0x10, 0xBC, 0x70, 0x47, 0x00, 0x28, 0x06, 0xD0, 0x03, 0xDB, 0x00, 0x20, 0xC0, 0x43, 0x40, 0x08, + 0x01, 0xE0, 0x80, 0x20, 0x00, 0x06, 0x07, 0xB4, 0x02, 0x48, 0x02, 0xA1, 0x40, 0x18, 0x02, 0x90, + 0x03, 0xBD, 0xC0, 0x46, 0x19, 0x00, 0x00, 0x00, 0x00, 0x29, 0xEB, 0xD0, 0x03, 0xB5, 0xFF, 0xF7, + 0xA7, 0xFF, 0x0E, 0xBC, 0x42, 0x43, 0x89, 0x1A, 0x18, 0x47, 0xC0, 0x46, 0x70, 0x47, 0xC0, 0x46, + 0xF0, 0xB5, 0x05, 0x1C, 0x0F, 0x2A, 0x2F, 0xD9, 0x0B, 0x1C, 0x03, 0x43, 0x05, 0x1C, 0x9C, 0x07, + 0x2C, 0xD1, 0x0C, 0x1C, 0x03, 0x1C, 0x15, 0x1C, 0x26, 0x68, 0x10, 0x3D, 0x1E, 0x60, 0x66, 0x68, + 0x5E, 0x60, 0xA6, 0x68, 0x9E, 0x60, 0xE6, 0x68, 0x10, 0x34, 0xDE, 0x60, 0x10, 0x33, 0x0F, 0x2D, + 0xF2, 0xD8, 0x13, 0x1C, 0x10, 0x3B, 0x1B, 0x09, 0x01, 0x33, 0x1B, 0x01, 0xC5, 0x18, 0xC9, 0x18, + 0x0F, 0x23, 0x1A, 0x40, 0x03, 0x2A, 0x0F, 0xD9, 0x0E, 0x1C, 0x2C, 0x1C, 0x13, 0x1C, 0x80, 0xCE, + 0x04, 0x3B, 0x80, 0xC4, 0x03, 0x2B, 0xFA, 0xD8, 0x13, 0x1F, 0x9B, 0x08, 0x01, 0x33, 0x9B, 0x00, + 0x03, 0x24, 0x22, 0x40, 0xC9, 0x18, 0xED, 0x18, 0x00, 0x2A, 0x05, 0xD0, 0x00, 0x23, 0xCC, 0x5C, + 0xEC, 0x54, 0x01, 0x33, 0x93, 0x42, 0xFA, 0xD1, 0xF0, 0xBD, 0xC0, 0x46, 0x70, 0xB5, 0x83, 0x07, + 0x42, 0xD0, 0x00, 0x2A, 0x3F, 0xD0, 0x01, 0x3A, 0xCE, 0xB2, 0x03, 0x1C, 0x03, 0x25, 0x03, 0xE0, + 0x54, 0x1E, 0x00, 0x2A, 0x37, 0xD0, 0x22, 0x1C, 0x1E, 0x70, 0x01, 0x33, 0x2B, 0x42, 0xF7, 0xD1, + 0x03, 0x2A, 0x28, 0xD9, 0xFF, 0x25, 0x0D, 0x40, 0x2C, 0x02, 0x25, 0x43, 0x2C, 0x04, 0x25, 0x43, + 0x0F, 0x2A, 0x13, 0xD9, 0x1C, 0x1C, 0x16, 0x1C, 0x10, 0x3E, 0x25, 0x60, 0x65, 0x60, 0xA5, 0x60, + 0xE5, 0x60, 0x10, 0x34, 0x0F, 0x2E, 0xF7, 0xD8, 0x14, 0x1C, 0x10, 0x3C, 0x24, 0x09, 0x01, 0x34, + 0x24, 0x01, 0x1B, 0x19, 0x0F, 0x24, 0x22, 0x40, 0x03, 0x2A, 0x0C, 0xD9, 0x1E, 0x1C, 0x14, 0x1C, + 0x04, 0x3C, 0x20, 0xC6, 0x03, 0x2C, 0xFB, 0xD8, 0x14, 0x1F, 0xA4, 0x08, 0x01, 0x34, 0xA4, 0x00, + 0x03, 0x25, 0x2A, 0x40, 0x1B, 0x19, 0x00, 0x2A, 0x05, 0xD0, 0xC9, 0xB2, 0x01, 0x3A, 0x19, 0x70, + 0x01, 0x33, 0x00, 0x2A, 0xFA, 0xD1, 0x70, 0xBD, 0x03, 0x1C, 0xC9, 0xE7, 0xFA, 0xFC, 0xFB, 0xFD, + 0x02, 0x01, 0x03, 0x02, 0x07, 0x02, 0x01, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0xFF, 0xFF, 0xFF, + 0xFB, 0xFB, 0xFE, 0xFA, 0xFC, 0x01, 0xFB, 0xFE, 0xFA, 0x01, 0xFF, 0x04, 0x04, 0x04, 0xFB, 0xFC, + 0xFB, 0xFC, 0x00, 0xFD, 0x00, 0xFE, 0x02, 0x03, 0x00, 0x02, 0x07, 0x07, 0x06, 0x09, 0x00, 0x0C, + 0x06, 0x04, 0x03, 0x00, 0xFF, 0x01, 0x00, 0xFF, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x43, 0x53, 0x30, 0x32, 0x5F, 0x47, 0x46, 0x31, 0x0A, 0x00, 0x01, 0x02, 0x00, 0x0B, 0x01, 0x01, + 0x13, 0x00, 0x00, 0x00, 0x78, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x84, 0x03, 0xAC, 0x0D, + 0x1E, 0x00, 0x0A, 0x07, 0x0D, 0x01, 0x01, 0x00, 0x00, 0x01, 0x5A, 0x1E, 0x90, 0x01, 0x12, 0x10, + 0x02, 0x05, 0x14, 0x0A, 0xF9, 0xFF, 0x00, 0x03, 0x00, 0x01, 0x00, 0x6E, 0x05, 0x07, 0xF9, 0xFF, + 0x07, 0x06, 0x9C, 0x03, 0x52, 0x03, 0x26, 0x02, 0x5E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xF4, 0x01, 0x00, 0x00, 0x19, 0x00, 0x0F, 0x00, 0x16, 0x0C, 0xE8, 0x03, 0x23, 0x00, 0x02, 0x02, + 0x19, 0x00, 0x32, 0x00, 0x00, 0x00, 0x01, 0x03, 0x0C, 0x07, 0xFF, 0x7F, 0x00, 0x07, 0x42, 0x04, + 0x2C, 0x00, 0xA8, 0x04, 0x1B, 0x01, 0x01, 0x00, 0x00, 0x00, 0x3C, 0x1E, 0x4A, 0x01, 0x24, 0x10, + 0x04, 0x06, 0x14, 0x07, 0xF9, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5A, 0x05, 0x0A, 0xFB, 0xFF, + 0x08, 0x06, 0x9C, 0x03, 0x52, 0x03, 0x26, 0x02, 0x5E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x19, 0x00, 0x16, 0x0C, 0xE8, 0x03, 0x23, 0x00, 0x02, 0x01, + 0x1E, 0x00, 0x96, 0x00, 0x00, 0x00, 0x01, 0x03, 0x0C, 0x07, 0xFF, 0xFF, 0x00, 0x07, 0xFF, 0x7F, + 0x00, 0x80, 0xFF, 0x7F, 0x00, 0x80, 0x23, 0x00, 0x0A, 0x06, 0x09, 0x05, 0x08, 0x04, 0x07, 0x03, + 0x0B, 0x02, 0x0C, 0x01, 0x0D, 0x00, 0x10, 0x11, 0x0F, 0x12, 0x0E, 0x13, 0x15, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x03, 0x05, 0x04, 0x07, 0x06, 0x08, 0x09, 0x0A, 0x0B, 0x00, 0x00, 0x00, + 0x00, 0x14, 0x14, 0x00, 0x00, 0x05, 0x06, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0x60, 0x2F, + 0x3A, 0x32, 0x4D, 0x38, 0x4D, 0x39, 0x4D, 0x3E, 0x4A, 0x3D, 0x47, 0x38, 0x42, 0x31, 0x49, 0x37, + 0x45, 0x3D, 0x00, 0x3D, 0x25, 0x26, 0x28, 0x28, 0x2B, 0x2A, 0x2D, 0x2D, 0x2F, 0x2E, 0x2B, 0x24, + 0x25, 0x24, 0x27, 0x2C, 0x2C, 0x2C, 0x41, 0x00, 0x39, 0x25, 0x28, 0x27, 0x2A, 0x2D, 0x2F, 0x2F, + 0x31, 0x32, 0x31, 0x2D, 0x24, 0x27, 0x27, 0x28, 0x2E, 0x2F, 0x2E, 0x49, 0x00, 0x3E, 0x24, 0x26, + 0x28, 0x2B, 0x2F, 0x32, 0x31, 0x33, 0x35, 0x33, 0x2F, 0x24, 0x27, 0x28, 0x29, 0x2D, 0x2E, 0x2E, + 0x49, 0x00, 0x3E, 0x25, 0x26, 0x2A, 0x2A, 0x31, 0x31, 0x35, 0x34, 0x35, 0x35, 0x30, 0x25, 0x28, + 0x28, 0x2B, 0x2F, 0x31, 0x2E, 0x4D, 0x00, 0x3E, 0x25, 0x28, 0x2C, 0x2F, 0x32, 0x31, 0x33, 0x33, + 0x37, 0x33, 0x32, 0x26, 0x2B, 0x28, 0x2E, 0x2E, 0x2E, 0x2A, 0x43, 0x00, 0x41, 0x27, 0x29, 0x2C, + 0x30, 0x32, 0x35, 0x35, 0x39, 0x37, 0x37, 0x32, 0x29, 0x29, 0x2A, 0x2B, 0x33, 0x2E, 0x27, 0x4D, + 0x00, 0x47, 0x27, 0x28, 0x2B, 0x2A, 0x31, 0x31, 0x34, 0x37, 0x37, 0x32, 0x31, 0x26, 0x29, 0x28, + 0x2C, 0x2E, 0x31, 0x2E, 0x4D, 0x00, 0x43, 0x26, 0x27, 0x2B, 0x2B, 0x32, 0x30, 0x32, 0x35, 0x35, + 0x33, 0x2F, 0x24, 0x28, 0x26, 0x2C, 0x2B, 0x30, 0x2F, 0x4D, 0x00, 0x42, 0x26, 0x26, 0x28, 0x29, + 0x2D, 0x2C, 0x2F, 0x30, 0x32, 0x31, 0x2D, 0x25, 0x26, 0x24, 0x26, 0x2B, 0x2B, 0x2C, 0x44, 0x00, + 0x43, 0x25, 0x25, 0x26, 0x28, 0x2F, 0x2D, 0x2D, 0x30, 0x2E, 0x2E, 0x2B, 0x21, 0x27, 0x24, 0x27, + 0x2A, 0x2B, 0x2F, 0x44, 0x00, 0x58, 0x3E, 0x37, 0x4A, 0x3D, 0x57, 0x3E, 0x53, 0x44, 0x57, 0x42, + 0x53, 0x33, 0x4A, 0x33, 0x47, 0x3D, 0x4E, 0x3F, 0x5B, 0x00, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x01, + 0x02, 0x03, 0x04, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + 0x10, 0x11, 0x11, 0x12, 0x13, 0x14, 0x15, 0x15, 0x16, 0x17, 0x18, 0x18, 0x19, 0x1A, 0x1B, 0x1B, + 0x1C, 0x1D, 0x1D, 0x1E, 0x1F, 0x1F, 0x20, 0x21, 0x21, 0x22, 0x23, 0x23, 0x24, 0x24, 0x25, 0x25, + 0x26, 0x27, 0x27, 0x28, 0x28, 0x29, 0x29, 0x2A, 0x2A, 0x2B, 0x2B, 0x2C, 0x2C, 0x2D, 0x00, 0x00, + 0x4D, 0x49, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x10, 0xB5, 0x13, 0x4A, + 0x13, 0x4B, 0x14, 0x4C, 0x1A, 0x60, 0x14, 0x4B, 0x14, 0x4A, 0x20, 0x1C, 0x1A, 0x60, 0x50, 0x21, + 0xFF, 0xF7, 0x5C, 0xFD, 0x50, 0x22, 0x20, 0x68, 0x00, 0x21, 0xFF, 0xF7, 0x57, 0xFE, 0x10, 0x48, + 0x1E, 0x21, 0xFF, 0xF7, 0x53, 0xFD, 0x0F, 0x4A, 0x0F, 0x4B, 0x1A, 0x60, 0x0F, 0x4A, 0x10, 0x4B, + 0x1A, 0x60, 0x10, 0x4A, 0x10, 0x4B, 0x1A, 0x60, 0x10, 0x4A, 0x11, 0x4B, 0x1A, 0x60, 0x11, 0x4A, + 0x11, 0x4B, 0x1A, 0x60, 0x11, 0x4A, 0x12, 0x4B, 0x1A, 0x60, 0x10, 0xBD, 0x65, 0x4B, 0x00, 0x00, + 0x54, 0x08, 0x00, 0x20, 0x24, 0x07, 0x00, 0x20, 0x50, 0x08, 0x00, 0x20, 0xC5, 0x3D, 0x00, 0x00, + 0x1C, 0x0C, 0x00, 0x20, 0x95, 0x43, 0x00, 0x00, 0x14, 0x07, 0x00, 0x20, 0xA1, 0x43, 0x00, 0x00, + 0x18, 0x07, 0x00, 0x20, 0x01, 0x44, 0x00, 0x00, 0x5C, 0x08, 0x00, 0x20, 0x45, 0x47, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x20, 0xDD, 0x49, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x20, 0x21, 0x47, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x20, 0xF0, 0xB5, 0xC3, 0x4B, 0x85, 0xB0, 0x1B, 0x78, 0xC2, 0x4A, 0x00, 0x2B, + 0x1E, 0xD0, 0xC2, 0x4B, 0x1B, 0x78, 0x04, 0x2B, 0x08, 0xD8, 0xC1, 0x4B, 0x1B, 0x78, 0x28, 0x2B, + 0x1B, 0xD9, 0xC0, 0x4B, 0x9B, 0x68, 0x31, 0x2B, 0x0E, 0xDD, 0x16, 0xE0, 0x0D, 0x2B, 0x14, 0xD9, + 0xBB, 0x49, 0x09, 0x78, 0x50, 0x29, 0x03, 0xD9, 0xBA, 0x48, 0x80, 0x68, 0x45, 0x28, 0x03, 0xDD, + 0x12, 0x2B, 0x0A, 0xD9, 0x5A, 0x29, 0x08, 0xD9, 0x13, 0x68, 0x01, 0x2B, 0x05, 0xD1, 0x02, 0xE0, + 0x13, 0x68, 0x00, 0x2B, 0x01, 0xD1, 0xB4, 0x4A, 0x13, 0x70, 0xB3, 0x4B, 0x1B, 0x78, 0x00, 0x2B, + 0x05, 0xD0, 0xB2, 0x4B, 0x1B, 0x78, 0x00, 0x2B, 0x01, 0xD1, 0xFE, 0xF7, 0xE7, 0xF8, 0xB0, 0x4C, + 0xB0, 0x4A, 0x23, 0x1C, 0x36, 0x33, 0x1F, 0x78, 0x23, 0x1C, 0x4E, 0x33, 0x1B, 0x78, 0x52, 0x68, + 0xE6, 0x8D, 0x53, 0x43, 0x9B, 0x11, 0x01, 0x93, 0xA3, 0x48, 0x2C, 0x25, 0x61, 0x5F, 0x02, 0x68, + 0x05, 0x23, 0x02, 0x91, 0x01, 0x3B, 0xDB, 0xB2, 0x1D, 0x1C, 0x0D, 0x35, 0xED, 0x00, 0x45, 0x19, + 0xAC, 0x88, 0x00, 0x2C, 0x24, 0xD0, 0xA4, 0x49, 0x24, 0xB2, 0xC9, 0x5C, 0x00, 0x29, 0x02, 0xD0, + 0x49, 0xB2, 0xB9, 0x42, 0x11, 0xDC, 0x02, 0x9D, 0xAC, 0x42, 0x08, 0xDB, 0x1C, 0x1C, 0x0D, 0x34, + 0x95, 0x49, 0xE4, 0x00, 0x0C, 0x19, 0x64, 0x89, 0x01, 0x9D, 0xAC, 0x42, 0x10, 0xDA, 0x1D, 0x1C, + 0x0D, 0x35, 0x91, 0x49, 0xED, 0x00, 0x4D, 0x19, 0x02, 0xE0, 0x31, 0xB2, 0x8C, 0x42, 0x07, 0xDA, + 0x00, 0x24, 0xAC, 0x80, 0x9D, 0x00, 0xAC, 0x46, 0x94, 0x4D, 0x61, 0x46, 0x4C, 0x51, 0x01, 0x3A, + 0x00, 0x2B, 0xCF, 0xD1, 0x92, 0x49, 0x05, 0x24, 0x0A, 0x60, 0x87, 0x4A, 0x13, 0x60, 0x01, 0x3C, + 0xE4, 0xB2, 0x26, 0x1C, 0x84, 0x4A, 0x0D, 0x36, 0xF6, 0x00, 0x96, 0x19, 0x02, 0x96, 0xB0, 0x88, + 0x89, 0x4D, 0x00, 0x28, 0x00, 0xD1, 0xBD, 0xE0, 0x8A, 0x4B, 0x1B, 0x78, 0x00, 0x2B, 0x07, 0xD1, + 0x00, 0xB2, 0x1E, 0x38, 0x05, 0x21, 0xFF, 0xF7, 0xE9, 0xFC, 0x02, 0x9E, 0x1E, 0x30, 0xB0, 0x80, + 0x2B, 0x5D, 0x7F, 0x2B, 0x01, 0xD0, 0x01, 0x33, 0x2B, 0x55, 0x7F, 0x4B, 0x1B, 0x57, 0x02, 0x2B, + 0x73, 0xDD, 0x81, 0x4B, 0x62, 0x00, 0x9A, 0x18, 0x04, 0x27, 0xD5, 0x5F, 0x22, 0x1D, 0x52, 0x00, + 0x9B, 0x18, 0x06, 0x20, 0x1F, 0x5E, 0x70, 0x4B, 0xA2, 0x00, 0x9A, 0x18, 0x56, 0x68, 0x22, 0x1C, + 0x0E, 0x32, 0x92, 0x00, 0xD2, 0x58, 0xA8, 0x1B, 0xC3, 0x17, 0xB9, 0x1A, 0x01, 0x92, 0xC2, 0x18, + 0x5A, 0x40, 0x94, 0x46, 0xCA, 0x17, 0x8B, 0x18, 0x53, 0x40, 0x63, 0x44, 0x03, 0x91, 0x02, 0x93, + 0x19, 0x1C, 0x80, 0x2B, 0x0A, 0xDD, 0xC0, 0x01, 0xFF, 0xF7, 0xB8, 0xFC, 0x03, 0x9F, 0x02, 0x99, + 0x35, 0x18, 0xF8, 0x01, 0xFF, 0xF7, 0xB2, 0xFC, 0x01, 0x99, 0x0F, 0x18, 0x72, 0x1B, 0x01, 0x98, + 0xD3, 0x17, 0xD2, 0x18, 0x5A, 0x40, 0xC3, 0x1B, 0xD9, 0x17, 0x5B, 0x18, 0x4B, 0x40, 0xD3, 0x18, + 0x01, 0x93, 0x5F, 0x4B, 0x31, 0x1C, 0x32, 0x22, 0x9A, 0x5E, 0x28, 0x1C, 0x01, 0x9B, 0xFE, 0xF7, + 0x15, 0xFA, 0x26, 0x1C, 0x54, 0x4D, 0x02, 0x90, 0x0E, 0x36, 0x59, 0x48, 0xB6, 0x00, 0x71, 0x59, + 0x32, 0x22, 0x82, 0x5E, 0x01, 0x9B, 0x38, 0x1C, 0xFE, 0xF7, 0x08, 0xFA, 0x02, 0x9F, 0xA3, 0x00, + 0xEB, 0x18, 0x5F, 0x60, 0x23, 0x1C, 0x0D, 0x33, 0x70, 0x51, 0xDB, 0x00, 0x56, 0x4E, 0xE7, 0x1C, + 0xED, 0x18, 0xFF, 0x00, 0xB8, 0x5F, 0x04, 0x22, 0xA9, 0x5E, 0x4D, 0x4E, 0x43, 0x1A, 0x34, 0x22, + 0xB2, 0x5E, 0xDE, 0x17, 0x9B, 0x19, 0x73, 0x40, 0xFE, 0xF7, 0xF0, 0xF9, 0xA8, 0x80, 0x4E, 0x48, + 0x69, 0x89, 0xC6, 0x19, 0xF0, 0x88, 0x46, 0x4E, 0x43, 0x1A, 0xDF, 0x17, 0xDB, 0x19, 0x34, 0x22, + 0xB2, 0x5E, 0x7B, 0x40, 0xFE, 0xF7, 0xE2, 0xF9, 0x68, 0x81, 0x3B, 0x4B, 0xA0, 0x00, 0x46, 0x4A, + 0x18, 0x18, 0x40, 0x68, 0x61, 0x00, 0x51, 0x18, 0x88, 0x80, 0x20, 0x1C, 0x0E, 0x30, 0x21, 0x1D, + 0x80, 0x00, 0xC0, 0x58, 0x49, 0x00, 0x25, 0x1C, 0x51, 0x18, 0x0D, 0x35, 0xC8, 0x80, 0xED, 0x00, + 0xE1, 0x1C, 0xC9, 0x00, 0x5D, 0x19, 0x51, 0x18, 0x28, 0x1D, 0xC0, 0xC8, 0xC0, 0xC1, 0x20, 0x1C, + 0x34, 0x30, 0x80, 0x00, 0x21, 0x1C, 0x18, 0x18, 0x10, 0x31, 0x40, 0x68, 0x89, 0x00, 0x88, 0x50, + 0x31, 0x4A, 0x11, 0x57, 0x2E, 0x4A, 0x36, 0x32, 0x12, 0x78, 0x91, 0x42, 0x03, 0xDC, 0x01, 0x23, + 0x5B, 0x42, 0xAB, 0x80, 0x02, 0xE0, 0x1A, 0x68, 0x01, 0x32, 0x1A, 0x60, 0x2F, 0x4B, 0x00, 0x22, + 0x1A, 0x55, 0x61, 0xE0, 0x2E, 0x4E, 0x29, 0x57, 0x37, 0x78, 0x8C, 0x46, 0xE1, 0x1C, 0x2A, 0x4B, + 0xC9, 0x00, 0xBC, 0x45, 0x56, 0xDD, 0x5F, 0x5E, 0x00, 0x2F, 0x55, 0xD0, 0x27, 0x4F, 0x3E, 0x5D, + 0xBC, 0x46, 0x37, 0x1C, 0x01, 0x37, 0xFF, 0xB2, 0x66, 0x46, 0x01, 0x97, 0x37, 0x55, 0x1C, 0x4F, + 0x6E, 0x46, 0x36, 0x79, 0x3E, 0x37, 0x3F, 0x78, 0x76, 0xB2, 0xBE, 0x42, 0x42, 0xDC, 0x02, 0x9E, + 0x59, 0x18, 0x04, 0x36, 0xA0, 0xC9, 0xA0, 0xC6, 0x20, 0x1C, 0x21, 0x1C, 0x10, 0x30, 0x34, 0x31, + 0x80, 0x00, 0x18, 0x58, 0x89, 0x00, 0x51, 0x18, 0x48, 0x60, 0x60, 0x00, 0x18, 0x18, 0x04, 0x26, + 0x80, 0x5F, 0xA1, 0x00, 0x51, 0x18, 0x48, 0x60, 0x20, 0x1D, 0x40, 0x00, 0x21, 0x1C, 0x1B, 0x18, + 0x06, 0x27, 0xDB, 0x5F, 0x0E, 0x31, 0x89, 0x00, 0x8B, 0x50, 0x13, 0x68, 0x01, 0x33, 0x13, 0x60, + 0x22, 0xE0, 0xC0, 0x46, 0x88, 0x08, 0x00, 0x20, 0x20, 0x0C, 0x00, 0x20, 0x46, 0x08, 0x00, 0x20, + 0x47, 0x08, 0x00, 0x20, 0xAC, 0x07, 0x00, 0x20, 0x09, 0x08, 0x00, 0x20, 0x76, 0x07, 0x00, 0x20, + 0xC8, 0x0B, 0x00, 0x20, 0x6C, 0x08, 0x00, 0x20, 0xB8, 0x0B, 0x00, 0x20, 0x9C, 0x0B, 0x00, 0x20, + 0x5C, 0x0F, 0x00, 0x20, 0x40, 0x06, 0x00, 0x20, 0xC0, 0x09, 0x00, 0x20, 0x38, 0x0A, 0x00, 0x20, + 0xFE, 0x0B, 0x00, 0x20, 0x58, 0x52, 0x28, 0x55, 0x00, 0x2C, 0x00, 0xD0, 0xCF, 0xE6, 0x3B, 0x4B, + 0x25, 0x1C, 0x1C, 0x60, 0x02, 0x24, 0x01, 0x3C, 0xE4, 0xB2, 0x38, 0x4E, 0x22, 0x1D, 0x52, 0x00, + 0x91, 0x5B, 0x37, 0x4B, 0x00, 0x29, 0x34, 0xD0, 0x1A, 0x5D, 0x7F, 0x2A, 0x01, 0xD0, 0x01, 0x32, + 0x1A, 0x55, 0x1B, 0x57, 0x01, 0x2B, 0x0F, 0xDD, 0x32, 0x4A, 0x26, 0x1D, 0x76, 0x00, 0x90, 0x5F, + 0x31, 0x4B, 0x09, 0xB2, 0x34, 0x27, 0xDA, 0x5F, 0x43, 0x1A, 0xDF, 0x17, 0xDB, 0x19, 0x7B, 0x40, + 0xFE, 0xF7, 0x24, 0xF9, 0x29, 0x4B, 0xF0, 0x52, 0x28, 0x4B, 0x22, 0x1D, 0x52, 0x00, 0x29, 0x48, + 0xD1, 0x5A, 0x11, 0x52, 0x26, 0x48, 0x06, 0x57, 0x27, 0x48, 0x36, 0x30, 0x00, 0x78, 0x86, 0x42, + 0x03, 0xDC, 0x01, 0x21, 0x49, 0x42, 0xD1, 0x52, 0x07, 0xE0, 0x1A, 0x68, 0x01, 0x32, 0x1A, 0x60, + 0x0A, 0xB2, 0x95, 0x42, 0x01, 0xDA, 0x5C, 0x60, 0x15, 0x1C, 0x20, 0x4B, 0x00, 0x22, 0x1A, 0x55, + 0x2F, 0xE0, 0x18, 0x57, 0x1E, 0x4F, 0x84, 0x46, 0x38, 0x78, 0x84, 0x45, 0x26, 0xDD, 0x19, 0x48, + 0x80, 0x5A, 0x02, 0x90, 0x00, 0x28, 0x24, 0xD0, 0x18, 0x4F, 0x01, 0x20, 0x3F, 0x5D, 0xBC, 0x46, + 0x84, 0x44, 0x67, 0x46, 0x15, 0x48, 0xFF, 0xB2, 0x07, 0x55, 0x13, 0x48, 0x7F, 0xB2, 0x84, 0x46, + 0x3E, 0x20, 0x84, 0x44, 0x60, 0x46, 0x00, 0x78, 0x87, 0x42, 0x0F, 0xDC, 0x08, 0x20, 0x6F, 0x46, + 0xC7, 0x5B, 0x08, 0x21, 0x68, 0x46, 0x97, 0x53, 0x0F, 0x5E, 0xBD, 0x42, 0x01, 0xDA, 0x74, 0x60, + 0x3D, 0x1C, 0x06, 0x4B, 0x1A, 0x68, 0x01, 0x32, 0x1A, 0x60, 0x02, 0xE0, 0x05, 0x4E, 0x19, 0x55, + 0xB1, 0x52, 0x00, 0x2C, 0x8F, 0xD1, 0x05, 0xB0, 0xF0, 0xBD, 0xC0, 0x46, 0x0C, 0x08, 0x00, 0x20, + 0x6E, 0x11, 0x00, 0x20, 0x1C, 0x08, 0x00, 0x20, 0xC8, 0x0B, 0x00, 0x20, 0x28, 0x0A, 0x00, 0x20, + 0xFE, 0x0B, 0x00, 0x20, 0xF0, 0xB5, 0x3B, 0x4B, 0x8B, 0xB0, 0x9B, 0x68, 0x02, 0x93, 0x3A, 0x4B, + 0x1B, 0x78, 0x00, 0x2B, 0x05, 0xD1, 0x39, 0x4A, 0x12, 0x78, 0x00, 0x2A, 0x68, 0xD0, 0x01, 0x93, + 0x01, 0xE0, 0x00, 0x20, 0x01, 0x90, 0x05, 0x23, 0x01, 0x3B, 0x35, 0x49, 0xDA, 0x00, 0x52, 0x18, + 0x6C, 0x32, 0x00, 0x24, 0x11, 0x5F, 0x1A, 0x01, 0x00, 0x29, 0x52, 0xD0, 0x02, 0x98, 0x82, 0x18, + 0x11, 0x68, 0x02, 0x29, 0x01, 0xDC, 0x01, 0x31, 0x11, 0x60, 0xD1, 0x88, 0x2C, 0x48, 0x11, 0x81, + 0x91, 0x89, 0x01, 0x9C, 0xD1, 0x81, 0x91, 0x88, 0xD1, 0x80, 0x51, 0x89, 0x91, 0x81, 0x21, 0x18, + 0x48, 0x69, 0x90, 0x80, 0x88, 0x6C, 0x50, 0x81, 0x10, 0x68, 0x03, 0x28, 0x3B, 0xD1, 0x08, 0x24, + 0x10, 0x5F, 0x9C, 0x46, 0x06, 0x90, 0x0E, 0x24, 0x10, 0x5F, 0x09, 0x90, 0x06, 0x24, 0x10, 0x5F, + 0x05, 0x90, 0x0C, 0x24, 0x10, 0x5F, 0x08, 0x90, 0x04, 0x24, 0x10, 0x5F, 0x00, 0x24, 0x04, 0x90, + 0x0A, 0x20, 0x12, 0x5E, 0x04, 0xA8, 0x07, 0x92, 0x07, 0xAA, 0x01, 0x34, 0xA6, 0x00, 0x04, 0xAB, + 0x9E, 0x19, 0x03, 0x94, 0x00, 0x25, 0x01, 0xE0, 0x02, 0x23, 0x03, 0x93, 0x03, 0x68, 0x37, 0x68, + 0x04, 0x35, 0xBB, 0x42, 0x01, 0xDD, 0x07, 0x60, 0x33, 0x60, 0x13, 0x68, 0x57, 0x59, 0xBB, 0x42, + 0x01, 0xDD, 0x17, 0x60, 0x53, 0x51, 0x03, 0x9B, 0x04, 0x36, 0x01, 0x2B, 0xEC, 0xD0, 0x04, 0x32, + 0x04, 0x30, 0x02, 0x2C, 0xE1, 0xD1, 0x05, 0x9A, 0x63, 0x46, 0x4A, 0x61, 0x08, 0x9A, 0x8A, 0x64, + 0x01, 0xE0, 0x02, 0x9C, 0xA1, 0x50, 0x01, 0x98, 0x04, 0x38, 0x01, 0x90, 0x00, 0x2B, 0x9B, 0xD1, + 0x0B, 0xB0, 0xF0, 0xBD, 0x1C, 0x07, 0x00, 0x20, 0x94, 0x07, 0x00, 0x20, 0x76, 0x07, 0x00, 0x20, + 0x20, 0x0C, 0x00, 0x20, 0xF0, 0xB5, 0xC6, 0x4B, 0x9D, 0xB0, 0x1A, 0x68, 0xC5, 0x4B, 0x01, 0x2A, + 0x07, 0xD1, 0xC5, 0x4A, 0x12, 0x68, 0x01, 0x2A, 0x03, 0xDD, 0xDE, 0x8B, 0x0A, 0x96, 0x1B, 0x8C, + 0x02, 0xE0, 0x5E, 0x8B, 0x0A, 0x96, 0x9B, 0x8B, 0x0B, 0x93, 0x0C, 0x24, 0x75, 0xE1, 0x15, 0x23, + 0x63, 0x43, 0xBE, 0x4E, 0x5B, 0x19, 0x9B, 0x57, 0x00, 0x2B, 0x00, 0xD1, 0x67, 0xE1, 0xBA, 0x4E, + 0xA7, 0x00, 0xAB, 0x00, 0xF7, 0x19, 0xF3, 0x18, 0x7A, 0x68, 0x03, 0x93, 0x5B, 0x68, 0xD3, 0x1A, + 0x08, 0x93, 0x23, 0x1C, 0x0E, 0x33, 0x9B, 0x00, 0x06, 0x93, 0x2B, 0x1C, 0x06, 0x98, 0x0E, 0x33, + 0x9B, 0x00, 0x82, 0x59, 0x07, 0x93, 0x9B, 0x59, 0x08, 0x99, 0xD3, 0x1A, 0xD8, 0x17, 0xCA, 0x17, + 0x09, 0x93, 0x1B, 0x18, 0x89, 0x18, 0x43, 0x40, 0x51, 0x40, 0x01, 0x93, 0x2B, 0x1C, 0x04, 0x91, + 0x34, 0x33, 0x21, 0x1C, 0x9B, 0x00, 0x34, 0x31, 0xF3, 0x18, 0x89, 0x00, 0x5B, 0x68, 0x89, 0x19, + 0x04, 0x31, 0x1B, 0xA8, 0x1B, 0x93, 0xFD, 0xF7, 0x03, 0xFE, 0x2B, 0x1C, 0x78, 0x68, 0x0D, 0x33, + 0xDB, 0x00, 0x15, 0x90, 0xF3, 0x18, 0x04, 0x22, 0x99, 0x5E, 0x03, 0x9B, 0x02, 0x91, 0x5B, 0x68, + 0x02, 0x9A, 0x03, 0x93, 0x23, 0x1C, 0x0D, 0x33, 0xDB, 0x00, 0xF3, 0x18, 0x04, 0x21, 0x5F, 0x5E, + 0x02, 0x9B, 0xBA, 0x18, 0x58, 0x43, 0x03, 0x9B, 0x11, 0x1C, 0x7B, 0x43, 0xC0, 0x18, 0x05, 0x92, + 0xFF, 0xF7, 0x64, 0xFA, 0x07, 0x9A, 0x06, 0x99, 0x16, 0x90, 0x03, 0x98, 0x8B, 0x59, 0x17, 0x90, + 0x96, 0x59, 0x02, 0x98, 0x77, 0x43, 0x18, 0x93, 0x43, 0x43, 0x05, 0x99, 0xD8, 0x19, 0xFF, 0xF7, + 0x55, 0xFA, 0x00, 0x21, 0x19, 0x90, 0x0C, 0x22, 0x12, 0xA8, 0x1A, 0x96, 0xFF, 0xF7, 0xEE, 0xFA, + 0x6D, 0x21, 0x69, 0x44, 0x09, 0x78, 0x6E, 0x22, 0x49, 0xB2, 0x0E, 0x91, 0x6A, 0x44, 0x12, 0x78, + 0x6F, 0x23, 0x52, 0xB2, 0x0F, 0x92, 0x6B, 0x44, 0x1B, 0x78, 0x1B, 0xAE, 0x5B, 0xB2, 0x10, 0x93, + 0x00, 0x22, 0xB2, 0x56, 0x17, 0x20, 0x57, 0x1C, 0x42, 0x43, 0x81, 0x4B, 0x00, 0x26, 0xD3, 0x18, + 0x06, 0x96, 0x11, 0x93, 0xB3, 0xE0, 0x07, 0x9E, 0xF6, 0x01, 0x0C, 0x96, 0x0F, 0x9E, 0xA3, 0xE0, + 0x11, 0x98, 0x06, 0x99, 0x43, 0x18, 0x9B, 0x19, 0xDB, 0x7D, 0x03, 0x93, 0x01, 0x3B, 0x0C, 0x2B, + 0x41, 0xDD, 0x00, 0x20, 0x01, 0x21, 0x49, 0x42, 0x84, 0x46, 0x04, 0x23, 0x00, 0x96, 0x01, 0x3B, + 0x74, 0x4A, 0xDB, 0xB2, 0xD2, 0x56, 0x74, 0x4E, 0x05, 0x92, 0xF6, 0x56, 0x07, 0x9A, 0x92, 0x19, + 0x01, 0x32, 0x17, 0x26, 0x56, 0x43, 0x6E, 0x4A, 0x92, 0x19, 0x02, 0x9E, 0x96, 0x19, 0x05, 0x9A, + 0x0D, 0x96, 0xB2, 0x18, 0x05, 0x92, 0x52, 0x78, 0x01, 0x3A, 0x0C, 0x2A, 0x0E, 0xD8, 0xAA, 0x42, + 0x01, 0xD0, 0xA2, 0x42, 0x04, 0xD1, 0x4E, 0x1C, 0x04, 0xD0, 0x91, 0x42, 0x04, 0xD1, 0x05, 0xE0, + 0x01, 0x20, 0x03, 0xE0, 0x11, 0x1C, 0x01, 0xE0, 0x01, 0x22, 0x94, 0x46, 0x00, 0x2B, 0xD6, 0xD1, + 0x00, 0x9E, 0x01, 0x31, 0x68, 0xD0, 0x32, 0x01, 0xD2, 0x19, 0x60, 0x4B, 0x52, 0x00, 0x00, 0x28, + 0x13, 0xD0, 0x60, 0x46, 0x00, 0x28, 0x10, 0xD1, 0x03, 0x99, 0x98, 0x5A, 0x0E, 0x39, 0xFF, 0xF7, + 0xE5, 0xF9, 0x03, 0x90, 0x0B, 0xE0, 0x59, 0x1C, 0x56, 0xD0, 0xAB, 0x42, 0x01, 0xD0, 0xA3, 0x42, + 0x52, 0xD1, 0x32, 0x01, 0xD2, 0x19, 0x55, 0x4B, 0x52, 0x00, 0xD3, 0x5A, 0x03, 0x93, 0x03, 0x9A, + 0x00, 0x2A, 0x49, 0xD0, 0x02, 0x9B, 0x03, 0x20, 0xDB, 0x01, 0x0D, 0x93, 0x02, 0x90, 0x02, 0x9B, + 0x04, 0x9A, 0x01, 0x3B, 0xDB, 0xB2, 0x99, 0x00, 0x02, 0x93, 0x01, 0x9B, 0x05, 0x91, 0x9A, 0x42, + 0x0F, 0xDD, 0x18, 0xAA, 0x50, 0x58, 0x0D, 0x9B, 0x09, 0x99, 0xC0, 0x1A, 0x48, 0x43, 0x08, 0x99, + 0xFF, 0xF7, 0xBC, 0xF9, 0x05, 0x99, 0x15, 0xAA, 0x53, 0x58, 0x0C, 0x9A, 0xC0, 0x18, 0x80, 0x1A, + 0x0F, 0xE0, 0x05, 0x99, 0x15, 0xAB, 0x58, 0x58, 0x0C, 0x9A, 0x08, 0x9B, 0x80, 0x1A, 0x58, 0x43, + 0x09, 0x99, 0xFF, 0xF7, 0xAB, 0xF9, 0x05, 0x9A, 0x18, 0xA9, 0x8B, 0x58, 0xC0, 0x18, 0x0D, 0x9B, + 0xC0, 0x1A, 0xC1, 0x17, 0x40, 0x18, 0x48, 0x40, 0x7F, 0x28, 0x12, 0xDC, 0x02, 0x9A, 0x80, 0x21, + 0x93, 0x00, 0x0A, 0x1A, 0x03, 0x98, 0x48, 0x21, 0x42, 0x43, 0xD2, 0x11, 0xC9, 0x18, 0x05, 0x92, + 0x6A, 0x46, 0x88, 0x58, 0x05, 0x99, 0x84, 0x46, 0x0A, 0x1C, 0x62, 0x44, 0x48, 0x33, 0x68, 0x46, + 0x1A, 0x50, 0x02, 0x99, 0x00, 0x29, 0xBA, 0xD1, 0x01, 0x36, 0x10, 0x9B, 0x72, 0x1E, 0x02, 0x92, + 0x9A, 0x42, 0x00, 0xDC, 0x54, 0xE7, 0x06, 0x9E, 0x01, 0x37, 0x17, 0x36, 0x06, 0x96, 0x0E, 0x98, + 0x7E, 0x1E, 0x07, 0x96, 0x86, 0x42, 0x00, 0xDC, 0x45, 0xE7, 0x14, 0x9B, 0x12, 0x9E, 0x9E, 0x42, + 0x00, 0xDD, 0x1E, 0x1C, 0x04, 0x99, 0x01, 0x9A, 0x91, 0x42, 0x02, 0xDC, 0x13, 0x1E, 0x0E, 0xD0, + 0x03, 0xE0, 0x04, 0x9B, 0x01, 0x98, 0x01, 0x93, 0x04, 0x90, 0x04, 0x99, 0x88, 0x01, 0x01, 0x99, + 0xFF, 0xF7, 0x64, 0xF9, 0x3F, 0x28, 0x00, 0xDD, 0x3F, 0x20, 0x19, 0x4B, 0x1B, 0x5C, 0x2D, 0x21, + 0x0A, 0x9A, 0xC8, 0x1A, 0x50, 0x43, 0x0B, 0x9A, 0x53, 0x43, 0xC0, 0x18, 0xFF, 0xF7, 0x56, 0xF9, + 0x46, 0x43, 0x13, 0x9B, 0xB6, 0x12, 0xB3, 0x42, 0x09, 0xDD, 0xA5, 0x42, 0x02, 0xDA, 0x23, 0x1C, + 0x2C, 0x1C, 0x1D, 0x1C, 0x20, 0x1C, 0x29, 0x1C, 0x1B, 0xAA, 0xFD, 0xF7, 0x7F, 0xFB, 0x01, 0x35, + 0x0D, 0x2D, 0x00, 0xD0, 0x8B, 0xE6, 0x00, 0x2C, 0x14, 0xD0, 0x25, 0x1C, 0x01, 0x3C, 0x86, 0xE6, + 0x5C, 0x0F, 0x00, 0x20, 0xC8, 0x0B, 0x00, 0x20, 0x8C, 0x08, 0x00, 0x20, 0xA0, 0x0A, 0x00, 0x20, + 0xAA, 0x0F, 0x00, 0x20, 0x67, 0x35, 0x00, 0x00, 0x63, 0x35, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, + 0x7E, 0x37, 0x00, 0x00, 0x24, 0x4E, 0x01, 0x21, 0x34, 0x60, 0x24, 0x48, 0x6C, 0x36, 0x49, 0x42, + 0x2A, 0x1C, 0xFF, 0xF7, 0xC3, 0xF9, 0x27, 0x1C, 0x01, 0x96, 0x04, 0x94, 0x26, 0x1C, 0x1E, 0x4C, + 0x01, 0x98, 0xFB, 0xB2, 0x00, 0x22, 0x82, 0x5E, 0x00, 0x2A, 0x29, 0xDD, 0x22, 0x68, 0x1B, 0x49, + 0x01, 0x32, 0x22, 0x60, 0xCE, 0x55, 0x9E, 0x42, 0x20, 0xD0, 0x04, 0x9A, 0xB3, 0x00, 0x15, 0x19, + 0x6A, 0x68, 0xE3, 0x18, 0x30, 0x1C, 0x5A, 0x60, 0x0D, 0x30, 0x33, 0x1C, 0xAA, 0x6B, 0x0E, 0x33, + 0xC0, 0x00, 0x9B, 0x00, 0x20, 0x18, 0x1A, 0x51, 0x01, 0x99, 0x08, 0x22, 0x04, 0x30, 0xFF, 0xF7, + 0x5F, 0xF9, 0x30, 0x1C, 0x34, 0x30, 0x80, 0x00, 0x20, 0x18, 0x29, 0x1C, 0x04, 0x30, 0xD4, 0x31, + 0x04, 0x22, 0xFF, 0xF7, 0x55, 0xF9, 0x01, 0x98, 0x00, 0x23, 0x03, 0x80, 0x01, 0x36, 0xF6, 0xB2, + 0x01, 0x99, 0x04, 0x9A, 0x08, 0x31, 0x04, 0x32, 0x01, 0x37, 0x01, 0x91, 0x04, 0x92, 0x0D, 0x2F, + 0xC6, 0xD1, 0x1D, 0xB0, 0xF0, 0xBD, 0xC0, 0x46, 0x8C, 0x08, 0x00, 0x20, 0x98, 0x09, 0x00, 0x20, + 0xF0, 0xB5, 0x6F, 0x4B, 0x8D, 0xB0, 0x1B, 0x69, 0xDA, 0x00, 0xD3, 0x1A, 0x9B, 0x11, 0x06, 0x93, + 0x07, 0x2B, 0x01, 0xDA, 0x07, 0x24, 0x06, 0x94, 0x6A, 0x4E, 0x0C, 0x24, 0x3D, 0x27, 0x01, 0x3C, + 0xE4, 0xB2, 0x65, 0x00, 0xA8, 0x5B, 0x98, 0x21, 0x78, 0x43, 0xC9, 0x00, 0xFF, 0xF7, 0xC6, 0xF8, + 0xA8, 0x53, 0x00, 0x2C, 0xF3, 0xD1, 0x13, 0x24, 0x63, 0x4E, 0x08, 0xE0, 0x65, 0x00, 0xAB, 0x5B, + 0xC0, 0x21, 0xD8, 0x00, 0xC0, 0x1A, 0x89, 0x00, 0xFF, 0xF7, 0xB8, 0xF8, 0xA8, 0x53, 0x01, 0x3C, + 0xE4, 0xB2, 0xFF, 0x2C, 0xF2, 0xD1, 0x5D, 0x4B, 0x00, 0x21, 0x19, 0x70, 0x5C, 0x4B, 0x0C, 0x1C, + 0x19, 0x70, 0x5C, 0x4B, 0x0A, 0x91, 0x19, 0x70, 0x5B, 0x4B, 0x07, 0x91, 0x19, 0x70, 0x5B, 0x4B, + 0x08, 0x91, 0x19, 0x70, 0x52, 0x4B, 0x08, 0x1C, 0x9D, 0x69, 0x05, 0x91, 0x09, 0x91, 0x0C, 0x22, + 0x72, 0xE0, 0x5F, 0x1C, 0x55, 0x1C, 0x3F, 0x01, 0x7F, 0x19, 0x55, 0x4E, 0x03, 0x95, 0x7D, 0x00, + 0xAD, 0x5B, 0x2F, 0x1C, 0x06, 0x9D, 0xAF, 0x42, 0x02, 0xDD, 0x02, 0x9E, 0x01, 0x36, 0x02, 0x96, + 0x28, 0x2F, 0x04, 0xDD, 0x01, 0x99, 0x01, 0x31, 0xC9, 0xB2, 0x01, 0x91, 0x01, 0xE0, 0x0A, 0x2F, + 0x01, 0xDD, 0x01, 0x34, 0xE4, 0xB2, 0x15, 0x27, 0x57, 0x43, 0xFF, 0x18, 0x7D, 0x00, 0x49, 0x4F, + 0x51, 0x00, 0xED, 0x5F, 0x3F, 0x4F, 0x5E, 0x00, 0xCF, 0x5B, 0xED, 0x1B, 0x3E, 0x4F, 0xF7, 0x5B, + 0xEF, 0x1B, 0x00, 0x2F, 0x10, 0xDD, 0xB8, 0x42, 0x02, 0xDC, 0x38, 0x1C, 0x05, 0x92, 0x09, 0x93, + 0x41, 0x49, 0x5D, 0x01, 0x03, 0x9E, 0x49, 0x19, 0x04, 0x91, 0xBD, 0xB2, 0x76, 0x00, 0x31, 0x1C, + 0x2E, 0x1C, 0x04, 0x9D, 0x4E, 0x53, 0x0C, 0xE0, 0x3B, 0x4D, 0x59, 0x01, 0x8C, 0x46, 0x2E, 0x1C, + 0x03, 0x99, 0x66, 0x44, 0x49, 0x00, 0x04, 0x96, 0x03, 0x91, 0x0E, 0x1C, 0x04, 0x99, 0x00, 0x25, + 0x75, 0x52, 0x0B, 0x9E, 0x00, 0x2E, 0x01, 0xD1, 0x04, 0x2A, 0x05, 0xD1, 0x04, 0x2F, 0x03, 0xDD, + 0x0C, 0x2B, 0x01, 0xD9, 0x01, 0x21, 0x0A, 0x91, 0x07, 0x2F, 0x17, 0xDD, 0x05, 0x2A, 0x05, 0xD1, + 0x0C, 0x2B, 0x03, 0xD9, 0x07, 0x9E, 0x01, 0x36, 0xF6, 0xB2, 0x07, 0x96, 0x06, 0x2A, 0x0D, 0xD1, + 0x0C, 0x2B, 0x0B, 0xD9, 0x08, 0x9E, 0x01, 0x36, 0xF6, 0xB2, 0x08, 0x96, 0x06, 0xE0, 0xD6, 0x1F, + 0x77, 0x42, 0x77, 0x41, 0x13, 0x23, 0x0B, 0x97, 0x01, 0x91, 0x02, 0x95, 0x01, 0x3B, 0xDB, 0xB2, + 0xFF, 0x2B, 0x8E, 0xD1, 0x01, 0x99, 0x02, 0x9D, 0x01, 0x3A, 0xD2, 0xB2, 0xFF, 0x2A, 0xEE, 0xD1, + 0x16, 0x4A, 0x13, 0x4B, 0x11, 0x70, 0x16, 0x4A, 0x0A, 0xA9, 0x14, 0x70, 0x09, 0x78, 0x15, 0x4A, + 0x9D, 0x61, 0x6C, 0x46, 0x1C, 0x25, 0x11, 0x70, 0x2C, 0x5D, 0x13, 0x4A, 0x08, 0xAD, 0x14, 0x70, + 0x2D, 0x78, 0x12, 0x4A, 0x98, 0x60, 0x15, 0x4B, 0x15, 0x70, 0x1B, 0x7E, 0x98, 0x42, 0x0D, 0xDD, + 0x13, 0x28, 0x0B, 0xDC, 0x12, 0x4B, 0x1B, 0x68, 0x01, 0x2B, 0x07, 0xD1, 0x05, 0x9B, 0x01, 0x33, + 0xDB, 0xB2, 0x00, 0xE0, 0x09, 0x9B, 0x05, 0x9E, 0x9E, 0x42, 0xFB, 0xDC, 0x0D, 0xB0, 0xF0, 0xBD, + 0xAC, 0x07, 0x00, 0x20, 0x80, 0x0A, 0x00, 0x20, 0x6A, 0x0F, 0x00, 0x20, 0x46, 0x08, 0x00, 0x20, + 0x47, 0x08, 0x00, 0x20, 0x0A, 0x07, 0x00, 0x20, 0x44, 0x08, 0x00, 0x20, 0x45, 0x08, 0x00, 0x20, + 0x00, 0x04, 0x00, 0x40, 0x28, 0x0D, 0x00, 0x20, 0x20, 0x08, 0x00, 0x40, 0xC8, 0x0B, 0x00, 0x20, + 0x20, 0x0C, 0x00, 0x20, 0x01, 0x4B, 0x0D, 0x22, 0x1A, 0x70, 0x70, 0x47, 0x68, 0x11, 0x00, 0x20, + 0x00, 0xB5, 0x80, 0x22, 0xD2, 0x05, 0x08, 0x23, 0x51, 0x69, 0x19, 0x42, 0xFC, 0xD0, 0x11, 0x4B, + 0x01, 0x28, 0x02, 0xD0, 0x04, 0x28, 0x0D, 0xD1, 0x04, 0xE0, 0x1B, 0x68, 0x0F, 0x22, 0x1A, 0x70, + 0x00, 0x22, 0x06, 0xE0, 0x1B, 0x68, 0x0E, 0x22, 0x1A, 0x70, 0x0B, 0x4A, 0x02, 0x21, 0x12, 0x78, + 0x8A, 0x1A, 0x5A, 0x70, 0x07, 0x4B, 0x00, 0x22, 0x1B, 0x68, 0x08, 0x21, 0x9A, 0x70, 0xDA, 0x70, + 0x06, 0x4B, 0x01, 0x22, 0x1A, 0x70, 0x80, 0x23, 0xDB, 0x05, 0x5A, 0x69, 0x8A, 0x43, 0x5A, 0x61, + 0x00, 0xBD, 0xC0, 0x46, 0x1C, 0x0C, 0x00, 0x20, 0x76, 0x07, 0x00, 0x20, 0x18, 0x0C, 0x00, 0x20, + 0xF0, 0xB5, 0x80, 0x22, 0x9B, 0xB0, 0xD2, 0x05, 0x08, 0x23, 0x51, 0x69, 0x19, 0x42, 0xFC, 0xD0, + 0xB3, 0x4C, 0x00, 0x26, 0x01, 0x27, 0x03, 0x94, 0x04, 0x96, 0x01, 0x97, 0x35, 0x1C, 0x04, 0x9C, + 0xB0, 0x4F, 0xE7, 0x19, 0x04, 0x26, 0xBB, 0x5F, 0x18, 0x93, 0x0E, 0x20, 0x3B, 0x5E, 0x18, 0xA8, + 0x19, 0x93, 0xFD, 0xF7, 0x19, 0xFD, 0x03, 0x9C, 0x00, 0x23, 0xE3, 0x5E, 0x00, 0x2B, 0x00, 0xDC, + 0xB4, 0xE0, 0x01, 0x9E, 0x16, 0xA8, 0xB6, 0x00, 0x07, 0x96, 0x07, 0x9C, 0xA6, 0x4E, 0xA6, 0x19, + 0x33, 0x68, 0x16, 0x93, 0x73, 0x6B, 0x17, 0x93, 0xFD, 0xF7, 0x06, 0xFD, 0xA3, 0x4B, 0x1C, 0x78, + 0x00, 0x2C, 0x45, 0xD1, 0xA2, 0x49, 0x09, 0xA8, 0x32, 0x22, 0xFE, 0xF7, 0xD9, 0xFF, 0xA1, 0x48, + 0xA1, 0x49, 0x02, 0x90, 0x05, 0x94, 0x06, 0x91, 0x02, 0x9A, 0x16, 0x9B, 0x10, 0x88, 0x51, 0x88, + 0xC0, 0x1A, 0x00, 0xB2, 0xC3, 0x17, 0xC0, 0x18, 0x58, 0x40, 0x17, 0x9B, 0x00, 0xB2, 0xC9, 0x1A, + 0x09, 0xB2, 0xCA, 0x17, 0x89, 0x18, 0x51, 0x40, 0x09, 0xB2, 0xFD, 0xF7, 0x4B, 0xFB, 0x06, 0x9B, + 0x83, 0x42, 0x01, 0xDD, 0x05, 0x94, 0x06, 0x90, 0x02, 0x98, 0x01, 0x34, 0x04, 0x30, 0x02, 0x90, + 0x32, 0x2C, 0xE1, 0xD1, 0x05, 0x99, 0x8F, 0x4A, 0x89, 0x00, 0x02, 0x91, 0x88, 0x5E, 0x16, 0x9C, + 0x05, 0x21, 0x00, 0x1B, 0x40, 0x00, 0xFE, 0xF7, 0x49, 0xFF, 0x02, 0x99, 0x24, 0x18, 0x89, 0x48, + 0x16, 0x94, 0x43, 0x18, 0x02, 0x22, 0x98, 0x5E, 0x17, 0x9C, 0x03, 0x21, 0x00, 0x1B, 0x40, 0x00, + 0xFE, 0xF7, 0x3C, 0xFF, 0x24, 0x18, 0x05, 0x98, 0x09, 0xAB, 0x1B, 0x56, 0xE4, 0x18, 0x17, 0x94, + 0x82, 0x4B, 0x01, 0x9C, 0x19, 0x9A, 0xE3, 0x18, 0x01, 0x3B, 0x18, 0x99, 0x94, 0x46, 0x1A, 0x78, + 0x05, 0x91, 0x02, 0x93, 0x16, 0x98, 0x17, 0x99, 0x01, 0x23, 0x00, 0x2A, 0x02, 0xD1, 0x7C, 0x4B, + 0x37, 0x33, 0x1B, 0x78, 0x18, 0x24, 0x3A, 0x5F, 0x06, 0x92, 0x00, 0x2A, 0x0D, 0xDD, 0x62, 0x46, + 0x8A, 0x1A, 0xD4, 0x17, 0x12, 0x19, 0x62, 0x40, 0x9A, 0x42, 0x06, 0xDA, 0x05, 0x9A, 0x84, 0x1A, + 0xE2, 0x17, 0xA4, 0x18, 0x54, 0x40, 0x9C, 0x42, 0x59, 0xDB, 0x06, 0x23, 0x6B, 0x43, 0x71, 0x4C, + 0x60, 0x22, 0x24, 0x68, 0x52, 0x42, 0xE3, 0x18, 0x6F, 0x4C, 0xD9, 0x70, 0x24, 0x78, 0x98, 0x70, + 0x24, 0x01, 0x14, 0x43, 0x01, 0x9A, 0x14, 0x43, 0x1C, 0x70, 0x04, 0x12, 0xA4, 0x46, 0x62, 0x46, + 0x0F, 0x24, 0x22, 0x40, 0x05, 0x92, 0x0A, 0x11, 0xA2, 0x43, 0x14, 0x1C, 0x05, 0x9A, 0x14, 0x43, + 0x5C, 0x70, 0x01, 0x9C, 0xE1, 0x00, 0x5C, 0x4C, 0x09, 0x19, 0x6A, 0x31, 0x09, 0x88, 0x03, 0x9C, + 0x19, 0x71, 0x21, 0x88, 0x08, 0xB2, 0xFF, 0x28, 0x00, 0xDD, 0xFF, 0x21, 0x06, 0x98, 0x59, 0x71, + 0xC3, 0x17, 0x1B, 0x1A, 0x02, 0x99, 0x54, 0x4C, 0x07, 0x98, 0xDB, 0x0F, 0x0B, 0x70, 0x23, 0x58, + 0x01, 0x35, 0xBB, 0x80, 0x73, 0x6B, 0xED, 0xB2, 0xFB, 0x81, 0x20, 0xE0, 0x18, 0x21, 0x7B, 0x5E, + 0x00, 0x2B, 0x1C, 0xDD, 0x06, 0x23, 0x6B, 0x43, 0x52, 0x4A, 0x20, 0x21, 0x12, 0x68, 0x01, 0x9C, + 0xD3, 0x18, 0x52, 0x4A, 0x0F, 0x20, 0x12, 0x78, 0x01, 0x35, 0x12, 0x01, 0x0A, 0x43, 0x22, 0x43, + 0x1A, 0x70, 0x19, 0x9A, 0x18, 0x99, 0x16, 0x11, 0x0C, 0x12, 0x04, 0x40, 0x86, 0x43, 0x26, 0x43, + 0xDA, 0x70, 0x00, 0x22, 0x5E, 0x70, 0x99, 0x70, 0x1A, 0x71, 0x5A, 0x71, 0xED, 0xB2, 0x03, 0x9E, + 0x04, 0x9C, 0x33, 0x88, 0x02, 0x34, 0x3B, 0x83, 0x01, 0x9F, 0x08, 0x36, 0x01, 0x37, 0x01, 0x97, + 0x04, 0x94, 0x03, 0x96, 0x04, 0x2C, 0x00, 0xD0, 0x09, 0xE7, 0x3E, 0x4B, 0x00, 0x22, 0x18, 0x68, + 0x06, 0x23, 0x6B, 0x43, 0x3E, 0x49, 0xC3, 0x18, 0x5A, 0x70, 0x9A, 0x70, 0xDA, 0x70, 0x1A, 0x71, + 0x4C, 0x68, 0x3C, 0x49, 0x49, 0x68, 0x66, 0x1C, 0x2E, 0xD0, 0x8C, 0x42, 0x35, 0xD0, 0x4F, 0x1C, + 0x06, 0xD0, 0x01, 0x31, 0x40, 0x26, 0x31, 0x43, 0x01, 0x35, 0x19, 0x70, 0x5A, 0x71, 0xED, 0xB2, + 0x06, 0x23, 0x6B, 0x43, 0xC3, 0x18, 0x01, 0x93, 0x40, 0x23, 0x62, 0x1C, 0x5B, 0x42, 0x01, 0x9E, + 0x13, 0x43, 0x33, 0x70, 0x25, 0x4B, 0x1B, 0x78, 0x00, 0x2B, 0x0E, 0xD1, 0x28, 0x4B, 0x2C, 0x49, + 0x27, 0x1D, 0x31, 0x33, 0x7F, 0x00, 0x1E, 0x78, 0x78, 0x5E, 0x03, 0x21, 0x80, 0x1B, 0xFE, 0xF7, + 0x75, 0xFE, 0x76, 0x00, 0x26, 0x4A, 0x86, 0x19, 0xBE, 0x52, 0x04, 0x34, 0x24, 0x4B, 0x64, 0x00, + 0x1B, 0x5B, 0x01, 0x9C, 0x63, 0x71, 0x06, 0xE0, 0x4E, 0x1C, 0x06, 0xD0, 0x01, 0x31, 0x40, 0x20, + 0x01, 0x43, 0x19, 0x70, 0x5A, 0x71, 0x01, 0x35, 0xED, 0xB2, 0x13, 0x4B, 0x19, 0x68, 0x11, 0x4B, + 0x19, 0x60, 0x19, 0x4B, 0x1A, 0x78, 0x19, 0x4B, 0x1A, 0x70, 0x1A, 0x4B, 0x18, 0x4A, 0x18, 0x1C, + 0xD0, 0xCA, 0xD0, 0xC0, 0x12, 0x68, 0x02, 0x60, 0x01, 0x22, 0x00, 0x29, 0x02, 0xD1, 0x1A, 0x68, + 0x53, 0x1E, 0x9A, 0x41, 0x14, 0x4B, 0x1A, 0x70, 0x00, 0x2D, 0x07, 0xD0, 0x13, 0x4B, 0x08, 0x21, + 0x1D, 0x70, 0x80, 0x23, 0xDB, 0x05, 0x5A, 0x69, 0x8A, 0x43, 0x5A, 0x61, 0x1B, 0xB0, 0xF0, 0xBD, + 0x8C, 0x0C, 0x00, 0x20, 0xE0, 0x07, 0x00, 0x20, 0x20, 0x0C, 0x00, 0x20, 0x40, 0x06, 0x00, 0x20, + 0x2C, 0x35, 0x00, 0x00, 0x42, 0x06, 0x00, 0x20, 0xFF, 0x7F, 0x00, 0x00, 0x04, 0x08, 0x00, 0x20, + 0xC8, 0x0B, 0x00, 0x20, 0x1C, 0x0C, 0x00, 0x20, 0x09, 0x08, 0x00, 0x20, 0x0A, 0x08, 0x00, 0x20, + 0x0C, 0x08, 0x00, 0x20, 0x2C, 0x08, 0x00, 0x20, 0x0B, 0x08, 0x00, 0x20, 0x18, 0x0C, 0x00, 0x20, + 0x00, 0xB5, 0x07, 0x4B, 0x1B, 0x68, 0xDB, 0xB2, 0x10, 0x2B, 0x01, 0xD0, 0xAF, 0x2B, 0x05, 0xD1, + 0x80, 0x23, 0xDB, 0x05, 0x5A, 0x69, 0x08, 0x21, 0x0A, 0x43, 0x5A, 0x61, 0x00, 0xBD, 0xC0, 0x46, + 0x1C, 0x06, 0x00, 0x20, 0x00, 0xB5, 0x8B, 0x4A, 0x8B, 0x49, 0x12, 0x68, 0x0B, 0x78, 0x92, 0xB2, + 0x08, 0x1C, 0x31, 0x2A, 0x27, 0xD0, 0x03, 0xD8, 0x30, 0x2A, 0x00, 0xD0, 0x08, 0xE1, 0x05, 0xE0, + 0xA0, 0x2A, 0x25, 0xD0, 0xB0, 0x2A, 0x00, 0xD0, 0x02, 0xE1, 0xE7, 0xE0, 0x01, 0x2B, 0x04, 0xD1, + 0x82, 0x4A, 0x12, 0x78, 0x00, 0x2A, 0x07, 0xD0, 0xFA, 0xE0, 0x02, 0x2B, 0x06, 0xD1, 0x7F, 0x4A, + 0x12, 0x78, 0x00, 0x2A, 0x00, 0xD1, 0xF3, 0xE0, 0x7D, 0x4A, 0x13, 0x70, 0x03, 0x78, 0x05, 0x2B, + 0x02, 0xD1, 0x7C, 0x4B, 0x01, 0x22, 0x1A, 0x70, 0x03, 0x78, 0x06, 0x2B, 0x00, 0xD0, 0xE7, 0xE0, + 0x00, 0x22, 0x78, 0x4B, 0x50, 0xE0, 0x5A, 0x42, 0x53, 0x41, 0x77, 0x4A, 0x13, 0x70, 0xDF, 0xE0, + 0x4A, 0x78, 0x89, 0x78, 0x22, 0x2B, 0x2D, 0xD0, 0x08, 0xD8, 0x01, 0x2B, 0x16, 0xD0, 0x00, 0x2B, + 0x0F, 0xD0, 0x02, 0x2B, 0x18, 0xD0, 0x03, 0x2B, 0x40, 0xD1, 0x1A, 0xE0, 0x40, 0x2B, 0x30, 0xD0, + 0x02, 0xD8, 0x36, 0x2B, 0x3A, 0xD1, 0x23, 0xE0, 0x70, 0x2B, 0x25, 0xD0, 0x71, 0x2B, 0x35, 0xD1, + 0x84, 0xE0, 0x6A, 0x4B, 0x08, 0x22, 0x1A, 0x70, 0x69, 0x4A, 0x02, 0xE0, 0x67, 0x4A, 0x13, 0x70, + 0x68, 0x4A, 0x69, 0x4B, 0x1A, 0x60, 0xBB, 0xE0, 0x64, 0x4B, 0x04, 0x22, 0x1A, 0x70, 0x67, 0x4A, + 0xF7, 0xE7, 0x62, 0x4B, 0x02, 0x22, 0x1A, 0x70, 0x65, 0x4B, 0x66, 0x4A, 0x1A, 0x60, 0x62, 0x4A, + 0x13, 0x60, 0xAD, 0xE0, 0x01, 0x2A, 0x00, 0xD0, 0xAA, 0xE0, 0xC9, 0xB2, 0x62, 0x4B, 0x01, 0xE0, + 0x62, 0x4B, 0xC9, 0xB2, 0x19, 0x70, 0xA3, 0xE0, 0x58, 0x4B, 0xFF, 0x2A, 0x43, 0xD1, 0x26, 0x22, + 0x3E, 0xE0, 0x5F, 0x4B, 0x0C, 0x22, 0x1A, 0x70, 0x5E, 0x4B, 0x00, 0x22, 0x1A, 0x70, 0x5E, 0x4B, + 0x01, 0x22, 0x1A, 0x70, 0x59, 0x4B, 0x05, 0x22, 0x1A, 0x70, 0x91, 0xE0, 0x5A, 0x48, 0x00, 0x78, + 0x00, 0x28, 0x00, 0xD1, 0x8C, 0xE0, 0x47, 0x2B, 0x21, 0xD0, 0x0C, 0xD8, 0x43, 0x2B, 0x1A, 0xD0, + 0x05, 0xD8, 0x41, 0x2B, 0x15, 0xD0, 0x42, 0x2B, 0x00, 0xD0, 0x81, 0xE0, 0x1C, 0xE0, 0x45, 0x2B, + 0x13, 0xD0, 0x28, 0xD8, 0x18, 0xE0, 0x4B, 0x2B, 0x04, 0xD8, 0x4A, 0x2B, 0x36, 0xD2, 0x48, 0x2B, + 0x76, 0xD1, 0x2E, 0xE0, 0x4E, 0x2B, 0x51, 0xD0, 0x4F, 0x2B, 0x51, 0xD0, 0x4C, 0x2B, 0x6F, 0xD1, + 0x38, 0xE0, 0x01, 0x22, 0x50, 0xE0, 0x02, 0x22, 0x4E, 0xE0, 0x03, 0x22, 0x4C, 0xE0, 0x45, 0x4B, + 0x05, 0x21, 0x19, 0x70, 0x45, 0x4B, 0xCF, 0xE7, 0x38, 0x4B, 0xFF, 0x2A, 0x03, 0xD1, 0x28, 0x22, + 0x1A, 0x70, 0x00, 0x22, 0x01, 0xE0, 0x02, 0x20, 0x18, 0x70, 0x15, 0x23, 0x59, 0x43, 0x52, 0x18, + 0x52, 0x00, 0x3F, 0x4B, 0x28, 0xE0, 0x31, 0x4B, 0xFF, 0x2A, 0x03, 0xD1, 0x15, 0x22, 0x1A, 0x70, + 0x00, 0x22, 0x01, 0xE0, 0x01, 0x20, 0x18, 0x70, 0x15, 0x23, 0x59, 0x43, 0x39, 0x4B, 0x52, 0x18, + 0x1A, 0xE0, 0x2A, 0x4B, 0x21, 0x22, 0x1A, 0x70, 0x36, 0x4A, 0x16, 0xE0, 0x27, 0x4B, 0xFF, 0x2A, + 0x03, 0xD1, 0x04, 0x22, 0x1A, 0x70, 0x00, 0x22, 0x01, 0xE0, 0x02, 0x21, 0x19, 0x70, 0x52, 0x00, + 0x31, 0x4B, 0x09, 0xE0, 0x21, 0x4B, 0xFF, 0x2A, 0x03, 0xD1, 0x02, 0x22, 0x1A, 0x70, 0x00, 0x22, + 0x01, 0xE0, 0x01, 0x21, 0x19, 0x70, 0x2D, 0x4B, 0xD2, 0x18, 0x1F, 0x4B, 0x08, 0x21, 0x1A, 0x60, + 0x80, 0x23, 0xDB, 0x05, 0x5A, 0x69, 0x8A, 0x43, 0x5A, 0x61, 0x21, 0xE0, 0x04, 0x22, 0x03, 0xE0, + 0x1F, 0x4B, 0x0D, 0x22, 0x1A, 0x70, 0x06, 0x22, 0x1E, 0x4B, 0x85, 0xE7, 0x00, 0x2B, 0x17, 0xD0, + 0x80, 0x23, 0xDB, 0x05, 0x99, 0x68, 0x22, 0x4A, 0x0A, 0x40, 0x9A, 0x60, 0x99, 0x68, 0x21, 0x4A, + 0x0A, 0x40, 0x9A, 0x60, 0x99, 0x68, 0x20, 0x4A, 0x0A, 0x40, 0x9A, 0x60, 0x59, 0x68, 0x80, 0x22, + 0x12, 0x01, 0x0A, 0x43, 0x5A, 0x60, 0xC0, 0x46, 0xC0, 0x46, 0xC0, 0x46, 0xC0, 0x46, 0x62, 0xB6, + 0x00, 0xBD, 0xC0, 0x46, 0x1C, 0x06, 0x00, 0x20, 0x0C, 0x00, 0x00, 0x50, 0x76, 0x07, 0x00, 0x20, + 0x77, 0x07, 0x00, 0x20, 0xA2, 0x07, 0x00, 0x20, 0x40, 0x06, 0x00, 0x20, 0x21, 0x0A, 0x00, 0x20, + 0xC0, 0x37, 0x00, 0x00, 0xC8, 0x37, 0x00, 0x00, 0x64, 0x0F, 0x00, 0x20, 0xEC, 0x4F, 0x00, 0x00, + 0x94, 0x09, 0x00, 0x20, 0x14, 0x0C, 0x00, 0x00, 0xBD, 0x09, 0x00, 0x20, 0x30, 0x06, 0x00, 0x20, + 0x68, 0x11, 0x00, 0x20, 0xB0, 0x0B, 0x00, 0x20, 0x70, 0x07, 0x00, 0x20, 0x6D, 0x11, 0x00, 0x20, + 0x28, 0x0D, 0x00, 0x20, 0xA0, 0x0A, 0x00, 0x20, 0xBE, 0x0B, 0x00, 0x20, 0x6E, 0x11, 0x00, 0x20, + 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0x30, 0xB5, 0x55, 0x4B, + 0x1B, 0x68, 0x0C, 0x2B, 0x3C, 0xD0, 0x10, 0xDC, 0x04, 0x2B, 0x25, 0xD0, 0x05, 0xDC, 0x02, 0x2B, + 0x1A, 0xD0, 0x03, 0x2B, 0x00, 0xD0, 0x9B, 0xE0, 0x19, 0xE0, 0x09, 0x2B, 0x28, 0xD0, 0x0B, 0x2B, + 0x2B, 0xD0, 0x05, 0x2B, 0x00, 0xD0, 0x93, 0xE0, 0x1A, 0xE0, 0x10, 0x2B, 0x52, 0xD0, 0x03, 0xDC, + 0x0E, 0x2B, 0x2E, 0xD0, 0x33, 0xDC, 0x27, 0xE0, 0xAF, 0x2B, 0x70, 0xD0, 0xF6, 0x2B, 0x7D, 0xD0, + 0xAE, 0x2B, 0x00, 0xD0, 0x84, 0xE0, 0x65, 0xE0, 0x43, 0x4A, 0x31, 0x21, 0x11, 0x70, 0x03, 0x21, + 0x41, 0x4A, 0xC9, 0x1A, 0xE0, 0x20, 0x88, 0x54, 0x04, 0x22, 0xD3, 0x1A, 0x20, 0x21, 0x1B, 0xE0, + 0x3E, 0x4B, 0x9B, 0x8D, 0x1A, 0xB2, 0xFF, 0x2A, 0x00, 0xDD, 0xFF, 0x23, 0x3A, 0x4A, 0x4F, 0xE0, + 0x3B, 0x4B, 0x02, 0x22, 0x1B, 0x78, 0xD2, 0x1A, 0x4E, 0xE0, 0x37, 0x4A, 0x14, 0x21, 0x11, 0x70, + 0x0C, 0x22, 0x35, 0x49, 0xD0, 0x1A, 0x42, 0x54, 0x0D, 0x21, 0x33, 0x4A, 0xC9, 0x1A, 0x02, 0x20, + 0x88, 0x54, 0x0E, 0x22, 0xD3, 0x1A, 0x10, 0x21, 0x2F, 0x4A, 0x99, 0x54, 0x58, 0xE0, 0x31, 0x4B, + 0x1B, 0x78, 0x00, 0x2B, 0x05, 0xD0, 0x30, 0x4B, 0x1A, 0x68, 0xE0, 0x23, 0xDB, 0x00, 0x1A, 0x42, + 0x0E, 0xD1, 0x2E, 0x4B, 0x1A, 0x78, 0x00, 0x2A, 0x05, 0xD1, 0x80, 0x22, 0xD2, 0x05, 0x51, 0x69, + 0x08, 0x20, 0x01, 0x43, 0x51, 0x61, 0x1A, 0x78, 0x06, 0x21, 0x4A, 0x43, 0xD2, 0xB2, 0x1A, 0x70, + 0x26, 0x4B, 0x20, 0xE0, 0x23, 0x4B, 0x1B, 0x78, 0x00, 0x2B, 0x05, 0xD0, 0x22, 0x49, 0xE0, 0x23, + 0x0A, 0x68, 0xDB, 0x00, 0x1A, 0x42, 0x01, 0xD1, 0x21, 0x4B, 0x19, 0x68, 0x21, 0x4B, 0x1F, 0x4A, + 0x1D, 0x68, 0x14, 0x78, 0x18, 0x1C, 0x00, 0x23, 0xA5, 0x42, 0x09, 0xDA, 0x02, 0x68, 0x16, 0x4D, + 0x8A, 0x18, 0xD4, 0x5C, 0x5A, 0x19, 0x01, 0x33, 0x14, 0x70, 0x08, 0x2B, 0xF6, 0xD1, 0x1F, 0xE0, + 0x13, 0x70, 0x1D, 0xE0, 0x18, 0x4B, 0x1A, 0x78, 0x0F, 0x4B, 0x1A, 0x70, 0x18, 0xE0, 0x17, 0x49, + 0x14, 0x4A, 0x00, 0x23, 0x0C, 0x68, 0x10, 0x68, 0x0B, 0x4D, 0xC0, 0x18, 0x20, 0x18, 0x04, 0x78, + 0x58, 0x19, 0x01, 0x33, 0x04, 0x70, 0x08, 0x2B, 0xF4, 0xD1, 0x09, 0xE0, 0x0D, 0x4B, 0x10, 0x4A, + 0x1B, 0x68, 0x05, 0x49, 0xDB, 0x00, 0x9B, 0x18, 0x1A, 0x68, 0x5B, 0x68, 0x0A, 0x60, 0x4B, 0x60, + 0x30, 0xBD, 0xC0, 0x46, 0x1C, 0x06, 0x00, 0x20, 0x10, 0x00, 0x00, 0x50, 0xC8, 0x0B, 0x00, 0x20, + 0x76, 0x07, 0x00, 0x20, 0x6C, 0x07, 0x00, 0x20, 0x68, 0x11, 0x00, 0x20, 0x18, 0x0C, 0x00, 0x20, + 0x1C, 0x0C, 0x00, 0x20, 0x18, 0x06, 0x00, 0x20, 0x21, 0x0A, 0x00, 0x20, 0x64, 0x0F, 0x00, 0x20, + 0x58, 0x0A, 0x00, 0x20, 0x70, 0xB5, 0x12, 0x28, 0x00, 0xD1, 0x34, 0xE1, 0x13, 0xDC, 0x07, 0x28, + 0x00, 0xD1, 0x1E, 0xE1, 0x05, 0xDC, 0x02, 0x28, 0x24, 0xD0, 0x04, 0x28, 0x00, 0xD0, 0xBB, 0xE1, + 0x2D, 0xE0, 0x0D, 0x28, 0x00, 0xDA, 0xB7, 0xE1, 0x0E, 0x28, 0x00, 0xDC, 0x19, 0xE1, 0x0F, 0x28, + 0x00, 0xD0, 0xB1, 0xE1, 0x1A, 0xE1, 0x19, 0x28, 0x00, 0xD1, 0x77, 0xE1, 0x09, 0xDC, 0x16, 0x28, + 0x00, 0xD1, 0x5F, 0xE1, 0x18, 0x28, 0x00, 0xD1, 0x6E, 0xE1, 0x14, 0x28, 0x00, 0xD0, 0xA3, 0xE1, + 0x46, 0xE1, 0x1C, 0x28, 0x00, 0xD1, 0x9B, 0xE1, 0x20, 0x28, 0x06, 0xD0, 0x1A, 0x28, 0x00, 0xD0, + 0x9A, 0xE1, 0x65, 0xE1, 0x03, 0x22, 0xB4, 0x4B, 0xEF, 0xE0, 0xB4, 0x4A, 0x00, 0x23, 0x13, 0x70, + 0xB3, 0x4A, 0x13, 0x70, 0xB3, 0x4A, 0x13, 0x70, 0xB3, 0x4A, 0x13, 0x70, 0x8C, 0xE1, 0xB3, 0x49, + 0xB3, 0x4B, 0x08, 0x78, 0x00, 0x22, 0x1A, 0x70, 0x1C, 0x1C, 0xB2, 0x4B, 0x90, 0x42, 0x45, 0xD1, + 0xB1, 0x4A, 0x0C, 0x21, 0x52, 0x5E, 0xD9, 0x68, 0x91, 0x42, 0x2A, 0xDA, 0x06, 0xCB, 0x54, 0x00, + 0xA6, 0x4B, 0xCC, 0x42, 0x06, 0xD5, 0x18, 0x78, 0x44, 0x1C, 0x1C, 0x70, 0x0A, 0x28, 0x02, 0xD9, + 0xA7, 0x4B, 0x01, 0x20, 0x18, 0x70, 0x51, 0x18, 0x00, 0x29, 0x36, 0xDD, 0xA7, 0x49, 0x00, 0x23, + 0xC8, 0x5E, 0x9F, 0x4B, 0x00, 0x28, 0x03, 0xDB, 0x02, 0x25, 0x4C, 0x5F, 0x00, 0x2C, 0x03, 0xDA, + 0x32, 0x32, 0x05, 0xDB, 0x07, 0x30, 0x03, 0xDB, 0x02, 0x26, 0x8A, 0x5F, 0x07, 0x32, 0x05, 0xDA, + 0x1A, 0x78, 0x51, 0x1C, 0x19, 0x70, 0x14, 0x2A, 0x1F, 0xD9, 0x14, 0xE0, 0x00, 0x22, 0x1A, 0x70, + 0x1B, 0xE0, 0x9A, 0x4A, 0x00, 0x20, 0x11, 0x5E, 0x04, 0x31, 0x03, 0xDA, 0x02, 0x21, 0x52, 0x5E, + 0x04, 0x32, 0x08, 0xDB, 0x9A, 0x68, 0x0F, 0x2A, 0x0F, 0xDC, 0x9A, 0x69, 0x14, 0x2A, 0x0C, 0xDD, + 0xDB, 0x69, 0x05, 0x2B, 0x09, 0xDD, 0x01, 0x22, 0x8D, 0x4B, 0xE8, 0xE7, 0x59, 0x68, 0x00, 0x29, + 0x02, 0xDA, 0x1A, 0x68, 0x8A, 0x18, 0xD2, 0x0F, 0x22, 0x70, 0x88, 0x4B, 0x1C, 0x78, 0x00, 0x2C, + 0x4A, 0xD1, 0x8B, 0x4B, 0x1B, 0x78, 0x05, 0x2B, 0x46, 0xD8, 0x7F, 0x4B, 0x1B, 0x78, 0x00, 0x2B, + 0x42, 0xD0, 0x84, 0x4A, 0xD0, 0x69, 0x13, 0x28, 0x3E, 0xDC, 0x93, 0x68, 0x07, 0x2B, 0x3B, 0xDD, + 0x1E, 0x2B, 0x39, 0xDC, 0xD5, 0x68, 0x2E, 0x1C, 0x13, 0x36, 0x35, 0xDB, 0x11, 0x68, 0x6D, 0x29, + 0x1E, 0xDC, 0x12, 0x6A, 0x0A, 0x26, 0x00, 0x2A, 0x00, 0xDA, 0x76, 0x42, 0x56, 0x43, 0x8E, 0x42, + 0x20, 0xDC, 0x18, 0x29, 0x01, 0xDC, 0x00, 0x2A, 0x1C, 0xDB, 0x0C, 0x2B, 0x1A, 0xDD, 0x08, 0x28, + 0x02, 0xDD, 0x19, 0x2B, 0x16, 0xDD, 0x03, 0xE0, 0x04, 0x28, 0x01, 0xDD, 0x15, 0x2B, 0x11, 0xDD, + 0x72, 0x4B, 0x00, 0x26, 0x9A, 0x5F, 0x02, 0x26, 0x9B, 0x5F, 0xD3, 0x18, 0x09, 0x33, 0x09, 0xDB, + 0x0A, 0x28, 0x11, 0xDD, 0x09, 0x35, 0x03, 0xDB, 0x6A, 0x4B, 0x5B, 0x68, 0x00, 0x2B, 0x0B, 0xD1, + 0x95, 0x29, 0x09, 0xDC, 0x63, 0x4A, 0x13, 0x78, 0x59, 0x1C, 0x11, 0x70, 0x14, 0x2B, 0x09, 0xD9, + 0x63, 0x4B, 0x01, 0x22, 0x1A, 0x70, 0x05, 0xE0, 0x5E, 0x4B, 0x00, 0x22, 0x1A, 0x70, 0x94, 0x42, + 0x00, 0xD0, 0xE1, 0xE0, 0x00, 0x23, 0x63, 0x4C, 0x18, 0x1C, 0x19, 0x1C, 0x1A, 0x19, 0x95, 0x8A, + 0x0A, 0x3D, 0xAD, 0xB2, 0x14, 0x2D, 0x01, 0xD8, 0x01, 0x31, 0xC9, 0xB2, 0xE3, 0x32, 0xFF, 0x32, + 0x12, 0x88, 0x0A, 0x3A, 0x92, 0xB2, 0x14, 0x2A, 0x01, 0xD8, 0x01, 0x30, 0xC0, 0xB2, 0x02, 0x33, + 0x12, 0x2B, 0xEB, 0xD1, 0x00, 0x23, 0xFC, 0x24, 0x56, 0x4D, 0x1A, 0x1C, 0x64, 0x00, 0x5E, 0x19, + 0xB6, 0x8C, 0x0A, 0x3E, 0xB6, 0xB2, 0x1E, 0x2E, 0x01, 0xD8, 0x01, 0x32, 0xD2, 0xB2, 0x2A, 0x33, + 0xA3, 0x42, 0xF4, 0xD1, 0x06, 0x24, 0x48, 0x4B, 0x84, 0x42, 0x06, 0xD3, 0x8C, 0x42, 0x89, 0x41, + 0x49, 0x42, 0x00, 0x29, 0x01, 0xD1, 0xA2, 0x42, 0x09, 0xD9, 0x1A, 0x78, 0x51, 0x1C, 0x19, 0x70, + 0x0A, 0x2A, 0x00, 0xD8, 0xA8, 0xE0, 0x42, 0x4B, 0x01, 0x22, 0x1A, 0x70, 0xA4, 0xE0, 0x19, 0x70, + 0xA2, 0xE0, 0x3E, 0x4B, 0x1B, 0x78, 0x00, 0x2B, 0x00, 0xD0, 0x9D, 0xE0, 0xFF, 0xF7, 0xF0, 0xF9, + 0x9A, 0xE0, 0x41, 0x4B, 0x04, 0x20, 0x1B, 0x68, 0x98, 0x47, 0x95, 0xE0, 0xFE, 0xF7, 0x7A, 0xFF, + 0xFE, 0xF7, 0x48, 0xFD, 0x90, 0xE0, 0x30, 0x4B, 0x1A, 0x78, 0x00, 0x2A, 0x09, 0xD0, 0x3B, 0x49, + 0x09, 0x68, 0x00, 0x29, 0x05, 0xDD, 0x3A, 0x49, 0x09, 0x68, 0x00, 0x29, 0x01, 0xD1, 0x01, 0x3A, + 0x1A, 0x70, 0x38, 0x4B, 0x1B, 0x78, 0x00, 0x2B, 0x00, 0xD1, 0x7D, 0xE0, 0x33, 0x4B, 0x36, 0x4C, + 0x1B, 0x68, 0x00, 0x2B, 0x04, 0xDD, 0x23, 0x68, 0x00, 0x2B, 0x01, 0xD1, 0xFC, 0xF7, 0x78, 0xFE, + 0x23, 0x68, 0x00, 0x2B, 0x11, 0xDC, 0x31, 0x4B, 0x1B, 0x78, 0x03, 0x2B, 0x03, 0xD8, 0x30, 0x4B, + 0x1B, 0x78, 0x03, 0x2B, 0x68, 0xD9, 0x23, 0x4B, 0x1B, 0x69, 0x13, 0x2B, 0x64, 0xDC, 0x0C, 0x2B, + 0x62, 0xDD, 0x2C, 0x4B, 0x1B, 0x78, 0x00, 0x2B, 0x5E, 0xD1, 0xFC, 0xF7, 0x35, 0xFE, 0x5B, 0xE0, + 0x29, 0x4B, 0x1B, 0x78, 0x00, 0x2B, 0x57, 0xD1, 0x1B, 0x4B, 0x06, 0x22, 0x19, 0x1C, 0x1A, 0x76, + 0x38, 0x31, 0x0A, 0x22, 0xDA, 0x85, 0x0A, 0x70, 0x01, 0x22, 0xDA, 0x72, 0x52, 0x42, 0x98, 0x85, + 0x9A, 0x81, 0x49, 0xE0, 0x21, 0x4B, 0x07, 0x33, 0xDB, 0x7F, 0x00, 0x2B, 0x44, 0xD0, 0x12, 0x4B, + 0x87, 0x22, 0x52, 0x00, 0x9A, 0x80, 0x20, 0x22, 0x9A, 0x71, 0x05, 0x22, 0x1A, 0x72, 0x01, 0x22, + 0x5A, 0x72, 0x1E, 0x22, 0x9A, 0x72, 0x37, 0xE0, 0x01, 0x20, 0x02, 0xE0, 0x02, 0x20, 0x00, 0xE0, + 0x00, 0x20, 0xFB, 0xF7, 0x1B, 0xFF, 0x2F, 0xE0, 0xA3, 0x07, 0x00, 0x20, 0xA5, 0x07, 0x00, 0x20, + 0xA6, 0x07, 0x00, 0x20, 0xA7, 0x07, 0x00, 0x20, 0xA8, 0x07, 0x00, 0x20, 0x76, 0x07, 0x00, 0x20, + 0xA0, 0x07, 0x00, 0x20, 0xAC, 0x07, 0x00, 0x20, 0xC8, 0x0B, 0x00, 0x20, 0xBE, 0x0B, 0x00, 0x20, + 0xA4, 0x07, 0x00, 0x20, 0x28, 0x0D, 0x00, 0x20, 0x18, 0x07, 0x00, 0x20, 0xE0, 0x07, 0x00, 0x20, + 0x20, 0x0C, 0x00, 0x20, 0x6E, 0x07, 0x00, 0x20, 0x0C, 0x08, 0x00, 0x20, 0x44, 0x08, 0x00, 0x20, + 0x45, 0x08, 0x00, 0x20, 0x0A, 0x07, 0x00, 0x20, 0x40, 0x06, 0x00, 0x20, 0x58, 0x0A, 0x00, 0x20, + 0x02, 0x4B, 0x18, 0x78, 0xFC, 0xF7, 0x0E, 0xF8, 0x70, 0xBD, 0xC0, 0x46, 0x6D, 0x11, 0x00, 0x20, + 0x01, 0x00, 0x00, 0x02, 0x74, 0x11, 0x00, 0x20, 0x05, 0xFF, 0xFF, 0x02, 0x01, 0x10, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x20, 0x01, 0x00, 0x13, 0x00, 0x14, 0x00, 0x9D, 0x00, + 0x14, 0x00, 0x43, 0x01, 0x14, 0x00, 0xCD, 0x01, 0x14, 0x00, 0x58, 0x00, 0x43, 0x00, 0xF0, 0x00, + 0x43, 0x00, 0x88, 0x01, 0x43, 0x00, 0x13, 0x00, 0x73, 0x00, 0xCD, 0x01, 0x73, 0x00, 0x58, 0x00, + 0xA2, 0x00, 0xF0, 0x00, 0xA2, 0x00, 0x88, 0x01, 0xA2, 0x00, 0x13, 0x00, 0xD2, 0x00, 0x9D, 0x00, + 0xD2, 0x00, 0x43, 0x01, 0xD2, 0x00, 0xCD, 0x01, 0xD2, 0x00, 0x58, 0x00, 0x01, 0x01, 0xF0, 0x00, + 0x01, 0x01, 0x88, 0x01, 0x01, 0x01, 0x13, 0x00, 0x31, 0x01, 0xCD, 0x01, 0x31, 0x01, 0x58, 0x00, + 0x60, 0x01, 0xF0, 0x00, 0x60, 0x01, 0x88, 0x01, 0x60, 0x01, 0x9D, 0x00, 0x90, 0x01, 0x43, 0x01, + 0x90, 0x01, 0x58, 0x00, 0xC0, 0x01, 0xF0, 0x00, 0xC0, 0x01, 0x88, 0x01, 0xC0, 0x01, 0x13, 0x00, + 0xEF, 0x01, 0xCD, 0x01, 0xEF, 0x01, 0x58, 0x00, 0x1F, 0x02, 0xF0, 0x00, 0x1F, 0x02, 0x88, 0x01, + 0x1F, 0x02, 0x13, 0x00, 0x4E, 0x02, 0x9D, 0x00, 0x4E, 0x02, 0x43, 0x01, 0x4E, 0x02, 0xCD, 0x01, + 0x4E, 0x02, 0x58, 0x00, 0x7E, 0x02, 0xF0, 0x00, 0x7E, 0x02, 0x88, 0x01, 0x7E, 0x02, 0x13, 0x00, + 0xAD, 0x02, 0xCD, 0x01, 0xAD, 0x02, 0x58, 0x00, 0xDD, 0x02, 0xF0, 0x00, 0xDD, 0x02, 0x88, 0x01, + 0xDD, 0x02, 0x13, 0x00, 0x0C, 0x03, 0x9D, 0x00, 0x0C, 0x03, 0x43, 0x01, 0x0C, 0x03, 0xCD, 0x01, + 0x0C, 0x03, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x64, 0x99, 0x21, 0xD0, + 0xF6, 0x48, 0x4D, 0x45, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x28 +}; + diff --git a/drivers/input/touchscreen/mms134s/mms134s_sec.c b/drivers/input/touchscreen/mms134s/mms134s_sec.c new file mode 100644 index 00000000..e578ceed --- /dev/null +++ b/drivers/input/touchscreen/mms134s/mms134s_sec.c @@ -0,0 +1,1000 @@ +static void set_cmd_result(struct mms_fac_data *fac_data, char *buff, int len) +{ + strncat(fac_data->cmd_result, buff, len); +} + +static void set_default_result(struct mms_fac_data *fac_data) +{ + char delim = ':'; + + memset(fac_data->cmd_result, 0x00, ARRAY_SIZE(fac_data->cmd_result)); + memset(fac_data->cmd_buff, 0x00, ARRAY_SIZE(fac_data->cmd_buff)); + memcpy(fac_data->cmd_result, fac_data->cmd, strlen(fac_data->cmd)); + strncat(fac_data->cmd_result, &delim, 1); +} + +static ssize_t show_cmd_status(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct mms_info *info = dev_get_drvdata(dev); + struct mms_fac_data *fac_data = info->fac_data; + struct i2c_client *client = info->client; + char buff[16] = {0,}; + + dev_info(&client->dev, "cmd status %d\n", fac_data->cmd_state); + + switch (fac_data->cmd_state) { + case CMD_STATUS_WAITING: + sprintf(buff, "%s", "WAITING"); + break; + case CMD_STATUS_RUNNING: + sprintf(buff, "%s", "RUNNING"); + break; + case CMD_STATUS_OK: + sprintf(buff, "%s", "OK"); + break; + case CMD_STATUS_FAIL: + sprintf(buff, "%s", "FAIL"); + break; + case CMD_STATUS_NOT_APPLICABLE: + sprintf(buff, "%s", "NOT_APPLICABLE"); + break; + default: + sprintf(buff, "%s", "NOT_APPLICABLE"); + break; + } + + return sprintf(buf, "%s\n", buff); +} + +static ssize_t show_cmd_result(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct mms_info *info = dev_get_drvdata(dev); + struct mms_fac_data *fac_data = info->fac_data; + struct i2c_client *client = info->client; + + dev_info(&client->dev, "cmd result %s\n", fac_data->cmd_result); + + mutex_lock(&fac_data->cmd_lock); + fac_data->cmd_is_running = false; + mutex_unlock(&fac_data->cmd_lock); + + fac_data->cmd_state = CMD_STATUS_WAITING; + + return sprintf(buf, "%s", fac_data->cmd_result); +} + +static int update_from_req_fw(struct mms_info *info) +{ + struct i2c_client *client = info->client; + const char *path = info->pdata->inkernel_fw_name; + const struct firmware *fw; + int ret = 0; + + dev_info(&client->dev, "%s : firmware load %s\n", __func__, path); + + ret = request_firmware(&fw, path, &client->dev); + if (ret) { + dev_err(&client->dev, "Failed to request built-in fw (%d)\n", ret); + goto out; + } + + ret = mms_flash_fw(fw, info); + release_firmware(fw); + +out: + return ret; +} + +static int update_from_ums(struct mms_info *info) +{ + struct i2c_client *client = info->client; + const char *path = info->pdata->ums_fw_name; + mm_segment_t old_fs; + struct file *fp; + long fsize, nread; + struct firmware fw; + u8 *buff; + int ret = 0; + + dev_info(&client->dev, "%s : file open %s\n", __func__, path); + + old_fs = get_fs(); + set_fs(KERNEL_DS); + + fp = filp_open(path, O_RDONLY, S_IRUSR); + if (IS_ERR(fp)) { + dev_err(&client->dev, "Failed to open file\n"); + ret = PTR_ERR(fp); + goto err_file_open; + } + + fsize = fp->f_path.dentry->d_inode->i_size; + + buff = kzalloc((size_t)fsize, GFP_KERNEL); + if (!buff) { + dev_err(&client->dev, "Failed to allocate memory\n"); + ret = -ENOMEM; + goto err_mem_alloc; + } + + + nread = vfs_read(fp, (char __user *)buff, fsize, &fp->f_pos); + if (fsize != nread) { + dev_err(&client->dev, "Failed to read file correctly\n"); + ret = -EPERM; + goto err_file_read; + } + + fw.size = fsize; + fw.data = buff; + ret = mms_flash_fw(&fw, info); + +err_file_read: + kfree(buff); +err_mem_alloc: + filp_close(fp, NULL); +err_file_open: + set_fs(old_fs); + + return ret; +} + +static void fw_update(void *device_data) +{ + struct mms_info *info = (struct mms_info *)device_data; + struct mms_fac_data *fac_data = info->fac_data; + struct i2c_client *client = info->client; + int fw_type = fac_data->cmd_param[0]; + int ret; + + set_default_result(fac_data); + + if (!info->enabled) { + dev_err(&client->dev, "%s : TSP is disabled\n"); + goto out; + } + + mutex_lock(&info->input_dev->mutex); + disable_irq(info->irq); + + switch (fw_type) { + case FW_FROM_BUILT_IN: + ret = update_from_req_fw(info); + break; + case FW_FROM_UMS: + ret = update_from_ums(info); + break; + default: + dev_err(&client->dev, + "%s : Invalid update type(%d)\n", __func__, fw_type); + goto err_update; + break; + } + + if (ret) { + dev_err(&client->dev, "%s : Failed fw update(%d)\n", __func__, ret); + goto err_update; + } + + enable_irq(info->irq); + mutex_unlock(&info->input_dev->mutex); + + fac_data->cmd_state = (ret) ? CMD_STATUS_FAIL : CMD_STATUS_OK; + sprintf(fac_data->cmd_buff, "%s", (ret) ? "NG" : "OK"); + set_cmd_result(fac_data, fac_data->cmd_buff, strlen(fac_data->cmd_buff)); + + dev_info(&client->dev, "%s : %s\n", __func__, fac_data->cmd_buff); + + return; + +err_update: + enable_irq(info->irq); + mutex_unlock(&info->input_dev->mutex); +out: + fac_data->cmd_state = CMD_STATUS_FAIL; + sprintf(fac_data->cmd_buff, "%s", "NG"); + set_cmd_result(fac_data, fac_data->cmd_buff, strlen(fac_data->cmd_buff)); + + return; +} + +static void get_threshold(void *device_data) +{ + struct mms_info *info = (struct mms_info *)device_data; + struct mms_fac_data *fac_data = info->fac_data; + struct i2c_client *client = info->client; + u8 buff; + + set_default_result(fac_data); + + buff = i2c_smbus_read_byte_data(info->client, MMS_THRESHOLD); + if (buff < 0) { + dev_err(&client->dev, "Failed to read threshold (%d)\n", buff); + goto out; + } + + fac_data->cmd_state = CMD_STATUS_OK; + sprintf(fac_data->cmd_buff, "%d", buff); + set_cmd_result(fac_data, fac_data->cmd_buff, strlen(fac_data->cmd_buff)); + + dev_info(&client->dev, "%s : %s\n", __func__, fac_data->cmd_buff); + + return; + +out: + fac_data->cmd_state = FAIL; + sprintf(fac_data->cmd_buff, "%s", "NG"); + set_cmd_result(fac_data, fac_data->cmd_buff, strlen(fac_data->cmd_buff)); + return ; +} +/* +static void module_off_master(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + struct i2c_client *client = info->client; + + set_default_result(info); + + if (info->pdata->vdd_on) + info->pdata->vdd_on(&info->client->dev, 0); + + sprintf(info->cmd_buff, "%s", "OK"); + set_cmd_result(info, info->cmd_buff, strlen(info->cmd_buff)); + info->cmd_state = CMD_STATUS_OK; + + dev_info(&client->dev, "%s: \"%s\"(%d)\n", __func__, + info->cmd_buff, strlen(info->cmd_buff)); + + return; +} + +static void module_on_master(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + struct i2c_client *client = info->client; + + set_default_result(info); + + mms_pwr_on_reset(info); + + sprintf(info->cmd_buff, "%s", "OK"); + set_cmd_result(info, info->cmd_buff, strlen(info->cmd_buff)); + info->cmd_state = CMD_STATUS_OK; + + dev_info(&client->dev, "%s: \"%s\"(%d)\n", __func__, + info->cmd_buff, strlen(info->cmd_buff)); + + return; +} +*/ +static void get_x_num(void *device_data) +{ + struct mms_info *info = (struct mms_info *)device_data; + struct mms_fac_data *fac_data = info->fac_data; + struct i2c_client *client = info->client; + + set_default_result(fac_data); + + fac_data->cmd_state = CMD_STATUS_OK; + sprintf(fac_data->cmd_buff, "%d", fac_data->xnode_num); + set_cmd_result(fac_data, fac_data->cmd_buff, strlen(fac_data->cmd_buff)); + + dev_info(&client->dev, "%s : %s\n", __func__, fac_data->cmd_buff); + + return; +} + +static void get_y_num(void *device_data) +{ + struct mms_info *info = (struct mms_info *)device_data; + struct mms_fac_data *fac_data = info->fac_data; + struct i2c_client *client = info->client; + + set_default_result(fac_data); + + fac_data->cmd_state = CMD_STATUS_OK; + sprintf(fac_data->cmd_buff, "%d", fac_data->ynode_num); + set_cmd_result(fac_data, fac_data->cmd_buff, strlen(fac_data->cmd_buff)); + + dev_info(&client->dev, "%s : %s\n", __func__, fac_data->cmd_buff); + + return; +} + +static int enter_test_mode(struct mms_info *info) +{ + struct i2c_client *client = info->client; + int ret = 0; + + disable_irq(info->irq); + + ret = i2c_smbus_write_byte_data( + client, MMS_UNIVERSAL_CMD, MMS_UNIV_ENTER_TEST); + if (ret < 0) { + dev_err(&client->dev, "Failed to enter test mode(%d)\n", ret); + goto out; + } + + do { + udelay(100); + } while (gpio_get_value(info->pdata->gpio_int)); + + ret = i2c_smbus_read_byte_data(client, MMS_EVENT_PKT); + dev_info(&client->dev, "event(%x)\n", ret); + + if (ret != MMS_TEST_MODE) { + dev_err(&client->dev, "Failed to check maker(%x)\n", ret); + ret = -EPERM; + goto out; + } + + return 0; + +out: + enable_irq(info->irq); + return ret; +} + +static int exit_test_mode(struct mms_info *info) +{ + struct i2c_client *client = info->client; + int ret = 0; + + ret = i2c_smbus_write_byte_data( + client, MMS_UNIVERSAL_CMD, MMS_UNIV_EXIT_TEST); + if (ret < 0) { + dev_err(&client->dev, "Failed to exit test mode(%d)\n", ret); + goto out; + } + + enable_irq(info->irq); + + return 0; + +out: + enable_irq(info->irq); + + return ret; +} + +static int read_cm_data_all(struct mms_info *info, u8 univ_cmd, + u8 univ_key_cmd) +{ + struct mms_fac_data *fac_data = info->fac_data; + struct i2c_client *client = info->client; + int r, t; + int ret = 0; + u8 buf[256] = {0, }; + u8 reg[4] = {0, }; + s16 cm_data; + char data[5]; + struct i2c_msg msg[] = { + { + .addr = client->addr, + .flags = 0, + .buf = reg, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + }, + }; + + ret = i2c_smbus_write_byte_data(client, MMS_UNIVERSAL_CMD, univ_cmd); + if (ret < 0) { + dev_err(&client->dev, "%s : Failed to send %x cmd(%d)\n", + __func__, univ_cmd, ret); + goto out; + } + + do { + udelay(100); + } while (gpio_get_value(info->pdata->gpio_int)); + + ret = i2c_smbus_read_byte_data(client, MMS_UNIVERSAL_RESULT); + if (ret < 0) { + dev_err(&client->dev, "%s : Failed 0x%x test(%d)\n", __func__, + univ_cmd, ret); + goto out; + } + + msleep(1); + + pr_info("cm_data\n"); + pr_info("view\n"); + for (r = 0 ; r < fac_data->xnode_num; r++) { + reg[0] = MMS_UNIVERSAL_CMD; + reg[1] = univ_cmd + 1; /* get univ_cmd value from node */ + reg[2] = 0xFF; + reg[3] = r; + msg[0].len = 4; + + if (i2c_transfer(client->adapter, &msg[0], 1) != 1) { + dev_err(&client->dev, "%s : Failed to send cmd for node\n", + __func__); + ret = -EPERM; + goto out; + } + + while (gpio_get_value(info->pdata->gpio_int)); + + ret = i2c_smbus_read_byte_data(client, MMS_UNIVERSAL_RESULT_SZ); + if (ret < 0) { + dev_err(&client->dev, "%s : Failed to read node result size\n", + __func__); + goto out; + } + + reg[0] = MMS_UNIVERSAL_RESULT; + msg[0].len = 1; + msg[1].len = ret; + msg[1].buf = buf; + + if (i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg)) + != ARRAY_SIZE(msg)) { + dev_err(&client->dev, "%s : Failed to read node value\n", + __func__); + ret = -EPERM; + goto out; + } + + for (t = 0; t < fac_data->ynode_num; t++){ + cm_data = (s16)(buf[2 * t] | (buf[(2 * t) + 1] << 8)); + pr_info("%d\n", cm_data); + } + pr_info("---------\n"); + } + +#if MMS_HAS_TOUCH_KEY + pr_info("key\n"); + if (fac_data->keynode_num) { + reg[0] = MMS_UNIVERSAL_CMD; + reg[1] = univ_key_cmd; + reg[2] = 0xFF; + reg[3] = 0x00; + msg[0].len = 4; + + if (i2c_transfer(client->adapter, &msg[0],1) != 1) { + dev_err(&client->dev, "%s : Failed to send cmd for key\n", + __func__); + ret = EPERM; + goto out; + } + + while (gpio_get_value(info->pdata->gpio_int)); + + ret = i2c_smbus_read_byte_data(client, MMS_UNIVERSAL_RESULT_SZ); + if (ret < 0) { + dev_err(&client->dev, "%s : Failed to read key result size\n", + __func__); + goto out; + } + + reg[0] = MMS_UNIVERSAL_RESULT; + msg[0].len = 1; + msg[1].len = ret; + msg[1].buf = buf; + + if(i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg)) + != ARRAY_SIZE(msg)){ + ret = -EPERM; + goto out; + } + + for (t = 0; t < fac_data->keynode_num; t++) { + cm_data = (s16)(buf[2 * t] | (buf[(2 * t) + 1] << 8)); + pr_info("%d\n", cm_data); + } + } +#endif + +out: + return ret; +} + +static void run_cm_delta_read(void *device_data) +{ + struct mms_info *info = (struct mms_info *)device_data; + struct mms_fac_data *fac_data = info->fac_data; + struct i2c_client *client = info->client; + int ret; + + set_default_result(fac_data); + + ret = enter_test_mode(info); + if (ret < 0) { + dev_err(&client->dev, "%s : Failed to enter test mode\n", __func__); + goto out; + } + + ret = read_cm_data_all(info, MMS_UNIV_CM_DELTA, MMS_UNIV_GET_DELTA_KEY); + if (ret < 0) { + dev_err(&client->dev, "%s : Failed to read cm data\n", __func__); + goto out; + } + + ret = exit_test_mode(info); + if (ret < 0) { + dev_err(&client->dev, "%s : Failed to exit test mode\n", __func__); + goto out; + } + + fac_data->cmd_state = CMD_STATUS_OK; +// sprintf(fac_data->cmd_buff, "%d,%d", raw_min, raw_max); + set_cmd_result(fac_data, fac_data->cmd_buff, strlen(fac_data->cmd_buff)); + + dev_info(&client->dev, "%s : %s\n", __func__, fac_data->cmd_buff); + + return; + +out: + fac_data->cmd_state = CMD_STATUS_FAIL; + sprintf(fac_data->cmd_buff, "%s", "NG"); + set_cmd_result(fac_data, fac_data->cmd_buff, strlen(fac_data->cmd_buff)); + + return; +} + +static void run_cm_abs_read(void *device_data) +{ + struct mms_info *info = (struct mms_info *)device_data; + struct mms_fac_data *fac_data = info->fac_data; + struct i2c_client *client = info->client; + int ret; + + set_default_result(fac_data); + + ret = enter_test_mode(info); + if (ret < 0) { + dev_err(&client->dev, "%s : Failed to enter test mode\n", __func__); + goto out; + } + + ret = read_cm_data_all(info, MMS_UNIV_CM_ABS, MMS_UNIV_GET_ABS_KEY); + if (ret < 0) { + dev_err(&client->dev, "%s : Failed to read cm data\n", __func__); + goto out; + } + + ret = exit_test_mode(info); + if (ret < 0) { + dev_err(&client->dev, "%s : Failed to exit test mode\n", __func__); + goto out; + } + + fac_data->cmd_state = CMD_STATUS_OK; +// sprintf(fac_data->cmd_buff, "%d,%d", raw_min, raw_max); + set_cmd_result(fac_data, fac_data->cmd_buff, strlen(fac_data->cmd_buff)); + + dev_info(&client->dev, "%s : %s\n", __func__, fac_data->cmd_buff); + + return; + +out: + fac_data->cmd_state = CMD_STATUS_FAIL; + sprintf(fac_data->cmd_buff, "%s", "NG"); + set_cmd_result(fac_data, fac_data->cmd_buff, strlen(fac_data->cmd_buff)); + + return; +} + +static int read_raw_data_all(struct mms_info *info, u8 univ_cmd) +{ + struct mms_fac_data *fac_data = info->fac_data; + struct i2c_client *client = info->client; + int r, t; + int ret = 0; + u8 buf[42] = {0, }; + u8 reg[4] = {0, }; + s16 raw_data; + char data[5]; + struct i2c_msg msg[] = { + { + .addr = client->addr, + .flags = 0, + .buf = reg, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + }, + }; + + pr_info("raw_data\n"); + pr_info("view\n"); + for (r = 0 ; r < fac_data->xnode_num ; r++) { + reg[0] = MMS_UNIVERSAL_CMD; + reg[1] = univ_cmd; + reg[2] = 0xFF; + reg[3] = r; + msg[0].len = 4; + + msleep(1); + + if (i2c_transfer(client->adapter, &msg[0], 1) != 1) { + dev_err(&client->dev, "%s : Failed to send cmd for node\n", + __func__); + ret = -EPERM; + goto out; + } + + ret = i2c_smbus_read_byte_data(client, MMS_UNIVERSAL_RESULT_SZ); + if (ret < 0) { + dev_err(&client->dev, "%s : Failed to read node result size\n", + __func__); + goto out; + } + + reg[0] = MMS_UNIVERSAL_RESULT; + msg[0].len = 1; + msg[1].len = ret; + msg[1].buf = buf; + + if (i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg)) + != ARRAY_SIZE(msg)){ + ret = -EPERM; + goto out; + } + + ret >>= 1; + + for (t = 0 ; t < ret ; t++) { + raw_data = (s16)(buf[2 * t] | (buf[(2 * t) + 1] << 8)); + pr_info("%d\n", raw_data); + } + pr_info("---------\n"); + } + +#if MMS_HAS_TOUCH_KEY + pr_info("key\n"); + if (fac_data->keynode_num) { + reg[0] = MMS_UNIVERSAL_CMD; + reg[1] = univ_cmd + 1; /* univ_cmd for key */ + reg[2] = 0xFF; + reg[3] = 0x00; + msg[0].len = 4; + + if (i2c_transfer(client->adapter, &msg[0], 1) != 1) { + dev_err(&client->dev, "%s : Failed to send cmd for key\n", + __func__); + ret = EPERM; + goto out; + } + + while (gpio_get_value(info->pdata->gpio_int)); + + ret = i2c_smbus_read_byte_data(client, MMS_UNIVERSAL_RESULT_SZ); + if (ret < 0) { + dev_err(&client->dev, "%s : Failed to read key result size\n", + __func__); + goto out; + } + + reg[0] = MMS_UNIVERSAL_RESULT; + msg[0].len = 1; + msg[1].len = ret; + msg[1].buf = buf; + + if (i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg)) + != ARRAY_SIZE(msg)) { + ret = -EPERM; + return ret; + } + + for (t = 0; t < fac_data->keynode_num; t++){ + raw_data = (s16)(buf[2 * t] | (buf[(2 * t) + 1] << 8)); + pr_info("%d\n", raw_data); + } + } +#endif + +out: + return ret; +} + +static void run_intensity_read(void *device_data) +{ + struct mms_info *info = (struct mms_info *)device_data; + struct mms_fac_data *fac_data = info->fac_data; + struct i2c_client *client = info->client; + int ret; + + set_default_result(fac_data); + + disable_irq(info->irq); + + ret = read_raw_data_all(info, MMS_UNIV_INTENSITY); + if (ret < 0) { + dev_err(&client->dev, "%s : Failed to read raw data\n", __func__); + goto out; + } + + enable_irq(info->irq); + + fac_data->cmd_state = CMD_STATUS_OK; +// sprintf(fac_data->cmd_buff, "%d,%d", raw_min, raw_max); + set_cmd_result(fac_data, fac_data->cmd_buff, strlen(fac_data->cmd_buff)); + + dev_info(&client->dev, "%s : %s\n", __func__, fac_data->cmd_buff); + + return; + +out: + enable_irq(info->irq); + + fac_data->cmd_state = CMD_STATUS_FAIL; + sprintf(fac_data->cmd_buff, "%s", "NG"); + set_cmd_result(fac_data, fac_data->cmd_buff, strlen(fac_data->cmd_buff)); + + return; +} + +static void not_support_cmd(void *device_data) +{ + struct mms_info *info = (struct mms_info *)device_data; + struct mms_fac_data *fac_data = info->fac_data; + struct i2c_client *client = info->client; + + set_default_result(fac_data); + + sprintf(fac_data->cmd_buff, "%s", "NA"); + set_cmd_result(fac_data, fac_data->cmd_buff, strlen(fac_data->cmd_buff)); + fac_data->cmd_state = CMD_STATUS_NOT_APPLICABLE; + dev_info(&client->dev, "%s : %s\n", __func__, fac_data->cmd_buff); + + return; +} + +#define TSP_CMD(name, func) .cmd_name = name, .cmd_func = func + +struct tsp_cmd { + struct list_head list; + const char *cmd_name; + void (*cmd_func)(void *device_data); +}; + +struct tsp_cmd tsp_cmds[] = { + {TSP_CMD("fw_update", fw_update),}, +/* {TSP_CMD("get_fw_ver_bin", get_fw_ver_bin),}, + {TSP_CMD("get_fw_ver_ic", get_fw_ver_ic),}, + {TSP_CMD("get_config_ver", not_support_cmd),},*/ + {TSP_CMD("get_threshold", get_threshold),}, + {TSP_CMD("module_off_master", not_support_cmd),}, + {TSP_CMD("module_on_master", not_support_cmd),}, + {TSP_CMD("module_off_slave", not_support_cmd),}, + {TSP_CMD("module_on_slave", not_support_cmd),}, +/* {TSP_CMD("get_chip_vendor", get_chip_vendor),}, + {TSP_CMD("get_chip_name", get_chip_name),},*/ + {TSP_CMD("get_x_num", get_x_num),}, + {TSP_CMD("get_y_num", get_y_num),}, +/* {TSP_CMD("run_reference_read", run_reference_read),}, + {TSP_CMD("run_inspection_read", run_inspection_read),},*/ + {TSP_CMD("run_cm_delta_read", run_cm_delta_read),}, + {TSP_CMD("run_cm_abs_read", run_cm_abs_read),}, + {TSP_CMD("run_intensity_read", run_intensity_read),}, +/* {TSP_CMD("get_reference", get_reference),}, + {TSP_CMD("get_cm_abs", get_cm_abs),}, + {TSP_CMD("get_inspection", get_inspection),}, + {TSP_CMD("get_cm_delta", get_inspection),}, + {TSP_CMD("get_intensity", get_intensity),},*/ + {TSP_CMD("not_support_cmd", not_support_cmd),}, +}; + +static ssize_t store_cmd(struct device *dev, struct device_attribute *devattr, + const char *buf, size_t count) +{ + struct mms_info *info = dev_get_drvdata(dev); + struct mms_fac_data *fac_data = info->fac_data; + struct i2c_client *client = info->client; + char *cur, *start, *end; + char buff[TSP_CMD_STR_LEN] = {0, }; + int len, i; + struct tsp_cmd *tsp_cmd_ptr = NULL; + char delim = ','; + bool cmd_found = false; + int param_cnt = 0; + + if (!info->enabled) { + dev_err(&client->dev, "%s: device is disabled\n", __func__); + goto err_out; + } + + if (fac_data->cmd_is_running) { + dev_err(&client->dev, "%s: other cmd is running\n", __func__); + goto err_out; + } + + /* check lock */ + mutex_lock(&fac_data->cmd_lock); + fac_data->cmd_is_running = true; + mutex_unlock(&fac_data->cmd_lock); + + fac_data->cmd_state = CMD_STATUS_RUNNING; + + for (i = 0; i < ARRAY_SIZE(fac_data->cmd_param); i++) + fac_data->cmd_param[i] = 0; + + len = (int)count; + + if (*(buf + len - 1) == '\n') + len--; + + memset(fac_data->cmd, 0x00, ARRAY_SIZE(fac_data->cmd)); + memcpy(fac_data->cmd, buf, len); + + cur = strchr(buf, (int)delim); + if (cur) + memcpy(buff, buf, cur - buf); + else + memcpy(buff, buf, len); + + /* find command */ + list_for_each_entry(tsp_cmd_ptr, &fac_data->cmd_list_head, list) { + if (!strcmp(buff, tsp_cmd_ptr->cmd_name)) { + cmd_found = true; + break; + } + } + + /* set not_support_cmd */ + if (!cmd_found) { + list_for_each_entry(tsp_cmd_ptr, &fac_data->cmd_list_head, list) { + if (!strcmp("not_support_cmd", tsp_cmd_ptr->cmd_name)) + break; + } + } + + /* parsing TSP standard tset parameter */ + if (cur && cmd_found) { + cur++; + start = cur; + + do { + if (*cur == delim || cur - buf == len) { + memset(buff, 0x00, ARRAY_SIZE(buff)); + end = cur; + memcpy(buff, start, end - start); + *(buff + strlen(buff)) = '\0'; + kstrtol(buff, 10, fac_data->cmd_param + param_cnt); + start = cur + 1; + param_cnt++; + } + cur++; + } while (cur - buf <= len); + } + + dev_info(&client->dev, "cmd = %s\n", tsp_cmd_ptr->cmd_name); + + for (i = 0; i < param_cnt; i++) + dev_info(&client->dev, "cmd param %d = %d\n", + i, fac_data->cmd_param[i]); + + tsp_cmd_ptr->cmd_func(info); + +err_out: + return count; +} + +static DEVICE_ATTR(cmd, S_IWUSR | S_IWGRP, NULL, store_cmd); +static DEVICE_ATTR(cmd_status, S_IRUGO, show_cmd_status, NULL); +static DEVICE_ATTR(cmd_result, S_IRUGO, show_cmd_result, NULL); + +static struct attribute *touchscreen_attributes[] = { + &dev_attr_cmd.attr, + &dev_attr_cmd_status.attr, + &dev_attr_cmd_result.attr, + NULL, +}; + +static struct attribute_group touchscreen_attr_group = { + .attrs = touchscreen_attributes, +}; + +static int get_nodenum(struct mms_info *info) +{ + struct mms_fac_data *fac_data = info->fac_data; + struct i2c_client *client = info->client; + int ret; + + ret = i2c_smbus_read_byte_data(client, MMS_TX_NUM); + if (ret <= 0) { + dev_err(&client->dev, "Failed to read xnode num(%d)\n", ret); + return ret; + } + fac_data->xnode_num = ret; + + ret = i2c_smbus_read_byte_data(client, MMS_RX_NUM); + if (ret <= 0) { + dev_err(&client->dev, "Failed to read ynode num(%d)\n", ret); + return ret; + } + fac_data->ynode_num = ret; + + ret = i2c_smbus_read_byte_data(client, MMS_KEY_NUM); + if (ret <= 0) { + dev_err(&client->dev, "Failed to read keynode num(%d)\n", ret); + return ret; + } + fac_data->keynode_num = ret; + + return 0; +} + +extern struct class *sec_class; + +static int init_sec(struct mms_info *info) +{ + struct i2c_client *client = info->client; + struct mms_fac_data *fac_data; + int i; + int ret; + + fac_data = kzalloc(sizeof(struct mms_fac_data), GFP_KERNEL); + if (!fac_data) { + dev_err(&client->dev, "Failed to allocate factory data memory\n"); + return -ENOMEM; + } + info->fac_data = fac_data; + + mutex_init(&fac_data->cmd_lock); + fac_data->cmd_is_running = false; + + INIT_LIST_HEAD(&fac_data->cmd_list_head); + for (i = 0; i < ARRAY_SIZE(tsp_cmds); i++) + list_add_tail(&tsp_cmds[i].list, &fac_data->cmd_list_head); + + ret = get_nodenum(info); + if (ret) { + dev_err(&client->dev, "Failed to read node number(%d)\n", ret); + goto err_create_dev_ts; + } + +/* info->raw_cm_abs = kzalloc(raw_data_size, GFP_KERNEL); + info->raw_inspection = kzalloc(raw_data_size, GFP_KERNEL); + info->raw_intensity = kzalloc(raw_data_size, GFP_KERNEL); + info->raw_reference = kzalloc(raw_data_size, GFP_KERNEL); + if (!info->raw_cm_abs || !info->raw_inspection || + !info->raw_intensity || !info->raw_reference) { + dev_err(&client->dev, "Failed to allocate memory\n"); + ret = -ENOMEM; + goto err_create_dev_ts; + } +*/ + fac_data->fac_tsp_dev = device_create( + sec_class, NULL, (dev_t)NULL, info, "tsp"); + if (IS_ERR(fac_data->fac_tsp_dev)) { + ret = PTR_ERR(fac_data->fac_tsp_dev); + dev_err(&client->dev, + "Failed to create device for touch screen (%d)\n", ret); + ret = -ENODEV; + goto err_create_dev_ts; + } + + ret = sysfs_create_group( + &fac_data->fac_tsp_dev->kobj, &touchscreen_attr_group); + if (ret) { + dev_err(&client->dev, + "Failed to create sysfs for touch screen (%d)\n", ret); + ret = (ret > 0) ? -ret : ret; + goto err_create_ts_sysfs; + } + + return 0; + +err_create_ts_sysfs: + device_destroy(sec_class, (dev_t)NULL); +err_create_dev_ts: + kfree(fac_data); + + return ret; +} + +static void destroy_sec(struct mms_info *info) +{ + sysfs_remove_group( + &info->fac_data->fac_tsp_dev->kobj, &touchscreen_attr_group); + device_destroy(sec_class, (dev_t)NULL); + kfree(info->fac_data); +} \ No newline at end of file diff --git a/drivers/input/touchscreen/mms136_ts.c b/drivers/input/touchscreen/mms136_ts.c new file mode 100644 index 00000000..158fe60c --- /dev/null +++ b/drivers/input/touchscreen/mms136_ts.c @@ -0,0 +1,4039 @@ +/* + * mms_ts.c - Touchscreen driver for Melfas MMS-series touch controllers + * + * Copyright (C) 2011 Google Inc. + * Author: Dima Zavin + * Simon Wilson + * + * ISP reflashing code based on original code from Melfas. + * + * 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. + * + */ + +#define DEBUG +/* #define VERBOSE_DEBUG */ +#define SEC_TSP_DEBUG +#define SEC_TSP_VERBOSE_DEBUG + +/* #define FORCE_FW_FLASH */ +/* #define FORCE_FW_PASS */ +/* #define ESD_DEBUG */ + +#define SEC_TSP_FACTORY_TEST +#define SEC_TKEY_FACTORY_TEST +#define SEC_TSP_FW_UPDATE +#define TSP_BUF_SIZE 1024 +#define FAIL -1 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include "mms_ts_fw.h" + +#ifdef CONFIG_LEDS_CLASS +#include +#define TOUCHKEY_BACKLIGHT "button-backlight" +#endif + +#define MAX_FINGERS 10 +#define MAX_WIDTH 30 +#define MAX_PRESSURE 255 +#define MAX_ANGLE 90 +#define MIN_ANGLE -90 + +/* Registers */ +#define MMS_MODE_CONTROL 0x01 +#define MMS_XYRES_HI 0x02 +#define MMS_XRES_LO 0x03 +#define MMS_YRES_LO 0x04 + +#define MMS_INPUT_EVENT_PKT_SZ 0x0F +#define MMS_INPUT_EVENT0 0x10 +#ifdef CONFIG_TOUCHSCREEN_MMS144 +#define FINGER_EVENT_SZ 8 +#elif defined(CONFIG_TOUCHSCREEN_MMS136) +#define FINGER_EVENT_SZ 6 +#endif +#define MMS_CORE_VERSION 0xE1 +#define MMS_TSP_REVISION 0xF0 +#define MMS_HW_REVISION 0xF1 +#define MMS_COMPAT_GROUP 0xF2 +#define MMS_FW_VERSION 0xE3 /*core 5.3: F3->E3*/ + +enum { + ISP_MODE_FLASH_ERASE = 0x59F3, + ISP_MODE_FLASH_WRITE = 0x62CD, + ISP_MODE_FLASH_READ = 0x6AC9, +}; + +/* each address addresses 4-byte words */ +#define ISP_MAX_FW_SIZE (0x1F00 * 4) +#define ISP_IC_INFO_ADDR 0x1F00 +#define ISP_CAL_DATA_SIZE 256 + +#ifdef CONFIG_SEC_DVFS +#define TOUCH_BOOSTER 1 +#define TOUCH_BOOSTER_OFF_TIME 100 +#if TOUCH_BOOSTER +#include +#endif +#endif + +#ifdef SEC_TSP_FW_UPDATE + +#define WORD_SIZE 4 + +#define ISC_PKT_SIZE 1029 +#define ISC_PKT_DATA_SIZE 1024 +#define ISC_PKT_HEADER_SIZE 3 +#define ISC_PKT_NUM 31 + +#define ISC_ENTER_ISC_CMD 0x5F +#define ISC_ENTER_ISC_DATA 0x01 +#define ISC_CMD 0xAE +#define ISC_ENTER_UPDATE_DATA 0x55 +#define ISC_ENTER_UPDATE_DATA_LEN 9 +#define ISC_DATA_WRITE_SUB_CMD 0xF1 +#define ISC_EXIT_ISC_SUB_CMD 0x0F +#define ISC_EXIT_ISC_SUB_CMD2 0xF0 +#define ISC_CHECK_STATUS_CMD 0xAF +#define ISC_CONFIRM_CRC 0x03 +#define ISC_DEFAULT_CRC 0xFFFF + +#endif + +#ifdef SEC_TSP_FACTORY_TEST +#ifdef CONFIG_TOUCHSCREEN_MMS144 +#define TX_NUM 25 +#define RX_NUM 14 +#define NODE_NUM 350 /* 26x14 */ +#elif defined(CONFIG_TOUCHSCREEN_MMS136) +#define TX_NUM 20 +#define RX_NUM 12 +#define NODE_NUM 240 /* 20x12 */ +#endif + +/* self diagnostic */ +#define ADDR_CH_NUM 0x0B +#define ADDR_UNIV_CMD 0xA0 +#define CMD_ENTER_TEST 0x40 +#define CMD_EXIT_TEST 0x4F +#define CMD_CM_DELTA 0x41 +#define CMD_GET_DELTA 0x42 +#define CMD_CM_ABS 0X43 +#define CMD_GET_ABS 0X44 +#define CMD_CM_JITTER 0X45 +#define CMD_GET_JITTER 0X46 +#define CMD_GET_KEY_DELTA 0x4A +#define CMD_GET_KEY_ABS 0x4B +#define CMD_CM_KEY_JITTER 0x4C + +#define CMD_GET_INTEN 0x70 +#define CMD_GET_INTEN_KEY 0x71 +#define CMD_GET_REFER 0x72 +#define CMD_GET_REFER_KEY 0x73 +#define CMD_RESULT_SZ 0XAE +#define CMD_RESULT 0XAF + +/* VSC(Vender Specific Command) */ +#define MMS_VSC_CMD 0xB0 /* vendor specific command */ +#define MMS_VSC_MODE 0x1A /* mode of vendor */ + +#define MMS_VSC_CMD_ENTER 0X01 +#define MMS_VSC_CMD_CM_DELTA 0X02 +#define MMS_VSC_CMD_CM_ABS 0X03 +#define MMS_VSC_CMD_EXIT 0X05 +#define MMS_VSC_CMD_INTENSITY 0X04 +#define MMS_VSC_CMD_RAW 0X06 +#define MMS_VSC_CMD_REFER 0X07 + +#ifdef SEC_TKEY_FACTORY_TEST +#define VSC_INTENSITY_TK 0x14 +#define VSC_RAW_TK 0x16 +#define VSC_THRESHOLD_TK 0x18 +#endif + +#define TSP_CMD_STR_LEN 32 +#define TSP_CMD_RESULT_STR_LEN 512 +#define TSP_CMD_PARAM_NUM 8 +#endif /* SEC_TSP_FACTORY_TEST */ + +#define ISC_DL_MODE 0 + +#if ISC_DL_MODE /* ISC_DL_MODE start */ + +/* + * Default configuration of ISC mode + */ +#define DEFAULT_SLAVE_ADDR 0x48 + +#define SECTION_NUM 3 +#define SECTION_NAME_LEN 5 + +#define PAGE_HEADER 3 +#define PAGE_DATA 1024 +#define PAGE_TAIL 2 +#define PACKET_SIZE (PAGE_HEADER + PAGE_DATA + PAGE_TAIL) +#define TS_WRITE_REGS_LEN 1030 + +#define TIMEOUT_CNT 10 +#define STRING_BUF_LEN 100 + + +/* State Registers */ +#define MIP_ADDR_INPUT_INFORMATION 0x01 + +#define ISC_ADDR_VERSION 0xE1 +#define ISC_ADDR_SECTION_PAGE_INFO 0xE5 + +/* Config Update Commands */ +#define ISC_CMD_ENTER_ISC 0x5F +#define ISC_CMD_ENTER_ISC_PARA1 0x01 +#define ISC_CMD_UPDATE_MODE 0xAE +#define ISC_SUBCMD_ENTER_UPDATE 0x55 +#define ISC_SUBCMD_DATA_WRITE 0XF1 +#define ISC_SUBCMD_LEAVE_UPDATE_PARA1 0x0F +#define ISC_SUBCMD_LEAVE_UPDATE_PARA2 0xF0 +#define ISC_CMD_CONFIRM_STATUS 0xAF + +#define ISC_STATUS_UPDATE_MODE 0x01 +#define ISC_STATUS_CRC_CHECK_SUCCESS 0x03 + +#define ISC_CHAR_2_BCD(num) (((num/10)<<4) + (num%10)) +#define ISC_MAX(x, y) (((x) > (y)) ? (x) : (y)) + +static const char section_name[SECTION_NUM][SECTION_NAME_LEN] = { + "BOOT", "CORE", "CONF" +}; + +static const unsigned char crc0_buf[31] = { + 0x1D, 0x2C, 0x05, 0x34, 0x95, 0xA4, 0x8D, 0xBC, + 0x59, 0x68, 0x41, 0x70, 0xD1, 0xE0, 0xC9, 0xF8, + 0x3F, 0x0E, 0x27, 0x16, 0xB7, 0x86, 0xAF, 0x9E, + 0x7B, 0x4A, 0x63, 0x52, 0xF3, 0xC2, 0xEB +}; + +static const unsigned char crc1_buf[31] = { + 0x1E, 0x9C, 0xDF, 0x5D, 0x76, 0xF4, 0xB7, 0x35, + 0x2A, 0xA8, 0xEB, 0x69, 0x42, 0xC0, 0x83, 0x01, + 0x04, 0x86, 0xC5, 0x47, 0x6C, 0xEE, 0xAD, 0x2F, + 0x30, 0xB2, 0xF1, 0x73, 0x58, 0xDA, 0x99 +}; + +enum { + ISC_NONE = -1, + ISC_SUCCESS = 0, + ISC_FILE_OPEN_ERROR, + ISC_FILE_CLOSE_ERROR, + ISC_FILE_FORMAT_ERROR, + ISC_WRITE_BUFFER_ERROR, + ISC_I2C_ERROR, + ISC_UPDATE_MODE_ENTER_ERROR, + ISC_CRC_ERROR, + ISC_VALIDATION_ERROR, + ISC_COMPATIVILITY_ERROR, + ISC_UPDATE_SECTION_ERROR, + ISC_SLAVE_ERASE_ERROR, + ISC_SLAVE_DOWNLOAD_ERROR, + ISC_DOWNLOAD_WHEN_SLAVE_IS_UPDATED_ERROR, + ISC_INITIAL_PACKET_ERROR, + ISC_NO_NEED_UPDATE_ERROR, + ISC_LIMIT +}; + +enum { + EC_NONE = -1, + EC_DEPRECATED = 0, + EC_BOOTLOADER_RUNNING = 1, + EC_BOOT_ON_SUCCEEDED = 2, + EC_ERASE_END_MARKER_ON_SLAVE_FINISHED = 3, + EC_SLAVE_DOWNLOAD_STARTS = 4, + EC_SLAVE_DOWNLOAD_FINISHED = 5, + EC_2CHIP_HANDSHAKE_FAILED = 0x0E, + EC_ESD_PATTERN_CHECKED = 0x0F, + EC_LIMIT +}; + +struct tISCFWInfo_t { + unsigned char version; + unsigned char compatible_version; + unsigned char start_addr; + unsigned char end_addr; +}; + +static struct tISCFWInfo_t mbin_info[SECTION_NUM]; +static struct tISCFWInfo_t ts_info[SECTION_NUM]; +static bool section_update_flag[SECTION_NUM]; + +const struct firmware *fw_mbin[SECTION_NUM]; + +static unsigned char g_wr_buf[1024 + 3 + 2]; +#endif + +enum { + SEC_NONE = -1, + SEC_BOOTLOADER = 0, + SEC_CORE, + SEC_CONFIG, + SEC_LIMIT +}; + +int touch_is_pressed; +EXPORT_SYMBOL(touch_is_pressed); + +#define NUM_OF_KEY 4 + +enum fw_flash_mode { + ISP_FLASH, + ISC_FLASH, +}; + +enum { + BUILT_IN = 0, + UMS, +}; + +struct mms_ts_info { + struct i2c_client *client; + struct input_dev *input_dev; + char phys[32]; + + int max_x; + int max_y; + + bool invert_x; + bool invert_y; + int irq; + + struct mms_ts_platform_data *pdata; + + char *fw_name; + struct early_suspend early_suspend; +#ifdef CONFIG_SEC_DVFS +#if TOUCH_BOOSTER + struct delayed_work work_dvfs_off; + bool dvfs_lock_status; + struct mutex dvfs_lock; +#endif +#endif + + /* protects the enabled flag */ + struct mutex lock; + bool enabled; + +#ifdef SEC_TKEY_FACTORY_TEST + struct device *dev_tk; + bool *key_pressed; +#endif + enum fw_flash_mode fw_flash_mode; + + void (*register_cb)(struct tsp_callbacks *); + struct tsp_callbacks callbacks; + + bool ta_status; + bool noise_mode; + bool use_surface_touch; + bool use_touchkey; + unsigned char keycode[NUM_OF_KEY]; + +#if defined(SEC_TSP_DEBUG) || defined(SEC_TSP_VERBOSE_DEBUG) + unsigned char finger_state[MAX_FINGERS]; +#endif + +#if defined(SEC_TSP_FW_UPDATE) + u8 fw_update_state; +#endif + u8 fw_boot_ver; + u8 fw_core_ver; + u8 fw_ic_ver; + u8 palm_status; +#if defined(SEC_TSP_FACTORY_TEST) + struct list_head cmd_list_head; + u8 cmd_state; + char cmd[TSP_CMD_STR_LEN]; + int cmd_param[TSP_CMD_PARAM_NUM]; + char cmd_result[TSP_CMD_RESULT_STR_LEN]; + struct mutex cmd_lock; + bool cmd_is_running; + + unsigned int reference[NODE_NUM]; + unsigned int raw[NODE_NUM]; /* CM_ABS */ + unsigned int inspection[NODE_NUM];/* CM_DELTA */ + unsigned int intensity[NODE_NUM]; + bool ft_flag; +#endif /* SEC_TSP_FACTORY_TEST */ +#ifdef CONFIG_LEDS_CLASS + struct led_classdev leds; + bool tkey_led_reserved; +#endif +}; + +struct mms_fw_image { + __le32 hdr_len; + __le32 data_len; + __le32 fw_ver; + __le32 hdr_ver; + u8 data[0]; +} __packed; + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void mms_ts_early_suspend(struct early_suspend *h); +static void mms_ts_late_resume(struct early_suspend *h); +#endif + +#if defined(SEC_TSP_FACTORY_TEST) +#define TSP_CMD(name, func) .cmd_name = name, .cmd_func = func + +struct tsp_cmd { + struct list_head list; + const char *cmd_name; + void (*cmd_func)(void *device_data); +}; + +static void fw_update(void *device_data); +static void get_fw_ver_bin(void *device_data); +static void get_fw_ver_ic(void *device_data); +static void get_config_ver(void *device_data); +static void get_threshold(void *device_data); +static void module_off_master(void *device_data); +static void module_on_master(void *device_data); +static void get_chip_vendor(void *device_data); +static void get_chip_name(void *device_data); +static void get_reference(void *device_data); +static void get_cm_abs(void *device_data); +static void get_cm_delta(void *device_data); +static void get_intensity(void *device_data); +static void get_x_num(void *device_data); +static void get_y_num(void *device_data); +static void run_reference_read(void *device_data); +static void run_cm_abs_read(void *device_data); +static void run_cm_delta_read(void *device_data); +static void run_intensity_read(void *device_data); +static void not_support_cmd(void *device_data); + +struct tsp_cmd tsp_cmds[] = { + {TSP_CMD("fw_update", fw_update),}, + {TSP_CMD("get_fw_ver_bin", get_fw_ver_bin),}, + {TSP_CMD("get_fw_ver_ic", get_fw_ver_ic),}, + {TSP_CMD("get_config_ver", get_config_ver),}, + {TSP_CMD("get_threshold", get_threshold),}, + {TSP_CMD("module_off_master", module_off_master),}, + {TSP_CMD("module_on_master", module_on_master),}, + {TSP_CMD("module_off_slave", not_support_cmd),}, + {TSP_CMD("module_on_slave", not_support_cmd),}, + {TSP_CMD("get_chip_vendor", get_chip_vendor),}, + {TSP_CMD("get_chip_name", get_chip_name),}, + {TSP_CMD("get_x_num", get_x_num),}, + {TSP_CMD("get_y_num", get_y_num),}, + {TSP_CMD("get_reference", get_reference),}, + {TSP_CMD("get_cm_abs", get_cm_abs),}, + {TSP_CMD("get_cm_delta", get_cm_delta),}, + {TSP_CMD("get_intensity", get_intensity),}, + {TSP_CMD("run_reference_read", run_reference_read),}, + {TSP_CMD("run_cm_abs_read", run_cm_abs_read),}, + {TSP_CMD("run_cm_delta_read", run_cm_delta_read),}, + {TSP_CMD("run_intensity_read", run_intensity_read),}, + {TSP_CMD("not_support_cmd", not_support_cmd),}, +}; +#endif + +#ifdef CONFIG_LEDS_CLASS +static void msm_tkey_led_set(struct led_classdev *led_cdev, + enum led_brightness value) +{ + bool tkey_led_on; + + struct mms_ts_info *info = + container_of(led_cdev, struct mms_ts_info, leds); + + if (value) + tkey_led_on = true; + else + tkey_led_on = false; + + if (info->enabled) { + info->tkey_led_reserved = false; + info->pdata->tkey_led_vdd_on(tkey_led_on); + } else { + if (value != LED_OFF) + info->tkey_led_reserved = true; + } +} +#endif + +#ifdef CONFIG_SEC_DVFS +#if TOUCH_BOOSTER +static void set_dvfs_off(struct work_struct *work) +{ + struct mms_ts_info *info = container_of(work, + struct mms_ts_info, work_dvfs_off.work); + mutex_lock(&info->dvfs_lock); + set_freq_limit(DVFS_TOUCH_ID, -1); + info->dvfs_lock_status = false; + mutex_unlock(&info->dvfs_lock); +} + +static void set_dvfs_lock(struct mms_ts_info *info, uint32_t on) +{ + int ret = 0; + + mutex_lock(&info->dvfs_lock); + + if (on == 0) { + if (info->dvfs_lock_status) { + schedule_delayed_work(&info->work_dvfs_off, + msecs_to_jiffies(TOUCH_BOOSTER_OFF_TIME)); + } + } else if (on == 1) { + cancel_delayed_work(&info->work_dvfs_off); + if (!info->dvfs_lock_status) { + ret = set_freq_limit(DVFS_TOUCH_ID, MIN_TOUCH_LIMIT); + if (ret < 0) + dev_err(&info->client->dev, "%s: cpu lock failed(%d)\n", + __func__, ret); + info->dvfs_lock_status = true; + } + } else if (on == 2) { + cancel_delayed_work(&info->work_dvfs_off); + schedule_work(&info->work_dvfs_off.work); + } + + mutex_unlock(&info->dvfs_lock); +} +#endif +#endif + +static inline void mms_pwr_on_reset(struct mms_ts_info *info) +{ + struct i2c_adapter *adapter = to_i2c_adapter(info->client->dev.parent); + + if (!info->pdata->mux_fw_flash) { + dev_err(&info->client->dev, "missing platform data, can't do power-on-reset\n"); + return; + } + + i2c_lock_adapter(adapter); + info->pdata->mux_fw_flash(true); + + info->pdata->vdd_on(0); + gpio_direction_output(info->pdata->gpio_sda, 1); + gpio_direction_output(info->pdata->gpio_scl, 1); + gpio_direction_output(info->pdata->gpio_resetb, 1); + msleep(50); + info->pdata->vdd_on(1); + msleep(50); + + info->pdata->mux_fw_flash(false); + i2c_unlock_adapter(adapter); + + /* TODO: Seems long enough for the firmware to boot. + * Find the right value */ + msleep(250); +} +static void release_all_fingers(struct mms_ts_info *info) +{ + struct i2c_client *client = info->client; + + int i; + + dev_dbg(&info->client->dev, "%s\n", __func__); + + for (i = 0; i < MAX_FINGERS; i++) { +#if defined(SEC_TSP_DEBUG) || defined(SEC_TSP_VERBOSE_DEBUG) + if (info->finger_state[i] == 1) + dev_notice(&client->dev, "finger %d up(force)\n", i); +#endif + info->finger_state[i] = 0; + input_mt_slot(info->input_dev, i); + input_mt_report_slot_state(info->input_dev, MT_TOOL_FINGER, + false); + } + input_sync(info->input_dev); +#ifdef CONFIG_SEC_DVFS +#if TOUCH_BOOSTER + set_dvfs_lock(info, 2); + dev_info(&client->dev, "dvfs_lock free.\n"); +#endif +#endif +} + +static void mms_set_noise_mode(struct mms_ts_info *info) +{ + struct i2c_client *client = info->client; + + if (!(info->noise_mode && info->enabled)) + return; + dev_notice(&client->dev, "%s\n", __func__); + + if (info->ta_status) { + dev_notice(&client->dev, "noise_mode & TA connect!!!\n"); + i2c_smbus_write_byte_data(info->client, 0x30, 0x1); + } else { + dev_notice(&client->dev, "noise_mode & TA disconnect!!!\n"); + i2c_smbus_write_byte_data(info->client, 0x30, 0x2); + info->noise_mode = 0; + } +} + +static void reset_mms_ts(struct mms_ts_info *info) +{ + struct i2c_client *client = info->client; + + if (info->enabled == false) + return; + + dev_notice(&client->dev, "%s++\n", __func__); + disable_irq_nosync(info->irq); + info->enabled = false; + touch_is_pressed = 0; + + release_all_fingers(info); + + mms_pwr_on_reset(info); + enable_irq(info->irq); + info->enabled = true; + + if (info->ta_status) { + dev_notice(&client->dev, "TA connect!!!\n"); + i2c_smbus_write_byte_data(info->client, 0x33, 0x1); + } else { + dev_notice(&client->dev, "TA disconnect!!!\n"); + i2c_smbus_write_byte_data(info->client, 0x33, 0x2); + mms_set_noise_mode(info); + } + + dev_notice(&client->dev, "%s--\n", __func__); +} + +static void melfas_ta_cb(struct tsp_callbacks *cb, bool ta_status) +{ + struct mms_ts_info *info = + container_of(cb, struct mms_ts_info, callbacks); + struct i2c_client *client = info->client; + + dev_notice(&client->dev, "%s\n", __func__); + + info->ta_status = ta_status; + + if (info->enabled) { + if (info->ta_status) { + dev_notice(&client->dev, "TA connect!!!\n"); + i2c_smbus_write_byte_data(info->client, 0x33, 0x1); + } else { + dev_notice(&client->dev, "TA disconnect!!!\n"); + i2c_smbus_write_byte_data(info->client, 0x33, 0x2); + mms_set_noise_mode(info); + } + } +} + +static irqreturn_t mms_ts_interrupt(int irq, void *dev_id) +{ + struct mms_ts_info *info = dev_id; + struct i2c_client *client = info->client; + u8 buf[MAX_FINGERS*FINGER_EVENT_SZ] = { 0 }; + int ret; + int i; + int sz; + u8 reg = MMS_INPUT_EVENT0; + struct i2c_msg msg[] = { + { + .addr = client->addr, + .flags = 0, + .buf = ®, + .len = 1, + }, { + .addr = client->addr, + .flags = I2C_M_RD, + .buf = buf, + }, + }; + + sz = i2c_smbus_read_byte_data(client, MMS_INPUT_EVENT_PKT_SZ); + if (sz < 0) { + pr_err("%s bytes=%d\n", __func__, sz); + for (i = 0; i < 50; i++) { + sz = i2c_smbus_read_byte_data(client, + MMS_INPUT_EVENT_PKT_SZ); + if (sz > 0) + break; + } + + if (i == 50) { + pr_err("i2c failed... reset!!\n"); + reset_mms_ts(info); + goto out; + } + } + /* BUG_ON(sz > MAX_FINGERS*FINGER_EVENT_SZ); */ + if (sz == 0) + goto out; + + if (sz > MAX_FINGERS*FINGER_EVENT_SZ) { + pr_err("abnormal data inputed.\n"); + goto out; + } + + msg[1].len = sz; + ret = i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg)); + if (ret != ARRAY_SIZE(msg)) { + pr_err("failed to read %d bytes of touch data (%d)\n", + sz, ret); + goto out; + } + +#if defined(VERBOSE_DEBUG) + print_hex_dump(KERN_DEBUG, "mms_ts raw: ", + DUMP_PREFIX_OFFSET, 32, 1, buf, sz, false); + +#endif + if (buf[0] == 0x0F) { /* ESD */ + pr_debug("ESD DETECT.... reset!!\n"); + reset_mms_ts(info); + goto out; + } + + if (buf[0] == 0x0E) { /* NOISE MODE */ + pr_debug("noise mode enter!!\n"); + info->noise_mode = 1 ; + mms_set_noise_mode(info); + goto out; + } + + for (i = 0; i < sz; i += FINGER_EVENT_SZ) { + u8 *tmp = &buf[i]; + int id = (tmp[0] & 0xf) - 1; + int x = tmp[2] | ((tmp[1] & 0xf) << 8); + int y = tmp[3] | (((tmp[1] >> 4) & 0xf) << 8); + int angle = (tmp[5] >= 127) ? (-(256 - tmp[5])) : tmp[5]; + int palm = (buf[0] & 0x10) >> 4; + int type = (tmp[0] & 0x60) >> 5; + int action = (tmp[0] & 0x80) >> 7; + + if (info->use_surface_touch) { + if (palm) { + if (info->palm_status == 3) { + info->palm_status = 1; + } else { + info->palm_status = 3; + palm = 3; + } + } else { + if (info->palm_status == 2) { + info->palm_status = 0; + } else { + info->palm_status = 2; + palm = 2; + } + } + } + + if (info->use_touchkey && type == 0x02) { + input_report_key(info->input_dev, + info->keycode[id], action); +#ifdef SEC_TSP_DEBUG + pr_info("touchkey : keycode=%d action=%d\n", + info->keycode[id], action); +#else + pr_info("touchkey action=%d\n", action); +#endif +#ifdef SEC_TKEY_FACTORY_TEST + info->key_pressed[id] = action; +#endif + } else { + + if (info->invert_x) { + x = info->max_x - x; + if (x < 0) + x = 0; + } + if (info->invert_y) { + y = info->max_y - y; + if (y < 0) + y = 0; + } + if (id >= MAX_FINGERS) { + pr_err("finger id error [%d]\n", id); + reset_mms_ts(info); + goto out; + } + + if ((tmp[0] & 0x80) == 0) { +#if defined(SEC_TSP_DEBUG) + pr_info("fid[%d]: x=%d y=%d p=%d w=%d ", + id, x, y, tmp[5], tmp[4]); + if (info->use_surface_touch) + pr_cont("major=%d minor=%d angle=%d palm=%d\n", + tmp[6], tmp[7], angle, palm); + else + pr_cont("\n"); +#else + pr_info("finger [%d] up\n", id); +#endif + input_mt_slot(info->input_dev, id); + input_mt_report_slot_state(info->input_dev, + MT_TOOL_FINGER, false); + +#if defined(SEC_TSP_DEBUG) || defined(SEC_TSP_VERBOSE_DEBUG) + info->finger_state[id] = 0; +#endif + continue; + } + + //input_report_key(info->input_dev, BTN_TOUCH, 1); + + input_mt_slot(info->input_dev, id); + input_mt_report_slot_state(info->input_dev, + MT_TOOL_FINGER, true); + #if 1 + input_report_abs(info->input_dev, + ABS_MT_WIDTH_MAJOR, tmp[4]); + #endif + input_report_abs(info->input_dev, + ABS_MT_POSITION_X, x); + input_report_abs(info->input_dev, + ABS_MT_POSITION_Y, y); + #if 1 + + if (info->use_surface_touch) { + input_report_abs(info->input_dev, + ABS_MT_TOUCH_MAJOR, tmp[6]); + input_report_abs(info->input_dev, + ABS_MT_TOUCH_MINOR, tmp[7]); + +#if 0 /* SPRD's test code */ + input_report_abs(info->input_dev, + ABS_MT_ANGLE, angle); + input_report_abs(info->input_dev, + ABS_MT_PALM, palm); +#endif + } + #endif + //input_mt_sync(info->input_dev); + +#if defined(SEC_TSP_DEBUG) + if (info->finger_state[id] == 0) { + info->finger_state[id] = 1; + pr_info("finger id[%d]: x=%d y=%d p=%d w=%d ", + id, x, y, tmp[5], tmp[4]); + + if (info->use_surface_touch) + pr_cont("major=%d minor=%d angle=%d palm=%d\n", + tmp[6], tmp[7], angle, palm); + else + pr_cont("\n"); + } +#else + if (info->finger_state[id] == 0) { + info->finger_state[id] = 1; + pr_info("finger [%d] down\n", id); + } +#endif + } + } + + input_sync(info->input_dev); + touch_is_pressed = 0; + + for (i = 0; i < MAX_FINGERS; i++) { + if (info->finger_state[i] == 1) + touch_is_pressed++; + } + +#ifdef CONFIG_SEC_DVFS +#if TOUCH_BOOSTER + set_dvfs_lock(info, !!touch_is_pressed); +#endif +#endif + +out: + return IRQ_HANDLED; +} + +#if ISC_DL_MODE +static int mms100_i2c_read(struct i2c_client *client, + u16 addr, u16 length, u8 *value) +{ + struct i2c_adapter *adapter = client->adapter; + struct i2c_msg msg; + int ret = -1; + + msg.addr = client->addr; + msg.flags = 0x00; + msg.len = 1; + msg.buf = (u8 *) &addr; + + ret = i2c_transfer(adapter, &msg, 1); + + if (ret >= 0) { + msg.addr = client->addr; + msg.flags = I2C_M_RD; + msg.len = length; + msg.buf = (u8 *) value; + + ret = i2c_transfer(adapter, &msg, 1); + } + + if (ret < 0) + dev_err(&client->dev, "I2C read error : [%d]\n", ret); + + return ret; +} + + +static int mms100_reset(struct mms_ts_info *info) +{ + info->pdata->vdd_on(0); + msleep(30); + info->pdata->vdd_on(1); + msleep(300); + + return ISC_SUCCESS; +} +/* +static int mms100_check_operating_mode(struct i2c_client *_client, + const int _error_code) +{ + int ret; + unsigned char rd_buf = 0x00; + unsigned char count = 0; + + if(_client == NULL) + pr_err("[TSP ISC] _client is null\n"); + + ret = mms100_i2c_read(_client, ISC_ADDR_VERSION, 1, &rd_buf); + + if (ret<0) { + pr_info("[TSP ISC] %s,%d: i2c read fail[%d]\n", + __func__, __LINE__, ret); + return _error_code; + } + + return ISC_SUCCESS; +} +*/ +static int mms100_get_version_info(struct i2c_client *_client) +{ + int i, ret; + unsigned char rd_buf[8]; + + /* config version brust read (core, private, public) */ + ret = mms100_i2c_read(_client, ISC_ADDR_VERSION, 3, rd_buf); + if (ret < 0) { + dev_err(&_client->dev, "[TSP ISC] %s,%d: i2c read fail[%d]\n", + __func__, __LINE__, ret); + return ISC_I2C_ERROR; + } + + for (i = 0; i < SECTION_NUM; i++) + ts_info[i].version = rd_buf[i]; + + ts_info[SEC_CORE].compatible_version = + ts_info[SEC_BOOTLOADER].version; + ts_info[SEC_CONFIG].compatible_version = + ts_info[SEC_CORE].version; + + ret = mms100_i2c_read(_client, ISC_ADDR_SECTION_PAGE_INFO, 8, rd_buf); + if (ret < 0) { + dev_err(&_client->dev, "[TSP ISC] %s,%d: i2c read fail[%d]\n", + __func__, __LINE__, ret); + return ISC_I2C_ERROR; + } + + for (i = 0; i < SECTION_NUM; i++) { + ts_info[i].start_addr = rd_buf[i]; + ts_info[i].end_addr = rd_buf[i + SECTION_NUM + 1]; + } + + for (i = 0; i < SECTION_NUM; i++) { + dev_info(&_client->dev, "TS : Section(%d) version: 0x%02X\n", + i, ts_info[i].version); + dev_info(&_client->dev, "TS : Section(%d) Start Address: 0x%02X\n", + i, ts_info[i].start_addr); + dev_info(&_client->dev, "TS : Section(%d) End Address: 0x%02X\n", + i, ts_info[i].end_addr); + dev_info(&_client->dev, "TS : Section(%d) Compatibility: 0x%02X\n", + i, ts_info[i].compatible_version); + } + + return ISC_SUCCESS; +} + +static int mms100_seek_section_info(struct i2c_client *_client) +{ + int i; + char str_buf[STRING_BUF_LEN]; + char name_buf[SECTION_NAME_LEN]; + int version; + int page_num; + + const unsigned char *buf; + int next_ptr; + + for (i = 0; i < SECTION_NUM; i++) { + if (fw_mbin[i] == NULL) { + buf = NULL; + dev_err(&_client->dev, + "[TSP ISC] fw_mbin[%d]->data is NULL\n", i); + } else { + buf = fw_mbin[i]->data; + } + + if (buf == NULL) { + mbin_info[i].version = ts_info[i].version; + mbin_info[i].compatible_version = + ts_info[i].compatible_version; + mbin_info[i].start_addr = ts_info[i].start_addr; + mbin_info[i].end_addr = ts_info[i].end_addr; + } else { + next_ptr = 0; + + do { + sscanf(buf + next_ptr, "%s", str_buf); + next_ptr += strlen(str_buf) + 1; + } while (!strstr(str_buf, "SECTION_NAME")); + + sscanf(buf + next_ptr, "%s%s", str_buf, name_buf); + + if (strncmp(section_name[i], name_buf, + SECTION_NAME_LEN)) + return ISC_FILE_FORMAT_ERROR; + + do { + sscanf(buf + next_ptr, "%s", str_buf); + next_ptr += strlen(str_buf) + 1; + } while (!strstr(str_buf, "SECTION_VERSION")); + + sscanf(buf + next_ptr, "%s%d", str_buf, &version); + mbin_info[i].version = ISC_CHAR_2_BCD(version); + + do { + sscanf(buf + next_ptr, "%s", str_buf); + next_ptr += strlen(str_buf) + 1; + } while (!strstr(str_buf, "START_PAGE_ADDR")); + + sscanf(buf + next_ptr, "%s%d", str_buf, &page_num); + mbin_info[i].start_addr = page_num; + + do { + sscanf(buf + next_ptr, "%s", str_buf); + next_ptr += strlen(str_buf) + 1; + } while (!strstr(str_buf, "END_PAGE_ADDR")); + + sscanf(buf + next_ptr, "%s%d", str_buf, &page_num); + mbin_info[i].end_addr = page_num; + + do { + sscanf(buf + next_ptr, "%s", str_buf); + next_ptr += strlen(str_buf) + 1; + } while (!strstr(str_buf, "COMPATIBLE_VERSION")); + + sscanf(buf + next_ptr, "%s%d", str_buf, &version); + mbin_info[i].compatible_version = + ISC_CHAR_2_BCD(version); + + do { + sscanf(buf + next_ptr, "%s", str_buf); + next_ptr += strlen(str_buf) + 1; + } while (!strstr(str_buf, "[Binary]")); + + if (mbin_info[i].version == 0xFF) + return ISC_FILE_FORMAT_ERROR; + } + } + + for (i = 0; i < SECTION_NUM; i++) { + dev_info(&_client->dev, "[TSP ISC] MBin : Section(%d) Version: 0x%02X\n", + i, mbin_info[i].version); + dev_info(&_client->dev, "[TSP ISC] MBin : Section(%d) Start Address: 0x%02X\n", + i, mbin_info[i].start_addr); + dev_info(&_client->dev, "[TSP ISC] MBin : Section(%d) End Address: 0x%02X\n", + i, mbin_info[i].end_addr); + dev_info(&_client->dev, "[TSP ISC] MBin : Section(%d) Compatibility: 0x%02X\n", + i, mbin_info[i].compatible_version); + } + + return ISC_SUCCESS; +} + +static int mms100_compare_version_info(struct i2c_client *_client) +{ + int i, ret; + unsigned char expected_compatibility[SECTION_NUM]; + + if (mms100_get_version_info(_client) != ISC_SUCCESS) + return ISC_I2C_ERROR; + + ret = mms100_seek_section_info(_client); + + /* Check update areas , 0 : bootloader 1: core 2: private 3: public */ + for (i = 0; i < SECTION_NUM; i++) { + if ((mbin_info[i].version == 0) || + (mbin_info[i].version != ts_info[i].version)) { + section_update_flag[i] = true; + dev_info(&_client->dev, + "[TSP ISC] [%d] section will be updated!\n", i); + } + } + section_update_flag[0] = false; + section_update_flag[1] = false; + dev_info(&_client->dev, "[TSP ISC] [%d] [%d] [%d]", + section_update_flag[0], section_update_flag[1], + section_update_flag[2]); + + if (section_update_flag[SEC_BOOTLOADER]) { + expected_compatibility[SEC_CORE] = + mbin_info[SEC_BOOTLOADER].version; + } else { + expected_compatibility[SEC_CORE] = + ts_info[SEC_BOOTLOADER].version; + } + + if (section_update_flag[SEC_CORE]) { + expected_compatibility[SEC_CONFIG] = + mbin_info[SEC_CORE].version; + } else { + expected_compatibility[SEC_CONFIG] = + ts_info[SEC_CORE].version; + } + + for (i = SEC_CORE; i < SEC_CONFIG; i++) { + if (section_update_flag[i]) { + dev_info(&_client->dev, "[TSP ISC] section_update_flag(%d), 0x%02x, 0x%02x\n", + i, expected_compatibility[i], + mbin_info[i].compatible_version); + + if (expected_compatibility[i] != + mbin_info[i].compatible_version) + return ISC_COMPATIVILITY_ERROR; + } else { + dev_info(&_client->dev, "[TSP ISC] !section_update_flag(%d), 0x%02x, 0x%02x\n", + i, expected_compatibility[i], + ts_info[i].compatible_version); + if (expected_compatibility[i] != + ts_info[i].compatible_version) + return ISC_COMPATIVILITY_ERROR; + } + } + return ISC_SUCCESS; +} + +static int mms100_enter_ISC_mode(struct i2c_client *_client) +{ + int ret; + unsigned char wr_buf[2]; + + dev_info(&_client->dev, "[TSP ISC] %s\n", __func__); + + wr_buf[0] = ISC_CMD_ENTER_ISC; + wr_buf[1] = ISC_CMD_ENTER_ISC_PARA1; + + ret = i2c_master_send(_client, wr_buf, 2); + + if (ret < 0) { + dev_err(&_client->dev, "[TSP ISC] %s,%d: i2c write fail[%d]\n", + __func__, __LINE__, ret); + return ISC_I2C_ERROR; + } + + msleep(50); + + return ISC_SUCCESS; +} + +static int mms100_enter_config_update(struct i2c_client *_client) +{ + int ret; + unsigned char wr_buf[10] = {0,}; + unsigned char rd_buf; + + wr_buf[0] = ISC_CMD_UPDATE_MODE; + wr_buf[1] = ISC_SUBCMD_ENTER_UPDATE; + + ret = i2c_master_send(_client, wr_buf, 10); + + if (ret < 0) { + dev_err(&_client->dev, "[TSP ISC] %s,%d: i2c write fail[%d]\n", + __func__, __LINE__, ret); + return ISC_I2C_ERROR; + } + + ret = mms100_i2c_read(_client, ISC_CMD_CONFIRM_STATUS, 1, &rd_buf); + if (ret < 0) { + dev_err(&_client->dev, "[TSP ISC] %s,%d: i2c read fail[%d]\n", + __func__, __LINE__, ret); + return ISC_I2C_ERROR; + } + + if (rd_buf != ISC_STATUS_UPDATE_MODE) + return ISC_UPDATE_MODE_ENTER_ERROR; + + dev_info(&_client->dev, "[TSP ISC] End mms100_enter_config_update()\n"); + + return ISC_SUCCESS; +} + +static int mms100_ISC_clear_page(struct i2c_client *_client, + unsigned char _page_addr) +{ + int ret; + unsigned char rd_buf; + + memset(&g_wr_buf[3], 0xFF, PAGE_DATA); + + g_wr_buf[0] = ISC_CMD_UPDATE_MODE; /* command */ + g_wr_buf[1] = ISC_SUBCMD_DATA_WRITE; /* sub_command */ + g_wr_buf[2] = _page_addr; + + g_wr_buf[PAGE_HEADER + PAGE_DATA] = crc0_buf[_page_addr]; + g_wr_buf[PAGE_HEADER + PAGE_DATA + 1] = crc1_buf[_page_addr]; + + ret = i2c_master_send(_client, g_wr_buf, PACKET_SIZE); + + if (ret < 0) { + dev_err(&_client->dev, "[TSP ISC] %s,%d: i2c write fail[%d]\n", + __func__, __LINE__, ret); + return ISC_I2C_ERROR; + } + + ret = mms100_i2c_read(_client, ISC_CMD_CONFIRM_STATUS, 1, &rd_buf); + + if (ret < 0) { + dev_err(&_client->dev, "[TSP ISC] %s,%d: i2c read fail[%d]\n", + __func__, __LINE__, ret); + return ISC_I2C_ERROR; + } + + if (rd_buf != ISC_STATUS_CRC_CHECK_SUCCESS) + return ISC_UPDATE_MODE_ENTER_ERROR; + + dev_info(&_client->dev, "[TSP ISC] End mms100_ISC_clear_page()\n"); + return ISC_SUCCESS; + +} + +static int mms100_ISC_clear_validate_markers(struct i2c_client *_client) +{ + int ret_msg; + int i, j; + bool is_matched_address; + + for (i = SEC_CORE; i <= SEC_CONFIG; i++) { + if (section_update_flag[i]) { + if (ts_info[i].end_addr <= 30 && + ts_info[i].end_addr > 0) { + ret_msg = mms100_ISC_clear_page(_client, + ts_info[i].end_addr); + + if (ret_msg != ISC_SUCCESS) + return ret_msg; + } + } + } + + for (i = SEC_CORE; i <= SEC_CONFIG; i++) { + if (section_update_flag[i]) { + is_matched_address = false; + for (j = SEC_CORE; j <= SEC_CONFIG; j++) { + if (mbin_info[i].end_addr == + ts_info[i].end_addr) { + is_matched_address = true; + break; + } + } + + if (!is_matched_address) { + if (mbin_info[i].end_addr <= 30 && + mbin_info[i].end_addr > 0) { + ret_msg = mms100_ISC_clear_page(_client, + mbin_info[i].end_addr); + + if (ret_msg != ISC_SUCCESS) + return ret_msg; + } + } + } + } + + return ISC_SUCCESS; +} + +static void mms100_calc_crc(unsigned char *crc, + int page_addr, unsigned char *ptr_fw) +{ + int i, j; + + unsigned char ucData; + + unsigned short SeedValue; + unsigned short CRC_check_buf; + unsigned short CRC_send_buf; + unsigned short IN_data; + unsigned short XOR_bit_1; + unsigned short XOR_bit_2; + unsigned short XOR_bit_3; + + CRC_check_buf = 0xFFFF; + SeedValue = (unsigned short)page_addr; + + for (i = 7; i >= 0; i--) { + IN_data = (SeedValue >> i) & 0x01; + XOR_bit_1 = (CRC_check_buf & 0x0001) ^ IN_data; + XOR_bit_2 = XOR_bit_1^(CRC_check_buf >> 11 & 0x01); + XOR_bit_3 = XOR_bit_1^(CRC_check_buf >> 4 & 0x01); + CRC_send_buf = (XOR_bit_1 << 4) | (CRC_check_buf >> 12 & 0x0F); + CRC_send_buf = + (CRC_send_buf << 7) | (XOR_bit_2 << 6) | + (CRC_check_buf >> 5 & 0x3F); + CRC_send_buf = + (CRC_send_buf << 4) | (XOR_bit_3 << 3) | + (CRC_check_buf >> 1 & 0x0007); + CRC_check_buf = CRC_send_buf; + } + + for (j = 0; j < 1024; j++) { + ucData = ptr_fw[j]; + + for (i = 7; i >= 0; i--) { + IN_data = (ucData >> i) & 0x0001; + XOR_bit_1 = (CRC_check_buf & 0x0001) ^ IN_data; + XOR_bit_2 = XOR_bit_1^(CRC_check_buf >> 11 & 0x01); + XOR_bit_3 = XOR_bit_1^(CRC_check_buf >> 4 & 0x01); + CRC_send_buf = + (XOR_bit_1 << 4) | (CRC_check_buf >> 12 & 0x0F); + CRC_send_buf = + (CRC_send_buf << 7) | (XOR_bit_2 << 6) | + (CRC_check_buf >> 5 & 0x3F); + CRC_send_buf = + (CRC_send_buf << 4) | (XOR_bit_3 << 3) | + (CRC_check_buf >> 1 & 0x0007); + CRC_check_buf = CRC_send_buf; + } + } + + crc[0] = (unsigned char)((CRC_check_buf >> 8) & 0xFF); + crc[1] = (unsigned char)((CRC_check_buf >> 0) & 0xFF); +} + +static int mms100_update_section_data(struct i2c_client *_client) +{ + int i, j, ret; + unsigned char rd_buf; + unsigned char crc[2]; + const unsigned char *ptr_fw; + char str_buf[STRING_BUF_LEN]; + int page_addr; + + for (i = 0; i < SECTION_NUM; i++) { + if (section_update_flag[i]) { + dev_info(&_client->dev, + "[TSP ISC] section data i2c flash : [%d]\n", i); + + ptr_fw = fw_mbin[i]->data; + + do { + sscanf(ptr_fw, "%s", str_buf); + ptr_fw += strlen(str_buf) + 1; +/* + pr_info("[TSP ISC] Section[%d] %s", i, str_buf ); +*/ + } while (!strstr(str_buf, "[Binary]")); + ptr_fw += 1; + + for (page_addr = mbin_info[i].start_addr; + page_addr <= mbin_info[i].end_addr; + page_addr++) { + if (page_addr - mbin_info[i].start_addr > 0) + ptr_fw += 1024; + + g_wr_buf[0] = ISC_CMD_UPDATE_MODE; + g_wr_buf[1] = ISC_SUBCMD_DATA_WRITE; + g_wr_buf[2] = (unsigned char)page_addr; + + for (j = 0; j < 1024; j += 4) { + g_wr_buf[3+j] = ptr_fw[j+3]; + g_wr_buf[3+j+1] = ptr_fw[j+2]; + g_wr_buf[3+j+2] = ptr_fw[j+1]; + g_wr_buf[3+j+3] = ptr_fw[j+0]; + } + + mms100_calc_crc(crc, page_addr, &g_wr_buf[3]); + + g_wr_buf[1027] = crc[0]; + g_wr_buf[1028] = crc[1]; +/* + pr_info("[TSP ISC] [%d] DATA %02X %02X %02X %02X CRC %02X %02X ", + page_addr, g_wr_buf[3], g_wr_buf[4], + g_wr_buf[5], g_wr_buf[6] , crc[0] , crc[1] ); +*/ + ret = i2c_master_send(_client, + g_wr_buf, PACKET_SIZE); + if (ret < 0) { + dev_err(&_client->dev, "[TSP ISC] %s,%d: i2c write fail[%d]\n", + __func__, __LINE__, ret); + return ISC_I2C_ERROR; + } + + ret = mms100_i2c_read(_client, + ISC_CMD_CONFIRM_STATUS, 1, &rd_buf); + if (ret < 0) { + dev_err(&_client->dev, "[TSP ISC] %s,%d: i2c read fail[%d]\n", + __func__, __LINE__, ret); + return ISC_I2C_ERROR; + } + + if (rd_buf != ISC_STATUS_CRC_CHECK_SUCCESS) + return ISC_CRC_ERROR; + + section_update_flag[i] = false; + } + } + } + + return ISC_SUCCESS; +} + +static int mms100_open_mbinary(struct mms_ts_info *info) +{ + struct i2c_client *_client = info->client; + int ret = 0; + + /*to do fw update */ + { + ret += request_firmware(&(fw_mbin[0]),\ + "tsp_melfas/BOOT_H.fw", &_client->dev); + ret += request_firmware(&(fw_mbin[1]),\ + "tsp_melfas/CORE_H.fw", &_client->dev); + ret += request_firmware(&(fw_mbin[2]),\ + "tsp_melfas/CONF_H.fw", &_client->dev); + } + + if (!ret) + return ISC_SUCCESS; + else { + dev_err(&_client->dev, "[TSP ISC] request_firmware fail\n"); + return ret; + } +} + +static int mms100_close_mbinary(void) +{ + int i; + + for (i = 0; i < SECTION_NUM; i++) { + if (fw_mbin[i] != NULL) + release_firmware(fw_mbin[i]); + } + return ISC_SUCCESS; +} + +int mms100_ISC_download_mbinary(struct mms_ts_info *info) +{ + struct i2c_client *_client = info->client; + int ret_msg = ISC_NONE; + + dev_info(&_client->dev, "[TSP ISC] %s\n", __func__); + + mms100_reset(info); + +/* ret_msg = mms100_check_operating_mode(_client, EC_BOOT_ON_SUCCEEDED); + if (ret_msg != ISC_SUCCESS) + goto ISC_ERROR_HANDLE; +*/ + ret_msg = mms100_open_mbinary(info); + if (ret_msg != ISC_SUCCESS) + goto ISC_ERROR_HANDLE; + + /* Config version Check */ + ret_msg = mms100_compare_version_info(_client); + if (ret_msg != ISC_SUCCESS) + goto ISC_ERROR_HANDLE; + + ret_msg = mms100_enter_ISC_mode(_client); + if (ret_msg != ISC_SUCCESS) + goto ISC_ERROR_HANDLE; + + ret_msg = mms100_enter_config_update(_client); + if (ret_msg != ISC_SUCCESS) + goto ISC_ERROR_HANDLE; + + ret_msg = mms100_ISC_clear_validate_markers(_client); + if (ret_msg != ISC_SUCCESS) + goto ISC_ERROR_HANDLE; + + dev_info(&_client->dev, "[TSP ISC] mms100_update_section_data start\n"); + + ret_msg = mms100_update_section_data(_client); + if (ret_msg != ISC_SUCCESS) + goto ISC_ERROR_HANDLE; + + dev_info(&_client->dev, "[TSP ISC] mms100_update_section_data end\n"); + +/* mms100_reset(info); */ + + dev_info(&_client->dev, "[TSP ISC] FIRMWARE_UPDATE_FINISHED!!!\n"); + + ret_msg = ISC_SUCCESS; + +ISC_ERROR_HANDLE: + if (ret_msg != ISC_SUCCESS) + dev_err(&_client->dev, + "[TSP ISC] ISC_ERROR_CODE: %d\n", ret_msg); + + mms100_reset(info); + mms100_close_mbinary(); + + return ret_msg; +} +#endif /* ISC_DL_MODE end */ + +static void hw_reboot(struct mms_ts_info *info, bool bootloader) +{ + info->pdata->vdd_on(0); + gpio_direction_output(info->pdata->gpio_sda, bootloader ? 0 : 1); + gpio_direction_output(info->pdata->gpio_scl, bootloader ? 0 : 1); + gpio_direction_output(info->pdata->gpio_resetb, 0); + msleep(30); + info->pdata->vdd_on(1); + msleep(30); + + if (bootloader) { + gpio_set_value(info->pdata->gpio_scl, 0); + gpio_set_value(info->pdata->gpio_sda, 1); + } else { + gpio_set_value(info->pdata->gpio_resetb, 1); + gpio_direction_input(info->pdata->gpio_resetb); + gpio_direction_input(info->pdata->gpio_scl); + gpio_direction_input(info->pdata->gpio_sda); + } + msleep(40); +} + +static inline void hw_reboot_bootloader(struct mms_ts_info *info) +{ + hw_reboot(info, true); +} + +static inline void hw_reboot_normal(struct mms_ts_info *info) +{ + hw_reboot(info, false); +} + +static void isp_toggle_clk(struct mms_ts_info *info, int start_lvl, int end_lvl, + int hold_us) +{ + gpio_set_value(info->pdata->gpio_scl, start_lvl); + udelay(hold_us); + gpio_set_value(info->pdata->gpio_scl, end_lvl); + udelay(hold_us); +} + +/* 1 <= cnt <= 32 bits to write */ +static void isp_send_bits(struct mms_ts_info *info, u32 data, int cnt) +{ + gpio_direction_output(info->pdata->gpio_resetb, 0); + gpio_direction_output(info->pdata->gpio_scl, 0); + gpio_direction_output(info->pdata->gpio_sda, 0); + + /* clock out the bits, msb first */ + while (cnt--) { + gpio_set_value(info->pdata->gpio_sda, (data >> cnt) & 1); + udelay(3); + isp_toggle_clk(info, 1, 0, 3); + } +} + +/* 1 <= cnt <= 32 bits to read */ +static u32 isp_recv_bits(struct mms_ts_info *info, int cnt) +{ + u32 data = 0; + + gpio_direction_output(info->pdata->gpio_resetb, 0); + gpio_direction_output(info->pdata->gpio_scl, 0); + gpio_set_value(info->pdata->gpio_sda, 0); + gpio_direction_input(info->pdata->gpio_sda); + + /* clock in the bits, msb first */ + while (cnt--) { + isp_toggle_clk(info, 0, 1, 1); + data = (data << 1) | (!!gpio_get_value(info->pdata->gpio_sda)); + } + + gpio_direction_output(info->pdata->gpio_sda, 0); + return data; +} + +static void isp_enter_mode(struct mms_ts_info *info, u32 mode) +{ + int cnt; + unsigned long flags; + + local_irq_save(flags); + gpio_direction_output(info->pdata->gpio_resetb, 0); + gpio_direction_output(info->pdata->gpio_scl, 0); + gpio_direction_output(info->pdata->gpio_sda, 1); + + mode &= 0xffff; + for (cnt = 15; cnt >= 0; cnt--) { + gpio_set_value(info->pdata->gpio_resetb, (mode >> cnt) & 1); + udelay(3); + isp_toggle_clk(info, 1, 0, 3); + } + + gpio_set_value(info->pdata->gpio_resetb, 0); + local_irq_restore(flags); +} + +static void isp_exit_mode(struct mms_ts_info *info) +{ + int i; + unsigned long flags; + + local_irq_save(flags); + gpio_direction_output(info->pdata->gpio_resetb, 0); + udelay(3); + + for (i = 0; i < 10; i++) + isp_toggle_clk(info, 1, 0, 3); + local_irq_restore(flags); +} + +static void isp_flash_set_address(struct mms_ts_info *info, u16 addr) +{ + /* Only 13 bits of addr are valid. + * The addr is in bits 13:1 of cmd */ + isp_send_bits(info, (u32)(addr & 0x1fff) << 1, 18); +} + +static void isp_flash_erase(struct mms_ts_info *info) +{ + isp_enter_mode(info, ISP_MODE_FLASH_ERASE); + + gpio_direction_output(info->pdata->gpio_resetb, 0); + gpio_direction_output(info->pdata->gpio_scl, 0); + gpio_direction_output(info->pdata->gpio_sda, 1); + + /* 4 clock cycles with different timings for the erase to + * get processed, clk is already 0 from above */ + udelay(7); + isp_toggle_clk(info, 1, 0, 3); + udelay(7); + isp_toggle_clk(info, 1, 0, 3); + usleep_range(25000, 35000); + isp_toggle_clk(info, 1, 0, 3); + usleep_range(150, 200); + isp_toggle_clk(info, 1, 0, 3); + + gpio_set_value(info->pdata->gpio_sda, 0); + + isp_exit_mode(info); +} + +static u32 isp_flash_readl(struct mms_ts_info *info, u16 addr) +{ + int i; + u32 val; + unsigned long flags; + + local_irq_save(flags); + isp_enter_mode(info, ISP_MODE_FLASH_READ); + isp_flash_set_address(info, addr); + + gpio_direction_output(info->pdata->gpio_scl, 0); + gpio_direction_output(info->pdata->gpio_sda, 0); + udelay(40); + + /* data load cycle */ + for (i = 0; i < 6; i++) + isp_toggle_clk(info, 1, 0, 10); + + val = isp_recv_bits(info, 32); + isp_exit_mode(info); + local_irq_restore(flags); + + return val; +} + +static void isp_flash_writel(struct mms_ts_info *info, u16 addr, u32 val) +{ + unsigned long flags; + + local_irq_save(flags); + isp_enter_mode(info, ISP_MODE_FLASH_WRITE); + isp_flash_set_address(info, addr); + isp_send_bits(info, val, 32); + + gpio_direction_output(info->pdata->gpio_sda, 1); + /* 6 clock cycles with different timings for the data to get written + * into flash */ + isp_toggle_clk(info, 0, 1, 3); + isp_toggle_clk(info, 0, 1, 3); + isp_toggle_clk(info, 0, 1, 6); + isp_toggle_clk(info, 0, 1, 12); + isp_toggle_clk(info, 0, 1, 3); + isp_toggle_clk(info, 0, 1, 3); + + isp_toggle_clk(info, 1, 0, 1); + + gpio_direction_output(info->pdata->gpio_sda, 0); + isp_exit_mode(info); + local_irq_restore(flags); + usleep_range(300, 400); +} + +static bool isp_flash_is_erased(struct mms_ts_info *info) +{ + struct i2c_client *client = info->client; + u32 val; + u16 addr; + + for (addr = 0; addr < (ISP_MAX_FW_SIZE / 4); addr++) { + udelay(40); + val = isp_flash_readl(info, addr); + + if (val != 0xffffffff) { + dev_dbg(&client->dev, + "addr 0x%x not erased: 0x%08x != 0xffffffff\n", + addr, val); + return false; + } + } + return true; +} + +static int isp_fw_write_image(struct mms_ts_info *info, const u8 *data, size_t len) +{ + struct i2c_client *client = info->client; + u16 addr = 0; + + for (addr = 0; addr < (len / 4); addr++, data += 4) { + u32 val = get_unaligned_le32(data); + u32 verify_val; + int retries = 3; + + while (retries--) { + isp_flash_writel(info, addr, val); + verify_val = isp_flash_readl(info, addr); + if (val == verify_val) + break; + dev_err(&client->dev, + "mismatch @ addr 0x%x: 0x%x != 0x%x\n", + addr, verify_val, val); + continue; + } + if (retries < 0) + return -ENXIO; + } + + return 0; +} + +static int isp_fw_download(struct mms_ts_info *info, const u8 *data, size_t len) +{ + struct i2c_client *client = info->client; + u32 val; + int ret = 0; + int i; + u32 *buf = kzalloc(ISP_CAL_DATA_SIZE * 4, GFP_KERNEL); + if (!buf) { + dev_err(&info->client->dev, "%s: failed to allocate memory\n", + __func__); + return -ENOMEM; + } + + if (len % 4) { + dev_err(&client->dev, + "fw image size (%d) must be a multiple of 4 bytes\n", + len); + kfree(buf); + return -EINVAL; + } else if (len > ISP_MAX_FW_SIZE) { + dev_err(&client->dev, + "fw image is too big, %d > %d\n", len, ISP_MAX_FW_SIZE); + kfree(buf); + return -EINVAL; + } + + dev_info(&client->dev, "fw download start\n"); + + info->pdata->vdd_on(0); + gpio_direction_output(info->pdata->gpio_sda, 0); + gpio_direction_output(info->pdata->gpio_scl, 0); + gpio_direction_output(info->pdata->gpio_resetb, 0); + + hw_reboot_bootloader(info); + + dev_info(&client->dev, "calibration data backup\n"); + for (i = 0; i < ISP_CAL_DATA_SIZE; i++) + buf[i] = isp_flash_readl(info, ISP_IC_INFO_ADDR); + + val = isp_flash_readl(info, ISP_IC_INFO_ADDR); + dev_info(&client->dev, "IC info: 0x%02x (%x)\n", val & 0xff, val); + + dev_info(&client->dev, "fw erase...\n"); + isp_flash_erase(info); + if (!isp_flash_is_erased(info)) { + ret = -ENXIO; + goto err; + } + + dev_info(&client->dev, "fw write...\n"); + /* XXX: what does this do?! */ + isp_flash_writel(info, ISP_IC_INFO_ADDR, 0xffffff00 | (val & 0xff)); + usleep_range(1000, 1500); + ret = isp_fw_write_image(info, data, len); + if (ret) + goto err; + usleep_range(1000, 1500); + + dev_info(&client->dev, "restoring data\n"); + for (i = 0; i < ISP_CAL_DATA_SIZE; i++) + isp_flash_writel(info, ISP_IC_INFO_ADDR, buf[i]); + kfree(buf); + + dev_info(&client->dev, "fw download done...\n"); + hw_reboot_normal(info); + msleep(200); + return 0; + +err: + dev_err(&client->dev, "fw download failed...\n"); + kfree(buf); + hw_reboot_normal(info); + return ret; +} + +static int get_fw_version(struct mms_ts_info *info, u8 area) +{ + struct i2c_client *client = info->client; + struct i2c_adapter *adapter = client->adapter; + struct i2c_msg msg; + u8 reg = MMS_CORE_VERSION; + int ret; + unsigned char buf[4]; + + msg.addr = client->addr; + msg.flags = 0x00; + msg.len = 1; + msg.buf = ® + + disable_irq(info->irq); + ret = i2c_transfer(adapter, &msg, 1); + + if (ret >= 0) { + msg.addr = client->addr; + msg.flags = I2C_M_RD; + msg.len = 4; + msg.buf = buf; + + ret = i2c_transfer(adapter, &msg, 1); + } + enable_irq(info->irq); + if (ret < 0) { + dev_err(&client->dev, "I2C read error : [%d]\n", ret); + return ret; + } + + if (area == SEC_BOOTLOADER) + return buf[0]; + else if (area == SEC_CORE) + return buf[1]; + else if (area == SEC_CONFIG) + return buf[2]; + else + return 0; +} + +static int get_hw_version(struct mms_ts_info *info) +{ + int ret; + int retries = 3; + + /* this seems to fail sometimes after a reset.. retry a few times */ + disable_irq(info->irq); + do { + ret = i2c_smbus_read_byte_data(info->client, MMS_HW_REVISION); + } while (ret < 0 && retries-- > 0); + enable_irq(info->irq); + + return ret; +} + +static int mms_ts_finish_config(struct mms_ts_info *info) +{ + struct i2c_client *client = info->client; + int ret; + + ret = request_threaded_irq(client->irq, NULL, mms_ts_interrupt, + IRQF_TRIGGER_LOW | IRQF_ONESHOT, + "mms_ts", info); + if (ret < 0) { + ret = 1; + dev_err(&client->dev, "Failed to register interrupt\n"); + goto err_req_irq; + } + + info->irq = client->irq; + barrier(); + + dev_info(&client->dev, "Melfas MMS-series touch controller initialized\n"); + + return 0; + +err_req_irq: + return ret; +} + +static int isp_fw_update(struct mms_ts_info *info) +{ + struct i2c_client *client = info->client; + struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); + int ret = 0; + int retries = 3; + int ver; + + ver = get_fw_version(info, SEC_CONFIG); + info->fw_ic_ver = ver; + dev_err(&client->dev, "fw version 0x%02x !!!!\n", ver); + + if (!info->pdata || !info->pdata->mux_fw_flash) { + ret = 1; + dev_err(&client->dev, "fw cannot be updated, missing platform data\n"); + return ret; + } + + disable_irq(info->irq); + while (retries--) { + i2c_lock_adapter(adapter); + info->pdata->mux_fw_flash(true); + + ret = isp_fw_download(info, MELFAS_binary, + MELFAS_binary_nLength); + + info->pdata->mux_fw_flash(false); + i2c_unlock_adapter(adapter); + + if (ret < 0) { + dev_err(&client->dev, "retrying flashing\n"); + continue; + } + + ver = get_fw_version(info, SEC_CONFIG); + info->fw_ic_ver = ver; + + if (ver == FW_VERSION) { + dev_info(&client->dev, + "fw update done. ver = 0x%02x\n", ver); + enable_irq(info->irq); + goto done; + } else { + dev_err(&client->dev, + "ERROR: fw update succeeded, but fw version is still wrong (0x%x != 0x%x)\n", + ver, FW_VERSION); + enable_irq(info->irq); + } + dev_err(&client->dev, "retrying flashing\n"); + } + + return ret; +done: + return ret; +} + +#if ISC_DL_MODE +static int isc_fw_update(struct mms_ts_info *info) +{ + struct i2c_client *client = info->client; + int ret = 0; + int ver; + int bin_ver; + int retries = 3; + + ver = get_fw_version(info, SEC_CONFIG); + info->fw_ic_ver = ver; + dev_info(&client->dev, "fw version 0x%02x !!!!\n", ver); + + if (!info->pdata || !info->pdata->mux_fw_flash) { + ret = 1; + dev_err(&client->dev, "fw cannot be updated, missing platform data\n"); + goto out; + } + + bin_ver = FW_VERSION; + + while (retries--) { + ret = mms100_ISC_download_mbinary(info); + + ver = get_fw_version(info, SEC_CONFIG); + info->fw_ic_ver = ver; + + if (ret == 0) { + dev_info(&client->dev, "mms100_ISC_download_mbinary success\n"); + goto done; + } else { + dev_err(&client->dev, "mms100_ISC_download_mbinary fail [%d]\n", + ret); + ret = 1; + } + + dev_err(&client->dev, "retrying flashing\n"); + } +out: +done: + return ret; +} +#endif + +#ifdef SEC_TSP_FACTORY_TEST +/* SPRD remove this function */ +#if 0 +static inline int msm_irq_to_gpio(unsigned irq) +{ + /* TODO : Need to verify chip->base=0 */ + return irq - MSM_GPIO_TO_INT(0); +} +#endif +static void set_default_result(struct mms_ts_info *info) +{ + char delim = ':'; + + memset(info->cmd_result, 0x00, ARRAY_SIZE(info->cmd_result)); + memcpy(info->cmd_result, info->cmd, strlen(info->cmd)); + strncat(info->cmd_result, &delim, 1); +} + +static void set_cmd_result(struct mms_ts_info *info, char *buff, int len) +{ + strncat(info->cmd_result, buff, len); +} + +static int get_data(struct mms_ts_info *info, u8 addr, u8 size, u8 *array) +{ + struct i2c_client *client = info->client; + struct i2c_adapter *adapter = client->adapter; + struct i2c_msg msg; + u8 reg = addr; + unsigned char buf[size]; + int ret; + + msg.addr = client->addr; + msg.flags = 0x00; + msg.len = 1; + msg.buf = ® + + ret = i2c_transfer(adapter, &msg, 1); + + if (ret >= 0) { + msg.addr = client->addr; + msg.flags = I2C_M_RD; + msg.len = size; + msg.buf = buf; + + ret = i2c_transfer(adapter, &msg, 1); + } + if (ret < 0) { + dev_err(&client->dev, "I2C read error : [%d]\n", ret); + return ret; + } + + memcpy(array, &buf, size); + return size; +} + +static void get_intensity_data(struct mms_ts_info *info) +{ + u8 w_buf[4]; + u8 r_buf; + u8 read_buffer[60] = {0}; + int i, j; + int ret; + u16 max_value = 0, min_value = 0; + u16 raw_data; + char buff[TSP_CMD_STR_LEN] = {0}; + + disable_irq(info->irq); + + w_buf[0] = ADDR_UNIV_CMD; + w_buf[1] = CMD_GET_INTEN; + w_buf[2] = 0xFF; + for (i = 0; i < RX_NUM; i++) { + w_buf[3] = i; + + ret = i2c_smbus_write_i2c_block_data(info->client, + w_buf[0], 3, &w_buf[1]); + if (ret < 0) + goto err_i2c; + usleep_range(1, 5); + + ret = i2c_smbus_read_i2c_block_data(info->client, + CMD_RESULT_SZ, 1, &r_buf); + if (ret < 0) + goto err_i2c; + + ret = get_data(info, CMD_RESULT, r_buf, read_buffer); + if (ret < 0) + goto err_i2c; + + for (j = 0; j < r_buf / 2; j++) { + raw_data = + read_buffer[2 * j] | (read_buffer[2 * j + 1] << 8); + if (raw_data > 32767) + raw_data = 0; + if (i == 0 && j == 0) { + max_value = min_value = raw_data; + } else { + max_value = max(max_value, raw_data); + min_value = min(min_value, raw_data); + } + info->intensity[i * TX_NUM + j] = raw_data; + dev_dbg(&info->client->dev, + "intensity[%d][%d] = %d\n", j, i, + info->intensity[i * TX_NUM + j]); + } + } + + snprintf(buff, sizeof(buff), "%d,%d", min_value, max_value); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + + enable_irq(info->irq); + + return; + +err_i2c: + dev_err(&info->client->dev, "%s: fail to i2c (cmd=%d)\n", + __func__, MMS_VSC_CMD_INTENSITY); +} + +static void get_raw_data(struct mms_ts_info *info, u8 cmd) +{ + u8 w_buf[4]; + u8 r_buf = 0; + u8 read_buffer[60] = {0}; + int ret; + int i, j; + int max_value = 0, min_value = 0; + int raw_data; + int retry; + char buff[TSP_CMD_STR_LEN] = {0}; + int gpio = info->pdata->gpio_int;/* msm_irq_to_gpio(info->irq); */ + + disable_irq(info->irq); + + ret = i2c_smbus_write_byte_data(info->client, + ADDR_UNIV_CMD, CMD_ENTER_TEST); + if (ret < 0) + goto err_i2c; + + /* event type check */ + retry = 1; + while (retry) { + while (gpio_get_value(gpio)) + udelay(100); + + ret = i2c_smbus_read_i2c_block_data(info->client, + 0x0F, 1, &r_buf); + if (ret < 0) + goto err_i2c; + + ret = i2c_smbus_read_i2c_block_data(info->client, + 0x10, 1, &r_buf); + if (ret < 0) + goto err_i2c; + + dev_info(&info->client->dev, "event type = 0x%x\n", r_buf); + if (r_buf == 0x0C) + retry = 0; + } + + w_buf[0] = ADDR_UNIV_CMD; + if (cmd == MMS_VSC_CMD_CM_DELTA) + w_buf[1] = CMD_CM_DELTA; + else + w_buf[1] = CMD_CM_ABS; + ret = i2c_smbus_write_i2c_block_data(info->client, + w_buf[0], 1, &w_buf[1]); + if (ret < 0) + goto err_i2c; + while (gpio_get_value(gpio)) + udelay(100); + + ret = i2c_smbus_read_i2c_block_data(info->client, + CMD_RESULT_SZ, 1, &r_buf); + if (ret < 0) + goto err_i2c; + ret = i2c_smbus_read_i2c_block_data(info->client, + CMD_RESULT, 1, &r_buf); + if (ret < 0) + goto err_i2c; + + if (r_buf == 1) + dev_info(&info->client->dev, "PASS\n"); + else + dev_info(&info->client->dev, "FAIL\n"); + + if (cmd == MMS_VSC_CMD_CM_DELTA) + w_buf[1] = CMD_GET_DELTA; + else + w_buf[1] = CMD_GET_ABS; + w_buf[2] = 0xFF; + + for (i = 0; i < RX_NUM; i++) { + w_buf[3] = i; + + ret = i2c_smbus_write_i2c_block_data(info->client, + w_buf[0], 3, &w_buf[1]); + if (ret < 0) + goto err_i2c; + + while (gpio_get_value(gpio)) + udelay(100); + + ret = i2c_smbus_read_i2c_block_data(info->client, + CMD_RESULT_SZ, 1, &r_buf); + if (ret < 0) + goto err_i2c; + + ret = get_data(info, CMD_RESULT, r_buf, read_buffer); + if (ret < 0) + goto err_i2c; + + for (j = 0; j < TX_NUM; j++) { + raw_data = + read_buffer[2 * j] | (read_buffer[2 * j + 1] << 8); + if (i == 0 && j == 0) { + max_value = min_value = raw_data; + } else { + max_value = max(max_value, raw_data); + min_value = min(min_value, raw_data); + } + + if (cmd == MMS_VSC_CMD_CM_DELTA) { + info->inspection[i * TX_NUM + j] = + raw_data; + dev_dbg(&info->client->dev, + "delta[%d][%d] = %d\n", j, i, + info->inspection[i * TX_NUM + j]); + } else if (cmd == MMS_VSC_CMD_CM_ABS) { + info->raw[i * TX_NUM + j] = + raw_data; + dev_dbg(&info->client->dev, + "raw[%d][%d] = %d\n", j, i, + info->raw[i * TX_NUM + j]); + } else if (cmd == MMS_VSC_CMD_REFER) { + info->reference[i * TX_NUM + j] = + raw_data; + dev_dbg(&info->client->dev, + "reference[%d][%d] = %d\n", j, i, + info->reference[i * TX_NUM + j]); + } + } + } + + ret = i2c_smbus_write_byte_data(info->client, + ADDR_UNIV_CMD, CMD_EXIT_TEST); + + snprintf(buff, sizeof(buff), "%d,%d", min_value, max_value); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + + touch_is_pressed = 0; + release_all_fingers(info); + + info->pdata->vdd_on(0); + msleep(30); + info->pdata->vdd_on(1); + msleep(250); + + if (info->ta_status) { + dev_notice(&info->client->dev, "TA connect!!!\n"); + i2c_smbus_write_byte_data(info->client, 0x33, 0x1); + } else { + dev_notice(&info->client->dev, "TA disconnect!!!\n"); + i2c_smbus_write_byte_data(info->client, 0x33, 0x2); + } + mms_set_noise_mode(info); + + enable_irq(info->irq); + + return; + +err_i2c: + dev_err(&info->client->dev, "%s: fail to i2c (cmd=%d)\n", + __func__, cmd); +} + +static void get_raw_data_all(struct mms_ts_info *info, u8 cmd) +{ + u8 w_buf[6]; + u8 read_buffer[2]; /* 52 */ + char buff[TSP_CMD_STR_LEN] = {0}; + int gpio; + int ret; + int i, j; + u32 max_value, min_value; + u32 raw_data; + + gpio = info->pdata->gpio_int;/*msm_irq_to_gpio(info->irq);*/ + disable_irq(info->irq); + + w_buf[0] = MMS_VSC_CMD; /* vendor specific command id */ + w_buf[1] = MMS_VSC_MODE; /* mode of vendor */ + w_buf[2] = 0; /* tx line */ + w_buf[3] = 0; /* rx line */ + w_buf[4] = 0; /* reserved */ + w_buf[5] = 0; /* sub command */ + + if (cmd == MMS_VSC_CMD_EXIT) { + w_buf[5] = MMS_VSC_CMD_EXIT; /* exit test mode */ + + ret = i2c_smbus_write_i2c_block_data(info->client, + w_buf[0], 5, &w_buf[1]); + if (ret < 0) + goto err_i2c; + touch_is_pressed = 0; + release_all_fingers(info); +#if defined(CONFIG_MIPI_SAMSUNG_ESD_REFRESH) + set_esd_disable(); +#endif + info->pdata->vdd_on(0); + msleep(30); + info->pdata->vdd_on(1); + msleep(120); + enable_irq(info->irq); +#if defined(CONFIG_MIPI_SAMSUNG_ESD_REFRESH) + set_esd_enable(); +#endif + return ; + } + + /* MMS_VSC_CMD_CM_DELTA or MMS_VSC_CMD_CM_ABS + * this two mode need to enter the test mode + * exit command must be followed by testing. + */ + if (cmd == MMS_VSC_CMD_CM_DELTA || cmd == MMS_VSC_CMD_CM_ABS) { + /* enter the debug mode */ + w_buf[2] = 0x0; /* tx */ + w_buf[3] = 0x0; /* rx */ + w_buf[5] = MMS_VSC_CMD_ENTER; + + ret = i2c_smbus_write_i2c_block_data(info->client, + w_buf[0], 5, &w_buf[1]); + if (ret < 0) + goto err_i2c; + + /* wating for the interrupt */ + while (gpio_get_value(gpio)) + udelay(100); + } + + max_value = 0; + min_value = 0; + + for (i = 0; i < RX_NUM; i++) { + for (j = 0; j < TX_NUM; j++) { + + w_buf[2] = j; /* tx */ + w_buf[3] = i; /* rx */ + w_buf[5] = cmd; + + ret = i2c_smbus_write_i2c_block_data(info->client, + w_buf[0], 5, &w_buf[1]); + if (ret < 0) + goto err_i2c; + + usleep_range(1, 5); + + ret = i2c_smbus_read_i2c_block_data(info->client, 0xBF, + 2, read_buffer); + if (ret < 0) + goto err_i2c; + + raw_data = ((u16)read_buffer[1] << 8) | read_buffer[0]; + + if (i == 0 && j == 0) { + max_value = min_value = raw_data; + } else { + max_value = max(max_value, raw_data); + min_value = min(min_value, raw_data); + } + + if (cmd == MMS_VSC_CMD_INTENSITY) { + info->intensity[j * RX_NUM + i] = raw_data; + dev_dbg(&info->client->dev, "intensity[%d][%d] = %d\n", + i, j, info->intensity[j * RX_NUM + i]); + } else if (cmd == MMS_VSC_CMD_CM_DELTA) { + info->inspection[j * RX_NUM + i] = raw_data; + dev_dbg(&info->client->dev, "delta[%d][%d] = %d\n", + i, j, info->inspection[j * RX_NUM + i]); + } else if (cmd == MMS_VSC_CMD_CM_ABS) { + info->raw[j * RX_NUM + i] = raw_data; + dev_dbg(&info->client->dev, "raw[%d][%d] = %d\n", + i, j, info->raw[j * RX_NUM + i]); + } else if (cmd == MMS_VSC_CMD_REFER) { + info->reference[j * RX_NUM + i] = + raw_data >> 3; + dev_dbg(&info->client->dev, "reference[%d][%d] = %d\n", + i, j, info->reference[j * RX_NUM + i]); + } + } + } + + snprintf(buff, sizeof(buff), "%d,%d", min_value, max_value); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + + enable_irq(info->irq); + +err_i2c: + dev_err(&info->client->dev, "%s: fail to i2c (cmd=%d)\n", + __func__, cmd); +} + +#if defined(ESD_DEBUG) +static u32 get_raw_data_one(struct mms_ts_info *info, u16 rx_idx, u16 tx_idx, + u8 cmd) +{ + u8 w_buf[6]; + u8 read_buffer[2]; + int ret; + u32 raw_data; + + w_buf[0] = MMS_VSC_CMD; /* vendor specific command id */ + w_buf[1] = MMS_VSC_MODE; /* mode of vendor */ + w_buf[2] = 0; /* tx line */ + w_buf[3] = 0; /* rx line */ + w_buf[4] = 0; /* reserved */ + w_buf[5] = 0; /* sub command */ + + if (cmd != MMS_VSC_CMD_INTENSITY && cmd != MMS_VSC_CMD_RAW && + cmd != MMS_VSC_CMD_REFER && cmd != VSC_INTENSITY_TK && + cmd != VSC_RAW_TK) { + dev_err(&info->client->dev, "%s: not profer command(cmd=%d)\n", + __func__, cmd); + return FAIL; + } + + w_buf[2] = tx_idx; /* tx */ + w_buf[3] = rx_idx; /* rx */ + w_buf[5] = cmd; /* sub command */ + + ret = i2c_smbus_write_i2c_block_data(info->client, w_buf[0], 5, + &w_buf[1]); + if (ret < 0) + goto err_i2c; + + ret = i2c_smbus_read_i2c_block_data(info->client, 0xBF, 2, + read_buffer); + if (ret < 0) + goto err_i2c; + + raw_data = ((u16)read_buffer[1] << 8) | read_buffer[0]; + if (cmd == MMS_VSC_CMD_REFER) + raw_data = raw_data >> 4; + + return raw_data; + +err_i2c: + dev_err(&info->client->dev, "%s: fail to i2c (cmd=%d)\n", + __func__, cmd); + return FAIL; +} +#endif + +#if defined(SEC_TKEY_FACTORY_TEST) +static u32 get_raw_data_tkey(struct mms_ts_info *info, u16 key_idx, u8 cmd) +{ + u8 w_buf[4]; + u8 r_buf = 0; + u8 read_buffer[60] = {0}; + int ret, raw_data; + int gpio = info->pdata->gpio_int;/*msm_irq_to_gpio(info->irq);*/ + + disable_irq(info->irq); + + w_buf[0] = ADDR_UNIV_CMD; /* Universal CMD ID */ + w_buf[1] = CMD_ENTER_TEST; /* mode of vendor */ + w_buf[2] = 0xFF; /* Exciting CH*/ + w_buf[3] = 0; /* Sensing CH */ + + if (cmd != VSC_INTENSITY_TK && cmd != VSC_RAW_TK) { + dev_err(&info->client->dev, "%s: not profer command(cmd=%d)\n", + __func__, cmd); + return FAIL; + } + + if (cmd == VSC_INTENSITY_TK) + w_buf[1] = CMD_GET_INTEN_KEY; + else + w_buf[1] = CMD_GET_REFER_KEY; + + ret = i2c_smbus_write_i2c_block_data(info->client, + w_buf[0], 3, &w_buf[1]); + + if (ret < 0) + goto err_i2c; + while (gpio_get_value(gpio)) + udelay(100); + + ret = i2c_smbus_read_i2c_block_data(info->client, + CMD_RESULT_SZ, 1, &r_buf); + if (ret < 0) + goto err_i2c; + ret = get_data(info, CMD_RESULT, r_buf, read_buffer); + if (ret < 0) + goto err_i2c; + + raw_data = read_buffer[2*key_idx] | (read_buffer[2*key_idx+1] << 8); + + /* if raw_data < 0, return 0*/ + if (read_buffer[2*key_idx+1] & (1 << 7)) + raw_data = 0; + + touch_is_pressed = 0; + info->enabled = true; + + enable_irq(info->irq); + return raw_data; + +err_i2c: + dev_err(&info->client->dev, "%s: fail to i2c (cmd=%d)\n", + __func__, cmd); + return FAIL; +} +#endif + +static ssize_t show_close_tsp_test(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + + get_raw_data_all(info, MMS_VSC_CMD_EXIT); + info->ft_flag = 0; + + return snprintf(buf, TSP_BUF_SIZE, "%u\n", 0); +} + +static int check_rx_tx_num(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + char buff[TSP_CMD_STR_LEN] = {0}; + int node; + + if (info->cmd_param[0] < 0 || + info->cmd_param[0] >= TX_NUM || + info->cmd_param[1] < 0 || + info->cmd_param[1] >= RX_NUM) { + snprintf(buff, sizeof(buff) , "%s", "NG"); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 3; + + dev_err(&info->client->dev, "%s: parameter error: %u,%u\n", + __func__, info->cmd_param[0], info->cmd_param[1]); + node = -1; + return node; + } + node = info->cmd_param[1] * RX_NUM + info->cmd_param[0]; + dev_info(&info->client->dev, "%s: node = %d\n", __func__, + node); + return node; + +} + +static void not_support_cmd(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + char buff[16] = {0}; + + set_default_result(info); + sprintf(buff, "%s", "NA"); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 4; + dev_info(&info->client->dev, "%s: \"%s(%d)\"\n", __func__, + buff, strnlen(buff, sizeof(buff))); + return; +} + +static void fw_update(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + struct i2c_client *client = info->client; + struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); + int ret = 0; + int fw_ver = 0, ver = 0, hw_rev = 0, fw_bin_ver = 0; + int retries = 5; + const u8 *buff = 0; + mm_segment_t old_fs = {0}; + struct file *fp = NULL; + long fsize = 0, nread = 0; + + #define MMS_TS "/sdcard/melfas_fw.bin" + + set_default_result(info); + + hw_rev = get_hw_version(info); + fw_bin_ver = FW_VERSION; + fw_ver = get_fw_version(info, SEC_CONFIG); + dev_info(&client->dev, "fw_ic_ver = 0x%02x, fw_bin_ver = 0x%02x\n", + fw_ver, fw_bin_ver); + + if (info->cmd_param[0] == 0 + && fw_ver >= fw_bin_ver) { + dev_info(&client->dev, "fw version update does not need\n"); + goto do_not_need_update; + } + + switch (info->cmd_param[0]) { + case BUILT_IN: + buff = MELFAS_binary; + fsize = MELFAS_binary_nLength; + dev_info(&client->dev, "built in fw(0x%02x) is loaded!!\n", + fw_bin_ver); +#if ISC_DL_MODE + ret = isc_fw_update(info); +#else + ret = isp_fw_update(info); +#endif + + if (ret) { + dev_err(&client->dev, + "failed to initialize (%d)\n", ret); + } + + ver = get_fw_version(info, SEC_CONFIG); + info->fw_ic_ver = ver; + + if (info->cmd_param[0] == 1) { + dev_info(&client->dev, + "fw update done. ver = 0x%02x\n", ver); + info->cmd_state = 2; + enable_irq(info->irq); + return; + } else if (ver == fw_bin_ver) { + dev_info(&client->dev, + "fw update done. ver = 0x%02x\n", ver); + info->cmd_state = 2; + enable_irq(info->irq); + return; + } else { + dev_err(&client->dev, "ERROR : fw version is still wrong (0x%x != 0x%x)\n", + ver, FW_VERSION); + } + + break; + + case UMS: + old_fs = get_fs(); + set_fs(get_ds()); + + fp = filp_open(MMS_TS, O_RDONLY, 0); + if (IS_ERR(fp)) { + dev_err(&client->dev, + "file %s open error:%d\n", MMS_TS, (s32)fp); + info->cmd_state = 3; + goto err_open; + } + + fsize = fp->f_path.dentry->d_inode->i_size; + + buff = kzalloc((size_t)fsize, GFP_KERNEL); + if (!buff) { + dev_err(&client->dev, "fail to alloc buffer for fw\n"); + info->cmd_state = 3; + goto err_alloc; + } + + nread = vfs_read(fp, (char __user *)buff, fsize, &fp->f_pos); + if (nread != fsize) { + dev_err(&client->dev, "fail to read file %s (nread = %ld)\n", + MMS_TS, nread); + info->cmd_state = 3; + goto err_fw_size; + } + + filp_close(fp, current->files); + set_fs(old_fs); + dev_info(&client->dev, "ums fw is loaded!!\n"); + break; + + default: + dev_err(&client->dev, "invalid fw file type!!\n"); + goto not_support; + } + + disable_irq(info->irq); + while (retries--) { + i2c_lock_adapter(adapter); + info->pdata->mux_fw_flash(true); + + ret = isp_fw_download(info, (const u8 *)buff, + (const size_t)fsize); + + info->pdata->mux_fw_flash(false); + i2c_unlock_adapter(adapter); + + if (ret < 0) { + dev_err(&client->dev, "retrying flashing\n"); + continue; + } + + ver = get_fw_version(info, SEC_CONFIG); + info->fw_ic_ver = ver; + + if (info->cmd_param[0] == 1) { + dev_info(&client->dev, + "fw update done. ver = 0x%02x\n", ver); + info->cmd_state = 2; + enable_irq(info->irq); + return; + } else if (ver == fw_bin_ver) { + dev_info(&client->dev, + "fw update done. ver = 0x%02x\n", ver); + info->cmd_state = 2; + enable_irq(info->irq); + return; + } else { + dev_err(&client->dev, "ERROR : fw version is still wrong (0x%x != 0x%x)\n", + ver, FW_VERSION); + } + dev_err(&client->dev, "retrying flashing\n"); + } + +err_fw_size: + kfree(buff); +err_alloc: + filp_close(fp, NULL); +err_open: + set_fs(old_fs); +not_support: +do_not_need_update: + info->cmd_state = 2; + return; +} + +static void get_fw_ver_bin(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + char buff[16] = {0}; + int hw_rev; + + set_default_result(info); + hw_rev = get_hw_version(info); + + snprintf(buff, sizeof(buff), "ME0453%02x", FW_VERSION); + + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 2; + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, + buff, strnlen(buff, sizeof(buff))); +} + +static void get_fw_ver_ic(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + char buff[16] = {0}; + + set_default_result(info); + + if (info->enabled) { + info->fw_boot_ver = get_fw_version(info, SEC_BOOTLOADER); + info->fw_core_ver = get_fw_version(info, SEC_CORE); + info->fw_ic_ver = get_fw_version(info, SEC_CONFIG); + } + snprintf(buff, sizeof(buff), "ME%02x%02x%02x", + info->fw_boot_ver, info->fw_core_ver, info->fw_ic_ver); + + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 2; + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, + buff, strnlen(buff, sizeof(buff))); +} + +static void get_config_ver(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + char buff[20] = {0}; + + set_default_result(info); + + snprintf(buff, sizeof(buff), "0x%X", info->fw_ic_ver); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 2; + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, + buff, strnlen(buff, sizeof(buff))); +} + +static void get_threshold(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + char buff[16] = {0}; + int threshold; + + set_default_result(info); + + disable_irq(info->irq); + threshold = i2c_smbus_read_byte_data(info->client, 0x05); + enable_irq(info->irq); + if (threshold < 0) { + snprintf(buff, sizeof(buff), "%s", "NG"); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 3; + return; + } + snprintf(buff, sizeof(buff), "%d", threshold); + + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 2; + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, + buff, strnlen(buff, sizeof(buff))); +} + +static void module_off_master(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + char buff[3] = {0}; + + mutex_lock(&info->lock); + if (info->enabled) { + disable_irq(info->irq); + info->enabled = false; + touch_is_pressed = 0; + } + mutex_unlock(&info->lock); + + info->pdata->vdd_on(0); + + if (info->pdata->is_vdd_on() == 0) + snprintf(buff, sizeof(buff), "%s", "OK"); + else + snprintf(buff, sizeof(buff), "%s", "NG"); + + set_default_result(info); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + + if (strncmp(buff, "OK", 2) == 0) + info->cmd_state = 2; + else + info->cmd_state = 3; + + dev_info(&info->client->dev, "%s: %s\n", __func__, buff); +} + +static void module_on_master(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + char buff[3] = {0}; + + mms_pwr_on_reset(info); + + mutex_lock(&info->lock); + if (!info->enabled) { + enable_irq(info->irq); + info->enabled = true; + } + mutex_unlock(&info->lock); + + if (info->pdata->is_vdd_on() == 1) + snprintf(buff, sizeof(buff), "%s", "OK"); + else + snprintf(buff, sizeof(buff), "%s", "NG"); + + set_default_result(info); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + + if (strncmp(buff, "OK", 2) == 0) + info->cmd_state = 2; + else + info->cmd_state = 3; + + dev_info(&info->client->dev, "%s: %s\n", __func__, buff); + +} + +static void get_chip_vendor(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + char buff[16] = {0}; + + set_default_result(info); + + snprintf(buff, sizeof(buff), "%s", "MELFAS"); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 2; + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, + buff, strnlen(buff, sizeof(buff))); +} + +static void get_chip_name(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + char buff[16] = {0}; + + set_default_result(info); + + snprintf(buff, sizeof(buff), "%s", info->pdata->tsp_ic_name); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 2; + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, + buff, strnlen(buff, sizeof(buff))); +} + +static void get_reference(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + char buff[16] = {0}; + unsigned int val; + int node; + + set_default_result(info); + node = check_rx_tx_num(info); + + if (node < 0) + return; + + val = info->reference[node]; + snprintf(buff, sizeof(buff), "%u", val); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + + info->cmd_state = 2; + + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, + buff, strnlen(buff, sizeof(buff))); + +} + +static void get_cm_abs(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + char buff[16] = {0}; + unsigned int val; + int node; + + set_default_result(info); + node = check_rx_tx_num(info); + + if (node < 0) + return; + + val = info->raw[node]; + snprintf(buff, sizeof(buff), "%u", val); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 2; + + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, buff, + strnlen(buff, sizeof(buff))); +} + +static void get_cm_delta(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + char buff[16] = {0}; + unsigned int val; + int node; + + set_default_result(info); + node = check_rx_tx_num(info); + + if (node < 0) + return; + + val = info->inspection[node]; + snprintf(buff, sizeof(buff), "%u", val); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 2; + + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, buff, + strnlen(buff, sizeof(buff))); +} + +static void get_intensity(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + char buff[16] = {0}; + unsigned int val; + int node; + + set_default_result(info); + node = check_rx_tx_num(info); + + if (node < 0) + return; + + val = info->intensity[node]; + + snprintf(buff, sizeof(buff), "%u", val); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 2; + + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, buff, + strnlen(buff, sizeof(buff))); +} + +static void get_x_num(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + char buff[16] = {0}; + int val; + + set_default_result(info); + disable_irq(info->irq); + val = i2c_smbus_read_byte_data(info->client, 0x0B); + enable_irq(info->irq); + if (val < 0) { + snprintf(buff, sizeof(buff), "%s", "NG"); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 3; + + dev_err(&info->client->dev, + "%s: fail to read num of x (%d).\n", __func__, val); + + return ; + } + snprintf(buff, sizeof(buff), "%u", val); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 2; + + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, buff, + strnlen(buff, sizeof(buff))); +} + +static void get_y_num(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + char buff[16] = {0}; + int val; + + set_default_result(info); + disable_irq(info->irq); + val = i2c_smbus_read_byte_data(info->client, 0x0C); + enable_irq(info->irq); + if (val < 0) { + snprintf(buff, sizeof(buff), "%s", "NG"); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 3; + + dev_err(&info->client->dev, + "%s: fail to read num of y (%d).\n", __func__, val); + + return ; + } + snprintf(buff, sizeof(buff), "%u", val); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + info->cmd_state = 2; + + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, buff, + strnlen(buff, sizeof(buff))); +} + +static void run_reference_read(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + set_default_result(info); + /* CORE 4.5 + get_raw_data_all(info, MMS_VSC_CMD_REFER); + */ + get_raw_data(info, MMS_VSC_CMD_REFER); + info->cmd_state = 2; + + dev_info(&info->client->dev, "%s\n", __func__); +} + +static void run_cm_abs_read(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + set_default_result(info); + /* CORE 4.5 + get_raw_data_all(info, MMS_VSC_CMD_CM_ABS); + get_raw_data_all(info, MMS_VSC_CMD_EXIT); + */ + get_raw_data(info, MMS_VSC_CMD_CM_ABS); + info->cmd_state = 2; + + dev_info(&info->client->dev, "%s\n", __func__); +} + +static void run_cm_delta_read(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + set_default_result(info); + /* CORE 4.5 + get_raw_data_all(info, MMS_VSC_CMD_CM_DELTA); + get_raw_data_all(info, MMS_VSC_CMD_EXIT); + */ + get_raw_data(info, MMS_VSC_CMD_CM_DELTA); + info->cmd_state = 2; + + dev_info(&info->client->dev, "%s\n", __func__); +} + +static void run_intensity_read(void *device_data) +{ + struct mms_ts_info *info = (struct mms_ts_info *)device_data; + + set_default_result(info); + /* CORE 4.5 + get_raw_data_all(info, MMS_VSC_CMD_INTENSITY); + */ + get_intensity_data(info); + info->cmd_state = 2; + + dev_info(&info->client->dev, "%s\n", __func__); +} + +static ssize_t store_cmd(struct device *dev, struct device_attribute + *devattr, const char *buf, size_t count) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + + char *cur, *start, *end; + char buff[TSP_CMD_STR_LEN] = {0}; + int len, i; + struct tsp_cmd *tsp_cmd_ptr = NULL; + char delim = ','; + bool cmd_found = false; + int param_cnt = 0; + + + if (info->cmd_is_running == true) { + dev_err(&info->client->dev, "tsp_cmd: other cmd is running.\n"); + goto err_out; + } + + + /* check lock */ + mutex_lock(&info->cmd_lock); + info->cmd_is_running = true; + mutex_unlock(&info->cmd_lock); + + info->cmd_state = 1; + + for (i = 0; i < ARRAY_SIZE(info->cmd_param); i++) + info->cmd_param[i] = 0; + + len = (int)count; + if (*(buf + len - 1) == '\n') + len--; + memset(info->cmd, 0x00, ARRAY_SIZE(info->cmd)); + memcpy(info->cmd, buf, len); + + cur = strchr(buf, (int)delim); + if (cur) + memcpy(buff, buf, cur - buf); + else + memcpy(buff, buf, len); + + /* find command */ + list_for_each_entry(tsp_cmd_ptr, &info->cmd_list_head, list) { + if (!strcmp(buff, tsp_cmd_ptr->cmd_name)) { + cmd_found = true; + break; + } + } + + /* set not_support_cmd */ + if (!cmd_found) { + list_for_each_entry(tsp_cmd_ptr, &info->cmd_list_head, list) { + if (!strcmp("not_support_cmd", tsp_cmd_ptr->cmd_name)) + break; + } + } + + /* parsing parameters */ + if (cur && cmd_found) { + cur++; + start = cur; + memset(buff, 0x00, ARRAY_SIZE(buff)); + do { + if (*cur == delim || cur - buf == len) { + end = cur; + memcpy(buff, start, end - start); + *(buff + strlen(buff)) = '\0'; + if (kstrtoint(buff, 10, + info->cmd_param + param_cnt) < 0) + goto err_out; + start = cur + 1; + memset(buff, 0x00, ARRAY_SIZE(buff)); + param_cnt++; + } + cur++; + } while (cur - buf <= len); + } + + dev_info(&client->dev, "cmd = %s\n", tsp_cmd_ptr->cmd_name); + for (i = 0; i < param_cnt; i++) + dev_info(&client->dev, "cmd param %d= %d\n", i, + info->cmd_param[i]); + + tsp_cmd_ptr->cmd_func(info); + + +err_out: + return count; +} + +static ssize_t show_cmd_status(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + char buff[16] = {0}; + + dev_info(&info->client->dev, "tsp cmd: status:%d\n", info->cmd_state); + + if (info->cmd_state == 0) + snprintf(buff, sizeof(buff), "WAITING"); + + else if (info->cmd_state == 1) + snprintf(buff, sizeof(buff), "RUNNING"); + + else if (info->cmd_state == 2) + snprintf(buff, sizeof(buff), "OK"); + + else if (info->cmd_state == 3) + snprintf(buff, sizeof(buff), "FAIL"); + + else if (info->cmd_state == 4) + snprintf(buff, sizeof(buff), "NOT_APPLICABLE"); + + return snprintf(buf, TSP_BUF_SIZE, "%s\n", buff); +} + +static ssize_t show_cmd_result(struct device *dev, struct device_attribute + *devattr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + + dev_info(&info->client->dev, "tsp cmd: result: %s\n", info->cmd_result); + + mutex_lock(&info->cmd_lock); + info->cmd_is_running = false; + mutex_unlock(&info->cmd_lock); + + info->cmd_state = 0; + + return snprintf(buf, TSP_BUF_SIZE, "%s\n", info->cmd_result); +} + +#ifdef ESD_DEBUG + +static bool intensity_log_flag; + +static ssize_t show_intensity_logging_on(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + struct file *fp; + char log_data[160] = {0,}; + char buff[16] = {0,}; + mm_segment_t old_fs; + long nwrite; + u32 val; + int i, y, c; + + old_fs = get_fs(); + set_fs(KERNEL_DS); + +#define MELFAS_DEBUG_LOG_PATH "/sdcard/melfas_log" + + dev_info(&client->dev, "%s: start.\n", __func__); + fp = filp_open(MELFAS_DEBUG_LOG_PATH, O_RDWR|O_CREAT, + S_IRWXU|S_IRWXG|S_IRWXO); + if (IS_ERR(fp)) { + dev_err(&client->dev, "%s: fail to open log file\n", __func__); + goto open_err; + } + + intensity_log_flag = 1; + do { + for (y = 0; y < 3; y++) { + /* for tx chanel 0~2 */ + memset(log_data, 0x00, 160); + + snprintf(buff, 16, "%1u: ", y); + strncat(log_data, buff, strnlen(buff, 16)); + + for (i = 0; i < RX_NUM; i++) { + val = get_raw_data_one(info, i, y, + MMS_VSC_CMD_INTENSITY); + snprintf(buff, 16, "%5u, ", val); + strncat(log_data, buff, strnlen(buff, 16)); + } + memset(buff, '\n', 2); + c = (y == 2) ? 2 : 1; + strncat(log_data, buff, c); + nwrite = vfs_write(fp, (const char __user *)log_data, + strnlen(log_data, 160), &fp->f_pos); + } + usleep_range(5000); + } while (intensity_log_flag); + + filp_close(fp, current->files); + set_fs(old_fs); + + return 0; + + open_err: + set_fs(old_fs); + return FAIL; +} + +static ssize_t show_intensity_logging_off(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + intensity_log_flag = 0; + usleep_range(10000); + get_raw_data_all(info, MMS_VSC_CMD_EXIT); + return 0; +} + +#endif + +#ifdef SEC_TKEY_FACTORY_TEST +static ssize_t tkey_threshold_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + int tkey_threshold; + + disable_irq(info->irq); + tkey_threshold = i2c_smbus_read_byte_data(info->client, 0x20); + dev_info(&client->dev, "touch key threshold: %d\n", tkey_threshold); + enable_irq(info->irq); + return snprintf(buf, sizeof(int), "%d\n", tkey_threshold); +} + +static ssize_t back_key_state_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + int i, ret, val; + + for (i = 0; i < ARRAY_SIZE(info->keycode); i++) { + if (info->keycode[i] == KEY_BACK) + break; + } + dev_info(&client->dev, "back key state: %d\n", info->key_pressed[i]); + + /* back key*/ + ret = get_raw_data_tkey(info, 1, VSC_INTENSITY_TK); + + if (ret < 0) + dev_err(&client->dev, "%s: fail to read (%d)\n", __func__, ret); + + val = (u16)ret; + + dev_info(&client->dev, "%s: val=%d\n", __func__, val); + return sprintf(buf, "%d\n", val); +} + +static ssize_t home_key_state_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + int i, ret, val; + + for (i = 0; i < ARRAY_SIZE(info->keycode); i++) { + if (info->keycode[i] == KEY_HOMEPAGE) + break; + } + dev_info(&client->dev, "home key state: %d\n", info->key_pressed[i]); + + /* home key*/ + ret = get_raw_data_tkey(info, 1, VSC_INTENSITY_TK); + if (ret < 0) + dev_err(&client->dev, "%s: fail to read (%d)\n", __func__, ret); + + val = (u16)ret; + + dev_info(&client->dev, "%s: val=%d\n", __func__, val); + return sprintf(buf, "%d\n", val); +} + +static ssize_t recent_key_state_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + int i, ret, val; + + for (i = 0; i < ARRAY_SIZE(info->keycode); i++) { + if (info->keycode[i] == KEY_F3) + break; + } + dev_info(&client->dev, "recent key state: %d\n", info->key_pressed[i]); + + /* recent key*/ + ret = get_raw_data_tkey(info, 2, VSC_INTENSITY_TK); + if (ret < 0) + dev_err(&client->dev, "%s: fail to read (%d)\n", __func__, ret); + + val = (u16)ret; + + dev_info(&client->dev, "%s: val=%d\n", __func__, val); + return sprintf(buf, "%d\n", val); +} + +static ssize_t menu_key_state_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + int i, ret, val; + + for (i = 0; i < ARRAY_SIZE(info->keycode); i++) { + if (info->keycode[i] == KEY_MENU) + break; + } + dev_info(&client->dev, "menu key state: %d\n", info->key_pressed[i]); + + /* menu key*/ + ret = get_raw_data_tkey(info, 0, VSC_INTENSITY_TK); + + if (ret < 0) + dev_err(&client->dev, "%s: fail to read (%d)\n", __func__, ret); + + val = (u16)ret; + + dev_info(&client->dev, "%s: val=%d\n", __func__, val); + return sprintf(buf, "%d\n", val); +} + +static ssize_t tkey_rawcounter_show0(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + u32 ret; + u16 val; + + /* back key*/ + ret = get_raw_data_tkey(info, 0, VSC_RAW_TK); + if (ret < 0) + dev_err(&client->dev, "%s: fail to read (%d)\n", __func__, ret); + + val = (u16)ret; + + dev_info(&client->dev, "%s: val=%d\n", __func__, val); + return sprintf(buf, "%d\n", val); +} + +static ssize_t tkey_rawcounter_show1(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + int ret; + u16 val; + + /* home key*/ + ret = get_raw_data_tkey(info, 1, VSC_RAW_TK); + if (ret < 0) + dev_err(&client->dev, "%s: fail to read (%d)\n", __func__, ret); + + val = (u16)ret; + + dev_info(&client->dev, "%s: val=%d\n", __func__, val); + return sprintf(buf, "%d\n", val); +} + +static ssize_t tkey_rawcounter_show2(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + int ret; + u16 val; + + /* recent key*/ + ret = get_raw_data_tkey(info, 2, VSC_RAW_TK); + if (ret < 0) + dev_err(&client->dev, "%s: fail to read (%d)\n", __func__, ret); + + val = (u16)ret; + + dev_info(&client->dev, "%s: val=%d\n", __func__, val); + return sprintf(buf, "%d\n", val); +} + +static ssize_t tkey_rawcounter_show3(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct mms_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + int ret; + u16 val; + + /* menu key*/ + ret = get_raw_data_tkey(info, 3, VSC_RAW_TK); + if (ret < 0) + dev_err(&client->dev, "%s: fail to read (%d)\n", __func__, ret); + + val = (u16)ret; + + dev_info(&client->dev, "%s: val=%d\n", __func__, val); + return sprintf(buf, "%d\n", val); +} +#endif + + + +#ifdef SEC_TKEY_FACTORY_TEST +static DEVICE_ATTR(touchkey_threshold, S_IRUGO, tkey_threshold_show, NULL); +static DEVICE_ATTR(touchkey_back, S_IRUGO, back_key_state_show, NULL); +static DEVICE_ATTR(touchkey_home, S_IRUGO, home_key_state_show, NULL); +static DEVICE_ATTR(touchkey_recent, S_IRUGO, recent_key_state_show, NULL); +static DEVICE_ATTR(touchkey_menu, S_IRUGO, menu_key_state_show, NULL); +static DEVICE_ATTR(touchkey_raw_data0, S_IRUGO, tkey_rawcounter_show0, NULL) ; +static DEVICE_ATTR(touchkey_raw_data1, S_IRUGO, tkey_rawcounter_show1, NULL) ; +static DEVICE_ATTR(touchkey_raw_data2, S_IRUGO, tkey_rawcounter_show2, NULL) ; +static DEVICE_ATTR(touchkey_raw_data3, S_IRUGO, tkey_rawcounter_show3, NULL) ; + +static struct attribute *touchkey_attributes[] = { + &dev_attr_touchkey_threshold.attr, + &dev_attr_touchkey_back.attr, + &dev_attr_touchkey_home.attr, + &dev_attr_touchkey_recent.attr, + &dev_attr_touchkey_menu.attr, + &dev_attr_touchkey_raw_data0.attr, + &dev_attr_touchkey_raw_data1.attr, + &dev_attr_touchkey_raw_data2.attr, + &dev_attr_touchkey_raw_data3.attr, + NULL, +}; +static struct attribute_group touchkey_attr_group = { + .attrs = touchkey_attributes, +}; + +static int factory_init_tk(struct mms_ts_info *info) +{ + struct i2c_client *client = info->client; + int ret; + + info->dev_tk = device_create(sec_class, NULL, (dev_t)NULL, info, + "sec_touchkey"); + if (IS_ERR(info->dev_tk)) { + dev_err(&client->dev, "Failed to create fac touchkey dev\n"); + ret = -ENODEV; + info->dev_tk = NULL; + goto err_create_dev_tk; + } + + ret = sysfs_create_group(&info->dev_tk->kobj, &touchkey_attr_group); + if (ret) { + dev_err(&client->dev, "Failed to create sysfs (touchkey_attr_group).\n"); + ret = (ret > 0) ? -ret : ret; + goto err_create_tk_sysfs; + } + + info->key_pressed = kzalloc(sizeof(bool) * ARRAY_SIZE(info->keycode), + GFP_KERNEL); + if (!info->key_pressed) { + dev_err(&client->dev, "Failed to allocate memory\n"); + ret = -ENOMEM; + goto err_alloc; + } + + return 0; + +err_alloc: + sysfs_remove_group(&info->dev_tk->kobj, &touchkey_attr_group); +err_create_tk_sysfs: +err_create_dev_tk: + return ret; +} +#endif + + +static DEVICE_ATTR(close_tsp_test, S_IRUGO, show_close_tsp_test, NULL); +static DEVICE_ATTR(cmd, S_IWUSR | S_IWGRP, NULL, store_cmd); +static DEVICE_ATTR(cmd_status, S_IRUGO, show_cmd_status, NULL); +static DEVICE_ATTR(cmd_result, S_IRUGO, show_cmd_result, NULL); +#ifdef ESD_DEBUG +static DEVICE_ATTR(intensity_logging_on, S_IRUGO, show_intensity_logging_on, + NULL); +static DEVICE_ATTR(intensity_logging_off, S_IRUGO, show_intensity_logging_off, + NULL); +#endif + +static struct attribute *sec_touch_facotry_attributes[] = { + &dev_attr_close_tsp_test.attr, + &dev_attr_cmd.attr, + &dev_attr_cmd_status.attr, + &dev_attr_cmd_result.attr, +#ifdef ESD_DEBUG + &dev_attr_intensity_logging_on.attr, + &dev_attr_intensity_logging_off.attr, +#endif + NULL, +}; + +static struct attribute_group sec_touch_factory_attr_group = { + .attrs = sec_touch_facotry_attributes, +}; +#endif /* SEC_TSP_FACTORY_TEST */ + + +struct class *sec_class; + +static int __init mms_ts_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); + struct mms_ts_info *info; + struct input_dev *input_dev; + int ret = 0; + int i; + int boot_v, core_v, config_v, fw_v; +#ifdef SEC_TSP_FACTORY_TEST + struct device *fac_dev_ts; +#endif + touch_is_pressed = 0; + + if (!i2c_check_functionality(adapter, I2C_FUNC_I2C)) + return -EIO; + + info = kzalloc(sizeof(struct mms_ts_info), GFP_KERNEL); + if (!info) { + dev_err(&client->dev, "Failed to allocate memory\n"); + ret = -ENOMEM; + goto err_alloc; + } + + input_dev = input_allocate_device(); + if (!input_dev) { + dev_err(&client->dev, "Failed to allocate memory for input device\n"); + ret = -ENOMEM; + goto err_input_alloc; + } + + info->client = client; + info->input_dev = input_dev; + info->pdata = client->dev.platform_data; + info->irq = -1; + mutex_init(&info->lock); + if (info->pdata) { + info->max_x = info->pdata->max_x; + info->max_y = info->pdata->max_y; + info->invert_x = info->pdata->invert_x; + info->invert_y = info->pdata->invert_y; + } else { + info->max_x = 720; + info->max_y = 1280; + } + + client->irq = gpio_to_irq(info->pdata->gpio_int); + + i2c_set_clientdata(client, info); +/* + ret = get_hw_version(info); + if (ret < 0 && ret != 0xff) { + dev_err(&client->dev, + "failed to i2c transfer..no device[%d]\n", ret); + goto err_i2c_transfer; + } +*/ + info->register_cb = info->pdata->register_cb; + info->callbacks.inform_charger = melfas_ta_cb; + if (info->register_cb) + info->register_cb(&info->callbacks); + + info->use_surface_touch = info->pdata->use_surface_touch; + + input_mt_init_slots(input_dev, MAX_FINGERS, 0); + + snprintf(info->phys, sizeof(info->phys), + "%s/input0", dev_name(&client->dev)); + input_dev->name = "sec_touchscreen"; /*= "Melfas MMSxxx Touchscreen";*/ + input_dev->phys = info->phys; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(INPUT_PROP_DIRECT, input_dev->propbit); + printk("mms_ts_probe, max_x %d, max_y %d\n", info->max_x, info->max_y); + input_set_abs_params(input_dev, ABS_MT_WIDTH_MAJOR, 0, MAX_WIDTH, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_X, + 0, info->max_x, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, + 0, info->max_y, 0, 0); + if (info->use_surface_touch) { + input_set_abs_params(info->input_dev, ABS_MT_TOUCH_MAJOR, + 0, MAX_PRESSURE, 0, 0); + input_set_abs_params(info->input_dev, ABS_MT_TOUCH_MINOR, + 0, MAX_PRESSURE, 0, 0); + +#if 0 /* SPRD's test code */ + input_set_abs_params(input_dev, ABS_MT_ANGLE, + MIN_ANGLE, MAX_ANGLE, 0, 0); + input_set_abs_params(input_dev, ABS_MT_PALM, + 0, 1, 0, 0); +#endif + } + + if (info->pdata->use_touchkey) { + dev_info(&client->dev, "Melfas ts use touchkey\n"); + info->use_touchkey = info->pdata->use_touchkey; + memcpy(info->keycode, info->pdata->touchkey_keycode, + sizeof(info->pdata->touchkey_keycode)); + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(EV_LED, input_dev->evbit); + __set_bit(LED_MISC, input_dev->ledbit); + for (i = 0; i < ARRAY_SIZE(info->keycode); i++) + set_bit(info->keycode[i], input_dev->keybit); + } + + input_set_drvdata(input_dev, info); + + ret = input_register_device(input_dev); + if (ret) { + dev_err(&client->dev, + "Failed to register input dev (%d)\n", ret); + goto err_reg_input_dev; + } + +#ifdef CONFIG_SEC_DVFS +#if TOUCH_BOOSTER + mutex_init(&info->dvfs_lock); + INIT_DELAYED_WORK(&info->work_dvfs_off, set_dvfs_off); + info->dvfs_lock_status = false; +#endif +#endif + /* Turn on touch screen power */ + info->pdata->vdd_on(1); + + /* Key led power */ + info->pdata->tkey_led_vdd_on(1); + +#if ISC_DL_MODE + info->fw_core_ver = get_fw_version(info, SEC_CORE); + dev_info(&client->dev, "core version : 0x%02x\n", info->fw_core_ver); + + if (info->fw_core_ver != 0x53) { + dev_err(&client->dev, "core version must be 0x53\n"); + dev_info(&client->dev, "excute core firmware update\n"); + ret = isp_fw_update(info); + if (ret) { + dev_err(&client->dev, + "Failed to initialize (%d)\n", ret); + goto err_reg_input_dev; + } + info->fw_core_ver = get_fw_version(info, SEC_CORE); + } + + info->fw_ic_ver = get_fw_version(info, SEC_CONFIG); + if ((info->fw_ic_ver < FW_VERSION) || (info->fw_ic_ver == 0xff)) { + dev_info(&client->dev, "firmware update\n"); + dev_info(&client->dev, "ic:0x%x, bin:0x%x\n", + info->fw_ic_ver, FW_VERSION); + ret = isc_fw_update(info); + if (ret) { + dev_err(&client->dev, "retry isp fw update\n"); + ret = isp_fw_update(info); + if (ret) { + dev_err(&client->dev, + "Failed to initialize (%d)\n", ret); + goto err_reg_input_dev; + } + } + } +#else + info->fw_ic_ver = get_fw_version(info, SEC_CONFIG); + if (info->fw_ic_ver == FW_VERSION) + dev_info(&client->dev, "fw update does not need(1)\n"); +/* SPRD remove this part */ +/* + else if (machine_is_jasper2()) + ret = isp_fw_update(info); +*/ + else + dev_info(&client->dev, "fw update does not need(2)\n"); + +#endif + info->palm_status = 0; + info->enabled = true; + + mms_ts_finish_config(info); + +#ifdef CONFIG_HAS_EARLYSUSPEND + info->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN - 1; + info->early_suspend.suspend = mms_ts_early_suspend; + info->early_suspend.resume = mms_ts_late_resume; + register_early_suspend(&info->early_suspend); +#endif + + boot_v = i2c_smbus_read_byte_data(info->client, 0xE1); + core_v = i2c_smbus_read_byte_data(info->client, 0xE2); + config_v = i2c_smbus_read_byte_data(info->client, 0xE3); + fw_v = i2c_smbus_read_byte_data(info->client, 0xF3); + + dev_info(&client->dev, "Boot:0x%02x, CORE:0x%02x, CONFIG:0x%02x, %d\n", + boot_v, core_v, config_v, fw_v); + +#ifdef SEC_TSP_FACTORY_TEST + INIT_LIST_HEAD(&info->cmd_list_head); + for (i = 0; i < ARRAY_SIZE(tsp_cmds); i++) + list_add_tail(&tsp_cmds[i].list, &info->cmd_list_head); + + mutex_init(&info->cmd_lock); + info->cmd_is_running = false; + + sec_class = class_create(THIS_MODULE, "sec"); + if (IS_ERR(sec_class)) { + pr_err("Failed to create class(sec)!\n"); + return PTR_ERR(sec_class); + } + + fac_dev_ts = device_create(sec_class, + NULL, 0, info, "tsp"); + if (IS_ERR(fac_dev_ts)) + dev_err(&client->dev, "Failed to create device for the sysfs\n"); + + ret = sysfs_create_group(&fac_dev_ts->kobj, + &sec_touch_factory_attr_group); + if (ret < 0) { + dev_err(&client->dev, "Failed to create sysfs group\n"); + goto err_sysfs_create_group_touch; + } +#endif + +#ifdef SEC_TKEY_FACTORY_TEST + ret = factory_init_tk(info); + if (ret < 0) { + dev_err(&client->dev, "Failed to init factory init (tk)\n"); + goto err_factory_init; + } +#endif + +#ifdef CONFIG_LEDS_CLASS + if (info->pdata->use_touchkey) { + info->leds.name = TOUCHKEY_BACKLIGHT; + info->leds.brightness = LED_FULL; + info->leds.max_brightness = LED_FULL; + info->leds.brightness_set = msm_tkey_led_set; + + ret = led_classdev_register(&client->dev, &info->leds); + if (ret) { + dev_err(&client->dev, + "Failed to register led(%d)\n", ret); + goto fail_led_reg; + } + } +#endif + + return 0; +#ifdef CONFIG_LEDS_CLASS +fail_led_reg: + led_classdev_unregister(&info->leds); +#endif +#ifdef SEC_TSP_FACTORY_TEST +err_sysfs_create_group_touch: + sysfs_remove_group(&fac_dev_ts->kobj, + &sec_touch_factory_attr_group); +#endif +#ifdef SEC_TKEY_FACTORY_TEST +err_factory_init: + free_irq(info->irq, info); +#endif +err_reg_input_dev: + input_free_device(input_dev); +//err_i2c_transfer: +err_input_alloc: + kfree(info->fw_name); + kfree(info); +err_alloc: + /* turn off power */ + info->pdata->vdd_on(0); + /* Key led power */ + info->pdata->tkey_led_vdd_on(0); + return ret; +} + +static int __exit mms_ts_remove(struct i2c_client *client) +{ + struct mms_ts_info *info = i2c_get_clientdata(client); + + led_classdev_unregister(&info->leds); + if (info->irq >= 0) + free_irq(info->irq, info); + input_unregister_device(info->input_dev); +#ifdef SEC_TKEY_FACTORY_TEST + sysfs_remove_group(&info->dev_tk->kobj, &touchkey_attr_group); + kfree(info->key_pressed); +#endif + kfree(info->fw_name); + kfree(info); + + return 0; +} + +#if defined(CONFIG_PM) || defined(CONFIG_HAS_EARLYSUSPEND) +static int mms_ts_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct mms_ts_info *info = i2c_get_clientdata(client); + + if (!info->enabled) + return 0; + + pr_notice("%s: users=%d\n", __func__, info->input_dev->users); + mutex_lock(&info->input_dev->mutex); + if (!info->input_dev->users) + goto out; +#ifdef CONFIG_LEDS_CLASS + if (info->pdata->use_touchkey) { + info->tkey_led_reserved = true; + info->pdata->tkey_led_vdd_on(0); + } +#endif + disable_irq(info->irq); + info->enabled = false; + touch_is_pressed = 0; + release_all_fingers(info); + info->pdata->vdd_on(0); + msleep(50); + +out: + mutex_unlock(&info->input_dev->mutex); + return 0; +} + +static int mms_ts_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct mms_ts_info *info = i2c_get_clientdata(client); + + if (info->enabled) + return 0; + + pr_notice("%s: users=%d\n", __func__, info->input_dev->users); + + info->pdata->vdd_on(1); + msleep(120); +#ifdef CONFIG_LEDS_CLASS + if (info->pdata->use_touchkey && info->tkey_led_reserved) { + info->tkey_led_reserved = false; + info->pdata->tkey_led_vdd_on(1); + } +#endif + + if (info->ta_status) { + dev_notice(&client->dev, "TA connect!!!\n"); + i2c_smbus_write_byte_data(info->client, 0x33, 0x1); + } else { + dev_notice(&client->dev, "TA disconnect!!!\n"); + i2c_smbus_write_byte_data(info->client, 0x33, 0x2); + } + + mutex_lock(&info->input_dev->mutex); + info->enabled = true; + mms_set_noise_mode(info); + enable_irq(info->irq); + mutex_unlock(&info->input_dev->mutex); + + return 0; +} +#endif + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void mms_ts_early_suspend(struct early_suspend *h) +{ + struct mms_ts_info *info; + info = container_of(h, struct mms_ts_info, early_suspend); + mms_ts_suspend(&info->client->dev); +} + +static void mms_ts_late_resume(struct early_suspend *h) +{ + struct mms_ts_info *info; + info = container_of(h, struct mms_ts_info, early_suspend); + mms_ts_resume(&info->client->dev); +} +#endif + +#if defined(CONFIG_PM) && !defined(CONFIG_HAS_EARLYSUSPEND) +static const struct dev_pm_ops mms_ts_pm_ops = { + .suspend = mms_ts_suspend, + .resume = mms_ts_resume, +}; +#endif + +static const struct i2c_device_id mms_ts_id[] = { + { "mms_ts", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, mms_ts_id); + +static struct i2c_driver mms_ts_driver = { + .probe = mms_ts_probe, + .remove = mms_ts_remove, + .driver = { + .name = "mms_ts", +#if defined(CONFIG_PM) && !defined(CONFIG_HAS_EARLYSUSPEND) + .pm = &mms_ts_pm_ops, +#endif + }, + .id_table = mms_ts_id, +}; + +static int __init mms_ts_init(void) +{ +#ifdef CONFIG_SAMSUNG_LPM_MODE + if (poweroff_charging) { + pr_notice("%s : LPM Charging Mode!!\n", __func__); + return 0; + } +#endif + + return i2c_add_driver(&mms_ts_driver); +} + +static void __exit mms_ts_exit(void) +{ + i2c_del_driver(&mms_ts_driver); +} + +module_init(mms_ts_init); +module_exit(mms_ts_exit); + +/* Module information */ +MODULE_DESCRIPTION("Touchscreen driver for Melfas MMS-series controllers"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/mms_ts_fw.h b/drivers/input/touchscreen/mms_ts_fw.h new file mode 100644 index 00000000..7653cce1 --- /dev/null +++ b/drivers/input/touchscreen/mms_ts_fw.h @@ -0,0 +1,29 @@ +/* Melfas MMS-100 seies firmware list */ + + +#if defined(CONFIG_MACH_JASPER2) +#define FW_VERSION 0x2 +#include "jasper2_fw.h" + +#elif defined(CONFIG_MACH_STUNNER) +#define SEC_TKEY_FACTORY_TEST +#define FW_VERSION 0x20 +#include "stunner_fw.h" + +#elif defined(CONFIG_MACH_INGRAHAM2) +#define SEC_TKEY_FACTORY_TEST +#define FW_VERSION 0x1 +#include "ingraham2_fw.h" + +#else +#define FW_VERSION 0x0 +const size_t MELFAS_binary_nLength = 0x00; +const u8 MELFAS_binary[] = { + +}; +#endif + +#if defined(CONFIG_MIPI_SAMSUNG_ESD_REFRESH) +extern void set_esd_enable(void); +extern void set_esd_disable(void); +#endif diff --git a/drivers/input/touchscreen/msg2138.c b/drivers/input/touchscreen/msg2138.c new file mode 100644 index 00000000..efa1e76d --- /dev/null +++ b/drivers/input/touchscreen/msg2138.c @@ -0,0 +1,4581 @@ +/* + * Driver for Pixcir I2C touchscreen controllers. + * + * Copyright (C) 2010-2011 Pixcir, Inc. + * + * pixcir_i2c_ts.c V3.ss0 from v3.0 support TangoC solution and remove the previous soltutions + * + * pixcir_i2c_ts.c V3.1 Add bootloader function 7 + * Add RESET_TP 9 + * Add ENABLE_IRQ 10 + * Add DISABLE_IRQ 11 + * Add BOOTLOADER_STU 16 + * Add ATTB_VALUE 17 + * Add Write/Read Interface for APP software + * + * pixcir_i2c_ts.c V3.2.0A for INT_MODE 0x0A + * arrange to pixcir 10 slot + * + * 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. + * + * You should have received a copy of the GNU General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#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 +#include +#include +#include +#ifdef CONFIG_HAS_EARLYSUSPEND +#include +#endif +#if defined(CONFIG_I2C_SPRD) || defined(CONFIG_I2C_SPRD_V1) +#include +#endif + +#include +#include +#include + +/*********************************Bee-0928-TOP****************************************/ +//#define SYSFS_DEBUG //cg,20130929 +//#define PIXCIR_DEBUG +//#define PIXCIR_CQ_CALL 0 +#ifdef PIXCIR_DEBUG +#define PIXCIR_DBG(format, ...) \ + printk(KERN_INFO "PIXCIR_TS " format "\n", ## __VA_ARGS__) +#define TPD_DEBUG(format, ...) \ + printk(KERN_INFO "PIXCIR_TS " format "\n", ## __VA_ARGS__) +#else +#define PIXCIR_DBG(format, ...) +#define TPD_DEBUG(format, ...) +#endif + +#define USE_WAIT_QUEUE 1 +#define USE_THREADED_IRQ 0 +#define USE_WORK_QUEUE 0 + +#define TOUCH_VIRTUAL_KEYS +//#define TP_X_CHANGE +#define TP_XY_CHANGE 0 +#define SLAVE_ADDR 0x48 +#define BOOTLOADER_ADDR 0x5d + +#ifndef I2C_MAJOR +#define I2C_MAJOR 125 +#endif + +#define I2C_MINORS 256 +#define CALIBRATION_FLAG 1 +#define BOOTLOADER 7 +#define RESET_TP 9 +#define ENABLE_IRQ 10 +#define DISABLE_IRQ 11 +#define BOOTLOADER_STU 16 +#define ATTB_VALUE 17 +#define MAX_FINGER_NUM 5 +#define X_OFFSET 30 +#define Y_OFFSET 40 +#define TPD_OK 0 + +#define TPD_REG_BASE 0x00 +#define TPD_SOFT_RESET_MODE 0x01 +#define TPD_OP_MODE 0x00 +#define TPD_LOW_PWR_MODE 0x04 +#define TPD_SYSINFO_MODE 0x10 +#define GET_HSTMODE(reg) ((reg & 0x70) >> 4) // in op mode or not +#define GET_BOOTLOADERMODE(reg) ((reg & 0x10) >> 4) // in bl mode +//#define __FIRMWARE_UPDATE__ +#define REG_RT_PRIO(x) ((x) | 0x10000000) +#define RTPM_PRIO_TPD REG_RT_PRIO(4) + +#if USE_WAIT_QUEUE +static struct task_struct *thread = NULL; +static DECLARE_WAIT_QUEUE_HEAD(waiter); +static int tpd_flag = 0; +#endif + +struct pixcir_i2c_ts_data { + struct i2c_client *client; + struct input_dev *input; +#if USE_WORK_QUEUE + struct work_struct pen_event_work; + struct workqueue_struct *ts_workqueue; +#endif +#ifdef CONFIG_HAS_EARLYSUSPEND + struct work_struct resume_work; + struct workqueue_struct *ts_resume_workqueue; + struct early_suspend early_suspend; +#endif + struct msg2138_ts_platform_data *platform_data; + //const struct pixcir_ts_platform_data *chip; + bool exiting; +}; + +static unsigned char bl_cmd[] = { + 0x00, 0xFF, 0xA5, + 0x00, 0x01, 0x02, + 0x03, 0x04, 0x05, + 0x06, 0x07 +}; + //exit bl mode +struct tpd_operation_data_t { + unsigned char hst_mode; + unsigned char tt_mode; + unsigned char tt_stat; + + unsigned char x1_M,x1_L; + unsigned char y1_M,y1_L; + unsigned char z1; + unsigned char evnt_id; + + unsigned char x2_M,x2_L; + unsigned char y2_M,y2_L; + unsigned char r_0d; + unsigned char gest_cnt; + unsigned char gest_id; +}; +struct tpd_bootloader_data_t { + unsigned char bl_file; + unsigned char bl_status; + unsigned char bl_error; + unsigned char blver_hi,blver_lo; + unsigned char bld_blver_hi,bld_blver_lo; + + unsigned char ttspver_hi,ttspver_lo; + unsigned char appid_hi,appid_lo; + unsigned char appver_hi,appver_lo; + + unsigned char cid_0; + unsigned char cid_1; + unsigned char cid_2; +}; +struct tpd_sysinfo_data_t { + unsigned char hst_mode; + unsigned char mfg_cmd; + unsigned char mfg_stat; + unsigned char cid[3]; + unsigned char tt_undef1; + + unsigned char uid[8]; + unsigned char bl_verh; + unsigned char bl_verl; + + unsigned char tts_verh; + unsigned char tts_verl; + + unsigned char app_idh; + unsigned char app_idl; + unsigned char app_verh; + unsigned char app_verl; + + unsigned char tt_undef2[6]; + unsigned char act_intrvl; + unsigned char tch_tmout; + unsigned char lp_intrvl; +}; +struct touch_info { + int x1, y1; + int x2, y2; + int x3, y3; + int p1, p2,p3; + int count; +}; + +struct i2c_dev +{ + struct list_head list; + struct i2c_adapter *adap; + struct device *dev; +}; + +static struct i2c_client * msg21xx_i2c_client; +static struct pixcir_i2c_ts_data *msg21xx_i2c_ts_data; +//static unsigned char status_reg = 0; +static int global_irq; +static struct i2c_driver pixcir_i2c_ts_driver; +static struct class *i2c_dev_class; +static int MS_TS_MSG21XX_X_MAX = 0; +static int MS_TS_MSG21XX_Y_MAX = 0; + +static LIST_HEAD( i2c_dev_list); +static DEFINE_SPINLOCK( i2c_dev_list_lock); + +static int suspend_flag; +static struct early_suspend pixcir_early_suspend; + +static ssize_t pixcir_set_calibrate(struct device* cd, struct device_attribute *attr, + const char* buf, size_t len); +static ssize_t pixcir_show_suspend(struct device* cd,struct device_attribute *attr, char* buf); +static ssize_t pixcir_store_suspend(struct device* cd, struct device_attribute *attr,const char* buf, size_t len); +static void pixcir_ts_suspend(struct early_suspend *handler); +static void pixcir_ts_resume(struct early_suspend *handler); + +//static struct tpd_operation_data_t g_operation_data; +static struct tpd_bootloader_data_t g_bootloader_data; +static struct tpd_sysinfo_data_t g_sysinfo_data; +#ifdef SYSFS_DEBUG +static char *cg_fw_version = NULL; +#endif //cg,20130929 + +#define CTP_ID_MSG21XX 1 +#define CTP_ID_MSG21XXA 2 +#define FW_ADDR_MSG21XX (0xC4>>1) +static int HalTscrCReadI2CSeq(u8 addr, u8* read_data, u16 size) +{ + //according to your platform. + int rc; + + struct i2c_msg msgs[] = + { + { + .addr = addr, + .flags = I2C_M_RD, + .len = size, + .buf = read_data, + }, + }; + + rc = i2c_transfer(msg21xx_i2c_client->adapter, msgs, 1); + if( rc < 0 ) + { + printk("HalTscrCReadI2CSeq error %d\n", rc); + } + return rc; +} + +static int HalTscrCDevWriteI2CSeq(u8 addr, u8* data, u16 size) +{ + //according to your platform. + int rc; + struct i2c_msg msgs[] = + { + { + .addr = addr, + .flags = 0, + .len = size, + .buf = data, + }, + }; + rc = i2c_transfer(msg21xx_i2c_client->adapter, msgs, 1); + if( rc < 0 ) + { + printk("HalTscrCDevWriteI2CSeq error %d,addr = %d\n", rc,addr); + } + return rc; +} + +#ifdef __FIRMWARE_UPDATE__ +#define FW_ADDR_MSG21XX_TP (0x4C>>1) +#define FW_UPDATE_ADDR_MSG21XX (0x92>>1) +#define TP_DEBUG printk//(x) //x// +#define DBUG printk//(x) //x +static char *fw_version = NULL; + +static u8 temp[94][1024]; +u8 Fmr_Loader[1024]; +u32 crc_tab[256]; +static u8 g_dwiic_info_data[1024]; // Buffer for info data +static int FwDataCnt; +struct class *firmware_class; +struct device *firmware_cmd_dev; + +static void dbbusDWIICEnterSerialDebugMode(void) +{ + u8 data[5]; + + // Enter the Serial Debug Mode + data[0] = 0x53; + data[1] = 0x45; + data[2] = 0x52; + data[3] = 0x44; + data[4] = 0x42; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, data, 5); +} + +static void dbbusDWIICStopMCU(void) +{ + u8 data[1]; + + // Stop the MCU + data[0] = 0x37; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, data, 1); +} + +static void dbbusDWIICIICUseBus(void) +{ + u8 data[1]; + + // IIC Use Bus + data[0] = 0x35; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, data, 1); +} + +static void dbbusDWIICIICReshape(void) +{ + u8 data[1]; + + // IIC Re-shape + data[0] = 0x71; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, data, 1); +} + +static void dbbusDWIICIICNotUseBus(void) +{ + u8 data[1]; + + // IIC Not Use Bus + data[0] = 0x34; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, data, 1); +} + +static void dbbusDWIICNotStopMCU(void) +{ + u8 data[1]; + + // Not Stop the MCU + data[0] = 0x36; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, data, 1); +} + +static void dbbusDWIICExitSerialDebugMode(void) +{ + u8 data[1]; + + // Exit the Serial Debug Mode + data[0] = 0x45; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, data, 1); + + // Delay some interval to guard the next transaction + udelay ( 150);//200 ); // delay about 0.2ms +} + +static void drvISP_EntryIspMode(void) +{ + u8 bWriteData[5] = + { + 0x4D, 0x53, 0x54, 0x41, 0x52 + }; + printk("\n******%s come in*******\n",__FUNCTION__); + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, bWriteData, 5); + udelay ( 150 );//200 ); // delay about 0.1ms +} + +static u8 drvISP_Read(u8 n, u8* pDataToRead) //First it needs send 0x11 to notify we want to get flash data back. +{ + u8 Read_cmd = 0x11; + unsigned char dbbus_rx_data[2] = {0}; + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, &Read_cmd, 1); + //msctpc_LoopDelay ( 1 ); // delay about 100us***** + udelay( 800 );//200); + if (n == 1) + { + HalTscrCReadI2CSeq(FW_UPDATE_ADDR_MSG21XX, &dbbus_rx_data[0], 2); + *pDataToRead = dbbus_rx_data[0]; + TP_DEBUG("dbbus=%d,%d===drvISP_Read=====\n",dbbus_rx_data[0],dbbus_rx_data[1]); + } + else + { + HalTscrCReadI2CSeq(FW_UPDATE_ADDR_MSG21XX, pDataToRead, n); + } + + return 0; +} + +static void drvISP_WriteEnable(void) +{ + u8 bWriteData[2] = + { + 0x10, 0x06 + }; + u8 bWriteData1 = 0x12; + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, bWriteData, 2); + udelay(150);//1.16 + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, &bWriteData1, 1); +} + + +static void drvISP_ExitIspMode(void) +{ + u8 bWriteData = 0x24; + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, &bWriteData, 1); + udelay( 150 );//200); +} + +static u8 drvISP_ReadStatus(void) +{ + u8 bReadData = 0; + u8 bWriteData[2] = + { + 0x10, 0x05 + }; + u8 bWriteData1 = 0x12; + + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, bWriteData, 2); + //msctpc_LoopDelay ( 1 ); // delay about 100us***** + udelay(150);//200); + drvISP_Read(1, &bReadData); + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, &bWriteData1, 1); + return bReadData; +} + + +static void drvISP_BlockErase(u32 addr) +{ + u8 bWriteData[5] = { 0x00, 0x00, 0x00, 0x00, 0x00 }; + u8 bWriteData1 = 0x12; + printk("\n******%s come in*******\n",__FUNCTION__); + u32 timeOutCount=0; + drvISP_WriteEnable(); + + //Enable write status register + bWriteData[0] = 0x10; + bWriteData[1] = 0x50; + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, bWriteData, 2); + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, &bWriteData1, 1); + + //Write Status + bWriteData[0] = 0x10; + bWriteData[1] = 0x01; + bWriteData[2] = 0x00; + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, bWriteData, 3); + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, &bWriteData1, 1); + + //Write disable + bWriteData[0] = 0x10; + bWriteData[1] = 0x04; + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, bWriteData, 2); + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, &bWriteData1, 1); + //msctpc_LoopDelay ( 1 ); // delay about 100us***** + udelay(150);//200); + timeOutCount=0; + while ( ( drvISP_ReadStatus() & 0x01 ) == 0x01 ) + { + timeOutCount++; + if ( timeOutCount >= 100000 ) break; /* around 1 sec timeout */ + } + drvISP_WriteEnable(); + + bWriteData[0] = 0x10; + bWriteData[1] = 0xC7;//0xD8; //Block Erase + //bWriteData[2] = ((addr >> 16) & 0xFF) ; + //bWriteData[3] = ((addr >> 8) & 0xFF) ; + //bWriteData[4] = (addr & 0xFF) ; + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, bWriteData, 2); + //HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, &bWriteData, 5); + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, &bWriteData1, 1); + //msctpc_LoopDelay ( 1 ); // delay about 100us***** + udelay(150);//200); + timeOutCount=0; + while ( ( drvISP_ReadStatus() & 0x01 ) == 0x01 ) + { + timeOutCount++; + if ( timeOutCount >= 500000 ) break; /* around 5 sec timeout */ + } +} + +static void drvISP_Program(u16 k, u8* pDataToWrite) +{ + u16 i = 0; + u16 j = 0; + //u16 n = 0; + u8 TX_data[133]; + u8 bWriteData1 = 0x12; + u32 addr = k * 1024; + u32 timeOutCount=0; + for (j = 0; j < 8; j++) //128*8 cycle + { + TX_data[0] = 0x10; + TX_data[1] = 0x02;// Page Program CMD + TX_data[2] = (addr + 128 * j) >> 16; + TX_data[3] = (addr + 128 * j) >> 8; + TX_data[4] = (addr + 128 * j); + for (i = 0; i < 128; i++) + { + TX_data[5 + i] = pDataToWrite[j * 128 + i]; + } + //msctpc_LoopDelay ( 1 ); // delay about 100us***** + udelay(150);//200); + + timeOutCount=0; + while ( ( drvISP_ReadStatus() & 0x01 ) == 0x01 ) + { + timeOutCount++; + if ( timeOutCount >= 100000 ) break; /* around 1 sec timeout */ + } + + drvISP_WriteEnable(); + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, TX_data, 133); //write 133 byte per cycle + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, &bWriteData1, 1); + } +} + +static ssize_t firmware_update_show ( struct device *dev, + struct device_attribute *attr, char *buf ) +{ + return sprintf ( buf, "%s\n", fw_version ); +} +/*reset the chip*/ +static void _HalTscrHWReset(void) +{ + struct msg2138_ts_platform_data *pdata = msg21xx_i2c_ts_data->platform_data; + gpio_direction_output(pdata->reset_gpio_number, 1); + gpio_set_value(pdata->reset_gpio_number, 1); + gpio_set_value(pdata->reset_gpio_number, 0); + mdelay(10); /* Note that the RST must be in LOW 10ms at least */ + gpio_set_value(pdata->reset_gpio_number, 1); + /* Enable the interrupt service thread/routine for INT after 50ms */ + mdelay(50); +} + +static void drvISP_Verify ( u16 k, u8* pDataToVerify ) +{ + u16 i = 0, j = 0; + u8 bWriteData[5] ={ 0x10, 0x03, 0, 0, 0 }; + u8 RX_data[256]; + u8 bWriteData1 = 0x12; + u32 addr = k * 1024; + u8 index = 0; + u32 timeOutCount; + for ( j = 0; j < 8; j++ ) //128*8 cycle + { + bWriteData[2] = ( u8 ) ( ( addr + j * 128 ) >> 16 ); + bWriteData[3] = ( u8 ) ( ( addr + j * 128 ) >> 8 ); + bWriteData[4] = ( u8 ) ( addr + j * 128 ); + udelay ( 100 ); // delay about 100us***** + + timeOutCount = 0; + while ( ( drvISP_ReadStatus() & 0x01 ) == 0x01 ) + { + timeOutCount++; + if ( timeOutCount >= 100000 ) break; /* around 1 sec timeout */ + } + + HalTscrCDevWriteI2CSeq ( FW_UPDATE_ADDR_MSG21XX, bWriteData, 5 ); //write read flash addr + udelay ( 100 ); // delay about 100us***** + drvISP_Read ( 128, RX_data ); + HalTscrCDevWriteI2CSeq ( FW_UPDATE_ADDR_MSG21XX, &bWriteData1, 1 ); //cmd end + for ( i = 0; i < 128; i++ ) //log out if verify error + { + if ( ( RX_data[i] != 0 ) && index < 10 ) + { + //TP_DEBUG("j=%d,RX_data[%d]=0x%x\n",j,i,RX_data[i]); + index++; + } + if ( RX_data[i] != pDataToVerify[128 * j + i] ) + { + TP_DEBUG ( "k=%d,j=%d,i=%d===============Update Firmware Error================", k, j, i ); + } + } + } +} + +static void drvISP_ChipErase() +{ + u8 bWriteData[5] = { 0x00, 0x00, 0x00, 0x00, 0x00 }; + u8 bWriteData1 = 0x12; + u32 timeOutCount = 0; + drvISP_WriteEnable(); + + //Enable write status register + bWriteData[0] = 0x10; + bWriteData[1] = 0x50; + HalTscrCDevWriteI2CSeq ( FW_UPDATE_ADDR_MSG21XX, bWriteData, 2 ); + HalTscrCDevWriteI2CSeq ( FW_UPDATE_ADDR_MSG21XX, &bWriteData1, 1 ); + + //Write Status + bWriteData[0] = 0x10; + bWriteData[1] = 0x01; + bWriteData[2] = 0x00; + HalTscrCDevWriteI2CSeq ( FW_UPDATE_ADDR_MSG21XX, bWriteData, 3 ); + HalTscrCDevWriteI2CSeq ( FW_UPDATE_ADDR_MSG21XX, &bWriteData1, 1 ); + + //Write disable + bWriteData[0] = 0x10; + bWriteData[1] = 0x04; + HalTscrCDevWriteI2CSeq ( FW_UPDATE_ADDR_MSG21XX, bWriteData, 2 ); + HalTscrCDevWriteI2CSeq ( FW_UPDATE_ADDR_MSG21XX, &bWriteData1, 1 ); + udelay ( 100 ); // delay about 100us***** + timeOutCount = 0; + while ( ( drvISP_ReadStatus() & 0x01 ) == 0x01 ) + { + timeOutCount++; + if ( timeOutCount >= 100000 ) break; /* around 1 sec timeout */ + } + drvISP_WriteEnable(); + + bWriteData[0] = 0x10; + bWriteData[1] = 0xC7; + + HalTscrCDevWriteI2CSeq ( FW_UPDATE_ADDR_MSG21XX, bWriteData, 2 ); + HalTscrCDevWriteI2CSeq ( FW_UPDATE_ADDR_MSG21XX, &bWriteData1, 1 ); + udelay ( 100 ); // delay about 100us***** + timeOutCount = 0; + while ( ( drvISP_ReadStatus() & 0x01 ) == 0x01 ) + { + timeOutCount++; + if ( timeOutCount >= 500000 ) break; /* around 5 sec timeout */ + } +} + +/* update the firmware part, used by apk*/ +/*show the fw version*/ + +static ssize_t firmware_update_c2 ( struct device *dev, + struct device_attribute *attr, const char *buf, size_t size ) +{ + u8 i; + u8 dbbus_tx_data[4]; + unsigned char dbbus_rx_data[2] = {0}; + + // set FRO to 50M + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x11; + dbbus_tx_data[2] = 0xE2; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 3 ); + dbbus_rx_data[0] = 0; + dbbus_rx_data[1] = 0; + HalTscrCReadI2CSeq ( FW_ADDR_MSG21XX, &dbbus_rx_data[0], 2 ); + TP_DEBUG ( "dbbus_rx_data[0]=0x%x", dbbus_rx_data[0] ); + dbbus_tx_data[3] = dbbus_rx_data[0] & 0xF7; //Clear Bit 3 + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // set MCU clock,SPI clock =FRO + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x22; + dbbus_tx_data[3] = 0x00; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x23; + dbbus_tx_data[3] = 0x00; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // Enable slave's ISP ECO mode + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x08; + dbbus_tx_data[2] = 0x0c; + dbbus_tx_data[3] = 0x08; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // Enable SPI Pad + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x02; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 3 ); + HalTscrCReadI2CSeq ( FW_ADDR_MSG21XX, &dbbus_rx_data[0], 2 ); + TP_DEBUG ( "dbbus_rx_data[0]=0x%x", dbbus_rx_data[0] ); + dbbus_tx_data[3] = ( dbbus_rx_data[0] | 0x20 ); //Set Bit 5 + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // WP overwrite + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x0E; + dbbus_tx_data[3] = 0x02; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // set pin high + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x10; + dbbus_tx_data[3] = 0x08; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + dbbusDWIICIICNotUseBus(); + dbbusDWIICNotStopMCU(); + dbbusDWIICExitSerialDebugMode(); + + drvISP_EntryIspMode(); + drvISP_ChipErase(); + _HalTscrHWReset(); + mdelay ( 300 ); + + // Program and Verify + dbbusDWIICEnterSerialDebugMode(); + dbbusDWIICStopMCU(); + dbbusDWIICIICUseBus(); + dbbusDWIICIICReshape(); + + // Disable the Watchdog + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x3C; + dbbus_tx_data[2] = 0x60; + dbbus_tx_data[3] = 0x55; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x3C; + dbbus_tx_data[2] = 0x61; + dbbus_tx_data[3] = 0xAA; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + //Stop MCU + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x0F; + dbbus_tx_data[2] = 0xE6; + dbbus_tx_data[3] = 0x01; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // set FRO to 50M + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x11; + dbbus_tx_data[2] = 0xE2; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 3 ); + dbbus_rx_data[0] = 0; + dbbus_rx_data[1] = 0; + HalTscrCReadI2CSeq ( FW_ADDR_MSG21XX, &dbbus_rx_data[0], 2 ); + TP_DEBUG ( "dbbus_rx_data[0]=0x%x", dbbus_rx_data[0] ); + dbbus_tx_data[3] = dbbus_rx_data[0] & 0xF7; //Clear Bit 3 + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // set MCU clock,SPI clock =FRO + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x22; + dbbus_tx_data[3] = 0x00; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x23; + dbbus_tx_data[3] = 0x00; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // Enable slave's ISP ECO mode + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x08; + dbbus_tx_data[2] = 0x0c; + dbbus_tx_data[3] = 0x08; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // Enable SPI Pad + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x02; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 3 ); + HalTscrCReadI2CSeq ( FW_ADDR_MSG21XX, &dbbus_rx_data[0], 2 ); + TP_DEBUG ( "dbbus_rx_data[0]=0x%x", dbbus_rx_data[0] ); + dbbus_tx_data[3] = ( dbbus_rx_data[0] | 0x20 ); //Set Bit 5 + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // WP overwrite + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x0E; + dbbus_tx_data[3] = 0x02; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // set pin high + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x10; + dbbus_tx_data[3] = 0x08; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + dbbusDWIICIICNotUseBus(); + dbbusDWIICNotStopMCU(); + dbbusDWIICExitSerialDebugMode(); + + /////////////////////////////////////// + // Start to load firmware + /////////////////////////////////////// + drvISP_EntryIspMode(); + + for ( i = 0; i < 94; i++ ) // total 94 KB : 1 byte per R/W + { + drvISP_Program ( i, temp[i] ); // program to slave's flash + drvISP_Verify ( i, temp[i] ); //verify data + } + TP_DEBUG ( "update OK\n" ); + drvISP_ExitIspMode(); + FwDataCnt = 0; + return size; +} + +static u32 Reflect ( u32 ref, char ch ) //unsigned int Reflect(unsigned int ref, char ch) +{ + u32 value = 0; + u32 i = 0; + + for ( i = 1; i < ( ch + 1 ); i++ ) + { + if ( ref & 1 ) + { + value |= 1 << ( ch - i ); + } + ref >>= 1; + } + return value; +} + +u32 Get_CRC ( u32 text, u32 prevCRC, u32 *crc32_table ) +{ + u32 ulCRC = prevCRC; + ulCRC = ( ulCRC >> 8 ) ^ crc32_table[ ( ulCRC & 0xFF ) ^ text]; + return ulCRC ; +} +static void Init_CRC32_Table ( u32 *crc32_table ) +{ + u32 magicnumber = 0x04c11db7; + u32 i = 0, j; + + for ( i = 0; i <= 0xFF; i++ ) + { + crc32_table[i] = Reflect ( i, 8 ) << 24; + for ( j = 0; j < 8; j++ ) + { + crc32_table[i] = ( crc32_table[i] << 1 ) ^ ( crc32_table[i] & ( 0x80000000L ) ? magicnumber : 0 ); + } + crc32_table[i] = Reflect ( crc32_table[i], 32 ); + } +} + +typedef enum +{ + EMEM_ALL = 0, + EMEM_MAIN, + EMEM_INFO, +} EMEM_TYPE_t; + +static void drvDB_WriteReg8Bit ( u8 bank, u8 addr, u8 data ) +{ + u8 tx_data[4] = {0x10, bank, addr, data}; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, tx_data, 4 ); +} + +static void drvDB_WriteReg ( u8 bank, u8 addr, u16 data ) +{ + u8 tx_data[5] = {0x10, bank, addr, data & 0xFF, data >> 8}; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, tx_data, 5 ); +} + +static unsigned short drvDB_ReadReg ( u8 bank, u8 addr ) +{ + u8 tx_data[3] = {0x10, bank, addr}; + u8 rx_data[2] = {0}; + + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, tx_data, 3 ); + HalTscrCReadI2CSeq ( FW_ADDR_MSG21XX, &rx_data[0], 2 ); + return ( rx_data[1] << 8 | rx_data[0] ); +} + +static int drvTP_erase_emem_c32 ( void ) +{ + ///////////////////////// + //Erase all + ///////////////////////// + + //enter gpio mode + drvDB_WriteReg ( 0x16, 0x1E, 0xBEAF ); + + // before gpio mode, set the control pin as the orginal status + drvDB_WriteReg ( 0x16, 0x08, 0x0000 ); + drvDB_WriteReg8Bit ( 0x16, 0x0E, 0x10 ); + mdelay ( 10 ); //MCR_CLBK_DEBUG_DELAY ( 10, MCU_LOOP_DELAY_COUNT_MS ); + + // ptrim = 1, h'04[2] + drvDB_WriteReg8Bit ( 0x16, 0x08, 0x04 ); + drvDB_WriteReg8Bit ( 0x16, 0x0E, 0x10 ); + mdelay ( 10 ); //MCR_CLBK_DEBUG_DELAY ( 10, MCU_LOOP_DELAY_COUNT_MS ); + + // ptm = 6, h'04[12:14] = b'110 + drvDB_WriteReg8Bit ( 0x16, 0x09, 0x60 ); + drvDB_WriteReg8Bit ( 0x16, 0x0E, 0x10 ); + + // pmasi = 1, h'04[6] + drvDB_WriteReg8Bit ( 0x16, 0x08, 0x44 ); + // pce = 1, h'04[11] + drvDB_WriteReg8Bit ( 0x16, 0x09, 0x68 ); + // perase = 1, h'04[7] + drvDB_WriteReg8Bit ( 0x16, 0x08, 0xC4 ); + // pnvstr = 1, h'04[5] + drvDB_WriteReg8Bit ( 0x16, 0x08, 0xE4 ); + // pwe = 1, h'04[9] + drvDB_WriteReg8Bit ( 0x16, 0x09, 0x6A ); + // trigger gpio load + drvDB_WriteReg8Bit ( 0x16, 0x0E, 0x10 ); + + return ( 1 ); +} + +static ssize_t firmware_update_c32 ( struct device *dev, struct device_attribute *attr, + const char *buf, size_t size, EMEM_TYPE_t emem_type ) +{ + u8 dbbus_tx_data[4]; + u8 dbbus_rx_data[2] = {0}; + // Buffer for slave's firmware + + u32 i, j; + u32 crc_main, crc_main_tp; + u32 crc_info, crc_info_tp; + u16 reg_data = 0; + + crc_main = 0xffffffff; + crc_info = 0xffffffff; + +#if 1 + ///////////////////////// + // Erase all + ///////////////////////// + drvTP_erase_emem_c32(); + mdelay ( 1000 ); //MCR_CLBK_DEBUG_DELAY ( 1000, MCU_LOOP_DELAY_COUNT_MS ); + + //ResetSlave(); + _HalTscrHWReset(); + //drvDB_EnterDBBUS(); + dbbusDWIICEnterSerialDebugMode(); + dbbusDWIICStopMCU(); + dbbusDWIICIICUseBus(); + dbbusDWIICIICReshape(); + mdelay ( 300 ); + + // Reset Watchdog + drvDB_WriteReg8Bit ( 0x3C, 0x60, 0x55 ); + drvDB_WriteReg8Bit ( 0x3C, 0x61, 0xAA ); + + ///////////////////////// + // Program + ///////////////////////// + + //polling 0x3CE4 is 0x1C70 + do + { + reg_data = drvDB_ReadReg ( 0x3C, 0xE4 ); + } + while ( reg_data != 0x1C70 ); + + + drvDB_WriteReg ( 0x3C, 0xE4, 0xE38F ); // for all-blocks + + //polling 0x3CE4 is 0x2F43 + do + { + reg_data = drvDB_ReadReg ( 0x3C, 0xE4 ); + } + while ( reg_data != 0x2F43 ); + + + //calculate CRC 32 + Init_CRC32_Table ( &crc_tab[0] ); + + for ( i = 0; i < 33; i++ ) // total 33 KB : 2 byte per R/W + { + if ( i < 32 ) //emem_main + { + if ( i == 31 ) + { + temp[i][1014] = 0x5A; //Fmr_Loader[1014]=0x5A; + temp[i][1015] = 0xA5; //Fmr_Loader[1015]=0xA5; + + for ( j = 0; j < 1016; j++ ) + { + //crc_main=Get_CRC(Fmr_Loader[j],crc_main,&crc_tab[0]); + crc_main = Get_CRC ( temp[i][j], crc_main, &crc_tab[0] ); + } + } + else + { + for ( j = 0; j < 1024; j++ ) + { + //crc_main=Get_CRC(Fmr_Loader[j],crc_main,&crc_tab[0]); + crc_main = Get_CRC ( temp[i][j], crc_main, &crc_tab[0] ); + } + } + } + else // emem_info + { + for ( j = 0; j < 1024; j++ ) + { + //crc_info=Get_CRC(Fmr_Loader[j],crc_info,&crc_tab[0]); + crc_info = Get_CRC ( temp[i][j], crc_info, &crc_tab[0] ); + } + } + + //drvDWIIC_MasterTransmit( DWIIC_MODE_DWIIC_ID, 1024, Fmr_Loader ); + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX_TP, temp[i], 1024 ); + + // polling 0x3CE4 is 0xD0BC + do + { + reg_data = drvDB_ReadReg ( 0x3C, 0xE4 ); + } + while ( reg_data != 0xD0BC ); + + drvDB_WriteReg ( 0x3C, 0xE4, 0x2F43 ); + } + + //write file done + drvDB_WriteReg ( 0x3C, 0xE4, 0x1380 ); + + mdelay ( 10 ); //MCR_CLBK_DEBUG_DELAY ( 10, MCU_LOOP_DELAY_COUNT_MS ); + // polling 0x3CE4 is 0x9432 + do + { + reg_data = drvDB_ReadReg ( 0x3C, 0xE4 ); + } + while ( reg_data != 0x9432 ); + + crc_main = crc_main ^ 0xffffffff; + crc_info = crc_info ^ 0xffffffff; + + // CRC Main from TP + crc_main_tp = drvDB_ReadReg ( 0x3C, 0x80 ); + crc_main_tp = ( crc_main_tp << 16 ) | drvDB_ReadReg ( 0x3C, 0x82 ); + + //CRC Info from TP + crc_info_tp = drvDB_ReadReg ( 0x3C, 0xA0 ); + crc_info_tp = ( crc_info_tp << 16 ) | drvDB_ReadReg ( 0x3C, 0xA2 ); + + TP_DEBUG ( "crc_main=0x%x, crc_info=0x%x, crc_main_tp=0x%x, crc_info_tp=0x%x\n", + crc_main, crc_info, crc_main_tp, crc_info_tp ); + + //drvDB_ExitDBBUS(); + if ( ( crc_main_tp != crc_main ) || ( crc_info_tp != crc_info ) ) + { + printk ( "update FAILED\n" ); + _HalTscrHWReset(); + FwDataCnt = 0; + enable_irq(global_irq); + return ( 0 ); + } + + printk ( "update OK\n" ); + _HalTscrHWReset(); + FwDataCnt = 0; + enable_irq(global_irq); + + return size; +#endif +} + +static int drvTP_erase_emem_c33 ( EMEM_TYPE_t emem_type ) +{ + // stop mcu + drvDB_WriteReg ( 0x0F, 0xE6, 0x0001 ); + + //disable watch dog + drvDB_WriteReg8Bit ( 0x3C, 0x60, 0x55 ); + drvDB_WriteReg8Bit ( 0x3C, 0x61, 0xAA ); + + // set PROGRAM password + drvDB_WriteReg8Bit ( 0x16, 0x1A, 0xBA ); + drvDB_WriteReg8Bit ( 0x16, 0x1B, 0xAB ); + + //proto.MstarWriteReg(F1.loopDevice, 0x1618, 0x80); + drvDB_WriteReg8Bit ( 0x16, 0x18, 0x80 ); + + if ( emem_type == EMEM_ALL ) + { + drvDB_WriteReg8Bit ( 0x16, 0x08, 0x10 ); //mark + } + + drvDB_WriteReg8Bit ( 0x16, 0x18, 0x40 ); + mdelay ( 10 ); + + drvDB_WriteReg8Bit ( 0x16, 0x18, 0x80 ); + + // erase trigger + if ( emem_type == EMEM_MAIN ) + { + drvDB_WriteReg8Bit ( 0x16, 0x0E, 0x04 ); //erase main + } + else + { + drvDB_WriteReg8Bit ( 0x16, 0x0E, 0x08 ); //erase all block + } + + return ( 1 ); +} + +static int drvTP_read_emem_dbbus_c33 ( EMEM_TYPE_t emem_type, u16 addr, size_t size, u8 *p, size_t set_pce_high ) +{ + u32 i; + + // Set the starting address ( must before enabling burst mode and enter riu mode ) + drvDB_WriteReg ( 0x16, 0x00, addr ); + + // Enable the burst mode ( must before enter riu mode ) + drvDB_WriteReg ( 0x16, 0x0C, drvDB_ReadReg ( 0x16, 0x0C ) | 0x0001 ); + + // Set the RIU password + drvDB_WriteReg ( 0x16, 0x1A, 0xABBA ); + + // Enable the information block if pifren is HIGH + if ( emem_type == EMEM_INFO ) + { + // Clear the PCE + drvDB_WriteReg ( 0x16, 0x18, drvDB_ReadReg ( 0x16, 0x18 ) | 0x0080 ); + mdelay ( 10 ); + + // Set the PIFREN to be HIGH + drvDB_WriteReg ( 0x16, 0x08, 0x0010 ); + } + + // Set the PCE to be HIGH + drvDB_WriteReg ( 0x16, 0x18, drvDB_ReadReg ( 0x16, 0x18 ) | 0x0040 ); + mdelay ( 10 ); + + // Wait pce becomes 1 ( read data ready ) + while ( ( drvDB_ReadReg ( 0x16, 0x10 ) & 0x0004 ) != 0x0004 ); + + for ( i = 0; i < size; i += 4 ) + { + // Fire the FASTREAD command + drvDB_WriteReg ( 0x16, 0x0E, drvDB_ReadReg ( 0x16, 0x0E ) | 0x0001 ); + + // Wait the operation is done + while ( ( drvDB_ReadReg ( 0x16, 0x10 ) & 0x0001 ) != 0x0001 ); + + p[i + 0] = drvDB_ReadReg ( 0x16, 0x04 ) & 0xFF; + p[i + 1] = ( drvDB_ReadReg ( 0x16, 0x04 ) >> 8 ) & 0xFF; + p[i + 2] = drvDB_ReadReg ( 0x16, 0x06 ) & 0xFF; + p[i + 3] = ( drvDB_ReadReg ( 0x16, 0x06 ) >> 8 ) & 0xFF; + } + + // Disable the burst mode + drvDB_WriteReg ( 0x16, 0x0C, drvDB_ReadReg ( 0x16, 0x0C ) & ( ~0x0001 ) ); + + // Clear the starting address + drvDB_WriteReg ( 0x16, 0x00, 0x0000 ); + + //Always return to main block + if ( emem_type == EMEM_INFO ) + { + // Clear the PCE before change block + drvDB_WriteReg ( 0x16, 0x18, drvDB_ReadReg ( 0x16, 0x18 ) | 0x0080 ); + mdelay ( 10 ); + // Set the PIFREN to be LOW + drvDB_WriteReg ( 0x16, 0x08, drvDB_ReadReg ( 0x16, 0x08 ) & ( ~0x0010 ) ); + + drvDB_WriteReg ( 0x16, 0x18, drvDB_ReadReg ( 0x16, 0x18 ) | 0x0040 ); + while ( ( drvDB_ReadReg ( 0x16, 0x10 ) & 0x0004 ) != 0x0004 ); + } + + // Clear the RIU password + drvDB_WriteReg ( 0x16, 0x1A, 0x0000 ); + + if ( set_pce_high ) + { + // Set the PCE to be HIGH before jumping back to e-flash codes + drvDB_WriteReg ( 0x16, 0x18, drvDB_ReadReg ( 0x16, 0x18 ) | 0x0040 ); + while ( ( drvDB_ReadReg ( 0x16, 0x10 ) & 0x0004 ) != 0x0004 ); + } + + return ( 1 ); +} + + +static int drvTP_read_info_dwiic_c33 ( void ) +{ + u8 dwiic_tx_data[5]; + u8 dwiic_rx_data[4]; + u16 reg_data=0; + mdelay ( 300 ); + + // Stop Watchdog + drvDB_WriteReg8Bit ( 0x3C, 0x60, 0x55 ); + drvDB_WriteReg8Bit ( 0x3C, 0x61, 0xAA ); + + drvDB_WriteReg ( 0x3C, 0xE4, 0xA4AB ); + + drvDB_WriteReg ( 0x1E, 0x04, 0x7d60 ); + + // TP SW reset + drvDB_WriteReg ( 0x1E, 0x04, 0x829F ); + mdelay ( 1 ); + dwiic_tx_data[0] = 0x10; + dwiic_tx_data[1] = 0x0F; + dwiic_tx_data[2] = 0xE6; + dwiic_tx_data[3] = 0x00; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dwiic_tx_data, 4 ); + mdelay ( 100 ); + + do{ + reg_data = drvDB_ReadReg ( 0x3C, 0xE4 ); + } + while ( reg_data != 0x5B58 ); + + dwiic_tx_data[0] = 0x72; + dwiic_tx_data[1] = 0x80; + dwiic_tx_data[2] = 0x00; + dwiic_tx_data[3] = 0x04; + dwiic_tx_data[4] = 0x00; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX_TP , dwiic_tx_data, 5 ); + + mdelay ( 50 ); + + // recive info data + HalTscrCReadI2CSeq ( FW_ADDR_MSG21XX_TP, &g_dwiic_info_data[0], 1024 ); + + return ( 1 ); +} + +static int drvTP_info_updata_C33 ( u16 start_index, u8 *data, u16 size ) +{ + // size != 0, start_index+size !> 1024 + u16 i; + for ( i = 0; i < size; i++ ) + { + g_dwiic_info_data[start_index] = * ( data + i ); + start_index++; + } + return ( 1 ); +} + +static ssize_t firmware_update_c33 ( struct device *dev, struct device_attribute *attr, + const char *buf, size_t size, EMEM_TYPE_t emem_type ) +{ + u8 dbbus_tx_data[4]; + u8 dbbus_rx_data[2] = {0}; + u8 life_counter[2]; + u32 i, j; + u32 crc_main, crc_main_tp; + u32 crc_info, crc_info_tp; + + int update_pass = 1; + u16 reg_data = 0; + + crc_main = 0xffffffff; + crc_info = 0xffffffff; + + drvTP_read_info_dwiic_c33(); + + if ( g_dwiic_info_data[0] == 'M' && g_dwiic_info_data[1] == 'S' && g_dwiic_info_data[2] == 'T' && g_dwiic_info_data[3] == 'A' && g_dwiic_info_data[4] == 'R' && g_dwiic_info_data[5] == 'T' && g_dwiic_info_data[6] == 'P' && g_dwiic_info_data[7] == 'C' ) + { + // updata FW Version + //drvTP_info_updata_C33 ( 8, &temp[32][8], 5 ); + + g_dwiic_info_data[8]=temp[32][8]; + g_dwiic_info_data[9]=temp[32][9]; + g_dwiic_info_data[10]=temp[32][10]; + g_dwiic_info_data[11]=temp[32][11]; + // updata life counter + life_counter[1] = (( ( (g_dwiic_info_data[13] << 8 ) | g_dwiic_info_data[12]) + 1 ) >> 8 ) & 0xFF; + life_counter[0] = ( ( (g_dwiic_info_data[13] << 8 ) | g_dwiic_info_data[12]) + 1 ) & 0xFF; + g_dwiic_info_data[12]=life_counter[0]; + g_dwiic_info_data[13]=life_counter[1]; + //drvTP_info_updata_C33 ( 10, &life_counter[0], 3 ); + drvDB_WriteReg ( 0x3C, 0xE4, 0x78C5 ); + drvDB_WriteReg ( 0x1E, 0x04, 0x7d60 ); + // TP SW reset + drvDB_WriteReg ( 0x1E, 0x04, 0x829F ); + + mdelay ( 50 ); + + //polling 0x3CE4 is 0x2F43 + do + { + reg_data = drvDB_ReadReg ( 0x3C, 0xE4 ); + + } + while ( reg_data != 0x2F43 ); + + // transmit lk info data + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX_TP , &g_dwiic_info_data[0], 1024 ); + + //polling 0x3CE4 is 0xD0BC + do + { + reg_data = drvDB_ReadReg ( 0x3C, 0xE4 ); + } + while ( reg_data != 0xD0BC ); + + } + + //erase main + drvTP_erase_emem_c33 ( EMEM_MAIN ); + mdelay ( 1000 ); + + //ResetSlave(); + _HalTscrHWReset(); + + //drvDB_EnterDBBUS(); + dbbusDWIICEnterSerialDebugMode(); + dbbusDWIICStopMCU(); + dbbusDWIICIICUseBus(); + dbbusDWIICIICReshape(); + mdelay ( 300 ); + + ///////////////////////// + // Program + ///////////////////////// + + //polling 0x3CE4 is 0x1C70 + if ( ( emem_type == EMEM_ALL ) || ( emem_type == EMEM_MAIN ) ) + { + do + { + reg_data = drvDB_ReadReg ( 0x3C, 0xE4 ); + } + while ( reg_data != 0x1C70 ); + } + + switch ( emem_type ) + { + case EMEM_ALL: + drvDB_WriteReg ( 0x3C, 0xE4, 0xE38F ); // for all-blocks + break; + case EMEM_MAIN: + drvDB_WriteReg ( 0x3C, 0xE4, 0x7731 ); // for main block + break; + case EMEM_INFO: + drvDB_WriteReg ( 0x3C, 0xE4, 0x7731 ); // for info block + + drvDB_WriteReg8Bit ( 0x0F, 0xE6, 0x01 ); + + drvDB_WriteReg8Bit ( 0x3C, 0xE4, 0xC5 ); // + drvDB_WriteReg8Bit ( 0x3C, 0xE5, 0x78 ); // + + drvDB_WriteReg8Bit ( 0x1E, 0x04, 0x9F ); + drvDB_WriteReg8Bit ( 0x1E, 0x05, 0x82 ); + + drvDB_WriteReg8Bit ( 0x0F, 0xE6, 0x00 ); + mdelay ( 100 ); + break; + } + + // polling 0x3CE4 is 0x2F43 + do + { + reg_data = drvDB_ReadReg ( 0x3C, 0xE4 ); + } + while ( reg_data != 0x2F43 ); + + // calculate CRC 32 + Init_CRC32_Table ( &crc_tab[0] ); + + for ( i = 0; i < 33; i++ ) // total 33 KB : 2 byte per R/W + { + if ( emem_type == EMEM_INFO ) + i = 32; + + if ( i < 32 ) //emem_main + { + if ( i == 31 ) + { + temp[i][1014] = 0x5A; //Fmr_Loader[1014]=0x5A; + temp[i][1015] = 0xA5; //Fmr_Loader[1015]=0xA5; + + for ( j = 0; j < 1016; j++ ) + { + //crc_main=Get_CRC(Fmr_Loader[j],crc_main,&crc_tab[0]); + crc_main = Get_CRC ( temp[i][j], crc_main, &crc_tab[0] ); + } + } + else + { + for ( j = 0; j < 1024; j++ ) + { + //crc_main=Get_CRC(Fmr_Loader[j],crc_main,&crc_tab[0]); + crc_main = Get_CRC ( temp[i][j], crc_main, &crc_tab[0] ); + } + } + } + else //emem_info + { + for ( j = 0; j < 1024; j++ ) + { + //crc_info=Get_CRC(Fmr_Loader[j],crc_info,&crc_tab[0]); + crc_info = Get_CRC ( g_dwiic_info_data[j], crc_info, &crc_tab[0] ); + } + if ( emem_type == EMEM_MAIN ) break; + } + + //drvDWIIC_MasterTransmit( DWIIC_MODE_DWIIC_ID, 1024, Fmr_Loader ); + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX_TP, temp[i], 1024 ); + + // polling 0x3CE4 is 0xD0BC + do + { + reg_data = drvDB_ReadReg ( 0x3C, 0xE4 ); + } + while ( reg_data != 0xD0BC ); + + drvDB_WriteReg ( 0x3C, 0xE4, 0x2F43 ); + } + + if ( ( emem_type == EMEM_ALL ) || ( emem_type == EMEM_MAIN ) ) + { + // write file done and check crc + drvDB_WriteReg ( 0x3C, 0xE4, 0x1380 ); + } + mdelay ( 10 ); //MCR_CLBK_DEBUG_DELAY ( 10, MCU_LOOP_DELAY_COUNT_MS ); + + if ( ( emem_type == EMEM_ALL ) || ( emem_type == EMEM_MAIN ) ) + { + // polling 0x3CE4 is 0x9432 + do + { + reg_data = drvDB_ReadReg ( 0x3C, 0xE4 ); + }while ( reg_data != 0x9432 ); + } + + crc_main = crc_main ^ 0xffffffff; + crc_info = crc_info ^ 0xffffffff; + + if ( ( emem_type == EMEM_ALL ) || ( emem_type == EMEM_MAIN ) ) + { + // CRC Main from TP + crc_main_tp = drvDB_ReadReg ( 0x3C, 0x80 ); + crc_main_tp = ( crc_main_tp << 16 ) | drvDB_ReadReg ( 0x3C, 0x82 ); + + // CRC Info from TP + crc_info_tp = drvDB_ReadReg ( 0x3C, 0xA0 ); + crc_info_tp = ( crc_info_tp << 16 ) | drvDB_ReadReg ( 0x3C, 0xA2 ); + } + TP_DEBUG ( "crc_main=0x%x, crc_info=0x%x, crc_main_tp=0x%x, crc_info_tp=0x%x\n", + crc_main, crc_info, crc_main_tp, crc_info_tp ); + + //drvDB_ExitDBBUS(); + + update_pass = 1; + if ( ( emem_type == EMEM_ALL ) || ( emem_type == EMEM_MAIN ) ) + { + if ( crc_main_tp != crc_main ) + update_pass = 0; + + if ( crc_info_tp != crc_info ) + update_pass = 0; + } + + if ( !update_pass ) + { + printk ( "update FAILED\n" ); + _HalTscrHWReset(); + FwDataCnt = 0; + enable_irq(global_irq); + return ( 0 ); + } + + printk ( "update OK\n" ); + _HalTscrHWReset(); + FwDataCnt = 0; + enable_irq(global_irq); + return size; +} + +#define _FW_UPDATE_C3_ +#ifdef _FW_UPDATE_C3_ +static ssize_t firmware_update_store ( struct device *dev, + struct device_attribute *attr, const char *buf, size_t size ) +{ + u8 i; + u8 dbbus_tx_data[4]; + unsigned char dbbus_rx_data[2] = {0}; + disable_irq(global_irq); + + _HalTscrHWReset(); + + // Erase TP Flash first + dbbusDWIICEnterSerialDebugMode(); + dbbusDWIICStopMCU(); + dbbusDWIICIICUseBus(); + dbbusDWIICIICReshape(); + mdelay ( 300 ); + + // Disable the Watchdog + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x3C; + dbbus_tx_data[2] = 0x60; + dbbus_tx_data[3] = 0x55; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x3C; + dbbus_tx_data[2] = 0x61; + dbbus_tx_data[3] = 0xAA; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + // Stop MCU + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x0F; + dbbus_tx_data[2] = 0xE6; + dbbus_tx_data[3] = 0x01; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + ///////////////////////// + // Difference between C2 and C3 + ///////////////////////// + // c2:2133 c32:2133a(2) c33:2138 + //check id + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0xCC; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 3 ); + HalTscrCReadI2CSeq ( FW_ADDR_MSG21XX, &dbbus_rx_data[0], 2 ); + if ( dbbus_rx_data[0] == 2 ) + { + // check version + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x3C; + dbbus_tx_data[2] = 0xEA; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 3 ); + HalTscrCReadI2CSeq ( FW_ADDR_MSG21XX, &dbbus_rx_data[0], 2 ); + TP_DEBUG ( "dbbus_rx version[0]=0x%x", dbbus_rx_data[0] ); + + if ( dbbus_rx_data[0] == 3 ){ + return firmware_update_c33 ( dev, attr, buf, size, EMEM_MAIN ); + } + else{ + + return firmware_update_c32 ( dev, attr, buf, size, EMEM_ALL ); + } + } + else + { + return firmware_update_c2 ( dev, attr, buf, size ); + } +} +#else +static ssize_t firmware_update_store ( struct device *dev, + struct device_attribute *attr, const char *buf, size_t size ) +{ + u8 i; + u8 dbbus_tx_data[4]; + unsigned char dbbus_rx_data[2] = {0}; + + _HalTscrHWReset(); + + // 1. Erase TP Flash first + dbbusDWIICEnterSerialDebugMode(); + dbbusDWIICStopMCU(); + dbbusDWIICIICUseBus(); + dbbusDWIICIICReshape(); + mdelay ( 300 ); + + // Disable the Watchdog + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x3C; + dbbus_tx_data[2] = 0x60; + dbbus_tx_data[3] = 0x55; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x3C; + dbbus_tx_data[2] = 0x61; + dbbus_tx_data[3] = 0xAA; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // Stop MCU + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x0F; + dbbus_tx_data[2] = 0xE6; + dbbus_tx_data[3] = 0x01; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // set FRO to 50M + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x11; + dbbus_tx_data[2] = 0xE2; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 3 ); + dbbus_rx_data[0] = 0; + dbbus_rx_data[1] = 0; + HalTscrCReadI2CSeq ( FW_ADDR_MSG21XX, &dbbus_rx_data[0], 2 ); + TP_DEBUG ( "dbbus_rx_data[0]=0x%x", dbbus_rx_data[0] ); + dbbus_tx_data[3] = dbbus_rx_data[0] & 0xF7; //Clear Bit 3 + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // set MCU clock,SPI clock =FRO + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x22; + dbbus_tx_data[3] = 0x00; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x23; + dbbus_tx_data[3] = 0x00; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // Enable slave's ISP ECO mode + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x08; + dbbus_tx_data[2] = 0x0c; + dbbus_tx_data[3] = 0x08; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // Enable SPI Pad + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x02; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 3 ); + HalTscrCReadI2CSeq ( FW_ADDR_MSG21XX, &dbbus_rx_data[0], 2 ); + TP_DEBUG ( "dbbus_rx_data[0]=0x%x", dbbus_rx_data[0] ); + dbbus_tx_data[3] = ( dbbus_rx_data[0] | 0x20 ); //Set Bit 5 + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // WP overwrite + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x0E; + dbbus_tx_data[3] = 0x02; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // set pin high + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x10; + dbbus_tx_data[3] = 0x08; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + dbbusDWIICIICNotUseBus(); + dbbusDWIICNotStopMCU(); + dbbusDWIICExitSerialDebugMode(); + + drvISP_EntryIspMode(); + drvISP_ChipErase(); + _HalTscrHWReset(); + mdelay ( 300 ); + + // 2.Program and Verify + dbbusDWIICEnterSerialDebugMode(); + dbbusDWIICStopMCU(); + dbbusDWIICIICUseBus(); + dbbusDWIICIICReshape(); + + // Disable the Watchdog + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x3C; + dbbus_tx_data[2] = 0x60; + dbbus_tx_data[3] = 0x55; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x3C; + dbbus_tx_data[2] = 0x61; + dbbus_tx_data[3] = 0xAA; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // Stop MCU + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x0F; + dbbus_tx_data[2] = 0xE6; + dbbus_tx_data[3] = 0x01; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // set FRO to 50M + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x11; + dbbus_tx_data[2] = 0xE2; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 3 ); + dbbus_rx_data[0] = 0; + dbbus_rx_data[1] = 0; + HalTscrCReadI2CSeq ( FW_ADDR_MSG21XX, &dbbus_rx_data[0], 2 ); + TP_DEBUG ( "dbbus_rx_data[0]=0x%x", dbbus_rx_data[0] ); + dbbus_tx_data[3] = dbbus_rx_data[0] & 0xF7; //Clear Bit 3 + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // set MCU clock,SPI clock =FRO + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x22; + dbbus_tx_data[3] = 0x00; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x23; + dbbus_tx_data[3] = 0x00; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // Enable slave's ISP ECO mode + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x08; + dbbus_tx_data[2] = 0x0c; + dbbus_tx_data[3] = 0x08; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // Enable SPI Pad + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x02; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 3 ); + HalTscrCReadI2CSeq ( FW_ADDR_MSG21XX, &dbbus_rx_data[0], 2 ); + TP_DEBUG ( "dbbus_rx_data[0]=0x%x", dbbus_rx_data[0] ); + dbbus_tx_data[3] = ( dbbus_rx_data[0] | 0x20 ); //Set Bit 5 + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // WP overwrite + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x0E; + dbbus_tx_data[3] = 0x02; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + // set pin high + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x10; + dbbus_tx_data[3] = 0x08; + HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 4 ); + + dbbusDWIICIICNotUseBus(); + dbbusDWIICNotStopMCU(); + dbbusDWIICExitSerialDebugMode(); + + /////////////////////////////////////// + // Start to load firmware + /////////////////////////////////////// + drvISP_EntryIspMode(); + + for ( i = 0; i < 94; i++ ) // total 94 KB : 1 byte per R/W + { + drvISP_Program ( i, temp[i] ); // program to slave's flash + drvISP_Verify ( i, temp[i] ); //verify data + } + TP_DEBUG ( "update OK\n" ); + drvISP_ExitIspMode(); + FwDataCnt = 0; + + return size; +} +#endif +static DEVICE_ATTR(update, 0664, firmware_update_show, firmware_update_store); +#if 0 +/*test=================*/ +static ssize_t firmware_clear_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + printk(" +++++++ [%s] Enter!++++++\n", __func__); + u16 k=0,i = 0, j = 0; + u8 bWriteData[5] = + { + 0x10, 0x03, 0, 0, 0 + }; + u8 RX_data[256]; + u8 bWriteData1 = 0x12; + u32 addr = 0; + u32 timeOutCount=0; + for (k = 0; k < 94; i++) // total 94 KB : 1 byte per R/W + { + addr = k * 1024; + for (j = 0; j < 8; j++) //128*8 cycle + { + bWriteData[2] = (u8)((addr + j * 128) >> 16); + bWriteData[3] = (u8)((addr + j * 128) >> 8); + bWriteData[4] = (u8)(addr + j * 128); + //msctpc_LoopDelay ( 1 ); // delay about 100us***** + udelay(150);//200); + + timeOutCount=0; + while ( ( drvISP_ReadStatus() & 0x01 ) == 0x01 ) + { + timeOutCount++; + if ( timeOutCount >= 100000 ) + break; /* around 1 sec timeout */ + } + + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, bWriteData, 5); //write read flash addr + //msctpc_LoopDelay ( 1 ); // delay about 100us***** + udelay(150);//200); + drvISP_Read(128, RX_data); + HalTscrCDevWriteI2CSeq(FW_UPDATE_ADDR_MSG21XX, &bWriteData1, 1); //cmd end + for (i = 0; i < 128; i++) //log out if verify error + { + if (RX_data[i] != 0xFF) + { + //TP_DEBUG(printk("k=%d,j=%d,i=%d===============erase not clean================",k,j,i);) + printk("k=%d,j=%d,i=%d erase not clean !!",k,j,i); + } + } + } + } + TP_DEBUG("read finish\n"); + return sprintf(buf, "%s\n", fw_version); +} + +static ssize_t firmware_clear_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + + u8 dbbus_tx_data[4]; + unsigned char dbbus_rx_data[2] = {0}; + printk(" +++++++ [%s] Enter!++++++\n", __func__); + //msctpc_LoopDelay ( 100 ); // delay about 100ms***** + + // Enable slave's ISP ECO mode + + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x08; + dbbus_tx_data[2] = 0x0c; + dbbus_tx_data[3] = 0x08; + + // Disable the Watchdog + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, dbbus_tx_data, 4); + + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x11; + dbbus_tx_data[2] = 0xE2; + dbbus_tx_data[3] = 0x00; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, dbbus_tx_data, 4); + + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x3C; + dbbus_tx_data[2] = 0x60; + dbbus_tx_data[3] = 0x55; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, dbbus_tx_data, 4); + + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x3C; + dbbus_tx_data[2] = 0x61; + dbbus_tx_data[3] = 0xAA; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, dbbus_tx_data, 4); + + //Stop MCU + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x0F; + dbbus_tx_data[2] = 0xE6; + dbbus_tx_data[3] = 0x01; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, dbbus_tx_data, 4); + + //Enable SPI Pad + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x02; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, dbbus_tx_data, 3); + HalTscrCReadI2CSeq(FW_ADDR_MSG21XX, &dbbus_rx_data[0], 2); + TP_DEBUG(printk("dbbus_rx_data[0]=0x%x", dbbus_rx_data[0]);) + dbbus_tx_data[3] = (dbbus_rx_data[0] | 0x20); //Set Bit 5 + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, dbbus_tx_data, 4); + + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x25; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, dbbus_tx_data, 3); + + dbbus_rx_data[0] = 0; + dbbus_rx_data[1] = 0; + HalTscrCReadI2CSeq(FW_ADDR_MSG21XX, &dbbus_rx_data[0], 2); + TP_DEBUG(printk("dbbus_rx_data[0]=0x%x", dbbus_rx_data[0]);) + dbbus_tx_data[3] = dbbus_rx_data[0] & 0xFC; //Clear Bit 1,0 + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, dbbus_tx_data, 4); + + //WP overwrite + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x0E; + dbbus_tx_data[3] = 0x02; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, dbbus_tx_data, 4); + + + //set pin high + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0x10; + dbbus_tx_data[3] = 0x08; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, dbbus_tx_data, 4); + //set FRO to 50M + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x11; + dbbus_tx_data[2] = 0xE2; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, dbbus_tx_data, 3); + dbbus_rx_data[0] = 0; + dbbus_rx_data[1] = 0; + HalTscrCReadI2CSeq(FW_ADDR_MSG21XX, &dbbus_rx_data[0], 2); + TP_DEBUG(printk("dbbus_rx_data[0]=0x%x", dbbus_rx_data[0]);) + dbbus_tx_data[3] = dbbus_rx_data[0] & 0xF7; //Clear Bit 1,0 + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX, dbbus_tx_data, 4); + + dbbusDWIICIICNotUseBus(); + dbbusDWIICNotStopMCU(); + dbbusDWIICExitSerialDebugMode(); + + /////////////////////////////////////// + // Start to load firmware + /////////////////////////////////////// + drvISP_EntryIspMode(); + TP_DEBUG(printk("chip erase+\n");) + drvISP_BlockErase(0x00000); + TP_DEBUG(printk("chip erase-\n");) + drvISP_ExitIspMode(); + return size; +} +static DEVICE_ATTR(clear, 0664, firmware_clear_show, firmware_clear_store); +#endif //0 +/*test=================*/ +/*Add by Tracy.Lin for update touch panel firmware and get fw version*/ + +static ssize_t firmware_version_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + TP_DEBUG("*** firmware_version_show fw_version = %s***\n", fw_version); + return sprintf(buf, "%s\n", fw_version); +} + +static ssize_t firmware_version_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + unsigned char dbbus_tx_data[3]; + unsigned char dbbus_rx_data[4] ; + unsigned short major=0, minor=0; +/* + dbbusDWIICEnterSerialDebugMode(); + dbbusDWIICStopMCU(); + dbbusDWIICIICUseBus(); + dbbusDWIICIICReshape(); + +*/ + if(NULL==fw_version) + { + fw_version = kzalloc(sizeof(char), GFP_KERNEL); + } + + //Get_Chip_Version(); + dbbus_tx_data[0] = 0x53; + dbbus_tx_data[1] = 0x00; + dbbus_tx_data[2] = 0x2a; + HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX_TP, &dbbus_tx_data[0], 3); + HalTscrCReadI2CSeq(FW_ADDR_MSG21XX_TP, &dbbus_rx_data[0], 4); + + major = (dbbus_rx_data[1]<<8)+dbbus_rx_data[0]; + minor = (dbbus_rx_data[3]<<8)+dbbus_rx_data[2]; + + TP_DEBUG("***major = %d ***\n", major); + TP_DEBUG("***minor = %d ***\n", minor); + sprintf(fw_version,"%03d%03d", major, minor); + //TP_DEBUG(printk("***fw_version = %s ***\n", fw_version);) + + return size; +} +static DEVICE_ATTR(version, 0664, firmware_version_show, firmware_version_store); + +static ssize_t firmware_data_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return FwDataCnt; +} + +static ssize_t firmware_data_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + int i; + TP_DEBUG("***FwDataCnt = %d ***\n", FwDataCnt); + for (i = 0; i < 1024; i++) + { + memcpy(temp[FwDataCnt], buf, 1024); + } + FwDataCnt++; + return size; +} +static DEVICE_ATTR(data, 0664, firmware_data_show, firmware_data_store); +#endif //__FIRMWARE_UPDATE__ + +static int pixcir_i2c_txdata(char *txdata, int length) +{ + int ret; + struct i2c_msg msg[] = { + { + .addr = msg21xx_i2c_client->addr, + .flags = 0, + .len = length, + .buf = txdata, + }, + }; + + ret = i2c_transfer(msg21xx_i2c_client->adapter, msg, 1); + if (ret < 0) + pr_err("%s i2c write error: %d\n", __func__, ret); + + return ret; +} + +static int pixcir_i2c_write_data(unsigned char addr, unsigned char data) +{ + unsigned char buf[2]; + buf[0]=addr; + buf[1]=data; + return pixcir_i2c_txdata(buf, 2); +} + +static bool msg2138_i2c_read(char *pbt_buf, int dw_lenth) +{ + int ret; + // pr_ch("The msg_i2c_client->addr=0x%x\n",i2c_client->addr); + ret = i2c_master_recv(msg21xx_i2c_client, pbt_buf, dw_lenth); + + if(ret <= 0) + { + //pr_tp("msg_i2c_read_interface error\n"); + return false; + } + + return true; +} + +static bool msg2138_i2c_write(char *pbt_buf, int dw_lenth) +{ + int ret; + // pr_ch("The msg_i2c_client->addr=0x%x\n",i2c_client->addr); + ret = i2c_master_send(msg21xx_i2c_client, pbt_buf, dw_lenth); + + if(ret <= 0) + { + //pr_tp("msg_i2c_read_interface error\n"); + return false; + } + + return true; +} + +static DEVICE_ATTR(calibrate, S_IRUGO | S_IWUSR, NULL, pixcir_set_calibrate); +static DEVICE_ATTR(suspend, S_IRUGO | S_IWUSR, pixcir_show_suspend, pixcir_store_suspend); + +static ssize_t pixcir_set_calibrate(struct device* cd, struct device_attribute *attr, + const char* buf, size_t len) +{ + unsigned long on_off = simple_strtoul(buf, NULL, 10); + + if(on_off==1) + { + printk("%s: PIXCIR calibrate\n",__func__); + pixcir_i2c_write_data(0x3a , 0x03); + msleep(5*1000); + } + + return len; +} + +static ssize_t pixcir_show_suspend(struct device* cd, + struct device_attribute *attr, char* buf) +{ + ssize_t ret = 0; + + if(suspend_flag==1) + sprintf(buf, "Pixcir Suspend\n"); + else + sprintf(buf, "Pixcir Resume\n"); + + ret = strlen(buf) + 1; + + return ret; +} + +static ssize_t pixcir_store_suspend(struct device* cd, struct device_attribute *attr, + const char* buf, size_t len) +{ + unsigned long on_off = simple_strtoul(buf, NULL, 10); + suspend_flag = on_off; + + if(on_off==1) + { + printk("Pixcir Entry Suspend\n"); + pixcir_ts_suspend(NULL); + } + else + { + printk("Pixcir Entry Resume\n"); + pixcir_ts_resume(NULL); + + } + + return len; +} + +static void pixcir_reset(void) +{ + struct msg2138_ts_platform_data *pdata = msg21xx_i2c_ts_data->platform_data; + + PIXCIR_DBG("%s\n",__func__); + gpio_set_value(pdata->reset_gpio_number, 1); + msleep(3); + gpio_set_value(pdata->reset_gpio_number, 0); + msleep(310); + gpio_set_value(pdata->reset_gpio_number, 1); + msleep(100); +} + +//cg,20130929,start +#ifdef SYSFS_DEBUG +static void cg_tpfwver_readfwver() +{ + unsigned char dbbus_tx_data[3]; + unsigned char dbbus_rx_data[4] ; + unsigned short major=0, minor=0; + u8 count = 0; + int ret = 0; + + for(count=0;count<5;count++) + { + pixcir_reset(); + msleep(100); + if(NULL == cg_fw_version) + { + cg_fw_version = kzalloc(sizeof(char), GFP_KERNEL); + } + + //Get_Chip_Version(); + dbbus_tx_data[0] = 0x53; + dbbus_tx_data[1] = 0x00; + dbbus_tx_data[2] = 0x2a; + ret = HalTscrCDevWriteI2CSeq(FW_ADDR_MSG21XX_TP, &dbbus_tx_data[0], 3); + if(ret<0) + { + printk("*** write fail ret = %d ***\n", ret); + continue; + } + msleep(100); + ret = HalTscrCReadI2CSeq(FW_ADDR_MSG21XX_TP, &dbbus_rx_data[0], 4); + if(ret<0) + { + printk("*** read fail ret = %d ***\n", ret); + continue; + } + major =(dbbus_rx_data[1]<<8)+dbbus_rx_data[0]; + if(0==major) + { + printk("*** major fail = %d ***\n", major); + continue; + } + minor =(dbbus_rx_data[3]<<8)+dbbus_rx_data[2]; + printk("***major = %d ***\n", major); + printk("***minor = %d ***\n", minor); + + sprintf(cg_fw_version,"%03d%03d", major, minor); + printk("***tp_fw_version = %s ***\n", cg_fw_version); + break; + } + printk("*** count = %d ***\n", count); +} + +static ssize_t cg_tpfwver_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + cg_tpfwver_readfwver(); + return sprintf(buf, "%s\n", cg_fw_version); + +} + +static ssize_t cg_tpfwver_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + return -EPERM; + +} +static DEVICE_ATTR(fwversion, S_IRUGO, cg_tpfwver_show,NULL); + +#endif +//cg,20130929,end + +static int pixcir_create_sysfs(struct i2c_client *client) +{ + int err; + struct device *dev = &(client->dev); + + PIXCIR_DBG("%s\n", __func__); + + err = device_create_file(dev, &dev_attr_calibrate); + err = device_create_file(dev, &dev_attr_suspend); + #ifdef SYSFS_DEBUG + err = device_create_file(dev, &dev_attr_fwversion); //cg,20130929 + #endif + return err; +} + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void pixcir_ts_suspend(struct early_suspend *handler) +{ + struct msg2138_ts_platform_data *pdata = msg21xx_i2c_ts_data->platform_data; + printk("==%s==\n", __func__); + disable_irq_nosync(global_irq); + msleep(3); + gpio_set_value(pdata->reset_gpio_number, 0); + msleep(10); +} +static void pixcir_ts_resume(struct early_suspend *handler) +{ + //unsigned char rdbuf[27]; + //int num = 10; + //disable_irq_nosync(global_irq); + +#if 0 + struct pixcir_i2c_ts_data *pixcir_ts = (struct pixcir_i2c_ts_data *)i2c_get_clientdata(msg21xx_i2c_client); + queue_work(pixcir_ts->ts_resume_workqueue, &pixcir_ts->resume_work); +#endif + printk("==%s==start==\n", __func__); + pixcir_reset(); + enable_irq(global_irq); + printk("==%s==end==\n", __func__); + +} +#endif + +#ifdef TOUCH_VIRTUAL_KEYS +/*static ssize_t virtual_keys_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) +{ + return sprintf(buf, + __stringify(EV_KEY) ":" __stringify(KEY_HOMEPAGE) ":192:1000:64:60" + ":" __stringify(EV_KEY) ":" __stringify(KEY_MENU) ":256:1000:64:60" + ":" __stringify(EV_KEY) ":" __stringify(KEY_BACK) ":128:1000:64:60" + ":" __stringify(EV_KEY) ":" __stringify(KEY_SEARCH) ":64:1000:64:60" + "\n"); +}*/ +static ssize_t virtual_keys_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) +{ + struct pixcir_i2c_ts_data *data = i2c_get_clientdata(msg21xx_i2c_client); + struct msg2138_ts_platform_data *pdata = data->platform_data; + return sprintf(buf,"%s:%s:%d:%d:%d:%d:%s:%s:%d:%d:%d:%d:%s:%s:%d:%d:%d:%d\n" + ,__stringify(EV_KEY), __stringify(KEY_MENU),pdata ->virtualkeys[0],pdata ->virtualkeys[1],pdata ->virtualkeys[2],pdata ->virtualkeys[3] + ,__stringify(EV_KEY), __stringify(KEY_HOMEPAGE),pdata ->virtualkeys[4],pdata ->virtualkeys[5],pdata ->virtualkeys[6],pdata ->virtualkeys[7] + ,__stringify(EV_KEY), __stringify(KEY_BACK),pdata ->virtualkeys[8],pdata ->virtualkeys[9],pdata ->virtualkeys[10],pdata ->virtualkeys[11]); +} + +static struct kobj_attribute virtual_keys_attr = { + .attr = { + .name = "virtualkeys.msg2138_ts", + .mode = S_IRUGO, + }, + .show = &virtual_keys_show, +}; + +static struct attribute *properties_attrs[] = { + &virtual_keys_attr.attr, + NULL +}; + +static struct attribute_group properties_attr_group = { + .attrs = properties_attrs, +}; + +static void pixcir_ts_virtual_keys_init(void) +{ + int ret; + struct kobject *properties_kobj; + + PIXCIR_DBG("%s\n",__func__); + + properties_kobj = kobject_create_and_add("board_properties", NULL); + if (properties_kobj) + ret = sysfs_create_group(properties_kobj, + &properties_attr_group); + if (!properties_kobj || ret) + pr_err("failed to create board_properties\n"); +} +#endif + +static int getchipType(void) +{ + int curr_ic_type = 0; + u8 dbbus_tx_data[4]; + unsigned char dbbus_rx_data[2] = {0}; + int error = 0; + + //check id + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x1E; + dbbus_tx_data[2] = 0xCC; + error = HalTscrCDevWriteI2CSeq ( FW_ADDR_MSG21XX, dbbus_tx_data, 3 ); + if (error < 0) { + pr_err("[MSG2138A] getchipType() write i2c error %d\n",error); + return error; + } + error = HalTscrCReadI2CSeq ( FW_ADDR_MSG21XX, &dbbus_rx_data[0], 2 ); + if (error < 0) { + pr_err("[MSG2138A] getchipType() read i2c error %d\n",error); + return error; + } + if ( dbbus_rx_data[0] == 2 ) { + curr_ic_type = CTP_ID_MSG21XXA; + } else { + curr_ic_type = CTP_ID_MSG21XX; + } + + return curr_ic_type; + +} + +static void pixcir_ts_hw_init(struct pixcir_i2c_ts_data *tsdata) +{ + struct regulator *g_cg_reg_vdd; + struct msg2138_ts_platform_data *pdata = tsdata->platform_data; + struct i2c_client *client = tsdata->client; + int err= 0; + gpio_request(pdata->reset_gpio_number, "gpio_tp_rst"); + gpio_request(pdata->irq_gpio_number, "gpio_tp_irq"); + gpio_direction_output(pdata->reset_gpio_number,1); + gpio_direction_input(pdata->irq_gpio_number); + g_cg_reg_vdd = regulator_get(&client->dev, pdata->vdd_name); + if (!WARN(IS_ERR(g_cg_reg_vdd), "[MSG2138] pixcir_ts_hw_init regulator: failed to get %s.\n", pdata->vdd_name)) { + regulator_set_voltage(g_cg_reg_vdd, 2800000, 2800000); + err = regulator_enable(g_cg_reg_vdd); + } + msleep(100); + pixcir_reset(); +} + +/*static int attb_read_val(void) +{ + struct msg2138_ts_platform_data *pdata = msg21xx_i2c_ts_data->platform_data; + return gpio_get_value(pdata->irq_gpio_number); +}*/ + +unsigned char tpd_check_sum(unsigned char *pval) +{ + int i, sum = 0; + + for(i = 0; i < 7; i++) + { + sum += pval[i]; + } + + return (unsigned char)((-sum) & 0xFF); +} + +static void return_i2c_dev(struct i2c_dev *i2c_dev) +{ + spin_lock(&i2c_dev_list_lock); + list_del(&i2c_dev->list); + spin_unlock(&i2c_dev_list_lock); + kfree(i2c_dev); +} + +static struct i2c_dev *i2c_dev_get_by_minor(unsigned index) +{ + struct i2c_dev *i2c_dev; + i2c_dev = NULL; + + spin_lock(&i2c_dev_list_lock); + list_for_each_entry(i2c_dev, &i2c_dev_list, list) + { + if (i2c_dev->adap->nr == index) + goto found; + } + i2c_dev = NULL; + found: spin_unlock(&i2c_dev_list_lock); + return i2c_dev; +} + +static struct i2c_dev *get_free_i2c_dev(struct i2c_adapter *adap) +{ + struct i2c_dev *i2c_dev; + + if (adap->nr >= I2C_MINORS) { + printk(KERN_ERR "i2c-dev: Out of device minors (%d)\n", + adap->nr); + return ERR_PTR(-ENODEV); + } + + i2c_dev = kzalloc(sizeof(*i2c_dev), GFP_KERNEL); + if (!i2c_dev) + return ERR_PTR(-ENOMEM); + + i2c_dev->adap = adap; + + spin_lock(&i2c_dev_list_lock); + list_add_tail(&i2c_dev->list, &i2c_dev_list); + spin_unlock(&i2c_dev_list_lock); + return i2c_dev; +} +/*********************************Bee-0928-bottom**************************************/ + +struct point_node_t{ + unsigned char active ; + unsigned char finger_id; + int posx; + int posy; +}; + +static struct point_node_t point_slot[MAX_FINGER_NUM*2]; +static int keycode; +static int sy_rxdata(struct touch_info *cinfo, struct touch_info *pinfo) + { + //u32 retval; + //static unsigned char tt_mode; + //pinfo->count = cinfo->count; + unsigned char reg_val[8] = {0}; + int dst_x=0,dst_y=0; + unsigned int temp_checksum; + struct TouchScreenInfo_t touchData; + //unsigned char touchkeycode = 0; + //static int preKeyStatus; + + //TPD_DEBUG("pinfo->count =%d\n",pinfo->count); + cinfo->count = 0; //touch end + msg2138_i2c_read(reg_val, 8); + + //retval = i2c_smbus_read_i2c_block_data(msg21xx_i2c_client, TPD_REG_BASE, 8, (unsigned char *)&g_operation_data); + //retval += i2c_smbus_read_i2c_block_data(msg21xx_i2c_client, TPD_REG_BASE + 8, 8, (((unsigned char *)(&g_operation_data)) + 8)); + + cinfo->x1 = ((reg_val[1] & 0xF0) << 4) | reg_val[2]; + cinfo->y1 = ((reg_val[1] & 0x0F) << 8) | reg_val[3]; + dst_x = ((reg_val[4] & 0xF0) << 4) | reg_val[5]; + dst_y = ((reg_val[4] & 0x0F) << 8) | reg_val[6]; + + + temp_checksum = tpd_check_sum(reg_val); + + if((temp_checksum==reg_val[7])&&(reg_val[0] == 0x52)) + { + + if ((reg_val[1] == 0xFF) && (reg_val[2] == 0xFF) && (reg_val[3] == 0xFF) && (reg_val[4] == 0xFF) && (reg_val[6] == 0xFF)) + { + cinfo->x1 = 0; // final X coordinate + cinfo->y1 = 0; // final Y coordinate + + if((reg_val[5]==0x0)||(reg_val[5]==0xFF)) + { + cinfo->count = 0; //touch end + touchData.nTouchKeyCode = 0; //TouchKeyMode + touchData.nTouchKeyMode = 0; //TouchKeyMode + keycode=0; + } + else + { + touchData.nTouchKeyMode = 1; //TouchKeyMode + touchData.nTouchKeyCode = reg_val[5]; //TouchKeyCode + keycode= reg_val[5]; + + if(keycode==1) + { + cinfo->x1 = 256; // final X coordinate + cinfo->y1 = 1000; // final Y coordinate + + } + else if(keycode==2) + { + cinfo->x1 = 192; // final X coordinate + cinfo->y1 = 1000; // final Y coordinate + + } + else if (keycode==4) + { + cinfo->x1 = 128; // final X coordinate + cinfo->y1 = 1000; // final Y coordinate + + } + + cinfo->count = 1; + } + } + else + { + touchData.nTouchKeyMode = 0; //Touch on screen... + + if ((dst_x == 0) && (dst_y == 0)) + { + cinfo->count = 1; //one touch + #if TP_XY_CHANGE + xysawp_temp=cinfo->x1; + //cinfo->x1=2047-cinfo->y1; + cinfo->x1=cinfo->y1; + cinfo->y1=xysawp_temp; + #endif + + #ifdef TP_X_CHANGE + cinfo->x1 = 2047 - cinfo->x1; + #endif + + cinfo->x1 = (cinfo->x1 * MS_TS_MSG21XX_X_MAX) / 2048; + cinfo->y1 = (cinfo->y1 * MS_TS_MSG21XX_Y_MAX) / 2048; + } + else + { + + cinfo->count = 2; //two touch + + + if (dst_x > 2048) //transform the unsigh value to sign value + { + dst_x -= 4096; + } + if (dst_y > 2048) + { + dst_y -= 4096; + } + + cinfo->x2 = (cinfo->x1 + dst_x); + cinfo->y2 = (cinfo->y1 + dst_y); + + #if TP_XY_CHANGE + xysawp_temp=cinfo->x1; + //cinfo->x1=2047-cinfo->y1; + cinfo->x1=cinfo->y1; + cinfo->y1=xysawp_temp; + + xysawp_temp=cinfo->x2; + cinfo->x2=2047-cinfo->y2; + cinfo->y2=xysawp_temp; + #endif + + #ifdef TP_X_CHANGE + cinfo->x1 = 2047 - cinfo->x1; + cinfo->x2 = 2047 - cinfo->x2; + #endif + + cinfo->x1 = (cinfo->x1 * MS_TS_MSG21XX_X_MAX) / 2048; + cinfo->y1 = (cinfo->y1 * MS_TS_MSG21XX_Y_MAX) / 2048; + + cinfo->x2 = (cinfo->x2 * MS_TS_MSG21XX_X_MAX) / 2048; + cinfo->y2 = (cinfo->y2 * MS_TS_MSG21XX_Y_MAX) / 2048; + + } + } + + return 1; + } + return 1; + } +static void pixcir_ts_poscheck(struct pixcir_i2c_ts_data *data) +{ + struct pixcir_i2c_ts_data *tsdata = data; + struct touch_info cinfo, pinfo; + int *p; + unsigned char touch; + unsigned char rdbuf[27]; + int i; + //static int lastkey=0; + // printk("===%s===\n",__func__); + rdbuf[0]=0; + //pixcir_i2c_rxdata(rdbuf, 27); + + //touch = rdbuf[0]&0x07; + sy_rxdata(&cinfo, &pinfo); + touch = cinfo.count; + //button = rdbuf[1]; + //p=&rdbuf[2]; + p=(int*)&cinfo; + // printk("===touch:%d===",touch); + for (i=0; i>3); + point_slot[i].active = 1; + point_slot[i].finger_id = i; + point_slot[i].posx = *(p+i*2); + point_slot[i].posy = *(p+i*2+1); + + } + + if(touch) { + //input_report_key(tsdata->input, BTN_TOUCH, 1); + //input_report_abs(tsdata->input, ABS_MT_TOUCH_MAJOR, 15); + for (i=0; i(MS_TS_MSG21XX_X_MAX -2)) { + point_slot[i].posx = (MS_TS_MSG21XX_X_MAX -2); + } + input_report_abs(tsdata->input, ABS_MT_POSITION_X, point_slot[i].posx); + input_report_abs(tsdata->input, ABS_MT_POSITION_Y, point_slot[i].posy); + //input_report_abs(tsdata->input, ABS_MT_TOUCH_MAJOR, 15); + //input_report_abs(tsdata->input, ABS_MT_WIDTH_MAJOR, 1); + input_report_key(tsdata->input, BTN_TOUCH, 1); + input_mt_sync(tsdata->input); + PIXCIR_DBG("%s: slot=%d,x%d=%d,y%d=%d\n",__func__, i, i/2,point_slot[i].posx, i/2, point_slot[i].posy); + } + } + } + } else { + PIXCIR_DBG("%s: release\n",__func__); + #if 0 + //input_report_key(tsdata->input, BTN_TOUCH, 0); + input_report_abs(tsdata->input, ABS_MT_TOUCH_MAJOR, 0); + input_report_abs(tsdata->input, ABS_MT_WIDTH_MAJOR, 0); + input_mt_sync(tsdata->input); + #endif + input_report_key(tsdata->input, BTN_TOUCH, 0); + input_mt_sync(tsdata->input); + } + PIXCIR_DBG("%s: keycode =%x\n",__func__,keycode); + /* + if(lastkey!=keycode) + { + for(i=0;i<3;i++) + { + input_report_key(tsdata->input, keymap[i], (keycode)&(1<input); + for (i=0; iexiting) { + pixcir_ts_poscheck(tsdata); +#endif //cg,20140402 +#if 0 + if (attb_read_val()) { + PIXCIR_DBG("%s: release\n",__func__); + //input_report_key(tsdata->input, BTN_TOUCH, 0); + input_report_abs(tsdata->input, ABS_MT_TOUCH_MAJOR, 0); + input_sync(tsdata->input); + break; + } +#endif +// msleep(10); + +// } + + enable_irq(irq); + + return IRQ_HANDLED; +} + +#ifdef CONFIG_PM_SLEEP +static int pixcir_i2c_ts_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + unsigned char wrbuf[2] = { 0 }; + int ret; + + wrbuf[0] = 0x33; + wrbuf[1] = 0x03; //enter into freeze mode; + /************************************************************** + wrbuf[1]: 0x00: Active mode + 0x01: Sleep mode + 0xA4: Sleep mode automatically switch + 0x03: Freeze mode + More details see application note 710 power manangement section + ****************************************************************/ + ret = i2c_master_send(client, wrbuf, 2); + if(ret!=2) { + dev_err(&client->dev, + "%s: i2c_master_send failed(), ret=%d\n", + __func__, ret); + } + + if (device_may_wakeup(&client->dev)) + enable_irq_wake(client->irq); + + return 0; +} + +static int pixcir_i2c_ts_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); +///if suspend enter into freeze mode please reset TP +#if 1 + pixcir_reset(); +#else + unsigned char wrbuf[2] = { 0 }; + int ret; + + wrbuf[0] = 0x33; + wrbuf[1] = 0; + ret = i2c_master_send(client, wrbuf, 2); + if(ret!=2) { + dev_err(&client->dev, + "%s: i2c_master_send failed(), ret=%d\n", + __func__, ret); + } +#endif + if (device_may_wakeup(&client->dev)) + disable_irq_wake(client->irq); + + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(pixcir_dev_pm_ops, + pixcir_i2c_ts_suspend, pixcir_i2c_ts_resume); + +static int tpd_get_bl_info (int show) + { + int retval = TPD_OK; + + retval = i2c_smbus_read_i2c_block_data(msg21xx_i2c_client, TPD_REG_BASE, 8, (unsigned char *)&g_bootloader_data); + retval += i2c_smbus_read_i2c_block_data(msg21xx_i2c_client, TPD_REG_BASE + 8, 8, (((unsigned char *)&g_bootloader_data) + 8)); + TPD_DEBUG("ret=%d,first=0x%02x\n",retval,(unsigned char )(*((unsigned char *)&g_bootloader_data))); + if (show) + { + + TPD_DEBUG("BL: bl_file = %02X, bl_status = %02X, bl_error = %02X, blver = %02X%02X, bld_blver = %02X%02X\n", \ + g_bootloader_data.bl_file, \ + g_bootloader_data.bl_status, \ + g_bootloader_data.bl_error, \ + g_bootloader_data.blver_hi, g_bootloader_data.blver_lo, \ + g_bootloader_data.bld_blver_hi, g_bootloader_data.bld_blver_lo); + + TPD_DEBUG("BL: ttspver = 0x%02X%02X, appid=0x%02X%02X, appver=0x%02X%02X\n", \ + g_bootloader_data.ttspver_hi, g_bootloader_data.ttspver_lo, \ + g_bootloader_data.appid_hi, g_bootloader_data.appid_lo, \ + g_bootloader_data.appver_hi, g_bootloader_data.appver_lo); + + TPD_DEBUG("BL: cid = 0x%02X%02X%02X\n", \ + g_bootloader_data.cid_0, \ + g_bootloader_data.cid_1, \ + g_bootloader_data.cid_2); + + } + /*ergate-001*/ + //mdelay(100); + + return retval; + } + +static int sy_init(void) +{ + int retval = TPD_OK; + int tries = 0; + unsigned char host_reg; + host_reg = TPD_SOFT_RESET_MODE; + // printk("==sy_init==0=="); + retval = i2c_smbus_write_i2c_block_data(msg21xx_i2c_client,TPD_REG_BASE,sizeof(host_reg),&host_reg); + // printk("==sy_init==1==retval:%d==",retval); + if(retval < TPD_OK) + return retval; + + do{ + mdelay(100); + retval = tpd_get_bl_info(1); + }while(!(retval < TPD_OK) && !GET_BOOTLOADERMODE(g_bootloader_data.bl_status)&& + !(g_bootloader_data.bl_file == TPD_OP_MODE + TPD_LOW_PWR_MODE) && tries++ < 10); + if(g_bootloader_data.bl_status != (unsigned char )0x11) + { + if(!(retval < 0)) + { + host_reg = TPD_OP_MODE; + retval = i2c_smbus_write_i2c_block_data(msg21xx_i2c_client,TPD_REG_BASE,sizeof(host_reg),&host_reg); + mdelay(100); + } + if(!(retval < 0)) + { + TPD_DEBUG("Switch to sysinfo mode \n"); + host_reg = TPD_SYSINFO_MODE; + retval = i2c_smbus_write_i2c_block_data(msg21xx_i2c_client,TPD_REG_BASE,sizeof(host_reg),&host_reg); + mdelay(100); + + if(!(retval < TPD_OK)) + { + retval = i2c_smbus_read_i2c_block_data(msg21xx_i2c_client,TPD_REG_BASE, 8, (unsigned char *)&g_sysinfo_data); + retval += i2c_smbus_read_i2c_block_data(msg21xx_i2c_client,TPD_REG_BASE + 8, 8, (((unsigned char *)(&g_sysinfo_data)) + 8)); + retval += i2c_smbus_read_i2c_block_data(msg21xx_i2c_client,TPD_REG_BASE + 16, 8, (((unsigned char *)(&g_sysinfo_data)) + 16)); + retval += i2c_smbus_read_i2c_block_data (msg21xx_i2c_client,TPD_REG_BASE + 24, 8, (((unsigned char *)(&g_sysinfo_data)) + 24)); + + TPD_DEBUG("SI: hst_mode = 0x%02X, mfg_cmd = 0x%02X, mfg_stat = 0x%02X\n", \ + g_sysinfo_data.hst_mode, \ + g_sysinfo_data.mfg_cmd, \ + g_sysinfo_data.mfg_stat); + TPD_DEBUG("SI: bl_ver = 0x%02X%02X\n", \ + g_sysinfo_data.bl_verh, \ + g_sysinfo_data.bl_verl); + TPD_DEBUG("SI: act_int = 0x%02X, tch_tmout = 0x%02X, lp_int = 0x%02X\n", \ + g_sysinfo_data.act_intrvl, \ + g_sysinfo_data.tch_tmout, \ + g_sysinfo_data.lp_intrvl); + TPD_DEBUG("SI: tver = %02X%02X, a_id = %02X%02X, aver = %02X%02X\n", \ + g_sysinfo_data.tts_verh, \ + g_sysinfo_data.tts_verl, \ + g_sysinfo_data.app_idh, \ + g_sysinfo_data.app_idl, \ + g_sysinfo_data.app_verh, \ + g_sysinfo_data.app_verl); + TPD_DEBUG("SI: c_id = %02X%02X%02X\n", \ + g_sysinfo_data.cid[0], \ + g_sysinfo_data.cid[1], \ + g_sysinfo_data.cid[2]); + } + + TPD_DEBUG("Switch back to operational mode \n"); + if (!(retval < TPD_OK)) + { + host_reg = TPD_OP_MODE; + retval = i2c_smbus_write_i2c_block_data(msg21xx_i2c_client, TPD_REG_BASE, sizeof(host_reg), &host_reg); + mdelay(100); + } + } + } + else + { + //update_support = 1; + TPD_DEBUG("Switch back to operational mode \n"); + + if (!(retval < TPD_OK)) + { + unsigned char op_cmds[] = {0x00, 0x00, 0xFF, 0xA5, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07}; + //retval = i2c_master_send_ext(i2c_client, op_cmds, sizeof(op_cmds)); + retval = i2c_master_send(msg21xx_i2c_client,op_cmds, sizeof(op_cmds)); + mdelay(100); + } + } + if(retval > TPD_OK) + retval = TPD_OK; + + return retval; + +} + +//#define ITO_TEST +#ifdef ITO_TEST +static void ito_test_create_entry(void); +#endif + +#ifdef CONFIG_OF +static struct msg2138_ts_platform_data *pixcir_ts_parse_dt(struct device *dev) +{ + struct msg2138_ts_platform_data *pdata = NULL; + struct device_node *np = dev->of_node; + int ret; + + pdata = kzalloc(sizeof(*pdata), GFP_KERNEL); + if (!pdata) { + dev_err(dev, "Could not allocate struct msg2138_ts_platform_data"); + return NULL; + } + pdata->reset_gpio_number = of_get_gpio(np, 0); + if(pdata->reset_gpio_number < 0){ + dev_err(dev, "fail to get reset_gpio_number\n"); + goto fail; + } + pdata->irq_gpio_number = of_get_gpio(np, 1); + if(pdata->irq_gpio_number < 0){ + dev_err(dev, "fail to get irq_gpio_number\n"); + goto fail; + } + ret = of_property_read_string(np, "vdd_name", &pdata->vdd_name); + if(ret){ + dev_err(dev, "fail to get vdd_name\n"); + goto fail; + } + ret = of_property_read_u32_array(np, "virtualkeys", &pdata->virtualkeys,12); + if(ret){ + dev_err(dev, "fail to get virtualkeys\n"); + goto fail; + } + ret = of_property_read_u32(np, "TP_MAX_X", &pdata->TP_MAX_X); + if(ret){ + dev_err(dev, "fail to get TP_MAX_X\n"); + goto fail; + } + ret = of_property_read_u32(np, "TP_MAX_Y", &pdata->TP_MAX_Y); + if(ret){ + dev_err(dev, "fail to get TP_MAX_Y\n"); + goto fail; + } + + return pdata; +fail: + kfree(pdata); + return NULL; +} +#endif + +static int pixcir_i2c_ts_probe(struct i2c_client *client,const struct i2c_device_id *id) +{ + struct msg2138_ts_platform_data *pdata = client->dev.platform_data; + struct pixcir_i2c_ts_data *tsdata = NULL; + struct input_dev *input = NULL; + struct device *dev = NULL; + struct i2c_dev *i2c_dev = NULL; + int i, error; + + printk("msg2138 probe in! \n"); + +#ifdef CONFIG_OF + struct device_node *np = client->dev.of_node; + if (np && !pdata){ + pdata = pixcir_ts_parse_dt(&client->dev); + if(pdata){ + client->dev.platform_data = pdata; + } + else{ + error = -ENOMEM; + goto exit_alloc_platform_data_failed; + } + } +#endif + + tsdata = kzalloc(sizeof(*tsdata), GFP_KERNEL); + if (!tsdata) { + error = -ENOMEM; + dev_err(&client->dev, "Failed to allocate tsdata!\n"); + goto exit_alloc_tsdata_failed; + } + + msg21xx_i2c_client = client; + tsdata->client = client; + msg21xx_i2c_ts_data = tsdata; + tsdata->platform_data = pdata; + MS_TS_MSG21XX_X_MAX = pdata->TP_MAX_X; + MS_TS_MSG21XX_Y_MAX = pdata->TP_MAX_Y; + //client->addr = 0x26; + pixcir_ts_hw_init(tsdata); + client->irq = gpio_to_irq(pdata->irq_gpio_number); + i2c_set_clientdata(client, tsdata); + +#if defined(CONFIG_I2C_SPRD) || defined(CONFIG_I2C_SPRD_V1) + sprd_i2c_ctl_chg_clk(client->adapter->nr, 400000); +#endif + + error = getchipType(); + if (error < 0) { + pr_err("[MSG2138A] read chip id failed\n"); + error = -ENODEV; + goto exit_chip_check_failed; + } else { + printk("[MSG2138A] the chip id is %d\n",error); + } + + for(i=0; idev, "Failed to allocate input device!\n"); + error = -ENOMEM; + goto exit_input_alloc_failed; + } + +#ifdef TOUCH_VIRTUAL_KEYS + pixcir_ts_virtual_keys_init(); +#endif + + tsdata->input = input; + global_irq = client->irq; + input->name = MSG2138_TS_NAME; + input->id.bustype = BUS_I2C; + input->dev.parent = &client->dev; + + __set_bit(EV_KEY, input->evbit); + __set_bit(EV_ABS, input->evbit); + __set_bit(EV_SYN, input->evbit); + //__set_bit(BTN_TOUCH, input->keybit); + __set_bit(ABS_MT_TOUCH_MAJOR, input->absbit); + __set_bit(ABS_MT_POSITION_X, input->absbit); + __set_bit(ABS_MT_POSITION_Y, input->absbit); + __set_bit(ABS_MT_WIDTH_MAJOR, input->absbit); + + __set_bit(KEY_MENU, input->keybit); + __set_bit(KEY_BACK, input->keybit); + __set_bit(KEY_HOME, input->keybit); + __set_bit(KEY_SEARCH, input->keybit); + + input_set_abs_params(input, ABS_MT_POSITION_X, 0, pdata->TP_MAX_X, 0, 0); + input_set_abs_params(input, ABS_MT_POSITION_Y, 0, pdata->TP_MAX_Y, 0, 0); + input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(input, ABS_MT_WIDTH_MAJOR, 0, 255, 0, 0); + input_set_drvdata(input, tsdata); + + error = request_irq(client->irq, pixcir_ts_isr, + IRQF_TRIGGER_FALLING, client->name, tsdata); + if (error) { + dev_err(&client->dev, "Unable to request touchscreen IRQ.\n"); + goto exit_requst_irq_failed; + } + disable_irq_nosync(client->irq); + + error = input_register_device(input); + if (error) + goto exit_input_register_failed; + device_init_wakeup(&client->dev, 1); + + /*********************************Bee-0928-TOP****************************************/ + i2c_dev = get_free_i2c_dev(client->adapter); + if (IS_ERR(i2c_dev)) { + error = PTR_ERR(i2c_dev); + goto exit_get_i2c_dev_failed; + } + + dev = device_create(i2c_dev_class, &client->adapter->dev, MKDEV(I2C_MAJOR, + client->adapter->nr), NULL, "pixcir_i2c_ts%d", 0); + if (IS_ERR(dev)) { + error = PTR_ERR(dev); + goto exit_device_create_failed; + } + /*********************************Bee-0928-BOTTOM****************************************/ +#ifdef CONFIG_HAS_EARLYSUSPEND + pixcir_early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + pixcir_early_suspend.suspend = pixcir_ts_suspend; + pixcir_early_suspend.resume = pixcir_ts_resume; + register_early_suspend(&pixcir_early_suspend); +#endif + + /********* frameware upgrade *********/ +#ifdef __FIRMWARE_UPDATE__ + firmware_class = class_create(THIS_MODULE, "ms-touchscreen-msg20xx"); + if (IS_ERR(firmware_class)) + pr_err("Failed to create class(firmware)!\n"); + firmware_cmd_dev = device_create(firmware_class, + NULL, 0, NULL, "device"); + if (IS_ERR(firmware_cmd_dev)) + pr_err("Failed to create device(firmware_cmd_dev)!\n"); + + // version + if (device_create_file(firmware_cmd_dev, &dev_attr_version) < 0) + pr_err("Failed to create device file(%s)!\n", dev_attr_version.attr.name); + // update + if (device_create_file(firmware_cmd_dev, &dev_attr_update) < 0) + pr_err("Failed to create device file(%s)!\n", dev_attr_update.attr.name); + // data + if (device_create_file(firmware_cmd_dev, &dev_attr_data) < 0) + pr_err("Failed to create device file(%s)!\n", dev_attr_data.attr.name); + // clear + // if (device_create_file(firmware_cmd_dev, &dev_attr_clear) < 0) + // pr_err("Failed to create device file(%s)!\n", dev_attr_clear.attr.name); + + dev_set_drvdata(firmware_cmd_dev, NULL); +#endif //__FIRMWARE_UPDATE__ +#ifdef ITO_TEST + ito_test_create_entry(); +#endif +#if 0 + error = pixcir_create_sysfs(client); + if (error) { + dev_err(&client->dev, "insmod successfully!\n"); + goto exit_create_sysfs_failed; + }; +#endif +#ifdef SYSFS_DEBUG + cg_tpfwver_readfwver(); +#endif //cg,20130929 + +#if USE_WAIT_QUEUE + thread = kthread_run(touch_event_handler, 0, "pixcir-wait-queue"); + if (IS_ERR(thread)) + { + error = PTR_ERR(thread); + dev_err(&client->dev, "failed to create kernel thread\n"); + goto exit_kthread_run_failed; + } +#endif + + enable_irq(client->irq); + //tp_cg_flag=2; + printk("[MSG2138A]pixcir_i2c probe success\n"); + return 0; + +exit_kthread_run_failed: +exit_create_sysfs_failed: +exit_device_create_failed: +exit_get_i2c_dev_failed: + input_unregister_device(input); +exit_input_register_failed: + free_irq(client->irq, tsdata); +exit_requst_irq_failed: + input_free_device(input); +exit_input_alloc_failed: +exit_chip_check_failed: + gpio_free(pdata->irq_gpio_number); + gpio_free(pdata->reset_gpio_number); + kfree(tsdata); +exit_alloc_tsdata_failed: + pdata = NULL; + client = NULL; +exit_alloc_platform_data_failed: + return error; +} + +static int pixcir_i2c_ts_remove(struct i2c_client *client) +{ + int error; + struct i2c_dev *i2c_dev; + struct pixcir_i2c_ts_data *tsdata = i2c_get_clientdata(client); + + device_init_wakeup(&client->dev, 0); + + tsdata->exiting = true; + mb(); + free_irq(client->irq, tsdata); + + /*********************************Bee-0928-TOP****************************************/ + i2c_dev = get_free_i2c_dev(client->adapter); + if (IS_ERR(i2c_dev)) { + error = PTR_ERR(i2c_dev); + return error; + } + + return_i2c_dev(i2c_dev); + device_destroy(i2c_dev_class, MKDEV(I2C_MAJOR, client->adapter->nr)); + /*********************************Bee-0928-BOTTOM****************************************/ + unregister_early_suspend(&pixcir_early_suspend); + input_unregister_device(tsdata->input); + kfree(tsdata); + + return 0; +} + +/*************************************Bee-0928****************************************/ +/* pixcir_open */ +/*************************************Bee-0928****************************************/ +static int pixcir_open(struct inode *inode, struct file *file) +{ + int subminor; + struct i2c_client *client; + struct i2c_adapter *adapter; + struct i2c_dev *i2c_dev; + int ret = 0; + PIXCIR_DBG("enter pixcir_open function\n"); + + subminor = iminor(inode); + +// lock_kernel(); + i2c_dev = i2c_dev_get_by_minor(subminor); + if (!i2c_dev) { + //printk("error i2c_dev\n"); + return -ENODEV; + } + + adapter = i2c_get_adapter(i2c_dev->adap->nr); + if (!adapter) { + return -ENODEV; + } + + client = kzalloc(sizeof(*client), GFP_KERNEL); + if (!client) { + i2c_put_adapter(adapter); + ret = -ENOMEM; + } + + snprintf(client->name, I2C_NAME_SIZE, "pixcir_i2c_ts%d", adapter->nr); + client->driver = &pixcir_i2c_ts_driver; + client->adapter = adapter; + + file->private_data = client; + + return 0; +} + +/*************************************Bee-0928****************************************/ +/* pixcir_ioctl */ +/*************************************Bee-0928****************************************/ +static long pixcir_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + //struct i2c_client *client = (struct i2c_client *) file->private_data; + + PIXCIR_DBG("pixcir_ioctl(),cmd = %d,arg = %ld\n", cmd, arg); + +#if 0 + switch (cmd) + { + case CALIBRATION_FLAG: //CALIBRATION_FLAG = 1 + client->addr = SLAVE_ADDR; + status_reg = CALIBRATION_FLAG; + break; + + case BOOTLOADER: //BOOTLOADER = 7 + client->addr = BOOTLOADER_ADDR; + status_reg = BOOTLOADER; + + pixcir_reset(); + mdelay(5); + break; + + case RESET_TP: //RESET_TP = 9 + pixcir_reset(); + break; + + case ENABLE_IRQ: //ENABLE_IRQ = 10 + status_reg = 0; + enable_irq(global_irq); + break; + + case DISABLE_IRQ: //DISABLE_IRQ = 11 + disable_irq_nosync(global_irq); + break; + + case BOOTLOADER_STU: //BOOTLOADER_STU = 12 + client->addr = BOOTLOADER_ADDR; + status_reg = BOOTLOADER_STU; + + pixcir_reset(); + mdelay(5); + + case ATTB_VALUE: //ATTB_VALUE = 13 + client->addr = SLAVE_ADDR; + status_reg = ATTB_VALUE; + break; + + default: + client->addr = SLAVE_ADDR; + status_reg = 0; + break; + } +#endif + return 0; +} + +/***********************************Bee-0928****************************************/ +/* pixcir_read */ +/***********************************Bee-0928****************************************/ +static ssize_t pixcir_read (struct file *file, char __user *buf, size_t count,loff_t *offset) +{ + //struct i2c_client *client = (struct i2c_client *)file->private_data; + //unsigned char *tmp, bootloader_stu[4], attb_value[1]; + int ret = 0; +#if 0 + switch(status_reg) + { + case BOOTLOADER_STU: + i2c_master_recv(client, bootloader_stu, sizeof(bootloader_stu)); + if (ret!=sizeof(bootloader_stu)) { + dev_err(&client->dev, + "%s: BOOTLOADER_STU: i2c_master_recv() failed, ret=%d\n", + __func__, ret); + return -EFAULT; + } + + ret = copy_to_user(buf, bootloader_stu, sizeof(bootloader_stu)); + if(ret) { + dev_err(&client->dev, + "%s: BOOTLOADER_STU: copy_to_user() failed.\n", __func__); + return -EFAULT; + }else { + ret = 4; + } + break; + + case ATTB_VALUE: + attb_value[0] = attb_read_val(); + if(copy_to_user(buf, attb_value, sizeof(attb_value))) { + dev_err(&client->dev, + "%s: ATTB_VALUE: copy_to_user() failed.\n", __func__); + return -EFAULT; + }else { + ret = 1; + } + break; + + default: + tmp = kmalloc(count,GFP_KERNEL); + if (tmp==NULL) + return -ENOMEM; + + ret = i2c_master_recv(client, tmp, count); + if (ret != count) { + dev_err(&client->dev, + "%s: default: i2c_master_recv() failed, ret=%d\n", + __func__, ret); + return -EFAULT; + } + + if(copy_to_user(buf, tmp, count)) { + dev_err(&client->dev, + "%s: default: copy_to_user() failed.\n", __func__); + kfree(tmp); + return -EFAULT; + } + kfree(tmp); + break; + } + #endif + return ret; +} + +/***********************************Bee-0928****************************************/ +/* pixcir_write */ +/***********************************Bee-0928****************************************/ +static ssize_t pixcir_write(struct file *file,const char __user *buf,size_t count, loff_t *ppos) +{ + //struct i2c_client *client; + //unsigned char *tmp, bootload_data[143]; + int ret=0; +#if 0 + client = file->private_data; + + switch(status_reg) + { + case CALIBRATION_FLAG: //CALIBRATION_FLAG=1 + tmp = kmalloc(count,GFP_KERNEL); + if (tmp==NULL) + return -ENOMEM; + + if (copy_from_user(tmp,buf,count)) { + dev_err(&client->dev, + "%s: CALIBRATION_FLAG: copy_from_user() failed.\n", __func__); + kfree(tmp); + return -EFAULT; + } + + ret = i2c_master_send(client,tmp,count); + if (ret!=count ) { + dev_err(&client->dev, + "%s: CALIBRATION: i2c_master_send() failed, ret=%d\n", + __func__, ret); + kfree(tmp); + return -EFAULT; + } + + while(!attb_read_val()) { + msleep(100); + i++; + if(i>99) + break; //10s no high aatb break + } //waiting to finish the calibration.(pixcir application_note_710_v3 p43) + + kfree(tmp); + break; + + case BOOTLOADER: + memset(bootload_data, 0, sizeof(bootload_data)); + + if (copy_from_user(bootload_data, buf, count)) { + dev_err(&client->dev, + "%s: BOOTLOADER: copy_from_user() failed.\n", __func__); + return -EFAULT; + } + + ret = i2c_master_send(client, bootload_data, count); + if(ret!=count) { + dev_err(&client->dev, + "%s: BOOTLOADER: i2c_master_send() failed, ret = %d\n", + __func__, ret); + return -EFAULT; + } + break; + + default: + tmp = kmalloc(count,GFP_KERNEL); + if (tmp==NULL) + return -ENOMEM; + + if (copy_from_user(tmp,buf,count)) { + dev_err(&client->dev, + "%s: default: copy_from_user() failed.\n", __func__); + kfree(tmp); + return -EFAULT; + } + + ret = i2c_master_send(client,tmp,count); + if (ret!=count ) { + dev_err(&client->dev, + "%s: default: i2c_master_send() failed, ret=%d\n", + __func__, ret); + kfree(tmp); + return -EFAULT; + } + kfree(tmp); + break; + } + #endif + return ret; +} + +/***********************************Bee-0928****************************************/ +/* pixcir_release */ +/***********************************Bee-0928****************************************/ +static int pixcir_release(struct inode *inode, struct file *file) +{ + struct i2c_client *client = file->private_data; + + PIXCIR_DBG("enter pixcir_release funtion\n"); + + i2c_put_adapter(client->adapter); + kfree(client); + file->private_data = NULL; + + return 0; +} + +/*********************************Bee-0928-TOP****************************************/ +static const struct file_operations pixcir_i2c_ts_fops = +{ .owner = THIS_MODULE, + .read = pixcir_read, + .write = pixcir_write, + .open = pixcir_open, + .unlocked_ioctl = pixcir_ioctl, + .release = pixcir_release, +}; +/*********************************Bee-0928-BOTTOM****************************************/ + +static const struct i2c_device_id pixcir_i2c_ts_id[] = { + { MSG2138_TS_NAME, MSG2138_TS_ADDR },//0 + { } +}; +MODULE_DEVICE_TABLE(i2c, pixcir_i2c_ts_id); + +#if 0 +static unsigned short force[] = {0,0x4c,I2C_CLIENT_END,I2C_CLIENT_END}; +static const unsigned short * const forces[] = { force, NULL }; +static struct i2c_client_address_data addr_data = { .forces = forces, }; +#endif +static const struct of_device_id msg2138_of_match[] = { + { .compatible = "Mstar,msg2138_ts", }, + { } +}; +MODULE_DEVICE_TABLE(of, msg2138_of_match); + +static struct i2c_driver pixcir_i2c_ts_driver = { + .driver = { + .owner = THIS_MODULE, + .name = MSG2138_TS_NAME, + .of_match_table = msg2138_of_match, + }, + .probe = pixcir_i2c_ts_probe, + .remove = pixcir_i2c_ts_remove, + .id_table = pixcir_i2c_ts_id, +}; + +static int __init pixcir_i2c_ts_init(void) +{ + int ret; + + /*if (0 != tp_cg_flag) + { + return -ENODEV; + }*/ + /*********************************Bee-0928-TOP****************************************/ + TPD_DEBUG("msg2138 init111!\n"); + ret = register_chrdev(I2C_MAJOR,"pixcir_i2c_ts",&pixcir_i2c_ts_fops); + if (ret) { + //printk(KERN_ERR "%s:register chrdev failed\n",__FILE__); + return ret; + } + TPD_DEBUG("msg2138 init222!\n"); + i2c_dev_class = class_create(THIS_MODULE, "pixcir_i2c_dev"); + if (IS_ERR(i2c_dev_class)) { + ret = PTR_ERR(i2c_dev_class); + class_destroy(i2c_dev_class); + } + /********************************Bee-0928-BOTTOM******************************************/ + + return i2c_add_driver(&pixcir_i2c_ts_driver); +} + +static void pixcir_i2c_ts_exit(void) +{ + i2c_del_driver(&pixcir_i2c_ts_driver); + /********************************Bee-0928-TOP******************************************/ + class_destroy(i2c_dev_class); + unregister_chrdev(I2C_MAJOR,"pixcir_i2c_ts"); + /********************************Bee-0928-BOTTOM******************************************/ +} + +module_init(pixcir_i2c_ts_init); +module_exit(pixcir_i2c_ts_exit); + +#ifdef ITO_TEST + +#include "./ito_test/open_test_ANA1_8861A_lianchuang.h" +#include "./ito_test/open_test_ANA2_8861A_lianchuang.h" +#include "./ito_test/open_test_ANA1_B_8861A_lianchuang.h" +#include "./ito_test/open_test_ANA2_B_8861A_lianchuang.h" +#include "./ito_test/open_test_ANA3_8861A_lianchuang.h" +/////////////////////////////////////////////////////////////////////////// +u8 bItoTestDebug = 0; +#define ITO_TEST_DEBUG(format, ...) \ +{ \ + if(bItoTestDebug) \ + { \ + printk(KERN_ERR "ito_test ***" format "\n", ## __VA_ARGS__); \ + mdelay(5); \ + } \ +} +#define ITO_TEST_DEBUG_MUST(format, ...) printk(KERN_ERR "ito_test ***" format "\n", ## __VA_ARGS__);mdelay(5) + + + +s16 s16_raw_data_1[48] = {0}; +s16 s16_raw_data_2[48] = {0}; +s16 s16_raw_data_3[48] = {0}; +u8 ito_test_keynum = 0; +u8 ito_test_dummynum = 0; +u8 ito_test_trianglenum = 0; +u8 ito_test_2r = 0; +u8 g_LTP = 1; +uint16_t *open_1 = NULL; +uint16_t *open_1B = NULL; +uint16_t *open_2 = NULL; +uint16_t *open_2B = NULL; +uint16_t *open_3 = NULL; +u8 *MAP1 = NULL; +u8 *MAP2=NULL; +u8 *MAP3=NULL; +u8 *MAP40_1 = NULL; +u8 *MAP40_2 = NULL; +u8 *MAP40_3 = NULL; +u8 *MAP40_4 = NULL; +u8 *MAP41_1 = NULL; +u8 *MAP41_2 = NULL; +u8 *MAP41_3 = NULL; +u8 *MAP41_4 = NULL; + + +#define ITO_TEST_ADDR_TP (0x4C>>1) +#define ITO_TEST_ADDR_REG (0xC4>>1) +#define REG_INTR_FIQ_MASK 0x04 +#define FIQ_E_FRAME_READY_MASK ( 1 << 8 ) +#define MAX_CHNL_NUM (48) +#define BIT0 (1<<0) +#define BIT1 (1<<1) +#define BIT5 (1<<5) +#define BIT11 (1<<11) +#define BIT15 (1<<15) + + +static int ito_test_i2c_read(u8 addr, u8* read_data, u16 size) +{ + int rc; + u8 addr_before = msg21xx_i2c_client->addr; + msg21xx_i2c_client->addr = addr; + + #ifdef DMA_IIC + if(size>8&&NULL!=I2CDMABuf_va) + { + int i = 0; + msg21xx_i2c_client->ext_flag = msg21xx_i2c_client->ext_flag | I2C_DMA_FLAG ; + rc = i2c_master_recv(msg21xx_i2c_client, (unsigned char *)I2CDMABuf_pa, size); + for(i = 0; i < size; i++) + { + read_data[i] = I2CDMABuf_va[i]; + } + } + else + { + rc = i2c_master_recv(msg21xx_i2c_client, read_data, size); + } + msg21xx_i2c_client->ext_flag = msg21xx_i2c_client->ext_flag & (~I2C_DMA_FLAG); + #else + rc = i2c_master_recv(msg21xx_i2c_client, read_data, size); + #endif + + msg21xx_i2c_client->addr = addr_before; + if( rc < 0 ) + { + ITO_TEST_DEBUG_MUST("ito_test_i2c_read error %d,addr=%d\n", rc,addr); + } + return rc; +} + +static int ito_test_i2c_write(u8 addr, u8* data, u16 size) +{ + int rc; + u8 addr_before = msg21xx_i2c_client->addr; + msg21xx_i2c_client->addr = addr; + +#ifdef DMA_IIC + if(size>8&&NULL!=I2CDMABuf_va) + { + int i = 0; + for(i=0;iext_flag = msg21xx_i2c_client->ext_flag | I2C_DMA_FLAG ; + rc = i2c_master_send(msg21xx_i2c_client, (unsigned char *)I2CDMABuf_pa, size); + } + else + { + rc = i2c_master_send(msg21xx_i2c_client, data, size); + } + msg21xx_i2c_client->ext_flag = msg21xx_i2c_client->ext_flag & (~I2C_DMA_FLAG); +#else + rc = i2c_master_send(msg21xx_i2c_client, data, size); +#endif + + msg21xx_i2c_client->addr = addr_before; + if( rc < 0 ) + { + ITO_TEST_DEBUG_MUST("ito_test_i2c_write error %d,addr = %d,data[0]=%d\n", rc, addr,data[0]); + } + return rc; +} + +static void ito_test_reset(void) +{ + struct msg2138_ts_platform_data *pdata = msg21xx_i2c_ts_data->platform_data; + gpio_direction_output(pdata->reset_gpio_number, 1); + gpio_set_value(pdata->reset_gpio_number, 1); + gpio_set_value(pdata->reset_gpio_number, 0); + mdelay(100); + ITO_TEST_DEBUG("reset tp\n"); + gpio_set_value(pdata->reset_gpio_number, 1); + mdelay(200); +} +static void ito_test_disable_irq(void) +{ + disable_irq_nosync(global_irq); +} +static void ito_test_enable_irq(void) +{ + enable_irq(global_irq); +} + +static void ito_test_set_iic_rate(u32 iicRate) +{ + #ifdef CONFIG_I2C_SPRD + sprd_i2c_ctl_chg_clk(msg21xx_i2c_client->adapter->nr, iicRate); + mdelay(100); + #endif + #if MTK + msg21xx_i2c_client->timing = iicRate/1000; + #endif +} + +static void ito_test_WriteReg( u8 bank, u8 addr, u16 data ) +{ + u8 tx_data[5] = {0x10, bank, addr, data & 0xFF, data >> 8}; + ito_test_i2c_write( ITO_TEST_ADDR_REG, &tx_data[0], 5 ); +} +static void ito_test_WriteReg8Bit( u8 bank, u8 addr, u8 data ) +{ + u8 tx_data[4] = {0x10, bank, addr, data}; + ito_test_i2c_write ( ITO_TEST_ADDR_REG, &tx_data[0], 4 ); +} +static unsigned short ito_test_ReadReg( u8 bank, u8 addr ) +{ + u8 tx_data[3] = {0x10, bank, addr}; + u8 rx_data[2] = {0}; + + ito_test_i2c_write( ITO_TEST_ADDR_REG, &tx_data[0], 3 ); + ito_test_i2c_read ( ITO_TEST_ADDR_REG, &rx_data[0], 2 ); + return ( rx_data[1] << 8 | rx_data[0] ); +} +static u32 ito_test_get_TpType(void) +{ + u8 tx_data[3] = {0}; + u8 rx_data[4] = {0}; + u32 Major = 0, Minor = 0; + + ITO_TEST_DEBUG("GetTpType\n"); + + tx_data[0] = 0x53; + tx_data[1] = 0x00; + tx_data[2] = 0x2A; + ito_test_i2c_write(ITO_TEST_ADDR_TP, &tx_data[0], 3); + mdelay(50); + ito_test_i2c_read(ITO_TEST_ADDR_TP, &rx_data[0], 4); + Major = (rx_data[1]<<8) + rx_data[0]; + Minor = (rx_data[3]<<8) + rx_data[2]; + + ITO_TEST_DEBUG("***TpTypeMajor = %d ***\n", Major); + ITO_TEST_DEBUG("***TpTypeMinor = %d ***\n", Minor); + + return Major; + +} + +#define TP_OF_LIANCHUANG (2) +static u32 ito_test_choose_TpType(void) +{ + u32 tpType = 0; + u8 i = 0; + open_1 = NULL; + open_1B = NULL; + open_2 = NULL; + open_2B = NULL; + open_3 = NULL; + MAP1 = NULL; + MAP2 = NULL; + MAP3 = NULL; + MAP40_1 = NULL; + MAP40_2 = NULL; + MAP40_3 = NULL; + MAP40_4 = NULL; + MAP41_1 = NULL; + MAP41_2 = NULL; + MAP41_3 = NULL; + MAP41_4 = NULL; + ito_test_keynum = 0; + ito_test_dummynum = 0; + ito_test_trianglenum = 0; + ito_test_2r = 0; + + for(i=0;i<10;i++) + { + tpType = ito_test_get_TpType(); + ITO_TEST_DEBUG("tpType=%d;i=%d;\n",tpType,i); + if(TP_OF_LIANCHUANG==tpType) + { + break; + } + else if(i<5) + { + mdelay(100); + } + else + { + ito_test_reset(); + } + } + + if(TP_OF_LIANCHUANG==tpType) + { + open_1 = open_1_lianchuang; + open_1B = open_1B_lianchuang; + open_2 = open_2_lianchuang; + open_2B = open_2B_lianchuang; + open_3 = open_3_lianchuang; + MAP1 = MAP1_lianchuang; + MAP2 = MAP2_lianchuang; + MAP3 = MAP3_lianchuang; + MAP40_1 = MAP40_1_lianchuang; + MAP40_2 = MAP40_2_lianchuang; + MAP40_3 = MAP40_3_lianchuang; + MAP40_4 = MAP40_4_lianchuang; + MAP41_1 = MAP41_1_lianchuang; + MAP41_2 = MAP41_2_lianchuang; + MAP41_3 = MAP41_3_lianchuang; + MAP41_4 = MAP41_4_lianchuang; + ito_test_keynum = NUM_KEY_LIANCHUANG; + ito_test_dummynum = NUM_DUMMY_LIANCHUANG; + ito_test_trianglenum = NUM_SENSOR_LIANCHUANG; + ito_test_2r = ENABLE_2R_LIANCHUANG; + } + else + { + tpType = 0; + } + return tpType; +} +static void ito_test_EnterSerialDebugMode(void) +{ + u8 data[5]; + + data[0] = 0x53; + data[1] = 0x45; + data[2] = 0x52; + data[3] = 0x44; + data[4] = 0x42; + ito_test_i2c_write(ITO_TEST_ADDR_REG, &data[0], 5); + + data[0] = 0x37; + ito_test_i2c_write(ITO_TEST_ADDR_REG, &data[0], 1); + + data[0] = 0x35; + ito_test_i2c_write(ITO_TEST_ADDR_REG, &data[0], 1); + + data[0] = 0x71; + ito_test_i2c_write(ITO_TEST_ADDR_REG, &data[0], 1); +} +static uint16_t ito_test_get_num( void ) +{ + uint16_t num_of_sensor,i; + uint16_t RegValue1,RegValue2; + + num_of_sensor = 0; + + RegValue1 = ito_test_ReadReg( 0x11, 0x4A); + ITO_TEST_DEBUG("ito_test_get_num,RegValue1=%d\n",RegValue1); + if ( ( RegValue1 & BIT1) == BIT1 ) + { + RegValue1 = ito_test_ReadReg( 0x12, 0x0A); + RegValue1 = RegValue1 & 0x0F; + + RegValue2 = ito_test_ReadReg( 0x12, 0x16); + RegValue2 = (( RegValue2 >> 1 ) & 0x0F) + 1; + + num_of_sensor = RegValue1 * RegValue2; + } + else + { + for(i=0;i<4;i++) + { + num_of_sensor+=(ito_test_ReadReg( 0x12, 0x0A)>>(4*i))&0x0F; + } + } + ITO_TEST_DEBUG("ito_test_get_num,num_of_sensor=%d\n",num_of_sensor); + return num_of_sensor; +} +static void ito_test_polling( void ) +{ + uint16_t reg_int = 0x0000; + uint8_t dbbus_tx_data[5]; + uint8_t dbbus_rx_data[4]; + uint16_t reg_value; + + + reg_int = 0; + + ito_test_WriteReg( 0x13, 0x0C, BIT15 ); + ito_test_WriteReg( 0x12, 0x14, (ito_test_ReadReg(0x12,0x14) | BIT0) ); + + ITO_TEST_DEBUG("polling start\n"); + while( ( reg_int & BIT0 ) == 0x0000 ) + { + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x3D; + dbbus_tx_data[2] = 0x18; + ito_test_i2c_write(ITO_TEST_ADDR_REG, dbbus_tx_data, 3); + ito_test_i2c_read(ITO_TEST_ADDR_REG, dbbus_rx_data, 2); + reg_int = dbbus_rx_data[1]; + } + ITO_TEST_DEBUG("polling end\n"); + reg_value = ito_test_ReadReg( 0x3D, 0x18 ); + ito_test_WriteReg( 0x3D, 0x18, reg_value & (~BIT0) ); +} +static uint16_t ito_test_get_data_out( int16_t* s16_raw_data ) +{ + uint8_t i,dbbus_tx_data[8]; + uint16_t raw_data[48]={0}; + uint16_t num_of_sensor; + uint16_t reg_int; + uint8_t dbbus_rx_data[96]={0}; + + num_of_sensor = ito_test_get_num(); + if(num_of_sensor*2>96) + { + ITO_TEST_DEBUG("danger,num_of_sensor=%d\n",num_of_sensor); + return num_of_sensor; + } + + reg_int = ito_test_ReadReg( 0x3d, REG_INTR_FIQ_MASK<<1 ); + ito_test_WriteReg( 0x3d, REG_INTR_FIQ_MASK<<1, (reg_int & (uint16_t)(~FIQ_E_FRAME_READY_MASK) ) ); + ito_test_polling(); + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x13; + dbbus_tx_data[2] = 0x40; + ito_test_i2c_write(ITO_TEST_ADDR_REG, dbbus_tx_data, 3); + mdelay(20); + ito_test_i2c_read(ITO_TEST_ADDR_REG, &dbbus_rx_data[0], (num_of_sensor * 2)); + mdelay(100); + for(i=0;i> 8 ) & 0xFF; + } + ito_test_i2c_write(ITO_TEST_ADDR_REG, dbbus_tx_data, 3+0x3F*2); + + dbbus_tx_data[2] = 0x7A * 2; + for( i = 0x7A; i <= 0x7D ; i++ ) + { + dbbus_tx_data[3+2*(i-0x7A)] = 0; + dbbus_tx_data[4+2*(i-0x7A)] = 0; + } + ito_test_i2c_write(ITO_TEST_ADDR_REG, dbbus_tx_data, 3+8); + + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x12; + + dbbus_tx_data[2] = 5 * 2; + dbbus_tx_data[3] = Type1[128+5] & 0xFF; + dbbus_tx_data[4] = ( Type1[128+5] >> 8 ) & 0xFF; + ito_test_i2c_write(ITO_TEST_ADDR_REG, dbbus_tx_data, 5); + + dbbus_tx_data[2] = 0x0B * 2; + dbbus_tx_data[3] = Type1[128+0x0B] & 0xFF; + dbbus_tx_data[4] = ( Type1[128+0x0B] >> 8 ) & 0xFF; + ito_test_i2c_write(ITO_TEST_ADDR_REG, dbbus_tx_data, 5); + + dbbus_tx_data[2] = 0x12 * 2; + dbbus_tx_data[3] = Type1[128+0x12] & 0xFF; + dbbus_tx_data[4] = ( Type1[128+0x12] >> 8 ) & 0xFF; + ito_test_i2c_write(ITO_TEST_ADDR_REG, dbbus_tx_data, 5); + + dbbus_tx_data[2] = 0x15 * 2; + dbbus_tx_data[3] = Type1[128+0x15] & 0xFF; + dbbus_tx_data[4] = ( Type1[128+0x15] >> 8 ) & 0xFF; + ito_test_i2c_write(ITO_TEST_ADDR_REG, dbbus_tx_data, 5); +} + +static void ito_test_set_v( uint8_t Enable, uint8_t Prs) +{ + uint16_t u16RegValue; + + + u16RegValue = ito_test_ReadReg( 0x12, 0x08); + u16RegValue = u16RegValue & 0xF1; + if ( Prs == 0 ) + { + ito_test_WriteReg( 0x12, 0x08, u16RegValue| 0x0C); + } + else if ( Prs == 1 ) + { + ito_test_WriteReg( 0x12, 0x08, u16RegValue| 0x0E); + } + else + { + ito_test_WriteReg( 0x12, 0x08, u16RegValue| 0x02); + } + + if ( Enable ) + { + u16RegValue = ito_test_ReadReg( 0x11, 0x06); + ito_test_WriteReg( 0x11, 0x06, u16RegValue| 0x03); + } + else + { + u16RegValue = ito_test_ReadReg( 0x11, 0x06); + u16RegValue = u16RegValue & 0xFC; + ito_test_WriteReg( 0x11, 0x06, u16RegValue); + } + +} + +static void ito_test_set_c( uint8_t Csub_Step ) +{ + uint8_t i; + uint8_t dbbus_tx_data[MAX_CHNL_NUM+3]; + uint8_t HighLevel_Csub = false; + uint8_t Csub_new; + + dbbus_tx_data[0] = 0x10; + dbbus_tx_data[1] = 0x11; + dbbus_tx_data[2] = 0x84; + for( i = 0; i < MAX_CHNL_NUM; i++ ) + { + Csub_new = Csub_Step; + HighLevel_Csub = false; + if( Csub_new > 0x1F ) + { + Csub_new = Csub_new - 0x14; + HighLevel_Csub = true; + } + + dbbus_tx_data[3+i] = Csub_new & 0x1F; + if( HighLevel_Csub == true ) + { + dbbus_tx_data[3+i] |= BIT5; + } + } + ito_test_i2c_write(ITO_TEST_ADDR_REG, dbbus_tx_data, MAX_CHNL_NUM+3); + + dbbus_tx_data[2] = 0xB4; + ito_test_i2c_write(ITO_TEST_ADDR_REG, dbbus_tx_data, MAX_CHNL_NUM+3); +} + +static void ito_test_sw( void ) +{ + ito_test_WriteReg( 0x11, 0x00, 0xFFFF ); + ito_test_WriteReg( 0x11, 0x00, 0x0000 ); + mdelay( 50 ); +} + + + +static void ito_test_first( uint8_t item_id , int16_t* s16_raw_data) +{ + uint8_t result = 0,loop; + uint8_t dbbus_tx_data[9]; + uint8_t i,j; + int16_t s16_raw_data_tmp[48]={0}; + uint8_t num_of_sensor, num_of_sensor2,total_sensor; + uint16_t u16RegValue; + uint8_t *pMapping=NULL; + + + num_of_sensor = 0; + num_of_sensor2 = 0; + + ITO_TEST_DEBUG("ito_test_first item_id=%d\n",item_id); + ito_test_WriteReg( 0x0F, 0xE6, 0x01 ); + + ito_test_WriteReg( 0x1E, 0x24, 0x0500 ); + ito_test_WriteReg( 0x1E, 0x2A, 0x0000 ); + ito_test_WriteReg( 0x1E, 0xE6, 0x6E00 ); + ito_test_WriteReg( 0x1E, 0xE8, 0x0071 ); + + if ( item_id == 40 ) + { + pMapping = &MAP1[0]; + if ( ito_test_2r ) + { + total_sensor = ito_test_trianglenum/2; + } + else + { + total_sensor = ito_test_trianglenum/2 + ito_test_keynum + ito_test_dummynum; + } + } + else if( item_id == 41 ) + { + pMapping = &MAP2[0]; + if ( ito_test_2r ) + { + total_sensor = ito_test_trianglenum/2; + } + else + { + total_sensor = ito_test_trianglenum/2 + ito_test_keynum + ito_test_dummynum; + } + } + else if( item_id == 42 ) + { + pMapping = &MAP3[0]; + total_sensor = ito_test_trianglenum + ito_test_keynum+ ito_test_dummynum; + } + + + loop = 1; + if ( item_id != 42 ) + { + if(total_sensor>11) + { + loop = 2; + } + } + ITO_TEST_DEBUG("loop=%d\n",loop); + for ( i = 0; i < loop; i++ ) + { + if ( i == 0 ) + { + ito_test_send_data_in( item_id - 36 ); + } + else + { + if ( item_id == 40 ) + ito_test_send_data_in( 9 ); + else + ito_test_send_data_in( 10 ); + } + + ito_test_set_v(1,0); + u16RegValue = ito_test_ReadReg( 0x11, 0x0E); + ito_test_WriteReg( 0x11, 0x0E, u16RegValue | BIT11 ); + + if ( g_LTP == 1 ) + ito_test_set_c( 32 ); + else + ito_test_set_c( 0 ); + + ito_test_sw(); + + if ( i == 0 ) + { + num_of_sensor=ito_test_get_data_out( s16_raw_data_tmp ); + ITO_TEST_DEBUG("num_of_sensor=%d;\n",num_of_sensor); + } + else + { + num_of_sensor2=ito_test_get_data_out( &s16_raw_data_tmp[num_of_sensor] ); + ITO_TEST_DEBUG("num_of_sensor=%d;num_of_sensor2=%d\n",num_of_sensor,num_of_sensor2); + } + } + for ( j = 0; j < total_sensor ; j ++ ) + { + if ( g_LTP == 1 ) + s16_raw_data[pMapping[j]] = s16_raw_data_tmp[j] + 4096; + else + s16_raw_data[pMapping[j]] = s16_raw_data_tmp[j]; + } + + return; +} + +typedef enum +{ + ITO_TEST_OK = 0, + ITO_TEST_FAIL, + ITO_TEST_GET_TP_TYPE_ERROR, +} ITO_TEST_RET; + +ITO_TEST_RET ito_test_second (u8 item_id) +{ + u8 i = 0; + + s32 s16_raw_data_jg_tmp1 = 0; + s32 s16_raw_data_jg_tmp2 = 0; + s32 jg_tmp1_avg_Th_max =0; + s32 jg_tmp1_avg_Th_min =0; + s32 jg_tmp2_avg_Th_max =0; + s32 jg_tmp2_avg_Th_min =0; + + u8 Th_Tri = 25; + u8 Th_bor = 25; + + if ( item_id == 40 ) + { + for (i=0; i<(ito_test_trianglenum/2)-2; i++) + { + s16_raw_data_jg_tmp1 += s16_raw_data_1[MAP40_1[i]]; + } + for (i=0; i<2; i++) + { + s16_raw_data_jg_tmp2 += s16_raw_data_1[MAP40_2[i]]; + } + } + else if( item_id == 41 ) + { + for (i=0; i<(ito_test_trianglenum/2)-2; i++) + { + s16_raw_data_jg_tmp1 += s16_raw_data_2[MAP41_1[i]]; + } + for (i=0; i<2; i++) + { + s16_raw_data_jg_tmp2 += s16_raw_data_2[MAP41_2[i]]; + } + } + + jg_tmp1_avg_Th_max = (s16_raw_data_jg_tmp1 / ((ito_test_trianglenum/2)-2)) * ( 100 + Th_Tri) / 100 ; + jg_tmp1_avg_Th_min = (s16_raw_data_jg_tmp1 / ((ito_test_trianglenum/2)-2)) * ( 100 - Th_Tri) / 100 ; + jg_tmp2_avg_Th_max = (s16_raw_data_jg_tmp2 / 2) * ( 100 + Th_bor) / 100 ; + jg_tmp2_avg_Th_min = (s16_raw_data_jg_tmp2 / 2 ) * ( 100 - Th_bor) / 100 ; + + ITO_TEST_DEBUG("item_id=%d;sum1=%d;max1=%d;min1=%d;sum2=%d;max2=%d;min2=%d\n",item_id,s16_raw_data_jg_tmp1,jg_tmp1_avg_Th_max,jg_tmp1_avg_Th_min,s16_raw_data_jg_tmp2,jg_tmp2_avg_Th_max,jg_tmp2_avg_Th_min); + + if ( item_id == 40 ) + { + for (i=0; i<(ito_test_trianglenum/2)-2; i++) + { + if (s16_raw_data_1[MAP40_1[i]] > jg_tmp1_avg_Th_max || s16_raw_data_1[MAP40_1[i]] < jg_tmp1_avg_Th_min) + return ITO_TEST_FAIL; + } + for (i=0; i<(ito_test_trianglenum/2)-3; i++) + { + if (s16_raw_data_1[MAP40_1[i]] > s16_raw_data_1[MAP40_1[i+1]] ) + return ITO_TEST_FAIL; + } + for (i=0; i<2; i++) + { + if (s16_raw_data_1[MAP40_2[i]] > jg_tmp2_avg_Th_max || s16_raw_data_1[MAP40_2[i]] < jg_tmp2_avg_Th_min) + return ITO_TEST_FAIL; + } + } + + if ( item_id == 41 ) + { + for (i=0; i<(ito_test_trianglenum/2)-2; i++) + { + if (s16_raw_data_2[MAP41_1[i]] > jg_tmp1_avg_Th_max || s16_raw_data_2[MAP41_1[i]] < jg_tmp1_avg_Th_min) + return ITO_TEST_FAIL; + } + for (i=0; i<(ito_test_trianglenum/2)-3; i++) + { + if (s16_raw_data_2[MAP41_1[i]] < s16_raw_data_2[MAP41_1[i+1]] ) + return ITO_TEST_FAIL; + } + + for (i=0; i<2; i++) + { + if (s16_raw_data_2[MAP41_2[i]] > jg_tmp2_avg_Th_max || s16_raw_data_2[MAP41_2[i]] < jg_tmp2_avg_Th_min) + return ITO_TEST_FAIL; + } + } + + return ITO_TEST_OK; + +} +ITO_TEST_RET ito_test_second_2r (u8 item_id) +{ + u8 i = 0; + + s32 s16_raw_data_jg_tmp1 = 0; + s32 s16_raw_data_jg_tmp2 = 0; + s32 s16_raw_data_jg_tmp3 = 0; + s32 s16_raw_data_jg_tmp4 = 0; + + s32 jg_tmp1_avg_Th_max =0; + s32 jg_tmp1_avg_Th_min =0; + s32 jg_tmp2_avg_Th_max =0; + s32 jg_tmp2_avg_Th_min =0; + s32 jg_tmp3_avg_Th_max =0; + s32 jg_tmp3_avg_Th_min =0; + s32 jg_tmp4_avg_Th_max =0; + s32 jg_tmp4_avg_Th_min =0; + + u8 Th_Tri = 25; // non-border threshold + u8 Th_bor = 25; // border threshold + + if ( item_id == 40 ) + { + for (i=0; i<(ito_test_trianglenum/4)-2; i++) + { + s16_raw_data_jg_tmp1 += s16_raw_data_1[MAP40_1[i]]; //first region: non-border + } + for (i=0; i<2; i++) + { + s16_raw_data_jg_tmp2 += s16_raw_data_1[MAP40_2[i]]; //first region: border + } + + for (i=0; i<(ito_test_trianglenum/4)-2; i++) + { + s16_raw_data_jg_tmp3 += s16_raw_data_1[MAP40_3[i]]; //second region: non-border + } + for (i=0; i<2; i++) + { + s16_raw_data_jg_tmp4 += s16_raw_data_1[MAP40_4[i]]; //second region: border + } + } + + + + + else if( item_id == 41 ) + { + for (i=0; i<(ito_test_trianglenum/4)-2; i++) + { + s16_raw_data_jg_tmp1 += s16_raw_data_2[MAP41_1[i]]; //first region: non-border + } + for (i=0; i<2; i++) + { + s16_raw_data_jg_tmp2 += s16_raw_data_2[MAP41_2[i]]; //first region: border + } + for (i=0; i<(ito_test_trianglenum/4)-2; i++) + { + s16_raw_data_jg_tmp3 += s16_raw_data_2[MAP41_3[i]]; //second region: non-border + } + for (i=0; i<2; i++) + { + s16_raw_data_jg_tmp4 += s16_raw_data_2[MAP41_4[i]]; //second region: border + } + } + + jg_tmp1_avg_Th_max = (s16_raw_data_jg_tmp1 / ((ito_test_trianglenum/4)-2)) * ( 100 + Th_Tri) / 100 ; + jg_tmp1_avg_Th_min = (s16_raw_data_jg_tmp1 / ((ito_test_trianglenum/4)-2)) * ( 100 - Th_Tri) / 100 ; + jg_tmp2_avg_Th_max = (s16_raw_data_jg_tmp2 / 2) * ( 100 + Th_bor) / 100 ; + jg_tmp2_avg_Th_min = (s16_raw_data_jg_tmp2 / 2) * ( 100 - Th_bor) / 100 ; + jg_tmp3_avg_Th_max = (s16_raw_data_jg_tmp3 / ((ito_test_trianglenum/4)-2)) * ( 100 + Th_Tri) / 100 ; + jg_tmp3_avg_Th_min = (s16_raw_data_jg_tmp3 / ((ito_test_trianglenum/4)-2)) * ( 100 - Th_Tri) / 100 ; + jg_tmp4_avg_Th_max = (s16_raw_data_jg_tmp4 / 2) * ( 100 + Th_bor) / 100 ; + jg_tmp4_avg_Th_min = (s16_raw_data_jg_tmp4 / 2) * ( 100 - Th_bor) / 100 ; + + + ITO_TEST_DEBUG("item_id=%d;sum1=%d;max1=%d;min1=%d;sum2=%d;max2=%d;min2=%d;sum3=%d;max3=%d;min3=%d;sum4=%d;max4=%d;min4=%d;\n",item_id,s16_raw_data_jg_tmp1,jg_tmp1_avg_Th_max,jg_tmp1_avg_Th_min,s16_raw_data_jg_tmp2,jg_tmp2_avg_Th_max,jg_tmp2_avg_Th_min,s16_raw_data_jg_tmp3,jg_tmp3_avg_Th_max,jg_tmp3_avg_Th_min,s16_raw_data_jg_tmp4,jg_tmp4_avg_Th_max,jg_tmp4_avg_Th_min); + + + + + if ( item_id == 40 ) + { + for (i=0; i<(ito_test_trianglenum/4)-2; i++) + { + if (s16_raw_data_1[MAP40_1[i]] > jg_tmp1_avg_Th_max || s16_raw_data_1[MAP40_1[i]] < jg_tmp1_avg_Th_min) + return ITO_TEST_FAIL; + } + + for (i=0; i<2; i++) + { + if (s16_raw_data_1[MAP40_2[i]] > jg_tmp2_avg_Th_max || s16_raw_data_1[MAP40_2[i]] < jg_tmp2_avg_Th_min) + return ITO_TEST_FAIL; + } + + for (i=0; i<(ito_test_trianglenum/4)-2; i++) + { + if (s16_raw_data_1[MAP40_3[i]] > jg_tmp3_avg_Th_max || s16_raw_data_1[MAP40_3[i]] < jg_tmp3_avg_Th_min) + return ITO_TEST_FAIL; + } + + for (i=0; i<2; i++) + { + if (s16_raw_data_1[MAP40_4[i]] > jg_tmp4_avg_Th_max || s16_raw_data_1[MAP40_4[i]] < jg_tmp4_avg_Th_min) + return ITO_TEST_FAIL; + } + } + + if ( item_id == 41 ) + { + for (i=0; i<(ito_test_trianglenum/4)-2; i++) + { + if (s16_raw_data_2[MAP41_1[i]] > jg_tmp1_avg_Th_max || s16_raw_data_2[MAP41_1[i]] < jg_tmp1_avg_Th_min) + return ITO_TEST_FAIL; + } + + for (i=0; i<2; i++) + { + if (s16_raw_data_2[MAP41_2[i]] > jg_tmp2_avg_Th_max || s16_raw_data_2[MAP41_2[i]] < jg_tmp2_avg_Th_min) + return ITO_TEST_FAIL; + } + + for (i=0; i<(ito_test_trianglenum/4)-2; i++) + { + if (s16_raw_data_2[MAP41_3[i]] > jg_tmp3_avg_Th_max || s16_raw_data_2[MAP41_3[i]] < jg_tmp3_avg_Th_min) + return ITO_TEST_FAIL; + } + + for (i=0; i<2; i++) + { + if (s16_raw_data_2[MAP41_4[i]] > jg_tmp4_avg_Th_max || s16_raw_data_2[MAP41_4[i]] < jg_tmp4_avg_Th_min) + return ITO_TEST_FAIL; + } + + } + + return ITO_TEST_OK; + +} + +static ITO_TEST_RET ito_test_interface(void) +{ + ITO_TEST_RET ret = ITO_TEST_OK; + uint16_t i = 0; +#ifdef DMA_IIC + _msg_dma_alloc(); +#endif + ito_test_set_iic_rate(50000); + ITO_TEST_DEBUG("start\n"); + ito_test_disable_irq(); + ito_test_reset(); + if(!ito_test_choose_TpType()) + { + ITO_TEST_DEBUG("choose tpType fail\n"); + ret = ITO_TEST_GET_TP_TYPE_ERROR; + goto ITO_TEST_END; + } + ito_test_EnterSerialDebugMode(); + mdelay(100); + ITO_TEST_DEBUG("EnterSerialDebugMode\n"); + ito_test_WriteReg8Bit ( 0x0F, 0xE6, 0x01 ); + ito_test_WriteReg ( 0x3C, 0x60, 0xAA55 ); + ITO_TEST_DEBUG("stop mcu and disable watchdog V.005\n"); + mdelay(50); + + for(i = 0;i < 48;i++) + { + s16_raw_data_1[i] = 0; + s16_raw_data_2[i] = 0; + s16_raw_data_3[i] = 0; + } + + ito_test_first(40, s16_raw_data_1); + ITO_TEST_DEBUG("40 get s16_raw_data_1\n"); + if(ito_test_2r) + { + ret=ito_test_second_2r(40); + } + else + { + ret=ito_test_second(40); + } + if(ITO_TEST_FAIL==ret) + { + goto ITO_TEST_END; + } + + ito_test_first(41, s16_raw_data_2); + ITO_TEST_DEBUG("41 get s16_raw_data_2\n"); + if(ito_test_2r) + { + ret=ito_test_second_2r(41); + } + else + { + ret=ito_test_second(41); + } + if(ITO_TEST_FAIL==ret) + { + goto ITO_TEST_END; + } + + ito_test_first(42, s16_raw_data_3); + ITO_TEST_DEBUG("42 get s16_raw_data_3\n"); + + ITO_TEST_END: +#ifdef DMA_IIC + _msg_dma_free(); +#endif + ito_test_set_iic_rate(100000); + ito_test_reset(); + ito_test_enable_irq(); + ITO_TEST_DEBUG("end\n"); + return ret; +} + +#include +#define ITO_TEST_AUTHORITY 0777 +static struct proc_dir_entry *msg_ito_test = NULL; +static struct proc_dir_entry *debug = NULL; +static struct proc_dir_entry *debug_on_off = NULL; +#define PROC_MSG_ITO_TESE "msg-ito-test" +#define PROC_ITO_TEST_DEBUG "debug" +#define PROC_ITO_TEST_DEBUG_ON_OFF "debug-on-off" +ITO_TEST_RET g_ito_test_ret = ITO_TEST_OK; +static int ito_test_proc_read_debug(char *page, char **start, off_t off, int count, int *eof, void *data) +{ + int cnt= 0; + + g_ito_test_ret = ito_test_interface(); + if(ITO_TEST_OK==g_ito_test_ret) + { + ITO_TEST_DEBUG_MUST("ITO_TEST_OK"); + } + else if(ITO_TEST_FAIL==g_ito_test_ret) + { + ITO_TEST_DEBUG_MUST("ITO_TEST_FAIL"); + } + else if(ITO_TEST_GET_TP_TYPE_ERROR==g_ito_test_ret) + { + ITO_TEST_DEBUG_MUST("ITO_TEST_GET_TP_TYPE_ERROR"); + } + + *eof = 1; + return cnt; +} + +static int ito_test_proc_write_debug(struct file *file, const char *buffer, unsigned long count, void *data) +{ + u16 i = 0; + mdelay(5); + ITO_TEST_DEBUG_MUST("ito_test_ret = %d",g_ito_test_ret); + mdelay(5); + for(i=0;i<48;i++) + { + ITO_TEST_DEBUG_MUST("data_1[%d]=%d;\n",i,s16_raw_data_1[i]); + } + mdelay(5); + for(i=0;i<48;i++) + { + ITO_TEST_DEBUG_MUST("data_2[%d]=%d;\n",i,s16_raw_data_2[i]); + } + mdelay(5); + for(i=0;i<48;i++) + { + ITO_TEST_DEBUG_MUST("data_3[%d]=%d;\n",i,s16_raw_data_3[i]); + } + mdelay(5); + return count; +} +static int ito_test_proc_read_debug_on_off(char *page, char **start, off_t off, int count, int *eof, void *data) +{ + int cnt= 0; + + bItoTestDebug = 1; + ITO_TEST_DEBUG_MUST("on debug bItoTestDebug = %d",bItoTestDebug); + + *eof = 1; + return cnt; +} + +static int ito_test_proc_write_debug_on_off(struct file *file, const char *buffer, unsigned long count, void *data) +{ + bItoTestDebug = 0; + ITO_TEST_DEBUG_MUST("off debug bItoTestDebug = %d",bItoTestDebug); + return count; +} + +static void ito_test_create_entry(void) +{ + + static const struct file_operations debug_ops = { + .owner = THIS_MODULE, + .read = ito_test_proc_read_debug, + .write = ito_test_proc_write_debug, + }; + + static const struct file_operations debug_on_off_ops = { + .owner = THIS_MODULE, + .read = ito_test_proc_read_debug_on_off, + .write = ito_test_proc_write_debug_on_off, + }; + + msg_ito_test = proc_mkdir(PROC_MSG_ITO_TESE, NULL); + debug = proc_create(PROC_ITO_TEST_DEBUG,ITO_TEST_AUTHORITY,msg_ito_test,&debug_ops); + debug_on_off = proc_create(PROC_ITO_TEST_DEBUG_ON_OFF,ITO_TEST_AUTHORITY,msg_ito_test,&debug_on_off_ops); + if (NULL==debug) + { + ITO_TEST_DEBUG_MUST("create_proc_entry ITO TEST DEBUG failed\n"); + } + else + { + ITO_TEST_DEBUG_MUST("create_proc_entry ITO TEST DEBUG OK\n"); + } + if (NULL==debug_on_off) + { + ITO_TEST_DEBUG_MUST("create_proc_entry ITO TEST ON OFF failed\n"); + } + else + { + ITO_TEST_DEBUG_MUST("create_proc_entry ITO TEST ON OFF OK\n"); + } +} +#endif +MODULE_AUTHOR("Jianchun Bian "); +MODULE_DESCRIPTION("Pixcir I2C Touchscreen Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/msg2138/Makefile b/drivers/input/touchscreen/msg2138/Makefile new file mode 100644 index 00000000..57176e59 --- /dev/null +++ b/drivers/input/touchscreen/msg2138/Makefile @@ -0,0 +1,10 @@ +# +# Makefile for the input core drivers. +# + +# Each configuration option enables a list of files. +obj-$(CONFIG_TOUCHSCREEN_MSG2138) += msg2138_ts.o + +msg2138_ts-objs += mstar_drv_sprd.o mstar_drv_common.o mstar_drv_ic_fw_porting_layer.o mstar_drv_main.o mstar_drv_platform_interface.o mstar_drv_platform_porting_layer.o mstar_drv_self_fw_control.o mstar_drv_utility_adaption.o + +# end diff --git a/drivers/input/touchscreen/msg2138/msg2xxx_xxxx_update_bin.h b/drivers/input/touchscreen/msg2138/msg2xxx_xxxx_update_bin.h new file mode 100644 index 00000000..085c0a15 --- /dev/null +++ b/drivers/input/touchscreen/msg2138/msg2xxx_xxxx_update_bin.h @@ -0,0 +1,2112 @@ +0x1C,0x21,0xB0,0x0D,0x21,0x4C,0x0D,0x41,0x48,0x0D,0x61,0x44,0x0D,0x81,0x40,0x80, +0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xC1,0x54,0x00,0x01,0xC9,0x6A,0x7A,0x30,0x0C, +0xEB,0x02,0x0C,0xE1,0x3C,0xC8,0xEA,0x7A,0x70,0x0C,0xE7,0x02,0x0C,0xE1,0x38,0x0C, +0xE1,0x3E,0xD0,0xE0,0x1D,0x42,0x0C,0xE1,0x3E,0x54,0xC7,0x10,0x20,0xC0,0xD4,0xC9, +0x4A,0x7A,0x10,0x0C,0xEA,0x02,0x50,0xE7,0x10,0x0C,0xEA,0x00,0x50,0xE0,0x10,0x0C, +0xEB,0x00,0x1C,0x80,0xEF,0x0C,0xEA,0x02,0x44,0xE7,0x24,0x0C,0xEA,0x00,0xC0,0xE0, +0x10,0x01,0xE8,0xC7,0x06,0x89,0x50,0xC6,0x10,0xEC,0xC7,0x06,0x89,0xE4,0x00,0x0F, +0x65,0xC8,0xA0,0x01,0x00,0x44,0xE7,0x2C,0xD0,0xE0,0x3D,0x3A,0x50,0xA0,0x30,0x98, +0x80,0x1C,0x61,0x04,0xE4,0x00,0x0F,0x5E,0x98,0x60,0xC0,0xE0,0x10,0x01,0xEC,0xE7, +0x00,0x86,0x84,0xE8,0xC8,0xEA,0x7A,0x10,0x0C,0xC7,0x02,0xC8,0xC6,0x01,0x00,0x0C, +0xC7,0x00,0xC8,0xE0,0x01,0x00,0x1E,0xE1,0x34,0x0C,0xEB,0x00,0xC9,0x4A,0x24,0x14, +0x98,0xE0,0x88,0xD7,0x98,0xA0,0x08,0x8A,0x01,0x4C,0x84,0x3E,0x54,0x84,0x0F,0x18, +0x86,0x00,0x08,0x8A,0x01,0x9C,0xC1,0x5C,0x84,0x04,0x4C,0x84,0x3E,0x9C,0xE4,0x54, +0x84,0x0F,0x5C,0xE2,0x09,0x8C,0xA4,0x5C,0xA5,0x00,0x23,0xFF,0x71,0xC0,0xE0,0x10, +0x01,0xEF,0x47,0x06,0xCE,0x23,0x40,0x3C,0xC3,0x60,0x10,0x01,0xFF,0x7B,0x02,0x54, +0xE4,0x00,0x00,0x19,0xC3,0x60,0x10,0x01,0xFF,0x7B,0x02,0x40,0xC0,0xE0,0x10,0x01, +0xEC,0xE7,0x04,0xE6,0xD0,0xE0,0x09,0xBE,0x4C,0x85,0x10,0xC0,0xF4,0x00,0x01,0x1C, +0xC1,0x04,0xC8,0xE7,0x26,0x80,0x8C,0x87,0xE4,0x00,0x00,0x1D,0x0B,0x07,0x01,0x9C, +0xE4,0x0F,0x06,0x01,0x9C,0xC2,0xD4,0xE4,0xFF,0xB6,0xC0,0xF4,0x00,0x01,0xC8,0xC7, +0x24,0x2C,0xC8,0x87,0x26,0x74,0x08,0x66,0x01,0xC8,0xC7,0x26,0x70,0x08,0xC6,0x01, +0x0B,0xA4,0x01,0x5C,0x63,0x04,0x8F,0xA6,0x4C,0x63,0x09,0x5F,0xBD,0x04,0x9C,0x61, +0x5C,0x63,0x00,0x23,0xA1,0x84,0xCB,0x07,0x24,0x34,0x9B,0x80,0x88,0xF7,0x98,0x80, +0x1F,0xC1,0x04,0xE4,0x00,0x00,0x9B,0x0B,0x38,0x01,0x88,0xD7,0x9F,0x21,0x5F,0x39, +0x04,0x9F,0x3F,0xD7,0x3D,0x00,0x68,0xE4,0x00,0x00,0x61,0x13,0x86,0x00,0x9C,0xC1, +0xD4,0xC7,0xFF,0xDE,0x4F,0x3C,0x08,0x11,0x07,0x00,0x8F,0x3E,0x98,0xC0,0xE4,0x00, +0x00,0x23,0x9C,0xC1,0x09,0x39,0x00,0x5C,0xC6,0x00,0x9F,0x22,0x21,0x20,0x2E,0xD5, +0x06,0xFF,0x9D,0xE4,0x00,0x00,0x2F,0x9C,0x81,0x9F,0x04,0x5C,0x84,0x00,0x9C,0xE1, +0xD4,0x64,0xFD,0xBD,0x98,0xC0,0xE4,0x00,0x00,0x0D,0x98,0xC1,0x23,0x40,0x82,0xC0, +0xE0,0x10,0x01,0x20,0xC4,0x46,0xF0,0xC7,0x00,0xFD,0x9C,0xC1,0xF8,0xC7,0x00,0xFD, +0xE4,0x00,0x00,0x4B,0xF8,0x07,0x00,0xFD,0xE4,0x00,0x00,0x3B,0xC0,0xE0,0x10,0x01, +0x20,0xC4,0x46,0xF0,0xC7,0x00,0xFC,0x9C,0xC1,0xF8,0xC7,0x00,0xFC,0xE4,0x00,0x00, +0x11,0xF8,0x07,0x00,0xFC,0xC0,0xE0,0x10,0x01,0xE8,0xE7,0x00,0x4B,0x5C,0xE7,0x00, +0xC0,0xE0,0x14,0x00,0x20,0x00,0xDD,0xC0,0xE0,0x10,0x01,0xF0,0xE7,0x00,0xFD,0xD0, +0xE4,0x00,0x85,0xC0,0xE0,0x10,0x01,0xF0,0xE7,0x00,0xFC,0xD0,0xE4,0x01,0x01,0xC0, +0xF4,0x00,0x01,0x98,0xBE,0xC8,0xC7,0x78,0xC4,0x0C,0xA6,0x01,0xC8,0xE7,0x78,0xC0, +0xFC,0xC0,0x55,0xAA,0x0C,0xC7,0x01,0xE4,0x00,0x00,0x01,0xC0,0xE0,0x10,0x01,0xEC, +0xE7,0x04,0xE2,0xD0,0xE0,0x0C,0x5E,0xC0,0xE0,0x10,0x01,0xEC,0xE7,0x04,0xE6,0xD0, +0xE0,0x0B,0xFE,0xC0,0xE0,0x10,0x01,0xF0,0xC7,0x04,0xDD,0x9C,0xC1,0x5C,0xC6,0x00, +0xF8,0xC7,0x04,0xDD,0xF0,0xC7,0x04,0xDD,0xD0,0xC4,0x00,0x51,0x98,0xC4,0xF8,0xC7, +0x04,0xDD,0xC0,0xE0,0x10,0x01,0xF0,0xC7,0x04,0xDD,0xD0,0xC4,0x0A,0xA5,0xF0,0xC7, +0x04,0xDD,0xD0,0xC3,0x2B,0x09,0xF3,0x47,0x04,0xDD,0x98,0xE4,0x47,0x5A,0x3E,0x5F, +0x5A,0x08,0x9F,0x5F,0x4F,0x5A,0xF9,0x10,0xE1,0x36,0x12,0xE1,0x34,0x10,0xC1,0x35, +0x40,0x80,0xBD,0x43,0x86,0xBC,0x40,0x84,0x35,0xC1,0x60,0x10,0x01,0x5C,0x84,0x00, +0xC1,0x40,0x10,0x01,0x43,0x24,0x3D,0x41,0x1C,0x3C,0x5F,0x39,0x00,0xFD,0x6B,0x0C, +0x24,0xFD,0x4A,0x0B,0xE2,0x1F,0x01,0x04,0x98,0xE0,0xC0,0x60,0x10,0x01,0x53,0xC0, +0x18,0x53,0xA0,0xFF,0xE4,0x00,0x00,0x93,0xD6,0xE6,0x00,0xA5,0x40,0xC6,0xBD,0x5C, +0xC6,0x00,0xD7,0x87,0x00,0x54,0x5D,0x07,0x15,0x48,0xD9,0x20,0x8C,0xCA,0x5F,0x29, +0x00,0x10,0xC6,0x00,0x41,0x3B,0x3C,0x5C,0x8C,0x00,0x9C,0xE1,0x11,0x89,0x00,0x09, +0x38,0x00,0x9F,0x02,0x41,0x29,0xEB,0x41,0x29,0x30,0xF0,0xC3,0x04,0xDD,0x9C,0xDF, +0x40,0xC6,0xF3,0x8C,0xCC,0x4C,0xC6,0x08,0x8C,0xCB,0x0D,0x26,0x01,0x1D,0x84,0x01, +0x1D,0x39,0x01,0x5C,0xC7,0x00,0xD4,0xA6,0xFD,0x95,0xD3,0x41,0x05,0x26,0xC0,0xD4, +0x00,0x01,0x98,0xE0,0xC8,0xC6,0x24,0x14,0x98,0x60,0x08,0xA6,0x01,0xC1,0x54,0x00, +0x01,0x4C,0xA5,0x3E,0x9C,0xE4,0x54,0xA5,0x0F,0x5C,0xE2,0x09,0x8C,0x65,0x5C,0x63, +0x00,0x23,0xFF,0xA5,0xC1,0x60,0x10,0x01,0x98,0x82,0xEC,0xAB,0x06,0xCE,0xE4,0x00, +0x25,0xEC,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x04,0xDD,0xEC,0xEB,0x06,0xCE,0x20,0xE1, +0x0E,0x98,0x61,0x98,0x81,0x98,0xA0,0xE4,0x00,0xE7,0x52,0xC8,0xEA,0x26,0x18,0xFE, +0xE0,0x80,0x00,0x08,0xC7,0x01,0x44,0xC6,0xBD,0x5C,0xC6,0x04,0x0C,0xC7,0x01,0xC8, +0xEA,0x24,0x28,0x08,0xC7,0x01,0x50,0xC6,0x01,0x0C,0xC7,0x01,0xC9,0x4A,0x7A,0x10, +0xFF,0x00,0xFE,0xFF,0x0C,0xEA,0x02,0x44,0xE7,0xC4,0x0C,0xEA,0x00,0xE4,0x00,0x00, +0x43,0x20,0xE4,0x76,0x98,0x60,0x98,0x81,0x98,0xA0,0xE4,0x00,0xE6,0xCC,0xC0,0xE0, +0x10,0x01,0xE8,0xC7,0x06,0x89,0xC8,0xC6,0x01,0x00,0xEC,0xC7,0x06,0x89,0xC0,0xE0, +0x10,0x01,0xEC,0xE7,0x00,0x86,0xE4,0x00,0x07,0xFF,0x0C,0xE1,0x3A,0xD0,0xE0,0x22, +0x12,0x0C,0xE1,0x3A,0x54,0xE7,0x20,0xD0,0xE0,0x21,0xC2,0xC0,0xE0,0x10,0x01,0x98, +0x60,0xEC,0xE7,0x00,0x86,0x84,0xE8,0xC8,0xEA,0x7A,0x50,0x0C,0xA7,0x02,0x50,0xA5, +0x20,0xC8,0xCA,0x74,0x68,0x0C,0xA7,0x00,0x10,0xA6,0x00,0x54,0xA5,0x04,0xD0,0xA0, +0x13,0x8A,0xCA,0xEA,0x74,0x20,0xC0,0xE0,0x10,0x01,0xC9,0x4A,0x74,0xE0,0xC0,0x80, +0x10,0x01,0x08,0xA6,0x01,0xCB,0x40,0x06,0x00,0x44,0xA5,0xD4,0x20,0xA0,0xBA,0x10, +0xAA,0x00,0x54,0xA5,0x08,0x20,0xA3,0xB4,0xEF,0x04,0x06,0x9E,0xE8,0xA7,0x06,0x8D, +0x8C,0xB8,0x13,0x17,0x00,0x1B,0x05,0x00,0xE8,0xA7,0x06,0x8D,0xD0,0xAE,0xFE,0xB5, +0x9C,0xA1,0xEC,0xA7,0x06,0x8D,0xE7,0xFF,0xFF,0x99,0x98,0xE0,0x80,0x01,0x9C,0xE1, +0xC0,0xE0,0xF0,0x04,0x23,0xFF,0xE1,0xE4,0x00,0x00,0x5F,0x10,0xA6,0x00,0x54,0xA5, +0x08,0x20,0xA0,0xE4,0xEF,0x04,0x06,0x9E,0xE8,0xA7,0x06,0x8D,0x8C,0xB8,0x13,0x17, +0x00,0x1B,0x05,0x00,0xE8,0xA7,0x06,0x8D,0xD0,0xAE,0x01,0x15,0x9C,0xA1,0xEC,0xA7, +0x06,0x8D,0xE4,0x00,0x00,0x31,0xC0,0xD4,0x00,0x01,0xC0,0xE0,0x10,0x01,0xCA,0xE6, +0x74,0x20,0xC0,0x80,0x10,0x01,0xC8,0xC6,0x74,0xE0,0x10,0xA6,0x00,0x54,0xA5,0x08, +0x20,0xA2,0xEE,0xC0,0xE0,0x10,0x01,0xE8,0xA7,0x06,0x8D,0xD0,0xA0,0x16,0xFA,0xC0, +0xC0,0x10,0x01,0xEC,0xC6,0x06,0x9E,0x10,0x86,0x00,0x1E,0xE4,0xB0,0x5E,0xF7,0x00, +0xD2,0xE6,0x16,0x55,0x5C,0x8A,0x49,0x20,0x01,0xF9,0xD0,0xA4,0x0C,0xAE,0x10,0xA6, +0x02,0x10,0xE6,0x01,0x10,0xC6,0x03,0x4C,0xE7,0x40,0x44,0xE7,0x2D,0xC0,0xE2,0x7F, +0xEE,0x20,0x05,0x2D,0xC0,0xC0,0x14,0x04,0x20,0x00,0x99,0x98,0xA5,0xC0,0x80,0x10, +0x01,0xFC,0xE4,0x07,0x19,0xF8,0xA4,0x07,0x19,0x18,0xA7,0x03,0x18,0xA7,0x01,0x18, +0x07,0x02,0x98,0xAA,0x18,0xA7,0x05,0x18,0xA7,0x04,0xE4,0x00,0x00,0x5D,0xC0,0xC0, +0x14,0x24,0x20,0x00,0x99,0x50,0xA0,0x19,0xC0,0x80,0x10,0x01,0xFC,0xE4,0x07,0x19, +0xF8,0xA4,0x07,0x19,0x18,0xA7,0x03,0x18,0xA7,0x01,0x50,0xA0,0x32,0x18,0xA7,0x05, +0x18,0xA7,0x04,0x98,0xA1,0x18,0xA7,0x02,0x04,0xE0,0x80,0x50,0xE7,0x4A,0x18,0xC7, +0x00,0xE4,0x00,0x01,0xD7,0x5C,0x8A,0x69,0x20,0x04,0x5D,0xD0,0xA3,0x08,0xA6,0x10, +0xA6,0x02,0x10,0xE6,0x01,0x4C,0xE7,0x40,0x44,0xE7,0x2D,0x5C,0xEE,0x89,0x20,0x00, +0x29,0x50,0xE0,0x2A,0xE4,0x00,0x00,0x1F,0xC0,0xE2,0x80,0x0A,0xC8,0xC0,0x14,0x00, +0x48,0xE7,0x30,0xC0,0xA0,0x10,0x01,0x07,0x60,0x80,0x40,0x87,0xDC,0xEC,0x85,0x06, +0x94,0xC0,0xA0,0x10,0x01,0xC0,0xF4,0x00,0x01,0xFE,0xE0,0x08,0x00,0xC8,0xC7,0x78, +0xCC,0xEE,0xE5,0x06,0x7D,0xC8,0xA7,0x74,0x68,0xE4,0x00,0x00,0x1F,0x08,0xE6,0x01, +0x50,0xE7,0x02,0x0C,0xE6,0x01,0x80,0x01,0x12,0xE5,0x00,0xC0,0xF4,0x00,0x01,0x56, +0xF7,0x20,0x22,0xE3,0xAC,0xCA,0xE7,0x74,0xA8,0xC0,0xA0,0x10,0x01,0xEC,0x05,0x06, +0x8B,0x12,0xF7,0x00,0xCA,0xE7,0x74,0xC0,0x12,0xF7,0x00,0xC8,0xC7,0x74,0x60,0xCB, +0x40,0xFD,0xFF,0x0A,0xE6,0x01,0x46,0xF7,0xD4,0xCB,0x27,0x74,0x21,0xCB,0x07,0x74, +0x68,0x0E,0xE6,0x01,0xCA,0xE7,0x74,0xE0,0xC8,0xE7,0x74,0x20,0xE8,0xC5,0x06,0x8B, +0xC0,0xC1,0x00,0x00,0x20,0x00,0x41,0x0B,0x58,0x01,0xCB,0x60,0x02,0x00,0x47,0x5A, +0xDC,0x23,0x40,0xFC,0xC0,0xF4,0x00,0x01,0xC8,0xC7,0x74,0x60,0x08,0xA6,0x01,0xC8, +0xA5,0x02,0x00,0x0C,0xA6,0x01,0xC8,0xC7,0x74,0xA8,0xC8,0xE7,0x74,0xA0,0x10,0xE7, +0x00,0x10,0xE6,0x00,0xC0,0xE0,0x10,0x01,0xEC,0x07,0x06,0x8B,0xC0,0xE0,0x10,0x01, +0xEC,0x07,0x06,0x90,0xC0,0xE0,0x10,0x01,0xEC,0x07,0x06,0x8D,0xE4,0x00,0x02,0x9D, +0x13,0x57,0x00,0x57,0x5A,0x02,0x23,0x42,0xC4,0x43,0x44,0x34,0x13,0x5A,0x00,0x1B, +0x47,0x00,0x9C,0xC1,0xEC,0xC5,0x06,0x8B,0x18,0x19,0x00,0xE7,0xFF,0xFF,0x23,0xEC, +0x07,0x06,0x8D,0xC0,0xE0,0x10,0x01,0xEC,0x07,0x06,0x90,0xE4,0x00,0x02,0x3F,0x10, +0xC6,0x00,0x54,0xC6,0x20,0xD0,0xC0,0x08,0xAA,0xC8,0xCA,0x74,0xA0,0x10,0xC6,0x00, +0xC8,0xCA,0x74,0xA8,0x10,0xC6,0x00,0x0C,0xC7,0x02,0x50,0xC6,0x20,0x0C,0xC7,0x00, +0xC9,0x4A,0x79,0xE9,0xC0,0xE0,0x10,0x01,0x10,0xCA,0x00,0xF8,0xC7,0x04,0xD4,0x98, +0xC8,0xF0,0xA7,0x04,0xD4,0x20,0xA0,0x7C,0xF0,0xC7,0x04,0xD4,0x20,0xC4,0x54,0xF0, +0xC7,0x04,0xD4,0x20,0xC8,0x38,0xF0,0xE7,0x04,0xD4,0xC8,0xC0,0xFF,0xFF,0x20,0xEC, +0x1A,0x50,0xC0,0x80,0xC0,0xF4,0x00,0x01,0xC8,0xA7,0x74,0xA8,0x10,0xA5,0x00,0xC0, +0xA0,0x10,0x01,0xE8,0x85,0x06,0x7D,0xD4,0xC4,0x00,0x91,0xC8,0x87,0x74,0x21,0x98, +0xA0,0xC8,0xE7,0x74,0x20,0xE4,0x00,0x01,0x01,0xCB,0x47,0x74,0x21,0xC0,0xA0,0x10, +0x01,0xC0,0xC0,0x10,0x01,0xCA,0xE7,0x74,0x68,0xEC,0x05,0x06,0x8B,0xEF,0x26,0x06, +0x96,0xC3,0x00,0x10,0x01,0xC8,0xE7,0x74,0x20,0xE4,0x00,0x00,0x4D,0xF3,0x78,0x04, +0xD4,0x23,0x60,0x30,0x13,0x77,0x00,0x57,0x7B,0x10,0x23,0x63,0xE8,0x43,0x79,0x34, +0x13,0x7B,0x00,0x1B,0x67,0x00,0x9C,0xC1,0xEC,0xC5,0x06,0x8B,0x18,0x1A,0x00,0xE8, +0xC5,0x06,0x8B,0xD4,0xC4,0xFE,0xD6,0xC0,0xE0,0x10,0x01,0xEC,0x07,0x06,0x8B,0xC0, +0xF4,0x00,0x01,0xC8,0xC7,0x74,0xA8,0xC8,0xE7,0x74,0xA0,0x10,0xE7,0x00,0x10,0xE6, +0x00,0xC0,0xE0,0x10,0x01,0xEC,0x07,0x06,0x7D,0xE4,0x00,0x00,0x45,0x18,0x07,0x00, +0x18,0x04,0x00,0x9C,0xA1,0xD4,0xC5,0xFF,0xC5,0xC0,0xF4,0x00,0x01,0xC8,0xC7,0x74, +0xA8,0xC8,0xE7,0x74,0xA0,0x10,0xE7,0x00,0x10,0xE6,0x00,0xC0,0xE0,0x10,0x01,0xE8, +0xC7,0x06,0xA5,0x50,0xC6,0x02,0xEC,0xC7,0x06,0xA5,0xC0,0xE0,0x10,0x01,0xC8,0x80, +0xFF,0xFE,0xE8,0xC7,0x06,0xA5,0x44,0xC6,0x24,0xEC,0xC7,0x06,0xA5,0xC0,0xF4,0x00, +0x01,0xC8,0xE7,0x7A,0x50,0x10,0xC7,0x00,0x54,0xC6,0xDF,0x18,0xC7,0x00,0xC0,0xC0, +0x10,0x01,0xC0,0xE0,0x10,0x01,0xE8,0xA6,0x06,0x7F,0xEC,0xE7,0x00,0x86,0x50,0xA5, +0x20,0xEC,0xA6,0x06,0x7F,0xC0,0xC0,0x10,0x01,0xEC,0x66,0x04,0xDA,0x84,0xE8,0xE4, +0x00,0x00,0x81,0xC0,0xF4,0x00,0x01,0xFE,0xE0,0x80,0x00,0xC8,0xC7,0x26,0x18,0x08, +0x86,0x01,0x44,0x84,0xBD,0x5C,0x84,0x04,0x0C,0x86,0x01,0xC8,0xC7,0x24,0x28,0x08, +0x86,0x01,0x50,0x84,0x01,0x0C,0x86,0x01,0xC8,0xE7,0x7A,0x10,0xFF,0x00,0xFE,0xFF, +0x0C,0xC7,0x02,0x9B,0x40,0x44,0xC6,0xC4,0x0C,0xC7,0x00,0xE7,0xFF,0xF4,0xF9,0x0D, +0x81,0x42,0x0D,0x61,0x46,0x0D,0x41,0x4A,0x0D,0x21,0x4E,0x1C,0x21,0x50,0x85,0x29, +0x2C,0x00,0x0D,0xC3,0xE0,0x00,0x01,0xCB,0xFF,0x03,0x67,0x87,0xE9,0xC2,0xE0,0x10, +0x01,0x5C,0x60,0x5B,0xF3,0x57,0x0C,0x10,0x1E,0xE3,0x01,0x1F,0x7A,0xFF,0x1F,0x03, +0xFE,0x5F,0x18,0x00,0x4B,0x18,0x00,0x5F,0x77,0x1D,0x5E,0xFB,0x00,0x1F,0x23,0x02, +0x5F,0x39,0x00,0x4B,0x39,0xB8,0xCA,0xE0,0x20,0x00,0xE4,0x00,0x00,0x31,0x4F,0x98, +0x10,0x1F,0xB8,0x01,0x8F,0x84,0x5F,0x1D,0x00,0x0F,0x9C,0x02,0x5E,0xFC,0x15,0x4A, +0xF7,0xE0,0xD7,0x19,0xFF,0x61,0x53,0x80,0x1E,0x4F,0x03,0x10,0x53,0x20,0x14,0x8F, +0x04,0x0F,0x18,0x02,0xC3,0x00,0xF9,0xE8,0x4B,0x3C,0xC8,0x4B,0xAC,0x53,0x4B,0x8A, +0x43,0x20,0x60,0x62,0x0F,0x44,0x06,0x0C,0x84,0x02,0x40,0xE7,0xD3,0xCC,0x84,0x00, +0x32,0xD4,0x87,0x03,0x60,0xE4,0x00,0x01,0x4D,0x20,0x64,0x62,0x0F,0x44,0x06,0x0C, +0x84,0x02,0x40,0xE7,0xD3,0xCC,0x84,0x00,0x32,0xD4,0x87,0x01,0x20,0xE4,0x00,0x01, +0x1D,0x1C,0xFA,0xFE,0xD4,0x67,0x01,0x46,0x9F,0x5F,0x41,0x08,0xC3,0x4F,0x5A,0x10, +0x8C,0x9A,0x0C,0xE4,0x02,0xCC,0xE7,0x00,0x32,0xD4,0xE8,0x03,0x94,0x43,0x39,0x2B, +0x40,0xB7,0x2D,0x43,0xBD,0x2B,0x8F,0x3D,0xE4,0x00,0x00,0x61,0xD4,0x7B,0x02,0x0E, +0x4C,0xE7,0x10,0x8C,0xE4,0x0C,0xE7,0x02,0x9F,0x5F,0x41,0x08,0x3B,0x4F,0x5A,0x10, +0x8C,0x9A,0x0C,0xE4,0x02,0xCC,0xE7,0x00,0x32,0xD4,0xE8,0x02,0x14,0x43,0x39,0x2B, +0x40,0xB7,0x2D,0x43,0x9C,0x2B,0x8F,0x3C,0xCC,0xC6,0x00,0x0A,0x98,0xEA,0x8C,0xD9, +0x40,0xC6,0x38,0x5F,0x06,0x15,0x48,0x60,0x0A,0xE4,0x00,0x00,0x49,0x43,0x39,0x2B, +0xCC,0xC6,0x00,0x0A,0x40,0xB7,0x2D,0x98,0xEA,0xCC,0xA5,0x00,0x0E,0x8C,0xC5,0x8F, +0x26,0x43,0x39,0x38,0x5F,0x19,0x15,0xE7,0xFF,0xFF,0xBF,0x98,0x60,0x85,0x29,0xC0, +0xE0,0x10,0x01,0xE8,0xC7,0x05,0x08,0x98,0xE1,0x1C,0xA6,0xFF,0x5C,0xA5,0x04,0x24, +0xA4,0x57,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x05,0x3C,0x9C,0xDF,0x5C,0xC6,0x06,0x8C, +0xC7,0x10,0xE6,0x00,0x20,0x61,0xA6,0xC0,0xC0,0x10,0x01,0xF0,0xC6,0x0C,0x10,0xC0, +0x80,0x10,0x01,0x1C,0xA6,0xFF,0x4F,0x86,0x08,0x4F,0x65,0x08,0xCF,0x46,0x00,0x03, +0x5F,0x9C,0x00,0x5F,0x7B,0x00,0xFC,0x84,0x0B,0x14,0xCF,0x25,0x00,0x03,0x98,0xC0, +0xE4,0x00,0x00,0x67,0x0B,0xB7,0x01,0x43,0xA7,0xEB,0x0F,0xB7,0x01,0x9F,0x01,0x8C, +0xBB,0x4F,0x18,0x08,0x5C,0xA5,0x00,0x8F,0x04,0x0A,0xF8,0x01,0x42,0xE7,0xBB,0x0E, +0xF8,0x01,0x43,0x05,0x34,0x4E,0xF8,0x08,0x8E,0xE4,0xD7,0x25,0xFE,0xD4,0x8C,0xDC, +0x5C,0xC6,0x00,0xD7,0x46,0x03,0x98,0x98,0xA0,0xE7,0xFF,0xFF,0xD3,0x20,0x65,0xA6, +0xC0,0xC0,0x10,0x01,0xF0,0xC6,0x0C,0x10,0xC0,0x80,0x10,0x01,0x1C,0xA6,0xFF,0x4F, +0x86,0x08,0x4F,0x65,0x08,0xCF,0x46,0x00,0x03,0x5F,0x9C,0x00,0x5F,0x7B,0x00,0xFC, +0x84,0x0B,0x14,0xCF,0x25,0x00,0x03,0x98,0xC0,0xE4,0x00,0x00,0x67,0x0B,0xB7,0x00, +0x43,0xBD,0x38,0x0F,0xB7,0x01,0x9F,0x01,0x8C,0xBB,0x4F,0x18,0x08,0x5C,0xA5,0x00, +0x8F,0x04,0x0A,0xF8,0x00,0x42,0xF7,0x38,0x0E,0xF8,0x01,0x43,0x05,0x34,0x4E,0xF8, +0x08,0x8E,0xE4,0xD7,0x25,0xFE,0xD4,0x8C,0xDC,0x5C,0xC6,0x00,0xD7,0x46,0x00,0x50, +0x98,0xA0,0xE7,0xFF,0xFF,0xD3,0xC0,0xE0,0x10,0x01,0xE8,0xA7,0x0B,0x14,0xFC,0xE7, +0x0B,0x14,0x08,0x87,0x02,0x8C,0xA4,0xC0,0xC0,0x10,0x01,0xEC,0xA6,0x09,0x4C,0xC0, +0xA0,0x10,0x01,0xF0,0xA5,0x0C,0x10,0x1F,0x05,0xFF,0x4F,0x18,0x10,0x40,0x98,0x3C, +0xFC,0xC6,0x09,0x4C,0x4E,0xE5,0x08,0x8F,0x06,0x0B,0x24,0x00,0x1C,0x97,0xFF,0x9E, +0xE1,0x4F,0x44,0x08,0x4E,0xF7,0x08,0x8F,0x47,0x8E,0xE7,0x0B,0x5A,0x00,0x8F,0x3A, +0x0F,0x38,0x00,0x4C,0xA5,0x10,0x0B,0x37,0x00,0x43,0x05,0x3C,0x42,0xE5,0x34,0x0B, +0x18,0x00,0x8F,0x19,0x0F,0x17,0x00,0x4C,0x84,0x10,0x9C,0xBF,0x8C,0xC4,0x4C,0xA5, +0x08,0x8C,0x87,0x8C,0xE5,0x08,0x84,0x00,0x08,0xE7,0x00,0x8C,0xE4,0x0C,0xE6,0x00, +0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x80,0x10,0x01,0xF2,0xF7,0x0C,0x10,0xC3,0x40, +0x10,0x01,0x42,0xE7,0xBB,0xFF,0x9C,0x09,0x4C,0x5E,0xF7,0x00,0xFF,0x5A,0x0B,0x14, +0x8C,0xD7,0x9B,0x20,0x8E,0xE5,0x5C,0xC6,0x00,0x5E,0xF7,0x00,0x98,0xA0,0x9B,0x00, +0xE4,0x00,0x00,0x4B,0x4F,0x77,0x10,0x43,0xBB,0xD4,0x0B,0xBD,0x00,0x1F,0xD7,0x01, +0x8F,0x3D,0x5E,0xFE,0x00,0x8B,0xBB,0x8F,0x7C,0x8F,0xBA,0x0F,0x7B,0x02,0x0B,0xBD, +0x02,0x8F,0x1B,0x8C,0xBD,0xD6,0xE6,0xFE,0xF9,0x24,0xA0,0xF0,0x27,0x00,0xE4,0x27, +0x20,0xD8,0x9C,0xE2,0xCF,0x39,0xFF,0xF6,0x4C,0xE7,0x10,0xC0,0xC0,0x10,0x01,0xFC, +0xC6,0x0C,0x0C,0x8C,0xE6,0x0C,0xE7,0x06,0x0F,0x04,0x00,0x40,0xA5,0x3B,0x9C,0xF6, +0x8C,0xB9,0x40,0xE5,0x38,0xCC,0xE7,0x07,0xFF,0x43,0x07,0xC0,0x0F,0x03,0x01,0x98, +0x61,0xE4,0x00,0x00,0x0D,0x98,0x60,0x85,0x29,0xC0,0xF4,0x00,0x01,0xFC,0x80,0xA5, +0x5A,0xC8,0xA7,0x30,0x80,0xC8,0xC7,0x30,0x41,0x10,0xC6,0x00,0x0C,0x85,0x01,0x5C, +0xC6,0x00,0xC8,0xE7,0x30,0x89,0x4C,0xC6,0x21,0x4C,0xA6,0x08,0x54,0xC6,0x08,0x50, +0xA5,0x40,0x4C,0xC6,0x10,0x44,0xC5,0x35,0x18,0xC7,0x00,0x85,0x29,0x98,0xE3,0x98, +0xC1,0xE4,0x00,0x00,0x11,0x8C,0xC7,0x9C,0xE2,0xD4,0xC3,0xFF,0xE1,0x4C,0xE7,0x09, +0x1C,0x67,0xFF,0x5C,0x63,0x06,0x85,0x29,0xFC,0xE0,0x7F,0xFF,0xC0,0xA0,0x10,0x01, +0xEC,0xE5,0x06,0x21,0xFC,0xC5,0x06,0x20,0x0C,0xE6,0x0B,0x0C,0xE6,0x03,0x0C,0xE6, +0x05,0x0C,0xE6,0x07,0x0C,0xE6,0x09,0x85,0x29,0xC0,0xA0,0x10,0x01,0xC0,0xE0,0x10, +0x01,0xFC,0xA5,0x08,0xD8,0xFC,0xE7,0x06,0x20,0x08,0xC5,0x18,0x08,0x87,0x08,0x08, +0xA5,0x16,0xC0,0x8F,0xFF,0xE0,0x20,0x00,0x4D,0x08,0x87,0x05,0x0C,0x87,0x09,0x08, +0x87,0x07,0x0C,0x87,0x0B,0xE4,0x00,0x00,0x15,0x0C,0xC7,0x0B,0x0C,0xA7,0x09,0xC0, +0x80,0x10,0x01,0xFC,0xE4,0x06,0x20,0x0A,0xE7,0x04,0xC2,0xEF,0xFF,0xE4,0x20,0x00, +0x35,0x0C,0xC7,0x07,0x0C,0xA7,0x05,0xE4,0x00,0x00,0x23,0xE8,0x84,0x06,0x21,0x0C, +0x87,0x05,0x08,0x87,0x03,0x0C,0x87,0x07,0xC0,0xE0,0x10,0x01,0xEC,0xA7,0x06,0x21, +0xFC,0xE7,0x06,0x20,0x0C,0xC7,0x03,0x85,0x29,0x1C,0x21,0xE0,0x0D,0x21,0x1C,0x0D, +0x41,0x18,0x0D,0x61,0x14,0x0D,0x81,0x10,0xC1,0x40,0x10,0x01,0xE8,0xEA,0x06,0x21, +0xFD,0x4A,0x06,0x20,0x09,0x8A,0x05,0x40,0xE7,0x65,0x09,0x6A,0x07,0x5C,0x67,0x06, +0x0C,0xE1,0x09,0x08,0xEA,0x03,0x40,0xE7,0x5D,0x5C,0xE7,0x06,0x40,0xC7,0x3B,0x0C, +0xE1,0x0B,0x40,0x63,0x1B,0x8C,0x66,0xE7,0xFF,0xFE,0x2C,0x08,0xEA,0x0B,0x41,0x6B, +0x3D,0x08,0xEA,0x09,0x41,0x8C,0x3D,0x5D,0x4C,0x06,0x40,0xEA,0x53,0x0C,0x61,0x00, +0x5D,0x6B,0x06,0x0D,0x81,0x0D,0x0D,0x61,0x0F,0x40,0x6B,0x5B,0x8C,0x67,0xE7,0xFF, +0xFD,0xDE,0x0C,0xE1,0x02,0x20,0xE0,0xC0,0x20,0x60,0xB4,0x40,0xC7,0x18,0xD0,0xC5, +0x01,0x3C,0x40,0x63,0x3B,0x08,0xE1,0x0A,0x41,0x6B,0x3B,0x08,0xE1,0x08,0x41,0x4A, +0x3B,0x40,0xEB,0x54,0xCC,0xE7,0x00,0x64,0x40,0xE7,0x18,0x5C,0xE8,0xB9,0x48,0x60, +0x0A,0xE4,0x00,0x00,0x0D,0x98,0x61,0x0D,0x81,0x12,0x0D,0x61,0x16,0x0D,0x41,0x1A, +0x0D,0x21,0x1E,0x1C,0x21,0x20,0x85,0x29,0x1C,0x21,0xE0,0x0D,0x41,0x18,0x0D,0x61, +0x14,0x0D,0x81,0x10,0xC1,0x60,0x10,0x01,0x0D,0xC1,0x08,0x0D,0xE1,0x04,0x0D,0x21, +0x1C,0x0D,0xA1,0x0C,0x89,0xE3,0x99,0x43,0xFD,0x8B,0x08,0xD8,0x89,0xCB,0x4C,0xCF, +0x55,0x88,0xEA,0x54,0xC6,0x01,0x20,0xC0,0x96,0xE4,0x00,0x00,0x65,0x1D,0xA7,0x01, +0xCC,0xE7,0x00,0x1C,0xCC,0x8D,0x00,0x1C,0x40,0x67,0x64,0x8C,0x8C,0x9C,0x64,0x9C, +0x84,0x50,0xA0,0x1C,0xE4,0x00,0x00,0xB8,0x5C,0xED,0x00,0x24,0xEF,0x89,0xF0,0xEE, +0x08,0xD8,0x20,0xE0,0x24,0x9C,0xFF,0xF8,0xEB,0x08,0xD8,0x21,0x40,0x30,0x9D,0x5F, +0x5D,0x4A,0x00,0xE7,0xFF,0xFF,0x77,0xC0,0xE0,0x10,0x01,0xF0,0xE7,0x08,0xD8,0x20, +0xE0,0x52,0xC0,0xE0,0x10,0x01,0x98,0xB7,0xE8,0xC7,0x07,0x23,0x44,0xC6,0x2C,0xEC, +0xC7,0x07,0x23,0x0D,0xE1,0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E,0x0D,0x81,0x12,0x0D, +0x61,0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20,0x85,0x29,0x2C,0x00,0x0D, +0xC3,0xE0,0x00,0x01,0xCB,0xFF,0x09,0x0D,0x87,0xE9,0xC0,0xE0,0x10,0x01,0xE8,0xC7, +0x05,0x08,0x20,0xC4,0xDE,0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10,0x01,0xF0,0xA7,0x0C, +0x10,0xFC,0xC6,0x07,0x24,0x9C,0xA1,0x98,0xE0,0xE4,0x00,0x00,0x31,0x4C,0x87,0x08, +0x1E,0xE7,0xFF,0x1F,0x07,0x01,0x8C,0x86,0x4E,0xF7,0x10,0x5C,0xF8,0x00,0x0E,0xE4, +0x01,0xD4,0xE5,0xFF,0x60,0xE4,0x00,0x00,0xD1,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x0C, +0x0C,0x20,0xC8,0x58,0x10,0xA7,0x04,0xC0,0xC0,0x10,0x01,0x9C,0xA1,0xFC,0xC6,0x07, +0x24,0x98,0xE0,0xE4,0x00,0x00,0x8D,0x10,0xA7,0x04,0xC0,0xC0,0x10,0x01,0x9C,0xA1, +0xFC,0xC6,0x07,0x24,0x98,0xE0,0xE4,0x00,0x00,0x31,0x4C,0x87,0x08,0xCE,0xE7,0x00, +0x06,0x1F,0x07,0x01,0x8C,0x86,0x9E,0xF9,0x5C,0xF8,0x00,0x0E,0xE4,0x01,0xD4,0xE5, +0xFF,0x60,0xE4,0x00,0x00,0x37,0x4C,0x87,0x08,0x4E,0xE7,0x08,0x1F,0x07,0x01,0x8C, +0x86,0x9E,0xFF,0x5C,0xF8,0x00,0x0E,0xE4,0x01,0xD4,0xE5,0xFF,0x68,0x85,0x29,0x40, +0x84,0x1D,0xC2,0xE0,0x10,0x01,0x9C,0x81,0xF2,0xF7,0x0C,0x10,0x5C,0x84,0x00,0x42, +0xE5,0xBB,0x5E,0xF7,0x00,0x21,0x04,0x3C,0xC0,0xA0,0x10,0x01,0xFC,0xA5,0x0B,0x14, +0xE4,0x00,0x00,0x19,0xC0,0xA0,0x10,0x01,0xFC,0xA5,0x09,0x9C,0x8E,0xE3,0xC3,0x0F, +0xFF,0xE1,0x4F,0x57,0x10,0xCB,0x18,0xFF,0xFF,0x9F,0x42,0x4E,0xF7,0x10,0x8F,0x45, +0x8E,0xE5,0x4F,0x84,0x10,0x88,0xA6,0x9B,0x20,0xE4,0x00,0x00,0x5B,0x20,0xE0,0x2A, +0x0B,0x77,0x00,0xE4,0x00,0x00,0x1F,0x0B,0x7A,0x00,0x20,0xE4,0x20,0x0B,0xB7,0x00, +0x8F,0x7D,0x0F,0x65,0x00,0x9F,0x24,0x0F,0x65,0x02,0x9E,0xE4,0x5F,0x1B,0x15,0x9F, +0x44,0x9C,0xA4,0x4B,0x18,0xD8,0xD7,0x3C,0xFE,0xBE,0x98,0xE0,0xE4,0x00,0x00,0x29, +0x0C,0xA6,0x02,0x9C,0xE1,0x40,0xA5,0xC5,0x5C,0xE7,0x00,0x0C,0xA6,0x00,0x9C,0xC4, +0xD4,0x87,0xFF,0x85,0x85,0x29,0x1C,0x21,0x88,0x0D,0x41,0x70,0x0D,0x61,0x6C,0x89, +0x44,0x0D,0x81,0x68,0x0D,0xA1,0x64,0x0D,0x21,0x74,0x89,0xA5,0x89,0x83,0x88,0xA6, +0x88,0x8D,0x88,0xC1,0x88,0x6A,0xE7,0xFF,0xFE,0x92,0xC0,0xE0,0x10,0x01,0x41,0xAD, +0x55,0xE8,0xA7,0x05,0x08,0x9D,0xA1,0xCF,0x2A,0x00,0x06,0x4F,0x0A,0x08,0x5D,0xAD, +0x00,0x89,0x61,0x9F,0x3F,0x9F,0x01,0x98,0x80,0x98,0xC0,0x98,0xE0,0xE4,0x00,0x00, +0x4B,0x0E,0xEB,0x02,0x43,0x44,0x54,0x43,0x5A,0xBB,0x20,0xA4,0x30,0x43,0x59,0xBB, +0x20,0xA8,0x18,0x43,0x58,0xBB,0x8C,0xDA,0x8C,0xF7,0x9C,0x81,0x9F,0x26,0x9F,0x02, +0x9D,0x64,0x5E,0xE4,0x00,0xD5,0xB7,0xFE,0xE5,0x98,0x60,0x24,0xE1,0x30,0xC0,0x80, +0x10,0x01,0xE8,0x84,0x0C,0x17,0x40,0xC6,0x23,0x20,0xA4,0x32,0x4C,0xA7,0x0A,0x8C, +0xC5,0xE4,0x00,0x00,0x3B,0x20,0xA8,0x52,0xCC,0xA7,0x00,0x06,0xCC,0xE7,0x00,0x03, +0x8C,0xE6,0x40,0xE7,0x28,0xE4,0x00,0x00,0x19,0x8C,0xC7,0x4C,0xE7,0x08,0x40,0xE6, +0x38,0xC0,0xE0,0xFF,0xE8,0xC8,0xC0,0x07,0xFF,0x98,0x61,0x48,0xE7,0x30,0x5C,0xFF, +0xF9,0x48,0xE7,0x00,0x0C,0xEC,0x01,0x0D,0xA1,0x66,0x0D,0x81,0x6A,0x0D,0x61,0x6E, +0x0D,0x41,0x72,0x0D,0x21,0x76,0x1C,0x21,0x78,0x85,0x29,0xFC,0x21,0xFF,0x80,0x0D, +0x41,0x78,0x0D,0x61,0x74,0x0D,0x81,0x70,0x0D,0xA1,0x6C,0x0D,0xC1,0x68,0x0D,0xE1, +0x64,0x0E,0xC1,0x60,0x0D,0x21,0x7C,0x89,0x84,0x89,0xE3,0xC1,0xA0,0x10,0x01,0x88, +0x64,0xFD,0xAD,0x0C,0x0C,0x10,0x8D,0x04,0x41,0x46,0x23,0x4C,0x84,0x08,0x9C,0x8E, +0xC4,0x84,0x03,0xF8,0xFE,0xC1,0x00,0x80,0x89,0x65,0x89,0xC1,0x88,0xA6,0x40,0x21, +0x25,0x1C,0xD6,0x80,0x88,0x8B,0xE7,0xFF,0xFC,0x92,0x10,0x8D,0x04,0xC0,0xC0,0x10, +0x01,0x5D,0x4A,0x00,0x4C,0x84,0x08,0xFC,0xC6,0x07,0x24,0x88,0xA1,0x98,0xE0,0xE4, +0x00,0x00,0x25,0x42,0xE5,0x3C,0x43,0x07,0x34,0x9C,0xE2,0x0B,0x18,0x03,0x0F,0x17, +0x01,0xD4,0xE4,0xFF,0x96,0x8D,0x8A,0x8D,0x6A,0x5D,0x8C,0x00,0x5D,0x6B,0x00,0x1C, +0xD6,0x80,0x1C,0x8B,0x01,0x98,0xE0,0x40,0x84,0x65,0x5C,0x84,0x00,0xE4,0x00,0x00, +0x2D,0x1E,0xE7,0x01,0x0F,0x06,0x02,0x27,0x00,0x4A,0x9C,0xC4,0xD5,0x67,0x03,0x31, +0x5C,0xF7,0x00,0xD4,0x87,0xFF,0x75,0x88,0xEC,0x1C,0x96,0xE0,0x4C,0xC7,0x10,0x8C, +0xC4,0x1E,0xF6,0xE0,0x0C,0x86,0xA2,0x1C,0xC7,0x01,0x40,0x84,0x23,0x4C,0xC6,0x10, +0x8C,0xD7,0x0C,0xC6,0xA2,0x40,0xC6,0x33,0x24,0xC0,0xE8,0x24,0x80,0xDC,0x41,0x4C, +0x55,0x8C,0xEA,0x4C,0xE7,0x08,0x8C,0xA7,0x0B,0x05,0x00,0xC0,0xA0,0x10,0x01,0xFC, +0xA5,0x0C,0x0C,0x8C,0x86,0x12,0xE5,0x14,0x08,0xE5,0x0B,0x98,0x61,0x40,0xB8,0x3B, +0x40,0xE6,0x3B,0x40,0xA5,0xB8,0x40,0xE7,0x20,0x8C,0xE5,0x0C,0xEF,0x01,0xE4,0x00, +0x00,0x0D,0x98,0x60,0x88,0x2E,0x0E,0xC1,0x62,0x0D,0xE1,0x66,0x0D,0xC1,0x6A,0x0D, +0xA1,0x6E,0x0D,0x81,0x72,0x0D,0x61,0x76,0x0D,0x41,0x7A,0x0D,0x21,0x7E,0xFC,0x21, +0x00,0x80,0x85,0x29,0xC0,0xE0,0x10,0x01,0xC0,0x60,0x10,0x01,0x1C,0x21,0xC0,0xF0, +0x87,0x0C,0x0C,0x0D,0x41,0x38,0x0D,0x61,0x34,0x0E,0x01,0x20,0x0E,0x21,0x1C,0x0E, +0x41,0x18,0x0E,0x61,0x14,0x0E,0x81,0x10,0x0E,0xA1,0x0C,0x0E,0xC1,0x08,0x0D,0x21, +0x3C,0x0D,0x81,0x30,0x0D,0xA1,0x2C,0x0D,0xC1,0x28,0x0D,0xE1,0x24,0xFE,0xC3,0x0A, +0x30,0x98,0xA0,0x88,0x76,0xC2,0x40,0x10,0x01,0xE4,0x00,0x7D,0x16,0x99,0x60,0x99, +0x40,0xFE,0x32,0x08,0xD8,0xC2,0xA0,0x10,0x01,0x9A,0x01,0x1E,0x81,0x06,0x1E,0x61, +0x04,0xE4,0x00,0x01,0x21,0xCD,0x8A,0x00,0x1C,0xE8,0xF5,0x04,0x89,0x40,0x71,0x64, +0x54,0xE7,0x02,0x8D,0x91,0x1C,0x63,0x16,0x11,0xEC,0x04,0x11,0xCC,0x05,0x88,0x8F, +0x88,0xAE,0x11,0xAC,0x07,0x20,0xE1,0x04,0x88,0xCD,0x88,0x74,0x98,0xE2,0x99,0x00, +0xE7,0xFF,0xFA,0xEC,0x20,0x60,0xFC,0x88,0x8F,0x88,0xAE,0x88,0xCD,0x88,0x73,0x98, +0xE2,0x99,0x00,0xE7,0xFF,0xFC,0x70,0x20,0x60,0xB0,0x08,0xC1,0x04,0xCC,0xC6,0x00, +0x03,0x08,0xE1,0x06,0xCC,0xE7,0x00,0x07,0x8C,0xE6,0x98,0xCA,0x40,0xE7,0x30,0x0C, +0xEC,0x17,0xE4,0x00,0x00,0x35,0x88,0xCD,0x98,0xE2,0x99,0x00,0xE7,0xFF,0xFA,0x74, +0x20,0x60,0x32,0x4C,0xF0,0x54,0x45,0x6B,0x3D,0x5D,0x6B,0x00,0xC0,0xE0,0x10,0x01, +0x88,0x76,0xF0,0x87,0x0C,0x0C,0x98,0xA1,0x9D,0x41,0xE4,0x00,0x7B,0xD4,0x5D,0x4A, +0x00,0xF0,0xF2,0x08,0xD8,0xD4,0xEA,0xFB,0x85,0x88,0x6B,0xE7,0xFF,0xF6,0x3A,0xC0, +0xE0,0x10,0x01,0xF0,0xE7,0x08,0xD8,0x20,0xE0,0x6C,0xC0,0xE0,0x10,0x01,0xE8,0xE7, +0x04,0x8D,0x54,0xE7,0x40,0x20,0xE0,0x34,0xC0,0xE0,0x10,0x01,0xEC,0xE7,0x00,0xD2, +0x84,0xE8,0xC0,0xE0,0x10,0x01,0xC0,0x60,0x10,0x01,0xF0,0x87,0x0C,0x0C,0xFC,0x63, +0x0A,0x30,0x98,0xA1,0xE4,0x00,0x7B,0x40,0x0D,0x21,0x3E,0x0E,0xC1,0x0A,0x0E,0xA1, +0x0E,0x0E,0x81,0x12,0x0E,0x61,0x16,0x0E,0x41,0x1A,0x0E,0x21,0x1E,0x0E,0x01,0x22, +0x0D,0xE1,0x26,0x0D,0xC1,0x2A,0x0D,0xA1,0x2E,0x0D,0x81,0x32,0x0D,0x61,0x36,0x0D, +0x41,0x3A,0x1C,0x21,0x40,0x85,0x29,0x1C,0x21,0xD0,0x0D,0xC1,0x18,0x0D,0xE1,0x14, +0x0D,0x21,0x2C,0x0D,0x41,0x28,0x0D,0x61,0x24,0x0D,0x81,0x20,0x0D,0xA1,0x1C,0x0E, +0x01,0x10,0x0E,0x21,0x0C,0x89,0xE3,0x89,0xC4,0xE7,0xFF,0xFC,0xF6,0xC0,0xE0,0x10, +0x01,0xE8,0xE7,0x04,0x8D,0x54,0xE7,0x80,0x20,0xE0,0x56,0xC1,0xA0,0x10,0x01,0x99, +0x60,0x99,0x40,0xFD,0x8D,0x08,0xD8,0x9A,0x01,0xE4,0x00,0x00,0x81,0xC0,0xE0,0x10, +0x01,0xEC,0xE7,0x00,0xD6,0x84,0xE8,0xE4,0x00,0x00,0x81,0xCC,0x8A,0x00,0x1C,0x40, +0xC4,0x64,0x88,0x66,0x88,0x86,0x10,0xE6,0x07,0x10,0xA6,0x04,0x1C,0x63,0x18,0x9C, +0x8C,0x10,0xC6,0x05,0xE7,0xFF,0xF0,0x3C,0x20,0x60,0x32,0x4C,0xF0,0x54,0x45,0x6B, +0x3D,0x5D,0x6B,0x00,0x9D,0x41,0x5D,0x4A,0x00,0xF0,0xED,0x08,0xD8,0xD4,0xEA,0xFE, +0x75,0x88,0x6B,0xE7,0xFF,0xF4,0x4A,0x21,0xE0,0x8C,0x21,0xC0,0x80,0xC1,0x80,0x10, +0x01,0xC2,0x20,0x10,0x01,0x99,0x60,0xFE,0x31,0x04,0xEA,0xFE,0x0C,0x08,0xD8,0xC1, +0xE0,0x10,0x01,0x1D,0xC1,0x04,0xE4,0x00,0x00,0xC7,0xC0,0xE0,0x10,0x01,0xC0,0xC0, +0x10,0x01,0xEB,0x07,0x04,0x89,0xF2,0xE6,0x08,0xD8,0xC0,0xE0,0x10,0x01,0xCE,0xF7, +0x00,0x1C,0xFC,0xE7,0x08,0xF0,0x57,0x18,0x01,0x8E,0xE7,0xFC,0x80,0x07,0xFF,0xC8, +0xA0,0x07,0xFF,0xE4,0x00,0x00,0xED,0xCD,0x4B,0x00,0x1C,0x8D,0x50,0x08,0xCA,0x16, +0x0C,0xC1,0x04,0x08,0xCA,0x18,0xEC,0xEF,0x00,0xDA,0x0C,0xC1,0x00,0x88,0x6E,0x88, +0x81,0x0C,0xAA,0x0E,0x88,0xD1,0x84,0xE8,0x0C,0xE1,0x06,0x9D,0x61,0x0C,0xEA,0x17, +0x5D,0x6B,0x00,0x0C,0xE1,0x02,0x0C,0xEA,0x19,0xF0,0xEC,0x08,0xD8,0xD4,0xEB,0xFE, +0x55,0xE7,0xFF,0xFF,0x33,0x08,0xC7,0x00,0x5C,0xDF,0xF9,0x08,0xC7,0x01,0x48,0xC6, +0x00,0x5C,0xC6,0x06,0xC0,0xC0,0xFF,0xE8,0x48,0xC6,0x20,0x5C,0xC6,0x06,0x0C,0xC7, +0x01,0x13,0x27,0xEF,0xCC,0xC6,0x03,0xFF,0x23,0x00,0x38,0x40,0xC6,0x28,0x4F,0x39, +0x50,0x8C,0xD9,0x0C,0xC7,0x01,0x1C,0xE7,0x1C,0xD4,0xF7,0xFE,0x66,0x0E,0x21,0x0E, +0x0E,0x01,0x12,0x0D,0xE1,0x16,0x0D,0xC1,0x1A,0x0D,0xA1,0x1E,0x0D,0x81,0x22,0x0D, +0x61,0x26,0x0D,0x41,0x2A,0x0D,0x21,0x2E,0x1C,0x21,0x30,0x85,0x29,0x1C,0x21,0xE0, +0x5E,0xE3,0x04,0x0D,0x81,0x14,0x0D,0xA1,0x10,0x0D,0xC1,0x0C,0x0D,0xE1,0x08,0x0D, +0x41,0x1C,0x0D,0x61,0x18,0x0E,0x01,0x04,0xC3,0x00,0x10,0x01,0x9B,0x41,0xFF,0x18, +0x0C,0x0C,0xC1,0xA0,0x10,0x01,0x08,0xF8,0x0B,0x13,0x38,0x14,0x41,0xE0,0x3D,0x13, +0x18,0x04,0x41,0xEF,0xBD,0x40,0xC6,0xC3,0x41,0xD7,0x3D,0x43,0x5A,0x35,0x5D,0xEF, +0x04,0x5C,0xC6,0x00,0x5D,0xCE,0x04,0x8C,0xA6,0xFD,0xAD,0x07,0x24,0x8C,0xC4,0x5C, +0xA5,0x00,0xC0,0x80,0x10,0x01,0x5C,0xC6,0x00,0xFC,0x84,0x0B,0x14,0x4D,0x87,0x08, +0x53,0x60,0x64,0xE4,0x00,0x01,0x79,0x43,0x86,0xD4,0x4F,0x9C,0x08,0x8F,0x8D,0x09, +0x7C,0x00,0x41,0x6B,0x3B,0x41,0x6B,0xC8,0x5D,0x6B,0x06,0x5F,0xAB,0x04,0x43,0x9D, +0xBD,0x5F,0x9C,0x06,0x4F,0xDC,0xFA,0x47,0x9E,0xE6,0x43,0x9C,0xF5,0xD4,0xFC,0x04, +0x6C,0x4F,0xC6,0x10,0x8F,0xC4,0xD5,0x9C,0x03,0xC8,0x4F,0xC6,0x08,0x42,0x1D,0x7C, +0x1D,0x1E,0x01,0x43,0xAE,0xED,0x5E,0x10,0x06,0x5F,0xBD,0x06,0x42,0x07,0x85,0x43, +0xA7,0xED,0x4D,0x08,0x08,0x4F,0xC6,0x10,0x8D,0x04,0xCE,0x10,0x00,0x64,0xCF,0xBD, +0x00,0x64,0x8B,0x88,0x41,0x44,0xF4,0xD5,0x63,0x01,0x30,0x0B,0xAA,0x00,0x43,0x90, +0x38,0x5F,0x9C,0x04,0x43,0xBC,0xEB,0x43,0xBD,0xD8,0x0F,0xAA,0x01,0x0B,0xA8,0x00, +0x43,0x9C,0xEB,0x43,0x9C,0xD8,0x0F,0x88,0x01,0xE4,0x00,0x00,0x63,0x09,0x0A,0x00, +0x43,0xBD,0x38,0x5F,0xBD,0x04,0x41,0x1D,0x43,0x41,0x08,0xD8,0x0D,0x0A,0x01,0x0B, +0xDC,0x00,0x43,0xBD,0xF3,0x43,0xBD,0xD8,0x0F,0xBC,0x01,0xE4,0x00,0x00,0x1F,0x0C, +0x1E,0x01,0x4F,0x86,0x10,0x8F,0x84,0x0C,0x1C,0x03,0x9C,0xC1,0x5C,0xC6,0x00,0xD4, +0xC5,0xFA,0x40,0xC0,0xE0,0x10,0x01,0xF0,0xE7,0x0C,0x0D,0x43,0x18,0x3B,0x0E,0x01, +0x06,0x0D,0xE1,0x0A,0x0D,0xC1,0x0E,0x0D,0xA1,0x12,0x0D,0x81,0x16,0x0D,0x61,0x1A, +0x0D,0x41,0x1E,0x5C,0x78,0x00,0x1C,0x21,0x20,0xE4,0x00,0xA5,0xB1,0x20,0xE1,0x86, +0xC2,0xE0,0x10,0x01,0x40,0x63,0x25,0xFE,0xF7,0x04,0xEA,0x21,0x08,0xF6,0x5C,0x63, +0x06,0x0A,0xF7,0x33,0x4C,0xE3,0xFA,0x4E,0xF7,0x08,0x44,0x67,0x1E,0x40,0xE3,0x3D, +0xD6,0xE7,0x03,0x10,0xD4,0xA6,0x00,0x90,0xCC,0xC6,0x00,0x03,0x41,0x06,0x40,0x5D, +0x05,0x15,0xE4,0x00,0x00,0x93,0xD4,0xC5,0x02,0x60,0xCC,0xA5,0x00,0x03,0x41,0x05, +0x40,0x5D,0x06,0x15,0xE4,0x00,0x00,0x6F,0x5C,0x63,0x06,0x08,0xD7,0x33,0x4C,0xE3, +0xFA,0x4C,0xC6,0x08,0x44,0x67,0x1E,0x40,0xE3,0x3D,0xE4,0x00,0x00,0x3D,0xC0,0xE0, +0x10,0x01,0x40,0x83,0x25,0xE8,0xC7,0x05,0x1D,0x5C,0x84,0x06,0x4C,0xC6,0x08,0x4C, +0xE4,0xFA,0x44,0x87,0x26,0x40,0xE4,0x3D,0x5C,0xC7,0x15,0x48,0x60,0x0A,0xE4,0x00, +0x00,0x0D,0x98,0x60,0x85,0x29,0xD4,0x83,0x00,0xA0,0x8A,0xE3,0x88,0xA6,0x88,0x64, +0x98,0xC1,0x88,0x97,0x40,0xE6,0x3D,0x5C,0xE7,0x00,0xC0,0xC0,0x10,0x01,0xF0,0xC6, +0x05,0x1E,0x42,0xE4,0x33,0xD4,0x77,0x00,0x50,0x98,0x80,0xE4,0x00,0x00,0x47,0x4E, +0xE4,0x08,0xD6,0xE3,0x00,0xE4,0x1E,0xE6,0xFE,0xCF,0x03,0xFF,0xFE,0x42,0xE3,0xBB, +0x4C,0xC6,0x08,0x40,0xC6,0x23,0x8C,0xD8,0x40,0x86,0x23,0x40,0x84,0xB8,0x5C,0xE0, +0x01,0x48,0xC3,0x20,0x48,0x64,0x18,0x40,0xE3,0x34,0x24,0xE1,0x5C,0xC0,0xA0,0x7F, +0xEC,0x20,0x00,0x49,0xC8,0x80,0x04,0x00,0x40,0x84,0x2D,0xC0,0x80,0x25,0x6C,0xE4, +0x00,0x00,0x11,0xC0,0xA0,0xA5,0x6C,0x48,0x80,0x0A,0x5C,0x84,0x00,0x20,0x80,0xD0, +0xCC,0xC6,0x03,0xB0,0xCC,0x83,0x04,0x50,0x8C,0x86,0x50,0xC0,0x50,0x40,0x84,0x38, +0x5C,0x84,0x06,0xFC,0xE4,0xFC,0x00,0x5C,0xE7,0x06,0x4E,0xE7,0xFA,0x44,0xF7,0x3E, +0x40,0xE7,0xBD,0x40,0xA7,0x2B,0x40,0xE6,0x3D,0x40,0x87,0x23,0x8C,0xA4,0x40,0xA5, +0x30,0x5C,0x65,0x06,0xC0,0xF4,0x00,0x01,0x5C,0xA5,0x04,0xC8,0xE7,0x79,0xC0,0x0C, +0xA7,0x01,0x85,0x29,0xFC,0x21,0xFF,0x50,0xC0,0xE0,0x10,0x01,0xED,0x41,0x00,0xAC, +0xED,0x61,0x00,0xA8,0xED,0x81,0x00,0xA4,0xED,0xA1,0x00,0xA0,0xED,0xC1,0x00,0x9C, +0xED,0xE1,0x00,0x98,0xEE,0x01,0x00,0x94,0xFC,0xE7,0x0C,0x0C,0x10,0xC7,0x04,0x1F, +0x21,0x60,0x11,0xA7,0x01,0x4F,0xA4,0x10,0x41,0xAD,0x33,0x8F,0xB9,0x5D,0xAD,0x00, +0x98,0xC0,0x8A,0xFD,0x8B,0x19,0xE4,0x00,0x00,0x83,0x0C,0x07,0x00,0x9C,0xE4,0xD4, +0xF7,0xFF,0xDE,0x9C,0xC1,0x1E,0xE7,0x08,0xD0,0xC4,0x01,0x7E,0x4F,0x03,0x08,0xC3, +0x40,0x10,0x01,0xC3,0xC0,0x10,0x01,0xFF,0x5A,0x0C,0x24,0xFF,0xDE,0x02,0x8A,0xCD, +0x05,0x00,0x18,0x9D,0xBE,0x41,0x78,0xD4,0x98,0xE0,0xFD,0x81,0x00,0x80,0x89,0x5A, +0x43,0x68,0xF4,0xE4,0x00,0x00,0xFF,0x4C,0xE6,0x18,0x8C,0xF8,0xE7,0xFF,0xFF,0x87, +0x42,0x08,0x34,0x1D,0xE6,0x01,0x8E,0x1E,0x12,0x10,0x00,0xD6,0x17,0x00,0xAE,0x8C, +0xCE,0x4C,0xC6,0x08,0x8C,0xCA,0x08,0xC6,0x01,0x0C,0xDC,0x01,0xE4,0x00,0x00,0x17, +0x5C,0xCF,0x00,0xD5,0xA6,0xFE,0xEC,0x9E,0xE1,0x9F,0x82,0x5E,0xF7,0x00,0xD4,0x97, +0x00,0x51,0x98,0xC2,0xE7,0xFF,0xFF,0xDF,0xCC,0xC7,0x00,0x30,0x8A,0xFB,0x8C,0xCA, +0x4F,0x87,0x08,0xE4,0x00,0x00,0x45,0x09,0xE6,0x01,0x11,0xD7,0x00,0xFE,0x01,0x00, +0x90,0x8D,0xDC,0x9E,0xE1,0x4D,0xCE,0x08,0x8D,0xD0,0x09,0xCE,0xF1,0x41,0xCF,0x75, +0x0D,0xC6,0x01,0x9C,0xC2,0xD4,0xCB,0xFF,0x16,0x9C,0xE1,0x1D,0x66,0x30,0xD0,0xE4, +0x00,0x9A,0x4F,0x87,0x10,0x9A,0xE0,0x8F,0x8C,0xCD,0xC7,0x00,0x18,0xE7,0xFF,0xFF, +0x63,0x43,0xC1,0xC4,0xC1,0x00,0x10,0x01,0xC1,0xE0,0x10,0x01,0xFD,0x08,0x0C,0xB4, +0x8A,0xE1,0xFD,0xEF,0x0C,0x24,0x98,0xE0,0x41,0xC8,0xC4,0x89,0xBE,0x5C,0xC7,0x00, +0x20,0xCC,0x3C,0xCF,0x07,0x00,0x30,0x88,0xD7,0x8F,0x0F,0xE4,0x00,0x00,0x6B,0x88, +0xC8,0x8B,0x97,0xE4,0x00,0x00,0x2B,0x09,0x46,0x01,0xEB,0x06,0xFF,0x71,0x9C,0xC2, +0x43,0x0A,0xC5,0x0F,0x1C,0x01,0x9F,0x82,0xD4,0xCE,0xFF,0x7E,0xE4,0x00,0x00,0x31, +0x09,0x58,0x01,0x0B,0x98,0x31,0x9F,0x02,0x43,0x8A,0xE5,0x0F,0x86,0x01,0x9C,0xC2, +0xD4,0xDE,0xFF,0x86,0x88,0xD7,0x8B,0x9B,0x4F,0x07,0x08,0xE4,0x00,0x00,0x55,0xFD, +0x61,0x00,0x90,0x09,0x86,0x00,0x11,0x5C,0x00,0x9C,0xC2,0x8D,0x58,0x9F,0x81,0x4D, +0x4A,0x10,0x8D,0x4B,0x4D,0x6C,0xFA,0x0E,0x0A,0xD2,0x45,0x8B,0x66,0x41,0x6C,0x5D, +0x8D,0x70,0x0D,0x6A,0xD0,0xD4,0xCD,0xFE,0xD6,0x9C,0xE1,0xD0,0xE4,0xFC,0x16,0x1C, +0xE1,0x60,0x9A,0xE0,0xE4,0x00,0x00,0x17,0x0C,0xC7,0x02,0x9C,0xE4,0x8E,0xE6,0xD4, +0xFD,0xFF,0xCE,0x9C,0x82,0x9B,0x80,0x4C,0x84,0x10,0x98,0xE0,0x8C,0x99,0x98,0xC1, +0x1F,0xA1,0x60,0xE4,0x00,0x00,0x45,0x0F,0xD8,0x02,0x9F,0x04,0x8F,0x3E,0xD7,0x04, +0xFF,0xCE,0xD6,0xF9,0x00,0x41,0x8A,0xF9,0x88,0xE6,0x9C,0xC1,0x9C,0x88,0x5C,0xC6, +0x00,0xD0,0xC4,0x00,0x8A,0x9F,0x81,0x9B,0x20,0x4F,0x1C,0x18,0x8F,0x1D,0xE7,0xFF, +0xFF,0xC1,0x9A,0xE0,0x98,0xC0,0x24,0xEC,0x77,0xC0,0xC0,0x10,0x01,0xC0,0x80,0x10, +0x01,0xFC,0xC6,0x05,0x48,0xFC,0x84,0x05,0x4C,0x8C,0xC7,0x8C,0xE4,0x10,0xC6,0x00, +0x12,0xE7,0x00,0x8B,0x1B,0x4F,0x77,0x08,0xCE,0xF7,0x00,0x30,0xCC,0xE6,0x00,0x30, +0xCC,0xA5,0x00,0x30,0x4F,0x86,0x08,0xC0,0x80,0x10,0x01,0xCC,0xC6,0x00,0x18,0xFC, +0x84,0x0C,0x24,0x8C,0x66,0x8C,0xE4,0x4C,0x63,0x08,0x8C,0x97,0x8F,0x43,0xC2,0xE0, +0x10,0x01,0x9B,0x22,0xFE,0xF7,0x08,0x78,0x8C,0xB7,0xE4,0x00,0x00,0x8D,0x08,0xC7, +0x01,0x12,0xF8,0x00,0xFE,0x01,0x00,0x90,0x43,0xBC,0xBC,0x4F,0xBD,0x08,0x8F,0xB0, +0x0B,0xBD,0xF1,0x8C,0xDD,0x0C,0xC7,0x01,0x08,0xC4,0x01,0x8E,0xFB,0x9F,0x01,0x4E, +0xF7,0x08,0x8E,0xF0,0x0A,0xF7,0xF1,0x8E,0xE6,0x5E,0xF7,0x06,0x0E,0xE4,0x01,0x9C, +0x82,0x08,0xC7,0x00,0x9C,0xE2,0x8E,0xE6,0x42,0xF7,0xC8,0x0E,0xE5,0x01,0x9C,0xA2, +0xD4,0xFA,0xFD,0xF6,0xEE,0x01,0x00,0x96,0xED,0xE1,0x00,0x9A,0xED,0xC1,0x00,0x9E, +0xED,0xA1,0x00,0xA2,0xED,0x81,0x00,0xA6,0xED,0x61,0x00,0xAA,0xED,0x41,0x00,0xAE, +0xFC,0x21,0x00,0xB0,0x85,0x29,0x08,0xE5,0x02,0xD4,0x67,0x00,0x64,0xD4,0x87,0x00, +0xB4,0xE4,0x00,0x00,0x5D,0xD4,0x83,0x00,0x74,0x50,0x80,0x64,0x40,0x63,0x20,0xE4, +0x00,0x00,0x15,0x50,0x60,0x64,0x40,0x64,0x18,0x08,0x85,0x05,0xC0,0xE0,0x10,0x01, +0x40,0x63,0x23,0xFC,0x63,0x00,0xEA,0xEC,0x67,0x05,0x1D,0xE4,0x00,0x00,0x1F,0x50, +0xC0,0xEA,0xC0,0xE0,0x10,0x01,0xEC,0xC7,0x05,0x1D,0x85,0x29,0xC0,0xE0,0x10,0x01, +0x9C,0x30,0xFC,0x87,0x08,0xD8,0x0D,0x41,0x0C,0xF1,0x47,0x08,0xD8,0xC0,0xE0,0x10, +0x01,0xC0,0xA0,0x10,0x01,0xF1,0x07,0x0C,0x10,0x0D,0x61,0x08,0x0D,0x81,0x04,0x9D, +0x5F,0xFC,0xA5,0x09,0x4C,0x98,0xC0,0x98,0xE0,0x9B,0xC1,0xE4,0x00,0x00,0xDD,0x1F, +0x27,0x01,0xCC,0xE7,0x00,0x1C,0x43,0x07,0x24,0xCF,0x99,0x00,0x1C,0x13,0x78,0x06, +0x8A,0xF9,0x5C,0xF9,0x00,0x13,0xB8,0x07,0x8F,0x84,0x43,0x08,0xEB,0x09,0x63,0x00, +0x5F,0x18,0x00,0x11,0x9C,0x07,0x43,0x38,0xDC,0x4F,0x59,0x10,0x8F,0x45,0x0F,0x5A, +0x02,0xD5,0x9D,0x01,0xC6,0x9F,0x62,0x13,0x9C,0x06,0xD7,0x7C,0x01,0x7E,0x8F,0x1B, +0x4F,0x18,0x10,0x8F,0x05,0x0F,0x18,0x02,0xD7,0x1A,0x01,0x0C,0x9F,0x21,0x43,0x5A, +0x58,0x4F,0x39,0x10,0x8F,0x25,0x0F,0x39,0x02,0x43,0x18,0xCD,0xD7,0x58,0x00,0x68, +0x4E,0xFE,0xBC,0x44,0xC6,0xBD,0x5C,0xC6,0x00,0xD5,0x47,0xFC,0xB4,0x0D,0x81,0x06, +0x0D,0x61,0x0A,0x0D,0x41,0x0E,0x88,0x66,0x1C,0x21,0x10,0xE7,0xFF,0xE5,0xDB,0xFC, +0x21,0xFF,0x68,0xED,0x81,0x00,0x88,0xED,0xA1,0x00,0x84,0x0E,0xC1,0x60,0xED,0x21, +0x00,0x94,0xED,0x41,0x00,0x90,0xED,0x61,0x00,0x8C,0xED,0xC1,0x00,0x80,0x0D,0xE1, +0x7C,0x0E,0x01,0x78,0x0E,0x21,0x74,0x0E,0x41,0x70,0x0E,0x61,0x6C,0x0E,0x81,0x68, +0x0E,0xA1,0x64,0xC0,0xF4,0x00,0x01,0xC8,0xC7,0x7A,0x10,0x08,0xA6,0x01,0xC4,0xA5, +0xFE,0xFF,0x0C,0xA6,0x01,0x50,0xC0,0x31,0xC8,0xA7,0x24,0x34,0x0C,0xC5,0x01,0xC8, +0xA7,0x24,0x38,0x0C,0xC5,0x01,0xC8,0xA7,0x24,0x3C,0x0C,0xC5,0x01,0xC8,0xA7,0x24, +0x40,0x0C,0xC5,0x01,0xC8,0x87,0x24,0x14,0xFC,0xC0,0x03,0x03,0xC8,0xA7,0x26,0x24, +0xC8,0xE7,0x26,0x28,0x0C,0xC5,0x01,0xFE,0xC1,0x00,0x98,0xC0,0xA0,0x10,0x01,0x0C, +0x36,0x8C,0xF0,0xA5,0x0C,0x0C,0x89,0x83,0x0C,0xC7,0x01,0x9C,0xAE,0x1C,0xD6,0xC4, +0xC4,0xA5,0x01,0xF8,0x98,0xE0,0x40,0x21,0x2D,0x99,0xA0,0x8B,0x21,0x08,0xA4,0x01, +0x4C,0xA5,0x3E,0x54,0xA5,0x0F,0x18,0xA6,0x00,0x8D,0xA5,0x9C,0xE4,0x5D,0xAD,0x00, +0x9C,0xC1,0x5C,0xE2,0x09,0x23,0xFF,0xA1,0x10,0xF6,0xC5,0x11,0x76,0xC4,0x10,0xD6, +0xC6,0x42,0x27,0x5C,0x9B,0x0C,0x42,0x11,0x34,0x43,0x18,0x5D,0x13,0x76,0xC7,0x52, +0xE0,0x18,0x41,0xE0,0x5D,0x42,0xF7,0x3D,0x41,0xEF,0x3D,0x42,0xF7,0x5D,0x5D,0xEF, +0x00,0x5F,0x18,0x00,0x1C,0x8F,0x24,0x8F,0x70,0x40,0x84,0x35,0x5E,0xF7,0x00,0x88, +0xB9,0x5C,0x84,0x00,0x98,0xE0,0x9B,0x5F,0x8B,0x99,0xE4,0x00,0x00,0x75,0xD5,0x79, +0x01,0x05,0xD6,0x27,0x00,0x58,0x1B,0x05,0x00,0xE4,0x00,0x00,0x31,0xD6,0x07,0x00, +0x58,0x1A,0xE5,0x00,0xE4,0x00,0x00,0x1B,0x5F,0x67,0x15,0x4B,0x3A,0x20,0x1B,0x25, +0x00,0x9F,0x01,0x9E,0xE1,0x9C,0x81,0x9C,0xE1,0x9C,0xA1,0x5F,0x18,0x00,0x5E,0xF7, +0x00,0x5C,0x84,0x00,0x5F,0x27,0x00,0xD5,0xB9,0xFE,0x3D,0xC2,0x54,0x00,0x01,0x40, +0xCF,0x35,0xCA,0xB2,0x24,0x10,0xCC,0xAC,0x00,0x30,0xC0,0xE0,0x10,0x01,0x1C,0x96, +0xC4,0xFC,0xE7,0x08,0x78,0x8B,0x3C,0x5C,0xC6,0x00,0x8C,0xE5,0x99,0x40,0xEC,0x96, +0xFF,0x74,0x1E,0x96,0x95,0x1E,0x76,0xC5,0xCA,0x52,0x22,0x00,0xE4,0x00,0x03,0x2F, +0x18,0x85,0x00,0xEE,0xF6,0xFF,0x76,0x9C,0xA1,0xD4,0xB7,0xFF,0xBE,0x50,0xA0,0x5A, +0x5D,0x40,0x01,0x50,0x80,0x42,0x48,0x84,0x28,0x88,0xB4,0x12,0xE5,0xFF,0x13,0x05, +0x00,0x4F,0x18,0x40,0x47,0x18,0xBD,0x4E,0xE4,0x10,0x8E,0xF2,0x0F,0x17,0x01,0x9C, +0x81,0x9C,0xA2,0x5C,0x84,0x04,0xD4,0xB3,0xFF,0x2E,0x98,0xAC,0x21,0x40,0x14,0x98, +0xAE,0x0C,0xB5,0x01,0x99,0xC0,0x53,0x00,0x3F,0x52,0xE0,0x42,0x50,0xA0,0x5A,0x8B, +0xB9,0x98,0x60,0x88,0x8C,0x0C,0xB6,0x80,0xEC,0xD6,0xFF,0x6C,0xEC,0xF6,0xFF,0x78, +0x0E,0xF6,0x84,0x0F,0x16,0x88,0xEF,0xB6,0xFF,0x7C,0xE4,0x00,0x47,0x00,0xC0,0x80, +0x10,0x01,0xF0,0x64,0x04,0xE9,0xC0,0x80,0x10,0x01,0xEC,0xF6,0xFF,0x7A,0xEF,0xC4, +0x04,0xD2,0xEC,0xD6,0xFF,0x6E,0xEF,0xB6,0xFF,0x7E,0x8B,0x47,0x8B,0x86,0x8B,0x6F, +0x9B,0x20,0x98,0x81,0xEF,0xB6,0xFF,0x70,0x0C,0xB6,0x82,0x0E,0xF6,0x86,0x0F,0x16, +0x8A,0xE4,0x00,0x01,0x55,0x20,0x60,0xC4,0x89,0x1D,0xD5,0x7D,0x00,0xA5,0x43,0xBD, +0x5D,0x5D,0x1D,0x00,0xD6,0x39,0x00,0x54,0x5E,0x19,0x15,0x49,0x1C,0xD8,0x23,0xC0, +0x60,0x8D,0x1E,0x13,0xA8,0x00,0x23,0xA0,0x40,0x09,0x1A,0x00,0xCD,0x08,0x00,0xFF, +0x43,0xA8,0xE8,0x0F,0xBA,0x01,0x0B,0xBA,0x00,0x4D,0x1D,0xFA,0x45,0x28,0xEE,0x41, +0x09,0x45,0xC1,0x00,0x32,0x08,0x20,0x01,0x5D,0x50,0x80,0xCD,0x43,0xBD,0x20,0xEC, +0x96,0xFF,0x72,0x8C,0x99,0x11,0x04,0x00,0x1C,0x96,0xC8,0x8C,0x88,0x11,0x24,0xCC, +0x8F,0xA9,0x55,0x29,0x20,0x5F,0xBD,0x04,0x5C,0x9D,0x06,0x5C,0x83,0xF1,0x20,0x00, +0x35,0x21,0x20,0x72,0x1C,0x9D,0x0C,0xE4,0x00,0x00,0x15,0x21,0x20,0x24,0x1C,0x9D, +0xF4,0x5C,0x84,0x06,0x24,0x9C,0x26,0x98,0x80,0xE4,0x00,0x00,0x15,0x5C,0x87,0xF1, +0x48,0x84,0xC0,0x1F,0xB6,0xC8,0x8D,0x1D,0x18,0x88,0xCC,0x98,0x80,0x9F,0x61,0x9F, +0x81,0x9F,0x21,0x9F,0x42,0x5F,0x7B,0x00,0x5F,0x9C,0x00,0x5F,0xB9,0x00,0xD5,0xBD, +0xFA,0xBD,0x5D,0x40,0x01,0xEF,0xB6,0xFF,0x72,0x4B,0x57,0x28,0x8B,0x34,0x13,0x79, +0xFF,0x13,0x99,0x00,0x4F,0x9C,0x40,0x47,0x9C,0xDD,0x4F,0x7A,0x10,0x8F,0x72,0x0F, +0x9B,0x01,0x9F,0x41,0x9F,0x22,0x5F,0x5A,0x04,0xD7,0x33,0xFF,0x2E,0x20,0x84,0x30, +0x9D,0xC1,0x5D,0xCE,0x00,0xD1,0xC3,0xF6,0x66,0x9D,0x41,0x8B,0x3D,0x5D,0x4A,0x00, +0x21,0x48,0x34,0x1C,0xB6,0x94,0x50,0x80,0x10,0xE7,0xFF,0xFC,0xCF,0xC1,0x74,0x00, +0x01,0xC8,0xEB,0x24,0x10,0x88,0x6C,0x0D,0x47,0x01,0xE4,0x00,0xB3,0x24,0x98,0x61, +0x88,0x8C,0xE4,0x00,0x44,0x70,0x98,0x61,0xE4,0x00,0x6A,0xE4,0x21,0x80,0xBE,0xC0, +0xE0,0x10,0x01,0xC9,0x6B,0x23,0x08,0xFC,0xE7,0x08,0x18,0x08,0xCB,0x01,0x0C,0xC7, +0x01,0x08,0xCB,0x61,0x0C,0xC7,0x19,0xC0,0x94,0x00,0x01,0x9D,0x64,0x9C,0xE2,0xC8, +0x84,0x23,0x38,0xD5,0x64,0xFF,0x46,0xE4,0x00,0x00,0x5F,0x21,0x84,0xAE,0xC0,0xE0, +0x10,0x01,0xC9,0x6B,0x23,0x08,0xFC,0xE7,0x07,0xE8,0x08,0xCB,0x01,0x0C,0xC7,0x01, +0x08,0xCB,0x61,0x0C,0xC7,0x19,0xC0,0xB4,0x00,0x01,0x9D,0x64,0x9C,0xE2,0xC8,0xA5, +0x23,0x38,0xD5,0x65,0xFF,0x46,0x0C,0x36,0x8E,0x0E,0xC1,0x62,0x0E,0xA1,0x66,0x0E, +0x81,0x6A,0x0E,0x61,0x6E,0x0E,0x41,0x72,0x0E,0x21,0x76,0x0E,0x01,0x7A,0x0D,0xE1, +0x7E,0xED,0xC1,0x00,0x82,0xED,0xA1,0x00,0x86,0xED,0x81,0x00,0x8A,0xED,0x61,0x00, +0x8E,0xED,0x41,0x00,0x92,0xED,0x21,0x00,0x96,0xFC,0x21,0x00,0x98,0x85,0x29,0x1C, +0x21,0x90,0x0D,0x41,0x68,0x0D,0x61,0x64,0x0D,0xA1,0x5C,0x0D,0xC1,0x58,0x0D,0xE1, +0x54,0x0E,0x61,0x44,0x0E,0xA1,0x3C,0x0E,0xC1,0x38,0xC2,0x60,0x10,0x01,0xC2,0xA0, +0x10,0x01,0x0D,0x21,0x6C,0x0D,0x81,0x60,0x0E,0x01,0x50,0x0E,0x21,0x4C,0x0E,0x41, +0x48,0x0E,0x81,0x40,0x0C,0x61,0x08,0x0C,0x81,0x0C,0x0C,0xC1,0x10,0x0C,0xE1,0x14, +0xFD,0x73,0x08,0xD8,0xFE,0xB5,0x04,0xEA,0x99,0xE1,0x99,0x40,0x51,0xC0,0xFF,0x99, +0xA1,0xC2,0xC0,0x10,0x01,0xE4,0x00,0x06,0x9D,0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10, +0x01,0xFC,0xC6,0x05,0x40,0xF0,0x87,0x0C,0x0C,0x0C,0x66,0x02,0x98,0xA1,0xE4,0x00, +0x62,0xEC,0xCC,0xEC,0x00,0x1C,0x8C,0xEB,0x08,0xC7,0x16,0x0C,0xC1,0x20,0x08,0xC7, +0x18,0x0C,0x01,0x24,0x0C,0x01,0x1C,0x0C,0x01,0x2C,0x0C,0xC1,0x18,0x0C,0xC7,0x0E, +0x0C,0xC1,0x28,0x0C,0xC7,0x0A,0x12,0x47,0x04,0x12,0x27,0x05,0x12,0x07,0x07,0x20, +0xC0,0x2A,0x4D,0x8D,0x64,0xE4,0x00,0x05,0xE7,0x20,0xC4,0xFE,0xF0,0xB3,0x08,0xD8, +0x88,0xEF,0xE4,0x00,0x00,0x5D,0xCC,0xC7,0x00,0x1C,0x1C,0x87,0x01,0x8C,0xCB,0x12, +0xE6,0x07,0x42,0xED,0xBD,0xD6,0x17,0x00,0xC6,0x0E,0xE6,0x0A,0x22,0xE4,0x46,0x12, +0xE6,0x05,0xD6,0xF2,0x00,0x59,0x10,0xC6,0x04,0xD6,0x26,0x19,0x85,0x5C,0xE4,0x00, +0xD4,0xA7,0xFE,0xB5,0xE4,0x00,0x00,0xA1,0x9A,0x20,0xD0,0xC2,0x0B,0x76,0xF0,0x93, +0x08,0xD8,0x88,0xCF,0xE4,0x00,0x00,0x71,0xC3,0x00,0x10,0x01,0xFF,0x18,0x08,0xD8, +0xCC,0xA6,0x00,0x1C,0x1E,0xE6,0x01,0x8C,0xB8,0x13,0x05,0x07,0x43,0x0D,0xC5,0xD6, +0x18,0x00,0xD6,0x0F,0x05,0x0A,0x23,0x08,0x4E,0x10,0xA5,0x06,0x13,0x07,0x06,0xD7, +0x05,0x00,0x56,0x89,0xC6,0xE4,0x00,0x05,0xCD,0x5C,0xD7,0x00,0xD4,0x86,0xFE,0x65, +0xE4,0x00,0x02,0x15,0x40,0xCD,0x85,0xC0,0xE0,0x10,0x01,0x0C,0xC1,0x04,0xE9,0x07, +0x04,0x8D,0x5E,0x86,0x00,0x55,0x08,0x40,0x1C,0x61,0x36,0x4D,0x08,0x31,0x88,0x92, +0x88,0xB1,0x88,0xD4,0x98,0xE2,0xE7,0xFF,0xDF,0x80,0xD0,0x60,0x06,0x9A,0xC3,0x00, +0x10,0x01,0xE8,0xF8,0x04,0x8D,0x54,0xE7,0x80,0x20,0xE1,0x60,0xC0,0xC0,0x10,0x01, +0x1C,0x61,0x30,0xEE,0xE6,0x00,0xDE,0x08,0x81,0x36,0x88,0xB2,0x88,0xD1,0x88,0xF4, +0x86,0xE8,0xD0,0x60,0x05,0x5A,0x98,0x60,0xE7,0xFF,0xD4,0x0E,0x0C,0xE1,0x06,0x0F, +0x01,0x16,0xC0,0xC0,0x10,0x01,0x9C,0xE3,0x4C,0xE7,0x18,0x8C,0xF8,0x0C,0x87,0x0A, +0x08,0xE7,0x04,0x40,0x84,0x3D,0x5C,0x9F,0xF9,0x0C,0x61,0x32,0xEE,0xE6,0x00,0xE2, +0x48,0x84,0x00,0x88,0xB2,0x88,0xD1,0x88,0xF4,0x86,0xE8,0x98,0x61,0xE7,0xFF,0xD3, +0xA4,0x88,0xB2,0x88,0xD1,0x88,0xF4,0x1C,0x61,0x34,0x1C,0x81,0x2C,0xE7,0xFF,0xD6, +0x6A,0x20,0x61,0x70,0x08,0xE1,0x36,0x0C,0xE1,0x24,0x08,0xE1,0x34,0x0C,0xE1,0x1C, +0x0C,0xE1,0x0A,0x20,0xE0,0x78,0x0F,0x01,0x0E,0x23,0x00,0x60,0xC0,0xC0,0x10,0x01, +0x1C,0x61,0x24,0xEC,0xE6,0x00,0xDA,0x1C,0x81,0x1C,0x0C,0xA1,0x2E,0x88,0xD5,0x84, +0xE8,0x0C,0xC1,0x1E,0x5C,0xDF,0xF9,0xC8,0xE0,0x07,0xFF,0x48,0xC6,0x00,0xC0,0xC0, +0xFF,0xE8,0x48,0xC6,0x38,0xCC,0xC6,0x03,0xFF,0x9A,0x20,0x40,0xE6,0x38,0x40,0xCD, +0x85,0x4C,0xC6,0x50,0x8C,0xE6,0x0C,0xE1,0x1C,0xE4,0x00,0x00,0x5F,0x0C,0x01,0x24, +0x0C,0x01,0x1C,0x0C,0x01,0x2C,0xE4,0x00,0x02,0xD1,0x4C,0xED,0x64,0xCD,0x8C,0x00, +0x1C,0x45,0x4A,0x3D,0xC0,0xE0,0x10,0x01,0x5D,0x4A,0x00,0xFC,0xE7,0x08,0xD8,0x8D, +0x87,0x0C,0x0C,0x08,0xE4,0x00,0x02,0x95,0xE8,0xF6,0x04,0x8B,0x54,0xE7,0x02,0x20, +0xE0,0x40,0x0C,0x61,0x2A,0x0C,0x81,0x2E,0x0C,0xA1,0x12,0xE7,0xFF,0xF1,0xB6,0xEA, +0x56,0x04,0x8B,0x0C,0xA1,0x2A,0x56,0x52,0x01,0x22,0x40,0x88,0xCC,0xEC,0x00,0x1C, +0x8C,0xEB,0x08,0x61,0x18,0x0D,0x07,0x0A,0x08,0x81,0x1C,0x0C,0xC1,0x2E,0x98,0xE0, +0xE7,0xFF,0xE9,0x5A,0x20,0x60,0xFE,0xE4,0x00,0x01,0xC1,0xD0,0xA0,0x06,0xE0,0x0C, +0xE1,0x2E,0xD0,0xE0,0x06,0xA8,0x10,0xD5,0x34,0x40,0x86,0x3B,0xD4,0x85,0x06,0x58, +0x40,0xA6,0x2B,0xD4,0xA7,0x06,0x20,0x0C,0xE1,0x1E,0x0C,0xC1,0x1A,0x08,0xB5,0x33, +0x40,0xC6,0x3D,0x4C,0xA5,0x08,0x4C,0xE6,0xFA,0x44,0xC7,0x36,0x40,0xE6,0x3D,0xD4, +0xA7,0x05,0x40,0x0C,0x61,0x2A,0x0C,0x81,0x2E,0xCE,0x8C,0x00,0x1C,0x40,0xE4,0x1C, +0x8E,0x8B,0x0C,0xF4,0x0C,0x0C,0xC1,0x1E,0x0C,0xA1,0x1A,0x22,0x40,0xA8,0x88,0xF0, +0xE7,0xFF,0xE9,0xAC,0x0C,0x81,0x26,0x0C,0xE1,0x2A,0x0C,0xC1,0x2E,0x0C,0x74,0x19, +0x40,0xA6,0x3C,0x40,0xC6,0x23,0x0C,0x81,0x22,0x40,0xE7,0x23,0x8C,0xE6,0x40,0xE7, +0x28,0xE4,0x00,0x00,0x47,0x40,0xC4,0x33,0x40,0xA3,0x2B,0x8C,0xC5,0x40,0xC6,0x38, +0x0C,0xD4,0x19,0x0C,0xC1,0x26,0x40,0x84,0x33,0x0C,0xC1,0x22,0x40,0x63,0x33,0x8C, +0x83,0x40,0xE4,0x38,0x0C,0xF4,0x17,0xCD,0x8C,0x00,0x1C,0x8D,0x8B,0x0C,0xEC,0x0A, +0x20,0xE4,0x86,0x9B,0x02,0x0F,0x0C,0x08,0x22,0x21,0x58,0x4C,0xE7,0x74,0x45,0x4A, +0x3D,0xCC,0xEE,0x00,0x1C,0x5D,0x4A,0x00,0x8C,0xEB,0x0C,0x07,0x08,0xE4,0x00,0x00, +0x83,0x20,0xE8,0xF6,0xCC,0xEE,0x00,0x1C,0x8C,0xEB,0x0C,0x07,0x08,0x4C,0xED,0x74, +0x45,0x4A,0x3D,0xE4,0x00,0x00,0x51,0xCC,0xEC,0x00,0x1C,0x8C,0xEB,0x0C,0xC7,0x0A, +0x20,0xC8,0x7A,0x0C,0x07,0x08,0x4D,0x8D,0x64,0xCC,0xEE,0x00,0x1C,0x45,0x4A,0x65, +0x8C,0xEB,0x4D,0x8D,0x74,0x0C,0x07,0x08,0x45,0x4C,0x55,0x5D,0x4A,0x00,0x9D,0xE1, +0x5D,0xEF,0x00,0x1D,0x8F,0xFF,0xC2,0x00,0x10,0x01,0x5D,0x8C,0x00,0xF0,0xF3,0x08, +0xD8,0xD4,0xEC,0xE5,0x45,0x50,0x80,0x1E,0x98,0xA1,0xC0,0x60,0x10,0x01,0xFC,0x63, +0x0A,0x30,0xE4,0x00,0x5C,0x44,0x88,0x6A,0xE7,0xFF,0xD6,0xC0,0xF0,0xF0,0x08,0xD8, +0x0E,0xC1,0x3A,0x5C,0xE0,0x53,0x0E,0xA1,0x3E,0x48,0xE7,0x12,0x0E,0x81,0x42,0xF8, +0xF0,0x08,0xD8,0x0E,0x61,0x46,0x0E,0x41,0x4A,0x0E,0x21,0x4E,0x0E,0x01,0x52,0x0D, +0xE1,0x56,0x0D,0xC1,0x5A,0x0D,0xA1,0x5E,0x0D,0x81,0x62,0x0D,0x61,0x66,0x0D,0x41, +0x6A,0x0D,0x21,0x6E,0x1C,0x21,0x70,0x85,0x29,0x89,0xC7,0xCC,0xEE,0x00,0x1C,0x8C, +0xEB,0x0C,0xC7,0x0E,0x9A,0x21,0x0C,0xC1,0x2C,0x08,0xC7,0x16,0x08,0xE7,0x18,0x0C, +0xC1,0x24,0x0C,0xE1,0x1C,0xE7,0xFF,0xFC,0x67,0x1C,0x21,0xB8,0x0D,0x81,0x38,0x0D, +0xE1,0x2C,0x0E,0x41,0x20,0x0E,0xC1,0x10,0x0D,0x21,0x44,0x0D,0x41,0x40,0x0D,0x61, +0x3C,0x0D,0xA1,0x34,0x0D,0xC1,0x30,0x0E,0x01,0x28,0x0E,0x21,0x24,0x0E,0x61,0x1C, +0x0E,0x81,0x18,0x0E,0xA1,0x14,0x1E,0xC1,0x48,0x0C,0x36,0xC4,0x0C,0x96,0xBC,0x0C, +0xD6,0xC0,0xC0,0xE0,0x10,0x01,0x89,0xE3,0xF0,0xE7,0x0C,0x10,0x8A,0x45,0x4C,0xE7, +0x10,0x9C,0xEE,0xC4,0xE7,0x07,0xF8,0x40,0x21,0x3D,0x89,0x81,0x20,0xA8,0x2A,0x0A, +0x23,0x2E,0xE4,0x00,0x00,0x0F,0x0A,0x23,0x22,0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10, +0x01,0xF0,0xA7,0x0C,0x10,0xFC,0xC6,0x09,0x4C,0x4C,0xA5,0x10,0x88,0xEC,0x8C,0xA6, +0xCA,0x00,0x20,0x00,0x8A,0xE5,0xE4,0x00,0x00,0x71,0x22,0x48,0x3E,0x0F,0x05,0x02, +0x0C,0x86,0x02,0x8C,0x98,0xE4,0x00,0x00,0x29,0x0C,0x96,0xBE,0x20,0x80,0x2A,0x0C, +0x86,0x02,0xE4,0x00,0x00,0x0F,0x0C,0x85,0x02,0x0C,0x87,0x00,0x9C,0xC4,0x0C,0x87, +0x02,0x9C,0xA4,0x5E,0x04,0x15,0x9C,0xE4,0x4A,0x10,0x20,0x5E,0x10,0x06,0xD4,0xD7, +0xFE,0x66,0x5E,0x1F,0xF9,0xC2,0x80,0x10,0x01,0xC1,0xC0,0x10,0x01,0x4A,0x10,0x00, +0xFE,0x94,0x0C,0x0C,0x99,0x40,0x9A,0x60,0x99,0x60,0xFD,0xAE,0x08,0xD8,0x9A,0xA2, +0xE4,0x00,0x06,0x15,0x22,0x48,0xCA,0xC0,0xA0,0x10,0x01,0xFC,0xA5,0x05,0x44,0xF0, +0x8E,0x08,0xD8,0x0C,0xC5,0x02,0x98,0xA0,0xE4,0x00,0x00,0x35,0x9C,0xA1,0x12,0xE6, +0x00,0x5C,0xA5,0x00,0xD6,0xEA,0x00,0x5D,0x12,0xE6,0x01,0xD5,0x57,0x12,0x21,0x1C, +0xC6,0x1C,0xD4,0x85,0xFF,0x55,0x21,0x41,0x66,0x0C,0xEC,0x02,0x08,0xCF,0x22,0xD4, +0xC7,0x11,0x84,0x0C,0xCC,0x06,0xD4,0xE6,0x00,0x7C,0xD4,0xE6,0x11,0x2E,0x0C,0xCC, +0x0A,0xD4,0xE6,0x10,0xF0,0x98,0x60,0x88,0x8C,0x88,0xB0,0x88,0xD1,0x08,0xEF,0x26, +0x09,0x0F,0x28,0xE7,0xFF,0xCA,0x14,0xD0,0x60,0x10,0x42,0xF0,0xEE,0x08,0xD8,0x8C, +0xEB,0xCC,0xE7,0x00,0x1C,0x8C,0xED,0x99,0x41,0x18,0x07,0x04,0xF0,0xEE,0x08,0xD8, +0x8C,0xEB,0xCC,0xE7,0x00,0x1C,0x8C,0xED,0x18,0x07,0x06,0xE4,0x00,0x00,0xC5,0x21, +0x45,0xC6,0x0C,0xEC,0x06,0x08,0xCF,0x22,0xD4,0xC7,0x0E,0xBC,0x0C,0xCC,0x02,0xD4, +0xC7,0x0E,0x84,0x0C,0xCC,0x0A,0xD4,0xE6,0x00,0x7C,0xD4,0xE6,0x0E,0x2E,0x0C,0xCC, +0x0E,0xD4,0xE6,0x0D,0xF0,0x98,0x61,0x88,0x8C,0x88,0xB0,0x88,0xD1,0x08,0xEF,0x26, +0x09,0x0F,0x28,0xE7,0xFF,0xC9,0x54,0xD0,0x60,0x0D,0x42,0xF0,0xEE,0x08,0xD8,0x8C, +0xEB,0xCC,0xE7,0x00,0x1C,0x8C,0xED,0x98,0xC1,0x18,0x07,0x04,0x99,0x42,0xF0,0xEE, +0x08,0xD8,0x8C,0xEB,0xCC,0xE7,0x00,0x1C,0x8C,0xED,0x18,0xC7,0x06,0xF0,0xEE,0x08, +0xD8,0x8C,0xEB,0xCC,0xE7,0x00,0x1C,0x8C,0xED,0x1A,0xA7,0x05,0xE4,0x00,0x02,0xFF, +0x25,0x45,0xD1,0x1C,0xC7,0xFE,0xD4,0xCA,0x03,0x70,0x4C,0xEA,0x10,0x08,0xCF,0x22, +0x8C,0xEC,0x0C,0xE7,0x02,0xD4,0xC7,0x0A,0xD4,0x1C,0xCA,0xFF,0x4C,0xC6,0x10,0x8C, +0xCC,0x0C,0xC6,0x02,0xD4,0xE6,0x01,0x34,0xD4,0xE6,0x0A,0x3E,0x1C,0xAA,0xFE,0x4C, +0xA5,0x10,0x8C,0xAC,0x0C,0xA5,0x02,0xD4,0xE5,0x09,0xC0,0x1C,0x8A,0x01,0x4C,0x84, +0x10,0x8C,0x8C,0x0C,0x84,0x02,0xD4,0x85,0x09,0x48,0x1C,0xAA,0x01,0x4C,0xA5,0x10, +0x8C,0xAC,0x0C,0xA5,0x02,0xD4,0xE5,0x03,0x2C,0xD4,0xE5,0x08,0xB6,0x1C,0xAA,0x02, +0x4C,0xA5,0x10,0x8C,0xAC,0x0C,0xA5,0x02,0xD4,0xE5,0x08,0x38,0xD4,0xC5,0x08,0x18, +0xE4,0x00,0x00,0x95,0x1C,0x87,0xFE,0x08,0xAF,0x22,0x4C,0xCA,0x10,0xD5,0x44,0x03, +0xF6,0x8C,0xCC,0x0C,0xC6,0x02,0xD4,0xA6,0x07,0x4C,0x1C,0xA7,0xFF,0x4C,0xA5,0x10, +0x8C,0xAC,0x0C,0xA5,0x02,0xD4,0xA6,0x06,0xD4,0x1C,0xA7,0xFD,0x4C,0xA5,0x10,0x8C, +0xAC,0x0C,0xA5,0x02,0xD4,0xC5,0x00,0xB4,0xD4,0xC5,0x06,0x3E,0x9C,0xFC,0x4C,0xE7, +0x10,0x8C,0xEC,0x0C,0xE7,0x02,0xD4,0xC7,0x05,0xC8,0x88,0x6A,0x88,0x8C,0x88,0xB0, +0x88,0xD1,0x08,0xEF,0x26,0x09,0x0F,0x28,0xE7,0xFF,0xC7,0x4A,0xD0,0x60,0x05,0x1A, +0xF0,0xCE,0x08,0xD8,0x8C,0xCB,0xCC,0xC6,0x00,0x1C,0x8C,0xCD,0x1C,0xAA,0xFF,0x1C, +0xEA,0x01,0x18,0xA6,0x04,0xF0,0xCE,0x08,0xD8,0x8C,0xCB,0xCC,0xC6,0x00,0x1C,0x8C, +0xCD,0x19,0x46,0x06,0x5D,0x47,0x00,0xE4,0x00,0x00,0xCB,0x8C,0xCC,0x0C,0xE6,0x02, +0xD4,0xA7,0x03,0x7C,0x1C,0xCA,0xFF,0x4C,0xC6,0x10,0x8C,0xCC,0x0C,0xC6,0x02,0xD4, +0xE6,0x00,0xBC,0xD4,0xE6,0x02,0xE6,0x1C,0xCA,0xFE,0x4C,0xC6,0x10,0x8C,0xCC,0x0C, +0xC6,0x02,0xD4,0xE6,0x02,0x68,0x88,0x6A,0x88,0x8C,0x88,0xB0,0x88,0xD1,0x08,0xEF, +0x26,0x09,0x0F,0x28,0xE7,0xFF,0xC6,0x72,0x20,0x60,0xDC,0xF0,0xEE,0x08,0xD8,0x8C, +0xEB,0xCC,0xE7,0x00,0x1C,0x8C,0xED,0x1C,0xCA,0xFE,0x18,0xC7,0x04,0xF0,0xEE,0x08, +0xD8,0x8C,0xEB,0xCC,0xE7,0x00,0x1C,0x8C,0xED,0x19,0x47,0x06,0xF0,0xEE,0x08,0xD8, +0x8C,0xEB,0xCC,0xE7,0x00,0x1C,0x8C,0xED,0x19,0x47,0x05,0xE4,0x00,0x00,0x21,0x9D, +0x41,0x5D,0x4A,0x00,0x10,0xF4,0x04,0xD4,0xEA,0xEC,0x6D,0x10,0xF4,0x04,0xD4,0xEA, +0x04,0x61,0xF0,0xEE,0x08,0xD8,0x8C,0xEB,0xCC,0xC7,0x00,0x1C,0x8C,0xCD,0x10,0xC6, +0x05,0xD5,0x46,0x00,0x55,0x1D,0x46,0x01,0x5D,0x4A,0x00,0xCC,0xE7,0x00,0x1C,0x8C, +0xED,0x0C,0x96,0xBE,0x18,0x87,0x07,0xF0,0xEE,0x08,0xD8,0x8C,0xEB,0xCC,0xE7,0x00, +0x1C,0x8C,0xED,0x0E,0x47,0x08,0x9D,0x61,0x5D,0x6B,0x00,0x8A,0x6B,0x22,0x49,0x36, +0xF0,0xEE,0x08,0xD8,0x8C,0xEB,0x1C,0x87,0xFF,0xCC,0xE7,0x00,0x1C,0x50,0xA0,0x1C, +0x40,0x67,0x6C,0xCC,0x84,0x00,0x1C,0x9C,0x64,0x8C,0x8D,0x9C,0x84,0xE7,0xFF,0xCF, +0xE6,0x1C,0xCB,0x01,0xF0,0xEE,0x08,0xD8,0x98,0xA1,0x8C,0xEB,0x5D,0x66,0x00,0x1C, +0xC7,0xFF,0x4E,0x6B,0x09,0xCC,0xC6,0x00,0x1C,0xCC,0xE7,0x00,0x1C,0x8C,0xCD,0x8C, +0xED,0x10,0xC6,0x07,0x40,0xC5,0x35,0x18,0xC7,0x07,0x10,0xF4,0x04,0xD4,0xEA,0x00, +0x71,0x0C,0xB6,0xC2,0x40,0xF3,0x2C,0xD0,0xE1,0xFA,0xE8,0xC0,0xE0,0x10,0x01,0xF0, +0xC7,0x08,0xD8,0x8D,0x66,0x88,0x73,0xF9,0x67,0x08,0xD8,0x0C,0x36,0xC6,0x0E,0xC1, +0x12,0x0E,0xA1,0x16,0x0E,0x81,0x1A,0x0E,0x61,0x1E,0x0E,0x41,0x22,0x0E,0x21,0x26, +0x0E,0x01,0x2A,0x0D,0xE1,0x2E,0x0D,0xC1,0x32,0x0D,0xA1,0x36,0x0D,0x81,0x3A,0x0D, +0x61,0x3E,0x0D,0x41,0x42,0x0D,0x21,0x46,0x1C,0x21,0x48,0x85,0x29,0x1C,0x21,0xE0, +0x0D,0x21,0x1C,0x0D,0x41,0x18,0x0D,0x61,0x14,0x0D,0x81,0x10,0x0D,0xA1,0x0C,0x0D, +0xC1,0x08,0x0E,0xC1,0x04,0xC1,0x80,0x10,0x01,0xF8,0x0C,0x08,0xD8,0xFC,0xEC,0x08, +0xD8,0x98,0xDF,0x89,0x63,0x18,0xC7,0x5B,0x18,0xC7,0x06,0x18,0xC7,0x07,0x18,0xC7, +0x22,0x18,0xC7,0x23,0x18,0xC7,0x3E,0x18,0xC7,0x3F,0x18,0xC7,0x5A,0x0C,0x07,0x08, +0x0C,0x07,0x24,0x0C,0x07,0x40,0x0C,0x07,0x5C,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x0C, +0x0C,0x10,0x67,0x04,0x10,0xE7,0x01,0x40,0x67,0x1B,0x9C,0xEE,0xC4,0xE7,0x01,0xF8, +0x1E,0xC1,0x20,0x89,0xC4,0x5C,0x63,0x00,0x89,0xA1,0x40,0x21,0x3D,0xE4,0x00,0x82, +0x88,0x98,0x80,0x98,0xA1,0x98,0xC0,0x18,0x01,0x00,0x88,0x6B,0xE7,0xFF,0xF6,0x9A, +0x98,0x81,0x18,0x61,0x00,0x18,0x01,0x01,0x88,0x6B,0x98,0xA1,0x98,0xC0,0xE7,0xFF, +0xF6,0x76,0x18,0x61,0x01,0xC0,0xE0,0x10,0x01,0x89,0x41,0xE8,0xE7,0x04,0x8B,0x54, +0xE7,0x04,0x20,0xE0,0x40,0xF0,0xEC,0x08,0xD8,0x24,0xE4,0x25,0x88,0x6E,0xE7,0xFF, +0xE4,0xFC,0xC0,0xE0,0x10,0x01,0xF0,0xE7,0x0C,0x0D,0x24,0xE4,0xC9,0x10,0xEA,0x00, +0x24,0xE4,0xB3,0x10,0xCA,0x01,0x24,0xC4,0x9B,0x5C,0xE6,0x1F,0x88,0x6B,0x48,0xC7, +0x30,0x98,0x80,0x5C,0xC6,0x00,0x98,0xA2,0xE7,0xFF,0xF5,0xE2,0x10,0xEA,0x00,0x8C, +0xE3,0x18,0xEA,0x00,0x10,0xEA,0x01,0x8C,0x67,0x18,0x6A,0x01,0x88,0x2D,0x0E,0xC1, +0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E,0x0D,0x81,0x12,0x0D,0x61,0x16,0x0D,0x41,0x1A, +0x0D,0x21,0x1E,0x1C,0x21,0x20,0x85,0x29,0xC0,0xE0,0x10,0x01,0xF8,0x67,0x00,0xE4, +0x85,0x29,0x0B,0xC5,0x12,0x08,0xC5,0x00,0x0A,0xE5,0x02,0x0B,0x05,0x04,0x0B,0x25, +0x06,0x0B,0x45,0x08,0x0B,0x65,0x0A,0x0B,0x85,0x0C,0x0B,0xA5,0x0E,0x88,0xE3,0x08, +0xA5,0x10,0x20,0x84,0x34,0x8B,0x5E,0x8B,0x25,0x8B,0x1D,0x8A,0xFC,0x88,0xDB,0xC0, +0xA0,0x10,0x01,0x9B,0x62,0xE8,0x85,0x0C,0x17,0x40,0xB9,0x23,0x40,0xA5,0xD8,0x40, +0xA0,0x2D,0xFC,0xA5,0x03,0xFF,0xD4,0xE5,0x00,0xC8,0x43,0x3A,0x23,0x5C,0x66,0x04, +0x43,0x79,0xD8,0xFF,0x7B,0x03,0xFF,0xD7,0x67,0x03,0xCC,0xD4,0xE5,0x00,0xBC,0x24, +0xFC,0x4C,0x40,0xC6,0x3B,0x40,0xE5,0x3D,0x43,0x07,0xC3,0x40,0x78,0x34,0xE4,0x00, +0x00,0x73,0x98,0xA2,0x43,0x5A,0x23,0x43,0x5A,0x28,0xFC,0xBA,0x03,0xFF,0xD4,0xA7, +0x01,0x9C,0xC0,0xE0,0xFF,0xEC,0x20,0x00,0xAD,0x43,0x40,0xD5,0xFC,0xBA,0x04,0x00, +0xFF,0x5A,0xFC,0x01,0x40,0x7A,0x3C,0x42,0xE3,0xBB,0xC8,0x60,0x07,0xFF,0x40,0xE3, +0x3D,0x40,0xC6,0x3B,0x40,0x77,0x34,0x40,0x63,0x28,0x5C,0x63,0x04,0xE4,0x00,0x00, +0x47,0x24,0xFC,0x3E,0x8C,0xE4,0x43,0x18,0x3B,0x40,0x98,0x20,0xE4,0x00,0x00,0x23, +0xFF,0x84,0x07,0xFF,0x40,0xFC,0x3D,0x42,0xF7,0x3B,0x40,0x97,0x20,0x5C,0x64,0x04, +0x85,0x29,0x9C,0x38,0xC0,0xE0,0x10,0x01,0x0C,0x01,0x04,0xFC,0xE7,0x0C,0x0C,0x10, +0xC7,0x14,0x08,0xA7,0x0B,0xC0,0xE0,0x10,0x01,0x5C,0x85,0x06,0xE8,0xE7,0x07,0x24, +0x40,0xE4,0x3B,0x40,0xE7,0x30,0xD4,0x67,0x00,0x4C,0x98,0xE1,0x0C,0xE1,0x04,0x0C, +0xE1,0x06,0x20,0xE0,0x82,0xC0,0xE0,0x10,0x01,0xE8,0xE7,0x07,0x26,0x40,0xE5,0x3B, +0x40,0xE7,0x30,0xD4,0xE3,0x00,0x78,0x98,0xE1,0x0C,0xE1,0x04,0x98,0xE0,0xE4,0x00, +0x00,0x0D,0x98,0xFF,0x0C,0x81,0x06,0x20,0x81,0x32,0xC0,0xE0,0x10,0x01,0xC0,0x80, +0x10,0x01,0xF3,0x07,0x0C,0x10,0xFC,0x84,0x07,0x26,0x9A,0xE0,0x98,0xE1,0xE4,0x00, +0x00,0x5F,0x0B,0x44,0x00,0x1F,0x27,0x01,0x43,0x45,0xD3,0x43,0x5A,0x30,0xD7,0x43, +0x00,0xD4,0x0B,0x44,0x02,0x43,0x5A,0x2B,0x43,0x5A,0x30,0xD7,0x43,0x00,0x68,0x98, +0x81,0x0C,0x81,0x04,0xE4,0x00,0x00,0x1F,0x5C,0xF9,0x02,0x9C,0x82,0x9E,0xE1,0xD6, +0xF8,0xFE,0x98,0x0C,0x81,0x06,0x20,0x80,0xBE,0xC0,0x80,0x10,0x01,0xC2,0xE0,0x10, +0x01,0xF0,0x84,0x0C,0x10,0xFE,0xF7,0x07,0x24,0x9C,0x81,0x4F,0x04,0x08,0x8E,0xF8, +0x0A,0xF7,0x00,0x40,0xB7,0x2B,0x40,0xC5,0x30,0xD4,0xC3,0x00,0x64,0x98,0xC1,0x5C, +0xE4,0x02,0x0C,0xC1,0x04,0x88,0x67,0x9C,0x28,0x85,0x29,0x24,0xC0,0xB8,0xC2,0xE0, +0x10,0x01,0xF3,0x17,0x0C,0x10,0xD4,0xD8,0x01,0x1C,0x1E,0xE6,0xFF,0x43,0x07,0xC3, +0x8F,0x17,0xC2,0xE0,0x10,0x01,0x4F,0x38,0x10,0xFE,0xF7,0x0B,0x14,0x8F,0x37,0x0B, +0x59,0x00,0x0B,0x39,0x02,0xE4,0x00,0x00,0x11,0x9B,0x40,0x9B,0x20,0xC2,0xE0,0x10, +0x01,0xF2,0xF7,0x0C,0x10,0xD6,0xE6,0x01,0x20,0xD0,0xDF,0x04,0x60,0x40,0xE7,0xBB, +0xC3,0x00,0x10,0x01,0x8C,0xE6,0xFF,0x18,0x0B,0x14,0x4F,0x67,0x10,0x8F,0x78,0x0B, +0xDB,0x00,0x0B,0xBB,0x02,0xE4,0x00,0x00,0x17,0x24,0xDD,0xB0,0x9B,0xC0,0x9B,0xA0, +0xD4,0xD7,0x03,0x2C,0x5C,0xC6,0x00,0xC0,0xE0,0x10,0x01,0x1E,0xE6,0x01,0xFC,0xE7, +0x07,0x24,0x4C,0xC6,0x08,0x4E,0xF7,0x08,0x8E,0xE7,0x8C,0xE6,0x0B,0x77,0x00,0x0B, +0x87,0x00,0xC0,0xC0,0x10,0x01,0x43,0x1B,0xE5,0xFC,0xC6,0x0C,0x0C,0x10,0xE6,0x14, +0x08,0xC6,0x0B,0x43,0x18,0x33,0x43,0x9C,0x33,0x43,0x18,0x38,0x43,0x9C,0x38,0x40, +0xDB,0x33,0x43,0x83,0xE5,0x40,0xE6,0x38,0x42,0xFE,0xE3,0x40,0x67,0x1D,0x43,0x9D, +0xE3,0x43,0x5A,0x1B,0x40,0x79,0x1B,0x8E,0xFA,0x8C,0x7C,0x42,0xF7,0xC0,0x40,0x63, +0xC0,0xE4,0x00,0x00,0x11,0x9A,0xE0,0x98,0x60,0x0C,0x64,0x01,0x0E,0xE5,0x01,0x85, +0x29,0x1C,0x21,0xD8,0x0D,0x41,0x20,0x0D,0x61,0x1C,0x0D,0x81,0x18,0x0D,0xA1,0x14, +0x0D,0xC1,0x10,0x0D,0xE1,0x0C,0x0E,0x01,0x08,0x89,0x64,0x0D,0x21,0x24,0x5D,0x43, +0x04,0x0C,0xC1,0x04,0x0C,0xE1,0x00,0x89,0x85,0x89,0xC8,0x0D,0xA1,0x2A,0xC2,0x00, +0x10,0x01,0x99,0xE2,0xFE,0x10,0x0C,0x0C,0x08,0x70,0x0B,0x40,0x6B,0x1B,0x40,0x63, +0x78,0x40,0x6A,0x1D,0x5C,0x63,0x06,0xE7,0xFF,0xFC,0x16,0x0C,0x81,0x06,0x88,0xC3, +0x0C,0xE1,0x02,0x24,0x7C,0x36,0x0C,0x04,0x01,0x0C,0x07,0x01,0xE4,0x00,0x00,0x37, +0x08,0xB0,0x0B,0x40,0xAB,0x2B,0x41,0xE5,0x78,0x88,0xA7,0x41,0xEA,0x7D,0x88,0xEC, +0x5C,0x6F,0x06,0xE7,0xFF,0xFD,0x70,0xC1,0xE0,0x10,0x01,0xFD,0xEF,0x0C,0x0C,0x08, +0x6F,0x0B,0x40,0x6B,0x1B,0x4C,0x63,0x0A,0x8C,0x6A,0x5C,0x63,0x06,0xE7,0xFF,0xFB, +0x8A,0x10,0xEF,0x04,0x88,0xC3,0xD4,0x67,0x01,0x38,0x0C,0x0E,0x01,0x0C,0x0D,0x01, +0x0E,0x01,0x0A,0x0D,0xE1,0x0E,0x0D,0xC1,0x12,0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D, +0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26,0x1C,0x21,0x28,0x85,0x29,0x08,0xEF,0x0B, +0x41,0x6B,0x3B,0x4D,0x6B,0x0A,0x8D,0x4B,0x88,0x8E,0x88,0xAD,0x5C,0x6A,0x06,0x88, +0xEC,0x0E,0x01,0x0A,0x0D,0xE1,0x0E,0x0D,0xC1,0x12,0x0D,0xA1,0x16,0x0D,0x81,0x1A, +0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26,0x1C,0x21,0x28,0xE7,0xFF,0xFC,0x7F, +0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10,0x01,0xF0,0xA7,0x0C,0x10,0xF3,0x06,0x08,0xD8, +0x1F,0x25,0xFD,0xC0,0xE0,0x10,0x01,0x9C,0xBF,0xFC,0xE7,0x08,0xDD,0xCF,0x18,0x00, +0x1C,0x5E,0xE5,0x00,0x8F,0x07,0x98,0x82,0xE4,0x00,0x00,0x61,0x10,0xC7,0x01,0xD4, +0xC5,0x00,0x76,0x1A,0xE7,0x00,0x1B,0x27,0xFF,0xE4,0x00,0x00,0x39,0x20,0xC0,0x36, +0x18,0x87,0x00,0x18,0x07,0xFF,0xE4,0x00,0x00,0x1F,0x1F,0x46,0xFF,0x9C,0xC1,0x1B, +0x47,0xFF,0x18,0xC7,0x00,0x1C,0xE7,0x1C,0xD4,0xF8,0xFE,0xA6,0x85,0x29,0xFC,0x21, +0xFF,0x80,0xCA,0xE0,0x01,0x00,0x0D,0x41,0x78,0x0D,0x61,0x74,0x0D,0x81,0x70,0x0D, +0xA1,0x6C,0x0D,0xE1,0x64,0x0E,0x01,0x60,0x0E,0x21,0x5C,0x0E,0x41,0x58,0x0E,0x81, +0x50,0x0E,0xA1,0x4C,0x0E,0xC1,0x48,0xCD,0x84,0x0A,0x00,0x0D,0x21,0x7C,0x0D,0xC1, +0x68,0x0E,0x61,0x54,0xCD,0x63,0x00,0x0A,0xC2,0xC0,0x10,0x01,0x41,0x6B,0x23,0xC2, +0xA0,0x10,0x01,0xC0,0x80,0x10,0x01,0xC2,0x00,0x10,0x01,0xFC,0x84,0x0C,0x0C,0xC2, +0x80,0x10,0x01,0x11,0xC4,0x04,0x41,0x8C,0x18,0x41,0xA7,0x73,0x41,0x6B,0xB8,0x5D, +0xED,0x00,0x89,0x44,0x8C,0xCF,0x9D,0xDF,0x8D,0xE5,0x5C,0xC6,0x00,0x5D,0xEF,0x00, +0xFE,0xD6,0x04,0x90,0xFE,0xB5,0x07,0x24,0xFE,0x10,0x0B,0x14,0xFE,0x94,0x09,0x4C, +0x1E,0x41,0x08,0xCA,0x20,0x03,0xE8,0xE4,0x00,0x01,0x45,0x0C,0xC1,0x04,0xE7,0xFF, +0xC4,0x04,0x08,0xAA,0x0B,0x10,0xEA,0x14,0x42,0x6F,0x6D,0x1C,0x93,0x01,0x4C,0x84, +0x08,0x8C,0x95,0x08,0x64,0x00,0x98,0x82,0x40,0x63,0x2B,0x88,0xB2,0x40,0x63,0x38, +0x5C,0x63,0x06,0xE7,0xFF,0xF6,0xFE,0x4C,0xEF,0x10,0x40,0xA3,0x5B,0x9C,0xE2,0x0C, +0xC1,0x06,0x8C,0xF0,0xD5,0xED,0x00,0x46,0xD6,0x6E,0x01,0x22,0x08,0x87,0x01,0x40, +0xA5,0x88,0x40,0xA4,0x2D,0x0C,0xA7,0x01,0x40,0x63,0x63,0x4C,0xEF,0x10,0x40,0x63, +0x88,0x8C,0xF0,0x08,0xA7,0x01,0x40,0x65,0x1D,0x0C,0x67,0x01,0x4C,0xEF,0x08,0x1C, +0x8F,0x01,0x4E,0xE7,0x08,0x1C,0xA7,0x01,0x8E,0xF0,0x4F,0x05,0x08,0x8F,0x10,0x0B, +0x38,0x00,0x27,0x3C,0x1A,0x0C,0x18,0x01,0x4C,0xE7,0x08,0x8C,0xF0,0x08,0xA7,0x00, +0x24,0xBC,0x1A,0x0C,0x07,0x01,0x08,0xF7,0x00,0x08,0xB8,0x00,0x8C,0xA7,0x4C,0xEF, +0x10,0x5D,0xE4,0x00,0x8C,0xF4,0x0C,0xA7,0x00,0x88,0x96,0x50,0xA0,0x3C,0x88,0x72, +0xD5,0xE6,0xFA,0xD8,0x0E,0xC1,0x4A,0x0E,0xA1,0x4E,0x0E,0x81,0x52,0x0E,0x61,0x56, +0x0E,0x41,0x5A,0x0E,0x21,0x5E,0x0E,0x01,0x62,0x0D,0xE1,0x66,0x0D,0xC1,0x6A,0x0D, +0xA1,0x6E,0x0D,0x81,0x72,0x0D,0x61,0x76,0x0D,0x41,0x7A,0x0D,0x21,0x7E,0xFC,0x21, +0x00,0x80,0x85,0x29,0xFC,0x21,0xFF,0x70,0xED,0x41,0x00,0x88,0xED,0x61,0x00,0x84, +0xED,0x81,0x00,0x80,0x0D,0xA1,0x7C,0x0D,0xC1,0x78,0x0D,0xE1,0x74,0x0E,0x01,0x70, +0x0E,0x21,0x6C,0x0E,0x41,0x68,0x0E,0x61,0x64,0xC1,0x80,0x10,0x01,0xED,0x21,0x00, +0x8C,0x0E,0x81,0x60,0x0E,0xA1,0x5C,0x0E,0xC1,0x58,0x8A,0x03,0x8A,0x24,0x89,0x65, +0x0C,0xC1,0x2C,0x99,0x40,0xFE,0x6C,0x08,0xD8,0x1E,0x41,0x48,0x1D,0xE1,0x38,0x1D, +0xC1,0x40,0x1D,0xA1,0x30,0xE4,0x00,0x00,0x97,0xCC,0xEA,0x00,0x1C,0x8C,0xF3,0x10, +0xC7,0x07,0x0A,0xE7,0x17,0x43,0x30,0x34,0x0C,0x81,0x2E,0x13,0x19,0x00,0x88,0xA6, +0x1F,0x58,0x01,0x1B,0x59,0x00,0x08,0x67,0x16,0x4C,0xE6,0x08,0x1C,0xC1,0x58,0x8C, +0xF8,0x4C,0xE7,0x08,0x8C,0xC7,0x0E,0xE6,0xF9,0x40,0xCD,0x3C,0x41,0x0E,0x3C,0x0C, +0xC1,0x00,0x9D,0x41,0x40,0xD2,0x3C,0x5D,0x4A,0x00,0x8C,0xEF,0xE7,0xFF,0xF9,0x6A, +0xF0,0xEC,0x08,0xD8,0xD4,0xEA,0xFD,0xAD,0xC0,0xE0,0x10,0x01,0x88,0xD1,0xF2,0xC7, +0x00,0xE4,0x98,0xA1,0x98,0xE0,0xE4,0x00,0x00,0x29,0x40,0x90,0x3C,0x10,0x84,0x00, +0x24,0x84,0x19,0x0C,0xA6,0x00,0x9C,0xE1,0x9C,0xC4,0x5C,0x87,0x00,0xD6,0xC4,0xFF, +0x6D,0xC3,0xC0,0x10,0x01,0xC2,0xA0,0x10,0x01,0xFF,0xDE,0x08,0xD8,0xFE,0xB5,0x0C, +0x0C,0x1D,0xE1,0x50,0x99,0x40,0x99,0x80,0x1E,0x81,0x38,0x1E,0x61,0x48,0x1E,0xE1, +0x30,0x1F,0x01,0x40,0x9B,0x24,0x53,0x40,0xC8,0xCB,0x60,0x03,0x20,0xE4,0x00,0x04, +0x3F,0x40,0xF1,0x54,0x0C,0xE7,0x02,0xD0,0xE0,0x04,0xEA,0x08,0x8F,0x00,0x0B,0x8F, +0x02,0x40,0xC4,0xE5,0x5C,0xC6,0x06,0x4C,0xA6,0xFA,0x08,0xF5,0x0B,0x44,0xC5,0x36, +0xCF,0xA7,0x00,0x05,0x40,0xC6,0x2D,0x50,0xA0,0x64,0x5C,0xC6,0x06,0xD4,0xDD,0x00, +0xEC,0x4F,0xA7,0x10,0x98,0xA0,0xD7,0xA6,0x00,0xA4,0xCC,0xA7,0xFF,0xFC,0x8C,0xA6, +0xCC,0xA5,0x00,0x64,0x40,0xA5,0x38,0x5C,0xA5,0x00,0x5F,0x84,0x1D,0x1F,0x81,0x58, +0x4C,0xEC,0x08,0x48,0xC1,0x01,0x8C,0xC7,0x4C,0xC6,0x08,0x8C,0xDC,0x4B,0x80,0x0A, +0x8C,0xFC,0x1F,0x81,0x58,0x4C,0xE7,0x08,0x8C,0xFC,0x09,0x07,0xD8,0x08,0x67,0xE8, +0x8C,0x68,0x09,0x06,0xF0,0x0B,0xA6,0xE8,0x8C,0x68,0x09,0x06,0xE0,0x08,0xC6,0xD8, +0x40,0x9A,0x2D,0x0B,0x87,0xE0,0x8F,0xA6,0x8C,0x68,0x08,0xC7,0xF0,0x40,0xA3,0x2B, +0x40,0xFD,0x34,0x8C,0xFC,0x40,0xE7,0x23,0x8C,0xA7,0x40,0xA5,0xD8,0x0C,0xAB,0x00, +0xE4,0x00,0x02,0xE9,0x40,0xF0,0x64,0x10,0xE7,0x00,0x20,0xE0,0x52,0x98,0x81,0x4F, +0x8C,0x08,0x42,0x44,0x75,0x99,0xA0,0x43,0xB0,0x94,0xE4,0x00,0x00,0xFF,0x40,0xF4, +0x54,0x08,0xC7,0x00,0x40,0xF3,0x54,0x08,0xE7,0x00,0x8C,0xE6,0x40,0xD7,0x54,0x08, +0xC6,0x00,0x8C,0xE6,0x40,0xD8,0x54,0x08,0xC6,0x00,0xE4,0x00,0x02,0x57,0xCC,0xCD, +0x00,0x1C,0x8C,0xDE,0x40,0xED,0xE4,0x08,0x66,0x16,0x4C,0xE7,0x08,0x40,0xD7,0x3C, +0x41,0x18,0x3C,0x0C,0xC1,0x00,0x0E,0xE1,0x28,0x40,0xD3,0x3C,0x0F,0x01,0x24,0x0F, +0x21,0x20,0x0F,0x41,0x18,0x0F,0x61,0x14,0x0F,0x81,0x10,0x0F,0xA1,0x0C,0x0F,0xC1, +0x1C,0x0C,0x81,0x2E,0x88,0xAE,0x8C,0xF4,0xE7,0xFF,0xF6,0x72,0x9D,0xA1,0x0F,0xC1, +0x1E,0x5D,0xAD,0x00,0x0F,0xA1,0x0E,0x0F,0x81,0x12,0x0F,0x61,0x16,0x0F,0x41,0x1A, +0x0F,0x21,0x22,0x0F,0x01,0x26,0x0E,0xE1,0x2A,0x10,0xFD,0x00,0xD4,0xED,0xFD,0x15, +0x4C,0xD2,0x10,0x40,0xB1,0x34,0x0C,0xA5,0x02,0xD0,0xA0,0x05,0x0A,0x1C,0xE1,0x58, +0x8C,0xC7,0x08,0x86,0xF8,0x0B,0x86,0xFA,0x40,0xA4,0xE5,0x5C,0xA5,0x06,0x4C,0xC5, +0xFA,0x08,0xF5,0x0B,0x44,0xA6,0x2E,0xCF,0xA7,0x00,0x05,0x40,0xA5,0x35,0x50,0xC0, +0x64,0x5C,0xA5,0x06,0xD4,0xBD,0x00,0xEC,0x4F,0xA7,0x10,0x98,0xC0,0xD7,0xA5,0x00, +0xA4,0xCC,0xC7,0xFF,0xFC,0x8C,0xC5,0xCC,0xC6,0x00,0x64,0x40,0xC6,0x38,0x5C,0xC6, +0x00,0x5F,0x84,0x1D,0x48,0x80,0x0A,0x4D,0xCE,0x08,0x1F,0x81,0x58,0x48,0xE1,0x01, +0x8C,0xEE,0x8D,0xC4,0x1C,0x81,0x58,0x4D,0xCE,0x08,0x8D,0xC4,0x08,0x6E,0xD8,0x4C, +0xE7,0x08,0x0B,0xAE,0xE8,0x8C,0xFC,0x8F,0xA3,0x0B,0x87,0xE8,0x08,0x67,0xF0,0x40, +0xBA,0x35,0x8F,0xA3,0x08,0x8E,0xE0,0x08,0x67,0xE0,0x08,0xE7,0xD8,0x8F,0xA3,0x8C, +0xFC,0x40,0xDD,0x33,0x0B,0x8E,0xF0,0x8C,0xFC,0x8C,0xE4,0x40,0xE7,0x2B,0x8C,0xC7, +0x40,0xC6,0xD8,0x0C,0xCB,0x00,0xE4,0x00,0x00,0x5D,0x20,0xE0,0x9C,0x1C,0xE1,0x58, +0x4D,0xCE,0x10,0x8D,0xC7,0x08,0xAE,0xE0,0x08,0xEE,0xF0,0x08,0xCE,0xE8,0x8C,0xE5, +0x08,0xAE,0xD8,0x8C,0xE5,0x8C,0xE6,0x40,0xE7,0xC8,0x0C,0xEB,0x00,0xE4,0x00,0x00, +0x0F,0x0C,0x0B,0x00,0x9D,0x81,0x9D,0x64,0x9D,0x44,0x9D,0xE4,0x5D,0xCC,0x00,0xD6, +0xCE,0xEF,0x15,0x0E,0xC1,0x5A,0x0E,0xA1,0x5E,0x0E,0x81,0x62,0x0E,0x61,0x66,0x0E, +0x41,0x6A,0x0E,0x21,0x6E,0x0E,0x01,0x72,0x0D,0xE1,0x76,0x0D,0xC1,0x7A,0x0D,0xA1, +0x7E,0xED,0x81,0x00,0x82,0xED,0x61,0x00,0x86,0xED,0x41,0x00,0x8A,0xED,0x21,0x00, +0x8E,0xFC,0x21,0x00,0x90,0x85,0x29,0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10,0x01,0xF2, +0xE7,0x0C,0x10,0xF3,0xA6,0x08,0xD8,0xC0,0xE0,0x10,0x01,0xCF,0xBD,0x00,0x1C,0xFC, +0xE7,0x08,0xDE,0xC0,0xA0,0x10,0x01,0x8F,0xA7,0xFC,0xA5,0x09,0x4C,0x8B,0x45,0xE4, +0x00,0x01,0x37,0x1C,0x87,0x02,0x10,0xC7,0xFE,0x13,0xC7,0xFF,0x13,0x27,0x01,0x13, +0x07,0x00,0x0F,0x64,0x02,0x23,0x64,0x5E,0x40,0x97,0xCB,0x8C,0x98,0x4C,0x84,0x10, +0x8C,0x85,0x0C,0x84,0x02,0x43,0x97,0xCB,0xE4,0x00,0x00,0xD1,0x40,0x97,0xC4,0x4C, +0x84,0x10,0x8C,0x85,0x0F,0x84,0x02,0x4C,0x98,0x10,0x8C,0x85,0x0C,0x84,0x02,0x8C, +0x9C,0xE7,0xFF,0xFF,0xC9,0x23,0x64,0x5A,0x43,0x26,0xE4,0x4F,0x39,0x10,0x8F,0x25, +0x0F,0x39,0x02,0xD7,0x24,0x01,0xA0,0xE4,0x00,0x00,0x55,0x4F,0x26,0x10,0x40,0x66, +0xBC,0x8F,0x3A,0x4C,0x63,0x10,0x0F,0x39,0x02,0x8C,0x7A,0x0C,0x63,0x02,0x8C,0x79, +0xD4,0x64,0x00,0xB8,0x40,0x86,0xE4,0x4C,0x84,0x10,0x8C,0x9A,0x0C,0x84,0x02,0x8F, +0x24,0x8B,0x06,0xE4,0x00,0x00,0x0D,0x8B,0x24,0x9C,0xC1,0x88,0x99,0x5C,0xC6,0x00, +0xD4,0xDE,0xFD,0xA8,0x1B,0x07,0x00,0x1C,0xE7,0x1C,0xD4,0xFD,0xFB,0x4E,0xE7,0xFF, +0xF4,0x45,0xC0,0xE0,0x10,0x01,0xF3,0xC7,0x08,0xD8,0xC0,0xE0,0x10,0x01,0xF3,0x07, +0x0C,0x10,0xC0,0xE0,0x10,0x01,0xC0,0x80,0x10,0x01,0xEB,0xA7,0x05,0x0E,0xFC,0x84, +0x09,0x4C,0xC0,0xE0,0x10,0x01,0x1F,0x98,0xFE,0xFC,0xE7,0x08,0xE0,0x98,0xA0,0x98, +0x60,0x9B,0x61,0xE4,0x00,0x00,0xD3,0x0C,0xC7,0x02,0x20,0xC1,0x74,0x10,0xC7,0xFE, +0x12,0xE7,0xFF,0x42,0xF8,0xBB,0x43,0x37,0x34,0x4F,0x39,0x10,0x8F,0x24,0x0F,0x39, +0x02,0xC3,0x20,0x7C,0xEC,0x20,0x01,0x09,0x24,0xC4,0xFD,0xD7,0x86,0x01,0xE0,0x1F, +0x46,0xFF,0x9C,0xC1,0x5C,0xC6,0x00,0x5F,0x5A,0x00,0x8F,0x57,0x8E,0xE6,0x4F,0x5A, +0x10,0x4E,0xF7,0x10,0x8F,0x44,0x8E,0xE4,0x0F,0x5A,0x02,0x0C,0xD7,0x02,0x5C,0xDA, +0x15,0x48,0xC6,0xD0,0x5C,0xC6,0x06,0x43,0x39,0x35,0xD7,0xB9,0x00,0x68,0x4C,0xDB, +0x2C,0x44,0x63,0x35,0x5C,0x63,0x00,0x9C,0xA1,0x1C,0xE7,0x1C,0x5C,0xC5,0x00,0xD7, +0xC6,0xFC,0xC5,0xE7,0xFF,0xB7,0x8B,0xFC,0x21,0xFF,0x60,0x98,0x60,0xED,0x21,0x00, +0x9C,0xED,0x41,0x00,0x98,0x0E,0x21,0x7C,0xED,0x61,0x00,0x94,0xED,0x81,0x00,0x90, +0xED,0xA1,0x00,0x8C,0xED,0xC1,0x00,0x88,0xED,0xE1,0x00,0x84,0xEE,0x01,0x00,0x80, +0x0E,0x41,0x78,0x0E,0x61,0x74,0x0E,0x81,0x70,0x0E,0xA1,0x6C,0x0E,0xC1,0x68,0x0C, +0x01,0x5C,0x0C,0x01,0x60,0x18,0x01,0x66,0x18,0x01,0x67,0x0C,0x01,0x54,0x0C,0x01, +0x58,0xE7,0xFF,0xAF,0xBC,0x1C,0xA1,0x5C,0x98,0xC3,0x89,0x45,0x1C,0x61,0x66,0x1C, +0x81,0x54,0xE7,0xFF,0xF5,0xC4,0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10,0x01,0xF2,0x27, +0x00,0xE4,0xFC,0xC6,0x04,0xAC,0x4E,0x31,0x10,0x88,0xEA,0x8E,0x2A,0xE4,0x00,0x00, +0x35,0x0C,0x87,0x02,0x08,0xA6,0x00,0x9C,0xC8,0x40,0xA4,0x2D,0x5C,0xBF,0xF9,0x48, +0xA5,0x00,0x0C,0xA7,0x00,0x9C,0xE4,0xD4,0xF1,0xFF,0x56,0xC1,0xC0,0x10,0x01,0xC0, +0xE0,0x10,0x01,0xC2,0xC0,0x10,0x01,0xC2,0x00,0x10,0x01,0xC2,0xA0,0x10,0x01,0xFD, +0xCE,0x0C,0x0C,0xFC,0xE7,0x04,0x90,0xFE,0xD6,0x07,0x24,0xFE,0x10,0x0B,0x14,0xFE, +0xB5,0x09,0x4C,0x1D,0xA1,0x60,0x99,0x60,0x1E,0x81,0x66,0x9A,0x61,0x1D,0xE1,0x10, +0x52,0x40,0x64,0xE4,0x00,0x01,0x65,0x40,0xD4,0x5C,0x88,0xAB,0x10,0xC6,0x00,0x20, +0xC0,0x26,0x0C,0xCD,0x02,0x0C,0xCA,0x00,0x10,0xCE,0x04,0x9D,0x61,0x40,0xA5,0x33, +0x41,0x8C,0x33,0x40,0xB3,0x2D,0x5D,0x8C,0x00,0x0C,0xA1,0x0C,0x40,0xCB,0x33,0xE4, +0x00,0x00,0xEF,0x0C,0xC1,0x08,0x0C,0xE1,0x04,0xE7,0xFF,0xB6,0xCE,0x0E,0xE1,0x0E, +0x40,0xAC,0xBC,0x4C,0xA5,0x08,0x8C,0xB6,0x08,0x65,0x00,0x08,0xAE,0x0B,0x40,0x63, +0x2B,0x10,0xAE,0x14,0x98,0x81,0x40,0x63,0x28,0x88,0xAF,0x5C,0x63,0x06,0xE7,0xFF, +0xE9,0xC8,0x4C,0xAC,0x10,0x1F,0x0C,0x01,0x9C,0xA2,0x0C,0x8A,0x02,0x8C,0xB0,0x40, +0x83,0x23,0x0A,0xE5,0x01,0x40,0x84,0x90,0x5C,0x84,0x04,0x42,0xF7,0x25,0x0E,0xE5, +0x01,0x0C,0xE1,0x06,0x4E,0xEC,0x10,0x0C,0xC1,0x0A,0x5D,0x98,0x00,0x43,0x17,0xAC, +0x8E,0xF0,0x0B,0x37,0x01,0x40,0x99,0x25,0x5C,0x84,0x06,0x0C,0x97,0x01,0x08,0xA5, +0x00,0x8C,0x85,0x0C,0x98,0x00,0x88,0x87,0x50,0xA0,0x3C,0x88,0x6F,0xD4,0xCC,0xFC, +0x34,0x9D,0x44,0x9D,0xBC,0x5D,0x8B,0x00,0xD5,0x51,0xFA,0x7E,0x98,0x61,0xE7,0xFF, +0xAD,0x42,0xC0,0xE0,0x10,0x01,0xC0,0xA0,0x10,0x01,0xF2,0xE7,0x0C,0x10,0xC0,0xC0, +0x10,0x01,0x4E,0xF7,0x08,0xFC,0xA5,0x09,0x9C,0xFC,0xC6,0x0B,0x14,0x98,0xE0,0xE4, +0x00,0x00,0x41,0x0B,0x18,0x01,0x0F,0x04,0x01,0x1F,0x07,0x01,0x4C,0x87,0x10,0x5C, +0xF8,0x00,0x9C,0x82,0x43,0x04,0x34,0x8C,0x85,0x0B,0x18,0x01,0x0F,0x04,0x01,0x4C, +0x87,0x10,0x43,0x04,0x34,0x8C,0x85,0xD6,0xE7,0xFE,0xE4,0x0E,0xC1,0x6A,0x0E,0xA1, +0x6E,0x0E,0x81,0x72,0x0E,0x61,0x76,0x0E,0x41,0x7A,0x0E,0x21,0x7E,0xEE,0x01,0x00, +0x82,0xED,0xE1,0x00,0x86,0xED,0xC1,0x00,0x8A,0xED,0xA1,0x00,0x8E,0xED,0x81,0x00, +0x92,0xED,0x61,0x00,0x96,0xED,0x41,0x00,0x9A,0xED,0x21,0x00,0x9E,0xFC,0x21,0x00, +0xA0,0x85,0x29,0xFC,0x21,0xFF,0x58,0xC0,0x60,0x10,0x01,0xED,0xA1,0x00,0x94,0xEE, +0x21,0x00,0x84,0xEE,0x41,0x00,0x80,0x0E,0x61,0x7C,0x0E,0x81,0x78,0x0E,0xA1,0x74, +0x0E,0xC1,0x70,0xED,0x21,0x00,0xA4,0xED,0x41,0x00,0xA0,0xED,0x61,0x00,0x9C,0xED, +0x81,0x00,0x98,0xED,0xC1,0x00,0x90,0xED,0xE1,0x00,0x8C,0xEE,0x01,0x00,0x88,0xC2, +0x80,0x10,0x01,0xFC,0x63,0x0A,0x30,0xF0,0x94,0x0C,0x0C,0x98,0xA0,0xE4,0x00,0x38, +0x4E,0xC0,0xE0,0x10,0x01,0xC2,0x40,0x10,0x01,0xE8,0xE7,0x04,0x8D,0x99,0xA0,0xC4, +0xE7,0x02,0x00,0x1E,0x61,0x0C,0x5C,0xE0,0x09,0xFE,0x32,0x08,0xD8,0x48,0xC2,0x0B, +0x1E,0xC1,0x6E,0x0C,0xC1,0x04,0x1E,0xA1,0x6C,0xE7,0xFF,0xFA,0xFC,0xE7,0xFF,0xF8, +0x14,0xC0,0xC0,0x10,0x01,0xE8,0xE6,0x04,0x8D,0x54,0xE7,0x08,0x20,0xE0,0x1C,0xE7, +0xFF,0xF9,0x86,0x88,0x73,0xF0,0x94,0x0C,0x0C,0x98,0xA0,0x99,0x60,0xE4,0x00,0x37, +0xAE,0x99,0x40,0xE4,0x00,0x01,0x25,0xCD,0x8A,0x00,0x1C,0xC0,0xC0,0x10,0x01,0x40, +0x71,0x64,0xE8,0xE6,0x04,0x89,0x8D,0x91,0x1C,0x63,0x16,0x12,0x0C,0x04,0x11,0xEC, +0x05,0x54,0xE7,0x02,0x88,0x90,0x88,0xAF,0x11,0xCC,0x07,0x20,0xE1,0x04,0x88,0xCE, +0x88,0x76,0x98,0xE2,0x99,0x01,0xE7,0xFF,0xB5,0xA0,0x20,0x60,0xFC,0x88,0x90,0x88, +0xAF,0x88,0xCE,0x88,0x75,0x98,0xE2,0x99,0x01,0xE7,0xFF,0xB7,0x24,0x20,0x60,0xB0, +0x08,0xC1,0x6C,0xCC,0xC6,0x00,0x03,0x08,0xE1,0x6E,0xCC,0xE7,0x00,0x07,0x8C,0xE6, +0x98,0xCA,0x40,0xE7,0x30,0x0C,0xEC,0x17,0xE4,0x00,0x00,0x39,0x88,0xCE,0x98,0xE2, +0x99,0x01,0xE7,0xFF,0xB5,0x28,0x20,0x60,0x3A,0x98,0xE1,0x4C,0xE7,0x54,0x45,0x6B, +0x3D,0x5D,0x6B,0x00,0x88,0x73,0xF0,0x94,0x0C,0x0C,0x98,0xA1,0x9D,0x41,0xE4,0x00, +0x36,0x8C,0x5D,0x4A,0x00,0xF0,0xF2,0x08,0xD8,0xD4,0xEA,0xFB,0x75,0x88,0x6B,0xE7, +0xFF,0xB0,0xF2,0x9D,0xA1,0x0C,0xE1,0x06,0x5D,0xAD,0x00,0xD4,0xED,0xF9,0x75,0xC0, +0xE0,0x10,0x01,0xC0,0x60,0x10,0x01,0xF0,0x87,0x0C,0x0C,0xFC,0x63,0x0A,0x30,0x98, +0xA1,0xE4,0x00,0x36,0x26,0xED,0x21,0x00,0xA6,0x0E,0xC1,0x72,0x0E,0xA1,0x76,0x0E, +0x81,0x7A,0x0E,0x61,0x7E,0xEE,0x41,0x00,0x82,0xEE,0x21,0x00,0x86,0xEE,0x01,0x00, +0x8A,0xED,0xE1,0x00,0x8E,0xED,0xC1,0x00,0x92,0xED,0xA1,0x00,0x96,0xED,0x81,0x00, +0x9A,0xED,0x61,0x00,0x9E,0xED,0x41,0x00,0xA2,0xFC,0x21,0x00,0xA8,0x85,0x29,0x1C, +0x21,0xE8,0x0D,0x41,0x10,0x0D,0x61,0x0C,0x0D,0x81,0x08,0x0D,0x21,0x14,0x89,0x66, +0x89,0x83,0xC0,0xC0,0x10,0x01,0x89,0x45,0xE8,0xC6,0x04,0x89,0x54,0xC6,0x04,0x20, +0xC0,0x54,0x88,0x64,0x88,0xC7,0x88,0x85,0x0C,0xE1,0x04,0x88,0xAB,0xE7,0xFF,0xBD, +0x60,0x0C,0xE1,0x06,0xC0,0xC0,0x10,0x01,0xF0,0xC6,0x0C,0x10,0x40,0xC7,0x33,0x5C, +0xC6,0x00,0xC0,0x80,0x10,0x01,0x8D,0x66,0x8D,0x46,0x5D,0x6B,0x00,0x5D,0x4A,0x00, +0xFC,0x84,0x0B,0x14,0x98,0xA0,0x98,0xC0,0xE4,0x00,0x00,0x3D,0x4E,0xEA,0x10,0x8E, +0xE4,0x0A,0xF7,0x02,0x1F,0x0A,0x01,0x8C,0xD7,0x4E,0xEA,0x10,0x5D,0x58,0x00,0x8E, +0xE4,0x0A,0xF7,0x00,0x8C,0xB7,0xD5,0x4B,0xFF,0x30,0x24,0xC0,0x18,0x24,0xA0,0x26, +0x98,0x60,0xE4,0x00,0x00,0x7F,0x4C,0x65,0x40,0x9C,0xE4,0x40,0x63,0x30,0x4C,0xE7, +0x10,0xC0,0xC0,0x10,0x01,0xFC,0xC6,0x04,0x90,0x8C,0xE6,0x08,0x87,0x04,0x08,0xE7, +0x06,0xFC,0x63,0xFF,0x00,0x40,0x63,0x3B,0x98,0xEA,0x4C,0x84,0x40,0x40,0x63,0x38, +0x50,0xC0,0x64,0x40,0xE4,0x30,0x8C,0x67,0x0C,0x6C,0x00,0x5C,0x60,0x01,0x48,0x63, +0x0A,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18, +0x85,0x29,0x1C,0x21,0xB0,0x98,0x60,0x0D,0x21,0x4C,0x0D,0x41,0x48,0x0D,0x61,0x44, +0x0D,0x81,0x40,0x0D,0xA1,0x3C,0x0D,0xC1,0x38,0x0D,0xE1,0x34,0x0E,0x01,0x30,0x0E, +0x21,0x2C,0x0E,0x41,0x28,0x0E,0x61,0x24,0x0E,0x81,0x20,0x0E,0xA1,0x1C,0x0C,0x01, +0x08,0x0C,0x01,0x0C,0x18,0x01,0x16,0x18,0x01,0x17,0x0C,0x01,0x00,0x0C,0x01,0x04, +0xE7,0xFF,0xA6,0xDE,0x1D,0x41,0x08,0x98,0xC4,0x88,0xAA,0x1C,0x61,0x16,0x88,0x81, +0xE7,0xFF,0xEC,0xE8,0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10,0x01,0xFC,0xE7,0x04,0xB0, +0xF0,0xA6,0x00,0xE4,0x4C,0xA5,0x10,0x8C,0xAA,0xE4,0x00,0x00,0x3B,0x0C,0xCA,0x02, +0x0C,0xC7,0x00,0x08,0x87,0xFC,0x9C,0xE8,0x40,0xC6,0x25,0x5C,0xDF,0xF9,0x48,0xC6, +0x00,0x0C,0xCA,0x00,0x9D,0x44,0xD5,0x45,0xFF,0x3E,0x98,0x61,0xC2,0x40,0x10,0x01, +0xC2,0xA0,0x10,0x01,0xE7,0xFF,0xA6,0x36,0xFE,0xB5,0x0A,0x30,0x99,0x60,0x99,0x40, +0xFD,0xB2,0x08,0xD8,0x1E,0x81,0x10,0x9A,0x21,0xC2,0x60,0x10,0x01,0xE4,0x00,0x00, +0xF9,0xCD,0xCA,0x00,0x1C,0x40,0xEE,0x6C,0x88,0x74,0x12,0x07,0x04,0x11,0xE7,0x05, +0x08,0x87,0x16,0x11,0x87,0x07,0x88,0xB0,0x88,0xCF,0x88,0xEC,0xE7,0xFF,0xFC,0xC6, +0x20,0x60,0xFC,0x98,0x60,0xE7,0xFF,0xA5,0xB4,0x1E,0xE1,0x18,0x88,0xB0,0x88,0xCF, +0x88,0xEC,0x0C,0x61,0x12,0x4C,0x8C,0x10,0x8C,0x97,0x0C,0x84,0xF2,0xE7,0xFF,0xE8, +0xE2,0x98,0x61,0xE7,0xFF,0xA5,0x78,0x40,0x8D,0x74,0x40,0x6D,0x74,0x88,0xB0,0x88, +0xCF,0x9C,0x8C,0x88,0xEC,0x1C,0x63,0x18,0xE7,0xFF,0xA8,0x34,0x20,0x60,0x32,0x4C, +0xF1,0x54,0x45,0x6B,0x3D,0x5D,0x6B,0x00,0x88,0x75,0xF0,0x93,0x0C,0x0C,0x98,0xA1, +0x9D,0x41,0xE4,0x00,0x31,0xC4,0x5D,0x4A,0x00,0xF0,0xF2,0x08,0xD8,0xD4,0xEA,0xFC, +0x25,0x88,0x6B,0xE7,0xFF,0xAC,0x2A,0x0D,0x21,0x4E,0x0E,0xA1,0x1E,0x0E,0x81,0x22, +0x0E,0x61,0x26,0x0E,0x41,0x2A,0x0E,0x21,0x2E,0x0E,0x01,0x32,0x0D,0xE1,0x36,0x0D, +0xC1,0x3A,0x0D,0xA1,0x3E,0x0D,0x81,0x42,0x0D,0x61,0x46,0x0D,0x41,0x4A,0x1C,0x21, +0x50,0x85,0x29,0xC0,0xE0,0x10,0x01,0xEC,0xE7,0x00,0xEE,0xCC,0x84,0x00,0x0A,0x8C, +0x87,0x08,0xE4,0x06,0x40,0xE3,0x3B,0x14,0x64,0x08,0x4C,0x63,0x50,0xFC,0x63,0x02, +0x00,0x8C,0x67,0x4C,0x63,0x52,0x85,0x29,0xD0,0xA3,0x07,0x05,0xD0,0x7F,0x06,0xE0, +0x9B,0x43,0xC0,0xE0,0x10,0x01,0x43,0x5A,0x2D,0xF3,0x27,0x00,0xF2,0x4F,0x5A,0x08, +0x9B,0x00,0x5F,0x5A,0x00,0x8A,0xF9,0x98,0xC0,0xE4,0x00,0x00,0x27,0x8F,0x17,0x9C, +0xC1,0x9E,0xE2,0x5F,0x18,0x00,0x5C,0xC6,0x00,0x5E,0xF7,0x00,0xD4,0xA6,0xFF,0x8D, +0x9F,0x3F,0xC0,0xE0,0x10,0x01,0x4C,0xA5,0x08,0x8C,0xB9,0xEF,0x27,0x00,0xF6,0x98, +0xE0,0xE4,0x00,0x01,0x27,0x40,0xC7,0xD4,0x1F,0x67,0x01,0x1F,0x86,0x01,0x4C,0xC6, +0x08,0x4F,0x9C,0x08,0x8C,0xD9,0x8F,0x99,0x0A,0xE6,0x00,0xD4,0x77,0x03,0xB4,0x08, +0xDC,0x00,0xD4,0xC3,0x03,0x7C,0x8C,0xF8,0xC3,0x00,0x10,0x01,0xEF,0x38,0x00,0xFA, +0x1C,0xA7,0x01,0xCC,0xE7,0x00,0x06,0xCC,0xA5,0x00,0x06,0x8C,0xF9,0x8C,0xB9,0x17, +0x87,0x00,0x0B,0x45,0x04,0x0B,0x27,0x04,0x17,0x65,0x00,0x0B,0x07,0x02,0x0B,0xA5, +0x02,0xD6,0xE6,0x02,0x3A,0x40,0xF7,0x35,0x42,0xF7,0x1D,0x40,0xC3,0x35,0x43,0x77, +0xDB,0x40,0xA6,0xE3,0x8C,0xBB,0x40,0xA5,0x23,0x43,0x57,0xD3,0x43,0x26,0xCB,0x42, +0xF7,0xEB,0x40,0x7A,0xCC,0x40,0xC6,0xC3,0x8C,0xD7,0x8C,0xC5,0x94,0xA1,0x40,0x86, +0x23,0xC8,0xA5,0x86,0xA0,0x40,0x84,0x28,0x8C,0x64,0x40,0x63,0x38,0xE4,0x00,0x00, +0x1B,0x5C,0xFB,0x00,0xD4,0xA7,0xFB,0x8C,0x98,0x60,0x85,0x29,0xC2,0xE0,0x10,0x01, +0xF8,0x77,0x00,0xE5,0xC2,0xE0,0x10,0x01,0xF8,0x97,0x00,0xF2,0xC0,0x80,0x10,0x01, +0xEC,0xA4,0x00,0xF1,0xC0,0xA0,0x10,0x01,0xEC,0xC5,0x00,0xE8,0xC0,0xC0,0x10,0x01, +0xEC,0xE6,0x00,0xEC,0xC0,0xE0,0x10,0x01,0x0C,0xC1,0x02,0xED,0x07,0x00,0xF8,0xC0, +0xE0,0x10,0x01,0xEC,0xC7,0x00,0xF4,0x85,0x29,0x1C,0x21,0xB8,0x0D,0x41,0x40,0x0D, +0x61,0x3C,0x0D,0xC1,0x30,0x89,0x45,0x0C,0x81,0x0C,0x0C,0xC1,0x08,0x0C,0xE1,0x04, +0x0D,0x21,0x44,0x0D,0x81,0x38,0x0D,0xA1,0x34,0x0D,0xE1,0x2C,0x0E,0x01,0x28,0x0E, +0x21,0x24,0x0E,0x41,0x20,0x0E,0x61,0x1C,0x0E,0x81,0x18,0x0E,0xA1,0x14,0x0E,0xC1, +0x10,0xE7,0xFF,0xA6,0x18,0x0C,0xE1,0x06,0x0C,0x81,0x0E,0x5C,0x87,0x15,0xC8,0xA0, +0x07,0xFF,0x49,0x67,0x20,0x89,0xC3,0x40,0x85,0x3D,0x0C,0xC1,0x0A,0x40,0xA5,0x5D, +0x5C,0xE5,0x1D,0x49,0x64,0x58,0x20,0xC4,0x8A,0xC0,0xE0,0x10,0x01,0x88,0x6B,0xF0, +0x87,0x00,0xE5,0x9C,0x9F,0x5C,0x84,0x00,0xE7,0xFF,0xFC,0x96,0x5C,0xE3,0x06,0x5D, +0xC7,0x15,0x48,0x63,0x70,0x5D,0xC3,0x06,0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10,0x01, +0xC2,0xAF,0xFF,0xE1,0xEE,0x86,0x00,0xEA,0xE8,0xE7,0x00,0xF0,0xCA,0xB5,0xFF,0xFF, +0x8A,0x54,0x9A,0x20,0x52,0x00,0xFF,0x99,0xA0,0xC2,0xC0,0x10,0x01,0xE4,0x00,0x01, +0x21,0x10,0x85,0x00,0x9C,0xC1,0x8D,0xE4,0x5C,0xC6,0x00,0x9C,0xA1,0x5D,0xEF,0x00, +0xD5,0xA6,0xFF,0x8D,0x99,0x80,0xE4,0x00,0x00,0xCB,0x40,0x8C,0x7C,0xEC,0xB6,0x00, +0xEE,0x1E,0xE4,0x01,0xCC,0x84,0x00,0x0A,0xCE,0xF7,0x00,0x0A,0x8E,0xE5,0x8C,0xA4, +0x9C,0xDF,0x08,0x85,0x00,0x88,0xA7,0xD5,0x86,0x00,0x3A,0x08,0xB7,0x00,0xD5,0x65, +0x01,0xA4,0xD4,0x8B,0x01,0x84,0x0C,0xE1,0x04,0x42,0x6C,0x7C,0x88,0x6B,0x5E,0x73, +0x00,0x88,0x93,0xE7,0xFF,0xFB,0x80,0x0C,0xE1,0x06,0x40,0xC3,0x75,0x40,0x6E,0x1D, +0x5C,0x7F,0xF1,0x48,0x66,0x18,0xD6,0xA3,0x00,0x60,0x8A,0xA3,0x8A,0x0D,0xE4,0x00, +0x00,0x0D,0x8A,0x71,0x9D,0x81,0x8A,0x33,0x5D,0x8C,0x00,0x10,0xD2,0x00,0xD4,0xCC, +0xFC,0xE5,0x9D,0xA1,0x9E,0x41,0x5D,0xAD,0x00,0xD1,0xA4,0x00,0x72,0x88,0xB4,0x99, +0xE0,0x98,0xC0,0xE7,0xFF,0xFE,0xFB,0xC2,0x00,0x1F,0xE4,0x88,0x6B,0x20,0x00,0x9B, +0xCE,0x31,0x00,0x0A,0xC0,0xE0,0x10,0x01,0xEC,0xE7,0x00,0xEE,0x8E,0x27,0x08,0x71, +0x02,0x41,0x6B,0x1B,0x08,0x71,0x04,0x4C,0x63,0x50,0xFC,0x63,0x02,0x00,0x8C,0x6B, +0x4C,0x63,0x52,0x1A,0x0A,0x00,0x0E,0xC1,0x12,0x0E,0xA1,0x16,0x0E,0x81,0x1A,0x0E, +0x61,0x1E,0x0E,0x41,0x22,0x0E,0x21,0x26,0x0E,0x01,0x2A,0x0D,0xE1,0x2E,0x0D,0xC1, +0x32,0x0D,0xA1,0x36,0x0D,0x81,0x3A,0x0D,0x61,0x3E,0x0D,0x41,0x42,0x0D,0x21,0x46, +0x1C,0x21,0x48,0x85,0x29,0x1C,0x21,0xE8,0x98,0xFF,0x0D,0x41,0x10,0x0D,0x61,0x0C, +0x18,0xE1,0x07,0x0D,0x21,0x14,0x0D,0x81,0x08,0x89,0x44,0x88,0xE6,0x89,0x63,0xCA, +0xE0,0x07,0xFF,0x88,0x65,0x0C,0x84,0x02,0x08,0xA6,0x00,0x98,0xC1,0x42,0xF7,0x2D, +0xD4,0x97,0x00,0x54,0x5C,0xA4,0x15,0x48,0xC0,0x0A,0x0C,0x8B,0x02,0x08,0xA7,0x06, +0xD4,0x85,0x01,0x1C,0x08,0xE7,0x02,0x1C,0xA1,0x07,0xE7,0xFF,0xFC,0x3E,0x0C,0x6B, +0x00,0x0D,0x6A,0x02,0x10,0xA1,0x07,0x88,0x8B,0xE7,0xFF,0xF9,0xDE,0x8C,0x6B,0xE4, +0x00,0x00,0x63,0xC9,0x80,0x07,0xFF,0x40,0xAC,0x2D,0xD4,0xA4,0x01,0x4C,0x40,0x8C, +0x25,0x08,0xE7,0x02,0x1C,0xA1,0x07,0xE7,0xFF,0xFB,0xE4,0x41,0x8C,0x1D,0x0D,0x8B, +0x00,0x0D,0x6A,0x02,0x10,0xA1,0x07,0x88,0x8B,0xE7,0xFF,0xF9,0x7E,0x40,0x6B,0x1D, +0x0C,0x6A,0x00,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x1C, +0x21,0x18,0x85,0x29,0x9C,0x30,0x0D,0x21,0x0C,0x0D,0x41,0x08,0x0D,0x61,0x04,0x0D, +0x81,0x00,0xC0,0xE0,0x10,0x01,0xEC,0xC7,0x06,0xA2,0x20,0xC0,0x92,0x98,0xC1,0xEC, +0xC7,0x06,0xA0,0xC0,0xE0,0x10,0x01,0x0D,0x81,0x02,0x0D,0x61,0x06,0x0D,0x41,0x0A, +0x0D,0x21,0x0E,0xEC,0x07,0x06,0x84,0x1C,0x21,0x10,0xE4,0x00,0x25,0x97,0xEC,0xE7, +0x06,0xA2,0xD0,0xE1,0x0A,0xF6,0xC1,0x40,0x10,0x01,0xEC,0xEA,0x06,0x86,0x20,0xE0, +0xE2,0xC0,0xE0,0x10,0x01,0xE8,0xC7,0x06,0x89,0xC8,0x80,0x01,0x00,0x44,0xC6,0x24, +0xD0,0xC0,0x0A,0x02,0xE8,0xC7,0x06,0x89,0xC8,0xA0,0xFE,0xFF,0x44,0xC6,0x2C,0x0D, +0x81,0x02,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0xEC,0xC7,0x06,0x89,0x1C, +0x21,0x10,0xE4,0x00,0x55,0x41,0xEC,0xEA,0x06,0x86,0x20,0xE5,0x3E,0xC0,0xF4,0x00, +0x01,0xFC,0x80,0x80,0x00,0xC8,0xC7,0x26,0x18,0x08,0xA6,0x01,0x44,0xA5,0x25,0x5C, +0xA5,0x04,0x0C,0xA6,0x01,0xC8,0xC7,0x24,0x28,0x08,0xA6,0x01,0x50,0xA5,0x01,0x0C, +0xA6,0x01,0xC8,0xE7,0x7A,0x10,0xFC,0xA0,0xFE,0xFF,0x0C,0xC7,0x02,0x44,0xC6,0x2C, +0x0C,0xC7,0x00,0x1C,0x80,0xEF,0x0C,0xC7,0x02,0x44,0xC6,0x24,0x0C,0xC7,0x00,0x98, +0xE2,0xEC,0xEA,0x06,0x84,0xE4,0x00,0x01,0x97,0xED,0x6A,0x06,0x86,0xD1,0x62,0x06, +0x1E,0xC0,0xE0,0x10,0x01,0xE8,0xC7,0x06,0x89,0xC8,0xA0,0x01,0x00,0x44,0xC6,0x2C, +0xD0,0xC0,0x05,0x82,0xE8,0xC7,0x06,0x89,0x54,0xC6,0x10,0xD0,0xC0,0x05,0x2A,0xE8, +0xC7,0x06,0x89,0xC8,0x80,0xFF,0xEF,0x44,0xC6,0x24,0xC8,0xA0,0xFE,0xFF,0xEC,0xC7, +0x06,0x89,0xE8,0xC7,0x06,0x89,0x44,0xC6,0x2C,0xEC,0xC7,0x06,0x89,0xE4,0x00,0x52, +0xD2,0x98,0x60,0xE4,0x00,0x1A,0xD6,0x20,0x61,0xE6,0xC1,0x94,0x00,0x01,0xC8,0xEC, +0x26,0x18,0xFC,0x80,0x80,0x00,0x08,0xC7,0x01,0x44,0xC6,0x25,0x5C,0xC6,0x04,0x0C, +0xC7,0x01,0xC8,0xEC,0x24,0x28,0xFC,0xA0,0xFE,0xFF,0x08,0xC7,0x01,0xC9,0x8C,0x7A, +0x10,0x50,0xC6,0x01,0x0C,0xC7,0x01,0x0C,0xEC,0x02,0x44,0xE7,0x2C,0x0C,0xEC,0x00, +0xC0,0xE0,0x10,0x01,0xEC,0xC7,0x06,0xEE,0xC0,0xE0,0x10,0x01,0xEC,0xC7,0x06,0xF8, +0xE4,0x00,0x74,0xB2,0xC0,0xE0,0x10,0x01,0xE8,0xE7,0x07,0x23,0x54,0xE7,0x80,0x20, +0xE0,0x44,0xEC,0x0A,0x06,0x84,0x0C,0xEC,0x02,0x50,0xE7,0x10,0xE4,0x00,0x00,0x23, +0xED,0x6A,0x06,0x84,0x1C,0xC0,0xEF,0x0C,0xEC,0x02,0x44,0xE7,0x34,0x0C,0xEC,0x00, +0x0D,0x81,0x02,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85, +0x29,0x9C,0x30,0x0D,0x41,0x08,0x0D,0x61,0x04,0xC1,0x54,0x00,0x01,0x0D,0x81,0x00, +0xC1,0x60,0x10,0x01,0xC9,0x8A,0x79,0xC0,0x0D,0x21,0x0C,0xEC,0x0B,0x06,0x80,0xC9, +0x4A,0x78,0xCC,0x08,0xEA,0x01,0x50,0xE7,0x02,0x0C,0xEA,0x01,0xE7,0xFF,0xFC,0x50, +0xEC,0xEB,0x06,0x82,0x1C,0xC7,0x01,0x5C,0xE7,0x04,0xEC,0xCB,0x06,0x80,0x0C,0xEC, +0x01,0xE7,0xFF,0xFF,0xC5,0x1C,0x21,0xD8,0x0D,0x21,0x24,0x0D,0x41,0x20,0xC1,0x54, +0x00,0x01,0xC8,0xEA,0x36,0x00,0x10,0xC7,0x00,0x54,0xC6,0xFD,0x18,0xC7,0x00,0x98, +0xE1,0x0C,0xE1,0x14,0x0C,0xE1,0x04,0x98,0xEA,0x0C,0xE1,0x18,0xC0,0xE0,0x10,0x01, +0xEC,0xC7,0x00,0x02,0x94,0xEF,0xC8,0xE7,0x42,0x40,0x40,0xE6,0x39,0x88,0xC7,0x0C, +0xE1,0x1C,0x98,0xE2,0x0C,0xE1,0x00,0xC8,0xE0,0x05,0x50,0x0C,0xE1,0x08,0xC8,0xE0, +0x79,0xD4,0x0C,0xE1,0x0C,0x50,0xE0,0xD0,0x98,0x80,0x98,0xAA,0x0C,0xE1,0x10,0x88, +0x61,0xC0,0xE0,0x10,0x01,0xEC,0xE7,0x00,0x76,0x84,0xE8,0xC0,0xE0,0x10,0x01,0xC0, +0x60,0x10,0x01,0xEC,0xE7,0x00,0x7A,0xFC,0x63,0x05,0x50,0x84,0xE8,0x98,0x60,0xC0, +0xE0,0x10,0x01,0xEC,0xE7,0x00,0x86,0x84,0xE8,0xC0,0xE0,0x10,0x01,0xE8,0xC7,0x06, +0xA5,0x50,0xC6,0x02,0xEC,0xC7,0x06,0xA5,0xC0,0xC0,0x10,0x01,0xEC,0x06,0x06,0x89, +0xC0,0xC0,0x10,0x01,0xEC,0x06,0x06,0x7F,0xEC,0x07,0x06,0xA5,0xC0,0xE0,0x10,0x01, +0xEC,0x07,0x06,0xA0,0xC0,0xE0,0x10,0x01,0xEC,0x07,0x06,0x84,0xC8,0xEA,0x3C,0xD4, +0x08,0xC7,0x01,0xC8,0xC6,0x04,0x00,0x0C,0xC7,0x01,0xC8,0xEA,0x3C,0xE0,0x08,0xC7, +0x01,0xC8,0xC6,0x04,0x00,0x0C,0xC7,0x01,0xC8,0xEA,0x78,0xC0,0xFC,0xC0,0x55,0xAA, +0x0C,0xC7,0x01,0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10,0x01,0xFC,0xC6,0x07,0xD8,0xEC, +0xC7,0x06,0x9C,0xC0,0xE0,0x10,0x01,0xEC,0x07,0x06,0x8D,0xC0,0xE0,0x10,0x01,0xEC, +0x07,0x06,0x99,0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10,0x01,0xFC,0xC6,0x07,0x58,0xEC, +0xC7,0x06,0x94,0xC0,0xE0,0x10,0x01,0xEC,0x07,0x06,0x8B,0xC0,0xE0,0x10,0x01,0xEC, +0x07,0x06,0x7D,0xFC,0xE0,0x03,0xE8,0xC9,0x4A,0x79,0xE0,0x0C,0xEA,0x01,0xE7,0xFF, +0xFD,0x26,0x0D,0x21,0x26,0x0D,0x41,0x22,0x1C,0x21,0x28,0x85,0x29,0xC0,0xF4,0x00, +0x01,0xC8,0xC7,0x74,0xD8,0x18,0x06,0x00,0xC8,0xA7,0x74,0x10,0x18,0x65,0x00,0xC8, +0xA7,0x76,0x30,0x18,0x05,0x00,0x50,0x80,0x24,0xC8,0xA7,0x74,0x00,0x18,0x85,0x00, +0xCA,0xE7,0x74,0x28,0x50,0xA0,0x60,0x18,0xB7,0x00,0xCA,0xE7,0x74,0x30,0x18,0xB7, +0x00,0xCA,0xE7,0x74,0x38,0x18,0xB7,0x00,0xCA,0xE7,0x74,0x40,0x18,0xB7,0x00,0xC8, +0xA7,0x74,0xA8,0x10,0xA5,0x00,0xC8,0xA7,0x74,0x78,0x52,0xE0,0x15,0x1A,0xE5,0x00, +0xC8,0xA7,0x74,0x70,0x9A,0xE2,0x1A,0xE5,0x00,0xC8,0xE7,0x74,0x60,0x18,0x87,0x00, +0x98,0x61,0x10,0xE6,0x00,0x50,0xE7,0x01,0x18,0xE6,0x00,0x85,0x29,0x85,0x29,0x85, +0x29,0x98,0xEA,0x1C,0x21,0xD8,0x0C,0xE1,0x18,0xC0,0xE0,0x10,0x01,0xEC,0xE7,0x00, +0x02,0x94,0xCF,0xC8,0xC6,0x42,0x40,0x40,0xC7,0x31,0x98,0xE2,0x0C,0xE1,0x00,0xC8, +0xE0,0x01,0x00,0xC8,0xA0,0xFF,0xFF,0x0C,0xE1,0x08,0xC0,0xE0,0x10,0x01,0xFC,0xE7, +0x00,0xFE,0x44,0xE7,0x2C,0xFC,0xE7,0x79,0x04,0x0C,0xE1,0x0C,0xC8,0xE0,0x11,0x00, +0x0C,0xE1,0x10,0x98,0xE1,0x0D,0x21,0x24,0x0C,0xE1,0x14,0x0C,0x01,0x04,0x0C,0xC1, +0x1C,0x88,0x61,0xC0,0xE0,0x10,0x01,0x98,0x81,0xEC,0xE7,0x00,0x76,0x98,0xAA,0x84, +0xE8,0x0D,0x21,0x26,0x1C,0x21,0x28,0x85,0x29,0x98,0xEA,0x1C,0x21,0xD8,0x0C,0xE1, +0x18,0xC0,0xE0,0x10,0x01,0xEC,0xE7,0x00,0x02,0x94,0xCF,0xC8,0xC6,0x42,0x40,0x40, +0xC7,0x31,0x98,0xE2,0x0C,0xE1,0x00,0x50,0xE0,0x42,0xC8,0xA0,0xFF,0xFF,0x0C,0xE1, +0x08,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x01,0xFE,0x44,0xE7,0x2C,0xFC,0xE7,0x79,0x04, +0x0C,0xE1,0x0C,0xC8,0xE0,0x12,0x00,0x0C,0xE1,0x10,0x98,0xE1,0x0D,0x21,0x24,0x0C, +0xC1,0x1C,0x0C,0xE1,0x14,0x0C,0x01,0x04,0x88,0x61,0x98,0xAA,0xC0,0xE0,0x10,0x01, +0x98,0x81,0xEC,0xE7,0x00,0x76,0x84,0xE8,0xC0,0xF4,0x00,0x01,0x50,0xA0,0x10,0xC8, +0xC7,0x25,0xC0,0x0C,0xA6,0x01,0xC8,0xE7,0x22,0x00,0x0C,0x07,0x01,0x0D,0x21,0x26, +0x1C,0x21,0x28,0x85,0x29,0x9C,0x38,0x98,0xE0,0x88,0xA1,0x98,0xC0,0x54,0x87,0x03, +0x4C,0x84,0x08,0x8C,0x83,0x0A,0xE4,0x01,0x5F,0x07,0x00,0x9C,0xE1,0x54,0x87,0x03, +0x4C,0x84,0x08,0x8C,0x83,0x08,0x84,0x01,0x40,0x97,0x25,0x5C,0x84,0x06,0x4E,0xE4, +0xFA,0x44,0x97,0x26,0x40,0x84,0xBD,0x5C,0x84,0x06,0x0C,0x85,0x01,0x4E,0xE6,0x08, +0x1F,0x21,0x08,0x9C,0xA2,0x8E,0xF9,0x0A,0xF7,0xF8,0x5E,0xE4,0x15,0x48,0xC6,0xC0, +0xD0,0xE4,0xFD,0xEE,0x88,0x66,0x9C,0x28,0x85,0x29,0x1C,0x21,0xD8,0xC2,0xF4,0x00, +0x01,0x0D,0x41,0x24,0x0D,0x61,0x20,0x0D,0x81,0x1C,0x0D,0xA1,0x18,0x0D,0xC1,0x14, +0x0D,0xE1,0x10,0x0E,0x01,0x0C,0x0E,0x21,0x08,0xCA,0xF7,0x24,0x14,0x1C,0xA1,0x04, +0x98,0xC0,0x99,0x40,0x08,0xF7,0x01,0x4C,0xE7,0x36,0x54,0xE7,0x0F,0x18,0xE5,0x00, +0x8D,0x47,0x9C,0xC4,0x5D,0x4A,0x00,0x9C,0xA1,0x5C,0xC2,0x09,0xC0,0xF4,0x00,0x01, +0x23,0xFF,0x91,0xC8,0xC7,0x7A,0x10,0xFE,0xE0,0xFE,0xFF,0x0C,0xA6,0x02,0x44,0xA5, +0xBC,0x0C,0xA6,0x00,0xFE,0xE0,0x80,0x00,0xC8,0xC7,0x26,0x18,0x08,0xA6,0x01,0x44, +0xA5,0xBD,0x5C,0xA5,0x04,0x0C,0xA6,0x01,0xC8,0xC7,0x7A,0x30,0xC8,0xE7,0x24,0x28, +0x08,0xA7,0x01,0x50,0xA5,0x01,0x0C,0xA7,0x01,0xC8,0xE0,0x01,0x00,0x08,0xA6,0x01, +0x44,0xA5,0x3C,0xC0,0xF4,0x00,0x01,0x20,0xA3,0xC8,0x0C,0xA6,0x02,0xCB,0x27,0x26, +0x00,0xC8,0xA5,0x01,0x00,0xC8,0xE7,0x7A,0x10,0x0C,0xA6,0x00,0x0C,0xC7,0x02,0xC8, +0xC6,0x01,0x00,0x0C,0xC7,0x00,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x08,0x78,0x10,0xC1, +0x05,0x51,0x00,0x30,0x41,0x04,0x43,0x8D,0x07,0x10,0xE1,0x06,0x13,0x01,0x04,0xC2, +0x00,0x10,0x01,0x41,0x66,0xC4,0x42,0xE0,0xC5,0xC3,0xA0,0x10,0x01,0x42,0xF7,0x35, +0xC3,0x80,0x10,0x01,0x5E,0xF7,0x00,0xC1,0xE0,0x10,0x01,0x43,0xD7,0x3D,0xC1,0xC0, +0x10,0x01,0x41,0xAB,0x3C,0x5F,0xDE,0x00,0xFE,0x10,0x02,0x54,0xFF,0xBD,0x09,0xE4, +0xFF,0x9C,0x0B,0xE2,0xFD,0xEF,0x02,0x40,0xFD,0xCE,0x02,0xC2,0x50,0xC0,0x20,0x98, +0xE0,0x53,0x60,0xFF,0xE4,0x00,0x01,0x73,0x20,0x60,0x4A,0x4C,0xA6,0x10,0x8C,0xB9, +0x08,0xA5,0x01,0x0C,0xA8,0x01,0xE4,0x00,0x01,0x29,0x88,0xBA,0xD7,0x1A,0x00,0xA5, +0x40,0xBA,0xC5,0x5C,0xA5,0x00,0xD5,0x67,0x00,0x54,0x5D,0xA7,0x15,0x48,0xBE,0xB8, +0x20,0x81,0x36,0x43,0x47,0x7C,0x4D,0x86,0x10,0x13,0x5A,0x00,0x5F,0x42,0x33,0x20, +0x00,0x91,0x8D,0x99,0x8C,0xBC,0x0A,0x2C,0x01,0x8F,0x4E,0x5E,0x31,0x06,0x13,0x5A, +0xEE,0x42,0x31,0xDB,0x4F,0x5A,0x08,0x11,0x85,0x00,0x8F,0x5D,0x40,0xB1,0x60,0xE4, +0x00,0x00,0x91,0x8D,0x99,0x4F,0x5A,0x08,0x0A,0x2C,0x01,0x8F,0x5D,0x41,0x9C,0x2C, +0x5E,0x31,0x06,0x11,0x8C,0x00,0x40,0xB1,0xDB,0xE4,0x00,0x00,0x57,0x20,0x84,0xB6, +0x43,0x47,0x84,0x13,0x5A,0x00,0x5F,0x42,0x3B,0x20,0x00,0x85,0x8C,0xBC,0x1F,0x5A, +0x12,0x11,0x85,0x00,0x4F,0x5A,0x08,0x4C,0xA6,0x10,0x8F,0x5D,0x8C,0xB9,0x08,0xA5, +0x00,0x40,0xA5,0xDB,0x40,0xA5,0x60,0x0C,0xBA,0x01,0x9C,0xC1,0x9E,0xE1,0x9F,0xC1, +0x9C,0xE1,0x5C,0xC6,0x00,0x9D,0x02,0x5E,0xF7,0x00,0x5F,0xDE,0x00,0x5F,0x47,0x00, +0xD5,0x5A,0xFA,0x45,0xC0,0xF4,0x00,0x01,0xFE,0xE0,0xFE,0xFF,0xC8,0xE7,0x7A,0x10, +0x0C,0xC7,0x02,0x44,0xC6,0xBC,0x0C,0xC7,0x00,0x0E,0x21,0x0A,0x0E,0x01,0x0E,0x0D, +0xE1,0x12,0x0D,0xC1,0x16,0x0D,0xA1,0x1A,0x0D,0x81,0x1E,0x0D,0x61,0x22,0x0D,0x41, +0x26,0x1C,0x21,0x28,0x85,0x29,0x20,0x60,0xD6,0xC0,0xC0,0x10,0x01,0xC0,0xF4,0x00, +0x01,0xFC,0xC6,0x08,0x18,0xC8,0xE7,0x23,0x08,0x08,0xA6,0x01,0x0C,0xA7,0x01,0x08, +0xA6,0x19,0x0C,0xA7,0x61,0x9C,0xC2,0x9C,0xE4,0xC0,0xB4,0x00,0x01,0xC8,0xA5,0x23, +0x38,0x5C,0xE5,0x0D,0x23,0xFF,0x95,0xE4,0x00,0x00,0x6B,0x20,0x64,0xC6,0xC0,0xC0, +0x10,0x01,0xC0,0xF4,0x00,0x01,0xFC,0xC6,0x07,0xE8,0xC8,0xE7,0x23,0x08,0x08,0xA6, +0x01,0x0C,0xA7,0x01,0x08,0xA6,0x19,0x0C,0xA7,0x61,0x9C,0xC2,0x9C,0xE4,0xC0,0xB4, +0x00,0x01,0xC8,0xA5,0x23,0x38,0x5C,0xE5,0x0D,0x23,0xFF,0x95,0x85,0x29,0xFC,0xA0, +0x3E,0x3E,0xC2,0xE0,0x10,0x01,0xC0,0x80,0x10,0x01,0xFC,0xD7,0x08,0x60,0xFC,0xE4, +0x08,0x48,0x0C,0xA6,0x17,0x0C,0xA6,0x15,0x0C,0xA7,0x17,0x0C,0xA7,0x0B,0x0C,0xA7, +0x15,0xC0,0xA0,0x10,0x01,0xFF,0x05,0x06,0xB2,0x0C,0x18,0x03,0xC3,0x00,0x10,0x01, +0xFF,0x38,0x06,0xAA,0xEC,0x18,0x06,0xAB,0xFF,0x00,0x19,0x18,0xEF,0x17,0x08,0x61, +0xFE,0xE0,0x28,0x24,0x0E,0xE6,0x03,0xFE,0xE0,0x2C,0x2B,0x0E,0xE6,0x05,0xFE,0xE0, +0x09,0x07,0x0E,0xE6,0x07,0xFE,0xE0,0x0C,0x0A,0x0E,0xE6,0x09,0xFE,0xE0,0x2D,0x00, +0x0E,0xE6,0x0B,0xFE,0xE0,0x1C,0x1A,0x0E,0xE6,0x0D,0xFE,0xE0,0x2A,0x29,0x0E,0xE6, +0x0F,0xFE,0xE0,0x05,0x04,0x0E,0xE6,0x11,0xFE,0xE0,0x08,0x06,0x0E,0xE6,0x13,0xFC, +0xC0,0x22,0x23,0xEC,0xC4,0x08,0x49,0xFC,0xC0,0x20,0x16,0x0C,0xC7,0x03,0xFC,0xC0, +0x1E,0x14,0x0C,0xC7,0x05,0xFC,0xC0,0x12,0x0D,0x0C,0xC7,0x07,0xFC,0xC0,0x0B,0x0E, +0x0C,0xC7,0x09,0xFC,0xC0,0x21,0x17,0x0C,0xC7,0x0D,0xFC,0xC0,0x1F,0x15,0x0C,0xC7, +0x0F,0xFC,0xC0,0x1D,0x13,0x0C,0x19,0x03,0x0C,0xC7,0x11,0xFC,0xC0,0x10,0x11,0x0C, +0xC7,0x13,0xFC,0xE0,0x0C,0x00,0xEC,0xE5,0x06,0xB3,0x85,0x29,0x20,0x61,0x26,0xC0, +0xB4,0x00,0x01,0xC2,0xE0,0x10,0x01,0xC0,0x80,0x10,0x01,0xC8,0xA5,0x22,0x9C,0xFE, +0xF7,0x08,0x60,0xFC,0x84,0x06,0xB2,0x98,0xC0,0x98,0xE0,0x43,0x06,0xBC,0x0B,0x18, +0x01,0x0F,0x05,0x01,0x24,0xE4,0x37,0x43,0x06,0x24,0x0B,0x18,0x01,0xEF,0x05,0x01, +0x4D,0x9C,0xE1,0x9C,0xC2,0x5C,0xE7,0x00,0x9C,0xA4,0xD0,0xEC,0xFF,0x0E,0x50,0xC0, +0x8C,0xE4,0x00,0x00,0x93,0x20,0x65,0x42,0xC0,0xB4,0x00,0x01,0xC2,0xE0,0x10,0x01, +0xC0,0x80,0x10,0x01,0xC8,0xA5,0x22,0x9C,0xFE,0xF7,0x08,0x48,0xFC,0x84,0x06,0xAA, +0x98,0xC0,0x98,0xE0,0x43,0x06,0xBC,0x0B,0x18,0x01,0x0F,0x05,0x01,0x24,0xE4,0x37, +0x43,0x06,0x24,0x0B,0x18,0x01,0xEF,0x05,0x01,0x4D,0x9C,0xE1,0x9C,0xC2,0x5C,0xE7, +0x00,0x9C,0xA4,0xD0,0xEC,0xFF,0x0E,0x50,0xC0,0x8A,0xC0,0xF4,0x00,0x01,0xC8,0xE7, +0x24,0x14,0x0C,0xC7,0x01,0x85,0x29,0x1C,0x21,0xE0,0x0D,0x21,0x1C,0x0D,0x41,0x18, +0x0D,0x61,0x14,0x0D,0x81,0x10,0x0D,0xA1,0x0C,0x0D,0xC1,0x08,0x0D,0xE1,0x04,0xC1, +0x54,0x00,0x01,0x50,0xE0,0x30,0xC9,0x8A,0x25,0xC0,0x0C,0xEC,0x01,0xC9,0x6A,0x24, +0x81,0xC1,0xC0,0x10,0x01,0x18,0xEB,0x00,0xC1,0xE0,0x10,0x01,0xEC,0x8E,0x00,0x02, +0xEC,0xEF,0x00,0x66,0x50,0x60,0x64,0x95,0xAF,0xC9,0xAD,0x42,0x40,0x40,0x84,0x69, +0x84,0xE8,0xC9,0x4A,0x22,0x28,0x50,0xE0,0x40,0x50,0xC0,0x44,0x0C,0xEA,0x01,0x0C, +0xCA,0x01,0xEC,0xEF,0x00,0x66,0xEC,0x8E,0x00,0x02,0x50,0x60,0x1E,0x40,0x84,0x69, +0x84,0xE8,0x50,0xE0,0x10,0x0C,0xEC,0x01,0x18,0x0B,0x00,0x0D,0xE1,0x06,0x0D,0xC1, +0x0A,0x0D,0xA1,0x0E,0x0D,0x81,0x12,0x0D,0x61,0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E, +0x1C,0x21,0x20,0x85,0x29,0xFC,0x21,0xFF,0x28,0xC0,0x80,0x10,0x01,0xED,0xC1,0x00, +0xC0,0xEE,0x81,0x00,0xA8,0xED,0x21,0x00,0xD4,0xED,0x41,0x00,0xD0,0xED,0x61,0x00, +0xCC,0xED,0x81,0x00,0xC8,0xED,0xA1,0x00,0xC4,0xED,0xE1,0x00,0xBC,0xEE,0x01,0x00, +0xB8,0xEE,0x21,0x00,0xB4,0xEE,0x41,0x00,0xB0,0xEE,0x61,0x00,0xAC,0xEE,0xA1,0x00, +0xA4,0xEE,0xC1,0x00,0xA0,0xFC,0x84,0x05,0x7C,0x1C,0x61,0x08,0x50,0xA0,0x60,0xE7, +0xFF,0x93,0x22,0xC0,0xD4,0x00,0x01,0xC8,0xE6,0x3C,0xCC,0xC8,0xC6,0x22,0x28,0x1D, +0xC1,0x68,0x0A,0x86,0x01,0x88,0xCE,0x08,0xA7,0x01,0x0C,0xA6,0x01,0x9C,0xE4,0xC0, +0xB4,0x00,0x01,0x9C,0xC2,0xC8,0xA5,0x3C,0xFC,0x5C,0xE5,0x0D,0x23,0xFF,0xAD,0x1C, +0xE1,0x08,0x1C,0xC1,0x68,0x0C,0x87,0x02,0x08,0xA7,0x05,0x4C,0xA5,0x10,0x8C,0xA4, +0x08,0x87,0x07,0x0C,0x85,0x01,0x9C,0xE8,0xD4,0xE6,0xFF,0x6E,0xC0,0xF4,0x00,0x01, +0xC8,0xC7,0x24,0x2C,0x0C,0x06,0x01,0x98,0xAC,0xC8,0xC7,0x24,0x10,0x0C,0xA6,0x01, +0xC8,0xC7,0x22,0x04,0x98,0xBF,0x18,0xA6,0x00,0xFD,0x41,0x00,0x80,0xFC,0xC1,0x00, +0xA0,0xC9,0xE7,0x22,0x08,0x89,0x8A,0x52,0x20,0x10,0x99,0x60,0xFE,0x41,0x00,0x98, +0x0C,0xC1,0x04,0xC2,0xC0,0x10,0x01,0xC2,0xA0,0x10,0x01,0xC0,0xF4,0x00,0x01,0xC8, +0xE7,0x22,0x29,0xC0,0xB4,0x00,0x01,0x1A,0x27,0x00,0xC8,0xA5,0x22,0x00,0x54,0xEB, +0x01,0x5E,0x6B,0x00,0x5C,0xE0,0x09,0x4E,0x73,0x09,0xC8,0xC0,0x3F,0x00,0x1E,0x73, +0x27,0x99,0xA0,0x4E,0x73,0x10,0x8E,0x65,0x50,0xA0,0x3F,0x48,0xE6,0x28,0x0C,0xF3, +0x01,0x21,0xA0,0x5A,0x08,0xEF,0x01,0xC8,0xC0,0xFF,0xFE,0x44,0xE7,0x34,0x0C,0xEF, +0x01,0x8A,0x12,0xE4,0x00,0x00,0x1D,0x08,0xEF,0x01,0x50,0xE7,0x01,0xE7,0xFF,0xFF, +0xE3,0x98,0x60,0x98,0x80,0xE7,0xFF,0xF4,0xEA,0xC0,0xA0,0x10,0x01,0x94,0xCF,0xE8, +0xE5,0x08,0x79,0xC8,0xC6,0x42,0x40,0x0C,0xF0,0x01,0xEC,0x96,0x00,0x02,0xEC,0xF5, +0x00,0x66,0x50,0x60,0x26,0x40,0x84,0x31,0x84,0xE8,0x9E,0x02,0x0C,0xE1,0x06,0xD6, +0x07,0xFE,0x96,0x88,0x72,0xE7,0xFF,0xF3,0xE0,0x4C,0x63,0x08,0x21,0xA0,0x42,0xFC, +0xA1,0x00,0xA0,0x8C,0x65,0x08,0xE3,0xF9,0xE4,0x00,0x00,0x27,0xFC,0xC1,0x00,0xA0, +0x08,0xEC,0x01,0x8C,0x66,0x08,0xC3,0xF9,0x40,0xE6,0x3D,0x0C,0xEC,0x01,0x9D,0xA1, +0x5D,0xAD,0x00,0xD1,0xA2,0xFB,0xF6,0x0C,0x13,0x01,0x9E,0x21,0x9D,0x61,0x5E,0x31, +0x00,0x9D,0x82,0xD1,0x6C,0xF9,0xC6,0xE8,0xA1,0x00,0x80,0x88,0xCA,0x9A,0xE0,0x98, +0xE0,0x08,0x86,0x00,0xD4,0x85,0x00,0x50,0x8A,0xE7,0xE4,0x00,0x00,0x0D,0x88,0x85, +0x9C,0xE1,0x9C,0xC2,0x5C,0xE7,0x00,0xD0,0xEC,0x00,0x52,0x88,0xA4,0xE7,0xFF,0xFF, +0xC9,0xFC,0xE1,0x00,0xA0,0x4E,0xF7,0x08,0x8E,0xE7,0xC0,0xA0,0x10,0x01,0x08,0x97, +0xE0,0xC0,0xE0,0x10,0x01,0xFC,0xA5,0x0B,0xEE,0xFC,0xE7,0x0B,0xE2,0x52,0xE0,0xFF, +0x88,0xC7,0x20,0x80,0x3C,0x0B,0x0A,0x00,0x43,0x18,0xBB,0x43,0x18,0x20,0x1B,0x06, +0x00,0x13,0x06,0x00,0x9D,0x42,0xC3,0x00,0x1D,0x4E,0x20,0x00,0x49,0x98,0xDF,0x18, +0xC7,0x00,0x9C,0xE1,0xD4,0xE5,0xFF,0xDE,0xE4,0x00,0x00,0x15,0x9C,0xC1,0xD4,0xC5, +0xFE,0xA6,0xC1,0x54,0x00,0x01,0x50,0xC0,0x7F,0xC8,0xEA,0x22,0x04,0x18,0xC7,0x00, +0xC8,0xEA,0x22,0x08,0x50,0xC0,0x1E,0x98,0x60,0x0C,0xC7,0x01,0xC9,0x4A,0x3C,0xCC, +0xE7,0xFF,0xF9,0x38,0x08,0xEE,0x01,0x0C,0xEA,0x01,0xC0,0xB4,0x00,0x01,0x9D,0x44, +0xC8,0xA5,0x3C,0xFC,0x9D,0xC2,0x5D,0x45,0x0D,0x23,0xFF,0xAD,0xC0,0xF4,0x00,0x01, +0x98,0xA2,0xC8,0xC7,0x24,0x2C,0x0C,0xA6,0x01,0xC8,0xE7,0x22,0x28,0x0E,0x87,0x01, +0xEE,0xC1,0x00,0xA2,0xEE,0xA1,0x00,0xA6,0xEE,0x81,0x00,0xAA,0xEE,0x61,0x00,0xAE, +0xEE,0x41,0x00,0xB2,0xEE,0x21,0x00,0xB6,0xEE,0x01,0x00,0xBA,0xED,0xE1,0x00,0xBE, +0xED,0xC1,0x00,0xC2,0xED,0xA1,0x00,0xC6,0xED,0x81,0x00,0xCA,0xED,0x61,0x00,0xCE, +0xED,0x41,0x00,0xD2,0xED,0x21,0x00,0xD6,0xFC,0x21,0x00,0xD8,0x85,0x29,0x1C,0x21, +0xD0,0xC0,0x80,0x10,0x01,0x0D,0x41,0x28,0x0D,0x61,0x24,0x0D,0x21,0x2C,0x89,0x43, +0xFC,0x84,0x05,0x5C,0x88,0x61,0x50,0xA0,0x20,0xE7,0xFF,0x8E,0x2E,0x08,0xE1,0x01, +0x89,0x61,0x5C,0xE7,0xB3,0x98,0xE0,0x20,0x00,0x99,0x4C,0xEA,0x08,0xC0,0xC0,0x10, +0x01,0xFC,0xC6,0x06,0xAE,0x8C,0xC7,0x98,0xAF,0x0C,0xA6,0x01,0xC0,0xC0,0x10,0x01, +0xFC,0xC6,0x06,0xB6,0x8C,0xE6,0x0C,0x07,0x01,0xE4,0x00,0x00,0x79,0x4C,0xCA,0x08, +0xC0,0x80,0x10,0x01,0xC0,0xA0,0x10,0x01,0xFC,0x84,0x06,0xAE,0xFC,0xA5,0x06,0xB6, +0x8C,0x86,0x8C,0xC5,0x5C,0xA7,0x04,0x9C,0xE1,0x4E,0xE5,0x40,0x8E,0xE5,0x08,0xAB, +0x01,0x5C,0xA7,0xBB,0x20,0x00,0x45,0x0C,0xA4,0x01,0x0E,0xE6,0x01,0x9D,0x62,0x5C, +0xE2,0x09,0x23,0xFF,0x89,0x4C,0xEA,0x08,0xC0,0xC0,0x10,0x01,0xFC,0xC6,0x06,0xAE, +0x8C,0xC7,0x08,0xA6,0x01,0xC8,0xC0,0x01,0x8A,0x9C,0xA1,0x40,0xC5,0x33,0xC0,0xC9, +0x9B,0xEE,0x20,0x01,0x01,0x4C,0xA5,0x08,0x50,0xC0,0xC5,0x50,0xE0,0x15,0x40,0xC5, +0x33,0xFC,0xC6,0xB3,0x1F,0xC0,0xC2,0x69,0xCA,0x20,0x00,0x55,0x9C,0xE1,0x8C,0xC5, +0x5C,0xE7,0x04,0xC0,0xE0,0x80,0x04,0x23,0xFF,0xB9,0xE4,0x00,0x00,0x01,0x4D,0x4A, +0x08,0xC0,0xC0,0x10,0x01,0xFC,0xC6,0x06,0xA6,0x8D,0x46,0x0C,0xEA,0x01,0xE4,0x00, +0x00,0x29,0xC0,0xC0,0x10,0x01,0xFC,0xC6,0x06,0xA6,0x8C,0xE6,0x50,0xC0,0x15,0x0C, +0xC7,0x01,0x0D,0x61,0x26,0x0D,0x41,0x2A,0x0D,0x21,0x2E,0x1C,0x21,0x30,0x85,0x29, +0x9C,0x38,0x98,0x60,0x0D,0x21,0x04,0xE7,0xFF,0xFD,0xEE,0x0D,0x21,0x06,0x98,0x61, +0x9C,0x28,0xE7,0xFF,0xFD,0xD9,0xC8,0xA0,0x08,0x00,0xD0,0x68,0x00,0xC2,0x5C,0x62, +0x09,0xC8,0xA0,0x04,0x00,0x20,0x00,0x37,0x5C,0x64,0x09,0xC8,0xA0,0x02,0x00,0x48, +0xA0,0x28,0xC0,0xD4,0x00,0x01,0xCB,0x20,0x8F,0xFF,0xC8,0xE6,0x26,0x04,0x0A,0xE7, +0x01,0x0B,0x07,0x01,0x47,0x18,0xCC,0x0F,0x07,0x01,0x0B,0x07,0x01,0xCB,0x18,0x30, +0x00,0x0F,0x07,0x01,0xC8,0xE6,0x26,0x2C,0xCB,0x26,0x26,0x20,0x0C,0x67,0x01,0x5E, +0xF7,0x04,0xC8,0xA5,0x80,0x00,0x4F,0x03,0x09,0x98,0xE0,0xC8,0xC6,0x26,0x1C,0xE4, +0x00,0x00,0x1F,0x0C,0xE6,0x01,0x0C,0xB9,0x01,0x9C,0xE1,0x5C,0xE7,0x04,0xD7,0x07, +0xFF,0xAD,0x54,0xE4,0x01,0x20,0xE0,0x78,0xC0,0xF4,0x00,0x01,0x50,0xA0,0x10,0xC8, +0xC7,0x26,0x24,0x18,0xA6,0x00,0xC8,0xE7,0x24,0x34,0x1C,0xC3,0xFF,0x5C,0xC6,0x04, +0x0C,0xC7,0x01,0x54,0xE4,0x02,0x20,0xE0,0x78,0xC0,0xF4,0x00,0x01,0x50,0xA0,0x10, +0xC8,0xC7,0x26,0x25,0x18,0xA6,0x00,0xC8,0xE7,0x24,0x38,0x1C,0xC3,0xFF,0x5C,0xC6, +0x04,0x0C,0xC7,0x01,0x54,0xE4,0x04,0x20,0xE0,0x78,0xC0,0xF4,0x00,0x01,0x50,0xA0, +0x10,0xC8,0xC7,0x26,0x28,0x18,0xA6,0x00,0xC8,0xE7,0x24,0x3C,0x1C,0xC3,0xFF,0x5C, +0xC6,0x04,0x0C,0xC7,0x01,0x54,0x84,0x08,0x20,0x80,0x74,0xC0,0xF4,0x00,0x01,0x50, +0xA0,0x10,0xC8,0xC7,0x26,0x29,0x18,0xA6,0x00,0x9C,0x7F,0xC8,0xE7,0x24,0x40,0x5C, +0x63,0x04,0x0C,0x67,0x01,0xC0,0xF4,0x00,0x01,0xC8,0xE7,0x26,0x04,0x0E,0xE7,0x01, +0x85,0x29,0x9C,0x38,0xFC,0xC0,0xA0,0x30,0x0D,0x41,0x00,0x0D,0x21,0x04,0xC1,0x54, +0x00,0x01,0xC8,0xEA,0x26,0x04,0x0C,0xC7,0x01,0xC8,0xEA,0x26,0x30,0xFC,0xC0,0x10, +0x11,0x98,0x60,0x0C,0xC7,0x01,0xE4,0x00,0x5C,0x2C,0xC8,0xAA,0x26,0x20,0x50,0xE0, +0xF4,0xC9,0x4A,0x26,0x1C,0xFC,0xC0,0x80,0x10,0x0C,0xEA,0x01,0x0C,0xC5,0x01,0x9C, +0xE1,0x5C,0xE7,0x04,0xC0,0xE0,0x20,0x04,0x23,0xFF,0xC5,0xFC,0xC0,0xE0,0x30,0xC0, +0xF4,0x00,0x01,0xC8,0xE7,0x26,0x04,0x0C,0xC7,0x01,0x0D,0x41,0x02,0x0D,0x21,0x06, +0x9C,0x28,0x85,0x29,0x9C,0x38,0x98,0x61,0x0D,0x21,0x04,0xE7,0xFF,0xF3,0x62,0x98, +0x61,0xE4,0x00,0x0F,0x36,0x98,0x61,0xE4,0x00,0x0F,0x6A,0x98,0x61,0xE7,0xFF,0xA2, +0x24,0x98,0x60,0xE7,0xFF,0xF3,0x32,0x98,0x60,0xE4,0x00,0x0F,0x06,0x98,0x60,0xE4, +0x00,0x0F,0x3A,0x0D,0x21,0x06,0x98,0x60,0x9C,0x28,0xE7,0xFF,0xA1,0xEB,0x9C,0x30, +0xC0,0xE0,0x10,0x01,0x0D,0x21,0x0C,0xE8,0xE7,0x00,0x4B,0x0D,0x41,0x08,0x0D,0x61, +0x04,0x0D,0x81,0x00,0x5C,0xE7,0x00,0xC0,0xE0,0x14,0x00,0x20,0x04,0xE5,0xC0,0xE0, +0x10,0x01,0xC0,0xC0,0x10,0x01,0xF0,0x87,0x0C,0x0C,0xFC,0xC6,0x09,0xE4,0x98,0xE0, +0xE4,0x00,0x00,0x5D,0x9C,0xE1,0x08,0xA6,0x00,0x5C,0xE7,0x00,0xC0,0xBE,0x4A,0x68, +0x20,0x00,0xC9,0xC0,0xBF,0x44,0x6C,0x9C,0xC2,0x20,0x00,0x55,0xC0,0xE0,0x10,0x01, +0xF0,0xC7,0x06,0xDE,0x9C,0xC1,0xF8,0xC7,0x06,0xDE,0xE4,0x00,0x00,0x19,0xD4,0x87, +0xFE,0xB5,0xE4,0x00,0x02,0x0B,0xC0,0xE0,0x10,0x01,0xF0,0xE7,0x06,0xDE,0xD0,0xE9, +0x07,0x31,0xC0,0xE0,0x10,0x01,0x98,0x60,0xF8,0x07,0x06,0xDE,0xC0,0xE0,0x10,0x01, +0xEC,0xE7,0x00,0x86,0x84,0xE8,0xC0,0xE0,0x01,0x1F,0x98,0x99,0x44,0xE7,0x24,0xC0, +0xE0,0x01,0x1D,0xC1,0x74,0x00,0x01,0xC9,0x4B,0x7A,0x10,0x0C,0xEA,0x02,0xC8,0xE7, +0x01,0x00,0x0C,0xEA,0x00,0xC9,0x6B,0x7A,0x30,0xC9,0x80,0x01,0x00,0x0D,0x8B,0x00, +0xE7,0xFF,0xFE,0x28,0x0C,0xEA,0x02,0xC8,0xE7,0x01,0x00,0x0C,0xEA,0x00,0x0D,0x8B, +0x00,0x98,0x60,0xE4,0x00,0x59,0xB2,0xC0,0xE0,0x01,0x1F,0x50,0xE7,0x06,0xC0,0xE0, +0x01,0x1D,0xC0,0xC0,0x10,0x01,0xC0,0xE0,0x10,0x01,0xEC,0x66,0x04,0xDA,0xEC,0xE7, +0x00,0x86,0x84,0xE8,0xC0,0xE0,0x10,0x01,0xC8,0xA0,0xFF,0xEF,0xE8,0xC7,0x06,0x89, +0x44,0xC6,0x2C,0xC8,0x80,0xFE,0xFF,0xEC,0xC7,0x06,0x89,0xE8,0xC7,0x06,0x89,0x44, +0xC6,0x24,0xEC,0xC7,0x06,0x89,0xC0,0xF4,0x00,0x01,0xC8,0xC7,0x26,0x18,0xFC,0x80, +0x80,0x00,0x08,0xA6,0x01,0x44,0xA5,0x25,0x5C,0xA5,0x04,0x0C,0xA6,0x01,0xC8,0xC7, +0x24,0x28,0x08,0xA6,0x01,0x50,0xA5,0x01,0x0C,0xA6,0x01,0xC0,0xC0,0x10,0x01,0xC8, +0xE7,0x7A,0x10,0x98,0x60,0xEC,0x06,0x06,0x84,0xC8,0xA0,0xFE,0xFF,0x08,0xC7,0x01, +0x44,0xC6,0x2C,0x0C,0xC7,0x01,0xE4,0x00,0x23,0xCA,0xE4,0x00,0x0C,0xDA,0x98,0x61, +0xE4,0x00,0x00,0x0D,0x98,0x60,0x0D,0x81,0x02,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D, +0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x06,0xDE,0xE7, +0xFF,0xFD,0xEF,0x9C,0x38,0xFC,0xA0,0x07,0xFF,0x0D,0x21,0x04,0x0D,0x41,0x00,0xC0, +0xC0,0x10,0x01,0xFC,0xE6,0x0C,0x0C,0x0C,0xA7,0x09,0x0C,0xA7,0x07,0x50,0xA0,0x15, +0x0C,0xA7,0x10,0x0C,0xA7,0x0C,0x98,0xA9,0x18,0xA7,0x04,0xFC,0xA0,0x01,0x00,0x0C, +0xA7,0x0B,0xFC,0xA0,0x04,0x00,0x0C,0xA7,0x03,0x50,0xA0,0x26,0xF8,0xA6,0x0C,0x0C, +0x98,0xC4,0x99,0x42,0x18,0xC7,0x14,0x19,0x47,0x01,0x98,0x60,0xE4,0x00,0x0F,0x9C, +0xC0,0xC0,0x10,0x01,0xFC,0xA6,0x06,0xF1,0xF8,0x06,0x06,0xF1,0xC0,0xC0,0x10,0x01, +0xC0,0xE0,0x10,0x01,0x18,0x05,0x01,0xF8,0x06,0x06,0xFC,0xFC,0xA6,0x06,0xFC,0xC0, +0xC0,0x10,0x01,0xEC,0x07,0x06,0x89,0x98,0xE1,0x18,0xE5,0x01,0x98,0xAA,0xF8,0xA6, +0x06,0xDE,0xC0,0xC0,0x10,0x01,0xEC,0xE6,0x06,0xC4,0xC0,0xC0,0x10,0x01,0xF8,0x06, +0x06,0xDF,0xC0,0xC0,0x10,0x01,0xEC,0x06,0x06,0xEC,0xC0,0xC0,0x10,0x01,0xEC,0x06, +0x06,0xF8,0xC0,0xC0,0x10,0x01,0xEC,0x06,0x07,0x23,0xC0,0xC0,0x10,0x01,0xF8,0x06, +0x06,0xE8,0xC0,0xC0,0x10,0x01,0xF8,0x06,0x06,0xBD,0xC0,0xC0,0x10,0x01,0xF8,0xE6, +0x06,0xFE,0xC0,0xC0,0x10,0x01,0xF8,0xE6,0x06,0xD2,0xC0,0xE0,0x10,0x01,0x1C,0xC0, +0xC8,0xF8,0xC7,0x06,0xD0,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x07,0x00,0xC0,0xE0,0x10, +0x01,0xF8,0x07,0x07,0x02,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x06,0xF0,0xC0,0xE0,0x10, +0x01,0xF8,0x07,0x07,0x01,0xC0,0xE0,0x10,0x01,0xEC,0x07,0x07,0x05,0xC0,0xE0,0x10, +0x01,0x50,0xC0,0xB1,0xEC,0xC7,0x06,0xC9,0xC0,0xE0,0x10,0x01,0xEC,0x07,0x07,0x0C, +0xC0,0xE0,0x10,0x01,0xF8,0x07,0x06,0xBC,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x06,0xE0, +0xC0,0xE0,0x10,0x01,0xF9,0x47,0x07,0x06,0xC0,0xE0,0x10,0x01,0xF9,0x47,0x06,0xBE, +0xC0,0xE0,0x10,0x01,0xEC,0x07,0x06,0xE4,0xC0,0xE0,0x10,0x01,0x50,0xC0,0x33,0xF8, +0xC7,0x06,0xFF,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x06,0xF3,0xC0,0xE0,0x10,0x01,0x50, +0xA0,0x50,0xF8,0x07,0x07,0x18,0xC0,0x60,0x10,0x01,0xC0,0xE0,0x10,0x01,0xFC,0x63, +0x09,0x4C,0xEC,0xE7,0x00,0x7E,0x98,0x80,0x84,0xE8,0xC0,0xC0,0x10,0x01,0xC0,0xF4, +0x00,0x01,0xF0,0xA6,0x04,0xD4,0xC8,0xC7,0x79,0xE9,0x18,0xA6,0x00,0xC8,0xC7,0x79, +0xD0,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x08,0xD8,0x18,0x07,0x5A,0x18,0x07,0x04,0x18, +0x07,0x05,0x18,0x07,0x06,0x18,0x07,0x20,0x18,0x07,0x21,0x18,0x07,0x22,0x18,0x07, +0x3C,0x18,0x07,0x3D,0x18,0x07,0x3E,0x18,0x07,0x58,0x18,0x07,0x59,0xC0,0xE0,0x10, +0x01,0xF0,0xE7,0x04,0xD5,0xC0,0xA0,0x10,0x01,0x0C,0xE6,0x01,0xFC,0xA5,0x08,0xA8, +0xC0,0xC0,0x10,0x01,0xC0,0xE0,0x10,0x01,0xFC,0xC6,0x08,0x78,0xFC,0xE7,0x0C,0x24, +0x0C,0x06,0x01,0x0C,0x06,0x31,0x0C,0x07,0x01,0x0C,0x07,0x31,0x0C,0x07,0x61,0xEC, +0x07,0x00,0x91,0x9C,0xC2,0x9C,0xE2,0xD4,0xC5,0xFF,0x4E,0xC1,0x40,0x10,0x01,0xE8, +0xEA,0x04,0x89,0x50,0xE7,0x01,0xEC,0xEA,0x04,0x89,0xE7,0xFF,0xF5,0xCC,0x50,0xC0, +0x19,0xE8,0xEA,0x04,0x89,0x50,0xE7,0x04,0xC0,0x80,0x10,0x01,0xEC,0xEA,0x04,0x89, +0xF8,0xC4,0x07,0x19,0xFC,0xE4,0x07,0x19,0x18,0xC7,0x03,0x18,0xC7,0x01,0x50,0xC0, +0x32,0x18,0xC7,0x05,0x18,0xC7,0x04,0x50,0xC0,0x50,0x98,0xA1,0x18,0xC7,0x07,0x18, +0xC7,0x06,0x18,0xA7,0x02,0xC0,0xC0,0x10,0x01,0xFC,0xE6,0x0B,0xFE,0x0C,0x07,0x09, +0x18,0x07,0x01,0x18,0x07,0x02,0x18,0x07,0x03,0x0C,0x07,0x05,0x0C,0x07,0x07,0x0C, +0x07,0x0B,0xC0,0xE0,0x10,0x01,0xF8,0x06,0x0B,0xFE,0xEC,0xA7,0x04,0x8B,0xC0,0xDA, +0x00,0x01,0xC0,0xE0,0x10,0x01,0xFC,0xC6,0x33,0x43,0xEC,0xC7,0x00,0xD0,0x50,0xC0, +0xC8,0xC0,0xE0,0x10,0x01,0xEC,0xC7,0x04,0x8D,0xC0,0xE0,0x10,0x01,0xC0,0xDA,0x00, +0x01,0xFC,0xC6,0x35,0xB2,0xEC,0xC7,0x00,0xD4,0xC0,0xE0,0x10,0x01,0xC0,0xDA,0x00, +0x01,0xFC,0xC6,0x34,0xDF,0x0D,0x41,0x02,0xEC,0xC7,0x00,0xDC,0x0D,0x21,0x06,0xC0, +0xDA,0x00,0x01,0xC0,0xE0,0x10,0x01,0xFC,0xC6,0x2B,0x0E,0x9C,0x28,0xEC,0xC7,0x00, +0xE0,0x85,0x29,0x9C,0x38,0xC0,0xF4,0x00,0x01,0x0D,0x21,0x04,0xC8,0xC7,0x3C,0x48, +0xFC,0xA0,0x05,0x00,0x0C,0xA6,0x01,0xC8,0xC7,0x3C,0x54,0xFC,0xA0,0x6E,0x00,0x0C, +0x06,0x01,0xC8,0xC7,0x3D,0xCC,0x0C,0xA6,0x01,0xC8,0xC7,0x3D,0xD0,0x50,0xA0,0x71, +0xC8,0xE7,0x3C,0x50,0x0C,0xA6,0x01,0xC8,0xA0,0xFF,0xFE,0x08,0xC7,0x01,0x44,0xC6, +0x2C,0x0C,0xC7,0x01,0xE7,0xFF,0xE1,0x5A,0xE7,0xFF,0xE2,0x22,0x0D,0x21,0x06,0x9C, +0x28,0xE7,0xFF,0xF5,0xE3,0x1C,0x21,0xE8,0x0D,0x21,0x14,0x0D,0x41,0x10,0x0D,0x61, +0x0C,0xE7,0xFF,0xF9,0xE4,0x98,0x62,0xE7,0xFF,0xB3,0x22,0xE7,0xFF,0x7F,0xFE,0x50, +0x60,0x26,0xE7,0xFF,0xE0,0x16,0xE7,0xFF,0x7B,0x66,0xE7,0xFF,0xFF,0x12,0xC1,0x54, +0x00,0x01,0xC8,0xEA,0x24,0x2C,0x08,0xC7,0x01,0xC0,0xE0,0x10,0x01,0x4C,0xC6,0x09, +0x9C,0xC1,0xF8,0xC7,0x06,0xD1,0xE7,0xFF,0xE7,0xF0,0x98,0x60,0xC1,0x60,0x10,0x01, +0xEC,0xEB,0x00,0x86,0x84,0xE8,0xC8,0xEA,0x3C,0x44,0x08,0xC7,0x01,0xC8,0xC6,0x10, +0x00,0x0C,0xC7,0x01,0xC8,0xEA,0x3C,0x4C,0x08,0xC7,0x01,0xC8,0xC6,0x10,0x00,0x0C, +0xC7,0x01,0xE7,0xFF,0xEB,0x86,0xE7,0xFF,0xEA,0x62,0xFC,0xA0,0xC0,0x00,0xC9,0x4A, +0x24,0x80,0x08,0xEA,0x01,0x44,0xE7,0x2D,0x5C,0xE7,0x04,0x0C,0xEA,0x01,0xE7,0xFF, +0xF5,0x8C,0xC0,0xC0,0x10,0x01,0xEC,0xEB,0x00,0x86,0xEC,0x66,0x04,0xDA,0x84,0xE8, +0x98,0xC0,0xC8,0xE0,0x48,0x00,0xC0,0xC7,0x00,0x0D,0xC8,0xC0,0x48,0x00,0xC0,0xC6, +0x00,0x0F,0x50,0xC6,0x04,0xC0,0xC7,0x00,0x0D,0xC8,0xC0,0x48,0x00,0xC0,0xC6,0x00, +0x0F,0x50,0xC6,0x08,0xC0,0xC7,0x00,0x0D,0xC0,0xE0,0x01,0x1F,0x50,0xE7,0x06,0xC0, +0xE0,0x01,0x1D,0xC1,0x54,0x00,0x01,0xC8,0xEA,0x79,0x04,0x0C,0x07,0x01,0xC8,0xEA, +0x79,0x00,0xFC,0xC0,0xEA,0x60,0x0C,0xC7,0x01,0xC8,0xEA,0x79,0x10,0xC9,0x6A,0x7A, +0x10,0xFC,0xC0,0x03,0x00,0x0C,0xC7,0x01,0x0C,0xEB,0x02,0xC8,0xE7,0x01,0x00,0x0C, +0xEB,0x00,0xC8,0xEA,0x7A,0x50,0x1E,0xE0,0xDF,0x0C,0xC7,0x02,0xC8,0xA0,0xFF,0xEF, +0x44,0xC6,0xBC,0x0C,0xC7,0x00,0x08,0xEB,0x01,0x44,0xE7,0x2C,0xCA,0xE0,0xFF,0x00, +0x0C,0xEB,0x01,0xC8,0xEA,0x26,0x04,0x08,0xC7,0x01,0x44,0xC6,0xBC,0xC8,0xC6,0x80, +0x00,0x0C,0xC7,0x01,0xC0,0xC0,0x10,0x01,0x08,0xA7,0x01,0xF0,0x86,0x05,0x26,0x44, +0xA5,0x25,0x0C,0xA7,0x01,0xC8,0xAA,0x26,0x08,0xFC,0xC6,0x05,0x26,0xCA,0xE0,0x0F, +0xFF,0x08,0x86,0x03,0x44,0x84,0xBC,0x0C,0x85,0x01,0xC8,0xAA,0x26,0x0C,0x08,0x86, +0x05,0x44,0x84,0xBC,0x0C,0x85,0x01,0xC8,0xA0,0x03,0xFF,0x08,0x86,0x07,0x44,0x84, +0x2C,0xC8,0xAA,0x26,0x10,0x0C,0x85,0x01,0x08,0xA6,0x09,0xC8,0xC0,0x03,0xFF,0x44, +0xA5,0x34,0xC8,0xCA,0x26,0x14,0x0C,0xA6,0x01,0x08,0xC7,0x01,0x50,0xC6,0x30,0x98, +0x60,0x0C,0xC7,0x01,0x98,0x81,0x98,0xA0,0xE4,0x00,0x4F,0xF0,0xC0,0xE0,0x10,0x01, +0xE8,0xA7,0x02,0xCC,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x04,0x6C,0x98,0x6F,0x0C,0xE1, +0x00,0x98,0x88,0xC0,0xC0,0x10,0x01,0xC0,0xE0,0x10,0x01,0xFC,0xC6,0x02,0xC8,0xFC, +0xE7,0x02,0xCE,0xC1,0x00,0x10,0x01,0xFD,0x08,0x03,0x64,0xE7,0xFF,0xD1,0x82,0xC8, +0xEA,0x26,0x18,0xFE,0xE0,0x80,0x00,0x08,0xC7,0x01,0xC9,0x4A,0x24,0x28,0x44,0xC6, +0xBD,0x5C,0xC6,0x04,0x0C,0xC7,0x01,0x08,0xEA,0x01,0x50,0xE7,0x01,0x0C,0xEA,0x01, +0x0C,0xEB,0x02,0x50,0xE7,0x10,0xFC,0xA0,0xFE,0xFF,0x0C,0xEB,0x00,0x0C,0xEB,0x02, +0x44,0xE7,0x2C,0xC0,0xDA,0x00,0x01,0x0C,0xEB,0x00,0xFC,0xC6,0x39,0xF5,0xC0,0xE0, +0x10,0x01,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0xEC,0xC7,0x00,0xD8,0x1C, +0x21,0x18,0x85,0x29,0x20,0xA0,0x9A,0x4C,0x84,0x08,0xC0,0xE0,0x10,0x01,0xFC,0xE7, +0x0B,0x14,0x8C,0x87,0xE4,0x00,0x00,0x1D,0x08,0xC7,0x01,0x9C,0xE2,0x0C,0xC3,0x01, +0x9C,0x62,0xD4,0xE4,0xFF,0xB6,0xE4,0x00,0x00,0xC5,0x20,0xA5,0x7A,0x4C,0x84,0x08, +0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x0B,0x14,0x8C,0x87,0x8A,0xE7,0x88,0xC7,0xE4,0x00, +0x00,0x1D,0x08,0xA3,0x01,0x9C,0x62,0x0C,0xA6,0x01,0x9C,0xC2,0xD4,0xC4,0xFF,0xB6, +0xC0,0xC0,0x10,0x01,0xC0,0xA0,0x10,0x01,0xFC,0xC6,0x09,0x4C,0xFC,0xA5,0x0C,0x0C, +0x10,0x85,0x04,0x10,0xA5,0x01,0x40,0xA5,0x23,0x5C,0xA5,0x00,0x4C,0xA5,0x10,0x8C, +0xB7,0xE4,0x00,0x00,0x27,0x0A,0xE7,0x02,0x08,0x87,0x00,0x9C,0xE4,0x8C,0x97,0x0C, +0x86,0x00,0x9C,0xC4,0xD4,0xE5,0xFF,0x8E,0x85,0x29,0x9C,0x38,0x0D,0x21,0x04,0x0D, +0x41,0x00,0xC1,0x54,0x00,0x01,0xC9,0x4A,0x36,0x00,0x10,0xEA,0x00,0x54,0xE7,0xFD, +0x18,0xEA,0x00,0x10,0xEA,0x00,0x50,0xE7,0x02,0x94,0xCF,0x18,0xEA,0x00,0xC8,0xC6, +0x42,0x40,0xC0,0xE0,0x10,0x01,0x98,0x6F,0xEC,0x87,0x00,0x02,0xC0,0xE0,0x10,0x01, +0x40,0x84,0x31,0xEC,0xE7,0x00,0x66,0x84,0xE8,0x10,0xEA,0x00,0x54,0xE7,0xFD,0x18, +0xEA,0x00,0x0D,0x41,0x02,0x0D,0x21,0x06,0x9C,0x28,0x85,0x29,0x20,0x60,0x18,0x20, +0x64,0x6E,0xC0,0xF4,0x00,0x01,0xFC,0xA0,0x02,0xC0,0xC8,0xC7,0x24,0x48,0x0C,0xA6, +0x01,0xC8,0xE7,0x24,0x54,0x98,0xC9,0x0C,0xC7,0x01,0x85,0x29,0xC0,0xE0,0x10,0x01, +0xFC,0xE7,0x06,0xA6,0xC0,0xD4,0x00,0x01,0x4C,0x63,0x08,0xC8,0xA6,0x24,0x58,0x8C, +0x67,0x08,0xE3,0x01,0x0C,0xE5,0x01,0xC8,0xA6,0x24,0x5C,0x0C,0xE5,0x01,0xC8,0xC6, +0x24,0x60,0x0C,0xE6,0x01,0x85,0x29,0xC0,0xC0,0x10,0x01,0xF8,0x06,0x06,0xBC,0xC0, +0xD4,0x00,0x01,0xC8,0xC6,0x79,0xE9,0x10,0xC6,0x00,0xC0,0xE0,0x10,0x01,0xF8,0xC7, +0x04,0xD4,0xC0,0xC0,0x10,0x01,0xFC,0xC6,0x07,0x58,0xF0,0xA7,0x04,0xD4,0xC0,0xE0, +0x10,0x01,0xEC,0xC7,0x06,0x94,0xC0,0xC0,0x10,0x01,0xE8,0xC6,0x06,0xA5,0x5C,0xA0, +0x01,0x54,0xC6,0x02,0x50,0xA0,0x80,0x48,0xA8,0x29,0x20,0xC1,0x40,0xC0,0xC0,0x10, +0x01,0x88,0x87,0xEC,0x06,0x06,0x7D,0x98,0xE0,0xC0,0xC0,0x10,0x01,0xFC,0xC6,0x0B, +0x60,0xEE,0xE4,0x06,0x96,0x43,0x07,0x34,0x8E,0xE7,0x13,0x18,0x00,0x1B,0x17,0x00, +0x9C,0xE1,0x5E,0xE7,0x04,0xD4,0xB7,0xFF,0x65,0xC0,0xC0,0x10,0x01,0xE8,0x86,0x06, +0x7D,0x8C,0xA4,0xC0,0xE0,0x10,0x01,0xEC,0xA6,0x06,0x7D,0xE8,0xC7,0x06,0xA5,0xC8, +0xA0,0xFF,0xFD,0x44,0xC6,0x2C,0xEC,0xC7,0x06,0xA5,0xE7,0xFF,0xFD,0xA1,0xC0,0xE0, +0x10,0x01,0xFC,0xE7,0x0B,0x60,0x88,0xA7,0xFC,0xC7,0x00,0x82,0x18,0x07,0x00,0x9C, +0xE1,0xD4,0xE6,0xFF,0xDE,0xC0,0xE0,0x10,0x01,0x50,0xC0,0x62,0x1C,0xA5,0x1F,0xF8, +0xC7,0x0B,0x60,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x0B,0x61,0x18,0x07,0x00,0x9C,0xE1, +0xD4,0xE5,0xFF,0xDE,0xC0,0xC0,0x10,0x01,0x1C,0xA0,0x9E,0xF8,0xA6,0x0B,0x7F,0xC0, +0xD4,0x00,0x01,0xC8,0xC6,0x79,0xD0,0x08,0xC6,0x01,0x5C,0xC6,0x00,0xC0,0xE0,0x10, +0x01,0xF8,0xC7,0x04,0xD5,0xC0,0xC0,0x10,0x01,0x8B,0x47,0xF3,0x26,0x0C,0x0C,0xC0, +0xE0,0x10,0x01,0xC0,0xA0,0x10,0x01,0xC3,0x00,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFC, +0xE7,0x0B,0x80,0xFC,0xA5,0x0A,0x7C,0x4F,0x39,0x08,0xFF,0x18,0x09,0xE4,0xFE,0xF7, +0x0B,0x14,0x98,0xC0,0xE4,0x00,0x00,0x77,0xF0,0x9A,0x04,0xD5,0x20,0x84,0x38,0xD0, +0x84,0x00,0xDA,0x40,0x86,0xBC,0xE4,0x00,0x00,0x0F,0x40,0x86,0xC4,0x08,0x84,0x00, +0x18,0x87,0x01,0x4C,0x84,0x41,0xE4,0x00,0x00,0x21,0x0C,0x85,0x02,0x4F,0x64,0x42, +0x4C,0x84,0x82,0x1B,0x67,0x01,0x18,0x87,0x00,0x9C,0xC2,0x9C,0xE2,0x9C,0xA4,0xD4, +0xD9,0xFE,0x4E,0xC0,0xF4,0x00,0x01,0xC8,0xE7,0x7A,0x50,0x1C,0xA0,0xDF,0x0C,0xC7, +0x02,0x44,0xC6,0x2C,0x0C,0xC7,0x00,0xC0,0xE0,0x10,0x01,0xE8,0xE7,0x06,0xA5,0x54, +0xE7,0x02,0x20,0xE1,0x50,0xC0,0xE0,0x10,0x01,0xC0,0xA0,0x10,0x01,0xEC,0x07,0x06, +0x7D,0xFC,0xA5,0x0B,0x60,0x98,0xE0,0xC0,0xC0,0x10,0x01,0xEC,0x86,0x06,0x96,0x42, +0xE7,0x2C,0x8C,0x87,0x12,0xF7,0x00,0x1A,0xE4,0x00,0x9C,0xE1,0xC0,0xE0,0x10,0x04, +0x23,0xFF,0xAD,0xC0,0xC0,0x10,0x01,0xE8,0xA6,0x06,0x7D,0xFC,0xA5,0x00,0x80,0xC0, +0xE0,0x10,0x01,0xEC,0xA6,0x06,0x7D,0xE8,0xC7,0x06,0xA5,0xC8,0xA0,0xFF,0xFD,0x44, +0xC6,0x2C,0xEC,0xC7,0x06,0xA5,0xE7,0xFF,0xFB,0x29,0x20,0x68,0x5A,0xC0,0xE0,0x10, +0x01,0xFC,0xC7,0x07,0x19,0xF0,0xA7,0x07,0x19,0x10,0xC6,0x01,0xE4,0x00,0x01,0x67, +0x20,0x6C,0x56,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x07,0x19,0x10,0xC7,0x03,0x10,0xA7, +0x02,0xE4,0x00,0x01,0x3D,0xD0,0x64,0x00,0xB6,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x07, +0x19,0x10,0xC7,0x05,0x10,0xA7,0x04,0xE4,0x00,0x01,0x11,0xD0,0x65,0x00,0xB6,0xC0, +0xE0,0x10,0x01,0xFC,0xE7,0x07,0x19,0x10,0xC7,0x07,0x10,0xA7,0x06,0xE4,0x00,0x00, +0xE5,0x20,0x60,0xA6,0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10,0x01,0xFC,0xE7,0x0A,0x7C, +0xF0,0xC6,0x0C,0x0C,0x4C,0xC6,0x10,0x8C,0xC7,0xE4,0x00,0x00,0x13,0x0C,0x07,0x00, +0x9C,0xE4,0xD4,0xE6,0xFF,0xDE,0xE4,0x00,0x01,0xCF,0x98,0xC0,0x98,0xA0,0x20,0x64, +0xE6,0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10,0x01,0xFC,0xE7,0x09,0xE4,0xC0,0xA0,0x10, +0x01,0xFC,0xC6,0x0A,0x7C,0xF0,0xA5,0x0C,0x0C,0x4C,0xA5,0x08,0x8C,0xA7,0xE4,0x00, +0x00,0x23,0x08,0x87,0x00,0x9C,0xE2,0x4C,0x84,0x40,0x0C,0x86,0x00,0x9C,0xC4,0xD4, +0xE5,0xFF,0x9E,0xE4,0x00,0x01,0x55,0xD0,0x66,0x05,0x32,0xD0,0x67,0x01,0x4A,0xC0, +0x80,0x10,0x01,0xC0,0xE0,0x10,0x01,0xF3,0x64,0x0C,0x0C,0xFC,0xE7,0x0A,0x7C,0xC3, +0x00,0x10,0x01,0x4F,0x7B,0x10,0xFF,0x18,0x09,0xE4,0x8F,0x67,0xC8,0x80,0x03,0xE8, +0xE4,0x00,0x00,0xF3,0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10,0x01,0xF2,0xE7,0x0C,0x0C, +0xC0,0x80,0x10,0x01,0xC0,0xA0,0x10,0x01,0xFC,0xC6,0x0A,0x7C,0x4E,0xF7,0x08,0xFC, +0x84,0x0B,0x14,0xFC,0xA5,0x09,0xE4,0x98,0xE0,0xE4,0x00,0x00,0x3B,0x43,0x27,0x2C, +0x43,0x07,0x24,0x0B,0x59,0x01,0x9C,0xE2,0x0F,0x26,0x02,0x9C,0xC4,0x4F,0x39,0x42, +0x43,0x3A,0xCD,0x0F,0x38,0x01,0xD4,0xF7,0xFF,0x3E,0xE4,0x00,0x00,0x67,0x0E,0xE7, +0x02,0x0B,0x58,0x00,0x43,0xB7,0x23,0x4F,0x5A,0x40,0x43,0x3A,0xBD,0xD6,0xFA,0x00, +0x6C,0x43,0x25,0xCB,0x8F,0x3D,0xE4,0x00,0x00,0x13,0x43,0x26,0xCB,0x8F,0x3D,0x43, +0x39,0x20,0x9F,0x02,0x0F,0x27,0x00,0x9C,0xE4,0xD4,0xFB,0xFE,0xAE,0x85,0x29,0x9C, +0x38,0x0D,0x41,0x04,0x0D,0x61,0x00,0xC0,0xE0,0x10,0x01,0xF2,0xE7,0x08,0xD8,0xD2, +0xE1,0x11,0x19,0xC0,0x80,0x10,0x01,0xE8,0xC4,0x06,0xD6,0xFC,0x84,0x06,0xD6,0x0A, +0xE4,0x04,0xC2,0xEF,0xFF,0xE0,0x20,0x06,0x21,0xFC,0xE7,0x08,0xD8,0x08,0xA4,0x02, +0x0B,0xA7,0x16,0x0B,0x27,0x34,0x0B,0xC7,0x32,0x08,0x84,0x06,0x41,0x1E,0xBD,0x43, +0x59,0x25,0x0B,0x07,0x18,0x40,0x7D,0x35,0x40,0xE5,0xC5,0x43,0x63,0xD3,0x40,0xE7, +0x43,0x8C,0xFB,0x20,0xE1,0x84,0x43,0x97,0x35,0x43,0x65,0x25,0x43,0x5C,0xD3,0x41, +0x1B,0x43,0x8F,0x48,0x23,0x40,0x40,0x27,0x40,0x28,0x24,0xE0,0x2A,0xE4,0x00,0x00, +0x8F,0x24,0xFD,0x0E,0x4D,0x5A,0xFA,0x47,0x4A,0xD6,0x4D,0x07,0xFA,0x41,0x5A,0x55, +0x47,0x48,0x3E,0x43,0x5A,0x45,0xD5,0x5A,0x01,0x74,0x40,0x63,0xDB,0x43,0x78,0x2D, +0x43,0x7B,0xE3,0x8F,0x63,0x23,0x60,0x40,0x27,0x60,0x28,0x24,0xE0,0x2A,0xE4,0x00, +0x00,0x2D,0x24,0xFC,0x4A,0x4C,0xFB,0xFA,0x47,0x67,0xDE,0x43,0x7B,0x3D,0x98,0xE1, +0xD7,0x7A,0x06,0xC8,0x43,0x39,0x2D,0x40,0x7E,0x35,0x43,0x9D,0xBD,0x40,0xE4,0xC5, +0x43,0x5C,0xCB,0x40,0xE7,0x1B,0x8C,0xFA,0x20,0xE1,0x84,0x43,0x66,0xBD,0x43,0x44, +0x2D,0x43,0x3B,0xCB,0x40,0x7A,0x1B,0x8F,0x23,0x23,0x20,0x40,0x27,0x20,0x28,0x24, +0xE0,0x2A,0xE4,0x00,0x00,0x8F,0x24,0xFD,0x0E,0x4D,0x19,0xFA,0x47,0x28,0xCE,0x4C, +0x67,0xFA,0x41,0x19,0x45,0x47,0x23,0x3E,0x43,0x39,0x1D,0xD5,0x19,0x01,0x74,0x43, +0x9C,0xD3,0x43,0x58,0x25,0x43,0x5A,0xDB,0x8F,0x5C,0x23,0x40,0x40,0x27,0x40,0x28, +0x24,0xE0,0x2A,0xE4,0x00,0x00,0x2D,0x24,0xFC,0x4A,0x4C,0xFA,0xFA,0x47,0x47,0xD6, +0x43,0x5A,0x3D,0x98,0xE0,0xD7,0x59,0x03,0x20,0xC3,0x60,0x10,0x01,0x9B,0x40,0xFF, +0x7B,0x08,0xEE,0x9B,0x3F,0x50,0xE0,0xFF,0xE4,0x00,0x00,0x25,0x50,0xEA,0x01,0x5C, +0xE7,0x00,0x9F,0x41,0x1F,0x7B,0x1C,0x23,0x49,0x08,0x09,0x1B,0x00,0x08,0x7B,0x02, +0x4D,0x5A,0x20,0x43,0x88,0x35,0x41,0x63,0x2D,0x43,0x9C,0xE3,0x41,0x6B,0x5B,0x5D, +0x4A,0x02,0x8F,0x8B,0xD7,0x99,0x00,0x51,0x8B,0x99,0xE4,0x00,0x00,0x0F,0x5C,0xEA, +0x00,0x43,0x28,0xBD,0x40,0x63,0x25,0x43,0x39,0xCB,0x40,0x63,0x1B,0x8F,0x23,0xD7, +0x3C,0xFD,0xE9,0x8B,0x3C,0xE7,0xFF,0xFF,0x7B,0x4C,0xC7,0x21,0x54,0xE7,0x0F,0xD4, +0xE6,0x0B,0x3A,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x08,0xD8,0x08,0xC7,0x35,0x0F,0xC7, +0x17,0x0F,0xA7,0x33,0x0F,0x07,0x35,0x0C,0xC7,0x19,0xE4,0x00,0x02,0x99,0xC0,0xCF, +0xFF,0xE0,0x20,0x05,0x11,0xC2,0xE0,0x10,0x01,0xFC,0xE7,0x08,0xD8,0xF0,0xB7,0x04, +0xE8,0x9C,0xA1,0x5C,0xA5,0x00,0xF8,0xB7,0x04,0xE8,0x0A,0xE7,0x16,0x43,0x17,0x35, +0x0B,0x44,0x02,0x43,0x78,0xC3,0x08,0x87,0x18,0x43,0x04,0xD5,0x43,0x38,0xC3,0x0B, +0x07,0x32,0x8F,0x79,0x40,0xD8,0x35,0x0B,0x27,0x34,0x40,0xC6,0x33,0x43,0x39,0xD5, +0x43,0x39,0xCB,0x8C,0xD9,0x5C,0xDB,0x17,0x50,0xC0,0x10,0x48,0xC6,0x00,0x20,0xC0, +0x48,0x08,0xC7,0x35,0x0F,0x07,0x17,0x0E,0xE7,0x33,0x0C,0x87,0x35,0x0C,0xC7,0x19, +0xD0,0xA4,0x00,0xB5,0xC0,0xE0,0x10,0x01,0xF0,0xC7,0x08,0xD8,0x9C,0xDF,0xF8,0xC7, +0x08,0xD8,0xE4,0x00,0x01,0xA9,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x04,0xE8,0xE4,0x00, +0x01,0x91,0xD2,0xE1,0x06,0x26,0xC0,0xC0,0x10,0x01,0xF8,0x06,0x04,0xE8,0xC0,0xA0, +0x10,0x01,0xFC,0xC5,0x06,0xD6,0x0B,0x06,0x04,0xC3,0x0F,0xFF,0xE0,0x20,0x02,0xA5, +0xFC,0xE7,0x08,0xD8,0x08,0x87,0x18,0x0B,0x27,0x16,0x40,0xF9,0xC5,0x43,0x47,0x3B, +0xE8,0xE5,0x06,0xD6,0x43,0x39,0x3D,0x43,0x79,0xCB,0x0B,0x26,0x02,0x43,0x24,0xCD, +0x40,0xF9,0xCB,0x8F,0x67,0x08,0xE6,0x06,0x40,0xE4,0x3D,0x40,0xE7,0x3B,0xC3,0x20, +0x10,0x01,0x43,0x87,0xD4,0xC3,0x40,0x10,0x01,0xFC,0xF9,0x0B,0xEE,0xFC,0x9A,0x07, +0x10,0xD7,0x9B,0x04,0x65,0xEF,0x05,0x06,0xD7,0x0B,0x06,0x07,0xFC,0xA0,0x7F,0xFF, +0x0F,0x06,0x03,0x0C,0xA6,0x07,0x0C,0xA6,0x05,0x08,0xC4,0x05,0xEC,0xDA,0x07,0x11, +0x08,0xC4,0x07,0x0C,0xA4,0x05,0x0C,0xC4,0x03,0x08,0xC7,0x09,0x0C,0xA4,0x07,0xEC, +0xD9,0x0B,0xEF,0x08,0xC7,0x0B,0x0C,0xC7,0x03,0x08,0xC7,0x0D,0x0C,0xA7,0x09,0x0C, +0xA7,0x0B,0x0C,0xC7,0x05,0x0C,0xA7,0x0D,0x08,0xC7,0x0F,0x0C,0xA7,0x0F,0x0C,0xC7, +0x07,0xC0,0xE0,0x10,0x01,0xFC,0xA7,0x06,0xFC,0x10,0xC5,0x01,0x42,0xF7,0x35,0xF8, +0xC7,0x06,0xFC,0x1A,0xE5,0x01,0xC0,0xC0,0x10,0x01,0xFC,0xE6,0x06,0xFC,0x10,0xA7, +0x01,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x08,0xD8,0x18,0xA7,0x2C,0xF0,0xC6,0x06,0xFC, +0x18,0xC7,0x10,0x0D,0x61,0x02,0x0D,0x41,0x06,0x9C,0x28,0x85,0x29,0xFC,0xA0,0x7F, +0xFF,0x0C,0xA7,0x0F,0x0C,0xA6,0x05,0x0C,0xA6,0x07,0x0C,0xA4,0x05,0x0C,0xA4,0x07, +0x0C,0xA7,0x09,0x0C,0xA7,0x0B,0x0C,0xA7,0x0D,0xE7,0xFF,0xFF,0x7B,0xFC,0xE0,0x7F, +0xFF,0xC0,0xA0,0x10,0x01,0xEC,0xE5,0x06,0xD7,0xFC,0xC5,0x06,0xD6,0x0C,0xE6,0x05, +0x0C,0xE6,0x07,0x0C,0xE6,0x03,0xC0,0xA0,0x10,0x01,0xC0,0xC0,0x10,0x01,0xEC,0xE5, +0x07,0x11,0xF8,0x06,0x06,0xFC,0xFC,0x86,0x06,0xFC,0xFC,0xC5,0x07,0x10,0x0C,0xE6, +0x05,0x0C,0xE6,0x07,0x0C,0xE6,0x03,0xC0,0xA0,0x10,0x01,0xEC,0xE5,0x0B,0xEF,0xFC, +0xC5,0x0B,0xEE,0x0C,0xE6,0x0F,0x0C,0xE6,0x03,0x0C,0xE6,0x05,0x0C,0xE6,0x07,0x0C, +0xE6,0x09,0x0C,0xE6,0x0B,0x0C,0xE6,0x0D,0x98,0xE1,0x18,0xE4,0x01,0xC0,0xE0,0x10, +0x01,0xF8,0x07,0x06,0xF3,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x07,0x21,0x85,0x29,0xC0, +0xE0,0x10,0x01,0xF0,0x87,0x08,0xD8,0xC0,0xE0,0x10,0x01,0xF2,0xE7,0x06,0xF3,0xC0, +0xE0,0x10,0x01,0xC0,0xC0,0x10,0x01,0xF3,0x67,0x07,0x21,0x4C,0x64,0x18,0xC0,0xE0, +0x10,0x01,0xFC,0xC6,0x08,0xEE,0xFC,0xE7,0x0B,0xF2,0xFC,0xA0,0x7F,0xFF,0x8C,0x67, +0x9B,0xA3,0x9B,0x8A,0xE4,0x00,0x01,0x35,0xD6,0xE4,0x00,0x92,0x0C,0xA7,0xFD,0x0C, +0xA7,0xFF,0x0C,0xA7,0x01,0x0C,0xA7,0x03,0x8A,0xE4,0x0B,0x07,0x00,0xC3,0x0F,0xFF, +0xE4,0x20,0x00,0x41,0x0B,0x06,0x01,0x0F,0x07,0x01,0x0B,0x06,0x03,0xE4,0x00,0x00, +0x1B,0x0B,0x07,0xFD,0x0F,0x07,0x01,0x0B,0x07,0xFF,0x0F,0x07,0x03,0x5C,0x80,0x29, +0x0B,0x06,0x01,0x0F,0x07,0xFD,0x0B,0x46,0x02,0x0F,0x47,0xFF,0x4B,0x60,0x12,0x0B, +0x27,0x00,0xC3,0x20,0xFF,0xEC,0x20,0x01,0x0D,0x5F,0xD8,0x06,0xC3,0xC0,0xFF,0xEC, +0x20,0x00,0xE5,0x0B,0x07,0x02,0xC3,0x00,0xFF,0xEC,0x20,0x00,0xBD,0xC3,0x40,0xFF, +0xEC,0x20,0x00,0xA1,0x43,0xDE,0xCD,0x43,0xDE,0xEB,0x43,0xDE,0xE0,0x8F,0x3E,0x0F, +0x27,0xFD,0x0F,0x26,0x01,0x43,0x5A,0xC5,0x43,0x5A,0xEB,0x43,0x5A,0xE0,0x8F,0x1A, +0x5F,0x18,0x06,0x0F,0x07,0xFF,0x0F,0x06,0x03,0x9C,0xE8,0x1C,0xC6,0x1C,0xD4,0xE3, +0xFB,0x56,0xC0,0xE0,0x10,0x01,0xFA,0xE7,0x06,0xF3,0xC0,0xE0,0x10,0x01,0xFB,0x67, +0x07,0x21,0x85,0x29,0xFC,0x21,0xFF,0x48,0xED,0x41,0x00,0xB0,0xED,0x61,0x00,0xAC, +0xED,0x81,0x00,0xA8,0xED,0xA1,0x00,0xA4,0xED,0xC1,0x00,0xA0,0xED,0xE1,0x00,0x9C, +0xEE,0x01,0x00,0x98,0xEE,0x21,0x00,0x94,0xEE,0x41,0x00,0x90,0xEE,0x61,0x00,0x8C, +0xEE,0x81,0x00,0x88,0xEE,0xA1,0x00,0x84,0xEE,0xC1,0x00,0x80,0xC2,0xA0,0x10,0x01, +0xC2,0x80,0x10,0x01,0xC2,0x60,0x10,0x01,0xED,0x21,0x00,0xB4,0x8A,0xC3,0xFE,0xB5, +0x0B,0x14,0xFE,0x94,0x02,0x66,0xFE,0x73,0x02,0xBA,0x99,0x60,0x99,0x40,0x99,0xC0, +0xC2,0x40,0x10,0x01,0x1D,0xA1,0x04,0x52,0x20,0x12,0x9A,0x08,0xFD,0x80,0x7F,0xFF, +0x1D,0xE1,0x64,0xE4,0x00,0x02,0xEF,0x22,0xC4,0x5A,0x44,0xE6,0x86,0x5D,0xC6,0x08, +0x5C,0xE7,0x08,0x9D,0xDF,0x9C,0xFF,0x45,0xCE,0x3D,0x4D,0xCE,0xF9,0x10,0xE4,0x00, +0xFE,0xE1,0x00,0x80,0x8E,0xE7,0x21,0xC4,0xAA,0x12,0xF7,0xFC,0xFC,0x61,0x00,0x80, +0x4F,0x57,0x18,0x8F,0x47,0x4F,0x5A,0x08,0x8F,0x43,0x0D,0x9A,0x85,0x4E,0xF7,0x18, +0x9E,0xE4,0x8E,0xE7,0x4E,0xF7,0x08,0x8E,0xE3,0x0D,0x97,0x85,0xE4,0x00,0x00,0x5B, +0x12,0xF7,0xFC,0xFF,0x81,0x00,0x80,0x4F,0x57,0x18,0x0B,0x65,0x01,0x8F,0x47,0x4F, +0x5A,0x08,0x8F,0x5C,0x0F,0x7A,0x85,0x4E,0xF7,0x18,0x0B,0x45,0x03,0x9E,0xE4,0x8E, +0xE7,0x4E,0xF7,0x08,0x8E,0xFC,0x0F,0x57,0x85,0xFC,0x61,0x00,0x80,0x8C,0xE3,0x12, +0xE7,0xFC,0x9E,0xE1,0x1A,0xE7,0xFC,0x9C,0xC1,0x9C,0xA4,0x5C,0xC6,0x00,0x9C,0x82, +0xD0,0xC9,0xFB,0xBE,0x98,0xE0,0xE4,0x00,0x01,0x5F,0xD0,0xA6,0x01,0x82,0x0B,0xC4, +0x08,0x0B,0x44,0x00,0x1F,0xA5,0x01,0x8F,0x5E,0xFC,0x61,0x00,0x80,0x0F,0x57,0x00, +0x4F,0xC6,0x10,0x1C,0x84,0x10,0x8F,0xC3,0x9E,0xE4,0x0F,0xDE,0xE6,0x5F,0xDA,0x15, +0x48,0xC6,0x28,0x5C,0xBD,0x00,0xD7,0x85,0xFE,0xA5,0xFC,0x81,0x00,0x80,0x4C,0xA6, +0x18,0x4C,0xC6,0x08,0x8C,0xA7,0x4C,0xA5,0x08,0x8C,0xA4,0x08,0x85,0x84,0x5C,0x98, +0x11,0x20,0x00,0x71,0xFC,0xA1,0x00,0x80,0x9C,0xC1,0x4C,0xC6,0x10,0x8C,0xC7,0x4C, +0xC6,0x08,0x8C,0xC5,0x08,0xA6,0x84,0x5C,0xB8,0x11,0x20,0x00,0x1F,0x98,0xA0,0x98, +0x80,0x88,0xD9,0x8B,0x58,0x9A,0xE0,0x1F,0xA4,0x2A,0x1F,0x85,0x2A,0x9E,0xE1,0x13, +0xDA,0x00,0x5E,0xF7,0x00,0xD7,0xDB,0x01,0x16,0x5F,0xAA,0x9B,0x20,0x00,0x6D,0x5F, +0x8A,0x9B,0x20,0x00,0x55,0x0B,0xC6,0x01,0x43,0xDE,0x25,0x0F,0xC6,0x01,0x0B,0xC6, +0x03,0x43,0xDE,0x2D,0x0F,0xC6,0x03,0x9F,0x42,0x9C,0xC4,0xD2,0xE9,0xFE,0x96,0x9C, +0xE1,0xD0,0xE4,0x01,0x8A,0x40,0xC7,0x9C,0x4C,0x87,0x08,0x13,0x86,0x00,0x0C,0x01, +0x64,0x0C,0x01,0x68,0x0C,0x01,0x6C,0x0C,0x01,0x70,0x0C,0x01,0x74,0x0C,0x01,0x78, +0x4F,0x9C,0x09,0x8C,0x8D,0x5F,0x67,0x00,0x8A,0xEF,0x98,0xA0,0x98,0xC0,0xE7,0xFF, +0xFE,0xB1,0x9D,0x41,0x1D,0x6B,0x12,0x21,0x48,0xC0,0x98,0x80,0x50,0xA0,0x60,0x18, +0x01,0x7C,0x18,0x01,0x7D,0x18,0x01,0x7E,0x18,0x01,0x7F,0xEC,0xF2,0x00,0x7E,0x88, +0x6D,0x84,0xE8,0x4F,0x2B,0x08,0x43,0x0A,0x8B,0x8F,0x35,0x8F,0x14,0x88,0xB9,0x88, +0x98,0x98,0xC0,0xE7,0xFF,0xFC,0xC9,0xEE,0xC1,0x00,0x82,0xEE,0xA1,0x00,0x86,0xEE, +0x81,0x00,0x8A,0xEE,0x61,0x00,0x8E,0xEE,0x41,0x00,0x92,0xEE,0x21,0x00,0x96,0xEE, +0x01,0x00,0x9A,0xED,0xE1,0x00,0x9E,0xED,0xC1,0x00,0xA2,0xED,0xA1,0x00,0xA6,0xED, +0x81,0x00,0xAA,0xED,0x61,0x00,0xAE,0xED,0x41,0x00,0xB2,0xED,0x21,0x00,0xB6,0xFC, +0x21,0x00,0xB8,0x85,0x29,0xC3,0x80,0x10,0x01,0x1C,0x21,0xE8,0xC0,0xE0,0x10,0x01, +0x0D,0x41,0x14,0x0D,0x61,0x10,0x0D,0x81,0x0C,0x0D,0xA1,0x08,0x0D,0xC1,0x04,0xFC, +0xE7,0x04,0xEA,0xF1,0x7C,0x08,0xD8,0x0B,0x27,0x16,0x53,0x80,0x1C,0x08,0xA7,0x06, +0x08,0xC7,0x0E,0xCA,0xE0,0x07,0xFF,0x0B,0x47,0x14,0x08,0x87,0x02,0x0B,0x67,0x0C, +0x41,0xD7,0xCD,0x41,0x6B,0xE3,0x41,0x85,0xD5,0x1F,0x1B,0x1E,0xC0,0xE0,0x10,0x01, +0x5F,0x18,0x06,0xFC,0xE7,0x08,0xF0,0x40,0x65,0xCD,0x41,0xB7,0x35,0x5D,0xCE,0x04, +0x8D,0x67,0x5F,0x5A,0x04,0x41,0x45,0x25,0x41,0x17,0x2D,0x43,0xC4,0x2D,0x43,0xA6, +0xC5,0x43,0x98,0x35,0xCB,0x20,0x07,0xFF,0xE4,0x00,0x00,0xC1,0x0A,0xE7,0xFE,0xD4, +0xB7,0x00,0x98,0x42,0xF7,0x25,0x42,0xEC,0xBB,0x42,0xF7,0x50,0x8E,0xFA,0xE4,0x00, +0x00,0x2D,0xD6,0xE8,0x00,0xA8,0x42,0xF9,0xBD,0x42,0xF7,0x25,0x42,0xE3,0xBB,0x42, +0xF7,0xF0,0x8E,0xEE,0x0E,0xE7,0xFF,0x0A,0xE7,0x00,0xD4,0xD7,0x00,0xA0,0x1E,0xF7, +0xE2,0x42,0xF7,0xDD,0x42,0xF7,0x33,0x42,0xF7,0xE8,0xE4,0x00,0x00,0x31,0xD6,0xED, +0x00,0xB8,0x42,0xF9,0xBD,0x42,0xF7,0xC5,0x42,0xF7,0x33,0x42,0xF7,0xE0,0xFE,0xF7, +0x07,0xFF,0x0E,0xE7,0x01,0x1C,0xE7,0x1C,0xD4,0xEB,0xFD,0x26,0x0D,0xC1,0x06,0x0D, +0xA1,0x0A,0x0D,0x81,0x0E,0x0D,0x61,0x12,0x0D,0x41,0x16,0x1C,0x21,0x18,0x85,0x29, +0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x04,0xEA,0x0A,0xE7,0x12,0x08,0xA7,0x16,0xC8,0xC0, +0x07,0xFF,0x08,0x87,0x14,0x43,0x46,0x25,0x43,0x5A,0x2D,0x08,0xA7,0x10,0x40,0xC6, +0x2D,0x43,0x26,0xBD,0xC2,0xE0,0x10,0x01,0xC0,0xE0,0x10,0x01,0xF3,0x17,0x08,0xD8, +0xFC,0xE7,0x08,0xEE,0x52,0xE0,0x1C,0xC8,0xC0,0x07,0xFF,0x42,0xF8,0xBB,0x8E,0xE7, +0xE4,0x00,0x00,0x4B,0x0B,0x07,0x00,0x43,0x18,0x25,0x43,0x18,0x33,0x43,0x18,0xD0, +0x0F,0x07,0x01,0x0B,0x07,0x02,0x43,0x18,0x2D,0x43,0x18,0x33,0x43,0x18,0xC8,0x0F, +0x07,0x03,0x1C,0xE7,0x1C,0xD4,0xF7,0xFE,0xFE,0x85,0x29,0xC0,0xF4,0x00,0x01,0xC8, +0xA7,0x79,0xE9,0xC8,0xE7,0x79,0xD0,0x10,0xA5,0x00,0xC0,0xC0,0x10,0x01,0xF8,0xA6, +0x04,0xD4,0x08,0x87,0x01,0xC0,0xE0,0x10,0x01,0x5C,0x84,0x00,0xC0,0xA0,0x10,0x01, +0xF8,0x87,0x04,0xD5,0xE8,0xE5,0x07,0x23,0xC8,0x80,0x7F,0xFF,0x44,0xE7,0x24,0xEC, +0xE5,0x07,0x23,0xD0,0x61,0x1B,0x66,0xC0,0xC0,0x10,0x01,0xF0,0xC6,0x04,0xCC,0x20, +0xC0,0x3A,0xFC,0xC0,0x80,0x00,0x44,0xE7,0x35,0xEC,0xE5,0x07,0x23,0xC0,0xA0,0x10, +0x01,0xC8,0xC0,0x07,0xFF,0xFC,0xE5,0x08,0xD8,0x08,0x87,0x19,0x40,0x86,0x25,0x0C, +0x87,0x19,0xF0,0xA5,0x08,0xD8,0x24,0xA4,0x55,0x08,0xA7,0x35,0x40,0xC6,0x2D,0x0C, +0xC7,0x35,0x08,0xC7,0x1D,0x40,0xC0,0x35,0x0C,0xC7,0x1D,0xC0,0xC0,0x10,0x01,0xFC, +0xE6,0x08,0xD8,0xF0,0xC6,0x08,0xD8,0xD0,0xC1,0x05,0x29,0x08,0xC7,0x16,0x98,0xE0, +0x24,0xDC,0x60,0xC0,0xE0,0x10,0x01,0xC8,0x80,0x7F,0xFF,0xE8,0xE7,0x0C,0x13,0x5C, +0xC7,0x15,0x44,0xC6,0x24,0x48,0xE6,0x38,0xC0,0xC0,0x10,0x01,0xFC,0xC6,0x08,0xD8, +0x0C,0xE6,0x13,0x08,0xC6,0x18,0x98,0xE0,0x24,0xDC,0x60,0xC0,0xE0,0x10,0x01,0xC8, +0xA0,0x7F,0xFF,0xE8,0xE7,0x0C,0x15,0x5C,0xC7,0x15,0x44,0xC6,0x2C,0x48,0xE6,0x38, +0xC0,0xC0,0x10,0x01,0xFC,0xC6,0x08,0xD8,0x0C,0xE6,0x15,0x08,0xC6,0x32,0x98,0xE0, +0x24,0xDC,0x60,0xC0,0xE0,0x10,0x01,0xC8,0x80,0x7F,0xFF,0xE8,0xE7,0x0C,0x13,0x5C, +0xC7,0x15,0x44,0xC6,0x24,0x48,0xE6,0x38,0xC0,0xC0,0x10,0x01,0xFC,0xC6,0x08,0xD8, +0x0C,0xE6,0x2F,0x08,0xC6,0x34,0x98,0xE0,0x24,0xDC,0x60,0xC0,0xE0,0x10,0x01,0xC8, +0xA0,0x7F,0xFF,0xE8,0xE7,0x0C,0x15,0x5C,0xC7,0x15,0x44,0xC6,0x2C,0x48,0xE6,0x38, +0xC0,0xC0,0x10,0x01,0xEC,0xE6,0x09,0x09,0xE4,0x00,0x00,0xA3,0x08,0xC7,0x16,0x98, +0xE0,0x24,0xDC,0x60,0xC0,0xE0,0x10,0x01,0xC8,0x80,0x7F,0xFF,0xE8,0xE7,0x0C,0x13, +0x5C,0xC7,0x15,0x44,0xC6,0x24,0x48,0xE6,0x38,0xC0,0xC0,0x10,0x01,0xFC,0xC6,0x08, +0xD8,0x0C,0xE6,0x13,0x08,0xC6,0x18,0x98,0xE0,0x24,0xDC,0x60,0xC0,0xE0,0x10,0x01, +0xC8,0xA0,0x7F,0xFF,0xE8,0xE7,0x0C,0x15,0x5C,0xC7,0x15,0x44,0xC6,0x2C,0x48,0xE6, +0x38,0xC0,0xC0,0x10,0x01,0xEC,0xE6,0x08,0xED,0xC0,0xE0,0x10,0x01,0x53,0x20,0x1C, +0xF0,0xC7,0x08,0xD8,0x9B,0x0F,0xC0,0xE0,0x10,0x01,0x43,0x26,0xCB,0xFC,0xE7,0x08, +0xEC,0xFE,0xE0,0x07,0xF0,0x8F,0x27,0x98,0x8A,0xFC,0xA0,0x07,0xF5,0xE4,0x00,0x00, +0x6B,0x0B,0x47,0xFF,0xD3,0x4E,0x00,0x3D,0x0F,0x07,0xFF,0x0B,0x47,0xFF,0xC3,0x40, +0xFE,0x0A,0x20,0x00,0x19,0x0E,0xE7,0xFF,0x0B,0x47,0x01,0xD3,0x49,0x00,0x3D,0x0C, +0x87,0x01,0x0B,0x47,0x01,0xC3,0x40,0xFE,0xAA,0x20,0x00,0x19,0x0C,0xA7,0x01,0x1C, +0xE7,0x1C,0xD4,0xF9,0xFE,0x7E,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x08,0xD8,0x24,0xC4, +0x7D,0x08,0xA7,0x2F,0x08,0xC7,0x13,0x40,0xC5,0x35,0x08,0xA7,0x31,0x0C,0xC7,0x1B, +0x08,0xC7,0x15,0x40,0xC5,0x35,0x0C,0xC7,0x1D,0xE4,0x00,0x00,0x15,0x0C,0x07,0x1D, +0x0C,0x07,0x1B,0xC0,0xE0,0x10,0x01,0xC0,0xA0,0x10,0x01,0xF0,0xE7,0x04,0xD4,0xFC, +0xC5,0x0B,0x60,0xD0,0xE0,0x04,0x86,0x50,0xE0,0x52,0xC0,0x80,0x10,0x01,0xF8,0xE5, +0x0B,0x60,0xFC,0xE4,0x08,0xD8,0x0A,0xE7,0x13,0x1A,0xE6,0x02,0x4E,0xF7,0x41,0x08, +0xA7,0x15,0x4E,0xF7,0x20,0x18,0xA6,0x03,0x4C,0xA5,0x41,0x54,0xA5,0x0F,0x44,0xB7, +0x2D,0x18,0xA6,0x01,0xF0,0xA4,0x08,0xD8,0x24,0xA4,0xAD,0x08,0xA7,0x1C,0x94,0x8F, +0x18,0xA6,0x06,0xC8,0x84,0xFF,0xF0,0x08,0xE7,0x1A,0x4C,0xA5,0x42,0x18,0xE6,0x05, +0x54,0xA5,0x0F,0x4C,0xE7,0x21,0x44,0xE7,0x24,0x44,0xE7,0x2D,0x18,0xE6,0x04,0xE4, +0x00,0x00,0x1B,0x18,0x06,0x06,0x18,0x06,0x04,0x18,0x06,0x05,0xC0,0xE0,0x10,0x01, +0x98,0xC0,0xFC,0xE7,0x0B,0x60,0x1C,0xA7,0x07,0x10,0x87,0x00,0x9C,0xE1,0x8C,0xC4, +0xD4,0xE5,0xFF,0xCE,0x40,0xC0,0x35,0xC0,0xE0,0x10,0x01,0xF8,0xC7,0x0B,0x67,0xE4, +0x00,0x01,0xDD,0x88,0xA6,0xFC,0xE6,0x00,0x82,0x18,0x06,0x00,0x9C,0xC1,0xD4,0xC7, +0xFF,0xDE,0xC0,0xC0,0x10,0x01,0xF2,0xE6,0x08,0xD8,0x4C,0x97,0x20,0x50,0x84,0x02, +0xFC,0xC6,0x08,0xD8,0xC3,0x40,0x10,0x01,0xFC,0xFA,0x0B,0x60,0x18,0x87,0x12,0x08, +0x86,0x1C,0x18,0x87,0x10,0x0B,0x26,0x13,0x1B,0x27,0x02,0x0B,0x06,0x15,0x1B,0x07, +0x04,0x08,0xC6,0x1A,0x18,0xC7,0x0E,0x4C,0xC6,0x41,0x53,0x60,0x62,0x18,0xC7,0x0D, +0x4F,0x39,0x41,0x4F,0x18,0x41,0x1B,0x27,0x01,0x1B,0x07,0x03,0x56,0xF7,0x01,0x4C, +0x84,0x41,0x52,0xF7,0x20,0x18,0x87,0x0F,0x1A,0xE7,0x11,0xFB,0x7A,0x0B,0x60,0x1C, +0xC5,0x1F,0x98,0xE0,0x10,0x85,0x00,0x9C,0xA1,0x8C,0xE4,0xD4,0xA6,0xFF,0xCE,0x40, +0xE0,0x3D,0xC0,0xC0,0x10,0x01,0xC0,0xA0,0x10,0x01,0xF8,0xE6,0x0B,0x7F,0xC3,0x20, +0x10,0x01,0xC0,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xFC,0xE7,0x0B,0x80,0xFC,0xA5, +0x0A,0x7C,0xFF,0x39,0x09,0xE4,0xFF,0x18,0x0B,0x14,0x98,0xC0,0xC2,0xE0,0x10,0x01, +0xF0,0x97,0x04,0xD5,0x20,0x84,0x38,0xD0,0x84,0x00,0xDA,0x40,0x86,0xC4,0xE4,0x00, +0x00,0x0F,0x40,0x86,0xCC,0x08,0x84,0x00,0x18,0x87,0x01,0x4C,0x84,0x41,0xE4,0x00, +0x00,0x21,0x0C,0x85,0x02,0x4F,0x44,0x42,0x4C,0x84,0x82,0x1B,0x47,0x01,0x18,0x87, +0x00,0x9C,0xC2,0x9C,0xE2,0x9C,0xA4,0x5C,0xC9,0x89,0x23,0xFF,0x19,0xC0,0xE0,0x10, +0x01,0x98,0xC1,0xE8,0xE7,0x07,0x22,0xD0,0xFF,0x10,0x54,0xE4,0x00,0x03,0xFD,0xD0, +0x60,0x05,0x96,0xF0,0x86,0x04,0xD4,0xC0,0xA0,0x10,0x01,0xFC,0xC5,0x0B,0x60,0x20, +0x80,0xFE,0x9A,0xFF,0x88,0x86,0x18,0x06,0x05,0x1A,0xE6,0x06,0x1A,0xE6,0x01,0x1A, +0xE6,0x02,0x1A,0xE6,0x03,0x1A,0xE6,0x04,0x50,0xC0,0x52,0xF8,0xC5,0x0B,0x60,0x1C, +0xA4,0x07,0x98,0xC0,0x12,0xE4,0x00,0x9C,0x81,0x8C,0xD7,0xD4,0x85,0xFF,0xCE,0x40, +0xC0,0x35,0xC0,0xA0,0x10,0x01,0xF8,0xC5,0x0B,0x67,0xE4,0x00,0x00,0x99,0x88,0xA6, +0xFC,0x86,0x00,0x82,0x18,0x06,0x00,0x9C,0xC1,0xD4,0xC4,0xFF,0xDE,0x50,0x80,0x62, +0xC0,0xC0,0x10,0x01,0x9A,0xFF,0xF8,0x86,0x0B,0x60,0xC0,0xC0,0x10,0x01,0x1C,0x85, +0x1F,0xFC,0xC6,0x0B,0x61,0x1A,0xE6,0x00,0x9C,0xC1,0xD4,0xC4,0xFF,0xDE,0x98,0xC0, +0x12,0xE5,0x00,0x9C,0xA1,0x8C,0xD7,0xD4,0xA4,0xFF,0xCE,0x40,0xC0,0x35,0xC0,0xA0, +0x10,0x01,0xF8,0xC5,0x0B,0x7F,0xC0,0xC0,0x10,0x01,0xFC,0xA0,0x80,0x00,0xEC,0x06, +0x06,0xE4,0x44,0xE7,0x2D,0xC0,0xC0,0x10,0x01,0xEC,0xE6,0x07,0x23,0xE4,0x00,0x02, +0xA9,0xD0,0x62,0x0A,0x86,0xF0,0x86,0x04,0xD4,0xC0,0xA0,0x10,0x01,0xFC,0xC5,0x0B, +0x60,0x20,0x81,0x32,0x98,0x9F,0x18,0x86,0x06,0x18,0x86,0x01,0x18,0x86,0x02,0x18, +0x86,0x03,0x18,0x86,0x04,0x50,0x80,0x52,0xF8,0x85,0x0B,0x60,0xC0,0xA0,0x10,0x01, +0xF0,0xA5,0x06,0xBC,0x8A,0xE6,0x18,0xA6,0x05,0xC0,0xA0,0x10,0x01,0x98,0xC0,0xFC, +0xA5,0x0B,0x67,0x10,0x97,0x00,0x9E,0xE1,0x8C,0xC4,0xD6,0xE5,0xFF,0xCE,0x40,0xC0, +0x35,0xC0,0xA0,0x10,0x01,0xF8,0xC5,0x0B,0x67,0xE4,0x00,0x01,0x73,0x8B,0xA6,0xFC, +0x86,0x00,0x82,0x88,0xA6,0x18,0x05,0x00,0x9C,0xA1,0xD4,0xA4,0xFF,0xDE,0xC3,0x60, +0x10,0x01,0xC0,0x80,0x10,0x01,0xFC,0xBB,0x0B,0x60,0xF3,0x04,0x08,0xD8,0x4E,0xF8, +0x20,0x52,0xF7,0x02,0xFC,0x84,0x08,0xD8,0x1A,0xE5,0x12,0x53,0x80,0x62,0x0A,0xE4, +0x1C,0x57,0x18,0x01,0x1A,0xE5,0x10,0x53,0x18,0x20,0x0B,0x44,0x13,0x4E,0xF7,0x41, +0x1B,0x45,0x02,0x1F,0xBD,0x1F,0x0B,0x24,0x15,0x4F,0x5A,0x41,0x1B,0x25,0x04,0x4F, +0x39,0x41,0x08,0x84,0x1A,0x1B,0x45,0x01,0x18,0x85,0x0E,0x1B,0x25,0x03,0x1B,0x05, +0x11,0x4C,0x84,0x41,0x1A,0xE5,0x0F,0x18,0x85,0x0D,0xFB,0x9B,0x0B,0x60,0x98,0xA0, +0x10,0x86,0x00,0x9C,0xC1,0x8C,0xA4,0xD4,0xDD,0xFF,0xCE,0x40,0xA0,0x2D,0xC0,0xC0, +0x10,0x01,0xC2,0xE0,0x10,0x01,0xF8,0xA6,0x0B,0x7F,0xFE,0xF7,0x0B,0x60,0xC0,0xA0, +0x10,0x01,0xC0,0xC0,0x10,0x01,0xFC,0xA5,0x0B,0x14,0xFC,0xC6,0x0B,0x80,0x08,0x85, +0x00,0x18,0x86,0x01,0x4C,0x84,0x41,0x18,0x86,0x00,0x9C,0xA2,0x9C,0xC2,0xD4,0xB7, +0xFF,0x86,0xC0,0xC0,0x10,0x01,0xF0,0xC6,0x04,0xCD,0x20,0xC0,0x78,0x20,0xC4,0xAA, +0xC0,0xC0,0x10,0x01,0xF0,0xC6,0x0B,0x65,0x5C,0xC8,0x01,0x20,0x00,0x35,0xC0,0xC0, +0x10,0x00,0x20,0x00,0x19,0x20,0xC0,0x4A,0xFC,0xC0,0x80,0x00,0x44,0xE7,0x35,0xC0, +0xC0,0x10,0x01,0xEC,0xE6,0x07,0x23,0x98,0xC2,0xC0,0xE0,0x10,0x01,0xEC,0xC7,0x06, +0xE4,0x85,0x29,0xC0,0xA0,0x10,0x01,0xC0,0xE0,0x10,0x01,0xFC,0xA5,0x02,0xC2,0xFC, +0xE7,0x02,0xC4,0xC0,0xC0,0x10,0x01,0x20,0x60,0x64,0xF2,0xE6,0x06,0xBE,0xC0,0x80, +0x10,0x01,0x8E,0xE5,0xFC,0x84,0x0B,0x14,0x98,0x61,0x98,0xC3,0xE4,0x00,0x00,0xB7, +0xF2,0xE6,0x06,0xBE,0xC0,0x80,0x10,0x01,0x8E,0xE5,0xFC,0x84,0x0B,0x14,0x98,0x61, +0xE4,0x00,0x00,0x49,0x08,0xC7,0x00,0x13,0x05,0x00,0x4F,0x26,0xF9,0x4F,0x18,0x08, +0x8C,0xD9,0x8F,0x04,0x4C,0xC6,0x0A,0x0B,0x18,0x00,0x9C,0xE2,0x5F,0x06,0x15,0x9C, +0xA1,0x48,0x63,0x00,0xD4,0xB7,0xFF,0x06,0xE4,0x00,0x00,0x47,0x13,0x05,0x00,0x4F, +0x18,0x08,0x8F,0x04,0x9C,0xA1,0x0B,0x38,0x00,0x0B,0x07,0x00,0x9C,0xE2,0x43,0x18, +0x30,0x5F,0x19,0x15,0x48,0x63,0x00,0xD4,0xB7,0xFF,0x2E,0x85,0x29,0xC0,0xE0,0x10, +0x01,0xC0,0x80,0x10,0x01,0xF3,0x47,0x06,0xBE,0xC0,0xA0,0x10,0x01,0xC0,0xE0,0x10, +0x01,0xC3,0x20,0x10,0x01,0xF0,0xE7,0x06,0xBC,0xFC,0x84,0x02,0xC4,0xFC,0xA5,0x0B, +0x14,0xFF,0x39,0x02,0xC2,0x98,0xC0,0x9B,0x01,0xE4,0x00,0x00,0x4D,0x42,0xE6,0xCC, +0x12,0xF7,0x00,0x4E,0xF7,0x08,0x8E,0xE5,0x0B,0x77,0x00,0x0A,0xE4,0x00,0xD7,0x77, +0x05,0x1C,0x4E,0xF8,0x34,0x46,0xF7,0xBF,0x44,0xE7,0xBC,0x9C,0xC1,0x9C,0x82,0x5F, +0x66,0x00,0xC2,0xE0,0x10,0x01,0xD7,0x5B,0xFE,0xBD,0xC0,0xC0,0x10,0x01,0xF0,0x97, +0x02,0xC2,0xF8,0xE6,0x06,0xBC,0x4C,0x84,0x08,0x8C,0x85,0x0B,0x24,0x00,0xC0,0x80, +0x10,0x01,0xEB,0x04,0x02,0xC4,0x4F,0x58,0xF9,0x8F,0x1A,0x4F,0x18,0x0A,0xD7,0x38, +0x01,0x60,0xFE,0xF7,0x02,0xC2,0x12,0xF7,0x01,0x4E,0xF7,0x08,0xFC,0x84,0x02,0xC4, +0x8C,0xB7,0x08,0x84,0x02,0x08,0xA5,0x00,0x4E,0xE4,0xF9,0x8C,0x97,0x4C,0x84,0x0A, +0xD4,0xA4,0x00,0x50,0x98,0xE4,0xE4,0x00,0x00,0x1B,0x98,0xBB,0xC0,0xC0,0x10,0x01, +0x44,0xE7,0x2C,0xF8,0xE6,0x06,0xBC,0xC0,0xE0,0x10,0x01,0xF0,0xC7,0x06,0xBC,0xC0, +0xE0,0x10,0x01,0x20,0xC0,0x38,0xE8,0xC7,0x07,0x23,0x50,0xC6,0x10,0xE4,0x00,0x00, +0x1D,0xE8,0xC7,0x07,0x23,0x1C,0xA0,0xEF,0x44,0xC6,0x2C,0xEC,0xC7,0x07,0x23,0x85, +0x29,0x4E,0xF8,0x34,0x44,0xF7,0x3D,0x5C,0xE7,0x00,0xE7,0xFF,0xFE,0xC3,0x9C,0x38, +0x0D,0x41,0x00,0x0D,0x21,0x04,0xE7,0xFF,0xFE,0x0E,0xC1,0x40,0x10,0x01,0xEC,0xEA, +0x07,0x0E,0x20,0xE0,0x7E,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x06,0xE0,0xC0,0xE0,0x10, +0x01,0xE8,0xE7,0x07,0x23,0x54,0xE7,0x10,0x20,0xE1,0xEC,0x98,0xE1,0xE4,0x00,0x00, +0x69,0x20,0xE4,0xE2,0xC0,0xC0,0x10,0x01,0xF0,0xE6,0x06,0xE0,0x9C,0xE1,0x5C,0xE7, +0x00,0xF8,0xE6,0x06,0xE0,0xC0,0xC0,0x10,0x01,0xE8,0xC6,0x07,0x23,0x54,0xC6,0x10, +0x20,0xC1,0x3C,0xC0,0xC0,0x10,0x01,0xF0,0xC6,0x07,0x06,0xD4,0xE6,0x02,0x41,0x98, +0xE2,0xEC,0xEA,0x07,0x0C,0xE4,0x00,0x00,0x7D,0x20,0xE8,0xB6,0xC0,0xE0,0x10,0x01, +0xF8,0x07,0x06,0xE0,0xC0,0xE0,0x10,0x01,0xE8,0xE7,0x07,0x23,0x54,0xE7,0x10,0x20, +0xE0,0x44,0x0D,0x41,0x02,0x0D,0x21,0x06,0x98,0x62,0x9C,0x28,0xE7,0xFF,0xF0,0x9F, +0x98,0xE3,0xE7,0xFF,0xFF,0x9F,0x20,0xEC,0x36,0x98,0x60,0xE7,0xFF,0xF0,0x80,0xEC, +0x0A,0x07,0x0C,0x0D,0x41,0x02,0x0D,0x21,0x06,0x9C,0x28,0x85,0x29,0x9C,0x38,0x0D, +0x21,0x04,0xC0,0xE0,0x10,0x01,0xE8,0xE7,0x07,0x23,0x54,0xE7,0x08,0xD0,0xE0,0x07, +0x12,0xC0,0xE0,0x10,0x01,0xEC,0xE7,0x06,0xE6,0xD0,0xE1,0x06,0xB2,0xC0,0xE0,0x10, +0x01,0xC0,0xC0,0x10,0x01,0xFC,0xE7,0x08,0xD8,0xFC,0xC6,0x04,0xEA,0x08,0x87,0x18, +0x08,0xA6,0x0E,0xD4,0xA4,0x01,0x10,0x08,0xE7,0x16,0x08,0xC6,0x06,0xD4,0xE6,0x00, +0xC0,0xC8,0xA0,0x07,0xFF,0x40,0xC5,0x35,0xD4,0xC7,0x00,0x68,0x98,0x60,0xE7,0xFF, +0xFB,0x0A,0x20,0x61,0x92,0xC0,0x80,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFC,0x84,0x08, +0xD8,0xFE,0xF7,0x04,0xEA,0xCB,0x00,0x07,0xFF,0x08,0xB7,0x0E,0x08,0xE4,0x18,0x40, +0xD8,0x2D,0xD4,0xE6,0x00,0xA8,0x08,0x84,0x16,0x0A,0xF7,0x06,0xD4,0x97,0x00,0x58, +0x42,0xF8,0xBD,0xD6,0xE4,0x01,0x9C,0xC0,0x80,0x10,0x01,0xC2,0xE0,0x10,0x01,0xE8, +0x84,0x08,0xEE,0xEA,0xF7,0x04,0xF0,0xD6,0xE4,0x00,0x60,0xD4,0xE5,0x00,0x40,0xD4, +0xC7,0x00,0xBC,0xCB,0x00,0x07,0xFF,0x42,0xF8,0xBD,0xD4,0x97,0x02,0x28,0xD4,0xE5, +0x02,0x08,0xD4,0xC7,0x01,0xE8,0xE7,0xFF,0xE4,0xEE,0xC0,0xE0,0x10,0x01,0x98,0xC3, +0xEC,0xC7,0x06,0xEC,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x06,0xE8,0xC0,0xE0,0x10,0x01, +0xF8,0x07,0x06,0xBD,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x06,0xF0,0xC0,0xE0,0x10,0x01, +0x0D,0x21,0x06,0x98,0x66,0xF8,0x07,0x07,0x01,0x9C,0x28,0xE7,0xFF,0xDB,0x3F,0x0D, +0x21,0x06,0x9C,0x28,0x85,0x29,0xC0,0xA0,0x10,0x01,0xC0,0xE0,0x10,0x01,0xF0,0xC5, +0x02,0xBA,0xF2,0xE7,0x02,0xBE,0xFC,0xA5,0x02,0xBA,0xFC,0xE7,0x02,0xBE,0x10,0xA5, +0x01,0x10,0x87,0x02,0x8C,0xC5,0x13,0x47,0x01,0x13,0x07,0x03,0x8F,0x57,0x8F,0x04, +0xC2,0xE0,0x10,0x01,0x5F,0x18,0x00,0xC0,0xA0,0x10,0x01,0x4C,0x98,0x08,0xFC,0xA5, +0x09,0xE4,0x5C,0xC6,0x00,0x5F,0x5A,0x00,0xFE,0xF7,0x08,0x78,0x8C,0x85,0x98,0xE0, +0xE4,0x00,0x00,0x41,0x0B,0x37,0x01,0xD4,0xC7,0x00,0x5D,0x0F,0x24,0x01,0xE4,0x00, +0x00,0x0F,0x0F,0x25,0x01,0x9C,0xE1,0x9E,0xE2,0x5C,0xE7,0x00,0x9C,0x82,0x9C,0xA2, +0xD7,0x47,0xFF,0x25,0x4C,0xC6,0x08,0x4F,0x18,0x08,0xC0,0xE0,0x10,0x01,0xC0,0xA0, +0x10,0x01,0xFC,0xE7,0x08,0xA8,0xFC,0xA5,0x09,0xE4,0x8F,0x07,0x8C,0xC5,0xE4,0x00, +0x00,0x1D,0x08,0xA7,0x01,0x9C,0xE2,0x0C,0xA6,0x01,0x9C,0xC2,0xD4,0xF8,0xFF,0xB6, +0x85,0x29,0x9C,0x38,0x0D,0x21,0x04,0x0D,0x41,0x00,0xC0,0xE0,0x10,0x01,0xF0,0xC7, +0x04,0xDC,0x20,0xC4,0x46,0x98,0x60,0xF8,0x07,0x04,0xDC,0xE7,0xFF,0xED,0x00,0xE7, +0xFF,0xD6,0x10,0xE7,0xFF,0xFE,0x86,0x98,0x67,0xE7,0xFF,0xD9,0xA2,0xC0,0xE0,0x10, +0x01,0xC1,0x40,0x10,0x01,0xF0,0x87,0x0C,0x0C,0xFD,0x4A,0x0B,0x14,0x98,0xC0,0x88, +0xEA,0xE4,0x00,0x00,0x35,0x9C,0xC1,0x08,0xA7,0x00,0x5C,0xC6,0x00,0x5C,0xB0,0x31, +0x20,0x00,0x4D,0x5C,0xAF,0xD9,0x9C,0xE2,0x20,0x00,0x2D,0xD4,0x86,0xFF,0x55,0xE4, +0x00,0x01,0xEB,0x98,0x61,0xE7,0xFF,0xD9,0x2A,0xC0,0xE0,0x10,0x01,0xC0,0x80,0x10, +0x01,0xF0,0xC7,0x07,0x18,0xF0,0xA4,0x07,0x00,0x9C,0xC1,0x5C,0xC6,0x00,0xF8,0xC7, +0x07,0x18,0x1C,0xE5,0x01,0x5C,0xE7,0x00,0xF8,0xE4,0x07,0x00,0xD0,0xEA,0x00,0xC5, +0x5C,0xC2,0x9B,0x20,0x00,0x45,0xC0,0xC0,0x10,0x01,0xF2,0xE6,0x0C,0x0C,0x98,0xC0, +0xE4,0x00,0x00,0xC3,0x98,0xC1,0xC0,0xE0,0x10,0x01,0xEC,0xC7,0x06,0x84,0xC0,0xE0, +0x10,0x01,0xC0,0xC0,0x10,0x01,0xFC,0x80,0xFF,0x7F,0xF8,0x06,0x07,0x00,0xE8,0xC7, +0x07,0x23,0x44,0xC6,0x24,0xEC,0xC7,0x07,0x23,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x07, +0x18,0xC0,0xE0,0x10,0x01,0x1C,0xA0,0xEF,0xEC,0x07,0x06,0xEC,0xC0,0xF4,0x00,0x01, +0xC8,0xE7,0x7A,0x10,0x0C,0xC7,0x02,0xE4,0x00,0x00,0xBB,0x9C,0xC1,0x08,0x8A,0x00, +0x5C,0xC6,0x00,0x5C,0x98,0x11,0x20,0x00,0x4D,0x5C,0x87,0xF9,0x9D,0x42,0x20,0x00, +0x2D,0xD6,0xE6,0xFF,0x55,0xE4,0x00,0x00,0x1F,0x20,0xE0,0x2C,0xC0,0xE0,0x10,0x01, +0xF8,0xA7,0x07,0x00,0xC0,0xF4,0x00,0x01,0xFC,0x80,0x80,0x00,0xC8,0xC7,0x26,0x18, +0x08,0xA6,0x01,0x44,0xA5,0x25,0x5C,0xA5,0x04,0x0C,0xA6,0x01,0xC8,0xC7,0x24,0x28, +0x08,0xA6,0x01,0x50,0xA5,0x01,0xC8,0xE7,0x7A,0x10,0x0C,0xA6,0x01,0xFC,0xA0,0xFE, +0xFF,0x0C,0xC7,0x02,0x44,0xC6,0x2C,0x0C,0xC7,0x00,0x0D,0x41,0x02,0x0D,0x21,0x06, +0x9C,0x28,0x85,0x29,0x98,0x65,0xE7,0xFF,0xFE,0x1F,0xC0,0xE0,0x10,0x01,0xFC,0xE7, +0x0C,0x0C,0xC0,0xC0,0x10,0x01,0x10,0x87,0x01,0x10,0xA7,0x04,0xFC,0xC6,0x09,0x4C, +0xC0,0xE0,0x10,0x01,0x42,0xE4,0x2B,0xFC,0xE7,0x0B,0x14,0x5E,0xF7,0x00,0x4E,0xF7, +0x10,0x8E,0xE7,0xE4,0x00,0x00,0x27,0x0B,0x27,0x02,0x0B,0x07,0x00,0x9C,0xE4,0x8F, +0x19,0x0F,0x06,0x00,0x9C,0xC4,0xD4,0xF7,0xFF,0x8E,0xC0,0xE0,0x10,0x01,0x40,0xA4, +0x2B,0xFF,0x07,0x09,0x4C,0x98,0xC0,0xE8,0xE7,0x09,0x4C,0xE4,0x00,0x00,0x37,0x1E, +0xE6,0x01,0x4C,0x86,0x10,0x5C,0xD7,0x00,0x8C,0x98,0x0E,0xE4,0x02,0x5E,0xE7,0x1D, +0x5E,0xF7,0x06,0x48,0xF7,0x38,0xD4,0xA6,0xFF,0x4C,0xC0,0xC0,0x10,0x01,0xEC,0xE6, +0x06,0xC3,0xC0,0xE2,0x32,0x88,0x20,0x00,0x8D,0xFC,0xC0,0x01,0x18,0xC0,0xE0,0x22, +0xEC,0x48,0xE7,0x30,0xC0,0xC0,0x10,0x01,0x5C,0xE7,0x06,0xFC,0xC6,0x04,0xEA,0x0C, +0xE6,0x2F,0x0C,0xE6,0x23,0xE4,0x00,0x00,0x75,0xC0,0xE0,0xAE,0xEC,0xC8,0xC0,0x01, +0x18,0x20,0x00,0x2F,0x98,0xC5,0x40,0xC7,0x30,0x5C,0xC6,0x06,0xC0,0xA0,0x10,0x01, +0xEC,0xC5,0x05,0x0D,0xC0,0xE0,0xAE,0xEC,0xC8,0xC0,0x01,0x18,0x20,0x00,0x2F,0x98, +0xC5,0x40,0xE7,0x30,0x5C,0xC7,0x06,0xC0,0xE0,0x10,0x01,0xEC,0xC7,0x05,0x19,0x85, +0x29,0x4C,0x63,0x10,0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10,0x01,0xFC,0xE7,0x0B,0x14, +0xFC,0xC6,0x09,0x4C,0x8C,0x67,0xE4,0x00,0x00,0x27,0x08,0x87,0x02,0x08,0xA7,0x00, +0x9C,0xE4,0x8C,0xA4,0x0C,0xA6,0x00,0x9C,0xC4,0xD4,0xE3,0xFF,0x8E,0x85,0x29,0x9C, +0x38,0x0D,0x41,0x04,0x0D,0x61,0x00,0xC0,0xE0,0x10,0x01,0xF0,0xE7,0x04,0xD4,0xD0, +0xE2,0x05,0x32,0xC0,0x80,0x10,0x01,0xFC,0xE4,0x0C,0x0C,0x10,0xE7,0x04,0x4C,0xA7, +0x08,0x4D,0x47,0x10,0x9C,0xFF,0x1F,0x25,0xFF,0x4F,0x47,0x08,0xC0,0xC0,0x10,0x01, +0x9D,0x5F,0xFC,0xC6,0x0B,0x14,0xF1,0x04,0x0C,0x0C,0x1F,0xC5,0x01,0x4F,0xB9,0x08, +0x98,0xE0,0x9B,0x0A,0x53,0x80,0x15,0x8A,0xE6,0x53,0x60,0x16,0xE4,0x00,0x00,0xC5, +0x24,0x84,0x6D,0xD4,0xFA,0x00,0xC2,0xD4,0xF9,0x00,0xA2,0xD4,0xE5,0x00,0x82,0xD4, +0xFE,0x00,0x62,0xD4,0xFD,0x00,0x42,0xD4,0xEA,0x02,0x1E,0x20,0x60,0xC6,0x20,0x84, +0x4E,0x08,0x97,0x02,0x40,0x84,0xC0,0x40,0x84,0xDB,0x0C,0x97,0x03,0xE4,0x00,0x00, +0x5B,0xD4,0xFA,0x00,0x8E,0x08,0x86,0x00,0x40,0x84,0xC0,0x40,0x84,0xE3,0xE4,0x00, +0x00,0x33,0x08,0x86,0x01,0x4C,0x84,0x08,0xE4,0x00,0x00,0x1F,0x08,0x86,0x00,0x4D, +0x64,0xF9,0x8C,0x8B,0x4C,0x84,0x0A,0x0C,0x86,0x01,0x9C,0xE1,0x9C,0xC2,0x5C,0x87, +0x00,0xD5,0x04,0xFC,0xFD,0x0D,0x61,0x02,0x0D,0x41,0x06,0x9C,0x28,0x85,0x29,0xC0, +0xE0,0x10,0x01,0xFC,0xA0,0xDF,0x3F,0xE8,0xC7,0x07,0x23,0x44,0xC6,0x2C,0xEC,0xC7, +0x07,0x23,0xC0,0xE0,0x10,0x01,0x1C,0x21,0xC0,0xF8,0x07,0x06,0xE9,0x0D,0x21,0x3C, +0x0D,0x41,0x38,0x0D,0x61,0x34,0x98,0x67,0x0D,0x81,0x30,0x0D,0xA1,0x2C,0xE7,0xFF, +0xD3,0x58,0x98,0x60,0xE7,0xFF,0xFE,0x16,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x04,0xCC, +0xC0,0xE0,0x10,0x01,0xF8,0x07,0x04,0xCD,0xC0,0xE0,0x10,0x01,0xC1,0x60,0x10,0x01, +0xF0,0x87,0x0C,0x10,0xFD,0x6B,0x0B,0x14,0xC0,0xE0,0x10,0x01,0x4E,0xE4,0x10,0xFC, +0xE7,0x09,0x4C,0x89,0x4B,0x43,0x17,0x5C,0x88,0xA7,0x88,0xCB,0xE4,0x00,0x00,0x27, +0x0B,0x46,0x02,0x0B,0x26,0x00,0x9C,0xC4,0x8F,0x3A,0x0F,0x25,0x00,0x9C,0xA4,0xD4, +0xD8,0xFF,0x8E,0xC0,0xC0,0x10,0x01,0xFC,0xC6,0x09,0x4C,0x8E,0xE6,0x98,0xC0,0xE4, +0x00,0x00,0x2B,0x0F,0x07,0x02,0x1C,0xA6,0x01,0x5F,0x0C,0x91,0x20,0x00,0x19,0x5C, +0xC5,0x04,0x9C,0xE4,0xD4,0xF7,0xFF,0x7E,0x9C,0x9D,0xD4,0x86,0x00,0xFC,0x98,0x61, +0xE7,0xFF,0xF0,0xE6,0x20,0x60,0x54,0xC0,0xC0,0x10,0x01,0x98,0xE1,0xF8,0xE6,0x04, +0xCC,0xC0,0xC0,0x10,0x01,0xF8,0xE6,0x04,0xCD,0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10, +0x01,0xF0,0xC6,0x0C,0x0C,0x4C,0xC6,0x08,0xF0,0xA7,0x07,0x02,0x8D,0x46,0xC0,0xE0, +0x10,0x01,0x88,0xCB,0xE8,0xE7,0x07,0x23,0xE4,0x00,0x00,0x47,0x08,0x86,0x00,0xC0, +0x80,0x11,0x68,0x20,0x00,0x35,0xC8,0xE7,0x20,0x00,0x98,0xA0,0xE4,0x00,0x00,0x15, +0x5C,0x85,0x51,0x20,0x00,0x19,0x50,0xE7,0x40,0x9C,0xC2,0xD4,0xCA,0xFF,0x0E,0xC0, +0xC0,0x10,0x01,0xF8,0xA6,0x07,0x02,0xC0,0xC0,0x10,0x01,0xEC,0xE6,0x07,0x23,0xC0, +0xE0,0x10,0x01,0xE8,0xE7,0x00,0x4B,0x5C,0xE7,0x00,0xC0,0xE0,0x14,0x04,0x20,0x0D, +0x05,0xC0,0xE0,0x10,0x01,0xC0,0xC0,0x10,0x01,0xFC,0xE7,0x0C,0x0C,0xFC,0xC6,0x0B, +0x14,0x10,0x87,0x01,0x10,0xE7,0x04,0x40,0x87,0x23,0x88,0xA7,0xE4,0x00,0x00,0x55, +0x1F,0x01,0x28,0x42,0xE7,0x2D,0x4E,0xF7,0x10,0x8E,0xF8,0x4F,0x07,0x10,0x8F,0x06, +0x1F,0x47,0x01,0x0B,0x38,0x02,0x4F,0x07,0x10,0x5C,0xFA,0x00,0x8F,0x06,0x0B,0x18, +0x00,0x8F,0x19,0x0F,0x17,0xDC,0xD4,0x87,0xFE,0xD4,0x1E,0xE1,0x04,0x0C,0xA1,0x06, +0x1F,0x41,0x28,0x88,0xD7,0x98,0xE0,0x0C,0x86,0x02,0x5C,0x87,0x15,0x9C,0xC4,0x48, +0xE7,0x20,0x5C,0xA4,0x15,0x48,0xA5,0x20,0xD4,0xDA,0xFF,0x7E,0xC0,0xC0,0x10,0x01, +0xEC,0xC6,0x06,0xC6,0x1C,0x86,0xFC,0x24,0x84,0xF7,0xC0,0xA0,0x7D,0x08,0x20,0x02, +0x09,0xC3,0x00,0x10,0x01,0x4F,0x25,0x12,0xE8,0x98,0x05,0x31,0xD7,0x24,0x1D,0x58, +0x43,0x39,0x25,0x9B,0x6A,0x43,0x39,0xD8,0x8C,0x99,0xEC,0x98,0x05,0x31,0xE4,0x00, +0x07,0x33,0x40,0xA5,0x25,0x9B,0x2A,0x40,0xA5,0xC8,0x8C,0x85,0xEC,0x98,0x05,0x33, +0xE4,0x00,0x00,0xA1,0x5C,0xEB,0x51,0x20,0x00,0x5D,0xC0,0xA0,0x10,0x01,0xE8,0x85, +0x05,0x31,0xD4,0x87,0x00,0x60,0xEC,0xE5,0x05,0x31,0xE4,0x00,0x00,0x6D,0x5C,0xE8, +0xB9,0x20,0x00,0xBD,0x50,0x80,0x5A,0xC0,0xA0,0x10,0x01,0xEC,0x85,0x05,0x31,0xC0, +0xA0,0x10,0x01,0xE8,0x85,0x05,0x33,0xD4,0xE4,0x00,0x40,0xEC,0xE5,0x05,0x33,0x5C, +0xE6,0x39,0x20,0x00,0x39,0x50,0x80,0x46,0xC0,0xA0,0x10,0x01,0xEC,0x85,0x05,0x33, +0xC0,0xA0,0x10,0x01,0x4F,0xA7,0x12,0xEB,0x05,0x05,0x31,0x98,0x80,0x1F,0x98,0xF7, +0x4F,0x78,0x10,0x98,0xA0,0x1F,0xC4,0x01,0x0F,0x37,0x02,0xD7,0x99,0x00,0x38,0x5C, +0x9E,0x00,0xD7,0x67,0x00,0x40,0xD7,0x38,0x00,0x64,0xD7,0x3D,0x00,0x68,0xD7,0x38, +0x00,0x48,0x9C,0xA1,0x5C,0xA5,0x00,0x9E,0xE4,0xD6,0xFA,0xFE,0xE6,0xC0,0xE0,0x10, +0x01,0x0E,0xE1,0x0A,0xE8,0xE7,0x05,0x33,0xD6,0xE7,0x00,0x5C,0x0E,0xE1,0x22,0xD6, +0xE7,0x01,0x28,0xC0,0xE0,0x10,0x01,0xF2,0xE7,0x05,0x34,0xC2,0xE0,0x16,0x6E,0x20, +0x00,0x25,0x9E,0xE1,0xFA,0xE7,0x05,0x34,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x05,0x35, +0xE4,0x00,0x00,0x43,0xC0,0xE0,0x10,0x01,0xF2,0xE7,0x05,0x35,0xC2,0xE0,0x16,0x6E, +0x20,0x00,0x25,0x9E,0xE1,0xFA,0xE7,0x05,0x35,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x05, +0x34,0xC0,0xE0,0x10,0x01,0xF0,0xE7,0x05,0x34,0x5C,0xE2,0x93,0x20,0x00,0x2D,0x98, +0xA6,0x98,0x80,0xE4,0x00,0x00,0x2D,0xD0,0xA4,0x00,0x95,0xC0,0xE0,0x10,0x01,0xF0, +0xE7,0x05,0x35,0x5C,0xE1,0x53,0x48,0x84,0x2A,0x20,0xC4,0x56,0xC0,0xE0,0x10,0x01, +0xF8,0x07,0x06,0xDF,0x98,0xC2,0xD0,0xA4,0x01,0x55,0xE4,0x00,0x03,0x93,0x20,0xC8, +0xE2,0xC1,0x40,0x10,0x01,0xD0,0xA4,0x01,0x39,0xF0,0xEA,0x06,0xDF,0x9C,0xE1,0x5C, +0xE7,0x00,0xF8,0xEA,0x06,0xDF,0xD0,0xE1,0x0D,0x69,0xF8,0x0A,0x06,0xDF,0x98,0xC3, +0xC0,0xE0,0x10,0x01,0xEC,0xC7,0x06,0xC4,0xE4,0x00,0x03,0x37,0xF8,0x0A,0x06,0xDF, +0x98,0xC1,0xE7,0xFF,0xFF,0xDD,0x20,0xCC,0xE2,0xC1,0x40,0x10,0x01,0xF0,0xEA,0x06, +0xDF,0x9C,0xE1,0xF8,0xEA,0x06,0xDF,0x1C,0xE0,0x80,0xC1,0x80,0x10,0x01,0x98,0x62, +0xF8,0xEC,0x06,0xBC,0xE7,0xFF,0xE0,0x4E,0xF8,0x0C,0x06,0xBC,0xF0,0xEA,0x06,0xDF, +0xD0,0xE5,0x0B,0x49,0xF8,0x0A,0x06,0xDF,0x98,0xC4,0xE4,0x00,0x01,0xF3,0xD0,0xC4, +0x01,0x16,0xC0,0xE0,0x10,0x01,0xEC,0xC7,0x06,0xC4,0xD0,0x83,0x0A,0x49,0x98,0xC5, +0xEC,0xC7,0x06,0xC4,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x06,0xDF,0xE4,0x00,0x02,0x6F, +0xD0,0xC5,0x02,0x6E,0xC1,0x40,0x10,0x01,0x24,0x8C,0xED,0xF0,0xEA,0x06,0xDF,0x9C, +0xE1,0x5C,0xE7,0x00,0xF8,0xEA,0x06,0xDF,0xD0,0xE1,0x08,0xD9,0xC0,0xE0,0x10,0x01, +0x98,0xC6,0xEC,0xC7,0x06,0xC4,0x50,0xE0,0x40,0xC1,0x80,0x10,0x01,0x98,0x62,0xF8, +0xEC,0x06,0xBC,0xE7,0xFF,0xDF,0x70,0xF8,0x0C,0x06,0xBC,0xF8,0x0A,0x06,0xDF,0xE4, +0x00,0x01,0xF5,0xF8,0x0A,0x06,0xDF,0x98,0xC4,0xE7,0xFF,0xFE,0x8F,0xD0,0xC6,0x02, +0x0E,0xC1,0x40,0x10,0x01,0xF0,0xEA,0x06,0xDF,0x9C,0xE1,0xF8,0xEA,0x06,0xDF,0x50, +0xE0,0x40,0xC1,0x80,0x10,0x01,0x98,0x62,0xF8,0xEC,0x06,0xBC,0xE7,0xFF,0xDE,0xFE, +0xF8,0x0C,0x06,0xBC,0xF0,0xEA,0x06,0xDF,0xD0,0xE4,0x06,0x09,0x98,0xC1,0xC0,0xE0, +0x10,0x01,0xF8,0x0A,0x06,0xDF,0xEC,0xC7,0x06,0xC4,0xE4,0x00,0x01,0x2B,0xD0,0xC0, +0x05,0x2E,0xC1,0x40,0x10,0x01,0xF0,0xEA,0x06,0xDF,0x9C,0xE1,0xF8,0xEA,0x06,0xDF, +0x50,0xE0,0x40,0xC1,0x80,0x10,0x01,0x98,0x62,0xF8,0xEC,0x06,0xBC,0xE7,0xFF,0xDE, +0x7C,0xF8,0x0C,0x06,0xBC,0xF0,0xEA,0x06,0xDF,0xD0,0xE4,0x04,0x01,0xC0,0xE0,0x10, +0x01,0xF8,0x0A,0x06,0xDF,0xF8,0x07,0x05,0x34,0x98,0xC1,0xC0,0xE0,0x10,0x01,0xF8, +0x07,0x05,0x35,0xC0,0xE0,0x10,0x01,0xEC,0xC7,0x06,0xC4,0xE4,0x00,0x00,0xBD,0xC1, +0x80,0x10,0x01,0xEC,0xEC,0x06,0xC6,0x20,0xE5,0x30,0xC1,0x40,0x10,0x01,0xF0,0xEA, +0x06,0xDF,0x9C,0xE1,0xF8,0xEA,0x06,0xDF,0x50,0xE0,0x40,0xC1,0xA0,0x10,0x01,0x98, +0x62,0xF8,0xED,0x06,0xBC,0xE7,0xFF,0xDD,0xCC,0xF8,0x0D,0x06,0xBC,0xF0,0xEA,0x06, +0xDF,0xD0,0xE4,0x01,0x41,0x98,0xE1,0xF8,0x0A,0x06,0xDF,0xEC,0xEC,0x06,0xC4,0xC0, +0xE0,0x10,0x01,0xF8,0x07,0x05,0x34,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x05,0x35,0xE4, +0x00,0x00,0x15,0x98,0xE0,0xE4,0x00,0x00,0x0D,0x98,0xE1,0xC0,0xC0,0x10,0x01,0xF8, +0xE6,0x06,0xE9,0x20,0xE0,0x1C,0xE7,0xFF,0xC6,0x62,0x98,0x61,0xE7,0xFF,0xD5,0xF0, +0xC0,0xE0,0x10,0x01,0xEC,0xE7,0x04,0xE2,0xD0,0xE0,0x05,0x06,0xC0,0xE0,0x10,0x01, +0xF0,0xC7,0x0C,0x0C,0x98,0xE0,0xE4,0x00,0x00,0x29,0x08,0xAB,0x00,0x9C,0xE1,0x5C, +0xB8,0x11,0x5C,0xE7,0x00,0x9D,0x62,0x20,0x00,0x2D,0xD4,0xC7,0xFF,0x85,0xE4,0x00, +0x00,0xDD,0xC0,0xE0,0x10,0x01,0xF0,0xC7,0x07,0x02,0x9C,0xC1,0xF8,0xC7,0x07,0x02, +0xC0,0xE0,0x10,0x01,0xEC,0xE7,0x06,0xC6,0x9C,0xFC,0x24,0xE4,0x2F,0xC0,0xE0,0x10, +0x01,0xF8,0x07,0x07,0x02,0xC0,0xE0,0x10,0x01,0xF0,0xC7,0x07,0x02,0x24,0xC9,0x2D, +0xC0,0xC0,0x10,0x01,0xF8,0x07,0x07,0x02,0xC0,0xE0,0x10,0x01,0xF8,0x06,0x07,0x00, +0xE8,0xC7,0x07,0x23,0x50,0xC6,0x80,0xEC,0xC7,0x07,0x23,0xC0,0xE0,0x10,0x01,0xF8, +0x07,0x07,0x18,0xE4,0x00,0x00,0x4B,0x98,0x86,0xC3,0x00,0x10,0x01,0x40,0xA5,0x20, +0xE8,0x98,0x05,0x33,0xD4,0xA4,0xE2,0xF4,0xE7,0xFF,0xF9,0x71,0xC0,0xE0,0x10,0x01, +0xF8,0x07,0x07,0x02,0xE7,0xFF,0xFF,0x39,0x0D,0xA1,0x2E,0x0D,0x81,0x32,0x0D,0x61, +0x36,0x0D,0x41,0x3A,0x0D,0x21,0x3E,0x1C,0x21,0x40,0x85,0x29,0xC0,0xC0,0x10,0x01, +0x50,0xE0,0x50,0x1C,0x21,0xC8,0xEC,0xE6,0x06,0xC1,0x0D,0x41,0x30,0x0D,0x61,0x2C, +0x0D,0x81,0x28,0x0D,0xC1,0x20,0x0E,0x01,0x18,0x0E,0x21,0x14,0x0E,0x41,0x10,0x0E, +0x61,0x0C,0x0E,0x81,0x08,0x0E,0xA1,0x04,0x8A,0x46,0xC2,0xA0,0x10,0x01,0xC0,0xC0, +0x10,0x01,0xEC,0xF5,0x06,0xF5,0xC2,0x60,0x10,0x01,0x50,0xE0,0x1E,0xC2,0x20,0x10, +0x01,0xC1,0xC0,0x10,0x01,0xC2,0x00,0x10,0x01,0x0D,0x21,0x34,0x0D,0xA1,0x24,0x0D, +0xE1,0x1C,0x8A,0x86,0xEC,0xE6,0x07,0x09,0xEC,0xF3,0x06,0xD5,0xFD,0xCE,0x07,0x10, +0xFE,0x10,0x06,0xF1,0x99,0x40,0x51,0x80,0x1C,0xFD,0x71,0x08,0xD8,0xE4,0x00,0x02, +0xD3,0x4C,0xEA,0x10,0x8C,0xEE,0x08,0x87,0x00,0xC0,0x8F,0xFF,0xE0,0x20,0x04,0xF5, +0x08,0xA7,0x02,0xC0,0xAF,0xFF,0xE0,0x20,0x04,0xCD,0x42,0xEA,0x63,0x8E,0xEB,0x08, +0xF7,0x19,0x40,0xE5,0x3D,0x5C,0xE7,0x06,0x4C,0xC7,0xFA,0x09,0xF7,0x17,0x44,0xE6, +0x3E,0x41,0xE4,0x7D,0x40,0xE7,0x35,0x5D,0xEF,0x06,0x5C,0xE7,0x06,0x4C,0xCF,0xFA, +0xE9,0xB5,0x06,0xF5,0x45,0xE6,0x7E,0x41,0xEF,0x35,0x5D,0xEF,0x06,0xD4,0xED,0x01, +0x0C,0xE8,0xD2,0x06,0xC1,0xD5,0xE6,0x00,0xCC,0x40,0x8A,0x84,0x10,0xC4,0x00,0x5C, +0xC0,0x53,0x9C,0xC1,0x5C,0xC6,0x00,0x48,0xC6,0x1A,0xE4,0x00,0x00,0x2B,0x40,0x90, +0x54,0x10,0xC4,0x00,0x5C,0xC0,0x09,0x9C,0xDF,0x5C,0xC6,0x00,0x48,0xC6,0x00,0x18, +0xC4,0x00,0x40,0xD0,0x54,0x10,0xC6,0x00,0xD0,0xC2,0x06,0x11,0xE8,0xD3,0x06,0xD5, +0xD4,0xE6,0x00,0x84,0x40,0xEA,0x63,0x8C,0xEB,0x0C,0xA7,0x19,0xE4,0x00,0x00,0x93, +0xD4,0xED,0x02,0x2C,0x40,0x87,0x35,0x40,0xAD,0x35,0x40,0xE6,0x3D,0x40,0xA5,0x2B, +0x40,0xE7,0x23,0x8C,0xE5,0x40,0x6D,0x6B,0x40,0x63,0x3B,0x40,0x63,0x28,0xE7,0xFF, +0x37,0xFE,0x4C,0xEA,0x10,0x8C,0xEE,0x41,0xAD,0x1D,0x08,0xC7,0x02,0x40,0xEA,0x63, +0x8C,0xEB,0x08,0xA7,0x18,0xD4,0xC5,0x00,0x58,0x41,0xA6,0x6D,0xE4,0x00,0x00,0x0D, +0x8D,0xA6,0x0D,0xA7,0x19,0xE8,0xF4,0x07,0x09,0xD5,0xE7,0x00,0xC4,0x40,0xEA,0x63, +0x4C,0xCA,0x10,0x8C,0xEB,0x8C,0xCE,0x08,0xC6,0x01,0x0C,0xC7,0x17,0xE4,0x00,0x00, +0x9B,0xE9,0xB2,0x06,0xC1,0xD5,0xED,0x02,0x2C,0x40,0xAF,0x3D,0x40,0xCD,0x3D,0x40, +0xE7,0x7D,0x40,0xC6,0x33,0x40,0xE7,0x2B,0x8C,0xE6,0x40,0x6D,0x6B,0x40,0x63,0x3B, +0x40,0x63,0x30,0xE7,0xFF,0x37,0x34,0x4C,0xEA,0x10,0x8C,0xEE,0x41,0xAD,0x1D,0x08, +0xC7,0x00,0x40,0xEA,0x63,0x8C,0xEB,0x08,0xA7,0x16,0xD4,0xC5,0x00,0x58,0x41,0xA6, +0x6D,0xE4,0x00,0x00,0x0D,0x8D,0xA6,0x0D,0xA7,0x17,0x1C,0xAA,0x01,0x4C,0xEA,0x10, +0x40,0xCA,0x63,0x8C,0xEE,0x8C,0xCB,0x5D,0x45,0x00,0x08,0xA6,0x19,0x0C,0xA7,0x03, +0x08,0xC6,0x17,0x0C,0xC7,0x01,0xF0,0xF1,0x08,0xD8,0xD4,0xEA,0xF4,0xBD,0x0E,0xA1, +0x06,0x0E,0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A, +0x0D,0xE1,0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D, +0x41,0x32,0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0x9C,0x30,0xC8,0xA0,0x7F,0xFF, +0x0D,0x61,0x04,0xC1,0x60,0x10,0x01,0xE8,0xEB,0x07,0x23,0x44,0xE7,0x2C,0x0D,0x41, +0x08,0xEC,0xEB,0x07,0x23,0x0D,0x21,0x0C,0xE7,0xFF,0xE7,0x0A,0xC1,0x40,0x10,0x01, +0xEC,0xEA,0x06,0xEE,0x20,0xE1,0x0E,0xE8,0xEB,0x07,0x23,0x54,0xE7,0x40,0x20,0xE0, +0x7C,0xE7,0xFF,0x36,0x0E,0x98,0x66,0xE7,0xFF,0xC3,0xE6,0xC0,0xE0,0x10,0x01,0xF8, +0x07,0x06,0xF0,0x98,0xE1,0xEC,0xEA,0x06,0xEC,0xE4,0x00,0x00,0x15,0x98,0x62,0xE7, +0xFF,0xC3,0xB6,0xC0,0xE0,0x10,0x01,0xF0,0xC7,0x04,0xDC,0xD0,0xC1,0x21,0x5E,0xF8, +0x07,0x04,0xDC,0xE4,0x00,0x08,0x47,0x20,0xE5,0x7A,0xE8,0xEB,0x07,0x23,0x54,0xC7, +0x08,0x20,0xC0,0x54,0xE7,0xFF,0xCC,0xB2,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x06,0xE8, +0x98,0xE2,0xE4,0x00,0x00,0xF9,0x54,0xC7,0x40,0x20,0xC0,0xC0,0xC8,0xC0,0x20,0x00, +0x44,0xE7,0x34,0x20,0xE0,0x9A,0xC0,0xC0,0x10,0x01,0xF0,0xE6,0x06,0xF0,0x9C,0xE1, +0x5C,0xE7,0x00,0xF8,0xE6,0x06,0xF0,0x98,0x64,0xC0,0xC0,0x10,0x01,0xF0,0xC6,0x06, +0xD0,0xD4,0xE6,0x1E,0xA9,0xE4,0x00,0x07,0x0F,0xC0,0xE0,0x10,0x01,0xEC,0x07,0x06, +0xEC,0xE4,0x00,0x07,0x8B,0x20,0xE9,0x06,0xE8,0xEB,0x07,0x23,0xC1,0x60,0x10,0x01, +0x54,0xE7,0x08,0x20,0xE0,0x94,0xF0,0xEB,0x06,0xE8,0x9C,0xE1,0xF8,0xEB,0x06,0xE8, +0xE7,0xFF,0x34,0xF2,0xC0,0xE0,0x10,0x01,0xF0,0xCB,0x06,0xE8,0xF0,0xE7,0x06,0xFE, +0xD4,0xC7,0x1C,0xB1,0xE4,0x00,0x02,0x83,0xF8,0x0B,0x06,0xE8,0x98,0xE6,0xEC,0xEA, +0x06,0xEC,0xE4,0x00,0x07,0x09,0xD0,0xE3,0x09,0x0E,0xC0,0xE0,0x10,0x01,0xF0,0xE7, +0x08,0xD8,0x20,0xE4,0x2E,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x04,0xE8,0xC0,0xE0,0x10, +0x01,0xE8,0xE7,0x07,0x23,0x54,0xE7,0x08,0xD0,0xE0,0x07,0x8A,0x98,0xC1,0xC0,0xE0, +0x10,0x01,0xF8,0xC7,0x04,0xDC,0xE7,0xFF,0xC4,0xB2,0xE7,0xFF,0x34,0x3E,0xC0,0xE0, +0x10,0x01,0xF0,0xC7,0x08,0xD8,0x20,0xC5,0x7E,0xFC,0xE7,0x08,0xD8,0x08,0xA7,0x17, +0xC0,0xC0,0x10,0x01,0xE8,0x86,0x06,0xD7,0x40,0x84,0x2D,0x5C,0x84,0x06,0x4C,0xA4, +0xFA,0x44,0x85,0x26,0x40,0xA4,0x2D,0xC0,0xA0,0x3E,0x8C,0x20,0x00,0x8D,0x08,0xE7, +0x19,0xFC,0xC6,0x06,0xD6,0x08,0xC6,0x03,0x40,0xC6,0x3D,0x5C,0xC6,0x06,0x4C,0xE6, +0xFA,0x44,0xC7,0x36,0x40,0xE6,0x3D,0xC0,0xE0,0x3E,0x88,0x20,0x00,0x69,0xE7,0xFF, +0x34,0x76,0x20,0x60,0x4C,0xE7,0xFF,0xCA,0x70,0xC0,0xE0,0x10,0x01,0xEC,0xA7,0x06, +0xE6,0xD0,0xA1,0x15,0x5A,0xC0,0xE0,0x10,0x01,0xE8,0xC7,0x07,0x05,0x9C,0xC1,0x5C, +0xC6,0x04,0xEC,0xC7,0x07,0x05,0xC8,0xA0,0xFF,0xFD,0x5C,0xC5,0x17,0x20,0x00,0x25, +0x98,0xDE,0xEC,0xC7,0x07,0x05,0xC0,0xA0,0x10,0x01,0xC0,0xE0,0x10,0x01,0xF0,0x85, +0x08,0xD8,0xFC,0xE7,0x08,0xEE,0xC0,0xC0,0x10,0x01,0x50,0xA0,0x1C,0xFC,0xC6,0x06, +0xD6,0x40,0xA4,0x2B,0x8C,0xA7,0xE4,0x00,0x00,0x2B,0x08,0x87,0x01,0x0C,0x86,0x01, +0x08,0x87,0x03,0x1C,0xE7,0x1C,0x0C,0x86,0x03,0x9C,0xC4,0xD4,0xE5,0xFF,0x7E,0xE7, +0xFF,0xF7,0xDA,0xE7,0xFF,0xCA,0x78,0x0D,0x21,0x0E,0x0D,0x61,0x06,0x0D,0x41,0x0A, +0x98,0x61,0x1C,0x21,0x10,0xE7,0xFF,0xD3,0x6D,0xC0,0xE0,0x10,0x01,0x98,0xC4,0xF8, +0x07,0x06,0xBD,0xE4,0x00,0x04,0xB7,0xD0,0xE4,0x0B,0x86,0xE8,0xEB,0x07,0x23,0x54, +0xE7,0x08,0x20,0xE0,0x74,0x98,0xE3,0xEC,0xEA,0x06,0xEC,0xC0,0xE0,0x10,0x01,0xEC, +0x07,0x07,0x05,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x04,0xE8,0xE4,0x00,0x04,0x77,0xC0, +0xE0,0x10,0x01,0xF0,0xC7,0x06,0xBD,0x9C,0xC1,0xF8,0xC7,0x06,0xBD,0xC0,0xE0,0x10, +0x01,0xF0,0xE7,0x07,0x21,0xD0,0xE2,0x04,0xDE,0xC0,0x80,0x10,0x01,0xC0,0xA0,0x10, +0x01,0xE8,0xE4,0x06,0xD6,0xE8,0xC5,0x0B,0xEE,0x43,0x07,0x35,0x5F,0x18,0x06,0x4E, +0xF8,0xFA,0x47,0x17,0xC6,0x42,0xF8,0xBD,0x5E,0xEC,0x99,0x20,0x00,0x9D,0xFC,0xA5, +0x0B,0xEE,0x08,0xA5,0x03,0xFC,0x84,0x06,0xD6,0x08,0x84,0x03,0x40,0x84,0x2D,0x5C, +0x84,0x06,0x4C,0xA4,0xFA,0x44,0x85,0x26,0x40,0xA4,0x2D,0xC0,0xA0,0x10,0xE8,0x20, +0x01,0x45,0x8C,0xE6,0x4C,0xC7,0xF9,0x8C,0xE6,0xC0,0xA0,0x10,0x01,0x4C,0xC7,0x0A, +0xFC,0xE5,0x08,0xD8,0x0C,0xC7,0x17,0x99,0x41,0xC0,0xC0,0x10,0x01,0xF9,0x45,0x08, +0xD8,0xE8,0xA6,0x0B,0xF0,0xC0,0xC0,0x10,0x01,0xE8,0xC6,0x06,0xD8,0x8C,0xC5,0x4C, +0xA6,0xF9,0x8C,0xC5,0x4C,0xC6,0x0A,0x98,0x61,0x0C,0xC7,0x19,0xE7,0xFF,0xD1,0xBE, +0xC0,0xE0,0x10,0x01,0xF9,0x47,0x07,0x21,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x06,0xBD, +0xC0,0xE0,0x10,0x01,0xF0,0xC7,0x06,0xBD,0xC0,0xE0,0x10,0x01,0xF0,0xE7,0x06,0xD2, +0xD4,0xC7,0x0B,0xB1,0xC0,0xE0,0x10,0x01,0xF0,0xE7,0x07,0x21,0xD0,0xE1,0x0B,0x06, +0xC0,0xA0,0x10,0x01,0xC0,0xC0,0x10,0x01,0xE8,0xE5,0x06,0xD6,0xEA,0xE6,0x0B,0xEF, +0x42,0xE7,0xBD,0x5E,0xF7,0x06,0x4C,0x97,0xFA,0x46,0xE4,0xBE,0x40,0x97,0x25,0x5C, +0x8C,0x99,0x20,0x00,0x9D,0xFC,0xC6,0x0B,0xEE,0x08,0xC6,0x03,0xFC,0xA5,0x06,0xD6, +0x08,0xA5,0x03,0x40,0xA5,0x35,0x5C,0xA5,0x06,0x4C,0xC5,0xFA,0x44,0xA6,0x2E,0x40, +0xC5,0x35,0xC0,0xC0,0x10,0xE8,0x20,0x04,0x59,0xC0,0xA0,0x10,0x01,0xC0,0xC0,0x10, +0x01,0xE8,0x85,0x06,0xD9,0xFC,0xA6,0x08,0xD8,0x0C,0xE5,0x17,0x0C,0x85,0x19,0x98, +0xE1,0x98,0x61,0xF8,0xE6,0x08,0xD8,0xE7,0xFF,0xD0,0x88,0xC0,0xE0,0x10,0x01,0xF8, +0x07,0x07,0x21,0xE4,0x00,0x01,0xE7,0xD0,0xE5,0x01,0x76,0xC0,0xE0,0x10,0x01,0xEC, +0x07,0x07,0x05,0xE7,0xFF,0x2F,0x2A,0xE7,0xFF,0xC6,0x4C,0xC0,0xE0,0x10,0x01,0x98, +0x60,0xF8,0x07,0x04,0xDC,0xE7,0xFF,0xD0,0x2C,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x07, +0x01,0xE7,0xFF,0xFA,0x77,0xD0,0xE6,0x06,0x0E,0xE8,0xEB,0x07,0x23,0x54,0xE7,0x40, +0x20,0xE0,0x26,0x98,0x63,0xE7,0xFF,0xBC,0xAA,0xC0,0xC0,0x10,0x01,0xF0,0xE6,0x07, +0x01,0x9C,0xE1,0x5C,0xE7,0x00,0xF8,0xE6,0x07,0x01,0x5C,0xE6,0x53,0xC0,0xE0,0x10, +0x01,0x20,0x00,0xB5,0xE8,0xC7,0x07,0x23,0xC0,0xE0,0x10,0x01,0x54,0xC6,0x40,0x20, +0xC0,0x54,0x98,0xC1,0xEC,0xC7,0x06,0xEC,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x06,0xF0, +0xE4,0x00,0x00,0x55,0xEC,0x07,0x06,0xEC,0x98,0x62,0xE4,0x00,0x00,0x45,0xE8,0xE7, +0x07,0x23,0x54,0xE7,0x08,0x20,0xE1,0x84,0xC0,0xE0,0x10,0x01,0x98,0xC2,0xF8,0x07, +0x06,0xE8,0xC0,0xE0,0x10,0x01,0xEC,0xC7,0x06,0xEC,0x98,0x66,0x0D,0x61,0x06,0x0D, +0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0xE7,0xFF,0xBB,0xC5,0xFC,0xE0,0x7F,0xFF, +0xC0,0x80,0x10,0x01,0xEC,0xE4,0x06,0xD7,0xFC,0xC4,0x06,0xD6,0x0C,0xE6,0x07,0x0C, +0xE6,0x03,0x0C,0xE6,0x05,0xC0,0xE0,0x10,0x01,0xFC,0xC7,0x06,0xFC,0xF8,0x07,0x06, +0xFC,0x18,0xA6,0x01,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x06,0xBD,0x98,0xC5,0xC0,0xE0, +0x10,0x01,0xEC,0xC7,0x06,0xEC,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C, +0x21,0x10,0x85,0x29,0x9C,0x30,0x0D,0x21,0x0C,0x0D,0x41,0x08,0x0D,0x61,0x04,0x0D, +0x81,0x00,0xC0,0xE0,0x10,0x01,0xF0,0xC7,0x06,0xE9,0x20,0xC0,0x2C,0xF8,0x07,0x06, +0xE9,0xE4,0x00,0x02,0x2F,0xC0,0xE0,0x10,0x01,0xEC,0xE7,0x06,0xC6,0x9C,0xFD,0xD0, +0xE3,0x08,0x49,0x98,0x61,0xE7,0xFF,0xE5,0x94,0xE7,0xFF,0xE3,0x82,0xC1,0x60,0x10, +0x01,0xC1,0x80,0x10,0x01,0xFC,0x6B,0x04,0xEA,0xFC,0x8C,0x05,0x20,0xE7,0xFF,0x61, +0xA0,0xC1,0x40,0x10,0x01,0xF0,0xEA,0x08,0xD8,0x20,0xE0,0xD8,0x98,0x61,0x98,0x81, +0xFC,0xAB,0x04,0xEA,0xE7,0xFF,0x39,0xA6,0xFC,0xAB,0x04,0xEA,0xFC,0xCC,0x05,0x20, +0x98,0x61,0x98,0x81,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x04,0x90,0xE7,0xFF,0x50,0x86, +0xF0,0xEA,0x08,0xD8,0x20,0xE0,0x2C,0xE7,0xFF,0xCA,0xBC,0xE7,0xFF,0xCC,0x8A,0xC0, +0xE0,0x10,0x01,0xF0,0xE7,0x08,0xD8,0x20,0xE0,0x74,0xC0,0xE0,0x10,0x01,0xF0,0xE7, +0x04,0xCC,0x20,0xE0,0x4A,0xC0,0xE0,0x10,0x01,0xE8,0xC7,0x07,0x23,0x50,0xC6,0x08, +0xE4,0x00,0x00,0x33,0xC0,0xC0,0x10,0x01,0xC0,0xE0,0x10,0x01,0xF8,0x06,0x08,0xD8, +0x98,0xB7,0xE8,0xC7,0x07,0x23,0x44,0xC6,0x2C,0xEC,0xC7,0x07,0x23,0xC0,0xE0,0x10, +0x01,0xF0,0xE7,0x08,0xD8,0x20,0xE0,0x2C,0xC0,0xE0,0x10,0x01,0xF8,0x07,0x05,0x34, +0xC0,0xE0,0x10,0x01,0xEC,0xE7,0x07,0x0E,0x20,0xE8,0x1C,0xE7,0xFF,0xF4,0xFE,0xC0, +0xE0,0x10,0x01,0xEC,0xE7,0x06,0xE6,0x20,0xE4,0x1C,0xE7,0xFF,0xDA,0xC8,0xC0,0xE0, +0x10,0x01,0xEC,0xE7,0x06,0xE6,0x20,0xE4,0x52,0xC0,0xE0,0x10,0x01,0xEC,0xC7,0x07, +0x0E,0x20,0xC8,0x26,0x98,0xC3,0xEC,0xC7,0x07,0x0C,0xC0,0xE0,0x10,0x01,0xE8,0xE7, +0x07,0x22,0x24,0xFC,0x5A,0x0D,0x81,0x02,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21, +0x0E,0x1C,0x21,0x10,0xE7,0xFF,0xB5,0x27,0x0D,0x81,0x02,0x0D,0x61,0x06,0x0D,0x41, +0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0x9C,0x38,0x0D,0x21,0x04,0xE7,0xFF, +0xE4,0xE2,0xC0,0xE0,0x10,0x01,0xC0,0xD4,0x00,0x01,0xC8,0xC6,0x79,0xE9,0x10,0xC6, +0x00,0xF8,0xC7,0x04,0xD4,0xF0,0xC7,0x04,0xD4,0x20,0xC0,0x28,0xF0,0xE7,0x04,0xD4, +0x20,0xE4,0xCE,0xC0,0xE0,0x10,0x01,0xE8,0xE7,0x07,0x23,0x54,0xE7,0x80,0x20,0xE0, +0x32,0x0D,0x21,0x06,0x9C,0x28,0xE7,0xFF,0xFC,0xFD,0x98,0xC5,0xC0,0xE0,0x10,0x01, +0x98,0x60,0xEC,0xC7,0x06,0xEC,0xE7,0xFF,0xCB,0x4A,0x0D,0x21,0x06,0x9C,0x28,0xE7, +0xFF,0xB4,0x51,0x0D,0x21,0x06,0x9C,0x28,0xE7,0xFF,0xB5,0x6D,0x4C,0x63,0x08,0xC0, +0xE0,0x10,0x01,0xFC,0xE7,0x06,0xAE,0x8C,0xE3,0x08,0xC7,0x01,0xD0,0xC7,0x00,0x56, +0x98,0x68,0xE4,0x00,0x00,0x17,0xD0,0xCF,0x00,0x6E,0x50,0x60,0x10,0x98,0x8F,0xE7, +0xFF,0xA1,0x4F,0xC0,0xF4,0x00,0x01,0xC8,0xA7,0x24,0x34,0x0C,0xC5,0x01,0xC8,0xA7, +0x24,0x38,0x0C,0xC5,0x01,0xC8,0xA7,0x24,0x3C,0x0C,0xC5,0x01,0xC8,0xA7,0x24,0x40, +0x0C,0xC5,0x01,0xC0,0xC0,0x10,0x01,0xFC,0xC6,0x06,0xB6,0xC8,0xA7,0x26,0x24,0x8C, +0x66,0x08,0xC3,0x01,0x0C,0xC5,0x01,0xC8,0xE7,0x26,0x28,0x0C,0xC7,0x01,0x85,0x29, +0x9C,0x38,0xC0,0xE0,0x10,0x01,0x0D,0x41,0x00,0x0D,0x21,0x04,0xEC,0x67,0x06,0xCC, +0x89,0x43,0x20,0x60,0x18,0x20,0x64,0x6E,0xC0,0xF4,0x00,0x01,0xFC,0xA0,0x02,0xC0, +0xC8,0xC7,0x24,0x48,0x0C,0xA6,0x01,0xC8,0xE7,0x24,0x54,0x98,0xC9,0x0C,0xC7,0x01, +0x20,0x84,0xB2,0x4C,0xAA,0x08,0xC0,0xD4,0x00,0x01,0xC0,0xE0,0x10,0x01,0xFC,0xE7, +0x06,0xA6,0x8C,0xE5,0xC8,0xA6,0x24,0x58,0x08,0xE7,0x01,0x0C,0xE5,0x01,0xC8,0xA6, +0x24,0x5C,0x0C,0xE5,0x01,0xC8,0xC6,0x24,0x60,0x0C,0xE6,0x01,0x88,0x6A,0xE7,0xFF, +0xFE,0x7C,0x88,0x6A,0xE7,0xFF,0x96,0x30,0x88,0x6A,0x0D,0x21,0x06,0x0D,0x41,0x02, +0x9C,0x28,0xE7,0xFF,0x93,0xA9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0xFF,0xFF,0x7F,0x04,0x1E,0x00,0x00,0x48,0xF1,0x17,0x00,0x17,0x10,0x3F, +0x10,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x19,0x24,0x28,0x2B,0x2C,0x07,0x09,0x0A,0x0C,0x00,0x2D,0x1A,0x1C,0x29,0x2A, +0x04,0x05,0x06,0x08,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E, +0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C, +0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x48,0x00,0x00,0x00,0x11,0x11,0x11,0x00,0x02,0x00,0x8C,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x02,0x00,0x00,0x00,0x31,0x00,0x31,0x00, +0x31,0x00,0x31,0x00,0x00,0x00,0xC0,0x02,0x02,0x21,0x03,0x00,0x09,0x00,0x15,0x00, +0x15,0x00,0x15,0x00,0xAC,0xDC,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x11,0x00,0x00, +0x00,0x00,0x00,0xC0,0x00,0x01,0x04,0x05,0x08,0x09,0x0C,0x0D,0x10,0x11,0x12,0x13, +0x02,0x03,0x06,0x07,0x0A,0x0B,0x0E,0x0F,0x00,0x01,0x04,0x05,0x08,0x09,0x0C,0x0D, +0x10,0x11,0x02,0x03,0x06,0x07,0x0A,0x0B,0x0E,0x0F,0x00,0x00,0x01,0x01,0x00,0x00, +0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x01,0x01, +0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00, +0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00, +0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x08, +0x0A,0x08,0x0C,0x08,0x0A,0x08,0x25,0x24,0xE9,0x00,0xE9,0x00,0x05,0x03,0x03,0x04, +0x9B,0x01,0x1B,0x00,0xD7,0x08,0xC7,0xFF,0xB5,0x00,0x0E,0x00,0x30,0x00,0xD1,0x03, +0x03,0x00,0x26,0x00,0x14,0x00,0x7D,0x00,0xBE,0x03,0x01,0x00,0x05,0x00,0x18,0x00, +0xFA,0x00,0xA6,0x05,0x93,0xFF,0x02,0x00,0x19,0x00,0x36,0x01,0x1E,0x03,0x54,0x00, +0x00,0x00,0x19,0x00,0x24,0x00,0x3B,0x05,0xD2,0xFF,0x67,0x00,0x14,0x00,0x62,0x00, +0x79,0x04,0xE5,0xFF,0x22,0x00,0x1B,0x00,0xB2,0x00,0x19,0x04,0xF7,0xFF,0x02,0x00, +0x20,0x00,0x39,0x00,0xF8,0x05,0xA9,0xFF,0x6F,0x00,0x17,0x00,0x97,0x00,0x67,0x04, +0xEB,0xFF,0x0E,0x00,0x25,0x00,0xFC,0x00,0x3A,0x04,0xEA,0xFF,0x01,0x00,0x28,0x00, +0x50,0x00,0x7C,0x07,0x66,0xFF,0x8E,0x00,0x17,0x00,0xAA,0x00,0x99,0x04,0xE8,0xFF, +0x18,0x00,0x2A,0x00,0xEA,0x00,0x09,0x03,0x3D,0x00,0x03,0x00,0x2F,0x00,0x52,0x01, +0x7B,0x05,0x72,0xFF,0x01,0x00,0x2F,0x00,0xFF,0x00,0xDE,0x04,0x2C,0x00,0xFF,0x00, +0x5B,0x02,0x4D,0x00,0xFF,0x00,0x69,0x03,0x91,0x00,0xFE,0x00,0x4C,0x0B,0xD3,0x00, +0xFD,0x00,0xF3,0x0F,0x05,0x01,0xFC,0x00,0xB4,0x0E,0x44,0x01,0xFC,0x00,0xEE,0x0D, +0x98,0x01,0xFB,0x00,0xC5,0x13,0xE3,0x01,0x00,0x00,0xF2,0x03,0x1C,0x00,0xFF,0x00, +0x04,0x04,0x31,0x00,0xFF,0x00,0x69,0x05,0x5B,0x00,0xFE,0x00,0xAC,0x09,0x89,0x00, +0xFE,0x00,0x3A,0x0D,0xA9,0x00,0xFD,0x00,0xBC,0x0E,0xC5,0x00,0xFD,0x00,0xC7,0x10, +0xEE,0x00,0xFC,0x00,0x50,0x16,0x17,0x01,0xFC,0x00,0x0C,0x19,0x39,0x01,0xFB,0x00, +0x3C,0x17,0x6E,0x01,0xFF,0x00,0x8B,0x09,0x0B,0x00,0xFF,0x00,0x44,0x09,0x1B,0x00, +0xFF,0x00,0xAB,0x07,0x39,0x00,0xFF,0x00,0xE1,0x07,0x5E,0x00,0xFE,0x00,0xA6,0x0B, +0x76,0x00,0xFE,0x00,0xA2,0x0E,0x87,0x00,0xFD,0x00,0xD5,0x10,0x9F,0x00,0xFD,0x00, +0x2D,0x15,0xB9,0x00,0xFC,0x00,0x7A,0x19,0xCB,0x00,0xFC,0x00,0x9D,0x1A,0xDF,0x00, +0xFB,0x00,0x90,0x1B,0x04,0x01,0xFA,0x00,0xD4,0x20,0x29,0x01,0xFF,0x00,0x25,0x0D, +0xF7,0xFF,0xFF,0x00,0xA0,0x0C,0x01,0x00,0xFF,0x00,0xBF,0x0B,0x18,0x00,0xFE,0x00, +0x92,0x0B,0x39,0x00,0xFE,0x00,0x6A,0x0F,0x50,0x00,0xFE,0x00,0x5A,0x12,0x5D,0x00, +0xFD,0x00,0x8F,0x13,0x6C,0x00,0xFD,0x00,0xBC,0x14,0x80,0x00,0xFD,0x00,0xD3,0x18, +0x8D,0x00,0xFC,0x00,0xC0,0x1B,0x98,0x00,0xFC,0x00,0x97,0x1C,0xAD,0x00,0xFB,0x00, +0xEE,0x1F,0xC5,0x00,0xFB,0x00,0x27,0x23,0xD5,0x00,0xFB,0x00,0xD6,0x23,0xE9,0x00, +0xE6,0x00,0xD4,0x00,0xC2,0x00,0xB1,0x00,0x9F,0x00,0x8D,0x00,0x7C,0x00,0x6A,0x00, +0x58,0x00,0x46,0x00,0x35,0x00,0x23,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x5A,0x00,0x14,0x00,0x14,0x00,0x02,0x00,0x02,0x00,0x64,0x00, +0x28,0x00,0x28,0x00,0x01,0x00,0x01,0x00,0x64,0x00,0x01,0x00,0x64,0x00,0x01,0x00, +0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x50,0x00,0x96,0x00,0x40,0x06,0x00,0x00,0x80,0x0C,0x00,0x00,0x01,0x03,0x07,0x00, +0x00,0x00,0x00,0x00,0xE2,0x0B,0x80,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x59,0x01, +0x5B,0x00,0x1B,0x00,0x9B,0x01,0x1D,0x00,0x19,0x00,0xF6,0xFF,0x51,0x00,0x09,0x00, +0x03,0x00,0x1B,0x00,0x1B,0x00,0x41,0x02,0x1B,0x00,0xE2,0x00,0x01,0x00,0x15,0x00, +0x18,0x01,0xC8,0x00,0x78,0x00,0x78,0x00,0x11,0x01,0x15,0x00,0x18,0x01,0xC8,0x00, +0xCC,0x00,0x0A,0x00,0x06,0x00,0x98,0x08,0x02,0x00,0x01,0x00,0xD8,0x0E,0xD8,0x0E, +0x00,0x00,0x00,0x00,0x5A,0x00,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x03,0x00,0x00,0x30,0x0A,0x80,0x00,0xDC,0x08,0x80,0x00,0x00,0x01,0x02,0x03, +0x01,0x02,0x03,0x00,0x49,0x6E,0x20,0x75,0x6D,0x61,0x69,0x6E,0x20,0x0A,0x00,0x00, +0x19,0x00,0x1F,0x00,0x27,0x00,0x31,0x00,0x3D,0x00,0x4B,0x00,0x5B,0x00,0x6F,0x00, +0x89,0x00,0xA9,0x00,0xCF,0x00,0xFF,0x00,0x39,0x01,0x7F,0x01,0xD5,0x01,0xF3,0x01, +0x00,0x3C,0x00,0xA0,0x33,0x00,0xFF,0xFF,0x00,0x3C,0x00,0xA0,0x34,0x00,0xFF,0xFF, +0x00,0x3C,0x00,0xA0,0x35,0x00,0xFF,0x3F,0x00,0x3C,0x00,0xA0,0x36,0x00,0x00,0x00, +0x00,0x3C,0x00,0xA0,0x37,0x00,0x00,0x00,0x00,0x3C,0x00,0xA0,0x38,0x00,0x00,0x00, +0x00,0x3C,0x00,0xA0,0x39,0x00,0x00,0x00,0x00,0x3C,0x00,0xA0,0x3A,0x00,0x00,0x00, +0x00,0x3C,0x00,0xA0,0x3B,0x00,0x00,0x00,0x00,0x3C,0x00,0xA0,0x3C,0x00,0xFF,0xFF, +0x00,0x3C,0x00,0xA0,0x3D,0x00,0xFF,0xFF,0x00,0x3C,0x00,0xA0,0x3E,0x00,0xFF,0x3F, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x36,0x6E,0x01,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x80,0x00,0x02,0x00,0x03,0x00,0x01,0x00,0x0C,0x00, +0x01,0x00,0x0E,0x09,0x19,0x30,0x31,0x32,0x00,0x05,0x42,0x42,0x56,0x00,0x42,0x42, +0x4D,0x44,0x4C,0x00,0x06,0x4C,0x43,0x4D,0x00,0x07,0x01,0xFF,0x01,0x03,0x08,0x00, +0x09,0x00,0x0A,0x00,0x0B,0x00,0x0C,0x00,0x0D,0x00,0x0E,0x00,0x0F,0x00,0x10,0x00, +0x11,0x00,0x12,0x00,0x85,0x3C,0x00,0xD0,0x1F,0x14,0x00,0x00,0x32,0x14,0x00,0x00, +0x50,0x14,0x00,0x00,0x07,0x15,0x00,0x00,0x2C,0x0B,0x00,0x00,0x6E,0x09,0x00,0x00, +0x67,0x03,0x00,0x00,0x0D,0x09,0x00,0x00,0xE9,0x15,0x00,0x00,0x7A,0x15,0x00,0x00, +0xCE,0x1D,0x00,0x00,0x8D,0x15,0x00,0x00,0xD4,0x23,0x00,0x00,0x2D,0x3E,0x00,0xD0, +0x2F,0x3E,0x00,0xD0,0x5B,0x0F,0x00,0x00,0xA5,0x0D,0x00,0x00,0x7C,0x11,0x00,0x00, +0xDF,0x10,0x00,0x00,0x7A,0x0D,0x00,0x00,0x4D,0x53,0x43,0x54,0x50,0x43,0x33,0x00, +0x35,0x06,0x00,0x00,0x4F,0x06,0x00,0x00,0x12,0x07,0x00,0x00,0x83,0x07,0x00,0x00, +0x0B,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x93,0xDA,0xA6,0x58, +0x4D,0x53,0x54,0x41,0x52,0x54,0x50,0x43,0x00,0x00,0x00,0x00,0x4C,0x43,0x0C,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x30,0x31,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_common.c b/drivers/input/touchscreen/msg2138/mstar_drv_common.c new file mode 100644 index 00000000..62c553dd --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_common.c @@ -0,0 +1,152 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_common.c + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_common.h" + +/*=============================================================*/ +// MACRO DEFINITION +/*=============================================================*/ + +/*=============================================================*/ +// CONSTANT VALUE DEFINITION +/*=============================================================*/ + + +/*=============================================================*/ +// VARIABLE DEFINITION +/*=============================================================*/ + +static u32 _gCrc32Table[256]; + +/*=============================================================*/ +// DATA TYPE DEFINITION +/*=============================================================*/ + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +/// CRC +u32 DrvCommonCrcDoReflect(u32 nRef, s8 nCh) +{ + u32 nValue = 0; + u32 i = 0; + + for (i = 1; i < (nCh + 1); i ++) + { + if (nRef & 1) + { + nValue |= 1 << (nCh - i); + } + nRef >>= 1; + } + + return nValue; +} + +u32 DrvCommonCrcGetValue(u32 nText, u32 nPrevCRC) +{ + u32 nCRC = nPrevCRC; + + nCRC = (nCRC >> 8) ^ _gCrc32Table[(nCRC & 0xFF) ^ nText]; + + return nCRC; +} + +void DrvCommonCrcInitTable(void) +{ + u32 nMagicNumber = 0x04c11db7; + u32 i, j; + + for (i = 0; i <= 0xFF; i ++) + { + _gCrc32Table[i] = DrvCommonCrcDoReflect(i, 8) << 24; + for (j = 0; j < 8; j ++) + { + _gCrc32Table[i] = (_gCrc32Table[i] << 1) ^ (_gCrc32Table[i] & (0x80000000L) ? nMagicNumber : 0); + } + _gCrc32Table[i] = DrvCommonCrcDoReflect(_gCrc32Table[i], 32); + } +} + +u8 DrvCommonCalculateCheckSum(u8 *pMsg, u32 nLength) +{ + s32 nCheckSum = 0; + u32 i; + + for (i = 0; i < nLength; i ++) + { + nCheckSum += pMsg[i]; + } + + return (u8)((-nCheckSum) & 0xFF); +} + +u32 DrvCommonConvertCharToHexDigit(char *pCh, u32 nLength) +{ + u32 nRetVal = 0; + u32 i; + + DBG("nLength = %d\n", nLength); + + for (i = 0; i < nLength; i ++) + { + char ch = *pCh++; + u32 n = 0; + + if ((i == 0 && ch == '0') || (i == 1 && ch == 'x')) + { + continue; + } + + if ('0' <= ch && ch <= '9') + { + n = ch-'0'; + } + else if ('a' <= ch && ch <= 'f') + { + n = 10 + ch-'a'; + } + else if ('A' <= ch && ch <= 'F') + { + n = 10 + ch-'A'; + } + + if (i < 6) + { + nRetVal = n + nRetVal*16; + } + } + + return nRetVal; +} + +//------------------------------------------------------------------------------// \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_common.h b/drivers/input/touchscreen/msg2138/mstar_drv_common.h new file mode 100644 index 00000000..d8323c66 --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_common.h @@ -0,0 +1,359 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_common.h + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +#ifndef __MSTAR_DRV_COMMON_H__ +#define __MSTAR_DRV_COMMON_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/*--------------------------------------------------------------------------*/ +/* TOUCH DEVICE DRIVER RELEASE VERSION */ +/*--------------------------------------------------------------------------*/ + +#define DEVICE_DRIVER_RELEASE_VERSION ("2.2.0.0") + + +/*--------------------------------------------------------------------------*/ +/* COMPILE OPTION DEFINITION */ +/*--------------------------------------------------------------------------*/ + +/* + * Note. + * The below compile option is used to enable the specific device driver code handling for distinct smart phone developer platform. + * For running on Spreadtrum platform, please define the compile option CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM. + * For running on Qualcomm platform, please define the compile option CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM. + * For running on MediaTek platform, please define the compile option CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM. + */ +#define CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM +//#define CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM +//#define CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + +/* + * Note. + * The below compile option is used to enable the specific device driver code handling for distinct touch ic. + * Please enable the compile option depends on the touch ic that customer project are using and disable the others. + */ +#define CONFIG_ENABLE_CHIP_MSG21XXA +//#define CONFIG_ENABLE_CHIP_MSG22XX +//#define CONFIG_ENABLE_CHIP_MSG26XXM + +/* + * Note. + * The below compile option is used to enable the specific device driver code handling to make sure main board can supply power to touch ic for some specific BB chip of MTK(EX. MT6582)/SPRD(EX. SC7715)/QCOM(EX. MSM8610). + * By default, this compile option is disabled. + */ +#define CONFIG_ENABLE_REGULATOR_POWER_ON + +/* + * Note. + * The below compile option is used to distinguish different workqueue scheduling mechanism when firmware report finger touch to device driver by IRQ interrupt. + * For MTK platform, there are two type of workqueue scheduling mechanism available. + * Please refer to the related code which is enclosed by compile option CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM in mstar_drv_platform_porting_layer.c for more detail. + * This compile option is used for MTK platform only. + * By default, this compile option is disabled. + */ + +//#define CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM + +/* + * Note. + * The below compile option is used to apply DMA mode for read/write data between device driver and firmware by I2C. + * The DMA mode is used to reslove I2C read/write 8 bytes limitation for specific MTK BB chip(EX. MT6589/MT6572/...) + * This compile option is used for MTK platform only. + * By default, this compile option is disabled. + */ +//#define CONFIG_ENABLE_DMA_IIC + +/* + * Note. + * The below compile option is used to enable the output log mechanism while touch device driver is running. + * If this compile option is not defined, the function for output log will be disabled. + * By default, this compile option is enabled. + */ +//#define CONFIG_ENABLE_TOUCH_DRIVER_DEBUG + +/* + * Note. + * The below compile option is used to enable the specific device driver code handling when touch panel support virtual key(EX. Menu, Home, Back, Search). + * If this compile option is not defined, the function for virtual key handling will be disabled. + * By default, this compile option is enabled. + */ +#define TOUCH_VIRTUAL_KEYS + +/* + * Note. + * Since specific MTK BB chip report virtual key touch by using coordinate instead of key code, the below compile option is used to enable the code handling for reporting key with coordinate. + * This compile option is used for MTK platform only. + * By default, this compile option is disabled. + */ +//#define CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE + +/* + * Note. + * The below compile option is used to enable debug mode data log for firmware. + * By default, this compile option is enabled. + */ +//#define CONFIG_ENABLE_FIRMWARE_DATA_LOG + +/* + * Note. + * The below compile option is used to enable gesture wakeup. + * By default, this compile option is disabled. + */ +//#define CONFIG_ENABLE_GESTURE_WAKEUP + +/* + * Note. + * The below compile option is used to enable phone level MP test handling. + * By the way, phone level MP test is ready for MSG21XXA(support Open Test&Short Test)/MSG26XXM(support Open Test) only, but phone level MP test for MSG22XX is not ready yet. + * By default, this compile option is disabled. + */ +//#define CONFIG_ENABLE_ITO_MP_TEST + + +/* + * Note. + * The below compile option is used to change the permission of the sysfs virtual file system for CTS test. + * If this compile option is enabled, the permission 0644 will be used. + * If this compile option is disabled, the permission 0777 will be used. + * By default, this compile option is disabled. + */ +#define SYSFS_AUTHORITY_CHANGE_FOR_CTS_TEST + +/* + * Note. + * If this compile option is not defined, the SW ID mechanism for updating firmware will be disabled. + * By default, this compile option is disabled. + */ +//#define CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +/* + * Note. + * If this compile option is defined, the update firmware bin file shall be stored in a two dimensional array format. + * Else, the update firmware bin file shall be stored in an one dimensional array format. + * Be careful, MSG22XX only support storing update firmware bin file in an one dimensional array format, it does not support two dimensional array format. + * By default, this compile option is disabled. + */ +//#define CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR CONSTANT DEFINITION */ +/*--------------------------------------------------------------------------*/ + +#define u8 unsigned char +#define u16 unsigned short +#define u32 unsigned int +#define s8 signed char +#define s16 signed short +#define s32 signed int + +//#define SLAVE_I2C_ID_DBBUS (0xB2>>1) //0x59 // for MSG22XX +#define SLAVE_I2C_ID_DBBUS (0xC4>>1) //0x62 // for MSG21XX/MSG21XXA/MSG26XXM +#define SLAVE_I2C_ID_DWI2C (0x4C>>1) //0x26 + +#define CHIP_TYPE_MSG21XX (0x01) // EX. MSG2133 +#define CHIP_TYPE_MSG21XXA (0x02) // EX. MSG2133A/MSG2138A(Besides, use version to distinguish MSG2133A/MSG2138A, you may refer to _DrvFwCtrlUpdateFirmwareCash()) +#define CHIP_TYPE_MSG26XXM (0x03) // EX. MSG2633M +#define CHIP_TYPE_MSG22XX (0x7A) // EX. MSG2238/MSG2256 + +#define PACKET_TYPE_TOOTH_PATTERN (0x20) +#define PACKET_TYPE_GESTURE_WAKEUP (0x50) + +//#define TOUCH_SCREEN_X_MIN (0) +//#define TOUCH_SCREEN_Y_MIN (0) +/* + * Note. + * Please change the below touch screen resolution according to the touch panel that you are using. + */ +//#define TOUCH_SCREEN_X_MAX (480) //LCD_WIDTH +//#define TOUCH_SCREEN_Y_MAX (800) //LCD_HEIGHT +/* + * Note. + * Please do not change the below setting. + */ +#define TPD_WIDTH (2048) +#define TPD_HEIGHT (2048) + + +#define BIT0 (1<<0) // 0x0001 +#define BIT1 (1<<1) // 0x0002 +#define BIT2 (1<<2) // 0x0004 +#define BIT3 (1<<3) // 0x0008 +#define BIT4 (1<<4) // 0x0010 +#define BIT5 (1<<5) // 0x0020 +#define BIT6 (1<<6) // 0x0040 +#define BIT7 (1<<7) // 0x0080 +#define BIT8 (1<<8) // 0x0100 +#define BIT9 (1<<9) // 0x0200 +#define BIT10 (1<<10) // 0x0400 +#define BIT11 (1<<11) // 0x0800 +#define BIT12 (1<<12) // 0x1000 +#define BIT13 (1<<13) // 0x2000 +#define BIT14 (1<<14) // 0x4000 +#define BIT15 (1<<15) // 0x8000 + + +#define MAX_DEBUG_REGISTER_NUM (10) + + +#ifdef SYSFS_AUTHORITY_CHANGE_FOR_CTS_TEST +#define SYSFS_AUTHORITY (0644) +#else +#define SYSFS_AUTHORITY (0777) +#endif + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +#define GESTURE_WAKEUP_MODE_DOUBLE_CLICK_FLAG 0x0001 //0000 0000 0000 0001 +#define GESTURE_WAKEUP_MODE_UP_DIRECT_FLAG 0x0002 //0000 0000 0000 0010 +#define GESTURE_WAKEUP_MODE_DOWN_DIRECT_FLAG 0x0004 //0000 0000 0000 0100 +#define GESTURE_WAKEUP_MODE_LEFT_DIRECT_FLAG 0x0008 //0000 0000 0000 1000 +#define GESTURE_WAKEUP_MODE_RIGHT_DIRECT_FLAG 0x0010 //0000 0000 0001 0000 +#define GESTURE_WAKEUP_MODE_m_CHARACTER_FLAG 0x0020 //0000 0000 0010 0000 +#define GESTURE_WAKEUP_MODE_W_CHARACTER_FLAG 0x0040 //0000 0000 0100 0000 +#define GESTURE_WAKEUP_MODE_C_CHARACTER_FLAG 0x0080 //0000 0000 1000 0000 +#define GESTURE_WAKEUP_MODE_e_CHARACTER_FLAG 0x0100 //0000 0001 0000 0000 +#define GESTURE_WAKEUP_MODE_V_CHARACTER_FLAG 0x0200 //0000 0010 0000 0000 +#define GESTURE_WAKEUP_MODE_O_CHARACTER_FLAG 0x0400 //0000 0100 0000 0000 +#define GESTURE_WAKEUP_MODE_S_CHARACTER_FLAG 0x0800 //0000 1000 0000 0000 +#define GESTURE_WAKEUP_MODE_Z_CHARACTER_FLAG 0x1000 //0001 0000 0000 0000 + +#define GESTURE_WAKEUP_PACKET_LENGTH (6) +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR MACRO DEFINITION */ +/*--------------------------------------------------------------------------*/ + +#ifdef CONFIG_ENABLE_TOUCH_DRIVER_DEBUG +//#define DBG(fmt, arg...) pr_info(fmt, ##arg) +#define DBG(fmt, arg...) printk(fmt, ##arg) +#else +#define DBG(fmt, arg...) +#endif + +/*--------------------------------------------------------------------------*/ +/* SPREADTRUM DEFINITION */ +/*--------------------------------------------------------------------------*/ + +#define MSG_TP_IC_NAME "msg2138_ts" //"msg21xxA" or "msg22xx" or "msg26xxM" +#define MSG_TP_I2C_ADDR 0x26 +#define MAX_FINGER_NUM 5 + +struct msg2138_ts_platform_data{ + int irq_gpio_number; + int reset_gpio_number; + const char *vdd_name; + int virtualkeys[12]; + int TP_MAX_X; + int TP_MAX_Y; +}; +struct point_node_t{ + unsigned char active ; + unsigned char finger_id; + int posx; + int posy; +}; +struct TouchScreenInfo_t{ + unsigned char nTouchKeyMode; + unsigned char nTouchKeyCode; +}; +struct touch_info { + int x1, y1; + int x2, y2; + int x3, y3; + int p1, p2,p3; + int count; +}; + +extern struct i2c_client *g_I2cClient; +extern int MS_TS_MSG_IC_GPIO_RST; +extern int MS_TS_MSG_IC_GPIO_INT; +extern int TOUCH_SCREEN_X_MAX; +extern int TOUCH_SCREEN_Y_MAX; +extern struct point_node_t point_slot[MAX_FINGER_NUM*2]; +/*--------------------------------------------------------------------------*/ +/* DATA TYPE DEFINITION */ +/*--------------------------------------------------------------------------*/ + +typedef enum +{ + EMEM_ALL = 0, + EMEM_MAIN, + EMEM_INFO +} EmemType_e; + +typedef enum +{ + ITO_TEST_MODE_OPEN_TEST = 1, + ITO_TEST_MODE_SHORT_TEST = 2 +} ItoTestMode_e; + +typedef enum +{ + ITO_TEST_OK = 0, + ITO_TEST_FAIL, + ITO_TEST_GET_TP_TYPE_ERROR, + ITO_TEST_UNDEFINED_ERROR, + ITO_TEST_UNDER_TESTING + +} ItoTestResult_e; + +/*--------------------------------------------------------------------------*/ +/* GLOBAL VARIABLE DEFINITION */ +/*--------------------------------------------------------------------------*/ + + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +extern u8 DrvCommonCalculateCheckSum(u8 *pMsg, u32 nLength); +extern u32 DrvCommonConvertCharToHexDigit(char *pCh, u32 nLength); +extern u32 DrvCommonCrcDoReflect(u32 nRef, s8 nCh); +extern u32 DrvCommonCrcGetValue(u32 nText, u32 nPrevCRC); +extern void DrvCommonCrcInitTable(void); + +#endif /* __MSTAR_DRV_COMMON_H__ */ diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_ic_fw_porting_layer.c b/drivers/input/touchscreen/msg2138/mstar_drv_ic_fw_porting_layer.c new file mode 100644 index 00000000..38f4e0db --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_ic_fw_porting_layer.c @@ -0,0 +1,195 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_ic_fw_porting_layer.c + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_ic_fw_porting_layer.h" + + +/*=============================================================*/ +// EXTERN VARIABLE DECLARATION +/*=============================================================*/ + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +extern u16 g_GestureWakeupMode; +extern u8 g_GestureWakeupFlag; +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +u8 DrvIcFwLyrGetChipType(void) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvFwCtrlGetChipType(); +} + +void DrvIcFwLyrGetCustomerFirmwareVersion(u16 *pMajor, u16 *pMinor, u8 **ppVersion) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlGetCustomerFirmwareVersion(pMajor, pMinor, ppVersion); +} + +void DrvIcFwLyrGetPlatformFirmwareVersion(u8 **ppVersion) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlGetPlatformFirmwareVersion(ppVersion); +} + +s32 DrvIcFwLyrUpdateFirmware(u8 szFwData[][1024], EmemType_e eEmemType) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvFwCtrlUpdateFirmware(szFwData, eEmemType); +} + +u32 DrvIcFwLyrIsRegisterFingerTouchInterruptHandler(void) +{ + DBG("*** %s() ***\n", __func__); + + return 1; // Indicate that it is necessary to register interrupt handler with GPIO INT pin when firmware is running on IC +} + +void DrvIcFwLyrHandleFingerTouch(u8 *pPacket, u16 nLength) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlHandleFingerTouch(); +} + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + +void DrvIcFwLyrOpenGestureWakeup(u16 nWakeupMode) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlOpenGestureWakeup(nWakeupMode); +} + +void DrvIcFwLyrCloseGestureWakeup(void) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlCloseGestureWakeup(); +} + +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + +#if defined(CONFIG_ENABLE_CHIP_MSG26XXM) +u16 DrvIcFwLyrGetFirmwareMode(void) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvFwCtrlGetFirmwareMode(); +} +#endif //CONFIG_ENABLE_CHIP_MSG26XXM + +u16 DrvIcFwLyrChangeFirmwareMode(u16 nMode) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvFwCtrlChangeFirmwareMode(nMode); +} + +void DrvIcFwLyrGetFirmwareInfo(FirmwareInfo_t *pInfo) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlGetFirmwareInfo(pInfo); +} + +void DrvIcFwLyrRestoreFirmwareModeToLogDataMode(void) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlRestoreFirmwareModeToLogDataMode(); +} + +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +void DrvIcFwLyrCheckFirmwareUpdateBySwId(void) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlCheckFirmwareUpdateBySwId(); +} +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_ITO_MP_TEST + +void DrvIcFwLyrCreateMpTestWorkQueue(void) +{ +// DBG("*** %s() ***\n", __func__); + + DrvMpTestCreateMpTestWorkQueue(); +} + +void DrvIcFwLyrScheduleMpTestWork(ItoTestMode_e eItoTestMode) +{ +// DBG("*** %s() ***\n", __func__); + + DrvMpTestScheduleMpTestWork(eItoTestMode); +} + +s32 DrvIcFwLyrGetMpTestResult(void) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvMpTestGetTestResult(); +} + +void DrvIcFwLyrGetMpTestFailChannel(ItoTestMode_e eItoTestMode, u8 *pFailChannel, u32 *pFailChannelCount) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvMpTestGetTestFailChannel(eItoTestMode, pFailChannel, pFailChannelCount); +} + +void DrvIcFwLyrGetMpTestDataLog(ItoTestMode_e eItoTestMode, u8 *pDataLog, u32 *pLength) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvMpTestGetTestDataLog(eItoTestMode, pDataLog, pLength); +} +#endif //CONFIG_ENABLE_ITO_MP_TEST \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_ic_fw_porting_layer.h b/drivers/input/touchscreen/msg2138/mstar_drv_ic_fw_porting_layer.h new file mode 100644 index 00000000..7981d4f0 --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_ic_fw_porting_layer.h @@ -0,0 +1,90 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_ic_fw_porting_layer.h + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +#ifndef __MSTAR_DRV_IC_FW_PORTING_LAYER_H__ +#define __MSTAR_DRV_IC_FW_PORTING_LAYER_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include "mstar_drv_common.h" +#if defined(CONFIG_ENABLE_CHIP_MSG26XXM) +#include "mstar_drv_mutual_fw_control.h" +#ifdef CONFIG_ENABLE_ITO_MP_TEST +#include "mstar_drv_mutual_mp_test.h" +#endif //CONFIG_ENABLE_ITO_MP_TEST +#elif defined(CONFIG_ENABLE_CHIP_MSG21XXA) || defined(CONFIG_ENABLE_CHIP_MSG22XX) +#include "mstar_drv_self_fw_control.h" +#ifdef CONFIG_ENABLE_ITO_MP_TEST +#include "mstar_drv_self_mp_test.h" +#endif //CONFIG_ENABLE_ITO_MP_TEST +#endif + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR CONSTANT DEFINITION */ +/*--------------------------------------------------------------------------*/ + + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +extern void DrvIcFwLyrOpenGestureWakeup(u16 nWakeupMode); +extern void DrvIcFwLyrCloseGestureWakeup(void); +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG +extern u16 DrvIcFwLyrChangeFirmwareMode(u16 nMode); +extern void DrvIcFwLyrGetFirmwareInfo(FirmwareInfo_t *pInfo); +#if defined(CONFIG_ENABLE_CHIP_MSG26XXM) +extern u16 DrvIcFwLyrGetFirmwareMode(void); +#endif //CONFIG_ENABLE_CHIP_MSG26XXM +extern void DrvIcFwLyrRestoreFirmwareModeToLogDataMode(void); +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +extern void DrvIcFwLyrCheckFirmwareUpdateBySwId(void); +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +extern u8 DrvIcFwLyrGetChipType(void); +extern void DrvIcFwLyrGetCustomerFirmwareVersion(u16 *pMajor, u16 *pMinor, u8 **ppVersion); +extern void DrvIcFwLyrGetPlatformFirmwareVersion(u8 **ppVersion); +extern void DrvIcFwLyrHandleFingerTouch(u8 *pPacket, u16 nLength); +extern u32 DrvIcFwLyrIsRegisterFingerTouchInterruptHandler(void); +extern s32 DrvIcFwLyrUpdateFirmware(u8 szFwData[][1024], EmemType_e eEmemType); + +#ifdef CONFIG_ENABLE_ITO_MP_TEST +extern void DrvIcFwLyrCreateMpTestWorkQueue(void); +extern void DrvIcFwLyrScheduleMpTestWork(ItoTestMode_e eItoTestMode); +extern void DrvIcFwLyrGetMpTestDataLog(ItoTestMode_e eItoTestMode, u8 *pDataLog, u32 *pLength); +extern void DrvIcFwLyrGetMpTestFailChannel(ItoTestMode_e eItoTestMode, u8 *pFailChannel, u32 *pFailChannelCount); +extern s32 DrvIcFwLyrGetMpTestResult(void); +#endif //CONFIG_ENABLE_ITO_MP_TEST + +#endif /* __MSTAR_DRV_IC_FW_PORTING_LAYER_H__ */ diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_main.c b/drivers/input/touchscreen/msg2138/mstar_drv_main.c new file mode 100644 index 00000000..94f6be1e --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_main.c @@ -0,0 +1,993 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_main.c + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_main.h" +#include "mstar_drv_utility_adaption.h" +#include "mstar_drv_platform_porting_layer.h" +#include "mstar_drv_ic_fw_porting_layer.h" + +/*=============================================================*/ +// CONSTANT VALUE DEFINITION +/*=============================================================*/ + + +/*=============================================================*/ +// EXTERN VARIABLE DECLARATION +/*=============================================================*/ + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG +extern FirmwareInfo_t g_FirmwareInfo; +extern u8 *g_LogModePacket; +extern u16 g_FirmwareMode; +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +extern u16 g_GestureWakeupMode; +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +extern u8 g_ChipType; + +/*=============================================================*/ +// LOCAL VARIABLE DEFINITION +/*=============================================================*/ + +static u16 _gDebugReg[MAX_DEBUG_REGISTER_NUM] = {0}; +static u32 _gDebugRegCount = 0; + +static u8 *_gPlatformFwVersion = NULL; // internal use firmware version for MStar + +#ifdef CONFIG_ENABLE_ITO_MP_TEST +static ItoTestMode_e _gItoTestMode = 0; +#endif //CONFIG_ENABLE_ITO_MP_TEST + +static u32 _gIsUpdateComplete = 0; + +static u8 *_gFwVersion = NULL; // customer firmware version + +static struct class *_gFirmwareClass = NULL; +static struct device *_gFirmwareCmdDev = NULL; + +/*=============================================================*/ +// GLOBAL VARIABLE DEFINITION +/*=============================================================*/ + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG +struct kset *g_TouchKSet = NULL; +struct kobject *g_TouchKObj = NULL; +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + +u8 g_FwData[94][1024]; +u32 g_FwDataCount = 0; + +/*=============================================================*/ +// LOCAL FUNCTION DEFINITION +/*=============================================================*/ + + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +ssize_t DrvMainFirmwareChipTypeShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + DBG("*** %s() ***\n", __func__); + + return sprintf(pBuf, "%d", g_ChipType); +} + +ssize_t DrvMainFirmwareChipTypeStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + DBG("*** %s() ***\n", __func__); + +// g_ChipType = DrvIcFwLyrGetChipType(); + + return nSize; +} + +static DEVICE_ATTR(chip_type, SYSFS_AUTHORITY, DrvMainFirmwareChipTypeShow, DrvMainFirmwareChipTypeStore); + +ssize_t DrvMainFirmwareDriverVersionShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + DBG("*** %s() ***\n", __func__); + + return sprintf(pBuf, "%s", DEVICE_DRIVER_RELEASE_VERSION); +} + +ssize_t DrvMainFirmwareDriverVersionStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + DBG("*** %s() ***\n", __func__); + + return nSize; +} + +static DEVICE_ATTR(driver_version, SYSFS_AUTHORITY, DrvMainFirmwareDriverVersionShow, DrvMainFirmwareDriverVersionStore); + +/*--------------------------------------------------------------------------*/ + +ssize_t DrvMainFirmwareUpdateShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + DBG("*** %s() _gFwVersion = %s ***\n", __func__, _gFwVersion); + + return sprintf(pBuf, "%s\n", _gFwVersion); +} + +ssize_t DrvMainFirmwareUpdateStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + DrvPlatformLyrDisableFingerTouchReport(); + + DBG("*** %s() g_FwDataCount = %d ***\n", __func__, g_FwDataCount); + + if (0 != DrvIcFwLyrUpdateFirmware(g_FwData, EMEM_ALL)) + { + _gIsUpdateComplete = 0; + DBG("Update FAILED\n"); + } + else + { + _gIsUpdateComplete = 1; + DBG("Update SUCCESS\n"); + } + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + DrvIcFwLyrRestoreFirmwareModeToLogDataMode(); +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + + DrvPlatformLyrEnableFingerTouchReport(); + + return nSize; +} + +static DEVICE_ATTR(update, SYSFS_AUTHORITY, DrvMainFirmwareUpdateShow, DrvMainFirmwareUpdateStore); + +ssize_t DrvMainFirmwareVersionShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + DBG("*** %s() _gFwVersion = %s ***\n", __func__, _gFwVersion); + + return sprintf(pBuf, "%s\n", _gFwVersion); +} + +ssize_t DrvMainFirmwareVersionStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + u16 nMajor = 0, nMinor = 0; + + DrvIcFwLyrGetCustomerFirmwareVersion(&nMajor, &nMinor, &_gFwVersion); + + DBG("*** %s() _gFwVersion = %s ***\n", __func__, _gFwVersion); + + return nSize; +} + +static DEVICE_ATTR(version, SYSFS_AUTHORITY, DrvMainFirmwareVersionShow, DrvMainFirmwareVersionStore); + +ssize_t DrvMainFirmwareDataShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + DBG("*** %s() g_FwDataCount = %d ***\n", __func__, g_FwDataCount); + + return g_FwDataCount; +} + +ssize_t DrvMainFirmwareDataStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + u32 nCount = nSize / 1024; + u32 i; + + DBG("*** %s() ***\n", __func__); + + if (nCount > 0) // nSize >= 1024 + { + for (i = 0; i < nCount; i ++) + { + memcpy(g_FwData[g_FwDataCount], pBuf+(i*1024), 1024); + + g_FwDataCount ++; + } + } + else // nSize < 1024 + { + if (nSize > 0) + { + memcpy(g_FwData[g_FwDataCount], pBuf, nSize); + + g_FwDataCount ++; + } + } + + DBG("*** g_FwDataCount = %d ***\n", g_FwDataCount); + + if (pBuf != NULL) + { + DBG("*** buf[0] = %c ***\n", pBuf[0]); + } + + return nSize; +} + +static DEVICE_ATTR(data, SYSFS_AUTHORITY, DrvMainFirmwareDataShow, DrvMainFirmwareDataStore); + +/*--------------------------------------------------------------------------*/ + +#ifdef CONFIG_ENABLE_ITO_MP_TEST +ssize_t DrvMainFirmwareTestShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + DBG("*** %s() ***\n", __func__); + DBG("*** ctp mp test status = %d ***\n", DrvIcFwLyrGetMpTestResult()); + + return sprintf(pBuf, "%d", DrvIcFwLyrGetMpTestResult()); +} + +ssize_t DrvMainFirmwareTestStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + u32 nMode = 0; + + DBG("*** %s() ***\n", __func__); + + if (pBuf != NULL) + { + sscanf(pBuf, "%x", &nMode); + + DBG("Mp Test Mode = 0x%x\n", nMode); + + if (nMode == ITO_TEST_MODE_OPEN_TEST) //open test + { + _gItoTestMode = ITO_TEST_MODE_OPEN_TEST; + DrvIcFwLyrScheduleMpTestWork(ITO_TEST_MODE_OPEN_TEST); + } + else if (nMode == ITO_TEST_MODE_SHORT_TEST) //short test + { + _gItoTestMode = ITO_TEST_MODE_SHORT_TEST; + DrvIcFwLyrScheduleMpTestWork(ITO_TEST_MODE_SHORT_TEST); + } + else + { + DBG("*** Undefined MP Test Mode ***\n"); + } + } + + return nSize; +} + +static DEVICE_ATTR(test, SYSFS_AUTHORITY, DrvMainFirmwareTestShow, DrvMainFirmwareTestStore); + +ssize_t DrvMainFirmwareTestLogShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + DrvIcFwLyrGetMpTestDataLog(_gItoTestMode, pBuf, &nLength); + + return nLength; +} + +ssize_t DrvMainFirmwareTestLogStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + DBG("*** %s() ***\n", __func__); + + return nSize; +} + +static DEVICE_ATTR(test_log, SYSFS_AUTHORITY, DrvMainFirmwareTestLogShow, DrvMainFirmwareTestLogStore); + +ssize_t DrvMainFirmwareTestFailChannelShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + u32 nCount = 0; + + DBG("*** %s() ***\n", __func__); + + DrvIcFwLyrGetMpTestFailChannel(_gItoTestMode, pBuf, &nCount); + + return nCount; +} + +ssize_t DrvMainFirmwareTestFailChannelStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + DBG("*** %s() ***\n", __func__); + + return nSize; +} + +static DEVICE_ATTR(test_fail_channel, SYSFS_AUTHORITY, DrvMainFirmwareTestFailChannelShow, DrvMainFirmwareTestFailChannelStore); +#endif //CONFIG_ENABLE_ITO_MP_TEST + +/*--------------------------------------------------------------------------*/ + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + +ssize_t DrvMainFirmwareGestureWakeupModeShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + DBG("*** %s() ***\n", __func__); + DBG("g_GestureWakeupMode = 0x%x\n", g_GestureWakeupMode); + + return sprintf(pBuf, "%x", g_GestureWakeupMode); +} + +ssize_t DrvMainFirmwareGestureWakeupModeStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + u32 nLength, nWakeupMode; + + DBG("*** %s() ***\n", __func__); + + if (pBuf != NULL) + { + sscanf(pBuf, "%x", &nWakeupMode); + DBG("nWakeupMode = 0x%x\n", nWakeupMode); + + nLength = nSize; + DBG("nLength = %d\n", nLength); + + if ((nWakeupMode & GESTURE_WAKEUP_MODE_DOUBLE_CLICK_FLAG) == GESTURE_WAKEUP_MODE_DOUBLE_CLICK_FLAG) + { + g_GestureWakeupMode = g_GestureWakeupMode | GESTURE_WAKEUP_MODE_DOUBLE_CLICK_FLAG; + } + else + { + g_GestureWakeupMode = g_GestureWakeupMode & (~GESTURE_WAKEUP_MODE_DOUBLE_CLICK_FLAG); + } + + if ((nWakeupMode & GESTURE_WAKEUP_MODE_UP_DIRECT_FLAG) == GESTURE_WAKEUP_MODE_UP_DIRECT_FLAG) + { + g_GestureWakeupMode = g_GestureWakeupMode | GESTURE_WAKEUP_MODE_UP_DIRECT_FLAG; + } + else + { + g_GestureWakeupMode = g_GestureWakeupMode & (~GESTURE_WAKEUP_MODE_UP_DIRECT_FLAG); + } + + if ((nWakeupMode & GESTURE_WAKEUP_MODE_DOWN_DIRECT_FLAG) == GESTURE_WAKEUP_MODE_DOWN_DIRECT_FLAG) + { + g_GestureWakeupMode = g_GestureWakeupMode | GESTURE_WAKEUP_MODE_DOWN_DIRECT_FLAG; + } + else + { + g_GestureWakeupMode = g_GestureWakeupMode & (~GESTURE_WAKEUP_MODE_DOWN_DIRECT_FLAG); + } + + if ((nWakeupMode & GESTURE_WAKEUP_MODE_LEFT_DIRECT_FLAG) == GESTURE_WAKEUP_MODE_LEFT_DIRECT_FLAG) + { + g_GestureWakeupMode = g_GestureWakeupMode | GESTURE_WAKEUP_MODE_LEFT_DIRECT_FLAG; + } + else + { + g_GestureWakeupMode = g_GestureWakeupMode & (~GESTURE_WAKEUP_MODE_LEFT_DIRECT_FLAG); + } + + if ((nWakeupMode & GESTURE_WAKEUP_MODE_RIGHT_DIRECT_FLAG) == GESTURE_WAKEUP_MODE_RIGHT_DIRECT_FLAG) + { + g_GestureWakeupMode = g_GestureWakeupMode | GESTURE_WAKEUP_MODE_RIGHT_DIRECT_FLAG; + } + else + { + g_GestureWakeupMode = g_GestureWakeupMode & (~GESTURE_WAKEUP_MODE_RIGHT_DIRECT_FLAG); + } + + if ((nWakeupMode & GESTURE_WAKEUP_MODE_m_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_m_CHARACTER_FLAG) + { + g_GestureWakeupMode = g_GestureWakeupMode | GESTURE_WAKEUP_MODE_m_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode = g_GestureWakeupMode & (~GESTURE_WAKEUP_MODE_m_CHARACTER_FLAG); + } + + if ((nWakeupMode & GESTURE_WAKEUP_MODE_W_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_W_CHARACTER_FLAG) + { + g_GestureWakeupMode = g_GestureWakeupMode | GESTURE_WAKEUP_MODE_W_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode = g_GestureWakeupMode & (~GESTURE_WAKEUP_MODE_W_CHARACTER_FLAG); + } + + if ((nWakeupMode & GESTURE_WAKEUP_MODE_C_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_C_CHARACTER_FLAG) + { + g_GestureWakeupMode = g_GestureWakeupMode | GESTURE_WAKEUP_MODE_C_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode = g_GestureWakeupMode & (~GESTURE_WAKEUP_MODE_C_CHARACTER_FLAG); + } + + if ((nWakeupMode & GESTURE_WAKEUP_MODE_e_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_e_CHARACTER_FLAG) + { + g_GestureWakeupMode = g_GestureWakeupMode | GESTURE_WAKEUP_MODE_e_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode = g_GestureWakeupMode & (~GESTURE_WAKEUP_MODE_e_CHARACTER_FLAG); + } + + if ((nWakeupMode & GESTURE_WAKEUP_MODE_V_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_V_CHARACTER_FLAG) + { + g_GestureWakeupMode = g_GestureWakeupMode | GESTURE_WAKEUP_MODE_V_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode = g_GestureWakeupMode & (~GESTURE_WAKEUP_MODE_V_CHARACTER_FLAG); + } + + if ((nWakeupMode & GESTURE_WAKEUP_MODE_O_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_O_CHARACTER_FLAG) + { + g_GestureWakeupMode = g_GestureWakeupMode | GESTURE_WAKEUP_MODE_O_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode = g_GestureWakeupMode & (~GESTURE_WAKEUP_MODE_O_CHARACTER_FLAG); + } + + if ((nWakeupMode & GESTURE_WAKEUP_MODE_S_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_S_CHARACTER_FLAG) + { + g_GestureWakeupMode = g_GestureWakeupMode | GESTURE_WAKEUP_MODE_S_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode = g_GestureWakeupMode & (~GESTURE_WAKEUP_MODE_S_CHARACTER_FLAG); + } + + if ((nWakeupMode & GESTURE_WAKEUP_MODE_Z_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_Z_CHARACTER_FLAG) + { + g_GestureWakeupMode = g_GestureWakeupMode | GESTURE_WAKEUP_MODE_Z_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode = g_GestureWakeupMode & (~GESTURE_WAKEUP_MODE_Z_CHARACTER_FLAG); + } + + DBG("g_GestureWakeupMode = 0x%x\n", g_GestureWakeupMode); + } + + return nSize; +} + +static DEVICE_ATTR(gesture_wakeup_mode, SYSFS_AUTHORITY, DrvMainFirmwareGestureWakeupModeShow, DrvMainFirmwareGestureWakeupModeStore); + +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +/*--------------------------------------------------------------------------*/ + +ssize_t DrvMainFirmwareDebugShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + u32 i; + u8 nBank, nAddr; + u16 szRegData[MAX_DEBUG_REGISTER_NUM] = {0}; + u8 szOut[MAX_DEBUG_REGISTER_NUM*25] = {0}, szValue[10] = {0}; + + DBG("*** %s() ***\n", __func__); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(300); + + for (i = 0; i < _gDebugRegCount; i ++) + { + szRegData[i] = RegGet16BitValue(_gDebugReg[i]); + } + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + for (i = 0; i < _gDebugRegCount; i ++) + { + nBank = (_gDebugReg[i] >> 8) & 0xFF; + nAddr = _gDebugReg[i] & 0xFF; + + DBG("reg(0x%X,0x%X)=0x%04X\n", nBank, nAddr, szRegData[i]); + + strcat(szOut, "reg("); + sprintf(szValue, "0x%X", nBank); + strcat(szOut, szValue); + strcat(szOut, ","); + sprintf(szValue, "0x%X", nAddr); + strcat(szOut, szValue); + strcat(szOut, ")="); + sprintf(szValue, "0x%04X", szRegData[i]); + strcat(szOut, szValue); + strcat(szOut, "\n"); + } + + return sprintf(pBuf, "%s\n", szOut); +} + +ssize_t DrvMainFirmwareDebugStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + u32 i; + char *pCh; + + DBG("*** %s() ***\n", __func__); + + if (pBuf != NULL) + { + DBG("*** %s() pBuf[0] = %c ***\n", __func__, pBuf[0]); + DBG("*** %s() pBuf[1] = %c ***\n", __func__, pBuf[1]); + DBG("*** %s() pBuf[2] = %c ***\n", __func__, pBuf[2]); + DBG("*** %s() pBuf[3] = %c ***\n", __func__, pBuf[3]); + DBG("*** %s() pBuf[4] = %c ***\n", __func__, pBuf[4]); + DBG("*** %s() pBuf[5] = %c ***\n", __func__, pBuf[5]); + + DBG("nSize = %d\n", nSize); + + i = 0; + while ((pCh = strsep((char **)&pBuf, " ,")) && (i < MAX_DEBUG_REGISTER_NUM)) + { + DBG("pCh = %s\n", pCh); + + _gDebugReg[i] = DrvCommonConvertCharToHexDigit(pCh, strlen(pCh)); + + DBG("_gDebugReg[%d] = 0x%04X\n", i, _gDebugReg[i]); + i ++; + } + _gDebugRegCount = i; + + DBG("_gDebugRegCount = %d\n", _gDebugRegCount); + } + + return nSize; +} + +static DEVICE_ATTR(debug, SYSFS_AUTHORITY, DrvMainFirmwareDebugShow, DrvMainFirmwareDebugStore); + +/*--------------------------------------------------------------------------*/ + +ssize_t DrvMainFirmwarePlatformVersionShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + DBG("*** %s() _gPlatformFwVersion = %s ***\n", __func__, _gPlatformFwVersion); + + return sprintf(pBuf, "%s\n", _gPlatformFwVersion); +} + +ssize_t DrvMainFirmwarePlatformVersionStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + DrvIcFwLyrGetPlatformFirmwareVersion(&_gPlatformFwVersion); + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + DrvIcFwLyrRestoreFirmwareModeToLogDataMode(); +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + + DBG("*** %s() _gPlatformFwVersion = %s ***\n", __func__, _gPlatformFwVersion); + + return nSize; +} + +static DEVICE_ATTR(platform_version, SYSFS_AUTHORITY, DrvMainFirmwarePlatformVersionShow, DrvMainFirmwarePlatformVersionStore); + +/*--------------------------------------------------------------------------*/ + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG +ssize_t DrvMainFirmwareModeShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ +#if defined(CONFIG_ENABLE_CHIP_MSG26XXM) + g_FirmwareMode = DrvIcFwLyrGetFirmwareMode(); + + DBG("%s() firmware mode = 0x%x\n", __func__, g_FirmwareMode); + + return sprintf(pBuf, "%x", g_FirmwareMode); +#elif defined(CONFIG_ENABLE_CHIP_MSG21XXA) || defined(CONFIG_ENABLE_CHIP_MSG22XX) + DrvIcFwLyrGetFirmwareInfo(&g_FirmwareInfo); + g_FirmwareMode = g_FirmwareInfo.nFirmwareMode; + + DBG("%s() firmware mode = 0x%x, can change firmware mode = %d\n", __func__, g_FirmwareInfo.nFirmwareMode, g_FirmwareInfo.nIsCanChangeFirmwareMode); + + return sprintf(pBuf, "%x,%d", g_FirmwareInfo.nFirmwareMode, g_FirmwareInfo.nIsCanChangeFirmwareMode); +#endif +} + +ssize_t DrvMainFirmwareModeStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + DBG("*** %s() ***\n", __func__); + + u32 nMode; + + if (pBuf != NULL) + { + sscanf(pBuf, "%x", &nMode); + DBG("firmware mode = 0x%x\n", nMode); + + if (nMode == FIRMWARE_MODE_DEMO_MODE) //demo mode + { + g_FirmwareMode = DrvIcFwLyrChangeFirmwareMode(FIRMWARE_MODE_DEMO_MODE); + } + else if (nMode == FIRMWARE_MODE_DEBUG_MODE) //debug mode + { + g_FirmwareMode = DrvIcFwLyrChangeFirmwareMode(FIRMWARE_MODE_DEBUG_MODE); + } +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) || defined(CONFIG_ENABLE_CHIP_MSG22XX) + else if (nMode == FIRMWARE_MODE_RAW_DATA_MODE) //raw data mode + { + g_FirmwareMode = DrvIcFwLyrChangeFirmwareMode(FIRMWARE_MODE_RAW_DATA_MODE); + } +#endif + else + { + DBG("*** Undefined Firmware Mode ***\n"); + } + } + + DBG("*** g_FirmwareMode = 0x%x ***\n", g_FirmwareMode); + + return nSize; +} + +static DEVICE_ATTR(mode, SYSFS_AUTHORITY, DrvMainFirmwareModeShow, DrvMainFirmwareModeStore); +/* +ssize_t DrvMainFirmwarePacketShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + u32 i = 0; + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + if (g_LogModePacket != NULL) + { + DBG("g_FirmwareMode=%x, g_LogModePacket[0]=%x, g_LogModePacket[1]=%x\n", g_FirmwareMode, g_LogModePacket[0], g_LogModePacket[1]); + DBG("g_LogModePacket[2]=%x, g_LogModePacket[3]=%x\n", g_LogModePacket[2], g_LogModePacket[3]); + DBG("g_LogModePacket[4]=%x, g_LogModePacket[5]=%x\n", g_LogModePacket[4], g_LogModePacket[5]); + +#if defined(CONFIG_ENABLE_CHIP_MSG26XXM) + if ((g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE) && (g_LogModePacket[0] == 0xA5 || g_LogModePacket[0] == 0xAB || g_LogModePacket[0] == 0xA7)) +#elif defined(CONFIG_ENABLE_CHIP_MSG21XXA) || defined(CONFIG_ENABLE_CHIP_MSG22XX) + if ((g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE || g_FirmwareMode == FIRMWARE_MODE_RAW_DATA_MODE) && (g_LogModePacket[0] == 0x62)) +#endif + { + for (i = 0; i < g_FirmwareInfo.nLogModePacketLength; i ++) + { + pBuf[i] = g_LogModePacket[i]; + } + + nLength = g_FirmwareInfo.nLogModePacketLength; + DBG("nLength = %d\n", nLength); + } + else + { + DBG("CURRENT MODE IS NOT DEBUG MODE/WRONG DEBUG MODE HEADER\n"); +// nLength = 0; + } + } + else + { + DBG("g_LogModePacket is NULL\n"); +// nLength = 0; + } + + return nLength; +} + +ssize_t DrvMainFirmwarePacketStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + DBG("*** %s() ***\n", __func__); + + return nSize; +} + +static DEVICE_ATTR(packet, SYSFS_AUTHORITY, DrvMainFirmwarePacketShow, DrvMainFirmwarePacketStore); +*/ +ssize_t DrvMainFirmwareSensorShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + DBG("*** %s() ***\n", __func__); + +#if defined(CONFIG_ENABLE_CHIP_MSG26XXM) + if (g_FirmwareInfo.nLogModePacketHeader == 0xA5 || g_FirmwareInfo.nLogModePacketHeader == 0xAB) + { + return sprintf(pBuf, "%d,%d", g_FirmwareInfo.nMx, g_FirmwareInfo.nMy); + } + else if (g_FirmwareInfo.nLogModePacketHeader == 0xA7) + { + return sprintf(pBuf, "%d,%d,%d,%d", g_FirmwareInfo.nMx, g_FirmwareInfo.nMy, g_FirmwareInfo.nSs, g_FirmwareInfo.nSd); + } + else + { + DBG("Undefined debug mode packet format : 0x%x\n", g_FirmwareInfo.nLogModePacketHeader); + return 0; + } +#elif defined(CONFIG_ENABLE_CHIP_MSG21XXA) || defined(CONFIG_ENABLE_CHIP_MSG22XX) + return sprintf(pBuf, "%d", g_FirmwareInfo.nLogModePacketLength); +#endif +} + +ssize_t DrvMainFirmwareSensorStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + DBG("*** %s() ***\n", __func__); +/* + DrvIcFwLyrGetFirmwareInfo(&g_FirmwareInfo); +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) || defined(CONFIG_ENABLE_CHIP_MSG22XX) + g_FirmwareMode = g_FirmwareInfo.nFirmwareMode; +#endif +*/ + return nSize; +} + +static DEVICE_ATTR(sensor, SYSFS_AUTHORITY, DrvMainFirmwareSensorShow, DrvMainFirmwareSensorStore); + +ssize_t DrvMainFirmwareHeaderShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + DBG("*** %s() ***\n", __func__); + + return sprintf(pBuf, "%d", g_FirmwareInfo.nLogModePacketHeader); +} + +ssize_t DrvMainFirmwareHeaderStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + DBG("*** %s() ***\n", __func__); +/* + DrvIcFwLyrGetFirmwareInfo(&g_FirmwareInfo); +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) || defined(CONFIG_ENABLE_CHIP_MSG22XX) + g_FirmwareMode = g_FirmwareInfo.nFirmwareMode; +#endif +*/ + return nSize; +} + +static DEVICE_ATTR(header, SYSFS_AUTHORITY, DrvMainFirmwareHeaderShow, DrvMainFirmwareHeaderStore); + +//------------------------------------------------------------------------------// + +ssize_t DrvMainKObjectPacketShow(struct kobject *pKObj, struct kobj_attribute *pAttr, char *pBuf) +{ + u32 i = 0; + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + if (strcmp(pAttr->attr.name, "packet") == 0) + { + if (g_LogModePacket != NULL) + { + DBG("g_FirmwareMode=%x, g_LogModePacket[0]=%x, g_LogModePacket[1]=%x\n", g_FirmwareMode, g_LogModePacket[0], g_LogModePacket[1]); + DBG("g_LogModePacket[2]=%x, g_LogModePacket[3]=%x\n", g_LogModePacket[2], g_LogModePacket[3]); + DBG("g_LogModePacket[4]=%x, g_LogModePacket[5]=%x\n", g_LogModePacket[4], g_LogModePacket[5]); + +#if defined(CONFIG_ENABLE_CHIP_MSG26XXM) + if ((g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE) && (g_LogModePacket[0] == 0xA5 || g_LogModePacket[0] == 0xAB || g_LogModePacket[0] == 0xA7)) +#elif defined(CONFIG_ENABLE_CHIP_MSG21XXA) || defined(CONFIG_ENABLE_CHIP_MSG22XX) + if ((g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE || g_FirmwareMode == FIRMWARE_MODE_RAW_DATA_MODE) && (g_LogModePacket[0] == 0x62)) +#endif + { + for (i = 0; i < g_FirmwareInfo.nLogModePacketLength; i ++) + { + pBuf[i] = g_LogModePacket[i]; + } + + nLength = g_FirmwareInfo.nLogModePacketLength; + DBG("nLength = %d\n", nLength); + } + else + { + DBG("CURRENT MODE IS NOT DEBUG MODE/WRONG DEBUG MODE HEADER\n"); +// nLength = 0; + } + } + else + { + DBG("g_LogModePacket is NULL\n"); +// nLength = 0; + } + } + else + { + DBG("pAttr->attr.name = %s \n", pAttr->attr.name); +// nLength = 0; + } + + return nLength; +} + +ssize_t DrvMainKObjectPacketStore(struct kobject *pKObj, struct kobj_attribute *pAttr, const char *pBuf, size_t nCount) +{ + DBG("*** %s() ***\n", __func__); +/* + if (strcmp(pAttr->attr.name, "packet") == 0) + { + + } +*/ + return nCount; +} + +static struct kobj_attribute packet_attr = __ATTR(packet, 0666, DrvMainKObjectPacketShow, DrvMainKObjectPacketStore); + +/* Create a group of attributes so that we can create and destroy them all at once. */ +static struct attribute *attrs[] = { + &packet_attr.attr, + NULL, /* need to NULL terminate the list of attributes */ +}; + +/* + * An unnamed attribute group will put all of the attributes directly in + * the kobject directory. If we specify a name, a subdirectory will be + * created for the attributes with the directory being the name of the + * attribute group. + */ +struct attribute_group attr_group = { + .attrs = attrs, +}; +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + +//------------------------------------------------------------------------------// + +s32 DrvMainTouchDeviceInitialize(void) +{ + s32 nRetVal = 0; +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + u8 *pDevicePath = NULL; +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID + /* set sysfs for firmware */ + _gFirmwareClass = class_create(THIS_MODULE, "ms-touchscreen-msg20xx"); + if (IS_ERR(_gFirmwareClass)) + DBG("Failed to create class(firmware)!\n"); + + _gFirmwareCmdDev = device_create(_gFirmwareClass, NULL, 0, NULL, "device"); + if (IS_ERR(_gFirmwareCmdDev)) + DBG("Failed to create device(_gFirmwareCmdDev)!\n"); + + // version + if (device_create_file(_gFirmwareCmdDev, &dev_attr_version) < 0) + DBG("Failed to create device file(%s)!\n", dev_attr_version.attr.name); + // update + if (device_create_file(_gFirmwareCmdDev, &dev_attr_update) < 0) + DBG("Failed to create device file(%s)!\n", dev_attr_update.attr.name); + // data + if (device_create_file(_gFirmwareCmdDev, &dev_attr_data) < 0) + DBG("Failed to create device file(%s)!\n", dev_attr_data.attr.name); +#ifdef CONFIG_ENABLE_ITO_MP_TEST + // test + if (device_create_file(_gFirmwareCmdDev, &dev_attr_test) < 0) + pr_err("Failed to create device file(%s)!\n", dev_attr_test.attr.name); + // test_log + if (device_create_file(_gFirmwareCmdDev, &dev_attr_test_log) < 0) + pr_err("Failed to create device file(%s)!\n", dev_attr_test_log.attr.name); + // test_fail_channel + if (device_create_file(_gFirmwareCmdDev, &dev_attr_test_fail_channel) < 0) + pr_err("Failed to create device file(%s)!\n", dev_attr_test_fail_channel.attr.name); +#endif //CONFIG_ENABLE_ITO_MP_TEST + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + // mode + if (device_create_file(_gFirmwareCmdDev, &dev_attr_mode) < 0) + DBG("Failed to create device file(%s)!\n", dev_attr_mode.attr.name); + // packet +// if (device_create_file(_gFirmwareCmdDev, &dev_attr_packet) < 0) +// DBG("Failed to create device file(%s)!\n", dev_attr_packet.attr.name); + // sensor + if (device_create_file(_gFirmwareCmdDev, &dev_attr_sensor) < 0) + DBG("Failed to create device file(%s)!\n", dev_attr_sensor.attr.name); + // header + if (device_create_file(_gFirmwareCmdDev, &dev_attr_header) < 0) + DBG("Failed to create device file(%s)!\n", dev_attr_header.attr.name); +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + + // debug + if (device_create_file(_gFirmwareCmdDev, &dev_attr_debug) < 0) + DBG("Failed to create device file(%s)!\n", dev_attr_debug.attr.name); + // platform version + if (device_create_file(_gFirmwareCmdDev, &dev_attr_platform_version) < 0) + DBG("Failed to create device file(%s)!\n", dev_attr_platform_version.attr.name); +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + // gesture wakeup mode + if (device_create_file(_gFirmwareCmdDev, &dev_attr_gesture_wakeup_mode) < 0) + DBG("Failed to create device file(%s)!\n", dev_attr_gesture_wakeup_mode.attr.name); +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + // chip type + if (device_create_file(_gFirmwareCmdDev, &dev_attr_chip_type) < 0) + DBG("Failed to create device file(%s)!\n", dev_attr_chip_type.attr.name); + // driver version + if (device_create_file(_gFirmwareCmdDev, &dev_attr_driver_version) < 0) + DBG("Failed to create device file(%s)!\n", dev_attr_driver_version.attr.name); + + dev_set_drvdata(_gFirmwareCmdDev, NULL); +#endif /*CONFIG_UPDATE_FIRMWARE_BY_SW_ID*/ + +#ifdef CONFIG_ENABLE_ITO_MP_TEST + DrvIcFwLyrCreateMpTestWorkQueue(); +#endif //CONFIG_ENABLE_ITO_MP_TEST + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + /* create a kset with the name of "kset_example" which is located under /sys/kernel/ */ + g_TouchKSet = kset_create_and_add("kset_example", NULL, kernel_kobj); + if (!g_TouchKSet) + { + DBG("*** kset_create_and_add() failed, nRetVal = %d ***\n", nRetVal); + + nRetVal = -ENOMEM; + } + + g_TouchKObj = kobject_create(); + if (!g_TouchKObj) + { + DBG("*** kobject_create() failed, nRetVal = %d ***\n", nRetVal); + + nRetVal = -ENOMEM; + kset_unregister(g_TouchKSet); + g_TouchKSet = NULL; + } + + g_TouchKObj->kset = g_TouchKSet; + + nRetVal = kobject_add(g_TouchKObj, NULL, "%s", "kobject_example"); + if (nRetVal != 0) + { + DBG("*** kobject_add() failed, nRetVal = %d ***\n", nRetVal); + + kobject_put(g_TouchKObj); + g_TouchKObj = NULL; + kset_unregister(g_TouchKSet); + g_TouchKSet = NULL; + } + + /* create the files associated with this kobject */ + nRetVal = sysfs_create_group(g_TouchKObj, &attr_group); + if (nRetVal != 0) + { + DBG("*** sysfs_create_file() failed, nRetVal = %d ***\n", nRetVal); + + kobject_put(g_TouchKObj); + g_TouchKObj = NULL; + kset_unregister(g_TouchKSet); + g_TouchKSet = NULL; + } + + pDevicePath = kobject_get_path(g_TouchKObj, GFP_KERNEL); + DBG("DEVPATH = %s\n", pDevicePath); +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + + g_ChipType = DrvIcFwLyrGetChipType(); + if(g_ChipType != 2) { + pr_err("[Mstar] the chip id error %x\n", g_ChipType); + return -ENODEV; + } + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG +#if defined(CONFIG_ENABLE_CHIP_MSG26XXM) + // get firmware mode for parsing packet judgement. + g_FirmwareMode = DrvIcFwLyrGetFirmwareMode(); +#endif //CONFIG_ENABLE_CHIP_MSG26XXM + + memset(&g_FirmwareInfo, 0x0, sizeof(FirmwareInfo_t)); + + DrvIcFwLyrGetFirmwareInfo(&g_FirmwareInfo); + +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) || defined(CONFIG_ENABLE_CHIP_MSG22XX) + g_FirmwareMode = g_FirmwareInfo.nFirmwareMode; +#endif +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID + DrvIcFwLyrCheckFirmwareUpdateBySwId(); +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + + return nRetVal; +} + +//------------------------------------------------------------------------------// \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_main.h b/drivers/input/touchscreen/msg2138/mstar_drv_main.h new file mode 100644 index 00000000..e4c8d6f7 --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_main.h @@ -0,0 +1,89 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_main.h + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +#ifndef __MSTAR_DRV_MAIN_H__ +#define __MSTAR_DRV_MAIN_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include "mstar_drv_common.h" + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR CONSTANT DEFINITION */ +/*--------------------------------------------------------------------------*/ + + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR MACRO DEFINITION */ +/*--------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------*/ +/* DATA TYPE DEFINITION */ +/*--------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +extern ssize_t DrvMainFirmwareDataShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf); +extern ssize_t DrvMainFirmwareDataStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize); +extern ssize_t DrvMainFirmwareUpdateShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf); +extern ssize_t DrvMainFirmwareUpdateStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize); +extern ssize_t DrvMainFirmwareVersionShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf); +extern ssize_t DrvMainFirmwareVersionStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize); + +#ifdef CONFIG_ENABLE_ITO_MP_TEST +extern ssize_t DrvMainFirmwareTestShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf); +extern ssize_t DrvMainFirmwareTestStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize); +#endif //CONFIG_ENABLE_ITO_MP_TEST + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +extern ssize_t DrvMainFirmwareGestureWakeupModeShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf); +extern ssize_t DrvMainFirmwareGestureWakeupModeStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize); +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +extern ssize_t DrvMainFirmwareDebugShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf); +extern ssize_t DrvMainFirmwareDebugStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize); +extern ssize_t DrvMainFirmwarePlatformVersionShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf); +extern ssize_t DrvMainFirmwarePlatformVersionStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize); +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG +extern ssize_t DrvMainFirmwareHeaderShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf); +extern ssize_t DrvMainFirmwareHeaderStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize); +extern ssize_t DrvMainFirmwareModeShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf); +extern ssize_t DrvMainFirmwareModeStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize); +//extern ssize_t DrvMainFirmwarePacketShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf); +//extern ssize_t DrvMainFirmwarePacketStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize); +extern ssize_t DrvMainFirmwareSensorShow(struct device *pDevice, struct device_attribute *pAttr, char *pBuf); +extern ssize_t DrvMainFirmwareSensorStore(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize); +extern ssize_t DrvMainKObjectPacketShow(struct kobject *pKObj, struct kobj_attribute *pAttr, char *pBuf); +extern ssize_t DrvMainKObjectPacketStore(struct kobject *pKObj, struct kobj_attribute *pAttr, const char *pBuf, size_t nCount); +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG +extern s32 DrvMainTouchDeviceInitialize(void); + +#endif /* __MSTAR_DRV_MAIN_H__ */ diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_platform_interface.c b/drivers/input/touchscreen/msg2138/mstar_drv_platform_interface.c new file mode 100644 index 00000000..24314f47 --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_platform_interface.c @@ -0,0 +1,209 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_platform_interface.c + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_platform_interface.h" +#include "mstar_drv_main.h" +#include "mstar_drv_ic_fw_porting_layer.h" +#include "mstar_drv_platform_porting_layer.h" + +/*=============================================================*/ +// EXTERN VARIABLE DECLARATION +/*=============================================================*/ + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +extern u16 g_GestureWakeupMode; +extern u8 g_GestureWakeupFlag; +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +/*=============================================================*/ +// GLOBAL VARIABLE DEFINITION +/*=============================================================*/ + +extern struct input_dev *g_InputDevice; + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +void MsDrvInterfaceTouchDeviceSuspend(struct early_suspend *pSuspend) +{ + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +// g_GestureWakeupMode = 0x1FFF; // Enable all gesture wakeup mode for testing + + if (g_GestureWakeupMode != 0x0000) + { + DrvIcFwLyrOpenGestureWakeup(g_GestureWakeupMode); + return; + } +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + + DrvPlatformLyrFingerTouchReleased(0, 0); // Send touch end for clearing point touch + input_sync(g_InputDevice); + + DrvPlatformLyrDisableFingerTouchReport(); + DrvPlatformLyrTouchDevicePowerOff(); +} + +void MsDrvInterfaceTouchDeviceResume(struct early_suspend *pSuspend) +{ + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + if (g_GestureWakeupFlag == 1) + { + DrvIcFwLyrCloseGestureWakeup(); + } + else + { + DrvPlatformLyrEnableFingerTouchReport(); + } +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + + DrvPlatformLyrTouchDevicePowerOn(); +/* + DrvPlatformLyrFingerTouchReleased(0, 0); + input_sync(g_InputDevice); +*/ +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + DrvIcFwLyrRestoreFirmwareModeToLogDataMode(); +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + +#ifndef CONFIG_ENABLE_GESTURE_WAKEUP + DrvPlatformLyrEnableFingerTouchReport(); +#endif //CONFIG_ENABLE_GESTURE_WAKEUP +} + +#ifdef TOUCH_VIRTUAL_KEYS +/*static ssize_t virtual_keys_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) +{ + return sprintf(buf, + __stringify(EV_KEY) ":" __stringify(KEY_HOMEPAGE) ":192:1000:64:60" + ":" __stringify(EV_KEY) ":" __stringify(KEY_MENU) ":256:1000:64:60" + ":" __stringify(EV_KEY) ":" __stringify(KEY_BACK) ":128:1000:64:60" + ":" __stringify(EV_KEY) ":" __stringify(KEY_SEARCH) ":64:1000:64:60" + "\n"); +}*/ +static ssize_t virtual_keys_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) +{ + struct msg2138_ts_platform_data *pdata = g_I2cClient->dev.platform_data; + return sprintf(buf,"%s:%s:%d:%d:%d:%d:%s:%s:%d:%d:%d:%d:%s:%s:%d:%d:%d:%d\n" + ,__stringify(EV_KEY), __stringify(KEY_APPSELECT),pdata ->virtualkeys[0],pdata ->virtualkeys[1],pdata ->virtualkeys[2],pdata ->virtualkeys[3] + ,__stringify(EV_KEY), __stringify(KEY_HOMEPAGE),pdata ->virtualkeys[4],pdata ->virtualkeys[5],pdata ->virtualkeys[6],pdata ->virtualkeys[7] + ,__stringify(EV_KEY), __stringify(KEY_BACK),pdata ->virtualkeys[8],pdata ->virtualkeys[9],pdata ->virtualkeys[10],pdata ->virtualkeys[11]); +} + +static struct kobj_attribute virtual_keys_attr = { + .attr = { + .name = "virtualkeys.msg2138_ts", + .mode = S_IRUGO, + }, + .show = &virtual_keys_show, +}; + +static struct attribute *properties_attrs[] = { + &virtual_keys_attr.attr, + NULL +}; + +static struct attribute_group properties_attr_group = { + .attrs = properties_attrs, +}; + +static void pixcir_ts_virtual_keys_init(void) +{ + int ret; + struct kobject *properties_kobj; + + properties_kobj = kobject_create_and_add("board_properties", NULL); + if (properties_kobj) + ret = sysfs_create_group(properties_kobj, + &properties_attr_group); + if (!properties_kobj || ret) + pr_err("failed to create board_properties\n"); +} +#endif + +/* probe function is used for matching and initializing input device */ +s32 /*__devinit*/ MsDrvInterfaceTouchDeviceProbe(struct i2c_client *pClient, const struct i2c_device_id *pDeviceId) +{ + s32 nRetVal = 0; + + DBG("*** %s() ***\n", __func__); + + DrvPlatformLyrInputDeviceInitialize(pClient); + + nRetVal = DrvPlatformLyrTouchDeviceRequestGPIO(); + if(nRetVal < 0) { + pr_err("[Mstar] DrvPlatformLyrTouchDeviceRequestGPIO failed %d\n",nRetVal); + return nRetVal; + } + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON + DrvPlatformLyrTouchDeviceRegulatorPowerOn(); +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + + DrvPlatformLyrTouchDevicePowerOn(); + + nRetVal = DrvMainTouchDeviceInitialize(); + if(nRetVal < 0) { + pr_err("[Mstar] DrvMainTouchDeviceInitialize failed %d\n",nRetVal); + return nRetVal; + } + +#ifdef TOUCH_VIRTUAL_KEYS + pixcir_ts_virtual_keys_init(); +#endif + + DrvPlatformLyrTouchDeviceRegisterFingerTouchInterruptHandler(); + + DrvPlatformLyrTouchDeviceRegisterEarlySuspend(); + + printk("*** MStar touch driver registered ***\n"); + + return nRetVal; +} + +/* remove function is triggered when the input device is removed from input sub-system */ +s32 /*__devexit*/ MsDrvInterfaceTouchDeviceRemove(struct i2c_client *pClient) +{ + DBG("*** %s() ***\n", __func__); + + return DrvPlatformLyrTouchDeviceRemove(pClient); +} + +void MsDrvInterfaceTouchDeviceSetIicDataRate(struct i2c_client *pClient, u32 nIicDataRate) +{ + DBG("*** %s() ***\n", __func__); + + DrvPlatformLyrSetIicDataRate(pClient, nIicDataRate); +} diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_platform_interface.h b/drivers/input/touchscreen/msg2138/mstar_drv_platform_interface.h new file mode 100644 index 00000000..1d8e8283 --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_platform_interface.h @@ -0,0 +1,47 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_platform_interface.h + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +#ifndef __MSTAR_DRV_PLATFORM_INTERFACE_H__ +#define __MSTAR_DRV_PLATFORM_INTERFACE_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include "mstar_drv_common.h" + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +extern s32 /*__devinit*/ MsDrvInterfaceTouchDeviceProbe(struct i2c_client *pClient, const struct i2c_device_id *pDeviceId); +extern s32 /*__devexit*/ MsDrvInterfaceTouchDeviceRemove(struct i2c_client *pClient); +extern void MsDrvInterfaceTouchDeviceResume(struct early_suspend *pSuspend); +extern void MsDrvInterfaceTouchDeviceSuspend(struct early_suspend *pSuspend); +extern void MsDrvInterfaceTouchDeviceSetIicDataRate(struct i2c_client *pClient, u32 nIicDataRate); + +#endif /* __MSTAR_DRV_PLATFORM_INTERFACE_H__ */ diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_platform_porting_layer.c b/drivers/input/touchscreen/msg2138/mstar_drv_platform_porting_layer.c new file mode 100644 index 00000000..2d759a8d --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_platform_porting_layer.c @@ -0,0 +1,553 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_platform_porting_layer.c + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_platform_porting_layer.h" +#include "mstar_drv_ic_fw_porting_layer.h" +#include "mstar_drv_platform_interface.h" + +/*=============================================================*/ +// EXTREN VARIABLE DECLARATION +/*=============================================================*/ + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG +extern struct kset *g_TouchKSet; +extern struct kobject *g_TouchKObj; +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +extern struct tpd_device *tpd; +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +extern struct regulator *g_ReguVdd; +#endif + +/*=============================================================*/ +// LOCAL VARIABLE DEFINITION +/*=============================================================*/ + +struct mutex g_Mutex; +static struct work_struct _gFingerTouchWork; + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +static struct early_suspend _gEarlySuspend; +#endif + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifndef CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM +static DECLARE_WAIT_QUEUE_HEAD(_gWaiter); +static struct task_struct *_gThread = NULL; +static int _gTpdFlag = 0; +#endif //CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + +/*=============================================================*/ +// GLOBAL VARIABLE DEFINITION +/*=============================================================*/ + +struct input_dev *g_InputDevice = NULL; +static int _gIrq = -1; + +/*=============================================================*/ +// LOCAL FUNCTION DEFINITION +/*=============================================================*/ + +/* read data through I2C then report data to input sub-system when interrupt occurred */ +static void _DrvPlatformLyrFingerTouchDoWork(struct work_struct *pWork) +{ + DBG("*** %s() ***\n", __func__); + + mutex_lock(&g_Mutex); + + DrvIcFwLyrHandleFingerTouch(NULL, 0); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +// enable_irq(MS_TS_MSG_IC_GPIO_INT); + enable_irq(_gIrq); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + mt_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM); +#endif + + mutex_unlock(&g_Mutex); +} + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +/* The interrupt service routine will be triggered when interrupt occurred */ +static irqreturn_t _DrvPlatformLyrFingerTouchInterruptHandler(s32 nIrq, void *pDeviceId) +{ + DBG("*** %s() ***\n", __func__); + +// disable_irq_nosync(MS_TS_MSG_IC_GPIO_INT); + disable_irq_nosync(_gIrq); + schedule_work(&_gFingerTouchWork); + + return IRQ_HANDLED; +} +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) +static void _DrvPlatformLyrFingerTouchInterruptHandler(void) +{ +#ifdef CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM + mt_eint_mask(CUST_EINT_TOUCH_PANEL_NUM); + schedule_work(&_gFingerTouchWork); +#else + mt_eint_mask(CUST_EINT_TOUCH_PANEL_NUM); + + _gTpdFlag = 1; + wake_up_interruptible(&_gWaiter); +#endif //CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM +} + +static int _DrvPlatformLyrFingerTouchHandler(void *pUnUsed) +{ + struct sched_param param = { .sched_priority = RTPM_PRIO_TPD }; + sched_setscheduler(current, SCHED_RR, ¶m); + + do + { + set_current_state(TASK_INTERRUPTIBLE); + wait_event_interruptible(_gWaiter, _gTpdFlag != 0); + _gTpdFlag = 0; + + set_current_state(TASK_RUNNING); + + mutex_lock(&g_Mutex); + + DrvIcFwLyrHandleFingerTouch(NULL, 0); + + mutex_unlock(&g_Mutex); + + mt_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM); + + } while (!kthread_should_stop()); + + return 0; +} +#endif + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON +void DrvPlatformLyrTouchDeviceRegulatorPowerOn(void) +{ +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + s32 nRetVal = 0; + + DBG("*** %s() ***\n", __func__); + + nRetVal = regulator_set_voltage(g_ReguVdd, 2800000, 2800000); // For specific SPRD BB chip(ex. SC7715) or QCOM BB chip, need to enable this function call for correctly power on Touch IC. + + if (nRetVal) + { + DBG("Could not set to 2800mv.\n"); + } + regulator_enable(g_ReguVdd); + + mdelay(20); //mdelay(100); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + hwPowerOn(MT6323_POWER_LDO_VGP1, VOL_2800, "TP"); // For specific MTK BB chip(ex. MT6582), need to enable this function call for correctly power on Touch IC. +#endif +} +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + +void DrvPlatformLyrTouchDevicePowerOn(void) +{ + DBG("*** %s() ***\n", __func__); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + gpio_direction_output(MS_TS_MSG_IC_GPIO_RST, 1); +// gpio_set_value(MS_TS_MSG_IC_GPIO_RST, 1); +// mdelay(100); + gpio_set_value(MS_TS_MSG_IC_GPIO_RST, 0); + mdelay(10); + gpio_set_value(MS_TS_MSG_IC_GPIO_RST, 1); + mdelay(50); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + mt_set_gpio_mode(MS_TS_MSG_IC_GPIO_RST, GPIO_CTP_RST_PIN_M_GPIO); + mt_set_gpio_dir(MS_TS_MSG_IC_GPIO_RST, GPIO_DIR_OUT); + mt_set_gpio_out(MS_TS_MSG_IC_GPIO_RST, GPIO_OUT_ZERO); + +#ifdef TPD_CLOSE_POWER_IN_SLEEP + hwPowerDown(TPD_POWER_SOURCE, "TP"); + mdelay(100); + hwPowerOn(TPD_POWER_SOURCE, VOL_2800, "TP"); + mdelay(10); // reset pulse +#endif //TPD_CLOSE_POWER_IN_SLEEP + + mt_set_gpio_out(MS_TS_MSG_IC_GPIO_RST, GPIO_OUT_ONE); + mdelay(180); // wait stable +#endif +} + +void DrvPlatformLyrTouchDevicePowerOff(void) +{ + DBG("*** %s() ***\n", __func__); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +// gpio_direction_output(MS_TS_MSG_IC_GPIO_RST, 0); + gpio_set_value(MS_TS_MSG_IC_GPIO_RST, 0); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + mt_set_gpio_mode(MS_TS_MSG_IC_GPIO_RST, GPIO_CTP_RST_PIN_M_GPIO); + mt_set_gpio_dir(MS_TS_MSG_IC_GPIO_RST, GPIO_DIR_OUT); + mt_set_gpio_out(MS_TS_MSG_IC_GPIO_RST, GPIO_OUT_ZERO); +#ifdef TPD_CLOSE_POWER_IN_SLEEP + hwPowerDown(TPD_POWER_SOURCE, "TP"); +#endif //TPD_CLOSE_POWER_IN_SLEEP +#endif +} + +void DrvPlatformLyrTouchDeviceResetHw(void) +{ + DBG("*** %s() ***\n", __func__); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + gpio_direction_output(MS_TS_MSG_IC_GPIO_RST, 1); +// gpio_set_value(MS_TS_MSG_IC_GPIO_RST, 1); + gpio_set_value(MS_TS_MSG_IC_GPIO_RST, 0); + mdelay(10); + gpio_set_value(MS_TS_MSG_IC_GPIO_RST, 1); + mdelay(50); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + mt_set_gpio_mode(MS_TS_MSG_IC_GPIO_RST, GPIO_CTP_RST_PIN_M_GPIO); + mt_set_gpio_dir(MS_TS_MSG_IC_GPIO_RST, GPIO_DIR_OUT); + mt_set_gpio_out(MS_TS_MSG_IC_GPIO_RST, GPIO_OUT_ONE); + mdelay(10); + mt_set_gpio_mode(MS_TS_MSG_IC_GPIO_RST, GPIO_CTP_RST_PIN_M_GPIO); + mt_set_gpio_dir(MS_TS_MSG_IC_GPIO_RST, GPIO_DIR_OUT); + mt_set_gpio_out(MS_TS_MSG_IC_GPIO_RST, GPIO_OUT_ZERO); + mdelay(50); + mt_set_gpio_mode(MS_TS_MSG_IC_GPIO_RST, GPIO_CTP_RST_PIN_M_GPIO); + mt_set_gpio_dir(MS_TS_MSG_IC_GPIO_RST, GPIO_DIR_OUT); + mt_set_gpio_out(MS_TS_MSG_IC_GPIO_RST, GPIO_OUT_ONE); + mdelay(50); +#endif +} + +void DrvPlatformLyrDisableFingerTouchReport(void) +{ + DBG("*** %s() ***\n", __func__); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +// disable_irq(MS_TS_MSG_IC_GPIO_RST); + disable_irq(_gIrq); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + mt_eint_mask(CUST_EINT_TOUCH_PANEL_NUM); +#endif +} + +void DrvPlatformLyrEnableFingerTouchReport(void) +{ + DBG("*** %s() ***\n", __func__); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +// enable_irq(MS_TS_MSG_IC_GPIO_RST); + enable_irq(_gIrq); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + mt_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM); +#endif +} + +void DrvPlatformLyrFingerTouchPressed(s32 nX, s32 nY, s32 nPressure, s32 nId) +{ + DBG("*** %s() ***\n", __func__); + DBG("point touch pressed\n"); + + input_report_key(g_InputDevice, BTN_TOUCH, 1); +#if defined(CONFIG_ENABLE_CHIP_MSG26XXM) + input_report_abs(g_InputDevice, ABS_MT_TRACKING_ID, nId); +#endif //CONFIG_ENABLE_CHIP_MSG26XXM + input_report_abs(g_InputDevice, ABS_MT_TOUCH_MAJOR, 1); + input_report_abs(g_InputDevice, ABS_MT_WIDTH_MAJOR, 1); + input_report_abs(g_InputDevice, ABS_MT_POSITION_X, nX); + input_report_abs(g_InputDevice, ABS_MT_POSITION_Y, nY); + + input_mt_sync(g_InputDevice); + +} + +void DrvPlatformLyrFingerTouchReleased(s32 nX, s32 nY) +{ + DBG("*** %s() ***\n", __func__); + DBG("point touch released\n"); + + input_report_key(g_InputDevice, BTN_TOUCH, 0); + input_mt_sync(g_InputDevice); + +} + +s32 DrvPlatformLyrInputDeviceInitialize(struct i2c_client *pClient) +{ + s32 nRetVal = 0; + + DBG("*** %s() ***\n", __func__); + + mutex_init(&g_Mutex); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + /* allocate an input device */ + g_InputDevice = input_allocate_device(); + if (g_InputDevice == NULL) + { + DBG("*** input device allocation failed ***\n"); + return -ENOMEM; + } + + g_InputDevice->name = MSG_TP_IC_NAME; + g_InputDevice->phys = "I2C"; + g_InputDevice->dev.parent = &pClient->dev; + g_InputDevice->id.bustype = BUS_I2C; + + /* set the supported event type for input device */ + __set_bit(EV_KEY, g_InputDevice->evbit); + __set_bit(EV_ABS, g_InputDevice->evbit); + __set_bit(EV_SYN, g_InputDevice->evbit); + //__set_bit(BTN_TOUCH, g_InputDevice->keybit); + __set_bit(ABS_MT_TOUCH_MAJOR, g_InputDevice->absbit); + __set_bit(ABS_MT_POSITION_X, g_InputDevice->absbit); + __set_bit(ABS_MT_POSITION_Y, g_InputDevice->absbit); + __set_bit(ABS_MT_WIDTH_MAJOR, g_InputDevice->absbit); + + __set_bit(KEY_MENU, g_InputDevice->keybit); + __set_bit(KEY_BACK, g_InputDevice->keybit); + __set_bit(KEY_HOME, g_InputDevice->keybit); + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + input_set_capability(g_InputDevice, EV_KEY, KEY_POWER); + input_set_capability(g_InputDevice, EV_KEY, KEY_UP); + input_set_capability(g_InputDevice, EV_KEY, KEY_DOWN); + input_set_capability(g_InputDevice, EV_KEY, KEY_LEFT); + input_set_capability(g_InputDevice, EV_KEY, KEY_RIGHT); + input_set_capability(g_InputDevice, EV_KEY, KEY_W); + input_set_capability(g_InputDevice, EV_KEY, KEY_Z); + input_set_capability(g_InputDevice, EV_KEY, KEY_V); + input_set_capability(g_InputDevice, EV_KEY, KEY_O); + input_set_capability(g_InputDevice, EV_KEY, KEY_M); + input_set_capability(g_InputDevice, EV_KEY, KEY_C); + input_set_capability(g_InputDevice, EV_KEY, KEY_E); + input_set_capability(g_InputDevice, EV_KEY, KEY_S); +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +/* +#ifdef CONFIG_TP_HAVE_KEY + set_bit(TOUCH_KEY_MENU, g_InputDevice->keybit); //Menu + set_bit(TOUCH_KEY_HOME, g_InputDevice->keybit); //Home + set_bit(TOUCH_KEY_BACK, g_InputDevice->keybit); //Back + set_bit(TOUCH_KEY_SEARCH, g_InputDevice->keybit); //Search +#endif +*/ + +#if defined(CONFIG_ENABLE_CHIP_MSG26XXM) + input_set_abs_params(g_InputDevice, ABS_MT_TRACKING_ID, 0, 255, 0, 0); +#endif //CONFIG_ENABLE_CHIP_MSG26XXM + input_set_abs_params(g_InputDevice, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(g_InputDevice, ABS_MT_WIDTH_MAJOR, 0, 15, 0, 0); + input_set_abs_params(g_InputDevice, ABS_MT_POSITION_X, 0, TOUCH_SCREEN_X_MAX, 0, 0); + input_set_abs_params(g_InputDevice, ABS_MT_POSITION_Y, 0, TOUCH_SCREEN_Y_MAX, 0, 0); + + /* register the input device to input sub-system */ + nRetVal = input_register_device(g_InputDevice); + if (nRetVal < 0) + { + DBG("*** Unable to register touch input device ***\n"); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + g_InputDevice = tpd->dev; + +// g_InputDevice->name = pClient->name; + g_InputDevice->phys = "I2C"; + g_InputDevice->dev.parent = &pClient->dev; + g_InputDevice->id.bustype = BUS_I2C; + + /* set the supported event type for input device */ + set_bit(EV_ABS, g_InputDevice->evbit); + set_bit(EV_SYN, g_InputDevice->evbit); + set_bit(EV_KEY, g_InputDevice->evbit); + set_bit(BTN_TOUCH, g_InputDevice->keybit); + set_bit(INPUT_PROP_DIRECT, g_InputDevice->propbit); + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + input_set_capability(g_InputDevice, EV_KEY, KEY_POWER); + input_set_capability(g_InputDevice, EV_KEY, KEY_UP); + input_set_capability(g_InputDevice, EV_KEY, KEY_DOWN); + input_set_capability(g_InputDevice, EV_KEY, KEY_LEFT); + input_set_capability(g_InputDevice, EV_KEY, KEY_RIGHT); + input_set_capability(g_InputDevice, EV_KEY, KEY_W); + input_set_capability(g_InputDevice, EV_KEY, KEY_Z); + input_set_capability(g_InputDevice, EV_KEY, KEY_V); + input_set_capability(g_InputDevice, EV_KEY, KEY_O); + input_set_capability(g_InputDevice, EV_KEY, KEY_M); + input_set_capability(g_InputDevice, EV_KEY, KEY_C); + input_set_capability(g_InputDevice, EV_KEY, KEY_E); + input_set_capability(g_InputDevice, EV_KEY, KEY_S); +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +/* +#ifdef CONFIG_TP_HAVE_KEY + set_bit(TOUCH_KEY_MENU, g_InputDevice->keybit); //Menu + set_bit(TOUCH_KEY_HOME, g_InputDevice->keybit); //Home + set_bit(TOUCH_KEY_BACK, g_InputDevice->keybit); //Back + set_bit(TOUCH_KEY_SEARCH, g_InputDevice->keybit); //Search +#endif +*/ + +#if defined(CONFIG_ENABLE_CHIP_MSG26XXM) + input_set_abs_params(g_InputDevice, ABS_MT_TRACKING_ID, 0, 255, 0, 0); +#endif //CONFIG_ENABLE_CHIP_MSG26XXM + input_set_abs_params(g_InputDevice, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(g_InputDevice, ABS_MT_WIDTH_MAJOR, 0, 15, 0, 0); + input_set_abs_params(g_InputDevice, ABS_MT_POSITION_X, 0, TOUCH_SCREEN_X_MAX, 0, 0); + input_set_abs_params(g_InputDevice, ABS_MT_POSITION_Y, 0, TOUCH_SCREEN_Y_MAX, 0, 0); +#endif + + return nRetVal; +} + +s32 DrvPlatformLyrTouchDeviceRequestGPIO(void) +{ + s32 nRetVal = 0; + + DBG("*** %s() ***\n", __func__); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + nRetVal = gpio_request(MS_TS_MSG_IC_GPIO_RST, "C_TP_RST"); + if (nRetVal < 0) + { + DBG("*** Failed to request GPIO %d, error %d ***\n", MS_TS_MSG_IC_GPIO_RST, nRetVal); + } + + nRetVal = gpio_request(MS_TS_MSG_IC_GPIO_INT, "C_TP_INT"); + if (nRetVal < 0) + { + DBG("*** Failed to request GPIO %d, error %d ***\n", MS_TS_MSG_IC_GPIO_INT, nRetVal); + } +#endif + + return nRetVal; +} + +s32 DrvPlatformLyrTouchDeviceRegisterFingerTouchInterruptHandler(void) +{ + s32 nRetVal = 0; + + DBG("*** %s() ***\n", __func__); + + if (DrvIcFwLyrIsRegisterFingerTouchInterruptHandler()) + { +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + /* initialize the finger touch work queue */ + INIT_WORK(&_gFingerTouchWork, _DrvPlatformLyrFingerTouchDoWork); + + _gIrq = gpio_to_irq(MS_TS_MSG_IC_GPIO_INT); + + /* request an irq and register the isr */ + nRetVal = request_irq(_gIrq/*MS_TS_MSG_IC_GPIO_INT*/, _DrvPlatformLyrFingerTouchInterruptHandler, + IRQF_TRIGGER_RISING /* | IRQF_NO_SUSPEND *//* IRQF_TRIGGER_FALLING */, + "msg2xxx", NULL); + if (nRetVal != 0) + { + DBG("*** Unable to claim irq %d; error %d ***\n", MS_TS_MSG_IC_GPIO_INT, nRetVal); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + mt_set_gpio_mode(MS_TS_MSG_IC_GPIO_INT, GPIO_CTP_EINT_PIN_M_EINT); + mt_set_gpio_dir(MS_TS_MSG_IC_GPIO_INT, GPIO_DIR_IN); + mt_set_gpio_pull_enable(MS_TS_MSG_IC_GPIO_INT, GPIO_PULL_ENABLE); + mt_set_gpio_pull_select(MS_TS_MSG_IC_GPIO_INT, GPIO_PULL_UP); + + mt_eint_set_hw_debounce(CUST_EINT_TOUCH_PANEL_NUM, CUST_EINT_TOUCH_PANEL_DEBOUNCE_CN); + mt_eint_registration(CUST_EINT_TOUCH_PANEL_NUM, EINTF_TRIGGER_RISING, _DrvPlatformLyrFingerTouchInterruptHandler, 1); + + mt_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM); + +#ifdef CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM + /* initialize the finger touch work queue */ + INIT_WORK(&_gFingerTouchWork, _DrvPlatformLyrFingerTouchDoWork); +#else + _gThread = kthread_run(_DrvPlatformLyrFingerTouchHandler, 0, TPD_DEVICE); + if (IS_ERR(_gThread)) + { + nRetVal = PTR_ERR(_gThread); + DBG("Failed to create kernel thread: %d\n", nRetVal); + } +#endif //CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM +#endif + } + + return nRetVal; +} + +void DrvPlatformLyrTouchDeviceRegisterEarlySuspend(void) +{ + DBG("*** %s() ***\n", __func__); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + _gEarlySuspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN; + _gEarlySuspend.suspend = MsDrvInterfaceTouchDeviceSuspend; + _gEarlySuspend.resume = MsDrvInterfaceTouchDeviceResume; + register_early_suspend(&_gEarlySuspend); +#endif +} + +/* remove function is triggered when the input device is removed from input sub-system */ +s32 DrvPlatformLyrTouchDeviceRemove(struct i2c_client *pClient) +{ + DBG("*** %s() ***\n", __func__); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +// free_irq(MS_TS_MSG_IC_GPIO_INT, g_InputDevice); + free_irq(_gIrq, g_InputDevice); + gpio_free(MS_TS_MSG_IC_GPIO_INT); + gpio_free(MS_TS_MSG_IC_GPIO_RST); + input_unregister_device(g_InputDevice); +#endif +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + kset_unregister(g_TouchKSet); + kobject_put(g_TouchKObj); +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + + return 0; +} + +void DrvPlatformLyrSetIicDataRate(struct i2c_client *pClient, u32 nIicDataRate) +{ + DBG("*** %s() nIicDataRate = %d ***\n", __func__, nIicDataRate); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + // TODO : Please FAE colleague to confirm with customer device driver engineer for how to set i2c data rate on SPRD platform + //sprd_i2c_ctl_chg_clk(pClient->adapter->nr, nIicDataRate); + //mdelay(100); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + // TODO : Please FAE colleague to confirm with customer device driver engineer for how to set i2c data rate on QCOM platform +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + pClient->timing = nIicDataRate/1000; +#endif +} \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_platform_porting_layer.h b/drivers/input/touchscreen/msg2138/mstar_drv_platform_porting_layer.h new file mode 100644 index 00000000..f1f5aaa7 --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_platform_porting_layer.h @@ -0,0 +1,125 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_platform_porting_layer.h + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +#ifndef __MSTAR_DRV_PLATFORM_PORTING_LAYER_H__ +#define __MSTAR_DRV_PLATFORM_PORTING_LAYER_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include "mstar_drv_common.h" + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + +#include +#include + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON +#include +#include +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON +#include +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + + +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + +#include +#include +#include +#include +#include +#include +//#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include "tpd.h" +#include "cust_gpio_usage.h" + +#endif + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR CONSTANT DEFINITION */ +/*--------------------------------------------------------------------------*/ + +/* + * Note. + * Please change the below GPIO pin setting to follow the platform that you are using(EX. MediaTek, Spreadtrum, Qualcomm). + */ +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + +// TODO : Please FAE colleague to confirm with customer device driver engineer about the value of RST and INT GPIO setting +//#define MS_TS_MSG_IC_GPIO_RST GPIO_TOUCH_RESET //53 //35 +//#define MS_TS_MSG_IC_GPIO_INT GPIO_TOUCH_IRQ //52 //37 + +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + +// TODO : Please FAE colleague to confirm with customer device driver engineer about the value of RST and INT GPIO setting +#define MS_TS_MSG_IC_GPIO_RST 0 +#define MS_TS_MSG_IC_GPIO_INT 1 +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) +#define MS_TS_MSG_IC_GPIO_RST (GPIO_CTP_RST_PIN) +#define MS_TS_MSG_IC_GPIO_INT (GPIO_CTP_EINT_PIN) +#endif + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +extern void DrvPlatformLyrDisableFingerTouchReport(void); +extern void DrvPlatformLyrEnableFingerTouchReport(void); +extern void DrvPlatformLyrFingerTouchPressed(s32 nX, s32 nY, s32 nPressure, s32 nId); +extern void DrvPlatformLyrFingerTouchReleased(s32 nX, s32 nY); +extern s32 DrvPlatformLyrInputDeviceInitialize(struct i2c_client *pClient); +extern void DrvPlatformLyrSetIicDataRate(struct i2c_client *pClient, u32 nIicDataRate); +extern void DrvPlatformLyrTouchDevicePowerOff(void); +extern void DrvPlatformLyrTouchDevicePowerOn(void); +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON +extern void DrvPlatformLyrTouchDeviceRegulatorPowerOn(void); +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON +extern void DrvPlatformLyrTouchDeviceRegisterEarlySuspend(void); +extern s32 DrvPlatformLyrTouchDeviceRegisterFingerTouchInterruptHandler(void); +extern s32 DrvPlatformLyrTouchDeviceRemove(struct i2c_client *pClient); +extern s32 DrvPlatformLyrTouchDeviceRequestGPIO(void); +extern void DrvPlatformLyrTouchDeviceResetHw(void); + +#endif /* __MSTAR_DRV_PLATFORM_PORTING_LAYER_H__ */ diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_self_fw_control.c b/drivers/input/touchscreen/msg2138/mstar_drv_self_fw_control.c new file mode 100644 index 00000000..dbe21439 --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_self_fw_control.c @@ -0,0 +1,3974 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_self_fw_control.c + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_self_fw_control.h" +#include "mstar_drv_utility_adaption.h" +#include "mstar_drv_platform_porting_layer.h" + +/*=============================================================*/ +// EXTERN VARIABLE DECLARATION +/*=============================================================*/ +static const int g_TpVirtualKeyDimLocal[3][4] = { {256,1000,70,70}, // virtualkey 1 MENU + {128,1000,70,70}, // virtualkey 4 HOME + {192,1000,70,70} }; // virtualkey 2 BACK + +struct point_node_t point_slot[MAX_FINGER_NUM*2]; +static int keycode; + +extern struct input_dev *g_InputDevice; + +extern u8 g_FwData[94][1024]; +extern u32 g_FwDataCount; + +extern struct mutex g_Mutex; + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG +extern struct kobject *g_TouchKObj; +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + +/*=============================================================*/ +// LOCAL VARIABLE DEFINITION +/*=============================================================*/ + +static u8 _gTpVendorCode[3] = {0}; + +static u8 _gDwIicInfoData[1024]; +static u8 _gOneDimenFwData[MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE*1024+MSG22XX_FIRMWARE_INFO_BLOCK_SIZE] = {0}; // used for MSG22XX + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +/* + * Note. + * Please modify the name of the below .h depends on the vendor TP that you are using. + */ +static unsigned char msg2xxx_yyyy_update_bin[] = { +}; +static unsigned char msg2xxx_xxxx_update_bin[] = { +#include "msg2xxx_xxxx_update_bin.h" +}; + +static u32 _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; +static struct work_struct _gUpdateFirmwareBySwIdWork; +static struct workqueue_struct *_gUpdateFirmwareBySwIdWorkQueue = NULL; + +static u32 _gIsUpdateInfoBlockFirst = 0; +static u8 _gIsUpdateFirmware = 0x00; + +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +static u16 _gGestureWakeupValue = 0; +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + + +/*=============================================================*/ +// GLOBAL VARIABLE DEFINITION +/*=============================================================*/ + +u8 g_ChipType = 0; +u8 g_DemoModePacket[DEMO_MODE_PACKET_LENGTH] = {0}; + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG +FirmwareInfo_t g_FirmwareInfo; + +u8 *g_LogModePacket = NULL; +u16 g_FirmwareMode = FIRMWARE_MODE_DEMO_MODE; +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +u8 *_gGestureWakeupPacket = NULL; + +u16 g_GestureWakeupMode = 0x0000; +u8 g_GestureWakeupFlag = 0; +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +/*=============================================================*/ +// LOCAL FUNCTION DECLARATION +/*=============================================================*/ + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +static void _DrvFwCtrlUpdateFirmwareBySwIdDoWork(struct work_struct *pWork); +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +/*=============================================================*/ +// LOCAL FUNCTION DEFINITION +/*=============================================================*/ + +unsigned char tpd_check_sum(unsigned char *pval) +{ + int i, sum = 0; + for(i = 0; i < 7; i++) + sum += pval[i]; + return (unsigned char)((-sum) & 0xFF); +} + +static void _DrvFwCtrlEraseEmemC32(void) +{ + DBG("*** %s() ***\n", __func__); + + ///////////////////////// + //Erase all + ///////////////////////// + + // Enter gpio mode + RegSet16BitValue(0x161E, 0xBEAF); + + // Before gpio mode, set the control pin as the orginal status + RegSet16BitValue(0x1608, 0x0000); + RegSetLByteValue(0x160E, 0x10); + mdelay(10); + + // ptrim = 1, h'04[2] + RegSetLByteValue(0x1608, 0x04); + RegSetLByteValue(0x160E, 0x10); + mdelay(10); + + // ptm = 6, h'04[12:14] = b'110 + RegSetLByteValue(0x1609, 0x60); + RegSetLByteValue(0x160E, 0x10); + + // pmasi = 1, h'04[6] + RegSetLByteValue(0x1608, 0x44); + // pce = 1, h'04[11] + RegSetLByteValue(0x1609, 0x68); + // perase = 1, h'04[7] + RegSetLByteValue(0x1608, 0xC4); + // pnvstr = 1, h'04[5] + RegSetLByteValue(0x1608, 0xE4); + // pwe = 1, h'04[9] + RegSetLByteValue(0x1609, 0x6A); + // trigger gpio load + RegSetLByteValue(0x160E, 0x10); +} + +static void _DrvFwCtrlEraseEmemC33(EmemType_e eEmemType) +{ + DBG("*** %s() ***\n", __func__); + + // Stop mcu + RegSet16BitValue(0x0FE6, 0x0001); + + // Disable watchdog + RegSetLByteValue(0x3C60, 0x55); + RegSetLByteValue(0x3C61, 0xAA); + + // Set PROGRAM password + RegSetLByteValue(0x161A, 0xBA); + RegSetLByteValue(0x161B, 0xAB); + + // Clear pce + RegSetLByteValue(0x1618, 0x80); + + if (eEmemType == EMEM_ALL) + { + RegSetLByteValue(0x1608, 0x10); //mark + } + + RegSetLByteValue(0x1618, 0x40); + mdelay(10); + + RegSetLByteValue(0x1618, 0x80); + + // erase trigger + if (eEmemType == EMEM_MAIN) + { + RegSetLByteValue(0x160E, 0x04); //erase main + } + else + { + RegSetLByteValue(0x160E, 0x08); //erase all block + } +} + +static void _DrvFwCtrlMsg22xxGetTpVendorCode(u8 *pTpVendorCode) +{ + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG22XX) + { + u16 nRegData1, nRegData2; + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + // RIU password + RegSet16BitValue(0x161A, 0xABBA); + + // Clear pce + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x80)); + + RegSet16BitValue(0x1600, 0xC1E9); // Set start address for tp vendor code on info block(Actually, start reading from 0xC1E8) + + // Enable burst mode +// RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); + + // Set pce + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x40)); + + RegSetLByteValue(0x160E, 0x01); + + nRegData1 = RegGet16BitValue(0x1604); + nRegData2 = RegGet16BitValue(0x1606); + + pTpVendorCode[0] = ((nRegData1 >> 8) & 0xFF); + pTpVendorCode[1] = (nRegData2 & 0xFF); + pTpVendorCode[2] = ((nRegData2 >> 8) & 0xFF); + + DBG("pTpVendorCode[0] = 0x%x , %c \n", pTpVendorCode[0], pTpVendorCode[0]); + DBG("pTpVendorCode[1] = 0x%x , %c \n", pTpVendorCode[1], pTpVendorCode[1]); + DBG("pTpVendorCode[2] = 0x%x , %c \n", pTpVendorCode[2], pTpVendorCode[2]); + + // Clear burst mode +// RegSet16BitValue(0x160C, RegGet16BitValue(0x160C) & (~0x01)); + + RegSet16BitValue(0x1600, 0x0000); + + // Clear RIU password + RegSet16BitValue(0x161A, 0x0000); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + mdelay(100); + } +} + +static void _DrvFwCtrlMsg22xxEraseEmem(EmemType_e eEmemType) +{ + u32 i; + u16 nRegData = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + + DBG("Erase start\n"); + + // Stop mcu + RegSet16BitValue(0x0FE6, 0x0001); + + // Disable watchdog + RegSetLByteValue(0x3C60, 0x55); + RegSetLByteValue(0x3C61, 0xAA); + + // Set PROGRAM password + RegSetLByteValue(0x161A, 0xBA); + RegSetLByteValue(0x161B, 0xAB); + + if (eEmemType == EMEM_ALL) // 48KB + 512Byte + { + DBG("Erase all block\n"); + + // Clear pce + RegSetLByteValue(0x1618, 0x80); + mdelay(100); + + // Chip erase + RegSet16BitValue(0x160E, BIT3); + + DBG("Wait erase done flag\n"); + + do // Wait erase done flag + { + nRegData = RegGet16BitValue(0x1610); // Memory status + mdelay(50); + } while((nRegData & BIT1) != BIT1); + } + else if (eEmemType == EMEM_MAIN) // 48KB (32+8+8) + { + DBG("Erase main block\n"); + + for (i = 0; i < 3; i ++) + { + // Clear pce + RegSetLByteValue(0x1618, 0x80); + mdelay(10); + + if (i == 0) + { + RegSet16BitValue(0x1600, 0x0000); + } + else if (i == 1) + { + RegSet16BitValue(0x1600, 0x8000); + } + else if (i == 2) + { + RegSet16BitValue(0x1600, 0xA000); + } + + // Sector erase + RegSet16BitValue(0x160E, (RegGet16BitValue(0x160E) | BIT2)); + + DBG("Wait erase done flag\n"); + + do // Wait erase done flag + { + nRegData = RegGet16BitValue(0x1610); // Memory status + mdelay(50); + } while((nRegData & BIT1) != BIT1); + } + } + else if (eEmemType == EMEM_INFO) // 512Byte + { + DBG("Erase info block\n"); + + // Clear pce + RegSetLByteValue(0x1618, 0x80); + mdelay(10); + + RegSet16BitValue(0x1600, 0xC000); + + // Sector erase + RegSet16BitValue(0x160E, (RegGet16BitValue(0x160E) | BIT2)); + + DBG("Wait erase done flag\n"); + + do // Wait erase done flag + { + nRegData = RegGet16BitValue(0x1610); // Memory status + mdelay(50); + } while((nRegData & BIT1) != BIT1); + } + + DBG("Erase end\n"); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); +} + +static void _DrvFwCtrlMsg22xxProgramEmem(EmemType_e eEmemType) // For MSG22XX +{ + u32 i, j; + u32 nRemainSize = 0, nBlockSize = 0, nSize = 0, index = 0; + u16 nRegData; + u8 szDbBusTxData[1024] = {0}; +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + u32 nSizePerWrite = 125; +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + u32 nSizePerWrite = 1021; +#endif + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaAlloc(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + + // Hold reset pin before program + RegSetLByteValue(0x1E06, 0x00); + + DBG("Program start\n"); + + RegSet16BitValue(0x161A, 0xABBA); + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x80)); + + if (eEmemType == EMEM_MAIN) + { + DBG("Program main block\n"); + + RegSet16BitValue(0x1600, 0x0000); // Set start address of main block + nRemainSize = MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE * 1024; //48KB + index = 0; + } + else if (eEmemType == EMEM_INFO) + { + DBG("Program info block\n"); + + RegSet16BitValue(0x1600, 0xC000); // Set start address of info block + nRemainSize = MSG22XX_FIRMWARE_INFO_BLOCK_SIZE; //512Byte + index = MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE * 1024; + } + else + { + DBG("eEmemType = %d is not supported for program e-memory.\n", eEmemType); + return; + } + + RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); // Enable burst mode + + // Program start + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x16; + szDbBusTxData[2] = 0x02; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3); + + szDbBusTxData[0] = 0x20; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 1); + + i = 0; + + while (nRemainSize > 0) + { + if (nRemainSize > nSizePerWrite) + { + nBlockSize = nSizePerWrite; + } + else + { + nBlockSize = nRemainSize; + } + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x16; + szDbBusTxData[2] = 0x02; + + nSize = 3; + + for (j = 0; j < nBlockSize; j ++) + { + szDbBusTxData[3+j] = _gOneDimenFwData[index+(i*nSizePerWrite)+j]; + nSize ++; + } + i ++; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], nSize); + + nRemainSize = nRemainSize - nBlockSize; + } + + // Program end + szDbBusTxData[0] = 0x21; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 1); + + nRegData = RegGet16BitValue(0x160C); + RegSet16BitValue(0x160C, nRegData & (~0x01)); + + DBG("Wait write done flag\n"); + + // Polling 0x1610 is 0x0002 + do + { + nRegData = RegGet16BitValue(0x1610); + nRegData = nRegData & BIT1; + mdelay(10); + + } while (nRegData != BIT1); // Wait write done flag + + DBG("Program end\n"); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaFree(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +} + +static u32 _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EmemType_e eEmemType) // For MSG22XX +{ + u16 nCrcDown = 0; + u32 nRetVal = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // RIU password + RegSet16BitValue(0x161A, 0xABBA); + + // Set PCE high + RegSetLByteValue(0x1618, 0x40); + + if (eEmemType == EMEM_MAIN) + { + // Set start address and end address for main block + RegSet16BitValue(0x1600, 0x0000); + RegSet16BitValue(0x1640, 0xBFF8); + } + else if (eEmemType == EMEM_INFO) + { + // Set start address and end address for info block + RegSet16BitValue(0x1600, 0xC000); + RegSet16BitValue(0x1640, 0xC1F8); + } + + // CRC reset + RegSet16BitValue(0x164E, 0x0001); + + RegSet16BitValue(0x164E, 0x0000); + + // Trigger CRC check + RegSetLByteValue(0x160E, 0x20); + mdelay(10); + + nCrcDown = RegGet16BitValue(0x164E); + + while (nCrcDown != 2) + { + DBG("Wait CRC down\n"); + mdelay(10); + nCrcDown = RegGet16BitValue(0x164E); + } + + nRetVal = RegGet16BitValue(0x1652); + nRetVal = (nRetVal << 16) | RegGet16BitValue(0x1650); + + DBG("Hardware CRC = 0x%x\n", nRetVal); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static void _DrvFwCtrlMsg22xxConvertFwDataTwoDimenToOneDimen(u8 szTwoDimenFwData[][1024], u8* pOneDimenFwData) +{ + u32 i, j; + + DBG("*** %s() ***\n", __func__); + + for (i = 0; i < (MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE+1); i ++) + { + if (i < MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE) // i < 48 + { + for (j = 0; j < 1024; j ++) + { + pOneDimenFwData[i*1024+j] = szTwoDimenFwData[i][j]; + } + } + else // i == 48 + { + for (j = 0; j < 512; j ++) + { + pOneDimenFwData[i*1024+j] = szTwoDimenFwData[i][j]; + } + } + } +} + +static s32 _DrvFwCtrlParsePacket(u8 *pPacket, u16 nLength, TouchInfo_t *pInfo) +{ + u8 nCheckSum = 0; + u32 nDeltaX = 0, nDeltaY = 0; + u32 nX = 0; + u32 nY = 0; +#ifdef CONFIG_SWAP_X_Y + u32 nTempX; + u32 nTempY; +#endif +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + u8 nCheckSumIndex = 0; +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + if (g_FirmwareMode == FIRMWARE_MODE_DEMO_MODE) + { + nCheckSumIndex = 7; + } + else if (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE || g_FirmwareMode == FIRMWARE_MODE_RAW_DATA_MODE) + { + nCheckSumIndex = 31; + } + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + if (g_GestureWakeupFlag == 1) + { + nCheckSumIndex = nLength-1; + } +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + nCheckSum = DrvCommonCalculateCheckSum(&pPacket[0], nCheckSumIndex); + DBG("check sum : [%x] == [%x]? \n", pPacket[nCheckSumIndex], nCheckSum); +#else + nCheckSum = DrvCommonCalculateCheckSum(&pPacket[0], (nLength-1)); + DBG("check ksum : [%x] == [%x]? \n", pPacket[nLength-1], nCheckSum); +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + if (g_GestureWakeupFlag == 1) + { + u8 nWakeupMode = 0; + u8 bIsCorrectFormat = 0; + + DBG("received raw data from touch panel as following:\n"); + DBG("pPacket[0]=%x \n pPacket[1]=%x pPacket[2]=%x pPacket[3]=%x pPacket[4]=%x pPacket[5]=%x \n", \ + pPacket[0], pPacket[1], pPacket[2], pPacket[3], pPacket[4], pPacket[5]); + + if (g_ChipType == CHIP_TYPE_MSG22XX && pPacket[0] == 0xA7 && pPacket[1] == 0x00 && pPacket[2] == 0x06 && pPacket[3] == 0x50) + { + nWakeupMode = pPacket[4]; + bIsCorrectFormat = 1; + } + else if (g_ChipType == CHIP_TYPE_MSG21XXA && pPacket[0] == 0x52 && pPacket[1] == 0xFF && pPacket[2] == 0xFF && pPacket[3] == 0xFF && pPacket[4] == 0xFF && pPacket[6] == 0xFF) + { + nWakeupMode = pPacket[5]; + bIsCorrectFormat = 1; + } + + if (bIsCorrectFormat) + { + DBG("nWakeupMode = 0x%x\n", nWakeupMode); + + switch (nWakeupMode) + { + case 0x58: + _gGestureWakeupValue = GESTURE_WAKEUP_MODE_DOUBLE_CLICK_FLAG; + + DBG("Light up screen by DOUBLE_CLICK gesture wakeup.\n"); + + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x60: + _gGestureWakeupValue = GESTURE_WAKEUP_MODE_UP_DIRECT_FLAG; + + DBG("Light up screen by UP_DIRECT gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_UP, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_UP, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x61: + _gGestureWakeupValue = GESTURE_WAKEUP_MODE_DOWN_DIRECT_FLAG; + + DBG("Light up screen by DOWN_DIRECT gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_DOWN, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_DOWN, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x62: + _gGestureWakeupValue = GESTURE_WAKEUP_MODE_LEFT_DIRECT_FLAG; + + DBG("Light up screen by LEFT_DIRECT gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_LEFT, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_LEFT, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x63: + _gGestureWakeupValue = GESTURE_WAKEUP_MODE_RIGHT_DIRECT_FLAG; + + DBG("Light up screen by RIGHT_DIRECT gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_RIGHT, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_RIGHT, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x64: + _gGestureWakeupValue = GESTURE_WAKEUP_MODE_m_CHARACTER_FLAG; + + DBG("Light up screen by m_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_M, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_M, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x65: + _gGestureWakeupValue = GESTURE_WAKEUP_MODE_W_CHARACTER_FLAG; + + DBG("Light up screen by W_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_W, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_W, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x66: + _gGestureWakeupValue = GESTURE_WAKEUP_MODE_C_CHARACTER_FLAG; + + DBG("Light up screen by C_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_C, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_C, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x67: + _gGestureWakeupValue = GESTURE_WAKEUP_MODE_e_CHARACTER_FLAG; + + DBG("Light up screen by e_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_E, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_E, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x68: + _gGestureWakeupValue = GESTURE_WAKEUP_MODE_V_CHARACTER_FLAG; + + DBG("Light up screen by V_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_V, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_V, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x69: + _gGestureWakeupValue = GESTURE_WAKEUP_MODE_O_CHARACTER_FLAG; + + DBG("Light up screen by O_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_O, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_O, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x6A: + _gGestureWakeupValue = GESTURE_WAKEUP_MODE_S_CHARACTER_FLAG; + + DBG("Light up screen by S_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_S, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_S, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x6B: + _gGestureWakeupValue = GESTURE_WAKEUP_MODE_Z_CHARACTER_FLAG; + + DBG("Light up screen by Z_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_Z, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_Z, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + default: + _gGestureWakeupValue = 0; + break; + } + + DBG("_gGestureWakeupValue = 0x%x\n", _gGestureWakeupValue); + } + else + { + DBG("gesture wakeup packet format is incorrect.\n"); + } + + return -1; + } +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + + DBG("received raw data from touch panel as following:\n"); + DBG("pPacket[0]=%x \n pPacket[1]=%x pPacket[2]=%x pPacket[3]=%x pPacket[4]=%x \n pPacket[5]=%x pPacket[6]=%x pPacket[7]=%x \n", \ + pPacket[0], pPacket[1], pPacket[2], pPacket[3], pPacket[4], pPacket[5], pPacket[6], pPacket[7]); + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + if ((pPacket[nCheckSumIndex] == nCheckSum) && (pPacket[0] == 0x52)) // check the checksum of packet +#else + if ((pPacket[nLength-1] == nCheckSum) && (pPacket[0] == 0x52)) // check the checksum of packet +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + { + nX = (((pPacket[1] & 0xF0) << 4) | pPacket[2]); // parse the packet to coordinate + nY = (((pPacket[1] & 0x0F) << 8) | pPacket[3]); + + nDeltaX = (((pPacket[4] & 0xF0) << 4) | pPacket[5]); + nDeltaY = (((pPacket[4] & 0x0F) << 8) | pPacket[6]); + + DBG("[x,y]=[%d,%d]\n", nX, nY); + DBG("[delta_x,delta_y]=[%d,%d]\n", nDeltaX, nDeltaY); + +#ifdef CONFIG_SWAP_X_Y + nTempY = nX; + nTempX = nY; + nX = nTempX; + nY = nTempY; + + nTempY = nDeltaX; + nTempX = nDeltaY; + nDeltaX = nTempX; + nDeltaY = nTempY; +#endif + +#ifdef CONFIG_REVERSE_X + nX = 2047 - nX; + nDeltaX = 4095 - nDeltaX; +#endif + +#ifdef CONFIG_REVERSE_Y + nY = 2047 - nY; + nDeltaY = 4095 - nDeltaY; +#endif + + /* + * pPacket[0]:id, pPacket[1]~pPacket[3]:the first point abs, pPacket[4]~pPacket[6]:the relative distance between the first point abs and the second point abs + * when pPacket[1]~pPacket[4], pPacket[6] is 0xFF, keyevent, pPacket[5] to judge which key press. + * pPacket[1]~pPacket[6] all are 0xFF, release touch + */ + if ((pPacket[1] == 0xFF) && (pPacket[2] == 0xFF) && (pPacket[3] == 0xFF) && (pPacket[4] == 0xFF) && (pPacket[6] == 0xFF)) + { + pInfo->tPoint[0].nX = 0; // final X coordinate + pInfo->tPoint[0].nY = 0; // final Y coordinate + + if ((pPacket[5] != 0x00) && (pPacket[5] != 0xFF)) /* pPacket[5] is key value */ + { /* 0x00 is key up, 0xff is touch screen up */ + DBG("touch key down pPacket[5]=%d\n", pPacket[5]); + pInfo->nFingerNum = 1; + pInfo->nTouchKeyCode = pPacket[5]; + pInfo->nTouchKeyMode = 1; + +#if 1 + pInfo->nFingerNum = 1; + pInfo->nTouchKeyCode = 0; + pInfo->nTouchKeyMode = 0; + + if (pPacket[5] == 1) // TOUCH_KEY_MENU + { + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[0][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[0][1]; + } + else if (pPacket[5] == 2) // TOUCH_KEY_BACK + { + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[2][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[2][1]; + } + else if (pPacket[5] == 4) // TOUCH_KEY_HOME + { + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[1][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[1][1]; + } + else + { + DBG("multi-key is pressed.\n"); + return -1; + } +#endif //CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE + } + else + { /* key up or touch up */ + DBG("touch end\n"); + pInfo->nFingerNum = 0; //touch end + pInfo->nTouchKeyCode = 0; + pInfo->nTouchKeyMode = 0; + } + } + else + { + pInfo->nTouchKeyMode = 0; //Touch on screen... + +// if ((nDeltaX == 0) && (nDeltaY == 0)) + if( +#ifdef CONFIG_REVERSE_X + (nDeltaX == 4095) +#else + (nDeltaX == 0) +#endif + && +#ifdef CONFIG_REVERSE_Y + (nDeltaY == 4095) +#else + (nDeltaY == 0) +#endif + ) + { /* one touch point */ + pInfo->nFingerNum = 1; // one touch + pInfo->tPoint[0].nX = (nX * TOUCH_SCREEN_X_MAX) / TPD_WIDTH; + pInfo->tPoint[0].nY = (nY * TOUCH_SCREEN_Y_MAX) / TPD_HEIGHT; + DBG("[%s]: [x,y]=[%d,%d]\n", __func__, nX, nY); + DBG("[%s]: point[x,y]=[%d,%d]\n", __func__, pInfo->tPoint[0].nX, pInfo->tPoint[0].nY); + } + else + { /* two touch points */ + u32 nX2, nY2; + + pInfo->nFingerNum = 2; // two touch + /* Finger 1 */ + pInfo->tPoint[0].nX = (nX * TOUCH_SCREEN_X_MAX) / TPD_WIDTH; + pInfo->tPoint[0].nY = (nY * TOUCH_SCREEN_Y_MAX) / TPD_HEIGHT; + DBG("[%s]: point1[x,y]=[%d,%d]\n", __func__, pInfo->tPoint[0].nX, pInfo->tPoint[0].nY); + /* Finger 2 */ + if (nDeltaX > 2048) // transform the unsigned value to signed value + { + nDeltaX -= 4096; + } + + if (nDeltaY > 2048) + { + nDeltaY -= 4096; + } + + nX2 = (u32)(nX + nDeltaX); + nY2 = (u32)(nY + nDeltaY); + + pInfo->tPoint[1].nX = (nX2 * TOUCH_SCREEN_X_MAX) / TPD_WIDTH; + pInfo->tPoint[1].nY = (nY2 * TOUCH_SCREEN_Y_MAX) / TPD_HEIGHT; + DBG("[%s]: point2[x,y]=[%d,%d]\n", __func__, pInfo->tPoint[1].nX, pInfo->tPoint[1].nY); + } + } + } +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + else if (pPacket[nCheckSumIndex] == nCheckSum && pPacket[0] == 0x62) + { + nX = ((pPacket[1] << 8) | pPacket[2]); // Position_X + nY = ((pPacket[3] << 8) | pPacket[4]); // Position_Y + + nDeltaX = ((pPacket[13] << 8) | pPacket[14]); // Distance_X + nDeltaY = ((pPacket[15] << 8) | pPacket[16]); // Distance_Y + + DBG("[x,y]=[%d,%d]\n", nX, nY); + DBG("[delta_x,delta_y]=[%d,%d]\n", nDeltaX, nDeltaY); + +#ifdef CONFIG_SWAP_X_Y + nTempY = nX; + nTempX = nY; + nX = nTempX; + nY = nTempY; + + nTempY = nDeltaX; + nTempX = nDeltaY; + nDeltaX = nTempX; + nDeltaY = nTempY; +#endif + +#ifdef CONFIG_REVERSE_X + nX = 2047 - nX; + nDeltaX = 4095 - nDeltaX; +#endif + +#ifdef CONFIG_REVERSE_Y + nY = 2047 - nY; + nDeltaY = 4095 - nDeltaY; +#endif + + /* + * pPacket[0]:id, pPacket[1]~pPacket[4]:the first point abs, pPacket[13]~pPacket[16]:the relative distance between the first point abs and the second point abs + * when pPacket[1]~pPacket[7] is 0xFF, keyevent, pPacket[8] to judge which key press. + * pPacket[1]~pPacket[8] all are 0xFF, release touch + */ + if ((pPacket[1] == 0xFF) && (pPacket[2] == 0xFF) && (pPacket[3] == 0xFF) && (pPacket[4] == 0xFF) && (pPacket[5] == 0xFF) && (pPacket[6] == 0xFF) && (pPacket[7] == 0xFF)) + { + pInfo->tPoint[0].nX = 0; // final X coordinate + pInfo->tPoint[0].nY = 0; // final Y coordinate + + if ((pPacket[8] != 0x00) && (pPacket[8] != 0xFF)) /* pPacket[8] is key value */ + { /* 0x00 is key up, 0xff is touch screen up */ + DBG("touch key down pPacket[8]=%d\n", pPacket[8]); + pInfo->nFingerNum = 1; + pInfo->nTouchKeyCode = pPacket[8]; + pInfo->nTouchKeyMode = 1; + +#if 1 + pInfo->nFingerNum = 1; + pInfo->nTouchKeyCode = 0; + pInfo->nTouchKeyMode = 0; + + if (pPacket[8] == 1) // TOUCH_KEY_MENU + { + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[0][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[0][1]; + } + else if (pPacket[8] == 2) // TOUCH_KEY_BACK + { + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[2][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[2][1]; + } + else if (pPacket[8] == 4) // TOUCH_KEY_HOME + { + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[1][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[1][1]; + } + else + { + DBG("multi-key is pressed.\n"); + return -1; + } +#endif //CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE + } + else + { /* key up or touch up */ + DBG("touch end\n"); + pInfo->nFingerNum = 0; //touch end + pInfo->nTouchKeyCode = 0; + pInfo->nTouchKeyMode = 0; + } + } + else + { + pInfo->nTouchKeyMode = 0; //Touch on screen... + +// if ((nDeltaX == 0) && (nDeltaY == 0)) + if ( +#ifdef CONFIG_REVERSE_X + (nDeltaX == 4095) +#else + (nDeltaX == 0) +#endif + && +#ifdef CONFIG_REVERSE_Y + (nDeltaY == 4095) +#else + (nDeltaY == 0) +#endif + ) + { /* one touch point */ + pInfo->nFingerNum = 1; // one touch + pInfo->tPoint[0].nX = (nX * TOUCH_SCREEN_X_MAX) / TPD_WIDTH; + pInfo->tPoint[0].nY = (nY * TOUCH_SCREEN_Y_MAX) / TPD_HEIGHT; + DBG("[%s]: [x,y]=[%d,%d]\n", __func__, nX, nY); + DBG("[%s]: point[x,y]=[%d,%d]\n", __func__, pInfo->tPoint[0].nX, pInfo->tPoint[0].nY); + } + else + { /* two touch points */ + u32 nX2, nY2; + + pInfo->nFingerNum = 2; // two touch + /* Finger 1 */ + pInfo->tPoint[0].nX = (nX * TOUCH_SCREEN_X_MAX) / TPD_WIDTH; + pInfo->tPoint[0].nY = (nY * TOUCH_SCREEN_Y_MAX) / TPD_HEIGHT; + DBG("[%s]: point1[x,y]=[%d,%d]\n", __func__, pInfo->tPoint[0].nX, pInfo->tPoint[0].nY); + /* Finger 2 */ + if (nDeltaX > 2048) // transform the unsigned value to signed value + { + nDeltaX -= 4096; + } + + if (nDeltaY > 2048) + { + nDeltaY -= 4096; + } + + nX2 = (u32)(nX + nDeltaX); + nY2 = (u32)(nY + nDeltaY); + + pInfo->tPoint[1].nX = (nX2 * TOUCH_SCREEN_X_MAX) / TPD_WIDTH; + pInfo->tPoint[1].nY = (nY2 * TOUCH_SCREEN_Y_MAX) / TPD_HEIGHT; + DBG("[%s]: point2[x,y]=[%d,%d]\n", __func__, pInfo->tPoint[1].nX, pInfo->tPoint[1].nY); + } + + // Notify android application to retrieve log data mode packet from device driver by sysfs. + if (g_TouchKObj != NULL) + { + char *pEnvp[2]; + s32 nRetVal = 0; + + pEnvp[0] = "STATUS=GET_PACKET"; + pEnvp[1] = NULL; + + nRetVal = kobject_uevent_env(g_TouchKObj, KOBJ_CHANGE, pEnvp); + DBG("kobject_uevent_env() nRetVal = %d\n", nRetVal); + } + } + } + else + { + if (pPacket[nCheckSumIndex] != nCheckSum) + { + DBG("WRONG CHECKSUM\n"); + return -1; + } + + if (g_FirmwareMode == FIRMWARE_MODE_DEMO_MODE && pPacket[0] != 0x52) + { + DBG("WRONG DEMO MODE HEADER\n"); + return -1; + } + else if (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE && pPacket[0] != 0x62) + { + DBG("WRONG DEBUG MODE HEADER\n"); + return -1; + } + else if (g_FirmwareMode == FIRMWARE_MODE_RAW_DATA_MODE && pPacket[0] != 0x62) + { + DBG("WRONG RAW DATA MODE HEADER\n"); + return -1; + } + } +#else + else + { + DBG("pPacket[0]=0x%x, pPacket[7]=0x%x, nCheckSum=0x%x\n", pPacket[0], pPacket[7], nCheckSum); + + if (pPacket[nLength-1] != nCheckSum) + { + DBG("WRONG CHECKSUM\n"); + return -1; + } + + if (pPacket[0] != 0x52) + { + DBG("WRONG DEMO MODE HEADER\n"); + return -1; + } + } +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + + return 0; +} + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +static void _DrvFwCtrlStoreFirmwareData(u8 *pBuf, u32 nSize) +{ + u32 nCount = nSize / 1024; + u32 i; + + DBG("*** %s() ***\n", __func__); + + if (nCount > 0) // nSize >= 1024 + { + for (i = 0; i < nCount; i ++) + { + memcpy(g_FwData[g_FwDataCount], pBuf+(i*1024), 1024); + + g_FwDataCount ++; + } + } + else // nSize < 1024 + { + if (nSize > 0) + { + memcpy(g_FwData[g_FwDataCount], pBuf, nSize); + + g_FwDataCount ++; + } + } + + DBG("*** g_FwDataCount = %d ***\n", g_FwDataCount); + + if (pBuf != NULL) + { + DBG("*** buf[0] = %c ***\n", pBuf[0]); + } +} + +//-------------------------Start of SW ID for MSG22XX----------------------------// + +static u32 _DrvFwCtrlMsg22xxRetrieveFirmwareCrcFromEFlash(EmemType_e eEmemType) // For MSG22XX +{ + u32 nRetVal = 0; + u16 nRegData1 = 0, nRegData2 = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + // RIU password + RegSet16BitValue(0x161A, 0xABBA); + + // Clear pce + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x80)); + + if (eEmemType == EMEM_MAIN) // Read main block CRC(48KB-4) from main block + { + RegSet16BitValue(0x1600, 0xBFFC); // Set start address for main block CRC + } + else if (eEmemType == EMEM_INFO) // Read info block CRC(512Byte-4) from info block + { + RegSet16BitValue(0x1600, 0xC1FC); // Set start address for info block CRC + } + + // Enable burst mode + RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); + + // Set pce + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x40)); + + RegSetLByteValue(0x160E, 0x01); + + nRegData1 = RegGet16BitValue(0x1604); + nRegData2 = RegGet16BitValue(0x1606); + + nRetVal = ((nRegData2 >> 8) & 0xFF) << 24; + nRetVal |= (nRegData2 & 0xFF) << 16; + nRetVal |= ((nRegData1 >> 8) & 0xFF) << 8; + nRetVal |= (nRegData1 & 0xFF); + + DBG("CRC = 0x%x\n", nRetVal); + + // Clear burst mode + RegSet16BitValue(0x160C, RegGet16BitValue(0x160C) & (~0x01)); + + RegSet16BitValue(0x1600, 0x0000); + + // Clear RIU password + RegSet16BitValue(0x161A, 0x0000); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static u32 _DrvFwCtrlMsg22xxRetrieveFrimwareCrcFromBinFile(u8 szTmpBuf[], EmemType_e eEmemType) // For MSG22XX +{ + u32 nRetVal = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + if (szTmpBuf != NULL) + { + if (eEmemType == EMEM_MAIN) // Read main block CRC(48KB-4) from bin file + { + nRetVal = szTmpBuf[0xBFFF] << 24; + nRetVal |= szTmpBuf[0xBFFE] << 16; + nRetVal |= szTmpBuf[0xBFFD] << 8; + nRetVal |= szTmpBuf[0xBFFC]; + } + else if (eEmemType == EMEM_INFO) // Read info block CRC(512Byte-4) from bin file + { + nRetVal = szTmpBuf[0xC1FF] << 24; + nRetVal |= szTmpBuf[0xC1FE] << 16; + nRetVal |= szTmpBuf[0xC1FD] << 8; + nRetVal |= szTmpBuf[0xC1FC]; + } + } + + return nRetVal; +} + +static u16 _DrvFwCtrlMsg22xxGetSwId(EmemType_e eEmemType) // For MSG22XX +{ + u16 nRetVal = 0; + u16 nRegData1 = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + // RIU password + RegSet16BitValue(0x161A, 0xABBA); + + // Clear pce + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x80)); + + if (eEmemType == EMEM_MAIN) // Read SW ID from main block + { + RegSet16BitValue(0x1600, 0xBFF4); // Set start address for main block SW ID + } + else if (eEmemType == EMEM_INFO) // Read SW ID from info block + { + RegSet16BitValue(0x1600, 0xC1EC); // Set start address for info block SW ID + } + + /* + Ex. SW ID in Main Block : + Major low byte at address 0xBFF4 + Major high byte at address 0xBFF5 + + SW ID in Info Block : + Major low byte at address 0xC1EC + Major high byte at address 0xC1ED + */ + + // Enable burst mode +// RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); + + // Set pce + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x40)); + + RegSetLByteValue(0x160E, 0x01); + + nRegData1 = RegGet16BitValue(0x1604); +// nRegData2 = RegGet16BitValue(0x1606); + + nRetVal = ((nRegData1 >> 8) & 0xFF) << 8; + nRetVal |= (nRegData1 & 0xFF); + + // Clear burst mode +// RegSet16BitValue(0x160C, RegGet16BitValue(0x160C) & (~0x01)); + + RegSet16BitValue(0x1600, 0x0000); + + // Clear RIU password + RegSet16BitValue(0x161A, 0x0000); + + DBG("SW ID = 0x%x\n", nRetVal); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static s32 _DrvFwCtrlMsg22xxUpdateFirmwareBySwId(void) // For MSG22XX +{ + s32 nRetVal = -1; + u32 nCrcInfoA = 0, nCrcInfoB = 0, nCrcMainA = 0, nCrcMainB = 0; + + DBG("*** %s() ***\n", __func__); + + DBG("_gIsUpdateInfoBlockFirst = %d, _gIsUpdateFirmware = 0x%x\n", _gIsUpdateInfoBlockFirst, _gIsUpdateFirmware); + + _DrvFwCtrlMsg22xxConvertFwDataTwoDimenToOneDimen(g_FwData, _gOneDimenFwData); + + if (_gIsUpdateInfoBlockFirst == 1) + { + if ((_gIsUpdateFirmware & 0x10) == 0x10) + { + _DrvFwCtrlMsg22xxEraseEmem(EMEM_INFO); + _DrvFwCtrlMsg22xxProgramEmem(EMEM_INFO); + + nCrcInfoA = _DrvFwCtrlMsg22xxRetrieveFrimwareCrcFromBinFile(_gOneDimenFwData, EMEM_INFO); + nCrcInfoB = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_INFO); + + DBG("nCrcInfoA = 0x%x, nCrcInfoB = 0x%x\n", nCrcInfoA, nCrcInfoB); + + if (nCrcInfoA == nCrcInfoB) + { + _DrvFwCtrlMsg22xxEraseEmem(EMEM_MAIN); + _DrvFwCtrlMsg22xxProgramEmem(EMEM_MAIN); + + nCrcMainA = _DrvFwCtrlMsg22xxRetrieveFrimwareCrcFromBinFile(_gOneDimenFwData, EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_MAIN); + + DBG("nCrcMainA = 0x%x, nCrcMainB = 0x%x\n", nCrcMainA, nCrcMainB); + + if (nCrcMainA == nCrcMainB) + { + _gIsUpdateFirmware = 0x00; + nRetVal = 0; + } + else + { + _gIsUpdateFirmware = 0x01; + } + } + else + { + _gIsUpdateFirmware = 0x11; + } + } + else if ((_gIsUpdateFirmware & 0x01) == 0x01) + { + _DrvFwCtrlMsg22xxEraseEmem(EMEM_MAIN); + _DrvFwCtrlMsg22xxProgramEmem(EMEM_MAIN); + + nCrcMainA = _DrvFwCtrlMsg22xxRetrieveFrimwareCrcFromBinFile(_gOneDimenFwData, EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_MAIN); + + DBG("nCrcMainA=0x%x, nCrcMainB=0x%x\n", nCrcMainA, nCrcMainB); + + if (nCrcMainA == nCrcMainB) + { + _gIsUpdateFirmware = 0x00; + nRetVal = 0; + } + else + { + _gIsUpdateFirmware = 0x01; + } + } + } + else //_gIsUpdateInfoBlockFirst == 0 + { + if ((_gIsUpdateFirmware & 0x10) == 0x10) + { + _DrvFwCtrlMsg22xxEraseEmem(EMEM_MAIN); + _DrvFwCtrlMsg22xxProgramEmem(EMEM_MAIN); + + nCrcMainA = _DrvFwCtrlMsg22xxRetrieveFrimwareCrcFromBinFile(_gOneDimenFwData, EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_MAIN); + + DBG("nCrcMainA=0x%x, nCrcMainB=0x%x\n", nCrcMainA, nCrcMainB); + + if (nCrcMainA == nCrcMainB) + { + _DrvFwCtrlMsg22xxEraseEmem(EMEM_INFO); + _DrvFwCtrlMsg22xxProgramEmem(EMEM_INFO); + + nCrcInfoA = _DrvFwCtrlMsg22xxRetrieveFrimwareCrcFromBinFile(_gOneDimenFwData, EMEM_INFO); + nCrcInfoB = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_INFO); + + DBG("nCrcInfoA=0x%x, nCrcInfoB=0x%x\n", nCrcInfoA, nCrcInfoB); + + if (nCrcInfoA == nCrcInfoB) + { + _gIsUpdateFirmware = 0x00; + nRetVal = 0; + } + else + { + _gIsUpdateFirmware = 0x01; + } + } + else + { + _gIsUpdateFirmware = 0x11; + } + } + else if ((_gIsUpdateFirmware & 0x01) == 0x01) + { + _DrvFwCtrlMsg22xxEraseEmem(EMEM_INFO); + _DrvFwCtrlMsg22xxProgramEmem(EMEM_INFO); + + nCrcInfoA = _DrvFwCtrlMsg22xxRetrieveFrimwareCrcFromBinFile(_gOneDimenFwData, EMEM_INFO); + nCrcInfoB = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_INFO); + + DBG("nCrcInfoA=0x%x, nCrcInfoB=0x%x\n", nCrcInfoA, nCrcInfoB); + + if (nCrcInfoA == nCrcInfoB) + { + _gIsUpdateFirmware = 0x00; + nRetVal = 0; + } + else + { + _gIsUpdateFirmware = 0x01; + } + } + } + + return nRetVal; +} + +void _DrvFwCtrlMsg22xxCheckFirmwareUpdateBySwId(void) // For MSG22XX +{ + u32 nCrcMainA, nCrcInfoA, nCrcMainB, nCrcInfoB; + u32 i; + u16 nUpdateBinMajor = 0, nUpdateBinMinor = 0; + u16 nMajor = 0, nMinor = 0; + u8 *pVersion = NULL; + Msg22xxSwId_e eSwId = MSG22XX_SW_ID_UNDEFINED; + + DBG("*** %s() ***\n", __func__); + + DrvPlatformLyrDisableFingerTouchReport(); + + DrvFwCtrlGetCustomerFirmwareVersion(&nMajor, &nMinor, &pVersion); + + nCrcMainA = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg22xxRetrieveFirmwareCrcFromEFlash(EMEM_MAIN); + + nCrcInfoA = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_INFO); + nCrcInfoB = _DrvFwCtrlMsg22xxRetrieveFirmwareCrcFromEFlash(EMEM_INFO); + + _gUpdateFirmwareBySwIdWorkQueue = create_singlethread_workqueue("update_firmware_by_sw_id"); + INIT_WORK(&_gUpdateFirmwareBySwIdWork, _DrvFwCtrlUpdateFirmwareBySwIdDoWork); + + DBG("nCrcMainA=0x%x, nCrcInfoA=0x%x, nCrcMainB=0x%x, nCrcInfoB=0x%x\n", nCrcMainA, nCrcInfoA, nCrcMainB, nCrcInfoB); + + if (nCrcMainA == nCrcMainB && nCrcInfoA == nCrcInfoB) // Case 1. Main Block:OK, Info Block:OK + { + eSwId = _DrvFwCtrlMsg22xxGetSwId(EMEM_MAIN); + + if (eSwId == MSG22XX_SW_ID_XXXX) + { + nUpdateBinMajor = msg2xxx_xxxx_update_bin[0xBFF5]<<8 | msg2xxx_xxxx_update_bin[0xBFF4]; + nUpdateBinMinor = msg2xxx_xxxx_update_bin[0xBFF7]<<8 | msg2xxx_xxxx_update_bin[0xBFF6]; + } + else if (eSwId == MSG22XX_SW_ID_YYYY) + { + nUpdateBinMajor = msg2xxx_yyyy_update_bin[0xBFF5]<<8 | msg2xxx_yyyy_update_bin[0xBFF4]; + nUpdateBinMinor = msg2xxx_yyyy_update_bin[0xBFF7]<<8 | msg2xxx_yyyy_update_bin[0xBFF6]; + } + else //eSwId == MSG22XX_SW_ID_UNDEFINED + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG22XX_SW_ID_UNDEFINED; + nUpdateBinMajor = 0; + nUpdateBinMinor = 0; + } + + DBG("eSwId=0x%x, nMajor=%d, nMinor=%d, nUpdateBinMajor=%d, nUpdateBinMinor=%d\n", eSwId, nMajor, nMinor, nUpdateBinMajor, nUpdateBinMinor); + + if (nUpdateBinMinor > nMinor) + { + if (eSwId < MSG22XX_SW_ID_UNDEFINED && eSwId != 0x0000 && eSwId != 0xFFFF) + { + if (eSwId == MSG22XX_SW_ID_XXXX) + { + for (i = 0; i < (MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE+1); i ++) + { + if (i < MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE) // i < 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_xxxx_update_bin[i*1024]), 1024); + } + else // i == 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_xxxx_update_bin[i*1024]), 512); + } + } + } + else if (eSwId == MSG22XX_SW_ID_YYYY) + { + for (i = 0; i < (MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE+1); i ++) + { + if (i < MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE) // i < 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_yyyy_update_bin[i*1024]), 1024); + } + else // i == 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_yyyy_update_bin[i*1024]), 512); + } + } + } + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after copying update firmware data to temp buffer + + _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; + _gIsUpdateInfoBlockFirst = 1; // Set 1 for indicating main block is complete + _gIsUpdateFirmware = 0x11; + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + return; + } + else + { + DBG("The sw id is invalid.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else + { + DBG("The update bin version is older than or equal to the current firmware version on e-flash.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else if (nCrcMainA == nCrcMainB && nCrcInfoA != nCrcInfoB) // Case 2. Main Block:OK, Info Block:FAIL + { + eSwId = _DrvFwCtrlMsg22xxGetSwId(EMEM_MAIN); + + DBG("eSwId=0x%x\n", eSwId); + + if (eSwId < MSG22XX_SW_ID_UNDEFINED && eSwId != 0x0000 && eSwId != 0xFFFF) + { + if (eSwId == MSG22XX_SW_ID_XXXX) + { + for (i = 0; i < (MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE+1); i ++) + { + if (i < MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE) // i < 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_xxxx_update_bin[i*1024]), 1024); + } + else // i == 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_xxxx_update_bin[i*1024]), 512); + } + } + } + else if (eSwId == MSG22XX_SW_ID_YYYY) + { + for (i = 0; i < (MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE+1); i ++) + { + if (i < MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE) // i < 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_yyyy_update_bin[i*1024]), 1024); + } + else // i == 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_yyyy_update_bin[i*1024]), 512); + } + } + } + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after copying update firmware data to temp buffer + + _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; + _gIsUpdateInfoBlockFirst = 1; // Set 1 for indicating main block is complete + _gIsUpdateFirmware = 0x11; + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + return; + } + else + { + DBG("The sw id is invalid.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else if (nCrcMainA != nCrcMainB && nCrcInfoA == nCrcInfoB) // Case 3. Main Block:FAIL, Info Block:OK + { + eSwId = _DrvFwCtrlMsg22xxGetSwId(EMEM_INFO); + + DBG("eSwId=0x%x\n", eSwId); + + if (eSwId < MSG22XX_SW_ID_UNDEFINED && eSwId != 0x0000 && eSwId != 0xFFFF) + { + if (eSwId == MSG22XX_SW_ID_XXXX) + { + for (i = 0; i < (MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE+1); i ++) + { + if (i < MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE) // i < 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_xxxx_update_bin[i*1024]), 1024); + } + else // i == 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_xxxx_update_bin[i*1024]), 512); + } + } + } + else if (eSwId == MSG22XX_SW_ID_YYYY) + { + for (i = 0; i < (MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE+1); i ++) + { + if (i < MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE) // i < 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_yyyy_update_bin[i*1024]), 1024); + } + else // i == 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_yyyy_update_bin[i*1024]), 512); + } + } + } + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after copying update firmware data to temp buffer + + _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; + _gIsUpdateInfoBlockFirst = 0; // Set 0 for indicating main block is broken + _gIsUpdateFirmware = 0x11; + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + return; + } + else + { + DBG("The sw id is invalid.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else // Case 4. Main Block:FAIL, Info Block:FAIL + { + DBG("Main block and Info block are broken.\n"); + DBG("Go to normal boot up process.\n"); + } + + DrvPlatformLyrTouchDeviceResetHw(); + + DrvPlatformLyrEnableFingerTouchReport(); +} + +//-------------------------End of SW ID for MSG22XX----------------------------// + +//-------------------------Start of SW ID for MSG21XXA----------------------------// + +static u32 _DrvFwCtrlMsg21xxaCalculateMainCrcFromEFlash(void) // For MSG21XXA +{ + u32 nRetVal = 0; + u16 nRegData = 0; + + DBG("*** %s() ***\n", __func__); + + DrvPlatformLyrTouchDeviceResetHw(); + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(20); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop Watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // cmd + RegSet16BitValue(0x3CE4, 0xDF4C); //bank:reg_PIU_MISC_0, addr:h0072 + + // TP SW reset + RegSet16BitValue(0x1E04, 0x7d60); //bank:chip, addr:h0002 + RegSet16BitValue(0x1E04, 0x829F); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + + mdelay(20); + + // Polling 0x3CE4 is 0x9432 + do + { + nRegData = RegGet16BitValue(0x3CE4); //bank:reg_PIU_MISC_0, addr:h0072 + } while (nRegData != 0x9432); + + // Read calculated main block CRC from register + nRetVal = RegGet16BitValue(0x3C80); + nRetVal = (nRetVal << 16) | RegGet16BitValue(0x3C82); + + DBG("Main Block CRC = 0x%x\n", nRetVal); + + return nRetVal; +} + +static u32 _DrvFwCtrlMsg21xxaRetrieveMainCrcFromMainBlock(void) // For MSG21XXA +{ + u32 nRetVal = 0; + u16 nRegData = 0; + u8 szDbBusTxData[5] = {0}; + u8 szDbBusRxData[4] = {0}; + + DBG("*** %s() ***\n", __func__); + + DrvPlatformLyrTouchDeviceResetHw(); + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(20); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // cmd + RegSet16BitValue(0x3CE4, 0xA4AB); //bank:reg_PIU_MISC_0, addr:h0072 + + // TP SW reset + RegSet16BitValue(0x1E04, 0x7d60); //bank:chip, addr:h0002 + RegSet16BitValue(0x1E04, 0x829F); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + + mdelay(20); + + // Polling 0x3CE4 is 0x5B58 + do + { + nRegData = RegGet16BitValue(0x3CE4); //bank:reg_PIU_MISC_0, addr:h0072 + } while (nRegData != 0x5B58); + + // Read main block CRC from main block + szDbBusTxData[0] = 0x72; + szDbBusTxData[1] = 0x7F; + szDbBusTxData[2] = 0xFC; + szDbBusTxData[3] = 0x00; + szDbBusTxData[4] = 0x04; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 5); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 4); + + nRetVal = szDbBusRxData[0]; + nRetVal = (nRetVal << 8) | szDbBusRxData[1]; + nRetVal = (nRetVal << 8) | szDbBusRxData[2]; + nRetVal = (nRetVal << 8) | szDbBusRxData[3]; + + DBG("CRC = 0x%x\n", nRetVal); + + return nRetVal; +} + +static u16 _DrvFwCtrlMsg21xxaGetSwId(EmemType_e eEmemType) // For MSG21XXA +{ + u16 nRetVal = 0; + u16 nRegData = 0; + u8 szDbBusTxData[5] = {0}; + u8 szDbBusRxData[4] = {0}; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DrvPlatformLyrTouchDeviceResetHw(); + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(20); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // cmd + RegSet16BitValue(0x3CE4, 0xA4AB); //bank:reg_PIU_MISC_0, addr:h0072 + + // TP SW reset + RegSet16BitValue(0x1E04, 0x7d60); //bank:chip, addr:h0002 + RegSet16BitValue(0x1E04, 0x829F); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + + mdelay(20); + + // Polling 0x3CE4 is 0x5B58 + do + { + nRegData = RegGet16BitValue(0x3CE4); //bank:reg_PIU_MISC_0, addr:h0072 + } while (nRegData != 0x5B58); + + szDbBusTxData[0] = 0x72; + if (eEmemType == EMEM_MAIN) // Read SW ID from main block + { + szDbBusTxData[1] = 0x7F; + szDbBusTxData[2] = 0x55; + } + else if (eEmemType == EMEM_INFO) // Read SW ID from info block + { + szDbBusTxData[1] = 0x83; + szDbBusTxData[2] = 0x00; + } + szDbBusTxData[3] = 0x00; + szDbBusTxData[4] = 0x04; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 5); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 4); + + DBG("szDbBusRxData[0,1,2,3] = 0x%x,0x%x,0x%x,0x%x\n", szDbBusRxData[0], szDbBusRxData[1], szDbBusRxData[2], szDbBusRxData[3]); + + if ((szDbBusRxData[0] >= 0x30 && szDbBusRxData[0] <= 0x39) + &&(szDbBusRxData[1] >= 0x30 && szDbBusRxData[1] <= 0x39) + &&(szDbBusRxData[2] >= 0x31 && szDbBusRxData[2] <= 0x39)) + { + nRetVal = (szDbBusRxData[0]-0x30)*100+(szDbBusRxData[1]-0x30)*10+(szDbBusRxData[2]-0x30); + } + + DBG("SW ID = 0x%x\n", nRetVal); + + return nRetVal; +} + +static s32 _DrvFwCtrlMsg21xxaUpdateFirmwareBySwId(u8 szFwData[][1024], EmemType_e eEmemType) // For MSG21XXA +{ + u32 i, j, nCalculateCrcSize; + u32 nCrcMain = 0, nCrcMainTp = 0; + u32 nCrcInfo = 0, nCrcInfoTp = 0; + u32 nCrcTemp = 0; + u16 nRegData = 0; + + DBG("*** %s() ***\n", __func__); + + nCrcMain = 0xffffffff; + nCrcInfo = 0xffffffff; + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaAlloc(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + // erase main + _DrvFwCtrlEraseEmemC33(EMEM_MAIN); + mdelay(1000); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(300); + + ///////////////////////// + // Program + ///////////////////////// + + // Polling 0x3CE4 is 0x1C70 + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x1C70); + } + + switch (eEmemType) + { + case EMEM_ALL: + RegSet16BitValue(0x3CE4, 0xE38F); // for all blocks + break; + case EMEM_MAIN: + RegSet16BitValue(0x3CE4, 0x7731); // for main block + break; + case EMEM_INFO: + RegSet16BitValue(0x3CE4, 0x7731); // for info block + + RegSetLByteValue(0x0FE6, 0x01); + + RegSetLByteValue(0x3CE4, 0xC5); + RegSetLByteValue(0x3CE5, 0x78); + + RegSetLByteValue(0x1E04, 0x9F); + RegSetLByteValue(0x1E05, 0x82); + + RegSetLByteValue(0x0FE6, 0x00); + mdelay(100); + break; + } + + // Polling 0x3CE4 is 0x2F43 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x2F43); + + // Calculate CRC 32 + DrvCommonCrcInitTable(); + + if (eEmemType == EMEM_ALL) + { + nCalculateCrcSize = MSG21XXA_FIRMWARE_WHOLE_SIZE; + } + else if (eEmemType == EMEM_MAIN) + { + nCalculateCrcSize = MSG21XXA_FIRMWARE_MAIN_BLOCK_SIZE; + } + else if (eEmemType == EMEM_INFO) + { + nCalculateCrcSize = MSG21XXA_FIRMWARE_INFO_BLOCK_SIZE; + } + else + { + nCalculateCrcSize = 0; + } + + for (i = 0; i < nCalculateCrcSize; i ++) + { + if (eEmemType == EMEM_INFO) + { + i = 32; + } + + if (i < 32) // emem_main + { + if (i == 31) + { + szFwData[i][1014] = 0x5A; + szFwData[i][1015] = 0xA5; + + for (j = 0; j < 1016; j ++) + { + nCrcMain = DrvCommonCrcGetValue(szFwData[i][j], nCrcMain); + } + + nCrcTemp = nCrcMain; + nCrcTemp = nCrcTemp ^ 0xffffffff; + + DBG("nCrcTemp=%x\n", nCrcTemp); // add for debug + + for (j = 0; j < 4; j ++) + { + szFwData[i][1023-j] = ((nCrcTemp>>(8*j)) & 0xFF); + + DBG("((nCrcTemp>>(8*%d)) & 0xFF)=%x\n", j, ((nCrcTemp>>(8*j)) & 0xFF)); // add for debug + DBG("Update main clock crc32 into bin buffer szFwData[%d][%d]=%x\n", i, (1020+j), szFwData[i][1020+j]); + } + } + else + { + for (j = 0; j < 1024; j ++) + { + nCrcMain = DrvCommonCrcGetValue(szFwData[i][j], nCrcMain); + } + } + } + else // emem_info + { + for (j = 0; j < 1024; j ++) + { + nCrcInfo = DrvCommonCrcGetValue(szFwData[i][j], nCrcInfo); + } + + if (eEmemType == EMEM_MAIN) + { + break; + } + } + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + for (j = 0; j < 8; j ++) + { + IicWriteData(SLAVE_I2C_ID_DWI2C, &szFwData[i][j*128], 128); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + IicWriteData(SLAVE_I2C_ID_DWI2C, szFwData[i], 1024); +#endif + + // Polling 0x3CE4 is 0xD0BC + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0xD0BC); + + RegSet16BitValue(0x3CE4, 0x2F43); + } + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + // write file done and check crc + RegSet16BitValue(0x3CE4, 0x1380); + } + mdelay(10); + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + // Polling 0x3CE4 is 0x9432 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x9432); + } + + nCrcMain = nCrcMain ^ 0xffffffff; + nCrcInfo = nCrcInfo ^ 0xffffffff; + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + // CRC Main from TP + nCrcMainTp = RegGet16BitValue(0x3C80); + nCrcMainTp = (nCrcMainTp << 16) | RegGet16BitValue(0x3C82); + } + + if (eEmemType == EMEM_ALL) + { + // CRC Info from TP + nCrcInfoTp = RegGet16BitValue(0x3CA0); + nCrcInfoTp = (nCrcInfoTp << 16) | RegGet16BitValue(0x3CA2); + } + + DBG("nCrcMain=0x%x, nCrcInfo=0x%x, nCrcMainTp=0x%x, nCrcInfoTp=0x%x\n", nCrcMain, nCrcInfo, nCrcMainTp, nCrcInfoTp); + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + DrvPlatformLyrTouchDeviceResetHw(); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaFree(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + if (nCrcMainTp != nCrcMain) + { + DBG("Update FAILED\n"); + + return -1; + } + } + + if (eEmemType == EMEM_ALL) + { + if (nCrcInfoTp != nCrcInfo) + { + DBG("Update FAILED\n"); + + return -1; + } + } + + DBG("Update SUCCESS\n"); + + return 0; +} + +void _DrvFwCtrlMsg21xxaCheckFirmwareUpdateBySwId(void) // For MSG21XXA +{ + u32 nCrcMainA, nCrcMainB; + u32 i; + u16 nUpdateBinMajor = 0, nUpdateBinMinor = 0; + u16 nMajor = 0, nMinor = 0; + u8 nIsCompareVersion = 0; + u8 *pVersion = NULL; + Msg21xxaSwId_e eMainSwId = MSG21XXA_SW_ID_UNDEFINED, eInfoSwId = MSG21XXA_SW_ID_UNDEFINED, eSwId = MSG21XXA_SW_ID_UNDEFINED; + + DBG("*** %s() ***\n", __func__); + + DrvPlatformLyrDisableFingerTouchReport(); + msleep(100); + DrvFwCtrlGetCustomerFirmwareVersion(&nMajor, &nMinor, &pVersion); + + nCrcMainA = _DrvFwCtrlMsg21xxaCalculateMainCrcFromEFlash(); + nCrcMainB = _DrvFwCtrlMsg21xxaRetrieveMainCrcFromMainBlock(); + + _gUpdateFirmwareBySwIdWorkQueue = create_singlethread_workqueue("update_firmware_by_sw_id"); + INIT_WORK(&_gUpdateFirmwareBySwIdWork, _DrvFwCtrlUpdateFirmwareBySwIdDoWork); + + DBG("nCrcMainA=0x%x, nCrcMainB=0x%x\n", nCrcMainA, nCrcMainB); + + if (nCrcMainA == nCrcMainB) + { + eMainSwId = _DrvFwCtrlMsg21xxaGetSwId(EMEM_MAIN); + eInfoSwId = _DrvFwCtrlMsg21xxaGetSwId(EMEM_INFO); + + DBG("Check firmware integrity success\n"); + DBG("eMainSwId=0x%x, eInfoSwId=0x%x\n", eMainSwId, eInfoSwId); + + if (eMainSwId == eInfoSwId) + { + eSwId = eMainSwId; + nIsCompareVersion = 1; + } + else + { + eSwId = eInfoSwId; + nIsCompareVersion = 0; + } + + if (eSwId == MSG21XXA_SW_ID_XXXX) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + nUpdateBinMajor = msg2xxx_xxxx_update_bin[31][0x34F]<<8 | msg2xxx_xxxx_update_bin[31][0x34E]; + nUpdateBinMinor = msg2xxx_xxxx_update_bin[31][0x351]<<8 | msg2xxx_xxxx_update_bin[31][0x350]; +#else // By one dimensional array + nUpdateBinMajor = msg2xxx_xxxx_update_bin[0x7F4F]<<8 | msg2xxx_xxxx_update_bin[0x7F4E]; + nUpdateBinMinor = msg2xxx_xxxx_update_bin[0x7F51]<<8 | msg2xxx_xxxx_update_bin[0x7F50]; +#endif + } + else if (eSwId == MSG21XXA_SW_ID_YYYY) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + nUpdateBinMajor = msg2xxx_yyyy_update_bin[31][0x34F]<<8 | msg2xxx_yyyy_update_bin[31][0x34E]; + nUpdateBinMinor = msg2xxx_yyyy_update_bin[31][0x351]<<8 | msg2xxx_yyyy_update_bin[31][0x350]; +#else // By one dimensional array + nUpdateBinMajor = msg2xxx_yyyy_update_bin[0x7F4F]<<8 | msg2xxx_yyyy_update_bin[0x7F4E]; + nUpdateBinMinor = msg2xxx_yyyy_update_bin[0x7F51]<<8 | msg2xxx_yyyy_update_bin[0x7F50]; +#endif + } + else //eSwId == MSG21XXA_SW_ID_UNDEFINED + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG21XXA_SW_ID_UNDEFINED; + nUpdateBinMajor = 0; + nUpdateBinMinor = 0; + } + + DBG("eSwId=0x%x, nMajor=%d, nMinor=%d, nUpdateBinMajor=%d, nUpdateBinMinor=%d\n", eSwId, nMajor, nMinor, nUpdateBinMajor, nUpdateBinMinor); + + if ((nUpdateBinMinor > nMinor && nIsCompareVersion == 1) || (nIsCompareVersion == 0)) + { + if (eSwId < MSG21XXA_SW_ID_UNDEFINED && eSwId != 0xFFFF) + { + if (eSwId == MSG21XXA_SW_ID_XXXX) + { + for (i = 0; i < MSG21XXA_FIRMWARE_MAIN_BLOCK_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg2xxx_xxxx_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_xxxx_update_bin[i*1024]), 1024); +#endif + } + } + else if (eSwId == MSG21XXA_SW_ID_YYYY) + { + for (i = 0; i < MSG21XXA_FIRMWARE_MAIN_BLOCK_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg2xxx_yyyy_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_yyyy_update_bin[i*1024]), 1024); +#endif + } + } + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after copying update firmware data to temp buffer + + _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + return; + } + else + { + DBG("The sw id is invalid.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else + { + DBG("The update bin version is older than or equal to the current firmware version on e-flash.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else + { + eSwId = _DrvFwCtrlMsg21xxaGetSwId(EMEM_INFO); + + DBG("Check firmware integrity failed\n"); + DBG("eSwId=0x%x\n", eSwId); + + if (eSwId < MSG21XXA_SW_ID_UNDEFINED && eSwId != 0xFFFF) + { + if (eSwId == MSG21XXA_SW_ID_XXXX) + { + for (i = 0; i < MSG21XXA_FIRMWARE_MAIN_BLOCK_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg2xxx_xxxx_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_xxxx_update_bin[i*1024]), 1024); +#endif + } + } + else if (eSwId == MSG21XXA_SW_ID_YYYY) + { + for (i = 0; i < MSG21XXA_FIRMWARE_MAIN_BLOCK_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg2xxx_yyyy_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg2xxx_yyyy_update_bin[i*1024]), 1024); +#endif + } + } + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after copying update firmware data to temp buffer + + _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + return; + } + else + { + DBG("The sw id is invalid.\n"); + DBG("Go to normal boot up process.\n"); + } + } + + DrvPlatformLyrTouchDeviceResetHw(); + + DrvPlatformLyrEnableFingerTouchReport(); +} + +//-------------------------End of SW ID for MSG21XXA----------------------------// + +static void _DrvFwCtrlUpdateFirmwareBySwIdDoWork(struct work_struct *pWork) +{ + s32 nRetVal = 0; + + DBG("*** %s() _gUpdateRetryCount = %d ***\n", __func__, _gUpdateRetryCount); + + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + nRetVal = _DrvFwCtrlMsg21xxaUpdateFirmwareBySwId(g_FwData, EMEM_MAIN); + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + nRetVal = _DrvFwCtrlMsg22xxUpdateFirmwareBySwId(); + } + else + { + DBG("This chip type (%d) does not support update firmware by sw id\n", g_ChipType); + + DrvPlatformLyrTouchDeviceResetHw(); + + DrvPlatformLyrEnableFingerTouchReport(); + + nRetVal = -1; + return; + } + + DBG("*** update firmware by sw id result = %d ***\n", nRetVal); + + if (nRetVal == 0) + { + DBG("update firmware by sw id success\n"); + + DrvPlatformLyrTouchDeviceResetHw(); + + DrvPlatformLyrEnableFingerTouchReport(); + + if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _gIsUpdateInfoBlockFirst = 0; + _gIsUpdateFirmware = 0x00; + } + } + else //nRetVal == -1 + { + _gUpdateRetryCount --; + if (_gUpdateRetryCount > 0) + { + DBG("_gUpdateRetryCount = %d\n", _gUpdateRetryCount); + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + } + else + { + DBG("update firmware by sw id failed\n"); + + DrvPlatformLyrTouchDeviceResetHw(); + + DrvPlatformLyrEnableFingerTouchReport(); + + if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _gIsUpdateInfoBlockFirst = 0; + _gIsUpdateFirmware = 0x00; + } + } + } +} + +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +//------------------------------------------------------------------------------// + +static void _DrvFwCtrlReadInfoC33(void) +{ + u8 szDbBusTxData[5] = {0}; + u16 nRegData = 0; +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + u32 i; +#endif + + DBG("*** %s() ***\n", __func__); + + mdelay(300); + + // Stop Watchdog + RegSetLByteValue(0x3C60, 0x55); + RegSetLByteValue(0x3C61, 0xAA); + + RegSet16BitValue(0x3CE4, 0xA4AB); + + RegSet16BitValue(0x1E04, 0x7d60); + + // TP SW reset + RegSet16BitValue(0x1E04, 0x829F); + mdelay(1); + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x0F; + szDbBusTxData[2] = 0xE6; + szDbBusTxData[3] = 0x00; + IicWriteData(SLAVE_I2C_ID_DBBUS, szDbBusTxData, 4); + mdelay(100); + + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x5B58); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + szDbBusTxData[0] = 0x72; + szDbBusTxData[3] = 0x00; + szDbBusTxData[4] = 0x80; // read 128 bytes + + for (i = 0; i < 8; i ++) + { + szDbBusTxData[1] = 0x80 + (((i*128)&0xff00)>>8); + szDbBusTxData[2] = (i*128)&0x00ff; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 5); + + mdelay(50); + + // Receive info data + IicReadData(SLAVE_I2C_ID_DWI2C, &_gDwIicInfoData[i*128], 128); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + szDbBusTxData[0] = 0x72; + szDbBusTxData[1] = 0x80; + szDbBusTxData[2] = 0x00; + szDbBusTxData[3] = 0x04; // read 1024 bytes + szDbBusTxData[4] = 0x00; + + IicWriteData(SLAVE_I2C_ID_DWI2C, szDbBusTxData, 5); + + mdelay(50); + + // Receive info data + IicReadData(SLAVE_I2C_ID_DWI2C, &_gDwIicInfoData[0], 1024); +#endif +} + +static s32 _DrvFwCtrlUpdateFirmwareC32(u8 szFwData[][1024], EmemType_e eEmemType) +{ + u32 i, j; + u32 nCrcMain, nCrcMainTp; + u32 nCrcInfo, nCrcInfoTp; + u32 nCrcTemp; + u16 nRegData = 0; + + DBG("*** %s() ***\n", __func__); + + nCrcMain = 0xffffffff; + nCrcInfo = 0xffffffff; + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaAlloc(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + ///////////////////////// + // Erase all + ///////////////////////// + _DrvFwCtrlEraseEmemC32(); + mdelay(1000); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(300); + + // Reset watch dog + RegSetLByteValue(0x3C60, 0x55); + RegSetLByteValue(0x3C61, 0xAA); + + ///////////////////////// + // Program + ///////////////////////// + + // Polling 0x3CE4 is 0x1C70 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x1C70); + + RegSet16BitValue(0x3CE4, 0xE38F); // for all-blocks + + // Polling 0x3CE4 is 0x2F43 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x2F43); + + // Calculate CRC 32 + DrvCommonCrcInitTable(); + + for (i = 0; i < 33; i ++) // total 33 KB : 2 byte per R/W + { + if (i < 32) // emem_main + { + if (i == 31) + { + szFwData[i][1014] = 0x5A; + szFwData[i][1015] = 0xA5; + + for (j = 0; j < 1016; j ++) + { + nCrcMain = DrvCommonCrcGetValue(szFwData[i][j], nCrcMain); + } + + nCrcTemp = nCrcMain; + nCrcTemp = nCrcTemp ^ 0xffffffff; + + DBG("nCrcTemp=%x\n", nCrcTemp); // add for debug + + for (j = 0; j < 4; j ++) + { + szFwData[i][1023-j] = ((nCrcTemp>>(8*j)) & 0xFF); + + DBG("((nCrcTemp>>(8*%d)) & 0xFF)=%x\n", j, ((nCrcTemp>>(8*j)) & 0xFF)); // add for debug + DBG("Update main clock crc32 into bin buffer szFwData[%d][%d]=%x\n", i, (1020+j), szFwData[i][1020+j]); + } + } + else + { + for (j = 0; j < 1024; j ++) + { + nCrcMain = DrvCommonCrcGetValue(szFwData[i][j], nCrcMain); + } + } + } + else // emem_info + { + for (j = 0; j < 1024; j ++) + { + nCrcInfo = DrvCommonCrcGetValue(szFwData[i][j], nCrcInfo); + } + } + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + for (j = 0; j < 8; j ++) + { + IicWriteData(SLAVE_I2C_ID_DWI2C, &szFwData[i][j*128], 128); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + IicWriteData(SLAVE_I2C_ID_DWI2C, szFwData[i], 1024); +#endif + + // Polling 0x3CE4 is 0xD0BC + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0xD0BC); + + RegSet16BitValue(0x3CE4, 0x2F43); + } + + // Write file done + RegSet16BitValue(0x3CE4, 0x1380); + + mdelay(10); + // Polling 0x3CE4 is 0x9432 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x9432); + + nCrcMain = nCrcMain ^ 0xffffffff; + nCrcInfo = nCrcInfo ^ 0xffffffff; + + // CRC Main from TP + nCrcMainTp = RegGet16BitValue(0x3C80); + nCrcMainTp = (nCrcMainTp << 16) | RegGet16BitValue(0x3C82); + + // CRC Info from TP + nCrcInfoTp = RegGet16BitValue(0x3CA0); + nCrcInfoTp = (nCrcInfoTp << 16) | RegGet16BitValue(0x3CA2); + + DBG("nCrcMain=0x%x, nCrcInfo=0x%x, nCrcMainTp=0x%x, nCrcInfoTp=0x%x\n", + nCrcMain, nCrcInfo, nCrcMainTp, nCrcInfoTp); + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + DrvPlatformLyrTouchDeviceResetHw(); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaFree(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + if ((nCrcMainTp != nCrcMain) || (nCrcInfoTp != nCrcInfo)) + { + DBG("Update FAILED\n"); + + return -1; + } + + DBG("Update SUCCESS\n"); + + return 0; +} + +static s32 _DrvFwCtrlUpdateFirmwareC33(u8 szFwData[][1024], EmemType_e eEmemType) +{ + u8 szLifeCounter[2]; + u32 i, j; + u32 nCrcMain, nCrcMainTp; + u32 nCrcInfo, nCrcInfoTp; + u32 nCrcTemp; + u16 nRegData = 0; + + DBG("*** %s() ***\n", __func__); + + nCrcMain = 0xffffffff; + nCrcInfo = 0xffffffff; + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaAlloc(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + _DrvFwCtrlReadInfoC33(); + + if (_gDwIicInfoData[0] == 'M' && _gDwIicInfoData[1] == 'S' && _gDwIicInfoData[2] == 'T' && _gDwIicInfoData[3] == 'A' && _gDwIicInfoData[4] == 'R' && _gDwIicInfoData[5] == 'T' && _gDwIicInfoData[6] == 'P' && _gDwIicInfoData[7] == 'C') + { + _gDwIicInfoData[8] = szFwData[32][8]; + _gDwIicInfoData[9] = szFwData[32][9]; + _gDwIicInfoData[10] = szFwData[32][10]; + _gDwIicInfoData[11] = szFwData[32][11]; + // updata life counter + szLifeCounter[1] = ((((_gDwIicInfoData[13] << 8) | _gDwIicInfoData[12]) + 1) >> 8) & 0xFF; + szLifeCounter[0] = (((_gDwIicInfoData[13] << 8) | _gDwIicInfoData[12]) + 1) & 0xFF; + _gDwIicInfoData[12] = szLifeCounter[0]; + _gDwIicInfoData[13] = szLifeCounter[1]; + + RegSet16BitValue(0x3CE4, 0x78C5); + RegSet16BitValue(0x1E04, 0x7d60); + // TP SW reset + RegSet16BitValue(0x1E04, 0x829F); + + mdelay(50); + + // Polling 0x3CE4 is 0x2F43 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x2F43); + + // Transmit lk info data +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + for (j = 0; j < 8; j ++) + { + IicWriteData(SLAVE_I2C_ID_DWI2C, &_gDwIicInfoData[j*128], 128); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + IicWriteData(SLAVE_I2C_ID_DWI2C, &_gDwIicInfoData[0], 1024); +#endif + + // Polling 0x3CE4 is 0xD0BC + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0xD0BC); + } + + // erase main + _DrvFwCtrlEraseEmemC33(EMEM_MAIN); + mdelay(1000); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(300); + + ///////////////////////// + // Program + ///////////////////////// + + // Polling 0x3CE4 is 0x1C70 + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x1C70); + } + + switch (eEmemType) + { + case EMEM_ALL: + RegSet16BitValue(0x3CE4, 0xE38F); // for all blocks + break; + case EMEM_MAIN: + RegSet16BitValue(0x3CE4, 0x7731); // for main block + break; + case EMEM_INFO: + RegSet16BitValue(0x3CE4, 0x7731); // for info block + + RegSetLByteValue(0x0FE6, 0x01); + + RegSetLByteValue(0x3CE4, 0xC5); + RegSetLByteValue(0x3CE5, 0x78); + + RegSetLByteValue(0x1E04, 0x9F); + RegSetLByteValue(0x1E05, 0x82); + + RegSetLByteValue(0x0FE6, 0x00); + mdelay(100); + break; + } + + // Polling 0x3CE4 is 0x2F43 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x2F43); + + // Calculate CRC 32 + DrvCommonCrcInitTable(); + + for (i = 0; i < 33; i ++) // total 33 KB : 2 byte per R/W + { + if (eEmemType == EMEM_INFO) + { + i = 32; + } + + if (i < 32) // emem_main + { + if (i == 31) + { + szFwData[i][1014] = 0x5A; + szFwData[i][1015] = 0xA5; + + for (j = 0; j < 1016; j ++) + { + nCrcMain = DrvCommonCrcGetValue(szFwData[i][j], nCrcMain); + } + + nCrcTemp = nCrcMain; + nCrcTemp = nCrcTemp ^ 0xffffffff; + + DBG("nCrcTemp=%x\n", nCrcTemp); // add for debug + + for (j = 0; j < 4; j ++) + { + szFwData[i][1023-j] = ((nCrcTemp>>(8*j)) & 0xFF); + + DBG("((nCrcTemp>>(8*%d)) & 0xFF)=%x\n", j, ((nCrcTemp>>(8*j)) & 0xFF)); // add for debug + DBG("Update main clock crc32 into bin buffer szFwData[%d][%d]=%x\n", i, (1020+j), szFwData[i][1020+j]); // add for debug + } + } + else + { + for (j = 0; j < 1024; j ++) + { + nCrcMain = DrvCommonCrcGetValue(szFwData[i][j], nCrcMain); + } + } + } + else // emem_info + { + for (j = 0; j < 1024; j ++) + { + nCrcInfo = DrvCommonCrcGetValue(_gDwIicInfoData[j], nCrcInfo); + } + + if (eEmemType == EMEM_MAIN) + { + break; + } + } + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + for (j = 0; j < 8; j ++) + { + IicWriteData(SLAVE_I2C_ID_DWI2C, &szFwData[i][j*128], 128); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + IicWriteData(SLAVE_I2C_ID_DWI2C, szFwData[i], 1024); +#endif + + // Polling 0x3CE4 is 0xD0BC + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0xD0BC); + + RegSet16BitValue(0x3CE4, 0x2F43); + } + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + // write file done and check crc + RegSet16BitValue(0x3CE4, 0x1380); + } + mdelay(10); + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + // Polling 0x3CE4 is 0x9432 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x9432); + } + + nCrcMain = nCrcMain ^ 0xffffffff; + nCrcInfo = nCrcInfo ^ 0xffffffff; + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + // CRC Main from TP + nCrcMainTp = RegGet16BitValue(0x3C80); + nCrcMainTp = (nCrcMainTp << 16) | RegGet16BitValue(0x3C82); + + // CRC Info from TP + nCrcInfoTp = RegGet16BitValue(0x3CA0); + nCrcInfoTp = (nCrcInfoTp << 16) | RegGet16BitValue(0x3CA2); + } + DBG("nCrcMain=0x%x, nCrcInfo=0x%x, nCrcMainTp=0x%x, nCrcInfoTp=0x%x\n", nCrcMain, nCrcInfo, nCrcMainTp, nCrcInfoTp); + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + DrvPlatformLyrTouchDeviceResetHw(); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaFree(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + if ((nCrcMainTp != nCrcMain) || (nCrcInfoTp != nCrcInfo)) + { + DBG("Update FAILED\n"); + + return -1; + } + } + + DBG("Update SUCCESS\n"); + + return 0; +} + +static s32 _DrvFwCtrlMsg22xxUpdateFirmware(u8 szFwData[][1024], EmemType_e eEmemType) +{ + u32 i, index; + u32 nCrcMain, nCrcMainTp; + u32 nCrcInfo, nCrcInfoTp; + u32 nRemainSize, nBlockSize, nSize; + u16 nRegData = 0; + u8 szDbBusTxData[1024] = {0}; +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + u32 nSizePerWrite = 125; +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + u32 nSizePerWrite = 1021; +#endif + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaAlloc(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + _DrvFwCtrlMsg22xxConvertFwDataTwoDimenToOneDimen(szFwData, _gOneDimenFwData); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + + DBG("Erase start\n"); + + // Stop mcu + RegSet16BitValue(0x0FE6, 0x0001); + + // Disable watchdog + RegSetLByteValue(0x3C60, 0x55); + RegSetLByteValue(0x3C61, 0xAA); + + // Set PROGRAM password + RegSetLByteValue(0x161A, 0xBA); + RegSetLByteValue(0x161B, 0xAB); + + if (eEmemType == EMEM_ALL) // 48KB + 512Byte + { + DBG("Erase all block\n"); + + // Clear pce + RegSetLByteValue(0x1618, 0x80); + mdelay(100); + + // Chip erase + RegSet16BitValue(0x160E, BIT3); + + DBG("Wait erase done flag\n"); + + do // Wait erase done flag + { + nRegData = RegGet16BitValue(0x1610); // Memory status + mdelay(50); + } while((nRegData & BIT1) != BIT1); + } + else if (eEmemType == EMEM_MAIN) // 48KB (32+8+8) + { + DBG("Erase main block\n"); + + for (i = 0; i < 3; i ++) + { + // Clear pce + RegSetLByteValue(0x1618, 0x80); + mdelay(10); + + if (i == 0) + { + RegSet16BitValue(0x1600, 0x0000); + } + else if (i == 1) + { + RegSet16BitValue(0x1600, 0x8000); + } + else if (i == 2) + { + RegSet16BitValue(0x1600, 0xA000); + } + + // Sector erase + RegSet16BitValue(0x160E, (RegGet16BitValue(0x160E) | BIT2)); + + DBG("Wait erase done flag\n"); + + do // Wait erase done flag + { + nRegData = RegGet16BitValue(0x1610); // Memory status + mdelay(50); + } while((nRegData & BIT1) != BIT1); + } + } + else if (eEmemType == EMEM_INFO) // 512Byte + { + DBG("Erase info block\n"); + + // Clear pce + RegSetLByteValue(0x1618, 0x80); + mdelay(10); + + RegSet16BitValue(0x1600, 0xC000); + + // Sector erase + RegSet16BitValue(0x160E, (RegGet16BitValue(0x160E) | BIT2)); + + DBG("Wait erase done flag\n"); + + do // Wait erase done flag + { + nRegData = RegGet16BitValue(0x1610); // Memory status + mdelay(50); + } while((nRegData & BIT1) != BIT1); + } + + DBG("Erase end\n"); + + // Hold reset pin before program + RegSetLByteValue(0x1E06, 0x00); + + ///////////////////////// + // Program + ///////////////////////// + + if (eEmemType == EMEM_ALL || eEmemType == EMEM_MAIN) // 48KB + { + DBG("Program main block start\n"); + + // Program main block + RegSet16BitValue(0x161A, 0xABBA); + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x80)); + + RegSet16BitValue(0x1600, 0x0000); // Set start address of main block + RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); // Enable burst mode + + // Program start + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x16; + szDbBusTxData[2] = 0x02; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3); + + szDbBusTxData[0] = 0x20; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 1); + + nRemainSize = MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE * 1024; //48KB + index = 0; + + while (nRemainSize > 0) + { + if (nRemainSize > nSizePerWrite) + { + nBlockSize = nSizePerWrite; + } + else + { + nBlockSize = nRemainSize; + } + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x16; + szDbBusTxData[2] = 0x02; + + nSize = 3; + + for (i = 0; i < nBlockSize; i ++) + { + szDbBusTxData[3+i] = _gOneDimenFwData[index*nSizePerWrite+i]; + nSize ++; + } + index ++; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], nSize); + + nRemainSize = nRemainSize - nBlockSize; + } + + // Program end + szDbBusTxData[0] = 0x21; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 1); + + nRegData = RegGet16BitValue(0x160C); + RegSet16BitValue(0x160C, nRegData & (~0x01)); + + DBG("Wait main block write done flag\n"); + + // Polling 0x1610 is 0x0002 + do + { + nRegData = RegGet16BitValue(0x1610); + nRegData = nRegData & BIT1; + mdelay(10); + + } while (nRegData != BIT1); // Wait write done flag + + DBG("Program main block end\n"); + } + + if (eEmemType == EMEM_ALL || eEmemType == EMEM_INFO) // 512 Byte + { + DBG("Program info block start\n"); + + // Program info block + RegSet16BitValue(0x161A, 0xABBA); + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x80)); + + RegSet16BitValue(0x1600, 0xC000); // Set start address of info block + RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); // Enable burst mode + + // Program start + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x16; + szDbBusTxData[2] = 0x02; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3); + + szDbBusTxData[0] = 0x20; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 1); + + nRemainSize = MSG22XX_FIRMWARE_INFO_BLOCK_SIZE; //512Byte + index = 0; + + while (nRemainSize > 0) + { + if (nRemainSize > nSizePerWrite) + { + nBlockSize = nSizePerWrite; + } + else + { + nBlockSize = nRemainSize; + } + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x16; + szDbBusTxData[2] = 0x02; + + nSize = 3; + + for (i = 0; i < nBlockSize; i ++) + { + szDbBusTxData[3+i] = _gOneDimenFwData[(MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE*1024)+(index*nSizePerWrite)+i]; + nSize ++; + } + index ++; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], nSize); + + nRemainSize = nRemainSize - nBlockSize; + } + + // Program end + szDbBusTxData[0] = 0x21; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 1); + + nRegData = RegGet16BitValue(0x160C); + RegSet16BitValue(0x160C, nRegData & (~0x01)); + + DBG("Wait info block write done flag\n"); + + // Polling 0x1610 is 0x0002 + do + { + nRegData = RegGet16BitValue(0x1610); + nRegData = nRegData & BIT1; + mdelay(10); + + } while (nRegData != BIT1); // Wait write done flag + + DBG("Program info block end\n"); + } + + if (eEmemType == EMEM_ALL || eEmemType == EMEM_MAIN) + { + // Get CRC 32 from updated firmware bin file + nCrcMain = _gOneDimenFwData[0xBFFF] << 24; + nCrcMain |= _gOneDimenFwData[0xBFFE] << 16; + nCrcMain |= _gOneDimenFwData[0xBFFD] << 8; + nCrcMain |= _gOneDimenFwData[0xBFFC]; + + // CRC Main from TP + DBG("Get Main CRC from TP\n"); + + nCrcMainTp = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_MAIN); + + DBG("nCrcMain=0x%x, nCrcMainTp=0x%x\n", nCrcMain, nCrcMainTp); + } + + if (eEmemType == EMEM_ALL || eEmemType == EMEM_INFO) + { + nCrcInfo = _gOneDimenFwData[0xC1FF] << 24; + nCrcInfo |= _gOneDimenFwData[0xC1FE] << 16; + nCrcInfo |= _gOneDimenFwData[0xC1FD] << 8; + nCrcInfo |= _gOneDimenFwData[0xC1FC]; + + // CRC Info from TP + DBG("Get Info CRC from TP\n"); + + nCrcInfoTp = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_INFO); + + DBG("nCrcInfo=0x%x, nCrcInfoTp=0x%x\n", nCrcInfo, nCrcInfoTp); + } + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaFree(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + if (eEmemType == EMEM_ALL) + { + if ((nCrcMainTp != nCrcMain) || (nCrcInfoTp != nCrcInfo)) + { + DBG("Update FAILED\n"); + + return -1; + } + } + else if (eEmemType == EMEM_MAIN) + { + if (nCrcMainTp != nCrcMain) + { + DBG("Update FAILED\n"); + + return -1; + } + } + else if (eEmemType == EMEM_INFO) + { + if (nCrcInfoTp != nCrcInfo) + { + DBG("Update FAILED\n"); + + return -1; + } + } + + DBG("Update SUCCESS\n"); + + return 0; +} + +static s32 _DrvFwCtrlUpdateFirmwareCash(u8 szFwData[][1024]) +{ + DBG("*** %s() ***\n", __func__); + + DBG("chip type = 0x%x\n", g_ChipType); + + if (g_ChipType == CHIP_TYPE_MSG21XXA) // (0x02) + { +// u16 nChipType; + u8 nChipVersion = 0; + + DrvPlatformLyrTouchDeviceResetHw(); + + // Erase TP Flash first + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(300); + + // Stop MCU + RegSetLByteValue(0x0FE6, 0x01); + + // Disable watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + ///////////////////////// + // Difference between C2 and C3 + ///////////////////////// + // c2:MSG2133(1) c32:MSG2133A(2) c33:MSG2138A(2) + // check ic type +// nChipType = RegGet16BitValue(0x1ECC) & 0xFF; + + // check ic version + nChipVersion = RegGet16BitValue(0x3CEA) & 0xFF; + + DBG("chip version = 0x%x\n", nChipVersion); + + if (nChipVersion == 3) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID + return _DrvFwCtrlMsg21xxaUpdateFirmwareBySwId(szFwData, EMEM_MAIN); +#else + return _DrvFwCtrlUpdateFirmwareC33(szFwData, EMEM_MAIN); +#endif + } + else + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID + return _DrvFwCtrlMsg21xxaUpdateFirmwareBySwId(szFwData, EMEM_MAIN); +#else + return _DrvFwCtrlUpdateFirmwareC32(szFwData, EMEM_ALL); +#endif + } + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) // (0x7A) + { +// _DrvFwCtrlMsg22xxGetTpVendorCode(_gTpVendorCode); + +// if (_gTpVendorCode[0] == 'C' && _gTpVendorCode[1] == 'N' && _gTpVendorCode[2] == 'T') // for specific TP vendor which store some important information in info block, only update firmware for main block, do not update firmware for info block. +// { +// return _DrvFwCtrlMsg22xxUpdateFirmware(szFwData, EMEM_MAIN); +// } +// else +// { + return _DrvFwCtrlMsg22xxUpdateFirmware(szFwData, EMEM_ALL); +// } + } + else // CHIP_TYPE_MSG21XX (0x01) + { + DBG("Can not update firmware. Catch-2 is no need to be maintained now.\n"); + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + return -1; + } +} + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +u8 DrvFwCtrlGetChipType(void) +{ + u8 nChipType = 0; + + DBG("*** %s() ***\n", __func__); + + //DrvPlatformLyrTouchDeviceResetHw(); + + // Erase TP Flash first + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(20); + + // Stop MCU + RegSetLByteValue(0x0FE6, 0x01); + + // Disable watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + ///////////////////////// + // Difference between C2 and C3 + ///////////////////////// + // c2:MSG2133(1) c32:MSG2133A(2) c33:MSG2138A(2) + // check ic type + nChipType = RegGet16BitValue(0x1ECC) & 0xFF; + + if (nChipType != CHIP_TYPE_MSG21XX && // (0x01) + nChipType != CHIP_TYPE_MSG21XXA && // (0x02) + nChipType != CHIP_TYPE_MSG26XXM && // (0x03) + nChipType != CHIP_TYPE_MSG22XX) // (0x7A) + { + nChipType = 0; + } + + DBG("*** Chip Type = 0x%x ***\n", nChipType); + + DrvPlatformLyrTouchDeviceResetHw(); + + return nChipType; +} + +void DrvFwCtrlGetCustomerFirmwareVersion(u16 *pMajor, u16 *pMinor, u8 **ppVersion) +{ + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG21XXA || g_ChipType == CHIP_TYPE_MSG21XX) + { + u8 szDbBusTxData[3] = {0}; + u8 szDbBusRxData[4] = {0}; + + szDbBusTxData[0] = 0x53; + szDbBusTxData[1] = 0x00; + + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + szDbBusTxData[2] = 0x2A; + } + else if (g_ChipType == CHIP_TYPE_MSG21XX) + { + szDbBusTxData[2] = 0x74; + } + else + { + szDbBusTxData[2] = 0x2A; + } + + mutex_lock(&g_Mutex); + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 4); + + mutex_unlock(&g_Mutex); + + *pMajor = (szDbBusRxData[1]<<8) + szDbBusRxData[0]; + *pMinor = (szDbBusRxData[3]<<8) + szDbBusRxData[2]; + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + u16 nRegData1, nRegData2; + + mutex_lock(&g_Mutex); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + // RIU password + RegSet16BitValue(0x161A, 0xABBA); + + // Clear pce + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x80)); + + RegSet16BitValue(0x1600, 0xBFF4); // Set start address for customer firmware version on main block + + // Enable burst mode +// RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); + + // Set pce + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x40)); + + RegSetLByteValue(0x160E, 0x01); + + nRegData1 = RegGet16BitValue(0x1604); + nRegData2 = RegGet16BitValue(0x1606); + + *pMajor = (((nRegData1 >> 8) & 0xFF) << 8) + (nRegData1 & 0xFF); + *pMinor = (((nRegData2 >> 8) & 0xFF) << 8) + (nRegData2 & 0xFF); + + // Clear burst mode +// RegSet16BitValue(0x160C, RegGet16BitValue(0x160C) & (~0x01)); + + RegSet16BitValue(0x1600, 0x0000); + + // Clear RIU password + RegSet16BitValue(0x161A, 0x0000); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + mdelay(100); + + mutex_unlock(&g_Mutex); + } + + DBG("*** major = %d ***\n", *pMajor); + DBG("*** minor = %d ***\n", *pMinor); + + if (*ppVersion == NULL) + { + *ppVersion = kzalloc(sizeof(u8)*6, GFP_KERNEL); + } + + sprintf(*ppVersion, "%03d%03d", *pMajor, *pMinor); +} + +void DrvFwCtrlGetPlatformFirmwareVersion(u8 **ppVersion) +{ + u32 i; + u16 nRegData1, nRegData2; + u8 szDbBusRxData[12] = {0}; + + DBG("*** %s() ***\n", __func__); + + mutex_lock(&g_Mutex); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + if (g_ChipType == CHIP_TYPE_MSG22XX) // Only MSG22XX support platform firmware version + { + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + // RIU password + RegSet16BitValue(0x161A, 0xABBA); + + // Clear pce + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x80)); + + RegSet16BitValue(0x1600, 0xC1F2); // Set start address for platform firmware version on info block(Actually, start reading from 0xC1F0) + + // Enable burst mode + RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); + + // Set pce + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x40)); + + for (i = 0; i < 3; i ++) + { + RegSetLByteValue(0x160E, 0x01); + + nRegData1 = RegGet16BitValue(0x1604); + nRegData2 = RegGet16BitValue(0x1606); + + szDbBusRxData[i*4+0] = (nRegData1 & 0xFF); + szDbBusRxData[i*4+1] = ((nRegData1 >> 8 ) & 0xFF); + +// DBG("szDbBusRxData[%d] = 0x%x , %c \n", i*4+0, szDbBusRxData[i*4+0], szDbBusRxData[i*4+0]); // add for debug +// DBG("szDbBusRxData[%d] = 0x%x , %c \n", i*4+1, szDbBusRxData[i*4+1], szDbBusRxData[i*4+1]); // add for debug + + szDbBusRxData[i*4+2] = (nRegData2 & 0xFF); + szDbBusRxData[i*4+3] = ((nRegData2 >> 8 ) & 0xFF); + +// DBG("szDbBusRxData[%d] = 0x%x , %c \n", i*4+2, szDbBusRxData[i*4+2], szDbBusRxData[i*4+2]); // add for debug +// DBG("szDbBusRxData[%d] = 0x%x , %c \n", i*4+3, szDbBusRxData[i*4+3], szDbBusRxData[i*4+3]); // add for debug + } + + // Clear burst mode + RegSet16BitValue(0x160C, RegGet16BitValue(0x160C) & (~0x01)); + + RegSet16BitValue(0x1600, 0x0000); + + // Clear RIU password + RegSet16BitValue(0x161A, 0x0000); + + if (*ppVersion == NULL) + { + *ppVersion = kzalloc(sizeof(u8)*10, GFP_KERNEL); + } + + sprintf(*ppVersion, "%c%c%c%c%c%c%c%c%c%c", szDbBusRxData[2], szDbBusRxData[3], szDbBusRxData[4], + szDbBusRxData[5], szDbBusRxData[6], szDbBusRxData[7], szDbBusRxData[8], szDbBusRxData[9], szDbBusRxData[10], szDbBusRxData[11]); + } + else + { + if (*ppVersion == NULL) + { + *ppVersion = kzalloc(sizeof(u8)*10, GFP_KERNEL); + } + + sprintf(*ppVersion, "%s", "N/A"); + } + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + mdelay(100); + + mutex_unlock(&g_Mutex); + + DBG("*** platform firmware version = %s ***\n", *ppVersion); +} + +s32 DrvFwCtrlUpdateFirmware(u8 szFwData[][1024], EmemType_e eEmemType) +{ + DBG("*** %s() ***\n", __func__); + + return _DrvFwCtrlUpdateFirmwareCash(szFwData); +} + +void DrvFwCtrlHandleFingerTouch(void) +{ + TouchInfo_t tInfo; + u32 i; + u8 nTouchKeyCode = 0; + static u32 nLastKeyCode = 0; + u8 *pPacket = NULL; + u16 nReportPacketLength = 0; + +// DBG("*** %s() ***\n", __func__); + + memset(&tInfo, 0x0, sizeof(tInfo)); + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + if (g_FirmwareMode == FIRMWARE_MODE_DEMO_MODE) + { + DBG("FIRMWARE_MODE_DEMO_MODE\n"); + + nReportPacketLength = DEMO_MODE_PACKET_LENGTH; + pPacket = g_DemoModePacket; + } + else if (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE) + { + DBG("FIRMWARE_MODE_DEBUG_MODE\n"); + + if (g_FirmwareInfo.nLogModePacketHeader != 0x62) + { + DBG("WRONG DEBUG MODE HEADER : 0x%x\n", g_FirmwareInfo.nLogModePacketHeader); + return; + } + + if (g_LogModePacket == NULL) + { + g_LogModePacket = kzalloc(sizeof(u8)*g_FirmwareInfo.nLogModePacketLength, GFP_KERNEL); + } + + nReportPacketLength = g_FirmwareInfo.nLogModePacketLength; + pPacket = g_LogModePacket; + } + else if (g_FirmwareMode == FIRMWARE_MODE_RAW_DATA_MODE) + { + DBG("FIRMWARE_MODE_RAW_DATA_MODE\n"); + + if (g_FirmwareInfo.nLogModePacketHeader != 0x62) + { + DBG("WRONG RAW DATA MODE HEADER : 0x%x\n", g_FirmwareInfo.nLogModePacketHeader); + return; + } + + if (g_LogModePacket == NULL) + { + g_LogModePacket = kzalloc(sizeof(u8)*g_FirmwareInfo.nLogModePacketLength, GFP_KERNEL); + } + + nReportPacketLength = g_FirmwareInfo.nLogModePacketLength; + pPacket = g_LogModePacket; + } + else + { + DBG("WRONG FIRMWARE MODE : 0x%x\n", g_FirmwareMode); + return; + } +#else + DBG("FIRMWARE_MODE_DEMO_MODE\n"); + + nReportPacketLength = DEMO_MODE_PACKET_LENGTH; + pPacket = g_DemoModePacket; +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + if (g_GestureWakeupFlag == 1) + { + DBG("Set gesture wakeup packet length, g_ChipType=%d\n", g_ChipType); + + if (g_ChipType == CHIP_TYPE_MSG22XX) + { + if (_gGestureWakeupPacket == NULL) + { + _gGestureWakeupPacket = kzalloc(sizeof(u8)*GESTURE_WAKEUP_PACKET_LENGTH, GFP_KERNEL); + } + + nReportPacketLength = GESTURE_WAKEUP_PACKET_LENGTH; + pPacket = _gGestureWakeupPacket; + } + else if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + if (_gGestureWakeupPacket == NULL) + { + _gGestureWakeupPacket = kzalloc(sizeof(u8)*DEMO_MODE_PACKET_LENGTH, GFP_KERNEL); + } + + nReportPacketLength = DEMO_MODE_PACKET_LENGTH; + pPacket = _gGestureWakeupPacket; + } + else + { + DBG("This chip type does not support gesture wakeup.\n"); + return; + } + } +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + if (g_GestureWakeupFlag == 1) + { + u32 i = 0, rc; + + while (i < 5) + { + mdelay(50); + + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &pPacket[0], nReportPacketLength); + + if (rc > 0) + { + break; + } + + i ++; + } + } + else + { + IicReadData(SLAVE_I2C_ID_DWI2C, &pPacket[0], nReportPacketLength); + } +#else + IicReadData(SLAVE_I2C_ID_DWI2C, &pPacket[0], nReportPacketLength); +#endif //CONFIG_ENABLE_GESTURE_WAKEUP +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + IicReadData(SLAVE_I2C_ID_DWI2C, &pPacket[0], nReportPacketLength); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) +#ifdef CONFIG_ENABLE_DMA_IIC + DmaAlloc(); +#endif //CONFIG_ENABLE_DMA_IIC + IicReadData(SLAVE_I2C_ID_DWI2C, &pPacket[0], nReportPacketLength); +#ifdef CONFIG_ENABLE_DMA_IIC + DmaFree(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif + + if (0 == _DrvFwCtrlParsePacket(pPacket, nReportPacketLength, &tInfo)) + { + //report... + if ((tInfo.nFingerNum) == 0) //touch end + { + if (nLastKeyCode != 0) + { + DBG("key touch released\n"); + + input_report_key(g_InputDevice, BTN_TOUCH, 0); + input_report_key(g_InputDevice, nLastKeyCode, 0); + + nLastKeyCode = 0; //clear key status.. + } + else + { + DrvPlatformLyrFingerTouchReleased(0, 0); + } + } + else //touch on screen + { + if (tInfo.nTouchKeyCode != 0) + { +#ifdef CONFIG_TP_HAVE_KEY + if (tInfo.nTouchKeyCode == 4) // TOUCH_KEY_HOME + { + nTouchKeyCode = g_TpVirtualKey[1]; + } + else if (tInfo.nTouchKeyCode == 1) // TOUCH_KEY_MENU + { + nTouchKeyCode = g_TpVirtualKey[0]; + } + else if (tInfo.nTouchKeyCode == 2) // TOUCH_KEY_BACK + { + nTouchKeyCode = g_TpVirtualKey[2]; + } + else if (tInfo.nTouchKeyCode == 8) // TOUCH_KEY_SEARCH + { + nTouchKeyCode = g_TpVirtualKey[3]; + } + + if (nLastKeyCode != nTouchKeyCode) + { + DBG("key touch pressed\n"); + DBG("nTouchKeyCode = %d, nLastKeyCode = %d\n", nTouchKeyCode, nLastKeyCode); + + nLastKeyCode = nTouchKeyCode; + + input_report_key(g_InputDevice, BTN_TOUCH, 1); + input_report_key(g_InputDevice, nTouchKeyCode, 1); + } +#endif //CONFIG_TP_HAVE_KEY + } + else + { + DBG("tInfo->nFingerNum = %d...............\n", tInfo.nFingerNum); + + for (i = 0; i < tInfo.nFingerNum; i ++) + { + DrvPlatformLyrFingerTouchPressed(tInfo.tPoint[i].nX, tInfo.tPoint[i].nY, 0, 0); + } + } + } + + input_sync(g_InputDevice); + } +} + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + +void DrvFwCtrlOpenGestureWakeup(u16 nMode) +{ + u8 szDbBusTxData[3] = {0}; + u32 i = 0; + s32 rc; + + DBG("*** %s() ***\n", __func__); + + DBG("wakeup mode = 0x%x\n", nMode); + + szDbBusTxData[0] = 0x58; + szDbBusTxData[1] = (nMode >> 8) & 0xFF; + szDbBusTxData[2] = nMode & 0xFF; + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + + if (rc > 0) + { + DBG("Enable gesture wakeup success\n"); + break; + } + + i ++; + } + + if (i == 5) + { + DBG("Enable gesture wakeup failed\n"); + } +/* + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + if (rc < 0) + { + DBG("Enable gesture wakeup failed\n"); + } + else + { + DBG("Enable gesture wakeup success\n"); + } +*/ + g_GestureWakeupFlag = 1; // gesture wakeup is enabled +} + +void DrvFwCtrlCloseGestureWakeup(void) +{ +// u8 szDbBusTxData[3] = {0}; +// s32 rc; + + DBG("*** %s() ***\n", __func__); +/* + szDbBusTxData[0] = 0x58; + szDbBusTxData[1] = 0x00; + szDbBusTxData[2] = 0x00; + + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + if (rc < 0) + { + DBG("Disable gesture wakeup failed\n"); + } + else + { + DBG("Disable gesture wakeup success\n"); + } +*/ + g_GestureWakeupFlag = 0; // gesture wakeup is disabled +} + +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + +u16 DrvFwCtrlChangeFirmwareMode(u16 nMode) +{ + u8 szDbBusTxData[2] = {0}; + + DBG("*** %s() ***\n", __func__); + + szDbBusTxData[0] = 0x02; + szDbBusTxData[1] = (u8)nMode; + + mdelay(20); + + mutex_lock(&g_Mutex); + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 2); + + mutex_unlock(&g_Mutex); + + return nMode; +} + +void DrvFwCtrlGetFirmwareInfo(FirmwareInfo_t *pInfo) +{ + u8 szDbBusTxData[1] = {0}; + u8 szDbBusRxData[8] = {0}; + + DBG("*** %s() ***\n", __func__); + + szDbBusTxData[0] = 0x01; + + mutex_lock(&g_Mutex); + + mdelay(300); + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 1); + mdelay(20); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 8); + + mutex_unlock(&g_Mutex); + + if ((szDbBusRxData[1] & 0x80) == 0x80) + { + pInfo->nIsCanChangeFirmwareMode = 0; + } + else + { + pInfo->nIsCanChangeFirmwareMode = 1; + } + + pInfo->nFirmwareMode = szDbBusRxData[1] & 0x7F; + pInfo->nLogModePacketHeader = szDbBusRxData[2]; + pInfo->nLogModePacketLength = (szDbBusRxData[3]<<8) + szDbBusRxData[4]; + + DBG("pInfo->nFirmwareMode=0x%x, pInfo->nLogModePacketHeader=0x%x, pInfo->nLogModePacketLength=%d, pInfo->nIsCanChangeFirmwareMode=%d\n", pInfo->nFirmwareMode, pInfo->nLogModePacketHeader, pInfo->nLogModePacketLength, pInfo->nIsCanChangeFirmwareMode); +} + +void DrvFwCtrlRestoreFirmwareModeToLogDataMode(void) +{ + FirmwareInfo_t tInfo; + + DBG("*** %s() ***\n", __func__); + + memset(&tInfo, 0x0, sizeof(FirmwareInfo_t)); + + DrvFwCtrlGetFirmwareInfo(&tInfo); + + DBG("g_FirmwareMode = 0x%x, tInfo.nFirmwareMode = 0x%x\n", g_FirmwareMode, tInfo.nFirmwareMode); + + // Since reset_hw() will reset the firmware mode to demo mode, we must reset the firmware mode again after reset_hw(). + if (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE && FIRMWARE_MODE_DEBUG_MODE != tInfo.nFirmwareMode) + { + g_FirmwareMode = DrvFwCtrlChangeFirmwareMode(FIRMWARE_MODE_DEBUG_MODE); + } + else if (g_FirmwareMode == FIRMWARE_MODE_RAW_DATA_MODE && FIRMWARE_MODE_RAW_DATA_MODE != tInfo.nFirmwareMode) + { + g_FirmwareMode = DrvFwCtrlChangeFirmwareMode(FIRMWARE_MODE_RAW_DATA_MODE); + } + else + { + DBG("firmware mode is not restored\n"); + } +} +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +void DrvFwCtrlCheckFirmwareUpdateBySwId(void) +{ + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + _DrvFwCtrlMsg21xxaCheckFirmwareUpdateBySwId(); + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _DrvFwCtrlMsg22xxCheckFirmwareUpdateBySwId(); + } + else + { + DBG("This chip type (%d) does not support update firmware by sw id\n", g_ChipType); + } +} + +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +//------------------------------------------------------------------------------// diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_self_fw_control.h b/drivers/input/touchscreen/msg2138/mstar_drv_self_fw_control.h new file mode 100644 index 00000000..2ddae19e --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_self_fw_control.h @@ -0,0 +1,154 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_self_fw_control.h + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +#ifndef __MSTAR_DRV_SELF_FW_CONTROL_H__ +#define __MSTAR_DRV_SELF_FW_CONTROL_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include "mstar_drv_common.h" + +/*--------------------------------------------------------------------------*/ +/* COMPILE OPTION DEFINITION */ +/*--------------------------------------------------------------------------*/ + +//#define CONFIG_SWAP_X_Y + +//#define CONFIG_REVERSE_X +//#define CONFIG_REVERSE_Y + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR CONSTANT DEFINITION */ +/*--------------------------------------------------------------------------*/ + +#define DEMO_MODE_PACKET_LENGTH (8) +#define MAX_TOUCH_NUM (2) + +#define MSG21XXA_FIRMWARE_MAIN_BLOCK_SIZE (32) //32K +#define MSG21XXA_FIRMWARE_INFO_BLOCK_SIZE (1) //1K +#define MSG21XXA_FIRMWARE_WHOLE_SIZE (MSG21XXA_FIRMWARE_MAIN_BLOCK_SIZE+MSG21XXA_FIRMWARE_INFO_BLOCK_SIZE) //33K + +#define MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE (48) //48K +#define MSG22XX_FIRMWARE_INFO_BLOCK_SIZE (512) //512Byte + + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG +#define FIRMWARE_MODE_DEMO_MODE (0x00) +#define FIRMWARE_MODE_DEBUG_MODE (0x01) +#define FIRMWARE_MODE_RAW_DATA_MODE (0x02) +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +#define UPDATE_FIRMWARE_RETRY_COUNT (2) +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +/*--------------------------------------------------------------------------*/ +/* DATA TYPE DEFINITION */ +/*--------------------------------------------------------------------------*/ + +typedef struct +{ + u16 nX; + u16 nY; +} TouchPoint_t; + +typedef struct +{ + u8 nTouchKeyMode; + u8 nTouchKeyCode; + u8 nFingerNum; + TouchPoint_t tPoint[MAX_TOUCH_NUM]; +} TouchInfo_t; + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + +typedef struct +{ + u8 nFirmwareMode; + u8 nLogModePacketHeader; + u16 nLogModePacketLength; + u8 nIsCanChangeFirmwareMode; +} FirmwareInfo_t; + +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +/* + * Note. + * The following is sw id enum definition for MSG22XX. + * 0x0000 and 0xFFFF are not allowed to be defined as SW ID. + * SW_ID_UNDEFINED is a reserved enum value, do not delete it or modify it. + * Please modify the SW ID of the below enum value depends on the TP vendor that you are using. + */ +typedef enum { + MSG22XX_SW_ID_XXXX = 0x0001, + MSG22XX_SW_ID_YYYY = 0x0002, + MSG22XX_SW_ID_UNDEFINED +} Msg22xxSwId_e; + + +/* + * Note. + * The following is sw id enum definition for MSG21XXA. + * SW_ID_UNDEFINED is a reserved enum value, do not delete it or modify it. + * Please modify the SW ID of the below enum value depends on the TP vendor that you are using. + */ +typedef enum { + MSG21XXA_SW_ID_XXXX = 0x0C, + MSG21XXA_SW_ID_YYYY, + MSG21XXA_SW_ID_UNDEFINED +} Msg21xxaSwId_e; +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +extern void DrvFwCtrlOpenGestureWakeup(u16 nMode); +extern void DrvFwCtrlCloseGestureWakeup(void); +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG +extern u16 DrvFwCtrlChangeFirmwareMode(u16 nMode); +extern void DrvFwCtrlGetFirmwareInfo(FirmwareInfo_t *pInfo); +extern void DrvFwCtrlRestoreFirmwareModeToLogDataMode(void); +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +extern void DrvFwCtrlCheckFirmwareUpdateBySwId(void); +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +extern u8 DrvFwCtrlGetChipType(void); +extern void DrvFwCtrlGetCustomerFirmwareVersion(u16 *pMajor, u16 *pMinor, u8 **ppVersion); +extern void DrvFwCtrlGetPlatformFirmwareVersion(u8 **ppVersion); +extern void DrvFwCtrlHandleFingerTouch(void); +extern s32 DrvFwCtrlUpdateFirmware(u8 szFwData[][1024], EmemType_e eEmemType); + +#endif /* __MSTAR_DRV_SELF_FW_CONTROL_H__ */ diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_self_mp_test.c b/drivers/input/touchscreen/msg2138/mstar_drv_self_mp_test.c new file mode 100644 index 00000000..7b7bcac0 --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_self_mp_test.c @@ -0,0 +1,2514 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_self_mp_test.c + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_self_mp_test.h" +#include "mstar_drv_utility_adaption.h" +#include "mstar_drv_self_fw_control.h" +#include "mstar_drv_platform_porting_layer.h" + +#ifdef CONFIG_ENABLE_ITO_MP_TEST + +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) +// Modify. +#include "open_test_ANA1_X.h" +#include "open_test_ANA2_X.h" +#include "open_test_ANA1_B_X.h" +#include "open_test_ANA2_B_X.h" +#include "open_test_ANA3_X.h" + +#include "open_test_ANA1_Y.h" +#include "open_test_ANA2_Y.h" +#include "open_test_ANA1_B_Y.h" +#include "open_test_ANA2_B_Y.h" +#include "open_test_ANA3_Y.h" + +// Modify. +#include "short_test_ANA1_X.h" +#include "short_test_ANA2_X.h" +#include "short_test_ANA3_X.h" +#include "short_test_ANA4_X.h" + +#include "short_test_ANA1_Y.h" +#include "short_test_ANA2_Y.h" +#include "short_test_ANA3_Y.h" +#include "short_test_ANA4_Y.h" +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) +// Modify. +#include "open_test_RIU1_X.h" +#include "open_test_RIU2_X.h" +#include "open_test_RIU3_X.h" + +#include "open_test_RIU1_Y.h" +#include "open_test_RIU2_Y.h" +#include "open_test_RIU3_Y.h" + +// Modify. +#include "short_test_RIU1_X.h" +#include "short_test_RIU2_X.h" +#include "short_test_RIU3_X.h" +#include "short_test_RIU4_X.h" + +#include "short_test_RIU1_Y.h" +#include "short_test_RIU2_Y.h" +#include "short_test_RIU3_Y.h" +#include "short_test_RIU4_Y.h" +#endif + +/*=============================================================*/ +// PREPROCESSOR CONSTANT DEFINITION +/*=============================================================*/ + +// Modify. +#define TP_OF_X (1) //(2) +#define TP_OF_Y (4) + +/*=============================================================*/ +// EXTERN VARIABLE DECLARATION +/*=============================================================*/ + +extern struct i2c_client *g_I2cClient; + +/*=============================================================*/ +// LOCAL VARIABLE DEFINITION +/*=============================================================*/ + +static u32 _gIsInMpTest = 0; +static u32 _gTestRetryCount = CTP_MP_TEST_RETRY_COUNT; +static ItoTestMode_e _gItoTestMode = 0; + +static s32 _gCtpMpTestStatus = ITO_TEST_UNDER_TESTING; +static u8 _gTestFailChannel[MAX_CHANNEL_NUM] = {0}; +static u32 _gTestFailChannelCount = 0; + +static struct work_struct _gCtpItoTestWork; +static struct workqueue_struct *_gCtpMpTestWorkQueue = NULL; + +static s16 _gRawData1[MAX_CHANNEL_NUM] = {0}; +static s16 _gRawData2[MAX_CHANNEL_NUM] = {0}; +static s16 _gRawData3[MAX_CHANNEL_NUM] = {0}; +static s16 _gRawData4[MAX_CHANNEL_NUM] = {0}; +static s8 _gDataFlag1[MAX_CHANNEL_NUM] = {0}; +static s8 _gDataFlag2[MAX_CHANNEL_NUM] = {0}; +static s8 _gDataFlag3[MAX_CHANNEL_NUM] = {0}; +static s8 _gDataFlag4[MAX_CHANNEL_NUM] = {0}; + +static u8 _gItoTestKeyNum = 0; +static u8 _gItoTestDummyNum = 0; +static u8 _gItoTestTriangleNum = 0; +static u8 _gIsEnable2R = 0; + +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + +static u8 _gLTP = 1; + +// _gOpen1~_gOpen3 are for MSG21XXA +static u16 *_gOpen1 = NULL; +static u16 *_gOpen1B = NULL; +static u16 *_gOpen2 = NULL; +static u16 *_gOpen2B = NULL; +static u16 *_gOpen3 = NULL; + +// _gShort_1~_gShort_4 are for MSG21XXA +static u16 *_gShort_1 = NULL; +static u16 *_gShort_2 = NULL; +static u16 *_gShort_3 = NULL; +static u16 *_gShort_4 = NULL; + +// _gShort_1_GPO~_gShort_4_GPO are for MSG21XXA +static u16 *_gShort_1_GPO = NULL; +static u16 *_gShort_2_GPO = NULL; +static u16 *_gShort_3_GPO = NULL; +static u16 *_gShort_4_GPO = NULL; + +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + +// _gOpenRIU1~_gOpenRIU3 are for MSG22XX +static u32 *_gOpenRIU1 = NULL; +static u32 *_gOpenRIU2 = NULL; +static u32 *_gOpenRIU3 = NULL; + +// _gShort_RIU1~_gShort_RIU4 are for MSG22XX +static u32 *_gShort_RIU1 = NULL; +static u32 *_gShort_RIU2 = NULL; +static u32 *_gShort_RIU3 = NULL; +static u32 *_gShort_RIU4 = NULL; + +// _gOpenSubFrameNum1~_gShortSubFrameNum4 are for MSG22XX +static u8 _gOpenSubFrameNum1 = 0; +static u8 _gOpenSubFrameNum2 = 0; +static u8 _gOpenSubFrameNum3 = 0; +static u8 _gShortSubFrameNum1 = 0; +static u8 _gShortSubFrameNum2 = 0; +static u8 _gShortSubFrameNum3 = 0; +static u8 _gShortSubFrameNum4 = 0; + +#endif + +static u8 *_gMAP1 = NULL; +static u8 *_gMAP2 = NULL; +static u8 *_gMAP3 = NULL; +static u8 *_gMAP40_1 = NULL; +static u8 *_gMAP40_2 = NULL; +static u8 *_gMAP40_3 = NULL; +static u8 *_gMAP40_4 = NULL; +static u8 *_gMAP41_1 = NULL; +static u8 *_gMAP41_2 = NULL; +static u8 *_gMAP41_3 = NULL; +static u8 *_gMAP41_4 = NULL; + +static u8 *_gSHORT_MAP1 = NULL; +static u8 *_gSHORT_MAP2 = NULL; +static u8 *_gSHORT_MAP3 = NULL; +static u8 *_gSHORT_MAP4 = NULL; + +//static struct proc_dir_entry *_gMsgItoTest = NULL; +//static struct proc_dir_entry *_gDebug = NULL; +ItoTestResult_e _gItoTestResult = ITO_TEST_OK; + +/*=============================================================*/ +// EXTERN FUNCTION DECLARATION +/*=============================================================*/ + + +/*=============================================================*/ +// LOCAL FUNCTION DEFINITION +/*=============================================================*/ + +static u16 _DrvMpTestItoTestGetTpType(void) +{ + u16 nMajor = 0, nMinor = 0; + + DBG("*** %s() ***\n", __func__); + +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + { + u8 szDbBusTxData[3] = {0}; + u8 szDbBusRxData[4] = {0}; + + szDbBusTxData[0] = 0x53; + szDbBusTxData[1] = 0x00; + szDbBusTxData[2] = 0x2A; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 4); + + nMajor = (szDbBusRxData[1]<<8) + szDbBusRxData[0]; + nMinor = (szDbBusRxData[3]<<8) + szDbBusRxData[2]; + } +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + { + u16 nRegData1, nRegData2; + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + // RIU password + RegSet16BitValue(0x161A, 0xABBA); + + // Clear pce + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x80)); + + RegSet16BitValue(0x1600, 0xBFF4); // Set start address for customer firmware version on main block + + // Enable burst mode +// RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); + + // Set pce + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x40)); + + RegSetLByteValue(0x160E, 0x01); + + nRegData1 = RegGet16BitValue(0x1604); + nRegData2 = RegGet16BitValue(0x1606); + + nMajor = (((nRegData1 >> 8) & 0xFF) << 8) + (nRegData1 & 0xFF); + nMinor = (((nRegData2 >> 8) & 0xFF) << 8) + (nRegData2 & 0xFF); + + // Clear burst mode +// RegSet16BitValue(0x160C, RegGet16BitValue(0x160C) & (~0x01)); + + RegSet16BitValue(0x1600, 0x0000); + + // Clear RIU password + RegSet16BitValue(0x161A, 0x0000); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + mdelay(100); + } +#endif + + DBG("*** major = %d ***\n", nMajor); + DBG("*** minor = %d ***\n", nMinor); + + return nMajor; +} + +static u16 _DrvMpTestItoTestChooseTpType(void) +{ + u16 nTpType = 0; + u32 i = 0; + + DBG("*** %s() ***\n", __func__); + +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + // _gOpen1~_gOpen3 are for MSG21XXA + _gOpen1 = NULL; + _gOpen1B = NULL; + _gOpen2 = NULL; + _gOpen2B = NULL; + _gOpen3 = NULL; + + // _gShort_1~_gShort_4 are for MSG21XXA + _gShort_1 = NULL; + _gShort_2 = NULL; + _gShort_3 = NULL; + _gShort_4 = NULL; + + _gShort_1_GPO = NULL; + _gShort_2_GPO = NULL; + _gShort_3_GPO = NULL; + _gShort_4_GPO = NULL; +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + // _gOpenRIU1~_gOpenRIU3 are for MSG22XX + _gOpenRIU1 = NULL; + _gOpenRIU2 = NULL; + _gOpenRIU3 = NULL; + + // _gShort_RIU1~_gShort_RIU4 are for MSG22XX + _gShort_RIU1 = NULL; + _gShort_RIU2 = NULL; + _gShort_RIU3 = NULL; + _gShort_RIU4 = NULL; + + _gOpenSubFrameNum1 = 0; + _gOpenSubFrameNum2 = 0; + _gOpenSubFrameNum3 = 0; + _gShortSubFrameNum1 = 0; + _gShortSubFrameNum2 = 0; + _gShortSubFrameNum3 = 0; + _gShortSubFrameNum4 = 0; +#endif + + _gMAP1 = NULL; + _gMAP2 = NULL; + _gMAP3 = NULL; + _gMAP40_1 = NULL; + _gMAP40_2 = NULL; + _gMAP40_3 = NULL; + _gMAP40_4 = NULL; + _gMAP41_1 = NULL; + _gMAP41_2 = NULL; + _gMAP41_3 = NULL; + _gMAP41_4 = NULL; + + _gSHORT_MAP1 = NULL; + _gSHORT_MAP2 = NULL; + _gSHORT_MAP3 = NULL; + _gSHORT_MAP4 = NULL; + + _gItoTestKeyNum = 0; + _gItoTestDummyNum = 0; + _gItoTestTriangleNum = 0; + _gIsEnable2R = 0; + + for (i = 0; i < 10; i ++) + { + nTpType = _DrvMpTestItoTestGetTpType(); + DBG("nTpType = %d, i = %d\n", nTpType, i); + + if (TP_OF_X == nTpType || TP_OF_Y == nTpType) // Modify. + { + break; + } + else if (i < 5) + { + mdelay(100); + } + else + { + DrvPlatformLyrTouchDeviceResetHw(); + } + } + + if (TP_OF_X == nTpType) // Modify. + { +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + _gOpen1 = open_1_X; + _gOpen1B = open_1B_X; + _gOpen2 = open_2_X; + _gOpen2B = open_2B_X; + _gOpen3 = open_3_X; + + _gShort_1 = short_1_X; + _gShort_2 = short_2_X; + _gShort_3 = short_3_X; + _gShort_4 = short_4_X; + + _gShort_1_GPO = short_1_X_GPO; + _gShort_2_GPO = short_2_X_GPO; + _gShort_3_GPO = short_3_X_GPO; + _gShort_4_GPO = short_4_X_GPO; +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + _gOpenRIU1 = open_1_X; + _gOpenRIU2 = open_2_X; + _gOpenRIU3 = open_3_X; + + _gShort_RIU1 = short_1_X; + _gShort_RIU2 = short_2_X; + _gShort_RIU3 = short_3_X; + _gShort_RIU4 = short_4_X; + + _gOpenSubFrameNum1 = NUM_OPEN_1_SENSOR_X; + _gOpenSubFrameNum2 = NUM_OPEN_2_SENSOR_X; + _gOpenSubFrameNum3 = NUM_OPEN_3_SENSOR_X; + _gShortSubFrameNum1 = NUM_SHORT_1_SENSOR_X; + _gShortSubFrameNum2 = NUM_SHORT_2_SENSOR_X; + _gShortSubFrameNum3 = NUM_SHORT_3_SENSOR_X; + _gShortSubFrameNum4 = NUM_SHORT_4_SENSOR_X; +#endif + + _gMAP1 = MAP1_X; + _gMAP2 = MAP2_X; + _gMAP3 = MAP3_X; + _gMAP40_1 = MAP40_1_X; + _gMAP40_2 = MAP40_2_X; + _gMAP40_3 = MAP40_3_X; + _gMAP40_4 = MAP40_4_X; + _gMAP41_1 = MAP41_1_X; + _gMAP41_2 = MAP41_2_X; + _gMAP41_3 = MAP41_3_X; + _gMAP41_4 = MAP41_4_X; + + _gSHORT_MAP1 = SHORT_MAP1_X; + _gSHORT_MAP2 = SHORT_MAP2_X; + _gSHORT_MAP3 = SHORT_MAP3_X; + _gSHORT_MAP4 = SHORT_MAP4_X; + + _gItoTestKeyNum = NUM_KEY_X; + _gItoTestDummyNum = NUM_DUMMY_X; + _gItoTestTriangleNum = NUM_SENSOR_X; + _gIsEnable2R = ENABLE_2R_X; + } + else if (TP_OF_Y == nTpType) // Modify. + { +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + _gOpen1 = open_1_Y; + _gOpen1B = open_1B_Y; + _gOpen2 = open_2_Y; + _gOpen2B = open_2B_Y; + _gOpen3 = open_3_Y; + + _gShort_1 = short_1_Y; + _gShort_2 = short_2_Y; + _gShort_3 = short_3_Y; + _gShort_4 = short_4_Y; + + _gShort_1_GPO = short_1_Y_GPO; + _gShort_2_GPO = short_2_Y_GPO; + _gShort_3_GPO = short_3_Y_GPO; + _gShort_4_GPO = short_4_Y_GPO; +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + _gOpenRIU1 = open_1_Y; + _gOpenRIU2 = open_2_Y; + _gOpenRIU3 = open_3_Y; + + _gShort_RIU1 = short_1_Y; + _gShort_RIU2 = short_2_Y; + _gShort_RIU3 = short_3_Y; + _gShort_RIU4 = short_4_Y; + + _gOpenSubFrameNum1 = NUM_OPEN_1_SENSOR_Y; + _gOpenSubFrameNum2 = NUM_OPEN_2_SENSOR_Y; + _gOpenSubFrameNum3 = NUM_OPEN_3_SENSOR_Y; + _gShortSubFrameNum1 = NUM_SHORT_1_SENSOR_Y; + _gShortSubFrameNum2 = NUM_SHORT_2_SENSOR_Y; + _gShortSubFrameNum3 = NUM_SHORT_3_SENSOR_Y; + _gShortSubFrameNum4 = NUM_SHORT_4_SENSOR_Y; +#endif + + _gMAP1 = MAP1_Y; + _gMAP2 = MAP2_Y; + _gMAP3 = MAP3_Y; + _gMAP40_1 = MAP40_1_Y; + _gMAP40_2 = MAP40_2_Y; + _gMAP40_3 = MAP40_3_Y; + _gMAP40_4 = MAP40_4_Y; + _gMAP41_1 = MAP41_1_Y; + _gMAP41_2 = MAP41_2_Y; + _gMAP41_3 = MAP41_3_Y; + _gMAP41_4 = MAP41_4_Y; + + _gSHORT_MAP1 = SHORT_MAP1_Y; + _gSHORT_MAP2 = SHORT_MAP2_Y; + _gSHORT_MAP3 = SHORT_MAP3_Y; + _gSHORT_MAP4 = SHORT_MAP4_Y; + + _gItoTestKeyNum = NUM_KEY_Y; + _gItoTestDummyNum = NUM_DUMMY_Y; + _gItoTestTriangleNum = NUM_SENSOR_Y; + _gIsEnable2R = ENABLE_2R_Y; + } + else + { + nTpType = 0; + } + + return nTpType; +} + +static void _DrvMpTestItoTestSwReset(void) +{ + DBG("*** %s() ***\n", __func__); + + RegSet16BitValue(0x1100, 0xFFFF); //bank:ana, addr:h0000 + RegSet16BitValue(0x1100, 0x0000); + mdelay(50); // mdelay(15) +} + +//------------------------------------------------------------------------------// + +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + +static u16 _DrvMpTestItoTestGetNum(void) +{ + u32 i; + u16 nSensorNum = 0; + u16 nRegVal1, nRegVal2; + + DBG("*** %s() ***\n", __func__); + + nRegVal1 = RegGet16BitValue(0x114A); //bank:ana, addr:h0025 + DBG("nRegValue1 = %d\n", nRegVal1); + + if ((nRegVal1 & BIT1) == BIT1) + { + nRegVal1 = RegGet16BitValue(0x120A); //bank:ana2, addr:h0005 + nRegVal1 = nRegVal1 & 0x0F; + + nRegVal2 = RegGet16BitValue(0x1216); //bank:ana2, addr:h000b + nRegVal2 = ((nRegVal2 >> 1) & 0x0F) + 1; + + nSensorNum = nRegVal1 * nRegVal2; + } + else + { + for (i = 0; i < 4; i ++) + { + nSensorNum += (RegGet16BitValue(0x120A)>>(4*i))&0x0F; //bank:ana2, addr:h0005 + } + } + DBG("nSensorNum = %d\n", nSensorNum); + + return nSensorNum; +} + +static void _DrvMpTestItoTestDisableFilterNoiseDetect(void) +{ + u16 nRegValue; + + DBG("*** %s() ***\n", __func__); + + // Disable DIG/ANA drop + nRegValue = RegGet16BitValue(0x1302); + + RegSet16BitValue(0x1302, nRegValue & (~(BIT2 | BIT1 | BIT0))); +} + +static void _DrvMpTestItoTestPolling(void) +{ + u16 nRegInt = 0x0000; + u16 nRegVal; + + DBG("*** %s() ***\n", __func__); + + RegSet16BitValue(0x130C, BIT15); //bank:fir, addr:h0006 + RegSet16BitValue(0x1214, (RegGet16BitValue(0x1214) | BIT0)); //bank:ana2, addr:h000a + + DBG("polling start\n"); + + do + { + nRegInt = RegGet16BitValue(0x3D18); //bank:intr_ctrl, addr:h000c + } while(( nRegInt & FIQ_E_FRAME_READY_MASK ) == 0x0000); + + DBG("polling end\n"); + + nRegVal = RegGet16BitValue(0x3D18); + RegSet16BitValue(0x3D18, nRegVal & (~FIQ_E_FRAME_READY_MASK)); +} + +static void _DrvMpTestItoOpenTestSetV(u8 nEnable, u8 nPrs) +{ + u16 nRegVal; + + DBG("*** %s() nEnable = %d, nPrs = %d ***\n", __func__, nEnable, nPrs); + + nRegVal = RegGet16BitValue(0x1208); //bank:ana2, addr:h0004 + nRegVal = nRegVal & 0xF1; + + if (nPrs == 0) + { + RegSet16BitValue(0x1208, nRegVal|0x0C); + } + else if (nPrs == 1) + { + RegSet16BitValue(0x1208, nRegVal|0x0E); + } + else + { + RegSet16BitValue(0x1208, nRegVal|0x02); + } + + if (nEnable) + { + nRegVal = RegGet16BitValue(0x1106); //bank:ana, addr:h0003 + RegSet16BitValue(0x1106, nRegVal|0x03); + } + else + { + nRegVal = RegGet16BitValue(0x1106); + nRegVal = nRegVal & 0xFC; + RegSet16BitValue(0x1106, nRegVal); + } +} + +static u16 _DrvMpTestItoTestMsg21xxaGetDataOut(s16 *pRawData) +{ + u32 i; + u16 szRawData[MAX_CHANNEL_NUM] = {0}; + u16 nSensorNum; + u16 nRegInt; + u8 szDbBusTxData[8] = {0}; + u8 szDbBusRxData[MAX_CHANNEL_NUM*2] = {0}; + + DBG("*** %s() ***\n", __func__); + + nSensorNum = _DrvMpTestItoTestGetNum(); + + if ((nSensorNum*2) > (MAX_CHANNEL_NUM*2)) + { + DBG("Danger. nSensorNum = %d\n", nSensorNum); + return nSensorNum; + } + + nRegInt = RegGet16BitValue((0x3d<<8) | (REG_INTR_FIQ_MASK<<1)); + RegSet16BitValue((0x3d<<8) | (REG_INTR_FIQ_MASK<<1), (nRegInt & (u16)(~FIQ_E_FRAME_READY_MASK))); + + _DrvMpTestItoTestPolling(); + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x13; //bank:fir, addr:h0020 + szDbBusTxData[2] = 0x40; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3); + mdelay(20); + IicReadData(SLAVE_I2C_ID_DBBUS, &szDbBusRxData[0], (nSensorNum * 2)); + mdelay(100); + + for (i = 0; i < nSensorNum * 2; i ++) + { + DBG("szDbBusRxData[%d] = %d\n", i, szDbBusRxData[i]); + } + + nRegInt = RegGet16BitValue((0x3d<<8) | (REG_INTR_FIQ_MASK<<1)); + RegSet16BitValue((0x3d<<8) | (REG_INTR_FIQ_MASK<<1), (nRegInt | (u16)FIQ_E_FRAME_READY_MASK)); + + for (i = 0; i < nSensorNum; i ++) + { + szRawData[i] = (szDbBusRxData[2 * i + 1] << 8 ) | (szDbBusRxData[2 * i]); + pRawData[i] = (s16)szRawData[i]; + } + + return nSensorNum; +} + +static void _DrvMpTestItoTestMsg21xxaSendDataIn(u8 nStep) +{ + u32 i; + u16 *pType = NULL; + u8 szDbBusTxData[512] = {0}; + + DBG("*** %s() nStep = %d ***\n", __func__, nStep); + + if (nStep == 0) //39-4 (2R) + { + pType = &_gShort_4[0]; + } + else if (nStep == 1) //39-1 + { + pType = &_gShort_1[0]; + } + else if (nStep == 2) //39-2 + { + pType = &_gShort_2[0]; + } + else if (nStep == 3) //39-3 + { + pType = &_gShort_3[0]; + } + else if (nStep == 4) + { + pType = &_gOpen1[0]; + } + else if (nStep == 5) + { + pType = &_gOpen2[0]; + } + else if (nStep == 6) + { + pType = &_gOpen3[0]; + } + else if (nStep == 9) + { + pType = &_gOpen1B[0]; + } + else if (nStep == 10) + { + pType = &_gOpen2B[0]; + } + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x11; //bank:ana, addr:h0000 + szDbBusTxData[2] = 0x00; + for (i = 0; i <= 0x3E ; i ++) + { + szDbBusTxData[3+2*i] = pType[i] & 0xFF; + szDbBusTxData[4+2*i] = (pType[i] >> 8) & 0xFF; + } + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+0x3F*2); + + szDbBusTxData[2] = 0x7A * 2; //bank:ana, addr:h007a + for (i = 0x7A; i <= 0x7D ; i ++) + { + szDbBusTxData[3+2*(i-0x7A)] = 0; + szDbBusTxData[4+2*(i-0x7A)] = 0; + } + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+8); + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x12; //bank:ana2, addr:h0005 + + szDbBusTxData[2] = 0x05 * 2; + szDbBusTxData[3] = pType[128+0x05] & 0xFF; + szDbBusTxData[4] = (pType[128+0x05] >> 8) & 0xFF; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 5); + + szDbBusTxData[2] = 0x0B * 2; //bank:ana2, addr:h000b + szDbBusTxData[3] = pType[128+0x0B] & 0xFF; + szDbBusTxData[4] = (pType[128+0x0B] >> 8) & 0xFF; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 5); + + szDbBusTxData[2] = 0x12 * 2; //bank:ana2, addr:h0012 + szDbBusTxData[3] = pType[128+0x12] & 0xFF; + szDbBusTxData[4] = (pType[128+0x12] >> 8) & 0xFF; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 5); + + szDbBusTxData[2] = 0x15 * 2; //bank:ana2, addr:h0015 + szDbBusTxData[3] = pType[128+0x15] & 0xFF; + szDbBusTxData[4] = (pType[128+0x15] >> 8) & 0xFF; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 5); +/* +//#if 1 //for AC mod --showlo + szDbBusTxData[1] = 0x13; + szDbBusTxData[2] = 0x12 * 2; + szDbBusTxData[3] = 0x30; + szDbBusTxData[4] = 0x30; + IicWriteData(SLAVE_I2C_ID_DBBUS, szDbBusTxData, 5); + + szDbBusTxData[2] = 0x14 * 2; + szDbBusTxData[3] = 0X30; + szDbBusTxData[4] = 0X30; + IicWriteData(SLAVE_I2C_ID_DBBUS, szDbBusTxData, 5); + + szDbBusTxData[1] = 0x12; + for (i = 0x0D; i <= 0x10; i ++) //for AC noise(++) + { + szDbBusTxData[2] = i * 2; + szDbBusTxData[3] = pType[128+i] & 0xFF; + szDbBusTxData[4] = (pType[128+i] >> 8) & 0xFF; + IicWriteData(SLAVE_I2C_ID_DBBUS, szDbBusTxData, 5); + } + + for (i = 0x16; i <= 0x18; i ++) //for AC noise + { + szDbBusTxData[2] = i * 2; + szDbBusTxData[3] = pType[128+i] & 0xFF; + szDbBusTxData[4] = (pType[128+i] >> 8) & 0xFF; + IicWriteData(SLAVE_I2C_ID_DBBUS, szDbBusTxData, 5); + } +//#endif +*/ +} + +static void _DrvMpTestItoOpenTestMsg21xxaSetC(u8 nCSubStep) +{ + u32 i; + u8 szDbBusTxData[MAX_CHANNEL_NUM+3]; + u8 nHighLevelCSub = false; + u8 nCSubNew; + + DBG("*** %s() nCSubStep = %d ***\n", __func__, nCSubStep); + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x11; //bank:ana, addr:h0042 + szDbBusTxData[2] = 0x84; + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + nCSubNew = nCSubStep; + nHighLevelCSub = false; + + if (nCSubNew > 0x1F) + { + nCSubNew = nCSubNew - 0x14; + nHighLevelCSub = true; + } + + szDbBusTxData[3+i] = nCSubNew & 0x1F; + if (nHighLevelCSub == true) + { + szDbBusTxData[3+i] |= BIT5; + } + } + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], MAX_CHANNEL_NUM+3); + + szDbBusTxData[2] = 0xB4; //bank:ana, addr:h005a + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], MAX_CHANNEL_NUM+3); +} + +static void _DrvMpTestItoOpenTestMsg21xxaFirst(u8 nItemId, s16 *pRawData, s8 *pDataFlag) +{ + u32 i, j; + s16 szTmpRawData[MAX_CHANNEL_NUM] = {0}; + u16 nRegVal; + u8 nLoop; + u8 nSensorNum1 = 0, nSensorNum2 = 0, nTotalSensor = 0; + u8 *pMapping = NULL; + +// nSensorNum1 = 0; +// nSensorNum2 = 0; + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + + // Stop cpu + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 + + RegSet16BitValue(0x1E24, 0x0500); //bank:chip, addr:h0012 + RegSet16BitValue(0x1E2A, 0x0000); //bank:chip, addr:h0015 + RegSet16BitValue(0x1EE6, 0x6E00); //bank:chip, addr:h0073 + RegSet16BitValue(0x1EE8, 0x0071); //bank:chip, addr:h0074 + + if (nItemId == 40) + { + pMapping = &_gMAP1[0]; + if (_gIsEnable2R) + { + nTotalSensor = _gItoTestTriangleNum/2; + } + else + { + nTotalSensor = _gItoTestTriangleNum/2 + _gItoTestKeyNum + _gItoTestDummyNum; + } + } + else if (nItemId == 41) + { + pMapping = &_gMAP2[0]; + if (_gIsEnable2R) + { + nTotalSensor = _gItoTestTriangleNum/2; + } + else + { + nTotalSensor = _gItoTestTriangleNum/2 + _gItoTestKeyNum + _gItoTestDummyNum; + } + } + else if (nItemId == 42) + { + pMapping = &_gMAP3[0]; + nTotalSensor = _gItoTestTriangleNum + _gItoTestKeyNum + _gItoTestDummyNum; + } + + nLoop = 1; + if (nItemId != 42) + { + if (nTotalSensor > 11) + { + nLoop = 2; + } + } + + DBG("nLoop = %d\n", nLoop); + + for (i = 0; i < nLoop; i ++) + { + if (i == 0) + { + _DrvMpTestItoTestMsg21xxaSendDataIn(nItemId - 36); + } + else + { + if (nItemId == 40) + { + _DrvMpTestItoTestMsg21xxaSendDataIn(9); + } + else + { + _DrvMpTestItoTestMsg21xxaSendDataIn(10); + } + } + + _DrvMpTestItoTestDisableFilterNoiseDetect(); + + _DrvMpTestItoOpenTestSetV(1, 0); + nRegVal = RegGet16BitValue(0x110E); //bank:ana, addr:h0007 + RegSet16BitValue(0x110E, nRegVal | BIT11); + + if (_gLTP == 1) + { + _DrvMpTestItoOpenTestMsg21xxaSetC(32); + } + else + { + _DrvMpTestItoOpenTestMsg21xxaSetC(0); + } + + _DrvMpTestItoTestSwReset(); + + if (i == 0) + { + nSensorNum1 = _DrvMpTestItoTestMsg21xxaGetDataOut(szTmpRawData); + DBG("nSensorNum1 = %d\n", nSensorNum1); + } + else + { + nSensorNum2 = _DrvMpTestItoTestMsg21xxaGetDataOut(&szTmpRawData[nSensorNum1]); + DBG("nSensorNum1 = %d, nSensorNum2 = %d\n", nSensorNum1, nSensorNum2); + } + } + + for (j = 0; j < nTotalSensor; j ++) + { + if (_gLTP == 1) + { + pRawData[pMapping[j]] = szTmpRawData[j] + 4096; + pDataFlag[pMapping[j]] = 1; + } + else + { + pRawData[pMapping[j]] = szTmpRawData[j]; + pDataFlag[pMapping[j]] = 1; + } + } +} + +static void _DrvMpTestItoShortTestChangeGPOSetting(u8 nItemId) +{ + u8 szDbBusTxData[3+GPO_SETTING_SIZE*2] = {0}; + u16 szGPOSetting[3] = {0}; + u32 i; + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + + if (nItemId == 0) // 39-4 + { + szGPOSetting[0] = _gShort_4_GPO[0]; + szGPOSetting[1] = _gShort_4_GPO[1]; + szGPOSetting[2] = _gShort_4_GPO[2]; + szGPOSetting[2] |= (1 << (int)(PIN_GUARD_RING % 16)); + } + else if (nItemId == 1) // 39-1 + { + szGPOSetting[0] = _gShort_1_GPO[0]; + szGPOSetting[1] = _gShort_1_GPO[1]; + szGPOSetting[2] = _gShort_1_GPO[2]; + szGPOSetting[2] |= (1 << (int)(PIN_GUARD_RING % 16)); + } + else if (nItemId == 2) // 39-2 + { + szGPOSetting[0] = _gShort_2_GPO[0]; + szGPOSetting[1] = _gShort_2_GPO[1]; + szGPOSetting[2] = _gShort_2_GPO[2]; + szGPOSetting[2] |= (1 << (int)(PIN_GUARD_RING % 16)); + } + else if (nItemId == 3) // 39-3 + { + szGPOSetting[0] = _gShort_3_GPO[0]; + szGPOSetting[1] = _gShort_3_GPO[1]; + szGPOSetting[2] = _gShort_3_GPO[2]; + szGPOSetting[2] |= (1 << (int)(PIN_GUARD_RING % 16)); + } + else + { + DBG("Invalid item id for changing GPIO setting of short test.\n"); + + return; + } + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x12; + szDbBusTxData[2] = 0x48; + + for (i = 0; i < GPO_SETTING_SIZE; i ++) + { + szDbBusTxData[3+2*i] = szGPOSetting[i] & 0xFF; + szDbBusTxData[4+2*i] = (szGPOSetting[i] >> 8) & 0xFF; + } + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+GPO_SETTING_SIZE*2); +} + +static void _DrvMpTestItoShortTestChangeRmodeSetting(u8 nMode) +{ + u8 szDbBusTxData[6] = {0}; + + DBG("*** %s() nMode = %d ***\n", __func__, nMode); + + // AFE R-mode enable(Bit-12) + RegSetLByteValue(0x1103, 0x10); + + // drv_mux_OV (Bit-8 1:enable) + RegSetLByteValue(0x1107, 0x55); + + if (nMode == 1) // P_CODE: 0V + { + RegSet16BitValue(0x110E, 0x073A); + } + else if (nMode == 0) // N_CODE: 2.4V + { + RegSet16BitValue(0x110E, 0x073B); + } + + // SW2 rising & SW3 rising return to 0 + RegSetLByteValue(0x1227, 0x01); + // turn off the chopping + RegSetLByteValue(0x1208, 0x0C); + // idle driver ov + RegSetLByteValue(0x1241, 0xC0); + + // AFE ov + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x12; + szDbBusTxData[2] = 0x44; + szDbBusTxData[3] = 0xFF; + szDbBusTxData[4] = 0xFF; + szDbBusTxData[5] = 0xFF; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 6); +} + +static void _DrvMpTestItoShortTestMsg21xxaFirst(u8 nItemId, s16 *pRawData, s8 *pDataFlag) +{ + u32 i; + s16 szTmpRawData[MAX_CHANNEL_NUM] = {0}; + s16 szTmpRawData2[MAX_CHANNEL_NUM] = {0}; + u8 nSensorNum, nSensorNum2, nNumOfSensorMapping1, nNumOfSensorMapping2, nSensorCount = 0; + u8 *pMapping = NULL; + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + + // Stop cpu + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 + // chip top op0 + RegSet16BitValue(0x1E24, 0x0500); //bank:chip, addr:h0012 + RegSet16BitValue(0x1E2A, 0x0000); //bank:chip, addr:h0015 + RegSet16BitValue(0x1EE6, 0x6E00); //bank:chip, addr:h0073 + RegSet16BitValue(0x1EE8, 0x0071); //bank:chip, addr:h0074 + + if ((_gItoTestTriangleNum + _gItoTestKeyNum + _gItoTestDummyNum) % 2 != 0) + { + nNumOfSensorMapping1 = (_gItoTestTriangleNum + _gItoTestKeyNum + _gItoTestDummyNum) / 2 + 1; + nNumOfSensorMapping2 = nNumOfSensorMapping1; + } + else + { + nNumOfSensorMapping1 = (_gItoTestTriangleNum + _gItoTestKeyNum + _gItoTestDummyNum) / 2; + nNumOfSensorMapping2 = nNumOfSensorMapping1; + if (nNumOfSensorMapping2 % 2 != 0) + { + nNumOfSensorMapping2 ++; + } + } + + if (nItemId == 0) // 39-4 (2R) + { + pMapping = &_gSHORT_MAP4[0]; + nSensorCount = _gItoTestTriangleNum/2; + } + else if (nItemId == 1) // 39-1 + { + pMapping = &_gSHORT_MAP1[0]; + nSensorCount = nNumOfSensorMapping1; + } + else if (nItemId == 2) // 39-2 + { + pMapping = &_gSHORT_MAP2[0]; + nSensorCount = nNumOfSensorMapping2; + } + else if (nItemId == 3) // 39-3 + { + pMapping = &_gSHORT_MAP3[0]; + nSensorCount = _gItoTestTriangleNum; + } + DBG("nSensorCount = %d\n", nSensorCount); + + _DrvMpTestItoTestMsg21xxaSendDataIn(nItemId); + + _DrvMpTestItoTestDisableFilterNoiseDetect(); + + _DrvMpTestItoShortTestChangeRmodeSetting(1); + _DrvMpTestItoShortTestChangeGPOSetting(nItemId); + _DrvMpTestItoTestSwReset(); + nSensorNum = _DrvMpTestItoTestMsg21xxaGetDataOut(szTmpRawData); + DBG("nSensorNum = %d\n", nSensorNum); + + _DrvMpTestItoShortTestChangeRmodeSetting(0); + _DrvMpTestItoShortTestChangeGPOSetting(nItemId); + _DrvMpTestItoTestSwReset(); + nSensorNum2 = _DrvMpTestItoTestMsg21xxaGetDataOut(szTmpRawData2); + DBG("nSensorNum2 = %d\n", nSensorNum2); + + for (i = 0; i < nSensorCount; i ++) + { + pRawData[pMapping[i]] = szTmpRawData[i] - szTmpRawData2[i]; + pDataFlag[pMapping[i]] = 1; + } +} + +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + +static u16 _DrvMpTestItoTestMsg22xxGetDataOut(s16 *pRawData, u16 nSubFrameNum) +{ + u32 i; + u16 szRawData[MAX_CHANNEL_NUM*2] = {0}; + u16 nRegInt = 0x0000; + u16 nSize = nSubFrameNum * 4; + u8 szDbBusTxData[8] = {0}; + u8 szDbBusRxData[MAX_CHANNEL_NUM*4] = {0}; + + DBG("*** %s() ***\n", __func__); + + RegSet16BitValueOff(0x120A, BIT1); //one-shot mode + RegSet16BitValueOff(0x3D08, BIT8); //FIQ_E_FRAME_READY_MASK + //RegSet16BitValueOn(0x130C, BIT15); //MCU read done + RegSet16BitValueOn(0x120A, BIT0); //trigger one-shot + + DBG("polling start\n"); + + do + { + nRegInt = RegGet16BitValue(0x3D18); //bank:intr_ctrl, addr:h000c + } while(( nRegInt & FIQ_E_FRAME_READY_MASK ) == 0x0000); + + DBG("polling end\n"); + + RegSet16BitValueOff(0x3D18, BIT8); //Clear frame-ready interrupt status + + //ReadRegBurst start + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x15; //bank:fir, addr:h0000 + szDbBusTxData[2] = 0x00; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3); + mdelay(20); +// IicReadData(SLAVE_I2C_ID_DBBUS, &szDbBusRxData[0], (MAX_CHANNEL_NUM * 4)); + IicReadData(SLAVE_I2C_ID_DBBUS, &szDbBusRxData[0], (nSubFrameNum * 4 * 2)); + mdelay(100); + +// for (i = 0; i < (MAX_CHANNEL_NUM * 4); i ++) + for (i = 0; i < (nSubFrameNum * 4 * 2); i ++) + { + DBG("szDbBusRxData[%d] = %d\n", i, szDbBusRxData[i]); + } + //ReadRegBurst stop + + RegSet16BitValueOn(0x3D08, BIT8); //FIQ_E_FRAME_READY_MASK + +// for (i = 0; i < (MAX_CHANNEL_NUM * 2); i ++) + for (i = 0; i < nSize; i ++) + { + szRawData[i] = (szDbBusRxData[2 * i + 1] << 8 ) | (szDbBusRxData[2 * i]); + pRawData[i] = (s16)szRawData[i]; + } + +// return (MAX_CHANNEL_NUM * 2); + return nSize; +} + +static void _DrvMpTestItoTestMsg22xxSendDataIn(u8 nStep, u16 nSubFrameNum) +{ + u32 i; + u32 *pType = NULL; + u16 nRiuWriteLength = nSubFrameNum * 6; + + DBG("*** %s() nStep = %d, nSubFrameNum = %d ***\n", __func__, nStep, nSubFrameNum); + + if (nStep == 0) //39-4 (2R) + { + pType = &_gShort_RIU4[0]; + } + else if (nStep == 1) //39-1 + { + pType = &_gShort_RIU1[0]; + } + else if (nStep == 2) //39-2 + { + pType = &_gShort_RIU2[0]; + } + else if (nStep == 3) //39-3 + { + pType = &_gShort_RIU3[0]; + } + else if (nStep == 4) + { + pType = &_gOpenRIU1[0]; + } + else if (nStep == 5) + { + pType = &_gOpenRIU2[0]; + } + else if (nStep == 6) + { + pType = &_gOpenRIU3[0]; + } + + RegSet16BitValueOn(0x1192, BIT4); // force on enable sensor mux and csub sel sram clock + RegSet16BitValueOff(0x1192, BIT5); // mem clk sel + RegSet16BitValueOff(0x1100, BIT3); // tgen soft rst + RegSet16BitValue(0x1180, RIU_BASE_ADDR); // sensor mux sram read/write base address + RegSet16BitValue(0x1182, nRiuWriteLength); // sensor mux sram write length + RegSet16BitValueOn(0x1188, BIT0); // reg_mem0_w_start + + for (i = RIU_BASE_ADDR; i < (RIU_BASE_ADDR + nRiuWriteLength); i ++) + { + RegSet16BitValue(0x118A, (u16)(pType[i])); + RegSet16BitValue(0x118C, (u16)(pType[i] >> 16)); + } +} + +static void _DrvMpTestItoTestMsg22xxSetC(u8 nCSubStep) +{ + u32 i; + u16 nCSubNew, nRegVal; + + DBG("*** %s() nCSubStep = %d ***\n", __func__, nCSubStep); + + nCSubNew = (nCSubStep > CSUB_REF_MAX) ? CSUB_REF_MAX : nCSubStep; // 6 bits + nCSubNew = (nCSubNew | (nCSubNew << 8)); + + nRegVal = RegGet16BitValue(0x11C8); // csub sel overwrite enable, will referance value of 11C0 + + if (nRegVal == 0x000F) + { + RegSet16BitValue(0x11C0, nCSubNew); + } + else + { + RegSet16BitValueOn(0x1192, BIT4); // force on enable sensor mux and csub sel sram clock + RegSet16BitValueOff(0x1192, BIT5); // mem clk sel + RegSet16BitValueOff(0x1100, BIT3); // tgen soft rst + RegSet16BitValue(0x1184, 0); // nAddr + RegSet16BitValue(0x1186, MAX_CHANNEL_NUM); // nLen + RegSet16BitValueOn(0x1188, BIT2); // reg_mem0_w_start + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + RegSet16BitValue( 0x118E, nCSubNew); + RegSet16BitValue( 0x1190, nCSubNew); + } + } +} + +static void _DrvMpTestItoTestMsg22xxRegReset(void) +{ + DBG("*** %s() ***\n", __func__); + + RegSet16BitValueOn(0x1102, (BIT3 | BIT4 | BIT5 | BIT6 | BIT7)); + RegSet16BitValueOff(0x1130, (BIT0 | BIT1 | BIT2 | BIT3 | BIT8)); + + RegSet16BitValueOn(0x1112, BIT15); + RegSet16BitValueOff(0x1112, BIT13); + + RegSet16BitValueOn(0x1250, ((5 << 0) & 0x007F)); + RegSet16BitValueOn(0x1250, ((1 << 8) & 0x7F00)); + RegSet16BitValueOff(0x1250, 0x8080); + + RegSet16BitValueOff(0x1312, (BIT12 | BIT14)); + + RegSet16BitValueOn(0x1300, BIT15); + RegSet16BitValueOff(0x1300, (BIT10 | BIT11 | BIT12 | BIT13 | BIT14)); + + RegSet16BitValueOn(0x1130, BIT9); + + RegSet16BitValueOn(0x1318, (BIT12 | BIT13)); + + //RegSet16BitValue(0x121A, ((8 - 1) & 0x01FF)); // sampling number group A + RegSet16BitValue(0x121C, ((8 - 1) & 0x01FF)); // sampling number group B + RegSet16BitValueOn(0x131A, 0x2000); + RegSet16BitValueOn(0x131C, BIT9); + RegSet16BitValueOff(0x131C, (BIT8 | BIT10)); + + + RegSet16BitValueOff(0x1174, 0x0F00); + + RegSet16BitValue(0x1240, 0x0000); // mutual cap mode selection for total 24 subframes, 0: normal sense, 1: mutual cap sense + RegSet16BitValue(0x1242, 0x0000); // mutual cap mode selection for total 24 subframes, 0: normal sense, 1: mutual cap sense + + RegSet16BitValue(0x1212, 0xFFFF); // timing group A/B selection for total 24 subframes, 0: group A, 1: group B + RegSet16BitValue(0x1214, 0x00FF); // timing group A/B selection for total 24 subframes, 0: group A, 1: group B + //RegSet16BitValue( 0x1212, 0); // timing group A/B selection for total 24 subframes, 0: group A, 1: group B + //RegSet16BitValue( 0x1214, 0); // timing group A/B selection for total 24 subframes, 0: group A, 1: group B + + RegSet16BitValue(0x121E, 0xFFFF); //sample number group A/B selection for total 24 subframes, 0: group A, 1: group B + RegSet16BitValue(0x1220, 0x00FF); //sample number group A/B selection for total 24 subframes, 0: group A, 1: group B + //RegSet16BitValue( 0x121E, 0); //sample number group A/B selection for total 24 subframes, 0: group A, 1: group B + //RegSet16BitValue( 0x1220, 0); //sample number group A/B selection for total 24 subframes, 0: group A, 1: group B + + RegSet16BitValue(0x120E, 0x0); // noise sense mode selection for total 24 subframes + RegSet16BitValue(0x1210, 0x0); // noise sense mode selection for total 24 subframes + + RegSet16BitValue(0x128C, 0x0F); // ADC afe gain correction bypass + mdelay(50); +} + +static void _DrvMpTestItoTestMsg22xxGetChargeDumpTime(u16 nMode, u16 *pChargeTime, u16 *pDumpTime) +{ + u16 nChargeTime = 0, nDumpTime = 0; + u16 nMinChargeTime = 0xFFFF, nMinDumpTime = 0xFFFF, nMaxChargeTime = 0x0000, nMaxDumpTime = 0x0000; + + DBG("*** %s() ***\n", __func__); + + nChargeTime = RegGet16BitValue(0x1226); + nDumpTime = RegGet16BitValue(0x122A); + + if (nMinChargeTime > nChargeTime) + { + nMinChargeTime = nChargeTime; + } + + if (nMaxChargeTime < nChargeTime) + { + nMaxChargeTime = nChargeTime; + } + + if (nMinDumpTime > nDumpTime) + { + nMinDumpTime = nDumpTime; + } + + if (nMaxDumpTime < nDumpTime) + { + nMaxDumpTime = nDumpTime; + } + + DBG("nChargeTime = %d, nDumpTime = %d\n", nChargeTime, nDumpTime); + + if (nMode == 1) + { + *pChargeTime = nMaxChargeTime; + *pDumpTime = nMaxDumpTime; + } + else + { + *pChargeTime = nMinChargeTime; + *pDumpTime = nMinDumpTime; + } +} + +static void _DrvMpTestItoOpenTestMsg22xxFirst(u8 nItemId, s16 *pRawData, s8 *pDataFlag) +{ + u32 i; + s16 szTmpRawData[MAX_CHANNEL_NUM*2] = {0}; + u16 nSubFrameNum = 0; + u16 nChargeTime, nDumpTime; + u8 *pMapping = NULL; + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + + // Stop cpu + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 + + _DrvMpTestItoTestMsg22xxRegReset(); + + switch (nItemId) + { + case 40: + pMapping = &_gMAP1[0]; + nSubFrameNum = _gOpenSubFrameNum1; + break; + case 41: + pMapping = &_gMAP2[0]; + nSubFrameNum = _gOpenSubFrameNum2; + break; + case 42: + pMapping = &_gMAP3[0]; + nSubFrameNum = _gOpenSubFrameNum3; + break; + } + + if (nSubFrameNum > 24) // MAX_CHANNEL_NUM/2 + { + nSubFrameNum = 24; + } + + + _DrvMpTestItoTestMsg22xxSendDataIn(nItemId - 36, nSubFrameNum * 6); + + if (true) + { + RegSet16BitValue(0x1110, 0x0060); //2.4V -> 1.2V + } + else + { + RegSet16BitValue(0x1110, 0x0020); //3.0V -> 0.6V + } + + RegSet16BitValue(0x11C8, 0x000F); //csub sel overwrite enable, will referance value of 11C0 + RegSet16BitValue(0x1174, 0x0F06); // 1 : sel idel driver for sensor pad that connected to AFE + RegSet16BitValue(0x1208, 0x0006); //PRS1 + RegSet16BitValue(0x1240, 0xFFFF); //mutual cap mode selection for total 24 subframes, 0: normal sense, 1: mutual cap sense + RegSet16BitValue(0x1242, 0x00FF); //mutual cap mode selection for total 24 subframes, 0: normal sense, 1: mutual cap sense + RegSet16BitValue(0x1216, (nSubFrameNum - 1) << 1); // subframe numbers, 0:1subframe, 1:2subframe + + _DrvMpTestItoTestMsg22xxGetChargeDumpTime(1, &nChargeTime, &nDumpTime); + + RegSet16BitValue(0x1226, nChargeTime); + RegSet16BitValue(0x122A, nDumpTime); + + _DrvMpTestItoTestMsg22xxSetC(CSUB_REF); + _DrvMpTestItoTestSwReset(); + _DrvMpTestItoTestMsg22xxGetDataOut(szTmpRawData, nSubFrameNum); + +// for (i = 0; i < (MAX_CHANNEL_NUM/2) ; i ++) + for (i = 0; i < nSubFrameNum ; i ++) + { +// DBG("szTmpRawData[%d * 4] >> 3 = %d\n", i, szTmpRawData[i * 4] >> 3); // add for debug +// DBG("pMapping[%d] = %d\n", i, pMapping[i]); // add for debug + + pRawData[pMapping[i]] = (szTmpRawData[i * 4] >> 3); // Filter to ADC + pDataFlag[pMapping[i]] = 1; + } +} + +static void _DrvMpTestItoShortTestMsg22xxFirst(u8 nItemId, s16 *pRawData, s8 *pDataFlag) +{ + u32 i, j; + s16 szRawData[MAX_CHANNEL_NUM*2] = {0}; + s16 szTmpRawData[MAX_CHANNEL_NUM*2] = {0}; + u16 nSensorNum = 0, nSubFrameNum = 0; + u8 *pMapping = NULL; + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + + // Stop cpu + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 + + _DrvMpTestItoTestMsg22xxRegReset(); + + switch(nItemId) + { + case 0: // 39-4 (2R) + pMapping = &_gSHORT_MAP4[0]; + nSensorNum = _gShortSubFrameNum4; + break; + case 1: // 39-1 + pMapping = &_gSHORT_MAP1[0]; + nSensorNum = _gShortSubFrameNum1; + break; + case 2: // 39-2 + pMapping = &_gSHORT_MAP2[0]; + nSensorNum = _gShortSubFrameNum2; + break; + case 3: // 39-3 + pMapping = &_gSHORT_MAP3[0]; + nSensorNum = _gShortSubFrameNum3; + break; + } + + if (nSensorNum > 24) // MAX_CHANNEL_NUM/2 + { + nSubFrameNum = 24; + } + else + { + nSubFrameNum = nSensorNum; + } + + _DrvMpTestItoTestMsg22xxSendDataIn(nItemId, nSubFrameNum * 6); + + + //RegSet16BitValue(0x1110, 0x0030); // [6:4} 011 : 2.1V -> 1.5V + RegSet16BitValue(0x1110, 0x0060); // 2.4V -> 1.2V + RegSet16BitValue(0x11C8, 0x000F); // csub sel overwrite enable, will referance value of 11C0 + RegSet16BitValue(0x1174, 0x0006); // [11:8] 000 : sel active driver for sensor pad that connected to AFE + RegSet16BitValue(0x1208, 0x0006); // PRS1 + RegSet16BitValueOn(0x1104, BIT14); // R mode + RegSet16BitValue(0x1216, (nSubFrameNum - 1) << 1); // subframe numbers, 0:1subframe, 1:2subframe + RegSet16BitValue(0x1176, 0x0000); // CFB 10p + RegSet16BitValue(0x1226, 0x000B); // Charge 4ns + RegSet16BitValue(0x122A, 0x000B); // Dump 4ns + + + _DrvMpTestItoTestMsg22xxSetC(CSUB_REF); + _DrvMpTestItoTestSwReset(); + _DrvMpTestItoTestMsg22xxGetDataOut(szTmpRawData, nSubFrameNum); + + if (nSensorNum > 24) + { + j = 0; + +// for (i = 0; i < (MAX_CHANNEL_NUM/2); i ++) + for (i = 0; i < nSubFrameNum; i ++) + { + szRawData[j] = (szTmpRawData[i * 4] >> 2); + j ++; + + if ((nSensorNum - 24) > i) + { + szRawData[j] = (szTmpRawData[i * 4 + 1] >> 2); + j ++; + } + } + +// for (i = 0; i < (MAX_CHANNEL_NUM/2); i ++) + for (i = 0; i < nSubFrameNum; i ++) + { +// DBG("szRawData[%d] = %d\n", i, szRawData[i]); // add for debug +// DBG("pMapping[%d] = %d\n", i, pMapping[i]); // add for debug + + pRawData[pMapping[i]] = szRawData[i]; + pDataFlag[pMapping[i]] = 1; + } + } + else + { +// for (i = 0; i < (MAX_CHANNEL_NUM/2); i ++) + for (i = 0; i < nSubFrameNum; i ++) + { +// DBG("szTmpRawData[%d * 4] >> 2 = %d\n", i, szTmpRawData[i * 4] >> 2); // add for debug +// DBG("pMapping[%d] = %d\n", i, pMapping[i]); // add for debug + + pRawData[pMapping[i]] = (szTmpRawData[i * 4] >> 2); + pDataFlag[pMapping[i]] = 1; + } + } +} + +#endif + +//------------------------------------------------------------------------------// + +static ItoTestResult_e _DrvMpTestItoOpenTestSecond(u8 nItemId) +{ + ItoTestResult_e nRetVal = ITO_TEST_OK; + u32 i; + s32 nTmpRawDataJg1 = 0; + s32 nTmpRawDataJg2 = 0; + s32 nTmpJgAvgThMax1 = 0; + s32 nTmpJgAvgThMin1 = 0; + s32 nTmpJgAvgThMax2 = 0; + s32 nTmpJgAvgThMin2 = 0; + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + + if (nItemId == 40) + { + for (i = 0; i < (_gItoTestTriangleNum/2)-2; i ++) + { + nTmpRawDataJg1 += _gRawData1[_gMAP40_1[i]]; + } + + for (i = 0; i < 2; i ++) + { + nTmpRawDataJg2 += _gRawData1[_gMAP40_2[i]]; + } + } + else if (nItemId == 41) + { + for (i = 0; i < (_gItoTestTriangleNum/2)-2; i ++) + { + nTmpRawDataJg1 += _gRawData2[_gMAP41_1[i]]; + } + + for (i = 0; i < 2; i ++) + { + nTmpRawDataJg2 += _gRawData2[_gMAP41_2[i]]; + } + } + + nTmpJgAvgThMax1 = (nTmpRawDataJg1 / ((_gItoTestTriangleNum/2)-2)) * ( 100 + OPEN_TEST_NON_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMin1 = (nTmpRawDataJg1 / ((_gItoTestTriangleNum/2)-2)) * ( 100 - OPEN_TEST_NON_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMax2 = (nTmpRawDataJg2 / 2) * ( 100 + OPEN_TEST_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMin2 = (nTmpRawDataJg2 / 2 ) * ( 100 - OPEN_TEST_BORDER_AREA_THRESHOLD) / 100; + + DBG("nItemId = %d, nTmpRawDataJg1 = %d, nTmpJgAvgThMax1 = %d, nTmpJgAvgThMin1 = %d, nTmpRawDataJg2 = %d, nTmpJgAvgThMax2 = %d, nTmpJgAvgThMin2 = %d\n", nItemId, nTmpRawDataJg1, nTmpJgAvgThMax1, nTmpJgAvgThMin1, nTmpRawDataJg2, nTmpJgAvgThMax2, nTmpJgAvgThMin2); + + if (nItemId == 40) + { + for (i = 0; i < (_gItoTestTriangleNum/2)-2; i ++) + { + if (_gRawData1[_gMAP40_1[i]] > nTmpJgAvgThMax1 || _gRawData1[_gMAP40_1[i]] < nTmpJgAvgThMin1) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP40_1[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < 2; i ++) + { + if (_gRawData1[_gMAP40_2[i]] > nTmpJgAvgThMax2 || _gRawData1[_gMAP40_2[i]] < nTmpJgAvgThMin2) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP40_2[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } + else if (nItemId == 41) + { + for (i = 0; i < (_gItoTestTriangleNum/2)-2; i ++) + { + if (_gRawData2[_gMAP41_1[i]] > nTmpJgAvgThMax1 || _gRawData2[_gMAP41_1[i]] < nTmpJgAvgThMin1) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP41_1[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < 2; i ++) + { + if (_gRawData2[_gMAP41_2[i]] > nTmpJgAvgThMax2 || _gRawData2[_gMAP41_2[i]] < nTmpJgAvgThMin2) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP41_2[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } + + return nRetVal; +} + +static ItoTestResult_e _DrvMpTestItoOpenTestSecond2r(u8 nItemId) +{ + ItoTestResult_e nRetVal = ITO_TEST_OK; + u32 i; + s32 nTmpRawDataJg1 = 0; + s32 nTmpRawDataJg2 = 0; + s32 nTmpRawDataJg3 = 0; + s32 nTmpRawDataJg4 = 0; + s32 nTmpJgAvgThMax1 = 0; + s32 nTmpJgAvgThMin1 = 0; + s32 nTmpJgAvgThMax2 = 0; + s32 nTmpJgAvgThMin2 = 0; + s32 nTmpJgAvgThMax3 = 0; + s32 nTmpJgAvgThMin3 = 0; + s32 nTmpJgAvgThMax4 = 0; + s32 nTmpJgAvgThMin4 = 0; + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + + if (nItemId == 40) + { + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + nTmpRawDataJg1 += _gRawData1[_gMAP40_1[i]]; //first region: non-border + } + + for (i = 0; i < 2; i ++) + { + nTmpRawDataJg2 += _gRawData1[_gMAP40_2[i]]; //first region: border + } + + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + nTmpRawDataJg3 += _gRawData1[_gMAP40_3[i]]; //second region: non-border + } + + for (i = 0; i < 2; i ++) + { + nTmpRawDataJg4 += _gRawData1[_gMAP40_4[i]]; //second region: border + } + } + else if (nItemId == 41) + { + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + nTmpRawDataJg1 += _gRawData2[_gMAP41_1[i]]; //first region: non-border + } + + for (i = 0; i < 2; i ++) + { + nTmpRawDataJg2 += _gRawData2[_gMAP41_2[i]]; //first region: border + } + + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + nTmpRawDataJg3 += _gRawData2[_gMAP41_3[i]]; //second region: non-border + } + + for (i = 0; i < 2; i ++) + { + nTmpRawDataJg4 += _gRawData2[_gMAP41_4[i]]; //second region: border + } + } + + nTmpJgAvgThMax1 = (nTmpRawDataJg1 / ((_gItoTestTriangleNum/4)-2)) * ( 100 + OPEN_TEST_NON_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMin1 = (nTmpRawDataJg1 / ((_gItoTestTriangleNum/4)-2)) * ( 100 - OPEN_TEST_NON_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMax2 = (nTmpRawDataJg2 / 2) * ( 100 + OPEN_TEST_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMin2 = (nTmpRawDataJg2 / 2) * ( 100 - OPEN_TEST_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMax3 = (nTmpRawDataJg3 / ((_gItoTestTriangleNum/4)-2)) * ( 100 + OPEN_TEST_NON_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMin3 = (nTmpRawDataJg3 / ((_gItoTestTriangleNum/4)-2)) * ( 100 - OPEN_TEST_NON_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMax4 = (nTmpRawDataJg4 / 2) * ( 100 + OPEN_TEST_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMin4 = (nTmpRawDataJg4 / 2) * ( 100 - OPEN_TEST_BORDER_AREA_THRESHOLD) / 100; + + DBG("nItemId = %d, nTmpRawDataJg1 = %d, nTmpJgAvgThMax1 = %d, nTmpJgAvgThMin1 = %d, nTmpRawDataJg2 = %d, nTmpJgAvgThMax2 = %d, nTmpJgAvgThMin2 = %d\n", nItemId, nTmpRawDataJg1, nTmpJgAvgThMax1, nTmpJgAvgThMin1, nTmpRawDataJg2, nTmpJgAvgThMax2, nTmpJgAvgThMin2); + DBG("nTmpRawDataJg3 = %d, nTmpJgAvgThMax3 = %d, nTmpJgAvgThMin3 = %d, nTmpRawDataJg4 = %d, nTmpJgAvgThMax4 = %d, nTmpJgAvgThMin4 = %d\n", nTmpRawDataJg3, nTmpJgAvgThMax3, nTmpJgAvgThMin3, nTmpRawDataJg4, nTmpJgAvgThMax4, nTmpJgAvgThMin4); + + if (nItemId == 40) + { + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + if (_gRawData1[_gMAP40_1[i]] > nTmpJgAvgThMax1 || _gRawData1[_gMAP40_1[i]] < nTmpJgAvgThMin1) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP40_1[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < 2; i ++) + { + if (_gRawData1[_gMAP40_2[i]] > nTmpJgAvgThMax2 || _gRawData1[_gMAP40_2[i]] < nTmpJgAvgThMin2) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP40_2[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + if (_gRawData1[_gMAP40_3[i]] > nTmpJgAvgThMax3 || _gRawData1[_gMAP40_3[i]] < nTmpJgAvgThMin3) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP40_3[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < 2; i ++) + { + if (_gRawData1[_gMAP40_4[i]] > nTmpJgAvgThMax4 || _gRawData1[_gMAP40_4[i]] < nTmpJgAvgThMin4) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP40_4[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } + else if (nItemId == 41) + { + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + if (_gRawData2[_gMAP41_1[i]] > nTmpJgAvgThMax1 || _gRawData2[_gMAP41_1[i]] < nTmpJgAvgThMin1) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP41_1[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < 2; i ++) + { + if (_gRawData2[_gMAP41_2[i]] > nTmpJgAvgThMax2 || _gRawData2[_gMAP41_2[i]] < nTmpJgAvgThMin2) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP41_2[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + if (_gRawData2[_gMAP41_3[i]] > nTmpJgAvgThMax3 || _gRawData2[_gMAP41_3[i]] < nTmpJgAvgThMin3) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP41_3[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < 2; i ++) + { + if (_gRawData2[_gMAP41_4[i]] > nTmpJgAvgThMax4 || _gRawData2[_gMAP41_4[i]] < nTmpJgAvgThMin4) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP41_4[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } + + return nRetVal; +} + +static ItoTestResult_e _DrvMpTestItoShortTestSecond(u8 nItemId) +{ + ItoTestResult_e nRetVal = ITO_TEST_OK; + u32 i; + u8 nSensorCount = 0; +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + u8 nNumOfSensorMapping1, nNumOfSensorMapping2; +#endif //CONFIG_ENABLE_CHIP_MSG21XXA + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + if ((_gItoTestTriangleNum + _gItoTestKeyNum + _gItoTestDummyNum) % 2 != 0) + { + nNumOfSensorMapping1 = (_gItoTestTriangleNum + _gItoTestKeyNum + _gItoTestDummyNum) / 2 + 1; + nNumOfSensorMapping2 = nNumOfSensorMapping1; + } + else + { + nNumOfSensorMapping1 = (_gItoTestTriangleNum + _gItoTestKeyNum + _gItoTestDummyNum) / 2; + nNumOfSensorMapping2 = nNumOfSensorMapping1; + if (nNumOfSensorMapping2 % 2 != 0) + { + nNumOfSensorMapping2 ++; + } + } +#endif //CONFIG_ENABLE_CHIP_MSG21XXA + + if (nItemId == 0) // 39-4 (2R) + { +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + nSensorCount = _gItoTestTriangleNum/2; +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + nSensorCount = _gShortSubFrameNum4; +#endif + for (i = 0; i < nSensorCount; i ++) + { + if (_gRawData4[_gSHORT_MAP4[i]] > SHORT_TEST_THRESHOLD) + { + _gTestFailChannel[_gTestFailChannelCount] = _gSHORT_MAP4[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } + else if (nItemId == 1) // 39-1 + { +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + nSensorCount = nNumOfSensorMapping1; +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + nSensorCount = _gShortSubFrameNum1; +#endif + for (i = 0; i < nSensorCount; i ++) + { + if (_gRawData1[_gSHORT_MAP1[i]] > SHORT_TEST_THRESHOLD) + { + _gTestFailChannel[_gTestFailChannelCount] = _gSHORT_MAP1[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } + else if (nItemId == 2) // 39-2 + { +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + nSensorCount = nNumOfSensorMapping2; +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + nSensorCount = _gShortSubFrameNum2; +#endif + for (i = 0; i < nSensorCount; i ++) + { + if (_gRawData2[_gSHORT_MAP2[i]] > SHORT_TEST_THRESHOLD) + { + _gTestFailChannel[_gTestFailChannelCount] = _gSHORT_MAP2[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } + else if (nItemId == 3) // 39-3 + { +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + nSensorCount = _gItoTestTriangleNum; +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + nSensorCount = _gShortSubFrameNum3; +#endif + for (i = 0; i < nSensorCount; i ++) + { + if (_gRawData3[_gSHORT_MAP3[i]] > SHORT_TEST_THRESHOLD) + { + _gTestFailChannel[_gTestFailChannelCount] = _gSHORT_MAP3[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } + DBG("nSensorCount = %d\n", nSensorCount); + + return nRetVal; +} + +s32 _DrvMpTestItoOpenTest(void) +{ + ItoTestResult_e nRetVal1 = ITO_TEST_OK, nRetVal2 = ITO_TEST_OK, nRetVal3 = ITO_TEST_OK; + u32 i; + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaAlloc(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DBG("open test start\n"); + + DrvPlatformLyrSetIicDataRate(g_I2cClient, 50000); //50 KHZ + + DrvPlatformLyrDisableFingerTouchReport(); + DrvPlatformLyrTouchDeviceResetHw(); + + if (!_DrvMpTestItoTestChooseTpType()) + { + DBG("Choose Tp Type failed\n"); + nRetVal1 = ITO_TEST_GET_TP_TYPE_ERROR; + goto ITO_TEST_END; + } + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop cpu + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + mdelay(50); + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + _gRawData1[i] = 0; + _gRawData2[i] = 0; + _gRawData3[i] = 0; + _gDataFlag1[i] = 0; + _gDataFlag2[i] = 0; + _gDataFlag3[i] = 0; + } + + _gTestFailChannelCount = 0; // Reset _gTestFailChannelCount to 0 before test start + +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + _DrvMpTestItoOpenTestMsg21xxaFirst(40, _gRawData1, _gDataFlag1); +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + _DrvMpTestItoOpenTestMsg22xxFirst(40, _gRawData1, _gDataFlag1); +#endif + + if (_gIsEnable2R) + { + nRetVal2 = _DrvMpTestItoOpenTestSecond2r(40); + } + else + { + nRetVal2 = _DrvMpTestItoOpenTestSecond(40); + } + +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + _DrvMpTestItoOpenTestMsg21xxaFirst(41, _gRawData2, _gDataFlag2); +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + _DrvMpTestItoOpenTestMsg22xxFirst(41, _gRawData2, _gDataFlag2); +#endif + + if (_gIsEnable2R) + { + nRetVal3 = _DrvMpTestItoOpenTestSecond2r(41); + } + else + { + nRetVal3 = _DrvMpTestItoOpenTestSecond(41); + } +/* +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + _DrvMpTestItoOpenTestMsg21xxaFirst(42, _gRawData3, _gDataFlag3); +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + _DrvMpTestItoOpenTestMsg22xxFirst(42, _gRawData3, _gDataFlag3); +#endif +*/ + + ITO_TEST_END: +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaFree(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DrvPlatformLyrSetIicDataRate(g_I2cClient, 100000); //100 KHZ + + DrvPlatformLyrTouchDeviceResetHw(); + DrvPlatformLyrEnableFingerTouchReport(); + + DBG("open test end\n"); + + if ((nRetVal1 != ITO_TEST_OK) && (nRetVal2 == ITO_TEST_OK) && (nRetVal3 == ITO_TEST_OK)) + { + return ITO_TEST_GET_TP_TYPE_ERROR; + } + else if ((nRetVal1 == ITO_TEST_OK) && ((nRetVal2 != ITO_TEST_OK) || (nRetVal3 != ITO_TEST_OK))) + { + return ITO_TEST_FAIL; + } + else + { + return ITO_TEST_OK; + } +} + +static ItoTestResult_e _DrvMpTestItoShortTest(void) +{ + ItoTestResult_e nRetVal1 = ITO_TEST_OK, nRetVal2 = ITO_TEST_OK, nRetVal3 = ITO_TEST_OK, nRetVal4 = ITO_TEST_OK, nRetVal5 = ITO_TEST_OK; + u32 i = 0; + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaAlloc(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DBG("short test start\n"); + + DrvPlatformLyrSetIicDataRate(g_I2cClient, 50000); //50 KHZ + + DrvPlatformLyrDisableFingerTouchReport(); + DrvPlatformLyrTouchDeviceResetHw(); + + if (!_DrvMpTestItoTestChooseTpType()) + { + DBG("Choose Tp Type failed\n"); + nRetVal1 = ITO_TEST_GET_TP_TYPE_ERROR; + goto ITO_TEST_END; + } + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop cpu + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + mdelay(50); + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + _gRawData1[i] = 0; + _gRawData2[i] = 0; + _gRawData3[i] = 0; + _gRawData4[i] = 0; + _gDataFlag1[i] = 0; + _gDataFlag2[i] = 0; + _gDataFlag3[i] = 0; + _gDataFlag4[i] = 0; + } + + _gTestFailChannelCount = 0; // Reset _gTestFailChannelCount to 0 before test start + +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + _DrvMpTestItoShortTestMsg21xxaFirst(1, _gRawData1, _gDataFlag1); +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + _DrvMpTestItoShortTestMsg22xxFirst(1, _gRawData1, _gDataFlag1); +#endif + + nRetVal2 = _DrvMpTestItoShortTestSecond(1); + +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + _DrvMpTestItoShortTestMsg21xxaFirst(2, _gRawData2, _gDataFlag2); +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + _DrvMpTestItoShortTestMsg22xxFirst(2, _gRawData2, _gDataFlag2); +#endif + + nRetVal3 = _DrvMpTestItoShortTestSecond(2); + +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + _DrvMpTestItoShortTestMsg21xxaFirst(3, _gRawData3, _gDataFlag3); +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + _DrvMpTestItoShortTestMsg22xxFirst(3, _gRawData3, _gDataFlag3); +#endif + + nRetVal4 = _DrvMpTestItoShortTestSecond(3); + + if (_gIsEnable2R) + { +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) + _DrvMpTestItoShortTestMsg21xxaFirst(0, _gRawData4, _gDataFlag4); +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) + _DrvMpTestItoShortTestMsg22xxFirst(0, _gRawData4, _gDataFlag4); +#endif + + nRetVal5 = _DrvMpTestItoShortTestSecond(0); + } + + ITO_TEST_END: +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaFree(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DrvPlatformLyrSetIicDataRate(g_I2cClient, 100000); //100 KHZ + + DrvPlatformLyrTouchDeviceResetHw(); + DrvPlatformLyrEnableFingerTouchReport(); + + DBG("short test end\n"); + + if ((nRetVal1 != ITO_TEST_OK) && (nRetVal2 == ITO_TEST_OK) && (nRetVal3 == ITO_TEST_OK) && (nRetVal4 == ITO_TEST_OK) && (nRetVal5 == ITO_TEST_OK)) + { + return ITO_TEST_GET_TP_TYPE_ERROR; + } + else if ((nRetVal1 == ITO_TEST_OK) && ((nRetVal2 != ITO_TEST_OK) || (nRetVal3 != ITO_TEST_OK) || (nRetVal4 != ITO_TEST_OK) || (nRetVal5 != ITO_TEST_OK))) + { + return ITO_TEST_FAIL; + } + else + { + return ITO_TEST_OK; + } +} + +/* +static s32 DrvMpTestProcReadDebug(char *page, char **start, off_t off, int count, int *eof, void *data) +{ + s32 nCount = 0; + + DBG("*** %s() ***\n", __func__); + + _gItoTestResult = _DrvMpTestItoOpenTest(); + + if (ITO_TEST_OK == _gItoTestResult) + { + DBG("ITO_TEST_OK"); + } + else if (ITO_TEST_FAIL == _gItoTestResult) + { + DBG("ITO_TEST_FAIL"); + } + else if (ITO_TEST_GET_TP_TYPE_ERROR == _gItoTestResult) + { + DBG("ITO_TEST_GET_TP_TYPE_ERROR"); + } + + *eof = 1; + + return nCount; +} + +static s32 DrvMpTestProcWriteDebug(struct file *file, const char *buffer, unsigned long count, void *data) +{ + u32 i; + + DBG("*** %s() ***\n", __func__); + + DBG("ito test result : %d", _gItoTestResult); + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + DBG("_gRawData1[%d]=%d\n", i, _gRawData1[i]); + } + mdelay(5); + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + DBG("_gRawData2[%d]=%d\n", i, _gRawData2[i]); + } + mdelay(5); + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + DBG("_gRawData3[%d]=%d;\n",i , _gRawData3[i]); + } + mdelay(5); + + return count; +} +*/ + +static void _DrvMpTestItoTestDoWork(struct work_struct *pWork) +{ + s32 nRetVal = ITO_TEST_OK; + + DBG("*** %s() _gIsInMpTest = %d, _gTestRetryCount = %d ***\n", __func__, _gIsInMpTest, _gTestRetryCount); + + if (_gItoTestMode == ITO_TEST_MODE_OPEN_TEST) + { + nRetVal = _DrvMpTestItoOpenTest(); + } + else if (_gItoTestMode == ITO_TEST_MODE_SHORT_TEST) + { + nRetVal = _DrvMpTestItoShortTest(); + } + else + { + DBG("*** Undefined Mp Test Mode = %d ***\n", _gItoTestMode); + return; + } + + DBG("*** ctp mp test result = %d ***\n", nRetVal); + + if (nRetVal == ITO_TEST_OK) + { + _gCtpMpTestStatus = ITO_TEST_OK; + _gIsInMpTest = 0; + DBG("mp test success\n"); + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + DrvFwCtrlRestoreFirmwareModeToLogDataMode(); +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + } + else + { + _gTestRetryCount --; + if (_gTestRetryCount > 0) + { + DBG("_gTestRetryCount = %d\n", _gTestRetryCount); + queue_work(_gCtpMpTestWorkQueue, &_gCtpItoTestWork); + } + else + { + if (nRetVal == ITO_TEST_FAIL) + { + _gCtpMpTestStatus = ITO_TEST_FAIL; + } + else if (nRetVal == ITO_TEST_GET_TP_TYPE_ERROR) + { + _gCtpMpTestStatus = ITO_TEST_GET_TP_TYPE_ERROR; + } + else + { + _gCtpMpTestStatus = ITO_TEST_UNDEFINED_ERROR; + } + + _gIsInMpTest = 0; + DBG("mp test failed\n"); + +#ifdef CONFIG_ENABLE_FIRMWARE_DATA_LOG + DrvFwCtrlRestoreFirmwareModeToLogDataMode(); +#endif //CONFIG_ENABLE_FIRMWARE_DATA_LOG + } + } +} + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +/* +void DrvMpTestCreateProcEntry(void) +{ + _gMsgItoTest = proc_mkdir(PROC_MSG_ITO_TEST, NULL); + _gDebug = create_proc_entry(PROC_ITO_TEST_DEBUG, 0777, _gMsgItoTest); + + if (NULL == _gDebug) + { + DBG("create_proc_entry PROC_ITO_TEST_DEBUG FAIL\n"); + } + else + { + _gDebug->read_proc = DrvMpTestProcReadDebug; + _gDebug->write_proc = DrvMpTestProcWriteDebug; + DBG("create_proc_entry PROC_ITO_TEST_DEBUG OK\n"); + } +} +*/ + +s32 DrvMpTestGetTestResult(void) +{ + DBG("*** %s() ***\n", __func__); + DBG("_gCtpMpTestStatus = %d\n", _gCtpMpTestStatus); + + return _gCtpMpTestStatus; +} + +void DrvMpTestGetTestFailChannel(ItoTestMode_e eItoTestMode, u8 *pFailChannel, u32 *pFailChannelCount) +{ + u32 i; + + DBG("*** %s() ***\n", __func__); + DBG("_gTestFailChannelCount = %d\n", _gTestFailChannelCount); + + for (i = 0; i < _gTestFailChannelCount; i ++) + { + pFailChannel[i] = _gTestFailChannel[i]; + } + + *pFailChannelCount = _gTestFailChannelCount; +} + +void DrvMpTestGetTestDataLog(ItoTestMode_e eItoTestMode, u8 *pDataLog, u32 *pLength) +{ + u32 i; + u8 nHighByte, nLowByte; + + DBG("*** %s() ***\n", __func__); + + if (eItoTestMode == ITO_TEST_MODE_OPEN_TEST) + { + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + nHighByte = (_gRawData1[i] >> 8) & 0xFF; + nLowByte = (_gRawData1[i]) & 0xFF; + + if (_gDataFlag1[i] == 1) + { + pDataLog[i*4] = 1; // indicate it is a on-use channel number + } + else + { + pDataLog[i*4] = 0; // indicate it is a non-use channel number + } + + if (_gRawData1[i] >= 0) + { + pDataLog[i*4+1] = 0; // + : a positive number + } + else + { + pDataLog[i*4+1] = 1; // - : a negative number + } + + pDataLog[i*4+2] = nHighByte; + pDataLog[i*4+3] = nLowByte; + } + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + nHighByte = (_gRawData2[i] >> 8) & 0xFF; + nLowByte = (_gRawData2[i]) & 0xFF; + + if (_gDataFlag2[i] == 1) + { + pDataLog[i*4+MAX_CHANNEL_NUM*4] = 1; // indicate it is a on-use channel number + } + else + { + pDataLog[i*4+MAX_CHANNEL_NUM*4] = 0; // indicate it is a non-use channel number + } + + if (_gRawData2[i] >= 0) + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*4] = 0; // + : a positive number + } + else + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*4] = 1; // - : a negative number + } + + pDataLog[(i*4+2)+MAX_CHANNEL_NUM*4] = nHighByte; + pDataLog[(i*4+3)+MAX_CHANNEL_NUM*4] = nLowByte; + } + + *pLength = MAX_CHANNEL_NUM*8; + } + else if (eItoTestMode == ITO_TEST_MODE_SHORT_TEST) + { + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + nHighByte = (_gRawData1[i] >> 8) & 0xFF; + nLowByte = (_gRawData1[i]) & 0xFF; + + if (_gDataFlag1[i] == 1) + { + pDataLog[i*4] = 1; // indicate it is a on-use channel number + } + else + { + pDataLog[i*4] = 0; // indicate it is a non-use channel number + } + + if (_gRawData1[i] >= 0) + { + pDataLog[i*4+1] = 0; // + : a positive number + } + else + { + pDataLog[i*4+1] = 1; // - : a negative number + } + + pDataLog[i*4+2] = nHighByte; + pDataLog[i*4+3] = nLowByte; + } + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + nHighByte = (_gRawData2[i] >> 8) & 0xFF; + nLowByte = (_gRawData2[i]) & 0xFF; + + if (_gDataFlag2[i] == 1) + { + pDataLog[i*4+MAX_CHANNEL_NUM*4] = 1; // indicate it is a on-use channel number + } + else + { + pDataLog[i*4+MAX_CHANNEL_NUM*4] = 0; // indicate it is a non-use channel number + } + + if (_gRawData2[i] >= 0) + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*4] = 0; // + : a positive number + } + else + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*4] = 1; // - : a negative number + } + + pDataLog[i*4+2+MAX_CHANNEL_NUM*4] = nHighByte; + pDataLog[i*4+3+MAX_CHANNEL_NUM*4] = nLowByte; + } + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + nHighByte = (_gRawData3[i] >> 8) & 0xFF; + nLowByte = (_gRawData3[i]) & 0xFF; + + if (_gDataFlag3[i] == 1) + { + pDataLog[i*4+MAX_CHANNEL_NUM*8] = 1; // indicate it is a on-use channel number + } + else + { + pDataLog[i*4+MAX_CHANNEL_NUM*8] = 0; // indicate it is a non-use channel number + } + + if (_gRawData3[i] >= 0) + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*8] = 0; // + : a positive number + } + else + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*8] = 1; // - : a negative number + } + + pDataLog[(i*4+2)+MAX_CHANNEL_NUM*8] = nHighByte; + pDataLog[(i*4+3)+MAX_CHANNEL_NUM*8] = nLowByte; + } + + if (_gIsEnable2R) + { + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + nHighByte = (_gRawData4[i] >> 8) & 0xFF; + nLowByte = (_gRawData4[i]) & 0xFF; + + if (_gDataFlag4[i] == 1) + { + pDataLog[i*4+MAX_CHANNEL_NUM*12] = 1; // indicate it is a on-use channel number + } + else + { + pDataLog[i*4+MAX_CHANNEL_NUM*12] = 0; // indicate it is a non-use channel number + } + + if (_gRawData4[i] >= 0) + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*12] = 0; // + : a positive number + } + else + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*12] = 1; // - : a negative number + } + + pDataLog[(i*4+2)+MAX_CHANNEL_NUM*12] = nHighByte; + pDataLog[(i*4+3)+MAX_CHANNEL_NUM*12] = nLowByte; + } + } + + *pLength = MAX_CHANNEL_NUM*16; + } + else + { + DBG("*** Undefined MP Test Mode ***\n"); + } +} + +void DrvMpTestScheduleMpTestWork(ItoTestMode_e eItoTestMode) +{ + DBG("*** %s() ***\n", __func__); + + if (_gIsInMpTest == 0) + { + DBG("ctp mp test start\n"); + + _gItoTestMode = eItoTestMode; + _gIsInMpTest = 1; + _gTestRetryCount = CTP_MP_TEST_RETRY_COUNT; + _gCtpMpTestStatus = ITO_TEST_UNDER_TESTING; + + queue_work(_gCtpMpTestWorkQueue, &_gCtpItoTestWork); + } +} + +void DrvMpTestCreateMpTestWorkQueue(void) +{ + DBG("*** %s() ***\n", __func__); + + _gCtpMpTestWorkQueue = create_singlethread_workqueue("ctp_mp_test"); + INIT_WORK(&_gCtpItoTestWork, _DrvMpTestItoTestDoWork); +} + +#endif //CONFIG_ENABLE_ITO_MP_TEST \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_self_mp_test.h b/drivers/input/touchscreen/msg2138/mstar_drv_self_mp_test.h new file mode 100644 index 00000000..2dba1a7d --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_self_mp_test.h @@ -0,0 +1,99 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_self_mp_test.h + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +#ifndef __MSTAR_DRV_SELF_MP_TEST_H__ +#define __MSTAR_DRV_SELF_MP_TEST_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include "mstar_drv_common.h" + +#ifdef CONFIG_ENABLE_ITO_MP_TEST + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR CONSTANT DEFINITION */ +/*--------------------------------------------------------------------------*/ + +#define CTP_MP_TEST_RETRY_COUNT (3) + + +#define OPEN_TEST_NON_BORDER_AREA_THRESHOLD (35) // range : 25~60 +#define OPEN_TEST_BORDER_AREA_THRESHOLD (40) // range : 25~60 + +#define SHORT_TEST_THRESHOLD (3500) + +#define MP_TEST_MODE_OPEN_TEST (0x01) +#define MP_TEST_MODE_SHORT_TEST (0x02) + +#define MAX_CHANNEL_NUM (48) + +#if defined(CONFIG_ENABLE_CHIP_MSG21XXA) +#define PIN_GUARD_RING (46) // For MSG21XXA +#define GPO_SETTING_SIZE (3) // For MSG21XXA +#elif defined(CONFIG_ENABLE_CHIP_MSG22XX) +#define RIU_BASE_ADDR (0) // For MSG22XX +#define RIU_WRITE_LENGTH (144) // For MSG22XX +#define CSUB_REF (0) //(18) // For MSG22XX +#define CSUB_REF_MAX (0x3F) // For MSG22XX +#endif + +#define REG_INTR_FIQ_MASK (0x04) +#define FIQ_E_FRAME_READY_MASK (1 << 8) + + +//#define PROC_MSG_ITO_TEST "msg-ito-test" +//#define PROC_ITO_TEST_DEBUG "debug" + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR MACRO DEFINITION */ +/*--------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------*/ +/* DATA TYPE DEFINITION */ +/*--------------------------------------------------------------------------*/ + + +/*--------------------------------------------------------------------------*/ +/* GLOBAL VARIABLE DEFINITION */ +/*--------------------------------------------------------------------------*/ + + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +extern void DrvMpTestCreateMpTestWorkQueue(void); +extern void DrvMpTestGetTestDataLog(ItoTestMode_e eItoTestMode, u8 *pDataLog, u32 *pLength); +extern void DrvMpTestGetTestFailChannel(ItoTestMode_e eItoTestMode, u8 *pFailChannel, u32 *pFailChannelCount); +extern s32 DrvMpTestGetTestResult(void); +extern void DrvMpTestScheduleMpTestWork(ItoTestMode_e eItoTestMode); + +#endif //CONFIG_ENABLE_ITO_MP_TEST + +#endif /* __MSTAR_DRV_SELF_MP_TEST_H__ */ \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_sprd.c b/drivers/input/touchscreen/msg2138/mstar_drv_sprd.c new file mode 100644 index 00000000..03c0ad7a --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_sprd.c @@ -0,0 +1,238 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_sprd.c + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "mstar_drv_platform_interface.h" + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON +#include +#include +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + +#include +#include +#include + +/*=============================================================*/ +// CONSTANT VALUE DEFINITION +/*=============================================================*/ +//#define MSG_TP_IC_NAME "pixcir_ts" //"msg21xxA" or "msg22xx" or "msg26xxM" /* Please define the mstar touch ic name based on the mutual-capacitive ic or self capacitive ic that you are using */ +/*=============================================================*/ +// VARIABLE DEFINITION +/*=============================================================*/ + +struct i2c_client *g_I2cClient = NULL; +int TOUCH_SCREEN_X_MAX = 0; +int TOUCH_SCREEN_Y_MAX = 0; +int MS_TS_MSG_IC_GPIO_RST = 0; +int MS_TS_MSG_IC_GPIO_INT = 0; + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON +struct regulator *g_ReguVdd = NULL; +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + +#ifdef CONFIG_OF +static struct msg2138_ts_platform_data *pixcir_ts_parse_dt(struct device *dev) +{ + struct msg2138_ts_platform_data *pdata = NULL; + struct device_node *np = dev->of_node; + int ret; + + pdata = kzalloc(sizeof(*pdata), GFP_KERNEL); + if (!pdata) { + dev_err(dev, "Could not allocate struct msg2138_ts_platform_data"); + return NULL; + } + pdata->reset_gpio_number = of_get_gpio(np, 0); + if(pdata->reset_gpio_number < 0){ + dev_err(dev, "fail to get reset_gpio_number\n"); + goto fail; + } + pdata->irq_gpio_number = of_get_gpio(np, 1); + if(pdata->irq_gpio_number < 0){ + dev_err(dev, "fail to get irq_gpio_number\n"); + goto fail; + } + ret = of_property_read_string(np, "vdd_name", &pdata->vdd_name); + if(ret){ + dev_err(dev, "fail to get vdd_name\n"); + goto fail; + } + ret = of_property_read_u32_array(np, "virtualkeys", &pdata->virtualkeys,12); + if(ret){ + dev_err(dev, "fail to get virtualkeys\n"); + goto fail; + } + ret = of_property_read_u32(np, "TP_MAX_X", &pdata->TP_MAX_X); + if(ret){ + dev_err(dev, "fail to get TP_MAX_X\n"); + goto fail; + } + ret = of_property_read_u32(np, "TP_MAX_Y", &pdata->TP_MAX_Y); + if(ret){ + dev_err(dev, "fail to get TP_MAX_Y\n"); + goto fail; + } + + return pdata; +fail: + kfree(pdata); + return NULL; +} +#endif + +/*=============================================================*/ +// FUNCTION DEFINITION +/*=============================================================*/ + +/* probe function is used for matching and initializing input device */ +static int /*__devinit*/ touch_driver_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct msg2138_ts_platform_data *pdata = client->dev.platform_data; + int err = 0, i = 0; + + DBG("*** %s ***\n", __FUNCTION__); + + if (client == NULL) + { + DBG("i2c client is NULL\n"); + return -1; + } + +#ifdef CONFIG_OF + struct device_node *np = client->dev.of_node; + if (np && !pdata){ + pdata = pixcir_ts_parse_dt(&client->dev); + if(pdata){ + client->dev.platform_data = pdata; + } else { + err = -ENOMEM; + goto exit_alloc_platform_data_failed; + } + } +#endif + + g_I2cClient = client; + MS_TS_MSG_IC_GPIO_RST = pdata->reset_gpio_number; + MS_TS_MSG_IC_GPIO_INT = pdata->irq_gpio_number; + TOUCH_SCREEN_X_MAX = pdata->TP_MAX_X; + TOUCH_SCREEN_Y_MAX = pdata->TP_MAX_Y; + + for(i=0; idev, pdata->vdd_name); +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + + return MsDrvInterfaceTouchDeviceProbe(g_I2cClient, id); +exit_alloc_platform_data_failed: + return err; +} + +/* remove function is triggered when the input device is removed from input sub-system */ +static int /*__devexit*/ touch_driver_remove(struct i2c_client *client) +{ + DBG("*** %s ***\n", __FUNCTION__); + + return MsDrvInterfaceTouchDeviceRemove(client); +} + +/* The I2C device list is used for matching I2C device and I2C device driver. */ +static const struct i2c_device_id touch_device_id[] = +{ + {MSG_TP_IC_NAME, MSG_TP_I2C_ADDR}, //SLAVE_I2C_ID_DWI2C + {}, /* should not omitted */ +}; + +MODULE_DEVICE_TABLE(i2c, touch_device_id); + +static const struct of_device_id msg2138_of_match[] = { + { .compatible = "Mstar,msg2138_ts", }, + { } +}; +MODULE_DEVICE_TABLE(of, msg2138_of_match); + +static struct i2c_driver touch_device_driver = +{ + .driver = { + .name = MSG_TP_IC_NAME, + .owner = THIS_MODULE, + .of_match_table = msg2138_of_match, + }, + .probe = touch_driver_probe, + .remove = touch_driver_remove, +/* .remove = __devexit_p(touch_driver_remove), */ + .id_table = touch_device_id, +}; + +static int /*__init*/ touch_driver_init(void) +{ + int ret; + + /* register driver */ + ret = i2c_add_driver(&touch_device_driver); + if (ret < 0) + { + DBG("add touch device driver i2c driver failed.\n"); + return -ENODEV; + } + DBG("add touch device driver i2c driver.\n"); + + return ret; +} + +static void /*__exit*/ touch_driver_exit(void) +{ + DBG("remove touch device driver i2c driver.\n"); + + i2c_del_driver(&touch_device_driver); +} + +module_init(touch_driver_init); +module_exit(touch_driver_exit); +MODULE_LICENSE("GPL"); \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_utility_adaption.c b/drivers/input/touchscreen/msg2138/mstar_drv_utility_adaption.c new file mode 100644 index 00000000..7a2b4738 --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_utility_adaption.c @@ -0,0 +1,405 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_utility_adaption.c + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +//////////////////////////////////////////////////////////// +/// Included Files +//////////////////////////////////////////////////////////// +#include "mstar_drv_utility_adaption.h" + +//////////////////////////////////////////////////////////// +/// Data Types +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Constant +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Variables +//////////////////////////////////////////////////////////// +extern struct i2c_client *g_I2cClient; + +//////////////////////////////////////////////////////////// +/// Macro +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Function Prototypes +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Function Implementation +//////////////////////////////////////////////////////////// + + +#ifdef CONFIG_ENABLE_DMA_IIC +#include +#include +#include +#include +#include +#include + +static unsigned char *I2CDMABuf_va = NULL; +static volatile unsigned int I2CDMABuf_pa = NULL; + +void DmaAlloc(void) +{ + if (NULL == I2CDMABuf_va) + { + I2CDMABuf_va = (u8 *)dma_alloc_coherent(NULL, 4096, &I2CDMABuf_pa, GFP_KERNEL); + } + + if (NULL == I2CDMABuf_va) + { + DBG("DrvCommonDmaAlloc FAILED!"); + } + else + { + DBG("DrvCommonDmaAlloc SUCCESS!"); + } +} + +void DmaFree(void) +{ + if (NULL != I2CDMABuf_va) + { + dma_free_coherent(NULL, 4096, I2CDMABuf_va, I2CDMABuf_pa); + I2CDMABuf_va = NULL; + I2CDMABuf_pa = 0; + } +} +#endif //CONFIG_ENABLE_DMA_IIC + +//------------------------------------------------------------------------------// + +u16 RegGet16BitValue(u16 nAddr) +{ + u8 tx_data[3] = {0x10, (nAddr >> 8) & 0xFF, nAddr & 0xFF}; + u8 rx_data[2] = {0}; + IicWriteData(SLAVE_I2C_ID_DBBUS, &tx_data[0], 3); + IicReadData(SLAVE_I2C_ID_DBBUS, &rx_data[0], 2); + + return (rx_data[1] << 8 | rx_data[0]); +} + +u8 RegGetLByteValue(u16 nAddr) +{ + u8 tx_data[3] = {0x10, (nAddr >> 8) & 0xFF, nAddr & 0xFF}; + u8 rx_data = {0}; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &tx_data[0], 3); + IicReadData(SLAVE_I2C_ID_DBBUS, &rx_data, 1); + + return (rx_data); +} + +u8 RegGetHByteValue(u16 nAddr) +{ + u8 tx_data[3] = {0x10, (nAddr >> 8) & 0xFF, (nAddr & 0xFF) + 1}; + u8 rx_data = {0}; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &tx_data[0], 3); + IicReadData(SLAVE_I2C_ID_DBBUS, &rx_data, 1); + + return (rx_data); +} + +void RegSet16BitValue(u16 nAddr, u16 nData) +{ + u8 tx_data[5] = {0x10, (nAddr >> 8) & 0xFF, nAddr & 0xFF, nData & 0xFF, nData >> 8}; + IicWriteData(SLAVE_I2C_ID_DBBUS, &tx_data[0], 5); +} + +void RegSetLByteValue(u16 nAddr, u8 nData) +{ + u8 tx_data[4] = {0x10, (nAddr >> 8) & 0xFF, nAddr & 0xFF, nData}; + IicWriteData(SLAVE_I2C_ID_DBBUS, &tx_data[0], 4); +} + +void RegSetHByteValue(u16 nAddr, u8 nData) +{ + u8 tx_data[4] = {0x10, (nAddr >> 8) & 0xFF, (nAddr & 0xFF) + 1, nData}; + IicWriteData(SLAVE_I2C_ID_DBBUS, &tx_data[0], 4); +} + +void RegSet16BitValueOn(u16 nAddr, u16 nData) //Set bit on nData from 0 to 1 +{ + u16 rData = RegGet16BitValue(nAddr); + rData |= nData; + RegSet16BitValue(nAddr, rData); +} + +void RegSet16BitValueOff(u16 nAddr, u16 nData) //Set bit on nData from 1 to 0 +{ + u16 rData = RegGet16BitValue(nAddr); + rData &= (~nData); + RegSet16BitValue(nAddr, rData); +} + +void DbBusEnterSerialDebugMode(void) +{ + u8 data[5]; + + // Enter the Serial Debug Mode + data[0] = 0x53; + data[1] = 0x45; + data[2] = 0x52; + data[3] = 0x44; + data[4] = 0x42; + + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 5); +} + +void DbBusExitSerialDebugMode(void) +{ + u8 data[1]; + + // Exit the Serial Debug Mode + data[0] = 0x45; + + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 1); + + // Delay some interval to guard the next transaction +// udelay(200); // delay about 0.2ms +} + +void DbBusIICUseBus(void) +{ + u8 data[1]; + + // IIC Use Bus + data[0] = 0x35; + + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 1); +} + +void DbBusIICNotUseBus(void) +{ + u8 data[1]; + + // IIC Not Use Bus + data[0] = 0x34; + + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 1); +} + +void DbBusIICReshape(void) +{ + u8 data[1]; + + // IIC Re-shape + data[0] = 0x71; + + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 1); +} + +void DbBusStopMCU(void) +{ + u8 data[1]; + + // Stop the MCU + data[0] = 0x37; + + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 1); +} + +void DbBusNotStopMCU(void) +{ + u8 data[1]; + + // Not Stop the MCU + data[0] = 0x36; + + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 1); +} + +s32 IicWriteData(u8 nSlaveId, u8* pBuf, u16 nSize) +{ + s32 rc = 0; + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + struct i2c_msg msgs[] = + { + { + .addr = nSlaveId, + .flags = 0, // if read flag is undefined, then it means write flag. + .len = nSize, + .buf = pBuf, + }, + }; + + /* If everything went ok (i.e. 1 msg transmitted), return #bytes + transmitted, else error code. */ + if (g_I2cClient != NULL) + { + rc = i2c_transfer(g_I2cClient->adapter, msgs, 1); + if (rc < 0) + { + PRINTF_ERR("IicWriteData() error %d\n", rc); + } + } + else + { + PRINTF_ERR("i2c client is NULL\n"); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + if (g_I2cClient != NULL) + { + u8 nAddrBefore = g_I2cClient->addr; + g_I2cClient->addr = nSlaveId; +// g_I2cClient->addr = (g_I2cClient->addr & I2C_MASK_FLAG ) | (I2C_ENEXT_FLAG); + +#ifdef CONFIG_ENABLE_DMA_IIC + if (nSize > 8 && NULL != I2CDMABuf_va) + { + s32 i = 0; + + for (i = 0; i < nSize; i ++) + { + I2CDMABuf_va[i] = pBuf[i]; + } + g_I2cClient->ext_flag = g_I2cClient->ext_flag | I2C_DMA_FLAG; + rc = i2c_master_send(g_I2cClient, (unsigned char *)I2CDMABuf_pa, nSize); + } + else + { + g_I2cClient->ext_flag = g_I2cClient->ext_flag & (~I2C_DMA_FLAG); + rc = i2c_master_send(g_I2cClient, pBuf, nSize); + } +#else + rc = i2c_master_send(g_I2cClient, pBuf, nSize); +#endif //CONFIG_ENABLE_DMA_IIC + g_I2cClient->addr = nAddrBefore; + + if (rc < 0) + { + PRINTF_ERR("IicWriteData() error %d, nSlaveId=%d, nSize=%d\n", rc, nSlaveId, nSize); + } + } + else + { + PRINTF_ERR("i2c client is NULL\n"); + } +#endif + + return rc; +} + +s32 IicReadData(u8 nSlaveId, u8* pBuf, u16 nSize) +{ + s32 rc = 0; + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + struct i2c_msg msgs[] = + { + { + .addr = nSlaveId, + .flags = I2C_M_RD, // read flag + .len = nSize, + .buf = pBuf, + }, + }; + + /* If everything went ok (i.e. 1 msg transmitted), return #bytes + transmitted, else error code. */ + if (g_I2cClient != NULL) + { + rc = i2c_transfer(g_I2cClient->adapter, msgs, 1); + if (rc < 0) + { + PRINTF_ERR("IicReadData() error %d\n", rc); + } + } + else + { + PRINTF_ERR("i2c client is NULL\n"); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + if (g_I2cClient != NULL) + { + u8 nAddrBefore = g_I2cClient->addr; + g_I2cClient->addr = nSlaveId; +// g_I2cClient->addr = (g_I2cClient->addr & I2C_MASK_FLAG) | (I2C_ENEXT_FLAG); + +#ifdef CONFIG_ENABLE_DMA_IIC + if (nSize > 8 && NULL != I2CDMABuf_va) + { + s32 i = 0; + + g_I2cClient->ext_flag = g_I2cClient->ext_flag | I2C_DMA_FLAG; + rc = i2c_master_recv(g_I2cClient, (unsigned char *)I2CDMABuf_pa, nSize); + + for (i = 0; i < nSize; i ++) + { + pBuf[i] = I2CDMABuf_va[i]; + } + } + else + { + g_I2cClient->ext_flag = g_I2cClient->ext_flag & (~I2C_DMA_FLAG); + rc = i2c_master_recv(g_I2cClient, pBuf, nSize); + } +#else + rc = i2c_master_recv(g_I2cClient, pBuf, nSize); +#endif //CONFIG_ENABLE_DMA_IIC + g_I2cClient->addr = nAddrBefore; + + if (rc < 0) + { + PRINTF_ERR("IicReadData() error %d, nSlaveId=%d, nSize=%d\n", rc, nSlaveId, nSize); + } + } + else + { + PRINTF_ERR("i2c client is NULL\n"); + } +#endif + + return rc; +} + +void mstpMemSet(void *pDst, s8 nVal, u32 nSize) +{ + memset(pDst, nVal, nSize); +} + +void mstpMemCopy(void *pDst, void *pSource, u32 nSize) +{ + memcpy(pDst, pSource, nSize); +} + +void mstpDelay(u32 nTime) +{ + mdelay(nTime); +} + +//------------------------------------------------------------------------------// diff --git a/drivers/input/touchscreen/msg2138/mstar_drv_utility_adaption.h b/drivers/input/touchscreen/msg2138/mstar_drv_utility_adaption.h new file mode 100644 index 00000000..5e729569 --- /dev/null +++ b/drivers/input/touchscreen/msg2138/mstar_drv_utility_adaption.h @@ -0,0 +1,101 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_utility_adaption.h + * + * @brief This file defines the interface of touch screen + * + * @version v2.2.0.0 + * + */ + +#ifndef __MSTAR_DRV_UTILITY_ADAPTION_H__ +#define __MSTAR_DRV_UTILITY_ADAPTION_H__ (1) + + +//////////////////////////////////////////////////////////// +/// Included Files +//////////////////////////////////////////////////////////// + +#include "mstar_drv_common.h" + +//////////////////////////////////////////////////////////// +/// Constant +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Data Types +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Variables +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Macro +//////////////////////////////////////////////////////////// +#define BK_REG8_WL(addr,val) ( RegSetLByteValue( addr, val ) ) +#define BK_REG8_WH(addr,val) ( RegSetHByteValue( addr, val ) ) +#define BK_REG16_W(addr,val) ( RegSet16BitValue( addr, val ) ) +#define BK_REG8_RL(addr) ( RegGetLByteValue( addr ) ) +#define BK_REG8_RH(addr) ( RegGetHByteValue( addr ) ) +#define BK_REG16_R(addr) ( RegGet16BitValue( addr ) ) + +#define PRINTF_EMERG(fmt, ...) printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__) +#define PRINTF_ALERT(fmt, ...) printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__) +#define PRINTF_CRIT(fmt, ...) printk(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__) +#define PRINTF_ERR(fmt, ...) printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__) +#define PRINTF_WARN(fmt, ...) printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__) +#define PRINTF_NOTICE(fmt, ...) printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__) +#define PRINTF_INFO(fmt, ...) printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) +#define PRINTF_DEBUG(fmt, ...) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__) + +//////////////////////////////////////////////////////////// +/// Function Prototypes +//////////////////////////////////////////////////////////// + +#ifdef CONFIG_ENABLE_DMA_IIC +extern void DmaAlloc(void); +extern void DmaFree(void); +#endif //CONFIG_ENABLE_DMA_IIC +extern u16 RegGet16BitValue(u16 nAddr); +extern u8 RegGetLByteValue(u16 nAddr); +extern u8 RegGetHByteValue(u16 nAddr); +extern void RegSet16BitValue(u16 nAddr, u16 nData); +extern void RegSetLByteValue(u16 nAddr, u8 nData); +extern void RegSetHByteValue(u16 nAddr, u8 nData); +extern void RegSet16BitValueOn(u16 nAddr, u16 nData); +extern void RegSet16BitValueOff(u16 nAddr, u16 nData); +extern void DbBusEnterSerialDebugMode(void); +extern void DbBusExitSerialDebugMode(void); +extern void DbBusIICUseBus(void); +extern void DbBusIICNotUseBus(void); +extern void DbBusIICReshape(void); +extern void DbBusStopMCU(void); +extern void DbBusNotStopMCU(void); +extern s32 IicWriteData(u8 nSlaveId, u8* pBuf, u16 nSize); +extern s32 IicReadData(u8 nSlaveId, u8* pBuf, u16 nSize); +extern void mstpMemSet(void *pDst, s8 nVal, u32 nSize); +extern void mstpMemCopy(void *pDst, void *pSource, u32 nSize); +extern void mstpDelay(u32 nTime); + +#endif // __MSTAR_DRV_UTILITY_ADAPTION_H__ diff --git a/drivers/input/touchscreen/msg2233/Makefile b/drivers/input/touchscreen/msg2233/Makefile new file mode 100644 index 00000000..3d778e5b --- /dev/null +++ b/drivers/input/touchscreen/msg2233/Makefile @@ -0,0 +1,20 @@ +# +# Makefile for the input core drivers. +# + +# Each configuration option enables a list of files. +obj-y += mstar_drv_sprd.o \ + mstar_drv_common.o \ + mstar_drv_ic_fw_porting_layer.o \ + mstar_drv_main.o \ + mstar_drv_platform_interface.o \ + mstar_drv_platform_porting_layer.o \ + mstar_drv_self_fw_control.o \ + mstar_drv_utility_adaption.o \ + mstar_drv_hotknot.o \ + mstar_drv_hotknot_queue.o \ + mstar_drv_jni_interface.o \ + mstar_drv_mutual_fw_control.o \ + mstar_drv_mutual_mp_test.o \ + mstar_drv_self_mp_test.o \ +# end diff --git a/drivers/input/touchscreen/msg2233/msg21xxa_xxxx_update_bin.h b/drivers/input/touchscreen/msg2233/msg21xxa_xxxx_update_bin.h new file mode 100755 index 00000000..960c4716 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/msg21xxa_xxxx_update_bin.h @@ -0,0 +1,3106 @@ +u8 msg21xxa_xxxx_update_bin[49664]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xF2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x0B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xFD,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xEF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xE1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xD3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xC5,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x1C,0x40,0x00,0x1C, +0x60,0x00,0x1C,0x80,0x00,0x1C,0xA0,0x00,0x1C,0xC0,0x00,0x1C,0xE0,0x00,0x1D,0x00, +0x00,0x1D,0x20,0x00,0x1D,0x40,0x00,0x1D,0x60,0x00,0x1D,0x80,0x00,0x1D,0xA0,0x00, +0x1D,0xC0,0x00,0x1D,0xE0,0x00,0x1E,0x00,0x00,0x1E,0x20,0x00,0x1E,0x40,0x00,0x1E, +0x60,0x00,0x1E,0x80,0x00,0x1E,0xA0,0x00,0x1E,0xC0,0x00,0x1E,0xE0,0x00,0x1F,0x00, +0x00,0x1F,0x20,0x00,0x1F,0x40,0x00,0x1F,0x60,0x00,0x1F,0x80,0x00,0x1F,0xA0,0x00, +0x1F,0xC0,0x00,0x1F,0xE0,0x00,0xC0,0x60,0x00,0x01,0xC8,0x63,0xAC,0x04,0x84,0x69, +0x80,0x01,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00, +0xFC,0x21,0xFF,0x60,0xEF,0xE1,0x00,0x80,0xFF,0xE1,0x00,0xA0,0x0F,0xE1,0x08,0xC3, +0xE0,0x02,0x0F,0x0F,0xE1,0x00,0xC3,0xE0,0x04,0x0F,0x0F,0xE1,0x04,0xC3,0xE0,0x03, +0x0F,0xEF,0xE1,0x00,0x84,0xC3,0xE0,0x05,0x0F,0xEF,0xE1,0x00,0x88,0xC3,0xE0,0x05, +0x1F,0xEF,0xE1,0x00,0x8C,0xE4,0x01,0x53,0x41,0x90,0x00,0x90,0x00,0x90,0x00,0x90, +0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x30,0x44,0x0B, +0x17,0x01,0x98,0x60,0x56,0xF8,0x01,0x4F,0x18,0x79,0x22,0xE0,0x14,0x98,0x62,0x23, +0x00,0x18,0x58,0x77,0x01,0x85,0x29,0x9C,0x30,0x0D,0x41,0x08,0x0C,0x81,0x04,0x0D, +0x21,0x0C,0x5D,0x43,0x00,0xE7,0xFF,0xFF,0xA4,0x0C,0x81,0x06,0x5C,0x63,0x00,0x20, +0x60,0x66,0x9B,0x00,0x21,0x40,0x30,0x21,0x44,0x24,0x5D,0x40,0x41,0x4B,0x01,0x01, +0xD0,0x81,0x04,0x66,0xE4,0x00,0x01,0x17,0xE7,0xFF,0xFF,0x5E,0x5C,0x63,0x00,0x20, +0x64,0x4E,0xD1,0x40,0x05,0xD2,0xD1,0x41,0x05,0xB2,0xD1,0x42,0x05,0x96,0xE4,0x00, +0x00,0xE3,0xE7,0xFF,0xFF,0x2A,0x5C,0x63,0x00,0xD0,0x62,0x05,0x1E,0x9B,0x01,0x21, +0x40,0x24,0x5D,0x40,0x21,0x4B,0x01,0x01,0xC2,0xF4,0x00,0x01,0xFF,0x20,0x80,0x00, +0xCB,0x57,0x23,0x78,0x0B,0x7A,0x01,0x47,0x79,0xDD,0x5F,0x7B,0x04,0x0F,0x7A,0x01, +0xCB,0x57,0x23,0x6C,0x0B,0x7A,0x01,0xC7,0x7B,0x8F,0xFF,0x0F,0x7A,0x01,0xCB,0x57, +0x3C,0xD4,0x0B,0x7A,0x01,0x47,0x79,0xDD,0x5F,0x7B,0x04,0x0F,0x7A,0x01,0xCB,0x57, +0x3C,0xE0,0x0B,0x7A,0x01,0xC7,0x7B,0x7F,0xFF,0x0F,0x7A,0x01,0xCA,0xF7,0x3C,0xEC, +0x0B,0x57,0x01,0x47,0x39,0xD5,0x5F,0x39,0x04,0x0F,0x37,0x01,0x23,0x01,0x00,0xC2, +0xF4,0x00,0x01,0xCB,0x17,0x3D,0xE8,0x0B,0x38,0x01,0xFF,0x20,0x11,0x11,0x0F,0x38, +0x01,0xCB,0x17,0x3D,0xEC,0x0B,0x38,0x01,0xFF,0x20,0x22,0x22,0x0F,0x38,0x01,0xCB, +0x17,0x3D,0xF0,0x0B,0x38,0x01,0xFF,0x20,0x33,0x33,0x0F,0x38,0x01,0xCA,0xF7,0x78, +0xC0,0xFF,0x00,0xAA,0x55,0x0F,0x17,0x01,0xE4,0x00,0x00,0x01,0x0D,0x41,0x0A,0x0D, +0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x03,0xF0,0xC2, +0xE0,0x10,0x01,0xEC,0x97,0x03,0xE8,0xC2,0xE0,0x10,0x01,0xEC,0xB7,0x03,0xEC,0xC2, +0xE0,0x10,0x01,0xEC,0xD7,0x04,0x04,0xC2,0xE0,0x10,0x01,0xEC,0xF7,0x03,0xFC,0xC2, +0xE0,0x10,0x01,0x0F,0x01,0x02,0xED,0x17,0x04,0x00,0xC2,0xE0,0x10,0x01,0xEF,0x17, +0x04,0x10,0xC2,0xE0,0x10,0x01,0x0F,0x01,0x06,0xEF,0x17,0x03,0xD4,0xC2,0xE0,0x10, +0x01,0x0F,0x01,0x0A,0xEF,0x17,0x03,0xF4,0x85,0x29,0x5C,0x84,0x00,0xC2,0xE0,0x10, +0x01,0x4C,0x84,0x10,0xFE,0xF7,0x04,0x08,0x8E,0xE4,0x0C,0x77,0x00,0x85,0x29,0x5C, +0x63,0x00,0x9B,0x00,0x24,0x68,0x25,0x1F,0x03,0xFE,0x5F,0x18,0x00,0xC2,0xE0,0x10, +0x01,0xF3,0x57,0x0B,0x1E,0x1E,0xE3,0x01,0x1F,0x9A,0xFF,0x5F,0x3C,0x00,0xD7,0x97, +0x00,0x50,0x1F,0x23,0x02,0x5F,0x39,0x00,0xC2,0xEF,0xFF,0xE1,0xCA,0xF7,0xFF,0xFF, +0xE4,0x00,0x00,0x2F,0x4F,0x78,0x10,0x9F,0x01,0x8F,0x64,0x5F,0x18,0x00,0x0F,0x7B, +0x02,0x5E,0xFB,0x15,0x4A,0xF7,0xD8,0xD7,0x19,0xFF,0x69,0x4F,0x03,0x10,0xC3,0x20, +0x10,0x01,0x8F,0x04,0xEF,0x39,0x03,0xF6,0x0F,0x18,0x02,0xD7,0x38,0x01,0x41,0xC3, +0x20,0x10,0x01,0xEF,0x79,0x03,0xF2,0xC3,0x20,0x10,0x01,0xEF,0xB9,0x03,0xEA,0xC3, +0x20,0x10,0x01,0xEF,0xD9,0x03,0xEE,0xC3,0x20,0x10,0x01,0xEF,0x39,0x04,0x06,0xE4, +0x00,0x00,0x49,0xC3,0x20,0x10,0x01,0xEF,0x79,0x03,0xFE,0xC3,0x20,0x10,0x01,0xEF, +0xB9,0x04,0x02,0xC3,0x20,0x10,0x01,0xEF,0xD9,0x04,0x12,0xC3,0x20,0x10,0x01,0xEF, +0x39,0x03,0xD6,0x20,0x60,0xDE,0x0F,0x44,0x02,0x0F,0x84,0x06,0xCF,0x5A,0x00,0x32, +0x40,0xE7,0xE3,0xD7,0x47,0x05,0xDC,0x42,0xF7,0x2D,0x40,0xA5,0xCB,0x43,0x77,0xDB, +0x43,0x3B,0x2C,0xCC,0xC6,0x00,0x0A,0x9B,0x4A,0x8C,0xD9,0x98,0x61,0x40,0xC6,0xD0, +0xD7,0x06,0x04,0xF4,0x98,0x60,0xE4,0x00,0x01,0x31,0x20,0x64,0x6A,0x0F,0x44,0x02, +0x0F,0x64,0x06,0xCF,0x5A,0x00,0x32,0x40,0xE7,0xDB,0x98,0x60,0xD7,0x47,0x04,0x14, +0xE4,0x00,0x00,0x55,0x1C,0xFA,0xFE,0xD4,0x67,0x01,0x9E,0x4C,0x63,0x10,0x9F,0x5F, +0x4F,0x5A,0x10,0x8F,0x44,0x8C,0x83,0x0F,0x5A,0x02,0x0F,0x64,0x02,0xCF,0x5A,0x00, +0x32,0x41,0x08,0xDB,0x98,0x60,0xD7,0x48,0x02,0xC4,0x42,0xF7,0x2D,0x40,0xA5,0xCB, +0x43,0xB7,0xEB,0x43,0x3D,0x2C,0xE7,0xFF,0xFF,0x3B,0xD4,0x7C,0x01,0x3E,0x9F,0x5F, +0x4C,0xE7,0x10,0x4F,0x5A,0x10,0x98,0x60,0x8F,0x44,0x8C,0x87,0x0F,0x5A,0x02,0x0F, +0x84,0x02,0xCF,0x5A,0x00,0x32,0x41,0x08,0xE3,0xD7,0x48,0x01,0x2C,0xE7,0xFF,0xFE, +0xD5,0x42,0xF7,0x2D,0xCC,0xC6,0x00,0x0A,0x43,0xD7,0xF3,0x40,0xA5,0xCB,0x9B,0x4A, +0x43,0x3E,0x2C,0x8C,0xD9,0x40,0xC6,0xD0,0xD7,0x06,0xFB,0x60,0x98,0x61,0x85,0x29, +0xC2,0xE0,0x10,0x01,0x9B,0x21,0xEA,0xF7,0x01,0x79,0x9E,0xFF,0x5E,0xF7,0x04,0x26, +0xE4,0x43,0xC3,0x18,0x00,0x21,0xFF,0x18,0xB6,0xF8,0x8E,0xF8,0x13,0x37,0x00,0xC3, +0x00,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFF,0x18,0x0B,0x1A,0xFE,0xF7,0x09,0x0C,0xD0, +0x60,0x05,0x16,0x13,0x58,0x04,0x13,0xD8,0x01,0x1F,0x7A,0xFF,0x9F,0xC1,0x43,0xDE, +0xD3,0x4F,0x5A,0x08,0xCD,0x1B,0x00,0x03,0x5C,0x9A,0x00,0x4F,0x7B,0x08,0x9B,0x40, +0x5C,0x7B,0x00,0xE4,0x00,0x00,0x73,0x43,0x9A,0xDC,0x4F,0xBC,0x08,0x8F,0xB7,0x08, +0xBD,0x01,0x40,0xB9,0x2B,0x0C,0xBD,0x01,0x9F,0x81,0x8F,0x63,0x4F,0x9C,0x08,0x5F, +0x7B,0x00,0x8F,0x97,0x0B,0xBC,0x01,0x43,0xB9,0xEB,0x0F,0xBC,0x01,0xE4,0x00,0x00, +0x0D,0x9B,0x60,0xD5,0x1B,0xFE,0xA4,0x8F,0x44,0x5F,0x5A,0x00,0xD7,0xDA,0xFF,0xAC, +0x0B,0x37,0x02,0x0B,0x57,0x00,0x8F,0x59,0xC3,0x20,0x10,0x01,0xFF,0x39,0x09,0xBC, +0x0F,0x59,0x00,0x13,0x58,0x04,0x1F,0xBA,0xFF,0x4F,0xBD,0x10,0x43,0xDD,0xCC,0x8F, +0xB7,0x4F,0x9A,0x08,0x09,0x1D,0x00,0x1F,0x7C,0xFF,0x4F,0xBB,0x08,0x8F,0xB7,0x0B, +0xBD,0x00,0x8F,0xA8,0x0F,0xBE,0x00,0x13,0x18,0x01,0x27,0x05,0xAF,0xE4,0x00,0x01, +0x45,0x20,0x66,0xFE,0x13,0x58,0x04,0x13,0xD8,0x01,0x1F,0x7A,0xFF,0x9F,0xC1,0x43, +0xDE,0xD3,0x4F,0x5A,0x08,0xCD,0x1B,0x00,0x03,0x5C,0x9A,0x00,0x4F,0x7B,0x08,0x9B, +0x40,0x5C,0x7B,0x00,0xE4,0x00,0x00,0x73,0x43,0x9A,0xDC,0x4F,0xBC,0x08,0x8F,0xB7, +0x08,0xBD,0x00,0x40,0xA5,0xC8,0x0C,0xBD,0x01,0x9F,0x81,0x8F,0x63,0x4F,0x9C,0x08, +0x5F,0x7B,0x00,0x8F,0x97,0x0B,0xBC,0x00,0x43,0xBD,0xC8,0x0F,0xBC,0x01,0xE4,0x00, +0x00,0x0D,0x9B,0x60,0xD5,0x1B,0xFE,0xA4,0x8F,0x44,0x5F,0x5A,0x00,0xD7,0xDA,0xFF, +0xAC,0xE7,0xFF,0xFE,0xBF,0x4F,0x1A,0x10,0x9F,0x81,0x43,0x58,0xCC,0x43,0xB8,0xBC, +0x4F,0x9C,0x08,0x0B,0xBD,0x00,0x8F,0x97,0x0B,0x9C,0x00,0x8F,0x9D,0x0F,0x9A,0x00, +0x4F,0x7B,0x10,0x1F,0x58,0xFE,0x8F,0x3B,0x4F,0x5A,0x08,0x9F,0x1F,0x8F,0x57,0x4F, +0x18,0x08,0x0B,0x5A,0x00,0x8E,0xF8,0x0A,0xF7,0x00,0x8E,0xFA,0x0E,0xF9,0x00,0x85, +0x29,0x5C,0xE7,0x00,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x0B,0x1E,0x42,0xE7,0xBB,0x5E, +0xF7,0x00,0x9B,0x00,0x8C,0xB7,0x8C,0xD7,0xC3,0x80,0x10,0x01,0xC3,0x40,0x10,0x01, +0x5C,0xC6,0x00,0x5C,0xA5,0x00,0x8B,0x38,0x9A,0xE0,0xFF,0x9C,0x09,0xBC,0xFF,0x5A, +0x09,0x0C,0xE4,0x00,0x00,0x49,0x4F,0x65,0x10,0x43,0xBB,0xE4,0x0F,0xBD,0x02,0x9C, +0xA1,0x8E,0xFD,0x5C,0xA5,0x00,0x8B,0xBB,0x8F,0x7A,0x8F,0xBA,0x0B,0x7B,0x00,0x0B, +0xBD,0x02,0x8F,0x1B,0x8F,0x3D,0xD4,0xA6,0xFF,0x01,0x26,0xE0,0xE8,0x27,0x20,0xDC, +0x27,0x00,0xD0,0xC3,0x40,0x10,0x01,0xFF,0x5A,0x04,0x08,0x4C,0xE7,0x10,0xCF,0x18, +0xFF,0xF6,0x8C,0xFA,0x0F,0x47,0x02,0x43,0x3A,0xCB,0x9F,0x56,0x8F,0x19,0x43,0x58, +0xD0,0xCF,0x5A,0x07,0xFF,0x43,0x5A,0xB8,0x0F,0x43,0x01,0x0E,0xE4,0x00,0x98,0x61, +0xE4,0x00,0x00,0x0D,0x98,0x60,0x85,0x29,0x9A,0xE3,0x9B,0x01,0xE4,0x00,0x00,0x11, +0x8F,0x17,0x9E,0xE2,0xD7,0x03,0xFF,0xE1,0x4C,0x77,0x09,0x9C,0x7F,0x85,0x29,0xFF, +0x00,0x7F,0xFF,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x03,0xD8,0x0F,0x17,0x01,0x0F,0x17, +0x03,0x0F,0x17,0x05,0x0F,0x17,0x07,0x0F,0x17,0x09,0x0F,0x17,0x0B,0x85,0x29,0xC3, +0x00,0x10,0x01,0xFE,0xF8,0x03,0xD8,0xC3,0x00,0x10,0x01,0x0B,0x37,0x08,0xFF,0x18, +0x0B,0x90,0xC3,0x2F,0xFF,0xE0,0x20,0x00,0x41,0x0B,0x37,0x05,0x0F,0x37,0x09,0x0B, +0x37,0x07,0xE4,0x00,0x00,0x1B,0x0B,0x38,0x17,0x0F,0x37,0x09,0x0B,0x38,0x19,0x0F, +0x37,0x0B,0x0B,0x37,0x04,0xC3,0x2F,0xFF,0xE0,0x20,0x00,0x41,0x0B,0x37,0x01,0x0F, +0x37,0x05,0x0B,0x37,0x03,0xE4,0x00,0x00,0x1B,0x0B,0x38,0x17,0x0F,0x37,0x05,0x0B, +0x38,0x19,0x0F,0x37,0x07,0x0B,0x38,0x17,0x0B,0x18,0x19,0x0F,0x37,0x01,0x0F,0x17, +0x03,0x85,0x29,0x1C,0x21,0xD8,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x24,0x0D,0x41,0x20, +0x0D,0x61,0x1C,0xFD,0x57,0x03,0xD8,0x0D,0x81,0x18,0x0D,0xA1,0x14,0x0D,0xC1,0x10, +0x09,0xAA,0x07,0x0B,0x0A,0x03,0x43,0x18,0x6D,0x5F,0x18,0x06,0x0F,0x01,0x0B,0x43, +0x18,0xC3,0xE9,0x97,0x03,0xD9,0x09,0xCA,0x05,0x41,0x8C,0x75,0x5D,0x8C,0x06,0x40, +0x6C,0x63,0x8C,0x78,0xE7,0xFF,0xFE,0x48,0x0A,0xEA,0x09,0x41,0xCE,0xBD,0x0A,0xEA, +0x0B,0x42,0xED,0xBD,0x5E,0xF7,0x06,0x0E,0xE1,0x0F,0x42,0xF7,0xBB,0x5D,0x63,0x06, +0x5D,0x4E,0x06,0x40,0x6A,0x53,0x8C,0x77,0xE7,0xFF,0xFE,0x00,0x5E,0xE3,0x06,0x98, +0x61,0x21,0x60,0xAC,0x22,0xE0,0xA0,0x43,0x0B,0xB8,0xD3,0x05,0x01,0x14,0x41,0x4C, +0x53,0x0B,0x01,0x0E,0x09,0x81,0x0A,0x41,0x6B,0xBB,0x43,0x0C,0xC3,0x8D,0x58,0xCD, +0x4A,0x00,0x64,0x42,0xEA,0x58,0x5E,0xE8,0xB1,0x48,0x61,0x01,0x0D,0xC1,0x12,0x0D, +0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26,0x1C,0x21, +0x28,0x85,0x29,0x1C,0x21,0xE8,0xC2,0xE0,0x10,0x01,0x0D,0x41,0x10,0x0D,0x61,0x0C, +0x0D,0x81,0x08,0x0D,0xC1,0x00,0xF1,0x97,0x08,0x72,0xC1,0x40,0x10,0x01,0x1D,0x6C, +0xFF,0x0D,0x21,0x14,0x0D,0xA1,0x04,0x5D,0xC3,0x00,0x5D,0x6B,0x00,0xFD,0x4A,0x0B, +0x90,0x4E,0xEE,0x5D,0x56,0xF7,0x01,0x22,0xE0,0xD4,0x8A,0xEB,0xE4,0x00,0x00,0x43, +0xCC,0x77,0x00,0x30,0x1D,0xB7,0x01,0x8C,0x6A,0xCC,0x8D,0x00,0x30,0x9C,0x64,0x8C, +0x8A,0x50,0xA0,0x30,0x9C,0x84,0xE4,0x00,0x67,0xF4,0x5E,0xED,0x00,0xD5,0x97,0xFF, +0x1D,0x12,0xEA,0x00,0x22,0xE0,0x20,0x9E,0xFF,0x1A,0xEA,0x00,0x21,0x60,0x30,0x9D, +0x7F,0x5D,0x6B,0x00,0xE7,0xFF,0xFF,0x7B,0x12,0xEA,0x00,0x22,0xE0,0x52,0xC2,0xE0, +0x10,0x01,0x9B,0x37,0xEB,0x17,0x08,0x87,0x47,0x18,0xCC,0xEF,0x17,0x08,0x87,0x0D, +0xC1,0x02,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21, +0x16,0x1C,0x21,0x18,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xEB,0x37, +0x01,0x78,0xFF,0x18,0x04,0x1C,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x1A,0x23,0x24, +0xA6,0x13,0x37,0x04,0x9A,0xE0,0x9F,0x21,0xE4,0x00,0x00,0x2F,0x4F,0x57,0x08,0x1F, +0x77,0xFF,0x8F,0x58,0x4F,0x7B,0x10,0x9E,0xE1,0x0F,0x7A,0x01,0x5E,0xF7,0x00,0xD6, +0xF9,0xFF,0x68,0xE4,0x00,0x00,0x9D,0x23,0x28,0x38,0x13,0x37,0x04,0x9A,0xE0,0x9F, +0x21,0xE4,0x00,0x00,0x79,0x13,0x37,0x04,0x9A,0xE0,0x9F,0x21,0xE4,0x00,0x00,0x2F, +0x4F,0x57,0x08,0xCF,0x77,0x00,0x06,0x8F,0x58,0x9F,0x79,0x9E,0xE1,0x0F,0x7A,0x01, +0x5E,0xF7,0x00,0xD6,0xF9,0xFF,0x68,0xE4,0x00,0x00,0x35,0x4F,0x57,0x08,0x4F,0x77, +0x08,0x8F,0x58,0x9F,0x7F,0x9E,0xE1,0x0F,0x7A,0x01,0x5E,0xF7,0x00,0xD6,0xF9,0xFF, +0x70,0x85,0x29,0x9C,0x30,0x5C,0xC6,0x00,0x0D,0x61,0x08,0x0D,0x81,0x04,0x0D,0xA1, +0x00,0x0D,0x41,0x0C,0xC3,0x00,0x10,0x01,0xFF,0x18,0x0B,0x1A,0x13,0xD8,0x04,0x40, +0xC6,0xF3,0x5E,0xE6,0x00,0x5F,0xA3,0x06,0x8C,0x97,0x8C,0xB7,0x5F,0x7D,0x04,0x0A, +0xF8,0x0B,0x11,0x58,0x0C,0x40,0xFB,0xBC,0x41,0x9B,0xBD,0xC1,0xA0,0x10,0x01,0xC3, +0x00,0x10,0x01,0x5C,0xA5,0x00,0x4D,0x77,0x08,0x5C,0xE7,0x04,0x5D,0x8C,0x04,0x5C, +0x84,0x00,0xFD,0xAD,0x04,0x1C,0xFF,0x18,0x09,0x0C,0x53,0x20,0x64,0xE4,0x00,0x01, +0x21,0x43,0x44,0x35,0x9F,0x41,0x4F,0x5A,0x08,0x8F,0x4D,0x09,0x1A,0x00,0x41,0x08, +0xBB,0x41,0x08,0x50,0x5F,0x88,0x04,0x43,0x5C,0xDD,0x5F,0x5A,0x06,0x4C,0x7A,0xFA, +0x47,0x43,0xD6,0x43,0x5A,0x1D,0xD6,0xFA,0x03,0x14,0xD5,0x7A,0x02,0x70,0x5D,0x08, +0x06,0xD5,0x1D,0x00,0x58,0x43,0x9C,0x3D,0xE4,0x00,0x00,0x0F,0x43,0x8C,0xE5,0x5F, +0x9C,0x06,0x4F,0x44,0x10,0x43,0x97,0xE5,0x8F,0x58,0xCF,0x9C,0x00,0x64,0x09,0x1A, +0x00,0x43,0x9C,0xB8,0xC7,0x9C,0xFF,0xFF,0x41,0x1C,0x43,0x41,0x08,0xC8,0x0D,0x1A, +0x01,0x4F,0x44,0x10,0x9F,0x42,0x8F,0x58,0x09,0x1A,0x00,0x43,0x9C,0x43,0x43,0x9C, +0xC8,0x0F,0x9A,0x01,0xE4,0x00,0x00,0x29,0x4F,0x44,0x10,0x8F,0x58,0x0C,0x1A,0x01, +0x4F,0x44,0x10,0x8F,0x58,0x0C,0x1A,0x03,0x9C,0x81,0x5C,0x84,0x00,0xD4,0x85,0xFB, +0xA0,0xC2,0xE0,0x10,0x01,0x0D,0xA1,0x02,0xF0,0x77,0x0B,0x1B,0x0D,0x81,0x06,0x0D, +0x61,0x0A,0x0D,0x41,0x0E,0x40,0x7E,0x1B,0x1C,0x21,0x10,0xE4,0x00,0xC1,0x25,0x5C, +0x63,0x00,0x5C,0x84,0x00,0xC2,0xE0,0x10,0x01,0x43,0x64,0x1D,0xF2,0xF7,0x0B,0x1E, +0x9F,0x61,0x40,0xA5,0xBB,0x5F,0x7B,0x00,0x5C,0xA5,0x00,0x20,0xE4,0x3E,0xC2,0xE0, +0x10,0x01,0xFE,0xF7,0x0C,0xD0,0xE4,0x00,0x00,0x19,0xC2,0xE0,0x10,0x01,0xFE,0xF7, +0x09,0x0C,0x43,0x23,0x2C,0x9B,0x00,0x4F,0x39,0x10,0x9F,0x22,0x8F,0x37,0xC2,0xEF, +0xFF,0xE1,0xCA,0xF7,0xFF,0xFF,0xE4,0x00,0x00,0x3D,0x0B,0x99,0xFE,0x0B,0x59,0x00, +0x9F,0x24,0x8F,0x5C,0x4F,0x98,0x10,0x5E,0xFA,0x15,0x8F,0x86,0x4A,0xF7,0xD0,0x0F, +0x5C,0x00,0x9F,0x01,0x5F,0x58,0x00,0xD7,0x7A,0xFF,0x1D,0x9B,0x00,0xE4,0x00,0x00, +0x29,0x0F,0x26,0x02,0x9F,0x01,0x43,0x39,0xBD,0x5F,0x18,0x00,0x0F,0x26,0x00,0x9C, +0xC4,0xD7,0x78,0xFF,0x85,0x85,0x29,0x1C,0x21,0x88,0x0D,0x41,0x70,0x0D,0x61,0x6C, +0x5D,0x44,0x00,0x0D,0x81,0x68,0x5C,0x85,0x00,0x0D,0xA1,0x64,0x88,0xA6,0x41,0xA4, +0x55,0x0D,0x21,0x74,0x89,0x83,0x88,0xC1,0x88,0x6A,0xE7,0xFF,0xFE,0xAA,0xC2,0xE0, +0x10,0x01,0x9D,0xA1,0xEB,0x57,0x01,0x78,0x9B,0x20,0x5D,0xAD,0x00,0x8B,0x19,0x9A, +0xE0,0x89,0x61,0xE4,0x00,0x00,0x5B,0x4F,0x79,0x10,0x43,0x99,0x54,0x8F,0x6B,0x0F, +0x7B,0x02,0x8E,0xFB,0x23,0x44,0x54,0x23,0x48,0x36,0xCF,0x9C,0x00,0x06,0x9F,0x9F, +0xE4,0x00,0x00,0x13,0x4F,0x9C,0x08,0x9F,0x81,0x43,0x7C,0xDB,0x9F,0x21,0x8F,0x1B, +0x5F,0x79,0x00,0xD5,0xBB,0xFE,0xA5,0x26,0xE1,0x34,0xC3,0x20,0x10,0x01,0xEB,0x39, +0x0B,0x25,0x43,0x18,0xCB,0x23,0x44,0x32,0x4F,0x37,0x0A,0x8F,0x19,0xE4,0x00,0x00, +0x35,0x23,0x48,0x46,0xCF,0x37,0x00,0x03,0xCE,0xF7,0x00,0x06,0x8F,0x19,0xE4,0x00, +0x00,0x13,0x8F,0x17,0x4E,0xF7,0x08,0x42,0xF8,0xB8,0xC2,0xE0,0xFF,0xE8,0xCB,0x00, +0x07,0xFF,0x98,0x61,0x4A,0xF7,0xC0,0x5E,0xFF,0xF9,0x4A,0xF7,0x00,0x0E,0xEC,0x01, +0xE4,0x00,0x00,0x0D,0x98,0x60,0x0D,0xA1,0x66,0x0D,0x81,0x6A,0x0D,0x61,0x6E,0x0D, +0x41,0x72,0x0D,0x21,0x76,0x1C,0x21,0x78,0x85,0x29,0xFC,0x21,0xFF,0x78,0xED,0x41, +0x00,0x80,0x0D,0x81,0x78,0x0D,0xA1,0x74,0x0D,0xC1,0x70,0x0D,0xE1,0x6C,0x0E,0x01, +0x68,0x0E,0xC1,0x64,0xED,0x21,0x00,0x84,0x0D,0x61,0x7C,0xC1,0x40,0x10,0x01,0xFD, +0x4A,0x0B,0x1A,0x11,0x6A,0x04,0x4E,0xEB,0x08,0x9E,0xE8,0xC6,0xF7,0x03,0xF8,0xFE, +0xC1,0x00,0x88,0x5D,0xC4,0x00,0x5D,0xA5,0x00,0x8A,0x03,0x5C,0xA6,0x00,0x89,0xE1, +0x41,0x65,0x5B,0x40,0x21,0xBD,0x88,0x6E,0x88,0x8D,0xFC,0xD6,0xFF,0x78,0xE7,0xFF, +0xFC,0xA2,0xC3,0x40,0x10,0x01,0x89,0x81,0x5D,0x6B,0x00,0x13,0x2A,0x04,0x9A,0xE0, +0xFF,0x5A,0x04,0x1C,0xE4,0x00,0x00,0x29,0x4F,0x17,0x08,0x9E,0xE1,0x43,0x6C,0xC4, +0x8F,0x1A,0x0B,0x18,0x03,0x0F,0x1B,0x01,0x5F,0x17,0x00,0xD7,0x38,0xFF,0x6D,0x43, +0x4B,0x74,0x8D,0xAB,0x5F,0x5A,0x00,0x5D,0xAD,0x00,0x9A,0xE0,0x1F,0x2D,0x01,0x43, +0x39,0xD5,0x5F,0x39,0x00,0xE4,0x00,0x00,0x33,0x4F,0x77,0x10,0xFF,0x96,0xFF,0x78, +0x8F,0x7C,0x0F,0x7B,0x02,0x27,0x60,0x4A,0xD5,0xB8,0x03,0x19,0x9E,0xE1,0x5F,0x17, +0x00,0xD7,0x38,0xFF,0x45,0x8B,0x1A,0x1F,0x36,0xD8,0x1F,0x76,0xD8,0x4E,0xF8,0x10, +0x8E,0xF9,0x0F,0x37,0xA2,0x1E,0xF8,0x01,0x43,0x39,0xCB,0x4E,0xF7,0x10,0x8E,0xFB, +0x0E,0xF7,0xA2,0x42,0xF7,0xBB,0x5F,0x37,0x15,0x4B,0x77,0xC8,0x27,0x60,0xBC,0x8F, +0x1A,0x0B,0x6A,0x0B,0x41,0x78,0x5D,0x13,0x4A,0x0C,0x4D,0x6B,0x08,0x98,0x61,0x8D, +0x8B,0x0B,0x0C,0x00,0x43,0x18,0xDB,0x43,0x77,0xDB,0x43,0x18,0xD0,0x8E,0xF9,0x42, +0xFB,0xB8,0x8E,0xF8,0x0E,0xF0,0x01,0xE4,0x00,0x00,0x0D,0x98,0x60,0x88,0x2F,0x0E, +0xC1,0x66,0x0E,0x01,0x6A,0x0D,0xE1,0x6E,0x0D,0xC1,0x72,0x0D,0xA1,0x76,0x0D,0x81, +0x7A,0x0D,0x61,0x7E,0xED,0x41,0x00,0x82,0xED,0x21,0x00,0x86,0xFC,0x21,0x00,0x88, +0x85,0x29,0x1C,0x21,0xB8,0x0D,0x41,0x40,0xC1,0x40,0x10,0x01,0x0D,0x61,0x3C,0x0D, +0x81,0x38,0x0D,0xC1,0x30,0x0E,0x41,0x20,0x0E,0x61,0x1C,0x0E,0x81,0x18,0x0E,0xA1, +0x14,0x0E,0xC1,0x10,0x0D,0x21,0x44,0x0D,0xA1,0x34,0x0D,0xE1,0x2C,0x0E,0x01,0x28, +0x0E,0x21,0x24,0x5E,0x63,0x00,0x5E,0x44,0x00,0xC1,0xC0,0x10,0x01,0xF0,0x8A,0x0B, +0x1A,0xFD,0xCE,0x0C,0x5C,0x98,0xA0,0x88,0x6E,0x99,0x80,0x8A,0xCA,0xE4,0x00,0xBE, +0x36,0xC1,0x40,0x10,0x01,0x89,0x6C,0xC2,0xA0,0x10,0x01,0x9A,0x81,0xFD,0x4A,0x0B, +0x90,0xE4,0x00,0x01,0x19,0xCC,0x6B,0x00,0x30,0xEA,0xF5,0x08,0x3F,0x41,0xA3,0x54, +0x56,0xF7,0x02,0x12,0x2D,0x04,0x12,0x0D,0x05,0x11,0xED,0x07,0x22,0xE1,0x0C,0x1C, +0x61,0x04,0x88,0x91,0x88,0xB0,0x88,0xCF,0x98,0xE0,0xE7,0xFF,0xFA,0xDA,0x20,0x61, +0x14,0x1C,0x61,0x06,0x88,0x91,0x88,0xB0,0x88,0xCF,0x98,0xE0,0xE7,0xFF,0xFC,0x5C, +0x20,0x60,0xCC,0x0B,0x01,0x04,0xCF,0x18,0x00,0x07,0x0A,0xE1,0x06,0xCE,0xF7,0x00, +0x03,0x8E,0xF8,0x9B,0x0A,0x42,0xF7,0xC0,0x0E,0xED,0x17,0xE4,0x00,0x00,0x43,0x8C, +0x6A,0x88,0x91,0x1C,0x63,0x16,0x88,0xB0,0x88,0xCF,0x98,0xE0,0xE7,0xFF,0xFA,0x56, +0x20,0x60,0x32,0x4E,0xF4,0x5C,0x45,0x8C,0xBD,0x5D,0x8C,0x00,0x88,0x6E,0xF0,0x96, +0x0B,0x1A,0x98,0xA1,0x9D,0x61,0xE4,0x00,0xBD,0x04,0x5D,0x6B,0x00,0x12,0xEA,0x00, +0xD6,0xEB,0xFB,0xAD,0x88,0x6C,0xE7,0xFF,0xF4,0x7A,0x12,0xEA,0x00,0x22,0xE0,0x6C, +0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x25,0x56,0xF7,0x40,0x22,0xE0,0x34,0xC2,0xE0, +0x10,0x01,0xEE,0xF7,0x03,0xE6,0x86,0xE8,0xC2,0xE0,0x10,0x01,0x88,0x6E,0xF0,0x97, +0x0B,0x1A,0x98,0xA1,0xE4,0x00,0xBC,0x88,0xC2,0xE0,0x10,0x01,0x99,0x80,0xEA,0xF7, +0x08,0x25,0x89,0x6C,0x56,0xF7,0x80,0x99,0xA1,0x22,0xE0,0xFC,0xC2,0xE0,0x10,0x01, +0xEE,0xF7,0x03,0xFA,0x86,0xE8,0xE4,0x00,0x00,0x7F,0xCE,0xEB,0x00,0x30,0x40,0x6A, +0xBC,0x8A,0xE3,0x88,0x83,0x10,0xB7,0x04,0x1C,0x63,0x18,0x9C,0x8C,0x10,0xD7,0x05, +0x10,0xF7,0x07,0xE7,0xFF,0xEF,0xDC,0x20,0x60,0x32,0x4E,0xED,0x5C,0x45,0x8C,0xBD, +0x5D,0x8C,0x00,0x9D,0x61,0x5D,0x6B,0x00,0x12,0xEA,0x00,0xD6,0xEB,0xFE,0x7D,0x88, +0x6C,0xE7,0xFF,0xF3,0x64,0x22,0x61,0x5C,0x22,0x40,0xFE,0xE4,0x00,0x00,0xA3,0xCD, +0x6C,0x00,0x30,0x8D,0x6A,0x0A,0xEB,0x16,0x0E,0xE1,0x08,0x0A,0xEB,0x18,0x1C,0x61, +0x08,0x0E,0xE1,0x0C,0x1C,0x81,0x0C,0xEE,0xED,0x03,0xD2,0x0C,0xAB,0x0E,0x88,0xCE, +0x86,0xE8,0x0E,0xE1,0x0A,0x9D,0x81,0x0E,0xEB,0x17,0x5D,0x8C,0x00,0x0E,0xE1,0x0E, +0x0E,0xEB,0x19,0xE4,0x00,0x00,0x25,0xC1,0xC0,0x10,0x01,0x99,0x80,0xC1,0xA0,0x10, +0x01,0xFD,0xCE,0x01,0x64,0x12,0xEA,0x00,0xD6,0xEC,0xFD,0xBD,0xC2,0xE0,0x10,0x01, +0x13,0x6A,0x00,0xEB,0x97,0x08,0x3F,0x9B,0x20,0xC2,0xE0,0x10,0x01,0x57,0x9C,0x01, +0xFE,0xF7,0x0B,0xA8,0xCB,0xA0,0x07,0xFF,0xE4,0x00,0x00,0x89,0x0B,0x57,0x01,0x13, +0xD7,0xEF,0x5F,0x1A,0x06,0x47,0x18,0xC7,0x4F,0x18,0xFA,0x47,0x1A,0xC4,0x5F,0x58, +0x06,0xC3,0x40,0xFF,0xE8,0x20,0x00,0x1D,0xFF,0x00,0x07,0xFF,0x0F,0x17,0x01,0x5F, +0x58,0x06,0x23,0x80,0x48,0xCF,0x1A,0x03,0xFF,0x4F,0x5E,0x50,0x43,0x18,0xE8,0x8F, +0x1A,0x0F,0x17,0x01,0x9F,0x21,0x1E,0xF7,0x30,0x5F,0x39,0x00,0xD7,0x3B,0xFE,0x06, +0x0E,0xC1,0x12,0x0E,0xA1,0x16,0x0E,0x81,0x1A,0x0E,0x61,0x1E,0x0E,0x41,0x22,0x0E, +0x21,0x26,0x0E,0x01,0x2A,0x0D,0xE1,0x2E,0x0D,0xC1,0x32,0x0D,0xA1,0x36,0x0D,0x81, +0x3A,0x0D,0x61,0x3E,0x0D,0x41,0x42,0x0D,0x21,0x46,0x1C,0x21,0x48,0x85,0x29,0x1C, +0x21,0xC8,0xC2,0xE0,0x10,0x01,0x0D,0x81,0x28,0x0D,0xA1,0x24,0x0E,0x61,0x0C,0x0E, +0xC1,0x00,0x0D,0x21,0x34,0x0D,0x41,0x30,0x0D,0x61,0x2C,0x0D,0xC1,0x20,0x0D,0xE1, +0x1C,0x0E,0x01,0x18,0x0E,0x21,0x14,0x0E,0x41,0x10,0x0E,0x81,0x08,0x0E,0xA1,0x04, +0xC1,0x80,0x10,0x01,0xF3,0x57,0x08,0x72,0xFD,0x8C,0x0B,0x90,0xC2,0xE0,0x10,0x01, +0x1E,0xC1,0x38,0x89,0xA3,0x8A,0x61,0x18,0x0C,0x00,0xFE,0xF7,0x0B,0x98,0x9B,0x00, +0x9B,0x3F,0xE4,0x00,0x00,0x2B,0x0C,0x17,0x00,0x1B,0x37,0xFE,0x1B,0x37,0xFF,0x9F, +0x01,0x1E,0xF7,0x30,0x5F,0x18,0x00,0xD7,0x1A,0xFF,0x7E,0xC1,0xE0,0x10,0x01,0xFD, +0xEF,0x0B,0x1A,0x12,0xEF,0x04,0x10,0x6F,0x01,0x40,0x63,0xBB,0xE4,0x00,0xB6,0x22, +0x13,0x2F,0x04,0x4E,0xF9,0x10,0x9E,0xEA,0xC6,0xF7,0x07,0xF8,0xC3,0x60,0x10,0x01, +0x40,0x21,0xBD,0x0A,0x0D,0x18,0x89,0x61,0x9B,0x00,0xCA,0xE0,0x20,0x00,0xFF,0x7B, +0x09,0xBC,0xE4,0x00,0x00,0x3B,0x4F,0x58,0x10,0x9F,0x01,0x43,0x9A,0xDC,0x8F,0x4B, +0x0E,0x3C,0x02,0x5E,0x37,0x15,0x0E,0x3A,0x00,0x4A,0xF1,0xB8,0x5E,0xF7,0x06,0x5F, +0x58,0x00,0xD7,0x3A,0xFF,0x25,0x46,0x37,0xBF,0x99,0x40,0x4E,0x31,0xFA,0x89,0xCA, +0x46,0x31,0xBC,0xC2,0x80,0x10,0x01,0x9A,0x42,0x8A,0xAC,0xE4,0x00,0x04,0x4B,0x0B, +0x0D,0x18,0x21,0x41,0x32,0x0E,0xEB,0x02,0xD7,0x17,0x0E,0xEC,0x0F,0x0B,0x06,0xD6, +0xF8,0x00,0x7C,0xD6,0xF8,0x0E,0x96,0x0F,0x0B,0x0A,0xD6,0xF8,0x0E,0x58,0x98,0x60, +0x88,0x8B,0x88,0xB1,0x88,0xD0,0x08,0xED,0x1C,0x09,0x0D,0x1E,0xE7,0xFF,0xE5,0xE6, +0xD0,0x60,0x0D,0xAA,0x12,0xEC,0x00,0x99,0x41,0x8E,0xEE,0xCE,0xF7,0x00,0x30,0x8E, +0xEC,0x18,0x17,0x04,0x18,0x17,0x06,0x1A,0x57,0x05,0xE4,0x00,0x03,0x4F,0x21,0x45, +0x56,0x0E,0xEB,0x06,0xD7,0x17,0x0C,0x8C,0x0F,0x0B,0x02,0xD7,0x17,0x0C,0x54,0x0F, +0x0B,0x0A,0xD6,0xF8,0x00,0x7C,0xD6,0xF8,0x0B,0xFE,0x0F,0x0B,0x0E,0xD6,0xF8,0x0B, +0xC0,0x98,0x61,0x88,0x8B,0x88,0xB1,0x88,0xD0,0x08,0xED,0x1C,0x09,0x0D,0x1E,0xE7, +0xFF,0xE5,0x40,0xD0,0x60,0x0B,0x12,0x12,0xEC,0x00,0x9B,0x01,0x8E,0xEE,0x99,0x42, +0xCE,0xF7,0x00,0x30,0x8E,0xEC,0x18,0x17,0x04,0x1B,0x17,0x06,0x1A,0x57,0x05,0xE4, +0x00,0x02,0xA5,0x25,0x45,0xC5,0x1F,0x37,0xFE,0xD7,0x2A,0x03,0x58,0x4E,0xEA,0x10, +0x8E,0xEB,0x0E,0xF7,0x02,0xD7,0x17,0x09,0x84,0x1F,0x0A,0xFF,0x4F,0x18,0x10,0x8F, +0x0B,0x0F,0x18,0x02,0xD6,0xF8,0x01,0x34,0xD6,0xF8,0x08,0xEE,0x1F,0x2A,0xFE,0x4F, +0x39,0x10,0x8F,0x2B,0x0F,0x39,0x02,0xD6,0xF9,0x08,0x70,0x1F,0x4A,0x01,0x4F,0x5A, +0x10,0x8F,0x4B,0x0F,0x5A,0x02,0xD7,0x59,0x07,0xF8,0x1F,0x2A,0x01,0x4F,0x39,0x10, +0x8F,0x2B,0x0F,0x39,0x02,0xD6,0xF9,0x03,0x2C,0xD6,0xF9,0x07,0x66,0x1F,0x2A,0x02, +0x4F,0x39,0x10,0x8F,0x2B,0x0F,0x39,0x02,0xD6,0xF9,0x06,0xE8,0xD7,0x19,0x06,0xC8, +0xE4,0x00,0x00,0x95,0x4F,0x0A,0x10,0x1F,0x57,0xFE,0x0B,0x2D,0x18,0x8F,0x0B,0xD5, +0x5A,0x03,0x6E,0x0F,0x18,0x02,0xD7,0x38,0x05,0xFC,0x1F,0x37,0xFF,0x4F,0x39,0x10, +0x8F,0x2B,0x0F,0x39,0x02,0xD7,0x38,0x05,0x84,0x1F,0x37,0xFD,0x4F,0x39,0x10,0x8F, +0x2B,0x0F,0x39,0x02,0xD7,0x19,0x00,0xB4,0xD7,0x19,0x04,0xEE,0x9E,0xFC,0x4E,0xF7, +0x10,0x8E,0xEB,0x0E,0xF7,0x02,0xD7,0x17,0x04,0x78,0x88,0x6A,0x88,0x8B,0x88,0xB1, +0x88,0xD0,0x08,0xED,0x1C,0x09,0x0D,0x1E,0xE7,0xFF,0xE3,0x6E,0x20,0x61,0xE4,0x12, +0xEC,0x00,0x1F,0x0A,0xFF,0x8E,0xEE,0xCE,0xF7,0x00,0x30,0x8E,0xEC,0x19,0x57,0x06, +0x1B,0x17,0x04,0x9D,0x41,0x5D,0x4A,0x00,0xE4,0x00,0x00,0xAD,0x0E,0xF8,0x02,0xD7, +0x37,0x02,0xB4,0x1F,0x0A,0xFF,0x4F,0x18,0x10,0x8F,0x0B,0x0F,0x18,0x02,0xD6,0xF8, +0x00,0xBC,0xD6,0xF8,0x02,0x1E,0x1F,0x0A,0xFE,0x4F,0x18,0x10,0x8F,0x0B,0x0F,0x18, +0x02,0xD6,0xF8,0x01,0xA0,0x88,0x6A,0x88,0x8B,0x88,0xB1,0x88,0xD0,0x08,0xED,0x1C, +0x09,0x0D,0x1E,0xE7,0xFF,0xE2,0xB8,0x20,0x60,0x78,0x12,0xEC,0x00,0x1F,0x0A,0xFE, +0x8E,0xEE,0xCE,0xF7,0x00,0x30,0x8E,0xEC,0x1B,0x17,0x04,0x19,0x57,0x06,0x19,0x57, +0x05,0xE4,0x00,0x00,0x21,0x9D,0x41,0x5D,0x4A,0x00,0x12,0xEF,0x04,0xD6,0xEA,0xF0, +0x95,0x12,0xEF,0x04,0xD6,0xEA,0x01,0x61,0x12,0xEC,0x00,0x8E,0xEE,0xCE,0xF7,0x00, +0x30,0x43,0x17,0x64,0x13,0x18,0x05,0xD5,0x58,0x00,0x55,0x1D,0x58,0x01,0x5D,0x4A, +0x00,0x8E,0xF5,0x9B,0x01,0x9D,0xC1,0x18,0x17,0x07,0x0F,0x17,0x08,0x5D,0xCE,0x00, +0x12,0xEF,0x04,0xD6,0xEA,0x00,0x61,0xF2,0xF4,0x08,0x72,0xD6,0xEE,0xFD,0xFC,0x12, +0xEC,0x00,0x8D,0xD7,0x19,0xCC,0x00,0x88,0x33,0x0E,0xC1,0x02,0x0E,0xA1,0x06,0x0E, +0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D,0xE1, +0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32, +0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01, +0xF8,0x77,0x04,0x64,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x0B,0x25,0xEE,0xF8,0x04,0x5D, +0xC3,0x00,0x10,0x01,0xCF,0x37,0x00,0x05,0x4E,0xF7,0x10,0xEF,0x38,0x04,0x5B,0xC3, +0x00,0x10,0x01,0xEE,0xF8,0x04,0x59,0x85,0x29,0x5C,0x63,0x06,0x20,0x84,0x5A,0x0B, +0x05,0x00,0x0B,0x25,0x02,0x0B,0x45,0x04,0x0B,0x85,0x06,0x0B,0x65,0x08,0xE4,0x00, +0x00,0x27,0x0B,0x05,0x0A,0x0B,0x25,0x0C,0x0B,0x45,0x0E,0x0B,0x85,0x10,0x0B,0x65, +0x12,0xC2,0xE0,0x10,0x01,0x9B,0xA2,0xEA,0xF7,0x0B,0x25,0x43,0x9C,0xBB,0x43,0x9C, +0xE8,0x43,0x80,0xE5,0xFF,0x9C,0x03,0xFF,0xD4,0x7C,0x00,0xC8,0x43,0x9B,0xBB,0x43, +0xBC,0xE8,0xFF,0xBD,0x03,0xFF,0xD7,0xA3,0x01,0x08,0x5C,0x78,0x04,0xE4,0x00,0x00, +0xE3,0x24,0x7C,0x58,0x43,0x03,0xC3,0x40,0x7C,0x1D,0x43,0x43,0xD3,0x40,0x78,0xD4, +0x40,0x63,0xE0,0xE4,0x00,0x00,0xB1,0x9B,0x82,0x43,0x7B,0xBB,0x43,0x7B,0xE0,0xFF, +0x9B,0x03,0xFF,0xD7,0x83,0x01,0x7C,0xC0,0x60,0xFF,0xEC,0x20,0x00,0xCD,0x43,0x60, +0xDD,0xFE,0xFB,0xFC,0x01,0x8E,0xE3,0x43,0x37,0xCB,0xCA,0xE0,0x07,0xFF,0x40,0x77, +0x1D,0xFF,0x7B,0x04,0x00,0x43,0x03,0xC3,0x40,0x79,0xC4,0x40,0x63,0xD8,0xE4,0x00, +0x00,0x3B,0x24,0x7C,0x32,0x8C,0x77,0x40,0x63,0xD3,0xE4,0x00,0x00,0x1D,0xFF,0x17, +0x07,0xFF,0x40,0x78,0x1D,0x40,0x63,0xCB,0x40,0x63,0xB8,0x5C,0x63,0x04,0x85,0x29, +0x9C,0x38,0x0C,0x01,0x04,0xC3,0x00,0x10,0x01,0xC3,0x40,0x10,0x01,0xFF,0x18,0x0B, +0x1A,0xFF,0x9A,0x04,0x1C,0x0B,0x38,0x0B,0x0B,0xBC,0x00,0x13,0x18,0x0C,0x5F,0x79, +0x06,0x5E,0xE3,0x06,0x43,0x7D,0xDB,0x43,0x7B,0xC0,0xD6,0xFB,0x00,0x4C,0x9B,0x41, +0x0F,0x41,0x04,0x0F,0x41,0x06,0x98,0x7F,0x23,0x40,0x5E,0x0B,0x5C,0x02,0x43,0x5A, +0xCB,0x43,0x5A,0xC0,0xD7,0x57,0x00,0x58,0x9B,0x41,0x98,0x60,0x0F,0x41,0x04,0x0F, +0x41,0x06,0x23,0x41,0x1E,0xC3,0x40,0x10,0x01,0xC3,0x60,0x10,0x01,0xF3,0xBA,0x0B, +0x1E,0xFF,0x7B,0x04,0x20,0x9B,0x41,0xE4,0x00,0x00,0x57,0x0B,0xDB,0xFE,0x43,0xDE, +0xCB,0x43,0xDE,0xC0,0xD7,0xD7,0x00,0xD4,0x0B,0xDB,0x00,0x43,0xDE,0xCB,0x43,0xDE, +0xC0,0xD7,0xD7,0x00,0x68,0x9B,0x41,0x0F,0x41,0x04,0xE4,0x00,0x00,0x1F,0x9F,0x41, +0x9F,0x62,0x5C,0x7A,0x02,0xD7,0x5D,0xFE,0xB0,0x0F,0x41,0x06,0x23,0x40,0x9E,0xC3, +0x40,0x10,0x01,0xF3,0x5A,0x0B,0x1E,0x9F,0x41,0x4F,0x7A,0x08,0x8F,0x9B,0x0B,0x7C, +0x00,0x43,0x3B,0xCB,0x43,0x19,0xC0,0xD7,0x17,0x00,0x64,0x9A,0xE1,0x5C,0x7A,0x02, +0x0E,0xE1,0x04,0x9C,0x28,0x85,0x29,0xC3,0x20,0x10,0x01,0x5C,0x63,0x06,0x5C,0xC6, +0x02,0x5C,0xE7,0x00,0xFF,0x39,0x09,0x0C,0x24,0xC0,0x98,0xC2,0xE0,0x10,0x01,0xF3, +0x17,0x0B,0x1E,0xD4,0xD8,0x00,0xDC,0x43,0x18,0x3B,0x1E,0xE6,0xFF,0x8E,0xF8,0x4F, +0x17,0x10,0x8F,0x19,0x0B,0x78,0x02,0x0B,0x58,0x00,0xE4,0x00,0x00,0x11,0x9B,0x40, +0x8B,0x7A,0xC2,0xE0,0x10,0x01,0xF3,0x97,0x0B,0x1E,0xD7,0x86,0x01,0x08,0xD0,0xDF, +0x04,0x28,0x42,0xFC,0x3B,0x8E,0xE6,0x4F,0x17,0x10,0x4E,0xF7,0x10,0x8F,0x19,0x8F, +0x37,0x0B,0x18,0x02,0x0B,0xD9,0x00,0xE4,0x00,0x00,0x17,0x24,0xDD,0xA0,0x9B,0xC0, +0x8B,0x1E,0xD4,0xDC,0x03,0x0C,0x4E,0xE6,0x08,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x04, +0x1C,0x8E,0xE7,0x9C,0xC1,0x09,0x17,0x00,0x4C,0xC6,0x08,0xC2,0xE0,0x10,0x01,0xFE, +0xF7,0x0B,0x1A,0x8C,0xE6,0x0B,0x97,0x0B,0x13,0x37,0x0C,0x0A,0xE7,0x00,0x40,0xD7, +0xE3,0x42,0xF7,0x45,0x43,0xA8,0xE3,0x40,0xC6,0xC8,0x43,0xBD,0xC8,0x43,0x97,0xE3, +0x43,0xA3,0xED,0x43,0x3C,0xC8,0x40,0x66,0x1D,0x43,0x18,0xEB,0x43,0x7B,0x1B,0x42, +0xFE,0xEB,0x8F,0x1B,0x40,0x7A,0x1B,0x43,0x18,0xC8,0x8E,0xE3,0x42,0xF7,0xC8,0xE4, +0x00,0x00,0x11,0x9A,0xE0,0x8B,0x17,0x0F,0x04,0x01,0x0E,0xE5,0x01,0x85,0x29,0x1C, +0x21,0xD8,0x0D,0x41,0x20,0x0D,0x61,0x1C,0x0D,0x81,0x18,0x0D,0xA1,0x14,0x5D,0x84, +0x00,0x0D,0xC1,0x10,0x0D,0xE1,0x0C,0x0E,0x01,0x08,0x5D,0xA5,0x00,0x5D,0x63,0x04, +0x0C,0xC1,0x04,0x0D,0x21,0x24,0x89,0xE8,0x0D,0xC1,0x2A,0xC1,0x40,0x10,0x01,0x9A, +0x02,0xFD,0x4A,0x0B,0x1A,0x0C,0xE1,0x00,0x08,0x6A,0x0B,0x40,0x6C,0x1B,0x40,0x63, +0x80,0x40,0x6B,0x1D,0xE7,0xFF,0xFC,0x38,0x0C,0x81,0x06,0x88,0xC3,0x5E,0xE3,0x02, +0x0C,0xA1,0x02,0x26,0xFC,0x36,0x0C,0x04,0x01,0x0C,0x05,0x01,0xE4,0x00,0x00,0x2D, +0x0A,0xEA,0x0B,0x42,0xEC,0xBB,0x88,0xED,0x40,0x77,0x80,0x40,0x6B,0x1D,0xE7,0xFF, +0xFD,0x72,0x08,0x6A,0x0B,0x40,0x6C,0x1B,0x4C,0x63,0x0A,0x8C,0x6B,0xE7,0xFF,0xFB, +0xC6,0x12,0xEA,0x04,0x88,0xC3,0x5F,0x03,0x02,0xD7,0x17,0x00,0x70,0x0C,0x0F,0x01, +0x0C,0x0E,0x01,0xE4,0x00,0x00,0x69,0x08,0x6A,0x0B,0x41,0x8C,0x1B,0x88,0x8F,0x4C, +0x6C,0x0A,0x88,0xAE,0x8C,0x6B,0x88,0xED,0x0E,0x01,0x0A,0x0D,0xE1,0x0E,0x0D,0xC1, +0x12,0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26, +0x1C,0x21,0x28,0xE7,0xFF,0xFC,0xC9,0x0E,0x01,0x0A,0x0D,0xE1,0x0E,0x0D,0xC1,0x12, +0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26,0x1C, +0x21,0x28,0x85,0x29,0x1C,0x21,0x90,0x0D,0x41,0x68,0x0D,0x81,0x60,0x0D,0xA1,0x5C, +0x0D,0xE1,0x54,0x0E,0x01,0x50,0x0E,0x21,0x4C,0x0D,0x21,0x6C,0xC2,0x20,0x10,0x01, +0x0D,0x61,0x64,0x0D,0xC1,0x58,0x0E,0x41,0x48,0x0E,0x61,0x44,0x0E,0x81,0x40,0x0E, +0xA1,0x3C,0x0E,0xC1,0x38,0x89,0xA3,0x8A,0x04,0x89,0x85,0x5D,0xE6,0x00,0x99,0x40, +0xFE,0x31,0x0B,0x90,0xE4,0x00,0x00,0xA1,0xCF,0x0A,0x00,0x30,0x8F,0x11,0x1E,0xE1, +0x20,0x10,0xB8,0x07,0x0B,0x98,0x17,0x43,0x2D,0x2C,0x4D,0x05,0x08,0x13,0x59,0x00, +0x1F,0x61,0x38,0x8D,0x1A,0x9F,0x41,0x4D,0x08,0x08,0x1B,0x59,0x00,0x8F,0x68,0x08, +0x78,0x17,0x0F,0x9B,0xD9,0x1F,0x01,0x30,0x8F,0x08,0x88,0x8F,0x0F,0x01,0x00,0x1C, +0xC1,0x18,0x1C,0xE1,0x28,0x8C,0xC8,0x8C,0xE8,0x9D,0x41,0x8D,0x17,0x5D,0x4A,0x00, +0xE7,0xFF,0xFD,0x1E,0x12,0xF1,0x00,0xD6,0xEA,0xFD,0x8D,0xC2,0xE0,0x10,0x01,0x8B, +0x10,0xF2,0x57,0x04,0x64,0x9B,0x41,0x8A,0xED,0xE4,0x00,0x00,0x23,0x13,0x37,0x00, +0x27,0x24,0x19,0x0F,0x58,0x00,0x9E,0xE1,0x9F,0x04,0x43,0x37,0x6D,0x5F,0x39,0x00, +0xD6,0x59,0xFF,0x6D,0x99,0x60,0xC2,0x60,0x10,0x01,0x89,0x4B,0xC2,0x80,0x10,0x01, +0xE4,0x00,0x03,0x07,0x42,0xF0,0x5C,0x0E,0xF7,0x02,0x22,0xE0,0x48,0x1E,0xE1,0x10, +0x8E,0xEB,0x0B,0x57,0x00,0x0B,0x77,0x02,0xE4,0x00,0x01,0x5D,0x42,0xED,0x54,0x12, +0xF7,0x00,0x22,0xE1,0xE0,0x1E,0xE1,0x18,0x8E,0xEB,0x0B,0x17,0x00,0x1E,0xE1,0x28, +0x8E,0xEB,0x0A,0xF7,0x00,0x8E,0xF8,0x1F,0x01,0x30,0x8F,0x0B,0x0B,0x18,0x00,0x8E, +0xF8,0x1F,0x01,0x20,0x8F,0x0B,0x0B,0x18,0x00,0x8E,0xF8,0x9B,0x04,0x42,0xF7,0xC0, +0x0E,0xEC,0x00,0xE4,0x00,0x02,0x55,0xCE,0xEE,0x00,0x30,0x8E,0xF1,0x41,0x0E,0xCC, +0x08,0x77,0x17,0x4D,0x08,0x08,0x1E,0xE1,0x30,0x8E,0xE8,0x0E,0xE1,0x00,0x1E,0xE1, +0x20,0x0F,0x01,0x0C,0x0F,0x21,0x08,0x88,0x8F,0x88,0xB5,0x1C,0xC1,0x18,0x1C,0xE1, +0x28,0x8C,0xC8,0x8C,0xE8,0x8D,0x17,0xE7,0xFF,0xFB,0x90,0x9D,0xC1,0x0F,0x01,0x0E, +0x5D,0xCE,0x00,0x0F,0x21,0x0A,0xE4,0x00,0x00,0x23,0x9A,0xC1,0x99,0xC0,0x42,0xD6, +0x55,0x4F,0x2A,0x08,0x43,0x0D,0xB4,0x12,0xF8,0x00,0xD6,0xEE,0xFD,0x6D,0x4E,0xD6, +0x10,0x43,0x10,0xB4,0x0F,0x18,0x02,0xD3,0x00,0x05,0x0A,0x1F,0x01,0x38,0x8E,0xD8, +0x0B,0x56,0xD8,0x0B,0x76,0xDA,0x43,0x3A,0xDD,0x5F,0x39,0x06,0x4E,0xF9,0xFA,0xEB, +0x93,0x04,0x5B,0x47,0x37,0xCE,0x43,0x39,0xBD,0x52,0xE0,0x64,0x5F,0x39,0x06,0xD7, +0x3C,0x00,0xF4,0xEB,0x14,0x04,0x59,0x9A,0xE0,0xD7,0x19,0x00,0xA4,0x42,0xF9,0xC5, +0x43,0x1C,0xC5,0xCE,0xF7,0x00,0x64,0x42,0xF7,0xC0,0x5E,0xF7,0x00,0x5F,0x7A,0x15, +0x4B,0x81,0x01,0x4F,0x2A,0x08,0x4B,0x00,0x0A,0x8F,0x19,0x8F,0x3C,0x1F,0x81,0x38, +0x1F,0x41,0x38,0x53,0x60,0xC8,0x4F,0x39,0x08,0x43,0x7B,0xBD,0x8F,0x3C,0x0B,0x99, +0xE0,0x4F,0x18,0x08,0x8F,0x1A,0x0B,0xB8,0xE8,0x0B,0x58,0xF8,0x8F,0x5D,0x8F,0x5C, +0x0B,0x99,0xF0,0x8F,0x5C,0x43,0x5B,0xD3,0x0B,0x79,0xE8,0x0B,0x39,0xF8,0x8F,0x79, +0x0B,0x38,0xE0,0x8F,0x79,0x0B,0x38,0xF0,0x43,0x1B,0xCC,0x42,0xF7,0xC3,0xCB,0x00, +0x03,0x20,0x8E,0xFA,0xE7,0xFF,0xFD,0xF3,0x22,0xE0,0x88,0x1F,0x01,0x38,0x4E,0xEA, +0x10,0x8E,0xF8,0x0B,0x17,0xF0,0x0B,0x37,0xE0,0x8F,0x38,0x0B,0x17,0xF8,0x8F,0x38, +0x0B,0x17,0xE8,0x42,0xF9,0xC4,0xE7,0xFF,0xFD,0xAB,0x0C,0x0C,0x00,0x9D,0x41,0x9D, +0x84,0x9D,0x64,0x5E,0xAA,0x00,0xD6,0x55,0xF3,0xF5,0x0E,0xC1,0x3A,0x0E,0xA1,0x3E, +0x0E,0x81,0x42,0x0E,0x61,0x46,0x0E,0x41,0x4A,0x0E,0x21,0x4E,0x0E,0x01,0x52,0x0D, +0xE1,0x56,0x0D,0xC1,0x5A,0x0D,0xA1,0x5E,0x0D,0x81,0x62,0x0D,0x61,0x66,0x0D,0x41, +0x6A,0x0D,0x21,0x6E,0x1C,0x21,0x70,0x85,0x29,0x1C,0x21,0xE8,0x0D,0x41,0x10,0x0D, +0x61,0x0C,0x0D,0x81,0x08,0x0D,0xA1,0x04,0x0D,0x21,0x14,0x89,0xA3,0xC2,0xE0,0x10, +0x01,0x5C,0x64,0x06,0xEA,0xF7,0x08,0x3F,0x5D,0x85,0x00,0x5D,0x66,0x00,0x5D,0x47, +0x00,0x56,0xF7,0x04,0x22,0xE0,0x34,0x88,0x8C,0x88,0xAB,0x88,0xCA,0xE7,0xFF,0xE0, +0xEC,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x0B,0x1E,0x43,0x0A,0xC3,0x5F,0x18,0x00,0x9B, +0x20,0x42,0xF8,0x64,0x8D,0x78,0xC3,0x40,0x10,0x01,0x5D,0x6B,0x00,0x5E,0xF7,0x00, +0x8B,0x19,0xFF,0x5A,0x09,0x0C,0xE4,0x00,0x00,0x3B,0x4F,0x77,0x10,0x8F,0x7A,0x0B, +0x7B,0x02,0x8F,0x1B,0x4F,0x77,0x10,0x9E,0xE1,0x8F,0x7A,0x5E,0xF7,0x00,0x0B,0x7B, +0x00,0x8F,0x3B,0xD6,0xEB,0xFF,0x38,0x27,0x21,0x14,0x27,0x01,0x08,0xC2,0xE0,0x10, +0x01,0xFE,0xF7,0x03,0x30,0x4F,0x39,0x40,0x9D,0x44,0x4D,0x4A,0x10,0x8D,0x57,0x0A, +0xEA,0x06,0x43,0x19,0xC0,0x9B,0x4A,0xFF,0x18,0xFF,0x00,0x53,0x20,0x64,0x43,0x18, +0xBB,0x0A,0xEA,0x04,0x43,0x18,0xD0,0x4E,0xF7,0x40,0x42,0xF7,0xC8,0x8E,0xF8,0x5E, +0xE0,0x09,0x0E,0xED,0x00,0x48,0x61,0x01,0xE4,0x00,0x00,0x0D,0x98,0x60,0x0D,0xA1, +0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18, +0x85,0x29,0xCA,0xE0,0x01,0x00,0xFC,0x21,0xFF,0x80,0x5C,0xE7,0x00,0x0D,0x41,0x78, +0x0D,0x61,0x74,0x0D,0x81,0x70,0x0E,0x21,0x5C,0x0E,0x41,0x58,0x0E,0x61,0x54,0x0E, +0x81,0x50,0x0E,0xA1,0x4C,0x0E,0xC1,0x48,0x0D,0x21,0x7C,0x0D,0xA1,0x6C,0x0D,0xC1, +0x68,0x0D,0xE1,0x64,0x0E,0x01,0x60,0xCE,0x44,0x00,0x0A,0x42,0x52,0x1B,0x42,0x52, +0xB8,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x1A,0x11,0xD7,0x04,0x41,0x87,0x73,0x5F, +0x0C,0x00,0xCC,0x84,0x0A,0x00,0x8C,0xB8,0x8C,0xD8,0xC2,0xA0,0x10,0x01,0xC2,0x20, +0x10,0x01,0xC1,0x60,0x10,0x01,0xC3,0x00,0x10,0x01,0xFD,0x6B,0x09,0x0C,0x42,0x64, +0x18,0x5E,0x86,0x00,0x09,0xF7,0x0B,0x12,0x17,0x0C,0x5D,0x45,0x00,0xFE,0xB5,0x03, +0x30,0xFE,0x31,0x04,0x1C,0x8A,0xCB,0xFF,0x18,0x09,0xBC,0xE4,0x00,0x01,0x61,0x0F, +0x01,0x04,0x88,0x95,0x50,0xA0,0x3C,0x1C,0x61,0x08,0xE4,0x00,0x44,0xAC,0x41,0xAA, +0x65,0x1E,0xED,0x01,0x4E,0xF7,0x08,0x8E,0xF1,0x98,0x82,0x08,0x77,0x00,0x1C,0xA1, +0x08,0x40,0x63,0x7B,0x40,0x63,0x80,0xE7,0xFF,0xF1,0x44,0x0F,0x01,0x06,0x5C,0x63, +0x04,0xD5,0x4C,0x00,0x5E,0x1E,0xEE,0xFF,0xD5,0xB7,0x01,0x92,0xCB,0x20,0x03,0xE8, +0x43,0x43,0x9B,0x4E,0xEA,0x10,0x43,0x63,0x93,0x9E,0xE2,0x43,0x7B,0xC8,0x8E,0xEB, +0x0B,0x97,0x01,0x43,0x7C,0xDD,0x0F,0x77,0x01,0x43,0x3A,0xC8,0x4E,0xEA,0x10,0x8E, +0xEB,0x0B,0x57,0x01,0x43,0x3A,0xCD,0x0F,0x37,0x01,0x4E,0xEA,0x08,0x1F,0x37,0x01, +0x4F,0x59,0x08,0x8F,0x4B,0x0B,0x7A,0x00,0x27,0x7C,0x1A,0x0C,0x1A,0x01,0x4F,0x57, +0x08,0x8F,0x56,0x0B,0x7A,0x00,0x27,0x7C,0x1A,0x0C,0x1A,0x01,0x4E,0xF7,0x08,0x8E, +0xEB,0x4F,0x4A,0x10,0x0B,0x77,0x00,0x8F,0x58,0x4F,0x39,0x08,0x9D,0x41,0x8F,0x2B, +0x5D,0x4A,0x00,0x0A,0xF9,0x00,0x8E,0xFB,0x0E,0xFA,0x00,0xD5,0x54,0xFA,0xA0,0x0E, +0xC1,0x4A,0x0E,0xA1,0x4E,0x0E,0x81,0x52,0x0E,0x61,0x56,0x0E,0x41,0x5A,0x0E,0x21, +0x5E,0x0E,0x01,0x62,0x0D,0xE1,0x66,0x0D,0xC1,0x6A,0x0D,0xA1,0x6E,0x0D,0x81,0x72, +0x0D,0x61,0x76,0x0D,0x41,0x7A,0x0D,0x21,0x7E,0xFC,0x21,0x00,0x80,0x85,0x29,0x1C, +0x21,0xB8,0x98,0x60,0x0D,0x21,0x44,0x0D,0x41,0x40,0x0D,0x61,0x3C,0x0D,0x81,0x38, +0x0D,0xA1,0x34,0x0D,0xC1,0x30,0x0D,0xE1,0x2C,0x0E,0x01,0x28,0x0E,0x21,0x24,0x0E, +0x41,0x20,0x0E,0x61,0x1C,0x0E,0x81,0x18,0x0C,0x01,0x08,0x0C,0x01,0x0C,0x18,0x01, +0x02,0x18,0x01,0x03,0x0C,0x01,0x10,0x0C,0x01,0x14,0xE7,0xFF,0xD3,0x4C,0x1C,0x61, +0x02,0x1C,0x81,0x10,0x1C,0xA1,0x08,0x98,0xC4,0xE7,0xFF,0xF5,0xD6,0xC2,0xE0,0x10, +0x01,0xF3,0x97,0x04,0x64,0xC2,0xE0,0x10,0x01,0xEB,0xB7,0x08,0x1D,0xC2,0xE0,0x10, +0x01,0xEF,0x77,0x04,0x56,0xC2,0xE0,0x10,0x01,0x57,0xBD,0x20,0xEF,0xD7,0x04,0x62, +0xC3,0x20,0x10,0x01,0x4F,0xBD,0x29,0x1E,0xE1,0x08,0xFF,0x39,0x03,0x50,0x9B,0x40, +0xE4,0x00,0x00,0x63,0x0F,0x17,0x02,0x09,0x19,0xFC,0x0F,0x19,0x00,0x43,0x18,0x45, +0x5F,0x1F,0xF9,0x4B,0x18,0x00,0x0F,0x17,0x00,0x23,0xA0,0x3C,0x23,0x60,0x30,0x43, +0x18,0xF3,0x43,0x18,0xD8,0x0F,0x17,0x00,0x9F,0x41,0x9E,0xE4,0x5F,0x5A,0x00,0x9F, +0x28,0xD7,0x5C,0xFE,0x9E,0x98,0x61,0x99,0x60,0xC2,0x20,0x10,0x01,0xC2,0x80,0x10, +0x01,0xE7,0xFF,0xD2,0x3E,0x89,0x4B,0xFD,0xB1,0x0B,0x90,0x9A,0x41,0xC2,0x60,0x10, +0x01,0xFE,0x94,0x0C,0x5C,0xE4,0x00,0x00,0xF9,0xCE,0x0A,0x00,0x30,0x42,0xF0,0x6C, +0x1C,0x61,0x04,0x11,0xF7,0x04,0x11,0xD7,0x05,0x11,0x97,0x07,0x08,0x97,0x17,0x88, +0xAF,0x88,0xCE,0x88,0xEC,0xE7,0xFF,0xF9,0x88,0x20,0x60,0xF8,0x98,0x60,0xE7,0xFF, +0xD1,0xC4,0x1F,0x01,0x18,0x4E,0xEC,0x10,0x8E,0xF8,0x88,0xAF,0x0C,0x97,0xF2,0x88, +0xCE,0x88,0xEC,0x0C,0x61,0x06,0xE7,0xFF,0xFA,0xF8,0x98,0x61,0xE7,0xFF,0xD1,0x88, +0x40,0x6D,0x84,0x88,0xAF,0x88,0x83,0x88,0xCE,0x1C,0x63,0x18,0x9C,0x8C,0x88,0xEC, +0xE7,0xFF,0xD4,0x42,0x20,0x60,0x32,0x4E,0xF2,0x54,0x45,0x6B,0xBD,0x5D,0x6B,0x00, +0x88,0x74,0xF0,0x93,0x0B,0x1A,0x98,0xA1,0x9D,0x41,0xE4,0x00,0xA0,0x3C,0x5D,0x4A, +0x00,0xF2,0xF1,0x0B,0x90,0xD6,0xEA,0xFC,0x25,0x88,0x6B,0xE7,0xFF,0xD7,0xB0,0x0D, +0x21,0x46,0x0E,0x81,0x1A,0x0E,0x61,0x1E,0x0E,0x41,0x22,0x0E,0x21,0x26,0x0E,0x01, +0x2A,0x0D,0xE1,0x2E,0x0D,0xC1,0x32,0x0D,0xA1,0x36,0x0D,0x81,0x3A,0x0D,0x61,0x3E, +0x0D,0x41,0x42,0x1C,0x21,0x48,0x85,0x29,0xFC,0x21,0xFF,0x00,0x98,0xA0,0xED,0x41, +0x00,0xF8,0xED,0x61,0x00,0xF4,0xED,0xC1,0x00,0xE8,0xED,0xE1,0x00,0xE4,0xEE,0x01, +0x00,0xE0,0xEE,0x21,0x00,0xDC,0xEE,0x41,0x00,0xD8,0xEE,0x61,0x00,0xD4,0xED,0x21, +0x00,0xFC,0xED,0x81,0x00,0xF0,0xED,0xA1,0x00,0xEC,0xEE,0x81,0x00,0xD0,0xEE,0xA1, +0x00,0xCC,0xEE,0xC1,0x00,0xC8,0xC2,0x20,0x10,0x01,0xC2,0x60,0x10,0x01,0xFE,0x31, +0x0C,0x5C,0xFD,0x73,0x0B,0x1A,0x88,0x71,0x10,0x8B,0x00,0xE4,0x00,0x9F,0x1A,0xC2, +0xE0,0x10,0x01,0xEA,0xF7,0x08,0x25,0xC6,0xF7,0x02,0x00,0xC2,0x40,0x10,0x01,0x5E, +0xE0,0x01,0xC1,0xE0,0x10,0x01,0x4A,0xE1,0x13,0xC1,0x40,0x10,0x01,0xC1,0xC0,0x10, +0x01,0x0E,0xE1,0x0C,0x9A,0x00,0xFE,0x52,0x03,0x30,0xFD,0xEF,0x09,0x0C,0xFD,0x4A, +0x09,0xBC,0xFD,0xCE,0x0B,0x90,0x98,0x60,0x0C,0x01,0x58,0x0C,0x01,0x5C,0x18,0x01, +0x56,0x18,0x01,0x57,0x0C,0x01,0x60,0x0C,0x01,0x64,0xE7,0xFF,0xCF,0x6C,0x1C,0x61, +0x56,0x1C,0x81,0x60,0x1C,0xA1,0x58,0x98,0xC3,0xE7,0xFF,0xF1,0xF6,0xC2,0xE0,0x10, +0x01,0xEB,0x97,0x08,0x1D,0xC2,0xE0,0x10,0x01,0xC3,0x20,0x10,0x01,0xEF,0x77,0x04, +0x56,0xC2,0xE0,0x10,0x01,0xF3,0x59,0x04,0x64,0x57,0x9C,0x20,0xEF,0xB7,0x04,0x62, +0x4F,0x9C,0x29,0x1E,0xE1,0x58,0x9B,0x20,0xE4,0x00,0x00,0x5D,0x0F,0xD7,0x02,0x4F, +0x19,0x18,0x8F,0x12,0x0B,0x18,0x1C,0x43,0x1E,0xC5,0x5F,0x1F,0xF9,0x4B,0x18,0x00, +0x0F,0x17,0x00,0x23,0x80,0x3C,0x23,0x60,0x30,0x43,0x18,0xEB,0x43,0x18,0xD8,0x0F, +0x17,0x00,0x9F,0x21,0x9E,0xE4,0x5F,0x19,0x00,0xD7,0x58,0xFE,0x9D,0x13,0x0B,0x04, +0x09,0xAB,0x0B,0x12,0x8B,0x0C,0x9A,0xA0,0xE4,0x00,0x01,0xA1,0xFE,0xE1,0x00,0xC8, +0x8E,0xF5,0x12,0xF7,0x8E,0x22,0xE0,0x72,0xFF,0x61,0x00,0xC8,0x9A,0xE1,0x42,0xF7, +0xAD,0x4E,0xF7,0x10,0x8E,0xFB,0x0F,0x37,0x92,0x4E,0xF5,0x10,0x8E,0xFB,0x0F,0x37, +0x90,0x41,0x95,0xC3,0x1F,0xB5,0x01,0x5E,0xCC,0x00,0x43,0xBD,0xC3,0xE4,0x00,0x01, +0x25,0x0F,0x01,0x00,0x0F,0x41,0x04,0x0F,0xA1,0x08,0x88,0x92,0x50,0xA0,0x3C,0x1C, +0x61,0x10,0xE4,0x00,0x3D,0x1C,0x42,0xF6,0x65,0xC3,0x80,0x10,0x01,0x9E,0xE1,0xFF, +0x9C,0x04,0x1C,0x4E,0xF7,0x08,0x8E,0xFC,0x98,0x81,0x08,0x77,0x00,0x1C,0xA1,0x10, +0x40,0x63,0x6B,0x40,0x63,0xA0,0xE7,0xFF,0xE9,0xA6,0x53,0x60,0x64,0x4E,0xF6,0x10, +0x5C,0x63,0x04,0x4F,0x35,0x10,0xFD,0x21,0x00,0xC8,0x9E,0xE2,0x8F,0x29,0x8E,0xEF, +0x0F,0x39,0x92,0x43,0x23,0xCB,0x43,0x39,0xD8,0x0B,0x77,0x01,0x5F,0x39,0x04,0x43, +0x7B,0xCD,0x0F,0x77,0x01,0x0F,0xA1,0x0A,0x4F,0x76,0x10,0x0F,0x41,0x06,0x43,0x9B, +0x7C,0x9E,0xC1,0x0B,0xDC,0x01,0x8F,0x6A,0x43,0x3E,0xCD,0x5E,0xD6,0x00,0x5F,0x39, +0x06,0x0F,0x01,0x02,0x0F,0x3C,0x01,0x0A,0xF7,0x00,0x8F,0x37,0x0F,0x3B,0x00,0xD7, +0xB6,0xFB,0x94,0x9E,0xA1,0x5E,0xB5,0x00,0xD7,0x55,0xF9,0xA5,0x98,0x61,0xE7,0xFF, +0xCC,0xC4,0x13,0x6B,0x04,0x13,0x4B,0x01,0xC3,0x00,0x10,0x01,0x43,0x5A,0xDB,0x9A, +0xE0,0xFF,0x18,0x0C,0xD0,0xE4,0x00,0x00,0x4F,0x4F,0x37,0x10,0x43,0x99,0xC4,0x8F, +0x2F,0x0B,0x39,0x01,0x0F,0x3C,0x01,0x4F,0x37,0x10,0x9E,0xE1,0x9F,0x22,0x5E,0xF7, +0x00,0x43,0x99,0xC4,0x8F,0x2F,0x0B,0x39,0x01,0x0F,0x3C,0x01,0xD7,0x57,0xFE,0xEC, +0xC3,0x20,0x10,0x01,0x12,0x8E,0x00,0xFF,0x39,0x0B,0x96,0x9B,0xA0,0x8B,0x19,0x8B, +0xCA,0xE4,0x00,0x01,0x3D,0x1F,0x98,0x02,0x12,0xF8,0xFE,0x12,0xB8,0xFF,0x11,0x98, +0x01,0x13,0x58,0x00,0x0D,0x1C,0x02,0x21,0x04,0x5E,0x43,0x8C,0xDB,0x8F,0x9A,0x4F, +0x9C,0x10,0x8F,0x8A,0x0F,0x9C,0x02,0x41,0x8C,0xDB,0xE4,0x00,0x00,0xCD,0x4D,0xBA, +0x10,0x43,0x9A,0xDC,0x8D,0xAA,0x4F,0x9C,0x10,0x0D,0xAD,0x02,0x8F,0x8A,0x0F,0x9C, +0x02,0x8F,0x8D,0xE7,0xFF,0xFF,0xC9,0x21,0x04,0x5A,0x41,0xB7,0x64,0x4D,0xAD,0x10, +0x8D,0xAA,0x0D,0xAD,0x02,0xD5,0xBC,0x01,0x94,0xE4,0x00,0x00,0x65,0x4D,0xB7,0x10, +0x42,0xD7,0xDC,0x8D,0xBE,0x4E,0xD6,0x10,0x0D,0xAD,0x02,0x8E,0xDE,0x0E,0xD6,0x02, +0x8E,0xCD,0xD6,0xDC,0x00,0xC8,0x43,0x57,0x64,0x4F,0x5A,0x10,0x8F,0x5E,0x0F,0x9A, +0x02,0x8F,0x8D,0xE4,0x00,0x00,0x0D,0x8B,0x8D,0x8B,0x57,0x9E,0xE1,0x5E,0xF7,0x00, +0xD6,0xF5,0xFD,0xB8,0x1B,0x58,0x00,0x9F,0xA1,0x1F,0x18,0x30,0x5F,0xBD,0x00,0xD7, +0xB4,0xFB,0x36,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x0B,0x1E,0xC2,0xE0,0x10,0x01,0x1F, +0x98,0xFF,0xF3,0x57,0x04,0x50,0x1F,0xB8,0xFD,0xC2,0xE0,0x10,0x01,0x1E,0xB8,0xFC, +0x11,0x8E,0x00,0x5D,0x1C,0x00,0x1D,0xB8,0xFE,0xFE,0xF7,0x0B,0x95,0x9B,0x60,0x8A, +0x9C,0x5F,0xBD,0x00,0x5E,0xB5,0x00,0x9A,0xC2,0x1C,0x78,0xFD,0xE4,0x00,0x00,0xEB, +0x13,0x17,0x01,0xD7,0x1C,0x00,0x76,0x19,0x17,0x00,0x18,0x77,0xFF,0xE4,0x00,0x00, +0xB9,0x23,0x00,0x36,0x1A,0xD7,0x00,0x18,0x17,0xFF,0xE4,0x00,0x00,0x9F,0x23,0x04, +0x56,0x5F,0x40,0x29,0x9F,0x1F,0x4B,0xC2,0x1B,0x1B,0x17,0xFF,0x1B,0xD7,0x00,0xE4, +0x00,0x00,0x75,0xD7,0x0D,0x00,0x8E,0x5F,0x40,0x29,0x1A,0x97,0x00,0x4B,0xDD,0xA8, +0xE4,0x00,0x00,0x4D,0x1F,0xD8,0x01,0x5F,0xDE,0x00,0x23,0x44,0x22,0x9F,0x02,0x5F, +0xD8,0x00,0x1B,0xD7,0x00,0x13,0xD7,0x01,0x23,0x44,0x26,0x9F,0xDE,0xE4,0x00,0x00, +0x0D,0x9F,0xDF,0x5F,0xDE,0x00,0x1B,0xD7,0xFF,0x9F,0x61,0x1E,0xF7,0x30,0x5F,0x7B, +0x00,0xD7,0x6C,0xFC,0x7E,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x25,0x56,0xF7,0x08, +0xD2,0xE0,0x08,0x6A,0xC2,0xE0,0x10,0x01,0x9B,0x00,0xF3,0x57,0x0B,0x1E,0x9B,0xA0, +0xC2,0xE0,0x10,0x01,0x1E,0xDA,0xFE,0xEA,0x97,0x01,0x7E,0x8B,0x78,0x8B,0x9D,0x98, +0x60,0x9A,0xA1,0xE4,0x00,0x01,0xBF,0x12,0xF9,0x00,0xD2,0xE1,0x06,0x99,0xD6,0xD7, +0x06,0x78,0x1D,0x17,0xFF,0x1D,0xB7,0x01,0x1D,0x39,0x02,0x5D,0x08,0x00,0x5D,0xAD, +0x00,0x0F,0xC9,0x02,0x23,0xC4,0xDE,0x13,0x79,0x01,0x43,0x7A,0xDB,0x5F,0x7B,0x00, +0x8D,0xBB,0x8D,0x1B,0x8E,0xFB,0x4D,0xAD,0x10,0x4D,0x08,0x10,0x8D,0xAA,0x8D,0x0A, +0x0F,0xAD,0x02,0x0F,0x88,0x02,0x4E,0xF7,0x10,0x5F,0xBC,0x15,0x8E,0xEA,0x4B,0x9D, +0xE0,0x0F,0x77,0x02,0x5F,0x9C,0x06,0xE4,0x00,0x00,0xCD,0x23,0xC9,0xA2,0x13,0x79, +0x01,0x43,0xBB,0xD3,0x5F,0xBD,0x00,0x43,0x8D,0xEC,0x4F,0x9C,0x10,0x8F,0x8A,0x43, +0x75,0xDD,0x0F,0xDC,0x02,0x43,0x7A,0xDB,0x5F,0x7B,0x00,0x8D,0xBB,0x4D,0xAD,0x10, +0x8D,0xAA,0x0F,0x8D,0x02,0x8F,0xDC,0x43,0x88,0xEC,0x4F,0x9C,0x10,0x8F,0x8A,0x8D, +0x1B,0x0D,0xBC,0x02,0x8F,0xB7,0x4D,0x08,0x10,0x8E,0xFB,0x8D,0x0A,0x4F,0xBD,0x10, +0x0F,0x88,0x02,0x8F,0xAA,0x8F,0x8D,0x4E,0xF7,0x10,0x5F,0xDC,0x15,0x8E,0xEA,0x4B, +0x9E,0xE0,0x0F,0x7D,0x02,0x0E,0xF7,0x02,0x5F,0x9C,0x06,0x8F,0x77,0x8B,0xB4,0xE4, +0x00,0x00,0x0F,0x23,0xC0,0x68,0xC3,0x60,0x7C,0xEC,0x20,0x00,0x4D,0x42,0xFB,0xE5, +0xD7,0xB7,0x00,0x68,0x4E,0xF5,0xC4,0x44,0x63,0xBD,0x5C,0x63,0x00,0x9F,0x01,0x1F, +0x39,0x30,0x5E,0xF8,0x00,0xD5,0x97,0xF9,0x15,0xE7,0xFF,0xCD,0xF4,0x1E,0xC1,0x68, +0x10,0x8B,0x00,0x88,0x76,0x98,0xA0,0x99,0xA0,0xE4,0x00,0x96,0x3E,0x89,0x8D,0xC2, +0x80,0x10,0x01,0xE4,0x00,0x01,0x3F,0xCC,0x6C,0x00,0x30,0xEB,0x74,0x08,0x3F,0x42, +0xA3,0x74,0x57,0x7B,0x02,0x13,0x55,0x04,0x13,0x35,0x05,0x13,0x15,0x07,0x23,0x61, +0x54,0x88,0x9A,0x88,0xB9,0x88,0xD8,0x0F,0x01,0x00,0x0F,0x21,0x08,0x0F,0x41,0x04, +0x1C,0x61,0x52,0x98,0xE1,0xE7,0xFF,0xD2,0xE4,0x0F,0x01,0x02,0x0F,0x21,0x0A,0x0F, +0x41,0x06,0x20,0x61,0x14,0x1C,0x61,0x54,0x88,0x9A,0x88,0xB9,0x88,0xD8,0x98,0xE1, +0xE7,0xFF,0xD4,0x54,0x20,0x60,0xCC,0x0B,0x21,0x52,0x0B,0x01,0x54,0xCF,0x39,0x00, +0x07,0xCF,0x18,0x00,0x03,0x9A,0xEA,0x8F,0x19,0x43,0x18,0xB8,0x0F,0x15,0x17,0xE4, +0x00,0x00,0x47,0x8C,0x6E,0x88,0x9A,0x1C,0x63,0x16,0x88,0xB9,0x88,0xD8,0x98,0xE1, +0xE7,0xFF,0xD2,0x4E,0x20,0x60,0x3A,0x9A,0xE1,0x4E,0xF7,0x64,0x45,0xAD,0xBD,0x5D, +0xAD,0x00,0x88,0x76,0x10,0x8B,0x00,0x98,0xA1,0x9D,0x81,0xE4,0x00,0x94,0xFA,0x5D, +0x8C,0x00,0x12,0xEE,0x00,0xD6,0xEC,0xFB,0x15,0x88,0x6D,0xE7,0xFF,0xCC,0x70,0x9E, +0x01,0x0F,0x21,0x0E,0x5E,0x10,0x00,0xD7,0x30,0xD8,0x7D,0x88,0x71,0x10,0x8B,0x00, +0x98,0xA1,0xE4,0x00,0x94,0xAC,0xED,0x21,0x00,0xFE,0xEE,0xC1,0x00,0xCA,0xEE,0xA1, +0x00,0xCE,0xEE,0x81,0x00,0xD2,0xEE,0x61,0x00,0xD6,0xEE,0x41,0x00,0xDA,0xEE,0x21, +0x00,0xDE,0xEE,0x01,0x00,0xE2,0xED,0xE1,0x00,0xE6,0xED,0xC1,0x00,0xEA,0xED,0xA1, +0x00,0xEE,0xED,0x81,0x00,0xF2,0xED,0x61,0x00,0xF6,0xED,0x41,0x00,0xFA,0xFC,0x21, +0x01,0x00,0x85,0x29,0x20,0x60,0x2E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01,0x34,0x85, +0x29,0x20,0x60,0x4E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x00,0xFC,0xC2,0xE0,0x10,0x01, +0xEC,0xB7,0x01,0x30,0x85,0x29,0x20,0x60,0x5E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x04, +0x8C,0xC2,0xE0,0x10,0x01,0xEC,0xB7,0x04,0x90,0xE4,0x00,0x00,0x5D,0x20,0x64,0x5E, +0xC2,0xE0,0x10,0x01,0xEC,0x97,0x04,0xBC,0xC2,0xE0,0x10,0x01,0xEC,0xB7,0x04,0xB4, +0xE4,0x00,0x00,0x2F,0x20,0x68,0x4E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x04,0xAC,0xC2, +0xE0,0x10,0x01,0xEC,0xB7,0x04,0x88,0x85,0x29,0x20,0x68,0x2E,0xC2,0xE0,0x10,0x01, +0xEC,0x97,0x04,0xA8,0x85,0x29,0x5C,0x84,0x04,0x20,0x60,0x3E,0xC2,0xE0,0x10,0x01, +0xEC,0x97,0x01,0x3B,0xE4,0x00,0x00,0x3D,0x20,0x64,0x3E,0xC2,0xE0,0x10,0x01,0xEC, +0x97,0x01,0x1D,0xE4,0x00,0x00,0x1F,0x20,0x68,0x2E,0xC2,0xE0,0x10,0x01,0xEC,0x97, +0x01,0x41,0x85,0x29,0x5C,0x84,0x04,0x20,0x60,0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97, +0x01,0x01,0xE4,0x00,0x00,0x3D,0x20,0x64,0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01, +0x39,0xE4,0x00,0x00,0x1F,0x20,0x68,0x2E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01,0x19, +0x85,0x29,0x5C,0x84,0x04,0x20,0x68,0x2E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01,0x1B, +0x85,0x29,0x1C,0x21,0xC8,0x0D,0x21,0x34,0x0D,0x41,0x30,0x0D,0x61,0x2C,0x0D,0x81, +0x28,0x0D,0xA1,0x24,0x0D,0xC1,0x20,0x0D,0xE1,0x1C,0x0E,0x01,0x18,0x0E,0x21,0x14, +0x0E,0x41,0x10,0x0E,0x61,0x0C,0x0E,0x81,0x08,0x0E,0xA1,0x04,0x0E,0xC1,0x00,0x20, +0x65,0x70,0x20,0x60,0x4C,0xD0,0x62,0x04,0x42,0x99,0xC0,0x89,0xEE,0xD0,0x63,0x06, +0x66,0xE4,0x00,0x01,0x71,0xC2,0xE0,0x10,0x01,0xEE,0xD7,0x00,0xFE,0xC2,0xE0,0x10, +0x01,0xEE,0xB7,0x01,0x32,0xC2,0xE0,0x10,0x01,0xEE,0x97,0x04,0x8E,0xC2,0xE0,0x10, +0x01,0xEE,0x77,0x04,0x92,0xC2,0xE0,0x10,0x01,0xE9,0xF7,0x01,0x3B,0xC2,0xE0,0x10, +0x01,0x9A,0x00,0xE9,0xD7,0x01,0x01,0x99,0xA0,0xC2,0xE0,0x10,0x01,0x9A,0x21,0xED, +0x77,0x01,0x36,0x9A,0x45,0x89,0x90,0xE4,0x00,0x00,0xD9,0xC2,0xE0,0x10,0x01,0xEE, +0x97,0x04,0xBE,0xC2,0xE0,0x10,0x01,0xEE,0x77,0x04,0xB6,0xC2,0xE0,0x10,0x01,0x99, +0xA0,0xE9,0xF7,0x01,0x1D,0x9A,0x00,0xC2,0xE0,0x10,0x01,0x8A,0x2D,0xE9,0xD7,0x01, +0x39,0x9A,0x40,0x99,0x61,0x89,0x90,0x9A,0xA0,0xE4,0x00,0x00,0x71,0xC2,0xE0,0x10, +0x01,0xEE,0x97,0x04,0xAE,0xC2,0xE0,0x10,0x01,0xEE,0x17,0x04,0xAA,0xC2,0xE0,0x10, +0x01,0xE9,0xF7,0x01,0x41,0xC2,0xE0,0x10,0x01,0x99,0x81,0xE9,0xD7,0x01,0x19,0x9A, +0x21,0xC2,0xE0,0x10,0x01,0x9A,0x40,0xE9,0xB7,0x01,0x1B,0x99,0x61,0x9A,0x60,0x8A, +0xAC,0x9A,0xC1,0x99,0x41,0xE4,0x00,0x00,0x55,0xC2,0xE0,0x10,0x01,0xE9,0xF7,0x01, +0x3B,0xC2,0xE0,0x10,0x01,0xE9,0xD7,0x01,0x01,0x99,0xA0,0x9A,0x40,0x9A,0x00,0x9A, +0x80,0x9A,0xA0,0x8A,0x2D,0x89,0x72,0x8A,0x70,0x89,0x94,0x8A,0xD5,0x99,0x40,0x88, +0x6A,0xE4,0x00,0xDF,0xF6,0x88,0x6A,0xE4,0x00,0xE0,0x78,0x88,0x76,0xE4,0x00,0xF4, +0x26,0x88,0x75,0xE4,0x00,0xF4,0x80,0x88,0x74,0xE4,0x00,0xE1,0xD8,0x88,0x73,0xE4, +0x00,0xE2,0x24,0x88,0x72,0xE4,0x00,0xE1,0x26,0x88,0x71,0xE4,0x00,0xE1,0x52,0x88, +0x6A,0xE4,0x00,0xF5,0xA2,0x88,0x70,0xE4,0x00,0xF5,0xFC,0x98,0x60,0xE4,0x00,0xF6, +0x4A,0x98,0x60,0xE4,0x00,0xF6,0x98,0x98,0x60,0xE4,0x00,0xF6,0xE6,0x98,0x60,0xE4, +0x00,0xF7,0x34,0x88,0x6F,0xE4,0x00,0xE2,0x1E,0x88,0x6E,0xE4,0x00,0xE2,0x4C,0x88, +0x6D,0xE4,0x00,0xE2,0x80,0x88,0x6C,0xE4,0x00,0xE2,0x9A,0x88,0x6B,0x0E,0xC1,0x02, +0x0E,0xA1,0x06,0x0E,0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E, +0x01,0x1A,0x0D,0xE1,0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61, +0x2E,0x0D,0x41,0x32,0x0D,0x21,0x36,0x1C,0x21,0x38,0xE4,0x00,0xDF,0xE3,0xC2,0xE0, +0x10,0x01,0xF0,0x77,0x04,0xA4,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF8,0x77,0x04,0xA4, +0x85,0x29,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x04,0xA4,0x9F,0x01,0xFB,0x17,0x04,0xA4, +0x85,0x29,0xC2,0xE0,0x10,0x01,0xF0,0x77,0x04,0xB8,0x85,0x29,0xC2,0xE0,0x10,0x01, +0xF8,0x77,0x04,0xB8,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x04,0xB8,0x9F,0x01, +0xFB,0x17,0x04,0xB8,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x01,0x14,0x85,0x29, +0xC3,0x40,0x10,0x01,0xFF,0x5A,0x01,0x04,0x0C,0x1A,0x00,0x9A,0xE1,0xC3,0x20,0x10, +0x01,0xFF,0x39,0x01,0x20,0x0E,0xF9,0x00,0xC3,0x00,0x10,0x01,0xFF,0x18,0x04,0x94, +0x0C,0x18,0x00,0x0C,0x1A,0x04,0x0E,0xF9,0x04,0x0C,0x18,0x04,0x0C,0x1A,0x08,0x0E, +0xF9,0x08,0x0C,0x18,0x08,0x0C,0x1A,0x0C,0x0E,0xF9,0x0C,0x0C,0x18,0x0C,0xC3,0x00, +0x10,0x01,0xEE,0xF8,0x01,0x3C,0x85,0x29,0x9C,0x38,0x0D,0x41,0x04,0xC3,0x00,0x10, +0x01,0xC2,0xE0,0x10,0x01,0x5C,0xA5,0x00,0x5C,0xC6,0x00,0xF3,0x38,0x04,0xB9,0xFE, +0xF7,0x01,0x3C,0xD7,0x25,0x00,0x6A,0xF8,0xB8,0x04,0xB9,0x9B,0x01,0x0F,0x17,0x00, +0xC3,0x80,0x10,0x01,0xC3,0x00,0x10,0x01,0x0F,0x37,0x02,0xFF,0x9C,0x01,0x20,0xFF, +0x18,0x01,0x04,0x23,0x24,0x9A,0x0B,0xA3,0x00,0x4F,0x46,0x18,0x43,0x78,0xD4,0x0F, +0xBB,0x00,0x0B,0xA4,0x00,0x0F,0xBB,0x04,0x8F,0x5C,0x0F,0x3A,0x00,0x0F,0x3A,0x04, +0x40,0xA5,0x35,0x20,0xA4,0x1A,0x0C,0x17,0x00,0x4E,0xE6,0x18,0x8E,0xF8,0x0C,0xF7, +0x02,0x08,0xA3,0x00,0x0D,0x17,0x02,0x0F,0xB7,0x06,0x0F,0x37,0x06,0x42,0xE7,0x2D, +0x4C,0xF7,0xFA,0x46,0xE7,0xBE,0x0B,0x44,0x00,0x40,0xF7,0x3D,0x43,0x39,0xD5,0x4E, +0xF9,0xFA,0x47,0x37,0xCE,0x42,0xF9,0xBD,0x41,0x08,0x2D,0x43,0xBD,0xD5,0x4F,0xC8, +0xFA,0x4F,0x7D,0xFA,0x45,0x1E,0x46,0x47,0xBB,0xEE,0x43,0xC8,0xF5,0x43,0x7D,0xDD, +0x43,0xC7,0xF3,0x43,0x7B,0xBB,0x9B,0x21,0x8F,0x7E,0x9A,0xE3,0xE4,0x00,0x00,0x11, +0x8F,0x37,0x9E,0xE2,0xD7,0x3B,0xFF,0xE1,0xC3,0x20,0x10,0x01,0x4E,0xF7,0x09,0x53, +0x40,0x1E,0x9E,0xFF,0x5E,0xF7,0x06,0xEE,0xF9,0x04,0xC0,0xC3,0x20,0x10,0x01,0x42, +0xF7,0xD1,0xEF,0x39,0x01,0x16,0x42,0xF7,0xBB,0x43,0x39,0xBD,0xC2,0xE0,0x10,0x01, +0x5F,0x23,0x11,0x20,0x00,0x1B,0x53,0x20,0x19,0xEF,0x37,0x04,0xB0,0xC3,0xA0,0x10, +0x01,0xEC,0xB7,0x04,0xB2,0x4C,0xC6,0x08,0x9A,0xE0,0xFF,0xBD,0x04,0x94,0xCB,0x40, +0x10,0x00,0x43,0x26,0xBC,0x4F,0x39,0x10,0x43,0x7C,0xCC,0xC9,0x40,0xA0,0x00,0x0D, +0x1B,0x02,0x0F,0xDB,0x02,0x43,0x68,0x53,0xCF,0xDE,0x00,0x0A,0x8F,0xC5,0x43,0xDB, +0xF0,0x43,0x7D,0xCC,0x0F,0xDB,0x00,0x5F,0xD7,0x00,0x23,0xC0,0x92,0x43,0xD8,0xCC, +0x0D,0x1E,0x02,0x0F,0x7B,0x02,0x0F,0x3E,0x02,0x0B,0xC3,0x00,0x43,0x3E,0xCD,0x43, +0x3B,0xCB,0x43,0x39,0xD0,0x8F,0x28,0x0F,0x23,0x01,0xE4,0x00,0x00,0x43,0x43,0xD8, +0xCC,0x0D,0x1E,0x02,0x0F,0x7B,0x02,0x0F,0x3E,0x02,0x0B,0xC4,0x00,0x43,0x3E,0xCD, +0x43,0x3B,0xCB,0x43,0x39,0xD0,0x8F,0x28,0x0F,0x24,0x01,0x43,0x66,0xBC,0x4F,0x7B, +0x10,0x43,0xD8,0xDC,0x0F,0x3E,0x00,0x43,0x3C,0xDC,0x8F,0x7D,0x0F,0xD9,0x02,0x0D, +0x1B,0x02,0x0F,0x79,0x02,0x43,0x68,0xDB,0x43,0x7B,0xD0,0x43,0x7E,0xDD,0x0F,0x79, +0x00,0x9E,0xE1,0xD2,0xE2,0xFB,0x7E,0x0D,0x41,0x06,0x9C,0x28,0x85,0x29,0xC2,0xE0, +0x10,0x01,0xFE,0xF7,0x05,0x1A,0x13,0x17,0x20,0x43,0x37,0xC4,0x9F,0x01,0x18,0x79, +0x00,0x5F,0x18,0x00,0x1B,0x17,0x20,0xC3,0x20,0x10,0x01,0xC2,0xE0,0x10,0x01,0x5F, +0x04,0xDB,0xFF,0x39,0x05,0x4E,0xFE,0xF7,0x05,0xA0,0x20,0x00,0x91,0x4F,0x18,0x08, +0xC3,0x40,0x10,0x01,0x8F,0x38,0xEB,0x5A,0x05,0x49,0x8F,0x17,0x0F,0x59,0x01,0xC2, +0xE0,0x10,0x01,0xEA,0xF7,0x05,0xF3,0x0E,0xF8,0x01,0xE4,0x00,0x00,0x1D,0xFF,0x00, +0x7F,0xFF,0x0F,0x19,0x4F,0x0F,0x17,0x4F,0x85,0x29,0xC3,0x00,0x10,0x01,0x5C,0x84, +0x02,0x9A,0xE0,0xFF,0x18,0x05,0x1A,0xE4,0x00,0x00,0x51,0x43,0x38,0xBC,0x43,0x63, +0xBC,0x13,0x59,0x00,0x9E,0xE1,0x8F,0x44,0x5E,0xF7,0x00,0x1F,0x5A,0x40,0x4F,0x3A, +0xFA,0x4F,0x39,0xD1,0x8F,0x59,0x57,0x5A,0x3F,0x43,0x3A,0xCD,0x1B,0x3B,0x00,0x13, +0x38,0x20,0xD7,0x37,0xFE,0xCD,0x85,0x29,0xC3,0x18,0x00,0x21,0x5F,0x23,0x00,0xFF, +0x18,0xB6,0xFE,0x9A,0xE0,0x5C,0x77,0x00,0x0B,0x78,0x01,0x9B,0x5F,0x5C,0x62,0x01, +0x20,0x00,0x19,0x0B,0x58,0x03,0xD7,0x64,0x01,0x7D,0xD7,0x44,0x01,0x59,0x23,0x24, +0x36,0x40,0x60,0xBD,0x54,0x63,0x3F,0xE4,0x00,0x00,0x57,0x23,0x28,0x2A,0x1C,0x63, +0x20,0xE4,0x00,0x00,0x1B,0x23,0x2C,0x76,0x52,0xE0,0x20,0x40,0x77,0x1D,0x5C,0x63, +0x00,0xE4,0x00,0x00,0x23,0x9E,0xE1,0x9F,0x02,0x5E,0xE2,0x29,0x23,0xFE,0xE5,0x50, +0x60,0xFF,0x85,0x29,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x06,0x4A,0x0B,0x17,0x07,0x0A, +0xF7,0x01,0x40,0x63,0xC3,0x40,0x63,0xB8,0x9A,0xEA,0x40,0x63,0xB8,0x85,0x29,0xC2, +0xE0,0x10,0x01,0xFE,0xF7,0x01,0x44,0x0B,0x17,0x06,0x0A,0xF7,0x04,0xD7,0x17,0x00, +0x92,0xCC,0x63,0x07,0xD0,0x42,0xF8,0xBD,0x40,0x63,0xB8,0xE4,0x00,0x00,0x0D,0x98, +0x60,0x85,0x29,0x8B,0x23,0x20,0x80,0x96,0xC2,0xE0,0x10,0x01,0x98,0x60,0xFE,0xF7, +0x01,0x44,0x0B,0x17,0x02,0x0A,0xF7,0x00,0xD7,0x17,0x00,0xDA,0xCC,0x79,0x07,0xD0, +0x42,0xF8,0xBD,0x40,0x63,0xB8,0xE4,0x00,0x00,0x1B,0x20,0x84,0x1E,0xE7,0xFF,0xFF, +0x65,0x98,0x60,0x85,0x29,0x5C,0x84,0x00,0x5C,0xA5,0x00,0x4C,0x84,0x30,0x5C,0xC6, +0x00,0x8C,0x85,0x4C,0x84,0x08,0x8C,0x64,0xD0,0xC8,0x00,0x59,0x0C,0x03,0x01,0xE4, +0x00,0x00,0x3F,0x52,0xE0,0x64,0x20,0xC0,0x54,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xB6, +0xFA,0x9C,0xC1,0x4C,0xC6,0x0A,0x8C,0xD7,0x12,0xE6,0xFF,0x0E,0xE3,0x01,0x85,0x29, +0xFC,0x21,0xFE,0x88,0xEE,0x21,0x01,0x54,0xEE,0x41,0x01,0x50,0xED,0x21,0x01,0x74, +0xED,0x41,0x01,0x70,0xED,0x61,0x01,0x6C,0xED,0x81,0x01,0x68,0xED,0xA1,0x01,0x64, +0xED,0xC1,0x01,0x60,0xED,0xE1,0x01,0x5C,0xEE,0x01,0x01,0x58,0xEE,0x61,0x01,0x4C, +0xEE,0x81,0x01,0x48,0xEE,0xA1,0x01,0x44,0x5E,0x23,0x00,0x8A,0x44,0x5C,0xA5,0x00, +0x4F,0x11,0x08,0x9A,0xE1,0xD4,0xB8,0x00,0x94,0x43,0x18,0x28,0x9A,0xE0,0x23,0x00, +0x24,0x1E,0xF8,0x01,0x5E,0xF7,0x00,0x43,0x05,0xBB,0x5F,0x08,0x11,0x20,0x00,0x21, +0x9E,0xFF,0x5E,0xF7,0x00,0x42,0x17,0x2B,0x8B,0x41,0x5E,0x10,0x00,0x9B,0x00,0x41, +0xD0,0x8D,0x9D,0xC2,0x5D,0xCE,0x00,0xE4,0x00,0x00,0x4D,0x43,0x7A,0xCC,0x13,0xBC, +0x00,0x9F,0x21,0x1B,0xBB,0x00,0xE4,0x00,0x00,0x13,0x9B,0x20,0x43,0x86,0xC4,0x5F, +0x79,0x00,0xD6,0xFB,0xFF,0x4D,0x9F,0x01,0x8F,0x57,0x5F,0x18,0x00,0xD7,0x05,0xFF, +0x6E,0x99,0x60,0x52,0x80,0x40,0xE4,0x00,0x01,0xC9,0x21,0x60,0x56,0x13,0x12,0x00, +0x1E,0xE1,0x00,0x1F,0x18,0x40,0x8E,0xED,0x12,0xF7,0x00,0xE4,0x00,0x00,0x21,0x13, +0x15,0x00,0x42,0xF3,0x6C,0x1F,0x18,0x40,0x12,0xF7,0xFF,0x43,0x18,0xBD,0x4E,0xF8, +0xFA,0x4E,0xF7,0xD1,0x40,0xD8,0xBC,0x54,0xC6,0x3F,0x40,0xC6,0xBD,0x5C,0xC6,0x00, +0x5C,0xC4,0x13,0x20,0x00,0x25,0x40,0xD4,0x35,0x5C,0xC6,0x00,0x1C,0x61,0x40,0x21, +0x60,0x7A,0x98,0x80,0x88,0xAC,0xE7,0xFF,0xFD,0x9E,0x21,0x81,0x78,0x0B,0x0A,0x81, +0xEA,0xEA,0xFF,0x7F,0x8E,0xF8,0x0E,0xEA,0x81,0xE4,0x00,0x00,0x9F,0x98,0x81,0x88, +0xAC,0x21,0x64,0x56,0xE7,0xFF,0xFD,0x62,0x21,0x81,0x00,0x0B,0x0A,0xFF,0xEA,0xEA, +0xFF,0x7F,0xE4,0x00,0x00,0x45,0xE7,0xFF,0xFD,0x3E,0x21,0x80,0x52,0xEB,0x01,0x00, +0xC1,0x0A,0xE1,0x41,0x8E,0xF8,0xEE,0xE1,0x00,0xC1,0xE4,0x00,0x00,0x3D,0x0B,0x0A, +0xFF,0x0A,0xEA,0x81,0x5F,0x57,0x04,0x5F,0x38,0x04,0xD7,0x3A,0x00,0x31,0x8A,0xF8, +0x0B,0x0A,0x01,0x8E,0xF8,0x0E,0xEA,0x01,0x9D,0xA1,0x9D,0x42,0x5D,0x8D,0x00,0xD5, +0xCC,0xFA,0x5D,0x21,0x60,0x76,0x9D,0x61,0x5D,0x6B,0x00,0xE4,0x00,0x00,0x3F,0x0B, +0x0F,0x01,0x9E,0xE1,0x0F,0x0F,0x81,0x5E,0xF7,0x00,0x9D,0xE2,0xE4,0x00,0x00,0x0D, +0x9A,0xE0,0xD6,0xEE,0xFF,0x6E,0xE7,0xFF,0xFF,0xC1,0xD5,0x71,0x00,0xC2,0xFD,0xE1, +0x00,0xC0,0x1E,0x61,0x00,0x89,0x4F,0x99,0xA0,0x42,0xB2,0x5C,0x8E,0x6B,0xE7,0xFF, +0xFF,0x7D,0x21,0x64,0x26,0x9D,0xDF,0xE4,0x00,0x00,0x0F,0x1D,0xCE,0x3F,0xFE,0xE1, +0x01,0x40,0x4D,0xCE,0x08,0x8D,0xD7,0xE8,0x6E,0xFF,0x01,0x42,0x03,0x80,0xEE,0xA1, +0x01,0x46,0x5C,0x70,0x00,0xEE,0x81,0x01,0x4A,0xEE,0x61,0x01,0x4E,0xEE,0x41,0x01, +0x52,0xEE,0x21,0x01,0x56,0xEE,0x01,0x01,0x5A,0xED,0xE1,0x01,0x5E,0xED,0xC1,0x01, +0x62,0xED,0xA1,0x01,0x66,0xED,0x81,0x01,0x6A,0xED,0x61,0x01,0x6E,0xED,0x41,0x01, +0x72,0xED,0x21,0x01,0x76,0xFC,0x21,0x01,0x78,0x85,0x29,0x5C,0x84,0x06,0x5C,0xA5, +0x06,0x43,0x24,0x2C,0x9B,0x02,0x43,0x19,0xC0,0x53,0x20,0x1E,0x5E,0xE3,0x06,0xC7, +0x18,0xFF,0xFF,0x40,0x84,0x2D,0x98,0x60,0xCC,0x84,0x00,0x0A,0x40,0x84,0xC8,0xC4, +0x84,0xFF,0xFF,0x43,0x38,0x25,0xD6,0xF9,0x00,0x60,0x8C,0x98,0x5C,0x97,0x1D,0x48, +0x61,0x01,0x85,0x29,0x24,0x80,0x68,0x24,0x7C,0x34,0xCE,0xE3,0x03,0xE8,0x98,0x61, +0xE4,0x00,0x00,0x49,0xCE,0xE3,0xFC,0x18,0x98,0x64,0xE4,0x00,0x00,0x35,0x20,0x80, +0x74,0x24,0x7C,0x34,0xCE,0xE3,0xFC,0x18,0x98,0x62,0xE4,0x00,0x00,0x15,0xCE,0xE3, +0x03,0xE8,0x98,0x63,0x40,0x97,0x20,0xE7,0xFF,0xF9,0x23,0x9A,0xE0,0x20,0x60,0x3C, +0x5C,0x60,0x11,0x52,0xE0,0x30,0x53,0x00,0x10,0x4A,0xF8,0xB8,0x88,0x77,0x85,0x29, +0x0A,0xE3,0x00,0x26,0xFC,0x60,0xC3,0x00,0x10,0x01,0xEB,0x18,0x06,0x51,0x5F,0x38, +0x06,0x5E,0xF8,0x1D,0x4A,0xF9,0xB8,0xE4,0x00,0x00,0x0D,0x9A,0xE0,0x0E,0xE3,0x01, +0xC3,0x00,0x10,0x01,0x0A,0xE4,0x00,0xFF,0x18,0x06,0x4A,0x26,0xFC,0x4C,0x0B,0x38, +0x07,0x5F,0x59,0x06,0x5E,0xF9,0x1D,0x4A,0xFA,0xB8,0xE4,0x00,0x00,0x0D,0x9A,0xE0, +0x0E,0xE4,0x01,0x13,0x38,0x04,0x23,0x28,0x64,0x23,0x2C,0x8C,0x23,0x20,0xA6,0x0B, +0x23,0x00,0x0E,0xE3,0x01,0x0A,0xF8,0x07,0x42,0xF7,0xCD,0xE4,0x00,0x00,0x15,0x0B, +0x18,0x09,0x42,0xF8,0xBD,0x0E,0xE4,0x01,0xE4,0x00,0x00,0x1B,0x0B,0x03,0x00,0x0E, +0xE3,0x01,0x0F,0x04,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x06,0x6D,0xC2, +0xE0,0x10,0x01,0xEC,0x97,0x06,0x59,0x85,0x29,0x1C,0x21,0xD0,0x0D,0x41,0x28,0x0D, +0x61,0x24,0x0D,0x81,0x20,0x0D,0xA1,0x1C,0x0C,0x61,0x07,0x0C,0x81,0x05,0x0D,0x21, +0x2C,0x0D,0xC1,0x18,0x0D,0xE1,0x14,0x0E,0x01,0x10,0x0E,0x21,0x0C,0x5D,0xA5,0x00, +0x1C,0x61,0x06,0x1C,0x81,0x04,0xE7,0xFF,0xFE,0x94,0xC2,0xE0,0x10,0x01,0x09,0x81, +0x04,0xFF,0x17,0x06,0x4A,0xEA,0xF7,0x06,0x4B,0x0B,0x18,0x03,0x41,0x8C,0xC3,0x41, +0x8C,0xB8,0x5D,0x8C,0x06,0x0D,0x81,0x05,0xC1,0x40,0x10,0x01,0xC1,0x60,0x10,0x01, +0xFD,0x4A,0x05,0x3C,0xFD,0x6B,0x05,0x40,0xD1,0xA1,0x06,0x9E,0xC1,0xC0,0x10,0x01, +0xC1,0xA0,0x10,0x01,0x0E,0xEA,0x02,0xFD,0xCE,0x05,0x18,0xFD,0xAD,0x05,0x9E,0x22, +0xE4,0x68,0x22,0xE0,0x34,0x98,0x60,0xD2,0xE3,0x08,0x25,0xE4,0x00,0x00,0xD7,0x0A, +0xE1,0x07,0x0E,0xED,0x01,0xE4,0x00,0x00,0xAB,0xC2,0xE0,0x10,0x01,0x0A,0x21,0x06, +0xEE,0x37,0x05,0x15,0xC2,0xE0,0x10,0x01,0x09,0xED,0x00,0xED,0x97,0x06,0x47,0x41, +0xEF,0x8D,0x4E,0xEF,0xFA,0x0A,0x0E,0x00,0x45,0xF7,0x7E,0x42,0x10,0x65,0x41,0xEF, +0xBD,0x4E,0xF0,0xFA,0x46,0x17,0x86,0x42,0x10,0xBD,0xC2,0xE0,0x10,0x01,0xE8,0x77, +0x06,0x59,0xE7,0xFF,0xF7,0x04,0x42,0x10,0x83,0x41,0xEF,0x7B,0x40,0x63,0x1B,0x8D, +0xF0,0x9A,0xE3,0xD5,0xE3,0x05,0x18,0x0E,0x2D,0x01,0x0D,0x8E,0x01,0x0C,0x0B,0x01, +0x9A,0xE2,0xE4,0x00,0x01,0x29,0x0A,0xE1,0x06,0x09,0xAD,0x00,0x41,0xAD,0xBD,0x4E, +0xED,0xFA,0x45,0xB7,0x6E,0x41,0xAD,0xBD,0x0A,0xEE,0x00,0x41,0x97,0x65,0x4E,0xEC, +0xFA,0x45,0x97,0x66,0x41,0x8C,0xBD,0xC2,0xE0,0x10,0x01,0x41,0x8C,0x63,0xE8,0x77, +0x06,0x59,0x41,0xAD,0x6B,0xE7,0xFF,0xF6,0x5E,0x8D,0x8D,0x40,0x63,0x1B,0xD5,0x83, +0x01,0x88,0x9A,0xE4,0x0E,0xEA,0x00,0xE4,0x00,0x00,0x51,0x21,0xA1,0x26,0x0E,0xEA, +0x02,0x22,0xE8,0x60,0x26,0xE8,0x2B,0x22,0xE5,0x0A,0xE4,0x00,0x00,0x2B,0x22,0xEC, +0x90,0xD2,0xE4,0x01,0xC6,0xE4,0x00,0x00,0x51,0x9A,0xE1,0xE4,0x00,0x00,0x57,0xC2, +0xE0,0x10,0x01,0x0B,0x0B,0x01,0xEA,0xF7,0x06,0x6D,0xD7,0x17,0x00,0xF9,0xE4,0x00, +0x00,0x2D,0x9A,0xE4,0x98,0x61,0x0E,0xEA,0x00,0xE4,0x00,0x00,0x25,0x0C,0x0A,0x00, +0xE4,0x00,0x00,0x13,0x9A,0xE4,0x0E,0xEA,0x00,0x98,0x60,0x0A,0xEB,0x01,0x0E,0x21, +0x0E,0x9E,0xE1,0x0E,0x01,0x12,0x0E,0xEB,0x01,0x0D,0xE1,0x16,0x0D,0xC1,0x1A,0x0D, +0xA1,0x1E,0x0D,0x81,0x22,0x0D,0x61,0x26,0x0D,0x41,0x2A,0x0D,0x21,0x2E,0x1C,0x21, +0x30,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x05,0x45,0xC2,0xE0,0x10,0x01,0xEC, +0x17,0x06,0x5C,0x85,0x29,0x9B,0x01,0xC2,0xE0,0x10,0x01,0x1C,0x21,0xB0,0xFB,0x17, +0x05,0x42,0x0D,0x41,0x48,0x0D,0x61,0x44,0x0D,0x81,0x40,0x0E,0x01,0x30,0x0E,0x21, +0x2C,0x0E,0x41,0x28,0x0E,0x61,0x24,0x0E,0x81,0x20,0x0E,0xA1,0x1C,0x0E,0xC1,0x18, +0x0C,0x61,0x17,0x0C,0x81,0x15,0x0D,0x21,0x4C,0x0D,0xA1,0x3C,0x0D,0xC1,0x38,0x0D, +0xE1,0x34,0x1C,0x61,0x16,0x1C,0x81,0x14,0xE7,0xFF,0xFA,0xF0,0xC2,0xE0,0x10,0x01, +0x09,0x41,0x16,0xED,0x57,0x05,0x49,0xC2,0xE0,0x10,0x01,0xFF,0x17,0x06,0x4A,0xEA, +0xF7,0x06,0x4B,0x0B,0x18,0x03,0x09,0x61,0x14,0x41,0x6B,0xC3,0x41,0x6B,0xB8,0xC2, +0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0x5D,0x6B,0x06,0xED,0x77,0x05,0xF3,0xEA,0xF8, +0x05,0x45,0x9E,0xE1,0x5E,0xF7,0x04,0xEE,0xF8,0x05,0x45,0xC3,0x20,0x10,0x01,0xC2, +0x60,0x10,0x01,0xC2,0x40,0x10,0x01,0xC2,0x80,0x10,0x01,0xC2,0xA0,0x10,0x01,0xC3, +0x00,0x10,0x01,0xC2,0xC0,0x10,0x01,0xC3,0x40,0x10,0x01,0xFF,0x39,0x06,0x48,0xFE, +0x73,0x05,0x4A,0xFE,0x52,0x05,0x16,0xFE,0x34,0x05,0x4C,0xFE,0x15,0x06,0x44,0xFF, +0x18,0x05,0xF4,0xFE,0xD6,0x04,0xC4,0xFD,0x9A,0x01,0x44,0xD2,0xE1,0x04,0x3E,0xC2, +0xE0,0x10,0x01,0xF8,0x17,0x05,0x3A,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x05,0x46,0xC2, +0xE0,0x10,0x01,0xC3,0x60,0x10,0x01,0xEC,0x17,0x06,0x5C,0xC3,0x40,0x10,0x01,0x0D, +0x4C,0x01,0x0D,0x4C,0x03,0x0D,0x6C,0x05,0x0D,0x6C,0x07,0x0D,0x4C,0x09,0x0D,0x6C, +0x0B,0x0C,0x0C,0x10,0x0C,0x0C,0x14,0x0D,0x53,0x01,0x0D,0x72,0x01,0x0D,0x51,0x01, +0x0D,0x70,0x01,0x9A,0xE0,0xFF,0x7B,0x05,0x4E,0xFF,0x5A,0x05,0xA0,0x43,0x98,0xBC, +0x0C,0x1C,0x01,0x43,0x96,0xBC,0x0C,0x1C,0x01,0x43,0x9B,0xBC,0x0C,0x1C,0x01,0x43, +0x9A,0xBC,0x0C,0x1C,0x01,0x9E,0xE2,0x5E,0xEA,0x09,0x23,0xFF,0x8D,0x9A,0xE1,0x0D, +0x58,0x01,0x0D,0x76,0x01,0x0D,0x5B,0x01,0x0D,0x7A,0x01,0x1A,0xF9,0x00,0xE4,0x00, +0x03,0x49,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x05,0x3A,0x5E,0xE3,0xBB,0x20,0x04,0xF5, +0x09,0xF3,0x00,0x40,0x8A,0x7D,0x0F,0x01,0x04,0x0C,0x81,0x0C,0x0F,0x21,0x08,0x50, +0x60,0x23,0xE7,0xFF,0xF2,0x44,0x09,0xD2,0x00,0x0C,0x81,0x0E,0x41,0xAB,0x75,0x43, +0x64,0x23,0x42,0xED,0x6B,0x40,0x63,0x1B,0x8E,0xFB,0x0F,0x01,0x06,0x0F,0x21,0x0A, +0xD6,0xE3,0x0B,0x10,0x12,0xF9,0x00,0x5E,0xE4,0xDB,0x20,0x00,0x51,0x4F,0x77,0x08, +0x8F,0x1B,0x8E,0xDB,0x0D,0x58,0x01,0x0D,0x76,0x01,0xE4,0x00,0x00,0x1D,0xFF,0x60, +0x7F,0xFF,0x0F,0x78,0x4F,0x0F,0x76,0x4F,0x1E,0xD7,0x01,0x5E,0xD6,0x00,0x1A,0xD9, +0x00,0x0A,0xEC,0x00,0xD6,0xEA,0x00,0x38,0x0D,0x4C,0x01,0x0B,0x0C,0x02,0x8A,0xEC, +0xD5,0x58,0x00,0x38,0x0D,0x4C,0x03,0x0B,0x17,0x04,0xD7,0x0B,0x00,0x38,0x0D,0x77, +0x05,0x0A,0xEC,0x06,0xD5,0x77,0x00,0x38,0x0D,0x6C,0x07,0x4E,0xE4,0xFA,0x47,0x17, +0x26,0x42,0xF8,0xBD,0x0F,0x0C,0x12,0x8E,0xF8,0x0E,0xEC,0x10,0x4E,0xED,0xFA,0x47, +0x17,0x6E,0x42,0xF8,0xBD,0x0F,0x0C,0x16,0x8E,0xF8,0x88,0x6D,0x0E,0xEC,0x14,0xE7, +0xFF,0xF6,0xCA,0xC3,0x00,0x10,0x01,0xF8,0x78,0x05,0x3B,0xC1,0xA0,0x10,0x01,0x89, +0x83,0x5E,0xE3,0x00,0xFD,0xAD,0x05,0xF0,0x22,0xC9,0x94,0x26,0xC9,0x95,0x13,0x2D, +0x00,0x1F,0x39,0x40,0x43,0x39,0xBD,0x4F,0x19,0xFA,0x4F,0x18,0xD1,0x42,0xF9,0xC4, +0x56,0xF7,0x3F,0x42,0xD7,0xC5,0x5E,0xF6,0x00,0x0E,0xE1,0x10,0x26,0xEC,0x31,0x57, +0x16,0xFF,0x5F,0x07,0x91,0x20,0x01,0x65,0xC3,0x00,0x10,0x01,0xF3,0x18,0x05,0x3A, +0x23,0x00,0xC2,0x08,0x91,0x00,0x40,0x8F,0x25,0x08,0x70,0x00,0x40,0x6E,0x1D,0xE7, +0xFF,0xF6,0x0A,0xE7,0xFF,0xEE,0x56,0x0E,0xE1,0x12,0xD2,0xE7,0x00,0x69,0x56,0xF6, +0xFF,0x5E,0xE7,0x11,0x20,0x01,0x71,0x0D,0xF1,0x01,0x0D,0xD0,0x01,0x19,0x8D,0x00, +0x0D,0x53,0x01,0x0D,0x72,0x01,0xE4,0x00,0x00,0xB9,0x5E,0xE3,0xC9,0x20,0x01,0x55, +0x9B,0x01,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x06,0x5C,0xE4,0x00,0x00,0x91,0x0B,0x10, +0x00,0x0B,0x31,0x00,0x43,0x18,0x75,0x43,0x39,0x7D,0x0F,0x01,0x04,0x0F,0x21,0x08, +0x50,0x60,0x23,0xE7,0xFF,0xEF,0xA2,0x0F,0x21,0x0A,0x0F,0x01,0x06,0x43,0x39,0xCB, +0x43,0x18,0xC3,0x40,0x63,0x1B,0x8F,0x19,0xD7,0x03,0xFC,0x5C,0xE7,0xFF,0xFE,0xF9, +0xC2,0xE0,0x10,0x01,0xF3,0x17,0x05,0x46,0x9F,0x01,0xFB,0x17,0x05,0x46,0xE7,0xFF, +0xFF,0x33,0x0E,0xC1,0x1A,0x0E,0xA1,0x1E,0x0E,0x81,0x22,0x0E,0x61,0x26,0x0E,0x41, +0x2A,0x0E,0x21,0x2E,0x0E,0x01,0x32,0x0D,0xE1,0x36,0x0D,0xC1,0x3A,0x0D,0xA1,0x3E, +0x0D,0x81,0x42,0x0D,0x61,0x46,0x0D,0x41,0x4A,0x0D,0x21,0x4E,0x1C,0x21,0x50,0x85, +0x29,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x06,0x68,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x06, +0x64,0x85,0x29,0xFC,0x21,0xFF,0x58,0xED,0x61,0x00,0x9C,0x0E,0xC1,0x70,0xED,0x21, +0x00,0xA4,0xED,0x41,0x00,0xA0,0xED,0x81,0x00,0x98,0xED,0xA1,0x00,0x94,0xED,0xC1, +0x00,0x90,0xED,0xE1,0x00,0x8C,0xEE,0x01,0x00,0x88,0xEE,0x21,0x00,0x84,0xEE,0x41, +0x00,0x80,0x0E,0x61,0x7C,0x0E,0x81,0x78,0x0E,0xA1,0x74,0xFE,0xC1,0x00,0xA8,0xC2, +0xE0,0x10,0x01,0xC1,0x60,0x10,0x01,0xEA,0xF7,0x05,0x4A,0xFD,0x6B,0x01,0x44,0xC3, +0x00,0x10,0x01,0x0C,0x76,0xA0,0xEB,0x18,0x05,0x16,0x0C,0x36,0xA4,0x0E,0xEB,0x0D, +0x0F,0x0B,0x0F,0xC3,0x20,0x10,0x01,0xF3,0x39,0x05,0x3A,0x5F,0x23,0xDB,0x20,0x00, +0x85,0xC3,0x20,0x10,0x01,0xE8,0x79,0x06,0x44,0xC3,0x20,0x10,0x01,0xE8,0x99,0x05, +0x4C,0x40,0x97,0x25,0x40,0x78,0x1D,0xE7,0xFF,0xF3,0x7A,0xE7,0xFF,0xEB,0xC6,0x0C, +0x6B,0x12,0x0D,0x4B,0x16,0x98,0x80,0x0C,0x6B,0x18,0x0D,0x4B,0x1C,0xE7,0xFF,0xEE, +0x0C,0x0C,0x6B,0x10,0x88,0x6A,0xE7,0xFF,0xED,0xB2,0x0B,0x0B,0x00,0x0C,0x6B,0x14, +0xC2,0xE0,0x10,0x01,0x0B,0x2B,0x02,0xEA,0xF7,0x06,0x54,0x43,0x39,0xC5,0xC3,0x00, +0x10,0x01,0xFE,0x38,0x06,0x60,0xD6,0xF9,0x00,0x88,0x0B,0x4B,0x06,0x0B,0x2B,0x04, +0x43,0x3A,0xCD,0xD6,0xF9,0x00,0xEC,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x06,0x5E,0x22, +0xE4,0x44,0xC2,0xE0,0x10,0x01,0xFD,0x57,0x05,0x1A,0x13,0x2A,0x20,0x27,0x24,0x5B, +0xC2,0xE0,0x10,0x01,0xEC,0x16,0xFF,0x78,0xEC,0x17,0x06,0x5C,0x0C,0x16,0x80,0xE4, +0x00,0x10,0x67,0x0C,0x36,0x9C,0x0F,0x31,0x02,0xEC,0x16,0xFF,0x78,0x0F,0x39,0x02, +0x0C,0x16,0x80,0x0B,0x39,0x01,0x0C,0x16,0x90,0x9F,0x27,0x99,0x80,0x4F,0x39,0x19, +0x4F,0x39,0x18,0x40,0x21,0xCD,0xEC,0x36,0xFF,0x70,0x40,0x21,0xCD,0xEC,0x36,0xFF, +0x64,0xE4,0x00,0x0F,0xCB,0x4F,0x0C,0x20,0xEF,0x16,0xFF,0x68,0x0E,0xF7,0x06,0x8E, +0xF8,0x11,0xB7,0x05,0x5D,0xA3,0xFB,0x20,0x00,0x45,0xC3,0x20,0x10,0x01,0xEF,0x19, +0x06,0x6A,0x8B,0x2D,0xE4,0x00,0x00,0x25,0x1F,0x2D,0xE0,0xC3,0x40,0x10,0x01,0x5F, +0x39,0x00,0xEF,0x1A,0x06,0x66,0x9B,0x41,0x4F,0x3A,0xCC,0x47,0x19,0xC4,0xD3,0x00, +0x0A,0x12,0x1F,0x0D,0xFF,0x27,0x0D,0x13,0x10,0xB7,0x04,0x0C,0xD7,0x02,0x10,0x6A, +0x20,0x9A,0xE0,0x20,0xA0,0x30,0x88,0x8A,0xE7,0xFF,0xED,0x10,0x5E,0xE3,0x00,0xEF, +0x16,0xFF,0x72,0x8F,0x0C,0x1A,0xF8,0x00,0x0E,0xF1,0x02,0xEF,0x16,0xFF,0x6A,0x0E, +0xF7,0x06,0x8E,0xF8,0x10,0xAA,0x20,0x10,0x77,0x04,0x0C,0x97,0x02,0x88,0xCA,0x9A, +0xE0,0xD0,0xA0,0x07,0x5E,0xE4,0x00,0x01,0xDD,0x99,0xC0,0x99,0xFB,0x8A,0x0E,0xD1, +0xAA,0x03,0x66,0x99,0xE0,0x1C,0x76,0xA8,0x88,0x8F,0xE7,0xFF,0xEA,0x00,0x0E,0xF1, +0x02,0xEF,0x36,0xFF,0x6A,0x0E,0xF7,0x06,0x10,0x6A,0x20,0x8E,0xF9,0x10,0xB7,0x04, +0x0C,0xD7,0x02,0x20,0xA0,0x54,0x1C,0x96,0xA8,0xE7,0xFF,0xEC,0x4E,0x5C,0x63,0x00, +0xD4,0x70,0x00,0x41,0x8A,0x03,0x89,0xCF,0x9D,0xE4,0x5D,0xEF,0x00,0x5D,0xE8,0x09, +0x23,0xFF,0x15,0xEE,0xF6,0xFF,0x72,0x8E,0xEC,0x1A,0x17,0x00,0x5E,0x09,0x73,0x20, +0x02,0xA9,0x1C,0x76,0xA8,0x88,0x8E,0xE7,0xFF,0xE9,0x66,0x0E,0xF1,0x02,0xEF,0x56, +0xFF,0x6A,0x0E,0xF7,0x06,0x8E,0xFA,0xE4,0x00,0x00,0xC9,0x1C,0x76,0xA8,0x88,0x8F, +0xE7,0xFF,0xE9,0x34,0x0E,0xF1,0x02,0xEF,0x16,0xFF,0x6A,0x0E,0xF7,0x06,0x10,0x6A, +0x20,0x8E,0xF8,0x10,0xB7,0x04,0x0C,0xD7,0x02,0x20,0xA0,0x54,0x1C,0x96,0xA8,0xE7, +0xFF,0xEB,0x82,0x5C,0x63,0x00,0xD4,0x70,0x00,0x41,0x8A,0x03,0x89,0xCF,0x9D,0xE1, +0x5D,0xEF,0x02,0xD1,0xE6,0xFE,0x46,0xEE,0xF6,0xFF,0x72,0x8E,0xEC,0x1A,0x17,0x00, +0x5E,0x09,0x73,0x20,0x01,0x19,0x1C,0x76,0xA8,0x88,0x8E,0xE7,0xFF,0xE8,0x9E,0x0E, +0xF1,0x02,0xEF,0x36,0xFF,0x6A,0x0E,0xF7,0x06,0x8E,0xF9,0x10,0x77,0x04,0x0C,0x97, +0x02,0x10,0xAA,0x20,0x9A,0xE0,0x20,0xA0,0x34,0x1C,0xD6,0xA8,0xE7,0xFF,0xEA,0xE8, +0x5E,0xE3,0x00,0xEF,0x16,0xFF,0x66,0x8F,0x0C,0x1A,0xF8,0x00,0xE4,0x00,0x00,0x2D, +0xEE,0xF6,0xFF,0x72,0x8E,0xEC,0x18,0x17,0x00,0xEE,0xF6,0xFF,0x66,0x8E,0xEC,0x18, +0x17,0x00,0xEE,0xF6,0xFF,0x72,0x8E,0xEC,0x12,0xF7,0x00,0x0E,0xF6,0x94,0x5E,0xE9, +0x53,0x20,0x19,0x01,0xEE,0xF6,0xFF,0x66,0x8E,0xEC,0x12,0xF7,0x00,0x0E,0xF6,0x98, +0x5E,0xE8,0xB3,0x20,0x18,0xB9,0x0B,0x4B,0x08,0x0A,0xEB,0x02,0x0B,0x0B,0x00,0x0B, +0x2B,0x06,0xEF,0x56,0xFF,0x58,0xEE,0xF6,0xFF,0x60,0xEF,0x16,0xFF,0x74,0xEF,0x36, +0xFF,0x5C,0x0A,0x0B,0x0C,0x09,0xEB,0x0A,0x09,0xCB,0x0E,0x0A,0x6B,0x04,0xD1,0xA7, +0x01,0x36,0xD5,0xEE,0x2F,0xF8,0x41,0xCE,0x7D,0x4C,0x6E,0xFA,0x45,0xC3,0x76,0x40, +0x6E,0x1D,0xE7,0xFF,0xE8,0xBA,0xC0,0x60,0x18,0xE8,0x20,0x17,0x9D,0x12,0xEA,0x20, +0xE4,0x00,0x08,0xB3,0xEF,0x56,0xFF,0x5A,0x43,0x5A,0x85,0x4E,0xFA,0xFA,0x0F,0x56, +0x84,0x46,0x97,0xD6,0xEF,0x36,0xFF,0x62,0x42,0x94,0xBD,0xEF,0x56,0xFF,0x76,0x42, +0xEF,0x75,0x43,0x39,0xD5,0xEE,0xF6,0xFF,0x7C,0xEF,0x36,0xFF,0x6C,0x4E,0xF7,0xFA, +0xEF,0x16,0xFF,0x7E,0x46,0xB7,0xC6,0x42,0xB5,0xBD,0xEE,0xF6,0xFF,0x5E,0x42,0x57, +0x9D,0xD1,0xA8,0x08,0x7E,0x40,0x77,0x7D,0xE7,0xFF,0xE8,0x0E,0xC0,0x60,0xCE,0x48, +0x20,0x00,0x95,0xEF,0x16,0xFF,0x62,0x98,0x80,0x40,0x78,0x85,0xE7,0xFF,0xE8,0x2E, +0xC0,0x60,0x19,0x08,0x20,0x00,0x45,0x12,0xEA,0x20,0x8E,0xEA,0x12,0xF7,0xFF,0x5E, +0xE5,0xFB,0x20,0x15,0xBD,0x42,0xB5,0xAB,0x42,0x94,0xA3,0x42,0x52,0x93,0x8E,0x95, +0xEF,0x36,0xFF,0x6E,0xCE,0x94,0x00,0x64,0x42,0xF9,0xCB,0x8E,0x57,0x4E,0x52,0x18, +0xD6,0x54,0x00,0x91,0x40,0x6E,0x9D,0xE7,0xFF,0xE7,0x70,0xC0,0x60,0x18,0xE8,0x20, +0x15,0x09,0xEF,0x56,0xFF,0x62,0xEE,0xF6,0xFF,0x5A,0x98,0x80,0x40,0x7A,0xBD,0xE7, +0xFF,0xE7,0x88,0xC0,0x60,0x4A,0xE8,0x20,0x14,0xA9,0x11,0xEA,0x00,0x1E,0xEF,0xF0, +0x5E,0xE3,0xDB,0x20,0x00,0x45,0x12,0xEA,0x01,0x9E,0xF0,0x5E,0xF7,0x00,0x5E,0xE3, +0xD3,0x20,0x14,0x41,0xC3,0x20,0x10,0x01,0xFF,0x39,0x05,0x1A,0x13,0x19,0x20,0x8F, +0x19,0x12,0xF8,0xFF,0x1F,0x37,0xEF,0x5F,0x23,0xDB,0x20,0x00,0x49,0x13,0x18,0xFE, +0x5F,0x02,0x13,0x20,0x00,0x25,0x5F,0x05,0xF3,0x20,0x13,0xA1,0x9E,0xF4,0xD2,0xE6, +0x00,0x9D,0xEC,0x76,0xFF,0x7E,0xE7,0xFF,0xE6,0x92,0xC0,0x60,0x9C,0x4C,0x20,0x13, +0x4D,0x9D,0xF8,0xD1,0xE7,0x21,0xD5,0xEF,0x56,0xFF,0x5E,0x41,0xCE,0xD5,0x4C,0x6E, +0xFA,0x45,0xC3,0x76,0x40,0x6E,0x1D,0xE7,0xFF,0xE6,0x50,0xC0,0x60,0x7C,0xEC,0x20, +0x10,0x79,0xEE,0xF6,0xFF,0x62,0x98,0x80,0x42,0x10,0xBD,0x4C,0x70,0xFA,0x46,0x03, +0x86,0x40,0x70,0x1D,0xE7,0xFF,0xE6,0x5E,0xC0,0x60,0x3E,0x68,0xE4,0x00,0x07,0xFD, +0xD1,0xAA,0x0E,0xFE,0xEF,0x16,0xFF,0x5A,0x43,0x10,0xC5,0x4E,0xF8,0xFA,0x0F,0x16, +0x88,0x44,0x77,0xC6,0x98,0x80,0x40,0x63,0xBD,0xE7,0xFF,0xE6,0x14,0x0C,0x76,0x8C, +0xC0,0x60,0xAF,0x0C,0x20,0x00,0x69,0x40,0x6E,0x7D,0x4E,0xE3,0xFA,0x44,0x77,0x1E, +0x40,0x63,0xBD,0xE7,0xFF,0xE5,0x98,0xC0,0x60,0xAF,0x08,0x20,0x00,0xF5,0xEF,0x36, +0xFF,0x5E,0x88,0x6F,0x88,0x99,0x88,0xB3,0xE7,0xFF,0xEA,0x86,0x20,0x60,0x52,0xEF, +0x56,0xFF,0x5E,0x88,0x6E,0x88,0x9A,0x88,0xB3,0xE7,0xFF,0xEA,0x64,0x20,0x60,0x6C, +0xEE,0xF6,0xFF,0x5A,0xD6,0x17,0x00,0xA0,0x0C,0x76,0x8A,0x98,0x80,0xE7,0xFF,0xE5, +0x6C,0xC0,0x60,0x32,0x0C,0x20,0x10,0x71,0xEF,0x16,0xFF,0x6E,0x42,0xF8,0xC3,0x42, +0xB5,0xAB,0x42,0x94,0xA3,0x42,0x52,0x93,0x8E,0x95,0x8E,0x57,0xCE,0x94,0x00,0x64, +0x4E,0xF2,0x18,0xD6,0x97,0x01,0xA1,0x40,0x6E,0x9D,0xE7,0xFF,0xE4,0xCA,0xC0,0x60, +0x18,0xEC,0x20,0x00,0x95,0x12,0xEA,0x01,0x9E,0xF0,0x5E,0xF7,0x00,0x5E,0xE3,0xD3, +0x20,0x00,0x5D,0xEF,0x36,0xFF,0x76,0x98,0x80,0x40,0x70,0xCD,0xE7,0xFF,0xE4,0xCE, +0xC0,0x60,0x2B,0xCC,0x20,0x0F,0x35,0x12,0xAA,0x00,0x1E,0xF5,0xF8,0x5E,0xE6,0x13, +0x20,0x00,0xAD,0xEF,0x56,0xFF,0x5E,0x40,0x7A,0x7D,0xE7,0xFF,0xE4,0x4A,0xC0,0x60, +0xC7,0xEC,0x20,0x00,0x65,0x40,0x6F,0x9D,0xE7,0xFF,0xE4,0x2E,0xC0,0x60,0xC7,0xEC, +0x20,0x00,0x2D,0xCE,0xF2,0x00,0x06,0xD6,0x97,0x1C,0xD5,0xCE,0x52,0x00,0x0C,0xD6, +0x92,0x01,0x39,0x12,0xEA,0x01,0xD2,0xEF,0x01,0x05,0x0C,0x76,0x86,0x98,0x80,0xE7, +0xFF,0xE4,0x28,0x5C,0x6C,0x91,0x20,0x00,0x41,0x40,0x6E,0x7D,0xE7,0xFF,0xE3,0xC6, +0x5C,0x6C,0x99,0x20,0x0D,0xB9,0x1E,0xB5,0xDB,0x5E,0xA2,0x3B,0x20,0x00,0x85,0x12, +0xEA,0x20,0x8E,0xEA,0x12,0xF7,0xFF,0x5E,0xE4,0x93,0x20,0x00,0x4D,0x5E,0xE6,0xDB, +0x20,0x00,0x35,0x0E,0xF6,0x8E,0xC2,0xE0,0x7D,0x0C,0x20,0x0D,0x1D,0xEC,0x76,0xFF, +0x7E,0xE7,0xFF,0xE3,0x5C,0xC0,0x60,0xBB,0x88,0x20,0x00,0x65,0xEF,0x16,0xFF,0x62, +0xEF,0x36,0xFF,0x76,0x88,0x70,0x88,0x98,0x88,0xB9,0xE7,0xFF,0xE8,0x42,0xD0,0x60, +0x19,0x1E,0x40,0x6E,0x7D,0x4E,0xE3,0xFA,0x44,0x77,0x1E,0x40,0x63,0xBD,0xE7,0xFF, +0xE3,0x02,0xC0,0x60,0xBB,0x88,0x20,0x00,0x5D,0xEF,0x56,0xFF,0x5E,0xD5,0xFA,0x18, +0x22,0xD5,0xF3,0x18,0x02,0xD5,0xDA,0x17,0xE2,0xD5,0xD3,0x17,0xC2,0x0E,0xF6,0x8E, +0xC2,0xE0,0xBB,0x88,0x20,0x00,0x7D,0xEF,0x16,0xFF,0x5A,0xEF,0x36,0xFF,0x62,0xD7, +0x19,0x17,0x12,0xEF,0x56,0xFF,0x76,0xD7,0x1A,0x16,0xD2,0xD6,0x19,0x16,0xB2,0xD6, +0x1A,0x16,0x92,0xEE,0xF6,0xFF,0x62,0xEF,0x16,0xFF,0x5A,0x98,0x80,0x40,0x77,0xC5, +0xE7,0xFF,0xE2,0xA6,0xC0,0x60,0xBB,0x8C,0x4A,0xE1,0x01,0xE4,0x00,0x04,0x49,0xC2, +0xE0,0x10,0x01,0x1F,0x0D,0xFD,0xFE,0xF7,0x06,0x4A,0x27,0x04,0xE7,0x0B,0x17,0x03, +0x0B,0x37,0x01,0xCF,0x18,0x01,0x2C,0x43,0x18,0xC8,0xD6,0x58,0x14,0xBC,0x0B,0x17, +0x07,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x03,0x2A,0x12,0xF7,0x00,0x42,0xF8,0xBB,0x53, +0x00,0x64,0x42,0xF7,0xC0,0x0F,0x0B,0x1A,0xD6,0xF8,0x13,0xCC,0x0E,0xEB,0x12,0xE4, +0x00,0x01,0x51,0x1F,0x0D,0xFF,0xD3,0x01,0x05,0x65,0x13,0x4A,0x20,0x13,0x2A,0x00, +0x23,0x44,0x98,0x13,0x0A,0x01,0x43,0x99,0xC5,0x8F,0x38,0x4F,0x7C,0xFA,0x4F,0x39, +0x0A,0x47,0x9B,0xE6,0x43,0x7C,0xDD,0x5F,0x7B,0x00,0x5F,0x63,0xFB,0x20,0x00,0x1B, +0x1F,0x39,0x20,0x57,0x39,0x3F,0x9B,0x00,0x1F,0xB9,0x40,0x53,0xC0,0x40,0xE4,0x00, +0x00,0x63,0x43,0x2A,0xC4,0x13,0x99,0x00,0x43,0x9D,0xE5,0x4F,0x7C,0xFA,0x4F,0x7B, +0xD1,0x43,0x3C,0xDC,0x57,0x39,0x3F,0x43,0x39,0xDD,0x5F,0x39,0x00,0x5F,0x24,0x13, +0x20,0x00,0x25,0x43,0x3E,0xCD,0x5F,0x39,0x00,0x9F,0x01,0xD3,0x24,0x10,0x35,0x5F, +0x78,0x00,0xD7,0x5B,0xFE,0x85,0xE4,0x00,0x04,0x8D,0xC3,0x20,0x10,0x01,0xEF,0x19, +0x03,0x26,0x13,0x38,0x00,0x0B,0x17,0x09,0x43,0x39,0xC3,0x53,0x00,0x64,0x43,0x39, +0xC1,0x0B,0x17,0x03,0x43,0x39,0xC3,0x0B,0x17,0x01,0x42,0xF9,0xC0,0x0F,0x0B,0x1E, +0xD6,0xF8,0x0E,0x8C,0x0E,0xEB,0x16,0xC2,0xE1,0x06,0x8C,0x20,0x07,0x19,0xE4,0x00, +0x02,0x5F,0xD1,0xA9,0x02,0x46,0xC3,0x40,0x10,0x01,0xF6,0xFA,0x05,0x46,0xD2,0xE3, +0x0D,0x9C,0xEE,0xF6,0xFF,0x5A,0x50,0x60,0x64,0x42,0x10,0xBD,0xE7,0xFF,0xDF,0xF0, +0xD4,0x70,0x0D,0x0C,0x12,0xEA,0x20,0xD2,0xE5,0x08,0x31,0x13,0x0A,0x01,0x9F,0x10, +0x5F,0x18,0x00,0x5F,0x03,0xDB,0x20,0x03,0xDD,0x8E,0xEA,0x12,0xF7,0xFE,0x9E,0xF0, +0x5E,0xF7,0x00,0x5E,0xE3,0xD3,0xE4,0x00,0x01,0x35,0xD1,0xA5,0x01,0x16,0x40,0x6E, +0x9D,0xE7,0xFF,0xDF,0xBC,0xC0,0x60,0xA2,0x88,0x20,0x03,0x51,0x12,0xEA,0x00,0x9E, +0xF8,0x5E,0xF7,0x00,0xD2,0xEE,0x0A,0xE9,0xE4,0x00,0x01,0x8B,0xD1,0xA6,0x03,0xDE, +0xEF,0x16,0xFF,0x5E,0x40,0x78,0x7D,0xE7,0xFF,0xDF,0x70,0xC0,0x60,0x9C,0x48,0x20, +0x00,0x79,0x40,0x6E,0x9D,0xE7,0xFF,0xDF,0x54,0xC0,0x60,0x3E,0x6C,0x20,0x00,0x41, +0x12,0xEA,0x00,0x1E,0xF7,0xD8,0x5E,0xF7,0x00,0xD2,0xEE,0x09,0x41,0xEF,0x36,0xFF, +0x5E,0x40,0x79,0x75,0xE7,0xFF,0xDF,0x16,0xC0,0x60,0x7D,0x08,0x20,0x02,0x05,0x40, +0x6F,0x9D,0xE7,0xFF,0xDE,0xFA,0xC0,0x60,0xE0,0xEC,0x20,0x01,0xCD,0x12,0xEA,0x20, +0x8E,0xEA,0x13,0x17,0xFF,0xD3,0x07,0x00,0x7D,0x12,0xF7,0xFE,0xD2,0xE7,0x07,0xAD, +0xE4,0x00,0x00,0xBB,0x5F,0x02,0xD3,0x20,0x03,0xA9,0x12,0xF7,0xFE,0x5E,0xE2,0xD3, +0x20,0x03,0x85,0xE4,0x00,0x00,0x95,0x9A,0xE0,0xD1,0xAB,0x02,0x36,0xEF,0x56,0xFF, +0x5A,0xD6,0x1A,0x00,0x40,0xD5,0xCF,0x06,0x64,0x41,0xCE,0x7D,0x4C,0x6E,0xFA,0x45, +0xC3,0x76,0x40,0x6E,0x1D,0xE7,0xFF,0xDE,0x54,0xC0,0x60,0x25,0x6C,0x20,0x00,0x81, +0xEE,0xF6,0xFF,0x5A,0x98,0x80,0x42,0x10,0xBD,0x4C,0x70,0xFA,0x46,0x03,0x86,0x40, +0x70,0x1D,0xE7,0xFF,0xDE,0x62,0xC0,0x60,0x25,0x68,0x20,0x02,0x5D,0x9A,0xE0,0xEF, +0x36,0xFF,0x6A,0x0F,0x11,0x02,0x0F,0x18,0x06,0x8F,0x19,0x0F,0x38,0x0A,0x23,0x25, +0x92,0x0F,0x4B,0x12,0x23,0x41,0x78,0x0F,0x2B,0x16,0x23,0x21,0x60,0x11,0xD8,0x0C, +0x13,0xD8,0x0D,0x97,0x63,0x11,0x18,0x0E,0xCB,0x7B,0x34,0x50,0x13,0xB8,0x0F,0x41, +0xCE,0xDB,0xCF,0x9E,0x07,0xD0,0xCF,0x1D,0x07,0xD0,0xD1,0xAA,0x00,0xAE,0x22,0xE0, +0x44,0xCF,0x9E,0x46,0x50,0xCF,0x1D,0x46,0x50,0x43,0x9C,0x69,0x43,0x18,0x69,0xCE, +0xFA,0x07,0xD0,0xD6,0xEE,0x01,0xF5,0xCF,0x5A,0x00,0x14,0xD7,0x9A,0x01,0xB5,0xCE, +0xF9,0x07,0xD0,0x43,0x68,0xDB,0xD6,0xFB,0x01,0x5D,0xCF,0x39,0x00,0x14,0xD7,0x19, +0x01,0x1D,0x0E,0xF6,0x96,0x0F,0x56,0x9A,0x0F,0x16,0x92,0x8E,0xFA,0x4E,0xF7,0x0A, +0xD6,0xF8,0x00,0x88,0x5E,0xF7,0x00,0x0D,0x96,0x80,0x0E,0xF6,0x90,0xEE,0xF6,0xFF, +0x78,0x9D,0x81,0x5D,0x8C,0x00,0x0E,0xF1,0x02,0x0F,0x17,0x02,0x0B,0x18,0x01,0xD7, +0x0C,0xC0,0xB5,0xC2,0xE0,0x10,0x01,0xEF,0x36,0xFF,0x7A,0x0C,0x36,0x9E,0xFB,0x37, +0x05,0x43,0xE7,0xFF,0xE7,0x22,0x98,0x62,0xEF,0x56,0xFF,0x7A,0x23,0x41,0x14,0x0E, +0xF1,0x02,0x0F,0x36,0x82,0x0F,0x17,0x06,0x0F,0x56,0xA2,0x4E,0xF9,0x20,0x98,0x61, +0x8E,0xF8,0x12,0xF7,0x05,0x0E,0xFA,0x00,0xE4,0x00,0x00,0x53,0xEF,0x36,0xFF,0x6E, +0x4F,0x19,0xFA,0x46,0x78,0xCE,0x42,0x73,0xC5,0x4F,0x12,0xFA,0x46,0x58,0x96,0x42, +0x52,0xC5,0x4E,0x52,0x12,0xFE,0x52,0x01,0x2C,0xD6,0x72,0xFC,0xC4,0xE7,0xFF,0xFB, +0x3B,0x0C,0x36,0xA6,0x0E,0xC1,0x72,0x0E,0xA1,0x76,0x0E,0x81,0x7A,0x0E,0x61,0x7E, +0xEE,0x41,0x00,0x82,0xEE,0x21,0x00,0x86,0xEE,0x01,0x00,0x8A,0xED,0xE1,0x00,0x8E, +0xED,0xC1,0x00,0x92,0xED,0xA1,0x00,0x96,0xED,0x81,0x00,0x9A,0xED,0x61,0x00,0x9E, +0xED,0x41,0x00,0xA2,0xED,0x21,0x00,0xA6,0xFC,0x21,0x00,0xA8,0x85,0x29,0xC2,0xE0, +0x10,0x01,0x9C,0x38,0xEC,0x77,0x06,0x60,0x0D,0x21,0x04,0x0D,0x41,0x00,0x08,0x61, +0x09,0xC1,0x40,0x10,0x01,0xEC,0x8A,0x06,0x4B,0xFD,0x4A,0x06,0x4A,0x0C,0xAA,0x03, +0x0C,0xCA,0x07,0x0C,0xEA,0x09,0x19,0x0A,0x04,0xE7,0xFF,0xDA,0xF6,0x0D,0x21,0x06, +0x0C,0x6A,0x0B,0x0D,0x41,0x02,0x9C,0x28,0x85,0x29,0x9C,0x30,0x5C,0x63,0x00,0x0D, +0x41,0x08,0x0D,0x61,0x04,0x4C,0x63,0x08,0xC2,0xF8,0x00,0x21,0x0D,0x21,0x0C,0xFE, +0xF7,0xB7,0x22,0x99,0x40,0x8E,0xE3,0x09,0x77,0x01,0x88,0x6A,0x88,0x8B,0x9D,0x41, +0xE4,0x00,0xB7,0xC4,0x5D,0x4A,0x00,0xD1,0x44,0xFF,0x9E,0x0D,0x61,0x06,0x0D,0x41, +0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x06, +0x71,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x06,0x76,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x06, +0x6E,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x06,0x72,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06, +0x79,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0x75,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06, +0x7C,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x06,0x71,0xC2,0xE0,0x10,0x01,0xF8, +0x17,0x06,0x6E,0xC2,0xE0,0x10,0x01,0xF0,0x77,0x06,0x76,0xC2,0xE0,0x10,0x01,0xF8, +0x77,0x06,0x72,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0x79,0xC2,0xE0,0x10,0x01,0xEC, +0x17,0x06,0x75,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0x7C,0x24,0x6C,0x1F,0xE7,0xFF, +0xFE,0x99,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0x5C,0x63,0x04,0xEC, +0x77,0x06,0x75,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0x7C,0xF3,0x78,0x06,0x6E,0xC3, +0x40,0x10,0x01,0xC3,0x20,0x10,0x01,0xC3,0x00,0x10,0x01,0xFF,0x5A,0x06,0x76,0xFF, +0x39,0x06,0x72,0x23,0x60,0x2C,0xEB,0x78,0x06,0x79,0xD7,0x63,0x00,0xA1,0x13,0x5A, +0x00,0xEC,0x78,0x06,0x79,0x1B,0x59,0x00,0x9B,0x01,0xEF,0x17,0x06,0x7C,0x85,0x29, +0xC2,0xE0,0x10,0x01,0xEB,0x17,0x06,0x75,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x06,0x71, +0x5E,0xF8,0x1F,0x48,0x61,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x06,0x6E, +0x5E,0xE0,0x5B,0x48,0x61,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x06,0x6E, +0x27,0x08,0x7B,0x9F,0x01,0xFB,0x17,0x06,0x6E,0xC2,0xE0,0x10,0x01,0xF0,0x77,0x06, +0x76,0x9C,0x61,0x54,0x63,0x03,0xF8,0x77,0x06,0x76,0xE7,0xFF,0xFD,0x61,0x85,0x29, +0x8B,0x03,0x56,0xE3,0x03,0x22,0xE0,0x98,0x9B,0x04,0x42,0xF8,0xBD,0x5F,0x44,0x00, +0x5E,0xE5,0x17,0x4B,0x37,0x28,0x9A,0xE0,0xE4,0x00,0x00,0x13,0x1B,0x58,0x00,0x9E, +0xE1,0x43,0x03,0xBC,0xD6,0xF9,0xFF,0xC6,0x40,0xA5,0xBD,0x4E,0xE4,0x80,0x4F,0x64, +0xC0,0x47,0x7B,0xBD,0x4E,0xE4,0x40,0x47,0x7B,0x25,0x4F,0x45,0x11,0x47,0x7B,0xBD, +0x9A,0xE0,0xE4,0x00,0x00,0x17,0x8F,0x38,0x9E,0xE1,0x0F,0x79,0x00,0x4F,0x37,0x10, +0xD6,0xFA,0xFF,0xB6,0x8F,0x19,0x9A,0xE0,0x54,0xA5,0x03,0x5C,0x84,0x00,0xE4,0x00, +0x00,0x19,0x43,0x37,0xC4,0x9E,0xE1,0x18,0x99,0x00,0xD4,0xB7,0xFF,0xC5,0x85,0x29, +0x46,0xE4,0x1D,0x56,0xF7,0x03,0x22,0xE0,0x82,0x9A,0xFC,0x47,0x45,0xBC,0x9A,0xE0, +0xE4,0x00,0x00,0x51,0x43,0x03,0xBC,0x43,0x24,0xBC,0x9E,0xE1,0x13,0x39,0x00,0x1B, +0x38,0x00,0xE4,0x00,0x00,0x0D,0x9A,0xE0,0xD6,0xE5,0xFF,0x66,0xE4,0x00,0x00,0x63, +0x0F,0x39,0x02,0x9E,0xE4,0x0F,0x38,0x00,0x43,0x03,0xBC,0x43,0x24,0xBC,0xD6,0xFA, +0xFF,0x96,0x9A,0xE0,0x54,0xA5,0x03,0xE4,0x00,0x00,0x25,0x43,0x57,0xC4,0x43,0x77, +0xCC,0x9E,0xE1,0x13,0x7B,0x00,0x1B,0x7A,0x00,0xD4,0xB7,0xFF,0x95,0x85,0x29,0x9C, +0x30,0x0D,0x41,0x08,0x0D,0x61,0x04,0x0D,0x21,0x0C,0x89,0x63,0x99,0x40,0xE4,0x00, +0x20,0xCA,0x20,0x64,0xD2,0xE4,0x00,0x22,0xF6,0x20,0x64,0x82,0xE4,0x00,0x22,0xD4, +0xC2,0xE0,0x10,0x01,0xFF,0x20,0xFF,0x7F,0xEB,0x17,0x08,0x87,0x99,0x41,0x47,0x18, +0xCC,0xEF,0x17,0x08,0x87,0xE4,0x00,0x00,0x23,0xE4,0x00,0x22,0xEA,0x20,0x67,0x7C, +0x88,0x6B,0xE4,0x00,0x22,0x4A,0x88,0x6A,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21, +0x0E,0x1C,0x21,0x10,0x85,0x29,0x1C,0x21,0xD0,0x0D,0x21,0x2C,0x0D,0x41,0x28,0x0D, +0x61,0x24,0x0D,0x81,0x20,0x0D,0xA1,0x1C,0x0D,0xC1,0x18,0x0D,0xE1,0x14,0x0E,0x01, +0x10,0x0E,0x21,0x0C,0x0E,0x41,0x08,0x0E,0x61,0x04,0xE4,0x00,0x68,0x1A,0xC1,0x80, +0x10,0x01,0xC0,0x60,0x00,0x21,0xFD,0x4C,0x00,0xD4,0xFC,0x63,0xB0,0xE4,0xC0,0x80, +0x10,0x01,0xC0,0xA0,0x10,0x01,0xFC,0x84,0x00,0x00,0xFC,0xA5,0x03,0x80,0x40,0xA5, +0x25,0xE4,0x00,0x63,0x5E,0x0C,0x0A,0x01,0x0C,0x0A,0x03,0x0C,0x0A,0x05,0x0C,0x0A, +0x08,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x00,0xC3,0x0C,0x0A,0x0C,0x9A,0xEA,0xC1,0xC0, +0x10,0x01,0x0E,0xEA,0x11,0xEC,0x0E,0x06,0x8C,0x50,0x60,0x26,0xE4,0x00,0x22,0xE4, +0xC8,0x80,0xE1,0x00,0x98,0x60,0xE4,0x00,0x31,0x9C,0x98,0x63,0xE4,0x00,0x30,0x24, +0xE4,0x00,0x07,0x2A,0xC2,0xE0,0x10,0x01,0x9B,0x3C,0xF3,0x17,0x08,0x19,0x47,0x18, +0xCC,0xFC,0x60,0x0B,0xB8,0xFB,0x17,0x08,0x19,0x05,0x60,0x5B,0xC9,0x6B,0x8D,0x80, +0x88,0x8B,0xE4,0x00,0x30,0x5C,0x98,0x61,0xC2,0x58,0x00,0x21,0x8A,0x6B,0xC1,0x80, +0x10,0x01,0xC1,0xA0,0x10,0x01,0xC1,0x60,0x10,0x01,0xE4,0x00,0x30,0x34,0xC2,0x00, +0x10,0x01,0xC1,0xE0,0x10,0x01,0xC2,0x20,0x10,0x01,0xFE,0x52,0xB7,0x2C,0xFD,0x8C, +0x06,0x86,0xFD,0xAD,0x08,0x86,0xFD,0x6B,0x06,0x80,0xE4,0x00,0x2F,0xE4,0x0E,0xEA, +0x0E,0x22,0xE5,0xA0,0x22,0xE0,0x2C,0xD2,0xE2,0x18,0x9E,0xE4,0x00,0x02,0x5F,0xE4, +0x00,0x62,0x0A,0xE4,0x00,0x2F,0xFA,0x0C,0x6A,0x13,0xE4,0x00,0x2F,0xEC,0x0C,0x6A, +0x17,0xE4,0x00,0x2F,0xDE,0x0C,0x6A,0x1B,0xE4,0x00,0x2F,0xD0,0x0C,0x6A,0x19,0x0A, +0xEC,0x01,0xC6,0xF7,0xFF,0xDF,0x0E,0xEC,0x01,0x0A,0xEC,0x01,0xC6,0xF7,0xFF,0x7F, +0x0E,0xEC,0x01,0x9A,0xE1,0x0E,0xEA,0x0C,0x0A,0xED,0x01,0x52,0xF7,0x80,0xEC,0x0E, +0x06,0x8C,0x0E,0xED,0x01,0x98,0x61,0xE4,0x00,0x1D,0x3A,0x98,0x60,0xE4,0x00,0x37, +0x1A,0xE4,0x00,0x31,0xEA,0xE4,0x00,0x05,0x6B,0xEE,0xF0,0x06,0x8A,0x22,0xE4,0x4E, +0x9A,0xE2,0x0E,0xEA,0x0C,0x0C,0x0B,0x00,0xEC,0x10,0x06,0x88,0xE4,0x00,0x05,0x3D, +0xEE,0xEE,0x06,0x8E,0x22,0xE0,0x2C,0xD2,0xE1,0x14,0x9E,0xE4,0x00,0x00,0x3D,0x98, +0x61,0xE7,0xFF,0xFC,0x5C,0xD0,0x61,0x14,0x2E,0xEC,0x0F,0x08,0x60,0xEC,0x6E,0x06, +0x8C,0xE4,0x00,0x69,0x6E,0xE4,0x00,0x02,0xBB,0x0A,0xEA,0x01,0xC6,0xF7,0x01,0x00, +0xD2,0xE0,0x13,0x52,0xE4,0x00,0x2E,0xB8,0x0A,0xEA,0x13,0x0B,0x0A,0x11,0x40,0x63, +0xBD,0x5E,0xE3,0x04,0xD7,0x17,0x12,0xB5,0xE4,0x00,0x2E,0x90,0x0C,0x6A,0x13,0x0A, +0xEA,0x01,0xC6,0xF7,0xFE,0xFF,0x0E,0xEA,0x01,0xE4,0x00,0x63,0x44,0xE4,0x00,0x69, +0x66,0xE4,0x00,0x68,0x96,0xEE,0xEF,0x08,0x62,0xEE,0xF1,0x08,0x8C,0xE4,0x00,0x64, +0x30,0x98,0x61,0xE4,0x00,0x98,0x5A,0xE4,0x00,0x64,0xA8,0x98,0x61,0xE4,0x00,0x65, +0x00,0xE4,0x00,0x66,0x40,0xE4,0x00,0x88,0x52,0x0A,0xED,0x01,0x56,0xF7,0x80,0xD2, +0xE0,0x10,0x5A,0x0A,0xEA,0x01,0xC6,0xF7,0x01,0x00,0x22,0xE3,0xE4,0x0A,0xEA,0x01, +0xC6,0xF7,0xFE,0xFF,0x0E,0xEA,0x01,0x9A,0xE1,0x0E,0xEA,0x0C,0xEC,0x0E,0x06,0x8C, +0x98,0x61,0xE4,0x00,0x1B,0x84,0xE4,0x00,0x03,0xC9,0x0E,0xEB,0x02,0xD2,0xE4,0x0E, +0xED,0x4E,0xF7,0x10,0x8E,0xF2,0x0E,0xF7,0x02,0x86,0xE9,0x0A,0xEC,0x01,0xC6,0xF7, +0xFF,0xDF,0x0E,0xEC,0x01,0x0A,0xEC,0x01,0xC6,0xF7,0xFF,0x7F,0xFF,0x00,0xFF,0x7F, +0x0E,0xEC,0x01,0x0A,0xED,0x01,0x46,0xF7,0xC4,0x0E,0xED,0x01,0xC2,0xE0,0x10,0x01, +0xF8,0x17,0x08,0x48,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x9C,0xC2,0xE0,0x10,0x01, +0xEC,0x17,0x08,0x33,0xC2,0xE0,0x10,0x01,0x9B,0x3E,0xF3,0x17,0x08,0x1A,0x47,0x18, +0xCC,0xFB,0x17,0x08,0x1A,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x50,0xE4,0x00,0x59, +0x4A,0xE4,0x00,0x66,0x28,0x98,0x62,0xE4,0x00,0x2C,0x52,0x50,0x60,0x40,0xE4,0x00, +0x2C,0x64,0x50,0x60,0x19,0xE4,0x00,0x63,0x80,0xE4,0x00,0x04,0x04,0x50,0x60,0xC8, +0xE4,0x00,0x2C,0xC4,0xE4,0x00,0x6B,0xA6,0x50,0x60,0x40,0xE4,0x00,0x63,0x4C,0xC8, +0x80,0x7D,0x00,0xFC,0x60,0x0B,0xB8,0xE4,0x00,0x2C,0x32,0xFC,0x60,0x06,0x00,0xE4, +0x00,0x63,0x34,0xE4,0x00,0x03,0xC0,0xE4,0x00,0x02,0x5D,0x98,0x60,0xE7,0xFF,0xF9, +0xA4,0xD0,0x61,0x09,0x4E,0x9A,0xE2,0xEC,0x0F,0x08,0x60,0x0E,0xEB,0x00,0xE4,0x00, +0x67,0x14,0xE4,0x00,0x66,0x54,0xE4,0x00,0x02,0x29,0x0A,0xEA,0x01,0xC6,0xF7,0x01, +0x00,0xD2,0xE0,0x05,0x8A,0x0A,0xEA,0x01,0xC6,0xF7,0xFE,0xFF,0x0E,0xEA,0x01,0xE4, +0x00,0x03,0x48,0x98,0x60,0x98,0x80,0xE4,0x00,0x2B,0x3A,0xFC,0x60,0x0B,0xB8,0xC8, +0x80,0x7D,0x00,0xE4,0x00,0x2B,0x7A,0xE4,0x00,0x2B,0xA2,0xFC,0x60,0x0B,0xB8,0x88, +0x93,0xE4,0x00,0x2B,0x5E,0x98,0x81,0x98,0x60,0xE4,0x00,0x2A,0xF6,0xE4,0x00,0x02, +0xE4,0x98,0x62,0xE4,0x00,0x2B,0x72,0xE4,0x00,0x2B,0x72,0x0C,0x6A,0x13,0x0A,0xEA, +0x01,0xC6,0xF7,0xFE,0xFF,0x0E,0xEA,0x01,0xE4,0x00,0x60,0x26,0xE4,0x00,0x61,0x32, +0xE4,0x00,0x95,0xAA,0x98,0x80,0x98,0x64,0xE4,0x00,0x48,0xEC,0xE4,0x00,0x65,0x60, +0xEE,0xEF,0x08,0x62,0xEE,0xF1,0x08,0x8C,0xE4,0x00,0x61,0x86,0x98,0x60,0xE4,0x00, +0x61,0xDE,0xE4,0x00,0x63,0x1E,0xE4,0x00,0x85,0x30,0x0A,0xED,0x01,0x56,0xF7,0x80, +0x22,0xE0,0x88,0x0A,0xEA,0x01,0xC6,0xF7,0x01,0x00,0x22,0xE3,0xE4,0x0A,0xEA,0x01, +0xC6,0xF7,0xFE,0xFF,0x0E,0xEA,0x01,0x9A,0xE1,0x98,0x60,0x0E,0xEB,0x00,0xE4,0x00, +0x18,0x6C,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x31,0x5E,0xEB,0x01,0x20,0x00,0x29, +0x1E,0xF7,0xA0,0xD2,0xEB,0x02,0x3D,0x9A,0xE3,0xE4,0x00,0x00,0x7D,0x98,0x63,0xE4, +0x00,0x32,0x16,0xE4,0x00,0x2C,0xE6,0xE4,0x00,0x2A,0x52,0x9A,0xE4,0x0C,0x6A,0x17, +0xE4,0x00,0x00,0x4F,0xE4,0x00,0x2A,0x38,0x0A,0xEA,0x17,0x40,0x63,0xBD,0x5E,0xE3, +0x04,0xC2,0xE0,0x7C,0xEA,0x20,0x00,0x55,0x98,0x60,0xE4,0x00,0x29,0x32,0xE4,0x00, +0x2A,0x04,0x0C,0x6A,0x17,0x9A,0xE2,0x0E,0xEB,0x00,0x0E,0xEA,0x0A,0xFC,0x60,0x1E, +0x7F,0x9E,0xE1,0x0E,0xEA,0x08,0x0C,0x8A,0x0A,0xE4,0x00,0x2B,0xA6,0xE4,0x00,0x2A, +0x76,0xE7,0xFF,0xF9,0x93,0xE4,0x00,0xAB,0xCB,0x9C,0x38,0x0D,0x21,0x04,0x0D,0x41, +0x00,0xE4,0x00,0xAD,0x26,0x98,0x6D,0xE4,0x00,0x9D,0xA0,0x98,0x60,0xFC,0x80,0x3E, +0x0C,0xE4,0x00,0x9F,0xE4,0x98,0x61,0xFC,0x80,0x3E,0x0C,0xE4,0x00,0x9F,0xD0,0x98, +0x60,0x50,0x80,0x14,0xE4,0x00,0xA4,0xCA,0x98,0x60,0x98,0x8C,0xE4,0x00,0xA3,0xEC, +0x98,0x61,0x50,0x80,0x14,0xE4,0x00,0xA4,0xA8,0x98,0x61,0x98,0x8C,0x99,0x40,0xE4, +0x00,0xA3,0xC6,0x88,0x6A,0x98,0x80,0x9D,0x41,0xE4,0x00,0xAA,0x32,0x5D,0x4A,0x00, +0xD1,0x44,0xFF,0x9E,0x98,0x60,0x05,0x40,0xFF,0xC9,0x4A,0xFF,0xFF,0x88,0x8A,0xE4, +0x00,0xA2,0x20,0x88,0x8A,0x98,0x60,0xE4,0x00,0x9F,0xA8,0x88,0x8A,0x0D,0x21,0x06, +0x0D,0x41,0x02,0x98,0x60,0x9C,0x28,0xE4,0x00,0xA0,0x89,0xE4,0x00,0xAC,0x75,0xE4, +0x00,0xAE,0x19,0xE4,0x00,0xAF,0x45,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x06,0x9C,0x1C, +0x21,0xB0,0x0E,0xE1,0x10,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x06,0x90,0x0D,0x41,0x4C, +0x0D,0x61,0x48,0x0D,0x81,0x44,0x0D,0xE1,0x38,0x0E,0x01,0x34,0x0E,0x21,0x30,0x0E, +0x41,0x2C,0x0E,0x61,0x28,0x0E,0x81,0x24,0x0D,0xA1,0x40,0x0D,0xC1,0x3C,0x0E,0xA1, +0x20,0x0E,0xC1,0x1C,0x0E,0xE1,0x0C,0xC2,0x60,0x10,0x01,0xC2,0x40,0x10,0x01,0xFE, +0x73,0x06,0xB0,0xFE,0x52,0x06,0xA8,0xC2,0x20,0x10,0x01,0xC2,0x00,0x10,0x01,0xFE, +0x31,0x06,0xA0,0xFE,0x10,0x06,0xB4,0xC1,0xE0,0x10,0x01,0xC1,0x8F,0xFF,0xE1,0xFD, +0xEF,0x06,0xAC,0x9B,0x80,0xC2,0x98,0x00,0x21,0xC0,0xD8,0x00,0x21,0x13,0x53,0x00, +0x0E,0xF2,0x02,0x0D,0x51,0x02,0x0F,0xB0,0x02,0x0F,0x6F,0x02,0x99,0x60,0xC9,0x8C, +0xFF,0xFF,0x88,0xFC,0x53,0x20,0xFF,0xFE,0x94,0xB8,0xA6,0xFC,0xC6,0xB8,0xAC,0xE4, +0x00,0x01,0xC5,0x41,0x14,0xC4,0x9F,0x01,0x11,0x08,0x00,0x8D,0xA8,0x5D,0xAD,0x00, +0xE4,0x00,0x00,0x11,0x9B,0x00,0x89,0xB8,0x5D,0x18,0x00,0xD7,0xC8,0xFF,0x45,0xC3, +0x18,0x00,0x21,0xFF,0x18,0xB8,0xA6,0x8F,0x0B,0x99,0x00,0x12,0xB8,0x00,0xCF,0x0D, +0x00,0x0A,0x1E,0xD5,0xFF,0x8F,0x06,0x0E,0xC1,0x08,0x0F,0x01,0x14,0xE4,0x00,0x01, +0x37,0x0F,0x01,0x16,0xCD,0xE8,0x00,0x0A,0x8D,0xF8,0x0A,0xCF,0x00,0x0E,0xC1,0x04, +0x0F,0x01,0x0E,0x0E,0xC1,0x0A,0xD5,0x16,0x00,0x3A,0x0B,0x0F,0x0A,0x0D,0xE1,0x06, +0xD5,0xE4,0x03,0xB4,0xD4,0x98,0x03,0x94,0x8D,0xCD,0x5D,0xCE,0x00,0xCF,0x0E,0x00, +0x0A,0x8F,0x06,0x09,0xF8,0x06,0x0B,0x18,0x08,0x4F,0x18,0x50,0x41,0xEF,0x23,0x8D, +0xF8,0xFD,0xEF,0x02,0x00,0x4D,0xEF,0x52,0x5D,0xEF,0x06,0x41,0xEF,0x7B,0x43,0x03, +0x7D,0x4E,0xD8,0xFA,0x47,0x16,0xC6,0x43,0x18,0xB5,0xD7,0x0C,0x01,0x4C,0xC3,0x20, +0x1F,0xE4,0x20,0x00,0x2D,0x89,0x5D,0x89,0x97,0x8B,0x3A,0x88,0xFC,0x8B,0xAA,0x8A, +0xEC,0x8B,0x59,0x8B,0x87,0x8B,0x78,0x89,0x4F,0x89,0x98,0x88,0xEE,0x8B,0x3E,0xE4, +0x00,0x00,0x2F,0xC3,0x40,0x1F,0xE0,0x20,0x00,0x1D,0xD6,0xF8,0x00,0x60,0x8B,0xAF, +0x8A,0xF8,0x8B,0x5E,0x8B,0x8E,0x9D,0x01,0x5D,0xC8,0x00,0xD6,0xAE,0xFB,0x35,0x9D, +0x61,0x5F,0xCB,0x00,0x0E,0xC1,0x12,0xD6,0xDE,0xF9,0x6D,0xC3,0x00,0x10,0x01,0x1B, +0x53,0x00,0xFF,0x18,0x06,0xAC,0x0E,0xF2,0x00,0x0D,0x51,0x00,0x0F,0xB0,0x00,0x0F, +0x78,0x00,0xC3,0x20,0x1F,0xE0,0x20,0x01,0x55,0xCF,0x9C,0x00,0x0A,0xCC,0xE7,0x00, +0x0A,0x8C,0xE6,0x0B,0x07,0x04,0x4F,0x18,0x50,0x8C,0xDC,0x08,0x67,0x02,0x0B,0x86, +0x02,0x40,0x63,0x23,0x0B,0x46,0x04,0x8C,0x78,0x43,0x1B,0xBC,0xFC,0x63,0x02,0x00, +0x4C,0x63,0x52,0x23,0x00,0xA8,0xC2,0xE0,0x1F,0xE0,0x20,0x00,0x8D,0x40,0x63,0xBB, +0x40,0x9C,0x23,0x4E,0xFA,0x50,0x8E,0xE4,0xFE,0xF7,0x02,0x00,0x4E,0xF7,0x52,0x43, +0x77,0xDB,0x8C,0x7B,0x40,0x63,0xC0,0xE4,0x00,0x00,0x0D,0x88,0x64,0x0E,0xC1,0x1E, +0x0E,0xA1,0x22,0x0E,0x81,0x26,0x0E,0x61,0x2A,0x0E,0x41,0x2E,0x0E,0x21,0x32,0x0E, +0x01,0x36,0x0D,0xE1,0x3A,0x0D,0xC1,0x3E,0x0D,0xA1,0x42,0x0D,0x81,0x46,0x0D,0x61, +0x4A,0x0D,0x41,0x4E,0x1B,0x25,0x00,0x1C,0x21,0x50,0x85,0x29,0x8B,0x23,0xC2,0xE0, +0x10,0x01,0x5C,0xA5,0x00,0xF2,0xF7,0x06,0x9C,0x98,0x60,0xD6,0xE5,0x0C,0xB9,0xD3, +0x3F,0x0C,0x98,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xC3,0x60,0x10,0x01,0xF2, +0xF7,0x06,0x95,0xFF,0x18,0x06,0x93,0xFF,0x7B,0x06,0x94,0x22,0xE8,0x42,0x13,0x18, +0x00,0x5F,0x08,0x9B,0x20,0x00,0x51,0xE4,0x00,0x01,0x3B,0xD2,0xE1,0x04,0xCE,0x13, +0x18,0x00,0x5F,0x05,0x93,0x20,0x02,0x3D,0x24,0xA4,0x4B,0x9B,0x43,0x43,0x5A,0x2D, +0x4F,0x5A,0x08,0x5F,0x5A,0x00,0xE4,0x00,0x00,0x37,0x20,0xA8,0x54,0x9B,0x44,0x43, +0x5A,0x2D,0x4F,0x5A,0x08,0x5F,0x5A,0x00,0x20,0xAC,0xEE,0xE4,0x00,0x00,0x51,0x9B, +0x43,0x9A,0xE0,0x13,0x9B,0x00,0x8B,0x17,0xE4,0x00,0x00,0x27,0x4F,0xB8,0x08,0x9F, +0x01,0x8F,0xBC,0x5F,0x18,0x00,0x8E,0xFD,0x5E,0xF7,0x00,0xD7,0x05,0xFF,0x8E,0xE4, +0x00,0x00,0x49,0x5E,0xE0,0x21,0x53,0x00,0x1D,0x52,0xE0,0x2F,0x4A,0xF8,0xB8,0xE4, +0x00,0x00,0x4B,0x5E,0xE0,0x29,0x53,0x00,0x41,0x52,0xE0,0x29,0x4A,0xF8,0xB8,0xE4, +0x00,0x00,0x2B,0x27,0x04,0x33,0x9F,0x9F,0x4F,0x18,0x08,0xE4,0x00,0x00,0x8B,0x9B, +0x0A,0x20,0xA9,0x10,0x13,0x1B,0x00,0x9C,0xBF,0x9F,0x1F,0x4C,0xA5,0x08,0x8F,0x05, +0xE4,0x00,0x00,0x65,0x9B,0x43,0x13,0xBB,0x00,0x43,0x5A,0x2D,0x9A,0xE0,0x4F,0x5A, +0x08,0x8B,0x77,0x5F,0x5A,0x00,0xE4,0x00,0x00,0x21,0x8F,0x9D,0x9F,0x61,0x8E,0xFC, +0x5F,0x7B,0x00,0x5E,0xF7,0x00,0x4F,0x9B,0x08,0xD7,0x65,0xFF,0x8E,0x1F,0x1D,0xFF, +0x8F,0x1C,0x5F,0x18,0x00,0x4F,0x5A,0x08,0xC3,0xB8,0x00,0x21,0xFF,0xBD,0xB7,0x40, +0x8F,0xBA,0x9B,0x40,0xE4,0x00,0x01,0x0B,0x4F,0x7A,0x08,0x8F,0x7D,0x0B,0x9B,0x00, +0xD7,0x3C,0x03,0xBC,0x0B,0x7B,0x02,0xD7,0x79,0x03,0x84,0x8E,0xFA,0xC3,0xB8,0x00, +0x21,0xCF,0x17,0x00,0x06,0xFF,0xBD,0xB7,0x5C,0x8F,0x1D,0x1F,0x57,0x01,0x14,0xD8, +0x00,0xCF,0x5A,0x00,0x06,0x09,0x18,0x02,0x8F,0x5D,0x98,0x60,0x0B,0xB8,0x04,0x14, +0xBA,0x00,0x0B,0xDA,0x02,0x0B,0x1A,0x04,0xD7,0x9B,0x02,0x52,0x42,0xF9,0xDD,0x40, +0x77,0x33,0x43,0x3C,0xCD,0x43,0x59,0x2B,0x43,0xD9,0xF3,0x8F,0x43,0x40,0x77,0x43, +0x43,0x5A,0x23,0x8C,0x7E,0x8C,0x7A,0x42,0xF7,0xEB,0x40,0x83,0x23,0x97,0x41,0x43, +0x39,0xC3,0xCB,0x5A,0x86,0xA0,0x8F,0x37,0x40,0x64,0xD0,0x43,0x7C,0xDD,0x8C,0x79, +0x40,0x63,0xD8,0xE4,0x00,0x00,0x1F,0x9F,0x41,0x5F,0x7A,0x00,0xD7,0x1B,0xFB,0xE5, +0x98,0x60,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF8,0x77,0x06,0x95,0xC2,0xE0,0x10,0x01, +0xF8,0x97,0x06,0x92,0xC2,0xE0,0x10,0x01,0xF8,0xB7,0x06,0x93,0xC2,0xE0,0x10,0x01, +0xF8,0xD7,0x06,0x94,0xC2,0xE0,0x10,0x01,0xEC,0xF7,0x06,0x91,0x85,0x29,0x9A,0xFF, +0x1C,0x21,0xD8,0x0D,0xE1,0x0C,0x1A,0xE1,0x07,0xC1,0xE0,0x10,0x01,0xFD,0xEF,0x06, +0xB0,0x1A,0xEF,0x00,0x52,0xE0,0xFF,0xC3,0x00,0x10,0x01,0x0D,0x41,0x20,0x0D,0x61, +0x1C,0x0D,0xA1,0x14,0x0D,0xC1,0x10,0xCB,0x20,0xFF,0xFF,0xC1,0xC0,0x10,0x01,0xEF, +0x38,0x06,0xB8,0xFD,0xCE,0x06,0xAC,0xC1,0xA0,0x10,0x01,0x0E,0xEE,0x00,0xFD,0xAD, +0x06,0xA8,0x0D,0x21,0x24,0x0E,0xED,0x00,0x0D,0x81,0x18,0xC2,0xE0,0x10,0x01,0x0E, +0x01,0x08,0x89,0x63,0xF3,0x17,0x06,0x95,0x89,0x44,0x88,0x65,0xC2,0xE0,0x10,0x01, +0x23,0x08,0x56,0xC3,0x00,0x10,0x01,0xF3,0x18,0x06,0x93,0x5F,0x08,0x9B,0x20,0x00, +0x61,0xE4,0x00,0x00,0x37,0x23,0x04,0x5E,0xC3,0x00,0x10,0x01,0xF3,0x18,0x06,0x93, +0x5F,0x05,0x93,0x20,0x00,0x25,0x9B,0x05,0xE4,0x00,0x00,0x0D,0x9B,0x04,0xFB,0x17, +0x06,0x9C,0xC2,0x00,0x10,0x01,0x0E,0xEB,0x02,0xEE,0xF0,0x06,0xB8,0x0A,0xE6,0x06, +0x0C,0x8B,0x02,0xD4,0x97,0x04,0xCC,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0x71,0x53, +0x18,0x01,0x1C,0xA1,0x07,0xEF,0x17,0x08,0x71,0xE7,0xFF,0xF6,0x9C,0x0C,0x6B,0x00, +0x0C,0x8A,0x02,0xED,0x90,0x06,0xBA,0x10,0xAF,0x00,0x88,0x6C,0xE7,0xFF,0xFA,0xC0, +0xC2,0xE0,0x10,0x01,0x89,0x63,0xEC,0x77,0x06,0x98,0x10,0xA1,0x07,0x0C,0x8A,0x02, +0x88,0x6C,0xE7,0xFF,0xFA,0x94,0xC3,0x00,0x10,0x01,0xEC,0x78,0x06,0xA4,0x0F,0x6E, +0x02,0x0F,0x2D,0x02,0x0F,0x4A,0x02,0x43,0x1B,0xCC,0x23,0x00,0xEC,0xC3,0x20,0x1F, +0xE0,0x20,0x00,0xD1,0xC3,0x80,0x10,0x01,0xEF,0xBC,0x06,0xA2,0xC3,0x80,0x10,0x01, +0xEF,0x9C,0x06,0xB6,0x43,0xBD,0xE5,0x4F,0x9D,0xFA,0x47,0xBC,0xEE,0x43,0x9D,0xE5, +0xD7,0x1C,0x00,0xAC,0x41,0x6B,0xDB,0x42,0xE3,0xCB,0x8E,0xEB,0x43,0x17,0xC0,0x8F, +0x58,0xE4,0x00,0x01,0x55,0x42,0xFA,0x1C,0xE4,0x00,0x01,0x5B,0xC9,0x80,0x07,0xFF, +0x42,0xEC,0xBD,0xD6,0xE4,0x05,0x2C,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0x71,0x53, +0x18,0x01,0x40,0x8C,0x25,0xEF,0x17,0x08,0x71,0x1C,0xA1,0x07,0xE7,0xFF,0xF5,0x56, +0x40,0x6C,0x1D,0x0C,0x6B,0x00,0xEE,0xF0,0x06,0xBA,0x0C,0x8A,0x02,0x41,0x8C,0xBD, +0x10,0xAF,0x00,0x88,0x6C,0xE7,0xFF,0xF9,0x6E,0xC2,0xE0,0x10,0x01,0x89,0x63,0xEC, +0x77,0x06,0x98,0x10,0xA1,0x07,0x0C,0x8A,0x02,0x88,0x6C,0xE7,0xFF,0xF9,0x42,0xC3, +0x00,0x10,0x01,0xEC,0x78,0x06,0xA4,0x0F,0x6E,0x02,0x0F,0x2D,0x02,0x0F,0x4A,0x02, +0x43,0x1B,0xCC,0x23,0x00,0xFC,0xC3,0x20,0x1F,0xE0,0x20,0x00,0xE1,0xC3,0x80,0x10, +0x01,0xEF,0xBC,0x06,0xA2,0xC3,0x80,0x10,0x01,0xEF,0x9C,0x06,0xB6,0x43,0xBD,0xE5, +0x4F,0x9D,0xFA,0x47,0xBC,0xEE,0x43,0x9D,0xE5,0xD7,0x1C,0x00,0xCC,0x41,0x6B,0xDB, +0x42,0xE3,0xCB,0x8E,0xEB,0x43,0x17,0xC0,0x43,0x5A,0xC5,0x0F,0x4A,0x00,0xE4,0x00, +0x00,0x15,0x42,0xFA,0x1D,0x0E,0xEA,0x00,0x0E,0x01,0x0A,0x0D,0xE1,0x0E,0x0D,0xC1, +0x12,0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26, +0x1C,0x21,0x28,0x85,0x29,0x1C,0x21,0xD0,0x0D,0x41,0x28,0x0D,0x61,0x24,0x0D,0x81, +0x20,0x0D,0xA1,0x1C,0x0D,0xC1,0x18,0x0D,0xE1,0x14,0x0E,0x01,0x10,0x0E,0x21,0x0C, +0x0E,0x41,0x08,0x5E,0x23,0x00,0x0E,0x61,0x04,0x56,0x11,0x03,0x4E,0xF1,0x11,0x5E, +0x00,0x09,0x99,0xC0,0x4A,0x41,0x01,0x99,0x80,0x9A,0x64,0x0D,0x21,0x2C,0x8E,0x57, +0x89,0x44,0x89,0xAE,0x89,0x6C,0x99,0xE0,0x42,0x73,0x25,0xE4,0x00,0x00,0xF3,0x42, +0xF3,0x54,0xD6,0xF1,0x01,0xD8,0x22,0x04,0x4A,0x51,0xC0,0x10,0x11,0x6A,0x00,0x89, +0xAE,0x51,0x80,0x10,0xE4,0x00,0x00,0x6B,0x22,0x08,0x4A,0x51,0xC0,0x10,0x11,0x6A, +0x00,0x11,0x8A,0x01,0x89,0xAE,0xE4,0x00,0x00,0x47,0x22,0x0C,0x7E,0x11,0x6A,0x00, +0x11,0x8A,0x01,0x11,0xAA,0x02,0x51,0xC0,0x10,0xE4,0x00,0x00,0x21,0x11,0x6A,0x00, +0x11,0x8A,0x01,0x11,0xAA,0x02,0x11,0xCA,0x03,0x4E,0xEC,0x80,0x4C,0x8C,0xC0,0x8C, +0x97,0x4E,0xEE,0x80,0x4F,0x0B,0x40,0x4C,0xAE,0xC0,0x8C,0xB7,0x4E,0xED,0x40,0x88, +0x6F,0x8C,0x8B,0x8C,0xAD,0x8C,0x98,0x8C,0xB7,0x9D,0xE1,0xE4,0x00,0x90,0x48,0x5D, +0xEF,0x00,0x9D,0x44,0xD5,0xF2,0xFC,0x5E,0x0E,0x61,0x06,0x0E,0x41,0x0A,0x0E,0x21, +0x0E,0x0E,0x01,0x12,0x0D,0xE1,0x16,0x0D,0xC1,0x1A,0x0D,0xA1,0x1E,0x0D,0x81,0x22, +0x0D,0x61,0x26,0x0D,0x41,0x2A,0x0D,0x21,0x2E,0x1C,0x21,0x30,0x85,0x29,0xC2,0xE0, +0x10,0x01,0xEE,0xF7,0x00,0xE2,0x5E,0xE0,0x41,0x1C,0x21,0xE8,0x0D,0x61,0x0C,0x0D, +0x81,0x08,0x0D,0xA1,0x04,0x0D,0x21,0x14,0x0D,0x41,0x10,0x89,0x63,0x5D,0x84,0x00, +0x49,0xA1,0x01,0xE4,0x00,0x54,0xDE,0xC3,0x14,0x00,0x01,0xCB,0x18,0x7A,0x30,0x0A, +0xF8,0x01,0xC6,0xF7,0x01,0x00,0x5E,0xF7,0x04,0x22,0xE3,0xD8,0xFC,0x60,0x01,0x00, +0x99,0x40,0xE4,0x00,0x19,0xEC,0xE4,0x00,0x00,0x31,0x88,0x6A,0x98,0x81,0x88,0xAD, +0x9D,0x41,0xE4,0x00,0xA5,0x16,0x5D,0x4A,0x00,0x0C,0x6B,0x01,0x9D,0x62,0xD5,0x4C, +0xFF,0x66,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21, +0x16,0x1C,0x21,0x18,0x85,0x29,0xFC,0x21,0xFD,0xF0,0xED,0x41,0x02,0x08,0xED,0xE1, +0x01,0xF4,0xEE,0x01,0x01,0xF0,0xED,0x21,0x02,0x0C,0xED,0x61,0x02,0x04,0xED,0x81, +0x02,0x00,0xED,0xA1,0x01,0xFC,0xED,0xC1,0x01,0xF8,0xEE,0x21,0x01,0xEC,0xEE,0x41, +0x01,0xE8,0xEE,0x61,0x01,0xE4,0xC2,0x00,0x10,0x01,0xC1,0xE0,0x10,0x01,0x89,0x43, +0xFE,0x10,0x07,0xE8,0xFD,0xEF,0x08,0x06,0x20,0x60,0x30,0x20,0x68,0x88,0x20,0x64, +0x30,0x24,0x64,0x63,0x99,0x80,0xE4,0x00,0x00,0x0D,0x99,0x81,0xCD,0x8C,0x00,0x1A, +0x51,0x60,0x1A,0x8D,0x90,0xE4,0x00,0x00,0x29,0xD0,0x64,0x00,0x62,0x99,0x80,0x89, +0x6C,0xE4,0x00,0x00,0x11,0x89,0x8F,0x99,0x63,0x9A,0xE0,0x89,0xC1,0x53,0x20,0x10, +0xE4,0x00,0x00,0x19,0x43,0x0E,0xBC,0x9E,0xE1,0x1B,0x38,0x00,0x5F,0x17,0x00,0xD5, +0x78,0xFF,0xAD,0x88,0x6B,0x88,0x81,0x99,0xA3,0xE7,0xFF,0xFC,0x18,0x89,0xC1,0xFE, +0x20,0xFE,0xB0,0xCA,0x40,0x01,0x50,0x52,0x60,0x3F,0x1C,0x61,0x60,0x88,0x8B,0xE7, +0xFF,0xFD,0xBE,0x1F,0x21,0x60,0x8B,0x01,0x9B,0x41,0xE4,0x00,0x00,0x93,0x0A,0xF9, +0x00,0xC2,0xFF,0xD5,0xEC,0x20,0x00,0x39,0x43,0x71,0xBD,0xC3,0x60,0x2A,0x0C,0xE4, +0x00,0x00,0x0F,0x5E,0xE0,0x19,0x4B,0x61,0x01,0x23,0x60,0x98,0xFE,0xF7,0x01,0x50, +0x13,0x58,0x00,0x42,0xF7,0x90,0x8E,0xFA,0x5E,0xF7,0x06,0x26,0xFC,0x34,0x5E,0xE7, +0xF1,0x4A,0xF7,0x98,0xE4,0x00,0x00,0x0D,0x9A,0xE0,0x1A,0xF8,0x00,0x9B,0x40,0x9F, +0x01,0x9F,0x22,0x42,0xF8,0x75,0x5E,0xF7,0x00,0xD5,0x77,0xFD,0xAD,0x23,0x40,0x24, +0x9A,0xE0,0xE4,0x00,0x00,0x51,0x88,0x6B,0x88,0x81,0x9D,0xBF,0xE7,0xFF,0xFB,0x12, +0x5D,0xAD,0x00,0x21,0xA2,0x1E,0xE7,0xFF,0xFF,0xD5,0x43,0x0C,0xBC,0x1F,0x21,0x00, +0x8F,0x37,0x9E,0xE1,0x13,0x39,0x00,0x1B,0x38,0x00,0x5F,0x17,0x00,0xD5,0x78,0xFF, +0x6D,0x21,0x40,0x64,0x21,0x48,0x28,0x21,0x44,0x8C,0xD1,0x44,0x01,0xCA,0x99,0x60, +0x99,0x80,0x88,0x8B,0x89,0x4C,0xE4,0x00,0x00,0x77,0xC1,0x80,0x10,0x01,0x99,0x60, +0x88,0x90,0xFD,0x8C,0x0A,0x9C,0xE4,0x00,0x00,0x2D,0xC0,0x80,0x10,0x01,0xC1,0x80, +0x10,0x01,0x99,0x61,0xFC,0x84,0x08,0x02,0xFD,0x8C,0x0B,0x04,0x51,0x40,0x1A,0xE4, +0x00,0x00,0x25,0xC1,0x80,0x10,0x01,0x99,0x68,0x88,0x8F,0xFD,0x8C,0x0B,0x28,0x99, +0x43,0x88,0x6A,0xE7,0xFF,0xFA,0x24,0xFD,0xA1,0x01,0x20,0x88,0x8A,0x88,0x6D,0xE7, +0xFF,0xFB,0xDE,0x9A,0xE0,0xE4,0x00,0x00,0x33,0x4F,0x17,0x10,0x4F,0x37,0x08,0x8F, +0x0C,0x8F,0x2D,0x9E,0xE1,0x0B,0x39,0x00,0x4F,0x39,0x40,0x0F,0x38,0x00,0x5F,0x17, +0x00,0xD5,0x58,0xFF,0x45,0x88,0x6B,0xE4,0x00,0x52,0x3C,0xED,0x21,0x02,0x0E,0xEE, +0x61,0x01,0xE6,0xEE,0x41,0x01,0xEA,0xEE,0x21,0x01,0xEE,0xEE,0x01,0x01,0xF2,0xED, +0xE1,0x01,0xF6,0xED,0xC1,0x01,0xFA,0xED,0xA1,0x01,0xFE,0xED,0x81,0x02,0x02,0xED, +0x61,0x02,0x06,0xED,0x41,0x02,0x0A,0xFC,0x21,0x02,0x10,0x85,0x29,0x9C,0x38,0xC2, +0xE0,0x10,0x01,0x0D,0x21,0x04,0xFE,0xF7,0x07,0xE8,0x9B,0x00,0x13,0x37,0x00,0x4F, +0x39,0x08,0x9E,0xE1,0x8F,0x19,0xC3,0x20,0x10,0x01,0xFF,0x39,0x08,0x02,0xD6,0xF9, +0xFF,0x76,0xC2,0xE0,0x10,0x01,0xF3,0x57,0x08,0x06,0xFE,0xF7,0x08,0x06,0x13,0x37, +0x02,0x13,0x77,0x01,0x98,0x60,0x42,0xFB,0xD4,0x98,0x80,0x8E,0xF9,0x53,0x20,0x37, +0x4E,0xF7,0x08,0x8E,0xF8,0x97,0x03,0x4E,0xF7,0x09,0xCB,0x18,0xD0,0x8F,0xCE,0xF7, +0x03,0x5B,0x42,0xF7,0xC9,0xCE,0xF7,0x00,0x1D,0xD6,0xF8,0x00,0xA1,0x97,0x2F,0x98, +0x60,0xCB,0x39,0x42,0x3F,0x98,0x82,0xD6,0xF9,0x00,0x31,0x98,0x87,0xE4,0x00,0x9A, +0x14,0x0D,0x21,0x06,0x98,0x61,0x98,0x80,0x9C,0x28,0xE4,0x00,0x99,0xFB,0x9C,0x38, +0x98,0x80,0x0D,0x21,0x04,0x98,0x66,0xE4,0x00,0x2E,0x6A,0x98,0x60,0xE7,0xFF,0xFA, +0xF2,0x98,0x66,0x98,0x87,0xE4,0x00,0x2E,0x4E,0x0D,0x21,0x06,0x98,0x64,0x9C,0x28, +0xE7,0xFF,0xFA,0xCD,0xC2,0xE0,0x10,0x01,0x5C,0xA0,0x29,0xF3,0x37,0x0B,0x1A,0x53, +0x40,0x40,0x52,0xE0,0x20,0xC3,0x60,0x10,0x01,0x4B,0x5A,0xB8,0xFF,0x7B,0x09,0x0C, +0x20,0x60,0x6C,0xE4,0x00,0x00,0x55,0x4F,0x17,0x08,0x9E,0xE1,0x8F,0x1B,0x0B,0x18, +0x00,0xD7,0x58,0x00,0x78,0x98,0x61,0xE4,0x00,0x00,0xD9,0x9A,0xE0,0x43,0x40,0xD5, +0x5F,0x17,0x00,0xD7,0x38,0xFF,0x25,0x98,0x60,0xE4,0x00,0x00,0xB5,0x20,0x67,0xEA, +0x9A,0xE0,0x20,0x80,0xA6,0x9A,0xE0,0x43,0x80,0xD5,0xE4,0x00,0x00,0x7D,0x4F,0x17, +0x08,0x8F,0x1B,0x0B,0x18,0x00,0x4F,0x98,0xFA,0x47,0x1C,0xC6,0x43,0x18,0xE5,0x0B, +0x84,0x00,0xD7,0x1C,0x00,0x38,0x0F,0x04,0x01,0x9E,0xE1,0x5F,0x17,0x00,0xD7,0x38, +0xFF,0x05,0xE7,0xFF,0xFF,0xA7,0x4F,0x17,0x08,0x8F,0x1B,0x0B,0x18,0x00,0xD7,0x98, +0xFD,0x3C,0x9E,0xE1,0xD7,0x1A,0xFD,0x0C,0x5F,0x17,0x00,0xD7,0x38,0xFF,0x5D,0xE7, +0xFF,0xFF,0x51,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xF3,0xB7,0x0B, +0x1A,0xC3,0xC0,0x10,0x01,0x9A,0xE0,0xFF,0x18,0x06,0xC0,0x8B,0x37,0xFF,0xDE,0x09, +0x0C,0xE4,0x00,0x00,0x5B,0x4F,0x57,0x08,0x0B,0x98,0x00,0x8F,0x5E,0x0B,0x5A,0x00, +0x43,0x9A,0xE5,0x4F,0x7C,0xFA,0x47,0x9B,0xE6,0x43,0x7C,0xDD,0x5F,0x66,0x11,0x20, +0x00,0x21,0x9F,0x21,0x5F,0x39,0x00,0x0F,0x58,0x01,0x9E,0xE1,0x9F,0x02,0x5F,0x57, +0x00,0xD7,0xBA,0xFE,0xA5,0x5F,0x20,0x93,0x48,0x61,0x01,0x85,0x29,0xC2,0xE0,0x10, +0x01,0xC3,0x40,0x10,0x01,0xF3,0x37,0x0B,0x1A,0xC3,0x60,0x10,0x01,0x9A,0xE0,0xFF, +0x5A,0x06,0xC0,0xFF,0x7B,0x09,0x0C,0xE4,0x00,0x00,0x29,0x4F,0x17,0x08,0x9E,0xE1, +0x43,0x9A,0xC4,0x8F,0x1B,0x0B,0x18,0x01,0x0F,0x1C,0x01,0x5F,0x17,0x00,0xD7,0x38, +0xFF,0x6D,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x8A,0xC2,0xE0,0x10,0x01, +0x9C,0x38,0xF8,0x17,0x08,0x83,0x0D,0x21,0x04,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08, +0x9D,0x20,0x64,0x26,0x98,0x60,0xE4,0x00,0x00,0x0D,0x98,0x64,0x98,0x80,0xE4,0x00, +0x2F,0xA0,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x06,0xEC,0x17,0x06,0xBC,0x9C,0x28,0xE4, +0x00,0x4B,0xFB,0x1C,0x21,0xE8,0xC2,0xE0,0x10,0x01,0x0D,0x41,0x10,0xEB,0x17,0x00, +0xD5,0x0D,0x21,0x14,0x0D,0x61,0x0C,0x0C,0x01,0x07,0x89,0x43,0xC7,0x18,0x01,0x00, +0x98,0x60,0xD3,0x00,0x06,0x3A,0xEB,0x17,0x00,0xD5,0xC7,0x18,0xFE,0xFF,0xEF,0x17, +0x00,0xD5,0xE4,0x00,0x46,0x32,0xE4,0x00,0x47,0x3E,0x21,0x44,0x36,0x98,0x61,0xE4, +0x00,0x7B,0x62,0xE4,0x00,0x00,0x11,0xE4,0x00,0x7B,0x9C,0xC2,0xE0,0x10,0x01,0xED, +0x77,0x06,0xBE,0x5D,0x60,0x01,0x0C,0x01,0x07,0x98,0x61,0x1C,0x81,0x06,0x98,0xA1, +0x48,0x84,0x00,0x88,0xCA,0xE7,0xFF,0xFC,0x5E,0xC2,0xE0,0x10,0x01,0x20,0x60,0xE6, +0xF3,0x17,0x08,0x8A,0x9F,0x01,0xFB,0x17,0x08,0x8A,0x0A,0xE1,0x06,0xD2,0xEF,0x00, +0x94,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x08,0x83,0x9F,0x01,0xFB,0x17,0x08,0x83,0x98, +0x63,0x21,0x44,0x36,0x98,0x81,0xE4,0x00,0x78,0x06,0xE4,0x00,0x00,0x6B,0xE4,0x00, +0x78,0x5C,0xE4,0x00,0x00,0x5B,0xF8,0x17,0x08,0x8A,0xC2,0xE0,0x10,0x01,0xF8,0x17, +0x08,0x83,0x21,0x63,0x76,0x0A,0xE1,0x06,0x5E,0xEC,0x11,0x23,0xFF,0x51,0x21,0x44, +0x36,0x98,0x61,0xE4,0x00,0x4F,0xEA,0xE4,0x00,0x00,0x11,0xE4,0x00,0x50,0x24,0x9B, +0x01,0xC2,0xE0,0x10,0x01,0x98,0x61,0xEF,0x17,0x06,0xBC,0xC2,0xE0,0x10,0x01,0xF3, +0x17,0x08,0x9D,0x9F,0x01,0xFB,0x17,0x08,0x9D,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D, +0x21,0x16,0x1C,0x21,0x18,0x85,0x29,0x9C,0x38,0x0D,0x21,0x04,0x20,0x64,0x26,0x98, +0x60,0xE4,0x00,0x00,0x0D,0x98,0x64,0x98,0x80,0xE4,0x00,0x2D,0x6A,0x0D,0x21,0x06, +0x9C,0x28,0xE4,0x00,0x49,0xD5,0x98,0x81,0x98,0x60,0x88,0xA4,0xE7,0xFF,0xA7,0xEB, +0xC2,0xE0,0x10,0x01,0x98,0x61,0xF2,0xF7,0x08,0x8A,0xD2,0xEA,0x00,0x95,0xC2,0xE0, +0x10,0x01,0xF2,0xF7,0x08,0x83,0x5E,0xE0,0xBB,0x48,0x61,0x01,0x85,0x29,0xC2,0xE0, +0x10,0x01,0xF2,0xF7,0x08,0x9D,0x5E,0xE1,0xDB,0x48,0x61,0x01,0x85,0x29,0xC2,0xE0, +0x10,0x01,0xFE,0xF7,0x00,0x00,0x0C,0x17,0x00,0x0C,0x17,0x19,0x0C,0x17,0x1B,0xEC, +0x17,0x00,0xA1,0xEC,0x17,0x00,0xA3,0xEC,0x17,0x00,0xA5,0xEC,0x17,0x00,0xA7,0xF8, +0x17,0x00,0xA8,0xEC,0x17,0x00,0xAC,0x1F,0x17,0x08,0xEC,0x17,0x00,0xA1,0x0F,0x17, +0x04,0x1F,0x17,0x20,0x0F,0x17,0x1C,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x00,0xD9,0x53, +0x18,0x02,0xEF,0x17,0x00,0xD9,0x85,0x29,0xC3,0x20,0x10,0x01,0xFF,0x19,0x00,0x00, +0x1E,0xF8,0x20,0x5C,0x63,0x04,0x0E,0xF8,0x1C,0x9A,0xE0,0xE4,0x00,0x00,0x29,0x0F, +0x38,0x1E,0x43,0x44,0xBC,0x8F,0x37,0x13,0x5A,0x00,0x9E,0xE1,0x1B,0x59,0x00,0x5F, +0x37,0x04,0xD4,0x79,0xFF,0x6D,0x9A,0xE1,0xEE,0xF8,0x00,0xAC,0x85,0x29,0x9C,0x38, +0x0D,0x21,0x04,0x0D,0x41,0x00,0x5D,0x43,0x00,0xE7,0xFF,0xFE,0xEA,0x88,0x6A,0xE4, +0x00,0x95,0xF0,0x0D,0x21,0x06,0x0D,0x41,0x02,0x9C,0x28,0x85,0x29,0x1C,0x21,0xE0, +0x0D,0x41,0x18,0x0D,0x61,0x14,0x0D,0x81,0x10,0x0D,0xA1,0x0C,0x0D,0xC1,0x08,0x0D, +0xE1,0x04,0x0D,0x21,0x1C,0x0E,0x01,0x00,0xC1,0xA0,0x10,0x01,0xE4,0x00,0x97,0x62, +0xC1,0x80,0x10,0x01,0xC1,0xC0,0x10,0x01,0xC1,0xE0,0x10,0x01,0x5C,0x63,0x00,0xFD, +0xAD,0x00,0xC8,0xFD,0x8C,0x08,0x1A,0xFD,0x6E,0x00,0xC0,0xFD,0x4F,0x00,0x00,0xD0, +0x60,0x23,0xFA,0xE4,0x00,0x97,0x60,0x5C,0x63,0x00,0x20,0x60,0xDC,0x0C,0x0A,0x19, +0xE4,0x00,0x97,0xEC,0xE4,0x00,0x0D,0x38,0xEC,0x6A,0x00,0xA5,0xE4,0x00,0x00,0x4B, +0x0E,0xEA,0x06,0x0A,0x0A,0x19,0x8E,0x17,0xE4,0x00,0x97,0xF0,0x18,0x70,0x00,0x0A, +0xEA,0x19,0xD2,0xEE,0x00,0x8D,0x0A,0xEA,0x19,0x9E,0xE1,0x5E,0xF7,0x04,0x0E,0xEA, +0x19,0x99,0xC0,0xE4,0x00,0x96,0x6E,0x5C,0x63,0x00,0x20,0x63,0x5A,0x0E,0xEA,0x06, +0x13,0x17,0x00,0x5F,0x0A,0x09,0x20,0x00,0x65,0x0A,0xEA,0x19,0xD2,0xE4,0x04,0x0E, +0xE4,0x00,0x97,0x18,0x0A,0xEA,0x19,0xD2,0xE0,0x04,0x4E,0xE4,0x00,0x0B,0x0B,0x13, +0x17,0x00,0x23,0x08,0x36,0x0A,0xEA,0x19,0x22,0xE9,0x96,0xE7,0xFF,0xFF,0xCB,0x13, +0x17,0x00,0x23,0x04,0x36,0x0A,0xEA,0x19,0x22,0xE5,0x56,0xE7,0xFF,0xFF,0xAB,0x13, +0x17,0x00,0x5F,0x0A,0x29,0x20,0x01,0x0B,0x13,0x17,0x00,0x5F,0x0A,0x49,0x23,0xFE, +0xEF,0x13,0x17,0x00,0x5F,0x0A,0x69,0x20,0x00,0xC3,0x13,0x17,0x00,0x5F,0x0A,0x89, +0x20,0x00,0x9F,0x13,0x17,0x00,0x5F,0x0B,0x09,0x20,0x00,0x7B,0x13,0x17,0x00,0x5F, +0x0B,0x29,0x23,0xFE,0x5F,0x13,0x17,0x00,0x5F,0x04,0x09,0x20,0x00,0x33,0x12,0xF7, +0x00,0x5E,0xE4,0x29,0x20,0x00,0x25,0x0A,0xEA,0x19,0x22,0xEE,0x18,0x98,0x61,0xE4, +0x00,0xA7,0x5E,0x9D,0xC1,0xC1,0xC4,0xE2,0x0E,0x23,0xFD,0x6B,0xE7,0xFF,0xFE,0xE9, +0x0E,0xEA,0x06,0x13,0x17,0x00,0xD3,0x00,0x27,0xD2,0x13,0x17,0x00,0x5F,0x0B,0x9B, +0x20,0x13,0xC1,0x13,0x17,0x00,0x5F,0x0A,0x49,0x07,0x00,0x80,0x20,0x00,0xA5,0x0B, +0x2A,0x19,0xD3,0x24,0x1B,0x16,0x13,0x37,0x01,0x13,0x57,0x02,0x12,0xF7,0x03,0x4F, +0x39,0x40,0x47,0x39,0xD5,0xC3,0x22,0x7F,0xEE,0x20,0x0D,0x2D,0x8F,0x19,0x1A,0xF8, +0x00,0xE4,0x00,0x06,0x87,0x13,0x37,0x00,0x5F,0x2A,0x69,0x20,0x02,0xCD,0x0B,0x2A, +0x19,0xD3,0x23,0x25,0x7E,0x13,0x57,0x01,0x13,0x37,0x02,0x4E,0xFA,0x40,0x46,0xF7, +0xCD,0xCB,0x20,0x14,0x00,0xC2,0xE2,0x80,0x0A,0x4A,0xF7,0xC8,0x8E,0xF8,0x0E,0xEA, +0x1C,0xFE,0xE0,0x08,0x00,0xEE,0xEA,0x00,0xA1,0xE4,0x00,0x00,0x1D,0xE4,0x00,0x0A, +0x3E,0x98,0x61,0xE4,0x00,0x0A,0x72,0xE4,0x00,0x93,0xE0,0x5C,0x63,0x00,0x20,0x63, +0xBC,0xEC,0x0A,0x00,0xA3,0xE4,0x00,0x94,0xE8,0xE4,0x00,0x94,0x7A,0xEB,0x0A,0x00, +0xA3,0xEA,0xEA,0x00,0xA1,0xD7,0x17,0x01,0x26,0xEA,0xEA,0x00,0xA3,0xEA,0xEA,0x00, +0xA1,0xE4,0x00,0x94,0x70,0xE4,0x00,0x94,0xDC,0xE4,0x00,0x94,0xA0,0xEC,0x0A,0x00, +0xA3,0xEC,0x0A,0x00,0xA1,0xE4,0x00,0x08,0x77,0xE4,0x00,0x93,0xCE,0x5C,0x63,0x00, +0x20,0x63,0x66,0xE4,0x00,0x93,0x22,0x5C,0x63,0x00,0x20,0x63,0x0C,0xEA,0xEA,0x00, +0xA3,0x0F,0x0A,0x1E,0x8E,0xF8,0x10,0x77,0x00,0xE4,0x00,0x92,0x9C,0xEA,0xEA,0x00, +0xA3,0x9E,0xE1,0x5E,0xF7,0x04,0xEE,0xEA,0x00,0xA3,0xE7,0xFF,0xFF,0x47,0x13,0x17, +0x00,0xD3,0x01,0x04,0x26,0x0A,0xEA,0x19,0xD2,0xE1,0x13,0xE6,0xFE,0xEA,0x00,0xB4, +0xEE,0xEA,0x00,0xB0,0x12,0xEB,0x00,0x22,0xE0,0x4A,0x9A,0xE8,0x53,0x00,0x52,0xFA, +0xEA,0x00,0xBC,0x9A,0xE8,0xE4,0x00,0x00,0x21,0x9A,0xE8,0x53,0x00,0x62,0xFA,0xEA, +0x00,0xBC,0x52,0xE0,0x80,0x1F,0x20,0x81,0xFB,0x2A,0x00,0xB4,0x13,0x2B,0x00,0xFB, +0x2A,0x00,0xB5,0xFB,0x0A,0x00,0xB6,0xF8,0x0A,0x00,0xB7,0x5E,0xF7,0x00,0xFA,0xEA, +0x00,0xB8,0xF8,0x0A,0x00,0xB9,0xF8,0x0A,0x00,0xBA,0xC2,0xE0,0x10,0x01,0xF8,0x0A, +0x00,0xBB,0xEB,0x17,0x00,0xD9,0xC7,0x18,0xFF,0xFD,0xEF,0x17,0x00,0xD9,0x12,0xEC, +0x00,0x52,0xF7,0x01,0x9B,0x01,0x1A,0xEC,0x00,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x08, +0x33,0xE4,0x00,0x04,0x07,0x13,0x17,0x00,0x23,0x09,0x4A,0x0B,0x0A,0x19,0xD3,0x02, +0x0F,0xB6,0x12,0xF7,0x01,0x22,0xE0,0x4A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x3D,0xF9, +0x18,0x17,0x00,0xE4,0x00,0x00,0x29,0x22,0xE4,0x5E,0xC2,0xF4,0x00,0x01,0x9B,0x01, +0xCA,0xF7,0x3D,0xF9,0x1B,0x17,0x00,0x12,0xF7,0x00,0xE4,0x00,0x00,0x2D,0xD2,0xE2, +0x0E,0x36,0xC3,0x14,0x00,0x01,0xCB,0x18,0x3D,0xF9,0x1A,0xF8,0x00,0x12,0xF8,0x00, +0x5E,0xF7,0x00,0x1A,0xEB,0x00,0xE4,0x00,0x03,0x5D,0x13,0x17,0x00,0x5F,0x0B,0x01, +0x20,0x00,0x31,0x13,0x17,0x00,0x5F,0x0B,0x29,0x20,0x04,0xB5,0x0B,0x0A,0x19,0x23, +0x0C,0xB6,0xC3,0x00,0x10,0x01,0x9B,0x21,0xEF,0x38,0x06,0x88,0x13,0x17,0x01,0x12, +0xF7,0x02,0x4F,0x18,0x40,0x47,0x18,0xBD,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x08,0x20, +0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0x34,0xE4,0x00,0x02,0xD9,0x0B,0x0A,0x19,0xD3, +0x04,0x0B,0x2E,0xC3,0x00,0x10,0x01,0xEF,0x18,0x06,0xFE,0x23,0x00,0x68,0xEB,0x2A, +0x00,0xA5,0xEB,0x0A,0x00,0xA7,0x43,0x19,0xC5,0xD3,0x0A,0x00,0x60,0xF3,0x0A,0x00, +0xA8,0xF8,0x0A,0x00,0xA8,0x11,0xD7,0x01,0xC1,0xA0,0x10,0x01,0x13,0x57,0x02,0xFD, +0x6D,0x07,0x00,0x13,0x17,0x03,0x4E,0xEE,0x08,0x43,0x2B,0xBC,0x9E,0xE1,0x1B,0x59, +0x00,0x8E,0xEB,0x1B,0x17,0x00,0xC2,0xE0,0x10,0x01,0x99,0x81,0xED,0x97,0x06,0xFC, +0xE4,0x00,0x06,0xA0,0xEC,0x6A,0x00,0xA7,0xF2,0xEA,0x00,0xA8,0x4D,0xCC,0x74,0x45, +0xCE,0xBD,0x5D,0xCE,0x00,0xF9,0xCA,0x00,0xA8,0xF2,0xEA,0x00,0xA8,0x56,0xF7,0x01, +0xD2,0xE0,0x07,0xA2,0xF2,0xEA,0x00,0xA8,0x56,0xF7,0x02,0xD2,0xE0,0x07,0x4A,0xF2, +0xEA,0x00,0xA8,0x56,0xF7,0x04,0xD2,0xE0,0x06,0xF2,0xF2,0xEA,0x00,0xA8,0x56,0xF7, +0x08,0xD2,0xE0,0x06,0x9A,0xF3,0x4D,0x07,0x00,0x13,0x0B,0x01,0x12,0xEB,0x02,0x4E, +0xF7,0x40,0x13,0x2B,0x03,0x4F,0x5A,0xC0,0x4F,0x18,0x80,0x47,0x1A,0xC5,0x47,0x18, +0xCD,0x47,0x18,0xBD,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x08,0x34,0x13,0x4B,0x04,0x13, +0x0B,0x05,0x12,0xEB,0x06,0x4E,0xF7,0x40,0x13,0x2B,0x07,0x4F,0x5A,0xC0,0x4F,0x18, +0x80,0x47,0x1A,0xC5,0x47,0x18,0xCD,0x47,0x18,0xBD,0xC2,0xE0,0x10,0x01,0xEF,0x17, +0x08,0x20,0xF2,0xEA,0x00,0xA8,0xF8,0x0A,0x00,0xA8,0xC2,0xE0,0x10,0x01,0xED,0x97, +0x06,0x88,0xE4,0x00,0x00,0xE5,0x13,0x17,0x00,0x5F,0x04,0x09,0x20,0x00,0x99,0x0B, +0x0A,0x19,0x23,0x0D,0x8A,0x13,0x37,0x01,0x13,0x17,0x02,0x4E,0xF9,0x40,0x46,0xF7, +0xC5,0xC2,0xEB,0x54,0xA4,0x20,0x01,0x3D,0x12,0xED,0x00,0x52,0xF7,0x03,0xE4,0x00, +0x00,0x87,0x13,0x17,0x00,0x5F,0x04,0x29,0x20,0x06,0xE1,0x0B,0x0A,0x19,0x23,0x0C, +0xDA,0x13,0x37,0x01,0x13,0x17,0x02,0x4E,0xF9,0x40,0x46,0xF7,0xC5,0xC3,0x00,0x10, +0x01,0xEE,0xF8,0x00,0xCC,0x12,0xED,0x00,0x57,0x37,0x01,0x23,0x20,0x64,0xEF,0x18, +0x00,0xCE,0x23,0x00,0x32,0x9B,0x1B,0x46,0xF7,0xC4,0xE4,0x00,0x00,0x0F,0x52,0xF7, +0x04,0x1A,0xED,0x00,0x0C,0x0A,0x00,0x0C,0x0A,0x19,0xE4,0x00,0x02,0xED,0xE4,0x00, +0x8D,0xD2,0x5C,0x63,0x00,0xD0,0x60,0x0B,0x5A,0xE4,0x00,0x8F,0x14,0xE4,0x00,0x8E, +0xD8,0x50,0x60,0x20,0xE4,0x00,0x03,0xD0,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x3D,0xF9, +0x12,0xF7,0x00,0x1A,0xEB,0x00,0x12,0xEB,0x00,0x22,0xE0,0x42,0xC2,0xE0,0x10,0x01, +0x99,0xC6,0xEE,0xF7,0x00,0xE2,0x22,0xE8,0xD8,0x12,0xEB,0x00,0x22,0xE0,0x4E,0x12, +0xED,0x00,0x56,0xF7,0x01,0x5E,0xE0,0x09,0x49,0xC4,0x43,0xE4,0x00,0x00,0x43,0x12, +0xEB,0x00,0x22,0xE4,0x2A,0x51,0xC0,0x80,0xE4,0x00,0x00,0x29,0x12,0xEB,0x00,0x22, +0xEB,0xD8,0x12,0xEB,0x00,0x22,0xEF,0xC0,0xC9,0xC0,0xFF,0xFF,0xEE,0xEA,0x00,0xAE, +0x22,0xE4,0x2E,0xED,0xCA,0x00,0xA1,0xEC,0x0A,0x00,0xAC,0xE4,0x00,0x8D,0xFC,0xEA, +0xEA,0x00,0xA1,0xD5,0xD7,0x00,0x71,0x12,0xEC,0x00,0x56,0xF7,0x01,0xD2,0xE0,0x05, +0x22,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x08,0x50,0x23,0x00,0x24,0x9F,0x1F,0xFB,0x17, +0x08,0x50,0xEC,0x0A,0x00,0xA3,0x12,0xEC,0x00,0x56,0xF7,0x01,0x22,0xE0,0x2C,0xF1, +0xAA,0x00,0xBC,0xE4,0x00,0x00,0xAD,0xE9,0xAA,0x00,0xA1,0xE4,0x00,0x00,0x9D,0x12, +0xEB,0x00,0x22,0xE0,0x42,0x12,0xEC,0x00,0x56,0xF7,0x01,0x22,0xE0,0x56,0xE4,0x00, +0x00,0x3D,0xE4,0x00,0x8B,0xDE,0x5C,0x63,0x00,0x20,0x63,0xE4,0xE7,0xFF,0xFF,0xD3, +0xEA,0xEA,0x00,0xA3,0xEF,0x0A,0x00,0xB2,0xE4,0x00,0x00,0x17,0xEA,0xEA,0x00,0xA3, +0x0F,0x0A,0x1E,0x8E,0xF8,0x10,0x77,0x00,0xE4,0x00,0x8B,0x5E,0xEA,0xEA,0x00,0xA3, +0x9E,0xE1,0x5E,0xF7,0x04,0xEE,0xEA,0x00,0xA3,0xEA,0xEA,0x00,0xA3,0xD6,0xED,0xFD, +0x96,0xE4,0x00,0x8D,0x04,0xE4,0x00,0x8C,0xC8,0xEC,0x0A,0x00,0xA1,0xEC,0x0A,0x00, +0xA3,0xE4,0x00,0x00,0x45,0x98,0x60,0x9D,0x61,0xE4,0x00,0x8A,0xFC,0xE4,0x00,0x00, +0x0D,0x99,0x60,0xD5,0xCB,0xFF,0x95,0xE4,0x00,0x8C,0xB8,0xE4,0x00,0x8C,0x7C,0xEC, +0x0A,0x00,0xA1,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x00,0xD9,0x53,0x18,0x02,0xEF,0x17, +0x00,0xD9,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0x33,0xC3,0x00,0x32,0x0A,0x20,0x00, +0x49,0x13,0x0C,0x00,0x9B,0x3E,0xEC,0x17,0x08,0x33,0x47,0x18,0xCC,0x1B,0x0C,0x00, +0x0E,0x01,0x02,0x0D,0xE1,0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E,0x0D,0x81,0x12,0x0D, +0x61,0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20,0x85,0x29,0x9C,0x38,0x0D, +0x21,0x04,0xE4,0x00,0x93,0x30,0x98,0x60,0x88,0x83,0xE4,0x00,0x90,0x62,0x98,0x61, +0x98,0x82,0xE4,0x00,0x90,0x52,0x98,0x60,0xFC,0x80,0x3E,0x0C,0xE4,0x00,0x8C,0x3E, +0x98,0x61,0xFC,0x80,0x3E,0x0C,0xE4,0x00,0x8D,0xA4,0x0D,0x21,0x06,0x9C,0x28,0xE4, +0x00,0x95,0xFB,0x20,0x64,0x1E,0xE4,0x00,0x97,0x25,0xE4,0x00,0x97,0x43,0x9C,0x38, +0x0D,0x21,0x04,0xE4,0x00,0x97,0x58,0x0D,0x21,0x06,0x9C,0x28,0xE4,0x00,0x97,0x1F, +0xE4,0x00,0x99,0x17,0xE4,0x00,0x98,0xAD,0xE4,0x00,0x99,0x77,0xE4,0x00,0x99,0xD3, +0xE4,0x00,0x9D,0xB1,0xE4,0x00,0x9B,0x1B,0xE4,0x00,0x9A,0x1F,0xE4,0x00,0x9A,0x55, +0xE4,0x00,0x9A,0x8B,0xE4,0x00,0x9A,0xAF,0xE4,0x00,0x9A,0xD3,0xE4,0x00,0x99,0x09, +0xE4,0x00,0x9B,0x01,0x20,0x60,0x28,0x20,0x64,0x3E,0xE4,0x00,0x00,0x11,0xE4,0x00, +0x9B,0x9D,0xE4,0x00,0x9B,0xB7,0x85,0x29,0xE4,0x00,0x9E,0x55,0xE4,0x00,0x9B,0xC5, +0xC2,0xE0,0x10,0x01,0xE8,0x77,0x00,0xC3,0xEB,0x17,0x00,0xC3,0xD4,0x78,0xFF,0xC6, +0x85,0x29,0x9C,0x30,0x0D,0x41,0x08,0x0D,0x61,0x04,0x0D,0x21,0x0C,0x5D,0x43,0x04, +0xE7,0xFF,0xFF,0xC0,0xC2,0xE0,0x10,0x01,0xFF,0x17,0x00,0xE6,0x89,0x77,0x0C,0x78, +0x03,0xE7,0xFF,0xFF,0x9E,0xFF,0x0B,0x00,0xE6,0x0B,0x18,0x03,0x40,0x63,0xC5,0x5F, +0x03,0x04,0xD5,0x58,0xFF,0x7D,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C, +0x21,0x10,0x85,0x29,0xE4,0x00,0x9E,0x71,0xC3,0x34,0x00,0x01,0xCA,0xF9,0x23,0xFC, +0x0A,0xF7,0x00,0xD2,0xFF,0x04,0x3C,0xC3,0x00,0x10,0x01,0xF2,0xF8,0x07,0x08,0x9E, +0xE1,0x5E,0xF7,0x00,0xFA,0xF8,0x07,0x08,0x22,0xE1,0xCA,0xC3,0x00,0x10,0x01,0xC3, +0x60,0x10,0x01,0xFF,0x18,0x03,0x72,0xCA,0xE0,0x11,0x7D,0xCB,0x39,0x22,0x00,0xFF, +0x7B,0x09,0x0C,0x1F,0x57,0xFD,0x57,0x5A,0xFF,0x4F,0x5A,0x10,0x8F,0x59,0x0B,0x9A, +0x01,0x4F,0x97,0x08,0x8F,0x9B,0xEB,0x9C,0xDD,0x3B,0x0F,0x9A,0x01,0x5F,0x57,0x00, +0x5F,0x4F,0xE9,0x57,0x57,0xFF,0x4F,0x5A,0x10,0x8F,0x59,0x0B,0x9A,0x01,0x20,0x00, +0x6D,0xFF,0xA0,0x80,0x00,0x5F,0x9C,0x04,0x47,0x9C,0xEC,0x0B,0xB8,0x01,0xC7,0xBD, +0x7F,0xFF,0x47,0x9C,0xED,0xE4,0x00,0x00,0x0F,0x0B,0x98,0x01,0x0F,0x9A,0x01,0x9E, +0xE1,0x9F,0x02,0xC2,0xE2,0x30,0x04,0x23,0xFE,0xB1,0x85,0x29,0x5C,0x63,0x04,0xE4, +0x00,0x9D,0x43,0x9A,0xE0,0x8B,0x17,0xE4,0x00,0x00,0x1D,0x43,0x23,0xBC,0x9E,0xE1, +0x13,0x39,0x00,0x8F,0x19,0xD4,0x97,0xFF,0xB4,0x40,0x60,0xC5,0x85,0x29,0x9C,0x38, +0x98,0x60,0x0D,0x21,0x04,0xE7,0xFF,0xFC,0xFC,0x98,0x61,0xE7,0xFF,0xFC,0xF0,0xC2, +0xE0,0x10,0x01,0xEE,0xF7,0x00,0xE2,0x22,0xE8,0x3A,0x50,0x60,0xC8,0xE7,0xFF,0xFD, +0xCA,0xE4,0x00,0x00,0x15,0x98,0x6F,0xE7,0xFF,0xFD,0x8A,0x0D,0x21,0x06,0x98,0x60, +0x9C,0x28,0xE7,0xFF,0xFC,0xA3,0x9C,0x38,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x04,0xEC, +0x17,0x08,0x31,0x0D,0x41,0x00,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x00,0xC0,0x23,0x00, +0x42,0xC3,0x00,0x10,0x01,0x98,0x66,0xEF,0x18,0x00,0xE2,0x23,0x08,0x78,0xF2,0xF7, +0x00,0xC0,0x50,0x60,0x80,0x22,0xE0,0x52,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x00,0xC8, +0x56,0xF7,0x01,0x5E,0xE0,0x09,0x48,0x64,0x43,0xC1,0x40,0x10,0x01,0xEA,0xEA,0x00, +0xD9,0x56,0xF7,0x02,0x22,0xE0,0x6C,0xC0,0x80,0x10,0x01,0xFC,0x84,0x07,0x0A,0xE7, +0xFF,0xEE,0x32,0xEA,0xEA,0x00,0xD9,0xC6,0xF7,0xFF,0xFD,0xEE,0xEA,0x00,0xD9,0x0D, +0x41,0x02,0x0D,0x21,0x06,0x9C,0x28,0xE7,0xFF,0xFE,0xAF,0x9C,0x30,0xC3,0x00,0x10, +0x01,0x0D,0x21,0x0C,0xFC,0x98,0x07,0x0A,0x0D,0x41,0x08,0x8A,0xE4,0x8B,0x24,0x18, +0x17,0x00,0xC3,0x00,0x10,0x01,0x9E,0xE1,0xFF,0x18,0x07,0x8C,0xD6,0xF8,0xFF,0x9E, +0x52,0xE0,0x62,0x1F,0x19,0x1F,0x1A,0xE4,0x00,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x07, +0x0B,0x18,0x17,0x00,0x9E,0xE1,0xD7,0x17,0xFF,0xDE,0x1E,0xE0,0x9E,0xC3,0x60,0x10, +0x01,0x1A,0xE4,0x1F,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x3D,0xF8,0x12,0xF7,0x00,0xFA, +0xFB,0x07,0x09,0xF2,0xFB,0x07,0x09,0x22,0xEC,0xCC,0xC2,0xE0,0x10,0x01,0xC3,0x40, +0x10,0x01,0xF3,0xB7,0x0B,0x1A,0x9B,0x00,0xC2,0xE0,0x10,0x01,0xC3,0xC0,0x10,0x01, +0xC1,0x00,0x10,0x01,0xFE,0xF7,0x07,0x2A,0xFF,0x5A,0x09,0x48,0x8B,0x38,0xFF,0xDE, +0x0C,0x96,0xFD,0x08,0x09,0x0C,0xE4,0x00,0x01,0x09,0xC3,0x80,0x10,0x01,0x9A,0xE0, +0xFF,0x9C,0x0B,0x04,0x8B,0x64,0x43,0x17,0xE4,0x0B,0x38,0x00,0x43,0x17,0xDC,0x4F, +0x59,0x42,0x1B,0x38,0x21,0x1B,0x58,0x20,0x9E,0xE2,0x5E,0xE2,0x09,0x23,0xFF,0xA5, +0x0C,0x81,0x04,0x50,0x60,0x20,0xE7,0xFF,0xFA,0xBC,0xC1,0x40,0x10,0x01,0xEA,0xEA, +0x00,0xD9,0x0C,0x81,0x06,0x56,0xF7,0x02,0x22,0xE1,0x74,0xE4,0x00,0x00,0x8F,0xF3, +0x9B,0x07,0x09,0x23,0x84,0x34,0x23,0x88,0x68,0x43,0x98,0x44,0xE4,0x00,0x00,0x0F, +0x43,0x98,0xF4,0x15,0x5C,0x01,0x19,0x57,0x00,0x0B,0x9C,0x01,0xE4,0x00,0x00,0x21, +0x0F,0x9A,0x02,0x4D,0x5C,0x82,0x4F,0x9C,0x42,0x19,0x57,0x00,0x1B,0x97,0x01,0x9F, +0x21,0x9F,0x02,0x5F,0x39,0x04,0x9E,0xE2,0x9F,0x44,0xD7,0xB9,0xFE,0x2D,0xE7,0xFF, +0xFF,0x45,0x50,0x60,0x80,0xE7,0xFF,0xEB,0xC6,0xEA,0xEA,0x00,0xD9,0xC6,0xF7,0xFF, +0xFD,0xEE,0xEA,0x00,0xD9,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0xE7,0xFF, +0xFC,0x41,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xF0,0x77,0x0B,0x90,0xC3,0x20, +0x10,0x01,0xC2,0xE0,0x10,0x01,0xFF,0x18,0x0B,0xA2,0xFE,0xF7,0x07,0x90,0xFF,0x39, +0x07,0x98,0x9B,0x60,0x98,0x81,0xE4,0x00,0x01,0x7D,0x0B,0x57,0x01,0xC3,0x4F,0xFF, +0xE0,0x20,0x00,0x35,0x0B,0x57,0x03,0xC3,0x4F,0xFF,0xE4,0x20,0x00,0x49,0x0B,0x58, +0x01,0x18,0x19,0x00,0x0F,0x57,0x01,0x0B,0x58,0x03,0x0F,0x57,0x03,0x13,0x59,0x00, +0x23,0x41,0x22,0x0B,0x98,0x03,0x0B,0x57,0x03,0x43,0x5C,0xD5,0x5F,0x5A,0x06,0x4F, +0xDA,0xFA,0x0B,0xB8,0x01,0x47,0x5E,0xD6,0x09,0x17,0x01,0x43,0x5A,0xF5,0x41,0x1D, +0x45,0x5D,0x08,0x06,0x4F,0xC8,0xFA,0x45,0x1E,0x46,0x43,0xC8,0xF5,0x8F,0xDA,0x5F, +0xCC,0x99,0x20,0x00,0x25,0x5F,0x46,0x51,0x20,0x01,0x11,0x18,0x99,0x00,0x0F,0xB7, +0x01,0x0F,0x97,0x03,0xE4,0x00,0x00,0x71,0x0B,0x98,0x01,0x0B,0xD7,0x01,0x43,0xDC, +0xF5,0x5F,0xDE,0x06,0x4F,0xBE,0xFA,0x47,0xDD,0xF6,0x0B,0x58,0x03,0x41,0x1E,0xED, +0x0B,0xD7,0x03,0x43,0xDA,0xF5,0x5F,0xDE,0x06,0x4F,0xBE,0xFA,0x47,0xDD,0xF6,0x43, +0xBD,0xF5,0xD7,0xA8,0x00,0x52,0x0F,0x97,0x01,0x0F,0x57,0x03,0x0B,0x57,0x01,0x9F, +0x61,0x0F,0x58,0x01,0x5F,0x7B,0x00,0x0B,0x57,0x03,0x9F,0x21,0x0F,0x58,0x03,0x9E, +0xE4,0x1F,0x18,0x30,0xD7,0x63,0xFA,0x36,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17, +0x3D,0xF9,0x1C,0x21,0xD8,0xCA,0xF7,0x3D,0xF8,0x0D,0x41,0x20,0x0D,0x61,0x1C,0x0D, +0x81,0x18,0x0D,0xA1,0x14,0x0D,0xC1,0x10,0x0D,0xE1,0x0C,0x0E,0x01,0x08,0x0E,0x21, +0x04,0x0D,0x21,0x24,0xC1,0x80,0x10,0x01,0xFD,0x8C,0x08,0x86,0x0A,0x2C,0x01,0xC6, +0x31,0x7F,0xFF,0x0E,0x2C,0x01,0x13,0x38,0x00,0xC3,0x00,0x10,0x01,0xFB,0x38,0x00, +0xC0,0x13,0x37,0x00,0xC2,0xE0,0x10,0x01,0xFB,0x37,0x07,0x09,0xC1,0xE0,0x10,0x01, +0xC1,0xC0,0x10,0x01,0xC3,0x60,0x10,0x01,0xC3,0x40,0x10,0x01,0x5D,0xA3,0x00,0xFD, +0xEF,0x09,0x0C,0xFD,0xCE,0x07,0x8C,0xFE,0x00,0x80,0x00,0xFD,0x5B,0x07,0x0A,0xFD, +0x7A,0x0B,0x90,0xD1,0xA1,0x12,0x8E,0x0B,0x2B,0x16,0x0A,0xEB,0x18,0x46,0x11,0x85, +0x0E,0xEB,0x17,0x0E,0x0C,0x01,0x0F,0x2B,0x19,0x13,0x0B,0x00,0xD3,0x01,0x1F,0x79, +0x0B,0x6B,0x46,0x0B,0x0B,0x48,0x0F,0x6B,0x49,0x0F,0x0B,0x47,0xD7,0x17,0x1F,0x4C, +0x0E,0xEB,0x47,0x0F,0x0B,0x17,0x0F,0x2B,0x49,0x0F,0x6B,0x19,0xE4,0x00,0x07,0xB3, +0xC2,0xE0,0x10,0x01,0x5F,0x98,0x04,0xEA,0xF7,0x0B,0x21,0x5F,0x17,0x15,0x4A,0xFC, +0xB8,0x0E,0xEB,0x13,0xCF,0x39,0x00,0x30,0x9A,0xE0,0x8F,0x2B,0x0B,0x19,0x18,0x27, +0x1C,0x50,0xC2,0xE0,0x10,0x01,0x5F,0x38,0x04,0xEA,0xF7,0x0B,0x23,0x5F,0x17,0x15, +0x4A,0xF9,0xB8,0x0E,0xEB,0x15,0xCE,0xFB,0x00,0x30,0x8E,0xEB,0x0B,0x17,0x16,0x9A, +0xE0,0x27,0x1C,0x50,0xC2,0xE0,0x10,0x01,0x5F,0x38,0x04,0xEA,0xF7,0x0B,0x21,0x5F, +0x17,0x15,0x4A,0xF9,0xB8,0x0E,0xEB,0x43,0xCF,0x7B,0x00,0x30,0x9A,0xE0,0x8F,0x6B, +0x0B,0x1B,0x18,0x27,0x1C,0x50,0xC2,0xE0,0x10,0x01,0x5F,0x38,0x04,0xEA,0xF7,0x0B, +0x23,0x5F,0x17,0x15,0x4A,0xF9,0xB8,0x0E,0xEB,0x45,0xE4,0x00,0x00,0x63,0xC3,0x00, +0x10,0x01,0x5F,0x77,0x04,0xEB,0x18,0x0B,0x21,0x5E,0xF8,0x15,0x4B,0x1B,0xC0,0x0F, +0x0B,0x13,0x9A,0xE0,0x27,0x3C,0x50,0xC2,0xE0,0x10,0x01,0x5F,0x19,0x04,0xEA,0xF7, +0x0B,0x23,0x5F,0x37,0x15,0x4A,0xF8,0xB8,0x0E,0xEB,0x15,0xE7,0xFF,0xFB,0x6E,0x12, +0xEB,0x00,0x26,0xE4,0x7D,0x0B,0x2B,0x43,0x0B,0x0B,0x13,0x43,0x19,0xC5,0x0B,0x2B, +0x45,0x0F,0x0B,0x1B,0x0B,0x0B,0x15,0x43,0x19,0xC5,0x0F,0x0B,0x1D,0xE4,0x00,0x00, +0x15,0x0C,0x0B,0x1B,0x0C,0x0B,0x1D,0xC3,0x00,0x10,0x01,0xF3,0x18,0x00,0xC0,0x23, +0x01,0x9E,0x53,0x00,0x52,0x0B,0x2B,0x13,0x1B,0x0A,0x00,0x4F,0x79,0x41,0x0B,0x0B, +0x15,0x4F,0x7B,0x20,0x4F,0x58,0x41,0x1B,0x2A,0x02,0x57,0x5A,0x0F,0x1B,0x0A,0x03, +0x47,0x5B,0xD5,0x1B,0x4A,0x01,0x26,0xE4,0xA1,0x0B,0x0B,0x1A,0x0A,0xEB,0x1C,0x4F, +0x38,0x42,0x4F,0x57,0x42,0x5F,0x39,0x04,0x57,0x5A,0x0F,0x4F,0x39,0x20,0x1B,0x0A, +0x05,0x47,0x39,0xD5,0x1A,0xEA,0x06,0x1B,0x2A,0x04,0xE4,0x00,0x00,0x1B,0x18,0x0A, +0x04,0x18,0x0A,0x05,0x18,0x0A,0x06,0x88,0x6A,0x98,0x87,0xE7,0xFF,0xF6,0x50,0x18, +0x6A,0x07,0xE4,0x00,0x01,0x8B,0x8B,0x0A,0x18,0x18,0x00,0xC3,0x20,0x10,0x01,0x9F, +0x01,0xFF,0x39,0x07,0x8C,0xD7,0x19,0xFF,0x9E,0x53,0x00,0x62,0x1B,0x0A,0x00,0x0B, +0x0B,0x13,0x4F,0x38,0x41,0x1B,0x0A,0x02,0x0B,0x0B,0x15,0x1B,0x2A,0x01,0x1B,0x0A, +0x04,0x4F,0x38,0x41,0x57,0x17,0x01,0x4E,0xF7,0x20,0x53,0x18,0x20,0x52,0xF7,0x02, +0x1B,0x0A,0x11,0x1A,0xEA,0x12,0x0A,0xEB,0x1A,0x4F,0x17,0x42,0x1A,0xEA,0x0E,0x1B, +0x0A,0x0D,0x0A,0xEB,0x1C,0x4F,0x17,0x42,0x1B,0x2A,0x03,0x1B,0x0A,0x0F,0x1A,0xEA, +0x10,0x88,0x6A,0x50,0x80,0x1F,0xE7,0xFF,0xF5,0x7A,0xC2,0xE0,0x10,0x01,0xC3,0x20, +0x10,0x01,0xC3,0x80,0x10,0x01,0x18,0x6A,0x1F,0xFE,0xF7,0x07,0x2A,0xFF,0x39,0x09, +0x48,0x9B,0x00,0xC3,0x60,0x10,0x01,0xFF,0x9C,0x0C,0x96,0xF3,0x5B,0x07,0x09,0x23, +0x44,0x34,0x23,0x48,0x68,0x43,0x58,0x7C,0xE4,0x00,0x00,0x0F,0x43,0x58,0xE4,0x17, +0xBA,0x01,0x1B,0xB7,0x00,0x0B,0x5A,0x01,0xE4,0x00,0x00,0x21,0x0F,0x59,0x02,0x4F, +0xBA,0x82,0x4F,0x5A,0x42,0x1B,0xB7,0x00,0x1B,0x57,0x01,0x9F,0x02,0x9E,0xE2,0x9F, +0x24,0x5F,0x07,0x49,0x23,0xFF,0x1D,0x0A,0xEC,0x00,0xD2,0xFF,0x0F,0x6C,0x9A,0xE1, +0xE4,0x00,0x02,0xF5,0xD1,0xA0,0x05,0x66,0xFE,0xE0,0x7F,0xFF,0xC3,0x20,0x10,0x01, +0xC3,0x40,0x10,0x01,0xEE,0xF9,0x07,0x91,0xF8,0x1A,0x07,0x98,0xFF,0x39,0x07,0x90, +0xFF,0x5A,0x07,0x98,0x0E,0xF9,0x03,0x0E,0xF9,0x05,0x0E,0xF9,0x07,0x18,0x1A,0x01, +0xF2,0xF8,0x00,0xC0,0x22,0xE0,0xB2,0x52,0xE0,0x52,0x1A,0xEA,0x00,0x9A,0xFF,0x88, +0x6A,0x1A,0xEA,0x01,0x1A,0xEA,0x02,0x1A,0xEA,0x03,0x1A,0xEA,0x04,0x1A,0xEA,0x05, +0x1A,0xEA,0x06,0x98,0x87,0xE7,0xFF,0xF3,0xFC,0x18,0x6A,0x07,0xE4,0x00,0x00,0x89, +0x8A,0xEA,0x18,0x17,0x00,0xC3,0x00,0x10,0x01,0x9E,0xE1,0xFF,0x18,0x07,0x8C,0xD6, +0xF8,0xFF,0x9E,0x52,0xE0,0x62,0x9B,0x1F,0x1A,0xEA,0x00,0xC2,0xE0,0x10,0x01,0xFE, +0xF7,0x07,0x0B,0x1B,0x17,0x00,0xC3,0x20,0x10,0x01,0x9E,0xE1,0xFF,0x39,0x07,0x29, +0xD6,0xF9,0xFF,0x9E,0x88,0x6A,0x50,0x80,0x1F,0xE7,0xFF,0xF3,0x74,0x18,0x6A,0x1F, +0x0A,0xEC,0x01,0x0C,0x0E,0x00,0x46,0x10,0xBD,0x0E,0x0C,0x01,0xE4,0x00,0x02,0x77, +0xD1,0xA2,0x06,0x8E,0xF2,0xF8,0x00,0xC0,0x22,0xE0,0xD2,0x52,0xE0,0x52,0xC3,0x00, +0x10,0x01,0x1A,0xEA,0x00,0xEB,0x18,0x08,0x31,0x9A,0xFF,0x1B,0x0A,0x05,0x1A,0xEA, +0x01,0x1A,0xEA,0x02,0x1A,0xEA,0x03,0x1A,0xEA,0x04,0x1A,0xEA,0x06,0x88,0x6A,0x98, +0x87,0xE7,0xFF,0xF2,0xE4,0x18,0x6A,0x07,0xE4,0x00,0x01,0x15,0x8A,0xEA,0x18,0x17, +0x00,0xC3,0x00,0x10,0x01,0x9E,0xE1,0xFF,0x18,0x07,0x8C,0xD6,0xF8,0xFF,0x9E,0x52, +0xE0,0x62,0x1A,0xEA,0x00,0x0A,0xEB,0x13,0x4F,0x17,0x41,0x1A,0xEA,0x02,0x1B,0x0A, +0x01,0x0A,0xEB,0x15,0x4F,0x17,0x41,0x1A,0xEA,0x04,0x1B,0x0A,0x03,0x12,0xEB,0x00, +0x57,0x17,0x01,0x4E,0xF7,0x20,0x53,0x18,0x20,0x52,0xF7,0x02,0x1B,0x0A,0x11,0x1A, +0xEA,0x12,0x0A,0xEB,0x1A,0x4F,0x17,0x42,0x1A,0xEA,0x0E,0x1B,0x0A,0x0D,0x0A,0xEB, +0x1C,0x4F,0x17,0x42,0x1A,0xEA,0x10,0x1B,0x0A,0x0F,0x88,0x6A,0x50,0x80,0x1F,0xE7, +0xFF,0xF2,0x08,0x9A,0xE0,0x18,0x6A,0x1F,0x43,0x17,0x7C,0x0B,0x38,0x00,0x43,0x17, +0x54,0x4F,0x59,0x42,0x1B,0x38,0x21,0x1B,0x58,0x20,0x9E,0xE2,0x5E,0xE7,0x49,0x23, +0xFF,0xA5,0x46,0x11,0x85,0x9A,0xE2,0x0E,0x0C,0x01,0x0E,0xEE,0x00,0xE4,0x00,0x00, +0xD5,0x21,0xAD,0x9A,0x1E,0xE0,0xA7,0x1A,0xEA,0x00,0x9A,0xE6,0x1A,0xEA,0x02,0x52, +0xE0,0x50,0x1A,0xEA,0x03,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x31,0x46,0x11,0x85, +0x18,0x0A,0x01,0x0E,0x0C,0x01,0x1A,0xEA,0x04,0x88,0x6A,0x98,0x85,0xE7,0xFF,0xF1, +0x4C,0x0D,0xAE,0x00,0x18,0x6A,0x05,0xE4,0x00,0x00,0x61,0x9B,0x00,0xD2,0xFF,0xE6, +0x10,0xE7,0xFF,0xF9,0x5B,0x0A,0xEB,0x46,0x0B,0x0B,0x16,0x5E,0xF8,0x15,0x4B,0x21, +0x01,0xCE,0xF9,0x00,0x30,0x8E,0xEB,0x4B,0x60,0x0A,0x0B,0x17,0x16,0x9A,0xE0,0xD3, +0x1F,0xE0,0x8C,0xE7,0xFF,0xF8,0x3D,0x0E,0x21,0x06,0x0E,0x01,0x0A,0x0D,0xE1,0x0E, +0x0D,0xC1,0x12,0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D, +0x21,0x26,0x1C,0x21,0x28,0x85,0x29,0x1C,0x21,0xD0,0x0D,0x41,0x28,0x0D,0x81,0x20, +0x5D,0x43,0x00,0x5D,0x84,0x00,0x42,0xEC,0x55,0x9E,0xE1,0x5E,0xF7,0x00,0x57,0x17, +0x03,0x4E,0xF7,0x11,0x5F,0x00,0x09,0x0D,0x61,0x24,0x0D,0xA1,0x1C,0x0D,0xC1,0x18, +0x49,0xA1,0x01,0x0D,0x21,0x2C,0x8D,0xB7,0xC1,0xD8,0x00,0x21,0xE4,0x00,0x60,0xE2, +0x99,0x60,0xFD,0xCE,0xBA,0xA7,0xE4,0x00,0x00,0xE3,0x88,0x61,0x50,0x80,0x22,0x50, +0xA0,0x18,0xE7,0xFF,0xB9,0xDC,0x9A,0xE4,0x43,0x0E,0x54,0x13,0x58,0x00,0x1F,0x01, +0x18,0x4F,0x3A,0x09,0x57,0x5A,0x01,0x8F,0x19,0x17,0x18,0xE8,0x5F,0x40,0x01,0x4B, +0x50,0x7B,0x47,0x5A,0xC4,0x5F,0x17,0x02,0x20,0x00,0x25,0x4F,0x17,0x20,0x5F,0x18, +0x02,0x1F,0x61,0x18,0x47,0x18,0xD5,0x8F,0x3B,0x1B,0x19,0xE8,0x9D,0x41,0x5D,0x4A, +0x00,0xD5,0x4C,0x00,0xE1,0x06,0xE0,0x81,0xCC,0x6B,0x00,0x18,0x88,0x81,0x8C,0x77, +0x50,0xA0,0x18,0x9D,0x61,0xE7,0xFF,0xBA,0x16,0xE4,0x00,0x00,0x1D,0x9E,0xE1,0xD2, +0xE8,0xFD,0x4E,0xE7,0xFF,0xFF,0xC5,0x5E,0xEB,0x00,0xD5,0xB7,0xFC,0x85,0xE4,0x00, +0x60,0x04,0x0D,0x21,0x2E,0x0D,0xC1,0x1A,0x0D,0xA1,0x1E,0x0D,0x81,0x22,0x0D,0x61, +0x26,0x0D,0x41,0x2A,0x1C,0x21,0x30,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x03, +0x2E,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x07,0xE6,0x85,0x29,0x1C,0x21,0xD0, +0x0D,0x21,0x2C,0x0D,0x41,0x28,0x0D,0x61,0x24,0xD0,0x69,0x0C,0x95,0x4F,0x03,0x10, +0xC2,0xF8,0x00,0x21,0xC1,0x78,0x00,0x21,0xFE,0xF7,0xBA,0x40,0xFD,0x6B,0xBA,0xA7, +0x8E,0xF8,0x0E,0xF7,0x02,0x86,0xE9,0x1C,0x83,0x01,0xCC,0x63,0x00,0x1A,0xCC,0x84, +0x00,0x1A,0x9C,0x9F,0xE7,0xFF,0xFD,0xC6,0xE4,0x00,0x02,0xC7,0x0C,0x61,0x04,0xE4, +0x00,0x5E,0xFC,0x0C,0x61,0x06,0x99,0x40,0x9C,0x7E,0x5C,0x63,0x00,0xCC,0x63,0x00, +0x1A,0x8D,0x63,0x1C,0x61,0x08,0x50,0x80,0x22,0x50,0xA0,0x18,0xE7,0xFF,0xB7,0xE8, +0x8B,0x2A,0x9A,0xE4,0x5F,0x23,0x39,0x20,0x00,0xDD,0x43,0x0B,0xCC,0x13,0x98,0x00, +0x4F,0x7C,0x09,0x57,0x9C,0x01,0x5F,0x80,0x01,0x4B,0x50,0x7B,0x1F,0x01,0x20,0x8F, +0x1B,0x17,0x18,0xE8,0x47,0x1A,0xC4,0x5F,0x57,0x02,0x20,0x00,0x25,0x4F,0x57,0x20, +0x5F,0x5A,0x02,0x1F,0x81,0x20,0x47,0x5A,0xC5,0x8F,0x7C,0x1B,0x5B,0xE8,0x9F,0x21, +0x9E,0xE1,0xD2,0xE8,0xFE,0x16,0x06,0xE0,0x81,0xCC,0x6A,0x00,0x06,0x1C,0x81,0x08, +0x8C,0x77,0x50,0xA0,0x18,0xE7,0xFF,0xB8,0x16,0x9D,0x44,0x5D,0x43,0x89,0x23,0xFE, +0x55,0xE4,0x00,0x01,0xAD,0xE4,0x00,0x5D,0xF0,0x1C,0x61,0x08,0x50,0x80,0x22,0x50, +0xA0,0x18,0xE7,0xFF,0xB6,0xFC,0xC3,0x78,0x00,0x21,0x9A,0xE4,0xFF,0x7B,0xBA,0xA4, +0xD2,0xE7,0x01,0xC2,0x43,0x1B,0xBC,0x13,0x58,0xFC,0x1F,0x01,0x20,0x4F,0x3A,0x09, +0x57,0x5A,0x01,0x8F,0x19,0x17,0x18,0xE8,0x5F,0x40,0x01,0x4B,0x50,0x7B,0x47,0x5A, +0xC4,0x5F,0x17,0x02,0x20,0x00,0x25,0x4F,0x17,0x20,0x5F,0x18,0x02,0x1F,0x81,0x20, +0x47,0x18,0xD5,0x8F,0x3C,0x1B,0x19,0xE8,0x9E,0xE1,0xD2,0xE8,0xFE,0x36,0xE4,0x00, +0x00,0xD9,0xE4,0x00,0x5D,0x36,0x1C,0x61,0x08,0x50,0x80,0x22,0x50,0xA0,0x18,0xE7, +0xFF,0xB6,0x42,0x8B,0x0B,0xE4,0x00,0x00,0x9F,0x43,0x38,0xBC,0x13,0x79,0xFC,0x1F, +0x21,0x20,0x4F,0x5B,0x09,0x57,0x7B,0x01,0x8F,0x3A,0x13,0x39,0xE8,0x5F,0x60,0x01, +0x4B,0x70,0x7B,0x47,0x7B,0xCC,0x5F,0x37,0x02,0x5F,0x7B,0x02,0x20,0x00,0x25,0x4F, +0x37,0x20,0x5F,0x39,0x02,0x1F,0x81,0x20,0x47,0x39,0xDD,0x8F,0x5C,0x1B,0x3A,0xE8, +0x9E,0xE1,0xD2,0xE8,0xFE,0x3E,0xC2,0xF8,0x00,0x21,0x9F,0x04,0xFE,0xF7,0xBA,0xBF, +0xD7,0x17,0x00,0x52,0x9A,0xE4,0xE7,0xFF,0xFF,0x67,0x04,0x60,0x81,0x1C,0x81,0x08, +0x50,0xA0,0x18,0xE7,0xFF,0xB6,0x5A,0xE4,0x00,0x5C,0x72,0x0D,0x61,0x26,0x0D,0x41, +0x2A,0x0D,0x21,0x2E,0x1C,0x21,0x30,0x85,0x29,0x1C,0x21,0xE8,0x0D,0x41,0x10,0x0D, +0x21,0x14,0x0D,0x61,0x0C,0x0D,0x81,0x08,0x0D,0xA1,0x04,0x89,0x43,0xD0,0x67,0x06, +0x3A,0xD0,0x67,0x00,0x65,0xD0,0x61,0x0B,0x1D,0xE4,0x00,0x00,0x19,0xD0,0x69,0x0A, +0xDE,0xE4,0x00,0x02,0x19,0xC1,0xA0,0x10,0x01,0xCD,0x63,0x00,0x1A,0xFD,0xAD,0x07, +0xE8,0x99,0x80,0x8D,0x6D,0x13,0x4B,0x01,0x13,0x2B,0x00,0x13,0x0B,0x03,0x12,0xEB, +0x02,0x4C,0x9A,0xC0,0x4C,0xB8,0xC0,0x4F,0x5A,0x80,0x4F,0x18,0x80,0x8C,0x9A,0x8C, +0xB8,0x8C,0x99,0x8C,0xB7,0x4F,0x39,0x40,0x4E,0xF7,0x40,0x88,0x6C,0x8C,0x99,0x8C, +0xB7,0x9D,0x81,0xE4,0x00,0x5D,0xD8,0x5D,0x8C,0x00,0x9D,0x64,0xD1,0x86,0xFE,0x4E, +0x98,0x66,0x98,0x80,0x98,0xA0,0xCD,0x4A,0x00,0x1A,0x8D,0x4D,0x10,0xCA,0x18,0xE4, +0x00,0x5E,0x08,0x98,0x66,0x98,0x80,0x98,0xA1,0x10,0xCA,0x18,0xE4,0x00,0x5D,0xEE, +0x98,0x66,0x98,0x81,0x98,0xA0,0x10,0xCA,0x19,0xE4,0x00,0x5D,0xD4,0x98,0x66,0x98, +0x81,0x98,0xA1,0x10,0xCA,0x19,0xE4,0x00,0x5D,0xBA,0x98,0x66,0x98,0x82,0x98,0xA0, +0x98,0xC0,0xE4,0x00,0x5D,0xA2,0x98,0x66,0x98,0x82,0x98,0xA1,0x98,0xC0,0xE4,0x00, +0x5D,0x8A,0x98,0x66,0x98,0x83,0x98,0xA0,0x98,0xC0,0xE4,0x00,0x5D,0x72,0x98,0x66, +0xE4,0x00,0x00,0x83,0xC1,0xA0,0x10,0x01,0x99,0x40,0xFD,0xAD,0x08,0x06,0x5D,0x8A, +0x00,0x41,0x6A,0x6C,0x98,0x60,0x88,0x8C,0x98,0xA0,0x10,0xCB,0x00,0xE4,0x00,0x5D, +0x2C,0x98,0x60,0x88,0x8C,0x98,0xA1,0x10,0xCB,0x00,0x9D,0x41,0xE4,0x00,0x5D,0x0E, +0x21,0x4F,0x7A,0x98,0x60,0x98,0x83,0x98,0xA0,0x98,0xC0,0xE4,0x00,0x5C,0xF0,0x98, +0x60,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16, +0x98,0x83,0x98,0xA1,0x98,0xC0,0x1C,0x21,0x18,0xE4,0x00,0x5C,0xB5,0xC3,0x00,0x10, +0x01,0x0D,0xA1,0x06,0xFE,0xF8,0x08,0x02,0xF3,0x38,0x08,0x02,0x13,0x57,0x01,0x13, +0x17,0x03,0x4C,0x9A,0xC0,0x12,0xF7,0x02,0x4C,0xB8,0xC0,0x4F,0x5A,0x80,0x4F,0x18, +0x80,0x8C,0x9A,0x8C,0xB8,0x8C,0x99,0x8C,0xB7,0x4F,0x39,0x40,0x4E,0xF7,0x40,0x0D, +0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x98,0x60,0x8C,0x99,0x8C, +0xB7,0x1C,0x21,0x18,0xE4,0x00,0x5B,0xB7,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61, +0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18,0x85,0x29,0x1C,0x21,0xE0,0x0D, +0xC1,0x08,0x0D,0x21,0x1C,0x0D,0x41,0x18,0x0D,0x61,0x14,0x0D,0x81,0x10,0x0D,0xA1, +0x0C,0x0D,0xE1,0x04,0x89,0xC4,0xD0,0x66,0x00,0xB5,0xC2,0xF8,0x00,0x21,0xFE,0xF7, +0xBA,0x68,0x4C,0x63,0x10,0x8C,0x77,0x0E,0xE3,0x02,0x86,0xE9,0x99,0xED,0xC9,0x80, +0x3E,0x0C,0xE4,0x00,0x01,0xC9,0xD0,0x81,0x04,0x41,0x1E,0xE4,0xFE,0xD2,0xE1,0x04, +0x89,0x5C,0x80,0xE1,0xCA,0xE0,0x3E,0x0C,0xC9,0x80,0x10,0x06,0x49,0xE1,0x6B,0x49, +0x8C,0xB8,0x99,0xA2,0x99,0x41,0x99,0x60,0x48,0x60,0x1A,0xE4,0x00,0x01,0x87,0xD0, +0x81,0x04,0x09,0x1E,0xE4,0xFE,0xD2,0xE1,0x04,0x51,0x5C,0x80,0xE1,0xCA,0xE0,0x3E, +0x0C,0xC9,0x80,0x10,0x06,0x99,0xA0,0x49,0xE1,0x6B,0x49,0x8C,0xB8,0x89,0x4D,0x99, +0x60,0x48,0x61,0x1B,0xE4,0x00,0x01,0x35,0x24,0x85,0xE9,0x5C,0x80,0xE1,0xCA,0xE0, +0x3E,0x0C,0xC9,0x80,0x08,0x03,0x49,0xE1,0x6B,0x49,0x8C,0xB8,0xE4,0x00,0x00,0xD9, +0x24,0x85,0xC1,0x5C,0x80,0xE1,0xCA,0xE0,0x3E,0x0C,0xC9,0x80,0x10,0x06,0x49,0xE1, +0x6B,0x49,0x8C,0xB8,0xE4,0x00,0x00,0xC5,0x99,0xE1,0xE4,0x00,0x00,0x95,0x99,0xE7, +0xC9,0x80,0x3E,0x0C,0x99,0xA2,0x99,0x41,0x99,0x60,0xE4,0x00,0x00,0x21,0x99,0xE7, +0xC9,0x80,0x3E,0x0C,0x99,0xA2,0x99,0x41,0x99,0x63,0x98,0x60,0xE4,0x00,0x00,0x85, +0x99,0xA0,0x99,0xE7,0xC9,0x80,0x3E,0x0C,0x89,0x4D,0x99,0x60,0xE4,0x00,0x00,0x21, +0x99,0xA0,0x99,0xE7,0xC9,0x80,0x3E,0x0C,0x89,0x4D,0x99,0x63,0x98,0x61,0xE4,0x00, +0x00,0x41,0x99,0xE7,0xC9,0x80,0x08,0x03,0x99,0xA0,0x89,0x4D,0xE4,0x00,0x00,0x1D, +0x99,0xE7,0xC9,0x80,0x10,0x06,0x99,0xA2,0x99,0x41,0x99,0x60,0x98,0x63,0xE7,0xFF, +0x7E,0x28,0x88,0x6A,0x88,0x8D,0xE4,0x00,0x73,0x4A,0x88,0x6A,0x88,0x8C,0xE4,0x00, +0x5A,0x6A,0x21,0xA0,0x3E,0x88,0x6A,0x88,0x8C,0xE4,0x00,0x6F,0x24,0xE4,0x00,0x00, +0x1F,0x21,0xA0,0x2C,0x88,0x6A,0x88,0x8C,0xE4,0x00,0x70,0x80,0x88,0x6A,0x05,0x80, +0xFF,0xC9,0x8C,0xFF,0xFF,0x88,0x8C,0xE4,0x00,0x5C,0xF0,0x88,0x8C,0x88,0x6A,0xE4, +0x00,0x5A,0x78,0x98,0x62,0xE4,0x00,0x57,0xF8,0xC2,0xE0,0x10,0x01,0x98,0x60,0xEC, +0x17,0x07,0xDC,0xC1,0xA0,0x10,0x01,0xEC,0x0D,0x07,0xE0,0xE4,0x00,0x64,0x34,0x98, +0x60,0xE4,0x00,0x5C,0x34,0x98,0x60,0x88,0x8C,0xE4,0x00,0x5B,0x24,0x88,0x6F,0xE4, +0x00,0x57,0x50,0x98,0x60,0xE4,0x00,0x5D,0x74,0x21,0x64,0x5E,0xED,0x6D,0x07,0xE0, +0x98,0x61,0xE4,0x00,0x63,0xE6,0x98,0x63,0xE4,0x00,0x5B,0xE6,0xE4,0x00,0x00,0x2B, +0x21,0x6C,0x46,0x98,0x61,0x88,0x8C,0xE4,0x00,0x5A,0xC8,0x98,0x61,0xE4,0x00,0x5D, +0x24,0xE4,0x00,0x61,0x08,0x1C,0x63,0x13,0x5C,0x83,0x00,0x88,0x6A,0x5C,0x82,0x93, +0x20,0x00,0x1B,0x50,0x80,0x14,0xE4,0x00,0x5E,0x26,0x88,0x6A,0x98,0x8C,0xE4,0x00, +0x5D,0x48,0xC2,0xE0,0x10,0x01,0x88,0x6E,0xED,0xD7,0x07,0xE4,0xE7,0xFF,0xF5,0xA2, +0x88,0x6E,0x0D,0xE1,0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E,0x0D,0x81,0x12,0x0D,0x61, +0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20,0xE7,0xFF,0xF8,0xBF,0xC2,0xE0, +0x10,0x01,0x9C,0x38,0xEC,0x77,0x03,0x2C,0x0D,0x41,0x00,0x0D,0x21,0x04,0x89,0x43, +0xE7,0xFF,0xFB,0xB8,0x25,0x44,0xD3,0x99,0x40,0x88,0x6A,0x98,0x80,0x9D,0x41,0xE4, +0x00,0x63,0x26,0x5D,0x4A,0x00,0xD1,0x44,0xFF,0x9E,0xE7,0xFF,0xE1,0xEC,0xC2,0xE0, +0x10,0x01,0xFE,0xF7,0x00,0xE6,0x0C,0x77,0x0B,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x06, +0x87,0x53,0x18,0x20,0xEF,0x17,0x06,0x87,0x0D,0x41,0x02,0x0D,0x21,0x06,0x9C,0x28, +0x85,0x29,0x1C,0x21,0xD8,0xC2,0xE0,0x10,0x01,0x0D,0x41,0x20,0x0D,0xC1,0x10,0xEE, +0xF7,0x00,0xE2,0x0D,0x21,0x24,0x0D,0x61,0x1C,0x0D,0x81,0x18,0x0D,0xA1,0x14,0x0D, +0xE1,0x0C,0x0E,0x01,0x08,0x0E,0x21,0x04,0x0E,0x41,0x00,0x5E,0xE0,0x41,0x89,0x43, +0x49,0xC1,0x01,0x24,0x64,0x59,0x1E,0xE3,0xFE,0xD2,0xE1,0x04,0x11,0xD0,0x67,0x04, +0x2A,0xD0,0x69,0x04,0x3A,0xE4,0x00,0x00,0xED,0x51,0x60,0x1A,0x9A,0xE0,0x20,0x60, +0x5C,0x9A,0xE0,0xD1,0x45,0x00,0x92,0x9A,0xE1,0x21,0x44,0x30,0x21,0x4C,0x24,0xD1, +0x46,0x00,0x32,0x9A,0xE0,0xCE,0xF7,0x00,0x34,0xC1,0xE0,0x10,0x01,0xC2,0x00,0x10, +0x01,0xFD,0xEF,0x08,0xD8,0xFE,0x10,0x07,0xA8,0x99,0x80,0xC2,0x40,0x10,0x01,0x8D, +0xF7,0x8E,0x17,0x89,0xAC,0x1E,0x2A,0xFE,0xFE,0x52,0x08,0x4A,0x88,0x6D,0x98,0x81, +0x88,0xAE,0xE4,0x00,0x6B,0x76,0x42,0xEF,0x64,0x25,0x44,0x41,0x42,0xF0,0x64,0x26, +0x24,0x29,0xD1,0x47,0x00,0x56,0x42,0xEC,0x94,0x0C,0x77,0x01,0x9D,0xA1,0x9D,0x82, +0x5D,0xAD,0x00,0xD5,0x6D,0xFE,0xCD,0xE4,0x00,0x00,0x41,0x51,0x60,0x1A,0xE4,0x00, +0x00,0x21,0x99,0x63,0xE7,0xFF,0xFF,0x3F,0x99,0x64,0xE7,0xFF,0xFF,0x33,0x9A,0xE0, +0x21,0x4A,0x06,0xE7,0xFF,0xFF,0x25,0x0E,0x41,0x02,0x0E,0x21,0x06,0x0E,0x01,0x0A, +0x0D,0xE1,0x0E,0x0D,0xC1,0x12,0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D, +0x41,0x22,0x0D,0x21,0x26,0x1C,0x21,0x28,0x85,0x29,0x1C,0x21,0xB8,0x0D,0x41,0x40, +0x0D,0x21,0x44,0x0D,0x61,0x3C,0x0D,0x81,0x38,0x89,0x44,0xD0,0x67,0x04,0xAD,0xC2, +0xF8,0x00,0x21,0xFE,0xF7,0xBA,0x84,0x4C,0x63,0x10,0xC1,0x60,0x10,0x01,0x8C,0x77, +0xC1,0x80,0x10,0x01,0x0E,0xE3,0x02,0xFD,0x6B,0x0A,0x9C,0xFD,0x8C,0x08,0xD8,0x86, +0xE9,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x06,0x87,0xC7,0x18,0xFF,0xDF,0xEF,0x17,0x06, +0x87,0xD0,0x88,0x02,0xFD,0x9A,0xE1,0x4E,0xF7,0x24,0xC6,0xF7,0x01,0x83,0x22,0xE1, +0x48,0xE4,0x00,0x00,0x93,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x06,0x87,0xC7,0x18,0xFF, +0xDF,0xEF,0x17,0x06,0x87,0xD1,0x47,0x01,0xDD,0x9A,0xE1,0x4E,0xF7,0x54,0x57,0x17, +0x8C,0x23,0x00,0xA6,0x56,0xF7,0x03,0x22,0xE0,0xA4,0x88,0x6A,0xE7,0xFF,0xFD,0x0C, +0xCC,0x8A,0x00,0x34,0xCC,0xAA,0x00,0x68,0x1C,0x61,0x04,0x8C,0x8C,0x8C,0xAB,0x50, +0xC0,0x1A,0xE4,0x00,0x18,0x54,0xE4,0x00,0x00,0x15,0x88,0x6A,0xE7,0xFF,0xFC,0xCC, +0x0D,0x81,0x3A,0x0D,0x61,0x3E,0x0D,0x41,0x42,0x0D,0x21,0x46,0x1C,0x21,0x48,0x85, +0x29,0xC2,0xE0,0x10,0x01,0x98,0x60,0xFE,0xF7,0x07,0xA8,0xCB,0x40,0xFF,0xFE,0x0B, +0x37,0x00,0x4F,0x19,0xFA,0x47,0x38,0xCE,0x43,0x19,0xC5,0x8C,0x78,0x5F,0x03,0x04, +0xCB,0x20,0xFF,0xFE,0x9E,0xE2,0x5C,0x79,0x17,0x48,0x78,0xD0,0xC3,0x00,0x10,0x01, +0xFF,0x18,0x07,0xDC,0xD6,0xF8,0xFE,0xDE,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x17, +0x07,0x9C,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x07,0xA0,0xC2,0xE0,0x10,0x01,0x9B,0x04, +0xEC,0x17,0x07,0xA4,0x98,0x64,0xC2,0xE0,0x10,0x01,0x98,0x80,0xEF,0x17,0x03,0x2C, +0xE7,0xFF,0xF7,0x19,0x20,0x64,0x3E,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x07,0x9E,0xE4, +0x00,0x00,0x41,0x20,0x68,0x3E,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x07,0xA2,0xE4,0x00, +0x00,0x23,0x9A,0xE0,0x20,0x6C,0x2E,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x07,0xA6,0x88, +0x77,0x85,0x29,0x20,0x64,0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x07,0x9C,0xE4,0x00, +0x00,0x3D,0x20,0x68,0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x07,0xA0,0xE4,0x00,0x00, +0x1F,0x20,0x6C,0x2E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x07,0xA4,0x85,0x29,0x1C,0x21, +0xE0,0xC2,0xE0,0x10,0x01,0x0D,0x41,0x18,0x0D,0x61,0x14,0x0D,0x81,0x10,0x0D,0xA1, +0x0C,0x0D,0xC1,0x08,0x0D,0xE1,0x04,0xEE,0xF7,0x08,0x22,0x0D,0x21,0x1C,0xC1,0x80, +0x10,0x01,0xC1,0x60,0x10,0x01,0x5D,0xE3,0x06,0x5D,0xC4,0x06,0x89,0x45,0x89,0xA6, +0x56,0xF7,0x01,0xFD,0x8C,0x08,0x44,0xFD,0x6B,0x08,0x14,0x22,0xE0,0xE0,0x98,0xA2, +0x25,0x44,0x43,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBB,0x94,0x8E,0xEA,0x10,0xB7,0x00, +0x0E,0xEB,0x02,0x5E,0xE0,0x29,0x88,0x6F,0x88,0x8E,0x48,0xA5,0x12,0xE7,0xFF,0x87, +0x58,0x5C,0x63,0x00,0x20,0x60,0x3C,0x0C,0x0C,0x00,0x0C,0x0D,0x00,0x98,0x61,0xE4, +0x00,0x00,0xED,0x21,0x45,0x38,0x21,0x40,0x28,0x21,0x4D,0x8E,0xE4,0x00,0x00,0xA7, +0x0E,0xEB,0x02,0x22,0xE4,0x36,0xE7,0xFF,0x8A,0x5A,0x98,0x62,0xE4,0x00,0x00,0x5D, +0x0E,0xEC,0x02,0x22,0xE4,0x86,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x08,0x36,0xC2,0xE0, +0x10,0x01,0xEC,0x97,0x08,0x22,0xE7,0xFF,0x90,0x76,0x88,0x6D,0xE7,0xFF,0x90,0x8E, +0xE4,0x00,0x00,0x15,0xE7,0xFF,0x89,0xFE,0x98,0x60,0x0C,0x0B,0x00,0xE4,0x00,0x00, +0x4B,0x88,0x6F,0x88,0x8E,0xE7,0xFF,0x8A,0x00,0x98,0x60,0xE4,0x00,0x00,0x2F,0xE7, +0xFF,0x89,0xC8,0x9A,0xE1,0x0E,0xEB,0x00,0xE4,0x00,0x00,0x11,0xE7,0xFF,0x89,0xAE, +0x98,0x62,0x0D,0x4C,0x00,0x0D,0xE1,0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E,0x0D,0x81, +0x12,0x0D,0x61,0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20,0x85,0x29,0xC3, +0x80,0x10,0x01,0xC3,0x60,0x10,0x01,0xC3,0x40,0x10,0x01,0xC3,0x20,0x10,0x01,0xC3, +0x00,0x10,0x01,0xFF,0x9C,0x08,0x28,0xFF,0x7B,0x08,0x78,0xFF,0x5A,0x08,0x19,0xFF, +0x39,0x0B,0x70,0xFF,0x18,0x08,0x68,0x20,0x69,0x7A,0x0A,0xFC,0x04,0x0B,0xD9,0x09, +0x43,0xD7,0xF5,0x5F,0xDE,0x06,0x4F,0xBE,0xFA,0x47,0xDD,0xF6,0x43,0xBE,0xED,0x5F, +0xAC,0x99,0x20,0x00,0x7D,0x0B,0xBC,0x07,0x0B,0x99,0x0B,0x43,0xBD,0xE5,0x5F,0xBD, +0x06,0x4F,0x9D,0xFA,0x47,0xBC,0xEE,0x43,0x9D,0xE5,0xC3,0x80,0x10,0xE8,0x20,0x05, +0x19,0x0E,0xF8,0x01,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x2F,0x0B,0x99,0x0B,0x0E, +0xF8,0x03,0x0B,0x39,0x0F,0x12,0xFA,0x00,0x0F,0x9B,0x01,0x0F,0x3B,0x03,0x52,0xF7, +0x02,0xE4,0x00,0x01,0x57,0xC3,0xA0,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFF,0xBD,0x08, +0x11,0xFE,0xF7,0x0B,0x90,0x20,0x6D,0x92,0x0B,0x79,0x01,0x0B,0xDC,0x01,0x43,0xDE, +0xDD,0x5F,0xDE,0x06,0x4F,0x7E,0xFA,0x47,0xDB,0xF6,0x43,0x7E,0xDD,0x5F,0x6C,0x99, +0x20,0x00,0x7D,0x0B,0x39,0x03,0x0B,0x7C,0x03,0x43,0x7B,0xCD,0x5F,0x7B,0x06,0x4F, +0x3B,0xFA,0x47,0x79,0xDE,0x43,0x3B,0xCD,0xC3,0x20,0x10,0xE8,0x20,0x03,0x61,0x0B, +0x37,0x17,0x0F,0x38,0x01,0x0B,0x37,0x19,0x0F,0x38,0x03,0x0B,0x37,0x47,0x0A,0xF7, +0x49,0x0E,0xF8,0x07,0x12,0xFA,0x00,0x52,0xF7,0x01,0x0F,0x38,0x05,0x1A,0xFA,0x00, +0x9A,0xE2,0x1A,0xFD,0x00,0xE4,0x00,0x01,0x5F,0xD0,0x64,0x01,0xD6,0x0B,0x3B,0x00, +0x0B,0x7B,0x02,0x43,0x79,0xDD,0x9F,0x6E,0x5F,0x63,0x9B,0x20,0x00,0x2F,0xC3,0x20, +0x10,0x01,0xEB,0x39,0x08,0x6B,0x0B,0x18,0x01,0x0F,0x17,0x47,0x9B,0x02,0x0F,0x37, +0x49,0x1B,0x17,0x00,0x12,0xFA,0x00,0x9B,0x1D,0x46,0xF7,0xC4,0x1A,0xFA,0x00,0xE4, +0x00,0x00,0xEB,0xD0,0x65,0x03,0x8E,0x13,0x7D,0x00,0x23,0x68,0xFE,0x0B,0x98,0x00, +0x0B,0x59,0x00,0x8F,0x5C,0x43,0x5A,0xD8,0x0B,0x98,0x02,0x0F,0x57,0x17,0x0B,0x59, +0x02,0x8F,0x5C,0x43,0x5A,0xD8,0x0B,0x98,0x04,0x0F,0x57,0x19,0x0B,0x59,0x08,0x8F, +0x5C,0x43,0x5A,0xD8,0x0F,0x57,0x47,0x0B,0x58,0x06,0x0B,0x19,0x0A,0x8F,0x1A,0x43, +0x78,0xD8,0x0F,0x77,0x49,0xE4,0x00,0x00,0x55,0x23,0x64,0x9A,0x0B,0x38,0x01,0x0F, +0x37,0x17,0x0B,0x38,0x03,0x0F,0x37,0x19,0x0B,0x38,0x05,0x0B,0x18,0x07,0x0F,0x37, +0x47,0x0F,0x17,0x49,0x9B,0x3E,0x13,0x1A,0x00,0x47,0x18,0xCC,0x1B,0x1A,0x00,0x9B, +0x02,0x1B,0x17,0x00,0x85,0x29,0xC3,0x00,0x10,0x01,0xFF,0x18,0x08,0x28,0xFE,0xE0, +0x7F,0xFF,0x0E,0xF8,0x01,0x0E,0xF8,0x03,0x0E,0xF8,0x05,0x0E,0xF8,0x07,0x9B,0x01, +0xC3,0x20,0x10,0x01,0xFF,0x39,0x03,0x6C,0x1B,0x19,0x01,0xC3,0x00,0x10,0x01,0xFF, +0x18,0x08,0x94,0x0E,0xF8,0x01,0x0E,0xF8,0x03,0x0E,0xF8,0x05,0x0E,0xF8,0x07,0xC3, +0x00,0x10,0x01,0xF8,0x18,0x08,0x84,0xC3,0x00,0x10,0x01,0xFF,0x18,0x0B,0x70,0x0E, +0xF8,0x01,0x0E,0xF8,0x03,0x0E,0xF8,0x05,0x0E,0xF8,0x07,0x0E,0xF8,0x09,0x0E,0xF8, +0x0B,0x0E,0xF8,0x0D,0x0E,0xF8,0x0F,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xA1,0xC2, +0xE0,0x10,0x01,0x18,0x19,0x00,0xF3,0x17,0x08,0x19,0x9B,0x3C,0x47,0x18,0xCC,0xFB, +0x17,0x08,0x19,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x11,0x85,0x29,0xC3,0x00,0x10, +0x01,0xC3,0x40,0x10,0x01,0x5C,0x63,0x00,0xFF,0x18,0x09,0x0C,0x9A,0xE0,0xFF,0x5A, +0x09,0xBC,0xE4,0x00,0x00,0x31,0x4F,0x37,0x10,0x0B,0x98,0x00,0x0B,0x78,0x02,0x8F, +0x3A,0x8F,0x7C,0x9E,0xE1,0x0F,0x79,0x00,0x9F,0x04,0x5F,0x37,0x00,0xD4,0x79,0xFF, +0x4D,0x85,0x29,0x1C,0x21,0xE0,0x0D,0x41,0x18,0x0D,0x61,0x14,0x0D,0xC1,0x08,0x0D, +0x21,0x1C,0x0D,0x81,0x10,0x0D,0xA1,0x0C,0x18,0x01,0x07,0xC1,0x40,0x10,0x01,0xC1, +0x60,0x10,0x01,0x5D,0xC3,0x00,0xFD,0x4A,0x08,0x13,0xFD,0x6B,0x08,0x12,0x21,0xC8, +0x36,0x18,0x0A,0x00,0x18,0x0B,0x00,0xE4,0x00,0x00,0x15,0x21,0xCC,0x1A,0x18,0x0A, +0x00,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x1A,0x10,0x77,0x01,0x12,0xF7,0x04,0xC1, +0xA0,0x10,0x01,0x40,0x63,0xBB,0xC1,0x80,0x10,0x01,0xE7,0xFF,0xFE,0xE6,0xFD,0xAD, +0x08,0x18,0xFD,0x8C,0x0B,0x90,0xD1,0xC1,0x04,0x2E,0x12,0xEA,0x00,0x22,0xE1,0xFA, +0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x09,0xBC,0x0F,0x17,0x02,0xC3,0x00,0x29,0xA8,0x20, +0x00,0x39,0x13,0x01,0x07,0x9F,0x01,0x5F,0x18,0x00,0x1B,0x01,0x07,0xC3,0x00,0x10, +0x01,0x9E,0xE4,0xFF,0x18,0x09,0xF0,0xD6,0xF8,0xFF,0x0E,0x12,0xE1,0x07,0xD2,0xE4, +0x01,0x49,0xE7,0xFF,0xE7,0xAE,0x20,0x68,0x84,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08, +0x3C,0xD2,0xE9,0x00,0xB5,0x12,0xEC,0x00,0x26,0xE4,0x3D,0x12,0xEB,0x00,0x9E,0xE1, +0x1A,0xEB,0x00,0xE4,0x00,0x00,0x0F,0x18,0x0B,0x00,0x12,0xEB,0x00,0x26,0xE5,0x01, +0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x00,0xE2,0x22,0xE8,0x2A,0x18,0x0D,0x00,0xE4,0x00, +0x00,0x59,0x9A,0xE1,0x1A,0xEA,0x00,0xE4,0x00,0x00,0x47,0x12,0xEA,0x00,0x22,0xE4, +0x7E,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x00,0xE2,0x22,0xE8,0x2A,0x18,0x0D,0x00,0xE4, +0x00,0x00,0x1D,0xE7,0xFF,0xE6,0xEC,0x20,0x68,0x18,0x18,0x0C,0x00,0x12,0xED,0x00, +0x22,0xE0,0x2C,0x9E,0xFF,0x18,0x0C,0x00,0x1A,0xED,0x00,0x0D,0xC1,0x0A,0x0D,0xA1, +0x0E,0x0D,0x81,0x12,0x0D,0x61,0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20, +0x85,0x29,0x98,0x62,0xE7,0xFF,0xFD,0x9F,0xC3,0x00,0x10,0x01,0x5C,0x84,0x00,0xFF, +0x18,0x09,0x0C,0x20,0xA0,0x6C,0xE4,0x00,0x00,0x4B,0x4F,0x37,0x08,0x9E,0xE1,0x43, +0x59,0xC4,0x8F,0x23,0x0B,0x5A,0x00,0x0F,0x59,0x01,0xE4,0x00,0x00,0x0D,0x9A,0xE0, +0x5F,0x37,0x00,0xD4,0x99,0xFF,0x3D,0xE4,0x00,0x00,0x7B,0x20,0xA4,0xE6,0xE4,0x00, +0x00,0x31,0x4F,0x37,0x08,0x9E,0xE1,0x43,0x43,0xCC,0x8F,0x38,0x0B,0x5A,0x00,0x0F, +0x59,0x01,0xE4,0x00,0x00,0x0D,0x9A,0xE0,0x5F,0x37,0x00,0xD4,0x99,0xFF,0x3D,0xC2, +0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x1A,0x10,0x77,0x01,0x12,0xF7,0x04,0x40,0x63,0xBB, +0xE7,0xFF,0xFC,0x5B,0x85,0x29,0x9C,0x38,0x98,0x63,0x0D,0x21,0x04,0xE7,0xFF,0x6C, +0xAA,0x0D,0x21,0x06,0x9C,0x28,0xE4,0x00,0x72,0xAD,0x9A,0xED,0x1C,0x21,0xE8,0x0D, +0x41,0x10,0x0D,0x61,0x0C,0xC1,0x60,0x10,0x01,0xFD,0x4B,0x0B,0x1A,0x1A,0xEA,0x04, +0x9A,0xE1,0x1A,0xEA,0x01,0xFE,0xE0,0x07,0xFF,0x0E,0xEA,0x07,0x0E,0xEA,0x09,0xC2, +0xE0,0x10,0x01,0x9B,0x02,0xFB,0x17,0x08,0x72,0x52,0xE0,0xAA,0x0D,0x21,0x14,0x0E, +0xEA,0x0B,0x50,0x60,0x19,0x98,0x80,0xE7,0xFF,0x2C,0x66,0x52,0xE0,0x1D,0xFA,0xEB, +0x0B,0x1A,0x9A,0xE4,0x1A,0xEA,0x0C,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x00,0xD5,0xC2, +0xE0,0x10,0x01,0xEC,0x17,0x08,0x60,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0x8C,0xC2, +0xE0,0x10,0x01,0xEC,0x17,0x08,0x87,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x54,0xC2, +0xE0,0x10,0x01,0xF8,0x17,0x08,0x5C,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x8A,0xC2, +0xE0,0x10,0x01,0xF8,0x17,0x08,0x83,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x48,0xC2, +0xE0,0x10,0x01,0xF8,0x17,0x08,0x9C,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x76,0xC2, +0xE0,0x10,0x01,0xF8,0x17,0x08,0x67,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0x65,0xC2, +0xE0,0x10,0x01,0xEC,0x17,0x08,0x58,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0x31,0xC2, +0xE0,0x10,0x01,0xF8,0x17,0x08,0x77,0xC2,0xE0,0x10,0x01,0x9B,0x03,0xFB,0x17,0x08, +0x66,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x07,0x8C,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08, +0x84,0xC2,0xE0,0x10,0x01,0xFF,0x00,0x01,0xF4,0xEF,0x17,0x06,0x85,0xC2,0xE0,0x10, +0x01,0x50,0x60,0x14,0xF8,0x17,0x08,0x9D,0x50,0x80,0x50,0xE7,0xFF,0x7B,0xB8,0x52, +0xE0,0x64,0x50,0x80,0x35,0x0E,0xE1,0x01,0x50,0xA0,0x59,0xFC,0xC0,0x07,0xFF,0xFC, +0xE0,0x07,0xFF,0x99,0x00,0xC0,0x60,0x10,0x01,0xFC,0x63,0x01,0x88,0xE7,0xFF,0x98, +0xE2,0xC0,0x60,0x10,0x01,0x98,0x80,0xFC,0x63,0x09,0xBC,0x50,0xA0,0x3C,0xE7,0xFF, +0x9B,0xE4,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x90,0x18,0x17,0x04,0x18,0x17,0x05, +0x18,0x17,0x06,0x18,0x17,0x34,0x18,0x17,0x35,0x18,0x17,0x36,0xC2,0xE0,0x10,0x01, +0xF8,0x17,0x08,0x50,0xC2,0xE0,0x10,0x01,0xF3,0x37,0x00,0xC0,0xC2,0xF4,0x00,0x01, +0xCB,0x17,0x3D,0xF9,0xCA,0xF7,0x3D,0xF8,0x1B,0x38,0x00,0xC3,0x00,0x10,0x01,0xF3, +0x18,0x07,0x09,0x1B,0x17,0x00,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0x3F,0x53,0x18, +0x04,0xEF,0x17,0x08,0x3F,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x00,0x01,0xFF,0x18,0x1D, +0x58,0xEF,0x17,0x03,0xE4,0xC2,0xE0,0x10,0x01,0x53,0x00,0xDF,0xEF,0x17,0x08,0x93, +0xC2,0xE0,0x10,0x01,0x53,0x00,0xCA,0xEF,0x17,0x08,0x25,0xC2,0xE0,0x10,0x01,0xC3, +0x00,0x00,0x01,0xFF,0x18,0x1B,0xCF,0xEF,0x17,0x03,0xF8,0xC2,0xE0,0x10,0x01,0xC3, +0x00,0x00,0x01,0xFF,0x18,0x19,0x89,0xEF,0x17,0x04,0x18,0xC2,0xE0,0x10,0x01,0xC3, +0x00,0x00,0x01,0xFF,0x18,0x1A,0x62,0xEF,0x17,0x04,0x14,0xC2,0xE0,0x10,0x01,0xF8, +0x17,0x0B,0x40,0xFE,0xF7,0x0B,0x40,0xC3,0x60,0x10,0x01,0x18,0x17,0x01,0x18,0x17, +0x02,0x18,0x17,0x03,0x0C,0x17,0x05,0x0C,0x17,0x07,0x0C,0x17,0x0B,0x0C,0x17,0x09, +0xC3,0x40,0x10,0x01,0xC3,0x20,0x10,0x01,0x9A,0xE0,0xFF,0x7B,0x09,0x0C,0xFF,0x5A, +0x0C,0x96,0xFF,0x39,0x09,0x48,0x43,0x17,0xDC,0x0C,0x18,0x01,0x43,0x17,0xD4,0x0C, +0x18,0x01,0x4F,0x17,0x08,0x8F,0x19,0x0C,0x18,0x00,0x9E,0xE2,0x5E,0xE7,0x49,0x23, +0xFF,0x9D,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18,0x85,0x29, +0xE4,0x00,0x6A,0xF1,0x1C,0x21,0xE8,0x0D,0x21,0x14,0xE7,0xFF,0xCD,0x74,0xE7,0xFF, +0xA4,0x36,0xE7,0xFF,0xCC,0x96,0xE7,0xFF,0xF0,0x08,0x98,0x60,0x98,0x81,0xE7,0xFF, +0x66,0x0C,0x98,0x81,0x98,0x60,0x88,0xA4,0xE7,0xFF,0x66,0x12,0x98,0x81,0x98,0x60, +0x88,0xA4,0xE7,0xFF,0x66,0x28,0x98,0x80,0x98,0x61,0x88,0xA4,0xE7,0xFF,0x66,0x14, +0x98,0xA0,0x98,0x62,0x98,0x81,0xE7,0xFF,0x66,0x00,0x98,0x62,0x98,0x80,0xE7,0xFF, +0x66,0x76,0x98,0x60,0x50,0x80,0x66,0xE7,0xFF,0x66,0x7E,0x98,0x61,0x50,0x80,0x66, +0xE7,0xFF,0x66,0x6C,0x98,0x62,0x50,0x80,0xF3,0xE7,0xFF,0x66,0x5A,0x98,0x60,0xFC, +0x80,0xA0,0x00,0xE7,0xFF,0x66,0xA2,0x98,0x61,0xFC,0x80,0xA0,0x00,0xE7,0xFF,0x66, +0x8E,0x98,0x62,0xFC,0x80,0xA0,0x00,0xE7,0xFF,0x66,0x7A,0xFC,0x80,0x01,0x26,0x98, +0x62,0xE7,0xFF,0x66,0xC2,0xFC,0x60,0x01,0x5E,0xE7,0xFF,0x96,0x60,0xE7,0xFF,0xFA, +0x3A,0x98,0x61,0xE7,0xFF,0x45,0xCA,0xE7,0xFF,0x31,0xFE,0x50,0x60,0x1B,0xE7,0xFF, +0x6A,0xB0,0x9A,0xEE,0x0E,0xE1,0x00,0x52,0xE0,0x14,0x0E,0xE1,0x04,0xCA,0xE0,0x07, +0xD0,0x98,0xC8,0x0E,0xE1,0x08,0x98,0xAE,0x88,0xE6,0x99,0x0A,0x98,0x6A,0x98,0x8C, +0xE7,0xFF,0x26,0x0E,0x98,0x81,0x98,0x60,0xE7,0xFF,0xCB,0xB0,0x50,0x60,0x10,0xE7, +0xFF,0xCB,0xE2,0xE4,0x00,0x3F,0x22,0xE7,0xFF,0xF9,0x7E,0x98,0x80,0x98,0x60,0xE7, +0xFF,0x23,0xD0,0xE7,0xFF,0xB7,0x36,0xE7,0xFF,0xB6,0x2C,0xC2,0xE0,0x10,0x01,0xF0, +0x77,0x03,0x6E,0xE7,0xFF,0xCB,0x7A,0x9B,0x00,0xCA,0xE0,0x48,0x00,0xC3,0x17,0x00, +0x0D,0xC3,0x17,0x00,0x0F,0x53,0x18,0x04,0xC3,0x17,0x00,0x0D,0xC3,0x17,0x00,0x0F, +0x53,0x18,0x08,0xC3,0x17,0x00,0x0D,0xC2,0xE0,0x01,0x1F,0x52,0xF7,0x06,0xC2,0xE0, +0x01,0x1D,0xFC,0x60,0x01,0x40,0xE7,0xFF,0xCB,0x24,0x50,0x60,0x20,0xE7,0xFF,0xCB, +0x2E,0x98,0x61,0x50,0x80,0x13,0x50,0xA0,0x37,0x98,0xC8,0xFC,0xE0,0x01,0x0D,0xE7, +0xFF,0xAA,0x6A,0xC3,0x00,0x00,0x01,0xC2,0xE0,0x10,0x01,0xFF,0x18,0x46,0xAE,0x0D, +0x21,0x16,0xEF,0x17,0x03,0xD0,0x1C,0x21,0x18,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEF, +0x17,0x00,0xE2,0x23,0x05,0x08,0xEE,0xF7,0x00,0xE2,0x22,0xE8,0xEC,0xC3,0x00,0x10, +0x01,0xC2,0xE0,0x10,0x01,0xFF,0x18,0x08,0x4A,0xFE,0xF7,0x08,0x7C,0x0B,0x38,0x01, +0xC3,0x60,0x10,0x01,0x0F,0x37,0x01,0xC3,0x40,0x10,0x01,0x0B,0x38,0x03,0xFF,0x7B, +0x0A,0x8C,0x0F,0x37,0x03,0x0B,0x18,0x05,0xFF,0x5A,0x0B,0x80,0x0F,0x17,0x05,0x9A, +0xE0,0xE4,0x00,0x00,0x5D,0xC3,0x60,0x10,0x01,0xC3,0x40,0x10,0x01,0x9A,0xE0,0xFF, +0x7B,0x08,0xA4,0xFF,0x5A,0x08,0xD8,0x43,0x17,0xDC,0x43,0x37,0xD4,0x0B,0x39,0x01, +0x0F,0x38,0x01,0x9E,0xE2,0x5E,0xE6,0x89,0x23,0xFF,0xBD,0xE7,0xFF,0xFF,0x45,0x43, +0x17,0xDC,0x43,0x37,0xD4,0x0B,0x39,0x01,0x0F,0x38,0x01,0x9E,0xE2,0x5E,0xE2,0x09, +0x23,0xFF,0xBD,0x85,0x29,0xC3,0x00,0x10,0x01,0xC3,0x60,0x10,0x01,0x9A,0xE0,0xFF, +0x18,0x0C,0x96,0xFF,0x7B,0x08,0xA4,0x43,0x37,0xC4,0x43,0x57,0xDC,0x0B,0x5A,0x01, +0x0F,0x59,0x01,0x9E,0xE2,0x5E,0xE6,0x89,0x23,0xFF,0xBD,0xC2,0xE0,0x10,0x01,0xFE, +0xF7,0x08,0x7C,0x0B,0x37,0x01,0x0F,0x38,0x35,0x0B,0x37,0x03,0x0A,0xF7,0x05,0x0F, +0x38,0x37,0x0E,0xF8,0x39,0x85,0x29,0xE4,0x00,0x68,0xED,0xC2,0xE0,0x10,0x01,0xFF, +0x20,0xDF,0x9F,0xEB,0x17,0x08,0x87,0x47,0x18,0xCC,0x9B,0x3E,0xEF,0x17,0x08,0x87, +0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0x71,0x47,0x18,0xCC,0xEF,0x17,0x08,0x71,0x85, +0x29,0xE4,0x00,0x71,0x9D,0xE4,0x00,0x71,0x3B,0xE4,0x00,0x71,0xCB,0xC2,0xE0,0x10, +0x01,0x88,0xC3,0xF3,0x17,0x00,0xC0,0x23,0x08,0x4A,0xF2,0xF7,0x00,0xC0,0x22,0xE8, +0x2E,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x07,0x09,0xC3,0x00,0x10,0x01,0x9A,0xE0,0xFF, +0x18,0x09,0x0C,0x8B,0x38,0x5F,0x57,0x00,0x27,0x44,0x3D,0x5E,0xE3,0x01,0x20,0x00, +0x25,0x5E,0xE3,0x29,0x20,0x00,0x31,0x0B,0x59,0x01,0x4F,0x5A,0x08,0x0F,0x59,0x01, +0x9E,0xE1,0x9F,0x22,0x5E,0xE3,0x49,0x23,0xFF,0x79,0xC2,0xE0,0x10,0x01,0xC3,0x40, +0x10,0x01,0xF3,0x77,0x0B,0x1A,0xFF,0x5A,0x08,0x86,0x1F,0xBB,0xFF,0x0A,0xFA,0x01, +0x9B,0x20,0xE4,0x00,0x00,0x57,0xD7,0xB9,0x00,0xB8,0x0B,0xD8,0x00,0x0B,0x98,0x02, +0x8F,0x9E,0xCB,0xD7,0x20,0x00,0xC3,0x80,0x1B,0xCC,0x4A,0xFE,0xB8,0x0B,0x98,0x00, +0x53,0xD7,0x40,0x5F,0x84,0x19,0x9F,0x21,0x4A,0xFE,0xB8,0x9F,0x02,0x5F,0x99,0x04, +0xD7,0x7C,0xFE,0xB5,0x98,0x60,0x0E,0xFA,0x01,0x88,0x83,0x98,0xA0,0xE7,0xFF,0xB3, +0x4F,0x9C,0x38,0x0D,0x41,0x00,0x0D,0x21,0x04,0xC1,0x40,0x10,0x01,0x20,0x64,0x62, +0xE7,0xFF,0xB4,0x6A,0x20,0x64,0x56,0xF2,0xEA,0x08,0x48,0x9E,0xE1,0xFA,0xEA,0x08, +0x48,0xE4,0x00,0x00,0x19,0xE7,0xFF,0xB4,0xF0,0xF8,0x0A,0x08,0x48,0xE7,0xFF,0xDA, +0x78,0x9A,0xE3,0x20,0x64,0x34,0xE7,0xFF,0xDA,0x66,0x5C,0x60,0x49,0x4A,0xE3,0x4B, +0xC3,0x00,0x10,0x01,0xF3,0x38,0x08,0x48,0xD6,0xF9,0x02,0x1D,0xC2,0xE0,0x10,0x01, +0xF8,0x17,0x08,0x9C,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x8A,0xC2,0xE0,0x10,0x01, +0xF8,0x17,0x08,0x83,0xC2,0xE0,0x10,0x01,0xF8,0x18,0x08,0x48,0xF8,0x17,0x08,0x9D, +0x0D,0x41,0x02,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x06,0xEB,0x17,0x08,0x87,0x9C,0x28, +0x53,0x18,0x80,0xEF,0x17,0x08,0x87,0xE7,0xFF,0x64,0xF3,0x0D,0x41,0x02,0x0D,0x21, +0x06,0x9C,0x28,0x85,0x29,0x9C,0x38,0xC3,0x14,0x00,0x01,0x0D,0x21,0x04,0xCA,0xF8, +0x22,0x00,0x0B,0x37,0x01,0xCB,0x18,0x26,0x18,0x9B,0x3F,0x0F,0x37,0x01,0x0B,0x38, +0x01,0x53,0x39,0x02,0x0F,0x38,0x01,0x0B,0x17,0x01,0xFC,0x60,0x01,0x00,0x0C,0x17, +0x01,0xE7,0xFF,0xC6,0x0E,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x06,0xEB,0x17,0x00,0xD5, +0x9C,0x28,0xC7,0x18,0xFE,0xFF,0xEF,0x17,0x00,0xD5,0x85,0x29,0x5C,0xC6,0x00,0x9A, +0xE0,0xE4,0x00,0x00,0x45,0x4F,0x17,0x08,0x4F,0x57,0x10,0x43,0x23,0xC4,0x8F,0x45, +0x8F,0x04,0x0F,0x5A,0x02,0x0B,0x18,0x01,0x4F,0x5A,0x42,0x9E,0xE1,0x43,0x18,0xD5, +0x0F,0x19,0x01,0x5F,0x17,0x00,0xD4,0xD8,0xFE,0xFD,0x85,0x29,0x9C,0x38,0x0D,0x21, +0x04,0xE4,0x00,0x38,0x32,0x0D,0x21,0x06,0xFC,0x60,0x01,0x00,0x9C,0x28,0xE7,0xFF, +0xC5,0x45,0x9C,0x38,0x0D,0x21,0x04,0xE4,0x00,0x38,0x06,0x0D,0x21,0x06,0xFC,0x60, +0x01,0x00,0x9C,0x28,0xE7,0xFF,0xC5,0x09,0x9C,0x38,0x98,0x80,0x0D,0x21,0x04,0x98, +0x61,0xE7,0xFF,0xE3,0x1A,0x98,0x60,0xE7,0xFF,0x63,0x2A,0x98,0x61,0x98,0x80,0xE7, +0xFF,0xE8,0x28,0x98,0x62,0x98,0x80,0xE7,0xFF,0xE8,0x18,0x0D,0x21,0x06,0x98,0x63, +0x98,0x80,0x9C,0x28,0xE7,0xFF,0xE7,0xFF,0x98,0x64,0x98,0x80,0xE7,0xFF,0xE2,0xC5, +0x9C,0x38,0x0D,0x21,0x04,0xE7,0xFF,0xD7,0xE8,0x24,0x64,0x29,0x20,0x69,0x8A,0xE4, +0x00,0x00,0x19,0xE7,0xFF,0xD7,0xCC,0xE4,0x00,0x00,0x57,0xE7,0xFF,0xC4,0xCA,0xC2, +0xE0,0x10,0x01,0xFE,0xF7,0x00,0xE6,0x0A,0xF7,0x09,0x40,0x63,0xBD,0x5E,0xE3,0x04, +0xC2,0xE1,0x76,0xEA,0x20,0x00,0x7D,0x98,0x62,0xE7,0xFF,0xE7,0x16,0x20,0x60,0x5A, +0x98,0x61,0x98,0x80,0xE7,0xFF,0xE2,0x34,0x0D,0x21,0x06,0x98,0x60,0x9C,0x28,0xE7, +0xFF,0x62,0x3B,0x98,0x62,0x98,0x80,0xE7,0xFF,0xE2,0x0E,0xFC,0x60,0x01,0x5E,0xE7, +0xFF,0x8E,0x48,0x0D,0x21,0x06,0x98,0x60,0x9C,0x28,0xE7,0xFF,0x61,0xBD,0x0D,0x21, +0x06,0x9C,0x28,0x85,0x29,0xD0,0x69,0x06,0x2D,0x4F,0x03,0x10,0xC2,0xF8,0x00,0x21, +0xFE,0xF7,0xBA,0xC4,0x8E,0xF8,0xC3,0x00,0x10,0x01,0x0F,0x37,0x02,0xFF,0x18,0x09, +0x48,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x09,0xF8,0x87,0x29,0xC3,0x00,0x10,0x01,0xFF, +0x18,0x0B,0x34,0x0F,0x38,0x02,0x0F,0x37,0x68,0x0F,0x38,0x06,0x0F,0x18,0x0A,0x0F, +0x37,0x6C,0x0F,0x17,0x70,0xE4,0x00,0x01,0x0B,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B, +0x28,0x0F,0x37,0x02,0x0F,0x38,0x68,0x0F,0x37,0x06,0x0E,0xF7,0x0A,0x0F,0x38,0x6C, +0x0E,0xF8,0x70,0xE4,0x00,0x00,0xCF,0xCE,0xE3,0x00,0x68,0xC3,0x60,0x10,0x01,0xCC, +0x63,0x00,0x1A,0xFF,0x7B,0x0A,0x9C,0x4C,0x63,0x10,0x8F,0x77,0x8F,0x03,0x9A,0xE0, +0x43,0x38,0xBC,0x43,0x5B,0xBC,0x0F,0x5A,0x02,0x0F,0x59,0x00,0x9E,0xE4,0x5E,0xED, +0x09,0x23,0xFF,0xBD,0xE4,0x00,0x00,0x6D,0x9C,0x7E,0xC3,0x40,0x10,0x01,0x5C,0x63, +0x00,0xFF,0x5A,0x0B,0xF4,0xCF,0x03,0x00,0x68,0xCC,0x63,0x00,0x1A,0x8F,0x58,0x4C, +0x63,0x10,0x8C,0x77,0x9A,0xE0,0x43,0x03,0xBC,0x43,0x3A,0xBC,0x0F,0x39,0x02,0x0F, +0x38,0x00,0x9E,0xE4,0x5E,0xED,0x09,0x23,0xFF,0xBD,0x85,0x29,0xD0,0x69,0x06,0x3D, +0x4F,0x03,0x10,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBA,0xEC,0x8E,0xF8,0xC3,0x00,0x10, +0x01,0x0F,0x37,0x02,0xFF,0x18,0x08,0xA4,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x08,0x7C, +0x87,0x29,0x0B,0x37,0x00,0xC3,0x00,0x10,0x01,0x4F,0x39,0x40,0xFF,0x18,0x0B,0x34, +0xE4,0x00,0x00,0x25,0x0B,0x37,0x00,0xC3,0x00,0x10,0x01,0x4F,0x39,0x40,0xFF,0x18, +0x0B,0x28,0x0F,0x38,0x00,0x0B,0x37,0x02,0x0A,0xF7,0x04,0x4F,0x39,0x40,0x4E,0xF7, +0x40,0x0F,0x38,0x04,0x0E,0xF8,0x08,0xE4,0x00,0x00,0xD9,0xCE,0xE3,0x00,0x34,0x8F, +0x17,0xCE,0xE3,0x00,0x68,0xC3,0x60,0x10,0x01,0xFF,0x7B,0x0A,0x9C,0x8F,0x77,0x9A, +0xE0,0x4F,0x37,0x08,0x43,0x58,0xBC,0x8F,0x3B,0x0B,0x5A,0x00,0x4F,0x5A,0x40,0x0F, +0x59,0x00,0x9E,0xE2,0x5E,0xE6,0x89,0x23,0xFF,0xA9,0xE4,0x00,0x00,0x73,0x1E,0xE3, +0xFE,0x5E,0xF7,0x00,0xCF,0x37,0x00,0x34,0xCE,0xF7,0x00,0x68,0xC3,0x60,0x10,0x01, +0x8F,0x19,0xFF,0x7B,0x0B,0xF4,0x8F,0x77,0x9A,0xE0,0x4F,0x37,0x08,0x43,0x58,0xBC, +0x8F,0x3B,0x0B,0x5A,0x00,0x4F,0x5A,0x40,0x0F,0x59,0x00,0x9E,0xE2,0x5E,0xE6,0x89, +0x23,0xFF,0xA9,0xE7,0xFF,0xFC,0xE5,0x9C,0x38,0x98,0x64,0x0D,0x41,0x00,0x0D,0x21, +0x04,0x98,0x80,0xE7,0xFF,0xDE,0x96,0xC1,0x40,0x10,0x01,0xEA,0xEA,0x00,0xD5,0xC6, +0xF7,0xFE,0xFF,0xEE,0xEA,0x00,0xD5,0xE7,0xFF,0xFA,0xEA,0xEA,0xEA,0x00,0xD5,0xC6, +0xF7,0x01,0x00,0x22,0xE3,0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xC0,0x3C,0xFC,0x60, +0x01,0x00,0xE7,0xFF,0xC0,0x0C,0xE7,0xFF,0xF5,0x4A,0x0D,0x21,0x06,0x0D,0x41,0x02, +0x98,0x60,0x9C,0x28,0xE7,0xFF,0xFD,0xD1,0x9C,0x38,0x0D,0x21,0x04,0x20,0x64,0x3E, +0x98,0x60,0xE7,0xFF,0xFD,0xB4,0x98,0x68,0xE4,0x00,0x00,0x19,0x98,0x62,0xE7,0xFF, +0xFD,0x9C,0x98,0x69,0x0D,0x21,0x06,0x9C,0x28,0xE7,0xFF,0xFD,0x87,0x9C,0x38,0x98, +0x60,0x0D,0x21,0x04,0xE7,0xFF,0xFD,0x70,0x0D,0x21,0x06,0x98,0x68,0x9C,0x28,0xE7, +0xFF,0xFD,0x5B,0x20,0x80,0x64,0xD0,0x84,0x00,0xFA,0x20,0x88,0x90,0x20,0x8C,0xA8, +0x5C,0x80,0x21,0x4B,0x0A,0x01,0x8A,0xF8,0xE4,0x00,0x00,0x49,0x53,0x00,0x19,0x8A, +0xF8,0xE4,0x00,0x00,0x37,0x53,0x00,0x19,0x9A,0xE1,0xE4,0x00,0x00,0x25,0x53,0x00, +0x32,0x8A,0xF8,0xE4,0x00,0x00,0x13,0x53,0x00,0x50,0x8A,0xF8,0xD0,0x69,0x0A,0xE5, +0x4F,0x43,0x10,0xC3,0x38,0x00,0x21,0xFF,0x39,0xBB,0x14,0x8F,0x3A,0xC3,0x40,0x10, +0x01,0x0F,0x79,0x02,0xFF,0x5A,0x08,0xA4,0xC3,0x20,0x10,0x01,0xFF,0x39,0x08,0x7C, +0x87,0x69,0xCF,0x23,0x00,0x68,0xCC,0xA3,0x00,0x34,0xC0,0x80,0x10,0x01,0x8C,0xBA, +0xFC,0x84,0x0A,0x9C,0x99,0x02,0x8C,0x99,0xCB,0xA0,0x01,0xF4,0x9B,0x20,0x43,0x65, +0xCC,0x0B,0x9B,0x00,0x4F,0x79,0x08,0x4F,0x9C,0x40,0x8F,0x64,0x0F,0x5B,0x02,0x5F, +0x5C,0x1D,0x4B,0xD8,0xB8,0x43,0x9C,0xD5,0x43,0x9E,0xE3,0xCF,0xDA,0x01,0xF4,0x43, +0x9C,0x40,0x8F,0x9E,0x43,0x9C,0xE8,0x0F,0x9B,0x00,0x9F,0x22,0x5F,0x26,0x89,0x23, +0xFF,0x3D,0xE4,0x00,0x01,0xCD,0x1F,0x23,0xFE,0x5F,0x39,0x00,0xCC,0xB9,0x00,0x34, +0xCF,0x39,0x00,0x68,0xC0,0x80,0x10,0x01,0x8C,0xBA,0xFC,0x84,0x0B,0xF4,0x99,0x02, +0x8C,0x99,0xCB,0xA0,0x01,0xF4,0x9B,0x20,0x43,0x65,0xCC,0x0B,0x9B,0x00,0x4F,0x79, +0x08,0x4F,0x9C,0x40,0x8F,0x64,0x0F,0x5B,0x02,0x5F,0x5C,0x1D,0x4B,0xD8,0xB8,0x43, +0x9C,0xD5,0x43,0x9E,0xE3,0xCF,0xDA,0x01,0xF4,0x43,0x9C,0x40,0x8F,0x9E,0x43,0x9C, +0xE8,0x0F,0x9B,0x00,0x9F,0x22,0x5F,0x26,0x89,0x23,0xFF,0x3D,0xE4,0x00,0x01,0x19, +0xC3,0x40,0x10,0x01,0x9B,0xC2,0xFF,0x5A,0x0B,0x28,0xCB,0xA0,0x01,0xF4,0x0F,0x7A, +0x02,0x0B,0x99,0x00,0x4F,0x9C,0x40,0x5F,0x7C,0x1D,0x43,0x9C,0xDD,0x49,0x18,0xB8, +0xCF,0x7B,0x01,0xF4,0x43,0x88,0xE3,0x43,0x9C,0xF0,0x8F,0x7C,0x43,0x7B,0xE8,0x0F, +0x7A,0x00,0x9F,0x22,0xC3,0x60,0x10,0x01,0x9F,0x44,0xFF,0x7B,0x08,0x82,0xD7,0x3B, +0xFE,0x86,0xE4,0x00,0x00,0x8D,0xC3,0x40,0x10,0x01,0x9B,0xC2,0xFF,0x5A,0x0B,0x34, +0xCB,0xA0,0x01,0xF4,0x0F,0x7A,0x02,0x0B,0x99,0x00,0x4F,0x9C,0x40,0x5F,0x7C,0x1D, +0x43,0x9C,0xDD,0x49,0x18,0xB8,0xCF,0x7B,0x01,0xF4,0x43,0x88,0xE3,0x43,0x9C,0xF0, +0x8F,0x7C,0x43,0x7B,0xE8,0x0F,0x7A,0x00,0x9F,0x22,0xC3,0x60,0x10,0x01,0x9F,0x44, +0xFF,0x7B,0x08,0x82,0xD7,0x3B,0xFE,0x86,0xE7,0xFF,0xF8,0x9B,0x9C,0x38,0x0D,0x21, +0x04,0x0D,0x41,0x00,0x89,0x43,0x98,0x60,0x88,0x8A,0xE7,0xFF,0xFC,0xB2,0x88,0x8A, +0x0D,0x21,0x06,0x0D,0x41,0x02,0x98,0x68,0x9C,0x28,0xE7,0xFF,0xFC,0x93,0x1C,0x21, +0xC8,0x0D,0x41,0x30,0x0D,0xA1,0x24,0x0D,0xC1,0x20,0x0D,0xE1,0x1C,0x0E,0x01,0x18, +0x0D,0x21,0x34,0x0D,0x61,0x2C,0x0D,0x81,0x28,0x0E,0x21,0x14,0x0E,0x41,0x10,0x0E, +0x61,0x0C,0x0E,0x81,0x08,0x0E,0xA1,0x04,0xC1,0xC0,0x10,0x01,0xFD,0xCE,0x08,0x86, +0x0A,0xEE,0x01,0xC7,0x17,0x7F,0xFF,0x0F,0x0E,0x01,0xC2,0x00,0x10,0x01,0xC1,0xA0, +0x10,0x01,0xC1,0xE0,0x10,0x01,0xC1,0x40,0x10,0x01,0x56,0xF7,0x08,0xFE,0x10,0x08, +0x54,0xFD,0xAD,0x08,0x60,0xFD,0xEF,0x08,0x5C,0xFD,0x4A,0x0B,0x90,0x22,0xE1,0x6C, +0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x07,0x8E,0x22,0xE5,0x40,0xC3,0x00,0x10,0x01,0x0A, +0xEA,0x18,0xFF,0x18,0x01,0x64,0x0B,0x58,0x0A,0xD7,0x57,0x01,0x04,0xCB,0x20,0x07, +0xFF,0x43,0x59,0xD5,0xD6,0xFA,0x00,0xAC,0x0A,0xEA,0x16,0x0B,0x18,0x06,0xD7,0x17, +0x00,0x5C,0x43,0x19,0xC5,0xD6,0xF8,0x01,0x18,0xE7,0xFF,0xE3,0xBA,0x9A,0xE3,0x0E, +0xED,0x00,0xC2,0xE0,0x10,0x01,0x18,0x10,0x00,0xF8,0x17,0x08,0x76,0x18,0x0F,0x00, +0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x67,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08,0x50, +0x22,0xE0,0x24,0x98,0x60,0xE7,0xFF,0xC2,0x8A,0x0E,0xED,0x02,0x22,0xE0,0x96,0x0A, +0xEE,0x01,0x56,0xF7,0x40,0xD2,0xE0,0x4B,0x62,0x98,0x63,0xE7,0xFF,0xE4,0xB0,0xE7, +0xFF,0x1C,0x40,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x76,0x9A,0xE1,0xE4,0x00,0x14, +0x21,0x22,0xE5,0x0E,0x0A,0xEE,0x01,0x57,0x17,0x08,0x23,0x00,0x2C,0xE7,0xFF,0xE2, +0xF2,0xE4,0x00,0x12,0xEF,0x57,0x17,0x40,0x23,0x00,0x94,0xC6,0xF7,0x20,0x00,0x22, +0xE0,0x7A,0xC2,0xE0,0x10,0x01,0x98,0x62,0xF3,0x17,0x08,0x76,0xC3,0x00,0x19,0x0A, +0x20,0x24,0x8F,0x9F,0x01,0xFB,0x17,0x08,0x76,0xE4,0x00,0x13,0xAF,0x0C,0x0D,0x00, +0xE4,0x00,0x13,0xA1,0xC2,0x20,0x10,0x01,0xFE,0x31,0x08,0x64,0x22,0xE8,0xAA,0x0A, +0xEE,0x01,0x56,0xF7,0x08,0x22,0xE0,0x68,0x12,0xF0,0x00,0x9E,0xE1,0x1A,0xF0,0x00, +0xE7,0xFF,0x1B,0x9E,0x12,0xF0,0x00,0xD2,0xE1,0x4D,0x49,0xE4,0x00,0x0E,0x75,0x18, +0x10,0x00,0xE4,0x00,0x11,0x25,0xC1,0x80,0x10,0x01,0xC1,0x60,0x10,0x01,0xFD,0x8C, +0x0B,0x70,0xFD,0x6B,0x08,0x28,0xD2,0xE3,0x38,0x96,0xE7,0xFF,0xCC,0x5E,0xC3,0x00, +0x10,0x01,0xC2,0xE0,0x10,0x01,0xFF,0x20,0x03,0xE8,0x20,0x68,0x1C,0xFF,0x20,0x01, +0xF4,0xEF,0x37,0x03,0x7B,0xEF,0x38,0x03,0x79,0x0A,0xEE,0x01,0x56,0xF7,0x08,0xD2, +0xE0,0x37,0x02,0xC1,0xC0,0x10,0x01,0xC2,0x00,0x10,0x01,0x12,0xEA,0x00,0xFD,0xCE, +0x08,0x94,0xFE,0x10,0x03,0x6C,0xD2,0xE1,0x0F,0xB9,0x0B,0x8B,0x04,0xC3,0x8F,0xFF, +0xE0,0x20,0x06,0x6D,0x08,0xAA,0x48,0x0B,0x2B,0x06,0x0B,0x6B,0x00,0x43,0xA5,0xCD, +0x08,0xCA,0x46,0x0B,0x4B,0x02,0x43,0xC6,0xE5,0x0B,0x0A,0x18,0x08,0x8A,0x16,0x42, +0xFA,0xC5,0x41,0x04,0xDD,0x42,0xFE,0xBB,0x41,0x3D,0x43,0x8E,0xE9,0x22,0xE1,0x84, +0x42,0x7C,0xDD,0x41,0x3A,0xCD,0x42,0x9D,0x9B,0x42,0x5E,0x4B,0x8E,0x92,0x22,0x80, +0x40,0x26,0x80,0x28,0x26,0xE0,0x2A,0xE4,0x00,0x00,0x8F,0x26,0xFD,0x0E,0x4E,0xB7, +0xFA,0x46,0x55,0xBE,0x42,0x52,0xAD,0x4E,0xB4,0xFA,0x46,0x95,0xA6,0x42,0xB4,0xAD, +0xD6,0xB2,0x01,0x74,0x42,0x98,0xD5,0x41,0x28,0x4B,0x42,0x74,0x9B,0x8E,0x69,0x22, +0x60,0x40,0x26,0x60,0x28,0x26,0xE0,0x2A,0xE4,0x00,0x00,0x2D,0x26,0xFC,0x4A,0x4E, +0xF3,0xFA,0x46,0x77,0x9E,0x42,0x73,0xBD,0x9A,0xE1,0xD6,0x72,0x06,0x18,0x42,0x45, +0xD5,0x42,0x66,0xDD,0x42,0x84,0xE5,0x42,0xF9,0xC5,0x41,0x32,0xA3,0x42,0xF3,0xBB, +0x8E,0xE9,0x22,0xE0,0xDC,0x43,0x9B,0xE5,0x41,0x39,0xD5,0x40,0xF2,0xE3,0x42,0xB3, +0x4B,0x8C,0xF5,0x20,0xE0,0x40,0x24,0xE0,0x28,0x26,0xE0,0x2A,0xE4,0x00,0x00,0x3B, +0x26,0xFC,0x66,0x4E,0xB7,0xFA,0x44,0x75,0xBE,0x40,0x63,0xAD,0x4E,0xA7,0xFA,0x44, +0xF5,0x3E,0x42,0xA7,0xAD,0xD6,0xA3,0x01,0xA0,0x43,0x58,0xD5,0x41,0x08,0x43,0x43, +0x5A,0xD3,0x43,0x38,0xCD,0x42,0x94,0xA3,0x43,0x39,0xCB,0x8F,0x48,0x8E,0x99,0x9A, +0xE0,0xD6,0x9A,0x00,0x45,0x8B,0x54,0x9A,0xE1,0x42,0x73,0x9B,0x42,0x52,0x93,0x8E, +0x53,0xD6,0x5A,0x01,0xB1,0xE4,0x00,0x00,0x6F,0x42,0xB8,0xCD,0x41,0x34,0x4B,0x43, +0x95,0xE3,0x8F,0x89,0x23,0x80,0x40,0x27,0x80,0x28,0x26,0xE0,0x2A,0xE7,0xFF,0xFF, +0x79,0x26,0xFE,0xE2,0x4E,0xFC,0xFA,0x47,0x97,0xE6,0x43,0x9C,0xBD,0x9A,0xE0,0xD7, +0x83,0x00,0xF0,0xE7,0xFF,0xFF,0x4D,0x8B,0x52,0x52,0xE0,0x10,0x43,0xDE,0xF3,0x43, +0xBD,0xEB,0x53,0x20,0x11,0x8F,0xBE,0x5F,0xBA,0x1F,0x4A,0xF7,0xC8,0x4F,0x37,0x21, +0x46,0xF7,0xCE,0x56,0xF7,0x0F,0xD2,0xE0,0x3B,0x5A,0x0C,0xCA,0x17,0x0C,0xAA,0x19, +0x0C,0x8A,0x47,0x0F,0x0A,0x49,0xE4,0x00,0x0E,0xB7,0xC2,0xE0,0x10,0x01,0x9B,0x3E, +0xF3,0x17,0x08,0x19,0x47,0x18,0xCC,0x98,0x63,0xFB,0x17,0x08,0x19,0xE7,0xFF,0xDB, +0x24,0x12,0xF0,0x00,0x1A,0xEA,0x10,0x12,0xF0,0x01,0x1A,0xEA,0x40,0xE7,0xFF,0x17, +0xA4,0x12,0xEA,0x00,0xD2,0xE1,0x3B,0xD6,0xE4,0x00,0x02,0x73,0x0A,0xEB,0x00,0xC2, +0xEF,0xFF,0xE4,0x23,0xFF,0x7B,0x0B,0xCB,0x02,0x0B,0x2A,0x16,0x0B,0x0A,0x18,0x43, +0xB9,0xBD,0x43,0x98,0xF5,0x0B,0x6A,0x46,0x0B,0x4A,0x48,0x42,0xFB,0xBD,0x43,0xDA, +0xF5,0x42,0xF7,0xBB,0x43,0xDE,0xF3,0x8E,0xFE,0x43,0xBD,0xEB,0x43,0x9C,0xE3,0x8F, +0x9D,0x5E,0xFC,0x1F,0x52,0xE0,0x10,0x4A,0xE0,0xB8,0x22,0xE2,0x9C,0x0F,0x6A,0x17, +0x0F,0x4A,0x19,0x0F,0x2A,0x47,0x0F,0x0A,0x49,0xE7,0xFF,0xFF,0x31,0x22,0xE6,0x52, +0x0A,0xEB,0x04,0xC2,0xEF,0xFF,0xE0,0x23,0xFE,0x29,0x0B,0xCA,0x16,0x0B,0xAA,0x18, +0x0B,0x0B,0x00,0x0B,0x2B,0x02,0x43,0x9E,0xC5,0x43,0x7D,0xCD,0x43,0xDE,0xBD,0x0B, +0x4B,0x06,0x43,0xDE,0xF3,0x43,0xBD,0xD5,0x43,0x9C,0xE3,0x43,0xBD,0xEB,0x43,0x7B, +0xDB,0x8F,0xBE,0x8F,0x7C,0xD7,0xBB,0x35,0x39,0xE4,0x00,0x0D,0x7F,0x0B,0x8C,0x03, +0x43,0x99,0xE5,0x5F,0x9C,0x06,0x4F,0x7C,0xFA,0x47,0x9B,0xE6,0x43,0x7C,0xDD,0xC3, +0x60,0x10,0xE8,0x20,0x00,0xD9,0x0B,0x8C,0x03,0xC3,0x60,0x10,0x01,0xEF,0x9B,0x08, +0x79,0xFF,0x7B,0x08,0x78,0x0B,0x8C,0x07,0x0F,0x9B,0x03,0xC3,0x60,0x10,0x01,0xEF, +0x1B,0x08,0x69,0xC3,0x00,0x10,0x01,0xFF,0x7B,0x08,0x68,0x0F,0x3B,0x03,0xF3,0x38, +0x08,0x19,0x53,0x39,0x02,0xFB,0x38,0x08,0x19,0x0B,0x0E,0x05,0x0F,0x0E,0x01,0x0B, +0x0E,0x07,0x0F,0x0E,0x03,0x0B,0x0C,0x09,0x0F,0x0C,0x01,0x0B,0x0C,0x0B,0x0F,0x0C, +0x03,0x0B,0x0C,0x0D,0x0E,0xEB,0x01,0x0F,0x0C,0x05,0xFE,0xE0,0x7F,0xFF,0x0B,0x0C, +0x0F,0x0E,0xEB,0x05,0x0E,0xEB,0x07,0x0E,0xEE,0x05,0x0E,0xEE,0x07,0x0E,0xEC,0x09, +0x0E,0xEC,0x0B,0x0F,0x0C,0x07,0x0E,0xEC,0x0D,0x0E,0xEC,0x0F,0x9B,0x01,0x12,0xF0, +0x01,0x0F,0x4B,0x03,0x1A,0xF0,0x00,0x42,0xF8,0xBD,0x1A,0xF0,0x01,0xE7,0xFF,0xFD, +0x69,0x0A,0xEA,0x17,0x0B,0x0B,0x01,0x43,0x18,0xBD,0x5F,0x18,0x06,0x4E,0xF8,0xFA, +0x47,0x17,0xC6,0x42,0xF8,0xBD,0xC3,0x00,0x10,0x01,0xEB,0x38,0x03,0x78,0xD6,0xF9, +0x01,0x2C,0x0A,0xEA,0x19,0x0B,0x0B,0x03,0x43,0x18,0xBD,0x5F,0x18,0x06,0x4E,0xF8, +0xFA,0x47,0x17,0xC6,0x42,0xF8,0xBD,0xC3,0x00,0x10,0x01,0xEB,0x38,0x03,0x7A,0xD6, +0xF9,0x2F,0xF8,0xE7,0xFF,0x15,0x60,0xD0,0x60,0x2F,0xBA,0xE7,0xFF,0xDB,0x36,0xC2, +0xE0,0x10,0x01,0xEF,0x17,0x07,0x8E,0xD3,0x01,0x2F,0x3E,0xE4,0x00,0x0B,0xEF,0x9A, +0xFE,0x0E,0xF1,0x01,0xC1,0xA0,0x10,0x01,0x13,0x2A,0x00,0xFD,0xAD,0x0B,0xA6,0x9B, +0x00,0x8A,0xED,0xE4,0x00,0x00,0x35,0x0B,0x57,0x01,0x9F,0x01,0x0F,0x4B,0x01,0x5F, +0x18,0x00,0x0B,0x57,0x03,0x1E,0xF7,0x30,0x0F,0x4B,0x03,0x9D,0x64,0xD7,0x19,0xFF, +0x56,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x08,0x3A,0x22,0xE4,0x26,0x99,0x60,0xE4,0x00, +0x00,0x5F,0xE7,0xFF,0xC4,0xEE,0x20,0x6B,0xD8,0xE7,0xFF,0xC4,0xE0,0x20,0x6C,0xAE, +0xE7,0xFF,0xFF,0xD9,0xCC,0x8B,0x00,0x30,0x88,0xCB,0x1C,0x84,0x10,0x9D,0x61,0x8C, +0x8A,0x5D,0x6B,0x00,0x1C,0x64,0x06,0x9C,0x88,0xE7,0xFF,0x50,0x5E,0x10,0xAA,0x00, +0xD4,0xAB,0xFF,0x25,0xE4,0x00,0x00,0x11,0xE7,0xFF,0x4F,0xB0,0xE7,0xFF,0xC4,0x7A, +0xC3,0x20,0x10,0x01,0xC3,0x00,0x10,0x01,0xC2,0xE0,0x10,0x01,0x20,0x68,0xD6,0x53, +0x40,0x4B,0xEF,0x58,0x08,0x89,0xEF,0x59,0x08,0x53,0x53,0x00,0x25,0xEF,0x17,0x08, +0x9F,0xC2,0x20,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFE,0x31,0x08,0x40,0xEF,0x17,0x08, +0x75,0x99,0x60,0xC2,0x60,0x10,0x01,0xC2,0x80,0x10,0x01,0x8A,0x51,0xE4,0x00,0x03, +0x19,0x53,0x40,0x32,0xEF,0x58,0x08,0x89,0xEF,0x59,0x08,0x53,0x53,0x00,0x19,0xE7, +0xFF,0xFF,0x9D,0x4E,0xEB,0x10,0x8E,0xEE,0x0B,0x17,0x00,0xC3,0x0F,0xFF,0xE4,0x20, +0x05,0x3B,0x0B,0x37,0x02,0xC3,0x2F,0xFF,0xE0,0x20,0x05,0x11,0xCE,0xEB,0x00,0x30, +0x8E,0xEA,0x0A,0x17,0x17,0x42,0x18,0x85,0x5E,0x10,0x06,0x4F,0x10,0xFA,0x0A,0xF7, +0x19,0x46,0x18,0x86,0x42,0xF9,0xBD,0x42,0x10,0xC5,0x5E,0xF7,0x06,0x4F,0x17,0xFA, +0x5E,0x10,0x06,0x46,0xF8,0xBE,0xE9,0xF3,0x08,0x89,0x42,0xF7,0xC5,0x43,0x11,0x5C, +0x5E,0xF7,0x06,0x13,0x58,0x00,0xD6,0xEF,0x00,0xE4,0xC3,0x00,0x10,0x01,0xEB,0x18, +0x08,0x53,0xD6,0x18,0x00,0x84,0x9B,0x03,0x27,0x48,0x57,0x1F,0x1A,0x01,0xE4,0x00, +0x00,0x19,0x9B,0x00,0x23,0x40,0x24,0x1F,0x1A,0xFF,0x5F,0x18,0x00,0x43,0x52,0x5C, +0x1B,0x1A,0x00,0x43,0x11,0x5C,0x13,0x18,0x00,0xD3,0x02,0x06,0xA1,0xEB,0x14,0x08, +0x75,0xD6,0xF8,0x00,0x8C,0xCE,0xEB,0x00,0x30,0x8E,0xEA,0x0F,0x37,0x19,0xE4,0x00, +0x00,0x9B,0xD6,0xEF,0x02,0x4C,0x43,0x2F,0xC5,0x40,0x77,0xC5,0x43,0x39,0xCB,0x42, +0xF8,0xBD,0x43,0x4F,0x7B,0x40,0x63,0xBB,0x8C,0x79,0x40,0x63,0xD3,0x40,0x63,0xC8, +0xE7,0xFF,0x10,0xD0,0x4E,0xEB,0x10,0x8E,0xEE,0x5C,0x63,0x06,0x0B,0x17,0x02,0x41, +0xEF,0x1D,0xCE,0xEB,0x00,0x30,0x8E,0xEA,0x0B,0x37,0x18,0xD7,0x19,0x00,0x58,0x41, +0xF8,0x7D,0xE4,0x00,0x00,0x0D,0x8D,0xF8,0x0D,0xF7,0x19,0xC2,0xE0,0x10,0x01,0xEA, +0xF7,0x08,0x9F,0xD6,0x17,0x00,0xCC,0xCE,0xEB,0x00,0x30,0x4F,0x0B,0x10,0x8E,0xEA, +0x8F,0x0E,0x0B,0x18,0x01,0x0F,0x17,0x17,0xE4,0x00,0x00,0xAB,0xC3,0x00,0x10,0x01, +0xE9,0xF8,0x08,0x53,0xD6,0x0F,0x02,0x4C,0x43,0x0F,0xBD,0x43,0x2F,0x7B,0x43,0x18, +0xC3,0x40,0x70,0xBD,0x42,0x17,0x85,0x40,0x63,0x83,0x8C,0x78,0x40,0x63,0xCB,0x40, +0x63,0xC0,0xE7,0xFF,0x0F,0xEC,0x4E,0xEB,0x10,0x8E,0xEE,0x5C,0x63,0x06,0x0B,0x17, +0x00,0x41,0xEF,0x1D,0xCE,0xEB,0x00,0x30,0x8E,0xEA,0x0B,0x37,0x16,0xD7,0x19,0x00, +0x58,0x41,0xF8,0x7D,0xE4,0x00,0x00,0x0D,0x8D,0xF8,0x0D,0xF7,0x17,0x4E,0xEB,0x10, +0xCF,0x0B,0x00,0x30,0x8E,0xEE,0x8F,0x0A,0x9D,0x61,0x0B,0x38,0x17,0x5D,0x6B,0x00, +0x0B,0x18,0x19,0x0F,0x37,0x01,0x0F,0x17,0x03,0x12,0xEA,0x00,0xD6,0xEB,0xF4,0x3D, +0xE7,0xFF,0xC0,0xD2,0x20,0x68,0x36,0x9B,0x08,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x03, +0x71,0xC2,0xE0,0x10,0x01,0x13,0x2A,0x00,0xF3,0x77,0x08,0x84,0x8B,0x0D,0xC2,0xE0, +0x10,0x01,0x9B,0x80,0xFE,0xF7,0x0B,0x74,0xFF,0x40,0x7F,0xFF,0xE4,0x00,0x00,0x9F, +0xD7,0x79,0x00,0x92,0x0F,0x57,0xFD,0x0F,0x57,0xFF,0x0F,0x57,0x01,0x0F,0x57,0x03, +0x8B,0x79,0x0B,0xB7,0x00,0xC3,0xAF,0xFF,0xE0,0x20,0x00,0x41,0x0B,0xB7,0xFD,0x0F, +0xB7,0x01,0x0B,0xB7,0xFF,0xE4,0x00,0x00,0x1B,0x0B,0xB8,0x01,0x0F,0xB7,0x01,0x0B, +0xB8,0x03,0x0F,0xB7,0x03,0x0B,0xB8,0x01,0x9F,0x81,0x0F,0xB7,0xFD,0x5F,0x9C,0x00, +0x0B,0xB8,0x03,0x1F,0x18,0x30,0x0F,0xB7,0xFF,0x9E,0xE8,0xD7,0x99,0xFD,0xAE,0xC2, +0xE0,0x10,0x01,0xFB,0x77,0x08,0x84,0xC2,0xE0,0x10,0x01,0x23,0x24,0x7A,0x9B,0x02, +0xFB,0x17,0x08,0xA1,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x03,0x70,0x9B,0x0A,0x9B,0x4A, +0x43,0x18,0xBD,0x9A,0xE0,0xE4,0x00,0x00,0x8F,0xF8,0x17,0x08,0xA1,0xE7,0xFF,0xFF, +0xCF,0x0B,0x6C,0x04,0x0B,0x8C,0x00,0x0B,0xAC,0x06,0x43,0x9C,0xDD,0x9E,0xE1,0x43, +0x98,0xE3,0x5E,0xF7,0x00,0x43,0x9C,0xD0,0x8F,0x9B,0x0B,0x6C,0x02,0x0F,0x8D,0x01, +0x43,0x7B,0xED,0x0F,0x8C,0x01,0x43,0x78,0xDB,0x43,0x7B,0xD0,0x8F,0x7D,0x5F,0x7B, +0x06,0x0F,0x6D,0x03,0x0F,0x6C,0x03,0x1D,0xAD,0x30,0x9D,0x88,0xD6,0xF9,0xFE,0x2E, +0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08,0x19,0x56,0xF7,0x02,0x22,0xE0,0x24,0x98,0x64, +0xE7,0xFF,0xD1,0x1E,0x13,0x0A,0x00,0xC2,0xE0,0x10,0x01,0x0E,0xA1,0x06,0x0E,0x81, +0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D,0xE1,0x1E, +0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32,0x0D, +0x21,0x36,0xFB,0x17,0x08,0x26,0x98,0x61,0x1C,0x21,0x38,0xE7,0xFF,0xB3,0x1F,0x18, +0x0F,0x00,0x9A,0xE4,0xE4,0x00,0x04,0xF3,0xD2,0xE4,0x01,0xA6,0x0A,0xEE,0x01,0x56, +0xF7,0x08,0x22,0xE0,0x3C,0x9A,0xE3,0x0C,0x11,0x01,0x0E,0xED,0x00,0xE4,0x00,0x04, +0xC7,0x12,0xEF,0x00,0x9E,0xE1,0x5E,0xF7,0x00,0x1A,0xEF,0x00,0xD2,0xE1,0x12,0xA1, +0x9A,0xE5,0x18,0x0F,0x00,0x0E,0xED,0x00,0xE4,0x00,0x04,0x91,0xD2,0xE5,0x09,0xF6, +0x12,0xEF,0x00,0x9E,0xE1,0x1A,0xEF,0x00,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08,0x84, +0x22,0xE9,0x4A,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08,0x19,0x56,0xF7,0x01,0x22,0xE1, +0x10,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xA1,0xC1,0x40,0x10,0x01,0xF2,0xEA,0x08, +0x11,0x22,0xE8,0x66,0x98,0x65,0xE7,0xFF,0xCF,0xB2,0x98,0x61,0xE7,0xFF,0xB2,0x1C, +0x9A,0xE1,0xFA,0xEA,0x08,0x11,0xE4,0x00,0x01,0x75,0xD2,0xE1,0x05,0x8E,0x98,0x65, +0xE7,0xFF,0xCF,0x7E,0x98,0x61,0xE7,0xFF,0xB1,0xE8,0xF8,0x0A,0x08,0x11,0xE4,0x00, +0x01,0x45,0x0B,0x0B,0x00,0x0B,0x4C,0x00,0x43,0x38,0xD5,0x5F,0x39,0x06,0x4E,0xF9, +0xFA,0x47,0x37,0xCE,0x42,0xF9,0xBD,0x5E,0xEC,0x99,0x20,0x00,0x7D,0x0A,0xEC,0x03, +0x0B,0x2B,0x03,0x43,0x39,0xBD,0x5F,0x39,0x06,0x4E,0xF9,0xFA,0x47,0x37,0xCE,0x42, +0xF9,0xBD,0xC2,0xE0,0x10,0xE8,0x20,0x01,0x95,0xC3,0x20,0x10,0x01,0xF2,0xF9,0x08, +0xA1,0x22,0xE8,0xB6,0x8F,0x1A,0x43,0x18,0xB8,0x0F,0x0A,0x17,0xC3,0x00,0x10,0x01, +0xEB,0x58,0x08,0x2A,0xC3,0x00,0x10,0x01,0xEB,0x18,0x0B,0x72,0x8F,0x1A,0x42,0xF8, +0xB8,0x0E,0xEA,0x19,0x9A,0xE1,0xFA,0xF9,0x08,0xA1,0xE4,0x00,0x00,0x45,0x22,0xE4, +0x66,0xC2,0xE0,0x10,0x01,0x0F,0x0A,0x17,0xEA,0xF7,0x08,0x2B,0xF8,0x19,0x08,0xA1, +0x0E,0xEA,0x19,0xE4,0x00,0x00,0x13,0x9A,0xE3,0x1A,0xEF,0x00,0x9A,0xE1,0x98,0x61, +0x1A,0xEA,0x00,0xE7,0xFF,0xB0,0xAE,0xE4,0x00,0x00,0x13,0x9A,0xE3,0x1A,0xEF,0x00, +0x12,0xEF,0x00,0xD2,0xE2,0x09,0xE9,0x98,0x62,0x0C,0x11,0x01,0xE7,0xFF,0xD2,0xCE, +0xE7,0xFF,0x0A,0x5E,0xC2,0xE0,0x10,0x01,0x9B,0x03,0xFB,0x17,0x08,0x50,0xE7,0xFF, +0xD1,0x30,0xE7,0xFF,0x46,0xBC,0x98,0x60,0xE7,0xFF,0xB0,0x44,0xC2,0xE0,0x10,0x01, +0xF8,0x17,0x08,0x67,0x9A,0xE6,0xE4,0x00,0x02,0x0F,0xD2,0xE6,0x08,0x36,0x0A,0xEE, +0x01,0x56,0xF7,0x40,0x22,0xE0,0x26,0x98,0x64,0xE7,0xFF,0xEB,0xA6,0xC3,0x00,0x10, +0x01,0xF2,0xF8,0x08,0x67,0x9E,0xE1,0x5E,0xF7,0x00,0xFA,0xF8,0x08,0x67,0x5E,0xE6, +0x53,0x0A,0xEE,0x01,0x20,0x01,0x35,0x56,0xF7,0x40,0x22,0xE0,0x50,0x9A,0xE1,0x0E, +0xED,0x00,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x76,0xE4,0x00,0x01,0x8D,0x0C,0x0D, +0x00,0x98,0x60,0x0E,0xA1,0x06,0x0E,0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E, +0x21,0x16,0x0E,0x01,0x1A,0x0D,0xE1,0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81, +0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32,0x0D,0x21,0x36,0x1C,0x21,0x38,0xE7,0xFF,0xEA, +0xDF,0x56,0xF7,0x08,0xD2,0xE0,0x04,0x62,0x18,0x10,0x00,0x9A,0xE2,0xE4,0x00,0x01, +0x01,0xC3,0x6F,0xFF,0xE4,0x23,0xE2,0x95,0xE7,0xFF,0xF1,0x73,0x0B,0x8C,0x01,0x43, +0x98,0xE5,0x5F,0x9C,0x06,0x4F,0x7C,0xFA,0x47,0x9B,0xE6,0x43,0x7C,0xDD,0x5F,0x6C, +0x99,0x23,0xE5,0x33,0xE7,0xFF,0xF2,0xC5,0x98,0x62,0xE7,0xFF,0xCC,0x4A,0xFE,0xE0, +0x7F,0xFF,0x0E,0xEB,0x05,0x0E,0xEB,0x07,0x0E,0xEE,0x05,0x0E,0xEE,0x07,0x0E,0xEC, +0x09,0x0E,0xEC,0x0B,0x0E,0xEC,0x0D,0x0E,0xEC,0x0F,0xE7,0xFF,0xF0,0xEF,0x0A,0xF1, +0x01,0xCB,0x00,0xFF,0xFD,0x9E,0xE1,0x5E,0xF7,0x04,0xD6,0xF8,0xD0,0xAD,0xE7,0xFF, +0xF4,0x27,0xFE,0xE0,0x7F,0xFF,0x18,0x0F,0x00,0x0E,0xEB,0x01,0x0E,0xEB,0x03,0x0E, +0xEB,0x05,0x0E,0xEB,0x07,0x18,0x10,0x00,0x1B,0x10,0x01,0x9A,0xE5,0x0E,0xED,0x00, +0x0E,0xA1,0x06,0x0E,0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E, +0x01,0x1A,0x0D,0xE1,0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61, +0x2E,0x0D,0x41,0x32,0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0x9C,0x38,0x0D,0x21, +0x04,0x0D,0x41,0x00,0x89,0x43,0x98,0x60,0x88,0x8A,0xE7,0xFF,0xE6,0x12,0x88,0x8A, +0x0D,0x21,0x06,0x0D,0x41,0x02,0x98,0x68,0x9C,0x28,0xE7,0xFF,0xE5,0xF3,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x3D,0xF9,0x1C,0x21,0xC8,0x0D,0x21,0x34,0x0D,0x41,0x30,0x0D, +0x61,0x2C,0x0D,0x81,0x28,0x0D,0xA1,0x24,0x0D,0xC1,0x20,0x0D,0xE1,0x1C,0x0E,0x01, +0x18,0x0E,0x21,0x14,0x0E,0x41,0x10,0x0E,0x61,0x0C,0x0E,0x81,0x08,0x13,0x17,0x00, +0xC2,0xE0,0x10,0x01,0xFB,0x17,0x00,0xC0,0xF3,0x17,0x00,0xC0,0x23,0x00,0x2C,0xF2, +0xF7,0x00,0xC0,0xD2,0xE1,0x30,0x2E,0xC1,0x80,0x10,0x01,0xC1,0xE0,0x10,0x01,0xFD, +0x8C,0x08,0x86,0xFD,0xEF,0x00,0xE0,0x0A,0xEC,0x01,0x56,0xF7,0x80,0xD2,0xE0,0x2E, +0x1E,0xC2,0xE0,0x10,0x01,0xC1,0xA0,0x10,0x01,0xF3,0x17,0x00,0xC0,0xFD,0xAD,0x09, +0x0C,0x23,0x08,0xB2,0xF2,0xF7,0x00,0xC0,0x22,0xE8,0x68,0x0B,0x2D,0x02,0x9B,0x42, +0xCF,0x19,0x00,0x03,0x0A,0xED,0x00,0x43,0x18,0xD0,0xD6,0xF8,0x02,0x14,0xE4,0x00, +0x00,0x9B,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x07,0x09,0x22,0xE3,0x86,0x8B,0x0D,0x9A, +0xE0,0x9B,0x22,0x5F,0x57,0x00,0x27,0x44,0x3D,0x5E,0xE3,0x01,0x20,0x00,0x25,0x5E, +0xE3,0x29,0x20,0x00,0x31,0x0B,0x58,0x00,0x43,0x5A,0xC8,0x0F,0x58,0x01,0x9E,0xE1, +0x9F,0x02,0x5E,0xE3,0x49,0x23,0xFF,0x79,0xE7,0xFF,0xFF,0x67,0x42,0xF7,0xC5,0x43, +0x57,0xD0,0x8F,0x1A,0x0F,0x0D,0x01,0xE4,0x00,0x00,0x43,0x4E,0xF7,0x08,0x9B,0x1D, +0x43,0x17,0xC0,0x8F,0x38,0x9B,0x0B,0xCF,0x39,0x00,0x0A,0x43,0x39,0xC0,0x9B,0x03, +0x42,0xF7,0xC0,0x8E,0xF9,0x0E,0xED,0x03,0x0A,0xED,0x30,0x0B,0x0D,0x32,0x4F,0x37, +0x08,0xD7,0x19,0x00,0xC0,0xCE,0xF7,0xFF,0xFE,0x9B,0x43,0x8F,0x17,0x43,0x18,0xD0, +0x8F,0x38,0x0F,0x2D,0x33,0xE4,0x00,0x00,0x37,0x9B,0x22,0x43,0x18,0xC8,0x53,0x20, +0x14,0x42,0xF7,0xC5,0xCE,0xF7,0x00,0x13,0x42,0xF7,0xC8,0x8F,0x17,0x0F,0x0D,0x31, +0xC1,0x40,0x10,0x01,0xFD,0x4A,0x0B,0x1A,0x12,0xEA,0x04,0x10,0x6A,0x01,0x40,0x63, +0xBB,0xE7,0xFF,0xCC,0xD8,0x13,0x0A,0x01,0xC3,0x20,0x10,0x01,0x13,0x4A,0x04,0xEA, +0xF9,0x09,0xBC,0x43,0x5A,0xC3,0xFF,0x79,0x09,0xBC,0x9B,0x00,0xE4,0x00,0x00,0x35, +0x4F,0x38,0x10,0x9F,0x01,0x8F,0x3B,0x5F,0x18,0x00,0x0F,0x39,0x02,0x5F,0x99,0x06, +0x5F,0x37,0x1D,0x4A,0xFC,0xB8,0xD7,0x58,0xFF,0x54,0xC1,0x40,0x10,0x01,0xC2,0xE2, +0x32,0x88,0xFD,0x4A,0x01,0x64,0x20,0x00,0x35,0x4E,0xF7,0x0A,0x0E,0xEA,0x19,0xE4, +0x00,0x00,0x2F,0x53,0x00,0xDF,0xC2,0xE0,0x6F,0x68,0x20,0x00,0x25,0x4E,0xF7,0x12, +0x5F,0x17,0x06,0x0F,0x0A,0x19,0x88,0x6A,0xE7,0xFF,0x14,0xEE,0xC1,0x60,0x10,0x01, +0x89,0xCD,0xFD,0x6B,0x0B,0x90,0x8A,0xED,0x12,0x2B,0x00,0x53,0x20,0x14,0x0B,0x17, +0x00,0xCF,0x18,0x00,0x19,0x43,0x18,0xC8,0x0F,0x17,0x01,0xC3,0x00,0x10,0x01,0x9E, +0xE2,0xFF,0x18,0x09,0x40,0xD6,0xF8,0xFF,0x4E,0x88,0x6A,0xE7,0xFF,0x14,0x88,0xC2, +0x00,0x10,0x01,0x9A,0xE0,0xFE,0x10,0x08,0x26,0x22,0x20,0x4A,0x13,0x0B,0x00,0x27, +0x04,0x33,0x12,0xF0,0x00,0x5E,0xE0,0x01,0x4A,0xE1,0x01,0x13,0x0B,0x00,0x23,0x09, +0x2E,0x13,0x10,0x00,0x23,0x05,0x3A,0x13,0x2B,0x07,0x13,0x0B,0x37,0xD7,0x38,0x02, +0x2A,0x0F,0x0B,0x0A,0x23,0x04,0xFA,0x0F,0x0B,0x3A,0x23,0x04,0xE2,0xC3,0x00,0x10, +0x01,0xEB,0x38,0x0B,0x72,0xC3,0x2F,0xFF,0xE0,0x20,0x00,0xA5,0xFF,0x39,0xFC,0x01, +0x4F,0x19,0xFA,0x47,0x38,0xCE,0x43,0x19,0xC5,0xC3,0x20,0x10,0x01,0xEB,0x59,0x0B, +0x25,0xD7,0x1A,0x00,0xA4,0xE4,0x00,0x00,0x1B,0x23,0x04,0x26,0x13,0x10,0x00,0x23, +0x00,0x18,0x22,0xE0,0x9C,0x53,0x00,0x19,0x0A,0xEE,0x00,0xCE,0xF7,0x00,0x14,0x42, +0xF7,0xC0,0x0E,0xEE,0x01,0xC3,0x40,0x10,0x01,0x9D,0xC2,0xFF,0x5A,0x09,0x40,0xD5, +0xDA,0xFF,0x4E,0x88,0x6A,0xE7,0xFF,0x13,0x54,0x0E,0xEF,0x02,0x22,0xE4,0x26,0x98, +0x61,0xE7,0xFF,0xCA,0xC4,0x12,0xEB,0x00,0x22,0xE0,0x5A,0xC2,0xE0,0x10,0x01,0xEC, +0x17,0x08,0x38,0x13,0x2B,0x00,0xD3,0x20,0x09,0x86,0xE4,0x00,0x02,0x93,0x98,0x61, +0x98,0x81,0x88,0xAA,0xE7,0xFF,0x0E,0x1C,0x0A,0xEA,0x10,0x0B,0x0A,0x06,0x0B,0x2A, +0x12,0x5D,0xD7,0x04,0x42,0x38,0xBD,0x40,0xB8,0xCD,0xCA,0xE0,0x07,0xFF,0x43,0x37, +0xCD,0x0B,0x4A,0x02,0x0B,0x6A,0x08,0x40,0x97,0xC5,0x5C,0xF9,0x04,0x13,0xCB,0x00, +0x0B,0x2A,0x0A,0x40,0x78,0xD5,0x42,0x77,0xCD,0x40,0xDA,0xC5,0xC2,0xE0,0x10,0x01, +0x42,0x59,0xDD,0x42,0x9B,0xCD,0xFE,0xF7,0x0B,0xA8,0x9B,0xA0,0xC9,0x00,0x07,0xFF, +0xE4,0x00,0x00,0xC5,0x0B,0x97,0xFE,0xD7,0x1C,0x00,0x98,0x43,0x9C,0xD5,0x43,0x9C, +0x8B,0x43,0x9C,0x18,0x8F,0x8E,0xE4,0x00,0x00,0x2D,0xD7,0x84,0x00,0xA8,0x43,0x88, +0xE5,0x43,0x9C,0xD5,0x43,0x9C,0x2B,0x43,0x9C,0x30,0x8F,0x87,0x0F,0x97,0xFF,0x0B, +0x97,0x00,0xD7,0x3C,0x00,0x88,0x43,0x9C,0xDD,0x43,0x9C,0xCB,0x43,0x9C,0x90,0xE4, +0x00,0x00,0x31,0xD7,0x93,0x00,0xB8,0x43,0x88,0xE5,0x43,0x9C,0xDD,0x43,0x9C,0xCB, +0x43,0x9C,0xA0,0xFF,0x9C,0x07,0xFF,0x0F,0x97,0x01,0x9F,0xA1,0x1E,0xF7,0x30,0x5F, +0xBD,0x00,0xD7,0xBE,0xFD,0x16,0x0B,0x0A,0x12,0xCA,0xE0,0x07,0xFF,0x0B,0x2A,0x10, +0x0B,0x4A,0x0C,0x43,0x77,0xCD,0x42,0xF7,0xD5,0x43,0x7B,0xC5,0x0B,0x0A,0x0E,0x43, +0x97,0xC5,0xC2,0xE0,0x10,0x01,0x9B,0x00,0xFE,0xF7,0x0B,0xA6,0xE4,0x00,0x00,0x59, +0x0B,0xB7,0x00,0x43,0xBD,0xCD,0xCF,0xBD,0x07,0xFF,0x43,0xBD,0xD8,0x9F,0x01,0x0F, +0xB7,0x01,0x5F,0x18,0x00,0x0B,0xB7,0x02,0x43,0xBD,0xD5,0xCF,0xBD,0x07,0xFF,0x43, +0xBD,0xE0,0x0F,0xB7,0x03,0x1E,0xF7,0x30,0xD7,0x1E,0xFE,0xC6,0xE7,0xFF,0xFD,0xBF, +0xCF,0x57,0x00,0x30,0x9E,0xE1,0x8F,0x4B,0x0F,0x5A,0x0E,0xC3,0x40,0x95,0xEC,0x4B, +0x18,0x0A,0xE4,0x00,0x00,0x11,0x9A,0xE0,0x8B,0x17,0x5F,0x57,0x00,0xD7,0x3A,0xFF, +0x1D,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x08,0x38,0x0A,0xEC,0x01,0x52,0xF7,0x08,0xE4, +0x00,0x00,0x33,0x9B,0x07,0xC2,0xE0,0x10,0x01,0x18,0x10,0x00,0xEF,0x17,0x03,0x71, +0x0A,0xEC,0x01,0x9B,0x17,0x46,0xF7,0xC4,0x0E,0xEC,0x01,0xC1,0xC0,0x10,0x01,0x0E, +0xEF,0x02,0xFD,0x4E,0x08,0x30,0xD2,0xE1,0x0A,0x6E,0xE7,0xFF,0xE1,0x48,0xC2,0xE0, +0x10,0x01,0x99,0x60,0xEE,0xF7,0x07,0x8E,0x22,0xE5,0x6A,0xE4,0x00,0x02,0x29,0x1C, +0x61,0x01,0x88,0x8F,0x98,0xA3,0xE7,0xFF,0x6A,0x14,0x1E,0xE1,0x08,0x8E,0xEB,0x12, +0xF7,0xF9,0x1F,0x17,0x1A,0x4E,0xF7,0x08,0x4F,0x18,0x08,0x8E,0xF0,0x8F,0x0D,0x0A, +0xF7,0x01,0x0B,0x18,0x00,0xD7,0x17,0x00,0x98,0x9A,0xE1,0x0B,0x0A,0x01,0x4E,0xF7, +0x5C,0x46,0xF7,0xC5,0xE4,0x00,0x00,0x25,0x9A,0xE1,0x0B,0x0A,0x01,0x4E,0xF7,0x5C, +0x46,0xF7,0xBF,0x46,0xF7,0xC4,0x9D,0x61,0x0E,0xEA,0x01,0x5D,0x6B,0x00,0xE4,0x00, +0x00,0x31,0xC1,0xF8,0x00,0x21,0xC2,0x00,0x10,0x01,0xC1,0xC0,0x10,0x01,0xFD,0xEF, +0xB4,0xBA,0xFE,0x10,0x03,0x72,0xF2,0xEE,0x08,0x66,0xD6,0xEB,0xFC,0xAD,0x0A,0xEA, +0x01,0x22,0xE0,0x34,0x0A,0xEC,0x01,0x52,0xF7,0x10,0xE4,0x00,0x00,0x3B,0x0A,0xEC, +0x01,0x57,0x17,0x10,0x23,0x00,0x34,0x9B,0x21,0xC3,0x00,0x10,0x01,0xFB,0x38,0x08, +0x50,0x1F,0x40,0xEF,0x46,0xF7,0xD4,0x0E,0xEC,0x01,0xC1,0x40,0x10,0x01,0xC3,0x00, +0x10,0x01,0xEE,0xEA,0x08,0x5A,0xFF,0x18,0x08,0x77,0x22,0xE0,0x56,0x18,0x18,0x00, +0x0A,0xEC,0x01,0x56,0xF7,0x10,0x22,0xE1,0x64,0x9A,0xE1,0xE4,0x00,0x00,0x41,0x22, +0xE4,0x92,0x12,0xF8,0x00,0x9E,0xE1,0x5E,0xF7,0x00,0x1A,0xF8,0x00,0x0B,0x0C,0x01, +0x57,0x18,0x10,0x23,0x00,0xE0,0x26,0xE4,0xE5,0x9A,0xE2,0xEE,0xEA,0x08,0x58,0xE4, +0x00,0x00,0x61,0x22,0xE8,0x7E,0x18,0x18,0x00,0x0A,0xEC,0x01,0x56,0xF7,0x10,0x22, +0xE0,0x34,0x98,0x62,0xE7,0xFF,0xA3,0x4C,0xE4,0x00,0x00,0x2F,0x9A,0xE3,0xE7,0xFF, +0xFF,0xBB,0x22,0xEC,0x36,0x98,0x60,0xE7,0xFF,0xA3,0x26,0xEC,0x0A,0x08,0x58,0x0B, +0x0C,0x00,0xC2,0xE0,0x10,0x01,0x27,0x1C,0x56,0xF3,0x17,0x08,0x3C,0xD3,0x09,0x08, +0x1D,0x9F,0x01,0xFB,0x17,0x08,0x3C,0xE4,0x00,0x01,0xF3,0xF8,0x17,0x08,0x3C,0xE4, +0x00,0x01,0xFB,0x0E,0xEF,0x02,0xD2,0xE2,0x07,0xB6,0x0A,0xEC,0x01,0x56,0xF7,0x40, +0x22,0xE0,0x26,0x98,0x63,0xE7,0xFF,0xF4,0xEE,0x12,0xEB,0x00,0x22,0xE0,0x36,0x98, +0x60,0x98,0x80,0x98,0xA0,0xE4,0x00,0x00,0x3B,0x22,0xE4,0x3E,0x08,0x6B,0x17,0x08, +0x8B,0x19,0x98,0xA1,0xE4,0x00,0x00,0x1D,0xD2,0xE1,0x06,0x21,0x98,0x60,0x98,0x80, +0x98,0xA2,0x1C,0xC1,0x04,0xE7,0xFF,0xBD,0xD2,0xD0,0x61,0x05,0x9E,0x0E,0xE1,0x06, +0x22,0xE0,0x2A,0x52,0xE0,0x58,0xE4,0x00,0x00,0xD9,0x9E,0xFF,0xD2,0xEB,0x03,0x6D, +0x4E,0xF7,0x10,0xC3,0x18,0x00,0x21,0xFF,0x18,0xBB,0x3C,0x8E,0xF8,0x0E,0xF7,0x02, +0x86,0xE9,0x52,0xE0,0x60,0xE4,0x00,0x00,0x9B,0x52,0xE0,0x61,0xE4,0x00,0x00,0x8D, +0x52,0xE0,0x62,0xE4,0x00,0x00,0x7F,0x52,0xE0,0x63,0xE4,0x00,0x00,0x71,0x52,0xE0, +0x64,0xE4,0x00,0x00,0x63,0x52,0xE0,0x65,0xE4,0x00,0x00,0x55,0x52,0xE0,0x66,0xE4, +0x00,0x00,0x47,0x52,0xE0,0x67,0xE4,0x00,0x00,0x39,0x52,0xE0,0x68,0xE4,0x00,0x00, +0x2B,0x52,0xE0,0x69,0xE4,0x00,0x00,0x1D,0x52,0xE0,0x6A,0xE4,0x00,0x00,0x0F,0x52, +0xE0,0x6B,0x0E,0xEA,0x01,0xE4,0x00,0x00,0x6F,0x0C,0x0A,0x01,0xE4,0x00,0x00,0x61, +0x0E,0xEF,0x02,0x22,0xE4,0xA6,0x9B,0x05,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x08,0x60, +0x9B,0x03,0xC2,0xE0,0x10,0x01,0x98,0x60,0xFB,0x17,0x08,0x50,0xE7,0xFF,0xA0,0xFC, +0xE7,0xFF,0x9B,0xCC,0xE4,0x00,0x00,0x11,0xE7,0xFF,0x9C,0xA6,0xC2,0xE0,0x10,0x01, +0xEB,0x17,0x08,0x33,0xC3,0x00,0x7D,0x0A,0x20,0x00,0x61,0xC3,0x00,0x10,0x01,0x9B, +0x5E,0xF3,0x38,0x08,0x1A,0xEC,0x17,0x08,0x33,0x47,0x39,0xD4,0xFB,0x38,0x08,0x1A, +0x0E,0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D, +0xE1,0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41, +0x32,0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0x9C,0x38,0x0D,0x41,0x00,0x0D,0x21, +0x04,0x89,0x43,0x20,0x84,0x46,0x98,0x60,0x88,0x8A,0xE7,0xFF,0xD8,0x92,0x98,0x68, +0xE4,0x00,0x00,0x1D,0x98,0x62,0x88,0x8A,0xE7,0xFF,0xD8,0x76,0x98,0x69,0x88,0x8A, +0x0D,0x21,0x06,0x0D,0x41,0x02,0x9C,0x28,0xE7,0xFF,0xD8,0x57,0x9C,0x38,0x0D,0x21, +0x04,0x0D,0x41,0x00,0x89,0x43,0x98,0x60,0x88,0x8A,0xE7,0xFF,0xD8,0x32,0x88,0x8A, +0x0D,0x21,0x06,0x0D,0x41,0x02,0x98,0x68,0x9C,0x28,0xE7,0xFF,0xD8,0x13,0xD0,0x69, +0x08,0x05,0x4F,0x03,0x10,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBB,0x6C,0x8E,0xF8,0xC3, +0x20,0x10,0x01,0x0F,0x77,0x02,0xC3,0x40,0x10,0x01,0xC3,0x00,0x10,0x01,0xC2,0xE0, +0x10,0x01,0xFF,0x39,0x09,0xF8,0xFF,0x5A,0x09,0x48,0xFF,0x18,0x0C,0x96,0xFE,0xF7, +0x09,0x0C,0x87,0x69,0xCC,0x63,0x00,0x1A,0x5C,0x63,0x00,0x4F,0x23,0x08,0x4C,0x63, +0x10,0x8F,0x19,0x8E,0xF9,0x8F,0x43,0x9B,0x20,0x43,0x77,0xCC,0x43,0xB8,0xCC,0x4F, +0x99,0x08,0x0B,0xBD,0x01,0x8F,0x9A,0x0F,0x9C,0x02,0x4F,0x9C,0x42,0x43,0x9D,0xE5, +0x0F,0x9B,0x01,0x9F,0x22,0x5F,0x26,0x89,0x23,0xFF,0x85,0xE4,0x00,0x01,0x27,0x9C, +0x7E,0xCC,0x63,0x00,0x1A,0x5C,0x63,0x00,0x4F,0x43,0x08,0x4C,0x63,0x10,0x8F,0x1A, +0x8C,0x79,0x8E,0xFA,0x9B,0x20,0x43,0x77,0xCC,0x43,0xB8,0xCC,0x4F,0x99,0x08,0x0B, +0xBD,0x01,0x8F,0x83,0x0F,0x9C,0x02,0x4F,0x9C,0x42,0x43,0x9D,0xE5,0x0F,0x9B,0x01, +0x9F,0x22,0x5F,0x26,0x89,0x23,0xFF,0x85,0xE4,0x00,0x00,0xAD,0x0B,0x78,0x35,0x0F, +0x3A,0x6A,0x4F,0x39,0x42,0x43,0x3B,0xCD,0x0B,0x78,0x37,0x0F,0x37,0x35,0x0F,0x3A, +0x6E,0x4F,0x39,0x42,0x43,0x3B,0xCD,0x0F,0x37,0x37,0x0F,0x3A,0x72,0xE4,0x00,0x00, +0x4B,0x0F,0x59,0x6A,0x0B,0x78,0x35,0x4F,0x5A,0x42,0x43,0x5B,0xD5,0x0B,0x78,0x37, +0x0F,0x57,0x35,0x0F,0x59,0x6E,0x0F,0x39,0x72,0x4F,0x5A,0x42,0x43,0x5B,0xD5,0x0F, +0x57,0x37,0x4F,0x39,0x42,0x0B,0x18,0x39,0x43,0x18,0xCD,0x0F,0x17,0x39,0x85,0x29, +0x9C,0x38,0x0D,0x21,0x04,0x20,0x64,0x3E,0x98,0x60,0xE7,0xFF,0xFD,0xE8,0x98,0x68, +0xE4,0x00,0x00,0x19,0x98,0x62,0xE7,0xFF,0xFD,0xD0,0x98,0x69,0x0D,0x21,0x06,0x9C, +0x28,0xE7,0xFF,0xFD,0xBB,0x9C,0x38,0x98,0x60,0x0D,0x21,0x04,0xE7,0xFF,0xFD,0xA4, +0x0D,0x21,0x06,0x98,0x68,0x9C,0x28,0xE7,0xFF,0xFD,0x8F,0x9C,0x38,0x0D,0x21,0x04, +0xE7,0xFF,0xA8,0x66,0x20,0x60,0x5E,0xE7,0xFF,0xA8,0x44,0x98,0x80,0xE7,0xFF,0xB5, +0x9A,0xE7,0xFF,0xA8,0x30,0x98,0x82,0xE4,0x00,0x00,0x37,0xE7,0xFF,0xA8,0x30,0x20, +0x64,0x86,0xE7,0xFF,0xA8,0x0E,0x98,0x81,0xE7,0xFF,0xB5,0x64,0xE7,0xFF,0xA7,0xFA, +0x98,0x83,0xE7,0xFF,0xB2,0xB8,0xE7,0xFF,0xCF,0x2C,0x9A,0xE0,0xE4,0x00,0x00,0x8D, +0xE7,0xFF,0xA7,0xE6,0x20,0x68,0x36,0xE7,0xFF,0xA7,0xC4,0x98,0x82,0xE4,0x00,0x00, +0x23,0xE7,0xFF,0xA7,0xC4,0x20,0x6C,0x5E,0xE7,0xFF,0xA7,0xA2,0x98,0x83,0xE7,0xFF, +0xB4,0xF8,0xE7,0xFF,0xA7,0x8E,0x98,0x87,0xE7,0xFF,0xFF,0x95,0xE7,0xFF,0xA7,0x8E, +0x9A,0xE0,0xD0,0x67,0x00,0x86,0xE7,0xFF,0xA7,0x66,0x98,0x87,0xE7,0xFF,0xB4,0xBC, +0x9A,0xE1,0x88,0x77,0x0D,0x21,0x06,0x9C,0x28,0x85,0x29,0x1C,0x21,0xE8,0x0D,0x21, +0x14,0x0D,0x41,0x10,0x0D,0x61,0x0C,0x0D,0x81,0x08,0x80,0x01,0x80,0x01,0x80,0x01, +0x80,0x01,0xE7,0xFF,0x93,0x8C,0x0C,0x61,0x00,0xE7,0xFF,0x93,0x86,0x0C,0x61,0x04, +0x0E,0xE1,0x02,0xD2,0xE0,0x14,0xA2,0x0E,0xE1,0x02,0xC1,0x60,0x10,0x01,0xC1,0x40, +0x10,0x01,0x57,0x17,0x10,0xFD,0x6B,0x00,0xE6,0xFD,0x4A,0x00,0xD4,0xD3,0x00,0x06, +0xCA,0x50,0x60,0x10,0xE7,0xFF,0x93,0x68,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x00,0xC3, +0x9F,0x01,0x5F,0x18,0x04,0xEF,0x17,0x00,0xC3,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08, +0x33,0x23,0x00,0x24,0x9F,0x01,0xEF,0x17,0x08,0x33,0xE7,0xFF,0x93,0x6C,0x0A,0xEB, +0x0B,0x40,0x63,0xBD,0x5E,0xE3,0x04,0x5E,0xE3,0xBB,0x20,0x02,0x3F,0xC2,0xE0,0x10, +0x01,0xEA,0xF7,0x06,0x87,0x56,0xF7,0x20,0xD2,0xE0,0x04,0x0A,0x98,0x61,0xE7,0xFF, +0xB5,0xAC,0x20,0x61,0xDE,0xE7,0xFF,0xA6,0x08,0x20,0x64,0x56,0xC2,0xE0,0x10,0x01, +0xF2,0xF7,0x00,0xC8,0x56,0xF7,0x01,0x22,0xE1,0x8A,0xE4,0x00,0x00,0x1F,0xE7,0xFF, +0xA5,0xD6,0x20,0x63,0xA8,0xE4,0x00,0x00,0xA9,0xE7,0xFF,0xCC,0x18,0xC2,0xE0,0x10, +0x01,0xEB,0x17,0x06,0x87,0xC7,0x18,0xFF,0xDF,0xEF,0x17,0x06,0x87,0xE7,0xFF,0xA5, +0x98,0x20,0x60,0x5E,0x98,0x81,0x98,0xA0,0xE7,0xFF,0x2A,0xF2,0x98,0x60,0x88,0x83, +0xE7,0xFF,0xB0,0x3C,0xE4,0x00,0x00,0x43,0x98,0x80,0x98,0x62,0xE7,0xFF,0xB0,0x24, +0xFC,0x60,0x01,0x5E,0xE7,0xFF,0x5C,0x5E,0x98,0x60,0xE7,0xFF,0x2F,0xDC,0xE7,0xFF, +0x92,0x44,0x0C,0x6B,0x09,0xE7,0xFF,0xCC,0x6E,0x0A,0xEA,0x01,0x52,0xF7,0x10,0x0E, +0xEA,0x01,0xE4,0x00,0x03,0xEF,0x57,0x17,0x40,0x23,0x00,0x38,0x50,0x60,0x40,0xE7, +0xFF,0x91,0xB2,0xE4,0x00,0x03,0xCD,0xC6,0xF7,0x01,0x00,0xD2,0xE0,0x0E,0xF2,0x98, +0x60,0xE7,0xFF,0x91,0x5E,0xFC,0x60,0x01,0x00,0xE7,0xFF,0x91,0x5E,0xFC,0x60,0x01, +0x00,0xE7,0xFF,0x91,0x6E,0xE7,0xFF,0xA4,0xA8,0xD0,0x67,0x0D,0xA5,0xC2,0xF8,0x00, +0x21,0xFE,0xF7,0xBB,0x98,0x4C,0x63,0x10,0x8C,0x77,0x0E,0xE3,0x02,0x86,0xE9,0xE7, +0xFF,0xA4,0x88,0x20,0x60,0x46,0x98,0x80,0xE7,0xFF,0xB1,0xC4,0x98,0x60,0x98,0x87, +0xE4,0x00,0x02,0x77,0xE7,0xFF,0xA4,0x5E,0xD0,0x67,0x0C,0x2E,0x98,0x60,0x98,0x87, +0xE4,0x00,0x01,0xFF,0xE7,0xFF,0xFB,0xCE,0xD0,0x60,0x0B,0xAA,0xE7,0xFF,0xB2,0xEA, +0x5D,0x83,0x04,0x98,0x61,0xE7,0xFF,0xB3,0x9E,0xD0,0x60,0x07,0x56,0xC1,0x80,0x19, +0x0A,0x20,0x03,0x89,0xE7,0xFF,0x2E,0xE4,0xE7,0xFF,0x2E,0xB4,0x5C,0x63,0x00,0x24, +0x64,0x33,0x98,0x61,0xC1,0x80,0x32,0x0A,0x20,0x01,0xE9,0x98,0x80,0x98,0x62,0xE7, +0xFF,0xAE,0x7E,0xFC,0x60,0x01,0x5E,0xE7,0xFF,0x5A,0xB8,0x98,0x60,0xE7,0xFF,0x2E, +0x36,0xE7,0xFF,0x90,0x9E,0x0C,0x6B,0x09,0xE4,0x00,0x01,0xAF,0xE7,0xFF,0xFB,0x1E, +0xD0,0x60,0x08,0xEA,0xE7,0xFF,0xB2,0x3A,0xE7,0xFF,0x5A,0xF8,0xE7,0xFF,0x5B,0x88, +0xD0,0x61,0x04,0x9A,0xE7,0xFF,0x5B,0xA8,0x20,0x64,0xD2,0xE7,0xFF,0x2D,0xC6,0x5C, +0x63,0x00,0xC0,0x60,0x18,0xEE,0x20,0x00,0x1D,0xE7,0xFF,0x2D,0xD2,0xE7,0xFF,0x2D, +0xA2,0x98,0x80,0x5D,0x43,0x00,0x98,0x62,0xE7,0xFF,0xAD,0xCC,0xCC,0x6A,0x00,0x64, +0xFC,0x63,0x01,0x5E,0xE7,0xFF,0x59,0xFE,0xE4,0x00,0x01,0x0F,0xE7,0xFF,0x5B,0x58, +0x98,0x62,0x98,0x80,0xE4,0x00,0x00,0xEF,0xE7,0xFF,0xA2,0xD6,0x20,0x64,0x3E,0xE7, +0xFF,0xA2,0xC8,0x88,0x83,0x98,0x64,0xE4,0x00,0x00,0x71,0xE7,0xFF,0xA2,0xB0,0x20, +0x63,0xC0,0xE7,0xFF,0xA2,0xA2,0xD0,0x60,0x05,0x3E,0x98,0x64,0x98,0x80,0xE7,0xFF, +0xAF,0xD8,0x98,0x64,0xE4,0x00,0x00,0x8B,0x98,0x64,0x98,0x89,0xE4,0x00,0x00,0x27, +0xE7,0xFF,0xA2,0x66,0x20,0x64,0x76,0xE7,0xFF,0xA2,0x58,0x88,0x83,0x98,0x67,0xE7, +0xFF,0xAF,0x96,0x0A,0xEA,0x01,0xCA,0xF7,0x01,0x00,0x0E,0xEA,0x01,0xE4,0x00,0x00, +0xE1,0xE7,0xFF,0xA2,0x24,0x20,0x63,0x88,0xE7,0xFF,0xA2,0x16,0x20,0x61,0x86,0x98, +0x67,0x98,0x80,0xE7,0xFF,0xAF,0x4E,0x98,0x67,0x98,0x81,0xE7,0xFF,0xAC,0xA6,0xE7, +0xFF,0xC9,0x1A,0xE4,0x00,0x00,0x95,0x0E,0xE1,0x06,0x22,0xE1,0x3C,0x0E,0xE1,0x06, +0x56,0xF7,0x20,0x22,0xE1,0x18,0x98,0x60,0xE7,0xFF,0x8E,0x30,0x50,0x60,0x20,0xE7, +0xFF,0x8E,0x3A,0xE7,0xFF,0x80,0xB4,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x00,0xD9,0xC7, +0x18,0xFF,0xFE,0x50,0x60,0x20,0xEF,0x17,0x00,0xD9,0xE7,0xFF,0x8E,0x14,0xC2,0xE0, +0x10,0x01,0xEB,0x17,0x00,0xD7,0x53,0x18,0x20,0xEF,0x17,0x00,0xD7,0xC2,0xE0,0x10, +0x01,0xF0,0x77,0x03,0x6E,0xE7,0xFF,0x8D,0xB6,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D, +0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x23,0x24,0x0B,0x17,0x01,0x53,0x18,0x20,0x0F,0x17,0x01,0x0C,0x63,0x02,0x0B,0x17, +0x01,0xC7,0x18,0xFF,0xDF,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x23,0x24,0x0B,0x17,0x01,0x53,0x18,0x20,0x0F,0x17,0x01,0x0C,0x83,0x00,0x0B,0x17, +0x01,0xC7,0x18,0xFF,0xDF,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x24,0x14,0x0B,0x17,0x01,0x53,0x18,0x01,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00, +0x01,0xCA,0xF7,0x23,0x24,0x0B,0x17,0x01,0x53,0x18,0x20,0x0F,0x17,0x01,0x85,0x29, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x23,0x24,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xDF,0x0F, +0x17,0x01,0x85,0x29,0x9C,0x30,0x0D,0x21,0x0C,0x0D,0x41,0x08,0x0D,0x61,0x04,0x0D, +0x81,0x00,0xC1,0x54,0x00,0x01,0xC9,0x8A,0x22,0x28,0x0A,0xEC,0x01,0xC6,0xF7,0xFF, +0xFB,0xC9,0x6A,0x22,0x04,0x0E,0xEC,0x01,0xFF,0x00,0x80,0x00,0x0A,0xEB,0x01,0x46, +0xF7,0xC5,0x5E,0xF7,0x04,0xC9,0x4A,0x24,0xA8,0x0E,0xEB,0x01,0x0A,0xEA,0x01,0xCA, +0xF7,0x30,0x00,0x50,0x60,0x64,0x0E,0xEA,0x01,0xE4,0x00,0x28,0x4A,0x0A,0xEC,0x01, +0x52,0xF7,0x04,0x50,0x60,0x1E,0x0E,0xEC,0x01,0xE4,0x00,0x28,0x2A,0x0A,0xEB,0x01, +0xC6,0xF7,0x7F,0xFF,0x0E,0xEB,0x01,0x0A,0xEA,0x01,0xC6,0xF7,0xCF,0xFF,0x0E,0xEA, +0x01,0x0D,0x81,0x02,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10, +0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x2C,0x08,0x77,0x01,0x4C,0x63,0x09, +0x54,0x63,0x1F,0x9C,0x61,0x85,0x29,0x9C,0x7F,0x5C,0x63,0x00,0x5C,0x62,0xFB,0x20, +0x00,0x81,0xC2,0xF4,0x00,0x01,0x4C,0x63,0x08,0xCA,0xF7,0x24,0x2C,0x54,0x63,0x3E, +0x0B,0x17,0x01,0x1F,0x20,0xC1,0x47,0x18,0xCC,0x44,0x63,0xC5,0x0C,0x77,0x01,0x85, +0x29,0x9B,0x19,0x20,0x60,0x62,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x10,0x0B,0x37, +0x01,0x47,0x19,0xC4,0x53,0x18,0x04,0xE4,0x00,0x00,0x87,0x20,0x64,0x56,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x24,0x10,0x0B,0x17,0x01,0x53,0x18,0x06,0xE4,0x00,0x00,0x5D, +0x20,0x68,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x10,0x0B,0x17,0x01,0xC7,0x18, +0xFF,0xF9,0xE4,0x00,0x00,0x31,0x20,0x6C,0x5E,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24, +0x10,0x0B,0x37,0x01,0x47,0x19,0xC4,0x53,0x18,0x02,0x0F,0x17,0x01,0x85,0x29,0x5C, +0x63,0x00,0x9C,0x30,0x0D,0x21,0x0C,0x0D,0x41,0x08,0x0C,0xA1,0x04,0x95,0x50,0xC9, +0x4A,0x20,0x80,0x8D,0x43,0x4D,0x4A,0x18,0x88,0x6A,0xE7,0xFF,0xFC,0xE0,0x0C,0xA1, +0x06,0x1C,0x6A,0x04,0x0D,0x21,0x0E,0x0D,0x41,0x0A,0x88,0x85,0x1C,0x21,0x10,0xE7, +0xFF,0xFC,0xB7,0x1C,0x21,0xE8,0x0D,0x41,0x10,0x5D,0x44,0x00,0x4E,0xEA,0x08,0x0D, +0x61,0x0C,0x0D,0x81,0x08,0x5D,0x65,0x00,0x5C,0x63,0x00,0x4D,0x83,0x18,0x8D,0x8B, +0x8D,0x97,0x06,0xE0,0x81,0xCA,0xF7,0x04,0x00,0x0D,0x21,0x14,0x0D,0xA1,0x04,0xC5, +0x8C,0x1F,0xFC,0x5D,0xA6,0x00,0x8D,0x97,0x88,0x6C,0xE7,0xFF,0xFC,0x00,0x55,0x4A, +0x01,0x50,0x80,0xFF,0x4D,0x4A,0x08,0x8D,0x6A,0x4D,0x6B,0x18,0x4C,0x84,0x5C,0x4D, +0x6D,0x5C,0x44,0x84,0x27,0x0D,0xA1,0x06,0x44,0x83,0x24,0x0D,0x41,0x12,0x88,0x6C, +0x44,0x84,0x5D,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x21,0x16,0x1C,0x21,0x18,0xE7, +0xFF,0xFB,0xD7,0x5C,0x84,0x04,0x20,0x60,0x28,0x20,0x64,0xC2,0xE4,0x00,0x00,0x33, +0x4C,0x84,0x41,0xC2,0xF4,0x00,0x01,0x9C,0x9F,0xCA,0xF7,0x24,0x34,0xC4,0x84,0x01, +0xFF,0xE4,0x00,0x00,0x2B,0x4C,0x84,0x41,0xC2,0xF4,0x00,0x01,0x9C,0x9F,0xCA,0xF7, +0x24,0x38,0xC4,0x84,0x01,0xFF,0x0C,0x97,0x01,0x85,0x29,0x07,0x00,0xFF,0xCB,0x18, +0xFF,0xFF,0x20,0x60,0x28,0x20,0x65,0xD2,0xE4,0x00,0x00,0x7D,0xC2,0xF4,0x00,0x01, +0x47,0x64,0x27,0xCB,0x37,0x24,0x3C,0x0B,0x59,0x01,0x47,0x5A,0xDC,0x0F,0x59,0x01, +0xCA,0xF7,0x24,0x40,0x47,0x04,0xC4,0x0B,0x37,0x01,0x4F,0x18,0x81,0x44,0x84,0x27, +0x4C,0x84,0x81,0x44,0x84,0xC4,0x47,0x18,0xC7,0x47,0x19,0xC4,0x47,0x04,0xC5,0x0F, +0x17,0x01,0xE4,0x00,0x00,0x6F,0x5F,0x44,0x04,0xC2,0xF4,0x00,0x01,0x47,0x9A,0xD7, +0xCB,0x37,0x24,0x3C,0x0B,0x79,0x01,0x47,0x7B,0xE4,0x47,0x5A,0xDD,0x0F,0x59,0x01, +0xCA,0xF7,0x24,0x40,0x44,0x84,0xC4,0x0B,0x57,0x01,0x4C,0x84,0x81,0x47,0x24,0x27, +0x47,0x1A,0xCC,0x44,0x84,0xC5,0x0C,0x97,0x01,0x85,0x29,0x07,0x00,0xFF,0xCB,0x18, +0xFF,0xFF,0x20,0x60,0x28,0x20,0x65,0xD2,0xE4,0x00,0x00,0x7D,0xC2,0xF4,0x00,0x01, +0x47,0x64,0x27,0xCB,0x37,0x24,0x1C,0x0B,0x59,0x01,0x47,0x5A,0xDC,0x0F,0x59,0x01, +0xCA,0xF7,0x24,0x20,0x47,0x04,0xC4,0x0B,0x37,0x01,0x4F,0x18,0x81,0x44,0x84,0x27, +0x4C,0x84,0x81,0x44,0x84,0xC4,0x47,0x18,0xC7,0x47,0x19,0xC4,0x47,0x04,0xC5,0x0F, +0x17,0x01,0xE4,0x00,0x00,0x6F,0x5F,0x44,0x04,0xC2,0xF4,0x00,0x01,0x47,0x9A,0xD7, +0xCB,0x37,0x24,0x1C,0x0B,0x79,0x01,0x47,0x7B,0xE4,0x47,0x5A,0xDD,0x0F,0x59,0x01, +0xCA,0xF7,0x24,0x20,0x44,0x84,0xC4,0x0B,0x57,0x01,0x4C,0x84,0x81,0x47,0x24,0x27, +0x47,0x1A,0xCC,0x44,0x84,0xC5,0x0C,0x97,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB, +0x17,0x24,0x80,0x0B,0x38,0x01,0x5F,0x23,0x04,0x0F,0x38,0x01,0x07,0x20,0xFF,0xCB, +0x39,0xFF,0xFF,0xCA,0xF7,0x24,0x84,0x44,0x63,0xCC,0x0B,0x17,0x01,0x4C,0x63,0x81, +0xFF,0x20,0xFF,0x00,0x47,0x18,0xCC,0x44,0x63,0xC5,0x0C,0x77,0x01,0x85,0x29,0x07, +0x00,0xFF,0xCB,0x18,0xFF,0xFF,0x20,0x60,0x28,0x20,0x65,0xD2,0xE4,0x00,0x00,0x7D, +0xC2,0xF4,0x00,0x01,0x47,0x64,0x27,0xCB,0x37,0x24,0x24,0x0B,0x59,0x01,0x47,0x5A, +0xDC,0x0F,0x59,0x01,0xCA,0xF7,0x24,0x28,0x47,0x04,0xC4,0x0B,0x37,0x01,0x4F,0x18, +0x81,0x44,0x84,0x27,0x4C,0x84,0x81,0x44,0x84,0xC4,0x47,0x18,0xC7,0x47,0x19,0xC4, +0x47,0x04,0xC5,0x0F,0x17,0x01,0xE4,0x00,0x00,0x6F,0x5F,0x44,0x04,0xC2,0xF4,0x00, +0x01,0x47,0x9A,0xD7,0xCB,0x37,0x24,0x24,0x0B,0x79,0x01,0x47,0x7B,0xE4,0x47,0x5A, +0xDD,0x0F,0x59,0x01,0xCA,0xF7,0x24,0x28,0x44,0x84,0xC4,0x0B,0x57,0x01,0x4C,0x84, +0x81,0x47,0x24,0x27,0x47,0x1A,0xCC,0x44,0x84,0xC5,0x0C,0x97,0x01,0x85,0x29,0xC3, +0x14,0x00,0x01,0xCA,0xF8,0x22,0x08,0x20,0x64,0x3A,0x0B,0x37,0x01,0xCB,0x39,0x10, +0x00,0xE4,0x00,0x00,0x1D,0x20,0x60,0x36,0x0B,0x37,0x01,0xC7,0x39,0xEF,0xFF,0x0F, +0x37,0x01,0xCA,0xF8,0x22,0x08,0x0B,0x17,0x01,0xCB,0x18,0x20,0x00,0x0F,0x17,0x01, +0x85,0x29,0x5C,0x84,0x00,0x1F,0x00,0x80,0x20,0x60,0x28,0x20,0x64,0xAA,0xE4,0x00, +0x00,0x21,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x54,0xE4,0x00,0x00,0x19,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x24,0x64,0x0B,0x37,0x01,0x54,0x84,0x7F,0x47,0x19,0xC4,0x47, +0x04,0xC5,0x0F,0x17,0x01,0x85,0x29,0x5C,0x84,0x00,0x20,0x60,0x28,0x20,0x64,0xAA, +0xE4,0x00,0x00,0x21,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x50,0xE4,0x00,0x00,0x19, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x61,0x13,0x17,0x00,0x54,0x84,0x1F,0x57,0x18, +0xE0,0x44,0x84,0xC5,0x18,0x97,0x00,0x85,0x29,0x9C,0x30,0x0D,0x41,0x08,0x0D,0x61, +0x04,0x0D,0x21,0x0C,0x5D,0x44,0x00,0x89,0x63,0x1C,0x8A,0xF1,0x4C,0x84,0x08,0x5C, +0x83,0xF3,0x20,0x00,0x19,0x50,0x80,0x1F,0x88,0x6B,0xE7,0xFF,0xFF,0x5A,0x1F,0x00, +0x80,0x21,0x60,0x28,0x21,0x64,0xAA,0xE4,0x00,0x00,0x21,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x24,0x4C,0xE4,0x00,0x00,0x19,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x60,0x0B, +0x37,0x01,0x55,0x4A,0x7F,0x47,0x19,0xC4,0x47,0x0A,0xC5,0x0F,0x17,0x01,0x0D,0x61, +0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0x20,0x64,0x8E,0xC2, +0xF4,0x00,0x01,0xCB,0x17,0x22,0x04,0xCA,0xF7,0x22,0x60,0x0B,0x38,0x01,0x53,0x39, +0xF0,0x0F,0x38,0x01,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xF0,0xE4,0x00,0x00,0x47,0x20, +0x60,0x8A,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22,0x04,0xCA,0xF7,0x22,0x60,0x0B,0x38, +0x01,0xC7,0x39,0xFF,0x0F,0x0F,0x38,0x01,0x0B,0x17,0x01,0x53,0x18,0x0F,0x0F,0x17, +0x01,0x85,0x29,0x20,0x64,0x8E,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22,0x04,0xCA,0xF7, +0x22,0x60,0x0B,0x38,0x01,0x53,0x39,0x08,0x0F,0x38,0x01,0x0B,0x17,0x01,0xC7,0x18, +0xFE,0xFF,0xE4,0x00,0x00,0x49,0x20,0x60,0x8E,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22, +0x04,0xCA,0xF7,0x22,0x60,0x0B,0x38,0x01,0xC7,0x39,0xFF,0xF7,0x0F,0x38,0x01,0x0B, +0x17,0x01,0xCB,0x18,0x01,0x00,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x22,0x60,0x0B,0x17,0x01,0xCB,0x18,0x02,0x00,0xE4,0x00,0x00, +0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0x60,0x0B,0x17,0x01,0xC7, +0x18,0xFD,0xFF,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x54,0x63,0x7F,0xCA, +0xF7,0x24,0xA0,0x1F,0x20,0x80,0x0B,0x17,0x01,0x47,0x18,0xCC,0x47,0x03,0xC5,0x0F, +0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x4C,0x63,0x40,0xCA,0xF7,0x24,0xA0,0xC4, +0x63,0x7F,0x00,0x0B,0x17,0x01,0xFF,0x20,0x80,0xFF,0x47,0x18,0xCC,0x47,0x03,0xC5, +0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0xA1,0x10,0x77,0x00, +0x54,0x63,0x7F,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0xA0, +0x0B,0x17,0x01,0xC7,0x18,0xFF,0x7F,0xE4,0x00,0x00,0x2B,0x20,0x60,0x52,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x24,0xA0,0x0B,0x17,0x01,0x53,0x18,0x80,0x0F,0x17,0x01,0x85, +0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0xA0,0x0B,0x17,0x01,0xC7, +0x18,0x7F,0xFF,0xE4,0x00,0x00,0x39,0x20,0x60,0x6E,0xC2,0xF4,0x00,0x01,0xFF,0x20, +0x80,0x00,0xCA,0xF7,0x24,0xA0,0x0B,0x17,0x01,0x47,0x18,0xCD,0x5F,0x18,0x04,0x0F, +0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x5C,0x63,0x00,0xCA,0xF7,0x22,0x0C,0xFF, +0x20,0xFF,0x00,0x0B,0x17,0x01,0x47,0x18,0xCC,0x47,0x03,0xC5,0x0F,0x17,0x01,0x85, +0x29,0x5C,0x63,0x04,0xC2,0xF4,0x00,0x01,0xFF,0x40,0xFF,0x00,0xCA,0xF7,0x22,0xF0, +0x47,0x03,0xD4,0x0B,0x37,0x01,0x5F,0x39,0x00,0x47,0x18,0xCD,0x0F,0x17,0x01,0x85, +0x29,0x5C,0x63,0x04,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0x38,0x0B,0x17,0x01,0x0C, +0x77,0x01,0x85,0x29,0x20,0x64,0x6A,0xC2,0xF4,0x00,0x01,0x9B,0x3C,0xCA,0xF7,0x25, +0xC0,0x0B,0x17,0x01,0x47,0x18,0xCC,0x53,0x18,0x01,0xE4,0x00,0x00,0x3F,0x20,0x60, +0x7A,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22,0x38,0xCA,0xF7,0x25,0xC0,0x0B,0x38,0x01, +0x0C,0x18,0x01,0x0B,0x17,0x01,0x53,0x18,0x03,0x0F,0x17,0x01,0x85,0x29,0x5C,0x84, +0x00,0x20,0x64,0x62,0x4C,0x63,0x24,0xC2,0xF4,0x00,0x01,0x5C,0x63,0x04,0xCA,0xF7, +0x22,0xCC,0x0C,0x77,0x01,0xE4,0x00,0x00,0x25,0x20,0x60,0x3A,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x22,0xCC,0x0C,0x17,0x01,0x85,0x29,0x20,0x60,0x5A,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x22,0xE8,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xFE,0xE4,0x00,0x00,0x2B,0x20, +0x64,0x52,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0xE8,0x0B,0x17,0x01,0x53,0x18,0x01, +0x0F,0x17,0x01,0x85,0x29,0x20,0x60,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0xE8, +0x0B,0x17,0x01,0xC7,0x18,0xF0,0xFF,0xE4,0x00,0x00,0x2D,0x20,0x64,0x56,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x22,0xE8,0x0B,0x17,0x01,0xCB,0x18,0x0F,0x00,0x0F,0x17,0x01, +0x85,0x29,0x5C,0x63,0x00,0xC4,0x84,0x03,0xFF,0x20,0x64,0x70,0x20,0x60,0x34,0x20, +0x68,0x88,0x20,0x6C,0xDA,0xE4,0x00,0x00,0x51,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24, +0x68,0xE4,0x00,0x00,0x49,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x6C,0xE4,0x00,0x00, +0x31,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x70,0xE4,0x00,0x00,0x19,0xC2,0xF4,0x00, +0x01,0xCA,0xF7,0x24,0x74,0x0C,0x97,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x23,0x24,0x0B,0x17,0x01,0x53,0x18,0x20,0x0F,0x17,0x01,0x5C,0x63,0x00,0x07,0x00, +0x20,0xCB,0x18,0x41,0x00,0x44,0x63,0xC5,0x4C,0x63,0x10,0x0C,0x83,0x00,0x0B,0x17, +0x01,0xC7,0x18,0xFF,0xDF,0x0F,0x17,0x01,0x85,0x29,0xFC,0x21,0xFE,0x88,0x50,0xA0, +0x96,0xED,0x21,0x01,0x74,0xED,0x41,0x01,0x70,0xED,0x61,0x01,0x6C,0x88,0x61,0xC1, +0x78,0x00,0x21,0xFD,0x6B,0xB4,0xBE,0x88,0x8B,0xE7,0xFF,0x4A,0x4E,0xFD,0x41,0x00, +0x96,0xFC,0x8B,0x00,0x96,0x88,0x6A,0x50,0xA0,0xD2,0xE7,0xFF,0x4A,0x2C,0x8A,0xE1, +0xC3,0x54,0x00,0x01,0xFF,0x60,0xFF,0x00,0x0B,0x37,0x01,0x47,0x19,0xDC,0x5F,0x39, +0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19,0x0B,0x37,0x03,0x47,0xB9,0xCF,0x8F, +0x1A,0x0B,0x98,0x01,0x47,0x9C,0xEC,0x0B,0xB7,0x05,0x47,0x39,0xEC,0x47,0x3C,0xCD, +0x0F,0x38,0x01,0x9E,0xE6,0xD5,0x57,0xFE,0x9E,0xFE,0xE1,0x00,0x96,0xFF,0x81,0x01, +0x68,0x0B,0x37,0x01,0x47,0x19,0xDC,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08, +0x8F,0x19,0x0B,0x37,0x03,0x47,0xD9,0xCF,0x8F,0x1A,0x0B,0xB8,0x01,0x47,0xBD,0xF4, +0x0B,0xD7,0x05,0x47,0x39,0xF4,0x47,0x3D,0xCD,0x0F,0x38,0x01,0x9E,0xE6,0xD7,0x97, +0xFE,0x9E,0xED,0x61,0x01,0x6E,0xED,0x41,0x01,0x72,0xED,0x21,0x01,0x76,0xFC,0x21, +0x01,0x78,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22,0x00,0x0C,0x18,0x01,0xCA, +0xF7,0x24,0x14,0xFF,0x20,0xFF,0x07,0x0B,0x17,0x01,0x47,0x18,0xCC,0x53,0x18,0x30, +0x0F,0x17,0x01,0x85,0x29,0x1C,0x21,0xD8,0xC3,0x54,0x00,0x01,0x0D,0x21,0x24,0xCA, +0xE0,0x11,0x50,0xCB,0x5A,0x22,0x00,0x57,0x37,0xFF,0x4F,0x39,0x10,0x8F,0x3A,0x0C, +0x19,0x01,0x9E,0xE1,0xC3,0x14,0x00,0x01,0xC2,0xE2,0x2B,0x84,0x23,0xFF,0xAD,0xCA, +0xF8,0x23,0x70,0x0C,0x17,0x01,0xCA,0xF8,0x23,0x74,0xCB,0x18,0x23,0x78,0x0C,0x17, +0x01,0x0C,0x18,0x01,0x1C,0x61,0x02,0xC0,0x98,0x00,0x21,0x50,0xA0,0x1E,0xFC,0x84, +0xB4,0xBE,0xFC,0x84,0x01,0x68,0xE7,0xFF,0x48,0x34,0x1E,0xE1,0x02,0x1F,0x41,0x20, +0x0B,0x37,0x01,0xFF,0x60,0xFF,0x00,0x47,0x19,0xDC,0x5F,0x39,0x00,0x4F,0x39,0x10, +0x4F,0x18,0x08,0x8F,0x19,0xC3,0x34,0x00,0x01,0x8F,0x19,0x0B,0x37,0x03,0x47,0x99, +0xCF,0x0B,0x78,0x01,0x47,0x7B,0xE4,0x0B,0x97,0x05,0x47,0x39,0xE4,0x47,0x3B,0xCD, +0x0F,0x38,0x01,0x9E,0xE6,0xD7,0x57,0xFE,0x5E,0x0D,0x21,0x26,0xFC,0x60,0x01,0xF4, +0x1C,0x21,0x28,0xE4,0x00,0x16,0xB7,0x5C,0x84,0x00,0x9B,0x10,0x20,0x60,0x28,0x20, +0x64,0xAA,0xE4,0x00,0x00,0x21,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0x10,0xE4,0x00, +0x00,0x19,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0x14,0x0B,0x37,0x01,0x54,0x84,0x0F, +0x47,0x19,0xC4,0x47,0x04,0xC5,0x0F,0x17,0x01,0x85,0x29,0x1C,0x21,0xE0,0xC0,0x98, +0x00,0x21,0x0D,0x21,0x1C,0x88,0x61,0xFC,0x84,0xB4,0xBE,0x50,0xA0,0x18,0xFC,0x84, +0x01,0x86,0xE7,0xFF,0x46,0xFC,0x8A,0xE1,0x1F,0x41,0x18,0x0B,0x37,0x01,0xFF,0x60, +0xFF,0x00,0x47,0x19,0xDC,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19, +0xC3,0x34,0x00,0x01,0x8F,0x19,0x0B,0x37,0x03,0x47,0x99,0xCF,0x0B,0x78,0x01,0x47, +0x7B,0xE4,0x0B,0x97,0x05,0x47,0x39,0xE4,0x47,0x3B,0xCD,0x0F,0x38,0x01,0x9E,0xE6, +0xD7,0x57,0xFE,0x5E,0xC3,0x54,0x00,0x01,0xCA,0xE0,0x11,0x50,0xCB,0x5A,0x22,0x00, +0x57,0x37,0xFF,0x4F,0x39,0x10,0x8F,0x3A,0x0C,0x19,0x01,0x9E,0xE1,0xC3,0x14,0x00, +0x01,0xC2,0xE2,0x2B,0x84,0x23,0xFF,0xAD,0xCA,0xF8,0x23,0x70,0x0C,0x17,0x01,0xCA, +0xF8,0x23,0x74,0x0C,0x17,0x01,0xCB,0x18,0x23,0x78,0x0C,0x18,0x01,0x0D,0x21,0x1E, +0x1C,0x21,0x20,0x85,0x29,0x1C,0x21,0xE0,0xC0,0x98,0x00,0x21,0x0D,0x21,0x1C,0x1C, +0x61,0x06,0xFC,0x84,0xB4,0xBE,0x50,0xA0,0x12,0xFC,0x84,0x01,0x9E,0xE7,0xFF,0x45, +0xC6,0x1E,0xE1,0x06,0x1F,0x41,0x18,0x0B,0x37,0x01,0xFF,0x60,0xFF,0x00,0x47,0x19, +0xDC,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19,0xC3,0x34,0x00,0x01, +0x8F,0x19,0x0B,0x37,0x03,0x47,0x99,0xCF,0x0B,0x78,0x01,0x47,0x7B,0xE4,0x0B,0x97, +0x05,0x47,0x39,0xE4,0x47,0x3B,0xCD,0x0F,0x38,0x01,0x9E,0xE6,0xD7,0x57,0xFE,0x5E, +0xC3,0x74,0x00,0x01,0xCA,0xE0,0x11,0x50,0xCB,0x7B,0x22,0x00,0xFF,0x40,0x11,0x11, +0x57,0x37,0xFF,0x4F,0x39,0x10,0x8F,0x3B,0x0F,0x59,0x01,0x9E,0xE1,0xC3,0x14,0x00, +0x01,0xC2,0xE2,0x2B,0x84,0x23,0xFF,0xAD,0xCB,0x38,0x23,0x70,0x9A,0xFF,0x0E,0xF9, +0x01,0xCB,0x38,0x23,0x74,0x0E,0xF9,0x01,0xCB,0x18,0x23,0x78,0x0E,0xF8,0x01,0x0D, +0x21,0x1E,0x1C,0x21,0x20,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x74,0xD8,0x18, +0x18,0x00,0xCB,0x37,0x74,0x10,0x5C,0x63,0x00,0x18,0x79,0x00,0xCB,0x37,0x76,0x30, +0x18,0x19,0x00,0x53,0x40,0x24,0xCB,0x37,0x74,0x00,0x1B,0x59,0x00,0xCB,0x77,0x74, +0x28,0x53,0x20,0x60,0x1B,0x3B,0x00,0xCB,0x77,0x74,0x30,0x1B,0x3B,0x00,0xCB,0x77, +0x74,0x38,0x53,0x20,0x1C,0x1B,0x3B,0x00,0xCB,0x77,0x74,0x40,0x1B,0x3B,0x00,0xCB, +0x37,0x74,0xA8,0x13,0x39,0x00,0xCB,0x37,0x74,0x78,0x9B,0x69,0x1B,0x79,0x00,0xCB, +0x37,0x74,0x70,0x18,0x19,0x00,0xCB,0x37,0x74,0x60,0x13,0x79,0x00,0x1B,0x59,0x00, +0xCA,0xF7,0x74,0x61,0x13,0x37,0x00,0x18,0x17,0x00,0x98,0x61,0x12,0xF8,0x00,0x52, +0xF7,0x01,0x1A,0xF8,0x00,0x85,0x29,0x5C,0x63,0x00,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x74,0x20,0x18,0x77,0x00,0x0B,0x17,0x01,0xC7,0x18,0xFE,0xFF,0x0F,0x17,0x01,0x85, +0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x68,0x10,0x77,0x00,0x4C,0x63,0x21,0x54, +0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0xE0,0x10,0x77,0x00,0x4C, +0x63,0x09,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x68,0x10, +0x77,0x00,0x4C,0x63,0x29,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x74,0xE0,0x10,0x77,0x00,0x4C,0x63,0x19,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00, +0x01,0xCA,0xF7,0x74,0x68,0x10,0x77,0x00,0x4C,0x63,0x11,0x54,0x63,0x01,0x85,0x29, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x68,0x08,0x77,0x01,0x4C,0x63,0x49,0x54,0x63, +0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x68,0x08,0x77,0x01,0x4C,0x63, +0x51,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x61,0x13,0x17, +0x00,0x57,0x18,0xFD,0x1B,0x17,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74, +0x61,0x13,0x17,0x00,0x53,0x18,0x02,0x1B,0x17,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x74,0xC0,0x12,0xF7,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74, +0xA8,0x12,0xF7,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0xC8,0x12,0xF7, +0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0xA0,0x12,0xF7,0x00,0x85,0x29, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x20,0x10,0x77,0x00,0x85,0x29,0x5C,0x63,0x00, +0xC3,0x14,0x00,0x01,0x4E,0xE3,0x10,0xCB,0x18,0x2A,0x00,0x8E,0xF8,0x08,0x77,0x00, +0x9A,0xE8,0xCC,0x63,0x00,0x03,0x40,0x63,0xB8,0x85,0x29,0x5C,0x84,0x04,0x5E,0xE4, +0x00,0xD2,0xEF,0x05,0xAD,0x4E,0xF7,0x10,0xC3,0x18,0x00,0x21,0xFF,0x18,0xBD,0x1C, +0x8E,0xF8,0xC3,0x34,0x00,0x01,0x0F,0x17,0x02,0xCA,0xF9,0x26,0x18,0x0B,0x57,0x01, +0xC7,0x5A,0xFF,0xF3,0x1F,0x60,0xCF,0x0F,0x57,0x01,0x0B,0x57,0x01,0x47,0x5A,0xDC, +0x53,0x5A,0x10,0x4C,0x84,0x49,0x0F,0x57,0x01,0x9A,0xE1,0xCB,0x59,0x26,0x20,0xE4, +0x00,0x00,0x31,0x4F,0x37,0x08,0x9E,0xE1,0x8F,0x38,0x5E,0xF7,0x04,0x0B,0x39,0x01, +0xC7,0x39,0x3F,0xFF,0x0F,0x3A,0x01,0xC3,0x34,0x00,0x01,0xD6,0xE4,0xFF,0x40,0x20, +0x60,0x96,0xCB,0x39,0x26,0x38,0x0B,0x18,0x01,0x0A,0xF9,0x01,0x4F,0x18,0x60,0xFF, +0x40,0x8F,0xFF,0xC7,0x18,0x70,0x00,0x46,0xF7,0xD4,0x46,0xF8,0xBD,0x0E,0xF9,0x01, +0xE4,0x00,0x00,0x4B,0x20,0x64,0x86,0xCA,0xF9,0x26,0x38,0xFF,0x60,0xF8,0xFF,0x0B, +0x38,0x01,0x0B,0x57,0x01,0x4F,0x39,0x40,0x47,0x1A,0xDC,0xC7,0x39,0x07,0x00,0x47, +0x19,0xC5,0x0F,0x17,0x01,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x18,0x0B,0x17,0x01, +0x53,0x18,0x30,0x0F,0x17,0x01,0x85,0x29,0x5C,0x84,0x00,0xD0,0x8F,0x03,0x9D,0xC2, +0xF8,0x00,0x21,0xFE,0xF7,0xBC,0x44,0x4C,0x84,0x10,0xC3,0x14,0x00,0x01,0x8C,0x97, +0xCB,0x38,0x26,0x34,0x0E,0xE4,0x02,0x0B,0x59,0x01,0x0B,0x77,0x03,0xFF,0x80,0xC0, +0x00,0xC7,0x7B,0x3F,0xFF,0x47,0x5A,0xE4,0x47,0x5B,0xD5,0x0F,0x59,0x01,0x20,0x60, +0x7E,0x0B,0x37,0x01,0xCB,0x18,0x26,0x38,0x4F,0x39,0x60,0x0B,0x58,0x01,0xFF,0x60, +0x8F,0xFF,0xC7,0x39,0x70,0x00,0x46,0xFA,0xDC,0xE4,0x00,0x00,0x3F,0x20,0x64,0x86, +0x0B,0x37,0x01,0xCB,0x18,0x26,0x38,0x4F,0x39,0x40,0x0B,0x58,0x01,0xFF,0x80,0xF8, +0xFF,0xC7,0x39,0x07,0x00,0x46,0xFA,0xE4,0x46,0xF9,0xBD,0x0E,0xF8,0x01,0x85,0x29, +0x5C,0x84,0x00,0xD0,0x8C,0x04,0x1D,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBC,0x44,0x4C, +0x84,0x10,0xFF,0x40,0xC0,0x00,0x8C,0x97,0x0E,0xE4,0x02,0x20,0x60,0xD6,0xC3,0x14, +0x00,0x01,0x0B,0x77,0x03,0xCB,0x38,0x26,0xC4,0xC7,0x7B,0x3F,0xFF,0x0B,0x99,0x01, +0x47,0x5C,0xD4,0x47,0x5B,0xD5,0xCB,0x18,0x26,0x38,0x0F,0x59,0x01,0x1F,0x60,0x8F, +0x0B,0x37,0x01,0x0B,0x58,0x01,0x4F,0x39,0x20,0x57,0x39,0x70,0xE4,0x00,0x00,0x63, +0x20,0x64,0xDA,0xC3,0x14,0x00,0x01,0x0B,0x77,0x03,0xCB,0x38,0x26,0xC8,0xC7,0x7B, +0x3F,0xFF,0x0B,0x99,0x01,0x47,0x5C,0xD4,0x47,0x5B,0xD5,0xCB,0x18,0x26,0x38,0x0F, +0x59,0x01,0x9B,0x78,0x0B,0x37,0x01,0x0B,0x58,0x01,0x57,0x39,0x07,0x46,0xFA,0xDC, +0x46,0xF9,0xBD,0x0E,0xF8,0x01,0x85,0x29,0x5C,0x84,0x04,0x20,0x60,0x28,0x20,0x64, +0xEE,0xE4,0x00,0x00,0x39,0xC2,0xF4,0x00,0x01,0x4C,0x84,0x41,0xCA,0xF7,0x26,0xC0, +0x54,0x84,0x3F,0x0B,0x17,0x01,0x1F,0x20,0xC0,0xE4,0x00,0x00,0x2F,0xC2,0xF4,0x00, +0x01,0xC4,0x84,0x3F,0x00,0xCA,0xF7,0x26,0xC0,0xFF,0x20,0xC0,0xFF,0x0B,0x17,0x01, +0x47,0x18,0xCC,0x44,0x84,0xC5,0x0C,0x97,0x01,0x85,0x29,0x20,0x61,0x52,0x20,0x84, +0x84,0x20,0x80,0x2C,0xD0,0x82,0x04,0xD6,0xE4,0x00,0x00,0x5D,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0xC7,0x18,0x3F,0xFF,0xE4,0x00,0x01,0x01,0xC2, +0xF4,0x00,0x01,0xFF,0x20,0x80,0x00,0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0xC7,0x18, +0x3F,0xFF,0xE4,0x00,0x00,0x27,0xC2,0xF4,0x00,0x01,0xFF,0x20,0xC0,0x00,0xCA,0xF7, +0x26,0x30,0x0B,0x17,0x01,0x47,0x18,0xCD,0x5F,0x18,0x04,0xE4,0x00,0x00,0xA1,0x20, +0x65,0x3E,0x20,0x84,0x80,0x20,0x80,0x28,0x20,0x89,0x1A,0xE4,0x00,0x00,0x63,0xC2, +0xF4,0x00,0x01,0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0xC7,0x18,0xCF,0xFF,0xE4,0x00, +0x00,0x5B,0xC2,0xF4,0x00,0x01,0xFF,0x20,0xCF,0xFF,0xCA,0xF7,0x26,0x30,0x0B,0x17, +0x01,0x47,0x18,0xCC,0xCB,0x18,0x20,0x00,0xE4,0x00,0x00,0x27,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0xCB,0x18,0x30,0x00,0x0F,0x17,0x01,0x85,0x29, +0x20,0x64,0x72,0xC2,0xF4,0x00,0x01,0xFF,0x20,0x80,0x00,0xCA,0xF7,0x26,0x24,0x0B, +0x17,0x01,0x47,0x18,0xCD,0x5F,0x18,0x04,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2, +0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0xC7,0x18,0x7F,0xFF,0x0F,0x17, +0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17, +0x01,0xCB,0x18,0x20,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0xC7,0x18,0xDF,0xFF,0x0F,0x17,0x01,0x85,0x29, +0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0xCB,0x18, +0x40,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26, +0x24,0x0B,0x17,0x01,0xC7,0x18,0xBF,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0xCB,0x18,0x10,0x00,0xE4, +0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17, +0x01,0xC7,0x18,0xEF,0xFF,0x0F,0x17,0x01,0x85,0x29,0x9C,0x38,0xC2,0xF4,0x00,0x01, +0x0D,0x21,0x04,0xCA,0xF7,0x26,0x18,0x0B,0x17,0x01,0xCB,0x18,0x40,0x00,0x98,0x60, +0x0F,0x17,0x01,0xE7,0xFF,0xFF,0x1A,0x0D,0x21,0x06,0x98,0x60,0x9C,0x28,0xE7,0xFF, +0xFF,0x5F,0x20,0x64,0x72,0xC2,0xF4,0x00,0x01,0xFF,0x20,0x80,0x00,0xCA,0xF7,0x26, +0x00,0x0B,0x17,0x01,0x47,0x18,0xCD,0x5F,0x18,0x04,0xE4,0x00,0x00,0x2D,0x20,0x60, +0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xC7,0x18,0x7F,0xFF, +0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00, +0x0B,0x17,0x01,0xCB,0x18,0x20,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xC7,0x18,0xDF,0xFF,0x0F,0x17,0x01, +0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01, +0xCB,0x18,0x40,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x26,0x00,0x0B,0x17,0x01,0xC7,0x18,0xBF,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20, +0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xCB,0x18,0x10, +0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00, +0x0B,0x17,0x01,0xC7,0x18,0xEF,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2, +0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xCB,0x18,0x08,0x00,0xE4,0x00, +0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01, +0xC7,0x18,0xF7,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xCB,0x18,0x04,0x00,0xE4,0x00,0x00,0x2D,0x20, +0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xC7,0x18,0xFB, +0xFF,0x0F,0x17,0x01,0x85,0x29,0x5C,0x63,0x00,0xC2,0xF4,0x00,0x01,0x4F,0x23,0x40, +0xCA,0xF7,0x26,0x14,0x4C,0x63,0x60,0x0B,0x17,0x01,0x44,0x79,0x1D,0x5F,0x18,0x00, +0x44,0x63,0xC5,0x5C,0x63,0x04,0x0C,0x77,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xFF, +0x20,0xF0,0x00,0xCB,0x17,0x26,0x0C,0xC4,0x63,0x0F,0xFF,0x0B,0x58,0x01,0x5C,0x63, +0x06,0x47,0x5A,0xCC,0x47,0x43,0xD5,0x0F,0x58,0x01,0xCA,0xF7,0x26,0x10,0x0B,0x17, +0x01,0x47,0x38,0xCC,0x44,0x63,0xCD,0x0C,0x77,0x01,0x85,0x29,0x9C,0x38,0xFF,0x00, +0xE0,0x00,0x0D,0x21,0x04,0x0D,0x41,0x00,0xC1,0x54,0x00,0x01,0xCA,0xEA,0x26,0x04, +0x0B,0x37,0x01,0x47,0x39,0xC4,0xCB,0x39,0x0F,0xA0,0x0F,0x37,0x01,0xCA,0xEA,0x26, +0x08,0x0B,0x37,0x01,0x47,0x19,0xC4,0xCB,0x18,0x10,0x60,0x98,0x60,0x0F,0x17,0x01, +0xFC,0x80,0x08,0x03,0xE7,0xFF,0xF9,0x28,0xCA,0xEA,0x26,0xC0,0xFF,0x20,0xC0,0xFF, +0x0B,0x17,0x01,0x47,0x18,0xCC,0xCB,0x18,0x08,0x00,0x98,0x60,0x0F,0x17,0x01,0xFC, +0x80,0x08,0x03,0xE7,0xFF,0xF7,0xDA,0x98,0x61,0xFC,0x80,0x08,0x03,0xE7,0xFF,0xF7, +0xC6,0xCA,0xEA,0x26,0x00,0x0B,0x17,0x01,0x53,0x18,0x0F,0x0F,0x17,0x01,0x0B,0x17, +0x01,0xC7,0x18,0xFF,0x7F,0x0F,0x17,0x01,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xBF,0x98, +0x68,0x0F,0x17,0x01,0xE7,0xFF,0xFE,0x44,0x0D,0x21,0x06,0x0D,0x41,0x02,0xFC,0x60, +0x01,0x2C,0x9C,0x28,0xE7,0xFF,0xFE,0x6F,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0x00, +0x0B,0x17,0x01,0x53,0x18,0x02,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x78,0x00,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xFD,0x0F,0x17,0x01,0x85,0x29,0x9C, +0x7F,0x5C,0x63,0x00,0xD0,0x64,0x05,0x15,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBE,0xDC, +0x4C,0x63,0x10,0xFF,0x00,0xFC,0xFF,0x8C,0x77,0xC2,0xF4,0x00,0x01,0x0F,0x23,0x02, +0x87,0x29,0xCB,0x17,0x3D,0x3C,0xCA,0xF7,0x31,0x04,0x0B,0x38,0x01,0x53,0x39,0x01, +0x0F,0x38,0x01,0x0B,0x17,0x01,0xC7,0x18,0xFC,0xFF,0xE4,0x00,0x00,0xD3,0xCB,0x37, +0x3D,0x3C,0xCA,0xF7,0x31,0x04,0x0B,0x59,0x01,0x53,0x5A,0x01,0x0F,0x59,0x01,0x0B, +0x37,0x01,0x47,0x19,0xC4,0xCB,0x18,0x01,0x00,0xE4,0x00,0x00,0x95,0xCB,0x37,0x3D, +0x3C,0xCA,0xF7,0x31,0x04,0x0B,0x59,0x01,0x53,0x5A,0x01,0x0F,0x59,0x01,0x0B,0x37, +0x01,0x47,0x19,0xC4,0xCB,0x18,0x02,0x00,0xE4,0x00,0x00,0x57,0xCA,0xF7,0x3D,0x3C, +0x0B,0x17,0x01,0xC7,0x18,0xFF,0xFE,0xE4,0x00,0x00,0x39,0xCB,0x17,0x3C,0x10,0xCA, +0xF7,0x3C,0x14,0x0B,0x38,0x01,0x53,0x39,0x01,0x0F,0x38,0x01,0x0B,0x17,0x01,0xC7, +0x18,0xFF,0xFD,0x0F,0x17,0x01,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0x00,0x0B,0x17, +0x01,0xC7,0x18,0xFF,0xFB,0x0F,0x17,0x01,0x85,0x29,0x5C,0x63,0x00,0x5C,0x84,0x00, +0x9A,0xE0,0x24,0x64,0x43,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBE,0xF0,0x8C,0x77,0x12, +0xE3,0x00,0xC3,0x14,0x00,0x01,0xCB,0x18,0x78,0x01,0x4E,0xF7,0x10,0x5C,0x80,0x29, +0x46,0xF7,0xC5,0x4B,0x00,0x1A,0x1B,0x17,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0x5C, +0x84,0x04,0xCB,0x17,0x79,0x04,0xCC,0x84,0x17,0x70,0x4F,0x24,0x81,0x5C,0x84,0x04, +0x0F,0x38,0x01,0xCA,0xF7,0x79,0x00,0x0C,0x97,0x01,0x98,0x81,0xE7,0xFF,0xFF,0x5D, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0xCC,0x0B,0x17,0x01,0x53,0x18,0x02,0x0F,0x17, +0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x7A,0x30,0xCB,0x37,0x7A,0x34,0xCB, +0x57,0x7A,0x10,0xCA,0xF7,0x7A,0x14,0x0B,0x18,0x01,0x0B,0x39,0x01,0x0B,0x5A,0x01, +0x08,0x77,0x01,0x4E,0xF9,0x80,0x4C,0x63,0x80,0x8E,0xF8,0x8C,0x7A,0x44,0x63,0x1F, +0x44,0x63,0xBC,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x7A,0x70,0xCB,0x37,0x7A, +0x74,0xCB,0x57,0x7A,0x50,0xCA,0xF7,0x7A,0x54,0x0B,0x18,0x01,0x0B,0x39,0x01,0x0B, +0x5A,0x01,0x08,0x77,0x01,0x4E,0xF9,0x80,0x4C,0x63,0x80,0x8E,0xF8,0x8C,0x7A,0x44, +0x63,0x1F,0x44,0x63,0xBC,0x85,0x29,0x5C,0x63,0x06,0xC2,0xF4,0x00,0x01,0x47,0x23, +0x1F,0xCA,0xF7,0x7A,0x10,0x0B,0x17,0x01,0x47,0x19,0xC4,0x44,0x63,0xC5,0x5C,0x63, +0x04,0x0C,0x77,0x01,0x85,0x29,0x5C,0x63,0x06,0xC2,0xF4,0x00,0x01,0x47,0x23,0x1F, +0xCA,0xF7,0x7A,0x50,0x0B,0x17,0x01,0x47,0x19,0xC4,0x44,0x63,0xC5,0x5C,0x63,0x04, +0x0C,0x77,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x44,0x63,0x1F,0xCA,0xF7,0x7A,0x10, +0x0B,0x17,0x01,0x47,0x18,0x1C,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x44, +0x63,0x1F,0xCA,0xF7,0x7A,0x50,0x0B,0x17,0x01,0x47,0x18,0x1C,0x0F,0x17,0x01,0x85, +0x29,0x5C,0x63,0x04,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x7A,0x30,0x0C,0x77,0x01,0x85, +0x29,0x9B,0x01,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x7A,0x70,0x0F,0x17,0x01,0x85,0x29, +0xC2,0xF4,0x00,0x01,0xFF,0x20,0xAA,0x55,0xCB,0x17,0x78,0xC0,0x0F,0x38,0x01,0x5F, +0x03,0x04,0x27,0x08,0x17,0x98,0x63,0xCA,0xF7,0x78,0xC4,0x5C,0x63,0x04,0xCB,0x00, +0x03,0xE8,0x43,0x04,0xC1,0x40,0x63,0xC3,0x4C,0x63,0x81,0x44,0x63,0x1F,0x0C,0x77, +0x01,0x06,0xE0,0x5B,0xCA,0xF7,0x8D,0x80,0x5C,0x97,0x0D,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x3C,0x44,0x0B,0x17,0x01,0x20,0x00,0x2D,0xC7,0x18,0xFF,0xBF,0xE4,0x00,0x00, +0x15,0x5F,0x18,0x04,0x53,0x18,0x40,0x0F,0x17,0x01,0x85,0x29,0xFF,0x00,0xAA,0x55, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0xC0,0x0F,0x17,0x01,0x85,0x29,0xFF,0x00,0x55, +0xAA,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0xC0,0x0F,0x17,0x01,0x85,0x29,0xCA,0xE0, +0x03,0x20,0xC3,0x14,0x00,0x01,0x5C,0x63,0x04,0xC0,0x60,0x63,0xEA,0x48,0x63,0xB8, +0xCA,0xF8,0x79,0x10,0x0B,0x37,0x01,0x53,0x39,0x01,0x0F,0x37,0x01,0xCB,0x58,0x79, +0x00,0xCB,0x38,0x79,0x08,0x9C,0x38,0x0A,0xF9,0x01,0xCB,0x18,0x3C,0x44,0x0B,0x7A, +0x01,0x0B,0x39,0x01,0x0F,0x21,0x07,0x0B,0x18,0x01,0x57,0x18,0x40,0x5F,0x18,0x04, +0x23,0x00,0x40,0x4C,0x63,0x29,0x5C,0x60,0x09,0x48,0x63,0x0A,0xE4,0x00,0x00,0x3F, +0xCC,0x63,0x00,0x06,0x5C,0x63,0x04,0xE4,0x00,0x00,0x29,0x0A,0xF8,0x01,0x52,0xF7, +0x01,0x0E,0xF8,0x01,0x0A,0xF9,0x01,0xE4,0x00,0x00,0x21,0xC3,0x34,0x00,0x01,0xCB, +0x19,0x79,0x10,0xCB,0x39,0x79,0x08,0x0B,0x41,0x07,0x43,0x57,0xD5,0xD4,0x7A,0x00, +0xB8,0x0B,0x41,0x07,0xD7,0x57,0xFE,0xB9,0x0B,0x41,0x07,0x43,0x5B,0xD5,0x8E,0xFA, +0xD4,0x77,0xFE,0x5C,0x9C,0x28,0x85,0x29,0x5C,0x63,0x04,0xE4,0x00,0x00,0x2D,0x42, +0xE4,0x2C,0xC3,0x38,0x00,0x01,0x43,0x05,0xCC,0x8F,0x03,0x13,0x18,0x00,0x1B,0x17, +0x00,0x9C,0xBF,0x20,0xBF,0xB2,0x85,0x29,0x5C,0x63,0x00,0xC2,0xF4,0x00,0x01,0x20, +0x60,0xCE,0xCA,0xF7,0x2C,0x30,0x0B,0x17,0x01,0xCB,0x18,0x02,0x00,0x0F,0x17,0x01, +0x80,0x01,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x3C,0x44,0xCA,0xF7,0x3C,0xA8,0x0B,0x38, +0x01,0xC7,0x39,0xFF,0xF3,0x0F,0x38,0x01,0x0B,0x17,0x01,0x53,0x18,0x01,0xE4,0x00, +0x00,0x9F,0xCB,0x17,0x3C,0xA8,0x0B,0x38,0x01,0x53,0x39,0x01,0xCA,0xF7,0x3C,0x5C, +0x0F,0x38,0x01,0x1F,0x00,0xC0,0x0B,0x37,0x00,0x47,0x39,0xC4,0x9B,0x02,0x24,0x64, +0x25,0x54,0x63,0x3F,0x5F,0x03,0x06,0x47,0x18,0xCD,0x5C,0x78,0x04,0xC3,0x14,0x00, +0x01,0x0C,0x77,0x01,0xCA,0xF8,0x3C,0xA8,0x0B,0x37,0x01,0xC7,0x39,0xFF,0xFE,0x0F, +0x37,0x01,0xCA,0xF8,0x2C,0x30,0x0B,0x17,0x01,0xCB,0x18,0x01,0x00,0x0F,0x17,0x01, +0x85,0x29,0x80,0x01,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x1E,0xB0,0x0B,0x17,0x01,0x53, +0x18,0x03,0x0F,0x17,0x01,0x80,0x01,0x9B,0x1F,0xCA,0xE0,0x48,0x00,0xC3,0x17,0x00, +0x0D,0xCA,0xE0,0x48,0x04,0xC3,0x17,0x00,0x0D,0x80,0x01,0xCA,0xE0,0x40,0x00,0xC3, +0x17,0x00,0x0F,0x53,0x18,0x40,0xC3,0x17,0x00,0x0D,0xC3,0x17,0x00,0x0F,0x1F,0x20, +0xBF,0x47,0x18,0xCC,0xC3,0x17,0x00,0x0D,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17, +0x3D,0x80,0x0B,0x38,0x01,0xCB,0x39,0x08,0x00,0x0F,0x38,0x01,0xCA,0xF7,0x3D,0x84, +0x0B,0x17,0x01,0xCB,0x18,0x08,0x00,0x0F,0x17,0x01,0x85,0x29,0xE7,0xFF,0xFF,0xBD, +0x56,0xE3,0xFF,0x4E,0xF7,0x08,0x5C,0x84,0x04,0xC4,0x63,0xFF,0x00,0x8C,0x77,0xC2, +0xF4,0x00,0x01,0x4C,0x63,0x08,0x8C,0x77,0x0C,0x83,0x01,0x85,0x29,0x1C,0x21,0xC8, +0xC0,0x98,0x00,0x21,0x0D,0x21,0x34,0x1C,0x61,0x06,0xFC,0x84,0xB6,0x6E,0x50,0xA0, +0x2A,0xE7,0xFF,0x2D,0x1E,0x1E,0xE1,0x06,0x1F,0x41,0x30,0x0B,0x37,0x01,0xFF,0x60, +0xFF,0x00,0x47,0x19,0xDC,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19, +0xC3,0x34,0x00,0x01,0x8F,0x19,0x0B,0x37,0x03,0x47,0x99,0xCF,0x0B,0x78,0x01,0x47, +0x7B,0xE4,0x0B,0x97,0x05,0x47,0x39,0xE4,0x47,0x3B,0xCD,0x0F,0x38,0x01,0x9E,0xE6, +0xD7,0x57,0xFE,0x5E,0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0xFC,0x21,0xFF,0x38, +0x50,0xA0,0x3C,0xED,0x21,0x00,0xC4,0xED,0x41,0x00,0xC0,0xED,0x61,0x00,0xBC,0xED, +0x81,0x00,0xB8,0xED,0xA1,0x00,0xB4,0xED,0xC1,0x00,0xB0,0xED,0xE1,0x00,0xAC,0xEE, +0x01,0x00,0xA8,0xC1,0x58,0x00,0x21,0x1C,0x61,0x6C,0xFD,0x4A,0xB6,0x6E,0x1C,0x8A, +0x2A,0xE7,0xFF,0x2C,0x1E,0x50,0xA0,0x24,0x1C,0x8A,0x66,0x1C,0x61,0x48,0xE7,0xFF, +0x2C,0x04,0x98,0x61,0x98,0x82,0xE7,0xFF,0xEE,0x8A,0x98,0x61,0xFC,0x80,0x3E,0x0C, +0xE7,0xFF,0xD5,0xA6,0x98,0x61,0xFC,0x80,0x3E,0x0C,0xE7,0xFF,0xEB,0xDC,0x98,0x61, +0x88,0x83,0xE7,0xFF,0xD8,0x5A,0x98,0x61,0x88,0x83,0xE7,0xFF,0xD5,0xE2,0x98,0x60, +0x98,0x81,0xE7,0xFF,0xD6,0xD2,0x98,0x60,0x05,0x4F,0x0F,0xC9,0x4A,0x0F,0x0F,0x88, +0x8A,0xE7,0xFF,0xE0,0x92,0x98,0x61,0x88,0x8A,0xE7,0xFF,0xE0,0x82,0xC3,0x54,0x00, +0x01,0xCA,0xE0,0x11,0x50,0xCB,0x5A,0x22,0x00,0x57,0x17,0xFF,0x4F,0x18,0x10,0x8F, +0x1A,0x1F,0x61,0x2A,0x0B,0x38,0x01,0x4F,0x17,0x08,0x8F,0x1B,0xEF,0x38,0xDD,0x61, +0x9E,0xE1,0xC2,0xE2,0x2B,0xE4,0x23,0xFF,0x8D,0x1E,0xE1,0x6C,0xFF,0x41,0x00,0xA8, +0xC1,0x94,0x00,0x01,0xFD,0xA0,0xFF,0x00,0x0B,0x37,0x01,0x47,0x19,0x6C,0x5F,0x39, +0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19,0x0B,0x37,0x03,0x8F,0x0C,0x0F,0x38, +0x01,0x9E,0xE4,0xD7,0x57,0xFF,0x2E,0x1E,0xE1,0x48,0x1F,0x41,0x6C,0x0B,0x37,0x01, +0x47,0x19,0x6C,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19,0x0B,0x37, +0x03,0x8F,0x0C,0x0F,0x38,0x01,0x9E,0xE4,0xD7,0x57,0xFF,0x2E,0xE7,0xFF,0xD1,0xAC, +0x99,0xE0,0x89,0xC3,0x98,0x61,0xE7,0xFF,0xD1,0xC2,0xD1,0xE0,0x05,0xBE,0x98,0x60, +0x1D,0x61,0x0A,0xE7,0xFF,0xD1,0xFC,0x99,0x40,0xE4,0x00,0x01,0x45,0x98,0x61,0x88, +0x8A,0x22,0x01,0x0A,0xE7,0xFF,0xDD,0x94,0x98,0x60,0xE7,0xFF,0xDD,0xDE,0xFC,0x60, +0x01,0x00,0xE7,0xFF,0xF7,0x86,0xE7,0xFF,0xCF,0xC8,0xE7,0xFF,0xF6,0x32,0xC4,0x63, +0x01,0x00,0x20,0x63,0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF6,0xDC,0xFC,0x60,0x01, +0x00,0xE7,0xFF,0xF7,0xA0,0x88,0x6A,0x98,0x81,0x98,0xA0,0xE7,0xFF,0xE8,0x04,0xE4, +0x00,0x00,0x8B,0xE7,0xFF,0xDD,0x16,0x98,0x61,0xE7,0xFF,0xDD,0x60,0xFC,0x60,0x01, +0x00,0xE7,0xFF,0xF7,0x08,0xE7,0xFF,0xCF,0x4A,0xE7,0xFF,0xF5,0xB4,0xC4,0x63,0x01, +0x00,0x20,0x63,0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF6,0x5E,0xFC,0x60,0x01,0x00, +0xE7,0xFF,0xF7,0x22,0x88,0x6A,0x98,0x81,0x98,0xA0,0xE7,0xFF,0xE7,0x86,0x0A,0xEB, +0x01,0x40,0x63,0xBD,0x0C,0x6B,0x01,0x9E,0x01,0x5E,0x10,0x00,0xD2,0x02,0xFB,0x8E, +0x9D,0x41,0x9D,0x62,0x5D,0x4A,0x00,0xD1,0x44,0x05,0xEA,0x9A,0x00,0xE7,0xFF,0xFE, +0xC1,0x98,0x61,0x1D,0x61,0x12,0xE7,0xFF,0xD0,0x96,0x99,0x40,0xE4,0x00,0x01,0x45, +0x98,0x61,0x88,0x8A,0x22,0x01,0x0A,0xE7,0xFF,0xDC,0x2E,0x98,0x60,0xE7,0xFF,0xDC, +0x78,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF6,0x20,0xE7,0xFF,0xCE,0x62,0xE7,0xFF,0xF4, +0xCC,0xC4,0x63,0x01,0x00,0x20,0x63,0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF5,0x76, +0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF6,0x3A,0x88,0x6A,0x98,0x81,0x98,0xA0,0xE7,0xFF, +0xE6,0x9E,0xE4,0x00,0x00,0x8B,0xE7,0xFF,0xDB,0xB0,0x98,0x61,0xE7,0xFF,0xDB,0xFA, +0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF5,0xA2,0xE7,0xFF,0xCD,0xE4,0xE7,0xFF,0xF4,0x4E, +0xC4,0x63,0x01,0x00,0x20,0x63,0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF4,0xF8,0xFC, +0x60,0x01,0x00,0xE7,0xFF,0xF5,0xBC,0x88,0x6A,0x98,0x81,0x98,0xA0,0xE7,0xFF,0xE6, +0x20,0x0A,0xEB,0x01,0x40,0x63,0xBD,0x0C,0x6B,0x01,0x9E,0x01,0x5E,0x10,0x00,0xD2, +0x02,0xFB,0x8E,0x9D,0x41,0x9D,0x62,0x5D,0x4A,0x00,0xD1,0x44,0x00,0x52,0x9A,0x00, +0xE7,0xFF,0xFE,0xC1,0x9D,0xE1,0x5D,0xEF,0x00,0xD1,0xE2,0xF4,0x8E,0x0B,0x21,0x0A, +0x0B,0x01,0x12,0x0F,0x21,0x07,0x1E,0xE1,0x0C,0x1F,0x81,0x12,0x0B,0x77,0x01,0x8B, +0x59,0x5F,0xBB,0x06,0xD7,0x3D,0x00,0x30,0x8B,0x5B,0x5F,0x3A,0x06,0x0B,0x77,0x09, +0x8B,0x58,0x5F,0xBB,0x06,0xD7,0x1D,0x00,0x30,0x8B,0x5B,0x5F,0x1A,0x06,0x9E,0xE2, +0xD7,0x97,0xFE,0xE6,0x0F,0x21,0x07,0x9A,0xE0,0x0F,0x01,0x09,0x1F,0x21,0x1A,0x8B, +0x57,0xFD,0x00,0x3F,0xFF,0xE4,0x00,0x00,0x69,0x43,0x7E,0xC4,0x0B,0x9B,0x00,0x43, +0x79,0xC4,0x23,0x80,0x32,0x0D,0x1B,0x01,0x9B,0x41,0xE4,0x00,0x00,0x23,0x09,0x5D, +0x00,0xCD,0x4A,0x1F,0xFF,0x43,0x8A,0xE0,0x0F,0x9B,0x01,0x9F,0x02,0xD3,0x08,0xFE, +0xE6,0x9F,0x28,0x9E,0xE2,0xD2,0xE4,0x00,0xBA,0x1F,0x01,0x0A,0x4F,0xD7,0x10,0x1F, +0xA1,0x06,0x8F,0xD8,0x8F,0xB7,0x9B,0x00,0xE7,0xFF,0xFF,0x83,0xC3,0x94,0x00,0x01, +0x9A,0xE0,0xCB,0x9C,0x24,0x00,0xE4,0x00,0x00,0x47,0x43,0xB9,0xC4,0x43,0xDB,0xC4, +0x57,0xBD,0xFF,0x0B,0xDE,0x01,0x4F,0xBD,0x10,0x8F,0xBC,0x0F,0xDD,0x01,0x9F,0x02, +0xD3,0x08,0xFF,0x56,0x9E,0xE1,0x22,0xE8,0x54,0x1F,0x21,0x1A,0x4F,0x77,0x18,0x9B, +0x00,0x8F,0x79,0xFF,0x37,0x12,0x46,0xE7,0xFF,0xFF,0xA7,0x9A,0xE0,0x4F,0x17,0x08, +0x1F,0x61,0x6C,0x8F,0x1B,0x0B,0x38,0x01,0x47,0x19,0x6C,0x5F,0x39,0x00,0x4F,0x39, +0x10,0x4F,0x18,0x08,0x8F,0x19,0x1F,0x21,0x2A,0x8F,0x0C,0x8F,0x37,0x0B,0x39,0x01, +0x0F,0x38,0x01,0x9E,0xE2,0x5E,0xE3,0xC9,0x23,0xFF,0x55,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x25,0x38,0x0B,0x17,0x01,0x23,0x40,0x34,0x5F,0x18,0x04,0x53,0x18,0x0F,0xE4, +0x00,0x00,0x11,0xC7,0x18,0xFF,0xF0,0x0F,0x17,0x01,0x98,0x60,0x98,0x80,0xE7,0xFF, +0xDA,0x38,0x98,0x80,0x98,0x61,0xE7,0xFF,0xDA,0x28,0x98,0x60,0xE7,0xFF,0xD8,0xDA, +0x98,0x60,0x98,0x80,0xE7,0xFF,0xD8,0x74,0x88,0x6E,0xEE,0x01,0x00,0xAA,0xED,0xE1, +0x00,0xAE,0xED,0xC1,0x00,0xB2,0xED,0xA1,0x00,0xB6,0xED,0x81,0x00,0xBA,0xED,0x61, +0x00,0xBE,0xED,0x41,0x00,0xC2,0xED,0x21,0x00,0xC6,0xFC,0x21,0x00,0xC8,0xE7,0xFF, +0xCC,0x13,0xC2,0xF4,0x00,0x01,0x53,0x20,0x1F,0xCB,0x17,0x3C,0x30,0x0F,0x38,0x01, +0xCC,0x63,0x61,0xA8,0xCB,0x17,0x3C,0x90,0xCA,0xF7,0x3C,0x38,0x0B,0x18,0x01,0x43, +0x03,0xC1,0x4F,0x18,0x29,0x9F,0x1F,0x5F,0x18,0x04,0x0F,0x17,0x01,0x85,0x29,0xC2, +0xF4,0x00,0x01,0x54,0x63,0x62,0xCA,0xF7,0x3C,0x94,0x50,0x63,0x02,0x0B,0x17,0x01, +0x1F,0x20,0x9D,0x47,0x18,0xCC,0x47,0x03,0xC5,0x0F,0x17,0x01,0x85,0x29,0x5C,0x63, +0x04,0xC6,0xE3,0x02,0x00,0x5E,0xF7,0x04,0x22,0xE0,0x70,0xC2,0xF4,0x00,0x01,0xFF, +0x20,0xFC,0xFF,0xCA,0xF7,0x2C,0x54,0x0B,0x17,0x01,0x47,0x18,0xCC,0xCB,0x18,0x01, +0x00,0x0F,0x17,0x01,0xC6,0xE3,0x04,0x00,0x5E,0xF7,0x04,0x22,0xE0,0xB8,0xC2,0xF4, +0x00,0x01,0xFF,0x00,0xA5,0x5A,0xCB,0x37,0x30,0xCC,0x0F,0x19,0x01,0xCB,0x37,0x30, +0xD0,0x0F,0x19,0x01,0xCA,0xF7,0x31,0x04,0xFF,0x40,0x8F,0xFF,0x0B,0x17,0x01,0x47, +0x18,0xD4,0xCB,0x18,0x30,0x00,0x0F,0x17,0x01,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x3C, +0x98,0x0B,0x38,0x01,0xFF,0x20,0x01,0x01,0x0F,0x38,0x01,0xCB,0x17,0x3C,0xA0,0x0B, +0x58,0x01,0x0F,0x38,0x01,0x1F,0x40,0x88,0xCB,0x17,0x3C,0xB4,0x0B,0x38,0x01,0x47, +0x39,0xD4,0x53,0x39,0x33,0x0F,0x38,0x01,0xCB,0x17,0x3C,0xB0,0x0B,0x38,0x01,0x5F, +0x39,0x00,0xCB,0x39,0x03,0x00,0x0F,0x38,0x01,0xCA,0xF7,0x3C,0x94,0xC4,0x63,0x07, +0x00,0x0B,0x17,0x01,0xFF,0x20,0xF8,0xFF,0x47,0x18,0xCC,0x44,0x63,0xC5,0x0C,0x77, +0x01,0x85,0x29,0x00,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xC8,0x80, +0xAA,0x55,0xC0,0x74,0x00,0x01,0xC8,0x63,0x78,0xC0,0x0C,0x83,0x00,0xC0,0x74,0x00, +0x01,0xC8,0x63,0x1F,0xDC,0x50,0x80,0x80,0x0C,0x83,0x00,0x04,0x20,0x80,0xC8,0x21, +0x17,0xFC,0x1C,0x40,0xFD,0x44,0x21,0x14,0x28,0x00,0x74,0xC0,0x40,0x00,0x01,0xC8, +0x42,0x3E,0x06,0x84,0x49,0x0C,0x41,0x0C,0x0C,0x61,0x10,0x0C,0x81,0x14,0x0C,0xA1, +0x18,0x0C,0xC1,0x1C,0x0C,0xE1,0x20,0x0D,0x01,0x24,0x0D,0x21,0x28,0x0D,0x41,0x2C, +0x0D,0x61,0x30,0x0D,0x81,0x34,0x0D,0xA1,0x38,0x0D,0xC1,0x3C,0x0D,0xE1,0x40,0x0E, +0x01,0x44,0x0E,0x21,0x48,0x0E,0x41,0x4C,0x0E,0x61,0x50,0x0E,0x81,0x54,0x0E,0xA1, +0x58,0x0E,0xC1,0x5C,0x0E,0xE1,0x60,0x0F,0x01,0x64,0x0F,0x21,0x68,0x0F,0x41,0x6C, +0x0F,0x61,0x70,0x0F,0x81,0x74,0x0F,0xA1,0x78,0x0F,0xC1,0x7C,0x1C,0x61,0x00,0xC1, +0x00,0x00,0x01,0xC9,0x08,0xAD,0x50,0x85,0x08,0x90,0x23,0x00,0xC0,0x40,0x10,0x01, +0xC8,0x42,0x03,0xB0,0xC0,0x60,0x10,0x01,0xC8,0x63,0x0D,0x04,0x5C,0x43,0x1F,0x20, +0x00,0x2D,0x0C,0x02,0x00,0x1C,0x42,0x04,0x93,0xF4,0x85,0x29,0xC0,0x80,0x01,0x1F, +0xC0,0x7F,0xFF,0xE1,0xC8,0x63,0xFF,0xF9,0x44,0x84,0x1C,0xC0,0x80,0x01,0x1D,0x0C, +0x61,0x02,0xC0,0x60,0x02,0x0D,0x0C,0x61,0x06,0xC0,0x60,0x04,0x0D,0x0C,0x41,0x0E, +0x0C,0x61,0x12,0x0C,0x81,0x16,0x0C,0xA1,0x1A,0x0C,0xC1,0x1E,0x0C,0xE1,0x22,0x0D, +0x01,0x26,0x0D,0x21,0x2A,0x0D,0x41,0x2E,0x0D,0x61,0x32,0x0D,0x81,0x36,0x0D,0xA1, +0x3A,0x0D,0xC1,0x3E,0x0D,0xE1,0x42,0x0E,0x01,0x46,0x0E,0x21,0x4A,0x0E,0x41,0x4E, +0x0E,0x61,0x52,0x0E,0x81,0x56,0x0E,0xA1,0x5A,0x0E,0xC1,0x5E,0x0E,0xE1,0x62,0x0F, +0x01,0x66,0x0F,0x21,0x6A,0x0F,0x41,0x6E,0x0F,0x61,0x72,0x0F,0x81,0x76,0x0F,0xA1, +0x7A,0x0F,0xC1,0x7E,0xEF,0xE1,0x00,0x82,0x0C,0x21,0x0A,0x84,0x00,0x00,0x00,0x00, +0x9C,0x30,0xCA,0xE0,0x48,0x02,0x0D,0x41,0x08,0x0D,0x21,0x0C,0x89,0x43,0xC2,0xF7, +0x00,0x0F,0x9B,0x1C,0x46,0xF7,0xC4,0x0E,0xE1,0x04,0x0E,0xE1,0x06,0x56,0xF7,0x04, +0x22,0xE0,0xE0,0xCA,0xE0,0x48,0x00,0xC3,0x37,0x00,0x0F,0x9B,0x1B,0x47,0x39,0xC4, +0xC3,0x37,0x00,0x0D,0xCA,0xE0,0x48,0x02,0xC3,0x37,0x00,0x0F,0x47,0x19,0xC4,0xC3, +0x17,0x00,0x0D,0x98,0x82,0xE7,0xFF,0xBE,0x8C,0xCA,0xE0,0x48,0x00,0xC3,0x17,0x00, +0x0F,0x53,0x18,0x04,0xC3,0x17,0x00,0x0D,0x0E,0xE1,0x06,0x56,0xF7,0x08,0x22,0xE0, +0xE8,0xCA,0xE0,0x48,0x00,0xC3,0x37,0x00,0x0F,0x9B,0x17,0x47,0x39,0xC4,0xC3,0x37, +0x00,0x0D,0xCA,0xE0,0x48,0x02,0xC3,0x37,0x00,0x0F,0x47,0x19,0xC4,0xC3,0x17,0x00, +0x0D,0x98,0x83,0x88,0x6A,0xE7,0xFF,0xBE,0x0C,0xCA,0xE0,0x48,0x00,0xC3,0x17,0x00, +0x0F,0x53,0x18,0x08,0xC3,0x17,0x00,0x0D,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21, +0x10,0x85,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x00,0xA0,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1B,0x00,0x00,0x00,0x00,0xA0,0x26,0x01, +0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0xA0,0x66,0x00, +0x01,0x00,0x00,0x00,0xF3,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC4,0x00,0x2F,0x00,0x07,0x00,0x0D,0x01, +0xE0,0xFF,0x5C,0x00,0x00,0x00,0x00,0x00,0x1B,0x00,0x1B,0x00,0x01,0x00,0x10,0x00, +0xDF,0x00,0x9E,0x00,0x5B,0x00,0x5B,0x00,0x1A,0x00,0x32,0x00,0x90,0x01,0x80,0x00, +0x94,0x01,0x80,0x00,0x19,0x00,0x32,0x00,0x98,0xB9,0x00,0xC0,0x02,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x14,0x14,0x14,0x14,0xF5,0xB9,0x00,0xC0,0x02,0x02,0x00,0x00, +0x00,0x00,0x00,0x00,0x14,0x14,0x14,0x14,0xD7,0xB9,0x00,0xC0,0x02,0x03,0x00,0x00, +0x00,0x00,0x00,0x00,0x14,0x14,0x14,0x14,0xCD,0xB9,0x00,0xC0,0x02,0x04,0x00,0x00, +0x00,0x00,0x00,0x00,0x14,0x14,0x14,0x14,0x08,0xBA,0x00,0xC0,0x0B,0x05,0x00,0x00, +0x01,0x00,0x00,0x00,0x37,0x14,0x64,0x2C,0x9A,0xB9,0x00,0xC0,0x0D,0x06,0x00,0x00, +0x01,0x00,0x00,0x00,0x37,0x14,0x5A,0x2C,0xA7,0xB9,0x00,0xC0,0x0B,0x07,0x00,0x00, +0x01,0x00,0x00,0x00,0x28,0x14,0x28,0x14,0xE7,0xB9,0x00,0xC0,0x0E,0x08,0x00,0x00, +0x01,0x00,0x00,0x00,0x3C,0x1E,0x37,0x19,0xD9,0xB9,0x00,0xC0,0x06,0x09,0x00,0x00, +0x01,0x00,0x00,0x00,0x1E,0x14,0x30,0x1E,0x13,0xBA,0x00,0xC0,0x0E,0x0A,0x00,0x00, +0x01,0x00,0x00,0x00,0x3C,0x1C,0x3C,0x22,0x27,0xBA,0x00,0xC0,0x0F,0x0B,0x00,0x00, +0x01,0x00,0x00,0x00,0x46,0x19,0x28,0x14,0x6A,0xB9,0x00,0xC0,0x06,0x0C,0x00,0x00, +0x01,0x00,0x00,0x00,0x3C,0x1E,0x28,0x14,0x82,0xB9,0x00,0xC0,0x0E,0x0A,0x00,0x00, +0x01,0x00,0x00,0x00,0x3C,0x1C,0x3C,0x22,0xCF,0xB9,0x00,0xC0,0x08,0x05,0x00,0x00, +0x01,0x00,0x00,0x00,0x37,0x14,0x78,0x2C,0xFD,0xB9,0x00,0xC0,0x0B,0x05,0x00,0x00, +0x01,0x00,0x00,0x00,0x37,0x14,0x78,0x2C,0xDF,0xB9,0x00,0xC0,0x08,0x06,0x00,0x00, +0x01,0x00,0x00,0x00,0x37,0x14,0x5A,0x2C,0xB2,0xB9,0x00,0xC0,0x0C,0x08,0x00,0x00, +0x01,0x00,0x00,0x00,0x3C,0x1E,0x37,0x19,0xF7,0xB9,0x00,0xC0,0x06,0x07,0x00,0x00, +0x01,0x00,0x00,0x00,0x28,0x14,0x28,0x14,0xC6,0xB9,0x00,0xC0,0x07,0x07,0x00,0x00, +0x01,0x00,0x00,0x00,0x28,0x14,0x28,0x14,0x90,0xB9,0x00,0xC0,0x08,0x0B,0x00,0x00, +0x01,0x00,0x00,0x00,0x46,0x19,0x28,0x14,0x21,0xBA,0x00,0xC0,0x06,0x09,0x00,0x00, +0x01,0x00,0x00,0x00,0x1E,0x14,0x30,0x1E,0xBE,0xB9,0x00,0xC0,0x08,0x0C,0x00,0x00, +0x01,0x00,0x00,0x00,0x3C,0x1E,0x28,0x14,0x36,0xBA,0x00,0xC0,0x09,0x09,0x00,0x00, +0x01,0x00,0x00,0x00,0x1E,0x14,0x30,0x1E,0x70,0xB9,0x00,0xC0,0x0A,0x06,0x00,0x00, +0x01,0x00,0x00,0x00,0x37,0x14,0x5A,0x2C,0x7A,0xB9,0x00,0xC0,0x08,0x06,0x00,0x00, +0x01,0x00,0x00,0x00,0x37,0x14,0x5A,0x2C,0x92,0x01,0x80,0x00,0x86,0x01,0x80,0x00, +0x01,0x00,0x00,0x00,0x64,0x00,0x14,0x00,0x14,0x00,0x06,0x00,0x06,0x00,0x5A,0x00, +0x14,0x00,0x14,0x00,0x06,0x00,0x06,0x00,0x64,0x00,0x01,0x00,0x5F,0x00,0x01,0x00, +0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x50,0x00,0x96,0x00,0x40,0x06,0x00,0x00,0x80,0x0C,0x00,0x00,0x01,0x03,0x07,0x00, +0x00,0x01,0x02,0x00,0x07,0x00,0xC8,0x00,0xC8,0x00,0xC8,0x00,0xF4,0x01,0xF4,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,0x01,0x02,0x03,0x04,0x05,0x02,0x00,0x04,0x00,0x06,0x00, +0x08,0x00,0x0A,0x00,0x0C,0x00,0x10,0x00,0x14,0x00,0x18,0x00,0x20,0x00,0x28,0x00, +0x32,0x00,0x3E,0x00,0x40,0x00,0x64,0x00,0x80,0x00,0x00,0x01,0x02,0x00,0x00,0x11, +0xFF,0xFF,0xFF,0xFF,0x01,0x11,0xFF,0xFF,0x18,0x50,0x02,0x11,0xFF,0x7F,0xFF,0x0E, +0x03,0x11,0xFF,0x00,0x66,0x00,0x04,0x11,0xFF,0x0F,0x72,0x07,0x05,0x11,0xFF,0x0F, +0x72,0x07,0x06,0x11,0xFF,0x00,0x00,0x00,0x07,0x11,0x03,0x00,0x00,0x00,0x08,0x11, +0x73,0x00,0x00,0x00,0x09,0x11,0xFF,0xFF,0x00,0x00,0x09,0x11,0xFF,0x7F,0x00,0x00, +0x0A,0x11,0xFF,0x7F,0x87,0x10,0x0E,0x11,0xFF,0xFF,0x00,0x00,0x0F,0x11,0xFF,0xFF, +0x00,0x00,0x17,0x11,0x0F,0xFF,0x00,0x00,0x18,0x11,0xFF,0xFF,0x00,0x02,0x19,0x11, +0xFF,0x00,0x0E,0x00,0x1E,0x11,0xFF,0xFF,0x00,0x00,0x1F,0x11,0xFF,0x00,0x00,0x00, +0x33,0x11,0x0F,0x00,0x00,0x00,0x3A,0x11,0x37,0x0F,0x00,0x00,0x3B,0x11,0x77,0x00, +0x77,0x00,0x3C,0x11,0x00,0xFF,0x00,0xA0,0x3D,0x11,0x77,0x00,0x00,0x00,0x3E,0x11, +0xFF,0x00,0x00,0x00,0x04,0x12,0x06,0x00,0x00,0x00,0x05,0x12,0xFF,0x00,0x00,0x00, +0x07,0x12,0xFF,0xFF,0x00,0x00,0x08,0x12,0xFF,0x00,0x00,0x00,0x09,0x12,0xFF,0xFF, +0x00,0x00,0x0A,0x12,0xFF,0x00,0x00,0x00,0x0B,0x12,0x3F,0x00,0x2E,0x00,0x0D,0x12, +0x1F,0x00,0x05,0x00,0x0E,0x12,0x1F,0x00,0x05,0x00,0x0F,0x12,0xFF,0xFF,0x00,0x00, +0x10,0x12,0xFF,0x00,0x00,0x00,0x11,0x12,0xFF,0x0F,0x00,0x00,0x12,0x12,0x87,0x1F, +0x00,0x00,0x13,0x12,0x7F,0x0F,0x14,0x00,0x14,0x12,0x9F,0xFF,0x0A,0x09,0x15,0x12, +0x7F,0x0F,0x0C,0x0F,0x16,0x12,0xFF,0x0F,0x00,0x07,0x17,0x12,0x1F,0xFF,0x0A,0x5C, +0x18,0x12,0x7F,0x1F,0x14,0x0A,0x19,0x12,0xFF,0xFF,0x8C,0x21,0x1A,0x12,0xFF,0x03, +0x00,0x00,0x1B,0x12,0xFF,0x03,0x00,0x00,0x1C,0x12,0xFF,0x03,0x00,0x00,0x1D,0x12, +0xFF,0x03,0x00,0x00,0x1E,0x12,0x1F,0x1F,0x12,0x07,0x1F,0x12,0x3F,0x3F,0x00,0x00, +0x20,0x12,0xFF,0xFF,0x00,0x00,0x21,0x12,0xFF,0x00,0x00,0x00,0x23,0x12,0x3F,0x3F, +0x02,0x00,0x24,0x12,0x3F,0x00,0x00,0x00,0x28,0x12,0xFF,0xFF,0x83,0x81,0x2D,0x12, +0x01,0x00,0x01,0x00,0x50,0x12,0xFF,0xFF,0x00,0x00,0x51,0x12,0xFF,0x00,0x00,0x00, +0x70,0x12,0x03,0x00,0x03,0x00,0x01,0x11,0x06,0x00,0x02,0x00,0x02,0x11,0x00,0x08, +0x00,0x08,0x2A,0x12,0x00,0xFF,0x00,0xBA,0x2B,0x12,0xFF,0x30,0xF0,0x20,0x01,0x11, +0x06,0x00,0x00,0x00,0x2A,0x12,0x00,0xFF,0x00,0x00,0x2B,0x12,0xFF,0x30,0x00,0x00, +0x01,0x11,0x00,0x50,0x00,0x50,0x02,0x11,0x3F,0x06,0x2F,0x06,0x01,0x11,0x00,0x50, +0x00,0x00,0x02,0x11,0x3F,0x06,0x00,0x00,0x2A,0x12,0x00,0x30,0x00,0x20,0x11,0x1E, +0xFF,0x7F,0x00,0x00,0x12,0x1E,0xFF,0x00,0x00,0x00,0x13,0x1E,0x0F,0x00,0x00,0x00, +0x15,0x1E,0x73,0x07,0x00,0x00,0x16,0x1E,0x0F,0x00,0x00,0x00,0x18,0x1E,0x3F,0x00, +0x08,0x00,0x2A,0x1E,0x05,0x00,0x01,0x00,0x50,0x11,0x11,0x11,0x51,0x11,0x11,0x11, +0x52,0x11,0x11,0x11,0x53,0x11,0x11,0x11,0x54,0x11,0x11,0x11,0x55,0x11,0x11,0x11, +0x56,0x11,0x11,0x11,0x57,0x11,0x11,0x11,0x58,0x11,0x11,0x11,0x59,0x11,0x11,0x11, +0x5A,0x11,0x11,0x11,0x5B,0x11,0x11,0x11,0x5C,0x11,0xFF,0xFF,0x5D,0x11,0xFF,0xFF, +0x5E,0x11,0xFF,0xFF,0x46,0x12,0x00,0x00,0x47,0x12,0x00,0x00,0x48,0x12,0x00,0x00, +0x49,0x12,0x00,0x00,0x4A,0x12,0x00,0x00,0x4B,0x12,0x00,0x00,0x4C,0x12,0x00,0x00, +0x4D,0x12,0x00,0x00,0x4E,0x12,0x0F,0x00,0x02,0x03,0x5C,0x54,0x47,0x37,0x00,0x00, +0x31,0x00,0x94,0x00,0xFA,0x00,0x66,0x01,0xD9,0x01,0x57,0x02,0xE6,0x02,0x8A,0x03, +0x4F,0x04,0x44,0x05,0x84,0x06,0x42,0x08,0xEB,0x0A,0x98,0x0F,0x55,0x1A,0xF3,0x07, +0xFF,0xFF,0x0F,0x00,0x52,0x00,0x69,0x00,0xD9,0x00,0x00,0x00,0x3B,0x40,0x00,0x00, +0xDB,0x40,0x00,0x00,0xFA,0x40,0x00,0x00,0xCD,0x41,0x00,0x00,0xE4,0x41,0x00,0x00, +0x95,0x00,0x89,0x00,0x7E,0x00,0x72,0x00,0x67,0x00,0x5B,0x00,0x50,0x00,0x44,0x00, +0x39,0x00,0x2D,0x00,0x22,0x00,0x16,0x00,0x0B,0x00,0x00,0x00,0xFF,0x00,0x8D,0x09, +0x1A,0x00,0xFE,0x00,0x1B,0x07,0x3F,0x00,0xFE,0x00,0x9D,0x0A,0x78,0x00,0xFD,0x00, +0xEC,0x12,0xA8,0x00,0xFC,0x00,0x6B,0x18,0xD0,0x00,0xFB,0x00,0x7C,0x19,0x0A,0x01, +0xF9,0x00,0x55,0x20,0x4E,0x01,0xF8,0x00,0x85,0x26,0x86,0x01,0xFF,0x00,0x48,0x0D, +0x09,0x00,0xFE,0x00,0x9E,0x0B,0x1E,0x00,0xFE,0x00,0x34,0x0E,0x44,0x00,0xFD,0x00, +0x35,0x14,0x66,0x00,0xFD,0x00,0x1A,0x18,0x7F,0x00,0xFC,0x00,0x11,0x19,0x9C,0x00, +0xFB,0x00,0x3C,0x1C,0xBF,0x00,0xFB,0x00,0x94,0x21,0xDB,0x00,0xFA,0x00,0xE6,0x24, +0xF7,0x00,0xF9,0x00,0xFB,0x24,0x29,0x01,0xFE,0x00,0xE0,0x0D,0x04,0x00,0xFE,0x00, +0xF6,0x10,0x18,0x00,0xFE,0x00,0xC8,0x12,0x30,0x00,0xFD,0x00,0xEB,0x14,0x4A,0x00, +0xFD,0x00,0x74,0x16,0x69,0x00,0xFC,0x00,0xB9,0x1C,0x7E,0x00,0xFC,0x00,0x68,0x20, +0x8E,0x00,0xFB,0x00,0xCE,0x21,0xA6,0x00,0xFB,0x00,0x52,0x23,0xC8,0x00,0xFA,0x00, +0x0A,0x29,0xE2,0x00,0xF9,0x00,0x4D,0x2C,0xFC,0x00,0xFE,0x00,0x85,0x13,0xF8,0xFF, +0xFE,0x00,0xF6,0x12,0x07,0x00,0xFD,0x00,0xC9,0x13,0x24,0x00,0xFD,0x00,0x6E,0x18, +0x3E,0x00,0xFC,0x00,0x47,0x1C,0x4E,0x00,0xFC,0x00,0x83,0x1D,0x5E,0x00,0xFC,0x00, +0xFB,0x1F,0x74,0x00,0xFB,0x00,0xF7,0x25,0x86,0x00,0xFA,0x00,0xB8,0x29,0x93,0x00, +0xFA,0x00,0xA4,0x29,0xAB,0x00,0xF9,0x00,0x13,0x2B,0xCB,0x00,0xF9,0x00,0x37,0x30, +0xE5,0x00,0xFD,0x00,0x0D,0x1F,0xDC,0xFF,0xFD,0x00,0x3D,0x1E,0xE7,0xFF,0xFD,0x00, +0xD0,0x1C,0x02,0x00,0xFC,0x00,0xCD,0x1E,0x1B,0x00,0xFC,0x00,0x4B,0x22,0x29,0x00, +0xFC,0x00,0x4F,0x25,0x33,0x00,0xFB,0x00,0x83,0x27,0x43,0x00,0xFA,0x00,0xE6,0x2C, +0x4F,0x00,0xFA,0x00,0x48,0x30,0x57,0x00,0xFA,0x00,0x0E,0x31,0x62,0x00,0xF9,0x00, +0x76,0x31,0x77,0x00,0xF9,0x00,0x65,0x36,0x87,0x00,0xF8,0x00,0xB3,0x38,0x94,0x00, +0xF8,0x00,0x27,0x37,0xAC,0x00,0x05,0x03,0x03,0x04,0x04,0x00,0x11,0x00,0xC1,0x09, +0xD9,0xFF,0x36,0x01,0x0E,0x00,0x1C,0x00,0xDD,0x03,0x03,0x00,0x40,0x00,0x14,0x00, +0x4C,0x00,0x95,0x03,0x05,0x00,0x07,0x00,0x18,0x00,0xA5,0x00,0x4B,0x06,0x9B,0xFF, +0x03,0x00,0x19,0x00,0xC8,0x00,0x14,0x03,0x3B,0x00,0x00,0x00,0x1A,0x00,0x16,0x00, +0x40,0x05,0xE4,0xFF,0xA2,0x00,0x14,0x00,0x3B,0x00,0x67,0x04,0xF0,0xFF,0x3B,0x00, +0x1A,0x00,0x6F,0x00,0x22,0x04,0xF8,0xFF,0x03,0x00,0x20,0x00,0x1C,0x00,0x48,0x05, +0xDB,0xFF,0x98,0x00,0x16,0x00,0x57,0x00,0x90,0x04,0xEC,0xFF,0x19,0x00,0x21,0x00, +0x95,0x00,0x08,0x04,0xFE,0xFF,0x02,0x00,0x24,0x00,0x23,0x00,0xC4,0x05,0xCC,0xFF, +0xA6,0x00,0x17,0x00,0x62,0x00,0x9C,0x04,0xEC,0xFF,0x17,0x00,0x25,0x00,0xA0,0x00, +0x0E,0x04,0xFB,0xFF,0x02,0x00,0x28,0x00,0x0D,0x01,0x7D,0x04,0xE1,0xFF,0xFC,0xFF, +0x2A,0x00,0x33,0x00,0x30,0x07,0xA2,0xFF,0xD3,0x00,0x18,0x00,0x6F,0x00,0xAD,0x04, +0xED,0xFF,0x23,0x00,0x2B,0x00,0x9C,0x00,0x14,0x03,0x27,0x00,0x03,0x00,0x2F,0x00, +0xE1,0x00,0x53,0x05,0xAB,0xFF,0x02,0x00,0x30,0x00,0x00,0x00,0x13,0x1A,0x05,0x00, +0x30,0x34,0x38,0x0C,0x10,0x34,0x30,0x0E,0x30,0x0A,0x35,0x02,0x09,0x10,0x35,0x10, +0x0A,0x34,0x1E,0x18,0x14,0x0E,0x0B,0x07,0x01,0x3C,0x37,0x34,0x30,0x2A,0x26,0x23, +0x1C,0x17,0x0E,0x05,0x03,0x10,0x19,0x1B,0x2F,0x2F,0x10,0x0E,0x0A,0x05,0x00,0x39, +0x33,0x30,0x10,0x0B,0x04,0x35,0x30,0x28,0x22,0x1E,0x19,0x13,0x10,0x0B,0x07,0x02, +0x3D,0x39,0x00,0x3C,0x38,0x34,0x2E,0x23,0x1D,0x16,0x10,0x0B,0x05,0x01,0x3F,0x00, +0x0A,0x17,0x1A,0x10,0x02,0x3F,0x21,0x1D,0x19,0x14,0x0E,0x04,0x01,0x00,0x00,0x32, +0x33,0x05,0x0D,0x3D,0x35,0x09,0x10,0x1F,0x1F,0x0D,0x0D,0x0D,0x0D,0x35,0x35,0x0E, +0x0D,0x36,0x32,0x09,0x0D,0x37,0x33,0x00,0x3C,0x36,0x2A,0x23,0x1E,0x1A,0x15,0x10, +0x0B,0x08,0x03,0x3C,0x39,0x0F,0x0F,0x1D,0x18,0x12,0x0A,0x04,0x01,0x10,0x10,0x32, +0x3E,0x0D,0x10,0x33,0x38,0x01,0x0D,0x10,0x30,0x34,0x00,0x0D,0x10,0x32,0x34,0x3A, +0x07,0x0D,0x10,0x01,0x05,0x0B,0x0E,0x13,0x1A,0x1F,0x25,0x29,0x2E,0x34,0x36,0x3B, +0x00,0x10,0x0E,0x07,0x3C,0x33,0x30,0x28,0x22,0x1D,0x19,0x14,0x10,0x0A,0x05,0x0B, +0x13,0x1A,0x1D,0x22,0x26,0x2B,0x3D,0x02,0x10,0x09,0x3D,0x34,0x30,0x0B,0x04,0x00, +0xB7,0x60,0x00,0x00,0xB7,0x60,0x00,0x00,0xCC,0x60,0x00,0x00,0xCC,0x60,0x00,0x00, +0x2B,0x62,0x00,0x00,0x2B,0x62,0x00,0x00,0x2B,0x62,0x00,0x00,0x55,0x61,0x00,0x00, +0x2B,0x62,0x00,0x00,0xB2,0x61,0x00,0x00,0x06,0x64,0x00,0x00,0x06,0x64,0x00,0x00, +0x2F,0x64,0x00,0x00,0xFC,0x63,0x00,0x00,0x58,0x64,0x00,0x00,0x88,0x64,0x00,0x00, +0x70,0x64,0x00,0x00,0x61,0x67,0x00,0x00,0x85,0x67,0x00,0x00,0x95,0x67,0x00,0x00, +0xD0,0x67,0x00,0x00,0xCA,0x67,0x00,0x00,0xCA,0x67,0x00,0x00,0xD0,0x67,0x00,0x00, +0xCA,0x67,0x00,0x00,0x0A,0x0B,0x2C,0x1B,0x09,0x07,0x1C,0x1A,0x25,0x05,0x1D,0x19, +0x26,0x00,0x1E,0x18,0x27,0x04,0x1F,0x17,0x28,0x06,0x20,0x0D,0x29,0x08,0x2B,0x0C, +0x2A,0x00,0x00,0x00,0x57,0x75,0x00,0x00,0x57,0x75,0x00,0x00,0x88,0x75,0x00,0x00, +0x88,0x75,0x00,0x00,0xBA,0x75,0x00,0x00,0xBA,0x75,0x00,0x00,0xBA,0x75,0x00,0x00, +0xBA,0x75,0x00,0x00,0x39,0x75,0x00,0x00,0x1B,0x75,0x00,0x00,0x1B,0x76,0x00,0x00, +0x1B,0x76,0x00,0x00,0x4E,0x76,0x00,0x00,0x4E,0x76,0x00,0x00,0x83,0x76,0x00,0x00, +0x83,0x76,0x00,0x00,0x83,0x76,0x00,0x00,0x83,0x76,0x00,0x00,0xF4,0x75,0x00,0x00, +0xE2,0x75,0x00,0x00,0x72,0x77,0x00,0x00,0x72,0x77,0x00,0x00,0xC6,0x77,0x00,0x00, +0xC6,0x77,0x00,0x00,0xA8,0x78,0x00,0x00,0xA8,0x78,0x00,0x00,0xA8,0x78,0x00,0x00, +0xA8,0x78,0x00,0x00,0x20,0x78,0x00,0x00,0x66,0x78,0x00,0x00,0xE2,0x89,0x00,0x00, +0xE9,0x89,0x00,0x00,0xF0,0x89,0x00,0x00,0xF7,0x89,0x00,0x00,0xFE,0x89,0x00,0x00, +0x05,0x8A,0x00,0x00,0x0C,0x8A,0x00,0x00,0x13,0x8A,0x00,0x00,0x1A,0x8A,0x00,0x00, +0x21,0x8A,0x00,0x00,0x28,0x8A,0x00,0x00,0x2F,0x8A,0x00,0x00,0x44,0x8B,0x00,0x00, +0x44,0x8B,0x00,0x00,0x7F,0x8B,0x00,0x00,0x7F,0x8B,0x00,0x00,0x0E,0x8C,0x00,0x00, +0x0E,0x8C,0x00,0x00,0x0E,0x8C,0x00,0x00,0x0E,0x8C,0x00,0x00,0xBC,0x8B,0x00,0x00, +0xE1,0x8B,0x00,0x00,0x00,0x01,0x00,0x00,0x3F,0x8E,0x00,0x00,0x64,0x8E,0x00,0x00, +0xBC,0x8E,0x00,0x00,0xDD,0x8F,0x00,0x00,0x18,0x8F,0x00,0x00,0x48,0x8F,0x00,0x00, +0xDD,0x8F,0x00,0x00,0x50,0x8F,0x00,0x00,0x04,0x00,0x1D,0x00,0x2E,0x00,0x50,0x00, +0x82,0x00,0xC7,0x00,0x23,0x01,0x9B,0x01,0x32,0x02,0xEE,0x02,0xD0,0x03,0xDE,0x04, +0x19,0x06,0x82,0x07,0x1A,0x09,0xE0,0x0A,0xD0,0x0C,0xE7,0x0E,0x1F,0x11,0x71,0x13, +0xD3,0x15,0x3D,0x18,0xA2,0x1A,0xF9,0x1C,0x34,0x1F,0x47,0x21,0x28,0x23,0xCB,0x24, +0x27,0x26,0x33,0x27,0xEA,0x27,0x46,0x28,0x04,0x00,0x1C,0x00,0x2B,0x00,0x4B,0x00, +0x78,0x00,0xB7,0x00,0x0A,0x01,0x75,0x01,0xFC,0x01,0xA3,0x02,0x6D,0x03,0x5E,0x04, +0x76,0x05,0xB9,0x06,0x26,0x08,0xBE,0x09,0x7D,0x0B,0x61,0x0D,0x67,0x0F,0x87,0x11, +0xBB,0x13,0xFC,0x15,0x3F,0x18,0x7B,0x1A,0xA6,0x1C,0xB6,0x1E,0x9F,0x20,0x57,0x22, +0xD7,0x23,0x14,0x25,0x08,0x26,0xAF,0x26,0x03,0x27,0x05,0x00,0x08,0x21,0x05,0x00, +0x00,0x20,0x00,0x00,0x80,0xBD,0x00,0xC0,0x90,0xBD,0x00,0xC0,0xA2,0xBD,0x00,0xC0, +0xA6,0xBD,0x00,0xC0,0x18,0xBD,0x00,0xC0,0x60,0xBD,0x00,0xC0,0xC0,0xBD,0x00,0xC0, +0xDE,0xBD,0x00,0xC0,0xE2,0xBD,0x00,0xC0,0x08,0xBE,0x00,0xC0,0x96,0xBE,0x00,0xC0, +0xD8,0xBE,0x00,0xC0,0x3A,0xBC,0x00,0xC0,0x3E,0xBC,0x00,0xC0,0x14,0xBD,0x00,0xC0, +0x5C,0xBD,0x00,0xC0,0x05,0x00,0x2A,0x00,0x2A,0x00,0x3E,0x00,0x58,0x00,0x79,0x00, +0xA1,0x00,0xD3,0x00,0x0F,0x01,0x56,0x01,0xAA,0x01,0x0C,0x02,0x7D,0x02,0xFE,0x02, +0x91,0x03,0x37,0x04,0xF0,0x04,0xBE,0x05,0xA0,0x06,0x99,0x07,0xA7,0x08,0xCC,0x09, +0x06,0x0B,0x56,0x0C,0xBB,0x0D,0x34,0x0F,0xC0,0x10,0x5D,0x12,0x0A,0x14,0xC5,0x15, +0x8A,0x17,0x59,0x19,0x2D,0x1B,0x05,0x1D,0xDC,0x1E,0xB0,0x20,0x7D,0x22,0x40,0x24, +0xF5,0x25,0x98,0x27,0x27,0x29,0x9E,0x2A,0xF9,0x2B,0x37,0x2D,0x53,0x2E,0x4B,0x2F, +0x1E,0x30,0xC9,0x30,0x4A,0x31,0xA1,0x31,0xCD,0x31,0x04,0x00,0x2D,0x00,0x6D,0x00, +0xE7,0x00,0xAD,0x01,0xD8,0x02,0x81,0x04,0xBE,0x06,0xA0,0x09,0x30,0x0D,0x6D,0x11, +0x47,0x16,0xA3,0x1B,0x56,0x21,0x29,0x27,0xDC,0x2C,0x2A,0x32,0xCF,0x36,0x8B,0x3A, +0x29,0x3D,0x81,0x3E,0x06,0x00,0xF5,0x28,0x03,0x00,0x33,0x33,0x64,0xBD,0x00,0xC0, +0x7A,0xBD,0x00,0xC0,0x0C,0xBE,0x00,0xC0,0x9A,0xBE,0x00,0xC0,0x84,0xBD,0x00,0xC0, +0x94,0xBD,0x00,0xC0,0x68,0xBD,0x00,0xC0,0xAA,0xBD,0x00,0xC0,0xC4,0xBD,0x00,0xC0, +0xE6,0xBD,0x00,0xC0,0xEA,0xBC,0x00,0xC0,0xA4,0xBE,0x00,0xC0,0xB8,0xBB,0x00,0xC0, +0xF8,0xBB,0x00,0xC0,0x84,0xBC,0x00,0xC0,0x14,0xBE,0x00,0xC0,0x06,0x00,0x00,0x20, +0x03,0x00,0xAA,0x2A,0x00,0x00,0x00,0x20,0x02,0x00,0x45,0x00,0x5D,0x01,0x1B,0x04, +0x31,0x09,0xA2,0x10,0x55,0x19,0x32,0x21,0xE5,0x25,0x01,0x00,0x10,0x10,0xEF,0x2F, +0x00,0x00,0x00,0x20,0x02,0x00,0x49,0x01,0x6C,0x07,0xB1,0x15,0x60,0x29,0x38,0x38, +0x01,0x00,0x00,0x20,0x02,0x00,0xAC,0x00,0xCB,0x03,0x95,0x0B,0x6B,0x18,0xE0,0x26, +0xA6,0x30,0x02,0x00,0xAA,0x2A,0x02,0x00,0x00,0x20,0x03,0x00,0x4D,0x00,0x51,0x01, +0xBD,0x03,0x48,0x08,0x6B,0x0F,0x0D,0x19,0x47,0x24,0x73,0x2F,0x86,0x38,0x9F,0x3D, +0x03,0x00,0x00,0x20,0x03,0x00,0x33,0x00,0xC4,0x00,0x08,0x02,0x5B,0x04,0x11,0x08, +0x55,0x0D,0x0D,0x14,0xCC,0x1B,0xCF,0x23,0x1E,0x2B,0xB5,0x30,0xBD,0x33,0x04,0x00, +0x33,0x33,0x04,0x00,0xAA,0x2A,0x03,0x00,0x1F,0x00,0x5B,0x00,0xD6,0x00,0xAB,0x01, +0xF6,0x02,0xD5,0x04,0x59,0x07,0x87,0x0A,0x52,0x0E,0x96,0x12,0x1C,0x17,0x9B,0x1B, +0xC0,0x1F,0x37,0x23,0xB6,0x25,0x05,0x27,0x04,0x00,0x00,0x20,0x01,0x00,0x65,0x04, +0x5D,0x14,0x3D,0x27,0x05,0x00,0x26,0x00,0x1D,0x00,0x28,0x00,0x36,0x00,0x47,0x00, +0x5A,0x00,0x72,0x00,0x8D,0x00,0xAE,0x00,0xD3,0x00,0xFD,0x00,0x2D,0x01,0x64,0x01, +0xA2,0x01,0xE6,0x01,0x33,0x02,0x87,0x02,0xE5,0x02,0x4B,0x03,0xBA,0x03,0x33,0x04, +0xB6,0x04,0x43,0x05,0xDB,0x05,0x7C,0x06,0x29,0x07,0xDF,0x07,0xA1,0x08,0x6C,0x09, +0x41,0x0A,0x21,0x0B,0x09,0x0C,0xFA,0x0C,0xF4,0x0D,0xF5,0x0E,0xFE,0x0F,0x0C,0x11, +0x20,0x12,0x38,0x13,0x53,0x14,0x71,0x15,0x90,0x16,0xAF,0x17,0xCD,0x18,0xE8,0x19, +0x00,0x1B,0x12,0x1C,0x1E,0x1D,0x23,0x1E,0x1F,0x1F,0x10,0x20,0xF7,0x20,0xD0,0x21, +0x9C,0x22,0x59,0x23,0x07,0x24,0xA3,0x24,0x2E,0x25,0xA7,0x25,0x0C,0x26,0x5E,0x26, +0x9C,0x26,0xC6,0x26,0xDA,0x26,0x05,0x00,0x33,0x33,0x01,0x00,0x7E,0x01,0x41,0x08, +0x4A,0x15,0xF4,0x20,0x04,0x00,0x23,0x00,0x45,0x00,0x84,0x00,0xE4,0x00,0x6F,0x01, +0x2F,0x02,0x2F,0x03,0x76,0x04,0x0F,0x06,0xFD,0x07,0x45,0x0A,0xE6,0x0C,0xDA,0x0F, +0x19,0x13,0x93,0x16,0x37,0x1A,0xEF,0x1D,0xA0,0x21,0x2F,0x25,0x80,0x28,0x77,0x2B, +0xFA,0x2D,0xF2,0x2F,0x4D,0x31,0xFD,0x31,0x05,0x00,0xF5,0x28,0x72,0xA2,0x00,0x00, +0x8E,0xA2,0x00,0x00,0xAD,0xA2,0x00,0x00,0xCC,0xA2,0x00,0x00,0xDB,0xA2,0x00,0x00, +0x44,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x0F,0x70,0x8A,0xF7, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00, +0x00,0x00,0x56,0x30,0x31,0x2E,0x30,0x30,0x37,0x2E,0x30,0x34,0x46,0xC9,0xF5,0x89 +}; diff --git a/drivers/input/touchscreen/msg2233/msg21xxa_yyyy_update_bin.h b/drivers/input/touchscreen/msg2233/msg21xxa_yyyy_update_bin.h new file mode 100755 index 00000000..1f4bfde8 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/msg21xxa_yyyy_update_bin.h @@ -0,0 +1,3106 @@ +u8 msg21xxa_yyyy_update_bin[49664]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xF2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x0B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xFD,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xEF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xE1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xD3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xC5,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x1C,0x40,0x00,0x1C, +0x60,0x00,0x1C,0x80,0x00,0x1C,0xA0,0x00,0x1C,0xC0,0x00,0x1C,0xE0,0x00,0x1D,0x00, +0x00,0x1D,0x20,0x00,0x1D,0x40,0x00,0x1D,0x60,0x00,0x1D,0x80,0x00,0x1D,0xA0,0x00, +0x1D,0xC0,0x00,0x1D,0xE0,0x00,0x1E,0x00,0x00,0x1E,0x20,0x00,0x1E,0x40,0x00,0x1E, +0x60,0x00,0x1E,0x80,0x00,0x1E,0xA0,0x00,0x1E,0xC0,0x00,0x1E,0xE0,0x00,0x1F,0x00, +0x00,0x1F,0x20,0x00,0x1F,0x40,0x00,0x1F,0x60,0x00,0x1F,0x80,0x00,0x1F,0xA0,0x00, +0x1F,0xC0,0x00,0x1F,0xE0,0x00,0xC0,0x60,0x00,0x01,0xC8,0x63,0xAC,0x04,0x84,0x69, +0x80,0x01,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00, +0xFC,0x21,0xFF,0x60,0xEF,0xE1,0x00,0x80,0xFF,0xE1,0x00,0xA0,0x0F,0xE1,0x08,0xC3, +0xE0,0x02,0x0F,0x0F,0xE1,0x00,0xC3,0xE0,0x04,0x0F,0x0F,0xE1,0x04,0xC3,0xE0,0x03, +0x0F,0xEF,0xE1,0x00,0x84,0xC3,0xE0,0x05,0x0F,0xEF,0xE1,0x00,0x88,0xC3,0xE0,0x05, +0x1F,0xEF,0xE1,0x00,0x8C,0xE4,0x01,0x53,0x41,0x90,0x00,0x90,0x00,0x90,0x00,0x90, +0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x30,0x44,0x0B, +0x17,0x01,0x98,0x60,0x56,0xF8,0x01,0x4F,0x18,0x79,0x22,0xE0,0x14,0x98,0x62,0x23, +0x00,0x18,0x58,0x77,0x01,0x85,0x29,0x9C,0x30,0x0D,0x41,0x08,0x0C,0x81,0x04,0x0D, +0x21,0x0C,0x5D,0x43,0x00,0xE7,0xFF,0xFF,0xA4,0x0C,0x81,0x06,0x5C,0x63,0x00,0x20, +0x60,0x66,0x9B,0x00,0x21,0x40,0x30,0x21,0x44,0x24,0x5D,0x40,0x41,0x4B,0x01,0x01, +0xD0,0x81,0x04,0x66,0xE4,0x00,0x01,0x17,0xE7,0xFF,0xFF,0x5E,0x5C,0x63,0x00,0x20, +0x64,0x4E,0xD1,0x40,0x05,0xD2,0xD1,0x41,0x05,0xB2,0xD1,0x42,0x05,0x96,0xE4,0x00, +0x00,0xE3,0xE7,0xFF,0xFF,0x2A,0x5C,0x63,0x00,0xD0,0x62,0x05,0x1E,0x9B,0x01,0x21, +0x40,0x24,0x5D,0x40,0x21,0x4B,0x01,0x01,0xC2,0xF4,0x00,0x01,0xFF,0x20,0x80,0x00, +0xCB,0x57,0x23,0x78,0x0B,0x7A,0x01,0x47,0x79,0xDD,0x5F,0x7B,0x04,0x0F,0x7A,0x01, +0xCB,0x57,0x23,0x6C,0x0B,0x7A,0x01,0xC7,0x7B,0x8F,0xFF,0x0F,0x7A,0x01,0xCB,0x57, +0x3C,0xD4,0x0B,0x7A,0x01,0x47,0x79,0xDD,0x5F,0x7B,0x04,0x0F,0x7A,0x01,0xCB,0x57, +0x3C,0xE0,0x0B,0x7A,0x01,0xC7,0x7B,0x7F,0xFF,0x0F,0x7A,0x01,0xCA,0xF7,0x3C,0xEC, +0x0B,0x57,0x01,0x47,0x39,0xD5,0x5F,0x39,0x04,0x0F,0x37,0x01,0x23,0x01,0x00,0xC2, +0xF4,0x00,0x01,0xCB,0x17,0x3D,0xE8,0x0B,0x38,0x01,0xFF,0x20,0x11,0x11,0x0F,0x38, +0x01,0xCB,0x17,0x3D,0xEC,0x0B,0x38,0x01,0xFF,0x20,0x22,0x22,0x0F,0x38,0x01,0xCB, +0x17,0x3D,0xF0,0x0B,0x38,0x01,0xFF,0x20,0x33,0x33,0x0F,0x38,0x01,0xCA,0xF7,0x78, +0xC0,0xFF,0x00,0xAA,0x55,0x0F,0x17,0x01,0xE4,0x00,0x00,0x01,0x0D,0x41,0x0A,0x0D, +0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x03,0xF0,0xC2, +0xE0,0x10,0x01,0xEC,0x97,0x03,0xE8,0xC2,0xE0,0x10,0x01,0xEC,0xB7,0x03,0xEC,0xC2, +0xE0,0x10,0x01,0xEC,0xD7,0x04,0x04,0xC2,0xE0,0x10,0x01,0xEC,0xF7,0x03,0xFC,0xC2, +0xE0,0x10,0x01,0x0F,0x01,0x02,0xED,0x17,0x04,0x00,0xC2,0xE0,0x10,0x01,0xEF,0x17, +0x04,0x10,0xC2,0xE0,0x10,0x01,0x0F,0x01,0x06,0xEF,0x17,0x03,0xD4,0xC2,0xE0,0x10, +0x01,0x0F,0x01,0x0A,0xEF,0x17,0x03,0xF4,0x85,0x29,0x5C,0x84,0x00,0xC2,0xE0,0x10, +0x01,0x4C,0x84,0x10,0xFE,0xF7,0x04,0x08,0x8E,0xE4,0x0C,0x77,0x00,0x85,0x29,0x5C, +0x63,0x00,0x9B,0x00,0x24,0x68,0x25,0x1F,0x03,0xFE,0x5F,0x18,0x00,0xC2,0xE0,0x10, +0x01,0xF3,0x57,0x0B,0x1E,0x1E,0xE3,0x01,0x1F,0x9A,0xFF,0x5F,0x3C,0x00,0xD7,0x97, +0x00,0x50,0x1F,0x23,0x02,0x5F,0x39,0x00,0xC2,0xEF,0xFF,0xE1,0xCA,0xF7,0xFF,0xFF, +0xE4,0x00,0x00,0x2F,0x4F,0x78,0x10,0x9F,0x01,0x8F,0x64,0x5F,0x18,0x00,0x0F,0x7B, +0x02,0x5E,0xFB,0x15,0x4A,0xF7,0xD8,0xD7,0x19,0xFF,0x69,0x4F,0x03,0x10,0xC3,0x20, +0x10,0x01,0x8F,0x04,0xEF,0x39,0x03,0xF6,0x0F,0x18,0x02,0xD7,0x38,0x01,0x41,0xC3, +0x20,0x10,0x01,0xEF,0x79,0x03,0xF2,0xC3,0x20,0x10,0x01,0xEF,0xB9,0x03,0xEA,0xC3, +0x20,0x10,0x01,0xEF,0xD9,0x03,0xEE,0xC3,0x20,0x10,0x01,0xEF,0x39,0x04,0x06,0xE4, +0x00,0x00,0x49,0xC3,0x20,0x10,0x01,0xEF,0x79,0x03,0xFE,0xC3,0x20,0x10,0x01,0xEF, +0xB9,0x04,0x02,0xC3,0x20,0x10,0x01,0xEF,0xD9,0x04,0x12,0xC3,0x20,0x10,0x01,0xEF, +0x39,0x03,0xD6,0x20,0x60,0xDE,0x0F,0x44,0x02,0x0F,0x84,0x06,0xCF,0x5A,0x00,0x32, +0x40,0xE7,0xE3,0xD7,0x47,0x05,0xDC,0x42,0xF7,0x2D,0x40,0xA5,0xCB,0x43,0x77,0xDB, +0x43,0x3B,0x2C,0xCC,0xC6,0x00,0x0A,0x9B,0x4A,0x8C,0xD9,0x98,0x61,0x40,0xC6,0xD0, +0xD7,0x06,0x04,0xF4,0x98,0x60,0xE4,0x00,0x01,0x31,0x20,0x64,0x6A,0x0F,0x44,0x02, +0x0F,0x64,0x06,0xCF,0x5A,0x00,0x32,0x40,0xE7,0xDB,0x98,0x60,0xD7,0x47,0x04,0x14, +0xE4,0x00,0x00,0x55,0x1C,0xFA,0xFE,0xD4,0x67,0x01,0x9E,0x4C,0x63,0x10,0x9F,0x5F, +0x4F,0x5A,0x10,0x8F,0x44,0x8C,0x83,0x0F,0x5A,0x02,0x0F,0x64,0x02,0xCF,0x5A,0x00, +0x32,0x41,0x08,0xDB,0x98,0x60,0xD7,0x48,0x02,0xC4,0x42,0xF7,0x2D,0x40,0xA5,0xCB, +0x43,0xB7,0xEB,0x43,0x3D,0x2C,0xE7,0xFF,0xFF,0x3B,0xD4,0x7C,0x01,0x3E,0x9F,0x5F, +0x4C,0xE7,0x10,0x4F,0x5A,0x10,0x98,0x60,0x8F,0x44,0x8C,0x87,0x0F,0x5A,0x02,0x0F, +0x84,0x02,0xCF,0x5A,0x00,0x32,0x41,0x08,0xE3,0xD7,0x48,0x01,0x2C,0xE7,0xFF,0xFE, +0xD5,0x42,0xF7,0x2D,0xCC,0xC6,0x00,0x0A,0x43,0xD7,0xF3,0x40,0xA5,0xCB,0x9B,0x4A, +0x43,0x3E,0x2C,0x8C,0xD9,0x40,0xC6,0xD0,0xD7,0x06,0xFB,0x60,0x98,0x61,0x85,0x29, +0xC2,0xE0,0x10,0x01,0x9B,0x21,0xEA,0xF7,0x01,0x79,0x9E,0xFF,0x5E,0xF7,0x04,0x26, +0xE4,0x43,0xC3,0x18,0x00,0x21,0xFF,0x18,0xB6,0xF8,0x8E,0xF8,0x13,0x37,0x00,0xC3, +0x00,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFF,0x18,0x0B,0x1A,0xFE,0xF7,0x09,0x0C,0xD0, +0x60,0x05,0x16,0x13,0x58,0x04,0x13,0xD8,0x01,0x1F,0x7A,0xFF,0x9F,0xC1,0x43,0xDE, +0xD3,0x4F,0x5A,0x08,0xCD,0x1B,0x00,0x03,0x5C,0x9A,0x00,0x4F,0x7B,0x08,0x9B,0x40, +0x5C,0x7B,0x00,0xE4,0x00,0x00,0x73,0x43,0x9A,0xDC,0x4F,0xBC,0x08,0x8F,0xB7,0x08, +0xBD,0x01,0x40,0xB9,0x2B,0x0C,0xBD,0x01,0x9F,0x81,0x8F,0x63,0x4F,0x9C,0x08,0x5F, +0x7B,0x00,0x8F,0x97,0x0B,0xBC,0x01,0x43,0xB9,0xEB,0x0F,0xBC,0x01,0xE4,0x00,0x00, +0x0D,0x9B,0x60,0xD5,0x1B,0xFE,0xA4,0x8F,0x44,0x5F,0x5A,0x00,0xD7,0xDA,0xFF,0xAC, +0x0B,0x37,0x02,0x0B,0x57,0x00,0x8F,0x59,0xC3,0x20,0x10,0x01,0xFF,0x39,0x09,0xBC, +0x0F,0x59,0x00,0x13,0x58,0x04,0x1F,0xBA,0xFF,0x4F,0xBD,0x10,0x43,0xDD,0xCC,0x8F, +0xB7,0x4F,0x9A,0x08,0x09,0x1D,0x00,0x1F,0x7C,0xFF,0x4F,0xBB,0x08,0x8F,0xB7,0x0B, +0xBD,0x00,0x8F,0xA8,0x0F,0xBE,0x00,0x13,0x18,0x01,0x27,0x05,0xAF,0xE4,0x00,0x01, +0x45,0x20,0x66,0xFE,0x13,0x58,0x04,0x13,0xD8,0x01,0x1F,0x7A,0xFF,0x9F,0xC1,0x43, +0xDE,0xD3,0x4F,0x5A,0x08,0xCD,0x1B,0x00,0x03,0x5C,0x9A,0x00,0x4F,0x7B,0x08,0x9B, +0x40,0x5C,0x7B,0x00,0xE4,0x00,0x00,0x73,0x43,0x9A,0xDC,0x4F,0xBC,0x08,0x8F,0xB7, +0x08,0xBD,0x00,0x40,0xA5,0xC8,0x0C,0xBD,0x01,0x9F,0x81,0x8F,0x63,0x4F,0x9C,0x08, +0x5F,0x7B,0x00,0x8F,0x97,0x0B,0xBC,0x00,0x43,0xBD,0xC8,0x0F,0xBC,0x01,0xE4,0x00, +0x00,0x0D,0x9B,0x60,0xD5,0x1B,0xFE,0xA4,0x8F,0x44,0x5F,0x5A,0x00,0xD7,0xDA,0xFF, +0xAC,0xE7,0xFF,0xFE,0xBF,0x4F,0x1A,0x10,0x9F,0x81,0x43,0x58,0xCC,0x43,0xB8,0xBC, +0x4F,0x9C,0x08,0x0B,0xBD,0x00,0x8F,0x97,0x0B,0x9C,0x00,0x8F,0x9D,0x0F,0x9A,0x00, +0x4F,0x7B,0x10,0x1F,0x58,0xFE,0x8F,0x3B,0x4F,0x5A,0x08,0x9F,0x1F,0x8F,0x57,0x4F, +0x18,0x08,0x0B,0x5A,0x00,0x8E,0xF8,0x0A,0xF7,0x00,0x8E,0xFA,0x0E,0xF9,0x00,0x85, +0x29,0x5C,0xE7,0x00,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x0B,0x1E,0x42,0xE7,0xBB,0x5E, +0xF7,0x00,0x9B,0x00,0x8C,0xB7,0x8C,0xD7,0xC3,0x80,0x10,0x01,0xC3,0x40,0x10,0x01, +0x5C,0xC6,0x00,0x5C,0xA5,0x00,0x8B,0x38,0x9A,0xE0,0xFF,0x9C,0x09,0xBC,0xFF,0x5A, +0x09,0x0C,0xE4,0x00,0x00,0x49,0x4F,0x65,0x10,0x43,0xBB,0xE4,0x0F,0xBD,0x02,0x9C, +0xA1,0x8E,0xFD,0x5C,0xA5,0x00,0x8B,0xBB,0x8F,0x7A,0x8F,0xBA,0x0B,0x7B,0x00,0x0B, +0xBD,0x02,0x8F,0x1B,0x8F,0x3D,0xD4,0xA6,0xFF,0x01,0x26,0xE0,0xE8,0x27,0x20,0xDC, +0x27,0x00,0xD0,0xC3,0x40,0x10,0x01,0xFF,0x5A,0x04,0x08,0x4C,0xE7,0x10,0xCF,0x18, +0xFF,0xF6,0x8C,0xFA,0x0F,0x47,0x02,0x43,0x3A,0xCB,0x9F,0x56,0x8F,0x19,0x43,0x58, +0xD0,0xCF,0x5A,0x07,0xFF,0x43,0x5A,0xB8,0x0F,0x43,0x01,0x0E,0xE4,0x00,0x98,0x61, +0xE4,0x00,0x00,0x0D,0x98,0x60,0x85,0x29,0x9A,0xE3,0x9B,0x01,0xE4,0x00,0x00,0x11, +0x8F,0x17,0x9E,0xE2,0xD7,0x03,0xFF,0xE1,0x4C,0x77,0x09,0x9C,0x7F,0x85,0x29,0xFF, +0x00,0x7F,0xFF,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x03,0xD8,0x0F,0x17,0x01,0x0F,0x17, +0x03,0x0F,0x17,0x05,0x0F,0x17,0x07,0x0F,0x17,0x09,0x0F,0x17,0x0B,0x85,0x29,0xC3, +0x00,0x10,0x01,0xFE,0xF8,0x03,0xD8,0xC3,0x00,0x10,0x01,0x0B,0x37,0x08,0xFF,0x18, +0x0B,0x90,0xC3,0x2F,0xFF,0xE0,0x20,0x00,0x41,0x0B,0x37,0x05,0x0F,0x37,0x09,0x0B, +0x37,0x07,0xE4,0x00,0x00,0x1B,0x0B,0x38,0x17,0x0F,0x37,0x09,0x0B,0x38,0x19,0x0F, +0x37,0x0B,0x0B,0x37,0x04,0xC3,0x2F,0xFF,0xE0,0x20,0x00,0x41,0x0B,0x37,0x01,0x0F, +0x37,0x05,0x0B,0x37,0x03,0xE4,0x00,0x00,0x1B,0x0B,0x38,0x17,0x0F,0x37,0x05,0x0B, +0x38,0x19,0x0F,0x37,0x07,0x0B,0x38,0x17,0x0B,0x18,0x19,0x0F,0x37,0x01,0x0F,0x17, +0x03,0x85,0x29,0x1C,0x21,0xD8,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x24,0x0D,0x41,0x20, +0x0D,0x61,0x1C,0xFD,0x57,0x03,0xD8,0x0D,0x81,0x18,0x0D,0xA1,0x14,0x0D,0xC1,0x10, +0x09,0xAA,0x07,0x0B,0x0A,0x03,0x43,0x18,0x6D,0x5F,0x18,0x06,0x0F,0x01,0x0B,0x43, +0x18,0xC3,0xE9,0x97,0x03,0xD9,0x09,0xCA,0x05,0x41,0x8C,0x75,0x5D,0x8C,0x06,0x40, +0x6C,0x63,0x8C,0x78,0xE7,0xFF,0xFE,0x48,0x0A,0xEA,0x09,0x41,0xCE,0xBD,0x0A,0xEA, +0x0B,0x42,0xED,0xBD,0x5E,0xF7,0x06,0x0E,0xE1,0x0F,0x42,0xF7,0xBB,0x5D,0x63,0x06, +0x5D,0x4E,0x06,0x40,0x6A,0x53,0x8C,0x77,0xE7,0xFF,0xFE,0x00,0x5E,0xE3,0x06,0x98, +0x61,0x21,0x60,0xAC,0x22,0xE0,0xA0,0x43,0x0B,0xB8,0xD3,0x05,0x01,0x14,0x41,0x4C, +0x53,0x0B,0x01,0x0E,0x09,0x81,0x0A,0x41,0x6B,0xBB,0x43,0x0C,0xC3,0x8D,0x58,0xCD, +0x4A,0x00,0x64,0x42,0xEA,0x58,0x5E,0xE8,0xB1,0x48,0x61,0x01,0x0D,0xC1,0x12,0x0D, +0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26,0x1C,0x21, +0x28,0x85,0x29,0x1C,0x21,0xE8,0xC2,0xE0,0x10,0x01,0x0D,0x41,0x10,0x0D,0x61,0x0C, +0x0D,0x81,0x08,0x0D,0xC1,0x00,0xF1,0x97,0x08,0x72,0xC1,0x40,0x10,0x01,0x1D,0x6C, +0xFF,0x0D,0x21,0x14,0x0D,0xA1,0x04,0x5D,0xC3,0x00,0x5D,0x6B,0x00,0xFD,0x4A,0x0B, +0x90,0x4E,0xEE,0x5D,0x56,0xF7,0x01,0x22,0xE0,0xD4,0x8A,0xEB,0xE4,0x00,0x00,0x43, +0xCC,0x77,0x00,0x30,0x1D,0xB7,0x01,0x8C,0x6A,0xCC,0x8D,0x00,0x30,0x9C,0x64,0x8C, +0x8A,0x50,0xA0,0x30,0x9C,0x84,0xE4,0x00,0x67,0xF4,0x5E,0xED,0x00,0xD5,0x97,0xFF, +0x1D,0x12,0xEA,0x00,0x22,0xE0,0x20,0x9E,0xFF,0x1A,0xEA,0x00,0x21,0x60,0x30,0x9D, +0x7F,0x5D,0x6B,0x00,0xE7,0xFF,0xFF,0x7B,0x12,0xEA,0x00,0x22,0xE0,0x52,0xC2,0xE0, +0x10,0x01,0x9B,0x37,0xEB,0x17,0x08,0x87,0x47,0x18,0xCC,0xEF,0x17,0x08,0x87,0x0D, +0xC1,0x02,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21, +0x16,0x1C,0x21,0x18,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xEB,0x37, +0x01,0x78,0xFF,0x18,0x04,0x1C,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x1A,0x23,0x24, +0xA6,0x13,0x37,0x04,0x9A,0xE0,0x9F,0x21,0xE4,0x00,0x00,0x2F,0x4F,0x57,0x08,0x1F, +0x77,0xFF,0x8F,0x58,0x4F,0x7B,0x10,0x9E,0xE1,0x0F,0x7A,0x01,0x5E,0xF7,0x00,0xD6, +0xF9,0xFF,0x68,0xE4,0x00,0x00,0x9D,0x23,0x28,0x38,0x13,0x37,0x04,0x9A,0xE0,0x9F, +0x21,0xE4,0x00,0x00,0x79,0x13,0x37,0x04,0x9A,0xE0,0x9F,0x21,0xE4,0x00,0x00,0x2F, +0x4F,0x57,0x08,0xCF,0x77,0x00,0x06,0x8F,0x58,0x9F,0x79,0x9E,0xE1,0x0F,0x7A,0x01, +0x5E,0xF7,0x00,0xD6,0xF9,0xFF,0x68,0xE4,0x00,0x00,0x35,0x4F,0x57,0x08,0x4F,0x77, +0x08,0x8F,0x58,0x9F,0x7F,0x9E,0xE1,0x0F,0x7A,0x01,0x5E,0xF7,0x00,0xD6,0xF9,0xFF, +0x70,0x85,0x29,0x9C,0x30,0x5C,0xC6,0x00,0x0D,0x61,0x08,0x0D,0x81,0x04,0x0D,0xA1, +0x00,0x0D,0x41,0x0C,0xC3,0x00,0x10,0x01,0xFF,0x18,0x0B,0x1A,0x13,0xD8,0x04,0x40, +0xC6,0xF3,0x5E,0xE6,0x00,0x5F,0xA3,0x06,0x8C,0x97,0x8C,0xB7,0x5F,0x7D,0x04,0x0A, +0xF8,0x0B,0x11,0x58,0x0C,0x40,0xFB,0xBC,0x41,0x9B,0xBD,0xC1,0xA0,0x10,0x01,0xC3, +0x00,0x10,0x01,0x5C,0xA5,0x00,0x4D,0x77,0x08,0x5C,0xE7,0x04,0x5D,0x8C,0x04,0x5C, +0x84,0x00,0xFD,0xAD,0x04,0x1C,0xFF,0x18,0x09,0x0C,0x53,0x20,0x64,0xE4,0x00,0x01, +0x21,0x43,0x44,0x35,0x9F,0x41,0x4F,0x5A,0x08,0x8F,0x4D,0x09,0x1A,0x00,0x41,0x08, +0xBB,0x41,0x08,0x50,0x5F,0x88,0x04,0x43,0x5C,0xDD,0x5F,0x5A,0x06,0x4C,0x7A,0xFA, +0x47,0x43,0xD6,0x43,0x5A,0x1D,0xD6,0xFA,0x03,0x14,0xD5,0x7A,0x02,0x70,0x5D,0x08, +0x06,0xD5,0x1D,0x00,0x58,0x43,0x9C,0x3D,0xE4,0x00,0x00,0x0F,0x43,0x8C,0xE5,0x5F, +0x9C,0x06,0x4F,0x44,0x10,0x43,0x97,0xE5,0x8F,0x58,0xCF,0x9C,0x00,0x64,0x09,0x1A, +0x00,0x43,0x9C,0xB8,0xC7,0x9C,0xFF,0xFF,0x41,0x1C,0x43,0x41,0x08,0xC8,0x0D,0x1A, +0x01,0x4F,0x44,0x10,0x9F,0x42,0x8F,0x58,0x09,0x1A,0x00,0x43,0x9C,0x43,0x43,0x9C, +0xC8,0x0F,0x9A,0x01,0xE4,0x00,0x00,0x29,0x4F,0x44,0x10,0x8F,0x58,0x0C,0x1A,0x01, +0x4F,0x44,0x10,0x8F,0x58,0x0C,0x1A,0x03,0x9C,0x81,0x5C,0x84,0x00,0xD4,0x85,0xFB, +0xA0,0xC2,0xE0,0x10,0x01,0x0D,0xA1,0x02,0xF0,0x77,0x0B,0x1B,0x0D,0x81,0x06,0x0D, +0x61,0x0A,0x0D,0x41,0x0E,0x40,0x7E,0x1B,0x1C,0x21,0x10,0xE4,0x00,0xC1,0x25,0x5C, +0x63,0x00,0x5C,0x84,0x00,0xC2,0xE0,0x10,0x01,0x43,0x64,0x1D,0xF2,0xF7,0x0B,0x1E, +0x9F,0x61,0x40,0xA5,0xBB,0x5F,0x7B,0x00,0x5C,0xA5,0x00,0x20,0xE4,0x3E,0xC2,0xE0, +0x10,0x01,0xFE,0xF7,0x0C,0xD0,0xE4,0x00,0x00,0x19,0xC2,0xE0,0x10,0x01,0xFE,0xF7, +0x09,0x0C,0x43,0x23,0x2C,0x9B,0x00,0x4F,0x39,0x10,0x9F,0x22,0x8F,0x37,0xC2,0xEF, +0xFF,0xE1,0xCA,0xF7,0xFF,0xFF,0xE4,0x00,0x00,0x3D,0x0B,0x99,0xFE,0x0B,0x59,0x00, +0x9F,0x24,0x8F,0x5C,0x4F,0x98,0x10,0x5E,0xFA,0x15,0x8F,0x86,0x4A,0xF7,0xD0,0x0F, +0x5C,0x00,0x9F,0x01,0x5F,0x58,0x00,0xD7,0x7A,0xFF,0x1D,0x9B,0x00,0xE4,0x00,0x00, +0x29,0x0F,0x26,0x02,0x9F,0x01,0x43,0x39,0xBD,0x5F,0x18,0x00,0x0F,0x26,0x00,0x9C, +0xC4,0xD7,0x78,0xFF,0x85,0x85,0x29,0x1C,0x21,0x88,0x0D,0x41,0x70,0x0D,0x61,0x6C, +0x5D,0x44,0x00,0x0D,0x81,0x68,0x5C,0x85,0x00,0x0D,0xA1,0x64,0x88,0xA6,0x41,0xA4, +0x55,0x0D,0x21,0x74,0x89,0x83,0x88,0xC1,0x88,0x6A,0xE7,0xFF,0xFE,0xAA,0xC2,0xE0, +0x10,0x01,0x9D,0xA1,0xEB,0x57,0x01,0x78,0x9B,0x20,0x5D,0xAD,0x00,0x8B,0x19,0x9A, +0xE0,0x89,0x61,0xE4,0x00,0x00,0x5B,0x4F,0x79,0x10,0x43,0x99,0x54,0x8F,0x6B,0x0F, +0x7B,0x02,0x8E,0xFB,0x23,0x44,0x54,0x23,0x48,0x36,0xCF,0x9C,0x00,0x06,0x9F,0x9F, +0xE4,0x00,0x00,0x13,0x4F,0x9C,0x08,0x9F,0x81,0x43,0x7C,0xDB,0x9F,0x21,0x8F,0x1B, +0x5F,0x79,0x00,0xD5,0xBB,0xFE,0xA5,0x26,0xE1,0x34,0xC3,0x20,0x10,0x01,0xEB,0x39, +0x0B,0x25,0x43,0x18,0xCB,0x23,0x44,0x32,0x4F,0x37,0x0A,0x8F,0x19,0xE4,0x00,0x00, +0x35,0x23,0x48,0x46,0xCF,0x37,0x00,0x03,0xCE,0xF7,0x00,0x06,0x8F,0x19,0xE4,0x00, +0x00,0x13,0x8F,0x17,0x4E,0xF7,0x08,0x42,0xF8,0xB8,0xC2,0xE0,0xFF,0xE8,0xCB,0x00, +0x07,0xFF,0x98,0x61,0x4A,0xF7,0xC0,0x5E,0xFF,0xF9,0x4A,0xF7,0x00,0x0E,0xEC,0x01, +0xE4,0x00,0x00,0x0D,0x98,0x60,0x0D,0xA1,0x66,0x0D,0x81,0x6A,0x0D,0x61,0x6E,0x0D, +0x41,0x72,0x0D,0x21,0x76,0x1C,0x21,0x78,0x85,0x29,0xFC,0x21,0xFF,0x78,0xED,0x41, +0x00,0x80,0x0D,0x81,0x78,0x0D,0xA1,0x74,0x0D,0xC1,0x70,0x0D,0xE1,0x6C,0x0E,0x01, +0x68,0x0E,0xC1,0x64,0xED,0x21,0x00,0x84,0x0D,0x61,0x7C,0xC1,0x40,0x10,0x01,0xFD, +0x4A,0x0B,0x1A,0x11,0x6A,0x04,0x4E,0xEB,0x08,0x9E,0xE8,0xC6,0xF7,0x03,0xF8,0xFE, +0xC1,0x00,0x88,0x5D,0xC4,0x00,0x5D,0xA5,0x00,0x8A,0x03,0x5C,0xA6,0x00,0x89,0xE1, +0x41,0x65,0x5B,0x40,0x21,0xBD,0x88,0x6E,0x88,0x8D,0xFC,0xD6,0xFF,0x78,0xE7,0xFF, +0xFC,0xA2,0xC3,0x40,0x10,0x01,0x89,0x81,0x5D,0x6B,0x00,0x13,0x2A,0x04,0x9A,0xE0, +0xFF,0x5A,0x04,0x1C,0xE4,0x00,0x00,0x29,0x4F,0x17,0x08,0x9E,0xE1,0x43,0x6C,0xC4, +0x8F,0x1A,0x0B,0x18,0x03,0x0F,0x1B,0x01,0x5F,0x17,0x00,0xD7,0x38,0xFF,0x6D,0x43, +0x4B,0x74,0x8D,0xAB,0x5F,0x5A,0x00,0x5D,0xAD,0x00,0x9A,0xE0,0x1F,0x2D,0x01,0x43, +0x39,0xD5,0x5F,0x39,0x00,0xE4,0x00,0x00,0x33,0x4F,0x77,0x10,0xFF,0x96,0xFF,0x78, +0x8F,0x7C,0x0F,0x7B,0x02,0x27,0x60,0x4A,0xD5,0xB8,0x03,0x19,0x9E,0xE1,0x5F,0x17, +0x00,0xD7,0x38,0xFF,0x45,0x8B,0x1A,0x1F,0x36,0xD8,0x1F,0x76,0xD8,0x4E,0xF8,0x10, +0x8E,0xF9,0x0F,0x37,0xA2,0x1E,0xF8,0x01,0x43,0x39,0xCB,0x4E,0xF7,0x10,0x8E,0xFB, +0x0E,0xF7,0xA2,0x42,0xF7,0xBB,0x5F,0x37,0x15,0x4B,0x77,0xC8,0x27,0x60,0xBC,0x8F, +0x1A,0x0B,0x6A,0x0B,0x41,0x78,0x5D,0x13,0x4A,0x0C,0x4D,0x6B,0x08,0x98,0x61,0x8D, +0x8B,0x0B,0x0C,0x00,0x43,0x18,0xDB,0x43,0x77,0xDB,0x43,0x18,0xD0,0x8E,0xF9,0x42, +0xFB,0xB8,0x8E,0xF8,0x0E,0xF0,0x01,0xE4,0x00,0x00,0x0D,0x98,0x60,0x88,0x2F,0x0E, +0xC1,0x66,0x0E,0x01,0x6A,0x0D,0xE1,0x6E,0x0D,0xC1,0x72,0x0D,0xA1,0x76,0x0D,0x81, +0x7A,0x0D,0x61,0x7E,0xED,0x41,0x00,0x82,0xED,0x21,0x00,0x86,0xFC,0x21,0x00,0x88, +0x85,0x29,0x1C,0x21,0xB8,0x0D,0x41,0x40,0xC1,0x40,0x10,0x01,0x0D,0x61,0x3C,0x0D, +0x81,0x38,0x0D,0xC1,0x30,0x0E,0x41,0x20,0x0E,0x61,0x1C,0x0E,0x81,0x18,0x0E,0xA1, +0x14,0x0E,0xC1,0x10,0x0D,0x21,0x44,0x0D,0xA1,0x34,0x0D,0xE1,0x2C,0x0E,0x01,0x28, +0x0E,0x21,0x24,0x5E,0x63,0x00,0x5E,0x44,0x00,0xC1,0xC0,0x10,0x01,0xF0,0x8A,0x0B, +0x1A,0xFD,0xCE,0x0C,0x5C,0x98,0xA0,0x88,0x6E,0x99,0x80,0x8A,0xCA,0xE4,0x00,0xBE, +0x36,0xC1,0x40,0x10,0x01,0x89,0x6C,0xC2,0xA0,0x10,0x01,0x9A,0x81,0xFD,0x4A,0x0B, +0x90,0xE4,0x00,0x01,0x19,0xCC,0x6B,0x00,0x30,0xEA,0xF5,0x08,0x3F,0x41,0xA3,0x54, +0x56,0xF7,0x02,0x12,0x2D,0x04,0x12,0x0D,0x05,0x11,0xED,0x07,0x22,0xE1,0x0C,0x1C, +0x61,0x04,0x88,0x91,0x88,0xB0,0x88,0xCF,0x98,0xE0,0xE7,0xFF,0xFA,0xDA,0x20,0x61, +0x14,0x1C,0x61,0x06,0x88,0x91,0x88,0xB0,0x88,0xCF,0x98,0xE0,0xE7,0xFF,0xFC,0x5C, +0x20,0x60,0xCC,0x0B,0x01,0x04,0xCF,0x18,0x00,0x07,0x0A,0xE1,0x06,0xCE,0xF7,0x00, +0x03,0x8E,0xF8,0x9B,0x0A,0x42,0xF7,0xC0,0x0E,0xED,0x17,0xE4,0x00,0x00,0x43,0x8C, +0x6A,0x88,0x91,0x1C,0x63,0x16,0x88,0xB0,0x88,0xCF,0x98,0xE0,0xE7,0xFF,0xFA,0x56, +0x20,0x60,0x32,0x4E,0xF4,0x5C,0x45,0x8C,0xBD,0x5D,0x8C,0x00,0x88,0x6E,0xF0,0x96, +0x0B,0x1A,0x98,0xA1,0x9D,0x61,0xE4,0x00,0xBD,0x04,0x5D,0x6B,0x00,0x12,0xEA,0x00, +0xD6,0xEB,0xFB,0xAD,0x88,0x6C,0xE7,0xFF,0xF4,0x7A,0x12,0xEA,0x00,0x22,0xE0,0x6C, +0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x25,0x56,0xF7,0x40,0x22,0xE0,0x34,0xC2,0xE0, +0x10,0x01,0xEE,0xF7,0x03,0xE6,0x86,0xE8,0xC2,0xE0,0x10,0x01,0x88,0x6E,0xF0,0x97, +0x0B,0x1A,0x98,0xA1,0xE4,0x00,0xBC,0x88,0xC2,0xE0,0x10,0x01,0x99,0x80,0xEA,0xF7, +0x08,0x25,0x89,0x6C,0x56,0xF7,0x80,0x99,0xA1,0x22,0xE0,0xFC,0xC2,0xE0,0x10,0x01, +0xEE,0xF7,0x03,0xFA,0x86,0xE8,0xE4,0x00,0x00,0x7F,0xCE,0xEB,0x00,0x30,0x40,0x6A, +0xBC,0x8A,0xE3,0x88,0x83,0x10,0xB7,0x04,0x1C,0x63,0x18,0x9C,0x8C,0x10,0xD7,0x05, +0x10,0xF7,0x07,0xE7,0xFF,0xEF,0xDC,0x20,0x60,0x32,0x4E,0xED,0x5C,0x45,0x8C,0xBD, +0x5D,0x8C,0x00,0x9D,0x61,0x5D,0x6B,0x00,0x12,0xEA,0x00,0xD6,0xEB,0xFE,0x7D,0x88, +0x6C,0xE7,0xFF,0xF3,0x64,0x22,0x61,0x5C,0x22,0x40,0xFE,0xE4,0x00,0x00,0xA3,0xCD, +0x6C,0x00,0x30,0x8D,0x6A,0x0A,0xEB,0x16,0x0E,0xE1,0x08,0x0A,0xEB,0x18,0x1C,0x61, +0x08,0x0E,0xE1,0x0C,0x1C,0x81,0x0C,0xEE,0xED,0x03,0xD2,0x0C,0xAB,0x0E,0x88,0xCE, +0x86,0xE8,0x0E,0xE1,0x0A,0x9D,0x81,0x0E,0xEB,0x17,0x5D,0x8C,0x00,0x0E,0xE1,0x0E, +0x0E,0xEB,0x19,0xE4,0x00,0x00,0x25,0xC1,0xC0,0x10,0x01,0x99,0x80,0xC1,0xA0,0x10, +0x01,0xFD,0xCE,0x01,0x64,0x12,0xEA,0x00,0xD6,0xEC,0xFD,0xBD,0xC2,0xE0,0x10,0x01, +0x13,0x6A,0x00,0xEB,0x97,0x08,0x3F,0x9B,0x20,0xC2,0xE0,0x10,0x01,0x57,0x9C,0x01, +0xFE,0xF7,0x0B,0xA8,0xCB,0xA0,0x07,0xFF,0xE4,0x00,0x00,0x89,0x0B,0x57,0x01,0x13, +0xD7,0xEF,0x5F,0x1A,0x06,0x47,0x18,0xC7,0x4F,0x18,0xFA,0x47,0x1A,0xC4,0x5F,0x58, +0x06,0xC3,0x40,0xFF,0xE8,0x20,0x00,0x1D,0xFF,0x00,0x07,0xFF,0x0F,0x17,0x01,0x5F, +0x58,0x06,0x23,0x80,0x48,0xCF,0x1A,0x03,0xFF,0x4F,0x5E,0x50,0x43,0x18,0xE8,0x8F, +0x1A,0x0F,0x17,0x01,0x9F,0x21,0x1E,0xF7,0x30,0x5F,0x39,0x00,0xD7,0x3B,0xFE,0x06, +0x0E,0xC1,0x12,0x0E,0xA1,0x16,0x0E,0x81,0x1A,0x0E,0x61,0x1E,0x0E,0x41,0x22,0x0E, +0x21,0x26,0x0E,0x01,0x2A,0x0D,0xE1,0x2E,0x0D,0xC1,0x32,0x0D,0xA1,0x36,0x0D,0x81, +0x3A,0x0D,0x61,0x3E,0x0D,0x41,0x42,0x0D,0x21,0x46,0x1C,0x21,0x48,0x85,0x29,0x1C, +0x21,0xC8,0xC2,0xE0,0x10,0x01,0x0D,0x81,0x28,0x0D,0xA1,0x24,0x0E,0x61,0x0C,0x0E, +0xC1,0x00,0x0D,0x21,0x34,0x0D,0x41,0x30,0x0D,0x61,0x2C,0x0D,0xC1,0x20,0x0D,0xE1, +0x1C,0x0E,0x01,0x18,0x0E,0x21,0x14,0x0E,0x41,0x10,0x0E,0x81,0x08,0x0E,0xA1,0x04, +0xC1,0x80,0x10,0x01,0xF3,0x57,0x08,0x72,0xFD,0x8C,0x0B,0x90,0xC2,0xE0,0x10,0x01, +0x1E,0xC1,0x38,0x89,0xA3,0x8A,0x61,0x18,0x0C,0x00,0xFE,0xF7,0x0B,0x98,0x9B,0x00, +0x9B,0x3F,0xE4,0x00,0x00,0x2B,0x0C,0x17,0x00,0x1B,0x37,0xFE,0x1B,0x37,0xFF,0x9F, +0x01,0x1E,0xF7,0x30,0x5F,0x18,0x00,0xD7,0x1A,0xFF,0x7E,0xC1,0xE0,0x10,0x01,0xFD, +0xEF,0x0B,0x1A,0x12,0xEF,0x04,0x10,0x6F,0x01,0x40,0x63,0xBB,0xE4,0x00,0xB6,0x22, +0x13,0x2F,0x04,0x4E,0xF9,0x10,0x9E,0xEA,0xC6,0xF7,0x07,0xF8,0xC3,0x60,0x10,0x01, +0x40,0x21,0xBD,0x0A,0x0D,0x18,0x89,0x61,0x9B,0x00,0xCA,0xE0,0x20,0x00,0xFF,0x7B, +0x09,0xBC,0xE4,0x00,0x00,0x3B,0x4F,0x58,0x10,0x9F,0x01,0x43,0x9A,0xDC,0x8F,0x4B, +0x0E,0x3C,0x02,0x5E,0x37,0x15,0x0E,0x3A,0x00,0x4A,0xF1,0xB8,0x5E,0xF7,0x06,0x5F, +0x58,0x00,0xD7,0x3A,0xFF,0x25,0x46,0x37,0xBF,0x99,0x40,0x4E,0x31,0xFA,0x89,0xCA, +0x46,0x31,0xBC,0xC2,0x80,0x10,0x01,0x9A,0x42,0x8A,0xAC,0xE4,0x00,0x04,0x4B,0x0B, +0x0D,0x18,0x21,0x41,0x32,0x0E,0xEB,0x02,0xD7,0x17,0x0E,0xEC,0x0F,0x0B,0x06,0xD6, +0xF8,0x00,0x7C,0xD6,0xF8,0x0E,0x96,0x0F,0x0B,0x0A,0xD6,0xF8,0x0E,0x58,0x98,0x60, +0x88,0x8B,0x88,0xB1,0x88,0xD0,0x08,0xED,0x1C,0x09,0x0D,0x1E,0xE7,0xFF,0xE5,0xE6, +0xD0,0x60,0x0D,0xAA,0x12,0xEC,0x00,0x99,0x41,0x8E,0xEE,0xCE,0xF7,0x00,0x30,0x8E, +0xEC,0x18,0x17,0x04,0x18,0x17,0x06,0x1A,0x57,0x05,0xE4,0x00,0x03,0x4F,0x21,0x45, +0x56,0x0E,0xEB,0x06,0xD7,0x17,0x0C,0x8C,0x0F,0x0B,0x02,0xD7,0x17,0x0C,0x54,0x0F, +0x0B,0x0A,0xD6,0xF8,0x00,0x7C,0xD6,0xF8,0x0B,0xFE,0x0F,0x0B,0x0E,0xD6,0xF8,0x0B, +0xC0,0x98,0x61,0x88,0x8B,0x88,0xB1,0x88,0xD0,0x08,0xED,0x1C,0x09,0x0D,0x1E,0xE7, +0xFF,0xE5,0x40,0xD0,0x60,0x0B,0x12,0x12,0xEC,0x00,0x9B,0x01,0x8E,0xEE,0x99,0x42, +0xCE,0xF7,0x00,0x30,0x8E,0xEC,0x18,0x17,0x04,0x1B,0x17,0x06,0x1A,0x57,0x05,0xE4, +0x00,0x02,0xA5,0x25,0x45,0xC5,0x1F,0x37,0xFE,0xD7,0x2A,0x03,0x58,0x4E,0xEA,0x10, +0x8E,0xEB,0x0E,0xF7,0x02,0xD7,0x17,0x09,0x84,0x1F,0x0A,0xFF,0x4F,0x18,0x10,0x8F, +0x0B,0x0F,0x18,0x02,0xD6,0xF8,0x01,0x34,0xD6,0xF8,0x08,0xEE,0x1F,0x2A,0xFE,0x4F, +0x39,0x10,0x8F,0x2B,0x0F,0x39,0x02,0xD6,0xF9,0x08,0x70,0x1F,0x4A,0x01,0x4F,0x5A, +0x10,0x8F,0x4B,0x0F,0x5A,0x02,0xD7,0x59,0x07,0xF8,0x1F,0x2A,0x01,0x4F,0x39,0x10, +0x8F,0x2B,0x0F,0x39,0x02,0xD6,0xF9,0x03,0x2C,0xD6,0xF9,0x07,0x66,0x1F,0x2A,0x02, +0x4F,0x39,0x10,0x8F,0x2B,0x0F,0x39,0x02,0xD6,0xF9,0x06,0xE8,0xD7,0x19,0x06,0xC8, +0xE4,0x00,0x00,0x95,0x4F,0x0A,0x10,0x1F,0x57,0xFE,0x0B,0x2D,0x18,0x8F,0x0B,0xD5, +0x5A,0x03,0x6E,0x0F,0x18,0x02,0xD7,0x38,0x05,0xFC,0x1F,0x37,0xFF,0x4F,0x39,0x10, +0x8F,0x2B,0x0F,0x39,0x02,0xD7,0x38,0x05,0x84,0x1F,0x37,0xFD,0x4F,0x39,0x10,0x8F, +0x2B,0x0F,0x39,0x02,0xD7,0x19,0x00,0xB4,0xD7,0x19,0x04,0xEE,0x9E,0xFC,0x4E,0xF7, +0x10,0x8E,0xEB,0x0E,0xF7,0x02,0xD7,0x17,0x04,0x78,0x88,0x6A,0x88,0x8B,0x88,0xB1, +0x88,0xD0,0x08,0xED,0x1C,0x09,0x0D,0x1E,0xE7,0xFF,0xE3,0x6E,0x20,0x61,0xE4,0x12, +0xEC,0x00,0x1F,0x0A,0xFF,0x8E,0xEE,0xCE,0xF7,0x00,0x30,0x8E,0xEC,0x19,0x57,0x06, +0x1B,0x17,0x04,0x9D,0x41,0x5D,0x4A,0x00,0xE4,0x00,0x00,0xAD,0x0E,0xF8,0x02,0xD7, +0x37,0x02,0xB4,0x1F,0x0A,0xFF,0x4F,0x18,0x10,0x8F,0x0B,0x0F,0x18,0x02,0xD6,0xF8, +0x00,0xBC,0xD6,0xF8,0x02,0x1E,0x1F,0x0A,0xFE,0x4F,0x18,0x10,0x8F,0x0B,0x0F,0x18, +0x02,0xD6,0xF8,0x01,0xA0,0x88,0x6A,0x88,0x8B,0x88,0xB1,0x88,0xD0,0x08,0xED,0x1C, +0x09,0x0D,0x1E,0xE7,0xFF,0xE2,0xB8,0x20,0x60,0x78,0x12,0xEC,0x00,0x1F,0x0A,0xFE, +0x8E,0xEE,0xCE,0xF7,0x00,0x30,0x8E,0xEC,0x1B,0x17,0x04,0x19,0x57,0x06,0x19,0x57, +0x05,0xE4,0x00,0x00,0x21,0x9D,0x41,0x5D,0x4A,0x00,0x12,0xEF,0x04,0xD6,0xEA,0xF0, +0x95,0x12,0xEF,0x04,0xD6,0xEA,0x01,0x61,0x12,0xEC,0x00,0x8E,0xEE,0xCE,0xF7,0x00, +0x30,0x43,0x17,0x64,0x13,0x18,0x05,0xD5,0x58,0x00,0x55,0x1D,0x58,0x01,0x5D,0x4A, +0x00,0x8E,0xF5,0x9B,0x01,0x9D,0xC1,0x18,0x17,0x07,0x0F,0x17,0x08,0x5D,0xCE,0x00, +0x12,0xEF,0x04,0xD6,0xEA,0x00,0x61,0xF2,0xF4,0x08,0x72,0xD6,0xEE,0xFD,0xFC,0x12, +0xEC,0x00,0x8D,0xD7,0x19,0xCC,0x00,0x88,0x33,0x0E,0xC1,0x02,0x0E,0xA1,0x06,0x0E, +0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D,0xE1, +0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32, +0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01, +0xF8,0x77,0x04,0x64,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x0B,0x25,0xEE,0xF8,0x04,0x5D, +0xC3,0x00,0x10,0x01,0xCF,0x37,0x00,0x05,0x4E,0xF7,0x10,0xEF,0x38,0x04,0x5B,0xC3, +0x00,0x10,0x01,0xEE,0xF8,0x04,0x59,0x85,0x29,0x5C,0x63,0x06,0x20,0x84,0x5A,0x0B, +0x05,0x00,0x0B,0x25,0x02,0x0B,0x45,0x04,0x0B,0x85,0x06,0x0B,0x65,0x08,0xE4,0x00, +0x00,0x27,0x0B,0x05,0x0A,0x0B,0x25,0x0C,0x0B,0x45,0x0E,0x0B,0x85,0x10,0x0B,0x65, +0x12,0xC2,0xE0,0x10,0x01,0x9B,0xA2,0xEA,0xF7,0x0B,0x25,0x43,0x9C,0xBB,0x43,0x9C, +0xE8,0x43,0x80,0xE5,0xFF,0x9C,0x03,0xFF,0xD4,0x7C,0x00,0xC8,0x43,0x9B,0xBB,0x43, +0xBC,0xE8,0xFF,0xBD,0x03,0xFF,0xD7,0xA3,0x01,0x08,0x5C,0x78,0x04,0xE4,0x00,0x00, +0xE3,0x24,0x7C,0x58,0x43,0x03,0xC3,0x40,0x7C,0x1D,0x43,0x43,0xD3,0x40,0x78,0xD4, +0x40,0x63,0xE0,0xE4,0x00,0x00,0xB1,0x9B,0x82,0x43,0x7B,0xBB,0x43,0x7B,0xE0,0xFF, +0x9B,0x03,0xFF,0xD7,0x83,0x01,0x7C,0xC0,0x60,0xFF,0xEC,0x20,0x00,0xCD,0x43,0x60, +0xDD,0xFE,0xFB,0xFC,0x01,0x8E,0xE3,0x43,0x37,0xCB,0xCA,0xE0,0x07,0xFF,0x40,0x77, +0x1D,0xFF,0x7B,0x04,0x00,0x43,0x03,0xC3,0x40,0x79,0xC4,0x40,0x63,0xD8,0xE4,0x00, +0x00,0x3B,0x24,0x7C,0x32,0x8C,0x77,0x40,0x63,0xD3,0xE4,0x00,0x00,0x1D,0xFF,0x17, +0x07,0xFF,0x40,0x78,0x1D,0x40,0x63,0xCB,0x40,0x63,0xB8,0x5C,0x63,0x04,0x85,0x29, +0x9C,0x38,0x0C,0x01,0x04,0xC3,0x00,0x10,0x01,0xC3,0x40,0x10,0x01,0xFF,0x18,0x0B, +0x1A,0xFF,0x9A,0x04,0x1C,0x0B,0x38,0x0B,0x0B,0xBC,0x00,0x13,0x18,0x0C,0x5F,0x79, +0x06,0x5E,0xE3,0x06,0x43,0x7D,0xDB,0x43,0x7B,0xC0,0xD6,0xFB,0x00,0x4C,0x9B,0x41, +0x0F,0x41,0x04,0x0F,0x41,0x06,0x98,0x7F,0x23,0x40,0x5E,0x0B,0x5C,0x02,0x43,0x5A, +0xCB,0x43,0x5A,0xC0,0xD7,0x57,0x00,0x58,0x9B,0x41,0x98,0x60,0x0F,0x41,0x04,0x0F, +0x41,0x06,0x23,0x41,0x1E,0xC3,0x40,0x10,0x01,0xC3,0x60,0x10,0x01,0xF3,0xBA,0x0B, +0x1E,0xFF,0x7B,0x04,0x20,0x9B,0x41,0xE4,0x00,0x00,0x57,0x0B,0xDB,0xFE,0x43,0xDE, +0xCB,0x43,0xDE,0xC0,0xD7,0xD7,0x00,0xD4,0x0B,0xDB,0x00,0x43,0xDE,0xCB,0x43,0xDE, +0xC0,0xD7,0xD7,0x00,0x68,0x9B,0x41,0x0F,0x41,0x04,0xE4,0x00,0x00,0x1F,0x9F,0x41, +0x9F,0x62,0x5C,0x7A,0x02,0xD7,0x5D,0xFE,0xB0,0x0F,0x41,0x06,0x23,0x40,0x9E,0xC3, +0x40,0x10,0x01,0xF3,0x5A,0x0B,0x1E,0x9F,0x41,0x4F,0x7A,0x08,0x8F,0x9B,0x0B,0x7C, +0x00,0x43,0x3B,0xCB,0x43,0x19,0xC0,0xD7,0x17,0x00,0x64,0x9A,0xE1,0x5C,0x7A,0x02, +0x0E,0xE1,0x04,0x9C,0x28,0x85,0x29,0xC3,0x20,0x10,0x01,0x5C,0x63,0x06,0x5C,0xC6, +0x02,0x5C,0xE7,0x00,0xFF,0x39,0x09,0x0C,0x24,0xC0,0x98,0xC2,0xE0,0x10,0x01,0xF3, +0x17,0x0B,0x1E,0xD4,0xD8,0x00,0xDC,0x43,0x18,0x3B,0x1E,0xE6,0xFF,0x8E,0xF8,0x4F, +0x17,0x10,0x8F,0x19,0x0B,0x78,0x02,0x0B,0x58,0x00,0xE4,0x00,0x00,0x11,0x9B,0x40, +0x8B,0x7A,0xC2,0xE0,0x10,0x01,0xF3,0x97,0x0B,0x1E,0xD7,0x86,0x01,0x08,0xD0,0xDF, +0x04,0x28,0x42,0xFC,0x3B,0x8E,0xE6,0x4F,0x17,0x10,0x4E,0xF7,0x10,0x8F,0x19,0x8F, +0x37,0x0B,0x18,0x02,0x0B,0xD9,0x00,0xE4,0x00,0x00,0x17,0x24,0xDD,0xA0,0x9B,0xC0, +0x8B,0x1E,0xD4,0xDC,0x03,0x0C,0x4E,0xE6,0x08,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x04, +0x1C,0x8E,0xE7,0x9C,0xC1,0x09,0x17,0x00,0x4C,0xC6,0x08,0xC2,0xE0,0x10,0x01,0xFE, +0xF7,0x0B,0x1A,0x8C,0xE6,0x0B,0x97,0x0B,0x13,0x37,0x0C,0x0A,0xE7,0x00,0x40,0xD7, +0xE3,0x42,0xF7,0x45,0x43,0xA8,0xE3,0x40,0xC6,0xC8,0x43,0xBD,0xC8,0x43,0x97,0xE3, +0x43,0xA3,0xED,0x43,0x3C,0xC8,0x40,0x66,0x1D,0x43,0x18,0xEB,0x43,0x7B,0x1B,0x42, +0xFE,0xEB,0x8F,0x1B,0x40,0x7A,0x1B,0x43,0x18,0xC8,0x8E,0xE3,0x42,0xF7,0xC8,0xE4, +0x00,0x00,0x11,0x9A,0xE0,0x8B,0x17,0x0F,0x04,0x01,0x0E,0xE5,0x01,0x85,0x29,0x1C, +0x21,0xD8,0x0D,0x41,0x20,0x0D,0x61,0x1C,0x0D,0x81,0x18,0x0D,0xA1,0x14,0x5D,0x84, +0x00,0x0D,0xC1,0x10,0x0D,0xE1,0x0C,0x0E,0x01,0x08,0x5D,0xA5,0x00,0x5D,0x63,0x04, +0x0C,0xC1,0x04,0x0D,0x21,0x24,0x89,0xE8,0x0D,0xC1,0x2A,0xC1,0x40,0x10,0x01,0x9A, +0x02,0xFD,0x4A,0x0B,0x1A,0x0C,0xE1,0x00,0x08,0x6A,0x0B,0x40,0x6C,0x1B,0x40,0x63, +0x80,0x40,0x6B,0x1D,0xE7,0xFF,0xFC,0x38,0x0C,0x81,0x06,0x88,0xC3,0x5E,0xE3,0x02, +0x0C,0xA1,0x02,0x26,0xFC,0x36,0x0C,0x04,0x01,0x0C,0x05,0x01,0xE4,0x00,0x00,0x2D, +0x0A,0xEA,0x0B,0x42,0xEC,0xBB,0x88,0xED,0x40,0x77,0x80,0x40,0x6B,0x1D,0xE7,0xFF, +0xFD,0x72,0x08,0x6A,0x0B,0x40,0x6C,0x1B,0x4C,0x63,0x0A,0x8C,0x6B,0xE7,0xFF,0xFB, +0xC6,0x12,0xEA,0x04,0x88,0xC3,0x5F,0x03,0x02,0xD7,0x17,0x00,0x70,0x0C,0x0F,0x01, +0x0C,0x0E,0x01,0xE4,0x00,0x00,0x69,0x08,0x6A,0x0B,0x41,0x8C,0x1B,0x88,0x8F,0x4C, +0x6C,0x0A,0x88,0xAE,0x8C,0x6B,0x88,0xED,0x0E,0x01,0x0A,0x0D,0xE1,0x0E,0x0D,0xC1, +0x12,0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26, +0x1C,0x21,0x28,0xE7,0xFF,0xFC,0xC9,0x0E,0x01,0x0A,0x0D,0xE1,0x0E,0x0D,0xC1,0x12, +0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26,0x1C, +0x21,0x28,0x85,0x29,0x1C,0x21,0x90,0x0D,0x41,0x68,0x0D,0x81,0x60,0x0D,0xA1,0x5C, +0x0D,0xE1,0x54,0x0E,0x01,0x50,0x0E,0x21,0x4C,0x0D,0x21,0x6C,0xC2,0x20,0x10,0x01, +0x0D,0x61,0x64,0x0D,0xC1,0x58,0x0E,0x41,0x48,0x0E,0x61,0x44,0x0E,0x81,0x40,0x0E, +0xA1,0x3C,0x0E,0xC1,0x38,0x89,0xA3,0x8A,0x04,0x89,0x85,0x5D,0xE6,0x00,0x99,0x40, +0xFE,0x31,0x0B,0x90,0xE4,0x00,0x00,0xA1,0xCF,0x0A,0x00,0x30,0x8F,0x11,0x1E,0xE1, +0x20,0x10,0xB8,0x07,0x0B,0x98,0x17,0x43,0x2D,0x2C,0x4D,0x05,0x08,0x13,0x59,0x00, +0x1F,0x61,0x38,0x8D,0x1A,0x9F,0x41,0x4D,0x08,0x08,0x1B,0x59,0x00,0x8F,0x68,0x08, +0x78,0x17,0x0F,0x9B,0xD9,0x1F,0x01,0x30,0x8F,0x08,0x88,0x8F,0x0F,0x01,0x00,0x1C, +0xC1,0x18,0x1C,0xE1,0x28,0x8C,0xC8,0x8C,0xE8,0x9D,0x41,0x8D,0x17,0x5D,0x4A,0x00, +0xE7,0xFF,0xFD,0x1E,0x12,0xF1,0x00,0xD6,0xEA,0xFD,0x8D,0xC2,0xE0,0x10,0x01,0x8B, +0x10,0xF2,0x57,0x04,0x64,0x9B,0x41,0x8A,0xED,0xE4,0x00,0x00,0x23,0x13,0x37,0x00, +0x27,0x24,0x19,0x0F,0x58,0x00,0x9E,0xE1,0x9F,0x04,0x43,0x37,0x6D,0x5F,0x39,0x00, +0xD6,0x59,0xFF,0x6D,0x99,0x60,0xC2,0x60,0x10,0x01,0x89,0x4B,0xC2,0x80,0x10,0x01, +0xE4,0x00,0x03,0x07,0x42,0xF0,0x5C,0x0E,0xF7,0x02,0x22,0xE0,0x48,0x1E,0xE1,0x10, +0x8E,0xEB,0x0B,0x57,0x00,0x0B,0x77,0x02,0xE4,0x00,0x01,0x5D,0x42,0xED,0x54,0x12, +0xF7,0x00,0x22,0xE1,0xE0,0x1E,0xE1,0x18,0x8E,0xEB,0x0B,0x17,0x00,0x1E,0xE1,0x28, +0x8E,0xEB,0x0A,0xF7,0x00,0x8E,0xF8,0x1F,0x01,0x30,0x8F,0x0B,0x0B,0x18,0x00,0x8E, +0xF8,0x1F,0x01,0x20,0x8F,0x0B,0x0B,0x18,0x00,0x8E,0xF8,0x9B,0x04,0x42,0xF7,0xC0, +0x0E,0xEC,0x00,0xE4,0x00,0x02,0x55,0xCE,0xEE,0x00,0x30,0x8E,0xF1,0x41,0x0E,0xCC, +0x08,0x77,0x17,0x4D,0x08,0x08,0x1E,0xE1,0x30,0x8E,0xE8,0x0E,0xE1,0x00,0x1E,0xE1, +0x20,0x0F,0x01,0x0C,0x0F,0x21,0x08,0x88,0x8F,0x88,0xB5,0x1C,0xC1,0x18,0x1C,0xE1, +0x28,0x8C,0xC8,0x8C,0xE8,0x8D,0x17,0xE7,0xFF,0xFB,0x90,0x9D,0xC1,0x0F,0x01,0x0E, +0x5D,0xCE,0x00,0x0F,0x21,0x0A,0xE4,0x00,0x00,0x23,0x9A,0xC1,0x99,0xC0,0x42,0xD6, +0x55,0x4F,0x2A,0x08,0x43,0x0D,0xB4,0x12,0xF8,0x00,0xD6,0xEE,0xFD,0x6D,0x4E,0xD6, +0x10,0x43,0x10,0xB4,0x0F,0x18,0x02,0xD3,0x00,0x05,0x0A,0x1F,0x01,0x38,0x8E,0xD8, +0x0B,0x56,0xD8,0x0B,0x76,0xDA,0x43,0x3A,0xDD,0x5F,0x39,0x06,0x4E,0xF9,0xFA,0xEB, +0x93,0x04,0x5B,0x47,0x37,0xCE,0x43,0x39,0xBD,0x52,0xE0,0x64,0x5F,0x39,0x06,0xD7, +0x3C,0x00,0xF4,0xEB,0x14,0x04,0x59,0x9A,0xE0,0xD7,0x19,0x00,0xA4,0x42,0xF9,0xC5, +0x43,0x1C,0xC5,0xCE,0xF7,0x00,0x64,0x42,0xF7,0xC0,0x5E,0xF7,0x00,0x5F,0x7A,0x15, +0x4B,0x81,0x01,0x4F,0x2A,0x08,0x4B,0x00,0x0A,0x8F,0x19,0x8F,0x3C,0x1F,0x81,0x38, +0x1F,0x41,0x38,0x53,0x60,0xC8,0x4F,0x39,0x08,0x43,0x7B,0xBD,0x8F,0x3C,0x0B,0x99, +0xE0,0x4F,0x18,0x08,0x8F,0x1A,0x0B,0xB8,0xE8,0x0B,0x58,0xF8,0x8F,0x5D,0x8F,0x5C, +0x0B,0x99,0xF0,0x8F,0x5C,0x43,0x5B,0xD3,0x0B,0x79,0xE8,0x0B,0x39,0xF8,0x8F,0x79, +0x0B,0x38,0xE0,0x8F,0x79,0x0B,0x38,0xF0,0x43,0x1B,0xCC,0x42,0xF7,0xC3,0xCB,0x00, +0x03,0x20,0x8E,0xFA,0xE7,0xFF,0xFD,0xF3,0x22,0xE0,0x88,0x1F,0x01,0x38,0x4E,0xEA, +0x10,0x8E,0xF8,0x0B,0x17,0xF0,0x0B,0x37,0xE0,0x8F,0x38,0x0B,0x17,0xF8,0x8F,0x38, +0x0B,0x17,0xE8,0x42,0xF9,0xC4,0xE7,0xFF,0xFD,0xAB,0x0C,0x0C,0x00,0x9D,0x41,0x9D, +0x84,0x9D,0x64,0x5E,0xAA,0x00,0xD6,0x55,0xF3,0xF5,0x0E,0xC1,0x3A,0x0E,0xA1,0x3E, +0x0E,0x81,0x42,0x0E,0x61,0x46,0x0E,0x41,0x4A,0x0E,0x21,0x4E,0x0E,0x01,0x52,0x0D, +0xE1,0x56,0x0D,0xC1,0x5A,0x0D,0xA1,0x5E,0x0D,0x81,0x62,0x0D,0x61,0x66,0x0D,0x41, +0x6A,0x0D,0x21,0x6E,0x1C,0x21,0x70,0x85,0x29,0x1C,0x21,0xE8,0x0D,0x41,0x10,0x0D, +0x61,0x0C,0x0D,0x81,0x08,0x0D,0xA1,0x04,0x0D,0x21,0x14,0x89,0xA3,0xC2,0xE0,0x10, +0x01,0x5C,0x64,0x06,0xEA,0xF7,0x08,0x3F,0x5D,0x85,0x00,0x5D,0x66,0x00,0x5D,0x47, +0x00,0x56,0xF7,0x04,0x22,0xE0,0x34,0x88,0x8C,0x88,0xAB,0x88,0xCA,0xE7,0xFF,0xE0, +0xEC,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x0B,0x1E,0x43,0x0A,0xC3,0x5F,0x18,0x00,0x9B, +0x20,0x42,0xF8,0x64,0x8D,0x78,0xC3,0x40,0x10,0x01,0x5D,0x6B,0x00,0x5E,0xF7,0x00, +0x8B,0x19,0xFF,0x5A,0x09,0x0C,0xE4,0x00,0x00,0x3B,0x4F,0x77,0x10,0x8F,0x7A,0x0B, +0x7B,0x02,0x8F,0x1B,0x4F,0x77,0x10,0x9E,0xE1,0x8F,0x7A,0x5E,0xF7,0x00,0x0B,0x7B, +0x00,0x8F,0x3B,0xD6,0xEB,0xFF,0x38,0x27,0x21,0x14,0x27,0x01,0x08,0xC2,0xE0,0x10, +0x01,0xFE,0xF7,0x03,0x30,0x4F,0x39,0x40,0x9D,0x44,0x4D,0x4A,0x10,0x8D,0x57,0x0A, +0xEA,0x06,0x43,0x19,0xC0,0x9B,0x4A,0xFF,0x18,0xFF,0x00,0x53,0x20,0x64,0x43,0x18, +0xBB,0x0A,0xEA,0x04,0x43,0x18,0xD0,0x4E,0xF7,0x40,0x42,0xF7,0xC8,0x8E,0xF8,0x5E, +0xE0,0x09,0x0E,0xED,0x00,0x48,0x61,0x01,0xE4,0x00,0x00,0x0D,0x98,0x60,0x0D,0xA1, +0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18, +0x85,0x29,0xCA,0xE0,0x01,0x00,0xFC,0x21,0xFF,0x80,0x5C,0xE7,0x00,0x0D,0x41,0x78, +0x0D,0x61,0x74,0x0D,0x81,0x70,0x0E,0x21,0x5C,0x0E,0x41,0x58,0x0E,0x61,0x54,0x0E, +0x81,0x50,0x0E,0xA1,0x4C,0x0E,0xC1,0x48,0x0D,0x21,0x7C,0x0D,0xA1,0x6C,0x0D,0xC1, +0x68,0x0D,0xE1,0x64,0x0E,0x01,0x60,0xCE,0x44,0x00,0x0A,0x42,0x52,0x1B,0x42,0x52, +0xB8,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x1A,0x11,0xD7,0x04,0x41,0x87,0x73,0x5F, +0x0C,0x00,0xCC,0x84,0x0A,0x00,0x8C,0xB8,0x8C,0xD8,0xC2,0xA0,0x10,0x01,0xC2,0x20, +0x10,0x01,0xC1,0x60,0x10,0x01,0xC3,0x00,0x10,0x01,0xFD,0x6B,0x09,0x0C,0x42,0x64, +0x18,0x5E,0x86,0x00,0x09,0xF7,0x0B,0x12,0x17,0x0C,0x5D,0x45,0x00,0xFE,0xB5,0x03, +0x30,0xFE,0x31,0x04,0x1C,0x8A,0xCB,0xFF,0x18,0x09,0xBC,0xE4,0x00,0x01,0x61,0x0F, +0x01,0x04,0x88,0x95,0x50,0xA0,0x3C,0x1C,0x61,0x08,0xE4,0x00,0x44,0xAC,0x41,0xAA, +0x65,0x1E,0xED,0x01,0x4E,0xF7,0x08,0x8E,0xF1,0x98,0x82,0x08,0x77,0x00,0x1C,0xA1, +0x08,0x40,0x63,0x7B,0x40,0x63,0x80,0xE7,0xFF,0xF1,0x44,0x0F,0x01,0x06,0x5C,0x63, +0x04,0xD5,0x4C,0x00,0x5E,0x1E,0xEE,0xFF,0xD5,0xB7,0x01,0x92,0xCB,0x20,0x03,0xE8, +0x43,0x43,0x9B,0x4E,0xEA,0x10,0x43,0x63,0x93,0x9E,0xE2,0x43,0x7B,0xC8,0x8E,0xEB, +0x0B,0x97,0x01,0x43,0x7C,0xDD,0x0F,0x77,0x01,0x43,0x3A,0xC8,0x4E,0xEA,0x10,0x8E, +0xEB,0x0B,0x57,0x01,0x43,0x3A,0xCD,0x0F,0x37,0x01,0x4E,0xEA,0x08,0x1F,0x37,0x01, +0x4F,0x59,0x08,0x8F,0x4B,0x0B,0x7A,0x00,0x27,0x7C,0x1A,0x0C,0x1A,0x01,0x4F,0x57, +0x08,0x8F,0x56,0x0B,0x7A,0x00,0x27,0x7C,0x1A,0x0C,0x1A,0x01,0x4E,0xF7,0x08,0x8E, +0xEB,0x4F,0x4A,0x10,0x0B,0x77,0x00,0x8F,0x58,0x4F,0x39,0x08,0x9D,0x41,0x8F,0x2B, +0x5D,0x4A,0x00,0x0A,0xF9,0x00,0x8E,0xFB,0x0E,0xFA,0x00,0xD5,0x54,0xFA,0xA0,0x0E, +0xC1,0x4A,0x0E,0xA1,0x4E,0x0E,0x81,0x52,0x0E,0x61,0x56,0x0E,0x41,0x5A,0x0E,0x21, +0x5E,0x0E,0x01,0x62,0x0D,0xE1,0x66,0x0D,0xC1,0x6A,0x0D,0xA1,0x6E,0x0D,0x81,0x72, +0x0D,0x61,0x76,0x0D,0x41,0x7A,0x0D,0x21,0x7E,0xFC,0x21,0x00,0x80,0x85,0x29,0x1C, +0x21,0xB8,0x98,0x60,0x0D,0x21,0x44,0x0D,0x41,0x40,0x0D,0x61,0x3C,0x0D,0x81,0x38, +0x0D,0xA1,0x34,0x0D,0xC1,0x30,0x0D,0xE1,0x2C,0x0E,0x01,0x28,0x0E,0x21,0x24,0x0E, +0x41,0x20,0x0E,0x61,0x1C,0x0E,0x81,0x18,0x0C,0x01,0x08,0x0C,0x01,0x0C,0x18,0x01, +0x02,0x18,0x01,0x03,0x0C,0x01,0x10,0x0C,0x01,0x14,0xE7,0xFF,0xD3,0x4C,0x1C,0x61, +0x02,0x1C,0x81,0x10,0x1C,0xA1,0x08,0x98,0xC4,0xE7,0xFF,0xF5,0xD6,0xC2,0xE0,0x10, +0x01,0xF3,0x97,0x04,0x64,0xC2,0xE0,0x10,0x01,0xEB,0xB7,0x08,0x1D,0xC2,0xE0,0x10, +0x01,0xEF,0x77,0x04,0x56,0xC2,0xE0,0x10,0x01,0x57,0xBD,0x20,0xEF,0xD7,0x04,0x62, +0xC3,0x20,0x10,0x01,0x4F,0xBD,0x29,0x1E,0xE1,0x08,0xFF,0x39,0x03,0x50,0x9B,0x40, +0xE4,0x00,0x00,0x63,0x0F,0x17,0x02,0x09,0x19,0xFC,0x0F,0x19,0x00,0x43,0x18,0x45, +0x5F,0x1F,0xF9,0x4B,0x18,0x00,0x0F,0x17,0x00,0x23,0xA0,0x3C,0x23,0x60,0x30,0x43, +0x18,0xF3,0x43,0x18,0xD8,0x0F,0x17,0x00,0x9F,0x41,0x9E,0xE4,0x5F,0x5A,0x00,0x9F, +0x28,0xD7,0x5C,0xFE,0x9E,0x98,0x61,0x99,0x60,0xC2,0x20,0x10,0x01,0xC2,0x80,0x10, +0x01,0xE7,0xFF,0xD2,0x3E,0x89,0x4B,0xFD,0xB1,0x0B,0x90,0x9A,0x41,0xC2,0x60,0x10, +0x01,0xFE,0x94,0x0C,0x5C,0xE4,0x00,0x00,0xF9,0xCE,0x0A,0x00,0x30,0x42,0xF0,0x6C, +0x1C,0x61,0x04,0x11,0xF7,0x04,0x11,0xD7,0x05,0x11,0x97,0x07,0x08,0x97,0x17,0x88, +0xAF,0x88,0xCE,0x88,0xEC,0xE7,0xFF,0xF9,0x88,0x20,0x60,0xF8,0x98,0x60,0xE7,0xFF, +0xD1,0xC4,0x1F,0x01,0x18,0x4E,0xEC,0x10,0x8E,0xF8,0x88,0xAF,0x0C,0x97,0xF2,0x88, +0xCE,0x88,0xEC,0x0C,0x61,0x06,0xE7,0xFF,0xFA,0xF8,0x98,0x61,0xE7,0xFF,0xD1,0x88, +0x40,0x6D,0x84,0x88,0xAF,0x88,0x83,0x88,0xCE,0x1C,0x63,0x18,0x9C,0x8C,0x88,0xEC, +0xE7,0xFF,0xD4,0x42,0x20,0x60,0x32,0x4E,0xF2,0x54,0x45,0x6B,0xBD,0x5D,0x6B,0x00, +0x88,0x74,0xF0,0x93,0x0B,0x1A,0x98,0xA1,0x9D,0x41,0xE4,0x00,0xA0,0x3C,0x5D,0x4A, +0x00,0xF2,0xF1,0x0B,0x90,0xD6,0xEA,0xFC,0x25,0x88,0x6B,0xE7,0xFF,0xD7,0xB0,0x0D, +0x21,0x46,0x0E,0x81,0x1A,0x0E,0x61,0x1E,0x0E,0x41,0x22,0x0E,0x21,0x26,0x0E,0x01, +0x2A,0x0D,0xE1,0x2E,0x0D,0xC1,0x32,0x0D,0xA1,0x36,0x0D,0x81,0x3A,0x0D,0x61,0x3E, +0x0D,0x41,0x42,0x1C,0x21,0x48,0x85,0x29,0xFC,0x21,0xFF,0x00,0x98,0xA0,0xED,0x41, +0x00,0xF8,0xED,0x61,0x00,0xF4,0xED,0xC1,0x00,0xE8,0xED,0xE1,0x00,0xE4,0xEE,0x01, +0x00,0xE0,0xEE,0x21,0x00,0xDC,0xEE,0x41,0x00,0xD8,0xEE,0x61,0x00,0xD4,0xED,0x21, +0x00,0xFC,0xED,0x81,0x00,0xF0,0xED,0xA1,0x00,0xEC,0xEE,0x81,0x00,0xD0,0xEE,0xA1, +0x00,0xCC,0xEE,0xC1,0x00,0xC8,0xC2,0x20,0x10,0x01,0xC2,0x60,0x10,0x01,0xFE,0x31, +0x0C,0x5C,0xFD,0x73,0x0B,0x1A,0x88,0x71,0x10,0x8B,0x00,0xE4,0x00,0x9F,0x1A,0xC2, +0xE0,0x10,0x01,0xEA,0xF7,0x08,0x25,0xC6,0xF7,0x02,0x00,0xC2,0x40,0x10,0x01,0x5E, +0xE0,0x01,0xC1,0xE0,0x10,0x01,0x4A,0xE1,0x13,0xC1,0x40,0x10,0x01,0xC1,0xC0,0x10, +0x01,0x0E,0xE1,0x0C,0x9A,0x00,0xFE,0x52,0x03,0x30,0xFD,0xEF,0x09,0x0C,0xFD,0x4A, +0x09,0xBC,0xFD,0xCE,0x0B,0x90,0x98,0x60,0x0C,0x01,0x58,0x0C,0x01,0x5C,0x18,0x01, +0x56,0x18,0x01,0x57,0x0C,0x01,0x60,0x0C,0x01,0x64,0xE7,0xFF,0xCF,0x6C,0x1C,0x61, +0x56,0x1C,0x81,0x60,0x1C,0xA1,0x58,0x98,0xC3,0xE7,0xFF,0xF1,0xF6,0xC2,0xE0,0x10, +0x01,0xEB,0x97,0x08,0x1D,0xC2,0xE0,0x10,0x01,0xC3,0x20,0x10,0x01,0xEF,0x77,0x04, +0x56,0xC2,0xE0,0x10,0x01,0xF3,0x59,0x04,0x64,0x57,0x9C,0x20,0xEF,0xB7,0x04,0x62, +0x4F,0x9C,0x29,0x1E,0xE1,0x58,0x9B,0x20,0xE4,0x00,0x00,0x5D,0x0F,0xD7,0x02,0x4F, +0x19,0x18,0x8F,0x12,0x0B,0x18,0x1C,0x43,0x1E,0xC5,0x5F,0x1F,0xF9,0x4B,0x18,0x00, +0x0F,0x17,0x00,0x23,0x80,0x3C,0x23,0x60,0x30,0x43,0x18,0xEB,0x43,0x18,0xD8,0x0F, +0x17,0x00,0x9F,0x21,0x9E,0xE4,0x5F,0x19,0x00,0xD7,0x58,0xFE,0x9D,0x13,0x0B,0x04, +0x09,0xAB,0x0B,0x12,0x8B,0x0C,0x9A,0xA0,0xE4,0x00,0x01,0xA1,0xFE,0xE1,0x00,0xC8, +0x8E,0xF5,0x12,0xF7,0x8E,0x22,0xE0,0x72,0xFF,0x61,0x00,0xC8,0x9A,0xE1,0x42,0xF7, +0xAD,0x4E,0xF7,0x10,0x8E,0xFB,0x0F,0x37,0x92,0x4E,0xF5,0x10,0x8E,0xFB,0x0F,0x37, +0x90,0x41,0x95,0xC3,0x1F,0xB5,0x01,0x5E,0xCC,0x00,0x43,0xBD,0xC3,0xE4,0x00,0x01, +0x25,0x0F,0x01,0x00,0x0F,0x41,0x04,0x0F,0xA1,0x08,0x88,0x92,0x50,0xA0,0x3C,0x1C, +0x61,0x10,0xE4,0x00,0x3D,0x1C,0x42,0xF6,0x65,0xC3,0x80,0x10,0x01,0x9E,0xE1,0xFF, +0x9C,0x04,0x1C,0x4E,0xF7,0x08,0x8E,0xFC,0x98,0x81,0x08,0x77,0x00,0x1C,0xA1,0x10, +0x40,0x63,0x6B,0x40,0x63,0xA0,0xE7,0xFF,0xE9,0xA6,0x53,0x60,0x64,0x4E,0xF6,0x10, +0x5C,0x63,0x04,0x4F,0x35,0x10,0xFD,0x21,0x00,0xC8,0x9E,0xE2,0x8F,0x29,0x8E,0xEF, +0x0F,0x39,0x92,0x43,0x23,0xCB,0x43,0x39,0xD8,0x0B,0x77,0x01,0x5F,0x39,0x04,0x43, +0x7B,0xCD,0x0F,0x77,0x01,0x0F,0xA1,0x0A,0x4F,0x76,0x10,0x0F,0x41,0x06,0x43,0x9B, +0x7C,0x9E,0xC1,0x0B,0xDC,0x01,0x8F,0x6A,0x43,0x3E,0xCD,0x5E,0xD6,0x00,0x5F,0x39, +0x06,0x0F,0x01,0x02,0x0F,0x3C,0x01,0x0A,0xF7,0x00,0x8F,0x37,0x0F,0x3B,0x00,0xD7, +0xB6,0xFB,0x94,0x9E,0xA1,0x5E,0xB5,0x00,0xD7,0x55,0xF9,0xA5,0x98,0x61,0xE7,0xFF, +0xCC,0xC4,0x13,0x6B,0x04,0x13,0x4B,0x01,0xC3,0x00,0x10,0x01,0x43,0x5A,0xDB,0x9A, +0xE0,0xFF,0x18,0x0C,0xD0,0xE4,0x00,0x00,0x4F,0x4F,0x37,0x10,0x43,0x99,0xC4,0x8F, +0x2F,0x0B,0x39,0x01,0x0F,0x3C,0x01,0x4F,0x37,0x10,0x9E,0xE1,0x9F,0x22,0x5E,0xF7, +0x00,0x43,0x99,0xC4,0x8F,0x2F,0x0B,0x39,0x01,0x0F,0x3C,0x01,0xD7,0x57,0xFE,0xEC, +0xC3,0x20,0x10,0x01,0x12,0x8E,0x00,0xFF,0x39,0x0B,0x96,0x9B,0xA0,0x8B,0x19,0x8B, +0xCA,0xE4,0x00,0x01,0x3D,0x1F,0x98,0x02,0x12,0xF8,0xFE,0x12,0xB8,0xFF,0x11,0x98, +0x01,0x13,0x58,0x00,0x0D,0x1C,0x02,0x21,0x04,0x5E,0x43,0x8C,0xDB,0x8F,0x9A,0x4F, +0x9C,0x10,0x8F,0x8A,0x0F,0x9C,0x02,0x41,0x8C,0xDB,0xE4,0x00,0x00,0xCD,0x4D,0xBA, +0x10,0x43,0x9A,0xDC,0x8D,0xAA,0x4F,0x9C,0x10,0x0D,0xAD,0x02,0x8F,0x8A,0x0F,0x9C, +0x02,0x8F,0x8D,0xE7,0xFF,0xFF,0xC9,0x21,0x04,0x5A,0x41,0xB7,0x64,0x4D,0xAD,0x10, +0x8D,0xAA,0x0D,0xAD,0x02,0xD5,0xBC,0x01,0x94,0xE4,0x00,0x00,0x65,0x4D,0xB7,0x10, +0x42,0xD7,0xDC,0x8D,0xBE,0x4E,0xD6,0x10,0x0D,0xAD,0x02,0x8E,0xDE,0x0E,0xD6,0x02, +0x8E,0xCD,0xD6,0xDC,0x00,0xC8,0x43,0x57,0x64,0x4F,0x5A,0x10,0x8F,0x5E,0x0F,0x9A, +0x02,0x8F,0x8D,0xE4,0x00,0x00,0x0D,0x8B,0x8D,0x8B,0x57,0x9E,0xE1,0x5E,0xF7,0x00, +0xD6,0xF5,0xFD,0xB8,0x1B,0x58,0x00,0x9F,0xA1,0x1F,0x18,0x30,0x5F,0xBD,0x00,0xD7, +0xB4,0xFB,0x36,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x0B,0x1E,0xC2,0xE0,0x10,0x01,0x1F, +0x98,0xFF,0xF3,0x57,0x04,0x50,0x1F,0xB8,0xFD,0xC2,0xE0,0x10,0x01,0x1E,0xB8,0xFC, +0x11,0x8E,0x00,0x5D,0x1C,0x00,0x1D,0xB8,0xFE,0xFE,0xF7,0x0B,0x95,0x9B,0x60,0x8A, +0x9C,0x5F,0xBD,0x00,0x5E,0xB5,0x00,0x9A,0xC2,0x1C,0x78,0xFD,0xE4,0x00,0x00,0xEB, +0x13,0x17,0x01,0xD7,0x1C,0x00,0x76,0x19,0x17,0x00,0x18,0x77,0xFF,0xE4,0x00,0x00, +0xB9,0x23,0x00,0x36,0x1A,0xD7,0x00,0x18,0x17,0xFF,0xE4,0x00,0x00,0x9F,0x23,0x04, +0x56,0x5F,0x40,0x29,0x9F,0x1F,0x4B,0xC2,0x1B,0x1B,0x17,0xFF,0x1B,0xD7,0x00,0xE4, +0x00,0x00,0x75,0xD7,0x0D,0x00,0x8E,0x5F,0x40,0x29,0x1A,0x97,0x00,0x4B,0xDD,0xA8, +0xE4,0x00,0x00,0x4D,0x1F,0xD8,0x01,0x5F,0xDE,0x00,0x23,0x44,0x22,0x9F,0x02,0x5F, +0xD8,0x00,0x1B,0xD7,0x00,0x13,0xD7,0x01,0x23,0x44,0x26,0x9F,0xDE,0xE4,0x00,0x00, +0x0D,0x9F,0xDF,0x5F,0xDE,0x00,0x1B,0xD7,0xFF,0x9F,0x61,0x1E,0xF7,0x30,0x5F,0x7B, +0x00,0xD7,0x6C,0xFC,0x7E,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x25,0x56,0xF7,0x08, +0xD2,0xE0,0x08,0x6A,0xC2,0xE0,0x10,0x01,0x9B,0x00,0xF3,0x57,0x0B,0x1E,0x9B,0xA0, +0xC2,0xE0,0x10,0x01,0x1E,0xDA,0xFE,0xEA,0x97,0x01,0x7E,0x8B,0x78,0x8B,0x9D,0x98, +0x60,0x9A,0xA1,0xE4,0x00,0x01,0xBF,0x12,0xF9,0x00,0xD2,0xE1,0x06,0x99,0xD6,0xD7, +0x06,0x78,0x1D,0x17,0xFF,0x1D,0xB7,0x01,0x1D,0x39,0x02,0x5D,0x08,0x00,0x5D,0xAD, +0x00,0x0F,0xC9,0x02,0x23,0xC4,0xDE,0x13,0x79,0x01,0x43,0x7A,0xDB,0x5F,0x7B,0x00, +0x8D,0xBB,0x8D,0x1B,0x8E,0xFB,0x4D,0xAD,0x10,0x4D,0x08,0x10,0x8D,0xAA,0x8D,0x0A, +0x0F,0xAD,0x02,0x0F,0x88,0x02,0x4E,0xF7,0x10,0x5F,0xBC,0x15,0x8E,0xEA,0x4B,0x9D, +0xE0,0x0F,0x77,0x02,0x5F,0x9C,0x06,0xE4,0x00,0x00,0xCD,0x23,0xC9,0xA2,0x13,0x79, +0x01,0x43,0xBB,0xD3,0x5F,0xBD,0x00,0x43,0x8D,0xEC,0x4F,0x9C,0x10,0x8F,0x8A,0x43, +0x75,0xDD,0x0F,0xDC,0x02,0x43,0x7A,0xDB,0x5F,0x7B,0x00,0x8D,0xBB,0x4D,0xAD,0x10, +0x8D,0xAA,0x0F,0x8D,0x02,0x8F,0xDC,0x43,0x88,0xEC,0x4F,0x9C,0x10,0x8F,0x8A,0x8D, +0x1B,0x0D,0xBC,0x02,0x8F,0xB7,0x4D,0x08,0x10,0x8E,0xFB,0x8D,0x0A,0x4F,0xBD,0x10, +0x0F,0x88,0x02,0x8F,0xAA,0x8F,0x8D,0x4E,0xF7,0x10,0x5F,0xDC,0x15,0x8E,0xEA,0x4B, +0x9E,0xE0,0x0F,0x7D,0x02,0x0E,0xF7,0x02,0x5F,0x9C,0x06,0x8F,0x77,0x8B,0xB4,0xE4, +0x00,0x00,0x0F,0x23,0xC0,0x68,0xC3,0x60,0x7C,0xEC,0x20,0x00,0x4D,0x42,0xFB,0xE5, +0xD7,0xB7,0x00,0x68,0x4E,0xF5,0xC4,0x44,0x63,0xBD,0x5C,0x63,0x00,0x9F,0x01,0x1F, +0x39,0x30,0x5E,0xF8,0x00,0xD5,0x97,0xF9,0x15,0xE7,0xFF,0xCD,0xF4,0x1E,0xC1,0x68, +0x10,0x8B,0x00,0x88,0x76,0x98,0xA0,0x99,0xA0,0xE4,0x00,0x96,0x3E,0x89,0x8D,0xC2, +0x80,0x10,0x01,0xE4,0x00,0x01,0x3F,0xCC,0x6C,0x00,0x30,0xEB,0x74,0x08,0x3F,0x42, +0xA3,0x74,0x57,0x7B,0x02,0x13,0x55,0x04,0x13,0x35,0x05,0x13,0x15,0x07,0x23,0x61, +0x54,0x88,0x9A,0x88,0xB9,0x88,0xD8,0x0F,0x01,0x00,0x0F,0x21,0x08,0x0F,0x41,0x04, +0x1C,0x61,0x52,0x98,0xE1,0xE7,0xFF,0xD2,0xE4,0x0F,0x01,0x02,0x0F,0x21,0x0A,0x0F, +0x41,0x06,0x20,0x61,0x14,0x1C,0x61,0x54,0x88,0x9A,0x88,0xB9,0x88,0xD8,0x98,0xE1, +0xE7,0xFF,0xD4,0x54,0x20,0x60,0xCC,0x0B,0x21,0x52,0x0B,0x01,0x54,0xCF,0x39,0x00, +0x07,0xCF,0x18,0x00,0x03,0x9A,0xEA,0x8F,0x19,0x43,0x18,0xB8,0x0F,0x15,0x17,0xE4, +0x00,0x00,0x47,0x8C,0x6E,0x88,0x9A,0x1C,0x63,0x16,0x88,0xB9,0x88,0xD8,0x98,0xE1, +0xE7,0xFF,0xD2,0x4E,0x20,0x60,0x3A,0x9A,0xE1,0x4E,0xF7,0x64,0x45,0xAD,0xBD,0x5D, +0xAD,0x00,0x88,0x76,0x10,0x8B,0x00,0x98,0xA1,0x9D,0x81,0xE4,0x00,0x94,0xFA,0x5D, +0x8C,0x00,0x12,0xEE,0x00,0xD6,0xEC,0xFB,0x15,0x88,0x6D,0xE7,0xFF,0xCC,0x70,0x9E, +0x01,0x0F,0x21,0x0E,0x5E,0x10,0x00,0xD7,0x30,0xD8,0x7D,0x88,0x71,0x10,0x8B,0x00, +0x98,0xA1,0xE4,0x00,0x94,0xAC,0xED,0x21,0x00,0xFE,0xEE,0xC1,0x00,0xCA,0xEE,0xA1, +0x00,0xCE,0xEE,0x81,0x00,0xD2,0xEE,0x61,0x00,0xD6,0xEE,0x41,0x00,0xDA,0xEE,0x21, +0x00,0xDE,0xEE,0x01,0x00,0xE2,0xED,0xE1,0x00,0xE6,0xED,0xC1,0x00,0xEA,0xED,0xA1, +0x00,0xEE,0xED,0x81,0x00,0xF2,0xED,0x61,0x00,0xF6,0xED,0x41,0x00,0xFA,0xFC,0x21, +0x01,0x00,0x85,0x29,0x20,0x60,0x2E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01,0x34,0x85, +0x29,0x20,0x60,0x4E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x00,0xFC,0xC2,0xE0,0x10,0x01, +0xEC,0xB7,0x01,0x30,0x85,0x29,0x20,0x60,0x5E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x04, +0x8C,0xC2,0xE0,0x10,0x01,0xEC,0xB7,0x04,0x90,0xE4,0x00,0x00,0x5D,0x20,0x64,0x5E, +0xC2,0xE0,0x10,0x01,0xEC,0x97,0x04,0xBC,0xC2,0xE0,0x10,0x01,0xEC,0xB7,0x04,0xB4, +0xE4,0x00,0x00,0x2F,0x20,0x68,0x4E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x04,0xAC,0xC2, +0xE0,0x10,0x01,0xEC,0xB7,0x04,0x88,0x85,0x29,0x20,0x68,0x2E,0xC2,0xE0,0x10,0x01, +0xEC,0x97,0x04,0xA8,0x85,0x29,0x5C,0x84,0x04,0x20,0x60,0x3E,0xC2,0xE0,0x10,0x01, +0xEC,0x97,0x01,0x3B,0xE4,0x00,0x00,0x3D,0x20,0x64,0x3E,0xC2,0xE0,0x10,0x01,0xEC, +0x97,0x01,0x1D,0xE4,0x00,0x00,0x1F,0x20,0x68,0x2E,0xC2,0xE0,0x10,0x01,0xEC,0x97, +0x01,0x41,0x85,0x29,0x5C,0x84,0x04,0x20,0x60,0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97, +0x01,0x01,0xE4,0x00,0x00,0x3D,0x20,0x64,0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01, +0x39,0xE4,0x00,0x00,0x1F,0x20,0x68,0x2E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01,0x19, +0x85,0x29,0x5C,0x84,0x04,0x20,0x68,0x2E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01,0x1B, +0x85,0x29,0x1C,0x21,0xC8,0x0D,0x21,0x34,0x0D,0x41,0x30,0x0D,0x61,0x2C,0x0D,0x81, +0x28,0x0D,0xA1,0x24,0x0D,0xC1,0x20,0x0D,0xE1,0x1C,0x0E,0x01,0x18,0x0E,0x21,0x14, +0x0E,0x41,0x10,0x0E,0x61,0x0C,0x0E,0x81,0x08,0x0E,0xA1,0x04,0x0E,0xC1,0x00,0x20, +0x65,0x70,0x20,0x60,0x4C,0xD0,0x62,0x04,0x42,0x99,0xC0,0x89,0xEE,0xD0,0x63,0x06, +0x66,0xE4,0x00,0x01,0x71,0xC2,0xE0,0x10,0x01,0xEE,0xD7,0x00,0xFE,0xC2,0xE0,0x10, +0x01,0xEE,0xB7,0x01,0x32,0xC2,0xE0,0x10,0x01,0xEE,0x97,0x04,0x8E,0xC2,0xE0,0x10, +0x01,0xEE,0x77,0x04,0x92,0xC2,0xE0,0x10,0x01,0xE9,0xF7,0x01,0x3B,0xC2,0xE0,0x10, +0x01,0x9A,0x00,0xE9,0xD7,0x01,0x01,0x99,0xA0,0xC2,0xE0,0x10,0x01,0x9A,0x21,0xED, +0x77,0x01,0x36,0x9A,0x45,0x89,0x90,0xE4,0x00,0x00,0xD9,0xC2,0xE0,0x10,0x01,0xEE, +0x97,0x04,0xBE,0xC2,0xE0,0x10,0x01,0xEE,0x77,0x04,0xB6,0xC2,0xE0,0x10,0x01,0x99, +0xA0,0xE9,0xF7,0x01,0x1D,0x9A,0x00,0xC2,0xE0,0x10,0x01,0x8A,0x2D,0xE9,0xD7,0x01, +0x39,0x9A,0x40,0x99,0x61,0x89,0x90,0x9A,0xA0,0xE4,0x00,0x00,0x71,0xC2,0xE0,0x10, +0x01,0xEE,0x97,0x04,0xAE,0xC2,0xE0,0x10,0x01,0xEE,0x17,0x04,0xAA,0xC2,0xE0,0x10, +0x01,0xE9,0xF7,0x01,0x41,0xC2,0xE0,0x10,0x01,0x99,0x81,0xE9,0xD7,0x01,0x19,0x9A, +0x21,0xC2,0xE0,0x10,0x01,0x9A,0x40,0xE9,0xB7,0x01,0x1B,0x99,0x61,0x9A,0x60,0x8A, +0xAC,0x9A,0xC1,0x99,0x41,0xE4,0x00,0x00,0x55,0xC2,0xE0,0x10,0x01,0xE9,0xF7,0x01, +0x3B,0xC2,0xE0,0x10,0x01,0xE9,0xD7,0x01,0x01,0x99,0xA0,0x9A,0x40,0x9A,0x00,0x9A, +0x80,0x9A,0xA0,0x8A,0x2D,0x89,0x72,0x8A,0x70,0x89,0x94,0x8A,0xD5,0x99,0x40,0x88, +0x6A,0xE4,0x00,0xDF,0xF6,0x88,0x6A,0xE4,0x00,0xE0,0x78,0x88,0x76,0xE4,0x00,0xF4, +0x26,0x88,0x75,0xE4,0x00,0xF4,0x80,0x88,0x74,0xE4,0x00,0xE1,0xD8,0x88,0x73,0xE4, +0x00,0xE2,0x24,0x88,0x72,0xE4,0x00,0xE1,0x26,0x88,0x71,0xE4,0x00,0xE1,0x52,0x88, +0x6A,0xE4,0x00,0xF5,0xA2,0x88,0x70,0xE4,0x00,0xF5,0xFC,0x98,0x60,0xE4,0x00,0xF6, +0x4A,0x98,0x60,0xE4,0x00,0xF6,0x98,0x98,0x60,0xE4,0x00,0xF6,0xE6,0x98,0x60,0xE4, +0x00,0xF7,0x34,0x88,0x6F,0xE4,0x00,0xE2,0x1E,0x88,0x6E,0xE4,0x00,0xE2,0x4C,0x88, +0x6D,0xE4,0x00,0xE2,0x80,0x88,0x6C,0xE4,0x00,0xE2,0x9A,0x88,0x6B,0x0E,0xC1,0x02, +0x0E,0xA1,0x06,0x0E,0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E, +0x01,0x1A,0x0D,0xE1,0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61, +0x2E,0x0D,0x41,0x32,0x0D,0x21,0x36,0x1C,0x21,0x38,0xE4,0x00,0xDF,0xE3,0xC2,0xE0, +0x10,0x01,0xF0,0x77,0x04,0xA4,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF8,0x77,0x04,0xA4, +0x85,0x29,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x04,0xA4,0x9F,0x01,0xFB,0x17,0x04,0xA4, +0x85,0x29,0xC2,0xE0,0x10,0x01,0xF0,0x77,0x04,0xB8,0x85,0x29,0xC2,0xE0,0x10,0x01, +0xF8,0x77,0x04,0xB8,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x04,0xB8,0x9F,0x01, +0xFB,0x17,0x04,0xB8,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x01,0x14,0x85,0x29, +0xC3,0x40,0x10,0x01,0xFF,0x5A,0x01,0x04,0x0C,0x1A,0x00,0x9A,0xE1,0xC3,0x20,0x10, +0x01,0xFF,0x39,0x01,0x20,0x0E,0xF9,0x00,0xC3,0x00,0x10,0x01,0xFF,0x18,0x04,0x94, +0x0C,0x18,0x00,0x0C,0x1A,0x04,0x0E,0xF9,0x04,0x0C,0x18,0x04,0x0C,0x1A,0x08,0x0E, +0xF9,0x08,0x0C,0x18,0x08,0x0C,0x1A,0x0C,0x0E,0xF9,0x0C,0x0C,0x18,0x0C,0xC3,0x00, +0x10,0x01,0xEE,0xF8,0x01,0x3C,0x85,0x29,0x9C,0x38,0x0D,0x41,0x04,0xC3,0x00,0x10, +0x01,0xC2,0xE0,0x10,0x01,0x5C,0xA5,0x00,0x5C,0xC6,0x00,0xF3,0x38,0x04,0xB9,0xFE, +0xF7,0x01,0x3C,0xD7,0x25,0x00,0x6A,0xF8,0xB8,0x04,0xB9,0x9B,0x01,0x0F,0x17,0x00, +0xC3,0x80,0x10,0x01,0xC3,0x00,0x10,0x01,0x0F,0x37,0x02,0xFF,0x9C,0x01,0x20,0xFF, +0x18,0x01,0x04,0x23,0x24,0x9A,0x0B,0xA3,0x00,0x4F,0x46,0x18,0x43,0x78,0xD4,0x0F, +0xBB,0x00,0x0B,0xA4,0x00,0x0F,0xBB,0x04,0x8F,0x5C,0x0F,0x3A,0x00,0x0F,0x3A,0x04, +0x40,0xA5,0x35,0x20,0xA4,0x1A,0x0C,0x17,0x00,0x4E,0xE6,0x18,0x8E,0xF8,0x0C,0xF7, +0x02,0x08,0xA3,0x00,0x0D,0x17,0x02,0x0F,0xB7,0x06,0x0F,0x37,0x06,0x42,0xE7,0x2D, +0x4C,0xF7,0xFA,0x46,0xE7,0xBE,0x0B,0x44,0x00,0x40,0xF7,0x3D,0x43,0x39,0xD5,0x4E, +0xF9,0xFA,0x47,0x37,0xCE,0x42,0xF9,0xBD,0x41,0x08,0x2D,0x43,0xBD,0xD5,0x4F,0xC8, +0xFA,0x4F,0x7D,0xFA,0x45,0x1E,0x46,0x47,0xBB,0xEE,0x43,0xC8,0xF5,0x43,0x7D,0xDD, +0x43,0xC7,0xF3,0x43,0x7B,0xBB,0x9B,0x21,0x8F,0x7E,0x9A,0xE3,0xE4,0x00,0x00,0x11, +0x8F,0x37,0x9E,0xE2,0xD7,0x3B,0xFF,0xE1,0xC3,0x20,0x10,0x01,0x4E,0xF7,0x09,0x53, +0x40,0x1E,0x9E,0xFF,0x5E,0xF7,0x06,0xEE,0xF9,0x04,0xC0,0xC3,0x20,0x10,0x01,0x42, +0xF7,0xD1,0xEF,0x39,0x01,0x16,0x42,0xF7,0xBB,0x43,0x39,0xBD,0xC2,0xE0,0x10,0x01, +0x5F,0x23,0x11,0x20,0x00,0x1B,0x53,0x20,0x19,0xEF,0x37,0x04,0xB0,0xC3,0xA0,0x10, +0x01,0xEC,0xB7,0x04,0xB2,0x4C,0xC6,0x08,0x9A,0xE0,0xFF,0xBD,0x04,0x94,0xCB,0x40, +0x10,0x00,0x43,0x26,0xBC,0x4F,0x39,0x10,0x43,0x7C,0xCC,0xC9,0x40,0xA0,0x00,0x0D, +0x1B,0x02,0x0F,0xDB,0x02,0x43,0x68,0x53,0xCF,0xDE,0x00,0x0A,0x8F,0xC5,0x43,0xDB, +0xF0,0x43,0x7D,0xCC,0x0F,0xDB,0x00,0x5F,0xD7,0x00,0x23,0xC0,0x92,0x43,0xD8,0xCC, +0x0D,0x1E,0x02,0x0F,0x7B,0x02,0x0F,0x3E,0x02,0x0B,0xC3,0x00,0x43,0x3E,0xCD,0x43, +0x3B,0xCB,0x43,0x39,0xD0,0x8F,0x28,0x0F,0x23,0x01,0xE4,0x00,0x00,0x43,0x43,0xD8, +0xCC,0x0D,0x1E,0x02,0x0F,0x7B,0x02,0x0F,0x3E,0x02,0x0B,0xC4,0x00,0x43,0x3E,0xCD, +0x43,0x3B,0xCB,0x43,0x39,0xD0,0x8F,0x28,0x0F,0x24,0x01,0x43,0x66,0xBC,0x4F,0x7B, +0x10,0x43,0xD8,0xDC,0x0F,0x3E,0x00,0x43,0x3C,0xDC,0x8F,0x7D,0x0F,0xD9,0x02,0x0D, +0x1B,0x02,0x0F,0x79,0x02,0x43,0x68,0xDB,0x43,0x7B,0xD0,0x43,0x7E,0xDD,0x0F,0x79, +0x00,0x9E,0xE1,0xD2,0xE2,0xFB,0x7E,0x0D,0x41,0x06,0x9C,0x28,0x85,0x29,0xC2,0xE0, +0x10,0x01,0xFE,0xF7,0x05,0x1A,0x13,0x17,0x20,0x43,0x37,0xC4,0x9F,0x01,0x18,0x79, +0x00,0x5F,0x18,0x00,0x1B,0x17,0x20,0xC3,0x20,0x10,0x01,0xC2,0xE0,0x10,0x01,0x5F, +0x04,0xDB,0xFF,0x39,0x05,0x4E,0xFE,0xF7,0x05,0xA0,0x20,0x00,0x91,0x4F,0x18,0x08, +0xC3,0x40,0x10,0x01,0x8F,0x38,0xEB,0x5A,0x05,0x49,0x8F,0x17,0x0F,0x59,0x01,0xC2, +0xE0,0x10,0x01,0xEA,0xF7,0x05,0xF3,0x0E,0xF8,0x01,0xE4,0x00,0x00,0x1D,0xFF,0x00, +0x7F,0xFF,0x0F,0x19,0x4F,0x0F,0x17,0x4F,0x85,0x29,0xC3,0x00,0x10,0x01,0x5C,0x84, +0x02,0x9A,0xE0,0xFF,0x18,0x05,0x1A,0xE4,0x00,0x00,0x51,0x43,0x38,0xBC,0x43,0x63, +0xBC,0x13,0x59,0x00,0x9E,0xE1,0x8F,0x44,0x5E,0xF7,0x00,0x1F,0x5A,0x40,0x4F,0x3A, +0xFA,0x4F,0x39,0xD1,0x8F,0x59,0x57,0x5A,0x3F,0x43,0x3A,0xCD,0x1B,0x3B,0x00,0x13, +0x38,0x20,0xD7,0x37,0xFE,0xCD,0x85,0x29,0xC3,0x18,0x00,0x21,0x5F,0x23,0x00,0xFF, +0x18,0xB6,0xFE,0x9A,0xE0,0x5C,0x77,0x00,0x0B,0x78,0x01,0x9B,0x5F,0x5C,0x62,0x01, +0x20,0x00,0x19,0x0B,0x58,0x03,0xD7,0x64,0x01,0x7D,0xD7,0x44,0x01,0x59,0x23,0x24, +0x36,0x40,0x60,0xBD,0x54,0x63,0x3F,0xE4,0x00,0x00,0x57,0x23,0x28,0x2A,0x1C,0x63, +0x20,0xE4,0x00,0x00,0x1B,0x23,0x2C,0x76,0x52,0xE0,0x20,0x40,0x77,0x1D,0x5C,0x63, +0x00,0xE4,0x00,0x00,0x23,0x9E,0xE1,0x9F,0x02,0x5E,0xE2,0x29,0x23,0xFE,0xE5,0x50, +0x60,0xFF,0x85,0x29,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x06,0x4A,0x0B,0x17,0x07,0x0A, +0xF7,0x01,0x40,0x63,0xC3,0x40,0x63,0xB8,0x9A,0xEA,0x40,0x63,0xB8,0x85,0x29,0xC2, +0xE0,0x10,0x01,0xFE,0xF7,0x01,0x44,0x0B,0x17,0x06,0x0A,0xF7,0x04,0xD7,0x17,0x00, +0x92,0xCC,0x63,0x07,0xD0,0x42,0xF8,0xBD,0x40,0x63,0xB8,0xE4,0x00,0x00,0x0D,0x98, +0x60,0x85,0x29,0x8B,0x23,0x20,0x80,0x96,0xC2,0xE0,0x10,0x01,0x98,0x60,0xFE,0xF7, +0x01,0x44,0x0B,0x17,0x02,0x0A,0xF7,0x00,0xD7,0x17,0x00,0xDA,0xCC,0x79,0x07,0xD0, +0x42,0xF8,0xBD,0x40,0x63,0xB8,0xE4,0x00,0x00,0x1B,0x20,0x84,0x1E,0xE7,0xFF,0xFF, +0x65,0x98,0x60,0x85,0x29,0x5C,0x84,0x00,0x5C,0xA5,0x00,0x4C,0x84,0x30,0x5C,0xC6, +0x00,0x8C,0x85,0x4C,0x84,0x08,0x8C,0x64,0xD0,0xC8,0x00,0x59,0x0C,0x03,0x01,0xE4, +0x00,0x00,0x3F,0x52,0xE0,0x64,0x20,0xC0,0x54,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xB6, +0xFA,0x9C,0xC1,0x4C,0xC6,0x0A,0x8C,0xD7,0x12,0xE6,0xFF,0x0E,0xE3,0x01,0x85,0x29, +0xFC,0x21,0xFE,0x88,0xEE,0x21,0x01,0x54,0xEE,0x41,0x01,0x50,0xED,0x21,0x01,0x74, +0xED,0x41,0x01,0x70,0xED,0x61,0x01,0x6C,0xED,0x81,0x01,0x68,0xED,0xA1,0x01,0x64, +0xED,0xC1,0x01,0x60,0xED,0xE1,0x01,0x5C,0xEE,0x01,0x01,0x58,0xEE,0x61,0x01,0x4C, +0xEE,0x81,0x01,0x48,0xEE,0xA1,0x01,0x44,0x5E,0x23,0x00,0x8A,0x44,0x5C,0xA5,0x00, +0x4F,0x11,0x08,0x9A,0xE1,0xD4,0xB8,0x00,0x94,0x43,0x18,0x28,0x9A,0xE0,0x23,0x00, +0x24,0x1E,0xF8,0x01,0x5E,0xF7,0x00,0x43,0x05,0xBB,0x5F,0x08,0x11,0x20,0x00,0x21, +0x9E,0xFF,0x5E,0xF7,0x00,0x42,0x17,0x2B,0x8B,0x41,0x5E,0x10,0x00,0x9B,0x00,0x41, +0xD0,0x8D,0x9D,0xC2,0x5D,0xCE,0x00,0xE4,0x00,0x00,0x4D,0x43,0x7A,0xCC,0x13,0xBC, +0x00,0x9F,0x21,0x1B,0xBB,0x00,0xE4,0x00,0x00,0x13,0x9B,0x20,0x43,0x86,0xC4,0x5F, +0x79,0x00,0xD6,0xFB,0xFF,0x4D,0x9F,0x01,0x8F,0x57,0x5F,0x18,0x00,0xD7,0x05,0xFF, +0x6E,0x99,0x60,0x52,0x80,0x40,0xE4,0x00,0x01,0xC9,0x21,0x60,0x56,0x13,0x12,0x00, +0x1E,0xE1,0x00,0x1F,0x18,0x40,0x8E,0xED,0x12,0xF7,0x00,0xE4,0x00,0x00,0x21,0x13, +0x15,0x00,0x42,0xF3,0x6C,0x1F,0x18,0x40,0x12,0xF7,0xFF,0x43,0x18,0xBD,0x4E,0xF8, +0xFA,0x4E,0xF7,0xD1,0x40,0xD8,0xBC,0x54,0xC6,0x3F,0x40,0xC6,0xBD,0x5C,0xC6,0x00, +0x5C,0xC4,0x13,0x20,0x00,0x25,0x40,0xD4,0x35,0x5C,0xC6,0x00,0x1C,0x61,0x40,0x21, +0x60,0x7A,0x98,0x80,0x88,0xAC,0xE7,0xFF,0xFD,0x9E,0x21,0x81,0x78,0x0B,0x0A,0x81, +0xEA,0xEA,0xFF,0x7F,0x8E,0xF8,0x0E,0xEA,0x81,0xE4,0x00,0x00,0x9F,0x98,0x81,0x88, +0xAC,0x21,0x64,0x56,0xE7,0xFF,0xFD,0x62,0x21,0x81,0x00,0x0B,0x0A,0xFF,0xEA,0xEA, +0xFF,0x7F,0xE4,0x00,0x00,0x45,0xE7,0xFF,0xFD,0x3E,0x21,0x80,0x52,0xEB,0x01,0x00, +0xC1,0x0A,0xE1,0x41,0x8E,0xF8,0xEE,0xE1,0x00,0xC1,0xE4,0x00,0x00,0x3D,0x0B,0x0A, +0xFF,0x0A,0xEA,0x81,0x5F,0x57,0x04,0x5F,0x38,0x04,0xD7,0x3A,0x00,0x31,0x8A,0xF8, +0x0B,0x0A,0x01,0x8E,0xF8,0x0E,0xEA,0x01,0x9D,0xA1,0x9D,0x42,0x5D,0x8D,0x00,0xD5, +0xCC,0xFA,0x5D,0x21,0x60,0x76,0x9D,0x61,0x5D,0x6B,0x00,0xE4,0x00,0x00,0x3F,0x0B, +0x0F,0x01,0x9E,0xE1,0x0F,0x0F,0x81,0x5E,0xF7,0x00,0x9D,0xE2,0xE4,0x00,0x00,0x0D, +0x9A,0xE0,0xD6,0xEE,0xFF,0x6E,0xE7,0xFF,0xFF,0xC1,0xD5,0x71,0x00,0xC2,0xFD,0xE1, +0x00,0xC0,0x1E,0x61,0x00,0x89,0x4F,0x99,0xA0,0x42,0xB2,0x5C,0x8E,0x6B,0xE7,0xFF, +0xFF,0x7D,0x21,0x64,0x26,0x9D,0xDF,0xE4,0x00,0x00,0x0F,0x1D,0xCE,0x3F,0xFE,0xE1, +0x01,0x40,0x4D,0xCE,0x08,0x8D,0xD7,0xE8,0x6E,0xFF,0x01,0x42,0x03,0x80,0xEE,0xA1, +0x01,0x46,0x5C,0x70,0x00,0xEE,0x81,0x01,0x4A,0xEE,0x61,0x01,0x4E,0xEE,0x41,0x01, +0x52,0xEE,0x21,0x01,0x56,0xEE,0x01,0x01,0x5A,0xED,0xE1,0x01,0x5E,0xED,0xC1,0x01, +0x62,0xED,0xA1,0x01,0x66,0xED,0x81,0x01,0x6A,0xED,0x61,0x01,0x6E,0xED,0x41,0x01, +0x72,0xED,0x21,0x01,0x76,0xFC,0x21,0x01,0x78,0x85,0x29,0x5C,0x84,0x06,0x5C,0xA5, +0x06,0x43,0x24,0x2C,0x9B,0x02,0x43,0x19,0xC0,0x53,0x20,0x1E,0x5E,0xE3,0x06,0xC7, +0x18,0xFF,0xFF,0x40,0x84,0x2D,0x98,0x60,0xCC,0x84,0x00,0x0A,0x40,0x84,0xC8,0xC4, +0x84,0xFF,0xFF,0x43,0x38,0x25,0xD6,0xF9,0x00,0x60,0x8C,0x98,0x5C,0x97,0x1D,0x48, +0x61,0x01,0x85,0x29,0x24,0x80,0x68,0x24,0x7C,0x34,0xCE,0xE3,0x03,0xE8,0x98,0x61, +0xE4,0x00,0x00,0x49,0xCE,0xE3,0xFC,0x18,0x98,0x64,0xE4,0x00,0x00,0x35,0x20,0x80, +0x74,0x24,0x7C,0x34,0xCE,0xE3,0xFC,0x18,0x98,0x62,0xE4,0x00,0x00,0x15,0xCE,0xE3, +0x03,0xE8,0x98,0x63,0x40,0x97,0x20,0xE7,0xFF,0xF9,0x23,0x9A,0xE0,0x20,0x60,0x3C, +0x5C,0x60,0x11,0x52,0xE0,0x30,0x53,0x00,0x10,0x4A,0xF8,0xB8,0x88,0x77,0x85,0x29, +0x0A,0xE3,0x00,0x26,0xFC,0x60,0xC3,0x00,0x10,0x01,0xEB,0x18,0x06,0x51,0x5F,0x38, +0x06,0x5E,0xF8,0x1D,0x4A,0xF9,0xB8,0xE4,0x00,0x00,0x0D,0x9A,0xE0,0x0E,0xE3,0x01, +0xC3,0x00,0x10,0x01,0x0A,0xE4,0x00,0xFF,0x18,0x06,0x4A,0x26,0xFC,0x4C,0x0B,0x38, +0x07,0x5F,0x59,0x06,0x5E,0xF9,0x1D,0x4A,0xFA,0xB8,0xE4,0x00,0x00,0x0D,0x9A,0xE0, +0x0E,0xE4,0x01,0x13,0x38,0x04,0x23,0x28,0x64,0x23,0x2C,0x8C,0x23,0x20,0xA6,0x0B, +0x23,0x00,0x0E,0xE3,0x01,0x0A,0xF8,0x07,0x42,0xF7,0xCD,0xE4,0x00,0x00,0x15,0x0B, +0x18,0x09,0x42,0xF8,0xBD,0x0E,0xE4,0x01,0xE4,0x00,0x00,0x1B,0x0B,0x03,0x00,0x0E, +0xE3,0x01,0x0F,0x04,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x06,0x6D,0xC2, +0xE0,0x10,0x01,0xEC,0x97,0x06,0x59,0x85,0x29,0x1C,0x21,0xD0,0x0D,0x41,0x28,0x0D, +0x61,0x24,0x0D,0x81,0x20,0x0D,0xA1,0x1C,0x0C,0x61,0x07,0x0C,0x81,0x05,0x0D,0x21, +0x2C,0x0D,0xC1,0x18,0x0D,0xE1,0x14,0x0E,0x01,0x10,0x0E,0x21,0x0C,0x5D,0xA5,0x00, +0x1C,0x61,0x06,0x1C,0x81,0x04,0xE7,0xFF,0xFE,0x94,0xC2,0xE0,0x10,0x01,0x09,0x81, +0x04,0xFF,0x17,0x06,0x4A,0xEA,0xF7,0x06,0x4B,0x0B,0x18,0x03,0x41,0x8C,0xC3,0x41, +0x8C,0xB8,0x5D,0x8C,0x06,0x0D,0x81,0x05,0xC1,0x40,0x10,0x01,0xC1,0x60,0x10,0x01, +0xFD,0x4A,0x05,0x3C,0xFD,0x6B,0x05,0x40,0xD1,0xA1,0x06,0x9E,0xC1,0xC0,0x10,0x01, +0xC1,0xA0,0x10,0x01,0x0E,0xEA,0x02,0xFD,0xCE,0x05,0x18,0xFD,0xAD,0x05,0x9E,0x22, +0xE4,0x68,0x22,0xE0,0x34,0x98,0x60,0xD2,0xE3,0x08,0x25,0xE4,0x00,0x00,0xD7,0x0A, +0xE1,0x07,0x0E,0xED,0x01,0xE4,0x00,0x00,0xAB,0xC2,0xE0,0x10,0x01,0x0A,0x21,0x06, +0xEE,0x37,0x05,0x15,0xC2,0xE0,0x10,0x01,0x09,0xED,0x00,0xED,0x97,0x06,0x47,0x41, +0xEF,0x8D,0x4E,0xEF,0xFA,0x0A,0x0E,0x00,0x45,0xF7,0x7E,0x42,0x10,0x65,0x41,0xEF, +0xBD,0x4E,0xF0,0xFA,0x46,0x17,0x86,0x42,0x10,0xBD,0xC2,0xE0,0x10,0x01,0xE8,0x77, +0x06,0x59,0xE7,0xFF,0xF7,0x04,0x42,0x10,0x83,0x41,0xEF,0x7B,0x40,0x63,0x1B,0x8D, +0xF0,0x9A,0xE3,0xD5,0xE3,0x05,0x18,0x0E,0x2D,0x01,0x0D,0x8E,0x01,0x0C,0x0B,0x01, +0x9A,0xE2,0xE4,0x00,0x01,0x29,0x0A,0xE1,0x06,0x09,0xAD,0x00,0x41,0xAD,0xBD,0x4E, +0xED,0xFA,0x45,0xB7,0x6E,0x41,0xAD,0xBD,0x0A,0xEE,0x00,0x41,0x97,0x65,0x4E,0xEC, +0xFA,0x45,0x97,0x66,0x41,0x8C,0xBD,0xC2,0xE0,0x10,0x01,0x41,0x8C,0x63,0xE8,0x77, +0x06,0x59,0x41,0xAD,0x6B,0xE7,0xFF,0xF6,0x5E,0x8D,0x8D,0x40,0x63,0x1B,0xD5,0x83, +0x01,0x88,0x9A,0xE4,0x0E,0xEA,0x00,0xE4,0x00,0x00,0x51,0x21,0xA1,0x26,0x0E,0xEA, +0x02,0x22,0xE8,0x60,0x26,0xE8,0x2B,0x22,0xE5,0x0A,0xE4,0x00,0x00,0x2B,0x22,0xEC, +0x90,0xD2,0xE4,0x01,0xC6,0xE4,0x00,0x00,0x51,0x9A,0xE1,0xE4,0x00,0x00,0x57,0xC2, +0xE0,0x10,0x01,0x0B,0x0B,0x01,0xEA,0xF7,0x06,0x6D,0xD7,0x17,0x00,0xF9,0xE4,0x00, +0x00,0x2D,0x9A,0xE4,0x98,0x61,0x0E,0xEA,0x00,0xE4,0x00,0x00,0x25,0x0C,0x0A,0x00, +0xE4,0x00,0x00,0x13,0x9A,0xE4,0x0E,0xEA,0x00,0x98,0x60,0x0A,0xEB,0x01,0x0E,0x21, +0x0E,0x9E,0xE1,0x0E,0x01,0x12,0x0E,0xEB,0x01,0x0D,0xE1,0x16,0x0D,0xC1,0x1A,0x0D, +0xA1,0x1E,0x0D,0x81,0x22,0x0D,0x61,0x26,0x0D,0x41,0x2A,0x0D,0x21,0x2E,0x1C,0x21, +0x30,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x05,0x45,0xC2,0xE0,0x10,0x01,0xEC, +0x17,0x06,0x5C,0x85,0x29,0x9B,0x01,0xC2,0xE0,0x10,0x01,0x1C,0x21,0xB0,0xFB,0x17, +0x05,0x42,0x0D,0x41,0x48,0x0D,0x61,0x44,0x0D,0x81,0x40,0x0E,0x01,0x30,0x0E,0x21, +0x2C,0x0E,0x41,0x28,0x0E,0x61,0x24,0x0E,0x81,0x20,0x0E,0xA1,0x1C,0x0E,0xC1,0x18, +0x0C,0x61,0x17,0x0C,0x81,0x15,0x0D,0x21,0x4C,0x0D,0xA1,0x3C,0x0D,0xC1,0x38,0x0D, +0xE1,0x34,0x1C,0x61,0x16,0x1C,0x81,0x14,0xE7,0xFF,0xFA,0xF0,0xC2,0xE0,0x10,0x01, +0x09,0x41,0x16,0xED,0x57,0x05,0x49,0xC2,0xE0,0x10,0x01,0xFF,0x17,0x06,0x4A,0xEA, +0xF7,0x06,0x4B,0x0B,0x18,0x03,0x09,0x61,0x14,0x41,0x6B,0xC3,0x41,0x6B,0xB8,0xC2, +0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0x5D,0x6B,0x06,0xED,0x77,0x05,0xF3,0xEA,0xF8, +0x05,0x45,0x9E,0xE1,0x5E,0xF7,0x04,0xEE,0xF8,0x05,0x45,0xC3,0x20,0x10,0x01,0xC2, +0x60,0x10,0x01,0xC2,0x40,0x10,0x01,0xC2,0x80,0x10,0x01,0xC2,0xA0,0x10,0x01,0xC3, +0x00,0x10,0x01,0xC2,0xC0,0x10,0x01,0xC3,0x40,0x10,0x01,0xFF,0x39,0x06,0x48,0xFE, +0x73,0x05,0x4A,0xFE,0x52,0x05,0x16,0xFE,0x34,0x05,0x4C,0xFE,0x15,0x06,0x44,0xFF, +0x18,0x05,0xF4,0xFE,0xD6,0x04,0xC4,0xFD,0x9A,0x01,0x44,0xD2,0xE1,0x04,0x3E,0xC2, +0xE0,0x10,0x01,0xF8,0x17,0x05,0x3A,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x05,0x46,0xC2, +0xE0,0x10,0x01,0xC3,0x60,0x10,0x01,0xEC,0x17,0x06,0x5C,0xC3,0x40,0x10,0x01,0x0D, +0x4C,0x01,0x0D,0x4C,0x03,0x0D,0x6C,0x05,0x0D,0x6C,0x07,0x0D,0x4C,0x09,0x0D,0x6C, +0x0B,0x0C,0x0C,0x10,0x0C,0x0C,0x14,0x0D,0x53,0x01,0x0D,0x72,0x01,0x0D,0x51,0x01, +0x0D,0x70,0x01,0x9A,0xE0,0xFF,0x7B,0x05,0x4E,0xFF,0x5A,0x05,0xA0,0x43,0x98,0xBC, +0x0C,0x1C,0x01,0x43,0x96,0xBC,0x0C,0x1C,0x01,0x43,0x9B,0xBC,0x0C,0x1C,0x01,0x43, +0x9A,0xBC,0x0C,0x1C,0x01,0x9E,0xE2,0x5E,0xEA,0x09,0x23,0xFF,0x8D,0x9A,0xE1,0x0D, +0x58,0x01,0x0D,0x76,0x01,0x0D,0x5B,0x01,0x0D,0x7A,0x01,0x1A,0xF9,0x00,0xE4,0x00, +0x03,0x49,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x05,0x3A,0x5E,0xE3,0xBB,0x20,0x04,0xF5, +0x09,0xF3,0x00,0x40,0x8A,0x7D,0x0F,0x01,0x04,0x0C,0x81,0x0C,0x0F,0x21,0x08,0x50, +0x60,0x23,0xE7,0xFF,0xF2,0x44,0x09,0xD2,0x00,0x0C,0x81,0x0E,0x41,0xAB,0x75,0x43, +0x64,0x23,0x42,0xED,0x6B,0x40,0x63,0x1B,0x8E,0xFB,0x0F,0x01,0x06,0x0F,0x21,0x0A, +0xD6,0xE3,0x0B,0x10,0x12,0xF9,0x00,0x5E,0xE4,0xDB,0x20,0x00,0x51,0x4F,0x77,0x08, +0x8F,0x1B,0x8E,0xDB,0x0D,0x58,0x01,0x0D,0x76,0x01,0xE4,0x00,0x00,0x1D,0xFF,0x60, +0x7F,0xFF,0x0F,0x78,0x4F,0x0F,0x76,0x4F,0x1E,0xD7,0x01,0x5E,0xD6,0x00,0x1A,0xD9, +0x00,0x0A,0xEC,0x00,0xD6,0xEA,0x00,0x38,0x0D,0x4C,0x01,0x0B,0x0C,0x02,0x8A,0xEC, +0xD5,0x58,0x00,0x38,0x0D,0x4C,0x03,0x0B,0x17,0x04,0xD7,0x0B,0x00,0x38,0x0D,0x77, +0x05,0x0A,0xEC,0x06,0xD5,0x77,0x00,0x38,0x0D,0x6C,0x07,0x4E,0xE4,0xFA,0x47,0x17, +0x26,0x42,0xF8,0xBD,0x0F,0x0C,0x12,0x8E,0xF8,0x0E,0xEC,0x10,0x4E,0xED,0xFA,0x47, +0x17,0x6E,0x42,0xF8,0xBD,0x0F,0x0C,0x16,0x8E,0xF8,0x88,0x6D,0x0E,0xEC,0x14,0xE7, +0xFF,0xF6,0xCA,0xC3,0x00,0x10,0x01,0xF8,0x78,0x05,0x3B,0xC1,0xA0,0x10,0x01,0x89, +0x83,0x5E,0xE3,0x00,0xFD,0xAD,0x05,0xF0,0x22,0xC9,0x94,0x26,0xC9,0x95,0x13,0x2D, +0x00,0x1F,0x39,0x40,0x43,0x39,0xBD,0x4F,0x19,0xFA,0x4F,0x18,0xD1,0x42,0xF9,0xC4, +0x56,0xF7,0x3F,0x42,0xD7,0xC5,0x5E,0xF6,0x00,0x0E,0xE1,0x10,0x26,0xEC,0x31,0x57, +0x16,0xFF,0x5F,0x07,0x91,0x20,0x01,0x65,0xC3,0x00,0x10,0x01,0xF3,0x18,0x05,0x3A, +0x23,0x00,0xC2,0x08,0x91,0x00,0x40,0x8F,0x25,0x08,0x70,0x00,0x40,0x6E,0x1D,0xE7, +0xFF,0xF6,0x0A,0xE7,0xFF,0xEE,0x56,0x0E,0xE1,0x12,0xD2,0xE7,0x00,0x69,0x56,0xF6, +0xFF,0x5E,0xE7,0x11,0x20,0x01,0x71,0x0D,0xF1,0x01,0x0D,0xD0,0x01,0x19,0x8D,0x00, +0x0D,0x53,0x01,0x0D,0x72,0x01,0xE4,0x00,0x00,0xB9,0x5E,0xE3,0xC9,0x20,0x01,0x55, +0x9B,0x01,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x06,0x5C,0xE4,0x00,0x00,0x91,0x0B,0x10, +0x00,0x0B,0x31,0x00,0x43,0x18,0x75,0x43,0x39,0x7D,0x0F,0x01,0x04,0x0F,0x21,0x08, +0x50,0x60,0x23,0xE7,0xFF,0xEF,0xA2,0x0F,0x21,0x0A,0x0F,0x01,0x06,0x43,0x39,0xCB, +0x43,0x18,0xC3,0x40,0x63,0x1B,0x8F,0x19,0xD7,0x03,0xFC,0x5C,0xE7,0xFF,0xFE,0xF9, +0xC2,0xE0,0x10,0x01,0xF3,0x17,0x05,0x46,0x9F,0x01,0xFB,0x17,0x05,0x46,0xE7,0xFF, +0xFF,0x33,0x0E,0xC1,0x1A,0x0E,0xA1,0x1E,0x0E,0x81,0x22,0x0E,0x61,0x26,0x0E,0x41, +0x2A,0x0E,0x21,0x2E,0x0E,0x01,0x32,0x0D,0xE1,0x36,0x0D,0xC1,0x3A,0x0D,0xA1,0x3E, +0x0D,0x81,0x42,0x0D,0x61,0x46,0x0D,0x41,0x4A,0x0D,0x21,0x4E,0x1C,0x21,0x50,0x85, +0x29,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x06,0x68,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x06, +0x64,0x85,0x29,0xFC,0x21,0xFF,0x58,0xED,0x61,0x00,0x9C,0x0E,0xC1,0x70,0xED,0x21, +0x00,0xA4,0xED,0x41,0x00,0xA0,0xED,0x81,0x00,0x98,0xED,0xA1,0x00,0x94,0xED,0xC1, +0x00,0x90,0xED,0xE1,0x00,0x8C,0xEE,0x01,0x00,0x88,0xEE,0x21,0x00,0x84,0xEE,0x41, +0x00,0x80,0x0E,0x61,0x7C,0x0E,0x81,0x78,0x0E,0xA1,0x74,0xFE,0xC1,0x00,0xA8,0xC2, +0xE0,0x10,0x01,0xC1,0x60,0x10,0x01,0xEA,0xF7,0x05,0x4A,0xFD,0x6B,0x01,0x44,0xC3, +0x00,0x10,0x01,0x0C,0x76,0xA0,0xEB,0x18,0x05,0x16,0x0C,0x36,0xA4,0x0E,0xEB,0x0D, +0x0F,0x0B,0x0F,0xC3,0x20,0x10,0x01,0xF3,0x39,0x05,0x3A,0x5F,0x23,0xDB,0x20,0x00, +0x85,0xC3,0x20,0x10,0x01,0xE8,0x79,0x06,0x44,0xC3,0x20,0x10,0x01,0xE8,0x99,0x05, +0x4C,0x40,0x97,0x25,0x40,0x78,0x1D,0xE7,0xFF,0xF3,0x7A,0xE7,0xFF,0xEB,0xC6,0x0C, +0x6B,0x12,0x0D,0x4B,0x16,0x98,0x80,0x0C,0x6B,0x18,0x0D,0x4B,0x1C,0xE7,0xFF,0xEE, +0x0C,0x0C,0x6B,0x10,0x88,0x6A,0xE7,0xFF,0xED,0xB2,0x0B,0x0B,0x00,0x0C,0x6B,0x14, +0xC2,0xE0,0x10,0x01,0x0B,0x2B,0x02,0xEA,0xF7,0x06,0x54,0x43,0x39,0xC5,0xC3,0x00, +0x10,0x01,0xFE,0x38,0x06,0x60,0xD6,0xF9,0x00,0x88,0x0B,0x4B,0x06,0x0B,0x2B,0x04, +0x43,0x3A,0xCD,0xD6,0xF9,0x00,0xEC,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x06,0x5E,0x22, +0xE4,0x44,0xC2,0xE0,0x10,0x01,0xFD,0x57,0x05,0x1A,0x13,0x2A,0x20,0x27,0x24,0x5B, +0xC2,0xE0,0x10,0x01,0xEC,0x16,0xFF,0x78,0xEC,0x17,0x06,0x5C,0x0C,0x16,0x80,0xE4, +0x00,0x10,0x67,0x0C,0x36,0x9C,0x0F,0x31,0x02,0xEC,0x16,0xFF,0x78,0x0F,0x39,0x02, +0x0C,0x16,0x80,0x0B,0x39,0x01,0x0C,0x16,0x90,0x9F,0x27,0x99,0x80,0x4F,0x39,0x19, +0x4F,0x39,0x18,0x40,0x21,0xCD,0xEC,0x36,0xFF,0x70,0x40,0x21,0xCD,0xEC,0x36,0xFF, +0x64,0xE4,0x00,0x0F,0xCB,0x4F,0x0C,0x20,0xEF,0x16,0xFF,0x68,0x0E,0xF7,0x06,0x8E, +0xF8,0x11,0xB7,0x05,0x5D,0xA3,0xFB,0x20,0x00,0x45,0xC3,0x20,0x10,0x01,0xEF,0x19, +0x06,0x6A,0x8B,0x2D,0xE4,0x00,0x00,0x25,0x1F,0x2D,0xE0,0xC3,0x40,0x10,0x01,0x5F, +0x39,0x00,0xEF,0x1A,0x06,0x66,0x9B,0x41,0x4F,0x3A,0xCC,0x47,0x19,0xC4,0xD3,0x00, +0x0A,0x12,0x1F,0x0D,0xFF,0x27,0x0D,0x13,0x10,0xB7,0x04,0x0C,0xD7,0x02,0x10,0x6A, +0x20,0x9A,0xE0,0x20,0xA0,0x30,0x88,0x8A,0xE7,0xFF,0xED,0x10,0x5E,0xE3,0x00,0xEF, +0x16,0xFF,0x72,0x8F,0x0C,0x1A,0xF8,0x00,0x0E,0xF1,0x02,0xEF,0x16,0xFF,0x6A,0x0E, +0xF7,0x06,0x8E,0xF8,0x10,0xAA,0x20,0x10,0x77,0x04,0x0C,0x97,0x02,0x88,0xCA,0x9A, +0xE0,0xD0,0xA0,0x07,0x5E,0xE4,0x00,0x01,0xDD,0x99,0xC0,0x99,0xFB,0x8A,0x0E,0xD1, +0xAA,0x03,0x66,0x99,0xE0,0x1C,0x76,0xA8,0x88,0x8F,0xE7,0xFF,0xEA,0x00,0x0E,0xF1, +0x02,0xEF,0x36,0xFF,0x6A,0x0E,0xF7,0x06,0x10,0x6A,0x20,0x8E,0xF9,0x10,0xB7,0x04, +0x0C,0xD7,0x02,0x20,0xA0,0x54,0x1C,0x96,0xA8,0xE7,0xFF,0xEC,0x4E,0x5C,0x63,0x00, +0xD4,0x70,0x00,0x41,0x8A,0x03,0x89,0xCF,0x9D,0xE4,0x5D,0xEF,0x00,0x5D,0xE8,0x09, +0x23,0xFF,0x15,0xEE,0xF6,0xFF,0x72,0x8E,0xEC,0x1A,0x17,0x00,0x5E,0x09,0x73,0x20, +0x02,0xA9,0x1C,0x76,0xA8,0x88,0x8E,0xE7,0xFF,0xE9,0x66,0x0E,0xF1,0x02,0xEF,0x56, +0xFF,0x6A,0x0E,0xF7,0x06,0x8E,0xFA,0xE4,0x00,0x00,0xC9,0x1C,0x76,0xA8,0x88,0x8F, +0xE7,0xFF,0xE9,0x34,0x0E,0xF1,0x02,0xEF,0x16,0xFF,0x6A,0x0E,0xF7,0x06,0x10,0x6A, +0x20,0x8E,0xF8,0x10,0xB7,0x04,0x0C,0xD7,0x02,0x20,0xA0,0x54,0x1C,0x96,0xA8,0xE7, +0xFF,0xEB,0x82,0x5C,0x63,0x00,0xD4,0x70,0x00,0x41,0x8A,0x03,0x89,0xCF,0x9D,0xE1, +0x5D,0xEF,0x02,0xD1,0xE6,0xFE,0x46,0xEE,0xF6,0xFF,0x72,0x8E,0xEC,0x1A,0x17,0x00, +0x5E,0x09,0x73,0x20,0x01,0x19,0x1C,0x76,0xA8,0x88,0x8E,0xE7,0xFF,0xE8,0x9E,0x0E, +0xF1,0x02,0xEF,0x36,0xFF,0x6A,0x0E,0xF7,0x06,0x8E,0xF9,0x10,0x77,0x04,0x0C,0x97, +0x02,0x10,0xAA,0x20,0x9A,0xE0,0x20,0xA0,0x34,0x1C,0xD6,0xA8,0xE7,0xFF,0xEA,0xE8, +0x5E,0xE3,0x00,0xEF,0x16,0xFF,0x66,0x8F,0x0C,0x1A,0xF8,0x00,0xE4,0x00,0x00,0x2D, +0xEE,0xF6,0xFF,0x72,0x8E,0xEC,0x18,0x17,0x00,0xEE,0xF6,0xFF,0x66,0x8E,0xEC,0x18, +0x17,0x00,0xEE,0xF6,0xFF,0x72,0x8E,0xEC,0x12,0xF7,0x00,0x0E,0xF6,0x94,0x5E,0xE9, +0x53,0x20,0x19,0x01,0xEE,0xF6,0xFF,0x66,0x8E,0xEC,0x12,0xF7,0x00,0x0E,0xF6,0x98, +0x5E,0xE8,0xB3,0x20,0x18,0xB9,0x0B,0x4B,0x08,0x0A,0xEB,0x02,0x0B,0x0B,0x00,0x0B, +0x2B,0x06,0xEF,0x56,0xFF,0x58,0xEE,0xF6,0xFF,0x60,0xEF,0x16,0xFF,0x74,0xEF,0x36, +0xFF,0x5C,0x0A,0x0B,0x0C,0x09,0xEB,0x0A,0x09,0xCB,0x0E,0x0A,0x6B,0x04,0xD1,0xA7, +0x01,0x36,0xD5,0xEE,0x2F,0xF8,0x41,0xCE,0x7D,0x4C,0x6E,0xFA,0x45,0xC3,0x76,0x40, +0x6E,0x1D,0xE7,0xFF,0xE8,0xBA,0xC0,0x60,0x18,0xE8,0x20,0x17,0x9D,0x12,0xEA,0x20, +0xE4,0x00,0x08,0xB3,0xEF,0x56,0xFF,0x5A,0x43,0x5A,0x85,0x4E,0xFA,0xFA,0x0F,0x56, +0x84,0x46,0x97,0xD6,0xEF,0x36,0xFF,0x62,0x42,0x94,0xBD,0xEF,0x56,0xFF,0x76,0x42, +0xEF,0x75,0x43,0x39,0xD5,0xEE,0xF6,0xFF,0x7C,0xEF,0x36,0xFF,0x6C,0x4E,0xF7,0xFA, +0xEF,0x16,0xFF,0x7E,0x46,0xB7,0xC6,0x42,0xB5,0xBD,0xEE,0xF6,0xFF,0x5E,0x42,0x57, +0x9D,0xD1,0xA8,0x08,0x7E,0x40,0x77,0x7D,0xE7,0xFF,0xE8,0x0E,0xC0,0x60,0xCE,0x48, +0x20,0x00,0x95,0xEF,0x16,0xFF,0x62,0x98,0x80,0x40,0x78,0x85,0xE7,0xFF,0xE8,0x2E, +0xC0,0x60,0x19,0x08,0x20,0x00,0x45,0x12,0xEA,0x20,0x8E,0xEA,0x12,0xF7,0xFF,0x5E, +0xE5,0xFB,0x20,0x15,0xBD,0x42,0xB5,0xAB,0x42,0x94,0xA3,0x42,0x52,0x93,0x8E,0x95, +0xEF,0x36,0xFF,0x6E,0xCE,0x94,0x00,0x64,0x42,0xF9,0xCB,0x8E,0x57,0x4E,0x52,0x18, +0xD6,0x54,0x00,0x91,0x40,0x6E,0x9D,0xE7,0xFF,0xE7,0x70,0xC0,0x60,0x18,0xE8,0x20, +0x15,0x09,0xEF,0x56,0xFF,0x62,0xEE,0xF6,0xFF,0x5A,0x98,0x80,0x40,0x7A,0xBD,0xE7, +0xFF,0xE7,0x88,0xC0,0x60,0x4A,0xE8,0x20,0x14,0xA9,0x11,0xEA,0x00,0x1E,0xEF,0xF0, +0x5E,0xE3,0xDB,0x20,0x00,0x45,0x12,0xEA,0x01,0x9E,0xF0,0x5E,0xF7,0x00,0x5E,0xE3, +0xD3,0x20,0x14,0x41,0xC3,0x20,0x10,0x01,0xFF,0x39,0x05,0x1A,0x13,0x19,0x20,0x8F, +0x19,0x12,0xF8,0xFF,0x1F,0x37,0xEF,0x5F,0x23,0xDB,0x20,0x00,0x49,0x13,0x18,0xFE, +0x5F,0x02,0x13,0x20,0x00,0x25,0x5F,0x05,0xF3,0x20,0x13,0xA1,0x9E,0xF4,0xD2,0xE6, +0x00,0x9D,0xEC,0x76,0xFF,0x7E,0xE7,0xFF,0xE6,0x92,0xC0,0x60,0x9C,0x4C,0x20,0x13, +0x4D,0x9D,0xF8,0xD1,0xE7,0x21,0xD5,0xEF,0x56,0xFF,0x5E,0x41,0xCE,0xD5,0x4C,0x6E, +0xFA,0x45,0xC3,0x76,0x40,0x6E,0x1D,0xE7,0xFF,0xE6,0x50,0xC0,0x60,0x7C,0xEC,0x20, +0x10,0x79,0xEE,0xF6,0xFF,0x62,0x98,0x80,0x42,0x10,0xBD,0x4C,0x70,0xFA,0x46,0x03, +0x86,0x40,0x70,0x1D,0xE7,0xFF,0xE6,0x5E,0xC0,0x60,0x3E,0x68,0xE4,0x00,0x07,0xFD, +0xD1,0xAA,0x0E,0xFE,0xEF,0x16,0xFF,0x5A,0x43,0x10,0xC5,0x4E,0xF8,0xFA,0x0F,0x16, +0x88,0x44,0x77,0xC6,0x98,0x80,0x40,0x63,0xBD,0xE7,0xFF,0xE6,0x14,0x0C,0x76,0x8C, +0xC0,0x60,0xAF,0x0C,0x20,0x00,0x69,0x40,0x6E,0x7D,0x4E,0xE3,0xFA,0x44,0x77,0x1E, +0x40,0x63,0xBD,0xE7,0xFF,0xE5,0x98,0xC0,0x60,0xAF,0x08,0x20,0x00,0xF5,0xEF,0x36, +0xFF,0x5E,0x88,0x6F,0x88,0x99,0x88,0xB3,0xE7,0xFF,0xEA,0x86,0x20,0x60,0x52,0xEF, +0x56,0xFF,0x5E,0x88,0x6E,0x88,0x9A,0x88,0xB3,0xE7,0xFF,0xEA,0x64,0x20,0x60,0x6C, +0xEE,0xF6,0xFF,0x5A,0xD6,0x17,0x00,0xA0,0x0C,0x76,0x8A,0x98,0x80,0xE7,0xFF,0xE5, +0x6C,0xC0,0x60,0x32,0x0C,0x20,0x10,0x71,0xEF,0x16,0xFF,0x6E,0x42,0xF8,0xC3,0x42, +0xB5,0xAB,0x42,0x94,0xA3,0x42,0x52,0x93,0x8E,0x95,0x8E,0x57,0xCE,0x94,0x00,0x64, +0x4E,0xF2,0x18,0xD6,0x97,0x01,0xA1,0x40,0x6E,0x9D,0xE7,0xFF,0xE4,0xCA,0xC0,0x60, +0x18,0xEC,0x20,0x00,0x95,0x12,0xEA,0x01,0x9E,0xF0,0x5E,0xF7,0x00,0x5E,0xE3,0xD3, +0x20,0x00,0x5D,0xEF,0x36,0xFF,0x76,0x98,0x80,0x40,0x70,0xCD,0xE7,0xFF,0xE4,0xCE, +0xC0,0x60,0x2B,0xCC,0x20,0x0F,0x35,0x12,0xAA,0x00,0x1E,0xF5,0xF8,0x5E,0xE6,0x13, +0x20,0x00,0xAD,0xEF,0x56,0xFF,0x5E,0x40,0x7A,0x7D,0xE7,0xFF,0xE4,0x4A,0xC0,0x60, +0xC7,0xEC,0x20,0x00,0x65,0x40,0x6F,0x9D,0xE7,0xFF,0xE4,0x2E,0xC0,0x60,0xC7,0xEC, +0x20,0x00,0x2D,0xCE,0xF2,0x00,0x06,0xD6,0x97,0x1C,0xD5,0xCE,0x52,0x00,0x0C,0xD6, +0x92,0x01,0x39,0x12,0xEA,0x01,0xD2,0xEF,0x01,0x05,0x0C,0x76,0x86,0x98,0x80,0xE7, +0xFF,0xE4,0x28,0x5C,0x6C,0x91,0x20,0x00,0x41,0x40,0x6E,0x7D,0xE7,0xFF,0xE3,0xC6, +0x5C,0x6C,0x99,0x20,0x0D,0xB9,0x1E,0xB5,0xDB,0x5E,0xA2,0x3B,0x20,0x00,0x85,0x12, +0xEA,0x20,0x8E,0xEA,0x12,0xF7,0xFF,0x5E,0xE4,0x93,0x20,0x00,0x4D,0x5E,0xE6,0xDB, +0x20,0x00,0x35,0x0E,0xF6,0x8E,0xC2,0xE0,0x7D,0x0C,0x20,0x0D,0x1D,0xEC,0x76,0xFF, +0x7E,0xE7,0xFF,0xE3,0x5C,0xC0,0x60,0xBB,0x88,0x20,0x00,0x65,0xEF,0x16,0xFF,0x62, +0xEF,0x36,0xFF,0x76,0x88,0x70,0x88,0x98,0x88,0xB9,0xE7,0xFF,0xE8,0x42,0xD0,0x60, +0x19,0x1E,0x40,0x6E,0x7D,0x4E,0xE3,0xFA,0x44,0x77,0x1E,0x40,0x63,0xBD,0xE7,0xFF, +0xE3,0x02,0xC0,0x60,0xBB,0x88,0x20,0x00,0x5D,0xEF,0x56,0xFF,0x5E,0xD5,0xFA,0x18, +0x22,0xD5,0xF3,0x18,0x02,0xD5,0xDA,0x17,0xE2,0xD5,0xD3,0x17,0xC2,0x0E,0xF6,0x8E, +0xC2,0xE0,0xBB,0x88,0x20,0x00,0x7D,0xEF,0x16,0xFF,0x5A,0xEF,0x36,0xFF,0x62,0xD7, +0x19,0x17,0x12,0xEF,0x56,0xFF,0x76,0xD7,0x1A,0x16,0xD2,0xD6,0x19,0x16,0xB2,0xD6, +0x1A,0x16,0x92,0xEE,0xF6,0xFF,0x62,0xEF,0x16,0xFF,0x5A,0x98,0x80,0x40,0x77,0xC5, +0xE7,0xFF,0xE2,0xA6,0xC0,0x60,0xBB,0x8C,0x4A,0xE1,0x01,0xE4,0x00,0x04,0x49,0xC2, +0xE0,0x10,0x01,0x1F,0x0D,0xFD,0xFE,0xF7,0x06,0x4A,0x27,0x04,0xE7,0x0B,0x17,0x03, +0x0B,0x37,0x01,0xCF,0x18,0x01,0x2C,0x43,0x18,0xC8,0xD6,0x58,0x14,0xBC,0x0B,0x17, +0x07,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x03,0x2A,0x12,0xF7,0x00,0x42,0xF8,0xBB,0x53, +0x00,0x64,0x42,0xF7,0xC0,0x0F,0x0B,0x1A,0xD6,0xF8,0x13,0xCC,0x0E,0xEB,0x12,0xE4, +0x00,0x01,0x51,0x1F,0x0D,0xFF,0xD3,0x01,0x05,0x65,0x13,0x4A,0x20,0x13,0x2A,0x00, +0x23,0x44,0x98,0x13,0x0A,0x01,0x43,0x99,0xC5,0x8F,0x38,0x4F,0x7C,0xFA,0x4F,0x39, +0x0A,0x47,0x9B,0xE6,0x43,0x7C,0xDD,0x5F,0x7B,0x00,0x5F,0x63,0xFB,0x20,0x00,0x1B, +0x1F,0x39,0x20,0x57,0x39,0x3F,0x9B,0x00,0x1F,0xB9,0x40,0x53,0xC0,0x40,0xE4,0x00, +0x00,0x63,0x43,0x2A,0xC4,0x13,0x99,0x00,0x43,0x9D,0xE5,0x4F,0x7C,0xFA,0x4F,0x7B, +0xD1,0x43,0x3C,0xDC,0x57,0x39,0x3F,0x43,0x39,0xDD,0x5F,0x39,0x00,0x5F,0x24,0x13, +0x20,0x00,0x25,0x43,0x3E,0xCD,0x5F,0x39,0x00,0x9F,0x01,0xD3,0x24,0x10,0x35,0x5F, +0x78,0x00,0xD7,0x5B,0xFE,0x85,0xE4,0x00,0x04,0x8D,0xC3,0x20,0x10,0x01,0xEF,0x19, +0x03,0x26,0x13,0x38,0x00,0x0B,0x17,0x09,0x43,0x39,0xC3,0x53,0x00,0x64,0x43,0x39, +0xC1,0x0B,0x17,0x03,0x43,0x39,0xC3,0x0B,0x17,0x01,0x42,0xF9,0xC0,0x0F,0x0B,0x1E, +0xD6,0xF8,0x0E,0x8C,0x0E,0xEB,0x16,0xC2,0xE1,0x06,0x8C,0x20,0x07,0x19,0xE4,0x00, +0x02,0x5F,0xD1,0xA9,0x02,0x46,0xC3,0x40,0x10,0x01,0xF6,0xFA,0x05,0x46,0xD2,0xE3, +0x0D,0x9C,0xEE,0xF6,0xFF,0x5A,0x50,0x60,0x64,0x42,0x10,0xBD,0xE7,0xFF,0xDF,0xF0, +0xD4,0x70,0x0D,0x0C,0x12,0xEA,0x20,0xD2,0xE5,0x08,0x31,0x13,0x0A,0x01,0x9F,0x10, +0x5F,0x18,0x00,0x5F,0x03,0xDB,0x20,0x03,0xDD,0x8E,0xEA,0x12,0xF7,0xFE,0x9E,0xF0, +0x5E,0xF7,0x00,0x5E,0xE3,0xD3,0xE4,0x00,0x01,0x35,0xD1,0xA5,0x01,0x16,0x40,0x6E, +0x9D,0xE7,0xFF,0xDF,0xBC,0xC0,0x60,0xA2,0x88,0x20,0x03,0x51,0x12,0xEA,0x00,0x9E, +0xF8,0x5E,0xF7,0x00,0xD2,0xEE,0x0A,0xE9,0xE4,0x00,0x01,0x8B,0xD1,0xA6,0x03,0xDE, +0xEF,0x16,0xFF,0x5E,0x40,0x78,0x7D,0xE7,0xFF,0xDF,0x70,0xC0,0x60,0x9C,0x48,0x20, +0x00,0x79,0x40,0x6E,0x9D,0xE7,0xFF,0xDF,0x54,0xC0,0x60,0x3E,0x6C,0x20,0x00,0x41, +0x12,0xEA,0x00,0x1E,0xF7,0xD8,0x5E,0xF7,0x00,0xD2,0xEE,0x09,0x41,0xEF,0x36,0xFF, +0x5E,0x40,0x79,0x75,0xE7,0xFF,0xDF,0x16,0xC0,0x60,0x7D,0x08,0x20,0x02,0x05,0x40, +0x6F,0x9D,0xE7,0xFF,0xDE,0xFA,0xC0,0x60,0xE0,0xEC,0x20,0x01,0xCD,0x12,0xEA,0x20, +0x8E,0xEA,0x13,0x17,0xFF,0xD3,0x07,0x00,0x7D,0x12,0xF7,0xFE,0xD2,0xE7,0x07,0xAD, +0xE4,0x00,0x00,0xBB,0x5F,0x02,0xD3,0x20,0x03,0xA9,0x12,0xF7,0xFE,0x5E,0xE2,0xD3, +0x20,0x03,0x85,0xE4,0x00,0x00,0x95,0x9A,0xE0,0xD1,0xAB,0x02,0x36,0xEF,0x56,0xFF, +0x5A,0xD6,0x1A,0x00,0x40,0xD5,0xCF,0x06,0x64,0x41,0xCE,0x7D,0x4C,0x6E,0xFA,0x45, +0xC3,0x76,0x40,0x6E,0x1D,0xE7,0xFF,0xDE,0x54,0xC0,0x60,0x25,0x6C,0x20,0x00,0x81, +0xEE,0xF6,0xFF,0x5A,0x98,0x80,0x42,0x10,0xBD,0x4C,0x70,0xFA,0x46,0x03,0x86,0x40, +0x70,0x1D,0xE7,0xFF,0xDE,0x62,0xC0,0x60,0x25,0x68,0x20,0x02,0x5D,0x9A,0xE0,0xEF, +0x36,0xFF,0x6A,0x0F,0x11,0x02,0x0F,0x18,0x06,0x8F,0x19,0x0F,0x38,0x0A,0x23,0x25, +0x92,0x0F,0x4B,0x12,0x23,0x41,0x78,0x0F,0x2B,0x16,0x23,0x21,0x60,0x11,0xD8,0x0C, +0x13,0xD8,0x0D,0x97,0x63,0x11,0x18,0x0E,0xCB,0x7B,0x34,0x50,0x13,0xB8,0x0F,0x41, +0xCE,0xDB,0xCF,0x9E,0x07,0xD0,0xCF,0x1D,0x07,0xD0,0xD1,0xAA,0x00,0xAE,0x22,0xE0, +0x44,0xCF,0x9E,0x46,0x50,0xCF,0x1D,0x46,0x50,0x43,0x9C,0x69,0x43,0x18,0x69,0xCE, +0xFA,0x07,0xD0,0xD6,0xEE,0x01,0xF5,0xCF,0x5A,0x00,0x14,0xD7,0x9A,0x01,0xB5,0xCE, +0xF9,0x07,0xD0,0x43,0x68,0xDB,0xD6,0xFB,0x01,0x5D,0xCF,0x39,0x00,0x14,0xD7,0x19, +0x01,0x1D,0x0E,0xF6,0x96,0x0F,0x56,0x9A,0x0F,0x16,0x92,0x8E,0xFA,0x4E,0xF7,0x0A, +0xD6,0xF8,0x00,0x88,0x5E,0xF7,0x00,0x0D,0x96,0x80,0x0E,0xF6,0x90,0xEE,0xF6,0xFF, +0x78,0x9D,0x81,0x5D,0x8C,0x00,0x0E,0xF1,0x02,0x0F,0x17,0x02,0x0B,0x18,0x01,0xD7, +0x0C,0xC0,0xB5,0xC2,0xE0,0x10,0x01,0xEF,0x36,0xFF,0x7A,0x0C,0x36,0x9E,0xFB,0x37, +0x05,0x43,0xE7,0xFF,0xE7,0x22,0x98,0x62,0xEF,0x56,0xFF,0x7A,0x23,0x41,0x14,0x0E, +0xF1,0x02,0x0F,0x36,0x82,0x0F,0x17,0x06,0x0F,0x56,0xA2,0x4E,0xF9,0x20,0x98,0x61, +0x8E,0xF8,0x12,0xF7,0x05,0x0E,0xFA,0x00,0xE4,0x00,0x00,0x53,0xEF,0x36,0xFF,0x6E, +0x4F,0x19,0xFA,0x46,0x78,0xCE,0x42,0x73,0xC5,0x4F,0x12,0xFA,0x46,0x58,0x96,0x42, +0x52,0xC5,0x4E,0x52,0x12,0xFE,0x52,0x01,0x2C,0xD6,0x72,0xFC,0xC4,0xE7,0xFF,0xFB, +0x3B,0x0C,0x36,0xA6,0x0E,0xC1,0x72,0x0E,0xA1,0x76,0x0E,0x81,0x7A,0x0E,0x61,0x7E, +0xEE,0x41,0x00,0x82,0xEE,0x21,0x00,0x86,0xEE,0x01,0x00,0x8A,0xED,0xE1,0x00,0x8E, +0xED,0xC1,0x00,0x92,0xED,0xA1,0x00,0x96,0xED,0x81,0x00,0x9A,0xED,0x61,0x00,0x9E, +0xED,0x41,0x00,0xA2,0xED,0x21,0x00,0xA6,0xFC,0x21,0x00,0xA8,0x85,0x29,0xC2,0xE0, +0x10,0x01,0x9C,0x38,0xEC,0x77,0x06,0x60,0x0D,0x21,0x04,0x0D,0x41,0x00,0x08,0x61, +0x09,0xC1,0x40,0x10,0x01,0xEC,0x8A,0x06,0x4B,0xFD,0x4A,0x06,0x4A,0x0C,0xAA,0x03, +0x0C,0xCA,0x07,0x0C,0xEA,0x09,0x19,0x0A,0x04,0xE7,0xFF,0xDA,0xF6,0x0D,0x21,0x06, +0x0C,0x6A,0x0B,0x0D,0x41,0x02,0x9C,0x28,0x85,0x29,0x9C,0x30,0x5C,0x63,0x00,0x0D, +0x41,0x08,0x0D,0x61,0x04,0x4C,0x63,0x08,0xC2,0xF8,0x00,0x21,0x0D,0x21,0x0C,0xFE, +0xF7,0xB7,0x22,0x99,0x40,0x8E,0xE3,0x09,0x77,0x01,0x88,0x6A,0x88,0x8B,0x9D,0x41, +0xE4,0x00,0xB7,0xC4,0x5D,0x4A,0x00,0xD1,0x44,0xFF,0x9E,0x0D,0x61,0x06,0x0D,0x41, +0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x06, +0x71,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x06,0x76,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x06, +0x6E,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x06,0x72,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06, +0x79,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0x75,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06, +0x7C,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x06,0x71,0xC2,0xE0,0x10,0x01,0xF8, +0x17,0x06,0x6E,0xC2,0xE0,0x10,0x01,0xF0,0x77,0x06,0x76,0xC2,0xE0,0x10,0x01,0xF8, +0x77,0x06,0x72,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0x79,0xC2,0xE0,0x10,0x01,0xEC, +0x17,0x06,0x75,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0x7C,0x24,0x6C,0x1F,0xE7,0xFF, +0xFE,0x99,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0x5C,0x63,0x04,0xEC, +0x77,0x06,0x75,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0x7C,0xF3,0x78,0x06,0x6E,0xC3, +0x40,0x10,0x01,0xC3,0x20,0x10,0x01,0xC3,0x00,0x10,0x01,0xFF,0x5A,0x06,0x76,0xFF, +0x39,0x06,0x72,0x23,0x60,0x2C,0xEB,0x78,0x06,0x79,0xD7,0x63,0x00,0xA1,0x13,0x5A, +0x00,0xEC,0x78,0x06,0x79,0x1B,0x59,0x00,0x9B,0x01,0xEF,0x17,0x06,0x7C,0x85,0x29, +0xC2,0xE0,0x10,0x01,0xEB,0x17,0x06,0x75,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x06,0x71, +0x5E,0xF8,0x1F,0x48,0x61,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x06,0x6E, +0x5E,0xE0,0x5B,0x48,0x61,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x06,0x6E, +0x27,0x08,0x7B,0x9F,0x01,0xFB,0x17,0x06,0x6E,0xC2,0xE0,0x10,0x01,0xF0,0x77,0x06, +0x76,0x9C,0x61,0x54,0x63,0x03,0xF8,0x77,0x06,0x76,0xE7,0xFF,0xFD,0x61,0x85,0x29, +0x8B,0x03,0x56,0xE3,0x03,0x22,0xE0,0x98,0x9B,0x04,0x42,0xF8,0xBD,0x5F,0x44,0x00, +0x5E,0xE5,0x17,0x4B,0x37,0x28,0x9A,0xE0,0xE4,0x00,0x00,0x13,0x1B,0x58,0x00,0x9E, +0xE1,0x43,0x03,0xBC,0xD6,0xF9,0xFF,0xC6,0x40,0xA5,0xBD,0x4E,0xE4,0x80,0x4F,0x64, +0xC0,0x47,0x7B,0xBD,0x4E,0xE4,0x40,0x47,0x7B,0x25,0x4F,0x45,0x11,0x47,0x7B,0xBD, +0x9A,0xE0,0xE4,0x00,0x00,0x17,0x8F,0x38,0x9E,0xE1,0x0F,0x79,0x00,0x4F,0x37,0x10, +0xD6,0xFA,0xFF,0xB6,0x8F,0x19,0x9A,0xE0,0x54,0xA5,0x03,0x5C,0x84,0x00,0xE4,0x00, +0x00,0x19,0x43,0x37,0xC4,0x9E,0xE1,0x18,0x99,0x00,0xD4,0xB7,0xFF,0xC5,0x85,0x29, +0x46,0xE4,0x1D,0x56,0xF7,0x03,0x22,0xE0,0x82,0x9A,0xFC,0x47,0x45,0xBC,0x9A,0xE0, +0xE4,0x00,0x00,0x51,0x43,0x03,0xBC,0x43,0x24,0xBC,0x9E,0xE1,0x13,0x39,0x00,0x1B, +0x38,0x00,0xE4,0x00,0x00,0x0D,0x9A,0xE0,0xD6,0xE5,0xFF,0x66,0xE4,0x00,0x00,0x63, +0x0F,0x39,0x02,0x9E,0xE4,0x0F,0x38,0x00,0x43,0x03,0xBC,0x43,0x24,0xBC,0xD6,0xFA, +0xFF,0x96,0x9A,0xE0,0x54,0xA5,0x03,0xE4,0x00,0x00,0x25,0x43,0x57,0xC4,0x43,0x77, +0xCC,0x9E,0xE1,0x13,0x7B,0x00,0x1B,0x7A,0x00,0xD4,0xB7,0xFF,0x95,0x85,0x29,0x9C, +0x30,0x0D,0x41,0x08,0x0D,0x61,0x04,0x0D,0x21,0x0C,0x89,0x63,0x99,0x40,0xE4,0x00, +0x20,0xCA,0x20,0x64,0xD2,0xE4,0x00,0x22,0xF6,0x20,0x64,0x82,0xE4,0x00,0x22,0xD4, +0xC2,0xE0,0x10,0x01,0xFF,0x20,0xFF,0x7F,0xEB,0x17,0x08,0x87,0x99,0x41,0x47,0x18, +0xCC,0xEF,0x17,0x08,0x87,0xE4,0x00,0x00,0x23,0xE4,0x00,0x22,0xEA,0x20,0x67,0x7C, +0x88,0x6B,0xE4,0x00,0x22,0x4A,0x88,0x6A,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21, +0x0E,0x1C,0x21,0x10,0x85,0x29,0x1C,0x21,0xD0,0x0D,0x21,0x2C,0x0D,0x41,0x28,0x0D, +0x61,0x24,0x0D,0x81,0x20,0x0D,0xA1,0x1C,0x0D,0xC1,0x18,0x0D,0xE1,0x14,0x0E,0x01, +0x10,0x0E,0x21,0x0C,0x0E,0x41,0x08,0x0E,0x61,0x04,0xE4,0x00,0x68,0x1A,0xC1,0x80, +0x10,0x01,0xC0,0x60,0x00,0x21,0xFD,0x4C,0x00,0xD4,0xFC,0x63,0xB0,0xE4,0xC0,0x80, +0x10,0x01,0xC0,0xA0,0x10,0x01,0xFC,0x84,0x00,0x00,0xFC,0xA5,0x03,0x80,0x40,0xA5, +0x25,0xE4,0x00,0x63,0x5E,0x0C,0x0A,0x01,0x0C,0x0A,0x03,0x0C,0x0A,0x05,0x0C,0x0A, +0x08,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x00,0xC3,0x0C,0x0A,0x0C,0x9A,0xEA,0xC1,0xC0, +0x10,0x01,0x0E,0xEA,0x11,0xEC,0x0E,0x06,0x8C,0x50,0x60,0x26,0xE4,0x00,0x22,0xE4, +0xC8,0x80,0xE1,0x00,0x98,0x60,0xE4,0x00,0x31,0x9C,0x98,0x63,0xE4,0x00,0x30,0x24, +0xE4,0x00,0x07,0x2A,0xC2,0xE0,0x10,0x01,0x9B,0x3C,0xF3,0x17,0x08,0x19,0x47,0x18, +0xCC,0xFC,0x60,0x0B,0xB8,0xFB,0x17,0x08,0x19,0x05,0x60,0x5B,0xC9,0x6B,0x8D,0x80, +0x88,0x8B,0xE4,0x00,0x30,0x5C,0x98,0x61,0xC2,0x58,0x00,0x21,0x8A,0x6B,0xC1,0x80, +0x10,0x01,0xC1,0xA0,0x10,0x01,0xC1,0x60,0x10,0x01,0xE4,0x00,0x30,0x34,0xC2,0x00, +0x10,0x01,0xC1,0xE0,0x10,0x01,0xC2,0x20,0x10,0x01,0xFE,0x52,0xB7,0x2C,0xFD,0x8C, +0x06,0x86,0xFD,0xAD,0x08,0x86,0xFD,0x6B,0x06,0x80,0xE4,0x00,0x2F,0xE4,0x0E,0xEA, +0x0E,0x22,0xE5,0xA0,0x22,0xE0,0x2C,0xD2,0xE2,0x18,0x9E,0xE4,0x00,0x02,0x5F,0xE4, +0x00,0x62,0x0A,0xE4,0x00,0x2F,0xFA,0x0C,0x6A,0x13,0xE4,0x00,0x2F,0xEC,0x0C,0x6A, +0x17,0xE4,0x00,0x2F,0xDE,0x0C,0x6A,0x1B,0xE4,0x00,0x2F,0xD0,0x0C,0x6A,0x19,0x0A, +0xEC,0x01,0xC6,0xF7,0xFF,0xDF,0x0E,0xEC,0x01,0x0A,0xEC,0x01,0xC6,0xF7,0xFF,0x7F, +0x0E,0xEC,0x01,0x9A,0xE1,0x0E,0xEA,0x0C,0x0A,0xED,0x01,0x52,0xF7,0x80,0xEC,0x0E, +0x06,0x8C,0x0E,0xED,0x01,0x98,0x61,0xE4,0x00,0x1D,0x3A,0x98,0x60,0xE4,0x00,0x37, +0x1A,0xE4,0x00,0x31,0xEA,0xE4,0x00,0x05,0x6B,0xEE,0xF0,0x06,0x8A,0x22,0xE4,0x4E, +0x9A,0xE2,0x0E,0xEA,0x0C,0x0C,0x0B,0x00,0xEC,0x10,0x06,0x88,0xE4,0x00,0x05,0x3D, +0xEE,0xEE,0x06,0x8E,0x22,0xE0,0x2C,0xD2,0xE1,0x14,0x9E,0xE4,0x00,0x00,0x3D,0x98, +0x61,0xE7,0xFF,0xFC,0x5C,0xD0,0x61,0x14,0x2E,0xEC,0x0F,0x08,0x60,0xEC,0x6E,0x06, +0x8C,0xE4,0x00,0x69,0x6E,0xE4,0x00,0x02,0xBB,0x0A,0xEA,0x01,0xC6,0xF7,0x01,0x00, +0xD2,0xE0,0x13,0x52,0xE4,0x00,0x2E,0xB8,0x0A,0xEA,0x13,0x0B,0x0A,0x11,0x40,0x63, +0xBD,0x5E,0xE3,0x04,0xD7,0x17,0x12,0xB5,0xE4,0x00,0x2E,0x90,0x0C,0x6A,0x13,0x0A, +0xEA,0x01,0xC6,0xF7,0xFE,0xFF,0x0E,0xEA,0x01,0xE4,0x00,0x63,0x44,0xE4,0x00,0x69, +0x66,0xE4,0x00,0x68,0x96,0xEE,0xEF,0x08,0x62,0xEE,0xF1,0x08,0x8C,0xE4,0x00,0x64, +0x30,0x98,0x61,0xE4,0x00,0x98,0x5A,0xE4,0x00,0x64,0xA8,0x98,0x61,0xE4,0x00,0x65, +0x00,0xE4,0x00,0x66,0x40,0xE4,0x00,0x88,0x52,0x0A,0xED,0x01,0x56,0xF7,0x80,0xD2, +0xE0,0x10,0x5A,0x0A,0xEA,0x01,0xC6,0xF7,0x01,0x00,0x22,0xE3,0xE4,0x0A,0xEA,0x01, +0xC6,0xF7,0xFE,0xFF,0x0E,0xEA,0x01,0x9A,0xE1,0x0E,0xEA,0x0C,0xEC,0x0E,0x06,0x8C, +0x98,0x61,0xE4,0x00,0x1B,0x84,0xE4,0x00,0x03,0xC9,0x0E,0xEB,0x02,0xD2,0xE4,0x0E, +0xED,0x4E,0xF7,0x10,0x8E,0xF2,0x0E,0xF7,0x02,0x86,0xE9,0x0A,0xEC,0x01,0xC6,0xF7, +0xFF,0xDF,0x0E,0xEC,0x01,0x0A,0xEC,0x01,0xC6,0xF7,0xFF,0x7F,0xFF,0x00,0xFF,0x7F, +0x0E,0xEC,0x01,0x0A,0xED,0x01,0x46,0xF7,0xC4,0x0E,0xED,0x01,0xC2,0xE0,0x10,0x01, +0xF8,0x17,0x08,0x48,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x9C,0xC2,0xE0,0x10,0x01, +0xEC,0x17,0x08,0x33,0xC2,0xE0,0x10,0x01,0x9B,0x3E,0xF3,0x17,0x08,0x1A,0x47,0x18, +0xCC,0xFB,0x17,0x08,0x1A,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x50,0xE4,0x00,0x59, +0x4A,0xE4,0x00,0x66,0x28,0x98,0x62,0xE4,0x00,0x2C,0x52,0x50,0x60,0x40,0xE4,0x00, +0x2C,0x64,0x50,0x60,0x19,0xE4,0x00,0x63,0x80,0xE4,0x00,0x04,0x04,0x50,0x60,0xC8, +0xE4,0x00,0x2C,0xC4,0xE4,0x00,0x6B,0xA6,0x50,0x60,0x40,0xE4,0x00,0x63,0x4C,0xC8, +0x80,0x7D,0x00,0xFC,0x60,0x0B,0xB8,0xE4,0x00,0x2C,0x32,0xFC,0x60,0x06,0x00,0xE4, +0x00,0x63,0x34,0xE4,0x00,0x03,0xC0,0xE4,0x00,0x02,0x5D,0x98,0x60,0xE7,0xFF,0xF9, +0xA4,0xD0,0x61,0x09,0x4E,0x9A,0xE2,0xEC,0x0F,0x08,0x60,0x0E,0xEB,0x00,0xE4,0x00, +0x67,0x14,0xE4,0x00,0x66,0x54,0xE4,0x00,0x02,0x29,0x0A,0xEA,0x01,0xC6,0xF7,0x01, +0x00,0xD2,0xE0,0x05,0x8A,0x0A,0xEA,0x01,0xC6,0xF7,0xFE,0xFF,0x0E,0xEA,0x01,0xE4, +0x00,0x03,0x48,0x98,0x60,0x98,0x80,0xE4,0x00,0x2B,0x3A,0xFC,0x60,0x0B,0xB8,0xC8, +0x80,0x7D,0x00,0xE4,0x00,0x2B,0x7A,0xE4,0x00,0x2B,0xA2,0xFC,0x60,0x0B,0xB8,0x88, +0x93,0xE4,0x00,0x2B,0x5E,0x98,0x81,0x98,0x60,0xE4,0x00,0x2A,0xF6,0xE4,0x00,0x02, +0xE4,0x98,0x62,0xE4,0x00,0x2B,0x72,0xE4,0x00,0x2B,0x72,0x0C,0x6A,0x13,0x0A,0xEA, +0x01,0xC6,0xF7,0xFE,0xFF,0x0E,0xEA,0x01,0xE4,0x00,0x60,0x26,0xE4,0x00,0x61,0x32, +0xE4,0x00,0x95,0xAA,0x98,0x80,0x98,0x64,0xE4,0x00,0x48,0xEC,0xE4,0x00,0x65,0x60, +0xEE,0xEF,0x08,0x62,0xEE,0xF1,0x08,0x8C,0xE4,0x00,0x61,0x86,0x98,0x60,0xE4,0x00, +0x61,0xDE,0xE4,0x00,0x63,0x1E,0xE4,0x00,0x85,0x30,0x0A,0xED,0x01,0x56,0xF7,0x80, +0x22,0xE0,0x88,0x0A,0xEA,0x01,0xC6,0xF7,0x01,0x00,0x22,0xE3,0xE4,0x0A,0xEA,0x01, +0xC6,0xF7,0xFE,0xFF,0x0E,0xEA,0x01,0x9A,0xE1,0x98,0x60,0x0E,0xEB,0x00,0xE4,0x00, +0x18,0x6C,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x31,0x5E,0xEB,0x01,0x20,0x00,0x29, +0x1E,0xF7,0xA0,0xD2,0xEB,0x02,0x3D,0x9A,0xE3,0xE4,0x00,0x00,0x7D,0x98,0x63,0xE4, +0x00,0x32,0x16,0xE4,0x00,0x2C,0xE6,0xE4,0x00,0x2A,0x52,0x9A,0xE4,0x0C,0x6A,0x17, +0xE4,0x00,0x00,0x4F,0xE4,0x00,0x2A,0x38,0x0A,0xEA,0x17,0x40,0x63,0xBD,0x5E,0xE3, +0x04,0xC2,0xE0,0x7C,0xEA,0x20,0x00,0x55,0x98,0x60,0xE4,0x00,0x29,0x32,0xE4,0x00, +0x2A,0x04,0x0C,0x6A,0x17,0x9A,0xE2,0x0E,0xEB,0x00,0x0E,0xEA,0x0A,0xFC,0x60,0x1E, +0x7F,0x9E,0xE1,0x0E,0xEA,0x08,0x0C,0x8A,0x0A,0xE4,0x00,0x2B,0xA6,0xE4,0x00,0x2A, +0x76,0xE7,0xFF,0xF9,0x93,0xE4,0x00,0xAB,0xCB,0x9C,0x38,0x0D,0x21,0x04,0x0D,0x41, +0x00,0xE4,0x00,0xAD,0x26,0x98,0x6D,0xE4,0x00,0x9D,0xA0,0x98,0x60,0xFC,0x80,0x3E, +0x0C,0xE4,0x00,0x9F,0xE4,0x98,0x61,0xFC,0x80,0x3E,0x0C,0xE4,0x00,0x9F,0xD0,0x98, +0x60,0x50,0x80,0x14,0xE4,0x00,0xA4,0xCA,0x98,0x60,0x98,0x8C,0xE4,0x00,0xA3,0xEC, +0x98,0x61,0x50,0x80,0x14,0xE4,0x00,0xA4,0xA8,0x98,0x61,0x98,0x8C,0x99,0x40,0xE4, +0x00,0xA3,0xC6,0x88,0x6A,0x98,0x80,0x9D,0x41,0xE4,0x00,0xAA,0x32,0x5D,0x4A,0x00, +0xD1,0x44,0xFF,0x9E,0x98,0x60,0x05,0x40,0xFF,0xC9,0x4A,0xFF,0xFF,0x88,0x8A,0xE4, +0x00,0xA2,0x20,0x88,0x8A,0x98,0x60,0xE4,0x00,0x9F,0xA8,0x88,0x8A,0x0D,0x21,0x06, +0x0D,0x41,0x02,0x98,0x60,0x9C,0x28,0xE4,0x00,0xA0,0x89,0xE4,0x00,0xAC,0x75,0xE4, +0x00,0xAE,0x19,0xE4,0x00,0xAF,0x45,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x06,0x9C,0x1C, +0x21,0xB0,0x0E,0xE1,0x10,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x06,0x90,0x0D,0x41,0x4C, +0x0D,0x61,0x48,0x0D,0x81,0x44,0x0D,0xE1,0x38,0x0E,0x01,0x34,0x0E,0x21,0x30,0x0E, +0x41,0x2C,0x0E,0x61,0x28,0x0E,0x81,0x24,0x0D,0xA1,0x40,0x0D,0xC1,0x3C,0x0E,0xA1, +0x20,0x0E,0xC1,0x1C,0x0E,0xE1,0x0C,0xC2,0x60,0x10,0x01,0xC2,0x40,0x10,0x01,0xFE, +0x73,0x06,0xB0,0xFE,0x52,0x06,0xA8,0xC2,0x20,0x10,0x01,0xC2,0x00,0x10,0x01,0xFE, +0x31,0x06,0xA0,0xFE,0x10,0x06,0xB4,0xC1,0xE0,0x10,0x01,0xC1,0x8F,0xFF,0xE1,0xFD, +0xEF,0x06,0xAC,0x9B,0x80,0xC2,0x98,0x00,0x21,0xC0,0xD8,0x00,0x21,0x13,0x53,0x00, +0x0E,0xF2,0x02,0x0D,0x51,0x02,0x0F,0xB0,0x02,0x0F,0x6F,0x02,0x99,0x60,0xC9,0x8C, +0xFF,0xFF,0x88,0xFC,0x53,0x20,0xFF,0xFE,0x94,0xB8,0xA6,0xFC,0xC6,0xB8,0xAC,0xE4, +0x00,0x01,0xC5,0x41,0x14,0xC4,0x9F,0x01,0x11,0x08,0x00,0x8D,0xA8,0x5D,0xAD,0x00, +0xE4,0x00,0x00,0x11,0x9B,0x00,0x89,0xB8,0x5D,0x18,0x00,0xD7,0xC8,0xFF,0x45,0xC3, +0x18,0x00,0x21,0xFF,0x18,0xB8,0xA6,0x8F,0x0B,0x99,0x00,0x12,0xB8,0x00,0xCF,0x0D, +0x00,0x0A,0x1E,0xD5,0xFF,0x8F,0x06,0x0E,0xC1,0x08,0x0F,0x01,0x14,0xE4,0x00,0x01, +0x37,0x0F,0x01,0x16,0xCD,0xE8,0x00,0x0A,0x8D,0xF8,0x0A,0xCF,0x00,0x0E,0xC1,0x04, +0x0F,0x01,0x0E,0x0E,0xC1,0x0A,0xD5,0x16,0x00,0x3A,0x0B,0x0F,0x0A,0x0D,0xE1,0x06, +0xD5,0xE4,0x03,0xB4,0xD4,0x98,0x03,0x94,0x8D,0xCD,0x5D,0xCE,0x00,0xCF,0x0E,0x00, +0x0A,0x8F,0x06,0x09,0xF8,0x06,0x0B,0x18,0x08,0x4F,0x18,0x50,0x41,0xEF,0x23,0x8D, +0xF8,0xFD,0xEF,0x02,0x00,0x4D,0xEF,0x52,0x5D,0xEF,0x06,0x41,0xEF,0x7B,0x43,0x03, +0x7D,0x4E,0xD8,0xFA,0x47,0x16,0xC6,0x43,0x18,0xB5,0xD7,0x0C,0x01,0x4C,0xC3,0x20, +0x1F,0xE4,0x20,0x00,0x2D,0x89,0x5D,0x89,0x97,0x8B,0x3A,0x88,0xFC,0x8B,0xAA,0x8A, +0xEC,0x8B,0x59,0x8B,0x87,0x8B,0x78,0x89,0x4F,0x89,0x98,0x88,0xEE,0x8B,0x3E,0xE4, +0x00,0x00,0x2F,0xC3,0x40,0x1F,0xE0,0x20,0x00,0x1D,0xD6,0xF8,0x00,0x60,0x8B,0xAF, +0x8A,0xF8,0x8B,0x5E,0x8B,0x8E,0x9D,0x01,0x5D,0xC8,0x00,0xD6,0xAE,0xFB,0x35,0x9D, +0x61,0x5F,0xCB,0x00,0x0E,0xC1,0x12,0xD6,0xDE,0xF9,0x6D,0xC3,0x00,0x10,0x01,0x1B, +0x53,0x00,0xFF,0x18,0x06,0xAC,0x0E,0xF2,0x00,0x0D,0x51,0x00,0x0F,0xB0,0x00,0x0F, +0x78,0x00,0xC3,0x20,0x1F,0xE0,0x20,0x01,0x55,0xCF,0x9C,0x00,0x0A,0xCC,0xE7,0x00, +0x0A,0x8C,0xE6,0x0B,0x07,0x04,0x4F,0x18,0x50,0x8C,0xDC,0x08,0x67,0x02,0x0B,0x86, +0x02,0x40,0x63,0x23,0x0B,0x46,0x04,0x8C,0x78,0x43,0x1B,0xBC,0xFC,0x63,0x02,0x00, +0x4C,0x63,0x52,0x23,0x00,0xA8,0xC2,0xE0,0x1F,0xE0,0x20,0x00,0x8D,0x40,0x63,0xBB, +0x40,0x9C,0x23,0x4E,0xFA,0x50,0x8E,0xE4,0xFE,0xF7,0x02,0x00,0x4E,0xF7,0x52,0x43, +0x77,0xDB,0x8C,0x7B,0x40,0x63,0xC0,0xE4,0x00,0x00,0x0D,0x88,0x64,0x0E,0xC1,0x1E, +0x0E,0xA1,0x22,0x0E,0x81,0x26,0x0E,0x61,0x2A,0x0E,0x41,0x2E,0x0E,0x21,0x32,0x0E, +0x01,0x36,0x0D,0xE1,0x3A,0x0D,0xC1,0x3E,0x0D,0xA1,0x42,0x0D,0x81,0x46,0x0D,0x61, +0x4A,0x0D,0x41,0x4E,0x1B,0x25,0x00,0x1C,0x21,0x50,0x85,0x29,0x8B,0x23,0xC2,0xE0, +0x10,0x01,0x5C,0xA5,0x00,0xF2,0xF7,0x06,0x9C,0x98,0x60,0xD6,0xE5,0x0C,0xB9,0xD3, +0x3F,0x0C,0x98,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xC3,0x60,0x10,0x01,0xF2, +0xF7,0x06,0x95,0xFF,0x18,0x06,0x93,0xFF,0x7B,0x06,0x94,0x22,0xE8,0x42,0x13,0x18, +0x00,0x5F,0x08,0x9B,0x20,0x00,0x51,0xE4,0x00,0x01,0x3B,0xD2,0xE1,0x04,0xCE,0x13, +0x18,0x00,0x5F,0x05,0x93,0x20,0x02,0x3D,0x24,0xA4,0x4B,0x9B,0x43,0x43,0x5A,0x2D, +0x4F,0x5A,0x08,0x5F,0x5A,0x00,0xE4,0x00,0x00,0x37,0x20,0xA8,0x54,0x9B,0x44,0x43, +0x5A,0x2D,0x4F,0x5A,0x08,0x5F,0x5A,0x00,0x20,0xAC,0xEE,0xE4,0x00,0x00,0x51,0x9B, +0x43,0x9A,0xE0,0x13,0x9B,0x00,0x8B,0x17,0xE4,0x00,0x00,0x27,0x4F,0xB8,0x08,0x9F, +0x01,0x8F,0xBC,0x5F,0x18,0x00,0x8E,0xFD,0x5E,0xF7,0x00,0xD7,0x05,0xFF,0x8E,0xE4, +0x00,0x00,0x49,0x5E,0xE0,0x21,0x53,0x00,0x1D,0x52,0xE0,0x2F,0x4A,0xF8,0xB8,0xE4, +0x00,0x00,0x4B,0x5E,0xE0,0x29,0x53,0x00,0x41,0x52,0xE0,0x29,0x4A,0xF8,0xB8,0xE4, +0x00,0x00,0x2B,0x27,0x04,0x33,0x9F,0x9F,0x4F,0x18,0x08,0xE4,0x00,0x00,0x8B,0x9B, +0x0A,0x20,0xA9,0x10,0x13,0x1B,0x00,0x9C,0xBF,0x9F,0x1F,0x4C,0xA5,0x08,0x8F,0x05, +0xE4,0x00,0x00,0x65,0x9B,0x43,0x13,0xBB,0x00,0x43,0x5A,0x2D,0x9A,0xE0,0x4F,0x5A, +0x08,0x8B,0x77,0x5F,0x5A,0x00,0xE4,0x00,0x00,0x21,0x8F,0x9D,0x9F,0x61,0x8E,0xFC, +0x5F,0x7B,0x00,0x5E,0xF7,0x00,0x4F,0x9B,0x08,0xD7,0x65,0xFF,0x8E,0x1F,0x1D,0xFF, +0x8F,0x1C,0x5F,0x18,0x00,0x4F,0x5A,0x08,0xC3,0xB8,0x00,0x21,0xFF,0xBD,0xB7,0x40, +0x8F,0xBA,0x9B,0x40,0xE4,0x00,0x01,0x0B,0x4F,0x7A,0x08,0x8F,0x7D,0x0B,0x9B,0x00, +0xD7,0x3C,0x03,0xBC,0x0B,0x7B,0x02,0xD7,0x79,0x03,0x84,0x8E,0xFA,0xC3,0xB8,0x00, +0x21,0xCF,0x17,0x00,0x06,0xFF,0xBD,0xB7,0x5C,0x8F,0x1D,0x1F,0x57,0x01,0x14,0xD8, +0x00,0xCF,0x5A,0x00,0x06,0x09,0x18,0x02,0x8F,0x5D,0x98,0x60,0x0B,0xB8,0x04,0x14, +0xBA,0x00,0x0B,0xDA,0x02,0x0B,0x1A,0x04,0xD7,0x9B,0x02,0x52,0x42,0xF9,0xDD,0x40, +0x77,0x33,0x43,0x3C,0xCD,0x43,0x59,0x2B,0x43,0xD9,0xF3,0x8F,0x43,0x40,0x77,0x43, +0x43,0x5A,0x23,0x8C,0x7E,0x8C,0x7A,0x42,0xF7,0xEB,0x40,0x83,0x23,0x97,0x41,0x43, +0x39,0xC3,0xCB,0x5A,0x86,0xA0,0x8F,0x37,0x40,0x64,0xD0,0x43,0x7C,0xDD,0x8C,0x79, +0x40,0x63,0xD8,0xE4,0x00,0x00,0x1F,0x9F,0x41,0x5F,0x7A,0x00,0xD7,0x1B,0xFB,0xE5, +0x98,0x60,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF8,0x77,0x06,0x95,0xC2,0xE0,0x10,0x01, +0xF8,0x97,0x06,0x92,0xC2,0xE0,0x10,0x01,0xF8,0xB7,0x06,0x93,0xC2,0xE0,0x10,0x01, +0xF8,0xD7,0x06,0x94,0xC2,0xE0,0x10,0x01,0xEC,0xF7,0x06,0x91,0x85,0x29,0x9A,0xFF, +0x1C,0x21,0xD8,0x0D,0xE1,0x0C,0x1A,0xE1,0x07,0xC1,0xE0,0x10,0x01,0xFD,0xEF,0x06, +0xB0,0x1A,0xEF,0x00,0x52,0xE0,0xFF,0xC3,0x00,0x10,0x01,0x0D,0x41,0x20,0x0D,0x61, +0x1C,0x0D,0xA1,0x14,0x0D,0xC1,0x10,0xCB,0x20,0xFF,0xFF,0xC1,0xC0,0x10,0x01,0xEF, +0x38,0x06,0xB8,0xFD,0xCE,0x06,0xAC,0xC1,0xA0,0x10,0x01,0x0E,0xEE,0x00,0xFD,0xAD, +0x06,0xA8,0x0D,0x21,0x24,0x0E,0xED,0x00,0x0D,0x81,0x18,0xC2,0xE0,0x10,0x01,0x0E, +0x01,0x08,0x89,0x63,0xF3,0x17,0x06,0x95,0x89,0x44,0x88,0x65,0xC2,0xE0,0x10,0x01, +0x23,0x08,0x56,0xC3,0x00,0x10,0x01,0xF3,0x18,0x06,0x93,0x5F,0x08,0x9B,0x20,0x00, +0x61,0xE4,0x00,0x00,0x37,0x23,0x04,0x5E,0xC3,0x00,0x10,0x01,0xF3,0x18,0x06,0x93, +0x5F,0x05,0x93,0x20,0x00,0x25,0x9B,0x05,0xE4,0x00,0x00,0x0D,0x9B,0x04,0xFB,0x17, +0x06,0x9C,0xC2,0x00,0x10,0x01,0x0E,0xEB,0x02,0xEE,0xF0,0x06,0xB8,0x0A,0xE6,0x06, +0x0C,0x8B,0x02,0xD4,0x97,0x04,0xCC,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0x71,0x53, +0x18,0x01,0x1C,0xA1,0x07,0xEF,0x17,0x08,0x71,0xE7,0xFF,0xF6,0x9C,0x0C,0x6B,0x00, +0x0C,0x8A,0x02,0xED,0x90,0x06,0xBA,0x10,0xAF,0x00,0x88,0x6C,0xE7,0xFF,0xFA,0xC0, +0xC2,0xE0,0x10,0x01,0x89,0x63,0xEC,0x77,0x06,0x98,0x10,0xA1,0x07,0x0C,0x8A,0x02, +0x88,0x6C,0xE7,0xFF,0xFA,0x94,0xC3,0x00,0x10,0x01,0xEC,0x78,0x06,0xA4,0x0F,0x6E, +0x02,0x0F,0x2D,0x02,0x0F,0x4A,0x02,0x43,0x1B,0xCC,0x23,0x00,0xEC,0xC3,0x20,0x1F, +0xE0,0x20,0x00,0xD1,0xC3,0x80,0x10,0x01,0xEF,0xBC,0x06,0xA2,0xC3,0x80,0x10,0x01, +0xEF,0x9C,0x06,0xB6,0x43,0xBD,0xE5,0x4F,0x9D,0xFA,0x47,0xBC,0xEE,0x43,0x9D,0xE5, +0xD7,0x1C,0x00,0xAC,0x41,0x6B,0xDB,0x42,0xE3,0xCB,0x8E,0xEB,0x43,0x17,0xC0,0x8F, +0x58,0xE4,0x00,0x01,0x55,0x42,0xFA,0x1C,0xE4,0x00,0x01,0x5B,0xC9,0x80,0x07,0xFF, +0x42,0xEC,0xBD,0xD6,0xE4,0x05,0x2C,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0x71,0x53, +0x18,0x01,0x40,0x8C,0x25,0xEF,0x17,0x08,0x71,0x1C,0xA1,0x07,0xE7,0xFF,0xF5,0x56, +0x40,0x6C,0x1D,0x0C,0x6B,0x00,0xEE,0xF0,0x06,0xBA,0x0C,0x8A,0x02,0x41,0x8C,0xBD, +0x10,0xAF,0x00,0x88,0x6C,0xE7,0xFF,0xF9,0x6E,0xC2,0xE0,0x10,0x01,0x89,0x63,0xEC, +0x77,0x06,0x98,0x10,0xA1,0x07,0x0C,0x8A,0x02,0x88,0x6C,0xE7,0xFF,0xF9,0x42,0xC3, +0x00,0x10,0x01,0xEC,0x78,0x06,0xA4,0x0F,0x6E,0x02,0x0F,0x2D,0x02,0x0F,0x4A,0x02, +0x43,0x1B,0xCC,0x23,0x00,0xFC,0xC3,0x20,0x1F,0xE0,0x20,0x00,0xE1,0xC3,0x80,0x10, +0x01,0xEF,0xBC,0x06,0xA2,0xC3,0x80,0x10,0x01,0xEF,0x9C,0x06,0xB6,0x43,0xBD,0xE5, +0x4F,0x9D,0xFA,0x47,0xBC,0xEE,0x43,0x9D,0xE5,0xD7,0x1C,0x00,0xCC,0x41,0x6B,0xDB, +0x42,0xE3,0xCB,0x8E,0xEB,0x43,0x17,0xC0,0x43,0x5A,0xC5,0x0F,0x4A,0x00,0xE4,0x00, +0x00,0x15,0x42,0xFA,0x1D,0x0E,0xEA,0x00,0x0E,0x01,0x0A,0x0D,0xE1,0x0E,0x0D,0xC1, +0x12,0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26, +0x1C,0x21,0x28,0x85,0x29,0x1C,0x21,0xD0,0x0D,0x41,0x28,0x0D,0x61,0x24,0x0D,0x81, +0x20,0x0D,0xA1,0x1C,0x0D,0xC1,0x18,0x0D,0xE1,0x14,0x0E,0x01,0x10,0x0E,0x21,0x0C, +0x0E,0x41,0x08,0x5E,0x23,0x00,0x0E,0x61,0x04,0x56,0x11,0x03,0x4E,0xF1,0x11,0x5E, +0x00,0x09,0x99,0xC0,0x4A,0x41,0x01,0x99,0x80,0x9A,0x64,0x0D,0x21,0x2C,0x8E,0x57, +0x89,0x44,0x89,0xAE,0x89,0x6C,0x99,0xE0,0x42,0x73,0x25,0xE4,0x00,0x00,0xF3,0x42, +0xF3,0x54,0xD6,0xF1,0x01,0xD8,0x22,0x04,0x4A,0x51,0xC0,0x10,0x11,0x6A,0x00,0x89, +0xAE,0x51,0x80,0x10,0xE4,0x00,0x00,0x6B,0x22,0x08,0x4A,0x51,0xC0,0x10,0x11,0x6A, +0x00,0x11,0x8A,0x01,0x89,0xAE,0xE4,0x00,0x00,0x47,0x22,0x0C,0x7E,0x11,0x6A,0x00, +0x11,0x8A,0x01,0x11,0xAA,0x02,0x51,0xC0,0x10,0xE4,0x00,0x00,0x21,0x11,0x6A,0x00, +0x11,0x8A,0x01,0x11,0xAA,0x02,0x11,0xCA,0x03,0x4E,0xEC,0x80,0x4C,0x8C,0xC0,0x8C, +0x97,0x4E,0xEE,0x80,0x4F,0x0B,0x40,0x4C,0xAE,0xC0,0x8C,0xB7,0x4E,0xED,0x40,0x88, +0x6F,0x8C,0x8B,0x8C,0xAD,0x8C,0x98,0x8C,0xB7,0x9D,0xE1,0xE4,0x00,0x90,0x48,0x5D, +0xEF,0x00,0x9D,0x44,0xD5,0xF2,0xFC,0x5E,0x0E,0x61,0x06,0x0E,0x41,0x0A,0x0E,0x21, +0x0E,0x0E,0x01,0x12,0x0D,0xE1,0x16,0x0D,0xC1,0x1A,0x0D,0xA1,0x1E,0x0D,0x81,0x22, +0x0D,0x61,0x26,0x0D,0x41,0x2A,0x0D,0x21,0x2E,0x1C,0x21,0x30,0x85,0x29,0xC2,0xE0, +0x10,0x01,0xEE,0xF7,0x00,0xE2,0x5E,0xE0,0x41,0x1C,0x21,0xE8,0x0D,0x61,0x0C,0x0D, +0x81,0x08,0x0D,0xA1,0x04,0x0D,0x21,0x14,0x0D,0x41,0x10,0x89,0x63,0x5D,0x84,0x00, +0x49,0xA1,0x01,0xE4,0x00,0x54,0xDE,0xC3,0x14,0x00,0x01,0xCB,0x18,0x7A,0x30,0x0A, +0xF8,0x01,0xC6,0xF7,0x01,0x00,0x5E,0xF7,0x04,0x22,0xE3,0xD8,0xFC,0x60,0x01,0x00, +0x99,0x40,0xE4,0x00,0x19,0xEC,0xE4,0x00,0x00,0x31,0x88,0x6A,0x98,0x81,0x88,0xAD, +0x9D,0x41,0xE4,0x00,0xA5,0x16,0x5D,0x4A,0x00,0x0C,0x6B,0x01,0x9D,0x62,0xD5,0x4C, +0xFF,0x66,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21, +0x16,0x1C,0x21,0x18,0x85,0x29,0xFC,0x21,0xFD,0xF0,0xED,0x41,0x02,0x08,0xED,0xE1, +0x01,0xF4,0xEE,0x01,0x01,0xF0,0xED,0x21,0x02,0x0C,0xED,0x61,0x02,0x04,0xED,0x81, +0x02,0x00,0xED,0xA1,0x01,0xFC,0xED,0xC1,0x01,0xF8,0xEE,0x21,0x01,0xEC,0xEE,0x41, +0x01,0xE8,0xEE,0x61,0x01,0xE4,0xC2,0x00,0x10,0x01,0xC1,0xE0,0x10,0x01,0x89,0x43, +0xFE,0x10,0x07,0xE8,0xFD,0xEF,0x08,0x06,0x20,0x60,0x30,0x20,0x68,0x88,0x20,0x64, +0x30,0x24,0x64,0x63,0x99,0x80,0xE4,0x00,0x00,0x0D,0x99,0x81,0xCD,0x8C,0x00,0x1A, +0x51,0x60,0x1A,0x8D,0x90,0xE4,0x00,0x00,0x29,0xD0,0x64,0x00,0x62,0x99,0x80,0x89, +0x6C,0xE4,0x00,0x00,0x11,0x89,0x8F,0x99,0x63,0x9A,0xE0,0x89,0xC1,0x53,0x20,0x10, +0xE4,0x00,0x00,0x19,0x43,0x0E,0xBC,0x9E,0xE1,0x1B,0x38,0x00,0x5F,0x17,0x00,0xD5, +0x78,0xFF,0xAD,0x88,0x6B,0x88,0x81,0x99,0xA3,0xE7,0xFF,0xFC,0x18,0x89,0xC1,0xFE, +0x20,0xFE,0xB0,0xCA,0x40,0x01,0x50,0x52,0x60,0x3F,0x1C,0x61,0x60,0x88,0x8B,0xE7, +0xFF,0xFD,0xBE,0x1F,0x21,0x60,0x8B,0x01,0x9B,0x41,0xE4,0x00,0x00,0x93,0x0A,0xF9, +0x00,0xC2,0xFF,0xD5,0xEC,0x20,0x00,0x39,0x43,0x71,0xBD,0xC3,0x60,0x2A,0x0C,0xE4, +0x00,0x00,0x0F,0x5E,0xE0,0x19,0x4B,0x61,0x01,0x23,0x60,0x98,0xFE,0xF7,0x01,0x50, +0x13,0x58,0x00,0x42,0xF7,0x90,0x8E,0xFA,0x5E,0xF7,0x06,0x26,0xFC,0x34,0x5E,0xE7, +0xF1,0x4A,0xF7,0x98,0xE4,0x00,0x00,0x0D,0x9A,0xE0,0x1A,0xF8,0x00,0x9B,0x40,0x9F, +0x01,0x9F,0x22,0x42,0xF8,0x75,0x5E,0xF7,0x00,0xD5,0x77,0xFD,0xAD,0x23,0x40,0x24, +0x9A,0xE0,0xE4,0x00,0x00,0x51,0x88,0x6B,0x88,0x81,0x9D,0xBF,0xE7,0xFF,0xFB,0x12, +0x5D,0xAD,0x00,0x21,0xA2,0x1E,0xE7,0xFF,0xFF,0xD5,0x43,0x0C,0xBC,0x1F,0x21,0x00, +0x8F,0x37,0x9E,0xE1,0x13,0x39,0x00,0x1B,0x38,0x00,0x5F,0x17,0x00,0xD5,0x78,0xFF, +0x6D,0x21,0x40,0x64,0x21,0x48,0x28,0x21,0x44,0x8C,0xD1,0x44,0x01,0xCA,0x99,0x60, +0x99,0x80,0x88,0x8B,0x89,0x4C,0xE4,0x00,0x00,0x77,0xC1,0x80,0x10,0x01,0x99,0x60, +0x88,0x90,0xFD,0x8C,0x0A,0x9C,0xE4,0x00,0x00,0x2D,0xC0,0x80,0x10,0x01,0xC1,0x80, +0x10,0x01,0x99,0x61,0xFC,0x84,0x08,0x02,0xFD,0x8C,0x0B,0x04,0x51,0x40,0x1A,0xE4, +0x00,0x00,0x25,0xC1,0x80,0x10,0x01,0x99,0x68,0x88,0x8F,0xFD,0x8C,0x0B,0x28,0x99, +0x43,0x88,0x6A,0xE7,0xFF,0xFA,0x24,0xFD,0xA1,0x01,0x20,0x88,0x8A,0x88,0x6D,0xE7, +0xFF,0xFB,0xDE,0x9A,0xE0,0xE4,0x00,0x00,0x33,0x4F,0x17,0x10,0x4F,0x37,0x08,0x8F, +0x0C,0x8F,0x2D,0x9E,0xE1,0x0B,0x39,0x00,0x4F,0x39,0x40,0x0F,0x38,0x00,0x5F,0x17, +0x00,0xD5,0x58,0xFF,0x45,0x88,0x6B,0xE4,0x00,0x52,0x3C,0xED,0x21,0x02,0x0E,0xEE, +0x61,0x01,0xE6,0xEE,0x41,0x01,0xEA,0xEE,0x21,0x01,0xEE,0xEE,0x01,0x01,0xF2,0xED, +0xE1,0x01,0xF6,0xED,0xC1,0x01,0xFA,0xED,0xA1,0x01,0xFE,0xED,0x81,0x02,0x02,0xED, +0x61,0x02,0x06,0xED,0x41,0x02,0x0A,0xFC,0x21,0x02,0x10,0x85,0x29,0x9C,0x38,0xC2, +0xE0,0x10,0x01,0x0D,0x21,0x04,0xFE,0xF7,0x07,0xE8,0x9B,0x00,0x13,0x37,0x00,0x4F, +0x39,0x08,0x9E,0xE1,0x8F,0x19,0xC3,0x20,0x10,0x01,0xFF,0x39,0x08,0x02,0xD6,0xF9, +0xFF,0x76,0xC2,0xE0,0x10,0x01,0xF3,0x57,0x08,0x06,0xFE,0xF7,0x08,0x06,0x13,0x37, +0x02,0x13,0x77,0x01,0x98,0x60,0x42,0xFB,0xD4,0x98,0x80,0x8E,0xF9,0x53,0x20,0x37, +0x4E,0xF7,0x08,0x8E,0xF8,0x97,0x03,0x4E,0xF7,0x09,0xCB,0x18,0xD0,0x8F,0xCE,0xF7, +0x03,0x5B,0x42,0xF7,0xC9,0xCE,0xF7,0x00,0x1D,0xD6,0xF8,0x00,0xA1,0x97,0x2F,0x98, +0x60,0xCB,0x39,0x42,0x3F,0x98,0x82,0xD6,0xF9,0x00,0x31,0x98,0x87,0xE4,0x00,0x9A, +0x14,0x0D,0x21,0x06,0x98,0x61,0x98,0x80,0x9C,0x28,0xE4,0x00,0x99,0xFB,0x9C,0x38, +0x98,0x80,0x0D,0x21,0x04,0x98,0x66,0xE4,0x00,0x2E,0x6A,0x98,0x60,0xE7,0xFF,0xFA, +0xF2,0x98,0x66,0x98,0x87,0xE4,0x00,0x2E,0x4E,0x0D,0x21,0x06,0x98,0x64,0x9C,0x28, +0xE7,0xFF,0xFA,0xCD,0xC2,0xE0,0x10,0x01,0x5C,0xA0,0x29,0xF3,0x37,0x0B,0x1A,0x53, +0x40,0x40,0x52,0xE0,0x20,0xC3,0x60,0x10,0x01,0x4B,0x5A,0xB8,0xFF,0x7B,0x09,0x0C, +0x20,0x60,0x6C,0xE4,0x00,0x00,0x55,0x4F,0x17,0x08,0x9E,0xE1,0x8F,0x1B,0x0B,0x18, +0x00,0xD7,0x58,0x00,0x78,0x98,0x61,0xE4,0x00,0x00,0xD9,0x9A,0xE0,0x43,0x40,0xD5, +0x5F,0x17,0x00,0xD7,0x38,0xFF,0x25,0x98,0x60,0xE4,0x00,0x00,0xB5,0x20,0x67,0xEA, +0x9A,0xE0,0x20,0x80,0xA6,0x9A,0xE0,0x43,0x80,0xD5,0xE4,0x00,0x00,0x7D,0x4F,0x17, +0x08,0x8F,0x1B,0x0B,0x18,0x00,0x4F,0x98,0xFA,0x47,0x1C,0xC6,0x43,0x18,0xE5,0x0B, +0x84,0x00,0xD7,0x1C,0x00,0x38,0x0F,0x04,0x01,0x9E,0xE1,0x5F,0x17,0x00,0xD7,0x38, +0xFF,0x05,0xE7,0xFF,0xFF,0xA7,0x4F,0x17,0x08,0x8F,0x1B,0x0B,0x18,0x00,0xD7,0x98, +0xFD,0x3C,0x9E,0xE1,0xD7,0x1A,0xFD,0x0C,0x5F,0x17,0x00,0xD7,0x38,0xFF,0x5D,0xE7, +0xFF,0xFF,0x51,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xF3,0xB7,0x0B, +0x1A,0xC3,0xC0,0x10,0x01,0x9A,0xE0,0xFF,0x18,0x06,0xC0,0x8B,0x37,0xFF,0xDE,0x09, +0x0C,0xE4,0x00,0x00,0x5B,0x4F,0x57,0x08,0x0B,0x98,0x00,0x8F,0x5E,0x0B,0x5A,0x00, +0x43,0x9A,0xE5,0x4F,0x7C,0xFA,0x47,0x9B,0xE6,0x43,0x7C,0xDD,0x5F,0x66,0x11,0x20, +0x00,0x21,0x9F,0x21,0x5F,0x39,0x00,0x0F,0x58,0x01,0x9E,0xE1,0x9F,0x02,0x5F,0x57, +0x00,0xD7,0xBA,0xFE,0xA5,0x5F,0x20,0x93,0x48,0x61,0x01,0x85,0x29,0xC2,0xE0,0x10, +0x01,0xC3,0x40,0x10,0x01,0xF3,0x37,0x0B,0x1A,0xC3,0x60,0x10,0x01,0x9A,0xE0,0xFF, +0x5A,0x06,0xC0,0xFF,0x7B,0x09,0x0C,0xE4,0x00,0x00,0x29,0x4F,0x17,0x08,0x9E,0xE1, +0x43,0x9A,0xC4,0x8F,0x1B,0x0B,0x18,0x01,0x0F,0x1C,0x01,0x5F,0x17,0x00,0xD7,0x38, +0xFF,0x6D,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x8A,0xC2,0xE0,0x10,0x01, +0x9C,0x38,0xF8,0x17,0x08,0x83,0x0D,0x21,0x04,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08, +0x9D,0x20,0x64,0x26,0x98,0x60,0xE4,0x00,0x00,0x0D,0x98,0x64,0x98,0x80,0xE4,0x00, +0x2F,0xA0,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x06,0xEC,0x17,0x06,0xBC,0x9C,0x28,0xE4, +0x00,0x4B,0xFB,0x1C,0x21,0xE8,0xC2,0xE0,0x10,0x01,0x0D,0x41,0x10,0xEB,0x17,0x00, +0xD5,0x0D,0x21,0x14,0x0D,0x61,0x0C,0x0C,0x01,0x07,0x89,0x43,0xC7,0x18,0x01,0x00, +0x98,0x60,0xD3,0x00,0x06,0x3A,0xEB,0x17,0x00,0xD5,0xC7,0x18,0xFE,0xFF,0xEF,0x17, +0x00,0xD5,0xE4,0x00,0x46,0x32,0xE4,0x00,0x47,0x3E,0x21,0x44,0x36,0x98,0x61,0xE4, +0x00,0x7B,0x62,0xE4,0x00,0x00,0x11,0xE4,0x00,0x7B,0x9C,0xC2,0xE0,0x10,0x01,0xED, +0x77,0x06,0xBE,0x5D,0x60,0x01,0x0C,0x01,0x07,0x98,0x61,0x1C,0x81,0x06,0x98,0xA1, +0x48,0x84,0x00,0x88,0xCA,0xE7,0xFF,0xFC,0x5E,0xC2,0xE0,0x10,0x01,0x20,0x60,0xE6, +0xF3,0x17,0x08,0x8A,0x9F,0x01,0xFB,0x17,0x08,0x8A,0x0A,0xE1,0x06,0xD2,0xEF,0x00, +0x94,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x08,0x83,0x9F,0x01,0xFB,0x17,0x08,0x83,0x98, +0x63,0x21,0x44,0x36,0x98,0x81,0xE4,0x00,0x78,0x06,0xE4,0x00,0x00,0x6B,0xE4,0x00, +0x78,0x5C,0xE4,0x00,0x00,0x5B,0xF8,0x17,0x08,0x8A,0xC2,0xE0,0x10,0x01,0xF8,0x17, +0x08,0x83,0x21,0x63,0x76,0x0A,0xE1,0x06,0x5E,0xEC,0x11,0x23,0xFF,0x51,0x21,0x44, +0x36,0x98,0x61,0xE4,0x00,0x4F,0xEA,0xE4,0x00,0x00,0x11,0xE4,0x00,0x50,0x24,0x9B, +0x01,0xC2,0xE0,0x10,0x01,0x98,0x61,0xEF,0x17,0x06,0xBC,0xC2,0xE0,0x10,0x01,0xF3, +0x17,0x08,0x9D,0x9F,0x01,0xFB,0x17,0x08,0x9D,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D, +0x21,0x16,0x1C,0x21,0x18,0x85,0x29,0x9C,0x38,0x0D,0x21,0x04,0x20,0x64,0x26,0x98, +0x60,0xE4,0x00,0x00,0x0D,0x98,0x64,0x98,0x80,0xE4,0x00,0x2D,0x6A,0x0D,0x21,0x06, +0x9C,0x28,0xE4,0x00,0x49,0xD5,0x98,0x81,0x98,0x60,0x88,0xA4,0xE7,0xFF,0xA7,0xEB, +0xC2,0xE0,0x10,0x01,0x98,0x61,0xF2,0xF7,0x08,0x8A,0xD2,0xEA,0x00,0x95,0xC2,0xE0, +0x10,0x01,0xF2,0xF7,0x08,0x83,0x5E,0xE0,0xBB,0x48,0x61,0x01,0x85,0x29,0xC2,0xE0, +0x10,0x01,0xF2,0xF7,0x08,0x9D,0x5E,0xE1,0xDB,0x48,0x61,0x01,0x85,0x29,0xC2,0xE0, +0x10,0x01,0xFE,0xF7,0x00,0x00,0x0C,0x17,0x00,0x0C,0x17,0x19,0x0C,0x17,0x1B,0xEC, +0x17,0x00,0xA1,0xEC,0x17,0x00,0xA3,0xEC,0x17,0x00,0xA5,0xEC,0x17,0x00,0xA7,0xF8, +0x17,0x00,0xA8,0xEC,0x17,0x00,0xAC,0x1F,0x17,0x08,0xEC,0x17,0x00,0xA1,0x0F,0x17, +0x04,0x1F,0x17,0x20,0x0F,0x17,0x1C,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x00,0xD9,0x53, +0x18,0x02,0xEF,0x17,0x00,0xD9,0x85,0x29,0xC3,0x20,0x10,0x01,0xFF,0x19,0x00,0x00, +0x1E,0xF8,0x20,0x5C,0x63,0x04,0x0E,0xF8,0x1C,0x9A,0xE0,0xE4,0x00,0x00,0x29,0x0F, +0x38,0x1E,0x43,0x44,0xBC,0x8F,0x37,0x13,0x5A,0x00,0x9E,0xE1,0x1B,0x59,0x00,0x5F, +0x37,0x04,0xD4,0x79,0xFF,0x6D,0x9A,0xE1,0xEE,0xF8,0x00,0xAC,0x85,0x29,0x9C,0x38, +0x0D,0x21,0x04,0x0D,0x41,0x00,0x5D,0x43,0x00,0xE7,0xFF,0xFE,0xEA,0x88,0x6A,0xE4, +0x00,0x95,0xF0,0x0D,0x21,0x06,0x0D,0x41,0x02,0x9C,0x28,0x85,0x29,0x1C,0x21,0xE0, +0x0D,0x41,0x18,0x0D,0x61,0x14,0x0D,0x81,0x10,0x0D,0xA1,0x0C,0x0D,0xC1,0x08,0x0D, +0xE1,0x04,0x0D,0x21,0x1C,0x0E,0x01,0x00,0xC1,0xA0,0x10,0x01,0xE4,0x00,0x97,0x62, +0xC1,0x80,0x10,0x01,0xC1,0xC0,0x10,0x01,0xC1,0xE0,0x10,0x01,0x5C,0x63,0x00,0xFD, +0xAD,0x00,0xC8,0xFD,0x8C,0x08,0x1A,0xFD,0x6E,0x00,0xC0,0xFD,0x4F,0x00,0x00,0xD0, +0x60,0x23,0xFA,0xE4,0x00,0x97,0x60,0x5C,0x63,0x00,0x20,0x60,0xDC,0x0C,0x0A,0x19, +0xE4,0x00,0x97,0xEC,0xE4,0x00,0x0D,0x38,0xEC,0x6A,0x00,0xA5,0xE4,0x00,0x00,0x4B, +0x0E,0xEA,0x06,0x0A,0x0A,0x19,0x8E,0x17,0xE4,0x00,0x97,0xF0,0x18,0x70,0x00,0x0A, +0xEA,0x19,0xD2,0xEE,0x00,0x8D,0x0A,0xEA,0x19,0x9E,0xE1,0x5E,0xF7,0x04,0x0E,0xEA, +0x19,0x99,0xC0,0xE4,0x00,0x96,0x6E,0x5C,0x63,0x00,0x20,0x63,0x5A,0x0E,0xEA,0x06, +0x13,0x17,0x00,0x5F,0x0A,0x09,0x20,0x00,0x65,0x0A,0xEA,0x19,0xD2,0xE4,0x04,0x0E, +0xE4,0x00,0x97,0x18,0x0A,0xEA,0x19,0xD2,0xE0,0x04,0x4E,0xE4,0x00,0x0B,0x0B,0x13, +0x17,0x00,0x23,0x08,0x36,0x0A,0xEA,0x19,0x22,0xE9,0x96,0xE7,0xFF,0xFF,0xCB,0x13, +0x17,0x00,0x23,0x04,0x36,0x0A,0xEA,0x19,0x22,0xE5,0x56,0xE7,0xFF,0xFF,0xAB,0x13, +0x17,0x00,0x5F,0x0A,0x29,0x20,0x01,0x0B,0x13,0x17,0x00,0x5F,0x0A,0x49,0x23,0xFE, +0xEF,0x13,0x17,0x00,0x5F,0x0A,0x69,0x20,0x00,0xC3,0x13,0x17,0x00,0x5F,0x0A,0x89, +0x20,0x00,0x9F,0x13,0x17,0x00,0x5F,0x0B,0x09,0x20,0x00,0x7B,0x13,0x17,0x00,0x5F, +0x0B,0x29,0x23,0xFE,0x5F,0x13,0x17,0x00,0x5F,0x04,0x09,0x20,0x00,0x33,0x12,0xF7, +0x00,0x5E,0xE4,0x29,0x20,0x00,0x25,0x0A,0xEA,0x19,0x22,0xEE,0x18,0x98,0x61,0xE4, +0x00,0xA7,0x5E,0x9D,0xC1,0xC1,0xC4,0xE2,0x0E,0x23,0xFD,0x6B,0xE7,0xFF,0xFE,0xE9, +0x0E,0xEA,0x06,0x13,0x17,0x00,0xD3,0x00,0x27,0xD2,0x13,0x17,0x00,0x5F,0x0B,0x9B, +0x20,0x13,0xC1,0x13,0x17,0x00,0x5F,0x0A,0x49,0x07,0x00,0x80,0x20,0x00,0xA5,0x0B, +0x2A,0x19,0xD3,0x24,0x1B,0x16,0x13,0x37,0x01,0x13,0x57,0x02,0x12,0xF7,0x03,0x4F, +0x39,0x40,0x47,0x39,0xD5,0xC3,0x22,0x7F,0xEE,0x20,0x0D,0x2D,0x8F,0x19,0x1A,0xF8, +0x00,0xE4,0x00,0x06,0x87,0x13,0x37,0x00,0x5F,0x2A,0x69,0x20,0x02,0xCD,0x0B,0x2A, +0x19,0xD3,0x23,0x25,0x7E,0x13,0x57,0x01,0x13,0x37,0x02,0x4E,0xFA,0x40,0x46,0xF7, +0xCD,0xCB,0x20,0x14,0x00,0xC2,0xE2,0x80,0x0A,0x4A,0xF7,0xC8,0x8E,0xF8,0x0E,0xEA, +0x1C,0xFE,0xE0,0x08,0x00,0xEE,0xEA,0x00,0xA1,0xE4,0x00,0x00,0x1D,0xE4,0x00,0x0A, +0x3E,0x98,0x61,0xE4,0x00,0x0A,0x72,0xE4,0x00,0x93,0xE0,0x5C,0x63,0x00,0x20,0x63, +0xBC,0xEC,0x0A,0x00,0xA3,0xE4,0x00,0x94,0xE8,0xE4,0x00,0x94,0x7A,0xEB,0x0A,0x00, +0xA3,0xEA,0xEA,0x00,0xA1,0xD7,0x17,0x01,0x26,0xEA,0xEA,0x00,0xA3,0xEA,0xEA,0x00, +0xA1,0xE4,0x00,0x94,0x70,0xE4,0x00,0x94,0xDC,0xE4,0x00,0x94,0xA0,0xEC,0x0A,0x00, +0xA3,0xEC,0x0A,0x00,0xA1,0xE4,0x00,0x08,0x77,0xE4,0x00,0x93,0xCE,0x5C,0x63,0x00, +0x20,0x63,0x66,0xE4,0x00,0x93,0x22,0x5C,0x63,0x00,0x20,0x63,0x0C,0xEA,0xEA,0x00, +0xA3,0x0F,0x0A,0x1E,0x8E,0xF8,0x10,0x77,0x00,0xE4,0x00,0x92,0x9C,0xEA,0xEA,0x00, +0xA3,0x9E,0xE1,0x5E,0xF7,0x04,0xEE,0xEA,0x00,0xA3,0xE7,0xFF,0xFF,0x47,0x13,0x17, +0x00,0xD3,0x01,0x04,0x26,0x0A,0xEA,0x19,0xD2,0xE1,0x13,0xE6,0xFE,0xEA,0x00,0xB4, +0xEE,0xEA,0x00,0xB0,0x12,0xEB,0x00,0x22,0xE0,0x4A,0x9A,0xE8,0x53,0x00,0x52,0xFA, +0xEA,0x00,0xBC,0x9A,0xE8,0xE4,0x00,0x00,0x21,0x9A,0xE8,0x53,0x00,0x62,0xFA,0xEA, +0x00,0xBC,0x52,0xE0,0x80,0x1F,0x20,0x81,0xFB,0x2A,0x00,0xB4,0x13,0x2B,0x00,0xFB, +0x2A,0x00,0xB5,0xFB,0x0A,0x00,0xB6,0xF8,0x0A,0x00,0xB7,0x5E,0xF7,0x00,0xFA,0xEA, +0x00,0xB8,0xF8,0x0A,0x00,0xB9,0xF8,0x0A,0x00,0xBA,0xC2,0xE0,0x10,0x01,0xF8,0x0A, +0x00,0xBB,0xEB,0x17,0x00,0xD9,0xC7,0x18,0xFF,0xFD,0xEF,0x17,0x00,0xD9,0x12,0xEC, +0x00,0x52,0xF7,0x01,0x9B,0x01,0x1A,0xEC,0x00,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x08, +0x33,0xE4,0x00,0x04,0x07,0x13,0x17,0x00,0x23,0x09,0x4A,0x0B,0x0A,0x19,0xD3,0x02, +0x0F,0xB6,0x12,0xF7,0x01,0x22,0xE0,0x4A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x3D,0xF9, +0x18,0x17,0x00,0xE4,0x00,0x00,0x29,0x22,0xE4,0x5E,0xC2,0xF4,0x00,0x01,0x9B,0x01, +0xCA,0xF7,0x3D,0xF9,0x1B,0x17,0x00,0x12,0xF7,0x00,0xE4,0x00,0x00,0x2D,0xD2,0xE2, +0x0E,0x36,0xC3,0x14,0x00,0x01,0xCB,0x18,0x3D,0xF9,0x1A,0xF8,0x00,0x12,0xF8,0x00, +0x5E,0xF7,0x00,0x1A,0xEB,0x00,0xE4,0x00,0x03,0x5D,0x13,0x17,0x00,0x5F,0x0B,0x01, +0x20,0x00,0x31,0x13,0x17,0x00,0x5F,0x0B,0x29,0x20,0x04,0xB5,0x0B,0x0A,0x19,0x23, +0x0C,0xB6,0xC3,0x00,0x10,0x01,0x9B,0x21,0xEF,0x38,0x06,0x88,0x13,0x17,0x01,0x12, +0xF7,0x02,0x4F,0x18,0x40,0x47,0x18,0xBD,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x08,0x20, +0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0x34,0xE4,0x00,0x02,0xD9,0x0B,0x0A,0x19,0xD3, +0x04,0x0B,0x2E,0xC3,0x00,0x10,0x01,0xEF,0x18,0x06,0xFE,0x23,0x00,0x68,0xEB,0x2A, +0x00,0xA5,0xEB,0x0A,0x00,0xA7,0x43,0x19,0xC5,0xD3,0x0A,0x00,0x60,0xF3,0x0A,0x00, +0xA8,0xF8,0x0A,0x00,0xA8,0x11,0xD7,0x01,0xC1,0xA0,0x10,0x01,0x13,0x57,0x02,0xFD, +0x6D,0x07,0x00,0x13,0x17,0x03,0x4E,0xEE,0x08,0x43,0x2B,0xBC,0x9E,0xE1,0x1B,0x59, +0x00,0x8E,0xEB,0x1B,0x17,0x00,0xC2,0xE0,0x10,0x01,0x99,0x81,0xED,0x97,0x06,0xFC, +0xE4,0x00,0x06,0xA0,0xEC,0x6A,0x00,0xA7,0xF2,0xEA,0x00,0xA8,0x4D,0xCC,0x74,0x45, +0xCE,0xBD,0x5D,0xCE,0x00,0xF9,0xCA,0x00,0xA8,0xF2,0xEA,0x00,0xA8,0x56,0xF7,0x01, +0xD2,0xE0,0x07,0xA2,0xF2,0xEA,0x00,0xA8,0x56,0xF7,0x02,0xD2,0xE0,0x07,0x4A,0xF2, +0xEA,0x00,0xA8,0x56,0xF7,0x04,0xD2,0xE0,0x06,0xF2,0xF2,0xEA,0x00,0xA8,0x56,0xF7, +0x08,0xD2,0xE0,0x06,0x9A,0xF3,0x4D,0x07,0x00,0x13,0x0B,0x01,0x12,0xEB,0x02,0x4E, +0xF7,0x40,0x13,0x2B,0x03,0x4F,0x5A,0xC0,0x4F,0x18,0x80,0x47,0x1A,0xC5,0x47,0x18, +0xCD,0x47,0x18,0xBD,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x08,0x34,0x13,0x4B,0x04,0x13, +0x0B,0x05,0x12,0xEB,0x06,0x4E,0xF7,0x40,0x13,0x2B,0x07,0x4F,0x5A,0xC0,0x4F,0x18, +0x80,0x47,0x1A,0xC5,0x47,0x18,0xCD,0x47,0x18,0xBD,0xC2,0xE0,0x10,0x01,0xEF,0x17, +0x08,0x20,0xF2,0xEA,0x00,0xA8,0xF8,0x0A,0x00,0xA8,0xC2,0xE0,0x10,0x01,0xED,0x97, +0x06,0x88,0xE4,0x00,0x00,0xE5,0x13,0x17,0x00,0x5F,0x04,0x09,0x20,0x00,0x99,0x0B, +0x0A,0x19,0x23,0x0D,0x8A,0x13,0x37,0x01,0x13,0x17,0x02,0x4E,0xF9,0x40,0x46,0xF7, +0xC5,0xC2,0xEB,0x54,0xA4,0x20,0x01,0x3D,0x12,0xED,0x00,0x52,0xF7,0x03,0xE4,0x00, +0x00,0x87,0x13,0x17,0x00,0x5F,0x04,0x29,0x20,0x06,0xE1,0x0B,0x0A,0x19,0x23,0x0C, +0xDA,0x13,0x37,0x01,0x13,0x17,0x02,0x4E,0xF9,0x40,0x46,0xF7,0xC5,0xC3,0x00,0x10, +0x01,0xEE,0xF8,0x00,0xCC,0x12,0xED,0x00,0x57,0x37,0x01,0x23,0x20,0x64,0xEF,0x18, +0x00,0xCE,0x23,0x00,0x32,0x9B,0x1B,0x46,0xF7,0xC4,0xE4,0x00,0x00,0x0F,0x52,0xF7, +0x04,0x1A,0xED,0x00,0x0C,0x0A,0x00,0x0C,0x0A,0x19,0xE4,0x00,0x02,0xED,0xE4,0x00, +0x8D,0xD2,0x5C,0x63,0x00,0xD0,0x60,0x0B,0x5A,0xE4,0x00,0x8F,0x14,0xE4,0x00,0x8E, +0xD8,0x50,0x60,0x20,0xE4,0x00,0x03,0xD0,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x3D,0xF9, +0x12,0xF7,0x00,0x1A,0xEB,0x00,0x12,0xEB,0x00,0x22,0xE0,0x42,0xC2,0xE0,0x10,0x01, +0x99,0xC6,0xEE,0xF7,0x00,0xE2,0x22,0xE8,0xD8,0x12,0xEB,0x00,0x22,0xE0,0x4E,0x12, +0xED,0x00,0x56,0xF7,0x01,0x5E,0xE0,0x09,0x49,0xC4,0x43,0xE4,0x00,0x00,0x43,0x12, +0xEB,0x00,0x22,0xE4,0x2A,0x51,0xC0,0x80,0xE4,0x00,0x00,0x29,0x12,0xEB,0x00,0x22, +0xEB,0xD8,0x12,0xEB,0x00,0x22,0xEF,0xC0,0xC9,0xC0,0xFF,0xFF,0xEE,0xEA,0x00,0xAE, +0x22,0xE4,0x2E,0xED,0xCA,0x00,0xA1,0xEC,0x0A,0x00,0xAC,0xE4,0x00,0x8D,0xFC,0xEA, +0xEA,0x00,0xA1,0xD5,0xD7,0x00,0x71,0x12,0xEC,0x00,0x56,0xF7,0x01,0xD2,0xE0,0x05, +0x22,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x08,0x50,0x23,0x00,0x24,0x9F,0x1F,0xFB,0x17, +0x08,0x50,0xEC,0x0A,0x00,0xA3,0x12,0xEC,0x00,0x56,0xF7,0x01,0x22,0xE0,0x2C,0xF1, +0xAA,0x00,0xBC,0xE4,0x00,0x00,0xAD,0xE9,0xAA,0x00,0xA1,0xE4,0x00,0x00,0x9D,0x12, +0xEB,0x00,0x22,0xE0,0x42,0x12,0xEC,0x00,0x56,0xF7,0x01,0x22,0xE0,0x56,0xE4,0x00, +0x00,0x3D,0xE4,0x00,0x8B,0xDE,0x5C,0x63,0x00,0x20,0x63,0xE4,0xE7,0xFF,0xFF,0xD3, +0xEA,0xEA,0x00,0xA3,0xEF,0x0A,0x00,0xB2,0xE4,0x00,0x00,0x17,0xEA,0xEA,0x00,0xA3, +0x0F,0x0A,0x1E,0x8E,0xF8,0x10,0x77,0x00,0xE4,0x00,0x8B,0x5E,0xEA,0xEA,0x00,0xA3, +0x9E,0xE1,0x5E,0xF7,0x04,0xEE,0xEA,0x00,0xA3,0xEA,0xEA,0x00,0xA3,0xD6,0xED,0xFD, +0x96,0xE4,0x00,0x8D,0x04,0xE4,0x00,0x8C,0xC8,0xEC,0x0A,0x00,0xA1,0xEC,0x0A,0x00, +0xA3,0xE4,0x00,0x00,0x45,0x98,0x60,0x9D,0x61,0xE4,0x00,0x8A,0xFC,0xE4,0x00,0x00, +0x0D,0x99,0x60,0xD5,0xCB,0xFF,0x95,0xE4,0x00,0x8C,0xB8,0xE4,0x00,0x8C,0x7C,0xEC, +0x0A,0x00,0xA1,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x00,0xD9,0x53,0x18,0x02,0xEF,0x17, +0x00,0xD9,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0x33,0xC3,0x00,0x32,0x0A,0x20,0x00, +0x49,0x13,0x0C,0x00,0x9B,0x3E,0xEC,0x17,0x08,0x33,0x47,0x18,0xCC,0x1B,0x0C,0x00, +0x0E,0x01,0x02,0x0D,0xE1,0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E,0x0D,0x81,0x12,0x0D, +0x61,0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20,0x85,0x29,0x9C,0x38,0x0D, +0x21,0x04,0xE4,0x00,0x93,0x30,0x98,0x60,0x88,0x83,0xE4,0x00,0x90,0x62,0x98,0x61, +0x98,0x82,0xE4,0x00,0x90,0x52,0x98,0x60,0xFC,0x80,0x3E,0x0C,0xE4,0x00,0x8C,0x3E, +0x98,0x61,0xFC,0x80,0x3E,0x0C,0xE4,0x00,0x8D,0xA4,0x0D,0x21,0x06,0x9C,0x28,0xE4, +0x00,0x95,0xFB,0x20,0x64,0x1E,0xE4,0x00,0x97,0x25,0xE4,0x00,0x97,0x43,0x9C,0x38, +0x0D,0x21,0x04,0xE4,0x00,0x97,0x58,0x0D,0x21,0x06,0x9C,0x28,0xE4,0x00,0x97,0x1F, +0xE4,0x00,0x99,0x17,0xE4,0x00,0x98,0xAD,0xE4,0x00,0x99,0x77,0xE4,0x00,0x99,0xD3, +0xE4,0x00,0x9D,0xB1,0xE4,0x00,0x9B,0x1B,0xE4,0x00,0x9A,0x1F,0xE4,0x00,0x9A,0x55, +0xE4,0x00,0x9A,0x8B,0xE4,0x00,0x9A,0xAF,0xE4,0x00,0x9A,0xD3,0xE4,0x00,0x99,0x09, +0xE4,0x00,0x9B,0x01,0x20,0x60,0x28,0x20,0x64,0x3E,0xE4,0x00,0x00,0x11,0xE4,0x00, +0x9B,0x9D,0xE4,0x00,0x9B,0xB7,0x85,0x29,0xE4,0x00,0x9E,0x55,0xE4,0x00,0x9B,0xC5, +0xC2,0xE0,0x10,0x01,0xE8,0x77,0x00,0xC3,0xEB,0x17,0x00,0xC3,0xD4,0x78,0xFF,0xC6, +0x85,0x29,0x9C,0x30,0x0D,0x41,0x08,0x0D,0x61,0x04,0x0D,0x21,0x0C,0x5D,0x43,0x04, +0xE7,0xFF,0xFF,0xC0,0xC2,0xE0,0x10,0x01,0xFF,0x17,0x00,0xE6,0x89,0x77,0x0C,0x78, +0x03,0xE7,0xFF,0xFF,0x9E,0xFF,0x0B,0x00,0xE6,0x0B,0x18,0x03,0x40,0x63,0xC5,0x5F, +0x03,0x04,0xD5,0x58,0xFF,0x7D,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C, +0x21,0x10,0x85,0x29,0xE4,0x00,0x9E,0x71,0xC3,0x34,0x00,0x01,0xCA,0xF9,0x23,0xFC, +0x0A,0xF7,0x00,0xD2,0xFF,0x04,0x3C,0xC3,0x00,0x10,0x01,0xF2,0xF8,0x07,0x08,0x9E, +0xE1,0x5E,0xF7,0x00,0xFA,0xF8,0x07,0x08,0x22,0xE1,0xCA,0xC3,0x00,0x10,0x01,0xC3, +0x60,0x10,0x01,0xFF,0x18,0x03,0x72,0xCA,0xE0,0x11,0x7D,0xCB,0x39,0x22,0x00,0xFF, +0x7B,0x09,0x0C,0x1F,0x57,0xFD,0x57,0x5A,0xFF,0x4F,0x5A,0x10,0x8F,0x59,0x0B,0x9A, +0x01,0x4F,0x97,0x08,0x8F,0x9B,0xEB,0x9C,0xDD,0x3B,0x0F,0x9A,0x01,0x5F,0x57,0x00, +0x5F,0x4F,0xE9,0x57,0x57,0xFF,0x4F,0x5A,0x10,0x8F,0x59,0x0B,0x9A,0x01,0x20,0x00, +0x6D,0xFF,0xA0,0x80,0x00,0x5F,0x9C,0x04,0x47,0x9C,0xEC,0x0B,0xB8,0x01,0xC7,0xBD, +0x7F,0xFF,0x47,0x9C,0xED,0xE4,0x00,0x00,0x0F,0x0B,0x98,0x01,0x0F,0x9A,0x01,0x9E, +0xE1,0x9F,0x02,0xC2,0xE2,0x30,0x04,0x23,0xFE,0xB1,0x85,0x29,0x5C,0x63,0x04,0xE4, +0x00,0x9D,0x43,0x9A,0xE0,0x8B,0x17,0xE4,0x00,0x00,0x1D,0x43,0x23,0xBC,0x9E,0xE1, +0x13,0x39,0x00,0x8F,0x19,0xD4,0x97,0xFF,0xB4,0x40,0x60,0xC5,0x85,0x29,0x9C,0x38, +0x98,0x60,0x0D,0x21,0x04,0xE7,0xFF,0xFC,0xFC,0x98,0x61,0xE7,0xFF,0xFC,0xF0,0xC2, +0xE0,0x10,0x01,0xEE,0xF7,0x00,0xE2,0x22,0xE8,0x3A,0x50,0x60,0xC8,0xE7,0xFF,0xFD, +0xCA,0xE4,0x00,0x00,0x15,0x98,0x6F,0xE7,0xFF,0xFD,0x8A,0x0D,0x21,0x06,0x98,0x60, +0x9C,0x28,0xE7,0xFF,0xFC,0xA3,0x9C,0x38,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x04,0xEC, +0x17,0x08,0x31,0x0D,0x41,0x00,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x00,0xC0,0x23,0x00, +0x42,0xC3,0x00,0x10,0x01,0x98,0x66,0xEF,0x18,0x00,0xE2,0x23,0x08,0x78,0xF2,0xF7, +0x00,0xC0,0x50,0x60,0x80,0x22,0xE0,0x52,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x00,0xC8, +0x56,0xF7,0x01,0x5E,0xE0,0x09,0x48,0x64,0x43,0xC1,0x40,0x10,0x01,0xEA,0xEA,0x00, +0xD9,0x56,0xF7,0x02,0x22,0xE0,0x6C,0xC0,0x80,0x10,0x01,0xFC,0x84,0x07,0x0A,0xE7, +0xFF,0xEE,0x32,0xEA,0xEA,0x00,0xD9,0xC6,0xF7,0xFF,0xFD,0xEE,0xEA,0x00,0xD9,0x0D, +0x41,0x02,0x0D,0x21,0x06,0x9C,0x28,0xE7,0xFF,0xFE,0xAF,0x9C,0x30,0xC3,0x00,0x10, +0x01,0x0D,0x21,0x0C,0xFC,0x98,0x07,0x0A,0x0D,0x41,0x08,0x8A,0xE4,0x8B,0x24,0x18, +0x17,0x00,0xC3,0x00,0x10,0x01,0x9E,0xE1,0xFF,0x18,0x07,0x8C,0xD6,0xF8,0xFF,0x9E, +0x52,0xE0,0x62,0x1F,0x19,0x1F,0x1A,0xE4,0x00,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x07, +0x0B,0x18,0x17,0x00,0x9E,0xE1,0xD7,0x17,0xFF,0xDE,0x1E,0xE0,0x9E,0xC3,0x60,0x10, +0x01,0x1A,0xE4,0x1F,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x3D,0xF8,0x12,0xF7,0x00,0xFA, +0xFB,0x07,0x09,0xF2,0xFB,0x07,0x09,0x22,0xEC,0xCC,0xC2,0xE0,0x10,0x01,0xC3,0x40, +0x10,0x01,0xF3,0xB7,0x0B,0x1A,0x9B,0x00,0xC2,0xE0,0x10,0x01,0xC3,0xC0,0x10,0x01, +0xC1,0x00,0x10,0x01,0xFE,0xF7,0x07,0x2A,0xFF,0x5A,0x09,0x48,0x8B,0x38,0xFF,0xDE, +0x0C,0x96,0xFD,0x08,0x09,0x0C,0xE4,0x00,0x01,0x09,0xC3,0x80,0x10,0x01,0x9A,0xE0, +0xFF,0x9C,0x0B,0x04,0x8B,0x64,0x43,0x17,0xE4,0x0B,0x38,0x00,0x43,0x17,0xDC,0x4F, +0x59,0x42,0x1B,0x38,0x21,0x1B,0x58,0x20,0x9E,0xE2,0x5E,0xE2,0x09,0x23,0xFF,0xA5, +0x0C,0x81,0x04,0x50,0x60,0x20,0xE7,0xFF,0xFA,0xBC,0xC1,0x40,0x10,0x01,0xEA,0xEA, +0x00,0xD9,0x0C,0x81,0x06,0x56,0xF7,0x02,0x22,0xE1,0x74,0xE4,0x00,0x00,0x8F,0xF3, +0x9B,0x07,0x09,0x23,0x84,0x34,0x23,0x88,0x68,0x43,0x98,0x44,0xE4,0x00,0x00,0x0F, +0x43,0x98,0xF4,0x15,0x5C,0x01,0x19,0x57,0x00,0x0B,0x9C,0x01,0xE4,0x00,0x00,0x21, +0x0F,0x9A,0x02,0x4D,0x5C,0x82,0x4F,0x9C,0x42,0x19,0x57,0x00,0x1B,0x97,0x01,0x9F, +0x21,0x9F,0x02,0x5F,0x39,0x04,0x9E,0xE2,0x9F,0x44,0xD7,0xB9,0xFE,0x2D,0xE7,0xFF, +0xFF,0x45,0x50,0x60,0x80,0xE7,0xFF,0xEB,0xC6,0xEA,0xEA,0x00,0xD9,0xC6,0xF7,0xFF, +0xFD,0xEE,0xEA,0x00,0xD9,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0xE7,0xFF, +0xFC,0x41,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xF0,0x77,0x0B,0x90,0xC3,0x20, +0x10,0x01,0xC2,0xE0,0x10,0x01,0xFF,0x18,0x0B,0xA2,0xFE,0xF7,0x07,0x90,0xFF,0x39, +0x07,0x98,0x9B,0x60,0x98,0x81,0xE4,0x00,0x01,0x7D,0x0B,0x57,0x01,0xC3,0x4F,0xFF, +0xE0,0x20,0x00,0x35,0x0B,0x57,0x03,0xC3,0x4F,0xFF,0xE4,0x20,0x00,0x49,0x0B,0x58, +0x01,0x18,0x19,0x00,0x0F,0x57,0x01,0x0B,0x58,0x03,0x0F,0x57,0x03,0x13,0x59,0x00, +0x23,0x41,0x22,0x0B,0x98,0x03,0x0B,0x57,0x03,0x43,0x5C,0xD5,0x5F,0x5A,0x06,0x4F, +0xDA,0xFA,0x0B,0xB8,0x01,0x47,0x5E,0xD6,0x09,0x17,0x01,0x43,0x5A,0xF5,0x41,0x1D, +0x45,0x5D,0x08,0x06,0x4F,0xC8,0xFA,0x45,0x1E,0x46,0x43,0xC8,0xF5,0x8F,0xDA,0x5F, +0xCC,0x99,0x20,0x00,0x25,0x5F,0x46,0x51,0x20,0x01,0x11,0x18,0x99,0x00,0x0F,0xB7, +0x01,0x0F,0x97,0x03,0xE4,0x00,0x00,0x71,0x0B,0x98,0x01,0x0B,0xD7,0x01,0x43,0xDC, +0xF5,0x5F,0xDE,0x06,0x4F,0xBE,0xFA,0x47,0xDD,0xF6,0x0B,0x58,0x03,0x41,0x1E,0xED, +0x0B,0xD7,0x03,0x43,0xDA,0xF5,0x5F,0xDE,0x06,0x4F,0xBE,0xFA,0x47,0xDD,0xF6,0x43, +0xBD,0xF5,0xD7,0xA8,0x00,0x52,0x0F,0x97,0x01,0x0F,0x57,0x03,0x0B,0x57,0x01,0x9F, +0x61,0x0F,0x58,0x01,0x5F,0x7B,0x00,0x0B,0x57,0x03,0x9F,0x21,0x0F,0x58,0x03,0x9E, +0xE4,0x1F,0x18,0x30,0xD7,0x63,0xFA,0x36,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17, +0x3D,0xF9,0x1C,0x21,0xD8,0xCA,0xF7,0x3D,0xF8,0x0D,0x41,0x20,0x0D,0x61,0x1C,0x0D, +0x81,0x18,0x0D,0xA1,0x14,0x0D,0xC1,0x10,0x0D,0xE1,0x0C,0x0E,0x01,0x08,0x0E,0x21, +0x04,0x0D,0x21,0x24,0xC1,0x80,0x10,0x01,0xFD,0x8C,0x08,0x86,0x0A,0x2C,0x01,0xC6, +0x31,0x7F,0xFF,0x0E,0x2C,0x01,0x13,0x38,0x00,0xC3,0x00,0x10,0x01,0xFB,0x38,0x00, +0xC0,0x13,0x37,0x00,0xC2,0xE0,0x10,0x01,0xFB,0x37,0x07,0x09,0xC1,0xE0,0x10,0x01, +0xC1,0xC0,0x10,0x01,0xC3,0x60,0x10,0x01,0xC3,0x40,0x10,0x01,0x5D,0xA3,0x00,0xFD, +0xEF,0x09,0x0C,0xFD,0xCE,0x07,0x8C,0xFE,0x00,0x80,0x00,0xFD,0x5B,0x07,0x0A,0xFD, +0x7A,0x0B,0x90,0xD1,0xA1,0x12,0x8E,0x0B,0x2B,0x16,0x0A,0xEB,0x18,0x46,0x11,0x85, +0x0E,0xEB,0x17,0x0E,0x0C,0x01,0x0F,0x2B,0x19,0x13,0x0B,0x00,0xD3,0x01,0x1F,0x79, +0x0B,0x6B,0x46,0x0B,0x0B,0x48,0x0F,0x6B,0x49,0x0F,0x0B,0x47,0xD7,0x17,0x1F,0x4C, +0x0E,0xEB,0x47,0x0F,0x0B,0x17,0x0F,0x2B,0x49,0x0F,0x6B,0x19,0xE4,0x00,0x07,0xB3, +0xC2,0xE0,0x10,0x01,0x5F,0x98,0x04,0xEA,0xF7,0x0B,0x21,0x5F,0x17,0x15,0x4A,0xFC, +0xB8,0x0E,0xEB,0x13,0xCF,0x39,0x00,0x30,0x9A,0xE0,0x8F,0x2B,0x0B,0x19,0x18,0x27, +0x1C,0x50,0xC2,0xE0,0x10,0x01,0x5F,0x38,0x04,0xEA,0xF7,0x0B,0x23,0x5F,0x17,0x15, +0x4A,0xF9,0xB8,0x0E,0xEB,0x15,0xCE,0xFB,0x00,0x30,0x8E,0xEB,0x0B,0x17,0x16,0x9A, +0xE0,0x27,0x1C,0x50,0xC2,0xE0,0x10,0x01,0x5F,0x38,0x04,0xEA,0xF7,0x0B,0x21,0x5F, +0x17,0x15,0x4A,0xF9,0xB8,0x0E,0xEB,0x43,0xCF,0x7B,0x00,0x30,0x9A,0xE0,0x8F,0x6B, +0x0B,0x1B,0x18,0x27,0x1C,0x50,0xC2,0xE0,0x10,0x01,0x5F,0x38,0x04,0xEA,0xF7,0x0B, +0x23,0x5F,0x17,0x15,0x4A,0xF9,0xB8,0x0E,0xEB,0x45,0xE4,0x00,0x00,0x63,0xC3,0x00, +0x10,0x01,0x5F,0x77,0x04,0xEB,0x18,0x0B,0x21,0x5E,0xF8,0x15,0x4B,0x1B,0xC0,0x0F, +0x0B,0x13,0x9A,0xE0,0x27,0x3C,0x50,0xC2,0xE0,0x10,0x01,0x5F,0x19,0x04,0xEA,0xF7, +0x0B,0x23,0x5F,0x37,0x15,0x4A,0xF8,0xB8,0x0E,0xEB,0x15,0xE7,0xFF,0xFB,0x6E,0x12, +0xEB,0x00,0x26,0xE4,0x7D,0x0B,0x2B,0x43,0x0B,0x0B,0x13,0x43,0x19,0xC5,0x0B,0x2B, +0x45,0x0F,0x0B,0x1B,0x0B,0x0B,0x15,0x43,0x19,0xC5,0x0F,0x0B,0x1D,0xE4,0x00,0x00, +0x15,0x0C,0x0B,0x1B,0x0C,0x0B,0x1D,0xC3,0x00,0x10,0x01,0xF3,0x18,0x00,0xC0,0x23, +0x01,0x9E,0x53,0x00,0x52,0x0B,0x2B,0x13,0x1B,0x0A,0x00,0x4F,0x79,0x41,0x0B,0x0B, +0x15,0x4F,0x7B,0x20,0x4F,0x58,0x41,0x1B,0x2A,0x02,0x57,0x5A,0x0F,0x1B,0x0A,0x03, +0x47,0x5B,0xD5,0x1B,0x4A,0x01,0x26,0xE4,0xA1,0x0B,0x0B,0x1A,0x0A,0xEB,0x1C,0x4F, +0x38,0x42,0x4F,0x57,0x42,0x5F,0x39,0x04,0x57,0x5A,0x0F,0x4F,0x39,0x20,0x1B,0x0A, +0x05,0x47,0x39,0xD5,0x1A,0xEA,0x06,0x1B,0x2A,0x04,0xE4,0x00,0x00,0x1B,0x18,0x0A, +0x04,0x18,0x0A,0x05,0x18,0x0A,0x06,0x88,0x6A,0x98,0x87,0xE7,0xFF,0xF6,0x50,0x18, +0x6A,0x07,0xE4,0x00,0x01,0x8B,0x8B,0x0A,0x18,0x18,0x00,0xC3,0x20,0x10,0x01,0x9F, +0x01,0xFF,0x39,0x07,0x8C,0xD7,0x19,0xFF,0x9E,0x53,0x00,0x62,0x1B,0x0A,0x00,0x0B, +0x0B,0x13,0x4F,0x38,0x41,0x1B,0x0A,0x02,0x0B,0x0B,0x15,0x1B,0x2A,0x01,0x1B,0x0A, +0x04,0x4F,0x38,0x41,0x57,0x17,0x01,0x4E,0xF7,0x20,0x53,0x18,0x20,0x52,0xF7,0x02, +0x1B,0x0A,0x11,0x1A,0xEA,0x12,0x0A,0xEB,0x1A,0x4F,0x17,0x42,0x1A,0xEA,0x0E,0x1B, +0x0A,0x0D,0x0A,0xEB,0x1C,0x4F,0x17,0x42,0x1B,0x2A,0x03,0x1B,0x0A,0x0F,0x1A,0xEA, +0x10,0x88,0x6A,0x50,0x80,0x1F,0xE7,0xFF,0xF5,0x7A,0xC2,0xE0,0x10,0x01,0xC3,0x20, +0x10,0x01,0xC3,0x80,0x10,0x01,0x18,0x6A,0x1F,0xFE,0xF7,0x07,0x2A,0xFF,0x39,0x09, +0x48,0x9B,0x00,0xC3,0x60,0x10,0x01,0xFF,0x9C,0x0C,0x96,0xF3,0x5B,0x07,0x09,0x23, +0x44,0x34,0x23,0x48,0x68,0x43,0x58,0x7C,0xE4,0x00,0x00,0x0F,0x43,0x58,0xE4,0x17, +0xBA,0x01,0x1B,0xB7,0x00,0x0B,0x5A,0x01,0xE4,0x00,0x00,0x21,0x0F,0x59,0x02,0x4F, +0xBA,0x82,0x4F,0x5A,0x42,0x1B,0xB7,0x00,0x1B,0x57,0x01,0x9F,0x02,0x9E,0xE2,0x9F, +0x24,0x5F,0x07,0x49,0x23,0xFF,0x1D,0x0A,0xEC,0x00,0xD2,0xFF,0x0F,0x6C,0x9A,0xE1, +0xE4,0x00,0x02,0xF5,0xD1,0xA0,0x05,0x66,0xFE,0xE0,0x7F,0xFF,0xC3,0x20,0x10,0x01, +0xC3,0x40,0x10,0x01,0xEE,0xF9,0x07,0x91,0xF8,0x1A,0x07,0x98,0xFF,0x39,0x07,0x90, +0xFF,0x5A,0x07,0x98,0x0E,0xF9,0x03,0x0E,0xF9,0x05,0x0E,0xF9,0x07,0x18,0x1A,0x01, +0xF2,0xF8,0x00,0xC0,0x22,0xE0,0xB2,0x52,0xE0,0x52,0x1A,0xEA,0x00,0x9A,0xFF,0x88, +0x6A,0x1A,0xEA,0x01,0x1A,0xEA,0x02,0x1A,0xEA,0x03,0x1A,0xEA,0x04,0x1A,0xEA,0x05, +0x1A,0xEA,0x06,0x98,0x87,0xE7,0xFF,0xF3,0xFC,0x18,0x6A,0x07,0xE4,0x00,0x00,0x89, +0x8A,0xEA,0x18,0x17,0x00,0xC3,0x00,0x10,0x01,0x9E,0xE1,0xFF,0x18,0x07,0x8C,0xD6, +0xF8,0xFF,0x9E,0x52,0xE0,0x62,0x9B,0x1F,0x1A,0xEA,0x00,0xC2,0xE0,0x10,0x01,0xFE, +0xF7,0x07,0x0B,0x1B,0x17,0x00,0xC3,0x20,0x10,0x01,0x9E,0xE1,0xFF,0x39,0x07,0x29, +0xD6,0xF9,0xFF,0x9E,0x88,0x6A,0x50,0x80,0x1F,0xE7,0xFF,0xF3,0x74,0x18,0x6A,0x1F, +0x0A,0xEC,0x01,0x0C,0x0E,0x00,0x46,0x10,0xBD,0x0E,0x0C,0x01,0xE4,0x00,0x02,0x77, +0xD1,0xA2,0x06,0x8E,0xF2,0xF8,0x00,0xC0,0x22,0xE0,0xD2,0x52,0xE0,0x52,0xC3,0x00, +0x10,0x01,0x1A,0xEA,0x00,0xEB,0x18,0x08,0x31,0x9A,0xFF,0x1B,0x0A,0x05,0x1A,0xEA, +0x01,0x1A,0xEA,0x02,0x1A,0xEA,0x03,0x1A,0xEA,0x04,0x1A,0xEA,0x06,0x88,0x6A,0x98, +0x87,0xE7,0xFF,0xF2,0xE4,0x18,0x6A,0x07,0xE4,0x00,0x01,0x15,0x8A,0xEA,0x18,0x17, +0x00,0xC3,0x00,0x10,0x01,0x9E,0xE1,0xFF,0x18,0x07,0x8C,0xD6,0xF8,0xFF,0x9E,0x52, +0xE0,0x62,0x1A,0xEA,0x00,0x0A,0xEB,0x13,0x4F,0x17,0x41,0x1A,0xEA,0x02,0x1B,0x0A, +0x01,0x0A,0xEB,0x15,0x4F,0x17,0x41,0x1A,0xEA,0x04,0x1B,0x0A,0x03,0x12,0xEB,0x00, +0x57,0x17,0x01,0x4E,0xF7,0x20,0x53,0x18,0x20,0x52,0xF7,0x02,0x1B,0x0A,0x11,0x1A, +0xEA,0x12,0x0A,0xEB,0x1A,0x4F,0x17,0x42,0x1A,0xEA,0x0E,0x1B,0x0A,0x0D,0x0A,0xEB, +0x1C,0x4F,0x17,0x42,0x1A,0xEA,0x10,0x1B,0x0A,0x0F,0x88,0x6A,0x50,0x80,0x1F,0xE7, +0xFF,0xF2,0x08,0x9A,0xE0,0x18,0x6A,0x1F,0x43,0x17,0x7C,0x0B,0x38,0x00,0x43,0x17, +0x54,0x4F,0x59,0x42,0x1B,0x38,0x21,0x1B,0x58,0x20,0x9E,0xE2,0x5E,0xE7,0x49,0x23, +0xFF,0xA5,0x46,0x11,0x85,0x9A,0xE2,0x0E,0x0C,0x01,0x0E,0xEE,0x00,0xE4,0x00,0x00, +0xD5,0x21,0xAD,0x9A,0x1E,0xE0,0xA7,0x1A,0xEA,0x00,0x9A,0xE6,0x1A,0xEA,0x02,0x52, +0xE0,0x50,0x1A,0xEA,0x03,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x31,0x46,0x11,0x85, +0x18,0x0A,0x01,0x0E,0x0C,0x01,0x1A,0xEA,0x04,0x88,0x6A,0x98,0x85,0xE7,0xFF,0xF1, +0x4C,0x0D,0xAE,0x00,0x18,0x6A,0x05,0xE4,0x00,0x00,0x61,0x9B,0x00,0xD2,0xFF,0xE6, +0x10,0xE7,0xFF,0xF9,0x5B,0x0A,0xEB,0x46,0x0B,0x0B,0x16,0x5E,0xF8,0x15,0x4B,0x21, +0x01,0xCE,0xF9,0x00,0x30,0x8E,0xEB,0x4B,0x60,0x0A,0x0B,0x17,0x16,0x9A,0xE0,0xD3, +0x1F,0xE0,0x8C,0xE7,0xFF,0xF8,0x3D,0x0E,0x21,0x06,0x0E,0x01,0x0A,0x0D,0xE1,0x0E, +0x0D,0xC1,0x12,0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D, +0x21,0x26,0x1C,0x21,0x28,0x85,0x29,0x1C,0x21,0xD0,0x0D,0x41,0x28,0x0D,0x81,0x20, +0x5D,0x43,0x00,0x5D,0x84,0x00,0x42,0xEC,0x55,0x9E,0xE1,0x5E,0xF7,0x00,0x57,0x17, +0x03,0x4E,0xF7,0x11,0x5F,0x00,0x09,0x0D,0x61,0x24,0x0D,0xA1,0x1C,0x0D,0xC1,0x18, +0x49,0xA1,0x01,0x0D,0x21,0x2C,0x8D,0xB7,0xC1,0xD8,0x00,0x21,0xE4,0x00,0x60,0xE2, +0x99,0x60,0xFD,0xCE,0xBA,0xA7,0xE4,0x00,0x00,0xE3,0x88,0x61,0x50,0x80,0x22,0x50, +0xA0,0x18,0xE7,0xFF,0xB9,0xDC,0x9A,0xE4,0x43,0x0E,0x54,0x13,0x58,0x00,0x1F,0x01, +0x18,0x4F,0x3A,0x09,0x57,0x5A,0x01,0x8F,0x19,0x17,0x18,0xE8,0x5F,0x40,0x01,0x4B, +0x50,0x7B,0x47,0x5A,0xC4,0x5F,0x17,0x02,0x20,0x00,0x25,0x4F,0x17,0x20,0x5F,0x18, +0x02,0x1F,0x61,0x18,0x47,0x18,0xD5,0x8F,0x3B,0x1B,0x19,0xE8,0x9D,0x41,0x5D,0x4A, +0x00,0xD5,0x4C,0x00,0xE1,0x06,0xE0,0x81,0xCC,0x6B,0x00,0x18,0x88,0x81,0x8C,0x77, +0x50,0xA0,0x18,0x9D,0x61,0xE7,0xFF,0xBA,0x16,0xE4,0x00,0x00,0x1D,0x9E,0xE1,0xD2, +0xE8,0xFD,0x4E,0xE7,0xFF,0xFF,0xC5,0x5E,0xEB,0x00,0xD5,0xB7,0xFC,0x85,0xE4,0x00, +0x60,0x04,0x0D,0x21,0x2E,0x0D,0xC1,0x1A,0x0D,0xA1,0x1E,0x0D,0x81,0x22,0x0D,0x61, +0x26,0x0D,0x41,0x2A,0x1C,0x21,0x30,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x03, +0x2E,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x07,0xE6,0x85,0x29,0x1C,0x21,0xD0, +0x0D,0x21,0x2C,0x0D,0x41,0x28,0x0D,0x61,0x24,0xD0,0x69,0x0C,0x95,0x4F,0x03,0x10, +0xC2,0xF8,0x00,0x21,0xC1,0x78,0x00,0x21,0xFE,0xF7,0xBA,0x40,0xFD,0x6B,0xBA,0xA7, +0x8E,0xF8,0x0E,0xF7,0x02,0x86,0xE9,0x1C,0x83,0x01,0xCC,0x63,0x00,0x1A,0xCC,0x84, +0x00,0x1A,0x9C,0x9F,0xE7,0xFF,0xFD,0xC6,0xE4,0x00,0x02,0xC7,0x0C,0x61,0x04,0xE4, +0x00,0x5E,0xFC,0x0C,0x61,0x06,0x99,0x40,0x9C,0x7E,0x5C,0x63,0x00,0xCC,0x63,0x00, +0x1A,0x8D,0x63,0x1C,0x61,0x08,0x50,0x80,0x22,0x50,0xA0,0x18,0xE7,0xFF,0xB7,0xE8, +0x8B,0x2A,0x9A,0xE4,0x5F,0x23,0x39,0x20,0x00,0xDD,0x43,0x0B,0xCC,0x13,0x98,0x00, +0x4F,0x7C,0x09,0x57,0x9C,0x01,0x5F,0x80,0x01,0x4B,0x50,0x7B,0x1F,0x01,0x20,0x8F, +0x1B,0x17,0x18,0xE8,0x47,0x1A,0xC4,0x5F,0x57,0x02,0x20,0x00,0x25,0x4F,0x57,0x20, +0x5F,0x5A,0x02,0x1F,0x81,0x20,0x47,0x5A,0xC5,0x8F,0x7C,0x1B,0x5B,0xE8,0x9F,0x21, +0x9E,0xE1,0xD2,0xE8,0xFE,0x16,0x06,0xE0,0x81,0xCC,0x6A,0x00,0x06,0x1C,0x81,0x08, +0x8C,0x77,0x50,0xA0,0x18,0xE7,0xFF,0xB8,0x16,0x9D,0x44,0x5D,0x43,0x89,0x23,0xFE, +0x55,0xE4,0x00,0x01,0xAD,0xE4,0x00,0x5D,0xF0,0x1C,0x61,0x08,0x50,0x80,0x22,0x50, +0xA0,0x18,0xE7,0xFF,0xB6,0xFC,0xC3,0x78,0x00,0x21,0x9A,0xE4,0xFF,0x7B,0xBA,0xA4, +0xD2,0xE7,0x01,0xC2,0x43,0x1B,0xBC,0x13,0x58,0xFC,0x1F,0x01,0x20,0x4F,0x3A,0x09, +0x57,0x5A,0x01,0x8F,0x19,0x17,0x18,0xE8,0x5F,0x40,0x01,0x4B,0x50,0x7B,0x47,0x5A, +0xC4,0x5F,0x17,0x02,0x20,0x00,0x25,0x4F,0x17,0x20,0x5F,0x18,0x02,0x1F,0x81,0x20, +0x47,0x18,0xD5,0x8F,0x3C,0x1B,0x19,0xE8,0x9E,0xE1,0xD2,0xE8,0xFE,0x36,0xE4,0x00, +0x00,0xD9,0xE4,0x00,0x5D,0x36,0x1C,0x61,0x08,0x50,0x80,0x22,0x50,0xA0,0x18,0xE7, +0xFF,0xB6,0x42,0x8B,0x0B,0xE4,0x00,0x00,0x9F,0x43,0x38,0xBC,0x13,0x79,0xFC,0x1F, +0x21,0x20,0x4F,0x5B,0x09,0x57,0x7B,0x01,0x8F,0x3A,0x13,0x39,0xE8,0x5F,0x60,0x01, +0x4B,0x70,0x7B,0x47,0x7B,0xCC,0x5F,0x37,0x02,0x5F,0x7B,0x02,0x20,0x00,0x25,0x4F, +0x37,0x20,0x5F,0x39,0x02,0x1F,0x81,0x20,0x47,0x39,0xDD,0x8F,0x5C,0x1B,0x3A,0xE8, +0x9E,0xE1,0xD2,0xE8,0xFE,0x3E,0xC2,0xF8,0x00,0x21,0x9F,0x04,0xFE,0xF7,0xBA,0xBF, +0xD7,0x17,0x00,0x52,0x9A,0xE4,0xE7,0xFF,0xFF,0x67,0x04,0x60,0x81,0x1C,0x81,0x08, +0x50,0xA0,0x18,0xE7,0xFF,0xB6,0x5A,0xE4,0x00,0x5C,0x72,0x0D,0x61,0x26,0x0D,0x41, +0x2A,0x0D,0x21,0x2E,0x1C,0x21,0x30,0x85,0x29,0x1C,0x21,0xE8,0x0D,0x41,0x10,0x0D, +0x21,0x14,0x0D,0x61,0x0C,0x0D,0x81,0x08,0x0D,0xA1,0x04,0x89,0x43,0xD0,0x67,0x06, +0x3A,0xD0,0x67,0x00,0x65,0xD0,0x61,0x0B,0x1D,0xE4,0x00,0x00,0x19,0xD0,0x69,0x0A, +0xDE,0xE4,0x00,0x02,0x19,0xC1,0xA0,0x10,0x01,0xCD,0x63,0x00,0x1A,0xFD,0xAD,0x07, +0xE8,0x99,0x80,0x8D,0x6D,0x13,0x4B,0x01,0x13,0x2B,0x00,0x13,0x0B,0x03,0x12,0xEB, +0x02,0x4C,0x9A,0xC0,0x4C,0xB8,0xC0,0x4F,0x5A,0x80,0x4F,0x18,0x80,0x8C,0x9A,0x8C, +0xB8,0x8C,0x99,0x8C,0xB7,0x4F,0x39,0x40,0x4E,0xF7,0x40,0x88,0x6C,0x8C,0x99,0x8C, +0xB7,0x9D,0x81,0xE4,0x00,0x5D,0xD8,0x5D,0x8C,0x00,0x9D,0x64,0xD1,0x86,0xFE,0x4E, +0x98,0x66,0x98,0x80,0x98,0xA0,0xCD,0x4A,0x00,0x1A,0x8D,0x4D,0x10,0xCA,0x18,0xE4, +0x00,0x5E,0x08,0x98,0x66,0x98,0x80,0x98,0xA1,0x10,0xCA,0x18,0xE4,0x00,0x5D,0xEE, +0x98,0x66,0x98,0x81,0x98,0xA0,0x10,0xCA,0x19,0xE4,0x00,0x5D,0xD4,0x98,0x66,0x98, +0x81,0x98,0xA1,0x10,0xCA,0x19,0xE4,0x00,0x5D,0xBA,0x98,0x66,0x98,0x82,0x98,0xA0, +0x98,0xC0,0xE4,0x00,0x5D,0xA2,0x98,0x66,0x98,0x82,0x98,0xA1,0x98,0xC0,0xE4,0x00, +0x5D,0x8A,0x98,0x66,0x98,0x83,0x98,0xA0,0x98,0xC0,0xE4,0x00,0x5D,0x72,0x98,0x66, +0xE4,0x00,0x00,0x83,0xC1,0xA0,0x10,0x01,0x99,0x40,0xFD,0xAD,0x08,0x06,0x5D,0x8A, +0x00,0x41,0x6A,0x6C,0x98,0x60,0x88,0x8C,0x98,0xA0,0x10,0xCB,0x00,0xE4,0x00,0x5D, +0x2C,0x98,0x60,0x88,0x8C,0x98,0xA1,0x10,0xCB,0x00,0x9D,0x41,0xE4,0x00,0x5D,0x0E, +0x21,0x4F,0x7A,0x98,0x60,0x98,0x83,0x98,0xA0,0x98,0xC0,0xE4,0x00,0x5C,0xF0,0x98, +0x60,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16, +0x98,0x83,0x98,0xA1,0x98,0xC0,0x1C,0x21,0x18,0xE4,0x00,0x5C,0xB5,0xC3,0x00,0x10, +0x01,0x0D,0xA1,0x06,0xFE,0xF8,0x08,0x02,0xF3,0x38,0x08,0x02,0x13,0x57,0x01,0x13, +0x17,0x03,0x4C,0x9A,0xC0,0x12,0xF7,0x02,0x4C,0xB8,0xC0,0x4F,0x5A,0x80,0x4F,0x18, +0x80,0x8C,0x9A,0x8C,0xB8,0x8C,0x99,0x8C,0xB7,0x4F,0x39,0x40,0x4E,0xF7,0x40,0x0D, +0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x98,0x60,0x8C,0x99,0x8C, +0xB7,0x1C,0x21,0x18,0xE4,0x00,0x5B,0xB7,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61, +0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18,0x85,0x29,0x1C,0x21,0xE0,0x0D, +0xC1,0x08,0x0D,0x21,0x1C,0x0D,0x41,0x18,0x0D,0x61,0x14,0x0D,0x81,0x10,0x0D,0xA1, +0x0C,0x0D,0xE1,0x04,0x89,0xC4,0xD0,0x66,0x00,0xB5,0xC2,0xF8,0x00,0x21,0xFE,0xF7, +0xBA,0x68,0x4C,0x63,0x10,0x8C,0x77,0x0E,0xE3,0x02,0x86,0xE9,0x99,0xED,0xC9,0x80, +0x3E,0x0C,0xE4,0x00,0x01,0xC9,0xD0,0x81,0x04,0x41,0x1E,0xE4,0xFE,0xD2,0xE1,0x04, +0x89,0x5C,0x80,0xE1,0xCA,0xE0,0x3E,0x0C,0xC9,0x80,0x10,0x06,0x49,0xE1,0x6B,0x49, +0x8C,0xB8,0x99,0xA2,0x99,0x41,0x99,0x60,0x48,0x60,0x1A,0xE4,0x00,0x01,0x87,0xD0, +0x81,0x04,0x09,0x1E,0xE4,0xFE,0xD2,0xE1,0x04,0x51,0x5C,0x80,0xE1,0xCA,0xE0,0x3E, +0x0C,0xC9,0x80,0x10,0x06,0x99,0xA0,0x49,0xE1,0x6B,0x49,0x8C,0xB8,0x89,0x4D,0x99, +0x60,0x48,0x61,0x1B,0xE4,0x00,0x01,0x35,0x24,0x85,0xE9,0x5C,0x80,0xE1,0xCA,0xE0, +0x3E,0x0C,0xC9,0x80,0x08,0x03,0x49,0xE1,0x6B,0x49,0x8C,0xB8,0xE4,0x00,0x00,0xD9, +0x24,0x85,0xC1,0x5C,0x80,0xE1,0xCA,0xE0,0x3E,0x0C,0xC9,0x80,0x10,0x06,0x49,0xE1, +0x6B,0x49,0x8C,0xB8,0xE4,0x00,0x00,0xC5,0x99,0xE1,0xE4,0x00,0x00,0x95,0x99,0xE7, +0xC9,0x80,0x3E,0x0C,0x99,0xA2,0x99,0x41,0x99,0x60,0xE4,0x00,0x00,0x21,0x99,0xE7, +0xC9,0x80,0x3E,0x0C,0x99,0xA2,0x99,0x41,0x99,0x63,0x98,0x60,0xE4,0x00,0x00,0x85, +0x99,0xA0,0x99,0xE7,0xC9,0x80,0x3E,0x0C,0x89,0x4D,0x99,0x60,0xE4,0x00,0x00,0x21, +0x99,0xA0,0x99,0xE7,0xC9,0x80,0x3E,0x0C,0x89,0x4D,0x99,0x63,0x98,0x61,0xE4,0x00, +0x00,0x41,0x99,0xE7,0xC9,0x80,0x08,0x03,0x99,0xA0,0x89,0x4D,0xE4,0x00,0x00,0x1D, +0x99,0xE7,0xC9,0x80,0x10,0x06,0x99,0xA2,0x99,0x41,0x99,0x60,0x98,0x63,0xE7,0xFF, +0x7E,0x28,0x88,0x6A,0x88,0x8D,0xE4,0x00,0x73,0x4A,0x88,0x6A,0x88,0x8C,0xE4,0x00, +0x5A,0x6A,0x21,0xA0,0x3E,0x88,0x6A,0x88,0x8C,0xE4,0x00,0x6F,0x24,0xE4,0x00,0x00, +0x1F,0x21,0xA0,0x2C,0x88,0x6A,0x88,0x8C,0xE4,0x00,0x70,0x80,0x88,0x6A,0x05,0x80, +0xFF,0xC9,0x8C,0xFF,0xFF,0x88,0x8C,0xE4,0x00,0x5C,0xF0,0x88,0x8C,0x88,0x6A,0xE4, +0x00,0x5A,0x78,0x98,0x62,0xE4,0x00,0x57,0xF8,0xC2,0xE0,0x10,0x01,0x98,0x60,0xEC, +0x17,0x07,0xDC,0xC1,0xA0,0x10,0x01,0xEC,0x0D,0x07,0xE0,0xE4,0x00,0x64,0x34,0x98, +0x60,0xE4,0x00,0x5C,0x34,0x98,0x60,0x88,0x8C,0xE4,0x00,0x5B,0x24,0x88,0x6F,0xE4, +0x00,0x57,0x50,0x98,0x60,0xE4,0x00,0x5D,0x74,0x21,0x64,0x5E,0xED,0x6D,0x07,0xE0, +0x98,0x61,0xE4,0x00,0x63,0xE6,0x98,0x63,0xE4,0x00,0x5B,0xE6,0xE4,0x00,0x00,0x2B, +0x21,0x6C,0x46,0x98,0x61,0x88,0x8C,0xE4,0x00,0x5A,0xC8,0x98,0x61,0xE4,0x00,0x5D, +0x24,0xE4,0x00,0x61,0x08,0x1C,0x63,0x13,0x5C,0x83,0x00,0x88,0x6A,0x5C,0x82,0x93, +0x20,0x00,0x1B,0x50,0x80,0x14,0xE4,0x00,0x5E,0x26,0x88,0x6A,0x98,0x8C,0xE4,0x00, +0x5D,0x48,0xC2,0xE0,0x10,0x01,0x88,0x6E,0xED,0xD7,0x07,0xE4,0xE7,0xFF,0xF5,0xA2, +0x88,0x6E,0x0D,0xE1,0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E,0x0D,0x81,0x12,0x0D,0x61, +0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20,0xE7,0xFF,0xF8,0xBF,0xC2,0xE0, +0x10,0x01,0x9C,0x38,0xEC,0x77,0x03,0x2C,0x0D,0x41,0x00,0x0D,0x21,0x04,0x89,0x43, +0xE7,0xFF,0xFB,0xB8,0x25,0x44,0xD3,0x99,0x40,0x88,0x6A,0x98,0x80,0x9D,0x41,0xE4, +0x00,0x63,0x26,0x5D,0x4A,0x00,0xD1,0x44,0xFF,0x9E,0xE7,0xFF,0xE1,0xEC,0xC2,0xE0, +0x10,0x01,0xFE,0xF7,0x00,0xE6,0x0C,0x77,0x0B,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x06, +0x87,0x53,0x18,0x20,0xEF,0x17,0x06,0x87,0x0D,0x41,0x02,0x0D,0x21,0x06,0x9C,0x28, +0x85,0x29,0x1C,0x21,0xD8,0xC2,0xE0,0x10,0x01,0x0D,0x41,0x20,0x0D,0xC1,0x10,0xEE, +0xF7,0x00,0xE2,0x0D,0x21,0x24,0x0D,0x61,0x1C,0x0D,0x81,0x18,0x0D,0xA1,0x14,0x0D, +0xE1,0x0C,0x0E,0x01,0x08,0x0E,0x21,0x04,0x0E,0x41,0x00,0x5E,0xE0,0x41,0x89,0x43, +0x49,0xC1,0x01,0x24,0x64,0x59,0x1E,0xE3,0xFE,0xD2,0xE1,0x04,0x11,0xD0,0x67,0x04, +0x2A,0xD0,0x69,0x04,0x3A,0xE4,0x00,0x00,0xED,0x51,0x60,0x1A,0x9A,0xE0,0x20,0x60, +0x5C,0x9A,0xE0,0xD1,0x45,0x00,0x92,0x9A,0xE1,0x21,0x44,0x30,0x21,0x4C,0x24,0xD1, +0x46,0x00,0x32,0x9A,0xE0,0xCE,0xF7,0x00,0x34,0xC1,0xE0,0x10,0x01,0xC2,0x00,0x10, +0x01,0xFD,0xEF,0x08,0xD8,0xFE,0x10,0x07,0xA8,0x99,0x80,0xC2,0x40,0x10,0x01,0x8D, +0xF7,0x8E,0x17,0x89,0xAC,0x1E,0x2A,0xFE,0xFE,0x52,0x08,0x4A,0x88,0x6D,0x98,0x81, +0x88,0xAE,0xE4,0x00,0x6B,0x76,0x42,0xEF,0x64,0x25,0x44,0x41,0x42,0xF0,0x64,0x26, +0x24,0x29,0xD1,0x47,0x00,0x56,0x42,0xEC,0x94,0x0C,0x77,0x01,0x9D,0xA1,0x9D,0x82, +0x5D,0xAD,0x00,0xD5,0x6D,0xFE,0xCD,0xE4,0x00,0x00,0x41,0x51,0x60,0x1A,0xE4,0x00, +0x00,0x21,0x99,0x63,0xE7,0xFF,0xFF,0x3F,0x99,0x64,0xE7,0xFF,0xFF,0x33,0x9A,0xE0, +0x21,0x4A,0x06,0xE7,0xFF,0xFF,0x25,0x0E,0x41,0x02,0x0E,0x21,0x06,0x0E,0x01,0x0A, +0x0D,0xE1,0x0E,0x0D,0xC1,0x12,0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D, +0x41,0x22,0x0D,0x21,0x26,0x1C,0x21,0x28,0x85,0x29,0x1C,0x21,0xB8,0x0D,0x41,0x40, +0x0D,0x21,0x44,0x0D,0x61,0x3C,0x0D,0x81,0x38,0x89,0x44,0xD0,0x67,0x04,0xAD,0xC2, +0xF8,0x00,0x21,0xFE,0xF7,0xBA,0x84,0x4C,0x63,0x10,0xC1,0x60,0x10,0x01,0x8C,0x77, +0xC1,0x80,0x10,0x01,0x0E,0xE3,0x02,0xFD,0x6B,0x0A,0x9C,0xFD,0x8C,0x08,0xD8,0x86, +0xE9,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x06,0x87,0xC7,0x18,0xFF,0xDF,0xEF,0x17,0x06, +0x87,0xD0,0x88,0x02,0xFD,0x9A,0xE1,0x4E,0xF7,0x24,0xC6,0xF7,0x01,0x83,0x22,0xE1, +0x48,0xE4,0x00,0x00,0x93,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x06,0x87,0xC7,0x18,0xFF, +0xDF,0xEF,0x17,0x06,0x87,0xD1,0x47,0x01,0xDD,0x9A,0xE1,0x4E,0xF7,0x54,0x57,0x17, +0x8C,0x23,0x00,0xA6,0x56,0xF7,0x03,0x22,0xE0,0xA4,0x88,0x6A,0xE7,0xFF,0xFD,0x0C, +0xCC,0x8A,0x00,0x34,0xCC,0xAA,0x00,0x68,0x1C,0x61,0x04,0x8C,0x8C,0x8C,0xAB,0x50, +0xC0,0x1A,0xE4,0x00,0x18,0x54,0xE4,0x00,0x00,0x15,0x88,0x6A,0xE7,0xFF,0xFC,0xCC, +0x0D,0x81,0x3A,0x0D,0x61,0x3E,0x0D,0x41,0x42,0x0D,0x21,0x46,0x1C,0x21,0x48,0x85, +0x29,0xC2,0xE0,0x10,0x01,0x98,0x60,0xFE,0xF7,0x07,0xA8,0xCB,0x40,0xFF,0xFE,0x0B, +0x37,0x00,0x4F,0x19,0xFA,0x47,0x38,0xCE,0x43,0x19,0xC5,0x8C,0x78,0x5F,0x03,0x04, +0xCB,0x20,0xFF,0xFE,0x9E,0xE2,0x5C,0x79,0x17,0x48,0x78,0xD0,0xC3,0x00,0x10,0x01, +0xFF,0x18,0x07,0xDC,0xD6,0xF8,0xFE,0xDE,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x17, +0x07,0x9C,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x07,0xA0,0xC2,0xE0,0x10,0x01,0x9B,0x04, +0xEC,0x17,0x07,0xA4,0x98,0x64,0xC2,0xE0,0x10,0x01,0x98,0x80,0xEF,0x17,0x03,0x2C, +0xE7,0xFF,0xF7,0x19,0x20,0x64,0x3E,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x07,0x9E,0xE4, +0x00,0x00,0x41,0x20,0x68,0x3E,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x07,0xA2,0xE4,0x00, +0x00,0x23,0x9A,0xE0,0x20,0x6C,0x2E,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x07,0xA6,0x88, +0x77,0x85,0x29,0x20,0x64,0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x07,0x9C,0xE4,0x00, +0x00,0x3D,0x20,0x68,0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x07,0xA0,0xE4,0x00,0x00, +0x1F,0x20,0x6C,0x2E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x07,0xA4,0x85,0x29,0x1C,0x21, +0xE0,0xC2,0xE0,0x10,0x01,0x0D,0x41,0x18,0x0D,0x61,0x14,0x0D,0x81,0x10,0x0D,0xA1, +0x0C,0x0D,0xC1,0x08,0x0D,0xE1,0x04,0xEE,0xF7,0x08,0x22,0x0D,0x21,0x1C,0xC1,0x80, +0x10,0x01,0xC1,0x60,0x10,0x01,0x5D,0xE3,0x06,0x5D,0xC4,0x06,0x89,0x45,0x89,0xA6, +0x56,0xF7,0x01,0xFD,0x8C,0x08,0x44,0xFD,0x6B,0x08,0x14,0x22,0xE0,0xE0,0x98,0xA2, +0x25,0x44,0x43,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBB,0x94,0x8E,0xEA,0x10,0xB7,0x00, +0x0E,0xEB,0x02,0x5E,0xE0,0x29,0x88,0x6F,0x88,0x8E,0x48,0xA5,0x12,0xE7,0xFF,0x87, +0x58,0x5C,0x63,0x00,0x20,0x60,0x3C,0x0C,0x0C,0x00,0x0C,0x0D,0x00,0x98,0x61,0xE4, +0x00,0x00,0xED,0x21,0x45,0x38,0x21,0x40,0x28,0x21,0x4D,0x8E,0xE4,0x00,0x00,0xA7, +0x0E,0xEB,0x02,0x22,0xE4,0x36,0xE7,0xFF,0x8A,0x5A,0x98,0x62,0xE4,0x00,0x00,0x5D, +0x0E,0xEC,0x02,0x22,0xE4,0x86,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x08,0x36,0xC2,0xE0, +0x10,0x01,0xEC,0x97,0x08,0x22,0xE7,0xFF,0x90,0x76,0x88,0x6D,0xE7,0xFF,0x90,0x8E, +0xE4,0x00,0x00,0x15,0xE7,0xFF,0x89,0xFE,0x98,0x60,0x0C,0x0B,0x00,0xE4,0x00,0x00, +0x4B,0x88,0x6F,0x88,0x8E,0xE7,0xFF,0x8A,0x00,0x98,0x60,0xE4,0x00,0x00,0x2F,0xE7, +0xFF,0x89,0xC8,0x9A,0xE1,0x0E,0xEB,0x00,0xE4,0x00,0x00,0x11,0xE7,0xFF,0x89,0xAE, +0x98,0x62,0x0D,0x4C,0x00,0x0D,0xE1,0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E,0x0D,0x81, +0x12,0x0D,0x61,0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20,0x85,0x29,0xC3, +0x80,0x10,0x01,0xC3,0x60,0x10,0x01,0xC3,0x40,0x10,0x01,0xC3,0x20,0x10,0x01,0xC3, +0x00,0x10,0x01,0xFF,0x9C,0x08,0x28,0xFF,0x7B,0x08,0x78,0xFF,0x5A,0x08,0x19,0xFF, +0x39,0x0B,0x70,0xFF,0x18,0x08,0x68,0x20,0x69,0x7A,0x0A,0xFC,0x04,0x0B,0xD9,0x09, +0x43,0xD7,0xF5,0x5F,0xDE,0x06,0x4F,0xBE,0xFA,0x47,0xDD,0xF6,0x43,0xBE,0xED,0x5F, +0xAC,0x99,0x20,0x00,0x7D,0x0B,0xBC,0x07,0x0B,0x99,0x0B,0x43,0xBD,0xE5,0x5F,0xBD, +0x06,0x4F,0x9D,0xFA,0x47,0xBC,0xEE,0x43,0x9D,0xE5,0xC3,0x80,0x10,0xE8,0x20,0x05, +0x19,0x0E,0xF8,0x01,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x2F,0x0B,0x99,0x0B,0x0E, +0xF8,0x03,0x0B,0x39,0x0F,0x12,0xFA,0x00,0x0F,0x9B,0x01,0x0F,0x3B,0x03,0x52,0xF7, +0x02,0xE4,0x00,0x01,0x57,0xC3,0xA0,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFF,0xBD,0x08, +0x11,0xFE,0xF7,0x0B,0x90,0x20,0x6D,0x92,0x0B,0x79,0x01,0x0B,0xDC,0x01,0x43,0xDE, +0xDD,0x5F,0xDE,0x06,0x4F,0x7E,0xFA,0x47,0xDB,0xF6,0x43,0x7E,0xDD,0x5F,0x6C,0x99, +0x20,0x00,0x7D,0x0B,0x39,0x03,0x0B,0x7C,0x03,0x43,0x7B,0xCD,0x5F,0x7B,0x06,0x4F, +0x3B,0xFA,0x47,0x79,0xDE,0x43,0x3B,0xCD,0xC3,0x20,0x10,0xE8,0x20,0x03,0x61,0x0B, +0x37,0x17,0x0F,0x38,0x01,0x0B,0x37,0x19,0x0F,0x38,0x03,0x0B,0x37,0x47,0x0A,0xF7, +0x49,0x0E,0xF8,0x07,0x12,0xFA,0x00,0x52,0xF7,0x01,0x0F,0x38,0x05,0x1A,0xFA,0x00, +0x9A,0xE2,0x1A,0xFD,0x00,0xE4,0x00,0x01,0x5F,0xD0,0x64,0x01,0xD6,0x0B,0x3B,0x00, +0x0B,0x7B,0x02,0x43,0x79,0xDD,0x9F,0x6E,0x5F,0x63,0x9B,0x20,0x00,0x2F,0xC3,0x20, +0x10,0x01,0xEB,0x39,0x08,0x6B,0x0B,0x18,0x01,0x0F,0x17,0x47,0x9B,0x02,0x0F,0x37, +0x49,0x1B,0x17,0x00,0x12,0xFA,0x00,0x9B,0x1D,0x46,0xF7,0xC4,0x1A,0xFA,0x00,0xE4, +0x00,0x00,0xEB,0xD0,0x65,0x03,0x8E,0x13,0x7D,0x00,0x23,0x68,0xFE,0x0B,0x98,0x00, +0x0B,0x59,0x00,0x8F,0x5C,0x43,0x5A,0xD8,0x0B,0x98,0x02,0x0F,0x57,0x17,0x0B,0x59, +0x02,0x8F,0x5C,0x43,0x5A,0xD8,0x0B,0x98,0x04,0x0F,0x57,0x19,0x0B,0x59,0x08,0x8F, +0x5C,0x43,0x5A,0xD8,0x0F,0x57,0x47,0x0B,0x58,0x06,0x0B,0x19,0x0A,0x8F,0x1A,0x43, +0x78,0xD8,0x0F,0x77,0x49,0xE4,0x00,0x00,0x55,0x23,0x64,0x9A,0x0B,0x38,0x01,0x0F, +0x37,0x17,0x0B,0x38,0x03,0x0F,0x37,0x19,0x0B,0x38,0x05,0x0B,0x18,0x07,0x0F,0x37, +0x47,0x0F,0x17,0x49,0x9B,0x3E,0x13,0x1A,0x00,0x47,0x18,0xCC,0x1B,0x1A,0x00,0x9B, +0x02,0x1B,0x17,0x00,0x85,0x29,0xC3,0x00,0x10,0x01,0xFF,0x18,0x08,0x28,0xFE,0xE0, +0x7F,0xFF,0x0E,0xF8,0x01,0x0E,0xF8,0x03,0x0E,0xF8,0x05,0x0E,0xF8,0x07,0x9B,0x01, +0xC3,0x20,0x10,0x01,0xFF,0x39,0x03,0x6C,0x1B,0x19,0x01,0xC3,0x00,0x10,0x01,0xFF, +0x18,0x08,0x94,0x0E,0xF8,0x01,0x0E,0xF8,0x03,0x0E,0xF8,0x05,0x0E,0xF8,0x07,0xC3, +0x00,0x10,0x01,0xF8,0x18,0x08,0x84,0xC3,0x00,0x10,0x01,0xFF,0x18,0x0B,0x70,0x0E, +0xF8,0x01,0x0E,0xF8,0x03,0x0E,0xF8,0x05,0x0E,0xF8,0x07,0x0E,0xF8,0x09,0x0E,0xF8, +0x0B,0x0E,0xF8,0x0D,0x0E,0xF8,0x0F,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xA1,0xC2, +0xE0,0x10,0x01,0x18,0x19,0x00,0xF3,0x17,0x08,0x19,0x9B,0x3C,0x47,0x18,0xCC,0xFB, +0x17,0x08,0x19,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x11,0x85,0x29,0xC3,0x00,0x10, +0x01,0xC3,0x40,0x10,0x01,0x5C,0x63,0x00,0xFF,0x18,0x09,0x0C,0x9A,0xE0,0xFF,0x5A, +0x09,0xBC,0xE4,0x00,0x00,0x31,0x4F,0x37,0x10,0x0B,0x98,0x00,0x0B,0x78,0x02,0x8F, +0x3A,0x8F,0x7C,0x9E,0xE1,0x0F,0x79,0x00,0x9F,0x04,0x5F,0x37,0x00,0xD4,0x79,0xFF, +0x4D,0x85,0x29,0x1C,0x21,0xE0,0x0D,0x41,0x18,0x0D,0x61,0x14,0x0D,0xC1,0x08,0x0D, +0x21,0x1C,0x0D,0x81,0x10,0x0D,0xA1,0x0C,0x18,0x01,0x07,0xC1,0x40,0x10,0x01,0xC1, +0x60,0x10,0x01,0x5D,0xC3,0x00,0xFD,0x4A,0x08,0x13,0xFD,0x6B,0x08,0x12,0x21,0xC8, +0x36,0x18,0x0A,0x00,0x18,0x0B,0x00,0xE4,0x00,0x00,0x15,0x21,0xCC,0x1A,0x18,0x0A, +0x00,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x1A,0x10,0x77,0x01,0x12,0xF7,0x04,0xC1, +0xA0,0x10,0x01,0x40,0x63,0xBB,0xC1,0x80,0x10,0x01,0xE7,0xFF,0xFE,0xE6,0xFD,0xAD, +0x08,0x18,0xFD,0x8C,0x0B,0x90,0xD1,0xC1,0x04,0x2E,0x12,0xEA,0x00,0x22,0xE1,0xFA, +0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x09,0xBC,0x0F,0x17,0x02,0xC3,0x00,0x29,0xA8,0x20, +0x00,0x39,0x13,0x01,0x07,0x9F,0x01,0x5F,0x18,0x00,0x1B,0x01,0x07,0xC3,0x00,0x10, +0x01,0x9E,0xE4,0xFF,0x18,0x09,0xF0,0xD6,0xF8,0xFF,0x0E,0x12,0xE1,0x07,0xD2,0xE4, +0x01,0x49,0xE7,0xFF,0xE7,0xAE,0x20,0x68,0x84,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08, +0x3C,0xD2,0xE9,0x00,0xB5,0x12,0xEC,0x00,0x26,0xE4,0x3D,0x12,0xEB,0x00,0x9E,0xE1, +0x1A,0xEB,0x00,0xE4,0x00,0x00,0x0F,0x18,0x0B,0x00,0x12,0xEB,0x00,0x26,0xE5,0x01, +0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x00,0xE2,0x22,0xE8,0x2A,0x18,0x0D,0x00,0xE4,0x00, +0x00,0x59,0x9A,0xE1,0x1A,0xEA,0x00,0xE4,0x00,0x00,0x47,0x12,0xEA,0x00,0x22,0xE4, +0x7E,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x00,0xE2,0x22,0xE8,0x2A,0x18,0x0D,0x00,0xE4, +0x00,0x00,0x1D,0xE7,0xFF,0xE6,0xEC,0x20,0x68,0x18,0x18,0x0C,0x00,0x12,0xED,0x00, +0x22,0xE0,0x2C,0x9E,0xFF,0x18,0x0C,0x00,0x1A,0xED,0x00,0x0D,0xC1,0x0A,0x0D,0xA1, +0x0E,0x0D,0x81,0x12,0x0D,0x61,0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20, +0x85,0x29,0x98,0x62,0xE7,0xFF,0xFD,0x9F,0xC3,0x00,0x10,0x01,0x5C,0x84,0x00,0xFF, +0x18,0x09,0x0C,0x20,0xA0,0x6C,0xE4,0x00,0x00,0x4B,0x4F,0x37,0x08,0x9E,0xE1,0x43, +0x59,0xC4,0x8F,0x23,0x0B,0x5A,0x00,0x0F,0x59,0x01,0xE4,0x00,0x00,0x0D,0x9A,0xE0, +0x5F,0x37,0x00,0xD4,0x99,0xFF,0x3D,0xE4,0x00,0x00,0x7B,0x20,0xA4,0xE6,0xE4,0x00, +0x00,0x31,0x4F,0x37,0x08,0x9E,0xE1,0x43,0x43,0xCC,0x8F,0x38,0x0B,0x5A,0x00,0x0F, +0x59,0x01,0xE4,0x00,0x00,0x0D,0x9A,0xE0,0x5F,0x37,0x00,0xD4,0x99,0xFF,0x3D,0xC2, +0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x1A,0x10,0x77,0x01,0x12,0xF7,0x04,0x40,0x63,0xBB, +0xE7,0xFF,0xFC,0x5B,0x85,0x29,0x9C,0x38,0x98,0x63,0x0D,0x21,0x04,0xE7,0xFF,0x6C, +0xAA,0x0D,0x21,0x06,0x9C,0x28,0xE4,0x00,0x72,0xAD,0x9A,0xED,0x1C,0x21,0xE8,0x0D, +0x41,0x10,0x0D,0x61,0x0C,0xC1,0x60,0x10,0x01,0xFD,0x4B,0x0B,0x1A,0x1A,0xEA,0x04, +0x9A,0xE1,0x1A,0xEA,0x01,0xFE,0xE0,0x07,0xFF,0x0E,0xEA,0x07,0x0E,0xEA,0x09,0xC2, +0xE0,0x10,0x01,0x9B,0x02,0xFB,0x17,0x08,0x72,0x52,0xE0,0xAA,0x0D,0x21,0x14,0x0E, +0xEA,0x0B,0x50,0x60,0x19,0x98,0x80,0xE7,0xFF,0x2C,0x66,0x52,0xE0,0x1D,0xFA,0xEB, +0x0B,0x1A,0x9A,0xE4,0x1A,0xEA,0x0C,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x00,0xD5,0xC2, +0xE0,0x10,0x01,0xEC,0x17,0x08,0x60,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0x8C,0xC2, +0xE0,0x10,0x01,0xEC,0x17,0x08,0x87,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x54,0xC2, +0xE0,0x10,0x01,0xF8,0x17,0x08,0x5C,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x8A,0xC2, +0xE0,0x10,0x01,0xF8,0x17,0x08,0x83,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x48,0xC2, +0xE0,0x10,0x01,0xF8,0x17,0x08,0x9C,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x76,0xC2, +0xE0,0x10,0x01,0xF8,0x17,0x08,0x67,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0x65,0xC2, +0xE0,0x10,0x01,0xEC,0x17,0x08,0x58,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0x31,0xC2, +0xE0,0x10,0x01,0xF8,0x17,0x08,0x77,0xC2,0xE0,0x10,0x01,0x9B,0x03,0xFB,0x17,0x08, +0x66,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x07,0x8C,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08, +0x84,0xC2,0xE0,0x10,0x01,0xFF,0x00,0x01,0xF4,0xEF,0x17,0x06,0x85,0xC2,0xE0,0x10, +0x01,0x50,0x60,0x14,0xF8,0x17,0x08,0x9D,0x50,0x80,0x50,0xE7,0xFF,0x7B,0xB8,0x52, +0xE0,0x64,0x50,0x80,0x35,0x0E,0xE1,0x01,0x50,0xA0,0x59,0xFC,0xC0,0x07,0xFF,0xFC, +0xE0,0x07,0xFF,0x99,0x00,0xC0,0x60,0x10,0x01,0xFC,0x63,0x01,0x88,0xE7,0xFF,0x98, +0xE2,0xC0,0x60,0x10,0x01,0x98,0x80,0xFC,0x63,0x09,0xBC,0x50,0xA0,0x3C,0xE7,0xFF, +0x9B,0xE4,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x90,0x18,0x17,0x04,0x18,0x17,0x05, +0x18,0x17,0x06,0x18,0x17,0x34,0x18,0x17,0x35,0x18,0x17,0x36,0xC2,0xE0,0x10,0x01, +0xF8,0x17,0x08,0x50,0xC2,0xE0,0x10,0x01,0xF3,0x37,0x00,0xC0,0xC2,0xF4,0x00,0x01, +0xCB,0x17,0x3D,0xF9,0xCA,0xF7,0x3D,0xF8,0x1B,0x38,0x00,0xC3,0x00,0x10,0x01,0xF3, +0x18,0x07,0x09,0x1B,0x17,0x00,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0x3F,0x53,0x18, +0x04,0xEF,0x17,0x08,0x3F,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x00,0x01,0xFF,0x18,0x1D, +0x58,0xEF,0x17,0x03,0xE4,0xC2,0xE0,0x10,0x01,0x53,0x00,0xDF,0xEF,0x17,0x08,0x93, +0xC2,0xE0,0x10,0x01,0x53,0x00,0xCA,0xEF,0x17,0x08,0x25,0xC2,0xE0,0x10,0x01,0xC3, +0x00,0x00,0x01,0xFF,0x18,0x1B,0xCF,0xEF,0x17,0x03,0xF8,0xC2,0xE0,0x10,0x01,0xC3, +0x00,0x00,0x01,0xFF,0x18,0x19,0x89,0xEF,0x17,0x04,0x18,0xC2,0xE0,0x10,0x01,0xC3, +0x00,0x00,0x01,0xFF,0x18,0x1A,0x62,0xEF,0x17,0x04,0x14,0xC2,0xE0,0x10,0x01,0xF8, +0x17,0x0B,0x40,0xFE,0xF7,0x0B,0x40,0xC3,0x60,0x10,0x01,0x18,0x17,0x01,0x18,0x17, +0x02,0x18,0x17,0x03,0x0C,0x17,0x05,0x0C,0x17,0x07,0x0C,0x17,0x0B,0x0C,0x17,0x09, +0xC3,0x40,0x10,0x01,0xC3,0x20,0x10,0x01,0x9A,0xE0,0xFF,0x7B,0x09,0x0C,0xFF,0x5A, +0x0C,0x96,0xFF,0x39,0x09,0x48,0x43,0x17,0xDC,0x0C,0x18,0x01,0x43,0x17,0xD4,0x0C, +0x18,0x01,0x4F,0x17,0x08,0x8F,0x19,0x0C,0x18,0x00,0x9E,0xE2,0x5E,0xE7,0x49,0x23, +0xFF,0x9D,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18,0x85,0x29, +0xE4,0x00,0x6A,0xF1,0x1C,0x21,0xE8,0x0D,0x21,0x14,0xE7,0xFF,0xCD,0x74,0xE7,0xFF, +0xA4,0x36,0xE7,0xFF,0xCC,0x96,0xE7,0xFF,0xF0,0x08,0x98,0x60,0x98,0x81,0xE7,0xFF, +0x66,0x0C,0x98,0x81,0x98,0x60,0x88,0xA4,0xE7,0xFF,0x66,0x12,0x98,0x81,0x98,0x60, +0x88,0xA4,0xE7,0xFF,0x66,0x28,0x98,0x80,0x98,0x61,0x88,0xA4,0xE7,0xFF,0x66,0x14, +0x98,0xA0,0x98,0x62,0x98,0x81,0xE7,0xFF,0x66,0x00,0x98,0x62,0x98,0x80,0xE7,0xFF, +0x66,0x76,0x98,0x60,0x50,0x80,0x66,0xE7,0xFF,0x66,0x7E,0x98,0x61,0x50,0x80,0x66, +0xE7,0xFF,0x66,0x6C,0x98,0x62,0x50,0x80,0xF3,0xE7,0xFF,0x66,0x5A,0x98,0x60,0xFC, +0x80,0xA0,0x00,0xE7,0xFF,0x66,0xA2,0x98,0x61,0xFC,0x80,0xA0,0x00,0xE7,0xFF,0x66, +0x8E,0x98,0x62,0xFC,0x80,0xA0,0x00,0xE7,0xFF,0x66,0x7A,0xFC,0x80,0x01,0x26,0x98, +0x62,0xE7,0xFF,0x66,0xC2,0xFC,0x60,0x01,0x5E,0xE7,0xFF,0x96,0x60,0xE7,0xFF,0xFA, +0x3A,0x98,0x61,0xE7,0xFF,0x45,0xCA,0xE7,0xFF,0x31,0xFE,0x50,0x60,0x1B,0xE7,0xFF, +0x6A,0xB0,0x9A,0xEE,0x0E,0xE1,0x00,0x52,0xE0,0x14,0x0E,0xE1,0x04,0xCA,0xE0,0x07, +0xD0,0x98,0xC8,0x0E,0xE1,0x08,0x98,0xAE,0x88,0xE6,0x99,0x0A,0x98,0x6A,0x98,0x8C, +0xE7,0xFF,0x26,0x0E,0x98,0x81,0x98,0x60,0xE7,0xFF,0xCB,0xB0,0x50,0x60,0x10,0xE7, +0xFF,0xCB,0xE2,0xE4,0x00,0x3F,0x22,0xE7,0xFF,0xF9,0x7E,0x98,0x80,0x98,0x60,0xE7, +0xFF,0x23,0xD0,0xE7,0xFF,0xB7,0x36,0xE7,0xFF,0xB6,0x2C,0xC2,0xE0,0x10,0x01,0xF0, +0x77,0x03,0x6E,0xE7,0xFF,0xCB,0x7A,0x9B,0x00,0xCA,0xE0,0x48,0x00,0xC3,0x17,0x00, +0x0D,0xC3,0x17,0x00,0x0F,0x53,0x18,0x04,0xC3,0x17,0x00,0x0D,0xC3,0x17,0x00,0x0F, +0x53,0x18,0x08,0xC3,0x17,0x00,0x0D,0xC2,0xE0,0x01,0x1F,0x52,0xF7,0x06,0xC2,0xE0, +0x01,0x1D,0xFC,0x60,0x01,0x40,0xE7,0xFF,0xCB,0x24,0x50,0x60,0x20,0xE7,0xFF,0xCB, +0x2E,0x98,0x61,0x50,0x80,0x13,0x50,0xA0,0x37,0x98,0xC8,0xFC,0xE0,0x01,0x0D,0xE7, +0xFF,0xAA,0x6A,0xC3,0x00,0x00,0x01,0xC2,0xE0,0x10,0x01,0xFF,0x18,0x46,0xAE,0x0D, +0x21,0x16,0xEF,0x17,0x03,0xD0,0x1C,0x21,0x18,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEF, +0x17,0x00,0xE2,0x23,0x05,0x08,0xEE,0xF7,0x00,0xE2,0x22,0xE8,0xEC,0xC3,0x00,0x10, +0x01,0xC2,0xE0,0x10,0x01,0xFF,0x18,0x08,0x4A,0xFE,0xF7,0x08,0x7C,0x0B,0x38,0x01, +0xC3,0x60,0x10,0x01,0x0F,0x37,0x01,0xC3,0x40,0x10,0x01,0x0B,0x38,0x03,0xFF,0x7B, +0x0A,0x8C,0x0F,0x37,0x03,0x0B,0x18,0x05,0xFF,0x5A,0x0B,0x80,0x0F,0x17,0x05,0x9A, +0xE0,0xE4,0x00,0x00,0x5D,0xC3,0x60,0x10,0x01,0xC3,0x40,0x10,0x01,0x9A,0xE0,0xFF, +0x7B,0x08,0xA4,0xFF,0x5A,0x08,0xD8,0x43,0x17,0xDC,0x43,0x37,0xD4,0x0B,0x39,0x01, +0x0F,0x38,0x01,0x9E,0xE2,0x5E,0xE6,0x89,0x23,0xFF,0xBD,0xE7,0xFF,0xFF,0x45,0x43, +0x17,0xDC,0x43,0x37,0xD4,0x0B,0x39,0x01,0x0F,0x38,0x01,0x9E,0xE2,0x5E,0xE2,0x09, +0x23,0xFF,0xBD,0x85,0x29,0xC3,0x00,0x10,0x01,0xC3,0x60,0x10,0x01,0x9A,0xE0,0xFF, +0x18,0x0C,0x96,0xFF,0x7B,0x08,0xA4,0x43,0x37,0xC4,0x43,0x57,0xDC,0x0B,0x5A,0x01, +0x0F,0x59,0x01,0x9E,0xE2,0x5E,0xE6,0x89,0x23,0xFF,0xBD,0xC2,0xE0,0x10,0x01,0xFE, +0xF7,0x08,0x7C,0x0B,0x37,0x01,0x0F,0x38,0x35,0x0B,0x37,0x03,0x0A,0xF7,0x05,0x0F, +0x38,0x37,0x0E,0xF8,0x39,0x85,0x29,0xE4,0x00,0x68,0xED,0xC2,0xE0,0x10,0x01,0xFF, +0x20,0xDF,0x9F,0xEB,0x17,0x08,0x87,0x47,0x18,0xCC,0x9B,0x3E,0xEF,0x17,0x08,0x87, +0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0x71,0x47,0x18,0xCC,0xEF,0x17,0x08,0x71,0x85, +0x29,0xE4,0x00,0x71,0x9D,0xE4,0x00,0x71,0x3B,0xE4,0x00,0x71,0xCB,0xC2,0xE0,0x10, +0x01,0x88,0xC3,0xF3,0x17,0x00,0xC0,0x23,0x08,0x4A,0xF2,0xF7,0x00,0xC0,0x22,0xE8, +0x2E,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x07,0x09,0xC3,0x00,0x10,0x01,0x9A,0xE0,0xFF, +0x18,0x09,0x0C,0x8B,0x38,0x5F,0x57,0x00,0x27,0x44,0x3D,0x5E,0xE3,0x01,0x20,0x00, +0x25,0x5E,0xE3,0x29,0x20,0x00,0x31,0x0B,0x59,0x01,0x4F,0x5A,0x08,0x0F,0x59,0x01, +0x9E,0xE1,0x9F,0x22,0x5E,0xE3,0x49,0x23,0xFF,0x79,0xC2,0xE0,0x10,0x01,0xC3,0x40, +0x10,0x01,0xF3,0x77,0x0B,0x1A,0xFF,0x5A,0x08,0x86,0x1F,0xBB,0xFF,0x0A,0xFA,0x01, +0x9B,0x20,0xE4,0x00,0x00,0x57,0xD7,0xB9,0x00,0xB8,0x0B,0xD8,0x00,0x0B,0x98,0x02, +0x8F,0x9E,0xCB,0xD7,0x20,0x00,0xC3,0x80,0x1B,0xCC,0x4A,0xFE,0xB8,0x0B,0x98,0x00, +0x53,0xD7,0x40,0x5F,0x84,0x19,0x9F,0x21,0x4A,0xFE,0xB8,0x9F,0x02,0x5F,0x99,0x04, +0xD7,0x7C,0xFE,0xB5,0x98,0x60,0x0E,0xFA,0x01,0x88,0x83,0x98,0xA0,0xE7,0xFF,0xB3, +0x4F,0x9C,0x38,0x0D,0x41,0x00,0x0D,0x21,0x04,0xC1,0x40,0x10,0x01,0x20,0x64,0x62, +0xE7,0xFF,0xB4,0x6A,0x20,0x64,0x56,0xF2,0xEA,0x08,0x48,0x9E,0xE1,0xFA,0xEA,0x08, +0x48,0xE4,0x00,0x00,0x19,0xE7,0xFF,0xB4,0xF0,0xF8,0x0A,0x08,0x48,0xE7,0xFF,0xDA, +0x78,0x9A,0xE3,0x20,0x64,0x34,0xE7,0xFF,0xDA,0x66,0x5C,0x60,0x49,0x4A,0xE3,0x4B, +0xC3,0x00,0x10,0x01,0xF3,0x38,0x08,0x48,0xD6,0xF9,0x02,0x1D,0xC2,0xE0,0x10,0x01, +0xF8,0x17,0x08,0x9C,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x8A,0xC2,0xE0,0x10,0x01, +0xF8,0x17,0x08,0x83,0xC2,0xE0,0x10,0x01,0xF8,0x18,0x08,0x48,0xF8,0x17,0x08,0x9D, +0x0D,0x41,0x02,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x06,0xEB,0x17,0x08,0x87,0x9C,0x28, +0x53,0x18,0x80,0xEF,0x17,0x08,0x87,0xE7,0xFF,0x64,0xF3,0x0D,0x41,0x02,0x0D,0x21, +0x06,0x9C,0x28,0x85,0x29,0x9C,0x38,0xC3,0x14,0x00,0x01,0x0D,0x21,0x04,0xCA,0xF8, +0x22,0x00,0x0B,0x37,0x01,0xCB,0x18,0x26,0x18,0x9B,0x3F,0x0F,0x37,0x01,0x0B,0x38, +0x01,0x53,0x39,0x02,0x0F,0x38,0x01,0x0B,0x17,0x01,0xFC,0x60,0x01,0x00,0x0C,0x17, +0x01,0xE7,0xFF,0xC6,0x0E,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x06,0xEB,0x17,0x00,0xD5, +0x9C,0x28,0xC7,0x18,0xFE,0xFF,0xEF,0x17,0x00,0xD5,0x85,0x29,0x5C,0xC6,0x00,0x9A, +0xE0,0xE4,0x00,0x00,0x45,0x4F,0x17,0x08,0x4F,0x57,0x10,0x43,0x23,0xC4,0x8F,0x45, +0x8F,0x04,0x0F,0x5A,0x02,0x0B,0x18,0x01,0x4F,0x5A,0x42,0x9E,0xE1,0x43,0x18,0xD5, +0x0F,0x19,0x01,0x5F,0x17,0x00,0xD4,0xD8,0xFE,0xFD,0x85,0x29,0x9C,0x38,0x0D,0x21, +0x04,0xE4,0x00,0x38,0x32,0x0D,0x21,0x06,0xFC,0x60,0x01,0x00,0x9C,0x28,0xE7,0xFF, +0xC5,0x45,0x9C,0x38,0x0D,0x21,0x04,0xE4,0x00,0x38,0x06,0x0D,0x21,0x06,0xFC,0x60, +0x01,0x00,0x9C,0x28,0xE7,0xFF,0xC5,0x09,0x9C,0x38,0x98,0x80,0x0D,0x21,0x04,0x98, +0x61,0xE7,0xFF,0xE3,0x1A,0x98,0x60,0xE7,0xFF,0x63,0x2A,0x98,0x61,0x98,0x80,0xE7, +0xFF,0xE8,0x28,0x98,0x62,0x98,0x80,0xE7,0xFF,0xE8,0x18,0x0D,0x21,0x06,0x98,0x63, +0x98,0x80,0x9C,0x28,0xE7,0xFF,0xE7,0xFF,0x98,0x64,0x98,0x80,0xE7,0xFF,0xE2,0xC5, +0x9C,0x38,0x0D,0x21,0x04,0xE7,0xFF,0xD7,0xE8,0x24,0x64,0x29,0x20,0x69,0x8A,0xE4, +0x00,0x00,0x19,0xE7,0xFF,0xD7,0xCC,0xE4,0x00,0x00,0x57,0xE7,0xFF,0xC4,0xCA,0xC2, +0xE0,0x10,0x01,0xFE,0xF7,0x00,0xE6,0x0A,0xF7,0x09,0x40,0x63,0xBD,0x5E,0xE3,0x04, +0xC2,0xE1,0x76,0xEA,0x20,0x00,0x7D,0x98,0x62,0xE7,0xFF,0xE7,0x16,0x20,0x60,0x5A, +0x98,0x61,0x98,0x80,0xE7,0xFF,0xE2,0x34,0x0D,0x21,0x06,0x98,0x60,0x9C,0x28,0xE7, +0xFF,0x62,0x3B,0x98,0x62,0x98,0x80,0xE7,0xFF,0xE2,0x0E,0xFC,0x60,0x01,0x5E,0xE7, +0xFF,0x8E,0x48,0x0D,0x21,0x06,0x98,0x60,0x9C,0x28,0xE7,0xFF,0x61,0xBD,0x0D,0x21, +0x06,0x9C,0x28,0x85,0x29,0xD0,0x69,0x06,0x2D,0x4F,0x03,0x10,0xC2,0xF8,0x00,0x21, +0xFE,0xF7,0xBA,0xC4,0x8E,0xF8,0xC3,0x00,0x10,0x01,0x0F,0x37,0x02,0xFF,0x18,0x09, +0x48,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x09,0xF8,0x87,0x29,0xC3,0x00,0x10,0x01,0xFF, +0x18,0x0B,0x34,0x0F,0x38,0x02,0x0F,0x37,0x68,0x0F,0x38,0x06,0x0F,0x18,0x0A,0x0F, +0x37,0x6C,0x0F,0x17,0x70,0xE4,0x00,0x01,0x0B,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B, +0x28,0x0F,0x37,0x02,0x0F,0x38,0x68,0x0F,0x37,0x06,0x0E,0xF7,0x0A,0x0F,0x38,0x6C, +0x0E,0xF8,0x70,0xE4,0x00,0x00,0xCF,0xCE,0xE3,0x00,0x68,0xC3,0x60,0x10,0x01,0xCC, +0x63,0x00,0x1A,0xFF,0x7B,0x0A,0x9C,0x4C,0x63,0x10,0x8F,0x77,0x8F,0x03,0x9A,0xE0, +0x43,0x38,0xBC,0x43,0x5B,0xBC,0x0F,0x5A,0x02,0x0F,0x59,0x00,0x9E,0xE4,0x5E,0xED, +0x09,0x23,0xFF,0xBD,0xE4,0x00,0x00,0x6D,0x9C,0x7E,0xC3,0x40,0x10,0x01,0x5C,0x63, +0x00,0xFF,0x5A,0x0B,0xF4,0xCF,0x03,0x00,0x68,0xCC,0x63,0x00,0x1A,0x8F,0x58,0x4C, +0x63,0x10,0x8C,0x77,0x9A,0xE0,0x43,0x03,0xBC,0x43,0x3A,0xBC,0x0F,0x39,0x02,0x0F, +0x38,0x00,0x9E,0xE4,0x5E,0xED,0x09,0x23,0xFF,0xBD,0x85,0x29,0xD0,0x69,0x06,0x3D, +0x4F,0x03,0x10,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBA,0xEC,0x8E,0xF8,0xC3,0x00,0x10, +0x01,0x0F,0x37,0x02,0xFF,0x18,0x08,0xA4,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x08,0x7C, +0x87,0x29,0x0B,0x37,0x00,0xC3,0x00,0x10,0x01,0x4F,0x39,0x40,0xFF,0x18,0x0B,0x34, +0xE4,0x00,0x00,0x25,0x0B,0x37,0x00,0xC3,0x00,0x10,0x01,0x4F,0x39,0x40,0xFF,0x18, +0x0B,0x28,0x0F,0x38,0x00,0x0B,0x37,0x02,0x0A,0xF7,0x04,0x4F,0x39,0x40,0x4E,0xF7, +0x40,0x0F,0x38,0x04,0x0E,0xF8,0x08,0xE4,0x00,0x00,0xD9,0xCE,0xE3,0x00,0x34,0x8F, +0x17,0xCE,0xE3,0x00,0x68,0xC3,0x60,0x10,0x01,0xFF,0x7B,0x0A,0x9C,0x8F,0x77,0x9A, +0xE0,0x4F,0x37,0x08,0x43,0x58,0xBC,0x8F,0x3B,0x0B,0x5A,0x00,0x4F,0x5A,0x40,0x0F, +0x59,0x00,0x9E,0xE2,0x5E,0xE6,0x89,0x23,0xFF,0xA9,0xE4,0x00,0x00,0x73,0x1E,0xE3, +0xFE,0x5E,0xF7,0x00,0xCF,0x37,0x00,0x34,0xCE,0xF7,0x00,0x68,0xC3,0x60,0x10,0x01, +0x8F,0x19,0xFF,0x7B,0x0B,0xF4,0x8F,0x77,0x9A,0xE0,0x4F,0x37,0x08,0x43,0x58,0xBC, +0x8F,0x3B,0x0B,0x5A,0x00,0x4F,0x5A,0x40,0x0F,0x59,0x00,0x9E,0xE2,0x5E,0xE6,0x89, +0x23,0xFF,0xA9,0xE7,0xFF,0xFC,0xE5,0x9C,0x38,0x98,0x64,0x0D,0x41,0x00,0x0D,0x21, +0x04,0x98,0x80,0xE7,0xFF,0xDE,0x96,0xC1,0x40,0x10,0x01,0xEA,0xEA,0x00,0xD5,0xC6, +0xF7,0xFE,0xFF,0xEE,0xEA,0x00,0xD5,0xE7,0xFF,0xFA,0xEA,0xEA,0xEA,0x00,0xD5,0xC6, +0xF7,0x01,0x00,0x22,0xE3,0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xC0,0x3C,0xFC,0x60, +0x01,0x00,0xE7,0xFF,0xC0,0x0C,0xE7,0xFF,0xF5,0x4A,0x0D,0x21,0x06,0x0D,0x41,0x02, +0x98,0x60,0x9C,0x28,0xE7,0xFF,0xFD,0xD1,0x9C,0x38,0x0D,0x21,0x04,0x20,0x64,0x3E, +0x98,0x60,0xE7,0xFF,0xFD,0xB4,0x98,0x68,0xE4,0x00,0x00,0x19,0x98,0x62,0xE7,0xFF, +0xFD,0x9C,0x98,0x69,0x0D,0x21,0x06,0x9C,0x28,0xE7,0xFF,0xFD,0x87,0x9C,0x38,0x98, +0x60,0x0D,0x21,0x04,0xE7,0xFF,0xFD,0x70,0x0D,0x21,0x06,0x98,0x68,0x9C,0x28,0xE7, +0xFF,0xFD,0x5B,0x20,0x80,0x64,0xD0,0x84,0x00,0xFA,0x20,0x88,0x90,0x20,0x8C,0xA8, +0x5C,0x80,0x21,0x4B,0x0A,0x01,0x8A,0xF8,0xE4,0x00,0x00,0x49,0x53,0x00,0x19,0x8A, +0xF8,0xE4,0x00,0x00,0x37,0x53,0x00,0x19,0x9A,0xE1,0xE4,0x00,0x00,0x25,0x53,0x00, +0x32,0x8A,0xF8,0xE4,0x00,0x00,0x13,0x53,0x00,0x50,0x8A,0xF8,0xD0,0x69,0x0A,0xE5, +0x4F,0x43,0x10,0xC3,0x38,0x00,0x21,0xFF,0x39,0xBB,0x14,0x8F,0x3A,0xC3,0x40,0x10, +0x01,0x0F,0x79,0x02,0xFF,0x5A,0x08,0xA4,0xC3,0x20,0x10,0x01,0xFF,0x39,0x08,0x7C, +0x87,0x69,0xCF,0x23,0x00,0x68,0xCC,0xA3,0x00,0x34,0xC0,0x80,0x10,0x01,0x8C,0xBA, +0xFC,0x84,0x0A,0x9C,0x99,0x02,0x8C,0x99,0xCB,0xA0,0x01,0xF4,0x9B,0x20,0x43,0x65, +0xCC,0x0B,0x9B,0x00,0x4F,0x79,0x08,0x4F,0x9C,0x40,0x8F,0x64,0x0F,0x5B,0x02,0x5F, +0x5C,0x1D,0x4B,0xD8,0xB8,0x43,0x9C,0xD5,0x43,0x9E,0xE3,0xCF,0xDA,0x01,0xF4,0x43, +0x9C,0x40,0x8F,0x9E,0x43,0x9C,0xE8,0x0F,0x9B,0x00,0x9F,0x22,0x5F,0x26,0x89,0x23, +0xFF,0x3D,0xE4,0x00,0x01,0xCD,0x1F,0x23,0xFE,0x5F,0x39,0x00,0xCC,0xB9,0x00,0x34, +0xCF,0x39,0x00,0x68,0xC0,0x80,0x10,0x01,0x8C,0xBA,0xFC,0x84,0x0B,0xF4,0x99,0x02, +0x8C,0x99,0xCB,0xA0,0x01,0xF4,0x9B,0x20,0x43,0x65,0xCC,0x0B,0x9B,0x00,0x4F,0x79, +0x08,0x4F,0x9C,0x40,0x8F,0x64,0x0F,0x5B,0x02,0x5F,0x5C,0x1D,0x4B,0xD8,0xB8,0x43, +0x9C,0xD5,0x43,0x9E,0xE3,0xCF,0xDA,0x01,0xF4,0x43,0x9C,0x40,0x8F,0x9E,0x43,0x9C, +0xE8,0x0F,0x9B,0x00,0x9F,0x22,0x5F,0x26,0x89,0x23,0xFF,0x3D,0xE4,0x00,0x01,0x19, +0xC3,0x40,0x10,0x01,0x9B,0xC2,0xFF,0x5A,0x0B,0x28,0xCB,0xA0,0x01,0xF4,0x0F,0x7A, +0x02,0x0B,0x99,0x00,0x4F,0x9C,0x40,0x5F,0x7C,0x1D,0x43,0x9C,0xDD,0x49,0x18,0xB8, +0xCF,0x7B,0x01,0xF4,0x43,0x88,0xE3,0x43,0x9C,0xF0,0x8F,0x7C,0x43,0x7B,0xE8,0x0F, +0x7A,0x00,0x9F,0x22,0xC3,0x60,0x10,0x01,0x9F,0x44,0xFF,0x7B,0x08,0x82,0xD7,0x3B, +0xFE,0x86,0xE4,0x00,0x00,0x8D,0xC3,0x40,0x10,0x01,0x9B,0xC2,0xFF,0x5A,0x0B,0x34, +0xCB,0xA0,0x01,0xF4,0x0F,0x7A,0x02,0x0B,0x99,0x00,0x4F,0x9C,0x40,0x5F,0x7C,0x1D, +0x43,0x9C,0xDD,0x49,0x18,0xB8,0xCF,0x7B,0x01,0xF4,0x43,0x88,0xE3,0x43,0x9C,0xF0, +0x8F,0x7C,0x43,0x7B,0xE8,0x0F,0x7A,0x00,0x9F,0x22,0xC3,0x60,0x10,0x01,0x9F,0x44, +0xFF,0x7B,0x08,0x82,0xD7,0x3B,0xFE,0x86,0xE7,0xFF,0xF8,0x9B,0x9C,0x38,0x0D,0x21, +0x04,0x0D,0x41,0x00,0x89,0x43,0x98,0x60,0x88,0x8A,0xE7,0xFF,0xFC,0xB2,0x88,0x8A, +0x0D,0x21,0x06,0x0D,0x41,0x02,0x98,0x68,0x9C,0x28,0xE7,0xFF,0xFC,0x93,0x1C,0x21, +0xC8,0x0D,0x41,0x30,0x0D,0xA1,0x24,0x0D,0xC1,0x20,0x0D,0xE1,0x1C,0x0E,0x01,0x18, +0x0D,0x21,0x34,0x0D,0x61,0x2C,0x0D,0x81,0x28,0x0E,0x21,0x14,0x0E,0x41,0x10,0x0E, +0x61,0x0C,0x0E,0x81,0x08,0x0E,0xA1,0x04,0xC1,0xC0,0x10,0x01,0xFD,0xCE,0x08,0x86, +0x0A,0xEE,0x01,0xC7,0x17,0x7F,0xFF,0x0F,0x0E,0x01,0xC2,0x00,0x10,0x01,0xC1,0xA0, +0x10,0x01,0xC1,0xE0,0x10,0x01,0xC1,0x40,0x10,0x01,0x56,0xF7,0x08,0xFE,0x10,0x08, +0x54,0xFD,0xAD,0x08,0x60,0xFD,0xEF,0x08,0x5C,0xFD,0x4A,0x0B,0x90,0x22,0xE1,0x6C, +0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x07,0x8E,0x22,0xE5,0x40,0xC3,0x00,0x10,0x01,0x0A, +0xEA,0x18,0xFF,0x18,0x01,0x64,0x0B,0x58,0x0A,0xD7,0x57,0x01,0x04,0xCB,0x20,0x07, +0xFF,0x43,0x59,0xD5,0xD6,0xFA,0x00,0xAC,0x0A,0xEA,0x16,0x0B,0x18,0x06,0xD7,0x17, +0x00,0x5C,0x43,0x19,0xC5,0xD6,0xF8,0x01,0x18,0xE7,0xFF,0xE3,0xBA,0x9A,0xE3,0x0E, +0xED,0x00,0xC2,0xE0,0x10,0x01,0x18,0x10,0x00,0xF8,0x17,0x08,0x76,0x18,0x0F,0x00, +0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x67,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08,0x50, +0x22,0xE0,0x24,0x98,0x60,0xE7,0xFF,0xC2,0x8A,0x0E,0xED,0x02,0x22,0xE0,0x96,0x0A, +0xEE,0x01,0x56,0xF7,0x40,0xD2,0xE0,0x4B,0x62,0x98,0x63,0xE7,0xFF,0xE4,0xB0,0xE7, +0xFF,0x1C,0x40,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x76,0x9A,0xE1,0xE4,0x00,0x14, +0x21,0x22,0xE5,0x0E,0x0A,0xEE,0x01,0x57,0x17,0x08,0x23,0x00,0x2C,0xE7,0xFF,0xE2, +0xF2,0xE4,0x00,0x12,0xEF,0x57,0x17,0x40,0x23,0x00,0x94,0xC6,0xF7,0x20,0x00,0x22, +0xE0,0x7A,0xC2,0xE0,0x10,0x01,0x98,0x62,0xF3,0x17,0x08,0x76,0xC3,0x00,0x19,0x0A, +0x20,0x24,0x8F,0x9F,0x01,0xFB,0x17,0x08,0x76,0xE4,0x00,0x13,0xAF,0x0C,0x0D,0x00, +0xE4,0x00,0x13,0xA1,0xC2,0x20,0x10,0x01,0xFE,0x31,0x08,0x64,0x22,0xE8,0xAA,0x0A, +0xEE,0x01,0x56,0xF7,0x08,0x22,0xE0,0x68,0x12,0xF0,0x00,0x9E,0xE1,0x1A,0xF0,0x00, +0xE7,0xFF,0x1B,0x9E,0x12,0xF0,0x00,0xD2,0xE1,0x4D,0x49,0xE4,0x00,0x0E,0x75,0x18, +0x10,0x00,0xE4,0x00,0x11,0x25,0xC1,0x80,0x10,0x01,0xC1,0x60,0x10,0x01,0xFD,0x8C, +0x0B,0x70,0xFD,0x6B,0x08,0x28,0xD2,0xE3,0x38,0x96,0xE7,0xFF,0xCC,0x5E,0xC3,0x00, +0x10,0x01,0xC2,0xE0,0x10,0x01,0xFF,0x20,0x03,0xE8,0x20,0x68,0x1C,0xFF,0x20,0x01, +0xF4,0xEF,0x37,0x03,0x7B,0xEF,0x38,0x03,0x79,0x0A,0xEE,0x01,0x56,0xF7,0x08,0xD2, +0xE0,0x37,0x02,0xC1,0xC0,0x10,0x01,0xC2,0x00,0x10,0x01,0x12,0xEA,0x00,0xFD,0xCE, +0x08,0x94,0xFE,0x10,0x03,0x6C,0xD2,0xE1,0x0F,0xB9,0x0B,0x8B,0x04,0xC3,0x8F,0xFF, +0xE0,0x20,0x06,0x6D,0x08,0xAA,0x48,0x0B,0x2B,0x06,0x0B,0x6B,0x00,0x43,0xA5,0xCD, +0x08,0xCA,0x46,0x0B,0x4B,0x02,0x43,0xC6,0xE5,0x0B,0x0A,0x18,0x08,0x8A,0x16,0x42, +0xFA,0xC5,0x41,0x04,0xDD,0x42,0xFE,0xBB,0x41,0x3D,0x43,0x8E,0xE9,0x22,0xE1,0x84, +0x42,0x7C,0xDD,0x41,0x3A,0xCD,0x42,0x9D,0x9B,0x42,0x5E,0x4B,0x8E,0x92,0x22,0x80, +0x40,0x26,0x80,0x28,0x26,0xE0,0x2A,0xE4,0x00,0x00,0x8F,0x26,0xFD,0x0E,0x4E,0xB7, +0xFA,0x46,0x55,0xBE,0x42,0x52,0xAD,0x4E,0xB4,0xFA,0x46,0x95,0xA6,0x42,0xB4,0xAD, +0xD6,0xB2,0x01,0x74,0x42,0x98,0xD5,0x41,0x28,0x4B,0x42,0x74,0x9B,0x8E,0x69,0x22, +0x60,0x40,0x26,0x60,0x28,0x26,0xE0,0x2A,0xE4,0x00,0x00,0x2D,0x26,0xFC,0x4A,0x4E, +0xF3,0xFA,0x46,0x77,0x9E,0x42,0x73,0xBD,0x9A,0xE1,0xD6,0x72,0x06,0x18,0x42,0x45, +0xD5,0x42,0x66,0xDD,0x42,0x84,0xE5,0x42,0xF9,0xC5,0x41,0x32,0xA3,0x42,0xF3,0xBB, +0x8E,0xE9,0x22,0xE0,0xDC,0x43,0x9B,0xE5,0x41,0x39,0xD5,0x40,0xF2,0xE3,0x42,0xB3, +0x4B,0x8C,0xF5,0x20,0xE0,0x40,0x24,0xE0,0x28,0x26,0xE0,0x2A,0xE4,0x00,0x00,0x3B, +0x26,0xFC,0x66,0x4E,0xB7,0xFA,0x44,0x75,0xBE,0x40,0x63,0xAD,0x4E,0xA7,0xFA,0x44, +0xF5,0x3E,0x42,0xA7,0xAD,0xD6,0xA3,0x01,0xA0,0x43,0x58,0xD5,0x41,0x08,0x43,0x43, +0x5A,0xD3,0x43,0x38,0xCD,0x42,0x94,0xA3,0x43,0x39,0xCB,0x8F,0x48,0x8E,0x99,0x9A, +0xE0,0xD6,0x9A,0x00,0x45,0x8B,0x54,0x9A,0xE1,0x42,0x73,0x9B,0x42,0x52,0x93,0x8E, +0x53,0xD6,0x5A,0x01,0xB1,0xE4,0x00,0x00,0x6F,0x42,0xB8,0xCD,0x41,0x34,0x4B,0x43, +0x95,0xE3,0x8F,0x89,0x23,0x80,0x40,0x27,0x80,0x28,0x26,0xE0,0x2A,0xE7,0xFF,0xFF, +0x79,0x26,0xFE,0xE2,0x4E,0xFC,0xFA,0x47,0x97,0xE6,0x43,0x9C,0xBD,0x9A,0xE0,0xD7, +0x83,0x00,0xF0,0xE7,0xFF,0xFF,0x4D,0x8B,0x52,0x52,0xE0,0x10,0x43,0xDE,0xF3,0x43, +0xBD,0xEB,0x53,0x20,0x11,0x8F,0xBE,0x5F,0xBA,0x1F,0x4A,0xF7,0xC8,0x4F,0x37,0x21, +0x46,0xF7,0xCE,0x56,0xF7,0x0F,0xD2,0xE0,0x3B,0x5A,0x0C,0xCA,0x17,0x0C,0xAA,0x19, +0x0C,0x8A,0x47,0x0F,0x0A,0x49,0xE4,0x00,0x0E,0xB7,0xC2,0xE0,0x10,0x01,0x9B,0x3E, +0xF3,0x17,0x08,0x19,0x47,0x18,0xCC,0x98,0x63,0xFB,0x17,0x08,0x19,0xE7,0xFF,0xDB, +0x24,0x12,0xF0,0x00,0x1A,0xEA,0x10,0x12,0xF0,0x01,0x1A,0xEA,0x40,0xE7,0xFF,0x17, +0xA4,0x12,0xEA,0x00,0xD2,0xE1,0x3B,0xD6,0xE4,0x00,0x02,0x73,0x0A,0xEB,0x00,0xC2, +0xEF,0xFF,0xE4,0x23,0xFF,0x7B,0x0B,0xCB,0x02,0x0B,0x2A,0x16,0x0B,0x0A,0x18,0x43, +0xB9,0xBD,0x43,0x98,0xF5,0x0B,0x6A,0x46,0x0B,0x4A,0x48,0x42,0xFB,0xBD,0x43,0xDA, +0xF5,0x42,0xF7,0xBB,0x43,0xDE,0xF3,0x8E,0xFE,0x43,0xBD,0xEB,0x43,0x9C,0xE3,0x8F, +0x9D,0x5E,0xFC,0x1F,0x52,0xE0,0x10,0x4A,0xE0,0xB8,0x22,0xE2,0x9C,0x0F,0x6A,0x17, +0x0F,0x4A,0x19,0x0F,0x2A,0x47,0x0F,0x0A,0x49,0xE7,0xFF,0xFF,0x31,0x22,0xE6,0x52, +0x0A,0xEB,0x04,0xC2,0xEF,0xFF,0xE0,0x23,0xFE,0x29,0x0B,0xCA,0x16,0x0B,0xAA,0x18, +0x0B,0x0B,0x00,0x0B,0x2B,0x02,0x43,0x9E,0xC5,0x43,0x7D,0xCD,0x43,0xDE,0xBD,0x0B, +0x4B,0x06,0x43,0xDE,0xF3,0x43,0xBD,0xD5,0x43,0x9C,0xE3,0x43,0xBD,0xEB,0x43,0x7B, +0xDB,0x8F,0xBE,0x8F,0x7C,0xD7,0xBB,0x35,0x39,0xE4,0x00,0x0D,0x7F,0x0B,0x8C,0x03, +0x43,0x99,0xE5,0x5F,0x9C,0x06,0x4F,0x7C,0xFA,0x47,0x9B,0xE6,0x43,0x7C,0xDD,0xC3, +0x60,0x10,0xE8,0x20,0x00,0xD9,0x0B,0x8C,0x03,0xC3,0x60,0x10,0x01,0xEF,0x9B,0x08, +0x79,0xFF,0x7B,0x08,0x78,0x0B,0x8C,0x07,0x0F,0x9B,0x03,0xC3,0x60,0x10,0x01,0xEF, +0x1B,0x08,0x69,0xC3,0x00,0x10,0x01,0xFF,0x7B,0x08,0x68,0x0F,0x3B,0x03,0xF3,0x38, +0x08,0x19,0x53,0x39,0x02,0xFB,0x38,0x08,0x19,0x0B,0x0E,0x05,0x0F,0x0E,0x01,0x0B, +0x0E,0x07,0x0F,0x0E,0x03,0x0B,0x0C,0x09,0x0F,0x0C,0x01,0x0B,0x0C,0x0B,0x0F,0x0C, +0x03,0x0B,0x0C,0x0D,0x0E,0xEB,0x01,0x0F,0x0C,0x05,0xFE,0xE0,0x7F,0xFF,0x0B,0x0C, +0x0F,0x0E,0xEB,0x05,0x0E,0xEB,0x07,0x0E,0xEE,0x05,0x0E,0xEE,0x07,0x0E,0xEC,0x09, +0x0E,0xEC,0x0B,0x0F,0x0C,0x07,0x0E,0xEC,0x0D,0x0E,0xEC,0x0F,0x9B,0x01,0x12,0xF0, +0x01,0x0F,0x4B,0x03,0x1A,0xF0,0x00,0x42,0xF8,0xBD,0x1A,0xF0,0x01,0xE7,0xFF,0xFD, +0x69,0x0A,0xEA,0x17,0x0B,0x0B,0x01,0x43,0x18,0xBD,0x5F,0x18,0x06,0x4E,0xF8,0xFA, +0x47,0x17,0xC6,0x42,0xF8,0xBD,0xC3,0x00,0x10,0x01,0xEB,0x38,0x03,0x78,0xD6,0xF9, +0x01,0x2C,0x0A,0xEA,0x19,0x0B,0x0B,0x03,0x43,0x18,0xBD,0x5F,0x18,0x06,0x4E,0xF8, +0xFA,0x47,0x17,0xC6,0x42,0xF8,0xBD,0xC3,0x00,0x10,0x01,0xEB,0x38,0x03,0x7A,0xD6, +0xF9,0x2F,0xF8,0xE7,0xFF,0x15,0x60,0xD0,0x60,0x2F,0xBA,0xE7,0xFF,0xDB,0x36,0xC2, +0xE0,0x10,0x01,0xEF,0x17,0x07,0x8E,0xD3,0x01,0x2F,0x3E,0xE4,0x00,0x0B,0xEF,0x9A, +0xFE,0x0E,0xF1,0x01,0xC1,0xA0,0x10,0x01,0x13,0x2A,0x00,0xFD,0xAD,0x0B,0xA6,0x9B, +0x00,0x8A,0xED,0xE4,0x00,0x00,0x35,0x0B,0x57,0x01,0x9F,0x01,0x0F,0x4B,0x01,0x5F, +0x18,0x00,0x0B,0x57,0x03,0x1E,0xF7,0x30,0x0F,0x4B,0x03,0x9D,0x64,0xD7,0x19,0xFF, +0x56,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x08,0x3A,0x22,0xE4,0x26,0x99,0x60,0xE4,0x00, +0x00,0x5F,0xE7,0xFF,0xC4,0xEE,0x20,0x6B,0xD8,0xE7,0xFF,0xC4,0xE0,0x20,0x6C,0xAE, +0xE7,0xFF,0xFF,0xD9,0xCC,0x8B,0x00,0x30,0x88,0xCB,0x1C,0x84,0x10,0x9D,0x61,0x8C, +0x8A,0x5D,0x6B,0x00,0x1C,0x64,0x06,0x9C,0x88,0xE7,0xFF,0x50,0x5E,0x10,0xAA,0x00, +0xD4,0xAB,0xFF,0x25,0xE4,0x00,0x00,0x11,0xE7,0xFF,0x4F,0xB0,0xE7,0xFF,0xC4,0x7A, +0xC3,0x20,0x10,0x01,0xC3,0x00,0x10,0x01,0xC2,0xE0,0x10,0x01,0x20,0x68,0xD6,0x53, +0x40,0x4B,0xEF,0x58,0x08,0x89,0xEF,0x59,0x08,0x53,0x53,0x00,0x25,0xEF,0x17,0x08, +0x9F,0xC2,0x20,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFE,0x31,0x08,0x40,0xEF,0x17,0x08, +0x75,0x99,0x60,0xC2,0x60,0x10,0x01,0xC2,0x80,0x10,0x01,0x8A,0x51,0xE4,0x00,0x03, +0x19,0x53,0x40,0x32,0xEF,0x58,0x08,0x89,0xEF,0x59,0x08,0x53,0x53,0x00,0x19,0xE7, +0xFF,0xFF,0x9D,0x4E,0xEB,0x10,0x8E,0xEE,0x0B,0x17,0x00,0xC3,0x0F,0xFF,0xE4,0x20, +0x05,0x3B,0x0B,0x37,0x02,0xC3,0x2F,0xFF,0xE0,0x20,0x05,0x11,0xCE,0xEB,0x00,0x30, +0x8E,0xEA,0x0A,0x17,0x17,0x42,0x18,0x85,0x5E,0x10,0x06,0x4F,0x10,0xFA,0x0A,0xF7, +0x19,0x46,0x18,0x86,0x42,0xF9,0xBD,0x42,0x10,0xC5,0x5E,0xF7,0x06,0x4F,0x17,0xFA, +0x5E,0x10,0x06,0x46,0xF8,0xBE,0xE9,0xF3,0x08,0x89,0x42,0xF7,0xC5,0x43,0x11,0x5C, +0x5E,0xF7,0x06,0x13,0x58,0x00,0xD6,0xEF,0x00,0xE4,0xC3,0x00,0x10,0x01,0xEB,0x18, +0x08,0x53,0xD6,0x18,0x00,0x84,0x9B,0x03,0x27,0x48,0x57,0x1F,0x1A,0x01,0xE4,0x00, +0x00,0x19,0x9B,0x00,0x23,0x40,0x24,0x1F,0x1A,0xFF,0x5F,0x18,0x00,0x43,0x52,0x5C, +0x1B,0x1A,0x00,0x43,0x11,0x5C,0x13,0x18,0x00,0xD3,0x02,0x06,0xA1,0xEB,0x14,0x08, +0x75,0xD6,0xF8,0x00,0x8C,0xCE,0xEB,0x00,0x30,0x8E,0xEA,0x0F,0x37,0x19,0xE4,0x00, +0x00,0x9B,0xD6,0xEF,0x02,0x4C,0x43,0x2F,0xC5,0x40,0x77,0xC5,0x43,0x39,0xCB,0x42, +0xF8,0xBD,0x43,0x4F,0x7B,0x40,0x63,0xBB,0x8C,0x79,0x40,0x63,0xD3,0x40,0x63,0xC8, +0xE7,0xFF,0x10,0xD0,0x4E,0xEB,0x10,0x8E,0xEE,0x5C,0x63,0x06,0x0B,0x17,0x02,0x41, +0xEF,0x1D,0xCE,0xEB,0x00,0x30,0x8E,0xEA,0x0B,0x37,0x18,0xD7,0x19,0x00,0x58,0x41, +0xF8,0x7D,0xE4,0x00,0x00,0x0D,0x8D,0xF8,0x0D,0xF7,0x19,0xC2,0xE0,0x10,0x01,0xEA, +0xF7,0x08,0x9F,0xD6,0x17,0x00,0xCC,0xCE,0xEB,0x00,0x30,0x4F,0x0B,0x10,0x8E,0xEA, +0x8F,0x0E,0x0B,0x18,0x01,0x0F,0x17,0x17,0xE4,0x00,0x00,0xAB,0xC3,0x00,0x10,0x01, +0xE9,0xF8,0x08,0x53,0xD6,0x0F,0x02,0x4C,0x43,0x0F,0xBD,0x43,0x2F,0x7B,0x43,0x18, +0xC3,0x40,0x70,0xBD,0x42,0x17,0x85,0x40,0x63,0x83,0x8C,0x78,0x40,0x63,0xCB,0x40, +0x63,0xC0,0xE7,0xFF,0x0F,0xEC,0x4E,0xEB,0x10,0x8E,0xEE,0x5C,0x63,0x06,0x0B,0x17, +0x00,0x41,0xEF,0x1D,0xCE,0xEB,0x00,0x30,0x8E,0xEA,0x0B,0x37,0x16,0xD7,0x19,0x00, +0x58,0x41,0xF8,0x7D,0xE4,0x00,0x00,0x0D,0x8D,0xF8,0x0D,0xF7,0x17,0x4E,0xEB,0x10, +0xCF,0x0B,0x00,0x30,0x8E,0xEE,0x8F,0x0A,0x9D,0x61,0x0B,0x38,0x17,0x5D,0x6B,0x00, +0x0B,0x18,0x19,0x0F,0x37,0x01,0x0F,0x17,0x03,0x12,0xEA,0x00,0xD6,0xEB,0xF4,0x3D, +0xE7,0xFF,0xC0,0xD2,0x20,0x68,0x36,0x9B,0x08,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x03, +0x71,0xC2,0xE0,0x10,0x01,0x13,0x2A,0x00,0xF3,0x77,0x08,0x84,0x8B,0x0D,0xC2,0xE0, +0x10,0x01,0x9B,0x80,0xFE,0xF7,0x0B,0x74,0xFF,0x40,0x7F,0xFF,0xE4,0x00,0x00,0x9F, +0xD7,0x79,0x00,0x92,0x0F,0x57,0xFD,0x0F,0x57,0xFF,0x0F,0x57,0x01,0x0F,0x57,0x03, +0x8B,0x79,0x0B,0xB7,0x00,0xC3,0xAF,0xFF,0xE0,0x20,0x00,0x41,0x0B,0xB7,0xFD,0x0F, +0xB7,0x01,0x0B,0xB7,0xFF,0xE4,0x00,0x00,0x1B,0x0B,0xB8,0x01,0x0F,0xB7,0x01,0x0B, +0xB8,0x03,0x0F,0xB7,0x03,0x0B,0xB8,0x01,0x9F,0x81,0x0F,0xB7,0xFD,0x5F,0x9C,0x00, +0x0B,0xB8,0x03,0x1F,0x18,0x30,0x0F,0xB7,0xFF,0x9E,0xE8,0xD7,0x99,0xFD,0xAE,0xC2, +0xE0,0x10,0x01,0xFB,0x77,0x08,0x84,0xC2,0xE0,0x10,0x01,0x23,0x24,0x7A,0x9B,0x02, +0xFB,0x17,0x08,0xA1,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x03,0x70,0x9B,0x0A,0x9B,0x4A, +0x43,0x18,0xBD,0x9A,0xE0,0xE4,0x00,0x00,0x8F,0xF8,0x17,0x08,0xA1,0xE7,0xFF,0xFF, +0xCF,0x0B,0x6C,0x04,0x0B,0x8C,0x00,0x0B,0xAC,0x06,0x43,0x9C,0xDD,0x9E,0xE1,0x43, +0x98,0xE3,0x5E,0xF7,0x00,0x43,0x9C,0xD0,0x8F,0x9B,0x0B,0x6C,0x02,0x0F,0x8D,0x01, +0x43,0x7B,0xED,0x0F,0x8C,0x01,0x43,0x78,0xDB,0x43,0x7B,0xD0,0x8F,0x7D,0x5F,0x7B, +0x06,0x0F,0x6D,0x03,0x0F,0x6C,0x03,0x1D,0xAD,0x30,0x9D,0x88,0xD6,0xF9,0xFE,0x2E, +0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08,0x19,0x56,0xF7,0x02,0x22,0xE0,0x24,0x98,0x64, +0xE7,0xFF,0xD1,0x1E,0x13,0x0A,0x00,0xC2,0xE0,0x10,0x01,0x0E,0xA1,0x06,0x0E,0x81, +0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D,0xE1,0x1E, +0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32,0x0D, +0x21,0x36,0xFB,0x17,0x08,0x26,0x98,0x61,0x1C,0x21,0x38,0xE7,0xFF,0xB3,0x1F,0x18, +0x0F,0x00,0x9A,0xE4,0xE4,0x00,0x04,0xF3,0xD2,0xE4,0x01,0xA6,0x0A,0xEE,0x01,0x56, +0xF7,0x08,0x22,0xE0,0x3C,0x9A,0xE3,0x0C,0x11,0x01,0x0E,0xED,0x00,0xE4,0x00,0x04, +0xC7,0x12,0xEF,0x00,0x9E,0xE1,0x5E,0xF7,0x00,0x1A,0xEF,0x00,0xD2,0xE1,0x12,0xA1, +0x9A,0xE5,0x18,0x0F,0x00,0x0E,0xED,0x00,0xE4,0x00,0x04,0x91,0xD2,0xE5,0x09,0xF6, +0x12,0xEF,0x00,0x9E,0xE1,0x1A,0xEF,0x00,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08,0x84, +0x22,0xE9,0x4A,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08,0x19,0x56,0xF7,0x01,0x22,0xE1, +0x10,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xA1,0xC1,0x40,0x10,0x01,0xF2,0xEA,0x08, +0x11,0x22,0xE8,0x66,0x98,0x65,0xE7,0xFF,0xCF,0xB2,0x98,0x61,0xE7,0xFF,0xB2,0x1C, +0x9A,0xE1,0xFA,0xEA,0x08,0x11,0xE4,0x00,0x01,0x75,0xD2,0xE1,0x05,0x8E,0x98,0x65, +0xE7,0xFF,0xCF,0x7E,0x98,0x61,0xE7,0xFF,0xB1,0xE8,0xF8,0x0A,0x08,0x11,0xE4,0x00, +0x01,0x45,0x0B,0x0B,0x00,0x0B,0x4C,0x00,0x43,0x38,0xD5,0x5F,0x39,0x06,0x4E,0xF9, +0xFA,0x47,0x37,0xCE,0x42,0xF9,0xBD,0x5E,0xEC,0x99,0x20,0x00,0x7D,0x0A,0xEC,0x03, +0x0B,0x2B,0x03,0x43,0x39,0xBD,0x5F,0x39,0x06,0x4E,0xF9,0xFA,0x47,0x37,0xCE,0x42, +0xF9,0xBD,0xC2,0xE0,0x10,0xE8,0x20,0x01,0x95,0xC3,0x20,0x10,0x01,0xF2,0xF9,0x08, +0xA1,0x22,0xE8,0xB6,0x8F,0x1A,0x43,0x18,0xB8,0x0F,0x0A,0x17,0xC3,0x00,0x10,0x01, +0xEB,0x58,0x08,0x2A,0xC3,0x00,0x10,0x01,0xEB,0x18,0x0B,0x72,0x8F,0x1A,0x42,0xF8, +0xB8,0x0E,0xEA,0x19,0x9A,0xE1,0xFA,0xF9,0x08,0xA1,0xE4,0x00,0x00,0x45,0x22,0xE4, +0x66,0xC2,0xE0,0x10,0x01,0x0F,0x0A,0x17,0xEA,0xF7,0x08,0x2B,0xF8,0x19,0x08,0xA1, +0x0E,0xEA,0x19,0xE4,0x00,0x00,0x13,0x9A,0xE3,0x1A,0xEF,0x00,0x9A,0xE1,0x98,0x61, +0x1A,0xEA,0x00,0xE7,0xFF,0xB0,0xAE,0xE4,0x00,0x00,0x13,0x9A,0xE3,0x1A,0xEF,0x00, +0x12,0xEF,0x00,0xD2,0xE2,0x09,0xE9,0x98,0x62,0x0C,0x11,0x01,0xE7,0xFF,0xD2,0xCE, +0xE7,0xFF,0x0A,0x5E,0xC2,0xE0,0x10,0x01,0x9B,0x03,0xFB,0x17,0x08,0x50,0xE7,0xFF, +0xD1,0x30,0xE7,0xFF,0x46,0xBC,0x98,0x60,0xE7,0xFF,0xB0,0x44,0xC2,0xE0,0x10,0x01, +0xF8,0x17,0x08,0x67,0x9A,0xE6,0xE4,0x00,0x02,0x0F,0xD2,0xE6,0x08,0x36,0x0A,0xEE, +0x01,0x56,0xF7,0x40,0x22,0xE0,0x26,0x98,0x64,0xE7,0xFF,0xEB,0xA6,0xC3,0x00,0x10, +0x01,0xF2,0xF8,0x08,0x67,0x9E,0xE1,0x5E,0xF7,0x00,0xFA,0xF8,0x08,0x67,0x5E,0xE6, +0x53,0x0A,0xEE,0x01,0x20,0x01,0x35,0x56,0xF7,0x40,0x22,0xE0,0x50,0x9A,0xE1,0x0E, +0xED,0x00,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x76,0xE4,0x00,0x01,0x8D,0x0C,0x0D, +0x00,0x98,0x60,0x0E,0xA1,0x06,0x0E,0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E, +0x21,0x16,0x0E,0x01,0x1A,0x0D,0xE1,0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81, +0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32,0x0D,0x21,0x36,0x1C,0x21,0x38,0xE7,0xFF,0xEA, +0xDF,0x56,0xF7,0x08,0xD2,0xE0,0x04,0x62,0x18,0x10,0x00,0x9A,0xE2,0xE4,0x00,0x01, +0x01,0xC3,0x6F,0xFF,0xE4,0x23,0xE2,0x95,0xE7,0xFF,0xF1,0x73,0x0B,0x8C,0x01,0x43, +0x98,0xE5,0x5F,0x9C,0x06,0x4F,0x7C,0xFA,0x47,0x9B,0xE6,0x43,0x7C,0xDD,0x5F,0x6C, +0x99,0x23,0xE5,0x33,0xE7,0xFF,0xF2,0xC5,0x98,0x62,0xE7,0xFF,0xCC,0x4A,0xFE,0xE0, +0x7F,0xFF,0x0E,0xEB,0x05,0x0E,0xEB,0x07,0x0E,0xEE,0x05,0x0E,0xEE,0x07,0x0E,0xEC, +0x09,0x0E,0xEC,0x0B,0x0E,0xEC,0x0D,0x0E,0xEC,0x0F,0xE7,0xFF,0xF0,0xEF,0x0A,0xF1, +0x01,0xCB,0x00,0xFF,0xFD,0x9E,0xE1,0x5E,0xF7,0x04,0xD6,0xF8,0xD0,0xAD,0xE7,0xFF, +0xF4,0x27,0xFE,0xE0,0x7F,0xFF,0x18,0x0F,0x00,0x0E,0xEB,0x01,0x0E,0xEB,0x03,0x0E, +0xEB,0x05,0x0E,0xEB,0x07,0x18,0x10,0x00,0x1B,0x10,0x01,0x9A,0xE5,0x0E,0xED,0x00, +0x0E,0xA1,0x06,0x0E,0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E, +0x01,0x1A,0x0D,0xE1,0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61, +0x2E,0x0D,0x41,0x32,0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0x9C,0x38,0x0D,0x21, +0x04,0x0D,0x41,0x00,0x89,0x43,0x98,0x60,0x88,0x8A,0xE7,0xFF,0xE6,0x12,0x88,0x8A, +0x0D,0x21,0x06,0x0D,0x41,0x02,0x98,0x68,0x9C,0x28,0xE7,0xFF,0xE5,0xF3,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x3D,0xF9,0x1C,0x21,0xC8,0x0D,0x21,0x34,0x0D,0x41,0x30,0x0D, +0x61,0x2C,0x0D,0x81,0x28,0x0D,0xA1,0x24,0x0D,0xC1,0x20,0x0D,0xE1,0x1C,0x0E,0x01, +0x18,0x0E,0x21,0x14,0x0E,0x41,0x10,0x0E,0x61,0x0C,0x0E,0x81,0x08,0x13,0x17,0x00, +0xC2,0xE0,0x10,0x01,0xFB,0x17,0x00,0xC0,0xF3,0x17,0x00,0xC0,0x23,0x00,0x2C,0xF2, +0xF7,0x00,0xC0,0xD2,0xE1,0x30,0x2E,0xC1,0x80,0x10,0x01,0xC1,0xE0,0x10,0x01,0xFD, +0x8C,0x08,0x86,0xFD,0xEF,0x00,0xE0,0x0A,0xEC,0x01,0x56,0xF7,0x80,0xD2,0xE0,0x2E, +0x1E,0xC2,0xE0,0x10,0x01,0xC1,0xA0,0x10,0x01,0xF3,0x17,0x00,0xC0,0xFD,0xAD,0x09, +0x0C,0x23,0x08,0xB2,0xF2,0xF7,0x00,0xC0,0x22,0xE8,0x68,0x0B,0x2D,0x02,0x9B,0x42, +0xCF,0x19,0x00,0x03,0x0A,0xED,0x00,0x43,0x18,0xD0,0xD6,0xF8,0x02,0x14,0xE4,0x00, +0x00,0x9B,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x07,0x09,0x22,0xE3,0x86,0x8B,0x0D,0x9A, +0xE0,0x9B,0x22,0x5F,0x57,0x00,0x27,0x44,0x3D,0x5E,0xE3,0x01,0x20,0x00,0x25,0x5E, +0xE3,0x29,0x20,0x00,0x31,0x0B,0x58,0x00,0x43,0x5A,0xC8,0x0F,0x58,0x01,0x9E,0xE1, +0x9F,0x02,0x5E,0xE3,0x49,0x23,0xFF,0x79,0xE7,0xFF,0xFF,0x67,0x42,0xF7,0xC5,0x43, +0x57,0xD0,0x8F,0x1A,0x0F,0x0D,0x01,0xE4,0x00,0x00,0x43,0x4E,0xF7,0x08,0x9B,0x1D, +0x43,0x17,0xC0,0x8F,0x38,0x9B,0x0B,0xCF,0x39,0x00,0x0A,0x43,0x39,0xC0,0x9B,0x03, +0x42,0xF7,0xC0,0x8E,0xF9,0x0E,0xED,0x03,0x0A,0xED,0x30,0x0B,0x0D,0x32,0x4F,0x37, +0x08,0xD7,0x19,0x00,0xC0,0xCE,0xF7,0xFF,0xFE,0x9B,0x43,0x8F,0x17,0x43,0x18,0xD0, +0x8F,0x38,0x0F,0x2D,0x33,0xE4,0x00,0x00,0x37,0x9B,0x22,0x43,0x18,0xC8,0x53,0x20, +0x14,0x42,0xF7,0xC5,0xCE,0xF7,0x00,0x13,0x42,0xF7,0xC8,0x8F,0x17,0x0F,0x0D,0x31, +0xC1,0x40,0x10,0x01,0xFD,0x4A,0x0B,0x1A,0x12,0xEA,0x04,0x10,0x6A,0x01,0x40,0x63, +0xBB,0xE7,0xFF,0xCC,0xD8,0x13,0x0A,0x01,0xC3,0x20,0x10,0x01,0x13,0x4A,0x04,0xEA, +0xF9,0x09,0xBC,0x43,0x5A,0xC3,0xFF,0x79,0x09,0xBC,0x9B,0x00,0xE4,0x00,0x00,0x35, +0x4F,0x38,0x10,0x9F,0x01,0x8F,0x3B,0x5F,0x18,0x00,0x0F,0x39,0x02,0x5F,0x99,0x06, +0x5F,0x37,0x1D,0x4A,0xFC,0xB8,0xD7,0x58,0xFF,0x54,0xC1,0x40,0x10,0x01,0xC2,0xE2, +0x32,0x88,0xFD,0x4A,0x01,0x64,0x20,0x00,0x35,0x4E,0xF7,0x0A,0x0E,0xEA,0x19,0xE4, +0x00,0x00,0x2F,0x53,0x00,0xDF,0xC2,0xE0,0x6F,0x68,0x20,0x00,0x25,0x4E,0xF7,0x12, +0x5F,0x17,0x06,0x0F,0x0A,0x19,0x88,0x6A,0xE7,0xFF,0x14,0xEE,0xC1,0x60,0x10,0x01, +0x89,0xCD,0xFD,0x6B,0x0B,0x90,0x8A,0xED,0x12,0x2B,0x00,0x53,0x20,0x14,0x0B,0x17, +0x00,0xCF,0x18,0x00,0x19,0x43,0x18,0xC8,0x0F,0x17,0x01,0xC3,0x00,0x10,0x01,0x9E, +0xE2,0xFF,0x18,0x09,0x40,0xD6,0xF8,0xFF,0x4E,0x88,0x6A,0xE7,0xFF,0x14,0x88,0xC2, +0x00,0x10,0x01,0x9A,0xE0,0xFE,0x10,0x08,0x26,0x22,0x20,0x4A,0x13,0x0B,0x00,0x27, +0x04,0x33,0x12,0xF0,0x00,0x5E,0xE0,0x01,0x4A,0xE1,0x01,0x13,0x0B,0x00,0x23,0x09, +0x2E,0x13,0x10,0x00,0x23,0x05,0x3A,0x13,0x2B,0x07,0x13,0x0B,0x37,0xD7,0x38,0x02, +0x2A,0x0F,0x0B,0x0A,0x23,0x04,0xFA,0x0F,0x0B,0x3A,0x23,0x04,0xE2,0xC3,0x00,0x10, +0x01,0xEB,0x38,0x0B,0x72,0xC3,0x2F,0xFF,0xE0,0x20,0x00,0xA5,0xFF,0x39,0xFC,0x01, +0x4F,0x19,0xFA,0x47,0x38,0xCE,0x43,0x19,0xC5,0xC3,0x20,0x10,0x01,0xEB,0x59,0x0B, +0x25,0xD7,0x1A,0x00,0xA4,0xE4,0x00,0x00,0x1B,0x23,0x04,0x26,0x13,0x10,0x00,0x23, +0x00,0x18,0x22,0xE0,0x9C,0x53,0x00,0x19,0x0A,0xEE,0x00,0xCE,0xF7,0x00,0x14,0x42, +0xF7,0xC0,0x0E,0xEE,0x01,0xC3,0x40,0x10,0x01,0x9D,0xC2,0xFF,0x5A,0x09,0x40,0xD5, +0xDA,0xFF,0x4E,0x88,0x6A,0xE7,0xFF,0x13,0x54,0x0E,0xEF,0x02,0x22,0xE4,0x26,0x98, +0x61,0xE7,0xFF,0xCA,0xC4,0x12,0xEB,0x00,0x22,0xE0,0x5A,0xC2,0xE0,0x10,0x01,0xEC, +0x17,0x08,0x38,0x13,0x2B,0x00,0xD3,0x20,0x09,0x86,0xE4,0x00,0x02,0x93,0x98,0x61, +0x98,0x81,0x88,0xAA,0xE7,0xFF,0x0E,0x1C,0x0A,0xEA,0x10,0x0B,0x0A,0x06,0x0B,0x2A, +0x12,0x5D,0xD7,0x04,0x42,0x38,0xBD,0x40,0xB8,0xCD,0xCA,0xE0,0x07,0xFF,0x43,0x37, +0xCD,0x0B,0x4A,0x02,0x0B,0x6A,0x08,0x40,0x97,0xC5,0x5C,0xF9,0x04,0x13,0xCB,0x00, +0x0B,0x2A,0x0A,0x40,0x78,0xD5,0x42,0x77,0xCD,0x40,0xDA,0xC5,0xC2,0xE0,0x10,0x01, +0x42,0x59,0xDD,0x42,0x9B,0xCD,0xFE,0xF7,0x0B,0xA8,0x9B,0xA0,0xC9,0x00,0x07,0xFF, +0xE4,0x00,0x00,0xC5,0x0B,0x97,0xFE,0xD7,0x1C,0x00,0x98,0x43,0x9C,0xD5,0x43,0x9C, +0x8B,0x43,0x9C,0x18,0x8F,0x8E,0xE4,0x00,0x00,0x2D,0xD7,0x84,0x00,0xA8,0x43,0x88, +0xE5,0x43,0x9C,0xD5,0x43,0x9C,0x2B,0x43,0x9C,0x30,0x8F,0x87,0x0F,0x97,0xFF,0x0B, +0x97,0x00,0xD7,0x3C,0x00,0x88,0x43,0x9C,0xDD,0x43,0x9C,0xCB,0x43,0x9C,0x90,0xE4, +0x00,0x00,0x31,0xD7,0x93,0x00,0xB8,0x43,0x88,0xE5,0x43,0x9C,0xDD,0x43,0x9C,0xCB, +0x43,0x9C,0xA0,0xFF,0x9C,0x07,0xFF,0x0F,0x97,0x01,0x9F,0xA1,0x1E,0xF7,0x30,0x5F, +0xBD,0x00,0xD7,0xBE,0xFD,0x16,0x0B,0x0A,0x12,0xCA,0xE0,0x07,0xFF,0x0B,0x2A,0x10, +0x0B,0x4A,0x0C,0x43,0x77,0xCD,0x42,0xF7,0xD5,0x43,0x7B,0xC5,0x0B,0x0A,0x0E,0x43, +0x97,0xC5,0xC2,0xE0,0x10,0x01,0x9B,0x00,0xFE,0xF7,0x0B,0xA6,0xE4,0x00,0x00,0x59, +0x0B,0xB7,0x00,0x43,0xBD,0xCD,0xCF,0xBD,0x07,0xFF,0x43,0xBD,0xD8,0x9F,0x01,0x0F, +0xB7,0x01,0x5F,0x18,0x00,0x0B,0xB7,0x02,0x43,0xBD,0xD5,0xCF,0xBD,0x07,0xFF,0x43, +0xBD,0xE0,0x0F,0xB7,0x03,0x1E,0xF7,0x30,0xD7,0x1E,0xFE,0xC6,0xE7,0xFF,0xFD,0xBF, +0xCF,0x57,0x00,0x30,0x9E,0xE1,0x8F,0x4B,0x0F,0x5A,0x0E,0xC3,0x40,0x95,0xEC,0x4B, +0x18,0x0A,0xE4,0x00,0x00,0x11,0x9A,0xE0,0x8B,0x17,0x5F,0x57,0x00,0xD7,0x3A,0xFF, +0x1D,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x08,0x38,0x0A,0xEC,0x01,0x52,0xF7,0x08,0xE4, +0x00,0x00,0x33,0x9B,0x07,0xC2,0xE0,0x10,0x01,0x18,0x10,0x00,0xEF,0x17,0x03,0x71, +0x0A,0xEC,0x01,0x9B,0x17,0x46,0xF7,0xC4,0x0E,0xEC,0x01,0xC1,0xC0,0x10,0x01,0x0E, +0xEF,0x02,0xFD,0x4E,0x08,0x30,0xD2,0xE1,0x0A,0x6E,0xE7,0xFF,0xE1,0x48,0xC2,0xE0, +0x10,0x01,0x99,0x60,0xEE,0xF7,0x07,0x8E,0x22,0xE5,0x6A,0xE4,0x00,0x02,0x29,0x1C, +0x61,0x01,0x88,0x8F,0x98,0xA3,0xE7,0xFF,0x6A,0x14,0x1E,0xE1,0x08,0x8E,0xEB,0x12, +0xF7,0xF9,0x1F,0x17,0x1A,0x4E,0xF7,0x08,0x4F,0x18,0x08,0x8E,0xF0,0x8F,0x0D,0x0A, +0xF7,0x01,0x0B,0x18,0x00,0xD7,0x17,0x00,0x98,0x9A,0xE1,0x0B,0x0A,0x01,0x4E,0xF7, +0x5C,0x46,0xF7,0xC5,0xE4,0x00,0x00,0x25,0x9A,0xE1,0x0B,0x0A,0x01,0x4E,0xF7,0x5C, +0x46,0xF7,0xBF,0x46,0xF7,0xC4,0x9D,0x61,0x0E,0xEA,0x01,0x5D,0x6B,0x00,0xE4,0x00, +0x00,0x31,0xC1,0xF8,0x00,0x21,0xC2,0x00,0x10,0x01,0xC1,0xC0,0x10,0x01,0xFD,0xEF, +0xB4,0xBA,0xFE,0x10,0x03,0x72,0xF2,0xEE,0x08,0x66,0xD6,0xEB,0xFC,0xAD,0x0A,0xEA, +0x01,0x22,0xE0,0x34,0x0A,0xEC,0x01,0x52,0xF7,0x10,0xE4,0x00,0x00,0x3B,0x0A,0xEC, +0x01,0x57,0x17,0x10,0x23,0x00,0x34,0x9B,0x21,0xC3,0x00,0x10,0x01,0xFB,0x38,0x08, +0x50,0x1F,0x40,0xEF,0x46,0xF7,0xD4,0x0E,0xEC,0x01,0xC1,0x40,0x10,0x01,0xC3,0x00, +0x10,0x01,0xEE,0xEA,0x08,0x5A,0xFF,0x18,0x08,0x77,0x22,0xE0,0x56,0x18,0x18,0x00, +0x0A,0xEC,0x01,0x56,0xF7,0x10,0x22,0xE1,0x64,0x9A,0xE1,0xE4,0x00,0x00,0x41,0x22, +0xE4,0x92,0x12,0xF8,0x00,0x9E,0xE1,0x5E,0xF7,0x00,0x1A,0xF8,0x00,0x0B,0x0C,0x01, +0x57,0x18,0x10,0x23,0x00,0xE0,0x26,0xE4,0xE5,0x9A,0xE2,0xEE,0xEA,0x08,0x58,0xE4, +0x00,0x00,0x61,0x22,0xE8,0x7E,0x18,0x18,0x00,0x0A,0xEC,0x01,0x56,0xF7,0x10,0x22, +0xE0,0x34,0x98,0x62,0xE7,0xFF,0xA3,0x4C,0xE4,0x00,0x00,0x2F,0x9A,0xE3,0xE7,0xFF, +0xFF,0xBB,0x22,0xEC,0x36,0x98,0x60,0xE7,0xFF,0xA3,0x26,0xEC,0x0A,0x08,0x58,0x0B, +0x0C,0x00,0xC2,0xE0,0x10,0x01,0x27,0x1C,0x56,0xF3,0x17,0x08,0x3C,0xD3,0x09,0x08, +0x1D,0x9F,0x01,0xFB,0x17,0x08,0x3C,0xE4,0x00,0x01,0xF3,0xF8,0x17,0x08,0x3C,0xE4, +0x00,0x01,0xFB,0x0E,0xEF,0x02,0xD2,0xE2,0x07,0xB6,0x0A,0xEC,0x01,0x56,0xF7,0x40, +0x22,0xE0,0x26,0x98,0x63,0xE7,0xFF,0xF4,0xEE,0x12,0xEB,0x00,0x22,0xE0,0x36,0x98, +0x60,0x98,0x80,0x98,0xA0,0xE4,0x00,0x00,0x3B,0x22,0xE4,0x3E,0x08,0x6B,0x17,0x08, +0x8B,0x19,0x98,0xA1,0xE4,0x00,0x00,0x1D,0xD2,0xE1,0x06,0x21,0x98,0x60,0x98,0x80, +0x98,0xA2,0x1C,0xC1,0x04,0xE7,0xFF,0xBD,0xD2,0xD0,0x61,0x05,0x9E,0x0E,0xE1,0x06, +0x22,0xE0,0x2A,0x52,0xE0,0x58,0xE4,0x00,0x00,0xD9,0x9E,0xFF,0xD2,0xEB,0x03,0x6D, +0x4E,0xF7,0x10,0xC3,0x18,0x00,0x21,0xFF,0x18,0xBB,0x3C,0x8E,0xF8,0x0E,0xF7,0x02, +0x86,0xE9,0x52,0xE0,0x60,0xE4,0x00,0x00,0x9B,0x52,0xE0,0x61,0xE4,0x00,0x00,0x8D, +0x52,0xE0,0x62,0xE4,0x00,0x00,0x7F,0x52,0xE0,0x63,0xE4,0x00,0x00,0x71,0x52,0xE0, +0x64,0xE4,0x00,0x00,0x63,0x52,0xE0,0x65,0xE4,0x00,0x00,0x55,0x52,0xE0,0x66,0xE4, +0x00,0x00,0x47,0x52,0xE0,0x67,0xE4,0x00,0x00,0x39,0x52,0xE0,0x68,0xE4,0x00,0x00, +0x2B,0x52,0xE0,0x69,0xE4,0x00,0x00,0x1D,0x52,0xE0,0x6A,0xE4,0x00,0x00,0x0F,0x52, +0xE0,0x6B,0x0E,0xEA,0x01,0xE4,0x00,0x00,0x6F,0x0C,0x0A,0x01,0xE4,0x00,0x00,0x61, +0x0E,0xEF,0x02,0x22,0xE4,0xA6,0x9B,0x05,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x08,0x60, +0x9B,0x03,0xC2,0xE0,0x10,0x01,0x98,0x60,0xFB,0x17,0x08,0x50,0xE7,0xFF,0xA0,0xFC, +0xE7,0xFF,0x9B,0xCC,0xE4,0x00,0x00,0x11,0xE7,0xFF,0x9C,0xA6,0xC2,0xE0,0x10,0x01, +0xEB,0x17,0x08,0x33,0xC3,0x00,0x7D,0x0A,0x20,0x00,0x61,0xC3,0x00,0x10,0x01,0x9B, +0x5E,0xF3,0x38,0x08,0x1A,0xEC,0x17,0x08,0x33,0x47,0x39,0xD4,0xFB,0x38,0x08,0x1A, +0x0E,0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D, +0xE1,0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41, +0x32,0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0x9C,0x38,0x0D,0x41,0x00,0x0D,0x21, +0x04,0x89,0x43,0x20,0x84,0x46,0x98,0x60,0x88,0x8A,0xE7,0xFF,0xD8,0x92,0x98,0x68, +0xE4,0x00,0x00,0x1D,0x98,0x62,0x88,0x8A,0xE7,0xFF,0xD8,0x76,0x98,0x69,0x88,0x8A, +0x0D,0x21,0x06,0x0D,0x41,0x02,0x9C,0x28,0xE7,0xFF,0xD8,0x57,0x9C,0x38,0x0D,0x21, +0x04,0x0D,0x41,0x00,0x89,0x43,0x98,0x60,0x88,0x8A,0xE7,0xFF,0xD8,0x32,0x88,0x8A, +0x0D,0x21,0x06,0x0D,0x41,0x02,0x98,0x68,0x9C,0x28,0xE7,0xFF,0xD8,0x13,0xD0,0x69, +0x08,0x05,0x4F,0x03,0x10,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBB,0x6C,0x8E,0xF8,0xC3, +0x20,0x10,0x01,0x0F,0x77,0x02,0xC3,0x40,0x10,0x01,0xC3,0x00,0x10,0x01,0xC2,0xE0, +0x10,0x01,0xFF,0x39,0x09,0xF8,0xFF,0x5A,0x09,0x48,0xFF,0x18,0x0C,0x96,0xFE,0xF7, +0x09,0x0C,0x87,0x69,0xCC,0x63,0x00,0x1A,0x5C,0x63,0x00,0x4F,0x23,0x08,0x4C,0x63, +0x10,0x8F,0x19,0x8E,0xF9,0x8F,0x43,0x9B,0x20,0x43,0x77,0xCC,0x43,0xB8,0xCC,0x4F, +0x99,0x08,0x0B,0xBD,0x01,0x8F,0x9A,0x0F,0x9C,0x02,0x4F,0x9C,0x42,0x43,0x9D,0xE5, +0x0F,0x9B,0x01,0x9F,0x22,0x5F,0x26,0x89,0x23,0xFF,0x85,0xE4,0x00,0x01,0x27,0x9C, +0x7E,0xCC,0x63,0x00,0x1A,0x5C,0x63,0x00,0x4F,0x43,0x08,0x4C,0x63,0x10,0x8F,0x1A, +0x8C,0x79,0x8E,0xFA,0x9B,0x20,0x43,0x77,0xCC,0x43,0xB8,0xCC,0x4F,0x99,0x08,0x0B, +0xBD,0x01,0x8F,0x83,0x0F,0x9C,0x02,0x4F,0x9C,0x42,0x43,0x9D,0xE5,0x0F,0x9B,0x01, +0x9F,0x22,0x5F,0x26,0x89,0x23,0xFF,0x85,0xE4,0x00,0x00,0xAD,0x0B,0x78,0x35,0x0F, +0x3A,0x6A,0x4F,0x39,0x42,0x43,0x3B,0xCD,0x0B,0x78,0x37,0x0F,0x37,0x35,0x0F,0x3A, +0x6E,0x4F,0x39,0x42,0x43,0x3B,0xCD,0x0F,0x37,0x37,0x0F,0x3A,0x72,0xE4,0x00,0x00, +0x4B,0x0F,0x59,0x6A,0x0B,0x78,0x35,0x4F,0x5A,0x42,0x43,0x5B,0xD5,0x0B,0x78,0x37, +0x0F,0x57,0x35,0x0F,0x59,0x6E,0x0F,0x39,0x72,0x4F,0x5A,0x42,0x43,0x5B,0xD5,0x0F, +0x57,0x37,0x4F,0x39,0x42,0x0B,0x18,0x39,0x43,0x18,0xCD,0x0F,0x17,0x39,0x85,0x29, +0x9C,0x38,0x0D,0x21,0x04,0x20,0x64,0x3E,0x98,0x60,0xE7,0xFF,0xFD,0xE8,0x98,0x68, +0xE4,0x00,0x00,0x19,0x98,0x62,0xE7,0xFF,0xFD,0xD0,0x98,0x69,0x0D,0x21,0x06,0x9C, +0x28,0xE7,0xFF,0xFD,0xBB,0x9C,0x38,0x98,0x60,0x0D,0x21,0x04,0xE7,0xFF,0xFD,0xA4, +0x0D,0x21,0x06,0x98,0x68,0x9C,0x28,0xE7,0xFF,0xFD,0x8F,0x9C,0x38,0x0D,0x21,0x04, +0xE7,0xFF,0xA8,0x66,0x20,0x60,0x5E,0xE7,0xFF,0xA8,0x44,0x98,0x80,0xE7,0xFF,0xB5, +0x9A,0xE7,0xFF,0xA8,0x30,0x98,0x82,0xE4,0x00,0x00,0x37,0xE7,0xFF,0xA8,0x30,0x20, +0x64,0x86,0xE7,0xFF,0xA8,0x0E,0x98,0x81,0xE7,0xFF,0xB5,0x64,0xE7,0xFF,0xA7,0xFA, +0x98,0x83,0xE7,0xFF,0xB2,0xB8,0xE7,0xFF,0xCF,0x2C,0x9A,0xE0,0xE4,0x00,0x00,0x8D, +0xE7,0xFF,0xA7,0xE6,0x20,0x68,0x36,0xE7,0xFF,0xA7,0xC4,0x98,0x82,0xE4,0x00,0x00, +0x23,0xE7,0xFF,0xA7,0xC4,0x20,0x6C,0x5E,0xE7,0xFF,0xA7,0xA2,0x98,0x83,0xE7,0xFF, +0xB4,0xF8,0xE7,0xFF,0xA7,0x8E,0x98,0x87,0xE7,0xFF,0xFF,0x95,0xE7,0xFF,0xA7,0x8E, +0x9A,0xE0,0xD0,0x67,0x00,0x86,0xE7,0xFF,0xA7,0x66,0x98,0x87,0xE7,0xFF,0xB4,0xBC, +0x9A,0xE1,0x88,0x77,0x0D,0x21,0x06,0x9C,0x28,0x85,0x29,0x1C,0x21,0xE8,0x0D,0x21, +0x14,0x0D,0x41,0x10,0x0D,0x61,0x0C,0x0D,0x81,0x08,0x80,0x01,0x80,0x01,0x80,0x01, +0x80,0x01,0xE7,0xFF,0x93,0x8C,0x0C,0x61,0x00,0xE7,0xFF,0x93,0x86,0x0C,0x61,0x04, +0x0E,0xE1,0x02,0xD2,0xE0,0x14,0xA2,0x0E,0xE1,0x02,0xC1,0x60,0x10,0x01,0xC1,0x40, +0x10,0x01,0x57,0x17,0x10,0xFD,0x6B,0x00,0xE6,0xFD,0x4A,0x00,0xD4,0xD3,0x00,0x06, +0xCA,0x50,0x60,0x10,0xE7,0xFF,0x93,0x68,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x00,0xC3, +0x9F,0x01,0x5F,0x18,0x04,0xEF,0x17,0x00,0xC3,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08, +0x33,0x23,0x00,0x24,0x9F,0x01,0xEF,0x17,0x08,0x33,0xE7,0xFF,0x93,0x6C,0x0A,0xEB, +0x0B,0x40,0x63,0xBD,0x5E,0xE3,0x04,0x5E,0xE3,0xBB,0x20,0x02,0x3F,0xC2,0xE0,0x10, +0x01,0xEA,0xF7,0x06,0x87,0x56,0xF7,0x20,0xD2,0xE0,0x04,0x0A,0x98,0x61,0xE7,0xFF, +0xB5,0xAC,0x20,0x61,0xDE,0xE7,0xFF,0xA6,0x08,0x20,0x64,0x56,0xC2,0xE0,0x10,0x01, +0xF2,0xF7,0x00,0xC8,0x56,0xF7,0x01,0x22,0xE1,0x8A,0xE4,0x00,0x00,0x1F,0xE7,0xFF, +0xA5,0xD6,0x20,0x63,0xA8,0xE4,0x00,0x00,0xA9,0xE7,0xFF,0xCC,0x18,0xC2,0xE0,0x10, +0x01,0xEB,0x17,0x06,0x87,0xC7,0x18,0xFF,0xDF,0xEF,0x17,0x06,0x87,0xE7,0xFF,0xA5, +0x98,0x20,0x60,0x5E,0x98,0x81,0x98,0xA0,0xE7,0xFF,0x2A,0xF2,0x98,0x60,0x88,0x83, +0xE7,0xFF,0xB0,0x3C,0xE4,0x00,0x00,0x43,0x98,0x80,0x98,0x62,0xE7,0xFF,0xB0,0x24, +0xFC,0x60,0x01,0x5E,0xE7,0xFF,0x5C,0x5E,0x98,0x60,0xE7,0xFF,0x2F,0xDC,0xE7,0xFF, +0x92,0x44,0x0C,0x6B,0x09,0xE7,0xFF,0xCC,0x6E,0x0A,0xEA,0x01,0x52,0xF7,0x10,0x0E, +0xEA,0x01,0xE4,0x00,0x03,0xEF,0x57,0x17,0x40,0x23,0x00,0x38,0x50,0x60,0x40,0xE7, +0xFF,0x91,0xB2,0xE4,0x00,0x03,0xCD,0xC6,0xF7,0x01,0x00,0xD2,0xE0,0x0E,0xF2,0x98, +0x60,0xE7,0xFF,0x91,0x5E,0xFC,0x60,0x01,0x00,0xE7,0xFF,0x91,0x5E,0xFC,0x60,0x01, +0x00,0xE7,0xFF,0x91,0x6E,0xE7,0xFF,0xA4,0xA8,0xD0,0x67,0x0D,0xA5,0xC2,0xF8,0x00, +0x21,0xFE,0xF7,0xBB,0x98,0x4C,0x63,0x10,0x8C,0x77,0x0E,0xE3,0x02,0x86,0xE9,0xE7, +0xFF,0xA4,0x88,0x20,0x60,0x46,0x98,0x80,0xE7,0xFF,0xB1,0xC4,0x98,0x60,0x98,0x87, +0xE4,0x00,0x02,0x77,0xE7,0xFF,0xA4,0x5E,0xD0,0x67,0x0C,0x2E,0x98,0x60,0x98,0x87, +0xE4,0x00,0x01,0xFF,0xE7,0xFF,0xFB,0xCE,0xD0,0x60,0x0B,0xAA,0xE7,0xFF,0xB2,0xEA, +0x5D,0x83,0x04,0x98,0x61,0xE7,0xFF,0xB3,0x9E,0xD0,0x60,0x07,0x56,0xC1,0x80,0x19, +0x0A,0x20,0x03,0x89,0xE7,0xFF,0x2E,0xE4,0xE7,0xFF,0x2E,0xB4,0x5C,0x63,0x00,0x24, +0x64,0x33,0x98,0x61,0xC1,0x80,0x32,0x0A,0x20,0x01,0xE9,0x98,0x80,0x98,0x62,0xE7, +0xFF,0xAE,0x7E,0xFC,0x60,0x01,0x5E,0xE7,0xFF,0x5A,0xB8,0x98,0x60,0xE7,0xFF,0x2E, +0x36,0xE7,0xFF,0x90,0x9E,0x0C,0x6B,0x09,0xE4,0x00,0x01,0xAF,0xE7,0xFF,0xFB,0x1E, +0xD0,0x60,0x08,0xEA,0xE7,0xFF,0xB2,0x3A,0xE7,0xFF,0x5A,0xF8,0xE7,0xFF,0x5B,0x88, +0xD0,0x61,0x04,0x9A,0xE7,0xFF,0x5B,0xA8,0x20,0x64,0xD2,0xE7,0xFF,0x2D,0xC6,0x5C, +0x63,0x00,0xC0,0x60,0x18,0xEE,0x20,0x00,0x1D,0xE7,0xFF,0x2D,0xD2,0xE7,0xFF,0x2D, +0xA2,0x98,0x80,0x5D,0x43,0x00,0x98,0x62,0xE7,0xFF,0xAD,0xCC,0xCC,0x6A,0x00,0x64, +0xFC,0x63,0x01,0x5E,0xE7,0xFF,0x59,0xFE,0xE4,0x00,0x01,0x0F,0xE7,0xFF,0x5B,0x58, +0x98,0x62,0x98,0x80,0xE4,0x00,0x00,0xEF,0xE7,0xFF,0xA2,0xD6,0x20,0x64,0x3E,0xE7, +0xFF,0xA2,0xC8,0x88,0x83,0x98,0x64,0xE4,0x00,0x00,0x71,0xE7,0xFF,0xA2,0xB0,0x20, +0x63,0xC0,0xE7,0xFF,0xA2,0xA2,0xD0,0x60,0x05,0x3E,0x98,0x64,0x98,0x80,0xE7,0xFF, +0xAF,0xD8,0x98,0x64,0xE4,0x00,0x00,0x8B,0x98,0x64,0x98,0x89,0xE4,0x00,0x00,0x27, +0xE7,0xFF,0xA2,0x66,0x20,0x64,0x76,0xE7,0xFF,0xA2,0x58,0x88,0x83,0x98,0x67,0xE7, +0xFF,0xAF,0x96,0x0A,0xEA,0x01,0xCA,0xF7,0x01,0x00,0x0E,0xEA,0x01,0xE4,0x00,0x00, +0xE1,0xE7,0xFF,0xA2,0x24,0x20,0x63,0x88,0xE7,0xFF,0xA2,0x16,0x20,0x61,0x86,0x98, +0x67,0x98,0x80,0xE7,0xFF,0xAF,0x4E,0x98,0x67,0x98,0x81,0xE7,0xFF,0xAC,0xA6,0xE7, +0xFF,0xC9,0x1A,0xE4,0x00,0x00,0x95,0x0E,0xE1,0x06,0x22,0xE1,0x3C,0x0E,0xE1,0x06, +0x56,0xF7,0x20,0x22,0xE1,0x18,0x98,0x60,0xE7,0xFF,0x8E,0x30,0x50,0x60,0x20,0xE7, +0xFF,0x8E,0x3A,0xE7,0xFF,0x80,0xB4,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x00,0xD9,0xC7, +0x18,0xFF,0xFE,0x50,0x60,0x20,0xEF,0x17,0x00,0xD9,0xE7,0xFF,0x8E,0x14,0xC2,0xE0, +0x10,0x01,0xEB,0x17,0x00,0xD7,0x53,0x18,0x20,0xEF,0x17,0x00,0xD7,0xC2,0xE0,0x10, +0x01,0xF0,0x77,0x03,0x6E,0xE7,0xFF,0x8D,0xB6,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D, +0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x23,0x24,0x0B,0x17,0x01,0x53,0x18,0x20,0x0F,0x17,0x01,0x0C,0x63,0x02,0x0B,0x17, +0x01,0xC7,0x18,0xFF,0xDF,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x23,0x24,0x0B,0x17,0x01,0x53,0x18,0x20,0x0F,0x17,0x01,0x0C,0x83,0x00,0x0B,0x17, +0x01,0xC7,0x18,0xFF,0xDF,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x24,0x14,0x0B,0x17,0x01,0x53,0x18,0x01,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00, +0x01,0xCA,0xF7,0x23,0x24,0x0B,0x17,0x01,0x53,0x18,0x20,0x0F,0x17,0x01,0x85,0x29, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x23,0x24,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xDF,0x0F, +0x17,0x01,0x85,0x29,0x9C,0x30,0x0D,0x21,0x0C,0x0D,0x41,0x08,0x0D,0x61,0x04,0x0D, +0x81,0x00,0xC1,0x54,0x00,0x01,0xC9,0x8A,0x22,0x28,0x0A,0xEC,0x01,0xC6,0xF7,0xFF, +0xFB,0xC9,0x6A,0x22,0x04,0x0E,0xEC,0x01,0xFF,0x00,0x80,0x00,0x0A,0xEB,0x01,0x46, +0xF7,0xC5,0x5E,0xF7,0x04,0xC9,0x4A,0x24,0xA8,0x0E,0xEB,0x01,0x0A,0xEA,0x01,0xCA, +0xF7,0x30,0x00,0x50,0x60,0x64,0x0E,0xEA,0x01,0xE4,0x00,0x28,0x4A,0x0A,0xEC,0x01, +0x52,0xF7,0x04,0x50,0x60,0x1E,0x0E,0xEC,0x01,0xE4,0x00,0x28,0x2A,0x0A,0xEB,0x01, +0xC6,0xF7,0x7F,0xFF,0x0E,0xEB,0x01,0x0A,0xEA,0x01,0xC6,0xF7,0xCF,0xFF,0x0E,0xEA, +0x01,0x0D,0x81,0x02,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10, +0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x2C,0x08,0x77,0x01,0x4C,0x63,0x09, +0x54,0x63,0x1F,0x9C,0x61,0x85,0x29,0x9C,0x7F,0x5C,0x63,0x00,0x5C,0x62,0xFB,0x20, +0x00,0x81,0xC2,0xF4,0x00,0x01,0x4C,0x63,0x08,0xCA,0xF7,0x24,0x2C,0x54,0x63,0x3E, +0x0B,0x17,0x01,0x1F,0x20,0xC1,0x47,0x18,0xCC,0x44,0x63,0xC5,0x0C,0x77,0x01,0x85, +0x29,0x9B,0x19,0x20,0x60,0x62,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x10,0x0B,0x37, +0x01,0x47,0x19,0xC4,0x53,0x18,0x04,0xE4,0x00,0x00,0x87,0x20,0x64,0x56,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x24,0x10,0x0B,0x17,0x01,0x53,0x18,0x06,0xE4,0x00,0x00,0x5D, +0x20,0x68,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x10,0x0B,0x17,0x01,0xC7,0x18, +0xFF,0xF9,0xE4,0x00,0x00,0x31,0x20,0x6C,0x5E,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24, +0x10,0x0B,0x37,0x01,0x47,0x19,0xC4,0x53,0x18,0x02,0x0F,0x17,0x01,0x85,0x29,0x5C, +0x63,0x00,0x9C,0x30,0x0D,0x21,0x0C,0x0D,0x41,0x08,0x0C,0xA1,0x04,0x95,0x50,0xC9, +0x4A,0x20,0x80,0x8D,0x43,0x4D,0x4A,0x18,0x88,0x6A,0xE7,0xFF,0xFC,0xE0,0x0C,0xA1, +0x06,0x1C,0x6A,0x04,0x0D,0x21,0x0E,0x0D,0x41,0x0A,0x88,0x85,0x1C,0x21,0x10,0xE7, +0xFF,0xFC,0xB7,0x1C,0x21,0xE8,0x0D,0x41,0x10,0x5D,0x44,0x00,0x4E,0xEA,0x08,0x0D, +0x61,0x0C,0x0D,0x81,0x08,0x5D,0x65,0x00,0x5C,0x63,0x00,0x4D,0x83,0x18,0x8D,0x8B, +0x8D,0x97,0x06,0xE0,0x81,0xCA,0xF7,0x04,0x00,0x0D,0x21,0x14,0x0D,0xA1,0x04,0xC5, +0x8C,0x1F,0xFC,0x5D,0xA6,0x00,0x8D,0x97,0x88,0x6C,0xE7,0xFF,0xFC,0x00,0x55,0x4A, +0x01,0x50,0x80,0xFF,0x4D,0x4A,0x08,0x8D,0x6A,0x4D,0x6B,0x18,0x4C,0x84,0x5C,0x4D, +0x6D,0x5C,0x44,0x84,0x27,0x0D,0xA1,0x06,0x44,0x83,0x24,0x0D,0x41,0x12,0x88,0x6C, +0x44,0x84,0x5D,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x21,0x16,0x1C,0x21,0x18,0xE7, +0xFF,0xFB,0xD7,0x5C,0x84,0x04,0x20,0x60,0x28,0x20,0x64,0xC2,0xE4,0x00,0x00,0x33, +0x4C,0x84,0x41,0xC2,0xF4,0x00,0x01,0x9C,0x9F,0xCA,0xF7,0x24,0x34,0xC4,0x84,0x01, +0xFF,0xE4,0x00,0x00,0x2B,0x4C,0x84,0x41,0xC2,0xF4,0x00,0x01,0x9C,0x9F,0xCA,0xF7, +0x24,0x38,0xC4,0x84,0x01,0xFF,0x0C,0x97,0x01,0x85,0x29,0x07,0x00,0xFF,0xCB,0x18, +0xFF,0xFF,0x20,0x60,0x28,0x20,0x65,0xD2,0xE4,0x00,0x00,0x7D,0xC2,0xF4,0x00,0x01, +0x47,0x64,0x27,0xCB,0x37,0x24,0x3C,0x0B,0x59,0x01,0x47,0x5A,0xDC,0x0F,0x59,0x01, +0xCA,0xF7,0x24,0x40,0x47,0x04,0xC4,0x0B,0x37,0x01,0x4F,0x18,0x81,0x44,0x84,0x27, +0x4C,0x84,0x81,0x44,0x84,0xC4,0x47,0x18,0xC7,0x47,0x19,0xC4,0x47,0x04,0xC5,0x0F, +0x17,0x01,0xE4,0x00,0x00,0x6F,0x5F,0x44,0x04,0xC2,0xF4,0x00,0x01,0x47,0x9A,0xD7, +0xCB,0x37,0x24,0x3C,0x0B,0x79,0x01,0x47,0x7B,0xE4,0x47,0x5A,0xDD,0x0F,0x59,0x01, +0xCA,0xF7,0x24,0x40,0x44,0x84,0xC4,0x0B,0x57,0x01,0x4C,0x84,0x81,0x47,0x24,0x27, +0x47,0x1A,0xCC,0x44,0x84,0xC5,0x0C,0x97,0x01,0x85,0x29,0x07,0x00,0xFF,0xCB,0x18, +0xFF,0xFF,0x20,0x60,0x28,0x20,0x65,0xD2,0xE4,0x00,0x00,0x7D,0xC2,0xF4,0x00,0x01, +0x47,0x64,0x27,0xCB,0x37,0x24,0x1C,0x0B,0x59,0x01,0x47,0x5A,0xDC,0x0F,0x59,0x01, +0xCA,0xF7,0x24,0x20,0x47,0x04,0xC4,0x0B,0x37,0x01,0x4F,0x18,0x81,0x44,0x84,0x27, +0x4C,0x84,0x81,0x44,0x84,0xC4,0x47,0x18,0xC7,0x47,0x19,0xC4,0x47,0x04,0xC5,0x0F, +0x17,0x01,0xE4,0x00,0x00,0x6F,0x5F,0x44,0x04,0xC2,0xF4,0x00,0x01,0x47,0x9A,0xD7, +0xCB,0x37,0x24,0x1C,0x0B,0x79,0x01,0x47,0x7B,0xE4,0x47,0x5A,0xDD,0x0F,0x59,0x01, +0xCA,0xF7,0x24,0x20,0x44,0x84,0xC4,0x0B,0x57,0x01,0x4C,0x84,0x81,0x47,0x24,0x27, +0x47,0x1A,0xCC,0x44,0x84,0xC5,0x0C,0x97,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB, +0x17,0x24,0x80,0x0B,0x38,0x01,0x5F,0x23,0x04,0x0F,0x38,0x01,0x07,0x20,0xFF,0xCB, +0x39,0xFF,0xFF,0xCA,0xF7,0x24,0x84,0x44,0x63,0xCC,0x0B,0x17,0x01,0x4C,0x63,0x81, +0xFF,0x20,0xFF,0x00,0x47,0x18,0xCC,0x44,0x63,0xC5,0x0C,0x77,0x01,0x85,0x29,0x07, +0x00,0xFF,0xCB,0x18,0xFF,0xFF,0x20,0x60,0x28,0x20,0x65,0xD2,0xE4,0x00,0x00,0x7D, +0xC2,0xF4,0x00,0x01,0x47,0x64,0x27,0xCB,0x37,0x24,0x24,0x0B,0x59,0x01,0x47,0x5A, +0xDC,0x0F,0x59,0x01,0xCA,0xF7,0x24,0x28,0x47,0x04,0xC4,0x0B,0x37,0x01,0x4F,0x18, +0x81,0x44,0x84,0x27,0x4C,0x84,0x81,0x44,0x84,0xC4,0x47,0x18,0xC7,0x47,0x19,0xC4, +0x47,0x04,0xC5,0x0F,0x17,0x01,0xE4,0x00,0x00,0x6F,0x5F,0x44,0x04,0xC2,0xF4,0x00, +0x01,0x47,0x9A,0xD7,0xCB,0x37,0x24,0x24,0x0B,0x79,0x01,0x47,0x7B,0xE4,0x47,0x5A, +0xDD,0x0F,0x59,0x01,0xCA,0xF7,0x24,0x28,0x44,0x84,0xC4,0x0B,0x57,0x01,0x4C,0x84, +0x81,0x47,0x24,0x27,0x47,0x1A,0xCC,0x44,0x84,0xC5,0x0C,0x97,0x01,0x85,0x29,0xC3, +0x14,0x00,0x01,0xCA,0xF8,0x22,0x08,0x20,0x64,0x3A,0x0B,0x37,0x01,0xCB,0x39,0x10, +0x00,0xE4,0x00,0x00,0x1D,0x20,0x60,0x36,0x0B,0x37,0x01,0xC7,0x39,0xEF,0xFF,0x0F, +0x37,0x01,0xCA,0xF8,0x22,0x08,0x0B,0x17,0x01,0xCB,0x18,0x20,0x00,0x0F,0x17,0x01, +0x85,0x29,0x5C,0x84,0x00,0x1F,0x00,0x80,0x20,0x60,0x28,0x20,0x64,0xAA,0xE4,0x00, +0x00,0x21,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x54,0xE4,0x00,0x00,0x19,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x24,0x64,0x0B,0x37,0x01,0x54,0x84,0x7F,0x47,0x19,0xC4,0x47, +0x04,0xC5,0x0F,0x17,0x01,0x85,0x29,0x5C,0x84,0x00,0x20,0x60,0x28,0x20,0x64,0xAA, +0xE4,0x00,0x00,0x21,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x50,0xE4,0x00,0x00,0x19, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x61,0x13,0x17,0x00,0x54,0x84,0x1F,0x57,0x18, +0xE0,0x44,0x84,0xC5,0x18,0x97,0x00,0x85,0x29,0x9C,0x30,0x0D,0x41,0x08,0x0D,0x61, +0x04,0x0D,0x21,0x0C,0x5D,0x44,0x00,0x89,0x63,0x1C,0x8A,0xF1,0x4C,0x84,0x08,0x5C, +0x83,0xF3,0x20,0x00,0x19,0x50,0x80,0x1F,0x88,0x6B,0xE7,0xFF,0xFF,0x5A,0x1F,0x00, +0x80,0x21,0x60,0x28,0x21,0x64,0xAA,0xE4,0x00,0x00,0x21,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x24,0x4C,0xE4,0x00,0x00,0x19,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x60,0x0B, +0x37,0x01,0x55,0x4A,0x7F,0x47,0x19,0xC4,0x47,0x0A,0xC5,0x0F,0x17,0x01,0x0D,0x61, +0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0x20,0x64,0x8E,0xC2, +0xF4,0x00,0x01,0xCB,0x17,0x22,0x04,0xCA,0xF7,0x22,0x60,0x0B,0x38,0x01,0x53,0x39, +0xF0,0x0F,0x38,0x01,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xF0,0xE4,0x00,0x00,0x47,0x20, +0x60,0x8A,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22,0x04,0xCA,0xF7,0x22,0x60,0x0B,0x38, +0x01,0xC7,0x39,0xFF,0x0F,0x0F,0x38,0x01,0x0B,0x17,0x01,0x53,0x18,0x0F,0x0F,0x17, +0x01,0x85,0x29,0x20,0x64,0x8E,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22,0x04,0xCA,0xF7, +0x22,0x60,0x0B,0x38,0x01,0x53,0x39,0x08,0x0F,0x38,0x01,0x0B,0x17,0x01,0xC7,0x18, +0xFE,0xFF,0xE4,0x00,0x00,0x49,0x20,0x60,0x8E,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22, +0x04,0xCA,0xF7,0x22,0x60,0x0B,0x38,0x01,0xC7,0x39,0xFF,0xF7,0x0F,0x38,0x01,0x0B, +0x17,0x01,0xCB,0x18,0x01,0x00,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x22,0x60,0x0B,0x17,0x01,0xCB,0x18,0x02,0x00,0xE4,0x00,0x00, +0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0x60,0x0B,0x17,0x01,0xC7, +0x18,0xFD,0xFF,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x54,0x63,0x7F,0xCA, +0xF7,0x24,0xA0,0x1F,0x20,0x80,0x0B,0x17,0x01,0x47,0x18,0xCC,0x47,0x03,0xC5,0x0F, +0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x4C,0x63,0x40,0xCA,0xF7,0x24,0xA0,0xC4, +0x63,0x7F,0x00,0x0B,0x17,0x01,0xFF,0x20,0x80,0xFF,0x47,0x18,0xCC,0x47,0x03,0xC5, +0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0xA1,0x10,0x77,0x00, +0x54,0x63,0x7F,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0xA0, +0x0B,0x17,0x01,0xC7,0x18,0xFF,0x7F,0xE4,0x00,0x00,0x2B,0x20,0x60,0x52,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x24,0xA0,0x0B,0x17,0x01,0x53,0x18,0x80,0x0F,0x17,0x01,0x85, +0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0xA0,0x0B,0x17,0x01,0xC7, +0x18,0x7F,0xFF,0xE4,0x00,0x00,0x39,0x20,0x60,0x6E,0xC2,0xF4,0x00,0x01,0xFF,0x20, +0x80,0x00,0xCA,0xF7,0x24,0xA0,0x0B,0x17,0x01,0x47,0x18,0xCD,0x5F,0x18,0x04,0x0F, +0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x5C,0x63,0x00,0xCA,0xF7,0x22,0x0C,0xFF, +0x20,0xFF,0x00,0x0B,0x17,0x01,0x47,0x18,0xCC,0x47,0x03,0xC5,0x0F,0x17,0x01,0x85, +0x29,0x5C,0x63,0x04,0xC2,0xF4,0x00,0x01,0xFF,0x40,0xFF,0x00,0xCA,0xF7,0x22,0xF0, +0x47,0x03,0xD4,0x0B,0x37,0x01,0x5F,0x39,0x00,0x47,0x18,0xCD,0x0F,0x17,0x01,0x85, +0x29,0x5C,0x63,0x04,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0x38,0x0B,0x17,0x01,0x0C, +0x77,0x01,0x85,0x29,0x20,0x64,0x6A,0xC2,0xF4,0x00,0x01,0x9B,0x3C,0xCA,0xF7,0x25, +0xC0,0x0B,0x17,0x01,0x47,0x18,0xCC,0x53,0x18,0x01,0xE4,0x00,0x00,0x3F,0x20,0x60, +0x7A,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22,0x38,0xCA,0xF7,0x25,0xC0,0x0B,0x38,0x01, +0x0C,0x18,0x01,0x0B,0x17,0x01,0x53,0x18,0x03,0x0F,0x17,0x01,0x85,0x29,0x5C,0x84, +0x00,0x20,0x64,0x62,0x4C,0x63,0x24,0xC2,0xF4,0x00,0x01,0x5C,0x63,0x04,0xCA,0xF7, +0x22,0xCC,0x0C,0x77,0x01,0xE4,0x00,0x00,0x25,0x20,0x60,0x3A,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x22,0xCC,0x0C,0x17,0x01,0x85,0x29,0x20,0x60,0x5A,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x22,0xE8,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xFE,0xE4,0x00,0x00,0x2B,0x20, +0x64,0x52,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0xE8,0x0B,0x17,0x01,0x53,0x18,0x01, +0x0F,0x17,0x01,0x85,0x29,0x20,0x60,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0xE8, +0x0B,0x17,0x01,0xC7,0x18,0xF0,0xFF,0xE4,0x00,0x00,0x2D,0x20,0x64,0x56,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x22,0xE8,0x0B,0x17,0x01,0xCB,0x18,0x0F,0x00,0x0F,0x17,0x01, +0x85,0x29,0x5C,0x63,0x00,0xC4,0x84,0x03,0xFF,0x20,0x64,0x70,0x20,0x60,0x34,0x20, +0x68,0x88,0x20,0x6C,0xDA,0xE4,0x00,0x00,0x51,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24, +0x68,0xE4,0x00,0x00,0x49,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x6C,0xE4,0x00,0x00, +0x31,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x70,0xE4,0x00,0x00,0x19,0xC2,0xF4,0x00, +0x01,0xCA,0xF7,0x24,0x74,0x0C,0x97,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x23,0x24,0x0B,0x17,0x01,0x53,0x18,0x20,0x0F,0x17,0x01,0x5C,0x63,0x00,0x07,0x00, +0x20,0xCB,0x18,0x41,0x00,0x44,0x63,0xC5,0x4C,0x63,0x10,0x0C,0x83,0x00,0x0B,0x17, +0x01,0xC7,0x18,0xFF,0xDF,0x0F,0x17,0x01,0x85,0x29,0xFC,0x21,0xFE,0x88,0x50,0xA0, +0x96,0xED,0x21,0x01,0x74,0xED,0x41,0x01,0x70,0xED,0x61,0x01,0x6C,0x88,0x61,0xC1, +0x78,0x00,0x21,0xFD,0x6B,0xB4,0xBE,0x88,0x8B,0xE7,0xFF,0x4A,0x4E,0xFD,0x41,0x00, +0x96,0xFC,0x8B,0x00,0x96,0x88,0x6A,0x50,0xA0,0xD2,0xE7,0xFF,0x4A,0x2C,0x8A,0xE1, +0xC3,0x54,0x00,0x01,0xFF,0x60,0xFF,0x00,0x0B,0x37,0x01,0x47,0x19,0xDC,0x5F,0x39, +0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19,0x0B,0x37,0x03,0x47,0xB9,0xCF,0x8F, +0x1A,0x0B,0x98,0x01,0x47,0x9C,0xEC,0x0B,0xB7,0x05,0x47,0x39,0xEC,0x47,0x3C,0xCD, +0x0F,0x38,0x01,0x9E,0xE6,0xD5,0x57,0xFE,0x9E,0xFE,0xE1,0x00,0x96,0xFF,0x81,0x01, +0x68,0x0B,0x37,0x01,0x47,0x19,0xDC,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08, +0x8F,0x19,0x0B,0x37,0x03,0x47,0xD9,0xCF,0x8F,0x1A,0x0B,0xB8,0x01,0x47,0xBD,0xF4, +0x0B,0xD7,0x05,0x47,0x39,0xF4,0x47,0x3D,0xCD,0x0F,0x38,0x01,0x9E,0xE6,0xD7,0x97, +0xFE,0x9E,0xED,0x61,0x01,0x6E,0xED,0x41,0x01,0x72,0xED,0x21,0x01,0x76,0xFC,0x21, +0x01,0x78,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22,0x00,0x0C,0x18,0x01,0xCA, +0xF7,0x24,0x14,0xFF,0x20,0xFF,0x07,0x0B,0x17,0x01,0x47,0x18,0xCC,0x53,0x18,0x30, +0x0F,0x17,0x01,0x85,0x29,0x1C,0x21,0xD8,0xC3,0x54,0x00,0x01,0x0D,0x21,0x24,0xCA, +0xE0,0x11,0x50,0xCB,0x5A,0x22,0x00,0x57,0x37,0xFF,0x4F,0x39,0x10,0x8F,0x3A,0x0C, +0x19,0x01,0x9E,0xE1,0xC3,0x14,0x00,0x01,0xC2,0xE2,0x2B,0x84,0x23,0xFF,0xAD,0xCA, +0xF8,0x23,0x70,0x0C,0x17,0x01,0xCA,0xF8,0x23,0x74,0xCB,0x18,0x23,0x78,0x0C,0x17, +0x01,0x0C,0x18,0x01,0x1C,0x61,0x02,0xC0,0x98,0x00,0x21,0x50,0xA0,0x1E,0xFC,0x84, +0xB4,0xBE,0xFC,0x84,0x01,0x68,0xE7,0xFF,0x48,0x34,0x1E,0xE1,0x02,0x1F,0x41,0x20, +0x0B,0x37,0x01,0xFF,0x60,0xFF,0x00,0x47,0x19,0xDC,0x5F,0x39,0x00,0x4F,0x39,0x10, +0x4F,0x18,0x08,0x8F,0x19,0xC3,0x34,0x00,0x01,0x8F,0x19,0x0B,0x37,0x03,0x47,0x99, +0xCF,0x0B,0x78,0x01,0x47,0x7B,0xE4,0x0B,0x97,0x05,0x47,0x39,0xE4,0x47,0x3B,0xCD, +0x0F,0x38,0x01,0x9E,0xE6,0xD7,0x57,0xFE,0x5E,0x0D,0x21,0x26,0xFC,0x60,0x01,0xF4, +0x1C,0x21,0x28,0xE4,0x00,0x16,0xB7,0x5C,0x84,0x00,0x9B,0x10,0x20,0x60,0x28,0x20, +0x64,0xAA,0xE4,0x00,0x00,0x21,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0x10,0xE4,0x00, +0x00,0x19,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0x14,0x0B,0x37,0x01,0x54,0x84,0x0F, +0x47,0x19,0xC4,0x47,0x04,0xC5,0x0F,0x17,0x01,0x85,0x29,0x1C,0x21,0xE0,0xC0,0x98, +0x00,0x21,0x0D,0x21,0x1C,0x88,0x61,0xFC,0x84,0xB4,0xBE,0x50,0xA0,0x18,0xFC,0x84, +0x01,0x86,0xE7,0xFF,0x46,0xFC,0x8A,0xE1,0x1F,0x41,0x18,0x0B,0x37,0x01,0xFF,0x60, +0xFF,0x00,0x47,0x19,0xDC,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19, +0xC3,0x34,0x00,0x01,0x8F,0x19,0x0B,0x37,0x03,0x47,0x99,0xCF,0x0B,0x78,0x01,0x47, +0x7B,0xE4,0x0B,0x97,0x05,0x47,0x39,0xE4,0x47,0x3B,0xCD,0x0F,0x38,0x01,0x9E,0xE6, +0xD7,0x57,0xFE,0x5E,0xC3,0x54,0x00,0x01,0xCA,0xE0,0x11,0x50,0xCB,0x5A,0x22,0x00, +0x57,0x37,0xFF,0x4F,0x39,0x10,0x8F,0x3A,0x0C,0x19,0x01,0x9E,0xE1,0xC3,0x14,0x00, +0x01,0xC2,0xE2,0x2B,0x84,0x23,0xFF,0xAD,0xCA,0xF8,0x23,0x70,0x0C,0x17,0x01,0xCA, +0xF8,0x23,0x74,0x0C,0x17,0x01,0xCB,0x18,0x23,0x78,0x0C,0x18,0x01,0x0D,0x21,0x1E, +0x1C,0x21,0x20,0x85,0x29,0x1C,0x21,0xE0,0xC0,0x98,0x00,0x21,0x0D,0x21,0x1C,0x1C, +0x61,0x06,0xFC,0x84,0xB4,0xBE,0x50,0xA0,0x12,0xFC,0x84,0x01,0x9E,0xE7,0xFF,0x45, +0xC6,0x1E,0xE1,0x06,0x1F,0x41,0x18,0x0B,0x37,0x01,0xFF,0x60,0xFF,0x00,0x47,0x19, +0xDC,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19,0xC3,0x34,0x00,0x01, +0x8F,0x19,0x0B,0x37,0x03,0x47,0x99,0xCF,0x0B,0x78,0x01,0x47,0x7B,0xE4,0x0B,0x97, +0x05,0x47,0x39,0xE4,0x47,0x3B,0xCD,0x0F,0x38,0x01,0x9E,0xE6,0xD7,0x57,0xFE,0x5E, +0xC3,0x74,0x00,0x01,0xCA,0xE0,0x11,0x50,0xCB,0x7B,0x22,0x00,0xFF,0x40,0x11,0x11, +0x57,0x37,0xFF,0x4F,0x39,0x10,0x8F,0x3B,0x0F,0x59,0x01,0x9E,0xE1,0xC3,0x14,0x00, +0x01,0xC2,0xE2,0x2B,0x84,0x23,0xFF,0xAD,0xCB,0x38,0x23,0x70,0x9A,0xFF,0x0E,0xF9, +0x01,0xCB,0x38,0x23,0x74,0x0E,0xF9,0x01,0xCB,0x18,0x23,0x78,0x0E,0xF8,0x01,0x0D, +0x21,0x1E,0x1C,0x21,0x20,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x74,0xD8,0x18, +0x18,0x00,0xCB,0x37,0x74,0x10,0x5C,0x63,0x00,0x18,0x79,0x00,0xCB,0x37,0x76,0x30, +0x18,0x19,0x00,0x53,0x40,0x24,0xCB,0x37,0x74,0x00,0x1B,0x59,0x00,0xCB,0x77,0x74, +0x28,0x53,0x20,0x60,0x1B,0x3B,0x00,0xCB,0x77,0x74,0x30,0x1B,0x3B,0x00,0xCB,0x77, +0x74,0x38,0x53,0x20,0x1C,0x1B,0x3B,0x00,0xCB,0x77,0x74,0x40,0x1B,0x3B,0x00,0xCB, +0x37,0x74,0xA8,0x13,0x39,0x00,0xCB,0x37,0x74,0x78,0x9B,0x69,0x1B,0x79,0x00,0xCB, +0x37,0x74,0x70,0x18,0x19,0x00,0xCB,0x37,0x74,0x60,0x13,0x79,0x00,0x1B,0x59,0x00, +0xCA,0xF7,0x74,0x61,0x13,0x37,0x00,0x18,0x17,0x00,0x98,0x61,0x12,0xF8,0x00,0x52, +0xF7,0x01,0x1A,0xF8,0x00,0x85,0x29,0x5C,0x63,0x00,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x74,0x20,0x18,0x77,0x00,0x0B,0x17,0x01,0xC7,0x18,0xFE,0xFF,0x0F,0x17,0x01,0x85, +0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x68,0x10,0x77,0x00,0x4C,0x63,0x21,0x54, +0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0xE0,0x10,0x77,0x00,0x4C, +0x63,0x09,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x68,0x10, +0x77,0x00,0x4C,0x63,0x29,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x74,0xE0,0x10,0x77,0x00,0x4C,0x63,0x19,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00, +0x01,0xCA,0xF7,0x74,0x68,0x10,0x77,0x00,0x4C,0x63,0x11,0x54,0x63,0x01,0x85,0x29, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x68,0x08,0x77,0x01,0x4C,0x63,0x49,0x54,0x63, +0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x68,0x08,0x77,0x01,0x4C,0x63, +0x51,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x61,0x13,0x17, +0x00,0x57,0x18,0xFD,0x1B,0x17,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74, +0x61,0x13,0x17,0x00,0x53,0x18,0x02,0x1B,0x17,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x74,0xC0,0x12,0xF7,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74, +0xA8,0x12,0xF7,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0xC8,0x12,0xF7, +0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0xA0,0x12,0xF7,0x00,0x85,0x29, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x20,0x10,0x77,0x00,0x85,0x29,0x5C,0x63,0x00, +0xC3,0x14,0x00,0x01,0x4E,0xE3,0x10,0xCB,0x18,0x2A,0x00,0x8E,0xF8,0x08,0x77,0x00, +0x9A,0xE8,0xCC,0x63,0x00,0x03,0x40,0x63,0xB8,0x85,0x29,0x5C,0x84,0x04,0x5E,0xE4, +0x00,0xD2,0xEF,0x05,0xAD,0x4E,0xF7,0x10,0xC3,0x18,0x00,0x21,0xFF,0x18,0xBD,0x1C, +0x8E,0xF8,0xC3,0x34,0x00,0x01,0x0F,0x17,0x02,0xCA,0xF9,0x26,0x18,0x0B,0x57,0x01, +0xC7,0x5A,0xFF,0xF3,0x1F,0x60,0xCF,0x0F,0x57,0x01,0x0B,0x57,0x01,0x47,0x5A,0xDC, +0x53,0x5A,0x10,0x4C,0x84,0x49,0x0F,0x57,0x01,0x9A,0xE1,0xCB,0x59,0x26,0x20,0xE4, +0x00,0x00,0x31,0x4F,0x37,0x08,0x9E,0xE1,0x8F,0x38,0x5E,0xF7,0x04,0x0B,0x39,0x01, +0xC7,0x39,0x3F,0xFF,0x0F,0x3A,0x01,0xC3,0x34,0x00,0x01,0xD6,0xE4,0xFF,0x40,0x20, +0x60,0x96,0xCB,0x39,0x26,0x38,0x0B,0x18,0x01,0x0A,0xF9,0x01,0x4F,0x18,0x60,0xFF, +0x40,0x8F,0xFF,0xC7,0x18,0x70,0x00,0x46,0xF7,0xD4,0x46,0xF8,0xBD,0x0E,0xF9,0x01, +0xE4,0x00,0x00,0x4B,0x20,0x64,0x86,0xCA,0xF9,0x26,0x38,0xFF,0x60,0xF8,0xFF,0x0B, +0x38,0x01,0x0B,0x57,0x01,0x4F,0x39,0x40,0x47,0x1A,0xDC,0xC7,0x39,0x07,0x00,0x47, +0x19,0xC5,0x0F,0x17,0x01,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x18,0x0B,0x17,0x01, +0x53,0x18,0x30,0x0F,0x17,0x01,0x85,0x29,0x5C,0x84,0x00,0xD0,0x8F,0x03,0x9D,0xC2, +0xF8,0x00,0x21,0xFE,0xF7,0xBC,0x44,0x4C,0x84,0x10,0xC3,0x14,0x00,0x01,0x8C,0x97, +0xCB,0x38,0x26,0x34,0x0E,0xE4,0x02,0x0B,0x59,0x01,0x0B,0x77,0x03,0xFF,0x80,0xC0, +0x00,0xC7,0x7B,0x3F,0xFF,0x47,0x5A,0xE4,0x47,0x5B,0xD5,0x0F,0x59,0x01,0x20,0x60, +0x7E,0x0B,0x37,0x01,0xCB,0x18,0x26,0x38,0x4F,0x39,0x60,0x0B,0x58,0x01,0xFF,0x60, +0x8F,0xFF,0xC7,0x39,0x70,0x00,0x46,0xFA,0xDC,0xE4,0x00,0x00,0x3F,0x20,0x64,0x86, +0x0B,0x37,0x01,0xCB,0x18,0x26,0x38,0x4F,0x39,0x40,0x0B,0x58,0x01,0xFF,0x80,0xF8, +0xFF,0xC7,0x39,0x07,0x00,0x46,0xFA,0xE4,0x46,0xF9,0xBD,0x0E,0xF8,0x01,0x85,0x29, +0x5C,0x84,0x00,0xD0,0x8C,0x04,0x1D,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBC,0x44,0x4C, +0x84,0x10,0xFF,0x40,0xC0,0x00,0x8C,0x97,0x0E,0xE4,0x02,0x20,0x60,0xD6,0xC3,0x14, +0x00,0x01,0x0B,0x77,0x03,0xCB,0x38,0x26,0xC4,0xC7,0x7B,0x3F,0xFF,0x0B,0x99,0x01, +0x47,0x5C,0xD4,0x47,0x5B,0xD5,0xCB,0x18,0x26,0x38,0x0F,0x59,0x01,0x1F,0x60,0x8F, +0x0B,0x37,0x01,0x0B,0x58,0x01,0x4F,0x39,0x20,0x57,0x39,0x70,0xE4,0x00,0x00,0x63, +0x20,0x64,0xDA,0xC3,0x14,0x00,0x01,0x0B,0x77,0x03,0xCB,0x38,0x26,0xC8,0xC7,0x7B, +0x3F,0xFF,0x0B,0x99,0x01,0x47,0x5C,0xD4,0x47,0x5B,0xD5,0xCB,0x18,0x26,0x38,0x0F, +0x59,0x01,0x9B,0x78,0x0B,0x37,0x01,0x0B,0x58,0x01,0x57,0x39,0x07,0x46,0xFA,0xDC, +0x46,0xF9,0xBD,0x0E,0xF8,0x01,0x85,0x29,0x5C,0x84,0x04,0x20,0x60,0x28,0x20,0x64, +0xEE,0xE4,0x00,0x00,0x39,0xC2,0xF4,0x00,0x01,0x4C,0x84,0x41,0xCA,0xF7,0x26,0xC0, +0x54,0x84,0x3F,0x0B,0x17,0x01,0x1F,0x20,0xC0,0xE4,0x00,0x00,0x2F,0xC2,0xF4,0x00, +0x01,0xC4,0x84,0x3F,0x00,0xCA,0xF7,0x26,0xC0,0xFF,0x20,0xC0,0xFF,0x0B,0x17,0x01, +0x47,0x18,0xCC,0x44,0x84,0xC5,0x0C,0x97,0x01,0x85,0x29,0x20,0x61,0x52,0x20,0x84, +0x84,0x20,0x80,0x2C,0xD0,0x82,0x04,0xD6,0xE4,0x00,0x00,0x5D,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0xC7,0x18,0x3F,0xFF,0xE4,0x00,0x01,0x01,0xC2, +0xF4,0x00,0x01,0xFF,0x20,0x80,0x00,0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0xC7,0x18, +0x3F,0xFF,0xE4,0x00,0x00,0x27,0xC2,0xF4,0x00,0x01,0xFF,0x20,0xC0,0x00,0xCA,0xF7, +0x26,0x30,0x0B,0x17,0x01,0x47,0x18,0xCD,0x5F,0x18,0x04,0xE4,0x00,0x00,0xA1,0x20, +0x65,0x3E,0x20,0x84,0x80,0x20,0x80,0x28,0x20,0x89,0x1A,0xE4,0x00,0x00,0x63,0xC2, +0xF4,0x00,0x01,0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0xC7,0x18,0xCF,0xFF,0xE4,0x00, +0x00,0x5B,0xC2,0xF4,0x00,0x01,0xFF,0x20,0xCF,0xFF,0xCA,0xF7,0x26,0x30,0x0B,0x17, +0x01,0x47,0x18,0xCC,0xCB,0x18,0x20,0x00,0xE4,0x00,0x00,0x27,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0xCB,0x18,0x30,0x00,0x0F,0x17,0x01,0x85,0x29, +0x20,0x64,0x72,0xC2,0xF4,0x00,0x01,0xFF,0x20,0x80,0x00,0xCA,0xF7,0x26,0x24,0x0B, +0x17,0x01,0x47,0x18,0xCD,0x5F,0x18,0x04,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2, +0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0xC7,0x18,0x7F,0xFF,0x0F,0x17, +0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17, +0x01,0xCB,0x18,0x20,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0xC7,0x18,0xDF,0xFF,0x0F,0x17,0x01,0x85,0x29, +0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0xCB,0x18, +0x40,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26, +0x24,0x0B,0x17,0x01,0xC7,0x18,0xBF,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0xCB,0x18,0x10,0x00,0xE4, +0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17, +0x01,0xC7,0x18,0xEF,0xFF,0x0F,0x17,0x01,0x85,0x29,0x9C,0x38,0xC2,0xF4,0x00,0x01, +0x0D,0x21,0x04,0xCA,0xF7,0x26,0x18,0x0B,0x17,0x01,0xCB,0x18,0x40,0x00,0x98,0x60, +0x0F,0x17,0x01,0xE7,0xFF,0xFF,0x1A,0x0D,0x21,0x06,0x98,0x60,0x9C,0x28,0xE7,0xFF, +0xFF,0x5F,0x20,0x64,0x72,0xC2,0xF4,0x00,0x01,0xFF,0x20,0x80,0x00,0xCA,0xF7,0x26, +0x00,0x0B,0x17,0x01,0x47,0x18,0xCD,0x5F,0x18,0x04,0xE4,0x00,0x00,0x2D,0x20,0x60, +0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xC7,0x18,0x7F,0xFF, +0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00, +0x0B,0x17,0x01,0xCB,0x18,0x20,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xC7,0x18,0xDF,0xFF,0x0F,0x17,0x01, +0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01, +0xCB,0x18,0x40,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x26,0x00,0x0B,0x17,0x01,0xC7,0x18,0xBF,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20, +0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xCB,0x18,0x10, +0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00, +0x0B,0x17,0x01,0xC7,0x18,0xEF,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2, +0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xCB,0x18,0x08,0x00,0xE4,0x00, +0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01, +0xC7,0x18,0xF7,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xCB,0x18,0x04,0x00,0xE4,0x00,0x00,0x2D,0x20, +0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xC7,0x18,0xFB, +0xFF,0x0F,0x17,0x01,0x85,0x29,0x5C,0x63,0x00,0xC2,0xF4,0x00,0x01,0x4F,0x23,0x40, +0xCA,0xF7,0x26,0x14,0x4C,0x63,0x60,0x0B,0x17,0x01,0x44,0x79,0x1D,0x5F,0x18,0x00, +0x44,0x63,0xC5,0x5C,0x63,0x04,0x0C,0x77,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xFF, +0x20,0xF0,0x00,0xCB,0x17,0x26,0x0C,0xC4,0x63,0x0F,0xFF,0x0B,0x58,0x01,0x5C,0x63, +0x06,0x47,0x5A,0xCC,0x47,0x43,0xD5,0x0F,0x58,0x01,0xCA,0xF7,0x26,0x10,0x0B,0x17, +0x01,0x47,0x38,0xCC,0x44,0x63,0xCD,0x0C,0x77,0x01,0x85,0x29,0x9C,0x38,0xFF,0x00, +0xE0,0x00,0x0D,0x21,0x04,0x0D,0x41,0x00,0xC1,0x54,0x00,0x01,0xCA,0xEA,0x26,0x04, +0x0B,0x37,0x01,0x47,0x39,0xC4,0xCB,0x39,0x0F,0xA0,0x0F,0x37,0x01,0xCA,0xEA,0x26, +0x08,0x0B,0x37,0x01,0x47,0x19,0xC4,0xCB,0x18,0x10,0x60,0x98,0x60,0x0F,0x17,0x01, +0xFC,0x80,0x08,0x03,0xE7,0xFF,0xF9,0x28,0xCA,0xEA,0x26,0xC0,0xFF,0x20,0xC0,0xFF, +0x0B,0x17,0x01,0x47,0x18,0xCC,0xCB,0x18,0x08,0x00,0x98,0x60,0x0F,0x17,0x01,0xFC, +0x80,0x08,0x03,0xE7,0xFF,0xF7,0xDA,0x98,0x61,0xFC,0x80,0x08,0x03,0xE7,0xFF,0xF7, +0xC6,0xCA,0xEA,0x26,0x00,0x0B,0x17,0x01,0x53,0x18,0x0F,0x0F,0x17,0x01,0x0B,0x17, +0x01,0xC7,0x18,0xFF,0x7F,0x0F,0x17,0x01,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xBF,0x98, +0x68,0x0F,0x17,0x01,0xE7,0xFF,0xFE,0x44,0x0D,0x21,0x06,0x0D,0x41,0x02,0xFC,0x60, +0x01,0x2C,0x9C,0x28,0xE7,0xFF,0xFE,0x6F,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0x00, +0x0B,0x17,0x01,0x53,0x18,0x02,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x78,0x00,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xFD,0x0F,0x17,0x01,0x85,0x29,0x9C, +0x7F,0x5C,0x63,0x00,0xD0,0x64,0x05,0x15,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBE,0xDC, +0x4C,0x63,0x10,0xFF,0x00,0xFC,0xFF,0x8C,0x77,0xC2,0xF4,0x00,0x01,0x0F,0x23,0x02, +0x87,0x29,0xCB,0x17,0x3D,0x3C,0xCA,0xF7,0x31,0x04,0x0B,0x38,0x01,0x53,0x39,0x01, +0x0F,0x38,0x01,0x0B,0x17,0x01,0xC7,0x18,0xFC,0xFF,0xE4,0x00,0x00,0xD3,0xCB,0x37, +0x3D,0x3C,0xCA,0xF7,0x31,0x04,0x0B,0x59,0x01,0x53,0x5A,0x01,0x0F,0x59,0x01,0x0B, +0x37,0x01,0x47,0x19,0xC4,0xCB,0x18,0x01,0x00,0xE4,0x00,0x00,0x95,0xCB,0x37,0x3D, +0x3C,0xCA,0xF7,0x31,0x04,0x0B,0x59,0x01,0x53,0x5A,0x01,0x0F,0x59,0x01,0x0B,0x37, +0x01,0x47,0x19,0xC4,0xCB,0x18,0x02,0x00,0xE4,0x00,0x00,0x57,0xCA,0xF7,0x3D,0x3C, +0x0B,0x17,0x01,0xC7,0x18,0xFF,0xFE,0xE4,0x00,0x00,0x39,0xCB,0x17,0x3C,0x10,0xCA, +0xF7,0x3C,0x14,0x0B,0x38,0x01,0x53,0x39,0x01,0x0F,0x38,0x01,0x0B,0x17,0x01,0xC7, +0x18,0xFF,0xFD,0x0F,0x17,0x01,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0x00,0x0B,0x17, +0x01,0xC7,0x18,0xFF,0xFB,0x0F,0x17,0x01,0x85,0x29,0x5C,0x63,0x00,0x5C,0x84,0x00, +0x9A,0xE0,0x24,0x64,0x43,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBE,0xF0,0x8C,0x77,0x12, +0xE3,0x00,0xC3,0x14,0x00,0x01,0xCB,0x18,0x78,0x01,0x4E,0xF7,0x10,0x5C,0x80,0x29, +0x46,0xF7,0xC5,0x4B,0x00,0x1A,0x1B,0x17,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0x5C, +0x84,0x04,0xCB,0x17,0x79,0x04,0xCC,0x84,0x17,0x70,0x4F,0x24,0x81,0x5C,0x84,0x04, +0x0F,0x38,0x01,0xCA,0xF7,0x79,0x00,0x0C,0x97,0x01,0x98,0x81,0xE7,0xFF,0xFF,0x5D, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0xCC,0x0B,0x17,0x01,0x53,0x18,0x02,0x0F,0x17, +0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x7A,0x30,0xCB,0x37,0x7A,0x34,0xCB, +0x57,0x7A,0x10,0xCA,0xF7,0x7A,0x14,0x0B,0x18,0x01,0x0B,0x39,0x01,0x0B,0x5A,0x01, +0x08,0x77,0x01,0x4E,0xF9,0x80,0x4C,0x63,0x80,0x8E,0xF8,0x8C,0x7A,0x44,0x63,0x1F, +0x44,0x63,0xBC,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x7A,0x70,0xCB,0x37,0x7A, +0x74,0xCB,0x57,0x7A,0x50,0xCA,0xF7,0x7A,0x54,0x0B,0x18,0x01,0x0B,0x39,0x01,0x0B, +0x5A,0x01,0x08,0x77,0x01,0x4E,0xF9,0x80,0x4C,0x63,0x80,0x8E,0xF8,0x8C,0x7A,0x44, +0x63,0x1F,0x44,0x63,0xBC,0x85,0x29,0x5C,0x63,0x06,0xC2,0xF4,0x00,0x01,0x47,0x23, +0x1F,0xCA,0xF7,0x7A,0x10,0x0B,0x17,0x01,0x47,0x19,0xC4,0x44,0x63,0xC5,0x5C,0x63, +0x04,0x0C,0x77,0x01,0x85,0x29,0x5C,0x63,0x06,0xC2,0xF4,0x00,0x01,0x47,0x23,0x1F, +0xCA,0xF7,0x7A,0x50,0x0B,0x17,0x01,0x47,0x19,0xC4,0x44,0x63,0xC5,0x5C,0x63,0x04, +0x0C,0x77,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x44,0x63,0x1F,0xCA,0xF7,0x7A,0x10, +0x0B,0x17,0x01,0x47,0x18,0x1C,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x44, +0x63,0x1F,0xCA,0xF7,0x7A,0x50,0x0B,0x17,0x01,0x47,0x18,0x1C,0x0F,0x17,0x01,0x85, +0x29,0x5C,0x63,0x04,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x7A,0x30,0x0C,0x77,0x01,0x85, +0x29,0x9B,0x01,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x7A,0x70,0x0F,0x17,0x01,0x85,0x29, +0xC2,0xF4,0x00,0x01,0xFF,0x20,0xAA,0x55,0xCB,0x17,0x78,0xC0,0x0F,0x38,0x01,0x5F, +0x03,0x04,0x27,0x08,0x17,0x98,0x63,0xCA,0xF7,0x78,0xC4,0x5C,0x63,0x04,0xCB,0x00, +0x03,0xE8,0x43,0x04,0xC1,0x40,0x63,0xC3,0x4C,0x63,0x81,0x44,0x63,0x1F,0x0C,0x77, +0x01,0x06,0xE0,0x5B,0xCA,0xF7,0x8D,0x80,0x5C,0x97,0x0D,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x3C,0x44,0x0B,0x17,0x01,0x20,0x00,0x2D,0xC7,0x18,0xFF,0xBF,0xE4,0x00,0x00, +0x15,0x5F,0x18,0x04,0x53,0x18,0x40,0x0F,0x17,0x01,0x85,0x29,0xFF,0x00,0xAA,0x55, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0xC0,0x0F,0x17,0x01,0x85,0x29,0xFF,0x00,0x55, +0xAA,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0xC0,0x0F,0x17,0x01,0x85,0x29,0xCA,0xE0, +0x03,0x20,0xC3,0x14,0x00,0x01,0x5C,0x63,0x04,0xC0,0x60,0x63,0xEA,0x48,0x63,0xB8, +0xCA,0xF8,0x79,0x10,0x0B,0x37,0x01,0x53,0x39,0x01,0x0F,0x37,0x01,0xCB,0x58,0x79, +0x00,0xCB,0x38,0x79,0x08,0x9C,0x38,0x0A,0xF9,0x01,0xCB,0x18,0x3C,0x44,0x0B,0x7A, +0x01,0x0B,0x39,0x01,0x0F,0x21,0x07,0x0B,0x18,0x01,0x57,0x18,0x40,0x5F,0x18,0x04, +0x23,0x00,0x40,0x4C,0x63,0x29,0x5C,0x60,0x09,0x48,0x63,0x0A,0xE4,0x00,0x00,0x3F, +0xCC,0x63,0x00,0x06,0x5C,0x63,0x04,0xE4,0x00,0x00,0x29,0x0A,0xF8,0x01,0x52,0xF7, +0x01,0x0E,0xF8,0x01,0x0A,0xF9,0x01,0xE4,0x00,0x00,0x21,0xC3,0x34,0x00,0x01,0xCB, +0x19,0x79,0x10,0xCB,0x39,0x79,0x08,0x0B,0x41,0x07,0x43,0x57,0xD5,0xD4,0x7A,0x00, +0xB8,0x0B,0x41,0x07,0xD7,0x57,0xFE,0xB9,0x0B,0x41,0x07,0x43,0x5B,0xD5,0x8E,0xFA, +0xD4,0x77,0xFE,0x5C,0x9C,0x28,0x85,0x29,0x5C,0x63,0x04,0xE4,0x00,0x00,0x2D,0x42, +0xE4,0x2C,0xC3,0x38,0x00,0x01,0x43,0x05,0xCC,0x8F,0x03,0x13,0x18,0x00,0x1B,0x17, +0x00,0x9C,0xBF,0x20,0xBF,0xB2,0x85,0x29,0x5C,0x63,0x00,0xC2,0xF4,0x00,0x01,0x20, +0x60,0xCE,0xCA,0xF7,0x2C,0x30,0x0B,0x17,0x01,0xCB,0x18,0x02,0x00,0x0F,0x17,0x01, +0x80,0x01,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x3C,0x44,0xCA,0xF7,0x3C,0xA8,0x0B,0x38, +0x01,0xC7,0x39,0xFF,0xF3,0x0F,0x38,0x01,0x0B,0x17,0x01,0x53,0x18,0x01,0xE4,0x00, +0x00,0x9F,0xCB,0x17,0x3C,0xA8,0x0B,0x38,0x01,0x53,0x39,0x01,0xCA,0xF7,0x3C,0x5C, +0x0F,0x38,0x01,0x1F,0x00,0xC0,0x0B,0x37,0x00,0x47,0x39,0xC4,0x9B,0x02,0x24,0x64, +0x25,0x54,0x63,0x3F,0x5F,0x03,0x06,0x47,0x18,0xCD,0x5C,0x78,0x04,0xC3,0x14,0x00, +0x01,0x0C,0x77,0x01,0xCA,0xF8,0x3C,0xA8,0x0B,0x37,0x01,0xC7,0x39,0xFF,0xFE,0x0F, +0x37,0x01,0xCA,0xF8,0x2C,0x30,0x0B,0x17,0x01,0xCB,0x18,0x01,0x00,0x0F,0x17,0x01, +0x85,0x29,0x80,0x01,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x1E,0xB0,0x0B,0x17,0x01,0x53, +0x18,0x03,0x0F,0x17,0x01,0x80,0x01,0x9B,0x1F,0xCA,0xE0,0x48,0x00,0xC3,0x17,0x00, +0x0D,0xCA,0xE0,0x48,0x04,0xC3,0x17,0x00,0x0D,0x80,0x01,0xCA,0xE0,0x40,0x00,0xC3, +0x17,0x00,0x0F,0x53,0x18,0x40,0xC3,0x17,0x00,0x0D,0xC3,0x17,0x00,0x0F,0x1F,0x20, +0xBF,0x47,0x18,0xCC,0xC3,0x17,0x00,0x0D,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17, +0x3D,0x80,0x0B,0x38,0x01,0xCB,0x39,0x08,0x00,0x0F,0x38,0x01,0xCA,0xF7,0x3D,0x84, +0x0B,0x17,0x01,0xCB,0x18,0x08,0x00,0x0F,0x17,0x01,0x85,0x29,0xE7,0xFF,0xFF,0xBD, +0x56,0xE3,0xFF,0x4E,0xF7,0x08,0x5C,0x84,0x04,0xC4,0x63,0xFF,0x00,0x8C,0x77,0xC2, +0xF4,0x00,0x01,0x4C,0x63,0x08,0x8C,0x77,0x0C,0x83,0x01,0x85,0x29,0x1C,0x21,0xC8, +0xC0,0x98,0x00,0x21,0x0D,0x21,0x34,0x1C,0x61,0x06,0xFC,0x84,0xB6,0x6E,0x50,0xA0, +0x2A,0xE7,0xFF,0x2D,0x1E,0x1E,0xE1,0x06,0x1F,0x41,0x30,0x0B,0x37,0x01,0xFF,0x60, +0xFF,0x00,0x47,0x19,0xDC,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19, +0xC3,0x34,0x00,0x01,0x8F,0x19,0x0B,0x37,0x03,0x47,0x99,0xCF,0x0B,0x78,0x01,0x47, +0x7B,0xE4,0x0B,0x97,0x05,0x47,0x39,0xE4,0x47,0x3B,0xCD,0x0F,0x38,0x01,0x9E,0xE6, +0xD7,0x57,0xFE,0x5E,0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0xFC,0x21,0xFF,0x38, +0x50,0xA0,0x3C,0xED,0x21,0x00,0xC4,0xED,0x41,0x00,0xC0,0xED,0x61,0x00,0xBC,0xED, +0x81,0x00,0xB8,0xED,0xA1,0x00,0xB4,0xED,0xC1,0x00,0xB0,0xED,0xE1,0x00,0xAC,0xEE, +0x01,0x00,0xA8,0xC1,0x58,0x00,0x21,0x1C,0x61,0x6C,0xFD,0x4A,0xB6,0x6E,0x1C,0x8A, +0x2A,0xE7,0xFF,0x2C,0x1E,0x50,0xA0,0x24,0x1C,0x8A,0x66,0x1C,0x61,0x48,0xE7,0xFF, +0x2C,0x04,0x98,0x61,0x98,0x82,0xE7,0xFF,0xEE,0x8A,0x98,0x61,0xFC,0x80,0x3E,0x0C, +0xE7,0xFF,0xD5,0xA6,0x98,0x61,0xFC,0x80,0x3E,0x0C,0xE7,0xFF,0xEB,0xDC,0x98,0x61, +0x88,0x83,0xE7,0xFF,0xD8,0x5A,0x98,0x61,0x88,0x83,0xE7,0xFF,0xD5,0xE2,0x98,0x60, +0x98,0x81,0xE7,0xFF,0xD6,0xD2,0x98,0x60,0x05,0x4F,0x0F,0xC9,0x4A,0x0F,0x0F,0x88, +0x8A,0xE7,0xFF,0xE0,0x92,0x98,0x61,0x88,0x8A,0xE7,0xFF,0xE0,0x82,0xC3,0x54,0x00, +0x01,0xCA,0xE0,0x11,0x50,0xCB,0x5A,0x22,0x00,0x57,0x17,0xFF,0x4F,0x18,0x10,0x8F, +0x1A,0x1F,0x61,0x2A,0x0B,0x38,0x01,0x4F,0x17,0x08,0x8F,0x1B,0xEF,0x38,0xDD,0x61, +0x9E,0xE1,0xC2,0xE2,0x2B,0xE4,0x23,0xFF,0x8D,0x1E,0xE1,0x6C,0xFF,0x41,0x00,0xA8, +0xC1,0x94,0x00,0x01,0xFD,0xA0,0xFF,0x00,0x0B,0x37,0x01,0x47,0x19,0x6C,0x5F,0x39, +0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19,0x0B,0x37,0x03,0x8F,0x0C,0x0F,0x38, +0x01,0x9E,0xE4,0xD7,0x57,0xFF,0x2E,0x1E,0xE1,0x48,0x1F,0x41,0x6C,0x0B,0x37,0x01, +0x47,0x19,0x6C,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19,0x0B,0x37, +0x03,0x8F,0x0C,0x0F,0x38,0x01,0x9E,0xE4,0xD7,0x57,0xFF,0x2E,0xE7,0xFF,0xD1,0xAC, +0x99,0xE0,0x89,0xC3,0x98,0x61,0xE7,0xFF,0xD1,0xC2,0xD1,0xE0,0x05,0xBE,0x98,0x60, +0x1D,0x61,0x0A,0xE7,0xFF,0xD1,0xFC,0x99,0x40,0xE4,0x00,0x01,0x45,0x98,0x61,0x88, +0x8A,0x22,0x01,0x0A,0xE7,0xFF,0xDD,0x94,0x98,0x60,0xE7,0xFF,0xDD,0xDE,0xFC,0x60, +0x01,0x00,0xE7,0xFF,0xF7,0x86,0xE7,0xFF,0xCF,0xC8,0xE7,0xFF,0xF6,0x32,0xC4,0x63, +0x01,0x00,0x20,0x63,0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF6,0xDC,0xFC,0x60,0x01, +0x00,0xE7,0xFF,0xF7,0xA0,0x88,0x6A,0x98,0x81,0x98,0xA0,0xE7,0xFF,0xE8,0x04,0xE4, +0x00,0x00,0x8B,0xE7,0xFF,0xDD,0x16,0x98,0x61,0xE7,0xFF,0xDD,0x60,0xFC,0x60,0x01, +0x00,0xE7,0xFF,0xF7,0x08,0xE7,0xFF,0xCF,0x4A,0xE7,0xFF,0xF5,0xB4,0xC4,0x63,0x01, +0x00,0x20,0x63,0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF6,0x5E,0xFC,0x60,0x01,0x00, +0xE7,0xFF,0xF7,0x22,0x88,0x6A,0x98,0x81,0x98,0xA0,0xE7,0xFF,0xE7,0x86,0x0A,0xEB, +0x01,0x40,0x63,0xBD,0x0C,0x6B,0x01,0x9E,0x01,0x5E,0x10,0x00,0xD2,0x02,0xFB,0x8E, +0x9D,0x41,0x9D,0x62,0x5D,0x4A,0x00,0xD1,0x44,0x05,0xEA,0x9A,0x00,0xE7,0xFF,0xFE, +0xC1,0x98,0x61,0x1D,0x61,0x12,0xE7,0xFF,0xD0,0x96,0x99,0x40,0xE4,0x00,0x01,0x45, +0x98,0x61,0x88,0x8A,0x22,0x01,0x0A,0xE7,0xFF,0xDC,0x2E,0x98,0x60,0xE7,0xFF,0xDC, +0x78,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF6,0x20,0xE7,0xFF,0xCE,0x62,0xE7,0xFF,0xF4, +0xCC,0xC4,0x63,0x01,0x00,0x20,0x63,0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF5,0x76, +0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF6,0x3A,0x88,0x6A,0x98,0x81,0x98,0xA0,0xE7,0xFF, +0xE6,0x9E,0xE4,0x00,0x00,0x8B,0xE7,0xFF,0xDB,0xB0,0x98,0x61,0xE7,0xFF,0xDB,0xFA, +0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF5,0xA2,0xE7,0xFF,0xCD,0xE4,0xE7,0xFF,0xF4,0x4E, +0xC4,0x63,0x01,0x00,0x20,0x63,0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF4,0xF8,0xFC, +0x60,0x01,0x00,0xE7,0xFF,0xF5,0xBC,0x88,0x6A,0x98,0x81,0x98,0xA0,0xE7,0xFF,0xE6, +0x20,0x0A,0xEB,0x01,0x40,0x63,0xBD,0x0C,0x6B,0x01,0x9E,0x01,0x5E,0x10,0x00,0xD2, +0x02,0xFB,0x8E,0x9D,0x41,0x9D,0x62,0x5D,0x4A,0x00,0xD1,0x44,0x00,0x52,0x9A,0x00, +0xE7,0xFF,0xFE,0xC1,0x9D,0xE1,0x5D,0xEF,0x00,0xD1,0xE2,0xF4,0x8E,0x0B,0x21,0x0A, +0x0B,0x01,0x12,0x0F,0x21,0x07,0x1E,0xE1,0x0C,0x1F,0x81,0x12,0x0B,0x77,0x01,0x8B, +0x59,0x5F,0xBB,0x06,0xD7,0x3D,0x00,0x30,0x8B,0x5B,0x5F,0x3A,0x06,0x0B,0x77,0x09, +0x8B,0x58,0x5F,0xBB,0x06,0xD7,0x1D,0x00,0x30,0x8B,0x5B,0x5F,0x1A,0x06,0x9E,0xE2, +0xD7,0x97,0xFE,0xE6,0x0F,0x21,0x07,0x9A,0xE0,0x0F,0x01,0x09,0x1F,0x21,0x1A,0x8B, +0x57,0xFD,0x00,0x3F,0xFF,0xE4,0x00,0x00,0x69,0x43,0x7E,0xC4,0x0B,0x9B,0x00,0x43, +0x79,0xC4,0x23,0x80,0x32,0x0D,0x1B,0x01,0x9B,0x41,0xE4,0x00,0x00,0x23,0x09,0x5D, +0x00,0xCD,0x4A,0x1F,0xFF,0x43,0x8A,0xE0,0x0F,0x9B,0x01,0x9F,0x02,0xD3,0x08,0xFE, +0xE6,0x9F,0x28,0x9E,0xE2,0xD2,0xE4,0x00,0xBA,0x1F,0x01,0x0A,0x4F,0xD7,0x10,0x1F, +0xA1,0x06,0x8F,0xD8,0x8F,0xB7,0x9B,0x00,0xE7,0xFF,0xFF,0x83,0xC3,0x94,0x00,0x01, +0x9A,0xE0,0xCB,0x9C,0x24,0x00,0xE4,0x00,0x00,0x47,0x43,0xB9,0xC4,0x43,0xDB,0xC4, +0x57,0xBD,0xFF,0x0B,0xDE,0x01,0x4F,0xBD,0x10,0x8F,0xBC,0x0F,0xDD,0x01,0x9F,0x02, +0xD3,0x08,0xFF,0x56,0x9E,0xE1,0x22,0xE8,0x54,0x1F,0x21,0x1A,0x4F,0x77,0x18,0x9B, +0x00,0x8F,0x79,0xFF,0x37,0x12,0x46,0xE7,0xFF,0xFF,0xA7,0x9A,0xE0,0x4F,0x17,0x08, +0x1F,0x61,0x6C,0x8F,0x1B,0x0B,0x38,0x01,0x47,0x19,0x6C,0x5F,0x39,0x00,0x4F,0x39, +0x10,0x4F,0x18,0x08,0x8F,0x19,0x1F,0x21,0x2A,0x8F,0x0C,0x8F,0x37,0x0B,0x39,0x01, +0x0F,0x38,0x01,0x9E,0xE2,0x5E,0xE3,0xC9,0x23,0xFF,0x55,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x25,0x38,0x0B,0x17,0x01,0x23,0x40,0x34,0x5F,0x18,0x04,0x53,0x18,0x0F,0xE4, +0x00,0x00,0x11,0xC7,0x18,0xFF,0xF0,0x0F,0x17,0x01,0x98,0x60,0x98,0x80,0xE7,0xFF, +0xDA,0x38,0x98,0x80,0x98,0x61,0xE7,0xFF,0xDA,0x28,0x98,0x60,0xE7,0xFF,0xD8,0xDA, +0x98,0x60,0x98,0x80,0xE7,0xFF,0xD8,0x74,0x88,0x6E,0xEE,0x01,0x00,0xAA,0xED,0xE1, +0x00,0xAE,0xED,0xC1,0x00,0xB2,0xED,0xA1,0x00,0xB6,0xED,0x81,0x00,0xBA,0xED,0x61, +0x00,0xBE,0xED,0x41,0x00,0xC2,0xED,0x21,0x00,0xC6,0xFC,0x21,0x00,0xC8,0xE7,0xFF, +0xCC,0x13,0xC2,0xF4,0x00,0x01,0x53,0x20,0x1F,0xCB,0x17,0x3C,0x30,0x0F,0x38,0x01, +0xCC,0x63,0x61,0xA8,0xCB,0x17,0x3C,0x90,0xCA,0xF7,0x3C,0x38,0x0B,0x18,0x01,0x43, +0x03,0xC1,0x4F,0x18,0x29,0x9F,0x1F,0x5F,0x18,0x04,0x0F,0x17,0x01,0x85,0x29,0xC2, +0xF4,0x00,0x01,0x54,0x63,0x62,0xCA,0xF7,0x3C,0x94,0x50,0x63,0x02,0x0B,0x17,0x01, +0x1F,0x20,0x9D,0x47,0x18,0xCC,0x47,0x03,0xC5,0x0F,0x17,0x01,0x85,0x29,0x5C,0x63, +0x04,0xC6,0xE3,0x02,0x00,0x5E,0xF7,0x04,0x22,0xE0,0x70,0xC2,0xF4,0x00,0x01,0xFF, +0x20,0xFC,0xFF,0xCA,0xF7,0x2C,0x54,0x0B,0x17,0x01,0x47,0x18,0xCC,0xCB,0x18,0x01, +0x00,0x0F,0x17,0x01,0xC6,0xE3,0x04,0x00,0x5E,0xF7,0x04,0x22,0xE0,0xB8,0xC2,0xF4, +0x00,0x01,0xFF,0x00,0xA5,0x5A,0xCB,0x37,0x30,0xCC,0x0F,0x19,0x01,0xCB,0x37,0x30, +0xD0,0x0F,0x19,0x01,0xCA,0xF7,0x31,0x04,0xFF,0x40,0x8F,0xFF,0x0B,0x17,0x01,0x47, +0x18,0xD4,0xCB,0x18,0x30,0x00,0x0F,0x17,0x01,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x3C, +0x98,0x0B,0x38,0x01,0xFF,0x20,0x01,0x01,0x0F,0x38,0x01,0xCB,0x17,0x3C,0xA0,0x0B, +0x58,0x01,0x0F,0x38,0x01,0x1F,0x40,0x88,0xCB,0x17,0x3C,0xB4,0x0B,0x38,0x01,0x47, +0x39,0xD4,0x53,0x39,0x33,0x0F,0x38,0x01,0xCB,0x17,0x3C,0xB0,0x0B,0x38,0x01,0x5F, +0x39,0x00,0xCB,0x39,0x03,0x00,0x0F,0x38,0x01,0xCA,0xF7,0x3C,0x94,0xC4,0x63,0x07, +0x00,0x0B,0x17,0x01,0xFF,0x20,0xF8,0xFF,0x47,0x18,0xCC,0x44,0x63,0xC5,0x0C,0x77, +0x01,0x85,0x29,0x00,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xC8,0x80, +0xAA,0x55,0xC0,0x74,0x00,0x01,0xC8,0x63,0x78,0xC0,0x0C,0x83,0x00,0xC0,0x74,0x00, +0x01,0xC8,0x63,0x1F,0xDC,0x50,0x80,0x80,0x0C,0x83,0x00,0x04,0x20,0x80,0xC8,0x21, +0x17,0xFC,0x1C,0x40,0xFD,0x44,0x21,0x14,0x28,0x00,0x74,0xC0,0x40,0x00,0x01,0xC8, +0x42,0x3E,0x06,0x84,0x49,0x0C,0x41,0x0C,0x0C,0x61,0x10,0x0C,0x81,0x14,0x0C,0xA1, +0x18,0x0C,0xC1,0x1C,0x0C,0xE1,0x20,0x0D,0x01,0x24,0x0D,0x21,0x28,0x0D,0x41,0x2C, +0x0D,0x61,0x30,0x0D,0x81,0x34,0x0D,0xA1,0x38,0x0D,0xC1,0x3C,0x0D,0xE1,0x40,0x0E, +0x01,0x44,0x0E,0x21,0x48,0x0E,0x41,0x4C,0x0E,0x61,0x50,0x0E,0x81,0x54,0x0E,0xA1, +0x58,0x0E,0xC1,0x5C,0x0E,0xE1,0x60,0x0F,0x01,0x64,0x0F,0x21,0x68,0x0F,0x41,0x6C, +0x0F,0x61,0x70,0x0F,0x81,0x74,0x0F,0xA1,0x78,0x0F,0xC1,0x7C,0x1C,0x61,0x00,0xC1, +0x00,0x00,0x01,0xC9,0x08,0xAD,0x50,0x85,0x08,0x90,0x23,0x00,0xC0,0x40,0x10,0x01, +0xC8,0x42,0x03,0xB0,0xC0,0x60,0x10,0x01,0xC8,0x63,0x0D,0x04,0x5C,0x43,0x1F,0x20, +0x00,0x2D,0x0C,0x02,0x00,0x1C,0x42,0x04,0x93,0xF4,0x85,0x29,0xC0,0x80,0x01,0x1F, +0xC0,0x7F,0xFF,0xE1,0xC8,0x63,0xFF,0xF9,0x44,0x84,0x1C,0xC0,0x80,0x01,0x1D,0x0C, +0x61,0x02,0xC0,0x60,0x02,0x0D,0x0C,0x61,0x06,0xC0,0x60,0x04,0x0D,0x0C,0x41,0x0E, +0x0C,0x61,0x12,0x0C,0x81,0x16,0x0C,0xA1,0x1A,0x0C,0xC1,0x1E,0x0C,0xE1,0x22,0x0D, +0x01,0x26,0x0D,0x21,0x2A,0x0D,0x41,0x2E,0x0D,0x61,0x32,0x0D,0x81,0x36,0x0D,0xA1, +0x3A,0x0D,0xC1,0x3E,0x0D,0xE1,0x42,0x0E,0x01,0x46,0x0E,0x21,0x4A,0x0E,0x41,0x4E, +0x0E,0x61,0x52,0x0E,0x81,0x56,0x0E,0xA1,0x5A,0x0E,0xC1,0x5E,0x0E,0xE1,0x62,0x0F, +0x01,0x66,0x0F,0x21,0x6A,0x0F,0x41,0x6E,0x0F,0x61,0x72,0x0F,0x81,0x76,0x0F,0xA1, +0x7A,0x0F,0xC1,0x7E,0xEF,0xE1,0x00,0x82,0x0C,0x21,0x0A,0x84,0x00,0x00,0x00,0x00, +0x9C,0x30,0xCA,0xE0,0x48,0x02,0x0D,0x41,0x08,0x0D,0x21,0x0C,0x89,0x43,0xC2,0xF7, +0x00,0x0F,0x9B,0x1C,0x46,0xF7,0xC4,0x0E,0xE1,0x04,0x0E,0xE1,0x06,0x56,0xF7,0x04, +0x22,0xE0,0xE0,0xCA,0xE0,0x48,0x00,0xC3,0x37,0x00,0x0F,0x9B,0x1B,0x47,0x39,0xC4, +0xC3,0x37,0x00,0x0D,0xCA,0xE0,0x48,0x02,0xC3,0x37,0x00,0x0F,0x47,0x19,0xC4,0xC3, +0x17,0x00,0x0D,0x98,0x82,0xE7,0xFF,0xBE,0x8C,0xCA,0xE0,0x48,0x00,0xC3,0x17,0x00, +0x0F,0x53,0x18,0x04,0xC3,0x17,0x00,0x0D,0x0E,0xE1,0x06,0x56,0xF7,0x08,0x22,0xE0, +0xE8,0xCA,0xE0,0x48,0x00,0xC3,0x37,0x00,0x0F,0x9B,0x17,0x47,0x39,0xC4,0xC3,0x37, +0x00,0x0D,0xCA,0xE0,0x48,0x02,0xC3,0x37,0x00,0x0F,0x47,0x19,0xC4,0xC3,0x17,0x00, +0x0D,0x98,0x83,0x88,0x6A,0xE7,0xFF,0xBE,0x0C,0xCA,0xE0,0x48,0x00,0xC3,0x17,0x00, +0x0F,0x53,0x18,0x08,0xC3,0x17,0x00,0x0D,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21, +0x10,0x85,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x00,0xA0,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1B,0x00,0x00,0x00,0x00,0xA0,0x26,0x01, +0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0xA0,0x66,0x00, +0x01,0x00,0x00,0x00,0xF3,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC4,0x00,0x2F,0x00,0x07,0x00,0x0D,0x01, +0xE0,0xFF,0x5C,0x00,0x00,0x00,0x00,0x00,0x1B,0x00,0x1B,0x00,0x01,0x00,0x10,0x00, +0xDF,0x00,0x9E,0x00,0x5B,0x00,0x5B,0x00,0x1A,0x00,0x32,0x00,0x90,0x01,0x80,0x00, +0x94,0x01,0x80,0x00,0x19,0x00,0x32,0x00,0x98,0xB9,0x00,0xC0,0x02,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x14,0x14,0x14,0x14,0xF5,0xB9,0x00,0xC0,0x02,0x02,0x00,0x00, +0x00,0x00,0x00,0x00,0x14,0x14,0x14,0x14,0xD7,0xB9,0x00,0xC0,0x02,0x03,0x00,0x00, +0x00,0x00,0x00,0x00,0x14,0x14,0x14,0x14,0xCD,0xB9,0x00,0xC0,0x02,0x04,0x00,0x00, +0x00,0x00,0x00,0x00,0x14,0x14,0x14,0x14,0x08,0xBA,0x00,0xC0,0x0B,0x05,0x00,0x00, +0x01,0x00,0x00,0x00,0x37,0x14,0x64,0x2C,0x9A,0xB9,0x00,0xC0,0x0D,0x06,0x00,0x00, +0x01,0x00,0x00,0x00,0x37,0x14,0x5A,0x2C,0xA7,0xB9,0x00,0xC0,0x0B,0x07,0x00,0x00, +0x01,0x00,0x00,0x00,0x28,0x14,0x28,0x14,0xE7,0xB9,0x00,0xC0,0x0E,0x08,0x00,0x00, +0x01,0x00,0x00,0x00,0x3C,0x1E,0x37,0x19,0xD9,0xB9,0x00,0xC0,0x06,0x09,0x00,0x00, +0x01,0x00,0x00,0x00,0x1E,0x14,0x30,0x1E,0x13,0xBA,0x00,0xC0,0x0E,0x0A,0x00,0x00, +0x01,0x00,0x00,0x00,0x3C,0x1C,0x3C,0x22,0x27,0xBA,0x00,0xC0,0x0F,0x0B,0x00,0x00, +0x01,0x00,0x00,0x00,0x46,0x19,0x28,0x14,0x6A,0xB9,0x00,0xC0,0x06,0x0C,0x00,0x00, +0x01,0x00,0x00,0x00,0x3C,0x1E,0x28,0x14,0x82,0xB9,0x00,0xC0,0x0E,0x0A,0x00,0x00, +0x01,0x00,0x00,0x00,0x3C,0x1C,0x3C,0x22,0xCF,0xB9,0x00,0xC0,0x08,0x05,0x00,0x00, +0x01,0x00,0x00,0x00,0x37,0x14,0x78,0x2C,0xFD,0xB9,0x00,0xC0,0x0B,0x05,0x00,0x00, +0x01,0x00,0x00,0x00,0x37,0x14,0x78,0x2C,0xDF,0xB9,0x00,0xC0,0x08,0x06,0x00,0x00, +0x01,0x00,0x00,0x00,0x37,0x14,0x5A,0x2C,0xB2,0xB9,0x00,0xC0,0x0C,0x08,0x00,0x00, +0x01,0x00,0x00,0x00,0x3C,0x1E,0x37,0x19,0xF7,0xB9,0x00,0xC0,0x06,0x07,0x00,0x00, +0x01,0x00,0x00,0x00,0x28,0x14,0x28,0x14,0xC6,0xB9,0x00,0xC0,0x07,0x07,0x00,0x00, +0x01,0x00,0x00,0x00,0x28,0x14,0x28,0x14,0x90,0xB9,0x00,0xC0,0x08,0x0B,0x00,0x00, +0x01,0x00,0x00,0x00,0x46,0x19,0x28,0x14,0x21,0xBA,0x00,0xC0,0x06,0x09,0x00,0x00, +0x01,0x00,0x00,0x00,0x1E,0x14,0x30,0x1E,0xBE,0xB9,0x00,0xC0,0x08,0x0C,0x00,0x00, +0x01,0x00,0x00,0x00,0x3C,0x1E,0x28,0x14,0x36,0xBA,0x00,0xC0,0x09,0x09,0x00,0x00, +0x01,0x00,0x00,0x00,0x1E,0x14,0x30,0x1E,0x70,0xB9,0x00,0xC0,0x0A,0x06,0x00,0x00, +0x01,0x00,0x00,0x00,0x37,0x14,0x5A,0x2C,0x7A,0xB9,0x00,0xC0,0x08,0x06,0x00,0x00, +0x01,0x00,0x00,0x00,0x37,0x14,0x5A,0x2C,0x92,0x01,0x80,0x00,0x86,0x01,0x80,0x00, +0x01,0x00,0x00,0x00,0x64,0x00,0x14,0x00,0x14,0x00,0x06,0x00,0x06,0x00,0x5A,0x00, +0x14,0x00,0x14,0x00,0x06,0x00,0x06,0x00,0x64,0x00,0x01,0x00,0x5F,0x00,0x01,0x00, +0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x50,0x00,0x96,0x00,0x40,0x06,0x00,0x00,0x80,0x0C,0x00,0x00,0x01,0x03,0x07,0x00, +0x00,0x01,0x02,0x00,0x07,0x00,0xC8,0x00,0xC8,0x00,0xC8,0x00,0xF4,0x01,0xF4,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,0x01,0x02,0x03,0x04,0x05,0x02,0x00,0x04,0x00,0x06,0x00, +0x08,0x00,0x0A,0x00,0x0C,0x00,0x10,0x00,0x14,0x00,0x18,0x00,0x20,0x00,0x28,0x00, +0x32,0x00,0x3E,0x00,0x40,0x00,0x64,0x00,0x80,0x00,0x00,0x01,0x02,0x00,0x00,0x11, +0xFF,0xFF,0xFF,0xFF,0x01,0x11,0xFF,0xFF,0x18,0x50,0x02,0x11,0xFF,0x7F,0xFF,0x0E, +0x03,0x11,0xFF,0x00,0x66,0x00,0x04,0x11,0xFF,0x0F,0x72,0x07,0x05,0x11,0xFF,0x0F, +0x72,0x07,0x06,0x11,0xFF,0x00,0x00,0x00,0x07,0x11,0x03,0x00,0x00,0x00,0x08,0x11, +0x73,0x00,0x00,0x00,0x09,0x11,0xFF,0xFF,0x00,0x00,0x09,0x11,0xFF,0x7F,0x00,0x00, +0x0A,0x11,0xFF,0x7F,0x87,0x10,0x0E,0x11,0xFF,0xFF,0x00,0x00,0x0F,0x11,0xFF,0xFF, +0x00,0x00,0x17,0x11,0x0F,0xFF,0x00,0x00,0x18,0x11,0xFF,0xFF,0x00,0x02,0x19,0x11, +0xFF,0x00,0x0E,0x00,0x1E,0x11,0xFF,0xFF,0x00,0x00,0x1F,0x11,0xFF,0x00,0x00,0x00, +0x33,0x11,0x0F,0x00,0x00,0x00,0x3A,0x11,0x37,0x0F,0x00,0x00,0x3B,0x11,0x77,0x00, +0x77,0x00,0x3C,0x11,0x00,0xFF,0x00,0xA0,0x3D,0x11,0x77,0x00,0x00,0x00,0x3E,0x11, +0xFF,0x00,0x00,0x00,0x04,0x12,0x06,0x00,0x00,0x00,0x05,0x12,0xFF,0x00,0x00,0x00, +0x07,0x12,0xFF,0xFF,0x00,0x00,0x08,0x12,0xFF,0x00,0x00,0x00,0x09,0x12,0xFF,0xFF, +0x00,0x00,0x0A,0x12,0xFF,0x00,0x00,0x00,0x0B,0x12,0x3F,0x00,0x2E,0x00,0x0D,0x12, +0x1F,0x00,0x05,0x00,0x0E,0x12,0x1F,0x00,0x05,0x00,0x0F,0x12,0xFF,0xFF,0x00,0x00, +0x10,0x12,0xFF,0x00,0x00,0x00,0x11,0x12,0xFF,0x0F,0x00,0x00,0x12,0x12,0x87,0x1F, +0x00,0x00,0x13,0x12,0x7F,0x0F,0x14,0x00,0x14,0x12,0x9F,0xFF,0x0A,0x09,0x15,0x12, +0x7F,0x0F,0x0C,0x0F,0x16,0x12,0xFF,0x0F,0x00,0x07,0x17,0x12,0x1F,0xFF,0x0A,0x5C, +0x18,0x12,0x7F,0x1F,0x14,0x0A,0x19,0x12,0xFF,0xFF,0x8C,0x21,0x1A,0x12,0xFF,0x03, +0x00,0x00,0x1B,0x12,0xFF,0x03,0x00,0x00,0x1C,0x12,0xFF,0x03,0x00,0x00,0x1D,0x12, +0xFF,0x03,0x00,0x00,0x1E,0x12,0x1F,0x1F,0x12,0x07,0x1F,0x12,0x3F,0x3F,0x00,0x00, +0x20,0x12,0xFF,0xFF,0x00,0x00,0x21,0x12,0xFF,0x00,0x00,0x00,0x23,0x12,0x3F,0x3F, +0x02,0x00,0x24,0x12,0x3F,0x00,0x00,0x00,0x28,0x12,0xFF,0xFF,0x83,0x81,0x2D,0x12, +0x01,0x00,0x01,0x00,0x50,0x12,0xFF,0xFF,0x00,0x00,0x51,0x12,0xFF,0x00,0x00,0x00, +0x70,0x12,0x03,0x00,0x03,0x00,0x01,0x11,0x06,0x00,0x02,0x00,0x02,0x11,0x00,0x08, +0x00,0x08,0x2A,0x12,0x00,0xFF,0x00,0xBA,0x2B,0x12,0xFF,0x30,0xF0,0x20,0x01,0x11, +0x06,0x00,0x00,0x00,0x2A,0x12,0x00,0xFF,0x00,0x00,0x2B,0x12,0xFF,0x30,0x00,0x00, +0x01,0x11,0x00,0x50,0x00,0x50,0x02,0x11,0x3F,0x06,0x2F,0x06,0x01,0x11,0x00,0x50, +0x00,0x00,0x02,0x11,0x3F,0x06,0x00,0x00,0x2A,0x12,0x00,0x30,0x00,0x20,0x11,0x1E, +0xFF,0x7F,0x00,0x00,0x12,0x1E,0xFF,0x00,0x00,0x00,0x13,0x1E,0x0F,0x00,0x00,0x00, +0x15,0x1E,0x73,0x07,0x00,0x00,0x16,0x1E,0x0F,0x00,0x00,0x00,0x18,0x1E,0x3F,0x00, +0x08,0x00,0x2A,0x1E,0x05,0x00,0x01,0x00,0x50,0x11,0x11,0x11,0x51,0x11,0x11,0x11, +0x52,0x11,0x11,0x11,0x53,0x11,0x11,0x11,0x54,0x11,0x11,0x11,0x55,0x11,0x11,0x11, +0x56,0x11,0x11,0x11,0x57,0x11,0x11,0x11,0x58,0x11,0x11,0x11,0x59,0x11,0x11,0x11, +0x5A,0x11,0x11,0x11,0x5B,0x11,0x11,0x11,0x5C,0x11,0xFF,0xFF,0x5D,0x11,0xFF,0xFF, +0x5E,0x11,0xFF,0xFF,0x46,0x12,0x00,0x00,0x47,0x12,0x00,0x00,0x48,0x12,0x00,0x00, +0x49,0x12,0x00,0x00,0x4A,0x12,0x00,0x00,0x4B,0x12,0x00,0x00,0x4C,0x12,0x00,0x00, +0x4D,0x12,0x00,0x00,0x4E,0x12,0x0F,0x00,0x02,0x03,0x5C,0x54,0x47,0x37,0x00,0x00, +0x31,0x00,0x94,0x00,0xFA,0x00,0x66,0x01,0xD9,0x01,0x57,0x02,0xE6,0x02,0x8A,0x03, +0x4F,0x04,0x44,0x05,0x84,0x06,0x42,0x08,0xEB,0x0A,0x98,0x0F,0x55,0x1A,0xF3,0x07, +0xFF,0xFF,0x0F,0x00,0x52,0x00,0x69,0x00,0xD9,0x00,0x00,0x00,0x3B,0x40,0x00,0x00, +0xDB,0x40,0x00,0x00,0xFA,0x40,0x00,0x00,0xCD,0x41,0x00,0x00,0xE4,0x41,0x00,0x00, +0x95,0x00,0x89,0x00,0x7E,0x00,0x72,0x00,0x67,0x00,0x5B,0x00,0x50,0x00,0x44,0x00, +0x39,0x00,0x2D,0x00,0x22,0x00,0x16,0x00,0x0B,0x00,0x00,0x00,0xFF,0x00,0x8D,0x09, +0x1A,0x00,0xFE,0x00,0x1B,0x07,0x3F,0x00,0xFE,0x00,0x9D,0x0A,0x78,0x00,0xFD,0x00, +0xEC,0x12,0xA8,0x00,0xFC,0x00,0x6B,0x18,0xD0,0x00,0xFB,0x00,0x7C,0x19,0x0A,0x01, +0xF9,0x00,0x55,0x20,0x4E,0x01,0xF8,0x00,0x85,0x26,0x86,0x01,0xFF,0x00,0x48,0x0D, +0x09,0x00,0xFE,0x00,0x9E,0x0B,0x1E,0x00,0xFE,0x00,0x34,0x0E,0x44,0x00,0xFD,0x00, +0x35,0x14,0x66,0x00,0xFD,0x00,0x1A,0x18,0x7F,0x00,0xFC,0x00,0x11,0x19,0x9C,0x00, +0xFB,0x00,0x3C,0x1C,0xBF,0x00,0xFB,0x00,0x94,0x21,0xDB,0x00,0xFA,0x00,0xE6,0x24, +0xF7,0x00,0xF9,0x00,0xFB,0x24,0x29,0x01,0xFE,0x00,0xE0,0x0D,0x04,0x00,0xFE,0x00, +0xF6,0x10,0x18,0x00,0xFE,0x00,0xC8,0x12,0x30,0x00,0xFD,0x00,0xEB,0x14,0x4A,0x00, +0xFD,0x00,0x74,0x16,0x69,0x00,0xFC,0x00,0xB9,0x1C,0x7E,0x00,0xFC,0x00,0x68,0x20, +0x8E,0x00,0xFB,0x00,0xCE,0x21,0xA6,0x00,0xFB,0x00,0x52,0x23,0xC8,0x00,0xFA,0x00, +0x0A,0x29,0xE2,0x00,0xF9,0x00,0x4D,0x2C,0xFC,0x00,0xFE,0x00,0x85,0x13,0xF8,0xFF, +0xFE,0x00,0xF6,0x12,0x07,0x00,0xFD,0x00,0xC9,0x13,0x24,0x00,0xFD,0x00,0x6E,0x18, +0x3E,0x00,0xFC,0x00,0x47,0x1C,0x4E,0x00,0xFC,0x00,0x83,0x1D,0x5E,0x00,0xFC,0x00, +0xFB,0x1F,0x74,0x00,0xFB,0x00,0xF7,0x25,0x86,0x00,0xFA,0x00,0xB8,0x29,0x93,0x00, +0xFA,0x00,0xA4,0x29,0xAB,0x00,0xF9,0x00,0x13,0x2B,0xCB,0x00,0xF9,0x00,0x37,0x30, +0xE5,0x00,0xFD,0x00,0x0D,0x1F,0xDC,0xFF,0xFD,0x00,0x3D,0x1E,0xE7,0xFF,0xFD,0x00, +0xD0,0x1C,0x02,0x00,0xFC,0x00,0xCD,0x1E,0x1B,0x00,0xFC,0x00,0x4B,0x22,0x29,0x00, +0xFC,0x00,0x4F,0x25,0x33,0x00,0xFB,0x00,0x83,0x27,0x43,0x00,0xFA,0x00,0xE6,0x2C, +0x4F,0x00,0xFA,0x00,0x48,0x30,0x57,0x00,0xFA,0x00,0x0E,0x31,0x62,0x00,0xF9,0x00, +0x76,0x31,0x77,0x00,0xF9,0x00,0x65,0x36,0x87,0x00,0xF8,0x00,0xB3,0x38,0x94,0x00, +0xF8,0x00,0x27,0x37,0xAC,0x00,0x05,0x03,0x03,0x04,0x04,0x00,0x11,0x00,0xC1,0x09, +0xD9,0xFF,0x36,0x01,0x0E,0x00,0x1C,0x00,0xDD,0x03,0x03,0x00,0x40,0x00,0x14,0x00, +0x4C,0x00,0x95,0x03,0x05,0x00,0x07,0x00,0x18,0x00,0xA5,0x00,0x4B,0x06,0x9B,0xFF, +0x03,0x00,0x19,0x00,0xC8,0x00,0x14,0x03,0x3B,0x00,0x00,0x00,0x1A,0x00,0x16,0x00, +0x40,0x05,0xE4,0xFF,0xA2,0x00,0x14,0x00,0x3B,0x00,0x67,0x04,0xF0,0xFF,0x3B,0x00, +0x1A,0x00,0x6F,0x00,0x22,0x04,0xF8,0xFF,0x03,0x00,0x20,0x00,0x1C,0x00,0x48,0x05, +0xDB,0xFF,0x98,0x00,0x16,0x00,0x57,0x00,0x90,0x04,0xEC,0xFF,0x19,0x00,0x21,0x00, +0x95,0x00,0x08,0x04,0xFE,0xFF,0x02,0x00,0x24,0x00,0x23,0x00,0xC4,0x05,0xCC,0xFF, +0xA6,0x00,0x17,0x00,0x62,0x00,0x9C,0x04,0xEC,0xFF,0x17,0x00,0x25,0x00,0xA0,0x00, +0x0E,0x04,0xFB,0xFF,0x02,0x00,0x28,0x00,0x0D,0x01,0x7D,0x04,0xE1,0xFF,0xFC,0xFF, +0x2A,0x00,0x33,0x00,0x30,0x07,0xA2,0xFF,0xD3,0x00,0x18,0x00,0x6F,0x00,0xAD,0x04, +0xED,0xFF,0x23,0x00,0x2B,0x00,0x9C,0x00,0x14,0x03,0x27,0x00,0x03,0x00,0x2F,0x00, +0xE1,0x00,0x53,0x05,0xAB,0xFF,0x02,0x00,0x30,0x00,0x00,0x00,0x13,0x1A,0x05,0x00, +0x30,0x34,0x38,0x0C,0x10,0x34,0x30,0x0E,0x30,0x0A,0x35,0x02,0x09,0x10,0x35,0x10, +0x0A,0x34,0x1E,0x18,0x14,0x0E,0x0B,0x07,0x01,0x3C,0x37,0x34,0x30,0x2A,0x26,0x23, +0x1C,0x17,0x0E,0x05,0x03,0x10,0x19,0x1B,0x2F,0x2F,0x10,0x0E,0x0A,0x05,0x00,0x39, +0x33,0x30,0x10,0x0B,0x04,0x35,0x30,0x28,0x22,0x1E,0x19,0x13,0x10,0x0B,0x07,0x02, +0x3D,0x39,0x00,0x3C,0x38,0x34,0x2E,0x23,0x1D,0x16,0x10,0x0B,0x05,0x01,0x3F,0x00, +0x0A,0x17,0x1A,0x10,0x02,0x3F,0x21,0x1D,0x19,0x14,0x0E,0x04,0x01,0x00,0x00,0x32, +0x33,0x05,0x0D,0x3D,0x35,0x09,0x10,0x1F,0x1F,0x0D,0x0D,0x0D,0x0D,0x35,0x35,0x0E, +0x0D,0x36,0x32,0x09,0x0D,0x37,0x33,0x00,0x3C,0x36,0x2A,0x23,0x1E,0x1A,0x15,0x10, +0x0B,0x08,0x03,0x3C,0x39,0x0F,0x0F,0x1D,0x18,0x12,0x0A,0x04,0x01,0x10,0x10,0x32, +0x3E,0x0D,0x10,0x33,0x38,0x01,0x0D,0x10,0x30,0x34,0x00,0x0D,0x10,0x32,0x34,0x3A, +0x07,0x0D,0x10,0x01,0x05,0x0B,0x0E,0x13,0x1A,0x1F,0x25,0x29,0x2E,0x34,0x36,0x3B, +0x00,0x10,0x0E,0x07,0x3C,0x33,0x30,0x28,0x22,0x1D,0x19,0x14,0x10,0x0A,0x05,0x0B, +0x13,0x1A,0x1D,0x22,0x26,0x2B,0x3D,0x02,0x10,0x09,0x3D,0x34,0x30,0x0B,0x04,0x00, +0xB7,0x60,0x00,0x00,0xB7,0x60,0x00,0x00,0xCC,0x60,0x00,0x00,0xCC,0x60,0x00,0x00, +0x2B,0x62,0x00,0x00,0x2B,0x62,0x00,0x00,0x2B,0x62,0x00,0x00,0x55,0x61,0x00,0x00, +0x2B,0x62,0x00,0x00,0xB2,0x61,0x00,0x00,0x06,0x64,0x00,0x00,0x06,0x64,0x00,0x00, +0x2F,0x64,0x00,0x00,0xFC,0x63,0x00,0x00,0x58,0x64,0x00,0x00,0x88,0x64,0x00,0x00, +0x70,0x64,0x00,0x00,0x61,0x67,0x00,0x00,0x85,0x67,0x00,0x00,0x95,0x67,0x00,0x00, +0xD0,0x67,0x00,0x00,0xCA,0x67,0x00,0x00,0xCA,0x67,0x00,0x00,0xD0,0x67,0x00,0x00, +0xCA,0x67,0x00,0x00,0x0A,0x0B,0x2C,0x1B,0x09,0x07,0x1C,0x1A,0x25,0x05,0x1D,0x19, +0x26,0x00,0x1E,0x18,0x27,0x04,0x1F,0x17,0x28,0x06,0x20,0x0D,0x29,0x08,0x2B,0x0C, +0x2A,0x00,0x00,0x00,0x57,0x75,0x00,0x00,0x57,0x75,0x00,0x00,0x88,0x75,0x00,0x00, +0x88,0x75,0x00,0x00,0xBA,0x75,0x00,0x00,0xBA,0x75,0x00,0x00,0xBA,0x75,0x00,0x00, +0xBA,0x75,0x00,0x00,0x39,0x75,0x00,0x00,0x1B,0x75,0x00,0x00,0x1B,0x76,0x00,0x00, +0x1B,0x76,0x00,0x00,0x4E,0x76,0x00,0x00,0x4E,0x76,0x00,0x00,0x83,0x76,0x00,0x00, +0x83,0x76,0x00,0x00,0x83,0x76,0x00,0x00,0x83,0x76,0x00,0x00,0xF4,0x75,0x00,0x00, +0xE2,0x75,0x00,0x00,0x72,0x77,0x00,0x00,0x72,0x77,0x00,0x00,0xC6,0x77,0x00,0x00, +0xC6,0x77,0x00,0x00,0xA8,0x78,0x00,0x00,0xA8,0x78,0x00,0x00,0xA8,0x78,0x00,0x00, +0xA8,0x78,0x00,0x00,0x20,0x78,0x00,0x00,0x66,0x78,0x00,0x00,0xE2,0x89,0x00,0x00, +0xE9,0x89,0x00,0x00,0xF0,0x89,0x00,0x00,0xF7,0x89,0x00,0x00,0xFE,0x89,0x00,0x00, +0x05,0x8A,0x00,0x00,0x0C,0x8A,0x00,0x00,0x13,0x8A,0x00,0x00,0x1A,0x8A,0x00,0x00, +0x21,0x8A,0x00,0x00,0x28,0x8A,0x00,0x00,0x2F,0x8A,0x00,0x00,0x44,0x8B,0x00,0x00, +0x44,0x8B,0x00,0x00,0x7F,0x8B,0x00,0x00,0x7F,0x8B,0x00,0x00,0x0E,0x8C,0x00,0x00, +0x0E,0x8C,0x00,0x00,0x0E,0x8C,0x00,0x00,0x0E,0x8C,0x00,0x00,0xBC,0x8B,0x00,0x00, +0xE1,0x8B,0x00,0x00,0x00,0x01,0x00,0x00,0x3F,0x8E,0x00,0x00,0x64,0x8E,0x00,0x00, +0xBC,0x8E,0x00,0x00,0xDD,0x8F,0x00,0x00,0x18,0x8F,0x00,0x00,0x48,0x8F,0x00,0x00, +0xDD,0x8F,0x00,0x00,0x50,0x8F,0x00,0x00,0x04,0x00,0x1D,0x00,0x2E,0x00,0x50,0x00, +0x82,0x00,0xC7,0x00,0x23,0x01,0x9B,0x01,0x32,0x02,0xEE,0x02,0xD0,0x03,0xDE,0x04, +0x19,0x06,0x82,0x07,0x1A,0x09,0xE0,0x0A,0xD0,0x0C,0xE7,0x0E,0x1F,0x11,0x71,0x13, +0xD3,0x15,0x3D,0x18,0xA2,0x1A,0xF9,0x1C,0x34,0x1F,0x47,0x21,0x28,0x23,0xCB,0x24, +0x27,0x26,0x33,0x27,0xEA,0x27,0x46,0x28,0x04,0x00,0x1C,0x00,0x2B,0x00,0x4B,0x00, +0x78,0x00,0xB7,0x00,0x0A,0x01,0x75,0x01,0xFC,0x01,0xA3,0x02,0x6D,0x03,0x5E,0x04, +0x76,0x05,0xB9,0x06,0x26,0x08,0xBE,0x09,0x7D,0x0B,0x61,0x0D,0x67,0x0F,0x87,0x11, +0xBB,0x13,0xFC,0x15,0x3F,0x18,0x7B,0x1A,0xA6,0x1C,0xB6,0x1E,0x9F,0x20,0x57,0x22, +0xD7,0x23,0x14,0x25,0x08,0x26,0xAF,0x26,0x03,0x27,0x05,0x00,0x08,0x21,0x05,0x00, +0x00,0x20,0x00,0x00,0x80,0xBD,0x00,0xC0,0x90,0xBD,0x00,0xC0,0xA2,0xBD,0x00,0xC0, +0xA6,0xBD,0x00,0xC0,0x18,0xBD,0x00,0xC0,0x60,0xBD,0x00,0xC0,0xC0,0xBD,0x00,0xC0, +0xDE,0xBD,0x00,0xC0,0xE2,0xBD,0x00,0xC0,0x08,0xBE,0x00,0xC0,0x96,0xBE,0x00,0xC0, +0xD8,0xBE,0x00,0xC0,0x3A,0xBC,0x00,0xC0,0x3E,0xBC,0x00,0xC0,0x14,0xBD,0x00,0xC0, +0x5C,0xBD,0x00,0xC0,0x05,0x00,0x2A,0x00,0x2A,0x00,0x3E,0x00,0x58,0x00,0x79,0x00, +0xA1,0x00,0xD3,0x00,0x0F,0x01,0x56,0x01,0xAA,0x01,0x0C,0x02,0x7D,0x02,0xFE,0x02, +0x91,0x03,0x37,0x04,0xF0,0x04,0xBE,0x05,0xA0,0x06,0x99,0x07,0xA7,0x08,0xCC,0x09, +0x06,0x0B,0x56,0x0C,0xBB,0x0D,0x34,0x0F,0xC0,0x10,0x5D,0x12,0x0A,0x14,0xC5,0x15, +0x8A,0x17,0x59,0x19,0x2D,0x1B,0x05,0x1D,0xDC,0x1E,0xB0,0x20,0x7D,0x22,0x40,0x24, +0xF5,0x25,0x98,0x27,0x27,0x29,0x9E,0x2A,0xF9,0x2B,0x37,0x2D,0x53,0x2E,0x4B,0x2F, +0x1E,0x30,0xC9,0x30,0x4A,0x31,0xA1,0x31,0xCD,0x31,0x04,0x00,0x2D,0x00,0x6D,0x00, +0xE7,0x00,0xAD,0x01,0xD8,0x02,0x81,0x04,0xBE,0x06,0xA0,0x09,0x30,0x0D,0x6D,0x11, +0x47,0x16,0xA3,0x1B,0x56,0x21,0x29,0x27,0xDC,0x2C,0x2A,0x32,0xCF,0x36,0x8B,0x3A, +0x29,0x3D,0x81,0x3E,0x06,0x00,0xF5,0x28,0x03,0x00,0x33,0x33,0x64,0xBD,0x00,0xC0, +0x7A,0xBD,0x00,0xC0,0x0C,0xBE,0x00,0xC0,0x9A,0xBE,0x00,0xC0,0x84,0xBD,0x00,0xC0, +0x94,0xBD,0x00,0xC0,0x68,0xBD,0x00,0xC0,0xAA,0xBD,0x00,0xC0,0xC4,0xBD,0x00,0xC0, +0xE6,0xBD,0x00,0xC0,0xEA,0xBC,0x00,0xC0,0xA4,0xBE,0x00,0xC0,0xB8,0xBB,0x00,0xC0, +0xF8,0xBB,0x00,0xC0,0x84,0xBC,0x00,0xC0,0x14,0xBE,0x00,0xC0,0x06,0x00,0x00,0x20, +0x03,0x00,0xAA,0x2A,0x00,0x00,0x00,0x20,0x02,0x00,0x45,0x00,0x5D,0x01,0x1B,0x04, +0x31,0x09,0xA2,0x10,0x55,0x19,0x32,0x21,0xE5,0x25,0x01,0x00,0x10,0x10,0xEF,0x2F, +0x00,0x00,0x00,0x20,0x02,0x00,0x49,0x01,0x6C,0x07,0xB1,0x15,0x60,0x29,0x38,0x38, +0x01,0x00,0x00,0x20,0x02,0x00,0xAC,0x00,0xCB,0x03,0x95,0x0B,0x6B,0x18,0xE0,0x26, +0xA6,0x30,0x02,0x00,0xAA,0x2A,0x02,0x00,0x00,0x20,0x03,0x00,0x4D,0x00,0x51,0x01, +0xBD,0x03,0x48,0x08,0x6B,0x0F,0x0D,0x19,0x47,0x24,0x73,0x2F,0x86,0x38,0x9F,0x3D, +0x03,0x00,0x00,0x20,0x03,0x00,0x33,0x00,0xC4,0x00,0x08,0x02,0x5B,0x04,0x11,0x08, +0x55,0x0D,0x0D,0x14,0xCC,0x1B,0xCF,0x23,0x1E,0x2B,0xB5,0x30,0xBD,0x33,0x04,0x00, +0x33,0x33,0x04,0x00,0xAA,0x2A,0x03,0x00,0x1F,0x00,0x5B,0x00,0xD6,0x00,0xAB,0x01, +0xF6,0x02,0xD5,0x04,0x59,0x07,0x87,0x0A,0x52,0x0E,0x96,0x12,0x1C,0x17,0x9B,0x1B, +0xC0,0x1F,0x37,0x23,0xB6,0x25,0x05,0x27,0x04,0x00,0x00,0x20,0x01,0x00,0x65,0x04, +0x5D,0x14,0x3D,0x27,0x05,0x00,0x26,0x00,0x1D,0x00,0x28,0x00,0x36,0x00,0x47,0x00, +0x5A,0x00,0x72,0x00,0x8D,0x00,0xAE,0x00,0xD3,0x00,0xFD,0x00,0x2D,0x01,0x64,0x01, +0xA2,0x01,0xE6,0x01,0x33,0x02,0x87,0x02,0xE5,0x02,0x4B,0x03,0xBA,0x03,0x33,0x04, +0xB6,0x04,0x43,0x05,0xDB,0x05,0x7C,0x06,0x29,0x07,0xDF,0x07,0xA1,0x08,0x6C,0x09, +0x41,0x0A,0x21,0x0B,0x09,0x0C,0xFA,0x0C,0xF4,0x0D,0xF5,0x0E,0xFE,0x0F,0x0C,0x11, +0x20,0x12,0x38,0x13,0x53,0x14,0x71,0x15,0x90,0x16,0xAF,0x17,0xCD,0x18,0xE8,0x19, +0x00,0x1B,0x12,0x1C,0x1E,0x1D,0x23,0x1E,0x1F,0x1F,0x10,0x20,0xF7,0x20,0xD0,0x21, +0x9C,0x22,0x59,0x23,0x07,0x24,0xA3,0x24,0x2E,0x25,0xA7,0x25,0x0C,0x26,0x5E,0x26, +0x9C,0x26,0xC6,0x26,0xDA,0x26,0x05,0x00,0x33,0x33,0x01,0x00,0x7E,0x01,0x41,0x08, +0x4A,0x15,0xF4,0x20,0x04,0x00,0x23,0x00,0x45,0x00,0x84,0x00,0xE4,0x00,0x6F,0x01, +0x2F,0x02,0x2F,0x03,0x76,0x04,0x0F,0x06,0xFD,0x07,0x45,0x0A,0xE6,0x0C,0xDA,0x0F, +0x19,0x13,0x93,0x16,0x37,0x1A,0xEF,0x1D,0xA0,0x21,0x2F,0x25,0x80,0x28,0x77,0x2B, +0xFA,0x2D,0xF2,0x2F,0x4D,0x31,0xFD,0x31,0x05,0x00,0xF5,0x28,0x72,0xA2,0x00,0x00, +0x8E,0xA2,0x00,0x00,0xAD,0xA2,0x00,0x00,0xCC,0xA2,0x00,0x00,0xDB,0xA2,0x00,0x00, +0x44,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x0F,0x70,0x8A,0xF7, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00, +0x00,0x00,0x56,0x30,0x31,0x2E,0x30,0x30,0x37,0x2E,0x30,0x34,0x46,0xC9,0xF5,0x89 +}; diff --git a/drivers/input/touchscreen/msg2233/msg22xx_xxxx_update_bin.h b/drivers/input/touchscreen/msg2233/msg22xx_xxxx_update_bin.h new file mode 100755 index 00000000..c61f10a7 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/msg22xx_xxxx_update_bin.h @@ -0,0 +1,3106 @@ +u8 msg22xx_xxxx_update_bin[49664]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xF2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x0B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xFD,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xEF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xE1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xD3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xC5,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x1C,0x40,0x00,0x1C, +0x60,0x00,0x1C,0x80,0x00,0x1C,0xA0,0x00,0x1C,0xC0,0x00,0x1C,0xE0,0x00,0x1D,0x00, +0x00,0x1D,0x20,0x00,0x1D,0x40,0x00,0x1D,0x60,0x00,0x1D,0x80,0x00,0x1D,0xA0,0x00, +0x1D,0xC0,0x00,0x1D,0xE0,0x00,0x1E,0x00,0x00,0x1E,0x20,0x00,0x1E,0x40,0x00,0x1E, +0x60,0x00,0x1E,0x80,0x00,0x1E,0xA0,0x00,0x1E,0xC0,0x00,0x1E,0xE0,0x00,0x1F,0x00, +0x00,0x1F,0x20,0x00,0x1F,0x40,0x00,0x1F,0x60,0x00,0x1F,0x80,0x00,0x1F,0xA0,0x00, +0x1F,0xC0,0x00,0x1F,0xE0,0x00,0xC0,0x60,0x00,0x01,0xC8,0x63,0x9D,0xFC,0x84,0x69, +0x80,0x01,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00, +0xFC,0x21,0xFF,0x60,0xEF,0xE1,0x00,0x80,0xFF,0xE1,0x00,0xA0,0x0F,0xE1,0x08,0xC3, +0xE0,0x02,0x0F,0x0F,0xE1,0x00,0xC3,0xE0,0x04,0x0F,0x0F,0xE1,0x04,0xC3,0xE0,0x03, +0x0F,0xEF,0xE1,0x00,0x84,0xC3,0xE0,0x05,0x0F,0xEF,0xE1,0x00,0x88,0xC3,0xE0,0x05, +0x1F,0xEF,0xE1,0x00,0x8C,0xE4,0x01,0x37,0x31,0x90,0x00,0x90,0x00,0x90,0x00,0x90, +0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x30,0x44,0x0B, +0x17,0x01,0x98,0x60,0x56,0xF8,0x01,0x4F,0x18,0x79,0x22,0xE0,0x14,0x98,0x62,0x23, +0x00,0x18,0x58,0x77,0x01,0x85,0x29,0x9C,0x30,0x0D,0x41,0x08,0x0C,0x81,0x04,0x0D, +0x21,0x0C,0x5D,0x43,0x00,0xE7,0xFF,0xFF,0xA4,0x0C,0x81,0x06,0x5C,0x63,0x00,0x20, +0x60,0x66,0x9B,0x00,0x21,0x40,0x30,0x21,0x44,0x24,0x5D,0x40,0x41,0x4B,0x01,0x01, +0xD0,0x81,0x04,0x66,0xE4,0x00,0x01,0x17,0xE7,0xFF,0xFF,0x5E,0x5C,0x63,0x00,0x20, +0x64,0x4E,0xD1,0x40,0x05,0xD2,0xD1,0x41,0x05,0xB2,0xD1,0x42,0x05,0x96,0xE4,0x00, +0x00,0xE3,0xE7,0xFF,0xFF,0x2A,0x5C,0x63,0x00,0xD0,0x62,0x05,0x1E,0x9B,0x01,0x21, +0x40,0x24,0x5D,0x40,0x21,0x4B,0x01,0x01,0xC2,0xF4,0x00,0x01,0xFF,0x20,0x80,0x00, +0xCB,0x57,0x23,0x78,0x0B,0x7A,0x01,0x47,0x79,0xDD,0x5F,0x7B,0x04,0x0F,0x7A,0x01, +0xCB,0x57,0x23,0x6C,0x0B,0x7A,0x01,0xC7,0x7B,0x8F,0xFF,0x0F,0x7A,0x01,0xCB,0x57, +0x3C,0xD4,0x0B,0x7A,0x01,0x47,0x79,0xDD,0x5F,0x7B,0x04,0x0F,0x7A,0x01,0xCB,0x57, +0x3C,0xE0,0x0B,0x7A,0x01,0xC7,0x7B,0x7F,0xFF,0x0F,0x7A,0x01,0xCA,0xF7,0x3C,0xEC, +0x0B,0x57,0x01,0x47,0x39,0xD5,0x5F,0x39,0x04,0x0F,0x37,0x01,0x23,0x01,0x00,0xC2, +0xF4,0x00,0x01,0xCB,0x17,0x3D,0xE8,0x0B,0x38,0x01,0xFF,0x20,0x11,0x11,0x0F,0x38, +0x01,0xCB,0x17,0x3D,0xEC,0x0B,0x38,0x01,0xFF,0x20,0x22,0x22,0x0F,0x38,0x01,0xCB, +0x17,0x3D,0xF0,0x0B,0x38,0x01,0xFF,0x20,0x33,0x33,0x0F,0x38,0x01,0xCA,0xF7,0x78, +0xC0,0xFF,0x00,0xAA,0x55,0x0F,0x17,0x01,0xE4,0x00,0x00,0x01,0x0D,0x41,0x0A,0x0D, +0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x03,0xF0,0xC2, +0xE0,0x10,0x01,0xEC,0x97,0x03,0xE8,0xC2,0xE0,0x10,0x01,0xEC,0xB7,0x03,0xEC,0xC2, +0xE0,0x10,0x01,0xEC,0xD7,0x04,0x04,0xC2,0xE0,0x10,0x01,0xEC,0xF7,0x03,0xFC,0xC2, +0xE0,0x10,0x01,0x0F,0x01,0x02,0xED,0x17,0x04,0x00,0xC2,0xE0,0x10,0x01,0xEF,0x17, +0x04,0x10,0xC2,0xE0,0x10,0x01,0x0F,0x01,0x06,0xEF,0x17,0x03,0xD4,0xC2,0xE0,0x10, +0x01,0x0F,0x01,0x0A,0xEF,0x17,0x03,0xF4,0x85,0x29,0x5C,0x84,0x00,0xC2,0xE0,0x10, +0x01,0x4C,0x84,0x10,0xFE,0xF7,0x04,0x08,0x8E,0xE4,0x0C,0x77,0x00,0x85,0x29,0x5C, +0x63,0x00,0x9B,0x00,0x24,0x68,0x25,0x1F,0x03,0xFE,0x5F,0x18,0x00,0xC2,0xE0,0x10, +0x01,0xF3,0x57,0x0B,0x7A,0x1E,0xE3,0x01,0x1F,0x9A,0xFF,0x5F,0x3C,0x00,0xD7,0x97, +0x00,0x50,0x1F,0x23,0x02,0x5F,0x39,0x00,0xC2,0xEF,0xFF,0xE1,0xCA,0xF7,0xFF,0xFF, +0xE4,0x00,0x00,0x2F,0x4F,0x78,0x10,0x9F,0x01,0x8F,0x64,0x5F,0x18,0x00,0x0F,0x7B, +0x02,0x5E,0xFB,0x15,0x4A,0xF7,0xD8,0xD7,0x19,0xFF,0x69,0x4F,0x03,0x10,0xC3,0x20, +0x10,0x01,0x8F,0x04,0xEF,0x39,0x03,0xF6,0x0F,0x18,0x02,0xD7,0x38,0x01,0x41,0xC3, +0x20,0x10,0x01,0xEF,0x79,0x03,0xF2,0xC3,0x20,0x10,0x01,0xEF,0xB9,0x03,0xEA,0xC3, +0x20,0x10,0x01,0xEF,0xD9,0x03,0xEE,0xC3,0x20,0x10,0x01,0xEF,0x39,0x04,0x06,0xE4, +0x00,0x00,0x49,0xC3,0x20,0x10,0x01,0xEF,0x79,0x03,0xFE,0xC3,0x20,0x10,0x01,0xEF, +0xB9,0x04,0x02,0xC3,0x20,0x10,0x01,0xEF,0xD9,0x04,0x12,0xC3,0x20,0x10,0x01,0xEF, +0x39,0x03,0xD6,0x20,0x60,0xDE,0x0F,0x44,0x02,0x0F,0x84,0x06,0xCF,0x5A,0x00,0x32, +0x40,0xE7,0xE3,0xD7,0x47,0x05,0xDC,0x42,0xF7,0x2D,0x40,0xA5,0xCB,0x43,0x77,0xDB, +0x43,0x3B,0x2C,0xCC,0xC6,0x00,0x0A,0x9B,0x4A,0x8C,0xD9,0x98,0x61,0x40,0xC6,0xD0, +0xD7,0x06,0x04,0xF4,0x98,0x60,0xE4,0x00,0x01,0x31,0x20,0x64,0x6A,0x0F,0x44,0x02, +0x0F,0x64,0x06,0xCF,0x5A,0x00,0x32,0x40,0xE7,0xDB,0x98,0x60,0xD7,0x47,0x04,0x14, +0xE4,0x00,0x00,0x55,0x1C,0xFA,0xFE,0xD4,0x67,0x01,0x9E,0x4C,0x63,0x10,0x9F,0x5F, +0x4F,0x5A,0x10,0x8F,0x44,0x8C,0x83,0x0F,0x5A,0x02,0x0F,0x64,0x02,0xCF,0x5A,0x00, +0x32,0x41,0x08,0xDB,0x98,0x60,0xD7,0x48,0x02,0xC4,0x42,0xF7,0x2D,0x40,0xA5,0xCB, +0x43,0xB7,0xEB,0x43,0x3D,0x2C,0xE7,0xFF,0xFF,0x3B,0xD4,0x7C,0x01,0x3E,0x9F,0x5F, +0x4C,0xE7,0x10,0x4F,0x5A,0x10,0x98,0x60,0x8F,0x44,0x8C,0x87,0x0F,0x5A,0x02,0x0F, +0x84,0x02,0xCF,0x5A,0x00,0x32,0x41,0x08,0xE3,0xD7,0x48,0x01,0x2C,0xE7,0xFF,0xFE, +0xD5,0x42,0xF7,0x2D,0xCC,0xC6,0x00,0x0A,0x43,0xD7,0xF3,0x40,0xA5,0xCB,0x9B,0x4A, +0x43,0x3E,0x2C,0x8C,0xD9,0x40,0xC6,0xD0,0xD7,0x06,0xFB,0x60,0x98,0x61,0x85,0x29, +0xC2,0xE0,0x10,0x01,0x9B,0x21,0xEA,0xF7,0x01,0x51,0x9E,0xFF,0x5E,0xF7,0x04,0x26, +0xE4,0x43,0xC3,0x18,0x00,0x21,0xFF,0x18,0xB6,0xF8,0x8E,0xF8,0x13,0x37,0x00,0xC3, +0x00,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFF,0x18,0x0B,0x76,0xFE,0xF7,0x09,0x68,0xD0, +0x60,0x05,0x16,0x13,0x58,0x04,0x13,0xD8,0x01,0x1F,0x7A,0xFF,0x9F,0xC1,0x43,0xDE, +0xD3,0x4F,0x5A,0x08,0xCD,0x1B,0x00,0x03,0x5C,0x9A,0x00,0x4F,0x7B,0x08,0x9B,0x40, +0x5C,0x7B,0x00,0xE4,0x00,0x00,0x73,0x43,0x9A,0xDC,0x4F,0xBC,0x08,0x8F,0xB7,0x08, +0xBD,0x01,0x40,0xB9,0x2B,0x0C,0xBD,0x01,0x9F,0x81,0x8F,0x63,0x4F,0x9C,0x08,0x5F, +0x7B,0x00,0x8F,0x97,0x0B,0xBC,0x01,0x43,0xB9,0xEB,0x0F,0xBC,0x01,0xE4,0x00,0x00, +0x0D,0x9B,0x60,0xD5,0x1B,0xFE,0xA4,0x8F,0x44,0x5F,0x5A,0x00,0xD7,0xDA,0xFF,0xAC, +0x0B,0x37,0x02,0x0B,0x57,0x00,0x8F,0x59,0xC3,0x20,0x10,0x01,0xFF,0x39,0x0A,0x18, +0x0F,0x59,0x00,0x13,0x58,0x04,0x1F,0xBA,0xFF,0x4F,0xBD,0x10,0x43,0xDD,0xCC,0x8F, +0xB7,0x4F,0x9A,0x08,0x09,0x1D,0x00,0x1F,0x7C,0xFF,0x4F,0xBB,0x08,0x8F,0xB7,0x0B, +0xBD,0x00,0x8F,0xA8,0x0F,0xBE,0x00,0x13,0x18,0x01,0x27,0x05,0xAF,0xE4,0x00,0x01, +0x45,0x20,0x66,0xFE,0x13,0x58,0x04,0x13,0xD8,0x01,0x1F,0x7A,0xFF,0x9F,0xC1,0x43, +0xDE,0xD3,0x4F,0x5A,0x08,0xCD,0x1B,0x00,0x03,0x5C,0x9A,0x00,0x4F,0x7B,0x08,0x9B, +0x40,0x5C,0x7B,0x00,0xE4,0x00,0x00,0x73,0x43,0x9A,0xDC,0x4F,0xBC,0x08,0x8F,0xB7, +0x08,0xBD,0x00,0x40,0xA5,0xC8,0x0C,0xBD,0x01,0x9F,0x81,0x8F,0x63,0x4F,0x9C,0x08, +0x5F,0x7B,0x00,0x8F,0x97,0x0B,0xBC,0x00,0x43,0xBD,0xC8,0x0F,0xBC,0x01,0xE4,0x00, +0x00,0x0D,0x9B,0x60,0xD5,0x1B,0xFE,0xA4,0x8F,0x44,0x5F,0x5A,0x00,0xD7,0xDA,0xFF, +0xAC,0xE7,0xFF,0xFE,0xBF,0x4F,0x1A,0x10,0x9F,0x81,0x43,0x58,0xCC,0x43,0xB8,0xBC, +0x4F,0x9C,0x08,0x0B,0xBD,0x00,0x8F,0x97,0x0B,0x9C,0x00,0x8F,0x9D,0x0F,0x9A,0x00, +0x4F,0x7B,0x10,0x1F,0x58,0xFE,0x8F,0x3B,0x4F,0x5A,0x08,0x9F,0x1F,0x8F,0x57,0x4F, +0x18,0x08,0x0B,0x5A,0x00,0x8E,0xF8,0x0A,0xF7,0x00,0x8E,0xFA,0x0E,0xF9,0x00,0x85, +0x29,0x5C,0xE7,0x00,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x0B,0x7A,0x42,0xE7,0xBB,0x5E, +0xF7,0x00,0x9B,0x00,0x8C,0xB7,0x8C,0xD7,0xC3,0x80,0x10,0x01,0xC3,0x40,0x10,0x01, +0x5C,0xC6,0x00,0x5C,0xA5,0x00,0x8B,0x38,0x9A,0xE0,0xFF,0x9C,0x0A,0x18,0xFF,0x5A, +0x09,0x68,0xE4,0x00,0x00,0x49,0x4F,0x65,0x10,0x43,0xBB,0xE4,0x0F,0xBD,0x02,0x9C, +0xA1,0x8E,0xFD,0x5C,0xA5,0x00,0x8B,0xBB,0x8F,0x7A,0x8F,0xBA,0x0B,0x7B,0x00,0x0B, +0xBD,0x02,0x8F,0x1B,0x8F,0x3D,0xD4,0xA6,0xFF,0x01,0x26,0xE0,0xE8,0x27,0x20,0xDC, +0x27,0x00,0xD0,0xC3,0x40,0x10,0x01,0xFF,0x5A,0x04,0x08,0x4C,0xE7,0x10,0xCF,0x18, +0xFF,0xF6,0x8C,0xFA,0x0F,0x47,0x02,0x43,0x3A,0xCB,0x9F,0x56,0x8F,0x19,0x43,0x58, +0xD0,0xCF,0x5A,0x07,0xFF,0x43,0x5A,0xB8,0x0F,0x43,0x01,0x0E,0xE4,0x00,0x98,0x61, +0xE4,0x00,0x00,0x0D,0x98,0x60,0x85,0x29,0x9A,0xE3,0x9B,0x01,0xE4,0x00,0x00,0x11, +0x8F,0x17,0x9E,0xE2,0xD7,0x03,0xFF,0xE1,0x4C,0x77,0x09,0x9C,0x7F,0x85,0x29,0xFF, +0x00,0x7F,0xFF,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x03,0xD8,0x0F,0x17,0x01,0x0F,0x17, +0x03,0x0F,0x17,0x05,0x0F,0x17,0x07,0x0F,0x17,0x09,0x0F,0x17,0x0B,0x85,0x29,0xC3, +0x00,0x10,0x01,0xFE,0xF8,0x03,0xD8,0xC3,0x00,0x10,0x01,0x0B,0x37,0x08,0xFF,0x18, +0x0B,0xEC,0xC3,0x2F,0xFF,0xE0,0x20,0x00,0x41,0x0B,0x37,0x05,0x0F,0x37,0x09,0x0B, +0x37,0x07,0xE4,0x00,0x00,0x1B,0x0B,0x38,0x17,0x0F,0x37,0x09,0x0B,0x38,0x19,0x0F, +0x37,0x0B,0x0B,0x37,0x04,0xC3,0x2F,0xFF,0xE0,0x20,0x00,0x41,0x0B,0x37,0x01,0x0F, +0x37,0x05,0x0B,0x37,0x03,0xE4,0x00,0x00,0x1B,0x0B,0x38,0x17,0x0F,0x37,0x05,0x0B, +0x38,0x19,0x0F,0x37,0x07,0x0B,0x38,0x17,0x0B,0x18,0x19,0x0F,0x37,0x01,0x0F,0x17, +0x03,0x85,0x29,0x1C,0x21,0xD8,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x24,0x0D,0x41,0x20, +0x0D,0x61,0x1C,0xFD,0x57,0x03,0xD8,0x0D,0x81,0x18,0x0D,0xA1,0x14,0x0D,0xC1,0x10, +0x09,0xAA,0x07,0x0B,0x0A,0x03,0x43,0x18,0x6D,0x5F,0x18,0x06,0x0F,0x01,0x0B,0x43, +0x18,0xC3,0xE9,0x97,0x03,0xD9,0x09,0xCA,0x05,0x41,0x8C,0x75,0x5D,0x8C,0x06,0x40, +0x6C,0x63,0x8C,0x78,0xE7,0xFF,0xFE,0x48,0x0A,0xEA,0x09,0x41,0xCE,0xBD,0x0A,0xEA, +0x0B,0x42,0xED,0xBD,0x5E,0xF7,0x06,0x0E,0xE1,0x0F,0x42,0xF7,0xBB,0x5D,0x63,0x06, +0x5D,0x4E,0x06,0x40,0x6A,0x53,0x8C,0x77,0xE7,0xFF,0xFE,0x00,0x5E,0xE3,0x06,0x98, +0x61,0x21,0x60,0xAC,0x22,0xE0,0xA0,0x43,0x0B,0xB8,0xD3,0x05,0x01,0x14,0x41,0x4C, +0x53,0x0B,0x01,0x0E,0x09,0x81,0x0A,0x41,0x6B,0xBB,0x43,0x0C,0xC3,0x8D,0x58,0xCD, +0x4A,0x00,0x64,0x42,0xEA,0x58,0x5E,0xE8,0xB1,0x48,0x61,0x01,0x0D,0xC1,0x12,0x0D, +0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26,0x1C,0x21, +0x28,0x85,0x29,0x1C,0x21,0xE8,0xC2,0xE0,0x10,0x01,0x0D,0x41,0x10,0x0D,0x61,0x0C, +0x0D,0x81,0x08,0x0D,0xC1,0x00,0xF1,0x97,0x08,0xCE,0xC1,0x40,0x10,0x01,0x1D,0x6C, +0xFF,0x0D,0x21,0x14,0x0D,0xA1,0x04,0x5D,0xC3,0x00,0x5D,0x6B,0x00,0xFD,0x4A,0x0B, +0xEC,0x4E,0xEE,0x5D,0x56,0xF7,0x01,0x22,0xE0,0xD4,0x8A,0xEB,0xE4,0x00,0x00,0x43, +0xCC,0x77,0x00,0x30,0x1D,0xB7,0x01,0x8C,0x6A,0xCC,0x8D,0x00,0x30,0x9C,0x64,0x8C, +0x8A,0x50,0xA0,0x30,0x9C,0x84,0xE4,0x00,0x50,0x46,0x5E,0xED,0x00,0xD5,0x97,0xFF, +0x1D,0x12,0xEA,0x00,0x22,0xE0,0x20,0x9E,0xFF,0x1A,0xEA,0x00,0x21,0x60,0x30,0x9D, +0x7F,0x5D,0x6B,0x00,0xE7,0xFF,0xFF,0x7B,0x12,0xEA,0x00,0x22,0xE0,0x52,0xC2,0xE0, +0x10,0x01,0x9B,0x37,0xEB,0x17,0x08,0xE3,0x47,0x18,0xCC,0xEF,0x17,0x08,0xE3,0x0D, +0xC1,0x02,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21, +0x16,0x1C,0x21,0x18,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xEB,0x37, +0x01,0x50,0xFF,0x18,0x04,0x1C,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x76,0x23,0x24, +0xA6,0x13,0x37,0x04,0x9A,0xE0,0x9F,0x21,0xE4,0x00,0x00,0x2F,0x4F,0x57,0x08,0x1F, +0x77,0xFF,0x8F,0x58,0x4F,0x7B,0x10,0x9E,0xE1,0x0F,0x7A,0x01,0x5E,0xF7,0x00,0xD6, +0xF9,0xFF,0x68,0xE4,0x00,0x00,0x9D,0x23,0x28,0x38,0x13,0x37,0x04,0x9A,0xE0,0x9F, +0x21,0xE4,0x00,0x00,0x79,0x13,0x37,0x04,0x9A,0xE0,0x9F,0x21,0xE4,0x00,0x00,0x2F, +0x4F,0x57,0x08,0xCF,0x77,0x00,0x06,0x8F,0x58,0x9F,0x79,0x9E,0xE1,0x0F,0x7A,0x01, +0x5E,0xF7,0x00,0xD6,0xF9,0xFF,0x68,0xE4,0x00,0x00,0x35,0x4F,0x57,0x08,0x4F,0x77, +0x08,0x8F,0x58,0x9F,0x7F,0x9E,0xE1,0x0F,0x7A,0x01,0x5E,0xF7,0x00,0xD6,0xF9,0xFF, +0x70,0x85,0x29,0x9C,0x30,0x5C,0xC6,0x00,0x0D,0x61,0x08,0x0D,0x81,0x04,0x0D,0xA1, +0x00,0x0D,0x41,0x0C,0xC3,0x00,0x10,0x01,0xFF,0x18,0x0B,0x76,0x13,0xD8,0x04,0x40, +0xC6,0xF3,0x5E,0xE6,0x00,0x5F,0xA3,0x06,0x8C,0x97,0x8C,0xB7,0x5F,0x7D,0x04,0x0A, +0xF8,0x0B,0x11,0x58,0x0C,0x40,0xFB,0xBC,0x41,0x9B,0xBD,0xC1,0xA0,0x10,0x01,0xC3, +0x00,0x10,0x01,0x5C,0xA5,0x00,0x4D,0x77,0x08,0x5C,0xE7,0x04,0x5D,0x8C,0x04,0x5C, +0x84,0x00,0xFD,0xAD,0x04,0x1C,0xFF,0x18,0x09,0x68,0x53,0x20,0x64,0xE4,0x00,0x01, +0x21,0x43,0x44,0x35,0x9F,0x41,0x4F,0x5A,0x08,0x8F,0x4D,0x09,0x1A,0x00,0x41,0x08, +0xBB,0x41,0x08,0x50,0x5F,0x88,0x04,0x43,0x5C,0xDD,0x5F,0x5A,0x06,0x4C,0x7A,0xFA, +0x47,0x43,0xD6,0x43,0x5A,0x1D,0xD6,0xFA,0x03,0x14,0xD5,0x7A,0x02,0x70,0x5D,0x08, +0x06,0xD5,0x1D,0x00,0x58,0x43,0x9C,0x3D,0xE4,0x00,0x00,0x0F,0x43,0x8C,0xE5,0x5F, +0x9C,0x06,0x4F,0x44,0x10,0x43,0x97,0xE5,0x8F,0x58,0xCF,0x9C,0x00,0x64,0x09,0x1A, +0x00,0x43,0x9C,0xB8,0xC7,0x9C,0xFF,0xFF,0x41,0x1C,0x43,0x41,0x08,0xC8,0x0D,0x1A, +0x01,0x4F,0x44,0x10,0x9F,0x42,0x8F,0x58,0x09,0x1A,0x00,0x43,0x9C,0x43,0x43,0x9C, +0xC8,0x0F,0x9A,0x01,0xE4,0x00,0x00,0x29,0x4F,0x44,0x10,0x8F,0x58,0x0C,0x1A,0x01, +0x4F,0x44,0x10,0x8F,0x58,0x0C,0x1A,0x03,0x9C,0x81,0x5C,0x84,0x00,0xD4,0x85,0xFB, +0xA0,0xC2,0xE0,0x10,0x01,0x0D,0xA1,0x02,0xF0,0x77,0x0B,0x77,0x0D,0x81,0x06,0x0D, +0x61,0x0A,0x0D,0x41,0x0E,0x40,0x7E,0x1B,0x1C,0x21,0x10,0xE4,0x00,0xA4,0xF9,0x5C, +0x63,0x00,0x5C,0x84,0x00,0xC2,0xE0,0x10,0x01,0x43,0x64,0x1D,0xF2,0xF7,0x0B,0x7A, +0x9F,0x61,0x40,0xA5,0xBB,0x5F,0x7B,0x00,0x5C,0xA5,0x00,0x20,0xE4,0x3E,0xC2,0xE0, +0x10,0x01,0xFE,0xF7,0x0D,0x2C,0xE4,0x00,0x00,0x19,0xC2,0xE0,0x10,0x01,0xFE,0xF7, +0x09,0x68,0x43,0x23,0x2C,0x9B,0x00,0x4F,0x39,0x10,0x9F,0x22,0x8F,0x37,0xC2,0xEF, +0xFF,0xE1,0xCA,0xF7,0xFF,0xFF,0xE4,0x00,0x00,0x3D,0x0B,0x99,0xFE,0x0B,0x59,0x00, +0x9F,0x24,0x8F,0x5C,0x4F,0x98,0x10,0x5E,0xFA,0x15,0x8F,0x86,0x4A,0xF7,0xD0,0x0F, +0x5C,0x00,0x9F,0x01,0x5F,0x58,0x00,0xD7,0x7A,0xFF,0x1D,0x9B,0x00,0xE4,0x00,0x00, +0x29,0x0F,0x26,0x02,0x9F,0x01,0x43,0x39,0xBD,0x5F,0x18,0x00,0x0F,0x26,0x00,0x9C, +0xC4,0xD7,0x78,0xFF,0x85,0x85,0x29,0x1C,0x21,0x88,0x0D,0x41,0x70,0x0D,0x61,0x6C, +0x5D,0x44,0x00,0x0D,0x81,0x68,0x5C,0x85,0x00,0x0D,0xA1,0x64,0x88,0xA6,0x41,0xA4, +0x55,0x0D,0x21,0x74,0x89,0x83,0x88,0xC1,0x88,0x6A,0xE7,0xFF,0xFE,0xAA,0xC2,0xE0, +0x10,0x01,0x9D,0xA1,0xEB,0x57,0x01,0x50,0x9B,0x20,0x5D,0xAD,0x00,0x8B,0x19,0x9A, +0xE0,0x89,0x61,0xE4,0x00,0x00,0x5B,0x4F,0x79,0x10,0x43,0x99,0x54,0x8F,0x6B,0x0F, +0x7B,0x02,0x8E,0xFB,0x23,0x44,0x54,0x23,0x48,0x36,0xCF,0x9C,0x00,0x06,0x9F,0x9F, +0xE4,0x00,0x00,0x13,0x4F,0x9C,0x08,0x9F,0x81,0x43,0x7C,0xDB,0x9F,0x21,0x8F,0x1B, +0x5F,0x79,0x00,0xD5,0xBB,0xFE,0xA5,0x26,0xE1,0x34,0xC3,0x20,0x10,0x01,0xEB,0x39, +0x0B,0x81,0x43,0x18,0xCB,0x23,0x44,0x32,0x4F,0x37,0x0A,0x8F,0x19,0xE4,0x00,0x00, +0x35,0x23,0x48,0x46,0xCF,0x37,0x00,0x03,0xCE,0xF7,0x00,0x06,0x8F,0x19,0xE4,0x00, +0x00,0x13,0x8F,0x17,0x4E,0xF7,0x08,0x42,0xF8,0xB8,0xC2,0xE0,0xFF,0xE8,0xCB,0x00, +0x07,0xFF,0x98,0x61,0x4A,0xF7,0xC0,0x5E,0xFF,0xF9,0x4A,0xF7,0x00,0x0E,0xEC,0x01, +0xE4,0x00,0x00,0x0D,0x98,0x60,0x0D,0xA1,0x66,0x0D,0x81,0x6A,0x0D,0x61,0x6E,0x0D, +0x41,0x72,0x0D,0x21,0x76,0x1C,0x21,0x78,0x85,0x29,0xFC,0x21,0xFF,0x78,0xED,0x41, +0x00,0x80,0x0D,0x81,0x78,0x0D,0xA1,0x74,0x0D,0xC1,0x70,0x0D,0xE1,0x6C,0x0E,0x01, +0x68,0x0E,0xC1,0x64,0xED,0x21,0x00,0x84,0x0D,0x61,0x7C,0xC1,0x40,0x10,0x01,0xFD, +0x4A,0x0B,0x76,0x11,0x6A,0x04,0x4E,0xEB,0x08,0x9E,0xE8,0xC6,0xF7,0x03,0xF8,0xFE, +0xC1,0x00,0x88,0x5D,0xC4,0x00,0x5D,0xA5,0x00,0x8A,0x03,0x5C,0xA6,0x00,0x89,0xE1, +0x41,0x65,0x5B,0x40,0x21,0xBD,0x88,0x6E,0x88,0x8D,0xFC,0xD6,0xFF,0x78,0xE7,0xFF, +0xFC,0xA2,0xC3,0x40,0x10,0x01,0x89,0x81,0x5D,0x6B,0x00,0x13,0x2A,0x04,0x9A,0xE0, +0xFF,0x5A,0x04,0x1C,0xE4,0x00,0x00,0x29,0x4F,0x17,0x08,0x9E,0xE1,0x43,0x6C,0xC4, +0x8F,0x1A,0x0B,0x18,0x03,0x0F,0x1B,0x01,0x5F,0x17,0x00,0xD7,0x38,0xFF,0x6D,0x43, +0x4B,0x74,0x8D,0xAB,0x5F,0x5A,0x00,0x5D,0xAD,0x00,0x9A,0xE0,0x1F,0x2D,0x01,0x43, +0x39,0xD5,0x5F,0x39,0x00,0xE4,0x00,0x00,0x33,0x4F,0x77,0x10,0xFF,0x96,0xFF,0x78, +0x8F,0x7C,0x0F,0x7B,0x02,0x27,0x60,0x4A,0xD5,0xB8,0x03,0x19,0x9E,0xE1,0x5F,0x17, +0x00,0xD7,0x38,0xFF,0x45,0x8B,0x1A,0x1F,0x36,0xD8,0x1F,0x76,0xD8,0x4E,0xF8,0x10, +0x8E,0xF9,0x0F,0x37,0xA2,0x1E,0xF8,0x01,0x43,0x39,0xCB,0x4E,0xF7,0x10,0x8E,0xFB, +0x0E,0xF7,0xA2,0x42,0xF7,0xBB,0x5F,0x37,0x15,0x4B,0x77,0xC8,0x27,0x60,0xBC,0x8F, +0x1A,0x0B,0x6A,0x0B,0x41,0x78,0x5D,0x13,0x4A,0x0C,0x4D,0x6B,0x08,0x98,0x61,0x8D, +0x8B,0x0B,0x0C,0x00,0x43,0x18,0xDB,0x43,0x77,0xDB,0x43,0x18,0xD0,0x8E,0xF9,0x42, +0xFB,0xB8,0x8E,0xF8,0x0E,0xF0,0x01,0xE4,0x00,0x00,0x0D,0x98,0x60,0x88,0x2F,0x0E, +0xC1,0x66,0x0E,0x01,0x6A,0x0D,0xE1,0x6E,0x0D,0xC1,0x72,0x0D,0xA1,0x76,0x0D,0x81, +0x7A,0x0D,0x61,0x7E,0xED,0x41,0x00,0x82,0xED,0x21,0x00,0x86,0xFC,0x21,0x00,0x88, +0x85,0x29,0x1C,0x21,0xB8,0x0D,0x41,0x40,0xC1,0x40,0x10,0x01,0x0D,0x61,0x3C,0x0D, +0x81,0x38,0x0D,0xC1,0x30,0x0E,0x41,0x20,0x0E,0x61,0x1C,0x0E,0x81,0x18,0x0E,0xA1, +0x14,0x0E,0xC1,0x10,0x0D,0x21,0x44,0x0D,0xA1,0x34,0x0D,0xE1,0x2C,0x0E,0x01,0x28, +0x0E,0x21,0x24,0x5E,0x63,0x00,0x5E,0x44,0x00,0xC1,0xC0,0x10,0x01,0xF0,0x8A,0x0B, +0x76,0xFD,0xCE,0x0C,0xB8,0x98,0xA0,0x88,0x6E,0x99,0x80,0x8A,0xCA,0xE4,0x00,0x9F, +0xA0,0xC1,0x40,0x10,0x01,0x89,0x6C,0xC2,0xA0,0x10,0x01,0x9A,0x81,0xFD,0x4A,0x0B, +0xEC,0xE4,0x00,0x01,0x19,0xCC,0x6B,0x00,0x30,0xEA,0xF5,0x08,0x9F,0x41,0xA3,0x54, +0x56,0xF7,0x02,0x12,0x2D,0x04,0x12,0x0D,0x05,0x11,0xED,0x07,0x22,0xE1,0x0C,0x1C, +0x61,0x04,0x88,0x91,0x88,0xB0,0x88,0xCF,0x98,0xE0,0xE7,0xFF,0xFA,0xDA,0x20,0x61, +0x14,0x1C,0x61,0x06,0x88,0x91,0x88,0xB0,0x88,0xCF,0x98,0xE0,0xE7,0xFF,0xFC,0x5C, +0x20,0x60,0xCC,0x0B,0x01,0x04,0xCF,0x18,0x00,0x07,0x0A,0xE1,0x06,0xCE,0xF7,0x00, +0x03,0x8E,0xF8,0x9B,0x0A,0x42,0xF7,0xC0,0x0E,0xED,0x17,0xE4,0x00,0x00,0x43,0x8C, +0x6A,0x88,0x91,0x1C,0x63,0x16,0x88,0xB0,0x88,0xCF,0x98,0xE0,0xE7,0xFF,0xFA,0x56, +0x20,0x60,0x32,0x4E,0xF4,0x5C,0x45,0x8C,0xBD,0x5D,0x8C,0x00,0x88,0x6E,0xF0,0x96, +0x0B,0x76,0x98,0xA1,0x9D,0x61,0xE4,0x00,0x9E,0x6E,0x5D,0x6B,0x00,0x12,0xEA,0x00, +0xD6,0xEB,0xFB,0xAD,0x88,0x6C,0xE7,0xFF,0xF4,0x7A,0x12,0xEA,0x00,0x22,0xE0,0x6C, +0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x8B,0x56,0xF7,0x40,0x22,0xE0,0x34,0xC2,0xE0, +0x10,0x01,0xEE,0xF7,0x03,0xE6,0x86,0xE8,0xC2,0xE0,0x10,0x01,0x88,0x6E,0xF0,0x97, +0x0B,0x76,0x98,0xA1,0xE4,0x00,0x9D,0xF2,0xC2,0xE0,0x10,0x01,0x99,0x80,0xEA,0xF7, +0x08,0x8B,0x89,0x6C,0x56,0xF7,0x80,0x99,0xA1,0x22,0xE0,0xFC,0xC2,0xE0,0x10,0x01, +0xEE,0xF7,0x03,0xFA,0x86,0xE8,0xE4,0x00,0x00,0x7F,0xCE,0xEB,0x00,0x30,0x40,0x6A, +0xBC,0x8A,0xE3,0x88,0x83,0x10,0xB7,0x04,0x1C,0x63,0x18,0x9C,0x8C,0x10,0xD7,0x05, +0x10,0xF7,0x07,0xE7,0xFF,0xEF,0xDC,0x20,0x60,0x32,0x4E,0xED,0x5C,0x45,0x8C,0xBD, +0x5D,0x8C,0x00,0x9D,0x61,0x5D,0x6B,0x00,0x12,0xEA,0x00,0xD6,0xEB,0xFE,0x7D,0x88, +0x6C,0xE7,0xFF,0xF3,0x64,0x22,0x61,0x5C,0x22,0x40,0xFE,0xE4,0x00,0x00,0xA3,0xCD, +0x6C,0x00,0x30,0x8D,0x6A,0x0A,0xEB,0x16,0x0E,0xE1,0x08,0x0A,0xEB,0x18,0x1C,0x61, +0x08,0x0E,0xE1,0x0C,0x1C,0x81,0x0C,0xEE,0xED,0x03,0xD2,0x0C,0xAB,0x0E,0x88,0xCE, +0x86,0xE8,0x0E,0xE1,0x0A,0x9D,0x81,0x0E,0xEB,0x17,0x5D,0x8C,0x00,0x0E,0xE1,0x0E, +0x0E,0xEB,0x19,0xE4,0x00,0x00,0x25,0xC1,0xC0,0x10,0x01,0x99,0x80,0xC1,0xA0,0x10, +0x01,0xFD,0xCE,0x01,0x3C,0x12,0xEA,0x00,0xD6,0xEC,0xFD,0xBD,0xC2,0xE0,0x10,0x01, +0x13,0x6A,0x00,0xEB,0x97,0x08,0x9F,0x9B,0x20,0xC2,0xE0,0x10,0x01,0x57,0x9C,0x01, +0xFE,0xF7,0x0C,0x04,0xCB,0xA0,0x07,0xFF,0xE4,0x00,0x00,0x89,0x0B,0x57,0x01,0x13, +0xD7,0xEF,0x5F,0x1A,0x06,0x47,0x18,0xC7,0x4F,0x18,0xFA,0x47,0x1A,0xC4,0x5F,0x58, +0x06,0xC3,0x40,0xFF,0xE8,0x20,0x00,0x1D,0xFF,0x00,0x07,0xFF,0x0F,0x17,0x01,0x5F, +0x58,0x06,0x23,0x80,0x48,0xCF,0x1A,0x03,0xFF,0x4F,0x5E,0x50,0x43,0x18,0xE8,0x8F, +0x1A,0x0F,0x17,0x01,0x9F,0x21,0x1E,0xF7,0x30,0x5F,0x39,0x00,0xD7,0x3B,0xFE,0x06, +0x0E,0xC1,0x12,0x0E,0xA1,0x16,0x0E,0x81,0x1A,0x0E,0x61,0x1E,0x0E,0x41,0x22,0x0E, +0x21,0x26,0x0E,0x01,0x2A,0x0D,0xE1,0x2E,0x0D,0xC1,0x32,0x0D,0xA1,0x36,0x0D,0x81, +0x3A,0x0D,0x61,0x3E,0x0D,0x41,0x42,0x0D,0x21,0x46,0x1C,0x21,0x48,0x85,0x29,0x1C, +0x21,0xC8,0xC2,0xE0,0x10,0x01,0x0D,0x81,0x28,0x0D,0xA1,0x24,0x0E,0x61,0x0C,0x0E, +0xC1,0x00,0x0D,0x21,0x34,0x0D,0x41,0x30,0x0D,0x61,0x2C,0x0D,0xC1,0x20,0x0D,0xE1, +0x1C,0x0E,0x01,0x18,0x0E,0x21,0x14,0x0E,0x41,0x10,0x0E,0x81,0x08,0x0E,0xA1,0x04, +0xC1,0x80,0x10,0x01,0xF3,0x57,0x08,0xCE,0xFD,0x8C,0x0B,0xEC,0xC2,0xE0,0x10,0x01, +0x1E,0xC1,0x38,0x89,0xA3,0x8A,0x61,0x18,0x0C,0x00,0xFE,0xF7,0x0B,0xF4,0x9B,0x00, +0x9B,0x3F,0xE4,0x00,0x00,0x2B,0x0C,0x17,0x00,0x1B,0x37,0xFE,0x1B,0x37,0xFF,0x9F, +0x01,0x1E,0xF7,0x30,0x5F,0x18,0x00,0xD7,0x1A,0xFF,0x7E,0xC1,0xE0,0x10,0x01,0xFD, +0xEF,0x0B,0x76,0x12,0xEF,0x04,0x10,0x6F,0x01,0x40,0x63,0xBB,0xE4,0x00,0x99,0xF6, +0x13,0x2F,0x04,0x4E,0xF9,0x10,0x9E,0xEA,0xC6,0xF7,0x07,0xF8,0xC3,0x60,0x10,0x01, +0x40,0x21,0xBD,0x0A,0x0D,0x18,0x89,0x61,0x9B,0x00,0xCA,0xE0,0x20,0x00,0xFF,0x7B, +0x0A,0x18,0xE4,0x00,0x00,0x3B,0x4F,0x58,0x10,0x9F,0x01,0x43,0x9A,0xDC,0x8F,0x4B, +0x0E,0x3C,0x02,0x5E,0x37,0x15,0x0E,0x3A,0x00,0x4A,0xF1,0xB8,0x5E,0xF7,0x06,0x5F, +0x58,0x00,0xD7,0x3A,0xFF,0x25,0x46,0x37,0xBF,0x99,0x40,0x4E,0x31,0xFA,0x89,0xCA, +0x46,0x31,0xBC,0xC2,0x80,0x10,0x01,0x9A,0x42,0x8A,0xAC,0xE4,0x00,0x04,0x4B,0x0B, +0x0D,0x18,0x21,0x41,0x32,0x0E,0xEB,0x02,0xD7,0x17,0x0E,0xEC,0x0F,0x0B,0x06,0xD6, +0xF8,0x00,0x7C,0xD6,0xF8,0x0E,0x96,0x0F,0x0B,0x0A,0xD6,0xF8,0x0E,0x58,0x98,0x60, +0x88,0x8B,0x88,0xB1,0x88,0xD0,0x08,0xED,0x1C,0x09,0x0D,0x1E,0xE7,0xFF,0xE5,0xE6, +0xD0,0x60,0x0D,0xAA,0x12,0xEC,0x00,0x99,0x41,0x8E,0xEE,0xCE,0xF7,0x00,0x30,0x8E, +0xEC,0x18,0x17,0x04,0x18,0x17,0x06,0x1A,0x57,0x05,0xE4,0x00,0x03,0x4F,0x21,0x45, +0x56,0x0E,0xEB,0x06,0xD7,0x17,0x0C,0x8C,0x0F,0x0B,0x02,0xD7,0x17,0x0C,0x54,0x0F, +0x0B,0x0A,0xD6,0xF8,0x00,0x7C,0xD6,0xF8,0x0B,0xFE,0x0F,0x0B,0x0E,0xD6,0xF8,0x0B, +0xC0,0x98,0x61,0x88,0x8B,0x88,0xB1,0x88,0xD0,0x08,0xED,0x1C,0x09,0x0D,0x1E,0xE7, +0xFF,0xE5,0x40,0xD0,0x60,0x0B,0x12,0x12,0xEC,0x00,0x9B,0x01,0x8E,0xEE,0x99,0x42, +0xCE,0xF7,0x00,0x30,0x8E,0xEC,0x18,0x17,0x04,0x1B,0x17,0x06,0x1A,0x57,0x05,0xE4, +0x00,0x02,0xA5,0x25,0x45,0xC5,0x1F,0x37,0xFE,0xD7,0x2A,0x03,0x58,0x4E,0xEA,0x10, +0x8E,0xEB,0x0E,0xF7,0x02,0xD7,0x17,0x09,0x84,0x1F,0x0A,0xFF,0x4F,0x18,0x10,0x8F, +0x0B,0x0F,0x18,0x02,0xD6,0xF8,0x01,0x34,0xD6,0xF8,0x08,0xEE,0x1F,0x2A,0xFE,0x4F, +0x39,0x10,0x8F,0x2B,0x0F,0x39,0x02,0xD6,0xF9,0x08,0x70,0x1F,0x4A,0x01,0x4F,0x5A, +0x10,0x8F,0x4B,0x0F,0x5A,0x02,0xD7,0x59,0x07,0xF8,0x1F,0x2A,0x01,0x4F,0x39,0x10, +0x8F,0x2B,0x0F,0x39,0x02,0xD6,0xF9,0x03,0x2C,0xD6,0xF9,0x07,0x66,0x1F,0x2A,0x02, +0x4F,0x39,0x10,0x8F,0x2B,0x0F,0x39,0x02,0xD6,0xF9,0x06,0xE8,0xD7,0x19,0x06,0xC8, +0xE4,0x00,0x00,0x95,0x4F,0x0A,0x10,0x1F,0x57,0xFE,0x0B,0x2D,0x18,0x8F,0x0B,0xD5, +0x5A,0x03,0x6E,0x0F,0x18,0x02,0xD7,0x38,0x05,0xFC,0x1F,0x37,0xFF,0x4F,0x39,0x10, +0x8F,0x2B,0x0F,0x39,0x02,0xD7,0x38,0x05,0x84,0x1F,0x37,0xFD,0x4F,0x39,0x10,0x8F, +0x2B,0x0F,0x39,0x02,0xD7,0x19,0x00,0xB4,0xD7,0x19,0x04,0xEE,0x9E,0xFC,0x4E,0xF7, +0x10,0x8E,0xEB,0x0E,0xF7,0x02,0xD7,0x17,0x04,0x78,0x88,0x6A,0x88,0x8B,0x88,0xB1, +0x88,0xD0,0x08,0xED,0x1C,0x09,0x0D,0x1E,0xE7,0xFF,0xE3,0x6E,0x20,0x61,0xE4,0x12, +0xEC,0x00,0x1F,0x0A,0xFF,0x8E,0xEE,0xCE,0xF7,0x00,0x30,0x8E,0xEC,0x19,0x57,0x06, +0x1B,0x17,0x04,0x9D,0x41,0x5D,0x4A,0x00,0xE4,0x00,0x00,0xAD,0x0E,0xF8,0x02,0xD7, +0x37,0x02,0xB4,0x1F,0x0A,0xFF,0x4F,0x18,0x10,0x8F,0x0B,0x0F,0x18,0x02,0xD6,0xF8, +0x00,0xBC,0xD6,0xF8,0x02,0x1E,0x1F,0x0A,0xFE,0x4F,0x18,0x10,0x8F,0x0B,0x0F,0x18, +0x02,0xD6,0xF8,0x01,0xA0,0x88,0x6A,0x88,0x8B,0x88,0xB1,0x88,0xD0,0x08,0xED,0x1C, +0x09,0x0D,0x1E,0xE7,0xFF,0xE2,0xB8,0x20,0x60,0x78,0x12,0xEC,0x00,0x1F,0x0A,0xFE, +0x8E,0xEE,0xCE,0xF7,0x00,0x30,0x8E,0xEC,0x1B,0x17,0x04,0x19,0x57,0x06,0x19,0x57, +0x05,0xE4,0x00,0x00,0x21,0x9D,0x41,0x5D,0x4A,0x00,0x12,0xEF,0x04,0xD6,0xEA,0xF0, +0x95,0x12,0xEF,0x04,0xD6,0xEA,0x01,0x61,0x12,0xEC,0x00,0x8E,0xEE,0xCE,0xF7,0x00, +0x30,0x43,0x17,0x64,0x13,0x18,0x05,0xD5,0x58,0x00,0x55,0x1D,0x58,0x01,0x5D,0x4A, +0x00,0x8E,0xF5,0x9B,0x01,0x9D,0xC1,0x18,0x17,0x07,0x0F,0x17,0x08,0x5D,0xCE,0x00, +0x12,0xEF,0x04,0xD6,0xEA,0x00,0x61,0xF2,0xF4,0x08,0xCE,0xD6,0xEE,0xFD,0xFC,0x12, +0xEC,0x00,0x8D,0xD7,0x19,0xCC,0x00,0x88,0x33,0x0E,0xC1,0x02,0x0E,0xA1,0x06,0x0E, +0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D,0xE1, +0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32, +0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01, +0xF8,0x77,0x04,0x64,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x0B,0x81,0xEE,0xF8,0x04,0x5D, +0xC3,0x00,0x10,0x01,0xCF,0x37,0x00,0x05,0x4E,0xF7,0x10,0xEF,0x38,0x04,0x5B,0xC3, +0x00,0x10,0x01,0xEE,0xF8,0x04,0x59,0x85,0x29,0x5C,0x63,0x06,0x20,0x84,0x5A,0x0B, +0x05,0x00,0x0B,0x25,0x02,0x0B,0x45,0x04,0x0B,0x85,0x06,0x0B,0x65,0x08,0xE4,0x00, +0x00,0x27,0x0B,0x05,0x0A,0x0B,0x25,0x0C,0x0B,0x45,0x0E,0x0B,0x85,0x10,0x0B,0x65, +0x12,0xC2,0xE0,0x10,0x01,0x9B,0xA2,0xEA,0xF7,0x0B,0x81,0x43,0x9C,0xBB,0x43,0x9C, +0xE8,0x43,0x80,0xE5,0xFF,0x9C,0x03,0xFF,0xD4,0x7C,0x00,0xC8,0x43,0x9B,0xBB,0x43, +0xBC,0xE8,0xFF,0xBD,0x03,0xFF,0xD7,0xA3,0x01,0x08,0x5C,0x78,0x04,0xE4,0x00,0x00, +0xE3,0x24,0x7C,0x58,0x43,0x03,0xC3,0x40,0x7C,0x1D,0x43,0x43,0xD3,0x40,0x78,0xD4, +0x40,0x63,0xE0,0xE4,0x00,0x00,0xB1,0x9B,0x82,0x43,0x7B,0xBB,0x43,0x7B,0xE0,0xFF, +0x9B,0x03,0xFF,0xD7,0x83,0x01,0x7C,0xC0,0x60,0xFF,0xEC,0x20,0x00,0xCD,0x43,0x60, +0xDD,0xFE,0xFB,0xFC,0x01,0x8E,0xE3,0x43,0x37,0xCB,0xCA,0xE0,0x07,0xFF,0x40,0x77, +0x1D,0xFF,0x7B,0x04,0x00,0x43,0x03,0xC3,0x40,0x79,0xC4,0x40,0x63,0xD8,0xE4,0x00, +0x00,0x3B,0x24,0x7C,0x32,0x8C,0x77,0x40,0x63,0xD3,0xE4,0x00,0x00,0x1D,0xFF,0x17, +0x07,0xFF,0x40,0x78,0x1D,0x40,0x63,0xCB,0x40,0x63,0xB8,0x5C,0x63,0x04,0x85,0x29, +0x9C,0x38,0x0C,0x01,0x04,0xC3,0x00,0x10,0x01,0xC3,0x40,0x10,0x01,0xFF,0x18,0x0B, +0x76,0xFF,0x9A,0x04,0x1C,0x0B,0x38,0x0B,0x0B,0xBC,0x00,0x13,0x18,0x0C,0x5F,0x79, +0x06,0x5E,0xE3,0x06,0x43,0x7D,0xDB,0x43,0x7B,0xC0,0xD6,0xFB,0x00,0x4C,0x9B,0x41, +0x0F,0x41,0x04,0x0F,0x41,0x06,0x98,0x7F,0x23,0x40,0x5E,0x0B,0x5C,0x02,0x43,0x5A, +0xCB,0x43,0x5A,0xC0,0xD7,0x57,0x00,0x58,0x9B,0x41,0x98,0x60,0x0F,0x41,0x04,0x0F, +0x41,0x06,0x23,0x41,0x1E,0xC3,0x40,0x10,0x01,0xC3,0x60,0x10,0x01,0xF3,0xBA,0x0B, +0x7A,0xFF,0x7B,0x04,0x20,0x9B,0x41,0xE4,0x00,0x00,0x57,0x0B,0xDB,0xFE,0x43,0xDE, +0xCB,0x43,0xDE,0xC0,0xD7,0xD7,0x00,0xD4,0x0B,0xDB,0x00,0x43,0xDE,0xCB,0x43,0xDE, +0xC0,0xD7,0xD7,0x00,0x68,0x9B,0x41,0x0F,0x41,0x04,0xE4,0x00,0x00,0x1F,0x9F,0x41, +0x9F,0x62,0x5C,0x7A,0x02,0xD7,0x5D,0xFE,0xB0,0x0F,0x41,0x06,0x23,0x40,0x9E,0xC3, +0x40,0x10,0x01,0xF3,0x5A,0x0B,0x7A,0x9F,0x41,0x4F,0x7A,0x08,0x8F,0x9B,0x0B,0x7C, +0x00,0x43,0x3B,0xCB,0x43,0x19,0xC0,0xD7,0x17,0x00,0x64,0x9A,0xE1,0x5C,0x7A,0x02, +0x0E,0xE1,0x04,0x9C,0x28,0x85,0x29,0xC3,0x20,0x10,0x01,0x5C,0x63,0x06,0x5C,0xC6, +0x02,0x5C,0xE7,0x00,0xFF,0x39,0x09,0x68,0x24,0xC0,0x98,0xC2,0xE0,0x10,0x01,0xF3, +0x17,0x0B,0x7A,0xD4,0xD8,0x00,0xDC,0x43,0x18,0x3B,0x1E,0xE6,0xFF,0x8E,0xF8,0x4F, +0x17,0x10,0x8F,0x19,0x0B,0x78,0x02,0x0B,0x58,0x00,0xE4,0x00,0x00,0x11,0x9B,0x40, +0x8B,0x7A,0xC2,0xE0,0x10,0x01,0xF3,0x97,0x0B,0x7A,0xD7,0x86,0x01,0x08,0xD0,0xDF, +0x04,0x28,0x42,0xFC,0x3B,0x8E,0xE6,0x4F,0x17,0x10,0x4E,0xF7,0x10,0x8F,0x19,0x8F, +0x37,0x0B,0x18,0x02,0x0B,0xD9,0x00,0xE4,0x00,0x00,0x17,0x24,0xDD,0xA0,0x9B,0xC0, +0x8B,0x1E,0xD4,0xDC,0x03,0x0C,0x4E,0xE6,0x08,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x04, +0x1C,0x8E,0xE7,0x9C,0xC1,0x09,0x17,0x00,0x4C,0xC6,0x08,0xC2,0xE0,0x10,0x01,0xFE, +0xF7,0x0B,0x76,0x8C,0xE6,0x0B,0x97,0x0B,0x13,0x37,0x0C,0x0A,0xE7,0x00,0x40,0xD7, +0xE3,0x42,0xF7,0x45,0x43,0xA8,0xE3,0x40,0xC6,0xC8,0x43,0xBD,0xC8,0x43,0x97,0xE3, +0x43,0xA3,0xED,0x43,0x3C,0xC8,0x40,0x66,0x1D,0x43,0x18,0xEB,0x43,0x7B,0x1B,0x42, +0xFE,0xEB,0x8F,0x1B,0x40,0x7A,0x1B,0x43,0x18,0xC8,0x8E,0xE3,0x42,0xF7,0xC8,0xE4, +0x00,0x00,0x11,0x9A,0xE0,0x8B,0x17,0x0F,0x04,0x01,0x0E,0xE5,0x01,0x85,0x29,0x1C, +0x21,0xD8,0x0D,0x41,0x20,0x0D,0x61,0x1C,0x0D,0x81,0x18,0x0D,0xA1,0x14,0x5D,0x84, +0x00,0x0D,0xC1,0x10,0x0D,0xE1,0x0C,0x0E,0x01,0x08,0x5D,0xA5,0x00,0x5D,0x63,0x04, +0x0C,0xC1,0x04,0x0D,0x21,0x24,0x89,0xE8,0x0D,0xC1,0x2A,0xC1,0x40,0x10,0x01,0x9A, +0x02,0xFD,0x4A,0x0B,0x76,0x0C,0xE1,0x00,0x08,0x6A,0x0B,0x40,0x6C,0x1B,0x40,0x63, +0x80,0x40,0x6B,0x1D,0xE7,0xFF,0xFC,0x38,0x0C,0x81,0x06,0x88,0xC3,0x5E,0xE3,0x02, +0x0C,0xA1,0x02,0x26,0xFC,0x36,0x0C,0x04,0x01,0x0C,0x05,0x01,0xE4,0x00,0x00,0x2D, +0x0A,0xEA,0x0B,0x42,0xEC,0xBB,0x88,0xED,0x40,0x77,0x80,0x40,0x6B,0x1D,0xE7,0xFF, +0xFD,0x72,0x08,0x6A,0x0B,0x40,0x6C,0x1B,0x4C,0x63,0x0A,0x8C,0x6B,0xE7,0xFF,0xFB, +0xC6,0x12,0xEA,0x04,0x88,0xC3,0x5F,0x03,0x02,0xD7,0x17,0x00,0x70,0x0C,0x0F,0x01, +0x0C,0x0E,0x01,0xE4,0x00,0x00,0x69,0x08,0x6A,0x0B,0x41,0x8C,0x1B,0x88,0x8F,0x4C, +0x6C,0x0A,0x88,0xAE,0x8C,0x6B,0x88,0xED,0x0E,0x01,0x0A,0x0D,0xE1,0x0E,0x0D,0xC1, +0x12,0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26, +0x1C,0x21,0x28,0xE7,0xFF,0xFC,0xC9,0x0E,0x01,0x0A,0x0D,0xE1,0x0E,0x0D,0xC1,0x12, +0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26,0x1C, +0x21,0x28,0x85,0x29,0x1C,0x21,0x90,0x0D,0x41,0x68,0x0D,0x81,0x60,0x0D,0xA1,0x5C, +0x0D,0xE1,0x54,0x0E,0x01,0x50,0x0E,0x21,0x4C,0x0D,0x21,0x6C,0xC2,0x20,0x10,0x01, +0x0D,0x61,0x64,0x0D,0xC1,0x58,0x0E,0x41,0x48,0x0E,0x61,0x44,0x0E,0x81,0x40,0x0E, +0xA1,0x3C,0x0E,0xC1,0x38,0x89,0xA3,0x8A,0x04,0x89,0x85,0x5D,0xE6,0x00,0x99,0x40, +0xFE,0x31,0x0B,0xEC,0xE4,0x00,0x00,0xA1,0xCF,0x0A,0x00,0x30,0x8F,0x11,0x1E,0xE1, +0x20,0x10,0xB8,0x07,0x0B,0x98,0x17,0x43,0x2D,0x2C,0x4D,0x05,0x08,0x13,0x59,0x00, +0x1F,0x61,0x38,0x8D,0x1A,0x9F,0x41,0x4D,0x08,0x08,0x1B,0x59,0x00,0x8F,0x68,0x08, +0x78,0x17,0x0F,0x9B,0xD9,0x1F,0x01,0x30,0x8F,0x08,0x88,0x8F,0x0F,0x01,0x00,0x1C, +0xC1,0x18,0x1C,0xE1,0x28,0x8C,0xC8,0x8C,0xE8,0x9D,0x41,0x8D,0x17,0x5D,0x4A,0x00, +0xE7,0xFF,0xFD,0x1E,0x12,0xF1,0x00,0xD6,0xEA,0xFD,0x8D,0xC2,0xE0,0x10,0x01,0x8B, +0x10,0xF2,0x57,0x04,0x64,0x9B,0x41,0x8A,0xED,0xE4,0x00,0x00,0x23,0x13,0x37,0x00, +0x27,0x24,0x19,0x0F,0x58,0x00,0x9E,0xE1,0x9F,0x04,0x43,0x37,0x6D,0x5F,0x39,0x00, +0xD6,0x59,0xFF,0x6D,0x99,0x60,0xC2,0x60,0x10,0x01,0x89,0x4B,0xC2,0x80,0x10,0x01, +0xE4,0x00,0x03,0x07,0x42,0xF0,0x5C,0x0E,0xF7,0x02,0x22,0xE0,0x48,0x1E,0xE1,0x10, +0x8E,0xEB,0x0B,0x57,0x00,0x0B,0x77,0x02,0xE4,0x00,0x01,0x5D,0x42,0xED,0x54,0x12, +0xF7,0x00,0x22,0xE1,0xE0,0x1E,0xE1,0x18,0x8E,0xEB,0x0B,0x17,0x00,0x1E,0xE1,0x28, +0x8E,0xEB,0x0A,0xF7,0x00,0x8E,0xF8,0x1F,0x01,0x30,0x8F,0x0B,0x0B,0x18,0x00,0x8E, +0xF8,0x1F,0x01,0x20,0x8F,0x0B,0x0B,0x18,0x00,0x8E,0xF8,0x9B,0x04,0x42,0xF7,0xC0, +0x0E,0xEC,0x00,0xE4,0x00,0x02,0x55,0xCE,0xEE,0x00,0x30,0x8E,0xF1,0x41,0x0E,0xCC, +0x08,0x77,0x17,0x4D,0x08,0x08,0x1E,0xE1,0x30,0x8E,0xE8,0x0E,0xE1,0x00,0x1E,0xE1, +0x20,0x0F,0x01,0x0C,0x0F,0x21,0x08,0x88,0x8F,0x88,0xB5,0x1C,0xC1,0x18,0x1C,0xE1, +0x28,0x8C,0xC8,0x8C,0xE8,0x8D,0x17,0xE7,0xFF,0xFB,0x90,0x9D,0xC1,0x0F,0x01,0x0E, +0x5D,0xCE,0x00,0x0F,0x21,0x0A,0xE4,0x00,0x00,0x23,0x9A,0xC1,0x99,0xC0,0x42,0xD6, +0x55,0x4F,0x2A,0x08,0x43,0x0D,0xB4,0x12,0xF8,0x00,0xD6,0xEE,0xFD,0x6D,0x4E,0xD6, +0x10,0x43,0x10,0xB4,0x0F,0x18,0x02,0xD3,0x00,0x05,0x0A,0x1F,0x01,0x38,0x8E,0xD8, +0x0B,0x56,0xD8,0x0B,0x76,0xDA,0x43,0x3A,0xDD,0x5F,0x39,0x06,0x4E,0xF9,0xFA,0xEB, +0x93,0x04,0x5B,0x47,0x37,0xCE,0x43,0x39,0xBD,0x52,0xE0,0x64,0x5F,0x39,0x06,0xD7, +0x3C,0x00,0xF4,0xEB,0x14,0x04,0x59,0x9A,0xE0,0xD7,0x19,0x00,0xA4,0x42,0xF9,0xC5, +0x43,0x1C,0xC5,0xCE,0xF7,0x00,0x64,0x42,0xF7,0xC0,0x5E,0xF7,0x00,0x5F,0x7A,0x15, +0x4B,0x81,0x01,0x4F,0x2A,0x08,0x4B,0x00,0x0A,0x8F,0x19,0x8F,0x3C,0x1F,0x81,0x38, +0x1F,0x41,0x38,0x53,0x60,0xC8,0x4F,0x39,0x08,0x43,0x7B,0xBD,0x8F,0x3C,0x0B,0x99, +0xE0,0x4F,0x18,0x08,0x8F,0x1A,0x0B,0xB8,0xE8,0x0B,0x58,0xF8,0x8F,0x5D,0x8F,0x5C, +0x0B,0x99,0xF0,0x8F,0x5C,0x43,0x5B,0xD3,0x0B,0x79,0xE8,0x0B,0x39,0xF8,0x8F,0x79, +0x0B,0x38,0xE0,0x8F,0x79,0x0B,0x38,0xF0,0x43,0x1B,0xCC,0x42,0xF7,0xC3,0xCB,0x00, +0x03,0x20,0x8E,0xFA,0xE7,0xFF,0xFD,0xF3,0x22,0xE0,0x88,0x1F,0x01,0x38,0x4E,0xEA, +0x10,0x8E,0xF8,0x0B,0x17,0xF0,0x0B,0x37,0xE0,0x8F,0x38,0x0B,0x17,0xF8,0x8F,0x38, +0x0B,0x17,0xE8,0x42,0xF9,0xC4,0xE7,0xFF,0xFD,0xAB,0x0C,0x0C,0x00,0x9D,0x41,0x9D, +0x84,0x9D,0x64,0x5E,0xAA,0x00,0xD6,0x55,0xF3,0xF5,0x0E,0xC1,0x3A,0x0E,0xA1,0x3E, +0x0E,0x81,0x42,0x0E,0x61,0x46,0x0E,0x41,0x4A,0x0E,0x21,0x4E,0x0E,0x01,0x52,0x0D, +0xE1,0x56,0x0D,0xC1,0x5A,0x0D,0xA1,0x5E,0x0D,0x81,0x62,0x0D,0x61,0x66,0x0D,0x41, +0x6A,0x0D,0x21,0x6E,0x1C,0x21,0x70,0x85,0x29,0x1C,0x21,0xE8,0x0D,0x41,0x10,0x0D, +0x61,0x0C,0x0D,0x81,0x08,0x0D,0xA1,0x04,0x0D,0x21,0x14,0x89,0xA3,0xC2,0xE0,0x10, +0x01,0x5C,0x64,0x06,0xEA,0xF7,0x08,0x9F,0x5D,0x85,0x00,0x5D,0x66,0x00,0x5D,0x47, +0x00,0x56,0xF7,0x04,0x22,0xE0,0x34,0x88,0x8C,0x88,0xAB,0x88,0xCA,0xE7,0xFF,0xE0, +0xEC,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x0B,0x7A,0x43,0x0A,0xC3,0x5F,0x18,0x00,0x9B, +0x20,0x42,0xF8,0x64,0x8D,0x78,0xC3,0x40,0x10,0x01,0x5D,0x6B,0x00,0x5E,0xF7,0x00, +0x8B,0x19,0xFF,0x5A,0x09,0x68,0xE4,0x00,0x00,0x3B,0x4F,0x77,0x10,0x8F,0x7A,0x0B, +0x7B,0x02,0x8F,0x1B,0x4F,0x77,0x10,0x9E,0xE1,0x8F,0x7A,0x5E,0xF7,0x00,0x0B,0x7B, +0x00,0x8F,0x3B,0xD6,0xEB,0xFF,0x38,0x27,0x21,0x14,0x27,0x01,0x08,0xC2,0xE0,0x10, +0x01,0xFE,0xF7,0x01,0x64,0x4F,0x39,0x40,0x9D,0x44,0x4D,0x4A,0x10,0x8D,0x57,0x0A, +0xEA,0x06,0x43,0x19,0xC0,0x9B,0x4A,0xFF,0x18,0xFF,0x00,0x53,0x20,0x64,0x43,0x18, +0xBB,0x0A,0xEA,0x04,0x43,0x18,0xD0,0x4E,0xF7,0x40,0x42,0xF7,0xC8,0x8E,0xF8,0x5E, +0xE0,0x09,0x0E,0xED,0x00,0x48,0x61,0x01,0xE4,0x00,0x00,0x0D,0x98,0x60,0x0D,0xA1, +0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18, +0x85,0x29,0xCA,0xE0,0x01,0x00,0xFC,0x21,0xFF,0x80,0x5C,0xE7,0x00,0x0D,0x41,0x78, +0x0D,0x61,0x74,0x0D,0x81,0x70,0x0E,0x21,0x5C,0x0E,0x41,0x58,0x0E,0x61,0x54,0x0E, +0x81,0x50,0x0E,0xA1,0x4C,0x0E,0xC1,0x48,0x0D,0x21,0x7C,0x0D,0xA1,0x6C,0x0D,0xC1, +0x68,0x0D,0xE1,0x64,0x0E,0x01,0x60,0xCE,0x44,0x00,0x0A,0x42,0x52,0x1B,0x42,0x52, +0xB8,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x76,0x11,0xD7,0x04,0x41,0x87,0x73,0x5F, +0x0C,0x00,0xCC,0x84,0x0A,0x00,0x8C,0xB8,0x8C,0xD8,0xC2,0xA0,0x10,0x01,0xC2,0x20, +0x10,0x01,0xC1,0x60,0x10,0x01,0xC3,0x00,0x10,0x01,0xFD,0x6B,0x09,0x68,0x42,0x64, +0x18,0x5E,0x86,0x00,0x09,0xF7,0x0B,0x12,0x17,0x0C,0x5D,0x45,0x00,0xFE,0xB5,0x01, +0x64,0xFE,0x31,0x04,0x1C,0x8A,0xCB,0xFF,0x18,0x0A,0x18,0xE4,0x00,0x01,0x61,0x0F, +0x01,0x04,0x88,0x95,0x50,0xA0,0x3C,0x1C,0x61,0x08,0xE4,0x00,0x2C,0xFE,0x41,0xAA, +0x65,0x1E,0xED,0x01,0x4E,0xF7,0x08,0x8E,0xF1,0x98,0x82,0x08,0x77,0x00,0x1C,0xA1, +0x08,0x40,0x63,0x7B,0x40,0x63,0x80,0xE7,0xFF,0xF1,0x44,0x0F,0x01,0x06,0x5C,0x63, +0x04,0xD5,0x4C,0x00,0x5E,0x1E,0xEE,0xFF,0xD5,0xB7,0x01,0x92,0xCB,0x20,0x03,0xE8, +0x43,0x43,0x9B,0x4E,0xEA,0x10,0x43,0x63,0x93,0x9E,0xE2,0x43,0x7B,0xC8,0x8E,0xEB, +0x0B,0x97,0x01,0x43,0x7C,0xDD,0x0F,0x77,0x01,0x43,0x3A,0xC8,0x4E,0xEA,0x10,0x8E, +0xEB,0x0B,0x57,0x01,0x43,0x3A,0xCD,0x0F,0x37,0x01,0x4E,0xEA,0x08,0x1F,0x37,0x01, +0x4F,0x59,0x08,0x8F,0x4B,0x0B,0x7A,0x00,0x27,0x7C,0x1A,0x0C,0x1A,0x01,0x4F,0x57, +0x08,0x8F,0x56,0x0B,0x7A,0x00,0x27,0x7C,0x1A,0x0C,0x1A,0x01,0x4E,0xF7,0x08,0x8E, +0xEB,0x4F,0x4A,0x10,0x0B,0x77,0x00,0x8F,0x58,0x4F,0x39,0x08,0x9D,0x41,0x8F,0x2B, +0x5D,0x4A,0x00,0x0A,0xF9,0x00,0x8E,0xFB,0x0E,0xFA,0x00,0xD5,0x54,0xFA,0xA0,0x0E, +0xC1,0x4A,0x0E,0xA1,0x4E,0x0E,0x81,0x52,0x0E,0x61,0x56,0x0E,0x41,0x5A,0x0E,0x21, +0x5E,0x0E,0x01,0x62,0x0D,0xE1,0x66,0x0D,0xC1,0x6A,0x0D,0xA1,0x6E,0x0D,0x81,0x72, +0x0D,0x61,0x76,0x0D,0x41,0x7A,0x0D,0x21,0x7E,0xFC,0x21,0x00,0x80,0x85,0x29,0x1C, +0x21,0xB8,0x98,0x60,0x0D,0x21,0x44,0x0D,0x41,0x40,0x0D,0x61,0x3C,0x0D,0x81,0x38, +0x0D,0xA1,0x34,0x0D,0xC1,0x30,0x0D,0xE1,0x2C,0x0E,0x01,0x28,0x0E,0x21,0x24,0x0E, +0x41,0x20,0x0E,0x61,0x1C,0x0E,0x81,0x18,0x0C,0x01,0x08,0x0C,0x01,0x0C,0x18,0x01, +0x02,0x18,0x01,0x03,0x0C,0x01,0x10,0x0C,0x01,0x14,0xE7,0xFF,0xD3,0x4C,0x1C,0x61, +0x02,0x1C,0x81,0x10,0x1C,0xA1,0x08,0x98,0xC4,0xE7,0xFF,0xF5,0xD6,0xC2,0xE0,0x10, +0x01,0xF3,0x97,0x04,0x64,0xC2,0xE0,0x10,0x01,0xEB,0xB7,0x08,0x87,0xC2,0xE0,0x10, +0x01,0xEF,0x77,0x04,0x56,0xC2,0xE0,0x10,0x01,0x57,0xBD,0x20,0xEF,0xD7,0x04,0x62, +0xC3,0x20,0x10,0x01,0x4F,0xBD,0x29,0x1E,0xE1,0x08,0xFF,0x39,0x01,0x84,0x9B,0x40, +0xE4,0x00,0x00,0x63,0x0F,0x17,0x02,0x09,0x19,0xFC,0x0F,0x19,0x00,0x43,0x18,0x45, +0x5F,0x1F,0xF9,0x4B,0x18,0x00,0x0F,0x17,0x00,0x23,0xA0,0x3C,0x23,0x60,0x30,0x43, +0x18,0xF3,0x43,0x18,0xD8,0x0F,0x17,0x00,0x9F,0x41,0x9E,0xE4,0x5F,0x5A,0x00,0x9F, +0x28,0xD7,0x5C,0xFE,0x9E,0x98,0x61,0x99,0x60,0xC2,0x20,0x10,0x01,0xC2,0x80,0x10, +0x01,0xE7,0xFF,0xD2,0x3E,0x89,0x4B,0xFD,0xB1,0x0B,0xEC,0x9A,0x41,0xC2,0x60,0x10, +0x01,0xFE,0x94,0x0C,0xB8,0xE4,0x00,0x00,0xF9,0xCE,0x0A,0x00,0x30,0x42,0xF0,0x6C, +0x1C,0x61,0x04,0x11,0xF7,0x04,0x11,0xD7,0x05,0x11,0x97,0x07,0x08,0x97,0x17,0x88, +0xAF,0x88,0xCE,0x88,0xEC,0xE7,0xFF,0xF9,0x88,0x20,0x60,0xF8,0x98,0x60,0xE7,0xFF, +0xD1,0xC4,0x1F,0x01,0x18,0x4E,0xEC,0x10,0x8E,0xF8,0x88,0xAF,0x0C,0x97,0xF2,0x88, +0xCE,0x88,0xEC,0x0C,0x61,0x06,0xE7,0xFF,0xFA,0xF8,0x98,0x61,0xE7,0xFF,0xD1,0x88, +0x40,0x6D,0x84,0x88,0xAF,0x88,0x83,0x88,0xCE,0x1C,0x63,0x18,0x9C,0x8C,0x88,0xEC, +0xE7,0xFF,0xD4,0x42,0x20,0x60,0x32,0x4E,0xF2,0x54,0x45,0x6B,0xBD,0x5D,0x6B,0x00, +0x88,0x74,0xF0,0x93,0x0B,0x76,0x98,0xA1,0x9D,0x41,0xE4,0x00,0x81,0xA6,0x5D,0x4A, +0x00,0xF2,0xF1,0x0B,0xEC,0xD6,0xEA,0xFC,0x25,0x88,0x6B,0xE7,0xFF,0xD7,0xB0,0x0D, +0x21,0x46,0x0E,0x81,0x1A,0x0E,0x61,0x1E,0x0E,0x41,0x22,0x0E,0x21,0x26,0x0E,0x01, +0x2A,0x0D,0xE1,0x2E,0x0D,0xC1,0x32,0x0D,0xA1,0x36,0x0D,0x81,0x3A,0x0D,0x61,0x3E, +0x0D,0x41,0x42,0x1C,0x21,0x48,0x85,0x29,0xFC,0x21,0xFF,0x00,0x98,0xA0,0xED,0x41, +0x00,0xF8,0xED,0x61,0x00,0xF4,0xED,0xC1,0x00,0xE8,0xED,0xE1,0x00,0xE4,0xEE,0x01, +0x00,0xE0,0xEE,0x21,0x00,0xDC,0xEE,0x41,0x00,0xD8,0xEE,0x61,0x00,0xD4,0xED,0x21, +0x00,0xFC,0xED,0x81,0x00,0xF0,0xED,0xA1,0x00,0xEC,0xEE,0x81,0x00,0xD0,0xEE,0xA1, +0x00,0xCC,0xEE,0xC1,0x00,0xC8,0xC2,0x20,0x10,0x01,0xC2,0x60,0x10,0x01,0xFE,0x31, +0x0C,0xB8,0xFD,0x73,0x0B,0x76,0x88,0x71,0x10,0x8B,0x00,0xE4,0x00,0x80,0x84,0xC2, +0xE0,0x10,0x01,0xEA,0xF7,0x08,0x8B,0xC6,0xF7,0x02,0x00,0xC2,0x40,0x10,0x01,0x5E, +0xE0,0x01,0xC1,0xE0,0x10,0x01,0x4A,0xE1,0x13,0xC1,0x40,0x10,0x01,0xC1,0xC0,0x10, +0x01,0x0E,0xE1,0x0C,0x9A,0x00,0xFE,0x52,0x01,0x64,0xFD,0xEF,0x09,0x68,0xFD,0x4A, +0x0A,0x18,0xFD,0xCE,0x0B,0xEC,0x98,0x60,0x0C,0x01,0x58,0x0C,0x01,0x5C,0x18,0x01, +0x56,0x18,0x01,0x57,0x0C,0x01,0x60,0x0C,0x01,0x64,0xE7,0xFF,0xCF,0x6C,0x1C,0x61, +0x56,0x1C,0x81,0x60,0x1C,0xA1,0x58,0x98,0xC3,0xE7,0xFF,0xF1,0xF6,0xC2,0xE0,0x10, +0x01,0xEB,0x97,0x08,0x87,0xC2,0xE0,0x10,0x01,0xC3,0x20,0x10,0x01,0xEF,0x77,0x04, +0x56,0xC2,0xE0,0x10,0x01,0xF3,0x59,0x04,0x64,0x57,0x9C,0x20,0xEF,0xB7,0x04,0x62, +0x4F,0x9C,0x29,0x1E,0xE1,0x58,0x9B,0x20,0xE4,0x00,0x00,0x5D,0x0F,0xD7,0x02,0x4F, +0x19,0x18,0x8F,0x12,0x0B,0x18,0x1C,0x43,0x1E,0xC5,0x5F,0x1F,0xF9,0x4B,0x18,0x00, +0x0F,0x17,0x00,0x23,0x80,0x3C,0x23,0x60,0x30,0x43,0x18,0xEB,0x43,0x18,0xD8,0x0F, +0x17,0x00,0x9F,0x21,0x9E,0xE4,0x5F,0x19,0x00,0xD7,0x58,0xFE,0x9D,0x13,0x0B,0x04, +0x09,0xAB,0x0B,0x12,0x8B,0x0C,0x9A,0xA0,0xE4,0x00,0x01,0xA1,0xFE,0xE1,0x00,0xC8, +0x8E,0xF5,0x12,0xF7,0x8E,0x22,0xE0,0x72,0xFF,0x61,0x00,0xC8,0x9A,0xE1,0x42,0xF7, +0xAD,0x4E,0xF7,0x10,0x8E,0xFB,0x0F,0x37,0x92,0x4E,0xF5,0x10,0x8E,0xFB,0x0F,0x37, +0x90,0x41,0x95,0xC3,0x1F,0xB5,0x01,0x5E,0xCC,0x00,0x43,0xBD,0xC3,0xE4,0x00,0x01, +0x25,0x0F,0x01,0x00,0x0F,0x41,0x04,0x0F,0xA1,0x08,0x88,0x92,0x50,0xA0,0x3C,0x1C, +0x61,0x10,0xE4,0x00,0x25,0x6E,0x42,0xF6,0x65,0xC3,0x80,0x10,0x01,0x9E,0xE1,0xFF, +0x9C,0x04,0x1C,0x4E,0xF7,0x08,0x8E,0xFC,0x98,0x81,0x08,0x77,0x00,0x1C,0xA1,0x10, +0x40,0x63,0x6B,0x40,0x63,0xA0,0xE7,0xFF,0xE9,0xA6,0x53,0x60,0x64,0x4E,0xF6,0x10, +0x5C,0x63,0x04,0x4F,0x35,0x10,0xFD,0x21,0x00,0xC8,0x9E,0xE2,0x8F,0x29,0x8E,0xEF, +0x0F,0x39,0x92,0x43,0x23,0xCB,0x43,0x39,0xD8,0x0B,0x77,0x01,0x5F,0x39,0x04,0x43, +0x7B,0xCD,0x0F,0x77,0x01,0x0F,0xA1,0x0A,0x4F,0x76,0x10,0x0F,0x41,0x06,0x43,0x9B, +0x7C,0x9E,0xC1,0x0B,0xDC,0x01,0x8F,0x6A,0x43,0x3E,0xCD,0x5E,0xD6,0x00,0x5F,0x39, +0x06,0x0F,0x01,0x02,0x0F,0x3C,0x01,0x0A,0xF7,0x00,0x8F,0x37,0x0F,0x3B,0x00,0xD7, +0xB6,0xFB,0x94,0x9E,0xA1,0x5E,0xB5,0x00,0xD7,0x55,0xF9,0xA5,0x98,0x61,0xE7,0xFF, +0xCC,0xC4,0x13,0x6B,0x04,0x13,0x4B,0x01,0xC3,0x00,0x10,0x01,0x43,0x5A,0xDB,0x9A, +0xE0,0xFF,0x18,0x0D,0x2C,0xE4,0x00,0x00,0x4F,0x4F,0x37,0x10,0x43,0x99,0xC4,0x8F, +0x2F,0x0B,0x39,0x01,0x0F,0x3C,0x01,0x4F,0x37,0x10,0x9E,0xE1,0x9F,0x22,0x5E,0xF7, +0x00,0x43,0x99,0xC4,0x8F,0x2F,0x0B,0x39,0x01,0x0F,0x3C,0x01,0xD7,0x57,0xFE,0xEC, +0xC3,0x20,0x10,0x01,0x12,0x8E,0x00,0xFF,0x39,0x0B,0xF2,0x9B,0xA0,0x8B,0x19,0x8B, +0xCA,0xE4,0x00,0x01,0x3D,0x1F,0x98,0x02,0x12,0xF8,0xFE,0x12,0xB8,0xFF,0x11,0x98, +0x01,0x13,0x58,0x00,0x0D,0x1C,0x02,0x21,0x04,0x5E,0x43,0x8C,0xDB,0x8F,0x9A,0x4F, +0x9C,0x10,0x8F,0x8A,0x0F,0x9C,0x02,0x41,0x8C,0xDB,0xE4,0x00,0x00,0xCD,0x4D,0xBA, +0x10,0x43,0x9A,0xDC,0x8D,0xAA,0x4F,0x9C,0x10,0x0D,0xAD,0x02,0x8F,0x8A,0x0F,0x9C, +0x02,0x8F,0x8D,0xE7,0xFF,0xFF,0xC9,0x21,0x04,0x5A,0x41,0xB7,0x64,0x4D,0xAD,0x10, +0x8D,0xAA,0x0D,0xAD,0x02,0xD5,0xBC,0x01,0x94,0xE4,0x00,0x00,0x65,0x4D,0xB7,0x10, +0x42,0xD7,0xDC,0x8D,0xBE,0x4E,0xD6,0x10,0x0D,0xAD,0x02,0x8E,0xDE,0x0E,0xD6,0x02, +0x8E,0xCD,0xD6,0xDC,0x00,0xC8,0x43,0x57,0x64,0x4F,0x5A,0x10,0x8F,0x5E,0x0F,0x9A, +0x02,0x8F,0x8D,0xE4,0x00,0x00,0x0D,0x8B,0x8D,0x8B,0x57,0x9E,0xE1,0x5E,0xF7,0x00, +0xD6,0xF5,0xFD,0xB8,0x1B,0x58,0x00,0x9F,0xA1,0x1F,0x18,0x30,0x5F,0xBD,0x00,0xD7, +0xB4,0xFB,0x36,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x0B,0x7A,0xC2,0xE0,0x10,0x01,0x1F, +0x98,0xFF,0xF3,0x57,0x04,0x50,0x1F,0xB8,0xFD,0xC2,0xE0,0x10,0x01,0x1E,0xB8,0xFC, +0x11,0x8E,0x00,0x5D,0x1C,0x00,0x1D,0xB8,0xFE,0xFE,0xF7,0x0B,0xF1,0x9B,0x60,0x8A, +0x9C,0x5F,0xBD,0x00,0x5E,0xB5,0x00,0x9A,0xC2,0x1C,0x78,0xFD,0xE4,0x00,0x00,0xEB, +0x13,0x17,0x01,0xD7,0x1C,0x00,0x76,0x19,0x17,0x00,0x18,0x77,0xFF,0xE4,0x00,0x00, +0xB9,0x23,0x00,0x36,0x1A,0xD7,0x00,0x18,0x17,0xFF,0xE4,0x00,0x00,0x9F,0x23,0x04, +0x56,0x5F,0x40,0x29,0x9F,0x1F,0x4B,0xC2,0x1B,0x1B,0x17,0xFF,0x1B,0xD7,0x00,0xE4, +0x00,0x00,0x75,0xD7,0x0D,0x00,0x8E,0x5F,0x40,0x29,0x1A,0x97,0x00,0x4B,0xDD,0xA8, +0xE4,0x00,0x00,0x4D,0x1F,0xD8,0x01,0x5F,0xDE,0x00,0x23,0x44,0x22,0x9F,0x02,0x5F, +0xD8,0x00,0x1B,0xD7,0x00,0x13,0xD7,0x01,0x23,0x44,0x26,0x9F,0xDE,0xE4,0x00,0x00, +0x0D,0x9F,0xDF,0x5F,0xDE,0x00,0x1B,0xD7,0xFF,0x9F,0x61,0x1E,0xF7,0x30,0x5F,0x7B, +0x00,0xD7,0x6C,0xFC,0x7E,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x8B,0x56,0xF7,0x08, +0xD2,0xE0,0x08,0x6A,0xC2,0xE0,0x10,0x01,0x9B,0x00,0xF3,0x57,0x0B,0x7A,0x9B,0xA0, +0xC2,0xE0,0x10,0x01,0x1E,0xDA,0xFE,0xEA,0x97,0x01,0x56,0x8B,0x78,0x8B,0x9D,0x98, +0x60,0x9A,0xA1,0xE4,0x00,0x01,0xBF,0x12,0xF9,0x00,0xD2,0xE1,0x06,0x99,0xD6,0xD7, +0x06,0x78,0x1D,0x17,0xFF,0x1D,0xB7,0x01,0x1D,0x39,0x02,0x5D,0x08,0x00,0x5D,0xAD, +0x00,0x0F,0xC9,0x02,0x23,0xC4,0xDE,0x13,0x79,0x01,0x43,0x7A,0xDB,0x5F,0x7B,0x00, +0x8D,0xBB,0x8D,0x1B,0x8E,0xFB,0x4D,0xAD,0x10,0x4D,0x08,0x10,0x8D,0xAA,0x8D,0x0A, +0x0F,0xAD,0x02,0x0F,0x88,0x02,0x4E,0xF7,0x10,0x5F,0xBC,0x15,0x8E,0xEA,0x4B,0x9D, +0xE0,0x0F,0x77,0x02,0x5F,0x9C,0x06,0xE4,0x00,0x00,0xCD,0x23,0xC9,0xA2,0x13,0x79, +0x01,0x43,0xBB,0xD3,0x5F,0xBD,0x00,0x43,0x8D,0xEC,0x4F,0x9C,0x10,0x8F,0x8A,0x43, +0x75,0xDD,0x0F,0xDC,0x02,0x43,0x7A,0xDB,0x5F,0x7B,0x00,0x8D,0xBB,0x4D,0xAD,0x10, +0x8D,0xAA,0x0F,0x8D,0x02,0x8F,0xDC,0x43,0x88,0xEC,0x4F,0x9C,0x10,0x8F,0x8A,0x8D, +0x1B,0x0D,0xBC,0x02,0x8F,0xB7,0x4D,0x08,0x10,0x8E,0xFB,0x8D,0x0A,0x4F,0xBD,0x10, +0x0F,0x88,0x02,0x8F,0xAA,0x8F,0x8D,0x4E,0xF7,0x10,0x5F,0xDC,0x15,0x8E,0xEA,0x4B, +0x9E,0xE0,0x0F,0x7D,0x02,0x0E,0xF7,0x02,0x5F,0x9C,0x06,0x8F,0x77,0x8B,0xB4,0xE4, +0x00,0x00,0x0F,0x23,0xC0,0x68,0xC3,0x60,0x7C,0xEC,0x20,0x00,0x4D,0x42,0xFB,0xE5, +0xD7,0xB7,0x00,0x68,0x4E,0xF5,0xC4,0x44,0x63,0xBD,0x5C,0x63,0x00,0x9F,0x01,0x1F, +0x39,0x30,0x5E,0xF8,0x00,0xD5,0x97,0xF9,0x15,0xE7,0xFF,0xCD,0xF4,0x1E,0xC1,0x68, +0x10,0x8B,0x00,0x88,0x76,0x98,0xA0,0x99,0xA0,0xE4,0x00,0x77,0xA8,0x89,0x8D,0xC2, +0x80,0x10,0x01,0xE4,0x00,0x01,0x3F,0xCC,0x6C,0x00,0x30,0xEB,0x74,0x08,0x9F,0x42, +0xA3,0x74,0x57,0x7B,0x02,0x13,0x55,0x04,0x13,0x35,0x05,0x13,0x15,0x07,0x23,0x61, +0x54,0x88,0x9A,0x88,0xB9,0x88,0xD8,0x0F,0x01,0x00,0x0F,0x21,0x08,0x0F,0x41,0x04, +0x1C,0x61,0x52,0x98,0xE1,0xE7,0xFF,0xD2,0xE4,0x0F,0x01,0x02,0x0F,0x21,0x0A,0x0F, +0x41,0x06,0x20,0x61,0x14,0x1C,0x61,0x54,0x88,0x9A,0x88,0xB9,0x88,0xD8,0x98,0xE1, +0xE7,0xFF,0xD4,0x54,0x20,0x60,0xCC,0x0B,0x21,0x52,0x0B,0x01,0x54,0xCF,0x39,0x00, +0x07,0xCF,0x18,0x00,0x03,0x9A,0xEA,0x8F,0x19,0x43,0x18,0xB8,0x0F,0x15,0x17,0xE4, +0x00,0x00,0x47,0x8C,0x6E,0x88,0x9A,0x1C,0x63,0x16,0x88,0xB9,0x88,0xD8,0x98,0xE1, +0xE7,0xFF,0xD2,0x4E,0x20,0x60,0x3A,0x9A,0xE1,0x4E,0xF7,0x64,0x45,0xAD,0xBD,0x5D, +0xAD,0x00,0x88,0x76,0x10,0x8B,0x00,0x98,0xA1,0x9D,0x81,0xE4,0x00,0x76,0x64,0x5D, +0x8C,0x00,0x12,0xEE,0x00,0xD6,0xEC,0xFB,0x15,0x88,0x6D,0xE7,0xFF,0xCC,0x70,0x9E, +0x01,0x0F,0x21,0x0E,0x5E,0x10,0x00,0xD7,0x30,0xD8,0x7D,0x88,0x71,0x10,0x8B,0x00, +0x98,0xA1,0xE4,0x00,0x76,0x16,0xED,0x21,0x00,0xFE,0xEE,0xC1,0x00,0xCA,0xEE,0xA1, +0x00,0xCE,0xEE,0x81,0x00,0xD2,0xEE,0x61,0x00,0xD6,0xEE,0x41,0x00,0xDA,0xEE,0x21, +0x00,0xDE,0xEE,0x01,0x00,0xE2,0xED,0xE1,0x00,0xE6,0xED,0xC1,0x00,0xEA,0xED,0xA1, +0x00,0xEE,0xED,0x81,0x00,0xF2,0xED,0x61,0x00,0xF6,0xED,0x41,0x00,0xFA,0xFC,0x21, +0x01,0x00,0x85,0x29,0xC2,0xE0,0x10,0x01,0x1C,0x21,0xA0,0xF3,0x37,0x06,0xA8,0x0D, +0x41,0x5C,0x9A,0xE0,0xE4,0x00,0x00,0x23,0x4F,0x17,0x10,0x1D,0x41,0x00,0x9E,0xE1, +0x8F,0x0A,0x0C,0x18,0x00,0x5F,0x17,0x00,0xD7,0x38,0xFF,0x85,0xC2,0xE0,0x10,0x01, +0xC3,0x60,0x10,0x01,0xEB,0x57,0x04,0x93,0x1D,0x19,0xFF,0x9A,0xE0,0xFF,0x7B,0x04, +0xC8,0xE4,0x00,0x00,0xFB,0x9B,0x80,0xD6,0xE8,0x00,0x4A,0x9F,0x01,0x5F,0x98,0x00, +0x9B,0x00,0x4F,0xB7,0x28,0x4F,0x9C,0x28,0xE4,0x00,0x00,0x5B,0x4F,0xD8,0x08,0x40, +0xDD,0xC4,0x40,0xBC,0xC4,0x1D,0x41,0x58,0x4C,0xC6,0x08,0x8F,0xCA,0x8C,0xDB,0x4C, +0xA5,0x08,0x08,0xC6,0x01,0x8C,0xBB,0x9F,0x01,0x08,0xA5,0x01,0x5F,0x18,0x00,0x40, +0xA6,0x2D,0x0C,0xBE,0xC1,0xD7,0x58,0xFE,0xBD,0x4F,0x97,0x10,0x1F,0xA1,0x58,0x9B, +0x00,0x8F,0x9D,0xE4,0x00,0x00,0x4B,0x4F,0xB8,0x08,0x1F,0xC1,0x58,0x8F,0xBE,0x0C, +0xBC,0xAA,0x0B,0xDD,0xC0,0x9F,0x01,0x4F,0xBE,0xFA,0x5F,0x18,0x00,0x47,0xDD,0xF6, +0x43,0xBE,0xED,0x8F,0xA5,0x0F,0xBC,0xA8,0xD7,0x58,0xFE,0xFD,0x9E,0xE1,0x5F,0x17, +0x00,0xD7,0x38,0xFC,0x25,0x0F,0x41,0x02,0x1F,0x61,0x04,0x9B,0x01,0x9A,0xE0,0xE4, +0x00,0x00,0x39,0x0F,0x9B,0x02,0xD7,0x5C,0x00,0x55,0x8B,0x9A,0xE4,0x00,0x00,0x0D, +0x8A,0xF8,0x9F,0x01,0x9F,0x64,0x5F,0x18,0x00,0x8B,0x5C,0xD7,0x38,0xFF,0x45,0x9F, +0x3F,0xD6,0xF9,0x00,0x76,0x1A,0xE3,0x00,0x18,0x04,0x00,0xE4,0x00,0x00,0x21,0xD7, +0x37,0x00,0x60,0x1A,0xE3,0x00,0x9E,0xE1,0x1A,0xE4,0x00,0x0D,0x41,0x5E,0x1C,0x21, +0x60,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF3,0xB7,0x06,0xA8,0xC2,0xE0,0x10,0x01,0xF3, +0xD7,0x04,0x88,0xC2,0xE0,0x10,0x01,0xC3,0x40,0x10,0x01,0xE9,0x17,0x04,0x93,0xC3, +0x20,0x10,0x01,0x9A,0xE0,0xFF,0x5A,0x04,0xC8,0xFF,0x39,0x06,0x48,0xE4,0x00,0x00, +0xAB,0x4C,0x78,0x08,0x4C,0x98,0x18,0x8C,0x7B,0x8C,0x9C,0x9F,0x01,0x08,0x84,0x01, +0x0C,0x83,0x01,0x5C,0x78,0x00,0xD7,0xC3,0xFF,0x5D,0x9B,0x00,0x4F,0x97,0x28,0x4C, +0x77,0x18,0xE4,0x00,0x00,0x4F,0x43,0x7C,0xC4,0x4C,0x98,0x11,0x4F,0x7B,0x08,0x8C, +0x83,0x8F,0x7A,0x4C,0x84,0x08,0x08,0xBB,0x01,0x8C,0x99,0x9F,0x01,0x08,0x84,0x01, +0x5F,0x18,0x00,0x40,0x85,0x25,0x0C,0x9B,0x01,0xD5,0x18,0xFE,0xED,0x9E,0xE1,0x5E, +0xF7,0x00,0xD6,0xFD,0x00,0xA2,0x4F,0x97,0x30,0x4F,0x77,0x20,0x8F,0x9A,0x8F,0x79, +0x9B,0x00,0xE7,0xFF,0xFF,0x63,0x85,0x29,0xC2,0xE0,0x10,0x01,0x5C,0x63,0x00,0x5C, +0x84,0x00,0xEB,0x97,0x04,0x93,0xC3,0x00,0x10,0x01,0x4F,0xA3,0x28,0xC3,0x20,0x10, +0x01,0x4F,0xC4,0x28,0x9A,0xE0,0xFF,0x18,0x04,0xC8,0xFF,0x39,0x06,0x48,0x4C,0x63, +0x18,0x4C,0x84,0x18,0xE4,0x00,0x00,0x83,0x4F,0x77,0x11,0x41,0x03,0xDC,0x4D,0x08, +0x08,0x8D,0x19,0x43,0x5D,0xBC,0x08,0xA8,0x01,0x4F,0x5A,0x08,0x8F,0x64,0x8F,0x58, +0x4F,0x7B,0x08,0x09,0x1A,0x01,0x8F,0x79,0x8D,0x05,0x0D,0x1A,0x01,0x43,0x5E,0xBC, +0x09,0x1B,0x01,0x4F,0x5A,0x08,0x9E,0xE1,0x8F,0x58,0x5E,0xF7,0x00,0x0B,0x7A,0x01, +0x8F,0x68,0x0F,0x7A,0x01,0xD7,0x97,0xFE,0x1D,0x85,0x29,0x20,0x60,0x2E,0xC2,0xE0, +0x10,0x01,0xEC,0x97,0x01,0x2C,0x85,0x29,0x20,0x60,0x4E,0xC2,0xE0,0x10,0x01,0xEC, +0x97,0x00,0xF4,0xC2,0xE0,0x10,0x01,0xEC,0xB7,0x01,0x28,0x85,0x29,0x20,0x60,0x5E, +0xC2,0xE0,0x10,0x01,0xEC,0x97,0x04,0x98,0xC2,0xE0,0x10,0x01,0xEC,0xB7,0x04,0x9C, +0xE4,0x00,0x00,0x5D,0x20,0x64,0x5E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x06,0xB4,0xC2, +0xE0,0x10,0x01,0xEC,0xB7,0x04,0xC4,0xE4,0x00,0x00,0x2F,0x20,0x68,0x4E,0xC2,0xE0, +0x10,0x01,0xEC,0x97,0x04,0xBC,0xC2,0xE0,0x10,0x01,0xEC,0xB7,0x04,0x8C,0x85,0x29, +0x20,0x68,0x2E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x04,0xB8,0x85,0x29,0x5C,0x84,0x04, +0x20,0x60,0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01,0x33,0xE4,0x00,0x00,0x3D,0x20, +0x64,0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01,0x15,0xE4,0x00,0x00,0x1F,0x20,0x68, +0x2E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01,0x39,0x85,0x29,0x5C,0x84,0x04,0x20,0x60, +0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x00,0xF9,0xE4,0x00,0x00,0x3D,0x20,0x64,0x3E, +0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01,0x31,0xE4,0x00,0x00,0x1F,0x20,0x68,0x2E,0xC2, +0xE0,0x10,0x01,0xEC,0x97,0x01,0x11,0x85,0x29,0x5C,0x84,0x04,0x20,0x68,0x2E,0xC2, +0xE0,0x10,0x01,0xEC,0x97,0x01,0x13,0x85,0x29,0x1C,0x21,0xC8,0x0D,0x21,0x34,0x0D, +0x41,0x30,0x0D,0x61,0x2C,0x0D,0x81,0x28,0x0D,0xA1,0x24,0x0D,0xC1,0x20,0x0D,0xE1, +0x1C,0x0E,0x01,0x18,0x0E,0x21,0x14,0x0E,0x41,0x10,0x0E,0x61,0x0C,0x0E,0x81,0x08, +0x0E,0xA1,0x04,0x0E,0xC1,0x00,0x20,0x65,0x70,0x20,0x60,0x4C,0xD0,0x62,0x04,0x42, +0x99,0xC0,0x89,0xEE,0xD0,0x63,0x06,0x66,0xE4,0x00,0x01,0x71,0xC2,0xE0,0x10,0x01, +0xEE,0xD7,0x00,0xF6,0xC2,0xE0,0x10,0x01,0xEE,0xB7,0x01,0x2A,0xC2,0xE0,0x10,0x01, +0xEE,0x97,0x04,0x9A,0xC2,0xE0,0x10,0x01,0xEE,0x77,0x04,0x9E,0xC2,0xE0,0x10,0x01, +0xE9,0xF7,0x01,0x33,0xC2,0xE0,0x10,0x01,0x9A,0x00,0xE9,0xD7,0x00,0xF9,0x99,0xA0, +0xC2,0xE0,0x10,0x01,0x9A,0x21,0xED,0x77,0x01,0x2E,0x9A,0x45,0x89,0x90,0xE4,0x00, +0x00,0xD9,0xC2,0xE0,0x10,0x01,0xEE,0x97,0x06,0xB6,0xC2,0xE0,0x10,0x01,0xEE,0x77, +0x04,0xC6,0xC2,0xE0,0x10,0x01,0x99,0xA0,0xE9,0xF7,0x01,0x15,0x9A,0x00,0xC2,0xE0, +0x10,0x01,0x8A,0x2D,0xE9,0xD7,0x01,0x31,0x9A,0x40,0x99,0x61,0x89,0x90,0x9A,0xA0, +0xE4,0x00,0x00,0x71,0xC2,0xE0,0x10,0x01,0xEE,0x97,0x04,0xBE,0xC2,0xE0,0x10,0x01, +0xEE,0x17,0x04,0xBA,0xC2,0xE0,0x10,0x01,0xE9,0xF7,0x01,0x39,0xC2,0xE0,0x10,0x01, +0x99,0x81,0xE9,0xD7,0x01,0x11,0x9A,0x21,0xC2,0xE0,0x10,0x01,0x9A,0x40,0xE9,0xB7, +0x01,0x13,0x99,0x61,0x9A,0x60,0x8A,0xAC,0x9A,0xC1,0x99,0x41,0xE4,0x00,0x00,0x55, +0xC2,0xE0,0x10,0x01,0xE9,0xF7,0x01,0x33,0xC2,0xE0,0x10,0x01,0xE9,0xD7,0x00,0xF9, +0x99,0xA0,0x9A,0x40,0x9A,0x00,0x9A,0x80,0x9A,0xA0,0x8A,0x2D,0x89,0x72,0x8A,0x70, +0x89,0x94,0x8A,0xD5,0x99,0x40,0x88,0x6A,0xE4,0x00,0xC6,0x08,0x88,0x6A,0xE4,0x00, +0xC6,0x8A,0x88,0x76,0xE4,0x00,0xD6,0x7C,0x88,0x75,0xE4,0x00,0xD6,0xD6,0x88,0x74, +0xE4,0x00,0xC7,0xEA,0x88,0x73,0xE4,0x00,0xC8,0x36,0x88,0x72,0xE4,0x00,0xC7,0x38, +0x88,0x71,0xE4,0x00,0xC7,0x64,0x88,0x6A,0xE4,0x00,0xD7,0xF8,0x88,0x70,0xE4,0x00, +0xD8,0x52,0x98,0x60,0xE4,0x00,0xD8,0xA0,0x98,0x60,0xE4,0x00,0xD8,0xEE,0x98,0x60, +0xE4,0x00,0xD9,0x3C,0x98,0x60,0xE4,0x00,0xD9,0x8A,0x88,0x6F,0xE4,0x00,0xC8,0x30, +0x88,0x6E,0xE4,0x00,0xC8,0x5E,0x88,0x6D,0xE4,0x00,0xC8,0x92,0x88,0x6C,0xE4,0x00, +0xC8,0xAC,0x88,0x6B,0x0E,0xC1,0x02,0x0E,0xA1,0x06,0x0E,0x81,0x0A,0x0E,0x61,0x0E, +0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D,0xE1,0x1E,0x0D,0xC1,0x22,0x0D, +0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32,0x0D,0x21,0x36,0x1C,0x21, +0x38,0xE4,0x00,0xC5,0xF5,0xC2,0xE0,0x10,0x01,0xF0,0x77,0x04,0xB4,0x85,0x29,0xC2, +0xE0,0x10,0x01,0xF8,0x77,0x04,0xB4,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x04, +0xB4,0x9F,0x01,0xFB,0x17,0x04,0xB4,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF0,0x77,0x06, +0xA9,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF8,0x77,0x06,0xA9,0x85,0x29,0xC2,0xE0,0x10, +0x01,0xF3,0x17,0x06,0xA9,0x9F,0x01,0xFB,0x17,0x06,0xA9,0x85,0x29,0xC2,0xE0,0x10, +0x01,0xEC,0x77,0x01,0x0C,0x85,0x29,0xC3,0x40,0x10,0x01,0xFF,0x5A,0x00,0xFC,0x0C, +0x1A,0x00,0x9A,0xE1,0xC3,0x20,0x10,0x01,0xFF,0x39,0x01,0x18,0x0E,0xF9,0x00,0xC3, +0x00,0x10,0x01,0xFF,0x18,0x04,0xA0,0x0C,0x18,0x00,0x0C,0x1A,0x04,0x0E,0xF9,0x04, +0x0C,0x18,0x04,0x0C,0x1A,0x08,0x0E,0xF9,0x08,0x0C,0x18,0x08,0x0C,0x1A,0x0C,0x0E, +0xF9,0x0C,0x0C,0x18,0x0C,0xC3,0x00,0x10,0x01,0xEE,0xF8,0x01,0x34,0x85,0x29,0x9C, +0x38,0x0D,0x41,0x04,0xC3,0x00,0x10,0x01,0xC2,0xE0,0x10,0x01,0x5C,0xA5,0x00,0x5C, +0xC6,0x00,0xF3,0x38,0x06,0xAA,0xFE,0xF7,0x01,0x34,0xD7,0x25,0x00,0x6A,0xF8,0xB8, +0x06,0xAA,0x9B,0x01,0x0F,0x17,0x00,0xC3,0x80,0x10,0x01,0xC3,0x00,0x10,0x01,0x0F, +0x37,0x02,0xFF,0x9C,0x01,0x18,0xFF,0x18,0x00,0xFC,0x23,0x24,0x9A,0x0B,0xA3,0x00, +0x4F,0x46,0x18,0x43,0x78,0xD4,0x0F,0xBB,0x00,0x0B,0xA4,0x00,0x0F,0xBB,0x04,0x8F, +0x5C,0x0F,0x3A,0x00,0x0F,0x3A,0x04,0x40,0xA5,0x35,0x20,0xA4,0x1A,0x0C,0x17,0x00, +0x4E,0xE6,0x18,0x8E,0xF8,0x0C,0xF7,0x02,0x08,0xA3,0x00,0x0D,0x17,0x02,0x0F,0xB7, +0x06,0x0F,0x37,0x06,0x42,0xE7,0x2D,0x4C,0xF7,0xFA,0x46,0xE7,0xBE,0x0B,0x44,0x00, +0x40,0xF7,0x3D,0x43,0x39,0xD5,0x4E,0xF9,0xFA,0x47,0x37,0xCE,0x42,0xF9,0xBD,0x41, +0x08,0x2D,0x43,0xBD,0xD5,0x4F,0xC8,0xFA,0x4F,0x7D,0xFA,0x45,0x1E,0x46,0x47,0xBB, +0xEE,0x43,0xC8,0xF5,0x43,0x7D,0xDD,0x43,0xC7,0xF3,0x43,0x7B,0xBB,0x9B,0x21,0x8F, +0x7E,0x9A,0xE3,0xE4,0x00,0x00,0x11,0x8F,0x37,0x9E,0xE2,0xD7,0x3B,0xFF,0xE1,0xC3, +0x20,0x10,0x01,0x4E,0xF7,0x09,0x53,0x40,0x1E,0x9E,0xFF,0x5E,0xF7,0x06,0xEE,0xF9, +0x06,0xB8,0xC3,0x20,0x10,0x01,0x42,0xF7,0xD1,0xEF,0x39,0x01,0x0E,0x42,0xF7,0xBB, +0x43,0x39,0xBD,0xC2,0xE0,0x10,0x01,0x5F,0x23,0x11,0x20,0x00,0x1B,0x53,0x20,0x19, +0xEF,0x37,0x04,0xC0,0xC3,0xA0,0x10,0x01,0xEC,0xB7,0x04,0xC2,0x4C,0xC6,0x08,0x9A, +0xE0,0xFF,0xBD,0x04,0xA0,0xCB,0x40,0x10,0x00,0x43,0x26,0xBC,0x4F,0x39,0x10,0x43, +0x7C,0xCC,0xC9,0x40,0xA0,0x00,0x0D,0x1B,0x02,0x0F,0xDB,0x02,0x43,0x68,0x53,0xCF, +0xDE,0x00,0x0A,0x8F,0xC5,0x43,0xDB,0xF0,0x43,0x7D,0xCC,0x0F,0xDB,0x00,0x5F,0xD7, +0x00,0x23,0xC0,0x92,0x43,0xD8,0xCC,0x0D,0x1E,0x02,0x0F,0x7B,0x02,0x0F,0x3E,0x02, +0x0B,0xC3,0x00,0x43,0x3E,0xCD,0x43,0x3B,0xCB,0x43,0x39,0xD0,0x8F,0x28,0x0F,0x23, +0x01,0xE4,0x00,0x00,0x43,0x43,0xD8,0xCC,0x0D,0x1E,0x02,0x0F,0x7B,0x02,0x0F,0x3E, +0x02,0x0B,0xC4,0x00,0x43,0x3E,0xCD,0x43,0x3B,0xCB,0x43,0x39,0xD0,0x8F,0x28,0x0F, +0x24,0x01,0x43,0x66,0xBC,0x4F,0x7B,0x10,0x43,0xD8,0xDC,0x0F,0x3E,0x00,0x43,0x3C, +0xDC,0x8F,0x7D,0x0F,0xD9,0x02,0x0D,0x1B,0x02,0x0F,0x79,0x02,0x43,0x68,0xDB,0x43, +0x7B,0xD0,0x43,0x7E,0xDD,0x0F,0x79,0x00,0x9E,0xE1,0xD2,0xE2,0xFB,0x7E,0x0D,0x41, +0x06,0x9C,0x28,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x04,0x95,0xC2,0xE0,0x10, +0x01,0x5C,0x63,0x04,0xEC,0x77,0x04,0x93,0x56,0xE3,0x03,0x5E,0xE0,0x09,0x4A,0xE1, +0x01,0x4C,0x63,0x11,0x8C,0x77,0xC2,0xE0,0x10,0x01,0xF8,0x77,0x04,0x88,0xC2,0xE0, +0x10,0x01,0xF8,0xB7,0x06,0xA8,0xC2,0xE0,0x10,0x01,0xEC,0xD7,0x04,0xB0,0xC2,0xE0, +0x10,0x01,0xEC,0xF7,0x06,0xAD,0xC2,0xE0,0x10,0x01,0x0B,0x01,0x01,0xED,0x17,0x06, +0xB1,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x04,0x91,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF8, +0x17,0x06,0xAE,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x06,0xAE,0xC2,0xE0,0x10, +0x01,0xF2,0xF7,0x06,0xA8,0x9E,0xFF,0x5E,0xF8,0x15,0x48,0x61,0x01,0x85,0x29,0x9C, +0x38,0x0D,0x21,0x04,0xE7,0xFF,0xFF,0xC2,0x9A,0xE0,0x20,0x60,0x4E,0xC2,0xE0,0x10, +0x01,0xF3,0x17,0x06,0xAE,0x9F,0x01,0xFB,0x17,0x06,0xAE,0x9A,0xE1,0x88,0x77,0x0D, +0x21,0x06,0x9C,0x28,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x04,0x93,0xC2,0xE0, +0x10,0x01,0xC3,0x20,0x10,0x01,0xF3,0x57,0x06,0xAE,0xFF,0x39,0x04,0xC8,0x9A,0xE0, +0x4F,0x5A,0x28,0xE4,0x00,0x00,0x39,0x4F,0x77,0x08,0x8F,0x63,0x0B,0x9B,0x00,0x43, +0x7A,0xBC,0x9E,0xE1,0x4F,0x7B,0x08,0x5E,0xF7,0x00,0x8F,0x79,0x0F,0x9B,0x01,0xD7, +0x17,0xFF,0x45,0x85,0x29,0x9C,0x30,0x0D,0x21,0x0C,0x0D,0x41,0x08,0x18,0x01,0x06, +0x89,0x43,0x18,0x01,0x07,0xE7,0xFF,0xF2,0x5C,0x1C,0x61,0x06,0x1C,0x81,0x07,0xE7, +0xFF,0xF0,0x2A,0x10,0x61,0x06,0x10,0x81,0x07,0xE7,0xFF,0xF3,0x5E,0xC2,0xE0,0x10, +0x01,0x13,0x41,0x06,0xEB,0x37,0x04,0x93,0x13,0x61,0x07,0xC3,0x00,0x10,0x01,0x9A, +0xE0,0xFF,0x18,0x04,0xC8,0x4F,0x5A,0x28,0x4F,0x7B,0x28,0x9B,0x82,0xE4,0x00,0x00, +0x59,0x43,0xDA,0xBC,0x4F,0xDE,0x08,0x8F,0xD8,0x4F,0xB7,0x08,0x09,0x1E,0x00,0x8F, +0xAA,0x43,0xDB,0xBC,0x9E,0xE1,0x4F,0xDE,0x08,0x5E,0xF7,0x00,0x8F,0xD8,0x0B,0xDE, +0x00,0x8F,0xC8,0x43,0xDE,0xE0,0x0F,0xDD,0x01,0xD7,0x37,0xFE,0xC5,0x0D,0x41,0x0A, +0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0x1C,0x21,0xC8,0x0D,0x41,0x30,0x0D,0x61, +0x2C,0x0D,0xA1,0x24,0x0D,0xC1,0x20,0x5D,0xA5,0x04,0x0D,0x21,0x34,0x50,0xA0,0x20, +0x0D,0x81,0x28,0x89,0x43,0x89,0x64,0x5D,0xC6,0x04,0x88,0x61,0xC0,0x98,0x00,0x21, +0xFC,0x84,0xB4,0x94,0x9C,0x86,0xE4,0x00,0x0B,0xA6,0xC2,0xE0,0x10,0x01,0xC3,0x00, +0x10,0x01,0xEB,0x77,0x06,0xAD,0xC2,0xE0,0x10,0x01,0xF3,0x58,0x04,0x88,0xEB,0x97, +0x06,0xB1,0x9F,0x61,0x9F,0x81,0x5F,0x7B,0x04,0x5F,0x9C,0x04,0xCC,0xAD,0x00,0x18, +0xC2,0xE0,0x10,0x01,0x43,0xDB,0xE4,0xEA,0xF7,0x04,0x91,0x4F,0xDE,0x18,0x0B,0x01, +0x01,0x8F,0xD7,0x43,0xDE,0xD3,0x43,0xC5,0xF0,0x5F,0xDE,0x04,0xD7,0x1E,0x00,0x69, +0x0F,0x0A,0x01,0x9B,0x20,0xE4,0x00,0x00,0x4D,0x9B,0x00,0x89,0x81,0x8B,0x38,0x4F, +0xB8,0x08,0x5D,0x18,0x00,0x8F,0xAC,0x0B,0xBD,0x01,0xD7,0xBE,0x00,0x8D,0x0F,0xAA, +0x01,0x9F,0x01,0x8B,0x28,0x5F,0x02,0x09,0x23,0xFF,0x9D,0x43,0x1C,0xDC,0x0B,0x6A, +0x01,0x4F,0x18,0x18,0x43,0x5B,0xD3,0xCC,0xCE,0x00,0x18,0x43,0x78,0xBC,0x43,0x7A, +0xDB,0xD4,0xDB,0x01,0x11,0xE4,0x00,0x00,0x2F,0x43,0x77,0xC4,0x43,0x7B,0xD3,0xD7, +0x66,0x00,0x41,0xD4,0xBB,0x00,0x85,0x9E,0xE1,0x5E,0xF7,0x04,0xC2,0xE0,0x7F,0xEA, +0x23,0xFF,0xA5,0x0E,0xEB,0x01,0x0D,0xC1,0x22,0x0A,0xEA,0x01,0x0D,0xA1,0x26,0x4E, +0xF7,0x40,0x0D,0x81,0x2A,0x47,0x39,0xBD,0x0D,0x61,0x2E,0x0F,0x2A,0x01,0x0D,0x21, +0x36,0x0D,0x41,0x32,0x1C,0x21,0x38,0x85,0x29,0x9C,0x30,0x5C,0x63,0x00,0x0D,0x41, +0x08,0x0D,0x61,0x04,0x4C,0x63,0x08,0xC2,0xF8,0x00,0x21,0x0D,0x21,0x0C,0xFE,0xF7, +0xB6,0xFA,0x99,0x40,0x8E,0xE3,0x09,0x77,0x01,0x88,0x6A,0x88,0x8B,0x9D,0x41,0xE4, +0x00,0xC0,0x26,0x5D,0x4A,0x00,0xD1,0x44,0xFF,0x9E,0x0D,0x61,0x06,0x0D,0x41,0x0A, +0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x06,0xDD, +0xC2,0xE0,0x10,0x01,0xF8,0x17,0x06,0xF0,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x06,0xD8, +0xC2,0xE0,0x10,0x01,0xF8,0x17,0x06,0xE4,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0xF3, +0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0xE9,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0xF8, +0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x06,0xDD,0xC2,0xE0,0x10,0x01,0xF8,0x17, +0x06,0xD8,0xC2,0xE0,0x10,0x01,0xF0,0x77,0x06,0xF0,0xC2,0xE0,0x10,0x01,0xF8,0x77, +0x06,0xE4,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0xF3,0xC2,0xE0,0x10,0x01,0xEC,0x17, +0x06,0xE9,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0xF8,0x24,0x6C,0x1F,0xE7,0xFF,0xFE, +0x99,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0x5C,0x63,0x04,0xEC,0x77, +0x06,0xE9,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0xF8,0xF3,0x78,0x06,0xD8,0xC3,0x40, +0x10,0x01,0xC3,0x20,0x10,0x01,0xC3,0x00,0x10,0x01,0xFF,0x5A,0x06,0xF0,0xFF,0x39, +0x06,0xE4,0x23,0x60,0x2C,0xEB,0x78,0x06,0xF3,0xD7,0x63,0x00,0xA1,0x13,0x5A,0x00, +0xEC,0x78,0x06,0xF3,0x1B,0x59,0x00,0x9B,0x01,0xEF,0x17,0x06,0xF8,0x85,0x29,0xC2, +0xE0,0x10,0x01,0xEB,0x17,0x06,0xE9,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x06,0xDD,0x5E, +0xF8,0x1F,0x48,0x61,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x06,0xD8,0x5E, +0xE0,0x5B,0x48,0x61,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x06,0xD8,0x27, +0x08,0x7B,0x9F,0x01,0xFB,0x17,0x06,0xD8,0xC2,0xE0,0x10,0x01,0xF0,0x77,0x06,0xF0, +0x9C,0x61,0x54,0x63,0x03,0xF8,0x77,0x06,0xF0,0xE7,0xFF,0xFD,0x61,0x85,0x29,0xC2, +0xE0,0x10,0x01,0xF8,0x77,0x01,0x3A,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x06,0xE0,0xC2, +0xE0,0x10,0x01,0xEC,0xB7,0x06,0xD4,0xC2,0xE0,0x10,0x01,0xEC,0xD7,0x06,0xEC,0x85, +0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xEF,0x18,0x06,0xEE,0x5C,0x63,0x04, +0xEC,0x77,0x06,0xDB,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x06,0xF4,0x4E,0xF7,0x08,0x8E, +0xF8,0xC3,0x00,0x10,0x01,0xEF,0x18,0x06,0xD6,0x0A,0xF7,0x01,0xCB,0x20,0xFF,0xFF, +0x4E,0xF7,0x08,0x8E,0xF8,0x0B,0x17,0x01,0xD7,0x19,0x00,0x5E,0x0C,0x77,0x01,0xE4, +0x00,0x00,0x4B,0xC3,0x20,0x10,0x01,0xEB,0x39,0x08,0xE3,0xC7,0x39,0x20,0x00,0x23, +0x20,0x54,0xCF,0x18,0x00,0x07,0xCC,0x63,0x00,0x03,0x9B,0x2A,0x8F,0x03,0x43,0x18, +0xC8,0x0F,0x17,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0x9C,0x38,0xC3,0x20,0x10,0x01, +0x0E,0xC1,0x04,0xF3,0x17,0x01,0x3A,0x4E,0xF8,0x08,0x9E,0xE8,0xC6,0xF7,0x03,0xF8, +0x1E,0xC1,0x08,0x88,0x81,0xEF,0xB9,0x06,0xD6,0x40,0x21,0xBD,0x9B,0x20,0x8A,0xE1, +0x8B,0x59,0xE4,0x00,0x00,0x43,0x4F,0x99,0x08,0x43,0x7D,0xE4,0x8F,0x97,0x0B,0x7B, +0x01,0x0F,0x7C,0x01,0xCB,0x80,0xFF,0xFF,0xD7,0x7C,0x00,0x4E,0x9F,0x41,0x5F,0x5A, +0x00,0x9F,0x21,0x5F,0x79,0x00,0xD7,0x1B,0xFF,0x05,0xC3,0x60,0x10,0x01,0xFF,0x7B, +0x06,0xE6,0x0C,0x1B,0x01,0x9B,0x20,0x23,0x40,0xE0,0xE4,0x00,0x00,0x8F,0x1F,0x99, +0x01,0x4F,0x39,0x08,0x5F,0x9C,0x00,0x8F,0x37,0x8B,0x5C,0xE4,0x00,0x00,0x3D,0x4F, +0xBA,0x08,0x0B,0xD9,0x01,0x8F,0xB7,0x09,0x1D,0x01,0xD7,0xC8,0x00,0x51,0x0D,0x19, +0x01,0x0F,0xDD,0x01,0x9F,0x41,0x5F,0x5A,0x00,0xD7,0x58,0xFF,0x36,0x8B,0x3C,0xD7, +0x38,0xFE,0x7E,0x0B,0x17,0x01,0x0A,0xF7,0x03,0x8E,0xF8,0x4E,0xF7,0x0A,0x0E,0xFB, +0x01,0x08,0x7B,0x01,0x88,0x24,0x0E,0xC1,0x06,0x9C,0x28,0x85,0x29,0x5C,0x63,0x04, +0xC3,0x00,0x10,0x01,0xEF,0x18,0x06,0xEE,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x06,0xF4, +0x4E,0xF7,0x08,0x8E,0xF8,0xC3,0x00,0x10,0x01,0x0A,0xF7,0x01,0xEF,0x18,0x06,0xD6, +0x4E,0xF7,0x08,0x8E,0xF8,0x0A,0xF7,0x01,0x5E,0xE3,0x1F,0x48,0x61,0x01,0x85,0x29, +0x5C,0x63,0x04,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x06,0xDB,0x5E,0xE3,0x1F,0x48,0x61, +0x01,0x85,0x29,0x1C,0x21,0xE0,0x0D,0x61,0x14,0x0E,0xC1,0x04,0x0D,0x21,0x1C,0x0D, +0x41,0x18,0x0D,0x81,0x10,0x0D,0xA1,0x0C,0x0D,0xC1,0x08,0xC3,0x20,0x10,0x01,0xC2, +0xE0,0x10,0x01,0xF3,0x59,0x06,0xF4,0xF2,0xF7,0x01,0x3A,0x9F,0x41,0x5F,0x5A,0x00, +0x43,0x1A,0xB9,0x43,0x18,0xBB,0x43,0x1A,0xC5,0x5F,0x18,0x00,0xFB,0x19,0x06,0xF4, +0x1E,0xC1,0x20,0x89,0x61,0xD3,0x00,0x04,0xA6,0x4F,0x17,0x08,0x9F,0x08,0xC7,0x18, +0x03,0xF8,0x89,0x81,0x40,0x21,0xC5,0xC3,0x00,0x10,0x01,0x8B,0x61,0xEF,0x58,0x06, +0xD6,0x9B,0x00,0xE4,0x00,0x00,0x29,0x4F,0x38,0x08,0x9F,0x01,0x43,0x9B,0xCC,0x8F, +0x3A,0x0B,0x39,0x01,0x0F,0x3C,0x01,0x5F,0x38,0x00,0xD6,0xF9,0xFF,0x6D,0xC3,0x00, +0x10,0x01,0xEF,0x98,0x06,0xEE,0x9B,0x00,0x8B,0x3C,0xE4,0x00,0x00,0x93,0x1F,0xB8, +0x01,0x4F,0x18,0x08,0x5F,0xBD,0x00,0x8F,0x1B,0x8B,0x5D,0xE4,0x00,0x00,0x61,0x4F, +0xDA,0x08,0x09,0x58,0x01,0x41,0x1B,0xF4,0x08,0x68,0x01,0xD5,0x43,0x00,0xD9,0x0C, +0x78,0x01,0x0D,0x48,0x01,0x8F,0xDC,0x09,0x19,0x01,0x09,0x5E,0x01,0x0D,0x59,0x01, +0x55,0x08,0xFF,0x0D,0x1E,0x01,0x9F,0x41,0x5F,0x5A,0x00,0xD7,0x57,0xFE,0xA6,0x9F, +0x22,0x8B,0x1D,0xD7,0x17,0xFD,0xDE,0x88,0x2C,0x99,0x40,0xC1,0x80,0x10,0x01,0xC1, +0xA0,0x10,0x01,0xC1,0xC0,0x10,0x01,0xEF,0x0D,0x06,0xEE,0xF2,0xEE,0x06,0xF4,0x4E, +0xF7,0x08,0x8E,0xF8,0xEF,0x0C,0x06,0xE2,0x0A,0xF7,0x01,0x4E,0xF7,0x08,0x8E,0xF8, +0x88,0x6A,0x08,0x97,0x01,0x9D,0x41,0xE4,0x00,0xB8,0xB6,0x5D,0x4A,0x00,0xD1,0x44, +0xFE,0xCE,0x88,0x2B,0x0E,0xC1,0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E,0x0D,0x81,0x12, +0x0D,0x61,0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20,0x85,0x29,0x1C,0x21, +0xE8,0xC2,0xE0,0x10,0x01,0x0D,0x41,0x10,0x0D,0x61,0x0C,0x0D,0x81,0x08,0x0D,0xA1, +0x04,0x0D,0x21,0x14,0xF8,0x17,0x06,0xF4,0x99,0x40,0xC1,0x60,0x10,0x01,0xC1,0x80, +0x10,0x01,0x89,0xB7,0xEF,0x0C,0x06,0xEE,0xF2,0xED,0x06,0xF4,0x4E,0xF7,0x08,0x8E, +0xF8,0xEF,0x0B,0x06,0xE2,0x0A,0xF7,0x01,0x4E,0xF7,0x08,0x8E,0xF8,0x88,0x6A,0x08, +0x97,0x01,0x9D,0x41,0xE4,0x00,0xB7,0xDC,0x5D,0x4A,0x00,0xD1,0x44,0xFE,0xCE,0xC2, +0xE0,0x10,0x01,0xF3,0x37,0x01,0x3A,0xC2,0xE0,0x10,0x01,0x9B,0x5F,0xEF,0x17,0x06, +0xD6,0x9A,0xE0,0xE4,0x00,0x00,0x1D,0x0F,0x58,0x01,0x9E,0xE1,0x9F,0x02,0x5E,0xF7, +0x00,0xD6,0xF9,0xFF,0xB6,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41, +0x12,0x0D,0x21,0x16,0x1C,0x21,0x18,0x85,0x29,0x8B,0x03,0x56,0xE3,0x03,0x22,0xE0, +0x98,0x9B,0x04,0x42,0xF8,0xBD,0x5F,0x44,0x00,0x5E,0xE5,0x17,0x4B,0x37,0x28,0x9A, +0xE0,0xE4,0x00,0x00,0x13,0x1B,0x58,0x00,0x9E,0xE1,0x43,0x03,0xBC,0xD6,0xF9,0xFF, +0xC6,0x40,0xA5,0xBD,0x4E,0xE4,0x80,0x4F,0x64,0xC0,0x47,0x7B,0xBD,0x4E,0xE4,0x40, +0x47,0x7B,0x25,0x4F,0x45,0x11,0x47,0x7B,0xBD,0x9A,0xE0,0xE4,0x00,0x00,0x17,0x8F, +0x38,0x9E,0xE1,0x0F,0x79,0x00,0x4F,0x37,0x10,0xD6,0xFA,0xFF,0xB6,0x8F,0x19,0x9A, +0xE0,0x54,0xA5,0x03,0x5C,0x84,0x00,0xE4,0x00,0x00,0x19,0x43,0x37,0xC4,0x9E,0xE1, +0x18,0x99,0x00,0xD4,0xB7,0xFF,0xC5,0x85,0x29,0x46,0xE4,0x1D,0x56,0xF7,0x03,0x22, +0xE0,0x82,0x9A,0xFC,0x47,0x45,0xBC,0x9A,0xE0,0xE4,0x00,0x00,0x51,0x43,0x03,0xBC, +0x43,0x24,0xBC,0x9E,0xE1,0x13,0x39,0x00,0x1B,0x38,0x00,0xE4,0x00,0x00,0x0D,0x9A, +0xE0,0xD6,0xE5,0xFF,0x66,0xE4,0x00,0x00,0x63,0x0F,0x39,0x02,0x9E,0xE4,0x0F,0x38, +0x00,0x43,0x03,0xBC,0x43,0x24,0xBC,0xD6,0xFA,0xFF,0x96,0x9A,0xE0,0x54,0xA5,0x03, +0xE4,0x00,0x00,0x25,0x43,0x57,0xC4,0x43,0x77,0xCC,0x9E,0xE1,0x13,0x7B,0x00,0x1B, +0x7A,0x00,0xD4,0xB7,0xFF,0x95,0x85,0x29,0x1C,0x21,0xE0,0x0D,0x21,0x1C,0x0D,0x41, +0x18,0x0D,0x61,0x14,0x0D,0x81,0x10,0x0D,0xA1,0x0C,0x0D,0xC1,0x08,0x0D,0xE1,0x04, +0x0E,0x01,0x00,0xE4,0x00,0x62,0x06,0xC1,0x60,0x10,0x01,0xC0,0x60,0x00,0x21,0xFD, +0x4B,0x00,0xCC,0xFC,0x63,0xB0,0xE4,0xC0,0x80,0x10,0x01,0xC0,0xA0,0x10,0x01,0xFC, +0x84,0x00,0x00,0xFC,0xA5,0x01,0xD8,0x40,0xA5,0x25,0xE4,0x00,0x5C,0xDC,0x0C,0x0A, +0x01,0x0C,0x0A,0x03,0x0C,0x0A,0x05,0x0C,0x0A,0x08,0xC2,0xE0,0x10,0x01,0xEC,0x17, +0x00,0xBB,0x0C,0x0A,0x0C,0x9A,0xEA,0xC1,0xA0,0x10,0x01,0x0E,0xEA,0x11,0xEC,0x0D, +0x07,0x00,0x50,0x60,0x26,0xE4,0x00,0x1F,0x86,0xC8,0x80,0xE1,0x00,0x98,0x60,0xE4, +0x00,0x2A,0xD6,0x98,0x63,0xE4,0x00,0x29,0xF2,0xE4,0x00,0x03,0x54,0xC2,0xE0,0x10, +0x01,0x9B,0x3C,0xF3,0x17,0x08,0x83,0x47,0x18,0xCC,0xFC,0x60,0x0B,0xB8,0xFB,0x17, +0x08,0x83,0x04,0x80,0x5B,0xC8,0x84,0x8D,0x80,0xE4,0x00,0x2A,0x26,0x98,0x61,0xC1, +0x80,0x10,0x01,0xE4,0x00,0x2A,0x1A,0x99,0xC1,0xC1,0x60,0x10,0x01,0xC1,0xE0,0x10, +0x01,0xC2,0x00,0x10,0x01,0xE4,0x00,0x29,0xE6,0x0E,0xEA,0x0E,0x22,0xE0,0x2C,0xD2, +0xE1,0x0A,0x4E,0xE4,0x00,0x00,0xC5,0xE4,0x00,0x5B,0xCA,0xE4,0x00,0x29,0xFA,0x0C, +0x6A,0x13,0xE4,0x00,0x29,0xEC,0x0C,0x6A,0x17,0xE4,0x00,0x29,0xDE,0x0C,0x6A,0x1B, +0xE4,0x00,0x29,0xD0,0x0C,0x6A,0x19,0xEA,0xEC,0x06,0xFF,0xC6,0xF7,0xFF,0xDF,0xEE, +0xEC,0x06,0xFF,0xEA,0xEC,0x06,0xFF,0xC6,0xF7,0xFF,0x7F,0xEE,0xEC,0x06,0xFF,0x0D, +0xCA,0x0C,0xEA,0xEB,0x08,0xE3,0x52,0xF7,0x80,0xEC,0x0D,0x07,0x00,0xEE,0xEB,0x08, +0xE3,0x98,0x61,0xE4,0x00,0x1A,0x06,0x98,0x60,0xE4,0x00,0x30,0x3A,0xE4,0x00,0x2B, +0x32,0xE4,0x00,0x01,0xCF,0xEE,0xED,0x07,0x02,0x22,0xE0,0x2C,0xD2,0xE1,0x06,0xE6, +0xE4,0x00,0x00,0x9B,0x98,0x61,0xE4,0x00,0x1A,0x3E,0xD0,0x61,0x06,0x76,0xE4,0x00, +0x1C,0x90,0x20,0x64,0xAA,0xE4,0x00,0x1C,0x6E,0xEA,0xEB,0x08,0xE3,0xFF,0x00,0xFF, +0x7F,0x46,0xF7,0xC4,0xEC,0x0F,0x08,0xBC,0xEE,0xEB,0x08,0xE3,0xED,0xCD,0x07,0x00, +0xE4,0x00,0x64,0x14,0xE4,0x00,0x63,0xB4,0xE4,0x00,0x01,0x41,0xE4,0x00,0x1C,0x70, +0x20,0x67,0x54,0x98,0x61,0xE4,0x00,0x1B,0xD0,0xE4,0x00,0x01,0x1F,0x0A,0xEA,0x01, +0xC6,0xF7,0x01,0x00,0xD2,0xE0,0x04,0x22,0xE4,0x00,0x28,0x80,0x0A,0xEA,0x13,0x0B, +0x0A,0x11,0x40,0x63,0xBD,0x5E,0xE3,0x04,0xD7,0x17,0x03,0x85,0xE4,0x00,0x28,0x58, +0x0C,0x6A,0x13,0x0A,0xEA,0x01,0xC6,0xF7,0xFE,0xFF,0x0E,0xEA,0x01,0xE4,0x00,0x5D, +0x3A,0xE4,0x00,0x64,0x1E,0xE4,0x00,0x63,0x12,0xEE,0xEF,0x08,0xBE,0xEE,0xF0,0x08, +0xE8,0xE4,0x00,0x5E,0x26,0x98,0x61,0xE4,0x00,0x8A,0x06,0xE4,0x00,0x5E,0x9E,0x98, +0x61,0xE4,0x00,0x5E,0xDE,0xE4,0x00,0x60,0x92,0xE4,0x00,0x8B,0x66,0xEA,0xEB,0x08, +0xE3,0x56,0xF7,0x80,0x22,0xE0,0x90,0x0A,0xEA,0x01,0xC6,0xF7,0x01,0x00,0x22,0xE3, +0xE4,0x0A,0xEA,0x01,0xC6,0xF7,0xFE,0xFF,0x0E,0xEA,0x01,0x0D,0xCA,0x0C,0xEC,0x0D, +0x07,0x00,0x98,0x61,0xE4,0x00,0x18,0x24,0x0E,0xEA,0x0A,0xFC,0x60,0x1E,0x7F,0x9E, +0xE1,0x0E,0xEA,0x08,0x0C,0x8A,0x0A,0xE4,0x00,0x28,0xB6,0xE4,0x00,0x27,0x86,0xE7, +0xFF,0xFD,0x2D,0xE4,0x00,0xB2,0x4F,0x9C,0x38,0x0D,0x21,0x04,0x0D,0x41,0x00,0xE4, +0x00,0xB3,0xAA,0x98,0x6D,0xE4,0x00,0xA4,0x24,0x98,0x60,0xFC,0x80,0x3E,0x0C,0xE4, +0x00,0xA6,0x68,0x98,0x61,0xFC,0x80,0x3E,0x0C,0xE4,0x00,0xA6,0x54,0x98,0x60,0x50, +0x80,0x14,0xE4,0x00,0xAB,0x4E,0x98,0x60,0x98,0x8C,0xE4,0x00,0xAA,0x70,0x98,0x61, +0x50,0x80,0x14,0xE4,0x00,0xAB,0x2C,0x98,0x61,0x98,0x8C,0x99,0x40,0xE4,0x00,0xAA, +0x4A,0x88,0x6A,0x98,0x80,0x9D,0x41,0xE4,0x00,0xB0,0xB6,0x5D,0x4A,0x00,0xD1,0x44, +0xFF,0x9E,0x98,0x60,0x05,0x40,0xFF,0xC9,0x4A,0xFF,0xFF,0x88,0x8A,0xE4,0x00,0xA8, +0xA4,0x88,0x8A,0x98,0x60,0xE4,0x00,0xA6,0x2C,0x88,0x8A,0x0D,0x21,0x06,0x0D,0x41, +0x02,0x98,0x60,0x9C,0x28,0xE4,0x00,0xA7,0x0D,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x07, +0x10,0x1C,0x21,0xB0,0x0E,0xE1,0x10,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x07,0x04,0x0D, +0x41,0x4C,0x0D,0x61,0x48,0x0D,0x81,0x44,0x0D,0xE1,0x38,0x0E,0x01,0x34,0x0E,0x21, +0x30,0x0E,0x41,0x2C,0x0E,0x61,0x28,0x0E,0x81,0x24,0x0D,0xA1,0x40,0x0D,0xC1,0x3C, +0x0E,0xA1,0x20,0x0E,0xC1,0x1C,0x0E,0xE1,0x0C,0xC2,0x60,0x10,0x01,0xC2,0x40,0x10, +0x01,0xFE,0x73,0x07,0x24,0xFE,0x52,0x07,0x1C,0xC2,0x20,0x10,0x01,0xC2,0x00,0x10, +0x01,0xFE,0x31,0x07,0x14,0xFE,0x10,0x07,0x28,0xC1,0xE0,0x10,0x01,0xC1,0x8F,0xFF, +0xE1,0xFD,0xEF,0x07,0x20,0x9B,0x80,0xC2,0x98,0x00,0x21,0xC0,0xD8,0x00,0x21,0x13, +0x53,0x00,0x0E,0xF2,0x02,0x0D,0x51,0x02,0x0F,0xB0,0x02,0x0F,0x6F,0x02,0x99,0x60, +0xC9,0x8C,0xFF,0xFF,0x88,0xFC,0x53,0x20,0xFF,0xFE,0x94,0xB8,0x68,0xFC,0xC6,0xB8, +0x6E,0xE4,0x00,0x01,0xC5,0x41,0x14,0xC4,0x9F,0x01,0x11,0x08,0x00,0x8D,0xA8,0x5D, +0xAD,0x00,0xE4,0x00,0x00,0x11,0x9B,0x00,0x89,0xB8,0x5D,0x18,0x00,0xD7,0xC8,0xFF, +0x45,0xC3,0x18,0x00,0x21,0xFF,0x18,0xB8,0x68,0x8F,0x0B,0x99,0x00,0x12,0xB8,0x00, +0xCF,0x0D,0x00,0x0A,0x1E,0xD5,0xFF,0x8F,0x06,0x0E,0xC1,0x08,0x0F,0x01,0x14,0xE4, +0x00,0x01,0x37,0x0F,0x01,0x16,0xCD,0xE8,0x00,0x0A,0x8D,0xF8,0x0A,0xCF,0x00,0x0E, +0xC1,0x04,0x0F,0x01,0x0E,0x0E,0xC1,0x0A,0xD5,0x16,0x00,0x3A,0x0B,0x0F,0x0A,0x0D, +0xE1,0x06,0xD5,0xE4,0x03,0xB4,0xD4,0x98,0x03,0x94,0x8D,0xCD,0x5D,0xCE,0x00,0xCF, +0x0E,0x00,0x0A,0x8F,0x06,0x09,0xF8,0x06,0x0B,0x18,0x08,0x4F,0x18,0x50,0x41,0xEF, +0x23,0x8D,0xF8,0xFD,0xEF,0x02,0x00,0x4D,0xEF,0x52,0x5D,0xEF,0x06,0x41,0xEF,0x7B, +0x43,0x03,0x7D,0x4E,0xD8,0xFA,0x47,0x16,0xC6,0x43,0x18,0xB5,0xD7,0x0C,0x01,0x4C, +0xC3,0x20,0x1F,0xE4,0x20,0x00,0x2D,0x89,0x5D,0x89,0x97,0x8B,0x3A,0x88,0xFC,0x8B, +0xAA,0x8A,0xEC,0x8B,0x59,0x8B,0x87,0x8B,0x78,0x89,0x4F,0x89,0x98,0x88,0xEE,0x8B, +0x3E,0xE4,0x00,0x00,0x2F,0xC3,0x40,0x1F,0xE0,0x20,0x00,0x1D,0xD6,0xF8,0x00,0x60, +0x8B,0xAF,0x8A,0xF8,0x8B,0x5E,0x8B,0x8E,0x9D,0x01,0x5D,0xC8,0x00,0xD6,0xAE,0xFB, +0x35,0x9D,0x61,0x5F,0xCB,0x00,0x0E,0xC1,0x12,0xD6,0xDE,0xF9,0x6D,0xC3,0x00,0x10, +0x01,0x1B,0x53,0x00,0xFF,0x18,0x07,0x20,0x0E,0xF2,0x00,0x0D,0x51,0x00,0x0F,0xB0, +0x00,0x0F,0x78,0x00,0xC3,0x20,0x1F,0xE0,0x20,0x01,0x55,0xCF,0x9C,0x00,0x0A,0xCC, +0xE7,0x00,0x0A,0x8C,0xE6,0x0B,0x07,0x04,0x4F,0x18,0x50,0x8C,0xDC,0x08,0x67,0x02, +0x0B,0x86,0x02,0x40,0x63,0x23,0x0B,0x46,0x04,0x8C,0x78,0x43,0x1B,0xBC,0xFC,0x63, +0x02,0x00,0x4C,0x63,0x52,0x23,0x00,0xA8,0xC2,0xE0,0x1F,0xE0,0x20,0x00,0x8D,0x40, +0x63,0xBB,0x40,0x9C,0x23,0x4E,0xFA,0x50,0x8E,0xE4,0xFE,0xF7,0x02,0x00,0x4E,0xF7, +0x52,0x43,0x77,0xDB,0x8C,0x7B,0x40,0x63,0xC0,0xE4,0x00,0x00,0x0D,0x88,0x64,0x0E, +0xC1,0x1E,0x0E,0xA1,0x22,0x0E,0x81,0x26,0x0E,0x61,0x2A,0x0E,0x41,0x2E,0x0E,0x21, +0x32,0x0E,0x01,0x36,0x0D,0xE1,0x3A,0x0D,0xC1,0x3E,0x0D,0xA1,0x42,0x0D,0x81,0x46, +0x0D,0x61,0x4A,0x0D,0x41,0x4E,0x1B,0x25,0x00,0x1C,0x21,0x50,0x85,0x29,0x8B,0x23, +0xC2,0xE0,0x10,0x01,0x5C,0xA5,0x00,0xF2,0xF7,0x07,0x10,0x98,0x60,0xD6,0xE5,0x0C, +0xB9,0xD3,0x3F,0x0C,0x98,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xC3,0x60,0x10, +0x01,0xF2,0xF7,0x07,0x09,0xFF,0x18,0x07,0x07,0xFF,0x7B,0x07,0x08,0x22,0xE8,0x42, +0x13,0x18,0x00,0x5F,0x08,0x9B,0x20,0x00,0x51,0xE4,0x00,0x01,0x3B,0xD2,0xE1,0x04, +0xCE,0x13,0x18,0x00,0x5F,0x05,0x93,0x20,0x02,0x3D,0x24,0xA4,0x4B,0x9B,0x43,0x43, +0x5A,0x2D,0x4F,0x5A,0x08,0x5F,0x5A,0x00,0xE4,0x00,0x00,0x37,0x20,0xA8,0x54,0x9B, +0x44,0x43,0x5A,0x2D,0x4F,0x5A,0x08,0x5F,0x5A,0x00,0x20,0xAC,0xEE,0xE4,0x00,0x00, +0x51,0x9B,0x43,0x9A,0xE0,0x13,0x9B,0x00,0x8B,0x17,0xE4,0x00,0x00,0x27,0x4F,0xB8, +0x08,0x9F,0x01,0x8F,0xBC,0x5F,0x18,0x00,0x8E,0xFD,0x5E,0xF7,0x00,0xD7,0x05,0xFF, +0x8E,0xE4,0x00,0x00,0x49,0x5E,0xE0,0x21,0x53,0x00,0x1D,0x52,0xE0,0x2F,0x4A,0xF8, +0xB8,0xE4,0x00,0x00,0x4B,0x5E,0xE0,0x29,0x53,0x00,0x41,0x52,0xE0,0x29,0x4A,0xF8, +0xB8,0xE4,0x00,0x00,0x2B,0x27,0x04,0x33,0x9F,0x9F,0x4F,0x18,0x08,0xE4,0x00,0x00, +0x8B,0x9B,0x0A,0x20,0xA9,0x10,0x13,0x1B,0x00,0x9C,0xBF,0x9F,0x1F,0x4C,0xA5,0x08, +0x8F,0x05,0xE4,0x00,0x00,0x65,0x9B,0x43,0x13,0xBB,0x00,0x43,0x5A,0x2D,0x9A,0xE0, +0x4F,0x5A,0x08,0x8B,0x77,0x5F,0x5A,0x00,0xE4,0x00,0x00,0x21,0x8F,0x9D,0x9F,0x61, +0x8E,0xFC,0x5F,0x7B,0x00,0x5E,0xF7,0x00,0x4F,0x9B,0x08,0xD7,0x65,0xFF,0x8E,0x1F, +0x1D,0xFF,0x8F,0x1C,0x5F,0x18,0x00,0x4F,0x5A,0x08,0xC3,0xB8,0x00,0x21,0xFF,0xBD, +0xB7,0x02,0x8F,0xBA,0x9B,0x40,0xE4,0x00,0x01,0x0B,0x4F,0x7A,0x08,0x8F,0x7D,0x0B, +0x9B,0x00,0xD7,0x3C,0x03,0xBC,0x0B,0x7B,0x02,0xD7,0x79,0x03,0x84,0x8E,0xFA,0xC3, +0xB8,0x00,0x21,0xCF,0x17,0x00,0x06,0xFF,0xBD,0xB7,0x1E,0x8F,0x1D,0x1F,0x57,0x01, +0x14,0xD8,0x00,0xCF,0x5A,0x00,0x06,0x09,0x18,0x02,0x8F,0x5D,0x98,0x60,0x0B,0xB8, +0x04,0x14,0xBA,0x00,0x0B,0xDA,0x02,0x0B,0x1A,0x04,0xD7,0x9B,0x02,0x52,0x42,0xF9, +0xDD,0x40,0x77,0x33,0x43,0x3C,0xCD,0x43,0x59,0x2B,0x43,0xD9,0xF3,0x8F,0x43,0x40, +0x77,0x43,0x43,0x5A,0x23,0x8C,0x7E,0x8C,0x7A,0x42,0xF7,0xEB,0x40,0x83,0x23,0x97, +0x41,0x43,0x39,0xC3,0xCB,0x5A,0x86,0xA0,0x8F,0x37,0x40,0x64,0xD0,0x43,0x7C,0xDD, +0x8C,0x79,0x40,0x63,0xD8,0xE4,0x00,0x00,0x1F,0x9F,0x41,0x5F,0x7A,0x00,0xD7,0x1B, +0xFB,0xE5,0x98,0x60,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF8,0x77,0x07,0x09,0xC2,0xE0, +0x10,0x01,0xF8,0x97,0x07,0x06,0xC2,0xE0,0x10,0x01,0xF8,0xB7,0x07,0x07,0xC2,0xE0, +0x10,0x01,0xF8,0xD7,0x07,0x08,0xC2,0xE0,0x10,0x01,0xEC,0xF7,0x07,0x05,0x85,0x29, +0x9A,0xFF,0x1C,0x21,0xD8,0x0D,0xE1,0x0C,0x1A,0xE1,0x07,0xC1,0xE0,0x10,0x01,0xFD, +0xEF,0x07,0x24,0x1A,0xEF,0x00,0x52,0xE0,0xFF,0xC3,0x00,0x10,0x01,0x0D,0x41,0x20, +0x0D,0x61,0x1C,0x0D,0xA1,0x14,0x0D,0xC1,0x10,0xCB,0x20,0xFF,0xFF,0xC1,0xC0,0x10, +0x01,0xEF,0x38,0x07,0x2C,0xFD,0xCE,0x07,0x20,0xC1,0xA0,0x10,0x01,0x0E,0xEE,0x00, +0xFD,0xAD,0x07,0x1C,0x0D,0x21,0x24,0x0E,0xED,0x00,0x0D,0x81,0x18,0xC2,0xE0,0x10, +0x01,0x0E,0x01,0x08,0x89,0x63,0xF3,0x17,0x07,0x09,0x89,0x44,0x88,0x65,0xC2,0xE0, +0x10,0x01,0x23,0x08,0x56,0xC3,0x00,0x10,0x01,0xF3,0x18,0x07,0x07,0x5F,0x08,0x9B, +0x20,0x00,0x61,0xE4,0x00,0x00,0x37,0x23,0x04,0x5E,0xC3,0x00,0x10,0x01,0xF3,0x18, +0x07,0x07,0x5F,0x05,0x93,0x20,0x00,0x25,0x9B,0x05,0xE4,0x00,0x00,0x0D,0x9B,0x04, +0xFB,0x17,0x07,0x10,0xC2,0x00,0x10,0x01,0x0E,0xEB,0x02,0xEE,0xF0,0x07,0x2C,0x0A, +0xE6,0x06,0x0C,0x8B,0x02,0xD4,0x97,0x04,0xCC,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08, +0xCD,0x53,0x18,0x01,0x1C,0xA1,0x07,0xEF,0x17,0x08,0xCD,0xE7,0xFF,0xF6,0x9C,0x0C, +0x6B,0x00,0x0C,0x8A,0x02,0xED,0x90,0x07,0x2E,0x10,0xAF,0x00,0x88,0x6C,0xE7,0xFF, +0xFA,0xC0,0xC2,0xE0,0x10,0x01,0x89,0x63,0xEC,0x77,0x07,0x0C,0x10,0xA1,0x07,0x0C, +0x8A,0x02,0x88,0x6C,0xE7,0xFF,0xFA,0x94,0xC3,0x00,0x10,0x01,0xEC,0x78,0x07,0x18, +0x0F,0x6E,0x02,0x0F,0x2D,0x02,0x0F,0x4A,0x02,0x43,0x1B,0xCC,0x23,0x00,0xEC,0xC3, +0x20,0x1F,0xE0,0x20,0x00,0xD1,0xC3,0x80,0x10,0x01,0xEF,0xBC,0x07,0x16,0xC3,0x80, +0x10,0x01,0xEF,0x9C,0x07,0x2A,0x43,0xBD,0xE5,0x4F,0x9D,0xFA,0x47,0xBC,0xEE,0x43, +0x9D,0xE5,0xD7,0x1C,0x00,0xAC,0x41,0x6B,0xDB,0x42,0xE3,0xCB,0x8E,0xEB,0x43,0x17, +0xC0,0x8F,0x58,0xE4,0x00,0x01,0x55,0x42,0xFA,0x1C,0xE4,0x00,0x01,0x5B,0xC9,0x80, +0x07,0xFF,0x42,0xEC,0xBD,0xD6,0xE4,0x05,0x2C,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08, +0xCD,0x53,0x18,0x01,0x40,0x8C,0x25,0xEF,0x17,0x08,0xCD,0x1C,0xA1,0x07,0xE7,0xFF, +0xF5,0x56,0x40,0x6C,0x1D,0x0C,0x6B,0x00,0xEE,0xF0,0x07,0x2E,0x0C,0x8A,0x02,0x41, +0x8C,0xBD,0x10,0xAF,0x00,0x88,0x6C,0xE7,0xFF,0xF9,0x6E,0xC2,0xE0,0x10,0x01,0x89, +0x63,0xEC,0x77,0x07,0x0C,0x10,0xA1,0x07,0x0C,0x8A,0x02,0x88,0x6C,0xE7,0xFF,0xF9, +0x42,0xC3,0x00,0x10,0x01,0xEC,0x78,0x07,0x18,0x0F,0x6E,0x02,0x0F,0x2D,0x02,0x0F, +0x4A,0x02,0x43,0x1B,0xCC,0x23,0x00,0xFC,0xC3,0x20,0x1F,0xE0,0x20,0x00,0xE1,0xC3, +0x80,0x10,0x01,0xEF,0xBC,0x07,0x16,0xC3,0x80,0x10,0x01,0xEF,0x9C,0x07,0x2A,0x43, +0xBD,0xE5,0x4F,0x9D,0xFA,0x47,0xBC,0xEE,0x43,0x9D,0xE5,0xD7,0x1C,0x00,0xCC,0x41, +0x6B,0xDB,0x42,0xE3,0xCB,0x8E,0xEB,0x43,0x17,0xC0,0x43,0x5A,0xC5,0x0F,0x4A,0x00, +0xE4,0x00,0x00,0x15,0x42,0xFA,0x1D,0x0E,0xEA,0x00,0x0E,0x01,0x0A,0x0D,0xE1,0x0E, +0x0D,0xC1,0x12,0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D, +0x21,0x26,0x1C,0x21,0x28,0x85,0x29,0x1C,0x21,0xD0,0x0D,0x41,0x28,0x0D,0x61,0x24, +0x0D,0x81,0x20,0x0D,0xA1,0x1C,0x0D,0xC1,0x18,0x0D,0xE1,0x14,0x0E,0x01,0x10,0x0E, +0x21,0x0C,0x0E,0x41,0x08,0x5E,0x23,0x00,0x0E,0x61,0x04,0x56,0x11,0x03,0x4E,0xF1, +0x11,0x5E,0x00,0x09,0x99,0xC0,0x4A,0x41,0x01,0x99,0x80,0x9A,0x64,0x0D,0x21,0x2C, +0x8E,0x57,0x89,0x44,0x89,0xAE,0x89,0x6C,0x99,0xE0,0x42,0x73,0x25,0xE4,0x00,0x00, +0xF3,0x42,0xF3,0x54,0xD6,0xF1,0x01,0xD8,0x22,0x04,0x4A,0x51,0xC0,0x10,0x11,0x6A, +0x00,0x89,0xAE,0x51,0x80,0x10,0xE4,0x00,0x00,0x6B,0x22,0x08,0x4A,0x51,0xC0,0x10, +0x11,0x6A,0x00,0x11,0x8A,0x01,0x89,0xAE,0xE4,0x00,0x00,0x47,0x22,0x0C,0x7E,0x11, +0x6A,0x00,0x11,0x8A,0x01,0x11,0xAA,0x02,0x51,0xC0,0x10,0xE4,0x00,0x00,0x21,0x11, +0x6A,0x00,0x11,0x8A,0x01,0x11,0xAA,0x02,0x11,0xCA,0x03,0x4E,0xEC,0x80,0x4C,0x8C, +0xC0,0x8C,0x97,0x4E,0xEE,0x80,0x4F,0x0B,0x40,0x4C,0xAE,0xC0,0x8C,0xB7,0x4E,0xED, +0x40,0x88,0x6F,0x8C,0x8B,0x8C,0xAD,0x8C,0x98,0x8C,0xB7,0x9D,0xE1,0xE4,0x00,0x96, +0xE4,0x5D,0xEF,0x00,0x9D,0x44,0xD5,0xF2,0xFC,0x5E,0x0E,0x61,0x06,0x0E,0x41,0x0A, +0x0E,0x21,0x0E,0x0E,0x01,0x12,0x0D,0xE1,0x16,0x0D,0xC1,0x1A,0x0D,0xA1,0x1E,0x0D, +0x81,0x22,0x0D,0x61,0x26,0x0D,0x41,0x2A,0x0D,0x21,0x2E,0x1C,0x21,0x30,0x85,0x29, +0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x00,0xDA,0x5E,0xE0,0x41,0x1C,0x21,0xE8,0x0D,0x61, +0x0C,0x0D,0x81,0x08,0x0D,0xA1,0x04,0x0D,0x21,0x14,0x0D,0x41,0x10,0x89,0x63,0x5D, +0x84,0x00,0x49,0xA1,0x01,0xE4,0x00,0x53,0x3E,0xC3,0x14,0x00,0x01,0xCB,0x18,0x7A, +0x30,0x0A,0xF8,0x01,0xC6,0xF7,0x01,0x00,0x5E,0xF7,0x04,0x22,0xE3,0xD8,0xFC,0x60, +0x01,0x00,0x99,0x40,0xE4,0x00,0x17,0xA0,0xE4,0x00,0x00,0x31,0x88,0x6A,0x98,0x81, +0x88,0xAD,0x9D,0x41,0xE4,0x00,0xA7,0xF6,0x5D,0x4A,0x00,0x0C,0x6B,0x01,0x9D,0x62, +0xD5,0x4C,0xFF,0x66,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12, +0x0D,0x21,0x16,0x1C,0x21,0x18,0x85,0x29,0xFC,0x21,0xFD,0xF0,0xED,0x41,0x02,0x08, +0xED,0xC1,0x01,0xF8,0xED,0xE1,0x01,0xF4,0xEE,0x01,0x01,0xF0,0xED,0x21,0x02,0x0C, +0xED,0x61,0x02,0x04,0xED,0x81,0x02,0x00,0xED,0xA1,0x01,0xFC,0xEE,0x21,0x01,0xEC, +0xEE,0x41,0x01,0xE8,0xEE,0x61,0x01,0xE4,0xEE,0x81,0x01,0xE0,0xC2,0x00,0x10,0x01, +0xC1,0xC0,0x10,0x01,0xC1,0xE0,0x10,0x01,0x89,0x43,0xFE,0x10,0x08,0x54,0xFD,0xCE, +0x08,0x75,0xFD,0xEF,0x08,0x72,0x20,0x60,0x30,0x20,0x68,0x98,0x20,0x64,0x30,0x24, +0x64,0x63,0x99,0x80,0xE4,0x00,0x00,0x0D,0x99,0x81,0xCD,0x8C,0x00,0x1A,0x51,0x60, +0x1A,0x8D,0x90,0xE4,0x00,0x00,0x41,0xD0,0x64,0x00,0x82,0xD0,0x65,0x00,0xA2,0x99, +0x80,0x89,0x6C,0xE4,0x00,0x00,0x21,0x89,0x8F,0x99,0x63,0xE4,0x00,0x00,0x11,0x89, +0x8E,0x99,0x68,0x9A,0xE0,0x8A,0x81,0x53,0x20,0x10,0xE4,0x00,0x00,0x19,0x43,0x14, +0xBC,0x9E,0xE1,0x1B,0x38,0x00,0x5F,0x17,0x00,0xD5,0x78,0xFF,0xAD,0x88,0x6B,0x88, +0x81,0x99,0xA3,0xE7,0xFF,0xFB,0xE8,0x8A,0x81,0xFE,0x20,0xFE,0xB0,0xCA,0x40,0x01, +0x50,0x52,0x60,0x3F,0x1C,0x61,0x60,0x88,0x8B,0xE7,0xFF,0xFD,0x8E,0x1F,0x21,0x60, +0x8B,0x01,0x9B,0x41,0xE4,0x00,0x00,0x93,0x0A,0xF9,0x00,0xC2,0xFF,0xD5,0xEC,0x20, +0x00,0x39,0x43,0x71,0xBD,0xC3,0x60,0x2A,0x0C,0xE4,0x00,0x00,0x0F,0x5E,0xE0,0x19, +0x4B,0x61,0x01,0x23,0x60,0x98,0xFE,0xF7,0x01,0x50,0x13,0x58,0x00,0x42,0xF7,0x90, +0x8E,0xFA,0x5E,0xF7,0x06,0x26,0xFC,0x34,0x5E,0xE7,0xF1,0x4A,0xF7,0x98,0xE4,0x00, +0x00,0x0D,0x9A,0xE0,0x1A,0xF8,0x00,0x9B,0x40,0x9F,0x01,0x9F,0x22,0x42,0xF8,0xA5, +0x5E,0xF7,0x00,0xD5,0x77,0xFD,0xAD,0x23,0x40,0x24,0x9A,0xE0,0xE4,0x00,0x00,0x51, +0x88,0x6B,0x88,0x81,0x9D,0xBF,0xE7,0xFF,0xFA,0xE2,0x5D,0xAD,0x00,0x21,0xA2,0x1E, +0xE7,0xFF,0xFF,0xD5,0x43,0x0C,0xBC,0x1F,0x21,0x00,0x8F,0x37,0x9E,0xE1,0x13,0x39, +0x00,0x1B,0x38,0x00,0x5F,0x17,0x00,0xD5,0x78,0xFF,0x6D,0x21,0x40,0x74,0x21,0x48, +0x38,0x21,0x44,0x9C,0xD1,0x44,0x01,0xEA,0xD1,0x45,0x02,0x5A,0x99,0x60,0x99,0x80, +0x88,0x8B,0x89,0x4C,0xE4,0x00,0x00,0x9B,0xC1,0x80,0x10,0x01,0x99,0x60,0x88,0x90, +0xFD,0x8C,0x0A,0xF8,0xE4,0x00,0x00,0x2D,0xC0,0x80,0x10,0x01,0xC1,0x80,0x10,0x01, +0x99,0x61,0xFC,0x84,0x08,0x6E,0xFD,0x8C,0x0B,0x60,0x51,0x40,0x1A,0xE4,0x00,0x00, +0x49,0xC1,0x80,0x10,0x01,0x99,0x68,0x88,0x8F,0xFD,0x8C,0x0B,0x84,0x99,0x43,0xE4, +0x00,0x00,0x25,0xC1,0x80,0x10,0x01,0x99,0x6D,0x88,0x8E,0xFD,0x8C,0x0B,0xAC,0x99, +0x48,0x88,0x6A,0xE7,0xFF,0xF9,0xC8,0xFD,0xA1,0x01,0x20,0x88,0x8A,0x88,0x6D,0xE7, +0xFF,0xFB,0x82,0x9A,0xE0,0xE4,0x00,0x00,0x33,0x4F,0x17,0x10,0x4F,0x37,0x08,0x8F, +0x0C,0x8F,0x2D,0x9E,0xE1,0x0B,0x39,0x00,0x4F,0x39,0x40,0x0F,0x38,0x00,0x5F,0x17, +0x00,0xD5,0x58,0xFF,0x45,0x88,0x6B,0xE4,0x00,0x51,0x4E,0xED,0x21,0x02,0x0E,0xEE, +0x81,0x01,0xE2,0xEE,0x61,0x01,0xE6,0xEE,0x41,0x01,0xEA,0xEE,0x21,0x01,0xEE,0xEE, +0x01,0x01,0xF2,0xED,0xE1,0x01,0xF6,0xED,0xC1,0x01,0xFA,0xED,0xA1,0x01,0xFE,0xED, +0x81,0x02,0x02,0xED,0x61,0x02,0x06,0xED,0x41,0x02,0x0A,0xFC,0x21,0x02,0x10,0x85, +0x29,0x9C,0x38,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x04,0xFE,0xF7,0x08,0x54,0x9B,0x00, +0x13,0x37,0x00,0x4F,0x39,0x08,0x9E,0xE1,0x8F,0x19,0xC3,0x20,0x10,0x01,0xFF,0x39, +0x08,0x6E,0xD6,0xF9,0xFF,0x76,0xC2,0xE0,0x10,0x01,0xF3,0x57,0x08,0x72,0xFE,0xF7, +0x08,0x72,0x13,0x37,0x02,0x13,0x77,0x01,0x98,0x60,0x42,0xFB,0xD4,0x98,0x80,0x8E, +0xF9,0x53,0x20,0x37,0x4E,0xF7,0x08,0x8E,0xF8,0x97,0x03,0x4E,0xF7,0x09,0xCB,0x18, +0xD0,0x8F,0xCE,0xF7,0x03,0x5B,0x42,0xF7,0xC9,0xCE,0xF7,0x00,0x1D,0xD6,0xF8,0x00, +0xA1,0x97,0x2F,0x98,0x60,0xCB,0x39,0x42,0x3F,0x98,0x82,0xD6,0xF9,0x00,0x31,0x98, +0x87,0xE4,0x00,0x9F,0x08,0x0D,0x21,0x06,0x98,0x61,0x98,0x80,0x9C,0x28,0xE4,0x00, +0x9E,0xEF,0x9C,0x38,0x98,0x80,0x0D,0x21,0x04,0x98,0x66,0xE4,0x00,0x2E,0x14,0x98, +0x60,0xE7,0xFF,0xFA,0x8E,0x98,0x87,0x98,0x66,0xE4,0x00,0x2D,0xF8,0x98,0x64,0xE7, +0xFF,0xFA,0x72,0x98,0x66,0x98,0x88,0xE4,0x00,0x2D,0xDC,0x0D,0x21,0x06,0x98,0x65, +0x9C,0x28,0xE7,0xFF,0xFA,0x4D,0xC2,0xE0,0x10,0x01,0x5C,0xA0,0x29,0xF3,0x37,0x0B, +0x76,0x53,0x40,0x40,0x52,0xE0,0x20,0xC3,0x60,0x10,0x01,0x4B,0x5A,0xB8,0xFF,0x7B, +0x09,0x68,0x20,0x60,0x6C,0xE4,0x00,0x00,0x55,0x4F,0x17,0x08,0x9E,0xE1,0x8F,0x1B, +0x0B,0x18,0x00,0xD7,0x58,0x00,0x78,0x98,0x61,0xE4,0x00,0x00,0xD9,0x9A,0xE0,0x43, +0x40,0xD5,0x5F,0x17,0x00,0xD7,0x38,0xFF,0x25,0x98,0x60,0xE4,0x00,0x00,0xB5,0x20, +0x67,0xEA,0x9A,0xE0,0x20,0x80,0xA6,0x9A,0xE0,0x43,0x80,0xD5,0xE4,0x00,0x00,0x7D, +0x4F,0x17,0x08,0x8F,0x1B,0x0B,0x18,0x00,0x4F,0x98,0xFA,0x47,0x1C,0xC6,0x43,0x18, +0xE5,0x0B,0x84,0x00,0xD7,0x1C,0x00,0x38,0x0F,0x04,0x01,0x9E,0xE1,0x5F,0x17,0x00, +0xD7,0x38,0xFF,0x05,0xE7,0xFF,0xFF,0xA7,0x4F,0x17,0x08,0x8F,0x1B,0x0B,0x18,0x00, +0xD7,0x98,0xFD,0x3C,0x9E,0xE1,0xD7,0x1A,0xFD,0x0C,0x5F,0x17,0x00,0xD7,0x38,0xFF, +0x5D,0xE7,0xFF,0xFF,0x51,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xF3, +0xB7,0x0B,0x76,0xC3,0xC0,0x10,0x01,0x9A,0xE0,0xFF,0x18,0x07,0x34,0x8B,0x37,0xFF, +0xDE,0x09,0x68,0xE4,0x00,0x00,0x5B,0x4F,0x57,0x08,0x0B,0x98,0x00,0x8F,0x5E,0x0B, +0x5A,0x00,0x43,0x9A,0xE5,0x4F,0x7C,0xFA,0x47,0x9B,0xE6,0x43,0x7C,0xDD,0x5F,0x66, +0x11,0x20,0x00,0x21,0x9F,0x21,0x5F,0x39,0x00,0x0F,0x58,0x01,0x9E,0xE1,0x9F,0x02, +0x5F,0x57,0x00,0xD7,0xBA,0xFE,0xA5,0x5F,0x20,0x93,0x48,0x61,0x01,0x85,0x29,0xC2, +0xE0,0x10,0x01,0xC3,0x40,0x10,0x01,0xF3,0x37,0x0B,0x76,0xC3,0x60,0x10,0x01,0x9A, +0xE0,0xFF,0x5A,0x07,0x34,0xFF,0x7B,0x09,0x68,0xE4,0x00,0x00,0x29,0x4F,0x17,0x08, +0x9E,0xE1,0x43,0x9A,0xC4,0x8F,0x1B,0x0B,0x18,0x01,0x0F,0x1C,0x01,0x5F,0x17,0x00, +0xD7,0x38,0xFF,0x6D,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xE6,0xC2,0xE0, +0x10,0x01,0x9C,0x38,0xF8,0x17,0x08,0xDF,0x0D,0x21,0x04,0xC2,0xE0,0x10,0x01,0xF8, +0x17,0x08,0xF9,0x20,0x64,0x26,0x98,0x60,0xE4,0x00,0x00,0x0D,0x98,0x64,0x98,0x80, +0xE4,0x00,0x2F,0xE6,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x06,0xEC,0x17,0x07,0x30,0x9C, +0x28,0xE4,0x00,0x49,0xDB,0x1C,0x21,0xE8,0xC2,0xE0,0x10,0x01,0x0D,0x41,0x10,0xEB, +0x17,0x00,0xCD,0x0D,0x21,0x14,0x0D,0x61,0x0C,0x0D,0x81,0x08,0x0C,0x01,0x07,0x89, +0x43,0xC7,0x18,0x01,0x00,0x98,0x60,0xD3,0x00,0x06,0xAA,0xEB,0x17,0x00,0xCD,0xC7, +0x18,0xFE,0xFF,0xEF,0x17,0x00,0xCD,0xE4,0x00,0x43,0x86,0xE4,0x00,0x44,0x92,0x21, +0x44,0x36,0x98,0x61,0xE4,0x00,0x70,0x6C,0xE4,0x00,0x00,0x11,0xE4,0x00,0x70,0xBE, +0xC1,0x60,0x10,0x01,0xEE,0xEB,0x07,0x32,0x5E,0xE0,0x01,0x98,0x6A,0x98,0x83,0x0C, +0x01,0x07,0x1D,0x81,0x06,0x49,0x8C,0x00,0xE4,0x00,0x4F,0x66,0x98,0x61,0x88,0x8C, +0x98,0xA1,0x88,0xCA,0xE7,0xFF,0xFC,0x44,0xC2,0xE0,0x10,0x01,0x20,0x60,0xE6,0xF3, +0x17,0x08,0xE6,0x9F,0x01,0xFB,0x17,0x08,0xE6,0x0A,0xE1,0x06,0xD2,0xEF,0x00,0x94, +0xC2,0xE0,0x10,0x01,0xF3,0x17,0x08,0xDF,0x9F,0x01,0xFB,0x17,0x08,0xDF,0x98,0x63, +0x21,0x44,0x36,0x98,0x81,0xE4,0x00,0x6C,0x1C,0xE4,0x00,0x00,0x73,0xE4,0x00,0x6C, +0x72,0xE4,0x00,0x00,0x63,0xF8,0x17,0x08,0xE6,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08, +0xDF,0xEE,0xEB,0x07,0x32,0x22,0xE3,0x66,0x0A,0xE1,0x06,0x5E,0xEC,0x11,0x23,0xFF, +0x41,0x21,0x44,0x36,0x98,0x61,0xE4,0x00,0x4E,0x14,0xE4,0x00,0x00,0x11,0xE4,0x00, +0x4E,0x4E,0x9B,0x01,0xC2,0xE0,0x10,0x01,0x98,0x61,0xEF,0x17,0x07,0x30,0xC2,0xE0, +0x10,0x01,0xF3,0x17,0x08,0xF9,0x9F,0x01,0xFB,0x17,0x08,0xF9,0x0D,0x81,0x0A,0x0D, +0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18,0x85,0x29,0x9C,0x38,0x0D, +0x21,0x04,0x20,0x64,0x26,0x98,0x60,0xE4,0x00,0x00,0x0D,0x98,0x64,0x98,0x80,0xE4, +0x00,0x2D,0x88,0x0D,0x21,0x06,0x9C,0x28,0xE4,0x00,0x47,0x8D,0x98,0x60,0x98,0xA0, +0x88,0x83,0xE7,0xFF,0xC7,0xCD,0xC2,0xE0,0x10,0x01,0x98,0x61,0xF2,0xF7,0x08,0xE6, +0xD2,0xEA,0x00,0x95,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08,0xDF,0x5E,0xE0,0xBB,0x48, +0x61,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08,0xF9,0x5E,0xE1,0xDB,0x48, +0x61,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x00,0x00,0x0C,0x17,0x00,0x0C, +0x17,0x19,0x0C,0x17,0x1B,0xEC,0x17,0x00,0xA1,0xEC,0x17,0x00,0xA3,0xEC,0x17,0x00, +0xA4,0x1F,0x17,0x08,0xEC,0x17,0x00,0xA1,0x0F,0x17,0x04,0x1F,0x17,0x20,0x0F,0x17, +0x1C,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x00,0xD1,0x53,0x18,0x02,0xEF,0x17,0x00,0xD1, +0x85,0x29,0xC3,0x20,0x10,0x01,0xFF,0x19,0x00,0x00,0x1E,0xF8,0x20,0x5C,0x63,0x04, +0x0E,0xF8,0x1C,0x9A,0xE0,0xE4,0x00,0x00,0x29,0x0F,0x38,0x1E,0x43,0x44,0xBC,0x8F, +0x37,0x13,0x5A,0x00,0x9E,0xE1,0x1B,0x59,0x00,0x5F,0x37,0x04,0xD4,0x79,0xFF,0x6D, +0x9A,0xE1,0xEE,0xF8,0x00,0xA4,0x85,0x29,0x9C,0x38,0x0D,0x21,0x04,0x0D,0x41,0x00, +0x5D,0x43,0x00,0xE7,0xFF,0xFF,0x02,0x88,0x6A,0xE4,0x00,0x98,0x40,0x0D,0x21,0x06, +0x0D,0x41,0x02,0x9C,0x28,0x85,0x29,0x1C,0x21,0xE0,0x0D,0x41,0x18,0x0D,0x61,0x14, +0x0D,0x81,0x10,0x0D,0xA1,0x0C,0x0D,0xE1,0x04,0x0D,0x21,0x1C,0x0D,0xC1,0x08,0x0E, +0x01,0x00,0xC1,0xA0,0x10,0x01,0xE4,0x00,0x99,0xB2,0xC1,0x80,0x10,0x01,0xC1,0x60, +0x10,0x01,0xC1,0xE0,0x10,0x01,0x5C,0x63,0x00,0xFD,0xAD,0x00,0xC0,0xFD,0x8C,0x08, +0x85,0xFD,0x6B,0x00,0xB8,0xFD,0x4F,0x00,0x00,0xD0,0x60,0x19,0x42,0xE4,0x00,0x99, +0xB0,0x5C,0x63,0x00,0x20,0x60,0xBC,0x0C,0x0A,0x19,0xE4,0x00,0x9A,0x3C,0xE4,0x00, +0x00,0x4B,0x0E,0xEA,0x06,0x0A,0x0A,0x19,0x8E,0x17,0xE4,0x00,0x9A,0x50,0x18,0x70, +0x00,0x0A,0xEA,0x19,0xD2,0xEE,0x00,0x8D,0x0A,0xEA,0x19,0x9E,0xE1,0x5E,0xF7,0x04, +0x0E,0xEA,0x19,0x99,0xC0,0xE4,0x00,0x98,0xCE,0x5C,0x63,0x00,0x20,0x63,0x5A,0x0E, +0xEA,0x06,0x13,0x17,0x00,0x5F,0x0A,0x09,0x20,0x00,0x61,0x0A,0xEA,0x19,0xD2,0xE4, +0x03,0x76,0xE4,0x00,0x99,0x78,0x0A,0xEA,0x19,0x22,0xE1,0xDA,0xE4,0x00,0x08,0x49, +0x13,0x17,0x00,0x23,0x08,0x36,0x0A,0xEA,0x19,0x22,0xE9,0x4E,0xE7,0xFF,0xFF,0xCD, +0x13,0x17,0x00,0x23,0x04,0x36,0x0A,0xEA,0x19,0x22,0xE5,0x0E,0xE7,0xFF,0xFF,0xAD, +0x13,0x17,0x00,0x5F,0x0A,0x29,0x20,0x00,0xC3,0x13,0x17,0x00,0x5F,0x0A,0x49,0x23, +0xFE,0xF3,0x13,0x17,0x00,0x5F,0x0A,0x69,0x20,0x00,0x7B,0x13,0x17,0x00,0x5F,0x0A, +0x89,0x20,0x00,0x57,0x13,0x17,0x00,0x5F,0x04,0x09,0x20,0x00,0x33,0x12,0xF7,0x00, +0x5E,0xE4,0x29,0x20,0x00,0x25,0x0A,0xEA,0x19,0x22,0xEE,0x64,0x98,0x61,0xE4,0x00, +0xA9,0xE4,0x9D,0xC1,0xC1,0xC4,0xE2,0x0E,0x23,0xFD,0xB7,0xE7,0xFF,0xFF,0x0F,0x0E, +0xEA,0x06,0x13,0x17,0x00,0xD3,0x00,0x1D,0x5A,0x13,0x17,0x00,0x5F,0x0B,0x9B,0x20, +0x0E,0x85,0x13,0x17,0x00,0x5F,0x0A,0x49,0x07,0x00,0x80,0x20,0x00,0xA5,0x0B,0x2A, +0x19,0xD3,0x24,0x11,0x36,0x13,0x37,0x01,0x13,0x57,0x02,0x12,0xF7,0x03,0x4F,0x39, +0x40,0x47,0x39,0xD5,0xC3,0x22,0x7F,0xEE,0x20,0x08,0x3D,0x8F,0x19,0x1A,0xF8,0x00, +0xE4,0x00,0x04,0x0F,0x13,0x37,0x00,0x5F,0x2A,0x69,0x20,0x02,0xCD,0x0B,0x2A,0x19, +0xD3,0x23,0x1B,0x06,0x13,0x57,0x01,0x13,0x37,0x02,0x4E,0xFA,0x40,0x46,0xF7,0xCD, +0xCB,0x20,0x14,0x00,0xC2,0xE2,0x80,0x0A,0x4A,0xF7,0xC8,0x8E,0xF8,0x0E,0xEA,0x1C, +0xFE,0xE0,0x08,0x00,0xEE,0xEA,0x00,0xA1,0xE4,0x00,0x00,0x1D,0xE4,0x00,0x07,0x98, +0x98,0x61,0xE4,0x00,0x07,0xC4,0xE4,0x00,0x96,0x66,0x5C,0x63,0x00,0x20,0x63,0xBC, +0xEC,0x0A,0x00,0xA3,0xE4,0x00,0x97,0x6E,0xE4,0x00,0x97,0x00,0xEB,0x0A,0x00,0xA3, +0xEA,0xEA,0x00,0xA1,0xD7,0x17,0x01,0x26,0xEA,0xEA,0x00,0xA3,0xEA,0xEA,0x00,0xA1, +0xE4,0x00,0x96,0xF6,0xE4,0x00,0x97,0x62,0xE4,0x00,0x97,0x26,0xEC,0x0A,0x00,0xA3, +0xEC,0x0A,0x00,0xA1,0xE4,0x00,0x05,0xD9,0xE4,0x00,0x96,0x54,0x5C,0x63,0x00,0x20, +0x63,0x66,0xE4,0x00,0x95,0xA8,0x5C,0x63,0x00,0x20,0x63,0x0C,0xEA,0xEA,0x00,0xA3, +0x0F,0x0A,0x1E,0x8E,0xF8,0x10,0x77,0x00,0xE4,0x00,0x95,0x22,0xEA,0xEA,0x00,0xA3, +0x9E,0xE1,0x5E,0xF7,0x04,0xEE,0xEA,0x00,0xA3,0xE7,0xFF,0xFF,0x47,0x13,0x17,0x00, +0xD3,0x01,0x04,0x26,0x0A,0xEA,0x19,0xD2,0xE1,0x0A,0x06,0xFE,0xEA,0x00,0xAC,0xEE, +0xEA,0x00,0xA8,0x12,0xEB,0x00,0x22,0xE0,0x4A,0x9A,0xE8,0x53,0x00,0x52,0xFA,0xEA, +0x00,0xB4,0x9A,0xE8,0xE4,0x00,0x00,0x21,0x9A,0xE8,0x53,0x00,0x62,0xFA,0xEA,0x00, +0xB4,0x52,0xE0,0x80,0x1F,0x20,0x81,0xFB,0x2A,0x00,0xAC,0x13,0x2B,0x00,0xFB,0x2A, +0x00,0xAD,0xFB,0x0A,0x00,0xAE,0xF8,0x0A,0x00,0xAF,0x5E,0xF7,0x00,0xFA,0xEA,0x00, +0xB0,0xF8,0x0A,0x00,0xB1,0xF8,0x0A,0x00,0xB2,0xC2,0xE0,0x10,0x01,0xF8,0x0A,0x00, +0xB3,0xEB,0x17,0x00,0xD1,0xC7,0x18,0xFF,0xFD,0xEF,0x17,0x00,0xD1,0x12,0xEC,0x00, +0x52,0xF7,0x01,0x9B,0x01,0x1A,0xEC,0x00,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x08,0x81, +0xE4,0x00,0x01,0x8F,0x13,0x17,0x00,0x23,0x09,0x4A,0x0B,0x0A,0x19,0xD3,0x02,0x05, +0xD6,0x12,0xF7,0x01,0x22,0xE0,0x4A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x3D,0xF9,0x18, +0x17,0x00,0xE4,0x00,0x00,0x29,0x22,0xE4,0x5E,0xC2,0xF4,0x00,0x01,0x9B,0x01,0xCA, +0xF7,0x3D,0xF9,0x1B,0x17,0x00,0x12,0xF7,0x00,0xE4,0x00,0x00,0x2D,0xD2,0xE2,0x04, +0x56,0xC3,0x14,0x00,0x01,0xCB,0x18,0x3D,0xF9,0x1A,0xF8,0x00,0x12,0xF8,0x00,0x5E, +0xF7,0x00,0x1A,0xEB,0x00,0xE4,0x00,0x00,0xE5,0x13,0x17,0x00,0x5F,0x04,0x09,0x20, +0x00,0x99,0x0B,0x0A,0x19,0x23,0x0D,0x8A,0x13,0x37,0x01,0x13,0x17,0x02,0x4E,0xF9, +0x40,0x46,0xF7,0xC5,0xC2,0xEB,0x54,0xA4,0x20,0x01,0x3D,0x12,0xED,0x00,0x52,0xF7, +0x03,0xE4,0x00,0x00,0x87,0x13,0x17,0x00,0x5F,0x04,0x29,0x20,0x06,0x95,0x0B,0x0A, +0x19,0x23,0x0C,0xDA,0x13,0x37,0x01,0x13,0x17,0x02,0x4E,0xF9,0x40,0x46,0xF7,0xC5, +0xC3,0x00,0x10,0x01,0xEE,0xF8,0x00,0xC4,0x12,0xED,0x00,0x57,0x37,0x01,0x23,0x20, +0x64,0xEF,0x18,0x00,0xC6,0x23,0x00,0x32,0x9B,0x1B,0x46,0xF7,0xC4,0xE4,0x00,0x00, +0x0F,0x52,0xF7,0x04,0x1A,0xED,0x00,0x0C,0x0A,0x00,0x0C,0x0A,0x19,0xE4,0x00,0x02, +0xC7,0xE4,0x00,0x92,0xD0,0x5C,0x63,0x00,0xD0,0x60,0x0A,0xC2,0xE4,0x00,0x94,0x12, +0xE4,0x00,0x93,0xD6,0x50,0x60,0x20,0xE4,0x00,0x03,0xA2,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x3D,0xF9,0x12,0xF7,0x00,0x1A,0xEB,0x00,0x12,0xEB,0x00,0x22,0xE0,0x4E,0x12, +0xED,0x00,0x56,0xF7,0x01,0x5E,0xE0,0x09,0x49,0xA4,0x43,0xE4,0x00,0x00,0x43,0x12, +0xEB,0x00,0x22,0xE4,0x2A,0x51,0xA0,0x80,0xE4,0x00,0x00,0x29,0x12,0xEB,0x00,0x22, +0xEB,0xD8,0x12,0xEB,0x00,0x22,0xEF,0xC0,0xC9,0xA0,0xFF,0xFF,0xEE,0xEA,0x00,0xA6, +0x22,0xE4,0x2E,0xED,0xAA,0x00,0xA1,0xEC,0x0A,0x00,0xA4,0xE4,0x00,0x93,0x20,0xEA, +0xEA,0x00,0xA1,0xD5,0xB7,0x00,0x71,0x12,0xEC,0x00,0x56,0xF7,0x01,0xD2,0xE0,0x05, +0x22,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x08,0xAC,0x23,0x00,0x24,0x9F,0x1F,0xFB,0x17, +0x08,0xAC,0xEC,0x0A,0x00,0xA3,0x12,0xEC,0x00,0x56,0xF7,0x01,0x22,0xE0,0x2C,0xF1, +0xAA,0x00,0xB4,0xE4,0x00,0x00,0xAD,0xE9,0xAA,0x00,0xA1,0xE4,0x00,0x00,0x9D,0x12, +0xEB,0x00,0x22,0xE0,0x42,0x12,0xEC,0x00,0x56,0xF7,0x01,0x22,0xE0,0x56,0xE4,0x00, +0x00,0x3D,0xE4,0x00,0x91,0x02,0x5C,0x63,0x00,0x20,0x63,0xE4,0xE7,0xFF,0xFF,0xD3, +0xEA,0xEA,0x00,0xA3,0xEF,0x0A,0x00,0xAA,0xE4,0x00,0x00,0x17,0xEA,0xEA,0x00,0xA3, +0x0F,0x0A,0x1E,0x8E,0xF8,0x10,0x77,0x00,0xE4,0x00,0x90,0x82,0xEA,0xEA,0x00,0xA3, +0x9E,0xE1,0x5E,0xF7,0x04,0xEE,0xEA,0x00,0xA3,0xEA,0xEA,0x00,0xA3,0xD6,0xED,0xFD, +0x96,0xE4,0x00,0x92,0x28,0xE4,0x00,0x91,0xEC,0xEC,0x0A,0x00,0xA1,0xEC,0x0A,0x00, +0xA3,0xE4,0x00,0x00,0x45,0x98,0x60,0x9D,0x61,0xE4,0x00,0x90,0x20,0xE4,0x00,0x00, +0x0D,0x99,0x60,0xD5,0xAB,0xFF,0x95,0xE4,0x00,0x91,0xDC,0xE4,0x00,0x91,0xA0,0xEC, +0x0A,0x00,0xA1,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x00,0xD1,0x53,0x18,0x02,0xEF,0x17, +0x00,0xD1,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0x81,0xC3,0x00,0x32,0x0A,0x20,0x00, +0x49,0x13,0x0C,0x00,0x9B,0x3E,0xEC,0x17,0x08,0x81,0x47,0x18,0xCC,0x1B,0x0C,0x00, +0x0E,0x01,0x02,0x0D,0xE1,0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E,0x0D,0x81,0x12,0x0D, +0x61,0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20,0x85,0x29,0x9C,0x38,0x0D, +0x21,0x04,0xE4,0x00,0x98,0x54,0x98,0x60,0x88,0x83,0xE4,0x00,0x95,0x86,0x98,0x61, +0x98,0x82,0xE4,0x00,0x95,0x76,0x98,0x60,0xFC,0x80,0x3E,0x0C,0xE4,0x00,0x91,0x62, +0x98,0x61,0xFC,0x80,0x3E,0x0C,0xE4,0x00,0x92,0xC8,0x0D,0x21,0x06,0x9C,0x28,0xE4, +0x00,0x9B,0x1F,0x20,0x64,0x1E,0xE4,0x00,0x9C,0x49,0xE4,0x00,0x9C,0x67,0x9C,0x38, +0x0D,0x21,0x04,0xE4,0x00,0x9C,0x7C,0x0D,0x21,0x06,0x9C,0x28,0xE4,0x00,0x9C,0x43, +0xE4,0x00,0x9E,0x3B,0xE4,0x00,0x9E,0xA3,0xE4,0x00,0x9E,0xFF,0xE4,0x00,0xA2,0xDD, +0xE4,0x00,0xA0,0x47,0xE4,0x00,0x9F,0x4B,0xE4,0x00,0x9F,0x81,0xE4,0x00,0x9F,0xB7, +0xE4,0x00,0x9F,0xDB,0xE4,0x00,0x9F,0xFF,0xE4,0x00,0x9E,0x35,0xE4,0x00,0xA0,0x2D, +0x20,0x60,0x28,0x20,0x64,0x3E,0xE4,0x00,0x00,0x11,0xE4,0x00,0xA0,0xC9,0xE4,0x00, +0xA0,0xE3,0x85,0x29,0xE4,0x00,0xA0,0xF9,0xC2,0xE0,0x10,0x01,0xE8,0x77,0x00,0xBB, +0xEB,0x17,0x00,0xBB,0xD4,0x78,0xFF,0xC6,0x85,0x29,0xE4,0x00,0xA3,0x99,0xC3,0x34, +0x00,0x01,0xCA,0xF9,0x23,0xFC,0x0A,0xF7,0x00,0xD2,0xFF,0x04,0x3C,0xC3,0x00,0x10, +0x01,0xF2,0xF8,0x07,0x6E,0x9E,0xE1,0x5E,0xF7,0x00,0xFA,0xF8,0x07,0x6E,0x22,0xE1, +0xCA,0xC3,0x00,0x10,0x01,0xC3,0x60,0x10,0x01,0xFF,0x18,0x01,0xBE,0xCA,0xE0,0x11, +0x7D,0xCB,0x39,0x22,0x00,0xFF,0x7B,0x09,0x68,0x1F,0x57,0xFD,0x57,0x5A,0xFF,0x4F, +0x5A,0x10,0x8F,0x59,0x0B,0x9A,0x01,0x4F,0x97,0x08,0x8F,0x9B,0xEB,0x9C,0xDD,0x3B, +0x0F,0x9A,0x01,0x5F,0x57,0x00,0x5F,0x4F,0xE9,0x57,0x57,0xFF,0x4F,0x5A,0x10,0x8F, +0x59,0x0B,0x9A,0x01,0x20,0x00,0x6D,0xFF,0xA0,0x80,0x00,0x5F,0x9C,0x04,0x47,0x9C, +0xEC,0x0B,0xB8,0x01,0xC7,0xBD,0x7F,0xFF,0x47,0x9C,0xED,0xE4,0x00,0x00,0x0F,0x0B, +0x98,0x01,0x0F,0x9A,0x01,0x9E,0xE1,0x9F,0x02,0xC2,0xE2,0x30,0x04,0x23,0xFE,0xB1, +0x85,0x29,0x5C,0x63,0x04,0xE4,0x00,0xA2,0x6B,0x9A,0xE0,0x8B,0x17,0xE4,0x00,0x00, +0x1D,0x43,0x23,0xBC,0x9E,0xE1,0x13,0x39,0x00,0x8F,0x19,0xD4,0x97,0xFF,0xB4,0x40, +0x60,0xC5,0x85,0x29,0x9C,0x38,0x98,0x60,0x0D,0x21,0x04,0xE7,0xFF,0xFD,0x90,0x98, +0x61,0xE7,0xFF,0xFD,0x84,0x98,0x6F,0xE7,0xFF,0xFE,0x3A,0x0D,0x21,0x06,0x98,0x60, +0x9C,0x28,0xE7,0xFF,0xFD,0x63,0x9C,0x38,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x04,0xEC, +0x17,0x08,0x7F,0x0D,0x41,0x00,0xC2,0xE0,0x10,0x01,0x50,0x60,0x80,0xF2,0xF7,0x00, +0xB8,0x22,0xE0,0x52,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x00,0xC0,0x56,0xF7,0x01,0x5E, +0xE0,0x09,0x48,0x64,0x43,0xC1,0x40,0x10,0x01,0xEA,0xEA,0x00,0xD1,0x56,0xF7,0x02, +0x22,0xE0,0x6C,0xC0,0x80,0x10,0x01,0xFC,0x84,0x07,0x70,0xE7,0xFF,0xF1,0xEE,0xEA, +0xEA,0x00,0xD1,0xC6,0xF7,0xFF,0xFD,0xEE,0xEA,0x00,0xD1,0x0D,0x41,0x02,0x0D,0x21, +0x06,0x9C,0x28,0xE7,0xFF,0xFF,0x03,0x9C,0x30,0xC3,0x00,0x10,0x01,0x0D,0x21,0x0C, +0xFC,0x98,0x07,0x70,0x0D,0x41,0x08,0x8A,0xE4,0x8B,0x24,0x18,0x17,0x00,0xC3,0x00, +0x10,0x01,0x9E,0xE1,0xFF,0x18,0x07,0xF2,0xD6,0xF8,0xFF,0x9E,0x52,0xE0,0x62,0x1F, +0x19,0x1F,0x1A,0xE4,0x00,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x07,0x71,0x18,0x17,0x00, +0x9E,0xE1,0xD7,0x17,0xFF,0xDE,0x1E,0xE0,0x9E,0xC3,0x60,0x10,0x01,0x1A,0xE4,0x1F, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x3D,0xF8,0x12,0xF7,0x00,0xFA,0xFB,0x07,0x6F,0xF2, +0xFB,0x07,0x6F,0x22,0xEC,0xCC,0xC2,0xE0,0x10,0x01,0xC3,0x40,0x10,0x01,0xF3,0xB7, +0x0B,0x76,0x9B,0x00,0xC2,0xE0,0x10,0x01,0xC3,0xC0,0x10,0x01,0xC1,0x00,0x10,0x01, +0xFE,0xF7,0x07,0x90,0xFF,0x5A,0x09,0xA4,0x8B,0x38,0xFF,0xDE,0x0C,0xF2,0xFD,0x08, +0x09,0x68,0xE4,0x00,0x01,0x09,0xC3,0x80,0x10,0x01,0x9A,0xE0,0xFF,0x9C,0x0B,0x60, +0x8B,0x64,0x43,0x17,0xE4,0x0B,0x38,0x00,0x43,0x17,0xDC,0x4F,0x59,0x42,0x1B,0x38, +0x21,0x1B,0x58,0x20,0x9E,0xE2,0x5E,0xE2,0x09,0x23,0xFF,0xA5,0x0C,0x81,0x04,0x50, +0x60,0x20,0xE7,0xFF,0xFB,0x9C,0xC1,0x40,0x10,0x01,0xEA,0xEA,0x00,0xD1,0x0C,0x81, +0x06,0x56,0xF7,0x02,0x22,0xE1,0x74,0xE4,0x00,0x00,0x8F,0xF3,0x9B,0x07,0x6F,0x23, +0x84,0x34,0x23,0x88,0x68,0x43,0x98,0x44,0xE4,0x00,0x00,0x0F,0x43,0x98,0xF4,0x15, +0x5C,0x01,0x19,0x57,0x00,0x0B,0x9C,0x01,0xE4,0x00,0x00,0x21,0x0F,0x9A,0x02,0x4D, +0x5C,0x82,0x4F,0x9C,0x42,0x19,0x57,0x00,0x1B,0x97,0x01,0x9F,0x21,0x9F,0x02,0x5F, +0x39,0x04,0x9E,0xE2,0x9F,0x44,0xD7,0xB9,0xFE,0x2D,0xE7,0xFF,0xFF,0x45,0x50,0x60, +0x80,0xE7,0xFF,0xEF,0x82,0xEA,0xEA,0x00,0xD1,0xC6,0xF7,0xFF,0xFD,0xEE,0xEA,0x00, +0xD1,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0xE7,0xFF,0xFC,0x95,0xC2,0xE0, +0x10,0x01,0xC3,0x00,0x10,0x01,0xF0,0x77,0x0B,0xEC,0xC3,0x20,0x10,0x01,0xC2,0xE0, +0x10,0x01,0xFF,0x18,0x0B,0xFE,0xFE,0xF7,0x07,0xF8,0xFF,0x39,0x08,0x00,0x9B,0x60, +0x98,0x81,0xE4,0x00,0x01,0x7D,0x0B,0x57,0x01,0xC3,0x4F,0xFF,0xE0,0x20,0x00,0x35, +0x0B,0x57,0x03,0xC3,0x4F,0xFF,0xE4,0x20,0x00,0x49,0x0B,0x58,0x01,0x18,0x19,0x00, +0x0F,0x57,0x01,0x0B,0x58,0x03,0x0F,0x57,0x03,0x13,0x59,0x00,0x23,0x41,0x22,0x0B, +0x98,0x03,0x0B,0x57,0x03,0x43,0x5C,0xD5,0x5F,0x5A,0x06,0x4F,0xDA,0xFA,0x0B,0xB8, +0x01,0x47,0x5E,0xD6,0x09,0x17,0x01,0x43,0x5A,0xF5,0x41,0x1D,0x45,0x5D,0x08,0x06, +0x4F,0xC8,0xFA,0x45,0x1E,0x46,0x43,0xC8,0xF5,0x8F,0xDA,0x5F,0xCC,0x99,0x20,0x00, +0x25,0x5F,0x46,0x51,0x20,0x01,0x11,0x18,0x99,0x00,0x0F,0xB7,0x01,0x0F,0x97,0x03, +0xE4,0x00,0x00,0x71,0x0B,0x98,0x01,0x0B,0xD7,0x01,0x43,0xDC,0xF5,0x5F,0xDE,0x06, +0x4F,0xBE,0xFA,0x47,0xDD,0xF6,0x0B,0x58,0x03,0x41,0x1E,0xED,0x0B,0xD7,0x03,0x43, +0xDA,0xF5,0x5F,0xDE,0x06,0x4F,0xBE,0xFA,0x47,0xDD,0xF6,0x43,0xBD,0xF5,0xD7,0xA8, +0x00,0x52,0x0F,0x97,0x01,0x0F,0x57,0x03,0x0B,0x57,0x01,0x9F,0x61,0x0F,0x58,0x01, +0x5F,0x7B,0x00,0x0B,0x57,0x03,0x9F,0x21,0x0F,0x58,0x03,0x9E,0xE4,0x1F,0x18,0x30, +0xD7,0x63,0xFA,0x36,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x3D,0xF9,0x1C,0x21, +0xE0,0xCA,0xF7,0x3D,0xF8,0x0D,0x41,0x18,0x0D,0x61,0x14,0x0D,0x81,0x10,0x0D,0xA1, +0x0C,0x0D,0xC1,0x08,0x0D,0xE1,0x04,0x0E,0x01,0x00,0x0D,0x21,0x1C,0xC1,0x80,0x10, +0x01,0xFD,0x8C,0x08,0xE2,0x0A,0x0C,0x01,0xC6,0x10,0x7F,0xFF,0x0E,0x0C,0x01,0x13, +0x38,0x00,0xC3,0x00,0x10,0x01,0xFB,0x38,0x00,0xB8,0x13,0x37,0x00,0xC2,0xE0,0x10, +0x01,0xFB,0x37,0x07,0x6F,0xC1,0xA0,0x10,0x01,0xC1,0xC0,0x10,0x01,0xC3,0x60,0x10, +0x01,0xC3,0x40,0x10,0x01,0x5C,0x63,0x00,0xFD,0xAD,0x07,0xF4,0xFD,0xCE,0x09,0x68, +0xFD,0xE0,0x80,0x00,0xFD,0x5B,0x07,0x70,0xFD,0x7A,0x0B,0xEC,0xD0,0x61,0x14,0x46, +0x0B,0x2B,0x16,0x0A,0xEB,0x18,0x45,0xF0,0x7D,0x0E,0xEB,0x17,0x0D,0xEC,0x01,0x0F, +0x2B,0x19,0x13,0x0B,0x00,0xD3,0x01,0x1F,0x61,0x0B,0x6B,0x46,0x0B,0x0B,0x48,0x0F, +0x6B,0x49,0x0F,0x0B,0x47,0xD7,0x17,0x1F,0x34,0x0E,0xEB,0x47,0x0F,0x0B,0x17,0x0F, +0x2B,0x49,0x0F,0x6B,0x19,0xE4,0x00,0x07,0xAD,0xC2,0xE0,0x10,0x01,0x5F,0x98,0x04, +0xEA,0xF7,0x0B,0x7D,0x5F,0x17,0x15,0x4A,0xFC,0xB8,0x0E,0xEB,0x13,0xCF,0x39,0x00, +0x30,0x9A,0xE0,0x8F,0x2B,0x0B,0x19,0x18,0x27,0x1C,0x50,0xC2,0xE0,0x10,0x01,0x5F, +0x38,0x04,0xEA,0xF7,0x0B,0x7F,0x5F,0x17,0x15,0x4A,0xF9,0xB8,0x0E,0xEB,0x15,0xCE, +0xFB,0x00,0x30,0x8E,0xEB,0x0B,0x17,0x16,0x9A,0xE0,0x27,0x1C,0x50,0xC2,0xE0,0x10, +0x01,0x5F,0x38,0x04,0xEA,0xF7,0x0B,0x7D,0x5F,0x17,0x15,0x4A,0xF9,0xB8,0x0E,0xEB, +0x43,0xCF,0x7B,0x00,0x30,0x9A,0xE0,0x8F,0x6B,0x0B,0x1B,0x18,0x27,0x1C,0x50,0xC2, +0xE0,0x10,0x01,0x5F,0x38,0x04,0xEA,0xF7,0x0B,0x7F,0x5F,0x17,0x15,0x4A,0xF9,0xB8, +0x0E,0xEB,0x45,0xE4,0x00,0x00,0x63,0xC3,0x00,0x10,0x01,0x5F,0x77,0x04,0xEB,0x18, +0x0B,0x7D,0x5E,0xF8,0x15,0x4B,0x1B,0xC0,0x0F,0x0B,0x13,0x9A,0xE0,0x27,0x3C,0x50, +0xC2,0xE0,0x10,0x01,0x5F,0x19,0x04,0xEA,0xF7,0x0B,0x7F,0x5F,0x37,0x15,0x4A,0xF8, +0xB8,0x0E,0xEB,0x15,0xE7,0xFF,0xFB,0x74,0xC2,0xE0,0x10,0x01,0x13,0x0B,0x00,0xFE, +0xF7,0x0C,0x00,0x9B,0x20,0x9B,0x4C,0xFF,0x60,0x07,0xF9,0xE4,0x00,0x00,0x47,0x0B, +0x97,0x01,0xD3,0x8B,0x00,0x3D,0x0F,0x57,0x01,0x0B,0x97,0x01,0xC3,0x80,0xFF,0x2A, +0x20,0x00,0x19,0x0F,0x77,0x01,0x9F,0x21,0x1E,0xF7,0x30,0x5F,0x39,0x04,0xD7,0x19, +0xFF,0x0D,0x27,0x04,0x7D,0x0B,0x2B,0x43,0x0A,0xEB,0x13,0x42,0xF9,0xBD,0x0B,0x2B, +0x45,0x0E,0xEB,0x1B,0x0A,0xEB,0x15,0x42,0xF9,0xBD,0x0E,0xEB,0x1D,0xE4,0x00,0x00, +0x15,0x0C,0x0B,0x1B,0x0C,0x0B,0x1D,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x00,0xB8,0x22, +0xE1,0x9E,0x52,0xE0,0x52,0x0B,0x2B,0x13,0x1A,0xEA,0x00,0x4F,0x79,0x41,0x0A,0xEB, +0x15,0x4F,0x7B,0x20,0x4F,0x57,0x41,0x1B,0x2A,0x02,0x57,0x5A,0x0F,0x1A,0xEA,0x03, +0x47,0x5B,0xD5,0x1B,0x4A,0x01,0x27,0x04,0xA1,0x0B,0x0B,0x1A,0x0A,0xEB,0x1C,0x4F, +0x38,0x42,0x4F,0x57,0x42,0x5F,0x39,0x04,0x57,0x5A,0x0F,0x4F,0x39,0x20,0x1B,0x0A, +0x05,0x47,0x39,0xD5,0x1A,0xEA,0x06,0x1B,0x2A,0x04,0xE4,0x00,0x00,0x1B,0x18,0x0A, +0x04,0x18,0x0A,0x05,0x18,0x0A,0x06,0x88,0x6A,0x98,0x87,0xE7,0xFF,0xF6,0x3C,0x18, +0x6A,0x07,0xE4,0x00,0x01,0x8B,0x8A,0xEA,0x18,0x17,0x00,0xC3,0x20,0x10,0x01,0x9E, +0xE1,0xFF,0x39,0x07,0xF2,0xD6,0xF9,0xFF,0x9E,0x52,0xE0,0x62,0x1A,0xEA,0x00,0x0A, +0xEB,0x13,0x4F,0x37,0x41,0x1A,0xEA,0x02,0x0A,0xEB,0x15,0x1B,0x2A,0x01,0x1A,0xEA, +0x04,0x4F,0x37,0x41,0x56,0xF8,0x01,0x4F,0x18,0x20,0x52,0xF7,0x20,0x53,0x18,0x02, +0x1A,0xEA,0x11,0x1B,0x0A,0x12,0x0A,0xEB,0x1A,0x4F,0x17,0x42,0x1A,0xEA,0x0E,0x1B, +0x0A,0x0D,0x0A,0xEB,0x1C,0x4F,0x17,0x42,0x1B,0x2A,0x03,0x1B,0x0A,0x0F,0x1A,0xEA, +0x10,0x88,0x6A,0x50,0x80,0x1F,0xE7,0xFF,0xF5,0x66,0xC2,0xE0,0x10,0x01,0xC3,0x20, +0x10,0x01,0xC3,0x80,0x10,0x01,0x18,0x6A,0x1F,0xFE,0xF7,0x07,0x90,0xFF,0x39,0x09, +0xA4,0x9B,0x00,0xC3,0x60,0x10,0x01,0xFF,0x9C,0x0C,0xF2,0xF3,0x5B,0x07,0x6F,0x23, +0x44,0x34,0x23,0x48,0x68,0x43,0x58,0x74,0xE4,0x00,0x00,0x0F,0x43,0x58,0xE4,0x17, +0xBA,0x01,0x1B,0xB7,0x00,0x0B,0x5A,0x01,0xE4,0x00,0x00,0x21,0x0F,0x59,0x02,0x4F, +0xBA,0x82,0x4F,0x5A,0x42,0x1B,0xB7,0x00,0x1B,0x57,0x01,0x9F,0x02,0x9E,0xE2,0x9F, +0x24,0x5F,0x07,0x49,0x23,0xFF,0x1D,0x0A,0xEC,0x00,0xD2,0xFF,0x0D,0x9C,0x9A,0xE1, +0xE4,0x00,0x02,0xF5,0xD0,0x60,0x05,0x66,0xFE,0xE0,0x7F,0xFF,0xC3,0x20,0x10,0x01, +0xC3,0x40,0x10,0x01,0xEE,0xF9,0x07,0xF9,0xF8,0x1A,0x08,0x00,0xFF,0x39,0x07,0xF8, +0xFF,0x5A,0x08,0x00,0x0E,0xF9,0x03,0x0E,0xF9,0x05,0x0E,0xF9,0x07,0x18,0x1A,0x01, +0xF2,0xF8,0x00,0xB8,0x22,0xE0,0xB2,0x52,0xE0,0x52,0x1A,0xEA,0x00,0x9A,0xFF,0x88, +0x6A,0x1A,0xEA,0x01,0x1A,0xEA,0x02,0x1A,0xEA,0x03,0x1A,0xEA,0x04,0x1A,0xEA,0x05, +0x1A,0xEA,0x06,0x98,0x87,0xE7,0xFF,0xF3,0xE8,0x18,0x6A,0x07,0xE4,0x00,0x00,0x89, +0x8A,0xEA,0x18,0x17,0x00,0xC3,0x00,0x10,0x01,0x9E,0xE1,0xFF,0x18,0x07,0xF2,0xD6, +0xF8,0xFF,0x9E,0x52,0xE0,0x62,0x9B,0x1F,0x1A,0xEA,0x00,0xC2,0xE0,0x10,0x01,0xFE, +0xF7,0x07,0x71,0x1B,0x17,0x00,0xC3,0x20,0x10,0x01,0x9E,0xE1,0xFF,0x39,0x07,0x8F, +0xD6,0xF9,0xFF,0x9E,0x88,0x6A,0x50,0x80,0x1F,0xE7,0xFF,0xF3,0x60,0x18,0x6A,0x1F, +0x0A,0xEC,0x01,0x0C,0x0D,0x00,0x45,0xEF,0xBD,0x0D,0xEC,0x01,0xE4,0x00,0x02,0x03, +0xD0,0x62,0x07,0xEE,0xF2,0xF8,0x00,0xB8,0x22,0xE0,0xD2,0x52,0xE0,0x52,0xC3,0x00, +0x10,0x01,0x1A,0xEA,0x00,0xEB,0x18,0x08,0x7F,0x9A,0xFF,0x1B,0x0A,0x05,0x1A,0xEA, +0x01,0x1A,0xEA,0x02,0x1A,0xEA,0x03,0x1A,0xEA,0x04,0x1A,0xEA,0x06,0x88,0x6A,0x98, +0x87,0xE7,0xFF,0xF2,0xD0,0x18,0x6A,0x07,0xE4,0x00,0x01,0x15,0x8A,0xEA,0x18,0x17, +0x00,0xC3,0x00,0x10,0x01,0x9E,0xE1,0xFF,0x18,0x07,0xF2,0xD6,0xF8,0xFF,0x9E,0x52, +0xE0,0x62,0x1A,0xEA,0x00,0x0A,0xEB,0x13,0x4F,0x17,0x41,0x1A,0xEA,0x02,0x1B,0x0A, +0x01,0x0A,0xEB,0x15,0x4F,0x17,0x41,0x1A,0xEA,0x04,0x1B,0x0A,0x03,0x12,0xEB,0x00, +0x57,0x17,0x01,0x4E,0xF7,0x20,0x53,0x18,0x20,0x52,0xF7,0x02,0x1B,0x0A,0x11,0x1A, +0xEA,0x12,0x0A,0xEB,0x1A,0x4F,0x17,0x42,0x1A,0xEA,0x0E,0x1B,0x0A,0x0D,0x0A,0xEB, +0x1C,0x4F,0x17,0x42,0x1A,0xEA,0x10,0x1B,0x0A,0x0F,0x88,0x6A,0x50,0x80,0x1F,0xE7, +0xFF,0xF1,0xF4,0x9A,0xE0,0x18,0x6A,0x1F,0x43,0x17,0x74,0x0B,0x38,0x00,0x43,0x17, +0x54,0x4F,0x59,0x42,0x1B,0x38,0x21,0x1B,0x58,0x20,0x9E,0xE2,0x5E,0xE7,0x49,0x23, +0xFF,0xA5,0x45,0xF0,0x7D,0x9A,0xE2,0x0D,0xEC,0x01,0x0E,0xED,0x00,0xE4,0x00,0x00, +0x61,0x9B,0x00,0xD2,0xFF,0xE6,0x28,0xE7,0xFF,0xF9,0x61,0x0A,0xEB,0x46,0x0B,0x0B, +0x16,0x5E,0xF8,0x15,0x4B,0x21,0x01,0xCE,0xF9,0x00,0x30,0x8E,0xEB,0x4B,0x60,0x0A, +0x0B,0x17,0x16,0x9A,0xE0,0xD3,0x1F,0xE0,0xA4,0xE7,0xFF,0xF8,0x43,0x0E,0x01,0x02, +0x0D,0xE1,0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E,0x0D,0x81,0x12,0x0D,0x61,0x16,0x0D, +0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20,0x85,0x29,0x5C,0x63,0x00,0xCF,0x03,0x00, +0x34,0xCE,0xE3,0x00,0x68,0x1C,0x21,0xC0,0xC0,0x80,0x10,0x01,0x0D,0x21,0x3C,0x1C, +0x61,0x04,0xFC,0x84,0x09,0x34,0xC0,0xA0,0x10,0x01,0x8C,0x98,0xFC,0xA5,0x0A,0xF8, +0x50,0xC0,0x1A,0x8C,0xB7,0xE4,0x00,0x29,0xD2,0x0D,0x21,0x3E,0x1C,0x21,0x40,0x85, +0x29,0x1C,0x21,0xD0,0x0D,0x41,0x28,0x0D,0x81,0x20,0x5D,0x43,0x00,0x5D,0x84,0x00, +0x42,0xEC,0x55,0x9E,0xE1,0x5E,0xF7,0x00,0x57,0x17,0x03,0x4E,0xF7,0x11,0x5F,0x00, +0x09,0x0D,0x61,0x24,0x0D,0xA1,0x1C,0x0D,0xC1,0x18,0x49,0xA1,0x01,0x0D,0x21,0x2C, +0x8D,0xB7,0xC1,0xD8,0x00,0x21,0xE4,0x00,0x6A,0x4E,0x99,0x60,0xFD,0xCE,0xB9,0xDF, +0xE4,0x00,0x00,0xE3,0x88,0x61,0x50,0x80,0x22,0x50,0xA0,0x18,0xE7,0xFF,0xC1,0x5A, +0x9A,0xE4,0x43,0x0E,0x54,0x13,0x58,0x00,0x1F,0x01,0x18,0x4F,0x3A,0x09,0x57,0x5A, +0x01,0x8F,0x19,0x17,0x18,0xE8,0x5F,0x40,0x01,0x4B,0x50,0x7B,0x47,0x5A,0xC4,0x5F, +0x17,0x02,0x20,0x00,0x25,0x4F,0x17,0x20,0x5F,0x18,0x02,0x1F,0x61,0x18,0x47,0x18, +0xD5,0x8F,0x3B,0x1B,0x19,0xE8,0x9D,0x41,0x5D,0x4A,0x00,0xD5,0x4C,0x00,0xE1,0x06, +0xE0,0x81,0xCC,0x6B,0x00,0x18,0x88,0x81,0x8C,0x77,0x50,0xA0,0x18,0x9D,0x61,0xE7, +0xFF,0xC1,0x94,0xE4,0x00,0x00,0x1D,0x9E,0xE1,0xD2,0xE8,0xFD,0x4E,0xE7,0xFF,0xFF, +0xC5,0x5E,0xEB,0x00,0xD5,0xB7,0xFC,0x85,0xE4,0x00,0x69,0x70,0x0D,0x21,0x2E,0x0D, +0xC1,0x1A,0x0D,0xA1,0x1E,0x0D,0x81,0x22,0x0D,0x61,0x26,0x0D,0x41,0x2A,0x1C,0x21, +0x30,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x01,0x62,0x85,0x29,0xC2,0xE0,0x10, +0x01,0xEC,0x77,0x08,0x52,0x85,0x29,0x1C,0x21,0xC8,0x0D,0x21,0x34,0x0D,0x41,0x30, +0x0D,0x61,0x2C,0x0D,0x81,0x28,0x0D,0xA1,0x24,0x0D,0xC1,0x20,0xD0,0x69,0x15,0xE5, +0x4F,0x03,0x10,0xC2,0xF8,0x00,0x21,0xC1,0x98,0x00,0x21,0xFE,0xF7,0xB9,0x2C,0xC1, +0x78,0x00,0x21,0x8E,0xF8,0xFD,0x8C,0xB9,0xDC,0x0E,0xF7,0x02,0x05,0xA0,0x81,0xFD, +0x6B,0xB9,0xDF,0x86,0xE9,0x1C,0x83,0x01,0xCC,0x63,0x00,0x1A,0xCC,0x84,0x00,0x1A, +0x9C,0x9F,0xE7,0xFF,0xFD,0x9E,0xE4,0x00,0x05,0x05,0x0C,0x61,0x04,0xE4,0x00,0x68, +0x40,0x0C,0x61,0x06,0x99,0x40,0x9C,0x7E,0x5C,0x63,0x00,0xCC,0x63,0x00,0x1A,0x8D, +0x63,0x1C,0x61,0x08,0x50,0x80,0x22,0x50,0xA0,0x18,0xE7,0xFF,0xBF,0x3E,0x8B,0x0A, +0x9A,0xE4,0x5F,0x03,0x39,0x20,0x00,0xDD,0x43,0x2B,0xC4,0x13,0x79,0x00,0x1F,0x21, +0x20,0x4F,0x5B,0x09,0x57,0x7B,0x01,0x8F,0x3A,0x17,0x39,0xE8,0x5F,0x60,0x01,0x4B, +0x70,0x7B,0x47,0x7B,0xCC,0x5F,0x37,0x02,0x20,0x00,0x25,0x4F,0x37,0x20,0x5F,0x39, +0x02,0x1D,0x01,0x20,0x47,0x39,0xDD,0x8F,0x48,0x1B,0x3A,0xE8,0x9F,0x01,0x9E,0xE1, +0xD2,0xE8,0xFE,0x16,0xCC,0x6A,0x00,0x06,0x1C,0x81,0x08,0x8C,0x6D,0x50,0xA0,0x18, +0xE7,0xFF,0xBF,0x72,0x9D,0x44,0x5D,0x43,0x89,0x23,0xFE,0x61,0xE4,0x00,0x01,0x99, +0xE4,0x00,0x67,0x3A,0x1C,0x61,0x08,0x50,0x80,0x22,0x50,0xA0,0x18,0xE7,0xFF,0xBE, +0x58,0x9A,0xE4,0xD2,0xE7,0x01,0xC2,0x43,0x0C,0xBC,0x13,0x58,0xFC,0x1F,0x01,0x20, +0x4F,0x3A,0x09,0x57,0x5A,0x01,0x8F,0x19,0x17,0x18,0xE8,0x5F,0x40,0x01,0x4B,0x50, +0x7B,0x47,0x5A,0xC4,0x5F,0x17,0x02,0x20,0x00,0x25,0x4F,0x17,0x20,0x5F,0x18,0x02, +0x1F,0x61,0x20,0x47,0x18,0xD5,0x8F,0x3B,0x1B,0x19,0xE8,0x9E,0xE1,0xD2,0xE8,0xFE, +0x36,0xE4,0x00,0x00,0xD5,0xE4,0x00,0x66,0x90,0x1C,0x61,0x08,0x50,0x80,0x22,0x50, +0xA0,0x18,0xE7,0xFF,0xBD,0xAE,0xE4,0x00,0x00,0x9F,0x43,0x0B,0xBC,0x13,0x58,0xFC, +0x1F,0x01,0x20,0x4F,0x3A,0x09,0x57,0x5A,0x01,0x8F,0x19,0x13,0x18,0xE8,0x5F,0x40, +0x01,0x4B,0x50,0x7B,0x47,0x5A,0xC4,0x5F,0x17,0x02,0x5F,0x5A,0x02,0x20,0x00,0x25, +0x4F,0x17,0x20,0x5F,0x18,0x02,0x1F,0x81,0x20,0x47,0x18,0xD5,0x8F,0x3C,0x1B,0x19, +0xE8,0x9E,0xE1,0xD2,0xE8,0xFE,0x3E,0xC1,0x18,0x00,0x21,0x9D,0x64,0xFD,0x08,0xB9, +0xF7,0xD5,0x68,0x00,0x52,0x9A,0xE4,0xE7,0xFF,0xFF,0x67,0x04,0x60,0x81,0x1C,0x81, +0x08,0x50,0xA0,0x18,0xE7,0xFF,0xBD,0xCA,0xE4,0x00,0x65,0xD0,0xE4,0x00,0x02,0x59, +0xE4,0x00,0x65,0x9A,0x99,0x40,0x51,0xC0,0x22,0x1C,0x61,0x08,0x50,0x80,0x22,0x50, +0xA0,0x18,0xE7,0xFF,0xBC,0xAE,0x5E,0xEA,0x00,0x22,0xE0,0xE6,0x12,0xE1,0x15,0x56, +0xF7,0x0F,0x52,0xF7,0x40,0x1A,0xE1,0x15,0x12,0xE1,0x0C,0x56,0xF7,0x0F,0x52,0xF7, +0x50,0x13,0x01,0x0E,0x1A,0xE1,0x0C,0x9A,0xF0,0x47,0x17,0xC4,0x53,0x18,0x06,0x1B, +0x01,0x0E,0x13,0x01,0x1D,0x46,0xF7,0xC4,0x52,0xF7,0x07,0x1A,0xE1,0x1D,0xE4,0x00, +0x01,0x49,0x9A,0xE4,0x43,0x0C,0xBC,0x13,0x58,0xFC,0x1F,0x01,0x20,0x4F,0x3A,0x09, +0x57,0x5A,0x01,0x8F,0x19,0x17,0x18,0xE8,0x5F,0x40,0x01,0x4B,0x50,0x7B,0x47,0x5A, +0xC4,0x5F,0x17,0x02,0x20,0x00,0x25,0x4F,0x17,0x20,0x5F,0x18,0x02,0x1F,0x61,0x20, +0x47,0x18,0xD5,0x8F,0x3B,0x1B,0x19,0xE8,0x1F,0x77,0xFD,0x9E,0xE1,0x5F,0x7B,0x00, +0xD2,0xE7,0xFE,0x26,0xE4,0x00,0x00,0xF7,0x5F,0x97,0x00,0x27,0x84,0x2B,0x11,0x1A, +0x00,0xE4,0x00,0x00,0x0F,0x11,0x19,0x00,0x4F,0xA8,0x09,0x55,0x08,0x01,0x1F,0xC1, +0x20,0x5D,0x00,0x01,0x8F,0xDD,0x49,0x10,0x7B,0x17,0x9E,0xE8,0x47,0x88,0xE4,0x1B, +0x9E,0xE8,0x8B,0xDC,0x5F,0x98,0x02,0x20,0x00,0x31,0x43,0x9B,0xBC,0x4F,0x9C,0x20, +0x5F,0x9C,0x02,0x47,0x9C,0xF5,0x1D,0x01,0x20,0x8F,0xA8,0x1B,0x9D,0xE8,0x9E,0xE1, +0x9F,0x01,0x1F,0x5A,0x15,0x5F,0x18,0x00,0x1F,0x39,0x13,0x5F,0x97,0x00,0xD4,0x7C, +0xFD,0x55,0xCC,0x6A,0x00,0x18,0x19,0xC1,0x1F,0x8C,0x6D,0x1C,0x81,0x08,0x50,0xA0, +0x18,0x9D,0x41,0xE7,0xFF,0xBB,0xAC,0xD1,0x42,0xF7,0x8A,0xE7,0xFF,0xFD,0xFD,0x98, +0x64,0x1F,0x4B,0x02,0x40,0x63,0xDD,0x1F,0x2B,0x03,0x9F,0x64,0x5C,0x63,0x00,0x5F, +0x1B,0x00,0x9A,0xE0,0xE7,0xFF,0xFE,0xE9,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81, +0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32,0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0x1C, +0x21,0xE8,0x0D,0x61,0x0C,0x0D,0x21,0x14,0x0D,0x41,0x10,0x0D,0x81,0x08,0x0D,0xA1, +0x04,0x89,0x63,0xD0,0x69,0x0C,0xF5,0x4F,0x03,0x10,0xC2,0xF8,0x00,0x21,0xFE,0xF7, +0xB9,0x54,0x8E,0xF8,0x0E,0xF7,0x02,0x86,0xE9,0xCD,0x43,0x00,0x1A,0xC1,0xA0,0x10, +0x01,0x99,0x80,0xFD,0xAD,0x08,0x54,0x8D,0x4D,0x13,0x4A,0x01,0x13,0x2A,0x00,0x13, +0x0A,0x03,0x12,0xEA,0x02,0x4C,0x9A,0xC0,0x4C,0xB8,0xC0,0x4F,0x5A,0x80,0x4F,0x18, +0x80,0x8C,0x9A,0x8C,0xB8,0x8C,0x99,0x8C,0xB7,0x4F,0x39,0x40,0x4E,0xF7,0x40,0x88, +0x6C,0x8C,0x99,0x8C,0xB7,0x9D,0x81,0xE4,0x00,0x64,0xD0,0x5D,0x8C,0x00,0x9D,0x44, +0xD1,0x86,0xFE,0x4E,0x98,0x66,0x98,0x80,0x98,0xA0,0xCD,0x4B,0x00,0x1A,0x8D,0x4D, +0x10,0xCA,0x18,0xE4,0x00,0x65,0x00,0x98,0x66,0x98,0x80,0x98,0xA1,0x10,0xCA,0x18, +0xE4,0x00,0x64,0xE6,0x98,0x66,0x98,0x81,0x98,0xA0,0x10,0xCA,0x19,0xE4,0x00,0x64, +0xCC,0x98,0x66,0x98,0x81,0x98,0xA1,0x10,0xCA,0x19,0xE4,0x00,0x64,0xB2,0x98,0x66, +0x98,0x82,0x98,0xA0,0x98,0xC0,0xE4,0x00,0x64,0x9A,0x98,0x66,0x98,0x82,0x98,0xA1, +0x98,0xC0,0xE4,0x00,0x64,0x82,0x98,0x66,0x98,0x83,0x98,0xA0,0x98,0xC0,0xE4,0x00, +0x64,0x6A,0x98,0x66,0xE4,0x00,0x00,0x83,0xC1,0xA0,0x10,0x01,0x99,0x40,0xFD,0xAD, +0x08,0x72,0x5D,0x8A,0x00,0x41,0x6A,0x6C,0x98,0x60,0x88,0x8C,0x98,0xA0,0x10,0xCB, +0x00,0xE4,0x00,0x64,0x24,0x98,0x60,0x88,0x8C,0x98,0xA1,0x10,0xCB,0x00,0x9D,0x41, +0xE4,0x00,0x64,0x06,0x21,0x4F,0x7A,0x98,0x60,0x98,0x83,0x98,0xA0,0x98,0xC0,0xE4, +0x00,0x63,0xE8,0x98,0x60,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41, +0x12,0x0D,0x21,0x16,0x98,0x83,0x98,0xA1,0x98,0xC0,0x1C,0x21,0x18,0xE4,0x00,0x63, +0xAD,0xC3,0x00,0x10,0x01,0x0D,0xA1,0x06,0xFE,0xF8,0x08,0x6E,0xF3,0x38,0x08,0x6E, +0x13,0x57,0x01,0x13,0x17,0x03,0x4C,0x9A,0xC0,0x12,0xF7,0x02,0x4C,0xB8,0xC0,0x4F, +0x5A,0x80,0x4F,0x18,0x80,0x8C,0x9A,0x8C,0xB8,0x8C,0x99,0x8C,0xB7,0x4F,0x39,0x40, +0x4E,0xF7,0x40,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x98, +0x60,0x8C,0x99,0x8C,0xB7,0x1C,0x21,0x18,0xE4,0x00,0x62,0xAF,0xC1,0x60,0x10,0x01, +0x99,0x40,0xFD,0x6B,0x08,0x75,0x4D,0xAA,0x11,0x55,0x8A,0x03,0x10,0xCB,0x00,0x88, +0x6D,0x88,0x8C,0x98,0xA0,0xE4,0x00,0x62,0xDC,0x10,0xCB,0x00,0x88,0x6D,0x88,0x8C, +0x98,0xA1,0x9D,0x41,0xE4,0x00,0x62,0xBE,0x5D,0x4A,0x00,0x9D,0x61,0xD1,0x48,0xFE, +0xCE,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16, +0x1C,0x21,0x18,0x85,0x29,0x1C,0x21,0xE0,0x0D,0xC1,0x08,0x0D,0x21,0x1C,0x0D,0x41, +0x18,0x0D,0x61,0x14,0x0D,0x81,0x10,0x0D,0xA1,0x0C,0x0D,0xE1,0x04,0x89,0xC4,0xD0, +0x66,0x00,0xB5,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xB9,0x7C,0x4C,0x63,0x10,0x8C,0x77, +0x0E,0xE3,0x02,0x86,0xE9,0x99,0xED,0xC9,0x80,0x3E,0x0C,0xE4,0x00,0x02,0x81,0x24, +0x84,0x47,0xC2,0xE0,0x10,0x01,0x99,0xE7,0xE9,0x97,0x01,0x5F,0xE4,0x00,0x01,0x6B, +0x1E,0xE4,0xFE,0xD2,0xE1,0x04,0xC1,0xD0,0x87,0x05,0x22,0x5D,0xC1,0x01,0xCA,0xE0, +0x3E,0x0C,0x49,0xE2,0x6B,0xC9,0x80,0x10,0x06,0xE4,0x00,0x00,0xDD,0xD0,0x81,0x05, +0x01,0x1E,0xE4,0xFE,0xD2,0xE1,0x05,0x19,0xD0,0x87,0x05,0x7A,0x5C,0x81,0x01,0xCA, +0xE0,0x3E,0x0C,0xC9,0x80,0x10,0x06,0x99,0xA0,0x49,0xE2,0x6B,0x49,0x8C,0xB8,0x89, +0x4D,0xE4,0x00,0x00,0x9B,0xD0,0x81,0x05,0x21,0x1E,0xE4,0xFE,0xD2,0xE1,0x05,0x19, +0xD0,0x87,0xFD,0xDE,0xE4,0x00,0x01,0x57,0xD0,0x81,0x05,0xC9,0x5C,0x80,0xE1,0xCA, +0xE0,0x3E,0x0C,0xC9,0x80,0x08,0x03,0x49,0xE1,0x6B,0x49,0x8C,0xB8,0xE4,0x00,0x01, +0x55,0xD0,0x81,0x05,0x71,0xD0,0x87,0x05,0x82,0x5C,0x81,0x01,0xCA,0xE0,0x3E,0x0C, +0x49,0xE2,0x6B,0xC9,0x80,0x20,0x09,0x49,0x8C,0xB8,0x99,0xA2,0x99,0x41,0x49,0x61, +0x01,0xE4,0x00,0x01,0x41,0x99,0xE1,0xE4,0x00,0x00,0xF9,0x99,0xE7,0xC9,0x80,0x3E, +0x0C,0x99,0xA2,0x99,0x41,0x99,0x63,0xE4,0x00,0x00,0x21,0x99,0xE1,0xC9,0x80,0x32, +0x0B,0x99,0xA2,0x99,0x41,0x99,0x60,0x98,0x60,0xE4,0x00,0x00,0xF5,0x99,0xE7,0xC9, +0x80,0x3E,0x0C,0xE4,0x00,0x00,0x35,0x99,0xA0,0x99,0xE7,0xC9,0x80,0x3E,0x0C,0x89, +0x4D,0x99,0x63,0xE4,0x00,0x00,0x21,0x99,0xE1,0xC9,0x80,0x32,0x0B,0x99,0xA0,0x99, +0x60,0x89,0x4D,0x98,0x61,0xE4,0x00,0x00,0x9D,0x99,0xE7,0xE4,0x00,0x00,0x2D,0x99, +0xE7,0xC9,0x80,0x3E,0x0C,0x99,0xA2,0x99,0x41,0x99,0x63,0xE4,0x00,0x00,0x21,0x99, +0xE1,0xC9,0x80,0x32,0x0B,0x99,0xA2,0x99,0x41,0x99,0x60,0x98,0x62,0xE4,0x00,0x00, +0x4D,0x99,0xE7,0xC9,0x80,0x08,0x03,0x99,0xA0,0x89,0x4D,0xE4,0x00,0x00,0x29,0x99, +0xE7,0xE4,0x00,0x00,0x0D,0x99,0xE1,0xC9,0x80,0x10,0x06,0x99,0xA2,0x99,0x41,0x99, +0x60,0x98,0x63,0xE7,0xFF,0x9D,0xEC,0x88,0x6A,0x88,0x8D,0xE4,0x00,0x75,0x64,0x88, +0x6A,0x88,0x8C,0xE4,0x00,0x60,0x40,0x21,0xA0,0x3E,0x88,0x6A,0x88,0x8C,0xE4,0x00, +0x71,0x3E,0xE4,0x00,0x00,0x1F,0x21,0xA0,0x2C,0x88,0x6A,0x88,0x8C,0xE4,0x00,0x72, +0x9A,0x88,0x6A,0x05,0x80,0xFF,0xC9,0x8C,0xFF,0xFF,0x88,0x8C,0xE4,0x00,0x62,0xC6, +0x88,0x8C,0x88,0x6A,0xE4,0x00,0x60,0x4E,0x98,0x62,0xE4,0x00,0x5D,0xCE,0xC2,0xE0, +0x10,0x01,0x98,0x60,0xEC,0x17,0x08,0x48,0xC1,0xA0,0x10,0x01,0xEC,0x0D,0x08,0x4C, +0xE4,0x00,0x6A,0x0A,0x98,0x60,0xE4,0x00,0x62,0x0A,0x98,0x60,0x88,0x8C,0xE4,0x00, +0x60,0xFA,0x88,0x6F,0xE4,0x00,0x5D,0x26,0x98,0x60,0xE4,0x00,0x63,0x4A,0x21,0x64, +0x5E,0xED,0x6D,0x08,0x4C,0x98,0x61,0xE4,0x00,0x69,0xBC,0x98,0x63,0xE4,0x00,0x61, +0xBC,0xE4,0x00,0x00,0x2B,0x21,0x6C,0x46,0x98,0x61,0x88,0x8C,0xE4,0x00,0x60,0x9E, +0x98,0x61,0xE4,0x00,0x62,0xFA,0xE4,0x00,0x66,0xDE,0x1C,0x63,0x13,0x5C,0x83,0x00, +0x88,0x6A,0x5C,0x82,0x93,0x20,0x00,0x1B,0x50,0x80,0x14,0xE4,0x00,0x63,0xFC,0x88, +0x6A,0x98,0x8C,0xE4,0x00,0x63,0x1E,0xC2,0xE0,0x10,0x01,0x88,0x6E,0xED,0xD7,0x08, +0x50,0xE7,0xFF,0xF2,0x0C,0x88,0x6E,0x0D,0xE1,0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E, +0x0D,0x81,0x12,0x0D,0x61,0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20,0xE7, +0xFF,0xF7,0xA1,0xC2,0xE0,0x10,0x01,0x9C,0x30,0xEC,0x77,0x01,0x60,0x0D,0x41,0x08, +0x0D,0x61,0x04,0x0D,0x21,0x0C,0x0D,0x81,0x00,0x89,0x43,0xC1,0x60,0x10,0x01,0xE7, +0xFF,0xFA,0xEC,0xFD,0x6B,0x00,0xDE,0x25,0x44,0x29,0x21,0x4D,0x32,0xE4,0x00,0x00, +0x67,0x99,0x40,0xC1,0x80,0x10,0x01,0x88,0x6A,0xE8,0x8C,0x08,0x11,0x9D,0x41,0xE4, +0x00,0x68,0xC6,0x5D,0x4A,0x00,0xD1,0x44,0xFF,0x8E,0xE7,0xFF,0xDE,0x9C,0xC2,0xE0, +0x10,0x01,0x0C,0x6B,0x0B,0xEB,0x17,0x06,0xFF,0x53,0x18,0x20,0xE4,0x00,0x00,0x2D, +0xE7,0xFF,0xDE,0x70,0xC2,0xE0,0x10,0x01,0x0C,0x6B,0x0F,0xEB,0x17,0x06,0xFF,0x53, +0x18,0x80,0xEF,0x17,0x06,0xFF,0x0D,0x81,0x02,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D, +0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0x1C,0x21,0xD0,0xC2,0xE0,0x10,0x01,0x0D,0x41, +0x28,0x0D,0xC1,0x18,0xEE,0xF7,0x00,0xDA,0x0D,0x21,0x2C,0x0D,0x61,0x24,0x0D,0x81, +0x20,0x0D,0xA1,0x1C,0x0D,0xE1,0x14,0x0E,0x01,0x10,0x0E,0x21,0x0C,0x0E,0x41,0x08, +0x0E,0x61,0x04,0x5E,0xE0,0x41,0x89,0x43,0x49,0xC1,0x01,0x24,0x64,0x69,0x1E,0xE3, +0xFE,0xD2,0xE1,0x04,0xA9,0xD0,0x67,0x04,0xC2,0xD0,0x69,0x04,0xD2,0xD0,0x68,0x04, +0xE2,0xE4,0x00,0x01,0x0B,0x51,0x60,0x1A,0x9A,0xE0,0x20,0x60,0x5C,0x9A,0xE0,0xD1, +0x45,0x00,0x92,0x9A,0xE1,0x21,0x44,0x30,0x21,0x4C,0x24,0xD1,0x46,0x00,0x32,0x9A, +0xE0,0xCE,0xF7,0x00,0x34,0xC1,0xE0,0x10,0x01,0xC2,0x00,0x10,0x01,0xFD,0xEF,0x09, +0x34,0xFE,0x10,0x08,0x12,0x99,0x80,0xC2,0x40,0x10,0x01,0xC2,0x60,0x10,0x01,0x8D, +0xF7,0x8E,0x17,0x89,0xAC,0x1E,0x2A,0xFE,0xFE,0x52,0x0B,0xDC,0xFE,0x73,0x08,0xA6, +0x88,0x6D,0x98,0x81,0x88,0xAE,0xE4,0x00,0x6D,0x12,0x42,0xEF,0x64,0x25,0x44,0x5D, +0x42,0xF0,0x64,0x26,0x24,0x45,0x42,0xEC,0x9C,0xD1,0x47,0x00,0x5A,0xD1,0x48,0x00, +0x56,0x42,0xEC,0x94,0x0C,0x77,0x01,0x9D,0xA1,0x9D,0x82,0x5D,0xAD,0x00,0xD5,0x6D, +0xFE,0x95,0xE4,0x00,0x00,0x4F,0x51,0x60,0x1A,0xE4,0x00,0x00,0x2D,0x99,0x63,0xE7, +0xFF,0xFF,0x21,0x99,0x64,0xE7,0xFF,0xFF,0x15,0x99,0x68,0xE7,0xFF,0xFF,0x09,0x9A, +0xE0,0xD1,0x42,0xFB,0x66,0xE7,0xFF,0xFE,0xF9,0x0E,0x61,0x06,0x0E,0x41,0x0A,0x0E, +0x21,0x0E,0x0E,0x01,0x12,0x0D,0xE1,0x16,0x0D,0xC1,0x1A,0x0D,0xA1,0x1E,0x0D,0x81, +0x22,0x0D,0x61,0x26,0x0D,0x41,0x2A,0x0D,0x21,0x2E,0x1C,0x21,0x30,0x85,0x29,0x9C, +0x30,0x0D,0x41,0x08,0x0D,0x21,0x0C,0x0D,0x61,0x04,0x89,0x44,0xD0,0x67,0x08,0x15, +0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xB9,0x98,0x4C,0x63,0x10,0x8C,0x77,0xC2,0xE0,0x10, +0x01,0x0F,0x03,0x02,0xFE,0xF7,0x06,0xFE,0x87,0x09,0x0B,0x17,0x01,0xC7,0x18,0xFF, +0xDF,0x0F,0x17,0x01,0xD0,0x88,0x06,0xD5,0x9A,0xE1,0x4E,0xF7,0x24,0xC6,0xF7,0x01, +0x83,0xD2,0xE0,0x06,0x6A,0xE4,0x00,0x01,0x6F,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xDF, +0x0F,0x17,0x01,0xD0,0x88,0x05,0xDD,0x9A,0xE1,0x4E,0xF7,0x24,0xC7,0x17,0x01,0x8C, +0xD3,0x00,0x04,0xE6,0x56,0xF7,0x03,0xD2,0xE0,0x05,0x3A,0x88,0x64,0xE7,0xFF,0xFC, +0xF4,0xCE,0xEA,0x00,0x34,0xC1,0x60,0x10,0x01,0xFD,0x6B,0x09,0x34,0x8D,0x77,0x88, +0x6B,0xE7,0xFF,0xA1,0x0A,0xE7,0xFF,0xA0,0x80,0xD0,0x60,0x04,0x2A,0x88,0x6B,0xE7, +0xFF,0xA1,0x6C,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x01,0x62,0x22,0xE5,0xCE,0xE4,0x00, +0x00,0x41,0xD0,0x88,0x03,0x65,0x9A,0xE1,0x4E,0xF7,0x24,0xC7,0x17,0x01,0x8C,0x23, +0x01,0x36,0x56,0xF7,0x03,0x22,0xE1,0x64,0x88,0x6A,0xE7,0xFF,0xFC,0x5A,0x88,0x6A, +0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0xE7,0xFF,0xEA,0xBD, +0x0B,0x17,0x01,0xC7,0x18,0xFF,0x7F,0x0F,0x17,0x01,0xD0,0x88,0x01,0xA5,0x4F,0x04, +0x10,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xB9,0xB8,0x8E,0xF8,0x0E,0xF7,0x02,0x86,0xE9, +0x98,0x67,0xE4,0x00,0x00,0x19,0x98,0x68,0xE4,0x00,0x00,0x0D,0x88,0x6A,0x0D,0x61, +0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0xE7,0xFF,0xFB,0xBB,0x0D,0x61, +0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0xC2,0xE0,0x10,0x01, +0x98,0x60,0xFE,0xF7,0x08,0x12,0xCB,0x40,0xFF,0xFE,0x0B,0x37,0x00,0x4F,0x19,0xFA, +0x47,0x38,0xCE,0x43,0x19,0xC5,0x8C,0x78,0x5F,0x03,0x04,0xCB,0x20,0xFF,0xFE,0x9E, +0xE2,0x5C,0x79,0x17,0x48,0x78,0xD0,0xC3,0x00,0x10,0x01,0xFF,0x18,0x08,0x46,0xD6, +0xF8,0xFE,0xDE,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0x04,0xC2,0xE0,0x10, +0x01,0xEC,0x17,0x08,0x08,0xC2,0xE0,0x10,0x01,0x9B,0x04,0xEC,0x17,0x08,0x0C,0x98, +0x64,0xC2,0xE0,0x10,0x01,0x98,0x80,0xEF,0x17,0x01,0x60,0xE7,0xFF,0xF4,0xF5,0x20, +0x64,0x3E,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x08,0x06,0xE4,0x00,0x00,0x41,0x20,0x68, +0x3E,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x08,0x0A,0xE4,0x00,0x00,0x23,0x9A,0xE0,0x20, +0x6C,0x2E,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x08,0x0E,0x88,0x77,0x85,0x29,0x20,0x64, +0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x08,0x04,0xE4,0x00,0x00,0x3D,0x20,0x68,0x3E, +0xC2,0xE0,0x10,0x01,0xEC,0x97,0x08,0x08,0xE4,0x00,0x00,0x1F,0x20,0x6C,0x2E,0xC2, +0xE0,0x10,0x01,0xEC,0x97,0x08,0x0C,0x85,0x29,0xC3,0x80,0x10,0x01,0xC3,0x60,0x10, +0x01,0xC3,0x40,0x10,0x01,0xC3,0x20,0x10,0x01,0xC3,0x00,0x10,0x01,0xFF,0x9C,0x08, +0x8C,0xFF,0x7B,0x08,0xD4,0xFF,0x5A,0x08,0x83,0xFF,0x39,0x0B,0xCC,0xFF,0x18,0x08, +0xC4,0x20,0x69,0x7A,0x0A,0xFC,0x04,0x0B,0xD9,0x09,0x43,0xD7,0xF5,0x5F,0xDE,0x06, +0x4F,0xBE,0xFA,0x47,0xDD,0xF6,0x43,0xBE,0xED,0x5F,0xAC,0x99,0x20,0x00,0x7D,0x0B, +0xBC,0x07,0x0B,0x99,0x0B,0x43,0xBD,0xE5,0x5F,0xBD,0x06,0x4F,0x9D,0xFA,0x47,0xBC, +0xEE,0x43,0x9D,0xE5,0xC3,0x80,0x10,0xE8,0x20,0x05,0x19,0x0E,0xF8,0x01,0xC2,0xE0, +0x10,0x01,0xEA,0xF7,0x08,0x93,0x0B,0x99,0x0B,0x0E,0xF8,0x03,0x0B,0x39,0x0F,0x12, +0xFA,0x00,0x0F,0x9B,0x01,0x0F,0x3B,0x03,0x52,0xF7,0x02,0xE4,0x00,0x01,0x57,0xC3, +0xA0,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFF,0xBD,0x08,0x88,0xFE,0xF7,0x0B,0xEC,0x20, +0x6D,0x92,0x0B,0x79,0x01,0x0B,0xDC,0x01,0x43,0xDE,0xDD,0x5F,0xDE,0x06,0x4F,0x7E, +0xFA,0x47,0xDB,0xF6,0x43,0x7E,0xDD,0x5F,0x6C,0x99,0x20,0x00,0x7D,0x0B,0x39,0x03, +0x0B,0x7C,0x03,0x43,0x7B,0xCD,0x5F,0x7B,0x06,0x4F,0x3B,0xFA,0x47,0x79,0xDE,0x43, +0x3B,0xCD,0xC3,0x20,0x10,0xE8,0x20,0x03,0x61,0x0B,0x37,0x17,0x0F,0x38,0x01,0x0B, +0x37,0x19,0x0F,0x38,0x03,0x0B,0x37,0x47,0x0A,0xF7,0x49,0x0E,0xF8,0x07,0x12,0xFA, +0x00,0x52,0xF7,0x01,0x0F,0x38,0x05,0x1A,0xFA,0x00,0x9A,0xE2,0x1A,0xFD,0x00,0xE4, +0x00,0x01,0x5F,0xD0,0x64,0x01,0xD6,0x0B,0x3B,0x00,0x0B,0x7B,0x02,0x43,0x79,0xDD, +0x9F,0x6E,0x5F,0x63,0x9B,0x20,0x00,0x2F,0xC3,0x20,0x10,0x01,0xEB,0x39,0x08,0xC7, +0x0B,0x18,0x01,0x0F,0x17,0x47,0x9B,0x02,0x0F,0x37,0x49,0x1B,0x17,0x00,0x12,0xFA, +0x00,0x9B,0x1D,0x46,0xF7,0xC4,0x1A,0xFA,0x00,0xE4,0x00,0x00,0xEB,0xD0,0x65,0x03, +0x8E,0x13,0x7D,0x00,0x23,0x68,0xFE,0x0B,0x98,0x00,0x0B,0x59,0x00,0x8F,0x5C,0x43, +0x5A,0xD8,0x0B,0x98,0x02,0x0F,0x57,0x17,0x0B,0x59,0x02,0x8F,0x5C,0x43,0x5A,0xD8, +0x0B,0x98,0x04,0x0F,0x57,0x19,0x0B,0x59,0x08,0x8F,0x5C,0x43,0x5A,0xD8,0x0F,0x57, +0x47,0x0B,0x58,0x06,0x0B,0x19,0x0A,0x8F,0x1A,0x43,0x78,0xD8,0x0F,0x77,0x49,0xE4, +0x00,0x00,0x55,0x23,0x64,0x9A,0x0B,0x38,0x01,0x0F,0x37,0x17,0x0B,0x38,0x03,0x0F, +0x37,0x19,0x0B,0x38,0x05,0x0B,0x18,0x07,0x0F,0x37,0x47,0x0F,0x17,0x49,0x9B,0x3E, +0x13,0x1A,0x00,0x47,0x18,0xCC,0x1B,0x1A,0x00,0x9B,0x02,0x1B,0x17,0x00,0x85,0x29, +0xC3,0x00,0x10,0x01,0xFF,0x18,0x08,0x8C,0xFE,0xE0,0x7F,0xFF,0x0E,0xF8,0x01,0x0E, +0xF8,0x03,0x0E,0xF8,0x05,0x0E,0xF8,0x07,0x9B,0x01,0xC3,0x20,0x10,0x01,0xFF,0x39, +0x01,0xAC,0x1B,0x19,0x01,0xC3,0x00,0x10,0x01,0xFF,0x18,0x08,0xF0,0x0E,0xF8,0x01, +0x0E,0xF8,0x03,0x0E,0xF8,0x05,0x0E,0xF8,0x07,0xC3,0x00,0x10,0x01,0xF8,0x18,0x08, +0xE0,0xC3,0x00,0x10,0x01,0xFF,0x18,0x0B,0xCC,0x0E,0xF8,0x01,0x0E,0xF8,0x03,0x0E, +0xF8,0x05,0x0E,0xF8,0x07,0x0E,0xF8,0x09,0x0E,0xF8,0x0B,0x0E,0xF8,0x0D,0x0E,0xF8, +0x0F,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xFD,0xC2,0xE0,0x10,0x01,0x18,0x19,0x00, +0xF3,0x17,0x08,0x83,0x9B,0x3C,0x47,0x18,0xCC,0xFB,0x17,0x08,0x83,0xC2,0xE0,0x10, +0x01,0xF8,0x17,0x08,0x88,0x85,0x29,0xC3,0x00,0x10,0x01,0xC3,0x40,0x10,0x01,0x5C, +0x63,0x00,0xFF,0x18,0x09,0x68,0x9A,0xE0,0xFF,0x5A,0x0A,0x18,0xE4,0x00,0x00,0x31, +0x4F,0x37,0x10,0x0B,0x98,0x00,0x0B,0x78,0x02,0x8F,0x3A,0x8F,0x7C,0x9E,0xE1,0x0F, +0x79,0x00,0x9F,0x04,0x5F,0x37,0x00,0xD4,0x79,0xFF,0x4D,0x85,0x29,0xC3,0x00,0x10, +0x01,0x5C,0x84,0x00,0xFF,0x18,0x09,0x68,0x20,0xA0,0x6C,0xE4,0x00,0x00,0x4B,0x4F, +0x37,0x08,0x9E,0xE1,0x43,0x59,0xC4,0x8F,0x23,0x0B,0x5A,0x00,0x0F,0x59,0x01,0xE4, +0x00,0x00,0x0D,0x9A,0xE0,0x5F,0x37,0x00,0xD4,0x99,0xFF,0x3D,0xE4,0x00,0x00,0x7B, +0x20,0xA4,0xE6,0xE4,0x00,0x00,0x31,0x4F,0x37,0x08,0x9E,0xE1,0x43,0x43,0xCC,0x8F, +0x38,0x0B,0x5A,0x00,0x0F,0x59,0x01,0xE4,0x00,0x00,0x0D,0x9A,0xE0,0x5F,0x37,0x00, +0xD4,0x99,0xFF,0x3D,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x76,0x10,0x77,0x01,0x12, +0xF7,0x04,0x40,0x63,0xBB,0xE7,0xFF,0xFE,0xC5,0x85,0x29,0x9C,0x38,0x98,0x63,0x0D, +0x21,0x04,0xE7,0xFF,0x8F,0x6E,0x0D,0x21,0x06,0x9C,0x28,0xE4,0x00,0x77,0x37,0x9A, +0xED,0x9C,0x30,0x0D,0x41,0x08,0x0D,0x61,0x04,0xC1,0x60,0x10,0x01,0xFD,0x4B,0x0B, +0x76,0x1A,0xEA,0x04,0x9A,0xE1,0x1A,0xEA,0x01,0xFE,0xE0,0x07,0xFF,0x0E,0xEA,0x07, +0x0E,0xEA,0x09,0xC2,0xE0,0x10,0x01,0x9B,0x02,0xFB,0x17,0x08,0xCE,0x52,0xE0,0xAA, +0x0D,0x21,0x0C,0x0E,0xEA,0x0B,0x50,0x60,0x19,0x98,0x80,0xE7,0xFF,0x4A,0xFE,0x52, +0xE0,0x1D,0xFA,0xEB,0x0B,0x76,0x9A,0xE4,0x1A,0xEA,0x0C,0xC2,0xE0,0x10,0x01,0xEC, +0x17,0x00,0xCD,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0xBC,0xC2,0xE0,0x10,0x01,0xEC, +0x17,0x08,0xE8,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0xE3,0xC2,0xE0,0x10,0x01,0xF8, +0x17,0x08,0xB0,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xB8,0xC2,0xE0,0x10,0x01,0xF8, +0x17,0x08,0xE6,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xDF,0xC2,0xE0,0x10,0x01,0xF8, +0x17,0x08,0xA4,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xF8,0xC2,0xE0,0x10,0x01,0xF8, +0x17,0x08,0xD2,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xC3,0xC2,0xE0,0x10,0x01,0xEC, +0x17,0x08,0xC1,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0xB4,0xC2,0xE0,0x10,0x01,0xEC, +0x17,0x08,0x7F,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xD3,0xC2,0xE0,0x10,0x01,0x9B, +0x03,0xFB,0x17,0x08,0xC2,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x07,0xF4,0xC2,0xE0,0x10, +0x01,0xF8,0x17,0x08,0xE0,0xC2,0xE0,0x10,0x01,0xFF,0x00,0x01,0xF4,0xEF,0x17,0x06, +0xFD,0xC2,0xE0,0x10,0x01,0xC0,0x60,0x10,0x01,0xF8,0x17,0x08,0xF9,0xFC,0x63,0x0A, +0x18,0x98,0x80,0x50,0xA0,0x3C,0xE7,0xFF,0xA3,0x26,0xC2,0xE0,0x10,0x01,0xFE,0xF7, +0x0B,0xEC,0x18,0x17,0x04,0x18,0x17,0x05,0x18,0x17,0x06,0x18,0x17,0x34,0x18,0x17, +0x35,0x18,0x17,0x36,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xAC,0xC2,0xE0,0x10,0x01, +0xF3,0x37,0x00,0xB8,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x3D,0xF9,0xCA,0xF7,0x3D,0xF8, +0x1B,0x38,0x00,0xC3,0x00,0x10,0x01,0xF3,0x18,0x07,0x6F,0x1B,0x17,0x00,0xC2,0xE0, +0x10,0x01,0xEB,0x17,0x08,0x9F,0x53,0x18,0x04,0xEF,0x17,0x08,0x9F,0xC2,0xE0,0x10, +0x01,0xC3,0x00,0x00,0x01,0xFF,0x18,0x1D,0x58,0xEF,0x17,0x03,0xE4,0xC2,0xE0,0x10, +0x01,0x53,0x00,0xF0,0xEF,0x17,0x08,0xEF,0xC2,0xE0,0x10,0x01,0x53,0x00,0xCA,0xEF, +0x17,0x08,0x8B,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x00,0x01,0xFF,0x18,0x1B,0xCF,0xEF, +0x17,0x03,0xF8,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x00,0x01,0xFF,0x18,0x19,0x89,0xEF, +0x17,0x04,0x18,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x00,0x01,0xFF,0x18,0x1A,0x62,0xEF, +0x17,0x04,0x14,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x0B,0x9C,0xFE,0xF7,0x0B,0x9C,0xC3, +0x60,0x10,0x01,0x18,0x17,0x01,0x18,0x17,0x02,0x18,0x17,0x03,0x0C,0x17,0x05,0x0C, +0x17,0x07,0x0C,0x17,0x0B,0x0C,0x17,0x09,0xC3,0x40,0x10,0x01,0xC3,0x20,0x10,0x01, +0x9A,0xE0,0xFF,0x7B,0x09,0x68,0xFF,0x5A,0x0C,0xF2,0xFF,0x39,0x09,0xA4,0x43,0x17, +0xDC,0x0C,0x18,0x01,0x43,0x17,0xD4,0x0C,0x18,0x01,0x4F,0x17,0x08,0x8F,0x19,0x0C, +0x18,0x00,0x9E,0xE2,0x5E,0xE7,0x49,0x23,0xFF,0x9D,0x0D,0x61,0x06,0x0D,0x41,0x0A, +0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0xE4,0x00,0x70,0x65,0x1C,0x21,0xE8,0x0D, +0x21,0x14,0xE7,0xFF,0xCD,0xBC,0xE7,0xFF,0xA6,0xE2,0xE7,0xFF,0xCC,0xE6,0xE7,0xFF, +0xF4,0xCE,0x50,0xE0,0x14,0x99,0x0C,0x0C,0x01,0x01,0x50,0x60,0x1A,0x50,0x80,0x1A, +0x98,0xA4,0x04,0xC1,0x6E,0xC8,0xC6,0x36,0x00,0xE7,0xFF,0x92,0xB8,0xFC,0xC0,0x01, +0x78,0xFC,0xA0,0x02,0xD6,0xC0,0x60,0x10,0x01,0xC0,0x80,0x10,0x01,0xFC,0x63,0x01, +0x5E,0xFC,0x84,0x08,0x10,0xE7,0xFF,0x95,0x46,0x98,0x60,0x88,0x83,0xE7,0xFF,0x88, +0xBC,0x98,0x60,0x98,0xA0,0x88,0x83,0xE7,0xFF,0x88,0xC2,0x98,0x60,0x98,0xA0,0x88, +0x83,0xE7,0xFF,0x88,0xD8,0x98,0x80,0x98,0x61,0x88,0xA4,0xE7,0xFF,0x88,0xC4,0x98, +0xA0,0x98,0x62,0x98,0x81,0xE7,0xFF,0x88,0xB0,0x98,0x62,0x98,0x80,0xE7,0xFF,0x89, +0x26,0x98,0x60,0x50,0x80,0x66,0xE7,0xFF,0x89,0x2E,0x98,0x61,0x50,0x80,0x66,0xE7, +0xFF,0x89,0x1C,0x98,0x62,0x50,0x80,0xF3,0xE7,0xFF,0x89,0x0A,0x98,0x60,0xFC,0x80, +0xA0,0x00,0xE7,0xFF,0x89,0x52,0x98,0x61,0xFC,0x80,0xA0,0x00,0xE7,0xFF,0x89,0x3E, +0x98,0x62,0xFC,0x80,0xA0,0x00,0xE7,0xFF,0x89,0x2A,0xFC,0x80,0x01,0x26,0x98,0x62, +0xE7,0xFF,0x89,0x72,0xFC,0x60,0x01,0x5E,0xE7,0xFF,0x96,0xC0,0xE7,0xFF,0xFA,0x26, +0x98,0x61,0xE7,0xFF,0x64,0x4C,0xE7,0xFF,0x50,0x80,0x50,0x60,0x1B,0xE7,0xFF,0x8D, +0x60,0x9A,0xEE,0x0E,0xE1,0x00,0x52,0xE0,0x14,0x0E,0xE1,0x04,0xCA,0xE0,0x07,0xD0, +0x98,0xC8,0x0E,0xE1,0x08,0x98,0xAE,0x88,0xE6,0x99,0x0A,0x98,0x6A,0x98,0x8C,0xE7, +0xFF,0x44,0x90,0x98,0x81,0x98,0x60,0xE7,0xFF,0xCB,0x92,0x50,0x60,0x10,0xE7,0xFF, +0xCB,0xBC,0xE4,0x00,0x47,0xE4,0xE7,0xFF,0xF9,0x6A,0x98,0x80,0x98,0x60,0xE7,0xFF, +0x42,0x52,0xE7,0xFF,0xB9,0xC0,0xE7,0xFF,0xB8,0xB6,0xC2,0xE0,0x10,0x01,0xF0,0x77, +0x01,0xAE,0xE7,0xFF,0xCB,0x54,0x9B,0x00,0xCA,0xE0,0x48,0x00,0xC3,0x17,0x00,0x0D, +0xC3,0x17,0x00,0x0F,0x53,0x18,0x04,0xC3,0x17,0x00,0x0D,0xC3,0x17,0x00,0x0F,0x53, +0x18,0x08,0xC3,0x17,0x00,0x0D,0xC2,0xE0,0x01,0x1F,0x52,0xF7,0x06,0xC2,0xE0,0x01, +0x1D,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xCA,0xFE,0x50,0x60,0x20,0xE7,0xFF,0xCB,0x08, +0x98,0x61,0x50,0x80,0x13,0x50,0xA0,0x37,0x98,0xC8,0xFC,0xE0,0x01,0x0D,0xE7,0xFF, +0xAC,0x90,0xC3,0x00,0x00,0x01,0xC2,0xE0,0x10,0x01,0xFF,0x18,0x38,0x80,0x0D,0x21, +0x16,0xEF,0x17,0x03,0xD0,0x1C,0x21,0x18,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEF,0x17, +0x00,0xDA,0x23,0x05,0x08,0xEE,0xF7,0x00,0xDA,0x22,0xE8,0xEC,0xC3,0x00,0x10,0x01, +0xC2,0xE0,0x10,0x01,0xFF,0x18,0x08,0xA6,0xFE,0xF7,0x08,0xD8,0x0B,0x38,0x01,0xC3, +0x60,0x10,0x01,0x0F,0x37,0x01,0xC3,0x40,0x10,0x01,0x0B,0x38,0x03,0xFF,0x7B,0x0A, +0xE8,0x0F,0x37,0x03,0x0B,0x18,0x05,0xFF,0x5A,0x0B,0xDC,0x0F,0x17,0x05,0x9A,0xE0, +0xE4,0x00,0x00,0x5D,0xC3,0x60,0x10,0x01,0xC3,0x40,0x10,0x01,0x9A,0xE0,0xFF,0x7B, +0x09,0x00,0xFF,0x5A,0x09,0x34,0x43,0x17,0xDC,0x43,0x37,0xD4,0x0B,0x39,0x01,0x0F, +0x38,0x01,0x9E,0xE2,0x5E,0xE6,0x89,0x23,0xFF,0xBD,0xE7,0xFF,0xFF,0x45,0x43,0x17, +0xDC,0x43,0x37,0xD4,0x0B,0x39,0x01,0x0F,0x38,0x01,0x9E,0xE2,0x5E,0xE2,0x09,0x23, +0xFF,0xBD,0x85,0x29,0xC3,0x00,0x10,0x01,0xC3,0x60,0x10,0x01,0x9A,0xE0,0xFF,0x18, +0x0C,0xF2,0xFF,0x7B,0x09,0x00,0x43,0x37,0xC4,0x43,0x57,0xDC,0x0B,0x5A,0x01,0x0F, +0x59,0x01,0x9E,0xE2,0x5E,0xE6,0x89,0x23,0xFF,0xBD,0xC2,0xE0,0x10,0x01,0xFE,0xF7, +0x08,0xD8,0x0B,0x37,0x01,0x0F,0x38,0x35,0x0B,0x37,0x03,0x0A,0xF7,0x05,0x0F,0x38, +0x37,0x0E,0xF8,0x39,0x85,0x29,0xE4,0x00,0x6D,0x63,0xC2,0xE0,0x10,0x01,0xFF,0x20, +0xDF,0x9F,0xEB,0x17,0x08,0xE3,0x47,0x18,0xCC,0x9B,0x3E,0xEF,0x17,0x08,0xE3,0xC2, +0xE0,0x10,0x01,0xEB,0x17,0x08,0xCD,0x47,0x18,0xCC,0xEF,0x17,0x08,0xCD,0x85,0x29, +0xC2,0xE0,0x10,0x01,0x88,0xC3,0xF3,0x17,0x00,0xB8,0x23,0x08,0x4A,0xF2,0xF7,0x00, +0xB8,0x22,0xE8,0x2E,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x07,0x6F,0xC3,0x00,0x10,0x01, +0x9A,0xE0,0xFF,0x18,0x09,0x68,0x8B,0x38,0x5F,0x57,0x00,0x27,0x44,0x3D,0x5E,0xE3, +0x01,0x20,0x00,0x25,0x5E,0xE3,0x29,0x20,0x00,0x31,0x0B,0x59,0x01,0x4F,0x5A,0x08, +0x0F,0x59,0x01,0x9E,0xE1,0x9F,0x22,0x5E,0xE3,0x49,0x23,0xFF,0x79,0xC2,0xE0,0x10, +0x01,0xC3,0x80,0x10,0x01,0xF3,0xD7,0x0B,0x76,0xFF,0x5C,0x08,0xE2,0xC3,0xA0,0x10, +0x01,0x1C,0x7E,0xFF,0xFF,0xBD,0x08,0xA4,0x0A,0xFA,0x01,0x13,0x7D,0x00,0x9B,0x20, +0xE4,0x00,0x00,0x65,0xD4,0x79,0x00,0xF0,0x08,0x98,0x00,0x09,0x18,0x02,0x8D,0x04, +0xC1,0x00,0x1D,0xE8,0x20,0x00,0x39,0xC1,0x00,0x59,0xE8,0xCA,0xF7,0x20,0x00,0x4B, +0x7B,0x00,0x09,0x18,0x00,0x50,0x97,0x40,0x5D,0x04,0x19,0x9F,0x21,0x4A,0xE4,0xB8, +0x9F,0x02,0x5D,0x19,0x04,0xD7,0xC8,0xFE,0x7D,0xC3,0x00,0x10,0x01,0x0E,0xFA,0x01, +0x1B,0x7D,0x00,0xFF,0x18,0x0B,0x60,0x0B,0x38,0x00,0x53,0x77,0x20,0x5F,0x2C,0x99, +0x9F,0x02,0xC3,0x20,0x10,0x01,0x4A,0xFB,0xB8,0xFF,0x39,0x0B,0x70,0xD7,0x19,0xFF, +0x56,0x98,0x60,0x0E,0xFA,0x01,0x88,0x83,0x98,0xA0,0xE7,0xFF,0xB5,0x99,0x9C,0x38, +0x0D,0x41,0x00,0x0D,0x21,0x04,0xC1,0x40,0x10,0x01,0x20,0x64,0x62,0xE7,0xFF,0xB6, +0xB4,0x20,0x64,0x56,0xF2,0xEA,0x08,0xA4,0x9E,0xE1,0xFA,0xEA,0x08,0xA4,0xE4,0x00, +0x00,0x19,0xE7,0xFF,0xB7,0x3A,0xF8,0x0A,0x08,0xA4,0xE7,0xFF,0xD9,0x72,0x20,0x64, +0x26,0x99,0x43,0xE4,0x00,0x00,0x29,0xE7,0xFF,0xD9,0x58,0x99,0x49,0x20,0x68,0x28, +0xE7,0xFF,0xD9,0x46,0x20,0x6F,0xB6,0xC2,0xE0,0x10,0x01,0xC3,0x20,0x10,0x01,0xF3, +0x17,0x08,0xA4,0xF3,0x39,0x0B,0xEC,0x23,0x21,0x1A,0xD5,0x58,0x02,0x1D,0xF8,0x17, +0x08,0xA4,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xE6,0xC2,0xE0,0x10,0x01,0xC3,0x00, +0x10,0x01,0xF8,0x17,0x08,0xDF,0xC2,0xE0,0x10,0x01,0xF8,0x18,0x08,0xF8,0xF8,0x17, +0x08,0xF9,0x0D,0x41,0x02,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x06,0xEB,0x17,0x08,0xE3, +0x9C,0x28,0x53,0x18,0x80,0xEF,0x17,0x08,0xE3,0xE7,0xFF,0x87,0x1D,0x0D,0x41,0x02, +0x0D,0x21,0x06,0x9C,0x28,0x85,0x29,0x9C,0x38,0xC3,0x14,0x00,0x01,0x0D,0x21,0x04, +0xCA,0xF8,0x22,0x00,0x0B,0x37,0x01,0xCB,0x18,0x26,0x18,0x9B,0x3F,0x0F,0x37,0x01, +0x0B,0x38,0x01,0x53,0x39,0x02,0x0F,0x38,0x01,0x0B,0x17,0x01,0xFC,0x60,0x01,0x00, +0x0C,0x17,0x01,0xE7,0xFF,0xC5,0x62,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x06,0xEB,0x17, +0x00,0xCD,0x9C,0x28,0xC7,0x18,0xFE,0xFF,0xEF,0x17,0x00,0xCD,0x85,0x29,0x5C,0xC6, +0x00,0x9A,0xE0,0xE4,0x00,0x00,0x45,0x4F,0x17,0x08,0x4F,0x57,0x10,0x43,0x23,0xC4, +0x8F,0x45,0x8F,0x04,0x0F,0x5A,0x02,0x0B,0x18,0x01,0x4F,0x5A,0x42,0x9E,0xE1,0x43, +0x18,0xD5,0x0F,0x19,0x01,0x5F,0x17,0x00,0xD4,0xD8,0xFE,0xFD,0x85,0x29,0x9C,0x38, +0x0D,0x21,0x04,0xE4,0x00,0x40,0x6E,0x0D,0x21,0x06,0xFC,0x60,0x01,0x00,0x9C,0x28, +0xE7,0xFF,0xC4,0x99,0x9C,0x38,0x0D,0x21,0x04,0xE4,0x00,0x40,0x42,0x0D,0x21,0x06, +0xFC,0x60,0x01,0x00,0x9C,0x28,0xE7,0xFF,0xC4,0x5D,0x9C,0x38,0x0D,0x21,0x04,0xE7, +0xFF,0x8A,0x38,0x98,0x80,0x98,0x61,0xE7,0xFF,0xE5,0x78,0x98,0x60,0xE7,0xFF,0x85, +0x4C,0x98,0x61,0x98,0x80,0xE7,0xFF,0xEB,0xF2,0x98,0x62,0x98,0x80,0xE7,0xFF,0xEB, +0xE2,0x98,0x63,0x98,0x80,0xE7,0xFF,0xEB,0xD2,0x98,0x66,0xC0,0x80,0x10,0x01,0xC0, +0xA0,0x10,0x01,0xFC,0x84,0x01,0xB0,0xFC,0xA5,0x01,0xC8,0xC0,0xC0,0x10,0x01,0xFC, +0xC6,0x01,0xA0,0xE7,0xFF,0x90,0x78,0x0D,0x21,0x06,0x9C,0x28,0xE7,0xFF,0x95,0xC5, +0x9C,0x38,0x0D,0x41,0x00,0x0D,0x21,0x04,0xC1,0x40,0x10,0x01,0xE7,0xFF,0xD6,0x6E, +0xFD,0x4A,0x00,0xDE,0x20,0x68,0x68,0x24,0x64,0x2D,0xD0,0x63,0x05,0xD6,0xE4,0x00, +0x00,0xCB,0xE7,0xFF,0x89,0x52,0xE7,0xFF,0xD6,0x3A,0xE4,0x00,0x00,0x4F,0xE7,0xFF, +0xC3,0xB4,0x0A,0xEA,0x09,0x40,0x63,0xBD,0x5E,0xE3,0x04,0xC2,0xE1,0x76,0xEA,0x20, +0x00,0x99,0x98,0x62,0xE7,0xFF,0xEA,0x96,0x20,0x60,0x76,0xE7,0xFF,0x89,0x00,0x98, +0x61,0x98,0x80,0xE7,0xFF,0xE4,0x40,0x0D,0x21,0x06,0x0D,0x41,0x02,0x98,0x60,0x9C, +0x28,0xE7,0xFF,0x84,0x05,0x98,0x62,0x98,0x80,0xE7,0xFF,0xE4,0x14,0xFC,0x60,0x01, +0x5E,0xE7,0xFF,0x8D,0xC2,0x0D,0x21,0x06,0x0D,0x41,0x02,0x98,0x60,0x9C,0x28,0xE7, +0xFF,0x83,0x81,0xE7,0xFF,0xC3,0x0A,0x0A,0xEA,0x0D,0x40,0x63,0xBD,0x5E,0xE3,0x04, +0xC2,0xE0,0xBB,0x6A,0x20,0x00,0x31,0x98,0x63,0xE7,0xFF,0xE9,0xEC,0x20,0x62,0xB8, +0xE7,0xFF,0xE9,0x18,0x5C,0x63,0x04,0xC0,0x60,0x19,0x0E,0x20,0x00,0x49,0xC2,0xE0, +0x10,0x01,0xEA,0xF7,0x08,0xE3,0xC6,0xF7,0x20,0x00,0x22,0xE0,0x28,0xE7,0xFF,0xC2, +0x96,0x0C,0x6A,0x0D,0x0D,0x41,0x02,0x0D,0x21,0x06,0x98,0x63,0x98,0x80,0x9C,0x28, +0xE7,0xFF,0xE3,0x47,0x0D,0x41,0x02,0x0D,0x21,0x06,0x9C,0x28,0x85,0x29,0xD0,0x69, +0x06,0x2D,0x4F,0x03,0x10,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xB9,0xFC,0x8E,0xF8,0xC3, +0x00,0x10,0x01,0x0F,0x37,0x02,0xFF,0x18,0x09,0xA4,0xC2,0xE0,0x10,0x01,0xFE,0xF7, +0x0A,0x54,0x87,0x29,0xC3,0x00,0x10,0x01,0xFF,0x18,0x0B,0x90,0x0F,0x38,0x02,0x0F, +0x37,0x68,0x0F,0x38,0x06,0x0F,0x18,0x0A,0x0F,0x37,0x6C,0x0F,0x17,0x70,0xE4,0x00, +0x01,0x0B,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x84,0x0F,0x37,0x02,0x0F,0x38,0x68, +0x0F,0x37,0x06,0x0E,0xF7,0x0A,0x0F,0x38,0x6C,0x0E,0xF8,0x70,0xE4,0x00,0x00,0xCF, +0xCE,0xE3,0x00,0x68,0xC3,0x60,0x10,0x01,0xCC,0x63,0x00,0x1A,0xFF,0x7B,0x0A,0xF8, +0x4C,0x63,0x10,0x8F,0x77,0x8F,0x03,0x9A,0xE0,0x43,0x38,0xBC,0x43,0x5B,0xBC,0x0F, +0x5A,0x02,0x0F,0x59,0x00,0x9E,0xE4,0x5E,0xED,0x09,0x23,0xFF,0xBD,0xE4,0x00,0x00, +0x6D,0x9C,0x7E,0xC3,0x40,0x10,0x01,0x5C,0x63,0x00,0xFF,0x5A,0x0C,0x50,0xCF,0x03, +0x00,0x68,0xCC,0x63,0x00,0x1A,0x8F,0x58,0x4C,0x63,0x10,0x8C,0x77,0x9A,0xE0,0x43, +0x03,0xBC,0x43,0x3A,0xBC,0x0F,0x39,0x02,0x0F,0x38,0x00,0x9E,0xE4,0x5E,0xED,0x09, +0x23,0xFF,0xBD,0x85,0x29,0xD0,0x69,0x06,0x3D,0x4F,0x03,0x10,0xC2,0xF8,0x00,0x21, +0xFE,0xF7,0xBA,0x24,0x8E,0xF8,0xC3,0x00,0x10,0x01,0x0F,0x37,0x02,0xFF,0x18,0x09, +0x00,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x08,0xD8,0x87,0x29,0x0B,0x37,0x00,0xC3,0x00, +0x10,0x01,0x4F,0x39,0x40,0xFF,0x18,0x0B,0x90,0xE4,0x00,0x00,0x25,0x0B,0x37,0x00, +0xC3,0x00,0x10,0x01,0x4F,0x39,0x40,0xFF,0x18,0x0B,0x84,0x0F,0x38,0x00,0x0B,0x37, +0x02,0x0A,0xF7,0x04,0x4F,0x39,0x40,0x4E,0xF7,0x40,0x0F,0x38,0x04,0x0E,0xF8,0x08, +0xE4,0x00,0x00,0xD9,0xCE,0xE3,0x00,0x34,0x8F,0x17,0xCE,0xE3,0x00,0x68,0xC3,0x60, +0x10,0x01,0xFF,0x7B,0x0A,0xF8,0x8F,0x77,0x9A,0xE0,0x4F,0x37,0x08,0x43,0x58,0xBC, +0x8F,0x3B,0x0B,0x5A,0x00,0x4F,0x5A,0x40,0x0F,0x59,0x00,0x9E,0xE2,0x5E,0xE6,0x89, +0x23,0xFF,0xA9,0xE4,0x00,0x00,0x73,0x1E,0xE3,0xFE,0x5E,0xF7,0x00,0xCF,0x37,0x00, +0x34,0xCE,0xF7,0x00,0x68,0xC3,0x60,0x10,0x01,0x8F,0x19,0xFF,0x7B,0x0C,0x50,0x8F, +0x77,0x9A,0xE0,0x4F,0x37,0x08,0x43,0x58,0xBC,0x8F,0x3B,0x0B,0x5A,0x00,0x4F,0x5A, +0x40,0x0F,0x59,0x00,0x9E,0xE2,0x5E,0xE6,0x89,0x23,0xFF,0xA9,0xE7,0xFF,0xFC,0xE5, +0x9C,0x38,0x0D,0x21,0x04,0x20,0x64,0x3E,0x98,0x60,0xE7,0xFF,0xFE,0x56,0x98,0x68, +0xE4,0x00,0x00,0x19,0x98,0x62,0xE7,0xFF,0xFE,0x3E,0x98,0x69,0x0D,0x21,0x06,0x9C, +0x28,0xE7,0xFF,0xFE,0x29,0x9C,0x38,0x98,0x60,0x0D,0x21,0x04,0xE7,0xFF,0xFE,0x12, +0x0D,0x21,0x06,0x98,0x68,0x9C,0x28,0xE7,0xFF,0xFD,0xFD,0x20,0x80,0x64,0xD0,0x84, +0x00,0xFA,0x20,0x88,0x90,0x20,0x8C,0xA8,0x5C,0x80,0x21,0x4B,0x0A,0x01,0x8A,0xF8, +0xE4,0x00,0x00,0x49,0x53,0x00,0x19,0x8A,0xF8,0xE4,0x00,0x00,0x37,0x53,0x00,0x19, +0x9A,0xE1,0xE4,0x00,0x00,0x25,0x53,0x00,0x32,0x8A,0xF8,0xE4,0x00,0x00,0x13,0x53, +0x00,0x50,0x8A,0xF8,0xD0,0x6B,0x0F,0xAD,0x4F,0x43,0x10,0xC3,0x38,0x00,0x21,0xFF, +0x39,0xBA,0x4C,0x8F,0x3A,0xC3,0x60,0x10,0x01,0x0F,0x99,0x02,0xC3,0x40,0x10,0x01, +0xC3,0x20,0x10,0x01,0xFF,0x7B,0x09,0x00,0xFF,0x5A,0x0A,0xE8,0xFF,0x39,0x08,0xD8, +0x87,0x89,0xCF,0x23,0x00,0x34,0x8F,0x79,0xCF,0x23,0x00,0x68,0xC0,0xA0,0x10,0x01, +0x99,0x02,0xFC,0xA5,0x0A,0xF8,0xCB,0xC0,0x01,0xF4,0x8C,0xB9,0x9B,0x20,0x43,0x5B, +0xCC,0x4F,0x99,0x08,0x0B,0xBA,0x00,0x8F,0x85,0x4F,0xBD,0x40,0x0F,0x5C,0x02,0x5F, +0x5D,0x1D,0x43,0xBD,0xD5,0x48,0x98,0xB8,0xCF,0x5A,0x01,0xF4,0x43,0xA4,0xEB,0x43, +0xBD,0x40,0x8F,0x5D,0x43,0x5A,0xF0,0x0F,0x5C,0x00,0x9F,0x22,0x5F,0x26,0x89,0x23, +0xFF,0x3D,0xE4,0x00,0x02,0xEF,0x1F,0x23,0xFE,0x5F,0x39,0x00,0xCC,0xB9,0x00,0x34, +0xCF,0x39,0x00,0x68,0xC0,0x80,0x10,0x01,0x8C,0xBB,0xFC,0x84,0x0C,0x50,0x9B,0xC2, +0x8C,0x99,0xCB,0xA0,0x01,0xF4,0x9B,0x20,0x43,0x45,0xCC,0x0B,0x9A,0x00,0x4F,0x59, +0x08,0x4F,0x9C,0x40,0x43,0x64,0xD4,0x0F,0x5B,0x02,0x5F,0x5C,0x1D,0x43,0x9C,0xD5, +0x49,0x18,0xB8,0xCF,0x5A,0x01,0xF4,0x43,0x88,0xE3,0x43,0x9C,0xF0,0x8F,0x5C,0x43, +0x5A,0xE8,0x0F,0x5B,0x00,0x9F,0x22,0x5F,0x26,0x89,0x23,0xFF,0x39,0xE4,0x00,0x02, +0x39,0xC3,0x40,0x10,0x01,0x9B,0xC2,0xFF,0x5A,0x0B,0x84,0xCB,0xA0,0x01,0xF4,0x0F, +0x7A,0x02,0x0B,0x99,0x00,0x4F,0x9C,0x40,0x5F,0x7C,0x1D,0x43,0x9C,0xDD,0x49,0x18, +0xB8,0xCF,0x7B,0x01,0xF4,0x43,0x88,0xE3,0x43,0x9C,0xF0,0x8F,0x7C,0x43,0x7B,0xE8, +0x0F,0x7A,0x00,0x9F,0x22,0xC3,0x60,0x10,0x01,0x9F,0x44,0xFF,0x7B,0x08,0xDE,0xD7, +0x3B,0xFE,0x86,0xE4,0x00,0x01,0xAD,0xC3,0x40,0x10,0x01,0x9B,0xC2,0xFF,0x5A,0x0B, +0x90,0xCB,0xA0,0x01,0xF4,0x0F,0x7A,0x02,0x0B,0x99,0x00,0x4F,0x9C,0x40,0x5F,0x7C, +0x1D,0x43,0x9C,0xDD,0x49,0x18,0xB8,0xCF,0x7B,0x01,0xF4,0x43,0x88,0xE3,0x43,0x9C, +0xF0,0x8F,0x7C,0x43,0x7B,0xE8,0x0F,0x7A,0x00,0x9F,0x22,0xC3,0x60,0x10,0x01,0x9F, +0x44,0xFF,0x7B,0x08,0xDE,0xD7,0x3B,0xFE,0x86,0xE4,0x00,0x01,0x21,0x8B,0x3A,0x9B, +0xC2,0xC3,0x40,0x10,0x01,0xCB,0xA0,0x01,0xF4,0xFF,0x5A,0x0B,0xAC,0x0F,0x7A,0x02, +0x0B,0x99,0x00,0x4F,0x9C,0x40,0x5F,0x7C,0x1D,0x43,0x9C,0xDD,0x49,0x18,0xB8,0xCF, +0x7B,0x01,0xF4,0x43,0x88,0xE3,0x43,0x9C,0xF0,0x8F,0x7C,0x43,0x7B,0xE8,0x0F,0x7A, +0x00,0x9F,0x22,0xC3,0x60,0x10,0x01,0x9F,0x44,0xFF,0x7B,0x0A,0xF8,0xD7,0x3B,0xFE, +0x86,0xE4,0x00,0x00,0x91,0x8B,0x3A,0x9B,0xC2,0xC3,0x40,0x10,0x01,0xCB,0xA0,0x01, +0xF4,0xFF,0x5A,0x0A,0xC8,0x0F,0x7A,0x02,0x0B,0x99,0x00,0x4F,0x9C,0x40,0x5F,0x7C, +0x1D,0x43,0x9C,0xDD,0x49,0x18,0xB8,0xCF,0x7B,0x01,0xF4,0x43,0x88,0xE3,0x43,0x9C, +0xF0,0x8F,0x7C,0x43,0x7B,0xE8,0x0F,0x7A,0x00,0x9F,0x22,0xC3,0x60,0x10,0x01,0x9F, +0x44,0xFF,0x7B,0x0A,0xF8,0xD7,0x3B,0xFE,0x86,0xE7,0xFF,0xF8,0x0B,0x9C,0x38,0x0D, +0x21,0x04,0x0D,0x41,0x00,0x89,0x43,0x98,0x60,0x88,0x8A,0xE7,0xFF,0xFB,0x80,0x88, +0x8A,0x0D,0x21,0x06,0x0D,0x41,0x02,0x98,0x68,0x9C,0x28,0xE7,0xFF,0xFB,0x61,0x1C, +0x21,0xC8,0x0D,0xC1,0x20,0x0D,0x21,0x34,0x0D,0x41,0x30,0x0D,0x61,0x2C,0x0D,0x81, +0x28,0x0D,0xA1,0x24,0x0D,0xE1,0x1C,0x0E,0x01,0x18,0x0E,0x21,0x14,0x0E,0x41,0x10, +0x0E,0x61,0x0C,0x0E,0x81,0x08,0x0E,0xA1,0x04,0xC1,0xC0,0x10,0x01,0xFD,0xCE,0x08, +0xE2,0x0B,0x6E,0x01,0xC6,0xFB,0x7F,0xFF,0x0E,0xEE,0x01,0xC2,0xE0,0x10,0x01,0xFE, +0xF7,0x09,0x68,0x0B,0x57,0x34,0x0B,0x37,0x36,0x47,0x1A,0xD7,0x43,0x9A,0xCC,0x4F, +0x18,0xFA,0x5F,0x9C,0x04,0x47,0x1A,0xC4,0x5E,0xF8,0x06,0xD7,0x37,0x00,0x30,0x8B, +0x19,0xC2,0xE0,0x10,0x01,0x5F,0x38,0x06,0xEA,0xF7,0x09,0xA0,0xD6,0xF9,0x00,0x30, +0x8B,0x17,0x8E,0xFC,0x5F,0x18,0x06,0x1E,0xF7,0xEB,0x5E,0xF7,0x04,0xC2,0xE0,0x18, +0xCE,0x20,0x00,0xE9,0xC3,0x00,0x12,0xAC,0x20,0x00,0xCD,0xD3,0x0F,0x01,0x80,0xC2, +0xE0,0x10,0x01,0xEB,0x37,0x09,0x68,0xFE,0xF7,0x09,0x68,0x0B,0x17,0x02,0x8F,0x19, +0x0B,0x37,0x04,0x0A,0xF7,0x06,0x8E,0xF9,0xCE,0xF7,0x00,0x0B,0xD6,0xF8,0x00,0x78, +0x53,0x00,0x64,0xC2,0xE0,0x10,0x01,0xE4,0x00,0x00,0x23,0xC2,0xE0,0x10,0x01,0xF3, +0x17,0x08,0x89,0x23,0x00,0x24,0x9F,0x1F,0xFB,0x17,0x08,0x89,0xC2,0xE0,0x10,0x01, +0xF8,0x17,0x08,0x95,0xC1,0xA0,0x10,0x01,0xC1,0xE0,0x10,0x01,0xC1,0x40,0x10,0x01, +0x57,0x7B,0x08,0xFD,0xAD,0x08,0xBC,0xFD,0xEF,0x08,0xB8,0xFD,0x4A,0x0B,0xEC,0x23, +0x61,0x48,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x07,0xF6,0x22,0xE5,0x1C,0x0A,0xEA,0x19, +0x1E,0xF7,0xCE,0x5E,0xF7,0x04,0xC2,0xE0,0xF3,0x6E,0x20,0x00,0x4D,0x0A,0xEA,0x16, +0x5E,0xE9,0xF1,0x20,0x00,0x29,0xC2,0xE0,0xF5,0xE8,0x20,0x00,0x9D,0xE7,0xFF,0xE2, +0xE6,0x9A,0xE3,0x0E,0xED,0x00,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xB0,0xC2,0xE0, +0x10,0x01,0x18,0x0F,0x00,0xF8,0x17,0x08,0xD2,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08, +0xC3,0xC2,0xE0,0x10,0x01,0x9B,0x01,0xFB,0x17,0x08,0x95,0xC2,0xE0,0x10,0x01,0xF2, +0xF7,0x08,0xAC,0x22,0xE0,0x24,0x98,0x60,0xE7,0xFF,0xBE,0x3C,0x0E,0xED,0x02,0x22, +0xE1,0x82,0x0A,0xEE,0x01,0x56,0xF7,0x40,0x22,0xE0,0x54,0xE7,0xFF,0x37,0x88,0xC2, +0xE0,0x10,0x01,0xF8,0x17,0x08,0xD2,0x9A,0xE1,0xE4,0x00,0x14,0xFD,0x98,0x60,0xE7, +0xFF,0xFC,0xBC,0x0A,0xEE,0x01,0x56,0xF7,0x20,0xD2,0xE0,0x54,0x76,0x0E,0xA1,0x06, +0x0E,0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D, +0xE1,0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41, +0x32,0x0D,0x21,0x36,0x98,0x6A,0x98,0x82,0x1C,0x21,0x38,0xE7,0xFF,0xF7,0xE1,0x22, +0xE5,0x0E,0x0A,0xEE,0x01,0x57,0x17,0x08,0x23,0x00,0x2C,0xE7,0xFF,0xE1,0x8A,0xE4, +0x00,0x13,0x65,0x57,0x17,0x40,0x23,0x00,0x94,0xC6,0xF7,0x20,0x00,0x22,0xE0,0x7A, +0xC2,0xE0,0x10,0x01,0x98,0x62,0xF3,0x17,0x08,0xD2,0xC3,0x00,0x19,0x0A,0x20,0x25, +0x7B,0x9F,0x01,0xFB,0x17,0x08,0xD2,0xE4,0x00,0x14,0x41,0x0C,0x0D,0x00,0xE4,0x00, +0x14,0x33,0xC2,0x40,0x10,0x01,0xFE,0x52,0x08,0x82,0x22,0xE8,0xCA,0x0A,0xEE,0x01, +0xC1,0x40,0x10,0x01,0x56,0xF7,0x08,0x22,0xE0,0x74,0xF2,0xEA,0x08,0xB0,0x9E,0xE1, +0xFA,0xEA,0x08,0xB0,0xE7,0xFF,0x36,0x56,0xF2,0xEA,0x08,0xB0,0xD2,0xE0,0x4F,0x5A, +0xE4,0x00,0x0E,0xD9,0xF8,0x0A,0x08,0xB0,0xE4,0x00,0x11,0x8B,0xC2,0x00,0x10,0x01, +0xC1,0x80,0x10,0x01,0xC1,0x60,0x10,0x01,0xFE,0x10,0x08,0x83,0xFD,0x8C,0x0B,0xCC, +0xFD,0x6B,0x08,0x8C,0xD2,0xE3,0x39,0xDE,0x12,0xEA,0x00,0x22,0xE4,0x1A,0x18,0x12, +0x00,0xE7,0xFF,0xC7,0xC4,0xC3,0x00,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFF,0x20,0x03, +0xE8,0x20,0x68,0x1C,0xFF,0x20,0x01,0xF4,0xEF,0x37,0x01,0xC7,0xEF,0x38,0x01,0xC5, +0x0A,0xEE,0x01,0x56,0xF7,0x08,0xD2,0xE0,0x38,0x02,0xC1,0xC0,0x10,0x01,0xC2,0x20, +0x10,0x01,0x12,0xEA,0x00,0xFD,0xCE,0x08,0xF0,0xFE,0x31,0x01,0xAC,0xD2,0xE1,0x10, +0xF1,0x0B,0x8B,0x04,0xC3,0x8F,0xFF,0xE0,0x20,0x05,0xF9,0x08,0x8A,0x48,0x0B,0x2B, +0x06,0x0B,0x6B,0x00,0x43,0xA4,0xCD,0x08,0xAA,0x46,0x0B,0x4B,0x02,0x43,0xC5,0xE5, +0x0B,0x0A,0x18,0x08,0x6A,0x16,0x42,0xFA,0xC5,0x41,0x03,0xDD,0x42,0xFE,0xBB,0x41, +0x3D,0x43,0x8E,0xE9,0x22,0xE1,0x84,0x42,0x7C,0xDD,0x41,0x3A,0xCD,0x42,0x9D,0x9B, +0x42,0x5E,0x4B,0x8E,0x92,0x22,0x80,0x40,0x26,0x80,0x28,0x26,0xE0,0x2A,0xE4,0x00, +0x00,0x8F,0x26,0xFD,0x0E,0x4E,0xB7,0xFA,0x46,0x55,0xBE,0x42,0x52,0xAD,0x4E,0xB4, +0xFA,0x46,0x95,0xA6,0x42,0xB4,0xAD,0xD6,0xB2,0x01,0x74,0x42,0x98,0xD5,0x41,0x28, +0x4B,0x42,0x74,0x9B,0x8E,0x69,0x22,0x60,0x40,0x26,0x60,0x28,0x26,0xE0,0x2A,0xE4, +0x00,0x00,0x2D,0x26,0xFC,0x4A,0x4E,0xF3,0xFA,0x46,0x77,0x9E,0x42,0x73,0xBD,0x9A, +0xE1,0xD6,0x72,0x06,0x18,0x42,0x44,0xD5,0x42,0x65,0xDD,0x42,0x83,0xE5,0x42,0xF9, +0xC5,0x41,0x32,0xA3,0x42,0xF3,0xBB,0x8E,0xE9,0x22,0xE0,0xDC,0x43,0x9B,0xE5,0x40, +0xF9,0xD5,0x40,0xD2,0xE3,0x41,0x33,0x3B,0x8C,0xC9,0x20,0xC0,0x40,0x24,0xC0,0x28, +0x26,0xE0,0x2A,0xE4,0x00,0x00,0x3B,0x26,0xFC,0x66,0x4D,0x37,0xFA,0x46,0xA9,0xBE, +0x42,0xB5,0x4D,0x4D,0x26,0xFA,0x44,0xC9,0x36,0x41,0x26,0x4D,0xD5,0x35,0x01,0xA0, +0x43,0x58,0xD5,0x41,0x08,0x43,0x43,0x5A,0xD3,0x43,0x38,0xCD,0x42,0x94,0xA3,0x43, +0x39,0xCB,0x8F,0x48,0x8E,0x99,0x9A,0xE0,0xD6,0x9A,0x00,0x45,0x8B,0x54,0x9A,0xE1, +0x42,0x73,0x9B,0x42,0x52,0x93,0x8E,0x53,0xD6,0x5A,0x01,0xB1,0xE4,0x00,0x00,0x6F, +0x41,0x38,0xCD,0x40,0xF4,0x3B,0x43,0x89,0xE3,0x8F,0x87,0x23,0x80,0x40,0x27,0x80, +0x28,0x26,0xE0,0x2A,0xE7,0xFF,0xFF,0x79,0x26,0xFE,0xE2,0x4E,0xFC,0xFA,0x47,0x97, +0xE6,0x43,0x9C,0xBD,0x9A,0xE0,0xD7,0x95,0x00,0xF0,0xE7,0xFF,0xFF,0x4D,0x8B,0x52, +0x52,0xE0,0x10,0x43,0xDE,0xF3,0x43,0xBD,0xEB,0x53,0x20,0x11,0x8F,0xBE,0x5F,0xBA, +0x1F,0x4A,0xF7,0xC8,0x4F,0x37,0x21,0x46,0xF7,0xCE,0x56,0xF7,0x0F,0xD2,0xE0,0x3C, +0x92,0x0C,0xAA,0x17,0x0C,0x8A,0x19,0x0C,0x6A,0x47,0x0F,0x0A,0x49,0xE4,0x00,0x0F, +0x05,0x12,0xF0,0x00,0x9B,0x1E,0x46,0xF7,0xC4,0x98,0x63,0x1A,0xF0,0x00,0xE7,0xFF, +0xD9,0x96,0xE4,0x00,0x00,0xEF,0x0B,0x0B,0x00,0xC3,0x0F,0xFF,0xE4,0x20,0x01,0xB3, +0x13,0x32,0x00,0x0A,0x6B,0x02,0x9F,0x21,0x0B,0x6A,0x16,0x5F,0x39,0x00,0x41,0x1B, +0xC5,0x0B,0x4A,0x18,0x0B,0xAA,0x46,0x43,0xDA,0x9D,0x43,0x1D,0xC5,0x0B,0x8A,0x48, +0x43,0x18,0xC3,0x42,0x7C,0x9D,0x1B,0x32,0x00,0x42,0x73,0x9B,0x8F,0x13,0x41,0x08, +0x43,0x43,0xDE,0xF3,0x8F,0xC8,0x5F,0x1E,0x1F,0x53,0x00,0x10,0x4B,0x00,0xC0,0x23, +0x00,0x3C,0x0F,0xAA,0x17,0x0F,0x8A,0x19,0x0F,0x6A,0x47,0x0F,0x4A,0x49,0x27,0x28, +0xDB,0x9E,0xFF,0x9B,0x3C,0x1A,0xEA,0x00,0x12,0xF0,0x00,0x46,0xF7,0xCC,0x1A,0xF0, +0x00,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x88,0x12,0xF1,0x00,0x1A,0xEA,0x10,0x12, +0xF1,0x01,0x1A,0xEA,0x40,0xE7,0xFF,0x31,0x54,0x12,0xEA,0x00,0xD2,0xE1,0x3A,0x96, +0xE4,0x00,0x01,0xD9,0x18,0x12,0x00,0xE7,0xFF,0xFF,0xC5,0x22,0xE7,0x7A,0x18,0x12, +0x00,0x0A,0xEB,0x04,0xC2,0xEF,0xFF,0xE0,0x23,0xFF,0x45,0x0B,0xCA,0x16,0x0B,0xAA, +0x18,0x0B,0x2B,0x00,0x0B,0x0B,0x02,0x43,0x9E,0xCD,0x43,0x7D,0xC5,0x43,0xDE,0xBD, +0x0B,0x4B,0x06,0x43,0xDE,0xF3,0x43,0xBD,0xD5,0x43,0x9C,0xE3,0x43,0xBD,0xEB,0x43, +0x7B,0xDB,0x8F,0xBE,0x8F,0x7C,0xD7,0xBB,0x36,0x51,0xE4,0x00,0x0D,0x41,0x0B,0x8C, +0x03,0x43,0x98,0xE5,0x5F,0x9C,0x06,0x4F,0x7C,0xFA,0x47,0x9B,0xE6,0x43,0x7C,0xDD, +0xC3,0x60,0x10,0xE8,0x20,0x00,0xC1,0x0B,0x8C,0x03,0xC3,0x60,0x10,0x01,0xEF,0x9B, +0x08,0xD5,0xFF,0x7B,0x08,0xD4,0x0B,0x8C,0x07,0x0F,0x9B,0x03,0xC3,0x60,0x10,0x01, +0xEF,0x3B,0x08,0xC5,0xFF,0x7B,0x08,0xC4,0x0F,0x1B,0x03,0x13,0x10,0x00,0x53,0x18, +0x02,0x1B,0x10,0x00,0x0B,0x0E,0x05,0x0F,0x0E,0x01,0x0B,0x0E,0x07,0x0F,0x0E,0x03, +0x0B,0x0C,0x09,0x0F,0x0C,0x01,0x0B,0x0C,0x0B,0x0F,0x0C,0x03,0x0B,0x0C,0x0D,0x0E, +0xEB,0x01,0x0F,0x0C,0x05,0xFE,0xE0,0x7F,0xFF,0x0B,0x0C,0x0F,0x0E,0xEB,0x05,0x0E, +0xEB,0x07,0x0E,0xEE,0x05,0x0E,0xEE,0x07,0x0E,0xEC,0x09,0x0E,0xEC,0x0B,0x0F,0x0C, +0x07,0x0E,0xEC,0x0D,0x0E,0xEC,0x0F,0x9B,0x01,0x12,0xF1,0x01,0x0F,0x4B,0x03,0x1A, +0xF1,0x00,0x42,0xF8,0xBD,0x1A,0xF1,0x01,0xE7,0xFF,0xFE,0x03,0x0A,0xEA,0x17,0x0B, +0x0B,0x01,0x43,0x18,0xBD,0x5F,0x18,0x06,0x4E,0xF8,0xFA,0x47,0x17,0xC6,0x42,0xF8, +0xBD,0xC3,0x00,0x10,0x01,0xEB,0x38,0x01,0xC4,0xD6,0xF9,0x01,0x2C,0x0A,0xEA,0x19, +0x0B,0x0B,0x03,0x43,0x18,0xBD,0x5F,0x18,0x06,0x4E,0xF8,0xFA,0x47,0x17,0xC6,0x42, +0xF8,0xBD,0xC3,0x00,0x10,0x01,0xEB,0x38,0x01,0xC6,0xD6,0xF9,0x31,0x20,0xE7,0xFF, +0x2F,0xAA,0xD0,0x60,0x30,0xE2,0xE7,0xFF,0xD9,0x54,0xC2,0xE0,0x10,0x01,0xEF,0x17, +0x07,0xF6,0xD3,0x01,0x30,0x66,0xE4,0x00,0x0B,0xCD,0x9B,0x1E,0xEF,0x17,0x08,0xC1, +0xC1,0xA0,0x10,0x01,0x13,0x2A,0x00,0xFD,0xAD,0x0C,0x02,0x9B,0x00,0x8A,0xED,0xE4, +0x00,0x00,0x35,0x0B,0x57,0x01,0x9F,0x01,0x0F,0x4B,0x01,0x5F,0x18,0x00,0x0B,0x57, +0x03,0x1E,0xF7,0x30,0x0F,0x4B,0x03,0x9D,0x64,0xD7,0x19,0xFF,0x56,0xC2,0xE0,0x10, +0x01,0xEE,0xF7,0x08,0x9A,0x22,0xE4,0x26,0x99,0x60,0xE4,0x00,0x00,0x5F,0xE7,0xFF, +0xC0,0x0A,0x20,0x6B,0xD8,0xE7,0xFF,0xBF,0xFC,0x20,0x6C,0xAE,0xE7,0xFF,0xFF,0xD9, +0xCC,0x8B,0x00,0x30,0x88,0xCB,0x1C,0x84,0x10,0x9D,0x61,0x8C,0x8A,0x5D,0x6B,0x00, +0x1C,0x64,0x06,0x9C,0x88,0xE7,0xFF,0x6E,0xD4,0x10,0xAA,0x00,0xD4,0xAB,0xFF,0x25, +0xE4,0x00,0x00,0x11,0xE7,0xFF,0x6E,0x26,0xE7,0xFF,0xBF,0x96,0xC3,0x20,0x10,0x01, +0xC3,0x00,0x10,0x01,0xC2,0xE0,0x10,0x01,0x20,0x68,0xD6,0x53,0x40,0x4B,0xEF,0x58, +0x08,0xE5,0xEF,0x59,0x08,0xAF,0x53,0x00,0x25,0xEF,0x17,0x08,0xFB,0xC2,0xA0,0x10, +0x01,0xC2,0xE0,0x10,0x01,0xFE,0xB5,0x08,0xA0,0xEF,0x17,0x08,0xD1,0x99,0x60,0xC2, +0x60,0x10,0x01,0xC2,0x80,0x10,0x01,0x8A,0x55,0xE4,0x00,0x03,0x19,0x53,0x40,0x32, +0xEF,0x58,0x08,0xE5,0xEF,0x59,0x08,0xAF,0x53,0x00,0x19,0xE7,0xFF,0xFF,0x9D,0x4E, +0xEB,0x10,0x8E,0xEE,0x0B,0x17,0x00,0xC3,0x0F,0xFF,0xE4,0x20,0x05,0x3B,0x0B,0x37, +0x02,0xC3,0x2F,0xFF,0xE0,0x20,0x05,0x11,0xCE,0xEB,0x00,0x30,0x8E,0xEA,0x0A,0x37, +0x17,0x42,0x38,0x8D,0x5E,0x31,0x06,0x4F,0x11,0xFA,0x0A,0xF7,0x19,0x46,0x38,0x8E, +0x42,0xF9,0xBD,0x42,0x31,0xC5,0x5E,0xF7,0x06,0x4F,0x17,0xFA,0x5E,0x31,0x06,0x46, +0xF8,0xBE,0xE9,0xF3,0x08,0xE5,0x42,0xF7,0xC5,0x43,0x15,0x5C,0x5E,0xF7,0x06,0x13, +0x58,0x00,0xD6,0xEF,0x00,0xE4,0xC3,0x00,0x10,0x01,0xEB,0x18,0x08,0xAF,0xD6,0x38, +0x00,0x84,0x9B,0x03,0x27,0x48,0x57,0x1F,0x1A,0x01,0xE4,0x00,0x00,0x19,0x9B,0x00, +0x23,0x40,0x24,0x1F,0x1A,0xFF,0x5F,0x18,0x00,0x43,0x52,0x5C,0x1B,0x1A,0x00,0x43, +0x15,0x5C,0x13,0x18,0x00,0xD3,0x02,0x06,0xA1,0xEB,0x14,0x08,0xD1,0xD6,0xF8,0x00, +0x8C,0xCE,0xEB,0x00,0x30,0x8E,0xEA,0x0F,0x37,0x19,0xE4,0x00,0x00,0x9B,0xD6,0xEF, +0x02,0x4C,0x43,0x2F,0xC5,0x40,0x77,0xC5,0x43,0x39,0xCB,0x42,0xF8,0xBD,0x43,0x4F, +0x7B,0x40,0x63,0xBB,0x8C,0x79,0x40,0x63,0xD3,0x40,0x63,0xC8,0xE7,0xFF,0x2B,0x18, +0x4E,0xEB,0x10,0x8E,0xEE,0x5C,0x63,0x06,0x0B,0x17,0x02,0x41,0xEF,0x1D,0xCE,0xEB, +0x00,0x30,0x8E,0xEA,0x0B,0x37,0x18,0xD7,0x19,0x00,0x58,0x41,0xF8,0x7D,0xE4,0x00, +0x00,0x0D,0x8D,0xF8,0x0D,0xF7,0x19,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0xFB,0xD6, +0x37,0x00,0xCC,0xCE,0xEB,0x00,0x30,0x4F,0x0B,0x10,0x8E,0xEA,0x8F,0x0E,0x0B,0x18, +0x01,0x0F,0x17,0x17,0xE4,0x00,0x00,0xAB,0xC3,0x00,0x10,0x01,0xE9,0xF8,0x08,0xAF, +0xD6,0x2F,0x02,0x4C,0x43,0x0F,0xBD,0x43,0x2F,0x7B,0x43,0x18,0xC3,0x40,0x71,0xBD, +0x42,0x37,0x8D,0x40,0x63,0x8B,0x8C,0x78,0x40,0x63,0xCB,0x40,0x63,0xC0,0xE7,0xFF, +0x2A,0x34,0x4E,0xEB,0x10,0x8E,0xEE,0x5C,0x63,0x06,0x0B,0x17,0x00,0x41,0xEF,0x1D, +0xCE,0xEB,0x00,0x30,0x8E,0xEA,0x0B,0x37,0x16,0xD7,0x19,0x00,0x58,0x41,0xF8,0x7D, +0xE4,0x00,0x00,0x0D,0x8D,0xF8,0x0D,0xF7,0x17,0x4E,0xEB,0x10,0xCF,0x0B,0x00,0x30, +0x8E,0xEE,0x8F,0x0A,0x9D,0x61,0x0B,0x38,0x17,0x5D,0x6B,0x00,0x0B,0x18,0x19,0x0F, +0x37,0x01,0x0F,0x17,0x03,0x12,0xEA,0x00,0xD6,0xEB,0xF4,0x3D,0xE7,0xFF,0xBB,0xEE, +0x20,0x68,0x36,0x9B,0x08,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x01,0xBD,0xC2,0xE0,0x10, +0x01,0x13,0x2A,0x00,0xF3,0x77,0x08,0xE0,0x8B,0x0D,0xC2,0xE0,0x10,0x01,0x9B,0x80, +0xFE,0xF7,0x0B,0xD0,0xFF,0x40,0x7F,0xFF,0xE4,0x00,0x00,0x9F,0xD7,0x79,0x00,0x92, +0x0F,0x57,0xFD,0x0F,0x57,0xFF,0x0F,0x57,0x01,0x0F,0x57,0x03,0x8B,0x79,0x0B,0xB7, +0x00,0xC3,0xAF,0xFF,0xE0,0x20,0x00,0x41,0x0B,0xB7,0xFD,0x0F,0xB7,0x01,0x0B,0xB7, +0xFF,0xE4,0x00,0x00,0x1B,0x0B,0xB8,0x01,0x0F,0xB7,0x01,0x0B,0xB8,0x03,0x0F,0xB7, +0x03,0x0B,0xB8,0x01,0x9F,0x81,0x0F,0xB7,0xFD,0x5F,0x9C,0x00,0x0B,0xB8,0x03,0x1F, +0x18,0x30,0x0F,0xB7,0xFF,0x9E,0xE8,0xD7,0x99,0xFD,0xAE,0xC2,0xE0,0x10,0x01,0xFB, +0x77,0x08,0xE0,0xC2,0xE0,0x10,0x01,0x23,0x24,0x7A,0x9B,0x02,0xFB,0x17,0x08,0xFD, +0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x01,0xBC,0x9B,0x0A,0x9B,0x4A,0x43,0x18,0xBD,0x9A, +0xE0,0xE4,0x00,0x00,0x8F,0xF8,0x17,0x08,0xFD,0xE7,0xFF,0xFF,0xCF,0x0B,0x6C,0x04, +0x0B,0x8C,0x00,0x0B,0xAC,0x06,0x43,0x9C,0xDD,0x9E,0xE1,0x43,0x98,0xE3,0x5E,0xF7, +0x00,0x43,0x9C,0xD0,0x8F,0x9B,0x0B,0x6C,0x02,0x0F,0x8D,0x01,0x43,0x7B,0xED,0x0F, +0x8C,0x01,0x43,0x78,0xDB,0x43,0x7B,0xD0,0x8F,0x7D,0x5F,0x7B,0x06,0x0F,0x6D,0x03, +0x0F,0x6C,0x03,0x1D,0xAD,0x30,0x9D,0x88,0xD6,0xF9,0xFE,0x2E,0x12,0xF0,0x00,0x56, +0xF7,0x02,0x22,0xE0,0x24,0x98,0x64,0xE7,0xFF,0xCF,0x44,0x13,0x0A,0x00,0xC2,0xE0, +0x10,0x01,0x0E,0xA1,0x06,0x0E,0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21, +0x16,0x0E,0x01,0x1A,0x0D,0xE1,0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A, +0x0D,0x61,0x2E,0x0D,0x41,0x32,0x0D,0x21,0x36,0xFB,0x17,0x08,0x84,0x98,0x61,0x1C, +0x21,0x38,0xE7,0xFF,0xAD,0xE9,0x18,0x0F,0x00,0x9A,0xE4,0xE4,0x00,0x04,0xD9,0xD2, +0xE4,0x01,0xE6,0x0A,0xEE,0x01,0x56,0xF7,0x08,0x22,0xE0,0x5C,0x9A,0xE3,0x18,0x12, +0x00,0x0E,0xED,0x00,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0xC1,0xE4,0x00,0x04,0xD7, +0x12,0xEF,0x00,0x9E,0xE1,0x5E,0xF7,0x00,0x1A,0xEF,0x00,0xD2,0xE1,0x12,0xE1,0x9A, +0xE5,0x18,0x0F,0x00,0x0E,0xED,0x00,0xE4,0x00,0x04,0xA1,0xD2,0xE5,0x09,0xC6,0x12, +0xEF,0x00,0x9E,0xE1,0x1A,0xEF,0x00,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08,0xE0,0x22, +0xE9,0x36,0x12,0xF0,0x00,0x56,0xF7,0x01,0x22,0xE1,0x10,0xC2,0xE0,0x10,0x01,0xF8, +0x17,0x08,0xFD,0xC1,0x40,0x10,0x01,0xF2,0xEA,0x08,0x88,0x22,0xE8,0x66,0x98,0x65, +0xE7,0xFF,0xCD,0xD2,0x98,0x61,0xE7,0xFF,0xAC,0xE0,0x9A,0xE1,0xFA,0xEA,0x08,0x88, +0xE4,0x00,0x01,0x75,0xD2,0xE1,0x05,0x8E,0x98,0x65,0xE7,0xFF,0xCD,0x9E,0x98,0x61, +0xE7,0xFF,0xAC,0xAC,0xF8,0x0A,0x08,0x88,0xE4,0x00,0x01,0x45,0x0B,0x0B,0x00,0x0B, +0x4C,0x00,0x43,0x38,0xD5,0x5F,0x39,0x06,0x4E,0xF9,0xFA,0x47,0x37,0xCE,0x42,0xF9, +0xBD,0x5E,0xEC,0x99,0x20,0x00,0x7D,0x0A,0xEC,0x03,0x0B,0x2B,0x03,0x43,0x39,0xBD, +0x5F,0x39,0x06,0x4E,0xF9,0xFA,0x47,0x37,0xCE,0x42,0xF9,0xBD,0xC2,0xE0,0x10,0xE8, +0x20,0x01,0x95,0xC3,0x20,0x10,0x01,0xF2,0xF9,0x08,0xFD,0x22,0xE8,0xB6,0x8F,0x1A, +0x43,0x18,0xB8,0x0F,0x0A,0x17,0xC3,0x00,0x10,0x01,0xEB,0x58,0x08,0x8E,0xC3,0x00, +0x10,0x01,0xEB,0x18,0x0B,0xCE,0x8F,0x1A,0x42,0xF8,0xB8,0x0E,0xEA,0x19,0x9A,0xE1, +0xFA,0xF9,0x08,0xFD,0xE4,0x00,0x00,0x45,0x22,0xE4,0x66,0xC2,0xE0,0x10,0x01,0x0F, +0x0A,0x17,0xEA,0xF7,0x08,0x8F,0xF8,0x19,0x08,0xFD,0x0E,0xEA,0x19,0xE4,0x00,0x00, +0x13,0x9A,0xE3,0x1A,0xEF,0x00,0x9A,0xE1,0x98,0x61,0x1A,0xEA,0x00,0xE7,0xFF,0xAB, +0x72,0xE4,0x00,0x00,0x13,0x9A,0xE3,0x1A,0xEF,0x00,0x12,0xEF,0x00,0xD2,0xE2,0x0A, +0x51,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0xC1,0xE7,0xFF,0x24,0xAC,0xC2,0xE0,0x10, +0x01,0x9B,0x03,0xFB,0x17,0x08,0xAC,0xE7,0xFF,0xCF,0x52,0xE7,0xFF,0x65,0x38,0x98, +0x60,0xE7,0xFF,0xAB,0x0A,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xC3,0x9A,0xE6,0xE4, +0x00,0x01,0xF1,0xD2,0xE6,0x08,0xA6,0x0A,0xEE,0x01,0x56,0xF7,0x40,0x22,0xE0,0x26, +0x98,0x64,0xE7,0xFF,0xE9,0x96,0xC3,0x00,0x10,0x01,0xF2,0xF8,0x08,0xC3,0x9E,0xE1, +0x5E,0xF7,0x00,0xFA,0xF8,0x08,0xC3,0x5E,0xE6,0x53,0x0A,0xEE,0x01,0x20,0x01,0x35, +0x56,0xF7,0x40,0x22,0xE0,0x50,0x9A,0xE1,0x0E,0xED,0x00,0xC2,0xE0,0x10,0x01,0xF8, +0x17,0x08,0xD2,0xE4,0x00,0x01,0xA9,0x0C,0x0D,0x00,0x98,0x60,0x0E,0xA1,0x06,0x0E, +0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D,0xE1, +0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32, +0x0D,0x21,0x36,0x1C,0x21,0x38,0xE7,0xFF,0xE8,0xCF,0x56,0xF7,0x08,0xD2,0xE0,0x04, +0xD2,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xB0,0x9A,0xE2,0xE4,0x00,0x00,0xD9,0xC3, +0x6F,0xFF,0xE4,0x23,0xE1,0xF9,0xE7,0xFF,0xF2,0x07,0x98,0x62,0xE7,0xFF,0xCA,0x9A, +0xFE,0xE0,0x7F,0xFF,0x0E,0xEB,0x05,0x0E,0xEB,0x07,0x0E,0xEE,0x05,0x0E,0xEE,0x07, +0x0E,0xEC,0x09,0x0E,0xEC,0x0B,0x0E,0xEC,0x0D,0x0E,0xEC,0x0F,0xE7,0xFF,0xF1,0xBB, +0x0B,0x8C,0x01,0x43,0x99,0xE5,0x5F,0x9C,0x06,0x4F,0x7C,0xFA,0x47,0x9B,0xE6,0x43, +0x7C,0xDD,0x5F,0x6C,0x99,0x23,0xE4,0xA7,0xE7,0xFF,0xF2,0x7F,0xFE,0xE0,0x7F,0xFF, +0x18,0x0F,0x00,0x0E,0xEB,0x01,0x0E,0xEB,0x03,0x0E,0xEB,0x05,0x0E,0xEB,0x07,0x18, +0x11,0x00,0x1B,0x11,0x01,0x9A,0xE5,0x0E,0xED,0x00,0xE4,0x00,0x00,0x3B,0xC2,0xE0, +0x10,0x01,0xCB,0x20,0xFF,0xFD,0xEB,0x17,0x08,0xC1,0x9F,0x01,0x5F,0x18,0x04,0xD7, +0x19,0xCF,0x5D,0xE7,0xFF,0xF3,0xD3,0x0E,0xA1,0x06,0x0E,0x81,0x0A,0x0E,0x61,0x0E, +0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D,0xE1,0x1E,0x0D,0xC1,0x22,0x0D, +0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32,0x0D,0x21,0x36,0x1C,0x21, +0x38,0x85,0x29,0x9C,0x38,0x0D,0x41,0x00,0x0D,0x21,0x04,0x89,0x43,0x20,0x84,0x46, +0x98,0x60,0x88,0x8A,0xE7,0xFF,0xE2,0xAE,0x98,0x68,0xE4,0x00,0x00,0x1D,0x98,0x62, +0x88,0x8A,0xE7,0xFF,0xE2,0x92,0x98,0x69,0x88,0x8A,0x0D,0x21,0x06,0x0D,0x41,0x02, +0x9C,0x28,0xE7,0xFF,0xE2,0x73,0x9C,0x38,0x0D,0x21,0x04,0x0D,0x41,0x00,0x89,0x43, +0x98,0x60,0x88,0x8A,0xE7,0xFF,0xE2,0x4E,0x88,0x8A,0x0D,0x21,0x06,0x0D,0x41,0x02, +0x98,0x68,0x9C,0x28,0xE7,0xFF,0xE2,0x2F,0xD0,0x6B,0x0B,0x85,0x4F,0x03,0x10,0xC2, +0xF8,0x00,0x21,0xFE,0xF7,0xBA,0x7C,0x8E,0xF8,0xC3,0x40,0x10,0x01,0x0F,0xB7,0x02, +0xC3,0x60,0x10,0x01,0xC3,0x20,0x10,0x01,0xC3,0x80,0x10,0x01,0xC3,0x00,0x10,0x01, +0xC2,0xE0,0x10,0x01,0xFF,0x5A,0x09,0xA4,0xFF,0x7B,0x0A,0xE8,0xFF,0x39,0x0A,0x54, +0xFF,0x9C,0x0B,0x60,0xFF,0x18,0x0C,0xF2,0xFE,0xF7,0x09,0x68,0x87,0xA9,0xCC,0x63, +0x00,0x1A,0x5C,0x63,0x00,0x4F,0x23,0x08,0x4C,0x63,0x10,0x8F,0x19,0x8E,0xF9,0x8F, +0x43,0x9B,0x20,0x43,0x77,0xCC,0x43,0xB8,0xCC,0x4F,0x99,0x08,0x0B,0xBD,0x01,0x8F, +0x9A,0x0F,0x9C,0x02,0x4F,0x9C,0x42,0x43,0x9D,0xE5,0x0F,0x9B,0x01,0x9F,0x22,0x5F, +0x26,0x89,0x23,0xFF,0x85,0xE4,0x00,0x01,0xE7,0x9C,0x7E,0xCC,0x63,0x00,0x1A,0x5C, +0x63,0x00,0x4F,0x43,0x08,0x4C,0x63,0x10,0x8F,0x1A,0x8C,0x79,0x8E,0xFA,0x9B,0x20, +0x43,0x77,0xCC,0x43,0xB8,0xCC,0x4F,0x99,0x08,0x0B,0xBD,0x01,0x8F,0x83,0x0F,0x9C, +0x02,0x4F,0x9C,0x42,0x43,0x9D,0xE5,0x0F,0x9B,0x01,0x9F,0x22,0x5F,0x26,0x89,0x23, +0xFF,0x85,0xE4,0x00,0x01,0x6D,0x0B,0x78,0x35,0x0F,0x3A,0x6A,0x4F,0x39,0x42,0x43, +0x3B,0xCD,0x0B,0x78,0x37,0x0F,0x37,0x35,0x0F,0x3A,0x6E,0x4F,0x39,0x42,0x43,0x3B, +0xCD,0x0F,0x37,0x37,0x0F,0x3A,0x72,0xE4,0x00,0x00,0x4B,0x0F,0x59,0x6A,0x0B,0x78, +0x35,0x4F,0x5A,0x42,0x43,0x5B,0xD5,0x0B,0x78,0x37,0x0F,0x57,0x35,0x0F,0x59,0x6E, +0x0F,0x39,0x72,0x4F,0x5A,0x42,0x43,0x5B,0xD5,0x0F,0x57,0x37,0x4F,0x39,0x42,0x0B, +0x18,0x39,0x43,0x18,0xCD,0x0F,0x17,0x39,0xE4,0x00,0x00,0xC1,0xC3,0xA0,0x10,0x01, +0x9A,0xE0,0xFF,0xBD,0x0B,0xAC,0x43,0x17,0xE4,0x43,0x57,0xDC,0x4F,0x37,0x08,0x0B, +0x5A,0x01,0x8F,0x3D,0x0F,0x39,0x02,0x4F,0x39,0x42,0x43,0x3A,0xCD,0x0F,0x38,0x01, +0x9E,0xE2,0x5E,0xE2,0x09,0x23,0xFF,0x85,0xE4,0x00,0x00,0x61,0xC3,0xA0,0x10,0x01, +0x9A,0xE0,0xFF,0xBD,0x0A,0xC8,0x43,0x17,0xE4,0x43,0x57,0xDC,0x4F,0x37,0x08,0x0B, +0x5A,0x01,0x8F,0x3D,0x0F,0x39,0x02,0x4F,0x39,0x42,0x43,0x3A,0xCD,0x0F,0x38,0x01, +0x9E,0xE2,0x5E,0xE2,0x09,0x23,0xFF,0x85,0x85,0x29,0x9C,0x38,0x0D,0x21,0x04,0x20, +0x64,0x56,0x98,0x60,0xE7,0xFF,0xFD,0x08,0x98,0x68,0xE7,0xFF,0xFC,0xFC,0x98,0x6A, +0xE4,0x00,0x00,0x25,0x98,0x62,0xE7,0xFF,0xFC,0xE4,0x98,0x69,0xE7,0xFF,0xFC,0xD8, +0x98,0x6B,0x0D,0x21,0x06,0x9C,0x28,0xE7,0xFF,0xFC,0xC3,0x9C,0x38,0x98,0x60,0x0D, +0x21,0x04,0xE7,0xFF,0xFC,0xAC,0x0D,0x21,0x06,0x98,0x68,0x9C,0x28,0xE7,0xFF,0xFC, +0x97,0xC2,0xE0,0x10,0x01,0xCB,0x00,0x7F,0xFF,0xFE,0xF7,0x0B,0x60,0x8B,0x37,0x0B, +0x79,0x00,0x5F,0x1B,0x15,0x4B,0x58,0xD8,0x9F,0x22,0x5F,0x1A,0x06,0xC3,0x40,0x10, +0x01,0xFF,0x5A,0x0B,0x70,0xD7,0x3A,0xFF,0x56,0x9B,0x20,0x0B,0x57,0x00,0x43,0x5A, +0xC5,0x9E,0xE2,0xC3,0x40,0x3E,0x88,0xC3,0x40,0x10,0x01,0x4B,0x39,0x0A,0xFF,0x5A, +0x0B,0x70,0xD6,0xFA,0xFF,0x4E,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0x23,0x20, +0x64,0xEB,0x37,0x08,0x8B,0xCB,0x39,0x08,0x00,0xEF,0x37,0x08,0x8B,0x9A,0xE1,0xFA, +0xF8,0x08,0x94,0xE4,0x00,0x00,0x2F,0xEB,0x37,0x08,0x8B,0xFF,0x40,0xF7,0xFF,0xF8, +0x18,0x08,0x94,0x47,0x39,0xD4,0xEF,0x37,0x08,0x8B,0x85,0x29,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x3D,0xF9,0x1C,0x21,0xC8,0x0D,0x21,0x34,0x0D,0x41,0x30,0x0D,0x61,0x2C, +0x0D,0x81,0x28,0x0D,0xA1,0x24,0x0D,0xC1,0x20,0x0D,0xE1,0x1C,0x0E,0x01,0x18,0x0E, +0x21,0x14,0x0E,0x41,0x10,0x0E,0x61,0x0C,0x0E,0x81,0x08,0x13,0x17,0x00,0xC2,0xE0, +0x10,0x01,0xFB,0x17,0x00,0xB8,0xF3,0x17,0x00,0xB8,0x23,0x00,0x2C,0xF2,0xF7,0x00, +0xB8,0xD2,0xE1,0x2F,0xAE,0xC1,0xA0,0x10,0x01,0xC1,0xE0,0x10,0x01,0xFD,0xAD,0x08, +0xE2,0xFD,0xEF,0x00,0xD8,0x0A,0xED,0x01,0x56,0xF7,0x80,0xD2,0xE0,0x2D,0x9E,0xC2, +0xE0,0x10,0x01,0xC1,0x60,0x10,0x01,0xF3,0x17,0x00,0xB8,0xFD,0x6B,0x09,0x68,0x23, +0x08,0xB2,0xF2,0xF7,0x00,0xB8,0x22,0xE8,0x68,0x0B,0x2B,0x02,0x9B,0x02,0xCF,0x59, +0x00,0x03,0x0A,0xEB,0x00,0x43,0x1A,0xC0,0xD6,0xF8,0x02,0x14,0xE4,0x00,0x00,0xA9, +0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x07,0x6F,0x22,0xE3,0x86,0x8B,0x0B,0x9A,0xE0,0x9B, +0x22,0x5F,0x57,0x00,0x27,0x44,0x3D,0x5E,0xE3,0x01,0x20,0x00,0x25,0x5E,0xE3,0x29, +0x20,0x00,0x31,0x0B,0x58,0x00,0x43,0x5A,0xC8,0x0F,0x58,0x01,0x9E,0xE1,0x9F,0x02, +0x5E,0xE3,0x49,0x23,0xFF,0x79,0xE7,0xFF,0xFF,0x67,0x42,0xF7,0xC5,0x53,0x20,0x15, +0xCE,0xF7,0x00,0x0A,0x42,0xF7,0xC8,0x8F,0x17,0x0F,0x0B,0x01,0xE4,0x00,0x00,0x43, +0x4E,0xF7,0x08,0x9B,0x1D,0x43,0x17,0xC0,0x8F,0x38,0x9B,0x07,0xCF,0x39,0x00,0x06, +0x43,0x39,0xC0,0x9B,0x03,0x42,0xF7,0xC0,0x8E,0xF9,0x0E,0xEB,0x03,0x0B,0x2B,0x30, +0x0B,0x0B,0x32,0x4E,0xF9,0x08,0xD7,0x17,0x00,0xC0,0xCF,0x39,0xFF,0xFE,0x9B,0x4B, +0x8F,0x19,0xCF,0x18,0x00,0x03,0x43,0x18,0xD0,0x8E,0xF8,0x0E,0xEB,0x33,0x0A,0xEB, +0x32,0x9B,0x12,0x43,0x17,0xC0,0x8E,0xF8,0x53,0x00,0xF0,0x0E,0xEB,0x33,0xC2,0xE0, +0x10,0x01,0xEF,0x17,0x01,0x55,0x0E,0xEF,0x02,0x22,0xE4,0x1E,0xE7,0xFF,0xFC,0x8A, +0xC1,0x80,0x10,0x01,0xFD,0x8C,0x0B,0x76,0x12,0xEC,0x04,0x10,0x6C,0x01,0x40,0x63, +0xBB,0xE7,0xFF,0xC5,0xEC,0xC1,0xC0,0x10,0x01,0x13,0x2C,0x04,0xFD,0xCE,0x0A,0x18, +0x10,0x6C,0x01,0x0A,0xEE,0x00,0x43,0x79,0x1B,0x9B,0x00,0xE4,0x00,0x00,0x35,0x4F, +0x58,0x10,0x9F,0x01,0x8F,0x4E,0x5F,0x18,0x00,0x0F,0x5A,0x02,0x5F,0x9A,0x06,0x5F, +0x57,0x1D,0x4A,0xFC,0xB8,0xD7,0x78,0xFF,0x54,0xC1,0x40,0x10,0x01,0xC2,0xE2,0x32, +0x88,0xFD,0x4A,0x01,0x3C,0x20,0x00,0x35,0x4E,0xF7,0x0A,0x0E,0xEA,0x19,0xE4,0x00, +0x00,0x2F,0x53,0x00,0xF0,0xC2,0xE0,0x77,0xE8,0x20,0x00,0x25,0x4E,0xF7,0x12,0x5F, +0x17,0x06,0x0F,0x0A,0x19,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08,0x94,0x22,0xE1,0x54, +0x40,0x63,0xCB,0xE7,0xFF,0xC5,0x08,0x12,0xEC,0x01,0x13,0x6C,0x04,0x0B,0x2E,0x00, +0x43,0x7B,0xBB,0x9A,0xE0,0x8B,0x17,0xE4,0x00,0x00,0x35,0x4F,0x58,0x10,0x8F,0x4E, +0x0F,0x5A,0x02,0xD7,0x59,0x00,0x48,0x5F,0x3A,0x06,0x8A,0xF8,0x9F,0x01,0x5F,0x18, +0x00,0xD7,0x78,0xFF,0x54,0x26,0xE8,0x3D,0xD2,0xEB,0x00,0x62,0xD2,0xEC,0x00,0x42, +0xD2,0xEA,0x00,0x66,0xFE,0xE0,0x02,0x58,0xE4,0x00,0x00,0x0F,0x52,0xE0,0xC8,0x0E, +0xEA,0x19,0x88,0x6A,0xE7,0xFF,0x29,0x76,0xC1,0x80,0x10,0x01,0x89,0xCB,0xFD,0x8C, +0x0B,0xEC,0x8A,0xEB,0x12,0x2C,0x00,0x53,0x20,0x14,0x0B,0x17,0x00,0xCF,0x18,0x00, +0x23,0x43,0x18,0xC8,0x0F,0x17,0x01,0xC3,0x00,0x10,0x01,0x9E,0xE2,0xFF,0x18,0x09, +0x9C,0xD6,0xF8,0xFF,0x4E,0x88,0x6A,0xE7,0xFF,0x29,0x10,0xC2,0x00,0x10,0x01,0x9A, +0xE0,0xFE,0x10,0x08,0x84,0x22,0x20,0x4A,0x13,0x0C,0x00,0x27,0x04,0x33,0x12,0xF0, +0x00,0x5E,0xE0,0x01,0x4A,0xE1,0x01,0x13,0x0C,0x00,0x23,0x09,0x2E,0x13,0x10,0x00, +0x23,0x05,0x3A,0x13,0x2C,0x07,0x13,0x0C,0x37,0xD7,0x38,0x02,0x2A,0x0F,0x0C,0x0A, +0x23,0x04,0xFA,0x0F,0x0C,0x3A,0x23,0x04,0xE2,0xC3,0x00,0x10,0x01,0xEB,0x38,0x0B, +0xCE,0xC3,0x2F,0xFF,0xE0,0x20,0x00,0xA5,0xFF,0x39,0xFC,0x01,0x4F,0x19,0xFA,0x47, +0x38,0xCE,0x43,0x19,0xC5,0xC3,0x20,0x10,0x01,0xEB,0x59,0x0B,0x81,0xD7,0x1A,0x00, +0xA4,0xE4,0x00,0x00,0x1B,0x23,0x04,0x26,0x13,0x10,0x00,0x23,0x00,0x18,0x22,0xE0, +0x9C,0x53,0x00,0x23,0x0A,0xEE,0x00,0xCE,0xF7,0x00,0x14,0x42,0xF7,0xC0,0x0E,0xEE, +0x01,0xC3,0x40,0x10,0x01,0x9D,0xC2,0xFF,0x5A,0x09,0x9C,0xD5,0xDA,0xFF,0x4E,0x88, +0x6A,0xE7,0xFF,0x27,0xDC,0x12,0xEC,0x00,0x22,0xE0,0x5A,0xC2,0xE0,0x10,0x01,0xEC, +0x17,0x08,0x98,0x13,0x2C,0x00,0xD3,0x20,0x0A,0xBE,0xE4,0x00,0x02,0xE1,0x98,0x61, +0x98,0x81,0x88,0xAA,0xE7,0xFF,0x22,0xBC,0x0A,0xEA,0x10,0x0B,0x0A,0x06,0x0B,0x2A, +0x12,0x5D,0xD7,0x04,0x42,0x38,0xBD,0x40,0xB8,0xCD,0xCA,0xE0,0x07,0xFF,0x43,0x37, +0xCD,0x0B,0x4A,0x02,0x0B,0x6A,0x08,0x40,0x97,0xC5,0x5C,0xF9,0x04,0x11,0x0C,0x00, +0x0B,0x2A,0x0A,0x40,0x78,0xD5,0x42,0x59,0xDD,0x42,0x77,0xCD,0x40,0xDA,0xC5,0xC2, +0xE0,0x10,0x01,0x9E,0x4A,0x42,0x9B,0xCD,0xFE,0xF7,0x0C,0x04,0x9B,0xA0,0xCB,0xC0, +0x07,0xFF,0xE4,0x00,0x00,0xC9,0x0B,0x97,0xFE,0xD7,0x1C,0x00,0x98,0x43,0x9C,0xD5, +0x43,0x9C,0x8B,0x43,0x9C,0x18,0x8F,0x8E,0xE4,0x00,0x00,0x2D,0xD7,0x84,0x00,0xA8, +0x43,0x9E,0xE5,0x43,0x9C,0xD5,0x43,0x9C,0x2B,0x43,0x9C,0x30,0x8F,0x87,0x0F,0x97, +0xFF,0x0B,0x97,0x00,0xD7,0x3C,0x00,0x98,0x43,0x9C,0xDD,0x9F,0x8A,0x43,0x9C,0xCB, +0x43,0x9C,0x90,0xE4,0x00,0x00,0x31,0xD7,0x93,0x00,0xB8,0x43,0x9E,0xE5,0x43,0x9C, +0xDD,0x43,0x9C,0xCB,0x43,0x9C,0xA0,0xFF,0x9C,0x07,0xFF,0x0F,0x97,0x01,0x9F,0xA1, +0x1E,0xF7,0x30,0x5F,0xBD,0x00,0xD7,0xA8,0xFD,0x06,0xCA,0xE0,0x07,0xFF,0x0B,0x0A, +0x12,0x0B,0x4A,0x10,0x0B,0x6A,0x0C,0x43,0xB7,0xD5,0x42,0xF7,0xDD,0x43,0xBD,0xC5, +0x0B,0x0A,0x0E,0x43,0xD7,0xC5,0xC2,0xE0,0x10,0x01,0x9B,0x00,0xF1,0x17,0x08,0x94, +0x12,0xEC,0x00,0xE4,0x00,0x00,0x93,0xCF,0x38,0x00,0x30,0x8F,0x2C,0x0B,0x99,0x16, +0x09,0x59,0x18,0x43,0x9C,0xD5,0x41,0x4A,0xDD,0xCF,0x9C,0x07,0xFF,0xCD,0x4A,0x07, +0xFF,0x43,0x9C,0xE8,0x41,0x4A,0xF0,0x0F,0x99,0x17,0x0D,0x59,0x19,0x1F,0x9C,0x9C, +0x5F,0x9C,0x04,0xC3,0x80,0xE6,0xEA,0x20,0x00,0x41,0x21,0x00,0x34,0x8B,0x37,0x22, +0xE0,0x14,0x9B,0x21,0x5E,0xF9,0x00,0x9F,0x01,0x5F,0x18,0x00,0xD6,0xF8,0xFD,0xDD, +0x1A,0xEC,0x00,0xE7,0xFF,0xFD,0x71,0xCF,0x57,0x00,0x30,0x9E,0xE1,0x8F,0x4C,0x0F, +0x5A,0x0E,0xC3,0x40,0x95,0xEC,0x4B,0x18,0x0A,0xE4,0x00,0x00,0x11,0x9A,0xE0,0x8B, +0x17,0x5F,0x57,0x00,0xD7,0x3A,0xFF,0x1D,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x08,0x98, +0x0A,0xED,0x01,0x52,0xF7,0x08,0xE4,0x00,0x00,0x33,0x9B,0x07,0xC2,0xE0,0x10,0x01, +0x18,0x10,0x00,0xEF,0x17,0x01,0xBD,0x0A,0xED,0x01,0x9B,0x17,0x46,0xF7,0xC4,0x0E, +0xED,0x01,0x0E,0xEF,0x02,0xD2,0xE1,0x0D,0xAE,0xE7,0xFF,0xD9,0x4C,0xC2,0xE0,0x10, +0x01,0xEE,0xF7,0x07,0xF6,0xD2,0xE1,0x0A,0xAA,0x0B,0x2B,0x35,0x0A,0xEB,0x39,0x0B, +0x0B,0x36,0x5F,0x77,0x06,0x5F,0x59,0x06,0xD7,0x5B,0x00,0x30,0x8A,0xF9,0x5F,0x37, +0x06,0xC1,0xF8,0x00,0x21,0x47,0x39,0xCF,0xC2,0x00,0x10,0x01,0x4F,0x39,0xFA,0x99, +0x40,0x46,0xF7,0xCC,0xC1,0xC0,0x10,0x01,0x5E,0xF7,0x06,0xFD,0xEF,0xB4,0xBA,0x4E, +0xF7,0x08,0xFE,0x10,0x01,0xBE,0x5E,0xF8,0x15,0xC1,0x80,0x10,0x01,0x4A,0xF7,0xC0, +0x43,0x18,0xBD,0x0F,0x0B,0x37,0xE4,0x00,0x00,0xAD,0x1C,0x61,0x05,0x88,0x8F,0x98, +0xA3,0xE7,0xFF,0x66,0x30,0x1E,0xE1,0x08,0x8E,0xEA,0x12,0xF7,0xFD,0x1F,0x17,0x1A, +0x4E,0xF7,0x08,0x4F,0x18,0x08,0x8E,0xF0,0x8F,0x0B,0x0A,0xF7,0x01,0x0B,0x18,0x00, +0xD7,0x17,0x00,0xA0,0x9A,0xE1,0xEB,0x0C,0x08,0x7F,0x4E,0xF7,0x54,0x46,0xF7,0xC5, +0xE4,0x00,0x00,0x27,0x9A,0xE1,0xEB,0x0C,0x08,0x7F,0x4E,0xF7,0x54,0x46,0xF7,0xBF, +0x46,0xF7,0xC4,0x9D,0x41,0xEE,0xEC,0x08,0x7F,0x5D,0x4A,0x00,0xF2,0xEE,0x08,0xC2, +0xD6,0xEA,0xFD,0x55,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x7F,0x22,0xE0,0x34,0x0A, +0xED,0x01,0x52,0xF7,0x10,0xE4,0x00,0x00,0x3B,0x0A,0xED,0x01,0x57,0x17,0x10,0x23, +0x00,0x34,0x9B,0x21,0xC3,0x00,0x10,0x01,0xFB,0x38,0x08,0xAC,0x1F,0x40,0xEF,0x46, +0xF7,0xD4,0x0E,0xED,0x01,0xC1,0x40,0x10,0x01,0xC3,0x00,0x10,0x01,0xEE,0xEA,0x08, +0xB6,0xFF,0x18,0x08,0xD3,0x22,0xE0,0x56,0x18,0x18,0x00,0x0A,0xED,0x01,0x56,0xF7, +0x10,0x22,0xE1,0x64,0x9A,0xE1,0xE4,0x00,0x00,0x41,0x22,0xE4,0x92,0x12,0xF8,0x00, +0x9E,0xE1,0x5E,0xF7,0x00,0x1A,0xF8,0x00,0x0B,0x0D,0x01,0x57,0x18,0x10,0x23,0x00, +0xE0,0x26,0xE4,0xE5,0x9A,0xE2,0xEE,0xEA,0x08,0xB4,0xE4,0x00,0x00,0x61,0x22,0xE8, +0x7E,0x18,0x18,0x00,0x0A,0xED,0x01,0x56,0xF7,0x10,0x22,0xE0,0x34,0x98,0x62,0xE7, +0xFF,0x97,0xAE,0xE4,0x00,0x00,0x2F,0x9A,0xE3,0xE7,0xFF,0xFF,0xBB,0x22,0xEC,0x36, +0x98,0x60,0xE7,0xFF,0x97,0x88,0xEC,0x0A,0x08,0xB4,0x0B,0x0D,0x00,0xC2,0xE0,0x10, +0x01,0x27,0x1C,0x56,0xF3,0x17,0x08,0x9C,0xD3,0x09,0x01,0xB5,0x9F,0x01,0xFB,0x17, +0x08,0x9C,0xE4,0x00,0x00,0x59,0xF8,0x17,0x08,0x9C,0xE4,0x00,0x00,0x61,0x0E,0xEF, +0x02,0x22,0xE4,0xA6,0x9B,0x05,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x08,0xBC,0x9B,0x03, +0xC2,0xE0,0x10,0x01,0x98,0x60,0xFB,0x17,0x08,0xAC,0xE7,0xFF,0x96,0xF8,0xE7,0xFF, +0x91,0xF0,0xE4,0x00,0x00,0x11,0xE7,0xFF,0x92,0xA2,0xC2,0xE0,0x10,0x01,0xEB,0x17, +0x08,0x81,0xC3,0x00,0x7D,0x0A,0x20,0x00,0x61,0xC3,0x00,0x10,0x01,0x9B,0x5E,0xF3, +0x38,0x08,0x85,0xEC,0x17,0x08,0x81,0x47,0x39,0xD4,0xFB,0x38,0x08,0x85,0x0E,0x81, +0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D,0xE1,0x1E, +0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32,0x0D, +0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0x9C,0x38,0x0D,0x21,0x04,0xE7,0xFF,0xA1,0xE2, +0x20,0x60,0xE6,0xE7,0xFF,0xA1,0xC0,0x20,0x64,0x7A,0x98,0x80,0xE7,0xFF,0xB3,0x46, +0xE7,0xFF,0x54,0xFE,0x20,0x60,0x26,0x98,0x61,0xE4,0x00,0x00,0x35,0x98,0x61,0x98, +0x80,0xE4,0x00,0x00,0x7B,0xE7,0xFF,0xA1,0x7C,0x98,0x80,0xE7,0xFF,0xB3,0x08,0xE7, +0xFF,0xA1,0x68,0x98,0x82,0xE4,0x00,0x00,0x53,0xE7,0xFF,0xA1,0x68,0x20,0x65,0x0E, +0xE7,0xFF,0xA1,0x46,0x20,0x64,0xA2,0x98,0x81,0xE7,0xFF,0xB2,0xCC,0xE7,0xFF,0x54, +0x84,0x20,0x60,0x26,0x98,0x61,0xE4,0x00,0x00,0x49,0x98,0x61,0x88,0x83,0xE7,0xFF, +0xAF,0x6A,0xE7,0xFF,0xC9,0x78,0x9A,0xE0,0xE4,0x00,0x00,0xED,0xE7,0xFF,0xA0,0xEE, +0x98,0x81,0xE7,0xFF,0xB2,0x7A,0xE7,0xFF,0xA0,0xDA,0x98,0x83,0xE7,0xFF,0xFF,0xC5, +0xE7,0xFF,0xA0,0xDA,0x20,0x68,0x36,0xE7,0xFF,0xA0,0xB8,0x98,0x82,0xE4,0x00,0x00, +0x23,0xE7,0xFF,0xA0,0xB8,0x20,0x6C,0x5E,0xE7,0xFF,0xA0,0x96,0x98,0x83,0xE7,0xFF, +0xB2,0x22,0xE7,0xFF,0xA0,0x82,0x98,0x87,0xE7,0xFF,0xFF,0x6D,0xE7,0xFF,0xA0,0x82, +0xD0,0x67,0x00,0xC6,0xE7,0xFF,0xA0,0x5E,0x98,0x87,0xE7,0xFF,0xB1,0xEA,0xE7,0xFF, +0xA0,0x4A,0x98,0x88,0xE7,0xFF,0xFF,0x35,0xE7,0xFF,0xA0,0x4A,0x9A,0xE0,0xD0,0x68, +0x00,0x86,0xE7,0xFF,0xA0,0x22,0x98,0x88,0xE7,0xFF,0xB1,0xAE,0x9A,0xE1,0x88,0x77, +0x0D,0x21,0x06,0x9C,0x28,0x85,0x29,0x1C,0x21,0xE8,0x0D,0x21,0x14,0x0D,0x41,0x10, +0x0D,0x61,0x0C,0x0D,0x81,0x08,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xE7,0xFF, +0x8C,0xCC,0x0C,0x61,0x00,0xE7,0xFF,0x8C,0xC6,0x0C,0x61,0x04,0x0E,0xE1,0x02,0xD2, +0xE0,0x1D,0x42,0x0E,0xE1,0x02,0xC1,0x80,0x10,0x01,0xC1,0x40,0x10,0x01,0x57,0x17, +0x10,0xFD,0x8C,0x00,0xDE,0xFD,0x4A,0x00,0xCC,0xD3,0x00,0x0A,0x92,0x50,0x60,0x10, +0xE7,0xFF,0x8C,0xA8,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x00,0xBB,0x9F,0x01,0x5F,0x18, +0x04,0xEF,0x17,0x00,0xBB,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0x81,0x23,0x00,0x24, +0x9F,0x01,0xEF,0x17,0x08,0x81,0xE7,0xFF,0x8C,0xA4,0x0A,0xEC,0x0B,0xC1,0x60,0x10, +0x01,0x40,0x63,0xBD,0xFD,0x6B,0x06,0xFE,0x5E,0xE3,0x04,0x5E,0xE3,0xBB,0x20,0x02, +0x0F,0x0A,0xEB,0x01,0x56,0xF7,0x20,0x22,0xE1,0xE8,0x98,0x61,0xE7,0xFF,0xB3,0x66, +0x20,0x61,0xC6,0xE7,0xFF,0x9E,0xC0,0x20,0x64,0x56,0xC2,0xE0,0x10,0x01,0xF2,0xF7, +0x00,0xC0,0x56,0xF7,0x01,0x22,0xE1,0x72,0xE4,0x00,0x00,0x1F,0xE7,0xFF,0x9E,0x8E, +0x20,0x63,0xA8,0xE4,0x00,0x00,0x9D,0xE7,0xFF,0xC6,0x00,0x0A,0xEB,0x01,0xC6,0xF7, +0xFF,0xDF,0x0E,0xEB,0x01,0xE7,0xFF,0x9E,0x5C,0x20,0x60,0x5E,0x98,0x81,0x98,0xA0, +0xE7,0xFF,0x47,0x10,0x98,0x60,0x88,0x83,0xE7,0xFF,0xAC,0x96,0xE4,0x00,0x00,0x43, +0x98,0x80,0x98,0x62,0xE7,0xFF,0xAC,0x7E,0xFC,0x60,0x01,0x5E,0xE7,0xFF,0x56,0x2C, +0x98,0x60,0xE7,0xFF,0x4B,0xFA,0xE7,0xFF,0x8B,0x84,0x0C,0x6C,0x09,0xE7,0xFF,0xC6, +0x62,0xE7,0xFF,0x8B,0x6E,0x0A,0xEC,0x0F,0x40,0x63,0xBD,0x5E,0xE3,0x04,0xC2,0xE0, +0x3E,0x6E,0x20,0x01,0xB3,0x0A,0xEB,0x01,0x56,0xF7,0x80,0x22,0xE1,0x8C,0xE7,0xFF, +0x9D,0xAA,0x20,0x6D,0x72,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x00,0xC0,0x56,0xF7,0x01, +0x22,0xE1,0x3A,0xC1,0x80,0x10,0x01,0xEA,0xEC,0x0D,0x63,0x9E,0xE1,0xEE,0xEC,0x0D, +0x63,0xE7,0xFF,0xC4,0xEC,0x0A,0xEB,0x01,0xC6,0xF7,0xFF,0x7F,0x0E,0xEB,0x01,0xEA, +0xEC,0x0D,0x63,0xD2,0xEC,0x00,0xF9,0x98,0x63,0xE7,0xFF,0xB1,0xCC,0x20,0x60,0x56, +0x98,0x61,0x98,0x80,0xE7,0xFF,0xAB,0x7E,0x98,0x60,0xE7,0xFF,0x4B,0x52,0xE4,0x00, +0x00,0x19,0x98,0x63,0x98,0x80,0xE7,0xFF,0xAB,0x5A,0xE7,0xFF,0xC5,0x68,0x0A,0xEA, +0x01,0x52,0xF7,0x10,0x0E,0xEA,0x01,0xE4,0x00,0x05,0x25,0xC6,0xF7,0x01,0x00,0xD2, +0xE0,0x14,0x52,0xC2,0xE0,0x10,0x01,0x98,0x60,0xEC,0x17,0x0D,0x63,0xE7,0xFF,0x89, +0xBE,0xFC,0x60,0x01,0x00,0xE7,0xFF,0x89,0xBE,0xFC,0x60,0x01,0x00,0xE7,0xFF,0x89, +0xCE,0xE7,0xFF,0x9C,0x84,0xD0,0x67,0x12,0xC5,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBA, +0xAC,0x4C,0x63,0x10,0x8C,0x77,0x0E,0xE3,0x02,0x86,0xE9,0xE7,0xFF,0x9C,0x64,0x20, +0x60,0x46,0x98,0x80,0xE7,0xFF,0xAD,0xD6,0x98,0x60,0x98,0x87,0xE4,0x00,0x03,0xBF, +0xE7,0xFF,0x9C,0x3A,0xD0,0x67,0x11,0x4E,0x98,0x60,0x98,0x87,0xE4,0x00,0x03,0x47, +0xE7,0xFF,0xFA,0x2E,0xD0,0x60,0x10,0xCA,0xE7,0xFF,0xAF,0xC8,0x5D,0x63,0x04,0x98, +0x61,0xE7,0xFF,0xB0,0x7C,0xD0,0x60,0x0C,0x76,0xC1,0x60,0x19,0x0A,0x20,0x06,0x19, +0xE7,0xFF,0x4A,0x1A,0xE7,0xFF,0x49,0xEA,0x5C,0x63,0x00,0x24,0x64,0x2B,0xC1,0x60, +0x32,0x0A,0x20,0x00,0x91,0x98,0x80,0x98,0x62,0xE7,0xFF,0xA9,0xF4,0xFC,0x60,0x01, +0x5E,0xE7,0xFF,0x53,0xA2,0x98,0x60,0xE7,0xFF,0x49,0x70,0xE7,0xFF,0x88,0xFA,0x0C, +0x6C,0x09,0xE4,0x00,0x02,0xFB,0xE7,0xFF,0x4E,0x6A,0x98,0x61,0xE4,0x00,0x01,0xDF, +0xE7,0xFF,0xF9,0x6E,0xD0,0x60,0x0D,0xCA,0xE7,0xFF,0xAF,0x08,0xE7,0xFF,0x53,0xCE, +0xE7,0xFF,0x54,0x5E,0xD0,0x61,0x09,0x7A,0xE7,0xFF,0x54,0x7E,0x20,0x65,0x06,0xE7, +0xFF,0x49,0x14,0x98,0x62,0xE7,0xFF,0xAF,0x94,0x20,0x60,0x82,0xE7,0xFF,0x48,0xD2, +0x5C,0x63,0x00,0x20,0x60,0x58,0x98,0x63,0x98,0x80,0xE7,0xFF,0xA9,0x32,0xE7,0xFF, +0x88,0x54,0x0C,0x6C,0x0D,0xE4,0x00,0x02,0x55,0x98,0x62,0x98,0x80,0xE7,0xFF,0xA9, +0x0C,0xFC,0x60,0x01,0x5E,0xE7,0xFF,0x52,0xBA,0xE4,0x00,0x02,0x2D,0xE7,0xFF,0x54, +0x14,0x98,0x62,0xE4,0x00,0x01,0x11,0xE7,0xFF,0xF8,0xA0,0xD0,0x60,0x0A,0x92,0xE7, +0xFF,0xAE,0x3A,0xE7,0xFF,0x54,0x7C,0xE7,0xFF,0x55,0x3E,0xC1,0x80,0x10,0x01,0x89, +0x63,0xFD,0x8C,0x0D,0x60,0x5E,0xEB,0x04,0xC2,0xE0,0x25,0x6E,0x20,0x00,0x1D,0xFC, +0x60,0x01,0x2C,0xE7,0xFF,0x56,0x74,0x20,0x60,0x54,0x0A,0xEC,0x01,0x9E,0xE1,0x5E, +0xF7,0x04,0x0E,0xEC,0x01,0x26,0xE4,0x8B,0xE4,0x00,0x00,0x55,0x5E,0xEB,0x04,0x88, +0x6B,0xC2,0xE0,0x4A,0xEE,0x20,0x00,0x1D,0xFC,0x60,0x02,0x58,0xE7,0xFF,0x56,0x88, +0x20,0x63,0x6A,0xE4,0x00,0x00,0x5D,0xE7,0xFF,0x56,0x98,0x0C,0x0C,0x01,0xE4,0x00, +0x00,0x37,0x5E,0xEB,0x04,0x88,0x6B,0xC2,0xE0,0x4A,0xEE,0x20,0x00,0x1D,0xFC,0x60, +0x02,0x58,0xE7,0xFF,0x56,0x3C,0x20,0x63,0x86,0x98,0x63,0x98,0x80,0xE4,0x00,0x00, +0xFD,0x0C,0x0C,0x01,0xE4,0x00,0x00,0x9F,0xE7,0xFF,0x99,0x6A,0x20,0x64,0x3E,0xE7, +0xFF,0x99,0x5C,0x88,0x83,0x98,0x64,0xE4,0x00,0x00,0x71,0xE7,0xFF,0x99,0x44,0x20, +0x63,0xC0,0xE7,0xFF,0x99,0x36,0xD0,0x60,0x05,0x3E,0x98,0x64,0x98,0x80,0xE7,0xFF, +0xAA,0xA2,0x98,0x64,0xE4,0x00,0x00,0x8B,0x98,0x64,0x98,0x89,0xE4,0x00,0x00,0x27, +0xE7,0xFF,0x98,0xFA,0x20,0x64,0x76,0xE7,0xFF,0x98,0xEC,0x88,0x83,0x98,0x67,0xE7, +0xFF,0xAA,0x60,0x0A,0xEA,0x01,0xCA,0xF7,0x01,0x00,0x0E,0xEA,0x01,0xE4,0x00,0x00, +0xE1,0xE7,0xFF,0x98,0xB8,0x20,0x63,0x88,0xE7,0xFF,0x98,0xAA,0x20,0x61,0x86,0x98, +0x67,0x98,0x80,0xE7,0xFF,0xAA,0x18,0x98,0x67,0x98,0x81,0xE7,0xFF,0xA6,0xD0,0xE7, +0xFF,0xC0,0xDE,0xE4,0x00,0x00,0x95,0x0E,0xE1,0x06,0x22,0xE1,0x3C,0x0E,0xE1,0x06, +0x56,0xF7,0x20,0x22,0xE1,0x18,0x98,0x60,0xE7,0xFF,0x85,0x48,0x50,0x60,0x20,0xE7, +0xFF,0x85,0x52,0xE7,0xFF,0x7A,0xA8,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x00,0xD1,0xC7, +0x18,0xFF,0xFE,0x50,0x60,0x20,0xEF,0x17,0x00,0xD1,0xE7,0xFF,0x85,0x2C,0xC2,0xE0, +0x10,0x01,0xEB,0x17,0x00,0xCF,0x53,0x18,0x20,0xEF,0x17,0x00,0xCF,0xC2,0xE0,0x10, +0x01,0xF0,0x77,0x01,0xAE,0xE7,0xFF,0x84,0xCE,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D, +0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x23,0x24,0x0B,0x17,0x01,0x53,0x18,0x20,0x0F,0x17,0x01,0x0C,0x63,0x02,0x0B,0x17, +0x01,0xC7,0x18,0xFF,0xDF,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x23,0x24,0x0B,0x17,0x01,0x53,0x18,0x20,0x0F,0x17,0x01,0x0C,0x83,0x00,0x0B,0x17, +0x01,0xC7,0x18,0xFF,0xDF,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x24,0x14,0x0B,0x17,0x01,0x53,0x18,0x01,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00, +0x01,0xCA,0xF7,0x23,0x24,0x0B,0x17,0x01,0x53,0x18,0x20,0x0F,0x17,0x01,0x85,0x29, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x23,0x24,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xDF,0x0F, +0x17,0x01,0x85,0x29,0x9C,0x30,0x0D,0x21,0x0C,0x0D,0x41,0x08,0x0D,0x61,0x04,0x0D, +0x81,0x00,0xC1,0x54,0x00,0x01,0xC9,0x8A,0x22,0x28,0x0A,0xEC,0x01,0xC6,0xF7,0xFF, +0xFB,0xC9,0x6A,0x22,0x04,0x0E,0xEC,0x01,0xFF,0x00,0x80,0x00,0x0A,0xEB,0x01,0x46, +0xF7,0xC5,0x5E,0xF7,0x04,0xC9,0x4A,0x24,0xA8,0x0E,0xEB,0x01,0x0A,0xEA,0x01,0xCA, +0xF7,0x30,0x00,0x50,0x60,0x64,0x0E,0xEA,0x01,0xE4,0x00,0x24,0x8E,0x0A,0xEC,0x01, +0x52,0xF7,0x04,0x50,0x60,0x1E,0x0E,0xEC,0x01,0xE4,0x00,0x24,0x6E,0x0A,0xEB,0x01, +0xC6,0xF7,0x7F,0xFF,0x0E,0xEB,0x01,0x0A,0xEA,0x01,0xC6,0xF7,0xCF,0xFF,0x0E,0xEA, +0x01,0x0D,0x81,0x02,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10, +0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x2C,0x08,0x77,0x01,0x4C,0x63,0x09, +0x54,0x63,0x1F,0x9C,0x61,0x85,0x29,0x9C,0x7F,0x5C,0x63,0x00,0x5C,0x62,0xFB,0x20, +0x00,0x81,0xC2,0xF4,0x00,0x01,0x4C,0x63,0x08,0xCA,0xF7,0x24,0x2C,0x54,0x63,0x3E, +0x0B,0x17,0x01,0x1F,0x20,0xC1,0x47,0x18,0xCC,0x44,0x63,0xC5,0x0C,0x77,0x01,0x85, +0x29,0x9B,0x19,0x20,0x60,0x62,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x10,0x0B,0x37, +0x01,0x47,0x19,0xC4,0x53,0x18,0x04,0xE4,0x00,0x00,0x87,0x20,0x64,0x56,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x24,0x10,0x0B,0x17,0x01,0x53,0x18,0x06,0xE4,0x00,0x00,0x5D, +0x20,0x68,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x10,0x0B,0x17,0x01,0xC7,0x18, +0xFF,0xF9,0xE4,0x00,0x00,0x31,0x20,0x6C,0x5E,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24, +0x10,0x0B,0x37,0x01,0x47,0x19,0xC4,0x53,0x18,0x02,0x0F,0x17,0x01,0x85,0x29,0x5C, +0x63,0x00,0x9C,0x30,0x0D,0x21,0x0C,0x0D,0x41,0x08,0x0C,0xA1,0x04,0x95,0x50,0xC9, +0x4A,0x20,0x80,0x8D,0x43,0x4D,0x4A,0x18,0x88,0x6A,0xE7,0xFF,0xFC,0xE0,0x0C,0xA1, +0x06,0x1C,0x6A,0x04,0x0D,0x21,0x0E,0x0D,0x41,0x0A,0x88,0x85,0x1C,0x21,0x10,0xE7, +0xFF,0xFC,0xB7,0x1C,0x21,0xE8,0x0D,0x41,0x10,0x5D,0x44,0x00,0x4E,0xEA,0x08,0x0D, +0x61,0x0C,0x0D,0x81,0x08,0x5D,0x65,0x00,0x5C,0x63,0x00,0x4D,0x83,0x18,0x8D,0x8B, +0x8D,0x97,0x06,0xE0,0x81,0xCA,0xF7,0x04,0x00,0x0D,0x21,0x14,0x0D,0xA1,0x04,0xC5, +0x8C,0x1F,0xFC,0x5D,0xA6,0x00,0x8D,0x97,0x88,0x6C,0xE7,0xFF,0xFC,0x00,0x55,0x4A, +0x01,0x50,0x80,0xFF,0x4D,0x4A,0x08,0x8D,0x6A,0x4D,0x6B,0x18,0x4C,0x84,0x5C,0x4D, +0x6D,0x5C,0x44,0x84,0x27,0x0D,0xA1,0x06,0x44,0x83,0x24,0x0D,0x41,0x12,0x88,0x6C, +0x44,0x84,0x5D,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x21,0x16,0x1C,0x21,0x18,0xE7, +0xFF,0xFB,0xD7,0x5C,0x84,0x04,0x20,0x60,0x28,0x20,0x64,0xC2,0xE4,0x00,0x00,0x33, +0x4C,0x84,0x41,0xC2,0xF4,0x00,0x01,0x9C,0x9F,0xCA,0xF7,0x24,0x34,0xC4,0x84,0x01, +0xFF,0xE4,0x00,0x00,0x2B,0x4C,0x84,0x41,0xC2,0xF4,0x00,0x01,0x9C,0x9F,0xCA,0xF7, +0x24,0x38,0xC4,0x84,0x01,0xFF,0x0C,0x97,0x01,0x85,0x29,0x07,0x00,0xFF,0xCB,0x18, +0xFF,0xFF,0x20,0x60,0x28,0x20,0x65,0xD2,0xE4,0x00,0x00,0x7D,0xC2,0xF4,0x00,0x01, +0x47,0x64,0x27,0xCB,0x37,0x24,0x3C,0x0B,0x59,0x01,0x47,0x5A,0xDC,0x0F,0x59,0x01, +0xCA,0xF7,0x24,0x40,0x47,0x04,0xC4,0x0B,0x37,0x01,0x4F,0x18,0x81,0x44,0x84,0x27, +0x4C,0x84,0x81,0x44,0x84,0xC4,0x47,0x18,0xC7,0x47,0x19,0xC4,0x47,0x04,0xC5,0x0F, +0x17,0x01,0xE4,0x00,0x00,0x6F,0x5F,0x44,0x04,0xC2,0xF4,0x00,0x01,0x47,0x9A,0xD7, +0xCB,0x37,0x24,0x3C,0x0B,0x79,0x01,0x47,0x7B,0xE4,0x47,0x5A,0xDD,0x0F,0x59,0x01, +0xCA,0xF7,0x24,0x40,0x44,0x84,0xC4,0x0B,0x57,0x01,0x4C,0x84,0x81,0x47,0x24,0x27, +0x47,0x1A,0xCC,0x44,0x84,0xC5,0x0C,0x97,0x01,0x85,0x29,0x07,0x00,0xFF,0xCB,0x18, +0xFF,0xFF,0x20,0x60,0x28,0x20,0x65,0xD2,0xE4,0x00,0x00,0x7D,0xC2,0xF4,0x00,0x01, +0x47,0x64,0x27,0xCB,0x37,0x24,0x1C,0x0B,0x59,0x01,0x47,0x5A,0xDC,0x0F,0x59,0x01, +0xCA,0xF7,0x24,0x20,0x47,0x04,0xC4,0x0B,0x37,0x01,0x4F,0x18,0x81,0x44,0x84,0x27, +0x4C,0x84,0x81,0x44,0x84,0xC4,0x47,0x18,0xC7,0x47,0x19,0xC4,0x47,0x04,0xC5,0x0F, +0x17,0x01,0xE4,0x00,0x00,0x6F,0x5F,0x44,0x04,0xC2,0xF4,0x00,0x01,0x47,0x9A,0xD7, +0xCB,0x37,0x24,0x1C,0x0B,0x79,0x01,0x47,0x7B,0xE4,0x47,0x5A,0xDD,0x0F,0x59,0x01, +0xCA,0xF7,0x24,0x20,0x44,0x84,0xC4,0x0B,0x57,0x01,0x4C,0x84,0x81,0x47,0x24,0x27, +0x47,0x1A,0xCC,0x44,0x84,0xC5,0x0C,0x97,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB, +0x17,0x24,0x80,0x0B,0x38,0x01,0x5F,0x23,0x04,0x0F,0x38,0x01,0x07,0x20,0xFF,0xCB, +0x39,0xFF,0xFF,0xCA,0xF7,0x24,0x84,0x44,0x63,0xCC,0x0B,0x17,0x01,0x4C,0x63,0x81, +0xFF,0x20,0xFF,0x00,0x47,0x18,0xCC,0x44,0x63,0xC5,0x0C,0x77,0x01,0x85,0x29,0x07, +0x00,0xFF,0xCB,0x18,0xFF,0xFF,0x20,0x60,0x28,0x20,0x65,0xD2,0xE4,0x00,0x00,0x7D, +0xC2,0xF4,0x00,0x01,0x47,0x64,0x27,0xCB,0x37,0x24,0x24,0x0B,0x59,0x01,0x47,0x5A, +0xDC,0x0F,0x59,0x01,0xCA,0xF7,0x24,0x28,0x47,0x04,0xC4,0x0B,0x37,0x01,0x4F,0x18, +0x81,0x44,0x84,0x27,0x4C,0x84,0x81,0x44,0x84,0xC4,0x47,0x18,0xC7,0x47,0x19,0xC4, +0x47,0x04,0xC5,0x0F,0x17,0x01,0xE4,0x00,0x00,0x6F,0x5F,0x44,0x04,0xC2,0xF4,0x00, +0x01,0x47,0x9A,0xD7,0xCB,0x37,0x24,0x24,0x0B,0x79,0x01,0x47,0x7B,0xE4,0x47,0x5A, +0xDD,0x0F,0x59,0x01,0xCA,0xF7,0x24,0x28,0x44,0x84,0xC4,0x0B,0x57,0x01,0x4C,0x84, +0x81,0x47,0x24,0x27,0x47,0x1A,0xCC,0x44,0x84,0xC5,0x0C,0x97,0x01,0x85,0x29,0xC3, +0x14,0x00,0x01,0xCA,0xF8,0x22,0x08,0x20,0x64,0x3A,0x0B,0x37,0x01,0xCB,0x39,0x10, +0x00,0xE4,0x00,0x00,0x1D,0x20,0x60,0x36,0x0B,0x37,0x01,0xC7,0x39,0xEF,0xFF,0x0F, +0x37,0x01,0xCA,0xF8,0x22,0x08,0x0B,0x17,0x01,0xCB,0x18,0x20,0x00,0x0F,0x17,0x01, +0x85,0x29,0x5C,0x84,0x00,0x1F,0x00,0x80,0x20,0x60,0x28,0x20,0x64,0xAA,0xE4,0x00, +0x00,0x21,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x54,0xE4,0x00,0x00,0x19,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x24,0x64,0x0B,0x37,0x01,0x54,0x84,0x7F,0x47,0x19,0xC4,0x47, +0x04,0xC5,0x0F,0x17,0x01,0x85,0x29,0x5C,0x84,0x00,0x20,0x60,0x28,0x20,0x64,0xAA, +0xE4,0x00,0x00,0x21,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x50,0xE4,0x00,0x00,0x19, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x61,0x13,0x17,0x00,0x54,0x84,0x1F,0x57,0x18, +0xE0,0x44,0x84,0xC5,0x18,0x97,0x00,0x85,0x29,0x9C,0x30,0x0D,0x41,0x08,0x0D,0x61, +0x04,0x0D,0x21,0x0C,0x5D,0x44,0x00,0x89,0x63,0x1C,0x8A,0xF1,0x4C,0x84,0x08,0x5C, +0x83,0xF3,0x20,0x00,0x19,0x50,0x80,0x1F,0x88,0x6B,0xE7,0xFF,0xFF,0x5A,0x1F,0x00, +0x80,0x21,0x60,0x28,0x21,0x64,0xAA,0xE4,0x00,0x00,0x21,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x24,0x4C,0xE4,0x00,0x00,0x19,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x60,0x0B, +0x37,0x01,0x55,0x4A,0x7F,0x47,0x19,0xC4,0x47,0x0A,0xC5,0x0F,0x17,0x01,0x0D,0x61, +0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0x20,0x64,0x8E,0xC2, +0xF4,0x00,0x01,0xCB,0x17,0x22,0x04,0xCA,0xF7,0x22,0x60,0x0B,0x38,0x01,0x53,0x39, +0xF0,0x0F,0x38,0x01,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xF0,0xE4,0x00,0x00,0x47,0x20, +0x60,0x8A,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22,0x04,0xCA,0xF7,0x22,0x60,0x0B,0x38, +0x01,0xC7,0x39,0xFF,0x0F,0x0F,0x38,0x01,0x0B,0x17,0x01,0x53,0x18,0x0F,0x0F,0x17, +0x01,0x85,0x29,0x20,0x64,0x8E,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22,0x04,0xCA,0xF7, +0x22,0x60,0x0B,0x38,0x01,0x53,0x39,0x08,0x0F,0x38,0x01,0x0B,0x17,0x01,0xC7,0x18, +0xFE,0xFF,0xE4,0x00,0x00,0x49,0x20,0x60,0x8E,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22, +0x04,0xCA,0xF7,0x22,0x60,0x0B,0x38,0x01,0xC7,0x39,0xFF,0xF7,0x0F,0x38,0x01,0x0B, +0x17,0x01,0xCB,0x18,0x01,0x00,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x22,0x60,0x0B,0x17,0x01,0xCB,0x18,0x02,0x00,0xE4,0x00,0x00, +0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0x60,0x0B,0x17,0x01,0xC7, +0x18,0xFD,0xFF,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x54,0x63,0x7F,0xCA, +0xF7,0x24,0xA0,0x1F,0x20,0x80,0x0B,0x17,0x01,0x47,0x18,0xCC,0x47,0x03,0xC5,0x0F, +0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x4C,0x63,0x40,0xCA,0xF7,0x24,0xA0,0xC4, +0x63,0x7F,0x00,0x0B,0x17,0x01,0xFF,0x20,0x80,0xFF,0x47,0x18,0xCC,0x47,0x03,0xC5, +0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0xA1,0x10,0x77,0x00, +0x54,0x63,0x7F,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0xA0, +0x0B,0x17,0x01,0xC7,0x18,0xFF,0x7F,0xE4,0x00,0x00,0x2B,0x20,0x60,0x52,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x24,0xA0,0x0B,0x17,0x01,0x53,0x18,0x80,0x0F,0x17,0x01,0x85, +0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0xA0,0x0B,0x17,0x01,0xC7, +0x18,0x7F,0xFF,0xE4,0x00,0x00,0x39,0x20,0x60,0x6E,0xC2,0xF4,0x00,0x01,0xFF,0x20, +0x80,0x00,0xCA,0xF7,0x24,0xA0,0x0B,0x17,0x01,0x47,0x18,0xCD,0x5F,0x18,0x04,0x0F, +0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x5C,0x63,0x00,0xCA,0xF7,0x22,0x0C,0xFF, +0x20,0xFF,0x00,0x0B,0x17,0x01,0x47,0x18,0xCC,0x47,0x03,0xC5,0x0F,0x17,0x01,0x85, +0x29,0x5C,0x63,0x04,0xC2,0xF4,0x00,0x01,0xFF,0x40,0xFF,0x00,0xCA,0xF7,0x22,0xF0, +0x47,0x03,0xD4,0x0B,0x37,0x01,0x5F,0x39,0x00,0x47,0x18,0xCD,0x0F,0x17,0x01,0x85, +0x29,0x5C,0x63,0x04,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0x38,0x0B,0x17,0x01,0x0C, +0x77,0x01,0x85,0x29,0x20,0x64,0x6A,0xC2,0xF4,0x00,0x01,0x9B,0x3C,0xCA,0xF7,0x25, +0xC0,0x0B,0x17,0x01,0x47,0x18,0xCC,0x53,0x18,0x01,0xE4,0x00,0x00,0x3F,0x20,0x60, +0x7A,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22,0x38,0xCA,0xF7,0x25,0xC0,0x0B,0x38,0x01, +0x0C,0x18,0x01,0x0B,0x17,0x01,0x53,0x18,0x03,0x0F,0x17,0x01,0x85,0x29,0x5C,0x84, +0x00,0x20,0x64,0x62,0x4C,0x63,0x24,0xC2,0xF4,0x00,0x01,0x5C,0x63,0x04,0xCA,0xF7, +0x22,0xCC,0x0C,0x77,0x01,0xE4,0x00,0x00,0x25,0x20,0x60,0x3A,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x22,0xCC,0x0C,0x17,0x01,0x85,0x29,0x20,0x60,0x5A,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x22,0xE8,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xFE,0xE4,0x00,0x00,0x2B,0x20, +0x64,0x52,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0xE8,0x0B,0x17,0x01,0x53,0x18,0x01, +0x0F,0x17,0x01,0x85,0x29,0x20,0x60,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0xE8, +0x0B,0x17,0x01,0xC7,0x18,0xF0,0xFF,0xE4,0x00,0x00,0x2D,0x20,0x64,0x56,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x22,0xE8,0x0B,0x17,0x01,0xCB,0x18,0x0F,0x00,0x0F,0x17,0x01, +0x85,0x29,0x5C,0x63,0x00,0xC4,0x84,0x03,0xFF,0x20,0x64,0x70,0x20,0x60,0x34,0x20, +0x68,0x88,0x20,0x6C,0xDA,0xE4,0x00,0x00,0x51,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24, +0x68,0xE4,0x00,0x00,0x49,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x6C,0xE4,0x00,0x00, +0x31,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x70,0xE4,0x00,0x00,0x19,0xC2,0xF4,0x00, +0x01,0xCA,0xF7,0x24,0x74,0x0C,0x97,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x23,0x24,0x0B,0x17,0x01,0x53,0x18,0x20,0x0F,0x17,0x01,0x5C,0x63,0x00,0x07,0x00, +0x20,0xCB,0x18,0x41,0x00,0x44,0x63,0xC5,0x4C,0x63,0x10,0x0C,0x83,0x00,0x0B,0x17, +0x01,0xC7,0x18,0xFF,0xDF,0x0F,0x17,0x01,0x85,0x29,0xFC,0x21,0xFE,0x88,0x50,0xA0, +0x96,0xED,0x21,0x01,0x74,0xED,0x41,0x01,0x70,0xED,0x61,0x01,0x6C,0x88,0x61,0xC1, +0x78,0x00,0x21,0xFD,0x6B,0xB4,0xBE,0x88,0x8B,0xE7,0xFF,0x48,0x60,0xFD,0x41,0x00, +0x96,0xFC,0x8B,0x00,0x96,0x88,0x6A,0x50,0xA0,0xD2,0xE7,0xFF,0x48,0x3E,0x8A,0xE1, +0xC3,0x54,0x00,0x01,0xFF,0x60,0xFF,0x00,0x0B,0x37,0x01,0x47,0x19,0xDC,0x5F,0x39, +0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19,0x0B,0x37,0x03,0x47,0xB9,0xCF,0x8F, +0x1A,0x0B,0x98,0x01,0x47,0x9C,0xEC,0x0B,0xB7,0x05,0x47,0x39,0xEC,0x47,0x3C,0xCD, +0x0F,0x38,0x01,0x9E,0xE6,0xD5,0x57,0xFE,0x9E,0xFE,0xE1,0x00,0x96,0xFF,0x81,0x01, +0x68,0x0B,0x37,0x01,0x47,0x19,0xDC,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08, +0x8F,0x19,0x0B,0x37,0x03,0x47,0xD9,0xCF,0x8F,0x1A,0x0B,0xB8,0x01,0x47,0xBD,0xF4, +0x0B,0xD7,0x05,0x47,0x39,0xF4,0x47,0x3D,0xCD,0x0F,0x38,0x01,0x9E,0xE6,0xD7,0x97, +0xFE,0x9E,0xED,0x61,0x01,0x6E,0xED,0x41,0x01,0x72,0xED,0x21,0x01,0x76,0xFC,0x21, +0x01,0x78,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22,0x00,0x0C,0x18,0x01,0xCA, +0xF7,0x24,0x14,0xFF,0x20,0xFF,0x07,0x0B,0x17,0x01,0x47,0x18,0xCC,0x53,0x18,0x30, +0x0F,0x17,0x01,0x85,0x29,0x5C,0x84,0x00,0x9B,0x10,0x20,0x60,0x28,0x20,0x64,0xAA, +0xE4,0x00,0x00,0x21,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0x10,0xE4,0x00,0x00,0x19, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0x14,0x0B,0x37,0x01,0x54,0x84,0x0F,0x47,0x19, +0xC4,0x47,0x04,0xC5,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x74, +0xD8,0x18,0x18,0x00,0xCB,0x37,0x74,0x10,0x5C,0x63,0x00,0x18,0x79,0x00,0xCB,0x37, +0x76,0x30,0x18,0x19,0x00,0x53,0x40,0x24,0xCB,0x37,0x74,0x00,0x1B,0x59,0x00,0xCB, +0x77,0x74,0x28,0x53,0x20,0x60,0x1B,0x3B,0x00,0xCB,0x77,0x74,0x30,0x1B,0x3B,0x00, +0xCB,0x77,0x74,0x38,0x53,0x20,0x1C,0x1B,0x3B,0x00,0xCB,0x77,0x74,0x40,0x1B,0x3B, +0x00,0xCB,0x37,0x74,0xA8,0x13,0x39,0x00,0xCB,0x37,0x74,0x78,0x9B,0x69,0x1B,0x79, +0x00,0xCB,0x37,0x74,0x70,0x18,0x19,0x00,0xCB,0x37,0x74,0x60,0x13,0x79,0x00,0x1B, +0x59,0x00,0xCA,0xF7,0x74,0x61,0x13,0x37,0x00,0x18,0x17,0x00,0x98,0x61,0x12,0xF8, +0x00,0x52,0xF7,0x01,0x1A,0xF8,0x00,0x85,0x29,0x5C,0x63,0x00,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x74,0x20,0x18,0x77,0x00,0x0B,0x17,0x01,0xC7,0x18,0xFE,0xFF,0x0F,0x17, +0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x68,0x10,0x77,0x00,0x4C,0x63, +0x21,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0xE0,0x10,0x77, +0x00,0x4C,0x63,0x09,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74, +0x68,0x10,0x77,0x00,0x4C,0x63,0x29,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x74,0xE0,0x10,0x77,0x00,0x4C,0x63,0x19,0x54,0x63,0x01,0x85,0x29,0xC2, +0xF4,0x00,0x01,0xCA,0xF7,0x74,0x68,0x10,0x77,0x00,0x4C,0x63,0x11,0x54,0x63,0x01, +0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x68,0x08,0x77,0x01,0x4C,0x63,0x49, +0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x68,0x08,0x77,0x01, +0x4C,0x63,0x51,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x61, +0x13,0x17,0x00,0x57,0x18,0xFD,0x1B,0x17,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x74,0x61,0x13,0x17,0x00,0x53,0x18,0x02,0x1B,0x17,0x00,0x85,0x29,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x74,0xC0,0x12,0xF7,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x74,0xA8,0x12,0xF7,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0xC8, +0x12,0xF7,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0xA0,0x12,0xF7,0x00, +0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x20,0x10,0x77,0x00,0x85,0x29,0x5C, +0x63,0x00,0xC3,0x14,0x00,0x01,0x4E,0xE3,0x10,0xCB,0x18,0x2A,0x00,0x8E,0xF8,0x08, +0x77,0x00,0x9A,0xE8,0xCC,0x63,0x00,0x03,0x40,0x63,0xB8,0x85,0x29,0x5C,0x84,0x04, +0x5E,0xE4,0x00,0xD2,0xEF,0x05,0xAD,0x4E,0xF7,0x10,0xC3,0x18,0x00,0x21,0xFF,0x18, +0xBC,0x30,0x8E,0xF8,0xC3,0x34,0x00,0x01,0x0F,0x17,0x02,0xCA,0xF9,0x26,0x18,0x0B, +0x57,0x01,0xC7,0x5A,0xFF,0xF3,0x1F,0x60,0xCF,0x0F,0x57,0x01,0x0B,0x57,0x01,0x47, +0x5A,0xDC,0x53,0x5A,0x10,0x4C,0x84,0x49,0x0F,0x57,0x01,0x9A,0xE1,0xCB,0x59,0x26, +0x20,0xE4,0x00,0x00,0x31,0x4F,0x37,0x08,0x9E,0xE1,0x8F,0x38,0x5E,0xF7,0x04,0x0B, +0x39,0x01,0xC7,0x39,0x3F,0xFF,0x0F,0x3A,0x01,0xC3,0x34,0x00,0x01,0xD6,0xE4,0xFF, +0x40,0x20,0x60,0x96,0xCB,0x39,0x26,0x38,0x0B,0x18,0x01,0x0A,0xF9,0x01,0x4F,0x18, +0x60,0xFF,0x40,0x8F,0xFF,0xC7,0x18,0x70,0x00,0x46,0xF7,0xD4,0x46,0xF8,0xBD,0x0E, +0xF9,0x01,0xE4,0x00,0x00,0x4B,0x20,0x64,0x86,0xCA,0xF9,0x26,0x38,0xFF,0x60,0xF8, +0xFF,0x0B,0x38,0x01,0x0B,0x57,0x01,0x4F,0x39,0x40,0x47,0x1A,0xDC,0xC7,0x39,0x07, +0x00,0x47,0x19,0xC5,0x0F,0x17,0x01,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x18,0x0B, +0x17,0x01,0x53,0x18,0x30,0x0F,0x17,0x01,0x85,0x29,0x5C,0x84,0x00,0xD0,0x8F,0x03, +0x9D,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBB,0x58,0x4C,0x84,0x10,0xC3,0x14,0x00,0x01, +0x8C,0x97,0xCB,0x38,0x26,0x34,0x0E,0xE4,0x02,0x0B,0x59,0x01,0x0B,0x77,0x03,0xFF, +0x80,0xC0,0x00,0xC7,0x7B,0x3F,0xFF,0x47,0x5A,0xE4,0x47,0x5B,0xD5,0x0F,0x59,0x01, +0x20,0x60,0x7E,0x0B,0x37,0x01,0xCB,0x18,0x26,0x38,0x4F,0x39,0x60,0x0B,0x58,0x01, +0xFF,0x60,0x8F,0xFF,0xC7,0x39,0x70,0x00,0x46,0xFA,0xDC,0xE4,0x00,0x00,0x3F,0x20, +0x64,0x86,0x0B,0x37,0x01,0xCB,0x18,0x26,0x38,0x4F,0x39,0x40,0x0B,0x58,0x01,0xFF, +0x80,0xF8,0xFF,0xC7,0x39,0x07,0x00,0x46,0xFA,0xE4,0x46,0xF9,0xBD,0x0E,0xF8,0x01, +0x85,0x29,0x5C,0x84,0x00,0xD0,0x8C,0x04,0x1D,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBB, +0x58,0x4C,0x84,0x10,0xFF,0x40,0xC0,0x00,0x8C,0x97,0x0E,0xE4,0x02,0x20,0x60,0xD6, +0xC3,0x14,0x00,0x01,0x0B,0x77,0x03,0xCB,0x38,0x26,0xC4,0xC7,0x7B,0x3F,0xFF,0x0B, +0x99,0x01,0x47,0x5C,0xD4,0x47,0x5B,0xD5,0xCB,0x18,0x26,0x38,0x0F,0x59,0x01,0x1F, +0x60,0x8F,0x0B,0x37,0x01,0x0B,0x58,0x01,0x4F,0x39,0x20,0x57,0x39,0x70,0xE4,0x00, +0x00,0x63,0x20,0x64,0xDA,0xC3,0x14,0x00,0x01,0x0B,0x77,0x03,0xCB,0x38,0x26,0xC8, +0xC7,0x7B,0x3F,0xFF,0x0B,0x99,0x01,0x47,0x5C,0xD4,0x47,0x5B,0xD5,0xCB,0x18,0x26, +0x38,0x0F,0x59,0x01,0x9B,0x78,0x0B,0x37,0x01,0x0B,0x58,0x01,0x57,0x39,0x07,0x46, +0xFA,0xDC,0x46,0xF9,0xBD,0x0E,0xF8,0x01,0x85,0x29,0x5C,0x84,0x04,0x20,0x60,0x28, +0x20,0x64,0xEE,0xE4,0x00,0x00,0x39,0xC2,0xF4,0x00,0x01,0x4C,0x84,0x41,0xCA,0xF7, +0x26,0xC0,0x54,0x84,0x3F,0x0B,0x17,0x01,0x1F,0x20,0xC0,0xE4,0x00,0x00,0x2F,0xC2, +0xF4,0x00,0x01,0xC4,0x84,0x3F,0x00,0xCA,0xF7,0x26,0xC0,0xFF,0x20,0xC0,0xFF,0x0B, +0x17,0x01,0x47,0x18,0xCC,0x44,0x84,0xC5,0x0C,0x97,0x01,0x85,0x29,0x20,0x61,0x52, +0x20,0x84,0x84,0x20,0x80,0x2C,0xD0,0x82,0x04,0xD6,0xE4,0x00,0x00,0x5D,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0xC7,0x18,0x3F,0xFF,0xE4,0x00,0x01, +0x01,0xC2,0xF4,0x00,0x01,0xFF,0x20,0x80,0x00,0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01, +0xC7,0x18,0x3F,0xFF,0xE4,0x00,0x00,0x27,0xC2,0xF4,0x00,0x01,0xFF,0x20,0xC0,0x00, +0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0x47,0x18,0xCD,0x5F,0x18,0x04,0xE4,0x00,0x00, +0xA1,0x20,0x65,0x3E,0x20,0x84,0x80,0x20,0x80,0x28,0x20,0x89,0x1A,0xE4,0x00,0x00, +0x63,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0xC7,0x18,0xCF,0xFF, +0xE4,0x00,0x00,0x5B,0xC2,0xF4,0x00,0x01,0xFF,0x20,0xCF,0xFF,0xCA,0xF7,0x26,0x30, +0x0B,0x17,0x01,0x47,0x18,0xCC,0xCB,0x18,0x20,0x00,0xE4,0x00,0x00,0x27,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0xCB,0x18,0x30,0x00,0x0F,0x17,0x01, +0x85,0x29,0x20,0x64,0x72,0xC2,0xF4,0x00,0x01,0xFF,0x20,0x80,0x00,0xCA,0xF7,0x26, +0x24,0x0B,0x17,0x01,0x47,0x18,0xCD,0x5F,0x18,0x04,0xE4,0x00,0x00,0x2D,0x20,0x60, +0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0xC7,0x18,0x7F,0xFF, +0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24, +0x0B,0x17,0x01,0xCB,0x18,0x20,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0xC7,0x18,0xDF,0xFF,0x0F,0x17,0x01, +0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01, +0xCB,0x18,0x40,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x26,0x24,0x0B,0x17,0x01,0xC7,0x18,0xBF,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20, +0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0xCB,0x18,0x10, +0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24, +0x0B,0x17,0x01,0xC7,0x18,0xEF,0xFF,0x0F,0x17,0x01,0x85,0x29,0x9C,0x38,0xC2,0xF4, +0x00,0x01,0x0D,0x21,0x04,0xCA,0xF7,0x26,0x18,0x0B,0x17,0x01,0xCB,0x18,0x40,0x00, +0x98,0x60,0x0F,0x17,0x01,0xE7,0xFF,0xFF,0x1A,0x0D,0x21,0x06,0x98,0x60,0x9C,0x28, +0xE7,0xFF,0xFF,0x5F,0x20,0x64,0x72,0xC2,0xF4,0x00,0x01,0xFF,0x20,0x80,0x00,0xCA, +0xF7,0x26,0x00,0x0B,0x17,0x01,0x47,0x18,0xCD,0x5F,0x18,0x04,0xE4,0x00,0x00,0x2D, +0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xC7,0x18, +0x7F,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x26,0x00,0x0B,0x17,0x01,0xCB,0x18,0x20,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xC7,0x18,0xDF,0xFF,0x0F, +0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B, +0x17,0x01,0xCB,0x18,0x40,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00, +0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xC7,0x18,0xBF,0xFF,0x0F,0x17,0x01,0x85, +0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xCB, +0x18,0x10,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x26,0x00,0x0B,0x17,0x01,0xC7,0x18,0xEF,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20,0x64, +0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xCB,0x18,0x08,0x00, +0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B, +0x17,0x01,0xC7,0x18,0xF7,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xCB,0x18,0x04,0x00,0xE4,0x00,0x00, +0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xC7, +0x18,0xFB,0xFF,0x0F,0x17,0x01,0x85,0x29,0x5C,0x63,0x00,0xC2,0xF4,0x00,0x01,0x4F, +0x23,0x40,0xCA,0xF7,0x26,0x14,0x4C,0x63,0x60,0x0B,0x17,0x01,0x44,0x79,0x1D,0x5F, +0x18,0x00,0x44,0x63,0xC5,0x5C,0x63,0x04,0x0C,0x77,0x01,0x85,0x29,0xC2,0xF4,0x00, +0x01,0xFF,0x20,0xF0,0x00,0xCB,0x17,0x26,0x0C,0xC4,0x63,0x0F,0xFF,0x0B,0x58,0x01, +0x5C,0x63,0x06,0x47,0x5A,0xCC,0x47,0x43,0xD5,0x0F,0x58,0x01,0xCA,0xF7,0x26,0x10, +0x0B,0x17,0x01,0x47,0x38,0xCC,0x44,0x63,0xCD,0x0C,0x77,0x01,0x85,0x29,0x9C,0x38, +0xFF,0x00,0xE0,0x00,0x0D,0x21,0x04,0x0D,0x41,0x00,0xC1,0x54,0x00,0x01,0xCA,0xEA, +0x26,0x04,0x0B,0x37,0x01,0x47,0x39,0xC4,0xCB,0x39,0x0F,0xA0,0x0F,0x37,0x01,0xCA, +0xEA,0x26,0x08,0x0B,0x37,0x01,0x47,0x19,0xC4,0xCB,0x18,0x10,0x60,0x98,0x60,0x0F, +0x17,0x01,0xFC,0x80,0x08,0x03,0xE7,0xFF,0xF9,0x28,0xCA,0xEA,0x26,0xC0,0xFF,0x20, +0xC0,0xFF,0x0B,0x17,0x01,0x47,0x18,0xCC,0xCB,0x18,0x08,0x00,0x98,0x60,0x0F,0x17, +0x01,0xFC,0x80,0x08,0x03,0xE7,0xFF,0xF7,0xDA,0x98,0x61,0xFC,0x80,0x08,0x03,0xE7, +0xFF,0xF7,0xC6,0xCA,0xEA,0x26,0x00,0x0B,0x17,0x01,0x53,0x18,0x0F,0x0F,0x17,0x01, +0x0B,0x17,0x01,0xC7,0x18,0xFF,0x7F,0x0F,0x17,0x01,0x0B,0x17,0x01,0xC7,0x18,0xFF, +0xBF,0x98,0x68,0x0F,0x17,0x01,0xE7,0xFF,0xFE,0x44,0x0D,0x21,0x06,0x0D,0x41,0x02, +0xFC,0x60,0x01,0x2C,0x9C,0x28,0xE7,0xFF,0xFE,0x6F,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x78,0x00,0x0B,0x17,0x01,0x53,0x18,0x02,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00, +0x01,0xCA,0xF7,0x78,0x00,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xFD,0x0F,0x17,0x01,0x85, +0x29,0x9C,0x7F,0x5C,0x63,0x00,0xD0,0x64,0x05,0x15,0xC2,0xF8,0x00,0x21,0xFE,0xF7, +0xBD,0xF0,0x4C,0x63,0x10,0xFF,0x00,0xFC,0xFF,0x8C,0x77,0xC2,0xF4,0x00,0x01,0x0F, +0x23,0x02,0x87,0x29,0xCB,0x17,0x3D,0x3C,0xCA,0xF7,0x31,0x04,0x0B,0x38,0x01,0x53, +0x39,0x01,0x0F,0x38,0x01,0x0B,0x17,0x01,0xC7,0x18,0xFC,0xFF,0xE4,0x00,0x00,0xD3, +0xCB,0x37,0x3D,0x3C,0xCA,0xF7,0x31,0x04,0x0B,0x59,0x01,0x53,0x5A,0x01,0x0F,0x59, +0x01,0x0B,0x37,0x01,0x47,0x19,0xC4,0xCB,0x18,0x01,0x00,0xE4,0x00,0x00,0x95,0xCB, +0x37,0x3D,0x3C,0xCA,0xF7,0x31,0x04,0x0B,0x59,0x01,0x53,0x5A,0x01,0x0F,0x59,0x01, +0x0B,0x37,0x01,0x47,0x19,0xC4,0xCB,0x18,0x02,0x00,0xE4,0x00,0x00,0x57,0xCA,0xF7, +0x3D,0x3C,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xFE,0xE4,0x00,0x00,0x39,0xCB,0x17,0x3C, +0x10,0xCA,0xF7,0x3C,0x14,0x0B,0x38,0x01,0x53,0x39,0x01,0x0F,0x38,0x01,0x0B,0x17, +0x01,0xC7,0x18,0xFF,0xFD,0x0F,0x17,0x01,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0x00, +0x0B,0x17,0x01,0xC7,0x18,0xFF,0xFB,0x0F,0x17,0x01,0x85,0x29,0x5C,0x63,0x00,0x5C, +0x84,0x00,0x9A,0xE0,0x24,0x64,0x43,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBE,0x04,0x8C, +0x77,0x12,0xE3,0x00,0xC3,0x14,0x00,0x01,0xCB,0x18,0x78,0x01,0x4E,0xF7,0x10,0x5C, +0x80,0x29,0x46,0xF7,0xC5,0x4B,0x00,0x1A,0x1B,0x17,0x00,0x85,0x29,0xC2,0xF4,0x00, +0x01,0x5C,0x84,0x04,0xCB,0x17,0x79,0x04,0xCC,0x84,0x17,0x70,0x4F,0x24,0x81,0x5C, +0x84,0x04,0x0F,0x38,0x01,0xCA,0xF7,0x79,0x00,0x0C,0x97,0x01,0x98,0x81,0xE7,0xFF, +0xFF,0x5D,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0xCC,0x0B,0x17,0x01,0x53,0x18,0x02, +0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x7A,0x30,0xCB,0x37,0x7A, +0x34,0xCB,0x57,0x7A,0x10,0xCA,0xF7,0x7A,0x14,0x0B,0x18,0x01,0x0B,0x39,0x01,0x0B, +0x5A,0x01,0x08,0x77,0x01,0x4E,0xF9,0x80,0x4C,0x63,0x80,0x8E,0xF8,0x8C,0x7A,0x44, +0x63,0x1F,0x44,0x63,0xBC,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x7A,0x70,0xCB, +0x37,0x7A,0x74,0xCB,0x57,0x7A,0x50,0xCA,0xF7,0x7A,0x54,0x0B,0x18,0x01,0x0B,0x39, +0x01,0x0B,0x5A,0x01,0x08,0x77,0x01,0x4E,0xF9,0x80,0x4C,0x63,0x80,0x8E,0xF8,0x8C, +0x7A,0x44,0x63,0x1F,0x44,0x63,0xBC,0x85,0x29,0x5C,0x63,0x06,0xC2,0xF4,0x00,0x01, +0x47,0x23,0x1F,0xCA,0xF7,0x7A,0x10,0x0B,0x17,0x01,0x47,0x19,0xC4,0x44,0x63,0xC5, +0x5C,0x63,0x04,0x0C,0x77,0x01,0x85,0x29,0x5C,0x63,0x06,0xC2,0xF4,0x00,0x01,0x47, +0x23,0x1F,0xCA,0xF7,0x7A,0x50,0x0B,0x17,0x01,0x47,0x19,0xC4,0x44,0x63,0xC5,0x5C, +0x63,0x04,0x0C,0x77,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x44,0x63,0x1F,0xCA,0xF7, +0x7A,0x10,0x0B,0x17,0x01,0x47,0x18,0x1C,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00, +0x01,0x44,0x63,0x1F,0xCA,0xF7,0x7A,0x50,0x0B,0x17,0x01,0x47,0x18,0x1C,0x0F,0x17, +0x01,0x85,0x29,0x5C,0x63,0x04,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x7A,0x30,0x0C,0x77, +0x01,0x85,0x29,0x9B,0x01,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x7A,0x70,0x0F,0x17,0x01, +0x85,0x29,0xC2,0xF4,0x00,0x01,0xFF,0x20,0xAA,0x55,0xCB,0x17,0x78,0xC0,0x0F,0x38, +0x01,0x5F,0x03,0x04,0x27,0x08,0x17,0x98,0x63,0xCA,0xF7,0x78,0xC4,0x5C,0x63,0x04, +0xCB,0x00,0x03,0xE8,0x43,0x04,0xC1,0x40,0x63,0xC3,0x4C,0x63,0x81,0x44,0x63,0x1F, +0x0C,0x77,0x01,0x06,0xE0,0x5B,0xCA,0xF7,0x8D,0x80,0x5C,0x97,0x0D,0xC2,0xF4,0x00, +0x01,0xCA,0xF7,0x3C,0x44,0x0B,0x17,0x01,0x20,0x00,0x2D,0xC7,0x18,0xFF,0xBF,0xE4, +0x00,0x00,0x15,0x5F,0x18,0x04,0x53,0x18,0x40,0x0F,0x17,0x01,0x85,0x29,0xFF,0x00, +0xAA,0x55,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0xC0,0x0F,0x17,0x01,0x85,0x29,0xFF, +0x00,0x55,0xAA,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0xC0,0x0F,0x17,0x01,0x85,0x29, +0xCA,0xE0,0x03,0x20,0xC3,0x14,0x00,0x01,0x5C,0x63,0x04,0xC0,0x60,0x63,0xEA,0x48, +0x63,0xB8,0xCA,0xF8,0x79,0x10,0x0B,0x37,0x01,0x53,0x39,0x01,0x0F,0x37,0x01,0xCB, +0x58,0x79,0x00,0xCB,0x38,0x79,0x08,0x9C,0x38,0x0A,0xF9,0x01,0xCB,0x18,0x3C,0x44, +0x0B,0x7A,0x01,0x0B,0x39,0x01,0x0F,0x21,0x07,0x0B,0x18,0x01,0x57,0x18,0x40,0x5F, +0x18,0x04,0x23,0x00,0x40,0x4C,0x63,0x29,0x5C,0x60,0x09,0x48,0x63,0x0A,0xE4,0x00, +0x00,0x3F,0xCC,0x63,0x00,0x06,0x5C,0x63,0x04,0xE4,0x00,0x00,0x29,0x0A,0xF8,0x01, +0x52,0xF7,0x01,0x0E,0xF8,0x01,0x0A,0xF9,0x01,0xE4,0x00,0x00,0x21,0xC3,0x34,0x00, +0x01,0xCB,0x19,0x79,0x10,0xCB,0x39,0x79,0x08,0x0B,0x41,0x07,0x43,0x57,0xD5,0xD4, +0x7A,0x00,0xB8,0x0B,0x41,0x07,0xD7,0x57,0xFE,0xB9,0x0B,0x41,0x07,0x43,0x5B,0xD5, +0x8E,0xFA,0xD4,0x77,0xFE,0x5C,0x9C,0x28,0x85,0x29,0x5C,0x63,0x04,0xE4,0x00,0x00, +0x2D,0x42,0xE4,0x2C,0xC3,0x38,0x00,0x01,0x43,0x05,0xCC,0x8F,0x03,0x13,0x18,0x00, +0x1B,0x17,0x00,0x9C,0xBF,0x20,0xBF,0xB2,0x85,0x29,0x5C,0x63,0x00,0xC2,0xF4,0x00, +0x01,0x20,0x60,0xCE,0xCA,0xF7,0x2C,0x30,0x0B,0x17,0x01,0xCB,0x18,0x02,0x00,0x0F, +0x17,0x01,0x80,0x01,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x3C,0x44,0xCA,0xF7,0x3C,0xA8, +0x0B,0x38,0x01,0xC7,0x39,0xFF,0xF3,0x0F,0x38,0x01,0x0B,0x17,0x01,0x53,0x18,0x01, +0xE4,0x00,0x00,0x9F,0xCB,0x17,0x3C,0xA8,0x0B,0x38,0x01,0x53,0x39,0x01,0xCA,0xF7, +0x3C,0x5C,0x0F,0x38,0x01,0x1F,0x00,0xC0,0x0B,0x37,0x00,0x47,0x39,0xC4,0x9B,0x02, +0x24,0x64,0x25,0x54,0x63,0x3F,0x5F,0x03,0x06,0x47,0x18,0xCD,0x5C,0x78,0x04,0xC3, +0x14,0x00,0x01,0x0C,0x77,0x01,0xCA,0xF8,0x3C,0xA8,0x0B,0x37,0x01,0xC7,0x39,0xFF, +0xFE,0x0F,0x37,0x01,0xCA,0xF8,0x2C,0x30,0x0B,0x17,0x01,0xCB,0x18,0x01,0x00,0x0F, +0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x3D,0x80,0x0B,0x38,0x01,0xCB, +0x39,0x08,0x00,0x0F,0x38,0x01,0xCA,0xF7,0x3D,0x84,0x0B,0x17,0x01,0xCB,0x18,0x08, +0x00,0x0F,0x17,0x01,0x85,0x29,0xE7,0xFF,0xFF,0xBD,0x56,0xE3,0xFF,0x4E,0xF7,0x08, +0x5C,0x84,0x04,0xC4,0x63,0xFF,0x00,0x8C,0x77,0xC2,0xF4,0x00,0x01,0x4C,0x63,0x08, +0x8C,0x77,0x0C,0x83,0x01,0x85,0x29,0x1C,0x21,0xC8,0xC0,0x98,0x00,0x21,0x0D,0x21, +0x34,0x1C,0x61,0x06,0xFC,0x84,0xB6,0x6E,0x50,0xA0,0x2A,0xE7,0xFF,0x2F,0x7C,0x1E, +0xE1,0x06,0x1F,0x41,0x30,0x0B,0x37,0x01,0xFF,0x60,0xFF,0x00,0x47,0x19,0xDC,0x5F, +0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19,0xC3,0x34,0x00,0x01,0x8F,0x19, +0x0B,0x37,0x03,0x47,0x99,0xCF,0x0B,0x78,0x01,0x47,0x7B,0xE4,0x0B,0x97,0x05,0x47, +0x39,0xE4,0x47,0x3B,0xCD,0x0F,0x38,0x01,0x9E,0xE6,0xD7,0x57,0xFE,0x5E,0x0D,0x21, +0x36,0x1C,0x21,0x38,0x85,0x29,0xFC,0x21,0xFF,0x38,0x50,0xA0,0x3C,0xED,0x21,0x00, +0xC4,0xED,0x41,0x00,0xC0,0xED,0x61,0x00,0xBC,0xED,0x81,0x00,0xB8,0xED,0xA1,0x00, +0xB4,0xED,0xC1,0x00,0xB0,0xED,0xE1,0x00,0xAC,0xEE,0x01,0x00,0xA8,0xC1,0x58,0x00, +0x21,0x1C,0x61,0x6C,0xFD,0x4A,0xB6,0x6E,0x1C,0x8A,0x2A,0xE7,0xFF,0x2E,0x7C,0x50, +0xA0,0x24,0x1C,0x8A,0x66,0x1C,0x61,0x48,0xE7,0xFF,0x2E,0x62,0x98,0x61,0x98,0x82, +0xE7,0xFF,0xEF,0x1A,0x98,0x61,0xFC,0x80,0x3E,0x0C,0xE7,0xFF,0xD9,0xF2,0x98,0x61, +0xFC,0x80,0x3E,0x0C,0xE7,0xFF,0xEC,0x6C,0x98,0x61,0x88,0x83,0xE7,0xFF,0xDC,0xA6, +0x98,0x61,0x88,0x83,0xE7,0xFF,0xDA,0x2E,0x98,0x60,0x98,0x81,0xE7,0xFF,0xDB,0x1E, +0x98,0x60,0x05,0x4F,0x0F,0xC9,0x4A,0x0F,0x0F,0x88,0x8A,0xE7,0xFF,0xE4,0xDE,0x98, +0x61,0x88,0x8A,0xE7,0xFF,0xE4,0xCE,0xC3,0x54,0x00,0x01,0xCA,0xE0,0x11,0x50,0xCB, +0x5A,0x22,0x00,0x57,0x17,0xFF,0x4F,0x18,0x10,0x8F,0x1A,0x1F,0x61,0x2A,0x0B,0x38, +0x01,0x4F,0x17,0x08,0x8F,0x1B,0xEF,0x38,0xDD,0x61,0x9E,0xE1,0xC2,0xE2,0x2B,0xE4, +0x23,0xFF,0x8D,0x1E,0xE1,0x6C,0xFF,0x41,0x00,0xA8,0xC1,0x94,0x00,0x01,0xFD,0xA0, +0xFF,0x00,0x0B,0x37,0x01,0x47,0x19,0x6C,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18, +0x08,0x8F,0x19,0x0B,0x37,0x03,0x8F,0x0C,0x0F,0x38,0x01,0x9E,0xE4,0xD7,0x57,0xFF, +0x2E,0x1E,0xE1,0x48,0x1F,0x41,0x6C,0x0B,0x37,0x01,0x47,0x19,0x6C,0x5F,0x39,0x00, +0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19,0x0B,0x37,0x03,0x8F,0x0C,0x0F,0x38,0x01, +0x9E,0xE4,0xD7,0x57,0xFF,0x2E,0xE7,0xFF,0xD5,0xF8,0x99,0xE0,0x89,0xC3,0x98,0x61, +0xE7,0xFF,0xD6,0x0E,0xD1,0xE0,0x05,0xBE,0x98,0x60,0x1D,0x61,0x0A,0xE7,0xFF,0xD6, +0x48,0x99,0x40,0xE4,0x00,0x01,0x45,0x98,0x61,0x88,0x8A,0x22,0x01,0x0A,0xE7,0xFF, +0xE1,0xE0,0x98,0x60,0xE7,0xFF,0xE2,0x2A,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF8,0x16, +0xE7,0xFF,0xD4,0x14,0xE7,0xFF,0xF6,0xC2,0xC4,0x63,0x01,0x00,0x20,0x63,0xE0,0xFC, +0x60,0x01,0x00,0xE7,0xFF,0xF7,0x6C,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF8,0x30,0x88, +0x6A,0x98,0x81,0x98,0xA0,0xE7,0xFF,0xE8,0x94,0xE4,0x00,0x00,0x8B,0xE7,0xFF,0xE1, +0x62,0x98,0x61,0xE7,0xFF,0xE1,0xAC,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF7,0x98,0xE7, +0xFF,0xD3,0x96,0xE7,0xFF,0xF6,0x44,0xC4,0x63,0x01,0x00,0x20,0x63,0xE0,0xFC,0x60, +0x01,0x00,0xE7,0xFF,0xF6,0xEE,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF7,0xB2,0x88,0x6A, +0x98,0x81,0x98,0xA0,0xE7,0xFF,0xE8,0x16,0x0A,0xEB,0x01,0x40,0x63,0xBD,0x0C,0x6B, +0x01,0x9E,0x01,0x5E,0x10,0x00,0xD2,0x02,0xFB,0x8E,0x9D,0x41,0x9D,0x62,0x5D,0x4A, +0x00,0xD1,0x44,0x05,0xEA,0x9A,0x00,0xE7,0xFF,0xFE,0xC1,0x98,0x61,0x1D,0x61,0x12, +0xE7,0xFF,0xD4,0xE2,0x99,0x40,0xE4,0x00,0x01,0x45,0x98,0x61,0x88,0x8A,0x22,0x01, +0x0A,0xE7,0xFF,0xE0,0x7A,0x98,0x60,0xE7,0xFF,0xE0,0xC4,0xFC,0x60,0x01,0x00,0xE7, +0xFF,0xF6,0xB0,0xE7,0xFF,0xD2,0xAE,0xE7,0xFF,0xF5,0x5C,0xC4,0x63,0x01,0x00,0x20, +0x63,0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF6,0x06,0xFC,0x60,0x01,0x00,0xE7,0xFF, +0xF6,0xCA,0x88,0x6A,0x98,0x81,0x98,0xA0,0xE7,0xFF,0xE7,0x2E,0xE4,0x00,0x00,0x8B, +0xE7,0xFF,0xDF,0xFC,0x98,0x61,0xE7,0xFF,0xE0,0x46,0xFC,0x60,0x01,0x00,0xE7,0xFF, +0xF6,0x32,0xE7,0xFF,0xD2,0x30,0xE7,0xFF,0xF4,0xDE,0xC4,0x63,0x01,0x00,0x20,0x63, +0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF5,0x88,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF6, +0x4C,0x88,0x6A,0x98,0x81,0x98,0xA0,0xE7,0xFF,0xE6,0xB0,0x0A,0xEB,0x01,0x40,0x63, +0xBD,0x0C,0x6B,0x01,0x9E,0x01,0x5E,0x10,0x00,0xD2,0x02,0xFB,0x8E,0x9D,0x41,0x9D, +0x62,0x5D,0x4A,0x00,0xD1,0x44,0x00,0x52,0x9A,0x00,0xE7,0xFF,0xFE,0xC1,0x9D,0xE1, +0x5D,0xEF,0x00,0xD1,0xE2,0xF4,0x8E,0x0B,0x21,0x0A,0x0B,0x01,0x12,0x0F,0x21,0x07, +0x1E,0xE1,0x0C,0x1F,0x81,0x12,0x0B,0x77,0x01,0x8B,0x59,0x5F,0xBB,0x06,0xD7,0x3D, +0x00,0x30,0x8B,0x5B,0x5F,0x3A,0x06,0x0B,0x77,0x09,0x8B,0x58,0x5F,0xBB,0x06,0xD7, +0x1D,0x00,0x30,0x8B,0x5B,0x5F,0x1A,0x06,0x9E,0xE2,0xD7,0x97,0xFE,0xE6,0x0F,0x21, +0x07,0x9A,0xE0,0x0F,0x01,0x09,0x1F,0x21,0x1A,0x8B,0x57,0xFD,0x00,0x3F,0xFF,0xE4, +0x00,0x00,0x69,0x43,0x7E,0xC4,0x0B,0x9B,0x00,0x43,0x79,0xC4,0x23,0x80,0x32,0x0D, +0x1B,0x01,0x9B,0x41,0xE4,0x00,0x00,0x23,0x09,0x5D,0x00,0xCD,0x4A,0x1F,0xFF,0x43, +0x8A,0xE0,0x0F,0x9B,0x01,0x9F,0x02,0xD3,0x08,0xFE,0xE6,0x9F,0x28,0x9E,0xE2,0xD2, +0xE4,0x00,0xBA,0x1F,0x01,0x0A,0x4F,0xD7,0x10,0x1F,0xA1,0x06,0x8F,0xD8,0x8F,0xB7, +0x9B,0x00,0xE7,0xFF,0xFF,0x83,0xC3,0x94,0x00,0x01,0x9A,0xE0,0xCB,0x9C,0x24,0x00, +0xE4,0x00,0x00,0x47,0x43,0xB9,0xC4,0x43,0xDB,0xC4,0x57,0xBD,0xFF,0x0B,0xDE,0x01, +0x4F,0xBD,0x10,0x8F,0xBC,0x0F,0xDD,0x01,0x9F,0x02,0xD3,0x08,0xFF,0x56,0x9E,0xE1, +0x22,0xE8,0x54,0x1F,0x21,0x1A,0x4F,0x77,0x18,0x9B,0x00,0x8F,0x79,0xFF,0x37,0x12, +0x46,0xE7,0xFF,0xFF,0xA7,0x9A,0xE0,0x4F,0x17,0x08,0x1F,0x61,0x6C,0x8F,0x1B,0x0B, +0x38,0x01,0x47,0x19,0x6C,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19, +0x1F,0x21,0x2A,0x8F,0x0C,0x8F,0x37,0x0B,0x39,0x01,0x0F,0x38,0x01,0x9E,0xE2,0x5E, +0xE3,0xC9,0x23,0xFF,0x55,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x25,0x38,0x0B,0x17,0x01, +0x23,0x40,0x34,0x5F,0x18,0x04,0x53,0x18,0x0F,0xE4,0x00,0x00,0x11,0xC7,0x18,0xFF, +0xF0,0x0F,0x17,0x01,0x98,0x60,0x98,0x80,0xE7,0xFF,0xDE,0x84,0x98,0x80,0x98,0x61, +0xE7,0xFF,0xDE,0x74,0x98,0x60,0xE7,0xFF,0xDD,0x26,0x98,0x60,0x98,0x80,0xE7,0xFF, +0xDC,0xC0,0x88,0x6E,0xEE,0x01,0x00,0xAA,0xED,0xE1,0x00,0xAE,0xED,0xC1,0x00,0xB2, +0xED,0xA1,0x00,0xB6,0xED,0x81,0x00,0xBA,0xED,0x61,0x00,0xBE,0xED,0x41,0x00,0xC2, +0xED,0x21,0x00,0xC6,0xFC,0x21,0x00,0xC8,0xE7,0xFF,0xD0,0x5F,0x80,0x01,0x80,0x01, +0x80,0x01,0x80,0x01,0x80,0x01,0xC8,0x80,0xAA,0x55,0xC0,0x74,0x00,0x01,0xC8,0x63, +0x78,0xC0,0x0C,0x83,0x00,0xC0,0x74,0x00,0x01,0xC8,0x63,0x1F,0xDC,0x50,0x80,0x80, +0x0C,0x83,0x00,0x04,0x20,0x80,0xC8,0x21,0x17,0xFC,0x1C,0x40,0xFD,0x44,0x21,0x14, +0x28,0x00,0x74,0xC0,0x40,0x00,0x01,0xC8,0x42,0x31,0xD8,0x84,0x49,0x0C,0x41,0x0C, +0x0C,0x61,0x10,0x0C,0x81,0x14,0x0C,0xA1,0x18,0x0C,0xC1,0x1C,0x0C,0xE1,0x20,0x0D, +0x01,0x24,0x0D,0x21,0x28,0x0D,0x41,0x2C,0x0D,0x61,0x30,0x0D,0x81,0x34,0x0D,0xA1, +0x38,0x0D,0xC1,0x3C,0x0D,0xE1,0x40,0x0E,0x01,0x44,0x0E,0x21,0x48,0x0E,0x41,0x4C, +0x0E,0x61,0x50,0x0E,0x81,0x54,0x0E,0xA1,0x58,0x0E,0xC1,0x5C,0x0E,0xE1,0x60,0x0F, +0x01,0x64,0x0F,0x21,0x68,0x0F,0x41,0x6C,0x0F,0x61,0x70,0x0F,0x81,0x74,0x0F,0xA1, +0x78,0x0F,0xC1,0x7C,0x1C,0x61,0x00,0xC1,0x00,0x00,0x01,0xC9,0x08,0x9F,0x48,0x85, +0x08,0x90,0x23,0x00,0xC0,0x40,0x10,0x01,0xC8,0x42,0x03,0xB0,0xC0,0x60,0x10,0x01, +0xC8,0x63,0x0D,0x64,0x5C,0x43,0x1F,0x20,0x00,0x2D,0x0C,0x02,0x00,0x1C,0x42,0x04, +0x93,0xF4,0x85,0x29,0xC0,0x80,0x01,0x1F,0xC0,0x7F,0xFF,0xE1,0xC8,0x63,0xFF,0xF9, +0x44,0x84,0x1C,0xC0,0x80,0x01,0x1D,0x0C,0x61,0x02,0xC0,0x60,0x02,0x0D,0x0C,0x61, +0x06,0xC0,0x60,0x04,0x0D,0x0C,0x41,0x0E,0x0C,0x61,0x12,0x0C,0x81,0x16,0x0C,0xA1, +0x1A,0x0C,0xC1,0x1E,0x0C,0xE1,0x22,0x0D,0x01,0x26,0x0D,0x21,0x2A,0x0D,0x41,0x2E, +0x0D,0x61,0x32,0x0D,0x81,0x36,0x0D,0xA1,0x3A,0x0D,0xC1,0x3E,0x0D,0xE1,0x42,0x0E, +0x01,0x46,0x0E,0x21,0x4A,0x0E,0x41,0x4E,0x0E,0x61,0x52,0x0E,0x81,0x56,0x0E,0xA1, +0x5A,0x0E,0xC1,0x5E,0x0E,0xE1,0x62,0x0F,0x01,0x66,0x0F,0x21,0x6A,0x0F,0x41,0x6E, +0x0F,0x61,0x72,0x0F,0x81,0x76,0x0F,0xA1,0x7A,0x0F,0xC1,0x7E,0xEF,0xE1,0x00,0x82, +0x0C,0x21,0x0A,0x84,0x00,0x00,0x00,0x00,0x9C,0x30,0xCA,0xE0,0x48,0x02,0x0D,0x41, +0x08,0x0D,0x21,0x0C,0x89,0x43,0xC2,0xF7,0x00,0x0F,0x9B,0x1C,0x46,0xF7,0xC4,0x0E, +0xE1,0x04,0x0E,0xE1,0x06,0x56,0xF7,0x04,0x22,0xE0,0xE0,0xCA,0xE0,0x48,0x00,0xC3, +0x37,0x00,0x0F,0x9B,0x1B,0x47,0x39,0xC4,0xC3,0x37,0x00,0x0D,0xCA,0xE0,0x48,0x02, +0xC3,0x37,0x00,0x0F,0x47,0x19,0xC4,0xC3,0x17,0x00,0x0D,0x98,0x82,0xE7,0xFF,0xC2, +0xB4,0xCA,0xE0,0x48,0x00,0xC3,0x17,0x00,0x0F,0x53,0x18,0x04,0xC3,0x17,0x00,0x0D, +0x0E,0xE1,0x06,0x56,0xF7,0x08,0x22,0xE0,0xE8,0xCA,0xE0,0x48,0x00,0xC3,0x37,0x00, +0x0F,0x9B,0x17,0x47,0x39,0xC4,0xC3,0x37,0x00,0x0D,0xCA,0xE0,0x48,0x02,0xC3,0x37, +0x00,0x0F,0x47,0x19,0xC4,0xC3,0x17,0x00,0x0D,0x98,0x83,0x88,0x6A,0xE7,0xFF,0xC2, +0x34,0xCA,0xE0,0x48,0x00,0xC3,0x17,0x00,0x0F,0x53,0x18,0x08,0xC3,0x17,0x00,0x0D, +0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0xA0,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x1B,0x00,0x00,0x00,0x00,0xA0,0x26,0x01,0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x00,0xA0,0x66,0x00,0x01,0x00,0x00,0x00,0xF3,0x00,0x06,0x00, +0xC4,0x00,0x2F,0x00,0x07,0x00,0x0D,0x01,0xF6,0xFF,0x5C,0x00,0xFB,0xFF,0x00,0x00, +0x1B,0x00,0x1B,0x00,0x01,0x00,0x10,0x00,0xF0,0x00,0x9E,0x00,0x6F,0x00,0x6F,0x00, +0x1A,0x00,0x0C,0x3E,0x01,0x00,0x00,0x00,0x64,0x00,0x14,0x00,0x14,0x00,0x06,0x00, +0x06,0x00,0x5A,0x00,0x14,0x00,0x14,0x00,0x06,0x00,0x06,0x00,0x64,0x00,0x01,0x00, +0x5F,0x00,0x01,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x50,0x00,0x96,0x00,0x40,0x06,0x00,0x00,0x80,0x0C,0x00,0x00, +0x01,0x03,0x07,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x05,0x00, +0x00,0x01,0x02,0x00,0x14,0x00,0x2D,0x00,0x46,0x00,0x5F,0x00,0x78,0x00,0x91,0x00, +0x07,0x00,0xC8,0x00,0xC8,0x00,0xC8,0x00,0xF4,0x01,0xF4,0x01,0xFF,0xFF,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x02,0x00,0x04,0x00,0x06,0x00, +0x08,0x00,0x0A,0x00,0x0C,0x00,0x10,0x00,0x14,0x00,0x18,0x00,0x20,0x00,0x28,0x00, +0x32,0x00,0x3E,0x00,0x40,0x00,0x64,0x00,0x80,0x00,0x00,0x01,0x02,0x00,0x00,0x11, +0xFF,0xFF,0xFF,0xFF,0x01,0x11,0xFF,0xFF,0x18,0x50,0x02,0x11,0xFF,0x7F,0xFF,0x0E, +0x03,0x11,0xFF,0x00,0x66,0x00,0x04,0x11,0xFF,0x0F,0x72,0x07,0x05,0x11,0xFF,0x0F, +0x72,0x07,0x06,0x11,0xFF,0x00,0x00,0x00,0x07,0x11,0x03,0x00,0x00,0x00,0x08,0x11, +0x73,0x00,0x00,0x00,0x09,0x11,0xFF,0xFF,0x00,0x00,0x09,0x11,0xFF,0x7F,0x00,0x00, +0x0A,0x11,0xFF,0x7F,0x87,0x10,0x0E,0x11,0xFF,0xFF,0x00,0x00,0x0F,0x11,0xFF,0xFF, +0x00,0x00,0x17,0x11,0x0F,0xFF,0x00,0x00,0x18,0x11,0xFF,0xFF,0x00,0x02,0x19,0x11, +0xFF,0x00,0x0E,0x00,0x1E,0x11,0xFF,0xFF,0x00,0x00,0x1F,0x11,0xFF,0x00,0x00,0x00, +0x33,0x11,0x0F,0x00,0x00,0x00,0x3A,0x11,0x37,0x0F,0x00,0x00,0x3B,0x11,0x77,0x00, +0x77,0x00,0x3C,0x11,0x00,0xFF,0x00,0xA0,0x3D,0x11,0x77,0x00,0x00,0x00,0x3E,0x11, +0xFF,0x00,0x00,0x00,0x04,0x12,0x06,0x00,0x00,0x00,0x05,0x12,0xFF,0x00,0x00,0x00, +0x07,0x12,0xFF,0xFF,0x00,0x00,0x08,0x12,0xFF,0x00,0x00,0x00,0x09,0x12,0xFF,0xFF, +0x00,0x00,0x0A,0x12,0xFF,0x00,0x00,0x00,0x0B,0x12,0x3F,0x00,0x2E,0x00,0x0D,0x12, +0x1F,0x00,0x05,0x00,0x0E,0x12,0x1F,0x00,0x05,0x00,0x0F,0x12,0xFF,0xFF,0x00,0x00, +0x10,0x12,0xFF,0x00,0x00,0x00,0x11,0x12,0xFF,0x0F,0x00,0x00,0x12,0x12,0x87,0x1F, +0x00,0x00,0x13,0x12,0x7F,0x0F,0x14,0x00,0x14,0x12,0x9F,0xFF,0x0A,0x09,0x15,0x12, +0x7F,0x0F,0x0C,0x0F,0x16,0x12,0xFF,0x0F,0x00,0x07,0x17,0x12,0x1F,0xFF,0x0A,0x5C, +0x18,0x12,0x7F,0x1F,0x14,0x0A,0x19,0x12,0xFF,0xFF,0x8C,0x21,0x1A,0x12,0xFF,0x03, +0x00,0x00,0x1B,0x12,0xFF,0x03,0x00,0x00,0x1C,0x12,0xFF,0x03,0x00,0x00,0x1D,0x12, +0xFF,0x03,0x00,0x00,0x1E,0x12,0x1F,0x1F,0x12,0x07,0x1F,0x12,0x3F,0x3F,0x00,0x00, +0x20,0x12,0xFF,0xFF,0x00,0x00,0x21,0x12,0xFF,0x00,0x00,0x00,0x23,0x12,0x3F,0x3F, +0x02,0x00,0x24,0x12,0x3F,0x00,0x00,0x00,0x28,0x12,0xFF,0xFF,0x83,0x81,0x2D,0x12, +0x01,0x00,0x01,0x00,0x50,0x12,0xFF,0xFF,0x00,0x00,0x51,0x12,0xFF,0x00,0x00,0x00, +0x70,0x12,0x03,0x00,0x03,0x00,0x01,0x11,0x06,0x00,0x02,0x00,0x02,0x11,0x00,0x08, +0x00,0x08,0x2A,0x12,0x00,0xFF,0x00,0xBA,0x2B,0x12,0xFF,0x30,0xF0,0x20,0x01,0x11, +0x06,0x00,0x00,0x00,0x2A,0x12,0x00,0xFF,0x00,0x00,0x2B,0x12,0xFF,0x30,0x00,0x00, +0x01,0x11,0x00,0x50,0x00,0x50,0x02,0x11,0x3F,0x06,0x2F,0x06,0x01,0x11,0x00,0x50, +0x00,0x00,0x02,0x11,0x3F,0x06,0x00,0x00,0x2A,0x12,0x00,0x30,0x00,0x20,0x11,0x1E, +0xFF,0x7F,0x00,0x00,0x12,0x1E,0xFF,0x00,0x00,0x00,0x13,0x1E,0x0F,0x00,0x00,0x00, +0x15,0x1E,0x73,0x07,0x00,0x00,0x16,0x1E,0x0F,0x00,0x00,0x00,0x18,0x1E,0x3F,0x00, +0x08,0x00,0x2A,0x1E,0x05,0x00,0x01,0x00,0x50,0x11,0x11,0x11,0x51,0x11,0x11,0x11, +0x52,0x11,0x11,0x11,0x53,0x11,0x11,0x11,0x54,0x11,0x11,0x11,0x55,0x11,0x11,0x11, +0x56,0x11,0x11,0x11,0x57,0x11,0x11,0x11,0x58,0x11,0x11,0x11,0x59,0x11,0x11,0x11, +0x5A,0x11,0x11,0x11,0x5B,0x11,0x11,0x11,0x5C,0x11,0xFF,0xFF,0x5D,0x11,0xFF,0xFF, +0x5E,0x11,0xFF,0xFF,0x46,0x12,0x00,0x00,0x47,0x12,0x00,0x00,0x48,0x12,0x00,0x00, +0x49,0x12,0x00,0x00,0x4A,0x12,0x00,0x00,0x4B,0x12,0x00,0x00,0x4C,0x12,0x00,0x00, +0x4D,0x12,0x00,0x00,0x4E,0x12,0x0F,0x00,0x02,0x03,0x0F,0x00,0x52,0x00,0x69,0x00, +0xD9,0x00,0x95,0x00,0x89,0x00,0x7E,0x00,0x72,0x00,0x67,0x00,0x5B,0x00,0x50,0x00, +0x44,0x00,0x39,0x00,0x2D,0x00,0x22,0x00,0x16,0x00,0x0B,0x00,0x00,0x00,0xFF,0x00, +0x8D,0x09,0x1A,0x00,0xFE,0x00,0x1B,0x07,0x3F,0x00,0xFE,0x00,0x9D,0x0A,0x78,0x00, +0xFD,0x00,0xEC,0x12,0xA8,0x00,0xFC,0x00,0x6B,0x18,0xD0,0x00,0xFB,0x00,0x7C,0x19, +0x0A,0x01,0xF9,0x00,0x55,0x20,0x4E,0x01,0xF8,0x00,0x85,0x26,0x86,0x01,0xFF,0x00, +0x48,0x0D,0x09,0x00,0xFE,0x00,0x9E,0x0B,0x1E,0x00,0xFE,0x00,0x34,0x0E,0x44,0x00, +0xFD,0x00,0x35,0x14,0x66,0x00,0xFD,0x00,0x1A,0x18,0x7F,0x00,0xFC,0x00,0x11,0x19, +0x9C,0x00,0xFB,0x00,0x3C,0x1C,0xBF,0x00,0xFB,0x00,0x94,0x21,0xDB,0x00,0xFA,0x00, +0xE6,0x24,0xF7,0x00,0xF9,0x00,0xFB,0x24,0x29,0x01,0xFE,0x00,0xE0,0x0D,0x04,0x00, +0xFE,0x00,0xF6,0x10,0x18,0x00,0xFE,0x00,0xC8,0x12,0x30,0x00,0xFD,0x00,0xEB,0x14, +0x4A,0x00,0xFD,0x00,0x74,0x16,0x69,0x00,0xFC,0x00,0xB9,0x1C,0x7E,0x00,0xFC,0x00, +0x68,0x20,0x8E,0x00,0xFB,0x00,0xCE,0x21,0xA6,0x00,0xFB,0x00,0x52,0x23,0xC8,0x00, +0xFA,0x00,0x0A,0x29,0xE2,0x00,0xF9,0x00,0x4D,0x2C,0xFC,0x00,0xFE,0x00,0x85,0x13, +0xF8,0xFF,0xFE,0x00,0xF6,0x12,0x07,0x00,0xFD,0x00,0xC9,0x13,0x24,0x00,0xFD,0x00, +0x6E,0x18,0x3E,0x00,0xFC,0x00,0x47,0x1C,0x4E,0x00,0xFC,0x00,0x83,0x1D,0x5E,0x00, +0xFC,0x00,0xFB,0x1F,0x74,0x00,0xFB,0x00,0xF7,0x25,0x86,0x00,0xFA,0x00,0xB8,0x29, +0x93,0x00,0xFA,0x00,0xA4,0x29,0xAB,0x00,0xF9,0x00,0x13,0x2B,0xCB,0x00,0xF9,0x00, +0x37,0x30,0xE5,0x00,0xFD,0x00,0x0D,0x1F,0xDC,0xFF,0xFD,0x00,0x3D,0x1E,0xE7,0xFF, +0xFD,0x00,0xD0,0x1C,0x02,0x00,0xFC,0x00,0xCD,0x1E,0x1B,0x00,0xFC,0x00,0x4B,0x22, +0x29,0x00,0xFC,0x00,0x4F,0x25,0x33,0x00,0xFB,0x00,0x83,0x27,0x43,0x00,0xFA,0x00, +0xE6,0x2C,0x4F,0x00,0xFA,0x00,0x48,0x30,0x57,0x00,0xFA,0x00,0x0E,0x31,0x62,0x00, +0xF9,0x00,0x76,0x31,0x77,0x00,0xF9,0x00,0x65,0x36,0x87,0x00,0xF8,0x00,0xB3,0x38, +0x94,0x00,0xF8,0x00,0x27,0x37,0xAC,0x00,0x05,0x03,0x03,0x04,0x04,0x00,0x11,0x00, +0xC1,0x09,0xD9,0xFF,0x36,0x01,0x0E,0x00,0x1C,0x00,0xDD,0x03,0x03,0x00,0x40,0x00, +0x14,0x00,0x4C,0x00,0x95,0x03,0x05,0x00,0x07,0x00,0x18,0x00,0xA5,0x00,0x4B,0x06, +0x9B,0xFF,0x03,0x00,0x19,0x00,0xC8,0x00,0x14,0x03,0x3B,0x00,0x00,0x00,0x1A,0x00, +0x16,0x00,0x40,0x05,0xE4,0xFF,0xA2,0x00,0x14,0x00,0x3B,0x00,0x67,0x04,0xF0,0xFF, +0x3B,0x00,0x1A,0x00,0x6F,0x00,0x22,0x04,0xF8,0xFF,0x03,0x00,0x20,0x00,0x1C,0x00, +0x48,0x05,0xDB,0xFF,0x98,0x00,0x16,0x00,0x57,0x00,0x90,0x04,0xEC,0xFF,0x19,0x00, +0x21,0x00,0x95,0x00,0x08,0x04,0xFE,0xFF,0x02,0x00,0x24,0x00,0x23,0x00,0xC4,0x05, +0xCC,0xFF,0xA6,0x00,0x17,0x00,0x62,0x00,0x9C,0x04,0xEC,0xFF,0x17,0x00,0x25,0x00, +0xA0,0x00,0x0E,0x04,0xFB,0xFF,0x02,0x00,0x28,0x00,0x0D,0x01,0x7D,0x04,0xE1,0xFF, +0xFC,0xFF,0x2A,0x00,0x33,0x00,0x30,0x07,0xA2,0xFF,0xD3,0x00,0x18,0x00,0x6F,0x00, +0xAD,0x04,0xED,0xFF,0x23,0x00,0x2B,0x00,0x9C,0x00,0x14,0x03,0x27,0x00,0x03,0x00, +0x2F,0x00,0xE1,0x00,0x53,0x05,0xAB,0xFF,0x02,0x00,0x30,0x00,0x35,0x51,0x00,0x00, +0x35,0x51,0x00,0x00,0x4A,0x51,0x00,0x00,0x4A,0x51,0x00,0x00,0xC8,0x53,0x00,0x00, +0xC8,0x53,0x00,0x00,0xC8,0x53,0x00,0x00,0xD0,0x51,0x00,0x00,0xA0,0x52,0x00,0x00, +0x25,0x52,0x00,0x00,0x09,0x54,0x00,0x00,0x09,0x54,0x00,0x00,0x91,0x55,0x00,0x00, +0x91,0x55,0x00,0x00,0x91,0x55,0x00,0x00,0x91,0x55,0x00,0x00,0x91,0x55,0x00,0x00, +0xB8,0x54,0x00,0x00,0x5C,0x55,0x00,0x00,0x11,0x55,0x00,0x00,0xDF,0x55,0x00,0x00, +0xDF,0x55,0x00,0x00,0x0D,0x56,0x00,0x00,0x35,0x56,0x00,0x00,0x48,0x56,0x00,0x00, +0x85,0x56,0x00,0x00,0x61,0x56,0x00,0x00,0xDA,0x59,0x00,0x00,0xF9,0x59,0x00,0x00, +0x52,0x5A,0x00,0x00,0x80,0x5A,0x00,0x00,0xAC,0x5A,0x00,0x00,0xAC,0x5A,0x00,0x00, +0xBE,0x5A,0x00,0x00,0xAC,0x5A,0x00,0x00,0x68,0x5A,0x00,0x00,0x68,0x5A,0x00,0x00, +0xAC,0x5A,0x00,0x00,0xAC,0x5A,0x00,0x00,0xBE,0x5A,0x00,0x00,0xBE,0x5A,0x00,0x00, +0xBE,0x5A,0x00,0x00,0xA0,0x5A,0x00,0x00,0xA6,0x5A,0x00,0x00,0x0A,0x0B,0x2C,0x1B, +0x09,0x07,0x1C,0x1A,0x25,0x05,0x1D,0x19,0x26,0x00,0x1E,0x18,0x27,0x04,0x1F,0x17, +0x28,0x06,0x20,0x0D,0x29,0x08,0x2B,0x0C,0x2A,0x00,0x00,0x00,0xE0,0x66,0x00,0x00, +0xE0,0x66,0x00,0x00,0x11,0x67,0x00,0x00,0x11,0x67,0x00,0x00,0x43,0x67,0x00,0x00, +0x43,0x67,0x00,0x00,0x43,0x67,0x00,0x00,0x43,0x67,0x00,0x00,0xC2,0x66,0x00,0x00, +0xA4,0x66,0x00,0x00,0xA4,0x67,0x00,0x00,0xA4,0x67,0x00,0x00,0xD7,0x67,0x00,0x00, +0xD7,0x67,0x00,0x00,0x0C,0x68,0x00,0x00,0x0C,0x68,0x00,0x00,0x0C,0x68,0x00,0x00, +0x0C,0x68,0x00,0x00,0x7D,0x67,0x00,0x00,0x6B,0x67,0x00,0x00,0xB2,0x68,0x00,0x00, +0xB2,0x68,0x00,0x00,0x06,0x69,0x00,0x00,0x06,0x69,0x00,0x00,0x79,0x6A,0x00,0x00, +0x79,0x6A,0x00,0x00,0x79,0x6A,0x00,0x00,0x79,0x6A,0x00,0x00,0x61,0x69,0x00,0x00, +0xA7,0x69,0x00,0x00,0xED,0x69,0x00,0x00,0x35,0x6A,0x00,0x00,0x7E,0x77,0x00,0x00, +0x7E,0x77,0x00,0x00,0xB9,0x77,0x00,0x00,0xB9,0x77,0x00,0x00,0xA8,0x78,0x00,0x00, +0xA8,0x78,0x00,0x00,0xA8,0x78,0x00,0x00,0xA8,0x78,0x00,0x00,0xF6,0x77,0x00,0x00, +0x1B,0x78,0x00,0x00,0x4C,0x78,0x00,0x00,0x7C,0x78,0x00,0x00,0xBB,0x82,0x00,0x00, +0xE0,0x82,0x00,0x00,0x40,0x83,0x00,0x00,0xA7,0x83,0x00,0x00,0x38,0x84,0x00,0x00, +0x68,0x84,0x00,0x00,0xFD,0x84,0x00,0x00,0x70,0x84,0x00,0x00,0x04,0x00,0x1D,0x00, +0x2E,0x00,0x50,0x00,0x82,0x00,0xC7,0x00,0x23,0x01,0x9B,0x01,0x32,0x02,0xEE,0x02, +0xD0,0x03,0xDE,0x04,0x19,0x06,0x82,0x07,0x1A,0x09,0xE0,0x0A,0xD0,0x0C,0xE7,0x0E, +0x1F,0x11,0x71,0x13,0xD3,0x15,0x3D,0x18,0xA2,0x1A,0xF9,0x1C,0x34,0x1F,0x47,0x21, +0x28,0x23,0xCB,0x24,0x27,0x26,0x33,0x27,0xEA,0x27,0x46,0x28,0x04,0x00,0x1C,0x00, +0x2B,0x00,0x4B,0x00,0x78,0x00,0xB7,0x00,0x0A,0x01,0x75,0x01,0xFC,0x01,0xA3,0x02, +0x6D,0x03,0x5E,0x04,0x76,0x05,0xB9,0x06,0x26,0x08,0xBE,0x09,0x7D,0x0B,0x61,0x0D, +0x67,0x0F,0x87,0x11,0xBB,0x13,0xFC,0x15,0x3F,0x18,0x7B,0x1A,0xA6,0x1C,0xB6,0x1E, +0x9F,0x20,0x57,0x22,0xD7,0x23,0x14,0x25,0x08,0x26,0xAF,0x26,0x03,0x27,0x05,0x00, +0x08,0x21,0x05,0x00,0x00,0x20,0x00,0x00,0x94,0xBC,0x00,0xC0,0xA4,0xBC,0x00,0xC0, +0xB6,0xBC,0x00,0xC0,0xBA,0xBC,0x00,0xC0,0x2C,0xBC,0x00,0xC0,0x74,0xBC,0x00,0xC0, +0xD4,0xBC,0x00,0xC0,0xF2,0xBC,0x00,0xC0,0xF6,0xBC,0x00,0xC0,0x1C,0xBD,0x00,0xC0, +0xAA,0xBD,0x00,0xC0,0xEC,0xBD,0x00,0xC0,0x4E,0xBB,0x00,0xC0,0x52,0xBB,0x00,0xC0, +0x28,0xBC,0x00,0xC0,0x70,0xBC,0x00,0xC0,0x05,0x00,0x2A,0x00,0x2A,0x00,0x3E,0x00, +0x58,0x00,0x79,0x00,0xA1,0x00,0xD3,0x00,0x0F,0x01,0x56,0x01,0xAA,0x01,0x0C,0x02, +0x7D,0x02,0xFE,0x02,0x91,0x03,0x37,0x04,0xF0,0x04,0xBE,0x05,0xA0,0x06,0x99,0x07, +0xA7,0x08,0xCC,0x09,0x06,0x0B,0x56,0x0C,0xBB,0x0D,0x34,0x0F,0xC0,0x10,0x5D,0x12, +0x0A,0x14,0xC5,0x15,0x8A,0x17,0x59,0x19,0x2D,0x1B,0x05,0x1D,0xDC,0x1E,0xB0,0x20, +0x7D,0x22,0x40,0x24,0xF5,0x25,0x98,0x27,0x27,0x29,0x9E,0x2A,0xF9,0x2B,0x37,0x2D, +0x53,0x2E,0x4B,0x2F,0x1E,0x30,0xC9,0x30,0x4A,0x31,0xA1,0x31,0xCD,0x31,0x04,0x00, +0x2D,0x00,0x6D,0x00,0xE7,0x00,0xAD,0x01,0xD8,0x02,0x81,0x04,0xBE,0x06,0xA0,0x09, +0x30,0x0D,0x6D,0x11,0x47,0x16,0xA3,0x1B,0x56,0x21,0x29,0x27,0xDC,0x2C,0x2A,0x32, +0xCF,0x36,0x8B,0x3A,0x29,0x3D,0x81,0x3E,0x06,0x00,0xF5,0x28,0x03,0x00,0x33,0x33, +0x78,0xBC,0x00,0xC0,0x8E,0xBC,0x00,0xC0,0x20,0xBD,0x00,0xC0,0xAE,0xBD,0x00,0xC0, +0x98,0xBC,0x00,0xC0,0xA8,0xBC,0x00,0xC0,0x7C,0xBC,0x00,0xC0,0xBE,0xBC,0x00,0xC0, +0xD8,0xBC,0x00,0xC0,0xFA,0xBC,0x00,0xC0,0xFE,0xBB,0x00,0xC0,0xB8,0xBD,0x00,0xC0, +0xCC,0xBA,0x00,0xC0,0x0C,0xBB,0x00,0xC0,0x98,0xBB,0x00,0xC0,0x28,0xBD,0x00,0xC0, +0x06,0x00,0x00,0x20,0x03,0x00,0xAA,0x2A,0x00,0x00,0x00,0x20,0x02,0x00,0x45,0x00, +0x5D,0x01,0x1B,0x04,0x31,0x09,0xA2,0x10,0x55,0x19,0x32,0x21,0xE5,0x25,0x01,0x00, +0x10,0x10,0xEF,0x2F,0x00,0x00,0x00,0x20,0x02,0x00,0x49,0x01,0x6C,0x07,0xB1,0x15, +0x60,0x29,0x38,0x38,0x01,0x00,0x00,0x20,0x02,0x00,0xAC,0x00,0xCB,0x03,0x95,0x0B, +0x6B,0x18,0xE0,0x26,0xA6,0x30,0x02,0x00,0xAA,0x2A,0x02,0x00,0x00,0x20,0x03,0x00, +0x4D,0x00,0x51,0x01,0xBD,0x03,0x48,0x08,0x6B,0x0F,0x0D,0x19,0x47,0x24,0x73,0x2F, +0x86,0x38,0x9F,0x3D,0x03,0x00,0x00,0x20,0x03,0x00,0x33,0x00,0xC4,0x00,0x08,0x02, +0x5B,0x04,0x11,0x08,0x55,0x0D,0x0D,0x14,0xCC,0x1B,0xCF,0x23,0x1E,0x2B,0xB5,0x30, +0xBD,0x33,0x04,0x00,0x33,0x33,0x04,0x00,0xAA,0x2A,0x03,0x00,0x1F,0x00,0x5B,0x00, +0xD6,0x00,0xAB,0x01,0xF6,0x02,0xD5,0x04,0x59,0x07,0x87,0x0A,0x52,0x0E,0x96,0x12, +0x1C,0x17,0x9B,0x1B,0xC0,0x1F,0x37,0x23,0xB6,0x25,0x05,0x27,0x04,0x00,0x00,0x20, +0x01,0x00,0x65,0x04,0x5D,0x14,0x3D,0x27,0x05,0x00,0x26,0x00,0x1D,0x00,0x28,0x00, +0x36,0x00,0x47,0x00,0x5A,0x00,0x72,0x00,0x8D,0x00,0xAE,0x00,0xD3,0x00,0xFD,0x00, +0x2D,0x01,0x64,0x01,0xA2,0x01,0xE6,0x01,0x33,0x02,0x87,0x02,0xE5,0x02,0x4B,0x03, +0xBA,0x03,0x33,0x04,0xB6,0x04,0x43,0x05,0xDB,0x05,0x7C,0x06,0x29,0x07,0xDF,0x07, +0xA1,0x08,0x6C,0x09,0x41,0x0A,0x21,0x0B,0x09,0x0C,0xFA,0x0C,0xF4,0x0D,0xF5,0x0E, +0xFE,0x0F,0x0C,0x11,0x20,0x12,0x38,0x13,0x53,0x14,0x71,0x15,0x90,0x16,0xAF,0x17, +0xCD,0x18,0xE8,0x19,0x00,0x1B,0x12,0x1C,0x1E,0x1D,0x23,0x1E,0x1F,0x1F,0x10,0x20, +0xF7,0x20,0xD0,0x21,0x9C,0x22,0x59,0x23,0x07,0x24,0xA3,0x24,0x2E,0x25,0xA7,0x25, +0x0C,0x26,0x5E,0x26,0x9C,0x26,0xC6,0x26,0xDA,0x26,0x05,0x00,0x33,0x33,0x01,0x00, +0x7E,0x01,0x41,0x08,0x4A,0x15,0xF4,0x20,0x04,0x00,0x23,0x00,0x45,0x00,0x84,0x00, +0xE4,0x00,0x6F,0x01,0x2F,0x02,0x2F,0x03,0x76,0x04,0x0F,0x06,0xFD,0x07,0x45,0x0A, +0xE6,0x0C,0xDA,0x0F,0x19,0x13,0x93,0x16,0x37,0x1A,0xEF,0x1D,0xA0,0x21,0x2F,0x25, +0x80,0x28,0x77,0x2B,0xFA,0x2D,0xF2,0x2F,0x4D,0x31,0xFD,0x31,0x05,0x00,0xF5,0x28, +0xB4,0x95,0x00,0x00,0xD0,0x95,0x00,0x00,0xEF,0x95,0x00,0x00,0x0E,0x96,0x00,0x00, +0x1D,0x96,0x00,0x00,0x44,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x2D,0x40,0x5B,0x76, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x08,0x00, +0x00,0x00,0x56,0x30,0x31,0x2E,0x30,0x30,0x37,0x2E,0x30,0x34,0x56,0xFF,0xB2,0x89 +}; diff --git a/drivers/input/touchscreen/msg2233/msg22xx_yyyy_update_bin.h b/drivers/input/touchscreen/msg2233/msg22xx_yyyy_update_bin.h new file mode 100755 index 00000000..26c9c95f --- /dev/null +++ b/drivers/input/touchscreen/msg2233/msg22xx_yyyy_update_bin.h @@ -0,0 +1,3106 @@ +u8 msg22xx_yyyy_update_bin[49664]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xF2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x0B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xFD,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xEF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xE1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xD3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0xC5,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x1C,0x40,0x00,0x1C, +0x60,0x00,0x1C,0x80,0x00,0x1C,0xA0,0x00,0x1C,0xC0,0x00,0x1C,0xE0,0x00,0x1D,0x00, +0x00,0x1D,0x20,0x00,0x1D,0x40,0x00,0x1D,0x60,0x00,0x1D,0x80,0x00,0x1D,0xA0,0x00, +0x1D,0xC0,0x00,0x1D,0xE0,0x00,0x1E,0x00,0x00,0x1E,0x20,0x00,0x1E,0x40,0x00,0x1E, +0x60,0x00,0x1E,0x80,0x00,0x1E,0xA0,0x00,0x1E,0xC0,0x00,0x1E,0xE0,0x00,0x1F,0x00, +0x00,0x1F,0x20,0x00,0x1F,0x40,0x00,0x1F,0x60,0x00,0x1F,0x80,0x00,0x1F,0xA0,0x00, +0x1F,0xC0,0x00,0x1F,0xE0,0x00,0xC0,0x60,0x00,0x01,0xC8,0x63,0x9E,0x34,0x84,0x69, +0x80,0x01,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00, +0xFC,0x21,0xFF,0x60,0xEF,0xE1,0x00,0x80,0xFF,0xE1,0x00,0xA0,0x0F,0xE1,0x08,0xC3, +0xE0,0x02,0x0F,0x0F,0xE1,0x00,0xC3,0xE0,0x04,0x0F,0x0F,0xE1,0x04,0xC3,0xE0,0x03, +0x0F,0xEF,0xE1,0x00,0x84,0xC3,0xE0,0x05,0x0F,0xEF,0xE1,0x00,0x88,0xC3,0xE0,0x05, +0x1F,0xEF,0xE1,0x00,0x8C,0xE4,0x01,0x37,0xA1,0x90,0x00,0x90,0x00,0x90,0x00,0x90, +0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x30,0x44,0x0B, +0x17,0x01,0x98,0x60,0x56,0xF8,0x01,0x4F,0x18,0x79,0x22,0xE0,0x14,0x98,0x62,0x23, +0x00,0x18,0x58,0x77,0x01,0x85,0x29,0x9C,0x30,0x0D,0x41,0x08,0x0C,0x81,0x04,0x0D, +0x21,0x0C,0x5D,0x43,0x00,0xE7,0xFF,0xFF,0xA4,0x0C,0x81,0x06,0x5C,0x63,0x00,0x20, +0x60,0x66,0x9B,0x00,0x21,0x40,0x30,0x21,0x44,0x24,0x5D,0x40,0x41,0x4B,0x01,0x01, +0xD0,0x81,0x04,0x66,0xE4,0x00,0x01,0x17,0xE7,0xFF,0xFF,0x5E,0x5C,0x63,0x00,0x20, +0x64,0x4E,0xD1,0x40,0x05,0xD2,0xD1,0x41,0x05,0xB2,0xD1,0x42,0x05,0x96,0xE4,0x00, +0x00,0xE3,0xE7,0xFF,0xFF,0x2A,0x5C,0x63,0x00,0xD0,0x62,0x05,0x1E,0x9B,0x01,0x21, +0x40,0x24,0x5D,0x40,0x21,0x4B,0x01,0x01,0xC2,0xF4,0x00,0x01,0xFF,0x20,0x80,0x00, +0xCB,0x57,0x23,0x78,0x0B,0x7A,0x01,0x47,0x79,0xDD,0x5F,0x7B,0x04,0x0F,0x7A,0x01, +0xCB,0x57,0x23,0x6C,0x0B,0x7A,0x01,0xC7,0x7B,0x8F,0xFF,0x0F,0x7A,0x01,0xCB,0x57, +0x3C,0xD4,0x0B,0x7A,0x01,0x47,0x79,0xDD,0x5F,0x7B,0x04,0x0F,0x7A,0x01,0xCB,0x57, +0x3C,0xE0,0x0B,0x7A,0x01,0xC7,0x7B,0x7F,0xFF,0x0F,0x7A,0x01,0xCA,0xF7,0x3C,0xEC, +0x0B,0x57,0x01,0x47,0x39,0xD5,0x5F,0x39,0x04,0x0F,0x37,0x01,0x23,0x01,0x00,0xC2, +0xF4,0x00,0x01,0xCB,0x17,0x3D,0xE8,0x0B,0x38,0x01,0xFF,0x20,0x11,0x11,0x0F,0x38, +0x01,0xCB,0x17,0x3D,0xEC,0x0B,0x38,0x01,0xFF,0x20,0x22,0x22,0x0F,0x38,0x01,0xCB, +0x17,0x3D,0xF0,0x0B,0x38,0x01,0xFF,0x20,0x33,0x33,0x0F,0x38,0x01,0xCA,0xF7,0x78, +0xC0,0xFF,0x00,0xAA,0x55,0x0F,0x17,0x01,0xE4,0x00,0x00,0x01,0x0D,0x41,0x0A,0x0D, +0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x03,0xF0,0xC2, +0xE0,0x10,0x01,0xEC,0x97,0x03,0xE8,0xC2,0xE0,0x10,0x01,0xEC,0xB7,0x03,0xEC,0xC2, +0xE0,0x10,0x01,0xEC,0xD7,0x04,0x04,0xC2,0xE0,0x10,0x01,0xEC,0xF7,0x03,0xFC,0xC2, +0xE0,0x10,0x01,0x0F,0x01,0x02,0xED,0x17,0x04,0x00,0xC2,0xE0,0x10,0x01,0xEF,0x17, +0x04,0x10,0xC2,0xE0,0x10,0x01,0x0F,0x01,0x06,0xEF,0x17,0x03,0xD4,0xC2,0xE0,0x10, +0x01,0x0F,0x01,0x0A,0xEF,0x17,0x03,0xF4,0x85,0x29,0x5C,0x84,0x00,0xC2,0xE0,0x10, +0x01,0x4C,0x84,0x10,0xFE,0xF7,0x04,0x08,0x8E,0xE4,0x0C,0x77,0x00,0x85,0x29,0x5C, +0x63,0x00,0x9B,0x00,0x24,0x68,0x25,0x1F,0x03,0xFE,0x5F,0x18,0x00,0xC2,0xE0,0x10, +0x01,0xF3,0x57,0x0B,0x7E,0x1E,0xE3,0x01,0x1F,0x9A,0xFF,0x5F,0x3C,0x00,0xD7,0x97, +0x00,0x50,0x1F,0x23,0x02,0x5F,0x39,0x00,0xC2,0xEF,0xFF,0xE1,0xCA,0xF7,0xFF,0xFF, +0xE4,0x00,0x00,0x2F,0x4F,0x78,0x10,0x9F,0x01,0x8F,0x64,0x5F,0x18,0x00,0x0F,0x7B, +0x02,0x5E,0xFB,0x15,0x4A,0xF7,0xD8,0xD7,0x19,0xFF,0x69,0x4F,0x03,0x10,0xC3,0x20, +0x10,0x01,0x8F,0x04,0xEF,0x39,0x03,0xF6,0x0F,0x18,0x02,0xD7,0x38,0x01,0x41,0xC3, +0x20,0x10,0x01,0xEF,0x79,0x03,0xF2,0xC3,0x20,0x10,0x01,0xEF,0xB9,0x03,0xEA,0xC3, +0x20,0x10,0x01,0xEF,0xD9,0x03,0xEE,0xC3,0x20,0x10,0x01,0xEF,0x39,0x04,0x06,0xE4, +0x00,0x00,0x49,0xC3,0x20,0x10,0x01,0xEF,0x79,0x03,0xFE,0xC3,0x20,0x10,0x01,0xEF, +0xB9,0x04,0x02,0xC3,0x20,0x10,0x01,0xEF,0xD9,0x04,0x12,0xC3,0x20,0x10,0x01,0xEF, +0x39,0x03,0xD6,0x20,0x60,0xDE,0x0F,0x44,0x02,0x0F,0x84,0x06,0xCF,0x5A,0x00,0x32, +0x40,0xE7,0xE3,0xD7,0x47,0x05,0xDC,0x42,0xF7,0x2D,0x40,0xA5,0xCB,0x43,0x77,0xDB, +0x43,0x3B,0x2C,0xCC,0xC6,0x00,0x0A,0x9B,0x4A,0x8C,0xD9,0x98,0x61,0x40,0xC6,0xD0, +0xD7,0x06,0x04,0xF4,0x98,0x60,0xE4,0x00,0x01,0x31,0x20,0x64,0x6A,0x0F,0x44,0x02, +0x0F,0x64,0x06,0xCF,0x5A,0x00,0x32,0x40,0xE7,0xDB,0x98,0x60,0xD7,0x47,0x04,0x14, +0xE4,0x00,0x00,0x55,0x1C,0xFA,0xFE,0xD4,0x67,0x01,0x9E,0x4C,0x63,0x10,0x9F,0x5F, +0x4F,0x5A,0x10,0x8F,0x44,0x8C,0x83,0x0F,0x5A,0x02,0x0F,0x64,0x02,0xCF,0x5A,0x00, +0x32,0x41,0x08,0xDB,0x98,0x60,0xD7,0x48,0x02,0xC4,0x42,0xF7,0x2D,0x40,0xA5,0xCB, +0x43,0xB7,0xEB,0x43,0x3D,0x2C,0xE7,0xFF,0xFF,0x3B,0xD4,0x7C,0x01,0x3E,0x9F,0x5F, +0x4C,0xE7,0x10,0x4F,0x5A,0x10,0x98,0x60,0x8F,0x44,0x8C,0x87,0x0F,0x5A,0x02,0x0F, +0x84,0x02,0xCF,0x5A,0x00,0x32,0x41,0x08,0xE3,0xD7,0x48,0x01,0x2C,0xE7,0xFF,0xFE, +0xD5,0x42,0xF7,0x2D,0xCC,0xC6,0x00,0x0A,0x43,0xD7,0xF3,0x40,0xA5,0xCB,0x9B,0x4A, +0x43,0x3E,0x2C,0x8C,0xD9,0x40,0xC6,0xD0,0xD7,0x06,0xFB,0x60,0x98,0x61,0x85,0x29, +0xC2,0xE0,0x10,0x01,0x9B,0x21,0xEA,0xF7,0x01,0x51,0x9E,0xFF,0x5E,0xF7,0x04,0x26, +0xE4,0x43,0xC3,0x18,0x00,0x21,0xFF,0x18,0xB6,0xF8,0x8E,0xF8,0x13,0x37,0x00,0xC3, +0x00,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFF,0x18,0x0B,0x7A,0xFE,0xF7,0x09,0x6C,0xD0, +0x60,0x05,0x16,0x13,0x58,0x04,0x13,0xD8,0x01,0x1F,0x7A,0xFF,0x9F,0xC1,0x43,0xDE, +0xD3,0x4F,0x5A,0x08,0xCD,0x1B,0x00,0x03,0x5C,0x9A,0x00,0x4F,0x7B,0x08,0x9B,0x40, +0x5C,0x7B,0x00,0xE4,0x00,0x00,0x73,0x43,0x9A,0xDC,0x4F,0xBC,0x08,0x8F,0xB7,0x08, +0xBD,0x01,0x40,0xB9,0x2B,0x0C,0xBD,0x01,0x9F,0x81,0x8F,0x63,0x4F,0x9C,0x08,0x5F, +0x7B,0x00,0x8F,0x97,0x0B,0xBC,0x01,0x43,0xB9,0xEB,0x0F,0xBC,0x01,0xE4,0x00,0x00, +0x0D,0x9B,0x60,0xD5,0x1B,0xFE,0xA4,0x8F,0x44,0x5F,0x5A,0x00,0xD7,0xDA,0xFF,0xAC, +0x0B,0x37,0x02,0x0B,0x57,0x00,0x8F,0x59,0xC3,0x20,0x10,0x01,0xFF,0x39,0x0A,0x1C, +0x0F,0x59,0x00,0x13,0x58,0x04,0x1F,0xBA,0xFF,0x4F,0xBD,0x10,0x43,0xDD,0xCC,0x8F, +0xB7,0x4F,0x9A,0x08,0x09,0x1D,0x00,0x1F,0x7C,0xFF,0x4F,0xBB,0x08,0x8F,0xB7,0x0B, +0xBD,0x00,0x8F,0xA8,0x0F,0xBE,0x00,0x13,0x18,0x01,0x27,0x05,0xAF,0xE4,0x00,0x01, +0x45,0x20,0x66,0xFE,0x13,0x58,0x04,0x13,0xD8,0x01,0x1F,0x7A,0xFF,0x9F,0xC1,0x43, +0xDE,0xD3,0x4F,0x5A,0x08,0xCD,0x1B,0x00,0x03,0x5C,0x9A,0x00,0x4F,0x7B,0x08,0x9B, +0x40,0x5C,0x7B,0x00,0xE4,0x00,0x00,0x73,0x43,0x9A,0xDC,0x4F,0xBC,0x08,0x8F,0xB7, +0x08,0xBD,0x00,0x40,0xA5,0xC8,0x0C,0xBD,0x01,0x9F,0x81,0x8F,0x63,0x4F,0x9C,0x08, +0x5F,0x7B,0x00,0x8F,0x97,0x0B,0xBC,0x00,0x43,0xBD,0xC8,0x0F,0xBC,0x01,0xE4,0x00, +0x00,0x0D,0x9B,0x60,0xD5,0x1B,0xFE,0xA4,0x8F,0x44,0x5F,0x5A,0x00,0xD7,0xDA,0xFF, +0xAC,0xE7,0xFF,0xFE,0xBF,0x4F,0x1A,0x10,0x9F,0x81,0x43,0x58,0xCC,0x43,0xB8,0xBC, +0x4F,0x9C,0x08,0x0B,0xBD,0x00,0x8F,0x97,0x0B,0x9C,0x00,0x8F,0x9D,0x0F,0x9A,0x00, +0x4F,0x7B,0x10,0x1F,0x58,0xFE,0x8F,0x3B,0x4F,0x5A,0x08,0x9F,0x1F,0x8F,0x57,0x4F, +0x18,0x08,0x0B,0x5A,0x00,0x8E,0xF8,0x0A,0xF7,0x00,0x8E,0xFA,0x0E,0xF9,0x00,0x85, +0x29,0x5C,0xE7,0x00,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x0B,0x7E,0x42,0xE7,0xBB,0x5E, +0xF7,0x00,0x9B,0x00,0x8C,0xB7,0x8C,0xD7,0xC3,0x80,0x10,0x01,0xC3,0x40,0x10,0x01, +0x5C,0xC6,0x00,0x5C,0xA5,0x00,0x8B,0x38,0x9A,0xE0,0xFF,0x9C,0x0A,0x1C,0xFF,0x5A, +0x09,0x6C,0xE4,0x00,0x00,0x49,0x4F,0x65,0x10,0x43,0xBB,0xE4,0x0F,0xBD,0x02,0x9C, +0xA1,0x8E,0xFD,0x5C,0xA5,0x00,0x8B,0xBB,0x8F,0x7A,0x8F,0xBA,0x0B,0x7B,0x00,0x0B, +0xBD,0x02,0x8F,0x1B,0x8F,0x3D,0xD4,0xA6,0xFF,0x01,0x26,0xE0,0xE8,0x27,0x20,0xDC, +0x27,0x00,0xD0,0xC3,0x40,0x10,0x01,0xFF,0x5A,0x04,0x08,0x4C,0xE7,0x10,0xCF,0x18, +0xFF,0xF6,0x8C,0xFA,0x0F,0x47,0x02,0x43,0x3A,0xCB,0x9F,0x56,0x8F,0x19,0x43,0x58, +0xD0,0xCF,0x5A,0x07,0xFF,0x43,0x5A,0xB8,0x0F,0x43,0x01,0x0E,0xE4,0x00,0x98,0x61, +0xE4,0x00,0x00,0x0D,0x98,0x60,0x85,0x29,0x9A,0xE3,0x9B,0x01,0xE4,0x00,0x00,0x11, +0x8F,0x17,0x9E,0xE2,0xD7,0x03,0xFF,0xE1,0x4C,0x77,0x09,0x9C,0x7F,0x85,0x29,0xFF, +0x00,0x7F,0xFF,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x03,0xD8,0x0F,0x17,0x01,0x0F,0x17, +0x03,0x0F,0x17,0x05,0x0F,0x17,0x07,0x0F,0x17,0x09,0x0F,0x17,0x0B,0x85,0x29,0xC3, +0x00,0x10,0x01,0xFE,0xF8,0x03,0xD8,0xC3,0x00,0x10,0x01,0x0B,0x37,0x08,0xFF,0x18, +0x0B,0xF0,0xC3,0x2F,0xFF,0xE0,0x20,0x00,0x41,0x0B,0x37,0x05,0x0F,0x37,0x09,0x0B, +0x37,0x07,0xE4,0x00,0x00,0x1B,0x0B,0x38,0x17,0x0F,0x37,0x09,0x0B,0x38,0x19,0x0F, +0x37,0x0B,0x0B,0x37,0x04,0xC3,0x2F,0xFF,0xE0,0x20,0x00,0x41,0x0B,0x37,0x01,0x0F, +0x37,0x05,0x0B,0x37,0x03,0xE4,0x00,0x00,0x1B,0x0B,0x38,0x17,0x0F,0x37,0x05,0x0B, +0x38,0x19,0x0F,0x37,0x07,0x0B,0x38,0x17,0x0B,0x18,0x19,0x0F,0x37,0x01,0x0F,0x17, +0x03,0x85,0x29,0x1C,0x21,0xD8,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x24,0x0D,0x41,0x20, +0x0D,0x61,0x1C,0xFD,0x57,0x03,0xD8,0x0D,0x81,0x18,0x0D,0xA1,0x14,0x0D,0xC1,0x10, +0x09,0xAA,0x07,0x0B,0x0A,0x03,0x43,0x18,0x6D,0x5F,0x18,0x06,0x0F,0x01,0x0B,0x43, +0x18,0xC3,0xE9,0x97,0x03,0xD9,0x09,0xCA,0x05,0x41,0x8C,0x75,0x5D,0x8C,0x06,0x40, +0x6C,0x63,0x8C,0x78,0xE7,0xFF,0xFE,0x48,0x0A,0xEA,0x09,0x41,0xCE,0xBD,0x0A,0xEA, +0x0B,0x42,0xED,0xBD,0x5E,0xF7,0x06,0x0E,0xE1,0x0F,0x42,0xF7,0xBB,0x5D,0x63,0x06, +0x5D,0x4E,0x06,0x40,0x6A,0x53,0x8C,0x77,0xE7,0xFF,0xFE,0x00,0x5E,0xE3,0x06,0x98, +0x61,0x21,0x60,0xAC,0x22,0xE0,0xA0,0x43,0x0B,0xB8,0xD3,0x05,0x01,0x14,0x41,0x4C, +0x53,0x0B,0x01,0x0E,0x09,0x81,0x0A,0x41,0x6B,0xBB,0x43,0x0C,0xC3,0x8D,0x58,0xCD, +0x4A,0x00,0x64,0x42,0xEA,0x58,0x5E,0xE8,0xB1,0x48,0x61,0x01,0x0D,0xC1,0x12,0x0D, +0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26,0x1C,0x21, +0x28,0x85,0x29,0x1C,0x21,0xE8,0xC2,0xE0,0x10,0x01,0x0D,0x41,0x10,0x0D,0x61,0x0C, +0x0D,0x81,0x08,0x0D,0xC1,0x00,0xF1,0x97,0x08,0xD2,0xC1,0x40,0x10,0x01,0x1D,0x6C, +0xFF,0x0D,0x21,0x14,0x0D,0xA1,0x04,0x5D,0xC3,0x00,0x5D,0x6B,0x00,0xFD,0x4A,0x0B, +0xF0,0x4E,0xEE,0x5D,0x56,0xF7,0x01,0x22,0xE0,0xD4,0x8A,0xEB,0xE4,0x00,0x00,0x43, +0xCC,0x77,0x00,0x30,0x1D,0xB7,0x01,0x8C,0x6A,0xCC,0x8D,0x00,0x30,0x9C,0x64,0x8C, +0x8A,0x50,0xA0,0x30,0x9C,0x84,0xE4,0x00,0x50,0x46,0x5E,0xED,0x00,0xD5,0x97,0xFF, +0x1D,0x12,0xEA,0x00,0x22,0xE0,0x20,0x9E,0xFF,0x1A,0xEA,0x00,0x21,0x60,0x30,0x9D, +0x7F,0x5D,0x6B,0x00,0xE7,0xFF,0xFF,0x7B,0x12,0xEA,0x00,0x22,0xE0,0x52,0xC2,0xE0, +0x10,0x01,0x9B,0x37,0xEB,0x17,0x08,0xE7,0x47,0x18,0xCC,0xEF,0x17,0x08,0xE7,0x0D, +0xC1,0x02,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21, +0x16,0x1C,0x21,0x18,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xEB,0x37, +0x01,0x50,0xFF,0x18,0x04,0x1C,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x7A,0x23,0x24, +0xA6,0x13,0x37,0x04,0x9A,0xE0,0x9F,0x21,0xE4,0x00,0x00,0x2F,0x4F,0x57,0x08,0x1F, +0x77,0xFF,0x8F,0x58,0x4F,0x7B,0x10,0x9E,0xE1,0x0F,0x7A,0x01,0x5E,0xF7,0x00,0xD6, +0xF9,0xFF,0x68,0xE4,0x00,0x00,0x9D,0x23,0x28,0x38,0x13,0x37,0x04,0x9A,0xE0,0x9F, +0x21,0xE4,0x00,0x00,0x79,0x13,0x37,0x04,0x9A,0xE0,0x9F,0x21,0xE4,0x00,0x00,0x2F, +0x4F,0x57,0x08,0xCF,0x77,0x00,0x06,0x8F,0x58,0x9F,0x79,0x9E,0xE1,0x0F,0x7A,0x01, +0x5E,0xF7,0x00,0xD6,0xF9,0xFF,0x68,0xE4,0x00,0x00,0x35,0x4F,0x57,0x08,0x4F,0x77, +0x08,0x8F,0x58,0x9F,0x7F,0x9E,0xE1,0x0F,0x7A,0x01,0x5E,0xF7,0x00,0xD6,0xF9,0xFF, +0x70,0x85,0x29,0x9C,0x30,0x5C,0xC6,0x00,0x0D,0x61,0x08,0x0D,0x81,0x04,0x0D,0xA1, +0x00,0x0D,0x41,0x0C,0xC3,0x00,0x10,0x01,0xFF,0x18,0x0B,0x7A,0x13,0xD8,0x04,0x40, +0xC6,0xF3,0x5E,0xE6,0x00,0x5F,0xA3,0x06,0x8C,0x97,0x8C,0xB7,0x5F,0x7D,0x04,0x0A, +0xF8,0x0B,0x11,0x58,0x0C,0x40,0xFB,0xBC,0x41,0x9B,0xBD,0xC1,0xA0,0x10,0x01,0xC3, +0x00,0x10,0x01,0x5C,0xA5,0x00,0x4D,0x77,0x08,0x5C,0xE7,0x04,0x5D,0x8C,0x04,0x5C, +0x84,0x00,0xFD,0xAD,0x04,0x1C,0xFF,0x18,0x09,0x6C,0x53,0x20,0x64,0xE4,0x00,0x01, +0x21,0x43,0x44,0x35,0x9F,0x41,0x4F,0x5A,0x08,0x8F,0x4D,0x09,0x1A,0x00,0x41,0x08, +0xBB,0x41,0x08,0x50,0x5F,0x88,0x04,0x43,0x5C,0xDD,0x5F,0x5A,0x06,0x4C,0x7A,0xFA, +0x47,0x43,0xD6,0x43,0x5A,0x1D,0xD6,0xFA,0x03,0x14,0xD5,0x7A,0x02,0x70,0x5D,0x08, +0x06,0xD5,0x1D,0x00,0x58,0x43,0x9C,0x3D,0xE4,0x00,0x00,0x0F,0x43,0x8C,0xE5,0x5F, +0x9C,0x06,0x4F,0x44,0x10,0x43,0x97,0xE5,0x8F,0x58,0xCF,0x9C,0x00,0x64,0x09,0x1A, +0x00,0x43,0x9C,0xB8,0xC7,0x9C,0xFF,0xFF,0x41,0x1C,0x43,0x41,0x08,0xC8,0x0D,0x1A, +0x01,0x4F,0x44,0x10,0x9F,0x42,0x8F,0x58,0x09,0x1A,0x00,0x43,0x9C,0x43,0x43,0x9C, +0xC8,0x0F,0x9A,0x01,0xE4,0x00,0x00,0x29,0x4F,0x44,0x10,0x8F,0x58,0x0C,0x1A,0x01, +0x4F,0x44,0x10,0x8F,0x58,0x0C,0x1A,0x03,0x9C,0x81,0x5C,0x84,0x00,0xD4,0x85,0xFB, +0xA0,0xC2,0xE0,0x10,0x01,0x0D,0xA1,0x02,0xF0,0x77,0x0B,0x7B,0x0D,0x81,0x06,0x0D, +0x61,0x0A,0x0D,0x41,0x0E,0x40,0x7E,0x1B,0x1C,0x21,0x10,0xE4,0x00,0xA5,0x63,0x5C, +0x63,0x00,0x5C,0x84,0x00,0xC2,0xE0,0x10,0x01,0x43,0x64,0x1D,0xF2,0xF7,0x0B,0x7E, +0x9F,0x61,0x40,0xA5,0xBB,0x5F,0x7B,0x00,0x5C,0xA5,0x00,0x20,0xE4,0x3E,0xC2,0xE0, +0x10,0x01,0xFE,0xF7,0x0D,0x30,0xE4,0x00,0x00,0x19,0xC2,0xE0,0x10,0x01,0xFE,0xF7, +0x09,0x6C,0x43,0x23,0x2C,0x9B,0x00,0x4F,0x39,0x10,0x9F,0x22,0x8F,0x37,0xC2,0xEF, +0xFF,0xE1,0xCA,0xF7,0xFF,0xFF,0xE4,0x00,0x00,0x3D,0x0B,0x99,0xFE,0x0B,0x59,0x00, +0x9F,0x24,0x8F,0x5C,0x4F,0x98,0x10,0x5E,0xFA,0x15,0x8F,0x86,0x4A,0xF7,0xD0,0x0F, +0x5C,0x00,0x9F,0x01,0x5F,0x58,0x00,0xD7,0x7A,0xFF,0x1D,0x9B,0x00,0xE4,0x00,0x00, +0x29,0x0F,0x26,0x02,0x9F,0x01,0x43,0x39,0xBD,0x5F,0x18,0x00,0x0F,0x26,0x00,0x9C, +0xC4,0xD7,0x78,0xFF,0x85,0x85,0x29,0x1C,0x21,0x88,0x0D,0x41,0x70,0x0D,0x61,0x6C, +0x5D,0x44,0x00,0x0D,0x81,0x68,0x5C,0x85,0x00,0x0D,0xA1,0x64,0x88,0xA6,0x41,0xA4, +0x55,0x0D,0x21,0x74,0x89,0x83,0x88,0xC1,0x88,0x6A,0xE7,0xFF,0xFE,0xAA,0xC2,0xE0, +0x10,0x01,0x9D,0xA1,0xEB,0x57,0x01,0x50,0x9B,0x20,0x5D,0xAD,0x00,0x8B,0x19,0x9A, +0xE0,0x89,0x61,0xE4,0x00,0x00,0x5B,0x4F,0x79,0x10,0x43,0x99,0x54,0x8F,0x6B,0x0F, +0x7B,0x02,0x8E,0xFB,0x23,0x44,0x54,0x23,0x48,0x36,0xCF,0x9C,0x00,0x06,0x9F,0x9F, +0xE4,0x00,0x00,0x13,0x4F,0x9C,0x08,0x9F,0x81,0x43,0x7C,0xDB,0x9F,0x21,0x8F,0x1B, +0x5F,0x79,0x00,0xD5,0xBB,0xFE,0xA5,0x26,0xE1,0x34,0xC3,0x20,0x10,0x01,0xEB,0x39, +0x0B,0x85,0x43,0x18,0xCB,0x23,0x44,0x32,0x4F,0x37,0x0A,0x8F,0x19,0xE4,0x00,0x00, +0x35,0x23,0x48,0x46,0xCF,0x37,0x00,0x03,0xCE,0xF7,0x00,0x06,0x8F,0x19,0xE4,0x00, +0x00,0x13,0x8F,0x17,0x4E,0xF7,0x08,0x42,0xF8,0xB8,0xC2,0xE0,0xFF,0xE8,0xCB,0x00, +0x07,0xFF,0x98,0x61,0x4A,0xF7,0xC0,0x5E,0xFF,0xF9,0x4A,0xF7,0x00,0x0E,0xEC,0x01, +0xE4,0x00,0x00,0x0D,0x98,0x60,0x0D,0xA1,0x66,0x0D,0x81,0x6A,0x0D,0x61,0x6E,0x0D, +0x41,0x72,0x0D,0x21,0x76,0x1C,0x21,0x78,0x85,0x29,0xFC,0x21,0xFF,0x78,0xED,0x41, +0x00,0x80,0x0D,0x81,0x78,0x0D,0xA1,0x74,0x0D,0xC1,0x70,0x0D,0xE1,0x6C,0x0E,0x01, +0x68,0x0E,0xC1,0x64,0xED,0x21,0x00,0x84,0x0D,0x61,0x7C,0xC1,0x40,0x10,0x01,0xFD, +0x4A,0x0B,0x7A,0x11,0x6A,0x04,0x4E,0xEB,0x08,0x9E,0xE8,0xC6,0xF7,0x03,0xF8,0xFE, +0xC1,0x00,0x88,0x5D,0xC4,0x00,0x5D,0xA5,0x00,0x8A,0x03,0x5C,0xA6,0x00,0x89,0xE1, +0x41,0x65,0x5B,0x40,0x21,0xBD,0x88,0x6E,0x88,0x8D,0xFC,0xD6,0xFF,0x78,0xE7,0xFF, +0xFC,0xA2,0xC3,0x40,0x10,0x01,0x89,0x81,0x5D,0x6B,0x00,0x13,0x2A,0x04,0x9A,0xE0, +0xFF,0x5A,0x04,0x1C,0xE4,0x00,0x00,0x29,0x4F,0x17,0x08,0x9E,0xE1,0x43,0x6C,0xC4, +0x8F,0x1A,0x0B,0x18,0x03,0x0F,0x1B,0x01,0x5F,0x17,0x00,0xD7,0x38,0xFF,0x6D,0x43, +0x4B,0x74,0x8D,0xAB,0x5F,0x5A,0x00,0x5D,0xAD,0x00,0x9A,0xE0,0x1F,0x2D,0x01,0x43, +0x39,0xD5,0x5F,0x39,0x00,0xE4,0x00,0x00,0x33,0x4F,0x77,0x10,0xFF,0x96,0xFF,0x78, +0x8F,0x7C,0x0F,0x7B,0x02,0x27,0x60,0x4A,0xD5,0xB8,0x03,0x19,0x9E,0xE1,0x5F,0x17, +0x00,0xD7,0x38,0xFF,0x45,0x8B,0x1A,0x1F,0x36,0xD8,0x1F,0x76,0xD8,0x4E,0xF8,0x10, +0x8E,0xF9,0x0F,0x37,0xA2,0x1E,0xF8,0x01,0x43,0x39,0xCB,0x4E,0xF7,0x10,0x8E,0xFB, +0x0E,0xF7,0xA2,0x42,0xF7,0xBB,0x5F,0x37,0x15,0x4B,0x77,0xC8,0x27,0x60,0xBC,0x8F, +0x1A,0x0B,0x6A,0x0B,0x41,0x78,0x5D,0x13,0x4A,0x0C,0x4D,0x6B,0x08,0x98,0x61,0x8D, +0x8B,0x0B,0x0C,0x00,0x43,0x18,0xDB,0x43,0x77,0xDB,0x43,0x18,0xD0,0x8E,0xF9,0x42, +0xFB,0xB8,0x8E,0xF8,0x0E,0xF0,0x01,0xE4,0x00,0x00,0x0D,0x98,0x60,0x88,0x2F,0x0E, +0xC1,0x66,0x0E,0x01,0x6A,0x0D,0xE1,0x6E,0x0D,0xC1,0x72,0x0D,0xA1,0x76,0x0D,0x81, +0x7A,0x0D,0x61,0x7E,0xED,0x41,0x00,0x82,0xED,0x21,0x00,0x86,0xFC,0x21,0x00,0x88, +0x85,0x29,0x1C,0x21,0xB8,0x0D,0x41,0x40,0xC1,0x40,0x10,0x01,0x0D,0x61,0x3C,0x0D, +0x81,0x38,0x0D,0xC1,0x30,0x0E,0x41,0x20,0x0E,0x61,0x1C,0x0E,0x81,0x18,0x0E,0xA1, +0x14,0x0E,0xC1,0x10,0x0D,0x21,0x44,0x0D,0xA1,0x34,0x0D,0xE1,0x2C,0x0E,0x01,0x28, +0x0E,0x21,0x24,0x5E,0x63,0x00,0x5E,0x44,0x00,0xC1,0xC0,0x10,0x01,0xF0,0x8A,0x0B, +0x7A,0xFD,0xCE,0x0C,0xBC,0x98,0xA0,0x88,0x6E,0x99,0x80,0x8A,0xCA,0xE4,0x00,0xA0, +0x0A,0xC1,0x40,0x10,0x01,0x89,0x6C,0xC2,0xA0,0x10,0x01,0x9A,0x81,0xFD,0x4A,0x0B, +0xF0,0xE4,0x00,0x01,0x19,0xCC,0x6B,0x00,0x30,0xEA,0xF5,0x08,0xA3,0x41,0xA3,0x54, +0x56,0xF7,0x02,0x12,0x2D,0x04,0x12,0x0D,0x05,0x11,0xED,0x07,0x22,0xE1,0x0C,0x1C, +0x61,0x04,0x88,0x91,0x88,0xB0,0x88,0xCF,0x98,0xE0,0xE7,0xFF,0xFA,0xDA,0x20,0x61, +0x14,0x1C,0x61,0x06,0x88,0x91,0x88,0xB0,0x88,0xCF,0x98,0xE0,0xE7,0xFF,0xFC,0x5C, +0x20,0x60,0xCC,0x0B,0x01,0x04,0xCF,0x18,0x00,0x07,0x0A,0xE1,0x06,0xCE,0xF7,0x00, +0x03,0x8E,0xF8,0x9B,0x0A,0x42,0xF7,0xC0,0x0E,0xED,0x17,0xE4,0x00,0x00,0x43,0x8C, +0x6A,0x88,0x91,0x1C,0x63,0x16,0x88,0xB0,0x88,0xCF,0x98,0xE0,0xE7,0xFF,0xFA,0x56, +0x20,0x60,0x32,0x4E,0xF4,0x5C,0x45,0x8C,0xBD,0x5D,0x8C,0x00,0x88,0x6E,0xF0,0x96, +0x0B,0x7A,0x98,0xA1,0x9D,0x61,0xE4,0x00,0x9E,0xD8,0x5D,0x6B,0x00,0x12,0xEA,0x00, +0xD6,0xEB,0xFB,0xAD,0x88,0x6C,0xE7,0xFF,0xF4,0x7A,0x12,0xEA,0x00,0x22,0xE0,0x6C, +0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x8F,0x56,0xF7,0x40,0x22,0xE0,0x34,0xC2,0xE0, +0x10,0x01,0xEE,0xF7,0x03,0xE6,0x86,0xE8,0xC2,0xE0,0x10,0x01,0x88,0x6E,0xF0,0x97, +0x0B,0x7A,0x98,0xA1,0xE4,0x00,0x9E,0x5C,0xC2,0xE0,0x10,0x01,0x99,0x80,0xEA,0xF7, +0x08,0x8F,0x89,0x6C,0x56,0xF7,0x80,0x99,0xA1,0x22,0xE0,0xFC,0xC2,0xE0,0x10,0x01, +0xEE,0xF7,0x03,0xFA,0x86,0xE8,0xE4,0x00,0x00,0x7F,0xCE,0xEB,0x00,0x30,0x40,0x6A, +0xBC,0x8A,0xE3,0x88,0x83,0x10,0xB7,0x04,0x1C,0x63,0x18,0x9C,0x8C,0x10,0xD7,0x05, +0x10,0xF7,0x07,0xE7,0xFF,0xEF,0xDC,0x20,0x60,0x32,0x4E,0xED,0x5C,0x45,0x8C,0xBD, +0x5D,0x8C,0x00,0x9D,0x61,0x5D,0x6B,0x00,0x12,0xEA,0x00,0xD6,0xEB,0xFE,0x7D,0x88, +0x6C,0xE7,0xFF,0xF3,0x64,0x22,0x61,0x5C,0x22,0x40,0xFE,0xE4,0x00,0x00,0xA3,0xCD, +0x6C,0x00,0x30,0x8D,0x6A,0x0A,0xEB,0x16,0x0E,0xE1,0x08,0x0A,0xEB,0x18,0x1C,0x61, +0x08,0x0E,0xE1,0x0C,0x1C,0x81,0x0C,0xEE,0xED,0x03,0xD2,0x0C,0xAB,0x0E,0x88,0xCE, +0x86,0xE8,0x0E,0xE1,0x0A,0x9D,0x81,0x0E,0xEB,0x17,0x5D,0x8C,0x00,0x0E,0xE1,0x0E, +0x0E,0xEB,0x19,0xE4,0x00,0x00,0x25,0xC1,0xC0,0x10,0x01,0x99,0x80,0xC1,0xA0,0x10, +0x01,0xFD,0xCE,0x01,0x3C,0x12,0xEA,0x00,0xD6,0xEC,0xFD,0xBD,0xC2,0xE0,0x10,0x01, +0x13,0x6A,0x00,0xEB,0x97,0x08,0xA3,0x9B,0x20,0xC2,0xE0,0x10,0x01,0x57,0x9C,0x01, +0xFE,0xF7,0x0C,0x08,0xCB,0xA0,0x07,0xFF,0xE4,0x00,0x00,0x89,0x0B,0x57,0x01,0x13, +0xD7,0xEF,0x5F,0x1A,0x06,0x47,0x18,0xC7,0x4F,0x18,0xFA,0x47,0x1A,0xC4,0x5F,0x58, +0x06,0xC3,0x40,0xFF,0xE8,0x20,0x00,0x1D,0xFF,0x00,0x07,0xFF,0x0F,0x17,0x01,0x5F, +0x58,0x06,0x23,0x80,0x48,0xCF,0x1A,0x03,0xFF,0x4F,0x5E,0x50,0x43,0x18,0xE8,0x8F, +0x1A,0x0F,0x17,0x01,0x9F,0x21,0x1E,0xF7,0x30,0x5F,0x39,0x00,0xD7,0x3B,0xFE,0x06, +0x0E,0xC1,0x12,0x0E,0xA1,0x16,0x0E,0x81,0x1A,0x0E,0x61,0x1E,0x0E,0x41,0x22,0x0E, +0x21,0x26,0x0E,0x01,0x2A,0x0D,0xE1,0x2E,0x0D,0xC1,0x32,0x0D,0xA1,0x36,0x0D,0x81, +0x3A,0x0D,0x61,0x3E,0x0D,0x41,0x42,0x0D,0x21,0x46,0x1C,0x21,0x48,0x85,0x29,0x1C, +0x21,0xC8,0xC2,0xE0,0x10,0x01,0x0D,0x81,0x28,0x0D,0xA1,0x24,0x0E,0x61,0x0C,0x0E, +0xC1,0x00,0x0D,0x21,0x34,0x0D,0x41,0x30,0x0D,0x61,0x2C,0x0D,0xC1,0x20,0x0D,0xE1, +0x1C,0x0E,0x01,0x18,0x0E,0x21,0x14,0x0E,0x41,0x10,0x0E,0x81,0x08,0x0E,0xA1,0x04, +0xC1,0x80,0x10,0x01,0xF3,0x57,0x08,0xD2,0xFD,0x8C,0x0B,0xF0,0xC2,0xE0,0x10,0x01, +0x1E,0xC1,0x38,0x89,0xA3,0x8A,0x61,0x18,0x0C,0x00,0xFE,0xF7,0x0B,0xF8,0x9B,0x00, +0x9B,0x3F,0xE4,0x00,0x00,0x2B,0x0C,0x17,0x00,0x1B,0x37,0xFE,0x1B,0x37,0xFF,0x9F, +0x01,0x1E,0xF7,0x30,0x5F,0x18,0x00,0xD7,0x1A,0xFF,0x7E,0xC1,0xE0,0x10,0x01,0xFD, +0xEF,0x0B,0x7A,0x12,0xEF,0x04,0x10,0x6F,0x01,0x40,0x63,0xBB,0xE4,0x00,0x9A,0x60, +0x13,0x2F,0x04,0x4E,0xF9,0x10,0x9E,0xEA,0xC6,0xF7,0x07,0xF8,0xC3,0x60,0x10,0x01, +0x40,0x21,0xBD,0x0A,0x0D,0x18,0x89,0x61,0x9B,0x00,0xCA,0xE0,0x20,0x00,0xFF,0x7B, +0x0A,0x1C,0xE4,0x00,0x00,0x3B,0x4F,0x58,0x10,0x9F,0x01,0x43,0x9A,0xDC,0x8F,0x4B, +0x0E,0x3C,0x02,0x5E,0x37,0x15,0x0E,0x3A,0x00,0x4A,0xF1,0xB8,0x5E,0xF7,0x06,0x5F, +0x58,0x00,0xD7,0x3A,0xFF,0x25,0x46,0x37,0xBF,0x99,0x40,0x4E,0x31,0xFA,0x89,0xCA, +0x46,0x31,0xBC,0xC2,0x80,0x10,0x01,0x9A,0x42,0x8A,0xAC,0xE4,0x00,0x04,0x4B,0x0B, +0x0D,0x18,0x21,0x41,0x32,0x0E,0xEB,0x02,0xD7,0x17,0x0E,0xEC,0x0F,0x0B,0x06,0xD6, +0xF8,0x00,0x7C,0xD6,0xF8,0x0E,0x96,0x0F,0x0B,0x0A,0xD6,0xF8,0x0E,0x58,0x98,0x60, +0x88,0x8B,0x88,0xB1,0x88,0xD0,0x08,0xED,0x1C,0x09,0x0D,0x1E,0xE7,0xFF,0xE5,0xE6, +0xD0,0x60,0x0D,0xAA,0x12,0xEC,0x00,0x99,0x41,0x8E,0xEE,0xCE,0xF7,0x00,0x30,0x8E, +0xEC,0x18,0x17,0x04,0x18,0x17,0x06,0x1A,0x57,0x05,0xE4,0x00,0x03,0x4F,0x21,0x45, +0x56,0x0E,0xEB,0x06,0xD7,0x17,0x0C,0x8C,0x0F,0x0B,0x02,0xD7,0x17,0x0C,0x54,0x0F, +0x0B,0x0A,0xD6,0xF8,0x00,0x7C,0xD6,0xF8,0x0B,0xFE,0x0F,0x0B,0x0E,0xD6,0xF8,0x0B, +0xC0,0x98,0x61,0x88,0x8B,0x88,0xB1,0x88,0xD0,0x08,0xED,0x1C,0x09,0x0D,0x1E,0xE7, +0xFF,0xE5,0x40,0xD0,0x60,0x0B,0x12,0x12,0xEC,0x00,0x9B,0x01,0x8E,0xEE,0x99,0x42, +0xCE,0xF7,0x00,0x30,0x8E,0xEC,0x18,0x17,0x04,0x1B,0x17,0x06,0x1A,0x57,0x05,0xE4, +0x00,0x02,0xA5,0x25,0x45,0xC5,0x1F,0x37,0xFE,0xD7,0x2A,0x03,0x58,0x4E,0xEA,0x10, +0x8E,0xEB,0x0E,0xF7,0x02,0xD7,0x17,0x09,0x84,0x1F,0x0A,0xFF,0x4F,0x18,0x10,0x8F, +0x0B,0x0F,0x18,0x02,0xD6,0xF8,0x01,0x34,0xD6,0xF8,0x08,0xEE,0x1F,0x2A,0xFE,0x4F, +0x39,0x10,0x8F,0x2B,0x0F,0x39,0x02,0xD6,0xF9,0x08,0x70,0x1F,0x4A,0x01,0x4F,0x5A, +0x10,0x8F,0x4B,0x0F,0x5A,0x02,0xD7,0x59,0x07,0xF8,0x1F,0x2A,0x01,0x4F,0x39,0x10, +0x8F,0x2B,0x0F,0x39,0x02,0xD6,0xF9,0x03,0x2C,0xD6,0xF9,0x07,0x66,0x1F,0x2A,0x02, +0x4F,0x39,0x10,0x8F,0x2B,0x0F,0x39,0x02,0xD6,0xF9,0x06,0xE8,0xD7,0x19,0x06,0xC8, +0xE4,0x00,0x00,0x95,0x4F,0x0A,0x10,0x1F,0x57,0xFE,0x0B,0x2D,0x18,0x8F,0x0B,0xD5, +0x5A,0x03,0x6E,0x0F,0x18,0x02,0xD7,0x38,0x05,0xFC,0x1F,0x37,0xFF,0x4F,0x39,0x10, +0x8F,0x2B,0x0F,0x39,0x02,0xD7,0x38,0x05,0x84,0x1F,0x37,0xFD,0x4F,0x39,0x10,0x8F, +0x2B,0x0F,0x39,0x02,0xD7,0x19,0x00,0xB4,0xD7,0x19,0x04,0xEE,0x9E,0xFC,0x4E,0xF7, +0x10,0x8E,0xEB,0x0E,0xF7,0x02,0xD7,0x17,0x04,0x78,0x88,0x6A,0x88,0x8B,0x88,0xB1, +0x88,0xD0,0x08,0xED,0x1C,0x09,0x0D,0x1E,0xE7,0xFF,0xE3,0x6E,0x20,0x61,0xE4,0x12, +0xEC,0x00,0x1F,0x0A,0xFF,0x8E,0xEE,0xCE,0xF7,0x00,0x30,0x8E,0xEC,0x19,0x57,0x06, +0x1B,0x17,0x04,0x9D,0x41,0x5D,0x4A,0x00,0xE4,0x00,0x00,0xAD,0x0E,0xF8,0x02,0xD7, +0x37,0x02,0xB4,0x1F,0x0A,0xFF,0x4F,0x18,0x10,0x8F,0x0B,0x0F,0x18,0x02,0xD6,0xF8, +0x00,0xBC,0xD6,0xF8,0x02,0x1E,0x1F,0x0A,0xFE,0x4F,0x18,0x10,0x8F,0x0B,0x0F,0x18, +0x02,0xD6,0xF8,0x01,0xA0,0x88,0x6A,0x88,0x8B,0x88,0xB1,0x88,0xD0,0x08,0xED,0x1C, +0x09,0x0D,0x1E,0xE7,0xFF,0xE2,0xB8,0x20,0x60,0x78,0x12,0xEC,0x00,0x1F,0x0A,0xFE, +0x8E,0xEE,0xCE,0xF7,0x00,0x30,0x8E,0xEC,0x1B,0x17,0x04,0x19,0x57,0x06,0x19,0x57, +0x05,0xE4,0x00,0x00,0x21,0x9D,0x41,0x5D,0x4A,0x00,0x12,0xEF,0x04,0xD6,0xEA,0xF0, +0x95,0x12,0xEF,0x04,0xD6,0xEA,0x01,0x61,0x12,0xEC,0x00,0x8E,0xEE,0xCE,0xF7,0x00, +0x30,0x43,0x17,0x64,0x13,0x18,0x05,0xD5,0x58,0x00,0x55,0x1D,0x58,0x01,0x5D,0x4A, +0x00,0x8E,0xF5,0x9B,0x01,0x9D,0xC1,0x18,0x17,0x07,0x0F,0x17,0x08,0x5D,0xCE,0x00, +0x12,0xEF,0x04,0xD6,0xEA,0x00,0x61,0xF2,0xF4,0x08,0xD2,0xD6,0xEE,0xFD,0xFC,0x12, +0xEC,0x00,0x8D,0xD7,0x19,0xCC,0x00,0x88,0x33,0x0E,0xC1,0x02,0x0E,0xA1,0x06,0x0E, +0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D,0xE1, +0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32, +0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01, +0xF8,0x77,0x04,0x64,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x0B,0x85,0xEE,0xF8,0x04,0x5D, +0xC3,0x00,0x10,0x01,0xCF,0x37,0x00,0x05,0x4E,0xF7,0x10,0xEF,0x38,0x04,0x5B,0xC3, +0x00,0x10,0x01,0xEE,0xF8,0x04,0x59,0x85,0x29,0x5C,0x63,0x06,0x20,0x84,0x5A,0x0B, +0x05,0x00,0x0B,0x25,0x02,0x0B,0x45,0x04,0x0B,0x85,0x06,0x0B,0x65,0x08,0xE4,0x00, +0x00,0x27,0x0B,0x05,0x0A,0x0B,0x25,0x0C,0x0B,0x45,0x0E,0x0B,0x85,0x10,0x0B,0x65, +0x12,0xC2,0xE0,0x10,0x01,0x9B,0xA2,0xEA,0xF7,0x0B,0x85,0x43,0x9C,0xBB,0x43,0x9C, +0xE8,0x43,0x80,0xE5,0xFF,0x9C,0x03,0xFF,0xD4,0x7C,0x00,0xC8,0x43,0x9B,0xBB,0x43, +0xBC,0xE8,0xFF,0xBD,0x03,0xFF,0xD7,0xA3,0x01,0x08,0x5C,0x78,0x04,0xE4,0x00,0x00, +0xE3,0x24,0x7C,0x58,0x43,0x03,0xC3,0x40,0x7C,0x1D,0x43,0x43,0xD3,0x40,0x78,0xD4, +0x40,0x63,0xE0,0xE4,0x00,0x00,0xB1,0x9B,0x82,0x43,0x7B,0xBB,0x43,0x7B,0xE0,0xFF, +0x9B,0x03,0xFF,0xD7,0x83,0x01,0x7C,0xC0,0x60,0xFF,0xEC,0x20,0x00,0xCD,0x43,0x60, +0xDD,0xFE,0xFB,0xFC,0x01,0x8E,0xE3,0x43,0x37,0xCB,0xCA,0xE0,0x07,0xFF,0x40,0x77, +0x1D,0xFF,0x7B,0x04,0x00,0x43,0x03,0xC3,0x40,0x79,0xC4,0x40,0x63,0xD8,0xE4,0x00, +0x00,0x3B,0x24,0x7C,0x32,0x8C,0x77,0x40,0x63,0xD3,0xE4,0x00,0x00,0x1D,0xFF,0x17, +0x07,0xFF,0x40,0x78,0x1D,0x40,0x63,0xCB,0x40,0x63,0xB8,0x5C,0x63,0x04,0x85,0x29, +0x9C,0x38,0x0C,0x01,0x04,0xC3,0x00,0x10,0x01,0xC3,0x40,0x10,0x01,0xFF,0x18,0x0B, +0x7A,0xFF,0x9A,0x04,0x1C,0x0B,0x38,0x0B,0x0B,0xBC,0x00,0x13,0x18,0x0C,0x5F,0x79, +0x06,0x5E,0xE3,0x06,0x43,0x7D,0xDB,0x43,0x7B,0xC0,0xD6,0xFB,0x00,0x4C,0x9B,0x41, +0x0F,0x41,0x04,0x0F,0x41,0x06,0x98,0x7F,0x23,0x40,0x5E,0x0B,0x5C,0x02,0x43,0x5A, +0xCB,0x43,0x5A,0xC0,0xD7,0x57,0x00,0x58,0x9B,0x41,0x98,0x60,0x0F,0x41,0x04,0x0F, +0x41,0x06,0x23,0x41,0x1E,0xC3,0x40,0x10,0x01,0xC3,0x60,0x10,0x01,0xF3,0xBA,0x0B, +0x7E,0xFF,0x7B,0x04,0x20,0x9B,0x41,0xE4,0x00,0x00,0x57,0x0B,0xDB,0xFE,0x43,0xDE, +0xCB,0x43,0xDE,0xC0,0xD7,0xD7,0x00,0xD4,0x0B,0xDB,0x00,0x43,0xDE,0xCB,0x43,0xDE, +0xC0,0xD7,0xD7,0x00,0x68,0x9B,0x41,0x0F,0x41,0x04,0xE4,0x00,0x00,0x1F,0x9F,0x41, +0x9F,0x62,0x5C,0x7A,0x02,0xD7,0x5D,0xFE,0xB0,0x0F,0x41,0x06,0x23,0x40,0x9E,0xC3, +0x40,0x10,0x01,0xF3,0x5A,0x0B,0x7E,0x9F,0x41,0x4F,0x7A,0x08,0x8F,0x9B,0x0B,0x7C, +0x00,0x43,0x3B,0xCB,0x43,0x19,0xC0,0xD7,0x17,0x00,0x64,0x9A,0xE1,0x5C,0x7A,0x02, +0x0E,0xE1,0x04,0x9C,0x28,0x85,0x29,0xC3,0x20,0x10,0x01,0x5C,0x63,0x06,0x5C,0xC6, +0x02,0x5C,0xE7,0x00,0xFF,0x39,0x09,0x6C,0x24,0xC0,0x98,0xC2,0xE0,0x10,0x01,0xF3, +0x17,0x0B,0x7E,0xD4,0xD8,0x00,0xDC,0x43,0x18,0x3B,0x1E,0xE6,0xFF,0x8E,0xF8,0x4F, +0x17,0x10,0x8F,0x19,0x0B,0x78,0x02,0x0B,0x58,0x00,0xE4,0x00,0x00,0x11,0x9B,0x40, +0x8B,0x7A,0xC2,0xE0,0x10,0x01,0xF3,0x97,0x0B,0x7E,0xD7,0x86,0x01,0x08,0xD0,0xDF, +0x04,0x28,0x42,0xFC,0x3B,0x8E,0xE6,0x4F,0x17,0x10,0x4E,0xF7,0x10,0x8F,0x19,0x8F, +0x37,0x0B,0x18,0x02,0x0B,0xD9,0x00,0xE4,0x00,0x00,0x17,0x24,0xDD,0xA0,0x9B,0xC0, +0x8B,0x1E,0xD4,0xDC,0x03,0x0C,0x4E,0xE6,0x08,0xC0,0xE0,0x10,0x01,0xFC,0xE7,0x04, +0x1C,0x8E,0xE7,0x9C,0xC1,0x09,0x17,0x00,0x4C,0xC6,0x08,0xC2,0xE0,0x10,0x01,0xFE, +0xF7,0x0B,0x7A,0x8C,0xE6,0x0B,0x97,0x0B,0x13,0x37,0x0C,0x0A,0xE7,0x00,0x40,0xD7, +0xE3,0x42,0xF7,0x45,0x43,0xA8,0xE3,0x40,0xC6,0xC8,0x43,0xBD,0xC8,0x43,0x97,0xE3, +0x43,0xA3,0xED,0x43,0x3C,0xC8,0x40,0x66,0x1D,0x43,0x18,0xEB,0x43,0x7B,0x1B,0x42, +0xFE,0xEB,0x8F,0x1B,0x40,0x7A,0x1B,0x43,0x18,0xC8,0x8E,0xE3,0x42,0xF7,0xC8,0xE4, +0x00,0x00,0x11,0x9A,0xE0,0x8B,0x17,0x0F,0x04,0x01,0x0E,0xE5,0x01,0x85,0x29,0x1C, +0x21,0xD8,0x0D,0x41,0x20,0x0D,0x61,0x1C,0x0D,0x81,0x18,0x0D,0xA1,0x14,0x5D,0x84, +0x00,0x0D,0xC1,0x10,0x0D,0xE1,0x0C,0x0E,0x01,0x08,0x5D,0xA5,0x00,0x5D,0x63,0x04, +0x0C,0xC1,0x04,0x0D,0x21,0x24,0x89,0xE8,0x0D,0xC1,0x2A,0xC1,0x40,0x10,0x01,0x9A, +0x02,0xFD,0x4A,0x0B,0x7A,0x0C,0xE1,0x00,0x08,0x6A,0x0B,0x40,0x6C,0x1B,0x40,0x63, +0x80,0x40,0x6B,0x1D,0xE7,0xFF,0xFC,0x38,0x0C,0x81,0x06,0x88,0xC3,0x5E,0xE3,0x02, +0x0C,0xA1,0x02,0x26,0xFC,0x36,0x0C,0x04,0x01,0x0C,0x05,0x01,0xE4,0x00,0x00,0x2D, +0x0A,0xEA,0x0B,0x42,0xEC,0xBB,0x88,0xED,0x40,0x77,0x80,0x40,0x6B,0x1D,0xE7,0xFF, +0xFD,0x72,0x08,0x6A,0x0B,0x40,0x6C,0x1B,0x4C,0x63,0x0A,0x8C,0x6B,0xE7,0xFF,0xFB, +0xC6,0x12,0xEA,0x04,0x88,0xC3,0x5F,0x03,0x02,0xD7,0x17,0x00,0x70,0x0C,0x0F,0x01, +0x0C,0x0E,0x01,0xE4,0x00,0x00,0x69,0x08,0x6A,0x0B,0x41,0x8C,0x1B,0x88,0x8F,0x4C, +0x6C,0x0A,0x88,0xAE,0x8C,0x6B,0x88,0xED,0x0E,0x01,0x0A,0x0D,0xE1,0x0E,0x0D,0xC1, +0x12,0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26, +0x1C,0x21,0x28,0xE7,0xFF,0xFC,0xC9,0x0E,0x01,0x0A,0x0D,0xE1,0x0E,0x0D,0xC1,0x12, +0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D,0x21,0x26,0x1C, +0x21,0x28,0x85,0x29,0x1C,0x21,0x90,0x0D,0x41,0x68,0x0D,0x81,0x60,0x0D,0xA1,0x5C, +0x0D,0xE1,0x54,0x0E,0x01,0x50,0x0E,0x21,0x4C,0x0D,0x21,0x6C,0xC2,0x20,0x10,0x01, +0x0D,0x61,0x64,0x0D,0xC1,0x58,0x0E,0x41,0x48,0x0E,0x61,0x44,0x0E,0x81,0x40,0x0E, +0xA1,0x3C,0x0E,0xC1,0x38,0x89,0xA3,0x8A,0x04,0x89,0x85,0x5D,0xE6,0x00,0x99,0x40, +0xFE,0x31,0x0B,0xF0,0xE4,0x00,0x00,0xA1,0xCF,0x0A,0x00,0x30,0x8F,0x11,0x1E,0xE1, +0x20,0x10,0xB8,0x07,0x0B,0x98,0x17,0x43,0x2D,0x2C,0x4D,0x05,0x08,0x13,0x59,0x00, +0x1F,0x61,0x38,0x8D,0x1A,0x9F,0x41,0x4D,0x08,0x08,0x1B,0x59,0x00,0x8F,0x68,0x08, +0x78,0x17,0x0F,0x9B,0xD9,0x1F,0x01,0x30,0x8F,0x08,0x88,0x8F,0x0F,0x01,0x00,0x1C, +0xC1,0x18,0x1C,0xE1,0x28,0x8C,0xC8,0x8C,0xE8,0x9D,0x41,0x8D,0x17,0x5D,0x4A,0x00, +0xE7,0xFF,0xFD,0x1E,0x12,0xF1,0x00,0xD6,0xEA,0xFD,0x8D,0xC2,0xE0,0x10,0x01,0x8B, +0x10,0xF2,0x57,0x04,0x64,0x9B,0x41,0x8A,0xED,0xE4,0x00,0x00,0x23,0x13,0x37,0x00, +0x27,0x24,0x19,0x0F,0x58,0x00,0x9E,0xE1,0x9F,0x04,0x43,0x37,0x6D,0x5F,0x39,0x00, +0xD6,0x59,0xFF,0x6D,0x99,0x60,0xC2,0x60,0x10,0x01,0x89,0x4B,0xC2,0x80,0x10,0x01, +0xE4,0x00,0x03,0x07,0x42,0xF0,0x5C,0x0E,0xF7,0x02,0x22,0xE0,0x48,0x1E,0xE1,0x10, +0x8E,0xEB,0x0B,0x57,0x00,0x0B,0x77,0x02,0xE4,0x00,0x01,0x5D,0x42,0xED,0x54,0x12, +0xF7,0x00,0x22,0xE1,0xE0,0x1E,0xE1,0x18,0x8E,0xEB,0x0B,0x17,0x00,0x1E,0xE1,0x28, +0x8E,0xEB,0x0A,0xF7,0x00,0x8E,0xF8,0x1F,0x01,0x30,0x8F,0x0B,0x0B,0x18,0x00,0x8E, +0xF8,0x1F,0x01,0x20,0x8F,0x0B,0x0B,0x18,0x00,0x8E,0xF8,0x9B,0x04,0x42,0xF7,0xC0, +0x0E,0xEC,0x00,0xE4,0x00,0x02,0x55,0xCE,0xEE,0x00,0x30,0x8E,0xF1,0x41,0x0E,0xCC, +0x08,0x77,0x17,0x4D,0x08,0x08,0x1E,0xE1,0x30,0x8E,0xE8,0x0E,0xE1,0x00,0x1E,0xE1, +0x20,0x0F,0x01,0x0C,0x0F,0x21,0x08,0x88,0x8F,0x88,0xB5,0x1C,0xC1,0x18,0x1C,0xE1, +0x28,0x8C,0xC8,0x8C,0xE8,0x8D,0x17,0xE7,0xFF,0xFB,0x90,0x9D,0xC1,0x0F,0x01,0x0E, +0x5D,0xCE,0x00,0x0F,0x21,0x0A,0xE4,0x00,0x00,0x23,0x9A,0xC1,0x99,0xC0,0x42,0xD6, +0x55,0x4F,0x2A,0x08,0x43,0x0D,0xB4,0x12,0xF8,0x00,0xD6,0xEE,0xFD,0x6D,0x4E,0xD6, +0x10,0x43,0x10,0xB4,0x0F,0x18,0x02,0xD3,0x00,0x05,0x0A,0x1F,0x01,0x38,0x8E,0xD8, +0x0B,0x56,0xD8,0x0B,0x76,0xDA,0x43,0x3A,0xDD,0x5F,0x39,0x06,0x4E,0xF9,0xFA,0xEB, +0x93,0x04,0x5B,0x47,0x37,0xCE,0x43,0x39,0xBD,0x52,0xE0,0x64,0x5F,0x39,0x06,0xD7, +0x3C,0x00,0xF4,0xEB,0x14,0x04,0x59,0x9A,0xE0,0xD7,0x19,0x00,0xA4,0x42,0xF9,0xC5, +0x43,0x1C,0xC5,0xCE,0xF7,0x00,0x64,0x42,0xF7,0xC0,0x5E,0xF7,0x00,0x5F,0x7A,0x15, +0x4B,0x81,0x01,0x4F,0x2A,0x08,0x4B,0x00,0x0A,0x8F,0x19,0x8F,0x3C,0x1F,0x81,0x38, +0x1F,0x41,0x38,0x53,0x60,0xC8,0x4F,0x39,0x08,0x43,0x7B,0xBD,0x8F,0x3C,0x0B,0x99, +0xE0,0x4F,0x18,0x08,0x8F,0x1A,0x0B,0xB8,0xE8,0x0B,0x58,0xF8,0x8F,0x5D,0x8F,0x5C, +0x0B,0x99,0xF0,0x8F,0x5C,0x43,0x5B,0xD3,0x0B,0x79,0xE8,0x0B,0x39,0xF8,0x8F,0x79, +0x0B,0x38,0xE0,0x8F,0x79,0x0B,0x38,0xF0,0x43,0x1B,0xCC,0x42,0xF7,0xC3,0xCB,0x00, +0x03,0x20,0x8E,0xFA,0xE7,0xFF,0xFD,0xF3,0x22,0xE0,0x88,0x1F,0x01,0x38,0x4E,0xEA, +0x10,0x8E,0xF8,0x0B,0x17,0xF0,0x0B,0x37,0xE0,0x8F,0x38,0x0B,0x17,0xF8,0x8F,0x38, +0x0B,0x17,0xE8,0x42,0xF9,0xC4,0xE7,0xFF,0xFD,0xAB,0x0C,0x0C,0x00,0x9D,0x41,0x9D, +0x84,0x9D,0x64,0x5E,0xAA,0x00,0xD6,0x55,0xF3,0xF5,0x0E,0xC1,0x3A,0x0E,0xA1,0x3E, +0x0E,0x81,0x42,0x0E,0x61,0x46,0x0E,0x41,0x4A,0x0E,0x21,0x4E,0x0E,0x01,0x52,0x0D, +0xE1,0x56,0x0D,0xC1,0x5A,0x0D,0xA1,0x5E,0x0D,0x81,0x62,0x0D,0x61,0x66,0x0D,0x41, +0x6A,0x0D,0x21,0x6E,0x1C,0x21,0x70,0x85,0x29,0x1C,0x21,0xE8,0x0D,0x41,0x10,0x0D, +0x61,0x0C,0x0D,0x81,0x08,0x0D,0xA1,0x04,0x0D,0x21,0x14,0x89,0xA3,0xC2,0xE0,0x10, +0x01,0x5C,0x64,0x06,0xEA,0xF7,0x08,0xA3,0x5D,0x85,0x00,0x5D,0x66,0x00,0x5D,0x47, +0x00,0x56,0xF7,0x04,0x22,0xE0,0x34,0x88,0x8C,0x88,0xAB,0x88,0xCA,0xE7,0xFF,0xE0, +0xEC,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x0B,0x7E,0x43,0x0A,0xC3,0x5F,0x18,0x00,0x9B, +0x20,0x42,0xF8,0x64,0x8D,0x78,0xC3,0x40,0x10,0x01,0x5D,0x6B,0x00,0x5E,0xF7,0x00, +0x8B,0x19,0xFF,0x5A,0x09,0x6C,0xE4,0x00,0x00,0x3B,0x4F,0x77,0x10,0x8F,0x7A,0x0B, +0x7B,0x02,0x8F,0x1B,0x4F,0x77,0x10,0x9E,0xE1,0x8F,0x7A,0x5E,0xF7,0x00,0x0B,0x7B, +0x00,0x8F,0x3B,0xD6,0xEB,0xFF,0x38,0x27,0x21,0x14,0x27,0x01,0x08,0xC2,0xE0,0x10, +0x01,0xFE,0xF7,0x01,0x64,0x4F,0x39,0x40,0x9D,0x44,0x4D,0x4A,0x10,0x8D,0x57,0x0A, +0xEA,0x06,0x43,0x19,0xC0,0x9B,0x4A,0xFF,0x18,0xFF,0x00,0x53,0x20,0x64,0x43,0x18, +0xBB,0x0A,0xEA,0x04,0x43,0x18,0xD0,0x4E,0xF7,0x40,0x42,0xF7,0xC8,0x8E,0xF8,0x5E, +0xE0,0x09,0x0E,0xED,0x00,0x48,0x61,0x01,0xE4,0x00,0x00,0x0D,0x98,0x60,0x0D,0xA1, +0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18, +0x85,0x29,0xCA,0xE0,0x01,0x00,0xFC,0x21,0xFF,0x80,0x5C,0xE7,0x00,0x0D,0x41,0x78, +0x0D,0x61,0x74,0x0D,0x81,0x70,0x0E,0x21,0x5C,0x0E,0x41,0x58,0x0E,0x61,0x54,0x0E, +0x81,0x50,0x0E,0xA1,0x4C,0x0E,0xC1,0x48,0x0D,0x21,0x7C,0x0D,0xA1,0x6C,0x0D,0xC1, +0x68,0x0D,0xE1,0x64,0x0E,0x01,0x60,0xCE,0x44,0x00,0x0A,0x42,0x52,0x1B,0x42,0x52, +0xB8,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x7A,0x11,0xD7,0x04,0x41,0x87,0x73,0x5F, +0x0C,0x00,0xCC,0x84,0x0A,0x00,0x8C,0xB8,0x8C,0xD8,0xC2,0xA0,0x10,0x01,0xC2,0x20, +0x10,0x01,0xC1,0x60,0x10,0x01,0xC3,0x00,0x10,0x01,0xFD,0x6B,0x09,0x6C,0x42,0x64, +0x18,0x5E,0x86,0x00,0x09,0xF7,0x0B,0x12,0x17,0x0C,0x5D,0x45,0x00,0xFE,0xB5,0x01, +0x64,0xFE,0x31,0x04,0x1C,0x8A,0xCB,0xFF,0x18,0x0A,0x1C,0xE4,0x00,0x01,0x61,0x0F, +0x01,0x04,0x88,0x95,0x50,0xA0,0x3C,0x1C,0x61,0x08,0xE4,0x00,0x2C,0xFE,0x41,0xAA, +0x65,0x1E,0xED,0x01,0x4E,0xF7,0x08,0x8E,0xF1,0x98,0x82,0x08,0x77,0x00,0x1C,0xA1, +0x08,0x40,0x63,0x7B,0x40,0x63,0x80,0xE7,0xFF,0xF1,0x44,0x0F,0x01,0x06,0x5C,0x63, +0x04,0xD5,0x4C,0x00,0x5E,0x1E,0xEE,0xFF,0xD5,0xB7,0x01,0x92,0xCB,0x20,0x03,0xE8, +0x43,0x43,0x9B,0x4E,0xEA,0x10,0x43,0x63,0x93,0x9E,0xE2,0x43,0x7B,0xC8,0x8E,0xEB, +0x0B,0x97,0x01,0x43,0x7C,0xDD,0x0F,0x77,0x01,0x43,0x3A,0xC8,0x4E,0xEA,0x10,0x8E, +0xEB,0x0B,0x57,0x01,0x43,0x3A,0xCD,0x0F,0x37,0x01,0x4E,0xEA,0x08,0x1F,0x37,0x01, +0x4F,0x59,0x08,0x8F,0x4B,0x0B,0x7A,0x00,0x27,0x7C,0x1A,0x0C,0x1A,0x01,0x4F,0x57, +0x08,0x8F,0x56,0x0B,0x7A,0x00,0x27,0x7C,0x1A,0x0C,0x1A,0x01,0x4E,0xF7,0x08,0x8E, +0xEB,0x4F,0x4A,0x10,0x0B,0x77,0x00,0x8F,0x58,0x4F,0x39,0x08,0x9D,0x41,0x8F,0x2B, +0x5D,0x4A,0x00,0x0A,0xF9,0x00,0x8E,0xFB,0x0E,0xFA,0x00,0xD5,0x54,0xFA,0xA0,0x0E, +0xC1,0x4A,0x0E,0xA1,0x4E,0x0E,0x81,0x52,0x0E,0x61,0x56,0x0E,0x41,0x5A,0x0E,0x21, +0x5E,0x0E,0x01,0x62,0x0D,0xE1,0x66,0x0D,0xC1,0x6A,0x0D,0xA1,0x6E,0x0D,0x81,0x72, +0x0D,0x61,0x76,0x0D,0x41,0x7A,0x0D,0x21,0x7E,0xFC,0x21,0x00,0x80,0x85,0x29,0x1C, +0x21,0xB8,0x98,0x60,0x0D,0x21,0x44,0x0D,0x41,0x40,0x0D,0x61,0x3C,0x0D,0x81,0x38, +0x0D,0xA1,0x34,0x0D,0xC1,0x30,0x0D,0xE1,0x2C,0x0E,0x01,0x28,0x0E,0x21,0x24,0x0E, +0x41,0x20,0x0E,0x61,0x1C,0x0E,0x81,0x18,0x0C,0x01,0x08,0x0C,0x01,0x0C,0x18,0x01, +0x02,0x18,0x01,0x03,0x0C,0x01,0x10,0x0C,0x01,0x14,0xE7,0xFF,0xD3,0x4C,0x1C,0x61, +0x02,0x1C,0x81,0x10,0x1C,0xA1,0x08,0x98,0xC4,0xE7,0xFF,0xF5,0xD6,0xC2,0xE0,0x10, +0x01,0xF3,0x97,0x04,0x64,0xC2,0xE0,0x10,0x01,0xEB,0xB7,0x08,0x8B,0xC2,0xE0,0x10, +0x01,0xEF,0x77,0x04,0x56,0xC2,0xE0,0x10,0x01,0x57,0xBD,0x20,0xEF,0xD7,0x04,0x62, +0xC3,0x20,0x10,0x01,0x4F,0xBD,0x29,0x1E,0xE1,0x08,0xFF,0x39,0x01,0x84,0x9B,0x40, +0xE4,0x00,0x00,0x63,0x0F,0x17,0x02,0x09,0x19,0xFC,0x0F,0x19,0x00,0x43,0x18,0x45, +0x5F,0x1F,0xF9,0x4B,0x18,0x00,0x0F,0x17,0x00,0x23,0xA0,0x3C,0x23,0x60,0x30,0x43, +0x18,0xF3,0x43,0x18,0xD8,0x0F,0x17,0x00,0x9F,0x41,0x9E,0xE4,0x5F,0x5A,0x00,0x9F, +0x28,0xD7,0x5C,0xFE,0x9E,0x98,0x61,0x99,0x60,0xC2,0x20,0x10,0x01,0xC2,0x80,0x10, +0x01,0xE7,0xFF,0xD2,0x3E,0x89,0x4B,0xFD,0xB1,0x0B,0xF0,0x9A,0x41,0xC2,0x60,0x10, +0x01,0xFE,0x94,0x0C,0xBC,0xE4,0x00,0x00,0xF9,0xCE,0x0A,0x00,0x30,0x42,0xF0,0x6C, +0x1C,0x61,0x04,0x11,0xF7,0x04,0x11,0xD7,0x05,0x11,0x97,0x07,0x08,0x97,0x17,0x88, +0xAF,0x88,0xCE,0x88,0xEC,0xE7,0xFF,0xF9,0x88,0x20,0x60,0xF8,0x98,0x60,0xE7,0xFF, +0xD1,0xC4,0x1F,0x01,0x18,0x4E,0xEC,0x10,0x8E,0xF8,0x88,0xAF,0x0C,0x97,0xF2,0x88, +0xCE,0x88,0xEC,0x0C,0x61,0x06,0xE7,0xFF,0xFA,0xF8,0x98,0x61,0xE7,0xFF,0xD1,0x88, +0x40,0x6D,0x84,0x88,0xAF,0x88,0x83,0x88,0xCE,0x1C,0x63,0x18,0x9C,0x8C,0x88,0xEC, +0xE7,0xFF,0xD4,0x42,0x20,0x60,0x32,0x4E,0xF2,0x54,0x45,0x6B,0xBD,0x5D,0x6B,0x00, +0x88,0x74,0xF0,0x93,0x0B,0x7A,0x98,0xA1,0x9D,0x41,0xE4,0x00,0x82,0x10,0x5D,0x4A, +0x00,0xF2,0xF1,0x0B,0xF0,0xD6,0xEA,0xFC,0x25,0x88,0x6B,0xE7,0xFF,0xD7,0xB0,0x0D, +0x21,0x46,0x0E,0x81,0x1A,0x0E,0x61,0x1E,0x0E,0x41,0x22,0x0E,0x21,0x26,0x0E,0x01, +0x2A,0x0D,0xE1,0x2E,0x0D,0xC1,0x32,0x0D,0xA1,0x36,0x0D,0x81,0x3A,0x0D,0x61,0x3E, +0x0D,0x41,0x42,0x1C,0x21,0x48,0x85,0x29,0xFC,0x21,0xFF,0x00,0x98,0xA0,0xED,0x41, +0x00,0xF8,0xED,0x61,0x00,0xF4,0xED,0xC1,0x00,0xE8,0xED,0xE1,0x00,0xE4,0xEE,0x01, +0x00,0xE0,0xEE,0x21,0x00,0xDC,0xEE,0x41,0x00,0xD8,0xEE,0x61,0x00,0xD4,0xED,0x21, +0x00,0xFC,0xED,0x81,0x00,0xF0,0xED,0xA1,0x00,0xEC,0xEE,0x81,0x00,0xD0,0xEE,0xA1, +0x00,0xCC,0xEE,0xC1,0x00,0xC8,0xC2,0x20,0x10,0x01,0xC2,0x60,0x10,0x01,0xFE,0x31, +0x0C,0xBC,0xFD,0x73,0x0B,0x7A,0x88,0x71,0x10,0x8B,0x00,0xE4,0x00,0x80,0xEE,0xC2, +0xE0,0x10,0x01,0xEA,0xF7,0x08,0x8F,0xC6,0xF7,0x02,0x00,0xC2,0x40,0x10,0x01,0x5E, +0xE0,0x01,0xC1,0xE0,0x10,0x01,0x4A,0xE1,0x13,0xC1,0x40,0x10,0x01,0xC1,0xC0,0x10, +0x01,0x0E,0xE1,0x0C,0x9A,0x00,0xFE,0x52,0x01,0x64,0xFD,0xEF,0x09,0x6C,0xFD,0x4A, +0x0A,0x1C,0xFD,0xCE,0x0B,0xF0,0x98,0x60,0x0C,0x01,0x58,0x0C,0x01,0x5C,0x18,0x01, +0x56,0x18,0x01,0x57,0x0C,0x01,0x60,0x0C,0x01,0x64,0xE7,0xFF,0xCF,0x6C,0x1C,0x61, +0x56,0x1C,0x81,0x60,0x1C,0xA1,0x58,0x98,0xC3,0xE7,0xFF,0xF1,0xF6,0xC2,0xE0,0x10, +0x01,0xEB,0x97,0x08,0x8B,0xC2,0xE0,0x10,0x01,0xC3,0x20,0x10,0x01,0xEF,0x77,0x04, +0x56,0xC2,0xE0,0x10,0x01,0xF3,0x59,0x04,0x64,0x57,0x9C,0x20,0xEF,0xB7,0x04,0x62, +0x4F,0x9C,0x29,0x1E,0xE1,0x58,0x9B,0x20,0xE4,0x00,0x00,0x5D,0x0F,0xD7,0x02,0x4F, +0x19,0x18,0x8F,0x12,0x0B,0x18,0x1C,0x43,0x1E,0xC5,0x5F,0x1F,0xF9,0x4B,0x18,0x00, +0x0F,0x17,0x00,0x23,0x80,0x3C,0x23,0x60,0x30,0x43,0x18,0xEB,0x43,0x18,0xD8,0x0F, +0x17,0x00,0x9F,0x21,0x9E,0xE4,0x5F,0x19,0x00,0xD7,0x58,0xFE,0x9D,0x13,0x0B,0x04, +0x09,0xAB,0x0B,0x12,0x8B,0x0C,0x9A,0xA0,0xE4,0x00,0x01,0xA1,0xFE,0xE1,0x00,0xC8, +0x8E,0xF5,0x12,0xF7,0x8E,0x22,0xE0,0x72,0xFF,0x61,0x00,0xC8,0x9A,0xE1,0x42,0xF7, +0xAD,0x4E,0xF7,0x10,0x8E,0xFB,0x0F,0x37,0x92,0x4E,0xF5,0x10,0x8E,0xFB,0x0F,0x37, +0x90,0x41,0x95,0xC3,0x1F,0xB5,0x01,0x5E,0xCC,0x00,0x43,0xBD,0xC3,0xE4,0x00,0x01, +0x25,0x0F,0x01,0x00,0x0F,0x41,0x04,0x0F,0xA1,0x08,0x88,0x92,0x50,0xA0,0x3C,0x1C, +0x61,0x10,0xE4,0x00,0x25,0x6E,0x42,0xF6,0x65,0xC3,0x80,0x10,0x01,0x9E,0xE1,0xFF, +0x9C,0x04,0x1C,0x4E,0xF7,0x08,0x8E,0xFC,0x98,0x81,0x08,0x77,0x00,0x1C,0xA1,0x10, +0x40,0x63,0x6B,0x40,0x63,0xA0,0xE7,0xFF,0xE9,0xA6,0x53,0x60,0x64,0x4E,0xF6,0x10, +0x5C,0x63,0x04,0x4F,0x35,0x10,0xFD,0x21,0x00,0xC8,0x9E,0xE2,0x8F,0x29,0x8E,0xEF, +0x0F,0x39,0x92,0x43,0x23,0xCB,0x43,0x39,0xD8,0x0B,0x77,0x01,0x5F,0x39,0x04,0x43, +0x7B,0xCD,0x0F,0x77,0x01,0x0F,0xA1,0x0A,0x4F,0x76,0x10,0x0F,0x41,0x06,0x43,0x9B, +0x7C,0x9E,0xC1,0x0B,0xDC,0x01,0x8F,0x6A,0x43,0x3E,0xCD,0x5E,0xD6,0x00,0x5F,0x39, +0x06,0x0F,0x01,0x02,0x0F,0x3C,0x01,0x0A,0xF7,0x00,0x8F,0x37,0x0F,0x3B,0x00,0xD7, +0xB6,0xFB,0x94,0x9E,0xA1,0x5E,0xB5,0x00,0xD7,0x55,0xF9,0xA5,0x98,0x61,0xE7,0xFF, +0xCC,0xC4,0x13,0x6B,0x04,0x13,0x4B,0x01,0xC3,0x00,0x10,0x01,0x43,0x5A,0xDB,0x9A, +0xE0,0xFF,0x18,0x0D,0x30,0xE4,0x00,0x00,0x4F,0x4F,0x37,0x10,0x43,0x99,0xC4,0x8F, +0x2F,0x0B,0x39,0x01,0x0F,0x3C,0x01,0x4F,0x37,0x10,0x9E,0xE1,0x9F,0x22,0x5E,0xF7, +0x00,0x43,0x99,0xC4,0x8F,0x2F,0x0B,0x39,0x01,0x0F,0x3C,0x01,0xD7,0x57,0xFE,0xEC, +0xC3,0x20,0x10,0x01,0x12,0x8E,0x00,0xFF,0x39,0x0B,0xF6,0x9B,0xA0,0x8B,0x19,0x8B, +0xCA,0xE4,0x00,0x01,0x3D,0x1F,0x98,0x02,0x12,0xF8,0xFE,0x12,0xB8,0xFF,0x11,0x98, +0x01,0x13,0x58,0x00,0x0D,0x1C,0x02,0x21,0x04,0x5E,0x43,0x8C,0xDB,0x8F,0x9A,0x4F, +0x9C,0x10,0x8F,0x8A,0x0F,0x9C,0x02,0x41,0x8C,0xDB,0xE4,0x00,0x00,0xCD,0x4D,0xBA, +0x10,0x43,0x9A,0xDC,0x8D,0xAA,0x4F,0x9C,0x10,0x0D,0xAD,0x02,0x8F,0x8A,0x0F,0x9C, +0x02,0x8F,0x8D,0xE7,0xFF,0xFF,0xC9,0x21,0x04,0x5A,0x41,0xB7,0x64,0x4D,0xAD,0x10, +0x8D,0xAA,0x0D,0xAD,0x02,0xD5,0xBC,0x01,0x94,0xE4,0x00,0x00,0x65,0x4D,0xB7,0x10, +0x42,0xD7,0xDC,0x8D,0xBE,0x4E,0xD6,0x10,0x0D,0xAD,0x02,0x8E,0xDE,0x0E,0xD6,0x02, +0x8E,0xCD,0xD6,0xDC,0x00,0xC8,0x43,0x57,0x64,0x4F,0x5A,0x10,0x8F,0x5E,0x0F,0x9A, +0x02,0x8F,0x8D,0xE4,0x00,0x00,0x0D,0x8B,0x8D,0x8B,0x57,0x9E,0xE1,0x5E,0xF7,0x00, +0xD6,0xF5,0xFD,0xB8,0x1B,0x58,0x00,0x9F,0xA1,0x1F,0x18,0x30,0x5F,0xBD,0x00,0xD7, +0xB4,0xFB,0x36,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x0B,0x7E,0xC2,0xE0,0x10,0x01,0x1F, +0x98,0xFF,0xF3,0x57,0x04,0x50,0x1F,0xB8,0xFD,0xC2,0xE0,0x10,0x01,0x1E,0xB8,0xFC, +0x11,0x8E,0x00,0x5D,0x1C,0x00,0x1D,0xB8,0xFE,0xFE,0xF7,0x0B,0xF5,0x9B,0x60,0x8A, +0x9C,0x5F,0xBD,0x00,0x5E,0xB5,0x00,0x9A,0xC2,0x1C,0x78,0xFD,0xE4,0x00,0x00,0xEB, +0x13,0x17,0x01,0xD7,0x1C,0x00,0x76,0x19,0x17,0x00,0x18,0x77,0xFF,0xE4,0x00,0x00, +0xB9,0x23,0x00,0x36,0x1A,0xD7,0x00,0x18,0x17,0xFF,0xE4,0x00,0x00,0x9F,0x23,0x04, +0x56,0x5F,0x40,0x29,0x9F,0x1F,0x4B,0xC2,0x1B,0x1B,0x17,0xFF,0x1B,0xD7,0x00,0xE4, +0x00,0x00,0x75,0xD7,0x0D,0x00,0x8E,0x5F,0x40,0x29,0x1A,0x97,0x00,0x4B,0xDD,0xA8, +0xE4,0x00,0x00,0x4D,0x1F,0xD8,0x01,0x5F,0xDE,0x00,0x23,0x44,0x22,0x9F,0x02,0x5F, +0xD8,0x00,0x1B,0xD7,0x00,0x13,0xD7,0x01,0x23,0x44,0x26,0x9F,0xDE,0xE4,0x00,0x00, +0x0D,0x9F,0xDF,0x5F,0xDE,0x00,0x1B,0xD7,0xFF,0x9F,0x61,0x1E,0xF7,0x30,0x5F,0x7B, +0x00,0xD7,0x6C,0xFC,0x7E,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x8F,0x56,0xF7,0x08, +0xD2,0xE0,0x08,0x6A,0xC2,0xE0,0x10,0x01,0x9B,0x00,0xF3,0x57,0x0B,0x7E,0x9B,0xA0, +0xC2,0xE0,0x10,0x01,0x1E,0xDA,0xFE,0xEA,0x97,0x01,0x56,0x8B,0x78,0x8B,0x9D,0x98, +0x60,0x9A,0xA1,0xE4,0x00,0x01,0xBF,0x12,0xF9,0x00,0xD2,0xE1,0x06,0x99,0xD6,0xD7, +0x06,0x78,0x1D,0x17,0xFF,0x1D,0xB7,0x01,0x1D,0x39,0x02,0x5D,0x08,0x00,0x5D,0xAD, +0x00,0x0F,0xC9,0x02,0x23,0xC4,0xDE,0x13,0x79,0x01,0x43,0x7A,0xDB,0x5F,0x7B,0x00, +0x8D,0xBB,0x8D,0x1B,0x8E,0xFB,0x4D,0xAD,0x10,0x4D,0x08,0x10,0x8D,0xAA,0x8D,0x0A, +0x0F,0xAD,0x02,0x0F,0x88,0x02,0x4E,0xF7,0x10,0x5F,0xBC,0x15,0x8E,0xEA,0x4B,0x9D, +0xE0,0x0F,0x77,0x02,0x5F,0x9C,0x06,0xE4,0x00,0x00,0xCD,0x23,0xC9,0xA2,0x13,0x79, +0x01,0x43,0xBB,0xD3,0x5F,0xBD,0x00,0x43,0x8D,0xEC,0x4F,0x9C,0x10,0x8F,0x8A,0x43, +0x75,0xDD,0x0F,0xDC,0x02,0x43,0x7A,0xDB,0x5F,0x7B,0x00,0x8D,0xBB,0x4D,0xAD,0x10, +0x8D,0xAA,0x0F,0x8D,0x02,0x8F,0xDC,0x43,0x88,0xEC,0x4F,0x9C,0x10,0x8F,0x8A,0x8D, +0x1B,0x0D,0xBC,0x02,0x8F,0xB7,0x4D,0x08,0x10,0x8E,0xFB,0x8D,0x0A,0x4F,0xBD,0x10, +0x0F,0x88,0x02,0x8F,0xAA,0x8F,0x8D,0x4E,0xF7,0x10,0x5F,0xDC,0x15,0x8E,0xEA,0x4B, +0x9E,0xE0,0x0F,0x7D,0x02,0x0E,0xF7,0x02,0x5F,0x9C,0x06,0x8F,0x77,0x8B,0xB4,0xE4, +0x00,0x00,0x0F,0x23,0xC0,0x68,0xC3,0x60,0x7C,0xEC,0x20,0x00,0x4D,0x42,0xFB,0xE5, +0xD7,0xB7,0x00,0x68,0x4E,0xF5,0xC4,0x44,0x63,0xBD,0x5C,0x63,0x00,0x9F,0x01,0x1F, +0x39,0x30,0x5E,0xF8,0x00,0xD5,0x97,0xF9,0x15,0xE7,0xFF,0xCD,0xF4,0x1E,0xC1,0x68, +0x10,0x8B,0x00,0x88,0x76,0x98,0xA0,0x99,0xA0,0xE4,0x00,0x78,0x12,0x89,0x8D,0xC2, +0x80,0x10,0x01,0xE4,0x00,0x01,0x3F,0xCC,0x6C,0x00,0x30,0xEB,0x74,0x08,0xA3,0x42, +0xA3,0x74,0x57,0x7B,0x02,0x13,0x55,0x04,0x13,0x35,0x05,0x13,0x15,0x07,0x23,0x61, +0x54,0x88,0x9A,0x88,0xB9,0x88,0xD8,0x0F,0x01,0x00,0x0F,0x21,0x08,0x0F,0x41,0x04, +0x1C,0x61,0x52,0x98,0xE1,0xE7,0xFF,0xD2,0xE4,0x0F,0x01,0x02,0x0F,0x21,0x0A,0x0F, +0x41,0x06,0x20,0x61,0x14,0x1C,0x61,0x54,0x88,0x9A,0x88,0xB9,0x88,0xD8,0x98,0xE1, +0xE7,0xFF,0xD4,0x54,0x20,0x60,0xCC,0x0B,0x21,0x52,0x0B,0x01,0x54,0xCF,0x39,0x00, +0x07,0xCF,0x18,0x00,0x03,0x9A,0xEA,0x8F,0x19,0x43,0x18,0xB8,0x0F,0x15,0x17,0xE4, +0x00,0x00,0x47,0x8C,0x6E,0x88,0x9A,0x1C,0x63,0x16,0x88,0xB9,0x88,0xD8,0x98,0xE1, +0xE7,0xFF,0xD2,0x4E,0x20,0x60,0x3A,0x9A,0xE1,0x4E,0xF7,0x64,0x45,0xAD,0xBD,0x5D, +0xAD,0x00,0x88,0x76,0x10,0x8B,0x00,0x98,0xA1,0x9D,0x81,0xE4,0x00,0x76,0xCE,0x5D, +0x8C,0x00,0x12,0xEE,0x00,0xD6,0xEC,0xFB,0x15,0x88,0x6D,0xE7,0xFF,0xCC,0x70,0x9E, +0x01,0x0F,0x21,0x0E,0x5E,0x10,0x00,0xD7,0x30,0xD8,0x7D,0x88,0x71,0x10,0x8B,0x00, +0x98,0xA1,0xE4,0x00,0x76,0x80,0xED,0x21,0x00,0xFE,0xEE,0xC1,0x00,0xCA,0xEE,0xA1, +0x00,0xCE,0xEE,0x81,0x00,0xD2,0xEE,0x61,0x00,0xD6,0xEE,0x41,0x00,0xDA,0xEE,0x21, +0x00,0xDE,0xEE,0x01,0x00,0xE2,0xED,0xE1,0x00,0xE6,0xED,0xC1,0x00,0xEA,0xED,0xA1, +0x00,0xEE,0xED,0x81,0x00,0xF2,0xED,0x61,0x00,0xF6,0xED,0x41,0x00,0xFA,0xFC,0x21, +0x01,0x00,0x85,0x29,0xC2,0xE0,0x10,0x01,0x1C,0x21,0xA0,0xF3,0x37,0x06,0xA8,0x0D, +0x41,0x5C,0x9A,0xE0,0xE4,0x00,0x00,0x23,0x4F,0x17,0x10,0x1D,0x41,0x00,0x9E,0xE1, +0x8F,0x0A,0x0C,0x18,0x00,0x5F,0x17,0x00,0xD7,0x38,0xFF,0x85,0xC2,0xE0,0x10,0x01, +0xC3,0x60,0x10,0x01,0xEB,0x57,0x04,0x93,0x1D,0x19,0xFF,0x9A,0xE0,0xFF,0x7B,0x04, +0xC8,0xE4,0x00,0x00,0xFB,0x9B,0x80,0xD6,0xE8,0x00,0x4A,0x9F,0x01,0x5F,0x98,0x00, +0x9B,0x00,0x4F,0xB7,0x28,0x4F,0x9C,0x28,0xE4,0x00,0x00,0x5B,0x4F,0xD8,0x08,0x40, +0xDD,0xC4,0x40,0xBC,0xC4,0x1D,0x41,0x58,0x4C,0xC6,0x08,0x8F,0xCA,0x8C,0xDB,0x4C, +0xA5,0x08,0x08,0xC6,0x01,0x8C,0xBB,0x9F,0x01,0x08,0xA5,0x01,0x5F,0x18,0x00,0x40, +0xA6,0x2D,0x0C,0xBE,0xC1,0xD7,0x58,0xFE,0xBD,0x4F,0x97,0x10,0x1F,0xA1,0x58,0x9B, +0x00,0x8F,0x9D,0xE4,0x00,0x00,0x4B,0x4F,0xB8,0x08,0x1F,0xC1,0x58,0x8F,0xBE,0x0C, +0xBC,0xAA,0x0B,0xDD,0xC0,0x9F,0x01,0x4F,0xBE,0xFA,0x5F,0x18,0x00,0x47,0xDD,0xF6, +0x43,0xBE,0xED,0x8F,0xA5,0x0F,0xBC,0xA8,0xD7,0x58,0xFE,0xFD,0x9E,0xE1,0x5F,0x17, +0x00,0xD7,0x38,0xFC,0x25,0x0F,0x41,0x02,0x1F,0x61,0x04,0x9B,0x01,0x9A,0xE0,0xE4, +0x00,0x00,0x39,0x0F,0x9B,0x02,0xD7,0x5C,0x00,0x55,0x8B,0x9A,0xE4,0x00,0x00,0x0D, +0x8A,0xF8,0x9F,0x01,0x9F,0x64,0x5F,0x18,0x00,0x8B,0x5C,0xD7,0x38,0xFF,0x45,0x9F, +0x3F,0xD6,0xF9,0x00,0x76,0x1A,0xE3,0x00,0x18,0x04,0x00,0xE4,0x00,0x00,0x21,0xD7, +0x37,0x00,0x60,0x1A,0xE3,0x00,0x9E,0xE1,0x1A,0xE4,0x00,0x0D,0x41,0x5E,0x1C,0x21, +0x60,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF3,0xB7,0x06,0xA8,0xC2,0xE0,0x10,0x01,0xF3, +0xD7,0x04,0x88,0xC2,0xE0,0x10,0x01,0xC3,0x40,0x10,0x01,0xE9,0x17,0x04,0x93,0xC3, +0x20,0x10,0x01,0x9A,0xE0,0xFF,0x5A,0x04,0xC8,0xFF,0x39,0x06,0x48,0xE4,0x00,0x00, +0xAB,0x4C,0x78,0x08,0x4C,0x98,0x18,0x8C,0x7B,0x8C,0x9C,0x9F,0x01,0x08,0x84,0x01, +0x0C,0x83,0x01,0x5C,0x78,0x00,0xD7,0xC3,0xFF,0x5D,0x9B,0x00,0x4F,0x97,0x28,0x4C, +0x77,0x18,0xE4,0x00,0x00,0x4F,0x43,0x7C,0xC4,0x4C,0x98,0x11,0x4F,0x7B,0x08,0x8C, +0x83,0x8F,0x7A,0x4C,0x84,0x08,0x08,0xBB,0x01,0x8C,0x99,0x9F,0x01,0x08,0x84,0x01, +0x5F,0x18,0x00,0x40,0x85,0x25,0x0C,0x9B,0x01,0xD5,0x18,0xFE,0xED,0x9E,0xE1,0x5E, +0xF7,0x00,0xD6,0xFD,0x00,0xA2,0x4F,0x97,0x30,0x4F,0x77,0x20,0x8F,0x9A,0x8F,0x79, +0x9B,0x00,0xE7,0xFF,0xFF,0x63,0x85,0x29,0xC2,0xE0,0x10,0x01,0x5C,0x63,0x00,0x5C, +0x84,0x00,0xEB,0x97,0x04,0x93,0xC3,0x00,0x10,0x01,0x4F,0xA3,0x28,0xC3,0x20,0x10, +0x01,0x4F,0xC4,0x28,0x9A,0xE0,0xFF,0x18,0x04,0xC8,0xFF,0x39,0x06,0x48,0x4C,0x63, +0x18,0x4C,0x84,0x18,0xE4,0x00,0x00,0x83,0x4F,0x77,0x11,0x41,0x03,0xDC,0x4D,0x08, +0x08,0x8D,0x19,0x43,0x5D,0xBC,0x08,0xA8,0x01,0x4F,0x5A,0x08,0x8F,0x64,0x8F,0x58, +0x4F,0x7B,0x08,0x09,0x1A,0x01,0x8F,0x79,0x8D,0x05,0x0D,0x1A,0x01,0x43,0x5E,0xBC, +0x09,0x1B,0x01,0x4F,0x5A,0x08,0x9E,0xE1,0x8F,0x58,0x5E,0xF7,0x00,0x0B,0x7A,0x01, +0x8F,0x68,0x0F,0x7A,0x01,0xD7,0x97,0xFE,0x1D,0x85,0x29,0x20,0x60,0x2E,0xC2,0xE0, +0x10,0x01,0xEC,0x97,0x01,0x2C,0x85,0x29,0x20,0x60,0x4E,0xC2,0xE0,0x10,0x01,0xEC, +0x97,0x00,0xF4,0xC2,0xE0,0x10,0x01,0xEC,0xB7,0x01,0x28,0x85,0x29,0x20,0x60,0x5E, +0xC2,0xE0,0x10,0x01,0xEC,0x97,0x04,0x98,0xC2,0xE0,0x10,0x01,0xEC,0xB7,0x04,0x9C, +0xE4,0x00,0x00,0x5D,0x20,0x64,0x5E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x06,0xB4,0xC2, +0xE0,0x10,0x01,0xEC,0xB7,0x04,0xC4,0xE4,0x00,0x00,0x2F,0x20,0x68,0x4E,0xC2,0xE0, +0x10,0x01,0xEC,0x97,0x04,0xBC,0xC2,0xE0,0x10,0x01,0xEC,0xB7,0x04,0x8C,0x85,0x29, +0x20,0x68,0x2E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x04,0xB8,0x85,0x29,0x5C,0x84,0x04, +0x20,0x60,0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01,0x33,0xE4,0x00,0x00,0x3D,0x20, +0x64,0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01,0x15,0xE4,0x00,0x00,0x1F,0x20,0x68, +0x2E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01,0x39,0x85,0x29,0x5C,0x84,0x04,0x20,0x60, +0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x00,0xF9,0xE4,0x00,0x00,0x3D,0x20,0x64,0x3E, +0xC2,0xE0,0x10,0x01,0xEC,0x97,0x01,0x31,0xE4,0x00,0x00,0x1F,0x20,0x68,0x2E,0xC2, +0xE0,0x10,0x01,0xEC,0x97,0x01,0x11,0x85,0x29,0x5C,0x84,0x04,0x20,0x68,0x2E,0xC2, +0xE0,0x10,0x01,0xEC,0x97,0x01,0x13,0x85,0x29,0x1C,0x21,0xC8,0x0D,0x21,0x34,0x0D, +0x41,0x30,0x0D,0x61,0x2C,0x0D,0x81,0x28,0x0D,0xA1,0x24,0x0D,0xC1,0x20,0x0D,0xE1, +0x1C,0x0E,0x01,0x18,0x0E,0x21,0x14,0x0E,0x41,0x10,0x0E,0x61,0x0C,0x0E,0x81,0x08, +0x0E,0xA1,0x04,0x0E,0xC1,0x00,0x20,0x65,0x70,0x20,0x60,0x4C,0xD0,0x62,0x04,0x42, +0x99,0xC0,0x89,0xEE,0xD0,0x63,0x06,0x66,0xE4,0x00,0x01,0x71,0xC2,0xE0,0x10,0x01, +0xEE,0xD7,0x00,0xF6,0xC2,0xE0,0x10,0x01,0xEE,0xB7,0x01,0x2A,0xC2,0xE0,0x10,0x01, +0xEE,0x97,0x04,0x9A,0xC2,0xE0,0x10,0x01,0xEE,0x77,0x04,0x9E,0xC2,0xE0,0x10,0x01, +0xE9,0xF7,0x01,0x33,0xC2,0xE0,0x10,0x01,0x9A,0x00,0xE9,0xD7,0x00,0xF9,0x99,0xA0, +0xC2,0xE0,0x10,0x01,0x9A,0x21,0xED,0x77,0x01,0x2E,0x9A,0x45,0x89,0x90,0xE4,0x00, +0x00,0xD9,0xC2,0xE0,0x10,0x01,0xEE,0x97,0x06,0xB6,0xC2,0xE0,0x10,0x01,0xEE,0x77, +0x04,0xC6,0xC2,0xE0,0x10,0x01,0x99,0xA0,0xE9,0xF7,0x01,0x15,0x9A,0x00,0xC2,0xE0, +0x10,0x01,0x8A,0x2D,0xE9,0xD7,0x01,0x31,0x9A,0x40,0x99,0x61,0x89,0x90,0x9A,0xA0, +0xE4,0x00,0x00,0x71,0xC2,0xE0,0x10,0x01,0xEE,0x97,0x04,0xBE,0xC2,0xE0,0x10,0x01, +0xEE,0x17,0x04,0xBA,0xC2,0xE0,0x10,0x01,0xE9,0xF7,0x01,0x39,0xC2,0xE0,0x10,0x01, +0x99,0x81,0xE9,0xD7,0x01,0x11,0x9A,0x21,0xC2,0xE0,0x10,0x01,0x9A,0x40,0xE9,0xB7, +0x01,0x13,0x99,0x61,0x9A,0x60,0x8A,0xAC,0x9A,0xC1,0x99,0x41,0xE4,0x00,0x00,0x55, +0xC2,0xE0,0x10,0x01,0xE9,0xF7,0x01,0x33,0xC2,0xE0,0x10,0x01,0xE9,0xD7,0x00,0xF9, +0x99,0xA0,0x9A,0x40,0x9A,0x00,0x9A,0x80,0x9A,0xA0,0x8A,0x2D,0x89,0x72,0x8A,0x70, +0x89,0x94,0x8A,0xD5,0x99,0x40,0x88,0x6A,0xE4,0x00,0xC6,0x74,0x88,0x6A,0xE4,0x00, +0xC6,0xF6,0x88,0x76,0xE4,0x00,0xD6,0xE8,0x88,0x75,0xE4,0x00,0xD7,0x42,0x88,0x74, +0xE4,0x00,0xC8,0x56,0x88,0x73,0xE4,0x00,0xC8,0xA2,0x88,0x72,0xE4,0x00,0xC7,0xA4, +0x88,0x71,0xE4,0x00,0xC7,0xD0,0x88,0x6A,0xE4,0x00,0xD8,0x64,0x88,0x70,0xE4,0x00, +0xD8,0xBE,0x98,0x60,0xE4,0x00,0xD9,0x0C,0x98,0x60,0xE4,0x00,0xD9,0x5A,0x98,0x60, +0xE4,0x00,0xD9,0xA8,0x98,0x60,0xE4,0x00,0xD9,0xF6,0x88,0x6F,0xE4,0x00,0xC8,0x9C, +0x88,0x6E,0xE4,0x00,0xC8,0xCA,0x88,0x6D,0xE4,0x00,0xC8,0xFE,0x88,0x6C,0xE4,0x00, +0xC9,0x18,0x88,0x6B,0x0E,0xC1,0x02,0x0E,0xA1,0x06,0x0E,0x81,0x0A,0x0E,0x61,0x0E, +0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D,0xE1,0x1E,0x0D,0xC1,0x22,0x0D, +0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32,0x0D,0x21,0x36,0x1C,0x21, +0x38,0xE4,0x00,0xC6,0x61,0xC2,0xE0,0x10,0x01,0xF0,0x77,0x04,0xB4,0x85,0x29,0xC2, +0xE0,0x10,0x01,0xF8,0x77,0x04,0xB4,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x04, +0xB4,0x9F,0x01,0xFB,0x17,0x04,0xB4,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF0,0x77,0x06, +0xA9,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF8,0x77,0x06,0xA9,0x85,0x29,0xC2,0xE0,0x10, +0x01,0xF3,0x17,0x06,0xA9,0x9F,0x01,0xFB,0x17,0x06,0xA9,0x85,0x29,0xC2,0xE0,0x10, +0x01,0xEC,0x77,0x01,0x0C,0x85,0x29,0xC3,0x40,0x10,0x01,0xFF,0x5A,0x00,0xFC,0x0C, +0x1A,0x00,0x9A,0xE1,0xC3,0x20,0x10,0x01,0xFF,0x39,0x01,0x18,0x0E,0xF9,0x00,0xC3, +0x00,0x10,0x01,0xFF,0x18,0x04,0xA0,0x0C,0x18,0x00,0x0C,0x1A,0x04,0x0E,0xF9,0x04, +0x0C,0x18,0x04,0x0C,0x1A,0x08,0x0E,0xF9,0x08,0x0C,0x18,0x08,0x0C,0x1A,0x0C,0x0E, +0xF9,0x0C,0x0C,0x18,0x0C,0xC3,0x00,0x10,0x01,0xEE,0xF8,0x01,0x34,0x85,0x29,0x9C, +0x38,0x0D,0x41,0x04,0xC3,0x00,0x10,0x01,0xC2,0xE0,0x10,0x01,0x5C,0xA5,0x00,0x5C, +0xC6,0x00,0xF3,0x38,0x06,0xAA,0xFE,0xF7,0x01,0x34,0xD7,0x25,0x00,0x6A,0xF8,0xB8, +0x06,0xAA,0x9B,0x01,0x0F,0x17,0x00,0xC3,0x80,0x10,0x01,0xC3,0x00,0x10,0x01,0x0F, +0x37,0x02,0xFF,0x9C,0x01,0x18,0xFF,0x18,0x00,0xFC,0x23,0x24,0x9A,0x0B,0xA3,0x00, +0x4F,0x46,0x18,0x43,0x78,0xD4,0x0F,0xBB,0x00,0x0B,0xA4,0x00,0x0F,0xBB,0x04,0x8F, +0x5C,0x0F,0x3A,0x00,0x0F,0x3A,0x04,0x40,0xA5,0x35,0x20,0xA4,0x1A,0x0C,0x17,0x00, +0x4E,0xE6,0x18,0x8E,0xF8,0x0C,0xF7,0x02,0x08,0xA3,0x00,0x0D,0x17,0x02,0x0F,0xB7, +0x06,0x0F,0x37,0x06,0x42,0xE7,0x2D,0x4C,0xF7,0xFA,0x46,0xE7,0xBE,0x0B,0x44,0x00, +0x40,0xF7,0x3D,0x43,0x39,0xD5,0x4E,0xF9,0xFA,0x47,0x37,0xCE,0x42,0xF9,0xBD,0x41, +0x08,0x2D,0x43,0xBD,0xD5,0x4F,0xC8,0xFA,0x4F,0x7D,0xFA,0x45,0x1E,0x46,0x47,0xBB, +0xEE,0x43,0xC8,0xF5,0x43,0x7D,0xDD,0x43,0xC7,0xF3,0x43,0x7B,0xBB,0x9B,0x21,0x8F, +0x7E,0x9A,0xE3,0xE4,0x00,0x00,0x11,0x8F,0x37,0x9E,0xE2,0xD7,0x3B,0xFF,0xE1,0xC3, +0x20,0x10,0x01,0x4E,0xF7,0x09,0x53,0x40,0x1E,0x9E,0xFF,0x5E,0xF7,0x06,0xEE,0xF9, +0x06,0xB8,0xC3,0x20,0x10,0x01,0x42,0xF7,0xD1,0xEF,0x39,0x01,0x0E,0x42,0xF7,0xBB, +0x43,0x39,0xBD,0xC2,0xE0,0x10,0x01,0x5F,0x23,0x11,0x20,0x00,0x1B,0x53,0x20,0x19, +0xEF,0x37,0x04,0xC0,0xC3,0xA0,0x10,0x01,0xEC,0xB7,0x04,0xC2,0x4C,0xC6,0x08,0x9A, +0xE0,0xFF,0xBD,0x04,0xA0,0xCB,0x40,0x10,0x00,0x43,0x26,0xBC,0x4F,0x39,0x10,0x43, +0x7C,0xCC,0xC9,0x40,0xA0,0x00,0x0D,0x1B,0x02,0x0F,0xDB,0x02,0x43,0x68,0x53,0xCF, +0xDE,0x00,0x0A,0x8F,0xC5,0x43,0xDB,0xF0,0x43,0x7D,0xCC,0x0F,0xDB,0x00,0x5F,0xD7, +0x00,0x23,0xC0,0x92,0x43,0xD8,0xCC,0x0D,0x1E,0x02,0x0F,0x7B,0x02,0x0F,0x3E,0x02, +0x0B,0xC3,0x00,0x43,0x3E,0xCD,0x43,0x3B,0xCB,0x43,0x39,0xD0,0x8F,0x28,0x0F,0x23, +0x01,0xE4,0x00,0x00,0x43,0x43,0xD8,0xCC,0x0D,0x1E,0x02,0x0F,0x7B,0x02,0x0F,0x3E, +0x02,0x0B,0xC4,0x00,0x43,0x3E,0xCD,0x43,0x3B,0xCB,0x43,0x39,0xD0,0x8F,0x28,0x0F, +0x24,0x01,0x43,0x66,0xBC,0x4F,0x7B,0x10,0x43,0xD8,0xDC,0x0F,0x3E,0x00,0x43,0x3C, +0xDC,0x8F,0x7D,0x0F,0xD9,0x02,0x0D,0x1B,0x02,0x0F,0x79,0x02,0x43,0x68,0xDB,0x43, +0x7B,0xD0,0x43,0x7E,0xDD,0x0F,0x79,0x00,0x9E,0xE1,0xD2,0xE2,0xFB,0x7E,0x0D,0x41, +0x06,0x9C,0x28,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x04,0x95,0xC2,0xE0,0x10, +0x01,0x5C,0x63,0x04,0xEC,0x77,0x04,0x93,0x56,0xE3,0x03,0x5E,0xE0,0x09,0x4A,0xE1, +0x01,0x4C,0x63,0x11,0x8C,0x77,0xC2,0xE0,0x10,0x01,0xF8,0x77,0x04,0x88,0xC2,0xE0, +0x10,0x01,0xF8,0xB7,0x06,0xA8,0xC2,0xE0,0x10,0x01,0xEC,0xD7,0x04,0xB0,0xC2,0xE0, +0x10,0x01,0xEC,0xF7,0x06,0xAD,0xC2,0xE0,0x10,0x01,0x0B,0x01,0x01,0xED,0x17,0x06, +0xB1,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x04,0x91,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF8, +0x17,0x06,0xAE,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x06,0xAE,0xC2,0xE0,0x10, +0x01,0xF2,0xF7,0x06,0xA8,0x9E,0xFF,0x5E,0xF8,0x15,0x48,0x61,0x01,0x85,0x29,0x9C, +0x38,0x0D,0x21,0x04,0xE7,0xFF,0xFF,0xC2,0x9A,0xE0,0x20,0x60,0x4E,0xC2,0xE0,0x10, +0x01,0xF3,0x17,0x06,0xAE,0x9F,0x01,0xFB,0x17,0x06,0xAE,0x9A,0xE1,0x88,0x77,0x0D, +0x21,0x06,0x9C,0x28,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x04,0x93,0xC2,0xE0, +0x10,0x01,0xC3,0x20,0x10,0x01,0xF3,0x57,0x06,0xAE,0xFF,0x39,0x04,0xC8,0x9A,0xE0, +0x4F,0x5A,0x28,0xE4,0x00,0x00,0x39,0x4F,0x77,0x08,0x8F,0x63,0x0B,0x9B,0x00,0x43, +0x7A,0xBC,0x9E,0xE1,0x4F,0x7B,0x08,0x5E,0xF7,0x00,0x8F,0x79,0x0F,0x9B,0x01,0xD7, +0x17,0xFF,0x45,0x85,0x29,0x9C,0x30,0x0D,0x21,0x0C,0x0D,0x41,0x08,0x18,0x01,0x06, +0x89,0x43,0x18,0x01,0x07,0xE7,0xFF,0xF2,0x5C,0x1C,0x61,0x06,0x1C,0x81,0x07,0xE7, +0xFF,0xF0,0x2A,0x10,0x61,0x06,0x10,0x81,0x07,0xE7,0xFF,0xF3,0x5E,0xC2,0xE0,0x10, +0x01,0x13,0x41,0x06,0xEB,0x37,0x04,0x93,0x13,0x61,0x07,0xC3,0x00,0x10,0x01,0x9A, +0xE0,0xFF,0x18,0x04,0xC8,0x4F,0x5A,0x28,0x4F,0x7B,0x28,0x9B,0x82,0xE4,0x00,0x00, +0x59,0x43,0xDA,0xBC,0x4F,0xDE,0x08,0x8F,0xD8,0x4F,0xB7,0x08,0x09,0x1E,0x00,0x8F, +0xAA,0x43,0xDB,0xBC,0x9E,0xE1,0x4F,0xDE,0x08,0x5E,0xF7,0x00,0x8F,0xD8,0x0B,0xDE, +0x00,0x8F,0xC8,0x43,0xDE,0xE0,0x0F,0xDD,0x01,0xD7,0x37,0xFE,0xC5,0x0D,0x41,0x0A, +0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0x1C,0x21,0xC8,0x0D,0x41,0x30,0x0D,0x61, +0x2C,0x0D,0xA1,0x24,0x0D,0xC1,0x20,0x5D,0xA5,0x04,0x0D,0x21,0x34,0x50,0xA0,0x20, +0x0D,0x81,0x28,0x89,0x43,0x89,0x64,0x5D,0xC6,0x04,0x88,0x61,0xC0,0x98,0x00,0x21, +0xFC,0x84,0xB4,0x94,0x9C,0x86,0xE4,0x00,0x0B,0xA6,0xC2,0xE0,0x10,0x01,0xC3,0x00, +0x10,0x01,0xEB,0x77,0x06,0xAD,0xC2,0xE0,0x10,0x01,0xF3,0x58,0x04,0x88,0xEB,0x97, +0x06,0xB1,0x9F,0x61,0x9F,0x81,0x5F,0x7B,0x04,0x5F,0x9C,0x04,0xCC,0xAD,0x00,0x18, +0xC2,0xE0,0x10,0x01,0x43,0xDB,0xE4,0xEA,0xF7,0x04,0x91,0x4F,0xDE,0x18,0x0B,0x01, +0x01,0x8F,0xD7,0x43,0xDE,0xD3,0x43,0xC5,0xF0,0x5F,0xDE,0x04,0xD7,0x1E,0x00,0x69, +0x0F,0x0A,0x01,0x9B,0x20,0xE4,0x00,0x00,0x4D,0x9B,0x00,0x89,0x81,0x8B,0x38,0x4F, +0xB8,0x08,0x5D,0x18,0x00,0x8F,0xAC,0x0B,0xBD,0x01,0xD7,0xBE,0x00,0x8D,0x0F,0xAA, +0x01,0x9F,0x01,0x8B,0x28,0x5F,0x02,0x09,0x23,0xFF,0x9D,0x43,0x1C,0xDC,0x0B,0x6A, +0x01,0x4F,0x18,0x18,0x43,0x5B,0xD3,0xCC,0xCE,0x00,0x18,0x43,0x78,0xBC,0x43,0x7A, +0xDB,0xD4,0xDB,0x01,0x11,0xE4,0x00,0x00,0x2F,0x43,0x77,0xC4,0x43,0x7B,0xD3,0xD7, +0x66,0x00,0x41,0xD4,0xBB,0x00,0x85,0x9E,0xE1,0x5E,0xF7,0x04,0xC2,0xE0,0x7F,0xEA, +0x23,0xFF,0xA5,0x0E,0xEB,0x01,0x0D,0xC1,0x22,0x0A,0xEA,0x01,0x0D,0xA1,0x26,0x4E, +0xF7,0x40,0x0D,0x81,0x2A,0x47,0x39,0xBD,0x0D,0x61,0x2E,0x0F,0x2A,0x01,0x0D,0x21, +0x36,0x0D,0x41,0x32,0x1C,0x21,0x38,0x85,0x29,0x9C,0x30,0x5C,0x63,0x00,0x0D,0x41, +0x08,0x0D,0x61,0x04,0x4C,0x63,0x08,0xC2,0xF8,0x00,0x21,0x0D,0x21,0x0C,0xFE,0xF7, +0xB6,0xFA,0x99,0x40,0x8E,0xE3,0x09,0x77,0x01,0x88,0x6A,0x88,0x8B,0x9D,0x41,0xE4, +0x00,0xC0,0x92,0x5D,0x4A,0x00,0xD1,0x44,0xFF,0x9E,0x0D,0x61,0x06,0x0D,0x41,0x0A, +0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x06,0xDD, +0xC2,0xE0,0x10,0x01,0xF8,0x17,0x06,0xF0,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x06,0xD8, +0xC2,0xE0,0x10,0x01,0xF8,0x17,0x06,0xE4,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0xF3, +0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0xE9,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0xF8, +0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x06,0xDD,0xC2,0xE0,0x10,0x01,0xF8,0x17, +0x06,0xD8,0xC2,0xE0,0x10,0x01,0xF0,0x77,0x06,0xF0,0xC2,0xE0,0x10,0x01,0xF8,0x77, +0x06,0xE4,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0xF3,0xC2,0xE0,0x10,0x01,0xEC,0x17, +0x06,0xE9,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0xF8,0x24,0x6C,0x1F,0xE7,0xFF,0xFE, +0x99,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0x5C,0x63,0x04,0xEC,0x77, +0x06,0xE9,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x06,0xF8,0xF3,0x78,0x06,0xD8,0xC3,0x40, +0x10,0x01,0xC3,0x20,0x10,0x01,0xC3,0x00,0x10,0x01,0xFF,0x5A,0x06,0xF0,0xFF,0x39, +0x06,0xE4,0x23,0x60,0x2C,0xEB,0x78,0x06,0xF3,0xD7,0x63,0x00,0xA1,0x13,0x5A,0x00, +0xEC,0x78,0x06,0xF3,0x1B,0x59,0x00,0x9B,0x01,0xEF,0x17,0x06,0xF8,0x85,0x29,0xC2, +0xE0,0x10,0x01,0xEB,0x17,0x06,0xE9,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x06,0xDD,0x5E, +0xF8,0x1F,0x48,0x61,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x06,0xD8,0x5E, +0xE0,0x5B,0x48,0x61,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x06,0xD8,0x27, +0x08,0x7B,0x9F,0x01,0xFB,0x17,0x06,0xD8,0xC2,0xE0,0x10,0x01,0xF0,0x77,0x06,0xF0, +0x9C,0x61,0x54,0x63,0x03,0xF8,0x77,0x06,0xF0,0xE7,0xFF,0xFD,0x61,0x85,0x29,0xC2, +0xE0,0x10,0x01,0xF8,0x77,0x01,0x3A,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x06,0xE0,0xC2, +0xE0,0x10,0x01,0xEC,0xB7,0x06,0xD4,0xC2,0xE0,0x10,0x01,0xEC,0xD7,0x06,0xEC,0x85, +0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xEF,0x18,0x06,0xEE,0x5C,0x63,0x04, +0xEC,0x77,0x06,0xDB,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x06,0xF4,0x4E,0xF7,0x08,0x8E, +0xF8,0xC3,0x00,0x10,0x01,0xEF,0x18,0x06,0xD6,0x0A,0xF7,0x01,0xCB,0x20,0xFF,0xFF, +0x4E,0xF7,0x08,0x8E,0xF8,0x0B,0x17,0x01,0xD7,0x19,0x00,0x5E,0x0C,0x77,0x01,0xE4, +0x00,0x00,0x4B,0xC3,0x20,0x10,0x01,0xEB,0x39,0x08,0xE7,0xC7,0x39,0x20,0x00,0x23, +0x20,0x54,0xCF,0x18,0x00,0x07,0xCC,0x63,0x00,0x03,0x9B,0x2A,0x8F,0x03,0x43,0x18, +0xC8,0x0F,0x17,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0x9C,0x38,0xC3,0x20,0x10,0x01, +0x0E,0xC1,0x04,0xF3,0x17,0x01,0x3A,0x4E,0xF8,0x08,0x9E,0xE8,0xC6,0xF7,0x03,0xF8, +0x1E,0xC1,0x08,0x88,0x81,0xEF,0xB9,0x06,0xD6,0x40,0x21,0xBD,0x9B,0x20,0x8A,0xE1, +0x8B,0x59,0xE4,0x00,0x00,0x43,0x4F,0x99,0x08,0x43,0x7D,0xE4,0x8F,0x97,0x0B,0x7B, +0x01,0x0F,0x7C,0x01,0xCB,0x80,0xFF,0xFF,0xD7,0x7C,0x00,0x4E,0x9F,0x41,0x5F,0x5A, +0x00,0x9F,0x21,0x5F,0x79,0x00,0xD7,0x1B,0xFF,0x05,0xC3,0x60,0x10,0x01,0xFF,0x7B, +0x06,0xE6,0x0C,0x1B,0x01,0x9B,0x20,0x23,0x40,0xE0,0xE4,0x00,0x00,0x8F,0x1F,0x99, +0x01,0x4F,0x39,0x08,0x5F,0x9C,0x00,0x8F,0x37,0x8B,0x5C,0xE4,0x00,0x00,0x3D,0x4F, +0xBA,0x08,0x0B,0xD9,0x01,0x8F,0xB7,0x09,0x1D,0x01,0xD7,0xC8,0x00,0x51,0x0D,0x19, +0x01,0x0F,0xDD,0x01,0x9F,0x41,0x5F,0x5A,0x00,0xD7,0x58,0xFF,0x36,0x8B,0x3C,0xD7, +0x38,0xFE,0x7E,0x0B,0x17,0x01,0x0A,0xF7,0x03,0x8E,0xF8,0x4E,0xF7,0x0A,0x0E,0xFB, +0x01,0x08,0x7B,0x01,0x88,0x24,0x0E,0xC1,0x06,0x9C,0x28,0x85,0x29,0x5C,0x63,0x04, +0xC3,0x00,0x10,0x01,0xEF,0x18,0x06,0xEE,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x06,0xF4, +0x4E,0xF7,0x08,0x8E,0xF8,0xC3,0x00,0x10,0x01,0x0A,0xF7,0x01,0xEF,0x18,0x06,0xD6, +0x4E,0xF7,0x08,0x8E,0xF8,0x0A,0xF7,0x01,0x5E,0xE3,0x1F,0x48,0x61,0x01,0x85,0x29, +0x5C,0x63,0x04,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x06,0xDB,0x5E,0xE3,0x1F,0x48,0x61, +0x01,0x85,0x29,0x1C,0x21,0xE0,0x0D,0x61,0x14,0x0E,0xC1,0x04,0x0D,0x21,0x1C,0x0D, +0x41,0x18,0x0D,0x81,0x10,0x0D,0xA1,0x0C,0x0D,0xC1,0x08,0xC3,0x20,0x10,0x01,0xC2, +0xE0,0x10,0x01,0xF3,0x59,0x06,0xF4,0xF2,0xF7,0x01,0x3A,0x9F,0x41,0x5F,0x5A,0x00, +0x43,0x1A,0xB9,0x43,0x18,0xBB,0x43,0x1A,0xC5,0x5F,0x18,0x00,0xFB,0x19,0x06,0xF4, +0x1E,0xC1,0x20,0x89,0x61,0xD3,0x00,0x04,0xA6,0x4F,0x17,0x08,0x9F,0x08,0xC7,0x18, +0x03,0xF8,0x89,0x81,0x40,0x21,0xC5,0xC3,0x00,0x10,0x01,0x8B,0x61,0xEF,0x58,0x06, +0xD6,0x9B,0x00,0xE4,0x00,0x00,0x29,0x4F,0x38,0x08,0x9F,0x01,0x43,0x9B,0xCC,0x8F, +0x3A,0x0B,0x39,0x01,0x0F,0x3C,0x01,0x5F,0x38,0x00,0xD6,0xF9,0xFF,0x6D,0xC3,0x00, +0x10,0x01,0xEF,0x98,0x06,0xEE,0x9B,0x00,0x8B,0x3C,0xE4,0x00,0x00,0x93,0x1F,0xB8, +0x01,0x4F,0x18,0x08,0x5F,0xBD,0x00,0x8F,0x1B,0x8B,0x5D,0xE4,0x00,0x00,0x61,0x4F, +0xDA,0x08,0x09,0x58,0x01,0x41,0x1B,0xF4,0x08,0x68,0x01,0xD5,0x43,0x00,0xD9,0x0C, +0x78,0x01,0x0D,0x48,0x01,0x8F,0xDC,0x09,0x19,0x01,0x09,0x5E,0x01,0x0D,0x59,0x01, +0x55,0x08,0xFF,0x0D,0x1E,0x01,0x9F,0x41,0x5F,0x5A,0x00,0xD7,0x57,0xFE,0xA6,0x9F, +0x22,0x8B,0x1D,0xD7,0x17,0xFD,0xDE,0x88,0x2C,0x99,0x40,0xC1,0x80,0x10,0x01,0xC1, +0xA0,0x10,0x01,0xC1,0xC0,0x10,0x01,0xEF,0x0D,0x06,0xEE,0xF2,0xEE,0x06,0xF4,0x4E, +0xF7,0x08,0x8E,0xF8,0xEF,0x0C,0x06,0xE2,0x0A,0xF7,0x01,0x4E,0xF7,0x08,0x8E,0xF8, +0x88,0x6A,0x08,0x97,0x01,0x9D,0x41,0xE4,0x00,0xB9,0x22,0x5D,0x4A,0x00,0xD1,0x44, +0xFE,0xCE,0x88,0x2B,0x0E,0xC1,0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E,0x0D,0x81,0x12, +0x0D,0x61,0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20,0x85,0x29,0x1C,0x21, +0xE8,0xC2,0xE0,0x10,0x01,0x0D,0x41,0x10,0x0D,0x61,0x0C,0x0D,0x81,0x08,0x0D,0xA1, +0x04,0x0D,0x21,0x14,0xF8,0x17,0x06,0xF4,0x99,0x40,0xC1,0x60,0x10,0x01,0xC1,0x80, +0x10,0x01,0x89,0xB7,0xEF,0x0C,0x06,0xEE,0xF2,0xED,0x06,0xF4,0x4E,0xF7,0x08,0x8E, +0xF8,0xEF,0x0B,0x06,0xE2,0x0A,0xF7,0x01,0x4E,0xF7,0x08,0x8E,0xF8,0x88,0x6A,0x08, +0x97,0x01,0x9D,0x41,0xE4,0x00,0xB8,0x48,0x5D,0x4A,0x00,0xD1,0x44,0xFE,0xCE,0xC2, +0xE0,0x10,0x01,0xF3,0x37,0x01,0x3A,0xC2,0xE0,0x10,0x01,0x9B,0x5F,0xEF,0x17,0x06, +0xD6,0x9A,0xE0,0xE4,0x00,0x00,0x1D,0x0F,0x58,0x01,0x9E,0xE1,0x9F,0x02,0x5E,0xF7, +0x00,0xD6,0xF9,0xFF,0xB6,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41, +0x12,0x0D,0x21,0x16,0x1C,0x21,0x18,0x85,0x29,0x8B,0x03,0x56,0xE3,0x03,0x22,0xE0, +0x98,0x9B,0x04,0x42,0xF8,0xBD,0x5F,0x44,0x00,0x5E,0xE5,0x17,0x4B,0x37,0x28,0x9A, +0xE0,0xE4,0x00,0x00,0x13,0x1B,0x58,0x00,0x9E,0xE1,0x43,0x03,0xBC,0xD6,0xF9,0xFF, +0xC6,0x40,0xA5,0xBD,0x4E,0xE4,0x80,0x4F,0x64,0xC0,0x47,0x7B,0xBD,0x4E,0xE4,0x40, +0x47,0x7B,0x25,0x4F,0x45,0x11,0x47,0x7B,0xBD,0x9A,0xE0,0xE4,0x00,0x00,0x17,0x8F, +0x38,0x9E,0xE1,0x0F,0x79,0x00,0x4F,0x37,0x10,0xD6,0xFA,0xFF,0xB6,0x8F,0x19,0x9A, +0xE0,0x54,0xA5,0x03,0x5C,0x84,0x00,0xE4,0x00,0x00,0x19,0x43,0x37,0xC4,0x9E,0xE1, +0x18,0x99,0x00,0xD4,0xB7,0xFF,0xC5,0x85,0x29,0x46,0xE4,0x1D,0x56,0xF7,0x03,0x22, +0xE0,0x82,0x9A,0xFC,0x47,0x45,0xBC,0x9A,0xE0,0xE4,0x00,0x00,0x51,0x43,0x03,0xBC, +0x43,0x24,0xBC,0x9E,0xE1,0x13,0x39,0x00,0x1B,0x38,0x00,0xE4,0x00,0x00,0x0D,0x9A, +0xE0,0xD6,0xE5,0xFF,0x66,0xE4,0x00,0x00,0x63,0x0F,0x39,0x02,0x9E,0xE4,0x0F,0x38, +0x00,0x43,0x03,0xBC,0x43,0x24,0xBC,0xD6,0xFA,0xFF,0x96,0x9A,0xE0,0x54,0xA5,0x03, +0xE4,0x00,0x00,0x25,0x43,0x57,0xC4,0x43,0x77,0xCC,0x9E,0xE1,0x13,0x7B,0x00,0x1B, +0x7A,0x00,0xD4,0xB7,0xFF,0x95,0x85,0x29,0x1C,0x21,0xE0,0x0D,0x21,0x1C,0x0D,0x41, +0x18,0x0D,0x61,0x14,0x0D,0x81,0x10,0x0D,0xA1,0x0C,0x0D,0xC1,0x08,0x0D,0xE1,0x04, +0x0E,0x01,0x00,0xE4,0x00,0x62,0x70,0xC1,0x60,0x10,0x01,0xC0,0x60,0x00,0x21,0xFD, +0x4B,0x00,0xCC,0xFC,0x63,0xB0,0xE4,0xC0,0x80,0x10,0x01,0xC0,0xA0,0x10,0x01,0xFC, +0x84,0x00,0x00,0xFC,0xA5,0x01,0xD8,0x40,0xA5,0x25,0xE4,0x00,0x5D,0x46,0x0C,0x0A, +0x01,0x0C,0x0A,0x03,0x0C,0x0A,0x05,0x0C,0x0A,0x08,0xC2,0xE0,0x10,0x01,0xEC,0x17, +0x00,0xBB,0x0C,0x0A,0x0C,0x9A,0xEA,0xC1,0xA0,0x10,0x01,0x0E,0xEA,0x11,0xEC,0x0D, +0x07,0x00,0x50,0x60,0x26,0xE4,0x00,0x1F,0x86,0xC8,0x80,0xE1,0x00,0x98,0x60,0xE4, +0x00,0x2A,0xD6,0x98,0x63,0xE4,0x00,0x29,0xF2,0xE4,0x00,0x03,0x54,0xC2,0xE0,0x10, +0x01,0x9B,0x3C,0xF3,0x17,0x08,0x87,0x47,0x18,0xCC,0xFC,0x60,0x0B,0xB8,0xFB,0x17, +0x08,0x87,0x04,0x80,0x5B,0xC8,0x84,0x8D,0x80,0xE4,0x00,0x2A,0x26,0x98,0x61,0xC1, +0x80,0x10,0x01,0xE4,0x00,0x2A,0x1A,0x99,0xC1,0xC1,0x60,0x10,0x01,0xC1,0xE0,0x10, +0x01,0xC2,0x00,0x10,0x01,0xE4,0x00,0x29,0xE6,0x0E,0xEA,0x0E,0x22,0xE0,0x2C,0xD2, +0xE1,0x0A,0x4E,0xE4,0x00,0x00,0xC5,0xE4,0x00,0x5C,0x34,0xE4,0x00,0x29,0xFA,0x0C, +0x6A,0x13,0xE4,0x00,0x29,0xEC,0x0C,0x6A,0x17,0xE4,0x00,0x29,0xDE,0x0C,0x6A,0x1B, +0xE4,0x00,0x29,0xD0,0x0C,0x6A,0x19,0xEA,0xEC,0x06,0xFF,0xC6,0xF7,0xFF,0xDF,0xEE, +0xEC,0x06,0xFF,0xEA,0xEC,0x06,0xFF,0xC6,0xF7,0xFF,0x7F,0xEE,0xEC,0x06,0xFF,0x0D, +0xCA,0x0C,0xEA,0xEB,0x08,0xE7,0x52,0xF7,0x80,0xEC,0x0D,0x07,0x00,0xEE,0xEB,0x08, +0xE7,0x98,0x61,0xE4,0x00,0x1A,0x06,0x98,0x60,0xE4,0x00,0x30,0x3A,0xE4,0x00,0x2B, +0x32,0xE4,0x00,0x01,0xCF,0xEE,0xED,0x07,0x02,0x22,0xE0,0x2C,0xD2,0xE1,0x06,0xE6, +0xE4,0x00,0x00,0x9B,0x98,0x61,0xE4,0x00,0x1A,0x3E,0xD0,0x61,0x06,0x76,0xE4,0x00, +0x1C,0x90,0x20,0x64,0xAA,0xE4,0x00,0x1C,0x6E,0xEA,0xEB,0x08,0xE7,0xFF,0x00,0xFF, +0x7F,0x46,0xF7,0xC4,0xEC,0x0F,0x08,0xC0,0xEE,0xEB,0x08,0xE7,0xED,0xCD,0x07,0x00, +0xE4,0x00,0x64,0x7E,0xE4,0x00,0x64,0x1E,0xE4,0x00,0x01,0x41,0xE4,0x00,0x1C,0x70, +0x20,0x67,0x54,0x98,0x61,0xE4,0x00,0x1B,0xD0,0xE4,0x00,0x01,0x1F,0x0A,0xEA,0x01, +0xC6,0xF7,0x01,0x00,0xD2,0xE0,0x04,0x22,0xE4,0x00,0x28,0x80,0x0A,0xEA,0x13,0x0B, +0x0A,0x11,0x40,0x63,0xBD,0x5E,0xE3,0x04,0xD7,0x17,0x03,0x85,0xE4,0x00,0x28,0x58, +0x0C,0x6A,0x13,0x0A,0xEA,0x01,0xC6,0xF7,0xFE,0xFF,0x0E,0xEA,0x01,0xE4,0x00,0x5D, +0xA4,0xE4,0x00,0x64,0x88,0xE4,0x00,0x63,0x7C,0xEE,0xEF,0x08,0xC2,0xEE,0xF0,0x08, +0xEC,0xE4,0x00,0x5E,0x90,0x98,0x61,0xE4,0x00,0x8A,0x72,0xE4,0x00,0x5F,0x08,0x98, +0x61,0xE4,0x00,0x5F,0x48,0xE4,0x00,0x60,0xFC,0xE4,0x00,0x8B,0xD2,0xEA,0xEB,0x08, +0xE7,0x56,0xF7,0x80,0x22,0xE0,0x90,0x0A,0xEA,0x01,0xC6,0xF7,0x01,0x00,0x22,0xE3, +0xE4,0x0A,0xEA,0x01,0xC6,0xF7,0xFE,0xFF,0x0E,0xEA,0x01,0x0D,0xCA,0x0C,0xEC,0x0D, +0x07,0x00,0x98,0x61,0xE4,0x00,0x18,0x24,0x0E,0xEA,0x0A,0xFC,0x60,0x1E,0x7F,0x9E, +0xE1,0x0E,0xEA,0x08,0x0C,0x8A,0x0A,0xE4,0x00,0x28,0xB6,0xE4,0x00,0x27,0x86,0xE7, +0xFF,0xFD,0x2D,0xE4,0x00,0xB2,0xBB,0x9C,0x38,0x0D,0x21,0x04,0x0D,0x41,0x00,0xE4, +0x00,0xB4,0x16,0x98,0x6D,0xE4,0x00,0xA4,0x90,0x98,0x60,0xFC,0x80,0x18,0x08,0xE4, +0x00,0xA6,0xD4,0x98,0x61,0xFC,0x80,0x18,0x08,0xE4,0x00,0xA6,0xC0,0x98,0x60,0x50, +0x80,0x14,0xE4,0x00,0xAB,0xBA,0x98,0x60,0x98,0x8C,0xE4,0x00,0xAA,0xDC,0x98,0x61, +0x50,0x80,0x14,0xE4,0x00,0xAB,0x98,0x98,0x61,0x98,0x8C,0x99,0x40,0xE4,0x00,0xAA, +0xB6,0x88,0x6A,0x98,0x80,0x9D,0x41,0xE4,0x00,0xB1,0x22,0x5D,0x4A,0x00,0xD1,0x44, +0xFF,0x9E,0x98,0x60,0x05,0x40,0xFF,0xC9,0x4A,0xFF,0xFF,0x88,0x8A,0xE4,0x00,0xA9, +0x10,0x88,0x8A,0x98,0x60,0xE4,0x00,0xA6,0x98,0x88,0x8A,0x0D,0x21,0x06,0x0D,0x41, +0x02,0x98,0x60,0x9C,0x28,0xE4,0x00,0xA7,0x79,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x07, +0x10,0x1C,0x21,0xB0,0x0E,0xE1,0x10,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x07,0x04,0x0D, +0x41,0x4C,0x0D,0x61,0x48,0x0D,0x81,0x44,0x0D,0xE1,0x38,0x0E,0x01,0x34,0x0E,0x21, +0x30,0x0E,0x41,0x2C,0x0E,0x61,0x28,0x0E,0x81,0x24,0x0D,0xA1,0x40,0x0D,0xC1,0x3C, +0x0E,0xA1,0x20,0x0E,0xC1,0x1C,0x0E,0xE1,0x0C,0xC2,0x60,0x10,0x01,0xC2,0x40,0x10, +0x01,0xFE,0x73,0x07,0x24,0xFE,0x52,0x07,0x1C,0xC2,0x20,0x10,0x01,0xC2,0x00,0x10, +0x01,0xFE,0x31,0x07,0x14,0xFE,0x10,0x07,0x28,0xC1,0xE0,0x10,0x01,0xC1,0x8F,0xFF, +0xE1,0xFD,0xEF,0x07,0x20,0x9B,0x80,0xC2,0x98,0x00,0x21,0xC0,0xD8,0x00,0x21,0x13, +0x53,0x00,0x0E,0xF2,0x02,0x0D,0x51,0x02,0x0F,0xB0,0x02,0x0F,0x6F,0x02,0x99,0x60, +0xC9,0x8C,0xFF,0xFF,0x88,0xFC,0x53,0x20,0xFF,0xFE,0x94,0xB8,0x68,0xFC,0xC6,0xB8, +0x6E,0xE4,0x00,0x01,0xC5,0x41,0x14,0xC4,0x9F,0x01,0x11,0x08,0x00,0x8D,0xA8,0x5D, +0xAD,0x00,0xE4,0x00,0x00,0x11,0x9B,0x00,0x89,0xB8,0x5D,0x18,0x00,0xD7,0xC8,0xFF, +0x45,0xC3,0x18,0x00,0x21,0xFF,0x18,0xB8,0x68,0x8F,0x0B,0x99,0x00,0x12,0xB8,0x00, +0xCF,0x0D,0x00,0x0A,0x1E,0xD5,0xFF,0x8F,0x06,0x0E,0xC1,0x08,0x0F,0x01,0x14,0xE4, +0x00,0x01,0x37,0x0F,0x01,0x16,0xCD,0xE8,0x00,0x0A,0x8D,0xF8,0x0A,0xCF,0x00,0x0E, +0xC1,0x04,0x0F,0x01,0x0E,0x0E,0xC1,0x0A,0xD5,0x16,0x00,0x3A,0x0B,0x0F,0x0A,0x0D, +0xE1,0x06,0xD5,0xE4,0x03,0xB4,0xD4,0x98,0x03,0x94,0x8D,0xCD,0x5D,0xCE,0x00,0xCF, +0x0E,0x00,0x0A,0x8F,0x06,0x09,0xF8,0x06,0x0B,0x18,0x08,0x4F,0x18,0x50,0x41,0xEF, +0x23,0x8D,0xF8,0xFD,0xEF,0x02,0x00,0x4D,0xEF,0x52,0x5D,0xEF,0x06,0x41,0xEF,0x7B, +0x43,0x03,0x7D,0x4E,0xD8,0xFA,0x47,0x16,0xC6,0x43,0x18,0xB5,0xD7,0x0C,0x01,0x4C, +0xC3,0x20,0x1F,0xE4,0x20,0x00,0x2D,0x89,0x5D,0x89,0x97,0x8B,0x3A,0x88,0xFC,0x8B, +0xAA,0x8A,0xEC,0x8B,0x59,0x8B,0x87,0x8B,0x78,0x89,0x4F,0x89,0x98,0x88,0xEE,0x8B, +0x3E,0xE4,0x00,0x00,0x2F,0xC3,0x40,0x1F,0xE0,0x20,0x00,0x1D,0xD6,0xF8,0x00,0x60, +0x8B,0xAF,0x8A,0xF8,0x8B,0x5E,0x8B,0x8E,0x9D,0x01,0x5D,0xC8,0x00,0xD6,0xAE,0xFB, +0x35,0x9D,0x61,0x5F,0xCB,0x00,0x0E,0xC1,0x12,0xD6,0xDE,0xF9,0x6D,0xC3,0x00,0x10, +0x01,0x1B,0x53,0x00,0xFF,0x18,0x07,0x20,0x0E,0xF2,0x00,0x0D,0x51,0x00,0x0F,0xB0, +0x00,0x0F,0x78,0x00,0xC3,0x20,0x1F,0xE0,0x20,0x01,0x55,0xCF,0x9C,0x00,0x0A,0xCC, +0xE7,0x00,0x0A,0x8C,0xE6,0x0B,0x07,0x04,0x4F,0x18,0x50,0x8C,0xDC,0x08,0x67,0x02, +0x0B,0x86,0x02,0x40,0x63,0x23,0x0B,0x46,0x04,0x8C,0x78,0x43,0x1B,0xBC,0xFC,0x63, +0x02,0x00,0x4C,0x63,0x52,0x23,0x00,0xA8,0xC2,0xE0,0x1F,0xE0,0x20,0x00,0x8D,0x40, +0x63,0xBB,0x40,0x9C,0x23,0x4E,0xFA,0x50,0x8E,0xE4,0xFE,0xF7,0x02,0x00,0x4E,0xF7, +0x52,0x43,0x77,0xDB,0x8C,0x7B,0x40,0x63,0xC0,0xE4,0x00,0x00,0x0D,0x88,0x64,0x0E, +0xC1,0x1E,0x0E,0xA1,0x22,0x0E,0x81,0x26,0x0E,0x61,0x2A,0x0E,0x41,0x2E,0x0E,0x21, +0x32,0x0E,0x01,0x36,0x0D,0xE1,0x3A,0x0D,0xC1,0x3E,0x0D,0xA1,0x42,0x0D,0x81,0x46, +0x0D,0x61,0x4A,0x0D,0x41,0x4E,0x1B,0x25,0x00,0x1C,0x21,0x50,0x85,0x29,0x8B,0x23, +0xC2,0xE0,0x10,0x01,0x5C,0xA5,0x00,0xF2,0xF7,0x07,0x10,0x98,0x60,0xD6,0xE5,0x0C, +0xB9,0xD3,0x3F,0x0C,0x98,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xC3,0x60,0x10, +0x01,0xF2,0xF7,0x07,0x09,0xFF,0x18,0x07,0x07,0xFF,0x7B,0x07,0x08,0x22,0xE8,0x42, +0x13,0x18,0x00,0x5F,0x08,0x9B,0x20,0x00,0x51,0xE4,0x00,0x01,0x3B,0xD2,0xE1,0x04, +0xCE,0x13,0x18,0x00,0x5F,0x05,0x93,0x20,0x02,0x3D,0x24,0xA4,0x4B,0x9B,0x43,0x43, +0x5A,0x2D,0x4F,0x5A,0x08,0x5F,0x5A,0x00,0xE4,0x00,0x00,0x37,0x20,0xA8,0x54,0x9B, +0x44,0x43,0x5A,0x2D,0x4F,0x5A,0x08,0x5F,0x5A,0x00,0x20,0xAC,0xEE,0xE4,0x00,0x00, +0x51,0x9B,0x43,0x9A,0xE0,0x13,0x9B,0x00,0x8B,0x17,0xE4,0x00,0x00,0x27,0x4F,0xB8, +0x08,0x9F,0x01,0x8F,0xBC,0x5F,0x18,0x00,0x8E,0xFD,0x5E,0xF7,0x00,0xD7,0x05,0xFF, +0x8E,0xE4,0x00,0x00,0x49,0x5E,0xE0,0x21,0x53,0x00,0x1D,0x52,0xE0,0x2F,0x4A,0xF8, +0xB8,0xE4,0x00,0x00,0x4B,0x5E,0xE0,0x29,0x53,0x00,0x41,0x52,0xE0,0x29,0x4A,0xF8, +0xB8,0xE4,0x00,0x00,0x2B,0x27,0x04,0x33,0x9F,0x9F,0x4F,0x18,0x08,0xE4,0x00,0x00, +0x8B,0x9B,0x0A,0x20,0xA9,0x10,0x13,0x1B,0x00,0x9C,0xBF,0x9F,0x1F,0x4C,0xA5,0x08, +0x8F,0x05,0xE4,0x00,0x00,0x65,0x9B,0x43,0x13,0xBB,0x00,0x43,0x5A,0x2D,0x9A,0xE0, +0x4F,0x5A,0x08,0x8B,0x77,0x5F,0x5A,0x00,0xE4,0x00,0x00,0x21,0x8F,0x9D,0x9F,0x61, +0x8E,0xFC,0x5F,0x7B,0x00,0x5E,0xF7,0x00,0x4F,0x9B,0x08,0xD7,0x65,0xFF,0x8E,0x1F, +0x1D,0xFF,0x8F,0x1C,0x5F,0x18,0x00,0x4F,0x5A,0x08,0xC3,0xB8,0x00,0x21,0xFF,0xBD, +0xB7,0x02,0x8F,0xBA,0x9B,0x40,0xE4,0x00,0x01,0x0B,0x4F,0x7A,0x08,0x8F,0x7D,0x0B, +0x9B,0x00,0xD7,0x3C,0x03,0xBC,0x0B,0x7B,0x02,0xD7,0x79,0x03,0x84,0x8E,0xFA,0xC3, +0xB8,0x00,0x21,0xCF,0x17,0x00,0x06,0xFF,0xBD,0xB7,0x1E,0x8F,0x1D,0x1F,0x57,0x01, +0x14,0xD8,0x00,0xCF,0x5A,0x00,0x06,0x09,0x18,0x02,0x8F,0x5D,0x98,0x60,0x0B,0xB8, +0x04,0x14,0xBA,0x00,0x0B,0xDA,0x02,0x0B,0x1A,0x04,0xD7,0x9B,0x02,0x52,0x42,0xF9, +0xDD,0x40,0x77,0x33,0x43,0x3C,0xCD,0x43,0x59,0x2B,0x43,0xD9,0xF3,0x8F,0x43,0x40, +0x77,0x43,0x43,0x5A,0x23,0x8C,0x7E,0x8C,0x7A,0x42,0xF7,0xEB,0x40,0x83,0x23,0x97, +0x41,0x43,0x39,0xC3,0xCB,0x5A,0x86,0xA0,0x8F,0x37,0x40,0x64,0xD0,0x43,0x7C,0xDD, +0x8C,0x79,0x40,0x63,0xD8,0xE4,0x00,0x00,0x1F,0x9F,0x41,0x5F,0x7A,0x00,0xD7,0x1B, +0xFB,0xE5,0x98,0x60,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF8,0x77,0x07,0x09,0xC2,0xE0, +0x10,0x01,0xF8,0x97,0x07,0x06,0xC2,0xE0,0x10,0x01,0xF8,0xB7,0x07,0x07,0xC2,0xE0, +0x10,0x01,0xF8,0xD7,0x07,0x08,0xC2,0xE0,0x10,0x01,0xEC,0xF7,0x07,0x05,0x85,0x29, +0x9A,0xFF,0x1C,0x21,0xD8,0x0D,0xE1,0x0C,0x1A,0xE1,0x07,0xC1,0xE0,0x10,0x01,0xFD, +0xEF,0x07,0x24,0x1A,0xEF,0x00,0x52,0xE0,0xFF,0xC3,0x00,0x10,0x01,0x0D,0x41,0x20, +0x0D,0x61,0x1C,0x0D,0xA1,0x14,0x0D,0xC1,0x10,0xCB,0x20,0xFF,0xFF,0xC1,0xC0,0x10, +0x01,0xEF,0x38,0x07,0x2C,0xFD,0xCE,0x07,0x20,0xC1,0xA0,0x10,0x01,0x0E,0xEE,0x00, +0xFD,0xAD,0x07,0x1C,0x0D,0x21,0x24,0x0E,0xED,0x00,0x0D,0x81,0x18,0xC2,0xE0,0x10, +0x01,0x0E,0x01,0x08,0x89,0x63,0xF3,0x17,0x07,0x09,0x89,0x44,0x88,0x65,0xC2,0xE0, +0x10,0x01,0x23,0x08,0x56,0xC3,0x00,0x10,0x01,0xF3,0x18,0x07,0x07,0x5F,0x08,0x9B, +0x20,0x00,0x61,0xE4,0x00,0x00,0x37,0x23,0x04,0x5E,0xC3,0x00,0x10,0x01,0xF3,0x18, +0x07,0x07,0x5F,0x05,0x93,0x20,0x00,0x25,0x9B,0x05,0xE4,0x00,0x00,0x0D,0x9B,0x04, +0xFB,0x17,0x07,0x10,0xC2,0x00,0x10,0x01,0x0E,0xEB,0x02,0xEE,0xF0,0x07,0x2C,0x0A, +0xE6,0x06,0x0C,0x8B,0x02,0xD4,0x97,0x04,0xCC,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08, +0xD1,0x53,0x18,0x01,0x1C,0xA1,0x07,0xEF,0x17,0x08,0xD1,0xE7,0xFF,0xF6,0x9C,0x0C, +0x6B,0x00,0x0C,0x8A,0x02,0xED,0x90,0x07,0x2E,0x10,0xAF,0x00,0x88,0x6C,0xE7,0xFF, +0xFA,0xC0,0xC2,0xE0,0x10,0x01,0x89,0x63,0xEC,0x77,0x07,0x0C,0x10,0xA1,0x07,0x0C, +0x8A,0x02,0x88,0x6C,0xE7,0xFF,0xFA,0x94,0xC3,0x00,0x10,0x01,0xEC,0x78,0x07,0x18, +0x0F,0x6E,0x02,0x0F,0x2D,0x02,0x0F,0x4A,0x02,0x43,0x1B,0xCC,0x23,0x00,0xEC,0xC3, +0x20,0x1F,0xE0,0x20,0x00,0xD1,0xC3,0x80,0x10,0x01,0xEF,0xBC,0x07,0x16,0xC3,0x80, +0x10,0x01,0xEF,0x9C,0x07,0x2A,0x43,0xBD,0xE5,0x4F,0x9D,0xFA,0x47,0xBC,0xEE,0x43, +0x9D,0xE5,0xD7,0x1C,0x00,0xAC,0x41,0x6B,0xDB,0x42,0xE3,0xCB,0x8E,0xEB,0x43,0x17, +0xC0,0x8F,0x58,0xE4,0x00,0x01,0x55,0x42,0xFA,0x1C,0xE4,0x00,0x01,0x5B,0xC9,0x80, +0x07,0xFF,0x42,0xEC,0xBD,0xD6,0xE4,0x05,0x2C,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08, +0xD1,0x53,0x18,0x01,0x40,0x8C,0x25,0xEF,0x17,0x08,0xD1,0x1C,0xA1,0x07,0xE7,0xFF, +0xF5,0x56,0x40,0x6C,0x1D,0x0C,0x6B,0x00,0xEE,0xF0,0x07,0x2E,0x0C,0x8A,0x02,0x41, +0x8C,0xBD,0x10,0xAF,0x00,0x88,0x6C,0xE7,0xFF,0xF9,0x6E,0xC2,0xE0,0x10,0x01,0x89, +0x63,0xEC,0x77,0x07,0x0C,0x10,0xA1,0x07,0x0C,0x8A,0x02,0x88,0x6C,0xE7,0xFF,0xF9, +0x42,0xC3,0x00,0x10,0x01,0xEC,0x78,0x07,0x18,0x0F,0x6E,0x02,0x0F,0x2D,0x02,0x0F, +0x4A,0x02,0x43,0x1B,0xCC,0x23,0x00,0xFC,0xC3,0x20,0x1F,0xE0,0x20,0x00,0xE1,0xC3, +0x80,0x10,0x01,0xEF,0xBC,0x07,0x16,0xC3,0x80,0x10,0x01,0xEF,0x9C,0x07,0x2A,0x43, +0xBD,0xE5,0x4F,0x9D,0xFA,0x47,0xBC,0xEE,0x43,0x9D,0xE5,0xD7,0x1C,0x00,0xCC,0x41, +0x6B,0xDB,0x42,0xE3,0xCB,0x8E,0xEB,0x43,0x17,0xC0,0x43,0x5A,0xC5,0x0F,0x4A,0x00, +0xE4,0x00,0x00,0x15,0x42,0xFA,0x1D,0x0E,0xEA,0x00,0x0E,0x01,0x0A,0x0D,0xE1,0x0E, +0x0D,0xC1,0x12,0x0D,0xA1,0x16,0x0D,0x81,0x1A,0x0D,0x61,0x1E,0x0D,0x41,0x22,0x0D, +0x21,0x26,0x1C,0x21,0x28,0x85,0x29,0x1C,0x21,0xD0,0x0D,0x41,0x28,0x0D,0x61,0x24, +0x0D,0x81,0x20,0x0D,0xA1,0x1C,0x0D,0xC1,0x18,0x0D,0xE1,0x14,0x0E,0x01,0x10,0x0E, +0x21,0x0C,0x0E,0x41,0x08,0x5E,0x23,0x00,0x0E,0x61,0x04,0x56,0x11,0x03,0x4E,0xF1, +0x11,0x5E,0x00,0x09,0x99,0xC0,0x4A,0x41,0x01,0x99,0x80,0x9A,0x64,0x0D,0x21,0x2C, +0x8E,0x57,0x89,0x44,0x89,0xAE,0x89,0x6C,0x99,0xE0,0x42,0x73,0x25,0xE4,0x00,0x00, +0xF3,0x42,0xF3,0x54,0xD6,0xF1,0x01,0xD8,0x22,0x04,0x4A,0x51,0xC0,0x10,0x11,0x6A, +0x00,0x89,0xAE,0x51,0x80,0x10,0xE4,0x00,0x00,0x6B,0x22,0x08,0x4A,0x51,0xC0,0x10, +0x11,0x6A,0x00,0x11,0x8A,0x01,0x89,0xAE,0xE4,0x00,0x00,0x47,0x22,0x0C,0x7E,0x11, +0x6A,0x00,0x11,0x8A,0x01,0x11,0xAA,0x02,0x51,0xC0,0x10,0xE4,0x00,0x00,0x21,0x11, +0x6A,0x00,0x11,0x8A,0x01,0x11,0xAA,0x02,0x11,0xCA,0x03,0x4E,0xEC,0x80,0x4C,0x8C, +0xC0,0x8C,0x97,0x4E,0xEE,0x80,0x4F,0x0B,0x40,0x4C,0xAE,0xC0,0x8C,0xB7,0x4E,0xED, +0x40,0x88,0x6F,0x8C,0x8B,0x8C,0xAD,0x8C,0x98,0x8C,0xB7,0x9D,0xE1,0xE4,0x00,0x97, +0x50,0x5D,0xEF,0x00,0x9D,0x44,0xD5,0xF2,0xFC,0x5E,0x0E,0x61,0x06,0x0E,0x41,0x0A, +0x0E,0x21,0x0E,0x0E,0x01,0x12,0x0D,0xE1,0x16,0x0D,0xC1,0x1A,0x0D,0xA1,0x1E,0x0D, +0x81,0x22,0x0D,0x61,0x26,0x0D,0x41,0x2A,0x0D,0x21,0x2E,0x1C,0x21,0x30,0x85,0x29, +0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x00,0xDA,0x5E,0xE0,0x41,0x1C,0x21,0xE8,0x0D,0x61, +0x0C,0x0D,0x81,0x08,0x0D,0xA1,0x04,0x0D,0x21,0x14,0x0D,0x41,0x10,0x89,0x63,0x5D, +0x84,0x00,0x49,0xA1,0x01,0xE4,0x00,0x53,0xA8,0xC3,0x14,0x00,0x01,0xCB,0x18,0x7A, +0x30,0x0A,0xF8,0x01,0xC6,0xF7,0x01,0x00,0x5E,0xF7,0x04,0x22,0xE3,0xD8,0xFC,0x60, +0x01,0x00,0x99,0x40,0xE4,0x00,0x17,0xA0,0xE4,0x00,0x00,0x31,0x88,0x6A,0x98,0x81, +0x88,0xAD,0x9D,0x41,0xE4,0x00,0xA8,0x62,0x5D,0x4A,0x00,0x0C,0x6B,0x01,0x9D,0x62, +0xD5,0x4C,0xFF,0x66,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12, +0x0D,0x21,0x16,0x1C,0x21,0x18,0x85,0x29,0xFC,0x21,0xFD,0xF0,0xED,0x41,0x02,0x08, +0xED,0xC1,0x01,0xF8,0xED,0xE1,0x01,0xF4,0xEE,0x01,0x01,0xF0,0xED,0x21,0x02,0x0C, +0xED,0x61,0x02,0x04,0xED,0x81,0x02,0x00,0xED,0xA1,0x01,0xFC,0xEE,0x21,0x01,0xEC, +0xEE,0x41,0x01,0xE8,0xEE,0x61,0x01,0xE4,0xEE,0x81,0x01,0xE0,0xC2,0x00,0x10,0x01, +0xC1,0xC0,0x10,0x01,0xC1,0xE0,0x10,0x01,0x89,0x43,0xFE,0x10,0x08,0x58,0xFD,0xCE, +0x08,0x79,0xFD,0xEF,0x08,0x76,0x20,0x60,0x30,0x20,0x68,0x98,0x20,0x64,0x30,0x24, +0x64,0x63,0x99,0x80,0xE4,0x00,0x00,0x0D,0x99,0x81,0xCD,0x8C,0x00,0x1A,0x51,0x60, +0x1A,0x8D,0x90,0xE4,0x00,0x00,0x41,0xD0,0x64,0x00,0x82,0xD0,0x65,0x00,0xA2,0x99, +0x80,0x89,0x6C,0xE4,0x00,0x00,0x21,0x89,0x8F,0x99,0x63,0xE4,0x00,0x00,0x11,0x89, +0x8E,0x99,0x68,0x9A,0xE0,0x8A,0x81,0x53,0x20,0x10,0xE4,0x00,0x00,0x19,0x43,0x14, +0xBC,0x9E,0xE1,0x1B,0x38,0x00,0x5F,0x17,0x00,0xD5,0x78,0xFF,0xAD,0x88,0x6B,0x88, +0x81,0x99,0xA3,0xE7,0xFF,0xFB,0xE8,0x8A,0x81,0xFE,0x20,0xFE,0xB0,0xCA,0x40,0x01, +0x50,0x52,0x60,0x3F,0x1C,0x61,0x60,0x88,0x8B,0xE7,0xFF,0xFD,0x8E,0x1F,0x21,0x60, +0x8B,0x01,0x9B,0x41,0xE4,0x00,0x00,0x93,0x0A,0xF9,0x00,0xC2,0xFF,0xD5,0xEC,0x20, +0x00,0x39,0x43,0x71,0xBD,0xC3,0x60,0x2A,0x0C,0xE4,0x00,0x00,0x0F,0x5E,0xE0,0x19, +0x4B,0x61,0x01,0x23,0x60,0x98,0xFE,0xF7,0x01,0x50,0x13,0x58,0x00,0x42,0xF7,0x90, +0x8E,0xFA,0x5E,0xF7,0x06,0x26,0xFC,0x34,0x5E,0xE7,0xF1,0x4A,0xF7,0x98,0xE4,0x00, +0x00,0x0D,0x9A,0xE0,0x1A,0xF8,0x00,0x9B,0x40,0x9F,0x01,0x9F,0x22,0x42,0xF8,0xA5, +0x5E,0xF7,0x00,0xD5,0x77,0xFD,0xAD,0x23,0x40,0x24,0x9A,0xE0,0xE4,0x00,0x00,0x51, +0x88,0x6B,0x88,0x81,0x9D,0xBF,0xE7,0xFF,0xFA,0xE2,0x5D,0xAD,0x00,0x21,0xA2,0x1E, +0xE7,0xFF,0xFF,0xD5,0x43,0x0C,0xBC,0x1F,0x21,0x00,0x8F,0x37,0x9E,0xE1,0x13,0x39, +0x00,0x1B,0x38,0x00,0x5F,0x17,0x00,0xD5,0x78,0xFF,0x6D,0x21,0x40,0x74,0x21,0x48, +0x38,0x21,0x44,0x9C,0xD1,0x44,0x01,0xEA,0xD1,0x45,0x02,0x5A,0x99,0x60,0x99,0x80, +0x88,0x8B,0x89,0x4C,0xE4,0x00,0x00,0x9B,0xC1,0x80,0x10,0x01,0x99,0x60,0x88,0x90, +0xFD,0x8C,0x0A,0xFC,0xE4,0x00,0x00,0x2D,0xC0,0x80,0x10,0x01,0xC1,0x80,0x10,0x01, +0x99,0x61,0xFC,0x84,0x08,0x72,0xFD,0x8C,0x0B,0x64,0x51,0x40,0x1A,0xE4,0x00,0x00, +0x49,0xC1,0x80,0x10,0x01,0x99,0x68,0x88,0x8F,0xFD,0x8C,0x0B,0x88,0x99,0x43,0xE4, +0x00,0x00,0x25,0xC1,0x80,0x10,0x01,0x99,0x6D,0x88,0x8E,0xFD,0x8C,0x0B,0xB0,0x99, +0x48,0x88,0x6A,0xE7,0xFF,0xF9,0xC8,0xFD,0xA1,0x01,0x20,0x88,0x8A,0x88,0x6D,0xE7, +0xFF,0xFB,0x82,0x9A,0xE0,0xE4,0x00,0x00,0x33,0x4F,0x17,0x10,0x4F,0x37,0x08,0x8F, +0x0C,0x8F,0x2D,0x9E,0xE1,0x0B,0x39,0x00,0x4F,0x39,0x40,0x0F,0x38,0x00,0x5F,0x17, +0x00,0xD5,0x58,0xFF,0x45,0x88,0x6B,0xE4,0x00,0x51,0xB8,0xED,0x21,0x02,0x0E,0xEE, +0x81,0x01,0xE2,0xEE,0x61,0x01,0xE6,0xEE,0x41,0x01,0xEA,0xEE,0x21,0x01,0xEE,0xEE, +0x01,0x01,0xF2,0xED,0xE1,0x01,0xF6,0xED,0xC1,0x01,0xFA,0xED,0xA1,0x01,0xFE,0xED, +0x81,0x02,0x02,0xED,0x61,0x02,0x06,0xED,0x41,0x02,0x0A,0xFC,0x21,0x02,0x10,0x85, +0x29,0x9C,0x38,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x04,0xFE,0xF7,0x08,0x58,0x9B,0x00, +0x13,0x37,0x00,0x4F,0x39,0x08,0x9E,0xE1,0x8F,0x19,0xC3,0x20,0x10,0x01,0xFF,0x39, +0x08,0x72,0xD6,0xF9,0xFF,0x76,0xC2,0xE0,0x10,0x01,0xF3,0x57,0x08,0x76,0xFE,0xF7, +0x08,0x76,0x13,0x37,0x02,0x13,0x77,0x01,0x98,0x60,0x42,0xFB,0xD4,0x98,0x80,0x8E, +0xF9,0x53,0x20,0x37,0x4E,0xF7,0x08,0x8E,0xF8,0x97,0x03,0x4E,0xF7,0x09,0xCB,0x18, +0xD0,0x8F,0xCE,0xF7,0x03,0x5B,0x42,0xF7,0xC9,0xCE,0xF7,0x00,0x1D,0xD6,0xF8,0x00, +0xA1,0x97,0x2F,0x98,0x60,0xCB,0x39,0x42,0x3F,0x98,0x82,0xD6,0xF9,0x00,0x31,0x98, +0x87,0xE4,0x00,0x9F,0x74,0x0D,0x21,0x06,0x98,0x61,0x98,0x80,0x9C,0x28,0xE4,0x00, +0x9F,0x5B,0x9C,0x38,0x98,0x80,0x0D,0x21,0x04,0x98,0x66,0xE4,0x00,0x2E,0x14,0x98, +0x60,0xE7,0xFF,0xFA,0x8E,0x98,0x87,0x98,0x66,0xE4,0x00,0x2D,0xF8,0x98,0x64,0xE7, +0xFF,0xFA,0x72,0x98,0x66,0x98,0x88,0xE4,0x00,0x2D,0xDC,0x0D,0x21,0x06,0x98,0x65, +0x9C,0x28,0xE7,0xFF,0xFA,0x4D,0xC2,0xE0,0x10,0x01,0x5C,0xA0,0x29,0xF3,0x37,0x0B, +0x7A,0x53,0x40,0x40,0x52,0xE0,0x20,0xC3,0x60,0x10,0x01,0x4B,0x5A,0xB8,0xFF,0x7B, +0x09,0x6C,0x20,0x60,0x6C,0xE4,0x00,0x00,0x55,0x4F,0x17,0x08,0x9E,0xE1,0x8F,0x1B, +0x0B,0x18,0x00,0xD7,0x58,0x00,0x78,0x98,0x61,0xE4,0x00,0x00,0xD9,0x9A,0xE0,0x43, +0x40,0xD5,0x5F,0x17,0x00,0xD7,0x38,0xFF,0x25,0x98,0x60,0xE4,0x00,0x00,0xB5,0x20, +0x67,0xEA,0x9A,0xE0,0x20,0x80,0xA6,0x9A,0xE0,0x43,0x80,0xD5,0xE4,0x00,0x00,0x7D, +0x4F,0x17,0x08,0x8F,0x1B,0x0B,0x18,0x00,0x4F,0x98,0xFA,0x47,0x1C,0xC6,0x43,0x18, +0xE5,0x0B,0x84,0x00,0xD7,0x1C,0x00,0x38,0x0F,0x04,0x01,0x9E,0xE1,0x5F,0x17,0x00, +0xD7,0x38,0xFF,0x05,0xE7,0xFF,0xFF,0xA7,0x4F,0x17,0x08,0x8F,0x1B,0x0B,0x18,0x00, +0xD7,0x98,0xFD,0x3C,0x9E,0xE1,0xD7,0x1A,0xFD,0x0C,0x5F,0x17,0x00,0xD7,0x38,0xFF, +0x5D,0xE7,0xFF,0xFF,0x51,0x85,0x29,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xF3, +0xB7,0x0B,0x7A,0xC3,0xC0,0x10,0x01,0x9A,0xE0,0xFF,0x18,0x07,0x34,0x8B,0x37,0xFF, +0xDE,0x09,0x6C,0xE4,0x00,0x00,0x5B,0x4F,0x57,0x08,0x0B,0x98,0x00,0x8F,0x5E,0x0B, +0x5A,0x00,0x43,0x9A,0xE5,0x4F,0x7C,0xFA,0x47,0x9B,0xE6,0x43,0x7C,0xDD,0x5F,0x66, +0x11,0x20,0x00,0x21,0x9F,0x21,0x5F,0x39,0x00,0x0F,0x58,0x01,0x9E,0xE1,0x9F,0x02, +0x5F,0x57,0x00,0xD7,0xBA,0xFE,0xA5,0x5F,0x20,0x93,0x48,0x61,0x01,0x85,0x29,0xC2, +0xE0,0x10,0x01,0xC3,0x40,0x10,0x01,0xF3,0x37,0x0B,0x7A,0xC3,0x60,0x10,0x01,0x9A, +0xE0,0xFF,0x5A,0x07,0x34,0xFF,0x7B,0x09,0x6C,0xE4,0x00,0x00,0x29,0x4F,0x17,0x08, +0x9E,0xE1,0x43,0x9A,0xC4,0x8F,0x1B,0x0B,0x18,0x01,0x0F,0x1C,0x01,0x5F,0x17,0x00, +0xD7,0x38,0xFF,0x6D,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xEA,0xC2,0xE0, +0x10,0x01,0x9C,0x38,0xF8,0x17,0x08,0xE3,0x0D,0x21,0x04,0xC2,0xE0,0x10,0x01,0xF8, +0x17,0x08,0xFD,0x20,0x64,0x26,0x98,0x60,0xE4,0x00,0x00,0x0D,0x98,0x64,0x98,0x80, +0xE4,0x00,0x30,0x24,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x06,0xEC,0x17,0x07,0x30,0x9C, +0x28,0xE4,0x00,0x4A,0x45,0x1C,0x21,0xE8,0xC2,0xE0,0x10,0x01,0x0D,0x41,0x10,0xEB, +0x17,0x00,0xCD,0x0D,0x21,0x14,0x0D,0x61,0x0C,0x0D,0x81,0x08,0x0C,0x01,0x07,0x89, +0x43,0xC7,0x18,0x01,0x00,0x98,0x60,0xD3,0x00,0x06,0xAA,0xEB,0x17,0x00,0xCD,0xC7, +0x18,0xFE,0xFF,0xEF,0x17,0x00,0xCD,0xE4,0x00,0x43,0xF0,0xE4,0x00,0x44,0xFC,0x21, +0x44,0x36,0x98,0x61,0xE4,0x00,0x70,0xD8,0xE4,0x00,0x00,0x11,0xE4,0x00,0x71,0x2A, +0xC1,0x60,0x10,0x01,0xEE,0xEB,0x07,0x32,0x5E,0xE0,0x01,0x98,0x6A,0x98,0x83,0x0C, +0x01,0x07,0x1D,0x81,0x06,0x49,0x8C,0x00,0xE4,0x00,0x4F,0xD0,0x98,0x61,0x88,0x8C, +0x98,0xA1,0x88,0xCA,0xE7,0xFF,0xFC,0x44,0xC2,0xE0,0x10,0x01,0x20,0x60,0xE6,0xF3, +0x17,0x08,0xEA,0x9F,0x01,0xFB,0x17,0x08,0xEA,0x0A,0xE1,0x06,0xD2,0xEF,0x00,0x94, +0xC2,0xE0,0x10,0x01,0xF3,0x17,0x08,0xE3,0x9F,0x01,0xFB,0x17,0x08,0xE3,0x98,0x63, +0x21,0x44,0x36,0x98,0x81,0xE4,0x00,0x6C,0x88,0xE4,0x00,0x00,0x73,0xE4,0x00,0x6C, +0xDE,0xE4,0x00,0x00,0x63,0xF8,0x17,0x08,0xEA,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08, +0xE3,0xEE,0xEB,0x07,0x32,0x22,0xE3,0x66,0x0A,0xE1,0x06,0x5E,0xEC,0x11,0x23,0xFF, +0x41,0x21,0x44,0x36,0x98,0x61,0xE4,0x00,0x4E,0x7E,0xE4,0x00,0x00,0x11,0xE4,0x00, +0x4E,0xB8,0x9B,0x01,0xC2,0xE0,0x10,0x01,0x98,0x61,0xEF,0x17,0x07,0x30,0xC2,0xE0, +0x10,0x01,0xF3,0x17,0x08,0xFD,0x9F,0x01,0xFB,0x17,0x08,0xFD,0x0D,0x81,0x0A,0x0D, +0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18,0x85,0x29,0x9C,0x38,0x0D, +0x21,0x04,0x20,0x64,0x26,0x98,0x60,0xE4,0x00,0x00,0x0D,0x98,0x64,0x98,0x80,0xE4, +0x00,0x2D,0xC6,0x0D,0x21,0x06,0x9C,0x28,0xE4,0x00,0x47,0xF7,0x98,0x60,0x98,0xA0, +0x88,0x83,0xE7,0xFF,0xC7,0xCD,0xC2,0xE0,0x10,0x01,0x98,0x61,0xF2,0xF7,0x08,0xEA, +0xD2,0xEA,0x00,0x95,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08,0xE3,0x5E,0xE0,0xBB,0x48, +0x61,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x08,0xFD,0x5E,0xE1,0xDB,0x48, +0x61,0x01,0x85,0x29,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x00,0x00,0x0C,0x17,0x00,0x0C, +0x17,0x19,0x0C,0x17,0x1B,0xEC,0x17,0x00,0xA1,0xEC,0x17,0x00,0xA3,0xEC,0x17,0x00, +0xA4,0x1F,0x17,0x08,0xEC,0x17,0x00,0xA1,0x0F,0x17,0x04,0x1F,0x17,0x20,0x0F,0x17, +0x1C,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x00,0xD1,0x53,0x18,0x02,0xEF,0x17,0x00,0xD1, +0x85,0x29,0xC3,0x20,0x10,0x01,0xFF,0x19,0x00,0x00,0x1E,0xF8,0x20,0x5C,0x63,0x04, +0x0E,0xF8,0x1C,0x9A,0xE0,0xE4,0x00,0x00,0x29,0x0F,0x38,0x1E,0x43,0x44,0xBC,0x8F, +0x37,0x13,0x5A,0x00,0x9E,0xE1,0x1B,0x59,0x00,0x5F,0x37,0x04,0xD4,0x79,0xFF,0x6D, +0x9A,0xE1,0xEE,0xF8,0x00,0xA4,0x85,0x29,0x9C,0x38,0x0D,0x21,0x04,0x0D,0x41,0x00, +0x5D,0x43,0x00,0xE7,0xFF,0xFF,0x02,0x88,0x6A,0xE4,0x00,0x98,0xAC,0x0D,0x21,0x06, +0x0D,0x41,0x02,0x9C,0x28,0x85,0x29,0x1C,0x21,0xE0,0x0D,0x41,0x18,0x0D,0x61,0x14, +0x0D,0x81,0x10,0x0D,0xA1,0x0C,0x0D,0xE1,0x04,0x0D,0x21,0x1C,0x0D,0xC1,0x08,0x0E, +0x01,0x00,0xC1,0xA0,0x10,0x01,0xE4,0x00,0x9A,0x1E,0xC1,0x80,0x10,0x01,0xC1,0x60, +0x10,0x01,0xC1,0xE0,0x10,0x01,0x5C,0x63,0x00,0xFD,0xAD,0x00,0xC0,0xFD,0x8C,0x08, +0x89,0xFD,0x6B,0x00,0xB8,0xFD,0x4F,0x00,0x00,0xD0,0x60,0x19,0x42,0xE4,0x00,0x9A, +0x1C,0x5C,0x63,0x00,0x20,0x60,0xBC,0x0C,0x0A,0x19,0xE4,0x00,0x9A,0xA8,0xE4,0x00, +0x00,0x4B,0x0E,0xEA,0x06,0x0A,0x0A,0x19,0x8E,0x17,0xE4,0x00,0x9A,0xBC,0x18,0x70, +0x00,0x0A,0xEA,0x19,0xD2,0xEE,0x00,0x8D,0x0A,0xEA,0x19,0x9E,0xE1,0x5E,0xF7,0x04, +0x0E,0xEA,0x19,0x99,0xC0,0xE4,0x00,0x99,0x3A,0x5C,0x63,0x00,0x20,0x63,0x5A,0x0E, +0xEA,0x06,0x13,0x17,0x00,0x5F,0x0A,0x09,0x20,0x00,0x61,0x0A,0xEA,0x19,0xD2,0xE4, +0x03,0x76,0xE4,0x00,0x99,0xE4,0x0A,0xEA,0x19,0x22,0xE1,0xDA,0xE4,0x00,0x08,0x49, +0x13,0x17,0x00,0x23,0x08,0x36,0x0A,0xEA,0x19,0x22,0xE9,0x4E,0xE7,0xFF,0xFF,0xCD, +0x13,0x17,0x00,0x23,0x04,0x36,0x0A,0xEA,0x19,0x22,0xE5,0x0E,0xE7,0xFF,0xFF,0xAD, +0x13,0x17,0x00,0x5F,0x0A,0x29,0x20,0x00,0xC3,0x13,0x17,0x00,0x5F,0x0A,0x49,0x23, +0xFE,0xF3,0x13,0x17,0x00,0x5F,0x0A,0x69,0x20,0x00,0x7B,0x13,0x17,0x00,0x5F,0x0A, +0x89,0x20,0x00,0x57,0x13,0x17,0x00,0x5F,0x04,0x09,0x20,0x00,0x33,0x12,0xF7,0x00, +0x5E,0xE4,0x29,0x20,0x00,0x25,0x0A,0xEA,0x19,0x22,0xEE,0x64,0x98,0x61,0xE4,0x00, +0xAA,0x50,0x9D,0xC1,0xC1,0xC4,0xE2,0x0E,0x23,0xFD,0xB7,0xE7,0xFF,0xFF,0x0F,0x0E, +0xEA,0x06,0x13,0x17,0x00,0xD3,0x00,0x1D,0x5A,0x13,0x17,0x00,0x5F,0x0B,0x9B,0x20, +0x0E,0x85,0x13,0x17,0x00,0x5F,0x0A,0x49,0x07,0x00,0x80,0x20,0x00,0xA5,0x0B,0x2A, +0x19,0xD3,0x24,0x11,0x36,0x13,0x37,0x01,0x13,0x57,0x02,0x12,0xF7,0x03,0x4F,0x39, +0x40,0x47,0x39,0xD5,0xC3,0x22,0x7F,0xEE,0x20,0x08,0x3D,0x8F,0x19,0x1A,0xF8,0x00, +0xE4,0x00,0x04,0x0F,0x13,0x37,0x00,0x5F,0x2A,0x69,0x20,0x02,0xCD,0x0B,0x2A,0x19, +0xD3,0x23,0x1B,0x06,0x13,0x57,0x01,0x13,0x37,0x02,0x4E,0xFA,0x40,0x46,0xF7,0xCD, +0xCB,0x20,0x14,0x00,0xC2,0xE2,0x80,0x0A,0x4A,0xF7,0xC8,0x8E,0xF8,0x0E,0xEA,0x1C, +0xFE,0xE0,0x08,0x00,0xEE,0xEA,0x00,0xA1,0xE4,0x00,0x00,0x1D,0xE4,0x00,0x07,0x98, +0x98,0x61,0xE4,0x00,0x07,0xC4,0xE4,0x00,0x96,0xD2,0x5C,0x63,0x00,0x20,0x63,0xBC, +0xEC,0x0A,0x00,0xA3,0xE4,0x00,0x97,0xDA,0xE4,0x00,0x97,0x6C,0xEB,0x0A,0x00,0xA3, +0xEA,0xEA,0x00,0xA1,0xD7,0x17,0x01,0x26,0xEA,0xEA,0x00,0xA3,0xEA,0xEA,0x00,0xA1, +0xE4,0x00,0x97,0x62,0xE4,0x00,0x97,0xCE,0xE4,0x00,0x97,0x92,0xEC,0x0A,0x00,0xA3, +0xEC,0x0A,0x00,0xA1,0xE4,0x00,0x05,0xD9,0xE4,0x00,0x96,0xC0,0x5C,0x63,0x00,0x20, +0x63,0x66,0xE4,0x00,0x96,0x14,0x5C,0x63,0x00,0x20,0x63,0x0C,0xEA,0xEA,0x00,0xA3, +0x0F,0x0A,0x1E,0x8E,0xF8,0x10,0x77,0x00,0xE4,0x00,0x95,0x8E,0xEA,0xEA,0x00,0xA3, +0x9E,0xE1,0x5E,0xF7,0x04,0xEE,0xEA,0x00,0xA3,0xE7,0xFF,0xFF,0x47,0x13,0x17,0x00, +0xD3,0x01,0x04,0x26,0x0A,0xEA,0x19,0xD2,0xE1,0x0A,0x06,0xFE,0xEA,0x00,0xAC,0xEE, +0xEA,0x00,0xA8,0x12,0xEB,0x00,0x22,0xE0,0x4A,0x9A,0xE8,0x53,0x00,0x52,0xFA,0xEA, +0x00,0xB4,0x9A,0xE8,0xE4,0x00,0x00,0x21,0x9A,0xE8,0x53,0x00,0x62,0xFA,0xEA,0x00, +0xB4,0x52,0xE0,0x80,0x1F,0x20,0x81,0xFB,0x2A,0x00,0xAC,0x13,0x2B,0x00,0xFB,0x2A, +0x00,0xAD,0xFB,0x0A,0x00,0xAE,0xF8,0x0A,0x00,0xAF,0x5E,0xF7,0x00,0xFA,0xEA,0x00, +0xB0,0xF8,0x0A,0x00,0xB1,0xF8,0x0A,0x00,0xB2,0xC2,0xE0,0x10,0x01,0xF8,0x0A,0x00, +0xB3,0xEB,0x17,0x00,0xD1,0xC7,0x18,0xFF,0xFD,0xEF,0x17,0x00,0xD1,0x12,0xEC,0x00, +0x52,0xF7,0x01,0x9B,0x01,0x1A,0xEC,0x00,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x08,0x85, +0xE4,0x00,0x01,0x8F,0x13,0x17,0x00,0x23,0x09,0x4A,0x0B,0x0A,0x19,0xD3,0x02,0x05, +0xD6,0x12,0xF7,0x01,0x22,0xE0,0x4A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x3D,0xF9,0x18, +0x17,0x00,0xE4,0x00,0x00,0x29,0x22,0xE4,0x5E,0xC2,0xF4,0x00,0x01,0x9B,0x01,0xCA, +0xF7,0x3D,0xF9,0x1B,0x17,0x00,0x12,0xF7,0x00,0xE4,0x00,0x00,0x2D,0xD2,0xE2,0x04, +0x56,0xC3,0x14,0x00,0x01,0xCB,0x18,0x3D,0xF9,0x1A,0xF8,0x00,0x12,0xF8,0x00,0x5E, +0xF7,0x00,0x1A,0xEB,0x00,0xE4,0x00,0x00,0xE5,0x13,0x17,0x00,0x5F,0x04,0x09,0x20, +0x00,0x99,0x0B,0x0A,0x19,0x23,0x0D,0x8A,0x13,0x37,0x01,0x13,0x17,0x02,0x4E,0xF9, +0x40,0x46,0xF7,0xC5,0xC2,0xEB,0x54,0xA4,0x20,0x01,0x3D,0x12,0xED,0x00,0x52,0xF7, +0x03,0xE4,0x00,0x00,0x87,0x13,0x17,0x00,0x5F,0x04,0x29,0x20,0x06,0x95,0x0B,0x0A, +0x19,0x23,0x0C,0xDA,0x13,0x37,0x01,0x13,0x17,0x02,0x4E,0xF9,0x40,0x46,0xF7,0xC5, +0xC3,0x00,0x10,0x01,0xEE,0xF8,0x00,0xC4,0x12,0xED,0x00,0x57,0x37,0x01,0x23,0x20, +0x64,0xEF,0x18,0x00,0xC6,0x23,0x00,0x32,0x9B,0x1B,0x46,0xF7,0xC4,0xE4,0x00,0x00, +0x0F,0x52,0xF7,0x04,0x1A,0xED,0x00,0x0C,0x0A,0x00,0x0C,0x0A,0x19,0xE4,0x00,0x02, +0xC7,0xE4,0x00,0x93,0x3C,0x5C,0x63,0x00,0xD0,0x60,0x0A,0xC2,0xE4,0x00,0x94,0x7E, +0xE4,0x00,0x94,0x42,0x50,0x60,0x20,0xE4,0x00,0x03,0xA2,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x3D,0xF9,0x12,0xF7,0x00,0x1A,0xEB,0x00,0x12,0xEB,0x00,0x22,0xE0,0x4E,0x12, +0xED,0x00,0x56,0xF7,0x01,0x5E,0xE0,0x09,0x49,0xA4,0x43,0xE4,0x00,0x00,0x43,0x12, +0xEB,0x00,0x22,0xE4,0x2A,0x51,0xA0,0x80,0xE4,0x00,0x00,0x29,0x12,0xEB,0x00,0x22, +0xEB,0xD8,0x12,0xEB,0x00,0x22,0xEF,0xC0,0xC9,0xA0,0xFF,0xFF,0xEE,0xEA,0x00,0xA6, +0x22,0xE4,0x2E,0xED,0xAA,0x00,0xA1,0xEC,0x0A,0x00,0xA4,0xE4,0x00,0x93,0x8C,0xEA, +0xEA,0x00,0xA1,0xD5,0xB7,0x00,0x71,0x12,0xEC,0x00,0x56,0xF7,0x01,0xD2,0xE0,0x05, +0x22,0xC2,0xE0,0x10,0x01,0xF3,0x17,0x08,0xB0,0x23,0x00,0x24,0x9F,0x1F,0xFB,0x17, +0x08,0xB0,0xEC,0x0A,0x00,0xA3,0x12,0xEC,0x00,0x56,0xF7,0x01,0x22,0xE0,0x2C,0xF1, +0xAA,0x00,0xB4,0xE4,0x00,0x00,0xAD,0xE9,0xAA,0x00,0xA1,0xE4,0x00,0x00,0x9D,0x12, +0xEB,0x00,0x22,0xE0,0x42,0x12,0xEC,0x00,0x56,0xF7,0x01,0x22,0xE0,0x56,0xE4,0x00, +0x00,0x3D,0xE4,0x00,0x91,0x6E,0x5C,0x63,0x00,0x20,0x63,0xE4,0xE7,0xFF,0xFF,0xD3, +0xEA,0xEA,0x00,0xA3,0xEF,0x0A,0x00,0xAA,0xE4,0x00,0x00,0x17,0xEA,0xEA,0x00,0xA3, +0x0F,0x0A,0x1E,0x8E,0xF8,0x10,0x77,0x00,0xE4,0x00,0x90,0xEE,0xEA,0xEA,0x00,0xA3, +0x9E,0xE1,0x5E,0xF7,0x04,0xEE,0xEA,0x00,0xA3,0xEA,0xEA,0x00,0xA3,0xD6,0xED,0xFD, +0x96,0xE4,0x00,0x92,0x94,0xE4,0x00,0x92,0x58,0xEC,0x0A,0x00,0xA1,0xEC,0x0A,0x00, +0xA3,0xE4,0x00,0x00,0x45,0x98,0x60,0x9D,0x61,0xE4,0x00,0x90,0x8C,0xE4,0x00,0x00, +0x0D,0x99,0x60,0xD5,0xAB,0xFF,0x95,0xE4,0x00,0x92,0x48,0xE4,0x00,0x92,0x0C,0xEC, +0x0A,0x00,0xA1,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x00,0xD1,0x53,0x18,0x02,0xEF,0x17, +0x00,0xD1,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0x85,0xC3,0x00,0x32,0x0A,0x20,0x00, +0x49,0x13,0x0C,0x00,0x9B,0x3E,0xEC,0x17,0x08,0x85,0x47,0x18,0xCC,0x1B,0x0C,0x00, +0x0E,0x01,0x02,0x0D,0xE1,0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E,0x0D,0x81,0x12,0x0D, +0x61,0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20,0x85,0x29,0x9C,0x38,0x0D, +0x21,0x04,0xE4,0x00,0x98,0xC0,0x98,0x60,0x88,0x83,0xE4,0x00,0x95,0xF2,0x98,0x61, +0x98,0x82,0xE4,0x00,0x95,0xE2,0x98,0x60,0xFC,0x80,0x18,0x08,0xE4,0x00,0x91,0xCE, +0x98,0x61,0xFC,0x80,0x18,0x08,0xE4,0x00,0x93,0x34,0x0D,0x21,0x06,0x9C,0x28,0xE4, +0x00,0x9B,0x8B,0x20,0x64,0x1E,0xE4,0x00,0x9C,0xB5,0xE4,0x00,0x9C,0xD3,0x9C,0x38, +0x0D,0x21,0x04,0xE4,0x00,0x9C,0xE8,0x0D,0x21,0x06,0x9C,0x28,0xE4,0x00,0x9C,0xAF, +0xE4,0x00,0x9E,0xA7,0xE4,0x00,0x9F,0x0F,0xE4,0x00,0x9F,0x6B,0xE4,0x00,0xA3,0x49, +0xE4,0x00,0xA0,0xB3,0xE4,0x00,0x9F,0xB7,0xE4,0x00,0x9F,0xED,0xE4,0x00,0xA0,0x23, +0xE4,0x00,0xA0,0x47,0xE4,0x00,0xA0,0x6B,0xE4,0x00,0x9E,0xA1,0xE4,0x00,0xA0,0x99, +0x20,0x60,0x28,0x20,0x64,0x3E,0xE4,0x00,0x00,0x11,0xE4,0x00,0xA1,0x35,0xE4,0x00, +0xA1,0x4F,0x85,0x29,0xE4,0x00,0xA1,0x65,0xC2,0xE0,0x10,0x01,0xE8,0x77,0x00,0xBB, +0xEB,0x17,0x00,0xBB,0xD4,0x78,0xFF,0xC6,0x85,0x29,0xE4,0x00,0xA4,0x05,0xC3,0x34, +0x00,0x01,0xCA,0xF9,0x23,0xFC,0x0A,0xF7,0x00,0xD2,0xFF,0x04,0x3C,0xC3,0x00,0x10, +0x01,0xF2,0xF8,0x07,0x6E,0x9E,0xE1,0x5E,0xF7,0x00,0xFA,0xF8,0x07,0x6E,0x22,0xE1, +0xCA,0xC3,0x00,0x10,0x01,0xC3,0x60,0x10,0x01,0xFF,0x18,0x01,0xBE,0xCA,0xE0,0x11, +0x7D,0xCB,0x39,0x22,0x00,0xFF,0x7B,0x09,0x6C,0x1F,0x57,0xFD,0x57,0x5A,0xFF,0x4F, +0x5A,0x10,0x8F,0x59,0x0B,0x9A,0x01,0x4F,0x97,0x08,0x8F,0x9B,0xEB,0x9C,0xDD,0x3B, +0x0F,0x9A,0x01,0x5F,0x57,0x00,0x5F,0x4F,0xE9,0x57,0x57,0xFF,0x4F,0x5A,0x10,0x8F, +0x59,0x0B,0x9A,0x01,0x20,0x00,0x6D,0xFF,0xA0,0x80,0x00,0x5F,0x9C,0x04,0x47,0x9C, +0xEC,0x0B,0xB8,0x01,0xC7,0xBD,0x7F,0xFF,0x47,0x9C,0xED,0xE4,0x00,0x00,0x0F,0x0B, +0x98,0x01,0x0F,0x9A,0x01,0x9E,0xE1,0x9F,0x02,0xC2,0xE2,0x30,0x04,0x23,0xFE,0xB1, +0x85,0x29,0x5C,0x63,0x04,0xE4,0x00,0xA2,0xD7,0x9A,0xE0,0x8B,0x17,0xE4,0x00,0x00, +0x1D,0x43,0x23,0xBC,0x9E,0xE1,0x13,0x39,0x00,0x8F,0x19,0xD4,0x97,0xFF,0xB4,0x40, +0x60,0xC5,0x85,0x29,0x9C,0x38,0x98,0x60,0x0D,0x21,0x04,0xE7,0xFF,0xFD,0x90,0x98, +0x61,0xE7,0xFF,0xFD,0x84,0x98,0x6F,0xE7,0xFF,0xFE,0x3A,0x0D,0x21,0x06,0x98,0x60, +0x9C,0x28,0xE7,0xFF,0xFD,0x63,0x9C,0x38,0xC2,0xE0,0x10,0x01,0x0D,0x21,0x04,0xEC, +0x17,0x08,0x83,0x0D,0x41,0x00,0xC2,0xE0,0x10,0x01,0x50,0x60,0x80,0xF2,0xF7,0x00, +0xB8,0x22,0xE0,0x52,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x00,0xC0,0x56,0xF7,0x01,0x5E, +0xE0,0x09,0x48,0x64,0x43,0xC1,0x40,0x10,0x01,0xEA,0xEA,0x00,0xD1,0x56,0xF7,0x02, +0x22,0xE0,0x6C,0xC0,0x80,0x10,0x01,0xFC,0x84,0x07,0x70,0xE7,0xFF,0xF1,0xEE,0xEA, +0xEA,0x00,0xD1,0xC6,0xF7,0xFF,0xFD,0xEE,0xEA,0x00,0xD1,0x0D,0x41,0x02,0x0D,0x21, +0x06,0x9C,0x28,0xE7,0xFF,0xFF,0x03,0x9C,0x30,0xC3,0x00,0x10,0x01,0x0D,0x21,0x0C, +0xFC,0x98,0x07,0x70,0x0D,0x41,0x08,0x8A,0xE4,0x8B,0x24,0x18,0x17,0x00,0xC3,0x00, +0x10,0x01,0x9E,0xE1,0xFF,0x18,0x07,0xF2,0xD6,0xF8,0xFF,0x9E,0x52,0xE0,0x62,0x1F, +0x19,0x1F,0x1A,0xE4,0x00,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x07,0x71,0x18,0x17,0x00, +0x9E,0xE1,0xD7,0x17,0xFF,0xDE,0x1E,0xE0,0x9E,0xC3,0x60,0x10,0x01,0x1A,0xE4,0x1F, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x3D,0xF8,0x12,0xF7,0x00,0xFA,0xFB,0x07,0x6F,0xF2, +0xFB,0x07,0x6F,0x22,0xEC,0xCC,0xC2,0xE0,0x10,0x01,0xC3,0x40,0x10,0x01,0xF3,0xB7, +0x0B,0x7A,0x9B,0x00,0xC2,0xE0,0x10,0x01,0xC3,0xC0,0x10,0x01,0xC1,0x00,0x10,0x01, +0xFE,0xF7,0x07,0x90,0xFF,0x5A,0x09,0xA8,0x8B,0x38,0xFF,0xDE,0x0C,0xF6,0xFD,0x08, +0x09,0x6C,0xE4,0x00,0x01,0x09,0xC3,0x80,0x10,0x01,0x9A,0xE0,0xFF,0x9C,0x0B,0x64, +0x8B,0x64,0x43,0x17,0xE4,0x0B,0x38,0x00,0x43,0x17,0xDC,0x4F,0x59,0x42,0x1B,0x38, +0x21,0x1B,0x58,0x20,0x9E,0xE2,0x5E,0xE2,0x09,0x23,0xFF,0xA5,0x0C,0x81,0x04,0x50, +0x60,0x20,0xE7,0xFF,0xFB,0x9C,0xC1,0x40,0x10,0x01,0xEA,0xEA,0x00,0xD1,0x0C,0x81, +0x06,0x56,0xF7,0x02,0x22,0xE1,0x74,0xE4,0x00,0x00,0x8F,0xF3,0x9B,0x07,0x6F,0x23, +0x84,0x34,0x23,0x88,0x68,0x43,0x98,0x44,0xE4,0x00,0x00,0x0F,0x43,0x98,0xF4,0x15, +0x5C,0x01,0x19,0x57,0x00,0x0B,0x9C,0x01,0xE4,0x00,0x00,0x21,0x0F,0x9A,0x02,0x4D, +0x5C,0x82,0x4F,0x9C,0x42,0x19,0x57,0x00,0x1B,0x97,0x01,0x9F,0x21,0x9F,0x02,0x5F, +0x39,0x04,0x9E,0xE2,0x9F,0x44,0xD7,0xB9,0xFE,0x2D,0xE7,0xFF,0xFF,0x45,0x50,0x60, +0x80,0xE7,0xFF,0xEF,0x82,0xEA,0xEA,0x00,0xD1,0xC6,0xF7,0xFF,0xFD,0xEE,0xEA,0x00, +0xD1,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0xE7,0xFF,0xFC,0x95,0xC2,0xE0, +0x10,0x01,0xC3,0x00,0x10,0x01,0xF0,0x77,0x0B,0xF0,0xC3,0x20,0x10,0x01,0xC2,0xE0, +0x10,0x01,0xFF,0x18,0x0C,0x02,0xFE,0xF7,0x07,0xF8,0xFF,0x39,0x08,0x00,0x9B,0x60, +0x98,0x81,0xE4,0x00,0x01,0x7D,0x0B,0x57,0x01,0xC3,0x4F,0xFF,0xE0,0x20,0x00,0x35, +0x0B,0x57,0x03,0xC3,0x4F,0xFF,0xE4,0x20,0x00,0x49,0x0B,0x58,0x01,0x18,0x19,0x00, +0x0F,0x57,0x01,0x0B,0x58,0x03,0x0F,0x57,0x03,0x13,0x59,0x00,0x23,0x41,0x22,0x0B, +0x98,0x03,0x0B,0x57,0x03,0x43,0x5C,0xD5,0x5F,0x5A,0x06,0x4F,0xDA,0xFA,0x0B,0xB8, +0x01,0x47,0x5E,0xD6,0x09,0x17,0x01,0x43,0x5A,0xF5,0x41,0x1D,0x45,0x5D,0x08,0x06, +0x4F,0xC8,0xFA,0x45,0x1E,0x46,0x43,0xC8,0xF5,0x8F,0xDA,0x5F,0xCC,0x99,0x20,0x00, +0x25,0x5F,0x46,0x51,0x20,0x01,0x11,0x18,0x99,0x00,0x0F,0xB7,0x01,0x0F,0x97,0x03, +0xE4,0x00,0x00,0x71,0x0B,0x98,0x01,0x0B,0xD7,0x01,0x43,0xDC,0xF5,0x5F,0xDE,0x06, +0x4F,0xBE,0xFA,0x47,0xDD,0xF6,0x0B,0x58,0x03,0x41,0x1E,0xED,0x0B,0xD7,0x03,0x43, +0xDA,0xF5,0x5F,0xDE,0x06,0x4F,0xBE,0xFA,0x47,0xDD,0xF6,0x43,0xBD,0xF5,0xD7,0xA8, +0x00,0x52,0x0F,0x97,0x01,0x0F,0x57,0x03,0x0B,0x57,0x01,0x9F,0x61,0x0F,0x58,0x01, +0x5F,0x7B,0x00,0x0B,0x57,0x03,0x9F,0x21,0x0F,0x58,0x03,0x9E,0xE4,0x1F,0x18,0x30, +0xD7,0x63,0xFA,0x36,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x3D,0xF9,0x1C,0x21, +0xE0,0xCA,0xF7,0x3D,0xF8,0x0D,0x41,0x18,0x0D,0x61,0x14,0x0D,0x81,0x10,0x0D,0xA1, +0x0C,0x0D,0xC1,0x08,0x0D,0xE1,0x04,0x0E,0x01,0x00,0x0D,0x21,0x1C,0xC1,0x80,0x10, +0x01,0xFD,0x8C,0x08,0xE6,0x0A,0x0C,0x01,0xC6,0x10,0x7F,0xFF,0x0E,0x0C,0x01,0x13, +0x38,0x00,0xC3,0x00,0x10,0x01,0xFB,0x38,0x00,0xB8,0x13,0x37,0x00,0xC2,0xE0,0x10, +0x01,0xFB,0x37,0x07,0x6F,0xC1,0xA0,0x10,0x01,0xC1,0xC0,0x10,0x01,0xC3,0x60,0x10, +0x01,0xC3,0x40,0x10,0x01,0x5C,0x63,0x00,0xFD,0xAD,0x07,0xF4,0xFD,0xCE,0x09,0x6C, +0xFD,0xE0,0x80,0x00,0xFD,0x5B,0x07,0x70,0xFD,0x7A,0x0B,0xF0,0xD0,0x61,0x14,0x46, +0x0B,0x2B,0x16,0x0A,0xEB,0x18,0x45,0xF0,0x7D,0x0E,0xEB,0x17,0x0D,0xEC,0x01,0x0F, +0x2B,0x19,0x13,0x0B,0x00,0xD3,0x01,0x1F,0x61,0x0B,0x6B,0x46,0x0B,0x0B,0x48,0x0F, +0x6B,0x49,0x0F,0x0B,0x47,0xD7,0x17,0x1F,0x34,0x0E,0xEB,0x47,0x0F,0x0B,0x17,0x0F, +0x2B,0x49,0x0F,0x6B,0x19,0xE4,0x00,0x07,0xAD,0xC2,0xE0,0x10,0x01,0x5F,0x98,0x04, +0xEA,0xF7,0x0B,0x81,0x5F,0x17,0x15,0x4A,0xFC,0xB8,0x0E,0xEB,0x13,0xCF,0x39,0x00, +0x30,0x9A,0xE0,0x8F,0x2B,0x0B,0x19,0x18,0x27,0x1C,0x50,0xC2,0xE0,0x10,0x01,0x5F, +0x38,0x04,0xEA,0xF7,0x0B,0x83,0x5F,0x17,0x15,0x4A,0xF9,0xB8,0x0E,0xEB,0x15,0xCE, +0xFB,0x00,0x30,0x8E,0xEB,0x0B,0x17,0x16,0x9A,0xE0,0x27,0x1C,0x50,0xC2,0xE0,0x10, +0x01,0x5F,0x38,0x04,0xEA,0xF7,0x0B,0x81,0x5F,0x17,0x15,0x4A,0xF9,0xB8,0x0E,0xEB, +0x43,0xCF,0x7B,0x00,0x30,0x9A,0xE0,0x8F,0x6B,0x0B,0x1B,0x18,0x27,0x1C,0x50,0xC2, +0xE0,0x10,0x01,0x5F,0x38,0x04,0xEA,0xF7,0x0B,0x83,0x5F,0x17,0x15,0x4A,0xF9,0xB8, +0x0E,0xEB,0x45,0xE4,0x00,0x00,0x63,0xC3,0x00,0x10,0x01,0x5F,0x77,0x04,0xEB,0x18, +0x0B,0x81,0x5E,0xF8,0x15,0x4B,0x1B,0xC0,0x0F,0x0B,0x13,0x9A,0xE0,0x27,0x3C,0x50, +0xC2,0xE0,0x10,0x01,0x5F,0x19,0x04,0xEA,0xF7,0x0B,0x83,0x5F,0x37,0x15,0x4A,0xF8, +0xB8,0x0E,0xEB,0x15,0xE7,0xFF,0xFB,0x74,0xC2,0xE0,0x10,0x01,0x13,0x0B,0x00,0xFE, +0xF7,0x0C,0x04,0x9B,0x20,0x9B,0x4C,0xFF,0x60,0x07,0xF9,0xE4,0x00,0x00,0x47,0x0B, +0x97,0x01,0xD3,0x8B,0x00,0x3D,0x0F,0x57,0x01,0x0B,0x97,0x01,0xC3,0x80,0xFF,0x2A, +0x20,0x00,0x19,0x0F,0x77,0x01,0x9F,0x21,0x1E,0xF7,0x30,0x5F,0x39,0x04,0xD7,0x19, +0xFF,0x0D,0x27,0x04,0x7D,0x0B,0x2B,0x43,0x0A,0xEB,0x13,0x42,0xF9,0xBD,0x0B,0x2B, +0x45,0x0E,0xEB,0x1B,0x0A,0xEB,0x15,0x42,0xF9,0xBD,0x0E,0xEB,0x1D,0xE4,0x00,0x00, +0x15,0x0C,0x0B,0x1B,0x0C,0x0B,0x1D,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x00,0xB8,0x22, +0xE1,0x9E,0x52,0xE0,0x52,0x0B,0x2B,0x13,0x1A,0xEA,0x00,0x4F,0x79,0x41,0x0A,0xEB, +0x15,0x4F,0x7B,0x20,0x4F,0x57,0x41,0x1B,0x2A,0x02,0x57,0x5A,0x0F,0x1A,0xEA,0x03, +0x47,0x5B,0xD5,0x1B,0x4A,0x01,0x27,0x04,0xA1,0x0B,0x0B,0x1A,0x0A,0xEB,0x1C,0x4F, +0x38,0x42,0x4F,0x57,0x42,0x5F,0x39,0x04,0x57,0x5A,0x0F,0x4F,0x39,0x20,0x1B,0x0A, +0x05,0x47,0x39,0xD5,0x1A,0xEA,0x06,0x1B,0x2A,0x04,0xE4,0x00,0x00,0x1B,0x18,0x0A, +0x04,0x18,0x0A,0x05,0x18,0x0A,0x06,0x88,0x6A,0x98,0x87,0xE7,0xFF,0xF6,0x3C,0x18, +0x6A,0x07,0xE4,0x00,0x01,0x8B,0x8A,0xEA,0x18,0x17,0x00,0xC3,0x20,0x10,0x01,0x9E, +0xE1,0xFF,0x39,0x07,0xF2,0xD6,0xF9,0xFF,0x9E,0x52,0xE0,0x62,0x1A,0xEA,0x00,0x0A, +0xEB,0x13,0x4F,0x37,0x41,0x1A,0xEA,0x02,0x0A,0xEB,0x15,0x1B,0x2A,0x01,0x1A,0xEA, +0x04,0x4F,0x37,0x41,0x56,0xF8,0x01,0x4F,0x18,0x20,0x52,0xF7,0x20,0x53,0x18,0x02, +0x1A,0xEA,0x11,0x1B,0x0A,0x12,0x0A,0xEB,0x1A,0x4F,0x17,0x42,0x1A,0xEA,0x0E,0x1B, +0x0A,0x0D,0x0A,0xEB,0x1C,0x4F,0x17,0x42,0x1B,0x2A,0x03,0x1B,0x0A,0x0F,0x1A,0xEA, +0x10,0x88,0x6A,0x50,0x80,0x1F,0xE7,0xFF,0xF5,0x66,0xC2,0xE0,0x10,0x01,0xC3,0x20, +0x10,0x01,0xC3,0x80,0x10,0x01,0x18,0x6A,0x1F,0xFE,0xF7,0x07,0x90,0xFF,0x39,0x09, +0xA8,0x9B,0x00,0xC3,0x60,0x10,0x01,0xFF,0x9C,0x0C,0xF6,0xF3,0x5B,0x07,0x6F,0x23, +0x44,0x34,0x23,0x48,0x68,0x43,0x58,0x74,0xE4,0x00,0x00,0x0F,0x43,0x58,0xE4,0x17, +0xBA,0x01,0x1B,0xB7,0x00,0x0B,0x5A,0x01,0xE4,0x00,0x00,0x21,0x0F,0x59,0x02,0x4F, +0xBA,0x82,0x4F,0x5A,0x42,0x1B,0xB7,0x00,0x1B,0x57,0x01,0x9F,0x02,0x9E,0xE2,0x9F, +0x24,0x5F,0x07,0x49,0x23,0xFF,0x1D,0x0A,0xEC,0x00,0xD2,0xFF,0x0D,0x9C,0x9A,0xE1, +0xE4,0x00,0x02,0xF5,0xD0,0x60,0x05,0x66,0xFE,0xE0,0x7F,0xFF,0xC3,0x20,0x10,0x01, +0xC3,0x40,0x10,0x01,0xEE,0xF9,0x07,0xF9,0xF8,0x1A,0x08,0x00,0xFF,0x39,0x07,0xF8, +0xFF,0x5A,0x08,0x00,0x0E,0xF9,0x03,0x0E,0xF9,0x05,0x0E,0xF9,0x07,0x18,0x1A,0x01, +0xF2,0xF8,0x00,0xB8,0x22,0xE0,0xB2,0x52,0xE0,0x52,0x1A,0xEA,0x00,0x9A,0xFF,0x88, +0x6A,0x1A,0xEA,0x01,0x1A,0xEA,0x02,0x1A,0xEA,0x03,0x1A,0xEA,0x04,0x1A,0xEA,0x05, +0x1A,0xEA,0x06,0x98,0x87,0xE7,0xFF,0xF3,0xE8,0x18,0x6A,0x07,0xE4,0x00,0x00,0x89, +0x8A,0xEA,0x18,0x17,0x00,0xC3,0x00,0x10,0x01,0x9E,0xE1,0xFF,0x18,0x07,0xF2,0xD6, +0xF8,0xFF,0x9E,0x52,0xE0,0x62,0x9B,0x1F,0x1A,0xEA,0x00,0xC2,0xE0,0x10,0x01,0xFE, +0xF7,0x07,0x71,0x1B,0x17,0x00,0xC3,0x20,0x10,0x01,0x9E,0xE1,0xFF,0x39,0x07,0x8F, +0xD6,0xF9,0xFF,0x9E,0x88,0x6A,0x50,0x80,0x1F,0xE7,0xFF,0xF3,0x60,0x18,0x6A,0x1F, +0x0A,0xEC,0x01,0x0C,0x0D,0x00,0x45,0xEF,0xBD,0x0D,0xEC,0x01,0xE4,0x00,0x02,0x03, +0xD0,0x62,0x07,0xEE,0xF2,0xF8,0x00,0xB8,0x22,0xE0,0xD2,0x52,0xE0,0x52,0xC3,0x00, +0x10,0x01,0x1A,0xEA,0x00,0xEB,0x18,0x08,0x83,0x9A,0xFF,0x1B,0x0A,0x05,0x1A,0xEA, +0x01,0x1A,0xEA,0x02,0x1A,0xEA,0x03,0x1A,0xEA,0x04,0x1A,0xEA,0x06,0x88,0x6A,0x98, +0x87,0xE7,0xFF,0xF2,0xD0,0x18,0x6A,0x07,0xE4,0x00,0x01,0x15,0x8A,0xEA,0x18,0x17, +0x00,0xC3,0x00,0x10,0x01,0x9E,0xE1,0xFF,0x18,0x07,0xF2,0xD6,0xF8,0xFF,0x9E,0x52, +0xE0,0x62,0x1A,0xEA,0x00,0x0A,0xEB,0x13,0x4F,0x17,0x41,0x1A,0xEA,0x02,0x1B,0x0A, +0x01,0x0A,0xEB,0x15,0x4F,0x17,0x41,0x1A,0xEA,0x04,0x1B,0x0A,0x03,0x12,0xEB,0x00, +0x57,0x17,0x01,0x4E,0xF7,0x20,0x53,0x18,0x20,0x52,0xF7,0x02,0x1B,0x0A,0x11,0x1A, +0xEA,0x12,0x0A,0xEB,0x1A,0x4F,0x17,0x42,0x1A,0xEA,0x0E,0x1B,0x0A,0x0D,0x0A,0xEB, +0x1C,0x4F,0x17,0x42,0x1A,0xEA,0x10,0x1B,0x0A,0x0F,0x88,0x6A,0x50,0x80,0x1F,0xE7, +0xFF,0xF1,0xF4,0x9A,0xE0,0x18,0x6A,0x1F,0x43,0x17,0x74,0x0B,0x38,0x00,0x43,0x17, +0x54,0x4F,0x59,0x42,0x1B,0x38,0x21,0x1B,0x58,0x20,0x9E,0xE2,0x5E,0xE7,0x49,0x23, +0xFF,0xA5,0x45,0xF0,0x7D,0x9A,0xE2,0x0D,0xEC,0x01,0x0E,0xED,0x00,0xE4,0x00,0x00, +0x61,0x9B,0x00,0xD2,0xFF,0xE6,0x28,0xE7,0xFF,0xF9,0x61,0x0A,0xEB,0x46,0x0B,0x0B, +0x16,0x5E,0xF8,0x15,0x4B,0x21,0x01,0xCE,0xF9,0x00,0x30,0x8E,0xEB,0x4B,0x60,0x0A, +0x0B,0x17,0x16,0x9A,0xE0,0xD3,0x1F,0xE0,0xA4,0xE7,0xFF,0xF8,0x43,0x0E,0x01,0x02, +0x0D,0xE1,0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E,0x0D,0x81,0x12,0x0D,0x61,0x16,0x0D, +0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20,0x85,0x29,0x5C,0x63,0x00,0xCF,0x03,0x00, +0x34,0xCE,0xE3,0x00,0x68,0x1C,0x21,0xC0,0xC0,0x80,0x10,0x01,0x0D,0x21,0x3C,0x1C, +0x61,0x04,0xFC,0x84,0x09,0x38,0xC0,0xA0,0x10,0x01,0x8C,0x98,0xFC,0xA5,0x0A,0xFC, +0x50,0xC0,0x1A,0x8C,0xB7,0xE4,0x00,0x2A,0x3C,0x0D,0x21,0x3E,0x1C,0x21,0x40,0x85, +0x29,0x1C,0x21,0xD0,0x0D,0x41,0x28,0x0D,0x81,0x20,0x5D,0x43,0x00,0x5D,0x84,0x00, +0x42,0xEC,0x55,0x9E,0xE1,0x5E,0xF7,0x00,0x57,0x17,0x03,0x4E,0xF7,0x11,0x5F,0x00, +0x09,0x0D,0x61,0x24,0x0D,0xA1,0x1C,0x0D,0xC1,0x18,0x49,0xA1,0x01,0x0D,0x21,0x2C, +0x8D,0xB7,0xC1,0xD8,0x00,0x21,0xE4,0x00,0x6A,0xBA,0x99,0x60,0xFD,0xCE,0xB9,0xDF, +0xE4,0x00,0x00,0xE3,0x88,0x61,0x50,0x80,0x22,0x50,0xA0,0x18,0xE7,0xFF,0xC1,0x5A, +0x9A,0xE4,0x43,0x0E,0x54,0x13,0x58,0x00,0x1F,0x01,0x18,0x4F,0x3A,0x09,0x57,0x5A, +0x01,0x8F,0x19,0x17,0x18,0xE8,0x5F,0x40,0x01,0x4B,0x50,0x7B,0x47,0x5A,0xC4,0x5F, +0x17,0x02,0x20,0x00,0x25,0x4F,0x17,0x20,0x5F,0x18,0x02,0x1F,0x61,0x18,0x47,0x18, +0xD5,0x8F,0x3B,0x1B,0x19,0xE8,0x9D,0x41,0x5D,0x4A,0x00,0xD5,0x4C,0x00,0xE1,0x06, +0xE0,0x81,0xCC,0x6B,0x00,0x18,0x88,0x81,0x8C,0x77,0x50,0xA0,0x18,0x9D,0x61,0xE7, +0xFF,0xC1,0x94,0xE4,0x00,0x00,0x1D,0x9E,0xE1,0xD2,0xE8,0xFD,0x4E,0xE7,0xFF,0xFF, +0xC5,0x5E,0xEB,0x00,0xD5,0xB7,0xFC,0x85,0xE4,0x00,0x69,0xDC,0x0D,0x21,0x2E,0x0D, +0xC1,0x1A,0x0D,0xA1,0x1E,0x0D,0x81,0x22,0x0D,0x61,0x26,0x0D,0x41,0x2A,0x1C,0x21, +0x30,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x77,0x01,0x62,0x85,0x29,0xC2,0xE0,0x10, +0x01,0xEC,0x77,0x08,0x56,0x85,0x29,0x1C,0x21,0xC8,0x0D,0x21,0x34,0x0D,0x41,0x30, +0x0D,0x61,0x2C,0x0D,0x81,0x28,0x0D,0xA1,0x24,0x0D,0xC1,0x20,0xD0,0x69,0x15,0xE5, +0x4F,0x03,0x10,0xC2,0xF8,0x00,0x21,0xC1,0x98,0x00,0x21,0xFE,0xF7,0xB9,0x2C,0xC1, +0x78,0x00,0x21,0x8E,0xF8,0xFD,0x8C,0xB9,0xDC,0x0E,0xF7,0x02,0x05,0xA0,0x81,0xFD, +0x6B,0xB9,0xDF,0x86,0xE9,0x1C,0x83,0x01,0xCC,0x63,0x00,0x1A,0xCC,0x84,0x00,0x1A, +0x9C,0x9F,0xE7,0xFF,0xFD,0x9E,0xE4,0x00,0x05,0x05,0x0C,0x61,0x04,0xE4,0x00,0x68, +0xAC,0x0C,0x61,0x06,0x99,0x40,0x9C,0x7E,0x5C,0x63,0x00,0xCC,0x63,0x00,0x1A,0x8D, +0x63,0x1C,0x61,0x08,0x50,0x80,0x22,0x50,0xA0,0x18,0xE7,0xFF,0xBF,0x3E,0x8B,0x0A, +0x9A,0xE4,0x5F,0x03,0x39,0x20,0x00,0xDD,0x43,0x2B,0xC4,0x13,0x79,0x00,0x1F,0x21, +0x20,0x4F,0x5B,0x09,0x57,0x7B,0x01,0x8F,0x3A,0x17,0x39,0xE8,0x5F,0x60,0x01,0x4B, +0x70,0x7B,0x47,0x7B,0xCC,0x5F,0x37,0x02,0x20,0x00,0x25,0x4F,0x37,0x20,0x5F,0x39, +0x02,0x1D,0x01,0x20,0x47,0x39,0xDD,0x8F,0x48,0x1B,0x3A,0xE8,0x9F,0x01,0x9E,0xE1, +0xD2,0xE8,0xFE,0x16,0xCC,0x6A,0x00,0x06,0x1C,0x81,0x08,0x8C,0x6D,0x50,0xA0,0x18, +0xE7,0xFF,0xBF,0x72,0x9D,0x44,0x5D,0x43,0x89,0x23,0xFE,0x61,0xE4,0x00,0x01,0x99, +0xE4,0x00,0x67,0xA6,0x1C,0x61,0x08,0x50,0x80,0x22,0x50,0xA0,0x18,0xE7,0xFF,0xBE, +0x58,0x9A,0xE4,0xD2,0xE7,0x01,0xC2,0x43,0x0C,0xBC,0x13,0x58,0xFC,0x1F,0x01,0x20, +0x4F,0x3A,0x09,0x57,0x5A,0x01,0x8F,0x19,0x17,0x18,0xE8,0x5F,0x40,0x01,0x4B,0x50, +0x7B,0x47,0x5A,0xC4,0x5F,0x17,0x02,0x20,0x00,0x25,0x4F,0x17,0x20,0x5F,0x18,0x02, +0x1F,0x61,0x20,0x47,0x18,0xD5,0x8F,0x3B,0x1B,0x19,0xE8,0x9E,0xE1,0xD2,0xE8,0xFE, +0x36,0xE4,0x00,0x00,0xD5,0xE4,0x00,0x66,0xFC,0x1C,0x61,0x08,0x50,0x80,0x22,0x50, +0xA0,0x18,0xE7,0xFF,0xBD,0xAE,0xE4,0x00,0x00,0x9F,0x43,0x0B,0xBC,0x13,0x58,0xFC, +0x1F,0x01,0x20,0x4F,0x3A,0x09,0x57,0x5A,0x01,0x8F,0x19,0x13,0x18,0xE8,0x5F,0x40, +0x01,0x4B,0x50,0x7B,0x47,0x5A,0xC4,0x5F,0x17,0x02,0x5F,0x5A,0x02,0x20,0x00,0x25, +0x4F,0x17,0x20,0x5F,0x18,0x02,0x1F,0x81,0x20,0x47,0x18,0xD5,0x8F,0x3C,0x1B,0x19, +0xE8,0x9E,0xE1,0xD2,0xE8,0xFE,0x3E,0xC1,0x18,0x00,0x21,0x9D,0x64,0xFD,0x08,0xB9, +0xF7,0xD5,0x68,0x00,0x52,0x9A,0xE4,0xE7,0xFF,0xFF,0x67,0x04,0x60,0x81,0x1C,0x81, +0x08,0x50,0xA0,0x18,0xE7,0xFF,0xBD,0xCA,0xE4,0x00,0x66,0x3C,0xE4,0x00,0x02,0x59, +0xE4,0x00,0x66,0x06,0x99,0x40,0x51,0xC0,0x22,0x1C,0x61,0x08,0x50,0x80,0x22,0x50, +0xA0,0x18,0xE7,0xFF,0xBC,0xAE,0x5E,0xEA,0x00,0x22,0xE0,0xE6,0x12,0xE1,0x15,0x56, +0xF7,0x0F,0x52,0xF7,0x40,0x1A,0xE1,0x15,0x12,0xE1,0x0C,0x56,0xF7,0x0F,0x52,0xF7, +0x50,0x13,0x01,0x0E,0x1A,0xE1,0x0C,0x9A,0xF0,0x47,0x17,0xC4,0x53,0x18,0x06,0x1B, +0x01,0x0E,0x13,0x01,0x1D,0x46,0xF7,0xC4,0x52,0xF7,0x07,0x1A,0xE1,0x1D,0xE4,0x00, +0x01,0x49,0x9A,0xE4,0x43,0x0C,0xBC,0x13,0x58,0xFC,0x1F,0x01,0x20,0x4F,0x3A,0x09, +0x57,0x5A,0x01,0x8F,0x19,0x17,0x18,0xE8,0x5F,0x40,0x01,0x4B,0x50,0x7B,0x47,0x5A, +0xC4,0x5F,0x17,0x02,0x20,0x00,0x25,0x4F,0x17,0x20,0x5F,0x18,0x02,0x1F,0x61,0x20, +0x47,0x18,0xD5,0x8F,0x3B,0x1B,0x19,0xE8,0x1F,0x77,0xFD,0x9E,0xE1,0x5F,0x7B,0x00, +0xD2,0xE7,0xFE,0x26,0xE4,0x00,0x00,0xF7,0x5F,0x97,0x00,0x27,0x84,0x2B,0x11,0x1A, +0x00,0xE4,0x00,0x00,0x0F,0x11,0x19,0x00,0x4F,0xA8,0x09,0x55,0x08,0x01,0x1F,0xC1, +0x20,0x5D,0x00,0x01,0x8F,0xDD,0x49,0x10,0x7B,0x17,0x9E,0xE8,0x47,0x88,0xE4,0x1B, +0x9E,0xE8,0x8B,0xDC,0x5F,0x98,0x02,0x20,0x00,0x31,0x43,0x9B,0xBC,0x4F,0x9C,0x20, +0x5F,0x9C,0x02,0x47,0x9C,0xF5,0x1D,0x01,0x20,0x8F,0xA8,0x1B,0x9D,0xE8,0x9E,0xE1, +0x9F,0x01,0x1F,0x5A,0x15,0x5F,0x18,0x00,0x1F,0x39,0x13,0x5F,0x97,0x00,0xD4,0x7C, +0xFD,0x55,0xCC,0x6A,0x00,0x18,0x19,0xC1,0x1F,0x8C,0x6D,0x1C,0x81,0x08,0x50,0xA0, +0x18,0x9D,0x41,0xE7,0xFF,0xBB,0xAC,0xD1,0x42,0xF7,0x8A,0xE7,0xFF,0xFD,0xFD,0x98, +0x64,0x1F,0x4B,0x02,0x40,0x63,0xDD,0x1F,0x2B,0x03,0x9F,0x64,0x5C,0x63,0x00,0x5F, +0x1B,0x00,0x9A,0xE0,0xE7,0xFF,0xFE,0xE9,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81, +0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32,0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0x1C, +0x21,0xE8,0x0D,0x61,0x0C,0x0D,0x21,0x14,0x0D,0x41,0x10,0x0D,0x81,0x08,0x0D,0xA1, +0x04,0x89,0x63,0xD0,0x69,0x0C,0xF5,0x4F,0x03,0x10,0xC2,0xF8,0x00,0x21,0xFE,0xF7, +0xB9,0x54,0x8E,0xF8,0x0E,0xF7,0x02,0x86,0xE9,0xCD,0x43,0x00,0x1A,0xC1,0xA0,0x10, +0x01,0x99,0x80,0xFD,0xAD,0x08,0x58,0x8D,0x4D,0x13,0x4A,0x01,0x13,0x2A,0x00,0x13, +0x0A,0x03,0x12,0xEA,0x02,0x4C,0x9A,0xC0,0x4C,0xB8,0xC0,0x4F,0x5A,0x80,0x4F,0x18, +0x80,0x8C,0x9A,0x8C,0xB8,0x8C,0x99,0x8C,0xB7,0x4F,0x39,0x40,0x4E,0xF7,0x40,0x88, +0x6C,0x8C,0x99,0x8C,0xB7,0x9D,0x81,0xE4,0x00,0x65,0x3C,0x5D,0x8C,0x00,0x9D,0x44, +0xD1,0x86,0xFE,0x4E,0x98,0x66,0x98,0x80,0x98,0xA0,0xCD,0x4B,0x00,0x1A,0x8D,0x4D, +0x10,0xCA,0x18,0xE4,0x00,0x65,0x6C,0x98,0x66,0x98,0x80,0x98,0xA1,0x10,0xCA,0x18, +0xE4,0x00,0x65,0x52,0x98,0x66,0x98,0x81,0x98,0xA0,0x10,0xCA,0x19,0xE4,0x00,0x65, +0x38,0x98,0x66,0x98,0x81,0x98,0xA1,0x10,0xCA,0x19,0xE4,0x00,0x65,0x1E,0x98,0x66, +0x98,0x82,0x98,0xA0,0x98,0xC0,0xE4,0x00,0x65,0x06,0x98,0x66,0x98,0x82,0x98,0xA1, +0x98,0xC0,0xE4,0x00,0x64,0xEE,0x98,0x66,0x98,0x83,0x98,0xA0,0x98,0xC0,0xE4,0x00, +0x64,0xD6,0x98,0x66,0xE4,0x00,0x00,0x83,0xC1,0xA0,0x10,0x01,0x99,0x40,0xFD,0xAD, +0x08,0x76,0x5D,0x8A,0x00,0x41,0x6A,0x6C,0x98,0x60,0x88,0x8C,0x98,0xA0,0x10,0xCB, +0x00,0xE4,0x00,0x64,0x90,0x98,0x60,0x88,0x8C,0x98,0xA1,0x10,0xCB,0x00,0x9D,0x41, +0xE4,0x00,0x64,0x72,0x21,0x4F,0x7A,0x98,0x60,0x98,0x83,0x98,0xA0,0x98,0xC0,0xE4, +0x00,0x64,0x54,0x98,0x60,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41, +0x12,0x0D,0x21,0x16,0x98,0x83,0x98,0xA1,0x98,0xC0,0x1C,0x21,0x18,0xE4,0x00,0x64, +0x19,0xC3,0x00,0x10,0x01,0x0D,0xA1,0x06,0xFE,0xF8,0x08,0x72,0xF3,0x38,0x08,0x72, +0x13,0x57,0x01,0x13,0x17,0x03,0x4C,0x9A,0xC0,0x12,0xF7,0x02,0x4C,0xB8,0xC0,0x4F, +0x5A,0x80,0x4F,0x18,0x80,0x8C,0x9A,0x8C,0xB8,0x8C,0x99,0x8C,0xB7,0x4F,0x39,0x40, +0x4E,0xF7,0x40,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x98, +0x60,0x8C,0x99,0x8C,0xB7,0x1C,0x21,0x18,0xE4,0x00,0x63,0x1B,0xC1,0x60,0x10,0x01, +0x99,0x40,0xFD,0x6B,0x08,0x79,0x4D,0xAA,0x11,0x55,0x8A,0x03,0x10,0xCB,0x00,0x88, +0x6D,0x88,0x8C,0x98,0xA0,0xE4,0x00,0x63,0x48,0x10,0xCB,0x00,0x88,0x6D,0x88,0x8C, +0x98,0xA1,0x9D,0x41,0xE4,0x00,0x63,0x2A,0x5D,0x4A,0x00,0x9D,0x61,0xD1,0x48,0xFE, +0xCE,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16, +0x1C,0x21,0x18,0x85,0x29,0x1C,0x21,0xE0,0x0D,0xC1,0x08,0x0D,0x21,0x1C,0x0D,0x41, +0x18,0x0D,0x61,0x14,0x0D,0x81,0x10,0x0D,0xA1,0x0C,0x0D,0xE1,0x04,0x89,0xC4,0xD0, +0x66,0x00,0xB5,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xB9,0x7C,0x4C,0x63,0x10,0x8C,0x77, +0x0E,0xE3,0x02,0x86,0xE9,0x99,0xED,0xC9,0x60,0x18,0x08,0xE4,0x00,0x02,0xBF,0x24, +0x84,0xC3,0xC2,0xE0,0x10,0x01,0xE9,0x77,0x01,0x5F,0xC2,0xE0,0x10,0x01,0xC1,0x61, +0x00,0x64,0x20,0x00,0x4D,0x9B,0x01,0x99,0xE7,0xFB,0x17,0x08,0x50,0xC9,0x60,0x20, +0x09,0xE4,0x00,0x01,0x7F,0xF8,0x17,0x08,0x50,0x99,0xE7,0xE4,0x00,0x01,0x6B,0x1E, +0xE4,0xFE,0xD2,0xE1,0x04,0xC1,0xD0,0x87,0x05,0x22,0x5D,0xC1,0x01,0xCA,0xE0,0x18, +0x08,0x49,0xE2,0x6B,0xC9,0x60,0x10,0x06,0xE4,0x00,0x00,0xDD,0xD0,0x81,0x05,0x01, +0x1E,0xE4,0xFE,0xD2,0xE1,0x05,0x19,0xD0,0x87,0x05,0x7A,0x5C,0x81,0x01,0xCA,0xE0, +0x18,0x08,0xC9,0x60,0x10,0x06,0x99,0xA0,0x49,0xE2,0x6B,0x49,0x6B,0xB8,0x89,0x4D, +0xE4,0x00,0x00,0x9B,0xD0,0x81,0x05,0x21,0x1E,0xE4,0xFE,0xD2,0xE1,0x05,0x19,0xD0, +0x87,0xFD,0xDE,0xE4,0x00,0x01,0x57,0xD0,0x81,0x05,0xC9,0x5C,0x80,0xE1,0xCA,0xE0, +0x18,0x08,0xC9,0x60,0x08,0x03,0x49,0xE1,0x6B,0x49,0x6B,0xB8,0xE4,0x00,0x01,0x55, +0xD0,0x81,0x05,0x71,0xD0,0x87,0x05,0x82,0x5C,0x81,0x01,0xCA,0xE0,0x18,0x08,0x49, +0xE2,0x6B,0xC9,0x60,0x20,0x09,0x49,0x6B,0xB8,0x99,0xA2,0x99,0x41,0x49,0x81,0x01, +0xE4,0x00,0x01,0x41,0x99,0xE1,0xE4,0x00,0x00,0xF9,0x99,0xE7,0xC9,0x60,0x18,0x08, +0x99,0xA2,0x99,0x41,0x99,0x83,0xE4,0x00,0x00,0x21,0x99,0xE1,0xC9,0x60,0x32,0x0B, +0x99,0xA2,0x99,0x41,0x99,0x80,0x98,0x60,0xE4,0x00,0x00,0xF5,0x99,0xE7,0xC9,0x60, +0x18,0x08,0xE4,0x00,0x00,0x35,0x99,0xA0,0x99,0xE7,0xC9,0x60,0x18,0x08,0x89,0x4D, +0x99,0x83,0xE4,0x00,0x00,0x21,0x99,0xE1,0xC9,0x60,0x32,0x0B,0x99,0xA0,0x99,0x80, +0x89,0x4D,0x98,0x61,0xE4,0x00,0x00,0x9D,0x99,0xE7,0xE4,0x00,0x00,0x2D,0x99,0xE7, +0xC9,0x60,0x18,0x08,0x99,0xA2,0x99,0x41,0x99,0x83,0xE4,0x00,0x00,0x21,0x99,0xE1, +0xC9,0x60,0x32,0x0B,0x99,0xA2,0x99,0x41,0x99,0x80,0x98,0x62,0xE4,0x00,0x00,0x4D, +0x99,0xE7,0xC9,0x60,0x08,0x03,0x99,0xA0,0x89,0x4D,0xE4,0x00,0x00,0x29,0x99,0xE7, +0xE4,0x00,0x00,0x0D,0x99,0xE1,0xC9,0x60,0x10,0x06,0x99,0xA2,0x99,0x41,0x99,0x80, +0x98,0x63,0xE7,0xFF,0x9D,0xAE,0x88,0x6A,0x88,0x8D,0xE4,0x00,0x75,0x92,0x88,0x6A, +0x88,0x8B,0xE4,0x00,0x60,0x6E,0x21,0xA0,0x3E,0x88,0x6A,0x88,0x8B,0xE4,0x00,0x71, +0x6C,0xE4,0x00,0x00,0x1F,0x21,0xA0,0x2C,0x88,0x6A,0x88,0x8B,0xE4,0x00,0x72,0xC8, +0x88,0x6A,0x05,0x60,0xFF,0xC9,0x6B,0xFF,0xFF,0x88,0x8B,0xE4,0x00,0x62,0xF4,0x88, +0x8B,0x88,0x6A,0xE4,0x00,0x60,0x7C,0x98,0x62,0xE4,0x00,0x5D,0xFC,0xC2,0xE0,0x10, +0x01,0x98,0x60,0xEC,0x17,0x08,0x48,0xC1,0xA0,0x10,0x01,0xEC,0x0D,0x08,0x4C,0xE4, +0x00,0x6A,0x38,0x98,0x60,0xE4,0x00,0x62,0x38,0x98,0x60,0x88,0x8B,0xE4,0x00,0x61, +0x28,0x88,0x6F,0xE4,0x00,0x5D,0x54,0x98,0x60,0xE4,0x00,0x63,0x78,0x21,0x84,0x5E, +0xED,0x8D,0x08,0x4C,0x98,0x61,0xE4,0x00,0x69,0xEA,0x98,0x63,0xE4,0x00,0x61,0xEA, +0xE4,0x00,0x00,0x2B,0x21,0x8C,0x46,0x98,0x61,0x88,0x8B,0xE4,0x00,0x60,0xCC,0x98, +0x61,0xE4,0x00,0x63,0x28,0xE4,0x00,0x67,0x0C,0x1C,0x63,0x13,0x5C,0x83,0x00,0x88, +0x6A,0x5C,0x82,0x93,0x20,0x00,0x1B,0x50,0x80,0x14,0xE4,0x00,0x64,0x2A,0x88,0x6A, +0x98,0x8C,0xE4,0x00,0x63,0x4C,0xC2,0xE0,0x10,0x01,0x88,0x6E,0xED,0xD7,0x08,0x54, +0xE7,0xFF,0xF1,0xCE,0x88,0x6E,0x0D,0xE1,0x06,0x0D,0xC1,0x0A,0x0D,0xA1,0x0E,0x0D, +0x81,0x12,0x0D,0x61,0x16,0x0D,0x41,0x1A,0x0D,0x21,0x1E,0x1C,0x21,0x20,0xE7,0xFF, +0xF7,0x63,0xC2,0xE0,0x10,0x01,0x1C,0x21,0xE8,0xEC,0x77,0x01,0x60,0x0D,0x41,0x10, +0x0D,0x61,0x0C,0x0D,0x21,0x14,0x0D,0x81,0x08,0x0D,0xA1,0x04,0x89,0x43,0xC1,0x60, +0x10,0x01,0xE7,0xFF,0xFA,0xA6,0xFD,0x6B,0x00,0xDE,0x25,0x44,0x29,0x21,0x4D,0x66, +0xE4,0x00,0x00,0x81,0x99,0x40,0xC1,0x80,0x10,0x01,0xC1,0xA0,0x10,0x01,0xF2,0xEC, +0x08,0x50,0x88,0x6A,0x98,0x80,0x22,0xE4,0x1C,0xE8,0x8D,0x08,0x11,0x9D,0x41,0xE4, +0x00,0x68,0xD2,0x5D,0x4A,0x00,0xD1,0x44,0xFF,0x46,0xE7,0xFF,0xDE,0x3C,0xC2,0xE0, +0x10,0x01,0x0C,0x6B,0x0B,0xEB,0x17,0x06,0xFF,0x53,0x18,0x20,0xE4,0x00,0x00,0x2D, +0xE7,0xFF,0xDE,0x10,0xC2,0xE0,0x10,0x01,0x0C,0x6B,0x0F,0xEB,0x17,0x06,0xFF,0x53, +0x18,0x80,0xEF,0x17,0x06,0xFF,0x0D,0xA1,0x06,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D, +0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18,0x85,0x29,0x1C,0x21,0xD0,0xC2,0xE0,0x10, +0x01,0x0D,0x41,0x28,0x0D,0xC1,0x18,0xEE,0xF7,0x00,0xDA,0x0D,0x21,0x2C,0x0D,0x61, +0x24,0x0D,0x81,0x20,0x0D,0xA1,0x1C,0x0D,0xE1,0x14,0x0E,0x01,0x10,0x0E,0x21,0x0C, +0x0E,0x41,0x08,0x0E,0x61,0x04,0x5E,0xE0,0x41,0x89,0x43,0x49,0xC1,0x01,0x24,0x64, +0x69,0x1E,0xE3,0xFE,0xD2,0xE1,0x04,0xA9,0xD0,0x67,0x04,0xC2,0xD0,0x69,0x04,0xD2, +0xD0,0x68,0x04,0xE2,0xE4,0x00,0x01,0x0B,0x51,0x60,0x1A,0x9A,0xE0,0x20,0x60,0x5C, +0x9A,0xE0,0xD1,0x45,0x00,0x92,0x9A,0xE1,0x21,0x44,0x30,0x21,0x4C,0x24,0xD1,0x46, +0x00,0x32,0x9A,0xE0,0xCE,0xF7,0x00,0x34,0xC1,0xE0,0x10,0x01,0xC2,0x00,0x10,0x01, +0xFD,0xEF,0x09,0x38,0xFE,0x10,0x08,0x12,0x99,0x80,0xC2,0x40,0x10,0x01,0xC2,0x60, +0x10,0x01,0x8D,0xF7,0x8E,0x17,0x89,0xAC,0x1E,0x2A,0xFE,0xFE,0x52,0x0B,0xE0,0xFE, +0x73,0x08,0xAA,0x88,0x6D,0x98,0x81,0x88,0xAE,0xE4,0x00,0x6D,0x18,0x42,0xEF,0x64, +0x25,0x44,0x5D,0x42,0xF0,0x64,0x26,0x24,0x45,0x42,0xEC,0x9C,0xD1,0x47,0x00,0x5A, +0xD1,0x48,0x00,0x56,0x42,0xEC,0x94,0x0C,0x77,0x01,0x9D,0xA1,0x9D,0x82,0x5D,0xAD, +0x00,0xD5,0x6D,0xFE,0x95,0xE4,0x00,0x00,0x4F,0x51,0x60,0x1A,0xE4,0x00,0x00,0x2D, +0x99,0x63,0xE7,0xFF,0xFF,0x21,0x99,0x64,0xE7,0xFF,0xFF,0x15,0x99,0x68,0xE7,0xFF, +0xFF,0x09,0x9A,0xE0,0xD1,0x42,0xFB,0x66,0xE7,0xFF,0xFE,0xF9,0x0E,0x61,0x06,0x0E, +0x41,0x0A,0x0E,0x21,0x0E,0x0E,0x01,0x12,0x0D,0xE1,0x16,0x0D,0xC1,0x1A,0x0D,0xA1, +0x1E,0x0D,0x81,0x22,0x0D,0x61,0x26,0x0D,0x41,0x2A,0x0D,0x21,0x2E,0x1C,0x21,0x30, +0x85,0x29,0x9C,0x30,0x0D,0x41,0x08,0x0D,0x21,0x0C,0x0D,0x61,0x04,0x89,0x44,0xD0, +0x67,0x08,0x15,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xB9,0x98,0x4C,0x63,0x10,0x8C,0x77, +0xC2,0xE0,0x10,0x01,0x0F,0x03,0x02,0xFE,0xF7,0x06,0xFE,0x87,0x09,0x0B,0x17,0x01, +0xC7,0x18,0xFF,0xDF,0x0F,0x17,0x01,0xD0,0x88,0x06,0xD5,0x9A,0xE1,0x4E,0xF7,0x24, +0xC6,0xF7,0x01,0x83,0xD2,0xE0,0x06,0x6A,0xE4,0x00,0x01,0x6F,0x0B,0x17,0x01,0xC7, +0x18,0xFF,0xDF,0x0F,0x17,0x01,0xD0,0x88,0x05,0xDD,0x9A,0xE1,0x4E,0xF7,0x24,0xC7, +0x17,0x01,0x8C,0xD3,0x00,0x04,0xE6,0x56,0xF7,0x03,0xD2,0xE0,0x05,0x3A,0x88,0x64, +0xE7,0xFF,0xFC,0xF4,0xCE,0xEA,0x00,0x34,0xC1,0x60,0x10,0x01,0xFD,0x6B,0x09,0x38, +0x8D,0x77,0x88,0x6B,0xE7,0xFF,0xA0,0xA4,0xE7,0xFF,0xA0,0x1A,0xD0,0x60,0x04,0x2A, +0x88,0x6B,0xE7,0xFF,0xA1,0x06,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x01,0x62,0x22,0xE5, +0xCE,0xE4,0x00,0x00,0x41,0xD0,0x88,0x03,0x65,0x9A,0xE1,0x4E,0xF7,0x24,0xC7,0x17, +0x01,0x8C,0x23,0x01,0x36,0x56,0xF7,0x03,0x22,0xE1,0x64,0x88,0x6A,0xE7,0xFF,0xFC, +0x5A,0x88,0x6A,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0xE7, +0xFF,0xEA,0x57,0x0B,0x17,0x01,0xC7,0x18,0xFF,0x7F,0x0F,0x17,0x01,0xD0,0x88,0x01, +0xA5,0x4F,0x04,0x10,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xB9,0xB8,0x8E,0xF8,0x0E,0xF7, +0x02,0x86,0xE9,0x98,0x67,0xE4,0x00,0x00,0x19,0x98,0x68,0xE4,0x00,0x00,0x0D,0x88, +0x6A,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0xE7,0xFF,0xFB, +0xBB,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0xC2, +0xE0,0x10,0x01,0x98,0x60,0xFE,0xF7,0x08,0x12,0xCB,0x40,0xFF,0xFE,0x0B,0x37,0x00, +0x4F,0x19,0xFA,0x47,0x38,0xCE,0x43,0x19,0xC5,0x8C,0x78,0x5F,0x03,0x04,0xCB,0x20, +0xFF,0xFE,0x9E,0xE2,0x5C,0x79,0x17,0x48,0x78,0xD0,0xC3,0x00,0x10,0x01,0xFF,0x18, +0x08,0x46,0xD6,0xF8,0xFE,0xDE,0x85,0x29,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0x04, +0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0x08,0xC2,0xE0,0x10,0x01,0x9B,0x04,0xEC,0x17, +0x08,0x0C,0x98,0x64,0xC2,0xE0,0x10,0x01,0x98,0x80,0xEF,0x17,0x01,0x60,0xE7,0xFF, +0xF4,0x8F,0x20,0x64,0x3E,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x08,0x06,0xE4,0x00,0x00, +0x41,0x20,0x68,0x3E,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x08,0x0A,0xE4,0x00,0x00,0x23, +0x9A,0xE0,0x20,0x6C,0x2E,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x08,0x0E,0x88,0x77,0x85, +0x29,0x20,0x64,0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x08,0x04,0xE4,0x00,0x00,0x3D, +0x20,0x68,0x3E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x08,0x08,0xE4,0x00,0x00,0x1F,0x20, +0x6C,0x2E,0xC2,0xE0,0x10,0x01,0xEC,0x97,0x08,0x0C,0x85,0x29,0xC3,0x80,0x10,0x01, +0xC3,0x60,0x10,0x01,0xC3,0x40,0x10,0x01,0xC3,0x20,0x10,0x01,0xC3,0x00,0x10,0x01, +0xFF,0x9C,0x08,0x90,0xFF,0x7B,0x08,0xD8,0xFF,0x5A,0x08,0x87,0xFF,0x39,0x0B,0xD0, +0xFF,0x18,0x08,0xC8,0x20,0x69,0x7E,0x0A,0xFC,0x04,0x0B,0xD9,0x09,0x43,0xD7,0xF5, +0x5F,0xDE,0x06,0x4F,0xBE,0xFA,0x47,0xDD,0xF6,0x43,0xBE,0xED,0xC3,0xA0,0x19,0x0C, +0x20,0x00,0x7D,0x0B,0xBC,0x07,0x0B,0x99,0x0B,0x43,0xBD,0xE5,0x5F,0xBD,0x06,0x4F, +0x9D,0xFA,0x47,0xBC,0xEE,0x43,0x9D,0xE5,0xC3,0x80,0x1F,0x48,0x20,0x05,0x1D,0x0E, +0xF8,0x01,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0x97,0x0B,0x99,0x0B,0x0E,0xF8,0x03, +0x0B,0x39,0x0F,0x12,0xFA,0x00,0x0F,0x9B,0x01,0x0F,0x3B,0x03,0x52,0xF7,0x02,0xE4, +0x00,0x01,0x59,0xC3,0xA0,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFF,0xBD,0x08,0x8C,0xFE, +0xF7,0x0B,0xF0,0x20,0x6D,0x96,0x0B,0x79,0x01,0x0B,0xDC,0x01,0x43,0xDE,0xDD,0x5F, +0xDE,0x06,0x4F,0x7E,0xFA,0x47,0xDB,0xF6,0x43,0x7E,0xDD,0xC3,0x60,0x19,0x0C,0x20, +0x00,0x7D,0x0B,0x39,0x03,0x0B,0x7C,0x03,0x43,0x7B,0xCD,0x5F,0x7B,0x06,0x4F,0x3B, +0xFA,0x47,0x79,0xDE,0x43,0x3B,0xCD,0xC3,0x20,0x1F,0x48,0x20,0x03,0x61,0x0B,0x37, +0x17,0x0F,0x38,0x01,0x0B,0x37,0x19,0x0F,0x38,0x03,0x0B,0x37,0x47,0x0A,0xF7,0x49, +0x0E,0xF8,0x07,0x12,0xFA,0x00,0x52,0xF7,0x01,0x0F,0x38,0x05,0x1A,0xFA,0x00,0x9A, +0xE2,0x1A,0xFD,0x00,0xE4,0x00,0x01,0x5F,0xD0,0x64,0x01,0xD6,0x0B,0x3B,0x00,0x0B, +0x7B,0x02,0x43,0x79,0xDD,0x9F,0x6E,0x5F,0x63,0x9B,0x20,0x00,0x2F,0xC3,0x20,0x10, +0x01,0xEB,0x39,0x08,0xCB,0x0B,0x18,0x01,0x0F,0x17,0x47,0x9B,0x02,0x0F,0x37,0x49, +0x1B,0x17,0x00,0x12,0xFA,0x00,0x9B,0x1D,0x46,0xF7,0xC4,0x1A,0xFA,0x00,0xE4,0x00, +0x00,0xEB,0xD0,0x65,0x03,0x8E,0x13,0x7D,0x00,0x23,0x68,0xFE,0x0B,0x98,0x00,0x0B, +0x59,0x00,0x8F,0x5C,0x43,0x5A,0xD8,0x0B,0x98,0x02,0x0F,0x57,0x17,0x0B,0x59,0x02, +0x8F,0x5C,0x43,0x5A,0xD8,0x0B,0x98,0x04,0x0F,0x57,0x19,0x0B,0x59,0x08,0x8F,0x5C, +0x43,0x5A,0xD8,0x0F,0x57,0x47,0x0B,0x58,0x06,0x0B,0x19,0x0A,0x8F,0x1A,0x43,0x78, +0xD8,0x0F,0x77,0x49,0xE4,0x00,0x00,0x55,0x23,0x64,0x9A,0x0B,0x38,0x01,0x0F,0x37, +0x17,0x0B,0x38,0x03,0x0F,0x37,0x19,0x0B,0x38,0x05,0x0B,0x18,0x07,0x0F,0x37,0x47, +0x0F,0x17,0x49,0x9B,0x3E,0x13,0x1A,0x00,0x47,0x18,0xCC,0x1B,0x1A,0x00,0x9B,0x02, +0x1B,0x17,0x00,0x85,0x29,0xC3,0x00,0x10,0x01,0xFF,0x18,0x08,0x90,0xFE,0xE0,0x7F, +0xFF,0x0E,0xF8,0x01,0x0E,0xF8,0x03,0x0E,0xF8,0x05,0x0E,0xF8,0x07,0x9B,0x01,0xC3, +0x20,0x10,0x01,0xFF,0x39,0x01,0xAC,0x1B,0x19,0x01,0xC3,0x00,0x10,0x01,0xFF,0x18, +0x08,0xF4,0x0E,0xF8,0x01,0x0E,0xF8,0x03,0x0E,0xF8,0x05,0x0E,0xF8,0x07,0xC3,0x00, +0x10,0x01,0xF8,0x18,0x08,0xE4,0xC3,0x00,0x10,0x01,0xFF,0x18,0x0B,0xD0,0x0E,0xF8, +0x01,0x0E,0xF8,0x03,0x0E,0xF8,0x05,0x0E,0xF8,0x07,0x0E,0xF8,0x09,0x0E,0xF8,0x0B, +0x0E,0xF8,0x0D,0x0E,0xF8,0x0F,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x09,0x01,0xC2,0xE0, +0x10,0x01,0x18,0x19,0x00,0xF3,0x17,0x08,0x87,0x9B,0x3C,0x47,0x18,0xCC,0xFB,0x17, +0x08,0x87,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x8C,0x85,0x29,0xC3,0x00,0x10,0x01, +0xC3,0x40,0x10,0x01,0x5C,0x63,0x00,0xFF,0x18,0x09,0x6C,0x9A,0xE0,0xFF,0x5A,0x0A, +0x1C,0xE4,0x00,0x00,0x31,0x4F,0x37,0x10,0x0B,0x98,0x00,0x0B,0x78,0x02,0x8F,0x3A, +0x8F,0x7C,0x9E,0xE1,0x0F,0x79,0x00,0x9F,0x04,0x5F,0x37,0x00,0xD4,0x79,0xFF,0x4D, +0x85,0x29,0xC3,0x00,0x10,0x01,0x5C,0x84,0x00,0xFF,0x18,0x09,0x6C,0x20,0xA0,0x6C, +0xE4,0x00,0x00,0x4B,0x4F,0x37,0x08,0x9E,0xE1,0x43,0x59,0xC4,0x8F,0x23,0x0B,0x5A, +0x00,0x0F,0x59,0x01,0xE4,0x00,0x00,0x0D,0x9A,0xE0,0x5F,0x37,0x00,0xD4,0x99,0xFF, +0x3D,0xE4,0x00,0x00,0x7B,0x20,0xA4,0xE6,0xE4,0x00,0x00,0x31,0x4F,0x37,0x08,0x9E, +0xE1,0x43,0x43,0xCC,0x8F,0x38,0x0B,0x5A,0x00,0x0F,0x59,0x01,0xE4,0x00,0x00,0x0D, +0x9A,0xE0,0x5F,0x37,0x00,0xD4,0x99,0xFF,0x3D,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B, +0x7A,0x10,0x77,0x01,0x12,0xF7,0x04,0x40,0x63,0xBB,0xE7,0xFF,0xFE,0xC5,0x85,0x29, +0x9C,0x38,0x98,0x63,0x0D,0x21,0x04,0xE7,0xFF,0x8F,0x04,0x0D,0x21,0x06,0x9C,0x28, +0xE4,0x00,0x77,0x39,0x9A,0xED,0x9C,0x30,0x0D,0x41,0x08,0x0D,0x61,0x04,0xC1,0x60, +0x10,0x01,0xFD,0x4B,0x0B,0x7A,0x1A,0xEA,0x04,0x9A,0xE1,0x1A,0xEA,0x01,0xFE,0xE0, +0x07,0xFF,0x0E,0xEA,0x07,0x0E,0xEA,0x09,0xC2,0xE0,0x10,0x01,0x9B,0x02,0xFB,0x17, +0x08,0xD2,0x52,0xE0,0xAA,0x0D,0x21,0x0C,0x0E,0xEA,0x0B,0x50,0x60,0x19,0x98,0x80, +0xE7,0xFF,0x4A,0x94,0x52,0xE0,0x1D,0xFA,0xEB,0x0B,0x7A,0x9A,0xE4,0x1A,0xEA,0x0C, +0xC2,0xE0,0x10,0x01,0xEC,0x17,0x00,0xCD,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0xC0, +0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0xEC,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0xE7, +0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xB4,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xBC, +0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xEA,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xE3, +0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xA8,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xFC, +0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xD6,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xC7, +0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0xC5,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0xB8, +0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0x83,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xD7, +0xC2,0xE0,0x10,0x01,0x9B,0x03,0xFB,0x17,0x08,0xC6,0xC2,0xE0,0x10,0x01,0xEC,0x17, +0x07,0xF4,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xE4,0xC2,0xE0,0x10,0x01,0xFF,0x00, +0x01,0xF4,0xEF,0x17,0x06,0xFD,0xC2,0xE0,0x10,0x01,0xC0,0x60,0x10,0x01,0xF8,0x17, +0x08,0xFD,0xFC,0x63,0x0A,0x1C,0x98,0x80,0x50,0xA0,0x3C,0xE7,0xFF,0xA2,0xBC,0xC2, +0xE0,0x10,0x01,0xFE,0xF7,0x0B,0xF0,0x18,0x17,0x04,0x18,0x17,0x05,0x18,0x17,0x06, +0x18,0x17,0x34,0x18,0x17,0x35,0x18,0x17,0x36,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08, +0xB0,0xC2,0xE0,0x10,0x01,0xF3,0x37,0x00,0xB8,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x3D, +0xF9,0xCA,0xF7,0x3D,0xF8,0x1B,0x38,0x00,0xC3,0x00,0x10,0x01,0xF3,0x18,0x07,0x6F, +0x1B,0x17,0x00,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0xA3,0x53,0x18,0x04,0xEF,0x17, +0x08,0xA3,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x00,0x01,0xFF,0x18,0x1D,0x58,0xEF,0x17, +0x03,0xE4,0xC2,0xE0,0x10,0x01,0x53,0x00,0xF0,0xEF,0x17,0x08,0xF3,0xC2,0xE0,0x10, +0x01,0x53,0x00,0xCA,0xEF,0x17,0x08,0x8F,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x00,0x01, +0xFF,0x18,0x1B,0xCF,0xEF,0x17,0x03,0xF8,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x00,0x01, +0xFF,0x18,0x19,0x89,0xEF,0x17,0x04,0x18,0xC2,0xE0,0x10,0x01,0xC3,0x00,0x00,0x01, +0xFF,0x18,0x1A,0x62,0xEF,0x17,0x04,0x14,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x0B,0xA0, +0xFE,0xF7,0x0B,0xA0,0xC3,0x60,0x10,0x01,0x18,0x17,0x01,0x18,0x17,0x02,0x18,0x17, +0x03,0x0C,0x17,0x05,0x0C,0x17,0x07,0x0C,0x17,0x0B,0x0C,0x17,0x09,0xC3,0x40,0x10, +0x01,0xC3,0x20,0x10,0x01,0x9A,0xE0,0xFF,0x7B,0x09,0x6C,0xFF,0x5A,0x0C,0xF6,0xFF, +0x39,0x09,0xA8,0x43,0x17,0xDC,0x0C,0x18,0x01,0x43,0x17,0xD4,0x0C,0x18,0x01,0x4F, +0x17,0x08,0x8F,0x19,0x0C,0x18,0x00,0x9E,0xE2,0x5E,0xE7,0x49,0x23,0xFF,0x9D,0x0D, +0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0xE4,0x00,0x70, +0x67,0x1C,0x21,0xE8,0x0D,0x21,0x14,0xE7,0xFF,0xCD,0x52,0xE7,0xFF,0xA6,0x78,0xE7, +0xFF,0xCC,0x7C,0xE7,0xFF,0xF4,0xCA,0x50,0xE0,0x14,0x99,0x0C,0x0C,0x01,0x01,0x50, +0x60,0x1A,0x50,0x80,0x1A,0x98,0xA4,0x04,0xC1,0x6E,0xC8,0xC6,0x36,0x00,0xE7,0xFF, +0x92,0x4E,0xFC,0xC0,0x01,0x78,0xFC,0xA0,0x02,0xD6,0xC0,0x60,0x10,0x01,0xC0,0x80, +0x10,0x01,0xFC,0x63,0x01,0x5E,0xFC,0x84,0x08,0x10,0xE7,0xFF,0x94,0xDC,0x98,0x60, +0x88,0x83,0xE7,0xFF,0x88,0x52,0x98,0x60,0x98,0xA0,0x88,0x83,0xE7,0xFF,0x88,0x58, +0x98,0x60,0x98,0xA0,0x88,0x83,0xE7,0xFF,0x88,0x6E,0x98,0x80,0x98,0x61,0x88,0xA4, +0xE7,0xFF,0x88,0x5A,0x98,0xA0,0x98,0x62,0x98,0x81,0xE7,0xFF,0x88,0x46,0x98,0x62, +0x98,0x80,0xE7,0xFF,0x88,0xBC,0x98,0x60,0x50,0x80,0x66,0xE7,0xFF,0x88,0xC4,0x98, +0x61,0x50,0x80,0x66,0xE7,0xFF,0x88,0xB2,0x98,0x62,0x50,0x80,0xF3,0xE7,0xFF,0x88, +0xA0,0x98,0x60,0xFC,0x80,0xA0,0x00,0xE7,0xFF,0x88,0xE8,0x98,0x61,0xFC,0x80,0xA0, +0x00,0xE7,0xFF,0x88,0xD4,0x98,0x62,0xFC,0x80,0xA0,0x00,0xE7,0xFF,0x88,0xC0,0xFC, +0x80,0x01,0x26,0x98,0x62,0xE7,0xFF,0x89,0x08,0xFC,0x60,0x01,0x5E,0xE7,0xFF,0x96, +0x56,0xE7,0xFF,0xFA,0x26,0x98,0x61,0xE7,0xFF,0x63,0xE2,0xE7,0xFF,0x50,0x16,0x50, +0x60,0x1B,0xE7,0xFF,0x8C,0xF6,0x9A,0xEE,0x0E,0xE1,0x00,0x52,0xE0,0x14,0x0E,0xE1, +0x04,0xCA,0xE0,0x07,0xD0,0x98,0xC8,0x0E,0xE1,0x08,0x98,0xAE,0x88,0xE6,0x99,0x0A, +0x98,0x6A,0x98,0x8C,0xE7,0xFF,0x44,0x26,0x98,0x81,0x98,0x60,0xE7,0xFF,0xCB,0x28, +0x50,0x60,0x10,0xE7,0xFF,0xCB,0x52,0xE4,0x00,0x47,0xE6,0xE7,0xFF,0xF9,0x6A,0x98, +0x80,0x98,0x60,0xE7,0xFF,0x41,0xE8,0xE7,0xFF,0xB9,0x56,0xE7,0xFF,0xB8,0x4C,0xC2, +0xE0,0x10,0x01,0xF0,0x77,0x01,0xAE,0xE7,0xFF,0xCA,0xEA,0x9B,0x00,0xCA,0xE0,0x48, +0x00,0xC3,0x17,0x00,0x0D,0xC3,0x17,0x00,0x0F,0x53,0x18,0x04,0xC3,0x17,0x00,0x0D, +0xC3,0x17,0x00,0x0F,0x53,0x18,0x08,0xC3,0x17,0x00,0x0D,0xC2,0xE0,0x01,0x1F,0x52, +0xF7,0x06,0xC2,0xE0,0x01,0x1D,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xCA,0x94,0x50,0x60, +0x20,0xE7,0xFF,0xCA,0x9E,0x98,0x61,0x50,0x80,0x13,0x50,0xA0,0x37,0x98,0xC8,0xFC, +0xE0,0x01,0x0D,0xE7,0xFF,0xAC,0x26,0xC3,0x00,0x00,0x01,0xC2,0xE0,0x10,0x01,0xFF, +0x18,0x38,0x80,0x0D,0x21,0x16,0xEF,0x17,0x03,0xD0,0x1C,0x21,0x18,0x85,0x29,0xC2, +0xE0,0x10,0x01,0xEF,0x17,0x00,0xDA,0x23,0x05,0x08,0xEE,0xF7,0x00,0xDA,0x22,0xE8, +0xEC,0xC3,0x00,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFF,0x18,0x08,0xAA,0xFE,0xF7,0x08, +0xDC,0x0B,0x38,0x01,0xC3,0x60,0x10,0x01,0x0F,0x37,0x01,0xC3,0x40,0x10,0x01,0x0B, +0x38,0x03,0xFF,0x7B,0x0A,0xEC,0x0F,0x37,0x03,0x0B,0x18,0x05,0xFF,0x5A,0x0B,0xE0, +0x0F,0x17,0x05,0x9A,0xE0,0xE4,0x00,0x00,0x5D,0xC3,0x60,0x10,0x01,0xC3,0x40,0x10, +0x01,0x9A,0xE0,0xFF,0x7B,0x09,0x04,0xFF,0x5A,0x09,0x38,0x43,0x17,0xDC,0x43,0x37, +0xD4,0x0B,0x39,0x01,0x0F,0x38,0x01,0x9E,0xE2,0x5E,0xE6,0x89,0x23,0xFF,0xBD,0xE7, +0xFF,0xFF,0x45,0x43,0x17,0xDC,0x43,0x37,0xD4,0x0B,0x39,0x01,0x0F,0x38,0x01,0x9E, +0xE2,0x5E,0xE2,0x09,0x23,0xFF,0xBD,0x85,0x29,0xC3,0x00,0x10,0x01,0xC3,0x60,0x10, +0x01,0x9A,0xE0,0xFF,0x18,0x0C,0xF6,0xFF,0x7B,0x09,0x04,0x43,0x37,0xC4,0x43,0x57, +0xDC,0x0B,0x5A,0x01,0x0F,0x59,0x01,0x9E,0xE2,0x5E,0xE6,0x89,0x23,0xFF,0xBD,0xC2, +0xE0,0x10,0x01,0xFE,0xF7,0x08,0xDC,0x0B,0x37,0x01,0x0F,0x38,0x35,0x0B,0x37,0x03, +0x0A,0xF7,0x05,0x0F,0x38,0x37,0x0E,0xF8,0x39,0x85,0x29,0xE4,0x00,0x6D,0x65,0xC2, +0xE0,0x10,0x01,0xFF,0x20,0xDF,0x9F,0xEB,0x17,0x08,0xE7,0x47,0x18,0xCC,0x9B,0x3E, +0xEF,0x17,0x08,0xE7,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0xD1,0x47,0x18,0xCC,0xEF, +0x17,0x08,0xD1,0x85,0x29,0xC2,0xE0,0x10,0x01,0x88,0xC3,0xF3,0x17,0x00,0xB8,0x23, +0x08,0x4A,0xF2,0xF7,0x00,0xB8,0x22,0xE8,0x2E,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x07, +0x6F,0xC3,0x00,0x10,0x01,0x9A,0xE0,0xFF,0x18,0x09,0x6C,0x8B,0x38,0x5F,0x57,0x00, +0x27,0x44,0x3D,0x5E,0xE3,0x01,0x20,0x00,0x25,0x5E,0xE3,0x29,0x20,0x00,0x31,0x0B, +0x59,0x01,0x4F,0x5A,0x08,0x0F,0x59,0x01,0x9E,0xE1,0x9F,0x22,0x5E,0xE3,0x49,0x23, +0xFF,0x79,0xC2,0xE0,0x10,0x01,0xC3,0x80,0x10,0x01,0xF3,0xD7,0x0B,0x7A,0xFF,0x5C, +0x08,0xE6,0xC3,0xA0,0x10,0x01,0x1C,0x7E,0xFF,0xFF,0xBD,0x08,0xA8,0x0A,0xFA,0x01, +0x13,0x7D,0x00,0x9B,0x20,0xE4,0x00,0x00,0x65,0xD4,0x79,0x00,0xF0,0x08,0x98,0x00, +0x09,0x18,0x02,0x8D,0x04,0xC1,0x00,0x1D,0xE8,0x20,0x00,0x39,0xC1,0x00,0x59,0xE8, +0xCA,0xF7,0x20,0x00,0x4B,0x7B,0x00,0x09,0x18,0x00,0x50,0x97,0x40,0x5D,0x04,0x19, +0x9F,0x21,0x4A,0xE4,0xB8,0x9F,0x02,0x5D,0x19,0x04,0xD7,0xC8,0xFE,0x7D,0xC3,0x00, +0x10,0x01,0x0E,0xFA,0x01,0x1B,0x7D,0x00,0xFF,0x18,0x0B,0x64,0x0B,0x38,0x00,0x53, +0x77,0x20,0x5F,0x2C,0x99,0x9F,0x02,0xC3,0x20,0x10,0x01,0x4A,0xFB,0xB8,0xFF,0x39, +0x0B,0x74,0xD7,0x19,0xFF,0x56,0x98,0x60,0x0E,0xFA,0x01,0x88,0x83,0x98,0xA0,0xE7, +0xFF,0xB5,0x2F,0x9C,0x38,0x0D,0x41,0x00,0x0D,0x21,0x04,0xC1,0x40,0x10,0x01,0x20, +0x64,0x62,0xE7,0xFF,0xB6,0x4A,0x20,0x64,0x56,0xF2,0xEA,0x08,0xA8,0x9E,0xE1,0xFA, +0xEA,0x08,0xA8,0xE4,0x00,0x00,0x19,0xE7,0xFF,0xB6,0xD0,0xF8,0x0A,0x08,0xA8,0xE7, +0xFF,0xD9,0x08,0x20,0x64,0x26,0x99,0x43,0xE4,0x00,0x00,0x29,0xE7,0xFF,0xD8,0xEE, +0x99,0x49,0x20,0x68,0x28,0xE7,0xFF,0xD8,0xDC,0x20,0x6F,0xB6,0xC2,0xE0,0x10,0x01, +0xC3,0x20,0x10,0x01,0xF3,0x17,0x08,0xA8,0xF3,0x39,0x0B,0xF0,0x23,0x21,0x1A,0xD5, +0x58,0x02,0x1D,0xF8,0x17,0x08,0xA8,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xEA,0xC2, +0xE0,0x10,0x01,0xC3,0x00,0x10,0x01,0xF8,0x17,0x08,0xE3,0xC2,0xE0,0x10,0x01,0xF8, +0x18,0x08,0xFC,0xF8,0x17,0x08,0xFD,0x0D,0x41,0x02,0xC2,0xE0,0x10,0x01,0x0D,0x21, +0x06,0xEB,0x17,0x08,0xE7,0x9C,0x28,0x53,0x18,0x80,0xEF,0x17,0x08,0xE7,0xE7,0xFF, +0x86,0xB3,0x0D,0x41,0x02,0x0D,0x21,0x06,0x9C,0x28,0x85,0x29,0x9C,0x38,0xC3,0x14, +0x00,0x01,0x0D,0x21,0x04,0xCA,0xF8,0x22,0x00,0x0B,0x37,0x01,0xCB,0x18,0x26,0x18, +0x9B,0x3F,0x0F,0x37,0x01,0x0B,0x38,0x01,0x53,0x39,0x02,0x0F,0x38,0x01,0x0B,0x17, +0x01,0xFC,0x60,0x01,0x00,0x0C,0x17,0x01,0xE7,0xFF,0xC4,0xF8,0xC2,0xE0,0x10,0x01, +0x0D,0x21,0x06,0xEB,0x17,0x00,0xCD,0x9C,0x28,0xC7,0x18,0xFE,0xFF,0xEF,0x17,0x00, +0xCD,0x85,0x29,0x5C,0xC6,0x00,0x9A,0xE0,0xE4,0x00,0x00,0x45,0x4F,0x17,0x08,0x4F, +0x57,0x10,0x43,0x23,0xC4,0x8F,0x45,0x8F,0x04,0x0F,0x5A,0x02,0x0B,0x18,0x01,0x4F, +0x5A,0x42,0x9E,0xE1,0x43,0x18,0xD5,0x0F,0x19,0x01,0x5F,0x17,0x00,0xD4,0xD8,0xFE, +0xFD,0x85,0x29,0x9C,0x38,0x0D,0x21,0x04,0xE4,0x00,0x40,0x70,0x0D,0x21,0x06,0xFC, +0x60,0x01,0x00,0x9C,0x28,0xE7,0xFF,0xC4,0x2F,0x9C,0x38,0x0D,0x21,0x04,0xE4,0x00, +0x40,0x44,0x0D,0x21,0x06,0xFC,0x60,0x01,0x00,0x9C,0x28,0xE7,0xFF,0xC3,0xF3,0x9C, +0x38,0x0D,0x21,0x04,0xE7,0xFF,0x89,0xCE,0x98,0x80,0x98,0x61,0xE7,0xFF,0xE5,0x4C, +0x98,0x60,0xE7,0xFF,0x84,0xE2,0x98,0x61,0x98,0x80,0xE7,0xFF,0xEB,0xEE,0x98,0x62, +0x98,0x80,0xE7,0xFF,0xEB,0xDE,0x98,0x63,0x98,0x80,0xE7,0xFF,0xEB,0xCE,0x98,0x66, +0xC0,0x80,0x10,0x01,0xC0,0xA0,0x10,0x01,0xFC,0x84,0x01,0xB0,0xFC,0xA5,0x01,0xC8, +0xC0,0xC0,0x10,0x01,0xFC,0xC6,0x01,0xA0,0xE7,0xFF,0x90,0x0E,0x0D,0x21,0x06,0x9C, +0x28,0xE7,0xFF,0x95,0x5B,0x9C,0x38,0x0D,0x41,0x00,0x0D,0x21,0x04,0xC1,0x40,0x10, +0x01,0xE7,0xFF,0xD6,0x04,0xFD,0x4A,0x00,0xDE,0x20,0x68,0x68,0x24,0x64,0x2D,0xD0, +0x63,0x05,0xD6,0xE4,0x00,0x00,0xCB,0xE7,0xFF,0x88,0xE8,0xE7,0xFF,0xD5,0xD0,0xE4, +0x00,0x00,0x4F,0xE7,0xFF,0xC3,0x4A,0x0A,0xEA,0x09,0x40,0x63,0xBD,0x5E,0xE3,0x04, +0xC2,0xE1,0x76,0xEA,0x20,0x00,0x99,0x98,0x62,0xE7,0xFF,0xEA,0x92,0x20,0x60,0x76, +0xE7,0xFF,0x88,0x96,0x98,0x61,0x98,0x80,0xE7,0xFF,0xE4,0x14,0x0D,0x21,0x06,0x0D, +0x41,0x02,0x98,0x60,0x9C,0x28,0xE7,0xFF,0x83,0x9B,0x98,0x62,0x98,0x80,0xE7,0xFF, +0xE3,0xE8,0xFC,0x60,0x01,0x5E,0xE7,0xFF,0x8D,0x58,0x0D,0x21,0x06,0x0D,0x41,0x02, +0x98,0x60,0x9C,0x28,0xE7,0xFF,0x83,0x17,0xE7,0xFF,0xC2,0xA0,0x0A,0xEA,0x0D,0x40, +0x63,0xBD,0x5E,0xE3,0x04,0xC2,0xE0,0xBB,0x6A,0x20,0x00,0x31,0x98,0x63,0xE7,0xFF, +0xE9,0xE8,0x20,0x62,0xB8,0xE7,0xFF,0xE9,0x14,0x5C,0x63,0x04,0xC0,0x60,0x19,0x0E, +0x20,0x00,0x49,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x08,0xE7,0xC6,0xF7,0x20,0x00,0x22, +0xE0,0x28,0xE7,0xFF,0xC2,0x2C,0x0C,0x6A,0x0D,0x0D,0x41,0x02,0x0D,0x21,0x06,0x98, +0x63,0x98,0x80,0x9C,0x28,0xE7,0xFF,0xE3,0x1B,0x0D,0x41,0x02,0x0D,0x21,0x06,0x9C, +0x28,0x85,0x29,0xD0,0x69,0x06,0x2D,0x4F,0x03,0x10,0xC2,0xF8,0x00,0x21,0xFE,0xF7, +0xB9,0xFC,0x8E,0xF8,0xC3,0x00,0x10,0x01,0x0F,0x37,0x02,0xFF,0x18,0x09,0xA8,0xC2, +0xE0,0x10,0x01,0xFE,0xF7,0x0A,0x58,0x87,0x29,0xC3,0x00,0x10,0x01,0xFF,0x18,0x0B, +0x94,0x0F,0x38,0x02,0x0F,0x37,0x68,0x0F,0x38,0x06,0x0F,0x18,0x0A,0x0F,0x37,0x6C, +0x0F,0x17,0x70,0xE4,0x00,0x01,0x0B,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x0B,0x88,0x0F, +0x37,0x02,0x0F,0x38,0x68,0x0F,0x37,0x06,0x0E,0xF7,0x0A,0x0F,0x38,0x6C,0x0E,0xF8, +0x70,0xE4,0x00,0x00,0xCF,0xCE,0xE3,0x00,0x68,0xC3,0x60,0x10,0x01,0xCC,0x63,0x00, +0x1A,0xFF,0x7B,0x0A,0xFC,0x4C,0x63,0x10,0x8F,0x77,0x8F,0x03,0x9A,0xE0,0x43,0x38, +0xBC,0x43,0x5B,0xBC,0x0F,0x5A,0x02,0x0F,0x59,0x00,0x9E,0xE4,0x5E,0xED,0x09,0x23, +0xFF,0xBD,0xE4,0x00,0x00,0x6D,0x9C,0x7E,0xC3,0x40,0x10,0x01,0x5C,0x63,0x00,0xFF, +0x5A,0x0C,0x54,0xCF,0x03,0x00,0x68,0xCC,0x63,0x00,0x1A,0x8F,0x58,0x4C,0x63,0x10, +0x8C,0x77,0x9A,0xE0,0x43,0x03,0xBC,0x43,0x3A,0xBC,0x0F,0x39,0x02,0x0F,0x38,0x00, +0x9E,0xE4,0x5E,0xED,0x09,0x23,0xFF,0xBD,0x85,0x29,0xD0,0x69,0x06,0x3D,0x4F,0x03, +0x10,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBA,0x24,0x8E,0xF8,0xC3,0x00,0x10,0x01,0x0F, +0x37,0x02,0xFF,0x18,0x09,0x04,0xC2,0xE0,0x10,0x01,0xFE,0xF7,0x08,0xDC,0x87,0x29, +0x0B,0x37,0x00,0xC3,0x00,0x10,0x01,0x4F,0x39,0x40,0xFF,0x18,0x0B,0x94,0xE4,0x00, +0x00,0x25,0x0B,0x37,0x00,0xC3,0x00,0x10,0x01,0x4F,0x39,0x40,0xFF,0x18,0x0B,0x88, +0x0F,0x38,0x00,0x0B,0x37,0x02,0x0A,0xF7,0x04,0x4F,0x39,0x40,0x4E,0xF7,0x40,0x0F, +0x38,0x04,0x0E,0xF8,0x08,0xE4,0x00,0x00,0xD9,0xCE,0xE3,0x00,0x34,0x8F,0x17,0xCE, +0xE3,0x00,0x68,0xC3,0x60,0x10,0x01,0xFF,0x7B,0x0A,0xFC,0x8F,0x77,0x9A,0xE0,0x4F, +0x37,0x08,0x43,0x58,0xBC,0x8F,0x3B,0x0B,0x5A,0x00,0x4F,0x5A,0x40,0x0F,0x59,0x00, +0x9E,0xE2,0x5E,0xE6,0x89,0x23,0xFF,0xA9,0xE4,0x00,0x00,0x73,0x1E,0xE3,0xFE,0x5E, +0xF7,0x00,0xCF,0x37,0x00,0x34,0xCE,0xF7,0x00,0x68,0xC3,0x60,0x10,0x01,0x8F,0x19, +0xFF,0x7B,0x0C,0x54,0x8F,0x77,0x9A,0xE0,0x4F,0x37,0x08,0x43,0x58,0xBC,0x8F,0x3B, +0x0B,0x5A,0x00,0x4F,0x5A,0x40,0x0F,0x59,0x00,0x9E,0xE2,0x5E,0xE6,0x89,0x23,0xFF, +0xA9,0xE7,0xFF,0xFC,0xE5,0x9C,0x38,0x0D,0x21,0x04,0x20,0x64,0x3E,0x98,0x60,0xE7, +0xFF,0xFE,0x56,0x98,0x68,0xE4,0x00,0x00,0x19,0x98,0x62,0xE7,0xFF,0xFE,0x3E,0x98, +0x69,0x0D,0x21,0x06,0x9C,0x28,0xE7,0xFF,0xFE,0x29,0x9C,0x38,0x98,0x60,0x0D,0x21, +0x04,0xE7,0xFF,0xFE,0x12,0x0D,0x21,0x06,0x98,0x68,0x9C,0x28,0xE7,0xFF,0xFD,0xFD, +0x20,0x80,0x64,0xD0,0x84,0x00,0xE2,0x20,0x88,0x84,0x20,0x8C,0x9C,0x5C,0x80,0x21, +0x4B,0x0A,0x01,0x8A,0xF8,0xE4,0x00,0x00,0x43,0x9B,0x01,0xE4,0x00,0x00,0x0F,0x53, +0x00,0x19,0x9A,0xE1,0xE4,0x00,0x00,0x25,0x53,0x00,0x32,0x8A,0xF8,0xE4,0x00,0x00, +0x13,0x53,0x00,0x50,0x8A,0xF8,0xD0,0x6B,0x0F,0xAD,0x4F,0x43,0x10,0xC3,0x38,0x00, +0x21,0xFF,0x39,0xBA,0x4C,0x8F,0x3A,0xC3,0x60,0x10,0x01,0x0F,0x99,0x02,0xC3,0x40, +0x10,0x01,0xC3,0x20,0x10,0x01,0xFF,0x7B,0x09,0x04,0xFF,0x5A,0x0A,0xEC,0xFF,0x39, +0x08,0xDC,0x87,0x89,0xCF,0x23,0x00,0x34,0x8F,0x79,0xCF,0x23,0x00,0x68,0xC0,0xA0, +0x10,0x01,0x99,0x02,0xFC,0xA5,0x0A,0xFC,0xCB,0xC0,0x01,0xF4,0x8C,0xB9,0x9B,0x20, +0x43,0x5B,0xCC,0x4F,0x99,0x08,0x0B,0xBA,0x00,0x8F,0x85,0x4F,0xBD,0x40,0x0F,0x5C, +0x02,0x5F,0x5D,0x1D,0x43,0xBD,0xD5,0x48,0x98,0xB8,0xCF,0x5A,0x01,0xF4,0x43,0xA4, +0xEB,0x43,0xBD,0x40,0x8F,0x5D,0x43,0x5A,0xF0,0x0F,0x5C,0x00,0x9F,0x22,0x5F,0x26, +0x89,0x23,0xFF,0x3D,0xE4,0x00,0x02,0xEF,0x1F,0x23,0xFE,0x5F,0x39,0x00,0xCC,0xB9, +0x00,0x34,0xCF,0x39,0x00,0x68,0xC0,0x80,0x10,0x01,0x8C,0xBB,0xFC,0x84,0x0C,0x54, +0x9B,0xC2,0x8C,0x99,0xCB,0xA0,0x01,0xF4,0x9B,0x20,0x43,0x45,0xCC,0x0B,0x9A,0x00, +0x4F,0x59,0x08,0x4F,0x9C,0x40,0x43,0x64,0xD4,0x0F,0x5B,0x02,0x5F,0x5C,0x1D,0x43, +0x9C,0xD5,0x49,0x18,0xB8,0xCF,0x5A,0x01,0xF4,0x43,0x88,0xE3,0x43,0x9C,0xF0,0x8F, +0x5C,0x43,0x5A,0xE8,0x0F,0x5B,0x00,0x9F,0x22,0x5F,0x26,0x89,0x23,0xFF,0x39,0xE4, +0x00,0x02,0x39,0xC3,0x40,0x10,0x01,0x9B,0xC2,0xFF,0x5A,0x0B,0x88,0xCB,0xA0,0x01, +0xF4,0x0F,0x7A,0x02,0x0B,0x99,0x00,0x4F,0x9C,0x40,0x5F,0x7C,0x1D,0x43,0x9C,0xDD, +0x49,0x18,0xB8,0xCF,0x7B,0x01,0xF4,0x43,0x88,0xE3,0x43,0x9C,0xF0,0x8F,0x7C,0x43, +0x7B,0xE8,0x0F,0x7A,0x00,0x9F,0x22,0xC3,0x60,0x10,0x01,0x9F,0x44,0xFF,0x7B,0x08, +0xE2,0xD7,0x3B,0xFE,0x86,0xE4,0x00,0x01,0xAD,0xC3,0x40,0x10,0x01,0x9B,0xC2,0xFF, +0x5A,0x0B,0x94,0xCB,0xA0,0x01,0xF4,0x0F,0x7A,0x02,0x0B,0x99,0x00,0x4F,0x9C,0x40, +0x5F,0x7C,0x1D,0x43,0x9C,0xDD,0x49,0x18,0xB8,0xCF,0x7B,0x01,0xF4,0x43,0x88,0xE3, +0x43,0x9C,0xF0,0x8F,0x7C,0x43,0x7B,0xE8,0x0F,0x7A,0x00,0x9F,0x22,0xC3,0x60,0x10, +0x01,0x9F,0x44,0xFF,0x7B,0x08,0xE2,0xD7,0x3B,0xFE,0x86,0xE4,0x00,0x01,0x21,0x8B, +0x3A,0x9B,0xC2,0xC3,0x40,0x10,0x01,0xCB,0xA0,0x01,0xF4,0xFF,0x5A,0x0B,0xB0,0x0F, +0x7A,0x02,0x0B,0x99,0x00,0x4F,0x9C,0x40,0x5F,0x7C,0x1D,0x43,0x9C,0xDD,0x49,0x18, +0xB8,0xCF,0x7B,0x01,0xF4,0x43,0x88,0xE3,0x43,0x9C,0xF0,0x8F,0x7C,0x43,0x7B,0xE8, +0x0F,0x7A,0x00,0x9F,0x22,0xC3,0x60,0x10,0x01,0x9F,0x44,0xFF,0x7B,0x0A,0xFC,0xD7, +0x3B,0xFE,0x86,0xE4,0x00,0x00,0x91,0x8B,0x3A,0x9B,0xC2,0xC3,0x40,0x10,0x01,0xCB, +0xA0,0x01,0xF4,0xFF,0x5A,0x0A,0xCC,0x0F,0x7A,0x02,0x0B,0x99,0x00,0x4F,0x9C,0x40, +0x5F,0x7C,0x1D,0x43,0x9C,0xDD,0x49,0x18,0xB8,0xCF,0x7B,0x01,0xF4,0x43,0x88,0xE3, +0x43,0x9C,0xF0,0x8F,0x7C,0x43,0x7B,0xE8,0x0F,0x7A,0x00,0x9F,0x22,0xC3,0x60,0x10, +0x01,0x9F,0x44,0xFF,0x7B,0x0A,0xFC,0xD7,0x3B,0xFE,0x86,0xE7,0xFF,0xF8,0x11,0x9C, +0x38,0x0D,0x21,0x04,0x0D,0x41,0x00,0x89,0x43,0x98,0x60,0x88,0x8A,0xE7,0xFF,0xFB, +0x86,0x88,0x8A,0x0D,0x21,0x06,0x0D,0x41,0x02,0x98,0x68,0x9C,0x28,0xE7,0xFF,0xFB, +0x67,0x1C,0x21,0xC8,0x0D,0xC1,0x20,0x0D,0x21,0x34,0x0D,0x41,0x30,0x0D,0x61,0x2C, +0x0D,0x81,0x28,0x0D,0xA1,0x24,0x0D,0xE1,0x1C,0x0E,0x01,0x18,0x0E,0x21,0x14,0x0E, +0x41,0x10,0x0E,0x61,0x0C,0x0E,0x81,0x08,0x0E,0xA1,0x04,0xC1,0xC0,0x10,0x01,0xFD, +0xCE,0x08,0xE6,0x0B,0x6E,0x01,0xC6,0xFB,0x7F,0xFF,0x0E,0xEE,0x01,0xC2,0xE0,0x10, +0x01,0xFE,0xF7,0x09,0x6C,0x0B,0x57,0x34,0x0B,0x37,0x36,0x47,0x1A,0xD7,0x43,0x9A, +0xCC,0x4F,0x18,0xFA,0x5F,0x9C,0x04,0x47,0x1A,0xC4,0x5E,0xF8,0x06,0xD7,0x37,0x00, +0x30,0x8B,0x19,0xC2,0xE0,0x10,0x01,0x5F,0x38,0x06,0xEA,0xF7,0x09,0xA4,0xD6,0xF9, +0x00,0x30,0x8B,0x17,0x8E,0xFC,0x5F,0x18,0x06,0x1E,0xF7,0xEB,0x5E,0xF7,0x04,0xC2, +0xE0,0x18,0xCE,0x20,0x00,0xE9,0xC3,0x00,0x12,0xAC,0x20,0x00,0xCD,0xD3,0x0F,0x01, +0x80,0xC2,0xE0,0x10,0x01,0xEB,0x37,0x09,0x6C,0xFE,0xF7,0x09,0x6C,0x0B,0x17,0x02, +0x8F,0x19,0x0B,0x37,0x04,0x0A,0xF7,0x06,0x8E,0xF9,0xCE,0xF7,0x00,0x0B,0xD6,0xF8, +0x00,0x78,0x53,0x00,0x64,0xC2,0xE0,0x10,0x01,0xE4,0x00,0x00,0x23,0xC2,0xE0,0x10, +0x01,0xF3,0x17,0x08,0x8D,0x23,0x00,0x24,0x9F,0x1F,0xFB,0x17,0x08,0x8D,0xC2,0xE0, +0x10,0x01,0xF8,0x17,0x08,0x99,0xC1,0xE0,0x10,0x01,0xC1,0xA0,0x10,0x01,0xC1,0x40, +0x10,0x01,0x57,0x7B,0x08,0xFD,0xEF,0x08,0xBC,0xFD,0xAD,0x08,0xC0,0xFD,0x4A,0x0B, +0xF0,0x23,0x61,0x48,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x07,0xF6,0x22,0xE5,0x1C,0x0A, +0xEA,0x19,0x1E,0xF7,0xCE,0x5E,0xF7,0x04,0xC2,0xE0,0xF3,0x6E,0x20,0x00,0x4D,0x0A, +0xEA,0x16,0x5E,0xE9,0xF1,0x20,0x00,0x29,0xC2,0xE0,0xF5,0xE8,0x20,0x00,0x9D,0xE7, +0xFF,0xE2,0xEC,0x9A,0xE3,0x0E,0xED,0x00,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xB4, +0xC2,0xE0,0x10,0x01,0x18,0x0F,0x00,0xF8,0x17,0x08,0xD6,0xC2,0xE0,0x10,0x01,0xF8, +0x17,0x08,0xC7,0xC2,0xE0,0x10,0x01,0x9B,0x01,0xFB,0x17,0x08,0x99,0xC2,0xE0,0x10, +0x01,0xF2,0xF7,0x08,0xB0,0x22,0xE0,0x24,0x98,0x60,0xE7,0xFF,0xBD,0xD8,0x0E,0xED, +0x02,0x22,0xE0,0xE2,0x0A,0xEE,0x01,0x56,0xF7,0x40,0x22,0xE0,0x60,0xE7,0xFF,0x37, +0x24,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xD6,0x9A,0xE1,0x0E,0xED,0x00,0xE4,0x00, +0x00,0x37,0x98,0x60,0xE7,0xFF,0xFC,0xB6,0x0A,0xEE,0x01,0x56,0xF7,0x20,0x22,0xE0, +0x2E,0x98,0x6A,0x98,0x82,0xE7,0xFF,0xF8,0x36,0x0E,0xED,0x02,0x22,0xE5,0x52,0x0A, +0xEE,0x01,0x57,0x17,0x08,0x23,0x00,0x60,0xE7,0xFF,0xE1,0xDA,0xC2,0xE0,0x10,0x01, +0xF8,0x17,0x08,0xB4,0x9A,0xE2,0x0E,0xED,0x00,0xE4,0x00,0x00,0x6F,0x57,0x17,0x40, +0x23,0x00,0xB4,0xC6,0xF7,0x20,0x00,0x22,0xE0,0x9A,0xC2,0xE0,0x10,0x01,0xF3,0x17, +0x08,0xD6,0xC3,0x00,0x19,0x0A,0x20,0x00,0x35,0x98,0x62,0xE7,0xFF,0xFC,0x08,0xE4, +0x00,0x00,0x23,0x9F,0x01,0xFB,0x17,0x08,0xD6,0xE4,0x00,0x00,0x0F,0x0C,0x0D,0x00, +0xC2,0x40,0x10,0x01,0x0E,0xED,0x02,0xFE,0x52,0x08,0x86,0x22,0xE9,0x0A,0x0A,0xEE, +0x01,0xC1,0x60,0x10,0x01,0x56,0xF7,0x08,0x22,0xE0,0xB0,0xF2,0xEB,0x08,0xB4,0x9E, +0xE1,0xFA,0xEB,0x08,0xB4,0xE7,0xFF,0x36,0x14,0xF2,0xEB,0x08,0xB4,0x22,0xE0,0x80, +0x9A,0xE3,0x18,0x12,0x00,0x0E,0xED,0x00,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0xC5, +0xE4,0x00,0x00,0x1B,0x9A,0xE6,0xF8,0x0B,0x08,0xB4,0x0E,0xED,0x00,0xC2,0x00,0x10, +0x01,0xC1,0x80,0x10,0x01,0xC1,0x60,0x10,0x01,0x0E,0xED,0x02,0xFE,0x10,0x08,0x87, +0xFD,0x8C,0x0B,0xD0,0xFD,0x6B,0x08,0x90,0xD2,0xE3,0x39,0xDE,0x12,0xEA,0x00,0x22, +0xE4,0x1A,0x18,0x12,0x00,0xE7,0xFF,0xC7,0x5C,0xC3,0x00,0x10,0x01,0xC2,0xE0,0x10, +0x01,0xFF,0x20,0x03,0xE8,0x20,0x68,0x1C,0xFF,0x20,0x01,0xF4,0xEF,0x37,0x01,0xC7, +0xEF,0x38,0x01,0xC5,0x0A,0xEE,0x01,0x56,0xF7,0x08,0xD2,0xE0,0x38,0x02,0xC1,0xC0, +0x10,0x01,0xC2,0x20,0x10,0x01,0x12,0xEA,0x00,0xFD,0xCE,0x08,0xF4,0xFE,0x31,0x01, +0xAC,0xD2,0xE1,0x10,0xF1,0x0B,0x8B,0x04,0xC3,0x8F,0xFF,0xE0,0x20,0x05,0xF9,0x08, +0x8A,0x48,0x0B,0x2B,0x06,0x0B,0x6B,0x00,0x43,0xA4,0xCD,0x08,0xAA,0x46,0x0B,0x4B, +0x02,0x43,0xC5,0xE5,0x0B,0x0A,0x18,0x08,0x6A,0x16,0x42,0xFA,0xC5,0x41,0x03,0xDD, +0x42,0xFE,0xBB,0x41,0x3D,0x43,0x8E,0xE9,0x22,0xE1,0x84,0x42,0x7C,0xDD,0x41,0x3A, +0xCD,0x42,0x9D,0x9B,0x42,0x5E,0x4B,0x8E,0x92,0x22,0x80,0x40,0x26,0x80,0x28,0x26, +0xE0,0x2A,0xE4,0x00,0x00,0x8F,0x26,0xFD,0x0E,0x4E,0xB7,0xFA,0x46,0x55,0xBE,0x42, +0x52,0xAD,0x4E,0xB4,0xFA,0x46,0x95,0xA6,0x42,0xB4,0xAD,0xD6,0xB2,0x01,0x74,0x42, +0x98,0xD5,0x41,0x28,0x4B,0x42,0x74,0x9B,0x8E,0x69,0x22,0x60,0x40,0x26,0x60,0x28, +0x26,0xE0,0x2A,0xE4,0x00,0x00,0x2D,0x26,0xFC,0x4A,0x4E,0xF3,0xFA,0x46,0x77,0x9E, +0x42,0x73,0xBD,0x9A,0xE1,0xD6,0x72,0x06,0x18,0x42,0x44,0xD5,0x42,0x65,0xDD,0x42, +0x83,0xE5,0x42,0xF9,0xC5,0x41,0x32,0xA3,0x42,0xF3,0xBB,0x8E,0xE9,0x22,0xE0,0xDC, +0x43,0x9B,0xE5,0x40,0xF9,0xD5,0x40,0xD2,0xE3,0x41,0x33,0x3B,0x8C,0xC9,0x20,0xC0, +0x40,0x24,0xC0,0x28,0x26,0xE0,0x2A,0xE4,0x00,0x00,0x3B,0x26,0xFC,0x66,0x4D,0x37, +0xFA,0x46,0xA9,0xBE,0x42,0xB5,0x4D,0x4D,0x26,0xFA,0x44,0xC9,0x36,0x41,0x26,0x4D, +0xD5,0x35,0x01,0xA0,0x43,0x58,0xD5,0x41,0x08,0x43,0x43,0x5A,0xD3,0x43,0x38,0xCD, +0x42,0x94,0xA3,0x43,0x39,0xCB,0x8F,0x48,0x8E,0x99,0x9A,0xE0,0xD6,0x9A,0x00,0x45, +0x8B,0x54,0x9A,0xE1,0x42,0x73,0x9B,0x42,0x52,0x93,0x8E,0x53,0xD6,0x5A,0x01,0xB1, +0xE4,0x00,0x00,0x6F,0x41,0x38,0xCD,0x40,0xF4,0x3B,0x43,0x89,0xE3,0x8F,0x87,0x23, +0x80,0x40,0x27,0x80,0x28,0x26,0xE0,0x2A,0xE7,0xFF,0xFF,0x79,0x26,0xFE,0xE2,0x4E, +0xFC,0xFA,0x47,0x97,0xE6,0x43,0x9C,0xBD,0x9A,0xE0,0xD7,0x95,0x00,0xF0,0xE7,0xFF, +0xFF,0x4D,0x8B,0x52,0x52,0xE0,0x10,0x43,0xDE,0xF3,0x43,0xBD,0xEB,0x53,0x20,0x11, +0x8F,0xBE,0x5F,0xBA,0x1F,0x4A,0xF7,0xC8,0x4F,0x37,0x21,0x46,0xF7,0xCE,0x56,0xF7, +0x0F,0xD2,0xE0,0x3C,0x9A,0x0C,0xAA,0x17,0x0C,0x8A,0x19,0x0C,0x6A,0x47,0x0F,0x0A, +0x49,0xE4,0x00,0x0F,0x07,0x12,0xF0,0x00,0x9B,0x1E,0x46,0xF7,0xC4,0x98,0x63,0x1A, +0xF0,0x00,0xE7,0xFF,0xD9,0x94,0xE4,0x00,0x00,0xEF,0x0B,0x0B,0x00,0xC3,0x0F,0xFF, +0xE4,0x20,0x01,0xB3,0x13,0x32,0x00,0x0A,0x6B,0x02,0x9F,0x21,0x0B,0x6A,0x16,0x5F, +0x39,0x00,0x41,0x1B,0xC5,0x0B,0x4A,0x18,0x0B,0xAA,0x46,0x43,0xDA,0x9D,0x43,0x1D, +0xC5,0x0B,0x8A,0x48,0x43,0x18,0xC3,0x42,0x7C,0x9D,0x1B,0x32,0x00,0x42,0x73,0x9B, +0x8F,0x13,0x41,0x08,0x43,0x43,0xDE,0xF3,0x8F,0xC8,0x5F,0x1E,0x1F,0x53,0x00,0x10, +0x4B,0x00,0xC0,0x23,0x00,0x3C,0x0F,0xAA,0x17,0x0F,0x8A,0x19,0x0F,0x6A,0x47,0x0F, +0x4A,0x49,0x27,0x28,0xDB,0x9E,0xFF,0x9B,0x3C,0x1A,0xEA,0x00,0x12,0xF0,0x00,0x46, +0xF7,0xCC,0x1A,0xF0,0x00,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0x8C,0x12,0xF1,0x00, +0x1A,0xEA,0x10,0x12,0xF1,0x01,0x1A,0xEA,0x40,0xE7,0xFF,0x30,0xEC,0x12,0xEA,0x00, +0xD2,0xE1,0x3A,0xA6,0xE4,0x00,0x01,0xD9,0x18,0x12,0x00,0xE7,0xFF,0xFF,0xC5,0x22, +0xE7,0x7A,0x18,0x12,0x00,0x0A,0xEB,0x04,0xC2,0xEF,0xFF,0xE0,0x23,0xFF,0x45,0x0B, +0xCA,0x16,0x0B,0xAA,0x18,0x0B,0x2B,0x00,0x0B,0x0B,0x02,0x43,0x9E,0xCD,0x43,0x7D, +0xC5,0x43,0xDE,0xBD,0x0B,0x4B,0x06,0x43,0xDE,0xF3,0x43,0xBD,0xD5,0x43,0x9C,0xE3, +0x43,0xBD,0xEB,0x43,0x7B,0xDB,0x8F,0xBE,0x8F,0x7C,0xD7,0xBB,0x36,0x59,0xE4,0x00, +0x0D,0x43,0x0B,0x8C,0x03,0x43,0x98,0xE5,0x5F,0x9C,0x06,0x4F,0x7C,0xFA,0x47,0x9B, +0xE6,0x43,0x7C,0xDD,0xC3,0x60,0x1F,0x48,0x20,0x00,0xC1,0x0B,0x8C,0x03,0xC3,0x60, +0x10,0x01,0xEF,0x9B,0x08,0xD9,0xFF,0x7B,0x08,0xD8,0x0B,0x8C,0x07,0x0F,0x9B,0x03, +0xC3,0x60,0x10,0x01,0xEF,0x3B,0x08,0xC9,0xFF,0x7B,0x08,0xC8,0x0F,0x1B,0x03,0x13, +0x10,0x00,0x53,0x18,0x02,0x1B,0x10,0x00,0x0B,0x0E,0x05,0x0F,0x0E,0x01,0x0B,0x0E, +0x07,0x0F,0x0E,0x03,0x0B,0x0C,0x09,0x0F,0x0C,0x01,0x0B,0x0C,0x0B,0x0F,0x0C,0x03, +0x0B,0x0C,0x0D,0x0E,0xEB,0x01,0x0F,0x0C,0x05,0xFE,0xE0,0x7F,0xFF,0x0B,0x0C,0x0F, +0x0E,0xEB,0x05,0x0E,0xEB,0x07,0x0E,0xEE,0x05,0x0E,0xEE,0x07,0x0E,0xEC,0x09,0x0E, +0xEC,0x0B,0x0F,0x0C,0x07,0x0E,0xEC,0x0D,0x0E,0xEC,0x0F,0x9B,0x01,0x12,0xF1,0x01, +0x0F,0x4B,0x03,0x1A,0xF1,0x00,0x42,0xF8,0xBD,0x1A,0xF1,0x01,0xE7,0xFF,0xFE,0x03, +0x0A,0xEA,0x17,0x0B,0x0B,0x01,0x43,0x18,0xBD,0x5F,0x18,0x06,0x4E,0xF8,0xFA,0x47, +0x17,0xC6,0x42,0xF8,0xBD,0xC3,0x00,0x10,0x01,0xEB,0x38,0x01,0xC4,0xD6,0xF9,0x01, +0x2C,0x0A,0xEA,0x19,0x0B,0x0B,0x03,0x43,0x18,0xBD,0x5F,0x18,0x06,0x4E,0xF8,0xFA, +0x47,0x17,0xC6,0x42,0xF8,0xBD,0xC3,0x00,0x10,0x01,0xEB,0x38,0x01,0xC6,0xD6,0xF9, +0x31,0x30,0xE7,0xFF,0x2F,0x42,0xD0,0x60,0x30,0xF2,0xE7,0xFF,0xD9,0x56,0xC2,0xE0, +0x10,0x01,0xEF,0x17,0x07,0xF6,0xD3,0x01,0x30,0x76,0xE4,0x00,0x0B,0xD1,0x9B,0x1E, +0xEF,0x17,0x08,0xC5,0xC1,0xA0,0x10,0x01,0x13,0x2A,0x00,0xFD,0xAD,0x0C,0x06,0x9B, +0x00,0x8A,0xED,0xE4,0x00,0x00,0x35,0x0B,0x57,0x01,0x9F,0x01,0x0F,0x4B,0x01,0x5F, +0x18,0x00,0x0B,0x57,0x03,0x1E,0xF7,0x30,0x0F,0x4B,0x03,0x9D,0x64,0xD7,0x19,0xFF, +0x56,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x08,0x9E,0x22,0xE4,0x26,0x99,0x60,0xE4,0x00, +0x00,0x5F,0xE7,0xFF,0xBF,0xA2,0x20,0x6B,0xD8,0xE7,0xFF,0xBF,0x94,0x20,0x6C,0xAE, +0xE7,0xFF,0xFF,0xD9,0xCC,0x8B,0x00,0x30,0x88,0xCB,0x1C,0x84,0x10,0x9D,0x61,0x8C, +0x8A,0x5D,0x6B,0x00,0x1C,0x64,0x06,0x9C,0x88,0xE7,0xFF,0x6E,0x6C,0x10,0xAA,0x00, +0xD4,0xAB,0xFF,0x25,0xE4,0x00,0x00,0x11,0xE7,0xFF,0x6D,0xBE,0xE7,0xFF,0xBF,0x2E, +0xC3,0x20,0x10,0x01,0xC3,0x00,0x10,0x01,0xC2,0xE0,0x10,0x01,0x20,0x68,0xD6,0x53, +0x40,0x4B,0xEF,0x58,0x08,0xE9,0xEF,0x59,0x08,0xB3,0x53,0x00,0x25,0xEF,0x17,0x08, +0xFF,0xC2,0xA0,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFE,0xB5,0x08,0xA4,0xEF,0x17,0x08, +0xD5,0x99,0x60,0xC2,0x60,0x10,0x01,0xC2,0x80,0x10,0x01,0x8A,0x55,0xE4,0x00,0x03, +0x19,0x53,0x40,0x32,0xEF,0x58,0x08,0xE9,0xEF,0x59,0x08,0xB3,0x53,0x00,0x19,0xE7, +0xFF,0xFF,0x9D,0x4E,0xEB,0x10,0x8E,0xEE,0x0B,0x17,0x00,0xC3,0x0F,0xFF,0xE4,0x20, +0x05,0x3B,0x0B,0x37,0x02,0xC3,0x2F,0xFF,0xE0,0x20,0x05,0x11,0xCE,0xEB,0x00,0x30, +0x8E,0xEA,0x0A,0x37,0x17,0x42,0x38,0x8D,0x5E,0x31,0x06,0x4F,0x11,0xFA,0x0A,0xF7, +0x19,0x46,0x38,0x8E,0x42,0xF9,0xBD,0x42,0x31,0xC5,0x5E,0xF7,0x06,0x4F,0x17,0xFA, +0x5E,0x31,0x06,0x46,0xF8,0xBE,0xE9,0xF3,0x08,0xE9,0x42,0xF7,0xC5,0x43,0x15,0x5C, +0x5E,0xF7,0x06,0x13,0x58,0x00,0xD6,0xEF,0x00,0xE4,0xC3,0x00,0x10,0x01,0xEB,0x18, +0x08,0xB3,0xD6,0x38,0x00,0x84,0x9B,0x03,0x27,0x48,0x57,0x1F,0x1A,0x01,0xE4,0x00, +0x00,0x19,0x9B,0x00,0x23,0x40,0x24,0x1F,0x1A,0xFF,0x5F,0x18,0x00,0x43,0x52,0x5C, +0x1B,0x1A,0x00,0x43,0x15,0x5C,0x13,0x18,0x00,0xD3,0x02,0x06,0xA1,0xEB,0x14,0x08, +0xD5,0xD6,0xF8,0x00,0x8C,0xCE,0xEB,0x00,0x30,0x8E,0xEA,0x0F,0x37,0x19,0xE4,0x00, +0x00,0x9B,0xD6,0xEF,0x02,0x4C,0x43,0x2F,0xC5,0x40,0x77,0xC5,0x43,0x39,0xCB,0x42, +0xF8,0xBD,0x43,0x4F,0x7B,0x40,0x63,0xBB,0x8C,0x79,0x40,0x63,0xD3,0x40,0x63,0xC8, +0xE7,0xFF,0x2A,0xB0,0x4E,0xEB,0x10,0x8E,0xEE,0x5C,0x63,0x06,0x0B,0x17,0x02,0x41, +0xEF,0x1D,0xCE,0xEB,0x00,0x30,0x8E,0xEA,0x0B,0x37,0x18,0xD7,0x19,0x00,0x58,0x41, +0xF8,0x7D,0xE4,0x00,0x00,0x0D,0x8D,0xF8,0x0D,0xF7,0x19,0xC2,0xE0,0x10,0x01,0xEA, +0xF7,0x08,0xFF,0xD6,0x37,0x00,0xCC,0xCE,0xEB,0x00,0x30,0x4F,0x0B,0x10,0x8E,0xEA, +0x8F,0x0E,0x0B,0x18,0x01,0x0F,0x17,0x17,0xE4,0x00,0x00,0xAB,0xC3,0x00,0x10,0x01, +0xE9,0xF8,0x08,0xB3,0xD6,0x2F,0x02,0x4C,0x43,0x0F,0xBD,0x43,0x2F,0x7B,0x43,0x18, +0xC3,0x40,0x71,0xBD,0x42,0x37,0x8D,0x40,0x63,0x8B,0x8C,0x78,0x40,0x63,0xCB,0x40, +0x63,0xC0,0xE7,0xFF,0x29,0xCC,0x4E,0xEB,0x10,0x8E,0xEE,0x5C,0x63,0x06,0x0B,0x17, +0x00,0x41,0xEF,0x1D,0xCE,0xEB,0x00,0x30,0x8E,0xEA,0x0B,0x37,0x16,0xD7,0x19,0x00, +0x58,0x41,0xF8,0x7D,0xE4,0x00,0x00,0x0D,0x8D,0xF8,0x0D,0xF7,0x17,0x4E,0xEB,0x10, +0xCF,0x0B,0x00,0x30,0x8E,0xEE,0x8F,0x0A,0x9D,0x61,0x0B,0x38,0x17,0x5D,0x6B,0x00, +0x0B,0x18,0x19,0x0F,0x37,0x01,0x0F,0x17,0x03,0x12,0xEA,0x00,0xD6,0xEB,0xF4,0x3D, +0xE7,0xFF,0xBB,0x86,0x20,0x68,0x36,0x9B,0x08,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x01, +0xBD,0xC2,0xE0,0x10,0x01,0x13,0x2A,0x00,0xF3,0x77,0x08,0xE4,0x8B,0x0D,0xC2,0xE0, +0x10,0x01,0x9B,0x80,0xFE,0xF7,0x0B,0xD4,0xFF,0x40,0x7F,0xFF,0xE4,0x00,0x00,0x9F, +0xD7,0x79,0x00,0x92,0x0F,0x57,0xFD,0x0F,0x57,0xFF,0x0F,0x57,0x01,0x0F,0x57,0x03, +0x8B,0x79,0x0B,0xB7,0x00,0xC3,0xAF,0xFF,0xE0,0x20,0x00,0x41,0x0B,0xB7,0xFD,0x0F, +0xB7,0x01,0x0B,0xB7,0xFF,0xE4,0x00,0x00,0x1B,0x0B,0xB8,0x01,0x0F,0xB7,0x01,0x0B, +0xB8,0x03,0x0F,0xB7,0x03,0x0B,0xB8,0x01,0x9F,0x81,0x0F,0xB7,0xFD,0x5F,0x9C,0x00, +0x0B,0xB8,0x03,0x1F,0x18,0x30,0x0F,0xB7,0xFF,0x9E,0xE8,0xD7,0x99,0xFD,0xAE,0xC2, +0xE0,0x10,0x01,0xFB,0x77,0x08,0xE4,0xC2,0xE0,0x10,0x01,0x23,0x24,0x7A,0x9B,0x02, +0xFB,0x17,0x09,0x01,0xC2,0xE0,0x10,0x01,0xEA,0xF7,0x01,0xBC,0x9B,0x0A,0x9B,0x4A, +0x43,0x18,0xBD,0x9A,0xE0,0xE4,0x00,0x00,0x8F,0xF8,0x17,0x09,0x01,0xE7,0xFF,0xFF, +0xCF,0x0B,0x6C,0x04,0x0B,0x8C,0x00,0x0B,0xAC,0x06,0x43,0x9C,0xDD,0x9E,0xE1,0x43, +0x98,0xE3,0x5E,0xF7,0x00,0x43,0x9C,0xD0,0x8F,0x9B,0x0B,0x6C,0x02,0x0F,0x8D,0x01, +0x43,0x7B,0xED,0x0F,0x8C,0x01,0x43,0x78,0xDB,0x43,0x7B,0xD0,0x8F,0x7D,0x5F,0x7B, +0x06,0x0F,0x6D,0x03,0x0F,0x6C,0x03,0x1D,0xAD,0x30,0x9D,0x88,0xD6,0xF9,0xFE,0x2E, +0x12,0xF0,0x00,0x56,0xF7,0x02,0x22,0xE0,0x24,0x98,0x64,0xE7,0xFF,0xCF,0x42,0x13, +0x0A,0x00,0xC2,0xE0,0x10,0x01,0x0E,0xA1,0x06,0x0E,0x81,0x0A,0x0E,0x61,0x0E,0x0E, +0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D,0xE1,0x1E,0x0D,0xC1,0x22,0x0D,0xA1, +0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41,0x32,0x0D,0x21,0x36,0xFB,0x17,0x08, +0x88,0x98,0x61,0x1C,0x21,0x38,0xE7,0xFF,0xAD,0x81,0x18,0x0F,0x00,0x9A,0xE4,0xE4, +0x00,0x04,0xDD,0xD2,0xE4,0x01,0xE6,0x0A,0xEE,0x01,0x56,0xF7,0x08,0x22,0xE0,0x5C, +0x9A,0xE3,0x18,0x12,0x00,0x0E,0xED,0x00,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0xC5, +0xE4,0x00,0x04,0xDB,0x12,0xEF,0x00,0x9E,0xE1,0x5E,0xF7,0x00,0x1A,0xEF,0x00,0xD2, +0xE1,0x12,0xF1,0x9A,0xE5,0x18,0x0F,0x00,0x0E,0xED,0x00,0xE4,0x00,0x04,0xA5,0xD2, +0xE5,0x09,0xCE,0x12,0xEF,0x00,0x9E,0xE1,0x1A,0xEF,0x00,0xC2,0xE0,0x10,0x01,0xF2, +0xF7,0x08,0xE4,0x22,0xE9,0x36,0x12,0xF0,0x00,0x56,0xF7,0x01,0x22,0xE1,0x10,0xC2, +0xE0,0x10,0x01,0xF8,0x17,0x09,0x01,0xC1,0x40,0x10,0x01,0xF2,0xEA,0x08,0x8C,0x22, +0xE8,0x66,0x98,0x65,0xE7,0xFF,0xCD,0xD0,0x98,0x61,0xE7,0xFF,0xAC,0x78,0x9A,0xE1, +0xFA,0xEA,0x08,0x8C,0xE4,0x00,0x01,0x77,0xD2,0xE1,0x05,0x96,0x98,0x65,0xE7,0xFF, +0xCD,0x9C,0x98,0x61,0xE7,0xFF,0xAC,0x44,0xF8,0x0A,0x08,0x8C,0xE4,0x00,0x01,0x47, +0x0B,0x0B,0x00,0x0B,0x4C,0x00,0x43,0x38,0xD5,0x5F,0x39,0x06,0x4E,0xF9,0xFA,0x47, +0x37,0xCE,0x42,0xF9,0xBD,0xC2,0xE0,0x19,0x0C,0x20,0x00,0x7D,0x0A,0xEC,0x03,0x0B, +0x2B,0x03,0x43,0x39,0xBD,0x5F,0x39,0x06,0x4E,0xF9,0xFA,0x47,0x37,0xCE,0x42,0xF9, +0xBD,0xC2,0xE0,0x1F,0x48,0x20,0x01,0x95,0xC3,0x20,0x10,0x01,0xF2,0xF9,0x09,0x01, +0x22,0xE8,0xB6,0x8F,0x1A,0x43,0x18,0xB8,0x0F,0x0A,0x17,0xC3,0x00,0x10,0x01,0xEB, +0x58,0x08,0x92,0xC3,0x00,0x10,0x01,0xEB,0x18,0x0B,0xD2,0x8F,0x1A,0x42,0xF8,0xB8, +0x0E,0xEA,0x19,0x9A,0xE1,0xFA,0xF9,0x09,0x01,0xE4,0x00,0x00,0x45,0x22,0xE4,0x66, +0xC2,0xE0,0x10,0x01,0x0F,0x0A,0x17,0xEA,0xF7,0x08,0x93,0xF8,0x19,0x09,0x01,0x0E, +0xEA,0x19,0xE4,0x00,0x00,0x13,0x9A,0xE3,0x1A,0xEF,0x00,0x9A,0xE1,0x98,0x61,0x1A, +0xEA,0x00,0xE7,0xFF,0xAB,0x08,0xE4,0x00,0x00,0x13,0x9A,0xE3,0x1A,0xEF,0x00,0x12, +0xEF,0x00,0xD2,0xE2,0x0A,0x59,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0xC5,0xE7,0xFF, +0x24,0x42,0xC2,0xE0,0x10,0x01,0x9B,0x03,0xFB,0x17,0x08,0xB0,0xE7,0xFF,0xCF,0x52, +0xE7,0xFF,0x64,0xCE,0x98,0x60,0xE7,0xFF,0xAA,0xA0,0xC2,0xE0,0x10,0x01,0xF8,0x17, +0x08,0xC7,0x9A,0xE6,0xE4,0x00,0x01,0xF3,0xD2,0xE6,0x08,0xAE,0x0A,0xEE,0x01,0x56, +0xF7,0x40,0x22,0xE0,0x26,0x98,0x64,0xE7,0xFF,0xE9,0x90,0xC3,0x00,0x10,0x01,0xF2, +0xF8,0x08,0xC7,0x9E,0xE1,0x5E,0xF7,0x00,0xFA,0xF8,0x08,0xC7,0x5E,0xE6,0x53,0x0A, +0xEE,0x01,0x20,0x01,0x35,0x56,0xF7,0x40,0x22,0xE0,0x50,0x9A,0xE1,0x0E,0xED,0x00, +0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xD6,0xE4,0x00,0x01,0xAB,0x0C,0x0D,0x00,0x98, +0x60,0x0E,0xA1,0x06,0x0E,0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16, +0x0E,0x01,0x1A,0x0D,0xE1,0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D, +0x61,0x2E,0x0D,0x41,0x32,0x0D,0x21,0x36,0x1C,0x21,0x38,0xE7,0xFF,0xE8,0xC9,0x56, +0xF7,0x08,0xD2,0xE0,0x04,0xDA,0xC2,0xE0,0x10,0x01,0xF8,0x17,0x08,0xB4,0x9A,0xE2, +0xE4,0x00,0x00,0xDB,0xC3,0x6F,0xFF,0xE4,0x23,0xE1,0xF5,0xE7,0xFF,0xF2,0x05,0x98, +0x62,0xE7,0xFF,0xCA,0x96,0xFE,0xE0,0x7F,0xFF,0x0E,0xEB,0x05,0x0E,0xEB,0x07,0x0E, +0xEE,0x05,0x0E,0xEE,0x07,0x0E,0xEC,0x09,0x0E,0xEC,0x0B,0x0E,0xEC,0x0D,0x0E,0xEC, +0x0F,0xE7,0xFF,0xF1,0xB9,0x0B,0x8C,0x01,0x43,0x99,0xE5,0x5F,0x9C,0x06,0x4F,0x7C, +0xFA,0x47,0x9B,0xE6,0x43,0x7C,0xDD,0xC3,0x60,0x19,0x0C,0x23,0xE4,0x9F,0xE7,0xFF, +0xF2,0x7B,0xFE,0xE0,0x7F,0xFF,0x18,0x0F,0x00,0x0E,0xEB,0x01,0x0E,0xEB,0x03,0x0E, +0xEB,0x05,0x0E,0xEB,0x07,0x18,0x11,0x00,0x1B,0x11,0x01,0x9A,0xE5,0x0E,0xED,0x00, +0xE4,0x00,0x00,0x3B,0xC2,0xE0,0x10,0x01,0xCB,0x20,0xFF,0xFD,0xEB,0x17,0x08,0xC5, +0x9F,0x01,0x5F,0x18,0x04,0xD7,0x19,0xCF,0x4D,0xE7,0xFF,0xF3,0xCF,0x0E,0xA1,0x06, +0x0E,0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16,0x0E,0x01,0x1A,0x0D, +0xE1,0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D,0x61,0x2E,0x0D,0x41, +0x32,0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0x9C,0x38,0x0D,0x41,0x00,0x0D,0x21, +0x04,0x89,0x43,0x20,0x84,0x46,0x98,0x60,0x88,0x8A,0xE7,0xFF,0xE2,0xAC,0x98,0x68, +0xE4,0x00,0x00,0x1D,0x98,0x62,0x88,0x8A,0xE7,0xFF,0xE2,0x90,0x98,0x69,0x88,0x8A, +0x0D,0x21,0x06,0x0D,0x41,0x02,0x9C,0x28,0xE7,0xFF,0xE2,0x71,0x9C,0x38,0x0D,0x21, +0x04,0x0D,0x41,0x00,0x89,0x43,0x98,0x60,0x88,0x8A,0xE7,0xFF,0xE2,0x4C,0x88,0x8A, +0x0D,0x21,0x06,0x0D,0x41,0x02,0x98,0x68,0x9C,0x28,0xE7,0xFF,0xE2,0x2D,0xD0,0x6B, +0x0B,0x85,0x4F,0x03,0x10,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBA,0x7C,0x8E,0xF8,0xC3, +0x40,0x10,0x01,0x0F,0xB7,0x02,0xC3,0x60,0x10,0x01,0xC3,0x20,0x10,0x01,0xC3,0x80, +0x10,0x01,0xC3,0x00,0x10,0x01,0xC2,0xE0,0x10,0x01,0xFF,0x5A,0x09,0xA8,0xFF,0x7B, +0x0A,0xEC,0xFF,0x39,0x0A,0x58,0xFF,0x9C,0x0B,0x64,0xFF,0x18,0x0C,0xF6,0xFE,0xF7, +0x09,0x6C,0x87,0xA9,0xCC,0x63,0x00,0x1A,0x5C,0x63,0x00,0x4F,0x23,0x08,0x4C,0x63, +0x10,0x8F,0x19,0x8E,0xF9,0x8F,0x43,0x9B,0x20,0x43,0x77,0xCC,0x43,0xB8,0xCC,0x4F, +0x99,0x08,0x0B,0xBD,0x01,0x8F,0x9A,0x0F,0x9C,0x02,0x4F,0x9C,0x42,0x43,0x9D,0xE5, +0x0F,0x9B,0x01,0x9F,0x22,0x5F,0x26,0x89,0x23,0xFF,0x85,0xE4,0x00,0x01,0xE7,0x9C, +0x7E,0xCC,0x63,0x00,0x1A,0x5C,0x63,0x00,0x4F,0x43,0x08,0x4C,0x63,0x10,0x8F,0x1A, +0x8C,0x79,0x8E,0xFA,0x9B,0x20,0x43,0x77,0xCC,0x43,0xB8,0xCC,0x4F,0x99,0x08,0x0B, +0xBD,0x01,0x8F,0x83,0x0F,0x9C,0x02,0x4F,0x9C,0x42,0x43,0x9D,0xE5,0x0F,0x9B,0x01, +0x9F,0x22,0x5F,0x26,0x89,0x23,0xFF,0x85,0xE4,0x00,0x01,0x6D,0x0B,0x78,0x35,0x0F, +0x3A,0x6A,0x4F,0x39,0x42,0x43,0x3B,0xCD,0x0B,0x78,0x37,0x0F,0x37,0x35,0x0F,0x3A, +0x6E,0x4F,0x39,0x42,0x43,0x3B,0xCD,0x0F,0x37,0x37,0x0F,0x3A,0x72,0xE4,0x00,0x00, +0x4B,0x0F,0x59,0x6A,0x0B,0x78,0x35,0x4F,0x5A,0x42,0x43,0x5B,0xD5,0x0B,0x78,0x37, +0x0F,0x57,0x35,0x0F,0x59,0x6E,0x0F,0x39,0x72,0x4F,0x5A,0x42,0x43,0x5B,0xD5,0x0F, +0x57,0x37,0x4F,0x39,0x42,0x0B,0x18,0x39,0x43,0x18,0xCD,0x0F,0x17,0x39,0xE4,0x00, +0x00,0xC1,0xC3,0xA0,0x10,0x01,0x9A,0xE0,0xFF,0xBD,0x0B,0xB0,0x43,0x17,0xE4,0x43, +0x57,0xDC,0x4F,0x37,0x08,0x0B,0x5A,0x01,0x8F,0x3D,0x0F,0x39,0x02,0x4F,0x39,0x42, +0x43,0x3A,0xCD,0x0F,0x38,0x01,0x9E,0xE2,0x5E,0xE2,0x09,0x23,0xFF,0x85,0xE4,0x00, +0x00,0x61,0xC3,0xA0,0x10,0x01,0x9A,0xE0,0xFF,0xBD,0x0A,0xCC,0x43,0x17,0xE4,0x43, +0x57,0xDC,0x4F,0x37,0x08,0x0B,0x5A,0x01,0x8F,0x3D,0x0F,0x39,0x02,0x4F,0x39,0x42, +0x43,0x3A,0xCD,0x0F,0x38,0x01,0x9E,0xE2,0x5E,0xE2,0x09,0x23,0xFF,0x85,0x85,0x29, +0x9C,0x38,0x0D,0x21,0x04,0x20,0x64,0x56,0x98,0x60,0xE7,0xFF,0xFD,0x08,0x98,0x68, +0xE7,0xFF,0xFC,0xFC,0x98,0x6A,0xE4,0x00,0x00,0x25,0x98,0x62,0xE7,0xFF,0xFC,0xE4, +0x98,0x69,0xE7,0xFF,0xFC,0xD8,0x98,0x6B,0x0D,0x21,0x06,0x9C,0x28,0xE7,0xFF,0xFC, +0xC3,0x9C,0x38,0x98,0x60,0x0D,0x21,0x04,0xE7,0xFF,0xFC,0xAC,0x0D,0x21,0x06,0x98, +0x68,0x9C,0x28,0xE7,0xFF,0xFC,0x97,0xC2,0xE0,0x10,0x01,0xCB,0x00,0x7F,0xFF,0xFE, +0xF7,0x0B,0x64,0x8B,0x37,0x0B,0x79,0x00,0x5F,0x1B,0x15,0x4B,0x58,0xD8,0x9F,0x22, +0x5F,0x1A,0x06,0xC3,0x40,0x10,0x01,0xFF,0x5A,0x0B,0x74,0xD7,0x3A,0xFF,0x56,0x9B, +0x20,0x0B,0x57,0x00,0x43,0x5A,0xC5,0x9E,0xE2,0xC3,0x40,0x3E,0x88,0xC3,0x40,0x10, +0x01,0x4B,0x39,0x0A,0xFF,0x5A,0x0B,0x74,0xD6,0xFA,0xFF,0x4E,0xC2,0xE0,0x10,0x01, +0xC3,0x00,0x10,0x01,0x23,0x20,0x64,0xEB,0x37,0x08,0x8F,0xCB,0x39,0x08,0x00,0xEF, +0x37,0x08,0x8F,0x9A,0xE1,0xFA,0xF8,0x08,0x98,0xE4,0x00,0x00,0x2F,0xEB,0x37,0x08, +0x8F,0xFF,0x40,0xF7,0xFF,0xF8,0x18,0x08,0x98,0x47,0x39,0xD4,0xEF,0x37,0x08,0x8F, +0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x3D,0xF9,0x1C,0x21,0xC8,0x0D,0x21,0x34, +0x0D,0x41,0x30,0x0D,0x61,0x2C,0x0D,0x81,0x28,0x0D,0xA1,0x24,0x0D,0xC1,0x20,0x0D, +0xE1,0x1C,0x0E,0x01,0x18,0x0E,0x21,0x14,0x0E,0x41,0x10,0x0E,0x61,0x0C,0x0E,0x81, +0x08,0x13,0x17,0x00,0xC2,0xE0,0x10,0x01,0xFB,0x17,0x00,0xB8,0xF3,0x17,0x00,0xB8, +0x23,0x00,0x2C,0xF2,0xF7,0x00,0xB8,0xD2,0xE1,0x2F,0xAE,0xC1,0xA0,0x10,0x01,0xC1, +0xE0,0x10,0x01,0xFD,0xAD,0x08,0xE6,0xFD,0xEF,0x00,0xD8,0x0A,0xED,0x01,0x56,0xF7, +0x80,0xD2,0xE0,0x2D,0x9E,0xC2,0xE0,0x10,0x01,0xC1,0x60,0x10,0x01,0xF3,0x17,0x00, +0xB8,0xFD,0x6B,0x09,0x6C,0x23,0x08,0xB2,0xF2,0xF7,0x00,0xB8,0x22,0xE8,0x68,0x0B, +0x2B,0x02,0x9B,0x02,0xCF,0x59,0x00,0x03,0x0A,0xEB,0x00,0x43,0x1A,0xC0,0xD6,0xF8, +0x02,0x14,0xE4,0x00,0x00,0xA9,0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x07,0x6F,0x22,0xE3, +0x86,0x8B,0x0B,0x9A,0xE0,0x9B,0x22,0x5F,0x57,0x00,0x27,0x44,0x3D,0x5E,0xE3,0x01, +0x20,0x00,0x25,0x5E,0xE3,0x29,0x20,0x00,0x31,0x0B,0x58,0x00,0x43,0x5A,0xC8,0x0F, +0x58,0x01,0x9E,0xE1,0x9F,0x02,0x5E,0xE3,0x49,0x23,0xFF,0x79,0xE7,0xFF,0xFF,0x67, +0x42,0xF7,0xC5,0x53,0x20,0x15,0xCE,0xF7,0x00,0x0A,0x42,0xF7,0xC8,0x8F,0x17,0x0F, +0x0B,0x01,0xE4,0x00,0x00,0x43,0x4E,0xF7,0x08,0x9B,0x1D,0x43,0x17,0xC0,0x8F,0x38, +0x9B,0x07,0xCF,0x39,0x00,0x06,0x43,0x39,0xC0,0x9B,0x03,0x42,0xF7,0xC0,0x8E,0xF9, +0x0E,0xEB,0x03,0x0B,0x2B,0x30,0x0B,0x0B,0x32,0x4E,0xF9,0x08,0xD7,0x17,0x00,0xC0, +0xCF,0x39,0xFF,0xFE,0x9B,0x4B,0x8F,0x19,0xCF,0x18,0x00,0x03,0x43,0x18,0xD0,0x8E, +0xF8,0x0E,0xEB,0x33,0x0A,0xEB,0x32,0x9B,0x12,0x43,0x17,0xC0,0x8E,0xF8,0x53,0x00, +0xF0,0x0E,0xEB,0x33,0xC2,0xE0,0x10,0x01,0xEF,0x17,0x01,0x55,0x0E,0xEF,0x02,0x22, +0xE4,0x1E,0xE7,0xFF,0xFC,0x8A,0xC1,0x80,0x10,0x01,0xFD,0x8C,0x0B,0x7A,0x12,0xEC, +0x04,0x10,0x6C,0x01,0x40,0x63,0xBB,0xE7,0xFF,0xC5,0xEA,0xC1,0xC0,0x10,0x01,0x13, +0x2C,0x04,0xFD,0xCE,0x0A,0x1C,0x10,0x6C,0x01,0x0A,0xEE,0x00,0x43,0x79,0x1B,0x9B, +0x00,0xE4,0x00,0x00,0x35,0x4F,0x58,0x10,0x9F,0x01,0x8F,0x4E,0x5F,0x18,0x00,0x0F, +0x5A,0x02,0x5F,0x9A,0x06,0x5F,0x57,0x1D,0x4A,0xFC,0xB8,0xD7,0x78,0xFF,0x54,0xC1, +0x40,0x10,0x01,0xC2,0xE2,0x32,0x88,0xFD,0x4A,0x01,0x3C,0x20,0x00,0x35,0x4E,0xF7, +0x0A,0x0E,0xEA,0x19,0xE4,0x00,0x00,0x2F,0x53,0x00,0xF0,0xC2,0xE0,0x77,0xE8,0x20, +0x00,0x25,0x4E,0xF7,0x12,0x5F,0x17,0x06,0x0F,0x0A,0x19,0xC2,0xE0,0x10,0x01,0xF2, +0xF7,0x08,0x98,0x22,0xE1,0x54,0x40,0x63,0xCB,0xE7,0xFF,0xC5,0x06,0x12,0xEC,0x01, +0x13,0x6C,0x04,0x0B,0x2E,0x00,0x43,0x7B,0xBB,0x9A,0xE0,0x8B,0x17,0xE4,0x00,0x00, +0x35,0x4F,0x58,0x10,0x8F,0x4E,0x0F,0x5A,0x02,0xD7,0x59,0x00,0x48,0x5F,0x3A,0x06, +0x8A,0xF8,0x9F,0x01,0x5F,0x18,0x00,0xD7,0x78,0xFF,0x54,0x26,0xE8,0x3D,0xD2,0xEB, +0x00,0x62,0xD2,0xEC,0x00,0x42,0xD2,0xEA,0x00,0x66,0xFE,0xE0,0x02,0x58,0xE4,0x00, +0x00,0x0F,0x52,0xE0,0xC8,0x0E,0xEA,0x19,0x88,0x6A,0xE7,0xFF,0x29,0x0A,0xC1,0x80, +0x10,0x01,0x89,0xCB,0xFD,0x8C,0x0B,0xF0,0x8A,0xEB,0x12,0x2C,0x00,0x53,0x20,0x14, +0x0B,0x17,0x00,0xCF,0x18,0x00,0x23,0x43,0x18,0xC8,0x0F,0x17,0x01,0xC3,0x00,0x10, +0x01,0x9E,0xE2,0xFF,0x18,0x09,0xA0,0xD6,0xF8,0xFF,0x4E,0x88,0x6A,0xE7,0xFF,0x28, +0xA4,0xC2,0x00,0x10,0x01,0x9A,0xE0,0xFE,0x10,0x08,0x88,0x22,0x20,0x4A,0x13,0x0C, +0x00,0x27,0x04,0x33,0x12,0xF0,0x00,0x5E,0xE0,0x01,0x4A,0xE1,0x01,0x13,0x0C,0x00, +0x23,0x09,0x2E,0x13,0x10,0x00,0x23,0x05,0x3A,0x13,0x2C,0x07,0x13,0x0C,0x37,0xD7, +0x38,0x02,0x2A,0x0F,0x0C,0x0A,0x23,0x04,0xFA,0x0F,0x0C,0x3A,0x23,0x04,0xE2,0xC3, +0x00,0x10,0x01,0xEB,0x38,0x0B,0xD2,0xC3,0x2F,0xFF,0xE0,0x20,0x00,0xA5,0xFF,0x39, +0xFC,0x01,0x4F,0x19,0xFA,0x47,0x38,0xCE,0x43,0x19,0xC5,0xC3,0x20,0x10,0x01,0xEB, +0x59,0x0B,0x85,0xD7,0x1A,0x00,0xA4,0xE4,0x00,0x00,0x1B,0x23,0x04,0x26,0x13,0x10, +0x00,0x23,0x00,0x18,0x22,0xE0,0x9C,0x53,0x00,0x23,0x0A,0xEE,0x00,0xCE,0xF7,0x00, +0x14,0x42,0xF7,0xC0,0x0E,0xEE,0x01,0xC3,0x40,0x10,0x01,0x9D,0xC2,0xFF,0x5A,0x09, +0xA0,0xD5,0xDA,0xFF,0x4E,0x88,0x6A,0xE7,0xFF,0x27,0x70,0x12,0xEC,0x00,0x22,0xE0, +0x5A,0xC2,0xE0,0x10,0x01,0xEC,0x17,0x08,0x9C,0x13,0x2C,0x00,0xD3,0x20,0x0A,0xBE, +0xE4,0x00,0x02,0xE1,0x98,0x61,0x98,0x81,0x88,0xAA,0xE7,0xFF,0x22,0x50,0x0A,0xEA, +0x10,0x0B,0x0A,0x06,0x0B,0x2A,0x12,0x5D,0xD7,0x04,0x42,0x38,0xBD,0x40,0xB8,0xCD, +0xCA,0xE0,0x07,0xFF,0x43,0x37,0xCD,0x0B,0x4A,0x02,0x0B,0x6A,0x08,0x40,0x97,0xC5, +0x5C,0xF9,0x04,0x11,0x0C,0x00,0x0B,0x2A,0x0A,0x40,0x78,0xD5,0x42,0x59,0xDD,0x42, +0x77,0xCD,0x40,0xDA,0xC5,0xC2,0xE0,0x10,0x01,0x9E,0x4A,0x42,0x9B,0xCD,0xFE,0xF7, +0x0C,0x08,0x9B,0xA0,0xCB,0xC0,0x07,0xFF,0xE4,0x00,0x00,0xC9,0x0B,0x97,0xFE,0xD7, +0x1C,0x00,0x98,0x43,0x9C,0xD5,0x43,0x9C,0x8B,0x43,0x9C,0x18,0x8F,0x8E,0xE4,0x00, +0x00,0x2D,0xD7,0x84,0x00,0xA8,0x43,0x9E,0xE5,0x43,0x9C,0xD5,0x43,0x9C,0x2B,0x43, +0x9C,0x30,0x8F,0x87,0x0F,0x97,0xFF,0x0B,0x97,0x00,0xD7,0x3C,0x00,0x98,0x43,0x9C, +0xDD,0x9F,0x8A,0x43,0x9C,0xCB,0x43,0x9C,0x90,0xE4,0x00,0x00,0x31,0xD7,0x93,0x00, +0xB8,0x43,0x9E,0xE5,0x43,0x9C,0xDD,0x43,0x9C,0xCB,0x43,0x9C,0xA0,0xFF,0x9C,0x07, +0xFF,0x0F,0x97,0x01,0x9F,0xA1,0x1E,0xF7,0x30,0x5F,0xBD,0x00,0xD7,0xA8,0xFD,0x06, +0xCA,0xE0,0x07,0xFF,0x0B,0x0A,0x12,0x0B,0x4A,0x10,0x0B,0x6A,0x0C,0x43,0xB7,0xD5, +0x42,0xF7,0xDD,0x43,0xBD,0xC5,0x0B,0x0A,0x0E,0x43,0xD7,0xC5,0xC2,0xE0,0x10,0x01, +0x9B,0x00,0xF1,0x17,0x08,0x98,0x12,0xEC,0x00,0xE4,0x00,0x00,0x93,0xCF,0x38,0x00, +0x30,0x8F,0x2C,0x0B,0x99,0x16,0x09,0x59,0x18,0x43,0x9C,0xD5,0x41,0x4A,0xDD,0xCF, +0x9C,0x07,0xFF,0xCD,0x4A,0x07,0xFF,0x43,0x9C,0xE8,0x41,0x4A,0xF0,0x0F,0x99,0x17, +0x0D,0x59,0x19,0x1F,0x9C,0x9C,0x5F,0x9C,0x04,0xC3,0x80,0xE6,0xEA,0x20,0x00,0x41, +0x21,0x00,0x34,0x8B,0x37,0x22,0xE0,0x14,0x9B,0x21,0x5E,0xF9,0x00,0x9F,0x01,0x5F, +0x18,0x00,0xD6,0xF8,0xFD,0xDD,0x1A,0xEC,0x00,0xE7,0xFF,0xFD,0x71,0xCF,0x57,0x00, +0x30,0x9E,0xE1,0x8F,0x4C,0x0F,0x5A,0x0E,0xC3,0x40,0x95,0xEC,0x4B,0x18,0x0A,0xE4, +0x00,0x00,0x11,0x9A,0xE0,0x8B,0x17,0x5F,0x57,0x00,0xD7,0x3A,0xFF,0x1D,0xC2,0xE0, +0x10,0x01,0xEF,0x17,0x08,0x9C,0x0A,0xED,0x01,0x52,0xF7,0x08,0xE4,0x00,0x00,0x33, +0x9B,0x07,0xC2,0xE0,0x10,0x01,0x18,0x10,0x00,0xEF,0x17,0x01,0xBD,0x0A,0xED,0x01, +0x9B,0x17,0x46,0xF7,0xC4,0x0E,0xED,0x01,0x0E,0xEF,0x02,0xD2,0xE1,0x0D,0xAE,0xE7, +0xFF,0xD9,0x44,0xC2,0xE0,0x10,0x01,0xEE,0xF7,0x07,0xF6,0xD2,0xE1,0x0A,0xAA,0x0B, +0x2B,0x35,0x0A,0xEB,0x39,0x0B,0x0B,0x36,0x5F,0x77,0x06,0x5F,0x59,0x06,0xD7,0x5B, +0x00,0x30,0x8A,0xF9,0x5F,0x37,0x06,0xC1,0xF8,0x00,0x21,0x47,0x39,0xCF,0xC2,0x00, +0x10,0x01,0x4F,0x39,0xFA,0x99,0x40,0x46,0xF7,0xCC,0xC1,0xC0,0x10,0x01,0x5E,0xF7, +0x06,0xFD,0xEF,0xB4,0xBA,0x4E,0xF7,0x08,0xFE,0x10,0x01,0xBE,0x5E,0xF8,0x15,0xC1, +0x80,0x10,0x01,0x4A,0xF7,0xC0,0x43,0x18,0xBD,0x0F,0x0B,0x37,0xE4,0x00,0x00,0xAD, +0x1C,0x61,0x05,0x88,0x8F,0x98,0xA3,0xE7,0xFF,0x65,0xC4,0x1E,0xE1,0x08,0x8E,0xEA, +0x12,0xF7,0xFD,0x1F,0x17,0x1A,0x4E,0xF7,0x08,0x4F,0x18,0x08,0x8E,0xF0,0x8F,0x0B, +0x0A,0xF7,0x01,0x0B,0x18,0x00,0xD7,0x17,0x00,0xA0,0x9A,0xE1,0xEB,0x0C,0x08,0x83, +0x4E,0xF7,0x54,0x46,0xF7,0xC5,0xE4,0x00,0x00,0x27,0x9A,0xE1,0xEB,0x0C,0x08,0x83, +0x4E,0xF7,0x54,0x46,0xF7,0xBF,0x46,0xF7,0xC4,0x9D,0x41,0xEE,0xEC,0x08,0x83,0x5D, +0x4A,0x00,0xF2,0xEE,0x08,0xC6,0xD6,0xEA,0xFD,0x55,0xC2,0xE0,0x10,0x01,0xEA,0xF7, +0x08,0x83,0x22,0xE0,0x34,0x0A,0xED,0x01,0x52,0xF7,0x10,0xE4,0x00,0x00,0x3B,0x0A, +0xED,0x01,0x57,0x17,0x10,0x23,0x00,0x34,0x9B,0x21,0xC3,0x00,0x10,0x01,0xFB,0x38, +0x08,0xB0,0x1F,0x40,0xEF,0x46,0xF7,0xD4,0x0E,0xED,0x01,0xC1,0x40,0x10,0x01,0xC3, +0x00,0x10,0x01,0xEE,0xEA,0x08,0xBA,0xFF,0x18,0x08,0xD7,0x22,0xE0,0x56,0x18,0x18, +0x00,0x0A,0xED,0x01,0x56,0xF7,0x10,0x22,0xE1,0x64,0x9A,0xE1,0xE4,0x00,0x00,0x41, +0x22,0xE4,0x92,0x12,0xF8,0x00,0x9E,0xE1,0x5E,0xF7,0x00,0x1A,0xF8,0x00,0x0B,0x0D, +0x01,0x57,0x18,0x10,0x23,0x00,0xE0,0x26,0xE4,0xE5,0x9A,0xE2,0xEE,0xEA,0x08,0xB8, +0xE4,0x00,0x00,0x61,0x22,0xE8,0x7E,0x18,0x18,0x00,0x0A,0xED,0x01,0x56,0xF7,0x10, +0x22,0xE0,0x34,0x98,0x62,0xE7,0xFF,0x97,0x42,0xE4,0x00,0x00,0x2F,0x9A,0xE3,0xE7, +0xFF,0xFF,0xBB,0x22,0xEC,0x36,0x98,0x60,0xE7,0xFF,0x97,0x1C,0xEC,0x0A,0x08,0xB8, +0x0B,0x0D,0x00,0xC2,0xE0,0x10,0x01,0x27,0x1C,0x56,0xF3,0x17,0x08,0xA0,0xD3,0x09, +0x01,0xB5,0x9F,0x01,0xFB,0x17,0x08,0xA0,0xE4,0x00,0x00,0x59,0xF8,0x17,0x08,0xA0, +0xE4,0x00,0x00,0x61,0x0E,0xEF,0x02,0x22,0xE4,0xA6,0x9B,0x05,0xC2,0xE0,0x10,0x01, +0xEF,0x17,0x08,0xC0,0x9B,0x03,0xC2,0xE0,0x10,0x01,0x98,0x60,0xFB,0x17,0x08,0xB0, +0xE7,0xFF,0x96,0x8C,0xE7,0xFF,0x91,0x84,0xE4,0x00,0x00,0x11,0xE7,0xFF,0x92,0x36, +0xC2,0xE0,0x10,0x01,0xEB,0x17,0x08,0x85,0xC3,0x00,0x7D,0x0A,0x20,0x00,0x61,0xC3, +0x00,0x10,0x01,0x9B,0x5E,0xF3,0x38,0x08,0x89,0xEC,0x17,0x08,0x85,0x47,0x39,0xD4, +0xFB,0x38,0x08,0x89,0x0E,0x81,0x0A,0x0E,0x61,0x0E,0x0E,0x41,0x12,0x0E,0x21,0x16, +0x0E,0x01,0x1A,0x0D,0xE1,0x1E,0x0D,0xC1,0x22,0x0D,0xA1,0x26,0x0D,0x81,0x2A,0x0D, +0x61,0x2E,0x0D,0x41,0x32,0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0x9C,0x38,0x0D, +0x21,0x04,0xE7,0xFF,0xA1,0x76,0x20,0x60,0xE6,0xE7,0xFF,0xA1,0x54,0x20,0x64,0x7A, +0x98,0x80,0xE7,0xFF,0xB3,0x40,0xE7,0xFF,0x54,0x92,0x20,0x60,0x26,0x98,0x61,0xE4, +0x00,0x00,0x35,0x98,0x61,0x98,0x80,0xE4,0x00,0x00,0x7B,0xE7,0xFF,0xA1,0x10,0x98, +0x80,0xE7,0xFF,0xB3,0x02,0xE7,0xFF,0xA0,0xFC,0x98,0x82,0xE4,0x00,0x00,0x53,0xE7, +0xFF,0xA0,0xFC,0x20,0x65,0x0E,0xE7,0xFF,0xA0,0xDA,0x20,0x64,0xA2,0x98,0x81,0xE7, +0xFF,0xB2,0xC6,0xE7,0xFF,0x54,0x18,0x20,0x60,0x26,0x98,0x61,0xE4,0x00,0x00,0x49, +0x98,0x61,0x88,0x83,0xE7,0xFF,0xAF,0x3C,0xE7,0xFF,0xC9,0x76,0x9A,0xE0,0xE4,0x00, +0x00,0xED,0xE7,0xFF,0xA0,0x82,0x98,0x81,0xE7,0xFF,0xB2,0x74,0xE7,0xFF,0xA0,0x6E, +0x98,0x83,0xE7,0xFF,0xFF,0xC5,0xE7,0xFF,0xA0,0x6E,0x20,0x68,0x36,0xE7,0xFF,0xA0, +0x4C,0x98,0x82,0xE4,0x00,0x00,0x23,0xE7,0xFF,0xA0,0x4C,0x20,0x6C,0x5E,0xE7,0xFF, +0xA0,0x2A,0x98,0x83,0xE7,0xFF,0xB2,0x1C,0xE7,0xFF,0xA0,0x16,0x98,0x87,0xE7,0xFF, +0xFF,0x6D,0xE7,0xFF,0xA0,0x16,0xD0,0x67,0x00,0xC6,0xE7,0xFF,0x9F,0xF2,0x98,0x87, +0xE7,0xFF,0xB1,0xE4,0xE7,0xFF,0x9F,0xDE,0x98,0x88,0xE7,0xFF,0xFF,0x35,0xE7,0xFF, +0x9F,0xDE,0x9A,0xE0,0xD0,0x68,0x00,0x86,0xE7,0xFF,0x9F,0xB6,0x98,0x88,0xE7,0xFF, +0xB1,0xA8,0x9A,0xE1,0x88,0x77,0x0D,0x21,0x06,0x9C,0x28,0x85,0x29,0x1C,0x21,0xE8, +0x0D,0x21,0x14,0x0D,0x41,0x10,0x0D,0x61,0x0C,0x0D,0x81,0x08,0x80,0x01,0x80,0x01, +0x80,0x01,0x80,0x01,0xE7,0xFF,0x8C,0x60,0x0C,0x61,0x00,0xE7,0xFF,0x8C,0x5A,0x0C, +0x61,0x04,0x0E,0xE1,0x02,0xD2,0xE0,0x1D,0x42,0x0E,0xE1,0x02,0xC1,0x80,0x10,0x01, +0xC1,0x40,0x10,0x01,0x57,0x17,0x10,0xFD,0x8C,0x00,0xDE,0xFD,0x4A,0x00,0xCC,0xD3, +0x00,0x0A,0x92,0x50,0x60,0x10,0xE7,0xFF,0x8C,0x3C,0xC2,0xE0,0x10,0x01,0xEB,0x17, +0x00,0xBB,0x9F,0x01,0x5F,0x18,0x04,0xEF,0x17,0x00,0xBB,0xC2,0xE0,0x10,0x01,0xEB, +0x17,0x08,0x85,0x23,0x00,0x24,0x9F,0x01,0xEF,0x17,0x08,0x85,0xE7,0xFF,0x8C,0x38, +0x0A,0xEC,0x0B,0xC1,0x60,0x10,0x01,0x40,0x63,0xBD,0xFD,0x6B,0x06,0xFE,0x5E,0xE3, +0x04,0x5E,0xE3,0xBB,0x20,0x02,0x0F,0x0A,0xEB,0x01,0x56,0xF7,0x20,0x22,0xE1,0xE8, +0x98,0x61,0xE7,0xFF,0xB3,0x60,0x20,0x61,0xC6,0xE7,0xFF,0x9E,0x54,0x20,0x64,0x56, +0xC2,0xE0,0x10,0x01,0xF2,0xF7,0x00,0xC0,0x56,0xF7,0x01,0x22,0xE1,0x72,0xE4,0x00, +0x00,0x1F,0xE7,0xFF,0x9E,0x22,0x20,0x63,0xA8,0xE4,0x00,0x00,0x9D,0xE7,0xFF,0xC5, +0xFE,0x0A,0xEB,0x01,0xC6,0xF7,0xFF,0xDF,0x0E,0xEB,0x01,0xE7,0xFF,0x9D,0xF0,0x20, +0x60,0x5E,0x98,0x81,0x98,0xA0,0xE7,0xFF,0x46,0xA4,0x98,0x60,0x88,0x83,0xE7,0xFF, +0xAC,0x68,0xE4,0x00,0x00,0x43,0x98,0x80,0x98,0x62,0xE7,0xFF,0xAC,0x50,0xFC,0x60, +0x01,0x5E,0xE7,0xFF,0x55,0xC0,0x98,0x60,0xE7,0xFF,0x4B,0x8E,0xE7,0xFF,0x8B,0x18, +0x0C,0x6C,0x09,0xE7,0xFF,0xC6,0x60,0xE7,0xFF,0x8B,0x02,0x0A,0xEC,0x0F,0x40,0x63, +0xBD,0x5E,0xE3,0x04,0xC2,0xE0,0x3E,0x6E,0x20,0x01,0xB3,0x0A,0xEB,0x01,0x56,0xF7, +0x80,0x22,0xE1,0x8C,0xE7,0xFF,0x9D,0x3E,0x20,0x6D,0x72,0xC2,0xE0,0x10,0x01,0xF2, +0xF7,0x00,0xC0,0x56,0xF7,0x01,0x22,0xE1,0x3A,0xC1,0x80,0x10,0x01,0xEA,0xEC,0x0D, +0x67,0x9E,0xE1,0xEE,0xEC,0x0D,0x67,0xE7,0xFF,0xC4,0xEA,0x0A,0xEB,0x01,0xC6,0xF7, +0xFF,0x7F,0x0E,0xEB,0x01,0xEA,0xEC,0x0D,0x67,0xD2,0xEC,0x00,0xF9,0x98,0x63,0xE7, +0xFF,0xB1,0xC6,0x20,0x60,0x56,0x98,0x61,0x98,0x80,0xE7,0xFF,0xAB,0x50,0x98,0x60, +0xE7,0xFF,0x4A,0xE6,0xE4,0x00,0x00,0x19,0x98,0x63,0x98,0x80,0xE7,0xFF,0xAB,0x2C, +0xE7,0xFF,0xC5,0x66,0x0A,0xEA,0x01,0x52,0xF7,0x10,0x0E,0xEA,0x01,0xE4,0x00,0x05, +0x25,0xC6,0xF7,0x01,0x00,0xD2,0xE0,0x14,0x52,0xC2,0xE0,0x10,0x01,0x98,0x60,0xEC, +0x17,0x0D,0x67,0xE7,0xFF,0x89,0x52,0xFC,0x60,0x01,0x00,0xE7,0xFF,0x89,0x52,0xFC, +0x60,0x01,0x00,0xE7,0xFF,0x89,0x62,0xE7,0xFF,0x9C,0x18,0xD0,0x67,0x12,0xC5,0xC2, +0xF8,0x00,0x21,0xFE,0xF7,0xBA,0xAC,0x4C,0x63,0x10,0x8C,0x77,0x0E,0xE3,0x02,0x86, +0xE9,0xE7,0xFF,0x9B,0xF8,0x20,0x60,0x46,0x98,0x80,0xE7,0xFF,0xAD,0xD0,0x98,0x60, +0x98,0x87,0xE4,0x00,0x03,0xBF,0xE7,0xFF,0x9B,0xCE,0xD0,0x67,0x11,0x4E,0x98,0x60, +0x98,0x87,0xE4,0x00,0x03,0x47,0xE7,0xFF,0xFA,0x2E,0xD0,0x60,0x10,0xCA,0xE7,0xFF, +0xAF,0xC2,0x5D,0x63,0x04,0x98,0x61,0xE7,0xFF,0xB0,0x76,0xD0,0x60,0x0C,0x76,0xC1, +0x60,0x19,0x0A,0x20,0x06,0x19,0xE7,0xFF,0x49,0xAE,0xE7,0xFF,0x49,0x7E,0x5C,0x63, +0x00,0x24,0x64,0x2B,0xC1,0x60,0x32,0x0A,0x20,0x00,0x91,0x98,0x80,0x98,0x62,0xE7, +0xFF,0xA9,0xC6,0xFC,0x60,0x01,0x5E,0xE7,0xFF,0x53,0x36,0x98,0x60,0xE7,0xFF,0x49, +0x04,0xE7,0xFF,0x88,0x8E,0x0C,0x6C,0x09,0xE4,0x00,0x02,0xFB,0xE7,0xFF,0x4D,0xFE, +0x98,0x61,0xE4,0x00,0x01,0xDF,0xE7,0xFF,0xF9,0x6E,0xD0,0x60,0x0D,0xCA,0xE7,0xFF, +0xAF,0x02,0xE7,0xFF,0x53,0x62,0xE7,0xFF,0x53,0xF2,0xD0,0x61,0x09,0x7A,0xE7,0xFF, +0x54,0x12,0x20,0x65,0x06,0xE7,0xFF,0x48,0xA8,0x98,0x62,0xE7,0xFF,0xAF,0x8E,0x20, +0x60,0x82,0xE7,0xFF,0x48,0x66,0x5C,0x63,0x00,0x20,0x60,0x58,0x98,0x63,0x98,0x80, +0xE7,0xFF,0xA9,0x04,0xE7,0xFF,0x87,0xE8,0x0C,0x6C,0x0D,0xE4,0x00,0x02,0x55,0x98, +0x62,0x98,0x80,0xE7,0xFF,0xA8,0xDE,0xFC,0x60,0x01,0x5E,0xE7,0xFF,0x52,0x4E,0xE4, +0x00,0x02,0x2D,0xE7,0xFF,0x53,0xA8,0x98,0x62,0xE4,0x00,0x01,0x11,0xE7,0xFF,0xF8, +0xA0,0xD0,0x60,0x0A,0x92,0xE7,0xFF,0xAE,0x34,0xE7,0xFF,0x54,0x10,0xE7,0xFF,0x54, +0xD2,0xC1,0x80,0x10,0x01,0x89,0x63,0xFD,0x8C,0x0D,0x64,0x5E,0xEB,0x04,0xC2,0xE0, +0x25,0x6E,0x20,0x00,0x1D,0xFC,0x60,0x01,0x2C,0xE7,0xFF,0x56,0x08,0x20,0x60,0x54, +0x0A,0xEC,0x01,0x9E,0xE1,0x5E,0xF7,0x04,0x0E,0xEC,0x01,0x26,0xE4,0x8B,0xE4,0x00, +0x00,0x55,0x5E,0xEB,0x04,0x88,0x6B,0xC2,0xE0,0x4A,0xEE,0x20,0x00,0x1D,0xFC,0x60, +0x02,0x58,0xE7,0xFF,0x56,0x1C,0x20,0x63,0x6A,0xE4,0x00,0x00,0x5D,0xE7,0xFF,0x56, +0x2C,0x0C,0x0C,0x01,0xE4,0x00,0x00,0x37,0x5E,0xEB,0x04,0x88,0x6B,0xC2,0xE0,0x4A, +0xEE,0x20,0x00,0x1D,0xFC,0x60,0x02,0x58,0xE7,0xFF,0x55,0xD0,0x20,0x63,0x86,0x98, +0x63,0x98,0x80,0xE4,0x00,0x00,0xFD,0x0C,0x0C,0x01,0xE4,0x00,0x00,0x9F,0xE7,0xFF, +0x98,0xFE,0x20,0x64,0x3E,0xE7,0xFF,0x98,0xF0,0x88,0x83,0x98,0x64,0xE4,0x00,0x00, +0x71,0xE7,0xFF,0x98,0xD8,0x20,0x63,0xC0,0xE7,0xFF,0x98,0xCA,0xD0,0x60,0x05,0x3E, +0x98,0x64,0x98,0x80,0xE7,0xFF,0xAA,0x9C,0x98,0x64,0xE4,0x00,0x00,0x8B,0x98,0x64, +0x98,0x89,0xE4,0x00,0x00,0x27,0xE7,0xFF,0x98,0x8E,0x20,0x64,0x76,0xE7,0xFF,0x98, +0x80,0x88,0x83,0x98,0x67,0xE7,0xFF,0xAA,0x5A,0x0A,0xEA,0x01,0xCA,0xF7,0x01,0x00, +0x0E,0xEA,0x01,0xE4,0x00,0x00,0xE1,0xE7,0xFF,0x98,0x4C,0x20,0x63,0x88,0xE7,0xFF, +0x98,0x3E,0x20,0x61,0x86,0x98,0x67,0x98,0x80,0xE7,0xFF,0xAA,0x12,0x98,0x67,0x98, +0x81,0xE7,0xFF,0xA6,0xA2,0xE7,0xFF,0xC0,0xDC,0xE4,0x00,0x00,0x95,0x0E,0xE1,0x06, +0x22,0xE1,0x3C,0x0E,0xE1,0x06,0x56,0xF7,0x20,0x22,0xE1,0x18,0x98,0x60,0xE7,0xFF, +0x84,0xDC,0x50,0x60,0x20,0xE7,0xFF,0x84,0xE6,0xE7,0xFF,0x7A,0x3C,0xC2,0xE0,0x10, +0x01,0xEB,0x17,0x00,0xD1,0xC7,0x18,0xFF,0xFE,0x50,0x60,0x20,0xEF,0x17,0x00,0xD1, +0xE7,0xFF,0x84,0xC0,0xC2,0xE0,0x10,0x01,0xEB,0x17,0x00,0xCF,0x53,0x18,0x20,0xEF, +0x17,0x00,0xCF,0xC2,0xE0,0x10,0x01,0xF0,0x77,0x01,0xAE,0xE7,0xFF,0x84,0x62,0x0D, +0x81,0x0A,0x0D,0x61,0x0E,0x0D,0x41,0x12,0x0D,0x21,0x16,0x1C,0x21,0x18,0x85,0x29, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x23,0x24,0x0B,0x17,0x01,0x53,0x18,0x20,0x0F,0x17, +0x01,0x0C,0x63,0x02,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xDF,0x0F,0x17,0x01,0x85,0x29, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x23,0x24,0x0B,0x17,0x01,0x53,0x18,0x20,0x0F,0x17, +0x01,0x0C,0x83,0x00,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xDF,0x0F,0x17,0x01,0x85,0x29, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x14,0x0B,0x17,0x01,0x53,0x18,0x01,0x0F,0x17, +0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x23,0x24,0x0B,0x17,0x01,0x53,0x18, +0x20,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x23,0x24,0x0B,0x17, +0x01,0xC7,0x18,0xFF,0xDF,0x0F,0x17,0x01,0x85,0x29,0x9C,0x30,0x0D,0x21,0x0C,0x0D, +0x41,0x08,0x0D,0x61,0x04,0x0D,0x81,0x00,0xC1,0x54,0x00,0x01,0xC9,0x8A,0x22,0x28, +0x0A,0xEC,0x01,0xC6,0xF7,0xFF,0xFB,0xC9,0x6A,0x22,0x04,0x0E,0xEC,0x01,0xFF,0x00, +0x80,0x00,0x0A,0xEB,0x01,0x46,0xF7,0xC5,0x5E,0xF7,0x04,0xC9,0x4A,0x24,0xA8,0x0E, +0xEB,0x01,0x0A,0xEA,0x01,0xCA,0xF7,0x30,0x00,0x50,0x60,0x64,0x0E,0xEA,0x01,0xE4, +0x00,0x24,0x8E,0x0A,0xEC,0x01,0x52,0xF7,0x04,0x50,0x60,0x1E,0x0E,0xEC,0x01,0xE4, +0x00,0x24,0x6E,0x0A,0xEB,0x01,0xC6,0xF7,0x7F,0xFF,0x0E,0xEB,0x01,0x0A,0xEA,0x01, +0xC6,0xF7,0xCF,0xFF,0x0E,0xEA,0x01,0x0D,0x81,0x02,0x0D,0x61,0x06,0x0D,0x41,0x0A, +0x0D,0x21,0x0E,0x1C,0x21,0x10,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x2C, +0x08,0x77,0x01,0x4C,0x63,0x09,0x54,0x63,0x1F,0x9C,0x61,0x85,0x29,0x9C,0x7F,0x5C, +0x63,0x00,0x5C,0x62,0xFB,0x20,0x00,0x81,0xC2,0xF4,0x00,0x01,0x4C,0x63,0x08,0xCA, +0xF7,0x24,0x2C,0x54,0x63,0x3E,0x0B,0x17,0x01,0x1F,0x20,0xC1,0x47,0x18,0xCC,0x44, +0x63,0xC5,0x0C,0x77,0x01,0x85,0x29,0x9B,0x19,0x20,0x60,0x62,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x24,0x10,0x0B,0x37,0x01,0x47,0x19,0xC4,0x53,0x18,0x04,0xE4,0x00,0x00, +0x87,0x20,0x64,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x10,0x0B,0x17,0x01,0x53, +0x18,0x06,0xE4,0x00,0x00,0x5D,0x20,0x68,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24, +0x10,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xF9,0xE4,0x00,0x00,0x31,0x20,0x6C,0x5E,0xC2, +0xF4,0x00,0x01,0xCA,0xF7,0x24,0x10,0x0B,0x37,0x01,0x47,0x19,0xC4,0x53,0x18,0x02, +0x0F,0x17,0x01,0x85,0x29,0x5C,0x63,0x00,0x9C,0x30,0x0D,0x21,0x0C,0x0D,0x41,0x08, +0x0C,0xA1,0x04,0x95,0x50,0xC9,0x4A,0x20,0x80,0x8D,0x43,0x4D,0x4A,0x18,0x88,0x6A, +0xE7,0xFF,0xFC,0xE0,0x0C,0xA1,0x06,0x1C,0x6A,0x04,0x0D,0x21,0x0E,0x0D,0x41,0x0A, +0x88,0x85,0x1C,0x21,0x10,0xE7,0xFF,0xFC,0xB7,0x1C,0x21,0xE8,0x0D,0x41,0x10,0x5D, +0x44,0x00,0x4E,0xEA,0x08,0x0D,0x61,0x0C,0x0D,0x81,0x08,0x5D,0x65,0x00,0x5C,0x63, +0x00,0x4D,0x83,0x18,0x8D,0x8B,0x8D,0x97,0x06,0xE0,0x81,0xCA,0xF7,0x04,0x00,0x0D, +0x21,0x14,0x0D,0xA1,0x04,0xC5,0x8C,0x1F,0xFC,0x5D,0xA6,0x00,0x8D,0x97,0x88,0x6C, +0xE7,0xFF,0xFC,0x00,0x55,0x4A,0x01,0x50,0x80,0xFF,0x4D,0x4A,0x08,0x8D,0x6A,0x4D, +0x6B,0x18,0x4C,0x84,0x5C,0x4D,0x6D,0x5C,0x44,0x84,0x27,0x0D,0xA1,0x06,0x44,0x83, +0x24,0x0D,0x41,0x12,0x88,0x6C,0x44,0x84,0x5D,0x0D,0x81,0x0A,0x0D,0x61,0x0E,0x0D, +0x21,0x16,0x1C,0x21,0x18,0xE7,0xFF,0xFB,0xD7,0x5C,0x84,0x04,0x20,0x60,0x28,0x20, +0x64,0xC2,0xE4,0x00,0x00,0x33,0x4C,0x84,0x41,0xC2,0xF4,0x00,0x01,0x9C,0x9F,0xCA, +0xF7,0x24,0x34,0xC4,0x84,0x01,0xFF,0xE4,0x00,0x00,0x2B,0x4C,0x84,0x41,0xC2,0xF4, +0x00,0x01,0x9C,0x9F,0xCA,0xF7,0x24,0x38,0xC4,0x84,0x01,0xFF,0x0C,0x97,0x01,0x85, +0x29,0x07,0x00,0xFF,0xCB,0x18,0xFF,0xFF,0x20,0x60,0x28,0x20,0x65,0xD2,0xE4,0x00, +0x00,0x7D,0xC2,0xF4,0x00,0x01,0x47,0x64,0x27,0xCB,0x37,0x24,0x3C,0x0B,0x59,0x01, +0x47,0x5A,0xDC,0x0F,0x59,0x01,0xCA,0xF7,0x24,0x40,0x47,0x04,0xC4,0x0B,0x37,0x01, +0x4F,0x18,0x81,0x44,0x84,0x27,0x4C,0x84,0x81,0x44,0x84,0xC4,0x47,0x18,0xC7,0x47, +0x19,0xC4,0x47,0x04,0xC5,0x0F,0x17,0x01,0xE4,0x00,0x00,0x6F,0x5F,0x44,0x04,0xC2, +0xF4,0x00,0x01,0x47,0x9A,0xD7,0xCB,0x37,0x24,0x3C,0x0B,0x79,0x01,0x47,0x7B,0xE4, +0x47,0x5A,0xDD,0x0F,0x59,0x01,0xCA,0xF7,0x24,0x40,0x44,0x84,0xC4,0x0B,0x57,0x01, +0x4C,0x84,0x81,0x47,0x24,0x27,0x47,0x1A,0xCC,0x44,0x84,0xC5,0x0C,0x97,0x01,0x85, +0x29,0x07,0x00,0xFF,0xCB,0x18,0xFF,0xFF,0x20,0x60,0x28,0x20,0x65,0xD2,0xE4,0x00, +0x00,0x7D,0xC2,0xF4,0x00,0x01,0x47,0x64,0x27,0xCB,0x37,0x24,0x1C,0x0B,0x59,0x01, +0x47,0x5A,0xDC,0x0F,0x59,0x01,0xCA,0xF7,0x24,0x20,0x47,0x04,0xC4,0x0B,0x37,0x01, +0x4F,0x18,0x81,0x44,0x84,0x27,0x4C,0x84,0x81,0x44,0x84,0xC4,0x47,0x18,0xC7,0x47, +0x19,0xC4,0x47,0x04,0xC5,0x0F,0x17,0x01,0xE4,0x00,0x00,0x6F,0x5F,0x44,0x04,0xC2, +0xF4,0x00,0x01,0x47,0x9A,0xD7,0xCB,0x37,0x24,0x1C,0x0B,0x79,0x01,0x47,0x7B,0xE4, +0x47,0x5A,0xDD,0x0F,0x59,0x01,0xCA,0xF7,0x24,0x20,0x44,0x84,0xC4,0x0B,0x57,0x01, +0x4C,0x84,0x81,0x47,0x24,0x27,0x47,0x1A,0xCC,0x44,0x84,0xC5,0x0C,0x97,0x01,0x85, +0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x24,0x80,0x0B,0x38,0x01,0x5F,0x23,0x04,0x0F, +0x38,0x01,0x07,0x20,0xFF,0xCB,0x39,0xFF,0xFF,0xCA,0xF7,0x24,0x84,0x44,0x63,0xCC, +0x0B,0x17,0x01,0x4C,0x63,0x81,0xFF,0x20,0xFF,0x00,0x47,0x18,0xCC,0x44,0x63,0xC5, +0x0C,0x77,0x01,0x85,0x29,0x07,0x00,0xFF,0xCB,0x18,0xFF,0xFF,0x20,0x60,0x28,0x20, +0x65,0xD2,0xE4,0x00,0x00,0x7D,0xC2,0xF4,0x00,0x01,0x47,0x64,0x27,0xCB,0x37,0x24, +0x24,0x0B,0x59,0x01,0x47,0x5A,0xDC,0x0F,0x59,0x01,0xCA,0xF7,0x24,0x28,0x47,0x04, +0xC4,0x0B,0x37,0x01,0x4F,0x18,0x81,0x44,0x84,0x27,0x4C,0x84,0x81,0x44,0x84,0xC4, +0x47,0x18,0xC7,0x47,0x19,0xC4,0x47,0x04,0xC5,0x0F,0x17,0x01,0xE4,0x00,0x00,0x6F, +0x5F,0x44,0x04,0xC2,0xF4,0x00,0x01,0x47,0x9A,0xD7,0xCB,0x37,0x24,0x24,0x0B,0x79, +0x01,0x47,0x7B,0xE4,0x47,0x5A,0xDD,0x0F,0x59,0x01,0xCA,0xF7,0x24,0x28,0x44,0x84, +0xC4,0x0B,0x57,0x01,0x4C,0x84,0x81,0x47,0x24,0x27,0x47,0x1A,0xCC,0x44,0x84,0xC5, +0x0C,0x97,0x01,0x85,0x29,0xC3,0x14,0x00,0x01,0xCA,0xF8,0x22,0x08,0x20,0x64,0x3A, +0x0B,0x37,0x01,0xCB,0x39,0x10,0x00,0xE4,0x00,0x00,0x1D,0x20,0x60,0x36,0x0B,0x37, +0x01,0xC7,0x39,0xEF,0xFF,0x0F,0x37,0x01,0xCA,0xF8,0x22,0x08,0x0B,0x17,0x01,0xCB, +0x18,0x20,0x00,0x0F,0x17,0x01,0x85,0x29,0x5C,0x84,0x00,0x1F,0x00,0x80,0x20,0x60, +0x28,0x20,0x64,0xAA,0xE4,0x00,0x00,0x21,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x54, +0xE4,0x00,0x00,0x19,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x64,0x0B,0x37,0x01,0x54, +0x84,0x7F,0x47,0x19,0xC4,0x47,0x04,0xC5,0x0F,0x17,0x01,0x85,0x29,0x5C,0x84,0x00, +0x20,0x60,0x28,0x20,0x64,0xAA,0xE4,0x00,0x00,0x21,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x24,0x50,0xE4,0x00,0x00,0x19,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x61,0x13,0x17, +0x00,0x54,0x84,0x1F,0x57,0x18,0xE0,0x44,0x84,0xC5,0x18,0x97,0x00,0x85,0x29,0x9C, +0x30,0x0D,0x41,0x08,0x0D,0x61,0x04,0x0D,0x21,0x0C,0x5D,0x44,0x00,0x89,0x63,0x1C, +0x8A,0xF1,0x4C,0x84,0x08,0x5C,0x83,0xF3,0x20,0x00,0x19,0x50,0x80,0x1F,0x88,0x6B, +0xE7,0xFF,0xFF,0x5A,0x1F,0x00,0x80,0x21,0x60,0x28,0x21,0x64,0xAA,0xE4,0x00,0x00, +0x21,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x4C,0xE4,0x00,0x00,0x19,0xC2,0xF4,0x00, +0x01,0xCA,0xF7,0x24,0x60,0x0B,0x37,0x01,0x55,0x4A,0x7F,0x47,0x19,0xC4,0x47,0x0A, +0xC5,0x0F,0x17,0x01,0x0D,0x61,0x06,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21,0x10, +0x85,0x29,0x20,0x64,0x8E,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22,0x04,0xCA,0xF7,0x22, +0x60,0x0B,0x38,0x01,0x53,0x39,0xF0,0x0F,0x38,0x01,0x0B,0x17,0x01,0xC7,0x18,0xFF, +0xF0,0xE4,0x00,0x00,0x47,0x20,0x60,0x8A,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22,0x04, +0xCA,0xF7,0x22,0x60,0x0B,0x38,0x01,0xC7,0x39,0xFF,0x0F,0x0F,0x38,0x01,0x0B,0x17, +0x01,0x53,0x18,0x0F,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x8E,0xC2,0xF4,0x00,0x01, +0xCB,0x17,0x22,0x04,0xCA,0xF7,0x22,0x60,0x0B,0x38,0x01,0x53,0x39,0x08,0x0F,0x38, +0x01,0x0B,0x17,0x01,0xC7,0x18,0xFE,0xFF,0xE4,0x00,0x00,0x49,0x20,0x60,0x8E,0xC2, +0xF4,0x00,0x01,0xCB,0x17,0x22,0x04,0xCA,0xF7,0x22,0x60,0x0B,0x38,0x01,0xC7,0x39, +0xFF,0xF7,0x0F,0x38,0x01,0x0B,0x17,0x01,0xCB,0x18,0x01,0x00,0x0F,0x17,0x01,0x85, +0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0x60,0x0B,0x17,0x01,0xCB, +0x18,0x02,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x22,0x60,0x0B,0x17,0x01,0xC7,0x18,0xFD,0xFF,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4, +0x00,0x01,0x54,0x63,0x7F,0xCA,0xF7,0x24,0xA0,0x1F,0x20,0x80,0x0B,0x17,0x01,0x47, +0x18,0xCC,0x47,0x03,0xC5,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x4C,0x63, +0x40,0xCA,0xF7,0x24,0xA0,0xC4,0x63,0x7F,0x00,0x0B,0x17,0x01,0xFF,0x20,0x80,0xFF, +0x47,0x18,0xCC,0x47,0x03,0xC5,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x24,0xA1,0x10,0x77,0x00,0x54,0x63,0x7F,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x24,0xA0,0x0B,0x17,0x01,0xC7,0x18,0xFF,0x7F,0xE4,0x00,0x00, +0x2B,0x20,0x60,0x52,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0xA0,0x0B,0x17,0x01,0x53, +0x18,0x80,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x24,0xA0,0x0B,0x17,0x01,0xC7,0x18,0x7F,0xFF,0xE4,0x00,0x00,0x39,0x20,0x60,0x6E, +0xC2,0xF4,0x00,0x01,0xFF,0x20,0x80,0x00,0xCA,0xF7,0x24,0xA0,0x0B,0x17,0x01,0x47, +0x18,0xCD,0x5F,0x18,0x04,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x5C,0x63, +0x00,0xCA,0xF7,0x22,0x0C,0xFF,0x20,0xFF,0x00,0x0B,0x17,0x01,0x47,0x18,0xCC,0x47, +0x03,0xC5,0x0F,0x17,0x01,0x85,0x29,0x5C,0x63,0x04,0xC2,0xF4,0x00,0x01,0xFF,0x40, +0xFF,0x00,0xCA,0xF7,0x22,0xF0,0x47,0x03,0xD4,0x0B,0x37,0x01,0x5F,0x39,0x00,0x47, +0x18,0xCD,0x0F,0x17,0x01,0x85,0x29,0x5C,0x63,0x04,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x22,0x38,0x0B,0x17,0x01,0x0C,0x77,0x01,0x85,0x29,0x20,0x64,0x6A,0xC2,0xF4,0x00, +0x01,0x9B,0x3C,0xCA,0xF7,0x25,0xC0,0x0B,0x17,0x01,0x47,0x18,0xCC,0x53,0x18,0x01, +0xE4,0x00,0x00,0x3F,0x20,0x60,0x7A,0xC2,0xF4,0x00,0x01,0xCB,0x17,0x22,0x38,0xCA, +0xF7,0x25,0xC0,0x0B,0x38,0x01,0x0C,0x18,0x01,0x0B,0x17,0x01,0x53,0x18,0x03,0x0F, +0x17,0x01,0x85,0x29,0x5C,0x84,0x00,0x20,0x64,0x62,0x4C,0x63,0x24,0xC2,0xF4,0x00, +0x01,0x5C,0x63,0x04,0xCA,0xF7,0x22,0xCC,0x0C,0x77,0x01,0xE4,0x00,0x00,0x25,0x20, +0x60,0x3A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0xCC,0x0C,0x17,0x01,0x85,0x29,0x20, +0x60,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0xE8,0x0B,0x17,0x01,0xC7,0x18,0xFF, +0xFE,0xE4,0x00,0x00,0x2B,0x20,0x64,0x52,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0xE8, +0x0B,0x17,0x01,0x53,0x18,0x01,0x0F,0x17,0x01,0x85,0x29,0x20,0x60,0x5A,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x22,0xE8,0x0B,0x17,0x01,0xC7,0x18,0xF0,0xFF,0xE4,0x00,0x00, +0x2D,0x20,0x64,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0xE8,0x0B,0x17,0x01,0xCB, +0x18,0x0F,0x00,0x0F,0x17,0x01,0x85,0x29,0x5C,0x63,0x00,0xC4,0x84,0x03,0xFF,0x20, +0x64,0x70,0x20,0x60,0x34,0x20,0x68,0x88,0x20,0x6C,0xDA,0xE4,0x00,0x00,0x51,0xC2, +0xF4,0x00,0x01,0xCA,0xF7,0x24,0x68,0xE4,0x00,0x00,0x49,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x24,0x6C,0xE4,0x00,0x00,0x31,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x70,0xE4, +0x00,0x00,0x19,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x24,0x74,0x0C,0x97,0x01,0x85,0x29, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x23,0x24,0x0B,0x17,0x01,0x53,0x18,0x20,0x0F,0x17, +0x01,0x5C,0x63,0x00,0x07,0x00,0x20,0xCB,0x18,0x41,0x00,0x44,0x63,0xC5,0x4C,0x63, +0x10,0x0C,0x83,0x00,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xDF,0x0F,0x17,0x01,0x85,0x29, +0xFC,0x21,0xFE,0x88,0x50,0xA0,0x96,0xED,0x21,0x01,0x74,0xED,0x41,0x01,0x70,0xED, +0x61,0x01,0x6C,0x88,0x61,0xC1,0x78,0x00,0x21,0xFD,0x6B,0xB4,0xBE,0x88,0x8B,0xE7, +0xFF,0x47,0xF4,0xFD,0x41,0x00,0x96,0xFC,0x8B,0x00,0x96,0x88,0x6A,0x50,0xA0,0xD2, +0xE7,0xFF,0x47,0xD2,0x8A,0xE1,0xC3,0x54,0x00,0x01,0xFF,0x60,0xFF,0x00,0x0B,0x37, +0x01,0x47,0x19,0xDC,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19,0x0B, +0x37,0x03,0x47,0xB9,0xCF,0x8F,0x1A,0x0B,0x98,0x01,0x47,0x9C,0xEC,0x0B,0xB7,0x05, +0x47,0x39,0xEC,0x47,0x3C,0xCD,0x0F,0x38,0x01,0x9E,0xE6,0xD5,0x57,0xFE,0x9E,0xFE, +0xE1,0x00,0x96,0xFF,0x81,0x01,0x68,0x0B,0x37,0x01,0x47,0x19,0xDC,0x5F,0x39,0x00, +0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19,0x0B,0x37,0x03,0x47,0xD9,0xCF,0x8F,0x1A, +0x0B,0xB8,0x01,0x47,0xBD,0xF4,0x0B,0xD7,0x05,0x47,0x39,0xF4,0x47,0x3D,0xCD,0x0F, +0x38,0x01,0x9E,0xE6,0xD7,0x97,0xFE,0x9E,0xED,0x61,0x01,0x6E,0xED,0x41,0x01,0x72, +0xED,0x21,0x01,0x76,0xFC,0x21,0x01,0x78,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17, +0x22,0x00,0x0C,0x18,0x01,0xCA,0xF7,0x24,0x14,0xFF,0x20,0xFF,0x07,0x0B,0x17,0x01, +0x47,0x18,0xCC,0x53,0x18,0x30,0x0F,0x17,0x01,0x85,0x29,0x5C,0x84,0x00,0x9B,0x10, +0x20,0x60,0x28,0x20,0x64,0xAA,0xE4,0x00,0x00,0x21,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x22,0x10,0xE4,0x00,0x00,0x19,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x22,0x14,0x0B,0x37, +0x01,0x54,0x84,0x0F,0x47,0x19,0xC4,0x47,0x04,0xC5,0x0F,0x17,0x01,0x85,0x29,0xC2, +0xF4,0x00,0x01,0xCB,0x17,0x74,0xD8,0x18,0x18,0x00,0xCB,0x37,0x74,0x10,0x5C,0x63, +0x00,0x18,0x79,0x00,0xCB,0x37,0x76,0x30,0x18,0x19,0x00,0x53,0x40,0x24,0xCB,0x37, +0x74,0x00,0x1B,0x59,0x00,0xCB,0x77,0x74,0x28,0x53,0x20,0x60,0x1B,0x3B,0x00,0xCB, +0x77,0x74,0x30,0x1B,0x3B,0x00,0xCB,0x77,0x74,0x38,0x53,0x20,0x1C,0x1B,0x3B,0x00, +0xCB,0x77,0x74,0x40,0x1B,0x3B,0x00,0xCB,0x37,0x74,0xA8,0x13,0x39,0x00,0xCB,0x37, +0x74,0x78,0x9B,0x69,0x1B,0x79,0x00,0xCB,0x37,0x74,0x70,0x18,0x19,0x00,0xCB,0x37, +0x74,0x60,0x13,0x79,0x00,0x1B,0x59,0x00,0xCA,0xF7,0x74,0x61,0x13,0x37,0x00,0x18, +0x17,0x00,0x98,0x61,0x12,0xF8,0x00,0x52,0xF7,0x01,0x1A,0xF8,0x00,0x85,0x29,0x5C, +0x63,0x00,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x20,0x18,0x77,0x00,0x0B,0x17,0x01, +0xC7,0x18,0xFE,0xFF,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74, +0x68,0x10,0x77,0x00,0x4C,0x63,0x21,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x74,0xE0,0x10,0x77,0x00,0x4C,0x63,0x09,0x54,0x63,0x01,0x85,0x29,0xC2, +0xF4,0x00,0x01,0xCA,0xF7,0x74,0x68,0x10,0x77,0x00,0x4C,0x63,0x29,0x54,0x63,0x01, +0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0xE0,0x10,0x77,0x00,0x4C,0x63,0x19, +0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x68,0x10,0x77,0x00, +0x4C,0x63,0x11,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x68, +0x08,0x77,0x01,0x4C,0x63,0x49,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x74,0x68,0x08,0x77,0x01,0x4C,0x63,0x51,0x54,0x63,0x01,0x85,0x29,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x74,0x61,0x13,0x17,0x00,0x57,0x18,0xFD,0x1B,0x17,0x00,0x85, +0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x61,0x13,0x17,0x00,0x53,0x18,0x02,0x1B, +0x17,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0xC0,0x12,0xF7,0x00,0x85, +0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0xA8,0x12,0xF7,0x00,0x85,0x29,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x74,0xC8,0x12,0xF7,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x74,0xA0,0x12,0xF7,0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x74,0x20, +0x10,0x77,0x00,0x85,0x29,0x5C,0x63,0x00,0xC3,0x14,0x00,0x01,0x4E,0xE3,0x10,0xCB, +0x18,0x2A,0x00,0x8E,0xF8,0x08,0x77,0x00,0x9A,0xE8,0xCC,0x63,0x00,0x03,0x40,0x63, +0xB8,0x85,0x29,0x5C,0x84,0x04,0x5E,0xE4,0x00,0xD2,0xEF,0x05,0xAD,0x4E,0xF7,0x10, +0xC3,0x18,0x00,0x21,0xFF,0x18,0xBC,0x30,0x8E,0xF8,0xC3,0x34,0x00,0x01,0x0F,0x17, +0x02,0xCA,0xF9,0x26,0x18,0x0B,0x57,0x01,0xC7,0x5A,0xFF,0xF3,0x1F,0x60,0xCF,0x0F, +0x57,0x01,0x0B,0x57,0x01,0x47,0x5A,0xDC,0x53,0x5A,0x10,0x4C,0x84,0x49,0x0F,0x57, +0x01,0x9A,0xE1,0xCB,0x59,0x26,0x20,0xE4,0x00,0x00,0x31,0x4F,0x37,0x08,0x9E,0xE1, +0x8F,0x38,0x5E,0xF7,0x04,0x0B,0x39,0x01,0xC7,0x39,0x3F,0xFF,0x0F,0x3A,0x01,0xC3, +0x34,0x00,0x01,0xD6,0xE4,0xFF,0x40,0x20,0x60,0x96,0xCB,0x39,0x26,0x38,0x0B,0x18, +0x01,0x0A,0xF9,0x01,0x4F,0x18,0x60,0xFF,0x40,0x8F,0xFF,0xC7,0x18,0x70,0x00,0x46, +0xF7,0xD4,0x46,0xF8,0xBD,0x0E,0xF9,0x01,0xE4,0x00,0x00,0x4B,0x20,0x64,0x86,0xCA, +0xF9,0x26,0x38,0xFF,0x60,0xF8,0xFF,0x0B,0x38,0x01,0x0B,0x57,0x01,0x4F,0x39,0x40, +0x47,0x1A,0xDC,0xC7,0x39,0x07,0x00,0x47,0x19,0xC5,0x0F,0x17,0x01,0xC2,0xF4,0x00, +0x01,0xCA,0xF7,0x26,0x18,0x0B,0x17,0x01,0x53,0x18,0x30,0x0F,0x17,0x01,0x85,0x29, +0x5C,0x84,0x00,0xD0,0x8F,0x03,0x9D,0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBB,0x58,0x4C, +0x84,0x10,0xC3,0x14,0x00,0x01,0x8C,0x97,0xCB,0x38,0x26,0x34,0x0E,0xE4,0x02,0x0B, +0x59,0x01,0x0B,0x77,0x03,0xFF,0x80,0xC0,0x00,0xC7,0x7B,0x3F,0xFF,0x47,0x5A,0xE4, +0x47,0x5B,0xD5,0x0F,0x59,0x01,0x20,0x60,0x7E,0x0B,0x37,0x01,0xCB,0x18,0x26,0x38, +0x4F,0x39,0x60,0x0B,0x58,0x01,0xFF,0x60,0x8F,0xFF,0xC7,0x39,0x70,0x00,0x46,0xFA, +0xDC,0xE4,0x00,0x00,0x3F,0x20,0x64,0x86,0x0B,0x37,0x01,0xCB,0x18,0x26,0x38,0x4F, +0x39,0x40,0x0B,0x58,0x01,0xFF,0x80,0xF8,0xFF,0xC7,0x39,0x07,0x00,0x46,0xFA,0xE4, +0x46,0xF9,0xBD,0x0E,0xF8,0x01,0x85,0x29,0x5C,0x84,0x00,0xD0,0x8C,0x04,0x1D,0xC2, +0xF8,0x00,0x21,0xFE,0xF7,0xBB,0x58,0x4C,0x84,0x10,0xFF,0x40,0xC0,0x00,0x8C,0x97, +0x0E,0xE4,0x02,0x20,0x60,0xD6,0xC3,0x14,0x00,0x01,0x0B,0x77,0x03,0xCB,0x38,0x26, +0xC4,0xC7,0x7B,0x3F,0xFF,0x0B,0x99,0x01,0x47,0x5C,0xD4,0x47,0x5B,0xD5,0xCB,0x18, +0x26,0x38,0x0F,0x59,0x01,0x1F,0x60,0x8F,0x0B,0x37,0x01,0x0B,0x58,0x01,0x4F,0x39, +0x20,0x57,0x39,0x70,0xE4,0x00,0x00,0x63,0x20,0x64,0xDA,0xC3,0x14,0x00,0x01,0x0B, +0x77,0x03,0xCB,0x38,0x26,0xC8,0xC7,0x7B,0x3F,0xFF,0x0B,0x99,0x01,0x47,0x5C,0xD4, +0x47,0x5B,0xD5,0xCB,0x18,0x26,0x38,0x0F,0x59,0x01,0x9B,0x78,0x0B,0x37,0x01,0x0B, +0x58,0x01,0x57,0x39,0x07,0x46,0xFA,0xDC,0x46,0xF9,0xBD,0x0E,0xF8,0x01,0x85,0x29, +0x5C,0x84,0x04,0x20,0x60,0x28,0x20,0x64,0xEE,0xE4,0x00,0x00,0x39,0xC2,0xF4,0x00, +0x01,0x4C,0x84,0x41,0xCA,0xF7,0x26,0xC0,0x54,0x84,0x3F,0x0B,0x17,0x01,0x1F,0x20, +0xC0,0xE4,0x00,0x00,0x2F,0xC2,0xF4,0x00,0x01,0xC4,0x84,0x3F,0x00,0xCA,0xF7,0x26, +0xC0,0xFF,0x20,0xC0,0xFF,0x0B,0x17,0x01,0x47,0x18,0xCC,0x44,0x84,0xC5,0x0C,0x97, +0x01,0x85,0x29,0x20,0x61,0x52,0x20,0x84,0x84,0x20,0x80,0x2C,0xD0,0x82,0x04,0xD6, +0xE4,0x00,0x00,0x5D,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0xC7, +0x18,0x3F,0xFF,0xE4,0x00,0x01,0x01,0xC2,0xF4,0x00,0x01,0xFF,0x20,0x80,0x00,0xCA, +0xF7,0x26,0x30,0x0B,0x17,0x01,0xC7,0x18,0x3F,0xFF,0xE4,0x00,0x00,0x27,0xC2,0xF4, +0x00,0x01,0xFF,0x20,0xC0,0x00,0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0x47,0x18,0xCD, +0x5F,0x18,0x04,0xE4,0x00,0x00,0xA1,0x20,0x65,0x3E,0x20,0x84,0x80,0x20,0x80,0x28, +0x20,0x89,0x1A,0xE4,0x00,0x00,0x63,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x30,0x0B, +0x17,0x01,0xC7,0x18,0xCF,0xFF,0xE4,0x00,0x00,0x5B,0xC2,0xF4,0x00,0x01,0xFF,0x20, +0xCF,0xFF,0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0x47,0x18,0xCC,0xCB,0x18,0x20,0x00, +0xE4,0x00,0x00,0x27,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x30,0x0B,0x17,0x01,0xCB, +0x18,0x30,0x00,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x72,0xC2,0xF4,0x00,0x01,0xFF, +0x20,0x80,0x00,0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0x47,0x18,0xCD,0x5F,0x18,0x04, +0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B, +0x17,0x01,0xC7,0x18,0x7F,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0xCB,0x18,0x20,0x00,0xE4,0x00,0x00, +0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0xC7, +0x18,0xDF,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x26,0x24,0x0B,0x17,0x01,0xCB,0x18,0x40,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60, +0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0xC7,0x18,0xBF,0xFF, +0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x24, +0x0B,0x17,0x01,0xCB,0x18,0x10,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x26,0x24,0x0B,0x17,0x01,0xC7,0x18,0xEF,0xFF,0x0F,0x17,0x01, +0x85,0x29,0x9C,0x38,0xC2,0xF4,0x00,0x01,0x0D,0x21,0x04,0xCA,0xF7,0x26,0x18,0x0B, +0x17,0x01,0xCB,0x18,0x40,0x00,0x98,0x60,0x0F,0x17,0x01,0xE7,0xFF,0xFF,0x1A,0x0D, +0x21,0x06,0x98,0x60,0x9C,0x28,0xE7,0xFF,0xFF,0x5F,0x20,0x64,0x72,0xC2,0xF4,0x00, +0x01,0xFF,0x20,0x80,0x00,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0x47,0x18,0xCD,0x5F, +0x18,0x04,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26, +0x00,0x0B,0x17,0x01,0xC7,0x18,0x7F,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xCB,0x18,0x20,0x00,0xE4, +0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17, +0x01,0xC7,0x18,0xDF,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00, +0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xCB,0x18,0x40,0x00,0xE4,0x00,0x00,0x2D, +0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xC7,0x18, +0xBF,0xFF,0x0F,0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x26,0x00,0x0B,0x17,0x01,0xCB,0x18,0x10,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xC7,0x18,0xEF,0xFF,0x0F, +0x17,0x01,0x85,0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B, +0x17,0x01,0xCB,0x18,0x08,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00, +0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xC7,0x18,0xF7,0xFF,0x0F,0x17,0x01,0x85, +0x29,0x20,0x64,0x5A,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x26,0x00,0x0B,0x17,0x01,0xCB, +0x18,0x04,0x00,0xE4,0x00,0x00,0x2D,0x20,0x60,0x56,0xC2,0xF4,0x00,0x01,0xCA,0xF7, +0x26,0x00,0x0B,0x17,0x01,0xC7,0x18,0xFB,0xFF,0x0F,0x17,0x01,0x85,0x29,0x5C,0x63, +0x00,0xC2,0xF4,0x00,0x01,0x4F,0x23,0x40,0xCA,0xF7,0x26,0x14,0x4C,0x63,0x60,0x0B, +0x17,0x01,0x44,0x79,0x1D,0x5F,0x18,0x00,0x44,0x63,0xC5,0x5C,0x63,0x04,0x0C,0x77, +0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xFF,0x20,0xF0,0x00,0xCB,0x17,0x26,0x0C,0xC4, +0x63,0x0F,0xFF,0x0B,0x58,0x01,0x5C,0x63,0x06,0x47,0x5A,0xCC,0x47,0x43,0xD5,0x0F, +0x58,0x01,0xCA,0xF7,0x26,0x10,0x0B,0x17,0x01,0x47,0x38,0xCC,0x44,0x63,0xCD,0x0C, +0x77,0x01,0x85,0x29,0x9C,0x38,0xFF,0x00,0xE0,0x00,0x0D,0x21,0x04,0x0D,0x41,0x00, +0xC1,0x54,0x00,0x01,0xCA,0xEA,0x26,0x04,0x0B,0x37,0x01,0x47,0x39,0xC4,0xCB,0x39, +0x0F,0xA0,0x0F,0x37,0x01,0xCA,0xEA,0x26,0x08,0x0B,0x37,0x01,0x47,0x19,0xC4,0xCB, +0x18,0x10,0x60,0x98,0x60,0x0F,0x17,0x01,0xFC,0x80,0x08,0x03,0xE7,0xFF,0xF9,0x28, +0xCA,0xEA,0x26,0xC0,0xFF,0x20,0xC0,0xFF,0x0B,0x17,0x01,0x47,0x18,0xCC,0xCB,0x18, +0x08,0x00,0x98,0x60,0x0F,0x17,0x01,0xFC,0x80,0x08,0x03,0xE7,0xFF,0xF7,0xDA,0x98, +0x61,0xFC,0x80,0x08,0x03,0xE7,0xFF,0xF7,0xC6,0xCA,0xEA,0x26,0x00,0x0B,0x17,0x01, +0x53,0x18,0x0F,0x0F,0x17,0x01,0x0B,0x17,0x01,0xC7,0x18,0xFF,0x7F,0x0F,0x17,0x01, +0x0B,0x17,0x01,0xC7,0x18,0xFF,0xBF,0x98,0x68,0x0F,0x17,0x01,0xE7,0xFF,0xFE,0x44, +0x0D,0x21,0x06,0x0D,0x41,0x02,0xFC,0x60,0x01,0x2C,0x9C,0x28,0xE7,0xFF,0xFE,0x6F, +0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0x00,0x0B,0x17,0x01,0x53,0x18,0x02,0x0F,0x17, +0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0x00,0x0B,0x17,0x01,0xC7,0x18, +0xFF,0xFD,0x0F,0x17,0x01,0x85,0x29,0x9C,0x7F,0x5C,0x63,0x00,0xD0,0x64,0x05,0x15, +0xC2,0xF8,0x00,0x21,0xFE,0xF7,0xBD,0xF0,0x4C,0x63,0x10,0xFF,0x00,0xFC,0xFF,0x8C, +0x77,0xC2,0xF4,0x00,0x01,0x0F,0x23,0x02,0x87,0x29,0xCB,0x17,0x3D,0x3C,0xCA,0xF7, +0x31,0x04,0x0B,0x38,0x01,0x53,0x39,0x01,0x0F,0x38,0x01,0x0B,0x17,0x01,0xC7,0x18, +0xFC,0xFF,0xE4,0x00,0x00,0xD3,0xCB,0x37,0x3D,0x3C,0xCA,0xF7,0x31,0x04,0x0B,0x59, +0x01,0x53,0x5A,0x01,0x0F,0x59,0x01,0x0B,0x37,0x01,0x47,0x19,0xC4,0xCB,0x18,0x01, +0x00,0xE4,0x00,0x00,0x95,0xCB,0x37,0x3D,0x3C,0xCA,0xF7,0x31,0x04,0x0B,0x59,0x01, +0x53,0x5A,0x01,0x0F,0x59,0x01,0x0B,0x37,0x01,0x47,0x19,0xC4,0xCB,0x18,0x02,0x00, +0xE4,0x00,0x00,0x57,0xCA,0xF7,0x3D,0x3C,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xFE,0xE4, +0x00,0x00,0x39,0xCB,0x17,0x3C,0x10,0xCA,0xF7,0x3C,0x14,0x0B,0x38,0x01,0x53,0x39, +0x01,0x0F,0x38,0x01,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xFD,0x0F,0x17,0x01,0xC2,0xF4, +0x00,0x01,0xCA,0xF7,0x78,0x00,0x0B,0x17,0x01,0xC7,0x18,0xFF,0xFB,0x0F,0x17,0x01, +0x85,0x29,0x5C,0x63,0x00,0x5C,0x84,0x00,0x9A,0xE0,0x24,0x64,0x43,0xC2,0xF8,0x00, +0x21,0xFE,0xF7,0xBE,0x04,0x8C,0x77,0x12,0xE3,0x00,0xC3,0x14,0x00,0x01,0xCB,0x18, +0x78,0x01,0x4E,0xF7,0x10,0x5C,0x80,0x29,0x46,0xF7,0xC5,0x4B,0x00,0x1A,0x1B,0x17, +0x00,0x85,0x29,0xC2,0xF4,0x00,0x01,0x5C,0x84,0x04,0xCB,0x17,0x79,0x04,0xCC,0x84, +0x17,0x70,0x4F,0x24,0x81,0x5C,0x84,0x04,0x0F,0x38,0x01,0xCA,0xF7,0x79,0x00,0x0C, +0x97,0x01,0x98,0x81,0xE7,0xFF,0xFF,0x5D,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0xCC, +0x0B,0x17,0x01,0x53,0x18,0x02,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB, +0x17,0x7A,0x30,0xCB,0x37,0x7A,0x34,0xCB,0x57,0x7A,0x10,0xCA,0xF7,0x7A,0x14,0x0B, +0x18,0x01,0x0B,0x39,0x01,0x0B,0x5A,0x01,0x08,0x77,0x01,0x4E,0xF9,0x80,0x4C,0x63, +0x80,0x8E,0xF8,0x8C,0x7A,0x44,0x63,0x1F,0x44,0x63,0xBC,0x85,0x29,0xC2,0xF4,0x00, +0x01,0xCB,0x17,0x7A,0x70,0xCB,0x37,0x7A,0x74,0xCB,0x57,0x7A,0x50,0xCA,0xF7,0x7A, +0x54,0x0B,0x18,0x01,0x0B,0x39,0x01,0x0B,0x5A,0x01,0x08,0x77,0x01,0x4E,0xF9,0x80, +0x4C,0x63,0x80,0x8E,0xF8,0x8C,0x7A,0x44,0x63,0x1F,0x44,0x63,0xBC,0x85,0x29,0x5C, +0x63,0x06,0xC2,0xF4,0x00,0x01,0x47,0x23,0x1F,0xCA,0xF7,0x7A,0x10,0x0B,0x17,0x01, +0x47,0x19,0xC4,0x44,0x63,0xC5,0x5C,0x63,0x04,0x0C,0x77,0x01,0x85,0x29,0x5C,0x63, +0x06,0xC2,0xF4,0x00,0x01,0x47,0x23,0x1F,0xCA,0xF7,0x7A,0x50,0x0B,0x17,0x01,0x47, +0x19,0xC4,0x44,0x63,0xC5,0x5C,0x63,0x04,0x0C,0x77,0x01,0x85,0x29,0xC2,0xF4,0x00, +0x01,0x44,0x63,0x1F,0xCA,0xF7,0x7A,0x10,0x0B,0x17,0x01,0x47,0x18,0x1C,0x0F,0x17, +0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0x44,0x63,0x1F,0xCA,0xF7,0x7A,0x50,0x0B,0x17, +0x01,0x47,0x18,0x1C,0x0F,0x17,0x01,0x85,0x29,0x5C,0x63,0x04,0xC2,0xF4,0x00,0x01, +0xCA,0xF7,0x7A,0x30,0x0C,0x77,0x01,0x85,0x29,0x9B,0x01,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x7A,0x70,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xFF,0x20,0xAA,0x55, +0xCB,0x17,0x78,0xC0,0x0F,0x38,0x01,0x5F,0x03,0x04,0x27,0x08,0x17,0x98,0x63,0xCA, +0xF7,0x78,0xC4,0x5C,0x63,0x04,0xCB,0x00,0x03,0xE8,0x43,0x04,0xC1,0x40,0x63,0xC3, +0x4C,0x63,0x81,0x44,0x63,0x1F,0x0C,0x77,0x01,0x06,0xE0,0x5B,0xCA,0xF7,0x8D,0x80, +0x5C,0x97,0x0D,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x3C,0x44,0x0B,0x17,0x01,0x20,0x00, +0x2D,0xC7,0x18,0xFF,0xBF,0xE4,0x00,0x00,0x15,0x5F,0x18,0x04,0x53,0x18,0x40,0x0F, +0x17,0x01,0x85,0x29,0xFF,0x00,0xAA,0x55,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78,0xC0, +0x0F,0x17,0x01,0x85,0x29,0xFF,0x00,0x55,0xAA,0xC2,0xF4,0x00,0x01,0xCA,0xF7,0x78, +0xC0,0x0F,0x17,0x01,0x85,0x29,0xCA,0xE0,0x03,0x20,0xC3,0x14,0x00,0x01,0x5C,0x63, +0x04,0xC0,0x60,0x63,0xEA,0x48,0x63,0xB8,0xCA,0xF8,0x79,0x10,0x0B,0x37,0x01,0x53, +0x39,0x01,0x0F,0x37,0x01,0xCB,0x58,0x79,0x00,0xCB,0x38,0x79,0x08,0x9C,0x38,0x0A, +0xF9,0x01,0xCB,0x18,0x3C,0x44,0x0B,0x7A,0x01,0x0B,0x39,0x01,0x0F,0x21,0x07,0x0B, +0x18,0x01,0x57,0x18,0x40,0x5F,0x18,0x04,0x23,0x00,0x40,0x4C,0x63,0x29,0x5C,0x60, +0x09,0x48,0x63,0x0A,0xE4,0x00,0x00,0x3F,0xCC,0x63,0x00,0x06,0x5C,0x63,0x04,0xE4, +0x00,0x00,0x29,0x0A,0xF8,0x01,0x52,0xF7,0x01,0x0E,0xF8,0x01,0x0A,0xF9,0x01,0xE4, +0x00,0x00,0x21,0xC3,0x34,0x00,0x01,0xCB,0x19,0x79,0x10,0xCB,0x39,0x79,0x08,0x0B, +0x41,0x07,0x43,0x57,0xD5,0xD4,0x7A,0x00,0xB8,0x0B,0x41,0x07,0xD7,0x57,0xFE,0xB9, +0x0B,0x41,0x07,0x43,0x5B,0xD5,0x8E,0xFA,0xD4,0x77,0xFE,0x5C,0x9C,0x28,0x85,0x29, +0x5C,0x63,0x04,0xE4,0x00,0x00,0x2D,0x42,0xE4,0x2C,0xC3,0x38,0x00,0x01,0x43,0x05, +0xCC,0x8F,0x03,0x13,0x18,0x00,0x1B,0x17,0x00,0x9C,0xBF,0x20,0xBF,0xB2,0x85,0x29, +0x5C,0x63,0x00,0xC2,0xF4,0x00,0x01,0x20,0x60,0xCE,0xCA,0xF7,0x2C,0x30,0x0B,0x17, +0x01,0xCB,0x18,0x02,0x00,0x0F,0x17,0x01,0x80,0x01,0xC2,0xF4,0x00,0x01,0xCB,0x17, +0x3C,0x44,0xCA,0xF7,0x3C,0xA8,0x0B,0x38,0x01,0xC7,0x39,0xFF,0xF3,0x0F,0x38,0x01, +0x0B,0x17,0x01,0x53,0x18,0x01,0xE4,0x00,0x00,0x9F,0xCB,0x17,0x3C,0xA8,0x0B,0x38, +0x01,0x53,0x39,0x01,0xCA,0xF7,0x3C,0x5C,0x0F,0x38,0x01,0x1F,0x00,0xC0,0x0B,0x37, +0x00,0x47,0x39,0xC4,0x9B,0x02,0x24,0x64,0x25,0x54,0x63,0x3F,0x5F,0x03,0x06,0x47, +0x18,0xCD,0x5C,0x78,0x04,0xC3,0x14,0x00,0x01,0x0C,0x77,0x01,0xCA,0xF8,0x3C,0xA8, +0x0B,0x37,0x01,0xC7,0x39,0xFF,0xFE,0x0F,0x37,0x01,0xCA,0xF8,0x2C,0x30,0x0B,0x17, +0x01,0xCB,0x18,0x01,0x00,0x0F,0x17,0x01,0x85,0x29,0xC2,0xF4,0x00,0x01,0xCB,0x17, +0x3D,0x80,0x0B,0x38,0x01,0xCB,0x39,0x08,0x00,0x0F,0x38,0x01,0xCA,0xF7,0x3D,0x84, +0x0B,0x17,0x01,0xCB,0x18,0x08,0x00,0x0F,0x17,0x01,0x85,0x29,0xE7,0xFF,0xFF,0xBD, +0x56,0xE3,0xFF,0x4E,0xF7,0x08,0x5C,0x84,0x04,0xC4,0x63,0xFF,0x00,0x8C,0x77,0xC2, +0xF4,0x00,0x01,0x4C,0x63,0x08,0x8C,0x77,0x0C,0x83,0x01,0x85,0x29,0x1C,0x21,0xC8, +0xC0,0x98,0x00,0x21,0x0D,0x21,0x34,0x1C,0x61,0x06,0xFC,0x84,0xB6,0x6E,0x50,0xA0, +0x2A,0xE7,0xFF,0x2F,0x10,0x1E,0xE1,0x06,0x1F,0x41,0x30,0x0B,0x37,0x01,0xFF,0x60, +0xFF,0x00,0x47,0x19,0xDC,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19, +0xC3,0x34,0x00,0x01,0x8F,0x19,0x0B,0x37,0x03,0x47,0x99,0xCF,0x0B,0x78,0x01,0x47, +0x7B,0xE4,0x0B,0x97,0x05,0x47,0x39,0xE4,0x47,0x3B,0xCD,0x0F,0x38,0x01,0x9E,0xE6, +0xD7,0x57,0xFE,0x5E,0x0D,0x21,0x36,0x1C,0x21,0x38,0x85,0x29,0xFC,0x21,0xFF,0x38, +0x50,0xA0,0x3C,0xED,0x21,0x00,0xC4,0xED,0x41,0x00,0xC0,0xED,0x61,0x00,0xBC,0xED, +0x81,0x00,0xB8,0xED,0xA1,0x00,0xB4,0xED,0xC1,0x00,0xB0,0xED,0xE1,0x00,0xAC,0xEE, +0x01,0x00,0xA8,0xC1,0x58,0x00,0x21,0x1C,0x61,0x6C,0xFD,0x4A,0xB6,0x6E,0x1C,0x8A, +0x2A,0xE7,0xFF,0x2E,0x10,0x50,0xA0,0x24,0x1C,0x8A,0x66,0x1C,0x61,0x48,0xE7,0xFF, +0x2D,0xF6,0x98,0x61,0x98,0x82,0xE7,0xFF,0xEF,0x1A,0x98,0x61,0xFC,0x80,0x18,0x08, +0xE7,0xFF,0xD9,0xF2,0x98,0x61,0xFC,0x80,0x18,0x08,0xE7,0xFF,0xEC,0x6C,0x98,0x61, +0x88,0x83,0xE7,0xFF,0xDC,0xA6,0x98,0x61,0x88,0x83,0xE7,0xFF,0xDA,0x2E,0x98,0x60, +0x98,0x81,0xE7,0xFF,0xDB,0x1E,0x98,0x60,0x05,0x4F,0x0F,0xC9,0x4A,0x0F,0x0F,0x88, +0x8A,0xE7,0xFF,0xE4,0xDE,0x98,0x61,0x88,0x8A,0xE7,0xFF,0xE4,0xCE,0xC3,0x54,0x00, +0x01,0xCA,0xE0,0x11,0x50,0xCB,0x5A,0x22,0x00,0x57,0x17,0xFF,0x4F,0x18,0x10,0x8F, +0x1A,0x1F,0x61,0x2A,0x0B,0x38,0x01,0x4F,0x17,0x08,0x8F,0x1B,0xEF,0x38,0xDD,0x61, +0x9E,0xE1,0xC2,0xE2,0x2B,0xE4,0x23,0xFF,0x8D,0x1E,0xE1,0x6C,0xFF,0x41,0x00,0xA8, +0xC1,0x94,0x00,0x01,0xFD,0xA0,0xFF,0x00,0x0B,0x37,0x01,0x47,0x19,0x6C,0x5F,0x39, +0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19,0x0B,0x37,0x03,0x8F,0x0C,0x0F,0x38, +0x01,0x9E,0xE4,0xD7,0x57,0xFF,0x2E,0x1E,0xE1,0x48,0x1F,0x41,0x6C,0x0B,0x37,0x01, +0x47,0x19,0x6C,0x5F,0x39,0x00,0x4F,0x39,0x10,0x4F,0x18,0x08,0x8F,0x19,0x0B,0x37, +0x03,0x8F,0x0C,0x0F,0x38,0x01,0x9E,0xE4,0xD7,0x57,0xFF,0x2E,0xE7,0xFF,0xD5,0xF8, +0x99,0xE0,0x89,0xC3,0x98,0x61,0xE7,0xFF,0xD6,0x0E,0xD1,0xE0,0x05,0xBE,0x98,0x60, +0x1D,0x61,0x0A,0xE7,0xFF,0xD6,0x48,0x99,0x40,0xE4,0x00,0x01,0x45,0x98,0x61,0x88, +0x8A,0x22,0x01,0x0A,0xE7,0xFF,0xE1,0xE0,0x98,0x60,0xE7,0xFF,0xE2,0x2A,0xFC,0x60, +0x01,0x00,0xE7,0xFF,0xF8,0x16,0xE7,0xFF,0xD4,0x14,0xE7,0xFF,0xF6,0xC2,0xC4,0x63, +0x01,0x00,0x20,0x63,0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF7,0x6C,0xFC,0x60,0x01, +0x00,0xE7,0xFF,0xF8,0x30,0x88,0x6A,0x98,0x81,0x98,0xA0,0xE7,0xFF,0xE8,0x94,0xE4, +0x00,0x00,0x8B,0xE7,0xFF,0xE1,0x62,0x98,0x61,0xE7,0xFF,0xE1,0xAC,0xFC,0x60,0x01, +0x00,0xE7,0xFF,0xF7,0x98,0xE7,0xFF,0xD3,0x96,0xE7,0xFF,0xF6,0x44,0xC4,0x63,0x01, +0x00,0x20,0x63,0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF6,0xEE,0xFC,0x60,0x01,0x00, +0xE7,0xFF,0xF7,0xB2,0x88,0x6A,0x98,0x81,0x98,0xA0,0xE7,0xFF,0xE8,0x16,0x0A,0xEB, +0x01,0x40,0x63,0xBD,0x0C,0x6B,0x01,0x9E,0x01,0x5E,0x10,0x00,0xD2,0x02,0xFB,0x8E, +0x9D,0x41,0x9D,0x62,0x5D,0x4A,0x00,0xD1,0x44,0x05,0xEA,0x9A,0x00,0xE7,0xFF,0xFE, +0xC1,0x98,0x61,0x1D,0x61,0x12,0xE7,0xFF,0xD4,0xE2,0x99,0x40,0xE4,0x00,0x01,0x45, +0x98,0x61,0x88,0x8A,0x22,0x01,0x0A,0xE7,0xFF,0xE0,0x7A,0x98,0x60,0xE7,0xFF,0xE0, +0xC4,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF6,0xB0,0xE7,0xFF,0xD2,0xAE,0xE7,0xFF,0xF5, +0x5C,0xC4,0x63,0x01,0x00,0x20,0x63,0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF6,0x06, +0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF6,0xCA,0x88,0x6A,0x98,0x81,0x98,0xA0,0xE7,0xFF, +0xE7,0x2E,0xE4,0x00,0x00,0x8B,0xE7,0xFF,0xDF,0xFC,0x98,0x61,0xE7,0xFF,0xE0,0x46, +0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF6,0x32,0xE7,0xFF,0xD2,0x30,0xE7,0xFF,0xF4,0xDE, +0xC4,0x63,0x01,0x00,0x20,0x63,0xE0,0xFC,0x60,0x01,0x00,0xE7,0xFF,0xF5,0x88,0xFC, +0x60,0x01,0x00,0xE7,0xFF,0xF6,0x4C,0x88,0x6A,0x98,0x81,0x98,0xA0,0xE7,0xFF,0xE6, +0xB0,0x0A,0xEB,0x01,0x40,0x63,0xBD,0x0C,0x6B,0x01,0x9E,0x01,0x5E,0x10,0x00,0xD2, +0x02,0xFB,0x8E,0x9D,0x41,0x9D,0x62,0x5D,0x4A,0x00,0xD1,0x44,0x00,0x52,0x9A,0x00, +0xE7,0xFF,0xFE,0xC1,0x9D,0xE1,0x5D,0xEF,0x00,0xD1,0xE2,0xF4,0x8E,0x0B,0x21,0x0A, +0x0B,0x01,0x12,0x0F,0x21,0x07,0x1E,0xE1,0x0C,0x1F,0x81,0x12,0x0B,0x77,0x01,0x8B, +0x59,0x5F,0xBB,0x06,0xD7,0x3D,0x00,0x30,0x8B,0x5B,0x5F,0x3A,0x06,0x0B,0x77,0x09, +0x8B,0x58,0x5F,0xBB,0x06,0xD7,0x1D,0x00,0x30,0x8B,0x5B,0x5F,0x1A,0x06,0x9E,0xE2, +0xD7,0x97,0xFE,0xE6,0x0F,0x21,0x07,0x9A,0xE0,0x0F,0x01,0x09,0x1F,0x21,0x1A,0x8B, +0x57,0xFD,0x00,0x3F,0xFF,0xE4,0x00,0x00,0x69,0x43,0x7E,0xC4,0x0B,0x9B,0x00,0x43, +0x79,0xC4,0x23,0x80,0x32,0x0D,0x1B,0x01,0x9B,0x41,0xE4,0x00,0x00,0x23,0x09,0x5D, +0x00,0xCD,0x4A,0x1F,0xFF,0x43,0x8A,0xE0,0x0F,0x9B,0x01,0x9F,0x02,0xD3,0x08,0xFE, +0xE6,0x9F,0x28,0x9E,0xE2,0xD2,0xE4,0x00,0xBA,0x1F,0x01,0x0A,0x4F,0xD7,0x10,0x1F, +0xA1,0x06,0x8F,0xD8,0x8F,0xB7,0x9B,0x00,0xE7,0xFF,0xFF,0x83,0xC3,0x94,0x00,0x01, +0x9A,0xE0,0xCB,0x9C,0x24,0x00,0xE4,0x00,0x00,0x47,0x43,0xB9,0xC4,0x43,0xDB,0xC4, +0x57,0xBD,0xFF,0x0B,0xDE,0x01,0x4F,0xBD,0x10,0x8F,0xBC,0x0F,0xDD,0x01,0x9F,0x02, +0xD3,0x08,0xFF,0x56,0x9E,0xE1,0x22,0xE8,0x54,0x1F,0x21,0x1A,0x4F,0x77,0x18,0x9B, +0x00,0x8F,0x79,0xFF,0x37,0x12,0x46,0xE7,0xFF,0xFF,0xA7,0x9A,0xE0,0x4F,0x17,0x08, +0x1F,0x61,0x6C,0x8F,0x1B,0x0B,0x38,0x01,0x47,0x19,0x6C,0x5F,0x39,0x00,0x4F,0x39, +0x10,0x4F,0x18,0x08,0x8F,0x19,0x1F,0x21,0x2A,0x8F,0x0C,0x8F,0x37,0x0B,0x39,0x01, +0x0F,0x38,0x01,0x9E,0xE2,0x5E,0xE3,0xC9,0x23,0xFF,0x55,0xC2,0xF4,0x00,0x01,0xCA, +0xF7,0x25,0x38,0x0B,0x17,0x01,0x23,0x40,0x34,0x5F,0x18,0x04,0x53,0x18,0x0F,0xE4, +0x00,0x00,0x11,0xC7,0x18,0xFF,0xF0,0x0F,0x17,0x01,0x98,0x60,0x98,0x80,0xE7,0xFF, +0xDE,0x84,0x98,0x80,0x98,0x61,0xE7,0xFF,0xDE,0x74,0x98,0x60,0xE7,0xFF,0xDD,0x26, +0x98,0x60,0x98,0x80,0xE7,0xFF,0xDC,0xC0,0x88,0x6E,0xEE,0x01,0x00,0xAA,0xED,0xE1, +0x00,0xAE,0xED,0xC1,0x00,0xB2,0xED,0xA1,0x00,0xB6,0xED,0x81,0x00,0xBA,0xED,0x61, +0x00,0xBE,0xED,0x41,0x00,0xC2,0xED,0x21,0x00,0xC6,0xFC,0x21,0x00,0xC8,0xE7,0xFF, +0xD0,0x5F,0x00,0x00,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xC8,0x80, +0xAA,0x55,0xC0,0x74,0x00,0x01,0xC8,0x63,0x78,0xC0,0x0C,0x83,0x00,0xC0,0x74,0x00, +0x01,0xC8,0x63,0x1F,0xDC,0x50,0x80,0x80,0x0C,0x83,0x00,0x04,0x20,0x80,0xC8,0x21, +0x17,0xFC,0x1C,0x40,0xFD,0x44,0x21,0x14,0x28,0x00,0x74,0xC0,0x40,0x00,0x01,0xC8, +0x42,0x31,0xD8,0x84,0x49,0x0C,0x41,0x0C,0x0C,0x61,0x10,0x0C,0x81,0x14,0x0C,0xA1, +0x18,0x0C,0xC1,0x1C,0x0C,0xE1,0x20,0x0D,0x01,0x24,0x0D,0x21,0x28,0x0D,0x41,0x2C, +0x0D,0x61,0x30,0x0D,0x81,0x34,0x0D,0xA1,0x38,0x0D,0xC1,0x3C,0x0D,0xE1,0x40,0x0E, +0x01,0x44,0x0E,0x21,0x48,0x0E,0x41,0x4C,0x0E,0x61,0x50,0x0E,0x81,0x54,0x0E,0xA1, +0x58,0x0E,0xC1,0x5C,0x0E,0xE1,0x60,0x0F,0x01,0x64,0x0F,0x21,0x68,0x0F,0x41,0x6C, +0x0F,0x61,0x70,0x0F,0x81,0x74,0x0F,0xA1,0x78,0x0F,0xC1,0x7C,0x1C,0x61,0x00,0xC1, +0x00,0x00,0x01,0xC9,0x08,0x9F,0x80,0x85,0x08,0x90,0x23,0x00,0xC0,0x40,0x10,0x01, +0xC8,0x42,0x03,0xB0,0xC0,0x60,0x10,0x01,0xC8,0x63,0x0D,0x68,0x5C,0x43,0x1F,0x20, +0x00,0x2D,0x0C,0x02,0x00,0x1C,0x42,0x04,0x93,0xF4,0x85,0x29,0xC0,0x80,0x01,0x1F, +0xC0,0x7F,0xFF,0xE1,0xC8,0x63,0xFF,0xF9,0x44,0x84,0x1C,0xC0,0x80,0x01,0x1D,0x0C, +0x61,0x02,0xC0,0x60,0x02,0x0D,0x0C,0x61,0x06,0xC0,0x60,0x04,0x0D,0x0C,0x41,0x0E, +0x0C,0x61,0x12,0x0C,0x81,0x16,0x0C,0xA1,0x1A,0x0C,0xC1,0x1E,0x0C,0xE1,0x22,0x0D, +0x01,0x26,0x0D,0x21,0x2A,0x0D,0x41,0x2E,0x0D,0x61,0x32,0x0D,0x81,0x36,0x0D,0xA1, +0x3A,0x0D,0xC1,0x3E,0x0D,0xE1,0x42,0x0E,0x01,0x46,0x0E,0x21,0x4A,0x0E,0x41,0x4E, +0x0E,0x61,0x52,0x0E,0x81,0x56,0x0E,0xA1,0x5A,0x0E,0xC1,0x5E,0x0E,0xE1,0x62,0x0F, +0x01,0x66,0x0F,0x21,0x6A,0x0F,0x41,0x6E,0x0F,0x61,0x72,0x0F,0x81,0x76,0x0F,0xA1, +0x7A,0x0F,0xC1,0x7E,0xEF,0xE1,0x00,0x82,0x0C,0x21,0x0A,0x84,0x00,0x00,0x00,0x00, +0x9C,0x30,0xCA,0xE0,0x48,0x02,0x0D,0x41,0x08,0x0D,0x21,0x0C,0x89,0x43,0xC2,0xF7, +0x00,0x0F,0x9B,0x1C,0x46,0xF7,0xC4,0x0E,0xE1,0x04,0x0E,0xE1,0x06,0x56,0xF7,0x04, +0x22,0xE0,0xE0,0xCA,0xE0,0x48,0x00,0xC3,0x37,0x00,0x0F,0x9B,0x1B,0x47,0x39,0xC4, +0xC3,0x37,0x00,0x0D,0xCA,0xE0,0x48,0x02,0xC3,0x37,0x00,0x0F,0x47,0x19,0xC4,0xC3, +0x17,0x00,0x0D,0x98,0x82,0xE7,0xFF,0xC2,0xB0,0xCA,0xE0,0x48,0x00,0xC3,0x17,0x00, +0x0F,0x53,0x18,0x04,0xC3,0x17,0x00,0x0D,0x0E,0xE1,0x06,0x56,0xF7,0x08,0x22,0xE0, +0xE8,0xCA,0xE0,0x48,0x00,0xC3,0x37,0x00,0x0F,0x9B,0x17,0x47,0x39,0xC4,0xC3,0x37, +0x00,0x0D,0xCA,0xE0,0x48,0x02,0xC3,0x37,0x00,0x0F,0x47,0x19,0xC4,0xC3,0x17,0x00, +0x0D,0x98,0x83,0x88,0x6A,0xE7,0xFF,0xC2,0x30,0xCA,0xE0,0x48,0x00,0xC3,0x17,0x00, +0x0F,0x53,0x18,0x08,0xC3,0x17,0x00,0x0D,0x0D,0x41,0x0A,0x0D,0x21,0x0E,0x1C,0x21, +0x10,0x85,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0xA0,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x1B,0x00,0x00,0x00,0x00,0xA0,0x26,0x01,0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x00,0xA0,0x66,0x00,0x01,0x00,0x00,0x00,0xF3,0x00,0x06,0x00, +0xC4,0x00,0x2F,0x00,0x07,0x00,0x0D,0x01,0xF6,0xFF,0x5C,0x00,0xFB,0xFF,0x00,0x00, +0x1B,0x00,0x1B,0x00,0x01,0x00,0x10,0x00,0xF0,0x00,0x9E,0x00,0x6F,0x00,0x6F,0x00, +0x1A,0x00,0x08,0x18,0x01,0x00,0x00,0x00,0x64,0x00,0x14,0x00,0x14,0x00,0x06,0x00, +0x06,0x00,0x5A,0x00,0x14,0x00,0x14,0x00,0x06,0x00,0x06,0x00,0x64,0x00,0x01,0x00, +0x5F,0x00,0x01,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x50,0x00,0x96,0x00,0x40,0x06,0x00,0x00,0x80,0x0C,0x00,0x00, +0x01,0x03,0x07,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x05,0x00, +0x00,0x01,0x02,0x00,0x14,0x00,0x2D,0x00,0x46,0x00,0x5F,0x00,0x78,0x00,0x91,0x00, +0x07,0x00,0xC8,0x00,0xC8,0x00,0xC8,0x00,0xF4,0x01,0xF4,0x01,0xFF,0xFF,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x02,0x00,0x04,0x00,0x06,0x00, +0x08,0x00,0x0A,0x00,0x0C,0x00,0x10,0x00,0x14,0x00,0x18,0x00,0x20,0x00,0x28,0x00, +0x32,0x00,0x3E,0x00,0x40,0x00,0x64,0x00,0x80,0x00,0x00,0x01,0x02,0x00,0x00,0x11, +0xFF,0xFF,0xFF,0xFF,0x01,0x11,0xFF,0xFF,0x18,0x50,0x02,0x11,0xFF,0x7F,0xFF,0x0E, +0x03,0x11,0xFF,0x00,0x66,0x00,0x04,0x11,0xFF,0x0F,0x72,0x07,0x05,0x11,0xFF,0x0F, +0x72,0x07,0x06,0x11,0xFF,0x00,0x00,0x00,0x07,0x11,0x03,0x00,0x00,0x00,0x08,0x11, +0x73,0x00,0x00,0x00,0x09,0x11,0xFF,0xFF,0x00,0x00,0x09,0x11,0xFF,0x7F,0x00,0x00, +0x0A,0x11,0xFF,0x7F,0x87,0x10,0x0E,0x11,0xFF,0xFF,0x00,0x00,0x0F,0x11,0xFF,0xFF, +0x00,0x00,0x17,0x11,0x0F,0xFF,0x00,0x00,0x18,0x11,0xFF,0xFF,0x00,0x02,0x19,0x11, +0xFF,0x00,0x0E,0x00,0x1E,0x11,0xFF,0xFF,0x00,0x00,0x1F,0x11,0xFF,0x00,0x00,0x00, +0x33,0x11,0x0F,0x00,0x00,0x00,0x3A,0x11,0x37,0x0F,0x00,0x00,0x3B,0x11,0x77,0x00, +0x77,0x00,0x3C,0x11,0x00,0xFF,0x00,0xA0,0x3D,0x11,0x77,0x00,0x00,0x00,0x3E,0x11, +0xFF,0x00,0x00,0x00,0x04,0x12,0x06,0x00,0x00,0x00,0x05,0x12,0xFF,0x00,0x00,0x00, +0x07,0x12,0xFF,0xFF,0x00,0x00,0x08,0x12,0xFF,0x00,0x00,0x00,0x09,0x12,0xFF,0xFF, +0x00,0x00,0x0A,0x12,0xFF,0x00,0x00,0x00,0x0B,0x12,0x3F,0x00,0x2E,0x00,0x0D,0x12, +0x1F,0x00,0x05,0x00,0x0E,0x12,0x1F,0x00,0x05,0x00,0x0F,0x12,0xFF,0xFF,0x00,0x00, +0x10,0x12,0xFF,0x00,0x00,0x00,0x11,0x12,0xFF,0x0F,0x00,0x00,0x12,0x12,0x87,0x1F, +0x00,0x00,0x13,0x12,0x7F,0x0F,0x14,0x00,0x14,0x12,0x9F,0xFF,0x0A,0x09,0x15,0x12, +0x7F,0x0F,0x0C,0x0F,0x16,0x12,0xFF,0x0F,0x00,0x07,0x17,0x12,0x1F,0xFF,0x0A,0x5C, +0x18,0x12,0x7F,0x1F,0x14,0x0A,0x19,0x12,0xFF,0xFF,0x8C,0x21,0x1A,0x12,0xFF,0x03, +0x00,0x00,0x1B,0x12,0xFF,0x03,0x00,0x00,0x1C,0x12,0xFF,0x03,0x00,0x00,0x1D,0x12, +0xFF,0x03,0x00,0x00,0x1E,0x12,0x1F,0x1F,0x12,0x07,0x1F,0x12,0x3F,0x3F,0x00,0x00, +0x20,0x12,0xFF,0xFF,0x00,0x00,0x21,0x12,0xFF,0x00,0x00,0x00,0x23,0x12,0x3F,0x3F, +0x02,0x00,0x24,0x12,0x3F,0x00,0x00,0x00,0x28,0x12,0xFF,0xFF,0x83,0x81,0x2D,0x12, +0x01,0x00,0x01,0x00,0x50,0x12,0xFF,0xFF,0x00,0x00,0x51,0x12,0xFF,0x00,0x00,0x00, +0x70,0x12,0x03,0x00,0x03,0x00,0x01,0x11,0x06,0x00,0x02,0x00,0x02,0x11,0x00,0x08, +0x00,0x08,0x2A,0x12,0x00,0xFF,0x00,0xBA,0x2B,0x12,0xFF,0x30,0xF0,0x20,0x01,0x11, +0x06,0x00,0x00,0x00,0x2A,0x12,0x00,0xFF,0x00,0x00,0x2B,0x12,0xFF,0x30,0x00,0x00, +0x01,0x11,0x00,0x50,0x00,0x50,0x02,0x11,0x3F,0x06,0x2F,0x06,0x01,0x11,0x00,0x50, +0x00,0x00,0x02,0x11,0x3F,0x06,0x00,0x00,0x2A,0x12,0x00,0x30,0x00,0x20,0x11,0x1E, +0xFF,0x7F,0x00,0x00,0x12,0x1E,0xFF,0x00,0x00,0x00,0x13,0x1E,0x0F,0x00,0x00,0x00, +0x15,0x1E,0x73,0x07,0x00,0x00,0x16,0x1E,0x0F,0x00,0x00,0x00,0x18,0x1E,0x3F,0x00, +0x08,0x00,0x2A,0x1E,0x05,0x00,0x01,0x00,0x50,0x11,0x11,0x11,0x51,0x11,0x11,0x11, +0x52,0x11,0x11,0x11,0x53,0x11,0x11,0x11,0x54,0x11,0x11,0x11,0x55,0x11,0x11,0x11, +0x56,0x11,0x11,0x11,0x57,0x11,0x11,0x11,0x58,0x11,0x11,0x11,0x59,0x11,0x11,0x11, +0x5A,0x11,0x11,0x11,0x5B,0x11,0x11,0x11,0x5C,0x11,0xFF,0xFF,0x5D,0x11,0xFF,0xFF, +0x5E,0x11,0xFF,0xFF,0x46,0x12,0x00,0x00,0x47,0x12,0x00,0x00,0x48,0x12,0x00,0x00, +0x49,0x12,0x00,0x00,0x4A,0x12,0x00,0x00,0x4B,0x12,0x00,0x00,0x4C,0x12,0x00,0x00, +0x4D,0x12,0x00,0x00,0x4E,0x12,0x0F,0x00,0x02,0x03,0x0F,0x00,0x52,0x00,0x69,0x00, +0xD9,0x00,0x95,0x00,0x89,0x00,0x7E,0x00,0x72,0x00,0x67,0x00,0x5B,0x00,0x50,0x00, +0x44,0x00,0x39,0x00,0x2D,0x00,0x22,0x00,0x16,0x00,0x0B,0x00,0x00,0x00,0xFF,0x00, +0x8D,0x09,0x1A,0x00,0xFE,0x00,0x1B,0x07,0x3F,0x00,0xFE,0x00,0x9D,0x0A,0x78,0x00, +0xFD,0x00,0xEC,0x12,0xA8,0x00,0xFC,0x00,0x6B,0x18,0xD0,0x00,0xFB,0x00,0x7C,0x19, +0x0A,0x01,0xF9,0x00,0x55,0x20,0x4E,0x01,0xF8,0x00,0x85,0x26,0x86,0x01,0xFF,0x00, +0x48,0x0D,0x09,0x00,0xFE,0x00,0x9E,0x0B,0x1E,0x00,0xFE,0x00,0x34,0x0E,0x44,0x00, +0xFD,0x00,0x35,0x14,0x66,0x00,0xFD,0x00,0x1A,0x18,0x7F,0x00,0xFC,0x00,0x11,0x19, +0x9C,0x00,0xFB,0x00,0x3C,0x1C,0xBF,0x00,0xFB,0x00,0x94,0x21,0xDB,0x00,0xFA,0x00, +0xE6,0x24,0xF7,0x00,0xF9,0x00,0xFB,0x24,0x29,0x01,0xFE,0x00,0xE0,0x0D,0x04,0x00, +0xFE,0x00,0xF6,0x10,0x18,0x00,0xFE,0x00,0xC8,0x12,0x30,0x00,0xFD,0x00,0xEB,0x14, +0x4A,0x00,0xFD,0x00,0x74,0x16,0x69,0x00,0xFC,0x00,0xB9,0x1C,0x7E,0x00,0xFC,0x00, +0x68,0x20,0x8E,0x00,0xFB,0x00,0xCE,0x21,0xA6,0x00,0xFB,0x00,0x52,0x23,0xC8,0x00, +0xFA,0x00,0x0A,0x29,0xE2,0x00,0xF9,0x00,0x4D,0x2C,0xFC,0x00,0xFE,0x00,0x85,0x13, +0xF8,0xFF,0xFE,0x00,0xF6,0x12,0x07,0x00,0xFD,0x00,0xC9,0x13,0x24,0x00,0xFD,0x00, +0x6E,0x18,0x3E,0x00,0xFC,0x00,0x47,0x1C,0x4E,0x00,0xFC,0x00,0x83,0x1D,0x5E,0x00, +0xFC,0x00,0xFB,0x1F,0x74,0x00,0xFB,0x00,0xF7,0x25,0x86,0x00,0xFA,0x00,0xB8,0x29, +0x93,0x00,0xFA,0x00,0xA4,0x29,0xAB,0x00,0xF9,0x00,0x13,0x2B,0xCB,0x00,0xF9,0x00, +0x37,0x30,0xE5,0x00,0xFD,0x00,0x0D,0x1F,0xDC,0xFF,0xFD,0x00,0x3D,0x1E,0xE7,0xFF, +0xFD,0x00,0xD0,0x1C,0x02,0x00,0xFC,0x00,0xCD,0x1E,0x1B,0x00,0xFC,0x00,0x4B,0x22, +0x29,0x00,0xFC,0x00,0x4F,0x25,0x33,0x00,0xFB,0x00,0x83,0x27,0x43,0x00,0xFA,0x00, +0xE6,0x2C,0x4F,0x00,0xFA,0x00,0x48,0x30,0x57,0x00,0xFA,0x00,0x0E,0x31,0x62,0x00, +0xF9,0x00,0x76,0x31,0x77,0x00,0xF9,0x00,0x65,0x36,0x87,0x00,0xF8,0x00,0xB3,0x38, +0x94,0x00,0xF8,0x00,0x27,0x37,0xAC,0x00,0x05,0x03,0x03,0x04,0x04,0x00,0x11,0x00, +0xC1,0x09,0xD9,0xFF,0x36,0x01,0x0E,0x00,0x1C,0x00,0xDD,0x03,0x03,0x00,0x40,0x00, +0x14,0x00,0x4C,0x00,0x95,0x03,0x05,0x00,0x07,0x00,0x18,0x00,0xA5,0x00,0x4B,0x06, +0x9B,0xFF,0x03,0x00,0x19,0x00,0xC8,0x00,0x14,0x03,0x3B,0x00,0x00,0x00,0x1A,0x00, +0x16,0x00,0x40,0x05,0xE4,0xFF,0xA2,0x00,0x14,0x00,0x3B,0x00,0x67,0x04,0xF0,0xFF, +0x3B,0x00,0x1A,0x00,0x6F,0x00,0x22,0x04,0xF8,0xFF,0x03,0x00,0x20,0x00,0x1C,0x00, +0x48,0x05,0xDB,0xFF,0x98,0x00,0x16,0x00,0x57,0x00,0x90,0x04,0xEC,0xFF,0x19,0x00, +0x21,0x00,0x95,0x00,0x08,0x04,0xFE,0xFF,0x02,0x00,0x24,0x00,0x23,0x00,0xC4,0x05, +0xCC,0xFF,0xA6,0x00,0x17,0x00,0x62,0x00,0x9C,0x04,0xEC,0xFF,0x17,0x00,0x25,0x00, +0xA0,0x00,0x0E,0x04,0xFB,0xFF,0x02,0x00,0x28,0x00,0x0D,0x01,0x7D,0x04,0xE1,0xFF, +0xFC,0xFF,0x2A,0x00,0x33,0x00,0x30,0x07,0xA2,0xFF,0xD3,0x00,0x18,0x00,0x6F,0x00, +0xAD,0x04,0xED,0xFF,0x23,0x00,0x2B,0x00,0x9C,0x00,0x14,0x03,0x27,0x00,0x03,0x00, +0x2F,0x00,0xE1,0x00,0x53,0x05,0xAB,0xFF,0x02,0x00,0x30,0x00,0x35,0x51,0x00,0x00, +0x35,0x51,0x00,0x00,0x4A,0x51,0x00,0x00,0x4A,0x51,0x00,0x00,0xC8,0x53,0x00,0x00, +0xC8,0x53,0x00,0x00,0xC8,0x53,0x00,0x00,0xD0,0x51,0x00,0x00,0xA0,0x52,0x00,0x00, +0x25,0x52,0x00,0x00,0x09,0x54,0x00,0x00,0x09,0x54,0x00,0x00,0x91,0x55,0x00,0x00, +0x91,0x55,0x00,0x00,0x91,0x55,0x00,0x00,0x91,0x55,0x00,0x00,0x91,0x55,0x00,0x00, +0xB8,0x54,0x00,0x00,0x5C,0x55,0x00,0x00,0x11,0x55,0x00,0x00,0xDF,0x55,0x00,0x00, +0xDF,0x55,0x00,0x00,0x2C,0x56,0x00,0x00,0x54,0x56,0x00,0x00,0x67,0x56,0x00,0x00, +0xA4,0x56,0x00,0x00,0x80,0x56,0x00,0x00,0x0D,0x5A,0x00,0x00,0x2C,0x5A,0x00,0x00, +0x85,0x5A,0x00,0x00,0xB3,0x5A,0x00,0x00,0xDF,0x5A,0x00,0x00,0xDF,0x5A,0x00,0x00, +0xF1,0x5A,0x00,0x00,0xDF,0x5A,0x00,0x00,0x9B,0x5A,0x00,0x00,0x9B,0x5A,0x00,0x00, +0xDF,0x5A,0x00,0x00,0xDF,0x5A,0x00,0x00,0xF1,0x5A,0x00,0x00,0xF1,0x5A,0x00,0x00, +0xF1,0x5A,0x00,0x00,0xD3,0x5A,0x00,0x00,0xD9,0x5A,0x00,0x00,0x0A,0x0B,0x2C,0x1B, +0x09,0x07,0x1C,0x1A,0x25,0x05,0x1D,0x19,0x26,0x00,0x1E,0x18,0x27,0x04,0x1F,0x17, +0x28,0x06,0x20,0x0D,0x29,0x08,0x2B,0x0C,0x2A,0x00,0x00,0x00,0x15,0x67,0x00,0x00, +0x15,0x67,0x00,0x00,0x46,0x67,0x00,0x00,0x46,0x67,0x00,0x00,0x78,0x67,0x00,0x00, +0x78,0x67,0x00,0x00,0x78,0x67,0x00,0x00,0x78,0x67,0x00,0x00,0xF7,0x66,0x00,0x00, +0xD9,0x66,0x00,0x00,0xD9,0x67,0x00,0x00,0xD9,0x67,0x00,0x00,0x0C,0x68,0x00,0x00, +0x0C,0x68,0x00,0x00,0x41,0x68,0x00,0x00,0x41,0x68,0x00,0x00,0x41,0x68,0x00,0x00, +0x41,0x68,0x00,0x00,0xB2,0x67,0x00,0x00,0xA0,0x67,0x00,0x00,0xE4,0x68,0x00,0x00, +0xE4,0x68,0x00,0x00,0x38,0x69,0x00,0x00,0x38,0x69,0x00,0x00,0xAB,0x6A,0x00,0x00, +0xAB,0x6A,0x00,0x00,0xAB,0x6A,0x00,0x00,0xAB,0x6A,0x00,0x00,0x93,0x69,0x00,0x00, +0xD9,0x69,0x00,0x00,0x1F,0x6A,0x00,0x00,0x67,0x6A,0x00,0x00,0xB4,0x77,0x00,0x00, +0xB4,0x77,0x00,0x00,0xEF,0x77,0x00,0x00,0xEF,0x77,0x00,0x00,0xDE,0x78,0x00,0x00, +0xDE,0x78,0x00,0x00,0xDE,0x78,0x00,0x00,0xDE,0x78,0x00,0x00,0x2C,0x78,0x00,0x00, +0x51,0x78,0x00,0x00,0x82,0x78,0x00,0x00,0xB2,0x78,0x00,0x00,0xF1,0x82,0x00,0x00, +0x16,0x83,0x00,0x00,0x76,0x83,0x00,0x00,0xDD,0x83,0x00,0x00,0x6E,0x84,0x00,0x00, +0x9E,0x84,0x00,0x00,0x33,0x85,0x00,0x00,0xA6,0x84,0x00,0x00,0x04,0x00,0x1D,0x00, +0x2E,0x00,0x50,0x00,0x82,0x00,0xC7,0x00,0x23,0x01,0x9B,0x01,0x32,0x02,0xEE,0x02, +0xD0,0x03,0xDE,0x04,0x19,0x06,0x82,0x07,0x1A,0x09,0xE0,0x0A,0xD0,0x0C,0xE7,0x0E, +0x1F,0x11,0x71,0x13,0xD3,0x15,0x3D,0x18,0xA2,0x1A,0xF9,0x1C,0x34,0x1F,0x47,0x21, +0x28,0x23,0xCB,0x24,0x27,0x26,0x33,0x27,0xEA,0x27,0x46,0x28,0x04,0x00,0x1C,0x00, +0x2B,0x00,0x4B,0x00,0x78,0x00,0xB7,0x00,0x0A,0x01,0x75,0x01,0xFC,0x01,0xA3,0x02, +0x6D,0x03,0x5E,0x04,0x76,0x05,0xB9,0x06,0x26,0x08,0xBE,0x09,0x7D,0x0B,0x61,0x0D, +0x67,0x0F,0x87,0x11,0xBB,0x13,0xFC,0x15,0x3F,0x18,0x7B,0x1A,0xA6,0x1C,0xB6,0x1E, +0x9F,0x20,0x57,0x22,0xD7,0x23,0x14,0x25,0x08,0x26,0xAF,0x26,0x03,0x27,0x05,0x00, +0x08,0x21,0x05,0x00,0x00,0x20,0x00,0x00,0x94,0xBC,0x00,0xC0,0xA4,0xBC,0x00,0xC0, +0xB6,0xBC,0x00,0xC0,0xBA,0xBC,0x00,0xC0,0x2C,0xBC,0x00,0xC0,0x74,0xBC,0x00,0xC0, +0xD4,0xBC,0x00,0xC0,0xF2,0xBC,0x00,0xC0,0xF6,0xBC,0x00,0xC0,0x1C,0xBD,0x00,0xC0, +0xAA,0xBD,0x00,0xC0,0xEC,0xBD,0x00,0xC0,0x4E,0xBB,0x00,0xC0,0x52,0xBB,0x00,0xC0, +0x28,0xBC,0x00,0xC0,0x70,0xBC,0x00,0xC0,0x05,0x00,0x2A,0x00,0x2A,0x00,0x3E,0x00, +0x58,0x00,0x79,0x00,0xA1,0x00,0xD3,0x00,0x0F,0x01,0x56,0x01,0xAA,0x01,0x0C,0x02, +0x7D,0x02,0xFE,0x02,0x91,0x03,0x37,0x04,0xF0,0x04,0xBE,0x05,0xA0,0x06,0x99,0x07, +0xA7,0x08,0xCC,0x09,0x06,0x0B,0x56,0x0C,0xBB,0x0D,0x34,0x0F,0xC0,0x10,0x5D,0x12, +0x0A,0x14,0xC5,0x15,0x8A,0x17,0x59,0x19,0x2D,0x1B,0x05,0x1D,0xDC,0x1E,0xB0,0x20, +0x7D,0x22,0x40,0x24,0xF5,0x25,0x98,0x27,0x27,0x29,0x9E,0x2A,0xF9,0x2B,0x37,0x2D, +0x53,0x2E,0x4B,0x2F,0x1E,0x30,0xC9,0x30,0x4A,0x31,0xA1,0x31,0xCD,0x31,0x04,0x00, +0x2D,0x00,0x6D,0x00,0xE7,0x00,0xAD,0x01,0xD8,0x02,0x81,0x04,0xBE,0x06,0xA0,0x09, +0x30,0x0D,0x6D,0x11,0x47,0x16,0xA3,0x1B,0x56,0x21,0x29,0x27,0xDC,0x2C,0x2A,0x32, +0xCF,0x36,0x8B,0x3A,0x29,0x3D,0x81,0x3E,0x06,0x00,0xF5,0x28,0x03,0x00,0x33,0x33, +0x78,0xBC,0x00,0xC0,0x8E,0xBC,0x00,0xC0,0x20,0xBD,0x00,0xC0,0xAE,0xBD,0x00,0xC0, +0x98,0xBC,0x00,0xC0,0xA8,0xBC,0x00,0xC0,0x7C,0xBC,0x00,0xC0,0xBE,0xBC,0x00,0xC0, +0xD8,0xBC,0x00,0xC0,0xFA,0xBC,0x00,0xC0,0xFE,0xBB,0x00,0xC0,0xB8,0xBD,0x00,0xC0, +0xCC,0xBA,0x00,0xC0,0x0C,0xBB,0x00,0xC0,0x98,0xBB,0x00,0xC0,0x28,0xBD,0x00,0xC0, +0x06,0x00,0x00,0x20,0x03,0x00,0xAA,0x2A,0x00,0x00,0x00,0x20,0x02,0x00,0x45,0x00, +0x5D,0x01,0x1B,0x04,0x31,0x09,0xA2,0x10,0x55,0x19,0x32,0x21,0xE5,0x25,0x01,0x00, +0x10,0x10,0xEF,0x2F,0x00,0x00,0x00,0x20,0x02,0x00,0x49,0x01,0x6C,0x07,0xB1,0x15, +0x60,0x29,0x38,0x38,0x01,0x00,0x00,0x20,0x02,0x00,0xAC,0x00,0xCB,0x03,0x95,0x0B, +0x6B,0x18,0xE0,0x26,0xA6,0x30,0x02,0x00,0xAA,0x2A,0x02,0x00,0x00,0x20,0x03,0x00, +0x4D,0x00,0x51,0x01,0xBD,0x03,0x48,0x08,0x6B,0x0F,0x0D,0x19,0x47,0x24,0x73,0x2F, +0x86,0x38,0x9F,0x3D,0x03,0x00,0x00,0x20,0x03,0x00,0x33,0x00,0xC4,0x00,0x08,0x02, +0x5B,0x04,0x11,0x08,0x55,0x0D,0x0D,0x14,0xCC,0x1B,0xCF,0x23,0x1E,0x2B,0xB5,0x30, +0xBD,0x33,0x04,0x00,0x33,0x33,0x04,0x00,0xAA,0x2A,0x03,0x00,0x1F,0x00,0x5B,0x00, +0xD6,0x00,0xAB,0x01,0xF6,0x02,0xD5,0x04,0x59,0x07,0x87,0x0A,0x52,0x0E,0x96,0x12, +0x1C,0x17,0x9B,0x1B,0xC0,0x1F,0x37,0x23,0xB6,0x25,0x05,0x27,0x04,0x00,0x00,0x20, +0x01,0x00,0x65,0x04,0x5D,0x14,0x3D,0x27,0x05,0x00,0x26,0x00,0x1D,0x00,0x28,0x00, +0x36,0x00,0x47,0x00,0x5A,0x00,0x72,0x00,0x8D,0x00,0xAE,0x00,0xD3,0x00,0xFD,0x00, +0x2D,0x01,0x64,0x01,0xA2,0x01,0xE6,0x01,0x33,0x02,0x87,0x02,0xE5,0x02,0x4B,0x03, +0xBA,0x03,0x33,0x04,0xB6,0x04,0x43,0x05,0xDB,0x05,0x7C,0x06,0x29,0x07,0xDF,0x07, +0xA1,0x08,0x6C,0x09,0x41,0x0A,0x21,0x0B,0x09,0x0C,0xFA,0x0C,0xF4,0x0D,0xF5,0x0E, +0xFE,0x0F,0x0C,0x11,0x20,0x12,0x38,0x13,0x53,0x14,0x71,0x15,0x90,0x16,0xAF,0x17, +0xCD,0x18,0xE8,0x19,0x00,0x1B,0x12,0x1C,0x1E,0x1D,0x23,0x1E,0x1F,0x1F,0x10,0x20, +0xF7,0x20,0xD0,0x21,0x9C,0x22,0x59,0x23,0x07,0x24,0xA3,0x24,0x2E,0x25,0xA7,0x25, +0x0C,0x26,0x5E,0x26,0x9C,0x26,0xC6,0x26,0xDA,0x26,0x05,0x00,0x33,0x33,0x01,0x00, +0x7E,0x01,0x41,0x08,0x4A,0x15,0xF4,0x20,0x04,0x00,0x23,0x00,0x45,0x00,0x84,0x00, +0xE4,0x00,0x6F,0x01,0x2F,0x02,0x2F,0x03,0x76,0x04,0x0F,0x06,0xFD,0x07,0x45,0x0A, +0xE6,0x0C,0xDA,0x0F,0x19,0x13,0x93,0x16,0x37,0x1A,0xEF,0x1D,0xA0,0x21,0x2F,0x25, +0x80,0x28,0x77,0x2B,0xFA,0x2D,0xF2,0x2F,0x4D,0x31,0xFD,0x31,0x05,0x00,0xF5,0x28, +0xEA,0x95,0x00,0x00,0x06,0x96,0x00,0x00,0x25,0x96,0x00,0x00,0x44,0x96,0x00,0x00, +0x53,0x96,0x00,0x00,0x44,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x02,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x24,0xB1,0x5A,0x07, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x08,0x00, +0x00,0x00,0x56,0x30,0x31,0x2E,0x30,0x30,0x37,0x2E,0x30,0x34,0x4C,0xFF,0xB2,0x89 +}; diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_common.c b/drivers/input/touchscreen/msg2233/mstar_drv_common.c new file mode 100644 index 00000000..bb47994c --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_common.c @@ -0,0 +1,155 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_common.c + * + * @brief This file defines the interface of touch screen + * + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_common.h" + +/*=============================================================*/ +// MACRO DEFINITION +/*=============================================================*/ + +/*=============================================================*/ +// CONSTANT VALUE DEFINITION +/*=============================================================*/ + + +/*=============================================================*/ +// LOCAL VARIABLE DEFINITION +/*=============================================================*/ + +static u32 _gCrc32Table[256]; + +/*=============================================================*/ +// DATA TYPE DEFINITION +/*=============================================================*/ + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +/// CRC +u32 DrvCommonCrcDoReflect(u32 nRef, s8 nCh) +{ + u32 nValue = 0; + u32 i = 0; + + for (i = 1; i < (nCh + 1); i ++) + { + if (nRef & 1) + { + nValue |= 1 << (nCh - i); + } + nRef >>= 1; + } + + return nValue; +} + +u32 DrvCommonCrcGetValue(u32 nText, u32 nPrevCRC) +{ + u32 nCRC = nPrevCRC; + + nCRC = (nCRC >> 8) ^ _gCrc32Table[(nCRC & 0xFF) ^ nText]; + + return nCRC; +} + +void DrvCommonCrcInitTable(void) +{ + u32 nMagicNumber = 0x04c11db7; + u32 i, j; + + for (i = 0; i <= 0xFF; i ++) + { + _gCrc32Table[i] = DrvCommonCrcDoReflect(i, 8) << 24; + for (j = 0; j < 8; j ++) + { + _gCrc32Table[i] = (_gCrc32Table[i] << 1) ^ (_gCrc32Table[i] & (0x80000000L) ? nMagicNumber : 0); + } + _gCrc32Table[i] = DrvCommonCrcDoReflect(_gCrc32Table[i], 32); + } +} + +u8 DrvCommonCalculateCheckSum(u8 *pMsg, u32 nLength) +{ + s32 nCheckSum = 0; + u32 i; + + for (i = 0; i < nLength; i ++) + { + nCheckSum += pMsg[i]; + } + + return (u8)((-nCheckSum) & 0xFF); +} + +u32 DrvCommonConvertCharToHexDigit(char *pCh, u32 nLength) +{ + u32 nRetVal = 0; + u32 i; + + DBG("nLength = %d\n", nLength); + + for (i = 0; i < nLength; i ++) + { + char ch = *pCh++; + u32 n = 0; + u8 nIsValidDigit = 0; + + if ((i == 0 && ch == '0') || (i == 1 && ch == 'x')) + { + continue; + } + + if ('0' <= ch && ch <= '9') + { + n = ch-'0'; + nIsValidDigit = 1; + } + else if ('a' <= ch && ch <= 'f') + { + n = 10 + ch-'a'; + nIsValidDigit = 1; + } + else if ('A' <= ch && ch <= 'F') + { + n = 10 + ch-'A'; + nIsValidDigit = 1; + } + + if (1 == nIsValidDigit) + { + nRetVal = n + nRetVal*16; + } + } + + return nRetVal; +} + +//------------------------------------------------------------------------------// \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_common.h b/drivers/input/touchscreen/msg2233/mstar_drv_common.h new file mode 100644 index 00000000..ef0dd022 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_common.h @@ -0,0 +1,548 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_common.h + * + * @brief This file defines the interface of touch screen + * + * + */ + +#ifndef __MSTAR_DRV_COMMON_H__ +#define __MSTAR_DRV_COMMON_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/*--------------------------------------------------------------------------*/ +/* TOUCH DEVICE DRIVER RELEASE VERSION */ +/*--------------------------------------------------------------------------*/ + +#define DEVICE_DRIVER_RELEASE_VERSION ("3.2.0.0") + +#define CONFIG_ENABLE_UPDATE_FIRMWARE_WITH_SUPPORT_I2C_SPEED_400K + + +/*--------------------------------------------------------------------------*/ +/* COMPILE OPTION DEFINITION */ +/*--------------------------------------------------------------------------*/ + +/* + * Note. + * The below compile option is used to enable the specific device driver code handling for distinct smart phone developer platform. + * For running on Spreadtrum platform, please define the compile option CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM. + * For running on Qualcomm platform, please define the compile option CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM. + * For running on MediaTek platform, please define the compile option CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM. + */ +#define CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM +//#define CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM +//#define CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + +/* + * Note. + * The below compile option is used to enable the specific device driver code handling for mutual-capacitive ic or self-capacitive ic. + * For a mutual-capacitive ic project(MSG26xxM/MSG28xx), please define the compile option CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC. + * For a self-capacitive ic project(MSG21xxA/MSG22xx), please define the compile option CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC. + */ +//#define CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC +#define CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC + + +/* + * Note. + * The below compile option is used to enable the specific device driver code handling to make sure main board can supply power to touch ic for some specific BB chip of MTK(EX. MT6582)/SPRD(EX. SC7715)/QCOM(EX. MSM8610). + * By default, this compile option is disabled. + */ +#define CONFIG_ENABLE_REGULATOR_POWER_ON + +/* + * Note. + * The below compile option is used to distinguish different workqueue scheduling mechanism when firmware report finger touch to device driver by IRQ interrupt. + * For MTK platform, there are two type of workqueue scheduling mechanism available. + * Please refer to the related code which is enclosed by compile option CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM in mstar_drv_platform_porting_layer.c for more detail. + * This compile option is used for MTK platform only. + * By default, this compile option is disabled. + */ + +//#define CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM + +/* + * Note. + * The below compile option is used to apply DMA mode for read/write data between device driver and firmware by I2C. + * The DMA mode is used to reslove I2C read/write 8 bytes limitation for specific MTK BB chip(EX. MT6589/MT6572/...) + * This compile option is used for MTK platform only. + * By default, this compile option is disabled. + */ +#define CONFIG_ENABLE_DMA_IIC + + +/* + * Note. + * The below compile option is used to enable the specific device driver code handling when touch panel support virtual key(EX. Menu, Home, Back, Search). + * If this compile option is not defined, the function for virtual key handling will be disabled. + * By default, this compile option is enabled. + */ +#define CONFIG_TP_HAVE_KEY + +/* + * Note. + * Since specific MTK BB chip report virtual key touch by using coordinate instead of key code, the below compile option is used to enable the code handling for reporting key with coordinate. + * This compile option is used for MTK platform only. + * By default, this compile option is disabled. + */ +//#define CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE + +/* + * Note. + * The below flag is used to enable debug mode data log for firmware. + * Please make sure firmware support debug mode data log firstly, then you can enable this flag. + * By default, this flag is enabled. + */ +#define CONFIG_ENABLE_FIRMWARE_DATA_LOG (0) // 1 : Enable, 0 : Disable + +/* + * Note. + * The below compile option is used to enable segment read debug mode finger touch data for MSG26XXM/MSG28XX only. + * Since I2C transaction length limitation for some specific MTK BB chip(EX. MT6589/MT6572/...) or QCOM BB chip, the debug mode finger touch data of MSG26XXM/MSG28XX can not be retrieved by one time I2C read operation. + * So we need to retrieve the complete finger touch data by segment read. + * By default, this compile option is enabled. + */ +#define CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA + +/* + * Note. + * The below compile option is used to enable gesture wakeup. + * By default, this compile option is disabled. + */ +//#define CONFIG_ENABLE_GESTURE_WAKEUP + +// ------------------- #ifdef CONFIG_ENABLE_GESTURE_WAKEUP ------------------- // +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + +/* + * Note. + * The below compile option is used to enable device driver to support at most 64 types of gesture wakeup mode. + * If the below compile option is not enabled, device driver can only support at most 16 types of gesture wakeup mode. + * By the way, 64 types of gesture wakeup mode is ready for MSG22XX/MSG28XX only. + * But, 64 types of gesture wakeup mode for MSG21XXA/MSG26XXM is not supported. + * By default, this compile option is disabled. + */ +//#define CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE + +/* + * Note. + * The below compile option is used to enable gesture debug mode. + * By default, this compile option is disabled. + */ +//#define CONFIG_ENABLE_GESTURE_DEBUG_MODE + +/* + * Note. + * The below compile option is used to enable gesture information mode. + * By default, this compile option is disabled. + */ +//#define CONFIG_ENABLE_GESTURE_INFORMATION_MODE + +#endif //CONFIG_ENABLE_GESTURE_WAKEUP +// ------------------- #endif CONFIG_ENABLE_GESTURE_WAKEUP ------------------- // + + +/* + * Note. + * The below compile option is used to enable phone level MP test handling. + * By the way, phone level MP test is ready for MSG21XXA/MSG22XX/MSG26XXM. + * But, phone level MP test for MSG28XX is not ready yet. + * By default, this compile option is disabled. + */ +//#define CONFIG_ENABLE_ITO_MP_TEST + +// ------------------- #ifdef CONFIG_ENABLE_ITO_MP_TEST ------------------- // +#ifdef CONFIG_ENABLE_ITO_MP_TEST + +/* + * Note. + * The below compile option is used to enable the specific short test item of 2R triangle pattern for self-capacitive touch ic. + * This compile option is used for MSG21XXA/MSG22XX only. + * Please enable the compile option if the ITO pattern is 2R triangle pattern for MSG21XXA/MSG22XX. + * Please disable the compile option if the ITO pattern is H(horizontal) triangle pattern for MSG21XXA/MSG22XX. + * By default, this compile option is enabled. + */ +#define CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + +#endif //CONFIG_ENABLE_ITO_MP_TEST +// ------------------- #endif CONFIG_ENABLE_ITO_MP_TEST ------------------- // + + +/* + * Note. + * If this compile option is not defined, the SW ID mechanism for updating firmware will be disabled. + * By default, this compile option is disabled. + */ +#define CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +// ------------------- #ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID ------------------- // +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +/* + * Note. + * If this compile option is defined, the update firmware bin file shall be stored in a two dimensional array format. + * Else, the update firmware bin file shall be stored in an one dimensional array format. + * Be careful, MSG22XX only support storing update firmware bin file in an one dimensional array format, it does not support two dimensional array format. + * By default, this compile option is enabled. + */ +//#define CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY + +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID +// ------------------- #endif CONFIG_UPDATE_FIRMWARE_BY_SW_ID ------------------- // + +/* + * Note. + * The below compile option is used to enable hotknot and only supports MSG28XX. + * By default, this compile option is disabled. + */ +//#define CONFIG_ENABLE_HOTKNOT + + +/* + * Note. + * The below compile option is used to enable proximity detection. + * By default, this compile option is disabled. + */ +//#define CONFIG_ENABLE_PROXIMITY_DETECTION + +/* + * Note. + * The below compile option is used to enable notifier feedback handling for QCOM platform. + * By default, this compile option is disabled. + */ +//#define CONFIG_ENABLE_NOTIFIER_FB + + +/* + * Note. + * The below compile option is used to enable report rate calculation. + * By default, this compile option is enabled. + */ +#define CONFIG_ENABLE_COUNT_REPORT_RATE + + +/* + * Note. + * The below compile option is used to enable glove mode and only supports MSG28XX. + * By default, this compile option is disabled. + */ +//#define CONFIG_ENABLE_GLOVE_MODE + + +/* + * Note. + * The below compile option is used to enable jni interface. + * By default, this compile option is enabled. + */ +#define CONFIG_ENABLE_JNI_INTERFACE + + +/* + * Note. + * The below compile option is used to enable the debug code for clarifying some issues. For example, to debug the delay time issue for IC hardware reset. + * By the way, this feature is supported for MSG28XX only. + * By default, this compile option is disabled. + */ +#define CONFIG_ENABLE_CODE_FOR_DEBUG + + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR CONSTANT DEFINITION */ +/*--------------------------------------------------------------------------*/ + +#define u8 unsigned char +#define u16 unsigned short +#define u32 unsigned int +#define s8 signed char +#define s16 signed short +#define s32 signed int +#define s64 int64_t +#define u64 uint64_t + + +#define CHIP_TYPE_MSG21XX (0x01) // EX. MSG2133 +#define CHIP_TYPE_MSG21XXA (0x02) // EX. MSG2133A/MSG2138A(Besides, use version to distinguish MSG2133A/MSG2138A, you may refer to _DrvFwCtrlUpdateFirmwareCash()) +#define CHIP_TYPE_MSG26XXM (0x03) // EX. MSG2633M +#define CHIP_TYPE_MSG22XX (0x7A) // EX. MSG2238/MSG2256 +#define CHIP_TYPE_MSG28XX (0x85) // EX. MSG2856 + +#define PACKET_TYPE_TOOTH_PATTERN (0x20) +#define PACKET_TYPE_GESTURE_WAKEUP (0x50) +#define PACKET_TYPE_GESTURE_DEBUG (0x51) +#define PACKET_TYPE_GESTURE_INFORMATION (0x52) + +#define TOUCH_SCREEN_X_MIN (0) +#define TOUCH_SCREEN_Y_MIN (0) +/* + * Note. + * Please change the below touch screen resolution according to the touch panel that you are using. + */ +//#define TOUCH_SCREEN_X_MAX (480) //LCD_WIDTH +//#define TOUCH_SCREEN_Y_MAX (800) //LCD_HEIGHT +/* + * Note. + * Please do not change the below setting. + */ +#define TPD_WIDTH (2048) +#define TPD_HEIGHT (2048) + + +#define BIT0 (1<<0) // 0x0001 +#define BIT1 (1<<1) // 0x0002 +#define BIT2 (1<<2) // 0x0004 +#define BIT3 (1<<3) // 0x0008 +#define BIT4 (1<<4) // 0x0010 +#define BIT5 (1<<5) // 0x0020 +#define BIT6 (1<<6) // 0x0040 +#define BIT7 (1<<7) // 0x0080 +#define BIT8 (1<<8) // 0x0100 +#define BIT9 (1<<9) // 0x0200 +#define BIT10 (1<<10) // 0x0400 +#define BIT11 (1<<11) // 0x0800 +#define BIT12 (1<<12) // 0x1000 +#define BIT13 (1<<13) // 0x2000 +#define BIT14 (1<<14) // 0x4000 +#define BIT15 (1<<15) // 0x8000 + + +#define MAX_DEBUG_REGISTER_NUM (10) +#define MAX_DEBUG_COMMAND_ARGUMENT_NUM (4) + +#define MAX_UPDATE_FIRMWARE_BUFFER_SIZE (130) // 130KB. The size shall be large enough for stored any kind firmware size of MSG21XXA(33KB)/MSG22XX(48.5KB)/MSG26XXM(40KB)/MSG28XX(130KB). + +#define MAX_I2C_TRANSACTION_LENGTH_LIMIT (250) // Please change the value depends on the I2C transaction limitation for the platform that you are using. +#define MAX_TOUCH_IC_REGISTER_BANK_SIZE (256) // It is a fixed value and shall not be modified. + + +#define PROCFS_AUTHORITY (0666) + + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +#define GESTURE_WAKEUP_MODE_DOUBLE_CLICK_FLAG 0x00000001 //0000 0000 0000 0000 0000 0000 0000 0001 +#define GESTURE_WAKEUP_MODE_UP_DIRECT_FLAG 0x00000002 //0000 0000 0000 0000 0000 0000 0000 0010 +#define GESTURE_WAKEUP_MODE_DOWN_DIRECT_FLAG 0x00000004 //0000 0000 0000 0000 0000 0000 0000 0100 +#define GESTURE_WAKEUP_MODE_LEFT_DIRECT_FLAG 0x00000008 //0000 0000 0000 0000 0000 0000 0000 1000 +#define GESTURE_WAKEUP_MODE_RIGHT_DIRECT_FLAG 0x00000010 //0000 0000 0000 0000 0000 0000 0001 0000 +#define GESTURE_WAKEUP_MODE_m_CHARACTER_FLAG 0x00000020 //0000 0000 0000 0000 0000 0000 0010 0000 +#define GESTURE_WAKEUP_MODE_W_CHARACTER_FLAG 0x00000040 //0000 0000 0000 0000 0000 0000 0100 0000 +#define GESTURE_WAKEUP_MODE_C_CHARACTER_FLAG 0x00000080 //0000 0000 0000 0000 0000 0000 1000 0000 +#define GESTURE_WAKEUP_MODE_e_CHARACTER_FLAG 0x00000100 //0000 0000 0000 0000 0000 0001 0000 0000 +#define GESTURE_WAKEUP_MODE_V_CHARACTER_FLAG 0x00000200 //0000 0000 0000 0000 0000 0010 0000 0000 +#define GESTURE_WAKEUP_MODE_O_CHARACTER_FLAG 0x00000400 //0000 0000 0000 0000 0000 0100 0000 0000 +#define GESTURE_WAKEUP_MODE_S_CHARACTER_FLAG 0x00000800 //0000 0000 0000 0000 0000 1000 0000 0000 +#define GESTURE_WAKEUP_MODE_Z_CHARACTER_FLAG 0x00001000 //0000 0000 0000 0000 0001 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE1_FLAG 0x00002000 //0000 0000 0000 0000 0010 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE2_FLAG 0x00004000 //0000 0000 0000 0000 0100 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE3_FLAG 0x00008000 //0000 0000 0000 0000 1000 0000 0000 0000 + +#ifdef CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE +#define GESTURE_WAKEUP_MODE_RESERVE4_FLAG 0x00010000 //0000 0000 0000 0001 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE5_FLAG 0x00020000 //0000 0000 0000 0010 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE6_FLAG 0x00040000 //0000 0000 0000 0100 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE7_FLAG 0x00080000 //0000 0000 0000 1000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE8_FLAG 0x00100000 //0000 0000 0001 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE9_FLAG 0x00200000 //0000 0000 0010 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE10_FLAG 0x00400000 //0000 0000 0100 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE11_FLAG 0x00800000 //0000 0000 1000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE12_FLAG 0x01000000 //0000 0001 0000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE13_FLAG 0x02000000 //0000 0010 0000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE14_FLAG 0x04000000 //0000 0100 0000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE15_FLAG 0x08000000 //0000 1000 0000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE16_FLAG 0x10000000 //0001 0000 0000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE17_FLAG 0x20000000 //0010 0000 0000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE18_FLAG 0x40000000 //0100 0000 0000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE19_FLAG 0x80000000 //1000 0000 0000 0000 0000 0000 0000 0000 + +#define GESTURE_WAKEUP_MODE_RESERVE20_FLAG 0x00000001 //0000 0000 0000 0000 0000 0000 0000 0001 +#define GESTURE_WAKEUP_MODE_RESERVE21_FLAG 0x00000002 //0000 0000 0000 0000 0000 0000 0000 0010 +#define GESTURE_WAKEUP_MODE_RESERVE22_FLAG 0x00000004 //0000 0000 0000 0000 0000 0000 0000 0100 +#define GESTURE_WAKEUP_MODE_RESERVE23_FLAG 0x00000008 //0000 0000 0000 0000 0000 0000 0000 1000 +#define GESTURE_WAKEUP_MODE_RESERVE24_FLAG 0x00000010 //0000 0000 0000 0000 0000 0000 0001 0000 +#define GESTURE_WAKEUP_MODE_RESERVE25_FLAG 0x00000020 //0000 0000 0000 0000 0000 0000 0010 0000 +#define GESTURE_WAKEUP_MODE_RESERVE26_FLAG 0x00000040 //0000 0000 0000 0000 0000 0000 0100 0000 +#define GESTURE_WAKEUP_MODE_RESERVE27_FLAG 0x00000080 //0000 0000 0000 0000 0000 0000 1000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE28_FLAG 0x00000100 //0000 0000 0000 0000 0000 0001 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE29_FLAG 0x00000200 //0000 0000 0000 0000 0000 0010 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE30_FLAG 0x00000400 //0000 0000 0000 0000 0000 0100 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE31_FLAG 0x00000800 //0000 0000 0000 0000 0000 1000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE32_FLAG 0x00001000 //0000 0000 0000 0000 0001 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE33_FLAG 0x00002000 //0000 0000 0000 0000 0010 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE34_FLAG 0x00004000 //0000 0000 0000 0000 0100 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE35_FLAG 0x00008000 //0000 0000 0000 0000 1000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE36_FLAG 0x00010000 //0000 0000 0000 0001 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE37_FLAG 0x00020000 //0000 0000 0000 0010 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE38_FLAG 0x00040000 //0000 0000 0000 0100 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE39_FLAG 0x00080000 //0000 0000 0000 1000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE40_FLAG 0x00100000 //0000 0000 0001 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE41_FLAG 0x00200000 //0000 0000 0010 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE42_FLAG 0x00400000 //0000 0000 0100 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE43_FLAG 0x00800000 //0000 0000 1000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE44_FLAG 0x01000000 //0000 0001 0000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE45_FLAG 0x02000000 //0000 0010 0000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE46_FLAG 0x04000000 //0000 0100 0000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE47_FLAG 0x08000000 //0000 1000 0000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE48_FLAG 0x10000000 //0001 0000 0000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE49_FLAG 0x20000000 //0010 0000 0000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE50_FLAG 0x40000000 //0100 0000 0000 0000 0000 0000 0000 0000 +#define GESTURE_WAKEUP_MODE_RESERVE51_FLAG 0x80000000 //1000 0000 0000 0000 0000 0000 0000 0000 +#endif //CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE + +#define GESTURE_WAKEUP_PACKET_LENGTH (6) + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +#define GESTURE_DEBUG_MODE_PACKET_LENGTH (128) +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE +#define GESTURE_WAKEUP_INFORMATION_PACKET_LENGTH (128) +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE + +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#define FEATURE_GESTURE_WAKEUP_MODE 0x0001 +#define FEATURE_GESTURE_DEBUG_MODE 0x0002 +#define FEATURE_GESTURE_INFORMATION_MODE 0x0003 + +#define FEATURE_TOUCH_DRIVER_DEBUG_LOG 0x0010 +#define FEATURE_FIRMWARE_DATA_LOG 0x0011 + +/* + * Note. + * The below flag is used to enable the output log mechanism while touch device driver is running. + * If this flag is not defined, the function for output log will be disabled. + * By default, this flag is enabled. + */ +#define CONFIG_ENABLE_TOUCH_DRIVER_DEBUG_LOG (0) // 1 : Enable, 0 : Disable + +/*=============================================================*/ +// EXTERN VARIABLE DECLARATION +/*=============================================================*/ + +extern u8 IS_TOUCH_DRIVER_DEBUG_LOG_ENABLED; + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR MACRO DEFINITION */ +/*--------------------------------------------------------------------------*/ + +#define DBG(fmt, arg...) do {\ + if (IS_TOUCH_DRIVER_DEBUG_LOG_ENABLED == 1)\ + printk(fmt, ##arg);\ + } while (0) + + +struct msg2138_ts_platform_data{ + int irq_gpio_number; + int reset_gpio_number; + const char *vdd_name; + int virtualkeys[12]; + int TP_MAX_X; + int TP_MAX_Y; +}; +extern struct i2c_client *g_I2cClient; +extern int MS_TS_MSG_IC_GPIO_RST; +extern int MS_TS_MSG_IC_GPIO_INT; +extern int TOUCH_SCREEN_X_MAX; +extern int TOUCH_SCREEN_Y_MAX; +/*--------------------------------------------------------------------------*/ +/* DATA TYPE DEFINITION */ +/*--------------------------------------------------------------------------*/ + +typedef enum +{ + EMEM_ALL = 0, + EMEM_MAIN, + EMEM_INFO +} EmemType_e; + +typedef enum +{ + ITO_TEST_MODE_OPEN_TEST = 1, + ITO_TEST_MODE_SHORT_TEST = 2, + ITO_TEST_MODE_WATERPROOF_TEST = 3 +} ItoTestMode_e; + +typedef enum +{ + ITO_TEST_OK = 0, + ITO_TEST_FAIL, + ITO_TEST_GET_TP_TYPE_ERROR, + ITO_TEST_UNDEFINED_ERROR, + ITO_TEST_UNDER_TESTING + +} ItoTestResult_e; + +typedef enum +{ + ADDRESS_MODE_8BIT = 0, + ADDRESS_MODE_16BIT = 1 +} AddressMode_e; + +typedef enum +{ + MUTUAL = 0, + SELF, + WATERPROOF, + MUTUAL_SINGLE_DRIVE +} ItoTestFwMode_e; + +/*--------------------------------------------------------------------------*/ +/* GLOBAL VARIABLE DEFINITION */ +/*--------------------------------------------------------------------------*/ + + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +extern u8 DrvCommonCalculateCheckSum(u8 *pMsg, u32 nLength); +extern u32 DrvCommonConvertCharToHexDigit(char *pCh, u32 nLength); +extern u32 DrvCommonCrcDoReflect(u32 nRef, s8 nCh); +extern u32 DrvCommonCrcGetValue(u32 nText, u32 nPrevCRC); +extern void DrvCommonCrcInitTable(void); + +#endif /* __MSTAR_DRV_COMMON_H__ */ diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_extern.h b/drivers/input/touchscreen/msg2233/mstar_drv_extern.h new file mode 100755 index 00000000..f184c144 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_extern.h @@ -0,0 +1,46 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_extern.h + * + * @brief This file defines the interface of touch screen + * + * + */ + +#ifndef __MSTAR_DRV_EXTERN_H__ +#define __MSTAR_DRV_EXTERN_H__ + + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +//#include "mstar_drv_common.h" + +/*=============================================================*/ +// EXTERN FUNCTION DECLARATION +/*=============================================================*/ + +//#ifdef CONFIG_ENABLE_CHARGER_DETECTION +extern void DrvFwCtrlChargerDetection(u8 nChargerStatus); +//#endif //CONFIG_ENABLE_CHARGER_DETECTION + + +#endif /* __MSTAR_DRV_EXTERN_H__ */ diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_hotknot.c b/drivers/input/touchscreen/msg2233/mstar_drv_hotknot.c new file mode 100644 index 00000000..e33da4ee --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_hotknot.c @@ -0,0 +1,848 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_hotknot.c + * + * @brief This file defines the hotknot functions + * + * + */ + +//////////////////////////////////////////////////////////// +/// Included Files +//////////////////////////////////////////////////////////// +#include +#include +#include +#include +#include "mstar_drv_hotknot.h" +#include "mstar_drv_utility_adaption.h" +#include "mstar_drv_hotknot_queue.h" +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) +#include "mstar_drv_mutual_fw_control.h" +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC + +#ifdef CONFIG_ENABLE_HOTKNOT +//////////////////////////////////////////////////////////// +/// Data Types +//////////////////////////////////////////////////////////// + + +/*=============================================================*/ +// GLOBAL VARIABLE DEFINITION +/*=============================================================*/ +u8 g_HotKnotState; +struct mutex g_QMutex; //queue mutex + + + +/*=============================================================*/ +// EXTERN VARIABLE DECLARATION +/*=============================================================*/ +extern struct mutex g_Mutex; +extern struct i2c_client *g_I2cClient; + +extern u32 SLAVE_I2C_ID_DBBUS; +extern u32 SLAVE_I2C_ID_DWI2C; + +extern u16 FIRMWARE_MODE_UNKNOWN_MODE; +extern u16 FIRMWARE_MODE_DEMO_MODE; +extern u16 FIRMWARE_MODE_DEBUG_MODE; +//extern u16 FIRMWARE_MODE_RAW_DATA_MODE; + +extern u16 g_FirmwareMode; + +extern u8 IS_FIRMWARE_DATA_LOG_ENABLED; + +extern u8 g_IsHotknotEnabled; + + +//////////////////////////////////////////////////////////// +/// LOCAL VARIABLE DEFINITION +//////////////////////////////////////////////////////////// +DrvCmd_t * _gDrvCmdStack; +unsigned long _gArgStack; +u8 * _gHKPacket; +u16 _gHKLength; + +static int _gHKFlag = 0; +static DECLARE_WAIT_QUEUE_HEAD(_gHKWaiter); + +#ifdef CONFIG_ENABLE_HOTKNOT_RCV_BLOCKING +static int _gHKRcvFlag = 0; +static int _gHKRcvWaitEnable = 0; +static DECLARE_WAIT_QUEUE_HEAD(_gHKRcvWaiter); +#endif + +static DrvCmd_t * _gCmdIn; +static u8 * _gSndData; +static u8 * _gRcvData; +static u16 * _gFwMode; + + +//////////////////////////////////////////////////////////// +/// Macro +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Function Prototypes +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Function Implementation +//////////////////////////////////////////////////////////// + +u8 _GetCheckSum(u8 *pBuf, int nLen) +{ + s32 nSum = 0; + int i; + for(i=0; i < nLen; i++) + { + nSum += pBuf[i]; + } + return (u8)(-nSum&0xFF); +} + + +void _DebugShowArray(u8 *pBuf, u16 nLen) +{ + int i; + + for(i=0; i < nLen; i++) + { + DBG("%02X ", pBuf[i]); + + if(i%16==15){ + DBG("\n"); + } + } + DBG("\n"); +} + + +int PushHotKnotData(u8 * pBuf, u16 nLength) +{ + int nQRet; + mutex_lock(&g_QMutex); + nQRet = PushQueue(pBuf, nLength); + mutex_unlock(&g_QMutex); + + return nQRet; +} + + +int PopHotKnotData(u8 * pBuf, u16 nLength) +{ + int nQRet; + mutex_lock(&g_QMutex); + nQRet = PopQueue(pBuf, nLength); + mutex_unlock(&g_QMutex); + + return nQRet; +} + + +int ShowHotKnotData(u8 * pBuf, u16 nLength) +{ + int nQRet; + mutex_lock(&g_QMutex); + nQRet = ShowQueue(pBuf, nLength); + mutex_unlock(&g_QMutex); + + return nQRet; +} + + +void _HotKnotRcvInterruptHandler(u8 *pPacket, u16 nLength) //receive hotknot packet in interrupt +{ + u16 nPacketDataLen = 0; + u16 nQPushLen = 0; + + DBG("*** %s() ***\n", __func__); + + if(g_FirmwareMode == FIRMWARE_MODE_DEMO_MODE) + { + nPacketDataLen = (((DemoHotKnotRcvRet_t*)pPacket)->nActualDataLen_H << 8) | (((DemoHotKnotRcvRet_t*)pPacket)->nActualDataLen_L & 0xFF); + nQPushLen = ((((DemoHotKnotRcvRet_t*)pPacket)->szData)[0]&0x7F) + 1; + if(nPacketDataLen >= nQPushLen) + { + if(PushHotKnotData(((DemoHotKnotRcvRet_t*)pPacket)->szData, nQPushLen)<0) + { + DBG("Error: HotKnot# Over push data into queue."); + } +#ifdef CONFIG_ENABLE_HOTKNOT_RCV_BLOCKING + else + { + if(_gHKRcvWaitEnable == 1) + { + _gHKRcvFlag = 1; + DBG("*** wait up receive_wait. ***\n"); + wake_up_interruptible(&_gHKRcvWaiter); + } + } +#endif //CONFIG_ENABLE_HOTKNOT_RCV_BLOCKING + } + else + { + DBG("Error: HotKnot# Receive data error."); + } + } + else if(IS_FIRMWARE_DATA_LOG_ENABLED && (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE)) + { + nPacketDataLen = (((DebugHotKnotRcvRet_t*)pPacket)->nActualDataLen_H << 8) | (((DebugHotKnotRcvRet_t*)pPacket)->nActualDataLen_L & 0xFF); + nQPushLen = ((((DemoHotKnotRcvRet_t*)pPacket)->szData)[0]&0x7F) + 1; + + if(nPacketDataLen >= nQPushLen) + { + if(PushHotKnotData(((DebugHotKnotRcvRet_t*)pPacket)->szData, nQPushLen)<0) + { + DBG("Error: HotKnot# Over push data into queue."); + } +#ifdef CONFIG_ENABLE_HOTKNOT_RCV_BLOCKING + else + { + if(_gHKRcvWaitEnable == 1) + { + _gHKRcvFlag = 1; + DBG("*** wait up receive_wait. ***\n"); + wake_up_interruptible(&_gHKRcvWaiter); + } + } +#endif //CONFIG_ENABLE_HOTKNOT_RCV_BLOCKING + } + else + { + DBG("Error: HotKnot# Receive data error."); + } + } +} + + +void ReportHotKnotCmd(u8 *pPacket, u16 nLength) +{ + //DBG("*** %s() ***\n", __func__); + + if(g_HotKnotState == HOTKNOT_TRANS_STATE && pPacket[0] == HOTKNOT_PACKET_ID && pPacket[3] == HOTKNOT_RECEIVE_PACKET_TYPE) + { + _HotKnotRcvInterruptHandler(pPacket, nLength); + } + else if(_gDrvCmdStack!=NULL && _gArgStack!=0) + { + _gHKPacket = pPacket; + _gHKLength = nLength; + + _gHKFlag = 1; + wake_up_interruptible(&_gHKWaiter); + } +} + + +void _HotKnotCmdInterruptHandler(u8 *pPacket, u16 nLength) +{ + //DBG("*** %s() ***\n", __func__); + + if(_gDrvCmdStack->nCmdId == HOTKNOT_CMD) + { + if(g_FirmwareMode == FIRMWARE_MODE_DEMO_MODE) + { + HotKnotCmd_t *pSnd = (HotKnotCmd_t*)_gDrvCmdStack->pSndData; + DemoHotKnotCmdRet_t *pRcv = (DemoHotKnotCmdRet_t*)pPacket; + if(pRcv->nHeader == DEMO_PD_PACKET_ID && pSnd->nInstruction == pRcv->nInstruction) + { + if(pRcv->nResult == RESULT_OK) + { + if(pRcv->nInstruction == READ_PAIR_STATE) + { + g_HotKnotState = HOTKNOT_BEFORE_TRANS_STATE; + ClearQueue(); + } + else if(pRcv->nInstruction == ENTER_TRANSFER_MODE) + { + g_HotKnotState = HOTKNOT_TRANS_STATE; + } + else if(pRcv->nInstruction == EXIT_TRANSFER_MODE) + { + g_HotKnotState = HOTKNOT_AFTER_TRANS_STATE; + } + else if(pRcv->nInstruction == ENTER_SLAVE_MODE) + { + g_HotKnotState = HOTKNOT_NOT_TRANS_STATE; + } + + if(pRcv->nInstruction == ENABLE_HOTKNOT || pRcv->nInstruction == ENTER_MASTER_MODE || pRcv->nInstruction == ENTER_SLAVE_MODE) + { + g_IsHotknotEnabled = 1; + DBG("*** g_IsHotknotEnabled = %d ***\n", g_IsHotknotEnabled); + } + else if(pRcv->nInstruction == DISABLE_HOTKNOT) + { + g_IsHotknotEnabled = 0; + DBG("*** g_IsHotknotEnabled = %d ***\n", g_IsHotknotEnabled); + } + } + + memcpy(_gDrvCmdStack->pRcvData, pPacket, nLength); + //_gDrvCmdStack->nRcvLen = nLength; + *(_gDrvCmdStack->pFwMode) = FIRMWARE_MODE_DEMO_MODE; + } + } + else if(IS_FIRMWARE_DATA_LOG_ENABLED && (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE)) + { + HotKnotCmd_t *pSnd = (HotKnotCmd_t*)_gDrvCmdStack->pSndData; + DebugHotKnotCmdRet_t *pRcv = (DebugHotKnotCmdRet_t*)pPacket; + if(pRcv->nHeader == HOTKNOT_PACKET_ID && pSnd->nInstruction == pRcv->nInstruction) + { + if(pRcv->nResult == RESULT_OK) + { + if(pRcv->nInstruction == READ_PAIR_STATE) + { + g_HotKnotState = HOTKNOT_BEFORE_TRANS_STATE; + ClearQueue(); + } + else if(pRcv->nInstruction == ENTER_TRANSFER_MODE) + { + g_HotKnotState = HOTKNOT_TRANS_STATE; + } + else if(pRcv->nInstruction == EXIT_TRANSFER_MODE) + { + g_HotKnotState = HOTKNOT_AFTER_TRANS_STATE; + } + else if(pRcv->nInstruction == ENTER_SLAVE_MODE) + { + g_HotKnotState = HOTKNOT_NOT_TRANS_STATE; + } + + if(pRcv->nInstruction == ENABLE_HOTKNOT || pRcv->nInstruction == ENTER_MASTER_MODE || pRcv->nInstruction == ENTER_SLAVE_MODE) + { + g_IsHotknotEnabled = 1; + DBG("*** g_IsHotknotEnabled = %d ***\n", g_IsHotknotEnabled); + } + else if(pRcv->nInstruction == DISABLE_HOTKNOT) + { + g_IsHotknotEnabled = 0; + DBG("*** g_IsHotknotEnabled = %d ***\n", g_IsHotknotEnabled); + } + } + + memcpy(_gDrvCmdStack->pRcvData, pPacket, nLength); + //_gDrvCmdStack->nRcvLen = nLength; + *(_gDrvCmdStack->pFwMode) = FIRMWARE_MODE_DEBUG_MODE; + } + } + } + else if(_gDrvCmdStack->nCmdId == HOTKNOT_SEND) + { + if(g_FirmwareMode == FIRMWARE_MODE_DEMO_MODE) + { + HotKnotSnd_t *pSnd = (HotKnotSnd_t*)_gDrvCmdStack->pSndData; + DemoHotKnotSndRet_t *pRcv = (DemoHotKnotSndRet_t*)pPacket; + if(pRcv->nHeader == HOTKNOT_PACKET_ID && pRcv->nType == HOTKNOT_PACKET_TYPE && pSnd->nInstruction == pRcv->nInstruction) + { + //kthread_stop(_gHotKnotTask); + memcpy(_gDrvCmdStack->pRcvData, pPacket, nLength); + //_gDrvCmdStack->nRcvLen = nLength; + *(_gDrvCmdStack->pFwMode) = FIRMWARE_MODE_DEMO_MODE; + } + } + else if(IS_FIRMWARE_DATA_LOG_ENABLED && (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE)) + { + HotKnotSnd_t *pSnd = (HotKnotSnd_t*)_gDrvCmdStack->pSndData; + DebugHotKnotSndRet_t *pRcv = (DebugHotKnotSndRet_t*)pPacket; + if(pRcv->nHeader == HOTKNOT_PACKET_ID && pRcv->nType == HOTKNOT_PACKET_TYPE && pSnd->nInstruction == pRcv->nInstruction) + { + //kthread_stop(_gHotKnotTask); + memcpy(_gDrvCmdStack->pRcvData, pPacket, nLength); + //_gDrvCmdStack->nRcvLen = nLength; + *(_gDrvCmdStack->pFwMode) = FIRMWARE_MODE_DEBUG_MODE; + } + } + } +} + + +void _HotKnotTimeOutHandler(void) +{ + DBG("*** %s() ***\n", __func__); + + //handle timeout case + if(_gDrvCmdStack->nCmdId == HOTKNOT_CMD) + { + if(g_FirmwareMode == FIRMWARE_MODE_DEMO_MODE) + { + HotKnotSnd_t *pSnd = (HotKnotSnd_t*)_gDrvCmdStack->pSndData; + DemoHotKnotCmdRet_t *pRcv = (DemoHotKnotCmdRet_t*)_gDrvCmdStack->pRcvData; + memset(pRcv, 0xFF, DEMO_PD_PACKET_RET_LEN); + pRcv->nHeader = DEMO_PD_PACKET_ID; + pRcv->nInstruction = pSnd->nInstruction; + pRcv->nResult = RESULT_TIMEOUT; + pRcv->nIdentify = DEMO_PD_PACKET_IDENTIFY; + pRcv->nCheckSum = _GetCheckSum((u8*)pRcv, DEMO_PD_PACKET_RET_LEN-1); + //_gDrvCmdStack->nRcvLen = DEMO_PD_PACKET_RET_LEN; + *(_gDrvCmdStack->pFwMode) = FIRMWARE_MODE_DEMO_MODE; + } + else if(IS_FIRMWARE_DATA_LOG_ENABLED && (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE)) + { + HotKnotSnd_t *pSnd = (HotKnotSnd_t*)_gDrvCmdStack->pSndData; + DebugHotKnotCmdRet_t *pRcv = (DebugHotKnotCmdRet_t*)_gDrvCmdStack->pRcvData; + memset(_gDrvCmdStack->pRcvData, 0xFF, MAX_PD_PACKET_RET_LEN); + pRcv->nHeader = HOTKNOT_PACKET_ID; + pRcv->nPacketLen_H = MAX_PD_PACKET_RET_LEN>>8; + pRcv->nPacketLen_L = MAX_PD_PACKET_RET_LEN&0xFF; + pRcv->nType = HOTKNOT_PACKET_TYPE; + pRcv->nInstruction = pSnd->nInstruction; + pRcv->nResult = RESULT_TIMEOUT; + _gDrvCmdStack->pRcvData[MAX_PD_PACKET_RET_LEN-1] = _GetCheckSum((u8*)pRcv, MAX_PD_PACKET_RET_LEN-1); + //_gDrvCmdStack->nRcvLen = MAX_PD_PACKET_RET_LEN; + *(_gDrvCmdStack->pFwMode) = FIRMWARE_MODE_DEBUG_MODE; + } + } + else if(_gDrvCmdStack->nCmdId == HOTKNOT_SEND) + { + if(g_FirmwareMode == FIRMWARE_MODE_DEMO_MODE) + { + HotKnotSnd_t *pSnd = (HotKnotSnd_t*)_gDrvCmdStack->pSndData; + DemoHotKnotSndRet_t *pRcv = (DemoHotKnotSndRet_t*)_gDrvCmdStack->pRcvData; + memset(_gDrvCmdStack->pRcvData, 0, DEMO_HOTKNOT_SEND_RET_LEN); + pRcv->nHeader = HOTKNOT_PACKET_ID; + pRcv->nPacketLen_H = DEMO_HOTKNOT_SEND_RET_LEN>>8; + pRcv->nPacketLen_L = DEMO_HOTKNOT_SEND_RET_LEN&0xFF; + pRcv->nType = HOTKNOT_PACKET_TYPE; + pRcv->nInstruction = pSnd->nInstruction; + pRcv->nResult = RESULT_TIMEOUT; + pRcv->nCheckSum = _GetCheckSum((u8*)pRcv, DEMO_HOTKNOT_SEND_RET_LEN-1); + //_gDrvCmdStack->nRcvLen = DEMO_HOTKNOT_SEND_RET_LEN; + *(_gDrvCmdStack->pFwMode) = FIRMWARE_MODE_DEMO_MODE; + } + else if(IS_FIRMWARE_DATA_LOG_ENABLED && (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE)) + { + HotKnotSnd_t *pSnd = (HotKnotSnd_t*)_gDrvCmdStack->pSndData; + DebugHotKnotSndRet_t *pRcv = (DebugHotKnotSndRet_t*)_gDrvCmdStack->pRcvData; + memset(_gDrvCmdStack->pRcvData, 0, DEBUG_HOTKNOT_SEND_RET_LEN); + pRcv->nHeader = HOTKNOT_PACKET_ID; + pRcv->nPacketLen_H = DEBUG_HOTKNOT_SEND_RET_LEN>>8; + pRcv->nPacketLen_L = DEBUG_HOTKNOT_SEND_RET_LEN&0xFF; + pRcv->nType = HOTKNOT_PACKET_TYPE; + pRcv->nInstruction = pSnd->nInstruction; + pRcv->nResult = RESULT_TIMEOUT; + pRcv->nCheckSum = _GetCheckSum((u8*)pRcv, DEBUG_HOTKNOT_SEND_RET_LEN-1); + //_gDrvCmdStack->nRcvLen = DEBUG_HOTKNOT_SEND_RET_LEN; + *(_gDrvCmdStack->pFwMode) = FIRMWARE_MODE_DEBUG_MODE; + } + } +} + + +int _DrvHandleHotKnotCmd(DrvCmd_t *pCmd, unsigned long nArg) +{ + long nRet; + + DBG("*** %s() ***\n", __func__); + + mutex_lock(&g_Mutex); +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + IicWriteData(SLAVE_I2C_ID_DWI2C, pCmd->pSndData, pCmd->nSndLen); //send HOTKNOT_CMD to fw + + mutex_unlock(&g_Mutex); + + + _gDrvCmdStack = pCmd; + _gArgStack = nArg; + + set_current_state(TASK_INTERRUPTIBLE); + nRet = wait_event_interruptible_timeout(_gHKWaiter, _gHKFlag != 0, pCmd->nTimeOut/1000 * HZ); + _gHKFlag = 0; + + if(nRet == 0) + { + _HotKnotTimeOutHandler(); + } + else + { + _HotKnotCmdInterruptHandler(_gHKPacket, _gHKLength); + } + + return 0; +} + + +void _DrvHandleHotKnotAuth(DrvCmd_t *pCmd) +{ + DBG("*** %s() ***\n", __func__); + + mutex_lock(&g_Mutex); +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + //for(i=0; i < pCmd->nSndLen; i++) + //{ + // DBG("%02X ", pCmd->pSndData[i]); + //} + + IicWriteData(SLAVE_I2C_ID_DWI2C, pCmd->pSndData, pCmd->nSndLen); + IicReadData(SLAVE_I2C_ID_DWI2C, pCmd->pRcvData, pCmd->nRcvLen); + + //for(i=0; i < pCmd->nRcvLen; i++) + //{ + // DBG("%02X ", pCmd->pRcvData[i]); + //} + + mutex_unlock(&g_Mutex); +} + + +#ifdef CONFIG_ENABLE_HOTKNOT_RCV_BLOCKING +void _DrvHandleHotKnotRcv(DrvCmd_t *pCmd) +{ + u8 nQueueData; + int nDataLen = -1; + long nRet; + DemoHotKnotLibRcvRet_t *pRcv = NULL; + + DBG("*** %s() ***\n", __func__); + + pCmd->nRcvLen = DEMO_HOTKNOT_RECEIVE_RET_LEN; + pRcv = (DemoHotKnotLibRcvRet_t*)pCmd->pRcvData; + memset(pRcv, 0, DEMO_HOTKNOT_RECEIVE_RET_LEN); + pRcv->nHeader = RECEIVE_DATA; + + if(ShowHotKnotData(&nQueueData, 1) <= 0) //check how many bytes to fetch + { + DBG("ShowHotKnotData: No hotknot data in first check.\n"); + } + else + { + nDataLen = PopHotKnotData(pRcv->szData, (nQueueData&0x7F) + 1); + } + + if(nDataLen > 0) + { + pRcv->nActualHotKnotLen_H = nDataLen>>8; + pRcv->nActualHotKnotLen_L = nDataLen&0xFF; + pRcv->nCheckSum = _GetCheckSum((u8*)pRcv, DEMO_HOTKNOT_RECEIVE_RET_LEN-1); + return; + } + + _gHKRcvWaitEnable = 1; //in wait status + DBG("*** _gHKRcvWaitEnable = 1, receive_timeout = %d***\n", pCmd->nTimeOut * HZ/1000); + set_current_state(TASK_INTERRUPTIBLE); + nRet = wait_event_interruptible_timeout(_gHKRcvWaiter, _gHKRcvFlag != 0, pCmd->nTimeOut * HZ/1000); + _gHKRcvWaitEnable = 0; //no wait + DBG("*** _gHKRcvWaitEnable = 0 ***\n"); + _gHKRcvFlag = 0; + + + if(nRet == 0) //timeout + { + DBG("*** receive_timeout ***\n"); + pRcv->nActualHotKnotLen_H = 0; + pRcv->nActualHotKnotLen_L = 0; + pRcv->nCheckSum = _GetCheckSum((u8*)pRcv, DEMO_HOTKNOT_RECEIVE_RET_LEN-1); + } + else + { + DBG("*** receive_get_data ***\n"); + int nDataLen = -1; + if(ShowHotKnotData(&nQueueData, 1) <= 0) //check how many bytes to fetch + { + DBG("ShowHotKnotData: No hotknot data\n"); + } + else + { + nDataLen = PopHotKnotData(pRcv->szData, (nQueueData&0x7F) + 1); + } + + if(nDataLen < 0) + { + pRcv->nActualHotKnotLen_H = 0; + pRcv->nActualHotKnotLen_L = 0; + } + else + { + pRcv->nActualHotKnotLen_H = nDataLen>>8; + pRcv->nActualHotKnotLen_L = nDataLen&0xFF; + } + pRcv->nCheckSum = _GetCheckSum((u8*)pRcv, DEMO_HOTKNOT_RECEIVE_RET_LEN-1); + } +} +#else +void _DrvHandleHotKnotRcv(DrvCmd_t *pCmd) +{ + u8 nQueueData; + int nDataLen = -1; + DemoHotKnotLibRcvRet_t *pRcv = NULL; + + DBG("*** %s() ***\n", __func__); + + pCmd->nRcvLen = DEMO_HOTKNOT_RECEIVE_RET_LEN; + pRcv = (DemoHotKnotLibRcvRet_t*)pCmd->pRcvData; + memset(pRcv, 0, DEMO_HOTKNOT_RECEIVE_RET_LEN); + pRcv->nHeader = RECEIVE_DATA; + + if(ShowHotKnotData(&nQueueData, 1) <= 0) //check how many bytes to fetch + { + DBG("ShowHotKnotData: No hotknot data\n"); + } + else + { + nDataLen = PopHotKnotData(pRcv->szData, (nQueueData&0x7F) + 1); + } + + if(nDataLen < 0) + { + pRcv->nActualHotKnotLen_H = 0; + pRcv->nActualHotKnotLen_L = 0; + } + else + { + pRcv->nActualHotKnotLen_H = nDataLen>>8; + pRcv->nActualHotKnotLen_L = nDataLen&0xFF; + } + pRcv->nCheckSum = _GetCheckSum((u8*)pRcv, DEMO_HOTKNOT_RECEIVE_RET_LEN-1); +} +#endif + + +void _DrvHandleHotKnotGetQueue(DrvCmd_t *pCmd) +{ + DemoHotKnotGetQRet_t *pRcv = NULL; + + DBG("*** %s() ***\n", __func__); + + pCmd->nRcvLen = HOTKNOT_QUEUE_SIZE+6; + pRcv = (DemoHotKnotGetQRet_t*)pCmd->pRcvData; + memset(pRcv, 0, HOTKNOT_QUEUE_SIZE+6); + pRcv->nHeader = GET_QUEUE; + ShowAllQueue(pRcv->szData, &(pRcv->nFront), &(pRcv->nRear)); + pRcv->nCheckSum = _GetCheckSum((u8*)pRcv, HOTKNOT_QUEUE_SIZE+5); +} + + +void _DrvHandleHotKnotSndTest(DrvCmd_t *pCmd) +{ + u16 nQPushLen = 0; + HotKnotSnd_t *pSnd = NULL; + + DBG("*** %s() ***\n", __func__); + + pSnd = (HotKnotSnd_t*)pCmd->pSndData; + nQPushLen = (pSnd->nDataLen_H << 8) | (pSnd->nDataLen_L & 0xFF); + + DBG("nQPushLen = %d\n", nQPushLen); + if(PushHotKnotData(pSnd->szData, nQPushLen)<0) + { + DBG("Error: HotKnot# Over push data into queue."); + } + + //u8 * pShowArray = (u8*)kmalloc(sizeof(u8)* 256, GFP_KERNEL ); + //ShowHotKnotData(pShowArray, 256); //check queue data + //_DebugShowArray(pShowArray, 256); + //kfree(pShowArray); +} + + +/* +static DrvCmd_t* _TransCmdFromUser( unsigned long nArg ) +{ + long nRet; + DrvCmd_t tCmdIn; + DrvCmd_t *pTransCmd = (DrvCmd_t*)kmalloc( sizeof( DrvCmd_t ), GFP_KERNEL ); + + nRet = copy_from_user( &tCmdIn, (void*)nArg, sizeof( DrvCmd_t ) ); + pTransCmd->nCmdId = tCmdIn.nCmdId; + + pTransCmd->nSndLen = tCmdIn.nSndLen; + pTransCmd->pSndData = (u8*)kmalloc(sizeof(u8)*pTransCmd->nSndLen, GFP_KERNEL ); + nRet = copy_from_user( pTransCmd->pSndData, tCmdIn.pSndData, pTransCmd->nSndLen ); + + pTransCmd->nRcvLen = tCmdIn.nRcvLen; + pTransCmd->pRcvData = (u8*)kmalloc(sizeof(u8)*pTransCmd->nRcvLen, GFP_KERNEL ); + + pTransCmd->pFwMode= (u16*)kmalloc(sizeof(u16), GFP_KERNEL ); + pTransCmd->nTimeOut = tCmdIn.nTimeOut; + + return pTransCmd; +} + + +static void _TransCmdToUser( DrvCmd_t *pTransCmd, unsigned long nArg ) +{ + DrvCmd_t tCmdOut; + long nRet; + + nRet = copy_from_user( &tCmdOut, (void*)nArg, sizeof( DrvCmd_t ) ); + nRet = copy_to_user( tCmdOut.pRcvData, pTransCmd->pRcvData, tCmdOut.nRcvLen); + nRet = copy_to_user( tCmdOut.pFwMode, pTransCmd->pFwMode, sizeof(u16)); + + if ( pTransCmd ) + { + kfree( pTransCmd->pSndData ); + kfree( pTransCmd->pRcvData ); + kfree( pTransCmd->pFwMode ); + kfree( pTransCmd ); + } +} +*/ + + +void _ClearHotKnotMem(void) +{ + DBG("*** %s() ***\n", __func__); + + memset(_gCmdIn, 0, sizeof( DrvCmd_t )); + memset(_gSndData, 0, DEBUG_HOTKNOT_SEND_RET_LEN); + memset(_gRcvData, 0, DEBUG_HOTKNOT_RECEIVE_RET_LEN); + memset(_gFwMode, 0, sizeof(u16)); +} + + +static DrvCmd_t* _TransCmdFromUser( unsigned long nArg ) +{ + long nRet; + DrvCmd_t tCmdIn; + DrvCmd_t *pTransCmd; + + _ClearHotKnotMem(); + pTransCmd = (DrvCmd_t *)_gCmdIn; + nRet = copy_from_user( &tCmdIn, (void*)nArg, sizeof( DrvCmd_t ) ); + pTransCmd->nCmdId = tCmdIn.nCmdId; + + pTransCmd->nSndLen = tCmdIn.nSndLen; + pTransCmd->pSndData = _gSndData; + nRet = copy_from_user( pTransCmd->pSndData, tCmdIn.pSndData, pTransCmd->nSndLen ); + + pTransCmd->nRcvLen = tCmdIn.nRcvLen; + pTransCmd->pRcvData = _gRcvData; + + pTransCmd->pFwMode= _gFwMode; + pTransCmd->nTimeOut = tCmdIn.nTimeOut; + + return pTransCmd; +} + + +static void _TransCmdToUser( DrvCmd_t *pTransCmd, unsigned long nArg ) +{ + DrvCmd_t tCmdOut; + long nRet; + + nRet = copy_from_user( &tCmdOut, (void*)nArg, sizeof( DrvCmd_t ) ); + nRet = copy_to_user( tCmdOut.pRcvData, pTransCmd->pRcvData, tCmdOut.nRcvLen); + nRet = copy_to_user( tCmdOut.pFwMode, pTransCmd->pFwMode, sizeof(u16)); +} + + +long HotKnotIoctl( struct file *pFile, unsigned int nCmd, unsigned long nArg ) +{ + long nRet = 0; + + switch ( nCmd ) + { + case HOTKNOT_IOCTL_RUN_CMD: + { + DrvCmd_t *pTransCmd; + + DBG("*** %s() ***\n", __func__); + + pTransCmd = _TransCmdFromUser( nArg ); + + if(pTransCmd->nCmdId == HOTKNOT_CMD || + (pTransCmd->nCmdId == HOTKNOT_SEND && pTransCmd->pSndData[1] == SEND_DATA)) + { + _DrvHandleHotKnotCmd(pTransCmd, nArg); + _TransCmdToUser(_gDrvCmdStack, _gArgStack); + _gDrvCmdStack = NULL; + _gArgStack = 0; + } + else if(pTransCmd->nCmdId == HOTKNOT_AUTH || + (pTransCmd->nCmdId == HOTKNOT_SEND && pTransCmd->pSndData[1] == AUTH_WRITECIPHER)) + { + _DrvHandleHotKnotAuth(pTransCmd); + _TransCmdToUser(pTransCmd, nArg); + } + else if(pTransCmd->nCmdId == HOTKNOT_RECEIVE && pTransCmd->pSndData[1] == RECEIVE_DATA) + { + _DrvHandleHotKnotRcv(pTransCmd); + _TransCmdToUser(pTransCmd, nArg); + } + else if(pTransCmd->nCmdId == HOTKNOT_RECEIVE && pTransCmd->pSndData[1] == GET_QUEUE) + { + _DrvHandleHotKnotGetQueue(pTransCmd); + _TransCmdToUser(pTransCmd, nArg); + } + else if(pTransCmd->nCmdId == HOTKNOT_SEND && pTransCmd->pSndData[1] == SEND_DATA_TEST) + { + _DrvHandleHotKnotSndTest(pTransCmd); + } + } + break; + + case HOTKNOT_IOCTL_QUERY_VENDOR: + { + char szVendorName[30] = "msg28xx"; + + DBG("*** Query vendor name! ***\n"); + //_DebugShowArray(szVendorName,30); + if(copy_to_user((void*)nArg, szVendorName, 30)) + { + DBG("*** Query vendor name failed! ***\n"); + } + } + break; + + default: + nRet = -EINVAL; + break; + } + + return nRet; +} + + +void CreateHotKnotMem() +{ + DBG("*** %s() ***\n", __func__); + + _gCmdIn = (DrvCmd_t*)kmalloc( sizeof( DrvCmd_t ), GFP_KERNEL ); + _gSndData = (u8*)kmalloc(DEBUG_HOTKNOT_SEND_RET_LEN, GFP_KERNEL ); + _gRcvData = (u8*)kmalloc(DEBUG_HOTKNOT_RECEIVE_RET_LEN, GFP_KERNEL ); + _gFwMode= (u16*)kmalloc(sizeof(u16), GFP_KERNEL ); +} + + +void DeleteHotKnotMem() +{ + DBG("*** %s() ***\n", __func__); + + kfree(_gCmdIn); + kfree(_gSndData); + kfree(_gRcvData); + kfree(_gFwMode); +} + +#endif //CONFIG_ENABLE_HOTKNOT) diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_hotknot.h b/drivers/input/touchscreen/msg2233/mstar_drv_hotknot.h new file mode 100644 index 00000000..1c6da72f --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_hotknot.h @@ -0,0 +1,332 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_hotknot.h + * + * @brief This file defines the hotknot functions + * + * + */ + +#ifndef __MSTAR_DRV_HOTKNOT_H__ +#define __MSTAR_DRV_HOTKNOT_H__ + + +//////////////////////////////////////////////////////////// +/// Included Files +//////////////////////////////////////////////////////////// +#include "mstar_drv_common.h" +#include "mstar_drv_hotknot_queue.h" + + +#ifdef CONFIG_ENABLE_HOTKNOT +//////////////////////////////////////////////////////////// +/// Data Types +//////////////////////////////////////////////////////////// +//typedef int bool; + +//#define false 0 +//#define true !false + + +//////////////////////////////////////////////////////////// +/// Function Prototype +//////////////////////////////////////////////////////////// +extern void CreateHotKnotMem(void); +extern void DeleteHotKnotMem(void); + + +//////////////////////////////////////////////////////////// +/// Data Types +//////////////////////////////////////////////////////////// +typedef struct +{ + u8 nCmdId; + u8 *pSndData; //send data to fw + u16 nSndLen; + u8 *pRcvData; //receive data from fw + u16 nRcvLen; + u16 *pFwMode; + s32 nTimeOut; +} DrvCmd_t; + + +//hotknot cmd +typedef struct +{ + u8 nHeader; + u8 nInstruction; + u8 szReserved[2]; +} HotKnotCmd_t; + +typedef struct +{ + u8 nHeader; + u8 nInstruction; + u8 nResult; + u8 szReserved[38]; + u8 nIdentify; + u8 nCheckSum; +} DemoHotKnotCmdRet_t; + +typedef struct +{ + u8 nHeader; + u8 nPacketLen_H; + u8 nPacketLen_L; + u8 nType; + u8 nInstruction; + u8 nResult; + //u8 szReserved[40]; //unknown size + //u8 nCheckSum; +} DebugHotKnotCmdRet_t; + + +//hotknot auth +typedef struct +{ + u8 nHeader; + u8 nInstruction; + u8 szReserved[2]; +} HotKnotAuth_t; + + +//hotknot writecipher +typedef struct +{ + u8 nHeader; + u8 nInstruction; + u16 nSMBusAdr; + u8 szData[16]; + u8 nCheckSum; +} HotKnotWriteCipher_t; +//return 0 if success, return 1 if fail + + +//hotknot send +typedef struct +{ + u8 nHeader; + u8 nInstruction; + u16 nSMBusAdr; + u8 szData[129]; + u8 nDataLen_H; + u8 nDataLen_L; + u8 nCheckSum; +} HotKnotSnd_t; + +typedef struct +{ + u8 nHeader; + u8 nPacketLen_H; + u8 nPacketLen_L; + u8 nType; + u8 nInstruction; + u8 nResult; + u8 szReserved[143]; + u8 nCheckSum; +} DemoHotKnotSndRet_t; + +typedef struct +{ + u8 nHeader; + u8 nPacketLen_H; + u8 nPacketLen_L; + u8 nType; + u8 nInstruction; + u8 nResult; + u8 szReserved[143]; + u8 szDebug[100]; + u8 nCheckSum; +} DebugHotKnotSndRet_t; + + +//hotknot receive +typedef struct +{ + u8 nHeader; + u8 nInstruction; + u8 nRequireDataLen_H; + u8 nRequireDataLen_L; +} HotKnotRcv_t; + +typedef struct +{ + u8 nHeader; + u8 nActualHotKnotLen_H; + u8 nActualHotKnotLen_L; + u8 szData[146]; + u8 nCheckSum; +} DemoHotKnotLibRcvRet_t; + +typedef struct +{ + u8 nHeader; + u8 nPacketLen_H; + u8 nPacketLen_L; + u8 nType; + u8 szData[143]; + u8 nActualDataLen_H; + u8 nActualDataLen_L; + u8 nCheckSum; +} DemoHotKnotRcvRet_t; + +typedef struct +{ + u8 nHeader; + u8 nPacketLen_H; + u8 nPacketLen_L; + u8 nType; + u8 szData[143]; + u8 nActualDataLen_H; + u8 nActualDataLen_L; + u8 szDebug[100]; + u8 nCheckSum; +} DebugHotKnotRcvRet_t; + + +//hotknot get queue data +typedef struct +{ + u8 nHeader; + u8 nInstruction; + u8 nRequireDataLen_H; + u8 nRequireDataLen_L; +} HotKnotGetQ_t; + +typedef struct +{ + u8 nHeader; + u16 nFront; + u16 nRear; + u8 szData[HOTKNOT_QUEUE_SIZE]; + u8 nCheckSum; +} DemoHotKnotGetQRet_t; + + +//////////////////////////////////////////////////////////// +/// Variables +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Macro +//////////////////////////////////////////////////////////// +#define HOTKNOT_IOCTL_BASE 99 +#define HOTKNOT_IOCTL_RUN_CMD _IOWR(HOTKNOT_IOCTL_BASE, 0, long) +#define HOTKNOT_IOCTL_QUERY_VENDOR _IOR('G', 28, char[30]) + + +#define HOTKNOT_CMD 0x60 +#define HOTKNOT_AUTH 0x61 +#define HOTKNOT_SEND 0x62 +#define HOTKNOT_RECEIVE 0x63 + + +//HotKnot CMD +#define ENABLE_HOTKNOT 0xA0 +#define DISABLE_HOTKNOT 0xA1 +#define ENTER_MASTER_MODE 0xA2 +#define EXIT_MASTER_MODE 0xA3 +#define ENTER_SLAVE_MODE 0xA4 +#define EXIT_SLAVE_MODE 0xA5 +#define READ_PAIR_STATE 0xA6 +#define EXIT_READ_PAIR_STATE 0xA7 +#define ENTER_TRANSFER_MODE 0xA8 +#define EXIT_TRANSFER_MODE 0xA9 +#define READ_DEPART_STATE 0xAA + +//HotKnot AUTH +#define AUTH_INIT 0xB0 +#define AUTH_GETKEYINDEX 0xB1 +#define AUTH_READSCRAMBLECIPHER 0xB2 + +//Hotknot QueryVersion +#define QUERY_VERSION 0xB3 + +//HotKnot Send +#define AUTH_WRITECIPHER 0xC0 +#define SEND_DATA 0xC1 +#define ADAPTIVEMOD_BEGIN 0xC3 //notice fw to begin adaptive modulation + +//HotKnot Receive +#define RECEIVE_DATA 0xD0 + +//HotKnot Send Test +#define SEND_DATA_TEST 0xC2 + +//HotKnot Get Queue +#define GET_QUEUE 0xD1 //decide the size to get queue data + +// +#define DEMO_PD_PACKET_ID 0x5A //only for PD state in demo mode +#define DEMO_PD_PACKET_IDENTIFY 0xC0 //only for PD state in demo mode +#define HOTKNOT_PACKET_ID 0xA7 +#define HOTKNOT_PACKET_TYPE 0x41 //for command and send packet +#define HOTKNOT_RECEIVE_PACKET_TYPE 0x40 + +//send length +#define HOTKNOT_CMD_LEN 4 +#define HOTKNOT_AUTH_LEN 4 +#define HOTKNOT_WRITECIPHER_LEN 21 +#define HOTKNOT_SEND_LEN 136 +#define HOTKNOT_RECEIVE_LEN 4 //TBD +#define HOTKNOT_MAX_DATA_LEN 128 +#define HOTKNOT_GETQUEUE_LEN 4 + +//receive length +#define KEYINDEX_LEN 4 +#define QUERYVERSION_LEN 4 +#define CIPHER_LEN 16 +#define DEMO_PD_PACKET_RET_LEN 43 +#define MAX_PD_PACKET_RET_LEN 100 //TBD +#define DEMO_HOTKNOT_SEND_RET_LEN 150 +#define DEMO_HOTKNOT_RECEIVE_RET_LEN 150 +#define DEBUG_HOTKNOT_SEND_RET_LEN 250 +#define DEBUG_HOTKNOT_RECEIVE_RET_LEN 250 + +//result +#define RESULT_OK 0 +#define RESULT_FAIL 1 +#define RESULT_TIMEOUT 2 + +//hotknot mode +#define HOTKNOT_BEFORE_TRANS_STATE 0x91 //read_pair_state success, fw send 43 bytes to driver +#define HOTKNOT_TRANS_STATE 0x92 //enter_transfer_mode success, fw send 150 bytes to driver +#define HOTKNOT_AFTER_TRANS_STATE 0x93 //exit_transfer_mode, fw send 43 bytes to driver +#define HOTKNOT_NOT_TRANS_STATE 0x94 //enter_slave_mode success, fw send 43 bytes to driver + + + +//////////////////////////////////////////////////////////// +/// COMPILE OPTION DEFINITION +//////////////////////////////////////////////////////////// +//#define CONFIG_ENABLE_HOTKNOT_RCV_BLOCKING + + + +//////////////////////////////////////////////////////////// +/// Function Prototypes +//////////////////////////////////////////////////////////// +extern void ReportHotKnotCmd(u8 *pPacket, u16 nLength); +extern long HotKnotIoctl( struct file *pFile, unsigned int nCmd, unsigned long nArg ); + + +#endif //CONFIG_ENABLE_HOTKNOT +#endif // __MSTAR_DRV_HOTKNOT_H__ diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_hotknot_queue.c b/drivers/input/touchscreen/msg2233/mstar_drv_hotknot_queue.c new file mode 100644 index 00000000..9dc386de --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_hotknot_queue.c @@ -0,0 +1,281 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_hotknot_queue.c + * + * @brief This file defines the queue structure for hotknot + * + * + */ + +//////////////////////////////////////////////////////////// +/// Included Files +//////////////////////////////////////////////////////////// +#include "mstar_drv_hotknot_queue.h" + + +#ifdef CONFIG_ENABLE_HOTKNOT +//////////////////////////////////////////////////////////// +/// Data Types +//////////////////////////////////////////////////////////// + + + +//////////////////////////////////////////////////////////// +/// LOCAL VARIABLE DEFINITION +//////////////////////////////////////////////////////////// +static u8 * _gQueue; +static u16 _gQFront=0; +static u16 _gQRear; +static u16 _gQSize = HOTKNOT_QUEUE_SIZE; + + +//////////////////////////////////////////////////////////// +/// Macro +//////////////////////////////////////////////////////////// +#define RESULT_OK 0 +#define RESULT_OVERPUSH -1 +#define RESULT_OVERPOP -2 + + +//////////////////////////////////////////////////////////// +/// Function Prototypes +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Function Implementation +//////////////////////////////////////////////////////////// + +void _DebugShowQueueArray(u8 *pBuf, u16 nLen) +{ + int i; + + for(i=0; i < nLen; i++) + { + DBG("%02X ", pBuf[i]); + + if(i%16==15){ + DBG("\n"); + } + } + DBG("\n"); +} + + +void CreateQueue() +{ + DBG("*** %s() ***\n", __func__); + + _gQueue = (u8*)kmalloc(sizeof(u8)*_gQSize, GFP_KERNEL ); + _gQFront = _gQRear = 0; +} + + +void ClearQueue() +{ + DBG("*** %s() ***\n", __func__); + + _gQFront = _gQRear = 0; +} + + +int PushQueue(u8 * pBuf, u16 nLength) +{ + u16 nPushLen = nLength; + + DBG("*** %s() ***\n", __func__); + + //DBG("*** Show data to PushQueue() ***\n", __func__); + //_DebugShowQueueArray(pBuf, nLength); + //DBG("*** Show Queue data before PushQueue() ***\n", __func__); + //_DebugShowQueueArray(_gQueue, _gQSize); + + DBG("*** Before PushQueue: _gQFront = %d, _gQRear = %d ***\n", _gQFront, _gQRear); + + if(_gQRear >= _gQFront) + { + if(nPushLen > 0 && _gQFront == 0 && _gQRear == _gQSize-1) //full + { + DBG("*** PushQueue: RESULT_OVERPUSH ***\n"); + return RESULT_OVERPUSH; + } + + if(nPushLen > _gQSize-1 - (_gQRear - _gQFront)) //over push + { + DBG("*** PushQueue: RESULT_OVERPUSH ***\n"); + return RESULT_OVERPUSH; + } + + if(_gQRear+nPushLen <= _gQSize-1) + { + memcpy(&_gQueue[_gQRear+1], pBuf, nPushLen); + _gQRear = _gQRear + nPushLen; + } + else + { + u16 nQTmp = (_gQSize-1) -_gQRear; + memcpy(&_gQueue[_gQRear+1], pBuf, nQTmp); //push data from rear to end + memcpy(_gQueue, &pBuf[nQTmp], nPushLen - nQTmp); //push data lest + _gQRear = nPushLen - nQTmp - 1; + } + } + else //_gQRear < _gQFront + { + if(nPushLen > 0 && _gQFront == _gQRear+1) //full + { + DBG("*** PushQueue: RESULT_OVERPUSH ***\n"); + return RESULT_OVERPUSH; + } + + if(nPushLen > (_gQFront - _gQRear) - 1) //over push + { + DBG("*** PushQueue: RESULT_OVERPUSH ***\n"); + return RESULT_OVERPUSH; + } + + memcpy(&_gQueue[_gQRear+1], pBuf, nPushLen); + _gQRear = _gQRear + nPushLen; + } + + //DBG("*** Show Queue data after PushQueue() ***\n", __func__); + //_DebugShowQueueArray(_gQueue, _gQSize); + + DBG("*** After PushQueue: _gQFront = %d, _gQRear = %d ***\n", _gQFront, _gQRear); + return nPushLen; +} + + +int PopQueue(u8 * pBuf, u16 nLength) +{ + u16 nPopLen = nLength; + + DBG("*** %s() ***\n", __func__); + + DBG("*** Before PopQueue: _gQFront = %d, _gQRear = %d ***\n", _gQFront, _gQRear); + + if(_gQRear >= _gQFront) + { + if(nPopLen > 0 && _gQRear == _gQFront) //empty + { + DBG("*** PushQueue: RESULT_OVERPOP ***\n"); + return RESULT_OVERPOP; + } + + if(nPopLen > _gQRear - _gQFront) //over pop + { + DBG("*** PushQueue: RESULT_OVERPOP ***\n"); + return RESULT_OVERPOP; + } + + memcpy(pBuf, &_gQueue[_gQFront+1], nPopLen); + _gQFront = _gQFront + nPopLen; + } + else //_gQRear < _gQFront + { + if(nPopLen > _gQSize - (_gQFront - _gQRear)) //over pop + { + DBG("*** PushQueue: RESULT_OVERPOP ***\n"); + return RESULT_OVERPOP; + } + + if(_gQFront + nPopLen <= _gQSize-1) + { + memcpy(pBuf, &_gQueue[_gQFront+1], nPopLen); + _gQFront = _gQFront + nPopLen; + } + else + { + u16 nQTmp = (_gQSize-1) -_gQFront; + memcpy(pBuf, &_gQueue[_gQFront+1], nQTmp); //pop data from rear to end + memcpy(&pBuf[nQTmp], _gQueue, nPopLen - nQTmp); //pop data lest + _gQFront = nPopLen - nQTmp - 1; + } + } + + DBG("*** After PopQueue: _gQFront = %d, _gQRear = %d ***\n", _gQFront, _gQRear); + return nPopLen; +} + + +int ShowQueue(u8 * pBuf, u16 nLength) //just show data, not fetch data +{ + u16 nShowLen = nLength; + + DBG("*** %s() ***\n", __func__); + + if(_gQRear >= _gQFront) + { + if(nShowLen > 0 && _gQRear == _gQFront) //empty + { + return RESULT_OVERPOP; + } + + if(nShowLen > _gQRear - _gQFront) //over pop + { + return RESULT_OVERPOP; + } + + memcpy(pBuf, &_gQueue[_gQFront+1], nShowLen); + //_gQFront = _gQFront + nPopLen; + } + else //_gQRear < _gQFront + { + if(nShowLen > _gQSize - (_gQFront - _gQRear)) //over pop + { + return RESULT_OVERPOP; + } + + if(_gQFront + nShowLen <= _gQSize-1) + { + memcpy(pBuf, &_gQueue[_gQFront+1], nShowLen); + //_gQFront = _gQFront + nPopLen; + } + else + { + u16 nQTmp = (_gQSize-1) -_gQFront; + memcpy(pBuf, &_gQueue[_gQFront+1], nQTmp); //pop data from rear to end + memcpy(&pBuf[nQTmp], _gQueue, nShowLen - nQTmp); //pop data lest + //_gQFront = nPopLen - nQTmp - 1; + } + } + + return nShowLen; +} + + +void ShowAllQueue(u8 * pBuf, u16 * pFront, u16 * pRear) //just show data, not fetch data +{ + DBG("*** %s() ***\n", __func__); + + memcpy(pBuf, _gQueue, HOTKNOT_QUEUE_SIZE); //pop data from rear to end + *pFront = _gQFront; + *pRear = _gQRear; +} + + +void DeleteQueue() +{ + DBG("*** %s() ***\n", __func__); + + _gQFront = _gQRear = 0; + kfree(_gQueue); +} + +#endif //CONFIG_ENABLE_HOTKNOT diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_hotknot_queue.h b/drivers/input/touchscreen/msg2233/mstar_drv_hotknot_queue.h new file mode 100644 index 00000000..edc4f8a4 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_hotknot_queue.h @@ -0,0 +1,63 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_hotknot_queue.h + * + * @brief This file defines the queue structure for hotknot + * + * + */ + +#ifndef __MSTAR_DRV_HOTKNOT_QUEUE_H__ +#define __MSTAR_DRV_HOTKNOT_QUEUE_H__ + + +//////////////////////////////////////////////////////////// +/// Included Files +//////////////////////////////////////////////////////////// + +#include "mstar_drv_common.h" + + +#ifdef CONFIG_ENABLE_HOTKNOT +//////////////////////////////////////////////////////////// +/// Constant +//////////////////////////////////////////////////////////// +#define HOTKNOT_QUEUE_SIZE 1024 + + +//////////////////////////////////////////////////////////// +/// Variables +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Function Prototype +//////////////////////////////////////////////////////////// +extern void CreateQueue(void); +extern void ClearQueue(void); +extern int PushQueue(u8 * pBuf, u16 nLength); +extern int PopQueue(u8 * pBuf, u16 nLength); +extern int ShowQueue(u8 * pBuf, u16 nLength); //just show data, not fetch data +extern void ShowAllQueue(u8 * pBuf, u16 * pFront, u16 * pRear); //just show data, not fetch data +extern void DeleteQueue(void); + + +#endif //CONFIG_ENABLE_HOTKNOT +#endif // __MSTAR_DRV_HOTKNOT_QUEUE_H__ diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_ic_fw_porting_layer.c b/drivers/input/touchscreen/msg2233/mstar_drv_ic_fw_porting_layer.c new file mode 100644 index 00000000..9a5e4af9 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_ic_fw_porting_layer.c @@ -0,0 +1,313 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_ic_fw_porting_layer.c + * + * @brief This file defines the interface of touch screen + * + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_ic_fw_porting_layer.h" + + +/*=============================================================*/ +// EXTERN VARIABLE DECLARATION +/*=============================================================*/ + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +extern u32 g_GestureWakeupMode[2]; +extern u8 g_GestureWakeupFlag; +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +void DrvIcFwLyrVariableInitialize(void) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlVariableInitialize(); +} + +void DrvIcFwLyrOptimizeCurrentConsumption(void) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlOptimizeCurrentConsumption(); +} + +u8 DrvIcFwLyrGetChipType(void) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvFwCtrlGetChipType(); +} + +void DrvIcFwLyrGetCustomerFirmwareVersion(u16 *pMajor, u16 *pMinor, u8 **ppVersion) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlGetCustomerFirmwareVersion(pMajor, pMinor, ppVersion); +} + +void DrvIcFwLyrGetPlatformFirmwareVersion(u8 **ppVersion) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlGetPlatformFirmwareVersion(ppVersion); +} + +s32 DrvIcFwLyrUpdateFirmware(u8 szFwData[][1024], EmemType_e eEmemType) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvFwCtrlUpdateFirmware(szFwData, eEmemType); +} + +s32 DrvIcFwLyrUpdateFirmwareBySdCard(const char *pFilePath) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvFwCtrlUpdateFirmwareBySdCard(pFilePath); +} + +u32 DrvIcFwLyrIsRegisterFingerTouchInterruptHandler(void) +{ + DBG("*** %s() ***\n", __func__); + + return 1; // Indicate that it is necessary to register interrupt handler with GPIO INT pin when firmware is running on IC +} + +void DrvIcFwLyrHandleFingerTouch(u8 *pPacket, u16 nLength) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlHandleFingerTouch(); +} + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + +void DrvIcFwLyrOpenGestureWakeup(u32 *pWakeupMode) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlOpenGestureWakeup(pWakeupMode); +} + +void DrvIcFwLyrCloseGestureWakeup(void) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlCloseGestureWakeup(); +} + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +void DrvIcFwLyrOpenGestureDebugMode(u8 nGestureFlag) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlOpenGestureDebugMode(nGestureFlag); +} + +void DrvIcFwLyrCloseGestureDebugMode(void) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlCloseGestureDebugMode(); +} +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +u32 DrvIcFwLyrReadDQMemValue(u16 nAddr) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvFwCtrlReadDQMemValue(nAddr); +} + +void DrvIcFwLyrWriteDQMemValue(u16 nAddr, u32 nData) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlWriteDQMemValue(nAddr, nData); +} + +//------------------------------------------------------------------------------// + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) // use for MSG26XXM only +u16 DrvIcFwLyrGetFirmwareMode(void) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvFwCtrlGetFirmwareMode(); +} +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC + +u16 DrvIcFwLyrChangeFirmwareMode(u16 nMode) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvFwCtrlChangeFirmwareMode(nMode); +} + +void DrvIcFwLyrGetFirmwareInfo(FirmwareInfo_t *pInfo) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlGetFirmwareInfo(pInfo); +} + +void DrvIcFwLyrRestoreFirmwareModeToLogDataMode(void) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlRestoreFirmwareModeToLogDataMode(); +} + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +void DrvIcFwLyrCheckFirmwareUpdateBySwId(void) +{ +// DBG("*** %s() ***\n", __func__); + + DrvFwCtrlCheckFirmwareUpdateBySwId(); +} +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_ITO_MP_TEST + +void DrvIcFwLyrCreateMpTestWorkQueue(void) +{ +// DBG("*** %s() ***\n", __func__); + + DrvMpTestCreateMpTestWorkQueue(); +} + +void DrvIcFwLyrScheduleMpTestWork(ItoTestMode_e eItoTestMode) +{ +// DBG("*** %s() ***\n", __func__); + + DrvMpTestScheduleMpTestWork(eItoTestMode); +} + +s32 DrvIcFwLyrGetMpTestResult(void) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvMpTestGetTestResult(); +} + +void DrvIcFwLyrGetMpTestFailChannel(ItoTestMode_e eItoTestMode, u8 *pFailChannel, u32 *pFailChannelCount) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvMpTestGetTestFailChannel(eItoTestMode, pFailChannel, pFailChannelCount); +} + +void DrvIcFwLyrGetMpTestDataLog(ItoTestMode_e eItoTestMode, u8 *pDataLog, u32 *pLength) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvMpTestGetTestDataLog(eItoTestMode, pDataLog, pLength); +} + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) +void DrvIcFwLyrGetMpTestScope(TestScopeInfo_t *pInfo) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvMpTestGetTestScope(pInfo); +} +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC + +#endif //CONFIG_ENABLE_ITO_MP_TEST + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) +void DrvIcFwLyrGetTouchPacketAddress(u16 *pDataAddress, u16 *pFlagAddress) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvFwCtrlGetTouchPacketAddress(pDataAddress, pFlagAddress); +} +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC + +#endif //CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION + +s32 DrvIcFwLyrEnableProximity(void) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvFwCtrlEnableProximity(); +} + +s32 DrvIcFwLyrDisableProximity(void) +{ +// DBG("*** %s() ***\n", __func__); + + return DrvFwCtrlDisableProximity(); +} + +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_GLOVE_MODE +void DrvIcFwLyrOpenGloveMode(void) +{ +// DBG("*** %s() ***\n", __func__); + + DrvIcFwCtrlOpenGloveMode(); +} + +void DrvIcFwLyrCloseGloveMode(void) +{ +// DBG("*** %s() ***\n", __func__); + DrvIcFwCtrlCloseGloveMode(); +} + +void DrvIcFwLyrGetGloveInfo(u8 *pGloveMode) +{ +// DBG("*** %s() ***\n", __func__); + + DrvIcFwCtrlGetGloveInfo(pGloveMode); +} +#endif //CONFIG_ENABLE_GLOVE_MODE +//------------------------------------------------------------------------------// + + diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_ic_fw_porting_layer.h b/drivers/input/touchscreen/msg2233/mstar_drv_ic_fw_porting_layer.h new file mode 100644 index 00000000..75508ad1 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_ic_fw_porting_layer.h @@ -0,0 +1,119 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_ic_fw_porting_layer.h + * + * @brief This file defines the interface of touch screen + * + * + */ + +#ifndef __MSTAR_DRV_IC_FW_PORTING_LAYER_H__ +#define __MSTAR_DRV_IC_FW_PORTING_LAYER_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include "mstar_drv_common.h" +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) +#include "mstar_drv_mutual_fw_control.h" +#ifdef CONFIG_ENABLE_ITO_MP_TEST +#include "mstar_drv_mutual_mp_test.h" +#endif //CONFIG_ENABLE_ITO_MP_TEST +#elif defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC) +#include "mstar_drv_self_fw_control.h" +#ifdef CONFIG_ENABLE_ITO_MP_TEST +#include "mstar_drv_self_mp_test.h" +#endif //CONFIG_ENABLE_ITO_MP_TEST +#endif + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR CONSTANT DEFINITION */ +/*--------------------------------------------------------------------------*/ + + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +extern void DrvIcFwLyrOpenGestureWakeup(u32 *pWakeupMode); +extern void DrvIcFwLyrCloseGestureWakeup(void); + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +extern void DrvIcFwLyrOpenGestureDebugMode(u8 nGestureFlag); +extern void DrvIcFwLyrCloseGestureDebugMode(void); +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +extern u32 DrvIcFwLyrReadDQMemValue(u16 nAddr); +extern void DrvIcFwLyrWriteDQMemValue(u16 nAddr, u32 nData); + +extern u16 DrvIcFwLyrChangeFirmwareMode(u16 nMode); +extern void DrvIcFwLyrGetFirmwareInfo(FirmwareInfo_t *pInfo); +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) // use for MSG26XXM only +extern u16 DrvIcFwLyrGetFirmwareMode(void); +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC +extern void DrvIcFwLyrRestoreFirmwareModeToLogDataMode(void); + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +extern void DrvIcFwLyrCheckFirmwareUpdateBySwId(void); +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +extern void DrvIcFwLyrVariableInitialize(void); +extern void DrvIcFwLyrOptimizeCurrentConsumption(void); +extern u8 DrvIcFwLyrGetChipType(void); +extern void DrvIcFwLyrGetCustomerFirmwareVersion(u16 *pMajor, u16 *pMinor, u8 **ppVersion); +extern void DrvIcFwLyrGetPlatformFirmwareVersion(u8 **ppVersion); +extern void DrvIcFwLyrHandleFingerTouch(u8 *pPacket, u16 nLength); +extern u32 DrvIcFwLyrIsRegisterFingerTouchInterruptHandler(void); +extern s32 DrvIcFwLyrUpdateFirmware(u8 szFwData[][1024], EmemType_e eEmemType); +extern s32 DrvIcFwLyrUpdateFirmwareBySdCard(const char *pFilePath); + +#ifdef CONFIG_ENABLE_ITO_MP_TEST +extern void DrvIcFwLyrCreateMpTestWorkQueue(void); +extern void DrvIcFwLyrScheduleMpTestWork(ItoTestMode_e eItoTestMode); +extern void DrvIcFwLyrGetMpTestDataLog(ItoTestMode_e eItoTestMode, u8 *pDataLog, u32 *pLength); +extern void DrvIcFwLyrGetMpTestFailChannel(ItoTestMode_e eItoTestMode, u8 *pFailChannel, u32 *pFailChannelCount); +extern s32 DrvIcFwLyrGetMpTestResult(void); +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) +extern void DrvIcFwLyrGetMpTestScope(TestScopeInfo_t *pInfo); +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC +#endif //CONFIG_ENABLE_ITO_MP_TEST + +#ifdef CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) +extern void DrvIcFwLyrGetTouchPacketAddress(u16 *pDataAddress, u16 *pFlagAddress); +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC +#endif //CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION +extern s32 DrvIcFwLyrEnableProximity(void); +extern s32 DrvIcFwLyrDisableProximity(void); +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +#ifdef CONFIG_ENABLE_GLOVE_MODE +extern void DrvIcFwLyrOpenGloveMode(void); +extern void DrvIcFwLyrCloseGloveMode(void); +extern void DrvIcFwLyrGetGloveInfo(u8 *pGloveMode); +#endif //CONFIG_ENABLE_GLOVE_MODE + +#endif /* __MSTAR_DRV_IC_FW_PORTING_LAYER_H__ */ diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_jni_interface.c b/drivers/input/touchscreen/msg2233/mstar_drv_jni_interface.c new file mode 100644 index 00000000..4a10ed60 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_jni_interface.c @@ -0,0 +1,287 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_jni_interface.c + * + * @brief This file defines the jni interface functions + * + * + */ + +//////////////////////////////////////////////////////////// +/// Included Files +//////////////////////////////////////////////////////////// +#include +#include +#include +#include +#include "mstar_drv_jni_interface.h" +#include "mstar_drv_utility_adaption.h" +#include "mstar_drv_platform_porting_layer.h" + + +#ifdef CONFIG_ENABLE_JNI_INTERFACE +//////////////////////////////////////////////////////////// +/// EXTERN VARIABLE DECLARATION +//////////////////////////////////////////////////////////// +extern u32 SLAVE_I2C_ID_DBBUS; +extern u32 SLAVE_I2C_ID_DWI2C; +extern u8 g_IsHotknotEnabled; +extern u8 g_IsBypassHotknot; +extern u8 g_IsHotknotAlive; + + +//////////////////////////////////////////////////////////// +/// LOCAL VARIABLE DEFINITION +//////////////////////////////////////////////////////////// +static MsgToolDrvCmd_t * _gMsgToolCmdIn; +static u8 * _gSndCmdData; +static u8 * _gRtnCmdData; + + + +void _DebugJniShowArray(u8 *pBuf, u16 nLen) +{ + int i; + + for(i=0; i < nLen; i++) + { + DBG("%02X ", pBuf[i]); + + if(i%16==15){ + DBG("\n"); + } + } + DBG("\n"); +} + + +u64 PtrToU64(u8 * pValue) +{ + uintptr_t nValue = (uintptr_t)pValue; + return (u64)(0xFFFFFFFFFFFFFFFF&nValue); +} + +u8 * U64ToPtr(u64 nValue) +{ + uintptr_t pValue = (uintptr_t)nValue; + return (u8 *)pValue; +} + + +ssize_t MsgToolRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + long nRet = 0; + u8 nBusType = 0; + u16 nReadLen = 0; + u8 szCmdData[20] = {0}; + + + DBG("*** %s() ***\n", __func__); + //DBG("*** nCount = %d ***\n", (int)nCount); + nBusType = nCount&0xFF; + nReadLen = (nCount >> 8)&0xFFFF; + if(nBusType == SLAVE_I2C_ID_DBBUS || nBusType == SLAVE_I2C_ID_DWI2C) + { + IicReadData(nBusType, &szCmdData[0], nReadLen); + } + + nRet = copy_to_user(pBuffer, &szCmdData[0], nReadLen); + + return nRet; +} + + +ssize_t MsgToolWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + long nRet = 0; + u8 nBusType = 0; + u16 nWriteLen = 0; + u8 szCmdData[20] = {0}; + + + DBG("*** %s() ***\n", __func__); + //DBG("*** nCount = %d ***\n", (int)nCount); + nBusType = nCount&0xFF; + nWriteLen = (nCount >> 8)&0xFFFF; + nRet = copy_from_user(szCmdData, &pBuffer[0], nWriteLen); + if(nBusType == SLAVE_I2C_ID_DBBUS || nBusType == SLAVE_I2C_ID_DWI2C) + { + IicWriteData(nBusType, &szCmdData[0], nWriteLen); + } + + return nRet; +} + + +void _RegGetXByteData(MsgToolDrvCmd_t * pCmd) +{ + u16 nAddr = 0; + + DBG("*** %s() ***\n", __func__); + nAddr = (_gSndCmdData[1]<<8)|_gSndCmdData[0]; + RegGetXBitValue(nAddr, _gRtnCmdData, pCmd->nRtnCmdLen, MAX_I2C_TRANSACTION_LENGTH_LIMIT); + //_DebugJniShowArray(_gRtnCmdData, pCmd->nRtnCmdLen); +} + + +void _ClearMsgToolMem(void) +{ + DBG("*** %s() ***\n", __func__); + + memset(_gMsgToolCmdIn, 0, sizeof( MsgToolDrvCmd_t )); + memset(_gSndCmdData, 0, 1024); + memset(_gRtnCmdData, 0, 1024); +} + + +static MsgToolDrvCmd_t* _TransCmdFromUser( unsigned long nArg ) +{ + long nRet; + MsgToolDrvCmd_t tCmdIn; + MsgToolDrvCmd_t *pTransCmd; + + DBG("*** %s() ***\n", __func__); + _ClearMsgToolMem(); + pTransCmd = (MsgToolDrvCmd_t *)_gMsgToolCmdIn; + nRet = copy_from_user( &tCmdIn, (void*)nArg, sizeof( MsgToolDrvCmd_t ) ); + pTransCmd->nCmdId = tCmdIn.nCmdId; + + //_DebugJniShowArray(&tCmdIn, sizeof( MsgToolDrvCmd_t)); + if(tCmdIn.nSndCmdLen > 0) + { + pTransCmd->nSndCmdLen = tCmdIn.nSndCmdLen; + nRet = copy_from_user( _gSndCmdData, U64ToPtr(tCmdIn.nSndCmdDataPtr), pTransCmd->nSndCmdLen ); + } + + if(tCmdIn.nRtnCmdLen > 0) + { + pTransCmd->nRtnCmdLen = tCmdIn.nRtnCmdLen; + nRet = copy_from_user( _gRtnCmdData, U64ToPtr(tCmdIn.nRtnCmdDataPtr), pTransCmd->nRtnCmdLen ); + } + + return pTransCmd; +} + + +static void _TransCmdToUser( MsgToolDrvCmd_t *pTransCmd, unsigned long nArg ) +{ + MsgToolDrvCmd_t tCmdOut; + long nRet; + + DBG("*** %s() ***\n", __func__); + nRet = copy_from_user( &tCmdOut, (void*)nArg, sizeof( MsgToolDrvCmd_t ) ); + + //_DebugJniShowArray(&tCmdOut, sizeof( MsgToolDrvCmd_t)); + nRet = copy_to_user( U64ToPtr(tCmdOut.nRtnCmdDataPtr), _gRtnCmdData, tCmdOut.nRtnCmdLen); +} + + +long MsgToolIoctl( struct file *pFile, unsigned int nCmd, unsigned long nArg ) +{ + long nRet = 0; + + DBG("*** %s() ***\n", __func__); + switch ( nCmd ) + { + case MSGTOOL_IOCTL_RUN_CMD: + { + MsgToolDrvCmd_t *pTransCmd; + pTransCmd = _TransCmdFromUser( nArg ); + switch (pTransCmd->nCmdId) + { + case MSGTOOL_RESETHW: + DrvPlatformLyrTouchDeviceResetHw(); + break; + case MSGTOOL_REGGETXBYTEVALUE: + _RegGetXByteData(pTransCmd); + _TransCmdToUser(pTransCmd, nArg); + break; + case MSGTOOL_HOTKNOTSTATUS: + _gRtnCmdData[0] = g_IsHotknotEnabled; + _TransCmdToUser(pTransCmd, nArg); + break; + case MSGTOOL_FINGERTOUCH: + if(pTransCmd->nSndCmdLen == 1) + { + DBG("*** JNI enable touch ***\n"); + DrvPlatformLyrEnableFingerTouchReport(); + } + else if(pTransCmd->nSndCmdLen == 0) + { + DBG("*** JNI disable touch ***\n"); + DrvPlatformLyrDisableFingerTouchReport(); + } + break; + case MSGTOOL_BYPASSHOTKNOT: + if(pTransCmd->nSndCmdLen == 1) + { + DBG("*** JNI enable bypass hotknot ***\n"); + g_IsBypassHotknot = 1; + while(g_IsHotknotAlive == 1) + { + //DBG("*** JNI hotknot is alive ***\n"); + mdelay(1); + } + DBG("*** JNI hotknot is paused ***\n"); + } + else if(pTransCmd->nSndCmdLen == 0) + { + DBG("*** JNI disable bypass hotknot ***\n"); + g_IsBypassHotknot = 0; + } + break; + case MSGTOOL_DEVICEPOWEROFF: + DrvPlatformLyrTouchDevicePowerOff(); + break; + default: + break; + } + } + break; + + default: + nRet = -EINVAL; + break; + } + + return nRet; +} + + +void CreateMsgToolMem(void) +{ + DBG("*** %s() ***\n", __func__); + + _gMsgToolCmdIn = (MsgToolDrvCmd_t*)kmalloc( sizeof( MsgToolDrvCmd_t ), GFP_KERNEL ); + _gSndCmdData = (u8*)kmalloc(1024, GFP_KERNEL ); + _gRtnCmdData = (u8*)kmalloc(1024, GFP_KERNEL ); +} + + +void DeleteMsgToolMem(void) +{ + DBG("*** %s() ***\n", __func__); + + kfree(_gMsgToolCmdIn); + kfree(_gSndCmdData); + kfree(_gRtnCmdData); +} + +#endif //CONFIG_ENABLE_JNI_INTERFACE diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_jni_interface.h b/drivers/input/touchscreen/msg2233/mstar_drv_jni_interface.h new file mode 100644 index 00000000..962d1dc7 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_jni_interface.h @@ -0,0 +1,91 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2012 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_hotknot.h + * + * @brief This file defines the hotknot functions + * + * + */ + +#ifndef __MSTAR_DRV_JNI_INTERFACE_H__ +#define __MSTAR_DRV_JNI_INTERFACE_H__ + + +//////////////////////////////////////////////////////////// +/// Included Files +//////////////////////////////////////////////////////////// +#include "mstar_drv_common.h" + + +#ifdef CONFIG_ENABLE_JNI_INTERFACE +//////////////////////////////////////////////////////////// +/// Data Types +//////////////////////////////////////////////////////////// +/* +typedef struct +{ + u64 nCmdId; + u8 *pSndCmdData; //send data to fw + u64 nSndCmdLen; + u8 *pRtnCmdData; //receive data from fw + u64 nRtnCmdLen; +} MsgToolDrvCmd_t; +*/ + +typedef struct +{ + u64 nCmdId; + u64 nSndCmdDataPtr; //send data to fw + u64 nSndCmdLen; + u64 nRtnCmdDataPtr; //receive data from fw + u64 nRtnCmdLen; +} MsgToolDrvCmd_t; + + + +//////////////////////////////////////////////////////////// +/// Macro +//////////////////////////////////////////////////////////// +#define MSGTOOL_MAGIC_NUMBER 96 +#define MSGTOOL_IOCTL_RUN_CMD _IO(MSGTOOL_MAGIC_NUMBER, 1) + + +#define MSGTOOL_RESETHW 0x01 +#define MSGTOOL_REGGETXBYTEVALUE 0x02 +#define MSGTOOL_HOTKNOTSTATUS 0x03 +#define MSGTOOL_FINGERTOUCH 0x04 +#define MSGTOOL_BYPASSHOTKNOT 0x05 +#define MSGTOOL_DEVICEPOWEROFF 0x06 + + + +//////////////////////////////////////////////////////////// +/// Function Prototypes +//////////////////////////////////////////////////////////// + +extern ssize_t MsgToolRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t MsgToolWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern long MsgToolIoctl( struct file *pFile, unsigned int nCmd, unsigned long nArg ); +extern void CreateMsgToolMem(void); +extern void DeleteMsgToolMem(void); + + +#endif //CONFIG_ENABLE_JNI_INTERFACE +#endif // __MSTAR_DRV_JNI_INTERFACE_H__ diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_main.c b/drivers/input/touchscreen/msg2233/mstar_drv_main.c new file mode 100644 index 00000000..c67dddd6 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_main.c @@ -0,0 +1,3379 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_main.c + * + * @brief This file defines the interface of touch screen + * + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_main.h" +#include "mstar_drv_utility_adaption.h" +#include "mstar_drv_platform_porting_layer.h" +#include "mstar_drv_ic_fw_porting_layer.h" + +#ifdef CONFIG_ENABLE_HOTKNOT +#include "mstar_drv_hotknot.h" +#include "mstar_drv_hotknot_queue.h" +#endif //CONFIG_ENABLE_HOTKNOT + +#ifdef CONFIG_ENABLE_JNI_INTERFACE +#include "mstar_drv_jni_interface.h" +#endif //CONFIG_ENABLE_JNI_INTERFACE + +/*=============================================================*/ +// CONSTANT VALUE DEFINITION +/*=============================================================*/ + + +/*=============================================================*/ +// EXTERN VARIABLE DECLARATION +/*=============================================================*/ + +extern FirmwareInfo_t g_FirmwareInfo; +extern u8 g_LogModePacket[DEBUG_MODE_PACKET_LENGTH]; +extern u16 g_FirmwareMode; + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +extern u32 g_GestureWakeupMode[2]; + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +extern u8 g_LogGestureDebug[128]; +extern u8 g_GestureDebugFlag; +extern u8 g_GestureDebugMode; + +extern struct input_dev *g_InputDevice; +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE +extern u32 g_LogGestureInfor[GESTURE_WAKEUP_INFORMATION_PACKET_LENGTH]; +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +extern u8 g_ChipType; + +#ifdef CONFIG_ENABLE_ITO_MP_TEST +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) +extern TestScopeInfo_t g_TestScopeInfo; +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC +#endif //CONFIG_ENABLE_ITO_MP_TEST + +/*=============================================================*/ +// LOCAL VARIABLE DEFINITION +/*=============================================================*/ + +static u16 _gDebugReg[MAX_DEBUG_REGISTER_NUM] = {0}; +static u16 _gDebugRegValue[MAX_DEBUG_REGISTER_NUM] = {0}; +static u32 _gDebugRegCount = 0; + +static u8 _gDebugCmdArgu[MAX_DEBUG_COMMAND_ARGUMENT_NUM] = {0}; +static u16 _gDebugCmdArguCount = 0; +static u32 _gDebugReadDataSize = 0; + +static u8 *_gPlatformFwVersion = NULL; // internal use firmware version for MStar + +#ifdef CONFIG_ENABLE_ITO_MP_TEST +static ItoTestMode_e _gItoTestMode = 0; +#endif //CONFIG_ENABLE_ITO_MP_TEST + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE +static u32 _gLogGestureCount = 0; +static u8 _gLogGestureInforType = 0; +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE + +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +static u32 _gIsUpdateComplete = 0; + +u8 *_gFwVersion = NULL; // customer firmware version + +static u32 _gFeatureSupportStatus = 0; + +static struct proc_dir_entry *_gProcClass = NULL; +static struct proc_dir_entry *_gProcMsTouchScreenMsg20xx = NULL; +static struct proc_dir_entry *_gProcDevice = NULL; + +static const struct file_operations _gProcChipType = { + .read = DrvMainProcfsChipTypeRead, + .write = DrvMainProcfsChipTypeWrite, +}; + +static const struct file_operations _gProcFirmwareData = { + .read = DrvMainProcfsFirmwareDataRead, + .write = DrvMainProcfsFirmwareDataWrite, +}; + +static const struct file_operations _gProcApkFirmwareUpdate = { + .read = DrvMainProcfsFirmwareUpdateRead, + .write = DrvMainProcfsFirmwareUpdateWrite, +}; + +static const struct file_operations _gProcCustomerFirmwareVersion = { + .read = DrvMainProcfsCustomerFirmwareVersionRead, + .write = DrvMainProcfsCustomerFirmwareVersionWrite, +}; + +static const struct file_operations _gProcPlatformFirmwareVersion = { + .read = DrvMainProcfsPlatformFirmwareVersionRead, + .write = DrvMainProcfsPlatformFirmwareVersionWrite, +}; + +static const struct file_operations _gProcDeviceDriverVersion = { + .read = DrvMainProcfsDeviceDriverVersionRead, + .write = DrvMainProcfsDeviceDriverVersionWrite, +}; + +static const struct file_operations _gProcSdCardFirmwareUpdate = { + .read = DrvMainProcfsSdCardFirmwareUpdateRead, + .write = DrvMainProcfsSdCardFirmwareUpdateWrite, +}; + +static const struct file_operations _gProcFirmwareDebug = { + .read = DrvMainProcfsFirmwareDebugRead, + .write = DrvMainProcfsFirmwareDebugWrite, +}; + +static const struct file_operations _gProcFirmwareSetDebugValue = { + .read = DrvMainProcfsFirmwareSetDebugValueRead, + .write = DrvMainProcfsFirmwareSetDebugValueWrite, +}; + +static const struct file_operations _gProcFirmwareSmBusDebug = { + .read = DrvMainProcfsFirmwareSmBusDebugRead, + .write = DrvMainProcfsFirmwareSmBusDebugWrite, +}; + +static const struct file_operations _gProcFirmwareSetDQMemValue = { + .read = DrvMainProcfsFirmwareSetDQMemValueRead, + .write = DrvMainProcfsFirmwareSetDQMemValueWrite, +}; + +#ifdef CONFIG_ENABLE_ITO_MP_TEST +static const struct file_operations _gProcMpTest = { + .read = DrvMainProcfsMpTestRead, + .write = DrvMainProcfsMpTestWrite, +}; + +static const struct file_operations _gProcMpTestLog = { + .read = DrvMainProcfsMpTestLogRead, + .write = DrvMainProcfsMpTestLogWrite, +}; + +static const struct file_operations _gProcMpTestFailChannel = { + .read = DrvMainProcfsMpTestFailChannelRead, + .write = DrvMainProcfsMpTestFailChannelWrite, +}; + +static const struct file_operations _gProcMpTestScope = { + .read = DrvMainProcfsMpTestScopeRead, + .write = DrvMainProcfsMpTestScopeWrite, +}; +#endif //CONFIG_ENABLE_ITO_MP_TEST + + +static const struct file_operations _gProcFirmwareMode = { + .read = DrvMainProcfsFirmwareModeRead, + .write = DrvMainProcfsFirmwareModeWrite, +}; + +static const struct file_operations _gProcFirmwareSensor = { + .read = DrvMainProcfsFirmwareSensorRead, + .write = DrvMainProcfsFirmwareSensorWrite, +}; + +static const struct file_operations _gProcFirmwarePacketHeader = { + .read = DrvMainProcfsFirmwarePacketHeaderRead, + .write = DrvMainProcfsFirmwarePacketHeaderWrite, +}; + + +static const struct file_operations _gProcQueryFeatureSupportStatus = { + .read = DrvMainProcfsQueryFeatureSupportStatusRead, + .write = DrvMainProcfsQueryFeatureSupportStatusWrite, +}; + +static const struct file_operations _gProcChangeFeatureSupportStatus = { + .read = DrvMainProcfsChangeFeatureSupportStatusRead, + .write = DrvMainProcfsChangeFeatureSupportStatusWrite, +}; + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +static const struct file_operations _gProcGestureWakeupMode = { + .read = DrvMainProcfsGestureWakeupModeRead, + .write = DrvMainProcfsGestureWakeupModeWrite, +}; +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +static const struct file_operations _gProcGestureDebugMode = { + .read = DrvMainProcfsGestureDebugModeRead, + .write = DrvMainProcfsGestureDebugModeWrite, +}; +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE +static const struct file_operations _gProcGestureInforMode = { + .read = DrvMainProcfsGestureInforModeRead, + .write = DrvMainProcfsGestureInforModeWrite, +}; +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_COUNT_REPORT_RATE +static const struct file_operations _gProcReportRate = { + .read = DrvMainProcfsReportRateRead, + .write = DrvMainProcfsReportRateWrite, +}; +#endif //CONFIG_ENABLE_COUNT_REPORT_RATE + +#ifdef CONFIG_ENABLE_GLOVE_MODE +static const struct file_operations _gProcGloveMode= { + .read = DrvMainProcfsGloveModeRead, + .write = DrvMainProcfsGloveModeWrite, +}; + +static const struct file_operations _gProcOpenGloveMode= { + .read = DrvMainProcfsOpenGloveModeRead, +// .write = DrvMainProcfsOpenGloveModeWrite, +}; + +static const struct file_operations _gProcCloseGloveMode= { + .read = DrvMainProcfsCloseGloveModeRead, +// .write = DrvMainProcfsCloseGloveModeWrite, +}; +#endif //CONFIG_ENABLE_GLOVE_MODE + +#ifdef CONFIG_ENABLE_JNI_INTERFACE +static const struct file_operations _gProcJniMethod = { + .read = MsgToolRead, + .write = MsgToolWrite, + .unlocked_ioctl = MsgToolIoctl, + .compat_ioctl = MsgToolIoctl, +}; +#endif //CONFIG_ENABLE_JNI_INTERFACE + + +#ifdef CONFIG_ENABLE_HOTKNOT +struct mutex g_HKMutex; +extern struct mutex g_QMutex; +#endif //CONFIG_ENABLE_HOTKNOT + +/*=============================================================*/ +// GLOBAL VARIABLE DEFINITION +/*=============================================================*/ + +//u32 SLAVE_I2C_ID_DBBUS = (0xC4>>1); //0x62 // for MSG21XX/MSG21XXA/MSG26XXM/MSG28XX +u32 SLAVE_I2C_ID_DBBUS = (0xB2>>1); //0x59 // for MSG22XX +u32 SLAVE_I2C_ID_DWI2C = (0x4C>>1); //0x26 + + +u16 FIRMWARE_MODE_UNKNOWN_MODE = 0xFFFF; +u16 FIRMWARE_MODE_DEMO_MODE = 0xFFFF; +u16 FIRMWARE_MODE_DEBUG_MODE = 0xFFFF; +u16 FIRMWARE_MODE_RAW_DATA_MODE = 0xFFFF; + +struct kset *g_TouchKSet = NULL; +struct kobject *g_TouchKObj = NULL; +u8 g_IsSwitchModeByAPK = 0; + + +u8 IS_GESTURE_WAKEUP_ENABLED = 0; +u8 IS_GESTURE_DEBUG_MODE_ENABLED = 0; +u8 IS_GESTURE_INFORMATION_MODE_ENABLED = 0; +u8 IS_GESTURE_WAKEUP_MODE_SUPPORT_64_TYPES_ENABLED = 0; + +u8 IS_TOUCH_DRIVER_DEBUG_LOG_ENABLED = CONFIG_ENABLE_TOUCH_DRIVER_DEBUG_LOG; +u8 IS_FIRMWARE_DATA_LOG_ENABLED = CONFIG_ENABLE_FIRMWARE_DATA_LOG; + + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +struct kset *g_GestureKSet = NULL; +struct kobject *g_GestureKObj = NULL; +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA +u16 g_FwPacketDataAddress = 0; +u16 g_FwPacketFlagAddress = 0; +u8 g_FwSupportSegment = 0; +#endif //CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA + +#ifdef CONFIG_ENABLE_COUNT_REPORT_RATE +u32 g_IsEnableReportRate = 0; +u32 g_InterruptCount = 0; +u32 g_ValidTouchCount = 0; +u32 g_InterruptReportRate = 0; +u32 g_ValidTouchReportRate = 0; + +struct timeval g_StartTime; +#endif //CONFIG_ENABLE_COUNT_REPORT_RATE + +#ifdef CONFIG_ENABLE_GLOVE_MODE +u8 g_IsEnableGloveMode = 0; +#endif //CONFIG_ENABLE_GLOVE_MODE + +u8 g_FwData[MAX_UPDATE_FIRMWARE_BUFFER_SIZE][1024]; +u32 g_FwDataCount = 0; + +u8 g_IsHotknotEnabled = 0; +u8 g_IsBypassHotknot = 0; +u8 g_IsHotknotAlive = 0; + + +/*=============================================================*/ +// LOCAL FUNCTION DEFINITION +/*=============================================================*/ + +static s32 _DrvMainCreateProcfsDirEntry(void); +#ifdef CONFIG_ENABLE_HOTKNOT +static s32 _DrvMainHotknotRegistry(void); +#endif //CONFIG_ENABLE_HOTKNOT + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +//------------------------------------------------------------------------------// + +ssize_t DrvMainProcfsChipTypeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + nLength = sprintf(pBuffer, "%d", g_ChipType); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsChipTypeWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + DBG("*** %s() ***\n", __func__); + +// g_ChipType = DrvIcFwLyrGetChipType(); + + return nCount; +} + +ssize_t DrvMainProcfsFirmwareDataRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + DBG("*** %s() g_FwDataCount = %d ***\n", __func__, g_FwDataCount); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + *pPos += g_FwDataCount; + + return g_FwDataCount; +} + +ssize_t DrvMainProcfsFirmwareDataWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nNum = nCount / 1024; + u32 nRemainder = nCount % 1024; + u32 i; + + DBG("*** %s() ***\n", __func__); + + if (nNum > 0) // nCount >= 1024 + { + for (i = 0; i < nNum; i ++) + { + memcpy(g_FwData[g_FwDataCount], pBuffer+(i*1024), 1024); + + g_FwDataCount ++; + } + + if (nRemainder > 0) // Handle special firmware size like MSG22XX(48.5KB) + { + DBG("nRemainder = %d\n", nRemainder); + + memcpy(g_FwData[g_FwDataCount], pBuffer+(i*1024), nRemainder); + + g_FwDataCount ++; + } + } + else // nCount < 1024 + { + if (nCount > 0) + { + memcpy(g_FwData[g_FwDataCount], pBuffer, nCount); + + g_FwDataCount ++; + } + } + + DBG("*** g_FwDataCount = %d ***\n", g_FwDataCount); + + if (pBuffer != NULL) + { + DBG("*** buf[0] = %c ***\n", pBuffer[0]); + } + + return nCount; +} + +ssize_t DrvMainProcfsFirmwareUpdateRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + nLength = sprintf(pBuffer, "%d", _gIsUpdateComplete); + + DBG("*** _gIsUpdateComplete = %d ***\n", _gIsUpdateComplete); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsFirmwareUpdateWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + DrvPlatformLyrDisableFingerTouchReport(); + + DBG("*** %s() g_FwDataCount = %d ***\n", __func__, g_FwDataCount); + + if (0 != DrvIcFwLyrUpdateFirmware(g_FwData, EMEM_ALL)) + { + _gIsUpdateComplete = 0; + DBG("Update FAILED\n"); + } + else + { + _gIsUpdateComplete = 1; + DBG("Update SUCCESS\n"); + } + + DrvPlatformLyrEnableFingerTouchReport(); + + return nCount; +} + +ssize_t DrvMainProcfsCustomerFirmwareVersionRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + u16 nMajor = 0, nMinor = 0; + + DrvIcFwLyrGetCustomerFirmwareVersion(&nMajor, &nMinor, &_gFwVersion); + + DBG("*** %s() _gFwVersion = %s ***\n", __func__, _gFwVersion); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + nLength = sprintf(pBuffer, "%s\n", _gFwVersion); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsCustomerFirmwareVersionWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u16 nMajor = 0, nMinor = 0; + + DrvIcFwLyrGetCustomerFirmwareVersion(&nMajor, &nMinor, &_gFwVersion); + + DBG("*** %s() _gFwVersion = %s ***\n", __func__, _gFwVersion); + + return nCount; +} + +ssize_t DrvMainProcfsPlatformFirmwareVersionRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() _gPlatformFwVersion = %s ***\n", __func__, _gPlatformFwVersion); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + nLength = sprintf(pBuffer, "%s\n", _gPlatformFwVersion); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsPlatformFirmwareVersionWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + DrvIcFwLyrGetPlatformFirmwareVersion(&_gPlatformFwVersion); + + DBG("*** %s() _gPlatformFwVersion = %s ***\n", __func__, _gPlatformFwVersion); + + return nCount; +} + +ssize_t DrvMainProcfsDeviceDriverVersionRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + nLength = sprintf(pBuffer, "%s", DEVICE_DRIVER_RELEASE_VERSION); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsDeviceDriverVersionWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + DBG("*** %s() ***\n", __func__); + + return nCount; +} + +ssize_t DrvMainProcfsSdCardFirmwareUpdateRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u16 nMajor = 0, nMinor = 0; + u32 nLength = 0; + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + DrvIcFwLyrGetCustomerFirmwareVersion(&nMajor, &nMinor, &_gFwVersion); + + DBG("*** %s() _gFwVersion = %s ***\n", __func__, _gFwVersion); + + nLength = sprintf(pBuffer, "%s\n", _gFwVersion); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsSdCardFirmwareUpdateWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + char *pValid = NULL; + char *pTmpFilePath = NULL; + char szFilePath[100] = {0}; + + DBG("*** %s() ***\n", __func__); + DBG("pBuffer = %s\n", pBuffer); + + if (pBuffer != NULL) + { + pValid = strstr(pBuffer, ".bin"); + + if (pValid) + { + pTmpFilePath = strsep((char **)&pBuffer, "."); + + DBG("pTmpFilePath = %s\n", pTmpFilePath); + + strcat(szFilePath, pTmpFilePath); + strcat(szFilePath, ".bin"); + + DBG("szFilePath = %s\n", szFilePath); + + if (0 != DrvFwCtrlUpdateFirmwareBySdCard(szFilePath)) + { + DBG("Update FAILED\n"); + } + else + { + DBG("Update SUCCESS\n"); + } + } + else + { + DBG("The file type of the update firmware bin file is not a .bin file.\n"); + } + } + else + { + DBG("The file path of the update firmware bin file is NULL.\n"); + } + + return nCount; +} + +ssize_t DrvMainProcfsFirmwareDebugRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 i, nLength = 0; + u8 nBank, nAddr; + u16 szRegData[MAX_DEBUG_REGISTER_NUM] = {0}; + u8 szOut[MAX_DEBUG_REGISTER_NUM*25] = {0}, szValue[10] = {0}; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + for (i = 0; i < _gDebugRegCount; i ++) + { + szRegData[i] = RegGet16BitValue(_gDebugReg[i]); + } + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + for (i = 0; i < _gDebugRegCount; i ++) + { + nBank = (_gDebugReg[i] >> 8) & 0xFF; + nAddr = _gDebugReg[i] & 0xFF; + + DBG("reg(0x%02X,0x%02X)=0x%04X\n", nBank, nAddr, szRegData[i]); + + strcat(szOut, "reg("); + sprintf(szValue, "0x%02X", nBank); + strcat(szOut, szValue); + strcat(szOut, ","); + sprintf(szValue, "0x%02X", nAddr); + strcat(szOut, szValue); + strcat(szOut, ")="); + sprintf(szValue, "0x%04X", szRegData[i]); + strcat(szOut, szValue); + strcat(szOut, "\n"); + } + + nLength = sprintf(pBuffer, "%s\n", szOut); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsFirmwareDebugWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 i; + char *pCh; + char *pData = NULL; + + DBG("*** %s() ***\n", __func__); + + if (pBuffer != NULL) + { + DBG("*** pBuffer[0] = %c ***\n", pBuffer[0]); + DBG("*** pBuffer[1] = %c ***\n", pBuffer[1]); + DBG("*** pBuffer[2] = %c ***\n", pBuffer[2]); + DBG("*** pBuffer[3] = %c ***\n", pBuffer[3]); + DBG("*** pBuffer[4] = %c ***\n", pBuffer[4]); + DBG("*** pBuffer[5] = %c ***\n", pBuffer[5]); + + DBG("nCount = %d\n", (int)nCount); + + pData = kmalloc(nCount, GFP_KERNEL); + if (!pData) + { + return -ENOMEM; + } + + if (copy_from_user(pData, pBuffer, nCount)) + { + DBG("copy_from_user() failed\n"); + + kfree(pData); + return -EFAULT; + } + + i = 0; + + while ((pCh = strsep((char **)&pData, " ,")) && (i < MAX_DEBUG_REGISTER_NUM)) + { + DBG("pCh = %s\n", pCh); + + _gDebugReg[i] = DrvCommonConvertCharToHexDigit(pCh, strlen(pCh)); + + DBG("_gDebugReg[%d] = 0x%04X\n", i, _gDebugReg[i]); + i ++; + } + _gDebugRegCount = i; + + DBG("_gDebugRegCount = %d\n", _gDebugRegCount); + + kfree(pData); + } + + return nCount; +} + +ssize_t DrvMainProcfsFirmwareSetDebugValueRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 i, nLength = 0; + u8 nBank, nAddr; + u16 szRegData[MAX_DEBUG_REGISTER_NUM] = {0}; + u8 szOut[MAX_DEBUG_REGISTER_NUM*25] = {0}, szValue[10] = {0}; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + for (i = 0; i < _gDebugRegCount; i ++) + { + szRegData[i] = RegGet16BitValue(_gDebugReg[i]); + } + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + for (i = 0; i < _gDebugRegCount; i ++) + { + nBank = (_gDebugReg[i] >> 8) & 0xFF; + nAddr = _gDebugReg[i] & 0xFF; + + DBG("reg(0x%02X,0x%02X)=0x%04X\n", nBank, nAddr, szRegData[i]); + + strcat(szOut, "reg("); + sprintf(szValue, "0x%02X", nBank); + strcat(szOut, szValue); + strcat(szOut, ","); + sprintf(szValue, "0x%02X", nAddr); + strcat(szOut, szValue); + strcat(szOut, ")="); + sprintf(szValue, "0x%04X", szRegData[i]); + strcat(szOut, szValue); + strcat(szOut, "\n"); + } + + nLength = sprintf(pBuffer, "%s\n", szOut); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsFirmwareSetDebugValueWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 i, j, k; + char *pCh; + char *pData = NULL; + + DBG("*** %s() ***\n", __func__); + + if (pBuffer != NULL) + { + DBG("*** pBuffer[0] = %c ***\n", pBuffer[0]); + DBG("*** pBuffer[1] = %c ***\n", pBuffer[1]); + + DBG("nCount = %d\n", (int)nCount); + + pData = kmalloc(nCount, GFP_KERNEL); + if (!pData) + { + return -ENOMEM; + } + + if (copy_from_user(pData, pBuffer, nCount)) + { + DBG("copy_from_user() failed\n"); + + kfree(pData); + return -EFAULT; + } + + i = 0; + j = 0; + k = 0; + + while ((pCh = strsep((char **)&pData, " ,")) && (i < 2)) + { + DBG("pCh = %s\n", pCh); + + if ((i%2) == 0) + { + _gDebugReg[j] = DrvCommonConvertCharToHexDigit(pCh, strlen(pCh)); + DBG("_gDebugReg[%d] = 0x%04X\n", j, _gDebugReg[j]); + j ++; + } + else // (i%2) == 1 + { + _gDebugRegValue[k] = DrvCommonConvertCharToHexDigit(pCh, strlen(pCh)); + DBG("_gDebugRegValue[%d] = 0x%04X\n", k, _gDebugRegValue[k]); + k ++; + } + + i ++; + } + _gDebugRegCount = j; + + DBG("_gDebugRegCount = %d\n", _gDebugRegCount); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + for (i = 0; i < _gDebugRegCount; i ++) + { + RegSet16BitValue(_gDebugReg[i], _gDebugRegValue[i]); + DBG("_gDebugReg[%d] = 0x%04X, _gDebugRegValue[%d] = 0x%04X\n", i, _gDebugReg[i], i , _gDebugRegValue[i]); // add for debug + } + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + kfree(pData); + } + + return nCount; +} + +ssize_t DrvMainProcfsFirmwareSmBusDebugRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 i, nLength = 0; + u8 szSmBusRxData[MAX_I2C_TRANSACTION_LENGTH_LIMIT] = {0}; + u8 szOut[MAX_I2C_TRANSACTION_LENGTH_LIMIT*2] = {0}; + u8 szValue[10] = {0}; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + if (_gDebugCmdArguCount > 0) // Send write command + { + DBG("Execute I2C SMBUS write command\n"); + + IicWriteData(SLAVE_I2C_ID_DWI2C, &_gDebugCmdArgu[0], _gDebugCmdArguCount); + } + + if (_gDebugReadDataSize > 0) // Send read command + { + DBG("Execute I2C SMBUS read command\n"); + + IicReadData(SLAVE_I2C_ID_DWI2C, &szSmBusRxData[0], _gDebugReadDataSize); + } + + for (i = 0; i < _gDebugReadDataSize; i ++) + { + DBG("szSmBusRxData[%d] = 0x%x\n", i, szSmBusRxData[i]); + + sprintf(szValue, "0x%02X", szSmBusRxData[i]); + strcat(szOut, szValue); + strcat(szOut, "\n"); + } + + nLength = sprintf(pBuffer, "%s\n", szOut); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsFirmwareSmBusDebugWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 i, j; + char szCmdType[5] = {0}; + char *pCh = NULL; + char *pData = NULL; + + DBG("*** %s() ***\n", __func__); + + if (pBuffer != NULL) + { + DBG("*** pBuffer[0] = %c ***\n", pBuffer[0]); + DBG("*** pBuffer[1] = %c ***\n", pBuffer[1]); + DBG("*** pBuffer[2] = %c ***\n", pBuffer[2]); + DBG("*** pBuffer[3] = %c ***\n", pBuffer[3]); + DBG("*** pBuffer[4] = %c ***\n", pBuffer[4]); + DBG("*** pBuffer[5] = %c ***\n", pBuffer[5]); + + DBG("nCount = %d\n", (int)nCount); + + pData = kmalloc(nCount, GFP_KERNEL); + if (!pData) + { + return -ENOMEM; + } + + if (copy_from_user(pData, pBuffer, nCount)) + { + DBG("copy_from_user() failed\n"); + + kfree(pData); + return -EFAULT; + } + + // Reset to 0 before parsing the adb command + _gDebugCmdArguCount = 0; + _gDebugReadDataSize = 0; + + i = 0; + j = 0; + + while ((pCh = strsep((char **)&pData, " ,")) && (j < MAX_DEBUG_COMMAND_ARGUMENT_NUM)) + { + DBG("pCh = %s\n", pCh); + + if (strcmp(pCh, "w") == 0 || strcmp(pCh, "r") == 0) + { + memcpy(szCmdType, pCh, strlen(pCh)); + } + else if (strcmp(szCmdType, "w") == 0) + { + _gDebugCmdArgu[j] = DrvCommonConvertCharToHexDigit(pCh, strlen(pCh)); + DBG("_gDebugCmdArgu[%d] = 0x%02X\n", j, _gDebugCmdArgu[j]); + + j ++; + + _gDebugCmdArguCount = j; + DBG("_gDebugCmdArguCount = %d\n", _gDebugCmdArguCount); + } + else if (strcmp(szCmdType, "r") == 0) + { + sscanf(pCh, "%d", &_gDebugReadDataSize); + DBG("_gDebugReadDataSize = %d\n", _gDebugReadDataSize); + } + else + { + DBG("Un-supported adb command format!\n"); + } + + i ++; + } + + kfree(pData); + } + + return nCount; +} + +ssize_t DrvMainProcfsFirmwareSetDQMemValueRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 i, nLength = 0; + u8 nBank, nAddr; + u32 szRegData[MAX_DEBUG_REGISTER_NUM] = {0}; + u8 szOut[MAX_DEBUG_REGISTER_NUM*25] = {0}, szValue[10] = {0}; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + for (i = 0; i < _gDebugRegCount; i ++) + { + szRegData[i] = DrvIcFwLyrReadDQMemValue(_gDebugReg[i]); + } + + for (i = 0; i < _gDebugRegCount; i ++) + { + nBank = (_gDebugReg[i] >> 8) & 0xFF; + nAddr = _gDebugReg[i] & 0xFF; + + DBG("reg(0x%02X,0x%02X)=0x%08X\n", nBank, nAddr, szRegData[i]); + + strcat(szOut, "reg("); + sprintf(szValue, "0x%02X", nBank); + strcat(szOut, szValue); + strcat(szOut, ","); + sprintf(szValue, "0x%02X", nAddr); + strcat(szOut, szValue); + strcat(szOut, ")="); + sprintf(szValue, "0x%04X", szRegData[i]); + strcat(szOut, szValue); + strcat(szOut, "\n"); + } + + nLength = sprintf(pBuffer, "%s\n", szOut); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsFirmwareSetDQMemValueWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 i, j, k; + char *pCh; + char *pData = NULL; + u16 nRealDQMemAddr = 0; + u32 nRealDQMemValue = 0; + + DBG("*** %s() ***\n", __func__); + + if (pBuffer != NULL) + { + DBG("*** pBuffer[0] = %c ***\n", pBuffer[0]); + DBG("*** pBuffer[1] = %c ***\n", pBuffer[1]); + + DBG("nCount = %d\n", (int)nCount); + + pData = kmalloc(nCount, GFP_KERNEL); + if (!pData) + { + return -ENOMEM; + } + + if (copy_from_user(pData, pBuffer, nCount)) + { + DBG("copy_from_user() failed\n"); + + kfree(pData); + return -EFAULT; + } + + i = 0; + j = 0; + k = 0; + + while ((pCh = strsep((char **)&pData, " ,")) && (i < 2)) + { + DBG("pCh = %s\n", pCh); + + if ((i%2) == 0) + { + _gDebugReg[j] = DrvCommonConvertCharToHexDigit(pCh, strlen(pCh)); + DBG("_gDebugReg[%d] = 0x%04X\n", j, _gDebugReg[j]); + j ++; + } + else // (i%2) == 1 + { + _gDebugRegValue[k] = DrvCommonConvertCharToHexDigit(pCh, strlen(pCh)); + DBG("_gDebugRegValue[%d] = 0x%04X\n", k, _gDebugRegValue[k]); + k ++; + } + + i ++; + } + _gDebugRegCount = j; + + DBG("_gDebugRegCount = %d\n", _gDebugRegCount); + + if ((_gDebugReg[0] % 4) == 0) + { + nRealDQMemAddr = _gDebugReg[0]; + nRealDQMemValue = DrvIcFwLyrReadDQMemValue(nRealDQMemAddr); + _gDebugReg[0] = nRealDQMemAddr; + DBG("nRealDQMemValue Raw = %X\n", nRealDQMemValue); + nRealDQMemValue &= 0xFFFF0000; + nRealDQMemValue |= _gDebugRegValue[0]; + DBG("nRealDQMemValue Modify = %X\n", nRealDQMemValue); + DrvIcFwLyrWriteDQMemValue(nRealDQMemAddr, nRealDQMemValue); + } + else if ((_gDebugReg[0] % 4) == 2) + { + nRealDQMemAddr = _gDebugReg[0] - 2; + nRealDQMemValue = DrvIcFwLyrReadDQMemValue(nRealDQMemAddr); + _gDebugReg[0] = nRealDQMemAddr; + DBG("nRealDQMemValue Raw = %X\n", nRealDQMemValue); + + nRealDQMemValue &= 0x0000FFFF; + nRealDQMemValue |= (_gDebugRegValue[0] << 16); + DBG("nRealDQMemValue Modify = %X\n", nRealDQMemValue); + DrvIcFwLyrWriteDQMemValue(nRealDQMemAddr, nRealDQMemValue); + } + + kfree(pData); + } + + return nCount; +} + +/*--------------------------------------------------------------------------*/ + +#ifdef CONFIG_ENABLE_ITO_MP_TEST + +ssize_t DrvMainProcfsMpTestRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + DBG("*** ctp mp test status = %d ***\n", DrvIcFwLyrGetMpTestResult()); + + nLength = sprintf(pBuffer, "%d", DrvIcFwLyrGetMpTestResult()); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsMpTestWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nMode = 0; + + DBG("*** %s() ***\n", __func__); + + if (pBuffer != NULL) + { + sscanf(pBuffer, "%x", &nMode); + + DBG("Mp Test Mode = 0x%x\n", nMode); + + if (nMode == ITO_TEST_MODE_OPEN_TEST) //open test + { + _gItoTestMode = ITO_TEST_MODE_OPEN_TEST; + DrvIcFwLyrScheduleMpTestWork(ITO_TEST_MODE_OPEN_TEST); + } + else if (nMode == ITO_TEST_MODE_SHORT_TEST) //short test + { + _gItoTestMode = ITO_TEST_MODE_SHORT_TEST; + DrvIcFwLyrScheduleMpTestWork(ITO_TEST_MODE_SHORT_TEST); + } + else if (nMode == ITO_TEST_MODE_WATERPROOF_TEST) //waterproof test + { + _gItoTestMode = ITO_TEST_MODE_WATERPROOF_TEST; + DrvIcFwLyrScheduleMpTestWork(ITO_TEST_MODE_WATERPROOF_TEST); + } + else + { + DBG("*** Undefined MP Test Mode ***\n"); + } + } + + return nCount; +} + +ssize_t DrvMainProcfsMpTestLogRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + DrvIcFwLyrGetMpTestDataLog(_gItoTestMode, pBuffer, &nLength); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsMpTestLogWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + DBG("*** %s() ***\n", __func__); + + return nCount; +} + +ssize_t DrvMainProcfsMpTestFailChannelRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + DrvIcFwLyrGetMpTestFailChannel(_gItoTestMode, pBuffer, &nLength); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsMpTestFailChannelWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + DBG("*** %s() ***\n", __func__); + + return nCount; +} + +ssize_t DrvMainProcfsMpTestScopeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) + DrvIcFwLyrGetMpTestScope(&g_TestScopeInfo); + + nLength = sprintf(pBuffer, "%d,%d", g_TestScopeInfo.nMx, g_TestScopeInfo.nMy); +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsMpTestScopeWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + DBG("*** %s() ***\n", __func__); + + return nCount; +} + +#endif //CONFIG_ENABLE_ITO_MP_TEST + +/*--------------------------------------------------------------------------*/ + +ssize_t DrvMainProcfsFirmwareModeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + g_FirmwareMode = DrvIcFwLyrGetFirmwareMode(); + + DBG("%s() firmware mode = 0x%x\n", __func__, g_FirmwareMode); + + nLength = sprintf(pBuffer, "%x", g_FirmwareMode); + } + else if (g_ChipType == CHIP_TYPE_MSG28XX) + { + DrvIcFwLyrGetFirmwareInfo(&g_FirmwareInfo); + g_FirmwareMode = g_FirmwareInfo.nFirmwareMode; + + DBG("%s() firmware mode = 0x%x\n", __func__, g_FirmwareInfo.nFirmwareMode); + + nLength = sprintf(pBuffer, "%x", g_FirmwareInfo.nFirmwareMode); + } +#elif defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC) + if (g_ChipType == CHIP_TYPE_MSG21XXA || g_ChipType == CHIP_TYPE_MSG22XX) + { + DrvIcFwLyrGetFirmwareInfo(&g_FirmwareInfo); + g_FirmwareMode = g_FirmwareInfo.nFirmwareMode; + + DBG("%s() firmware mode = 0x%x, can change firmware mode = %d\n", __func__, g_FirmwareInfo.nFirmwareMode, g_FirmwareInfo.nIsCanChangeFirmwareMode); + + nLength = sprintf(pBuffer, "%x,%d", g_FirmwareInfo.nFirmwareMode, g_FirmwareInfo.nIsCanChangeFirmwareMode); + } +#endif + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsFirmwareModeWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nMode; + + DBG("*** %s() ***\n", __func__); + + if (pBuffer != NULL) + { + sscanf(pBuffer, "%x", &nMode); + DBG("firmware mode = 0x%x\n", nMode); + + g_IsSwitchModeByAPK = 0; + + if (nMode == FIRMWARE_MODE_DEMO_MODE) //demo mode + { + g_FirmwareMode = DrvIcFwLyrChangeFirmwareMode(FIRMWARE_MODE_DEMO_MODE); + } + else if (nMode == FIRMWARE_MODE_DEBUG_MODE) //debug mode + { + g_FirmwareMode = DrvIcFwLyrChangeFirmwareMode(FIRMWARE_MODE_DEBUG_MODE); + g_IsSwitchModeByAPK = 1; + } +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC) + else if (nMode == FIRMWARE_MODE_RAW_DATA_MODE) //raw data mode + { + g_FirmwareMode = DrvIcFwLyrChangeFirmwareMode(FIRMWARE_MODE_RAW_DATA_MODE); + g_IsSwitchModeByAPK = 1; + } +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC + else + { + DBG("*** Undefined Firmware Mode ***\n"); + } + } + + DBG("*** g_FirmwareMode = 0x%x ***\n", g_FirmwareMode); + + return nCount; +} + +ssize_t DrvMainProcfsFirmwareSensorRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) + if (g_FirmwareInfo.nLogModePacketHeader == 0xA5 || g_FirmwareInfo.nLogModePacketHeader == 0xAB) + { + nLength = sprintf(pBuffer, "%d,%d", g_FirmwareInfo.nMx, g_FirmwareInfo.nMy); + } + else if (g_FirmwareInfo.nLogModePacketHeader == 0xA7) + { + nLength = sprintf(pBuffer, "%d,%d,%d,%d", g_FirmwareInfo.nMx, g_FirmwareInfo.nMy, g_FirmwareInfo.nSs, g_FirmwareInfo.nSd); + } + else + { + DBG("Undefined debug mode packet format : 0x%x\n", g_FirmwareInfo.nLogModePacketHeader); + nLength = 0; + } +#elif defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC) + nLength = sprintf(pBuffer, "%d", g_FirmwareInfo.nLogModePacketLength); +#endif + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsFirmwareSensorWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + DBG("*** %s() ***\n", __func__); + +// DrvIcFwLyrGetFirmwareInfo(&g_FirmwareInfo); +// if (g_ChipType == CHIP_TYPE_MSG21XXA || g_ChipType == CHIP_TYPE_MSG22XX || g_ChipType == CHIP_TYPE_MSG28XX) +// { +// g_FirmwareMode = g_FirmwareInfo.nFirmwareMode; +// } + + return nCount; +} + +ssize_t DrvMainProcfsFirmwarePacketHeaderRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + nLength = sprintf(pBuffer, "%d", g_FirmwareInfo.nLogModePacketHeader); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsFirmwarePacketHeaderWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + DBG("*** %s() ***\n", __func__); + +// DrvIcFwLyrGetFirmwareInfo(&g_FirmwareInfo); +// if (g_ChipType == CHIP_TYPE_MSG21XXA || g_ChipType == CHIP_TYPE_MSG22XX || g_ChipType == CHIP_TYPE_MSG28XX) +// { +// g_FirmwareMode = g_FirmwareInfo.nFirmwareMode; +// } + + return nCount; +} + +ssize_t DrvMainKObjectPacketShow(struct kobject *pKObj, struct kobj_attribute *pAttr, char *pBuf) +{ + u32 i = 0; + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + if (strcmp(pAttr->attr.name, "packet") == 0) + { + if (g_LogModePacket != NULL) + { + DBG("g_FirmwareMode=%x, g_LogModePacket[0]=%x, g_LogModePacket[1]=%x\n", g_FirmwareMode, g_LogModePacket[0], g_LogModePacket[1]); + DBG("g_LogModePacket[2]=%x, g_LogModePacket[3]=%x\n", g_LogModePacket[2], g_LogModePacket[3]); + DBG("g_LogModePacket[4]=%x, g_LogModePacket[5]=%x\n", g_LogModePacket[4], g_LogModePacket[5]); + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) + if ((g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE) && (g_LogModePacket[0] == 0xA5 || g_LogModePacket[0] == 0xAB || g_LogModePacket[0] == 0xA7)) +#elif defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC) + if ((g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE || g_FirmwareMode == FIRMWARE_MODE_RAW_DATA_MODE) && (g_LogModePacket[0] == 0x62)) +#endif + { + for (i = 0; i < g_FirmwareInfo.nLogModePacketLength; i ++) + { + pBuf[i] = g_LogModePacket[i]; + } + + nLength = g_FirmwareInfo.nLogModePacketLength; + DBG("nLength = %d\n", nLength); + } + else + { + DBG("CURRENT MODE IS NOT DEBUG MODE/WRONG DEBUG MODE HEADER\n"); + } + } + else + { + DBG("g_LogModePacket is NULL\n"); + } + } + else + { + DBG("pAttr->attr.name = %s \n", pAttr->attr.name); + } + + return nLength; +} + +ssize_t DrvMainKObjectPacketStore(struct kobject *pKObj, struct kobj_attribute *pAttr, const char *pBuf, size_t nCount) +{ + DBG("*** %s() ***\n", __func__); +/* + if (strcmp(pAttr->attr.name, "packet") == 0) + { + + } +*/ + return nCount; +} + +static struct kobj_attribute packet_attr = __ATTR(packet, 0666, DrvMainKObjectPacketShow, DrvMainKObjectPacketStore); + +/* Create a group of attributes so that we can create and destroy them all at once. */ +static struct attribute *attrs[] = { + &packet_attr.attr, + NULL, /* need to NULL terminate the list of attributes */ +}; + +/* + * An unnamed attribute group will put all of the attributes directly in + * the kobject directory. If we specify a name, a subdirectory will be + * created for the attributes with the directory being the name of the + * attribute group. + */ +struct attribute_group attr_group = { + .attrs = attrs, +}; + + +//------------------------------------------------------------------------------// + +ssize_t DrvMainProcfsQueryFeatureSupportStatusRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + nLength = sprintf(pBuffer, "%d", _gFeatureSupportStatus); + + DBG("*** _gFeatureSupportStatus = %d ***\n", _gFeatureSupportStatus); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsQueryFeatureSupportStatusWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nFeature; + + DBG("*** %s() ***\n", __func__); + + if (pBuffer != NULL) + { + sscanf(pBuffer, "%x", &nFeature); + DBG("nFeature = 0x%x\n", nFeature); + + if (nFeature == FEATURE_GESTURE_WAKEUP_MODE) + { + _gFeatureSupportStatus = IS_GESTURE_WAKEUP_ENABLED; + } + else if (nFeature == FEATURE_GESTURE_DEBUG_MODE) + { + _gFeatureSupportStatus = IS_GESTURE_DEBUG_MODE_ENABLED; + } + else if (nFeature == FEATURE_GESTURE_INFORMATION_MODE) + { + _gFeatureSupportStatus = IS_GESTURE_INFORMATION_MODE_ENABLED; + } + else if (nFeature == FEATURE_TOUCH_DRIVER_DEBUG_LOG) + { + _gFeatureSupportStatus = IS_TOUCH_DRIVER_DEBUG_LOG_ENABLED; + } + else if (nFeature == FEATURE_FIRMWARE_DATA_LOG) + { + _gFeatureSupportStatus = IS_FIRMWARE_DATA_LOG_ENABLED; + } + else + { + DBG("*** Undefined Feature ***\n"); + } + } + + DBG("*** _gFeatureSupportStatus = %d ***\n", _gFeatureSupportStatus); + + return nCount; +} + +ssize_t DrvMainProcfsChangeFeatureSupportStatusRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + nLength = sprintf(pBuffer, "%d", _gFeatureSupportStatus); + + DBG("*** _gFeatureSupportStatus = %d ***\n", _gFeatureSupportStatus); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsChangeFeatureSupportStatusWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 i; + u32 nFeature = 0, nNewValue = 0; + char *pCh; + char *pData = NULL; + + DBG("*** %s() ***\n", __func__); + + if (pBuffer != NULL) + { + DBG("nCount = %d\n", (int)nCount); + + pData = kmalloc(nCount, GFP_KERNEL); + if (!pData) + { + return -ENOMEM; + } + + if (copy_from_user(pData, pBuffer, nCount)) + { + DBG("copy_from_user() failed\n"); + + kfree(pData); + return -EFAULT; + } + + i = 0; + + while ((pCh = strsep((char **)&pData, " ,")) && (i < 3)) + { + DBG("pCh = %s\n", pCh); + + if (i == 0) + { + nFeature = DrvCommonConvertCharToHexDigit(pCh, strlen(pCh)); + DBG("nFeature = 0x%04X\n", nFeature); + } + else if (i == 1) + { + nNewValue = DrvCommonConvertCharToHexDigit(pCh, strlen(pCh)); + DBG("nNewValue = %d\n", nNewValue); + } + else + { + DBG("End of parsing adb command.\n"); + } + + i ++; + } + + if (nFeature == FEATURE_GESTURE_WAKEUP_MODE) + { + IS_GESTURE_WAKEUP_ENABLED = nNewValue; + _gFeatureSupportStatus = IS_GESTURE_WAKEUP_ENABLED; + } + else if (nFeature == FEATURE_GESTURE_DEBUG_MODE) + { + IS_GESTURE_DEBUG_MODE_ENABLED = nNewValue; + _gFeatureSupportStatus = IS_GESTURE_DEBUG_MODE_ENABLED; + } + else if (nFeature == FEATURE_GESTURE_INFORMATION_MODE) + { + IS_GESTURE_INFORMATION_MODE_ENABLED = nNewValue; + _gFeatureSupportStatus = IS_GESTURE_INFORMATION_MODE_ENABLED; + } + else if (nFeature == FEATURE_TOUCH_DRIVER_DEBUG_LOG) + { + IS_TOUCH_DRIVER_DEBUG_LOG_ENABLED = nNewValue; + _gFeatureSupportStatus = IS_TOUCH_DRIVER_DEBUG_LOG_ENABLED; + } + else if (nFeature == FEATURE_FIRMWARE_DATA_LOG) + { + IS_FIRMWARE_DATA_LOG_ENABLED = nNewValue; + _gFeatureSupportStatus = IS_FIRMWARE_DATA_LOG_ENABLED; + } + else + { + DBG("*** Undefined Feature ***\n"); + } + + DBG("*** _gFeatureSupportStatus = %d ***\n", _gFeatureSupportStatus); + + kfree(pData); + } + + return nCount; +} + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + +ssize_t DrvMainProcfsGestureWakeupModeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + +#ifdef CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE + DBG("g_GestureWakeupMode = 0x%x, 0x%x\n", g_GestureWakeupMode[0], g_GestureWakeupMode[1]); + + nLength = sprintf(pBuffer, "%x,%x", g_GestureWakeupMode[0], g_GestureWakeupMode[1]); +#else + DBG("g_GestureWakeupMode = 0x%x\n", g_GestureWakeupMode[0]); + + nLength = sprintf(pBuffer, "%x", g_GestureWakeupMode[0]); +#endif //CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsGestureWakeupModeWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength; + u32 nWakeupMode[2] = {0}; + + DBG("*** %s() ***\n", __func__); + + if (pBuffer != NULL) + { +#ifdef CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE + u32 i; + char *pCh; + + i = 0; + while ((pCh = strsep((char **)&pBuffer, " ,")) && (i < 2)) + { + DBG("pCh = %s\n", pCh); + + nWakeupMode[i] = DrvCommonConvertCharToHexDigit(pCh, strlen(pCh)); + + DBG("nWakeupMode[%d] = 0x%04X\n", i, nWakeupMode[i]); + i ++; + } +#else + sscanf(pBuffer, "%x", &nWakeupMode[0]); + DBG("nWakeupMode = 0x%x\n", nWakeupMode[0]); +#endif //CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE + + nLength = nCount; + DBG("nLength = %d\n", nLength); + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_DOUBLE_CLICK_FLAG) == GESTURE_WAKEUP_MODE_DOUBLE_CLICK_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_DOUBLE_CLICK_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_DOUBLE_CLICK_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_UP_DIRECT_FLAG) == GESTURE_WAKEUP_MODE_UP_DIRECT_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_UP_DIRECT_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_UP_DIRECT_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_DOWN_DIRECT_FLAG) == GESTURE_WAKEUP_MODE_DOWN_DIRECT_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_DOWN_DIRECT_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_DOWN_DIRECT_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_LEFT_DIRECT_FLAG) == GESTURE_WAKEUP_MODE_LEFT_DIRECT_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_LEFT_DIRECT_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_LEFT_DIRECT_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RIGHT_DIRECT_FLAG) == GESTURE_WAKEUP_MODE_RIGHT_DIRECT_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RIGHT_DIRECT_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RIGHT_DIRECT_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_m_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_m_CHARACTER_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_m_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_m_CHARACTER_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_W_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_W_CHARACTER_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_W_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_W_CHARACTER_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_C_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_C_CHARACTER_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_C_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_C_CHARACTER_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_e_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_e_CHARACTER_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_e_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_e_CHARACTER_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_V_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_V_CHARACTER_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_V_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_V_CHARACTER_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_O_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_O_CHARACTER_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_O_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_O_CHARACTER_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_S_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_S_CHARACTER_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_S_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_S_CHARACTER_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_Z_CHARACTER_FLAG) == GESTURE_WAKEUP_MODE_Z_CHARACTER_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_Z_CHARACTER_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_Z_CHARACTER_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE1_FLAG) == GESTURE_WAKEUP_MODE_RESERVE1_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE1_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE1_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE2_FLAG) == GESTURE_WAKEUP_MODE_RESERVE2_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE2_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE2_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE3_FLAG) == GESTURE_WAKEUP_MODE_RESERVE3_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE3_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE3_FLAG); + } + +#ifdef CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE4_FLAG) == GESTURE_WAKEUP_MODE_RESERVE4_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE4_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE4_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE5_FLAG) == GESTURE_WAKEUP_MODE_RESERVE5_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE5_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE5_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE6_FLAG) == GESTURE_WAKEUP_MODE_RESERVE6_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE6_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE6_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE7_FLAG) == GESTURE_WAKEUP_MODE_RESERVE7_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE7_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE7_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE8_FLAG) == GESTURE_WAKEUP_MODE_RESERVE8_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE8_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE8_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE9_FLAG) == GESTURE_WAKEUP_MODE_RESERVE9_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE9_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE9_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE10_FLAG) == GESTURE_WAKEUP_MODE_RESERVE10_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE10_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE10_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE11_FLAG) == GESTURE_WAKEUP_MODE_RESERVE11_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE11_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE11_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE12_FLAG) == GESTURE_WAKEUP_MODE_RESERVE12_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE12_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE12_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE13_FLAG) == GESTURE_WAKEUP_MODE_RESERVE13_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE13_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE13_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE14_FLAG) == GESTURE_WAKEUP_MODE_RESERVE14_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE14_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE14_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE15_FLAG) == GESTURE_WAKEUP_MODE_RESERVE15_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE15_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE15_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE16_FLAG) == GESTURE_WAKEUP_MODE_RESERVE16_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE16_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE16_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE17_FLAG) == GESTURE_WAKEUP_MODE_RESERVE17_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE17_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE17_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE18_FLAG) == GESTURE_WAKEUP_MODE_RESERVE18_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE18_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE18_FLAG); + } + + if ((nWakeupMode[0] & GESTURE_WAKEUP_MODE_RESERVE19_FLAG) == GESTURE_WAKEUP_MODE_RESERVE19_FLAG) + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] | GESTURE_WAKEUP_MODE_RESERVE19_FLAG; + } + else + { + g_GestureWakeupMode[0] = g_GestureWakeupMode[0] & (~GESTURE_WAKEUP_MODE_RESERVE19_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE20_FLAG) == GESTURE_WAKEUP_MODE_RESERVE20_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE20_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE20_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE21_FLAG) == GESTURE_WAKEUP_MODE_RESERVE21_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE21_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE21_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE22_FLAG) == GESTURE_WAKEUP_MODE_RESERVE22_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE22_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE22_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE23_FLAG) == GESTURE_WAKEUP_MODE_RESERVE23_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE23_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE23_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE24_FLAG) == GESTURE_WAKEUP_MODE_RESERVE24_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE24_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE24_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE25_FLAG) == GESTURE_WAKEUP_MODE_RESERVE25_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE25_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE25_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE26_FLAG) == GESTURE_WAKEUP_MODE_RESERVE26_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE26_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE26_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE27_FLAG) == GESTURE_WAKEUP_MODE_RESERVE27_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE27_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE27_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE28_FLAG) == GESTURE_WAKEUP_MODE_RESERVE28_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE28_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE28_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE29_FLAG) == GESTURE_WAKEUP_MODE_RESERVE29_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE29_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE29_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE30_FLAG) == GESTURE_WAKEUP_MODE_RESERVE30_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE30_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE30_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE31_FLAG) == GESTURE_WAKEUP_MODE_RESERVE31_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE31_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE31_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE32_FLAG) == GESTURE_WAKEUP_MODE_RESERVE32_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE32_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE32_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE33_FLAG) == GESTURE_WAKEUP_MODE_RESERVE33_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE33_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE33_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE34_FLAG) == GESTURE_WAKEUP_MODE_RESERVE34_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE34_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE34_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE35_FLAG) == GESTURE_WAKEUP_MODE_RESERVE35_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE35_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE35_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE36_FLAG) == GESTURE_WAKEUP_MODE_RESERVE36_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE36_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE36_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE37_FLAG) == GESTURE_WAKEUP_MODE_RESERVE37_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE37_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE37_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE38_FLAG) == GESTURE_WAKEUP_MODE_RESERVE38_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE38_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE38_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE39_FLAG) == GESTURE_WAKEUP_MODE_RESERVE39_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE39_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE39_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE40_FLAG) == GESTURE_WAKEUP_MODE_RESERVE40_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE40_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE40_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE41_FLAG) == GESTURE_WAKEUP_MODE_RESERVE41_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE41_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE41_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE42_FLAG) == GESTURE_WAKEUP_MODE_RESERVE42_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE42_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE42_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE43_FLAG) == GESTURE_WAKEUP_MODE_RESERVE43_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE43_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE43_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE44_FLAG) == GESTURE_WAKEUP_MODE_RESERVE44_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE44_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE44_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE45_FLAG) == GESTURE_WAKEUP_MODE_RESERVE45_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE45_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE45_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE46_FLAG) == GESTURE_WAKEUP_MODE_RESERVE46_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE46_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE46_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE47_FLAG) == GESTURE_WAKEUP_MODE_RESERVE47_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE47_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE47_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE48_FLAG) == GESTURE_WAKEUP_MODE_RESERVE48_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE48_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE48_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE49_FLAG) == GESTURE_WAKEUP_MODE_RESERVE49_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE49_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE49_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE50_FLAG) == GESTURE_WAKEUP_MODE_RESERVE50_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE50_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE50_FLAG); + } + + if ((nWakeupMode[1] & GESTURE_WAKEUP_MODE_RESERVE51_FLAG) == GESTURE_WAKEUP_MODE_RESERVE51_FLAG) + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] | GESTURE_WAKEUP_MODE_RESERVE51_FLAG; + } + else + { + g_GestureWakeupMode[1] = g_GestureWakeupMode[1] & (~GESTURE_WAKEUP_MODE_RESERVE51_FLAG); + } +#endif //CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE + + DBG("g_GestureWakeupMode = 0x%x, 0x%x\n", g_GestureWakeupMode[0], g_GestureWakeupMode[1]); + } + + return nCount; +} + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE + +ssize_t DrvMainProcfsGestureDebugModeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + DBG("g_GestureDebugMode = 0x%x\n", g_GestureDebugMode); // add for debug + + nLength = sprintf(pBuffer, "%d", g_GestureDebugMode); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsGestureDebugModeWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u8 ucGestureMode[2]; + u8 i; + char *pCh; + + if (pBuffer != NULL) + { + i = 0; + while ((pCh = strsep((char **)&pBuffer, " ,")) && (i < 2)) + { + DBG("pCh = %s\n", pCh); + + ucGestureMode[i] = DrvCommonConvertCharToHexDigit(pCh, strlen(pCh)); + + DBG("ucGestureMode[%d] = 0x%04X\n", i, ucGestureMode[i]); + i ++; + } + + g_GestureDebugMode = ucGestureMode[0]; + g_GestureDebugFlag = ucGestureMode[1]; + + DBG("Gesture flag = 0x%x\n", g_GestureDebugFlag); + + if (g_GestureDebugMode == 0x01) //open gesture debug mode + { + DrvIcFwLyrOpenGestureDebugMode(g_GestureDebugFlag); + +// input_report_key(g_InputDevice, RESERVER42, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER42, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + } + else if (g_GestureDebugMode == 0x00) //close gesture debug mode + { + DrvIcFwLyrCloseGestureDebugMode(); + } + else + { + DBG("*** Undefined Gesture Debug Mode ***\n"); + } + } + + return nCount; +} + +ssize_t DrvMainKObjectGestureDebugShow(struct kobject *pKObj, struct kobj_attribute *pAttr, char *pBuf) +{ + u32 i = 0; + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + if (strcmp(pAttr->attr.name, "gesture_debug") == 0) + { + if (g_LogGestureDebug != NULL) + { + DBG("g_LogGestureDebug[0]=%x, g_LogGestureDebug[1]=%x\n", g_LogGestureDebug[0], g_LogGestureDebug[1]); + DBG("g_LogGestureDebug[2]=%x, g_LogGestureDebug[3]=%x\n", g_LogGestureDebug[2], g_LogGestureDebug[3]); + DBG("g_LogGestureDebug[4]=%x, g_LogGestureDebug[5]=%x\n", g_LogGestureDebug[4], g_LogGestureDebug[5]); + + if (g_LogGestureDebug[0] == 0xA7 && g_LogGestureDebug[3] == 0x51) + { + for (i = 0; i < 0x80; i ++) + { + pBuf[i] = g_LogGestureDebug[i]; + } + + nLength = 0x80; + DBG("nLength = %d\n", nLength); + } + else + { + DBG("CURRENT MODE IS NOT GESTURE DEBUG MODE/WRONG GESTURE DEBUG MODE HEADER\n"); + } + } + else + { + DBG("g_LogGestureDebug is NULL\n"); + } + } + else + { + DBG("pAttr->attr.name = %s \n", pAttr->attr.name); + } + + return nLength; +} + +ssize_t DrvMainKObjectGestureDebugStore(struct kobject *pKObj, struct kobj_attribute *pAttr, const char *pBuf, size_t nCount) +{ + DBG("*** %s() ***\n", __func__); +/* + if (strcmp(pAttr->attr.name, "packet") == 0) + { + + } +*/ + return nCount; +} + +static struct kobj_attribute gesture_attr = __ATTR(gesture_debug, 0666, DrvMainKObjectGestureDebugShow, DrvMainKObjectGestureDebugStore); + +/* Create a group of attributes so that we can create and destroy them all at once. */ +static struct attribute *gestureattrs[] = { + &gesture_attr.attr, + NULL, /* need to NULL terminate the list of attributes */ +}; + +/* + * An unnamed attribute group will put all of the attributes directly in + * the kobject directory. If we specify a name, a subdirectory will be + * created for the attributes with the directory being the name of the + * attribute group. + */ +struct attribute_group gestureattr_group = { + .attrs = gestureattrs, +}; + +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE + +ssize_t DrvMainProcfsGestureInforModeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u8 szOut[GESTURE_WAKEUP_INFORMATION_PACKET_LENGTH*5] = {0}, szValue[10] = {0}; + u32 szLogGestureInfo[GESTURE_WAKEUP_INFORMATION_PACKET_LENGTH] = {0}; + u32 i = 0; + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + _gLogGestureCount = 0; + if (_gLogGestureInforType == FIRMWARE_GESTURE_INFORMATION_MODE_A) //FIRMWARE_GESTURE_INFORMATION_MODE_A + { + for (i = 0; i < 2; i ++)//0 EventFlag; 1 RecordNum + { + szLogGestureInfo[_gLogGestureCount] = g_LogGestureInfor[4 + i]; + _gLogGestureCount ++; + } + + for (i = 2; i < 8; i ++)//2~3 Xst Yst; 4~5 Xend Yend; 6~7 char_width char_height + { + szLogGestureInfo[_gLogGestureCount] = g_LogGestureInfor[4 + i]; + _gLogGestureCount ++; + } + } + else if (_gLogGestureInforType == FIRMWARE_GESTURE_INFORMATION_MODE_B) //FIRMWARE_GESTURE_INFORMATION_MODE_B + { + for (i = 0; i < 2; i ++)//0 EventFlag; 1 RecordNum + { + szLogGestureInfo[_gLogGestureCount] = g_LogGestureInfor[4 + i]; + _gLogGestureCount ++; + } + + for (i = 0; i< g_LogGestureInfor[5]*2 ; i ++)//(X and Y)*RecordNum + { + szLogGestureInfo[_gLogGestureCount] = g_LogGestureInfor[12 + i]; + _gLogGestureCount ++; + } + } + else if (_gLogGestureInforType == FIRMWARE_GESTURE_INFORMATION_MODE_C) //FIRMWARE_GESTURE_INFORMATION_MODE_C + { + for (i = 0; i < 6; i ++)//header + { + szLogGestureInfo[_gLogGestureCount] = g_LogGestureInfor[i]; + _gLogGestureCount ++; + } + + for (i = 6; i < 86; i ++) + { + szLogGestureInfo[_gLogGestureCount] = g_LogGestureInfor[i]; + _gLogGestureCount ++; + } + + szLogGestureInfo[_gLogGestureCount] = g_LogGestureInfor[86];//dummy + _gLogGestureCount ++; + szLogGestureInfo[_gLogGestureCount] = g_LogGestureInfor[87];//checksum + _gLogGestureCount++; + } + else + { + DBG("*** Undefined GESTURE INFORMATION MODE ***\n"); + } + + for (i = 0; i < _gLogGestureCount; i ++) + { + sprintf(szValue, "%d", szLogGestureInfo[i]); + strcat(szOut, szValue); + strcat(szOut, ","); + } + + nLength = sprintf(pBuffer, "%s\n", szOut); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsGestureInforModeWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nMode; + + DBG("*** %s() ***\n", __func__); + + if (pBuffer != NULL) + { + sscanf(pBuffer, "%x", &nMode); + _gLogGestureInforType = nMode; + } + + DBG("*** _gLogGestureInforType type = 0x%x ***\n", _gLogGestureInforType); + + return nCount; +} + +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE + +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +/*--------------------------------------------------------------------------*/ + +#ifdef CONFIG_ENABLE_COUNT_REPORT_RATE +ssize_t DrvMainProcfsReportRateRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + struct timeval tEndTime; + suseconds_t nStartTime, nEndTime, nElapsedTime; + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + DBG("g_InterruptCount = %d, g_ValidTouchCount = %d\n", g_InterruptCount, g_ValidTouchCount); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + // Get end time + do_gettimeofday(&tEndTime); + + nStartTime = g_StartTime.tv_sec + g_StartTime.tv_usec/1000000; + nEndTime = tEndTime.tv_sec + tEndTime.tv_usec/1000000; + + nElapsedTime = nEndTime - nStartTime; + + DBG("Start time : %lu sec, %lu msec\n", g_StartTime.tv_sec, g_StartTime.tv_usec); + DBG("End time : %lu sec, %lu msec\n", tEndTime.tv_sec, tEndTime.tv_usec); + + DBG("Elapsed time : %lu sec\n", nElapsedTime); + + // Calculate report rate + if (nElapsedTime != 0) + { + g_InterruptReportRate = g_InterruptCount / nElapsedTime; + g_ValidTouchReportRate = g_ValidTouchCount / nElapsedTime; + } + else + { + g_InterruptReportRate = 0; + g_ValidTouchReportRate = 0; + } + + DBG("g_InterruptReportRate = %d, g_ValidTouchReportRate = %d\n", g_InterruptReportRate, g_ValidTouchReportRate); + + g_InterruptCount = 0; // Reset count + g_ValidTouchCount = 0; + + nLength = sprintf(pBuffer, "%d,%d", g_InterruptReportRate, g_ValidTouchReportRate); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsReportRateWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + DBG("*** %s() ***\n", __func__); + + if (pBuffer != NULL) + { + sscanf(pBuffer, "%d", &g_IsEnableReportRate); + + DBG("g_IsEnableReportRate = %d\n", g_IsEnableReportRate); // 1 : enable report rate calculation, 0 : disable report rate calculation, 2 : reset count + + g_InterruptCount = 0; // Reset count + g_ValidTouchCount = 0; + } + + return nCount; +} +#endif //CONFIG_ENABLE_COUNT_REPORT_RATE + +/*--------------------------------------------------------------------------*/ + +#ifdef CONFIG_ENABLE_GLOVE_MODE +ssize_t DrvMainProcfsGloveModeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + u8 ucGloveMode = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + if (g_ChipType == CHIP_TYPE_MSG28XX) + { + DrvPlatformLyrDisableFingerTouchReport(); + + DrvIcFwLyrGetGloveInfo(&ucGloveMode); + + DrvPlatformLyrEnableFingerTouchReport(); + + DBG("Glove Mode = 0x%x\n", ucGloveMode); + + nLength = sprintf(pBuffer, "%x", ucGloveMode); + } + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsGloveModeWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nGloveMode = 0; + u32 i = 0; + char *pCh = NULL; + + DBG("*** %s() ***\n", __func__); + + if (pBuffer != NULL) + { + i = 0; + while ((pCh = strsep((char **)&pBuffer, ",")) && (i < 1)) + { + DBG("pCh = %s\n", pCh); + + nGloveMode = DrvCommonConvertCharToHexDigit(pCh, strlen(pCh)); + + i ++; + } + + DBG("Glove Mode = 0x%x\n", nGloveMode); + + DrvPlatformLyrDisableFingerTouchReport(); + + if (nGloveMode == 0x01) //open glove mode + { + DrvIcFwLyrOpenGloveMode(); + g_IsEnableGloveMode = 1; + } + else if (nGloveMode == 0x00) //close glove mode + { + DrvIcFwLyrCloseGloveMode(); + g_IsEnableGloveMode = 0; + } + else + { + DBG("*** Undefined Glove Mode ***\n"); + } + DBG("g_IsEnableGloveMode = 0x%x\n", g_IsEnableGloveMode); + + DrvPlatformLyrEnableFingerTouchReport(); + } + + return nCount; +} + +ssize_t DrvMainProcfsOpenGloveModeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + if (g_ChipType == CHIP_TYPE_MSG28XX) + { + DrvPlatformLyrDisableFingerTouchReport(); + + DrvIcFwLyrOpenGloveMode(); + g_IsEnableGloveMode = 1; + + DrvPlatformLyrEnableFingerTouchReport(); + } + DBG("g_IsEnableGloveMode = 0x%x\n", g_IsEnableGloveMode); + + *pPos += nLength; + + return nLength; +} + +ssize_t DrvMainProcfsCloseGloveModeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos) +{ + u32 nLength = 0; + + DBG("*** %s() ***\n", __func__); + + // If file position is non-zero, then assume the string has been read and indicate there is no more data to be read. + if (*pPos != 0) + { + return 0; + } + + if (g_ChipType == CHIP_TYPE_MSG28XX) + { + DrvPlatformLyrDisableFingerTouchReport(); + + DrvIcFwLyrCloseGloveMode(); + g_IsEnableGloveMode = 0; + + DrvPlatformLyrEnableFingerTouchReport(); + } + DBG("g_IsEnableGloveMode = 0x%x\n", g_IsEnableGloveMode); + + *pPos += nLength; + + return nLength; +} +#endif //CONFIG_ENABLE_GLOVE_MODE + + +#ifdef CONFIG_ENABLE_HOTKNOT +static long hotknot_ioctl( struct file *file, unsigned int cmd, unsigned long arg ) +{ + long nRet = 0; + + DBG("*** %s ***\n", __FUNCTION__); + + if (g_IsBypassHotknot == 0) + { + mutex_lock(&g_HKMutex); + g_IsHotknotAlive = 1; + nRet = HotKnotIoctl(file, cmd, arg); + g_IsHotknotAlive = 0; + mutex_unlock(&g_HKMutex); + } + + return nRet; +} + +static int hotknot_value; + +static ssize_t hotknot_value_show( struct kobject *kobj, struct kobj_attribute *attr, char *buf ) +{ + return sprintf( buf, "%d\n", hotknot_value ); +} + +static ssize_t hotknot_value_store( struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count ) +{ + sscanf( buf, "%d", &hotknot_value ); + + return count; +} + +static struct kobj_attribute hotknot_value_attr = __ATTR( hotknot_value, 0666, hotknot_value_show, hotknot_value_store ); +static struct attribute *hotknot_attrs[] = +{ + &hotknot_value_attr.attr, 0 +}; + +static struct attribute_group hotknot_attr_group = +{ + .attrs = hotknot_attrs +}; + +static const struct file_operations hotknot_fops = +{ + .owner = THIS_MODULE, + .unlocked_ioctl = hotknot_ioctl +}; + +//static struct miscdevice hotknot_miscdevice = +struct miscdevice hotknot_miscdevice = +{ + .minor = MISC_DYNAMIC_MINOR, + .name = "hotknot", + .nodename = "hotknot", + .mode = 0666, + .fops = &hotknot_fops +}; +#endif //CONFIG_ENABLE_HOTKNOT + +//------------------------------------------------------------------------------// + +s32 DrvMainTouchDeviceInitialize(void) +{ + s32 nRetVal = 0; +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + int nErr; + struct hwmsen_object tObjPs; +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + + DBG("*** %s() ***\n", __func__); + + _DrvMainCreateProcfsDirEntry(); // Create procfs directory entry + +#ifdef CONFIG_ENABLE_HOTKNOT + _DrvMainHotknotRegistry(); //register hotknot here... +#endif //CONFIG_ENABLE_HOTKNOT + +#ifdef CONFIG_ENABLE_JNI_INTERFACE + CreateMsgToolMem(); +#endif //CONFIG_ENABLE_JNI_INTERFACE + +#ifdef CONFIG_ENABLE_ITO_MP_TEST + DrvIcFwLyrCreateMpTestWorkQueue(); +#endif //CONFIG_ENABLE_ITO_MP_TEST + + g_ChipType = DrvIcFwLyrGetChipType(); // Try to get chip type by SLAVE_I2C_ID_DBBUS(0x62) firstly. + + if (g_ChipType == 0) // If failed, try to get chip type by SLAVE_I2C_ID_DBBUS(0x59) again. + { + SLAVE_I2C_ID_DBBUS = (0xB2>>1); //0x59 + + g_ChipType = DrvIcFwLyrGetChipType(); + } + + DrvPlatformLyrTouchDeviceResetHw(); + + if (g_ChipType != 0) // To make sure TP is attached on cell phone. + { + memset(&g_FirmwareInfo, 0x0, sizeof(FirmwareInfo_t)); + + DrvIcFwLyrVariableInitialize(); + +#ifdef CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) + DrvIcFwLyrGetTouchPacketAddress(&g_FwPacketDataAddress, &g_FwPacketFlagAddress); +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC +#endif //CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + tsps_assist_register_callback("msg2xxx", &DrvPlatformLyrTpPsEnable, &DrvPlatformLyrGetTpPsData); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + tObjPs.polling = 0; //interrupt mode + tObjPs.sensor_operate = DrvPlatformLyrTpPsOperate; + + if ((nErr = hwmsen_attach(ID_PROXIMITY, &tObjPs))) + { + DBG("call hwmsen_attach() failed = %d\n", nErr); + } +#endif +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + } + else + { + nRetVal = -ENODEV; + } + + return nRetVal; +} + +/*=============================================================*/ +// LOCAL FUNCTION DEFINITION +/*=============================================================*/ + +static s32 _DrvMainCreateProcfsDirEntry(void) +{ + s32 nRetVal = 0; + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE + u8 *pGesturePath = NULL; +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + u8 *pDevicePath = NULL; + + DBG("*** %s() ***\n", __func__); + + _gProcClass = proc_mkdir(PROC_NODE_CLASS, NULL); + + _gProcMsTouchScreenMsg20xx = proc_mkdir(PROC_NODE_MS_TOUCHSCREEN_MSG20XX, _gProcClass); + + _gProcDevice = proc_mkdir(PROC_NODE_DEVICE, _gProcMsTouchScreenMsg20xx); + + if (NULL == proc_create(PROC_NODE_CHIP_TYPE, PROCFS_AUTHORITY, _gProcDevice, &_gProcChipType)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_CHIP_TYPE); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_CHIP_TYPE); + } + + if (NULL == proc_create(PROC_NODE_FIRMWARE_DATA, PROCFS_AUTHORITY, _gProcDevice, &_gProcFirmwareData)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_FIRMWARE_DATA); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_FIRMWARE_DATA); + } + + if (NULL == proc_create(PROC_NODE_FIRMWARE_UPDATE, PROCFS_AUTHORITY, _gProcDevice, &_gProcApkFirmwareUpdate)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_FIRMWARE_UPDATE); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_FIRMWARE_UPDATE); + } + + if (NULL == proc_create(PROC_NODE_CUSTOMER_FIRMWARE_VERSION, PROCFS_AUTHORITY, _gProcDevice, &_gProcCustomerFirmwareVersion)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_CUSTOMER_FIRMWARE_VERSION); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_CUSTOMER_FIRMWARE_VERSION); + } + + if (NULL == proc_create(PROC_NODE_PLATFORM_FIRMWARE_VERSION, PROCFS_AUTHORITY, _gProcDevice, &_gProcPlatformFirmwareVersion)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_PLATFORM_FIRMWARE_VERSION); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_PLATFORM_FIRMWARE_VERSION); + } + + if (NULL == proc_create(PROC_NODE_DEVICE_DRIVER_VERSION, PROCFS_AUTHORITY, _gProcDevice, &_gProcDeviceDriverVersion)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_DEVICE_DRIVER_VERSION); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_DEVICE_DRIVER_VERSION); + } + + if (NULL == proc_create(PROC_NODE_SDCARD_FIRMWARE_UPDATE, PROCFS_AUTHORITY, _gProcDevice, &_gProcSdCardFirmwareUpdate)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_SDCARD_FIRMWARE_UPDATE); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_SDCARD_FIRMWARE_UPDATE); + } + + if (NULL == proc_create(PROC_NODE_FIRMWARE_DEBUG, PROCFS_AUTHORITY, _gProcDevice, &_gProcFirmwareDebug)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_FIRMWARE_DEBUG); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_FIRMWARE_DEBUG); + } + + if (NULL == proc_create(PROC_NODE_FIRMWARE_SET_DEBUG_VALUE, PROCFS_AUTHORITY, _gProcDevice, &_gProcFirmwareSetDebugValue)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_FIRMWARE_SET_DEBUG_VALUE); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_FIRMWARE_SET_DEBUG_VALUE); + } + + if (NULL == proc_create(PROC_NODE_FIRMWARE_SMBUS_DEBUG, PROCFS_AUTHORITY, _gProcDevice, &_gProcFirmwareSmBusDebug)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_FIRMWARE_SMBUS_DEBUG); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_FIRMWARE_SMBUS_DEBUG); + } + + if (NULL == proc_create(PROC_NODE_FIRMWARE_SET_DQMEM_VALUE, PROCFS_AUTHORITY, _gProcDevice, &_gProcFirmwareSetDQMemValue)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_FIRMWARE_SET_DQMEM_VALUE); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_FIRMWARE_SET_DQMEM_VALUE); + } + +#ifdef CONFIG_ENABLE_ITO_MP_TEST + if (NULL == proc_create(PROC_NODE_MP_TEST, PROCFS_AUTHORITY, _gProcDevice, &_gProcMpTest)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_MP_TEST); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_MP_TEST); + } + + if (NULL == proc_create(PROC_NODE_MP_TEST_LOG, PROCFS_AUTHORITY, _gProcDevice, &_gProcMpTestLog)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_MP_TEST_LOG); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_MP_TEST_LOG); + } + + if (NULL == proc_create(PROC_NODE_MP_TEST_FAIL_CHANNEL, PROCFS_AUTHORITY, _gProcDevice, &_gProcMpTestFailChannel)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_MP_TEST_FAIL_CHANNEL); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_MP_TEST_FAIL_CHANNEL); + } + + if (NULL == proc_create(PROC_NODE_MP_TEST_SCOPE, PROCFS_AUTHORITY, _gProcDevice, &_gProcMpTestScope)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_MP_TEST_SCOPE); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_MP_TEST_SCOPE); + } +#endif //CONFIG_ENABLE_ITO_MP_TEST + + + if (NULL == proc_create(PROC_NODE_FIRMWARE_MODE, PROCFS_AUTHORITY, _gProcDevice, &_gProcFirmwareMode)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_FIRMWARE_MODE); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_FIRMWARE_MODE); + } + + if (NULL == proc_create(PROC_NODE_FIRMWARE_SENSOR, PROCFS_AUTHORITY, _gProcDevice, &_gProcFirmwareSensor)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_FIRMWARE_SENSOR); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_FIRMWARE_SENSOR); + } + + if (NULL == proc_create(PROC_NODE_FIRMWARE_PACKET_HEADER, PROCFS_AUTHORITY, _gProcDevice, &_gProcFirmwarePacketHeader)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_FIRMWARE_PACKET_HEADER); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_FIRMWARE_PACKET_HEADER); + } + + /* create a kset with the name of "kset_example" which is located under /sys/kernel/ */ + g_TouchKSet = kset_create_and_add("kset_example", NULL, kernel_kobj); + if (!g_TouchKSet) + { + DBG("*** kset_create_and_add() failed, nRetVal = %d ***\n", nRetVal); + + nRetVal = -ENOMEM; + } + + g_TouchKObj = kobject_create(); + if (!g_TouchKObj) + { + DBG("*** kobject_create() failed, nRetVal = %d ***\n", nRetVal); + + nRetVal = -ENOMEM; + kset_unregister(g_TouchKSet); + g_TouchKSet = NULL; + } + + g_TouchKObj->kset = g_TouchKSet; + + nRetVal = kobject_add(g_TouchKObj, NULL, "%s", "kobject_example"); + if (nRetVal != 0) + { + DBG("*** kobject_add() failed, nRetVal = %d ***\n", nRetVal); + + kobject_put(g_TouchKObj); + g_TouchKObj = NULL; + kset_unregister(g_TouchKSet); + g_TouchKSet = NULL; + } + + /* create the files associated with this kobject */ + nRetVal = sysfs_create_group(g_TouchKObj, &attr_group); + if (nRetVal != 0) + { + DBG("*** sysfs_create_file() failed, nRetVal = %d ***\n", nRetVal); + + kobject_put(g_TouchKObj); + g_TouchKObj = NULL; + kset_unregister(g_TouchKSet); + g_TouchKSet = NULL; + } + + pDevicePath = kobject_get_path(g_TouchKObj, GFP_KERNEL); + DBG("DEVPATH = %s\n", pDevicePath); + + + if (NULL == proc_create(PROC_NODE_QUERY_FEATURE_SUPPORT_STATUS, PROCFS_AUTHORITY, _gProcDevice, &_gProcQueryFeatureSupportStatus)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_QUERY_FEATURE_SUPPORT_STATUS); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_QUERY_FEATURE_SUPPORT_STATUS); + } + + if (NULL == proc_create(PROC_NODE_CHANGE_FEATURE_SUPPORT_STATUS, PROCFS_AUTHORITY, _gProcDevice, &_gProcChangeFeatureSupportStatus)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_CHANGE_FEATURE_SUPPORT_STATUS); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_CHANGE_FEATURE_SUPPORT_STATUS); + } + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + if (NULL == proc_create(PROC_NODE_GESTURE_WAKEUP_MODE, PROCFS_AUTHORITY, _gProcDevice, &_gProcGestureWakeupMode)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_GESTURE_WAKEUP_MODE); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_GESTURE_WAKEUP_MODE); + } + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE + if (NULL == proc_create(PROC_NODE_GESTURE_DEBUG_MODE, PROCFS_AUTHORITY, _gProcDevice, &_gProcGestureDebugMode)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_GESTURE_DEBUG_MODE); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_GESTURE_DEBUG_MODE); + } + + /* create a kset with the name of "kset_gesture" which is located under /sys/kernel/ */ + g_GestureKSet = kset_create_and_add("kset_gesture", NULL, kernel_kobj); + if (!g_GestureKSet) + { + DBG("*** kset_create_and_add() failed, nRetVal = %d ***\n", nRetVal); + nRetVal = -ENOMEM; + } + + g_GestureKObj = kobject_create(); + if (!g_GestureKObj) + { + DBG("*** kobject_create() failed, nRetVal = %d ***\n", nRetVal); + + nRetVal = -ENOMEM; + kset_unregister(g_GestureKSet); + g_GestureKSet = NULL; + } + + g_GestureKObj->kset = g_GestureKSet; + + nRetVal = kobject_add(g_GestureKObj, NULL, "%s", "kobject_gesture"); + if (nRetVal != 0) + { + DBG("*** kobject_add() failed, nRetVal = %d ***\n", nRetVal); + + kobject_put(g_GestureKObj); + g_GestureKObj = NULL; + kset_unregister(g_GestureKSet); + g_GestureKSet = NULL; + } + + /* create the files associated with this g_GestureKObj */ + nRetVal = sysfs_create_group(g_GestureKObj, &gestureattr_group); + if (nRetVal != 0) + { + DBG("*** sysfs_create_file() failed, nRetVal = %d ***\n", nRetVal); + + kobject_put(g_GestureKObj); + g_GestureKObj = NULL; + kset_unregister(g_GestureKSet); + g_GestureKSet = NULL; + } + + pGesturePath = kobject_get_path(g_GestureKObj, GFP_KERNEL); + DBG("DEVPATH = %s\n", pGesturePath); +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE + if (NULL == proc_create(PROC_NODE_GESTURE_INFORMATION_MODE, PROCFS_AUTHORITY, _gProcDevice, &_gProcGestureInforMode)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_GESTURE_INFORMATION_MODE); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_GESTURE_INFORMATION_MODE); + } +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_COUNT_REPORT_RATE + if (NULL == proc_create(PROC_NODE_REPORT_RATE, PROCFS_AUTHORITY, _gProcDevice, &_gProcReportRate)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_REPORT_RATE); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_REPORT_RATE); + } +#endif //CONFIG_ENABLE_COUNT_REPORT_RATE + +#ifdef CONFIG_ENABLE_GLOVE_MODE + if (NULL == proc_create(PROC_NODE_GLOVE_MODE, PROCFS_AUTHORITY, _gProcDevice, &_gProcGloveMode)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_GLOVE_MODE); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_GLOVE_MODE); + } + + if (NULL == proc_create(PROC_NODE_OPEN_GLOVE_MODE, PROCFS_AUTHORITY, _gProcDevice, &_gProcOpenGloveMode)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_OPEN_GLOVE_MODE); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_OPEN_GLOVE_MODE); + } + + if (NULL == proc_create(PROC_NODE_CLOSE_GLOVE_MODE, PROCFS_AUTHORITY, _gProcDevice, &_gProcCloseGloveMode)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_CLOSE_GLOVE_MODE); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_CLOSE_GLOVE_MODE); + } +#endif //CONFIG_ENABLE_GLOVE_MODE + +#ifdef CONFIG_ENABLE_JNI_INTERFACE + if (NULL == proc_create(PROC_NODE_JNI_NODE, PROCFS_AUTHORITY, _gProcDevice, &_gProcJniMethod)) + { + DBG("Failed to create procfs file node(%s)!\n", PROC_NODE_JNI_NODE); + } + else + { + DBG("Create procfs file node(%s) OK!\n", PROC_NODE_JNI_NODE); + } +#endif //CONFIG_ENABLE_JNI_INTERFACE + + return nRetVal; +} + +#ifdef CONFIG_ENABLE_HOTKNOT +//register hotknot ioctl handler +static s32 _DrvMainHotknotRegistry(void) +{ + s32 nRetVal = 0; + + nRetVal = misc_register( &hotknot_miscdevice ); + if ( nRetVal < 0 ) + { + DBG( "Failed to register misc device. Err:%d\n", nRetVal ); + } + DBG( "*** Misc device registered ***\n" ); + + nRetVal = sysfs_create_group( &hotknot_miscdevice.this_device->kobj, &hotknot_attr_group ); + if ( nRetVal < 0 ) + { + DBG( "Failed to create attribute group. Err:%d\n", nRetVal ); + //misc_deregister( &hotknot_miscdevice ); + } + DBG( "*** Attribute group created ***\n" ); + + mutex_init(&g_HKMutex); + mutex_init(&g_QMutex); + CreateQueue(); + CreateHotKnotMem(); + + return nRetVal; +} +#endif //CONFIG_ENABLE_HOTKNOT diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_main.h b/drivers/input/touchscreen/msg2233/mstar_drv_main.h new file mode 100644 index 00000000..e298ffeb --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_main.h @@ -0,0 +1,186 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_main.h + * + * @brief This file defines the interface of touch screen + * + * + */ + +#ifndef __MSTAR_DRV_MAIN_H__ +#define __MSTAR_DRV_MAIN_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include "mstar_drv_common.h" + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR CONSTANT DEFINITION */ +/*--------------------------------------------------------------------------*/ + +#define PROC_NODE_CLASS "class" +#define PROC_NODE_MS_TOUCHSCREEN_MSG20XX "ms-touchscreen-msg20xx" +#define PROC_NODE_DEVICE "device" +#define PROC_NODE_CHIP_TYPE "chip_type" +#define PROC_NODE_FIRMWARE_DATA "data" +#define PROC_NODE_FIRMWARE_UPDATE "update" +#define PROC_NODE_CUSTOMER_FIRMWARE_VERSION "version" +#define PROC_NODE_PLATFORM_FIRMWARE_VERSION "platform_version" +#define PROC_NODE_DEVICE_DRIVER_VERSION "driver_version" +#define PROC_NODE_SDCARD_FIRMWARE_UPDATE "sdcard_update" +#define PROC_NODE_FIRMWARE_DEBUG "debug" +#define PROC_NODE_FIRMWARE_SET_DEBUG_VALUE "set_debug_value" +#define PROC_NODE_FIRMWARE_SMBUS_DEBUG "smbus_debug" + +#define PROC_NODE_FIRMWARE_SET_DQMEM_VALUE "set_dqmem_value" + +#ifdef CONFIG_ENABLE_ITO_MP_TEST +#define PROC_NODE_MP_TEST "test" +#define PROC_NODE_MP_TEST_LOG "test_log" +#define PROC_NODE_MP_TEST_FAIL_CHANNEL "test_fail_channel" +#define PROC_NODE_MP_TEST_SCOPE "test_scope" +#endif //CONFIG_ENABLE_ITO_MP_TEST + +#define PROC_NODE_FIRMWARE_MODE "mode" +#define PROC_NODE_FIRMWARE_SENSOR "sensor" +#define PROC_NODE_FIRMWARE_PACKET_HEADER "header" + +#define PROC_NODE_QUERY_FEATURE_SUPPORT_STATUS "query_feature_support_status" +#define PROC_NODE_CHANGE_FEATURE_SUPPORT_STATUS "change_feature_support_status" + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +#define PROC_NODE_GESTURE_WAKEUP_MODE "gesture_wakeup_mode" +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +#define PROC_NODE_GESTURE_DEBUG_MODE "gesture_debug" +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE +#define PROC_NODE_GESTURE_INFORMATION_MODE "gesture_infor" +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_COUNT_REPORT_RATE +#define PROC_NODE_REPORT_RATE "report_rate" +#endif //CONFIG_ENABLE_COUNT_REPORT_RATE + +#ifdef CONFIG_ENABLE_GLOVE_MODE +#define PROC_NODE_GLOVE_MODE "glove_mode" +#define PROC_NODE_OPEN_GLOVE_MODE "open_glove_mode" +#define PROC_NODE_CLOSE_GLOVE_MODE "close_glove_mode" +#endif //CONFIG_ENABLE_GLOVE_MODE + +#ifdef CONFIG_ENABLE_JNI_INTERFACE +#define PROC_NODE_JNI_NODE "msgtool" +#endif //CONFIG_ENABLE_JNI_INTERFACE + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR MACRO DEFINITION */ +/*--------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------*/ +/* DATA TYPE DEFINITION */ +/*--------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +extern ssize_t DrvMainProcfsChipTypeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsChipTypeWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwareDataRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwareDataWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwareUpdateRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwareUpdateWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsCustomerFirmwareVersionRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsCustomerFirmwareVersionWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsPlatformFirmwareVersionRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsPlatformFirmwareVersionWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsDeviceDriverVersionRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsDeviceDriverVersionWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsSdCardFirmwareUpdateRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsSdCardFirmwareUpdateWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwareDebugRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwareDebugWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwareSetDebugValueRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwareSetDebugValueWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwareSmBusDebugRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwareSmBusDebugWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); + +extern ssize_t DrvMainProcfsFirmwareSetDQMemValueRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwareSetDQMemValueWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); + +#ifdef CONFIG_ENABLE_ITO_MP_TEST +extern ssize_t DrvMainProcfsMpTestRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsMpTestWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsMpTestLogRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsMpTestLogWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsMpTestFailChannelRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsMpTestFailChannelWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsMpTestScopeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsMpTestScopeWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +#endif //CONFIG_ENABLE_ITO_MP_TEST + +extern ssize_t DrvMainProcfsFirmwareModeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwareModeWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwareSensorRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwareSensorWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwarePacketHeaderRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsFirmwarePacketHeaderWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainKObjectPacketShow(struct kobject *pKObj, struct kobj_attribute *pAttr, char *pBuf); +extern ssize_t DrvMainKObjectPacketStore(struct kobject *pKObj, struct kobj_attribute *pAttr, const char *pBuf, size_t nCount); + +extern ssize_t DrvMainProcfsQueryFeatureSupportStatusRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsQueryFeatureSupportStatusWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsChangeFeatureSupportStatusRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsChangeFeatureSupportStatusWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +extern ssize_t DrvMainProcfsGestureWakeupModeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsGestureWakeupModeWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +extern ssize_t DrvMainProcfsGestureDebugModeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsGestureDebugModeWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainKObjectGestureDebugShow(struct kobject *pKObj, struct kobj_attribute *pAttr, char *pBuf); +extern ssize_t DrvMainKObjectGestureDebugStore(struct kobject *pKObj, struct kobj_attribute *pAttr, const char *pBuf, size_t nCount); +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE +extern ssize_t DrvMainProcfsGestureInforModeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsGestureInforModeWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_COUNT_REPORT_RATE +extern ssize_t DrvMainProcfsReportRateRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsReportRateWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +#endif //CONFIG_ENABLE_COUNT_REPORT_RATE + +#ifdef CONFIG_ENABLE_GLOVE_MODE +extern ssize_t DrvMainProcfsGloveModeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsGloveModeWrite(struct file *pFile, const char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsOpenGloveModeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +extern ssize_t DrvMainProcfsCloseGloveModeRead(struct file *pFile, char __user *pBuffer, size_t nCount, loff_t *pPos); +#endif //CONFIG_ENABLE_GLOVE_MODE + +extern s32 DrvMainTouchDeviceInitialize(void); + +#endif /* __MSTAR_DRV_MAIN_H__ */ diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_mtk.c b/drivers/input/touchscreen/msg2233/mstar_drv_mtk.c new file mode 100644 index 00000000..3d4eb087 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_mtk.c @@ -0,0 +1,275 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_mtk.c + * + * @brief This file defines the interface of touch screen + * + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +#include "tpd.h" +#include "cust_gpio_usage.h" + +#include "mstar_drv_platform_interface.h" + +/*=============================================================*/ +// CONSTANT VALUE DEFINITION +/*=============================================================*/ + +#define MSG_TP_IC_NAME "msg2xxx" //"msg21xxA" or "msg22xx" or "msg26xxM" /* Please define the mstar touch ic name based on the mutual-capacitive ic or self capacitive ic that you are using */ +#define I2C_BUS_ID (1) // i2c bus id : 0 or 1 + +#define TPD_OK (0) + +/*=============================================================*/ +// EXTERN VARIABLE DECLARATION +/*=============================================================*/ + +#ifdef CONFIG_TP_HAVE_KEY +extern const int g_TpVirtualKey[]; + +#ifdef CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE +extern const int g_TpVirtualKeyDimLocal[][4]; +#endif //CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE +#endif //CONFIG_TP_HAVE_KEY + +extern struct tpd_device *tpd; + +/*=============================================================*/ +// LOCAL VARIABLE DEFINITION +/*=============================================================*/ + +/* +#if (defined(TPD_WARP_START) && defined(TPD_WARP_END)) +static int tpd_wb_start_local[TPD_WARP_CNT] = TPD_WARP_START; +static int tpd_wb_end_local[TPD_WARP_CNT] = TPD_WARP_END; +#endif + +#if (defined(TPD_HAVE_CALIBRATION) && !defined(TPD_CUSTOM_CALIBRATION)) +static int tpd_calmat_local[8] = TPD_CALIBRATION_MATRIX; +static int tpd_def_calmat_local[8] = TPD_CALIBRATION_MATRIX; +#endif +*/ +struct i2c_client *g_I2cClient = NULL; + +//static int boot_mode = 0; + +/*=============================================================*/ +// FUNCTION DECLARATION +/*=============================================================*/ + +/*=============================================================*/ +// FUNCTION DEFINITION +/*=============================================================*/ + +/* probe function is used for matching and initializing input device */ +static int /*__devinit*/ tpd_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + TPD_DMESG("TPD probe\n"); + + if (client == NULL) + { + TPD_DMESG("i2c client is NULL\n"); + return -1; + } + g_I2cClient = client; + + MsDrvInterfaceTouchDeviceSetIicDataRate(g_I2cClient, 100000); // 100 KHZ + + MsDrvInterfaceTouchDeviceProbe(g_I2cClient, id); + + tpd_load_status = 1; + + TPD_DMESG("TPD probe done\n"); + + return TPD_OK; +} + +static int tpd_detect(struct i2c_client *client, struct i2c_board_info *info) +{ + strcpy(info->type, TPD_DEVICE); +// strcpy(info->type, MSG_TP_IC_NAME); + + return TPD_OK; +} + +static int /*__devexit*/ tpd_remove(struct i2c_client *client) +{ + TPD_DEBUG("TPD removed\n"); + + MsDrvInterfaceTouchDeviceRemove(client); + + return TPD_OK; +} + +static struct i2c_board_info __initdata i2c_tpd = {I2C_BOARD_INFO(MSG_TP_IC_NAME, (0x4C>>1))}; + +/* The I2C device list is used for matching I2C device and I2C device driver. */ +static const struct i2c_device_id tpd_device_id[] = +{ + {MSG_TP_IC_NAME, 0}, + {}, /* should not omitted */ +}; + +MODULE_DEVICE_TABLE(i2c, tpd_device_id); + +static struct i2c_driver tpd_i2c_driver = { + .driver = { + .name = MSG_TP_IC_NAME, + }, + .probe = tpd_probe, + //.remove = __devexit_p(tpd_remove), + .remove = tpd_remove, + .id_table = tpd_device_id, + .detect = tpd_detect, +}; + +static int tpd_local_init(void) +{ + TPD_DMESG("TPD init device driver (Built %s @ %s)\n", __DATE__, __TIME__); +/* + // Software reset mode will be treated as normal boot + boot_mode = get_boot_mode(); + if (boot_mode == 3) + { + boot_mode = NORMAL_BOOT; + } +*/ + if (i2c_add_driver(&tpd_i2c_driver) != 0) + { + TPD_DMESG("unable to add i2c driver.\n"); + + return -1; + } + + if (tpd_load_status == 0) + { + TPD_DMESG("add error touch panel driver.\n"); + + i2c_del_driver(&tpd_i2c_driver); + return -1; + } + +#ifdef CONFIG_TP_HAVE_KEY +#ifdef CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE + // initialize tpd button data + tpd_button_setting(4, g_TpVirtualKey, g_TpVirtualKeyDimLocal); //MAX_KEY_NUM +#endif //CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE +#endif //CONFIG_TP_HAVE_KEY + +/* +#if (defined(TPD_WARP_START) && defined(TPD_WARP_END)) + TPD_DO_WARP = 1; + memcpy(tpd_wb_start, tpd_wb_start_local, TPD_WARP_CNT*4); + memcpy(tpd_wb_end, tpd_wb_start_local, TPD_WARP_CNT*4); +#endif + +#if (defined(TPD_HAVE_CALIBRATION) && !defined(TPD_CUSTOM_CALIBRATION)) + memcpy(tpd_calmat, tpd_def_calmat_local, 8*4); + memcpy(tpd_def_calmat, tpd_def_calmat_local, 8*4); +#endif +*/ + TPD_DMESG("TPD init done %s, %d\n", __FUNCTION__, __LINE__); + + return TPD_OK; +} + +static void tpd_resume(struct early_suspend *h) +{ + TPD_DMESG("TPD wake up\n"); + + MsDrvInterfaceTouchDeviceResume(h); + + TPD_DMESG("TPD wake up done\n"); +} + +static void tpd_suspend(struct early_suspend *h) +{ + TPD_DMESG("TPD enter sleep\n"); + + MsDrvInterfaceTouchDeviceSuspend(h); + + TPD_DMESG("TPD enter sleep done\n"); +} + +static struct tpd_driver_t tpd_device_driver = { + .tpd_device_name = MSG_TP_IC_NAME, + .tpd_local_init = tpd_local_init, + .suspend = tpd_suspend, + .resume = tpd_resume, +#ifdef CONFIG_TP_HAVE_KEY +#ifdef CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE + .tpd_have_button = 1, +#else + .tpd_have_button = 0, +#endif //CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE +#endif //CONFIG_TP_HAVE_KEY +}; + +static int __init tpd_driver_init(void) +{ + TPD_DMESG("touch panel driver init\n"); + + i2c_register_board_info(I2C_BUS_ID, &i2c_tpd, 1); + if (tpd_driver_add(&tpd_device_driver) < 0) + { + TPD_DMESG("TPD add driver failed\n"); + } + + return 0; +} + +static void __exit tpd_driver_exit(void) +{ + TPD_DMESG("touch panel driver exit\n"); + + tpd_driver_remove(&tpd_device_driver); +} + +module_init(tpd_driver_init); +module_exit(tpd_driver_exit); +MODULE_LICENSE("GPL"); \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_mutual_fw_control.c b/drivers/input/touchscreen/msg2233/mstar_drv_mutual_fw_control.c new file mode 100644 index 00000000..0c6458ed --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_mutual_fw_control.c @@ -0,0 +1,6412 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_mutual_fw_control.c + * + * @brief This file defines the interface of touch screen + * + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_mutual_fw_control.h" +#include "mstar_drv_utility_adaption.h" +#include "mstar_drv_platform_porting_layer.h" + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) + +/*=============================================================*/ +// EXTERN VARIABLE DECLARATION +/*=============================================================*/ + +extern u32 SLAVE_I2C_ID_DBBUS; +extern u32 SLAVE_I2C_ID_DWI2C; + +#ifdef CONFIG_TP_HAVE_KEY +extern const int g_TpVirtualKey[]; + +#ifdef CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE +extern const int g_TpVirtualKeyDimLocal[][4]; +#endif //CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE +#endif //CONFIG_TP_HAVE_KEY + +extern struct input_dev *g_InputDevice; + +extern u8 g_FwData[MAX_UPDATE_FIRMWARE_BUFFER_SIZE][1024]; +extern u32 g_FwDataCount; + +extern struct mutex g_Mutex; + +extern u16 FIRMWARE_MODE_UNKNOWN_MODE; +extern u16 FIRMWARE_MODE_DEMO_MODE; +extern u16 FIRMWARE_MODE_DEBUG_MODE; +extern u16 FIRMWARE_MODE_RAW_DATA_MODE; + +extern struct kobject *g_TouchKObj; +extern u8 g_IsSwitchModeByAPK; + +extern u8 IS_FIRMWARE_DATA_LOG_ENABLED; + +#ifdef CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA +extern u16 g_FwPacketDataAddress; +extern u16 g_FwPacketFlagAddress; + +extern u8 g_FwSupportSegment; +#endif //CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +extern struct kobject *g_GestureKObj; +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_COUNT_REPORT_RATE +extern u32 g_IsEnableReportRate; +extern u32 g_InterruptCount; +extern u32 g_ValidTouchCount; + +extern struct timeval g_StartTime; +#endif //CONFIG_ENABLE_COUNT_REPORT_RATE + +#ifdef CONFIG_ENABLE_HOTKNOT +extern u8 g_HotKnotState; +#endif //CONFIG_ENABLE_HOTKNOT + +/*=============================================================*/ +// LOCAL VARIABLE DEFINITION +/*=============================================================*/ + +//static u8 _gTpVendorCode[3] = {0}; // used for MSG28XX + +static u8 _gOneDimenFwData[MSG28XX_FIRMWARE_WHOLE_SIZE*1024] = {0}; // used for MSG28XX + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +/* + * Note. + * Please modify the name of the below .h depends on the vendor TP that you are using. + */ +#include "msg26xxm_xxxx_update_bin.h" // for MSG26xxM +#include "msg26xxm_yyyy_update_bin.h" + +#include "msg28xx_xxxx_update_bin.h" // for MSG28xx +#include "msg28xx_yyyy_update_bin.h" + +static u32 _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; +static u32 _gIsUpdateInfoBlockFirst = 0; +static struct work_struct _gUpdateFirmwareBySwIdWork; +static struct workqueue_struct *_gUpdateFirmwareBySwIdWorkQueue = NULL; +static u8 _gTempData[1024]; +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +static u32 _gGestureWakeupValue[2] = {0}; +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA +static u8 _gTouchPacketFlag[2] = {0}; +#endif //CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA + +static u8 _gIsDisableFinagerTouch = 0; + +static u16 _gSFR_ADDR3_BYTE0_1_VALUE = 0x0000; +static u16 _gSFR_ADDR3_BYTE2_3_VALUE = 0x0000; + + +/*=============================================================*/ +// GLOBAL VARIABLE DEFINITION +/*=============================================================*/ + +u8 g_ChipType = 0; +u8 g_DemoModePacket[DEMO_MODE_PACKET_LENGTH] = {0}; + +#ifdef CONFIG_ENABLE_HOTKNOT +u8 g_DemoModeHotKnotSndRetPacket[DEMO_HOTKNOT_SEND_RET_LEN] = {0}; +u8 g_DebugModeHotKnotSndRetPacket[DEBUG_HOTKNOT_SEND_RET_LEN] = {0}; +#endif //CONFIG_ENABLE_HOTKNOT + +FirmwareInfo_t g_FirmwareInfo; +u8 g_LogModePacket[DEBUG_MODE_PACKET_LENGTH] = {0}; +u16 g_FirmwareMode; + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + +#if defined(CONFIG_ENABLE_GESTURE_DEBUG_MODE) +u8 _gGestureWakeupPacket[GESTURE_DEBUG_MODE_PACKET_LENGTH] = {0}; +#elif defined(CONFIG_ENABLE_GESTURE_INFORMATION_MODE) +u8 _gGestureWakeupPacket[GESTURE_WAKEUP_INFORMATION_PACKET_LENGTH] = {0}; +#else +u8 _gGestureWakeupPacket[GESTURE_WAKEUP_PACKET_LENGTH] = {0}; +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +u8 g_GestureDebugFlag = 0x00; +u8 g_GestureDebugMode = 0x00; +u8 g_LogGestureDebug[GESTURE_DEBUG_MODE_PACKET_LENGTH] = {0}; +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE +u32 g_LogGestureInfor[GESTURE_WAKEUP_INFORMATION_PACKET_LENGTH] = {0}; +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE + +u32 g_GestureWakeupMode[2] = {0xFFFFFFFF, 0xFFFFFFFF}; +u8 g_GestureWakeupFlag = 0; +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION +u8 g_EnableTpProximity = 0; +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +u8 g_FaceClosingTp = 0; // for QCOM platform -> 1 : close to, 0 : far away +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) +u8 g_FaceClosingTp = 1; // for MTK platform -> 0 : close to, 1 : far away +#endif +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +#ifdef CONFIG_ENABLE_GLOVE_MODE +u8 g_IsGloveModeOpen = 0; +#endif //CONFIG_ENABLE_GLOVE_MODE + +u8 g_IsUpdateFirmware = 0x00; + +/*=============================================================*/ +// LOCAL FUNCTION DECLARATION +/*=============================================================*/ + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +static void _DrvFwCtrlUpdateFirmwareBySwIdDoWork(struct work_struct *pWork); +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE +static void _DrvFwCtrlCoordinate(u8 *pRawData, u32 *pTranX, u32 *pTranY); +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +/*=============================================================*/ +// LOCAL FUNCTION DEFINITION +/*=============================================================*/ + +static s32 _DrvFwCtrlParsePacket(u8 *pPacket, u16 nLength, TouchInfo_t *pInfo) +{ + u32 i; + u8 nCheckSum = 0; + u32 nX = 0, nY = 0; + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_ENABLE_COUNT_REPORT_RATE + if (g_IsEnableReportRate == 1) + { + if (g_InterruptCount == 4294967296) + { + g_InterruptCount = 0; // Reset count if overflow + DBG("g_InterruptCount reset to 0\n"); + } + + if (g_InterruptCount == 0) + { + // Get start time + do_gettimeofday(&g_StartTime); + + DBG("Start time : %lu sec, %lu msec\n", g_StartTime.tv_sec, g_StartTime.tv_usec); + } + + g_InterruptCount ++; + + DBG("g_InterruptCount = %d\n", g_InterruptCount); + } +#endif //CONFIG_ENABLE_COUNT_REPORT_RATE + + nCheckSum = DrvCommonCalculateCheckSum(&pPacket[0], (nLength-1)); + DBG("checksum : [%x] == [%x]? \n", pPacket[nLength-1], nCheckSum); + + if (pPacket[nLength-1] != nCheckSum) + { + DBG("WRONG CHECKSUM\n"); + return -1; + } + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + if (g_GestureWakeupFlag == 1) + { + u8 nWakeupMode = 0; + u8 bIsCorrectFormat = 0; + + DBG("received raw data from touch panel as following:\n"); + DBG("pPacket[0]=%x \n pPacket[1]=%x pPacket[2]=%x pPacket[3]=%x pPacket[4]=%x pPacket[5]=%x \n", \ + pPacket[0], pPacket[1], pPacket[2], pPacket[3], pPacket[4], pPacket[5]); + + if (pPacket[0] == 0xA7 && pPacket[1] == 0x00 && pPacket[2] == 0x06 && pPacket[3] == PACKET_TYPE_GESTURE_WAKEUP) + { + nWakeupMode = pPacket[4]; + bIsCorrectFormat = 1; + } +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE + else if (pPacket[0] == 0xA7 && pPacket[1] == 0x00 && pPacket[2] == 0x80 && pPacket[3] == PACKET_TYPE_GESTURE_DEBUG) + { + u32 a = 0; + + nWakeupMode = pPacket[4]; + bIsCorrectFormat = 1; + + for (a = 0; a < 0x80; a ++) + { + g_LogGestureDebug[a] = pPacket[a]; + } + + if (!(pPacket[5] >> 7))// LCM Light Flag = 0 + { + nWakeupMode = 0xFE; + DBG("gesture debug mode LCM flag = 0\n"); + } + } +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE + else if (pPacket[0] == 0xA7 && pPacket[1] == 0x00 && pPacket[2] == 0x80 && pPacket[3] == PACKET_TYPE_GESTURE_INFORMATION) + { + u32 a = 0; + u32 nTmpCount = 0; + + nWakeupMode = pPacket[4]; + bIsCorrectFormat = 1; + + for (a = 0; a < 6; a ++)//header + { + g_LogGestureInfor[nTmpCount] = pPacket[a]; + nTmpCount++; + } + + for (a = 6; a < 126; a = a+3)//parse packet to coordinate + { + u32 nTranX = 0; + u32 nTranY = 0; + + _DrvFwCtrlCoordinate(&pPacket[a], &nTranX, &nTranY); + g_LogGestureInfor[nTmpCount] = nTranX; + nTmpCount++; + g_LogGestureInfor[nTmpCount] = nTranY; + nTmpCount++; + } + + g_LogGestureInfor[nTmpCount] = pPacket[126]; //Dummy + nTmpCount++; + g_LogGestureInfor[nTmpCount] = pPacket[127]; //checksum + nTmpCount++; + DBG("gesture information mode Count = %d\n", nTmpCount); + } +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE + + if (bIsCorrectFormat) + { + DBG("nWakeupMode = 0x%x\n", nWakeupMode); + + switch (nWakeupMode) + { + case 0x58: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_DOUBLE_CLICK_FLAG; + + DBG("Light up screen by DOUBLE_CLICK gesture wakeup.\n"); + + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x60: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_UP_DIRECT_FLAG; + + DBG("Light up screen by UP_DIRECT gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_UP, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_UP, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x61: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_DOWN_DIRECT_FLAG; + + DBG("Light up screen by DOWN_DIRECT gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_DOWN, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_DOWN, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x62: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_LEFT_DIRECT_FLAG; + + DBG("Light up screen by LEFT_DIRECT gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_LEFT, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_LEFT, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x63: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RIGHT_DIRECT_FLAG; + + DBG("Light up screen by RIGHT_DIRECT gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_RIGHT, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_RIGHT, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x64: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_m_CHARACTER_FLAG; + + DBG("Light up screen by m_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_M, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_M, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x65: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_W_CHARACTER_FLAG; + + DBG("Light up screen by W_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_W, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_W, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x66: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_C_CHARACTER_FLAG; + + DBG("Light up screen by C_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_C, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_C, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x67: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_e_CHARACTER_FLAG; + + DBG("Light up screen by e_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_E, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_E, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x68: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_V_CHARACTER_FLAG; + + DBG("Light up screen by V_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_V, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_V, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x69: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_O_CHARACTER_FLAG; + + DBG("Light up screen by O_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_O, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_O, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x6A: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_S_CHARACTER_FLAG; + + DBG("Light up screen by S_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_S, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_S, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x6B: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_Z_CHARACTER_FLAG; + + DBG("Light up screen by Z_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_Z, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_Z, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x6C: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE1_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE1_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER1, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER1, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x6D: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE2_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE2_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER2, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER2, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x6E: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE3_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE3_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER3, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER3, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; +#ifdef CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE + case 0x6F: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE4_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE4_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER4, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER4, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x70: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE5_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE5_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER5, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER5, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x71: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE6_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE6_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER6, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER6, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x72: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE7_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE7_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER7, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER7, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x73: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE8_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE8_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER8, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER8, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x74: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE9_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE9_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER9, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER9, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x75: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE10_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE10_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER10, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER10, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x76: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE11_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE11_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER11, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER11, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x77: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE12_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE12_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER12, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER12, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x78: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE13_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE13_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER13, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER13, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x79: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE14_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE14_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER14, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER14, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x7A: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE15_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE15_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER15, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER15, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x7B: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE16_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE16_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER16, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER16, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x7C: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE17_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE17_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER17, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER17, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x7D: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE18_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE18_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER18, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER18, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x7E: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE19_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE19_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER19, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER19, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x7F: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE20_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE20_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER20, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER20, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x80: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE21_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE21_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER21, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER21, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x81: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE22_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE22_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER22, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER22, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x82: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE23_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE23_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER23, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER23, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x83: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE24_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE24_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER24, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER24, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x84: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE25_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE25_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER25, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER25, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x85: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE26_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE26_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER26, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER26, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x86: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE27_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE27_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER27, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER27, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x87: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE28_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE28_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER28, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER28, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x88: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE29_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE29_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER29, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER29, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x89: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE30_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE30_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER30, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER30, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x8A: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE31_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE31_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER31, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER31, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x8B: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE32_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE32_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER32, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER32, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x8C: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE33_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE33_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER33, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER33, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x8D: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE34_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE34_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER34, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER34, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x8E: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE35_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE35_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER35, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER35, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x8F: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE36_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE36_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER36, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER36, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x90: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE37_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE37_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER37, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER37, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x91: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE38_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE38_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER38, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER38, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x92: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE39_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE39_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER39, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER39, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x93: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE40_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE40_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER40, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER40, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x94: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE41_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE41_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER41, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER41, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x95: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE42_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE42_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER42, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER42, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x96: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE43_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE43_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER43, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER43, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x97: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE44_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE44_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER44, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER44, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x98: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE45_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE45_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER45, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER45, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x99: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE46_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE46_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER46, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER46, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x9A: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE47_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE47_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER47, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER47, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x9B: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE48_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE48_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER48, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER48, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x9C: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE49_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE49_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER49, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER49, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x9D: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE50_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE50_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER50, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER50, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x9E: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE51_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE51_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER51, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER51, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; +#endif //CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE + case 0xFF://Gesture Fail + _gGestureWakeupValue[1] = 0xFF; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_FAIL gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER51, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER51, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + + default: + _gGestureWakeupValue[0] = 0; + _gGestureWakeupValue[1] = 0; + DBG("Un-supported gesture wakeup mode. Please check your device driver code.\n"); + break; + } + + DBG("_gGestureWakeupValue = 0x%x, 0x%x\n", _gGestureWakeupValue[0], _gGestureWakeupValue[1]); + } + else + { + DBG("gesture wakeup packet format is incorrect.\n"); + } + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE + // Notify android application to retrieve log data mode packet from device driver by sysfs. + if (g_GestureKObj != NULL && pPacket[3] == PACKET_TYPE_GESTURE_DEBUG) + { + char *pEnvp[2]; + s32 nRetVal = 0; + + pEnvp[0] = "STATUS=GET_GESTURE_DEBUG"; + pEnvp[1] = NULL; + + nRetVal = kobject_uevent_env(g_GestureKObj, KOBJ_CHANGE, pEnvp); + DBG("kobject_uevent_env() nRetVal = %d\n", nRetVal); + } +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + + return -1; + } +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + + DBG("received raw data from touch panel as following:\n"); + DBG("pPacket[0]=%x \n pPacket[1]=%x pPacket[2]=%x pPacket[3]=%x pPacket[4]=%x \n pPacket[5]=%x pPacket[6]=%x pPacket[7]=%x pPacket[8]=%x \n", \ + pPacket[0], pPacket[1], pPacket[2], pPacket[3], pPacket[4], pPacket[5], pPacket[6], pPacket[7], pPacket[8]); + + if (IS_FIRMWARE_DATA_LOG_ENABLED) + { + if (g_FirmwareMode == FIRMWARE_MODE_DEMO_MODE && pPacket[0] != 0x5A) + { +#ifdef CONFIG_ENABLE_HOTKNOT + if (pPacket[3] != HOTKNOT_PACKET_TYPE && pPacket[3] != HOTKNOT_RECEIVE_PACKET_TYPE) +#endif //CONFIG_ENABLE_HOTKNOT + { + DBG("WRONG DEMO MODE HEADER\n"); + return -1; + } + } + else if (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE && pPacket[0] != 0xA5 && pPacket[0] != 0xAB && (pPacket[0] != 0xA7 && pPacket[3] != PACKET_TYPE_TOOTH_PATTERN)) + { + DBG("WRONG DEBUG MODE HEADER\n"); + return -1; + } + } + else + { + if (pPacket[0] != 0x5A) + { +#ifdef CONFIG_ENABLE_HOTKNOT + if (pPacket[3] != HOTKNOT_PACKET_TYPE && pPacket[3] != HOTKNOT_RECEIVE_PACKET_TYPE) +#endif //CONFIG_ENABLE_HOTKNOT + { + DBG("WRONG DEMO MODE HEADER\n"); + return -1; + } + } + } //IS_FIRMWARE_DATA_LOG_ENABLED + + // Process raw data... + if (pPacket[0] == 0x5A) + { +#ifdef CONFIG_ENABLE_HOTKNOT + if (((DemoHotKnotCmdRet_t*)pPacket)->nIdentify == DEMO_PD_PACKET_IDENTIFY) + { + ReportHotKnotCmd(pPacket, nLength); + return -1; //return 0 will run key procedure + } + else +#endif //CONFIG_ENABLE_HOTKNOT + { + for (i = 0; i < MAX_TOUCH_NUM; i ++) + { + if ((pPacket[(4*i)+1] == 0xFF) && (pPacket[(4*i)+2] == 0xFF) && (pPacket[(4*i)+3] == 0xFF)) + { + continue; + } + + nX = (((pPacket[(4*i)+1] & 0xF0) << 4) | (pPacket[(4*i)+2])); + nY = (((pPacket[(4*i)+1] & 0x0F) << 8) | (pPacket[(4*i)+3])); + + pInfo->tPoint[pInfo->nCount].nX = nX * TOUCH_SCREEN_X_MAX / TPD_WIDTH; + pInfo->tPoint[pInfo->nCount].nY = nY * TOUCH_SCREEN_Y_MAX / TPD_HEIGHT; + pInfo->tPoint[pInfo->nCount].nP = pPacket[4*(i+1)]; + pInfo->tPoint[pInfo->nCount].nId = i; + + DBG("[x,y]=[%d,%d]\n", nX, nY); + DBG("point[%d] : (%d,%d) = %d\n", pInfo->tPoint[pInfo->nCount].nId, pInfo->tPoint[pInfo->nCount].nX, pInfo->tPoint[pInfo->nCount].nY, pInfo->tPoint[pInfo->nCount].nP); + + pInfo->nCount ++; + } + } + } + else if (pPacket[0] == 0xA5 || pPacket[0] == 0xAB) + { + for (i = 0; i < MAX_TOUCH_NUM; i ++) + { + if ((pPacket[(3*i)+4] == 0xFF) && (pPacket[(3*i)+5] == 0xFF) && (pPacket[(3*i)+6] == 0xFF)) + { + continue; + } + + nX = (((pPacket[(3*i)+4] & 0xF0) << 4) | (pPacket[(3*i)+5])); + nY = (((pPacket[(3*i)+4] & 0x0F) << 8) | (pPacket[(3*i)+6])); + + pInfo->tPoint[pInfo->nCount].nX = nX * TOUCH_SCREEN_X_MAX / TPD_WIDTH; + pInfo->tPoint[pInfo->nCount].nY = nY * TOUCH_SCREEN_Y_MAX / TPD_HEIGHT; + pInfo->tPoint[pInfo->nCount].nP = 1; + pInfo->tPoint[pInfo->nCount].nId = i; + + DBG("[x,y]=[%d,%d]\n", nX, nY); + DBG("point[%d] : (%d,%d) = %d\n", pInfo->tPoint[pInfo->nCount].nId, pInfo->tPoint[pInfo->nCount].nX, pInfo->tPoint[pInfo->nCount].nY, pInfo->tPoint[pInfo->nCount].nP); + + pInfo->nCount ++; + } + + // Notify android application to retrieve debug mode packet from device driver by sysfs. + if (g_TouchKObj != NULL) + { + char *pEnvp[2]; + s32 nRetVal = 0; + + pEnvp[0] = "STATUS=GET_DEBUG_MODE_PACKET"; + pEnvp[1] = NULL; + + nRetVal = kobject_uevent_env(g_TouchKObj, KOBJ_CHANGE, pEnvp); + DBG("kobject_uevent_env() nRetVal = %d\n", nRetVal); + } + } + else if (pPacket[0] == 0xA7 && pPacket[3] == PACKET_TYPE_TOOTH_PATTERN) + { + for (i = 0; i < MAX_TOUCH_NUM; i ++) + { + if ((pPacket[(3*i)+5] == 0xFF) && (pPacket[(3*i)+6] == 0xFF) && (pPacket[(3*i)+7] == 0xFF)) + { + continue; + } + + nX = (((pPacket[(3*i)+5] & 0xF0) << 4) | (pPacket[(3*i)+6])); + nY = (((pPacket[(3*i)+5] & 0x0F) << 8) | (pPacket[(3*i)+7])); + + pInfo->tPoint[pInfo->nCount].nX = nX * TOUCH_SCREEN_X_MAX / TPD_WIDTH; + pInfo->tPoint[pInfo->nCount].nY = nY * TOUCH_SCREEN_Y_MAX / TPD_HEIGHT; + pInfo->tPoint[pInfo->nCount].nP = 1; + pInfo->tPoint[pInfo->nCount].nId = i; + + DBG("[x,y]=[%d,%d]\n", nX, nY); + DBG("point[%d] : (%d,%d) = %d\n", pInfo->tPoint[pInfo->nCount].nId, pInfo->tPoint[pInfo->nCount].nX, pInfo->tPoint[pInfo->nCount].nY, pInfo->tPoint[pInfo->nCount].nP); + + pInfo->nCount ++; + } + + // Notify android application to retrieve debug mode packet from device driver by sysfs. + if (g_TouchKObj != NULL) + { + char *pEnvp[2]; + s32 nRetVal = 0; + + pEnvp[0] = "STATUS=GET_DEBUG_MODE_PACKET"; + pEnvp[1] = NULL; + + nRetVal = kobject_uevent_env(g_TouchKObj, KOBJ_CHANGE, pEnvp); + DBG("kobject_uevent_env() nRetVal = %d\n", nRetVal); + } + } +#ifdef CONFIG_ENABLE_HOTKNOT + else if (pPacket[0] == 0xA7) + { + if (pPacket[3] == HOTKNOT_PACKET_TYPE || pPacket[3] == HOTKNOT_RECEIVE_PACKET_TYPE) + { + ReportHotKnotCmd(pPacket, nLength); + return -1; //return 0 will run key procedure + } + } +#endif //CONFIG_ENABLE_HOTKNOT + + +#ifdef CONFIG_TP_HAVE_KEY + if (pPacket[0] == 0x5A) + { + u8 nButton = pPacket[nLength-2]; //Since the key value is stored in 0th~3th bit of variable "button", we can only retrieve 0th~3th bit of it. + +// if (nButton) + if (nButton != 0xFF) + { + DBG("button = %x\n", nButton); + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + DBG("g_EnableTpProximity = %d, pPacket[nLength-2] = 0x%x\n", g_EnableTpProximity, pPacket[nLength-2]); + + if (g_EnableTpProximity && ((pPacket[nLength-2] == 0x80) || (pPacket[nLength-2] == 0x40))) + { + if (pPacket[nLength-2] == 0x80) // close to + { + g_FaceClosingTp = 1; + } + else if (pPacket[nLength-2] == 0x40) // far away + { + g_FaceClosingTp = 0; + } + + DBG("g_FaceClosingTp = %d\n", g_FaceClosingTp); + + return -1; + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + if (g_EnableTpProximity && ((pPacket[nLength-2] == 0x80) || (pPacket[nLength-2] == 0x40))) + { + int nErr; + hwm_sensor_data tSensorData; + + if (pPacket[nLength-2] == 0x80) // close to + { + g_FaceClosingTp = 0; + } + else if (pPacket[nLength-2] == 0x40) // far away + { + g_FaceClosingTp = 1; + } + + DBG("g_FaceClosingTp = %d\n", g_FaceClosingTp); + + // map and store data to hwm_sensor_data + tSensorData.values[0] = DrvPlatformLyrGetTpPsData(); + tSensorData.value_divide = 1; + tSensorData.status = SENSOR_STATUS_ACCURACY_MEDIUM; + // let up layer to know + if ((nErr = hwmsen_get_interrupt_data(ID_PROXIMITY, &tSensorData))) + { + DBG("call hwmsen_get_interrupt_data() failed = %d\n", nErr); + } + + return -1; + } +#endif +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + + for (i = 0; i < MAX_KEY_NUM; i ++) + { + if ((nButton & (1<nKeyCode == 0) + { + pInfo->nKeyCode = i; + + DBG("key[%d]=%d ...\n", i, g_TpVirtualKey[i]); + +#ifdef CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE + pInfo->nKeyCode = 0xFF; + pInfo->nCount = 1; + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[i][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[i][1]; + pInfo->tPoint[0].nP = 1; + pInfo->tPoint[0].nId = 0; +#endif //CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE + } + else + { + /// if pressing multi-key => no report + pInfo->nKeyCode = 0xFF; + } + } + } + } + else + { + pInfo->nKeyCode = 0xFF; + } + } + else if (pPacket[0] == 0xA5 || pPacket[0] == 0xAB || (pPacket[0] == 0xA7 && pPacket[3] == PACKET_TYPE_TOOTH_PATTERN)) + { + // TODO : waiting for firmware define the virtual key + + if (pPacket[0] == 0xA5) + { + // Do nothing because of 0xA5 not define virtual key in the packet + } + else if (pPacket[0] == 0xAB || (pPacket[0] == 0xA7 && pPacket[3] == PACKET_TYPE_TOOTH_PATTERN)) + { + u8 nButton = 0xFF; + + if (pPacket[0] == 0xAB) + { + nButton = pPacket[3]; // The pressed virtual key is stored in 4th byte for debug mode packet 0xAB. + } + else if (pPacket[0] == 0xA7 && pPacket[3] == PACKET_TYPE_TOOTH_PATTERN) + { + nButton = pPacket[4]; // The pressed virtual key is stored in 5th byte for debug mode packet 0xA7. + } + + if (nButton != 0xFF) + { + DBG("button = %x\n", nButton); + + for (i = 0; i < MAX_KEY_NUM; i ++) + { + if ((nButton & (1<nKeyCode == 0) + { + pInfo->nKeyCode = i; + + DBG("key[%d]=%d ...\n", i, g_TpVirtualKey[i]); + +#ifdef CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE + pInfo->nKeyCode = 0xFF; + pInfo->nCount = 1; + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[i][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[i][1]; + pInfo->tPoint[0].nP = 1; + pInfo->tPoint[0].nId = 0; +#endif //CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE + } + else + { + /// if pressing multi-key => no report + pInfo->nKeyCode = 0xFF; + } + } + } + } + else + { + pInfo->nKeyCode = 0xFF; + } + } + } +#endif //CONFIG_TP_HAVE_KEY + + return 0; +} + +static void _DrvFwCtrlStoreFirmwareData(u8 *pBuf, u32 nSize) +{ + u32 nCount = nSize / 1024; + u32 nRemainder = nSize % 1024; + u32 i; + + DBG("*** %s() ***\n", __func__); + + if (nCount > 0) // nSize >= 1024 + { + for (i = 0; i < nCount; i ++) + { + memcpy(g_FwData[g_FwDataCount], pBuf+(i*1024), 1024); + + g_FwDataCount ++; + } + + if (nRemainder > 0) // Handle special firmware size like MSG22XX(48.5KB) + { + DBG("nRemainder = %d\n", nRemainder); + + memcpy(g_FwData[g_FwDataCount], pBuf+(i*1024), nRemainder); + + g_FwDataCount ++; + } + } + else // nSize < 1024 + { + if (nSize > 0) + { + memcpy(g_FwData[g_FwDataCount], pBuf, nSize); + + g_FwDataCount ++; + } + } + + DBG("*** g_FwDataCount = %d ***\n", g_FwDataCount); + + if (pBuf != NULL) + { + DBG("*** buf[0] = %c ***\n", pBuf[0]); + } +} + +static u16 _DrvFwCtrlMsg26xxmGetSwId(EmemType_e eEmemType) +{ + u16 nRetVal = 0; + u16 nRegData = 0; + u8 szDbBusTxData[5] = {0}; + u8 szDbBusRxData[4] = {0}; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // cmd + RegSet16BitValue(0x3CE4, 0xA4AB); //bank:reg_PIU_MISC_0, addr:h0072 + + // TP SW reset + RegSet16BitValue(0x1E04, 0x7d60); //bank:chip, addr:h0002 + RegSet16BitValue(0x1E04, 0x829F); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + + mdelay(100); + + // Polling 0x3CE4 is 0x5B58 + do + { + nRegData = RegGet16BitValue(0x3CE4); //bank:reg_PIU_MISC_0, addr:h0072 + } while (nRegData != 0x5B58); + + szDbBusTxData[0] = 0x72; + if (eEmemType == EMEM_MAIN) // Read SW ID from main block + { + szDbBusTxData[1] = 0x00; + szDbBusTxData[2] = 0x2A; + } + else if (eEmemType == EMEM_INFO) // Read SW ID from info block + { + szDbBusTxData[1] = 0x80; + szDbBusTxData[2] = 0x04; + } + szDbBusTxData[3] = 0x00; + szDbBusTxData[4] = 0x04; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 5); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 4); + + /* + Ex. SW ID in Main Block : + Major low byte at address 0x002A + Major high byte at address 0x002B + + SW ID in Info Block : + Major low byte at address 0x8004 + Major high byte at address 0x8005 + */ + + nRetVal = szDbBusRxData[1]; + nRetVal = (nRetVal << 8) | szDbBusRxData[0]; + + DBG("SW ID = 0x%x\n", nRetVal); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static s32 _DrvFwCtrlMsg26xxmUpdateFirmware(u8 szFwData[][1024], EmemType_e eEmemType) +{ + u32 i, j; + u32 nCrcMain, nCrcMainTp; + u32 nCrcInfo, nCrcInfoTp; + u16 nRegData = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + nCrcMain = 0xffffffff; + nCrcInfo = 0xffffffff; + + ///////////////////////// + // Erase + ///////////////////////// + + DBG("erase 0\n"); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + DBG("erase 1\n"); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // Set PROGRAM password + RegSet16BitValue(0x161A, 0xABBA); //bank:emem, addr:h000D + + // Clear pce + RegSetLByteValue(0x1618, 0x80); //bank:emem, addr:h000C + + DBG("erase 2\n"); + // Clear setting + RegSetLByteValue(0x1618, 0x40); //bank:emem, addr:h000C + + mdelay(10); + + // Clear pce + RegSetLByteValue(0x1618, 0x80); //bank:emem, addr:h000C + + DBG("erase 3\n"); + // Trigger erase + if (eEmemType == EMEM_ALL) + { + RegSetLByteValue(0x160E, 0x08); //all chip //bank:emem, addr:h0007 + } + else + { + RegSetLByteValue(0x160E, 0x04); //sector //bank:emem, addr:h0007 + } + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + mdelay(1000); + DBG("erase OK\n"); + + ///////////////////////// + // Program + ///////////////////////// + + DBG("program 0\n"); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + DBG("program 1\n"); + + // Check_Loader_Ready: Polling 0x3CE4 is 0x1C70 + do + { + nRegData = RegGet16BitValue(0x3CE4); //bank:reg_PIU_MISC_0, addr:h0072 + } while (nRegData != 0x1C70); + + DBG("program 2\n"); + + RegSet16BitValue(0x3CE4, 0xE38F); //all chip + mdelay(100); + + // Check_Loader_Ready2Program: Polling 0x3CE4 is 0x2F43 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x2F43); + + DBG("program 3\n"); + + // prepare CRC & send data + DrvCommonCrcInitTable(); + + for (i = 0; i < MSG26XXM_FIRMWARE_WHOLE_SIZE; i ++) // Main : 32KB + Info : 8KB + { + if (i > 31) + { + for (j = 0; j < 1024; j ++) + { + nCrcInfo = DrvCommonCrcGetValue(szFwData[i][j], nCrcInfo); + } + } + else if (i < 31) + { + for (j = 0; j < 1024; j ++) + { + nCrcMain = DrvCommonCrcGetValue(szFwData[i][j], nCrcMain); + } + } + else ///if (i == 31) + { + szFwData[i][1014] = 0x5A; + szFwData[i][1015] = 0xA5; + + for (j = 0; j < 1016; j ++) + { + nCrcMain = DrvCommonCrcGetValue(szFwData[i][j], nCrcMain); + } + } + + for (j = 0; j < 8; j ++) + { + IicWriteData(SLAVE_I2C_ID_DWI2C, &szFwData[i][j*128], 128); + } + mdelay(100); + + // Check_Program_Done: Polling 0x3CE4 is 0xD0BC + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0xD0BC); + + // Continue_Program + RegSet16BitValue(0x3CE4, 0x2F43); + } + + DBG("program 4\n"); + + // Notify_Write_Done + RegSet16BitValue(0x3CE4, 0x1380); + mdelay(100); + + DBG("program 5\n"); + + // Check_CRC_Done: Polling 0x3CE4 is 0x9432 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x9432); + + DBG("program 6\n"); + + // check CRC + nCrcMain = nCrcMain ^ 0xffffffff; + nCrcInfo = nCrcInfo ^ 0xffffffff; + + // read CRC from TP + nCrcMainTp = RegGet16BitValue(0x3C80); + nCrcMainTp = (nCrcMainTp << 16) | RegGet16BitValue(0x3C82); + nCrcInfoTp = RegGet16BitValue(0x3CA0); + nCrcInfoTp = (nCrcInfoTp << 16) | RegGet16BitValue(0x3CA2); + + DBG("nCrcMain=0x%x, nCrcInfo=0x%x, nCrcMainTp=0x%x, nCrcInfoTp=0x%x\n", + nCrcMain, nCrcInfo, nCrcMainTp, nCrcInfoTp); + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + mdelay(300); + + if ((nCrcMainTp != nCrcMain) || (nCrcInfoTp != nCrcInfo)) + { + DBG("Update FAILED\n"); + + return -1; + } + + DBG("Update SUCCESS\n"); + + return 0; +} + +static void _DrvFwCtrlMsg28xxConvertFwDataTwoDimenToOneDimen(u8 szTwoDimenFwData[][1024], u8* pOneDimenFwData) +{ + u32 i, j; + + DBG("*** %s() ***\n", __func__); + + for (i = 0; i < MSG28XX_FIRMWARE_WHOLE_SIZE; i ++) + { + for (j = 0; j < 1024; j ++) + { + pOneDimenFwData[i*1024+j] = szTwoDimenFwData[i][j]; + } + } +} + +static u32 _DrvFwCtrlMsg28xxCalculateCrc(u8 *pFwData, u32 nOffset, u32 nSize) +{ + u32 i; + u32 nData = 0, nCrc = 0; + u32 nCrcRule = 0x0C470C06; // 0000 1100 0100 0111 0000 1100 0000 0110 + + for (i = 0; i < nSize; i += 4) + { + nData = (pFwData[nOffset+i]) | (pFwData[nOffset+i+1] << 8) | (pFwData[nOffset+i+2] << 16) | (pFwData[nOffset+i+3] << 24); + nCrc = (nCrc >> 1) ^ (nCrc << 1) ^ (nCrc & nCrcRule) ^ nData; + } + + return nCrc; +} + +static void _DrvFwCtrlMsg28xxAccessEFlashInit(void) +{ + // Disable watchdog + RegSetLByteValue(0x3C60, 0x55); + RegSetLByteValue(0x3C61, 0xAA); + + // Disable cpu read flash + RegSetLByteValue(0x1606, 0x20); + RegSetLByteValue(0x1608, 0x20); + + // Clear PROGRAM erase password + RegSet16BitValue(0x1618, 0xA55A); +} + +static void _DrvFwCtrlMsg28xxIspBurstWriteEFlashStart(u16 nStartAddr, u8 *pFirstData, u32 nBlockSize, u16 nPageNum, EmemType_e eEmemType) +{ + u16 nWriteAddr = nStartAddr/4; + u8 szDbBusTxData[3] = {0}; + + DBG("*** %s() nStartAddr = 0x%x, nBlockSize = %d, nPageNum = %d, eEmemType = %d ***\n", __func__, nStartAddr, nBlockSize, nPageNum, eEmemType); + + // Disable cpu read flash + RegSetLByteValue(0x1608, 0x20); + RegSetLByteValue(0x1606, 0x20); + + // Set e-flash mode to page write mode + RegSet16BitValue(0x1606, 0x0080); + + // Set data align + RegSetLByteValue(0x1640, 0x01); + + if (eEmemType == EMEM_INFO) + { + RegSetLByteValue(0x1607, 0x08); + } + + // Set double buffer + RegSetLByteValue(0x1604, 0x01); + + // Set page write number + RegSet16BitValue(0x161A, nPageNum); + + // Set e-flash mode trigger(Trigger write mode) + RegSetLByteValue(0x1606, 0x81); + + // Set init data + RegSetLByteValue(0x1602, pFirstData[0]); + RegSetLByteValue(0x1602, pFirstData[1]); + RegSetLByteValue(0x1602, pFirstData[2]); + RegSetLByteValue(0x1602, pFirstData[3]); + + // Set initial address(for latch SA, CA) + RegSet16BitValue(0x1600, nWriteAddr); + + // Set initial address(for latch PA) + RegSet16BitValue(0x1600, nWriteAddr); + + // Enable burst mode + RegSetLByteValue(0x1608, 0x21); + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x16; + szDbBusTxData[2] = 0x02; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3); + + szDbBusTxData[0] = 0x20; +// szDbBusTxData[1] = 0x00; +// szDbBusTxData[2] = 0x00; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 1); +} + +static void _DrvFwCtrlMsg28xxIspBurstWriteEFlashDoWrite(u8 *pBufferData, u32 nLength) +{ + u32 i; + u8 szDbBusTxData[3+MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE] = {0}; + + DBG("*** %s() nLength = %d ***\n", __func__, nLength); + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x16; + szDbBusTxData[2] = 0x02; + + for (i = 0; i < nLength; i ++) + { + szDbBusTxData[3+i] = pBufferData[i]; + } + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+nLength); +} + +static void _DrvFwCtrlMsg28xxIspBurstWriteEFlashEnd(void) +{ + u8 szDbBusTxData[1] = {0}; + + DBG("*** %s() ***\n", __func__); + + szDbBusTxData[0] = 0x21; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 1); + + szDbBusTxData[0] = 0x7E; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 1); + + // Clear burst mode + RegSetLByteValue(0x1608, 0x20); +} + +static void _DrvFwCtrlMsg28xxWriteEFlashStart(u16 nStartAddr, u8 *pFirstData, EmemType_e eEmemType) +{ + u16 nWriteAddr = nStartAddr/4; + + DBG("*** %s() nStartAddr = 0x%x, eEmemType = %d ***\n", __func__, nStartAddr, eEmemType); + + // Disable cpu read flash + RegSetLByteValue(0x1608, 0x20); + RegSetLByteValue(0x1606, 0x20); + + // Set e-flash mode to write mode + RegSet16BitValue(0x1606, 0x0040); + + // Set data align + RegSetLByteValue(0x1640, 0x01); + + if (eEmemType == EMEM_INFO) + { + RegSetLByteValue(0x1607, 0x08); + } + + // Set double buffer + RegSetLByteValue(0x1604, 0x01); + + // Set e-flash mode trigger(Trigger write mode) + RegSetLByteValue(0x1606, 0x81); + + // Set init data + RegSetLByteValue(0x1602, pFirstData[0]); + RegSetLByteValue(0x1602, pFirstData[1]); + RegSetLByteValue(0x1602, pFirstData[2]); + RegSetLByteValue(0x1602, pFirstData[3]); + + // Set initial address(for latch SA, CA) + RegSet16BitValue(0x1600, nWriteAddr); + + // Set initial address(for latch PA) + RegSet16BitValue(0x1600, nWriteAddr); +} + +static void _DrvFwCtrlMsg28xxWriteEFlashDoWrite(u16 nStartAddr, u8 *pBufferData) +{ + u16 nWriteAddr = nStartAddr/4; + + DBG("*** %s() nWriteAddr = %d ***\n", __func__, nWriteAddr); + + // Write data + RegSetLByteValue(0x1602, pBufferData[0]); + RegSetLByteValue(0x1602, pBufferData[1]); + RegSetLByteValue(0x1602, pBufferData[2]); + RegSetLByteValue(0x1602, pBufferData[3]); + + // Set address + RegSet16BitValue(0x1600, nWriteAddr); +} + +static void _DrvFwCtrlMsg28xxWriteEFlashEnd(void) +{ + DBG("*** %s() ***\n", __func__); + + // Do nothing +} + +static void _DrvFwCtrlMsg28xxReadEFlashStart(u16 nStartAddr, EmemType_e eEmemType) +{ + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + // Disable cpu read flash + RegSetLByteValue(0x1608, 0x20); + RegSetLByteValue(0x1606, 0x20); + + RegSetLByteValue(0x1606, 0x02); + + RegSet16BitValue(0x1600, nStartAddr); + + if (eEmemType == EMEM_MAIN) + { + // Set main block + RegSetLByteValue(0x1607, 0x00); + + // Set main double buffer + RegSetLByteValue(0x1604, 0x01); + + // Set e-flash mode to read mode for main + RegSet16BitValue(0x1606, 0x0001); + } + else if (eEmemType == EMEM_INFO) + { + // Set info block + RegSetLByteValue(0x1607, 0x08); + + // Set info double buffer + RegSetLByteValue(0x1604, 0x01); + + // Set e-flash mode to read mode for info + RegSet16BitValue(0x1606, 0x0801); + } +} + +static void _DrvFwCtrlMsg28xxReadEFlashDoRead(u16 nReadAddr, u8 *pReadData) +{ + u16 nRegData1 = 0, nRegData2 = 0; + + DBG("*** %s() nReadAddr = 0x%x ***\n", __func__, nReadAddr); + + // Set read address + RegSet16BitValue(0x1600, nReadAddr); + + // Read 16+16 bits + nRegData1 = RegGet16BitValue(0x160A); + nRegData2 = RegGet16BitValue(0x160C); + + pReadData[0] = nRegData1 & 0xFF; + pReadData[1] = (nRegData1 >> 8) & 0xFF; + pReadData[2] = nRegData2 & 0xFF; + pReadData[3] = (nRegData2 >> 8) & 0xFF; +} + +static void _DrvFwCtrlMsg28xxReadEFlashEnd(void) +{ + DBG("*** %s() ***\n", __func__); + + // Set read done + RegSetLByteValue(0x1606, 0x02); + + // Unset info flag + RegSetLByteValue(0x1607, 0x00); + + // Clear address + RegSet16BitValue(0x1600, 0x0000); +} + +/* +static void _DrvFwCtrlMsg28xxGetTpVendorCode(u8 *pTpVendorCode) +{ + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG28XX) + { + u16 nReadAddr = 0; + u8 szTmpData[4] = {0}; + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + _DrvFwCtrlMsg28xxReadEFlashStart(0x81FA, EMEM_INFO); + nReadAddr = 0x81FA; + + _DrvFwCtrlMsg28xxReadEFlashDoRead(nReadAddr, &szTmpData[0]); + + DBG("szTmpData[0] = 0x%x\n", szTmpData[0]); // add for debug + DBG("szTmpData[1] = 0x%x\n", szTmpData[1]); // add for debug + DBG("szTmpData[2] = 0x%x\n", szTmpData[2]); // add for debug + DBG("szTmpData[3] = 0x%x\n", szTmpData[3]); // add for debug + + _DrvFwCtrlMsg28xxReadEFlashEnd(); + + pTpVendorCode[0] = szTmpData[1]; + pTpVendorCode[1] = szTmpData[2]; + pTpVendorCode[2] = szTmpData[3]; + + DBG("pTpVendorCode[0] = 0x%x , %c \n", pTpVendorCode[0], pTpVendorCode[0]); + DBG("pTpVendorCode[1] = 0x%x , %c \n", pTpVendorCode[1], pTpVendorCode[1]); + DBG("pTpVendorCode[2] = 0x%x , %c \n", pTpVendorCode[2], pTpVendorCode[2]); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + } +} +*/ + +static void _DrvFwCtrlMsg28xxGetSfrAddr3Value(void) +{ + DBG("*** %s() ***\n", __func__); + + // Disable cpu read flash + RegSetLByteValue(0x1608, 0x20); + RegSetLByteValue(0x1606, 0x20); + + // Set e-flash mode to read mode + RegSetLByteValue(0x1606, 0x01); + RegSetLByteValue(0x1610, 0x01); + RegSetLByteValue(0x1607, 0x20); + + // Set read address + RegSetLByteValue(0x1600, 0x03); + RegSetLByteValue(0x1601, 0x00); + + _gSFR_ADDR3_BYTE0_1_VALUE = RegGet16BitValue(0x160A); + _gSFR_ADDR3_BYTE2_3_VALUE = RegGet16BitValue(0x160C); + + DBG("_gSFR_ADDR3_BYTE0_1_VALUE = 0x%4X, _gSFR_ADDR3_BYTE2_3_VALUE = 0x%4X\n", _gSFR_ADDR3_BYTE0_1_VALUE, _gSFR_ADDR3_BYTE2_3_VALUE); +} + +static void _DrvFwCtrlMsg28xxUnsetProtectBit(void) +{ + u8 nB0, nB1, nB2, nB3; + + DBG("*** %s() ***\n", __func__); + + _DrvFwCtrlMsg28xxGetSfrAddr3Value(); + + nB0 = _gSFR_ADDR3_BYTE0_1_VALUE & 0xFF; + nB1 = (_gSFR_ADDR3_BYTE0_1_VALUE & 0xFF00) >> 8; + + nB2 = _gSFR_ADDR3_BYTE2_3_VALUE & 0xFF; + nB3 = (_gSFR_ADDR3_BYTE2_3_VALUE & 0xFF00) >> 8; + + DBG("nB0 = 0x%2X, nB1 = 0x%2X, nB2 = 0x%2X, nB3 = 0x%2X\n", nB0, nB1, nB2, nB3); + + nB2 = nB2 & 0xBF; // 10111111 + nB3 = nB3 & 0xFC; // 11111100 + + DBG("nB0 = 0x%2X, nB1 = 0x%2X, nB2 = 0x%2X, nB3 = 0x%2X\n", nB0, nB1, nB2, nB3); + + // Disable cpu read flash + RegSetLByteValue(0x1608, 0x20); + RegSetLByteValue(0x1606, 0x20); + RegSetLByteValue(0x1610, 0x80); + RegSetLByteValue(0x1607, 0x10); + + // Trigger SFR write + RegSetLByteValue(0x1606, 0x01); + + // Set write data + RegSetLByteValue(0x1602, nB0); + RegSetLByteValue(0x1602, nB1); + RegSetLByteValue(0x1602, nB2); + RegSetLByteValue(0x1602, nB3); + + // Set write address + RegSetLByteValue(0x1600, 0x03); + RegSetLByteValue(0x1601, 0x00); + + // Set TM mode = 0 + RegSetLByteValue(0x1607, 0x00); +} + +static void _DrvFwCtrlMsg28xxSetProtectBit(void) +{ + u8 nB0, nB1, nB2, nB3; + + DBG("*** %s() ***\n", __func__); + + nB0 = _gSFR_ADDR3_BYTE0_1_VALUE & 0xFF; + nB1 = (_gSFR_ADDR3_BYTE0_1_VALUE & 0xFF00) >> 8; + + nB2 = _gSFR_ADDR3_BYTE2_3_VALUE & 0xFF; + nB3 = (_gSFR_ADDR3_BYTE2_3_VALUE & 0xFF00) >> 8; + + DBG("nB0 = 0x%2X, nB1 = 0x%2X, nB2 = 0x%2X, nB3 = 0x%2X\n", nB0, nB1, nB2, nB3); + + // Disable cpu read flash + RegSetLByteValue(0x1608, 0x20); + RegSetLByteValue(0x1606, 0x20); + RegSetLByteValue(0x1610, 0x80); + RegSetLByteValue(0x1607, 0x10); + + // Trigger SFR write + RegSetLByteValue(0x1606, 0x01); + + // Set write data + RegSetLByteValue(0x1602, nB0); + RegSetLByteValue(0x1602, nB1); + RegSetLByteValue(0x1602, nB2); + RegSetLByteValue(0x1602, nB3); + + // Set write address + RegSetLByteValue(0x1600, 0x03); + RegSetLByteValue(0x1601, 0x00); + RegSetLByteValue(0x1606, 0x02); +} + +static void _DrvFwCtrlMsg28xxEraseEmem(EmemType_e eEmemType) +{ + u32 nInfoAddr = 0x20; + u32 nTimeOut = 0; + u8 nRegData = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + DBG("Erase start\n"); + + _DrvFwCtrlMsg28xxAccessEFlashInit(); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Set PROGRAM erase password + RegSet16BitValue(0x1618, 0x5AA5); + + _DrvFwCtrlMsg28xxUnsetProtectBit(); + + if (eEmemType == EMEM_MAIN) // 128KB + { + DBG("Erase main block\n"); + + // Set main block + RegSetLByteValue(0x1607, 0x00); + + // Set e-flash mode to erase mode + RegSetLByteValue(0x1606, 0xC0); + + // Set page erase main + RegSetLByteValue(0x1607, 0x03); + + // e-flash mode trigger + RegSetLByteValue(0x1606, 0xC1); + + nTimeOut = 0; + while (1) // Wait erase done + { + nRegData = RegGetLByteValue(0x160E); + nRegData = (nRegData & BIT3); + + DBG("Wait erase done flag nRegData = 0x%x\n", nRegData); + + if (nRegData == BIT3) + { + break; + } + + mdelay(10); + + if ((nTimeOut ++) > 10) + { + DBG("Erase main block failed. Timeout.\n"); + + goto EraseEnd; + } + } + } + else if (eEmemType == EMEM_INFO) // 2KB + { + DBG("Erase info block\n"); + + // Set info block + RegSetLByteValue(0x1607, 0x08); + + // Set info double buffer + RegSetLByteValue(0x1604, 0x01); + + // Set e-flash mode to erase mode + RegSetLByteValue(0x1606, 0xC0); + + // Set page erase info + RegSetLByteValue(0x1607, 0x09); + + for (nInfoAddr = 0x20; nInfoAddr <= MSG28XX_EMEM_INFO_MAX_ADDR; nInfoAddr += 0x20) + { + DBG("nInfoAddr = 0x%x\n", nInfoAddr); // add for debug + + // Set address + RegSet16BitValue(0x1600, nInfoAddr); + + // e-flash mode trigger + RegSetLByteValue(0x1606, 0xC1); + + nTimeOut = 0; + while (1) // Wait erase done + { + nRegData = RegGetLByteValue(0x160E); + nRegData = (nRegData & BIT3); + + DBG("Wait erase done flag nRegData = 0x%x\n", nRegData); + + if (nRegData == BIT3) + { + break; + } + + mdelay(10); + + if ((nTimeOut ++) > 10) + { + DBG("Erase info block failed. Timeout.\n"); + + // Set main block + RegSetLByteValue(0x1607, 0x00); + + goto EraseEnd; + } + } + } + + // Set main block + RegSetLByteValue(0x1607, 0x00); + } + + EraseEnd: + + _DrvFwCtrlMsg28xxSetProtectBit(); + + RegSetLByteValue(0x1606, 0x00); + RegSetLByteValue(0x1607, 0x00); + + // Clear PROGRAM erase password + RegSet16BitValue(0x1618, 0xA55A); + + DBG("Erase end\n"); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); +} + +static void _DrvFwCtrlMsg28xxProgramEmem(EmemType_e eEmemType) +{ + u32 i, j; + u32 nPageNum = 0, nLength = 0, nIndex = 0, nWordNum = 0; + u32 nRetryTime = 0; + u8 nRegData = 0; + u8 szFirstData[MSG28XX_EMEM_SIZE_BYTES_ONE_WORD] = {0}; + u8 szBufferData[MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE] = {0}; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + DBG("Program start\n"); + + _DrvFwCtrlMsg28xxAccessEFlashInit(); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Set PROGRAM erase password + RegSet16BitValue(0x1618, 0x5AA5); + + _DrvFwCtrlMsg28xxUnsetProtectBit(); + + if (eEmemType == EMEM_MAIN) // Program main block + { + DBG("Program main block\n"); + + nPageNum = (MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE * 1024) / MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE; // 128*1024/128=1024 + nIndex = 0; + + for (i = 0; i < nPageNum; i ++) + { + if (i == 0) + { + // Read first data 4 bytes + nLength = MSG28XX_EMEM_SIZE_BYTES_ONE_WORD; + + szFirstData[0] = g_FwData[0][0]; + szFirstData[1] = g_FwData[0][1]; + szFirstData[2] = g_FwData[0][2]; + szFirstData[3] = g_FwData[0][3]; + + _DrvFwCtrlMsg28xxIspBurstWriteEFlashStart(nIndex, &szFirstData[0], MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE*1024, nPageNum, EMEM_MAIN); + + nIndex += nLength; + + nLength = MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE - MSG28XX_EMEM_SIZE_BYTES_ONE_WORD; // 124 = 128 - 4 + + for (j = 0; j < nLength; j ++) + { + szBufferData[j] = g_FwData[0][4+j]; + } + } + else + { + nLength = MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE; + + for (j = 0; j < nLength; j ++) + { + szBufferData[j] = g_FwData[i/8][MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE*(i-(8*(i/8)))+j]; + } + } + + _DrvFwCtrlMsg28xxIspBurstWriteEFlashDoWrite(&szBufferData[0], nLength); + + udelay(2000); // delay about 2ms + + nIndex += nLength; + } + + _DrvFwCtrlMsg28xxIspBurstWriteEFlashEnd(); + + // Set write done + RegSet16BitValueOn(0x1606, BIT2); + + // Check RBB + nRegData = RegGetLByteValue(0x160E); + nRetryTime = 0; + + while ((nRegData & BIT3) != BIT3) + { + mdelay(10); + + nRegData = RegGetLByteValue(0x160E); + + if (nRetryTime ++ > 100) + { + DBG("main block can't wait write to done.\n"); + + goto ProgramEnd; + } + } + } + else if (eEmemType == EMEM_INFO) // Program info block + { + DBG("Program info block\n"); + + nPageNum = (MSG28XX_FIRMWARE_INFO_BLOCK_SIZE * 1024) / MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE; // 2*1024/128=16 + nIndex = 0; + nIndex += MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE; + + // Skip firt page(page 0) & Update page 1~14 by isp burst write mode + for (i = 1; i < (nPageNum - 1); i ++) + { + if (i == 1) + { + // Read first data 4 bytes + nLength = MSG28XX_EMEM_SIZE_BYTES_ONE_WORD; + + szFirstData[0] = g_FwData[MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE][MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE]; + szFirstData[1] = g_FwData[MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE][MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE+1]; + szFirstData[2] = g_FwData[MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE][MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE+2]; + szFirstData[3] = g_FwData[MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE][MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE+3]; + + _DrvFwCtrlMsg28xxIspBurstWriteEFlashStart(nIndex, &szFirstData[0], MSG28XX_FIRMWARE_INFO_BLOCK_SIZE*1024, nPageNum-1, EMEM_INFO); + + nIndex += nLength; + + nLength = MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE - MSG28XX_EMEM_SIZE_BYTES_ONE_WORD; // 124 = 128 - 4 + + for (j = 0; j < nLength; j ++) + { + szBufferData[j] = g_FwData[MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE][MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE+4+j]; + } + } + else + { + nLength = MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE; + + if (i < 8) // 1 < i < 8 + { + for (j = 0; j < nLength; j ++) + { + szBufferData[j] = g_FwData[MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE][MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE*i+j]; + } + } + else // i >= 8 + { + for (j = 0; j < nLength; j ++) + { + szBufferData[j] = g_FwData[MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE+1][MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE*(i-8)+j]; + } + } + } + + _DrvFwCtrlMsg28xxIspBurstWriteEFlashDoWrite(&szBufferData[0], nLength); + + udelay(2000); // delay about 2ms + + nIndex += nLength; + } + + _DrvFwCtrlMsg28xxIspBurstWriteEFlashEnd(); + + // Set write done + RegSet16BitValueOn(0x1606, BIT2); + + // Check RBB + nRegData = RegGetLByteValue(0x160E); + nRetryTime = 0; + + while ((nRegData & BIT3) != BIT3) + { + mdelay(10); + + nRegData = RegGetLByteValue(0x160E); + + if (nRetryTime ++ > 100) + { + DBG("Info block page 1~14 can't wait write to done.\n"); + + goto ProgramEnd; + } + } + + RegSet16BitValueOff(0x1EBE, BIT15); + + // Update page 15 by write mode + nIndex = 15 * MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE; + nWordNum = MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE / MSG28XX_EMEM_SIZE_BYTES_ONE_WORD; // 128/4=32 + nLength = MSG28XX_EMEM_SIZE_BYTES_ONE_WORD; + + for (i = 0; i < nWordNum; i ++) + { + if (i == 0) + { + szFirstData[0] = g_FwData[MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE+1][7*MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE]; + szFirstData[1] = g_FwData[MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE+1][7*MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE+1]; + szFirstData[2] = g_FwData[MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE+1][7*MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE+2]; + szFirstData[3] = g_FwData[MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE+1][7*MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE+3]; + + _DrvFwCtrlMsg28xxWriteEFlashStart(nIndex, &szFirstData[0], EMEM_INFO); + } + else + { + for (j = 0; j < nLength; j ++) + { + szFirstData[j] = g_FwData[MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE+1][7*MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE+(4*i)+j]; + } + + _DrvFwCtrlMsg28xxWriteEFlashDoWrite(nIndex, &szFirstData[0]); + } + + udelay(2000); // delay about 2ms + + nIndex += nLength; + } + + _DrvFwCtrlMsg28xxWriteEFlashEnd(); + + // Set write done + RegSet16BitValueOn(0x1606, BIT2); + + // Check RBB + nRegData = RegGetLByteValue(0x160E); + nRetryTime = 0; + + while ((nRegData & BIT3) != BIT3) + { + mdelay(10); + + nRegData = RegGetLByteValue(0x160E); + + if (nRetryTime ++ > 100) + { + DBG("Info block page 15 can't wait write to done.\n"); + + goto ProgramEnd; + } + } + } + + ProgramEnd: + + _DrvFwCtrlMsg28xxSetProtectBit(); + + // Clear PROGRAM erase password + RegSet16BitValue(0x1618, 0xA55A); + + DBG("Program end\n"); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); +} + +static u16 _DrvFwCtrlMsg28xxGetSwId(EmemType_e eEmemType) +{ + u16 nRetVal = 0; + u16 nReadAddr = 0; + u8 szTmpData[4] = {0}; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + if (eEmemType == EMEM_MAIN) // Read SW ID from main block + { + _DrvFwCtrlMsg28xxReadEFlashStart(0x7FFD, EMEM_MAIN); + nReadAddr = 0x7FFD; + } + else if (eEmemType == EMEM_INFO) // Read SW ID from info block + { + _DrvFwCtrlMsg28xxReadEFlashStart(0x81FB, EMEM_INFO); + nReadAddr = 0x81FB; + } + + _DrvFwCtrlMsg28xxReadEFlashDoRead(nReadAddr, &szTmpData[0]); + + _DrvFwCtrlMsg28xxReadEFlashEnd(); + + /* + Ex. SW ID in Main Block : + Major low byte at address 0x7FFD + + SW ID in Info Block : + Major low byte at address 0x81FB + */ + + nRetVal = (szTmpData[1] << 8); + nRetVal |= szTmpData[0]; + + DBG("SW ID = 0x%x\n", nRetVal); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static u32 _DrvFwCtrlMsg28xxGetFirmwareCrcByHardware(EmemType_e eEmemType) +{ + u32 nRetVal = 0; + u32 nRetryTime = 0; + u32 nCrcEndAddr = 0; + u16 nCrcDown = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + _DrvFwCtrlMsg28xxAccessEFlashInit(); + + if (eEmemType == EMEM_MAIN) + { + // Disable cpu read flash + RegSetLByteValue(0x1608, 0x20); + RegSetLByteValue(0x1606, 0x20); + + // Set read flag + RegSet16BitValue(0x1610, 0x0001); + + // Mode reset main block + RegSet16BitValue(0x1606, 0x0000); + + // CRC reset + RegSet16BitValue(0x1620, 0x0002); + + RegSet16BitValue(0x1620, 0x0000); + + // Set CRC e-flash block start address => Main Block : 0x0000 ~ 0x7FFE + RegSet16BitValue(0x1600, 0x0000); + + nCrcEndAddr = (MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE*1024)/4-2; + + RegSet16BitValue(0x1622, nCrcEndAddr); + + // Trigger CRC check + RegSet16BitValue(0x1620, 0x0001); + + nCrcDown = RegGet16BitValue(0x1620); + + nRetryTime = 0; + while ((nCrcDown >> 15) == 0) + { + mdelay(10); + + nCrcDown = RegGet16BitValue(0x1620); + nRetryTime ++; + + if (nRetryTime > 30) + { + DBG("Wait main block nCrcDown failed.\n"); + break; + } + } + + nRetVal = RegGet16BitValue(0x1626); + nRetVal = (nRetVal << 16) | RegGet16BitValue(0x1624); + } + else if (eEmemType == EMEM_INFO) + { + // Disable cpu read flash + RegSetLByteValue(0x1608, 0x20); + RegSetLByteValue(0x1606, 0x20); + + // Set read flag + RegSet16BitValue(0x1610, 0x0001); + + // Mode reset info block + RegSet16BitValue(0x1606, 0x0800); + + RegSetLByteValue(0x1604, 0x01); + + // CRC reset + RegSet16BitValue(0x1620, 0x0002); + + RegSet16BitValue(0x1620, 0x0000); + + // Set CRC e-flash block start address => Info Block : 0x0020 ~ 0x01FE + RegSet16BitValue(0x1600, 0x0020); + RegSet16BitValue(0x1622, 0x01FE); + + // Trigger CRC check + RegSet16BitValue(0x1620, 0x0001); + + nCrcDown = RegGet16BitValue(0x1620); + + nRetryTime = 0; + while ((nCrcDown >> 15) == 0) + { + mdelay(10); + + nCrcDown = RegGet16BitValue(0x1620); + nRetryTime ++; + + if (nRetryTime > 30) + { + DBG("Wait info block nCrcDown failed.\n"); + break; + } + } + + nRetVal = RegGet16BitValue(0x1626); + nRetVal = (nRetVal << 16) | RegGet16BitValue(0x1624); + } + + DBG("Hardware CRC = 0x%x\n", nRetVal); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static s32 _DrvFwCtrlMsg28xxUpdateFirmware(u8 szFwData[][1024], EmemType_e eEmemType) +{ + u32 nCrcMain = 0, nCrcMainTp = 0; + u32 nCrcInfo = 0, nCrcInfoTp = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + ///////////////////////// + // Erase + ///////////////////////// + + if (eEmemType == EMEM_ALL) + { + _DrvFwCtrlMsg28xxEraseEmem(EMEM_MAIN); + _DrvFwCtrlMsg28xxEraseEmem(EMEM_INFO); + } + else if (eEmemType == EMEM_MAIN) + { + _DrvFwCtrlMsg28xxEraseEmem(EMEM_MAIN); + } + else if (eEmemType == EMEM_INFO) + { + _DrvFwCtrlMsg28xxEraseEmem(EMEM_INFO); + } + + DBG("erase OK\n"); + + ///////////////////////// + // Program + ///////////////////////// + + if (eEmemType == EMEM_ALL) + { + _DrvFwCtrlMsg28xxProgramEmem(EMEM_MAIN); + _DrvFwCtrlMsg28xxProgramEmem(EMEM_INFO); + } + else if (eEmemType == EMEM_MAIN) + { + _DrvFwCtrlMsg28xxProgramEmem(EMEM_MAIN); + } + else if (eEmemType == EMEM_INFO) + { + _DrvFwCtrlMsg28xxProgramEmem(EMEM_INFO); + } + + DBG("program OK\n"); + + /* Calculate main block & info block CRC by device driver itself */ + _DrvFwCtrlMsg28xxConvertFwDataTwoDimenToOneDimen(szFwData, _gOneDimenFwData); + + /* Read main block CRC from TP */ + if (eEmemType == EMEM_ALL) + { + nCrcMain = _DrvFwCtrlMsg28xxCalculateCrc(_gOneDimenFwData, 0, MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE*1024-MSG28XX_EMEM_SIZE_BYTES_ONE_WORD); + nCrcInfo = _DrvFwCtrlMsg28xxCalculateCrc(_gOneDimenFwData, MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE*1024+MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE, MSG28XX_FIRMWARE_INFO_BLOCK_SIZE*1024-MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE-MSG28XX_EMEM_SIZE_BYTES_ONE_WORD); + + nCrcMainTp = _DrvFwCtrlMsg28xxGetFirmwareCrcByHardware(EMEM_MAIN); + nCrcInfoTp = _DrvFwCtrlMsg28xxGetFirmwareCrcByHardware(EMEM_INFO); + } + else if (eEmemType == EMEM_MAIN) + { + nCrcMain = _DrvFwCtrlMsg28xxCalculateCrc(_gOneDimenFwData, 0, MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE*1024-MSG28XX_EMEM_SIZE_BYTES_ONE_WORD); + + nCrcMainTp = _DrvFwCtrlMsg28xxGetFirmwareCrcByHardware(EMEM_MAIN); + } + else if (eEmemType == EMEM_INFO) + { + nCrcInfo = _DrvFwCtrlMsg28xxCalculateCrc(_gOneDimenFwData, MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE*1024+MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE, MSG28XX_FIRMWARE_INFO_BLOCK_SIZE*1024-MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE-MSG28XX_EMEM_SIZE_BYTES_ONE_WORD); + + nCrcInfoTp = _DrvFwCtrlMsg28xxGetFirmwareCrcByHardware(EMEM_INFO); + } + + DBG("nCrcMain=0x%x, nCrcInfo=0x%x, nCrcMainTp=0x%x, nCrcInfoTp=0x%x\n", + nCrcMain, nCrcInfo, nCrcMainTp, nCrcInfoTp); + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + DrvPlatformLyrTouchDeviceResetHw(); + mdelay(300); + + if (eEmemType == EMEM_ALL) + { + if ((nCrcMainTp != nCrcMain) || (nCrcInfoTp != nCrcInfo)) + { + DBG("Update FAILED\n"); + + return -1; + } + } + else if (eEmemType == EMEM_MAIN) + { + if (nCrcMainTp != nCrcMain) + { + DBG("Update FAILED\n"); + + return -1; + } + } + else if (eEmemType == EMEM_INFO) + { + if (nCrcInfoTp != nCrcInfo) + { + DBG("Update FAILED\n"); + + return -1; + } + } + + DBG("Update SUCCESS\n"); + + return 0; +} + +static s32 _DrvFwCtrlUpdateFirmwareCash(u8 szFwData[][1024], EmemType_e eEmemType) +{ + DBG("*** %s() ***\n", __func__); + + DBG("chip type = 0x%x\n", g_ChipType); + + if (g_ChipType == CHIP_TYPE_MSG26XXM) // (0x03) + { + return _DrvFwCtrlMsg26xxmUpdateFirmware(szFwData, eEmemType); + } + else if (g_ChipType == CHIP_TYPE_MSG28XX) // (0x85) + { + u16 eSwId = 0x0000; + u16 eVendorId = 0x0000; + + eVendorId = szFwData[129][1005] << 8 | szFwData[129][1004]; // Retrieve major from info block + eSwId = _DrvFwCtrlMsg28xxGetSwId(EMEM_INFO); + + DBG("eVendorId = 0x%x, eSwId = 0x%x\n", eVendorId, eSwId); + + // Check if the vendor id of the update firmware bin file is equal to the vendor id on e-flash. YES => allow update, NO => not allow update + if (eSwId != eVendorId) + { + DrvPlatformLyrTouchDeviceResetHw(); // Reset HW here to avoid touch may be not worked after get sw id. + + DBG("The vendor id of the update firmware bin file is different from the vendor id on e-flash. Not allow to update.\n"); + + return -1; + } + else + { + return _DrvFwCtrlMsg28xxUpdateFirmware(szFwData, EMEM_MAIN); + } + } + else + { + DBG("Undefined chip type.\n"); + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + return -1; + } +} + +static s32 _DrvFwCtrlUpdateFirmwareBySdCard(const char *pFilePath) +{ + s32 nRetVal = 0; + struct file *pfile = NULL; + struct inode *inode; + s32 fsize = 0; + u8 *pbt_buf = NULL; + mm_segment_t old_fs; + loff_t pos; + u16 eSwId = 0x0000; + u16 eVendorId = 0x0000; + + DBG("*** %s() ***\n", __func__); + + pfile = filp_open(pFilePath, O_RDONLY, 0); + if (IS_ERR(pfile)) + { + DBG("Error occured while opening file %s.\n", pFilePath); + return -1; + } + + inode = pfile->f_dentry->d_inode; + fsize = inode->i_size; + + DBG("fsize = %d\n", fsize); + + if (fsize <= 0) + { + filp_close(pfile, NULL); + return -1; + } + + // read firmware + pbt_buf = kmalloc(fsize, GFP_KERNEL); + + old_fs = get_fs(); + set_fs(KERNEL_DS); + + pos = 0; + vfs_read(pfile, pbt_buf, fsize, &pos); + + filp_close(pfile, NULL); + set_fs(old_fs); + + _DrvFwCtrlStoreFirmwareData(pbt_buf, fsize); + + kfree(pbt_buf); + + DrvPlatformLyrDisableFingerTouchReport(); + + DrvPlatformLyrTouchDeviceResetHw(); + + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + eVendorId = g_FwData[0][0x2B] <<8 | g_FwData[0][0x2A]; + eSwId = _DrvFwCtrlMsg26xxmGetSwId(EMEM_MAIN); + } + else if (g_ChipType == CHIP_TYPE_MSG28XX) + { + eVendorId = g_FwData[127][1013] <<8 | g_FwData[127][1012]; + eSwId = _DrvFwCtrlMsg28xxGetSwId(EMEM_MAIN); + } + + DBG("eVendorId = 0x%x, eSwId = 0x%x\n", eVendorId, eSwId); + + if (eSwId == eVendorId) + { + if ((g_ChipType == CHIP_TYPE_MSG26XXM && fsize == 40960/* 40KB */) || (g_ChipType == CHIP_TYPE_MSG28XX && fsize == 133120/* 130KB */)) + { + nRetVal = _DrvFwCtrlUpdateFirmwareCash(g_FwData, EMEM_ALL); + } + else + { + DBG("The file size of the update firmware bin file is not supported, fsize = %d\n", fsize); + nRetVal = -1; + } + } + else + { + DBG("The vendor id of the update firmware bin file is different from the vendor id on e-flash. Not allow to update.\n"); + nRetVal = -1; + } + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + DrvPlatformLyrEnableFingerTouchReport(); + + return nRetVal; +} + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + +void DrvFwCtrlOpenGestureWakeup(u32 *pMode) +{ + u8 szDbBusTxData[4] = {0}; + u32 i = 0; + s32 rc; + + DBG("*** %s() ***\n", __func__); + + DBG("wakeup mode 0 = 0x%x\n", pMode[0]); + DBG("wakeup mode 1 = 0x%x\n", pMode[1]); + +#ifdef CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE + szDbBusTxData[0] = 0x59; + szDbBusTxData[1] = 0x00; + szDbBusTxData[2] = ((pMode[1] & 0xFF000000) >> 24); + szDbBusTxData[3] = ((pMode[1] & 0x00FF0000) >> 16); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 4); + mdelay(10); // delay 10ms + + if (rc > 0) + { + DBG("Enable gesture wakeup index 0 success\n"); + break; + } + + i++; + } + if (i == 5) + { + DBG("Enable gesture wakeup index 0 failed\n"); + } + + szDbBusTxData[0] = 0x59; + szDbBusTxData[1] = 0x01; + szDbBusTxData[2] = ((pMode[1] & 0x0000FF00) >> 8); + szDbBusTxData[3] = ((pMode[1] & 0x000000FF) >> 0); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 4); + mdelay(10); // delay 10ms + + if (rc > 0) + { + DBG("Enable gesture wakeup index 1 success\n"); + break; + } + + i++; + } + if (i == 5) + { + DBG("Enable gesture wakeup index 1 failed\n"); + } + + szDbBusTxData[0] = 0x59; + szDbBusTxData[1] = 0x02; + szDbBusTxData[2] = ((pMode[0] & 0xFF000000) >> 24); + szDbBusTxData[3] = ((pMode[0] & 0x00FF0000) >> 16); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 4); + mdelay(10); // delay 10ms + + if (rc > 0) + { + DBG("Enable gesture wakeup index 2 success\n"); + break; + } + + i++; + } + if (i == 5) + { + DBG("Enable gesture wakeup index 2 failed\n"); + } + + szDbBusTxData[0] = 0x59; + szDbBusTxData[1] = 0x03; + szDbBusTxData[2] = ((pMode[0] & 0x0000FF00) >> 8); + szDbBusTxData[3] = ((pMode[0] & 0x000000FF) >> 0); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 4); + mdelay(10); // delay 10ms + + if (rc > 0) + { + DBG("Enable gesture wakeup index 3 success\n"); + break; + } + + i++; + } + if (i == 5) + { + DBG("Enable gesture wakeup index 3 failed\n"); + } + + g_GestureWakeupFlag = 1; // gesture wakeup is enabled + +#else + + szDbBusTxData[0] = 0x58; + szDbBusTxData[1] = ((pMode[0] & 0x0000FF00) >> 8); + szDbBusTxData[2] = ((pMode[0] & 0x000000FF) >> 0); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + + if (rc > 0) + { + DBG("Enable gesture wakeup success\n"); + break; + } + + mdelay(10); + i++; + } + if (i == 5) + { + DBG("Enable gesture wakeup failed\n"); + } + + g_GestureWakeupFlag = 1; // gesture wakeup is enabled +#endif //CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE +} + +void DrvFwCtrlCloseGestureWakeup(void) +{ + DBG("*** %s() ***\n", __func__); + + g_GestureWakeupFlag = 0; // gesture wakeup is disabled +} + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +void DrvFwCtrlOpenGestureDebugMode(u8 nGestureFlag) +{ + u8 szDbBusTxData[3] = {0}; + s32 rc; + + DBG("*** %s() ***\n", __func__); + + DBG("Gesture Flag = 0x%x\n", nGestureFlag); + + szDbBusTxData[0] = 0x30; + szDbBusTxData[1] = 0x01; + szDbBusTxData[2] = nGestureFlag; + + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + if (rc < 0) + { + DBG("Enable gesture debug mode failed\n"); + } + else + { + DBG("Enable gesture debug mode success\n"); + } + + g_GestureDebugMode = 1; // gesture debug mode is enabled +} + +void DrvFwCtrlCloseGestureDebugMode(void) +{ + u8 szDbBusTxData[3] = {0}; + s32 rc; + + DBG("*** %s() ***\n", __func__); + + szDbBusTxData[0] = 0x30; + szDbBusTxData[1] = 0x00; + szDbBusTxData[2] = 0x00; + + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + if (rc < 0) + { + DBG("Disable gesture debug mode failed\n"); + } + else + { + DBG("Disable gesture debug mode success\n"); + } + + g_GestureDebugMode = 0; // gesture debug mode is disabled +} +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE +static void _DrvFwCtrlCoordinate(u8 *pRawData, u32 *pTranX, u32 *pTranY) +{ + u32 nX; + u32 nY; +#ifdef CONFIG_SWAP_X_Y + u32 nTempX; + u32 nTempY; +#endif + + nX = (((pRawData[0] & 0xF0) << 4) | pRawData[1]); // parse the packet to coordinate + nY = (((pRawData[0] & 0x0F) << 8) | pRawData[2]); + + DBG("[x,y]=[%d,%d]\n", nX, nY); + +#ifdef CONFIG_SWAP_X_Y + nTempY = nX; + nTempX = nY; + nX = nTempX; + nY = nTempY; +#endif + +#ifdef CONFIG_REVERSE_X + nX = 2047 - nX; +#endif + +#ifdef CONFIG_REVERSE_Y + nY = 2047 - nY; +#endif + + /* + * pRawData[0]~pRawData[2] : the point abs, + * pRawData[0]~pRawData[2] all are 0xFF, release touch + */ + if ((pRawData[0] == 0xFF) && (pRawData[1] == 0xFF) && (pRawData[2] == 0xFF)) + { + *pTranX = 0; // final X coordinate + *pTranY = 0; // final Y coordinate + } + else + { + /* one touch point */ + *pTranX = (nX * TOUCH_SCREEN_X_MAX) / TPD_WIDTH; + *pTranY = (nY * TOUCH_SCREEN_Y_MAX) / TPD_HEIGHT; + DBG("[%s]: [x,y]=[%d,%d]\n", __func__, nX, nY); + DBG("[%s]: point[x,y]=[%d,%d]\n", __func__, *pTranX, *pTranY); + } +} +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE + +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +static void _DrvFwCtrlReadReadDQMemStart(void) +{ + u8 nParCmdSelUseCfg = 0x7F; + u8 nParCmdAdByteEn0 = 0x50; + u8 nParCmdAdByteEn1 = 0x51; + u8 nParCmdDaByteEn0 = 0x54; + u8 nParCmdUSetSelB0 = 0x80; + u8 nParCmdUSetSelB1 = 0x82; + u8 nParCmdSetSelB2 = 0x85; + u8 nParCmdIicUse = 0x35; + //u8 nParCmdWr = 0x10; + + DBG("*** %s() ***\n", __func__); + + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdSelUseCfg, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdAdByteEn0, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdAdByteEn1, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdDaByteEn0, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdUSetSelB0, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdUSetSelB1, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdSetSelB2, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdIicUse, 1); +} + +static void _DrvFwCtrlReadReadDQMemEnd(void) +{ + u8 nParCmdNSelUseCfg = 0x7E; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdNSelUseCfg, 1); +} + +u32 DrvFwCtrlReadDQMemValue(u16 nAddr) +{ + u8 tx_data[3] = {0x10, (nAddr >> 8) & 0xFF, nAddr & 0xFF}; + u8 rx_data[4] = {0}; + + DBG("*** %s() ***\n", __func__); + + DBG("DQMem Addr = 0x%x\n", nAddr); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + mdelay(100); + + _DrvFwCtrlReadReadDQMemStart(); + + IicWriteData(SLAVE_I2C_ID_DBBUS, &tx_data[0], 3); + IicReadData(SLAVE_I2C_ID_DBBUS, &rx_data[0], 4); + + _DrvFwCtrlReadReadDQMemEnd(); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return (rx_data[3] <<24 | rx_data[2] <<16 | rx_data[1] << 8 | rx_data[0]); +} + +void DrvFwCtrlWriteDQMemValue(u16 nAddr, u32 nData) +{ + u8 szDbBusTxData[7] = {0}; + + DBG("*** %s() ***\n", __func__); + + DBG("DQMem Addr = 0x%x\n", nAddr); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + mdelay(100); + + _DrvFwCtrlReadReadDQMemStart(); + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = ((nAddr >> 8) & 0xff); + szDbBusTxData[2] = (nAddr & 0xff); + szDbBusTxData[3] = nData & 0x000000FF; + szDbBusTxData[4] = ((nData & 0x0000FF00) >> 8); + szDbBusTxData[5] = ((nData & 0x00FF0000) >> 16); + szDbBusTxData[6] = ((nData & 0xFF000000) >> 24); + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 7); + + _DrvFwCtrlReadReadDQMemEnd(); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + mdelay(100); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); +} + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +//-------------------------Start of SW ID for MSG26XXM----------------------------// + +static u32 _DrvFwCtrlMsg26xxmCalculateFirmwareCrcFromEFlash(EmemType_e eEmemType, u8 nIsNeedResetHW) +{ + u32 nRetVal = 0; + u16 nRegData = 0; + + DBG("*** %s() eEmemType = %d, nIsNeedResetHW = %d ***\n", __func__, eEmemType, nIsNeedResetHW); + + if (1 == nIsNeedResetHW) + { + DrvPlatformLyrTouchDeviceResetHw(); + } + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // cmd + RegSet16BitValue(0x3CE4, 0xDF4C); //bank:reg_PIU_MISC_0, addr:h0072 + + // TP SW reset + RegSet16BitValue(0x1E04, 0x7d60); //bank:chip, addr:h0002 + RegSet16BitValue(0x1E04, 0x829F); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + + mdelay(100); + + // Polling 0x3CE4 is 0x9432 + do + { + nRegData = RegGet16BitValue(0x3CE4); //bank:reg_PIU_MISC_0, addr:h0072 + } while (nRegData != 0x9432); + + if (eEmemType == EMEM_MAIN) // Read calculated main block CRC(32K-8) from register + { + nRetVal = RegGet16BitValue(0x3C80); + nRetVal = (nRetVal << 16) | RegGet16BitValue(0x3C82); + + DBG("Main Block CRC = 0x%x\n", nRetVal); + } + else if (eEmemType == EMEM_INFO) // Read calculated info block CRC(8K) from register + { + nRetVal = RegGet16BitValue(0x3CA0); + nRetVal = (nRetVal << 16) | RegGet16BitValue(0x3CA2); + + DBG("Info Block CRC = 0x%x\n", nRetVal); + } + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static u32 _DrvFwCtrlMsg26xxmRetrieveFirmwareCrcFromMainBlock(EmemType_e eEmemType) +{ + u32 nRetVal = 0; + u16 nRegData = 0; + u8 szDbBusTxData[5] = {0}; + u8 szDbBusRxData[4] = {0}; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // cmd + RegSet16BitValue(0x3CE4, 0xA4AB); //bank:reg_PIU_MISC_0, addr:h0072 + + // TP SW reset + RegSet16BitValue(0x1E04, 0x7d60); //bank:chip, addr:h0002 + RegSet16BitValue(0x1E04, 0x829F); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + + mdelay(100); + + // Polling 0x3CE4 is 0x5B58 + do + { + nRegData = RegGet16BitValue(0x3CE4); //bank:reg_PIU_MISC_0, addr:h0072 + } while (nRegData != 0x5B58); + + szDbBusTxData[0] = 0x72; + if (eEmemType == EMEM_MAIN) // Read main block CRC(32K-8) from main block + { + szDbBusTxData[1] = 0x7F; + szDbBusTxData[2] = 0xF8; + } + else if (eEmemType == EMEM_INFO) // Read info block CRC(8K) from main block + { + szDbBusTxData[1] = 0x7F; + szDbBusTxData[2] = 0xFC; + } + szDbBusTxData[3] = 0x00; + szDbBusTxData[4] = 0x04; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 5); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 4); + + /* + The order of 4 bytes [ 0 : 1 : 2 : 3 ] + Ex. CRC32 = 0x12345678 + 0x7FF8 = 0x78, 0x7FF9 = 0x56, + 0x7FFA = 0x34, 0x7FFB = 0x12 + */ + + nRetVal = szDbBusRxData[3]; + nRetVal = (nRetVal << 8) | szDbBusRxData[2]; + nRetVal = (nRetVal << 8) | szDbBusRxData[1]; + nRetVal = (nRetVal << 8) | szDbBusRxData[0]; + + DBG("CRC = 0x%x\n", nRetVal); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static u32 _DrvFwCtrlMsg26xxmRetrieveInfoCrcFromInfoBlock(void) +{ + u32 nRetVal = 0; + u16 nRegData = 0; + u8 szDbBusTxData[5] = {0}; + u8 szDbBusRxData[4] = {0}; + + DBG("*** %s() ***\n", __func__); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // cmd + RegSet16BitValue(0x3CE4, 0xA4AB); //bank:reg_PIU_MISC_0, addr:h0072 + + // TP SW reset + RegSet16BitValue(0x1E04, 0x7d60); //bank:chip, addr:h0002 + RegSet16BitValue(0x1E04, 0x829F); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + + mdelay(100); + + // Polling 0x3CE4 is 0x5B58 + do + { + nRegData = RegGet16BitValue(0x3CE4); //bank:reg_PIU_MISC_0, addr:h0072 + } while (nRegData != 0x5B58); + + + // Read info CRC(8K-4) from info block + szDbBusTxData[0] = 0x72; + szDbBusTxData[1] = 0x80; + szDbBusTxData[2] = 0x00; + szDbBusTxData[3] = 0x00; + szDbBusTxData[4] = 0x04; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 5); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 4); + + nRetVal = szDbBusRxData[3]; + nRetVal = (nRetVal << 8) | szDbBusRxData[2]; + nRetVal = (nRetVal << 8) | szDbBusRxData[1]; + nRetVal = (nRetVal << 8) | szDbBusRxData[0]; + + DBG("CRC = 0x%x\n", nRetVal); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static u32 _DrvFwCtrlMsg26xxmRetrieveFrimwareCrcFromBinFile(u8 szTmpBuf[][1024], EmemType_e eEmemType) +{ + u32 nRetVal = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + if (szTmpBuf != NULL) + { + if (eEmemType == EMEM_MAIN) // Read main block CRC(32K-8) from bin file + { + nRetVal = szTmpBuf[31][1019]; + nRetVal = (nRetVal << 8) | szTmpBuf[31][1018]; + nRetVal = (nRetVal << 8) | szTmpBuf[31][1017]; + nRetVal = (nRetVal << 8) | szTmpBuf[31][1016]; + } + else if (eEmemType == EMEM_INFO) // Read info block CRC(8K) from bin file + { + nRetVal = szTmpBuf[31][1023]; + nRetVal = (nRetVal << 8) | szTmpBuf[31][1022]; + nRetVal = (nRetVal << 8) | szTmpBuf[31][1021]; + nRetVal = (nRetVal << 8) | szTmpBuf[31][1020]; + } + } + + return nRetVal; +} + +static u32 _DrvFwCtrlMsg26xxmCalculateInfoCrcByDeviceDriver(void) +{ + u32 nRetVal = 0xffffffff; + u32 i, j; + u16 nRegData = 0; + u8 szDbBusTxData[5] = {0}; + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // cmd + RegSet16BitValue(0x3CE4, 0xA4AB); //bank:reg_PIU_MISC_0, addr:h0072 + + // TP SW reset + RegSet16BitValue(0x1E04, 0x7d60); //bank:chip, addr:h0002 + RegSet16BitValue(0x1E04, 0x829F); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + + mdelay(100); + + // Polling 0x3CE4 is 0x5B58 + do + { + nRegData = RegGet16BitValue(0x3CE4); //bank:reg_PIU_MISC_0, addr:h0072 + } while (nRegData != 0x5B58); + + DrvCommonCrcInitTable(); + + // Read info data(8K) from info block + szDbBusTxData[0] = 0x72; + szDbBusTxData[3] = 0x00; // read 128 bytes + szDbBusTxData[4] = 0x80; + + for (i = 0; i < 8; i ++) + { + for (j = 0; j < 8; j ++) + { + szDbBusTxData[1] = 0x80 + (i*0x04) + (((j*128)&0xff00)>>8); + szDbBusTxData[2] = (j*128)&0x00ff; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 5); + + // Receive info data + IicReadData(SLAVE_I2C_ID_DWI2C, &_gTempData[j*128], 128); + } + + if (i == 0) + { + for (j = 4; j < 1024; j ++) + { + nRetVal = DrvCommonCrcGetValue(_gTempData[j], nRetVal); + } + } + else + { + for (j = 0; j < 1024; j ++) + { + nRetVal = DrvCommonCrcGetValue(_gTempData[j], nRetVal); + } + } + } + + nRetVal = nRetVal ^ 0xffffffff; + + DBG("Info(8K-4) CRC = 0x%x\n", nRetVal); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static s32 _DrvFwCtrlMsg26xxmCompare8BytesForCrc(u8 szTmpBuf[][1024]) +{ + s32 nRetVal = -1; + u16 nRegData = 0; + u8 szDbBusTxData[5] = {0}; + u8 szDbBusRxData[8] = {0}; + u8 crc[8] = {0}; + + DBG("*** %s() ***\n", __func__); + + // Read 8 bytes from bin file + if (szTmpBuf != NULL) + { + crc[0] = szTmpBuf[31][1016]; + crc[1] = szTmpBuf[31][1017]; + crc[2] = szTmpBuf[31][1018]; + crc[3] = szTmpBuf[31][1019]; + crc[4] = szTmpBuf[31][1020]; + crc[5] = szTmpBuf[31][1021]; + crc[6] = szTmpBuf[31][1022]; + crc[7] = szTmpBuf[31][1023]; + } + + // Read 8 bytes from the firmware on e-flash + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // cmd + RegSet16BitValue(0x3CE4, 0xA4AB); //bank:reg_PIU_MISC_0, addr:h0072 + + // TP SW reset + RegSet16BitValue(0x1E04, 0x7d60); //bank:chip, addr:h0002 + RegSet16BitValue(0x1E04, 0x829F); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + + mdelay(100); + + // Polling 0x3CE4 is 0x5B58 + do + { + nRegData = RegGet16BitValue(0x3CE4); //bank:reg_PIU_MISC_0, addr:h0072 + } while (nRegData != 0x5B58); + + szDbBusTxData[0] = 0x72; + szDbBusTxData[1] = 0x7F; + szDbBusTxData[2] = 0xF8; + szDbBusTxData[3] = 0x00; + szDbBusTxData[4] = 0x08; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 5); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 8); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + if (crc[0] == szDbBusRxData[0] + && crc[1] == szDbBusRxData[1] + && crc[2] == szDbBusRxData[2] + && crc[3] == szDbBusRxData[3] + && crc[4] == szDbBusRxData[4] + && crc[5] == szDbBusRxData[5] + && crc[6] == szDbBusRxData[6] + && crc[7] == szDbBusRxData[7]) + { + nRetVal = 0; + } + else + { + nRetVal = -1; + } + + DBG("compare 8bytes for CRC = %d\n", nRetVal); + + return nRetVal; +} + +static void _DrvFwCtrlMsg26xxmEraseFirmwareOnEFlash(EmemType_e eEmemType) +{ + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DBG("erase 0\n"); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // cmd + RegSet16BitValue(0x3CE4, 0x78C5); //bank:reg_PIU_MISC_0, addr:h0072 + + // TP SW reset + RegSet16BitValue(0x1E04, 0x7d60); //bank:chip, addr:h0002 + RegSet16BitValue(0x1E04, 0x829F); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + + mdelay(100); + + DBG("erase 1\n"); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // Set PROGRAM password + RegSet16BitValue(0x161A, 0xABBA); //bank:emem, addr:h000D + + if (eEmemType == EMEM_INFO) + { + RegSet16BitValue(0x1600, 0x8000); //bank:emem, addr:h0000 + } + + // Clear pce + RegSetLByteValue(0x1618, 0x80); //bank:emem, addr:h000C + + DBG("erase 2\n"); + + // Clear setting + RegSetLByteValue(0x1618, 0x40); //bank:emem, addr:h000C + + mdelay(10); + + // Clear pce + RegSetLByteValue(0x1618, 0x80); //bank:emem, addr:h000C + + DBG("erase 3\n"); + + // Trigger erase + if (eEmemType == EMEM_ALL) + { + RegSetLByteValue(0x160E, 0x08); //all chip //bank:emem, addr:h0007 + } + else if (eEmemType == EMEM_MAIN || eEmemType == EMEM_INFO) + { + RegSetLByteValue(0x160E, 0x04); //sector //bank:emem, addr:h0007 + } + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + mdelay(200); + + DBG("erase OK\n"); +} + +static void _DrvFwCtrlMsg26xxmProgramFirmwareOnEFlash(EmemType_e eEmemType) +{ + u32 nStart = 0, nEnd = 0; + u32 i, j; + u16 nRegData = 0; +// u16 nRegData2 = 0, nRegData3 = 0; // add for debug + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DBG("program 0\n"); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + if (eEmemType == EMEM_INFO || eEmemType == EMEM_MAIN) + { + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // cmd + RegSet16BitValue(0x3CE4, 0x78C5); //bank:reg_PIU_MISC_0, addr:h0072 + + // TP SW reset + RegSet16BitValue(0x1E04, 0x7d60); //bank:chip, addr:h0002 + RegSet16BitValue(0x1E04, 0x829F); + + nRegData = RegGet16BitValue(0x1618); +// DBG("*** reg(0x16, 0x18) = 0x%x ***\n", nRegData); // add for debug + + nRegData |= 0x40; +// DBG("*** nRegData = 0x%x ***\n", nRegData); // add for debug + + RegSetLByteValue(0x1618, nRegData); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + + mdelay(100); + } + + DBG("program 1\n"); + + RegSet16BitValue(0x0F52, 0xDB00); // add for analysis + + // Check_Loader_Ready: Polling 0x3CE4 is 0x1C70 + do + { + nRegData = RegGet16BitValue(0x3CE4); //bank:reg_PIU_MISC_0, addr:h0072 +// DBG("*** reg(0x3C, 0xE4) = 0x%x ***\n", nRegData); // add for debug + +// nRegData2 = RegGet16BitValue(0x0F00); // add for debug +// DBG("*** reg(0x0F, 0x00) = 0x%x ***\n", nRegData2); + +// nRegData3 = RegGet16BitValue(0x1E04); // add for debug +// DBG("*** reg(0x1E, 0x04) = 0x%x ***\n", nRegData3); + + } while (nRegData != 0x1C70); + + DBG("program 2\n"); + + if (eEmemType == EMEM_ALL) + { + RegSet16BitValue(0x3CE4, 0xE38F); //all chip + + nStart = 0; + nEnd = MSG26XXM_FIRMWARE_WHOLE_SIZE; //32K + 8K + } + else if (eEmemType == EMEM_MAIN) + { + RegSet16BitValue(0x3CE4, 0x7731); //main block + + nStart = 0; + nEnd = MSG26XXM_FIRMWARE_MAIN_BLOCK_SIZE; //32K + } + else if (eEmemType == EMEM_INFO) + { + RegSet16BitValue(0x3CE4, 0xB9D6); //info block + + nStart = MSG26XXM_FIRMWARE_MAIN_BLOCK_SIZE; + nEnd = MSG26XXM_FIRMWARE_MAIN_BLOCK_SIZE + MSG26XXM_FIRMWARE_INFO_BLOCK_SIZE; + } + + // Check_Loader_Ready2Program: Polling 0x3CE4 is 0x2F43 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x2F43); + + DBG("program 3\n"); + + for (i = nStart; i < nEnd; i ++) + { + for (j = 0; j < 8; j ++) + { + IicWriteData(SLAVE_I2C_ID_DWI2C, &g_FwData[i][j*128], 128); + } + + mdelay(100); + + // Check_Program_Done: Polling 0x3CE4 is 0xD0BC + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0xD0BC); + + // Continue_Program + RegSet16BitValue(0x3CE4, 0x2F43); + } + + DBG("program 4\n"); + + // Notify_Write_Done + RegSet16BitValue(0x3CE4, 0x1380); + mdelay(100); + + DBG("program 5\n"); + + // Check_CRC_Done: Polling 0x3CE4 is 0x9432 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x9432); + + DBG("program 6\n"); + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + mdelay(300); + + DBG("program OK\n"); +} + +static s32 _DrvFwCtrlMsg26xxmUpdateFirmwareBySwId(void) +{ + s32 nRetVal = -1; + u32 nCrcInfoA = 0, nCrcInfoB = 0, nCrcMainA = 0, nCrcMainB = 0; + + DBG("*** %s() ***\n", __func__); + + DBG("_gIsUpdateInfoBlockFirst = %d, g_IsUpdateFirmware = 0x%x\n", _gIsUpdateInfoBlockFirst, g_IsUpdateFirmware); + + if (_gIsUpdateInfoBlockFirst == 1) + { + if ((g_IsUpdateFirmware & 0x10) == 0x10) + { + _DrvFwCtrlMsg26xxmEraseFirmwareOnEFlash(EMEM_INFO); + _DrvFwCtrlMsg26xxmProgramFirmwareOnEFlash(EMEM_INFO); + + nCrcInfoA = _DrvFwCtrlMsg26xxmRetrieveFrimwareCrcFromBinFile(g_FwData, EMEM_INFO); + nCrcInfoB = _DrvFwCtrlMsg26xxmCalculateFirmwareCrcFromEFlash(EMEM_INFO, 0); + + DBG("nCrcInfoA = 0x%x, nCrcInfoB = 0x%x\n", nCrcInfoA, nCrcInfoB); + + if (nCrcInfoA == nCrcInfoB) + { + _DrvFwCtrlMsg26xxmEraseFirmwareOnEFlash(EMEM_MAIN); + _DrvFwCtrlMsg26xxmProgramFirmwareOnEFlash(EMEM_MAIN); + + nCrcMainA = _DrvFwCtrlMsg26xxmRetrieveFrimwareCrcFromBinFile(g_FwData, EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg26xxmCalculateFirmwareCrcFromEFlash(EMEM_MAIN, 0); + + DBG("nCrcMainA = 0x%x, nCrcMainB = 0x%x\n", nCrcMainA, nCrcMainB); + + if (nCrcMainA == nCrcMainB) + { + nRetVal = _DrvFwCtrlMsg26xxmCompare8BytesForCrc(g_FwData); + + if (nRetVal == 0) + { + g_IsUpdateFirmware = 0x00; + } + else + { + g_IsUpdateFirmware = 0x11; + } + } + else + { + g_IsUpdateFirmware = 0x01; + } + } + else + { + g_IsUpdateFirmware = 0x11; + } + } + else if ((g_IsUpdateFirmware & 0x01) == 0x01) + { + _DrvFwCtrlMsg26xxmEraseFirmwareOnEFlash(EMEM_MAIN); + _DrvFwCtrlMsg26xxmProgramFirmwareOnEFlash(EMEM_MAIN); + + nCrcMainA = _DrvFwCtrlMsg26xxmRetrieveFrimwareCrcFromBinFile(g_FwData, EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg26xxmCalculateFirmwareCrcFromEFlash(EMEM_MAIN, 0); + + DBG("nCrcMainA=0x%x, nCrcMainB=0x%x\n", nCrcMainA, nCrcMainB); + + if (nCrcMainA == nCrcMainB) + { + nRetVal = _DrvFwCtrlMsg26xxmCompare8BytesForCrc(g_FwData); + + if (nRetVal == 0) + { + g_IsUpdateFirmware = 0x00; + } + else + { + g_IsUpdateFirmware = 0x11; + } + } + else + { + g_IsUpdateFirmware = 0x01; + } + } + } + else //_gIsUpdateInfoBlockFirst == 0 + { + if ((g_IsUpdateFirmware & 0x10) == 0x10) + { + _DrvFwCtrlMsg26xxmEraseFirmwareOnEFlash(EMEM_MAIN); + _DrvFwCtrlMsg26xxmProgramFirmwareOnEFlash(EMEM_MAIN); + + nCrcMainA = _DrvFwCtrlMsg26xxmRetrieveFrimwareCrcFromBinFile(g_FwData, EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg26xxmCalculateFirmwareCrcFromEFlash(EMEM_MAIN, 0); + + DBG("nCrcMainA=0x%x, nCrcMainB=0x%x\n", nCrcMainA, nCrcMainB); + + if (nCrcMainA == nCrcMainB) + { + _DrvFwCtrlMsg26xxmEraseFirmwareOnEFlash(EMEM_INFO); + _DrvFwCtrlMsg26xxmProgramFirmwareOnEFlash(EMEM_INFO); + + nCrcInfoA = _DrvFwCtrlMsg26xxmRetrieveFrimwareCrcFromBinFile(g_FwData, EMEM_INFO); + nCrcInfoB = _DrvFwCtrlMsg26xxmCalculateFirmwareCrcFromEFlash(EMEM_INFO, 0); + + DBG("nCrcInfoA=0x%x, nCrcInfoB=0x%x\n", nCrcInfoA, nCrcInfoB); + + if (nCrcInfoA == nCrcInfoB) + { + nRetVal = _DrvFwCtrlMsg26xxmCompare8BytesForCrc(g_FwData); + + if (nRetVal == 0) + { + g_IsUpdateFirmware = 0x00; + } + else + { + g_IsUpdateFirmware = 0x11; + } + } + else + { + g_IsUpdateFirmware = 0x01; + } + } + else + { + g_IsUpdateFirmware = 0x11; + } + } + else if ((g_IsUpdateFirmware & 0x01) == 0x01) + { + _DrvFwCtrlMsg26xxmEraseFirmwareOnEFlash(EMEM_INFO); + _DrvFwCtrlMsg26xxmProgramFirmwareOnEFlash(EMEM_INFO); + + nCrcInfoA = _DrvFwCtrlMsg26xxmRetrieveFrimwareCrcFromBinFile(g_FwData, EMEM_INFO); + nCrcInfoB = _DrvFwCtrlMsg26xxmCalculateFirmwareCrcFromEFlash(EMEM_INFO, 0); + + DBG("nCrcInfoA=0x%x, nCrcInfoB=0x%x\n", nCrcInfoA, nCrcInfoB); + + if (nCrcInfoA == nCrcInfoB) + { + nRetVal = _DrvFwCtrlMsg26xxmCompare8BytesForCrc(g_FwData); + + if (nRetVal == 0) + { + g_IsUpdateFirmware = 0x00; + } + else + { + g_IsUpdateFirmware = 0x11; + } + } + else + { + g_IsUpdateFirmware = 0x01; + } + } + } + + return nRetVal; +} + +void _DrvFwCtrlMsg26xxmCheckFirmwareUpdateBySwId(void) +{ + u32 nCrcMainA, nCrcInfoA, nCrcMainB, nCrcInfoB; + u32 i; + u16 nUpdateBinMajor = 0, nUpdateBinMinor = 0; + u16 nMajor = 0, nMinor = 0; + u8 *pVersion = NULL; + Msg26xxmSwId_e eSwId = MSG26XXM_SW_ID_UNDEFINED; + + DBG("*** %s() ***\n", __func__); + + DrvPlatformLyrDisableFingerTouchReport(); + + nCrcMainA = _DrvFwCtrlMsg26xxmCalculateFirmwareCrcFromEFlash(EMEM_MAIN, 1); + nCrcMainB = _DrvFwCtrlMsg26xxmRetrieveFirmwareCrcFromMainBlock(EMEM_MAIN); + + nCrcInfoA = _DrvFwCtrlMsg26xxmCalculateFirmwareCrcFromEFlash(EMEM_INFO, 1); + nCrcInfoB = _DrvFwCtrlMsg26xxmRetrieveFirmwareCrcFromMainBlock(EMEM_INFO); + + _gUpdateFirmwareBySwIdWorkQueue = create_singlethread_workqueue("update_firmware_by_sw_id"); + INIT_WORK(&_gUpdateFirmwareBySwIdWork, _DrvFwCtrlUpdateFirmwareBySwIdDoWork); + + DBG("nCrcMainA=0x%x, nCrcInfoA=0x%x, nCrcMainB=0x%x, nCrcInfoB=0x%x\n", nCrcMainA, nCrcInfoA, nCrcMainB, nCrcInfoB); + + if (nCrcMainA == nCrcMainB && nCrcInfoA == nCrcInfoB) // Case 1. Main Block:OK, Info Block:OK + { + eSwId = _DrvFwCtrlMsg26xxmGetSwId(EMEM_MAIN); + + DBG("eSwId=0x%x\n", eSwId); + + if (eSwId == MSG26XXM_SW_ID_XXXX) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + nUpdateBinMajor = msg26xxm_xxxx_update_bin[0][0x2B]<<8 | msg26xxm_xxxx_update_bin[0][0x2A]; + nUpdateBinMinor = msg26xxm_xxxx_update_bin[0][0x2D]<<8 | msg26xxm_xxxx_update_bin[0][0x2C]; +#else // By one dimensional array + nUpdateBinMajor = msg26xxm_xxxx_update_bin[0x002B]<<8 | msg26xxm_xxxx_update_bin[0x002A]; + nUpdateBinMinor = msg26xxm_xxxx_update_bin[0x002D]<<8 | msg26xxm_xxxx_update_bin[0x002C]; +#endif + } + else if (eSwId == MSG26XXM_SW_ID_YYYY) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + nUpdateBinMajor = msg26xxm_yyyy_update_bin[0][0x2B]<<8 | msg26xxm_yyyy_update_bin[0][0x2A]; + nUpdateBinMinor = msg26xxm_yyyy_update_bin[0][0x2D]<<8 | msg26xxm_yyyy_update_bin[0][0x2C]; +#else // By one dimensional array + nUpdateBinMajor = msg26xxm_yyyy_update_bin[0x002B]<<8 | msg26xxm_yyyy_update_bin[0x002A]; + nUpdateBinMinor = msg26xxm_yyyy_update_bin[0x002D]<<8 | msg26xxm_yyyy_update_bin[0x002C]; +#endif + } + else //eSwId == MSG26XXM_SW_ID_UNDEFINED + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG26XXM_SW_ID_UNDEFINED; + nUpdateBinMajor = 0; + nUpdateBinMinor = 0; + } + + DrvFwCtrlGetCustomerFirmwareVersion(&nMajor, &nMinor, &pVersion); + + DBG("eSwId=0x%x, nMajor=%d, nMinor=%d, nUpdateBinMajor=%d, nUpdateBinMinor=%d\n", eSwId, nMajor, nMinor, nUpdateBinMajor, nUpdateBinMinor); + + if (nUpdateBinMinor > nMinor) + { + if (eSwId == MSG26XXM_SW_ID_XXXX) + { + for (i = 0; i < MSG26XXM_FIRMWARE_WHOLE_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg26xxm_xxxx_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg26xxm_xxxx_update_bin[i*1024]), 1024); +#endif + } + } + else if (eSwId == MSG26XXM_SW_ID_YYYY) + { + for (i = 0; i < MSG26XXM_FIRMWARE_WHOLE_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg26xxm_yyyy_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg26xxm_yyyy_update_bin[i*1024]), 1024); +#endif + } + } + else + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG26XXM_SW_ID_UNDEFINED; + } + + if (eSwId < MSG26XXM_SW_ID_UNDEFINED && eSwId != 0x0000 && eSwId != 0xFFFF) + { + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after copying update firmware data to temp buffer + + _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; + _gIsUpdateInfoBlockFirst = 1; // Set 1 for indicating main block is complete + g_IsUpdateFirmware = 0x11; + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + return; + } + else + { + DBG("The sw id is invalid.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else + { + DBG("The update bin version is older than or equal to the current firmware version on e-flash.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else if (nCrcMainA == nCrcMainB && nCrcInfoA != nCrcInfoB) // Case 2. Main Block:OK, Info Block:FAIL + { + eSwId = _DrvFwCtrlMsg26xxmGetSwId(EMEM_MAIN); + + DBG("eSwId=0x%x\n", eSwId); + + if (eSwId == MSG26XXM_SW_ID_XXXX) + { + for (i = 0; i < MSG26XXM_FIRMWARE_WHOLE_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg26xxm_xxxx_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg26xxm_xxxx_update_bin[i*1024]), 1024); +#endif + } + } + else if (eSwId == MSG26XXM_SW_ID_YYYY) + { + for (i = 0; i < MSG26XXM_FIRMWARE_WHOLE_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg26xxm_yyyy_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg26xxm_yyyy_update_bin[i*1024]), 1024); +#endif + } + } + else + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG26XXM_SW_ID_UNDEFINED; + } + + if (eSwId < MSG26XXM_SW_ID_UNDEFINED && eSwId != 0x0000 && eSwId != 0xFFFF) + { + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after copying update firmware data to temp buffer + + _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; + _gIsUpdateInfoBlockFirst = 1; // Set 1 for indicating main block is complete + g_IsUpdateFirmware = 0x11; + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + return; + } + else + { + DBG("The sw id is invalid.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else // Case 3. Main Block:FAIL, Info Block:FAIL/OK + { + nCrcInfoA = _DrvFwCtrlMsg26xxmRetrieveInfoCrcFromInfoBlock(); + nCrcInfoB = _DrvFwCtrlMsg26xxmCalculateInfoCrcByDeviceDriver(); + + DBG("8K-4 : nCrcInfoA=0x%x, nCrcInfoB=0x%x\n", nCrcInfoA, nCrcInfoB); + + if (nCrcInfoA == nCrcInfoB) // Check if info block is actually OK. + { + eSwId = _DrvFwCtrlMsg26xxmGetSwId(EMEM_INFO); + + DBG("eSwId=0x%x\n", eSwId); + + if (eSwId == MSG26XXM_SW_ID_XXXX) + { + for (i = 0; i < MSG26XXM_FIRMWARE_WHOLE_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg26xxm_xxxx_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg26xxm_xxxx_update_bin[i*1024]), 1024); +#endif + } + } + else if (eSwId == MSG26XXM_SW_ID_YYYY) + { + for (i = 0; i < MSG26XXM_FIRMWARE_WHOLE_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg26xxm_yyyy_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg26xxm_yyyy_update_bin[i*1024]), 1024); +#endif + } + } + else + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG26XXM_SW_ID_UNDEFINED; + } + + if (eSwId < MSG26XXM_SW_ID_UNDEFINED && eSwId != 0x0000 && eSwId != 0xFFFF) + { + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after copying update firmware data to temp buffer + + _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; + _gIsUpdateInfoBlockFirst = 0; // Set 0 for indicating main block is broken + g_IsUpdateFirmware = 0x11; + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + return; + } + else + { + DBG("The sw id is invalid.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else + { + DBG("Info block is broken.\n"); + } + } + + DrvPlatformLyrTouchDeviceResetHw(); + + DrvPlatformLyrEnableFingerTouchReport(); +} + +//-------------------------End of SW ID for MSG26XXM----------------------------// + +//-------------------------Start of SW ID for MSG28XX----------------------------// + +static u32 _DrvFwCtrlMsg28xxRetrieveFirmwareCrcFromEFlash(EmemType_e eEmemType) +{ + u32 nRetVal = 0; + u16 nReadAddr = 0; + u8 szTmpData[4] = {0}; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + if (eEmemType == EMEM_MAIN) // Read main block CRC(128KB-4) from main block + { + _DrvFwCtrlMsg28xxReadEFlashStart(0x7FFF, EMEM_MAIN); + nReadAddr = 0x7FFF; + } + else if (eEmemType == EMEM_INFO) // Read info block CRC(2KB-MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE-4) from info block + { + _DrvFwCtrlMsg28xxReadEFlashStart(0x81FF, EMEM_INFO); + nReadAddr = 0x81FF; + } + + _DrvFwCtrlMsg28xxReadEFlashDoRead(nReadAddr, &szTmpData[0]); + + DBG("szTmpData[0] = 0x%x\n", szTmpData[0]); // add for debug + DBG("szTmpData[1] = 0x%x\n", szTmpData[1]); // add for debug + DBG("szTmpData[2] = 0x%x\n", szTmpData[2]); // add for debug + DBG("szTmpData[3] = 0x%x\n", szTmpData[3]); // add for debug + + _DrvFwCtrlMsg28xxReadEFlashEnd(); + + nRetVal = (szTmpData[3] << 24); + nRetVal |= (szTmpData[2] << 16); + nRetVal |= (szTmpData[1] << 8); + nRetVal |= szTmpData[0]; + + DBG("CRC = 0x%x\n", nRetVal); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static u32 _DrvFwCtrlMsg28xxRetrieveFrimwareCrcFromBinFile(u8 szTmpBuf[][1024], EmemType_e eEmemType) +{ + u32 nRetVal = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + if (szTmpBuf != NULL) + { + if (eEmemType == EMEM_MAIN) + { + nRetVal = szTmpBuf[127][1023]; + nRetVal = (nRetVal << 8) | szTmpBuf[127][1022]; + nRetVal = (nRetVal << 8) | szTmpBuf[127][1021]; + nRetVal = (nRetVal << 8) | szTmpBuf[127][1020]; + } + else if (eEmemType == EMEM_INFO) + { + nRetVal = szTmpBuf[129][1023]; + nRetVal = (nRetVal << 8) | szTmpBuf[129][1022]; + nRetVal = (nRetVal << 8) | szTmpBuf[129][1021]; + nRetVal = (nRetVal << 8) | szTmpBuf[129][1020]; + } + } + + return nRetVal; +} + +/* +static s32 _DrvFwCtrlMsg28xxUpdateFirmwareBySwId(void) +{ + s32 nRetVal = -1; + u32 nCrcInfoA = 0, nCrcInfoB = 0, nCrcMainA = 0, nCrcMainB = 0; + + DBG("*** %s() ***\n", __func__); + + DBG("_gIsUpdateInfoBlockFirst = %d, g_IsUpdateFirmware = 0x%x\n", _gIsUpdateInfoBlockFirst, g_IsUpdateFirmware); + + if (_gIsUpdateInfoBlockFirst == 1) + { + if ((g_IsUpdateFirmware & 0x10) == 0x10) + { + _DrvFwCtrlMsg28xxEraseEmem(EMEM_INFO); + _DrvFwCtrlMsg28xxProgramEmem(EMEM_INFO); + + nCrcInfoA = _DrvFwCtrlMsg28xxRetrieveFrimwareCrcFromBinFile(g_FwData, EMEM_INFO); + nCrcInfoB = _DrvFwCtrlMsg28xxGetFirmwareCrcByHardware(EMEM_INFO); + + DBG("nCrcInfoA = 0x%x, nCrcInfoB = 0x%x\n", nCrcInfoA, nCrcInfoB); + + if (nCrcInfoA == nCrcInfoB) + { + _DrvFwCtrlMsg28xxEraseEmem(EMEM_MAIN); + _DrvFwCtrlMsg28xxProgramEmem(EMEM_MAIN); + + nCrcMainA = _DrvFwCtrlMsg28xxRetrieveFrimwareCrcFromBinFile(g_FwData, EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg28xxGetFirmwareCrcByHardware(EMEM_MAIN); + + DBG("nCrcMainA = 0x%x, nCrcMainB = 0x%x\n", nCrcMainA, nCrcMainB); + + if (nCrcMainA == nCrcMainB) + { + g_IsUpdateFirmware = 0x00; + nRetVal = 0; + } + else + { + g_IsUpdateFirmware = 0x01; + } + } + else + { + g_IsUpdateFirmware = 0x11; + } + } + else if ((g_IsUpdateFirmware & 0x01) == 0x01) + { + _DrvFwCtrlMsg28xxEraseEmem(EMEM_MAIN); + _DrvFwCtrlMsg28xxProgramEmem(EMEM_MAIN); + + nCrcMainA = _DrvFwCtrlMsg28xxRetrieveFrimwareCrcFromBinFile(g_FwData, EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg28xxGetFirmwareCrcByHardware(EMEM_MAIN); + + DBG("nCrcMainA=0x%x, nCrcMainB=0x%x\n", nCrcMainA, nCrcMainB); + + if (nCrcMainA == nCrcMainB) + { + g_IsUpdateFirmware = 0x00; + nRetVal = 0; + } + else + { + g_IsUpdateFirmware = 0x01; + } + } + } + else //_gIsUpdateInfoBlockFirst == 0 + { + if ((g_IsUpdateFirmware & 0x10) == 0x10) + { + _DrvFwCtrlMsg28xxEraseEmem(EMEM_MAIN); + _DrvFwCtrlMsg28xxProgramEmem(EMEM_MAIN); + + nCrcMainA = _DrvFwCtrlMsg28xxRetrieveFrimwareCrcFromBinFile(g_FwData, EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg28xxGetFirmwareCrcByHardware(EMEM_MAIN); + + DBG("nCrcMainA=0x%x, nCrcMainB=0x%x\n", nCrcMainA, nCrcMainB); + + if (nCrcMainA == nCrcMainB) + { + _DrvFwCtrlMsg28xxEraseEmem(EMEM_INFO); + _DrvFwCtrlMsg28xxProgramEmem(EMEM_INFO); + + nCrcInfoA = _DrvFwCtrlMsg28xxRetrieveFrimwareCrcFromBinFile(g_FwData, EMEM_INFO); + nCrcInfoB = _DrvFwCtrlMsg28xxGetFirmwareCrcByHardware(EMEM_INFO); + + DBG("nCrcInfoA=0x%x, nCrcInfoB=0x%x\n", nCrcInfoA, nCrcInfoB); + + if (nCrcInfoA == nCrcInfoB) + { + g_IsUpdateFirmware = 0x00; + nRetVal = 0; + } + else + { + g_IsUpdateFirmware = 0x01; + } + } + else + { + g_IsUpdateFirmware = 0x11; + } + } + else if ((g_IsUpdateFirmware & 0x01) == 0x01) + { + _DrvFwCtrlMsg28xxEraseEmem(EMEM_INFO); + _DrvFwCtrlMsg28xxProgramEmem(EMEM_INFO); + + nCrcInfoA = _DrvFwCtrlMsg28xxRetrieveFrimwareCrcFromBinFile(g_FwData, EMEM_INFO); + nCrcInfoB = _DrvFwCtrlMsg28xxGetFirmwareCrcByHardware(EMEM_INFO); + + DBG("nCrcInfoA=0x%x, nCrcInfoB=0x%x\n", nCrcInfoA, nCrcInfoB); + + if (nCrcInfoA == nCrcInfoB) + { + g_IsUpdateFirmware = 0x00; + nRetVal = 0; + } + else + { + g_IsUpdateFirmware = 0x01; + } + } + } + + return nRetVal; +} +*/ + +void _DrvFwCtrlMsg28xxCheckFirmwareUpdateBySwId(void) +{ + u32 nCrcMainA, nCrcMainB; + u32 i; + u16 nUpdateBinMajor = 0, nUpdateBinMinor = 0; + u16 nMajor = 0, nMinor = 0; + u8 nIsCompareVersion = 0; + u8 *pVersion = NULL; + Msg28xxSwId_e eMainSwId = MSG28XX_SW_ID_UNDEFINED, eInfoSwId = MSG28XX_SW_ID_UNDEFINED, eSwId = MSG28XX_SW_ID_UNDEFINED; + + DBG("*** %s() ***\n", __func__); + + DrvPlatformLyrDisableFingerTouchReport(); + + nCrcMainA = _DrvFwCtrlMsg28xxGetFirmwareCrcByHardware(EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg28xxRetrieveFirmwareCrcFromEFlash(EMEM_MAIN); + + DBG("nCrcMainA=0x%x, nCrcMainB=0x%x\n", nCrcMainA, nCrcMainB); + +#ifdef CONFIG_ENABLE_CODE_FOR_DEBUG // TODO : add for debug + { + if (nCrcMainA != nCrcMainB) + { + for (i = 0; i < 5; i ++) + { + nCrcMainA = _DrvFwCtrlMsg28xxGetFirmwareCrcByHardware(EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg28xxRetrieveFirmwareCrcFromEFlash(EMEM_MAIN); + + DBG("*** Retry[%d] : nCrcMainA=0x%x, nCrcMainB=0x%x ***\n", i, nCrcMainA, nCrcMainB); + + if (nCrcMainA == nCrcMainB) + { + break; + } + + mdelay(50); + } + } + } +#endif //CONFIG_ENABLE_CODE_FOR_DEBUG + + _gUpdateFirmwareBySwIdWorkQueue = create_singlethread_workqueue("update_firmware_by_sw_id"); + INIT_WORK(&_gUpdateFirmwareBySwIdWork, _DrvFwCtrlUpdateFirmwareBySwIdDoWork); + + if (nCrcMainA == nCrcMainB) + { + eMainSwId = _DrvFwCtrlMsg28xxGetSwId(EMEM_MAIN); + eInfoSwId = _DrvFwCtrlMsg28xxGetSwId(EMEM_INFO); + + DBG("eMainSwId=0x%x, eInfoSwId=0x%x\n", eMainSwId, eInfoSwId); + + if (eMainSwId == eInfoSwId) + { + eSwId = eMainSwId; + nIsCompareVersion = 1; + + DrvFwCtrlGetCustomerFirmwareVersionByDbBus(EMEM_MAIN, &nMajor, &nMinor, &pVersion); + } + else + { + eSwId = eInfoSwId; + nIsCompareVersion = 0; + } + + if (eSwId == MSG28XX_SW_ID_XXXX) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + nUpdateBinMajor = msg28xx_xxxx_update_bin[127][1013]<<8 | msg28xx_xxxx_update_bin[127][1012]; + nUpdateBinMinor = msg28xx_xxxx_update_bin[127][1015]<<8 | msg28xx_xxxx_update_bin[127][1014]; +#else // By one dimensional array + nUpdateBinMajor = msg28xx_xxxx_update_bin[0x1FFF5]<<8 | msg28xx_xxxx_update_bin[0x1FFF4]; + nUpdateBinMinor = msg28xx_xxxx_update_bin[0x1FFF7]<<8 | msg28xx_xxxx_update_bin[0x1FFF6]; +#endif + } + else if (eSwId == MSG28XX_SW_ID_YYYY) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + nUpdateBinMajor = msg28xx_yyyy_update_bin[127][1013]<<8 | msg28xx_yyyy_update_bin[127][1012]; + nUpdateBinMinor = msg28xx_yyyy_update_bin[127][1015]<<8 | msg28xx_yyyy_update_bin[127][1014]; +#else // By one dimensional array + nUpdateBinMajor = msg28xx_yyyy_update_bin[0x1FFF5]<<8 | msg28xx_yyyy_update_bin[0x1FFF4]; + nUpdateBinMinor = msg28xx_yyyy_update_bin[0x1FFF7]<<8 | msg28xx_yyyy_update_bin[0x1FFF6]; +#endif + } + else //eSwId == MSG28XX_SW_ID_UNDEFINED + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG28XX_SW_ID_UNDEFINED; + nUpdateBinMajor = 0; + nUpdateBinMinor = 0; + } + + + DBG("eSwId=0x%x, nMajor=%d, nMinor=%d, nUpdateBinMajor=%d, nUpdateBinMinor=%d\n", eSwId, nMajor, nMinor, nUpdateBinMajor, nUpdateBinMinor); + + if ((nUpdateBinMinor > nMinor && nIsCompareVersion == 1) || (nIsCompareVersion == 0)) + { + if (eSwId == MSG28XX_SW_ID_XXXX) + { + for (i = 0; i < MSG28XX_FIRMWARE_WHOLE_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg28xx_xxxx_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg28xx_xxxx_update_bin[i*1024]), 1024); +#endif + } + } + else if (eSwId == MSG28XX_SW_ID_YYYY) + { + for (i = 0; i < MSG28XX_FIRMWARE_WHOLE_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg28xx_yyyy_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg28xx_yyyy_update_bin[i*1024]), 1024); +#endif + } + } + else + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG28XX_SW_ID_UNDEFINED; + } + + if (eSwId < MSG28XX_SW_ID_UNDEFINED && eSwId != 0x0000 && eSwId != 0xFFFF) + { + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after copying update firmware data to temp buffer + + _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; + _gIsUpdateInfoBlockFirst = 1; // Set 1 for indicating main block is complete + g_IsUpdateFirmware = 0x11; + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + return; + } + else + { + DBG("The sw id is invalid.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else + { + DBG("The update bin version is older than or equal to the current firmware version on e-flash.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else + { + eSwId = _DrvFwCtrlMsg28xxGetSwId(EMEM_INFO); + + DBG("eSwId=0x%x\n", eSwId); + + if (eSwId == MSG28XX_SW_ID_XXXX) + { + for (i = 0; i < MSG28XX_FIRMWARE_WHOLE_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg28xx_xxxx_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg28xx_xxxx_update_bin[i*1024]), 1024); +#endif + } + } + else if (eSwId == MSG28XX_SW_ID_YYYY) + { + for (i = 0; i < MSG28XX_FIRMWARE_WHOLE_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg28xx_yyyy_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg28xx_yyyy_update_bin[i*1024]), 1024); +#endif + } + } + else + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG28XX_SW_ID_UNDEFINED; + } + + if (eSwId < MSG28XX_SW_ID_UNDEFINED && eSwId != 0x0000 && eSwId != 0xFFFF) + { + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after copying update firmware data to temp buffer + + _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; + _gIsUpdateInfoBlockFirst = 0; // Set 0 for indicating main block is broken + g_IsUpdateFirmware = 0x11; + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + return; + } + else + { + DBG("The sw id is invalid.\n"); + DBG("Go to normal boot up process.\n"); + } + } + + DrvPlatformLyrTouchDeviceResetHw(); + + DrvPlatformLyrEnableFingerTouchReport(); +} + +//-------------------------End of SW ID for MSG28XX----------------------------// + +static void _DrvFwCtrlUpdateFirmwareBySwIdDoWork(struct work_struct *pWork) +{ + s32 nRetVal = 0; + + DBG("*** %s() _gUpdateRetryCount = %d ***\n", __func__, _gUpdateRetryCount); + + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + nRetVal = _DrvFwCtrlMsg26xxmUpdateFirmwareBySwId(); + } + else if (g_ChipType == CHIP_TYPE_MSG28XX) + { + nRetVal = _DrvFwCtrlMsg28xxUpdateFirmware(g_FwData, EMEM_MAIN); + } + else + { + DBG("This chip type (0x%x) does not support update firmware by sw id\n", g_ChipType); + + DrvPlatformLyrTouchDeviceResetHw(); + + DrvPlatformLyrEnableFingerTouchReport(); + + nRetVal = -1; + return; + } + + DBG("*** update firmware by sw id result = %d ***\n", nRetVal); + + if (nRetVal == 0) + { + DBG("update firmware by sw id success\n"); + + _gIsUpdateInfoBlockFirst = 0; + g_IsUpdateFirmware = 0x00; + + DrvPlatformLyrTouchDeviceResetHw(); + + DrvPlatformLyrEnableFingerTouchReport(); + } + else //nRetVal == -1 + { + _gUpdateRetryCount --; + if (_gUpdateRetryCount > 0) + { + DBG("_gUpdateRetryCount = %d\n", _gUpdateRetryCount); + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + } + else + { + DBG("update firmware by sw id failed\n"); + + _gIsUpdateInfoBlockFirst = 0; + g_IsUpdateFirmware = 0x00; + + DrvPlatformLyrTouchDeviceResetHw(); + + DrvPlatformLyrEnableFingerTouchReport(); + } + } +} + +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +void DrvFwCtrlVariableInitialize(void) +{ + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + FIRMWARE_MODE_UNKNOWN_MODE = MSG26XXM_FIRMWARE_MODE_UNKNOWN_MODE; + FIRMWARE_MODE_DEMO_MODE = MSG26XXM_FIRMWARE_MODE_DEMO_MODE; + FIRMWARE_MODE_DEBUG_MODE = MSG26XXM_FIRMWARE_MODE_DEBUG_MODE; +// FIRMWARE_MODE_RAW_DATA_MODE = MSG26XXM_FIRMWARE_MODE_RAW_DATA_MODE; + + g_FirmwareMode = FIRMWARE_MODE_DEMO_MODE; + } + else if (g_ChipType == CHIP_TYPE_MSG28XX) + { + FIRMWARE_MODE_UNKNOWN_MODE = MSG28XX_FIRMWARE_MODE_UNKNOWN_MODE; + FIRMWARE_MODE_DEMO_MODE = MSG28XX_FIRMWARE_MODE_DEMO_MODE; + FIRMWARE_MODE_DEBUG_MODE = MSG28XX_FIRMWARE_MODE_DEBUG_MODE; +// FIRMWARE_MODE_RAW_DATA_MODE = MSG28XX_FIRMWARE_MODE_RAW_DATA_MODE; + + g_FirmwareMode = FIRMWARE_MODE_DEMO_MODE; + } +} + +void DrvFwCtrlOptimizeCurrentConsumption(void) +{ + u32 i; + u8 szDbBusTxData[35] = {0}; + + DBG("g_ChipType = 0x%x\n", g_ChipType); + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + if (g_GestureWakeupFlag == 1) + { + return; + } +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + + if (g_ChipType == CHIP_TYPE_MSG28XX) + { + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + + // Enable burst mode + RegSetLByteValue(0x1608, 0x21); + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x15; + szDbBusTxData[2] = 0x20; //bank:0x15, addr:h0010 + + for (i = 0; i < 8; i ++) + { + szDbBusTxData[i+3] = 0xFF; + } + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+8); // Write 0xFF for reg 0x1510~0x1513 + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x15; + szDbBusTxData[2] = 0x28; //bank:0x15, addr:h0014 + + for (i = 0; i < 16; i ++) + { + szDbBusTxData[i+3] = 0x00; + } + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+16); // Write 0x00 for reg 0x1514~0x151B + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x21; + szDbBusTxData[2] = 0x40; //bank:0x21, addr:h0020 + + for (i = 0; i < 8; i ++) + { + szDbBusTxData[i+3] = 0xFF; + } + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+8); // Write 0xFF for reg 0x2120~0x2123 + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x21; + szDbBusTxData[2] = 0x20; //bank:0x21, addr:h0010 + + for (i = 0; i < 32; i ++) + { + szDbBusTxData[i+3] = 0xFF; + } + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+32); // Write 0xFF for reg 0x2110~0x211F + + // Clear burst mode + RegSetLByteValue(0x1608, 0x20); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + } +} + +u8 DrvFwCtrlGetChipType(void) +{ + s32 rc =0; + u8 nChipType = 0; + + DBG("*** %s() ***\n", __func__); + + // Erase TP Flash first + rc = DbBusEnterSerialDebugMode(); + if (rc < 0) + { + DBG("*** DbBusEnterSerialDebugMode() failed, rc = %d ***\n", rc); + return nChipType; + } + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + + // Stop MCU + RegSetLByteValue(0x0FE6, 0x01); + + // Disable watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + nChipType = RegGet16BitValue(0x1ECC) & 0xFF; + + if (nChipType != CHIP_TYPE_MSG21XX && // (0x01) + nChipType != CHIP_TYPE_MSG21XXA && // (0x02) + nChipType != CHIP_TYPE_MSG26XXM && // (0x03) + nChipType != CHIP_TYPE_MSG22XX && // (0x7A) + nChipType != CHIP_TYPE_MSG28XX) // (0x85) + { + nChipType = 0; + } + + DBG("*** Chip Type = 0x%x ***\n", nChipType); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nChipType; +} + +void DrvFwCtrlGetCustomerFirmwareVersionByDbBus(EmemType_e eEmemType, u16 *pMajor, u16 *pMinor, u8 **ppVersion) // support MSG28xx only +{ + u16 nReadAddr = 0; + u8 szTmpData[4] = {0}; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + if (g_ChipType == CHIP_TYPE_MSG28XX) + { + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + if (eEmemType == EMEM_MAIN) // Read SW ID from main block + { + _DrvFwCtrlMsg28xxReadEFlashStart(0x7FFD, EMEM_MAIN); + nReadAddr = 0x7FFD; + } + else if (eEmemType == EMEM_INFO) // Read SW ID from info block + { + _DrvFwCtrlMsg28xxReadEFlashStart(0x81FB, EMEM_INFO); + nReadAddr = 0x81FB; + } + + _DrvFwCtrlMsg28xxReadEFlashDoRead(nReadAddr, &szTmpData[0]); + + _DrvFwCtrlMsg28xxReadEFlashEnd(); + + /* + Ex. Major in Main Block : + Major low byte at address 0x7FFD + + Major in Info Block : + Major low byte at address 0x81FB + */ + + *pMajor = (szTmpData[1] << 8); + *pMajor |= szTmpData[0]; + *pMinor = (szTmpData[3] << 8); + *pMinor |= szTmpData[2]; + + DBG("*** major = %d ***\n", *pMajor); + DBG("*** minor = %d ***\n", *pMinor); + + if (*ppVersion == NULL) + { + *ppVersion = kzalloc(sizeof(u8)*6, GFP_KERNEL); + } + + sprintf(*ppVersion, "%03d%03d", *pMajor, *pMinor); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + } +} + +void DrvFwCtrlGetCustomerFirmwareVersion(u16 *pMajor, u16 *pMinor, u8 **ppVersion) +{ + u8 szDbBusTxData[3] = {0}; + u8 szDbBusRxData[4] = {0}; + + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + szDbBusTxData[0] = 0x53; + szDbBusTxData[1] = 0x00; + szDbBusTxData[2] = 0x2A; + + mutex_lock(&g_Mutex); + + DrvPlatformLyrTouchDeviceResetHw(); + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 4); + + mutex_unlock(&g_Mutex); + } + else if (g_ChipType == CHIP_TYPE_MSG28XX) + { + szDbBusTxData[0] = 0x03; + + mutex_lock(&g_Mutex); + + DrvPlatformLyrTouchDeviceResetHw(); + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 1); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 4); + + mutex_unlock(&g_Mutex); + } + + DBG("szDbBusRxData[0] = 0x%x\n", szDbBusRxData[0]); // add for debug + DBG("szDbBusRxData[1] = 0x%x\n", szDbBusRxData[1]); // add for debug + DBG("szDbBusRxData[2] = 0x%x\n", szDbBusRxData[2]); // add for debug + DBG("szDbBusRxData[3] = 0x%x\n", szDbBusRxData[3]); // add for debug + + *pMajor = (szDbBusRxData[1]<<8) + szDbBusRxData[0]; + *pMinor = (szDbBusRxData[3]<<8) + szDbBusRxData[2]; + + DBG("*** major = %d ***\n", *pMajor); + DBG("*** minor = %d ***\n", *pMinor); + + if (*ppVersion == NULL) + { + *ppVersion = kzalloc(sizeof(u8)*6, GFP_KERNEL); + } + + sprintf(*ppVersion, "%03d%03d", *pMajor, *pMinor); +} + +void DrvFwCtrlGetPlatformFirmwareVersion(u8 **ppVersion) +{ + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + u32 i; + u16 nRegData = 0; + u8 szDbBusTxData[5] = {0}; + u8 szDbBusRxData[16] = {0}; + + mutex_lock(&g_Mutex); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // cmd + RegSet16BitValue(0x3CE4, 0xA4AB); //bank:reg_PIU_MISC_0, addr:h0072 + + // TP SW reset + RegSet16BitValue(0x1E04, 0x7d60); //bank:chip, addr:h0002 + RegSet16BitValue(0x1E04, 0x829F); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + + mdelay(100); + + // Polling 0x3CE4 is 0x5B58 + do + { + nRegData = RegGet16BitValue(0x3CE4); //bank:reg_PIU_MISC_0, addr:h0072 + } while (nRegData != 0x5B58); + + // Read platform firmware version from info block + szDbBusTxData[0] = 0x72; + szDbBusTxData[3] = 0x00; + szDbBusTxData[4] = 0x08; + + for (i = 0; i < 2; i ++) + { + szDbBusTxData[1] = 0x80; + szDbBusTxData[2] = 0x10 + ((i*8)&0x00ff); + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 5); + + mdelay(50); + + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[i*8], 8); + } + + if (*ppVersion == NULL) + { + *ppVersion = kzalloc(sizeof(u8)*16, GFP_KERNEL); + } + + sprintf(*ppVersion, "%.16s", szDbBusRxData); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + mdelay(100); + + mutex_unlock(&g_Mutex); + } + else if (g_ChipType == CHIP_TYPE_MSG28XX) + { + u8 szDbBusTxData[1] = {0}; + u8 szDbBusRxData[10] = {0}; + + szDbBusTxData[0] = 0x04; + + mutex_lock(&g_Mutex); + + DrvPlatformLyrTouchDeviceResetHw(); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 1); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 10); + + mutex_unlock(&g_Mutex); + + DBG("szDbBusRxData[0] = 0x%x , %c \n", szDbBusRxData[0], szDbBusRxData[0]); // add for debug + DBG("szDbBusRxData[1] = 0x%x , %c \n", szDbBusRxData[1], szDbBusRxData[1]); // add for debug + DBG("szDbBusRxData[2] = 0x%x , %c \n", szDbBusRxData[2], szDbBusRxData[2]); // add for debug + DBG("szDbBusRxData[3] = 0x%x , %c \n", szDbBusRxData[3], szDbBusRxData[3]); // add for debug + DBG("szDbBusRxData[4] = 0x%x , %c \n", szDbBusRxData[4], szDbBusRxData[4]); // add for debug + DBG("szDbBusRxData[5] = 0x%x , %c \n", szDbBusRxData[5], szDbBusRxData[5]); // add for debug + DBG("szDbBusRxData[6] = 0x%x , %c \n", szDbBusRxData[6], szDbBusRxData[6]); // add for debug + DBG("szDbBusRxData[7] = 0x%x , %c \n", szDbBusRxData[7], szDbBusRxData[7]); // add for debug + DBG("szDbBusRxData[8] = 0x%x , %c \n", szDbBusRxData[8], szDbBusRxData[8]); // add for debug + DBG("szDbBusRxData[9] = 0x%x , %c \n", szDbBusRxData[9], szDbBusRxData[9]); // add for debug + + if (*ppVersion == NULL) + { + *ppVersion = kzalloc(sizeof(u8)*10, GFP_KERNEL); + } + + sprintf(*ppVersion, "%.10s", szDbBusRxData); + } + + DBG("*** platform firmware version = %s ***\n", *ppVersion); +} + +s32 DrvFwCtrlUpdateFirmware(u8 szFwData[][1024], EmemType_e eEmemType) +{ + DBG("*** %s() ***\n", __func__); + + return _DrvFwCtrlUpdateFirmwareCash(szFwData, eEmemType); +} + +s32 DrvFwCtrlUpdateFirmwareBySdCard(const char *pFilePath) +{ + s32 nRetVal = -1; + + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG26XXM || g_ChipType == CHIP_TYPE_MSG28XX) + { + nRetVal = _DrvFwCtrlUpdateFirmwareBySdCard(pFilePath); + } + else + { + DBG("This chip type (0x%x) does not support update firmware by sd card\n", g_ChipType); + } + + return nRetVal; +} + +//------------------------------------------------------------------------------// + +u16 DrvFwCtrlGetFirmwareMode(void) // use for MSG26XXM only +{ + u16 nMode = 0; + + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + nMode = RegGet16BitValue(0x3CF4); //bank:reg_PIU_MISC0, addr:h007a + + DBG("firmware mode = 0x%x\n", nMode); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + mdelay(100); + } + + return nMode; +} + +u16 DrvFwCtrlChangeFirmwareMode(u16 nMode) +{ + DBG("*** %s() *** nMode = 0x%x\n", __func__, nMode); + + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + + RegSet16BitValue(0x3CF4, nMode); //bank:reg_PIU_MISC0, addr:h007a + nMode = RegGet16BitValue(0x3CF4); + + DBG("firmware mode = 0x%x\n", nMode); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + } + else if (g_ChipType == CHIP_TYPE_MSG28XX) + { + u8 szDbBusTxData[2] = {0}; + u32 i = 0; + s32 rc; + + _gIsDisableFinagerTouch = 1; // Disable finger touch ISR handling temporarily for device driver can send change firmware mode i2c command to firmware. + + szDbBusTxData[0] = 0x02; + szDbBusTxData[1] = (u8)nMode; + + mdelay(20); + + mutex_lock(&g_Mutex); + DBG("*** %s() *** mutex_lock(&g_Mutex)\n", __func__); // add for debug + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 2); + if (rc > 0) + { + DBG("Change firmware mode success\n"); + break; + } + + mdelay(10); + i++; + } + if (i == 5) + { + DBG("Change firmware mode failed, rc = %d\n", rc); + } + + DBG("*** %s() *** mutex_unlock(&g_Mutex)\n", __func__); // add for debug + mutex_unlock(&g_Mutex); + + _gIsDisableFinagerTouch = 0; + } + + return nMode; +} + +void DrvFwCtrlGetFirmwareInfo(FirmwareInfo_t *pInfo) +{ + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + u8 szDbBusTxData[3] = {0}; + u8 szDbBusRxData[8] = {0}; + u32 i = 0; + s32 rc; + + _gIsDisableFinagerTouch = 1; // Disable finger touch ISR handling temporarily for device driver can send get firmware info i2c command to firmware. + + szDbBusTxData[0] = 0x53; + szDbBusTxData[1] = 0x00; + szDbBusTxData[2] = 0x48; + + mutex_lock(&g_Mutex); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + if (rc > 0) + { + DBG("Get firmware info IicWriteData() success\n"); + } + mdelay(20); + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 8); + if (rc > 0) + { + DBG("Get firmware info IicReadData() success\n"); + break; + } + + mdelay(10); + i++; + } + if (i == 5) + { + DBG("Get firmware info failed, rc = %d\n", rc); + } + + mutex_unlock(&g_Mutex); + + if (szDbBusRxData[0] == 8 && szDbBusRxData[1] == 0 && szDbBusRxData[2] == 9 && szDbBusRxData[3] == 0) + { + DBG("*** Debug Mode Packet Header is 0xA5 ***\n"); +/* + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); +*/ + pInfo->nLogModePacketHeader = 0xA5; + pInfo->nMy = 0; + pInfo->nMx = 0; +// *pDriveLineNumber = AnaGetMutualSubframeNum(); +// *pSenseLineNumber = AnaGetMutualChannelNum(); + +/* + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + mdelay(100); +*/ + } + else if (szDbBusRxData[0] == 0xAB) + { + DBG("*** Debug Mode Packet Header is 0xAB ***\n"); + + pInfo->nLogModePacketHeader = szDbBusRxData[0]; + pInfo->nMy = szDbBusRxData[1]; + pInfo->nMx = szDbBusRxData[2]; +// pInfo->nSd = szDbBusRxData[1]; +// pInfo->nSs = szDbBusRxData[2]; + } + else if (szDbBusRxData[0] == 0xA7 && szDbBusRxData[3] == PACKET_TYPE_TOOTH_PATTERN) + { + DBG("*** Debug Packet Header is 0xA7 ***\n"); + + pInfo->nLogModePacketHeader = szDbBusRxData[0]; + pInfo->nType = szDbBusRxData[3]; + pInfo->nMy = szDbBusRxData[4]; + pInfo->nMx = szDbBusRxData[5]; + pInfo->nSd = szDbBusRxData[6]; + pInfo->nSs = szDbBusRxData[7]; + } + + if (pInfo->nLogModePacketHeader == 0xA5) + { + if (pInfo->nMy != 0 && pInfo->nMx != 0) + { + // for parsing debug mode packet 0xA5 + pInfo->nLogModePacketLength = 1+1+1+1+10*3+pInfo->nMx*pInfo->nMy*2+1; + } + else + { + DBG("Failed to retrieve channel number or subframe number for debug mode packet 0xA5.\n"); + } + } + else if (pInfo->nLogModePacketHeader == 0xAB) + { + if (pInfo->nMy != 0 && pInfo->nMx != 0) + { + // for parsing debug mode packet 0xAB + pInfo->nLogModePacketLength = 1+1+1+1+10*3+pInfo->nMy*pInfo->nMx*2+pInfo->nMy*2+pInfo->nMx*2+2*2+8*2+1; + } + else + { + DBG("Failed to retrieve channel number or subframe number for debug mode packet 0xAB.\n"); + } + } + else if (pInfo->nLogModePacketHeader == 0xA7 && pInfo->nType == PACKET_TYPE_TOOTH_PATTERN) + { + if (pInfo->nMy != 0 && pInfo->nMx != 0 && pInfo->nSd != 0 && pInfo->nSs != 0) + { + // for parsing debug mode packet 0xA7 + pInfo->nLogModePacketLength = 1+1+1+1+1+10*3+pInfo->nMy*pInfo->nMx*2+pInfo->nSd*2+pInfo->nSs*2+10*2+1; + } + else + { + DBG("Failed to retrieve channel number or subframe number for debug mode packet 0xA7.\n"); + } + } + else + { + DBG("Undefined debug mode packet header = 0x%x\n", pInfo->nLogModePacketHeader); + } + + DBG("*** debug mode packet header = 0x%x ***\n", pInfo->nLogModePacketHeader); + DBG("*** debug mode packet length = %d ***\n", pInfo->nLogModePacketLength); + DBG("*** Type = 0x%x ***\n", pInfo->nType); + DBG("*** My = %d ***\n", pInfo->nMy); + DBG("*** Mx = %d ***\n", pInfo->nMx); + DBG("*** Sd = %d ***\n", pInfo->nSd); + DBG("*** Ss = %d ***\n", pInfo->nSs); + + _gIsDisableFinagerTouch = 0; + } + else if (g_ChipType == CHIP_TYPE_MSG28XX) + { + u8 szDbBusTxData[1] = {0}; + u8 szDbBusRxData[10] = {0}; + u32 i = 0; + s32 rc; + + _gIsDisableFinagerTouch = 1; // Disable finger touch ISR handling temporarily for device driver can send get firmware info i2c command to firmware. + + szDbBusTxData[0] = 0x01; + + mutex_lock(&g_Mutex); + DBG("*** %s() *** mutex_lock(&g_Mutex)\n", __func__); // add for debug + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 1); + if (rc > 0) + { + DBG("Get firmware info IicWriteData() success\n"); + } + mdelay(20); + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 10); + if (rc > 0) + { + DBG("Get firmware info IicReadData() success\n"); + + if (szDbBusRxData[1] == FIRMWARE_MODE_DEMO_MODE || szDbBusRxData[1] == FIRMWARE_MODE_DEBUG_MODE) + { + break; + } + else + { + i = 0; + } + } + + mdelay(10); + i++; + } + if (i == 5) + { + DBG("Get firmware info failed, rc = %d\n", rc); + } + + DBG("*** %s() *** mutex_unlock(&g_Mutex)\n", __func__); // add for debug + mutex_unlock(&g_Mutex); + + // Add protection for incorrect firmware info check + if ((szDbBusRxData[1] == FIRMWARE_MODE_DEBUG_MODE && szDbBusRxData[2] == 0xA7 && szDbBusRxData[5] == PACKET_TYPE_TOOTH_PATTERN) || (szDbBusRxData[1] == FIRMWARE_MODE_DEMO_MODE && szDbBusRxData[2] == 0x5A)) + { + pInfo->nFirmwareMode = szDbBusRxData[1]; + DBG("pInfo->nFirmwareMode = 0x%x\n", pInfo->nFirmwareMode); + + pInfo->nLogModePacketHeader = szDbBusRxData[2]; + pInfo->nLogModePacketLength = (szDbBusRxData[3]<<8) + szDbBusRxData[4]; + pInfo->nType = szDbBusRxData[5]; + pInfo->nMy = szDbBusRxData[6]; + pInfo->nMx = szDbBusRxData[7]; + pInfo->nSd = szDbBusRxData[8]; + pInfo->nSs = szDbBusRxData[9]; + + DBG("pInfo->nLogModePacketHeader = 0x%x\n", pInfo->nLogModePacketHeader); + DBG("pInfo->nLogModePacketLength = %d\n", pInfo->nLogModePacketLength); + DBG("pInfo->nType = 0x%x\n", pInfo->nType); + DBG("pInfo->nMy = %d\n", pInfo->nMy); + DBG("pInfo->nMx = %d\n", pInfo->nMx); + DBG("pInfo->nSd = %d\n", pInfo->nSd); + DBG("pInfo->nSs = %d\n", pInfo->nSs); + } + else + { + DBG("Firmware info before correcting :\n"); + + DBG("FirmwareMode = 0x%x\n", szDbBusRxData[1]); + DBG("LogModePacketHeader = 0x%x\n", szDbBusRxData[2]); + DBG("LogModePacketLength = %d\n", (szDbBusRxData[3]<<8) + szDbBusRxData[4]); + DBG("Type = 0x%x\n", szDbBusRxData[5]); + DBG("My = %d\n", szDbBusRxData[6]); + DBG("Mx = %d\n", szDbBusRxData[7]); + DBG("Sd = %d\n", szDbBusRxData[8]); + DBG("Ss = %d\n", szDbBusRxData[9]); + + // Set firmware mode to demo mode(default) + pInfo->nFirmwareMode = FIRMWARE_MODE_DEMO_MODE; + pInfo->nLogModePacketHeader = 0x5A; + pInfo->nLogModePacketLength = DEMO_MODE_PACKET_LENGTH; + pInfo->nType = 0; + pInfo->nMy = 0; + pInfo->nMx = 0; + pInfo->nSd = 0; + pInfo->nSs = 0; + + DBG("Firmware info after correcting :\n"); + + DBG("pInfo->nFirmwareMode = 0x%x\n", pInfo->nFirmwareMode); + DBG("pInfo->nLogModePacketHeader = 0x%x\n", pInfo->nLogModePacketHeader); + DBG("pInfo->nLogModePacketLength = %d\n", pInfo->nLogModePacketLength); + DBG("pInfo->nType = 0x%x\n", pInfo->nType); + DBG("pInfo->nMy = %d\n", pInfo->nMy); + DBG("pInfo->nMx = %d\n", pInfo->nMx); + DBG("pInfo->nSd = %d\n", pInfo->nSd); + DBG("pInfo->nSs = %d\n", pInfo->nSs); + } + + _gIsDisableFinagerTouch = 0; + } +} + +void DrvFwCtrlRestoreFirmwareModeToLogDataMode(void) +{ + DBG("*** %s() g_IsSwitchModeByAPK = %d ***\n", __func__, g_IsSwitchModeByAPK); + + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + if (g_IsSwitchModeByAPK == 1) + { + DBG("g_FirmwareMode = 0x%x\n", g_FirmwareMode); + + // Since reset_hw() will reset the firmware mode to demo mode, we must reset the firmware mode again after reset_hw(). + if (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE && FIRMWARE_MODE_DEMO_MODE == DrvFwCtrlGetFirmwareMode()) + { + g_FirmwareMode = DrvFwCtrlChangeFirmwareMode(FIRMWARE_MODE_DEBUG_MODE); + } + else + { + DBG("firmware mode is not restored\n"); + } + } + } + else if (g_ChipType == CHIP_TYPE_MSG28XX) + { + if (g_IsSwitchModeByAPK == 1) + { + FirmwareInfo_t tInfo; + + memset(&tInfo, 0x0, sizeof(FirmwareInfo_t)); + + DrvFwCtrlGetFirmwareInfo(&tInfo); + + DBG("g_FirmwareMode = 0x%x, tInfo.nFirmwareMode = 0x%x\n", g_FirmwareMode, tInfo.nFirmwareMode); + + // Since reset_hw() will reset the firmware mode to demo mode, we must reset the firmware mode again after reset_hw(). + if (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE && FIRMWARE_MODE_DEBUG_MODE != tInfo.nFirmwareMode) + { + g_FirmwareMode = DrvFwCtrlChangeFirmwareMode(FIRMWARE_MODE_DEBUG_MODE); + } + else + { + DBG("firmware mode is not restored\n"); + } + } + } +} + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +void DrvFwCtrlCheckFirmwareUpdateBySwId(void) +{ + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + _DrvFwCtrlMsg26xxmCheckFirmwareUpdateBySwId(); + } + else if (g_ChipType == CHIP_TYPE_MSG28XX) + { + _DrvFwCtrlMsg28xxCheckFirmwareUpdateBySwId(); + } + else + { + DBG("This chip type (0x%x) does not support update firmware by sw id\n", g_ChipType); + } +} + +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA +void DrvFwCtrlGetTouchPacketAddress(u16* pDataAddress, u16* pFlagAddress) +{ + s32 rc = 0; + u8 szDbBusTxData[1] = {0}; + u8 szDbBusRxData[4] = {0}; + + DBG("*** %s() ***\n", __func__); + + szDbBusTxData[0] = 0x05; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 1); + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 4); + if (rc < 0) + { + g_FwSupportSegment = 0; + } + else + { + *pDataAddress = (szDbBusRxData[0]<<8) + szDbBusRxData[1]; + *pFlagAddress = (szDbBusRxData[2]<<8) + szDbBusRxData[3]; + + g_FwSupportSegment = 1; + + DBG("*** *pDataAddress = 0x%2X ***\n", *pDataAddress); // add for debug + DBG("*** *pFlagAddress = 0x%2X ***\n", *pFlagAddress); // add for debug + } +} + +static int _DrvFwCtrlCheckFingerTouchPacketFlagBit1(void) +{ + u8 szDbBusTxData[3] = {0}; + s32 nRetVal; + + DBG("*** %s() ***\n", __func__); + + szDbBusTxData[0] = 0x53; + szDbBusTxData[1] = (g_FwPacketFlagAddress >> 8) & 0xFF; + szDbBusTxData[2] = g_FwPacketFlagAddress & 0xFF; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + IicReadData(SLAVE_I2C_ID_DWI2C, &_gTouchPacketFlag[0], 2); + + if ((_gTouchPacketFlag[0] & BIT1) == 0x00) + { + nRetVal = 0; // Bit1 is 0 + } + else + { + nRetVal = 1; // Bit1 is 1 + } + DBG("Bit1 = %d\n", nRetVal); + + return nRetVal; +} + +static void _DrvFwCtrlResetFingerTouchPacketFlagBit1(void) +{ + u8 szDbBusTxData[4] = {0}; + + DBG("*** %s() ***\n", __func__); + + szDbBusTxData[0] = 0x52; + szDbBusTxData[1] = (g_FwPacketFlagAddress >> 8) & 0xFF; + szDbBusTxData[2] = g_FwPacketFlagAddress & 0xFF; + szDbBusTxData[3] = _gTouchPacketFlag[0] | BIT1; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 4); +} +#endif //CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION + +s32 DrvFwCtrlEnableProximity(void) +{ + u8 szDbBusTxData[4] = {0}; + s32 rc; + + DBG("*** %s() ***\n", __func__); + + szDbBusTxData[0] = 0x52; + szDbBusTxData[1] = 0x00; + + if (g_ChipType == CHIP_TYPE_MSG26XXM || g_ChipType == CHIP_TYPE_MSG28XX) + { + szDbBusTxData[2] = 0x47; + } + else + { + DBG("*** Un-recognized chip type = 0x%x ***\n", g_ChipType); + return -1; + } + + szDbBusTxData[3] = 0xa0; + + mutex_lock(&g_Mutex); + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 4); + mutex_unlock(&g_Mutex); + + if (rc > 0) + { + DBG("Enable proximity detection success\n"); + } + else + { + DBG("Enable proximity detection failed\n"); + } + + g_EnableTpProximity = 1; + + return rc; +} + +s32 DrvFwCtrlDisableProximity(void) +{ + u8 szDbBusTxData[4] = {0}; + s32 rc; + + DBG("*** %s() ***\n", __func__); + + szDbBusTxData[0] = 0x52; + szDbBusTxData[1] = 0x00; + + if (g_ChipType == CHIP_TYPE_MSG26XXM || g_ChipType == CHIP_TYPE_MSG28XX) + { + szDbBusTxData[2] = 0x47; + } + else + { + DBG("*** Un-recognized chip type = 0x%x ***\n", g_ChipType); + return -1; + } + + szDbBusTxData[3] = 0xa1; + + mutex_lock(&g_Mutex); + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 4); + mutex_unlock(&g_Mutex); + + if (rc > 0) + { + DBG("Disable proximity detection success\n"); + } + else + { + DBG("Disable proximity detection failed\n"); + } + + g_EnableTpProximity = 0; +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + g_FaceClosingTp = 0; +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM || CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM + + return rc; +} + +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_GLOVE_MODE +void DrvIcFwCtrlOpenGloveMode(void) +{ + s32 rc = 0; + u8 szDbBusTxData[3] = {0}; + u32 i = 0; + + DBG("*** %s() ***\n", __func__); + + _gIsDisableFinagerTouch = 1; // Disable finger touch ISR handling temporarily for device driver can send change firmware mode i2c command to firmware. + + szDbBusTxData[0] = 0x06; + szDbBusTxData[1] = 0x01; + szDbBusTxData[2] = 0x01; + + mdelay(20); + + mutex_lock(&g_Mutex); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + if (rc > 0) + { + DBG("Open glove mode success\n"); + break; + } + mdelay(10); + i++; + } + if (i == 5) + { + DBG("Open glove mode failed, rc = %d\n", rc); + } + + mutex_unlock(&g_Mutex); + + g_IsGloveModeOpen = 1; + + _gIsDisableFinagerTouch = 0; +} + +void DrvIcFwCtrlCloseGloveMode(void) +{ + s32 rc = 0; + u8 szDbBusTxData[3] = {0}; + u32 i = 0; + + DBG("*** %s() ***\n", __func__); + + _gIsDisableFinagerTouch = 1; // Disable finger touch ISR handling temporarily for device driver can send change firmware mode i2c command to firmware. + + szDbBusTxData[0] = 0x06; + szDbBusTxData[1] = 0x01; + szDbBusTxData[2] = 0x00; + + mdelay(20); + + mutex_lock(&g_Mutex); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + if (rc > 0) + { + DBG("Close glove mode success\n"); + break; + } + mdelay(10); + i++; + } + if (i == 5) + { + DBG("Close glove mode failed, rc = %d\n", rc); + } + + mutex_unlock(&g_Mutex); + + g_IsGloveModeOpen = 0; + + _gIsDisableFinagerTouch = 0; +} + +void DrvIcFwCtrlGetGloveInfo(u8 *pGloveMode) +{ + u8 szDbBusTxData[3] = {0}; + u8 szDbBusRxData[2] = {0}; + u32 i = 0; + s32 rc; + + _gIsDisableFinagerTouch = 1; // Disable finger touch ISR handling temporarily for device driver can send get firmware info i2c command to firmware. + + szDbBusTxData[0] = 0x06; + szDbBusTxData[1] = 0x01; + szDbBusTxData[2] = 0x02; + + mutex_lock(&g_Mutex); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + if (rc > 0) + { + DBG("Get glove info IicWriteData() success\n"); + } + mdelay(20); + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 1); + if (rc > 0) + { + DBG("Get glove info IicReadData() success\n"); + + if (szDbBusRxData[0] == 0x00 || szDbBusRxData[0] == 0x01) + { + break; + } + else + { + i = 0; + } + } + + mdelay(10); + i++; + } + + if (i == 5) + { + DBG("Get glove info failed, rc = %d\n", rc); + } + + mutex_unlock(&g_Mutex); + + *pGloveMode = szDbBusRxData[0]; + + DBG("pGloveMode = 0x%x\n", *pGloveMode); + + _gIsDisableFinagerTouch = 0; +} + +#endif //CONFIG_ENABLE_GLOVE_MODE +//------------------------------------------------------------------------------// + +static s32 _DrvFwCtrlReadFingerTouchData(u8 *pPacket, u16 nReportPacketLength) +{ + s32 rc; + + if (IS_FIRMWARE_DATA_LOG_ENABLED) + { + if (g_FirmwareMode == FIRMWARE_MODE_DEMO_MODE) + { + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &pPacket[0], nReportPacketLength); + if (rc < 0) + { + DBG("I2C read packet data failed, rc = %d\n", rc); + return -1; + } + } + else if (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE) + { +#ifdef CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA + DBG("*** g_FwPacketDataAddress = 0x%2X ***\n", g_FwPacketDataAddress); // add for debug + DBG("*** g_FwPacketFlagAddress = 0x%2X ***\n", g_FwPacketFlagAddress); // add for debug + + if (g_FwSupportSegment == 0) + { + DBG("g_FwPacketDataAddress & g_FwPacketFlagAddress is un-initialized\n"); + return -1; + } + + if (_gIsDisableFinagerTouch == 1) + { + DBG("Skip finger touch for handling get firmware info or change firmware mode\n"); + return -1; + } + + IicSegmentReadDataBySmBus(g_FwPacketDataAddress, &pPacket[0], nReportPacketLength, MAX_I2C_TRANSACTION_LENGTH_LIMIT); + + _DrvFwCtrlCheckFingerTouchPacketFlagBit1(); + _DrvFwCtrlResetFingerTouchPacketFlagBit1(); +#else + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &pPacket[0], nReportPacketLength); + if (rc < 0) + { + DBG("I2C read packet data failed, rc = %d\n", rc); + return -1; + } +#endif //CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA + } + else + { + DBG("WRONG FIRMWARE MODE : 0x%x\n", g_FirmwareMode); + return -1; + } + } + else + { + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &pPacket[0], nReportPacketLength); + if (rc < 0) + { + DBG("I2C read packet data failed, rc = %d\n", rc); + return -1; + } + } //IS_FIRMWARE_DATA_LOG_ENABLED + + return 0; +} + +//------------------------------------------------------------------------------// + +void DrvFwCtrlHandleFingerTouch(void) +{ + TouchInfo_t tInfo; + u32 i = 0; + static u32 nLastKeyCode = 0xFF; + static u32 nLastCount = 0; + u8 *pPacket = NULL; + u16 nReportPacketLength = 0; + +// DBG("*** %s() ***\n", __func__); // add for debug + + if (_gIsDisableFinagerTouch == 1) + { + DBG("Skip finger touch for handling get firmware info or change firmware mode\n"); + return; + } + + mutex_lock(&g_Mutex); + DBG("*** %s() *** mutex_lock(&g_Mutex)\n", __func__); // add for debug + + memset(&tInfo, 0x0, sizeof(TouchInfo_t)); + + if (IS_FIRMWARE_DATA_LOG_ENABLED) + { + if (g_FirmwareMode == FIRMWARE_MODE_DEMO_MODE) + { +#ifdef CONFIG_ENABLE_HOTKNOT //demo mode + if (g_HotKnotState == HOTKNOT_TRANS_STATE) + { + nReportPacketLength = DEMO_HOTKNOT_SEND_RET_LEN; + pPacket = g_DemoModeHotKnotSndRetPacket; + } + else +#endif //CONFIG_ENABLE_HOTKNOT + { + DBG("FIRMWARE_MODE_DEMO_MODE\n"); + + nReportPacketLength = DEMO_MODE_PACKET_LENGTH; + pPacket = g_DemoModePacket; + } + } + else if (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE) + { + DBG("FIRMWARE_MODE_DEBUG_MODE\n"); + + if (g_FirmwareInfo.nLogModePacketHeader != 0xA5 && g_FirmwareInfo.nLogModePacketHeader != 0xAB && g_FirmwareInfo.nLogModePacketHeader != 0xA7) + { + DBG("WRONG DEBUG MODE HEADER : 0x%x\n", g_FirmwareInfo.nLogModePacketHeader); + goto TouchHandleEnd; + } + +#ifdef CONFIG_ENABLE_HOTKNOT //debug mode + if(g_HotKnotState == HOTKNOT_TRANS_STATE) + { + nReportPacketLength = DEBUG_HOTKNOT_SEND_RET_LEN; + pPacket = g_DebugModeHotKnotSndRetPacket; + } + else +#endif //CONFIG_ENABLE_HOTKNOT + { + nReportPacketLength = g_FirmwareInfo.nLogModePacketLength; + pPacket = g_LogModePacket; + } + } + else + { + DBG("WRONG FIRMWARE MODE : 0x%x\n", g_FirmwareMode); + goto TouchHandleEnd; + } + } + else + { +#ifdef CONFIG_ENABLE_HOTKNOT //demo mode + if (g_HotKnotState == HOTKNOT_TRANS_STATE) + { + nReportPacketLength = DEMO_HOTKNOT_SEND_RET_LEN; + pPacket = g_DemoModeHotKnotSndRetPacket; + } + else +#endif //CONFIG_ENABLE_HOTKNOT + { + DBG("FIRMWARE_MODE_DEMO_MODE\n"); + + nReportPacketLength = DEMO_MODE_PACKET_LENGTH; + pPacket = g_DemoModePacket; + } + } //IS_FIRMWARE_DATA_LOG_ENABLED + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE + if (g_GestureDebugMode == 1 && g_GestureWakeupFlag == 1) + { + DBG("Set gesture debug mode packet length, g_ChipType=%d\n", g_ChipType); + + if (g_ChipType == CHIP_TYPE_MSG26XXM || g_ChipType == CHIP_TYPE_MSG28XX) + { + nReportPacketLength = GESTURE_DEBUG_MODE_PACKET_LENGTH; + pPacket = _gGestureWakeupPacket; + } + else + { + DBG("This chip type does not support gesture debug mode.\n"); + goto TouchHandleEnd; + } + } + else if (g_GestureWakeupFlag == 1) + { + DBG("Set gesture wakeup packet length\n"); + +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE + nReportPacketLength = GESTURE_WAKEUP_INFORMATION_PACKET_LENGTH; +#else + nReportPacketLength = GESTURE_WAKEUP_PACKET_LENGTH; +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE + + pPacket = _gGestureWakeupPacket; + } + +#else + + if (g_GestureWakeupFlag == 1) + { + DBG("Set gesture wakeup packet length\n"); + +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE + nReportPacketLength = GESTURE_WAKEUP_INFORMATION_PACKET_LENGTH; +#else + nReportPacketLength = GESTURE_WAKEUP_PACKET_LENGTH; +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE + + pPacket = _gGestureWakeupPacket; + } +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + if (g_GestureWakeupFlag == 1) + { + s32 rc; + + while (i < 5) + { + mdelay(50); + + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &pPacket[0], nReportPacketLength); + + if (rc > 0) + { + break; + } + + i ++; + } + if (i == 5) + { + DBG("I2C read packet data failed, rc = %d\n", rc); + goto TouchHandleEnd; + } + } + else + { + if (0 != _DrvFwCtrlReadFingerTouchData(&pPacket[0], nReportPacketLength)) + { + goto TouchHandleEnd; + } + } +#else + if (0 != _DrvFwCtrlReadFingerTouchData(&pPacket[0], nReportPacketLength)) + { + goto TouchHandleEnd; + } +#endif //CONFIG_ENABLE_GESTURE_WAKEUP +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + if (0 != _DrvFwCtrlReadFingerTouchData(&pPacket[0], nReportPacketLength)) + { + goto TouchHandleEnd; + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + { + s32 nRetVal = 0; + +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC + + nRetVal = _DrvFwCtrlReadFingerTouchData(&pPacket[0], nReportPacketLength); + if (0 != nRetVal) + { + goto TouchHandleEnd; + } + } +#endif + + if (0 == _DrvFwCtrlParsePacket(pPacket, nReportPacketLength, &tInfo)) + { +#ifdef CONFIG_TP_HAVE_KEY + if (tInfo.nKeyCode != 0xFF) //key touch pressed + { + DBG("tInfo.nKeyCode=%x, nLastKeyCode=%x, g_TpVirtualKey[%d]=%d\n", tInfo.nKeyCode, nLastKeyCode, tInfo.nKeyCode, g_TpVirtualKey[tInfo.nKeyCode]); + + if (tInfo.nKeyCode < MAX_KEY_NUM) + { + if (tInfo.nKeyCode != nLastKeyCode) + { + DBG("key touch pressed\n"); + + input_report_key(g_InputDevice, BTN_TOUCH, 1); + input_report_key(g_InputDevice, g_TpVirtualKey[tInfo.nKeyCode], 1); + + input_sync(g_InputDevice); + + nLastKeyCode = tInfo.nKeyCode; + } + else + { + /// pass duplicate key-pressing + DBG("REPEATED KEY\n"); + } + } + else + { + DBG("WRONG KEY\n"); + } + } + else //key touch released + { + if (nLastKeyCode != 0xFF) + { + DBG("key touch released\n"); + + input_report_key(g_InputDevice, BTN_TOUCH, 0); + input_report_key(g_InputDevice, g_TpVirtualKey[nLastKeyCode], 0); + + input_sync(g_InputDevice); + + nLastKeyCode = 0xFF; + } + } +#endif //CONFIG_TP_HAVE_KEY + + DBG("tInfo.nCount = %d, nLastCount = %d\n", tInfo.nCount, nLastCount); + + if (tInfo.nCount > 0) //point touch pressed + { + for (i = 0; i < tInfo.nCount; i ++) + { + DrvPlatformLyrFingerTouchPressed(tInfo.tPoint[i].nX, tInfo.tPoint[i].nY, tInfo.tPoint[i].nP, tInfo.tPoint[i].nId); + } + + input_sync(g_InputDevice); + + nLastCount = tInfo.nCount; + } + else //point touch released + { + if (nLastCount > 0) + { + DrvPlatformLyrFingerTouchReleased(tInfo.tPoint[0].nX, tInfo.tPoint[0].nY); + + input_sync(g_InputDevice); + + nLastCount = 0; + } + } + +#ifdef CONFIG_ENABLE_COUNT_REPORT_RATE + if (g_IsEnableReportRate == 1) + { + if (g_ValidTouchCount == 4294967296) + { + g_ValidTouchCount = 0; // Reset count if overflow + DBG("g_ValidTouchCount reset to 0\n"); + } + + g_ValidTouchCount ++; + + DBG("g_ValidTouchCount = %d\n", g_ValidTouchCount); + } +#endif //CONFIG_ENABLE_COUNT_REPORT_RATE + } + + TouchHandleEnd: + + DBG("*** %s() *** mutex_unlock(&g_Mutex)\n", __func__); // add for debug + mutex_unlock(&g_Mutex); +} + +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_mutual_fw_control.h b/drivers/input/touchscreen/msg2233/mstar_drv_mutual_fw_control.h new file mode 100644 index 00000000..89ba829a --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_mutual_fw_control.h @@ -0,0 +1,203 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_mutual_fw_control.h + * + * @brief This file defines the interface of touch screen + * + * + */ + +#ifndef __MSTAR_DRV_MUTUAL_FW_CONTROL_H__ +#define __MSTAR_DRV_MUTUAL_FW_CONTROL_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include "mstar_drv_common.h" +#ifdef CONFIG_ENABLE_HOTKNOT +#include "mstar_drv_hotknot.h" +#endif //CONFIG_ENABLE_HOTKNOT + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR CONSTANT DEFINITION */ +/*--------------------------------------------------------------------------*/ + +#define DEMO_MODE_PACKET_LENGTH (43) +#define MAX_TOUCH_NUM (10) + +#define MSG26XXM_FIRMWARE_MAIN_BLOCK_SIZE (32) //32K +#define MSG26XXM_FIRMWARE_INFO_BLOCK_SIZE (8) //8K +#define MSG26XXM_FIRMWARE_WHOLE_SIZE (MSG26XXM_FIRMWARE_MAIN_BLOCK_SIZE+MSG26XXM_FIRMWARE_INFO_BLOCK_SIZE) //40K + +#define MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE (128) //128K +#define MSG28XX_FIRMWARE_INFO_BLOCK_SIZE (2) //2K +#define MSG28XX_FIRMWARE_WHOLE_SIZE (MSG28XX_FIRMWARE_MAIN_BLOCK_SIZE+MSG28XX_FIRMWARE_INFO_BLOCK_SIZE) //130K + +#define MSG28XX_EMEM_SIZE_BYTES_PER_ONE_PAGE (128) +#define MSG28XX_EMEM_SIZE_BYTES_ONE_WORD (4) + +#define MSG28XX_EMEM_MAIN_MAX_ADDR (0x3FFF) //0~0x3FFF = 0x4000 = 16384 = 65536/4 +#define MSG28XX_EMEM_INFO_MAX_ADDR (0x1FF) //0~0x1FF = 0x200 = 512 = 2048/4 + + +#define MSG26XXM_FIRMWARE_MODE_UNKNOWN_MODE (0xFFFF) +#define MSG26XXM_FIRMWARE_MODE_DEMO_MODE (0x0005) +#define MSG26XXM_FIRMWARE_MODE_DEBUG_MODE (0x0105) + +#define MSG28XX_FIRMWARE_MODE_UNKNOWN_MODE (0xFF) +#define MSG28XX_FIRMWARE_MODE_DEMO_MODE (0x00) +#define MSG28XX_FIRMWARE_MODE_DEBUG_MODE (0x01) + + +#define DEBUG_MODE_PACKET_LENGTH (1280) //It is a predefined maximum packet length, not the actual packet length which queried from firmware. + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +#define UPDATE_FIRMWARE_RETRY_COUNT (2) +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE +#define FIRMWARE_GESTURE_INFORMATION_MODE_A (0x00) +#define FIRMWARE_GESTURE_INFORMATION_MODE_B (0x01) +#define FIRMWARE_GESTURE_INFORMATION_MODE_C (0x02) +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +/*--------------------------------------------------------------------------*/ +/* DATA TYPE DEFINITION */ +/*--------------------------------------------------------------------------*/ + +typedef struct +{ + u16 nId; + u16 nX; + u16 nY; + u16 nP; +} TouchPoint_t; + +/// max 80+1+1 = 82 bytes +typedef struct +{ + u8 nCount; + u8 nKeyCode; + TouchPoint_t tPoint[MAX_TOUCH_NUM]; +} TouchInfo_t; + +typedef struct +{ + u16 nFirmwareMode; + u8 nType; + u8 nLogModePacketHeader; + u8 nMy; + u8 nMx; + u8 nSd; + u8 nSs; + u16 nLogModePacketLength; +} FirmwareInfo_t; + + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +/* + * Note. + * 0x0000 and 0xFFFF are not allowed to be defined as SW ID. + * SW_ID_UNDEFINED is a reserved enum value, do not delete it or modify it. + * Please modify the SW ID of the below enum value depends on the TP vendor that you are using. + */ +typedef enum { + MSG26XXM_SW_ID_XXXX = 0x0001, + MSG26XXM_SW_ID_YYYY = 0x0002, + MSG26XXM_SW_ID_UNDEFINED +} Msg26xxmSwId_e; + +/* + * Note. + * 0x0000 and 0xFFFF are not allowed to be defined as SW ID. + * SW_ID_UNDEFINED is a reserved enum value, do not delete it or modify it. + * Please modify the SW ID of the below enum value depends on the TP vendor that you are using. + */ +typedef enum { + MSG28XX_SW_ID_XXXX = 0x0001, + MSG28XX_SW_ID_YYYY = 0x0002, + MSG28XX_SW_ID_UNDEFINED +} Msg28xxSwId_e; +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +extern void DrvFwCtrlOpenGestureWakeup(u32 *pMode); +extern void DrvFwCtrlCloseGestureWakeup(void); + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +extern void DrvFwCtrlOpenGestureDebugMode(u8 nGestureFlag); +extern void DrvFwCtrlCloseGestureDebugMode(void); +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +extern u32 DrvFwCtrlReadDQMemValue(u16 nAddr); +extern void DrvFwCtrlWriteDQMemValue(u16 nAddr, u32 nData); + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +extern void DrvFwCtrlCheckFirmwareUpdateBySwId(void); +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +extern u16 DrvFwCtrlChangeFirmwareMode(u16 nMode); +extern void DrvFwCtrlGetFirmwareInfo(FirmwareInfo_t *pInfo); +extern u16 DrvFwCtrlGetFirmwareMode(void); +extern void DrvFwCtrlRestoreFirmwareModeToLogDataMode(void); + +#ifdef CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA +extern void DrvFwCtrlGetTouchPacketAddress(u16 *pDataAddress, u16 *pFlagAddress); +#endif //CONFIG_ENABLE_SEGMENT_READ_FINGER_TOUCH_DATA + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION +extern s32 DrvFwCtrlEnableProximity(void); +extern s32 DrvFwCtrlDisableProximity(void); +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +extern void DrvFwCtrlVariableInitialize(void); +extern void DrvFwCtrlOptimizeCurrentConsumption(void); +extern u8 DrvFwCtrlGetChipType(void); +extern void DrvFwCtrlGetCustomerFirmwareVersionByDbBus(EmemType_e eEmemType, u16 *pMajor, u16 *pMinor, u8 **ppVersion); +extern void DrvFwCtrlGetCustomerFirmwareVersion(u16 *pMajor, u16 *pMinor, u8 **ppVersion); +extern void DrvFwCtrlGetPlatformFirmwareVersion(u8 **ppVersion); +extern void DrvFwCtrlHandleFingerTouch(void); +extern s32 DrvFwCtrlUpdateFirmware(u8 szFwData[][1024], EmemType_e eEmemType); +extern s32 DrvFwCtrlUpdateFirmwareBySdCard(const char *pFilePath); + +#ifdef CONFIG_ENABLE_HOTKNOT +extern void ReportHotKnotCmd(u8 *pPacket, u16 nLength); +#endif //CONFIG_ENABLE_HOTKNOT + +#ifdef CONFIG_ENABLE_GLOVE_MODE +extern void DrvIcFwCtrlOpenGloveMode(void); +extern void DrvIcFwCtrlCloseGloveMode(void); +extern void DrvIcFwCtrlGetGloveInfo(u8 *pGloveMode); +#endif //CONFIG_ENABLE_GLOVE_MODE + +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC + +#endif /* __MSTAR_DRV_MUTUAL_FW_CONTROL_H__ */ diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_mutual_mp_test.c b/drivers/input/touchscreen/msg2233/mstar_drv_mutual_mp_test.c new file mode 100644 index 00000000..b506ad47 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_mutual_mp_test.c @@ -0,0 +1,3421 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_mutual_mp_test.c + * + * @brief This file defines the interface of touch screen + * + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_mutual_mp_test.h" +#include "mstar_drv_utility_adaption.h" +#include "mstar_drv_mutual_fw_control.h" +#include "mstar_drv_platform_porting_layer.h" + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) +#ifdef CONFIG_ENABLE_ITO_MP_TEST + +#include "msg26xxm_open_test_X.h" +#include "msg26xxm_short_test_X.h" +#include "msg28xx_mp_test_X.h" + +/*=============================================================*/ +// EXTERN VARIABLE DECLARATION +/*=============================================================*/ + +extern u32 SLAVE_I2C_ID_DBBUS; +extern u32 SLAVE_I2C_ID_DWI2C; + +extern u8 g_ChipType; + +/*=============================================================*/ +// LOCAL VARIABLE DEFINITION +/*=============================================================*/ + +static u32 _gIsInMpTest = 0; +static u32 _gTestRetryCount = CTP_MP_TEST_RETRY_COUNT; +static ItoTestMode_e _gItoTestMode = 0; + +static s32 _gCtpMpTestStatus = ITO_TEST_UNDER_TESTING; + +static u16 _gSenseLineNum = 0; +static u16 _gDriveLineNum = 0; +static u16 _gWaterProofNum = 0; + +static struct work_struct _gCtpItoTestWork; +static struct workqueue_struct *_gCtpMpTestWorkQueue = NULL; + +static s32 _gDeltaC[MAX_MUTUAL_NUM] = {0}; +static s32 _gResult[MAX_MUTUAL_NUM] = {0}; +static s32 _gDeltaCWater[12] = {0}; +static s32 _gResultWater[12] = {0}; +//static u8 _gMode[MAX_MUTUAL_NUM] = {0}; +static s32 _gSenseR[MAX_CHANNEL_NUM] = {0}; +static s32 _gDriveR[MAX_CHANNEL_NUM] = {0}; +static s32 _gGRR[MAX_CHANNEL_NUM] = {0}; +static s32 _gTempDeltaC[MAX_MUTUAL_NUM] = {0}; + +static u8 _gTestFailChannel[MAX_MUTUAL_NUM] = {0}; +static u32 _gTestFailChannelCount = 0; + +static u8 _gShortTestChannel[MAX_CHANNEL_NUM] = {0}; + +TestScopeInfo_t g_TestScopeInfo = {0}; + +static u8 _gTestAutoSwitchFlag = 1; +static u8 _gTestSwitchMode = 0; + +u16 _gMuxMem_20_3E_0_Settings[16] = {0}; +u16 _gMuxMem_20_3E_1_Settings[16] = {0}; +u16 _gMuxMem_20_3E_2_Settings[16] = {0}; +u16 _gMuxMem_20_3E_3_Settings[16] = {0}; +u16 _gMuxMem_20_3E_4_Settings[16] = {0}; +u16 _gMuxMem_20_3E_5_Settings[16] = {0}; +u16 _gMuxMem_20_3E_6_Settings[16] = {0}; + +/*=============================================================*/ +// LOCAL FUNCTION DEFINITION +/*=============================================================*/ + +static void _DrvMpTestItoTestMsg26xxmSetToNormalMode(void) +{ + u16 nRegData = 0; + u16 nTmpAddr = 0, nAddr = 0; + u16 nDriveNumGeg = 0, nSenseNumGeg = 0; + u16 i = 0; + + DBG("*** %s() ***\n", __func__); + + RegSet16BitValue(0x0FE6, 0x0001); + + nRegData = RegGet16BitValue(0x110E); + + if (nRegData == 0x1D08) + { + DBG("Wrong mode 0\n"); + } + + nRegData &= 0x0800; + + if (nRegData > 1) + { + DBG("Wrong mode\n"); + } + + RegSet16BitValueOff(0x110E, 0x0800); + RegSet16BitValueOn(0x1116, 0x0005); + RegSet16BitValueOn(0x114A, 0x0001); + + for (i = 0; i < 7; i ++) + { + nTmpAddr = 0x3C + i; + nTmpAddr = nTmpAddr * 2; + nAddr = (0x11 << 8) | nTmpAddr; + RegSet16BitValue(nAddr, MSG26XXM_open_ANA1_N_X[i]); + } + + RegSet16BitValue(0x1E66, 0x0000); + RegSet16BitValue(0x1E67, 0x0000); + RegSet16BitValue(0x1E68, 0x0000); + RegSet16BitValue(0x1E69, 0x0000); + RegSet16BitValue(0x1E6A, 0x0000); + RegSet16BitValue(0x1E6B, 0x0000); + + for (i = 0; i < 21; i ++) + { + nTmpAddr = 3 + i; + nTmpAddr = nTmpAddr * 2; + nAddr = (0x10 << 8) | nTmpAddr; + RegSet16BitValue(nAddr, MSG26XXM_open_ANA3_N_X[i]); + } + + nDriveNumGeg = ((MSG26XXM_DRIVE_NUM - 1) << 8 & 0xFF00); + nSenseNumGeg = (MSG26XXM_SENSE_NUM & 0x00FF); + + RegSet16BitValue(0x1216, nDriveNumGeg); + RegSet16BitValue(0x102E, nSenseNumGeg); + + RegSet16BitValue(0x0FE6, 0x0001); + + DBG("Wrong mode correction\n"); +} + +/* +static void _DrvMpTestItoTestMsg26xxmSetToWaterProofMode(void) +{ + u16 nTmpAddr = 0, nAddr = 0; + u16 i = 0; + u16 nCsubWPdata = 0; + + DBG("*** %s() ***\n", __func__); + + nCsubWPdata = (WATERPROOF_CSUB_REF << 8) | WATERPROOF_CSUB_REF; + + for (i = 0; i < 7; i ++) + { + nTmpAddr = 0x3C + i; + nTmpAddr = nTmpAddr * 2; + nAddr = (0x11 << 8) | nTmpAddr; + RegSet16BitValue(nAddr, MSG26XXM_WATERPROOF_ANA1_N_X[i]); + } + + for (i = 0; i < 21; i ++) + { + nTmpAddr = 3 + i; + nTmpAddr = nTmpAddr * 2; + nAddr = (0x10 << 8) | nTmpAddr; + RegSet16BitValue(nAddr, MSG26XXM_WATERPROOF_ANA3_N_X[i]); + } + + // ana2 write + RegSet16BitValue(0x1216, 0x0000); + + for (i = 0; i < 6; i ++) + { + nTmpAddr = 0x20 + i; + nTmpAddr = nTmpAddr * 2; + nAddr = (0x10 << 8) | nTmpAddr; + RegSet16BitValue(nAddr, nCsubWPdata); + } + + RegSet16BitValueOn(0x1116, 0x0005); + RegSet16BitValueOn(0x114A, 0x0001); + RegSet16BitValue(0x1208, 0x0002); + + DBG("WaterProof : Wrong mode correction\n"); +} +*/ + +void _ItoTestDebugShowArray(void *pBuf, u16 nLen, int nDataType, int nCarry, int nChangeLine) +{ + u8 * pU8Buf = NULL; + s8 * pS8Buf = NULL; + u16 * pU16Buf = NULL; + s16 * pS16Buf = NULL; + u32 * pU32Buf = NULL; + s32 * pS32Buf = NULL; + int i; + + if(nDataType == 8) + pU8Buf = (u8 *)pBuf; + else if(nDataType == -8) + pS8Buf = (s8 *)pBuf; + else if(nDataType == 16) + pU16Buf = (u16 *)pBuf; + else if(nDataType == -16) + pS16Buf = (s16 *)pBuf; + else if(nDataType == 32) + pU32Buf = (u32 *)pBuf; + else if(nDataType == -32) + pS32Buf = (s32 *)pBuf; + + for(i=0; i < nLen; i++) + { + if(nCarry == 16) + { + if(nDataType == 8) + DBG("%02X ", pU8Buf[i]); + else if(nDataType == -8) + DBG("%02X ", pS8Buf[i]); + else if(nDataType == 16) + DBG("%04X ", pU16Buf[i]); + else if(nDataType == -16) + DBG("%04X ", pS16Buf[i]); + else if(nDataType == 32) + DBG("%08X ", pU32Buf[i]); + else if(nDataType == -32) + DBG("%08X ", pS32Buf[i]); + } + else if(nCarry == 10) + { + if(nDataType == 8) + DBG("%6d ", pU8Buf[i]); + else if(nDataType == -8) + DBG("%6d ", pS8Buf[i]); + else if(nDataType == 16) + DBG("%6d ", pU16Buf[i]); + else if(nDataType == -16) + DBG("%6d ", pS16Buf[i]); + else if(nDataType == 32) + DBG("%6d ", pU32Buf[i]); + else if(nDataType == -32) + DBG("%6d ", pS32Buf[i]); + } + + if(i%nChangeLine == nChangeLine-1){ + DBG("\n"); + } + } + DBG("\n"); +} + +void _ItoTestDebugShowS32Array(s32 *pBuf, u16 nRow, u16 nCol) +{ + int i, j; + + for(j=0; j < nRow; j++) + { + for(i=0; i < nCol; i++) + { + DBG("%4d ", pBuf[i * nRow + j]); + } + DBG("\n"); + } + DBG("\n"); +} + +static void _DrvMpTestItoTestMsg26xxmMcuStop(void) +{ + DBG("*** %s() ***\n", __func__); + + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 +} + +static void _DrvMpTestItoTestMsg26xxmAnaSwitchToMutual(void) +{ + u16 nTemp = 0; + + DBG("*** %s() ***\n", __func__); + + nTemp = RegGet16BitValue(0x114A); //bank:ana, addr:h0025 + nTemp |= BIT0; + RegSet16BitValue(0x114A, nTemp); + nTemp = RegGet16BitValue(0x1116); //bank:ana, addr:h000b + nTemp |= (BIT2 | BIT0); + RegSet16BitValue(0x1116, nTemp); +} + +static u16 _DrvMpTestItoTestAnaGetMutualChannelNum(void) +{ + u16 nSenseLineNum = 0; + u16 nRegData = 0; + + DBG("*** %s() ***\n", __func__); + + nRegData = RegGet16BitValue(0x102E); //bank:ana3, addr:h0017 + nSenseLineNum = nRegData & 0x000F; + + DBG("nSenseLineNum = %d\n", nSenseLineNum); + + return nSenseLineNum; +} + +static u16 _DrvMpTestItoTestAnaGetMutualSubFrameNum(void) +{ + u16 nDriveLineNum = 0; + u16 nRegData = 0; + + DBG("*** %s() ***\n", __func__); + + nRegData = RegGet16BitValue(0x1216); //bank:ana2, addr:h000b + nDriveLineNum = ((nRegData & 0xFF00) >> 8) + 1; //Since we only retrieve 8th~12th bit of reg_m_sf_num, 0xFF00 shall be changed to 0x1F00. + + DBG("nDriveLineNum = %d\n", nDriveLineNum); + + return nDriveLineNum; +} + +/* +static void _DrvMpTestItoOpenTestMsg26xxmAnaGetMutualCSub(u8 *pMode) +{ + u16 i, j; + u16 nSenseLineNum; + u16 nDriveLineNum; + u16 nTotalNum; + u8 szDataAna4[3]; + u8 szDataAna3[3]; + u8 szDataAna41[ANA4_MUTUAL_CSUB_NUMBER]; //200 = 392 - 192 + u8 szDataAna31[ANA3_MUTUAL_CSUB_NUMBER]; //192 = 14 * 13 + 10 + u8 szModeTemp[MAX_MUTUAL_NUM]; + + DBG("*** %s() ***\n", __func__); + + nTotalNum = MAX_MUTUAL_NUM; + + nSenseLineNum = _DrvMpTestItoTestAnaGetMutualChannelNum(); + nDriveLineNum = _DrvMpTestItoTestAnaGetMutualSubFrameNum(); + + if (ANA4_MUTUAL_CSUB_NUMBER > 0) + { + mdelay(100); + for (i = 0; i < ANA4_MUTUAL_CSUB_NUMBER; i ++) + { + szDataAna41[i] = 0; + } + + szDataAna4[0] = 0x10; + szDataAna4[1] = 0x15; //bank:ana4, addr:h0000 + szDataAna4[2] = 0x00; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDataAna4[0], 3); + IicReadData(SLAVE_I2C_ID_DBBUS, &szDataAna41[0], ANA4_MUTUAL_CSUB_NUMBER); //200 + + nTotalNum -= (u16)ANA4_MUTUAL_CSUB_NUMBER; + } + + for (i = 0; i < nTotalNum; i ++) + { + szDataAna31[i] = 0; + } + + mdelay(100); + + szDataAna3[0] = 0x10; + szDataAna3[1] = 0x10; //bank:ana3, addr:h0020 + szDataAna3[2] = 0x40; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDataAna3[0], 3); + IicReadData(SLAVE_I2C_ID_DBBUS, &szDataAna31[0], ANA3_MUTUAL_CSUB_NUMBER); //192 + + for (i = 0; i < ANA3_MUTUAL_CSUB_NUMBER; i ++) + { + szModeTemp[i] = szDataAna31[i]; + } + + for (i = ANA3_MUTUAL_CSUB_NUMBER; i < (ANA3_MUTUAL_CSUB_NUMBER + ANA4_MUTUAL_CSUB_NUMBER); i ++) + { + szModeTemp[i] = szDataAna41[i - ANA3_MUTUAL_CSUB_NUMBER]; + } + + for (i = 0; i < nDriveLineNum; i ++) + { + for (j = 0; j < nSenseLineNum; j ++) + { + _gMode[j * nDriveLineNum + i] = szModeTemp[i * MAX_CHANNEL_SEN + j]; + +// DBG("_gMode[%d] = %d\n", j * nDriveLineNum + i, _gMode[j * nDriveLineNum + i]); + } + } +} +*/ + +static void _DrvMpTestItoOpenTestMsg26xxmAnaSetMutualCSub(u16 nCSub) +{ + u16 i = 0; + u8 szDbBusTxData[256] = {0}; + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x15; //bank:ana4, addr:h0000 + szDbBusTxData[2] = 0x00; + + for (i = 3; i < (3+ANA4_MUTUAL_CSUB_NUMBER); i ++) + { + szDbBusTxData[i] = (u8)nCSub; + } + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+ANA4_MUTUAL_CSUB_NUMBER); + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x10; //bank:ana3, addr:h0020 + szDbBusTxData[2] = 0x40; + + for (i = 3; i < 3+ANA3_MUTUAL_CSUB_NUMBER; i ++) + { + szDbBusTxData[i] = (u8)nCSub; + } + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+ANA3_MUTUAL_CSUB_NUMBER); +} + +static void _DrvMpTestItoTestMsg26xxmDisableFilterNoiseDetect(void) +{ + u16 nTemp = 0; + + DBG("*** %s() ***\n", __func__); + + nTemp = RegGet16BitValue(0x1302); //bank:fir, addr:h0001 + nTemp &= (~(BIT2 | BIT1 | BIT0)); + RegSet16BitValue(0x1302, nTemp); +} + +static void _DrvMpTestItoTestMsg26xxmAnaSwReset(void) +{ + DBG("*** %s() ***\n", __func__); + + RegSet16BitValue(0x1100, 0xFFFF); //bank:ana, addr:h0000 + RegSet16BitValue(0x1100, 0x0000); + mdelay(100); +} + +static void _DrvMpTestItoTestMsg26xxmEnableAdcOneShot(void) +{ + DBG("*** %s() ***\n", __func__); + + RegSet16BitValue(0x130C, BIT15); //bank:fir, addr:h0006 + RegSet16BitValue(0x1214, 0x0031); +} + +static void _DrvMpTestItoTestGetMutualOneShotRawIir(u16 wszResultData[][MAX_CHANNEL_DRV], u16 nDriveLineNum, u16 nSenseLineNum) +{ + u16 nRegData; + u16 i, j; + u16 nTemp; + u16 nReadSize; + u8 szDbBusTxData[3]; + u8 szShotData1[FILTER1_MUTUAL_DELTA_C_NUMBER]; //190 = (6 * 14 + 11) * 2 + u8 szShotData2[FILTER2_MUTUAL_DELTA_C_NUMBER]; //594 = (MAX_MUTUAL_NUM - (6 * 14 + 11)) * 2 + + DBG("*** %s() ***\n", __func__); + + nTemp = RegGet16BitValue(0x3D08); //bank:intr_ctrl, addr:h0004 + nTemp &= (~(BIT8 | BIT4)); + RegSet16BitValue(0x3D08, nTemp); + + _DrvMpTestItoTestMsg26xxmEnableAdcOneShot(); + + nRegData = 0; + while (0x0000 == (nRegData & BIT8)) + { + nRegData = RegGet16BitValue(0x3D18); //bank:intr_ctrl, addr:h000c + } + + for (i = 0; i < FILTER1_MUTUAL_DELTA_C_NUMBER; i ++) + { + szShotData1[i] = 0; + } + + for (i = 0; i < FILTER2_MUTUAL_DELTA_C_NUMBER; i ++) + { + szShotData2[i] = 0; + } + + mdelay(100); + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x13; //bank:fir, addr:h0021 + szDbBusTxData[2] = 0x42; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3); + IicReadData(SLAVE_I2C_ID_DBBUS, &szShotData1[0], FILTER1_MUTUAL_DELTA_C_NUMBER); //190 + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + mdelay(100); + nReadSize = IicSegmentReadDataByDbBus(0x20, 0x00, &szShotData2[0], FILTER2_MUTUAL_DELTA_C_NUMBER, MAX_I2C_TRANSACTION_LENGTH_LIMIT); //594 + DBG("*** nReadSize = %d ***\n", nReadSize); // add for debug +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + mdelay(100); + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x20; //bank:fir2, addr:h0000 + szDbBusTxData[2] = 0x00; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3); + IicReadData(SLAVE_I2C_ID_DBBUS, &szShotData2[0], FILTER2_MUTUAL_DELTA_C_NUMBER); //594 +#endif + + for (j = 0; j < nDriveLineNum; j ++) + { + for (i = 0; i < nSenseLineNum; i ++) + { + // FILTER1 : SF0~SF5, AFE0~AFE13; SF6, AFE0~AFE10 + if ((j <= 5) || ((j == 6) && (i <= 10))) + { + nRegData = (u16)(szShotData1[(j * 14 + i) * 2] | szShotData1[(j * 14 + i) * 2 + 1] << 8); + wszResultData[i][ j] = (short)nRegData; + } + else + { + // FILTER2 : SF6, AFE11~AFE13 + if ((j == 6) && (i > 10)) + { + nRegData = (u16)(szShotData2[((j - 6) * 14 + (i - 11)) * 2] | szShotData2[((j - 6) * 14 + (i - 11)) * 2 + 1] << 8); + wszResultData[i][j] = (short)nRegData; + } + else + { + nRegData = (u16)(szShotData2[6 + ((j - 7) * 14 + i) * 2] | szShotData2[6 + ((j - 7) * 14 + i) * 2 + 1] << 8); + wszResultData[i][j] = (short)nRegData; + } + } + } + } + + nTemp = RegGet16BitValue(0x3D08); //bank:intr_ctrl, addr:h0004 + nTemp |= (BIT8 | BIT4); + RegSet16BitValue(0x3D08, nTemp); +} + +static void _DrvMpTestItoTestMsg26xxmGetDeltaC(s32 *pTarget) +{ + s16 nTemp; + u16 wszRawData[MAX_CHANNEL_SEN][MAX_CHANNEL_DRV]; + u16 i, j; + u16 nDriveLineNum = 0, nSenseLineNum = 0, nShift = 0; + + DBG("*** %s() ***\n", __func__); + + nSenseLineNum = _DrvMpTestItoTestAnaGetMutualChannelNum(); + nDriveLineNum = _DrvMpTestItoTestAnaGetMutualSubFrameNum(); + + _DrvMpTestItoTestGetMutualOneShotRawIir(wszRawData, nDriveLineNum, nSenseLineNum); + + for (i = 0; i < nSenseLineNum; i ++) + { + for (j = 0; j < nDriveLineNum; j ++) + { + nShift = (u16)(i * nDriveLineNum + j); + nTemp = (s16)wszRawData[i][j]; + pTarget[nShift] = nTemp; + +// DBG("wszRawData[%d][%d] = %d\n", i, j, nTemp); + } + } +} + +static s32 _DrvMpTestItoTestMsg26xxmReadTrunkFwVersion(u32* pVersion) +{ + u16 nMajor = 0; + u16 nMinor = 0; + u8 szDbBusTxData[3] = {0}; + u8 szDbBusRxData[4] = {0}; + + DBG("*** %s() ***\n", __func__); + + szDbBusTxData[0] = 0x53; + szDbBusTxData[1] = 0x00; + szDbBusTxData[2] = 0x24; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 4); + + DBG("szDbBusRxData[0] = 0x%x\n", szDbBusRxData[0]); // add for debug + DBG("szDbBusRxData[1] = 0x%x\n", szDbBusRxData[1]); // add for debug + DBG("szDbBusRxData[2] = 0x%x\n", szDbBusRxData[2]); // add for debug + DBG("szDbBusRxData[3] = 0x%x\n", szDbBusRxData[3]); // add for debug + + nMajor = (szDbBusRxData[1]<<8) + szDbBusRxData[0]; + nMinor = (szDbBusRxData[3]<<8) + szDbBusRxData[2]; + + DBG("*** major = %x ***\n", nMajor); + DBG("*** minor = %x ***\n", nMinor); + + *pVersion = (nMajor << 16) + nMinor; + + return 0; +} + +static s32 _DrvMpTestItoTestMsg26xxmGetSwitchFlag(void) +{ + u32 nFwVersion = 0; + + DBG("*** %s() ***\n", __func__); + + if(_DrvMpTestItoTestMsg26xxmReadTrunkFwVersion(&nFwVersion) < 0) + { + _gTestSwitchMode = 0; + return 0; + } + + if(nFwVersion >= 0x10030000) + _gTestSwitchMode = 1; + else + _gTestSwitchMode = 0; + + return 0; +} + +static s32 _DrvMpTestItoTestMsg26xxmCheckSwitchStatus(void) +{ + u32 nRegData = 0; + int nTimeOut = 100; + int nT = 0; + + DBG("*** %s() ***\n", __func__); + + do + { + nRegData = RegGet16BitValue(0x3CE4); + mdelay(20); + nT++; + if (nT > nTimeOut) + { + return -1; + } + DBG("*** %s() nRegData:%x***\n", __func__ , nRegData); + + } while (nRegData != 0x7447); + + return 0; +} + +static s32 _DrvMpTestItoTestMsg26xxmSwitchFwMode(u8 nFWMode) +{ + DBG("*** %s() ***\n", __func__); + + RegSet16BitValue(0x0FE6, 0x0001); //MCU_stop + mdelay(150); + + RegSet16BitValue(0X3C60, 0xAA55); // disable watch dog + + RegSet16BitValue(0X3D08, 0xFFFF); + RegSet16BitValue(0X3D18, 0xFFFF); + + RegSet16BitValue(0x3CE4, 0x7474); + + //RegSet16BitValue(0x1E04, 0x7D60); + RegSet16BitValue(0x1E04, 0x829F); + RegSet16BitValue(0x0FE6, 0x0000); + mdelay(150); + + if (_DrvMpTestItoTestMsg26xxmCheckSwitchStatus() < 0) + { + DBG("*** Msg26xx MP Test# CheckSwitchStatus failed! ***\n"); + return -1; + } + + switch (nFWMode) + { + case MUTUAL: + RegSet16BitValue(0x3CE4, 0x5705); + break; + + case SELF: + RegSet16BitValue(0x3CE4, 0x6278); + break; + + case WATERPROOF: + RegSet16BitValue(0x3CE4, 0x7992); + DBG("*** Msg26xx MP Test# WATERPROOF mode***\n"); + break; + + default: + return -1; + } + if (_DrvMpTestItoTestMsg26xxmCheckSwitchStatus()<0) + { + DBG("*** Msg26xx MP Test# CheckSwitchStatus failed! ***\n"); + return -1; + } + + RegSet16BitValue(0x0FE6, 0x0001);// stop mcu + RegSet16BitValue(0x3D08, 0xFEFF);//open timer + + return 0; +} + +static s32 _DrvMpTestItoTestMsg26xxmSwitchMode(u8 nSwitchMode, u8 nFMode) +{ + if (_gTestSwitchMode != 0) + { + if (_DrvMpTestItoTestMsg26xxmSwitchFwMode(nFMode) < 0) + { + if (nFMode == MUTUAL) + { + _DrvMpTestItoTestMsg26xxmSetToNormalMode(); + } + else + { + //_DrvMpTestItoTestMsg26xxmSetToWaterProofMode(); + DBG("*** Msg26xx MP Test# _DrvMpTestItoTestMsg26xxmSwitchMode failed! ***\n"); + return -1; + } + } + } + else + { + if (nFMode == MUTUAL) + { + _DrvMpTestItoTestMsg26xxmSetToNormalMode(); + } + else + { + //_DrvMpTestItoTestMsg26xxmSetToWaterProofMode(); + DBG("*** Msg26xx MP Test# _DrvMpTestItoTestMsg26xxmSwitchMode failed! ***\n"); + return -1; + } + } + + return 0; +} + +s32 _DrvMpTestMsg26xxmItoOpenTestEntry(void) +{ + s32 nRetVal = 0; + s32 nPrev = 0, nDelta = 0; + u16 i = 0, j = 0; + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DrvPlatformLyrDisableFingerTouchReport(); + + DrvPlatformLyrTouchDeviceResetHw(); + + //auto detetc fw version to decide switch fw mode + if (_gTestAutoSwitchFlag != 0) + { + _DrvMpTestItoTestMsg26xxmGetSwitchFlag(); + } + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + _DrvMpTestItoTestMsg26xxmSwitchMode(_gTestSwitchMode, MUTUAL); + + _DrvMpTestItoTestMsg26xxmMcuStop(); + mdelay(10); + + for (i = 0; i < MAX_MUTUAL_NUM; i ++) + { + _gTestFailChannel[i] = 0; + } + + _gTestFailChannelCount = 0; // Reset _gTestFailChannelCount to 0 before test start + + _gSenseLineNum = _DrvMpTestItoTestAnaGetMutualChannelNum(); + _gDriveLineNum = _DrvMpTestItoTestAnaGetMutualSubFrameNum(); + + _DrvMpTestItoOpenTestMsg26xxmAnaSetMutualCSub(MSG26XXM_OPEN_CSUB_REF_X); + _DrvMpTestItoTestMsg26xxmDisableFilterNoiseDetect(); + + // Set charge&dump time + RegSet16BitValue(0x1224, 0xFFC0); + RegSet16BitValue(0x122A, 0x0C0A); + + _DrvMpTestItoTestMsg26xxmAnaSwReset(); + _DrvMpTestItoTestMsg26xxmGetDeltaC(_gDeltaC); + + for (i = 0; i < _gSenseLineNum; i ++) + { + DBG("\nSense[%02d]\t", i); + + for (j = 0; j < _gDriveLineNum; j ++) + { + _gResult[i * _gDriveLineNum + j] = (4464*MSG26XXM_OPEN_CSUB_REF_X - _gDeltaC[i * _gDriveLineNum + j]); + DBG("%d %d %d\t", _gResult[i * _gDriveLineNum + j], 4464*MSG26XXM_OPEN_CSUB_REF_X, _gDeltaC[i * _gDriveLineNum + j]); + } + } + + DBG("\n\n\n"); + +// for (j = 0; j < _gDriveLineNum; j ++) + for (j = 0; j < (_gDriveLineNum-1); j ++) + { + for (i = 0; i < _gSenseLineNum; i ++) + { + if (_gResult[i * _gDriveLineNum + j] < FIR_THRESHOLD) + { + _gTestFailChannel[i * _gDriveLineNum + j] = 1; + _gTestFailChannelCount ++; + nRetVal = -1; + DBG("\nSense%d, Drive%d, MIN_Threshold = %d\t", i, j, _gResult[i * _gDriveLineNum + j]); + } + + if (i > 0) + { + nDelta = _gResult[i * _gDriveLineNum + j] > nPrev ? (_gResult[i * _gDriveLineNum + j] - nPrev) : (nPrev - _gResult[i * _gDriveLineNum + j]); + if (nDelta > nPrev*FIR_RATIO/100) + { + if (0 == _gTestFailChannel[i * _gDriveLineNum + j]) // for avoid _gTestFailChannelCount to be added twice + { + _gTestFailChannel[i * _gDriveLineNum + j] = 1; + _gTestFailChannelCount ++; + } + nRetVal = -1; + DBG("\nSense%d, Drive%d, MAX_Ratio = %d,%d\t", i, j, nDelta, nPrev); + } + } + nPrev = _gResult[i * _gDriveLineNum + j]; + } + } + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + mdelay(300); + + DrvPlatformLyrEnableFingerTouchReport(); + + return nRetVal; +} + +static void _DrvMpTestItoOpenTestSetMutualCsubViaDBbus(s16 nCSub) +{ + u8 nBaseLen = 6; + u16 nFilter = 0x3F; + u16 nLastFilter = 0xFFF; + u8 nBasePattern = nCSub & nFilter; + u8 nPattern; + u16 n16BitsPattern; + u16 nCSub16Bits[5] = {0}; + int i; + + DBG("*** %s() ***\n", __func__); + + for(i=0; i<5; i++) + { + if(i == 0) + { + nPattern = nBasePattern; //Patn => Pattern + } + + n16BitsPattern = ((nPattern & 0xF) << nBaseLen*2) | (nPattern << nBaseLen) | nPattern; + + if(i == 4) + { + nCSub16Bits[i] = n16BitsPattern & nLastFilter; + } + else + { + nCSub16Bits[i] = n16BitsPattern; + } + nPattern = (u8)((n16BitsPattern >> 4) & nFilter); + } + + RegSet16BitValue(0x215C, 0x1FFF); + + for (i = 0; i < 5; i++) + { + RegSet16BitValue(0x2148 + 2 * i, nCSub16Bits[i]); + RegSet16BitValue(0x2152 + 2 * i, nCSub16Bits[i]); + } +} + +/* +static void _DrvMpTestItoOpenTestAFEGainOne(void) +{ + u8 nRegData = 0; + u16 nAFECoef = 0; + + DBG("*** %s() ***\n", __func__); + + // AFE gain = 1X + RegSet16BitValue(0x1318, 0x4440); + RegSet16BitValue(0x131A, 0x4444); + RegSet16BitValue(0x13D6, 0x2000); + + RegSet16BitValue(0x2160, 0x0040); + RegSet16BitValue(0x2162, 0x0040); + RegSet16BitValue(0x2164, 0x0040); + RegSet16BitValue(0x2166, 0x0040); + RegSet16BitValue(0x2168, 0x0040); + RegSet16BitValue(0x216A, 0x0040); + RegSet16BitValue(0x216C, 0x0040); + RegSet16BitValue(0x216E, 0x0040); + RegSet16BitValue(0x2170, 0x0040); + RegSet16BitValue(0x2172, 0x0040); + RegSet16BitValue(0x2174, 0x0040); + RegSet16BitValue(0x2176, 0x0040); + RegSet16BitValue(0x2178, 0x0040); + RegSet16BitValue(0x217A, 0x1FFF); + RegSet16BitValue(0x217C, 0x1FFF); + + /// reg_hvbuf_sel_gain + RegSet16BitValue(0x1564, 0x0077); + + /// all AFE Cfb use defalt (50p) + RegSet16BitValue(0x1508, 0x1FFF);// all AFE Cfb: SW control + RegSet16BitValue(0x1550, 0x0000);// all AFE Cfb use defalt (50p) + + ///ADC: AFE Gain bypass + RegSet16BitValue(0x1260, 0x1FFF); + + //AFE coef + nRegData = RegGetLByteValue(0x101A); + nAFECoef = (u16)(0x10000/nRegData); + RegSet16BitValue(0x13D6, nAFECoef); +} +*/ + +static void _DrvMpTestItoOpenTestAFEGainOne(void) +{ + // AFE gain = 1X + u16 nAfeGain = 0; + u16 nDriOpening = 0; + u8 nRegData = 0; + u16 nAfeCoef = 0; + u16 i = 0; + + + //proto.MstarReadReg(loopDevice, (uint)0x1312, ref regdata); //get dri num + nRegData = RegGetLByteValue(0x1312); + nDriOpening = nRegData; + + ///filter unit gain + if (nDriOpening == 11 || nDriOpening == 15) + { + RegSet16BitValue(0x1318, 0x4470); + } + else if (nDriOpening == 7) + { + RegSet16BitValue(0x1318, 0x4460); + } + + //proto.MstarWriteReg_16(loopDevice, 0x131A, 0x4444); + RegSet16BitValue(0x131A, 0x4444); + + ///AFE coef + //proto.MstarReadReg(loopDevice, (uint)0x101A, ref regdata); + nRegData = RegGetLByteValue(0x101A); + nAfeCoef = 0x10000 / nRegData; + //proto.MstarWriteReg_16(loopDevice, (uint)0x13D6, AFE_coef); + RegSet16BitValue(0x13D6, nAfeCoef); + + ///AFE gain + if (nDriOpening == 7 || nDriOpening == 15) + { + nAfeGain = 0x0040; + } + else if (nDriOpening == 11) + { + nAfeGain = 0x0055; + } + + for (i = 0; i < 13; i++) + { + RegSet16BitValue(0x2160 + 2 * i, nAfeGain); + } + + ///AFE gain: over write enable + RegSet16BitValue(0x217A, 0x1FFF); + RegSet16BitValue(0x217C, 0x1FFF); + + /// all AFE Cfb use defalt (50p) + RegSet16BitValue(0x1508, 0x1FFF);// all AFE Cfb: SW control + RegSet16BitValue(0x1550, 0x0000);// all AFE Cfb use defalt (50p) + + /// reg_hvbuf_sel_gain + RegSet16BitValue(0x1564, 0x0077); + + ///ADC: AFE Gain bypass + RegSet16BitValue(0x1260, 0x1FFF); +} + +static void _DrvMpTestItoOpenTestCalibrateMutualCsub(s16 nCSub) +{ + u8 nChipVer; + + DBG("*** %s() ***\n", __func__); + + nChipVer = RegGetLByteValue(0x1ECE); + DBG("*** Msg28xx Open Test# Chip ID = %d ***\n", nChipVer); + + if (nChipVer != 0) + RegSet16BitValue(0x10F0, 0x0004);//bit2 + + _DrvMpTestItoOpenTestSetMutualCsubViaDBbus(nCSub); + _DrvMpTestItoOpenTestAFEGainOne(); +} + +static void _DrvMpTestItoTestDBBusReadDQMemStart(void) +{ + u8 nParCmdSelUseCfg = 0x7F; + u8 nParCmdAdByteEn0 = 0x50; + u8 nParCmdAdByteEn1 = 0x51; + u8 nParCmdDaByteEn0 = 0x54; + u8 nParCmdUSetSelB0 = 0x80; + u8 nParCmdUSetSelB1 = 0x82; + u8 nParCmdSetSelB2 = 0x85; + u8 nParCmdIicUse = 0x35; + //u8 nParCmdWr = 0x10; + + DBG("*** %s() ***\n", __func__); + + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdSelUseCfg, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdAdByteEn0, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdAdByteEn1, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdDaByteEn0, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdUSetSelB0, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdUSetSelB1, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdSetSelB2, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdIicUse, 1); +} + +/* +static void _DrvMpTestItoTestDBBusReadDQMemStartAddr24(void) +{ + u8 nParCmdSelUseCfg = 0x7F; +// u8 nParCmdAdByteEn0 = 0x50; +// u8 nParCmdAdByteEn1 = 0x51; + u8 nParCmdAdByteEn2 = 0x52; +// u8 nParCmdDaByteEn0 = 0x54; + u8 nParCmdUSetSelB0 = 0x80; + u8 nParCmdUSetSelB1 = 0x82; + u8 nParCmdSetSelB2 = 0x85; + u8 nParCmdIicUse = 0x35; + //u8 nParCmdWr = 0x10; + + DBG("*** %s() ***\n", __func__); + + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdSelUseCfg, 1); + //IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdAdByteEn0, 1); + //IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdAdByteEn1, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdAdByteEn2, 1); + //IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdDaByteEn0, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdUSetSelB0, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdUSetSelB1, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdSetSelB2, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdIicUse, 1); +} +*/ + +static void _DrvMpTestItoTestDBBusReadDQMemEnd(void) +{ + u8 nParCmdNSelUseCfg = 0x7E; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdNSelUseCfg, 1); +} + +/* +static void _DrvMpTestItoTestDBBusReadDQMemEndAddr24(void) +{ + u8 nParCmdSelUseCfg = 0x7F; + u8 nParCmdAdByteEn1 = 0x51; + u8 nParCmdSetSelB0 = 0x81; + u8 nParCmdSetSelB1 = 0x83; + u8 nParCmdNSetSelB2 = 0x84; + u8 nParCmdIicUse = 0x35; + u8 nParCmdNSelUseCfg = 0x7E; + u8 nParCmdNIicUse = 0x34; + + DBG("*** %s() ***\n", __func__); + RegSetLByteValue(0, 0); + + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdSelUseCfg, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdAdByteEn1, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdSetSelB0, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdSetSelB1, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdNSetSelB2, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdIicUse, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdNSelUseCfg, 1); + IicWriteData(SLAVE_I2C_ID_DBBUS, &nParCmdNIicUse, 1); +} +*/ + +static void _DrvMpTestItoTestMsg28xxEnableAdcOneShot(void) +{ + RegSet16BitValueOn(0x100a, BIT0); + + return; +} + +static s32 _DrvMpTestItoTestMsg28xxTriggerMutualOneShot(s16 * pResultData, u16 * pSenNum, u16 * pDrvNum) +{ + u16 nAddr = 0x5000, nAddrNextSF = 0x1A4; + u16 nSF = 0, nAfeOpening = 0, nDriOpening = 0; + u16 nMaxDataNumOfOneSF = 0; + u16 nDriMode = 0; + int nDataShift = -1; + u16 i, j, k; + u8 nRegData = 0; + u8 nShotData[392] = {0};//13*15*2 + u16 nRegDataU16 = 0; + s16 * pShotDataAll = NULL; + + DBG("*** %s() ***\n", __func__); + + nRegData = RegGetLByteValue(0x130A); + nSF = nRegData>>4; + nAfeOpening = nRegData & 0x0f; + + if (nSF == 0) + { + return -1; + } + + nRegData = RegGetLByteValue(0x100B); + nDriMode = nRegData; + + nRegData = RegGetLByteValue(0x1312); + nDriOpening = nRegData; + + DBG("*** Msg28xx MP Test# TriggerMutualOneShot nSF=%d, nAfeOpening=%d, nDriMode=%d, nDriOpening=%d. ***\n", nSF, nAfeOpening, nDriMode, nDriOpening); + + nMaxDataNumOfOneSF = nAfeOpening * nDriOpening; + + pShotDataAll = kzalloc(sizeof(s16) * nSF * nMaxDataNumOfOneSF, GFP_KERNEL); + + RegSet16BitValueOff(0x3D08, BIT8); ///FIQ_E_FRAME_READY_MASK + + ///polling frame-ready interrupt status + _DrvMpTestItoTestMsg28xxEnableAdcOneShot(); + + while (0x0000 == (nRegDataU16 & BIT8)) + { + nRegDataU16 = RegGet16BitValue(0x3D18); + } + + if (nDriMode == 2) // for short test + { + if (nAfeOpening % 2 == 0) + nDataShift = -1; + else + nDataShift = 0; //special case + //s16 nShortResultData[nSF][nAfeOpening]; + + /// get ALL raw data + for (i = 0; i < nSF; i++) + { + _DrvMpTestItoTestDBBusReadDQMemStart(); + RegGetXBitValue(nAddr + i * nAddrNextSF, nShotData, 28, MAX_I2C_TRANSACTION_LENGTH_LIMIT); + _DrvMpTestItoTestDBBusReadDQMemEnd(); + + //_ItoTestDebugShowArray(nShotData, 26, 8, 16, 16); + for (j = 0; j < nAfeOpening; j++) + { + pResultData[i*MAX_CHANNEL_DRV+j] = (s16)(nShotData[2 * j] | nShotData[2 * j + 1] << 8); + + if (nDataShift == 0 && (j == nAfeOpening-1)) + { + pResultData[i*MAX_CHANNEL_DRV+j] = (s16)(nShotData[2 * (j + 1)] | nShotData[2 * (j + 1) + 1] << 8); + } + } + } + + *pSenNum = nSF; + *pDrvNum = nAfeOpening; + } + else // for open test + { + //s16 nOpenResultData[nSF * nAfeOpening][nDriOpening]; + + if (nAfeOpening % 2 == 0 || nDriOpening % 2 == 0) + nDataShift = -1; + else + nDataShift = 0; //special case + + /// get ALL raw data, combine and handle datashift. + for (i = 0; i < nSF; i++) + { + _DrvMpTestItoTestDBBusReadDQMemStart(); + RegGetXBitValue(nAddr + i * nAddrNextSF, nShotData, 392, MAX_I2C_TRANSACTION_LENGTH_LIMIT); + _DrvMpTestItoTestDBBusReadDQMemEnd(); + + //_ItoTestDebugShowArray(nShotData, 390, 8, 10, 16); + for (j = 0; j < nMaxDataNumOfOneSF; j++) + { + pShotDataAll[i*nMaxDataNumOfOneSF+j] = (s16)(nShotData[2 * j] | nShotData[2 * j + 1] << 8); + + if (nDataShift == 0 && j == (nMaxDataNumOfOneSF - 1)) + pShotDataAll[i*nMaxDataNumOfOneSF+j] = (s16)(nShotData[2 * (j + 1)] | nShotData[2 * (j + 1) + 1] << 8); + } + } + + //problem here + for (k = 0; k < nSF; k++) + { + for (i = k * nAfeOpening; i < nAfeOpening * (k + 1); i++) //Sen + { + for (j = 0; j < nDriOpening; j++) //Dri + { + pResultData[i*MAX_CHANNEL_DRV+j] = pShotDataAll[k*nMaxDataNumOfOneSF + (j + (i - nAfeOpening * k) * nDriOpening)]; //resultData[Sen, Dri] + } + } + } + + *pSenNum = nSF * nAfeOpening; + *pDrvNum = nDriOpening; + } + RegSet16BitValueOn(0x3D08, BIT8); ///FIQ_E_FRAME_READY_MASK + RegSet16BitValueOn(0x3D08, BIT4); ///FIQ_E_TIMER0_MASK + + kfree(pShotDataAll); + + return 0; +} + +static s32 _DrvMpTestItoTestMsg28xxGetMutualOneShotRawIIR(s16 * nResultData, u16 * pSenNum, u16 * pDrvNum) +{ + return _DrvMpTestItoTestMsg28xxTriggerMutualOneShot(nResultData, pSenNum, pDrvNum); +} + +static s32 _DrvMpTestItoTestMsg28xxGetDeltaC(s32 *pDeltaC) +{ + s16 * pRawData = NULL; + s16 nRawDataOverlapDone[SENSE_NUM][DRIVE_NUM] = {{0}}; + //s16 nDeltaC[MAX_MUTUAL_NUM] = {0}; + u16 nDrvPos = 0, nSenPos = 0, nShift = 0; + u16 nSenNumBak = 0; + u16 nDrvNumBak = 0; + s16 i, j; + + DBG("*** %s() ***\n", __func__); + + pRawData = kzalloc(sizeof(s16) * MAX_CHANNEL_SEN*2 * MAX_CHANNEL_DRV, GFP_KERNEL); + + if(_DrvMpTestItoTestMsg28xxGetMutualOneShotRawIIR(pRawData, &nSenNumBak, &nDrvNumBak) < 0) + { + DBG("*** Msg28xx Open Test# GetMutualOneShotRawIIR failed! ***\n"); + return -1; + } + + DBG("*** Msg28xx Open Test# nSenNumBak=%d nDrvNumBak=%d ***\n", nSenNumBak, nDrvNumBak); + + for (i = 0; i < nSenNumBak; i++) + { + for (j = 0; j < nDrvNumBak; j++) + { + nShift = (u16)(i * nDrvNumBak + j); + nDrvPos = g_MapVaMutual[nShift][1]; + nSenPos = g_MapVaMutual[nShift][0]; + if (nDrvPos != 0xFF && nSenPos != 0xFF) + nRawDataOverlapDone[nSenPos][nDrvPos] = pRawData[i*MAX_CHANNEL_DRV+j]; + } + } + + for (i = 0; i < _gSenseLineNum; i++) + { + for (j = 0; j < _gDriveLineNum; j++) + { + nShift = (u16)(i * _gDriveLineNum + j); + pDeltaC[nShift] = (s32)nRawDataOverlapDone[i][j]; + } + } + + DBG("*** Msg28xx Open Test# gDeltaC ***\n"); + _ItoTestDebugShowArray(pDeltaC, _gSenseLineNum * _gDriveLineNum, -32, 10, _gSenseLineNum); + + kfree(pRawData); + + return 0; +} + +static void _DrvMpTestItoTestMsg28xxAnaSwReset(void) +{ + DBG("*** %s() ***\n", __func__); + + /// reset ANA + RegSet16BitValueOn(0x1002, (BIT0 | BIT1 | BIT2 | BIT3)); ///reg_tgen_soft_rst: 1 to reset + RegSet16BitValueOff(0x1002, (BIT0 | BIT1 | BIT2 | BIT3)); + + /// delay + mdelay(20); +} + +static s32 _DrvMpTestMsg28xxItoOpenTest(void) +{ + DBG("*** %s() ***\n", __func__); + + // Stop mcu + RegSet16BitValue(0x0FE6, 0x0001); + + _DrvMpTestItoOpenTestCalibrateMutualCsub(CSUB_REF); + RegSet16BitValue(0x156A, 0x000A); ///DAC com voltage + _DrvMpTestItoTestMsg28xxAnaSwReset(); + + + if(_DrvMpTestItoTestMsg28xxGetDeltaC(_gDeltaC) < 0) + { + DBG("*** Msg28xx Open Test# GetDeltaC failed! ***\n"); + return -1; + } + + return 0; +} + +static u8 _DrvMpTestItoTestCheckValueInRange(s32 nValue, s32 nMax, s32 nMin) +{ + if (nValue <= nMax && nValue >= nMin) + { + return 1; + } + else + { + return 0; + } +} + +static s32 _DrvMpTestItoOpenTestMsg28xxOpenJudge(u16 nItemID, s8 pNormalTestResult[][2], u16 pNormalTestResultCheck[][13]/*, u16 nDriOpening*/) +{ + s32 nRetVal = 0; + u16 nCSub = CSUB_REF; + u16 nRowNum = 0, nColumnNum = 0; + u32 nSum=0, nAvg=0, nDelta=0, nPrev=0; + u16 i, j, k; + + DBG("*** %s() ***\n", __func__); + + for (i = 0; i < _gSenseLineNum * _gDriveLineNum; i++) + { + //deltaC_result[i] = deltaC[i]; + //_gResult[i] = 1673 * nCSub - _gDeltaC[i] * 2 / (nDriOpening + 1); + if (_gDeltaC[i] > 31000) + { + return -1; + } + + _gResult[i] = 1673 * nCSub - _gDeltaC[i]; + + // For mutual key, last column if not be used, show number "one". + if ((MUTUAL_KEY == 1 || MUTUAL_KEY == 2) && (KEY_NUM != 0)) + { + if ((_gSenseLineNum < _gDriveLineNum) && ((i + 1) % _gDriveLineNum == 0)) + { + _gResult[i] = -32000; + for (k = 0; k < KEY_NUM; k++) + if ((i + 1) / _gDriveLineNum == KEYSEN[k]) + { + //_gResult[i] = 1673 * nCSub - _gDeltaC[i] * 2 / (nDriOpening + 1); + _gResult[i] = 1673 * nCSub - _gDeltaC[i]; + } + } + + if ((_gSenseLineNum > _gDriveLineNum) && (i > (_gSenseLineNum - 1) * _gDriveLineNum - 1)) + { + _gResult[i] = -32000; + for (k = 0; k < KEY_NUM; k++) + if (((i + 1) - (_gSenseLineNum - 1) * _gDriveLineNum) == KEYSEN[k]) + { + //_gResult[i] = 1673 * nCSub - _gDeltaC[i] * 2 / (nDriOpening + 1); + _gResult[i] = 1673 * nCSub - _gDeltaC[i]; + } + } + } + } + + if(_gDriveLineNum >= _gSenseLineNum) + { + nRowNum = _gDriveLineNum; + nColumnNum = _gSenseLineNum; + } + else + { + nRowNum = _gSenseLineNum; + nColumnNum = _gDriveLineNum; + } + + DBG("*** Msg28xx Open Test# Show _gResult ***\n"); + //_ItoTestDebugShowS32Array(_gResult, nRowNum, nColumnNum); + _ItoTestDebugShowArray(_gResult, nRowNum*nColumnNum, -32, 10, nColumnNum); + + //for (j = 0; j < nRowNum; j ++) + for (j = 0; j < (nRowNum-1); j ++) + { + nSum = 0; + for (i = 0; i < nColumnNum; i++) + { + nSum = nSum + _gResult[i * nRowNum + j]; + } + + nAvg = nSum / nColumnNum; + //DBG("*** Msg28xx Open Test# OpenJudge average=%d ***\n", nAvg); + for (i = 0; i < nColumnNum; i ++) + { + if (0 == _DrvMpTestItoTestCheckValueInRange(_gResult[i * nRowNum + j], (s32)(nAvg + nAvg * DC_RANGE/100), (s32)(nAvg - nAvg * DC_RANGE/100))) + { + _gTestFailChannel[i * nRowNum + j] = 1; + _gTestFailChannelCount ++; + nRetVal = -1; + } + + if (i > 0) + { + nDelta = _gResult[i * nRowNum + j] > nPrev ? (_gResult[i * nRowNum + j] - nPrev) : (nPrev - _gResult[i * nRowNum + j]); + if (nDelta > nPrev*FIR_RATIO/100) + { + if (0 == _gTestFailChannel[i * nRowNum + j]) // for avoid _gTestFailChannelCount to be added twice + { + _gTestFailChannel[i * nRowNum + j] = 1; + _gTestFailChannelCount ++; + } + nRetVal = -1; + DBG("\nSense%d, Drive%d, MAX_Ratio = %d,%d\t", i, j, nDelta, nPrev); + } + } + nPrev = _gResult[i * nRowNum + j]; + } + } + + //DBG("*** Msg28xx Open Test# OpenJudge _gTestFailChannelCount=%d ***\n", _gTestFailChannelCount); + return nRetVal; +} + +static s32 _DrvMpTestItoTestCheckSwitchStatus(void) +{ + u32 nRegData = 0; + int nTimeOut = 100; + int nT = 0; + + do + { + nRegData = RegGet16BitValue(0x1402); + mdelay(20); + nT++; + if (nT > nTimeOut) + { + return -1; + } + + } while (nRegData != 0x7447); + + return 0; +} + +static s32 _DrvMpTestMsg28xxItoTestSwitchFwMode(u8 nFMode) +{ + DBG("*** %s() ***\n", __func__); + + mdelay(100); + RegSet16BitValue(0x0FE6, 0x0001); //MCU_stop + RegSet16BitValue(0X3C60, 0xAA55); // disable watch dog + + RegSet16BitValue(0X3D08, 0xFFFF); + RegSet16BitValue(0X3D18, 0xFFFF); + + RegSet16BitValue(0x1402, 0x7474); + + //RegSet16BitValue((uint)0x1E04, (uint)0x7D60); + RegSet16BitValue(0x1E04, 0x829F); + RegSet16BitValue(0x0FE6, 0x0000); + mdelay(150); + + if (_DrvMpTestItoTestCheckSwitchStatus()<0) + { + DBG("*** Msg28xx MP Test# CheckSwitchStatus failed! ***\n"); + return -1; + } + + switch (nFMode) + { + case MUTUAL: + RegSet16BitValue(0x1402, 0x5705); + break; + + case SELF: + RegSet16BitValue(0x1402, 0x6278); + break; + + case WATERPROOF: + RegSet16BitValue(0x1402, 0x7992); + break; + + case MUTUAL_SINGLE_DRIVE: + RegSet16BitValue(0x1402, 0x0158); + break; + + default: + return -1; + } + if (_DrvMpTestItoTestCheckSwitchStatus()<0) + { + DBG("*** Msg28xx MP Test# CheckSwitchStatus failed! ***\n"); + return -1; + } + + RegSet16BitValue(0x0FE6, 0x0001);// stop mcu + RegSet16BitValue(0x3D08, 0xFEFF);//open timer + + return 0; +} + +s32 _DrvMpTestMsg28xxItoOpenTestEntry(void) +{ + s32 nRetVal = 0; +// u8 nDrvOpening = 0; + //u16 nCheckState = 0; + s8 nNormalTestResult[8][2] = {{0}}; //0:golden 1:ratio + u16 nNormalTestResultCheck[6][13] = {{0}}; //6:max subframe 13:max afe + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + _gSenseLineNum = SENSE_NUM; + _gDriveLineNum = DRIVE_NUM; + + DrvPlatformLyrDisableFingerTouchReport(); + DrvPlatformLyrTouchDeviceResetHw(); + + //reset_only + DbBusResetSlave(); + DbBusEnterSerialDebugMode(); + //DbBusWaitMCU(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSet16BitValue(0x0FE6, 0x0001); + + if(_DrvMpTestMsg28xxItoTestSwitchFwMode(MUTUAL) < 0) + { + DBG("*** Msg28xx Open Test# SwitchFwMode failed! ***\n"); + return -1; + } + + //nDrvOpening = RegGetLByteValue(0x1312); + + if(_DrvMpTestMsg28xxItoOpenTest() < 0) + { + DBG("*** Msg28xx Open Test# OpenTest failed! ***\n"); + return -1; + } + + mdelay(10); + + nRetVal = _DrvMpTestItoOpenTestMsg28xxOpenJudge(0, nNormalTestResult, nNormalTestResultCheck/*, nDrvOpening*/); + DBG("*** Msg28xx Open Test# OpenTestOpenJudge return value = %d ***\n", nRetVal); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + mdelay(300); + + DrvPlatformLyrEnableFingerTouchReport(); + + return nRetVal; +} + +s32 _DrvMpTestItoOpenTest(void) +{ + s32 nRetVal = -1; + + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + nRetVal = _DrvMpTestMsg26xxmItoOpenTestEntry(); + } + else if (g_ChipType == CHIP_TYPE_MSG28XX) + { + nRetVal = _DrvMpTestMsg28xxItoOpenTestEntry(); + } + + return nRetVal; +} + +static void _DrvMpTestItoTestSendDataIn(u16 nAddr, u16 nLength, u16 *data) +{ + u8 szDbBusTxData[256] = {0}; + int i = 0; + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = (nAddr >> 8) & 0xFF; + szDbBusTxData[2] = (nAddr & 0xFF); + + for (i = 0; i <= nLength ; i ++) + { + szDbBusTxData[3+2*i] = (data[i] & 0xFF); + szDbBusTxData[4+2*i] = (data[i] >> 8) & 0xFF; + } + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+nLength*2); +} + +static void _DrvMpTestItoShortTestMsg26xxmSetPAD2GPO(u8 nItemID) +{ + u16 gpioSetting[MAX_CHANNEL_NUM] = {0}; + u16 gpioEnabling[MAX_CHANNEL_NUM] = {0}; + u16 gpioZero[MAX_CHANNEL_NUM] = {0}; + u8 gpioNum = 0; + u16 *gpioPIN = NULL; + int i = 0; + int j = 0; + + DBG("*** %s() ***\n", __func__); + + if (nItemID == 1) + { + gpioNum = SHORT_N1_GPO_NUMBER_X; + gpioPIN = kzalloc(sizeof(u16) * gpioNum, GFP_KERNEL); + + for (i = 0; i < gpioNum; i++) + { + gpioPIN[i] = SHORT_N1_GPO_PIN_X[i]; + } + } + else if (nItemID == 2) + { + gpioNum = SHORT_N2_GPO_NUMBER_X; + gpioPIN = kzalloc(sizeof(u16) * gpioNum, GFP_KERNEL); + + for (i = 0; i < gpioNum; i++) + { + gpioPIN[i] = SHORT_N2_GPO_PIN_X[i]; + } + } + else if (nItemID == 3) + { + gpioNum = SHORT_S1_GPO_NUMBER_X; + gpioPIN = kzalloc(sizeof(u16) * gpioNum, GFP_KERNEL); + + for (i = 0; i < gpioNum; i++) + { + gpioPIN[i] = SHORT_S1_GPO_PIN_X[i]; + } + } + else if (nItemID == 4) + { + gpioNum = SHORT_S2_GPO_NUMBER_X; + gpioPIN = kzalloc(sizeof(u16) * gpioNum, GFP_KERNEL); + + for (i = 0; i < gpioNum; i++) + { + gpioPIN[i] = SHORT_S2_GPO_PIN_X[i]; + } + } + DBG("ItemID %d, gpioNum %d",nItemID, gpioNum); + + for (i = 0; i < MAX_CHANNEL_NUM; i++) + { + gpioEnabling[i] = 0xFFFF; + } + + for (i = 0; i < gpioNum; i++) + { + gpioSetting[gpioPIN[i] / 16] |= (u16)(1 << (gpioPIN[i] % 16)); + gpioEnabling[gpioPIN[i] / 16] &= (u16)(~(1 << (gpioPIN[i] % 16))); + } + + ///cts sw overwrite + { + _DrvMpTestItoTestSendDataIn(0x1E66, gpioNum, &gpioSetting[0]); ///who -> will be controlled + _DrvMpTestItoTestSendDataIn(0x1E6C, gpioNum, &gpioEnabling[0]); ///who -> enable sw overwrite + _DrvMpTestItoTestSendDataIn(0x1E72, gpioNum, &gpioZero[0]); ///who -> set2GPO + _DrvMpTestItoTestSendDataIn(0x1E78, gpioNum, &gpioZero[0]); ///who -> GPO2GND + } + + for (j = 0; j < gpioNum; j++) + { + if (PIN_GUARD_RING == gpioPIN[j]) + { + u16 u16RegData; + u16RegData = RegGet16BitValue(0x1E12); + u16RegData = ((u16RegData & 0xFFF9) | BIT0); + RegSet16BitValue(0x1E12, u16RegData); + } + } + + kfree(gpioPIN); +} + +static void _DrvMpTestItoShortTestMsg26xxmChangeANASetting(u8 nItemID) +{ + u16 SHORT_MAP_ANA1[7] = {0}; + u16 SHORT_MAP_ANA2[1] = {0}; + u16 SHORT_MAP_ANA3[21] = {0}; + int i = 0; + + DBG("*** %s() ***\n", __func__); + + if (nItemID == 1) + { + for (i = 0; i < 7; i++) + { + SHORT_MAP_ANA1[i] = short_ANA1_N1_X[i]; + } + + for (i = 0; i < 21; i++) + { + SHORT_MAP_ANA3[i] = short_ANA3_N1_X[i]; + } + + SHORT_MAP_ANA2[0] = short_ANA2_N1_X[0]; + } + else if (nItemID == 2) + { + for (i = 0; i < 7; i++) + { + SHORT_MAP_ANA1[i] = short_ANA1_N2_X[i]; + } + + for (i = 0; i < 21; i++) + { + SHORT_MAP_ANA3[i] = short_ANA3_N2_X[i]; + } + + SHORT_MAP_ANA2[0] = short_ANA2_N2_X[0]; + } + else if (nItemID == 3) + { + for (i = 0; i < 7; i++) + { + SHORT_MAP_ANA1[i] = short_ANA1_S1_X[i]; + } + + for (i = 0; i < 21; i++) + { + SHORT_MAP_ANA3[i] = short_ANA3_S1_X[i]; + } + + SHORT_MAP_ANA2[0] = short_ANA2_S1_X[0]; + } + else if (nItemID == 4) + { + for (i = 0; i < 7; i++) + { + SHORT_MAP_ANA1[i] = short_ANA1_S2_X[i]; + } + + for (i = 0; i < 21; i++) + { + SHORT_MAP_ANA3[i] = short_ANA3_S2_X[i]; + } + + SHORT_MAP_ANA2[0] = short_ANA2_S2_X[0]; + } + + ///change ANA setting + { + _DrvMpTestItoTestSendDataIn(0x1178, 7, &SHORT_MAP_ANA1[0]); ///ANA1_3C_42 + _DrvMpTestItoTestSendDataIn(0x1216, 1, &SHORT_MAP_ANA2[0]); ///ANA2_0B + _DrvMpTestItoTestSendDataIn(0x1006, 21, &SHORT_MAP_ANA3[0]); ///ANA3_03_17 + } +} + +static void _DrvMpTestItoShortTestMsg26xxmAnaFixPrs(u16 nOption) +{ + u16 nTemp = 0; + + DBG("*** %s() ***\n", __func__); + + nTemp = RegGet16BitValue(0x1208); //bank:ana2, addr:h000a + nTemp &= 0x00F1; + nTemp |= (u16)((nOption << 1) & 0x000E); + RegSet16BitValue(0x1208, nTemp); +} + +static void _DrvMpTestItoShortTestMsg26xxmSetNoiseSensorMode(u8 nEnable) +{ + DBG("*** %s() ***\n", __func__); + + if (nEnable) + { + RegSet16BitValueOn(0x110E, BIT11); + RegSet16BitValueOff(0x1116, BIT2); + } + else + { + RegSet16BitValueOff(0x110E, BIT11); + } +} + +static void _DrvMpTestItoShortTestMsg26xxmAndChangeCDtime(u16 nTime1, u16 nTime2) +{ + DBG("*** %s() ***\n", __func__); + + RegSet16BitValue(0x1224, nTime1); + RegSet16BitValue(0x122A, nTime2); +} + +static void _DrvMpTestMsg26xxmItoShortTest(u8 nItemID) +{ + int i; + + DBG("*** %s() ***\n", __func__); + + _DrvMpTestItoTestMsg26xxmMcuStop(); + _DrvMpTestItoShortTestMsg26xxmSetPAD2GPO(nItemID); + _DrvMpTestItoShortTestMsg26xxmChangeANASetting(nItemID); + _DrvMpTestItoTestMsg26xxmAnaSwitchToMutual(); + _DrvMpTestItoShortTestMsg26xxmAnaFixPrs(7); + _DrvMpTestItoTestMsg26xxmDisableFilterNoiseDetect(); + _DrvMpTestItoShortTestMsg26xxmSetNoiseSensorMode(1); + _DrvMpTestItoShortTestMsg26xxmAndChangeCDtime(SHORT_Charge_X, SHORT_Dump1_X); + _DrvMpTestItoTestMsg26xxmAnaSwReset(); + _DrvMpTestItoTestMsg26xxmGetDeltaC(_gTempDeltaC); + + _DrvMpTestItoTestMsg26xxmMcuStop(); + _DrvMpTestItoShortTestMsg26xxmSetPAD2GPO(nItemID); + _DrvMpTestItoShortTestMsg26xxmChangeANASetting(nItemID); + _DrvMpTestItoTestMsg26xxmAnaSwitchToMutual(); + _DrvMpTestItoShortTestMsg26xxmAnaFixPrs(7); + _DrvMpTestItoTestMsg26xxmDisableFilterNoiseDetect(); + _DrvMpTestItoShortTestMsg26xxmSetNoiseSensorMode(1); + _DrvMpTestItoShortTestMsg26xxmAndChangeCDtime(SHORT_Charge_X, SHORT_Dump2_X); + _DrvMpTestItoTestMsg26xxmAnaSwReset(); + _DrvMpTestItoTestMsg26xxmGetDeltaC(_gDeltaC); + + for (i = 0; i < MAX_MUTUAL_NUM ; i++) + { + if ((_gDeltaC[i] <= -(IIR_MAX)) || (_gTempDeltaC[i] <= -(IIR_MAX)) || (_gDeltaC[i] >= (IIR_MAX)) || (_gTempDeltaC[i] >= (IIR_MAX))) + { + _gDeltaC[i] = 0x7FFF; + } + else + { + _gDeltaC[i] = abs(_gDeltaC[i] - _gTempDeltaC[i]); + } + //DBG("ItemID%d, MUTUAL_NUM %d, _gDeltaC = %d\t", nItemID, i, _gDeltaC[i]); + } + DBG("\n"); +} + +static s32 _DrvMpTestItoShortTestCovertRValue(s32 nValue) +{ + if (nValue == 0) + { + nValue = 1; + } + + if (nValue >= IIR_MAX) + { + return 0; + } + + return ((500*11398) / (nValue)); +} + +static ItoTestResult_e _DrvMpTestItoShortTestMsg26xxmJudge(u8 nItemID) +{ + ItoTestResult_e nRetVal = ITO_TEST_OK; + u8 nTestPinLength = 0; + u16 i = 0; + u8 nGpioNum = 0; + u8* nTestGpio = NULL; + + DBG("*** %s() ***\n", __func__); + + if (nItemID == 1) + { + nGpioNum = SHORT_N1_TEST_NUMBER_X; + nTestGpio = kzalloc(sizeof(u16) * nGpioNum, GFP_KERNEL); + + for (i = 0; i < nGpioNum; i++) + { + nTestGpio[i] = SHORT_N1_TEST_PIN_X[i]; + } + } + else if (nItemID == 2) + { + nGpioNum = SHORT_N2_TEST_NUMBER_X; + nTestGpio = kzalloc(sizeof(u16) * nGpioNum, GFP_KERNEL); + + for (i = 0; i < nGpioNum; i++) + { + nTestGpio[i] = SHORT_N2_TEST_PIN_X[i]; + } + } + else if (nItemID == 3) + { + nGpioNum = SHORT_S1_TEST_NUMBER_X; + nTestGpio = kzalloc(sizeof(u16) * nGpioNum, GFP_KERNEL); + + for (i = 0; i < nGpioNum; i++) + { + nTestGpio[i] = SHORT_S1_TEST_PIN_X[i]; + } + } + else if (nItemID == 4) + { + nGpioNum = SHORT_S2_TEST_NUMBER_X; + nTestGpio = kzalloc(sizeof(u16) * nGpioNum, GFP_KERNEL); + + for (i = 0; i < nGpioNum; i++) + { + nTestGpio[i] = SHORT_S2_TEST_PIN_X[i]; + } + } + + nTestPinLength = nGpioNum; + + for (i = 0;i < nTestPinLength; i++) + { + _gShortTestChannel[i] = nTestGpio[i]; + + if (0 == _DrvMpTestItoTestCheckValueInRange(_gDeltaC[i], SHORT_VALUE, -SHORT_VALUE)) + { + nRetVal = ITO_TEST_FAIL; + _gTestFailChannelCount++; + DBG("_gShortTestChannel i = %d, _gDeltaC = %d\t", i, _gDeltaC[i]); + } + } + kfree(nTestGpio); + + return nRetVal; +} + +static ItoTestResult_e _DrvMpTestMsg26xxmItoShortTestEntry(void) +{ + ItoTestResult_e nRetVal1 = ITO_TEST_OK, nRetVal2 = ITO_TEST_OK, nRetVal3 = ITO_TEST_OK, nRetVal4 = ITO_TEST_OK, nRetVal5 = ITO_TEST_OK; + u32 i = 0; + u32 j = 0; + u16 nTestPinCount = 0; + s32 nShortThreshold = 0; + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DrvPlatformLyrDisableFingerTouchReport(); + + DrvPlatformLyrTouchDeviceResetHw(); + + //auto detetc fw version to decide switch fw mode + if (_gTestAutoSwitchFlag!=0) + { + _DrvMpTestItoTestMsg26xxmGetSwitchFlag(); + } + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + _DrvMpTestItoTestMsg26xxmSwitchMode(_gTestSwitchMode, MUTUAL); + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + _gShortTestChannel[i] = 0; + } + + for (i = 0; i < MAX_MUTUAL_NUM; i ++) + { + _gDeltaC[i] = 0; + } + + _gSenseLineNum = _DrvMpTestItoTestAnaGetMutualChannelNum(); + _gDriveLineNum = _DrvMpTestItoTestAnaGetMutualSubFrameNum(); + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + _gShortTestChannel[i] = 0xff; + } + + _gTestFailChannelCount = 0; + + nTestPinCount = 0; // Reset nTestPinCount to 0 before test start + + //N1_ShortTest + + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + _DrvMpTestMsg26xxmItoShortTest(1); + } + + nRetVal2 = _DrvMpTestItoShortTestMsg26xxmJudge(1); + + for (i = 0; i < MAX_CHANNEL_NUM; i++) + { + if (_gShortTestChannel[i] != 0) + { + nTestPinCount++; + } + } + + for (i = 0; i < nTestPinCount; i++) + { + for (j = 0; j < _gSenseLineNum; j++) + { + if (_gShortTestChannel[i] == SENSE_X[j]) + { + _gSenseR[j] = _DrvMpTestItoShortTestCovertRValue(_gDeltaC[i]); + + DBG("_gSenseR[%d] = %d\t", j , _gSenseR[j]); + } + } + } + DBG("\n"); + + //clear + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + _gShortTestChannel[i] = 0xff; + } + + nTestPinCount = 0; + + //N2_ShortTest + + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + _DrvMpTestMsg26xxmItoShortTest(2); + } + + nRetVal3 = _DrvMpTestItoShortTestMsg26xxmJudge(2); + + for (i = 0; i < MAX_CHANNEL_NUM; i++) + { + if (_gShortTestChannel[i] != 0) + { + nTestPinCount++; + } + } + + for (i = 0; i < nTestPinCount; i++) + { + for (j = 0; j < _gSenseLineNum; j++) + { + if (_gShortTestChannel[i] == SENSE_X[j]) + { + _gSenseR[j] = _DrvMpTestItoShortTestCovertRValue(_gDeltaC[i]); + + DBG("_gSenseR[%d] = %d\t", j , _gSenseR[j]); + } + } + } + DBG("\n"); + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + _gShortTestChannel[i] = 0xff; + } + nTestPinCount = 0; + + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + _DrvMpTestMsg26xxmItoShortTest(3); + } + + nRetVal4 = _DrvMpTestItoShortTestMsg26xxmJudge(3); + + for (i = 0; i < MAX_CHANNEL_NUM; i++) + { + if (_gShortTestChannel[i] != 0) + { + nTestPinCount++; + } + } + + for (i = 0; i < nTestPinCount; i++) + { + for (j = 0; j < _gDriveLineNum; j++) + { + if (_gShortTestChannel[i] == DRIVE_X[j]) + { + _gDriveR[j] = _DrvMpTestItoShortTestCovertRValue(_gDeltaC[i]); + DBG("_gDriveR[%d] = %d\t", j , _gDriveR[j]); + } + } + } + DBG("\n"); + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + _gShortTestChannel[i] = 0xff; + } + nTestPinCount = 0; + + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + _DrvMpTestMsg26xxmItoShortTest(4); + } + + nRetVal4 = _DrvMpTestItoShortTestMsg26xxmJudge(4); + + for (i = 0; i < MAX_CHANNEL_NUM; i++) + { + if (_gShortTestChannel[i] != 0) + { + nTestPinCount++; + } + } + + for (i = 0; i < nTestPinCount; i++) + { + for (j = 0; j < _gDriveLineNum ; j++) + { + if (_gShortTestChannel[i] == DRIVE_X[j]) + { + _gDriveR[j] = _DrvMpTestItoShortTestCovertRValue(_gDeltaC[i]); + DBG("_gDriveR[%d] = %d\t", j , _gDriveR[j]); + } + } + } + DBG("\n"); + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + _gShortTestChannel[i] = 0xff; + } + nTestPinCount = 0; + nShortThreshold = _DrvMpTestItoShortTestCovertRValue(SHORT_VALUE); + + for (i = 0; i < _gSenseLineNum; i++) + { + _gResult[i] = _gSenseR[i]; + } + + for (i = 0; i < _gDriveLineNum; i++) + { + _gResult[i + _gSenseLineNum] = _gDriveR[i]; + } + + for (i = 0; i < (_gSenseLineNum + _gDriveLineNum); i++) + { + if (_gResult[i] < nShortThreshold) + { + _gTestFailChannel[i] = 1; + } + else + { + _gTestFailChannel[i] = 0; + } + } + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + mdelay(300); + + DrvPlatformLyrEnableFingerTouchReport(); + + DBG("short test end\n"); + + DBG("nRetVal1 = %d, nRetVal2 = %d, nRetVal3 = %d, nRetVal4 = %d, nRetVal5 = %d\n",nRetVal1,nRetVal2,nRetVal3,nRetVal4,nRetVal5); + + if ((nRetVal1 != ITO_TEST_OK) && (nRetVal2 == ITO_TEST_OK) && (nRetVal3 == ITO_TEST_OK) && (nRetVal4 == ITO_TEST_OK) && (nRetVal5 == ITO_TEST_OK)) + { + return ITO_TEST_GET_TP_TYPE_ERROR; + } + else if ((nRetVal1 == ITO_TEST_OK) && ((nRetVal2 != ITO_TEST_OK) || (nRetVal3 != ITO_TEST_OK) || (nRetVal4 != ITO_TEST_OK) || (nRetVal5 != ITO_TEST_OK))) + { + return -1; + } + else + { + return ITO_TEST_OK; + } +} + +static void _DrvMpTestItoShortTestMsg28xxSetNoiseSensorMode(u8 nEnable) +{ + s16 j; + + DBG("*** %s() ***\n", __func__); + + if (nEnable) + { + RegSet16BitValueOn(0x1546, BIT4); + for (j = 0; j < 10; j++) + { + RegSet16BitValue(0x2148 + 2 * j, 0x0000); + } + RegSet16BitValue(0x215C, 0x1FFF); + } +} + +static void _DrvMpTestItoShortTestMsg28xxAnaFixPrs(u16 nOption) +{ + u16 nRegData = 0; + + DBG("*** %s() ***\n", __func__); + + RegSet16BitValue(0x0FE6, 0x0001); + + nRegData = RegGet16BitValue(0x1008); + nRegData &= 0x00F1; + nRegData |= (u16)((nOption << 1) & 0x000E); + RegSet16BitValue(0x1008, nRegData); +} + +static void _DrvMpTestItoShortTestMsg28xxAndChangeCDtime(u16 nTime1, u16 nTime2) +{ + DBG("*** %s() ***\n", __func__); + + RegSet16BitValue(0x1026, nTime1); + RegSet16BitValue(0x1030, nTime2); +} + +static void _DrvMpTestItoShortTestMsg28xxChangeANASetting(void) +{ + int i, nMappingItem; + u8 nChipVer; + + + DBG("*** %s() ***\n", __func__); + + // Stop mcu + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 + + nChipVer = RegGetLByteValue(0x1ECE); + //uint chip_ver = Convert.ToUInt16((uint)regdata[0]); //for U01 (SF shift). + + if (nChipVer != 0) + RegSetLByteValue(0x131E, 0x01); + + for (nMappingItem = 0; nMappingItem < 6; nMappingItem++) + { + /// sensor mux sram read/write base address / write length + RegSetLByteValue(0x2192, 0x00); + RegSetLByteValue(0x2102, 0x01); + RegSetLByteValue(0x2102, 0x00); + RegSetLByteValue(0x2182, 0x08); + RegSetLByteValue(0x2180, 0x08 * nMappingItem); + RegSetLByteValue(0x2188, 0x01); + + for (i = 0; i < 8; i++) + { + if (nMappingItem == 0 && nChipVer == 0x0) + { + RegSet16BitValue(0x218A, _gMuxMem_20_3E_0_Settings[2 * i]); + RegSet16BitValue(0x218C, _gMuxMem_20_3E_0_Settings[2 * i + 1]); + } + if ((nMappingItem == 1 && nChipVer == 0x0) || (nMappingItem == 0 && nChipVer != 0x0)) + { + RegSet16BitValue(0x218A, _gMuxMem_20_3E_1_Settings[2 * i]); + RegSet16BitValue(0x218C, _gMuxMem_20_3E_1_Settings[2 * i + 1]); + } + if ((nMappingItem == 2 && nChipVer == 0x0) || (nMappingItem == 1 && nChipVer != 0x0)) + { + RegSet16BitValue(0x218A, _gMuxMem_20_3E_2_Settings[2 * i]); + RegSet16BitValue(0x218C, _gMuxMem_20_3E_2_Settings[2 * i + 1]); + } + if ((nMappingItem == 3 && nChipVer == 0x0) || (nMappingItem == 2 && nChipVer != 0x0)) + { + RegSet16BitValue(0x218A, _gMuxMem_20_3E_3_Settings[2 * i]); + RegSet16BitValue(0x218C, _gMuxMem_20_3E_3_Settings[2 * i + 1]); + } + if ((nMappingItem == 4 && nChipVer == 0x0) || (nMappingItem == 3 && nChipVer != 0x0)) + { + RegSet16BitValue(0x218A, _gMuxMem_20_3E_4_Settings[2 * i]); + RegSet16BitValue(0x218C, _gMuxMem_20_3E_4_Settings[2 * i + 1]); + } + if ((nMappingItem == 5 && nChipVer == 0x0) || (nMappingItem == 4 && nChipVer != 0x0)) + { + RegSet16BitValue(0x218A, _gMuxMem_20_3E_5_Settings[2 * i]); + RegSet16BitValue(0x218C, _gMuxMem_20_3E_5_Settings[2 * i + 1]); + } + if (nMappingItem == 5 && nChipVer != 0x0) + { + RegSet16BitValue(0x218A, _gMuxMem_20_3E_6_Settings[2 * i]); + RegSet16BitValue(0x218C, _gMuxMem_20_3E_6_Settings[2 * i + 1]); + } + } + } +} + +static void _DrvMpTestItoReadSetting(u16 * pPad2Sense, u16 * pPad2Drive, u16 * pPad2GR) +{ + DBG("*** %s() ***\n", __func__); + + memcpy(_gMuxMem_20_3E_1_Settings, SHORT_N1_MUX_MEM_20_3E, sizeof(u16) * 16); + memcpy(_gMuxMem_20_3E_2_Settings, SHORT_N2_MUX_MEM_20_3E, sizeof(u16) * 16); + memcpy(_gMuxMem_20_3E_3_Settings, SHORT_S1_MUX_MEM_20_3E, sizeof(u16) * 16); + memcpy(_gMuxMem_20_3E_4_Settings, SHORT_S2_MUX_MEM_20_3E, sizeof(u16) * 16); + + if(SHORT_TEST_5_TYPE != 0) + { + memcpy(_gMuxMem_20_3E_5_Settings, SHORT_X_MUX_MEM_20_3E, sizeof(u16) * 16); + } + + memcpy(pPad2Sense, PAD_TABLE_SENSE, sizeof(u16) * _gSenseLineNum); + memcpy(pPad2Drive, PAD_TABLE_DRIVE, sizeof(u16) * _gDriveLineNum); + + if (GR_NUM != 0) + { + memcpy(pPad2GR, PAD_TABLE_GR, sizeof(u16) * GR_NUM); + } +} + +static s32 _DrvMpTestItoShortTestMsg28xxGetValueR(s32 * pTarget) +{ + s16 * pRawData = NULL; + u16 nSenNumBak = 0; + u16 nDrvNumBak = 0; + u16 nShift = 0; + s16 i, j; + + DBG("*** %s() ***\n", __func__); + + pRawData = kzalloc(sizeof(s16) * MAX_CHANNEL_SEN*2 * MAX_CHANNEL_DRV, GFP_KERNEL); + + if (_DrvMpTestItoTestMsg28xxGetMutualOneShotRawIIR(pRawData, &nSenNumBak, &nDrvNumBak) < 0) + { + DBG("*** Msg28xx Short Test# GetMutualOneShotRawIIR failed! ***\n"); + return -1; + } + + for (i = 0; i < 5; i++) + { + for (j = 0; j < 13; j++) + { + nShift = (u16)(j + 13 * i); + pTarget[nShift] = pRawData[i*MAX_CHANNEL_DRV+j]; + } + } + + kfree(pRawData); + + return 0; +} + +static s32 _DrvMpTestMsg28xxItoShortTest(u8 nItemID) +{ + s16 i; + u8 nRegData = 0; + u16 nAfeCoef = 0; + + DBG("*** %s() ***\n", __func__); + + // Stop mcu + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 + + ///set Subframe = 6 ; Sensor = 13 + RegSetLByteValue(0x130A, 0x6D); + RegSetLByteValue(0x1103, 0x06); + RegSetLByteValue(0x1016, 0x0C); + + RegSetLByteValue(0x1104, 0x0C); + RegSetLByteValue(0x100C, 0x0C); + RegSetLByteValue(0x1B10, 0x0C); + + /// adc analog+digital pipe delay, 60= 13 AFE. + RegSetLByteValue(0x102F, 0x60); + + ///trim: Fout 52M & 1.2V + RegSet16BitValue(0x1420, 0xA55A);//password + RegSet16BitValue(0x1428, 0xA55A);//password + RegSet16BitValue(0x1422, 0xFC4C);//go + + _DrvMpTestItoShortTestMsg28xxSetNoiseSensorMode(1); + _DrvMpTestItoShortTestMsg28xxAnaFixPrs(3); + _DrvMpTestItoShortTestMsg28xxAndChangeCDtime(0x007E, 0x001F); + + ///DAC overwrite + RegSet16BitValue(0x150C, 0x80A2); //bit15 //AE:3.5v for test + RegSet16BitValue(0x1520, 0xFFFF);//After DAC overwrite, output DC + RegSet16BitValue(0x1522, 0xFFFF); + RegSet16BitValue(0x1524, 0xFFFF); + RegSet16BitValue(0x1526, 0xFFFF); + + /// all AFE Cfb use defalt (50p) + RegSet16BitValue(0x1508, 0x1FFF);// all AFE Cfb: SW control + RegSet16BitValue(0x1550, 0x0000);// all AFE Cfb use defalt (50p) + + /// reg_afe_icmp disenable + RegSet16BitValue(0x1552, 0x0000); + + /// reg_hvbuf_sel_gain + RegSet16BitValue(0x1564, 0x0077); + + ///ADC: AFE Gain bypass + RegSet16BitValue(0x1260, 0x1FFF); + + ///reg_sel_ros disenable + RegSet16BitValue(0x156A, 0x0000); + + ///reg_adc_desp_invert disenable + RegSetLByteValue(0x1221, 0x00); + + + ///AFE coef + //protoHandle.MstarReadReg(mdkDevice, (uint)0x101A, ref regdata); + nRegData = RegGetLByteValue(0x101A); + nAfeCoef = 0x10000 / nRegData; + //protoHandle.MstarWriteReg_16(mdkDevice, (uint)0x13D6, AFE_coef); + RegSet16BitValue(0x13D6, nAfeCoef); + + /// AFE gain = 1X + //RegSet16BitValue(0x1318, 0x4440); + //RegSet16BitValue(0x131A, 0x4444); + //RegSet16BitValue(0x13D6, 0x2000); + + _DrvMpTestItoShortTestMsg28xxChangeANASetting(); + _DrvMpTestItoTestMsg28xxAnaSwReset(); + + if (_DrvMpTestItoShortTestMsg28xxGetValueR(_gDeltaC)<0) + { + DBG("*** Msg28xx Short Test# GetValueR failed! ***\n"); + return -1; + } + _ItoTestDebugShowArray(_gDeltaC, 128, -32, 10, 8); + + for (i = 0; i < 65; i++) // 13 AFE * 5 subframe + { + if (_gDeltaC[i] <= -1000 || _gDeltaC[i] >= (IIR_MAX)) + _gDeltaC[i] = 0x7FFF; + else + _gDeltaC[i] = abs(_gDeltaC[i]); + } + return 0; +} + +static s32 _DrvMpTestItoShortTestReadTestPins(u8 nItemID, u16 * pTestPins) +{ + u16 nCount = 0; + s16 i; + + DBG("*** %s() ***\n", __func__); + + switch (nItemID) + { + case 1: + case 11: + nCount = SHORT_N1_TEST_NUMBER; + memcpy(pTestPins, SHORT_N1_TEST_PIN, sizeof(u16) * nCount); + break; + case 2: + case 12: + nCount = SHORT_N2_TEST_NUMBER; + memcpy(pTestPins, SHORT_N2_TEST_PIN, sizeof(u16) * nCount); + break; + case 3: + case 13: + nCount = SHORT_S1_TEST_NUMBER; + memcpy(pTestPins, SHORT_S1_TEST_PIN, sizeof(u16) * nCount); + break; + case 4: + case 14: + nCount = SHORT_S2_TEST_NUMBER; + memcpy(pTestPins, SHORT_S2_TEST_PIN, sizeof(u16) * nCount); + break; + + case 5: + case 15: + if(SHORT_TEST_5_TYPE != 0) + { + nCount = SHORT_X_TEST_NUMBER; + memcpy(pTestPins, SHORT_X_TEST_PIN, sizeof(u16) * nCount); + } + break; + + case 0: + default: + return 0; + } + + for (i = nCount; i < MAX_CHANNEL_NUM; i++) + { + pTestPins[i] = 0xFFFF; //PIN_NO_ERROR + } + + return nCount; +} + +static s32 _DrvMpTestItoShortTestMsg28xxJudge(u8 nItemID, /*s8 pNormalTestResult[][2],*/ u16 pTestPinMap[][13], u16 * pTestPinCount) +{ + s32 nRetVal = 0; + u16 nTestPins[MAX_CHANNEL_NUM]; + s16 i; + + DBG("*** %s() ***\n", __func__); + + *pTestPinCount = _DrvMpTestItoShortTestReadTestPins(nItemID, nTestPins); + //_ItoTestDebugShowArray(nTestPins, *pTestPinCount, 16, 10, 8); + if (*pTestPinCount == 0) + { + if (nItemID == 5 && SHORT_TEST_5_TYPE == 0) + { + + } + else + { + DBG("*** Msg28xx Short Test# TestPinCount = 0 ***\n"); + return -1; + } + } + + /* + u16 nCountTestPin = 0; + for (i = 0; i < testPins.Length; i++) + { + if (pTestPins[i] != 0xFFFF) + nCountTestPin++; + } + */ + + for (i = (nItemID - 1) * 13; i < (13 * nItemID); i++) + { + _gResult[i] = _gDeltaC[i]; + } + + for (i = 0; i < *pTestPinCount; i++) + { + pTestPinMap[nItemID][i] = nTestPins[i]; + if (0 == _DrvMpTestItoTestCheckValueInRange(_gResult[i + (nItemID - 1) * 13], SHORTVALUE, -1000)) //0: false 1: true + { + //pNormalTestResult[nItemID][0] = -1; //-1: failed 0: success + // //0: golden 1: ratio + DBG("*** Msg28xx Short Test# ShortTestMsg28xxJudge failed! ***\n"); + nRetVal = -1; + } + } + + DBG("*** Msg28xx Short Test# nItemID = %d ***\n", nItemID); + //_ItoTestDebugShowArray(pTestPinMap[nItemID], *pTestPinCount, 16, 10, 8); + + return nRetVal; +} + +static s32 _DrvMpTestItoShortTestMsg28xxCovertRValue(s32 nValue) +{ + if (nValue >= IIR_MAX) + { + return 0; + } + + //return ((3.53 - 1.3) * 10 / (50 * (((float)nValue - 0 ) / 32768 * 1.1))); + return 223 * 32768 / (nValue * 550); +} + +static s32 _DrvMpTestMsg28xxItoShortTestEntry(void) +{ + //ItoTestResult_e nRetVal1 = ITO_TEST_OK, nRetVal2 = ITO_TEST_OK, nRetVal3 = ITO_TEST_OK, nRetVal4 = ITO_TEST_OK, nRetVal5 = ITO_TEST_OK; + s16 i = 0, j = 0; + //u16 nTestPinCount = 0; + //s32 nShortThreshold = 0; + u16 nPad2Drive[DRIVE_NUM] = {0}; + u16 nPad2Sense[SENSE_NUM] = {0}; + u16 nPad2GR[MAX_CHANNEL_NUM] = {0}; + s32 nResultTemp[(MAX_CHANNEL_SEN+MAX_CHANNEL_DRV)*2] = {0}; + + ///short test1 to 5. + //u16 nTestPinCount = 0; + u16 nTestItemLoop = 6; + u16 nTestItem = 0; + //s8 nNormalTestResult[8][2] = {0}; //0:golden 1:ratio + u16 nTestPinMap[6][13] = {{0}}; //6:max subframe 13:max afe + u16 nTestPinNum = 0; +// s32 nThrs = 0; + u32 nRetVal = 0; + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + _gSenseLineNum = SENSE_NUM; + _gDriveLineNum = DRIVE_NUM; + + DrvPlatformLyrDisableFingerTouchReport(); + DrvPlatformLyrTouchDeviceResetHw(); + + //reset_only + DbBusResetSlave(); + DbBusEnterSerialDebugMode(); + DbBusWaitMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + if(_DrvMpTestMsg28xxItoTestSwitchFwMode(MUTUAL_SINGLE_DRIVE) < 0) + { + DBG("*** Msg28xx Short Test# Switch FW mode failed! ***\n"); + return -1; + } + + _DrvMpTestItoReadSetting(nPad2Sense, nPad2Drive, nPad2GR); + + + //N1_ShortTest + if(_DrvMpTestMsg28xxItoShortTest(1) < 0) + { + DBG("*** Msg28xx Short Test# Get DeltaC failed! ***\n"); + return -1; + } + + for (nTestItem = 1; nTestItem < nTestItemLoop; nTestItem++) + { + DBG("*** Short test item %d ***\n", nTestItem); + if (_DrvMpTestItoShortTestMsg28xxJudge(nTestItem, /*nNormalTestResult,*/ nTestPinMap, &nTestPinNum) < 0) + { + DBG("*** Msg28xx Short Test# Item %d is failed! ***\n", nTestItem); + nRetVal = -1; + } + + if (nTestItem == 1 || nTestItem == 2 || (nTestItem == 5 && SHORT_TEST_5_TYPE == 1)) + { + for (i = 0; i < nTestPinNum; i++) + { + for (j = 0; j < _gSenseLineNum; j++) + { + if (nTestPinMap[nTestItem][i] == nPad2Sense[j]) + { + //_gSenseR[j] = _DrvMpTestItoShortTestMsg28xxCovertRValue(_gResult[i + (nTestItem - 1) * 13]); + _gSenseR[j] = _gResult[i + (nTestItem - 1) * 13]; //change comparison way because float computing in driver is prohibited + } + } + } + } + + if (nTestItem == 3 || nTestItem == 4 || (nTestItem == 5 && SHORT_TEST_5_TYPE == 2)) + { + for (i = 0; i < nTestPinNum; i++) + { + for (j = 0; j < _gDriveLineNum; j++) + { + if (nTestPinMap[nTestItem][i] == nPad2Drive[j]) + { + //_gDriveR[j] = _DrvMpTestItoShortTestMsg28xxCovertRValue(_gResult[i + (nTestItem - 1) * 13]); + _gDriveR[j] = _gResult[i + (nTestItem - 1) * 13]; //change comparison way because float computing in driver is prohibited + } + } + } + } + + if (nTestItem == 5 && SHORT_TEST_5_TYPE == 3) + { + for (i = 0; i < nTestPinNum; i++) + { + for (j = 0; j < GR_NUM; j++) + { + if (nTestPinMap[nTestItem][i] == nPad2GR[j]) + { + //_gGRR[j] = _DrvMpTestItoShortTestMsg28xxCovertRValue(_gResult[i + (nTestItem - 1) * 13]); + _gGRR[j] = _gResult[i + (nTestItem - 1) * 13]; //change comparison way because float computing in driver is prohibited + } + } + } + } + } + + for (i = 0; i < _gSenseLineNum; i++) + { + nResultTemp[i] = _gSenseR[i]; + } + + //for (i = 0; i < _gDriveLineNum - 1; i++) + for (i = 0; i < _gDriveLineNum; i++) + { + nResultTemp[i + _gSenseLineNum] = _gDriveR[i]; + } + + //nThrs = _DrvMpTestItoShortTestMsg28xxCovertRValue(SHORTVALUE); + for (i = 0; i < _gSenseLineNum + _gDriveLineNum; i++) + { + if(nResultTemp[i] == 0) + { + _gResult[i] = _DrvMpTestItoShortTestMsg28xxCovertRValue(1); + } + else + { + _gResult[i] = _DrvMpTestItoShortTestMsg28xxCovertRValue(nResultTemp[i]); + } + } + + _ItoTestDebugShowArray(_gResult, _gSenseLineNum + _gDriveLineNum, -32, 10, 8); + //for (i = 0; i < (_gSenseLineNum + _gDriveLineNum - 1); i++) + for (i = 0; i < (_gSenseLineNum + _gDriveLineNum); i++) + { + if (nResultTemp[i] > SHORTVALUE) //change comparison way because float computing in driver is prohibited + { + _gTestFailChannel[i] = 1; + _gTestFailChannelCount++; + nRetVal = -1; + } + else + { + _gTestFailChannel[i] = 0; + } + } + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + mdelay(300); + + DrvPlatformLyrEnableFingerTouchReport(); + return nRetVal; +} + +static s32 _DrvMpTestItoShortTest(void) +{ + s32 nRetVal = -1; + + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG26XXM) + { + return _DrvMpTestMsg26xxmItoShortTestEntry(); + } + else if(g_ChipType == CHIP_TYPE_MSG28XX) + { + return _DrvMpTestMsg28xxItoShortTestEntry(); + } + + return nRetVal; +} + +static s32 _DrvMpTestItoTestMsg26xxmGetWaterProofOneShotRawIir(u16 wszResultData[]) +{ + u16 nRegData; + u16 i; + u16 nTemp; + u8 szDbBusTxData[3]; + u32 nGetdataNum = 12; + u8 szShotData[24] = {0}; //Get 12 FIR data + + DBG("*** %s() ***\n", __func__); + + nTemp = RegGet16BitValue(0x3D08); //bank:intr_ctrl, addr:h0004 + nTemp &= (~(BIT8)); + RegSet16BitValue(0x3D08, nTemp); + //RegSet16BitValueOff(0x3D08, BIT8); ///FIQ_E_FRAME_READY_MASK + + _DrvMpTestItoTestMsg26xxmEnableAdcOneShot(); + + nRegData = 0; + while (0x0000 == (nRegData & BIT8)) + { + nRegData = RegGet16BitValue(0x3D18); //bank:intr_ctrl, addr:h000c + } + + for (i = 0; i < nGetdataNum * 2; i ++) + { + szShotData[i] = 0; + } + + mdelay(200); + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x13; //bank:fir, addr:h0021 + szDbBusTxData[2] = 0x42; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3); + IicReadData(SLAVE_I2C_ID_DBBUS, &szShotData[0], 24); //12 + + for (i = 0; i < nGetdataNum; i ++) + { + nRegData = (u16)(szShotData[i * 2] | szShotData[i * 2 + 1] << 8); + wszResultData[i] = (short)nRegData; + + //DBG("wszResultData[%d] = %x\t", i , wszResultData[i]); + } + + nTemp = RegGet16BitValue(0x3D08); //bank:intr_ctrl, addr:h0004 + nTemp |= (BIT8 | BIT4); + RegSet16BitValue(0x3D08, nTemp); + + return 0; +} + +static s32 _DrvMpTestItoTestMsg26xxmGetWaterProofDeltaC(s32 *pTarget) +{ + u16 wszRawData[12]; + u16 i; + + DBG("*** %s() ***\n", __func__); + + if (_DrvMpTestItoTestMsg26xxmGetWaterProofOneShotRawIir(wszRawData) < 0) + { + DBG("*** Msg26xxm WaterProof Test# GetMutualOneShotRawIIR failed! ***\n"); + return -1; + } + + for (i = 0; i < 12; i ++) + { + pTarget[i] = (s16)wszRawData[i]; + } + + return 0; +} + +static s32 _DrvMpTestMsg26xxmItoWaterProofTest(void) +{ + DBG("*** %s() ***\n", __func__); + + // Stop mcu + //RegSet16BitValue(0x0FE6, 0x0001); + + _DrvMpTestItoTestMsg26xxmAnaSwReset(); + + _DrvMpTestItoShortTestMsg26xxmAndChangeCDtime(WATERPROOF_Charge_X, WATERPROOF_Dump_X); + + if(_DrvMpTestItoTestMsg26xxmGetWaterProofDeltaC(_gDeltaC) < 0) + { + DBG("*** Msg26xxm WaterProof Test# GetWaterDeltaC failed! ***\n"); + return -1; + } + + return 0; +} + +static s32 _DrvMpTestMsg26xxmItoWaterProofTestJudge(void) +{ + u16 i; + u32 nGetdataNum = 12; + + DBG("*** %s() ***\n", __func__); + + for (i = 0; i < nGetdataNum; i ++) + { + _gResultWater[i] = 0; + } + + for (i = 0; i < nGetdataNum; i++) + { + _gResultWater[i] = _gDeltaC[i]; + } + + return 0; +} + +s32 _DrvMpTestMsg26xxmItoWaterProofTestEntry(void) +{ + s32 nRetVal = 0; + u32 nRegData = 0; + u16 i = 0; + s32 nResultTemp[12] = {0}; + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + _gWaterProofNum = 12; + + DrvPlatformLyrDisableFingerTouchReport(); + + DrvPlatformLyrTouchDeviceResetHw(); + + //auto detetc fw version to decide switch fw mode + if (_gTestAutoSwitchFlag!=0) + { + _DrvMpTestItoTestMsg26xxmGetSwitchFlag(); + } + + DbBusResetSlave(); + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + if(_DrvMpTestItoTestMsg26xxmSwitchMode(_gTestSwitchMode, WATERPROOF) < 0) + { + DBG("*** Msg26xxm WaterProof Test# Switch FW mode failed! ***\n"); + return -1; + } + + _DrvMpTestItoTestMsg26xxmMcuStop(); + + nRegData = RegGet16BitValue(0x3CE4); + + if (nRegData == 0x8bbd)//// if polling 0X8BBD, means the FW is NOT supporting WP. + { + DBG("*** Msg26xxm WaterProof Test# No supporting this function! ***\n"); + return -1; + } + + mdelay(10); + + for (i = 0; i < MAX_MUTUAL_NUM; i ++) + { + _gTestFailChannel[i] = 0; + } + + _gTestFailChannelCount = 0; // Reset _gTestFailChannelCount to 0 before test start + + if(_DrvMpTestMsg26xxmItoWaterProofTest() < 0) + { + DBG("*** Msg26xxm WaterProof Test# Get DeltaC failed! ***\n"); + return -1; + } + + _DrvMpTestMsg26xxmItoWaterProofTestJudge(); + + for (i = 0; i < 12; i++) + { + nResultTemp[i] = _gResultWater[i]; + } + + _ItoTestDebugShowArray(_gResultWater, 12, -32, 10, 8); + for (i = 0; i < 12; i++) + { + if (nResultTemp[i] < WATERPROOFVALUE) //change comparison way because float computing in driver is prohibited + { + _gTestFailChannel[i] = 1; + _gTestFailChannelCount++; + nRetVal = -1; + } + else + { + _gTestFailChannel[i] = 0; + } + } + + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + mdelay(300); + + DrvPlatformLyrEnableFingerTouchReport(); + + return nRetVal; +} + +static s32 _DrvMpTestItoWaterProofTestMsg28xxTriggerWaterProofOneShot(s16 * pResultData, u32 nDelay) +{ + u16 nAddr = 0x5000, nAddrNextSF = 0x1A4; + u16 nSF = 0, nAfeOpening = 0, nDriOpening = 0; + u16 nMaxDataNumOfOneSF = 0; + u16 nDriMode = 0; + u16 i; + u8 nRegData = 0; + u8 nShotData[390] = {0};//13*15*2 + u16 nRegDataU16 = 0; + + DBG("*** %s() ***\n", __func__); + + nRegData = RegGetLByteValue(0x130A); + nSF = nRegData>>4; + nAfeOpening = nRegData & 0x0f; + + if(nSF == 0) + { + return -1; + } + + nRegData = RegGetLByteValue(0x100B); + nDriMode = nRegData; + + nRegData = RegGetLByteValue(0x1312); + nDriOpening = nRegData; + + DBG("*** Msg28xx WaterProof Test# TriggerWaterProofOneShot nSF=%d, nAfeOpening=%d, nDriMode=%d, nDriOpening=%d. ***\n", nSF, nAfeOpening, nDriMode, nDriOpening); + + nMaxDataNumOfOneSF = nAfeOpening * nDriOpening; + + RegSet16BitValueOff(0x3D08, BIT8); ///FIQ_E_FRAME_READY_MASK + + ///polling frame-ready interrupt status + _DrvMpTestItoTestMsg28xxEnableAdcOneShot(); + + while (0x0000 == (nRegDataU16 & BIT8)) + { + nRegDataU16 = RegGet16BitValue(0x3D18); + } + + RegSet16BitValueOn(0x3D08, BIT8); ///FIQ_E_FRAME_READY_MASK + RegSet16BitValueOn(0x3D08, BIT4); ///FIQ_E_TIMER0_MASK + + if (PATTERN_TYPE == 1) // for short test + { + //s16 nShortResultData[nSF][nAfeOpening]; + + /// get ALL raw data + _DrvMpTestItoTestDBBusReadDQMemStart(); + RegGetXBitValue(nAddr, nShotData, 16, MAX_I2C_TRANSACTION_LENGTH_LIMIT); + _DrvMpTestItoTestDBBusReadDQMemEnd(); + + //_ItoTestDebugShowArray(nShotData, 26, 8, 16, 16); + for (i = 0; i < 8; i++) + { + pResultData[i] = (s16)(nShotData[2 * i] | nShotData[2 * i + 1] << 8); + } + } + else if(PATTERN_TYPE == 3 || PATTERN_TYPE == 4)// for open test + { + //s16 nOpenResultData[nSF * nAfeOpening][nDriOpening]; + + if(nSF >4) + nSF = 4; + + /// get ALL raw data, combine and handle datashift. + for (i = 0; i < nSF; i++) + { + _DrvMpTestItoTestDBBusReadDQMemStart(); + RegGetXBitValue(nAddr + i * nAddrNextSF, nShotData, 16, MAX_I2C_TRANSACTION_LENGTH_LIMIT); + _DrvMpTestItoTestDBBusReadDQMemEnd(); + + //_ItoTestDebugShowArray(nShotData, 390, 8, 10, 16); + pResultData[2 * i] = (s16)(nShotData[4 * i] | nShotData[4 * i + 1] << 8); + pResultData[2 * i + 1] = (s16)(nShotData[4 * i + 2] | nShotData[4 * i + 3] << 8); + } + } + else + { + return -1; + } + + return 0; +} + +static s32 _DrvMpTestItoWaterProofTesMsg28xxtGetWaterProofOneShotRawIIR(s16 * pRawDataWP, u32 nDelay) +{ + return _DrvMpTestItoWaterProofTestMsg28xxTriggerWaterProofOneShot(pRawDataWP, nDelay); +} + +static s32 _DrvMpTestItoWaterProofTestMsg28xxGetDeltaCWP(s32 *pTarget, s8 nSwap, u32 nDelay) +{ + s16 nRawDataWP[12] = {0}; + s16 i; + + DBG("*** %s() ***\n", __func__); + + if(_DrvMpTestItoWaterProofTesMsg28xxtGetWaterProofOneShotRawIIR(nRawDataWP, nDelay) < 0) + { + DBG("*** Msg28xx Open Test# GetMutualOneShotRawIIR failed! ***\n"); + return -1; + } + + for (i = 0; i < _gWaterProofNum; i++) + { + pTarget[i] = nRawDataWP[i]; + } + + return 0; +} + +static s32 _DrvMpTestMsg28xxItoWaterProofTest(u32 nDelay) +{ + DBG("*** %s() ***\n", __func__); + + // Stop mcu + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 + _DrvMpTestItoTestMsg28xxAnaSwReset(); + + if (_DrvMpTestItoWaterProofTestMsg28xxGetDeltaCWP(_gDeltaCWater, -1, nDelay)<0) + { + DBG("*** Msg28xx WaterProof Test# GetDeltaCWP failed! ***\n"); + return -1; + } + + _ItoTestDebugShowArray(_gDeltaCWater, 12, -32, 10, 16); + + return 0; +} + +static void _DrvMpTestMsg28xxItoWaterProofTestMsgJudge(void) +{ + int i; + + DBG("*** %s() ***\n", __func__); + + for (i = 0; i < _gWaterProofNum; i++) + { + _gResultWater[i] = abs(_gDeltaCWater[i]); + } +} + +static s32 _DrvMpTestMsg28xxItoWaterProofTestEntry(void) +{ + s16 i = 0; + u32 nRetVal = 0; + u16 nRegDataWP = 0; + u32 nDelay = 0; + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + _gWaterProofNum = 12; + + DrvPlatformLyrDisableFingerTouchReport(); + DrvPlatformLyrTouchDeviceResetHw(); + + //reset_only + DbBusResetSlave(); + DbBusEnterSerialDebugMode(); + DbBusWaitMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + if(_DrvMpTestMsg28xxItoTestSwitchFwMode(WATERPROOF) < 0) + { + DBG("*** Msg28xx WaterProof Test# Switch FW mode failed! ***\n"); + return -1; + } + + nRegDataWP = RegGet16BitValue(0x1402); + if(nRegDataWP == 0x8BBD) + { + DBG("*** Msg28xx WaterProof Test# FW don't support waterproof! ***\n"); + } + + if(_DrvMpTestMsg28xxItoWaterProofTest(nDelay) < 0) + { + DBG("*** Msg28xx WaterProof Test# Get DeltaC failed! ***\n"); + return -1; + } + + _DrvMpTestMsg28xxItoWaterProofTestMsgJudge(); + + for (i = 0; i < _gWaterProofNum; i++) + { + if (_gResultWater[i] > WATERVALUE) //change comparison way because float computing in driver is prohibited + { + _gTestFailChannel[i] = 1; + _gTestFailChannelCount++; + nRetVal = -1; + } + else + { + _gTestFailChannel[i] = 0; + } + } + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + mdelay(300); + + DrvPlatformLyrEnableFingerTouchReport(); + return nRetVal; +} + +static s32 _DrvMpTestItoWaterProofTest(void) +{ + s32 nRetVal = -1; + + DBG("*** %s() ***\n", __func__); + + if(g_ChipType == CHIP_TYPE_MSG26XXM) + { + return _DrvMpTestMsg26xxmItoWaterProofTestEntry(); + } + else if(g_ChipType == CHIP_TYPE_MSG28XX) + { + return _DrvMpTestMsg28xxItoWaterProofTestEntry(); + } + + return nRetVal; +} + +static void _DrvMpTestItoTestDoWork(struct work_struct *pWork) +{ + s32 nRetVal = 0; + + DBG("*** %s() _gIsInMpTest = %d, _gTestRetryCount = %d ***\n", __func__, _gIsInMpTest, _gTestRetryCount); + + if (_gItoTestMode == ITO_TEST_MODE_OPEN_TEST) + { + nRetVal = _DrvMpTestItoOpenTest(); + } + else if (_gItoTestMode == ITO_TEST_MODE_SHORT_TEST) + { + nRetVal = _DrvMpTestItoShortTest(); + } + else if (_gItoTestMode == ITO_TEST_MODE_WATERPROOF_TEST) + { + nRetVal = _DrvMpTestItoWaterProofTest(); + } + else + { + DBG("*** Undefined Mp Test Mode = %d ***\n", _gItoTestMode); + return; + } + + DBG("*** ctp mp test result = %d ***\n", nRetVal); + + if (nRetVal == 0) + { + _gCtpMpTestStatus = ITO_TEST_OK; //PASS + _gIsInMpTest = 0; + DBG("mp test success\n"); + } + else + { + _gTestRetryCount --; + if (_gTestRetryCount > 0) + { + DBG("_gTestRetryCount = %d\n", _gTestRetryCount); + queue_work(_gCtpMpTestWorkQueue, &_gCtpItoTestWork); + } + else + { + if (nRetVal == -1) + { + _gCtpMpTestStatus = ITO_TEST_FAIL; + } + else + { + _gCtpMpTestStatus = ITO_TEST_UNDEFINED_ERROR; + } + + _gIsInMpTest = 0; + DBG("mp test failed\n"); + } + } +} + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +s32 DrvMpTestGetTestResult(void) +{ + DBG("*** %s() ***\n", __func__); + DBG("_gCtpMpTestStatus = %d\n", _gCtpMpTestStatus); + + return _gCtpMpTestStatus; +} + +void DrvMpTestGetTestFailChannel(ItoTestMode_e eItoTestMode, u8 *pFailChannel, u32 *pFailChannelCount) +{ + u32 i; + + DBG("*** %s() ***\n", __func__); + DBG("_gTestFailChannelCount = %d\n", _gTestFailChannelCount); + + for (i = 0; i < MAX_MUTUAL_NUM; i ++) + { + pFailChannel[i] = _gTestFailChannel[i]; + } + + *pFailChannelCount = MAX_MUTUAL_NUM; // Return the test result of all channels, APK will filter out the fail channels. +} + +void DrvMpTestGetTestDataLog(ItoTestMode_e eItoTestMode, u8 *pDataLog, u32 *pLength) +{ + u32 i, j, k; + + DBG("*** %s() ***\n", __func__); + + if (eItoTestMode == ITO_TEST_MODE_OPEN_TEST) + { + k = 0; + + for (j = 0; j < _gDriveLineNum; j ++) +// for (j = 0; j < (_gDriveLineNum-1); j ++) + { + for (i = 0; i < _gSenseLineNum; i ++) + { +// DBG("\nDrive%d, Sense%d, Value = %d\t", j, i, _gResult[i * _gDriveLineNum + j]); // add for debug + + if (_gResult[i * _gDriveLineNum + j] >= 0) + { + pDataLog[k*5] = 0; // + : a positive number + } + else + { + pDataLog[k*5] = 1; // - : a negative number + } + + pDataLog[k*5+1] = (_gResult[i * _gDriveLineNum + j] >> 24) & 0xFF; + pDataLog[k*5+2] = (_gResult[i * _gDriveLineNum + j] >> 16) & 0xFF; + pDataLog[k*5+3] = (_gResult[i * _gDriveLineNum + j] >> 8) & 0xFF; + pDataLog[k*5+4] = (_gResult[i * _gDriveLineNum + j]) & 0xFF; + + k ++; + } + } + + DBG("\nk = %d\n", k); + + *pLength = k*5; + } + else if (eItoTestMode == ITO_TEST_MODE_SHORT_TEST) + { + k = 0; + + for (i = 0; i < (_gDriveLineNum-1 + _gSenseLineNum); i++) + { + if (_gResult[i] >= 0) + { + pDataLog[k*5] = 0; // + : a positive number + } + else + { + pDataLog[k*5] = 1; // - : a negative number + } + + pDataLog[k*5+1] = (_gResult[i] >> 24) & 0xFF; + pDataLog[k*5+2] = (_gResult[i] >> 16) & 0xFF; + pDataLog[k*5+3] = (_gResult[i] >> 8) & 0xFF; + pDataLog[k*5+4] = (_gResult[i]) & 0xFF; + k ++; + } + + DBG("\nk = %d\n", k); + + *pLength = k*5; + } + else if (eItoTestMode == ITO_TEST_MODE_WATERPROOF_TEST) + { + k = 0; + + for (i = 0; i < _gWaterProofNum; i++) + { + if (_gResultWater[i] >= 0) + { + pDataLog[k*5] = 0; // + : a positive number + } + else + { + pDataLog[k*5] = 1; // - : a negative number + } + + pDataLog[k*5+1] = (_gResultWater[i] >> 24) & 0xFF; + pDataLog[k*5+2] = (_gResultWater[i] >> 16) & 0xFF; + pDataLog[k*5+3] = (_gResultWater[i] >> 8) & 0xFF; + pDataLog[k*5+4] = (_gResultWater[i]) & 0xFF; + k ++; + } + + DBG("\nk = %d\n", k); + + *pLength = k*5; + } + else + { + DBG("*** Undefined MP Test Mode ***\n"); + } +} + +void DrvMpTestGetTestScope(TestScopeInfo_t *pInfo) +{ + DBG("*** %s() ***\n", __func__); + + pInfo->nMy = _gDriveLineNum; + pInfo->nMx = _gSenseLineNum; + + DBG("*** My = %d ***\n", pInfo->nMy); + DBG("*** Mx = %d ***\n", pInfo->nMx); +} + +void DrvMpTestScheduleMpTestWork(ItoTestMode_e eItoTestMode) +{ + DBG("*** %s() ***\n", __func__); + + if (_gIsInMpTest == 0) + { + DBG("ctp mp test start\n"); + + _gItoTestMode = eItoTestMode; + _gIsInMpTest = 1; + _gTestRetryCount = CTP_MP_TEST_RETRY_COUNT; + _gCtpMpTestStatus = ITO_TEST_UNDER_TESTING; + + queue_work(_gCtpMpTestWorkQueue, &_gCtpItoTestWork); + } +} + +void DrvMpTestCreateMpTestWorkQueue(void) +{ + DBG("*** %s() ***\n", __func__); + + _gCtpMpTestWorkQueue = create_singlethread_workqueue("ctp_mp_test"); + INIT_WORK(&_gCtpItoTestWork, _DrvMpTestItoTestDoWork); +} + +#endif //CONFIG_ENABLE_ITO_MP_TEST +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_mutual_mp_test.h b/drivers/input/touchscreen/msg2233/mstar_drv_mutual_mp_test.h new file mode 100644 index 00000000..c1ca9e48 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_mutual_mp_test.h @@ -0,0 +1,94 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_mutual_mp_test.h + * + * @brief This file defines the interface of touch screen + * + * + */ + +#ifndef __MSTAR_DRV_MUTUAL_MP_TEST_H__ +#define __MSTAR_DRV_MUTUAL_MP_TEST_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include "mstar_drv_common.h" + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) +#ifdef CONFIG_ENABLE_ITO_MP_TEST + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR CONSTANT DEFINITION */ +/*--------------------------------------------------------------------------*/ + +#define MAX_CHANNEL_NUM 38 +#define MAX_CHANNEL_DRV 30 +#define MAX_CHANNEL_SEN 20 +#define MAX_MUTUAL_NUM (MAX_CHANNEL_DRV * MAX_CHANNEL_SEN) +#define ANA3_MUTUAL_CSUB_NUMBER (192) //192 = 14 * 13 + 10 +#define ANA4_MUTUAL_CSUB_NUMBER (MAX_MUTUAL_NUM - ANA3_MUTUAL_CSUB_NUMBER) //200 = 392 - 192 +#define FILTER1_MUTUAL_DELTA_C_NUMBER (190) //190 = (6 * 14 + 11) * 2 +#define FILTER2_MUTUAL_DELTA_C_NUMBER (594) //594 = (MAX_MUTUAL_NUM - (6 * 14 + 11)) * 2 + +#define FIR_THRESHOLD 6553 +#define FIR_RATIO 50 //25 + +#define IIR_MAX 32600 +#define SHORT_VALUE 2000 +#define PIN_GUARD_RING (38) + +#define CTP_MP_TEST_RETRY_COUNT (3) + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR MACRO DEFINITION */ +/*--------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------*/ +/* DATA TYPE DEFINITION */ +/*--------------------------------------------------------------------------*/ + +typedef struct +{ + u8 nMy; + u8 nMx; +} TestScopeInfo_t; + +/*--------------------------------------------------------------------------*/ +/* GLOBAL VARIABLE DEFINITION */ +/*--------------------------------------------------------------------------*/ + + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +extern void DrvMpTestCreateMpTestWorkQueue(void); +extern void DrvMpTestGetTestDataLog(ItoTestMode_e eItoTestMode, u8 *pDataLog, u32 *pLength); +extern void DrvMpTestGetTestFailChannel(ItoTestMode_e eItoTestMode, u8 *pFailChannel, u32 *pFailChannelCount); +extern s32 DrvMpTestGetTestResult(void); +extern void DrvMpTestGetTestScope(TestScopeInfo_t *pInfo); +extern void DrvMpTestScheduleMpTestWork(ItoTestMode_e eItoTestMode); + +#endif //CONFIG_ENABLE_ITO_MP_TEST +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC + +#endif /* __MSTAR_DRV_MUTUAL_MP_TEST_H__ */ \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_platform_interface.c b/drivers/input/touchscreen/msg2233/mstar_drv_platform_interface.c new file mode 100644 index 00000000..7b9d8457 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_platform_interface.c @@ -0,0 +1,448 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_platform_interface.c + * + * @brief This file defines the interface of touch screen + * + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_platform_interface.h" +#include "mstar_drv_main.h" +#include "mstar_drv_ic_fw_porting_layer.h" +#include "mstar_drv_platform_porting_layer.h" +#include "mstar_drv_utility_adaption.h" +#include + + +#ifdef CONFIG_ENABLE_HOTKNOT +#include "mstar_drv_hotknot.h" +#endif //CONFIG_ENABLE_HOTKNOT + +/*=============================================================*/ +// EXTERN VARIABLE DECLARATION +/*=============================================================*/ + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +extern u32 g_GestureWakeupMode[2]; +extern u8 g_GestureWakeupFlag; + +extern int _gIrq; + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +extern u8 g_GestureDebugFlag; +extern u8 g_GestureDebugMode; +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION +extern u8 g_EnableTpProximity; +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +#ifdef CONFIG_ENABLE_GLOVE_MODE +extern u8 g_IsEnableGloveMode; +extern u8 g_IsGloveModeOpen; +#endif //CONFIG_ENABLE_GLOVE_MODE + +extern u8 g_IsUpdateFirmware; +extern u8 *_gFwVersion; + +/*=============================================================*/ +// GLOBAL VARIABLE DEFINITION +/*=============================================================*/ + +extern struct input_dev *g_InputDevice; + +#ifdef CONFIG_ENABLE_HOTKNOT +extern u8 g_HotKnotState; +extern u32 SLAVE_I2C_ID_DWI2C; +#endif //CONFIG_ENABLE_HOTKNOT + +extern u8 IS_FIRMWARE_DATA_LOG_ENABLED; + +/*=============================================================*/ +// LOCAL VARIABLE DEFINITION +/*=============================================================*/ + +#ifdef CONFIG_ENABLE_HOTKNOT +static u8 _gAMStartCmd[4] = {HOTKNOT_SEND, ADAPTIVEMOD_BEGIN, 0, 0}; +#endif //CONFIG_ENABLE_HOTKNOT + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +#ifdef CONFIG_ENABLE_NOTIFIER_FB +int MsDrvInterfaceTouchDeviceFbNotifierCallback(struct notifier_block *pSelf, unsigned long nEvent, void *pData) +{ + struct fb_event *pEventData = pData; + int *pBlank; + + if (pEventData && pEventData->data && nEvent == FB_EVENT_BLANK) + { + pBlank = pEventData->data; + + if (*pBlank == FB_BLANK_UNBLANK) + { + DBG("*** %s() TP Resume ***\n", __func__); + + if (g_IsUpdateFirmware != 0) // Check whether update frimware by sw id is finished + { + DBG("Not Allow to power on/off touch ic while update firmware by sw id.\n"); + return 0; + } + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION + if (g_EnableTpProximity == 1) + { + DBG("g_EnableTpProximity = %d\n", g_EnableTpProximity); + return 0; + } +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +#ifdef CONFIG_ENABLE_HOTKNOT + if (g_HotKnotState != HOTKNOT_BEFORE_TRANS_STATE && g_HotKnotState != HOTKNOT_TRANS_STATE && g_HotKnotState != HOTKNOT_AFTER_TRANS_STATE) +#endif //CONFIG_ENABLE_HOTKNOT + { +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE + if (g_GestureDebugMode == 1) + { + DrvIcFwLyrCloseGestureDebugMode(); + } +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + + if (g_GestureWakeupFlag == 1) + { + DrvIcFwLyrCloseGestureWakeup(); + } + else + { + DrvPlatformLyrEnableFingerTouchReport(); + } + } +#ifdef CONFIG_ENABLE_HOTKNOT + else // Enable touch in hotknot transfer mode + { + DrvPlatformLyrEnableFingerTouchReport(); + } +#endif //CONFIG_ENABLE_HOTKNOT +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_HOTKNOT + if (g_HotKnotState != HOTKNOT_BEFORE_TRANS_STATE && g_HotKnotState != HOTKNOT_TRANS_STATE && g_HotKnotState != HOTKNOT_AFTER_TRANS_STATE) +#endif //CONFIG_ENABLE_HOTKNOT + { + DrvPlatformLyrTouchDevicePowerOn(); + } + +#ifdef CONFIG_ENABLE_GLOVE_MODE + if (g_IsEnableGloveMode == 1) + { + if (g_IsGloveModeOpen == 0) + { + DrvIcFwCtrlOpenGloveMode(); + } + } +#endif //CONFIG_ENABLE_GLOVE_MODE + + if (IS_FIRMWARE_DATA_LOG_ENABLED) + { + DrvIcFwLyrRestoreFirmwareModeToLogDataMode(); // Mark this function call for avoiding device driver may spend longer time to resume from suspend state. + } //IS_FIRMWARE_DATA_LOG_ENABLED + +#ifndef CONFIG_ENABLE_GESTURE_WAKEUP + DrvPlatformLyrEnableFingerTouchReport(); +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + } + else if (*pBlank == FB_BLANK_POWERDOWN) + { + DBG("*** %s() TP Suspend ***\n", __func__); + + if (g_IsUpdateFirmware != 0) // Check whether update frimware by sw id is finished + { + DBG("Not Allow to power on/off touch ic while update firmware by sw id.\n"); + return 0; + } + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION + if (g_EnableTpProximity == 1) + { + DBG("g_EnableTpProximity = %d\n", g_EnableTpProximity); + return 0; + } +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +#ifdef CONFIG_ENABLE_HOTKNOT + if (g_HotKnotState != HOTKNOT_BEFORE_TRANS_STATE && g_HotKnotState != HOTKNOT_TRANS_STATE && g_HotKnotState != HOTKNOT_AFTER_TRANS_STATE) +#endif //CONFIG_ENABLE_HOTKNOT + { + if (g_GestureWakeupMode[0] != 0x00000000 || g_GestureWakeupMode[1] != 0x00000000) + { + DrvIcFwLyrOpenGestureWakeup(&g_GestureWakeupMode[0]); + return 0; + } + } +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_HOTKNOT + if (g_HotKnotState == HOTKNOT_BEFORE_TRANS_STATE || g_HotKnotState == HOTKNOT_TRANS_STATE || g_HotKnotState == HOTKNOT_AFTER_TRANS_STATE) + { + IicWriteData(SLAVE_I2C_ID_DWI2C, &_gAMStartCmd[0], 4); + } +#endif //CONFIG_ENABLE_HOTKNOT + +#ifdef CONFIG_ENABLE_GLOVE_MODE + if (g_IsEnableGloveMode == 1) + { + if (g_IsGloveModeOpen == 1) + { + DrvIcFwCtrlCloseGloveMode(); + } + } +#endif //CONFIG_ENABLE_GLOVE_MODE + + DrvPlatformLyrFingerTouchReleased(0, 0); // Send touch end for clearing point touch + input_sync(g_InputDevice); + + DrvPlatformLyrDisableFingerTouchReport(); + +#ifdef CONFIG_ENABLE_HOTKNOT + if (g_HotKnotState != HOTKNOT_BEFORE_TRANS_STATE && g_HotKnotState != HOTKNOT_TRANS_STATE && g_HotKnotState != HOTKNOT_AFTER_TRANS_STATE) +#endif //CONFIG_ENABLE_HOTKNOT + { + DrvPlatformLyrTouchDevicePowerOff(); + } + } + } + + return 0; +} + +#else + +void MsDrvInterfaceTouchDeviceSuspend(struct early_suspend *pSuspend) +{ + DBG("*** %s() ***\n", __func__); + + if (g_IsUpdateFirmware != 0) // Check whether update frimware by sw id is finished + { + DBG("Not Allow to power on/off touch ic while update firmware by sw id.\n"); + return; + } + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION + if (g_EnableTpProximity == 1) + { + DBG("g_EnableTpProximity = %d\n", g_EnableTpProximity); + return; + } +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + irq_set_irq_type(_gIrq,IRQF_TRIGGER_HIGH | IRQF_NO_SUSPEND | IRQF_ONESHOT); + +#ifdef CONFIG_ENABLE_HOTKNOT + if (g_HotKnotState != HOTKNOT_BEFORE_TRANS_STATE && g_HotKnotState != HOTKNOT_TRANS_STATE && g_HotKnotState != HOTKNOT_AFTER_TRANS_STATE) +#endif //CONFIG_ENABLE_HOTKNOT + { + if (g_GestureWakeupMode[0] != 0x00000000 || g_GestureWakeupMode[1] != 0x00000000) + { + DrvIcFwLyrOpenGestureWakeup(&g_GestureWakeupMode[0]); + return; + } + } +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_HOTKNOT + if (g_HotKnotState == HOTKNOT_BEFORE_TRANS_STATE || g_HotKnotState == HOTKNOT_TRANS_STATE || g_HotKnotState == HOTKNOT_AFTER_TRANS_STATE) + { + IicWriteData(SLAVE_I2C_ID_DWI2C, &_gAMStartCmd[0], 4); + } +#endif //CONFIG_ENABLE_HOTKNOT + +#ifdef CONFIG_ENABLE_GLOVE_MODE + if (g_IsEnableGloveMode == 1) + { + if (g_IsGloveModeOpen == 1) + { + DrvIcFwCtrlCloseGloveMode(); + } + } +#endif //CONFIG_ENABLE_GLOVE_MODE + + DrvPlatformLyrFingerTouchReleased(0, 0); // Send touch end for clearing point touch + input_sync(g_InputDevice); + + DrvPlatformLyrDisableFingerTouchReport(); + +#ifdef CONFIG_ENABLE_HOTKNOT + if (g_HotKnotState != HOTKNOT_BEFORE_TRANS_STATE && g_HotKnotState != HOTKNOT_TRANS_STATE && g_HotKnotState != HOTKNOT_AFTER_TRANS_STATE) +#endif //CONFIG_ENABLE_HOTKNOT + { + DrvPlatformLyrTouchDevicePowerOff(); + } +} + +void MsDrvInterfaceTouchDeviceResume(struct early_suspend *pSuspend) +{ + DBG("*** %s() ***\n", __func__); + + if (g_IsUpdateFirmware != 0) // Check whether update frimware by sw id is finished + { + DBG("Not Allow to power on/off touch ic while update firmware by sw id.\n"); + return; + } + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION + if (g_EnableTpProximity == 1) + { + DBG("g_EnableTpProximity = %d\n", g_EnableTpProximity); + return; + } +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + + irq_set_irq_type(_gIrq,IRQF_TRIGGER_RISING | IRQF_NO_SUSPEND | IRQF_ONESHOT); + +#ifdef CONFIG_ENABLE_HOTKNOT + if (g_HotKnotState != HOTKNOT_BEFORE_TRANS_STATE && g_HotKnotState != HOTKNOT_TRANS_STATE && g_HotKnotState != HOTKNOT_AFTER_TRANS_STATE) +#endif //CONFIG_ENABLE_HOTKNOT + { +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE + if (g_GestureDebugMode == 1) + { + DrvIcFwLyrCloseGestureDebugMode(); + } +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + + if (g_GestureWakeupFlag == 1) + { + DrvIcFwLyrCloseGestureWakeup(); + } + else + { + DrvPlatformLyrEnableFingerTouchReport(); + } + } +#ifdef CONFIG_ENABLE_HOTKNOT + else // Enable touch in hotknot transfer mode + { + DrvPlatformLyrEnableFingerTouchReport(); + } +#endif //CONFIG_ENABLE_HOTKNOT +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_HOTKNOT + if (g_HotKnotState != HOTKNOT_BEFORE_TRANS_STATE && g_HotKnotState != HOTKNOT_TRANS_STATE && g_HotKnotState != HOTKNOT_AFTER_TRANS_STATE) +#endif //CONFIG_ENABLE_HOTKNOT + { + DrvPlatformLyrTouchDevicePowerOn(); + } + +#ifdef CONFIG_ENABLE_GLOVE_MODE + if (g_IsEnableGloveMode == 1) + { + if (g_IsGloveModeOpen == 0) + { + DrvIcFwCtrlOpenGloveMode(); + } + } +#endif //CONFIG_ENABLE_GLOVE_MODE + + if (IS_FIRMWARE_DATA_LOG_ENABLED) + { + DrvIcFwLyrRestoreFirmwareModeToLogDataMode(); // Mark this function call for avoiding device driver may spend longer time to resume from suspend state. + } //IS_FIRMWARE_DATA_LOG_ENABLED + +#ifndef CONFIG_ENABLE_GESTURE_WAKEUP + DrvPlatformLyrEnableFingerTouchReport(); +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +} + +#endif //CONFIG_ENABLE_NOTIFIER_FB + +/* probe function is used for matching and initializing input device */ +s32 /*__devinit*/ MsDrvInterfaceTouchDeviceProbe(struct i2c_client *pClient, const struct i2c_device_id *pDeviceId) +{ + s32 nRetVal = 0; + u16 nMajor = 0, nMinor = 0; + + DBG("*** %s() ***\n", __func__); + + DrvPlatformLyrInputDeviceInitialize(pClient); + + DrvPlatformLyrTouchDeviceRequestGPIO(); + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON + DrvPlatformLyrTouchDeviceRegulatorPowerOn(); +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + + DrvPlatformLyrTouchDevicePowerOn(); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaAlloc(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + nRetVal = DrvMainTouchDeviceInitialize(); + if (nRetVal == -ENODEV) + { + DrvPlatformLyrTouchDeviceRemove(pClient); + return nRetVal; + } + + DrvPlatformLyrTouchDeviceRegisterFingerTouchInterruptHandler(); + + DrvPlatformLyrTouchDeviceRegisterEarlySuspend(); + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID + DrvIcFwLyrCheckFirmwareUpdateBySwId(); +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + + DBG("*** MStar touch driver registered ***\n"); + + //DrvIcFwLyrGetCustomerFirmwareVersion(&nMajor, &nMinor, &_gFwVersion); + return nRetVal; +} + +/* remove function is triggered when the input device is removed from input sub-system */ +s32 /*__devexit*/ MsDrvInterfaceTouchDeviceRemove(struct i2c_client *pClient) +{ + DBG("*** %s() ***\n", __func__); + + return DrvPlatformLyrTouchDeviceRemove(pClient); +} + +void MsDrvInterfaceTouchDeviceSetIicDataRate(struct i2c_client *pClient, u32 nIicDataRate) +{ + DBG("*** %s() ***\n", __func__); + + DrvPlatformLyrSetIicDataRate(pClient, nIicDataRate); +} diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_platform_interface.h b/drivers/input/touchscreen/msg2233/mstar_drv_platform_interface.h new file mode 100644 index 00000000..99915e9c --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_platform_interface.h @@ -0,0 +1,50 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_platform_interface.h + * + * @brief This file defines the interface of touch screen + * + * + */ + +#ifndef __MSTAR_DRV_PLATFORM_INTERFACE_H__ +#define __MSTAR_DRV_PLATFORM_INTERFACE_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include "mstar_drv_common.h" + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +extern s32 /*__devinit*/ MsDrvInterfaceTouchDeviceProbe(struct i2c_client *pClient, const struct i2c_device_id *pDeviceId); +extern s32 /*__devexit*/ MsDrvInterfaceTouchDeviceRemove(struct i2c_client *pClient); +#ifdef CONFIG_ENABLE_NOTIFIER_FB +extern int MsDrvInterfaceTouchDeviceFbNotifierCallback(struct notifier_block *pSelf, unsigned long nEvent, void *pData); +#else +extern void MsDrvInterfaceTouchDeviceResume(struct early_suspend *pSuspend); +extern void MsDrvInterfaceTouchDeviceSuspend(struct early_suspend *pSuspend); +#endif //CONFIG_ENABLE_NOTIFIER_FB +extern void MsDrvInterfaceTouchDeviceSetIicDataRate(struct i2c_client *pClient, u32 nIicDataRate); + +#endif /* __MSTAR_DRV_PLATFORM_INTERFACE_H__ */ diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_platform_porting_layer.c b/drivers/input/touchscreen/msg2233/mstar_drv_platform_porting_layer.c new file mode 100644 index 00000000..d07e81dc --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_platform_porting_layer.c @@ -0,0 +1,910 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_platform_porting_layer.c + * + * @brief This file defines the interface of touch screen + * + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_platform_porting_layer.h" +#include "mstar_drv_ic_fw_porting_layer.h" +#include "mstar_drv_platform_interface.h" +#include "mstar_drv_utility_adaption.h" +#include + +#ifdef CONFIG_ENABLE_HOTKNOT +#include "mstar_drv_hotknot_queue.h" +#endif //CONFIG_ENABLE_HOTKNOT + +#ifdef CONFIG_ENABLE_JNI_INTERFACE +#include "mstar_drv_jni_interface.h" +#endif //CONFIG_ENABLE_JNI_INTERFACE + +/*=============================================================*/ +// EXTREN VARIABLE DECLARATION +/*=============================================================*/ + +extern struct kset *g_TouchKSet; +extern struct kobject *g_TouchKObj; +extern u8 g_GestureWakeupFlag; + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION +extern u8 g_FaceClosingTp; +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +extern struct tpd_device *tpd; +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON +extern struct regulator *g_ReguVdd; +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON +#endif + +#ifdef CONFIG_ENABLE_HOTKNOT +extern struct miscdevice hotknot_miscdevice; +extern u8 g_HotKnotState; +#endif //CONFIG_ENABLE_HOTKNOT + +extern u8 IS_FIRMWARE_DATA_LOG_ENABLED; +/*=============================================================*/ +// LOCAL VARIABLE DEFINITION +/*=============================================================*/ + +struct mutex g_Mutex; +spinlock_t _gIrqLock; +extern struct wake_lock mstar_irq_lock; + +static struct work_struct _gFingerTouchWork; +static int _gInterruptFlag = 0; + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +#ifdef CONFIG_ENABLE_NOTIFIER_FB +static struct notifier_block _gFbNotifier; +#else +static struct early_suspend _gEarlySuspend; +#endif //CONFIG_ENABLE_NOTIFIER_FB +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM || CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifndef CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM +static DECLARE_WAIT_QUEUE_HEAD(_gWaiter); +static struct task_struct *_gThread = NULL; +static int _gTpdFlag = 0; +#endif //CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + +/*=============================================================*/ +// GLOBAL VARIABLE DEFINITION +/*=============================================================*/ + +#ifdef CONFIG_TP_HAVE_KEY +const int g_TpVirtualKey[] = {TOUCH_KEY_HOME, TOUCH_KEY_MENU, TOUCH_KEY_BACK, TOUCH_KEY_SEARCH}; + +#ifdef CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE +#define BUTTON_W (100) +#define BUTTON_H (100) + +const int g_TpVirtualKeyDimLocal[MAX_KEY_NUM][4] = {{BUTTON_W/2*1,TOUCH_SCREEN_Y_MAX+BUTTON_H/2,BUTTON_W,BUTTON_H},{BUTTON_W/2*3,TOUCH_SCREEN_Y_MAX+BUTTON_H/2,BUTTON_W,BUTTON_H},{BUTTON_W/2*5,TOUCH_SCREEN_Y_MAX+BUTTON_H/2,BUTTON_W,BUTTON_H},{BUTTON_W/2*7,TOUCH_SCREEN_Y_MAX+BUTTON_H/2,BUTTON_W,BUTTON_H}}; +#endif //CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE +#endif //CONFIG_TP_HAVE_KEY + +struct input_dev *g_InputDevice = NULL; +int _gIrq = -1; + +/*=============================================================*/ +// LOCAL FUNCTION DEFINITION +/*=============================================================*/ + +/* read data through I2C then report data to input sub-system when interrupt occurred */ +static void _DrvPlatformLyrFingerTouchDoWork(struct work_struct *pWork) +{ + unsigned long nIrqFlag; + + DBG("*** %s() ***\n", __func__); + + DrvIcFwLyrHandleFingerTouch(NULL, 0); + + DBG("*** %s() _gInterruptFlag = %d ***\n", __func__, _gInterruptFlag); // add for debug + +// DBG("*** %s() spin_lock_irqsave() ***\n", __func__); // add for debug + spin_lock_irqsave(&_gIrqLock, nIrqFlag); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + + if (_gInterruptFlag == 0) + { + enable_irq(_gIrq); +// DBG("*** %s() enable_irq(_gIrq) ***\n", __func__); // add for debug + + _gInterruptFlag = 1; + } + +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + + if (_gInterruptFlag == 0) + { + mt_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM); +// DBG("*** %s() mt_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM) ***\n", __func__); // add for debug + + _gInterruptFlag = 1; + } + +#endif + spin_unlock_irqrestore(&_gIrqLock, nIrqFlag); +/* +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + if (g_GestureWakeupFlag == 1) + wake_unlock(&mstar_irq_lock); +#endif*/ + //wake_unlock(&mstar_irq_lock); +// DBG("*** %s() spin_unlock_irqrestore() ***\n", __func__); // add for debug +} + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +/* The interrupt service routine will be triggered when interrupt occurred */ +static irqreturn_t _DrvPlatformLyrFingerTouchInterruptHandler(s32 nIrq, void *pDeviceId) +{ + unsigned long nIrqFlag; + + //wake_lock_timeout(&mstar_irq_lock,msecs_to_jiffies(20000)); + + DBG("*** %s() ***\n", __func__); + + DBG("*** %s() _gInterruptFlag = %d ***\n", __func__, _gInterruptFlag); // add for debug + +// DBG("*** %s() spin_lock_irqsave() ***\n", __func__); // add for debug + spin_lock_irqsave(&_gIrqLock, nIrqFlag); + + if (_gInterruptFlag == 1) + { + disable_irq_nosync(_gIrq); +// DBG("*** %s() disable_irq_nosync(_gIrq) ***\n", __func__); // add for debug + + _gInterruptFlag = 0; + + schedule_work(&_gFingerTouchWork); + } + + spin_unlock_irqrestore(&_gIrqLock, nIrqFlag); +// DBG("*** %s() spin_unlock_irqrestore() ***\n", __func__); // add for debug + return IRQ_HANDLED; +} +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) +static void _DrvPlatformLyrFingerTouchInterruptHandler(void) +{ + unsigned long nIrqFlag; + + DBG("*** %s() ***\n", __func__); + + DBG("*** %s() _gInterruptFlag = %d ***\n", __func__, _gInterruptFlag); // add for debug + +// DBG("*** %s() spin_lock_irqsave() ***\n", __func__); // add for debug + spin_lock_irqsave(&_gIrqLock, nIrqFlag); + +#ifdef CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM + + if (_gInterruptFlag == 1) + { + mt_eint_mask(CUST_EINT_TOUCH_PANEL_NUM); +// DBG("*** %s() mt_eint_mask(CUST_EINT_TOUCH_PANEL_NUM) ***\n", __func__); // add for debug + + _gInterruptFlag = 0; + + schedule_work(&_gFingerTouchWork); + } + +#else + + if (_gInterruptFlag == 1) + { + mt_eint_mask(CUST_EINT_TOUCH_PANEL_NUM); +// DBG("*** %s() mt_eint_mask(CUST_EINT_TOUCH_PANEL_NUM) ***\n", __func__); // add for debug + + _gInterruptFlag = 0; + + _gTpdFlag = 1; + wake_up_interruptible(&_gWaiter); + } +#endif //CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM + + spin_unlock_irqrestore(&_gIrqLock, nIrqFlag); +// DBG("*** %s() spin_unlock_irqrestore() ***\n", __func__); // add for debug +} + +#ifndef CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM +static int _DrvPlatformLyrFingerTouchHandler(void *pUnUsed) +{ + unsigned long nIrqFlag; + struct sched_param param = { .sched_priority = RTPM_PRIO_TPD }; + sched_setscheduler(current, SCHED_RR, ¶m); + + DBG("*** %s() ***\n", __func__); + + do + { + set_current_state(TASK_INTERRUPTIBLE); + wait_event_interruptible(_gWaiter, _gTpdFlag != 0); + _gTpdFlag = 0; + + set_current_state(TASK_RUNNING); + + DrvIcFwLyrHandleFingerTouch(NULL, 0); + + DBG("*** %s() _gInterruptFlag = %d ***\n", __func__, _gInterruptFlag); // add for debug + +// DBG("*** %s() spin_lock_irqsave() ***\n", __func__); // add for debug + spin_lock_irqsave(&_gIrqLock, nIrqFlag); + + if (_gInterruptFlag == 0) + { + mt_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM); +// DBG("*** %s() mt_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM) ***\n", __func__); // add for debug + + _gInterruptFlag = 1; + } + + spin_unlock_irqrestore(&_gIrqLock, nIrqFlag); +// DBG("*** %s() spin_unlock_irqrestore() ***\n", __func__); // add for debug + + } while (!kthread_should_stop()); + + return 0; +} +#endif //CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM +#endif + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON +void DrvPlatformLyrTouchDeviceRegulatorPowerOn(void) +{ +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + s32 nRetVal = 0; + + DBG("*** %s() ***\n", __func__); + + nRetVal = regulator_set_voltage(g_ReguVdd, 2800000, 2800000); // For specific SPRD BB chip(ex. SC7715) or QCOM BB chip(ex. MSM8610), need to enable this function call for correctly power on Touch IC. + + if (nRetVal) + { + DBG("Could not set to 2800mv.\n"); + } + regulator_enable(g_ReguVdd); + + mdelay(20); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + //hwPowerOn(MT6323_POWER_LDO_VGP1, VOL_2800, "TP"); // For specific MTK BB chip(ex. MT6582), need to enable this function call for correctly power on Touch IC. + hwPowerOn(PMIC_APP_CAP_TOUCH_VDD, VOL_2800, "TP"); // For specific MTK BB chip(ex. MT6735), need to enable this function call for correctly power on Touch IC. +#endif +} +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + +void DrvPlatformLyrTouchDevicePowerOn(void) +{ + DBG("*** %s() ***\n", __func__); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + gpio_direction_output(MS_TS_MSG_IC_GPIO_RST, 1); +// gpio_set_value(MS_TS_MSG_IC_GPIO_RST, 1); + udelay(100); + gpio_set_value(MS_TS_MSG_IC_GPIO_RST, 0); + udelay(100); + gpio_set_value(MS_TS_MSG_IC_GPIO_RST, 1); + mdelay(25); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + mt_set_gpio_mode(MS_TS_MSG_IC_GPIO_RST, GPIO_CTP_RST_PIN_M_GPIO); + mt_set_gpio_dir(MS_TS_MSG_IC_GPIO_RST, GPIO_DIR_OUT); + mt_set_gpio_out(MS_TS_MSG_IC_GPIO_RST, GPIO_OUT_ONE); + udelay(100); + + mt_set_gpio_mode(MS_TS_MSG_IC_GPIO_RST, GPIO_CTP_RST_PIN_M_GPIO); + mt_set_gpio_dir(MS_TS_MSG_IC_GPIO_RST, GPIO_DIR_OUT); + mt_set_gpio_out(MS_TS_MSG_IC_GPIO_RST, GPIO_OUT_ZERO); + udelay(100); + +#ifdef TPD_CLOSE_POWER_IN_SLEEP + hwPowerDown(TPD_POWER_SOURCE, "TP"); + mdelay(100); + hwPowerOn(TPD_POWER_SOURCE, VOL_2800, "TP"); + mdelay(10); // reset pulse +#endif //TPD_CLOSE_POWER_IN_SLEEP + + mt_set_gpio_mode(MS_TS_MSG_IC_GPIO_RST, GPIO_CTP_RST_PIN_M_GPIO); + mt_set_gpio_dir(MS_TS_MSG_IC_GPIO_RST, GPIO_DIR_OUT); + mt_set_gpio_out(MS_TS_MSG_IC_GPIO_RST, GPIO_OUT_ONE); + mdelay(25); +#endif +} + +void DrvPlatformLyrTouchDevicePowerOff(void) +{ + DBG("*** %s() ***\n", __func__); + + DrvIcFwLyrOptimizeCurrentConsumption(); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +// gpio_direction_output(MS_TS_MSG_IC_GPIO_RST, 0); + gpio_set_value(MS_TS_MSG_IC_GPIO_RST, 0); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + mt_set_gpio_mode(MS_TS_MSG_IC_GPIO_RST, GPIO_CTP_RST_PIN_M_GPIO); + mt_set_gpio_dir(MS_TS_MSG_IC_GPIO_RST, GPIO_DIR_OUT); + mt_set_gpio_out(MS_TS_MSG_IC_GPIO_RST, GPIO_OUT_ZERO); +#ifdef TPD_CLOSE_POWER_IN_SLEEP + hwPowerDown(TPD_POWER_SOURCE, "TP"); +#endif //TPD_CLOSE_POWER_IN_SLEEP +#endif +} + +void DrvPlatformLyrTouchDeviceResetHw(void) +{ + DBG("*** %s() MS_TS_MSG_IC_GPIO_RST=%d***\n", __func__,MS_TS_MSG_IC_GPIO_RST); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + gpio_direction_output(MS_TS_MSG_IC_GPIO_RST, 1); +// gpio_set_value(MS_TS_MSG_IC_GPIO_RST, 1); + udelay(100); + gpio_set_value(MS_TS_MSG_IC_GPIO_RST, 0); + udelay(100); + gpio_set_value(MS_TS_MSG_IC_GPIO_RST, 1); + mdelay(25); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + mt_set_gpio_mode(MS_TS_MSG_IC_GPIO_RST, GPIO_CTP_RST_PIN_M_GPIO); + mt_set_gpio_dir(MS_TS_MSG_IC_GPIO_RST, GPIO_DIR_OUT); + mt_set_gpio_out(MS_TS_MSG_IC_GPIO_RST, GPIO_OUT_ONE); + udelay(100); + mt_set_gpio_mode(MS_TS_MSG_IC_GPIO_RST, GPIO_CTP_RST_PIN_M_GPIO); + mt_set_gpio_dir(MS_TS_MSG_IC_GPIO_RST, GPIO_DIR_OUT); + mt_set_gpio_out(MS_TS_MSG_IC_GPIO_RST, GPIO_OUT_ZERO); + udelay(100); + mt_set_gpio_mode(MS_TS_MSG_IC_GPIO_RST, GPIO_CTP_RST_PIN_M_GPIO); + mt_set_gpio_dir(MS_TS_MSG_IC_GPIO_RST, GPIO_DIR_OUT); + mt_set_gpio_out(MS_TS_MSG_IC_GPIO_RST, GPIO_OUT_ONE); + mdelay(25); +#endif +} + +void DrvPlatformLyrDisableFingerTouchReport(void) +{ + unsigned long nIrqFlag; + + DBG("*** %s() ***\n", __func__); + + DBG("*** %s() _gInterruptFlag = %d ***\n", __func__, _gInterruptFlag); // add for debug + + spin_lock_irqsave(&_gIrqLock, nIrqFlag); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + +#ifdef CONFIG_ENABLE_HOTKNOT + if (g_HotKnotState != HOTKNOT_TRANS_STATE && g_HotKnotState != HOTKNOT_BEFORE_TRANS_STATE) +#endif //CONFIG_ENABLE_HOTKNOT + { + if (_gInterruptFlag == 1) + { + printk("DrvPlatformLyrDisableFingerTouchReport___gIrq=%d\n",_gIrq); + disable_irq(_gIrq); + + _gInterruptFlag = 0; + } + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + +#ifdef CONFIG_ENABLE_HOTKNOT + if (g_HotKnotState != HOTKNOT_TRANS_STATE && g_HotKnotState != HOTKNOT_BEFORE_TRANS_STATE) +#endif //CONFIG_ENABLE_HOTKNOT + { + if (_gInterruptFlag == 1) + { + mt_eint_mask(CUST_EINT_TOUCH_PANEL_NUM); + + _gInterruptFlag = 0; + } + } +#endif + + spin_unlock_irqrestore(&_gIrqLock, nIrqFlag); +} + +void DrvPlatformLyrEnableFingerTouchReport(void) +{ + unsigned long nIrqFlag; + + DBG("*** %s() ***\n", __func__); + + DBG("*** %s() _gInterruptFlag = %d ***\n", __func__, _gInterruptFlag); // add for debug + +// DBG("*** %s() spin_lock_irqsave() ***\n", __func__); // add for debug + spin_lock_irqsave(&_gIrqLock, nIrqFlag); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + + if (_gInterruptFlag == 0) + { + enable_irq(_gIrq); +// DBG("*** %s() enable_irq(_gIrq) ***\n", __func__); // add for debug + + _gInterruptFlag = 1; + } + +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + + if (_gInterruptFlag == 0) + { + mt_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM); +// DBG("*** %s() mt_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM) ***\n", __func__); // add for debug + + _gInterruptFlag = 1; + } + +#endif + + spin_unlock_irqrestore(&_gIrqLock, nIrqFlag); +// DBG("*** %s() spin_unlock_irqrestore() ***\n", __func__); // add for debug +} + +void DrvPlatformLyrFingerTouchPressed(s32 nX, s32 nY, s32 nPressure, s32 nId) +{ + DBG("*** %s() ***\n", __func__); + DBG("point touch pressed\n"); + + input_report_key(g_InputDevice, BTN_TOUCH, 1); +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) + input_report_abs(g_InputDevice, ABS_MT_TRACKING_ID, nId); +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC + input_report_abs(g_InputDevice, ABS_MT_TOUCH_MAJOR, 1); + input_report_abs(g_InputDevice, ABS_MT_WIDTH_MAJOR, 1); + input_report_abs(g_InputDevice, ABS_MT_POSITION_X, nX); + input_report_abs(g_InputDevice, ABS_MT_POSITION_Y, nY); + + input_mt_sync(g_InputDevice); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_TP_HAVE_KEY + if (FACTORY_BOOT == get_boot_mode() || RECOVERY_BOOT == get_boot_mode()) + { + tpd_button(nX, nY, 1); + } +#endif //CONFIG_TP_HAVE_KEY + + TPD_EM_PRINT(nX, nY, nX, nY, nId, 1); +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +} + +void DrvPlatformLyrFingerTouchReleased(s32 nX, s32 nY) +{ + DBG("*** %s() ***\n", __func__); + DBG("point touch released\n"); + + input_report_key(g_InputDevice, BTN_TOUCH, 0); + input_mt_sync(g_InputDevice); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_TP_HAVE_KEY + if (FACTORY_BOOT == get_boot_mode() || RECOVERY_BOOT == get_boot_mode()) + { + tpd_button(nX, nY, 0); +// tpd_button(0, 0, 0); + } +#endif //CONFIG_TP_HAVE_KEY + + TPD_EM_PRINT(nX, nY, nX, nY, 0, 0); +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +} + +s32 DrvPlatformLyrInputDeviceInitialize(struct i2c_client *pClient) +{ + s32 nRetVal = 0; + + DBG("*** %s() ***\n", __func__); + + mutex_init(&g_Mutex); + spin_lock_init(&_gIrqLock); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + /* allocate an input device */ + g_InputDevice = input_allocate_device(); + if (g_InputDevice == NULL) + { + DBG("*** input device allocation failed ***\n"); + return -ENOMEM; + } + + g_InputDevice->name = pClient->name; + g_InputDevice->phys = "I2C"; + g_InputDevice->dev.parent = &pClient->dev; + g_InputDevice->id.bustype = BUS_I2C; + + /* set the supported event type for input device */ + set_bit(EV_ABS, g_InputDevice->evbit); + set_bit(EV_SYN, g_InputDevice->evbit); + set_bit(EV_KEY, g_InputDevice->evbit); + set_bit(BTN_TOUCH, g_InputDevice->keybit); + set_bit(INPUT_PROP_DIRECT, g_InputDevice->propbit); + +#ifdef CONFIG_TP_HAVE_KEY + // Method 1. + { + u32 i; + for (i = 0; i < MAX_KEY_NUM; i ++) + { + input_set_capability(g_InputDevice, EV_KEY, g_TpVirtualKey[i]); + } + } +#endif +/* +#ifdef CONFIG_TP_HAVE_KEY + // Method 2. + set_bit(TOUCH_KEY_MENU, g_InputDevice->keybit); //Menu + set_bit(TOUCH_KEY_HOME, g_InputDevice->keybit); //Home + set_bit(TOUCH_KEY_BACK, g_InputDevice->keybit); //Back + set_bit(TOUCH_KEY_SEARCH, g_InputDevice->keybit); //Search +#endif +*/ + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + input_set_capability(g_InputDevice, EV_KEY, KEY_POWER); + input_set_capability(g_InputDevice, EV_KEY, KEY_UP); + input_set_capability(g_InputDevice, EV_KEY, KEY_DOWN); + input_set_capability(g_InputDevice, EV_KEY, KEY_LEFT); + input_set_capability(g_InputDevice, EV_KEY, KEY_RIGHT); + input_set_capability(g_InputDevice, EV_KEY, KEY_W); + input_set_capability(g_InputDevice, EV_KEY, KEY_Z); + input_set_capability(g_InputDevice, EV_KEY, KEY_V); + input_set_capability(g_InputDevice, EV_KEY, KEY_O); + input_set_capability(g_InputDevice, EV_KEY, KEY_M); + input_set_capability(g_InputDevice, EV_KEY, KEY_C); + input_set_capability(g_InputDevice, EV_KEY, KEY_E); + input_set_capability(g_InputDevice, EV_KEY, KEY_S); +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) + input_set_abs_params(g_InputDevice, ABS_MT_TRACKING_ID, 0, 255, 0, 0); +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC + input_set_abs_params(g_InputDevice, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(g_InputDevice, ABS_MT_WIDTH_MAJOR, 0, 15, 0, 0); + input_set_abs_params(g_InputDevice, ABS_MT_POSITION_X, TOUCH_SCREEN_X_MIN, TOUCH_SCREEN_X_MAX, 0, 0); + input_set_abs_params(g_InputDevice, ABS_MT_POSITION_Y, TOUCH_SCREEN_Y_MIN, TOUCH_SCREEN_Y_MAX, 0, 0); + + /* register the input device to input sub-system */ + nRetVal = input_register_device(g_InputDevice); + if (nRetVal < 0) + { + DBG("*** Unable to register touch input device ***\n"); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + g_InputDevice = tpd->dev; +/* + g_InputDevice->phys = "I2C"; + g_InputDevice->dev.parent = &pClient->dev; + g_InputDevice->id.bustype = BUS_I2C; + + // set the supported event type for input device + set_bit(EV_ABS, g_InputDevice->evbit); + set_bit(EV_SYN, g_InputDevice->evbit); + set_bit(EV_KEY, g_InputDevice->evbit); + set_bit(BTN_TOUCH, g_InputDevice->keybit); + set_bit(INPUT_PROP_DIRECT, g_InputDevice->propbit); +*/ + +#ifdef CONFIG_TP_HAVE_KEY + { + u32 i; + for (i = 0; i < MAX_KEY_NUM; i ++) + { + input_set_capability(g_InputDevice, EV_KEY, g_TpVirtualKey[i]); + } + } +#endif + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + input_set_capability(g_InputDevice, EV_KEY, KEY_POWER); + input_set_capability(g_InputDevice, EV_KEY, KEY_UP); + input_set_capability(g_InputDevice, EV_KEY, KEY_DOWN); + input_set_capability(g_InputDevice, EV_KEY, KEY_LEFT); + input_set_capability(g_InputDevice, EV_KEY, KEY_RIGHT); + input_set_capability(g_InputDevice, EV_KEY, KEY_W); + input_set_capability(g_InputDevice, EV_KEY, KEY_Z); + input_set_capability(g_InputDevice, EV_KEY, KEY_V); + input_set_capability(g_InputDevice, EV_KEY, KEY_O); + input_set_capability(g_InputDevice, EV_KEY, KEY_M); + input_set_capability(g_InputDevice, EV_KEY, KEY_C); + input_set_capability(g_InputDevice, EV_KEY, KEY_E); + input_set_capability(g_InputDevice, EV_KEY, KEY_S); +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC) + input_set_abs_params(g_InputDevice, ABS_MT_TRACKING_ID, 0, (MAX_TOUCH_NUM-1), 0, 0); +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_MUTUAL_IC +/* + input_set_abs_params(g_InputDevice, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(g_InputDevice, ABS_MT_WIDTH_MAJOR, 0, 15, 0, 0); + input_set_abs_params(g_InputDevice, ABS_MT_POSITION_X, TOUCH_SCREEN_X_MIN, TOUCH_SCREEN_X_MAX, 0, 0); + input_set_abs_params(g_InputDevice, ABS_MT_POSITION_Y, TOUCH_SCREEN_Y_MIN, TOUCH_SCREEN_Y_MAX, 0, 0); +*/ + +#endif + + return nRetVal; +} + +s32 DrvPlatformLyrTouchDeviceRequestGPIO(void) +{ + s32 nRetVal = 0; + + DBG("*** %s() ***\n", __func__); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + nRetVal = gpio_request(MS_TS_MSG_IC_GPIO_RST, "C_TP_RST"); + if (nRetVal < 0) + { + DBG("*** Failed to request GPIO %d, error %d ***\n", MS_TS_MSG_IC_GPIO_RST, nRetVal); + } + + nRetVal = gpio_request(MS_TS_MSG_IC_GPIO_INT, "C_TP_INT"); + if (nRetVal < 0) + { + DBG("*** Failed to request GPIO %d, error %d ***\n", MS_TS_MSG_IC_GPIO_INT, nRetVal); + } +#endif + + return nRetVal; +} + +s32 DrvPlatformLyrTouchDeviceRegisterFingerTouchInterruptHandler(void) +{ + s32 nRetVal = 0; + + DBG("*** %s() ***\n", __func__); + + if (DrvIcFwLyrIsRegisterFingerTouchInterruptHandler()) + { +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + /* initialize the finger touch work queue */ + INIT_WORK(&_gFingerTouchWork, _DrvPlatformLyrFingerTouchDoWork); + + _gIrq = gpio_to_irq(MS_TS_MSG_IC_GPIO_INT); + + /* request an irq and register the isr */ + nRetVal = request_threaded_irq(_gIrq/*MS_TS_MSG_IC_GPIO_INT*/,NULL, _DrvPlatformLyrFingerTouchInterruptHandler, + IRQF_TRIGGER_RISING | IRQF_ONESHOT | IRQF_NO_SUSPEND /*//* IRQF_TRIGGER_FALLING */, + "msg2xxx", NULL); + +// nRetVal = request_irq(_gIrq/*MS_TS_MSG_IC_GPIO_INT*/, _DrvPlatformLyrFingerTouchInterruptHandler, +// IRQF_TRIGGER_RISING /* | IRQF_NO_SUSPEND *//* IRQF_TRIGGER_FALLING */, +// "msg2xxx", NULL); + + _gInterruptFlag = 1; + + if (nRetVal != 0) + { + DBG("*** Unable to claim irq %d; error %d ***\n", MS_TS_MSG_IC_GPIO_INT, nRetVal); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + mt_set_gpio_mode(MS_TS_MSG_IC_GPIO_INT, GPIO_CTP_EINT_PIN_M_EINT); + mt_set_gpio_dir(MS_TS_MSG_IC_GPIO_INT, GPIO_DIR_IN); + mt_set_gpio_pull_enable(MS_TS_MSG_IC_GPIO_INT, GPIO_PULL_ENABLE); + mt_set_gpio_pull_select(MS_TS_MSG_IC_GPIO_INT, GPIO_PULL_UP); + + mt_eint_set_hw_debounce(CUST_EINT_TOUCH_PANEL_NUM, CUST_EINT_TOUCH_PANEL_DEBOUNCE_CN); + mt_eint_registration(CUST_EINT_TOUCH_PANEL_NUM, CUST_EINT_TOUCH_PANEL_TYPE/* EINTF_TRIGGER_RISING */, _DrvPlatformLyrFingerTouchInterruptHandler, 1); + + mt_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM); + + _gInterruptFlag = 1; + +#ifdef CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM + /* initialize the finger touch work queue */ + INIT_WORK(&_gFingerTouchWork, _DrvPlatformLyrFingerTouchDoWork); +#else + _gThread = kthread_run(_DrvPlatformLyrFingerTouchHandler, 0, TPD_DEVICE); + if (IS_ERR(_gThread)) + { + nRetVal = PTR_ERR(_gThread); + DBG("Failed to create kernel thread: %d\n", nRetVal); + } +#endif //CONFIG_USE_IRQ_INTERRUPT_FOR_MTK_PLATFORM +#endif + } + + return nRetVal; +} + +void DrvPlatformLyrTouchDeviceRegisterEarlySuspend(void) +{ + DBG("*** %s() ***\n", __func__); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +#ifdef CONFIG_ENABLE_NOTIFIER_FB + _gFbNotifier.notifier_call = MsDrvInterfaceTouchDeviceFbNotifierCallback; + fb_register_client(&_gFbNotifier); +#else + _gEarlySuspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN; + _gEarlySuspend.suspend = MsDrvInterfaceTouchDeviceSuspend; + _gEarlySuspend.resume = MsDrvInterfaceTouchDeviceResume; + register_early_suspend(&_gEarlySuspend); +#endif //CONFIG_ENABLE_NOTIFIER_FB +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM || CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM +} + +/* remove function is triggered when the input device is removed from input sub-system */ +s32 DrvPlatformLyrTouchDeviceRemove(struct i2c_client *pClient) +{ + DBG("*** %s() ***\n", __func__); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + free_irq(_gIrq, g_InputDevice); + gpio_free(MS_TS_MSG_IC_GPIO_INT); + gpio_free(MS_TS_MSG_IC_GPIO_RST); + input_unregister_device(g_InputDevice); +#endif + + if (IS_FIRMWARE_DATA_LOG_ENABLED) + { + kset_unregister(g_TouchKSet); + kobject_put(g_TouchKObj); + } //IS_FIRMWARE_DATA_LOG_ENABLED + +#ifdef CONFIG_ENABLE_HOTKNOT + DeleteQueue(); + DeleteHotKnotMem(); + DBG("Deregister hotknot misc device.\n"); + misc_deregister( &hotknot_miscdevice ); +#endif //CONFIG_ENABLE_HOTKNOT + +#ifdef CONFIG_ENABLE_JNI_INTERFACE + DeleteMsgToolMem(); +#endif //CONFIG_ENABLE_JNI_INTERFACE + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaFree(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + return 0; +} +extern void sprd_i2c_ctl_chg_clk(unsigned int id_nr, unsigned int freq); + +void DrvPlatformLyrSetIicDataRate(struct i2c_client *pClient, u32 nIicDataRate) +{ + DBG("*** %s() nIicDataRate = %d ***\n", __func__, nIicDataRate); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + // TODO : Please FAE colleague to confirm with customer device driver engineer for how to set i2c data rate on SPRD platform + sprd_i2c_ctl_chg_clk(pClient->adapter->nr, nIicDataRate); + mdelay(100); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + // TODO : Please FAE colleague to confirm with customer device driver engineer for how to set i2c data rate on QCOM platform +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + pClient->timing = nIicDataRate/1000; +#endif +} + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION + +int DrvPlatformLyrGetTpPsData(void) +{ + DBG("*** %s() g_FaceClosingTp = %d ***\n", __func__, g_FaceClosingTp); + + return g_FaceClosingTp; +} + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +void DrvPlatformLyrTpPsEnable(int nEnable) +{ + DBG("*** %s() nEnable = %d ***\n", __func__, nEnable); + + if (nEnable) + { + DrvIcFwLyrEnableProximity(); + } + else + { + DrvIcFwLyrDisableProximity(); + } +} +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) +int DrvPlatformLyrTpPsOperate(void* pSelf, u32 nCommand, void* pBuffIn, int nSizeIn, + void* pBuffOut, int nSizeOut, int* pActualOut) +{ + int nErr = 0; + int nValue; + hwm_sensor_data *pSensorData; + + switch (nCommand) + { + case SENSOR_DELAY: + if ((pBuffIn == NULL) || (nSizeIn < sizeof(int))) + { + nErr = -EINVAL; + } + // Do nothing + break; + + case SENSOR_ENABLE: + if ((pBuffIn == NULL) || (nSizeIn < sizeof(int))) + { + nErr = -EINVAL; + } + else + { + nValue = *(int *)pBuffIn; + if (nValue) + { + if (DrvIcFwLyrEnableProximity() < 0) + { + DBG("Enable ps fail: %d\n", nErr); + return -1; + } + } + else + { + if (DrvIcFwLyrDisableProximity() < 0) + { + DBG("Disable ps fail: %d\n", nErr); + return -1; + } + } + } + break; + + case SENSOR_GET_DATA: + if ((pBuffOut == NULL) || (nSizeOut < sizeof(hwm_sensor_data))) + { + DBG("Get sensor data parameter error!\n"); + nErr = -EINVAL; + } + else + { + pSensorData = (hwm_sensor_data *)pBuffOut; + + pSensorData->values[0] = DrvPlatformLyrGetTpPsData(); + pSensorData->value_divide = 1; + pSensorData->status = SENSOR_STATUS_ACCURACY_MEDIUM; + } + break; + + default: + DBG("Un-recognized parameter %d!\n", nCommand); + nErr = -1; + break; + } + + return nErr; +} +#endif + +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +//------------------------------------------------------------------------------// + diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_platform_porting_layer.h b/drivers/input/touchscreen/msg2233/mstar_drv_platform_porting_layer.h new file mode 100644 index 00000000..3ab6f9cd --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_platform_porting_layer.h @@ -0,0 +1,178 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_platform_porting_layer.h + * + * @brief This file defines the interface of touch screen + * + * + */ + +#ifndef __MSTAR_DRV_PLATFORM_PORTING_LAYER_H__ +#define __MSTAR_DRV_PLATFORM_PORTING_LAYER_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include "mstar_drv_common.h" + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + +#include +#include + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON +#include +#include +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION +#include +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON +#include +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + +#ifdef CONFIG_ENABLE_NOTIFIER_FB +#include +#include +#endif //CONFIG_ENABLE_NOTIFIER_FB + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION +#include +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + +#include +#include +#include +#include +#include +#include + +#include +#include + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION +#include +#include +#include +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +#include +#include +#include +#include + +#include +#include "tpd.h" +#include "cust_gpio_usage.h" +#include + +#endif + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR CONSTANT DEFINITION */ +/*--------------------------------------------------------------------------*/ + +/* + * Note. + * Please change the below GPIO pin setting to follow the platform that you are using(EX. MediaTek, Spreadtrum, Qualcomm). + */ +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + +// TODO : Please FAE colleague to confirm with customer device driver engineer about the value of RST and INT GPIO setting +//#define MS_TS_MSG_IC_GPIO_RST GPIO_TOUCH_RESET //53 //35 +//#define MS_TS_MSG_IC_GPIO_INT GPIO_TOUCH_IRQ //52 //37 + +#ifdef CONFIG_TP_HAVE_KEY +#define TOUCH_KEY_MENU (139) //229 +#define TOUCH_KEY_HOME (172) //102 +#define TOUCH_KEY_BACK (158) +#define TOUCH_KEY_SEARCH (217) + +#define MAX_KEY_NUM (4) +#endif //CONFIG_TP_HAVE_KEY + +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + +// TODO : Please FAE colleague to confirm with customer device driver engineer about the value of RST and INT GPIO setting +#define MS_TS_MSG_IC_GPIO_RST 0 +#define MS_TS_MSG_IC_GPIO_INT 1 + +#ifdef CONFIG_TP_HAVE_KEY +#define TOUCH_KEY_MENU (139) //229 +#define TOUCH_KEY_HOME (172) //102 +#define TOUCH_KEY_BACK (158) +#define TOUCH_KEY_SEARCH (217) + +#define MAX_KEY_NUM (4) +#endif //CONFIG_TP_HAVE_KEY + +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + +#define MS_TS_MSG_IC_GPIO_RST (GPIO_CTP_RST_PIN) +#define MS_TS_MSG_IC_GPIO_INT (GPIO_CTP_EINT_PIN) + +#ifdef CONFIG_TP_HAVE_KEY +#define TOUCH_KEY_MENU KEY_MENU +#define TOUCH_KEY_HOME KEY_HOMEPAGE +#define TOUCH_KEY_BACK KEY_BACK +#define TOUCH_KEY_SEARCH KEY_SEARCH + +#define MAX_KEY_NUM (4) +#endif //CONFIG_TP_HAVE_KEY + +#endif + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +extern void DrvPlatformLyrDisableFingerTouchReport(void); +extern void DrvPlatformLyrEnableFingerTouchReport(void); +extern void DrvPlatformLyrFingerTouchPressed(s32 nX, s32 nY, s32 nPressure, s32 nId); +extern void DrvPlatformLyrFingerTouchReleased(s32 nX, s32 nY); +extern s32 DrvPlatformLyrInputDeviceInitialize(struct i2c_client *pClient); +extern void DrvPlatformLyrSetIicDataRate(struct i2c_client *pClient, u32 nIicDataRate); +extern void DrvPlatformLyrTouchDevicePowerOff(void); +extern void DrvPlatformLyrTouchDevicePowerOn(void); +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON +extern void DrvPlatformLyrTouchDeviceRegulatorPowerOn(void); +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON +extern void DrvPlatformLyrTouchDeviceRegisterEarlySuspend(void); +extern s32 DrvPlatformLyrTouchDeviceRegisterFingerTouchInterruptHandler(void); +extern s32 DrvPlatformLyrTouchDeviceRemove(struct i2c_client *pClient); +extern s32 DrvPlatformLyrTouchDeviceRequestGPIO(void); +extern void DrvPlatformLyrTouchDeviceResetHw(void); +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION +extern int DrvPlatformLyrGetTpPsData(void); +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +extern void DrvPlatformLyrTpPsEnable(int nEnable); +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) +extern int DrvPlatformLyrTpPsOperate(void* pSelf, u32 nCommand, void* pBuffIn, int nSizeIn, void* pBuffOut, int nSizeOut, int* pActualOut); +#endif +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +#endif /* __MSTAR_DRV_PLATFORM_PORTING_LAYER_H__ */ diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_qcom.c b/drivers/input/touchscreen/msg2233/mstar_drv_qcom.c new file mode 100644 index 00000000..cf1f6c2b --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_qcom.c @@ -0,0 +1,156 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_qcom.c + * + * @brief This file defines the interface of touch screen + * + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include "mstar_drv_platform_interface.h" + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON +#include +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + +/*=============================================================*/ +// CONSTANT VALUE DEFINITION +/*=============================================================*/ + +#define MSG_TP_IC_NAME "msg2xxx" //"msg21xxA" or "msg22xx" or "msg26xxM" /* Please define the mstar touch ic name based on the mutual-capacitive ic or self capacitive ic that you are using */ + +/*=============================================================*/ +// VARIABLE DEFINITION +/*=============================================================*/ + +struct i2c_client *g_I2cClient = NULL; + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON +struct regulator *g_ReguVdd = NULL; +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + +/*=============================================================*/ +// FUNCTION DEFINITION +/*=============================================================*/ + +/* probe function is used for matching and initializing input device */ +static int __devinit touch_driver_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON + const char *vdd_name = "vdd"; +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + + DBG("*** %s ***\n", __FUNCTION__); + + if (client == NULL) + { + DBG("i2c client is NULL\n"); + return -1; + } + g_I2cClient = client; + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON + g_ReguVdd = regulator_get(&g_I2cClient->dev, vdd_name); +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + + return MsDrvInterfaceTouchDeviceProbe(g_I2cClient, id); +} + +/* remove function is triggered when the input device is removed from input sub-system */ +static int touch_driver_remove(struct i2c_client *client) +{ + DBG("*** %s ***\n", __FUNCTION__); + + return MsDrvInterfaceTouchDeviceRemove(client); +} + +/* The I2C device list is used for matching I2C device and I2C device driver. */ +static const struct i2c_device_id touch_device_id[] = +{ + {MSG_TP_IC_NAME, 0}, + {}, /* should not omitted */ +}; + +MODULE_DEVICE_TABLE(i2c, touch_device_id); + +static struct of_device_id touch_match_table[] = { + { .compatible = "mstar,msg2xxx",}, + {}, +}; + +static struct i2c_driver touch_device_driver = +{ + .driver = { + .name = MSG_TP_IC_NAME, + .owner = THIS_MODULE, + .of_match_table = touch_match_table, + }, + .probe = touch_driver_probe, + .remove = touch_driver_remove, + .id_table = touch_device_id, +}; + +static int __init touch_driver_init(void) +{ + int ret; + + /* register driver */ + ret = i2c_add_driver(&touch_device_driver); + if (ret < 0) + { + DBG("add touch device driver i2c driver failed.\n"); + return -ENODEV; + } + DBG("add touch device driver i2c driver.\n"); + + return ret; +} + +static void __exit touch_driver_exit(void) +{ + DBG("remove touch device driver i2c driver.\n"); + + i2c_del_driver(&touch_device_driver); +} + +module_init(touch_driver_init); +module_exit(touch_driver_exit); +MODULE_LICENSE("GPL"); \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_self_fw_control.c b/drivers/input/touchscreen/msg2233/mstar_drv_self_fw_control.c new file mode 100644 index 00000000..a544ef4c --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_self_fw_control.c @@ -0,0 +1,5747 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_self_fw_control.c + * + * @brief This file defines the interface of touch screen + * + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_self_fw_control.h" +#include "mstar_drv_utility_adaption.h" +#include "mstar_drv_platform_porting_layer.h" + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC) + +/*=============================================================*/ +// EXTERN VARIABLE DECLARATION +/*=============================================================*/ + +extern u32 SLAVE_I2C_ID_DBBUS; +extern u32 SLAVE_I2C_ID_DWI2C; + +#ifdef CONFIG_TP_HAVE_KEY +extern const int g_TpVirtualKey[]; + +#ifdef CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE +extern const int g_TpVirtualKeyDimLocal[][4]; +#endif //CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE +#endif //CONFIG_TP_HAVE_KEY + +extern struct input_dev *g_InputDevice; + +extern u8 g_FwData[MAX_UPDATE_FIRMWARE_BUFFER_SIZE][1024]; +extern u32 g_FwDataCount; + +extern struct mutex g_Mutex; + +extern u16 FIRMWARE_MODE_UNKNOWN_MODE; +extern u16 FIRMWARE_MODE_DEMO_MODE; +extern u16 FIRMWARE_MODE_DEBUG_MODE; +extern u16 FIRMWARE_MODE_RAW_DATA_MODE; + +extern struct kobject *g_TouchKObj; +extern u8 g_IsSwitchModeByAPK; + +extern u8 IS_FIRMWARE_DATA_LOG_ENABLED; + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +extern struct kobject *g_GestureKObj; +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_COUNT_REPORT_RATE +extern u32 g_IsEnableReportRate; +extern u32 g_InterruptCount; +extern u32 g_ValidTouchCount; + +extern struct timeval g_StartTime; +#endif //CONFIG_ENABLE_COUNT_REPORT_RATE + +/*=============================================================*/ +// LOCAL VARIABLE DEFINITION +/*=============================================================*/ + +static u8 _gTpVendorCode[3] = {0}; + +static u8 _gDwIicInfoData[1024]; +static u8 _gOneDimenFwData[MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE*1024+MSG22XX_FIRMWARE_INFO_BLOCK_SIZE] = {0}; // used for MSG22XX + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +/* + * Note. + * Please modify the name of the below .h depends on the vendor TP that you are using. + */ +#include "msg21xxa_xxxx_update_bin.h" // for MSG21xxA +#include "msg21xxa_yyyy_update_bin.h" + +#include "msg22xx_xxxx_update_bin.h" // for MSG22xx +#include "msg22xx_yyyy_update_bin.h" + +static u32 _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; +static struct work_struct _gUpdateFirmwareBySwIdWork; +static struct workqueue_struct *_gUpdateFirmwareBySwIdWorkQueue = NULL; + +static u32 _gIsUpdateInfoBlockFirst = 0; + + +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +static u32 _gGestureWakeupValue[2] = {0}; +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +static u8 _gIsDisableFinagerTouch = 0; + +/*=============================================================*/ +// GLOBAL VARIABLE DEFINITION +/*=============================================================*/ + +u8 g_ChipType = 0; +u8 g_DemoModePacket[DEMO_MODE_PACKET_LENGTH] = {0}; + +FirmwareInfo_t g_FirmwareInfo; +u8 g_LogModePacket[DEBUG_MODE_PACKET_LENGTH] = {0}; +u16 g_FirmwareMode; + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + +#if defined(CONFIG_ENABLE_GESTURE_DEBUG_MODE) +u8 _gGestureWakeupPacket[GESTURE_DEBUG_MODE_PACKET_LENGTH] = {0}; +#elif defined(CONFIG_ENABLE_GESTURE_INFORMATION_MODE) +u8 _gGestureWakeupPacket[GESTURE_WAKEUP_INFORMATION_PACKET_LENGTH] = {0}; +#else +u8 _gGestureWakeupPacket[DEMO_MODE_PACKET_LENGTH] = {0}; // for MSG21XXA : packet length(DEMO_MODE_PACKET_LENGTH) , for MSG22XX : packet length(GESTURE_WAKEUP_PACKET_LENGTH) +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +u8 g_GestureDebugFlag = 0x00; +u8 g_GestureDebugMode = 0x00; +u8 g_LogGestureDebug[GESTURE_DEBUG_MODE_PACKET_LENGTH] = {0}; +#endif // CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE +u32 g_LogGestureInfor[GESTURE_WAKEUP_INFORMATION_PACKET_LENGTH] = {0}; +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE + +u32 g_GestureWakeupMode[2] = {0xFFFFFFFF, 0xFFFFFFFF}; +u8 g_GestureWakeupFlag = 0; +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION +u8 g_EnableTpProximity = 0; +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) +u8 g_FaceClosingTp = 0; // for QCOM platform -> 1 : close to, 0 : far away +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) +u8 g_FaceClosingTp = 1; // for MTK platform -> 0 : close to, 1 : far away +#endif +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +u8 g_IsUpdateFirmware = 0x00; + +/*=============================================================*/ +// LOCAL FUNCTION DECLARATION +/*=============================================================*/ + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +static void _DrvFwCtrlUpdateFirmwareBySwIdDoWork(struct work_struct *pWork); +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE +static void _DrvFwCtrlCoordinate(u8 *pRawData, u32 *pTranX, u32 *pTranY); +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +static s32 _DrvFwCtrlMsg22xxUpdateFirmware(u8 szFwData[][1024], EmemType_e eEmemType); + +/*=============================================================*/ +// LOCAL FUNCTION DEFINITION +/*=============================================================*/ + +static void _DrvFwCtrlEraseEmemC32(void) +{ + DBG("*** %s() ***\n", __func__); + + ///////////////////////// + //Erase all + ///////////////////////// + + // Enter gpio mode + RegSet16BitValue(0x161E, 0xBEAF); + + // Before gpio mode, set the control pin as the orginal status + RegSet16BitValue(0x1608, 0x0000); + RegSetLByteValue(0x160E, 0x10); + mdelay(10); + + // ptrim = 1, h'04[2] + RegSetLByteValue(0x1608, 0x04); + RegSetLByteValue(0x160E, 0x10); + mdelay(10); + + // ptm = 6, h'04[12:14] = b'110 + RegSetLByteValue(0x1609, 0x60); + RegSetLByteValue(0x160E, 0x10); + + // pmasi = 1, h'04[6] + RegSetLByteValue(0x1608, 0x44); + // pce = 1, h'04[11] + RegSetLByteValue(0x1609, 0x68); + // perase = 1, h'04[7] + RegSetLByteValue(0x1608, 0xC4); + // pnvstr = 1, h'04[5] + RegSetLByteValue(0x1608, 0xE4); + // pwe = 1, h'04[9] + RegSetLByteValue(0x1609, 0x6A); + // trigger gpio load + RegSetLByteValue(0x160E, 0x10); +} + +static void _DrvFwCtrlEraseEmemC33(EmemType_e eEmemType) +{ + DBG("*** %s() ***\n", __func__); + + // Stop mcu + RegSet16BitValue(0x0FE6, 0x0001); + + // Disable watchdog + RegSetLByteValue(0x3C60, 0x55); + RegSetLByteValue(0x3C61, 0xAA); + + // Set PROGRAM password + RegSetLByteValue(0x161A, 0xBA); + RegSetLByteValue(0x161B, 0xAB); + + // Clear pce + RegSetLByteValue(0x1618, 0x80); + + if (eEmemType == EMEM_ALL) + { + RegSetLByteValue(0x1608, 0x10); //mark + } + + RegSetLByteValue(0x1618, 0x40); + mdelay(10); + + RegSetLByteValue(0x1618, 0x80); + + // erase trigger + if (eEmemType == EMEM_MAIN) + { + RegSetLByteValue(0x160E, 0x04); //erase main + } + else + { + RegSetLByteValue(0x160E, 0x08); //erase all block + } +} + +static void _DrvFwCtrlMsg22xxGetTpVendorCode(u8 *pTpVendorCode) +{ + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG22XX) + { + u16 nRegData1, nRegData2; + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + // RIU password + RegSet16BitValue(0x161A, 0xABBA); + + RegSet16BitValue(0x1600, 0xC1E9); // Set start address for tp vendor code on info block(Actually, start reading from 0xC1E8) + + // Enable burst mode +// RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); + + RegSetLByteValue(0x160E, 0x01); + + nRegData1 = RegGet16BitValue(0x1604); + nRegData2 = RegGet16BitValue(0x1606); + + pTpVendorCode[0] = ((nRegData1 >> 8) & 0xFF); + pTpVendorCode[1] = (nRegData2 & 0xFF); + pTpVendorCode[2] = ((nRegData2 >> 8) & 0xFF); + + DBG("pTpVendorCode[0] = 0x%x , %c \n", pTpVendorCode[0], pTpVendorCode[0]); + DBG("pTpVendorCode[1] = 0x%x , %c \n", pTpVendorCode[1], pTpVendorCode[1]); + DBG("pTpVendorCode[2] = 0x%x , %c \n", pTpVendorCode[2], pTpVendorCode[2]); + + // Clear burst mode +// RegSet16BitValue(0x160C, RegGet16BitValue(0x160C) & (~0x01)); + + RegSet16BitValue(0x1600, 0x0000); + + // Clear RIU password + RegSet16BitValue(0x161A, 0x0000); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + } +} + +static u16 _DrvFwCtrlMsg22xxGetTrimByte1(void) +{ + u16 nRegData = 0; + u16 nTrimByte1 = 0; + + DBG("*** %s() ***\n", __func__); + + RegSet16BitValue(0x161E, 0xBEAF); + RegSet16BitValue(0x1608, 0x0006); + RegSet16BitValue(0x160E, 0x0010); + RegSet16BitValue(0x1608, 0x1006); + RegSet16BitValue(0x1600, 0x0001); + RegSet16BitValue(0x160E, 0x0010); + + mdelay(10); + + RegSet16BitValue(0x1608, 0x1846); + RegSet16BitValue(0x160E, 0x0010); + + mdelay(10); + + nRegData = RegGet16BitValue(0x1624); + nRegData = nRegData & 0xFF; + + RegSet16BitValue(0x161E, 0x0000); + + nTrimByte1 = nRegData; + + DBG("nTrimByte1 = 0x%X ***\n", nTrimByte1); + + return nTrimByte1; +} + +static void _DrvFwCtrlMsg22xxChangeVoltage(void) +{ + u16 nTrimValue = 0; + u16 nNewTrimValue = 0; + u16 nTempValue = 0; + + DBG("*** %s() ***\n", __func__); + + RegSet16BitValue(0x1840, 0xA55A); + + udelay(1000); // delay 1 ms + + nTrimValue = RegGet16BitValue(0x1820); + + udelay(1000); // delay 1 ms + + nTrimValue = nTrimValue & 0x1F; + nTempValue = 0x1F & nTrimValue; + nNewTrimValue = (nTempValue + 0x07); + + if (nNewTrimValue >= 0x20) + { + nNewTrimValue = nNewTrimValue - 0x20; + } + else + { + nNewTrimValue = nNewTrimValue; + } + + if ((nTempValue & 0x10) != 0x10) + { + if (nNewTrimValue >= 0x0F && nNewTrimValue < 0x1F) + { + nNewTrimValue = 0x0F; + } + else + { + nNewTrimValue = nNewTrimValue; + } + } + + RegSet16BitValue(0x1842, nNewTrimValue); + + udelay(1000); // delay 1 ms + + RegSet16BitValueOn(0x1842, BIT5); + + udelay(1000); // delay 1 ms +} + +static void _DrvFwCtrlMsg22xxRestoreVoltage(void) +{ + DBG("*** %s() ***\n", __func__); + + RegSet16BitValueOff(0x1842, BIT5); + + udelay(1000); // delay 1 ms + + RegSet16BitValue(0x1840, 0x0000); + + udelay(1000); // delay 1 ms +} + +static void _DrvFwCtrlMsg22xxEraseEmem(EmemType_e eEmemType) +{ + u32 i = 0; + u32 nEraseCount = 0; + u32 nMaxEraseTimes = 0; + u32 nTimeOut = 0; + u16 nRegData = 0; + u16 nTrimByte1 = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + + DBG("Erase start\n"); + + // Stop mcu + RegSet16BitValue(0x0FE6, 0x0001); + + nTrimByte1 = _DrvFwCtrlMsg22xxGetTrimByte1(); + + _DrvFwCtrlMsg22xxChangeVoltage(); + + // Disable watchdog + RegSetLByteValue(0x3C60, 0x55); + RegSetLByteValue(0x3C61, 0xAA); + + // Set PROGRAM password + RegSetLByteValue(0x161A, 0xBA); + RegSetLByteValue(0x161B, 0xAB); + + if (nTrimByte1 == 0xCA) + { + nMaxEraseTimes = MAX_ERASE_EFLASH_TIMES; + } + else + { + nMaxEraseTimes = 1; + } + + for (nEraseCount = 0; nEraseCount < nMaxEraseTimes; nEraseCount ++) + { + if (eEmemType == EMEM_ALL) // 48KB + 512Byte + { + DBG("Erase all block %d times\n", nEraseCount); + + // Clear pce + RegSetLByteValue(0x1618, 0x80); + mdelay(100); + + // Chip erase + RegSet16BitValue(0x160E, BIT3); + + DBG("Wait erase done flag\n"); + + while (1) // Wait erase done flag + { + nRegData = RegGet16BitValue(0x1610); // Memory status + nRegData = nRegData & BIT1; + + DBG("Wait erase done flag nRegData = 0x%x\n", nRegData); + + if (nRegData == BIT1) + { + break; + } + + mdelay(50); + + if ((nTimeOut ++) > 30) + { + DBG("Erase all block %d times failed. Timeout.\n", nEraseCount); + + if (nEraseCount == (nMaxEraseTimes - 1)) + { + goto EraseEnd; + } + } + } + } + else if (eEmemType == EMEM_MAIN) // 48KB (32+8+8) + { + DBG("Erase main block %d times\n", nEraseCount); + + for (i = 0; i < 3; i ++) + { + // Clear pce + RegSetLByteValue(0x1618, 0x80); + mdelay(10); + + if (i == 0) + { + RegSet16BitValue(0x1600, 0x0000); + } + else if (i == 1) + { + RegSet16BitValue(0x1600, 0x8000); + } + else if (i == 2) + { + RegSet16BitValue(0x1600, 0xA000); + } + + // Sector erase + RegSet16BitValue(0x160E, (RegGet16BitValue(0x160E) | BIT2)); + + DBG("Wait erase done flag\n"); + + nRegData = 0; + nTimeOut = 0; + + while (1) // Wait erase done flag + { + nRegData = RegGet16BitValue(0x1610); // Memory status + nRegData = nRegData & BIT1; + + DBG("Wait erase done flag nRegData = 0x%x\n", nRegData); + + if (nRegData == BIT1) + { + break; + } + mdelay(50); + + if ((nTimeOut ++) > 30) + { + DBG("Erase main block %d times failed. Timeout.\n", nEraseCount); + + if (nEraseCount == (nMaxEraseTimes - 1)) + { + goto EraseEnd; + } + } + } + } + } + else if (eEmemType == EMEM_INFO) // 512Byte + { + DBG("Erase info block %d times\n", nEraseCount); + + // Clear pce + RegSetLByteValue(0x1618, 0x80); + mdelay(10); + + RegSet16BitValue(0x1600, 0xC000); + + // Sector erase + RegSet16BitValue(0x160E, (RegGet16BitValue(0x160E) | BIT2)); + + DBG("Wait erase done flag\n"); + + while (1) // Wait erase done flag + { + nRegData = RegGet16BitValue(0x1610); // Memory status + nRegData = nRegData & BIT1; + + DBG("Wait erase done flag nRegData = 0x%x\n", nRegData); + + if (nRegData == BIT1) + { + break; + } + mdelay(50); + + if ((nTimeOut ++) > 30) + { + DBG("Erase info block %d times failed. Timeout.\n", nEraseCount); + + if (nEraseCount == (nMaxEraseTimes - 1)) + { + goto EraseEnd; + } + } + } + } + } + + _DrvFwCtrlMsg22xxRestoreVoltage(); + + EraseEnd: + + DBG("Erase end\n"); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); +} +static void _DrvFwCtrlMsg22xxProgramEmem(EmemType_e eEmemType) +{ + u32 i, j; + u32 nRemainSize = 0, nBlockSize = 0, nSize = 0, index = 0; + u32 nTimeOut = 0; + u16 nRegData = 0; +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + u8 szDbBusTxData[128] = {0}; +#ifdef CONFIG_ENABLE_UPDATE_FIRMWARE_WITH_SUPPORT_I2C_SPEED_400K + u32 nSizePerWrite = 1; +#else + u32 nSizePerWrite = 125; +#endif //CONFIG_ENABLE_UPDATE_FIRMWARE_WITH_SUPPORT_I2C_SPEED_400K +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + u8 szDbBusTxData[1024] = {0}; +#ifdef CONFIG_ENABLE_UPDATE_FIRMWARE_WITH_SUPPORT_I2C_SPEED_400K + u32 nSizePerWrite = 1; +#else + u32 nSizePerWrite = 1021; +#endif //CONFIG_ENABLE_UPDATE_FIRMWARE_WITH_SUPPORT_I2C_SPEED_400K +#endif + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + + // Hold reset pin before program + RegSetLByteValue(0x1E06, 0x00); + + DBG("Program start\n"); + + RegSet16BitValue(0x161A, 0xABBA); + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x80)); + + if (eEmemType == EMEM_MAIN) + { + DBG("Program main block\n"); + + RegSet16BitValue(0x1600, 0x0000); // Set start address of main block + nRemainSize = MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE * 1024; //48KB + index = 0; + } + else if (eEmemType == EMEM_INFO) + { + DBG("Program info block\n"); + + RegSet16BitValue(0x1600, 0xC000); // Set start address of info block + nRemainSize = MSG22XX_FIRMWARE_INFO_BLOCK_SIZE; //512Byte + index = MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE * 1024; + } + else + { + DBG("eEmemType = %d is not supported for program e-memory.\n", eEmemType); + return; + } + + RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); // Enable burst mode + + // Program start + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x16; + szDbBusTxData[2] = 0x02; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3); + + szDbBusTxData[0] = 0x20; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 1); + + i = 0; + + while (nRemainSize > 0) + { + if (nRemainSize > nSizePerWrite) + { + nBlockSize = nSizePerWrite; + } + else + { + nBlockSize = nRemainSize; + } + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x16; + szDbBusTxData[2] = 0x02; + + nSize = 3; + + for (j = 0; j < nBlockSize; j ++) + { + szDbBusTxData[3+j] = _gOneDimenFwData[index+(i*nSizePerWrite)+j]; + nSize ++; + } + i ++; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], nSize); + + nRemainSize = nRemainSize - nBlockSize; + } + + // Program end + szDbBusTxData[0] = 0x21; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 1); + + RegSet16BitValue(0x160C, RegGet16BitValue(0x160C) & (~0x01)); // Clear burst mode + + DBG("Wait write done flag\n"); + + while (1) // Wait write done flag + { + // Polling 0x1610 is 0x0002 + nRegData = RegGet16BitValue(0x1610); // Memory status + nRegData = nRegData & BIT1; + + DBG("Wait write done flag nRegData = 0x%x\n", nRegData); + + if (nRegData == BIT1) + { + break; + } + mdelay(10); + + if ((nTimeOut ++) > 30) + { + DBG("Write failed. Timeout.\n"); + + goto ProgramEnd; + } + } + + ProgramEnd: + + DBG("Program end\n"); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); +} + +static u32 _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EmemType_e eEmemType) +{ + u16 nCrcDown = 0; + u32 nRetVal = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + +#ifdef CONFIG_ENABLE_UPDATE_FIRMWARE_WITH_SUPPORT_I2C_SPEED_400K + // Stop MCU + RegSetLByteValue(0x0FE6, 0x01); + + // Change MCU clock deglich mux source + RegSet16BitValue(0x1E54, (RegGet16BitValue(0x1E54) | BIT0)); + + // Change PIU clock to 48 MHz + RegSet16BitValue(0x1E22, (RegGet16BitValue(0x1E22) | BIT14)); + + // Set MCU clock setting + RegSet16BitValue(0x1E22, (RegGet16BitValue(0x1E22) & (~(BIT3 | BIT2)))); + + // Set DB bus clock setting + RegSet16BitValue(0x1E24, (RegGet16BitValue(0x1E24) & (~(BIT3 | BIT2)))); +#endif //CONFIG_ENABLE_UPDATE_FIRMWARE_WITH_SUPPORT_I2C_SPEED_400K + + // RIU password + RegSet16BitValue(0x161A, 0xABBA); + + // Set PCE high + RegSetLByteValue(0x1618, 0x40); + + if (eEmemType == EMEM_MAIN) + { + // Set start address and end address for main block + RegSet16BitValue(0x1600, 0x0000); + RegSet16BitValue(0x1640, 0xBFF8); + } + else if (eEmemType == EMEM_INFO) + { + // Set start address and end address for info block + RegSet16BitValue(0x1600, 0xC000); + RegSet16BitValue(0x1640, 0xC1F8); + } + + // CRC reset + RegSet16BitValue(0x164E, 0x0001); + + RegSet16BitValue(0x164E, 0x0000); + + // Trigger CRC check + RegSetLByteValue(0x160E, 0x20); + mdelay(10); + + nCrcDown = RegGet16BitValue(0x164E); + + while (nCrcDown != 2) + { + DBG("Wait CRC down\n"); + mdelay(10); + nCrcDown = RegGet16BitValue(0x164E); + } + + nRetVal = RegGet16BitValue(0x1652); + nRetVal = (nRetVal << 16) | RegGet16BitValue(0x1650); + + DBG("Hardware CRC = 0x%x\n", nRetVal); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static void _DrvFwCtrlMsg22xxConvertFwDataTwoDimenToOneDimen(u8 szTwoDimenFwData[][1024], u8* pOneDimenFwData) +{ + u32 i, j; + + DBG("*** %s() ***\n", __func__); + + for (i = 0; i < (MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE+1); i ++) + { + if (i < MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE) // i < 48 + { + for (j = 0; j < 1024; j ++) + { + pOneDimenFwData[i*1024+j] = szTwoDimenFwData[i][j]; + } + } + else // i == 48 + { + for (j = 0; j < 512; j ++) + { + pOneDimenFwData[i*1024+j] = szTwoDimenFwData[i][j]; + } + } + } +} + +static s32 _DrvFwCtrlParsePacket(u8 *pPacket, u16 nLength, TouchInfo_t *pInfo) +{ + u8 nCheckSum = 0; + u32 nDeltaX = 0, nDeltaY = 0; + u32 nX = 0; + u32 nY = 0; +#ifdef CONFIG_SWAP_X_Y + u32 nTempX; + u32 nTempY; +#endif + u8 nCheckSumIndex = nLength-1; //Set default checksum index for demo mode + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_ENABLE_COUNT_REPORT_RATE + if (g_IsEnableReportRate == 1) + { + if (g_InterruptCount == 4294967296) + { + g_InterruptCount = 0; // Reset count if overflow + DBG("g_InterruptCount reset to 0\n"); + } + + if (g_InterruptCount == 0) + { + // Get start time + do_gettimeofday(&g_StartTime); + + DBG("Start time : %lu sec, %lu msec\n", g_StartTime.tv_sec, g_StartTime.tv_usec); + } + + g_InterruptCount ++; + + DBG("g_InterruptCount = %d\n", g_InterruptCount); + } +#endif //CONFIG_ENABLE_COUNT_REPORT_RATE + + if (IS_FIRMWARE_DATA_LOG_ENABLED) + { + if (g_FirmwareMode == FIRMWARE_MODE_DEMO_MODE) + { + nCheckSumIndex = 7; + } + else if (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE || g_FirmwareMode == FIRMWARE_MODE_RAW_DATA_MODE) + { + nCheckSumIndex = 31; + } + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + if (g_GestureWakeupFlag == 1) + { + nCheckSumIndex = nLength-1; + } +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + } //IS_FIRMWARE_DATA_LOG_ENABLED + + nCheckSum = DrvCommonCalculateCheckSum(&pPacket[0], nCheckSumIndex); + DBG("check sum : [%x] == [%x]? \n", pPacket[nCheckSumIndex], nCheckSum); + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + if (g_GestureWakeupFlag == 1) + { + u8 nWakeupMode = 0; + u8 bIsCorrectFormat = 0; + + DBG("received raw data from touch panel as following:\n"); + DBG("pPacket[0]=%x \n pPacket[1]=%x pPacket[2]=%x pPacket[3]=%x pPacket[4]=%x pPacket[5]=%x \n", \ + pPacket[0], pPacket[1], pPacket[2], pPacket[3], pPacket[4], pPacket[5]); + + if (g_ChipType == CHIP_TYPE_MSG22XX && pPacket[0] == 0xA7 && pPacket[1] == 0x00 && pPacket[2] == 0x06 && pPacket[3] == PACKET_TYPE_GESTURE_WAKEUP) + { + nWakeupMode = pPacket[4]; + bIsCorrectFormat = 1; + } +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE + else if (g_ChipType == CHIP_TYPE_MSG22XX && pPacket[0] == 0xA7 && pPacket[1] == 0x00 && pPacket[2] == 0x80 && pPacket[3] == PACKET_TYPE_GESTURE_DEBUG) + { + u32 a = 0; + + nWakeupMode = pPacket[4]; + bIsCorrectFormat = 1; + + for (a = 0; a < 0x80; a ++) + { + g_LogGestureDebug[a] = pPacket[a]; + } + + if (!(pPacket[5] >> 7))// LCM Light Flag = 0 + { + nWakeupMode = 0xFE; + DBG("gesture debug mode LCM flag = 0\n"); + } + } +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE + else if (g_ChipType == CHIP_TYPE_MSG22XX && pPacket[0] == 0xA7 && pPacket[1] == 0x00 && pPacket[2] == 0x80 && pPacket[3] == PACKET_TYPE_GESTURE_INFORMATION) + { + u32 a = 0; + u32 nTmpCount = 0; + + nWakeupMode = pPacket[4]; + bIsCorrectFormat = 1; + + for (a = 0; a < 6; a ++)//header + { + g_LogGestureInfor[nTmpCount] = pPacket[a]; + nTmpCount++; + } + + for (a = 6; a < 126; a = a+3)//parse packet to coordinate + { + u32 nTranX = 0; + u32 nTranY = 0; + + _DrvFwCtrlCoordinate(&pPacket[a], &nTranX, &nTranY); + g_LogGestureInfor[nTmpCount] = nTranX; + nTmpCount++; + g_LogGestureInfor[nTmpCount] = nTranY; + nTmpCount++; + } + + g_LogGestureInfor[nTmpCount] = pPacket[126]; //Dummy + nTmpCount++; + g_LogGestureInfor[nTmpCount] = pPacket[127]; //checksum + nTmpCount++; + DBG("gesture information mode Count = %d\n", nTmpCount); + } +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE + else if (g_ChipType == CHIP_TYPE_MSG21XXA && pPacket[0] == 0x52 && pPacket[1] == 0xFF && pPacket[2] == 0xFF && pPacket[3] == 0xFF && pPacket[4] == 0xFF && pPacket[6] == 0xFF) + { + nWakeupMode = pPacket[5]; + bIsCorrectFormat = 1; + } + + if (bIsCorrectFormat) + { + DBG("nWakeupMode = 0x%x\n", nWakeupMode); + + switch (nWakeupMode) + { + + + case 0x58: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_DOUBLE_CLICK_FLAG; + + DBG("Light up screen by DOUBLE_CLICK gesture wakeup.\n"); + + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x60: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_UP_DIRECT_FLAG; + + DBG("Light up screen by UP_DIRECT gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_UP, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_UP, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x61: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_DOWN_DIRECT_FLAG; + + DBG("Light up screen by DOWN_DIRECT gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_DOWN, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_DOWN, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x62: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_LEFT_DIRECT_FLAG; + + DBG("Light up screen by LEFT_DIRECT gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_LEFT, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_LEFT, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x63: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RIGHT_DIRECT_FLAG; + + DBG("Light up screen by RIGHT_DIRECT gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_RIGHT, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_RIGHT, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x64: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_m_CHARACTER_FLAG; + + DBG("Light up screen by m_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_M, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_M, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x65: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_W_CHARACTER_FLAG; + + DBG("Light up screen by W_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_W, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_W, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x66: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_C_CHARACTER_FLAG; + + DBG("Light up screen by C_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_C, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_C, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x67: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_e_CHARACTER_FLAG; + + DBG("Light up screen by e_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_E, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_E, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x68: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_V_CHARACTER_FLAG; + + DBG("Light up screen by V_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_V, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_V, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x69: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_O_CHARACTER_FLAG; + + DBG("Light up screen by O_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_O, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_O, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x6A: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_S_CHARACTER_FLAG; + + DBG("Light up screen by S_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_S, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_S, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x6B: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_Z_CHARACTER_FLAG; + + DBG("Light up screen by Z_CHARACTER gesture wakeup.\n"); + +// input_report_key(g_InputDevice, KEY_Z, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, KEY_Z, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x6C: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE1_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE1_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER1, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER1, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x6D: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE2_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE2_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER2, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER2, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x6E: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE3_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE3_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER3, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER3, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; +#ifdef CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE + case 0x6F: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE4_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE4_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER4, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER4, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x70: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE5_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE5_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER5, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER5, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x71: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE6_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE6_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER6, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER6, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x72: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE7_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE7_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER7, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER7, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x73: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE8_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE8_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER8, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER8, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x74: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE9_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE9_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER9, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER9, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x75: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE10_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE10_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER10, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER10, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x76: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE11_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE11_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER11, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER11, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x77: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE12_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE12_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER12, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER12, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x78: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE13_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE13_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER13, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER13, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x79: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE14_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE14_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER14, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER14, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x7A: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE15_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE15_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER15, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER15, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x7B: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE16_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE16_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER16, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER16, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x7C: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE17_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE17_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER17, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER17, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x7D: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE18_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE18_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER18, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER18, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x7E: + _gGestureWakeupValue[0] = GESTURE_WAKEUP_MODE_RESERVE19_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE19_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER19, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER19, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x7F: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE20_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE20_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER20, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER20, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x80: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE21_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE21_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER21, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER21, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x81: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE22_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE22_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER22, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER22, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x82: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE23_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE23_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER23, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER23, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x83: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE24_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE24_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER24, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER24, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x84: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE25_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE25_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER25, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER25, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x85: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE26_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE26_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER26, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER26, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x86: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE27_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE27_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER27, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER27, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x87: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE28_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE28_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER28, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER28, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x88: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE29_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE29_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER29, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER29, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x89: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE30_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE30_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER30, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER30, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x8A: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE31_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE31_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER31, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER31, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x8B: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE32_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE32_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER32, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER32, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x8C: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE33_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE33_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER33, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER33, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x8D: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE34_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE34_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER34, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER34, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x8E: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE35_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE35_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER35, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER35, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x8F: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE36_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE36_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER36, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER36, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x90: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE37_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE37_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER37, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER37, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x91: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE38_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE38_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER38, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER38, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x92: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE39_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE39_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER39, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER39, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x93: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE40_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE40_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER40, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER40, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x94: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE41_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE41_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER41, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER41, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x95: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE42_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE42_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER42, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER42, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x96: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE43_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE43_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER43, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER43, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x97: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE44_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE44_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER44, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER44, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x98: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE45_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE45_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER45, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER45, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x99: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE46_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE46_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER46, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER46, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x9A: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE47_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE47_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER47, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER47, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x9B: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE48_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE48_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER48, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER48, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x9C: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE49_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE49_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER49, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER49, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x9D: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE50_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE50_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER50, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER50, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; + case 0x9E: + _gGestureWakeupValue[1] = GESTURE_WAKEUP_MODE_RESERVE51_FLAG; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_RESERVE51_FLAG gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER51, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER51, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; +#endif //CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE + case 0xFF://Gesture Fail + _gGestureWakeupValue[1] = 0xFF; + + DBG("Light up screen by GESTURE_WAKEUP_MODE_FAIL gesture wakeup.\n"); + +// input_report_key(g_InputDevice, RESERVER51, 1); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); +// input_report_key(g_InputDevice, RESERVER51, 0); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice); + break; +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + default: + _gGestureWakeupValue[0] = 0; + _gGestureWakeupValue[1] = 0; + DBG("Un-supported gesture wakeup mode. Please check your device driver code.\n"); + break; + } + + DBG("_gGestureWakeupValue[0] = 0x%x\n", _gGestureWakeupValue[0]); + DBG("_gGestureWakeupValue[1] = 0x%x\n", _gGestureWakeupValue[1]); + } + else + { + /*DBG("gesture wakeup fail1111111111111.\n"); + input_report_key(g_InputDevice, KEY_POWER, 1); + input_sync(g_InputDevice); + input_report_key(g_InputDevice, KEY_POWER, 0); + input_sync(g_InputDevice);*/ + DBG("gesture wakeup packet format is incorrect.\n"); + } + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE + // Notify android application to retrieve log data mode packet from device driver by sysfs. + if (g_GestureKObj != NULL && pPacket[3] == PACKET_TYPE_GESTURE_DEBUG) + { + char *pEnvp[2]; + s32 nRetVal = 0; + + pEnvp[0] = "STATUS=GET_GESTURE_DEBUG"; + pEnvp[1] = NULL; + + nRetVal = kobject_uevent_env(g_GestureKObj, KOBJ_CHANGE, pEnvp); + DBG("kobject_uevent_env() nRetVal = %d\n", nRetVal); + + } +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + + return -1; + } +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + + DBG("received raw data from touch panel as following:\n"); + DBG("pPacket[0]=%x \n pPacket[1]=%x pPacket[2]=%x pPacket[3]=%x pPacket[4]=%x \n pPacket[5]=%x pPacket[6]=%x pPacket[7]=%x \n", \ + pPacket[0], pPacket[1], pPacket[2], pPacket[3], pPacket[4], pPacket[5], pPacket[6], pPacket[7]); + + if ((pPacket[nCheckSumIndex] == nCheckSum) && (pPacket[0] == 0x52)) // check the checksum of packet + { + nX = (((pPacket[1] & 0xF0) << 4) | pPacket[2]); // parse the packet to coordinate + nY = (((pPacket[1] & 0x0F) << 8) | pPacket[3]); + + nDeltaX = (((pPacket[4] & 0xF0) << 4) | pPacket[5]); + nDeltaY = (((pPacket[4] & 0x0F) << 8) | pPacket[6]); + + DBG("[x,y]=[%d,%d]\n", nX, nY); + DBG("[delta_x,delta_y]=[%d,%d]\n", nDeltaX, nDeltaY); + +#ifdef CONFIG_SWAP_X_Y + nTempY = nX; + nTempX = nY; + nX = nTempX; + nY = nTempY; + + nTempY = nDeltaX; + nTempX = nDeltaY; + nDeltaX = nTempX; + nDeltaY = nTempY; +#endif + +#ifdef CONFIG_REVERSE_X + nX = 2047 - nX; + nDeltaX = 4095 - nDeltaX; +#endif + +#ifdef CONFIG_REVERSE_Y + nY = 2047 - nY; + nDeltaY = 4095 - nDeltaY; +#endif + + /* + * pPacket[0]:id, pPacket[1]~pPacket[3]:the first point abs, pPacket[4]~pPacket[6]:the relative distance between the first point abs and the second point abs + * when pPacket[1]~pPacket[4], pPacket[6] is 0xFF, keyevent, pPacket[5] to judge which key press. + * pPacket[1]~pPacket[6] all are 0xFF, release touch + */ + if ((pPacket[1] == 0xFF) && (pPacket[2] == 0xFF) && (pPacket[3] == 0xFF) && (pPacket[4] == 0xFF) && (pPacket[6] == 0xFF)) + { + pInfo->tPoint[0].nX = 0; // final X coordinate + pInfo->tPoint[0].nY = 0; // final Y coordinate + + if ((pPacket[5] != 0x00) && (pPacket[5] != 0xFF)) /* pPacket[5] is key value */ + { /* 0x00 is key up, 0xff is touch screen up */ +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + DBG("g_EnableTpProximity = %d, pPacket[5] = 0x%x\n", g_EnableTpProximity, pPacket[5]); + + if (g_EnableTpProximity && ((pPacket[5] == 0x80) || (pPacket[5] == 0x40))) + { + if (pPacket[5] == 0x80) // close to + { + g_FaceClosingTp = 1; + } + else if (pPacket[5] == 0x40) // far away + { + g_FaceClosingTp = 0; + } + + DBG("g_FaceClosingTp = %d\n", g_FaceClosingTp); + + return -1; + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + if (g_EnableTpProximity && ((pPacket[5] == 0x80) || (pPacket[5] == 0x40))) + { + int nErr; + hwm_sensor_data tSensorData; + + if (pPacket[5] == 0x80) // close to + { + g_FaceClosingTp = 0; + } + else if (pPacket[5] == 0x40) // far away + { + g_FaceClosingTp = 1; + } + + DBG("g_FaceClosingTp = %d\n", g_FaceClosingTp); + + // map and store data to hwm_sensor_data + tSensorData.values[0] = DrvPlatformLyrGetTpPsData(); + tSensorData.value_divide = 1; + tSensorData.status = SENSOR_STATUS_ACCURACY_MEDIUM; + // let up layer to know + if ((nErr = hwmsen_get_interrupt_data(ID_PROXIMITY, &tSensorData))) + { + DBG("call hwmsen_get_interrupt_data() failed = %d\n", nErr); + } + + return -1; + } +#endif +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + + /* 0x00 is key up, 0xff is touch screen up */ + DBG("touch key down pPacket[5]=%d\n", pPacket[5]); + + pInfo->nFingerNum = 1; + pInfo->nTouchKeyCode = pPacket[5]; + pInfo->nTouchKeyMode = 1; + +#ifdef CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE + pInfo->nFingerNum = 1; + pInfo->nTouchKeyCode = 0; + pInfo->nTouchKeyMode = 0; + + if (pPacket[5] == 4) // TOUCH_KEY_HOME + { + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[1][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[1][1]; + } + else if (pPacket[5] == 1) // TOUCH_KEY_MENU + { + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[0][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[0][1]; + } + else if (pPacket[5] == 2) // TOUCH_KEY_BACK + { + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[2][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[2][1]; + } + else if (pPacket[5] == 8) // TOUCH_KEY_SEARCH + { + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[3][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[3][1]; + } + else + { + DBG("multi-key is pressed.\n"); + + return -1; + } +#endif //CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE + } + else + { /* key up or touch up */ + DBG("touch end\n"); + pInfo->nFingerNum = 0; //touch end + pInfo->nTouchKeyCode = 0; + pInfo->nTouchKeyMode = 0; + } + } + else + { + pInfo->nTouchKeyMode = 0; //Touch on screen... + +// if ((nDeltaX == 0) && (nDeltaY == 0)) + if ( +#ifdef CONFIG_REVERSE_X + (nDeltaX == 4095) +#else + (nDeltaX == 0) +#endif + && +#ifdef CONFIG_REVERSE_Y + (nDeltaY == 4095) +#else + (nDeltaY == 0) +#endif + ) + { /* one touch point */ + pInfo->nFingerNum = 1; // one touch + pInfo->tPoint[0].nX = (nX * TOUCH_SCREEN_X_MAX) / TPD_WIDTH; + pInfo->tPoint[0].nY = (nY * TOUCH_SCREEN_Y_MAX) / TPD_HEIGHT; + DBG("[%s]: [x,y]=[%d,%d]\n", __func__, nX, nY); + DBG("[%s]: point[x,y]=[%d,%d]\n", __func__, pInfo->tPoint[0].nX, pInfo->tPoint[0].nY); + } + else + { /* two touch points */ + u32 nX2, nY2; + + pInfo->nFingerNum = 2; // two touch + /* Finger 1 */ + pInfo->tPoint[0].nX = (nX * TOUCH_SCREEN_X_MAX) / TPD_WIDTH; + pInfo->tPoint[0].nY = (nY * TOUCH_SCREEN_Y_MAX) / TPD_HEIGHT; + DBG("[%s]: point1[x,y]=[%d,%d]\n", __func__, pInfo->tPoint[0].nX, pInfo->tPoint[0].nY); + /* Finger 2 */ + if (nDeltaX > 2048) // transform the unsigned value to signed value + { + nDeltaX -= 4096; + } + + if (nDeltaY > 2048) + { + nDeltaY -= 4096; + } + + nX2 = (u32)(nX + nDeltaX); + nY2 = (u32)(nY + nDeltaY); + + pInfo->tPoint[1].nX = (nX2 * TOUCH_SCREEN_X_MAX) / TPD_WIDTH; + pInfo->tPoint[1].nY = (nY2 * TOUCH_SCREEN_Y_MAX) / TPD_HEIGHT; + DBG("[%s]: point2[x,y]=[%d,%d]\n", __func__, pInfo->tPoint[1].nX, pInfo->tPoint[1].nY); + } + } + } + else if (pPacket[nCheckSumIndex] == nCheckSum && pPacket[0] == 0x62) + { + nX = ((pPacket[1] << 8) | pPacket[2]); // Position_X + nY = ((pPacket[3] << 8) | pPacket[4]); // Position_Y + + nDeltaX = ((pPacket[13] << 8) | pPacket[14]); // Distance_X + nDeltaY = ((pPacket[15] << 8) | pPacket[16]); // Distance_Y + + DBG("[x,y]=[%d,%d]\n", nX, nY); + DBG("[delta_x,delta_y]=[%d,%d]\n", nDeltaX, nDeltaY); + +#ifdef CONFIG_SWAP_X_Y + nTempY = nX; + nTempX = nY; + nX = nTempX; + nY = nTempY; + + nTempY = nDeltaX; + nTempX = nDeltaY; + nDeltaX = nTempX; + nDeltaY = nTempY; +#endif + +#ifdef CONFIG_REVERSE_X + nX = 2047 - nX; + nDeltaX = 4095 - nDeltaX; +#endif + +#ifdef CONFIG_REVERSE_Y + nY = 2047 - nY; + nDeltaY = 4095 - nDeltaY; +#endif + + /* + * pPacket[0]:id, pPacket[1]~pPacket[4]:the first point abs, pPacket[13]~pPacket[16]:the relative distance between the first point abs and the second point abs + * when pPacket[1]~pPacket[7] is 0xFF, keyevent, pPacket[8] to judge which key press. + * pPacket[1]~pPacket[8] all are 0xFF, release touch + */ + if ((pPacket[1] == 0xFF) && (pPacket[2] == 0xFF) && (pPacket[3] == 0xFF) && (pPacket[4] == 0xFF) && (pPacket[5] == 0xFF) && (pPacket[6] == 0xFF) && (pPacket[7] == 0xFF)) + { + pInfo->tPoint[0].nX = 0; // final X coordinate + pInfo->tPoint[0].nY = 0; // final Y coordinate + + if ((pPacket[8] != 0x00) && (pPacket[8] != 0xFF)) /* pPacket[8] is key value */ + { /* 0x00 is key up, 0xff is touch screen up */ + DBG("touch key down pPacket[8]=%d\n", pPacket[8]); + pInfo->nFingerNum = 1; + pInfo->nTouchKeyCode = pPacket[8]; + pInfo->nTouchKeyMode = 1; + +#ifdef CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE + pInfo->nFingerNum = 1; + pInfo->nTouchKeyCode = 0; + pInfo->nTouchKeyMode = 0; + + if (pPacket[8] == 4) // TOUCH_KEY_HOME + { + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[1][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[1][1]; + } + else if (pPacket[8] == 1) // TOUCH_KEY_MENU + { + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[0][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[0][1]; + } + else if (pPacket[8] == 2) // TOUCH_KEY_BACK + { + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[2][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[2][1]; + } + else if (pPacket[8] == 8) // TOUCH_KEY_SEARCH + { + pInfo->tPoint[0].nX = g_TpVirtualKeyDimLocal[3][0]; + pInfo->tPoint[0].nY = g_TpVirtualKeyDimLocal[3][1]; + } + else + { + DBG("multi-key is pressed.\n"); + + return -1; + } +#endif //CONFIG_ENABLE_REPORT_KEY_WITH_COORDINATE + } + else + { /* key up or touch up */ + DBG("touch end\n"); + pInfo->nFingerNum = 0; //touch end + pInfo->nTouchKeyCode = 0; + pInfo->nTouchKeyMode = 0; + } + } + else + { + pInfo->nTouchKeyMode = 0; //Touch on screen... + +// if ((nDeltaX == 0) && (nDeltaY == 0)) + if ( +#ifdef CONFIG_REVERSE_X + (nDeltaX == 4095) +#else + (nDeltaX == 0) +#endif + && +#ifdef CONFIG_REVERSE_Y + (nDeltaY == 4095) +#else + (nDeltaY == 0) +#endif + ) + { /* one touch point */ + pInfo->nFingerNum = 1; // one touch + pInfo->tPoint[0].nX = (nX * TOUCH_SCREEN_X_MAX) / TPD_WIDTH; + pInfo->tPoint[0].nY = (nY * TOUCH_SCREEN_Y_MAX) / TPD_HEIGHT; + DBG("[%s]: [x,y]=[%d,%d]\n", __func__, nX, nY); + DBG("[%s]: point[x,y]=[%d,%d]\n", __func__, pInfo->tPoint[0].nX, pInfo->tPoint[0].nY); + } + else + { /* two touch points */ + u32 nX2, nY2; + + pInfo->nFingerNum = 2; // two touch + /* Finger 1 */ + pInfo->tPoint[0].nX = (nX * TOUCH_SCREEN_X_MAX) / TPD_WIDTH; + pInfo->tPoint[0].nY = (nY * TOUCH_SCREEN_Y_MAX) / TPD_HEIGHT; + DBG("[%s]: point1[x,y]=[%d,%d]\n", __func__, pInfo->tPoint[0].nX, pInfo->tPoint[0].nY); + /* Finger 2 */ + if (nDeltaX > 2048) // transform the unsigned value to signed value + { + nDeltaX -= 4096; + } + + if (nDeltaY > 2048) + { + nDeltaY -= 4096; + } + + nX2 = (u32)(nX + nDeltaX); + nY2 = (u32)(nY + nDeltaY); + + pInfo->tPoint[1].nX = (nX2 * TOUCH_SCREEN_X_MAX) / TPD_WIDTH; + pInfo->tPoint[1].nY = (nY2 * TOUCH_SCREEN_Y_MAX) / TPD_HEIGHT; + DBG("[%s]: point2[x,y]=[%d,%d]\n", __func__, pInfo->tPoint[1].nX, pInfo->tPoint[1].nY); + } + + // Notify android application to retrieve log data mode packet from device driver by sysfs. + if (g_TouchKObj != NULL) + { + char *pEnvp[2]; + s32 nRetVal = 0; + + pEnvp[0] = "STATUS=GET_PACKET"; + pEnvp[1] = NULL; + + nRetVal = kobject_uevent_env(g_TouchKObj, KOBJ_CHANGE, pEnvp); + DBG("kobject_uevent_env() nRetVal = %d\n", nRetVal); + } + } + } + else + { + DBG("pPacket[0]=0x%x, pPacket[7]=0x%x, nCheckSum=0x%x\n", pPacket[0], pPacket[7], nCheckSum); + + if (pPacket[nCheckSumIndex] != nCheckSum) + { + DBG("WRONG CHECKSUM\n"); + return -1; + } + + if (g_FirmwareMode == FIRMWARE_MODE_DEMO_MODE && pPacket[0] != 0x52) + { + DBG("WRONG DEMO MODE HEADER\n"); + return -1; + } + else if (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE && pPacket[0] != 0x62) + { + DBG("WRONG DEBUG MODE HEADER\n"); + return -1; + } + else if (g_FirmwareMode == FIRMWARE_MODE_RAW_DATA_MODE && pPacket[0] != 0x62) + { + DBG("WRONG RAW DATA MODE HEADER\n"); + return -1; + } + } + + return 0; +} + +static void _DrvFwCtrlStoreFirmwareData(u8 *pBuf, u32 nSize) +{ + u32 nCount = nSize / 1024; + u32 nRemainder = nSize % 1024; + u32 i; + + DBG("*** %s() ***\n", __func__); + + if (nCount > 0) // nSize >= 1024 + { + for (i = 0; i < nCount; i ++) + { + memcpy(g_FwData[g_FwDataCount], pBuf+(i*1024), 1024); + + g_FwDataCount ++; + } + + if (nRemainder > 0) // Handle special firmware size like MSG22XX(48.5KB) + { + DBG("nRemainder = %d\n", nRemainder); + + memcpy(g_FwData[g_FwDataCount], pBuf+(i*1024), nRemainder); + + g_FwDataCount ++; + } + } + else // nSize < 1024 + { + if (nSize > 0) + { + memcpy(g_FwData[g_FwDataCount], pBuf, nSize); + + g_FwDataCount ++; + } + } + + DBG("*** g_FwDataCount = %d ***\n", g_FwDataCount); + + if (pBuf != NULL) + { + DBG("*** buf[0] = %c ***\n", pBuf[0]); + } +} + +static u16 _DrvFwCtrlMsg21xxaGetSwId(EmemType_e eEmemType) +{ + u16 nRetVal = 0; + u16 nRegData = 0; + u8 szDbBusTxData[5] = {0}; + u8 szDbBusRxData[4] = {0}; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // cmd + RegSet16BitValue(0x3CE4, 0xA4AB); //bank:reg_PIU_MISC_0, addr:h0072 + + // TP SW reset + RegSet16BitValue(0x1E04, 0x7d60); //bank:chip, addr:h0002 + RegSet16BitValue(0x1E04, 0x829F); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + + mdelay(100); + + // Polling 0x3CE4 is 0x5B58 + do + { + nRegData = RegGet16BitValue(0x3CE4); //bank:reg_PIU_MISC_0, addr:h0072 + } while (nRegData != 0x5B58); + + szDbBusTxData[0] = 0x72; + if (eEmemType == EMEM_MAIN) // Read SW ID from main block + { + szDbBusTxData[1] = 0x7F; + szDbBusTxData[2] = 0x55; + } + else if (eEmemType == EMEM_INFO) // Read SW ID from info block + { + szDbBusTxData[1] = 0x83; + szDbBusTxData[2] = 0x00; + } + szDbBusTxData[3] = 0x00; + szDbBusTxData[4] = 0x04; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 5); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 4); + + DBG("szDbBusRxData[0,1,2,3] = 0x%x,0x%x,0x%x,0x%x\n", szDbBusRxData[0], szDbBusRxData[1], szDbBusRxData[2], szDbBusRxData[3]); + + if ((szDbBusRxData[0] >= 0x30 && szDbBusRxData[0] <= 0x39) + &&(szDbBusRxData[1] >= 0x30 && szDbBusRxData[1] <= 0x39) + &&(szDbBusRxData[2] >= 0x31 && szDbBusRxData[2] <= 0x39)) + { + nRetVal = (szDbBusRxData[0]-0x30)*100+(szDbBusRxData[1]-0x30)*10+(szDbBusRxData[2]-0x30); + } + + DBG("SW ID = 0x%x\n", nRetVal); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static u16 _DrvFwCtrlMsg22xxGetSwId(EmemType_e eEmemType) +{ + u16 nRetVal = 0; + u16 nRegData1 = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + // RIU password + RegSet16BitValue(0x161A, 0xABBA); + + if (eEmemType == EMEM_MAIN) // Read SW ID from main block + { + RegSet16BitValue(0x1600, 0xBFF4); // Set start address for main block SW ID + } + else if (eEmemType == EMEM_INFO) // Read SW ID from info block + { + RegSet16BitValue(0x1600, 0xC1EC); // Set start address for info block SW ID + } + + /* + Ex. SW ID in Main Block : + Major low byte at address 0xBFF4 + Major high byte at address 0xBFF5 + + SW ID in Info Block : + Major low byte at address 0xC1EC + Major high byte at address 0xC1ED + */ + + // Enable burst mode +// RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); + + RegSetLByteValue(0x160E, 0x01); + + nRegData1 = RegGet16BitValue(0x1604); +// nRegData2 = RegGet16BitValue(0x1606); + + nRetVal = ((nRegData1 >> 8) & 0xFF) << 8; + nRetVal |= (nRegData1 & 0xFF); + + // Clear burst mode +// RegSet16BitValue(0x160C, RegGet16BitValue(0x160C) & (~0x01)); + + RegSet16BitValue(0x1600, 0x0000); + + // Clear RIU password + RegSet16BitValue(0x161A, 0x0000); + + DBG("SW ID = 0x%x\n", nRetVal); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +u32 DrvFwCtrlReadDQMemValue(u16 nAddr) +{ + // TODO : not support yet + + return 0; +} + +void DrvFwCtrlWriteDQMemValue(u16 nAddr, u32 nData) +{ + // TODO : not support yet +} + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +//-------------------------Start of SW ID for MSG22XX----------------------------// + +static u32 _DrvFwCtrlMsg22xxRetrieveFirmwareCrcFromEFlash(EmemType_e eEmemType) +{ + u32 nRetVal = 0; + u16 nRegData1 = 0, nRegData2 = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + // RIU password + RegSet16BitValue(0x161A, 0xABBA); + + if (eEmemType == EMEM_MAIN) // Read main block CRC(48KB-4) from main block + { + RegSet16BitValue(0x1600, 0xBFFC); // Set start address for main block CRC + } + else if (eEmemType == EMEM_INFO) // Read info block CRC(512Byte-4) from info block + { + RegSet16BitValue(0x1600, 0xC1FC); // Set start address for info block CRC + } + + // Enable burst mode + RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); + + RegSetLByteValue(0x160E, 0x01); + + nRegData1 = RegGet16BitValue(0x1604); + nRegData2 = RegGet16BitValue(0x1606); + + nRetVal = ((nRegData2 >> 8) & 0xFF) << 24; + nRetVal |= (nRegData2 & 0xFF) << 16; + nRetVal |= ((nRegData1 >> 8) & 0xFF) << 8; + nRetVal |= (nRegData1 & 0xFF); + + DBG("CRC = 0x%x\n", nRetVal); + + // Clear burst mode + RegSet16BitValue(0x160C, RegGet16BitValue(0x160C) & (~0x01)); + + RegSet16BitValue(0x1600, 0x0000); + + // Clear RIU password + RegSet16BitValue(0x161A, 0x0000); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static u32 _DrvFwCtrlMsg22xxRetrieveFrimwareCrcFromBinFile(u8 szTmpBuf[], EmemType_e eEmemType) +{ + u32 nRetVal = 0; + + DBG("*** %s() eEmemType = %d ***\n", __func__, eEmemType); + + if (szTmpBuf != NULL) + { + if (eEmemType == EMEM_MAIN) // Read main block CRC(48KB-4) from bin file + { + nRetVal = szTmpBuf[0xBFFF] << 24; + nRetVal |= szTmpBuf[0xBFFE] << 16; + nRetVal |= szTmpBuf[0xBFFD] << 8; + nRetVal |= szTmpBuf[0xBFFC]; + } + else if (eEmemType == EMEM_INFO) // Read info block CRC(512Byte-4) from bin file + { + nRetVal = szTmpBuf[0xC1FF] << 24; + nRetVal |= szTmpBuf[0xC1FE] << 16; + nRetVal |= szTmpBuf[0xC1FD] << 8; + nRetVal |= szTmpBuf[0xC1FC]; + } + } + + return nRetVal; +} + +static s32 _DrvFwCtrlMsg22xxUpdateFirmwareBySwId(void) +{ + s32 nRetVal = -1; + u32 nCrcInfoA = 0, nCrcInfoB = 0, nCrcMainA = 0, nCrcMainB = 0; + + DBG("*** %s() ***\n", __func__); + + DBG("_gIsUpdateInfoBlockFirst = %d, g_IsUpdateFirmware = 0x%x\n", _gIsUpdateInfoBlockFirst, g_IsUpdateFirmware); + + _DrvFwCtrlMsg22xxConvertFwDataTwoDimenToOneDimen(g_FwData, _gOneDimenFwData); + + if (_gIsUpdateInfoBlockFirst == 1) + { + if ((g_IsUpdateFirmware & 0x10) == 0x10) + { + _DrvFwCtrlMsg22xxEraseEmem(EMEM_INFO); + _DrvFwCtrlMsg22xxProgramEmem(EMEM_INFO); + + nCrcInfoA = _DrvFwCtrlMsg22xxRetrieveFrimwareCrcFromBinFile(_gOneDimenFwData, EMEM_INFO); + nCrcInfoB = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_INFO); + + DBG("nCrcInfoA = 0x%x, nCrcInfoB = 0x%x\n", nCrcInfoA, nCrcInfoB); + + if (nCrcInfoA == nCrcInfoB) + { + _DrvFwCtrlMsg22xxEraseEmem(EMEM_MAIN); + _DrvFwCtrlMsg22xxProgramEmem(EMEM_MAIN); + + nCrcMainA = _DrvFwCtrlMsg22xxRetrieveFrimwareCrcFromBinFile(_gOneDimenFwData, EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_MAIN); + + DBG("nCrcMainA = 0x%x, nCrcMainB = 0x%x\n", nCrcMainA, nCrcMainB); + + if (nCrcMainA == nCrcMainB) + { + g_IsUpdateFirmware = 0x00; + nRetVal = 0; + } + else + { + g_IsUpdateFirmware = 0x01; + } + } + else + { + g_IsUpdateFirmware = 0x11; + } + } + else if ((g_IsUpdateFirmware & 0x01) == 0x01) + { + _DrvFwCtrlMsg22xxEraseEmem(EMEM_MAIN); + _DrvFwCtrlMsg22xxProgramEmem(EMEM_MAIN); + + nCrcMainA = _DrvFwCtrlMsg22xxRetrieveFrimwareCrcFromBinFile(_gOneDimenFwData, EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_MAIN); + + DBG("nCrcMainA=0x%x, nCrcMainB=0x%x\n", nCrcMainA, nCrcMainB); + + if (nCrcMainA == nCrcMainB) + { + g_IsUpdateFirmware = 0x00; + nRetVal = 0; + } + else + { + g_IsUpdateFirmware = 0x01; + } + } + } + else //_gIsUpdateInfoBlockFirst == 0 + { + if ((g_IsUpdateFirmware & 0x10) == 0x10) + { + _DrvFwCtrlMsg22xxEraseEmem(EMEM_MAIN); + _DrvFwCtrlMsg22xxProgramEmem(EMEM_MAIN); + + nCrcMainA = _DrvFwCtrlMsg22xxRetrieveFrimwareCrcFromBinFile(_gOneDimenFwData, EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_MAIN); + + DBG("nCrcMainA=0x%x, nCrcMainB=0x%x\n", nCrcMainA, nCrcMainB); + + if (nCrcMainA == nCrcMainB) + { + _DrvFwCtrlMsg22xxEraseEmem(EMEM_INFO); + _DrvFwCtrlMsg22xxProgramEmem(EMEM_INFO); + + nCrcInfoA = _DrvFwCtrlMsg22xxRetrieveFrimwareCrcFromBinFile(_gOneDimenFwData, EMEM_INFO); + nCrcInfoB = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_INFO); + + DBG("nCrcInfoA=0x%x, nCrcInfoB=0x%x\n", nCrcInfoA, nCrcInfoB); + + if (nCrcInfoA == nCrcInfoB) + { + g_IsUpdateFirmware = 0x00; + nRetVal = 0; + } + else + { + g_IsUpdateFirmware = 0x01; + } + } + else + { + g_IsUpdateFirmware = 0x11; + } + } + else if ((g_IsUpdateFirmware & 0x01) == 0x01) + { + _DrvFwCtrlMsg22xxEraseEmem(EMEM_INFO); + _DrvFwCtrlMsg22xxProgramEmem(EMEM_INFO); + + nCrcInfoA = _DrvFwCtrlMsg22xxRetrieveFrimwareCrcFromBinFile(_gOneDimenFwData, EMEM_INFO); + nCrcInfoB = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_INFO); + + DBG("nCrcInfoA=0x%x, nCrcInfoB=0x%x\n", nCrcInfoA, nCrcInfoB); + + if (nCrcInfoA == nCrcInfoB) + { + g_IsUpdateFirmware = 0x00; + nRetVal = 0; + } + else + { + g_IsUpdateFirmware = 0x01; + } + } + } + + return nRetVal; +} + +void _DrvFwCtrlMsg22xxCheckFirmwareUpdateBySwId(void) +{ + u32 nCrcMainA, nCrcInfoA, nCrcMainB, nCrcInfoB; + u32 i; + u16 nUpdateBinMajor = 0, nUpdateBinMinor = 0; + u16 nMajor = 0, nMinor = 0; + u8 *pVersion = NULL; + Msg22xxSwId_e eSwId = MSG22XX_SW_ID_UNDEFINED; + + DBG("*** %s() ***\n", __func__); + + DrvPlatformLyrDisableFingerTouchReport(); + + nCrcMainA = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_MAIN); + nCrcMainB = _DrvFwCtrlMsg22xxRetrieveFirmwareCrcFromEFlash(EMEM_MAIN); + + nCrcInfoA = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_INFO); + nCrcInfoB = _DrvFwCtrlMsg22xxRetrieveFirmwareCrcFromEFlash(EMEM_INFO); + + _gUpdateFirmwareBySwIdWorkQueue = create_singlethread_workqueue("update_firmware_by_sw_id"); + INIT_WORK(&_gUpdateFirmwareBySwIdWork, _DrvFwCtrlUpdateFirmwareBySwIdDoWork); + + DBG("nCrcMainA=0x%x, nCrcInfoA=0x%x, nCrcMainB=0x%x, nCrcInfoB=0x%x\n", nCrcMainA, nCrcInfoA, nCrcMainB, nCrcInfoB); + + if (nCrcMainA == nCrcMainB && nCrcInfoA == nCrcInfoB) // Case 1. Main Block:OK, Info Block:OK + { + eSwId = _DrvFwCtrlMsg22xxGetSwId(EMEM_MAIN); + + if (eSwId == MSG22XX_SW_ID_XXXX) + { + nUpdateBinMajor = msg22xx_xxxx_update_bin[0xBFF5]<<8 | msg22xx_xxxx_update_bin[0xBFF4]; + nUpdateBinMinor = msg22xx_xxxx_update_bin[0xBFF7]<<8 | msg22xx_xxxx_update_bin[0xBFF6]; + } + else if (eSwId == MSG22XX_SW_ID_YYYY) + { + nUpdateBinMajor = msg22xx_yyyy_update_bin[0xBFF5]<<8 | msg22xx_yyyy_update_bin[0xBFF4]; + nUpdateBinMinor = msg22xx_yyyy_update_bin[0xBFF7]<<8 | msg22xx_yyyy_update_bin[0xBFF6]; + } + else //eSwId == MSG22XX_SW_ID_UNDEFINED + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG22XX_SW_ID_UNDEFINED; + nUpdateBinMajor = 0; + nUpdateBinMinor = 0; + } + + DrvFwCtrlGetCustomerFirmwareVersion(&nMajor, &nMinor, &pVersion); + + DBG("eSwId=0x%x, nMajor=%d, nMinor=%d, nUpdateBinMajor=%d, nUpdateBinMinor=%d\n", eSwId, nMajor, nMinor, nUpdateBinMajor, nUpdateBinMinor); + + if (nUpdateBinMinor > nMinor) + { + if (eSwId == MSG22XX_SW_ID_XXXX) + { + for (i = 0; i < (MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE+1); i ++) + { + if (i < MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE) // i < 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg22xx_xxxx_update_bin[i*1024]), 1024); + } + else // i == 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg22xx_xxxx_update_bin[i*1024]), 512); + } + } + } + else if (eSwId == MSG22XX_SW_ID_YYYY) + { + for (i = 0; i < (MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE+1); i ++) + { + if (i < MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE) // i < 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg22xx_yyyy_update_bin[i*1024]), 1024); + } + else // i == 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg22xx_yyyy_update_bin[i*1024]), 512); + } + } + } + else + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG22XX_SW_ID_UNDEFINED; + } + + if (eSwId < MSG22XX_SW_ID_UNDEFINED && eSwId != 0x0000 && eSwId != 0xFFFF) + { + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after copying update firmware data to temp buffer + + _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; + _gIsUpdateInfoBlockFirst = 1; // Set 1 for indicating main block is complete + g_IsUpdateFirmware = 0x11; + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + return; + } + else + { + DBG("The sw id is invalid.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else + { + DBG("The update bin version is older than or equal to the current firmware version on e-flash.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else if (nCrcMainA == nCrcMainB && nCrcInfoA != nCrcInfoB) // Case 2. Main Block:OK, Info Block:FAIL + { + eSwId = _DrvFwCtrlMsg22xxGetSwId(EMEM_MAIN); + + DBG("eSwId=0x%x\n", eSwId); + + if (eSwId == MSG22XX_SW_ID_XXXX) + { + for (i = 0; i < (MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE+1); i ++) + { + if (i < MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE) // i < 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg22xx_xxxx_update_bin[i*1024]), 1024); + } + else // i == 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg22xx_xxxx_update_bin[i*1024]), 512); + } + } + } + else if (eSwId == MSG22XX_SW_ID_YYYY) + { + for (i = 0; i < (MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE+1); i ++) + { + if (i < MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE) // i < 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg22xx_yyyy_update_bin[i*1024]), 1024); + } + else // i == 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg22xx_yyyy_update_bin[i*1024]), 512); + } + } + } + else + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG22XX_SW_ID_UNDEFINED; + } + + if (eSwId < MSG22XX_SW_ID_UNDEFINED && eSwId != 0x0000 && eSwId != 0xFFFF) + { + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after copying update firmware data to temp buffer + + _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; + _gIsUpdateInfoBlockFirst = 1; // Set 1 for indicating main block is complete + g_IsUpdateFirmware = 0x11; + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + return; + } + else + { + DBG("The sw id is invalid.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else if (nCrcMainA != nCrcMainB && nCrcInfoA == nCrcInfoB) // Case 3. Main Block:FAIL, Info Block:OK + { + eSwId = _DrvFwCtrlMsg22xxGetSwId(EMEM_INFO); + + DBG("eSwId=0x%x\n", eSwId); + + if (eSwId == MSG22XX_SW_ID_XXXX) + { + for (i = 0; i < (MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE+1); i ++) + { + if (i < MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE) // i < 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg22xx_xxxx_update_bin[i*1024]), 1024); + } + else // i == 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg22xx_xxxx_update_bin[i*1024]), 512); + } + } + } + else if (eSwId == MSG22XX_SW_ID_YYYY) + { + for (i = 0; i < (MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE+1); i ++) + { + if (i < MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE) // i < 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg22xx_yyyy_update_bin[i*1024]), 1024); + } + else // i == 48 + { + _DrvFwCtrlStoreFirmwareData(&(msg22xx_yyyy_update_bin[i*1024]), 512); + } + } + } + else + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG22XX_SW_ID_UNDEFINED; + } + + if (eSwId < MSG22XX_SW_ID_UNDEFINED && eSwId != 0x0000 && eSwId != 0xFFFF) + { + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after copying update firmware data to temp buffer + + _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; + _gIsUpdateInfoBlockFirst = 0; // Set 0 for indicating main block is broken + g_IsUpdateFirmware = 0x11; + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + return; + } + else + { + DBG("The sw id is invalid.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else // Case 4. Main Block:FAIL, Info Block:FAIL + { + DBG("Main block and Info block are broken.\n"); + DBG("Go to normal boot up process.\n"); + } + + DrvPlatformLyrTouchDeviceResetHw(); + + DrvPlatformLyrEnableFingerTouchReport(); +} + +//-------------------------End of SW ID for MSG22XX----------------------------// + +//-------------------------Start of SW ID for MSG21XXA----------------------------// + +static u32 _DrvFwCtrlMsg21xxaCalculateMainCrcFromEFlash(void) +{ + u32 nRetVal = 0; + u16 nRegData = 0; + + DBG("*** %s() ***\n", __func__); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop Watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // cmd + RegSet16BitValue(0x3CE4, 0xDF4C); //bank:reg_PIU_MISC_0, addr:h0072 + + // TP SW reset + RegSet16BitValue(0x1E04, 0x7d60); //bank:chip, addr:h0002 + RegSet16BitValue(0x1E04, 0x829F); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + + mdelay(100); + + // Polling 0x3CE4 is 0x9432 + do + { + nRegData = RegGet16BitValue(0x3CE4); //bank:reg_PIU_MISC_0, addr:h0072 +// DBG("*** reg(0x3C, 0xE4) = 0x%x ***\n", nRegData); // add for debug + + } while (nRegData != 0x9432); + + // Read calculated main block CRC from register + nRetVal = RegGet16BitValue(0x3C80); + nRetVal = (nRetVal << 16) | RegGet16BitValue(0x3C82); + + DBG("Main Block CRC = 0x%x\n", nRetVal); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static u32 _DrvFwCtrlMsg21xxaRetrieveMainCrcFromMainBlock(void) +{ + u32 nRetVal = 0; + u16 nRegData = 0; + u8 szDbBusTxData[5] = {0}; + u8 szDbBusRxData[4] = {0}; + + DBG("*** %s() ***\n", __func__); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + // cmd + RegSet16BitValue(0x3CE4, 0xA4AB); //bank:reg_PIU_MISC_0, addr:h0072 + + // TP SW reset + RegSet16BitValue(0x1E04, 0x7d60); //bank:chip, addr:h0002 + RegSet16BitValue(0x1E04, 0x829F); + + // Start mcu + RegSetLByteValue(0x0FE6, 0x00); //bank:mheg5, addr:h0073 + + mdelay(100); + + // Polling 0x3CE4 is 0x5B58 + do + { + nRegData = RegGet16BitValue(0x3CE4); //bank:reg_PIU_MISC_0, addr:h0072 + } while (nRegData != 0x5B58); + + // Read main block CRC from main block + szDbBusTxData[0] = 0x72; + szDbBusTxData[1] = 0x7F; + szDbBusTxData[2] = 0xFC; + szDbBusTxData[3] = 0x00; + szDbBusTxData[4] = 0x04; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 5); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 4); + + nRetVal = szDbBusRxData[0]; + nRetVal = (nRetVal << 8) | szDbBusRxData[1]; + nRetVal = (nRetVal << 8) | szDbBusRxData[2]; + nRetVal = (nRetVal << 8) | szDbBusRxData[3]; + + DBG("CRC = 0x%x\n", nRetVal); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nRetVal; +} + +static s32 _DrvFwCtrlMsg21xxaUpdateFirmwareBySwId(u8 szFwData[][1024], EmemType_e eEmemType) +{ + u32 i, j, nCalculateCrcSize; + u32 nCrcMain = 0, nCrcMainTp = 0; + u32 nCrcInfo = 0, nCrcInfoTp = 0; + u32 nCrcTemp = 0; + u16 nRegData = 0; + + DBG("*** %s() ***\n", __func__); + + nCrcMain = 0xffffffff; + nCrcInfo = 0xffffffff; + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // erase main + _DrvFwCtrlEraseEmemC33(EMEM_MAIN); + mdelay(1000); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + ///////////////////////// + // Program + ///////////////////////// + + // Polling 0x3CE4 is 0x1C70 + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x1C70); + } + + switch (eEmemType) + { + case EMEM_ALL: + RegSet16BitValue(0x3CE4, 0xE38F); // for all blocks + break; + case EMEM_MAIN: + RegSet16BitValue(0x3CE4, 0x7731); // for main block + break; + case EMEM_INFO: + RegSet16BitValue(0x3CE4, 0x7731); // for info block + + RegSetLByteValue(0x0FE6, 0x01); + + RegSetLByteValue(0x3CE4, 0xC5); + RegSetLByteValue(0x3CE5, 0x78); + + RegSetLByteValue(0x1E04, 0x9F); + RegSetLByteValue(0x1E05, 0x82); + + RegSetLByteValue(0x0FE6, 0x00); + mdelay(100); + break; + } + + // Polling 0x3CE4 is 0x2F43 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x2F43); + + // Calculate CRC 32 + DrvCommonCrcInitTable(); + + if (eEmemType == EMEM_ALL) + { + nCalculateCrcSize = MSG21XXA_FIRMWARE_WHOLE_SIZE; + } + else if (eEmemType == EMEM_MAIN) + { + nCalculateCrcSize = MSG21XXA_FIRMWARE_MAIN_BLOCK_SIZE; + } + else if (eEmemType == EMEM_INFO) + { + nCalculateCrcSize = MSG21XXA_FIRMWARE_INFO_BLOCK_SIZE; + } + else + { + nCalculateCrcSize = 0; + } + + for (i = 0; i < nCalculateCrcSize; i ++) + { + if (eEmemType == EMEM_INFO) + { + i = 32; + } + + if (i < 32) // emem_main + { + if (i == 31) + { + szFwData[i][1014] = 0x5A; + szFwData[i][1015] = 0xA5; + + for (j = 0; j < 1016; j ++) + { + nCrcMain = DrvCommonCrcGetValue(szFwData[i][j], nCrcMain); + } + + nCrcTemp = nCrcMain; + nCrcTemp = nCrcTemp ^ 0xffffffff; + + DBG("nCrcTemp=%x\n", nCrcTemp); // add for debug + + for (j = 0; j < 4; j ++) + { + szFwData[i][1023-j] = ((nCrcTemp>>(8*j)) & 0xFF); + + DBG("((nCrcTemp>>(8*%d)) & 0xFF)=%x\n", j, ((nCrcTemp>>(8*j)) & 0xFF)); // add for debug + DBG("Update main clock crc32 into bin buffer szFwData[%d][%d]=%x\n", i, (1020+j), szFwData[i][1020+j]); + } + } + else + { + for (j = 0; j < 1024; j ++) + { + nCrcMain = DrvCommonCrcGetValue(szFwData[i][j], nCrcMain); + } + } + } + else // emem_info + { + for (j = 0; j < 1024; j ++) + { + nCrcInfo = DrvCommonCrcGetValue(szFwData[i][j], nCrcInfo); + } + + if (eEmemType == EMEM_MAIN) + { + break; + } + } + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + for (j = 0; j < 8; j ++) + { + IicWriteData(SLAVE_I2C_ID_DWI2C, &szFwData[i][j*128], 128); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + IicWriteData(SLAVE_I2C_ID_DWI2C, szFwData[i], 1024); +#endif + + // Polling 0x3CE4 is 0xD0BC + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0xD0BC); + + RegSet16BitValue(0x3CE4, 0x2F43); + } + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + // write file done and check crc + RegSet16BitValue(0x3CE4, 0x1380); + } + mdelay(10); + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + // Polling 0x3CE4 is 0x9432 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x9432); + } + + nCrcMain = nCrcMain ^ 0xffffffff; + nCrcInfo = nCrcInfo ^ 0xffffffff; + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + // CRC Main from TP + nCrcMainTp = RegGet16BitValue(0x3C80); + nCrcMainTp = (nCrcMainTp << 16) | RegGet16BitValue(0x3C82); + } + + if (eEmemType == EMEM_ALL) + { + // CRC Info from TP + nCrcInfoTp = RegGet16BitValue(0x3CA0); + nCrcInfoTp = (nCrcInfoTp << 16) | RegGet16BitValue(0x3CA2); + } + + DBG("nCrcMain=0x%x, nCrcInfo=0x%x, nCrcMainTp=0x%x, nCrcInfoTp=0x%x\n", nCrcMain, nCrcInfo, nCrcMainTp, nCrcInfoTp); + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + if (nCrcMainTp != nCrcMain) + { + DBG("Update FAILED\n"); + + return -1; + } + } + + if (eEmemType == EMEM_ALL) + { + if (nCrcInfoTp != nCrcInfo) + { + DBG("Update FAILED\n"); + + return -1; + } + } + + DBG("Update SUCCESS\n"); + + return 0; +} + +void _DrvFwCtrlMsg21xxaCheckFirmwareUpdateBySwId(void) +{ + u32 nCrcMainA, nCrcMainB; + u32 i; + u16 nUpdateBinMajor = 0, nUpdateBinMinor = 0; + u16 nMajor = 0, nMinor = 0; + u8 nIsCompareVersion = 0; + u8 *pVersion = NULL; + Msg21xxaSwId_e eMainSwId = MSG21XXA_SW_ID_UNDEFINED, eInfoSwId = MSG21XXA_SW_ID_UNDEFINED, eSwId = MSG21XXA_SW_ID_UNDEFINED; + + DBG("*** %s() ***\n", __func__); + + DrvPlatformLyrDisableFingerTouchReport(); + + nCrcMainA = _DrvFwCtrlMsg21xxaCalculateMainCrcFromEFlash(); + nCrcMainB = _DrvFwCtrlMsg21xxaRetrieveMainCrcFromMainBlock(); + + _gUpdateFirmwareBySwIdWorkQueue = create_singlethread_workqueue("update_firmware_by_sw_id"); + INIT_WORK(&_gUpdateFirmwareBySwIdWork, _DrvFwCtrlUpdateFirmwareBySwIdDoWork); + + DBG("nCrcMainA=0x%x, nCrcMainB=0x%x\n", nCrcMainA, nCrcMainB); + + if (nCrcMainA == nCrcMainB) + { + eMainSwId = _DrvFwCtrlMsg21xxaGetSwId(EMEM_MAIN); + eInfoSwId = _DrvFwCtrlMsg21xxaGetSwId(EMEM_INFO); + + DBG("Check firmware integrity success\n"); + DBG("eMainSwId=0x%x, eInfoSwId=0x%x\n", eMainSwId, eInfoSwId); + + if (eMainSwId == eInfoSwId) + { + eSwId = eMainSwId; + nIsCompareVersion = 1; + } + else + { + eSwId = eInfoSwId; + nIsCompareVersion = 0; + } + + if (eSwId == MSG21XXA_SW_ID_XXXX) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + nUpdateBinMajor = msg21xxa_xxxx_update_bin[31][0x34F]<<8 | msg21xxa_xxxx_update_bin[31][0x34E]; + nUpdateBinMinor = msg21xxa_xxxx_update_bin[31][0x351]<<8 | msg21xxa_xxxx_update_bin[31][0x350]; +#else // By one dimensional array + nUpdateBinMajor = msg21xxa_xxxx_update_bin[0x7F4F]<<8 | msg21xxa_xxxx_update_bin[0x7F4E]; + nUpdateBinMinor = msg21xxa_xxxx_update_bin[0x7F51]<<8 | msg21xxa_xxxx_update_bin[0x7F50]; +#endif + } + else if (eSwId == MSG21XXA_SW_ID_YYYY) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + nUpdateBinMajor = msg21xxa_yyyy_update_bin[31][0x34F]<<8 | msg21xxa_yyyy_update_bin[31][0x34E]; + nUpdateBinMinor = msg21xxa_yyyy_update_bin[31][0x351]<<8 | msg21xxa_yyyy_update_bin[31][0x350]; +#else // By one dimensional array + nUpdateBinMajor = msg21xxa_yyyy_update_bin[0x7F4F]<<8 | msg21xxa_yyyy_update_bin[0x7F4E]; + nUpdateBinMinor = msg21xxa_yyyy_update_bin[0x7F51]<<8 | msg21xxa_yyyy_update_bin[0x7F50]; +#endif + } + else //eSwId == MSG21XXA_SW_ID_UNDEFINED + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG21XXA_SW_ID_UNDEFINED; + nUpdateBinMajor = 0; + nUpdateBinMinor = 0; + } + + DrvFwCtrlGetCustomerFirmwareVersion(&nMajor, &nMinor, &pVersion); + + DBG("eSwId=0x%x, nMajor=%d, nMinor=%d, nUpdateBinMajor=%d, nUpdateBinMinor=%d\n", eSwId, nMajor, nMinor, nUpdateBinMajor, nUpdateBinMinor); + + if ((nUpdateBinMinor > nMinor && nIsCompareVersion == 1) || (nIsCompareVersion == 0)) + { + if (eSwId == MSG21XXA_SW_ID_XXXX) + { + for (i = 0; i < MSG21XXA_FIRMWARE_MAIN_BLOCK_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg21xxa_xxxx_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg21xxa_xxxx_update_bin[i*1024]), 1024); +#endif + } + } + else if (eSwId == MSG21XXA_SW_ID_YYYY) + { + for (i = 0; i < MSG21XXA_FIRMWARE_MAIN_BLOCK_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg21xxa_yyyy_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg21xxa_yyyy_update_bin[i*1024]), 1024); +#endif + } + } + else + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG21XXA_SW_ID_UNDEFINED; + } + + if (eSwId < MSG21XXA_SW_ID_UNDEFINED && eSwId != 0xFFFF) + { + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after copying update firmware data to temp buffer + + _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + return; + } + else + { + DBG("The sw id is invalid.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else + { + DBG("The update bin version is older than or equal to the current firmware version on e-flash.\n"); + DBG("Go to normal boot up process.\n"); + } + } + else + { + eSwId = _DrvFwCtrlMsg21xxaGetSwId(EMEM_INFO); + + DBG("Check firmware integrity failed\n"); + DBG("eSwId=0x%x\n", eSwId); + + if (eSwId == MSG21XXA_SW_ID_XXXX) + { + for (i = 0; i < MSG21XXA_FIRMWARE_MAIN_BLOCK_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg21xxa_xxxx_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg21xxa_xxxx_update_bin[i*1024]), 1024); +#endif + } + } + else if (eSwId == MSG21XXA_SW_ID_YYYY) + { + for (i = 0; i < MSG21XXA_FIRMWARE_MAIN_BLOCK_SIZE; i ++) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_TWO_DIMENSIONAL_ARRAY // By two dimensional array + _DrvFwCtrlStoreFirmwareData(msg21xxa_yyyy_update_bin[i], 1024); +#else // By one dimensional array + _DrvFwCtrlStoreFirmwareData(&(msg21xxa_yyyy_update_bin[i*1024]), 1024); +#endif + } + } + else + { + DBG("eSwId = 0x%x is an undefined SW ID.\n", eSwId); + + eSwId = MSG21XXA_SW_ID_UNDEFINED; + } + + if (eSwId < MSG21XXA_SW_ID_UNDEFINED && eSwId != 0xFFFF) + { + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after copying update firmware data to temp buffer + + _gUpdateRetryCount = UPDATE_FIRMWARE_RETRY_COUNT; + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + return; + } + else + { + DBG("The sw id is invalid.\n"); + DBG("Go to normal boot up process.\n"); + } + } + + DrvPlatformLyrTouchDeviceResetHw(); + + DrvPlatformLyrEnableFingerTouchReport(); +} + +//-------------------------End of SW ID for MSG21XXA----------------------------// + +static void _DrvFwCtrlUpdateFirmwareBySwIdDoWork(struct work_struct *pWork) +{ + s32 nRetVal = 0; + + DBG("*** %s() _gUpdateRetryCount = %d ***\n", __func__, _gUpdateRetryCount); + + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + nRetVal = _DrvFwCtrlMsg21xxaUpdateFirmwareBySwId(g_FwData, EMEM_MAIN); + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _DrvFwCtrlMsg22xxGetTpVendorCode(_gTpVendorCode); + + if (_gTpVendorCode[0] == 'C' && _gTpVendorCode[1] == 'N' && _gTpVendorCode[2] == 'T') // for specific TP vendor which store some important information in info block, only update firmware for main block, do not update firmware for info block. + { + nRetVal = _DrvFwCtrlMsg22xxUpdateFirmware(g_FwData, EMEM_MAIN); + } + else + { + nRetVal = _DrvFwCtrlMsg22xxUpdateFirmwareBySwId(); + } + } + else + { + DBG("This chip type (%d) does not support update firmware by sw id\n", g_ChipType); + + DrvPlatformLyrTouchDeviceResetHw(); + + DrvPlatformLyrEnableFingerTouchReport(); + + nRetVal = -1; + return; + } + + DBG("*** update firmware by sw id result = %d ***\n", nRetVal); + + if (nRetVal == 0) + { + DBG("update firmware by sw id success\n"); + + DrvPlatformLyrTouchDeviceResetHw(); + + DrvPlatformLyrEnableFingerTouchReport(); + + if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _gIsUpdateInfoBlockFirst = 0; + g_IsUpdateFirmware = 0x00; + } + } + else //nRetVal == -1 + { + _gUpdateRetryCount --; + if (_gUpdateRetryCount > 0) + { + DBG("_gUpdateRetryCount = %d\n", _gUpdateRetryCount); + queue_work(_gUpdateFirmwareBySwIdWorkQueue, &_gUpdateFirmwareBySwIdWork); + } + else + { + DBG("update firmware by sw id failed\n"); + + DrvPlatformLyrTouchDeviceResetHw(); + + DrvPlatformLyrEnableFingerTouchReport(); + + if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _gIsUpdateInfoBlockFirst = 0; + g_IsUpdateFirmware = 0x00; + } + } + } +} + +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +//------------------------------------------------------------------------------// + +static void _DrvFwCtrlReadInfoC33(void) +{ + u8 szDbBusTxData[5] = {0}; + u16 nRegData = 0; +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + u32 i; +#endif + + DBG("*** %s() ***\n", __func__); + + mdelay(300); + + // Stop Watchdog + RegSetLByteValue(0x3C60, 0x55); + RegSetLByteValue(0x3C61, 0xAA); + + RegSet16BitValue(0x3CE4, 0xA4AB); + + RegSet16BitValue(0x1E04, 0x7d60); + + // TP SW reset + RegSet16BitValue(0x1E04, 0x829F); + mdelay(1); + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x0F; + szDbBusTxData[2] = 0xE6; + szDbBusTxData[3] = 0x00; + IicWriteData(SLAVE_I2C_ID_DBBUS, szDbBusTxData, 4); + mdelay(100); + + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x5B58); + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + szDbBusTxData[0] = 0x72; + szDbBusTxData[3] = 0x00; + szDbBusTxData[4] = 0x80; // read 128 bytes + + for (i = 0; i < 8; i ++) + { + szDbBusTxData[1] = 0x80 + (((i*128)&0xff00)>>8); + szDbBusTxData[2] = (i*128)&0x00ff; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 5); + + mdelay(50); + + // Receive info data + IicReadData(SLAVE_I2C_ID_DWI2C, &_gDwIicInfoData[i*128], 128); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + szDbBusTxData[0] = 0x72; + szDbBusTxData[1] = 0x80; + szDbBusTxData[2] = 0x00; + szDbBusTxData[3] = 0x04; // read 1024 bytes + szDbBusTxData[4] = 0x00; + + IicWriteData(SLAVE_I2C_ID_DWI2C, szDbBusTxData, 5); + + mdelay(50); + + // Receive info data + IicReadData(SLAVE_I2C_ID_DWI2C, &_gDwIicInfoData[0], 1024); +#endif +} + +static s32 _DrvFwCtrlUpdateFirmwareC32(u8 szFwData[][1024], EmemType_e eEmemType) +{ + u32 i, j; + u32 nCrcMain, nCrcMainTp; + u32 nCrcInfo, nCrcInfoTp; + u32 nCrcTemp; + u16 nRegData = 0; + + DBG("*** %s() ***\n", __func__); + + nCrcMain = 0xffffffff; + nCrcInfo = 0xffffffff; + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + ///////////////////////// + // Erase all + ///////////////////////// + _DrvFwCtrlEraseEmemC32(); + mdelay(1000); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Reset watch dog + RegSetLByteValue(0x3C60, 0x55); + RegSetLByteValue(0x3C61, 0xAA); + + ///////////////////////// + // Program + ///////////////////////// + + // Polling 0x3CE4 is 0x1C70 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x1C70); + + RegSet16BitValue(0x3CE4, 0xE38F); // for all-blocks + + // Polling 0x3CE4 is 0x2F43 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x2F43); + + // Calculate CRC 32 + DrvCommonCrcInitTable(); + + for (i = 0; i < 33; i ++) // total 33 KB : 2 byte per R/W + { + if (i < 32) // emem_main + { + if (i == 31) + { + szFwData[i][1014] = 0x5A; + szFwData[i][1015] = 0xA5; + + for (j = 0; j < 1016; j ++) + { + nCrcMain = DrvCommonCrcGetValue(szFwData[i][j], nCrcMain); + } + + nCrcTemp = nCrcMain; + nCrcTemp = nCrcTemp ^ 0xffffffff; + + DBG("nCrcTemp=%x\n", nCrcTemp); // add for debug + + for (j = 0; j < 4; j ++) + { + szFwData[i][1023-j] = ((nCrcTemp>>(8*j)) & 0xFF); + + DBG("((nCrcTemp>>(8*%d)) & 0xFF)=%x\n", j, ((nCrcTemp>>(8*j)) & 0xFF)); // add for debug + DBG("Update main clock crc32 into bin buffer szFwData[%d][%d]=%x\n", i, (1020+j), szFwData[i][1020+j]); + } + } + else + { + for (j = 0; j < 1024; j ++) + { + nCrcMain = DrvCommonCrcGetValue(szFwData[i][j], nCrcMain); + } + } + } + else // emem_info + { + for (j = 0; j < 1024; j ++) + { + nCrcInfo = DrvCommonCrcGetValue(szFwData[i][j], nCrcInfo); + } + } + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + for (j = 0; j < 8; j ++) + { + IicWriteData(SLAVE_I2C_ID_DWI2C, &szFwData[i][j*128], 128); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + IicWriteData(SLAVE_I2C_ID_DWI2C, szFwData[i], 1024); +#endif + + // Polling 0x3CE4 is 0xD0BC + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0xD0BC); + + RegSet16BitValue(0x3CE4, 0x2F43); + } + + // Write file done + RegSet16BitValue(0x3CE4, 0x1380); + + mdelay(10); + // Polling 0x3CE4 is 0x9432 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x9432); + + nCrcMain = nCrcMain ^ 0xffffffff; + nCrcInfo = nCrcInfo ^ 0xffffffff; + + // CRC Main from TP + nCrcMainTp = RegGet16BitValue(0x3C80); + nCrcMainTp = (nCrcMainTp << 16) | RegGet16BitValue(0x3C82); + + // CRC Info from TP + nCrcInfoTp = RegGet16BitValue(0x3CA0); + nCrcInfoTp = (nCrcInfoTp << 16) | RegGet16BitValue(0x3CA2); + + DBG("nCrcMain=0x%x, nCrcInfo=0x%x, nCrcMainTp=0x%x, nCrcInfoTp=0x%x\n", + nCrcMain, nCrcInfo, nCrcMainTp, nCrcInfoTp); + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + + + if ((nCrcMainTp != nCrcMain) || (nCrcInfoTp != nCrcInfo)) + { + DBG("Update FAILED\n"); + + return -1; + } + + DBG("Update SUCCESS\n"); + + return 0; +} + +static s32 _DrvFwCtrlUpdateFirmwareC33(u8 szFwData[][1024], EmemType_e eEmemType) +{ + u8 szLifeCounter[2]; + u32 i, j; + u32 nCrcMain, nCrcMainTp; + u32 nCrcInfo, nCrcInfoTp; + u32 nCrcTemp; + u16 nRegData = 0; + + DBG("*** %s() ***\n", __func__); + + nCrcMain = 0xffffffff; + nCrcInfo = 0xffffffff; + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + _DrvFwCtrlReadInfoC33(); + + if (_gDwIicInfoData[0] == 'M' && _gDwIicInfoData[1] == 'S' && _gDwIicInfoData[2] == 'T' && _gDwIicInfoData[3] == 'A' && _gDwIicInfoData[4] == 'R' && _gDwIicInfoData[5] == 'T' && _gDwIicInfoData[6] == 'P' && _gDwIicInfoData[7] == 'C') + { + _gDwIicInfoData[8] = szFwData[32][8]; + _gDwIicInfoData[9] = szFwData[32][9]; + _gDwIicInfoData[10] = szFwData[32][10]; + _gDwIicInfoData[11] = szFwData[32][11]; + // updata life counter + szLifeCounter[1] = ((((_gDwIicInfoData[13] << 8) | _gDwIicInfoData[12]) + 1) >> 8) & 0xFF; + szLifeCounter[0] = (((_gDwIicInfoData[13] << 8) | _gDwIicInfoData[12]) + 1) & 0xFF; + _gDwIicInfoData[12] = szLifeCounter[0]; + _gDwIicInfoData[13] = szLifeCounter[1]; + + RegSet16BitValue(0x3CE4, 0x78C5); + RegSet16BitValue(0x1E04, 0x7d60); + // TP SW reset + RegSet16BitValue(0x1E04, 0x829F); + + mdelay(50); + + // Polling 0x3CE4 is 0x2F43 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x2F43); + + // Transmit lk info data +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + for (j = 0; j < 8; j ++) + { + IicWriteData(SLAVE_I2C_ID_DWI2C, &_gDwIicInfoData[j*128], 128); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + IicWriteData(SLAVE_I2C_ID_DWI2C, &_gDwIicInfoData[0], 1024); +#endif + + // Polling 0x3CE4 is 0xD0BC + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0xD0BC); + } + + // erase main + _DrvFwCtrlEraseEmemC33(EMEM_MAIN); + mdelay(1000); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + ///////////////////////// + // Program + ///////////////////////// + + // Polling 0x3CE4 is 0x1C70 + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x1C70); + } + + switch (eEmemType) + { + case EMEM_ALL: + RegSet16BitValue(0x3CE4, 0xE38F); // for all blocks + break; + case EMEM_MAIN: + RegSet16BitValue(0x3CE4, 0x7731); // for main block + break; + case EMEM_INFO: + RegSet16BitValue(0x3CE4, 0x7731); // for info block + + RegSetLByteValue(0x0FE6, 0x01); + + RegSetLByteValue(0x3CE4, 0xC5); + RegSetLByteValue(0x3CE5, 0x78); + + RegSetLByteValue(0x1E04, 0x9F); + RegSetLByteValue(0x1E05, 0x82); + + RegSetLByteValue(0x0FE6, 0x00); + mdelay(100); + break; + } + + // Polling 0x3CE4 is 0x2F43 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x2F43); + + // Calculate CRC 32 + DrvCommonCrcInitTable(); + + for (i = 0; i < 33; i ++) // total 33 KB : 2 byte per R/W + { + if (eEmemType == EMEM_INFO) + { + i = 32; + } + + if (i < 32) // emem_main + { + if (i == 31) + { + szFwData[i][1014] = 0x5A; + szFwData[i][1015] = 0xA5; + + for (j = 0; j < 1016; j ++) + { + nCrcMain = DrvCommonCrcGetValue(szFwData[i][j], nCrcMain); + } + + nCrcTemp = nCrcMain; + nCrcTemp = nCrcTemp ^ 0xffffffff; + + DBG("nCrcTemp=%x\n", nCrcTemp); // add for debug + + for (j = 0; j < 4; j ++) + { + szFwData[i][1023-j] = ((nCrcTemp>>(8*j)) & 0xFF); + + DBG("((nCrcTemp>>(8*%d)) & 0xFF)=%x\n", j, ((nCrcTemp>>(8*j)) & 0xFF)); // add for debug + DBG("Update main clock crc32 into bin buffer szFwData[%d][%d]=%x\n", i, (1020+j), szFwData[i][1020+j]); // add for debug + } + } + else + { + for (j = 0; j < 1024; j ++) + { + nCrcMain = DrvCommonCrcGetValue(szFwData[i][j], nCrcMain); + } + } + } + else // emem_info + { + for (j = 0; j < 1024; j ++) + { + nCrcInfo = DrvCommonCrcGetValue(_gDwIicInfoData[j], nCrcInfo); + } + + if (eEmemType == EMEM_MAIN) + { + break; + } + } + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + for (j = 0; j < 8; j ++) + { + IicWriteData(SLAVE_I2C_ID_DWI2C, &szFwData[i][j*128], 128); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + IicWriteData(SLAVE_I2C_ID_DWI2C, szFwData[i], 1024); +#endif + + // Polling 0x3CE4 is 0xD0BC + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0xD0BC); + + RegSet16BitValue(0x3CE4, 0x2F43); + } + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + // write file done and check crc + RegSet16BitValue(0x3CE4, 0x1380); + } + mdelay(10); + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + // Polling 0x3CE4 is 0x9432 + do + { + nRegData = RegGet16BitValue(0x3CE4); + } while (nRegData != 0x9432); + } + + nCrcMain = nCrcMain ^ 0xffffffff; + nCrcInfo = nCrcInfo ^ 0xffffffff; + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + // CRC Main from TP + nCrcMainTp = RegGet16BitValue(0x3C80); + nCrcMainTp = (nCrcMainTp << 16) | RegGet16BitValue(0x3C82); + + // CRC Info from TP + nCrcInfoTp = RegGet16BitValue(0x3CA0); + nCrcInfoTp = (nCrcInfoTp << 16) | RegGet16BitValue(0x3CA2); + } + DBG("nCrcMain=0x%x, nCrcInfo=0x%x, nCrcMainTp=0x%x, nCrcInfoTp=0x%x\n", nCrcMain, nCrcInfo, nCrcMainTp, nCrcInfoTp); + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + + + if ((eEmemType == EMEM_ALL) || (eEmemType == EMEM_MAIN)) + { + if ((nCrcMainTp != nCrcMain) || (nCrcInfoTp != nCrcInfo)) + { + DBG("Update FAILED\n"); + + return -1; + } + } + + DBG("Update SUCCESS\n"); + + return 0; +} + +static s32 _DrvFwCtrlMsg22xxUpdateFirmware(u8 szFwData[][1024], EmemType_e eEmemType) +{ + u32 i, index; + u32 nCrcMain = 0, nCrcMainTp = 0; + u32 nCrcInfo = 0, nCrcInfoTp = 0; + u32 nRemainSize, nBlockSize, nSize; + u32 nTimeOut = 0; + u16 nRegData = 0; +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + u8 szDbBusTxData[128] = {0}; + u32 nSizePerWrite = 125; +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) + u8 szDbBusTxData[1024] = {0}; + u32 nSizePerWrite = 1021; +#endif + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + _DrvFwCtrlMsg22xxConvertFwDataTwoDimenToOneDimen(szFwData, _gOneDimenFwData); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + + DBG("Erase start\n"); + + // Stop mcu + RegSet16BitValue(0x0FE6, 0x0001); + + // Disable watchdog + RegSetLByteValue(0x3C60, 0x55); + RegSetLByteValue(0x3C61, 0xAA); + + // Set PROGRAM password + RegSetLByteValue(0x161A, 0xBA); + RegSetLByteValue(0x161B, 0xAB); + + if (eEmemType == EMEM_ALL) // 48KB + 512Byte + { + DBG("Erase all block\n"); + + // Clear pce + RegSetLByteValue(0x1618, 0x80); + mdelay(100); + + // Chip erase + RegSet16BitValue(0x160E, BIT3); + + DBG("Wait erase done flag\n"); + + while (1) // Wait erase done flag + { + nRegData = RegGet16BitValue(0x1610); // Memory status + nRegData = nRegData & BIT1; + + DBG("Wait erase done flag nRegData = 0x%x\n", nRegData); + + if (nRegData == BIT1) + { + break; + } + + mdelay(50); + + if ((nTimeOut ++) > 30) + { + DBG("Erase all block failed. Timeout.\n"); + + goto UpdateEnd; + } + } + } + else if (eEmemType == EMEM_MAIN) // 48KB (32+8+8) + { + DBG("Erase main block\n"); + + for (i = 0; i < 3; i ++) + { + // Clear pce + RegSetLByteValue(0x1618, 0x80); + mdelay(10); + + if (i == 0) + { + RegSet16BitValue(0x1600, 0x0000); + } + else if (i == 1) + { + RegSet16BitValue(0x1600, 0x8000); + } + else if (i == 2) + { + RegSet16BitValue(0x1600, 0xA000); + } + + // Sector erase + RegSet16BitValue(0x160E, (RegGet16BitValue(0x160E) | BIT2)); + + DBG("Wait erase done flag\n"); + + while (1) // Wait erase done flag + { + nRegData = RegGet16BitValue(0x1610); // Memory status + nRegData = nRegData & BIT1; + + DBG("Wait erase done flag nRegData = 0x%x\n", nRegData); + + if (nRegData == BIT1) + { + break; + } + mdelay(50); + + if ((nTimeOut ++) > 30) + { + DBG("Erase main block failed. Timeout.\n"); + + goto UpdateEnd; + } + } + } + } + else if (eEmemType == EMEM_INFO) // 512Byte + { + DBG("Erase info block\n"); + + // Clear pce + RegSetLByteValue(0x1618, 0x80); + mdelay(10); + + RegSet16BitValue(0x1600, 0xC000); + + // Sector erase + RegSet16BitValue(0x160E, (RegGet16BitValue(0x160E) | BIT2)); + + DBG("Wait erase done flag\n"); + + while (1) // Wait erase done flag + { + nRegData = RegGet16BitValue(0x1610); // Memory status + nRegData = nRegData & BIT1; + + DBG("Wait erase done flag nRegData = 0x%x\n", nRegData); + + if (nRegData == BIT1) + { + break; + } + mdelay(50); + + if ((nTimeOut ++) > 30) + { + DBG("Erase info block failed. Timeout.\n"); + + goto UpdateEnd; + } + } + } + + DBG("Erase end\n"); + + // Hold reset pin before program + RegSetLByteValue(0x1E06, 0x00); + + ///////////////////////// + // Program + ///////////////////////// + + if (eEmemType == EMEM_ALL || eEmemType == EMEM_MAIN) // 48KB + { + DBG("Program main block start\n"); + + // Program main block + RegSet16BitValue(0x161A, 0xABBA); + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x80)); + + RegSet16BitValue(0x1600, 0x0000); // Set start address of main block + RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); // Enable burst mode + + // Program start + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x16; + szDbBusTxData[2] = 0x02; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3); + + szDbBusTxData[0] = 0x20; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 1); + + nRemainSize = MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE * 1024; //48KB + index = 0; + + while (nRemainSize > 0) + { + if (nRemainSize > nSizePerWrite) + { + nBlockSize = nSizePerWrite; + } + else + { + nBlockSize = nRemainSize; + } + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x16; + szDbBusTxData[2] = 0x02; + + nSize = 3; + + for (i = 0; i < nBlockSize; i ++) + { + szDbBusTxData[3+i] = _gOneDimenFwData[index*nSizePerWrite+i]; + nSize ++; + } + index ++; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], nSize); + + nRemainSize = nRemainSize - nBlockSize; + } + + // Program end + szDbBusTxData[0] = 0x21; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 1); + + nRegData = RegGet16BitValue(0x160C); + RegSet16BitValue(0x160C, nRegData & (~0x01)); + + DBG("Wait main block write done flag\n"); + + while (1) // Wait write done flag + { + // Polling 0x1610 is 0x0002 + nRegData = RegGet16BitValue(0x1610); // Memory status + nRegData = nRegData & BIT1; + + DBG("Wait write done flag nRegData = 0x%x\n", nRegData); + + if (nRegData == BIT1) + { + break; + } + mdelay(10); + + if ((nTimeOut ++) > 30) + { + DBG("Write failed. Timeout.\n"); + + goto UpdateEnd; + } + } + + DBG("Program main block end\n"); + } + + if (eEmemType == EMEM_ALL || eEmemType == EMEM_INFO) // 512 Byte + { + DBG("Program info block start\n"); + + // Program info block + RegSet16BitValue(0x161A, 0xABBA); + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x80)); + + RegSet16BitValue(0x1600, 0xC000); // Set start address of info block + RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); // Enable burst mode + + // Program start + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x16; + szDbBusTxData[2] = 0x02; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3); + + szDbBusTxData[0] = 0x20; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 1); + + nRemainSize = MSG22XX_FIRMWARE_INFO_BLOCK_SIZE; //512Byte + index = 0; + + while (nRemainSize > 0) + { + if (nRemainSize > nSizePerWrite) + { + nBlockSize = nSizePerWrite; + } + else + { + nBlockSize = nRemainSize; + } + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x16; + szDbBusTxData[2] = 0x02; + + nSize = 3; + + for (i = 0; i < nBlockSize; i ++) + { + szDbBusTxData[3+i] = _gOneDimenFwData[(MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE*1024)+(index*nSizePerWrite)+i]; + nSize ++; + } + index ++; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], nSize); + + nRemainSize = nRemainSize - nBlockSize; + } + + // Program end + szDbBusTxData[0] = 0x21; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 1); + + nRegData = RegGet16BitValue(0x160C); + RegSet16BitValue(0x160C, nRegData & (~0x01)); + + DBG("Wait info block write done flag\n"); + + while (1) // Wait write done flag + { + // Polling 0x1610 is 0x0002 + nRegData = RegGet16BitValue(0x1610); // Memory status + nRegData = nRegData & BIT1; + + DBG("Wait write done flag nRegData = 0x%x\n", nRegData); + + if (nRegData == BIT1) + { + break; + } + mdelay(10); + + if ((nTimeOut ++) > 30) + { + DBG("Write failed. Timeout.\n"); + + goto UpdateEnd; + } + } + + DBG("Program info block end\n"); + } + + UpdateEnd: + + if (eEmemType == EMEM_ALL || eEmemType == EMEM_MAIN) + { + // Get CRC 32 from updated firmware bin file + nCrcMain = _gOneDimenFwData[0xBFFF] << 24; + nCrcMain |= _gOneDimenFwData[0xBFFE] << 16; + nCrcMain |= _gOneDimenFwData[0xBFFD] << 8; + nCrcMain |= _gOneDimenFwData[0xBFFC]; + + // CRC Main from TP + DBG("Get Main CRC from TP\n"); + + nCrcMainTp = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_MAIN); + + DBG("nCrcMain=0x%x, nCrcMainTp=0x%x\n", nCrcMain, nCrcMainTp); + } + + if (eEmemType == EMEM_ALL || eEmemType == EMEM_INFO) + { + nCrcInfo = _gOneDimenFwData[0xC1FF] << 24; + nCrcInfo |= _gOneDimenFwData[0xC1FE] << 16; + nCrcInfo |= _gOneDimenFwData[0xC1FD] << 8; + nCrcInfo |= _gOneDimenFwData[0xC1FC]; + + // CRC Info from TP + DBG("Get Info CRC from TP\n"); + + nCrcInfoTp = _DrvFwCtrlMsg22xxGetFirmwareCrcByHardware(EMEM_INFO); + + DBG("nCrcInfo=0x%x, nCrcInfoTp=0x%x\n", nCrcInfo, nCrcInfoTp); + } + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + + if (eEmemType == EMEM_ALL) + { + if ((nCrcMainTp != nCrcMain) || (nCrcInfoTp != nCrcInfo)) + { + DBG("Update FAILED\n"); + + return -1; + } + } + else if (eEmemType == EMEM_MAIN) + { + if (nCrcMainTp != nCrcMain) + { + DBG("Update FAILED\n"); + + return -1; + } + } + else if (eEmemType == EMEM_INFO) + { + if (nCrcInfoTp != nCrcInfo) + { + DBG("Update FAILED\n"); + + return -1; + } + } + + DBG("Update SUCCESS\n"); + + return 0; +} + +static s32 _DrvFwCtrlUpdateFirmwareCash(u8 szFwData[][1024]) +{ + DBG("*** %s() ***\n", __func__); + + DBG("g_ChipType = 0x%x\n", g_ChipType); + + if (g_ChipType == CHIP_TYPE_MSG21XXA) // (0x02) + { +// u16 nChipType; + u8 nChipVersion = 0; + + DrvPlatformLyrTouchDeviceResetHw(); + + // Erase TP Flash first + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop MCU + RegSetLByteValue(0x0FE6, 0x01); + + // Disable watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + ///////////////////////// + // Difference between C2 and C3 + ///////////////////////// + // c2:MSG2133(1) c32:MSG2133A(2) c33:MSG2138A(2) + // check ic type +// nChipType = RegGet16BitValue(0x1ECC) & 0xFF; + + // check ic version + nChipVersion = RegGet16BitValue(0x3CEA) & 0xFF; + + DBG("chip version = 0x%x\n", nChipVersion); + + if (nChipVersion == 3) + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID + return _DrvFwCtrlMsg21xxaUpdateFirmwareBySwId(szFwData, EMEM_MAIN); +#else + return _DrvFwCtrlUpdateFirmwareC33(szFwData, EMEM_MAIN); +#endif + } + else + { +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID + return _DrvFwCtrlMsg21xxaUpdateFirmwareBySwId(szFwData, EMEM_MAIN); +#else + return _DrvFwCtrlUpdateFirmwareC32(szFwData, EMEM_ALL); +#endif + } + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) // (0x7A) + { + _DrvFwCtrlMsg22xxGetTpVendorCode(_gTpVendorCode); + + if (_gTpVendorCode[0] == 'C' && _gTpVendorCode[1] == 'N' && _gTpVendorCode[2] == 'T') // for specific TP vendor which store some important information in info block, only update firmware for main block, do not update firmware for info block. + { + return _DrvFwCtrlMsg22xxUpdateFirmware(szFwData, EMEM_MAIN); + } + else + { + return _DrvFwCtrlMsg22xxUpdateFirmware(szFwData, EMEM_ALL); + } + } + else // CHIP_TYPE_MSG21XX (0x01) + { + DBG("Can not update firmware. Catch-2 is no need to be maintained now.\n"); + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + return -1; + } +} + +static s32 _DrvFwCtrlUpdateFirmwareBySdCard(const char *pFilePath) +{ + s32 nRetVal = 0; + struct file *pfile = NULL; + struct inode *inode; + s32 fsize = 0; + u8 *pbt_buf = NULL; + mm_segment_t old_fs; + loff_t pos; + u16 eSwId = 0x0000; + u16 eVendorId = 0x0000; + + DBG("*** %s() ***\n", __func__); + + pfile = filp_open(pFilePath, O_RDONLY, 0); + if (IS_ERR(pfile)) + { + DBG("Error occured while opening file %s.\n", pFilePath); + return -1; + } + + inode = pfile->f_dentry->d_inode; + fsize = inode->i_size; + + DBG("fsize = %d\n", fsize); + + if (fsize <= 0) + { + filp_close(pfile, NULL); + return -1; + } + + // read firmware + pbt_buf = kmalloc(fsize, GFP_KERNEL); + + old_fs = get_fs(); + set_fs(KERNEL_DS); + + pos = 0; + vfs_read(pfile, pbt_buf, fsize, &pos); + + filp_close(pfile, NULL); + set_fs(old_fs); + + _DrvFwCtrlStoreFirmwareData(pbt_buf, fsize); + + kfree(pbt_buf); + + DrvPlatformLyrDisableFingerTouchReport(); + + DrvPlatformLyrTouchDeviceResetHw(); + + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + eVendorId = g_FwData[31][0x34F] <<8 | g_FwData[31][0x34E]; + eSwId = _DrvFwCtrlMsg21xxaGetSwId(EMEM_MAIN); + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + eVendorId = g_FwData[47][1013] <<8 | g_FwData[47][1012]; + eSwId = _DrvFwCtrlMsg22xxGetSwId(EMEM_MAIN); + } + + DBG("eVendorId = 0x%x, eSwId = 0x%x\n", eVendorId, eSwId); + + if (eSwId == eVendorId) + { + if ((g_ChipType == CHIP_TYPE_MSG21XXA && fsize == 33792/* 33KB */) || (g_ChipType == CHIP_TYPE_MSG22XX && fsize == 49664/* 48.5KB */)) + { + nRetVal = _DrvFwCtrlUpdateFirmwareCash(g_FwData); + } + else + { + DBG("The file size of the update firmware bin file is not supported, fsize = %d\n", fsize); + nRetVal = -1; + } + } + else + { + DBG("The vendor id of the update firmware bin file is different from the vendor id on e-flash.\n"); + nRetVal = -1; + } + + g_FwDataCount = 0; // Reset g_FwDataCount to 0 after update firmware + + DrvPlatformLyrEnableFingerTouchReport(); + + return nRetVal; +} + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +void DrvFwCtrlVariableInitialize(void) +{ + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { +// FIRMWARE_MODE_UNKNOWN_MODE = MSG21XXA_FIRMWARE_MODE_UNKNOWN_MODE; + FIRMWARE_MODE_DEMO_MODE = MSG21XXA_FIRMWARE_MODE_DEMO_MODE; + FIRMWARE_MODE_DEBUG_MODE = MSG21XXA_FIRMWARE_MODE_DEBUG_MODE; + FIRMWARE_MODE_RAW_DATA_MODE = MSG21XXA_FIRMWARE_MODE_RAW_DATA_MODE; + + g_FirmwareMode = FIRMWARE_MODE_DEMO_MODE; + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { +// FIRMWARE_MODE_UNKNOWN_MODE = MSG22XX_FIRMWARE_MODE_UNKNOWN_MODE; + FIRMWARE_MODE_DEMO_MODE = MSG22XX_FIRMWARE_MODE_DEMO_MODE; + FIRMWARE_MODE_DEBUG_MODE = MSG22XX_FIRMWARE_MODE_DEBUG_MODE; + FIRMWARE_MODE_RAW_DATA_MODE = MSG22XX_FIRMWARE_MODE_RAW_DATA_MODE; + + g_FirmwareMode = FIRMWARE_MODE_DEMO_MODE; + } +} + +void DrvFwCtrlOptimizeCurrentConsumption(void) +{ + u32 i; + u8 szDbBusTxData[27] = {0}; + + DBG("g_ChipType = 0x%x\n", g_ChipType); + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + if (g_GestureWakeupFlag == 1) + { + return; + } +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + + if (g_ChipType == CHIP_TYPE_MSG22XX) + { + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + + RegSet16BitValue(0x1618, (RegGet16BitValue(0x1618) | 0x80)); + + // Enable burst mode + RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x11; + szDbBusTxData[2] = 0xA0; //bank:0x11, addr:h0050 + + for (i = 0; i < 24; i ++) + { + szDbBusTxData[i+3] = 0x11; + } + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+24); // Write 0x11 for reg 0x1150~0x115B + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x11; + szDbBusTxData[2] = 0xB8; //bank:0x11, addr:h005C + + for (i = 0; i < 6; i ++) + { + szDbBusTxData[i+3] = 0xFF; + } + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+6); // Write 0xFF for reg 0x115C~0x115E + + // Clear burst mode + RegSet16BitValue(0x160C, RegGet16BitValue(0x160C) & (~0x01)); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + } +} + +u8 DrvFwCtrlGetChipType(void) +{ + s32 rc =0; + u8 nChipType = 0; + + DBG("*** %s() ***\n", __func__); + + // Erase TP Flash first + rc = DbBusEnterSerialDebugMode(); + if (rc < 0) + { + DBG("*** DbBusEnterSerialDebugMode() failed, rc = %d ***\n", rc); + return nChipType; + } + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + + // Stop MCU + RegSetLByteValue(0x0FE6, 0x01); + + // Disable watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + ///////////////////////// + // Difference between C2 and C3 + ///////////////////////// + // c2:MSG2133(1) c32:MSG2133A(2) c33:MSG2138A(2) + // check ic type + nChipType = RegGet16BitValue(0x1ECC) & 0xFF; + + if (nChipType != CHIP_TYPE_MSG21XX && // (0x01) + nChipType != CHIP_TYPE_MSG21XXA && // (0x02) + nChipType != CHIP_TYPE_MSG26XXM && // (0x03) + nChipType != CHIP_TYPE_MSG22XX && // (0x7A) + nChipType != CHIP_TYPE_MSG28XX) // (0x85) + { + nChipType = 0; + } + + DBG("*** Chip Type = 0x%x ***\n", nChipType); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + return nChipType; +} + +void DrvFwCtrlGetCustomerFirmwareVersion(u16 *pMajor, u16 *pMinor, u8 **ppVersion) +{ + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG21XXA || g_ChipType == CHIP_TYPE_MSG21XX) + { + u8 szDbBusTxData[3] = {0}; + u8 szDbBusRxData[4] = {0}; + + szDbBusTxData[0] = 0x53; + szDbBusTxData[1] = 0x00; + + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + szDbBusTxData[2] = 0x2A; + } + else if (g_ChipType == CHIP_TYPE_MSG21XX) + { + szDbBusTxData[2] = 0x74; + } + else + { + szDbBusTxData[2] = 0x2A; + } + + mutex_lock(&g_Mutex); + + DrvPlatformLyrTouchDeviceResetHw(); + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 4); + + mutex_unlock(&g_Mutex); + + *pMajor = (szDbBusRxData[1]<<8) + szDbBusRxData[0]; + *pMinor = (szDbBusRxData[3]<<8) + szDbBusRxData[2]; + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + u16 nRegData1, nRegData2; + + mutex_lock(&g_Mutex); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + // RIU password + RegSet16BitValue(0x161A, 0xABBA); + + RegSet16BitValue(0x1600, 0xBFF4); // Set start address for customer firmware version on main block + + // Enable burst mode +// RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); + + RegSetLByteValue(0x160E, 0x01); + + nRegData1 = RegGet16BitValue(0x1604); + nRegData2 = RegGet16BitValue(0x1606); + + *pMajor = (((nRegData1 >> 8) & 0xFF) << 8) + (nRegData1 & 0xFF); + *pMinor = (((nRegData2 >> 8) & 0xFF) << 8) + (nRegData2 & 0xFF); + + // Clear burst mode +// RegSet16BitValue(0x160C, RegGet16BitValue(0x160C) & (~0x01)); + + RegSet16BitValue(0x1600, 0x0000); + + // Clear RIU password + RegSet16BitValue(0x161A, 0x0000); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + + mutex_unlock(&g_Mutex); + } + + DBG("*** major = %d ***\n", *pMajor); + DBG("*** minor = %d ***\n", *pMinor); + + if (*ppVersion == NULL) + { + *ppVersion = kzalloc(sizeof(u8)*6, GFP_KERNEL); + } + + sprintf(*ppVersion, "%03d%03d", *pMajor, *pMinor); +} + +void DrvFwCtrlGetPlatformFirmwareVersion(u8 **ppVersion) +{ + u32 i; + u16 nRegData1, nRegData2; + u8 szDbBusRxData[12] = {0}; + + DBG("*** %s() ***\n", __func__); + + mutex_lock(&g_Mutex); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + if (g_ChipType == CHIP_TYPE_MSG22XX) // Only MSG22XX support platform firmware version + { + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + // RIU password + RegSet16BitValue(0x161A, 0xABBA); + + RegSet16BitValue(0x1600, 0xC1F2); // Set start address for platform firmware version on info block(Actually, start reading from 0xC1F0) + + // Enable burst mode + RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); + + for (i = 0; i < 3; i ++) + { + RegSetLByteValue(0x160E, 0x01); + + nRegData1 = RegGet16BitValue(0x1604); + nRegData2 = RegGet16BitValue(0x1606); + + szDbBusRxData[i*4+0] = (nRegData1 & 0xFF); + szDbBusRxData[i*4+1] = ((nRegData1 >> 8 ) & 0xFF); + +// DBG("szDbBusRxData[%d] = 0x%x , %c \n", i*4+0, szDbBusRxData[i*4+0], szDbBusRxData[i*4+0]); // add for debug +// DBG("szDbBusRxData[%d] = 0x%x , %c \n", i*4+1, szDbBusRxData[i*4+1], szDbBusRxData[i*4+1]); // add for debug + + szDbBusRxData[i*4+2] = (nRegData2 & 0xFF); + szDbBusRxData[i*4+3] = ((nRegData2 >> 8 ) & 0xFF); + +// DBG("szDbBusRxData[%d] = 0x%x , %c \n", i*4+2, szDbBusRxData[i*4+2], szDbBusRxData[i*4+2]); // add for debug +// DBG("szDbBusRxData[%d] = 0x%x , %c \n", i*4+3, szDbBusRxData[i*4+3], szDbBusRxData[i*4+3]); // add for debug + } + + // Clear burst mode + RegSet16BitValue(0x160C, RegGet16BitValue(0x160C) & (~0x01)); + + RegSet16BitValue(0x1600, 0x0000); + + // Clear RIU password + RegSet16BitValue(0x161A, 0x0000); + + if (*ppVersion == NULL) + { + *ppVersion = kzalloc(sizeof(u8)*10, GFP_KERNEL); + } + + sprintf(*ppVersion, "%c%c%c%c%c%c%c%c%c%c", szDbBusRxData[2], szDbBusRxData[3], szDbBusRxData[4], + szDbBusRxData[5], szDbBusRxData[6], szDbBusRxData[7], szDbBusRxData[8], szDbBusRxData[9], szDbBusRxData[10], szDbBusRxData[11]); + } + else + { + if (*ppVersion == NULL) + { + *ppVersion = kzalloc(sizeof(u8)*10, GFP_KERNEL); + } + + sprintf(*ppVersion, "%s", "N/A"); + } + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + + mutex_unlock(&g_Mutex); + + DBG("*** platform firmware version = %s ***\n", *ppVersion); +} + +s32 DrvFwCtrlUpdateFirmware(u8 szFwData[][1024], EmemType_e eEmemType) +{ + DBG("*** %s() ***\n", __func__); + + return _DrvFwCtrlUpdateFirmwareCash(szFwData); +} + +s32 DrvFwCtrlUpdateFirmwareBySdCard(const char *pFilePath) +{ + s32 nRetVal = -1; + + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG21XXA || g_ChipType == CHIP_TYPE_MSG22XX) + { + nRetVal = _DrvFwCtrlUpdateFirmwareBySdCard(pFilePath); + } + else + { + DBG("This chip type (%d) does not support update firmware by sd card\n", g_ChipType); + } + + return nRetVal; +} + +void DrvFwCtrlHandleFingerTouch(void) +{ + TouchInfo_t tInfo; + u32 i; + u8 nTouchKeyCode = 0; + static u32 nLastKeyCode = 0; + u8 *pPacket = NULL; + u16 nReportPacketLength = 0; + s32 rc; + +// DBG("*** %s() ***\n", __func__); // add for debug + + if (_gIsDisableFinagerTouch == 1) + { + DBG("Skip finger touch for handling get firmware info or change firmware mode\n"); + return; + } + + mutex_lock(&g_Mutex); + DBG("*** %s() *** mutex_lock(&g_Mutex)\n", __func__); // add for debug + + memset(&tInfo, 0x0, sizeof(TouchInfo_t)); + + if (IS_FIRMWARE_DATA_LOG_ENABLED) + { + if (g_FirmwareMode == FIRMWARE_MODE_DEMO_MODE) + { + DBG("FIRMWARE_MODE_DEMO_MODE\n"); + + nReportPacketLength = DEMO_MODE_PACKET_LENGTH; + pPacket = g_DemoModePacket; + } + else if (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE) + { + DBG("FIRMWARE_MODE_DEBUG_MODE\n"); + + if (g_FirmwareInfo.nLogModePacketHeader != 0x62) + { + DBG("WRONG DEBUG MODE HEADER : 0x%x\n", g_FirmwareInfo.nLogModePacketHeader); + goto TouchHandleEnd; + } + + nReportPacketLength = g_FirmwareInfo.nLogModePacketLength; + pPacket = g_LogModePacket; + } + else if (g_FirmwareMode == FIRMWARE_MODE_RAW_DATA_MODE) + { + DBG("FIRMWARE_MODE_RAW_DATA_MODE\n"); + + if (g_FirmwareInfo.nLogModePacketHeader != 0x62) + { + DBG("WRONG RAW DATA MODE HEADER : 0x%x\n", g_FirmwareInfo.nLogModePacketHeader); + goto TouchHandleEnd; + } + + nReportPacketLength = g_FirmwareInfo.nLogModePacketLength; + pPacket = g_LogModePacket; + } + else + { + DBG("WRONG FIRMWARE MODE : 0x%x\n", g_FirmwareMode); + goto TouchHandleEnd; + } + } + else + { + DBG("FIRMWARE_MODE_DEMO_MODE\n"); + + nReportPacketLength = DEMO_MODE_PACKET_LENGTH; + pPacket = g_DemoModePacket; + } //IS_FIRMWARE_DATA_LOG_ENABLED + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE + if (g_GestureDebugMode == 1 && g_GestureWakeupFlag == 1) + { + DBG("Set gesture debug mode packet length, g_ChipType=%d\n", g_ChipType); + + if (g_ChipType == CHIP_TYPE_MSG22XX) + { + nReportPacketLength = GESTURE_DEBUG_MODE_PACKET_LENGTH; + pPacket = _gGestureWakeupPacket; + } + else + { + DBG("This chip type does not support gesture debug mode.\n"); + goto TouchHandleEnd; + } + } + else if (g_GestureWakeupFlag == 1) + { + DBG("Set gesture wakeup packet length, g_ChipType=%d\n", g_ChipType); + + if (g_ChipType == CHIP_TYPE_MSG22XX) + { +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE + nReportPacketLength = GESTURE_WAKEUP_INFORMATION_PACKET_LENGTH; +#else + nReportPacketLength = GESTURE_WAKEUP_PACKET_LENGTH; +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE + pPacket = _gGestureWakeupPacket; + } + else if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + nReportPacketLength = DEMO_MODE_PACKET_LENGTH; + pPacket = _gGestureWakeupPacket; + } + else + { + DBG("This chip type does not support gesture wakeup.\n"); + goto TouchHandleEnd; + } + } + +#else + + if (g_GestureWakeupFlag == 1) + { + DBG("Set gesture wakeup packet length, g_ChipType=%d\n", g_ChipType); + + if (g_ChipType == CHIP_TYPE_MSG22XX) + { +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE + nReportPacketLength = GESTURE_WAKEUP_INFORMATION_PACKET_LENGTH; +#else + nReportPacketLength = GESTURE_WAKEUP_PACKET_LENGTH; +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE + + pPacket = _gGestureWakeupPacket; + } + else if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + nReportPacketLength = DEMO_MODE_PACKET_LENGTH; + pPacket = _gGestureWakeupPacket; + } + else + { + DBG("This chip type does not support gesture wakeup.\n"); + goto TouchHandleEnd; + } + } +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + if (g_GestureWakeupFlag == 1) + { + u32 i = 0; + + while (i < 5) + { + mdelay(50); + + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &pPacket[0], nReportPacketLength); + + if (rc > 0) + { + break; + } + + i++; + } + if (i == 5) + { + DBG("I2C read packet data failed, rc = %d\n", rc); + goto TouchHandleEnd; + } + } + else + { + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &pPacket[0], nReportPacketLength); + if (rc < 0) + { + DBG("I2C read packet data failed, rc = %d\n", rc); + goto TouchHandleEnd; + } + } +#else + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &pPacket[0], nReportPacketLength); + if (rc < 0) + { + DBG("I2C read packet data failed, rc = %d\n", rc); + goto TouchHandleEnd; + } +#endif //CONFIG_ENABLE_GESTURE_WAKEUP +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &pPacket[0], nReportPacketLength); + if (rc < 0) + { + DBG("I2C read packet data failed, rc = %d\n", rc); + goto TouchHandleEnd; + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + if (nReportPacketLength > 8) + { +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &pPacket[0], nReportPacketLength); + } + else + { + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &pPacket[0], nReportPacketLength); + } + + if (rc < 0) + { + DBG("I2C read packet data failed, rc = %d\n", rc); + goto TouchHandleEnd; + } +#endif + + if (0 == _DrvFwCtrlParsePacket(pPacket, nReportPacketLength, &tInfo)) + { + //report... + if ((tInfo.nFingerNum) == 0) //touch end + { + if (nLastKeyCode != 0) + { + DBG("key touch released\n"); + + input_report_key(g_InputDevice, BTN_TOUCH, 0); + input_report_key(g_InputDevice, nLastKeyCode, 0); + + input_sync(g_InputDevice); + + nLastKeyCode = 0; //clear key status.. + } + else + { + DrvPlatformLyrFingerTouchReleased(0, 0); + + input_sync(g_InputDevice); + } + } + else //touch on screen + { + if (tInfo.nTouchKeyCode != 0) + { +#ifdef CONFIG_TP_HAVE_KEY + if (tInfo.nTouchKeyCode == 4) // TOUCH_KEY_HOME + { + nTouchKeyCode = g_TpVirtualKey[1]; + } + else if (tInfo.nTouchKeyCode == 1) // TOUCH_KEY_MENU + { + nTouchKeyCode = g_TpVirtualKey[0]; + } + else if (tInfo.nTouchKeyCode == 2) // TOUCH_KEY_BACK + { + nTouchKeyCode = g_TpVirtualKey[2]; + } + else if (tInfo.nTouchKeyCode == 8) // TOUCH_KEY_SEARCH + { + nTouchKeyCode = g_TpVirtualKey[3]; + } + + if (nLastKeyCode != nTouchKeyCode) + { + DBG("key touch pressed\n"); + DBG("nTouchKeyCode = %d, nLastKeyCode = %d\n", nTouchKeyCode, nLastKeyCode); + + nLastKeyCode = nTouchKeyCode; + + input_report_key(g_InputDevice, BTN_TOUCH, 1); + input_report_key(g_InputDevice, nTouchKeyCode, 1); + + input_sync(g_InputDevice); + } +#endif //CONFIG_TP_HAVE_KEY + } + else + { + DBG("tInfo->nFingerNum = %d...............\n", tInfo.nFingerNum); + + for (i = 0; i < tInfo.nFingerNum; i ++) + { + DrvPlatformLyrFingerTouchPressed(tInfo.tPoint[i].nX, tInfo.tPoint[i].nY, 0, 0); + } + + input_sync(g_InputDevice); + } + } + +#ifdef CONFIG_ENABLE_COUNT_REPORT_RATE + if (g_IsEnableReportRate == 1) + { + if (g_ValidTouchCount == 4294967296) + { + g_ValidTouchCount = 0; // Reset count if overflow + DBG("g_ValidTouchCount reset to 0\n"); + } + + g_ValidTouchCount ++; + + DBG("g_ValidTouchCount = %d\n", g_ValidTouchCount); + } +#endif //CONFIG_ENABLE_COUNT_REPORT_RATE + } + + TouchHandleEnd: + + DBG("*** %s() *** mutex_unlock(&g_Mutex)\n", __func__); // add for debug + mutex_unlock(&g_Mutex); +} + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP + +void DrvFwCtrlOpenGestureWakeup(u32 *pMode) +{ + u8 szDbBusTxData[4] = {0}; + u32 i = 0; + s32 rc; + + DBG("*** %s() ***\n", __func__); + + DBG("wakeup mode 0 = 0x%x\n", pMode[0]); + DBG("wakeup mode 1 = 0x%x\n", pMode[1]); + +#ifdef CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE + szDbBusTxData[0] = 0x59; + szDbBusTxData[1] = 0x00; + szDbBusTxData[2] = ((pMode[1] & 0xFF000000) >> 24); + szDbBusTxData[3] = ((pMode[1] & 0x00FF0000) >> 16); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 4); + udelay(1000); // delay 1ms + + if (rc > 0) + { + DBG("Enable gesture wakeup index 0 success\n"); + break; + } + + mdelay(10); + i++; + } + if (i == 5) + { + DBG("Enable gesture wakeup index 0 failed\n"); + } + + szDbBusTxData[0] = 0x59; + szDbBusTxData[1] = 0x01; + szDbBusTxData[2] = ((pMode[1] & 0x0000FF00) >> 8); + szDbBusTxData[3] = ((pMode[1] & 0x000000FF) >> 0); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 4); + udelay(1000); // delay 1ms + + if (rc > 0) + { + DBG("Enable gesture wakeup index 1 success\n"); + break; + } + + mdelay(10); + i++; + } + if (i == 5) + { + DBG("Enable gesture wakeup index 1 failed\n"); + } + + szDbBusTxData[0] = 0x59; + szDbBusTxData[1] = 0x02; + szDbBusTxData[2] = ((pMode[0] & 0xFF000000) >> 24); + szDbBusTxData[3] = ((pMode[0] & 0x00FF0000) >> 16); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 4); + udelay(1000); // delay 1ms + + if (rc > 0) + { + DBG("Enable gesture wakeup index 2 success\n"); + break; + } + + mdelay(10); + i++; + } + if (i == 5) + { + DBG("Enable gesture wakeup index 2 failed\n"); + } + + szDbBusTxData[0] = 0x59; + szDbBusTxData[1] = 0x03; + szDbBusTxData[2] = ((pMode[0] & 0x0000FF00) >> 8); + szDbBusTxData[3] = ((pMode[0] & 0x000000FF) >> 0); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 4); + udelay(1000); // delay 1ms + + if (rc > 0) + { + DBG("Enable gesture wakeup index 3 success\n"); + break; + } + + mdelay(10); + i++; + } + if (i == 5) + { + DBG("Enable gesture wakeup index 3 failed\n"); + } + + g_GestureWakeupFlag = 1; // gesture wakeup is enabled + +#else + + szDbBusTxData[0] = 0x58; + szDbBusTxData[1] = ((pMode[0] & 0x0000FF00) >> 8); + szDbBusTxData[2] = ((pMode[0] & 0x000000FF) >> 0); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + + if (rc > 0) + { + DBG("Enable gesture wakeup success\n"); + break; + } + + mdelay(10); + i++; + } + if (i == 5) + { + DBG("Enable gesture wakeup failed\n"); + } + + g_GestureWakeupFlag = 1; // gesture wakeup is enabled +#endif //CONFIG_SUPPORT_64_TYPES_GESTURE_WAKEUP_MODE +} + +void DrvFwCtrlCloseGestureWakeup(void) +{ + DBG("*** %s() ***\n", __func__); + + g_GestureWakeupFlag = 0; // gesture wakeup is disabled +} + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +void DrvFwCtrlOpenGestureDebugMode(u8 nGestureFlag) +{ + u8 szDbBusTxData[3] = {0}; + s32 rc; + + DBG("*** %s() ***\n", __func__); + + DBG("Gesture Flag = 0x%x\n", nGestureFlag); + + szDbBusTxData[0] = 0x30; + szDbBusTxData[1] = 0x01; + szDbBusTxData[2] = nGestureFlag; + + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + if (rc < 0) + { + DBG("Enable gesture debug mode failed\n"); + } + else + { + DBG("Enable gesture debug mode success\n"); + } + + g_GestureDebugMode = 1; // gesture debug mode is enabled +} + +void DrvFwCtrlCloseGestureDebugMode(void) +{ + u8 szDbBusTxData[3] = {0}; + s32 rc; + + DBG("*** %s() ***\n", __func__); + + szDbBusTxData[0] = 0x30; + szDbBusTxData[1] = 0x00; + szDbBusTxData[2] = 0x00; + + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + if (rc < 0) + { + DBG("Disable gesture debug mode failed\n"); + } + else + { + DBG("Disable gesture debug mode success\n"); + } + + g_GestureDebugMode = 0; // gesture debug mode is disabled +} +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE + +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE +static void _DrvFwCtrlCoordinate(u8 *pRawData, u32 *pTranX, u32 *pTranY) +{ + u32 nX; + u32 nY; +#ifdef CONFIG_SWAP_X_Y + u32 nTempX; + u32 nTempY; +#endif + + nX = (((pRawData[0] & 0xF0) << 4) | pRawData[1]); // parse the packet to coordinate + nY = (((pRawData[0] & 0x0F) << 8) | pRawData[2]); + + DBG("[x,y]=[%d,%d]\n", nX, nY); + +#ifdef CONFIG_SWAP_X_Y + nTempY = nX; + nTempX = nY; + nX = nTempX; + nY = nTempY; +#endif + +#ifdef CONFIG_REVERSE_X + nX = 2047 - nX; +#endif + +#ifdef CONFIG_REVERSE_Y + nY = 2047 - nY; +#endif + + /* + * pRawData[0]~nRawData[2] : the point abs, + * pRawData[0]~nRawData[2] all are 0xFF, release touch + */ + if ((pRawData[0] == 0xFF) && (pRawData[1] == 0xFF) && (pRawData[2] == 0xFF)) + { + *pTranX = 0; // final X coordinate + *pTranY = 0; // final Y coordinate + } + else + { + /* one touch point */ + *pTranX = (nX * TOUCH_SCREEN_X_MAX) / TPD_WIDTH; + *pTranY = (nY * TOUCH_SCREEN_Y_MAX) / TPD_HEIGHT; + DBG("[%s]: [x,y]=[%d,%d]\n", __func__, nX, nY); + DBG("[%s]: point[x,y]=[%d,%d]\n", __func__, *pTranX, *pTranY); + } +} +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE + +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +//------------------------------------------------------------------------------// + +u16 DrvFwCtrlChangeFirmwareMode(u16 nMode) +{ + u8 szDbBusTxData[2] = {0}; + u32 i = 0; + s32 rc; + + DBG("*** %s() *** nMode = 0x%x\n", __func__, nMode); + + _gIsDisableFinagerTouch = 1; // Disable finger touch ISR handling temporarily for device driver can send change firmware mode i2c command to firmware. + + szDbBusTxData[0] = 0x02; + szDbBusTxData[1] = (u8)nMode; + + mutex_lock(&g_Mutex); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 2); + if (rc > 0) + { + DBG("Change firmware mode success\n"); + break; + } + + mdelay(10); + i++; + } + if (i == 5) + { + DBG("Change firmware mode failed, rc = %d\n", rc); + } + + mutex_unlock(&g_Mutex); + + _gIsDisableFinagerTouch = 0; + + return nMode; +} + +void DrvFwCtrlGetFirmwareInfo(FirmwareInfo_t *pInfo) +{ + u8 szDbBusTxData[1] = {0}; + u8 szDbBusRxData[8] = {0}; + u32 i = 0; + s32 rc; + + DBG("*** %s() ***\n", __func__); + + _gIsDisableFinagerTouch = 1; // Disable finger touch ISR handling temporarily for device driver can send get firmware info i2c command to firmware. + + szDbBusTxData[0] = 0x01; + + mutex_lock(&g_Mutex); + + while (i < 5) + { + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 1); + if (rc > 0) + { + DBG("Get firmware info IicWriteData() success\n"); + } + mdelay(20); + rc = IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 8); + if (rc > 0) + { + DBG("Get firmware info IicReadData() success\n"); + break; + } + + mdelay(10); + i++; + } + if (i == 5) + { + DBG("Get firmware info failed, rc = %d\n", rc); + } + + mutex_unlock(&g_Mutex); + + if ((szDbBusRxData[1] & 0x80) == 0x80) + { + pInfo->nIsCanChangeFirmwareMode = 0; + } + else + { + pInfo->nIsCanChangeFirmwareMode = 1; + } + + pInfo->nFirmwareMode = szDbBusRxData[1] & 0x7F; + pInfo->nLogModePacketHeader = szDbBusRxData[2]; + pInfo->nLogModePacketLength = (szDbBusRxData[3]<<8) + szDbBusRxData[4]; + + DBG("pInfo->nFirmwareMode=0x%x, pInfo->nLogModePacketHeader=0x%x, pInfo->nLogModePacketLength=%d, pInfo->nIsCanChangeFirmwareMode=%d\n", pInfo->nFirmwareMode, pInfo->nLogModePacketHeader, pInfo->nLogModePacketLength, pInfo->nIsCanChangeFirmwareMode); + + _gIsDisableFinagerTouch = 0; +} + +void DrvFwCtrlRestoreFirmwareModeToLogDataMode(void) +{ + DBG("*** %s() g_IsSwitchModeByAPK = %d ***\n", __func__, g_IsSwitchModeByAPK); + + if (g_IsSwitchModeByAPK == 1) + { + FirmwareInfo_t tInfo; + + memset(&tInfo, 0x0, sizeof(FirmwareInfo_t)); + + DrvFwCtrlGetFirmwareInfo(&tInfo); + + DBG("g_FirmwareMode = 0x%x, tInfo.nFirmwareMode = 0x%x\n", g_FirmwareMode, tInfo.nFirmwareMode); + + // Since reset_hw() will reset the firmware mode to demo mode, we must reset the firmware mode again after reset_hw(). + if (g_FirmwareMode == FIRMWARE_MODE_DEBUG_MODE && FIRMWARE_MODE_DEBUG_MODE != tInfo.nFirmwareMode) + { + g_FirmwareMode = DrvFwCtrlChangeFirmwareMode(FIRMWARE_MODE_DEBUG_MODE); + } + else if (g_FirmwareMode == FIRMWARE_MODE_RAW_DATA_MODE && FIRMWARE_MODE_RAW_DATA_MODE != tInfo.nFirmwareMode) + { + g_FirmwareMode = DrvFwCtrlChangeFirmwareMode(FIRMWARE_MODE_RAW_DATA_MODE); + } + else + { + DBG("firmware mode is not restored\n"); + } + } +} + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +void DrvFwCtrlCheckFirmwareUpdateBySwId(void) +{ + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + _DrvFwCtrlMsg21xxaCheckFirmwareUpdateBySwId(); + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _DrvFwCtrlMsg22xxCheckFirmwareUpdateBySwId(); + } + else + { + DBG("This chip type (%d) does not support update firmware by sw id\n", g_ChipType); + } +} + +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +//------------------------------------------------------------------------------// + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION + +s32 DrvFwCtrlEnableProximity(void) +{ + u8 szDbBusTxData[4] = {0}; + s32 rc; + + DBG("*** %s() ***\n", __func__); + + szDbBusTxData[0] = 0x52; + szDbBusTxData[1] = 0x00; + + if (g_ChipType == CHIP_TYPE_MSG21XX) + { + szDbBusTxData[2] = 0x62; + } + else if (g_ChipType == CHIP_TYPE_MSG21XXA || g_ChipType == CHIP_TYPE_MSG22XX) + { + szDbBusTxData[2] = 0x4a; + } + else + { + DBG("*** Un-recognized chip type = 0x%x ***\n", g_ChipType); + return -1; + } + + szDbBusTxData[3] = 0xa0; + + mutex_lock(&g_Mutex); + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 4); + mutex_unlock(&g_Mutex); + + if (rc > 0) + { + DBG("Enable proximity detection success\n"); + } + else + { + DBG("Enable proximity detection failed\n"); + } + + g_EnableTpProximity = 1; + + return rc; +} + +s32 DrvFwCtrlDisableProximity(void) +{ + u8 szDbBusTxData[4] = {0}; + s32 rc; + + DBG("*** %s() ***\n", __func__); + + szDbBusTxData[0] = 0x52; + szDbBusTxData[1] = 0x00; + + if (g_ChipType == CHIP_TYPE_MSG21XX) + { + szDbBusTxData[2] = 0x62; + } + else if (g_ChipType == CHIP_TYPE_MSG21XXA || g_ChipType == CHIP_TYPE_MSG22XX) + { + szDbBusTxData[2] = 0x4a; + } + else + { + DBG("*** Un-recognized chip type = 0x%x ***\n", g_ChipType); + return -1; + } + + szDbBusTxData[3] = 0xa1; + + mutex_lock(&g_Mutex); + rc = IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 4); + mutex_unlock(&g_Mutex); + + if (rc > 0) + { + DBG("Disable proximity detection success\n"); + } + else + { + DBG("Disable proximity detection failed\n"); + } + + g_EnableTpProximity = 0; +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + g_FaceClosingTp = 0; +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM || CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM + + return rc; +} + +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +//------------------------------------------------------------------------------// + +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_self_fw_control.h b/drivers/input/touchscreen/msg2233/mstar_drv_self_fw_control.h new file mode 100644 index 00000000..8d7abd6d --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_self_fw_control.h @@ -0,0 +1,185 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_self_fw_control.h + * + * @brief This file defines the interface of touch screen + * + * + */ + +#ifndef __MSTAR_DRV_SELF_FW_CONTROL_H__ +#define __MSTAR_DRV_SELF_FW_CONTROL_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include "mstar_drv_common.h" + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC) + +/*--------------------------------------------------------------------------*/ +/* COMPILE OPTION DEFINITION */ +/*--------------------------------------------------------------------------*/ + +//#define CONFIG_SWAP_X_Y + +//#define CONFIG_REVERSE_X +//#define CONFIG_REVERSE_Y + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR CONSTANT DEFINITION */ +/*--------------------------------------------------------------------------*/ + +#define DEMO_MODE_PACKET_LENGTH (8) +#define MAX_TOUCH_NUM (2) + +#define MAX_ERASE_EFLASH_TIMES (2) // for update firmware of MSG22xx + +#define MSG21XXA_FIRMWARE_MAIN_BLOCK_SIZE (32) //32K +#define MSG21XXA_FIRMWARE_INFO_BLOCK_SIZE (1) //1K +#define MSG21XXA_FIRMWARE_WHOLE_SIZE (MSG21XXA_FIRMWARE_MAIN_BLOCK_SIZE+MSG21XXA_FIRMWARE_INFO_BLOCK_SIZE) //33K + +#define MSG22XX_FIRMWARE_MAIN_BLOCK_SIZE (48) //48K +#define MSG22XX_FIRMWARE_INFO_BLOCK_SIZE (512) //512Byte + + +//#define MSG21XXA_FIRMWARE_MODE_UNKNOWN_MODE (0xFF) +#define MSG21XXA_FIRMWARE_MODE_DEMO_MODE (0x00) +#define MSG21XXA_FIRMWARE_MODE_DEBUG_MODE (0x01) +#define MSG21XXA_FIRMWARE_MODE_RAW_DATA_MODE (0x02) + +//#define MSG22XX_FIRMWARE_MODE_UNKNOWN_MODE (0xFF) +#define MSG22XX_FIRMWARE_MODE_DEMO_MODE (0x00) +#define MSG22XX_FIRMWARE_MODE_DEBUG_MODE (0x01) +#define MSG22XX_FIRMWARE_MODE_RAW_DATA_MODE (0x02) + + +#define DEBUG_MODE_PACKET_LENGTH (128) + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +#define UPDATE_FIRMWARE_RETRY_COUNT (2) +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +#ifdef CONFIG_ENABLE_GESTURE_INFORMATION_MODE +#define FIRMWARE_GESTURE_INFORMATION_MODE_A (0x00) +#define FIRMWARE_GESTURE_INFORMATION_MODE_B (0x01) +#define FIRMWARE_GESTURE_INFORMATION_MODE_C (0x02) +#endif //CONFIG_ENABLE_GESTURE_INFORMATION_MODE +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +/*--------------------------------------------------------------------------*/ +/* DATA TYPE DEFINITION */ +/*--------------------------------------------------------------------------*/ + +typedef struct +{ + u16 nX; + u16 nY; +} TouchPoint_t; + +typedef struct +{ + u8 nTouchKeyMode; + u8 nTouchKeyCode; + u8 nFingerNum; + TouchPoint_t tPoint[MAX_TOUCH_NUM]; +} TouchInfo_t; + +typedef struct +{ + u8 nFirmwareMode; + u8 nLogModePacketHeader; + u16 nLogModePacketLength; + u8 nIsCanChangeFirmwareMode; +} FirmwareInfo_t; + + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +/* + * Note. + * The following is sw id enum definition for MSG22XX. + * 0x0000 and 0xFFFF are not allowed to be defined as SW ID. + * SW_ID_UNDEFINED is a reserved enum value, do not delete it or modify it. + * Please modify the SW ID of the below enum value depends on the TP vendor that you are using. + */ +typedef enum { + MSG22XX_SW_ID_XXXX = 0x0001, + MSG22XX_SW_ID_YYYY = 0x0002, + MSG22XX_SW_ID_UNDEFINED +} Msg22xxSwId_e; + + +/* + * Note. + * The following is sw id enum definition for MSG21XXA. + * SW_ID_UNDEFINED is a reserved enum value, do not delete it or modify it. + * Please modify the SW ID of the below enum value depends on the TP vendor that you are using. + */ +typedef enum { + MSG21XXA_SW_ID_XXXX = 0, + MSG21XXA_SW_ID_YYYY, + MSG21XXA_SW_ID_UNDEFINED +} Msg21xxaSwId_e; +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +#ifdef CONFIG_ENABLE_GESTURE_WAKEUP +extern void DrvFwCtrlOpenGestureWakeup(u32 *pMode); +extern void DrvFwCtrlCloseGestureWakeup(void); + +#ifdef CONFIG_ENABLE_GESTURE_DEBUG_MODE +extern void DrvFwCtrlOpenGestureDebugMode(u8 nGestureFlag); +extern void DrvFwCtrlCloseGestureDebugMode(void); +#endif //CONFIG_ENABLE_GESTURE_DEBUG_MODE +#endif //CONFIG_ENABLE_GESTURE_WAKEUP + +extern u32 DrvFwCtrlReadDQMemValue(u16 nAddr); +extern void DrvFwCtrlWriteDQMemValue(u16 nAddr, u32 nData); + +extern u16 DrvFwCtrlChangeFirmwareMode(u16 nMode); +extern void DrvFwCtrlGetFirmwareInfo(FirmwareInfo_t *pInfo); +extern void DrvFwCtrlRestoreFirmwareModeToLogDataMode(void); + +#ifdef CONFIG_UPDATE_FIRMWARE_BY_SW_ID +extern void DrvFwCtrlCheckFirmwareUpdateBySwId(void); +#endif //CONFIG_UPDATE_FIRMWARE_BY_SW_ID + +#ifdef CONFIG_ENABLE_PROXIMITY_DETECTION +extern s32 DrvFwCtrlEnableProximity(void); +extern s32 DrvFwCtrlDisableProximity(void); +#endif //CONFIG_ENABLE_PROXIMITY_DETECTION + +extern void DrvFwCtrlVariableInitialize(void); +extern void DrvFwCtrlOptimizeCurrentConsumption(void); +extern u8 DrvFwCtrlGetChipType(void); +extern void DrvFwCtrlGetCustomerFirmwareVersion(u16 *pMajor, u16 *pMinor, u8 **ppVersion); +extern void DrvFwCtrlGetPlatformFirmwareVersion(u8 **ppVersion); +extern void DrvFwCtrlHandleFingerTouch(void); +extern s32 DrvFwCtrlUpdateFirmware(u8 szFwData[][1024], EmemType_e eEmemType); +extern s32 DrvFwCtrlUpdateFirmwareBySdCard(const char *pFilePath); + +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC + +#endif /* __MSTAR_DRV_SELF_FW_CONTROL_H__ */ diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_self_mp_test.c b/drivers/input/touchscreen/msg2233/mstar_drv_self_mp_test.c new file mode 100644 index 00000000..2aa3662d --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_self_mp_test.c @@ -0,0 +1,2805 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_self_mp_test.c + * + * @brief This file defines the interface of touch screen + * + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include "mstar_drv_self_mp_test.h" +#include "mstar_drv_utility_adaption.h" +#include "mstar_drv_self_fw_control.h" +#include "mstar_drv_platform_porting_layer.h" +#include "mstar_drv_ic_fw_porting_layer.h" + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC) +#ifdef CONFIG_ENABLE_ITO_MP_TEST + +// Modify. +#include "msg21xxa_open_test_ANA1_X.h" +#include "msg21xxa_open_test_ANA2_X.h" +#include "msg21xxa_open_test_ANA1_B_X.h" +#include "msg21xxa_open_test_ANA2_B_X.h" +#include "msg21xxa_open_test_ANA3_X.h" + +#include "msg21xxa_open_test_ANA1_Y.h" +#include "msg21xxa_open_test_ANA2_Y.h" +#include "msg21xxa_open_test_ANA1_B_Y.h" +#include "msg21xxa_open_test_ANA2_B_Y.h" +#include "msg21xxa_open_test_ANA3_Y.h" + +// Modify. +#include "msg21xxa_short_test_ANA1_X.h" +#include "msg21xxa_short_test_ANA2_X.h" +#include "msg21xxa_short_test_ANA3_X.h" +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE +#include "msg21xxa_short_test_ANA4_X.h" +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + +#include "msg21xxa_short_test_ANA1_Y.h" +#include "msg21xxa_short_test_ANA2_Y.h" +#include "msg21xxa_short_test_ANA3_Y.h" +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE +#include "msg21xxa_short_test_ANA4_Y.h" +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + +// Modify. +#include "msg22xx_open_test_RIU1_X.h" +#include "msg22xx_open_test_RIU2_X.h" +#include "msg22xx_open_test_RIU3_X.h" + +#include "msg22xx_open_test_RIU1_Y.h" +#include "msg22xx_open_test_RIU2_Y.h" +#include "msg22xx_open_test_RIU3_Y.h" + +// Modify. +#include "msg22xx_short_test_RIU1_X.h" +#include "msg22xx_short_test_RIU2_X.h" +#include "msg22xx_short_test_RIU3_X.h" +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE +#include "msg22xx_short_test_RIU4_X.h" +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + +#include "msg22xx_short_test_RIU1_Y.h" +#include "msg22xx_short_test_RIU2_Y.h" +#include "msg22xx_short_test_RIU3_Y.h" +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE +#include "msg22xx_short_test_RIU4_Y.h" +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + + +/*=============================================================*/ +// PREPROCESSOR CONSTANT DEFINITION +/*=============================================================*/ + +// Modify. +#define TP_OF_X (1) //(2) +#define TP_OF_Y (4) + +/*=============================================================*/ +// EXTERN VARIABLE DECLARATION +/*=============================================================*/ + +extern u32 SLAVE_I2C_ID_DBBUS; +extern u32 SLAVE_I2C_ID_DWI2C; + +extern u8 g_ChipType; + +extern struct i2c_client *g_I2cClient; +extern struct mutex g_Mutex; + +/*=============================================================*/ +// LOCAL VARIABLE DEFINITION +/*=============================================================*/ + +static u32 _gIsInMpTest = 0; +static u32 _gTestRetryCount = CTP_MP_TEST_RETRY_COUNT; +static ItoTestMode_e _gItoTestMode = 0; + +static s32 _gCtpMpTestStatus = ITO_TEST_UNDER_TESTING; +static u8 _gTestFailChannel[MAX_CHANNEL_NUM] = {0}; +static u32 _gTestFailChannelCount = 0; + +static struct work_struct _gCtpItoTestWork; +static struct workqueue_struct *_gCtpMpTestWorkQueue = NULL; + +static s16 _gRawData1[MAX_CHANNEL_NUM] = {0}; +static s16 _gRawData2[MAX_CHANNEL_NUM] = {0}; +static s16 _gRawData3[MAX_CHANNEL_NUM] = {0}; +static s16 _gRawData4[MAX_CHANNEL_NUM] = {0}; +static s8 _gDataFlag1[MAX_CHANNEL_NUM] = {0}; +static s8 _gDataFlag2[MAX_CHANNEL_NUM] = {0}; +static s8 _gDataFlag3[MAX_CHANNEL_NUM] = {0}; +static s8 _gDataFlag4[MAX_CHANNEL_NUM] = {0}; + +static u8 _gItoTestKeyNum = 0; +static u8 _gItoTestDummyNum = 0; +static u8 _gItoTestTriangleNum = 0; +static u8 _gIsEnable2R = 0; + + +static u8 _gLTP = 1; + +// _gOpen1~_gOpen3 are for MSG21XXA +static u16 *_gOpen1 = NULL; +static u16 *_gOpen1B = NULL; +static u16 *_gOpen2 = NULL; +static u16 *_gOpen2B = NULL; +static u16 *_gOpen3 = NULL; + +// _gShort_1~_gShort_4 are for MSG21XXA +static u16 *_gShort_1 = NULL; +static u16 *_gShort_2 = NULL; +static u16 *_gShort_3 = NULL; + +// _gShort_1_GPO~_gShort_4_GPO are for MSG21XXA +static u16 *_gShort_1_GPO = NULL; +static u16 *_gShort_2_GPO = NULL; +static u16 *_gShort_3_GPO = NULL; + +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE +static u16 *_gShort_4 = NULL; +static u16 *_gShort_4_GPO = NULL; +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + + +static u8 _gIsOldFirmwareVersion = 0; + +// _gOpenRIU1~_gOpenRIU3 are for MSG22XX +static u32 *_gOpenRIU1 = NULL; +static u32 *_gOpenRIU2 = NULL; +static u32 *_gOpenRIU3 = NULL; + +// _gShort_RIU1~_gShort_RIU4 are for MSG22XX +static u32 *_gShort_RIU1 = NULL; +static u32 *_gShort_RIU2 = NULL; +static u32 *_gShort_RIU3 = NULL; + +// _gOpenSubFrameNum1~_gShortSubFrameNum4 are for MSG22XX +static u8 _gOpenSubFrameNum1 = 0; +static u8 _gOpenSubFrameNum2 = 0; +static u8 _gOpenSubFrameNum3 = 0; +static u8 _gShortSubFrameNum1 = 0; +static u8 _gShortSubFrameNum2 = 0; +static u8 _gShortSubFrameNum3 = 0; + +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE +static u32 *_gShort_RIU4 = NULL; +static u8 _gShortSubFrameNum4 = 0; +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + + +static u8 *_gMAP1 = NULL; +static u8 *_gMAP2 = NULL; +static u8 *_gMAP3 = NULL; +static u8 *_gMAP40_1 = NULL; +static u8 *_gMAP40_2 = NULL; +static u8 *_gMAP41_1 = NULL; +static u8 *_gMAP41_2 = NULL; + +static u8 *_gSHORT_MAP1 = NULL; +static u8 *_gSHORT_MAP2 = NULL; +static u8 *_gSHORT_MAP3 = NULL; + +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE +static u8 *_gMAP40_3 = NULL; +static u8 *_gMAP40_4 = NULL; +static u8 *_gMAP41_3 = NULL; +static u8 *_gMAP41_4 = NULL; + +static u8 *_gSHORT_MAP4 = NULL; +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + + +ItoTestResult_e _gItoTestResult = ITO_TEST_OK; + +/*=============================================================*/ +// EXTERN FUNCTION DECLARATION +/*=============================================================*/ + + +/*=============================================================*/ +// LOCAL FUNCTION DEFINITION +/*=============================================================*/ + +static u16 _DrvMpTestItoTestGetTpType(void) +{ + u16 nMajor = 0, nMinor = 0; + + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + u8 szDbBusTxData[3] = {0}; + u8 szDbBusRxData[4] = {0}; + + szDbBusTxData[0] = 0x53; + szDbBusTxData[1] = 0x00; + szDbBusTxData[2] = 0x2A; + + IicWriteData(SLAVE_I2C_ID_DWI2C, &szDbBusTxData[0], 3); + IicReadData(SLAVE_I2C_ID_DWI2C, &szDbBusRxData[0], 4); + + nMajor = (szDbBusRxData[1]<<8) + szDbBusRxData[0]; + nMinor = (szDbBusRxData[3]<<8) + szDbBusRxData[2]; + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + u16 nRegData1, nRegData2; + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + // RIU password + RegSet16BitValue(0x161A, 0xABBA); + + + RegSet16BitValue(0x1600, 0xBFF4); // Set start address for customer firmware version on main block + + // Enable burst mode +// RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); + + + RegSetLByteValue(0x160E, 0x01); + + nRegData1 = RegGet16BitValue(0x1604); + nRegData2 = RegGet16BitValue(0x1606); + + nMajor = (((nRegData1 >> 8) & 0xFF) << 8) + (nRegData1 & 0xFF); + nMinor = (((nRegData2 >> 8) & 0xFF) << 8) + (nRegData2 & 0xFF); + + // Clear burst mode +// RegSet16BitValue(0x160C, RegGet16BitValue(0x160C) & (~0x01)); + + RegSet16BitValue(0x1600, 0x0000); + + // Clear RIU password + RegSet16BitValue(0x161A, 0x0000); + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + mdelay(100); + } + + DBG("*** major = %d ***\n", nMajor); + DBG("*** minor = %d ***\n", nMinor); + + return nMajor; +} + +static u16 _DrvMpTestItoTestChooseTpType(void) +{ + u16 nTpType = 0; + u32 i = 0; + + DBG("*** %s() ***\n", __func__); + + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + // _gOpen1~_gOpen3 are for MSG21XXA + _gOpen1 = NULL; + _gOpen1B = NULL; + _gOpen2 = NULL; + _gOpen2B = NULL; + _gOpen3 = NULL; + + // _gShort_1~_gShort_4 are for MSG21XXA + _gShort_1 = NULL; + _gShort_2 = NULL; + _gShort_3 = NULL; + + _gShort_1_GPO = NULL; + _gShort_2_GPO = NULL; + _gShort_3_GPO = NULL; + +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + _gShort_4 = NULL; + _gShort_4_GPO = NULL; +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + // _gOpenRIU1~_gOpenRIU3 are for MSG22XX + _gOpenRIU1 = NULL; + _gOpenRIU2 = NULL; + _gOpenRIU3 = NULL; + + // _gShort_RIU1~_gShort_RIU4 are for MSG22XX + _gShort_RIU1 = NULL; + _gShort_RIU2 = NULL; + _gShort_RIU3 = NULL; + + _gOpenSubFrameNum1 = 0; + _gOpenSubFrameNum2 = 0; + _gOpenSubFrameNum3 = 0; + _gShortSubFrameNum1 = 0; + _gShortSubFrameNum2 = 0; + _gShortSubFrameNum3 = 0; + +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + _gShort_RIU4 = NULL; + _gShortSubFrameNum4 = 0; +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + } + + _gMAP1 = NULL; + _gMAP2 = NULL; + _gMAP3 = NULL; + _gMAP40_1 = NULL; + _gMAP40_2 = NULL; + _gMAP41_1 = NULL; + _gMAP41_2 = NULL; + + _gSHORT_MAP1 = NULL; + _gSHORT_MAP2 = NULL; + _gSHORT_MAP3 = NULL; + +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + _gMAP40_3 = NULL; + _gMAP40_4 = NULL; + _gMAP41_3 = NULL; + _gMAP41_4 = NULL; + + _gSHORT_MAP4 = NULL; +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + + _gItoTestKeyNum = 0; + _gItoTestDummyNum = 0; + _gItoTestTriangleNum = 0; + _gIsEnable2R = 0; + + for (i = 0; i < 10; i ++) + { + nTpType = _DrvMpTestItoTestGetTpType(); + DBG("nTpType = %d, i = %d\n", nTpType, i); + + if (TP_OF_X == nTpType || TP_OF_Y == nTpType) // Modify. + { + break; + } + else if (i < 5) + { + mdelay(100); + } + else + { + DrvPlatformLyrTouchDeviceResetHw(); + } + } + + if (TP_OF_X == nTpType) // Modify. + { + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + _gOpen1 = MSG21XXA_open_1_X; + _gOpen1B = MSG21XXA_open_1B_X; + _gOpen2 = MSG21XXA_open_2_X; + _gOpen2B = MSG21XXA_open_2B_X; + _gOpen3 = MSG21XXA_open_3_X; + + _gShort_1 = MSG21XXA_short_1_X; + _gShort_2 = MSG21XXA_short_2_X; + _gShort_3 = MSG21XXA_short_3_X; + + _gShort_1_GPO = MSG21XXA_short_1_X_GPO; + _gShort_2_GPO = MSG21XXA_short_2_X_GPO; + _gShort_3_GPO = MSG21XXA_short_3_X_GPO; + +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + _gShort_4 = MSG21XXA_short_4_X; + _gShort_4_GPO = MSG21XXA_short_4_X_GPO; +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + + _gMAP1 = MSG21XXA_MAP1_X; + _gMAP2 = MSG21XXA_MAP2_X; + _gMAP3 = MSG21XXA_MAP3_X; + _gMAP40_1 = MSG21XXA_MAP40_1_X; + _gMAP40_2 = MSG21XXA_MAP40_2_X; + _gMAP41_1 = MSG21XXA_MAP41_1_X; + _gMAP41_2 = MSG21XXA_MAP41_2_X; + + _gSHORT_MAP1 = MSG21XXA_SHORT_MAP1_X; + _gSHORT_MAP2 = MSG21XXA_SHORT_MAP2_X; + _gSHORT_MAP3 = MSG21XXA_SHORT_MAP3_X; + +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + _gMAP40_3 = MSG21XXA_MAP40_3_X; + _gMAP40_4 = MSG21XXA_MAP40_4_X; + _gMAP41_3 = MSG21XXA_MAP41_3_X; + _gMAP41_4 = MSG21XXA_MAP41_4_X; + + _gSHORT_MAP4 = MSG21XXA_SHORT_MAP4_X; +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + + _gItoTestKeyNum = MSG21XXA_NUM_KEY_X; + _gItoTestDummyNum = MSG21XXA_NUM_DUMMY_X; + _gItoTestTriangleNum = MSG21XXA_NUM_SENSOR_X; + _gIsEnable2R = MSG21XXA_ENABLE_2R_X; + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _gOpenRIU1 = MSG22XX_open_1_X; + _gOpenRIU2 = MSG22XX_open_2_X; + _gOpenRIU3 = MSG22XX_open_3_X; + + _gShort_RIU1 = MSG22XX_short_1_X; + _gShort_RIU2 = MSG22XX_short_2_X; + _gShort_RIU3 = MSG22XX_short_3_X; + + _gOpenSubFrameNum1 = MSG22XX_NUM_OPEN_1_SENSOR_X; + _gOpenSubFrameNum2 = MSG22XX_NUM_OPEN_2_SENSOR_X; + _gOpenSubFrameNum3 = MSG22XX_NUM_OPEN_3_SENSOR_X; + _gShortSubFrameNum1 = MSG22XX_NUM_SHORT_1_SENSOR_X; + _gShortSubFrameNum2 = MSG22XX_NUM_SHORT_2_SENSOR_X; + _gShortSubFrameNum3 = MSG22XX_NUM_SHORT_3_SENSOR_X; + +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + _gShort_RIU4 = MSG22XX_short_4_X; + _gShortSubFrameNum4 = MSG22XX_NUM_SHORT_4_SENSOR_X; +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + + _gMAP1 = MSG22XX_MAP1_X; + _gMAP2 = MSG22XX_MAP2_X; + _gMAP3 = MSG22XX_MAP3_X; + _gMAP40_1 = MSG22XX_MAP40_1_X; + _gMAP40_2 = MSG22XX_MAP40_2_X; + _gMAP41_1 = MSG22XX_MAP41_1_X; + _gMAP41_2 = MSG22XX_MAP41_2_X; + + _gSHORT_MAP1 = MSG22XX_SHORT_MAP1_X; + _gSHORT_MAP2 = MSG22XX_SHORT_MAP2_X; + _gSHORT_MAP3 = MSG22XX_SHORT_MAP3_X; + +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + _gMAP40_3 = MSG22XX_MAP40_3_X; + _gMAP40_4 = MSG22XX_MAP40_4_X; + _gMAP41_3 = MSG22XX_MAP41_3_X; + _gMAP41_4 = MSG22XX_MAP41_4_X; + + _gSHORT_MAP4 = MSG22XX_SHORT_MAP4_X; +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + + _gItoTestKeyNum = MSG22XX_NUM_KEY_X; + _gItoTestDummyNum = MSG22XX_NUM_DUMMY_X; + _gItoTestTriangleNum = MSG22XX_NUM_SENSOR_X; + _gIsEnable2R = MSG22XX_ENABLE_2R_X; + } + } + else if (TP_OF_Y == nTpType) // Modify. + { + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + _gOpen1 = MSG21XXA_open_1_Y; + _gOpen1B = MSG21XXA_open_1B_Y; + _gOpen2 = MSG21XXA_open_2_Y; + _gOpen2B = MSG21XXA_open_2B_Y; + _gOpen3 = MSG21XXA_open_3_Y; + + _gShort_1 = MSG21XXA_short_1_Y; + _gShort_2 = MSG21XXA_short_2_Y; + _gShort_3 = MSG21XXA_short_3_Y; + + _gShort_1_GPO = MSG21XXA_short_1_Y_GPO; + _gShort_2_GPO = MSG21XXA_short_2_Y_GPO; + _gShort_3_GPO = MSG21XXA_short_3_Y_GPO; + +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + _gShort_4 = MSG21XXA_short_4_Y; + _gShort_4_GPO = MSG21XXA_short_4_Y_GPO; +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + + _gMAP1 = MSG21XXA_MAP1_Y; + _gMAP2 = MSG21XXA_MAP2_Y; + _gMAP3 = MSG21XXA_MAP3_Y; + _gMAP40_1 = MSG21XXA_MAP40_1_Y; + _gMAP40_2 = MSG21XXA_MAP40_2_Y; + _gMAP41_1 = MSG21XXA_MAP41_1_Y; + _gMAP41_2 = MSG21XXA_MAP41_2_Y; + + _gSHORT_MAP1 = MSG21XXA_SHORT_MAP1_Y; + _gSHORT_MAP2 = MSG21XXA_SHORT_MAP2_Y; + _gSHORT_MAP3 = MSG21XXA_SHORT_MAP3_Y; + +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + _gMAP40_3 = MSG21XXA_MAP40_3_Y; + _gMAP40_4 = MSG21XXA_MAP40_4_Y; + _gMAP41_3 = MSG21XXA_MAP41_3_Y; + _gMAP41_4 = MSG21XXA_MAP41_4_Y; + + _gSHORT_MAP4 = MSG21XXA_SHORT_MAP4_Y; +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + + _gItoTestKeyNum = MSG21XXA_NUM_KEY_Y; + _gItoTestDummyNum = MSG21XXA_NUM_DUMMY_Y; + _gItoTestTriangleNum = MSG21XXA_NUM_SENSOR_Y; + _gIsEnable2R = MSG21XXA_ENABLE_2R_Y; + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _gOpenRIU1 = MSG22XX_open_1_Y; + _gOpenRIU2 = MSG22XX_open_2_Y; + _gOpenRIU3 = MSG22XX_open_3_Y; + + _gShort_RIU1 = MSG22XX_short_1_Y; + _gShort_RIU2 = MSG22XX_short_2_Y; + _gShort_RIU3 = MSG22XX_short_3_Y; + + _gOpenSubFrameNum1 = MSG22XX_NUM_OPEN_1_SENSOR_Y; + _gOpenSubFrameNum2 = MSG22XX_NUM_OPEN_2_SENSOR_Y; + _gOpenSubFrameNum3 = MSG22XX_NUM_OPEN_3_SENSOR_Y; + _gShortSubFrameNum1 = MSG22XX_NUM_SHORT_1_SENSOR_Y; + _gShortSubFrameNum2 = MSG22XX_NUM_SHORT_2_SENSOR_Y; + _gShortSubFrameNum3 = MSG22XX_NUM_SHORT_3_SENSOR_Y; + +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + _gShort_RIU4 = MSG22XX_short_4_Y; + _gShortSubFrameNum4 = MSG22XX_NUM_SHORT_4_SENSOR_Y; +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + + _gMAP1 = MSG22XX_MAP1_Y; + _gMAP2 = MSG22XX_MAP2_Y; + _gMAP3 = MSG22XX_MAP3_Y; + _gMAP40_1 = MSG22XX_MAP40_1_Y; + _gMAP40_2 = MSG22XX_MAP40_2_Y; + _gMAP41_1 = MSG22XX_MAP41_1_Y; + _gMAP41_2 = MSG22XX_MAP41_2_Y; + + _gSHORT_MAP1 = MSG22XX_SHORT_MAP1_Y; + _gSHORT_MAP2 = MSG22XX_SHORT_MAP2_Y; + _gSHORT_MAP3 = MSG22XX_SHORT_MAP3_Y; + +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + _gMAP40_3 = MSG22XX_MAP40_3_Y; + _gMAP40_4 = MSG22XX_MAP40_4_Y; + _gMAP41_3 = MSG22XX_MAP41_3_Y; + _gMAP41_4 = MSG22XX_MAP41_4_Y; + + _gSHORT_MAP4 = MSG22XX_SHORT_MAP4_Y; +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + + _gItoTestKeyNum = MSG22XX_NUM_KEY_Y; + _gItoTestDummyNum = MSG22XX_NUM_DUMMY_Y; + _gItoTestTriangleNum = MSG22XX_NUM_SENSOR_Y; + _gIsEnable2R = MSG22XX_ENABLE_2R_Y; + } + } + else + { + nTpType = 0; + } + + return nTpType; +} + +static void _DrvMpTestItoTestAnaSwReset(void) +{ + DBG("*** %s() ***\n", __func__); + + RegSet16BitValue(0x1100, 0xFFFF); // reset ANA - analog + + if (g_ChipType == CHIP_TYPE_MSG22XX) + { + RegSet16BitValueOn(0x130C, BIT1); // reset Filter - digital + } + + RegSet16BitValue(0x1100, 0x0000); + mdelay(15); +} + +//------------------------------------------------------------------------------// + + +static u16 _DrvMpTestItoTestGetNum(void) +{ + u32 i; + u16 nSensorNum = 0; + u16 nRegVal1, nRegVal2; + + DBG("*** %s() ***\n", __func__); + + nRegVal1 = RegGet16BitValue(0x114A); //bank:ana, addr:h0025 + DBG("nRegValue1 = %d\n", nRegVal1); + + if ((nRegVal1 & BIT1) == BIT1) + { + nRegVal1 = RegGet16BitValue(0x120A); //bank:ana2, addr:h0005 + nRegVal1 = nRegVal1 & 0x0F; + + nRegVal2 = RegGet16BitValue(0x1216); //bank:ana2, addr:h000b + nRegVal2 = ((nRegVal2 >> 1) & 0x0F) + 1; + + nSensorNum = nRegVal1 * nRegVal2; + } + else + { + for (i = 0; i < 4; i ++) + { + nSensorNum += (RegGet16BitValue(0x120A)>>(4*i))&0x0F; //bank:ana2, addr:h0005 + } + } + DBG("nSensorNum = %d\n", nSensorNum); + + return nSensorNum; +} + +static void _DrvMpTestItoTestDisableFilterNoiseDetect(void) +{ + u16 nRegValue; + + DBG("*** %s() ***\n", __func__); + + // Disable DIG/ANA drop + nRegValue = RegGet16BitValue(0x1302); + + RegSet16BitValue(0x1302, nRegValue & (~(BIT2 | BIT1 | BIT0))); +} + +static void _DrvMpTestItoTestPolling(void) +{ + u16 nRegInt = 0x0000; + u16 nRegVal; + + DBG("*** %s() ***\n", __func__); + + RegSet16BitValue(0x130C, BIT15); //bank:fir, addr:h0006 + RegSet16BitValue(0x1214, (RegGet16BitValue(0x1214) | BIT0)); //bank:ana2, addr:h000a + + DBG("polling start\n"); + + do + { + nRegInt = RegGet16BitValue(0x3D18); //bank:intr_ctrl, addr:h000c + } while(( nRegInt & FIQ_E_FRAME_READY_MASK ) == 0x0000); + + DBG("polling end\n"); + + nRegVal = RegGet16BitValue(0x3D18); + RegSet16BitValue(0x3D18, nRegVal & (~FIQ_E_FRAME_READY_MASK)); +} + +static void _DrvMpTestItoOpenTestSetV(u8 nEnable, u8 nPrs) +{ + u16 nRegVal; + + DBG("*** %s() nEnable = %d, nPrs = %d ***\n", __func__, nEnable, nPrs); + + nRegVal = RegGet16BitValue(0x1208); //bank:ana2, addr:h0004 + nRegVal = nRegVal & 0xF1; + + if (nPrs == 0) + { + RegSet16BitValue(0x1208, nRegVal|0x0C); + } + else if (nPrs == 1) + { + RegSet16BitValue(0x1208, nRegVal|0x0E); + } + else + { + RegSet16BitValue(0x1208, nRegVal|0x02); + } + + if (nEnable) + { + nRegVal = RegGet16BitValue(0x1106); //bank:ana, addr:h0003 + RegSet16BitValue(0x1106, nRegVal|0x03); + } + else + { + nRegVal = RegGet16BitValue(0x1106); + nRegVal = nRegVal & 0xFC; + RegSet16BitValue(0x1106, nRegVal); + } +} + +static u16 _DrvMpTestItoTestMsg21xxaGetDataOut(s16 *pRawData) +{ + u32 i; + u16 szRawData[MAX_CHANNEL_NUM] = {0}; + u16 nSensorNum; + u16 nRegInt; + u8 szDbBusTxData[8] = {0}; + u8 szDbBusRxData[MAX_CHANNEL_NUM*2] = {0}; + + DBG("*** %s() ***\n", __func__); + + nSensorNum = _DrvMpTestItoTestGetNum(); + + if ((nSensorNum*2) > (MAX_CHANNEL_NUM*2)) + { + DBG("Danger. nSensorNum = %d\n", nSensorNum); + return nSensorNum; + } + + nRegInt = RegGet16BitValue((0x3d<<8) | (REG_INTR_FIQ_MASK<<1)); + RegSet16BitValue((0x3d<<8) | (REG_INTR_FIQ_MASK<<1), (nRegInt & (u16)(~FIQ_E_FRAME_READY_MASK))); + + _DrvMpTestItoTestPolling(); + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x13; //bank:fir, addr:h0020 + szDbBusTxData[2] = 0x40; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3); + mdelay(20); + IicReadData(SLAVE_I2C_ID_DBBUS, &szDbBusRxData[0], (nSensorNum * 2)); + mdelay(100); + + for (i = 0; i < nSensorNum * 2; i ++) + { + DBG("szDbBusRxData[%d] = %d\n", i, szDbBusRxData[i]); // add for debug + } + + nRegInt = RegGet16BitValue((0x3d<<8) | (REG_INTR_FIQ_MASK<<1)); + RegSet16BitValue((0x3d<<8) | (REG_INTR_FIQ_MASK<<1), (nRegInt | (u16)FIQ_E_FRAME_READY_MASK)); + + for (i = 0; i < nSensorNum; i ++) + { + szRawData[i] = (szDbBusRxData[2 * i + 1] << 8 ) | (szDbBusRxData[2 * i]); + pRawData[i] = (s16)szRawData[i]; + } + + return nSensorNum; +} + +static void _DrvMpTestItoTestMsg21xxaSendDataIn(u8 nStep) +{ + u32 i; + u16 *pType = NULL; + u8 szDbBusTxData[512] = {0}; + + DBG("*** %s() nStep = %d ***\n", __func__, nStep); + + if (nStep == 1) //39-1 + { + pType = &_gShort_1[0]; + } + else if (nStep == 2) //39-2 + { + pType = &_gShort_2[0]; + } + else if (nStep == 3) //39-3 + { + pType = &_gShort_3[0]; + } +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + else if (nStep == 0) //39-4 (2R) + { + pType = &_gShort_4[0]; + } +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + else if (nStep == 4) + { + pType = &_gOpen1[0]; + } + else if (nStep == 5) + { + pType = &_gOpen2[0]; + } + else if (nStep == 6) + { + pType = &_gOpen3[0]; + } + else if (nStep == 9) + { + pType = &_gOpen1B[0]; + } + else if (nStep == 10) + { + pType = &_gOpen2B[0]; + } + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x11; //bank:ana, addr:h0000 + szDbBusTxData[2] = 0x00; + for (i = 0; i <= 0x3E ; i ++) + { + szDbBusTxData[3+2*i] = pType[i] & 0xFF; + szDbBusTxData[4+2*i] = (pType[i] >> 8) & 0xFF; + } + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+0x3F*2); + + szDbBusTxData[2] = 0x7A * 2; //bank:ana, addr:h007a + for (i = 0x7A; i <= 0x7D ; i ++) + { + szDbBusTxData[3+2*(i-0x7A)] = 0; + szDbBusTxData[4+2*(i-0x7A)] = 0; + } + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+8); + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x12; //bank:ana2, addr:h0005 + + szDbBusTxData[2] = 0x05 * 2; + szDbBusTxData[3] = pType[128+0x05] & 0xFF; + szDbBusTxData[4] = (pType[128+0x05] >> 8) & 0xFF; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 5); + + szDbBusTxData[2] = 0x0B * 2; //bank:ana2, addr:h000b + szDbBusTxData[3] = pType[128+0x0B] & 0xFF; + szDbBusTxData[4] = (pType[128+0x0B] >> 8) & 0xFF; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 5); + + szDbBusTxData[2] = 0x12 * 2; //bank:ana2, addr:h0012 + szDbBusTxData[3] = pType[128+0x12] & 0xFF; + szDbBusTxData[4] = (pType[128+0x12] >> 8) & 0xFF; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 5); + + szDbBusTxData[2] = 0x15 * 2; //bank:ana2, addr:h0015 + szDbBusTxData[3] = pType[128+0x15] & 0xFF; + szDbBusTxData[4] = (pType[128+0x15] >> 8) & 0xFF; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 5); + + if (_gItoTestMode == ITO_TEST_MODE_OPEN_TEST) + { +//#if 1 //for AC mod + szDbBusTxData[1] = 0x13; + szDbBusTxData[2] = 0x12 * 2; + szDbBusTxData[3] = 0x30; + szDbBusTxData[4] = 0x30; + IicWriteData(SLAVE_I2C_ID_DBBUS, szDbBusTxData, 5); + + szDbBusTxData[2] = 0x14 * 2; + szDbBusTxData[3] = 0X30; + szDbBusTxData[4] = 0X30; + IicWriteData(SLAVE_I2C_ID_DBBUS, szDbBusTxData, 5); + + szDbBusTxData[1] = 0x12; + for (i = 0x0D; i <= 0x10; i ++) //for AC noise(++) + { + szDbBusTxData[2] = i * 2; + szDbBusTxData[3] = pType[128+i] & 0xFF; + szDbBusTxData[4] = (pType[128+i] >> 8) & 0xFF; + IicWriteData(SLAVE_I2C_ID_DBBUS, szDbBusTxData, 5); + } + + for (i = 0x16; i <= 0x18; i ++) //for AC noise + { + szDbBusTxData[2] = i * 2; + szDbBusTxData[3] = pType[128+i] & 0xFF; + szDbBusTxData[4] = (pType[128+i] >> 8) & 0xFF; + IicWriteData(SLAVE_I2C_ID_DBBUS, szDbBusTxData, 5); + } +//#endif + } +} + +static void _DrvMpTestItoOpenTestMsg21xxaSetC(u8 nCSubStep) +{ + u32 i; + u8 szDbBusTxData[MAX_CHANNEL_NUM+3]; + u8 nHighLevelCSub = 0; + u8 nCSubNew; + + DBG("*** %s() nCSubStep = %d ***\n", __func__, nCSubStep); + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x11; //bank:ana, addr:h0042 + szDbBusTxData[2] = 0x84; + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + nCSubNew = nCSubStep; + nHighLevelCSub = 0; + + if (nCSubNew > 0x1F) + { + nCSubNew = nCSubNew - 0x14; + nHighLevelCSub = 1; + } + + szDbBusTxData[3+i] = nCSubNew & 0x1F; + if (nHighLevelCSub == 1) + { + szDbBusTxData[3+i] |= BIT5; + } + } + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], MAX_CHANNEL_NUM+3); + + szDbBusTxData[2] = 0xB4; //bank:ana, addr:h005a + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], MAX_CHANNEL_NUM+3); +} + +static void _DrvMpTestItoOpenTestMsg21xxaFirst(u8 nItemId, s16 *pRawData, s8 *pDataFlag) +{ + u32 i, j; + s16 szTmpRawData[MAX_CHANNEL_NUM] = {0}; + u16 nRegVal; + u8 nLoop; + u8 nSensorNum1 = 0, nSensorNum2 = 0, nTotalSensor = 0; + u8 *pMapping = NULL; + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + + // Stop cpu + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 + + RegSet16BitValue(0x1E24, 0x0500); //bank:chip, addr:h0012 + RegSet16BitValue(0x1E2A, 0x0000); //bank:chip, addr:h0015 + RegSet16BitValue(0x1EE6, 0x6E00); //bank:chip, addr:h0073 + RegSet16BitValue(0x1EE8, 0x0071); //bank:chip, addr:h0074 + + if (nItemId == 40) + { + pMapping = &_gMAP1[0]; + if (_gIsEnable2R) + { + nTotalSensor = _gItoTestTriangleNum/2; + } + else + { + nTotalSensor = _gItoTestTriangleNum/2 + _gItoTestKeyNum + _gItoTestDummyNum; + } + } + else if (nItemId == 41) + { + pMapping = &_gMAP2[0]; + if (_gIsEnable2R) + { + nTotalSensor = _gItoTestTriangleNum/2; + } + else + { + nTotalSensor = _gItoTestTriangleNum/2 + _gItoTestKeyNum + _gItoTestDummyNum; + } + } + else if (nItemId == 42) + { + pMapping = &_gMAP3[0]; + nTotalSensor = _gItoTestTriangleNum + _gItoTestKeyNum + _gItoTestDummyNum; + } + + nLoop = 1; + if (nItemId != 42) + { + if (nTotalSensor > 11) + { + nLoop = 2; + } + } + + DBG("nLoop = %d\n", nLoop); + + for (i = 0; i < nLoop; i ++) + { + if (i == 0) + { + _DrvMpTestItoTestMsg21xxaSendDataIn(nItemId - 36); + } + else + { + if (nItemId == 40) + { + _DrvMpTestItoTestMsg21xxaSendDataIn(9); + } + else + { + _DrvMpTestItoTestMsg21xxaSendDataIn(10); + } + } + + _DrvMpTestItoTestDisableFilterNoiseDetect(); + + _DrvMpTestItoOpenTestSetV(1, 0); + nRegVal = RegGet16BitValue(0x110E); //bank:ana, addr:h0007 + RegSet16BitValue(0x110E, nRegVal | BIT11); + + if (_gLTP == 1) + { + _DrvMpTestItoOpenTestMsg21xxaSetC(32); + } + else + { + _DrvMpTestItoOpenTestMsg21xxaSetC(0); + } + + _DrvMpTestItoTestAnaSwReset(); + + if (i == 0) + { + nSensorNum1 = _DrvMpTestItoTestMsg21xxaGetDataOut(szTmpRawData); + DBG("nSensorNum1 = %d\n", nSensorNum1); + } + else + { + nSensorNum2 = _DrvMpTestItoTestMsg21xxaGetDataOut(&szTmpRawData[nSensorNum1]); + DBG("nSensorNum1 = %d, nSensorNum2 = %d\n", nSensorNum1, nSensorNum2); + } + } + + for (j = 0; j < nTotalSensor; j ++) + { + if (_gLTP == 1) + { + pRawData[pMapping[j]] = szTmpRawData[j] + 4096; + pDataFlag[pMapping[j]] = 1; + } + else + { + pRawData[pMapping[j]] = szTmpRawData[j]; + pDataFlag[pMapping[j]] = 1; + } + } +} + +static void _DrvMpTestItoShortTestChangeGPOSetting(u8 nItemId) +{ + u8 szDbBusTxData[3+GPO_SETTING_SIZE*2] = {0}; + u16 szGPOSetting[3] = {0}; + u32 i; + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + + if (nItemId == 1) // 39-1 + { + szGPOSetting[0] = _gShort_1_GPO[0]; + szGPOSetting[1] = _gShort_1_GPO[1]; + szGPOSetting[2] = _gShort_1_GPO[2]; + szGPOSetting[2] |= (1 << (int)(PIN_GUARD_RING % 16)); + } + else if (nItemId == 2) // 39-2 + { + szGPOSetting[0] = _gShort_2_GPO[0]; + szGPOSetting[1] = _gShort_2_GPO[1]; + szGPOSetting[2] = _gShort_2_GPO[2]; + szGPOSetting[2] |= (1 << (int)(PIN_GUARD_RING % 16)); + } + else if (nItemId == 3) // 39-3 + { + szGPOSetting[0] = _gShort_3_GPO[0]; + szGPOSetting[1] = _gShort_3_GPO[1]; + szGPOSetting[2] = _gShort_3_GPO[2]; + szGPOSetting[2] |= (1 << (int)(PIN_GUARD_RING % 16)); + } +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + else if (nItemId == 0) // 39-4 (2R) + { + szGPOSetting[0] = _gShort_4_GPO[0]; + szGPOSetting[1] = _gShort_4_GPO[1]; + szGPOSetting[2] = _gShort_4_GPO[2]; + szGPOSetting[2] |= (1 << (int)(PIN_GUARD_RING % 16)); + } +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + else + { + DBG("Invalid item id for changing GPIO setting of short test.\n"); + + return; + } + + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x12; + szDbBusTxData[2] = 0x48; + + for (i = 0; i < GPO_SETTING_SIZE; i ++) + { + szDbBusTxData[3+2*i] = szGPOSetting[i] & 0xFF; + szDbBusTxData[4+2*i] = (szGPOSetting[i] >> 8) & 0xFF; + } + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3+GPO_SETTING_SIZE*2); +} + +static void _DrvMpTestItoShortTestChangeRmodeSetting(u8 nMode) +{ + u8 szDbBusTxData[6] = {0}; + + DBG("*** %s() nMode = %d ***\n", __func__, nMode); + + // AFE R-mode enable(Bit-12) + RegSetLByteValue(0x1103, 0x10); + + // drv_mux_OV (Bit-8 1:enable) + RegSetLByteValue(0x1107, 0x55); + + if (nMode == 1) // P_CODE: 0V + { + RegSet16BitValue(0x110E, 0x073A); + } + else if (nMode == 0) // N_CODE: 2.4V + { + RegSet16BitValue(0x110E, 0x073B); + } + + // SW2 rising & SW3 rising return to 0 + RegSetLByteValue(0x1227, 0x01); + // turn off the chopping + RegSetLByteValue(0x1208, 0x0C); + // idle driver ov + RegSetLByteValue(0x1241, 0xC0); + + // AFE ov + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x12; + szDbBusTxData[2] = 0x44; + szDbBusTxData[3] = 0xFF; + szDbBusTxData[4] = 0xFF; + szDbBusTxData[5] = 0xFF; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 6); +} + +static void _DrvMpTestItoShortTestMsg21xxaFirst(u8 nItemId, s16 *pRawData, s8 *pDataFlag) +{ + u32 i; + s16 szTmpRawData[MAX_CHANNEL_NUM] = {0}; + s16 szTmpRawData2[MAX_CHANNEL_NUM] = {0}; + u8 nSensorNum, nSensorNum2, nNumOfSensorMapping1, nNumOfSensorMapping2, nSensorCount = 0; + u8 *pMapping = NULL; + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + + // Stop cpu + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 + // chip top op0 + RegSet16BitValue(0x1E24, 0x0500); //bank:chip, addr:h0012 + RegSet16BitValue(0x1E2A, 0x0000); //bank:chip, addr:h0015 + RegSet16BitValue(0x1EE6, 0x6E00); //bank:chip, addr:h0073 + RegSet16BitValue(0x1EE8, 0x0071); //bank:chip, addr:h0074 + + if ((_gItoTestTriangleNum + _gItoTestKeyNum + _gItoTestDummyNum) % 2 != 0) + { + nNumOfSensorMapping1 = (_gItoTestTriangleNum + _gItoTestKeyNum + _gItoTestDummyNum) / 2 + 1; + nNumOfSensorMapping2 = nNumOfSensorMapping1; + } + else + { + nNumOfSensorMapping1 = (_gItoTestTriangleNum + _gItoTestKeyNum + _gItoTestDummyNum) / 2; + nNumOfSensorMapping2 = nNumOfSensorMapping1; + if (nNumOfSensorMapping2 % 2 != 0) + { + nNumOfSensorMapping2 ++; + } + } + + if (nItemId == 1) // 39-1 + { + pMapping = &_gSHORT_MAP1[0]; + nSensorCount = nNumOfSensorMapping1; + } + else if (nItemId == 2) // 39-2 + { + pMapping = &_gSHORT_MAP2[0]; + nSensorCount = nNumOfSensorMapping2; + } + else if (nItemId == 3) // 39-3 + { + pMapping = &_gSHORT_MAP3[0]; + nSensorCount = _gItoTestTriangleNum; + } +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + else if (nItemId == 0) // 39-4 (2R) + { + pMapping = &_gSHORT_MAP4[0]; + nSensorCount = _gItoTestTriangleNum/2; + } +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + + DBG("nSensorCount = %d\n", nSensorCount); + + _DrvMpTestItoTestMsg21xxaSendDataIn(nItemId); + + _DrvMpTestItoTestDisableFilterNoiseDetect(); + + _DrvMpTestItoShortTestChangeRmodeSetting(1); + _DrvMpTestItoShortTestChangeGPOSetting(nItemId); + _DrvMpTestItoTestAnaSwReset(); + nSensorNum = _DrvMpTestItoTestMsg21xxaGetDataOut(szTmpRawData); + DBG("nSensorNum = %d\n", nSensorNum); + + _DrvMpTestItoShortTestChangeRmodeSetting(0); + _DrvMpTestItoShortTestChangeGPOSetting(nItemId); + _DrvMpTestItoTestAnaSwReset(); + nSensorNum2 = _DrvMpTestItoTestMsg21xxaGetDataOut(szTmpRawData2); + DBG("nSensorNum2 = %d\n", nSensorNum2); + + for (i = 0; i < nSensorCount; i ++) + { + pRawData[pMapping[i]] = szTmpRawData[i] - szTmpRawData2[i]; + pDataFlag[pMapping[i]] = 1; + } +} + + +static u16 _DrvMpTestItoTestMsg22xxGetDataOut(s16 *pRawData, u16 nSubFrameNum) +{ + u32 i; + u16 szRawData[MAX_CHANNEL_NUM*2] = {0}; + u16 nRegInt = 0x0000; + u16 nSize = nSubFrameNum * 4; // 1SF 4AFE + u8 szDbBusTxData[8] = {0}; + u8 szDbBusRxData[MAX_CHANNEL_NUM*4] = {0}; + + DBG("*** %s() ***\n", __func__); + + RegSet16BitValueOff(0x120A, BIT1); //one-shot mode + RegSet16BitValueOff(0x3D08, BIT8); //FIQ_E_FRAME_READY_MASK + //RegSet16BitValue(0x130C, BIT15); //MCU read done + RegSet16BitValueOn(0x120A, BIT0); //trigger one-shot + + DBG("polling start\n"); + + //Polling frame-ready interrupt status + do + { + nRegInt = RegGet16BitValue(0x3D18); //bank:intr_ctrl, addr:h000c + } while(( nRegInt & FIQ_E_FRAME_READY_MASK ) == 0x0000); + + DBG("polling end\n"); + + RegSet16BitValueOff(0x3D18, BIT8); //Clear frame-ready interrupt status + + //ReadRegBurst start + szDbBusTxData[0] = 0x10; + szDbBusTxData[1] = 0x15; //bank:fout, addr:h0000 + szDbBusTxData[2] = 0x00; + IicWriteData(SLAVE_I2C_ID_DBBUS, &szDbBusTxData[0], 3); + mdelay(20); + IicReadData(SLAVE_I2C_ID_DBBUS, &szDbBusRxData[0], (nSubFrameNum * 4 * 2)); + mdelay(100); + + for (i = 0; i < (nSubFrameNum * 4 * 2); i ++) + { + DBG("szDbBusRxData[%d] = %d\n", i, szDbBusRxData[i]); // add for debug + } + //ReadRegBurst stop + + RegSet16BitValueOn(0x3D08, BIT8); //FIQ_E_FRAME_READY_MASK + + for (i = 0; i < nSize; i ++) + { + szRawData[i] = (szDbBusRxData[2 * i + 1] << 8 ) | (szDbBusRxData[2 * i]); + pRawData[i] = (s16)szRawData[i]; + } + + return nSize; +} + +static void _DrvMpTestItoTestMsg22xxSendDataIn(u8 nStep, u16 nRiuWriteLength) +{ + u32 i; + u32 *pType = NULL; + + DBG("*** %s() nStep = %d, nRiuWriteLength = %d ***\n", __func__, nStep, nRiuWriteLength); + + if (nStep == 1) //39-1 + { + pType = &_gShort_RIU1[0]; + } + else if (nStep == 2) //39-2 + { + pType = &_gShort_RIU2[0]; + } + else if (nStep == 3) //39-3 + { + pType = &_gShort_RIU3[0]; + } +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + else if (nStep == 0) //39-4 (2R) + { + pType = &_gShort_RIU4[0]; + } +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + else if (nStep == 4) + { + pType = &_gOpenRIU1[0]; + } + else if (nStep == 5) + { + pType = &_gOpenRIU2[0]; + } + else if (nStep == 6) + { + pType = &_gOpenRIU3[0]; + } + + RegSet16BitValueOn(0x1192, BIT4); // force on enable sensor mux and csub sel sram clock + RegSet16BitValueOff(0x1192, BIT5); // mem clk sel + RegSet16BitValueOff(0x1100, BIT3); // tgen soft rst + RegSet16BitValue(0x1180, RIU_BASE_ADDR); // sensor mux sram read/write base address + RegSet16BitValue(0x1182, nRiuWriteLength); // sensor mux sram write length + RegSet16BitValueOn(0x1188, BIT0); // reg_mem0_w_start + + for (i = RIU_BASE_ADDR; i < (RIU_BASE_ADDR + nRiuWriteLength); i ++) + { + RegSet16BitValue(0x118A, (u16)(pType[i])); + RegSet16BitValue(0x118C, (u16)(pType[i] >> 16)); + } +} + +static void _DrvMpTestItoTestMsg22xxSetC(u8 nCSubStep) +{ + u32 i; + u16 nRegVal; + u32 nCSubNew; + + DBG("*** %s() nCSubStep = %d ***\n", __func__, nCSubStep); + + nCSubNew = (nCSubStep > CSUB_REF_MAX) ? CSUB_REF_MAX : nCSubStep; // 6 bits + nCSubNew = (nCSubNew | (nCSubNew << 8) | (nCSubNew << 16) | (nCSubNew << 24)); + + nRegVal = RegGet16BitValue(0x11C8); // csub sel overwrite enable, will referance value of 11C0 + + if (nRegVal == 0x000F) + { + RegSet16BitValue(0x11C0, nCSubNew); // prs 0 + RegSet16BitValue(0x11C2, (nCSubNew >> 16)); // prs 0 + RegSet16BitValue(0x11C4, nCSubNew); // prs 1 + RegSet16BitValue(0x11C6, (nCSubNew >> 16)); // prs 1 + } + else + { + RegSet16BitValueOn(0x1192, BIT4); // force on enable sensor mux and csub sel sram clock + RegSet16BitValueOff(0x1192, BIT5); // mem clk sel + RegSet16BitValueOff(0x1100, BIT3); // tgen soft rst + RegSet16BitValue(0x1184, 0); // nAddr + RegSet16BitValue(0x1186, MAX_CHANNEL_NUM); // nLen + RegSet16BitValueOn(0x1188, BIT2); // reg_mem0_w_start + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + RegSet16BitValue(0x118E, nCSubNew); + RegSet16BitValue(0x1190, (nCSubNew >> 16)); + } + } +} + +static void _DrvMpTestItoTestMsg22xxRegisterReset(void) +{ + DBG("*** %s() ***\n", __func__); + + RegSet16BitValueOn(0x1102, (BIT3 | BIT4 | BIT5 | BIT6 | BIT7)); + RegSet16BitValueOff(0x1130, (BIT0 | BIT1 | BIT2 | BIT3 | BIT8)); + + RegSet16BitValueOn(0x1312, BIT15); + RegSet16BitValueOff(0x1312, BIT13); + + RegMask16BitValue(0x1250, 0x007F, ((5 << 0) & 0x007F), ADDRESS_MODE_8BIT); + + RegMask16BitValue(0x1250, 0x7F00, ((1 << 8) & 0x7F00), ADDRESS_MODE_8BIT); + + RegSet16BitValueOff(0x1250, 0x8080); + + RegSet16BitValueOff(0x1312, (BIT12 | BIT14)); + + RegSet16BitValueOn(0x1300, BIT15); + RegSet16BitValueOff(0x1300, (BIT10 | BIT11 | BIT12 | BIT13 | BIT14)); + + RegSet16BitValueOn(0x1130, BIT9); + + RegSet16BitValueOn(0x1318, (BIT12 | BIT13)); + + RegSet16BitValue(0x121A, ((8 - 1) & 0x01FF)); // sampling number group A + RegSet16BitValue(0x121C, ((8 - 1) & 0x01FF)); // sampling number group B + + RegMask16BitValue(0x131A, 0x3FFF, 0x2000, ADDRESS_MODE_8BIT); + + RegMask16BitValue(0x131C, (BIT8 | BIT9 | BIT10), (2 << 8), ADDRESS_MODE_8BIT); + + RegSet16BitValueOff(0x1174, 0x0F00); + + RegSet16BitValueOff(0x1240, 0xFFFF); // mutual cap mode selection for total 24 subframes, 0: normal sense, 1: mutual cap sense + RegSet16BitValueOff(0x1242, 0x00FF); // mutual cap mode selection for total 24 subframes, 0: normal sense, 1: mutual cap sense + + RegSet16BitValueOn(0x1212, 0xFFFF); // timing group A/B selection for total 24 subframes, 0: group A, 1: group B + RegSet16BitValueOn(0x1214, 0x00FF); // timing group A/B selection for total 24 subframes, 0: group A, 1: group B + + RegSet16BitValueOn(0x121E, 0xFFFF); //sample number group A/B selection for total 24 subframes, 0: group A, 1: group B + RegSet16BitValueOn(0x1220, 0x00FF); //sample number group A/B selection for total 24 subframes, 0: group A, 1: group B + + RegSet16BitValueOff(0x120E, 0xFFFF); // noise sense mode selection for total 24 subframes + RegSet16BitValueOff(0x1210, 0x00FF); // noise sense mode selection for total 24 subframes + + RegSet16BitValue(0x128C, 0x0F); // ADC afe gain correction bypass + RegSet16BitValueOff(0x1104, BIT12); +} + +static void _DrvMpTestItoTestMsg22xxRegisterResetPatch(void) +{ + DBG("*** %s() *** _gIsOldFirmwareVersion = %d\n", __func__, _gIsOldFirmwareVersion); + + if (_gIsOldFirmwareVersion == 0) // Only need to patch register reset for MSG22XX firmware older than V01.005.02; + { + return; + } + + RegMask16BitValue(0x1101, 0xFFFF, 0x501E, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1102, 0x7FFF, 0x06FF, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1104, 0x0FFF, 0x0772, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1105, 0x0FFF, 0x0770, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1106, 0x00FF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1107, 0x0003, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1108, 0x0073, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1109, 0xFFFF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x110A, 0x7FFF, 0x1087, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x110E, 0xFFFF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x110F, 0xFFFF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1117, 0xFF0F, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1118, 0xFFFF, 0x0200, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1119, 0x00FF, 0x000E, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x111E, 0xFFFF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x111F, 0x00FF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1133, 0x000F, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x113A, 0x0F37, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x113B, 0x0077, 0x0077, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x113C, 0xFF00, 0xA000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x113D, 0x0077, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x113E, 0x00FF, 0x0000, ADDRESS_MODE_16BIT); + + RegMask16BitValue(0x1204, 0x0006, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1205, 0x00FF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1207, 0xFFFF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1208, 0x00FF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1209, 0xFFFF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x120A, 0x00FF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x120B, 0x003F, 0x002E, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x120D, 0x001F, 0x0005, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x120E, 0x001F, 0x0005, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x120F, 0xFFFF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1210, 0x00FF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1211, 0x0FFF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1212, 0x1F87, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1213, 0x0F7F, 0x0014, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1214, 0xFF9F, 0x090A, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1215, 0x0F7F, 0x0F0C, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1216, 0x0FFF, 0x0700, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1217, 0xFF1F, 0x5C0A, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1218, 0x1F7F, 0x0A14, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1219, 0xFFFF, 0x218C, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x121E, 0x1F1F, 0x0712, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x121F, 0x3F3F, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1220, 0xFFFF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1221, 0x00FF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1223, 0x3F3F, 0x0002, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1224, 0x003F, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1228, 0xFFFF, 0x8183, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x122D, 0x0001, 0x0001, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1250, 0xFFFF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1251, 0x00FF, 0x0000, ADDRESS_MODE_16BIT); + RegMask16BitValue(0x1270, 0x0003, 0x0003, ADDRESS_MODE_16BIT); + + RegSet16BitValueByAddressMode(0x115C, 0x0000, ADDRESS_MODE_16BIT); //sensor ov enable + RegSet16BitValueByAddressMode(0x115D, 0x0000, ADDRESS_MODE_16BIT); //sensor ov enable + RegSet16BitValueByAddressMode(0x115E, 0x0000, ADDRESS_MODE_16BIT); //sensor and gr ov enable + + RegSet16BitValueByAddressMode(0x124E, 0x000F, ADDRESS_MODE_16BIT); //bypass mode +} + +static void _DrvMpTestItoTestMsg22xxGetChargeDumpTime(u16 nMode, u16 *pChargeTime, u16 *pDumpTime) +{ + u16 nChargeTime = 0, nDumpTime = 0; + u16 nMinChargeTime = 0xFFFF, nMinDumpTime = 0xFFFF, nMaxChargeTime = 0x0000, nMaxDumpTime = 0x0000; + + DBG("*** %s() ***\n", __func__); + + nChargeTime = RegGet16BitValue(0x1226); + nDumpTime = RegGet16BitValue(0x122A); + + if (nMinChargeTime > nChargeTime) + { + nMinChargeTime = nChargeTime; + } + + if (nMaxChargeTime < nChargeTime) + { + nMaxChargeTime = nChargeTime; + } + + if (nMinDumpTime > nDumpTime) + { + nMinDumpTime = nDumpTime; + } + + if (nMaxDumpTime < nDumpTime) + { + nMaxDumpTime = nDumpTime; + } + + DBG("nChargeTime = %d, nDumpTime = %d\n", nChargeTime, nDumpTime); + + if (nMode == 1) + { + *pChargeTime = nMaxChargeTime; + *pDumpTime = nMaxDumpTime; + } + else + { + *pChargeTime = nMinChargeTime; + *pDumpTime = nMinDumpTime; + } +} + +static void _DrvMpTestItoOpenTestMsg22xxFirst(u8 nItemId, s16 *pRawData, s8 *pDataFlag) +{ + u32 i; + s16 szTmpRawData[MAX_CHANNEL_NUM*2] = {0}; + u16 nSubFrameNum = 0; + u16 nChargeTime, nDumpTime; + u8 *pMapping = NULL; + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + + if (nItemId == 40) + { + // Stop cpu + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 + + _DrvMpTestItoTestMsg22xxRegisterResetPatch(); + _DrvMpTestItoTestMsg22xxRegisterReset(); + } + + switch (nItemId) + { + case 40: + pMapping = &_gMAP1[0]; + nSubFrameNum = _gOpenSubFrameNum1; + break; + case 41: + pMapping = &_gMAP2[0]; + nSubFrameNum = _gOpenSubFrameNum2; + break; + case 42: + pMapping = &_gMAP3[0]; + nSubFrameNum = _gOpenSubFrameNum3; + break; + } + + if (nSubFrameNum > 24) // MAX_CHANNEL_NUM/2 + { + nSubFrameNum = 24; + } + + _DrvMpTestItoTestMsg22xxSendDataIn(nItemId - 36, nSubFrameNum * 6); + RegSet16BitValue(0x1216, (nSubFrameNum - 1) << 1); // subframe numbers, 0:1subframe, 1:2subframe + + if (nItemId == 40) + { + if (1) + { + RegSet16BitValue(0x1110, 0x0060); //2.4V -> 1.2V + } + else + { + RegSet16BitValue(0x1110, 0x0020); //3.0V -> 0.6V + } + + RegSet16BitValue(0x11C8, 0x000F); //csub sel overwrite enable, will referance value of 11C0 + RegSet16BitValue(0x1174, 0x0F06); // 1 : sel idel driver for sensor pad that connected to AFE + RegSet16BitValue(0x1208, 0x0006); //PRS1 + RegSet16BitValue(0x1240, 0xFFFF); //mutual cap mode selection for total 24 subframes, 0: normal sense, 1: mutual cap sense + RegSet16BitValue(0x1242, 0x00FF); //mutual cap mode selection for total 24 subframes, 0: normal sense, 1: mutual cap sense + + _DrvMpTestItoTestMsg22xxGetChargeDumpTime(1, &nChargeTime, &nDumpTime); + + RegSet16BitValue(0x1226, nChargeTime); + RegSet16BitValue(0x122A, nDumpTime); + + _DrvMpTestItoTestMsg22xxSetC(CSUB_REF); + _DrvMpTestItoTestAnaSwReset(); + } + + _DrvMpTestItoTestMsg22xxGetDataOut(szTmpRawData, nSubFrameNum); + + for (i = 0; i < nSubFrameNum; i ++) + { +// DBG("szTmpRawData[%d * 4] >> 3 = %d\n", i, szTmpRawData[i * 4] >> 3); // add for debug +// DBG("pMapping[%d] = %d\n", i, pMapping[i]); // add for debug + + pRawData[pMapping[i]] = (szTmpRawData[i * 4] >> 3); // Filter to ADC + pDataFlag[pMapping[i]] = 1; + } +} + +static void _DrvMpTestItoShortTestMsg22xxFirst(u8 nItemId, s16 *pRawData, s8 *pDataFlag) +{ + u32 i, j; + s16 szIIR1[MAX_SUBFRAME_NUM*MAX_AFE_NUM] = {32767}; + s16 szIIR2[MAX_SUBFRAME_NUM*MAX_AFE_NUM] = {32767}; + s16 szIIRTmp[MAX_SUBFRAME_NUM*MAX_AFE_NUM] = {32767}; + u16 nSensorNum = 0, nSubFrameNum = 0; + u8 *pMapping = NULL; + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + + if ((nItemId == 0 && _gIsEnable2R == 1) || (nItemId == 1 && _gIsEnable2R == 0)) + { + // Stop cpu + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 + + _DrvMpTestItoTestMsg22xxRegisterResetPatch(); + _DrvMpTestItoTestMsg22xxRegisterReset(); + } + + switch(nItemId) + { +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + case 0: // 39-4 (2R) + pMapping = &_gSHORT_MAP4[0]; + nSensorNum = _gShortSubFrameNum4; + break; +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + case 1: // 39-1 + pMapping = &_gSHORT_MAP1[0]; + nSensorNum = _gShortSubFrameNum1; + break; + case 2: // 39-2 + pMapping = &_gSHORT_MAP2[0]; + nSensorNum = _gShortSubFrameNum2; + break; + case 3: // 39-3 + pMapping = &_gSHORT_MAP3[0]; + nSensorNum = _gShortSubFrameNum3; + break; + } + + if (nSensorNum > 24) // MAX_CHANNEL_NUM/2 + { + nSubFrameNum = 24; + } + else + { + nSubFrameNum = nSensorNum; + } + + _DrvMpTestItoTestMsg22xxSendDataIn(nItemId, nSubFrameNum * 6); + RegSet16BitValue(0x1216, (nSubFrameNum - 1) << 1); // subframe numbers, 0:1subframe, 1:2subframe + + if ((nItemId == 0 && _gIsEnable2R == 1) || (nItemId == 1 && _gIsEnable2R == 0)) + { + RegSet16BitValue(0x1110, 0x0030); // [6:4} 011 : 2.1V -> 1.5V +// RegSet16BitValue(0x1110, 0x0060); // 2.4V -> 1.2V + RegSet16BitValue(0x11C8, 0x000F); // csub sel overwrite enable, will referance value of 11C0 + RegSet16BitValue(0x1174, 0x0000); // [11:8] 000 : sel active driver for sensor pad that connected to AFE + RegSet16BitValue(0x1208, 0x0006); // PRS 1 + RegSet16BitValueOn(0x1104, BIT14); // R mode + RegSet16BitValue(0x1176, 0x0000); // CFB 10p + + _DrvMpTestItoTestMsg22xxSetC(CSUB_REF); + + RegMask16BitValue(0x1213, 0x007F, 0x003B, ADDRESS_MODE_16BIT); // Charge 20ns (group A) + RegMask16BitValue(0x1218, 0x007F, 0x003B, ADDRESS_MODE_16BIT); // Charge 20ns (group B) + } + + RegMask16BitValue(0x1215, 0x007F, 0x000B, ADDRESS_MODE_16BIT); // Dump 4ns (group A) + RegMask16BitValue(0x1219, 0x007F, 0x000B, ADDRESS_MODE_16BIT); // Dump 4ns (group B) + + _DrvMpTestItoTestAnaSwReset(); + _DrvMpTestItoTestMsg22xxGetDataOut(szIIRTmp, nSubFrameNum); + + if (nSensorNum > MAX_SUBFRAME_NUM) + { + j = 0; + + for (i = 0; i < MAX_SUBFRAME_NUM; i ++) + { + szIIR1[j] = (szIIRTmp[i * 4] >> 3); + j ++; + + if ((nSensorNum - MAX_SUBFRAME_NUM) > i) + { + szIIR1[j] = (szIIRTmp[i * 4 + 1] >> 3); + j ++; + } + } + } + else + { + for (i = 0; i < nSensorNum; i ++) + { + szIIR1[i] = (szIIRTmp[i * 4 + 1] >> 3); + } + } + + RegMask16BitValue(0x1215, 0x007F, 0x0017, ADDRESS_MODE_16BIT); // Dump 8ns (group A) + RegMask16BitValue(0x1219, 0x007F, 0x0017, ADDRESS_MODE_16BIT); // Dump 8ns (group B) + + _DrvMpTestItoTestAnaSwReset(); + _DrvMpTestItoTestMsg22xxGetDataOut(szIIRTmp, nSubFrameNum); + + if (nSensorNum > MAX_SUBFRAME_NUM) + { + j = 0; + + for (i = 0; i < MAX_SUBFRAME_NUM; i ++) + { + szIIR2[j] = (szIIRTmp[i * 4] >> 3); + j ++; + + if ((nSensorNum - MAX_SUBFRAME_NUM) > i) + { + szIIR2[j] = (szIIRTmp[i * 4 + 1] >> 3); + j ++; + } + } + } + else + { + for (i = 0; i < nSensorNum; i ++) + { + szIIR2[i] = (szIIRTmp[i * 4 + 1] >> 3); + } + } + + for (i = 0; i < nSensorNum; i ++) + { + if ((abs(szIIR1[i]) > 4000) || (abs(szIIR2[i]) > 4000)) + { + pRawData[pMapping[i]] = 8192; + } + else + { + pRawData[pMapping[i]] = ((szIIR2[i] - szIIR1[i]) * 4); + } + pDataFlag[pMapping[i]] = 1; + +// DBG("szIIR1[%d] = %d, szIIR2[%d] = %d\n", i, szIIR1[i], i, szIIR2[i]); // add for debug +// DBG("pRawData[%d] = %d\n", pMapping[i], pRawData[pMapping[i]]); // add for debug +// DBG("pMapping[%d] = %d\n", i, pMapping[i]); // add for debug + } +} + +static u8 _DrvMpTestMsg22xxCheckFirmwareVersion(void) // Only MSG22XX support platform firmware version +{ + u32 i; + s32 nDiff; + u16 nRegData1, nRegData2; + u8 szDbBusRxData[12] = {0}; + u8 szCompareFwVersion[10] = {0x56, 0x30, 0x31, 0x2E, 0x30, 0x30, 0x35, 0x2E, 0x30, 0x32}; //{'V', '0', '1', '.', '0', '0', '5', '.', '0', '2'} + u8 nIsOldFirmwareVersion = 0; + + DBG("*** %s() ***\n", __func__); + + mutex_lock(&g_Mutex); + + DrvPlatformLyrTouchDeviceResetHw(); + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop mcu + RegSetLByteValue(0x0FE6, 0x01); + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); + + // RIU password + RegSet16BitValue(0x161A, 0xABBA); + + + RegSet16BitValue(0x1600, 0xC1F2); // Set start address for platform firmware version on info block(Actually, start reading from 0xC1F0) + + // Enable burst mode + RegSet16BitValue(0x160C, (RegGet16BitValue(0x160C) | 0x01)); + + + for (i = 0; i < 3; i ++) + { + RegSetLByteValue(0x160E, 0x01); + + nRegData1 = RegGet16BitValue(0x1604); + nRegData2 = RegGet16BitValue(0x1606); + + szDbBusRxData[i*4+0] = (nRegData1 & 0xFF); + szDbBusRxData[i*4+1] = ((nRegData1 >> 8 ) & 0xFF); + + DBG("szDbBusRxData[%d] = 0x%x , %c \n", i*4+0, szDbBusRxData[i*4+0], szDbBusRxData[i*4+0]); // add for debug + DBG("szDbBusRxData[%d] = 0x%x , %c \n", i*4+1, szDbBusRxData[i*4+1], szDbBusRxData[i*4+1]); // add for debug + + szDbBusRxData[i*4+2] = (nRegData2 & 0xFF); + szDbBusRxData[i*4+3] = ((nRegData2 >> 8 ) & 0xFF); + + DBG("szDbBusRxData[%d] = 0x%x , %c \n", i*4+2, szDbBusRxData[i*4+2], szDbBusRxData[i*4+2]); // add for debug + DBG("szDbBusRxData[%d] = 0x%x , %c \n", i*4+3, szDbBusRxData[i*4+3], szDbBusRxData[i*4+3]); // add for debug + } + + // Clear burst mode + RegSet16BitValue(0x160C, RegGet16BitValue(0x160C) & (~0x01)); + + RegSet16BitValue(0x1600, 0x0000); + + // Clear RIU password + RegSet16BitValue(0x161A, 0x0000); + + for (i = 0; i < 10; i ++) + { + nDiff = szDbBusRxData[2+i] - szCompareFwVersion[i]; + + DBG("i = %d, nDiff = %d\n", i, nDiff); + + if (nDiff < 0) + { + nIsOldFirmwareVersion = 1; + break; + } + else if (nDiff > 0) + { + nIsOldFirmwareVersion = 0; + break; + } + } + + DbBusIICNotUseBus(); + DbBusNotStopMCU(); + DbBusExitSerialDebugMode(); + + DrvPlatformLyrTouchDeviceResetHw(); + + mutex_unlock(&g_Mutex); + + return nIsOldFirmwareVersion; +} + + +//------------------------------------------------------------------------------// + +static ItoTestResult_e _DrvMpTestItoOpenTestSecond(u8 nItemId) +{ + ItoTestResult_e nRetVal = ITO_TEST_OK; + u32 i; + s32 nTmpRawDataJg1 = 0; + s32 nTmpRawDataJg2 = 0; + s32 nTmpJgAvgThMax1 = 0; + s32 nTmpJgAvgThMin1 = 0; + s32 nTmpJgAvgThMax2 = 0; + s32 nTmpJgAvgThMin2 = 0; + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + + if (nItemId == 40) + { + for (i = 0; i < (_gItoTestTriangleNum/2)-2; i ++) + { + nTmpRawDataJg1 += _gRawData1[_gMAP40_1[i]]; + } + + for (i = 0; i < 2; i ++) + { + nTmpRawDataJg2 += _gRawData1[_gMAP40_2[i]]; + } + } + else if (nItemId == 41) + { + for (i = 0; i < (_gItoTestTriangleNum/2)-2; i ++) + { + nTmpRawDataJg1 += _gRawData2[_gMAP41_1[i]]; + } + + for (i = 0; i < 2; i ++) + { + nTmpRawDataJg2 += _gRawData2[_gMAP41_2[i]]; + } + } + + nTmpJgAvgThMax1 = (nTmpRawDataJg1 / ((_gItoTestTriangleNum/2)-2)) * ( 100 + OPEN_TEST_NON_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMin1 = (nTmpRawDataJg1 / ((_gItoTestTriangleNum/2)-2)) * ( 100 - OPEN_TEST_NON_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMax2 = (nTmpRawDataJg2 / 2) * ( 100 + OPEN_TEST_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMin2 = (nTmpRawDataJg2 / 2 ) * ( 100 - OPEN_TEST_BORDER_AREA_THRESHOLD) / 100; + + DBG("nItemId = %d, nTmpRawDataJg1 = %d, nTmpJgAvgThMax1 = %d, nTmpJgAvgThMin1 = %d, nTmpRawDataJg2 = %d, nTmpJgAvgThMax2 = %d, nTmpJgAvgThMin2 = %d\n", nItemId, nTmpRawDataJg1, nTmpJgAvgThMax1, nTmpJgAvgThMin1, nTmpRawDataJg2, nTmpJgAvgThMax2, nTmpJgAvgThMin2); + + if (nItemId == 40) + { + for (i = 0; i < (_gItoTestTriangleNum/2)-2; i ++) + { + if (_gRawData1[_gMAP40_1[i]] > nTmpJgAvgThMax1 || _gRawData1[_gMAP40_1[i]] < nTmpJgAvgThMin1) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP40_1[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < 2; i ++) + { + if (_gRawData1[_gMAP40_2[i]] > nTmpJgAvgThMax2 || _gRawData1[_gMAP40_2[i]] < nTmpJgAvgThMin2) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP40_2[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } + else if (nItemId == 41) + { + for (i = 0; i < (_gItoTestTriangleNum/2)-2; i ++) + { + if (_gRawData2[_gMAP41_1[i]] > nTmpJgAvgThMax1 || _gRawData2[_gMAP41_1[i]] < nTmpJgAvgThMin1) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP41_1[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < 2; i ++) + { + if (_gRawData2[_gMAP41_2[i]] > nTmpJgAvgThMax2 || _gRawData2[_gMAP41_2[i]] < nTmpJgAvgThMin2) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP41_2[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } + + return nRetVal; +} + +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE +static ItoTestResult_e _DrvMpTestItoOpenTestSecond2r(u8 nItemId) +{ + ItoTestResult_e nRetVal = ITO_TEST_OK; + u32 i; + s32 nTmpRawDataJg1 = 0; + s32 nTmpRawDataJg2 = 0; + s32 nTmpRawDataJg3 = 0; + s32 nTmpRawDataJg4 = 0; + s32 nTmpJgAvgThMax1 = 0; + s32 nTmpJgAvgThMin1 = 0; + s32 nTmpJgAvgThMax2 = 0; + s32 nTmpJgAvgThMin2 = 0; + s32 nTmpJgAvgThMax3 = 0; + s32 nTmpJgAvgThMin3 = 0; + s32 nTmpJgAvgThMax4 = 0; + s32 nTmpJgAvgThMin4 = 0; + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + + if (nItemId == 40) + { + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + nTmpRawDataJg1 += _gRawData1[_gMAP40_1[i]]; //first region: non-border + } + + for (i = 0; i < 2; i ++) + { + nTmpRawDataJg2 += _gRawData1[_gMAP40_2[i]]; //first region: border + } + + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + nTmpRawDataJg3 += _gRawData1[_gMAP40_3[i]]; //second region: non-border + } + + for (i = 0; i < 2; i ++) + { + nTmpRawDataJg4 += _gRawData1[_gMAP40_4[i]]; //second region: border + } + } + else if (nItemId == 41) + { + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + nTmpRawDataJg1 += _gRawData2[_gMAP41_1[i]]; //first region: non-border + } + + for (i = 0; i < 2; i ++) + { + nTmpRawDataJg2 += _gRawData2[_gMAP41_2[i]]; //first region: border + } + + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + nTmpRawDataJg3 += _gRawData2[_gMAP41_3[i]]; //second region: non-border + } + + for (i = 0; i < 2; i ++) + { + nTmpRawDataJg4 += _gRawData2[_gMAP41_4[i]]; //second region: border + } + } + + nTmpJgAvgThMax1 = (nTmpRawDataJg1 / ((_gItoTestTriangleNum/4)-2)) * ( 100 + OPEN_TEST_NON_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMin1 = (nTmpRawDataJg1 / ((_gItoTestTriangleNum/4)-2)) * ( 100 - OPEN_TEST_NON_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMax2 = (nTmpRawDataJg2 / 2) * ( 100 + OPEN_TEST_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMin2 = (nTmpRawDataJg2 / 2) * ( 100 - OPEN_TEST_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMax3 = (nTmpRawDataJg3 / ((_gItoTestTriangleNum/4)-2)) * ( 100 + OPEN_TEST_NON_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMin3 = (nTmpRawDataJg3 / ((_gItoTestTriangleNum/4)-2)) * ( 100 - OPEN_TEST_NON_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMax4 = (nTmpRawDataJg4 / 2) * ( 100 + OPEN_TEST_BORDER_AREA_THRESHOLD) / 100; + nTmpJgAvgThMin4 = (nTmpRawDataJg4 / 2) * ( 100 - OPEN_TEST_BORDER_AREA_THRESHOLD) / 100; + + DBG("nItemId = %d, nTmpRawDataJg1 = %d, nTmpJgAvgThMax1 = %d, nTmpJgAvgThMin1 = %d, nTmpRawDataJg2 = %d, nTmpJgAvgThMax2 = %d, nTmpJgAvgThMin2 = %d\n", nItemId, nTmpRawDataJg1, nTmpJgAvgThMax1, nTmpJgAvgThMin1, nTmpRawDataJg2, nTmpJgAvgThMax2, nTmpJgAvgThMin2); + DBG("nTmpRawDataJg3 = %d, nTmpJgAvgThMax3 = %d, nTmpJgAvgThMin3 = %d, nTmpRawDataJg4 = %d, nTmpJgAvgThMax4 = %d, nTmpJgAvgThMin4 = %d\n", nTmpRawDataJg3, nTmpJgAvgThMax3, nTmpJgAvgThMin3, nTmpRawDataJg4, nTmpJgAvgThMax4, nTmpJgAvgThMin4); + + if (nItemId == 40) + { + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + if (_gRawData1[_gMAP40_1[i]] > nTmpJgAvgThMax1 || _gRawData1[_gMAP40_1[i]] < nTmpJgAvgThMin1) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP40_1[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < 2; i ++) + { + if (_gRawData1[_gMAP40_2[i]] > nTmpJgAvgThMax2 || _gRawData1[_gMAP40_2[i]] < nTmpJgAvgThMin2) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP40_2[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + if (_gRawData1[_gMAP40_3[i]] > nTmpJgAvgThMax3 || _gRawData1[_gMAP40_3[i]] < nTmpJgAvgThMin3) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP40_3[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < 2; i ++) + { + if (_gRawData1[_gMAP40_4[i]] > nTmpJgAvgThMax4 || _gRawData1[_gMAP40_4[i]] < nTmpJgAvgThMin4) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP40_4[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } + else if (nItemId == 41) + { + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + if (_gRawData2[_gMAP41_1[i]] > nTmpJgAvgThMax1 || _gRawData2[_gMAP41_1[i]] < nTmpJgAvgThMin1) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP41_1[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < 2; i ++) + { + if (_gRawData2[_gMAP41_2[i]] > nTmpJgAvgThMax2 || _gRawData2[_gMAP41_2[i]] < nTmpJgAvgThMin2) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP41_2[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < (_gItoTestTriangleNum/4)-2; i ++) + { + if (_gRawData2[_gMAP41_3[i]] > nTmpJgAvgThMax3 || _gRawData2[_gMAP41_3[i]] < nTmpJgAvgThMin3) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP41_3[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + + for (i = 0; i < 2; i ++) + { + if (_gRawData2[_gMAP41_4[i]] > nTmpJgAvgThMax4 || _gRawData2[_gMAP41_4[i]] < nTmpJgAvgThMin4) + { + _gTestFailChannel[_gTestFailChannelCount] = _gMAP41_4[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } + + return nRetVal; +} +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + +static ItoTestResult_e _DrvMpTestItoShortTestSecond(u8 nItemId) +{ + ItoTestResult_e nRetVal = ITO_TEST_OK; + u32 i; + u8 nSensorCount = 0; + u8 nNumOfSensorMapping1 = 0, nNumOfSensorMapping2 = 0; + + DBG("*** %s() nItemId = %d ***\n", __func__, nItemId); + + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + if ((_gItoTestTriangleNum + _gItoTestKeyNum + _gItoTestDummyNum) % 2 != 0) + { + nNumOfSensorMapping1 = (_gItoTestTriangleNum + _gItoTestKeyNum + _gItoTestDummyNum) / 2 + 1; + nNumOfSensorMapping2 = nNumOfSensorMapping1; + } + else + { + nNumOfSensorMapping1 = (_gItoTestTriangleNum + _gItoTestKeyNum + _gItoTestDummyNum) / 2; + nNumOfSensorMapping2 = nNumOfSensorMapping1; + if (nNumOfSensorMapping2 % 2 != 0) + { + nNumOfSensorMapping2 ++; + } + } + } + + if (nItemId == 1) // 39-1 + { + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + nSensorCount = nNumOfSensorMapping1; + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + nSensorCount = _gShortSubFrameNum1; + } + + for (i = 0; i < nSensorCount; i ++) + { + if (_gRawData1[_gSHORT_MAP1[i]] > SHORT_TEST_THRESHOLD) + { + _gTestFailChannel[_gTestFailChannelCount] = _gSHORT_MAP1[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } + else if (nItemId == 2) // 39-2 + { + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + nSensorCount = nNumOfSensorMapping2; + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + nSensorCount = _gShortSubFrameNum2; + } + + for (i = 0; i < nSensorCount; i ++) + { + if (_gRawData2[_gSHORT_MAP2[i]] > SHORT_TEST_THRESHOLD) + { + _gTestFailChannel[_gTestFailChannelCount] = _gSHORT_MAP2[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } + else if (nItemId == 3) // 39-3 + { + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + nSensorCount = _gItoTestTriangleNum; + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + nSensorCount = _gShortSubFrameNum3; + } + + for (i = 0; i < nSensorCount; i ++) + { + if (_gRawData3[_gSHORT_MAP3[i]] > SHORT_TEST_THRESHOLD) + { + _gTestFailChannel[_gTestFailChannelCount] = _gSHORT_MAP3[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + else if (nItemId == 0) // 39-4 (2R) + { + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + nSensorCount = _gItoTestTriangleNum/2; + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + nSensorCount = _gShortSubFrameNum4; + } + + for (i = 0; i < nSensorCount; i ++) + { + if (_gRawData4[_gSHORT_MAP4[i]] > SHORT_TEST_THRESHOLD) + { + _gTestFailChannel[_gTestFailChannelCount] = _gSHORT_MAP4[i]; + _gTestFailChannelCount ++; + nRetVal = ITO_TEST_FAIL; + } + } + } +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + + DBG("nSensorCount = %d\n", nSensorCount); + + return nRetVal; +} + +s32 _DrvMpTestItoOpenTest(void) +{ + ItoTestResult_e nRetVal1 = ITO_TEST_OK, nRetVal2 = ITO_TEST_OK, nRetVal3 = ITO_TEST_OK; + u32 i; + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DBG("open test start\n"); + + DrvPlatformLyrSetIicDataRate(g_I2cClient, 50000); //50 KHZ + + DrvPlatformLyrDisableFingerTouchReport(); + DrvPlatformLyrTouchDeviceResetHw(); + + if (!_DrvMpTestItoTestChooseTpType()) + { + DBG("Choose Tp Type failed\n"); + nRetVal1 = ITO_TEST_GET_TP_TYPE_ERROR; + goto ITO_TEST_END; + } + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop cpu + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + mdelay(50); + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + _gRawData1[i] = 0; + _gRawData2[i] = 0; + _gRawData3[i] = 0; + _gDataFlag1[i] = 0; + _gDataFlag2[i] = 0; + _gDataFlag3[i] = 0; + _gTestFailChannel[i] = 0; + } + + _gTestFailChannelCount = 0; // Reset _gTestFailChannelCount to 0 before test start + + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + _DrvMpTestItoOpenTestMsg21xxaFirst(40, _gRawData1, _gDataFlag1); + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _DrvMpTestItoOpenTestMsg22xxFirst(40, _gRawData1, _gDataFlag1); + } + + if (_gIsEnable2R) + { +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + nRetVal2 = _DrvMpTestItoOpenTestSecond2r(40); +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + } + else + { + nRetVal2 = _DrvMpTestItoOpenTestSecond(40); + } + + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + _DrvMpTestItoOpenTestMsg21xxaFirst(41, _gRawData2, _gDataFlag2); + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _DrvMpTestItoOpenTestMsg22xxFirst(41, _gRawData2, _gDataFlag2); + } + + if (_gIsEnable2R) + { +#ifdef CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + nRetVal3 = _DrvMpTestItoOpenTestSecond2r(41); +#endif //CONFIG_ENABLE_MP_TEST_ITEM_FOR_2R_TRIANGLE + } + else + { + nRetVal3 = _DrvMpTestItoOpenTestSecond(41); + } +/* + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + _DrvMpTestItoOpenTestMsg21xxaFirst(42, _gRawData3, _gDataFlag3); + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _DrvMpTestItoOpenTestMsg22xxFirst(42, _gRawData3, _gDataFlag3); + } +*/ + + ITO_TEST_END: + + DrvPlatformLyrSetIicDataRate(g_I2cClient, 100000); //100 KHZ + + DrvPlatformLyrTouchDeviceResetHw(); + DrvPlatformLyrEnableFingerTouchReport(); + + DBG("open test end\n"); + + if ((nRetVal1 != ITO_TEST_OK) && (nRetVal2 == ITO_TEST_OK) && (nRetVal3 == ITO_TEST_OK)) + { + return ITO_TEST_GET_TP_TYPE_ERROR; + } + else if ((nRetVal1 == ITO_TEST_OK) && ((nRetVal2 != ITO_TEST_OK) || (nRetVal3 != ITO_TEST_OK))) + { + return ITO_TEST_FAIL; + } + else + { + return ITO_TEST_OK; + } +} + +static ItoTestResult_e _DrvMpTestItoShortTest(void) +{ + ItoTestResult_e nRetVal1 = ITO_TEST_OK, nRetVal2 = ITO_TEST_OK, nRetVal3 = ITO_TEST_OK, nRetVal4 = ITO_TEST_OK, nRetVal5 = ITO_TEST_OK; + u32 i = 0; + + DBG("*** %s() ***\n", __func__); + +#ifdef CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM +#ifdef CONFIG_ENABLE_DMA_IIC + DmaReset(); +#endif //CONFIG_ENABLE_DMA_IIC +#endif //CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM + + DBG("short test start\n"); + + DrvPlatformLyrSetIicDataRate(g_I2cClient, 50000); //50 KHZ + + DrvPlatformLyrDisableFingerTouchReport(); + DrvPlatformLyrTouchDeviceResetHw(); + + if (!_DrvMpTestItoTestChooseTpType()) + { + DBG("Choose Tp Type failed\n"); + nRetVal1 = ITO_TEST_GET_TP_TYPE_ERROR; + goto ITO_TEST_END; + } + + DbBusEnterSerialDebugMode(); + DbBusStopMCU(); + DbBusIICUseBus(); + DbBusIICReshape(); + mdelay(100); + + // Stop cpu + RegSet16BitValue(0x0FE6, 0x0001); //bank:mheg5, addr:h0073 + + // Stop watchdog + RegSet16BitValue(0x3C60, 0xAA55); //bank:reg_PIU_MISC_0, addr:h0030 + + mdelay(50); + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + _gRawData1[i] = 0; + _gRawData2[i] = 0; + _gRawData3[i] = 0; + _gRawData4[i] = 0; + _gDataFlag1[i] = 0; + _gDataFlag2[i] = 0; + _gDataFlag3[i] = 0; + _gDataFlag4[i] = 0; + _gTestFailChannel[i] = 0; + } + + _gTestFailChannelCount = 0; // Reset _gTestFailChannelCount to 0 before test start + + if (_gIsEnable2R) + { + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + _DrvMpTestItoShortTestMsg21xxaFirst(0, _gRawData4, _gDataFlag4); + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _DrvMpTestItoShortTestMsg22xxFirst(0, _gRawData4, _gDataFlag4); + } + + nRetVal2 = _DrvMpTestItoShortTestSecond(0); + } + + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + _DrvMpTestItoShortTestMsg21xxaFirst(1, _gRawData1, _gDataFlag1); + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _DrvMpTestItoShortTestMsg22xxFirst(1, _gRawData1, _gDataFlag1); + } + + nRetVal3 = _DrvMpTestItoShortTestSecond(1); + + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + _DrvMpTestItoShortTestMsg21xxaFirst(2, _gRawData2, _gDataFlag2); + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _DrvMpTestItoShortTestMsg22xxFirst(2, _gRawData2, _gDataFlag2); + } + + nRetVal4 = _DrvMpTestItoShortTestSecond(2); + + if (g_ChipType == CHIP_TYPE_MSG21XXA) + { + _DrvMpTestItoShortTestMsg21xxaFirst(3, _gRawData3, _gDataFlag3); + } + else if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _DrvMpTestItoShortTestMsg22xxFirst(3, _gRawData3, _gDataFlag3); + } + + nRetVal5 = _DrvMpTestItoShortTestSecond(3); + + ITO_TEST_END: + + DrvPlatformLyrSetIicDataRate(g_I2cClient, 100000); //100 KHZ + + DrvPlatformLyrTouchDeviceResetHw(); + DrvPlatformLyrEnableFingerTouchReport(); + + DBG("short test end\n"); + + if ((nRetVal1 != ITO_TEST_OK) && (nRetVal2 == ITO_TEST_OK) && (nRetVal3 == ITO_TEST_OK) && (nRetVal4 == ITO_TEST_OK) && (nRetVal5 == ITO_TEST_OK)) + { + return ITO_TEST_GET_TP_TYPE_ERROR; + } + else if ((nRetVal1 == ITO_TEST_OK) && ((nRetVal2 != ITO_TEST_OK) || (nRetVal3 != ITO_TEST_OK) || (nRetVal4 != ITO_TEST_OK) || (nRetVal5 != ITO_TEST_OK))) + { + return ITO_TEST_FAIL; + } + else + { + return ITO_TEST_OK; + } +} + +static void _DrvMpTestItoTestDoWork(struct work_struct *pWork) +{ + s32 nRetVal = ITO_TEST_OK; + + DBG("*** %s() _gIsInMpTest = %d, _gTestRetryCount = %d ***\n", __func__, _gIsInMpTest, _gTestRetryCount); + + if (_gItoTestMode == ITO_TEST_MODE_OPEN_TEST) + { + nRetVal = _DrvMpTestItoOpenTest(); + } + else if (_gItoTestMode == ITO_TEST_MODE_SHORT_TEST) + { + nRetVal = _DrvMpTestItoShortTest(); + } + else + { + DBG("*** Undefined Mp Test Mode = %d ***\n", _gItoTestMode); + return; + } + + DBG("*** ctp mp test result = %d ***\n", nRetVal); + + if (nRetVal == ITO_TEST_OK) + { + _gCtpMpTestStatus = ITO_TEST_OK; + _gIsInMpTest = 0; + DBG("mp test success\n"); + } + else + { + _gTestRetryCount --; + if (_gTestRetryCount > 0) + { + DBG("_gTestRetryCount = %d\n", _gTestRetryCount); + queue_work(_gCtpMpTestWorkQueue, &_gCtpItoTestWork); + } + else + { + if (nRetVal == ITO_TEST_FAIL) + { + _gCtpMpTestStatus = ITO_TEST_FAIL; + } + else if (nRetVal == ITO_TEST_GET_TP_TYPE_ERROR) + { + _gCtpMpTestStatus = ITO_TEST_GET_TP_TYPE_ERROR; + } + else + { + _gCtpMpTestStatus = ITO_TEST_UNDEFINED_ERROR; + } + + _gIsInMpTest = 0; + DBG("mp test failed\n"); + } + } +} + +/*=============================================================*/ +// GLOBAL FUNCTION DEFINITION +/*=============================================================*/ + +s32 DrvMpTestGetTestResult(void) +{ + DBG("*** %s() ***\n", __func__); + DBG("_gCtpMpTestStatus = %d\n", _gCtpMpTestStatus); + + return _gCtpMpTestStatus; +} + +void DrvMpTestGetTestFailChannel(ItoTestMode_e eItoTestMode, u8 *pFailChannel, u32 *pFailChannelCount) +{ + u32 i; + + DBG("*** %s() ***\n", __func__); + DBG("_gTestFailChannelCount = %d\n", _gTestFailChannelCount); + + for (i = 0; i < _gTestFailChannelCount; i ++) + { + pFailChannel[i] = _gTestFailChannel[i]; + } + + *pFailChannelCount = _gTestFailChannelCount; +} + +void DrvMpTestGetTestDataLog(ItoTestMode_e eItoTestMode, u8 *pDataLog, u32 *pLength) +{ + u32 i; + u8 nHighByte, nLowByte; + + DBG("*** %s() ***\n", __func__); + + if (eItoTestMode == ITO_TEST_MODE_OPEN_TEST) + { + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + nHighByte = (_gRawData1[i] >> 8) & 0xFF; + nLowByte = (_gRawData1[i]) & 0xFF; + + if (_gDataFlag1[i] == 1) + { + pDataLog[i*4] = 1; // indicate it is a on-use channel number + } + else + { + pDataLog[i*4] = 0; // indicate it is a non-use channel number + } + + if (_gRawData1[i] >= 0) + { + pDataLog[i*4+1] = 0; // + : a positive number + } + else + { + pDataLog[i*4+1] = 1; // - : a negative number + } + + pDataLog[i*4+2] = nHighByte; + pDataLog[i*4+3] = nLowByte; + } + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + nHighByte = (_gRawData2[i] >> 8) & 0xFF; + nLowByte = (_gRawData2[i]) & 0xFF; + + if (_gDataFlag2[i] == 1) + { + pDataLog[i*4+MAX_CHANNEL_NUM*4] = 1; // indicate it is a on-use channel number + } + else + { + pDataLog[i*4+MAX_CHANNEL_NUM*4] = 0; // indicate it is a non-use channel number + } + + if (_gRawData2[i] >= 0) + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*4] = 0; // + : a positive number + } + else + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*4] = 1; // - : a negative number + } + + pDataLog[(i*4+2)+MAX_CHANNEL_NUM*4] = nHighByte; + pDataLog[(i*4+3)+MAX_CHANNEL_NUM*4] = nLowByte; + } + + *pLength = MAX_CHANNEL_NUM*8; + } + else if (eItoTestMode == ITO_TEST_MODE_SHORT_TEST) + { + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + nHighByte = (_gRawData1[i] >> 8) & 0xFF; + nLowByte = (_gRawData1[i]) & 0xFF; + + if (_gDataFlag1[i] == 1) + { + pDataLog[i*4] = 1; // indicate it is a on-use channel number + } + else + { + pDataLog[i*4] = 0; // indicate it is a non-use channel number + } + + if (_gRawData1[i] >= 0) + { + pDataLog[i*4+1] = 0; // + : a positive number + } + else + { + pDataLog[i*4+1] = 1; // - : a negative number + } + + pDataLog[i*4+2] = nHighByte; + pDataLog[i*4+3] = nLowByte; + } + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + nHighByte = (_gRawData2[i] >> 8) & 0xFF; + nLowByte = (_gRawData2[i]) & 0xFF; + + if (_gDataFlag2[i] == 1) + { + pDataLog[i*4+MAX_CHANNEL_NUM*4] = 1; // indicate it is a on-use channel number + } + else + { + pDataLog[i*4+MAX_CHANNEL_NUM*4] = 0; // indicate it is a non-use channel number + } + + if (_gRawData2[i] >= 0) + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*4] = 0; // + : a positive number + } + else + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*4] = 1; // - : a negative number + } + + pDataLog[i*4+2+MAX_CHANNEL_NUM*4] = nHighByte; + pDataLog[i*4+3+MAX_CHANNEL_NUM*4] = nLowByte; + } + + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + nHighByte = (_gRawData3[i] >> 8) & 0xFF; + nLowByte = (_gRawData3[i]) & 0xFF; + + if (_gDataFlag3[i] == 1) + { + pDataLog[i*4+MAX_CHANNEL_NUM*8] = 1; // indicate it is a on-use channel number + } + else + { + pDataLog[i*4+MAX_CHANNEL_NUM*8] = 0; // indicate it is a non-use channel number + } + + if (_gRawData3[i] >= 0) + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*8] = 0; // + : a positive number + } + else + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*8] = 1; // - : a negative number + } + + pDataLog[(i*4+2)+MAX_CHANNEL_NUM*8] = nHighByte; + pDataLog[(i*4+3)+MAX_CHANNEL_NUM*8] = nLowByte; + } + + if (_gIsEnable2R) + { + for (i = 0; i < MAX_CHANNEL_NUM; i ++) + { + nHighByte = (_gRawData4[i] >> 8) & 0xFF; + nLowByte = (_gRawData4[i]) & 0xFF; + + if (_gDataFlag4[i] == 1) + { + pDataLog[i*4+MAX_CHANNEL_NUM*12] = 1; // indicate it is a on-use channel number + } + else + { + pDataLog[i*4+MAX_CHANNEL_NUM*12] = 0; // indicate it is a non-use channel number + } + + if (_gRawData4[i] >= 0) + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*12] = 0; // + : a positive number + } + else + { + pDataLog[(i*4+1)+MAX_CHANNEL_NUM*12] = 1; // - : a negative number + } + + pDataLog[(i*4+2)+MAX_CHANNEL_NUM*12] = nHighByte; + pDataLog[(i*4+3)+MAX_CHANNEL_NUM*12] = nLowByte; + } + } + + *pLength = MAX_CHANNEL_NUM*16; + } + else + { + DBG("*** Undefined MP Test Mode ***\n"); + } +} + +void DrvMpTestScheduleMpTestWork(ItoTestMode_e eItoTestMode) +{ + DBG("*** %s() ***\n", __func__); + + if (_gIsInMpTest == 0) + { + DBG("ctp mp test start\n"); + + if (g_ChipType == CHIP_TYPE_MSG22XX) + { + _gIsOldFirmwareVersion = _DrvMpTestMsg22xxCheckFirmwareVersion(); + } + + _gItoTestMode = eItoTestMode; + _gIsInMpTest = 1; + _gTestRetryCount = CTP_MP_TEST_RETRY_COUNT; + _gCtpMpTestStatus = ITO_TEST_UNDER_TESTING; + + queue_work(_gCtpMpTestWorkQueue, &_gCtpItoTestWork); + } +} + +void DrvMpTestCreateMpTestWorkQueue(void) +{ + DBG("*** %s() ***\n", __func__); + + _gCtpMpTestWorkQueue = create_singlethread_workqueue("ctp_mp_test"); + INIT_WORK(&_gCtpItoTestWork, _DrvMpTestItoTestDoWork); +} + +#endif //CONFIG_ENABLE_ITO_MP_TEST +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_self_mp_test.h b/drivers/input/touchscreen/msg2233/mstar_drv_self_mp_test.h new file mode 100644 index 00000000..c816f16f --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_self_mp_test.h @@ -0,0 +1,101 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_self_mp_test.h + * + * @brief This file defines the interface of touch screen + * + * + */ + +#ifndef __MSTAR_DRV_SELF_MP_TEST_H__ +#define __MSTAR_DRV_SELF_MP_TEST_H__ + +/*--------------------------------------------------------------------------*/ +/* INCLUDE FILE */ +/*--------------------------------------------------------------------------*/ + +#include "mstar_drv_common.h" + +#if defined(CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC) +#ifdef CONFIG_ENABLE_ITO_MP_TEST + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR CONSTANT DEFINITION */ +/*--------------------------------------------------------------------------*/ + +#define CTP_MP_TEST_RETRY_COUNT (3) + + +#define OPEN_TEST_NON_BORDER_AREA_THRESHOLD (35) // range : 25~60 +#define OPEN_TEST_BORDER_AREA_THRESHOLD (40) // range : 25~60 + +#define SHORT_TEST_THRESHOLD (3500) + +#define MP_TEST_MODE_OPEN_TEST (0x01) +#define MP_TEST_MODE_SHORT_TEST (0x02) + +#define MAX_CHANNEL_NUM (48) + +// define for MSG21XXA +#define PIN_GUARD_RING (46) +#define GPO_SETTING_SIZE (3) + +// define for MSG22XX +#define RIU_BASE_ADDR (0) +#define RIU_WRITE_LENGTH (144) +#define CSUB_REF (0) //(18) +#define CSUB_REF_MAX (0x3F) + +#define MAX_SUBFRAME_NUM (24) +#define MAX_AFE_NUM (4) + + +#define REG_INTR_FIQ_MASK (0x04) +#define FIQ_E_FRAME_READY_MASK (1 << 8) + + +/*--------------------------------------------------------------------------*/ +/* PREPROCESSOR MACRO DEFINITION */ +/*--------------------------------------------------------------------------*/ + +/*--------------------------------------------------------------------------*/ +/* DATA TYPE DEFINITION */ +/*--------------------------------------------------------------------------*/ + + +/*--------------------------------------------------------------------------*/ +/* GLOBAL VARIABLE DEFINITION */ +/*--------------------------------------------------------------------------*/ + + +/*--------------------------------------------------------------------------*/ +/* GLOBAL FUNCTION DECLARATION */ +/*--------------------------------------------------------------------------*/ + +extern void DrvMpTestCreateMpTestWorkQueue(void); +extern void DrvMpTestGetTestDataLog(ItoTestMode_e eItoTestMode, u8 *pDataLog, u32 *pLength); +extern void DrvMpTestGetTestFailChannel(ItoTestMode_e eItoTestMode, u8 *pFailChannel, u32 *pFailChannelCount); +extern s32 DrvMpTestGetTestResult(void); +extern void DrvMpTestScheduleMpTestWork(ItoTestMode_e eItoTestMode); + +#endif //CONFIG_ENABLE_ITO_MP_TEST +#endif //CONFIG_ENABLE_TOUCH_DRIVER_FOR_SELF_IC + +#endif /* __MSTAR_DRV_SELF_MP_TEST_H__ */ \ No newline at end of file diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_sprd.c b/drivers/input/touchscreen/msg2233/mstar_drv_sprd.c new file mode 100644 index 00000000..58754864 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_sprd.c @@ -0,0 +1,242 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_sprd.c + * + * @brief This file defines the interface of touch screen + * + * + */ + +/*=============================================================*/ +// INCLUDE FILE +/*=============================================================*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "mstar_drv_platform_interface.h" + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON +#include +#include +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + +#include +#include +#include +#include + +/*=============================================================*/ +// CONSTANT VALUE DEFINITION +/*=============================================================*/ + +#define MSG_TP_IC_NAME "msg2xxx" //"msg21xxA" or "msg22xx" or "msg26xxM" /* Please define the mstar touch ic name based on the mutual-capacitive ic or self capacitive ic that you are using */ + +/*=============================================================*/ +// VARIABLE DEFINITION +/*=============================================================*/ + +struct i2c_client *g_I2cClient = NULL; +int TOUCH_SCREEN_X_MAX = 0; +int TOUCH_SCREEN_Y_MAX = 0; +int MS_TS_MSG_IC_GPIO_RST = 0; +int MS_TS_MSG_IC_GPIO_INT = 0; + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON +struct regulator *g_ReguVdd = NULL; +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + +struct wake_lock mstar_irq_lock; + +#ifdef CONFIG_OF +static struct msg2138_ts_platform_data *pixcir_ts_parse_dt(struct device *dev) +{ + struct msg2138_ts_platform_data *pdata = NULL; + struct device_node *np = dev->of_node; + int ret; + + pdata = kzalloc(sizeof(*pdata), GFP_KERNEL); + if (!pdata) { + dev_err(dev, "Could not allocate struct msg2138_ts_platform_data"); + return NULL; + } + pdata->reset_gpio_number = of_get_gpio(np, 0); + if(pdata->reset_gpio_number < 0){ + dev_err(dev, "fail to get reset_gpio_number\n"); + goto fail; + } + pdata->irq_gpio_number = of_get_gpio(np, 1); + if(pdata->irq_gpio_number < 0){ + dev_err(dev, "fail to get irq_gpio_number\n"); + goto fail; + } + ret = of_property_read_string(np, "vdd_name", &pdata->vdd_name); + if(ret){ + dev_err(dev, "fail to get vdd_name\n"); + goto fail; + } + ret = of_property_read_u32_array(np, "virtualkeys", &pdata->virtualkeys,12); + if(ret){ + dev_err(dev, "fail to get virtualkeys\n"); + goto fail; + } + ret = of_property_read_u32(np, "TP_MAX_X", &pdata->TP_MAX_X); + if(ret){ + dev_err(dev, "fail to get TP_MAX_X\n"); + goto fail; + } + ret = of_property_read_u32(np, "TP_MAX_Y", &pdata->TP_MAX_Y); + if(ret){ + dev_err(dev, "fail to get TP_MAX_Y\n"); + goto fail; + } + + return pdata; +fail: + kfree(pdata); + return NULL; +} +#endif + +/*=============================================================*/ +// FUNCTION DEFINITION +/*=============================================================*/ + +/* probe function is used for matching and initializing input device */ +static int /*__devinit*/ touch_driver_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ +// const char *vdd_name = "vdd"; + struct msg2138_ts_platform_data *pdata = client->dev.platform_data; + int err = 0; + + DBG("*** %s ***\n", __FUNCTION__); + + if (client == NULL) + { + DBG("i2c client is NULL\n"); + return -1; + } + + #ifdef CONFIG_OF + struct device_node *np = client->dev.of_node; + if (np && !pdata){ + pdata = pixcir_ts_parse_dt(&client->dev); + if(pdata){ + client->dev.platform_data = pdata; + } else { + err = -ENOMEM; + goto exit_alloc_platform_data_failed; + } + } + #endif + + g_I2cClient = client; + MS_TS_MSG_IC_GPIO_RST = pdata->reset_gpio_number; + MS_TS_MSG_IC_GPIO_INT = pdata->irq_gpio_number; + TOUCH_SCREEN_X_MAX = pdata->TP_MAX_X; + TOUCH_SCREEN_Y_MAX = pdata->TP_MAX_Y; + +#ifdef CONFIG_ENABLE_REGULATOR_POWER_ON + g_ReguVdd = regulator_get(&g_I2cClient->dev, pdata->vdd_name); +#endif //CONFIG_ENABLE_REGULATOR_POWER_ON + + + wake_lock_init(&mstar_irq_lock, WAKE_LOCK_SUSPEND, "mstar_irq_lock"); + + return MsDrvInterfaceTouchDeviceProbe(g_I2cClient, id); +exit_alloc_platform_data_failed: + return err; +} + +/* remove function is triggered when the input device is removed from input sub-system */ +static int /*__devexit*/ touch_driver_remove(struct i2c_client *client) +{ + DBG("*** %s ***\n", __FUNCTION__); + + return MsDrvInterfaceTouchDeviceRemove(client); +} + +/* The I2C device list is used for matching I2C device and I2C device driver. */ +static const struct i2c_device_id touch_device_id[] = +{ + {MSG_TP_IC_NAME, 0}, //SLAVE_I2C_ID_DWI2C + {}, /* should not omitted */ +}; + +MODULE_DEVICE_TABLE(i2c, touch_device_id); + +static const struct of_device_id msg2xxx_of_match[] = { + { .compatible = "msg2xxx,msg2233", }, + { } +}; + +static struct i2c_driver touch_device_driver = +{ + .driver = { + .name = MSG_TP_IC_NAME, + .owner = THIS_MODULE, + .of_match_table = msg2xxx_of_match, + }, + .probe = touch_driver_probe, + .remove = touch_driver_remove, +/* .remove = __devexit_p(touch_driver_remove), */ + .id_table = touch_device_id, +}; + +static int /*__init*/ touch_driver_init(void) +{ + int ret; + + /* register driver */ + ret = i2c_add_driver(&touch_device_driver); + if (ret < 0) + { + DBG("add touch device driver i2c driver failed.\n"); + return -ENODEV; + } + DBG("add touch device driver i2c driver.\n"); + + return ret; +} + +static void /*__exit*/ touch_driver_exit(void) +{ + DBG("remove touch device driver i2c driver.\n"); + + i2c_del_driver(&touch_device_driver); +} + +module_init(touch_driver_init); +module_exit(touch_driver_exit); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_utility_adaption.c b/drivers/input/touchscreen/msg2233/mstar_drv_utility_adaption.c new file mode 100644 index 00000000..73a08263 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_utility_adaption.c @@ -0,0 +1,1157 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_utility_adaption.c + * + * @brief This file defines the interface of touch screen + * + * + */ + +//////////////////////////////////////////////////////////// +/// Included Files +//////////////////////////////////////////////////////////// +#include "mstar_drv_utility_adaption.h" + +//////////////////////////////////////////////////////////// +/// Data Types +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Constant +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Variables +//////////////////////////////////////////////////////////// +extern u32 SLAVE_I2C_ID_DBBUS; +extern u32 SLAVE_I2C_ID_DWI2C; + +extern struct i2c_client *g_I2cClient; +extern struct input_dev *g_InputDevice; + +extern u8 g_ChipType; +extern u8 g_IsUpdateFirmware; + + +//////////////////////////////////////////////////////////// +/// Macro +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Function Prototypes +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Function Implementation +//////////////////////////////////////////////////////////// + + +#ifdef CONFIG_ENABLE_DMA_IIC +#include +#include +#include +#include +#include +#include + +static unsigned char *I2CDMABuf_va = NULL; +static dma_addr_t I2CDMABuf_pa = NULL; + +void DmaAlloc(void) +{ + if (NULL == I2CDMABuf_va) + { + g_InputDevice->dev.coherent_dma_mask = DMA_BIT_MASK(32); + I2CDMABuf_va = (u8 *)dma_alloc_coherent(&g_InputDevice->dev, MAX_I2C_TRANSACTION_LENGTH_LIMIT, &I2CDMABuf_pa, GFP_KERNEL); + } + + if (NULL == I2CDMABuf_va) + { + DBG("DmaAlloc FAILED!\n"); + } + else + { + DBG("DmaAlloc SUCCESS!\n"); + } +} + +void DmaReset(void) +{ + DBG("Dma memory reset!\n"); + + memset(I2CDMABuf_va, 0, MAX_I2C_TRANSACTION_LENGTH_LIMIT); +} + +void DmaFree(void) +{ + if (NULL != I2CDMABuf_va) + { + dma_free_coherent(&g_InputDevice->dev, MAX_I2C_TRANSACTION_LENGTH_LIMIT, I2CDMABuf_va, I2CDMABuf_pa); + I2CDMABuf_va = NULL; + I2CDMABuf_pa = 0; + + DBG("DmaFree SUCCESS!\n"); + } +} +#endif //CONFIG_ENABLE_DMA_IIC + +//------------------------------------------------------------------------------// + +u16 RegGet16BitValue(u16 nAddr) +{ + u8 tx_data[3] = {0x10, (nAddr >> 8) & 0xFF, nAddr & 0xFF}; + u8 rx_data[2] = {0}; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &tx_data[0], 3); + IicReadData(SLAVE_I2C_ID_DBBUS, &rx_data[0], 2); + + return (rx_data[1] << 8 | rx_data[0]); +} + +u8 RegGetLByteValue(u16 nAddr) +{ + u8 tx_data[3] = {0x10, (nAddr >> 8) & 0xFF, nAddr & 0xFF}; + u8 rx_data = {0}; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &tx_data[0], 3); + IicReadData(SLAVE_I2C_ID_DBBUS, &rx_data, 1); + + return (rx_data); +} + +u8 RegGetHByteValue(u16 nAddr) +{ + u8 tx_data[3] = {0x10, (nAddr >> 8) & 0xFF, (nAddr & 0xFF) + 1}; + u8 rx_data = {0}; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &tx_data[0], 3); + IicReadData(SLAVE_I2C_ID_DBBUS, &rx_data, 1); + + return (rx_data); +} + +void RegGetXBitValue(u16 nAddr, u8 * pRxData, u16 nLength, u16 nMaxI2cLengthLimit) +{ + u16 nReadAddr = nAddr; + u16 nReadSize = 0; + u16 nLeft = nLength; + u16 nOffset = 0; + u8 tx_data[3] = {0}; + + tx_data[0] = 0x10; + + while(nLeft > 0) + { + if(nLeft >= nMaxI2cLengthLimit) + { + nReadSize = nMaxI2cLengthLimit; + //DBG("*** RegGetXBitValue# Length >= I2cMax nReadAddr=%x, nReadSize=%d ***\n", nReadAddr, nReadSize); + + tx_data[1] = (nReadAddr >> 8) & 0xFF; + tx_data[2] = nReadAddr & 0xFF; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &tx_data[0], 3); + IicReadData(SLAVE_I2C_ID_DBBUS, &pRxData[nOffset], nReadSize); + + nReadAddr = nReadAddr + nReadSize; //set next read address + nLeft = nLeft - nReadSize; + nOffset = nOffset + nReadSize; + //DBG("*** RegGetXBitValue# Length >= I2cMax nLeft=%d, nOffset=%d ***\n", nLeft, nOffset); + } + else + { + nReadSize = nLeft; + //DBG("*** RegGetXBitValue# Length < I2cMax nReadAddr=%x, nReadSize=%d ***\n", nReadAddr, nReadSize); + + tx_data[1] = (nReadAddr >> 8) & 0xFF; + tx_data[2] = nReadAddr & 0xFF; + + IicWriteData(SLAVE_I2C_ID_DBBUS, &tx_data[0], 3); + IicReadData(SLAVE_I2C_ID_DBBUS, &pRxData[nOffset], nReadSize); + + nLeft = 0; + nOffset = nOffset + nReadSize; + //DBG("*** RegGetXBitValue# Length < I2cMax nLeft=%d, nOffset=%d ***\n", nLeft, nOffset); + } + } +} + +void RegSet16BitValue(u16 nAddr, u16 nData) +{ + u8 tx_data[5] = {0x10, (nAddr >> 8) & 0xFF, nAddr & 0xFF, nData & 0xFF, nData >> 8}; + IicWriteData(SLAVE_I2C_ID_DBBUS, &tx_data[0], 5); +} + +void RegSetLByteValue(u16 nAddr, u8 nData) +{ + u8 tx_data[4] = {0x10, (nAddr >> 8) & 0xFF, nAddr & 0xFF, nData}; + IicWriteData(SLAVE_I2C_ID_DBBUS, &tx_data[0], 4); +} + +void RegSetHByteValue(u16 nAddr, u8 nData) +{ + u8 tx_data[4] = {0x10, (nAddr >> 8) & 0xFF, (nAddr & 0xFF) + 1, nData}; + IicWriteData(SLAVE_I2C_ID_DBBUS, &tx_data[0], 4); +} + +void RegSet16BitValueOn(u16 nAddr, u16 nData) //Set bit on nData from 0 to 1 +{ + u16 rData = RegGet16BitValue(nAddr); + rData |= nData; + RegSet16BitValue(nAddr, rData); +} + +void RegSet16BitValueOff(u16 nAddr, u16 nData) //Set bit on nData from 1 to 0 +{ + u16 rData = RegGet16BitValue(nAddr); + rData &= (~nData); + RegSet16BitValue(nAddr, rData); +} + +u16 RegGet16BitValueByAddressMode(u16 nAddr, AddressMode_e eAddressMode) +{ + u16 nData = 0; + + if (eAddressMode == ADDRESS_MODE_16BIT) + { + nAddr = nAddr - (nAddr & 0xFF) + ((nAddr & 0xFF) << 1); + } + + nData = RegGet16BitValue(nAddr); + + return nData; +} + +void RegSet16BitValueByAddressMode(u16 nAddr, u16 nData, AddressMode_e eAddressMode) +{ + if (eAddressMode == ADDRESS_MODE_16BIT) + { + nAddr = nAddr - (nAddr & 0xFF) + ((nAddr & 0xFF) << 1); + } + + RegSet16BitValue(nAddr, nData); +} + +void RegMask16BitValue(u16 nAddr, u16 nMask, u16 nData, AddressMode_e eAddressMode) +{ + u16 nTmpData = 0; + + if (nData > nMask) + { + return; + } + + nTmpData = RegGet16BitValueByAddressMode(nAddr, eAddressMode); + nTmpData = (nTmpData & (~nMask)); + nTmpData = (nTmpData | nData); + RegSet16BitValueByAddressMode(nAddr, nTmpData, eAddressMode); +} + +s32 DbBusEnterSerialDebugMode(void) +{ + s32 rc = 0; + u8 data[5]; + + // Enter the Serial Debug Mode + data[0] = 0x53; + data[1] = 0x45; + data[2] = 0x52; + data[3] = 0x44; + data[4] = 0x42; + + rc = IicWriteData(SLAVE_I2C_ID_DBBUS, data, 5); + + return rc; +} + +void DbBusExitSerialDebugMode(void) +{ + u8 data[1]; + // Exit the Serial Debug Mode + data[0] = 0x45; + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 1); + // Delay some interval to guard the next transaction +// udelay(200); // delay about 0.2ms +} + +void DbBusIICUseBus(void) +{ + u8 data[1]; + + // IIC Use Bus + data[0] = 0x35; + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 1); +} + +void DbBusIICNotUseBus(void) +{ + u8 data[1]; + + // IIC Not Use Bus + data[0] = 0x34; + + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 1); +} + +void DbBusIICReshape(void) +{ + u8 data[1]; + + // IIC Re-shape + data[0] = 0x71; + + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 1); +} + +void DbBusStopMCU(void) +{ + u8 data[1]; + + // Stop the MCU + data[0] = 0x37; + + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 1); +} + +void DbBusNotStopMCU(void) +{ + u8 data[1]; + + // Not Stop the MCU + data[0] = 0x36; + + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 1); +} + +void DbBusResetSlave(void) +{ + u8 data[1]; + + // IIC Reset Slave + data[0] = 0x00; + + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 1); +} + +void DbBusWaitMCU(void) +{ + u8 data[1]; + + // Stop the MCU + data[0] = 0x37; + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 1); + + data[0] = 0x61; + IicWriteData(SLAVE_I2C_ID_DBBUS, data, 1); +} + +s32 IicWriteData(u8 nSlaveId, u8* pBuf, u16 nSize) +{ + s32 rc = 0; + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + struct i2c_msg msgs[] = + { + { + .addr = nSlaveId, + .flags = 0, // if read flag is undefined, then it means write flag. + .len = nSize, + .buf = pBuf, + }, + }; + + /* If everything went ok (i.e. 1 msg transmitted), return #bytes + transmitted, else error code. */ + if (g_I2cClient != NULL) + { + if (g_ChipType == CHIP_TYPE_MSG28XX && nSlaveId == SLAVE_I2C_ID_DWI2C && g_IsUpdateFirmware != 0) + { + PRINTF_ERR("Not allow to execute SmBus command while update firmware.\n"); + } + else + { + rc = i2c_transfer(g_I2cClient->adapter, msgs, 1); + + if (rc == 1) + { + rc = nSize; + } + else // rc < 0 + { + PRINTF_ERR("IicWriteData() error %d\n", rc); + } + } + } + else + { + PRINTF_ERR("i2c client is NULL\n"); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + if (g_I2cClient != NULL) + { + if (g_ChipType == CHIP_TYPE_MSG28XX && nSlaveId == SLAVE_I2C_ID_DWI2C && g_IsUpdateFirmware != 0) + { + PRINTF_ERR("Not allow to execute SmBus command while update firmware.\n"); + } + else + { + u8 nAddrBefore = g_I2cClient->addr; + g_I2cClient->addr = nSlaveId; + +#ifdef CONFIG_ENABLE_DMA_IIC + if (nSize > 8 && NULL != I2CDMABuf_va) + { + s32 i = 0; + + for (i = 0; i < nSize; i ++) + { + I2CDMABuf_va[i] = pBuf[i]; + } + g_I2cClient->ext_flag = g_I2cClient->ext_flag | I2C_DMA_FLAG; + rc = i2c_master_send(g_I2cClient, (unsigned char *)I2CDMABuf_pa, nSize); + } + else + { + g_I2cClient->ext_flag = g_I2cClient->ext_flag & (~I2C_DMA_FLAG); + rc = i2c_master_send(g_I2cClient, pBuf, nSize); + } +#else + rc = i2c_master_send(g_I2cClient, pBuf, nSize); +#endif //CONFIG_ENABLE_DMA_IIC + g_I2cClient->addr = nAddrBefore; + + if (rc < 0) + { + PRINTF_ERR("IicWriteData() error %d, nSlaveId=%d, nSize=%d\n", rc, nSlaveId, nSize); + } + } + } + else + { + PRINTF_ERR("i2c client is NULL\n"); + } +#endif + + return rc; +} + +s32 IicReadData(u8 nSlaveId, u8* pBuf, u16 nSize) +{ + s32 rc = 0; + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + struct i2c_msg msgs[] = + { + { + .addr = nSlaveId, + .flags = I2C_M_RD, // read flag + .len = nSize, + .buf = pBuf, + }, + }; + + /* If everything went ok (i.e. 1 msg transmitted), return #bytes + transmitted, else error code. */ + if (g_I2cClient != NULL) + { + if (g_ChipType == CHIP_TYPE_MSG28XX && nSlaveId == SLAVE_I2C_ID_DWI2C && g_IsUpdateFirmware != 0) + { + PRINTF_ERR("Not Allow to execute SmBus command while update firmware by sw id.\n"); + } + else + { + rc = i2c_transfer(g_I2cClient->adapter, msgs, 1); + + if (rc == 1) + { + rc = nSize; + } + else // rc < 0 + { + PRINTF_ERR("IicReadData() error %d\n", rc); + } + } + } + else + { + PRINTF_ERR("i2c client is NULL\n"); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + if (g_I2cClient != NULL) + { + if (g_ChipType == CHIP_TYPE_MSG28XX && nSlaveId == SLAVE_I2C_ID_DWI2C && g_IsUpdateFirmware != 0) + { + PRINTF_ERR("Not Allow to execute SmBus command while update firmware by sw id.\n"); + } + else + { + u8 nAddrBefore = g_I2cClient->addr; + g_I2cClient->addr = nSlaveId; + +#ifdef CONFIG_ENABLE_DMA_IIC + if (nSize > 8 && NULL != I2CDMABuf_va) + { + s32 i = 0; + + g_I2cClient->ext_flag = g_I2cClient->ext_flag | I2C_DMA_FLAG; + rc = i2c_master_recv(g_I2cClient, (unsigned char *)I2CDMABuf_pa, nSize); + + for (i = 0; i < nSize; i ++) + { + pBuf[i] = I2CDMABuf_va[i]; + } + } + else + { + g_I2cClient->ext_flag = g_I2cClient->ext_flag & (~I2C_DMA_FLAG); + rc = i2c_master_recv(g_I2cClient, pBuf, nSize); + } +#else + rc = i2c_master_recv(g_I2cClient, pBuf, nSize); +#endif //CONFIG_ENABLE_DMA_IIC + g_I2cClient->addr = nAddrBefore; + + if (rc < 0) + { + PRINTF_ERR("IicReadData() error %d, nSlaveId=%d, nSize=%d\n", rc, nSlaveId, nSize); + } + } + } + else + { + PRINTF_ERR("i2c client is NULL\n"); + } +#endif + + return rc; +} + +s32 IicSegmentReadDataByDbBus(u8 nRegBank, u8 nRegAddr, u8* pBuf, u16 nSize, u16 nMaxI2cLengthLimit) +{ + s32 rc = 0; + u16 nLeft = nSize; + u16 nOffset = 0; + u16 nSegmentLength = 0; + u16 nReadSize = 0; + u16 nOver = 0; + u8 szWriteBuf[3] = {0}; + u8 nNextRegBank = nRegBank; + u8 nNextRegAddr = nRegAddr; + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + struct i2c_msg msgs[2] = + { + { + .addr = SLAVE_I2C_ID_DBBUS, + .flags = 0, // write flag + .len = 3, + .buf = szWriteBuf, + }, + { + .addr = SLAVE_I2C_ID_DBBUS, + .flags = I2C_M_RD, // read flag + }, + }; + + // If everything went ok (i.e. 1 msg transmitted), return #bytes transmitted, else error code. + if (g_I2cClient != NULL) + { + if (nMaxI2cLengthLimit >= 256) + { + nSegmentLength = 256; + } + else + { + nSegmentLength = 128; + } + + PRINTF_ERR("nSegmentLength = %d\n", nSegmentLength); // add for debug + + while (nLeft > 0) + { + szWriteBuf[0] = 0x10; + nRegBank = nNextRegBank; + szWriteBuf[1] = nRegBank; + nRegAddr = nNextRegAddr; + szWriteBuf[2] = nRegAddr; + + PRINTF_ERR("nRegBank = 0x%x\n", nRegBank); // add for debug + PRINTF_ERR("nRegAddr = 0x%x\n", nRegAddr); // add for debug + + msgs[1].buf = &pBuf[nOffset]; + + if (nLeft > nSegmentLength) + { + if ((nRegAddr + nSegmentLength) < MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = nRegAddr + nSegmentLength; + + PRINTF_ERR("nNextRegAddr = 0x%x\n", nNextRegAddr); // add for debug + + msgs[1].len = nSegmentLength; + nLeft -= nSegmentLength; + nOffset += msgs[1].len; + } + else if ((nRegAddr + nSegmentLength) == MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = 0x00; + nNextRegBank = nRegBank + 1; // shift to read data from next register bank + + PRINTF_ERR("nNextRegBank = 0x%x\n", nNextRegBank); // add for debug + + msgs[1].len = nSegmentLength; + nLeft -= nSegmentLength; + nOffset += msgs[1].len; + } + else // ((nRegAddr + nSegmentLength) > MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = 0x00; + nNextRegBank = nRegBank + 1; // shift to read data from next register bank + + PRINTF_INFO("nNextRegBank = 0x%x\n", nNextRegBank); // add for debug + + nOver = (nRegAddr + nSegmentLength) - MAX_TOUCH_IC_REGISTER_BANK_SIZE; + + PRINTF_ERR("nOver = 0x%x\n", nOver); // add for debug + + msgs[1].len = nSegmentLength - nOver; + nLeft -= msgs[1].len; + nOffset += msgs[1].len; + } + } + else + { + if ((nRegAddr + nLeft) < MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = nRegAddr + nLeft; + + PRINTF_ERR("nNextRegAddr = 0x%x\n", nNextRegAddr); // add for debug + + msgs[1].len = nLeft; + nLeft = 0; +// nOffset += msgs[1].len; + } + else if ((nRegAddr + nLeft) == MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = 0x00; + nNextRegBank = nRegBank + 1; // shift to read data from next register bank + + PRINTF_ERR("nNextRegBank = 0x%x\n", nNextRegBank); // add for debug + + msgs[1].len = nLeft; + nLeft = 0; +// nOffset += msgs[1].len; + } + else // ((nRegAddr + nLeft) > MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = 0x00; + nNextRegBank = nRegBank + 1; // shift to read data from next register bank + + PRINTF_ERR("nNextRegBank = 0x%x\n", nNextRegBank); // add for debug + + nOver = (nRegAddr + nLeft) - MAX_TOUCH_IC_REGISTER_BANK_SIZE; + + PRINTF_ERR("nOver = 0x%x\n", nOver); // add for debug + + msgs[1].len = nLeft - nOver; + nLeft -= msgs[1].len; + nOffset += msgs[1].len; + } + } + + rc = i2c_transfer(g_I2cClient->adapter, &msgs[0], 2); + if (rc == 2) + { + nReadSize = nReadSize + msgs[1].len; + } + else // rc < 0 + { + PRINTF_ERR("IicSegmentReadDataByDbBus() -> i2c_transfer() error %d\n", rc); + + return rc; + } + } + } + else + { + PRINTF_ERR("i2c client is NULL\n"); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + if (g_I2cClient != NULL) + { + u8 *pReadBuf = NULL; + u16 nLength = 0; + u8 nAddrBefore = g_I2cClient->addr; + + g_I2cClient->addr = SLAVE_I2C_ID_DBBUS; + + if (nMaxI2cLengthLimit >= 256) + { + nSegmentLength = 256; + } + else + { + nSegmentLength = 128; + } + + PRINTF_ERR("nSegmentLength = %d\n", nSegmentLength); // add for debug + +#ifdef CONFIG_ENABLE_DMA_IIC + if (NULL != I2CDMABuf_va) + { + s32 i = 0; + + while (nLeft > 0) + { + szWriteBuf[0] = 0x10; + nRegBank = nNextRegBank; + szWriteBuf[1] = nRegBank; + nRegAddr = nNextRegAddr; + szWriteBuf[2] = nRegAddr; + + PRINTF_ERR("nRegBank = 0x%x\n", nRegBank); // add for debug + PRINTF_ERR("nRegAddr = 0x%x\n", nRegAddr); // add for debug + + if (nLeft > nSegmentLength) + { + if ((nRegAddr + nSegmentLength) < MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = nRegAddr + nSegmentLength; + + PRINTF_ERR("nNextRegAddr = 0x%x\n", nNextRegAddr); // add for debug + + nLength = nSegmentLength; + nLeft -= nSegmentLength; + } + else if ((nRegAddr + nSegmentLength) == MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = 0x00; + nNextRegBank = nRegBank + 1; // shift to read data from next register bank + + PRINTF_ERR("nNextRegBank = 0x%x\n", nNextRegBank); // add for debug + + nLength = nSegmentLength; + nLeft -= nSegmentLength; + } + else // ((nRegAddr + nSegmentLength) > MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = 0x00; + nNextRegBank = nRegBank + 1; // shift to read data from next register bank + + PRINTF_INFO("nNextRegBank = 0x%x\n", nNextRegBank); // add for debug + + nOver = (nRegAddr + nSegmentLength) - MAX_TOUCH_IC_REGISTER_BANK_SIZE; + + PRINTF_ERR("nOver = 0x%x\n", nOver); // add for debug + + nLength = nSegmentLength - nOver; + nLeft -= nLength; + } + } + else + { + if ((nRegAddr + nLeft) < MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = nRegAddr + nLeft; + + PRINTF_ERR("nNextRegAddr = 0x%x\n", nNextRegAddr); // add for debug + + nLength = nLeft; + nLeft = 0; + } + else if ((nRegAddr + nLeft) == MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = 0x00; + nNextRegBank = nRegBank + 1; // shift to read data from next register bank + + PRINTF_ERR("nNextRegBank = 0x%x\n", nNextRegBank); // add for debug + + nLength = nLeft; + nLeft = 0; + } + else // ((nRegAddr + nLeft) > MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = 0x00; + nNextRegBank = nRegBank + 1; // shift to read data from next register bank + + PRINTF_ERR("nNextRegBank = 0x%x\n", nNextRegBank); // add for debug + + nOver = (nRegAddr + nLeft) - MAX_TOUCH_IC_REGISTER_BANK_SIZE; + + PRINTF_ERR("nOver = 0x%x\n", nOver); // add for debug + + nLength = nLeft - nOver; + nLeft -= nLength; + } + } + + g_I2cClient->ext_flag = g_I2cClient->ext_flag & (~I2C_DMA_FLAG); + rc = i2c_master_send(g_I2cClient, &szWriteBuf[0], 3); + if (rc < 0) + { + PRINTF_ERR("IicSegmentReadDataByDbBus() -> i2c_master_send() error %d\n", rc); + + return rc; + } + + g_I2cClient->ext_flag = g_I2cClient->ext_flag | I2C_DMA_FLAG; + rc = i2c_master_recv(g_I2cClient, (unsigned char *)I2CDMABuf_pa, nLength); + if (rc < 0) + { + PRINTF_ERR("IicSegmentReadDataByDbBus() -> i2c_master_recv() error %d\n", rc); + + return rc; + } + else + { + for (i = 0; i < nLength; i ++) + { + pBuf[i+nOffset] = I2CDMABuf_va[i]; + } + nOffset += nLength; + + nReadSize = nReadSize + nLength; + } + } + } + else + { + PRINTF_ERR("IicSegmentReadDataByDbBus() -> I2CDMABuf_va is NULL\n"); + } +#else + while (nLeft > 0) + { + szWriteBuf[0] = 0x10; + nRegBank = nNextRegBank; + szWriteBuf[1] = nRegBank; + nRegAddr = nNextRegAddr; + szWriteBuf[2] = nRegAddr; + + PRINTF_ERR("nRegBank = 0x%x\n", nRegBank); // add for debug + PRINTF_ERR("nRegAddr = 0x%x\n", nRegAddr); // add for debug + + pReadBuf = &pBuf[nOffset]; + + if (nLeft > nSegmentLength) + { + if ((nRegAddr + nSegmentLength) < MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = nRegAddr + nSegmentLength; + + PRINTF_ERR("nNextRegAddr = 0x%x\n", nNextRegAddr); // add for debug + + nLength = nSegmentLength; + nLeft -= nSegmentLength; + nOffset += nLength; + } + else if ((nRegAddr + nSegmentLength) == MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = 0x00; + nNextRegBank = nRegBank + 1; // shift to read data from next register bank + + PRINTF_ERR("nNextRegBank = 0x%x\n", nNextRegBank); // add for debug + + nLength = nSegmentLength; + nLeft -= nSegmentLength; + nOffset += nLength; + } + else // ((nRegAddr + nSegmentLength) > MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = 0x00; + nNextRegBank = nRegBank + 1; // shift to read data from next register bank + + PRINTF_INFO("nNextRegBank = 0x%x\n", nNextRegBank); // add for debug + + nOver = (nRegAddr + nSegmentLength) - MAX_TOUCH_IC_REGISTER_BANK_SIZE; + + PRINTF_ERR("nOver = 0x%x\n", nOver); // add for debug + + nLength = nSegmentLength - nOver; + nLeft -= nLength; + nOffset += nLength; + } + } + else + { + if ((nRegAddr + nLeft) < MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = nRegAddr + nLeft; + + PRINTF_ERR("nNextRegAddr = 0x%x\n", nNextRegAddr); // add for debug + + nLength = nLeft; + nLeft = 0; +// nOffset += nLength; + } + else if ((nRegAddr + nLeft) == MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = 0x00; + nNextRegBank = nRegBank + 1; // shift to read data from next register bank + + PRINTF_ERR("nNextRegBank = 0x%x\n", nNextRegBank); // add for debug + + nLength = nLeft; + nLeft = 0; +// nOffset += nLength; + } + else // ((nRegAddr + nLeft) > MAX_TOUCH_IC_REGISTER_BANK_SIZE) + { + nNextRegAddr = 0x00; + nNextRegBank = nRegBank + 1; // shift to read data from next register bank + + PRINTF_ERR("nNextRegBank = 0x%x\n", nNextRegBank); // add for debug + + nOver = (nRegAddr + nLeft) - MAX_TOUCH_IC_REGISTER_BANK_SIZE; + + PRINTF_ERR("nOver = 0x%x\n", nOver); // add for debug + + nLength = nLeft - nOver; + nLeft -= nLength; + nOffset += nLength; + } + } + + rc = i2c_master_send(g_I2cClient, &szWriteBuf[0], 3); + if (rc < 0) + { + PRINTF_ERR("IicSegmentReadDataByDbBus() -> i2c_master_send() error %d\n", rc); + + return rc; + } + + rc = i2c_master_recv(g_I2cClient, pReadBuf, nLength); + if (rc < 0) + { + PRINTF_ERR("IicSegmentReadDataByDbBus() -> i2c_master_recv() error %d\n", rc); + + return rc; + } + else + { + nReadSize = nReadSize + nLength; + } + } +#endif //CONFIG_ENABLE_DMA_IIC + g_I2cClient->addr = nAddrBefore; + } + else + { + PRINTF_ERR("i2c client is NULL\n"); + } +#endif + + return nReadSize; +} + +s32 IicSegmentReadDataBySmBus(u16 nAddr, u8* pBuf, u16 nSize, u16 nMaxI2cLengthLimit) +{ + s32 rc = 0; + u16 nLeft = nSize; + u16 nOffset = 0; + u16 nReadSize = 0; + u8 szWriteBuf[3] = {0}; + +#if defined(CONFIG_TOUCH_DRIVER_RUN_ON_SPRD_PLATFORM) || defined(CONFIG_TOUCH_DRIVER_RUN_ON_QCOM_PLATFORM) + struct i2c_msg msgs[2] = + { + { + .addr = SLAVE_I2C_ID_DWI2C, + .flags = 0, // write flag + .len = 3, + .buf = szWriteBuf, + }, + { + .addr = SLAVE_I2C_ID_DWI2C, + .flags = I2C_M_RD, // read flag + }, + }; + + // If everything went ok (i.e. 1 msg transmitted), return #bytes transmitted, else error code. + if (g_I2cClient != NULL) + { + while (nLeft > 0) + { + szWriteBuf[0] = 0x53; + szWriteBuf[1] = ((nAddr + nOffset) >> 8) & 0xFF; + szWriteBuf[2] = (nAddr + nOffset) & 0xFF; + + msgs[1].buf = &pBuf[nOffset]; + + if (nLeft > nMaxI2cLengthLimit) + { + msgs[1].len = nMaxI2cLengthLimit; + nLeft -= nMaxI2cLengthLimit; + nOffset += msgs[1].len; + } + else + { + msgs[1].len = nLeft; + nLeft = 0; +// nOffset += msgs[1].len; + } + + rc = i2c_transfer(g_I2cClient->adapter, &msgs[0], 2); + if (rc == 2) + { + nReadSize = nReadSize + msgs[1].len; + } + else // rc < 0 + { + PRINTF_ERR("IicSegmentReadDataBySmBus() -> i2c_transfer() error %d\n", rc); + + return rc; + } + } + } + else + { + PRINTF_ERR("i2c client is NULL\n"); + } +#elif defined(CONFIG_TOUCH_DRIVER_RUN_ON_MTK_PLATFORM) + if (g_I2cClient != NULL) + { + u8 *pReadBuf = NULL; + u16 nLength = 0; + u8 nAddrBefore = g_I2cClient->addr; + + g_I2cClient->addr = SLAVE_I2C_ID_DWI2C; + +#ifdef CONFIG_ENABLE_DMA_IIC + while (nLeft > 0) + { + s32 i = 0; + + szWriteBuf[0] = 0x53; + szWriteBuf[1] = ((nAddr + nOffset) >> 8) & 0xFF; + szWriteBuf[2] = (nAddr + nOffset) & 0xFF; + + if (nLeft > nMaxI2cLengthLimit) + { + nLength = nMaxI2cLengthLimit; + nLeft -= nMaxI2cLengthLimit; + } + else + { + nLength = nLeft; + nLeft = 0; + } + + g_I2cClient->ext_flag = g_I2cClient->ext_flag & (~I2C_DMA_FLAG); + rc = i2c_master_send(g_I2cClient, &szWriteBuf[0], 3); + if (rc < 0) + { + PRINTF_ERR("IicSegmentReadDataBySmBus() -> i2c_master_send() error %d\n", rc); + + return rc; + } + + g_I2cClient->ext_flag = g_I2cClient->ext_flag | I2C_DMA_FLAG; + rc = i2c_master_recv(g_I2cClient, (unsigned char *)I2CDMABuf_pa, nLength); + if (rc < 0) + { + PRINTF_ERR("IicSegmentReadDataBySmBus() -> i2c_master_recv() error %d\n", rc); + + return rc; + } + else + { + for (i = 0; i < nLength; i ++) + { + pBuf[i+nOffset] = I2CDMABuf_va[i]; + } + nOffset += nLength; + + nReadSize = nReadSize + nLength; + } + } +#else + while (nLeft > 0) + { + szWriteBuf[0] = 0x53; + szWriteBuf[1] = ((nAddr + nOffset) >> 8) & 0xFF; + szWriteBuf[2] = (nAddr + nOffset) & 0xFF; + + pReadBuf = &pBuf[nOffset]; + + if (nLeft > nMaxI2cLengthLimit) + { + nLength = nMaxI2cLengthLimit; + nLeft -= nMaxI2cLengthLimit; + nOffset += nLength; + } + else + { + nLength = nLeft; + nLeft = 0; +// nOffset += nLength; + } + + rc = i2c_master_send(g_I2cClient, &szWriteBuf[0], 3); + if (rc < 0) + { + PRINTF_ERR("IicSegmentReadDataBySmBus() -> i2c_master_send() error %d\n", rc); + + return rc; + } + + rc = i2c_master_recv(g_I2cClient, pReadBuf, nLength); + if (rc < 0) + { + PRINTF_ERR("IicSegmentReadDataBySmBus() -> i2c_master_recv() error %d\n", rc); + + return rc; + } + else + { + nReadSize = nReadSize + nLength; + } + } +#endif //CONFIG_ENABLE_DMA_IIC + g_I2cClient->addr = nAddrBefore; + } + else + { + PRINTF_ERR("i2c client is NULL\n"); + } +#endif + + return nReadSize; +} + +void mstpMemSet(void *pDst, s8 nVal, u32 nSize) +{ + memset(pDst, nVal, nSize); +} + +void mstpMemCopy(void *pDst, void *pSource, u32 nSize) +{ + memcpy(pDst, pSource, nSize); +} + +void mstpDelay(u32 nTime) +{ + mdelay(nTime); +} + +//------------------------------------------------------------------------------// diff --git a/drivers/input/touchscreen/msg2233/mstar_drv_utility_adaption.h b/drivers/input/touchscreen/msg2233/mstar_drv_utility_adaption.h new file mode 100644 index 00000000..c473ceb1 --- /dev/null +++ b/drivers/input/touchscreen/msg2233/mstar_drv_utility_adaption.h @@ -0,0 +1,109 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2006-2014 MStar Semiconductor, Inc. +// All rights reserved. +// +// Unless otherwise stipulated in writing, any and all information contained +// herein regardless in any format shall remain the sole proprietary of +// MStar Semiconductor Inc. and be kept in strict confidence +// (??MStar Confidential Information??) by the recipient. +// Any unauthorized act including without limitation unauthorized disclosure, +// copying, use, reproduction, sale, distribution, modification, disassembling, +// reverse engineering and compiling of the contents of MStar Confidential +// Information is unlawful and strictly prohibited. MStar hereby reserves the +// rights to any and all damages, losses, costs and expenses resulting therefrom. +// +//////////////////////////////////////////////////////////////////////////////// + +/** + * + * @file mstar_drv_utility_adaption.h + * + * @brief This file defines the interface of touch screen + * + * + */ + +#ifndef __MSTAR_DRV_UTILITY_ADAPTION_H__ +#define __MSTAR_DRV_UTILITY_ADAPTION_H__ (1) + + +//////////////////////////////////////////////////////////// +/// Included Files +//////////////////////////////////////////////////////////// + +#include "mstar_drv_common.h" + +//////////////////////////////////////////////////////////// +/// Constant +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Data Types +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Variables +//////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////// +/// Macro +//////////////////////////////////////////////////////////// +#define BK_REG8_WL(addr,val) ( RegSetLByteValue( addr, val ) ) +#define BK_REG8_WH(addr,val) ( RegSetHByteValue( addr, val ) ) +#define BK_REG16_W(addr,val) ( RegSet16BitValue( addr, val ) ) +#define BK_REG8_RL(addr) ( RegGetLByteValue( addr ) ) +#define BK_REG8_RH(addr) ( RegGetHByteValue( addr ) ) +#define BK_REG16_R(addr) ( RegGet16BitValue( addr ) ) + +#define PRINTF_EMERG(fmt, ...) printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__) +#define PRINTF_ALERT(fmt, ...) printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__) +#define PRINTF_CRIT(fmt, ...) printk(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__) +#define PRINTF_ERR(fmt, ...) printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__) +#define PRINTF_WARN(fmt, ...) printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__) +#define PRINTF_NOTICE(fmt, ...) printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__) +#define PRINTF_INFO(fmt, ...) printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) +#define PRINTF_DEBUG(fmt, ...) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__) + +//////////////////////////////////////////////////////////// +/// Function Prototypes +//////////////////////////////////////////////////////////// + +#ifdef CONFIG_ENABLE_DMA_IIC +extern void DmaAlloc(void); +extern void DmaReset(void); +extern void DmaFree(void); +#endif //CONFIG_ENABLE_DMA_IIC +extern u16 RegGet16BitValue(u16 nAddr); +extern u8 RegGetLByteValue(u16 nAddr); +extern u8 RegGetHByteValue(u16 nAddr); +extern void RegGetXBitValue(u16 nAddr, u8 * pRxData, u16 nLength, u16 nMaxI2cLengthLimit); +extern void RegSet16BitValue(u16 nAddr, u16 nData); +extern void RegSetLByteValue(u16 nAddr, u8 nData); +extern void RegSetHByteValue(u16 nAddr, u8 nData); +extern void RegSet16BitValueOn(u16 nAddr, u16 nData); +extern void RegSet16BitValueOff(u16 nAddr, u16 nData); +extern u16 RegGet16BitValueByAddressMode(u16 nAddr, AddressMode_e eAddressMode); +extern void RegSet16BitValueByAddressMode(u16 nAddr, u16 nData, AddressMode_e eAddressMode); +extern void RegMask16BitValue(u16 nAddr, u16 nMask, u16 nData, AddressMode_e eAddressMode); +extern s32 DbBusEnterSerialDebugMode(void); +extern void DbBusExitSerialDebugMode(void); +extern void DbBusIICUseBus(void); +extern void DbBusIICNotUseBus(void); +extern void DbBusIICReshape(void); +extern void DbBusStopMCU(void); +extern void DbBusNotStopMCU(void); +extern void DbBusResetSlave(void); +extern void DbBusWaitMCU(void); +extern s32 IicWriteData(u8 nSlaveId, u8* pBuf, u16 nSize); +extern s32 IicReadData(u8 nSlaveId, u8* pBuf, u16 nSize); +extern s32 IicSegmentReadDataByDbBus(u8 nRegBank, u8 nRegAddr, u8* pBuf, u16 nSize, u16 nMaxI2cLengthLimit); +extern s32 IicSegmentReadDataBySmBus(u16 nAddr, u8* pBuf, u16 nSize, u16 nMaxI2cLengthLimit); +extern void mstpMemSet(void *pDst, s8 nVal, u32 nSize); +extern void mstpMemCopy(void *pDst, void *pSource, u32 nSize); +extern void mstpDelay(u32 nTime); + +#endif // __MSTAR_DRV_UTILITY_ADAPTION_H__ diff --git a/drivers/input/touchscreen/mtouch.c b/drivers/input/touchscreen/mtouch.c new file mode 100644 index 00000000..eb66b7c3 --- /dev/null +++ b/drivers/input/touchscreen/mtouch.c @@ -0,0 +1,205 @@ +/* + * MicroTouch (3M) serial touchscreen driver + * + * Copyright (c) 2004 Vojtech Pavlik + */ + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +/* + * 2005/02/19 Dan Streetman + * Copied elo.c and edited for MicroTouch protocol + */ + +#include +#include +#include +#include +#include +#include +#include + +#define DRIVER_DESC "MicroTouch serial touchscreen driver" + +MODULE_AUTHOR("Vojtech Pavlik "); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL"); + +/* + * Definitions & global arrays. + */ + +#define MTOUCH_FORMAT_TABLET_STATUS_BIT 0x80 +#define MTOUCH_FORMAT_TABLET_TOUCH_BIT 0x40 +#define MTOUCH_FORMAT_TABLET_LENGTH 5 +#define MTOUCH_RESPONSE_BEGIN_BYTE 0x01 +#define MTOUCH_RESPONSE_END_BYTE 0x0d + +/* todo: check specs for max length of all responses */ +#define MTOUCH_MAX_LENGTH 16 + +#define MTOUCH_MIN_XC 0 +#define MTOUCH_MAX_XC 0x3fff +#define MTOUCH_MIN_YC 0 +#define MTOUCH_MAX_YC 0x3fff + +#define MTOUCH_GET_XC(data) (((data[2])<<7) | data[1]) +#define MTOUCH_GET_YC(data) (((data[4])<<7) | data[3]) +#define MTOUCH_GET_TOUCHED(data) (MTOUCH_FORMAT_TABLET_TOUCH_BIT & data[0]) + +/* + * Per-touchscreen data. + */ + +struct mtouch { + struct input_dev *dev; + struct serio *serio; + int idx; + unsigned char data[MTOUCH_MAX_LENGTH]; + char phys[32]; +}; + +static void mtouch_process_format_tablet(struct mtouch *mtouch) +{ + struct input_dev *dev = mtouch->dev; + + if (MTOUCH_FORMAT_TABLET_LENGTH == ++mtouch->idx) { + input_report_abs(dev, ABS_X, MTOUCH_GET_XC(mtouch->data)); + input_report_abs(dev, ABS_Y, MTOUCH_MAX_YC - MTOUCH_GET_YC(mtouch->data)); + input_report_key(dev, BTN_TOUCH, MTOUCH_GET_TOUCHED(mtouch->data)); + input_sync(dev); + + mtouch->idx = 0; + } +} + +static void mtouch_process_response(struct mtouch *mtouch) +{ + if (MTOUCH_RESPONSE_END_BYTE == mtouch->data[mtouch->idx++]) { + /* FIXME - process response */ + mtouch->idx = 0; + } else if (MTOUCH_MAX_LENGTH == mtouch->idx) { + printk(KERN_ERR "mtouch.c: too many response bytes\n"); + mtouch->idx = 0; + } +} + +static irqreturn_t mtouch_interrupt(struct serio *serio, + unsigned char data, unsigned int flags) +{ + struct mtouch* mtouch = serio_get_drvdata(serio); + + mtouch->data[mtouch->idx] = data; + + if (MTOUCH_FORMAT_TABLET_STATUS_BIT & mtouch->data[0]) + mtouch_process_format_tablet(mtouch); + else if (MTOUCH_RESPONSE_BEGIN_BYTE == mtouch->data[0]) + mtouch_process_response(mtouch); + else + printk(KERN_DEBUG "mtouch.c: unknown/unsynchronized data from device, byte %x\n",mtouch->data[0]); + + return IRQ_HANDLED; +} + +/* + * mtouch_disconnect() is the opposite of mtouch_connect() + */ + +static void mtouch_disconnect(struct serio *serio) +{ + struct mtouch* mtouch = serio_get_drvdata(serio); + + input_get_device(mtouch->dev); + input_unregister_device(mtouch->dev); + serio_close(serio); + serio_set_drvdata(serio, NULL); + input_put_device(mtouch->dev); + kfree(mtouch); +} + +/* + * mtouch_connect() is the routine that is called when someone adds a + * new serio device that supports MicroTouch (Format Tablet) protocol and registers it as + * an input device. + */ + +static int mtouch_connect(struct serio *serio, struct serio_driver *drv) +{ + struct mtouch *mtouch; + struct input_dev *input_dev; + int err; + + mtouch = kzalloc(sizeof(struct mtouch), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!mtouch || !input_dev) { + err = -ENOMEM; + goto fail1; + } + + mtouch->serio = serio; + mtouch->dev = input_dev; + snprintf(mtouch->phys, sizeof(mtouch->phys), "%s/input0", serio->phys); + + input_dev->name = "MicroTouch Serial TouchScreen"; + input_dev->phys = mtouch->phys; + input_dev->id.bustype = BUS_RS232; + input_dev->id.vendor = SERIO_MICROTOUCH; + input_dev->id.product = 0; + input_dev->id.version = 0x0100; + input_dev->dev.parent = &serio->dev; + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(mtouch->dev, ABS_X, MTOUCH_MIN_XC, MTOUCH_MAX_XC, 0, 0); + input_set_abs_params(mtouch->dev, ABS_Y, MTOUCH_MIN_YC, MTOUCH_MAX_YC, 0, 0); + + serio_set_drvdata(serio, mtouch); + + err = serio_open(serio, drv); + if (err) + goto fail2; + + err = input_register_device(mtouch->dev); + if (err) + goto fail3; + + return 0; + + fail3: serio_close(serio); + fail2: serio_set_drvdata(serio, NULL); + fail1: input_free_device(input_dev); + kfree(mtouch); + return err; +} + +/* + * The serio driver structure. + */ + +static struct serio_device_id mtouch_serio_ids[] = { + { + .type = SERIO_RS232, + .proto = SERIO_MICROTOUCH, + .id = SERIO_ANY, + .extra = SERIO_ANY, + }, + { 0 } +}; + +MODULE_DEVICE_TABLE(serio, mtouch_serio_ids); + +static struct serio_driver mtouch_drv = { + .driver = { + .name = "mtouch", + }, + .description = DRIVER_DESC, + .id_table = mtouch_serio_ids, + .interrupt = mtouch_interrupt, + .connect = mtouch_connect, + .disconnect = mtouch_disconnect, +}; + +module_serio_driver(mtouch_drv); diff --git a/drivers/input/touchscreen/pcap_ts.c b/drivers/input/touchscreen/pcap_ts.c new file mode 100644 index 00000000..f22e04dd --- /dev/null +++ b/drivers/input/touchscreen/pcap_ts.c @@ -0,0 +1,260 @@ +/* + * Driver for Motorola PCAP2 touchscreen as found in the EZX phone platform. + * + * Copyright (C) 2006 Harald Welte + * Copyright (C) 2009 Daniel Ribeiro + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct pcap_ts { + struct pcap_chip *pcap; + struct input_dev *input; + struct delayed_work work; + u16 x, y; + u16 pressure; + u8 read_state; +}; + +#define SAMPLE_DELAY 20 /* msecs */ + +#define X_AXIS_MIN 0 +#define X_AXIS_MAX 1023 +#define Y_AXIS_MAX X_AXIS_MAX +#define Y_AXIS_MIN X_AXIS_MIN +#define PRESSURE_MAX X_AXIS_MAX +#define PRESSURE_MIN X_AXIS_MIN + +static void pcap_ts_read_xy(void *data, u16 res[2]) +{ + struct pcap_ts *pcap_ts = data; + + switch (pcap_ts->read_state) { + case PCAP_ADC_TS_M_PRESSURE: + /* pressure reading is unreliable */ + if (res[0] > PRESSURE_MIN && res[0] < PRESSURE_MAX) + pcap_ts->pressure = res[0]; + pcap_ts->read_state = PCAP_ADC_TS_M_XY; + schedule_delayed_work(&pcap_ts->work, 0); + break; + case PCAP_ADC_TS_M_XY: + pcap_ts->y = res[0]; + pcap_ts->x = res[1]; + if (pcap_ts->x <= X_AXIS_MIN || pcap_ts->x >= X_AXIS_MAX || + pcap_ts->y <= Y_AXIS_MIN || pcap_ts->y >= Y_AXIS_MAX) { + /* pen has been released */ + input_report_abs(pcap_ts->input, ABS_PRESSURE, 0); + input_report_key(pcap_ts->input, BTN_TOUCH, 0); + + pcap_ts->read_state = PCAP_ADC_TS_M_STANDBY; + schedule_delayed_work(&pcap_ts->work, 0); + } else { + /* pen is touching the screen */ + input_report_abs(pcap_ts->input, ABS_X, pcap_ts->x); + input_report_abs(pcap_ts->input, ABS_Y, pcap_ts->y); + input_report_key(pcap_ts->input, BTN_TOUCH, 1); + input_report_abs(pcap_ts->input, ABS_PRESSURE, + pcap_ts->pressure); + + /* switch back to pressure read mode */ + pcap_ts->read_state = PCAP_ADC_TS_M_PRESSURE; + schedule_delayed_work(&pcap_ts->work, + msecs_to_jiffies(SAMPLE_DELAY)); + } + input_sync(pcap_ts->input); + break; + default: + dev_warn(&pcap_ts->input->dev, + "pcap_ts: Warning, unhandled read_state %d\n", + pcap_ts->read_state); + break; + } +} + +static void pcap_ts_work(struct work_struct *work) +{ + struct delayed_work *dw = container_of(work, struct delayed_work, work); + struct pcap_ts *pcap_ts = container_of(dw, struct pcap_ts, work); + u8 ch[2]; + + pcap_set_ts_bits(pcap_ts->pcap, + pcap_ts->read_state << PCAP_ADC_TS_M_SHIFT); + + if (pcap_ts->read_state == PCAP_ADC_TS_M_STANDBY) + return; + + /* start adc conversion */ + ch[0] = PCAP_ADC_CH_TS_X1; + ch[1] = PCAP_ADC_CH_TS_Y1; + pcap_adc_async(pcap_ts->pcap, PCAP_ADC_BANK_1, 0, ch, + pcap_ts_read_xy, pcap_ts); +} + +static irqreturn_t pcap_ts_event_touch(int pirq, void *data) +{ + struct pcap_ts *pcap_ts = data; + + if (pcap_ts->read_state == PCAP_ADC_TS_M_STANDBY) { + pcap_ts->read_state = PCAP_ADC_TS_M_PRESSURE; + schedule_delayed_work(&pcap_ts->work, 0); + } + return IRQ_HANDLED; +} + +static int pcap_ts_open(struct input_dev *dev) +{ + struct pcap_ts *pcap_ts = input_get_drvdata(dev); + + pcap_ts->read_state = PCAP_ADC_TS_M_STANDBY; + schedule_delayed_work(&pcap_ts->work, 0); + + return 0; +} + +static void pcap_ts_close(struct input_dev *dev) +{ + struct pcap_ts *pcap_ts = input_get_drvdata(dev); + + cancel_delayed_work_sync(&pcap_ts->work); + + pcap_ts->read_state = PCAP_ADC_TS_M_NONTS; + pcap_set_ts_bits(pcap_ts->pcap, + pcap_ts->read_state << PCAP_ADC_TS_M_SHIFT); +} + +static int pcap_ts_probe(struct platform_device *pdev) +{ + struct input_dev *input_dev; + struct pcap_ts *pcap_ts; + int err = -ENOMEM; + + pcap_ts = kzalloc(sizeof(*pcap_ts), GFP_KERNEL); + if (!pcap_ts) + return err; + + pcap_ts->pcap = dev_get_drvdata(pdev->dev.parent); + platform_set_drvdata(pdev, pcap_ts); + + input_dev = input_allocate_device(); + if (!input_dev) + goto fail; + + INIT_DELAYED_WORK(&pcap_ts->work, pcap_ts_work); + + pcap_ts->read_state = PCAP_ADC_TS_M_NONTS; + pcap_set_ts_bits(pcap_ts->pcap, + pcap_ts->read_state << PCAP_ADC_TS_M_SHIFT); + + pcap_ts->input = input_dev; + input_set_drvdata(input_dev, pcap_ts); + + input_dev->name = "pcap-touchscreen"; + input_dev->phys = "pcap_ts/input0"; + input_dev->id.bustype = BUS_HOST; + input_dev->id.vendor = 0x0001; + input_dev->id.product = 0x0002; + input_dev->id.version = 0x0100; + input_dev->dev.parent = &pdev->dev; + input_dev->open = pcap_ts_open; + input_dev->close = pcap_ts_close; + + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(input_dev, ABS_X, X_AXIS_MIN, X_AXIS_MAX, 0, 0); + input_set_abs_params(input_dev, ABS_Y, Y_AXIS_MIN, Y_AXIS_MAX, 0, 0); + input_set_abs_params(input_dev, ABS_PRESSURE, PRESSURE_MIN, + PRESSURE_MAX, 0, 0); + + err = input_register_device(pcap_ts->input); + if (err) + goto fail_allocate; + + err = request_irq(pcap_to_irq(pcap_ts->pcap, PCAP_IRQ_TS), + pcap_ts_event_touch, 0, "Touch Screen", pcap_ts); + if (err) + goto fail_register; + + return 0; + +fail_register: + input_unregister_device(input_dev); + goto fail; +fail_allocate: + input_free_device(input_dev); +fail: + kfree(pcap_ts); + + return err; +} + +static int pcap_ts_remove(struct platform_device *pdev) +{ + struct pcap_ts *pcap_ts = platform_get_drvdata(pdev); + + free_irq(pcap_to_irq(pcap_ts->pcap, PCAP_IRQ_TS), pcap_ts); + cancel_delayed_work_sync(&pcap_ts->work); + + input_unregister_device(pcap_ts->input); + + kfree(pcap_ts); + + return 0; +} + +#ifdef CONFIG_PM +static int pcap_ts_suspend(struct device *dev) +{ + struct pcap_ts *pcap_ts = dev_get_drvdata(dev); + + pcap_set_ts_bits(pcap_ts->pcap, PCAP_ADC_TS_REF_LOWPWR); + return 0; +} + +static int pcap_ts_resume(struct device *dev) +{ + struct pcap_ts *pcap_ts = dev_get_drvdata(dev); + + pcap_set_ts_bits(pcap_ts->pcap, + pcap_ts->read_state << PCAP_ADC_TS_M_SHIFT); + return 0; +} + +static const struct dev_pm_ops pcap_ts_pm_ops = { + .suspend = pcap_ts_suspend, + .resume = pcap_ts_resume, +}; +#define PCAP_TS_PM_OPS (&pcap_ts_pm_ops) +#else +#define PCAP_TS_PM_OPS NULL +#endif + +static struct platform_driver pcap_ts_driver = { + .probe = pcap_ts_probe, + .remove = pcap_ts_remove, + .driver = { + .name = "pcap-ts", + .owner = THIS_MODULE, + .pm = PCAP_TS_PM_OPS, + }, +}; +module_platform_driver(pcap_ts_driver); + +MODULE_DESCRIPTION("Motorola PCAP2 touchscreen driver"); +MODULE_AUTHOR("Daniel Ribeiro / Harald Welte"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:pcap_ts"); diff --git a/drivers/input/touchscreen/penmount.c b/drivers/input/touchscreen/penmount.c new file mode 100644 index 00000000..b49f0b83 --- /dev/null +++ b/drivers/input/touchscreen/penmount.c @@ -0,0 +1,320 @@ +/* + * Penmount serial touchscreen driver + * + * Copyright (c) 2006 Rick Koch + * Copyright (c) 2011 John Sung + * + * Based on ELO driver (drivers/input/touchscreen/elo.c) + * Copyright (c) 2004 Vojtech Pavlik + */ + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define DRIVER_DESC "PenMount serial touchscreen driver" + +MODULE_AUTHOR("Rick Koch "); +MODULE_AUTHOR("John Sung "); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL"); + +/* + * Definitions & global arrays. + */ + +#define PM_MAX_LENGTH 6 +#define PM_MAX_MTSLOT 16 +#define PM_3000_MTSLOT 2 +#define PM_6250_MTSLOT 12 + +/* + * Multi-touch slot + */ + +struct mt_slot { + unsigned short x, y; + bool active; /* is the touch valid? */ +}; + +/* + * Per-touchscreen data. + */ + +struct pm { + struct input_dev *dev; + struct serio *serio; + int idx; + unsigned char data[PM_MAX_LENGTH]; + char phys[32]; + unsigned char packetsize; + unsigned char maxcontacts; + struct mt_slot slots[PM_MAX_MTSLOT]; + void (*parse_packet)(struct pm *); +}; + +/* + * pm_mtevent() sends mt events and also emulates pointer movement + */ + +static void pm_mtevent(struct pm *pm, struct input_dev *input) +{ + int i; + + for (i = 0; i < pm->maxcontacts; ++i) { + input_mt_slot(input, i); + input_mt_report_slot_state(input, MT_TOOL_FINGER, + pm->slots[i].active); + if (pm->slots[i].active) { + input_event(input, EV_ABS, ABS_MT_POSITION_X, pm->slots[i].x); + input_event(input, EV_ABS, ABS_MT_POSITION_Y, pm->slots[i].y); + } + } + + input_mt_report_pointer_emulation(input, true); + input_sync(input); +} + +/* + * pm_checkpacket() checks if data packet is valid + */ + +static bool pm_checkpacket(unsigned char *packet) +{ + int total = 0; + int i; + + for (i = 0; i < 5; i++) + total += packet[i]; + + return packet[5] == (unsigned char)~(total & 0xff); +} + +static void pm_parse_9000(struct pm *pm) +{ + struct input_dev *dev = pm->dev; + + if ((pm->data[0] & 0x80) && pm->packetsize == ++pm->idx) { + input_report_abs(dev, ABS_X, pm->data[1] * 128 + pm->data[2]); + input_report_abs(dev, ABS_Y, pm->data[3] * 128 + pm->data[4]); + input_report_key(dev, BTN_TOUCH, !!(pm->data[0] & 0x40)); + input_sync(dev); + pm->idx = 0; + } +} + +static void pm_parse_6000(struct pm *pm) +{ + struct input_dev *dev = pm->dev; + + if ((pm->data[0] & 0xbf) == 0x30 && pm->packetsize == ++pm->idx) { + if (pm_checkpacket(pm->data)) { + input_report_abs(dev, ABS_X, + pm->data[2] * 256 + pm->data[1]); + input_report_abs(dev, ABS_Y, + pm->data[4] * 256 + pm->data[3]); + input_report_key(dev, BTN_TOUCH, pm->data[0] & 0x40); + input_sync(dev); + } + pm->idx = 0; + } +} + +static void pm_parse_3000(struct pm *pm) +{ + struct input_dev *dev = pm->dev; + + if ((pm->data[0] & 0xce) == 0x40 && pm->packetsize == ++pm->idx) { + if (pm_checkpacket(pm->data)) { + int slotnum = pm->data[0] & 0x0f; + pm->slots[slotnum].active = pm->data[0] & 0x30; + pm->slots[slotnum].x = pm->data[2] * 256 + pm->data[1]; + pm->slots[slotnum].y = pm->data[4] * 256 + pm->data[3]; + pm_mtevent(pm, dev); + } + pm->idx = 0; + } +} + +static void pm_parse_6250(struct pm *pm) +{ + struct input_dev *dev = pm->dev; + + if ((pm->data[0] & 0xb0) == 0x30 && pm->packetsize == ++pm->idx) { + if (pm_checkpacket(pm->data)) { + int slotnum = pm->data[0] & 0x0f; + pm->slots[slotnum].active = pm->data[0] & 0x40; + pm->slots[slotnum].x = pm->data[2] * 256 + pm->data[1]; + pm->slots[slotnum].y = pm->data[4] * 256 + pm->data[3]; + pm_mtevent(pm, dev); + } + pm->idx = 0; + } +} + +static irqreturn_t pm_interrupt(struct serio *serio, + unsigned char data, unsigned int flags) +{ + struct pm *pm = serio_get_drvdata(serio); + + pm->data[pm->idx] = data; + + pm->parse_packet(pm); + + return IRQ_HANDLED; +} + +/* + * pm_disconnect() is the opposite of pm_connect() + */ + +static void pm_disconnect(struct serio *serio) +{ + struct pm *pm = serio_get_drvdata(serio); + + serio_close(serio); + + input_unregister_device(pm->dev); + kfree(pm); + + serio_set_drvdata(serio, NULL); +} + +/* + * pm_connect() is the routine that is called when someone adds a + * new serio device that supports PenMount protocol and registers it as + * an input device. + */ + +static int pm_connect(struct serio *serio, struct serio_driver *drv) +{ + struct pm *pm; + struct input_dev *input_dev; + int max_x, max_y; + int err; + + pm = kzalloc(sizeof(struct pm), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!pm || !input_dev) { + err = -ENOMEM; + goto fail1; + } + + pm->serio = serio; + pm->dev = input_dev; + snprintf(pm->phys, sizeof(pm->phys), "%s/input0", serio->phys); + pm->maxcontacts = 1; + + input_dev->name = "PenMount Serial TouchScreen"; + input_dev->phys = pm->phys; + input_dev->id.bustype = BUS_RS232; + input_dev->id.vendor = SERIO_PENMOUNT; + input_dev->id.product = 0; + input_dev->id.version = 0x0100; + input_dev->dev.parent = &serio->dev; + + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + + switch (serio->id.id) { + default: + case 0: + pm->packetsize = 5; + pm->parse_packet = pm_parse_9000; + input_dev->id.product = 0x9000; + max_x = max_y = 0x3ff; + break; + + case 1: + pm->packetsize = 6; + pm->parse_packet = pm_parse_6000; + input_dev->id.product = 0x6000; + max_x = max_y = 0x3ff; + break; + + case 2: + pm->packetsize = 6; + pm->parse_packet = pm_parse_3000; + input_dev->id.product = 0x3000; + max_x = max_y = 0x7ff; + pm->maxcontacts = PM_3000_MTSLOT; + break; + + case 3: + pm->packetsize = 6; + pm->parse_packet = pm_parse_6250; + input_dev->id.product = 0x6250; + max_x = max_y = 0x3ff; + pm->maxcontacts = PM_6250_MTSLOT; + break; + } + + input_set_abs_params(pm->dev, ABS_X, 0, max_x, 0, 0); + input_set_abs_params(pm->dev, ABS_Y, 0, max_y, 0, 0); + + if (pm->maxcontacts > 1) { + input_mt_init_slots(pm->dev, pm->maxcontacts, 0); + input_set_abs_params(pm->dev, + ABS_MT_POSITION_X, 0, max_x, 0, 0); + input_set_abs_params(pm->dev, + ABS_MT_POSITION_Y, 0, max_y, 0, 0); + } + + serio_set_drvdata(serio, pm); + + err = serio_open(serio, drv); + if (err) + goto fail2; + + err = input_register_device(pm->dev); + if (err) + goto fail3; + + return 0; + + fail3: serio_close(serio); + fail2: serio_set_drvdata(serio, NULL); + fail1: input_free_device(input_dev); + kfree(pm); + return err; +} + +/* + * The serio driver structure. + */ + +static struct serio_device_id pm_serio_ids[] = { + { + .type = SERIO_RS232, + .proto = SERIO_PENMOUNT, + .id = SERIO_ANY, + .extra = SERIO_ANY, + }, + { 0 } +}; + +MODULE_DEVICE_TABLE(serio, pm_serio_ids); + +static struct serio_driver pm_drv = { + .driver = { + .name = "serio-penmount", + }, + .description = DRIVER_DESC, + .id_table = pm_serio_ids, + .interrupt = pm_interrupt, + .connect = pm_connect, + .disconnect = pm_disconnect, +}; + +module_serio_driver(pm_drv); diff --git a/drivers/input/touchscreen/pixcir_i2c_ts.c b/drivers/input/touchscreen/pixcir_i2c_ts.c new file mode 100644 index 00000000..6cc6b366 --- /dev/null +++ b/drivers/input/touchscreen/pixcir_i2c_ts.c @@ -0,0 +1,229 @@ +/* + * Driver for Pixcir I2C touchscreen controllers. + * + * Copyright (C) 2010-2011 Pixcir, 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. + * + * You should have received a copy of the GNU General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include +#include + +struct pixcir_i2c_ts_data { + struct i2c_client *client; + struct input_dev *input; + const struct pixcir_ts_platform_data *chip; + bool exiting; +}; + +static void pixcir_ts_poscheck(struct pixcir_i2c_ts_data *data) +{ + struct pixcir_i2c_ts_data *tsdata = data; + u8 rdbuf[10], wrbuf[1] = { 0 }; + u8 touch; + int ret; + + ret = i2c_master_send(tsdata->client, wrbuf, sizeof(wrbuf)); + if (ret != sizeof(wrbuf)) { + dev_err(&tsdata->client->dev, + "%s: i2c_master_send failed(), ret=%d\n", + __func__, ret); + return; + } + + ret = i2c_master_recv(tsdata->client, rdbuf, sizeof(rdbuf)); + if (ret != sizeof(rdbuf)) { + dev_err(&tsdata->client->dev, + "%s: i2c_master_recv failed(), ret=%d\n", + __func__, ret); + return; + } + + touch = rdbuf[0]; + if (touch) { + u16 posx1 = (rdbuf[3] << 8) | rdbuf[2]; + u16 posy1 = (rdbuf[5] << 8) | rdbuf[4]; + u16 posx2 = (rdbuf[7] << 8) | rdbuf[6]; + u16 posy2 = (rdbuf[9] << 8) | rdbuf[8]; + + input_report_key(tsdata->input, BTN_TOUCH, 1); + input_report_abs(tsdata->input, ABS_X, posx1); + input_report_abs(tsdata->input, ABS_Y, posy1); + + input_report_abs(tsdata->input, ABS_MT_POSITION_X, posx1); + input_report_abs(tsdata->input, ABS_MT_POSITION_Y, posy1); + input_mt_sync(tsdata->input); + + if (touch == 2) { + input_report_abs(tsdata->input, + ABS_MT_POSITION_X, posx2); + input_report_abs(tsdata->input, + ABS_MT_POSITION_Y, posy2); + input_mt_sync(tsdata->input); + } + } else { + input_report_key(tsdata->input, BTN_TOUCH, 0); + } + + input_sync(tsdata->input); +} + +static irqreturn_t pixcir_ts_isr(int irq, void *dev_id) +{ + struct pixcir_i2c_ts_data *tsdata = dev_id; + + while (!tsdata->exiting) { + pixcir_ts_poscheck(tsdata); + + if (tsdata->chip->attb_read_val()) + break; + + msleep(20); + } + + return IRQ_HANDLED; +} + +#ifdef CONFIG_PM_SLEEP +static int pixcir_i2c_ts_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + + if (device_may_wakeup(&client->dev)) + enable_irq_wake(client->irq); + + return 0; +} + +static int pixcir_i2c_ts_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + + if (device_may_wakeup(&client->dev)) + disable_irq_wake(client->irq); + + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(pixcir_dev_pm_ops, + pixcir_i2c_ts_suspend, pixcir_i2c_ts_resume); + +static int pixcir_i2c_ts_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + const struct pixcir_ts_platform_data *pdata = client->dev.platform_data; + struct pixcir_i2c_ts_data *tsdata; + struct input_dev *input; + int error; + + if (!pdata) { + dev_err(&client->dev, "platform data not defined\n"); + return -EINVAL; + } + + tsdata = kzalloc(sizeof(*tsdata), GFP_KERNEL); + input = input_allocate_device(); + if (!tsdata || !input) { + dev_err(&client->dev, "Failed to allocate driver data!\n"); + error = -ENOMEM; + goto err_free_mem; + } + + tsdata->client = client; + tsdata->input = input; + tsdata->chip = pdata; + + input->name = client->name; + input->id.bustype = BUS_I2C; + input->dev.parent = &client->dev; + + __set_bit(EV_KEY, input->evbit); + __set_bit(EV_ABS, input->evbit); + __set_bit(BTN_TOUCH, input->keybit); + input_set_abs_params(input, ABS_X, 0, pdata->x_max, 0, 0); + input_set_abs_params(input, ABS_Y, 0, pdata->y_max, 0, 0); + input_set_abs_params(input, ABS_MT_POSITION_X, 0, pdata->x_max, 0, 0); + input_set_abs_params(input, ABS_MT_POSITION_Y, 0, pdata->y_max, 0, 0); + + input_set_drvdata(input, tsdata); + + error = request_threaded_irq(client->irq, NULL, pixcir_ts_isr, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + client->name, tsdata); + if (error) { + dev_err(&client->dev, "Unable to request touchscreen IRQ.\n"); + goto err_free_mem; + } + + error = input_register_device(input); + if (error) + goto err_free_irq; + + i2c_set_clientdata(client, tsdata); + device_init_wakeup(&client->dev, 1); + + return 0; + +err_free_irq: + free_irq(client->irq, tsdata); +err_free_mem: + input_free_device(input); + kfree(tsdata); + return error; +} + +static int pixcir_i2c_ts_remove(struct i2c_client *client) +{ + struct pixcir_i2c_ts_data *tsdata = i2c_get_clientdata(client); + + device_init_wakeup(&client->dev, 0); + + tsdata->exiting = true; + mb(); + free_irq(client->irq, tsdata); + + input_unregister_device(tsdata->input); + kfree(tsdata); + + return 0; +} + +static const struct i2c_device_id pixcir_i2c_ts_id[] = { + { "pixcir_ts", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, pixcir_i2c_ts_id); + +static struct i2c_driver pixcir_i2c_ts_driver = { + .driver = { + .owner = THIS_MODULE, + .name = "pixcir_ts", + .pm = &pixcir_dev_pm_ops, + }, + .probe = pixcir_i2c_ts_probe, + .remove = pixcir_i2c_ts_remove, + .id_table = pixcir_i2c_ts_id, +}; + +module_i2c_driver(pixcir_i2c_ts_driver); + +MODULE_AUTHOR("Jianchun Bian , Dequan Meng "); +MODULE_DESCRIPTION("Pixcir I2C Touchscreen Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/qt602240_ts.c b/drivers/input/touchscreen/qt602240_ts.c new file mode 100644 index 00000000..59fa8b64 --- /dev/null +++ b/drivers/input/touchscreen/qt602240_ts.c @@ -0,0 +1,1679 @@ +/* + * AT42QT602240/ATMXT224 Touchscreen driver + * + * Copyright (C) 2010 Samsung Electronics Co.Ltd + * Author: Joonyoung Shim + * + * 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. + * + */ + +#include +#include +#include +#include +#include +//#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Version */ +#define QT602240_VER_16 16 +#define QT602240_VER_20 20 +#define QT602240_VER_21 21 +#define QT602240_VER_22 22 +#define QT602240_VER_32 32 + +/* Slave addresses */ +#define QT602240_APP_LOW 0x4a +#define QT602240_APP_HIGH 0x4b +#define QT602240_BOOT_LOW 0x24 +#define QT602240_BOOT_HIGH 0x25 + +/* Firmware */ +#define QT602240_FW_NAME "qt602240.fw" + +/* Registers */ +#define QT602240_FAMILY_ID 0x00 +#define QT602240_VARIANT_ID 0x01 +#define QT602240_VERSION 0x02 +#define QT602240_BUILD 0x03 +#define QT602240_MATRIX_X_SIZE 0x04 +#define QT602240_MATRIX_Y_SIZE 0x05 +#define QT602240_OBJECT_NUM 0x06 +#define QT602240_OBJECT_START 0x07 + +#define QT602240_OBJECT_SIZE 6 + +/* Object types */ +#define QT602240_DEBUG_DIAGNOSTIC 37 +#define QT602240_GEN_MESSAGE 5 +#define QT602240_GEN_COMMAND 6 +#define QT602240_GEN_POWER 7 +#define QT602240_GEN_ACQUIRE 8 +#define QT602240_TOUCH_MULTI 9 +#define QT602240_TOUCH_KEYARRAY 15 +#define QT602240_TOUCH_PROXIMITY 23 +#define QT602240_PROCI_GRIPFACE 20 +#define QT602240_PROCG_NOISE 22 +#define QT602240_PROCI_ONETOUCH 24 +#define QT602240_PROCI_TWOTOUCH 27 +#define QT602240_SPT_COMMSCONFIG 18 /* firmware ver 21 over */ +#define QT602240_SPT_GPIOPWM 19 +#define QT602240_SPT_SELFTEST 25 +#define QT602240_SPT_CTECONFIG 28 +#define QT602240_SPT_USERDATA 38 /* firmware ver 21 over */ + +/* QT602240_GEN_COMMAND field */ +#define QT602240_COMMAND_RESET 0 +#define QT602240_COMMAND_BACKUPNV 1 +#define QT602240_COMMAND_CALIBRATE 2 +#define QT602240_COMMAND_REPORTALL 3 +#define QT602240_COMMAND_DIAGNOSTIC 5 + +/* QT602240_GEN_POWER field */ +#define QT602240_POWER_IDLEACQINT 0 +#define QT602240_POWER_ACTVACQINT 1 +#define QT602240_POWER_ACTV2IDLETO 2 + +/* QT602240_GEN_ACQUIRE field */ +#define QT602240_ACQUIRE_CHRGTIME 0 +#define QT602240_ACQUIRE_TCHDRIFT 2 +#define QT602240_ACQUIRE_DRIFTST 3 +#define QT602240_ACQUIRE_TCHAUTOCAL 4 +#define QT602240_ACQUIRE_SYNC 5 +#define QT602240_ACQUIRE_ATCHCALST 6 +#define QT602240_ACQUIRE_ATCHCALSTHR 7 + +/* QT602240_TOUCH_MULTI field */ +#define QT602240_TOUCH_CTRL 0 +#define QT602240_TOUCH_XORIGIN 1 +#define QT602240_TOUCH_YORIGIN 2 +#define QT602240_TOUCH_XSIZE 3 +#define QT602240_TOUCH_YSIZE 4 +#define QT602240_TOUCH_BLEN 6 +#define QT602240_TOUCH_TCHTHR 7 +#define QT602240_TOUCH_TCHDI 8 +#define QT602240_TOUCH_ORIENT 9 +#define QT602240_TOUCH_MOVHYSTI 11 +#define QT602240_TOUCH_MOVHYSTN 12 +#define QT602240_TOUCH_NUMTOUCH 14 +#define QT602240_TOUCH_MRGHYST 15 +#define QT602240_TOUCH_MRGTHR 16 +#define QT602240_TOUCH_AMPHYST 17 +#define QT602240_TOUCH_XRANGE_LSB 18 +#define QT602240_TOUCH_XRANGE_MSB 19 +#define QT602240_TOUCH_YRANGE_LSB 20 +#define QT602240_TOUCH_YRANGE_MSB 21 +#define QT602240_TOUCH_XLOCLIP 22 +#define QT602240_TOUCH_XHICLIP 23 +#define QT602240_TOUCH_YLOCLIP 24 +#define QT602240_TOUCH_YHICLIP 25 +#define QT602240_TOUCH_XEDGECTRL 26 +#define QT602240_TOUCH_XEDGEDIST 27 +#define QT602240_TOUCH_YEDGECTRL 28 +#define QT602240_TOUCH_YEDGEDIST 29 +#define QT602240_TOUCH_JUMPLIMIT 30 /* firmware ver 22 over */ + +/* QT602240_PROCI_GRIPFACE field */ +#define QT602240_GRIPFACE_CTRL 0 +#define QT602240_GRIPFACE_XLOGRIP 1 +#define QT602240_GRIPFACE_XHIGRIP 2 +#define QT602240_GRIPFACE_YLOGRIP 3 +#define QT602240_GRIPFACE_YHIGRIP 4 +#define QT602240_GRIPFACE_MAXTCHS 5 +#define QT602240_GRIPFACE_SZTHR1 7 +#define QT602240_GRIPFACE_SZTHR2 8 +#define QT602240_GRIPFACE_SHPTHR1 9 +#define QT602240_GRIPFACE_SHPTHR2 10 +#define QT602240_GRIPFACE_SUPEXTTO 11 + +/* QT602240_PROCI_NOISE field */ +#define QT602240_NOISE_CTRL 0 +#define QT602240_NOISE_OUTFLEN 1 +#define QT602240_NOISE_GCAFUL_LSB 3 +#define QT602240_NOISE_GCAFUL_MSB 4 +#define QT602240_NOISE_GCAFLL_LSB 5 +#define QT602240_NOISE_GCAFLL_MSB 6 +#define QT602240_NOISE_ACTVGCAFVALID 7 +#define QT602240_NOISE_NOISETHR 8 +#define QT602240_NOISE_FREQHOPSCALE 10 +#define QT602240_NOISE_FREQ0 11 +#define QT602240_NOISE_FREQ1 12 +#define QT602240_NOISE_FREQ2 13 +#define QT602240_NOISE_FREQ3 14 +#define QT602240_NOISE_FREQ4 15 +#define QT602240_NOISE_IDLEGCAFVALID 16 + +/* QT602240_SPT_COMMSCONFIG */ +#define QT602240_COMMS_CTRL 0 +#define QT602240_COMMS_CMD 1 + +/* QT602240_SPT_CTECONFIG field */ +#define QT602240_CTE_CTRL 0 +#define QT602240_CTE_CMD 1 +#define QT602240_CTE_MODE 2 +#define QT602240_CTE_IDLEGCAFDEPTH 3 +#define QT602240_CTE_ACTVGCAFDEPTH 4 +#define QT602240_CTE_VOLTAGE 5 /* firmware ver 21 over */ + +#define QT602240_VOLTAGE_DEFAULT 2700000 +#define QT602240_VOLTAGE_STEP 10000 + +/* Define for QT602240_GEN_COMMAND */ +#define QT602240_BOOT_VALUE 0xa5 +#define QT602240_BACKUP_VALUE 0x55 +#define QT602240_BACKUP_TIME 25 /* msec */ +#define QT602240_RESET_TIME 100 /* msec */ + +#define QT602240_FWRESET_TIME 175 /* msec */ + +/* Command to unlock bootloader */ +#define QT602240_UNLOCK_CMD_MSB 0xaa +#define QT602240_UNLOCK_CMD_LSB 0xdc + +/* Bootloader mode status */ +#define QT602240_WAITING_BOOTLOAD_CMD 0xc0 /* valid 7 6 bit only */ +#define QT602240_WAITING_FRAME_DATA 0x80 /* valid 7 6 bit only */ +#define QT602240_FRAME_CRC_CHECK 0x02 +#define QT602240_FRAME_CRC_FAIL 0x03 +#define QT602240_FRAME_CRC_PASS 0x04 +#define QT602240_APP_CRC_FAIL 0x40 /* valid 7 8 bit only */ +#define QT602240_BOOT_STATUS_MASK 0x3f + +/* Touch status */ +#define QT602240_SUPPRESS (1 << 1) +#define QT602240_AMP (1 << 2) +#define QT602240_VECTOR (1 << 3) +#define QT602240_MOVE (1 << 4) +#define QT602240_RELEASE (1 << 5) +#define QT602240_PRESS (1 << 6) +#define QT602240_DETECT (1 << 7) + +/* Touchscreen absolute values */ +#define QT602240_MAX_XC 539 +#define QT602240_MAX_YC 959 +#define QT602240_MAX_XW 539 +#define QT602240_MAX_YH 1023 +#define QT602240_MAX_AREA 0xff + +#define QT602240_MAX_FINGER 10 + +#define TOUCH_VIRTUAL_KEYS + +extern int sprd_3rdparty_gpio_tp_rst ; +extern int sprd_3rdparty_gpio_tp_irq ; + +static int qt602240_irq; + +/* Initial register values recommended from chip vendor */ +//mxt112E, version=1.0 (0x10) +static const u8 init_vals_ver_16[] = { + + + /* QT602240_GEN_COMMAND(6) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_SPT_USERDATA(38) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_GEN_POWER(7) */ + 0x20, 0x10, 0x32, + /* QT602240_GEN_ACQUIRE(8) */ + 0x10, 0x00, 0x05, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + /* QT602240_TOUCH_MULTI(9) */ + 0x83, 0x00, 0x00, 0x0d, 0x08, 0x00, 0x10, 60, 0x02, 0x05, + 0x00, 0x05, 0x05, 0x00, 0x04, 0x0a, 0x0a, 0x0a, 0x1f, 0x03, + 0xdf, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_SPT_COMMCFG(18) */ + 0x00, 0x00, + /* QT602240_SPT_SELFTEST(25) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_PROCI_GRIP(40) */ + 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_PROCI_TOUCH(42) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_SPT_CTECONFIG(46) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_PROCI_STYLUS(47) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_PROCI_NOISE(48) */ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 100, 0x04, 64, + 0x00, 0x00, 20, 0x00, 0x00, 28, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, +}; + +static const u8 init_vals_ver_20[] = { + /* QT602240_GEN_COMMAND(6) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_GEN_POWER(7) */ + 0x20, 0xff, 0x32, + /* QT602240_GEN_ACQUIRE(8) */ + 0x08, 0x05, 0x05, 0x00, 0x00, 0x00, 0x05, 0x14, + /* QT602240_TOUCH_MULTI(9) */ + 0x00, 0x00, 0x00, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x01, 0x01, 0x0e, 0x0a, 0x0a, 0x0a, 0x0a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x64, + /* QT602240_TOUCH_KEYARRAY(15) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, + /* QT602240_SPT_GPIOPWM(19) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + /* QT602240_PROCI_GRIPFACE(20) */ + 0x00, 0x64, 0x64, 0x64, 0x64, 0x00, 0x00, 0x1e, 0x14, 0x04, + 0x1e, 0x00, + /* QT602240_PROCG_NOISE(22) */ + 0x05, 0x00, 0x00, 0x19, 0x00, 0xe7, 0xff, 0x04, 0x32, 0x00, + 0x01, 0x0a, 0x0f, 0x14, 0x00, 0x00, 0xe8, + /* QT602240_TOUCH_PROXIMITY(23) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, + /* QT602240_PROCI_ONETOUCH(24) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_SPT_SELFTEST(25) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + /* QT602240_PROCI_TWOTOUCH(27) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_SPT_CTECONFIG(28) */ + 0x00, 0x00, 0x00, 0x04, 0x08, +}; + +static const u8 init_vals_ver_21[] = { + /* QT602240_GEN_COMMAND(6) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_GEN_POWER(7) */ + 0x20, 0xff, 0x32, + /* QT602240_GEN_ACQUIRE(8) */ + 0x0a, 0x00, 0x05, 0x00, 0x00, 0x00, 0x09, 0x23, + /* QT602240_TOUCH_MULTI(9) */ + 0x00, 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x01, 0x01, 0x0e, 0x0a, 0x0a, 0x0a, 0x0a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_TOUCH_KEYARRAY(15) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, + /* QT602240_SPT_GPIOPWM(19) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_PROCI_GRIPFACE(20) */ + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x28, 0x04, + 0x0f, 0x0a, + /* QT602240_PROCG_NOISE(22) */ + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, + 0x00, 0x05, 0x0f, 0x19, 0x23, 0x2d, 0x03, + /* QT602240_TOUCH_PROXIMITY(23) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, + /* QT602240_PROCI_ONETOUCH(24) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_SPT_SELFTEST(25) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + /* QT602240_PROCI_TWOTOUCH(27) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_SPT_CTECONFIG(28) */ + 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, +}; + +static const u8 init_vals_ver_22[] = { + /* QT602240_GEN_COMMAND(6) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_GEN_POWER(7) */ + 0x20, 0x10, 0x32, + /* QT602240_GEN_ACQUIRE(8) */ + 0x0a, 0x00, 0x05, 0x00, 0x00, 0x00, 0x09, 0x23, + /* QT602240_TOUCH_MULTI(9) */ + 0x00, 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x01, 0x01, 0x0e, 0x0a, 0x0a, 0x0a, 0x0a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, + /* QT602240_TOUCH_KEYARRAY(15) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, + /* QT602240_SPT_GPIOPWM(19) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_PROCI_GRIPFACE(20) */ + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x28, 0x04, + 0x0f, 0x0a, + /* QT602240_PROCG_NOISE(22) */ + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, + 0x00, 0x05, 0x0f, 0x19, 0x23, 0x2d, 0x03, + /* QT602240_TOUCH_PROXIMITY(23) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_PROCI_ONETOUCH(24) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_SPT_SELFTEST(25) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + /* QT602240_PROCI_TWOTOUCH(27) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_SPT_CTECONFIG(28) */ + 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, +}; + +static const u8 init_vals_ver_32[] = { + /* QT602240_GEN_COMMAND(6) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_GEN_POWER(7) */ + 0x1e, 0xff, 0x32, + /* QT602240_GEN_ACQUIRE(8) */ + 0x06, 0x00, 0x14, 0x14, 0x00, 0x00, 0x05, 0x14, 0x00, 0x00, + /* QT602240_TOUCH_MULTI(9) */ + 0x83, 0x00, 0x00, 0x13, 0x0b, 0x01, 0x20, 0x32, 0x03, 0x01, + 0x0a, 0x06, 0x03, 0x3f, 0x05, 0x1e, 0x1e, 0x1e, 0xff, 0x03, + 0x1b, 0x02, 0x11, 0x0a, 0x0f, 0x13, 0xd0, 0x2b, 0xd0, 0x52, + 0x12, 0x0a, + /* QT602240_TOUCH_KEYARRAY(15) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, + /* QT602240_SPT_GPIOPWM(19) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_PROCI_GRIPFACE(20) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + /* QT602240_PROCG_NOISE(22) */ + 0x8d, 0x00, 0x00, 0x19, 0x00, 0xe7, 0xff, 0x04, 0x32, 0x00, + 0x00, 0x10, 0x1f, 0x39, 0x41, 0x10, 0x04, + /* QT602240_TOUCH_PROXIMITY(23) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_PROCI_ONETOUCH(24) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* QT602240_SPT_SELFTEST(25) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + /* QT602240_SPT_CTECONFIG(28) */ + 0x00, 0x00, 0x03, 0x10, 0x10, 0x1e, +}; + + +struct qt602240_info { + u8 family_id; + u8 variant_id; + u8 version; + u8 build; + u8 matrix_xsize; + u8 matrix_ysize; + u8 object_num; +}; + +struct qt602240_object { + u8 type; + u16 start_address; + u8 size; + u8 instances; + u8 num_report_ids; + + /* to map object and message */ + u8 max_reportid; +}; + +struct qt602240_message { + u8 reportid; + u8 message[7]; + u8 checksum; +}; + +struct qt602240_finger { + int status; + int x; + int y; + int area; +}; + +static ssize_t qt602240_set_calibrate(struct device* cd, struct device_attribute *attr, + const char* buf, size_t len); + +/* Each client has this additional data */ +struct qt602240_data { + struct i2c_client *client; + struct input_dev *input_dev; + const struct qt602240_platform_data *pdata; + struct qt602240_object *object_table; + struct qt602240_info info; + struct qt602240_finger finger[QT602240_MAX_FINGER]; + struct early_suspend qt602240_early_suspend; + unsigned int irq; +}; +static struct qt602240_data *g_qt602240_ts; +static bool qt602240_object_readable(unsigned int type) +{ + switch (type) { + case QT602240_GEN_MESSAGE: + case QT602240_GEN_COMMAND: + case QT602240_GEN_POWER: + case QT602240_GEN_ACQUIRE: + case QT602240_TOUCH_MULTI: + case QT602240_TOUCH_KEYARRAY: + case QT602240_TOUCH_PROXIMITY: + case QT602240_PROCI_GRIPFACE: + case QT602240_PROCG_NOISE: + case QT602240_PROCI_ONETOUCH: + case QT602240_PROCI_TWOTOUCH: + case QT602240_SPT_COMMSCONFIG: + case QT602240_SPT_GPIOPWM: + case QT602240_SPT_SELFTEST: + case QT602240_SPT_CTECONFIG: + case QT602240_SPT_USERDATA: + return true; + default: + return false; + } +} + +static bool qt602240_object_writable(unsigned int type) +{ + switch (type) { + case QT602240_GEN_COMMAND: + case QT602240_GEN_POWER: + case QT602240_GEN_ACQUIRE: + case QT602240_TOUCH_MULTI: + case QT602240_TOUCH_KEYARRAY: + case QT602240_TOUCH_PROXIMITY: + case QT602240_PROCI_GRIPFACE: + case QT602240_PROCG_NOISE: + case QT602240_PROCI_ONETOUCH: + case QT602240_PROCI_TWOTOUCH: + case QT602240_SPT_GPIOPWM: + case QT602240_SPT_SELFTEST: + case QT602240_SPT_CTECONFIG: + return true; + default: + return false; + } +} + +static void qt602240_dump_message(struct device *dev, + struct qt602240_message *message) +{ + dev_dbg(dev, "reportid:\t0x%x\n", message->reportid); + dev_dbg(dev, "message1:\t0x%x\n", message->message[0]); + dev_dbg(dev, "message2:\t0x%x\n", message->message[1]); + dev_dbg(dev, "message3:\t0x%x\n", message->message[2]); + dev_dbg(dev, "message4:\t0x%x\n", message->message[3]); + dev_dbg(dev, "message5:\t0x%x\n", message->message[4]); + dev_dbg(dev, "message6:\t0x%x\n", message->message[5]); + dev_dbg(dev, "message7:\t0x%x\n", message->message[6]); + dev_dbg(dev, "checksum:\t0x%x\n", message->checksum); +} + +static int qt602240_check_bootloader(struct i2c_client *client, + unsigned int state) +{ + u8 val; + +recheck: + if (i2c_master_recv(client, &val, 1) != 1) { + dev_err(&client->dev, "%s: i2c recv failed\n", __func__); + return -EIO; + } + + switch (state) { + case QT602240_WAITING_BOOTLOAD_CMD: + case QT602240_WAITING_FRAME_DATA: + val &= ~QT602240_BOOT_STATUS_MASK; + break; + case QT602240_FRAME_CRC_PASS: + if (val == QT602240_FRAME_CRC_CHECK) + goto recheck; + break; + default: + return -EINVAL; + } + + if (val != state) { + dev_err(&client->dev, "Unvalid bootloader mode state\n"); + return -EINVAL; + } + + return 0; +} + +static int qt602240_unlock_bootloader(struct i2c_client *client) +{ + u8 buf[2]; + + buf[0] = QT602240_UNLOCK_CMD_LSB; + buf[1] = QT602240_UNLOCK_CMD_MSB; + + if (i2c_master_send(client, buf, 2) != 2) { + dev_err(&client->dev, "%s: i2c send failed\n", __func__); + return -EIO; + } + + return 0; +} + +static int qt602240_fw_write(struct i2c_client *client, + const u8 *data, unsigned int frame_size) +{ + if (i2c_master_send(client, data, frame_size) != frame_size) { + dev_err(&client->dev, "%s: i2c send failed\n", __func__); + return -EIO; + } + + return 0; +} + +static int __qt602240_read_reg(struct i2c_client *client, + u16 reg, u16 len, void *val) +{ + struct i2c_msg xfer[2]; + u8 buf[2]; + + buf[0] = reg & 0xff; + buf[1] = (reg >> 8) & 0xff; + + /* Write register */ + xfer[0].addr = client->addr; + xfer[0].flags = 0; + xfer[0].len = 2; + xfer[0].buf = buf; + + /* Read data */ + xfer[1].addr = client->addr; + xfer[1].flags = I2C_M_RD; + xfer[1].len = len; + xfer[1].buf = val; + + if (i2c_transfer(client->adapter, xfer, 2) != 2) { + dev_err(&client->dev, "%s: i2c transfer failed\n", __func__); + return -EIO; + } + + return 0; +} + +static int qt602240_read_reg(struct i2c_client *client, u16 reg, u8 *val) +{ + return __qt602240_read_reg(client, reg, 1, val); +} + +static int qt602240_write_reg(struct i2c_client *client, u16 reg, u8 val) +{ + u8 buf[3]; + + buf[0] = reg & 0xff; + buf[1] = (reg >> 8) & 0xff; + buf[2] = val; + + if (i2c_master_send(client, buf, 3) != 3) { + dev_err(&client->dev, "%s: i2c send failed\n", __func__); + return -EIO; + } + + return 0; +} + +static int qt602240_read_object_table(struct i2c_client *client, + u16 reg, u8 *object_buf) +{ + return __qt602240_read_reg(client, reg, QT602240_OBJECT_SIZE, + object_buf); +} + +static struct qt602240_object * +qt602240_get_object(struct qt602240_data *data, u8 type) +{ + struct qt602240_object *object; + int i; + + for (i = 0; i < data->info.object_num; i++) { + object = data->object_table + i; + if (object->type == type) + return object; + } + + dev_err(&data->client->dev, "Invalid object type\n"); + return NULL; +} + +static int qt602240_read_message(struct qt602240_data *data, + struct qt602240_message *message) +{ + struct qt602240_object *object; + u16 reg; + + object = qt602240_get_object(data, QT602240_GEN_MESSAGE); + if (!object) + return -EINVAL; + + reg = object->start_address; + return __qt602240_read_reg(data->client, reg, + sizeof(struct qt602240_message), message); +} + +static int qt602240_read_object(struct qt602240_data *data, + u8 type, u8 offset, u8 *val) +{ + struct qt602240_object *object; + u16 reg; + + object = qt602240_get_object(data, type); + if (!object) + return -EINVAL; + + reg = object->start_address; + return __qt602240_read_reg(data->client, reg + offset, 1, val); +} + +static int qt602240_write_object(struct qt602240_data *data, + u8 type, u8 offset, u8 val) +{ + struct qt602240_object *object; + u16 reg; + + object = qt602240_get_object(data, type); + if (!object) + return -EINVAL; + + reg = object->start_address; + return qt602240_write_reg(data->client, reg + offset, val); +} + +#ifdef TOUCH_VIRTUAL_KEYS + +static ssize_t virtual_keys_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) +{ + return sprintf(buf, + __stringify(EV_KEY) ":" __stringify(KEY_MENU) ":100:1020:80:65" + ":" __stringify(EV_KEY) ":" __stringify(KEY_HOME) ":280:1020:80:65" + ":" __stringify(EV_KEY) ":" __stringify(KEY_BACK) ":470:1020:80:65" + "\n"); +} + +static struct kobj_attribute virtual_keys_attr = { + .attr = { + .name = "virtualkeys.qt602240_ts", + .mode = S_IRUGO, + }, + .show = &virtual_keys_show, +}; + +static struct attribute *properties_attrs[] = { + &virtual_keys_attr.attr, + NULL +}; + +static struct attribute_group properties_attr_group = { + .attrs = properties_attrs, +}; + +static void qt602240_ts_virtual_keys_init(void) +{ + int ret; + struct kobject *properties_kobj; + + printk("%s\n",__func__); + + properties_kobj = kobject_create_and_add("board_properties", NULL); + if (properties_kobj) + ret = sysfs_create_group(properties_kobj, + &properties_attr_group); + if (!properties_kobj || ret) + pr_err("failed to create board_properties\n"); +} + +#endif + +static DEVICE_ATTR(calibrate, S_IRUGO | S_IWUSR, NULL, qt602240_set_calibrate); + +static ssize_t qt602240_set_calibrate(struct device* cd, struct device_attribute *attr, + const char* buf, size_t len) +{ + unsigned long on_off = simple_strtoul(buf, NULL, 10); + struct i2c_client *client = to_i2c_client(cd); + struct qt602240_data *data = i2c_get_clientdata(client); + + if(on_off==1) + { + printk("qt602240 calibrate\n"); + qt602240_write_object(data, QT602240_GEN_COMMAND, + QT602240_COMMAND_CALIBRATE, 1); + msleep(1000); + } + + return len; +} + +static int qt602240_create_sysfs(struct i2c_client *client) +{ + int err; + struct device *dev = &(client->dev); + + printk("%s\n", __func__); + + err = device_create_file(dev, &dev_attr_calibrate); + + return err; +} + +static void qt602240_input_report(struct qt602240_data *data, int single_id) +{ + struct qt602240_finger *finger = data->finger; + struct input_dev *input_dev = data->input_dev; + int status = finger[single_id].status; + int finger_num = 0; + int id; + + for (id = 0; id < QT602240_MAX_FINGER; id++) { + if (!finger[id].status) + continue; + + input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, + finger[id].status != QT602240_RELEASE ? + finger[id].area : 0); + input_report_abs(input_dev, ABS_MT_POSITION_X, + finger[id].x); + input_report_abs(input_dev, ABS_MT_POSITION_Y, + finger[id].y); + input_mt_sync(input_dev); + + if (finger[id].status == QT602240_RELEASE) + finger[id].status = 0; + else + finger_num++; + } + + input_report_key(input_dev, BTN_TOUCH, finger_num > 0); + + if (status != QT602240_RELEASE) { + input_report_abs(input_dev, ABS_X, finger[single_id].x); + input_report_abs(input_dev, ABS_Y, finger[single_id].y); + } + input_sync(input_dev); +} + +static void qt602240_input_touchevent(struct qt602240_data *data, + struct qt602240_message *message, int id) +{ + struct qt602240_finger *finger = data->finger; + struct device *dev = &data->client->dev; + struct input_dev *input_dev = data->input_dev; + u8 status = message->message[0]; + int x; + int y; + int area; + + /* Check the touch is present on the screen */ + if (!(status & QT602240_DETECT)) { + if (status & QT602240_RELEASE) { + dev_dbg(dev, "[%d] released\n", id); + + finger[id].status = QT602240_RELEASE; + qt602240_input_report(data, id); + } + return; + } + + /* Check only AMP detection */ + if (!(status & (QT602240_PRESS | QT602240_MOVE))) + return; + + x = (message->message[1] << 2) | ((message->message[3] & ~0x3f) >> 6); + y = (message->message[2] << 2) | ((message->message[3] & ~0xf3) >> 2); + area = message->message[4]; + + finger[id].status = status & QT602240_MOVE ? + QT602240_MOVE : QT602240_PRESS; + finger[id].x = QT602240_MAX_XW - x; + finger[id].y = QT602240_MAX_YH - y; + finger[id].area = area; + + dev_dbg(dev, "[%d] %s x: %d, y: %d, area: %d\n", id, + status & QT602240_MOVE ? "moved" : "pressed", + finger[id].x, finger[id].y, area); + + qt602240_input_report(data, id); +} + +static irqreturn_t qt602240_interrupt(int irq, void *dev_id) +{ + struct qt602240_data *data = dev_id; + struct qt602240_message message; + struct qt602240_object *object; + struct device *dev = &data->client->dev; + int id; + u8 reportid; + u8 max_reportid; + u8 min_reportid; + int count = 20; + + disable_irq_nosync(data->client->irq); + + do { + if (qt602240_read_message(data, &message)) { + dev_err(dev, "Failed to read message\n"); + } + + reportid = message.reportid; + + /* whether reportid is thing of QT602240_TOUCH_MULTI */ + object = qt602240_get_object(data, QT602240_TOUCH_MULTI); + + max_reportid = object->max_reportid; + min_reportid = max_reportid - object->num_report_ids + 1; + id = reportid - min_reportid; + + if (reportid >= min_reportid && reportid <= max_reportid) + qt602240_input_touchevent(data, &message, id); + else + qt602240_dump_message(dev, &message); + } while((reportid != 0xff) && --count); + enable_irq(data->client->irq); + return IRQ_HANDLED; +} + +static int qt602240_check_reg_init(struct qt602240_data *data) +{ + struct qt602240_object *object; + struct device *dev = &data->client->dev; + int index = 0; + int i, j; + u8 version = data->info.version; + u8 *init_vals; + + switch (version) { + case QT602240_VER_16: + init_vals = (u8 *)init_vals_ver_16; + break; + case QT602240_VER_20: + init_vals = (u8 *)init_vals_ver_20; + break; + case QT602240_VER_21: + init_vals = (u8 *)init_vals_ver_21; + break; + case QT602240_VER_22: + init_vals = (u8 *)init_vals_ver_22; + break; + case QT602240_VER_32: + init_vals = (u8 *)init_vals_ver_32; + break; + default: + dev_err(dev, "Firmware version %d doesn't support\n", version); + return -EINVAL; + } + + for (i = 0; i < data->info.object_num; i++) { + object = data->object_table + i; + + if (!qt602240_object_writable(object->type)) + continue; + + for (j = 0; j < object->size + 1; j++) + qt602240_write_object(data, object->type, j, + init_vals[index + j]); + + index += object->size + 1; + } + + return 0; +} + +#if 0 +static int qt602240_check_matrix_size(struct qt602240_data *data) +{ + const struct qt602240_platform_data *pdata = data->pdata; + struct device *dev = &data->client->dev; + int mode = -1; + int error; + u8 val; + + dev_dbg(dev, "Number of X lines: %d\n", pdata->x_line); + dev_dbg(dev, "Number of Y lines: %d\n", pdata->y_line); + + switch (pdata->x_line) { + case 0 ... 15: + if (pdata->y_line <= 14) + mode = 0; + break; + case 16: + if (pdata->y_line <= 12) + mode = 1; + if (pdata->y_line == 13 || pdata->y_line == 14) + mode = 0; + break; + case 17: + if (pdata->y_line <= 11) + mode = 2; + if (pdata->y_line == 12 || pdata->y_line == 13) + mode = 1; + break; + case 18: + if (pdata->y_line <= 10) + mode = 3; + if (pdata->y_line == 11 || pdata->y_line == 12) + mode = 2; + break; + case 19: + if (pdata->y_line <= 9) + mode = 4; + if (pdata->y_line == 10 || pdata->y_line == 11) + mode = 3; + break; + case 20: + mode = 4; + } + + if (mode < 0) { + dev_err(dev, "Invalid X/Y lines\n"); + return -EINVAL; + } + + error = qt602240_read_object(data, QT602240_SPT_CTECONFIG, + QT602240_CTE_MODE, &val); + if (error) + return error; + + if (mode == val) + return 0; + + /* Change the CTE configuration */ + qt602240_write_object(data, QT602240_SPT_CTECONFIG, + QT602240_CTE_CTRL, 1); + qt602240_write_object(data, QT602240_SPT_CTECONFIG, + QT602240_CTE_MODE, mode); + qt602240_write_object(data, QT602240_SPT_CTECONFIG, + QT602240_CTE_CTRL, 0); + + return 0; +} +#endif + +static int qt602240_make_highchg(struct qt602240_data *data) +{ + struct qt602240_message message; + struct device *dev = &data->client->dev; + int count = 10; + + /* Read dummy message to make high CHG pin */ + + do { + qt602240_read_message(data, &message); + } while ((message.reportid != 0xff) && --count); + + if (!count) { + dev_err(dev, "CHG pin isn't cleared\n"); + return -EBUSY; + } + + return 0; +} +#if 0 +static void qt602240_handle_pdata(struct qt602240_data *data) +{ + const struct qt602240_platform_data *pdata = data->pdata; + u8 voltage; + + /* Set touchscreen lines */ + qt602240_write_object(data, QT602240_TOUCH_MULTI, QT602240_TOUCH_XSIZE, + pdata->x_line); + qt602240_write_object(data, QT602240_TOUCH_MULTI, QT602240_TOUCH_YSIZE, + pdata->y_line); + + /* Set touchscreen orient */ + qt602240_write_object(data, QT602240_TOUCH_MULTI, QT602240_TOUCH_ORIENT, + pdata->orient); + + /* Set touchscreen burst length */ + qt602240_write_object(data, QT602240_TOUCH_MULTI, + QT602240_TOUCH_BLEN, pdata->blen); + + /* Set touchscreen threshold */ + qt602240_write_object(data, QT602240_TOUCH_MULTI, + QT602240_TOUCH_TCHTHR, pdata->threshold); + + /* Set touchscreen resolution */ + qt602240_write_object(data, QT602240_TOUCH_MULTI, + QT602240_TOUCH_XRANGE_LSB, (pdata->x_size - 1) & 0xff); + qt602240_write_object(data, QT602240_TOUCH_MULTI, + QT602240_TOUCH_XRANGE_MSB, (pdata->x_size - 1) >> 8); + qt602240_write_object(data, QT602240_TOUCH_MULTI, + QT602240_TOUCH_YRANGE_LSB, (pdata->y_size - 1) & 0xff); + qt602240_write_object(data, QT602240_TOUCH_MULTI, + QT602240_TOUCH_YRANGE_MSB, (pdata->y_size - 1) >> 8); + + /* Set touchscreen voltage */ + if (data->info.version >= QT602240_VER_21 && pdata->voltage) { + if (pdata->voltage < QT602240_VOLTAGE_DEFAULT) { + voltage = (QT602240_VOLTAGE_DEFAULT - pdata->voltage) / + QT602240_VOLTAGE_STEP; + voltage = 0xff - voltage + 1; + } else + voltage = (pdata->voltage - QT602240_VOLTAGE_DEFAULT) / + QT602240_VOLTAGE_STEP; + + qt602240_write_object(data, QT602240_SPT_CTECONFIG, + QT602240_CTE_VOLTAGE, voltage); + } +} +#endif +static int qt602240_get_info(struct qt602240_data *data) +{ + struct i2c_client *client = data->client; + struct qt602240_info *info = &data->info; + int error; + u8 val; + + error = qt602240_read_reg(client, QT602240_FAMILY_ID, &val); + if (error) + return error; + info->family_id = val; + + error = qt602240_read_reg(client, QT602240_VARIANT_ID, &val); + if (error) + return error; + info->variant_id = val; + + error = qt602240_read_reg(client, QT602240_VERSION, &val); + if (error) + return error; + info->version = val; + + error = qt602240_read_reg(client, QT602240_BUILD, &val); + if (error) + return error; + info->build = val; + + error = qt602240_read_reg(client, QT602240_OBJECT_NUM, &val); + if (error) + return error; + info->object_num = val; + + return 0; +} + +static int qt602240_get_object_table(struct qt602240_data *data) +{ + int error; + int i; + u16 reg; + u8 reportid = 0; + u8 buf[QT602240_OBJECT_SIZE]; + + for (i = 0; i < data->info.object_num; i++) { + struct qt602240_object *object = data->object_table + i; + + reg = QT602240_OBJECT_START + QT602240_OBJECT_SIZE * i; + error = qt602240_read_object_table(data->client, reg, buf); + if (error) + return error; + + object->type = buf[0]; + object->start_address = (buf[2] << 8) | buf[1]; + object->size = buf[3]; + object->instances = buf[4]; + object->num_report_ids = buf[5]; + + if (object->num_report_ids) { + reportid += object->num_report_ids * + (object->instances + 1); + object->max_reportid = reportid; + } + } + + return 0; +} + +static void qt602240_pininit(int irq_pin, int rst_pin) +{ + printk(KERN_INFO "%s [irq=%d];[rst=%d]\n",__func__,irq_pin,rst_pin); + gpio_request(irq_pin, "ts_irq_pin"); + gpio_request(rst_pin, "ts_rst_pin"); + gpio_set_debounce(irq_pin, 1); +} + +static void qt602240_pwron(struct device *dev) +{ + struct regulator *reg_vdd; + reg_vdd = regulator_get(dev, REGU_NAME_TP); + regulator_set_voltage(reg_vdd, 2700000, 2800000); + regulator_enable(reg_vdd); + msleep(20); +} + +static void qt602240_reset(int reset_pin) +{ + gpio_direction_output(reset_pin, 1); + msleep(3); + gpio_set_value(reset_pin, 0); + msleep(10); + gpio_set_value(reset_pin,1); + msleep(30); +} + +static int qt602240_initialize(struct qt602240_data *data) +{ + struct i2c_client *client = data->client; + struct qt602240_info *info = &data->info; + int error; + u8 val; + + error = qt602240_get_info(data); + if (error) + return error; + + data->object_table = kcalloc(info->object_num, + sizeof(struct qt602240_data), + GFP_KERNEL); + if (!data->object_table) { + dev_err(&client->dev, "Failed to allocate memory\n"); + return -ENOMEM; + } + + /* Get object table information */ + error = qt602240_get_object_table(data); + if (error) + return error; + + /* Check register init values */ + error = qt602240_check_reg_init(data); + if (error) + return error; + + /* Check X/Y matrix size */ + //error = qt602240_check_matrix_size(data); + //if (error) + // return error; + + error = qt602240_make_highchg(data); + if (error) + return error; + + //qt602240_handle_pdata(data); + + /* Backup to memory */ + qt602240_write_object(data, QT602240_GEN_COMMAND, + QT602240_COMMAND_BACKUPNV, + QT602240_BACKUP_VALUE); + msleep(QT602240_BACKUP_TIME); + + /* Soft reset */ + qt602240_write_object(data, QT602240_GEN_COMMAND, + QT602240_COMMAND_RESET, 1); + msleep(QT602240_RESET_TIME); + + error = qt602240_make_highchg(data); + if (error) + return error; + + /* Update matrix size at info struct */ + error = qt602240_read_reg(client, QT602240_MATRIX_X_SIZE, &val); + if (error) + return error; + info->matrix_xsize = val; + + error = qt602240_read_reg(client, QT602240_MATRIX_Y_SIZE, &val); + if (error) + return error; + info->matrix_ysize = val; + + dev_info(&client->dev, + "Family ID: %d Variant ID: %d Version: %d Build: %d\n", + info->family_id, info->variant_id, info->version, + info->build); + + dev_info(&client->dev, + "Matrix X Size: %d Matrix Y Size: %d Object Num: %d\n", + info->matrix_xsize, info->matrix_ysize, + info->object_num); + + return 0; +} + +static ssize_t qt602240_object_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct qt602240_data *data = dev_get_drvdata(dev); + struct qt602240_object *object; + int count = 0; + int i, j; + int error; + u8 val; + + qt602240_make_highchg(data); + + for (i = 0; i < data->info.object_num; i++) { + object = data->object_table + i; + + count += sprintf(buf + count, + "Object Table Element %d(Type %d)\n", + i + 1, object->type); + + if (!qt602240_object_readable(object->type)) { + count += sprintf(buf + count, "\n"); + continue; + } + + for (j = 0; j < object->size + 1; j++) { + error = qt602240_read_object(data, + object->type, j, &val); + if (error) + return error; + + count += sprintf(buf + count, + " Byte %d: 0x%x (%d)\n", j, val, val); + } + + count += sprintf(buf + count, "\n"); + } + + return count; +} + +static int qt602240_load_fw(struct device *dev, const char *fn) +{ + struct qt602240_data *data = dev_get_drvdata(dev); + struct i2c_client *client = data->client; + const struct firmware *fw = NULL; + unsigned int frame_size; + unsigned int pos = 0; + int ret; + + ret = request_firmware(&fw, fn, dev); + if (ret) { + dev_err(dev, "Unable to open firmware %s\n", fn); + return ret; + } + + /* Change to the bootloader mode */ + qt602240_write_object(data, QT602240_GEN_COMMAND, + QT602240_COMMAND_RESET, QT602240_BOOT_VALUE); + msleep(QT602240_RESET_TIME); + + /* Change to slave address of bootloader */ + if (client->addr == QT602240_APP_LOW) + client->addr = QT602240_BOOT_LOW; + else + client->addr = QT602240_BOOT_HIGH; + + ret = qt602240_check_bootloader(client, QT602240_WAITING_BOOTLOAD_CMD); + if (ret) + goto out; + + /* Unlock bootloader */ + qt602240_unlock_bootloader(client); + + while (pos < fw->size) { + ret = qt602240_check_bootloader(client, + QT602240_WAITING_FRAME_DATA); + if (ret) + goto out; + + frame_size = ((*(fw->data + pos) << 8) | *(fw->data + pos + 1)); + + /* We should add 2 at frame size as the the firmware data is not + * included the CRC bytes. + */ + frame_size += 2; + + /* Write one frame to device */ + qt602240_fw_write(client, fw->data + pos, frame_size); + + ret = qt602240_check_bootloader(client, + QT602240_FRAME_CRC_PASS); + if (ret) + goto out; + + pos += frame_size; + + dev_dbg(dev, "Updated %d bytes / %zd bytes\n", pos, fw->size); + } + +out: + release_firmware(fw); + + /* Change to slave address of application */ + if (client->addr == QT602240_BOOT_LOW) + client->addr = QT602240_APP_LOW; + else + client->addr = QT602240_APP_HIGH; + + return ret; +} + +static ssize_t qt602240_update_fw_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct qt602240_data *data = dev_get_drvdata(dev); + unsigned int version; + int error; + + if (sscanf(buf, "%u", &version) != 1) { + dev_err(dev, "Invalid values\n"); + return -EINVAL; + } + + if (data->info.version < QT602240_VER_21 || version < QT602240_VER_21) { + dev_err(dev, "FW update supported starting with version 21\n"); + return -EINVAL; + } + + disable_irq(data->irq); + + error = qt602240_load_fw(dev, QT602240_FW_NAME); + if (error) { + dev_err(dev, "The firmware update failed(%d)\n", error); + count = error; + } else { + dev_dbg(dev, "The firmware update succeeded\n"); + + /* Wait for reset */ + msleep(QT602240_FWRESET_TIME); + + kfree(data->object_table); + data->object_table = NULL; + + qt602240_initialize(data); + } + + enable_irq(data->irq); + + return count; +} + + +static DEVICE_ATTR(object, 0444, qt602240_object_show, NULL); +static DEVICE_ATTR(update_fw, 0664, NULL, qt602240_update_fw_store); + +static struct attribute *qt602240_attrs[] = { + &dev_attr_object.attr, + &dev_attr_update_fw.attr, + NULL +}; + +static const struct attribute_group qt602240_attr_group = { + .attrs = qt602240_attrs, +}; + +static void qt602240_start(struct qt602240_data *data) +{ + /* Touch enable */ + qt602240_write_object(data, + QT602240_TOUCH_MULTI, QT602240_TOUCH_CTRL, 0x83); +} + +static void qt602240_stop(struct qt602240_data *data) +{ + /* Touch disable */ + qt602240_write_object(data, + QT602240_TOUCH_MULTI, QT602240_TOUCH_CTRL, 0); +} + +static int qt602240_input_open(struct input_dev *dev) +{ + struct qt602240_data *data = input_get_drvdata(dev); + + qt602240_start(data); + + return 0; +} + +static void qt602240_input_close(struct input_dev *dev) +{ + struct qt602240_data *data = input_get_drvdata(dev); + + qt602240_stop(data); +} + +static void qt602240_ts_suspend(struct early_suspend *handler) +{ + struct qt602240_data *data = g_qt602240_ts; + struct input_dev *input_dev = data->input_dev; + + printk(KERN_INFO "==%s==, irq=%d\n", __func__,qt602240_irq); + mutex_lock(&input_dev->mutex); + + if (input_dev->users) + qt602240_stop(data); + + mutex_unlock(&input_dev->mutex); +} + +static void qt602240_ts_resume(struct early_suspend *handler) +{ + struct qt602240_data *data = g_qt602240_ts; + struct input_dev *input_dev = data->input_dev; + + printk(KERN_INFO "==%s==, irq=%d\n", __func__,qt602240_irq); + /* Soft reset */ + qt602240_write_object(data, QT602240_GEN_COMMAND, + QT602240_COMMAND_RESET, 1); + + msleep(QT602240_RESET_TIME); + + mutex_lock(&input_dev->mutex); + + if (input_dev->users) + qt602240_start(data); + + mutex_unlock(&input_dev->mutex); +} + +static int __devinit qt602240_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct qt602240_data *data; + struct input_dev *input_dev; + struct qt602240_platform_data *pdata = client->dev.platform_data; + int error; + + if (!pdata) + return -EINVAL; + + data = kzalloc(sizeof(struct qt602240_data), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!data || !input_dev) { + dev_err(&client->dev, "Failed to allocate memory\n"); + error = -ENOMEM; + goto err_free_mem; + } + + g_qt602240_ts = data; + +#ifdef TOUCH_VIRTUAL_KEYS + qt602240_ts_virtual_keys_init(); +#endif + + input_dev->name = client->name; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + input_dev->open = qt602240_input_open; + input_dev->close = qt602240_input_close; + + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(EV_SYN, input_dev->evbit); + __set_bit(BTN_TOUCH, input_dev->keybit); + __set_bit(ABS_MT_TOUCH_MAJOR, input_dev->absbit); + __set_bit(ABS_MT_POSITION_X, input_dev->absbit); + __set_bit(ABS_MT_POSITION_Y, input_dev->absbit); + __set_bit(ABS_MT_WIDTH_MAJOR, input_dev->absbit); + __set_bit(KEY_MENU, input_dev->keybit); + __set_bit(KEY_BACK, input_dev->keybit); + __set_bit(KEY_HOME, input_dev->keybit); + + /* For single touch */ + input_set_abs_params(input_dev, ABS_X, + 0, QT602240_MAX_XC, 0, 0); + input_set_abs_params(input_dev, ABS_Y, + 0, QT602240_MAX_YC, 0, 0); + + /* For multi touch */ + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, + 0, QT602240_MAX_AREA, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_X, + 0, QT602240_MAX_XC, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, + 0, QT602240_MAX_YC, 0, 0); + + input_set_drvdata(input_dev, data); + + qt602240_pininit(pdata->irq_gpio_number,pdata->reset_gpio_number); + + qt602240_pwron(&client->dev); + + qt602240_reset(pdata->reset_gpio_number); + + client->irq = gpio_to_irq(pdata->irq_gpio_number); + + data->client = client; + data->input_dev = input_dev; + data->pdata = pdata; + data->irq = client->irq; + + i2c_set_clientdata(client, data); + + error = qt602240_initialize(data); + if (error) + goto err_free_object; + + error = input_register_device(input_dev); + if (error) + goto err_free_object; + + printk("irq data->client->irq=%d\n",data->client->irq); + error = request_threaded_irq(client->irq, NULL, qt602240_interrupt, + IRQF_TRIGGER_LOW, client->dev.driver->name, data); + if (error) { + dev_err(&client->dev, "Failed to register interrupt\n"); + goto err_free_irq; + } + + data->qt602240_early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + data->qt602240_early_suspend.suspend = qt602240_ts_suspend; + data->qt602240_early_suspend.resume = qt602240_ts_resume; + register_early_suspend(&data->qt602240_early_suspend); + + qt602240_create_sysfs(client); + error = sysfs_create_group(&client->dev.kobj, &qt602240_attr_group); + if (error) + goto err_unregister_device; + + return 0; + +err_unregister_device: + input_unregister_device(input_dev); + input_dev = NULL; +err_free_irq: + free_irq(client->irq, data); +err_free_object: + kfree(data->object_table); +err_free_mem: + input_free_device(input_dev); + kfree(data); + return error; +} + +static int __devexit qt602240_remove(struct i2c_client *client) +{ + struct qt602240_data *data = i2c_get_clientdata(client); + + sysfs_remove_group(&client->dev.kobj, &qt602240_attr_group); + free_irq(data->irq, data); + input_unregister_device(data->input_dev); + kfree(data->object_table); + kfree(data); + + return 0; +} + +#if 0 +#ifdef CONFIG_PM +static int qt602240_suspend(struct i2c_client *client, pm_message_t mesg) +{ + struct qt602240_data *data = i2c_get_clientdata(client); + struct input_dev *input_dev = data->input_dev; + + mutex_lock(&input_dev->mutex); + + if (input_dev->users) + qt602240_stop(data); + + mutex_unlock(&input_dev->mutex); + + return 0; +} + +static int qt602240_resume(struct i2c_client *client) +{ + struct qt602240_data *data = i2c_get_clientdata(client); + struct input_dev *input_dev = data->input_dev; + + /* Soft reset */ + qt602240_write_object(data, QT602240_GEN_COMMAND, + QT602240_COMMAND_RESET, 1); + + msleep(QT602240_RESET_TIME); + + mutex_lock(&input_dev->mutex); + + if (input_dev->users) + qt602240_start(data); + + mutex_unlock(&input_dev->mutex); + + return 0; +} +#else +#define qt602240_suspend NULL +#define qt602240_resume NULL +#endif +#endif + +static const struct i2c_device_id qt602240_id[] = { + { "qt602240_ts", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, qt602240_id); + +static struct i2c_driver qt602240_driver = { + .driver = { + .name = "qt602240_ts", + .owner = THIS_MODULE, + }, + .probe = qt602240_probe, + .remove = __devexit_p(qt602240_remove), + //.suspend = qt602240_suspend, + //.resume = qt602240_resume, + .id_table = qt602240_id, +}; + +static int __init qt602240_init(void) +{ + return i2c_add_driver(&qt602240_driver); +} + +static void __exit qt602240_exit(void) +{ + i2c_del_driver(&qt602240_driver); +} + +module_init(qt602240_init); +module_exit(qt602240_exit); + +/* Module information */ +MODULE_AUTHOR("Joonyoung Shim "); +MODULE_DESCRIPTION("AT42QT602240/ATMXT224 Touchscreen driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/s3c2410_ts.c b/drivers/input/touchscreen/s3c2410_ts.c new file mode 100644 index 00000000..b061af2c --- /dev/null +++ b/drivers/input/touchscreen/s3c2410_ts.c @@ -0,0 +1,441 @@ +/* + * Samsung S3C24XX touchscreen driver + * + * This program is free software; you can redistribute it and/or modify + * it under the term 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Copyright 2004 Arnaud Patard + * Copyright 2008 Ben Dooks + * Copyright 2009 Simtec Electronics + * + * Additional work by Herbert Pötzl and + * Harald Welte + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define TSC_SLEEP (S3C2410_ADCTSC_PULL_UP_DISABLE | S3C2410_ADCTSC_XY_PST(0)) + +#define INT_DOWN (0) +#define INT_UP (1 << 8) + +#define WAIT4INT (S3C2410_ADCTSC_YM_SEN | \ + S3C2410_ADCTSC_YP_SEN | \ + S3C2410_ADCTSC_XP_SEN | \ + S3C2410_ADCTSC_XY_PST(3)) + +#define AUTOPST (S3C2410_ADCTSC_YM_SEN | \ + S3C2410_ADCTSC_YP_SEN | \ + S3C2410_ADCTSC_XP_SEN | \ + S3C2410_ADCTSC_AUTO_PST | \ + S3C2410_ADCTSC_XY_PST(0)) + +#define FEAT_PEN_IRQ (1 << 0) /* HAS ADCCLRINTPNDNUP */ + +/* Per-touchscreen data. */ + +/** + * struct s3c2410ts - driver touchscreen state. + * @client: The ADC client we registered with the core driver. + * @dev: The device we are bound to. + * @input: The input device we registered with the input subsystem. + * @clock: The clock for the adc. + * @io: Pointer to the IO base. + * @xp: The accumulated X position data. + * @yp: The accumulated Y position data. + * @irq_tc: The interrupt number for pen up/down interrupt + * @count: The number of samples collected. + * @shift: The log2 of the maximum count to read in one go. + * @features: The features supported by the TSADC MOdule. + */ +struct s3c2410ts { + struct s3c_adc_client *client; + struct device *dev; + struct input_dev *input; + struct clk *clock; + void __iomem *io; + unsigned long xp; + unsigned long yp; + int irq_tc; + int count; + int shift; + int features; +}; + +static struct s3c2410ts ts; + +/** + * get_down - return the down state of the pen + * @data0: The data read from ADCDAT0 register. + * @data1: The data read from ADCDAT1 register. + * + * Return non-zero if both readings show that the pen is down. + */ +static inline bool get_down(unsigned long data0, unsigned long data1) +{ + /* returns true if both data values show stylus down */ + return (!(data0 & S3C2410_ADCDAT0_UPDOWN) && + !(data1 & S3C2410_ADCDAT0_UPDOWN)); +} + +static void touch_timer_fire(unsigned long data) +{ + unsigned long data0; + unsigned long data1; + bool down; + + data0 = readl(ts.io + S3C2410_ADCDAT0); + data1 = readl(ts.io + S3C2410_ADCDAT1); + + down = get_down(data0, data1); + + if (down) { + if (ts.count == (1 << ts.shift)) { + ts.xp >>= ts.shift; + ts.yp >>= ts.shift; + + dev_dbg(ts.dev, "%s: X=%lu, Y=%lu, count=%d\n", + __func__, ts.xp, ts.yp, ts.count); + + input_report_abs(ts.input, ABS_X, ts.xp); + input_report_abs(ts.input, ABS_Y, ts.yp); + + input_report_key(ts.input, BTN_TOUCH, 1); + input_sync(ts.input); + + ts.xp = 0; + ts.yp = 0; + ts.count = 0; + } + + s3c_adc_start(ts.client, 0, 1 << ts.shift); + } else { + ts.xp = 0; + ts.yp = 0; + ts.count = 0; + + input_report_key(ts.input, BTN_TOUCH, 0); + input_sync(ts.input); + + writel(WAIT4INT | INT_DOWN, ts.io + S3C2410_ADCTSC); + } +} + +static DEFINE_TIMER(touch_timer, touch_timer_fire, 0, 0); + +/** + * stylus_irq - touchscreen stylus event interrupt + * @irq: The interrupt number + * @dev_id: The device ID. + * + * Called when the IRQ_TC is fired for a pen up or down event. + */ +static irqreturn_t stylus_irq(int irq, void *dev_id) +{ + unsigned long data0; + unsigned long data1; + bool down; + + data0 = readl(ts.io + S3C2410_ADCDAT0); + data1 = readl(ts.io + S3C2410_ADCDAT1); + + down = get_down(data0, data1); + + /* TODO we should never get an interrupt with down set while + * the timer is running, but maybe we ought to verify that the + * timer isn't running anyways. */ + + if (down) + s3c_adc_start(ts.client, 0, 1 << ts.shift); + else + dev_dbg(ts.dev, "%s: count=%d\n", __func__, ts.count); + + if (ts.features & FEAT_PEN_IRQ) { + /* Clear pen down/up interrupt */ + writel(0x0, ts.io + S3C64XX_ADCCLRINTPNDNUP); + } + + return IRQ_HANDLED; +} + +/** + * s3c24xx_ts_conversion - ADC conversion callback + * @client: The client that was registered with the ADC core. + * @data0: The reading from ADCDAT0. + * @data1: The reading from ADCDAT1. + * @left: The number of samples left. + * + * Called when a conversion has finished. + */ +static void s3c24xx_ts_conversion(struct s3c_adc_client *client, + unsigned data0, unsigned data1, + unsigned *left) +{ + dev_dbg(ts.dev, "%s: %d,%d\n", __func__, data0, data1); + + ts.xp += data0; + ts.yp += data1; + + ts.count++; + + /* From tests, it seems that it is unlikely to get a pen-up + * event during the conversion process which means we can + * ignore any pen-up events with less than the requisite + * count done. + * + * In several thousand conversions, no pen-ups where detected + * before count completed. + */ +} + +/** + * s3c24xx_ts_select - ADC selection callback. + * @client: The client that was registered with the ADC core. + * @select: The reason for select. + * + * Called when the ADC core selects (or deslects) us as a client. + */ +static void s3c24xx_ts_select(struct s3c_adc_client *client, unsigned select) +{ + if (select) { + writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, + ts.io + S3C2410_ADCTSC); + } else { + mod_timer(&touch_timer, jiffies+1); + writel(WAIT4INT | INT_UP, ts.io + S3C2410_ADCTSC); + } +} + +/** + * s3c2410ts_probe - device core probe entry point + * @pdev: The device we are being bound to. + * + * Initialise, find and allocate any resources we need to run and then + * register with the ADC and input systems. + */ +static int s3c2410ts_probe(struct platform_device *pdev) +{ + struct s3c2410_ts_mach_info *info; + struct device *dev = &pdev->dev; + struct input_dev *input_dev; + struct resource *res; + int ret = -EINVAL; + + /* Initialise input stuff */ + memset(&ts, 0, sizeof(struct s3c2410ts)); + + ts.dev = dev; + + info = pdev->dev.platform_data; + if (!info) { + dev_err(dev, "no platform data, cannot attach\n"); + return -EINVAL; + } + + dev_dbg(dev, "initialising touchscreen\n"); + + ts.clock = clk_get(dev, "adc"); + if (IS_ERR(ts.clock)) { + dev_err(dev, "cannot get adc clock source\n"); + return -ENOENT; + } + + clk_enable(ts.clock); + dev_dbg(dev, "got and enabled clocks\n"); + + ts.irq_tc = ret = platform_get_irq(pdev, 0); + if (ret < 0) { + dev_err(dev, "no resource for interrupt\n"); + goto err_clk; + } + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!res) { + dev_err(dev, "no resource for registers\n"); + ret = -ENOENT; + goto err_clk; + } + + ts.io = ioremap(res->start, resource_size(res)); + if (ts.io == NULL) { + dev_err(dev, "cannot map registers\n"); + ret = -ENOMEM; + goto err_clk; + } + + /* inititalise the gpio */ + if (info->cfg_gpio) + info->cfg_gpio(to_platform_device(ts.dev)); + + ts.client = s3c_adc_register(pdev, s3c24xx_ts_select, + s3c24xx_ts_conversion, 1); + if (IS_ERR(ts.client)) { + dev_err(dev, "failed to register adc client\n"); + ret = PTR_ERR(ts.client); + goto err_iomap; + } + + /* Initialise registers */ + if ((info->delay & 0xffff) > 0) + writel(info->delay & 0xffff, ts.io + S3C2410_ADCDLY); + + writel(WAIT4INT | INT_DOWN, ts.io + S3C2410_ADCTSC); + + input_dev = input_allocate_device(); + if (!input_dev) { + dev_err(dev, "Unable to allocate the input device !!\n"); + ret = -ENOMEM; + goto err_iomap; + } + + ts.input = input_dev; + ts.input->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + ts.input->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(ts.input, ABS_X, 0, 0x3FF, 0, 0); + input_set_abs_params(ts.input, ABS_Y, 0, 0x3FF, 0, 0); + + ts.input->name = "S3C24XX TouchScreen"; + ts.input->id.bustype = BUS_HOST; + ts.input->id.vendor = 0xDEAD; + ts.input->id.product = 0xBEEF; + ts.input->id.version = 0x0102; + + ts.shift = info->oversampling_shift; + ts.features = platform_get_device_id(pdev)->driver_data; + + ret = request_irq(ts.irq_tc, stylus_irq, 0, + "s3c2410_ts_pen", ts.input); + if (ret) { + dev_err(dev, "cannot get TC interrupt\n"); + goto err_inputdev; + } + + dev_info(dev, "driver attached, registering input device\n"); + + /* All went ok, so register to the input system */ + ret = input_register_device(ts.input); + if (ret < 0) { + dev_err(dev, "failed to register input device\n"); + ret = -EIO; + goto err_tcirq; + } + + return 0; + + err_tcirq: + free_irq(ts.irq_tc, ts.input); + err_inputdev: + input_free_device(ts.input); + err_iomap: + iounmap(ts.io); + err_clk: + del_timer_sync(&touch_timer); + clk_put(ts.clock); + return ret; +} + +/** + * s3c2410ts_remove - device core removal entry point + * @pdev: The device we are being removed from. + * + * Free up our state ready to be removed. + */ +static int s3c2410ts_remove(struct platform_device *pdev) +{ + free_irq(ts.irq_tc, ts.input); + del_timer_sync(&touch_timer); + + clk_disable(ts.clock); + clk_put(ts.clock); + + input_unregister_device(ts.input); + iounmap(ts.io); + + return 0; +} + +#ifdef CONFIG_PM +static int s3c2410ts_suspend(struct device *dev) +{ + writel(TSC_SLEEP, ts.io + S3C2410_ADCTSC); + disable_irq(ts.irq_tc); + clk_disable(ts.clock); + + return 0; +} + +static int s3c2410ts_resume(struct device *dev) +{ + struct platform_device *pdev = to_platform_device(dev); + struct s3c2410_ts_mach_info *info = pdev->dev.platform_data; + + clk_enable(ts.clock); + enable_irq(ts.irq_tc); + + /* Initialise registers */ + if ((info->delay & 0xffff) > 0) + writel(info->delay & 0xffff, ts.io + S3C2410_ADCDLY); + + writel(WAIT4INT | INT_DOWN, ts.io + S3C2410_ADCTSC); + + return 0; +} + +static const struct dev_pm_ops s3c_ts_pmops = { + .suspend = s3c2410ts_suspend, + .resume = s3c2410ts_resume, +}; +#endif + +static struct platform_device_id s3cts_driver_ids[] = { + { "s3c2410-ts", 0 }, + { "s3c2440-ts", 0 }, + { "s3c64xx-ts", FEAT_PEN_IRQ }, + { } +}; +MODULE_DEVICE_TABLE(platform, s3cts_driver_ids); + +static struct platform_driver s3c_ts_driver = { + .driver = { + .name = "samsung-ts", + .owner = THIS_MODULE, +#ifdef CONFIG_PM + .pm = &s3c_ts_pmops, +#endif + }, + .id_table = s3cts_driver_ids, + .probe = s3c2410ts_probe, + .remove = s3c2410ts_remove, +}; +module_platform_driver(s3c_ts_driver); + +MODULE_AUTHOR("Arnaud Patard , " + "Ben Dooks , " + "Simtec Electronics "); +MODULE_DESCRIPTION("S3C24XX Touchscreen driver"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/input/touchscreen/st1232.c b/drivers/input/touchscreen/st1232.c new file mode 100644 index 00000000..1740a249 --- /dev/null +++ b/drivers/input/touchscreen/st1232.c @@ -0,0 +1,310 @@ +/* + * ST1232 Touchscreen Controller Driver + * + * Copyright (C) 2010 Renesas Solutions Corp. + * Tony SIM + * + * Using code from: + * - android.git.kernel.org: projects/kernel/common.git: synaptics_i2c_rmi.c + * Copyright (C) 2007 Google, 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 + +#define ST1232_TS_NAME "st1232-ts" + +#define MIN_X 0x00 +#define MIN_Y 0x00 +#define MAX_X 0x31f /* (800 - 1) */ +#define MAX_Y 0x1df /* (480 - 1) */ +#define MAX_AREA 0xff +#define MAX_FINGERS 2 + +struct st1232_ts_finger { + u16 x; + u16 y; + u8 t; + bool is_valid; +}; + +struct st1232_ts_data { + struct i2c_client *client; + struct input_dev *input_dev; + struct st1232_ts_finger finger[MAX_FINGERS]; + struct dev_pm_qos_request low_latency_req; + int reset_gpio; +}; + +static int st1232_ts_read_data(struct st1232_ts_data *ts) +{ + struct st1232_ts_finger *finger = ts->finger; + struct i2c_client *client = ts->client; + struct i2c_msg msg[2]; + int error; + u8 start_reg; + u8 buf[10]; + + /* read touchscreen data from ST1232 */ + msg[0].addr = client->addr; + msg[0].flags = 0; + msg[0].len = 1; + msg[0].buf = &start_reg; + start_reg = 0x10; + + msg[1].addr = ts->client->addr; + msg[1].flags = I2C_M_RD; + msg[1].len = sizeof(buf); + msg[1].buf = buf; + + error = i2c_transfer(client->adapter, msg, 2); + if (error < 0) + return error; + + /* get "valid" bits */ + finger[0].is_valid = buf[2] >> 7; + finger[1].is_valid = buf[5] >> 7; + + /* get xy coordinate */ + if (finger[0].is_valid) { + finger[0].x = ((buf[2] & 0x0070) << 4) | buf[3]; + finger[0].y = ((buf[2] & 0x0007) << 8) | buf[4]; + finger[0].t = buf[8]; + } + + if (finger[1].is_valid) { + finger[1].x = ((buf[5] & 0x0070) << 4) | buf[6]; + finger[1].y = ((buf[5] & 0x0007) << 8) | buf[7]; + finger[1].t = buf[9]; + } + + return 0; +} + +static irqreturn_t st1232_ts_irq_handler(int irq, void *dev_id) +{ + struct st1232_ts_data *ts = dev_id; + struct st1232_ts_finger *finger = ts->finger; + struct input_dev *input_dev = ts->input_dev; + int count = 0; + int i, ret; + + ret = st1232_ts_read_data(ts); + if (ret < 0) + goto end; + + /* multi touch protocol */ + for (i = 0; i < MAX_FINGERS; i++) { + if (!finger[i].is_valid) + continue; + + input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, finger[i].t); + input_report_abs(input_dev, ABS_MT_POSITION_X, finger[i].x); + input_report_abs(input_dev, ABS_MT_POSITION_Y, finger[i].y); + input_mt_sync(input_dev); + count++; + } + + /* SYN_MT_REPORT only if no contact */ + if (!count) { + input_mt_sync(input_dev); + if (ts->low_latency_req.dev) { + dev_pm_qos_remove_request(&ts->low_latency_req); + ts->low_latency_req.dev = NULL; + } + } else if (!ts->low_latency_req.dev) { + /* First contact, request 100 us latency. */ + dev_pm_qos_add_ancestor_request(&ts->client->dev, + &ts->low_latency_req, 100); + } + + /* SYN_REPORT */ + input_sync(input_dev); + +end: + return IRQ_HANDLED; +} + +static void st1232_ts_power(struct st1232_ts_data *ts, bool poweron) +{ + if (gpio_is_valid(ts->reset_gpio)) + gpio_direction_output(ts->reset_gpio, poweron); +} + +static int st1232_ts_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct st1232_ts_data *ts; + struct st1232_pdata *pdata = client->dev.platform_data; + struct input_dev *input_dev; + int error; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + dev_err(&client->dev, "need I2C_FUNC_I2C\n"); + return -EIO; + } + + if (!client->irq) { + dev_err(&client->dev, "no IRQ?\n"); + return -EINVAL; + } + + ts = devm_kzalloc(&client->dev, sizeof(*ts), GFP_KERNEL); + if (!ts) + return -ENOMEM; + + input_dev = devm_input_allocate_device(&client->dev); + if (!input_dev) + return -ENOMEM; + + ts->client = client; + ts->input_dev = input_dev; + + if (pdata) + ts->reset_gpio = pdata->reset_gpio; + else if (client->dev.of_node) + ts->reset_gpio = of_get_gpio(client->dev.of_node, 0); + else + ts->reset_gpio = -ENODEV; + + if (gpio_is_valid(ts->reset_gpio)) { + error = devm_gpio_request(&client->dev, ts->reset_gpio, NULL); + if (error) { + dev_err(&client->dev, + "Unable to request GPIO pin %d.\n", + ts->reset_gpio); + return error; + } + } + + st1232_ts_power(ts, true); + + input_dev->name = "st1232-touchscreen"; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + + __set_bit(EV_SYN, input_dev->evbit); + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(EV_ABS, input_dev->evbit); + + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, MAX_AREA, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_X, MIN_X, MAX_X, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, MIN_Y, MAX_Y, 0, 0); + + error = devm_request_threaded_irq(&client->dev, client->irq, + NULL, st1232_ts_irq_handler, + IRQF_ONESHOT, + client->name, ts); + if (error) { + dev_err(&client->dev, "Failed to register interrupt\n"); + return error; + } + + error = input_register_device(ts->input_dev); + if (error) { + dev_err(&client->dev, "Unable to register %s input device\n", + input_dev->name); + return error; + } + + i2c_set_clientdata(client, ts); + device_init_wakeup(&client->dev, 1); + + return 0; +} + +static int st1232_ts_remove(struct i2c_client *client) +{ + struct st1232_ts_data *ts = i2c_get_clientdata(client); + + device_init_wakeup(&client->dev, 0); + st1232_ts_power(ts, false); + + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int st1232_ts_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct st1232_ts_data *ts = i2c_get_clientdata(client); + + if (device_may_wakeup(&client->dev)) { + enable_irq_wake(client->irq); + } else { + disable_irq(client->irq); + st1232_ts_power(ts, false); + } + + return 0; +} + +static int st1232_ts_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct st1232_ts_data *ts = i2c_get_clientdata(client); + + if (device_may_wakeup(&client->dev)) { + disable_irq_wake(client->irq); + } else { + st1232_ts_power(ts, true); + enable_irq(client->irq); + } + + return 0; +} + +#endif + +static SIMPLE_DEV_PM_OPS(st1232_ts_pm_ops, + st1232_ts_suspend, st1232_ts_resume); + +static const struct i2c_device_id st1232_ts_id[] = { + { ST1232_TS_NAME, 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, st1232_ts_id); + +#ifdef CONFIG_OF +static const struct of_device_id st1232_ts_dt_ids[] = { + { .compatible = "sitronix,st1232", }, + { } +}; +MODULE_DEVICE_TABLE(of, st1232_ts_dt_ids); +#endif + +static struct i2c_driver st1232_ts_driver = { + .probe = st1232_ts_probe, + .remove = st1232_ts_remove, + .id_table = st1232_ts_id, + .driver = { + .name = ST1232_TS_NAME, + .owner = THIS_MODULE, + .of_match_table = of_match_ptr(st1232_ts_dt_ids), + .pm = &st1232_ts_pm_ops, + }, +}; + +module_i2c_driver(st1232_ts_driver); + +MODULE_AUTHOR("Tony SIM "); +MODULE_DESCRIPTION("SITRONIX ST1232 Touchscreen Controller Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/stmpe-ts.c b/drivers/input/touchscreen/stmpe-ts.c new file mode 100644 index 00000000..59e81b00 --- /dev/null +++ b/drivers/input/touchscreen/stmpe-ts.c @@ -0,0 +1,398 @@ +/* + * STMicroelectronics STMPE811 Touchscreen Driver + * + * (C) 2010 Luotao Fu + * All rights reserved. + * + * 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. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +/* Register layouts and functionalities are identical on all stmpexxx variants + * with touchscreen controller + */ +#define STMPE_REG_INT_STA 0x0B +#define STMPE_REG_ADC_CTRL1 0x20 +#define STMPE_REG_ADC_CTRL2 0x21 +#define STMPE_REG_TSC_CTRL 0x40 +#define STMPE_REG_TSC_CFG 0x41 +#define STMPE_REG_FIFO_TH 0x4A +#define STMPE_REG_FIFO_STA 0x4B +#define STMPE_REG_FIFO_SIZE 0x4C +#define STMPE_REG_TSC_DATA_XYZ 0x52 +#define STMPE_REG_TSC_FRACTION_Z 0x56 +#define STMPE_REG_TSC_I_DRIVE 0x58 + +#define OP_MOD_XYZ 0 + +#define STMPE_TSC_CTRL_TSC_EN (1<<0) + +#define STMPE_FIFO_STA_RESET (1<<0) + +#define STMPE_IRQ_TOUCH_DET 0 + +#define SAMPLE_TIME(x) ((x & 0xf) << 4) +#define MOD_12B(x) ((x & 0x1) << 3) +#define REF_SEL(x) ((x & 0x1) << 1) +#define ADC_FREQ(x) (x & 0x3) +#define AVE_CTRL(x) ((x & 0x3) << 6) +#define DET_DELAY(x) ((x & 0x7) << 3) +#define SETTLING(x) (x & 0x7) +#define FRACTION_Z(x) (x & 0x7) +#define I_DRIVE(x) (x & 0x1) +#define OP_MODE(x) ((x & 0x7) << 1) + +#define STMPE_TS_NAME "stmpe-ts" +#define XY_MASK 0xfff + +struct stmpe_touch { + struct stmpe *stmpe; + struct input_dev *idev; + struct delayed_work work; + struct device *dev; + u8 sample_time; + u8 mod_12b; + u8 ref_sel; + u8 adc_freq; + u8 ave_ctrl; + u8 touch_det_delay; + u8 settling; + u8 fraction_z; + u8 i_drive; +}; + +static int __stmpe_reset_fifo(struct stmpe *stmpe) +{ + int ret; + + ret = stmpe_set_bits(stmpe, STMPE_REG_FIFO_STA, + STMPE_FIFO_STA_RESET, STMPE_FIFO_STA_RESET); + if (ret) + return ret; + + return stmpe_set_bits(stmpe, STMPE_REG_FIFO_STA, + STMPE_FIFO_STA_RESET, 0); +} + +static void stmpe_work(struct work_struct *work) +{ + int int_sta; + u32 timeout = 40; + + struct stmpe_touch *ts = + container_of(work, struct stmpe_touch, work.work); + + int_sta = stmpe_reg_read(ts->stmpe, STMPE_REG_INT_STA); + + /* + * touch_det sometimes get desasserted or just get stuck. This appears + * to be a silicon bug, We still have to clearify this with the + * manufacture. As a workaround We release the key anyway if the + * touch_det keeps coming in after 4ms, while the FIFO contains no value + * during the whole time. + */ + while ((int_sta & (1 << STMPE_IRQ_TOUCH_DET)) && (timeout > 0)) { + timeout--; + int_sta = stmpe_reg_read(ts->stmpe, STMPE_REG_INT_STA); + udelay(100); + } + + /* reset the FIFO before we report release event */ + __stmpe_reset_fifo(ts->stmpe); + + input_report_abs(ts->idev, ABS_PRESSURE, 0); + input_report_key(ts->idev, BTN_TOUCH, 0); + input_sync(ts->idev); +} + +static irqreturn_t stmpe_ts_handler(int irq, void *data) +{ + u8 data_set[4]; + int x, y, z; + struct stmpe_touch *ts = data; + + /* + * Cancel scheduled polling for release if we have new value + * available. Wait if the polling is already running. + */ + cancel_delayed_work_sync(&ts->work); + + /* + * The FIFO sometimes just crashes and stops generating interrupts. This + * appears to be a silicon bug. We still have to clearify this with + * the manufacture. As a workaround we disable the TSC while we are + * collecting data and flush the FIFO after reading + */ + stmpe_set_bits(ts->stmpe, STMPE_REG_TSC_CTRL, + STMPE_TSC_CTRL_TSC_EN, 0); + + stmpe_block_read(ts->stmpe, STMPE_REG_TSC_DATA_XYZ, 4, data_set); + + x = (data_set[0] << 4) | (data_set[1] >> 4); + y = ((data_set[1] & 0xf) << 8) | data_set[2]; + z = data_set[3]; + + input_report_abs(ts->idev, ABS_X, x); + input_report_abs(ts->idev, ABS_Y, y); + input_report_abs(ts->idev, ABS_PRESSURE, z); + input_report_key(ts->idev, BTN_TOUCH, 1); + input_sync(ts->idev); + + /* flush the FIFO after we have read out our values. */ + __stmpe_reset_fifo(ts->stmpe); + + /* reenable the tsc */ + stmpe_set_bits(ts->stmpe, STMPE_REG_TSC_CTRL, + STMPE_TSC_CTRL_TSC_EN, STMPE_TSC_CTRL_TSC_EN); + + /* start polling for touch_det to detect release */ + schedule_delayed_work(&ts->work, HZ / 50); + + return IRQ_HANDLED; +} + +static int stmpe_init_hw(struct stmpe_touch *ts) +{ + int ret; + u8 adc_ctrl1, adc_ctrl1_mask, tsc_cfg, tsc_cfg_mask; + struct stmpe *stmpe = ts->stmpe; + struct device *dev = ts->dev; + + ret = stmpe_enable(stmpe, STMPE_BLOCK_TOUCHSCREEN | STMPE_BLOCK_ADC); + if (ret) { + dev_err(dev, "Could not enable clock for ADC and TS\n"); + return ret; + } + + adc_ctrl1 = SAMPLE_TIME(ts->sample_time) | MOD_12B(ts->mod_12b) | + REF_SEL(ts->ref_sel); + adc_ctrl1_mask = SAMPLE_TIME(0xff) | MOD_12B(0xff) | REF_SEL(0xff); + + ret = stmpe_set_bits(stmpe, STMPE_REG_ADC_CTRL1, + adc_ctrl1_mask, adc_ctrl1); + if (ret) { + dev_err(dev, "Could not setup ADC\n"); + return ret; + } + + ret = stmpe_set_bits(stmpe, STMPE_REG_ADC_CTRL2, + ADC_FREQ(0xff), ADC_FREQ(ts->adc_freq)); + if (ret) { + dev_err(dev, "Could not setup ADC\n"); + return ret; + } + + tsc_cfg = AVE_CTRL(ts->ave_ctrl) | DET_DELAY(ts->touch_det_delay) | + SETTLING(ts->settling); + tsc_cfg_mask = AVE_CTRL(0xff) | DET_DELAY(0xff) | SETTLING(0xff); + + ret = stmpe_set_bits(stmpe, STMPE_REG_TSC_CFG, tsc_cfg_mask, tsc_cfg); + if (ret) { + dev_err(dev, "Could not config touch\n"); + return ret; + } + + ret = stmpe_set_bits(stmpe, STMPE_REG_TSC_FRACTION_Z, + FRACTION_Z(0xff), FRACTION_Z(ts->fraction_z)); + if (ret) { + dev_err(dev, "Could not config touch\n"); + return ret; + } + + ret = stmpe_set_bits(stmpe, STMPE_REG_TSC_I_DRIVE, + I_DRIVE(0xff), I_DRIVE(ts->i_drive)); + if (ret) { + dev_err(dev, "Could not config touch\n"); + return ret; + } + + /* set FIFO to 1 for single point reading */ + ret = stmpe_reg_write(stmpe, STMPE_REG_FIFO_TH, 1); + if (ret) { + dev_err(dev, "Could not set FIFO\n"); + return ret; + } + + ret = stmpe_set_bits(stmpe, STMPE_REG_TSC_CTRL, + OP_MODE(0xff), OP_MODE(OP_MOD_XYZ)); + if (ret) { + dev_err(dev, "Could not set mode\n"); + return ret; + } + + return 0; +} + +static int stmpe_ts_open(struct input_dev *dev) +{ + struct stmpe_touch *ts = input_get_drvdata(dev); + int ret = 0; + + ret = __stmpe_reset_fifo(ts->stmpe); + if (ret) + return ret; + + return stmpe_set_bits(ts->stmpe, STMPE_REG_TSC_CTRL, + STMPE_TSC_CTRL_TSC_EN, STMPE_TSC_CTRL_TSC_EN); +} + +static void stmpe_ts_close(struct input_dev *dev) +{ + struct stmpe_touch *ts = input_get_drvdata(dev); + + cancel_delayed_work_sync(&ts->work); + + stmpe_set_bits(ts->stmpe, STMPE_REG_TSC_CTRL, + STMPE_TSC_CTRL_TSC_EN, 0); +} + +static void stmpe_ts_get_platform_info(struct platform_device *pdev, + struct stmpe_touch *ts) +{ + struct stmpe *stmpe = dev_get_drvdata(pdev->dev.parent); + struct device_node *np = pdev->dev.of_node; + struct stmpe_ts_platform_data *ts_pdata = NULL; + + ts->stmpe = stmpe; + + if (stmpe->pdata && stmpe->pdata->ts) { + ts_pdata = stmpe->pdata->ts; + + ts->sample_time = ts_pdata->sample_time; + ts->mod_12b = ts_pdata->mod_12b; + ts->ref_sel = ts_pdata->ref_sel; + ts->adc_freq = ts_pdata->adc_freq; + ts->ave_ctrl = ts_pdata->ave_ctrl; + ts->touch_det_delay = ts_pdata->touch_det_delay; + ts->settling = ts_pdata->settling; + ts->fraction_z = ts_pdata->fraction_z; + ts->i_drive = ts_pdata->i_drive; + } else if (np) { + u32 val; + + if (!of_property_read_u32(np, "st,sample-time", &val)) + ts->sample_time = val; + if (!of_property_read_u32(np, "st,mod-12b", &val)) + ts->mod_12b = val; + if (!of_property_read_u32(np, "st,ref-sel", &val)) + ts->ref_sel = val; + if (!of_property_read_u32(np, "st,adc-freq", &val)) + ts->adc_freq = val; + if (!of_property_read_u32(np, "st,ave-ctrl", &val)) + ts->ave_ctrl = val; + if (!of_property_read_u32(np, "st,touch-det-delay", &val)) + ts->touch_det_delay = val; + if (!of_property_read_u32(np, "st,settling", &val)) + ts->settling = val; + if (!of_property_read_u32(np, "st,fraction-z", &val)) + ts->fraction_z = val; + if (!of_property_read_u32(np, "st,i-drive", &val)) + ts->i_drive = val; + } +} + +static int stmpe_input_probe(struct platform_device *pdev) +{ + struct stmpe_touch *ts; + struct input_dev *idev; + int error; + int ts_irq; + + ts_irq = platform_get_irq_byname(pdev, "FIFO_TH"); + if (ts_irq < 0) + return ts_irq; + + ts = devm_kzalloc(&pdev->dev, sizeof(*ts), GFP_KERNEL); + if (!ts) + return -ENOMEM; + + idev = devm_input_allocate_device(&pdev->dev); + if (!idev) + return -ENOMEM; + + platform_set_drvdata(pdev, ts); + ts->idev = idev; + ts->dev = &pdev->dev; + + stmpe_ts_get_platform_info(pdev, ts); + + INIT_DELAYED_WORK(&ts->work, stmpe_work); + + error = devm_request_threaded_irq(&pdev->dev, ts_irq, + NULL, stmpe_ts_handler, + IRQF_ONESHOT, STMPE_TS_NAME, ts); + if (error) { + dev_err(&pdev->dev, "Failed to request IRQ %d\n", ts_irq); + return error; + } + + error = stmpe_init_hw(ts); + if (error) + return error; + + idev->name = STMPE_TS_NAME; + idev->phys = STMPE_TS_NAME"/input0"; + idev->id.bustype = BUS_I2C; + idev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + idev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + + idev->open = stmpe_ts_open; + idev->close = stmpe_ts_close; + + input_set_drvdata(idev, ts); + + input_set_abs_params(idev, ABS_X, 0, XY_MASK, 0, 0); + input_set_abs_params(idev, ABS_Y, 0, XY_MASK, 0, 0); + input_set_abs_params(idev, ABS_PRESSURE, 0x0, 0xff, 0, 0); + + error = input_register_device(idev); + if (error) { + dev_err(&pdev->dev, "Could not register input device\n"); + return error; + } + + return 0; +} + +static int stmpe_ts_remove(struct platform_device *pdev) +{ + struct stmpe_touch *ts = platform_get_drvdata(pdev); + + stmpe_disable(ts->stmpe, STMPE_BLOCK_TOUCHSCREEN); + + return 0; +} + +static struct platform_driver stmpe_ts_driver = { + .driver = { + .name = STMPE_TS_NAME, + .owner = THIS_MODULE, + }, + .probe = stmpe_input_probe, + .remove = stmpe_ts_remove, +}; +module_platform_driver(stmpe_ts_driver); + +MODULE_AUTHOR("Luotao Fu "); +MODULE_DESCRIPTION("STMPEXXX touchscreen driver"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:" STMPE_TS_NAME); diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c new file mode 100644 index 00000000..51e7b878 --- /dev/null +++ b/drivers/input/touchscreen/ti_am335x_tsc.c @@ -0,0 +1,398 @@ +/* + * TI Touch Screen driver + * + * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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 version 2. + * + * This program is distributed "as is" WITHOUT ANY WARRANTY of any + * kind, whether express or implied; 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 + +#define ADCFSM_STEPID 0x10 +#define SEQ_SETTLE 275 +#define MAX_12BIT ((1 << 12) - 1) + +struct titsc { + struct input_dev *input; + struct ti_tscadc_dev *mfd_tscadc; + unsigned int irq; + unsigned int wires; + unsigned int x_plate_resistance; + bool pen_down; + int steps_to_configure; +}; + +static unsigned int titsc_readl(struct titsc *ts, unsigned int reg) +{ + return readl(ts->mfd_tscadc->tscadc_base + reg); +} + +static void titsc_writel(struct titsc *tsc, unsigned int reg, + unsigned int val) +{ + writel(val, tsc->mfd_tscadc->tscadc_base + reg); +} + +static void titsc_step_config(struct titsc *ts_dev) +{ + unsigned int config; + int i, total_steps; + + /* Configure the Step registers */ + total_steps = 2 * ts_dev->steps_to_configure; + + config = STEPCONFIG_MODE_HWSYNC | + STEPCONFIG_AVG_16 | STEPCONFIG_XPP; + switch (ts_dev->wires) { + case 4: + config |= STEPCONFIG_INP_AN2 | STEPCONFIG_XNN; + break; + case 5: + config |= STEPCONFIG_YNN | + STEPCONFIG_INP_AN4 | STEPCONFIG_XNN | + STEPCONFIG_YPP; + break; + case 8: + config |= STEPCONFIG_INP_AN2 | STEPCONFIG_XNN; + break; + } + + for (i = 1; i <= ts_dev->steps_to_configure; i++) { + titsc_writel(ts_dev, REG_STEPCONFIG(i), config); + titsc_writel(ts_dev, REG_STEPDELAY(i), STEPCONFIG_OPENDLY); + } + + config = 0; + config = STEPCONFIG_MODE_HWSYNC | + STEPCONFIG_AVG_16 | STEPCONFIG_YNN | + STEPCONFIG_INM_ADCREFM | STEPCONFIG_FIFO1; + switch (ts_dev->wires) { + case 4: + config |= STEPCONFIG_YPP; + break; + case 5: + config |= STEPCONFIG_XPP | STEPCONFIG_INP_AN4 | + STEPCONFIG_XNP | STEPCONFIG_YPN; + break; + case 8: + config |= STEPCONFIG_YPP; + break; + } + + for (i = (ts_dev->steps_to_configure + 1); i <= total_steps; i++) { + titsc_writel(ts_dev, REG_STEPCONFIG(i), config); + titsc_writel(ts_dev, REG_STEPDELAY(i), STEPCONFIG_OPENDLY); + } + + config = 0; + /* Charge step configuration */ + config = STEPCONFIG_XPP | STEPCONFIG_YNN | + STEPCHARGE_RFP_XPUL | STEPCHARGE_RFM_XNUR | + STEPCHARGE_INM_AN1 | STEPCHARGE_INP_AN1; + + titsc_writel(ts_dev, REG_CHARGECONFIG, config); + titsc_writel(ts_dev, REG_CHARGEDELAY, CHARGEDLY_OPENDLY); + + config = 0; + /* Configure to calculate pressure */ + config = STEPCONFIG_MODE_HWSYNC | + STEPCONFIG_AVG_16 | STEPCONFIG_YPP | + STEPCONFIG_XNN | STEPCONFIG_INM_ADCREFM; + titsc_writel(ts_dev, REG_STEPCONFIG(total_steps + 1), config); + titsc_writel(ts_dev, REG_STEPDELAY(total_steps + 1), + STEPCONFIG_OPENDLY); + + config |= STEPCONFIG_INP_AN3 | STEPCONFIG_FIFO1; + titsc_writel(ts_dev, REG_STEPCONFIG(total_steps + 2), config); + titsc_writel(ts_dev, REG_STEPDELAY(total_steps + 2), + STEPCONFIG_OPENDLY); + + titsc_writel(ts_dev, REG_SE, STPENB_STEPENB_TC); +} + +static void titsc_read_coordinates(struct titsc *ts_dev, + unsigned int *x, unsigned int *y) +{ + unsigned int fifocount = titsc_readl(ts_dev, REG_FIFO0CNT); + unsigned int prev_val_x = ~0, prev_val_y = ~0; + unsigned int prev_diff_x = ~0, prev_diff_y = ~0; + unsigned int read, diff; + unsigned int i, channel; + + /* + * Delta filter is used to remove large variations in sampled + * values from ADC. The filter tries to predict where the next + * coordinate could be. This is done by taking a previous + * coordinate and subtracting it form current one. Further the + * algorithm compares the difference with that of a present value, + * if true the value is reported to the sub system. + */ + for (i = 0; i < fifocount - 1; i++) { + read = titsc_readl(ts_dev, REG_FIFO0); + channel = read & 0xf0000; + channel = channel >> 0x10; + if ((channel >= 0) && (channel < ts_dev->steps_to_configure)) { + read &= 0xfff; + diff = abs(read - prev_val_x); + if (diff < prev_diff_x) { + prev_diff_x = diff; + *x = read; + } + prev_val_x = read; + } + + read = titsc_readl(ts_dev, REG_FIFO1); + channel = read & 0xf0000; + channel = channel >> 0x10; + if ((channel >= ts_dev->steps_to_configure) && + (channel < (2 * ts_dev->steps_to_configure - 1))) { + read &= 0xfff; + diff = abs(read - prev_val_y); + if (diff < prev_diff_y) { + prev_diff_y = diff; + *y = read; + } + prev_val_y = read; + } + } +} + +static irqreturn_t titsc_irq(int irq, void *dev) +{ + struct titsc *ts_dev = dev; + struct input_dev *input_dev = ts_dev->input; + unsigned int status, irqclr = 0; + unsigned int x = 0, y = 0; + unsigned int z1, z2, z; + unsigned int fsm; + unsigned int fifo1count, fifo0count; + int i; + + status = titsc_readl(ts_dev, REG_IRQSTATUS); + if (status & IRQENB_FIFO0THRES) { + titsc_read_coordinates(ts_dev, &x, &y); + + z1 = titsc_readl(ts_dev, REG_FIFO0) & 0xfff; + z2 = titsc_readl(ts_dev, REG_FIFO1) & 0xfff; + + fifo1count = titsc_readl(ts_dev, REG_FIFO1CNT); + for (i = 0; i < fifo1count; i++) + titsc_readl(ts_dev, REG_FIFO1); + + fifo0count = titsc_readl(ts_dev, REG_FIFO0CNT); + for (i = 0; i < fifo0count; i++) + titsc_readl(ts_dev, REG_FIFO0); + + if (ts_dev->pen_down && z1 != 0 && z2 != 0) { + /* + * Calculate pressure using formula + * Resistance(touch) = x plate resistance * + * x postion/4096 * ((z2 / z1) - 1) + */ + z = z2 - z1; + z *= x; + z *= ts_dev->x_plate_resistance; + z /= z1; + z = (z + 2047) >> 12; + + if (z <= MAX_12BIT) { + input_report_abs(input_dev, ABS_X, x); + input_report_abs(input_dev, ABS_Y, y); + input_report_abs(input_dev, ABS_PRESSURE, z); + input_report_key(input_dev, BTN_TOUCH, 1); + input_sync(input_dev); + } + } + irqclr |= IRQENB_FIFO0THRES; + } + + /* + * Time for sequencer to settle, to read + * correct state of the sequencer. + */ + udelay(SEQ_SETTLE); + + status = titsc_readl(ts_dev, REG_RAWIRQSTATUS); + if (status & IRQENB_PENUP) { + /* Pen up event */ + fsm = titsc_readl(ts_dev, REG_ADCFSM); + if (fsm == ADCFSM_STEPID) { + ts_dev->pen_down = false; + input_report_key(input_dev, BTN_TOUCH, 0); + input_report_abs(input_dev, ABS_PRESSURE, 0); + input_sync(input_dev); + } else { + ts_dev->pen_down = true; + } + irqclr |= IRQENB_PENUP; + } + + titsc_writel(ts_dev, REG_IRQSTATUS, irqclr); + + titsc_writel(ts_dev, REG_SE, STPENB_STEPENB_TC); + return IRQ_HANDLED; +} + +/* + * The functions for inserting/removing driver as a module. + */ + +static int titsc_probe(struct platform_device *pdev) +{ + struct titsc *ts_dev; + struct input_dev *input_dev; + struct ti_tscadc_dev *tscadc_dev = pdev->dev.platform_data; + struct mfd_tscadc_board *pdata; + int err; + + pdata = tscadc_dev->dev->platform_data; + + if (!pdata) { + dev_err(&pdev->dev, "Could not find platform data\n"); + return -EINVAL; + } + + /* Allocate memory for device */ + ts_dev = kzalloc(sizeof(struct titsc), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!ts_dev || !input_dev) { + dev_err(&pdev->dev, "failed to allocate memory.\n"); + err = -ENOMEM; + goto err_free_mem; + } + + tscadc_dev->tsc = ts_dev; + ts_dev->mfd_tscadc = tscadc_dev; + ts_dev->input = input_dev; + ts_dev->irq = tscadc_dev->irq; + ts_dev->wires = pdata->tsc_init->wires; + ts_dev->x_plate_resistance = pdata->tsc_init->x_plate_resistance; + ts_dev->steps_to_configure = pdata->tsc_init->steps_to_configure; + + err = request_irq(ts_dev->irq, titsc_irq, + 0, pdev->dev.driver->name, ts_dev); + if (err) { + dev_err(&pdev->dev, "failed to allocate irq.\n"); + goto err_free_mem; + } + + titsc_writel(ts_dev, REG_IRQENABLE, IRQENB_FIFO0THRES); + titsc_step_config(ts_dev); + titsc_writel(ts_dev, REG_FIFO0THR, ts_dev->steps_to_configure); + + input_dev->name = "ti-tsc"; + input_dev->dev.parent = &pdev->dev; + + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + + input_set_abs_params(input_dev, ABS_X, 0, MAX_12BIT, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 0, MAX_12BIT, 0, 0); + input_set_abs_params(input_dev, ABS_PRESSURE, 0, MAX_12BIT, 0, 0); + + /* register to the input system */ + err = input_register_device(input_dev); + if (err) + goto err_free_irq; + + platform_set_drvdata(pdev, ts_dev); + return 0; + +err_free_irq: + free_irq(ts_dev->irq, ts_dev); +err_free_mem: + input_free_device(input_dev); + kfree(ts_dev); + return err; +} + +static int titsc_remove(struct platform_device *pdev) +{ + struct ti_tscadc_dev *tscadc_dev = pdev->dev.platform_data; + struct titsc *ts_dev = tscadc_dev->tsc; + + free_irq(ts_dev->irq, ts_dev); + + input_unregister_device(ts_dev->input); + + platform_set_drvdata(pdev, NULL); + kfree(ts_dev); + return 0; +} + +#ifdef CONFIG_PM +static int titsc_suspend(struct device *dev) +{ + struct ti_tscadc_dev *tscadc_dev = dev->platform_data; + struct titsc *ts_dev = tscadc_dev->tsc; + unsigned int idle; + + if (device_may_wakeup(tscadc_dev->dev)) { + idle = titsc_readl(ts_dev, REG_IRQENABLE); + titsc_writel(ts_dev, REG_IRQENABLE, + (idle | IRQENB_HW_PEN)); + titsc_writel(ts_dev, REG_IRQWAKEUP, IRQWKUP_ENB); + } + return 0; +} + +static int titsc_resume(struct device *dev) +{ + struct ti_tscadc_dev *tscadc_dev = dev->platform_data; + struct titsc *ts_dev = tscadc_dev->tsc; + + if (device_may_wakeup(tscadc_dev->dev)) { + titsc_writel(ts_dev, REG_IRQWAKEUP, + 0x00); + titsc_writel(ts_dev, REG_IRQCLR, IRQENB_HW_PEN); + } + titsc_step_config(ts_dev); + titsc_writel(ts_dev, REG_FIFO0THR, + ts_dev->steps_to_configure); + return 0; +} + +static const struct dev_pm_ops titsc_pm_ops = { + .suspend = titsc_suspend, + .resume = titsc_resume, +}; +#define TITSC_PM_OPS (&titsc_pm_ops) +#else +#define TITSC_PM_OPS NULL +#endif + +static struct platform_driver ti_tsc_driver = { + .probe = titsc_probe, + .remove = titsc_remove, + .driver = { + .name = "tsc", + .owner = THIS_MODULE, + .pm = TITSC_PM_OPS, + }, +}; +module_platform_driver(ti_tsc_driver); + +MODULE_DESCRIPTION("TI touchscreen controller driver"); +MODULE_AUTHOR("Rachna Patil "); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/tnetv107x-ts.c b/drivers/input/touchscreen/tnetv107x-ts.c new file mode 100644 index 00000000..acfb8760 --- /dev/null +++ b/drivers/input/touchscreen/tnetv107x-ts.c @@ -0,0 +1,386 @@ +/* + * Texas Instruments TNETV107X Touchscreen Driver + * + * Copyright (C) 2010 Texas Instruments + * + * 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 version 2. + * + * This program is distributed "as is" WITHOUT ANY WARRANTY of any + * kind, whether express or implied; 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 + +#define TSC_PENUP_POLL (HZ / 5) +#define IDLE_TIMEOUT 100 /* msec */ + +/* + * The first and last samples of a touch interval are usually garbage and need + * to be filtered out with these devices. The following definitions control + * the number of samples skipped. + */ +#define TSC_HEAD_SKIP 1 +#define TSC_TAIL_SKIP 1 +#define TSC_SKIP (TSC_HEAD_SKIP + TSC_TAIL_SKIP + 1) +#define TSC_SAMPLES (TSC_SKIP + 1) + +/* Register Offsets */ +struct tsc_regs { + u32 rev; + u32 tscm; + u32 bwcm; + u32 swc; + u32 adcchnl; + u32 adcdata; + u32 chval[4]; +}; + +/* TSC Mode Configuration Register (tscm) bits */ +#define WMODE BIT(0) +#define TSKIND BIT(1) +#define ZMEASURE_EN BIT(2) +#define IDLE BIT(3) +#define TSC_EN BIT(4) +#define STOP BIT(5) +#define ONE_SHOT BIT(6) +#define SINGLE BIT(7) +#define AVG BIT(8) +#define AVGNUM(x) (((x) & 0x03) << 9) +#define PVSTC(x) (((x) & 0x07) << 11) +#define PON BIT(14) +#define PONBG BIT(15) +#define AFERST BIT(16) + +/* ADC DATA Capture Register bits */ +#define DATA_VALID BIT(16) + +/* Register Access Macros */ +#define tsc_read(ts, reg) __raw_readl(&(ts)->regs->reg) +#define tsc_write(ts, reg, val) __raw_writel(val, &(ts)->regs->reg); +#define tsc_set_bits(ts, reg, val) \ + tsc_write(ts, reg, tsc_read(ts, reg) | (val)) +#define tsc_clr_bits(ts, reg, val) \ + tsc_write(ts, reg, tsc_read(ts, reg) & ~(val)) + +struct sample { + int x, y, p; +}; + +struct tsc_data { + struct input_dev *input_dev; + struct resource *res; + struct tsc_regs __iomem *regs; + struct timer_list timer; + spinlock_t lock; + struct clk *clk; + struct device *dev; + int sample_count; + struct sample samples[TSC_SAMPLES]; + int tsc_irq; +}; + +static int tsc_read_sample(struct tsc_data *ts, struct sample* sample) +{ + int x, y, z1, z2, t, p = 0; + u32 val; + + val = tsc_read(ts, chval[0]); + if (val & DATA_VALID) + x = val & 0xffff; + else + return -EINVAL; + + y = tsc_read(ts, chval[1]) & 0xffff; + z1 = tsc_read(ts, chval[2]) & 0xffff; + z2 = tsc_read(ts, chval[3]) & 0xffff; + + if (z1) { + t = ((600 * x) * (z2 - z1)); + p = t / (u32) (z1 << 12); + if (p < 0) + p = 0; + } + + sample->x = x; + sample->y = y; + sample->p = p; + + return 0; +} + +static void tsc_poll(unsigned long data) +{ + struct tsc_data *ts = (struct tsc_data *)data; + unsigned long flags; + int i, val, x, y, p; + + spin_lock_irqsave(&ts->lock, flags); + + if (ts->sample_count >= TSC_SKIP) { + input_report_abs(ts->input_dev, ABS_PRESSURE, 0); + input_report_key(ts->input_dev, BTN_TOUCH, 0); + input_sync(ts->input_dev); + } else if (ts->sample_count > 0) { + /* + * A touch event lasted less than our skip count. Salvage and + * report anyway. + */ + for (i = 0, val = 0; i < ts->sample_count; i++) + val += ts->samples[i].x; + x = val / ts->sample_count; + + for (i = 0, val = 0; i < ts->sample_count; i++) + val += ts->samples[i].y; + y = val / ts->sample_count; + + for (i = 0, val = 0; i < ts->sample_count; i++) + val += ts->samples[i].p; + p = val / ts->sample_count; + + input_report_abs(ts->input_dev, ABS_X, x); + input_report_abs(ts->input_dev, ABS_Y, y); + input_report_abs(ts->input_dev, ABS_PRESSURE, p); + input_report_key(ts->input_dev, BTN_TOUCH, 1); + input_sync(ts->input_dev); + } + + ts->sample_count = 0; + + spin_unlock_irqrestore(&ts->lock, flags); +} + +static irqreturn_t tsc_irq(int irq, void *dev_id) +{ + struct tsc_data *ts = (struct tsc_data *)dev_id; + struct sample *sample; + int index; + + spin_lock(&ts->lock); + + index = ts->sample_count % TSC_SAMPLES; + sample = &ts->samples[index]; + if (tsc_read_sample(ts, sample) < 0) + goto out; + + if (++ts->sample_count >= TSC_SKIP) { + index = (ts->sample_count - TSC_TAIL_SKIP - 1) % TSC_SAMPLES; + sample = &ts->samples[index]; + + input_report_abs(ts->input_dev, ABS_X, sample->x); + input_report_abs(ts->input_dev, ABS_Y, sample->y); + input_report_abs(ts->input_dev, ABS_PRESSURE, sample->p); + if (ts->sample_count == TSC_SKIP) + input_report_key(ts->input_dev, BTN_TOUCH, 1); + input_sync(ts->input_dev); + } + mod_timer(&ts->timer, jiffies + TSC_PENUP_POLL); +out: + spin_unlock(&ts->lock); + return IRQ_HANDLED; +} + +static int tsc_start(struct input_dev *dev) +{ + struct tsc_data *ts = input_get_drvdata(dev); + unsigned long timeout = jiffies + msecs_to_jiffies(IDLE_TIMEOUT); + u32 val; + + clk_enable(ts->clk); + + /* Go to idle mode, before any initialization */ + while (time_after(timeout, jiffies)) { + if (tsc_read(ts, tscm) & IDLE) + break; + } + + if (time_before(timeout, jiffies)) { + dev_warn(ts->dev, "timeout waiting for idle\n"); + clk_disable(ts->clk); + return -EIO; + } + + /* Configure TSC Control register*/ + val = (PONBG | PON | PVSTC(4) | ONE_SHOT | ZMEASURE_EN); + tsc_write(ts, tscm, val); + + /* Bring TSC out of reset: Clear AFE reset bit */ + val &= ~(AFERST); + tsc_write(ts, tscm, val); + + /* Configure all pins for hardware control*/ + tsc_write(ts, bwcm, 0); + + /* Finally enable the TSC */ + tsc_set_bits(ts, tscm, TSC_EN); + + return 0; +} + +static void tsc_stop(struct input_dev *dev) +{ + struct tsc_data *ts = input_get_drvdata(dev); + + tsc_clr_bits(ts, tscm, TSC_EN); + synchronize_irq(ts->tsc_irq); + del_timer_sync(&ts->timer); + clk_disable(ts->clk); +} + +static int tsc_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct tsc_data *ts; + int error = 0; + u32 rev = 0; + + ts = kzalloc(sizeof(struct tsc_data), GFP_KERNEL); + if (!ts) { + dev_err(dev, "cannot allocate device info\n"); + return -ENOMEM; + } + + ts->dev = dev; + spin_lock_init(&ts->lock); + setup_timer(&ts->timer, tsc_poll, (unsigned long)ts); + platform_set_drvdata(pdev, ts); + + ts->tsc_irq = platform_get_irq(pdev, 0); + if (ts->tsc_irq < 0) { + dev_err(dev, "cannot determine device interrupt\n"); + error = -ENODEV; + goto error_res; + } + + ts->res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!ts->res) { + dev_err(dev, "cannot determine register area\n"); + error = -ENODEV; + goto error_res; + } + + if (!request_mem_region(ts->res->start, resource_size(ts->res), + pdev->name)) { + dev_err(dev, "cannot claim register memory\n"); + ts->res = NULL; + error = -EINVAL; + goto error_res; + } + + ts->regs = ioremap(ts->res->start, resource_size(ts->res)); + if (!ts->regs) { + dev_err(dev, "cannot map register memory\n"); + error = -ENOMEM; + goto error_map; + } + + ts->clk = clk_get(dev, NULL); + if (IS_ERR(ts->clk)) { + dev_err(dev, "cannot claim device clock\n"); + error = PTR_ERR(ts->clk); + goto error_clk; + } + + error = request_threaded_irq(ts->tsc_irq, NULL, tsc_irq, IRQF_ONESHOT, + dev_name(dev), ts); + if (error < 0) { + dev_err(ts->dev, "Could not allocate ts irq\n"); + goto error_irq; + } + + ts->input_dev = input_allocate_device(); + if (!ts->input_dev) { + dev_err(dev, "cannot allocate input device\n"); + error = -ENOMEM; + goto error_input; + } + input_set_drvdata(ts->input_dev, ts); + + ts->input_dev->name = pdev->name; + ts->input_dev->id.bustype = BUS_HOST; + ts->input_dev->dev.parent = &pdev->dev; + ts->input_dev->open = tsc_start; + ts->input_dev->close = tsc_stop; + + clk_enable(ts->clk); + rev = tsc_read(ts, rev); + ts->input_dev->id.product = ((rev >> 8) & 0x07); + ts->input_dev->id.version = ((rev >> 16) & 0xfff); + clk_disable(ts->clk); + + __set_bit(EV_KEY, ts->input_dev->evbit); + __set_bit(EV_ABS, ts->input_dev->evbit); + __set_bit(BTN_TOUCH, ts->input_dev->keybit); + + input_set_abs_params(ts->input_dev, ABS_X, 0, 0xffff, 5, 0); + input_set_abs_params(ts->input_dev, ABS_Y, 0, 0xffff, 5, 0); + input_set_abs_params(ts->input_dev, ABS_PRESSURE, 0, 4095, 128, 0); + + error = input_register_device(ts->input_dev); + if (error < 0) { + dev_err(dev, "failed input device registration\n"); + goto error_reg; + } + + return 0; + +error_reg: + input_free_device(ts->input_dev); +error_input: + free_irq(ts->tsc_irq, ts); +error_irq: + clk_put(ts->clk); +error_clk: + iounmap(ts->regs); +error_map: + release_mem_region(ts->res->start, resource_size(ts->res)); +error_res: + platform_set_drvdata(pdev, NULL); + kfree(ts); + + return error; +} + +static int tsc_remove(struct platform_device *pdev) +{ + struct tsc_data *ts = platform_get_drvdata(pdev); + + input_unregister_device(ts->input_dev); + free_irq(ts->tsc_irq, ts); + clk_put(ts->clk); + iounmap(ts->regs); + release_mem_region(ts->res->start, resource_size(ts->res)); + platform_set_drvdata(pdev, NULL); + kfree(ts); + + return 0; +} + +static struct platform_driver tsc_driver = { + .probe = tsc_probe, + .remove = tsc_remove, + .driver.name = "tnetv107x-ts", + .driver.owner = THIS_MODULE, +}; +module_platform_driver(tsc_driver); + +MODULE_AUTHOR("Cyril Chemparathy"); +MODULE_DESCRIPTION("TNETV107X Touchscreen Driver"); +MODULE_ALIAS("platform:tnetv107x-ts"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/touchit213.c b/drivers/input/touchscreen/touchit213.c new file mode 100644 index 00000000..5f29e5b8 --- /dev/null +++ b/drivers/input/touchscreen/touchit213.c @@ -0,0 +1,219 @@ +/* + * Sahara TouchIT-213 serial touchscreen driver + * + * Copyright (c) 2007-2008 Claudio Nieder + * + * Based on Touchright driver (drivers/input/touchscreen/touchright.c) + * Copyright (c) 2006 Rick Koch + * Copyright (c) 2004 Vojtech Pavlik + * and Dan Streetman + */ + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include + +#define DRIVER_DESC "Sahara TouchIT-213 serial touchscreen driver" + +MODULE_AUTHOR("Claudio Nieder "); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL"); + +/* + * Definitions & global arrays. + */ + +/* + * Data is received through COM1 at 9600bit/s,8bit,no parity in packets + * of 5 byte each. + * + * +--------+ +--------+ +--------+ +--------+ +--------+ + * |1000000p| |0xxxxxxx| |0xxxxxxx| |0yyyyyyy| |0yyyyyyy| + * +--------+ +--------+ +--------+ +--------+ +--------+ + * MSB LSB MSB LSB + * + * The value of p is 1 as long as the screen is touched and 0 when + * reporting the location where touching stopped, e.g. where the pen was + * lifted from the screen. + * + * When holding the screen in landscape mode as the BIOS text output is + * presented, x is the horizontal axis with values growing from left to + * right and y is the vertical axis with values growing from top to + * bottom. + * + * When holding the screen in portrait mode with the Sahara logo in its + * correct position, x ist the vertical axis with values growing from + * top to bottom and y is the horizontal axis with values growing from + * right to left. + */ + +#define T213_FORMAT_TOUCH_BIT 0x01 +#define T213_FORMAT_STATUS_BYTE 0x80 +#define T213_FORMAT_STATUS_MASK ~T213_FORMAT_TOUCH_BIT + +/* + * On my Sahara Touch-IT 213 I have observed x values from 0 to 0x7f0 + * and y values from 0x1d to 0x7e9, so the actual measurement is + * probably done with an 11 bit precision. + */ +#define T213_MIN_XC 0 +#define T213_MAX_XC 0x07ff +#define T213_MIN_YC 0 +#define T213_MAX_YC 0x07ff + +/* + * Per-touchscreen data. + */ + +struct touchit213 { + struct input_dev *dev; + struct serio *serio; + int idx; + unsigned char csum; + unsigned char data[5]; + char phys[32]; +}; + +static irqreturn_t touchit213_interrupt(struct serio *serio, + unsigned char data, unsigned int flags) +{ + struct touchit213 *touchit213 = serio_get_drvdata(serio); + struct input_dev *dev = touchit213->dev; + + touchit213->data[touchit213->idx] = data; + + switch (touchit213->idx++) { + case 0: + if ((touchit213->data[0] & T213_FORMAT_STATUS_MASK) != + T213_FORMAT_STATUS_BYTE) { + pr_debug("unsynchronized data: 0x%02x\n", data); + touchit213->idx = 0; + } + break; + + case 4: + touchit213->idx = 0; + input_report_abs(dev, ABS_X, + (touchit213->data[1] << 7) | touchit213->data[2]); + input_report_abs(dev, ABS_Y, + (touchit213->data[3] << 7) | touchit213->data[4]); + input_report_key(dev, BTN_TOUCH, + touchit213->data[0] & T213_FORMAT_TOUCH_BIT); + input_sync(dev); + break; + } + + return IRQ_HANDLED; +} + +/* + * touchit213_disconnect() is the opposite of touchit213_connect() + */ + +static void touchit213_disconnect(struct serio *serio) +{ + struct touchit213 *touchit213 = serio_get_drvdata(serio); + + input_get_device(touchit213->dev); + input_unregister_device(touchit213->dev); + serio_close(serio); + serio_set_drvdata(serio, NULL); + input_put_device(touchit213->dev); + kfree(touchit213); +} + +/* + * touchit213_connect() is the routine that is called when someone adds a + * new serio device that supports the Touchright protocol and registers it as + * an input device. + */ + +static int touchit213_connect(struct serio *serio, struct serio_driver *drv) +{ + struct touchit213 *touchit213; + struct input_dev *input_dev; + int err; + + touchit213 = kzalloc(sizeof(struct touchit213), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!touchit213 || !input_dev) { + err = -ENOMEM; + goto fail1; + } + + touchit213->serio = serio; + touchit213->dev = input_dev; + snprintf(touchit213->phys, sizeof(touchit213->phys), + "%s/input0", serio->phys); + + input_dev->name = "Sahara Touch-iT213 Serial TouchScreen"; + input_dev->phys = touchit213->phys; + input_dev->id.bustype = BUS_RS232; + input_dev->id.vendor = SERIO_TOUCHIT213; + input_dev->id.product = 0; + input_dev->id.version = 0x0100; + input_dev->dev.parent = &serio->dev; + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(touchit213->dev, ABS_X, + T213_MIN_XC, T213_MAX_XC, 0, 0); + input_set_abs_params(touchit213->dev, ABS_Y, + T213_MIN_YC, T213_MAX_YC, 0, 0); + + serio_set_drvdata(serio, touchit213); + + err = serio_open(serio, drv); + if (err) + goto fail2; + + err = input_register_device(touchit213->dev); + if (err) + goto fail3; + + return 0; + + fail3: serio_close(serio); + fail2: serio_set_drvdata(serio, NULL); + fail1: input_free_device(input_dev); + kfree(touchit213); + return err; +} + +/* + * The serio driver structure. + */ + +static struct serio_device_id touchit213_serio_ids[] = { + { + .type = SERIO_RS232, + .proto = SERIO_TOUCHIT213, + .id = SERIO_ANY, + .extra = SERIO_ANY, + }, + { 0 } +}; + +MODULE_DEVICE_TABLE(serio, touchit213_serio_ids); + +static struct serio_driver touchit213_drv = { + .driver = { + .name = "touchit213", + }, + .description = DRIVER_DESC, + .id_table = touchit213_serio_ids, + .interrupt = touchit213_interrupt, + .connect = touchit213_connect, + .disconnect = touchit213_disconnect, +}; + +module_serio_driver(touchit213_drv); diff --git a/drivers/input/touchscreen/touchright.c b/drivers/input/touchscreen/touchright.c new file mode 100644 index 00000000..8a2887da --- /dev/null +++ b/drivers/input/touchscreen/touchright.c @@ -0,0 +1,179 @@ +/* + * Touchright serial touchscreen driver + * + * Copyright (c) 2006 Rick Koch + * + * Based on MicroTouch driver (drivers/input/touchscreen/mtouch.c) + * Copyright (c) 2004 Vojtech Pavlik + * and Dan Streetman + */ + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include + +#define DRIVER_DESC "Touchright serial touchscreen driver" + +MODULE_AUTHOR("Rick Koch "); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL"); + +/* + * Definitions & global arrays. + */ + +#define TR_FORMAT_TOUCH_BIT 0x01 +#define TR_FORMAT_STATUS_BYTE 0x40 +#define TR_FORMAT_STATUS_MASK ~TR_FORMAT_TOUCH_BIT + +#define TR_LENGTH 5 + +#define TR_MIN_XC 0 +#define TR_MAX_XC 0x1ff +#define TR_MIN_YC 0 +#define TR_MAX_YC 0x1ff + +/* + * Per-touchscreen data. + */ + +struct tr { + struct input_dev *dev; + struct serio *serio; + int idx; + unsigned char data[TR_LENGTH]; + char phys[32]; +}; + +static irqreturn_t tr_interrupt(struct serio *serio, + unsigned char data, unsigned int flags) +{ + struct tr *tr = serio_get_drvdata(serio); + struct input_dev *dev = tr->dev; + + tr->data[tr->idx] = data; + + if ((tr->data[0] & TR_FORMAT_STATUS_MASK) == TR_FORMAT_STATUS_BYTE) { + if (++tr->idx == TR_LENGTH) { + input_report_abs(dev, ABS_X, + (tr->data[1] << 5) | (tr->data[2] >> 1)); + input_report_abs(dev, ABS_Y, + (tr->data[3] << 5) | (tr->data[4] >> 1)); + input_report_key(dev, BTN_TOUCH, + tr->data[0] & TR_FORMAT_TOUCH_BIT); + input_sync(dev); + tr->idx = 0; + } + } + + return IRQ_HANDLED; +} + +/* + * tr_disconnect() is the opposite of tr_connect() + */ + +static void tr_disconnect(struct serio *serio) +{ + struct tr *tr = serio_get_drvdata(serio); + + input_get_device(tr->dev); + input_unregister_device(tr->dev); + serio_close(serio); + serio_set_drvdata(serio, NULL); + input_put_device(tr->dev); + kfree(tr); +} + +/* + * tr_connect() is the routine that is called when someone adds a + * new serio device that supports the Touchright protocol and registers it as + * an input device. + */ + +static int tr_connect(struct serio *serio, struct serio_driver *drv) +{ + struct tr *tr; + struct input_dev *input_dev; + int err; + + tr = kzalloc(sizeof(struct tr), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!tr || !input_dev) { + err = -ENOMEM; + goto fail1; + } + + tr->serio = serio; + tr->dev = input_dev; + snprintf(tr->phys, sizeof(tr->phys), "%s/input0", serio->phys); + + input_dev->name = "Touchright Serial TouchScreen"; + input_dev->phys = tr->phys; + input_dev->id.bustype = BUS_RS232; + input_dev->id.vendor = SERIO_TOUCHRIGHT; + input_dev->id.product = 0; + input_dev->id.version = 0x0100; + input_dev->dev.parent = &serio->dev; + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(tr->dev, ABS_X, TR_MIN_XC, TR_MAX_XC, 0, 0); + input_set_abs_params(tr->dev, ABS_Y, TR_MIN_YC, TR_MAX_YC, 0, 0); + + serio_set_drvdata(serio, tr); + + err = serio_open(serio, drv); + if (err) + goto fail2; + + err = input_register_device(tr->dev); + if (err) + goto fail3; + + return 0; + + fail3: serio_close(serio); + fail2: serio_set_drvdata(serio, NULL); + fail1: input_free_device(input_dev); + kfree(tr); + return err; +} + +/* + * The serio driver structure. + */ + +static struct serio_device_id tr_serio_ids[] = { + { + .type = SERIO_RS232, + .proto = SERIO_TOUCHRIGHT, + .id = SERIO_ANY, + .extra = SERIO_ANY, + }, + { 0 } +}; + +MODULE_DEVICE_TABLE(serio, tr_serio_ids); + +static struct serio_driver tr_drv = { + .driver = { + .name = "touchright", + }, + .description = DRIVER_DESC, + .id_table = tr_serio_ids, + .interrupt = tr_interrupt, + .connect = tr_connect, + .disconnect = tr_disconnect, +}; + +module_serio_driver(tr_drv); diff --git a/drivers/input/touchscreen/touchwin.c b/drivers/input/touchscreen/touchwin.c new file mode 100644 index 00000000..588cdcb8 --- /dev/null +++ b/drivers/input/touchscreen/touchwin.c @@ -0,0 +1,186 @@ +/* + * Touchwindow serial touchscreen driver + * + * Copyright (c) 2006 Rick Koch + * + * Based on MicroTouch driver (drivers/input/touchscreen/mtouch.c) + * Copyright (c) 2004 Vojtech Pavlik + * and Dan Streetman + */ + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation. + */ + +/* + * 2005/02/19 Rick Koch: + * The Touchwindow I used is made by Edmark Corp. and + * constantly outputs a stream of 0's unless it is touched. + * It then outputs 3 bytes: X, Y, and a copy of Y. + */ + +#include +#include +#include +#include +#include +#include +#include + +#define DRIVER_DESC "Touchwindow serial touchscreen driver" + +MODULE_AUTHOR("Rick Koch "); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL"); + +/* + * Definitions & global arrays. + */ + +#define TW_LENGTH 3 + +#define TW_MIN_XC 0 +#define TW_MAX_XC 0xff +#define TW_MIN_YC 0 +#define TW_MAX_YC 0xff + +/* + * Per-touchscreen data. + */ + +struct tw { + struct input_dev *dev; + struct serio *serio; + int idx; + int touched; + unsigned char data[TW_LENGTH]; + char phys[32]; +}; + +static irqreturn_t tw_interrupt(struct serio *serio, + unsigned char data, unsigned int flags) +{ + struct tw *tw = serio_get_drvdata(serio); + struct input_dev *dev = tw->dev; + + if (data) { /* touch */ + tw->touched = 1; + tw->data[tw->idx++] = data; + /* verify length and that the two Y's are the same */ + if (tw->idx == TW_LENGTH && tw->data[1] == tw->data[2]) { + input_report_abs(dev, ABS_X, tw->data[0]); + input_report_abs(dev, ABS_Y, tw->data[1]); + input_report_key(dev, BTN_TOUCH, 1); + input_sync(dev); + tw->idx = 0; + } + } else if (tw->touched) { /* untouch */ + input_report_key(dev, BTN_TOUCH, 0); + input_sync(dev); + tw->idx = 0; + tw->touched = 0; + } + + return IRQ_HANDLED; +} + +/* + * tw_disconnect() is the opposite of tw_connect() + */ + +static void tw_disconnect(struct serio *serio) +{ + struct tw *tw = serio_get_drvdata(serio); + + input_get_device(tw->dev); + input_unregister_device(tw->dev); + serio_close(serio); + serio_set_drvdata(serio, NULL); + input_put_device(tw->dev); + kfree(tw); +} + +/* + * tw_connect() is the routine that is called when someone adds a + * new serio device that supports the Touchwin protocol and registers it as + * an input device. + */ + +static int tw_connect(struct serio *serio, struct serio_driver *drv) +{ + struct tw *tw; + struct input_dev *input_dev; + int err; + + tw = kzalloc(sizeof(struct tw), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!tw || !input_dev) { + err = -ENOMEM; + goto fail1; + } + + tw->serio = serio; + tw->dev = input_dev; + snprintf(tw->phys, sizeof(tw->phys), "%s/input0", serio->phys); + + input_dev->name = "Touchwindow Serial TouchScreen"; + input_dev->phys = tw->phys; + input_dev->id.bustype = BUS_RS232; + input_dev->id.vendor = SERIO_TOUCHWIN; + input_dev->id.product = 0; + input_dev->id.version = 0x0100; + input_dev->dev.parent = &serio->dev; + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(tw->dev, ABS_X, TW_MIN_XC, TW_MAX_XC, 0, 0); + input_set_abs_params(tw->dev, ABS_Y, TW_MIN_YC, TW_MAX_YC, 0, 0); + + serio_set_drvdata(serio, tw); + + err = serio_open(serio, drv); + if (err) + goto fail2; + + err = input_register_device(tw->dev); + if (err) + goto fail3; + + return 0; + + fail3: serio_close(serio); + fail2: serio_set_drvdata(serio, NULL); + fail1: input_free_device(input_dev); + kfree(tw); + return err; +} + +/* + * The serio driver structure. + */ + +static struct serio_device_id tw_serio_ids[] = { + { + .type = SERIO_RS232, + .proto = SERIO_TOUCHWIN, + .id = SERIO_ANY, + .extra = SERIO_ANY, + }, + { 0 } +}; + +MODULE_DEVICE_TABLE(serio, tw_serio_ids); + +static struct serio_driver tw_drv = { + .driver = { + .name = "touchwin", + }, + .description = DRIVER_DESC, + .id_table = tw_serio_ids, + .interrupt = tw_interrupt, + .connect = tw_connect, + .disconnect = tw_disconnect, +}; + +module_serio_driver(tw_drv); diff --git a/drivers/input/touchscreen/tp_sprd.c b/drivers/input/touchscreen/tp_sprd.c new file mode 100644 index 00000000..ad29f2d3 --- /dev/null +++ b/drivers/input/touchscreen/tp_sprd.c @@ -0,0 +1,802 @@ +/* + * Copyright (C) 2012 Spreadtrum Communications Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +/* #define TP_DEBUG */ +#ifdef TP_DEBUG +#define TP_PRINT printk +#else +#define TP_PRINT(...) +#endif + +#define SCI_PASSERT(condition, format...) \ + do { \ + if(!(condition)) { \ + pr_err("function :%s\r\n", __FUNCTION__);\ + BUG(); \ + } \ + }while(0) + +#define ANA_REG_BASE SPRD_ANA_BASE +#define SPRD_ANA_BASE (SPRD_MISC_BASE + 0x600) +#define ANA_AGEN (ANA_REG_BASE + 0x00) + +#define TPC_REG_BASE (SPRD_MISC_BASE+0x280) +#define TPC_CTRL (TPC_REG_BASE + 0x0000) +#define TPC_SAMPLE_CTRL0 (TPC_REG_BASE + 0x0004) +#define TPC_SAMPLE_CTRL1 (TPC_REG_BASE + 0x0008) +#define TPC_BOUNCE_CTRL (TPC_REG_BASE + 0x000C) +#define TPC_FILTER_CTRL (TPC_REG_BASE + 0x0010) +#define TPC_CALC_CTRL (TPC_REG_BASE + 0x0014) +#define TPC_CALC_X_COEF_A (TPC_REG_BASE + 0x0018) +#define TPC_CALC_X_COEF_B (TPC_REG_BASE + 0x001C) +#define TPC_CALC_Y_COEF_A (TPC_REG_BASE + 0x0020) +#define TPC_CALC_Y_COEF_B (TPC_REG_BASE + 0x0024) +#define TPC_INT_EN (TPC_REG_BASE + 0x0028) +#define TPC_INT_STS (TPC_REG_BASE + 0x002C) +#define TPC_INT_RAW (TPC_REG_BASE + 0x0030) +#define TPC_INT_CLR (TPC_REG_BASE + 0x0034) +#define TPC_BUF_CTRL (TPC_REG_BASE + 0x0038) +#define TPC_X_DATA (TPC_REG_BASE + 0x003C) +#define TPC_Y_DATA (TPC_REG_BASE + 0x0040) +#define TPC_Z_DATA (TPC_REG_BASE + 0x0044) + +/* TPC_CTRL BIT map */ +#define TPC_STOP_BIT BIT(5) +#define TPC_RUN_BIT BIT(4) +#define TPC_TPC_MODE_BIT BIT(3) +#define TPC_PEN_REQ_POL_BIT BIT(1) +#define TPC_EN_BIT BIT(0) + +#define TPC_PRESCALE_OFFSET 0x08 +#define TPC_PRESCALE_MSK (0xFF << TPC_PRESCALE_OFFSET) + +/* TPC_SAMPLE_CTRL0 BIT map */ +#define TPC_SAMPLE_INTERVAL_OFFSET 0 +#define TPC_SAMPLE_INTERVAL_MSK (0xFF << TPC_SAMPLE_INTERVAL_OFFSET) +#define TPC_POINT_INTERVAL_OFFSET 8 +#define TPC_POINT_INTERVAL_MSK (0xFF << TPC_POINT_INTERVAL_OFFSET) + +/* TPC_SAMPLE_CTRL1 BIT map */ +#define TPC_DATA_INTERVAL_OFFSET 0 +#define TPC_DATA_INTERVAL_MSK (0xFFF << TPC_DATA_INTERVAL_OFFSET) +#define TPC_SAMPLE_NUM_OFFSET 12 +#define TPC_SAMPLE_NUM_MSK (0xF << TPC_SAMPLE_NUM_OFFSET) + +/* TPC_BOUNCE_CTRL BIT map */ +#define TPC_DEBOUNCE_EN_BIT BIT(0) +#define TPC_DEBOUNCE_NUM_OFFSET 1 +#define TPC_DEBOUNCE_NUM_MSK (0xFF << TPC_DEBOUNCE_NUM_OFFSET) + + +/* TPC_FILTER_CTRL BIT map */ +#define TPC_FILTER_EN_BIT BIT(0) +#define TPC_FILTER_MODE_BIT BIT(1) +#define TPC_FILTER_MODE_OFFSET 2 +#define TPC_FILTER_MODE_MSK (0xF << TPC_FILTER_MODE_OFFSET) + +/* TPC_BUF_CTRL BIT map */ +#define TPC_BUF_EMP_BIT BIT(5) +#define TPC_BUF_FULL BIT(4) +#define TPC_BUF_LENGTH_OFFSET 0 +#define TPC_BUF_LENGTH_MSK (0xF << TPC_BUF_LENGTH_OFFSET) + +#define TPC_DONE_IRQ_MSK_BIT BIT(2) +#define TPC_UP_IRQ_MSK_BIT BIT(1) +#define TPC_DOWN_IRQ_MSK_BIT BIT(0) + +#define ADC_REG_BASE (SPRD_MISC_BASE+0x300) +#define ADC_CTRL (ADC_REG_BASE + 0x0000) +#define ADC_CS (ADC_REG_BASE + 0x0004) +#define ADC_TPC_CH_CTRL (ADC_REG_BASE + 0x0008) +#define ADC_DAT (ADC_REG_BASE + 0x00C) +#define ADC_INT_EN (ADC_REG_BASE + 0x0010) +#define ADC_INT_CLR (ADC_REG_BASE + 0x0014) +#define ADC_INT_STAT (ADC_REG_BASE + 0x0018) +#define ADC_INT_SRC (ADC_REG_BASE + 0x001C) + +/* ADC_CTRL */ +#define ADC_STATUS_BIT BIT(4) +#define ADC_TPC_CH_ON_BIT BIT(2) +#define SW_CH_ON_BIT BIT(1) +#define ADC_EN_BIT BIT(0) + +/* ADC_CS bit map */ +#define ADC_SCALE_BIT BIT(4) +#define ADC_SLOW_BIT BIT(5) +#define ADC_CS_BIT_MSK 0x0F + +#define ADC_SCALE_3V 0 +#define ADC_SCALE_1V2 1 + +/* ADC TPC channel control */ +#define ADC_TPC_CH_DELAT_OFFSET 8 +#define ADC_TPC_CH_DELAY_MASK (0xFF << ADC_TPC_CH_DELAT_OFFSET) + +#define TPC_BUF_LENGTH 4 +#define TPC_DELTA_DATA 15 +#define CLEAR_TPC_INT(msk) \ + do{ \ + sci_adi_raw_write(TPC_INT_CLR, (msk));\ + while(sci_adi_read(TPC_INT_RAW) & (msk)); \ + }while(0) + +#define X_MIN 0 +#define X_MAX 0x3ff +#define Y_MIN 0 +#define Y_MAX 0x3ff + +#define TPC_CHANNEL_X 2 +#define TPC_CHANNEL_Y 3 +#define ADC_CH_MAX_NUM 8 + +#define SCI_TRUE 1 +#define SCI_FALSE 0 + +/* fit touch panel to LCD size */ +#define TP_LCD_WIDTH 320 +#define TP_LCD_HEIGHT 480 +/* +int a= 35337; +int b= -305; +int c= -8622664; +int d= -105; +int e= 43086; +int f= -8445728; +int g= 65536; +*/ + +typedef union +{ + struct + { + int16_t y; + int16_t x; + } data; + int32_t dwValue; +} TPC_DATA_U; + + +typedef struct{ + uint16_t x_coef_a; + uint16_t x_coef_b; + uint16_t y_coef_a; + uint16_t y_coef_b; +}TPC_COEF; + +struct sprd_tp{ + struct input_dev *input; + + unsigned int irq; + unsigned int is_first_down; + + struct timer_list timer; + TPC_DATA_U tp_data; +}; + + +static uint8_t cal_mode_en = 0; +static TPC_DATA_U cal_data; +static TPC_COEF cal_coef; +static struct sprd_tp *sprd_tp_data = NULL; +static uint16_t tp_fix_cx = (TP_LCD_WIDTH>>1); +static uint16_t tp_fix_cy = (TP_LCD_HEIGHT>>1); + +static void ADC_Init(void) +{ +#if CONFIG_ARCH_SC8810 +/* 8810 TODO */ + sci_adi_set (ANA_AGEN, (BIT(5) | BIT(13) | BIT(14) )); /* AUXAD controller APB clock enable */ +#else + sci_adi_set (ANA_AGEN, AGEN_ADC_EN); /* AUXAD controller APB clock enable */ + sci_adi_set (ANA_CLK_CTL, ACLK_CTL_AUXAD_EN | ACLK_CTL_AUXADC_EN);//enable AUXAD clock generation + sci_adi_set (ADC_CTRL, ADC_EN_BIT);/* ADC module enable */ +#endif + /* Set ADC conversion speed to slow mode, this bit is used for TPC + channel only */ + sci_adi_set(ADC_CS, ADC_SLOW_BIT); + + /* Set TPC channel sampling delay */ + sci_adi_set(ADC_TPC_CH_CTRL, ADC_TPC_CH_DELAY_MASK); +} +static void ADC_SetScale (uint32_t scale) +{ + if (scale == ADC_SCALE_1V2) + { + /* Set ADC small scalel */ + sci_adi_clr (ADC_CS, ADC_SCALE_BIT); + } + else if ( (scale == ADC_SCALE_3V)) + { + /* Set ADC large scalel */ + sci_adi_set (ADC_CS, ADC_SCALE_BIT); + } +} + +static void sci_adi_msk_or(uint32_t addr,uint32_t value,uint32_t msk) +{ + unsigned short adi_tmp_val; + adi_tmp_val = sci_adi_read(addr); + adi_tmp_val &= (unsigned short)(~(msk)); + adi_tmp_val |= (unsigned short)((value)&(msk)); + sci_adi_raw_write(addr, adi_tmp_val); +} + +static void ADC_SetCs (uint32_t source) +{ + SCI_PASSERT( (source < ADC_CH_MAX_NUM), ("error: source =%d",source)); + sci_adi_msk_or (ADC_CS, source, ADC_CS_BIT_MSK); + + +} + void ADC_OpenTPC (void) +{ + /* Open TPC channel */ + sci_adi_set (ADC_CTRL, ADC_TPC_CH_ON_BIT); + + TP_PRINT( "ADC:ADC_OpenTPC\n"); + +} + void ADC_CloseTPC (void) +{ + /* Close TPC channel */ + sci_adi_clr (ADC_CTRL, ADC_TPC_CH_ON_BIT); + + TP_PRINT( "ADC:ADC_CloseTPC\n"); +} +static void tp_init(void) +{ +#if CONFIG_ARCH_SC8810 + sci_adi_set (ANA_AGEN, BIT(12) | BIT(4) );/* Touch panel controller APB clock enable */ +#else + sci_adi_set (ANA_AGEN, AGEN_TPC_EN | AGEN_RTC_TPC_EN);/* Touch panel controller APB clock enable */ +#endif + /* Enable TPC module */ + sci_adi_set (TPC_CTRL, TPC_EN_BIT); + //Config pen request polarity + sci_adi_clr (TPC_CTRL, TPC_PEN_REQ_POL_BIT); + + /* Config tpc mode */ + sci_adi_clr ( TPC_CTRL, TPC_TPC_MODE_BIT); + + /* 500KHz */ + sci_adi_msk_or (TPC_CTRL, (0x0D<< TPC_PRESCALE_OFFSET), TPC_PRESCALE_MSK);/* prescale */ + + /* Config ADC channel */ + ADC_SetScale (ADC_SCALE_3V); + + /* Config TPC sample properity */ + sci_adi_raw_write (TPC_SAMPLE_CTRL0, + (0x10 << TPC_SAMPLE_INTERVAL_OFFSET) | (0x30 <= X_MAX || + cur_data.data.y <= Y_MIN || cur_data.data.y >= Y_MAX) + return SCI_FALSE; + + if (pre_data.dwValue != 0) + { + delta_x = pre_data.data.x - cur_data.data.x; + delta_x = (delta_x > 0) ? delta_x : (- delta_x); + delta_y = pre_data.data.y - cur_data.data.y; + delta_y = (delta_y > 0) ? delta_y : (- delta_y); + + TP_PRINT("delta_x=%d,delta_y=%d\n",delta_x,delta_y); + + if ( (delta_x + delta_y) >= TPC_DELTA_DATA) + { + TP_PRINT ("func[%s]: fetch data failed !delta_x = %d delta_y = %d\n",__FUNCTION__,delta_x, delta_y); + result = SCI_FALSE; + } + } + + pre_data.dwValue = cur_data.dwValue; + + } + + /* Get the last data */ + tp_data->dwValue = cur_data.dwValue; + + return result; + +} + +static irqreturn_t tp_irq(int irq, void *dev_id) +{ + struct sprd_tp *tp=(struct sprd_tp *)dev_id; + uint32_t int_status; + int32_t xd,yd; + int32_t xl,yl; + + TP_PRINT ("TP: enter tp_irq!\n"); + + int_status = sci_adi_read (TPC_INT_STS); + + /* Pen Down interrtup */ + if (int_status & TPC_DOWN_IRQ_MSK_BIT) + { + TP_PRINT("DOWN\n"); + tp->is_first_down = 1; + + /* Clear down interrupt*/ + CLEAR_TPC_INT (TPC_DOWN_IRQ_MSK_BIT); + /* Run TPC */ + tp_run(); + + /* enable done interrupt */ + sci_adi_set (TPC_INT_EN, TPC_DONE_IRQ_MSK_BIT); + + } + /* Pen Up interrupt */ + else if(int_status & TPC_UP_IRQ_MSK_BIT) + { + TP_PRINT("UP\n"); + + /* disable interrupt */ + sci_adi_clr (TPC_INT_EN, TPC_DONE_IRQ_MSK_BIT); + /* Clear up interrupt*/ + CLEAR_TPC_INT ( (TPC_UP_IRQ_MSK_BIT|TPC_DONE_IRQ_MSK_BIT)); + /* Stop TPC */ + tp_stop(); + + input_report_key(tp->input, BTN_TOUCH, 0); + input_report_abs(tp->input, ABS_PRESSURE, 0); + input_sync(tp->input); + } + /* Sample Done interrupt */ + else if(int_status & TPC_DONE_IRQ_MSK_BIT) + { + TP_PRINT("DONE\n"); + /* + *trace_TP_PRINT("DONE\n"); + *Clear done interrupt + */ + CLEAR_TPC_INT (TPC_DONE_IRQ_MSK_BIT); + + /* Get data from TP buffer */ + if (tp_fetch_data(&(tp->tp_data))) { + /* TP_PRINT("fetch data finish\n"); */ + /* xd=765-tp->tp_data.data.x; */ + /* yd=816-tp->tp_data.data.y; */ + if (cal_mode_en == 0) { + #if 0 + xd=X_MAX-tp->tp_data.data.x; + yd=Y_MAX-tp->tp_data.data.y; + if(0 == a+b+c+d+e+f+g){ + input_report_abs(tp->input, ABS_X, xd); + input_report_abs(tp->input, ABS_Y, yd); + TP_PRINT("cal params all zero.\n"); + }else{ + xl=(a*xd+b*yd+c)/g; + yl=(d*xd+e*yd+f)/g; + xl=(xl+20)*3; + yl=(yl+15)*2; + + } + #endif + xl = tp->tp_data.data.x; + yl = tp->tp_data.data.y; + + input_report_abs(tp->input, ABS_X, xl); + input_report_abs(tp->input, ABS_Y, yl); + + } + else { + /* calibration enable, 1: sampling mode + 2: verification mode. */ + cal_data.data.x = tp->tp_data.data.x; + cal_data.data.y = tp->tp_data.data.y; + xd = tp_fix_cx;/* tp->tp_data.data.x; */ + yd = tp_fix_cy;/* tp->tp_data.data.y; */ + input_report_abs(tp->input, ABS_X, xd); + input_report_abs(tp->input, ABS_Y, yd); + + /* TP_PRINT("TP cal mode: x = %d, y = %d\n", xd, yd); */ + } + + /* TP_PRINT("xd=%d,yd=%d\n",xd,yd); */ + TP_PRINT("xl=%d,yl=%d\n",xl,yl); + input_report_abs(tp->input, ABS_PRESSURE,1); + input_report_key(tp->input, BTN_TOUCH, 1); + input_sync(tp->input); + /* TP_PRINT("report finish\n"); */ + + } + else{ + TP_PRINT("func[%s]: done interrupt rise,but can not fetch data!\n",__FUNCTION__); + /* sci_adi_clr (TPC_INT_EN, TPC_DONE_IRQ_MSK_BIT); */ + } + /* sci_adi_clr (TPC_INT_EN, TPC_DONE_IRQ_MSK_BIT); */ + } + /* Error occured */ + else{ + TP_PRINT("func[%s]: uncundefined irq\n",__FUNCTION__); + } + return IRQ_HANDLED; +} + + +static ssize_t cal_mode_sysfs_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t size) +{ + char *endp,*startp; + uint8_t cal_en = 0; + + startp = endp = (char*)buf; + + cal_en = simple_strtol(startp, &endp, 10); + if (cal_en > 2) return size; + + if (cal_en == 1) { + sci_adi_clr (TPC_CALC_CTRL, BIT(0)); /* calibration mode */ + } + else { + sci_adi_set (TPC_CALC_CTRL, BIT(0)); /* normal mode */ + } + + cal_mode_en = cal_en; + + return size; +} + +static ssize_t cal_mode_sysfs_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + int len; + + len = sprintf(buf, "%d\n", cal_mode_en); + + return len; +} + +static DEVICE_ATTR(cal_mode, 0666, cal_mode_sysfs_show, cal_mode_sysfs_store); + + +static ssize_t cal_data_sysfs_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + int len; + + if (cal_mode_en == 0) + len = sprintf(buf, "0 0 \n"); + else + len = sprintf(buf, "%d %d \n", cal_data.data.x, cal_data.data.y); + + return len; +} + + +static DEVICE_ATTR(cal_data, 0444, cal_data_sysfs_show, NULL); + + +static ssize_t cal_coef_sysfs_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + int len; + len = sprintf(buf, "%#x %#x %#x %#x\n", + cal_coef.x_coef_a, + cal_coef.x_coef_b, + cal_coef.y_coef_a, + cal_coef.y_coef_b); + + return len; +} + +static ssize_t cal_coef_sysfs_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t size) +{ + long para[4]; + int num; + char *endp,*startp; + + startp = endp = (char*)buf; + + num=0; + while(*startp && num < 4){ + + para[num++] =simple_strtol(startp, &endp, 16); + if(endp){ + endp++; + startp=endp; + } + } + + sci_adi_raw_write(TPC_CALC_X_COEF_A, para[0]); + sci_adi_raw_write(TPC_CALC_X_COEF_B, para[1]); + sci_adi_raw_write(TPC_CALC_Y_COEF_A, para[2]); + sci_adi_raw_write(TPC_CALC_Y_COEF_B, para[3]); + + cal_coef.x_coef_a = para[0]; + cal_coef.x_coef_b = para[1]; + cal_coef.y_coef_a = para[2]; + cal_coef.y_coef_b = para[3]; + + return size; +} + +static DEVICE_ATTR(cal_coef, 0666, cal_coef_sysfs_show, cal_coef_sysfs_store); + + +/* + * The functions for inserting/removing us as a module. + */ +static int sprd_tp_probe(struct platform_device *pdev) +{ + struct sprd_tp *tp; + struct input_dev *input_dev; + int ret; + + TP_PRINT("func[%s]: touch panel device will be probed\n", __func__); + tp = kzalloc(sizeof(struct sprd_tp), GFP_KERNEL); + if (!tp){ + TP_PRINT("func[%s]:kzalloc failed!\n",__FUNCTION__); + return -ENOMEM; + } + + tp->irq = IRQ_ANA_TPC_INT; + + TP_PRINT("before enter input_allocate_device\n"); + input_dev = input_allocate_device(); + if (!input_dev) { + TP_PRINT("alloc input device failed \n"); + ret = -ENOMEM; + goto err_alloc; + } + sprd_tp_data = tp; + tp->input=input_dev; + tp->input->name = "sprd_touch_screen"; + tp->input->phys = "TP"; + tp->input->id.bustype = BUS_HOST; + tp->input->id.vendor = 0x8800; + tp->input->id.product = 0xCAFE; + tp->input->id.version = 0x0001; + tp->input->dev.parent = &pdev->dev; + + tp->input->evbit[0] = tp->input->evbit[0] = BIT_MASK(EV_SYN) | BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + tp->input->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(tp->input, ABS_X, X_MIN, TP_LCD_WIDTH, 0, 0); + input_set_abs_params(tp->input, ABS_Y, Y_MIN, TP_LCD_HEIGHT, 0, 0); + input_set_abs_params(tp->input, ABS_PRESSURE, 0, 1, 0, 0); + /*init adc*/ + ADC_Init(); + /*init tpc*/ + tp_init(); + + TP_PRINT("before enter request_irq\n"); + ret = request_irq(tp->irq,tp_irq, IRQF_DISABLED, "touch_screen", tp); + if (ret != 0) { + TP_PRINT("func[%s]: Could not allocate tp IRQ!\n",__FUNCTION__); + ret = -EIO; + goto err_irq; + } + + TP_PRINT("before enter input_register_device\n"); + /* All went ok, so register to the input system */ + ret = input_register_device(tp->input); + if(ret) { + TP_PRINT("func[%s]: Could not register input device(touchscreen)!\n",__FUNCTION__); + ret = -EIO; + goto err_reg; + } + platform_set_drvdata(pdev, tp); +#if 0 + if(tp_create_proc()) + TP_PRINT("create touch panel proc file failed!\n"); + + if(device_create_file(&tp->input->dev, &dev_attr_tp)) { + TP_PRINT("create touch panel sysfs file tp failed!\n"); + } +#endif + if(device_create_file(&tp->input->dev, &dev_attr_cal_mode)) { + TP_PRINT("create touch panel sysfs file cal_mode failed!\n"); + } + if(device_create_file(&tp->input->dev, &dev_attr_cal_data)) { + TP_PRINT("create touch panel sysfs file cal_data failed!\n"); + } + + if(device_create_file(&tp->input->dev, &dev_attr_cal_coef)) { + TP_PRINT("create touch panel sysfs file cal_coef failed!\n"); + } + + sci_adi_set(TPC_INT_EN,(TPC_UP_IRQ_MSK_BIT |TPC_DOWN_IRQ_MSK_BIT)); + + + return 0; + +err_reg: + input_free_device(tp->input); +err_irq: + free_irq(tp->irq, tp); +err_alloc: + kfree(tp); + + return ret; +} + +static int sprd_tp_remove(struct platform_device *pdev) +{ + struct sprd_tp *tp = platform_get_drvdata(pdev); + + platform_set_drvdata(pdev, NULL); + + input_unregister_device(tp->input); + + free_irq(tp->irq, tp); + + kfree(tp); +#if 0 + tp_remove_proc(); + device_remove_file(&tp->input->dev, &dev_attr_tp); +#endif + device_remove_file(&tp->input->dev, &dev_attr_cal_mode); + device_remove_file(&tp->input->dev, &dev_attr_cal_data); + device_remove_file(&tp->input->dev, &dev_attr_cal_coef); + + return 0; +} + + +#ifdef CONFIG_PM +static int sprd_tp_suspend(struct platform_device *pdev, pm_message_t mesg) +{ + TP_PRINT("func[%s]: touch panel will be disabled\n", __func__); + + /* + * Disable tp interrupt(up, down and done) and clear these interrupt bits, + * Then stop tp module and close ADC(tp_stop()) + */ + sci_adi_clr(TPC_INT_EN, (TPC_UP_IRQ_MSK_BIT|TPC_DOWN_IRQ_MSK_BIT|TPC_DONE_IRQ_MSK_BIT)); + CLEAR_TPC_INT(TPC_UP_IRQ_MSK_BIT|TPC_DOWN_IRQ_MSK_BIT|TPC_DONE_IRQ_MSK_BIT); + + tp_stop(); + + return 0; +} + +static int sprd_tp_resume(struct platform_device *pdev) +{ + TP_PRINT("func[%s]: touch panel will be enabled\n", __func__); + + /* Enable tp interrupt(up and down) */ + sci_adi_set(TPC_INT_EN,(TPC_UP_IRQ_MSK_BIT |TPC_DOWN_IRQ_MSK_BIT)); + + return 0; +} +#else +#define sprd_tp_suspend NULL +#define sprd_tp_resume NULL +#endif + +static struct platform_driver sprd_tp_driver = { + .probe = sprd_tp_probe, + .remove = sprd_tp_remove, + .suspend = sprd_tp_suspend, + .resume = sprd_tp_resume, + .driver = { + .owner = THIS_MODULE, + .name = "sprd-tp", + }, +}; + +static int __init tp_sprd_init(void) +{ + TP_PRINT("TP:SC8800G Touch Panel driver $Revision:1.0 $\n"); + + return platform_driver_register(&sprd_tp_driver); +} + +static void __exit tp_sprd_exit(void) +{ + TP_PRINT("TP:SC8800G Touch Panel remove!\n"); + platform_driver_unregister(&sprd_tp_driver); +} + +module_init(tp_sprd_init); +module_exit(tp_sprd_exit); + +MODULE_DESCRIPTION("SC8800 Touch Panel driver"); +MODULE_AUTHOR("Ke Wang, "); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/tps6507x-ts.c b/drivers/input/touchscreen/tps6507x-ts.c new file mode 100644 index 00000000..820a066c --- /dev/null +++ b/drivers/input/touchscreen/tps6507x-ts.c @@ -0,0 +1,377 @@ +/* + * Touchscreen driver for the tps6507x chip. + * + * Copyright (c) 2009 RidgeRun (todd.fischer@ridgerun.com) + * + * Credits: + * + * Using code from tsc2007, MtekVision Co., Ltd. + * + * For licencing details see kernel-base/COPYING + * + * TPS65070, TPS65073, TPS650731, and TPS650732 support + * 10 bit touch screen interface. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define TSC_DEFAULT_POLL_PERIOD 30 /* ms */ +#define TPS_DEFAULT_MIN_PRESSURE 0x30 +#define MAX_10BIT ((1 << 10) - 1) + +#define TPS6507X_ADCONFIG_CONVERT_TS (TPS6507X_ADCONFIG_AD_ENABLE | \ + TPS6507X_ADCONFIG_START_CONVERSION | \ + TPS6507X_ADCONFIG_INPUT_REAL_TSC) +#define TPS6507X_ADCONFIG_POWER_DOWN_TS (TPS6507X_ADCONFIG_INPUT_REAL_TSC) + +struct ts_event { + u16 x; + u16 y; + u16 pressure; +}; + +struct tps6507x_ts { + struct input_dev *input_dev; + struct device *dev; + char phys[32]; + struct delayed_work work; + unsigned polling; /* polling is active */ + struct ts_event tc; + struct tps6507x_dev *mfd; + u16 model; + unsigned pendown; + int irq; + void (*clear_penirq)(void); + unsigned long poll_period; /* ms */ + u16 min_pressure; + int vref; /* non-zero to leave vref on */ +}; + +static int tps6507x_read_u8(struct tps6507x_ts *tsc, u8 reg, u8 *data) +{ + int err; + + err = tsc->mfd->read_dev(tsc->mfd, reg, 1, data); + + if (err) + return err; + + return 0; +} + +static int tps6507x_write_u8(struct tps6507x_ts *tsc, u8 reg, u8 data) +{ + return tsc->mfd->write_dev(tsc->mfd, reg, 1, &data); +} + +static s32 tps6507x_adc_conversion(struct tps6507x_ts *tsc, + u8 tsc_mode, u16 *value) +{ + s32 ret; + u8 adc_status; + u8 result; + + /* Route input signal to A/D converter */ + + ret = tps6507x_write_u8(tsc, TPS6507X_REG_TSCMODE, tsc_mode); + if (ret) { + dev_err(tsc->dev, "TSC mode read failed\n"); + goto err; + } + + /* Start A/D conversion */ + + ret = tps6507x_write_u8(tsc, TPS6507X_REG_ADCONFIG, + TPS6507X_ADCONFIG_CONVERT_TS); + if (ret) { + dev_err(tsc->dev, "ADC config write failed\n"); + return ret; + } + + do { + ret = tps6507x_read_u8(tsc, TPS6507X_REG_ADCONFIG, + &adc_status); + if (ret) { + dev_err(tsc->dev, "ADC config read failed\n"); + goto err; + } + } while (adc_status & TPS6507X_ADCONFIG_START_CONVERSION); + + ret = tps6507x_read_u8(tsc, TPS6507X_REG_ADRESULT_2, &result); + if (ret) { + dev_err(tsc->dev, "ADC result 2 read failed\n"); + goto err; + } + + *value = (result & TPS6507X_REG_ADRESULT_2_MASK) << 8; + + ret = tps6507x_read_u8(tsc, TPS6507X_REG_ADRESULT_1, &result); + if (ret) { + dev_err(tsc->dev, "ADC result 1 read failed\n"); + goto err; + } + + *value |= result; + + dev_dbg(tsc->dev, "TSC channel %d = 0x%X\n", tsc_mode, *value); + +err: + return ret; +} + +/* Need to call tps6507x_adc_standby() after using A/D converter for the + * touch screen interrupt to work properly. + */ + +static s32 tps6507x_adc_standby(struct tps6507x_ts *tsc) +{ + s32 ret; + s32 loops = 0; + u8 val; + + ret = tps6507x_write_u8(tsc, TPS6507X_REG_ADCONFIG, + TPS6507X_ADCONFIG_INPUT_TSC); + if (ret) + return ret; + + ret = tps6507x_write_u8(tsc, TPS6507X_REG_TSCMODE, + TPS6507X_TSCMODE_STANDBY); + if (ret) + return ret; + + ret = tps6507x_read_u8(tsc, TPS6507X_REG_INT, &val); + if (ret) + return ret; + + while (val & TPS6507X_REG_TSC_INT) { + mdelay(10); + ret = tps6507x_read_u8(tsc, TPS6507X_REG_INT, &val); + if (ret) + return ret; + loops++; + } + + return ret; +} + +static void tps6507x_ts_handler(struct work_struct *work) +{ + struct tps6507x_ts *tsc = container_of(work, + struct tps6507x_ts, work.work); + struct input_dev *input_dev = tsc->input_dev; + int pendown; + int schd; + int poll = 0; + s32 ret; + + ret = tps6507x_adc_conversion(tsc, TPS6507X_TSCMODE_PRESSURE, + &tsc->tc.pressure); + if (ret) + goto done; + + pendown = tsc->tc.pressure > tsc->min_pressure; + + if (unlikely(!pendown && tsc->pendown)) { + dev_dbg(tsc->dev, "UP\n"); + input_report_key(input_dev, BTN_TOUCH, 0); + input_report_abs(input_dev, ABS_PRESSURE, 0); + input_sync(input_dev); + tsc->pendown = 0; + } + + if (pendown) { + + if (!tsc->pendown) { + dev_dbg(tsc->dev, "DOWN\n"); + input_report_key(input_dev, BTN_TOUCH, 1); + } else + dev_dbg(tsc->dev, "still down\n"); + + ret = tps6507x_adc_conversion(tsc, TPS6507X_TSCMODE_X_POSITION, + &tsc->tc.x); + if (ret) + goto done; + + ret = tps6507x_adc_conversion(tsc, TPS6507X_TSCMODE_Y_POSITION, + &tsc->tc.y); + if (ret) + goto done; + + input_report_abs(input_dev, ABS_X, tsc->tc.x); + input_report_abs(input_dev, ABS_Y, tsc->tc.y); + input_report_abs(input_dev, ABS_PRESSURE, tsc->tc.pressure); + input_sync(input_dev); + tsc->pendown = 1; + poll = 1; + } + +done: + /* always poll if not using interrupts */ + poll = 1; + + if (poll) { + schd = schedule_delayed_work(&tsc->work, + msecs_to_jiffies(tsc->poll_period)); + if (schd) + tsc->polling = 1; + else { + tsc->polling = 0; + dev_err(tsc->dev, "re-schedule failed"); + } + } else + tsc->polling = 0; + + ret = tps6507x_adc_standby(tsc); +} + +static int tps6507x_ts_probe(struct platform_device *pdev) +{ + int error; + struct tps6507x_ts *tsc; + struct tps6507x_dev *tps6507x_dev = dev_get_drvdata(pdev->dev.parent); + struct touchscreen_init_data *init_data; + struct input_dev *input_dev; + struct tps6507x_board *tps_board; + int schd; + + /** + * tps_board points to pmic related constants + * coming from the board-evm file. + */ + + tps_board = (struct tps6507x_board *)tps6507x_dev->dev->platform_data; + + if (!tps_board) { + dev_err(tps6507x_dev->dev, + "Could not find tps6507x platform data\n"); + return -EIO; + } + + /** + * init_data points to array of regulator_init structures + * coming from the board-evm file. + */ + + init_data = tps_board->tps6507x_ts_init_data; + + tsc = kzalloc(sizeof(struct tps6507x_ts), GFP_KERNEL); + if (!tsc) { + dev_err(tps6507x_dev->dev, "failed to allocate driver data\n"); + error = -ENOMEM; + goto err0; + } + + tps6507x_dev->ts = tsc; + tsc->mfd = tps6507x_dev; + tsc->dev = tps6507x_dev->dev; + input_dev = input_allocate_device(); + if (!input_dev) { + dev_err(tsc->dev, "Failed to allocate input device.\n"); + error = -ENOMEM; + goto err1; + } + + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + + input_set_abs_params(input_dev, ABS_X, 0, MAX_10BIT, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 0, MAX_10BIT, 0, 0); + input_set_abs_params(input_dev, ABS_PRESSURE, 0, MAX_10BIT, 0, 0); + + input_dev->name = "TPS6507x Touchscreen"; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = tsc->dev; + + snprintf(tsc->phys, sizeof(tsc->phys), + "%s/input0", dev_name(tsc->dev)); + input_dev->phys = tsc->phys; + + dev_dbg(tsc->dev, "device: %s\n", input_dev->phys); + + input_set_drvdata(input_dev, tsc); + + tsc->input_dev = input_dev; + + INIT_DELAYED_WORK(&tsc->work, tps6507x_ts_handler); + + if (init_data) { + tsc->poll_period = init_data->poll_period; + tsc->vref = init_data->vref; + tsc->min_pressure = init_data->min_pressure; + input_dev->id.vendor = init_data->vendor; + input_dev->id.product = init_data->product; + input_dev->id.version = init_data->version; + } else { + tsc->poll_period = TSC_DEFAULT_POLL_PERIOD; + tsc->min_pressure = TPS_DEFAULT_MIN_PRESSURE; + } + + error = tps6507x_adc_standby(tsc); + if (error) + goto err2; + + error = input_register_device(input_dev); + if (error) + goto err2; + + schd = schedule_delayed_work(&tsc->work, + msecs_to_jiffies(tsc->poll_period)); + + if (schd) + tsc->polling = 1; + else { + tsc->polling = 0; + dev_err(tsc->dev, "schedule failed"); + goto err2; + } + platform_set_drvdata(pdev, tps6507x_dev); + + return 0; + +err2: + cancel_delayed_work_sync(&tsc->work); + input_free_device(input_dev); +err1: + kfree(tsc); + tps6507x_dev->ts = NULL; +err0: + return error; +} + +static int tps6507x_ts_remove(struct platform_device *pdev) +{ + struct tps6507x_dev *tps6507x_dev = platform_get_drvdata(pdev); + struct tps6507x_ts *tsc = tps6507x_dev->ts; + struct input_dev *input_dev = tsc->input_dev; + + cancel_delayed_work_sync(&tsc->work); + + input_unregister_device(input_dev); + + tps6507x_dev->ts = NULL; + kfree(tsc); + + return 0; +} + +static struct platform_driver tps6507x_ts_driver = { + .driver = { + .name = "tps6507x-ts", + .owner = THIS_MODULE, + }, + .probe = tps6507x_ts_probe, + .remove = tps6507x_ts_remove, +}; +module_platform_driver(tps6507x_ts_driver); + +MODULE_AUTHOR("Todd Fischer "); +MODULE_DESCRIPTION("TPS6507x - TouchScreen driver"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:tps6507x-ts"); diff --git a/drivers/input/touchscreen/tsc2005.c b/drivers/input/touchscreen/tsc2005.c new file mode 100644 index 00000000..7213e8b0 --- /dev/null +++ b/drivers/input/touchscreen/tsc2005.c @@ -0,0 +1,756 @@ +/* + * TSC2005 touchscreen driver + * + * Copyright (C) 2006-2010 Nokia Corporation + * + * Author: Lauri Leukkunen + * based on TSC2301 driver by Klaus K. Pedersen + * + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * The touchscreen interface operates as follows: + * + * 1) Pen is pressed against the touchscreen. + * 2) TSC2005 performs AD conversion. + * 3) After the conversion is done TSC2005 drives DAV line down. + * 4) GPIO IRQ is received and tsc2005_irq_thread() is scheduled. + * 5) tsc2005_irq_thread() queues up an spi transfer to fetch the x, y, z1, z2 + * values. + * 6) tsc2005_irq_thread() reports coordinates to input layer and sets up + * tsc2005_penup_timer() to be called after TSC2005_PENUP_TIME_MS (40ms). + * 7) When the penup timer expires, there have not been touch or DAV interrupts + * during the last 40ms which means the pen has been lifted. + * + * ESD recovery via a hardware reset is done if the TSC2005 doesn't respond + * after a configurable period (in ms) of activity. If esd_timeout is 0, the + * watchdog is disabled. + */ + +/* control byte 1 */ +#define TSC2005_CMD 0x80 +#define TSC2005_CMD_NORMAL 0x00 +#define TSC2005_CMD_STOP 0x01 +#define TSC2005_CMD_12BIT 0x04 + +/* control byte 0 */ +#define TSC2005_REG_READ 0x0001 +#define TSC2005_REG_PND0 0x0002 +#define TSC2005_REG_X 0x0000 +#define TSC2005_REG_Y 0x0008 +#define TSC2005_REG_Z1 0x0010 +#define TSC2005_REG_Z2 0x0018 +#define TSC2005_REG_TEMP_HIGH 0x0050 +#define TSC2005_REG_CFR0 0x0060 +#define TSC2005_REG_CFR1 0x0068 +#define TSC2005_REG_CFR2 0x0070 + +/* configuration register 0 */ +#define TSC2005_CFR0_PRECHARGE_276US 0x0040 +#define TSC2005_CFR0_STABTIME_1MS 0x0300 +#define TSC2005_CFR0_CLOCK_1MHZ 0x1000 +#define TSC2005_CFR0_RESOLUTION12 0x2000 +#define TSC2005_CFR0_PENMODE 0x8000 +#define TSC2005_CFR0_INITVALUE (TSC2005_CFR0_STABTIME_1MS | \ + TSC2005_CFR0_CLOCK_1MHZ | \ + TSC2005_CFR0_RESOLUTION12 | \ + TSC2005_CFR0_PRECHARGE_276US | \ + TSC2005_CFR0_PENMODE) + +/* bits common to both read and write of configuration register 0 */ +#define TSC2005_CFR0_RW_MASK 0x3fff + +/* configuration register 1 */ +#define TSC2005_CFR1_BATCHDELAY_4MS 0x0003 +#define TSC2005_CFR1_INITVALUE TSC2005_CFR1_BATCHDELAY_4MS + +/* configuration register 2 */ +#define TSC2005_CFR2_MAVE_Z 0x0004 +#define TSC2005_CFR2_MAVE_Y 0x0008 +#define TSC2005_CFR2_MAVE_X 0x0010 +#define TSC2005_CFR2_AVG_7 0x0800 +#define TSC2005_CFR2_MEDIUM_15 0x3000 +#define TSC2005_CFR2_INITVALUE (TSC2005_CFR2_MAVE_X | \ + TSC2005_CFR2_MAVE_Y | \ + TSC2005_CFR2_MAVE_Z | \ + TSC2005_CFR2_MEDIUM_15 | \ + TSC2005_CFR2_AVG_7) + +#define MAX_12BIT 0xfff +#define TSC2005_SPI_MAX_SPEED_HZ 10000000 +#define TSC2005_PENUP_TIME_MS 40 + +struct tsc2005_spi_rd { + struct spi_transfer spi_xfer; + u32 spi_tx; + u32 spi_rx; +}; + +struct tsc2005 { + struct spi_device *spi; + + struct spi_message spi_read_msg; + struct tsc2005_spi_rd spi_x; + struct tsc2005_spi_rd spi_y; + struct tsc2005_spi_rd spi_z1; + struct tsc2005_spi_rd spi_z2; + + struct input_dev *idev; + char phys[32]; + + struct mutex mutex; + + /* raw copy of previous x,y,z */ + int in_x; + int in_y; + int in_z1; + int in_z2; + + spinlock_t lock; + struct timer_list penup_timer; + + unsigned int esd_timeout; + struct delayed_work esd_work; + unsigned long last_valid_interrupt; + + unsigned int x_plate_ohm; + + bool opened; + bool suspended; + + bool pen_down; + + void (*set_reset)(bool enable); +}; + +static int tsc2005_cmd(struct tsc2005 *ts, u8 cmd) +{ + u8 tx = TSC2005_CMD | TSC2005_CMD_12BIT | cmd; + struct spi_transfer xfer = { + .tx_buf = &tx, + .len = 1, + .bits_per_word = 8, + }; + struct spi_message msg; + int error; + + spi_message_init(&msg); + spi_message_add_tail(&xfer, &msg); + + error = spi_sync(ts->spi, &msg); + if (error) { + dev_err(&ts->spi->dev, "%s: failed, command: %x, error: %d\n", + __func__, cmd, error); + return error; + } + + return 0; +} + +static int tsc2005_write(struct tsc2005 *ts, u8 reg, u16 value) +{ + u32 tx = ((reg | TSC2005_REG_PND0) << 16) | value; + struct spi_transfer xfer = { + .tx_buf = &tx, + .len = 4, + .bits_per_word = 24, + }; + struct spi_message msg; + int error; + + spi_message_init(&msg); + spi_message_add_tail(&xfer, &msg); + + error = spi_sync(ts->spi, &msg); + if (error) { + dev_err(&ts->spi->dev, + "%s: failed, register: %x, value: %x, error: %d\n", + __func__, reg, value, error); + return error; + } + + return 0; +} + +static void tsc2005_setup_read(struct tsc2005_spi_rd *rd, u8 reg, bool last) +{ + memset(rd, 0, sizeof(*rd)); + + rd->spi_tx = (reg | TSC2005_REG_READ) << 16; + rd->spi_xfer.tx_buf = &rd->spi_tx; + rd->spi_xfer.rx_buf = &rd->spi_rx; + rd->spi_xfer.len = 4; + rd->spi_xfer.bits_per_word = 24; + rd->spi_xfer.cs_change = !last; +} + +static int tsc2005_read(struct tsc2005 *ts, u8 reg, u16 *value) +{ + struct tsc2005_spi_rd spi_rd; + struct spi_message msg; + int error; + + tsc2005_setup_read(&spi_rd, reg, true); + + spi_message_init(&msg); + spi_message_add_tail(&spi_rd.spi_xfer, &msg); + + error = spi_sync(ts->spi, &msg); + if (error) + return error; + + *value = spi_rd.spi_rx; + return 0; +} + +static void tsc2005_update_pen_state(struct tsc2005 *ts, + int x, int y, int pressure) +{ + if (pressure) { + input_report_abs(ts->idev, ABS_X, x); + input_report_abs(ts->idev, ABS_Y, y); + input_report_abs(ts->idev, ABS_PRESSURE, pressure); + if (!ts->pen_down) { + input_report_key(ts->idev, BTN_TOUCH, !!pressure); + ts->pen_down = true; + } + } else { + input_report_abs(ts->idev, ABS_PRESSURE, 0); + if (ts->pen_down) { + input_report_key(ts->idev, BTN_TOUCH, 0); + ts->pen_down = false; + } + } + input_sync(ts->idev); + dev_dbg(&ts->spi->dev, "point(%4d,%4d), pressure (%4d)\n", x, y, + pressure); +} + +static irqreturn_t tsc2005_irq_thread(int irq, void *_ts) +{ + struct tsc2005 *ts = _ts; + unsigned long flags; + unsigned int pressure; + u32 x, y; + u32 z1, z2; + int error; + + /* read the coordinates */ + error = spi_sync(ts->spi, &ts->spi_read_msg); + if (unlikely(error)) + goto out; + + x = ts->spi_x.spi_rx; + y = ts->spi_y.spi_rx; + z1 = ts->spi_z1.spi_rx; + z2 = ts->spi_z2.spi_rx; + + /* validate position */ + if (unlikely(x > MAX_12BIT || y > MAX_12BIT)) + goto out; + + /* Skip reading if the pressure components are out of range */ + if (unlikely(z1 == 0 || z2 > MAX_12BIT || z1 >= z2)) + goto out; + + /* + * Skip point if this is a pen down with the exact same values as + * the value before pen-up - that implies SPI fed us stale data + */ + if (!ts->pen_down && + ts->in_x == x && ts->in_y == y && + ts->in_z1 == z1 && ts->in_z2 == z2) { + goto out; + } + + /* + * At this point we are happy we have a valid and useful reading. + * Remember it for later comparisons. We may now begin downsampling. + */ + ts->in_x = x; + ts->in_y = y; + ts->in_z1 = z1; + ts->in_z2 = z2; + + /* Compute touch pressure resistance using equation #1 */ + pressure = x * (z2 - z1) / z1; + pressure = pressure * ts->x_plate_ohm / 4096; + if (unlikely(pressure > MAX_12BIT)) + goto out; + + spin_lock_irqsave(&ts->lock, flags); + + tsc2005_update_pen_state(ts, x, y, pressure); + mod_timer(&ts->penup_timer, + jiffies + msecs_to_jiffies(TSC2005_PENUP_TIME_MS)); + + spin_unlock_irqrestore(&ts->lock, flags); + + ts->last_valid_interrupt = jiffies; +out: + return IRQ_HANDLED; +} + +static void tsc2005_penup_timer(unsigned long data) +{ + struct tsc2005 *ts = (struct tsc2005 *)data; + unsigned long flags; + + spin_lock_irqsave(&ts->lock, flags); + tsc2005_update_pen_state(ts, 0, 0, 0); + spin_unlock_irqrestore(&ts->lock, flags); +} + +static void tsc2005_start_scan(struct tsc2005 *ts) +{ + tsc2005_write(ts, TSC2005_REG_CFR0, TSC2005_CFR0_INITVALUE); + tsc2005_write(ts, TSC2005_REG_CFR1, TSC2005_CFR1_INITVALUE); + tsc2005_write(ts, TSC2005_REG_CFR2, TSC2005_CFR2_INITVALUE); + tsc2005_cmd(ts, TSC2005_CMD_NORMAL); +} + +static void tsc2005_stop_scan(struct tsc2005 *ts) +{ + tsc2005_cmd(ts, TSC2005_CMD_STOP); +} + +/* must be called with ts->mutex held */ +static void __tsc2005_disable(struct tsc2005 *ts) +{ + tsc2005_stop_scan(ts); + + disable_irq(ts->spi->irq); + del_timer_sync(&ts->penup_timer); + + cancel_delayed_work_sync(&ts->esd_work); + + enable_irq(ts->spi->irq); +} + +/* must be called with ts->mutex held */ +static void __tsc2005_enable(struct tsc2005 *ts) +{ + tsc2005_start_scan(ts); + + if (ts->esd_timeout && ts->set_reset) { + ts->last_valid_interrupt = jiffies; + schedule_delayed_work(&ts->esd_work, + round_jiffies_relative( + msecs_to_jiffies(ts->esd_timeout))); + } + +} + +static ssize_t tsc2005_selftest_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct spi_device *spi = to_spi_device(dev); + struct tsc2005 *ts = spi_get_drvdata(spi); + u16 temp_high; + u16 temp_high_orig; + u16 temp_high_test; + bool success = true; + int error; + + mutex_lock(&ts->mutex); + + /* + * Test TSC2005 communications via temp high register. + */ + __tsc2005_disable(ts); + + error = tsc2005_read(ts, TSC2005_REG_TEMP_HIGH, &temp_high_orig); + if (error) { + dev_warn(dev, "selftest failed: read error %d\n", error); + success = false; + goto out; + } + + temp_high_test = (temp_high_orig - 1) & MAX_12BIT; + + error = tsc2005_write(ts, TSC2005_REG_TEMP_HIGH, temp_high_test); + if (error) { + dev_warn(dev, "selftest failed: write error %d\n", error); + success = false; + goto out; + } + + error = tsc2005_read(ts, TSC2005_REG_TEMP_HIGH, &temp_high); + if (error) { + dev_warn(dev, "selftest failed: read error %d after write\n", + error); + success = false; + goto out; + } + + if (temp_high != temp_high_test) { + dev_warn(dev, "selftest failed: %d != %d\n", + temp_high, temp_high_test); + success = false; + } + + /* hardware reset */ + ts->set_reset(false); + usleep_range(100, 500); /* only 10us required */ + ts->set_reset(true); + + if (!success) + goto out; + + /* test that the reset really happened */ + error = tsc2005_read(ts, TSC2005_REG_TEMP_HIGH, &temp_high); + if (error) { + dev_warn(dev, "selftest failed: read error %d after reset\n", + error); + success = false; + goto out; + } + + if (temp_high != temp_high_orig) { + dev_warn(dev, "selftest failed after reset: %d != %d\n", + temp_high, temp_high_orig); + success = false; + } + +out: + __tsc2005_enable(ts); + mutex_unlock(&ts->mutex); + + return sprintf(buf, "%d\n", success); +} + +static DEVICE_ATTR(selftest, S_IRUGO, tsc2005_selftest_show, NULL); + +static struct attribute *tsc2005_attrs[] = { + &dev_attr_selftest.attr, + NULL +}; + +static umode_t tsc2005_attr_is_visible(struct kobject *kobj, + struct attribute *attr, int n) +{ + struct device *dev = container_of(kobj, struct device, kobj); + struct spi_device *spi = to_spi_device(dev); + struct tsc2005 *ts = spi_get_drvdata(spi); + umode_t mode = attr->mode; + + if (attr == &dev_attr_selftest.attr) { + if (!ts->set_reset) + mode = 0; + } + + return mode; +} + +static const struct attribute_group tsc2005_attr_group = { + .is_visible = tsc2005_attr_is_visible, + .attrs = tsc2005_attrs, +}; + +static void tsc2005_esd_work(struct work_struct *work) +{ + struct tsc2005 *ts = container_of(work, struct tsc2005, esd_work.work); + int error; + u16 r; + + if (!mutex_trylock(&ts->mutex)) { + /* + * If the mutex is taken, it means that disable or enable is in + * progress. In that case just reschedule the work. If the work + * is not needed, it will be canceled by disable. + */ + goto reschedule; + } + + if (time_is_after_jiffies(ts->last_valid_interrupt + + msecs_to_jiffies(ts->esd_timeout))) + goto out; + + /* We should be able to read register without disabling interrupts. */ + error = tsc2005_read(ts, TSC2005_REG_CFR0, &r); + if (!error && + !((r ^ TSC2005_CFR0_INITVALUE) & TSC2005_CFR0_RW_MASK)) { + goto out; + } + + /* + * If we could not read our known value from configuration register 0 + * then we should reset the controller as if from power-up and start + * scanning again. + */ + dev_info(&ts->spi->dev, "TSC2005 not responding - resetting\n"); + + disable_irq(ts->spi->irq); + del_timer_sync(&ts->penup_timer); + + tsc2005_update_pen_state(ts, 0, 0, 0); + + ts->set_reset(false); + usleep_range(100, 500); /* only 10us required */ + ts->set_reset(true); + + enable_irq(ts->spi->irq); + tsc2005_start_scan(ts); + +out: + mutex_unlock(&ts->mutex); +reschedule: + /* re-arm the watchdog */ + schedule_delayed_work(&ts->esd_work, + round_jiffies_relative( + msecs_to_jiffies(ts->esd_timeout))); +} + +static int tsc2005_open(struct input_dev *input) +{ + struct tsc2005 *ts = input_get_drvdata(input); + + mutex_lock(&ts->mutex); + + if (!ts->suspended) + __tsc2005_enable(ts); + + ts->opened = true; + + mutex_unlock(&ts->mutex); + + return 0; +} + +static void tsc2005_close(struct input_dev *input) +{ + struct tsc2005 *ts = input_get_drvdata(input); + + mutex_lock(&ts->mutex); + + if (!ts->suspended) + __tsc2005_disable(ts); + + ts->opened = false; + + mutex_unlock(&ts->mutex); +} + +static void tsc2005_setup_spi_xfer(struct tsc2005 *ts) +{ + tsc2005_setup_read(&ts->spi_x, TSC2005_REG_X, false); + tsc2005_setup_read(&ts->spi_y, TSC2005_REG_Y, false); + tsc2005_setup_read(&ts->spi_z1, TSC2005_REG_Z1, false); + tsc2005_setup_read(&ts->spi_z2, TSC2005_REG_Z2, true); + + spi_message_init(&ts->spi_read_msg); + spi_message_add_tail(&ts->spi_x.spi_xfer, &ts->spi_read_msg); + spi_message_add_tail(&ts->spi_y.spi_xfer, &ts->spi_read_msg); + spi_message_add_tail(&ts->spi_z1.spi_xfer, &ts->spi_read_msg); + spi_message_add_tail(&ts->spi_z2.spi_xfer, &ts->spi_read_msg); +} + +static int tsc2005_probe(struct spi_device *spi) +{ + const struct tsc2005_platform_data *pdata = spi->dev.platform_data; + struct tsc2005 *ts; + struct input_dev *input_dev; + unsigned int max_x, max_y, max_p; + unsigned int fudge_x, fudge_y, fudge_p; + int error; + + if (!pdata) { + dev_dbg(&spi->dev, "no platform data\n"); + return -ENODEV; + } + + fudge_x = pdata->ts_x_fudge ? : 4; + fudge_y = pdata->ts_y_fudge ? : 8; + fudge_p = pdata->ts_pressure_fudge ? : 2; + max_x = pdata->ts_x_max ? : MAX_12BIT; + max_y = pdata->ts_y_max ? : MAX_12BIT; + max_p = pdata->ts_pressure_max ? : MAX_12BIT; + + if (spi->irq <= 0) { + dev_dbg(&spi->dev, "no irq\n"); + return -ENODEV; + } + + spi->mode = SPI_MODE_0; + spi->bits_per_word = 8; + if (!spi->max_speed_hz) + spi->max_speed_hz = TSC2005_SPI_MAX_SPEED_HZ; + + error = spi_setup(spi); + if (error) + return error; + + ts = kzalloc(sizeof(*ts), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!ts || !input_dev) { + error = -ENOMEM; + goto err_free_mem; + } + + ts->spi = spi; + ts->idev = input_dev; + + ts->x_plate_ohm = pdata->ts_x_plate_ohm ? : 280; + ts->esd_timeout = pdata->esd_timeout_ms; + ts->set_reset = pdata->set_reset; + + mutex_init(&ts->mutex); + + spin_lock_init(&ts->lock); + setup_timer(&ts->penup_timer, tsc2005_penup_timer, (unsigned long)ts); + + INIT_DELAYED_WORK(&ts->esd_work, tsc2005_esd_work); + + tsc2005_setup_spi_xfer(ts); + + snprintf(ts->phys, sizeof(ts->phys), + "%s/input-ts", dev_name(&spi->dev)); + + input_dev->name = "TSC2005 touchscreen"; + input_dev->phys = ts->phys; + input_dev->id.bustype = BUS_SPI; + input_dev->dev.parent = &spi->dev; + input_dev->evbit[0] = BIT(EV_ABS) | BIT(EV_KEY); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + + input_set_abs_params(input_dev, ABS_X, 0, max_x, fudge_x, 0); + input_set_abs_params(input_dev, ABS_Y, 0, max_y, fudge_y, 0); + input_set_abs_params(input_dev, ABS_PRESSURE, 0, max_p, fudge_p, 0); + + input_dev->open = tsc2005_open; + input_dev->close = tsc2005_close; + + input_set_drvdata(input_dev, ts); + + /* Ensure the touchscreen is off */ + tsc2005_stop_scan(ts); + + error = request_threaded_irq(spi->irq, NULL, tsc2005_irq_thread, + IRQF_TRIGGER_RISING | IRQF_ONESHOT, + "tsc2005", ts); + if (error) { + dev_err(&spi->dev, "Failed to request irq, err: %d\n", error); + goto err_free_mem; + } + + spi_set_drvdata(spi, ts); + error = sysfs_create_group(&spi->dev.kobj, &tsc2005_attr_group); + if (error) { + dev_err(&spi->dev, + "Failed to create sysfs attributes, err: %d\n", error); + goto err_clear_drvdata; + } + + error = input_register_device(ts->idev); + if (error) { + dev_err(&spi->dev, + "Failed to register input device, err: %d\n", error); + goto err_remove_sysfs; + } + + irq_set_irq_wake(spi->irq, 1); + return 0; + +err_remove_sysfs: + sysfs_remove_group(&spi->dev.kobj, &tsc2005_attr_group); +err_clear_drvdata: + spi_set_drvdata(spi, NULL); + free_irq(spi->irq, ts); +err_free_mem: + input_free_device(input_dev); + kfree(ts); + return error; +} + +static int tsc2005_remove(struct spi_device *spi) +{ + struct tsc2005 *ts = spi_get_drvdata(spi); + + sysfs_remove_group(&ts->spi->dev.kobj, &tsc2005_attr_group); + + free_irq(ts->spi->irq, ts); + input_unregister_device(ts->idev); + kfree(ts); + + spi_set_drvdata(spi, NULL); + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int tsc2005_suspend(struct device *dev) +{ + struct spi_device *spi = to_spi_device(dev); + struct tsc2005 *ts = spi_get_drvdata(spi); + + mutex_lock(&ts->mutex); + + if (!ts->suspended && ts->opened) + __tsc2005_disable(ts); + + ts->suspended = true; + + mutex_unlock(&ts->mutex); + + return 0; +} + +static int tsc2005_resume(struct device *dev) +{ + struct spi_device *spi = to_spi_device(dev); + struct tsc2005 *ts = spi_get_drvdata(spi); + + mutex_lock(&ts->mutex); + + if (ts->suspended && ts->opened) + __tsc2005_enable(ts); + + ts->suspended = false; + + mutex_unlock(&ts->mutex); + + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(tsc2005_pm_ops, tsc2005_suspend, tsc2005_resume); + +static struct spi_driver tsc2005_driver = { + .driver = { + .name = "tsc2005", + .owner = THIS_MODULE, + .pm = &tsc2005_pm_ops, + }, + .probe = tsc2005_probe, + .remove = tsc2005_remove, +}; + +module_spi_driver(tsc2005_driver); + +MODULE_AUTHOR("Lauri Leukkunen "); +MODULE_DESCRIPTION("TSC2005 Touchscreen Driver"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("spi:tsc2005"); diff --git a/drivers/input/touchscreen/tsc2007.c b/drivers/input/touchscreen/tsc2007.c new file mode 100644 index 00000000..0b67ba47 --- /dev/null +++ b/drivers/input/touchscreen/tsc2007.c @@ -0,0 +1,406 @@ +/* + * drivers/input/touchscreen/tsc2007.c + * + * Copyright (c) 2008 MtekVision Co., Ltd. + * Kwangwoo Lee + * + * Using code from: + * - ads7846.c + * Copyright (c) 2005 David Brownell + * Copyright (c) 2006 Nokia Corporation + * - corgi_ts.c + * Copyright (C) 2004-2005 Richard Purdie + * - omap_ts.[hc], ads7846.h, ts_osk.c + * Copyright (C) 2002 MontaVista Software + * Copyright (C) 2004 Texas Instruments + * Copyright (C) 2005 Dirk Behme + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include + +#define TSC2007_MEASURE_TEMP0 (0x0 << 4) +#define TSC2007_MEASURE_AUX (0x2 << 4) +#define TSC2007_MEASURE_TEMP1 (0x4 << 4) +#define TSC2007_ACTIVATE_XN (0x8 << 4) +#define TSC2007_ACTIVATE_YN (0x9 << 4) +#define TSC2007_ACTIVATE_YP_XN (0xa << 4) +#define TSC2007_SETUP (0xb << 4) +#define TSC2007_MEASURE_X (0xc << 4) +#define TSC2007_MEASURE_Y (0xd << 4) +#define TSC2007_MEASURE_Z1 (0xe << 4) +#define TSC2007_MEASURE_Z2 (0xf << 4) + +#define TSC2007_POWER_OFF_IRQ_EN (0x0 << 2) +#define TSC2007_ADC_ON_IRQ_DIS0 (0x1 << 2) +#define TSC2007_ADC_OFF_IRQ_EN (0x2 << 2) +#define TSC2007_ADC_ON_IRQ_DIS1 (0x3 << 2) + +#define TSC2007_12BIT (0x0 << 1) +#define TSC2007_8BIT (0x1 << 1) + +#define MAX_12BIT ((1 << 12) - 1) + +#define ADC_ON_12BIT (TSC2007_12BIT | TSC2007_ADC_ON_IRQ_DIS0) + +#define READ_Y (ADC_ON_12BIT | TSC2007_MEASURE_Y) +#define READ_Z1 (ADC_ON_12BIT | TSC2007_MEASURE_Z1) +#define READ_Z2 (ADC_ON_12BIT | TSC2007_MEASURE_Z2) +#define READ_X (ADC_ON_12BIT | TSC2007_MEASURE_X) +#define PWRDOWN (TSC2007_12BIT | TSC2007_POWER_OFF_IRQ_EN) + +struct ts_event { + u16 x; + u16 y; + u16 z1, z2; +}; + +struct tsc2007 { + struct input_dev *input; + char phys[32]; + + struct i2c_client *client; + + u16 model; + u16 x_plate_ohms; + u16 max_rt; + unsigned long poll_delay; + unsigned long poll_period; + + int irq; + + wait_queue_head_t wait; + bool stopped; + + int (*get_pendown_state)(void); + void (*clear_penirq)(void); +}; + +static inline int tsc2007_xfer(struct tsc2007 *tsc, u8 cmd) +{ + s32 data; + u16 val; + + data = i2c_smbus_read_word_data(tsc->client, cmd); + if (data < 0) { + dev_err(&tsc->client->dev, "i2c io error: %d\n", data); + return data; + } + + /* The protocol and raw data format from i2c interface: + * S Addr Wr [A] Comm [A] S Addr Rd [A] [DataLow] A [DataHigh] NA P + * Where DataLow has [D11-D4], DataHigh has [D3-D0 << 4 | Dummy 4bit]. + */ + val = swab16(data) >> 4; + + dev_dbg(&tsc->client->dev, "data: 0x%x, val: 0x%x\n", data, val); + + return val; +} + +static void tsc2007_read_values(struct tsc2007 *tsc, struct ts_event *tc) +{ + /* y- still on; turn on only y+ (and ADC) */ + tc->y = tsc2007_xfer(tsc, READ_Y); + + /* turn y- off, x+ on, then leave in lowpower */ + tc->x = tsc2007_xfer(tsc, READ_X); + + /* turn y+ off, x- on; we'll use formula #1 */ + tc->z1 = tsc2007_xfer(tsc, READ_Z1); + tc->z2 = tsc2007_xfer(tsc, READ_Z2); + + /* Prepare for next touch reading - power down ADC, enable PENIRQ */ + tsc2007_xfer(tsc, PWRDOWN); +} + +static u32 tsc2007_calculate_pressure(struct tsc2007 *tsc, struct ts_event *tc) +{ + u32 rt = 0; + + /* range filtering */ + if (tc->x == MAX_12BIT) + tc->x = 0; + + if (likely(tc->x && tc->z1)) { + /* compute touch pressure resistance using equation #1 */ + rt = tc->z2 - tc->z1; + rt *= tc->x; + rt *= tsc->x_plate_ohms; + rt /= tc->z1; + rt = (rt + 2047) >> 12; + } + + return rt; +} + +static bool tsc2007_is_pen_down(struct tsc2007 *ts) +{ + /* + * NOTE: We can't rely on the pressure to determine the pen down + * state, even though this controller has a pressure sensor. + * The pressure value can fluctuate for quite a while after + * lifting the pen and in some cases may not even settle at the + * expected value. + * + * The only safe way to check for the pen up condition is in the + * work function by reading the pen signal state (it's a GPIO + * and IRQ). Unfortunately such callback is not always available, + * in that case we assume that the pen is down and expect caller + * to fall back on the pressure reading. + */ + + if (!ts->get_pendown_state) + return true; + + return ts->get_pendown_state(); +} + +static irqreturn_t tsc2007_soft_irq(int irq, void *handle) +{ + struct tsc2007 *ts = handle; + struct input_dev *input = ts->input; + struct ts_event tc; + u32 rt; + + while (!ts->stopped && tsc2007_is_pen_down(ts)) { + + /* pen is down, continue with the measurement */ + tsc2007_read_values(ts, &tc); + + rt = tsc2007_calculate_pressure(ts, &tc); + + if (rt == 0 && !ts->get_pendown_state) { + /* + * If pressure reported is 0 and we don't have + * callback to check pendown state, we have to + * assume that pen was lifted up. + */ + break; + } + + if (rt <= ts->max_rt) { + dev_dbg(&ts->client->dev, + "DOWN point(%4d,%4d), pressure (%4u)\n", + tc.x, tc.y, rt); + + input_report_key(input, BTN_TOUCH, 1); + input_report_abs(input, ABS_X, tc.x); + input_report_abs(input, ABS_Y, tc.y); + input_report_abs(input, ABS_PRESSURE, rt); + + input_sync(input); + + } else { + /* + * Sample found inconsistent by debouncing or pressure is + * beyond the maximum. Don't report it to user space, + * repeat at least once more the measurement. + */ + dev_dbg(&ts->client->dev, "ignored pressure %d\n", rt); + } + + wait_event_timeout(ts->wait, ts->stopped, + msecs_to_jiffies(ts->poll_period)); + } + + dev_dbg(&ts->client->dev, "UP\n"); + + input_report_key(input, BTN_TOUCH, 0); + input_report_abs(input, ABS_PRESSURE, 0); + input_sync(input); + + if (ts->clear_penirq) + ts->clear_penirq(); + + return IRQ_HANDLED; +} + +static irqreturn_t tsc2007_hard_irq(int irq, void *handle) +{ + struct tsc2007 *ts = handle; + + if (!ts->get_pendown_state || likely(ts->get_pendown_state())) + return IRQ_WAKE_THREAD; + + if (ts->clear_penirq) + ts->clear_penirq(); + + return IRQ_HANDLED; +} + +static void tsc2007_stop(struct tsc2007 *ts) +{ + ts->stopped = true; + mb(); + wake_up(&ts->wait); + + disable_irq(ts->irq); +} + +static int tsc2007_open(struct input_dev *input_dev) +{ + struct tsc2007 *ts = input_get_drvdata(input_dev); + int err; + + ts->stopped = false; + mb(); + + enable_irq(ts->irq); + + /* Prepare for touch readings - power down ADC and enable PENIRQ */ + err = tsc2007_xfer(ts, PWRDOWN); + if (err < 0) { + tsc2007_stop(ts); + return err; + } + + return 0; +} + +static void tsc2007_close(struct input_dev *input_dev) +{ + struct tsc2007 *ts = input_get_drvdata(input_dev); + + tsc2007_stop(ts); +} + +static int tsc2007_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct tsc2007 *ts; + struct tsc2007_platform_data *pdata = client->dev.platform_data; + struct input_dev *input_dev; + int err; + + if (!pdata) { + dev_err(&client->dev, "platform data is required!\n"); + return -EINVAL; + } + + if (!i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_READ_WORD_DATA)) + return -EIO; + + ts = kzalloc(sizeof(struct tsc2007), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!ts || !input_dev) { + err = -ENOMEM; + goto err_free_mem; + } + + ts->client = client; + ts->irq = client->irq; + ts->input = input_dev; + init_waitqueue_head(&ts->wait); + + ts->model = pdata->model; + ts->x_plate_ohms = pdata->x_plate_ohms; + ts->max_rt = pdata->max_rt ? : MAX_12BIT; + ts->poll_delay = pdata->poll_delay ? : 1; + ts->poll_period = pdata->poll_period ? : 1; + ts->get_pendown_state = pdata->get_pendown_state; + ts->clear_penirq = pdata->clear_penirq; + + if (pdata->x_plate_ohms == 0) { + dev_err(&client->dev, "x_plate_ohms is not set up in platform data"); + err = -EINVAL; + goto err_free_mem; + } + + snprintf(ts->phys, sizeof(ts->phys), + "%s/input0", dev_name(&client->dev)); + + input_dev->name = "TSC2007 Touchscreen"; + input_dev->phys = ts->phys; + input_dev->id.bustype = BUS_I2C; + + input_dev->open = tsc2007_open; + input_dev->close = tsc2007_close; + + input_set_drvdata(input_dev, ts); + + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + + input_set_abs_params(input_dev, ABS_X, 0, MAX_12BIT, pdata->fuzzx, 0); + input_set_abs_params(input_dev, ABS_Y, 0, MAX_12BIT, pdata->fuzzy, 0); + input_set_abs_params(input_dev, ABS_PRESSURE, 0, MAX_12BIT, + pdata->fuzzz, 0); + + if (pdata->init_platform_hw) + pdata->init_platform_hw(); + + err = request_threaded_irq(ts->irq, tsc2007_hard_irq, tsc2007_soft_irq, + IRQF_ONESHOT, client->dev.driver->name, ts); + if (err < 0) { + dev_err(&client->dev, "irq %d busy?\n", ts->irq); + goto err_free_mem; + } + + tsc2007_stop(ts); + + err = input_register_device(input_dev); + if (err) + goto err_free_irq; + + i2c_set_clientdata(client, ts); + + return 0; + + err_free_irq: + free_irq(ts->irq, ts); + if (pdata->exit_platform_hw) + pdata->exit_platform_hw(); + err_free_mem: + input_free_device(input_dev); + kfree(ts); + return err; +} + +static int tsc2007_remove(struct i2c_client *client) +{ + struct tsc2007 *ts = i2c_get_clientdata(client); + struct tsc2007_platform_data *pdata = client->dev.platform_data; + + free_irq(ts->irq, ts); + + if (pdata->exit_platform_hw) + pdata->exit_platform_hw(); + + input_unregister_device(ts->input); + kfree(ts); + + return 0; +} + +static const struct i2c_device_id tsc2007_idtable[] = { + { "tsc2007", 0 }, + { } +}; + +MODULE_DEVICE_TABLE(i2c, tsc2007_idtable); + +static struct i2c_driver tsc2007_driver = { + .driver = { + .owner = THIS_MODULE, + .name = "tsc2007" + }, + .id_table = tsc2007_idtable, + .probe = tsc2007_probe, + .remove = tsc2007_remove, +}; + +module_i2c_driver(tsc2007_driver); + +MODULE_AUTHOR("Kwangwoo Lee "); +MODULE_DESCRIPTION("TSC2007 TouchScreen Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/tsc40.c b/drivers/input/touchscreen/tsc40.c new file mode 100644 index 00000000..eb96f168 --- /dev/null +++ b/drivers/input/touchscreen/tsc40.c @@ -0,0 +1,173 @@ +/* + * TSC-40 serial touchscreen driver. It should be compatible with + * TSC-10 and 25. + * + * Author: Sebastian Andrzej Siewior + * License: GPLv2 as published by the FSF. + */ + +#include +#include +#include +#include +#include +#include + +#define PACKET_LENGTH 5 +struct tsc_ser { + struct input_dev *dev; + struct serio *serio; + u32 idx; + unsigned char data[PACKET_LENGTH]; + char phys[32]; +}; + +static void tsc_process_data(struct tsc_ser *ptsc) +{ + struct input_dev *dev = ptsc->dev; + u8 *data = ptsc->data; + u32 x; + u32 y; + + x = ((data[1] & 0x03) << 8) | data[2]; + y = ((data[3] & 0x03) << 8) | data[4]; + + input_report_abs(dev, ABS_X, x); + input_report_abs(dev, ABS_Y, y); + input_report_key(dev, BTN_TOUCH, 1); + + input_sync(dev); +} + +static irqreturn_t tsc_interrupt(struct serio *serio, + unsigned char data, unsigned int flags) +{ + struct tsc_ser *ptsc = serio_get_drvdata(serio); + struct input_dev *dev = ptsc->dev; + + ptsc->data[ptsc->idx] = data; + switch (ptsc->idx++) { + case 0: + if (unlikely((data & 0x3e) != 0x10)) { + dev_dbg(&serio->dev, + "unsynchronized packet start (0x%02x)\n", data); + ptsc->idx = 0; + } else if (!(data & 0x01)) { + input_report_key(dev, BTN_TOUCH, 0); + input_sync(dev); + ptsc->idx = 0; + } + break; + + case 1: + case 3: + if (unlikely(data & 0xfc)) { + dev_dbg(&serio->dev, + "unsynchronized data 0x%02x at offset %d\n", + data, ptsc->idx - 1); + ptsc->idx = 0; + } + break; + + case 4: + tsc_process_data(ptsc); + ptsc->idx = 0; + break; + } + + return IRQ_HANDLED; +} + +static int tsc_connect(struct serio *serio, struct serio_driver *drv) +{ + struct tsc_ser *ptsc; + struct input_dev *input_dev; + int error; + + ptsc = kzalloc(sizeof(struct tsc_ser), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!ptsc || !input_dev) { + error = -ENOMEM; + goto fail1; + } + + ptsc->serio = serio; + ptsc->dev = input_dev; + snprintf(ptsc->phys, sizeof(ptsc->phys), "%s/input0", serio->phys); + + input_dev->name = "TSC-10/25/40 Serial TouchScreen"; + input_dev->phys = ptsc->phys; + input_dev->id.bustype = BUS_RS232; + input_dev->id.vendor = SERIO_TSC40; + input_dev->id.product = 40; + input_dev->id.version = 0x0001; + input_dev->dev.parent = &serio->dev; + + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + __set_bit(BTN_TOUCH, input_dev->keybit); + input_set_abs_params(ptsc->dev, ABS_X, 0, 0x3ff, 0, 0); + input_set_abs_params(ptsc->dev, ABS_Y, 0, 0x3ff, 0, 0); + + serio_set_drvdata(serio, ptsc); + + error = serio_open(serio, drv); + if (error) + goto fail2; + + error = input_register_device(ptsc->dev); + if (error) + goto fail3; + + return 0; + +fail3: + serio_close(serio); +fail2: + serio_set_drvdata(serio, NULL); +fail1: + input_free_device(input_dev); + kfree(ptsc); + return error; +} + +static void tsc_disconnect(struct serio *serio) +{ + struct tsc_ser *ptsc = serio_get_drvdata(serio); + + serio_close(serio); + + input_unregister_device(ptsc->dev); + kfree(ptsc); + + serio_set_drvdata(serio, NULL); +} + +static struct serio_device_id tsc_serio_ids[] = { + { + .type = SERIO_RS232, + .proto = SERIO_TSC40, + .id = SERIO_ANY, + .extra = SERIO_ANY, + }, + { 0 } +}; +MODULE_DEVICE_TABLE(serio, tsc_serio_ids); + +#define DRIVER_DESC "TSC-10/25/40 serial touchscreen driver" + +static struct serio_driver tsc_drv = { + .driver = { + .name = "tsc40", + }, + .description = DRIVER_DESC, + .id_table = tsc_serio_ids, + .interrupt = tsc_interrupt, + .connect = tsc_connect, + .disconnect = tsc_disconnect, +}; + +module_serio_driver(tsc_drv); + +MODULE_AUTHOR("Sebastian Andrzej Siewior "); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/input/touchscreen/ucb1400_ts.c b/drivers/input/touchscreen/ucb1400_ts.c new file mode 100644 index 00000000..1271f97b --- /dev/null +++ b/drivers/input/touchscreen/ucb1400_ts.c @@ -0,0 +1,467 @@ +/* + * Philips UCB1400 touchscreen driver + * + * Author: Nicolas Pitre + * Created: September 25, 2006 + * Copyright: MontaVista Software, Inc. + * + * Spliting done by: Marek Vasut + * If something doesn't work and it worked before spliting, e-mail me, + * dont bother Nicolas please ;-) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This code is heavily based on ucb1x00-*.c copyrighted by Russell King + * covering the UCB1100, UCB1200 and UCB1300.. Support for the UCB1400 has + * been made separate from ucb1x00-core/ucb1x00-ts on Russell's request. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define UCB1400_TS_POLL_PERIOD 10 /* ms */ + +static bool adcsync; +static int ts_delay = 55; /* us */ +static int ts_delay_pressure; /* us */ + +/* Switch to interrupt mode. */ +static void ucb1400_ts_mode_int(struct ucb1400_ts *ucb) +{ + ucb1400_reg_write(ucb->ac97, UCB_TS_CR, + UCB_TS_CR_TSMX_POW | UCB_TS_CR_TSPX_POW | + UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_GND | + UCB_TS_CR_MODE_INT); +} + +/* + * Switch to pressure mode, and read pressure. We don't need to wait + * here, since both plates are being driven. + */ +static unsigned int ucb1400_ts_read_pressure(struct ucb1400_ts *ucb) +{ + ucb1400_reg_write(ucb->ac97, UCB_TS_CR, + UCB_TS_CR_TSMX_POW | UCB_TS_CR_TSPX_POW | + UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_GND | + UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA); + + udelay(ts_delay_pressure); + + return ucb1400_adc_read(ucb->ac97, UCB_ADC_INP_TSPY, adcsync); +} + +/* + * Switch to X position mode and measure Y plate. We switch the plate + * configuration in pressure mode, then switch to position mode. This + * gives a faster response time. Even so, we need to wait about 55us + * for things to stabilise. + */ +static unsigned int ucb1400_ts_read_xpos(struct ucb1400_ts *ucb) +{ + ucb1400_reg_write(ucb->ac97, UCB_TS_CR, + UCB_TS_CR_TSMX_GND | UCB_TS_CR_TSPX_POW | + UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA); + ucb1400_reg_write(ucb->ac97, UCB_TS_CR, + UCB_TS_CR_TSMX_GND | UCB_TS_CR_TSPX_POW | + UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA); + ucb1400_reg_write(ucb->ac97, UCB_TS_CR, + UCB_TS_CR_TSMX_GND | UCB_TS_CR_TSPX_POW | + UCB_TS_CR_MODE_POS | UCB_TS_CR_BIAS_ENA); + + udelay(ts_delay); + + return ucb1400_adc_read(ucb->ac97, UCB_ADC_INP_TSPY, adcsync); +} + +/* + * Switch to Y position mode and measure X plate. We switch the plate + * configuration in pressure mode, then switch to position mode. This + * gives a faster response time. Even so, we need to wait about 55us + * for things to stabilise. + */ +static int ucb1400_ts_read_ypos(struct ucb1400_ts *ucb) +{ + ucb1400_reg_write(ucb->ac97, UCB_TS_CR, + UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_POW | + UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA); + ucb1400_reg_write(ucb->ac97, UCB_TS_CR, + UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_POW | + UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA); + ucb1400_reg_write(ucb->ac97, UCB_TS_CR, + UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_POW | + UCB_TS_CR_MODE_POS | UCB_TS_CR_BIAS_ENA); + + udelay(ts_delay); + + return ucb1400_adc_read(ucb->ac97, UCB_ADC_INP_TSPX, adcsync); +} + +/* + * Switch to X plate resistance mode. Set MX to ground, PX to + * supply. Measure current. + */ +static unsigned int ucb1400_ts_read_xres(struct ucb1400_ts *ucb) +{ + ucb1400_reg_write(ucb->ac97, UCB_TS_CR, + UCB_TS_CR_TSMX_GND | UCB_TS_CR_TSPX_POW | + UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA); + return ucb1400_adc_read(ucb->ac97, 0, adcsync); +} + +/* + * Switch to Y plate resistance mode. Set MY to ground, PY to + * supply. Measure current. + */ +static unsigned int ucb1400_ts_read_yres(struct ucb1400_ts *ucb) +{ + ucb1400_reg_write(ucb->ac97, UCB_TS_CR, + UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_POW | + UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA); + return ucb1400_adc_read(ucb->ac97, 0, adcsync); +} + +static int ucb1400_ts_pen_up(struct ucb1400_ts *ucb) +{ + unsigned short val = ucb1400_reg_read(ucb->ac97, UCB_TS_CR); + + return val & (UCB_TS_CR_TSPX_LOW | UCB_TS_CR_TSMX_LOW); +} + +static void ucb1400_ts_irq_enable(struct ucb1400_ts *ucb) +{ + ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, UCB_IE_TSPX); + ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, 0); + ucb1400_reg_write(ucb->ac97, UCB_IE_FAL, UCB_IE_TSPX); +} + +static void ucb1400_ts_irq_disable(struct ucb1400_ts *ucb) +{ + ucb1400_reg_write(ucb->ac97, UCB_IE_FAL, 0); +} + +static void ucb1400_ts_report_event(struct input_dev *idev, u16 pressure, u16 x, u16 y) +{ + input_report_abs(idev, ABS_X, x); + input_report_abs(idev, ABS_Y, y); + input_report_abs(idev, ABS_PRESSURE, pressure); + input_report_key(idev, BTN_TOUCH, 1); + input_sync(idev); +} + +static void ucb1400_ts_event_release(struct input_dev *idev) +{ + input_report_abs(idev, ABS_PRESSURE, 0); + input_report_key(idev, BTN_TOUCH, 0); + input_sync(idev); +} + +static void ucb1400_clear_pending_irq(struct ucb1400_ts *ucb) +{ + unsigned int isr; + + isr = ucb1400_reg_read(ucb->ac97, UCB_IE_STATUS); + ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, isr); + ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, 0); + + if (isr & UCB_IE_TSPX) + ucb1400_ts_irq_disable(ucb); + else + dev_dbg(&ucb->ts_idev->dev, + "ucb1400: unexpected IE_STATUS = %#x\n", isr); +} + +/* + * A restriction with interrupts exists when using the ucb1400, as + * the codec read/write routines may sleep while waiting for codec + * access completion and uses semaphores for access control to the + * AC97 bus. Therefore the driver is forced to use threaded interrupt + * handler. + */ +static irqreturn_t ucb1400_irq(int irqnr, void *devid) +{ + struct ucb1400_ts *ucb = devid; + unsigned int x, y, p; + bool penup; + + if (unlikely(irqnr != ucb->irq)) + return IRQ_NONE; + + ucb1400_clear_pending_irq(ucb); + + /* Start with a small delay before checking pendown state */ + msleep(UCB1400_TS_POLL_PERIOD); + + while (!ucb->stopped && !(penup = ucb1400_ts_pen_up(ucb))) { + + ucb1400_adc_enable(ucb->ac97); + x = ucb1400_ts_read_xpos(ucb); + y = ucb1400_ts_read_ypos(ucb); + p = ucb1400_ts_read_pressure(ucb); + ucb1400_adc_disable(ucb->ac97); + + ucb1400_ts_report_event(ucb->ts_idev, p, x, y); + + wait_event_timeout(ucb->ts_wait, ucb->stopped, + msecs_to_jiffies(UCB1400_TS_POLL_PERIOD)); + } + + ucb1400_ts_event_release(ucb->ts_idev); + + if (!ucb->stopped) { + /* Switch back to interrupt mode. */ + ucb1400_ts_mode_int(ucb); + ucb1400_ts_irq_enable(ucb); + } + + return IRQ_HANDLED; +} + +static void ucb1400_ts_stop(struct ucb1400_ts *ucb) +{ + /* Signal IRQ thread to stop polling and disable the handler. */ + ucb->stopped = true; + mb(); + wake_up(&ucb->ts_wait); + disable_irq(ucb->irq); + + ucb1400_ts_irq_disable(ucb); + ucb1400_reg_write(ucb->ac97, UCB_TS_CR, 0); +} + +/* Must be called with ts->lock held */ +static void ucb1400_ts_start(struct ucb1400_ts *ucb) +{ + /* Tell IRQ thread that it may poll the device. */ + ucb->stopped = false; + mb(); + + ucb1400_ts_mode_int(ucb); + ucb1400_ts_irq_enable(ucb); + + enable_irq(ucb->irq); +} + +static int ucb1400_ts_open(struct input_dev *idev) +{ + struct ucb1400_ts *ucb = input_get_drvdata(idev); + + ucb1400_ts_start(ucb); + + return 0; +} + +static void ucb1400_ts_close(struct input_dev *idev) +{ + struct ucb1400_ts *ucb = input_get_drvdata(idev); + + ucb1400_ts_stop(ucb); +} + +#ifndef NO_IRQ +#define NO_IRQ 0 +#endif + +/* + * Try to probe our interrupt, rather than relying on lots of + * hard-coded machine dependencies. + */ +static int ucb1400_ts_detect_irq(struct ucb1400_ts *ucb, + struct platform_device *pdev) +{ + unsigned long mask, timeout; + + mask = probe_irq_on(); + + /* Enable the ADC interrupt. */ + ucb1400_reg_write(ucb->ac97, UCB_IE_RIS, UCB_IE_ADC); + ucb1400_reg_write(ucb->ac97, UCB_IE_FAL, UCB_IE_ADC); + ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, 0xffff); + ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, 0); + + /* Cause an ADC interrupt. */ + ucb1400_reg_write(ucb->ac97, UCB_ADC_CR, UCB_ADC_ENA); + ucb1400_reg_write(ucb->ac97, UCB_ADC_CR, UCB_ADC_ENA | UCB_ADC_START); + + /* Wait for the conversion to complete. */ + timeout = jiffies + HZ/2; + while (!(ucb1400_reg_read(ucb->ac97, UCB_ADC_DATA) & + UCB_ADC_DAT_VALID)) { + cpu_relax(); + if (time_after(jiffies, timeout)) { + dev_err(&pdev->dev, "timed out in IRQ probe\n"); + probe_irq_off(mask); + return -ENODEV; + } + } + ucb1400_reg_write(ucb->ac97, UCB_ADC_CR, 0); + + /* Disable and clear interrupt. */ + ucb1400_reg_write(ucb->ac97, UCB_IE_RIS, 0); + ucb1400_reg_write(ucb->ac97, UCB_IE_FAL, 0); + ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, 0xffff); + ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, 0); + + /* Read triggered interrupt. */ + ucb->irq = probe_irq_off(mask); + if (ucb->irq < 0 || ucb->irq == NO_IRQ) + return -ENODEV; + + return 0; +} + +static int ucb1400_ts_probe(struct platform_device *pdev) +{ + struct ucb1400_ts *ucb = pdev->dev.platform_data; + int error, x_res, y_res; + u16 fcsr; + + ucb->ts_idev = input_allocate_device(); + if (!ucb->ts_idev) { + error = -ENOMEM; + goto err; + } + + /* Only in case the IRQ line wasn't supplied, try detecting it */ + if (ucb->irq < 0) { + error = ucb1400_ts_detect_irq(ucb, pdev); + if (error) { + dev_err(&pdev->dev, "IRQ probe failed\n"); + goto err_free_devs; + } + } + dev_dbg(&pdev->dev, "found IRQ %d\n", ucb->irq); + + init_waitqueue_head(&ucb->ts_wait); + + input_set_drvdata(ucb->ts_idev, ucb); + + ucb->ts_idev->dev.parent = &pdev->dev; + ucb->ts_idev->name = "UCB1400 touchscreen interface"; + ucb->ts_idev->id.vendor = ucb1400_reg_read(ucb->ac97, + AC97_VENDOR_ID1); + ucb->ts_idev->id.product = ucb->id; + ucb->ts_idev->open = ucb1400_ts_open; + ucb->ts_idev->close = ucb1400_ts_close; + ucb->ts_idev->evbit[0] = BIT_MASK(EV_ABS) | BIT_MASK(EV_KEY); + ucb->ts_idev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + + /* + * Enable ADC filter to prevent horrible jitter on Colibri. + * This also further reduces jitter on boards where ADCSYNC + * pin is connected. + */ + fcsr = ucb1400_reg_read(ucb->ac97, UCB_FCSR); + ucb1400_reg_write(ucb->ac97, UCB_FCSR, fcsr | UCB_FCSR_AVE); + + ucb1400_adc_enable(ucb->ac97); + x_res = ucb1400_ts_read_xres(ucb); + y_res = ucb1400_ts_read_yres(ucb); + ucb1400_adc_disable(ucb->ac97); + dev_dbg(&pdev->dev, "x/y = %d/%d\n", x_res, y_res); + + input_set_abs_params(ucb->ts_idev, ABS_X, 0, x_res, 0, 0); + input_set_abs_params(ucb->ts_idev, ABS_Y, 0, y_res, 0, 0); + input_set_abs_params(ucb->ts_idev, ABS_PRESSURE, 0, 0, 0, 0); + + ucb1400_ts_stop(ucb); + + error = request_threaded_irq(ucb->irq, NULL, ucb1400_irq, + IRQF_TRIGGER_RISING | IRQF_ONESHOT, + "UCB1400", ucb); + if (error) { + dev_err(&pdev->dev, + "unable to grab irq%d: %d\n", ucb->irq, error); + goto err_free_devs; + } + + error = input_register_device(ucb->ts_idev); + if (error) + goto err_free_irq; + + return 0; + +err_free_irq: + free_irq(ucb->irq, ucb); +err_free_devs: + input_free_device(ucb->ts_idev); +err: + return error; +} + +static int ucb1400_ts_remove(struct platform_device *pdev) +{ + struct ucb1400_ts *ucb = pdev->dev.platform_data; + + free_irq(ucb->irq, ucb); + input_unregister_device(ucb->ts_idev); + + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int ucb1400_ts_suspend(struct device *dev) +{ + struct ucb1400_ts *ucb = dev->platform_data; + struct input_dev *idev = ucb->ts_idev; + + mutex_lock(&idev->mutex); + + if (idev->users) + ucb1400_ts_start(ucb); + + mutex_unlock(&idev->mutex); + return 0; +} + +static int ucb1400_ts_resume(struct device *dev) +{ + struct ucb1400_ts *ucb = dev->platform_data; + struct input_dev *idev = ucb->ts_idev; + + mutex_lock(&idev->mutex); + + if (idev->users) + ucb1400_ts_stop(ucb); + + mutex_unlock(&idev->mutex); + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(ucb1400_ts_pm_ops, + ucb1400_ts_suspend, ucb1400_ts_resume); + +static struct platform_driver ucb1400_ts_driver = { + .probe = ucb1400_ts_probe, + .remove = ucb1400_ts_remove, + .driver = { + .name = "ucb1400_ts", + .owner = THIS_MODULE, + .pm = &ucb1400_ts_pm_ops, + }, +}; +module_platform_driver(ucb1400_ts_driver); + +module_param(adcsync, bool, 0444); +MODULE_PARM_DESC(adcsync, "Synchronize touch readings with ADCSYNC pin."); + +module_param(ts_delay, int, 0444); +MODULE_PARM_DESC(ts_delay, "Delay between panel setup and" + " position read. Default = 55us."); + +module_param(ts_delay_pressure, int, 0444); +MODULE_PARM_DESC(ts_delay_pressure, + "delay between panel setup and pressure read." + " Default = 0us."); + +MODULE_DESCRIPTION("Philips UCB1400 touchscreen driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/usbtouchscreen.c b/drivers/input/touchscreen/usbtouchscreen.c new file mode 100644 index 00000000..5f87bed0 --- /dev/null +++ b/drivers/input/touchscreen/usbtouchscreen.c @@ -0,0 +1,1759 @@ +/****************************************************************************** + * usbtouchscreen.c + * Driver for USB Touchscreens, supporting those devices: + * - eGalax Touchkit + * includes eTurboTouch CT-410/510/700 + * - 3M/Microtouch EX II series + * - ITM + * - PanJit TouchSet + * - eTurboTouch + * - Gunze AHL61 + * - DMC TSC-10/25 + * - IRTOUCHSYSTEMS/UNITOP + * - IdealTEK URTC1000 + * - General Touch + * - GoTop Super_Q2/GogoPen/PenPower tablets + * - JASTEC USB touch controller/DigiTech DTR-02U + * - Zytronic capacitive touchscreen + * - NEXIO/iNexio + * - Elo TouchSystems 2700 IntelliTouch + * - EasyTouch USB Dual/Multi touch controller from Data Modul + * + * Copyright (C) 2004-2007 by Daniel Ritz + * Copyright (C) by Todd E. Johnson (mtouchusb.c) + * + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Driver is based on touchkitusb.c + * - ITM parts are from itmtouch.c + * - 3M parts are from mtouchusb.c + * - PanJit parts are from an unmerged driver by Lanslott Gish + * - DMC TSC 10/25 are from Holger Schurig, with ideas from an unmerged + * driver from Marius Vollmer + * + *****************************************************************************/ + +//#define DEBUG + +#include +#include +#include +#include +#include +#include +#include +#include + + +#define DRIVER_VERSION "v0.6" +#define DRIVER_AUTHOR "Daniel Ritz " +#define DRIVER_DESC "USB Touchscreen Driver" + +static bool swap_xy; +module_param(swap_xy, bool, 0644); +MODULE_PARM_DESC(swap_xy, "If set X and Y axes are swapped."); + +static bool hwcalib_xy; +module_param(hwcalib_xy, bool, 0644); +MODULE_PARM_DESC(hwcalib_xy, "If set hw-calibrated X/Y are used if available"); + +/* device specifc data/functions */ +struct usbtouch_usb; +struct usbtouch_device_info { + int min_xc, max_xc; + int min_yc, max_yc; + int min_press, max_press; + int rept_size; + + /* + * Always service the USB devices irq not just when the input device is + * open. This is useful when devices have a watchdog which prevents us + * from periodically polling the device. Leave this unset unless your + * touchscreen device requires it, as it does consume more of the USB + * bandwidth. + */ + bool irq_always; + + void (*process_pkt) (struct usbtouch_usb *usbtouch, unsigned char *pkt, int len); + + /* + * used to get the packet len. possible return values: + * > 0: packet len + * = 0: skip one byte + * < 0: -return value more bytes needed + */ + int (*get_pkt_len) (unsigned char *pkt, int len); + + int (*read_data) (struct usbtouch_usb *usbtouch, unsigned char *pkt); + int (*alloc) (struct usbtouch_usb *usbtouch); + int (*init) (struct usbtouch_usb *usbtouch); + void (*exit) (struct usbtouch_usb *usbtouch); +}; + +/* a usbtouch device */ +struct usbtouch_usb { + unsigned char *data; + dma_addr_t data_dma; + int data_size; + unsigned char *buffer; + int buf_len; + struct urb *irq; + struct usb_interface *interface; + struct input_dev *input; + struct usbtouch_device_info *type; + char name[128]; + char phys[64]; + void *priv; + + int x, y; + int touch, press; +}; + + +/* device types */ +enum { + DEVTYPE_IGNORE = -1, + DEVTYPE_EGALAX, + DEVTYPE_PANJIT, + DEVTYPE_3M, + DEVTYPE_ITM, + DEVTYPE_ETURBO, + DEVTYPE_GUNZE, + DEVTYPE_DMC_TSC10, + DEVTYPE_IRTOUCH, + DEVTYPE_IDEALTEK, + DEVTYPE_GENERAL_TOUCH, + DEVTYPE_GOTOP, + DEVTYPE_JASTEC, + DEVTYPE_E2I, + DEVTYPE_ZYTRONIC, + DEVTYPE_TC45USB, + DEVTYPE_NEXIO, + DEVTYPE_ELO, + DEVTYPE_ETOUCH, +}; + +#define USB_DEVICE_HID_CLASS(vend, prod) \ + .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS \ + | USB_DEVICE_ID_MATCH_DEVICE, \ + .idVendor = (vend), \ + .idProduct = (prod), \ + .bInterfaceClass = USB_INTERFACE_CLASS_HID + +static const struct usb_device_id usbtouch_devices[] = { +#ifdef CONFIG_TOUCHSCREEN_USB_EGALAX + /* ignore the HID capable devices, handled by usbhid */ + {USB_DEVICE_HID_CLASS(0x0eef, 0x0001), .driver_info = DEVTYPE_IGNORE}, + {USB_DEVICE_HID_CLASS(0x0eef, 0x0002), .driver_info = DEVTYPE_IGNORE}, + + /* normal device IDs */ + {USB_DEVICE(0x3823, 0x0001), .driver_info = DEVTYPE_EGALAX}, + {USB_DEVICE(0x3823, 0x0002), .driver_info = DEVTYPE_EGALAX}, + {USB_DEVICE(0x0123, 0x0001), .driver_info = DEVTYPE_EGALAX}, + {USB_DEVICE(0x0eef, 0x0001), .driver_info = DEVTYPE_EGALAX}, + {USB_DEVICE(0x0eef, 0x0002), .driver_info = DEVTYPE_EGALAX}, + {USB_DEVICE(0x1234, 0x0001), .driver_info = DEVTYPE_EGALAX}, + {USB_DEVICE(0x1234, 0x0002), .driver_info = DEVTYPE_EGALAX}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_PANJIT + {USB_DEVICE(0x134c, 0x0001), .driver_info = DEVTYPE_PANJIT}, + {USB_DEVICE(0x134c, 0x0002), .driver_info = DEVTYPE_PANJIT}, + {USB_DEVICE(0x134c, 0x0003), .driver_info = DEVTYPE_PANJIT}, + {USB_DEVICE(0x134c, 0x0004), .driver_info = DEVTYPE_PANJIT}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_3M + {USB_DEVICE(0x0596, 0x0001), .driver_info = DEVTYPE_3M}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_ITM + {USB_DEVICE(0x0403, 0xf9e9), .driver_info = DEVTYPE_ITM}, + {USB_DEVICE(0x16e3, 0xf9e9), .driver_info = DEVTYPE_ITM}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_ETURBO + {USB_DEVICE(0x1234, 0x5678), .driver_info = DEVTYPE_ETURBO}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_GUNZE + {USB_DEVICE(0x0637, 0x0001), .driver_info = DEVTYPE_GUNZE}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_DMC_TSC10 + {USB_DEVICE(0x0afa, 0x03e8), .driver_info = DEVTYPE_DMC_TSC10}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_IRTOUCH + {USB_DEVICE(0x595a, 0x0001), .driver_info = DEVTYPE_IRTOUCH}, + {USB_DEVICE(0x6615, 0x0001), .driver_info = DEVTYPE_IRTOUCH}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_IDEALTEK + {USB_DEVICE(0x1391, 0x1000), .driver_info = DEVTYPE_IDEALTEK}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH + {USB_DEVICE(0x0dfc, 0x0001), .driver_info = DEVTYPE_GENERAL_TOUCH}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_GOTOP + {USB_DEVICE(0x08f2, 0x007f), .driver_info = DEVTYPE_GOTOP}, + {USB_DEVICE(0x08f2, 0x00ce), .driver_info = DEVTYPE_GOTOP}, + {USB_DEVICE(0x08f2, 0x00f4), .driver_info = DEVTYPE_GOTOP}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_JASTEC + {USB_DEVICE(0x0f92, 0x0001), .driver_info = DEVTYPE_JASTEC}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_E2I + {USB_DEVICE(0x1ac7, 0x0001), .driver_info = DEVTYPE_E2I}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_ZYTRONIC + {USB_DEVICE(0x14c8, 0x0003), .driver_info = DEVTYPE_ZYTRONIC}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_ETT_TC45USB + /* TC5UH */ + {USB_DEVICE(0x0664, 0x0309), .driver_info = DEVTYPE_TC45USB}, + /* TC4UM */ + {USB_DEVICE(0x0664, 0x0306), .driver_info = DEVTYPE_TC45USB}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_NEXIO + /* data interface only */ + {USB_DEVICE_AND_INTERFACE_INFO(0x10f0, 0x2002, 0x0a, 0x00, 0x00), + .driver_info = DEVTYPE_NEXIO}, + {USB_DEVICE_AND_INTERFACE_INFO(0x1870, 0x0001, 0x0a, 0x00, 0x00), + .driver_info = DEVTYPE_NEXIO}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_ELO + {USB_DEVICE(0x04e7, 0x0020), .driver_info = DEVTYPE_ELO}, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_EASYTOUCH + {USB_DEVICE(0x7374, 0x0001), .driver_info = DEVTYPE_ETOUCH}, +#endif + + {} +}; + + +/***************************************************************************** + * e2i Part + */ + +#ifdef CONFIG_TOUCHSCREEN_USB_E2I +static int e2i_init(struct usbtouch_usb *usbtouch) +{ + int ret; + struct usb_device *udev = interface_to_usbdev(usbtouch->interface); + + ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), + 0x01, 0x02, 0x0000, 0x0081, + NULL, 0, USB_CTRL_SET_TIMEOUT); + + dev_dbg(&usbtouch->interface->dev, + "%s - usb_control_msg - E2I_RESET - bytes|err: %d\n", + __func__, ret); + return ret; +} + +static int e2i_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + int tmp = (pkt[0] << 8) | pkt[1]; + dev->x = (pkt[2] << 8) | pkt[3]; + dev->y = (pkt[4] << 8) | pkt[5]; + + tmp = tmp - 0xA000; + dev->touch = (tmp > 0); + dev->press = (tmp > 0 ? tmp : 0); + + return 1; +} +#endif + + +/***************************************************************************** + * eGalax part + */ + +#ifdef CONFIG_TOUCHSCREEN_USB_EGALAX + +#ifndef MULTI_PACKET +#define MULTI_PACKET +#endif + +#define EGALAX_PKT_TYPE_MASK 0xFE +#define EGALAX_PKT_TYPE_REPT 0x80 +#define EGALAX_PKT_TYPE_DIAG 0x0A + +static int egalax_init(struct usbtouch_usb *usbtouch) +{ + int ret, i; + unsigned char *buf; + struct usb_device *udev = interface_to_usbdev(usbtouch->interface); + + /* + * An eGalax diagnostic packet kicks the device into using the right + * protocol. We send a "check active" packet. The response will be + * read later and ignored. + */ + + buf = kmalloc(3, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + buf[0] = EGALAX_PKT_TYPE_DIAG; + buf[1] = 1; /* length */ + buf[2] = 'A'; /* command - check active */ + + for (i = 0; i < 3; i++) { + ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), + 0, + USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, + 0, 0, buf, 3, + USB_CTRL_SET_TIMEOUT); + if (ret >= 0) { + ret = 0; + break; + } + if (ret != -EPIPE) + break; + } + + kfree(buf); + + return ret; +} + +static int egalax_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + if ((pkt[0] & EGALAX_PKT_TYPE_MASK) != EGALAX_PKT_TYPE_REPT) + return 0; + + dev->x = ((pkt[3] & 0x0F) << 7) | (pkt[4] & 0x7F); + dev->y = ((pkt[1] & 0x0F) << 7) | (pkt[2] & 0x7F); + dev->touch = pkt[0] & 0x01; + + return 1; +} + +static int egalax_get_pkt_len(unsigned char *buf, int len) +{ + switch (buf[0] & EGALAX_PKT_TYPE_MASK) { + case EGALAX_PKT_TYPE_REPT: + return 5; + + case EGALAX_PKT_TYPE_DIAG: + if (len < 2) + return -1; + + return buf[1] + 2; + } + + return 0; +} +#endif + +/***************************************************************************** + * EasyTouch part + */ + +#ifdef CONFIG_TOUCHSCREEN_USB_EASYTOUCH + +#ifndef MULTI_PACKET +#define MULTI_PACKET +#endif + +#define ETOUCH_PKT_TYPE_MASK 0xFE +#define ETOUCH_PKT_TYPE_REPT 0x80 +#define ETOUCH_PKT_TYPE_REPT2 0xB0 +#define ETOUCH_PKT_TYPE_DIAG 0x0A + +static int etouch_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + if ((pkt[0] & ETOUCH_PKT_TYPE_MASK) != ETOUCH_PKT_TYPE_REPT && + (pkt[0] & ETOUCH_PKT_TYPE_MASK) != ETOUCH_PKT_TYPE_REPT2) + return 0; + + dev->x = ((pkt[1] & 0x1F) << 7) | (pkt[2] & 0x7F); + dev->y = ((pkt[3] & 0x1F) << 7) | (pkt[4] & 0x7F); + dev->touch = pkt[0] & 0x01; + + return 1; +} + +static int etouch_get_pkt_len(unsigned char *buf, int len) +{ + switch (buf[0] & ETOUCH_PKT_TYPE_MASK) { + case ETOUCH_PKT_TYPE_REPT: + case ETOUCH_PKT_TYPE_REPT2: + return 5; + + case ETOUCH_PKT_TYPE_DIAG: + if (len < 2) + return -1; + + return buf[1] + 2; + } + + return 0; +} +#endif + +/***************************************************************************** + * PanJit Part + */ +#ifdef CONFIG_TOUCHSCREEN_USB_PANJIT +static int panjit_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + dev->x = ((pkt[2] & 0x0F) << 8) | pkt[1]; + dev->y = ((pkt[4] & 0x0F) << 8) | pkt[3]; + dev->touch = pkt[0] & 0x01; + + return 1; +} +#endif + + +/***************************************************************************** + * 3M/Microtouch Part + */ +#ifdef CONFIG_TOUCHSCREEN_USB_3M + +#define MTOUCHUSB_ASYNC_REPORT 1 +#define MTOUCHUSB_RESET 7 +#define MTOUCHUSB_REQ_CTRLLR_ID 10 + +static int mtouch_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + if (hwcalib_xy) { + dev->x = (pkt[4] << 8) | pkt[3]; + dev->y = 0xffff - ((pkt[6] << 8) | pkt[5]); + } else { + dev->x = (pkt[8] << 8) | pkt[7]; + dev->y = (pkt[10] << 8) | pkt[9]; + } + dev->touch = (pkt[2] & 0x40) ? 1 : 0; + + return 1; +} + +static int mtouch_init(struct usbtouch_usb *usbtouch) +{ + int ret, i; + struct usb_device *udev = interface_to_usbdev(usbtouch->interface); + + ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), + MTOUCHUSB_RESET, + USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, + 1, 0, NULL, 0, USB_CTRL_SET_TIMEOUT); + dev_dbg(&usbtouch->interface->dev, + "%s - usb_control_msg - MTOUCHUSB_RESET - bytes|err: %d\n", + __func__, ret); + if (ret < 0) + return ret; + msleep(150); + + for (i = 0; i < 3; i++) { + ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), + MTOUCHUSB_ASYNC_REPORT, + USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, + 1, 1, NULL, 0, USB_CTRL_SET_TIMEOUT); + dev_dbg(&usbtouch->interface->dev, + "%s - usb_control_msg - MTOUCHUSB_ASYNC_REPORT - bytes|err: %d\n", + __func__, ret); + if (ret >= 0) + break; + if (ret != -EPIPE) + return ret; + } + + /* Default min/max xy are the raw values, override if using hw-calib */ + if (hwcalib_xy) { + input_set_abs_params(usbtouch->input, ABS_X, 0, 0xffff, 0, 0); + input_set_abs_params(usbtouch->input, ABS_Y, 0, 0xffff, 0, 0); + } + + return 0; +} +#endif + + +/***************************************************************************** + * ITM Part + */ +#ifdef CONFIG_TOUCHSCREEN_USB_ITM +static int itm_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + int touch; + /* + * ITM devices report invalid x/y data if not touched. + * if the screen was touched before but is not touched any more + * report touch as 0 with the last valid x/y data once. then stop + * reporting data until touched again. + */ + dev->press = ((pkt[2] & 0x01) << 7) | (pkt[5] & 0x7F); + + touch = ~pkt[7] & 0x20; + if (!touch) { + if (dev->touch) { + dev->touch = 0; + return 1; + } + + return 0; + } + + dev->x = ((pkt[0] & 0x1F) << 7) | (pkt[3] & 0x7F); + dev->y = ((pkt[1] & 0x1F) << 7) | (pkt[4] & 0x7F); + dev->touch = touch; + + return 1; +} +#endif + + +/***************************************************************************** + * eTurboTouch part + */ +#ifdef CONFIG_TOUCHSCREEN_USB_ETURBO +#ifndef MULTI_PACKET +#define MULTI_PACKET +#endif +static int eturbo_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + unsigned int shift; + + /* packets should start with sync */ + if (!(pkt[0] & 0x80)) + return 0; + + shift = (6 - (pkt[0] & 0x03)); + dev->x = ((pkt[3] << 7) | pkt[4]) >> shift; + dev->y = ((pkt[1] << 7) | pkt[2]) >> shift; + dev->touch = (pkt[0] & 0x10) ? 1 : 0; + + return 1; +} + +static int eturbo_get_pkt_len(unsigned char *buf, int len) +{ + if (buf[0] & 0x80) + return 5; + if (buf[0] == 0x01) + return 3; + return 0; +} +#endif + + +/***************************************************************************** + * Gunze part + */ +#ifdef CONFIG_TOUCHSCREEN_USB_GUNZE +static int gunze_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + if (!(pkt[0] & 0x80) || ((pkt[1] | pkt[2] | pkt[3]) & 0x80)) + return 0; + + dev->x = ((pkt[0] & 0x1F) << 7) | (pkt[2] & 0x7F); + dev->y = ((pkt[1] & 0x1F) << 7) | (pkt[3] & 0x7F); + dev->touch = pkt[0] & 0x20; + + return 1; +} +#endif + +/***************************************************************************** + * DMC TSC-10/25 Part + * + * Documentation about the controller and it's protocol can be found at + * http://www.dmccoltd.com/files/controler/tsc10usb_pi_e.pdf + * http://www.dmccoltd.com/files/controler/tsc25_usb_e.pdf + */ +#ifdef CONFIG_TOUCHSCREEN_USB_DMC_TSC10 + +/* supported data rates. currently using 130 */ +#define TSC10_RATE_POINT 0x50 +#define TSC10_RATE_30 0x40 +#define TSC10_RATE_50 0x41 +#define TSC10_RATE_80 0x42 +#define TSC10_RATE_100 0x43 +#define TSC10_RATE_130 0x44 +#define TSC10_RATE_150 0x45 + +/* commands */ +#define TSC10_CMD_RESET 0x55 +#define TSC10_CMD_RATE 0x05 +#define TSC10_CMD_DATA1 0x01 + +static int dmc_tsc10_init(struct usbtouch_usb *usbtouch) +{ + struct usb_device *dev = interface_to_usbdev(usbtouch->interface); + int ret = -ENOMEM; + unsigned char *buf; + + buf = kmalloc(2, GFP_NOIO); + if (!buf) + goto err_nobuf; + /* reset */ + buf[0] = buf[1] = 0xFF; + ret = usb_control_msg(dev, usb_rcvctrlpipe (dev, 0), + TSC10_CMD_RESET, + USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, + 0, 0, buf, 2, USB_CTRL_SET_TIMEOUT); + if (ret < 0) + goto err_out; + if (buf[0] != 0x06) { + ret = -ENODEV; + goto err_out; + } + + /* set coordinate output rate */ + buf[0] = buf[1] = 0xFF; + ret = usb_control_msg(dev, usb_rcvctrlpipe (dev, 0), + TSC10_CMD_RATE, + USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, + TSC10_RATE_150, 0, buf, 2, USB_CTRL_SET_TIMEOUT); + if (ret < 0) + goto err_out; + if ((buf[0] != 0x06) && (buf[0] != 0x15 || buf[1] != 0x01)) { + ret = -ENODEV; + goto err_out; + } + + /* start sending data */ + ret = usb_control_msg(dev, usb_rcvctrlpipe (dev, 0), + TSC10_CMD_DATA1, + USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, + 0, 0, NULL, 0, USB_CTRL_SET_TIMEOUT); +err_out: + kfree(buf); +err_nobuf: + return ret; +} + + +static int dmc_tsc10_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + dev->x = ((pkt[2] & 0x03) << 8) | pkt[1]; + dev->y = ((pkt[4] & 0x03) << 8) | pkt[3]; + dev->touch = pkt[0] & 0x01; + + return 1; +} +#endif + + +/***************************************************************************** + * IRTOUCH Part + */ +#ifdef CONFIG_TOUCHSCREEN_USB_IRTOUCH +static int irtouch_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + dev->x = (pkt[3] << 8) | pkt[2]; + dev->y = (pkt[5] << 8) | pkt[4]; + dev->touch = (pkt[1] & 0x03) ? 1 : 0; + + return 1; +} +#endif + +/***************************************************************************** + * ET&T TC5UH/TC4UM part + */ +#ifdef CONFIG_TOUCHSCREEN_USB_ETT_TC45USB +static int tc45usb_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + dev->x = ((pkt[2] & 0x0F) << 8) | pkt[1]; + dev->y = ((pkt[4] & 0x0F) << 8) | pkt[3]; + dev->touch = pkt[0] & 0x01; + + return 1; +} +#endif + +/***************************************************************************** + * IdealTEK URTC1000 Part + */ +#ifdef CONFIG_TOUCHSCREEN_USB_IDEALTEK +#ifndef MULTI_PACKET +#define MULTI_PACKET +#endif +static int idealtek_get_pkt_len(unsigned char *buf, int len) +{ + if (buf[0] & 0x80) + return 5; + if (buf[0] == 0x01) + return len; + return 0; +} + +static int idealtek_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + switch (pkt[0] & 0x98) { + case 0x88: + /* touch data in IdealTEK mode */ + dev->x = (pkt[1] << 5) | (pkt[2] >> 2); + dev->y = (pkt[3] << 5) | (pkt[4] >> 2); + dev->touch = (pkt[0] & 0x40) ? 1 : 0; + return 1; + + case 0x98: + /* touch data in MT emulation mode */ + dev->x = (pkt[2] << 5) | (pkt[1] >> 2); + dev->y = (pkt[4] << 5) | (pkt[3] >> 2); + dev->touch = (pkt[0] & 0x40) ? 1 : 0; + return 1; + + default: + return 0; + } +} +#endif + +/***************************************************************************** + * General Touch Part + */ +#ifdef CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH +static int general_touch_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + dev->x = (pkt[2] << 8) | pkt[1]; + dev->y = (pkt[4] << 8) | pkt[3]; + dev->press = pkt[5] & 0xff; + dev->touch = pkt[0] & 0x01; + + return 1; +} +#endif + +/***************************************************************************** + * GoTop Part + */ +#ifdef CONFIG_TOUCHSCREEN_USB_GOTOP +static int gotop_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + dev->x = ((pkt[1] & 0x38) << 4) | pkt[2]; + dev->y = ((pkt[1] & 0x07) << 7) | pkt[3]; + dev->touch = pkt[0] & 0x01; + + return 1; +} +#endif + +/***************************************************************************** + * JASTEC Part + */ +#ifdef CONFIG_TOUCHSCREEN_USB_JASTEC +static int jastec_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + dev->x = ((pkt[0] & 0x3f) << 6) | (pkt[2] & 0x3f); + dev->y = ((pkt[1] & 0x3f) << 6) | (pkt[3] & 0x3f); + dev->touch = (pkt[0] & 0x40) >> 6; + + return 1; +} +#endif + +/***************************************************************************** + * Zytronic Part + */ +#ifdef CONFIG_TOUCHSCREEN_USB_ZYTRONIC +static int zytronic_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + struct usb_interface *intf = dev->interface; + + switch (pkt[0]) { + case 0x3A: /* command response */ + dev_dbg(&intf->dev, "%s: Command response %d\n", __func__, pkt[1]); + break; + + case 0xC0: /* down */ + dev->x = (pkt[1] & 0x7f) | ((pkt[2] & 0x07) << 7); + dev->y = (pkt[3] & 0x7f) | ((pkt[4] & 0x07) << 7); + dev->touch = 1; + dev_dbg(&intf->dev, "%s: down %d,%d\n", __func__, dev->x, dev->y); + return 1; + + case 0x80: /* up */ + dev->x = (pkt[1] & 0x7f) | ((pkt[2] & 0x07) << 7); + dev->y = (pkt[3] & 0x7f) | ((pkt[4] & 0x07) << 7); + dev->touch = 0; + dev_dbg(&intf->dev, "%s: up %d,%d\n", __func__, dev->x, dev->y); + return 1; + + default: + dev_dbg(&intf->dev, "%s: Unknown return %d\n", __func__, pkt[0]); + break; + } + + return 0; +} +#endif + +/***************************************************************************** + * NEXIO Part + */ +#ifdef CONFIG_TOUCHSCREEN_USB_NEXIO + +#define NEXIO_TIMEOUT 5000 +#define NEXIO_BUFSIZE 1024 +#define NEXIO_THRESHOLD 50 + +struct nexio_priv { + struct urb *ack; + unsigned char *ack_buf; +}; + +struct nexio_touch_packet { + u8 flags; /* 0xe1 = touch, 0xe1 = release */ + __be16 data_len; /* total bytes of touch data */ + __be16 x_len; /* bytes for X axis */ + __be16 y_len; /* bytes for Y axis */ + u8 data[]; +} __attribute__ ((packed)); + +static unsigned char nexio_ack_pkt[2] = { 0xaa, 0x02 }; +static unsigned char nexio_init_pkt[4] = { 0x82, 0x04, 0x0a, 0x0f }; + +static void nexio_ack_complete(struct urb *urb) +{ +} + +static int nexio_alloc(struct usbtouch_usb *usbtouch) +{ + struct nexio_priv *priv; + int ret = -ENOMEM; + + usbtouch->priv = kmalloc(sizeof(struct nexio_priv), GFP_KERNEL); + if (!usbtouch->priv) + goto out_buf; + + priv = usbtouch->priv; + + priv->ack_buf = kmemdup(nexio_ack_pkt, sizeof(nexio_ack_pkt), + GFP_KERNEL); + if (!priv->ack_buf) + goto err_priv; + + priv->ack = usb_alloc_urb(0, GFP_KERNEL); + if (!priv->ack) { + dev_dbg(&usbtouch->interface->dev, + "%s - usb_alloc_urb failed: usbtouch->ack\n", __func__); + goto err_ack_buf; + } + + return 0; + +err_ack_buf: + kfree(priv->ack_buf); +err_priv: + kfree(priv); +out_buf: + return ret; +} + +static int nexio_init(struct usbtouch_usb *usbtouch) +{ + struct usb_device *dev = interface_to_usbdev(usbtouch->interface); + struct usb_host_interface *interface = usbtouch->interface->cur_altsetting; + struct nexio_priv *priv = usbtouch->priv; + int ret = -ENOMEM; + int actual_len, i; + unsigned char *buf; + char *firmware_ver = NULL, *device_name = NULL; + int input_ep = 0, output_ep = 0; + + /* find first input and output endpoint */ + for (i = 0; i < interface->desc.bNumEndpoints; i++) { + if (!input_ep && + usb_endpoint_dir_in(&interface->endpoint[i].desc)) + input_ep = interface->endpoint[i].desc.bEndpointAddress; + if (!output_ep && + usb_endpoint_dir_out(&interface->endpoint[i].desc)) + output_ep = interface->endpoint[i].desc.bEndpointAddress; + } + if (!input_ep || !output_ep) + return -ENXIO; + + buf = kmalloc(NEXIO_BUFSIZE, GFP_NOIO); + if (!buf) + goto out_buf; + + /* two empty reads */ + for (i = 0; i < 2; i++) { + ret = usb_bulk_msg(dev, usb_rcvbulkpipe(dev, input_ep), + buf, NEXIO_BUFSIZE, &actual_len, + NEXIO_TIMEOUT); + if (ret < 0) + goto out_buf; + } + + /* send init command */ + memcpy(buf, nexio_init_pkt, sizeof(nexio_init_pkt)); + ret = usb_bulk_msg(dev, usb_sndbulkpipe(dev, output_ep), + buf, sizeof(nexio_init_pkt), &actual_len, + NEXIO_TIMEOUT); + if (ret < 0) + goto out_buf; + + /* read replies */ + for (i = 0; i < 3; i++) { + memset(buf, 0, NEXIO_BUFSIZE); + ret = usb_bulk_msg(dev, usb_rcvbulkpipe(dev, input_ep), + buf, NEXIO_BUFSIZE, &actual_len, + NEXIO_TIMEOUT); + if (ret < 0 || actual_len < 1 || buf[1] != actual_len) + continue; + switch (buf[0]) { + case 0x83: /* firmware version */ + if (!firmware_ver) + firmware_ver = kstrdup(&buf[2], GFP_NOIO); + break; + case 0x84: /* device name */ + if (!device_name) + device_name = kstrdup(&buf[2], GFP_NOIO); + break; + } + } + + printk(KERN_INFO "Nexio device: %s, firmware version: %s\n", + device_name, firmware_ver); + + kfree(firmware_ver); + kfree(device_name); + + usb_fill_bulk_urb(priv->ack, dev, usb_sndbulkpipe(dev, output_ep), + priv->ack_buf, sizeof(nexio_ack_pkt), + nexio_ack_complete, usbtouch); + ret = 0; + +out_buf: + kfree(buf); + return ret; +} + +static void nexio_exit(struct usbtouch_usb *usbtouch) +{ + struct nexio_priv *priv = usbtouch->priv; + + usb_kill_urb(priv->ack); + usb_free_urb(priv->ack); + kfree(priv->ack_buf); + kfree(priv); +} + +static int nexio_read_data(struct usbtouch_usb *usbtouch, unsigned char *pkt) +{ + struct nexio_touch_packet *packet = (void *) pkt; + struct nexio_priv *priv = usbtouch->priv; + unsigned int data_len = be16_to_cpu(packet->data_len); + unsigned int x_len = be16_to_cpu(packet->x_len); + unsigned int y_len = be16_to_cpu(packet->y_len); + int x, y, begin_x, begin_y, end_x, end_y, w, h, ret; + + /* got touch data? */ + if ((pkt[0] & 0xe0) != 0xe0) + return 0; + + if (data_len > 0xff) + data_len -= 0x100; + if (x_len > 0xff) + x_len -= 0x80; + + /* send ACK */ + ret = usb_submit_urb(priv->ack, GFP_ATOMIC); + + if (!usbtouch->type->max_xc) { + usbtouch->type->max_xc = 2 * x_len; + input_set_abs_params(usbtouch->input, ABS_X, + 0, usbtouch->type->max_xc, 0, 0); + usbtouch->type->max_yc = 2 * y_len; + input_set_abs_params(usbtouch->input, ABS_Y, + 0, usbtouch->type->max_yc, 0, 0); + } + /* + * The device reports state of IR sensors on X and Y axes. + * Each byte represents "darkness" percentage (0-100) of one element. + * 17" touchscreen reports only 64 x 52 bytes so the resolution is low. + * This also means that there's a limited multi-touch capability but + * it's disabled (and untested) here as there's no X driver for that. + */ + begin_x = end_x = begin_y = end_y = -1; + for (x = 0; x < x_len; x++) { + if (begin_x == -1 && packet->data[x] > NEXIO_THRESHOLD) { + begin_x = x; + continue; + } + if (end_x == -1 && begin_x != -1 && packet->data[x] < NEXIO_THRESHOLD) { + end_x = x - 1; + for (y = x_len; y < data_len; y++) { + if (begin_y == -1 && packet->data[y] > NEXIO_THRESHOLD) { + begin_y = y - x_len; + continue; + } + if (end_y == -1 && + begin_y != -1 && packet->data[y] < NEXIO_THRESHOLD) { + end_y = y - 1 - x_len; + w = end_x - begin_x; + h = end_y - begin_y; +#if 0 + /* multi-touch */ + input_report_abs(usbtouch->input, + ABS_MT_TOUCH_MAJOR, max(w,h)); + input_report_abs(usbtouch->input, + ABS_MT_TOUCH_MINOR, min(x,h)); + input_report_abs(usbtouch->input, + ABS_MT_POSITION_X, 2*begin_x+w); + input_report_abs(usbtouch->input, + ABS_MT_POSITION_Y, 2*begin_y+h); + input_report_abs(usbtouch->input, + ABS_MT_ORIENTATION, w > h); + input_mt_sync(usbtouch->input); +#endif + /* single touch */ + usbtouch->x = 2 * begin_x + w; + usbtouch->y = 2 * begin_y + h; + usbtouch->touch = packet->flags & 0x01; + begin_y = end_y = -1; + return 1; + } + } + begin_x = end_x = -1; + } + + } + return 0; +} +#endif + + +/***************************************************************************** + * ELO part + */ + +#ifdef CONFIG_TOUCHSCREEN_USB_ELO + +static int elo_read_data(struct usbtouch_usb *dev, unsigned char *pkt) +{ + dev->x = (pkt[3] << 8) | pkt[2]; + dev->y = (pkt[5] << 8) | pkt[4]; + dev->touch = pkt[6] > 0; + dev->press = pkt[6]; + + return 1; +} +#endif + + +/***************************************************************************** + * the different device descriptors + */ +#ifdef MULTI_PACKET +static void usbtouch_process_multi(struct usbtouch_usb *usbtouch, + unsigned char *pkt, int len); +#endif + +static struct usbtouch_device_info usbtouch_dev_info[] = { +#ifdef CONFIG_TOUCHSCREEN_USB_ELO + [DEVTYPE_ELO] = { + .min_xc = 0x0, + .max_xc = 0x0fff, + .min_yc = 0x0, + .max_yc = 0x0fff, + .max_press = 0xff, + .rept_size = 8, + .read_data = elo_read_data, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_EGALAX + [DEVTYPE_EGALAX] = { + .min_xc = 0x0, + .max_xc = 0x07ff, + .min_yc = 0x0, + .max_yc = 0x07ff, + .rept_size = 16, + .process_pkt = usbtouch_process_multi, + .get_pkt_len = egalax_get_pkt_len, + .read_data = egalax_read_data, + .init = egalax_init, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_PANJIT + [DEVTYPE_PANJIT] = { + .min_xc = 0x0, + .max_xc = 0x0fff, + .min_yc = 0x0, + .max_yc = 0x0fff, + .rept_size = 8, + .read_data = panjit_read_data, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_3M + [DEVTYPE_3M] = { + .min_xc = 0x0, + .max_xc = 0x4000, + .min_yc = 0x0, + .max_yc = 0x4000, + .rept_size = 11, + .read_data = mtouch_read_data, + .init = mtouch_init, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_ITM + [DEVTYPE_ITM] = { + .min_xc = 0x0, + .max_xc = 0x0fff, + .min_yc = 0x0, + .max_yc = 0x0fff, + .max_press = 0xff, + .rept_size = 8, + .read_data = itm_read_data, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_ETURBO + [DEVTYPE_ETURBO] = { + .min_xc = 0x0, + .max_xc = 0x07ff, + .min_yc = 0x0, + .max_yc = 0x07ff, + .rept_size = 8, + .process_pkt = usbtouch_process_multi, + .get_pkt_len = eturbo_get_pkt_len, + .read_data = eturbo_read_data, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_GUNZE + [DEVTYPE_GUNZE] = { + .min_xc = 0x0, + .max_xc = 0x0fff, + .min_yc = 0x0, + .max_yc = 0x0fff, + .rept_size = 4, + .read_data = gunze_read_data, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_DMC_TSC10 + [DEVTYPE_DMC_TSC10] = { + .min_xc = 0x0, + .max_xc = 0x03ff, + .min_yc = 0x0, + .max_yc = 0x03ff, + .rept_size = 5, + .init = dmc_tsc10_init, + .read_data = dmc_tsc10_read_data, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_IRTOUCH + [DEVTYPE_IRTOUCH] = { + .min_xc = 0x0, + .max_xc = 0x0fff, + .min_yc = 0x0, + .max_yc = 0x0fff, + .rept_size = 8, + .read_data = irtouch_read_data, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_IDEALTEK + [DEVTYPE_IDEALTEK] = { + .min_xc = 0x0, + .max_xc = 0x0fff, + .min_yc = 0x0, + .max_yc = 0x0fff, + .rept_size = 8, + .process_pkt = usbtouch_process_multi, + .get_pkt_len = idealtek_get_pkt_len, + .read_data = idealtek_read_data, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH + [DEVTYPE_GENERAL_TOUCH] = { + .min_xc = 0x0, + .max_xc = 0x7fff, + .min_yc = 0x0, + .max_yc = 0x7fff, + .rept_size = 7, + .read_data = general_touch_read_data, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_GOTOP + [DEVTYPE_GOTOP] = { + .min_xc = 0x0, + .max_xc = 0x03ff, + .min_yc = 0x0, + .max_yc = 0x03ff, + .rept_size = 4, + .read_data = gotop_read_data, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_JASTEC + [DEVTYPE_JASTEC] = { + .min_xc = 0x0, + .max_xc = 0x0fff, + .min_yc = 0x0, + .max_yc = 0x0fff, + .rept_size = 4, + .read_data = jastec_read_data, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_E2I + [DEVTYPE_E2I] = { + .min_xc = 0x0, + .max_xc = 0x7fff, + .min_yc = 0x0, + .max_yc = 0x7fff, + .rept_size = 6, + .init = e2i_init, + .read_data = e2i_read_data, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_ZYTRONIC + [DEVTYPE_ZYTRONIC] = { + .min_xc = 0x0, + .max_xc = 0x03ff, + .min_yc = 0x0, + .max_yc = 0x03ff, + .rept_size = 5, + .read_data = zytronic_read_data, + .irq_always = true, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_ETT_TC45USB + [DEVTYPE_TC45USB] = { + .min_xc = 0x0, + .max_xc = 0x0fff, + .min_yc = 0x0, + .max_yc = 0x0fff, + .rept_size = 5, + .read_data = tc45usb_read_data, + }, +#endif + +#ifdef CONFIG_TOUCHSCREEN_USB_NEXIO + [DEVTYPE_NEXIO] = { + .rept_size = 1024, + .irq_always = true, + .read_data = nexio_read_data, + .alloc = nexio_alloc, + .init = nexio_init, + .exit = nexio_exit, + }, +#endif +#ifdef CONFIG_TOUCHSCREEN_USB_EASYTOUCH + [DEVTYPE_ETOUCH] = { + .min_xc = 0x0, + .max_xc = 0x07ff, + .min_yc = 0x0, + .max_yc = 0x07ff, + .rept_size = 16, + .process_pkt = usbtouch_process_multi, + .get_pkt_len = etouch_get_pkt_len, + .read_data = etouch_read_data, + }, +#endif +}; + + +/***************************************************************************** + * Generic Part + */ +static void usbtouch_process_pkt(struct usbtouch_usb *usbtouch, + unsigned char *pkt, int len) +{ + struct usbtouch_device_info *type = usbtouch->type; + + if (!type->read_data(usbtouch, pkt)) + return; + + input_report_key(usbtouch->input, BTN_TOUCH, usbtouch->touch); + + if (swap_xy) { + input_report_abs(usbtouch->input, ABS_X, usbtouch->y); + input_report_abs(usbtouch->input, ABS_Y, usbtouch->x); + } else { + input_report_abs(usbtouch->input, ABS_X, usbtouch->x); + input_report_abs(usbtouch->input, ABS_Y, usbtouch->y); + } + if (type->max_press) + input_report_abs(usbtouch->input, ABS_PRESSURE, usbtouch->press); + input_sync(usbtouch->input); +} + + +#ifdef MULTI_PACKET +static void usbtouch_process_multi(struct usbtouch_usb *usbtouch, + unsigned char *pkt, int len) +{ + unsigned char *buffer; + int pkt_len, pos, buf_len, tmp; + + /* process buffer */ + if (unlikely(usbtouch->buf_len)) { + /* try to get size */ + pkt_len = usbtouch->type->get_pkt_len( + usbtouch->buffer, usbtouch->buf_len); + + /* drop? */ + if (unlikely(!pkt_len)) + goto out_flush_buf; + + /* need to append -pkt_len bytes before able to get size */ + if (unlikely(pkt_len < 0)) { + int append = -pkt_len; + if (unlikely(append > len)) + append = len; + if (usbtouch->buf_len + append >= usbtouch->type->rept_size) + goto out_flush_buf; + memcpy(usbtouch->buffer + usbtouch->buf_len, pkt, append); + usbtouch->buf_len += append; + + pkt_len = usbtouch->type->get_pkt_len( + usbtouch->buffer, usbtouch->buf_len); + if (pkt_len < 0) + return; + } + + /* append */ + tmp = pkt_len - usbtouch->buf_len; + if (usbtouch->buf_len + tmp >= usbtouch->type->rept_size) + goto out_flush_buf; + memcpy(usbtouch->buffer + usbtouch->buf_len, pkt, tmp); + usbtouch_process_pkt(usbtouch, usbtouch->buffer, pkt_len); + + buffer = pkt + tmp; + buf_len = len - tmp; + } else { + buffer = pkt; + buf_len = len; + } + + /* loop over the received packet, process */ + pos = 0; + while (pos < buf_len) { + /* get packet len */ + pkt_len = usbtouch->type->get_pkt_len(buffer + pos, + buf_len - pos); + + /* unknown packet: skip one byte */ + if (unlikely(!pkt_len)) { + pos++; + continue; + } + + /* full packet: process */ + if (likely((pkt_len > 0) && (pkt_len <= buf_len - pos))) { + usbtouch_process_pkt(usbtouch, buffer + pos, pkt_len); + } else { + /* incomplete packet: save in buffer */ + memcpy(usbtouch->buffer, buffer + pos, buf_len - pos); + usbtouch->buf_len = buf_len - pos; + return; + } + pos += pkt_len; + } + +out_flush_buf: + usbtouch->buf_len = 0; + return; +} +#endif + + +static void usbtouch_irq(struct urb *urb) +{ + struct usbtouch_usb *usbtouch = urb->context; + struct device *dev = &usbtouch->interface->dev; + int retval; + + switch (urb->status) { + case 0: + /* success */ + break; + case -ETIME: + /* this urb is timing out */ + dev_dbg(dev, + "%s - urb timed out - was the device unplugged?\n", + __func__); + return; + case -ECONNRESET: + case -ENOENT: + case -ESHUTDOWN: + case -EPIPE: + /* this urb is terminated, clean up */ + dev_dbg(dev, "%s - urb shutting down with status: %d\n", + __func__, urb->status); + return; + default: + dev_dbg(dev, "%s - nonzero urb status received: %d\n", + __func__, urb->status); + goto exit; + } + + usbtouch->type->process_pkt(usbtouch, usbtouch->data, urb->actual_length); + +exit: + usb_mark_last_busy(interface_to_usbdev(usbtouch->interface)); + retval = usb_submit_urb(urb, GFP_ATOMIC); + if (retval) + dev_err(dev, "%s - usb_submit_urb failed with result: %d\n", + __func__, retval); +} + +static int usbtouch_open(struct input_dev *input) +{ + struct usbtouch_usb *usbtouch = input_get_drvdata(input); + int r; + + usbtouch->irq->dev = interface_to_usbdev(usbtouch->interface); + + r = usb_autopm_get_interface(usbtouch->interface) ? -EIO : 0; + if (r < 0) + goto out; + + if (!usbtouch->type->irq_always) { + if (usb_submit_urb(usbtouch->irq, GFP_KERNEL)) { + r = -EIO; + goto out_put; + } + } + + usbtouch->interface->needs_remote_wakeup = 1; +out_put: + usb_autopm_put_interface(usbtouch->interface); +out: + return r; +} + +static void usbtouch_close(struct input_dev *input) +{ + struct usbtouch_usb *usbtouch = input_get_drvdata(input); + int r; + + if (!usbtouch->type->irq_always) + usb_kill_urb(usbtouch->irq); + r = usb_autopm_get_interface(usbtouch->interface); + usbtouch->interface->needs_remote_wakeup = 0; + if (!r) + usb_autopm_put_interface(usbtouch->interface); +} + +static int usbtouch_suspend +(struct usb_interface *intf, pm_message_t message) +{ + struct usbtouch_usb *usbtouch = usb_get_intfdata(intf); + + usb_kill_urb(usbtouch->irq); + + return 0; +} + +static int usbtouch_resume(struct usb_interface *intf) +{ + struct usbtouch_usb *usbtouch = usb_get_intfdata(intf); + struct input_dev *input = usbtouch->input; + int result = 0; + + mutex_lock(&input->mutex); + if (input->users || usbtouch->type->irq_always) + result = usb_submit_urb(usbtouch->irq, GFP_NOIO); + mutex_unlock(&input->mutex); + + return result; +} + +static int usbtouch_reset_resume(struct usb_interface *intf) +{ + struct usbtouch_usb *usbtouch = usb_get_intfdata(intf); + struct input_dev *input = usbtouch->input; + int err = 0; + + /* reinit the device */ + if (usbtouch->type->init) { + err = usbtouch->type->init(usbtouch); + if (err) { + dev_dbg(&intf->dev, + "%s - type->init() failed, err: %d\n", + __func__, err); + return err; + } + } + + /* restart IO if needed */ + mutex_lock(&input->mutex); + if (input->users) + err = usb_submit_urb(usbtouch->irq, GFP_NOIO); + mutex_unlock(&input->mutex); + + return err; +} + +static void usbtouch_free_buffers(struct usb_device *udev, + struct usbtouch_usb *usbtouch) +{ + usb_free_coherent(udev, usbtouch->data_size, + usbtouch->data, usbtouch->data_dma); + kfree(usbtouch->buffer); +} + +static struct usb_endpoint_descriptor * +usbtouch_get_input_endpoint(struct usb_host_interface *interface) +{ + int i; + + for (i = 0; i < interface->desc.bNumEndpoints; i++) + if (usb_endpoint_dir_in(&interface->endpoint[i].desc)) + return &interface->endpoint[i].desc; + + return NULL; +} + +static int usbtouch_probe(struct usb_interface *intf, + const struct usb_device_id *id) +{ + struct usbtouch_usb *usbtouch; + struct input_dev *input_dev; + struct usb_endpoint_descriptor *endpoint; + struct usb_device *udev = interface_to_usbdev(intf); + struct usbtouch_device_info *type; + int err = -ENOMEM; + + /* some devices are ignored */ + if (id->driver_info == DEVTYPE_IGNORE) + return -ENODEV; + + endpoint = usbtouch_get_input_endpoint(intf->cur_altsetting); + if (!endpoint) + return -ENXIO; + + usbtouch = kzalloc(sizeof(struct usbtouch_usb), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!usbtouch || !input_dev) + goto out_free; + + type = &usbtouch_dev_info[id->driver_info]; + usbtouch->type = type; + if (!type->process_pkt) + type->process_pkt = usbtouch_process_pkt; + + usbtouch->data_size = type->rept_size; + if (type->get_pkt_len) { + /* + * When dealing with variable-length packets we should + * not request more than wMaxPacketSize bytes at once + * as we do not know if there is more data coming or + * we filled exactly wMaxPacketSize bytes and there is + * nothing else. + */ + usbtouch->data_size = min(usbtouch->data_size, + usb_endpoint_maxp(endpoint)); + } + + usbtouch->data = usb_alloc_coherent(udev, usbtouch->data_size, + GFP_KERNEL, &usbtouch->data_dma); + if (!usbtouch->data) + goto out_free; + + if (type->get_pkt_len) { + usbtouch->buffer = kmalloc(type->rept_size, GFP_KERNEL); + if (!usbtouch->buffer) + goto out_free_buffers; + } + + usbtouch->irq = usb_alloc_urb(0, GFP_KERNEL); + if (!usbtouch->irq) { + dev_dbg(&intf->dev, + "%s - usb_alloc_urb failed: usbtouch->irq\n", __func__); + goto out_free_buffers; + } + + usbtouch->interface = intf; + usbtouch->input = input_dev; + + if (udev->manufacturer) + strlcpy(usbtouch->name, udev->manufacturer, sizeof(usbtouch->name)); + + if (udev->product) { + if (udev->manufacturer) + strlcat(usbtouch->name, " ", sizeof(usbtouch->name)); + strlcat(usbtouch->name, udev->product, sizeof(usbtouch->name)); + } + + if (!strlen(usbtouch->name)) + snprintf(usbtouch->name, sizeof(usbtouch->name), + "USB Touchscreen %04x:%04x", + le16_to_cpu(udev->descriptor.idVendor), + le16_to_cpu(udev->descriptor.idProduct)); + + usb_make_path(udev, usbtouch->phys, sizeof(usbtouch->phys)); + strlcat(usbtouch->phys, "/input0", sizeof(usbtouch->phys)); + + input_dev->name = usbtouch->name; + input_dev->phys = usbtouch->phys; + usb_to_input_id(udev, &input_dev->id); + input_dev->dev.parent = &intf->dev; + + input_set_drvdata(input_dev, usbtouch); + + input_dev->open = usbtouch_open; + input_dev->close = usbtouch_close; + + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + input_set_abs_params(input_dev, ABS_X, type->min_xc, type->max_xc, 0, 0); + input_set_abs_params(input_dev, ABS_Y, type->min_yc, type->max_yc, 0, 0); + if (type->max_press) + input_set_abs_params(input_dev, ABS_PRESSURE, type->min_press, + type->max_press, 0, 0); + + if (usb_endpoint_type(endpoint) == USB_ENDPOINT_XFER_INT) + usb_fill_int_urb(usbtouch->irq, udev, + usb_rcvintpipe(udev, endpoint->bEndpointAddress), + usbtouch->data, usbtouch->data_size, + usbtouch_irq, usbtouch, endpoint->bInterval); + else + usb_fill_bulk_urb(usbtouch->irq, udev, + usb_rcvbulkpipe(udev, endpoint->bEndpointAddress), + usbtouch->data, usbtouch->data_size, + usbtouch_irq, usbtouch); + + usbtouch->irq->dev = udev; + usbtouch->irq->transfer_dma = usbtouch->data_dma; + usbtouch->irq->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; + + /* device specific allocations */ + if (type->alloc) { + err = type->alloc(usbtouch); + if (err) { + dev_dbg(&intf->dev, + "%s - type->alloc() failed, err: %d\n", + __func__, err); + goto out_free_urb; + } + } + + /* device specific initialisation*/ + if (type->init) { + err = type->init(usbtouch); + if (err) { + dev_dbg(&intf->dev, + "%s - type->init() failed, err: %d\n", + __func__, err); + goto out_do_exit; + } + } + + err = input_register_device(usbtouch->input); + if (err) { + dev_dbg(&intf->dev, + "%s - input_register_device failed, err: %d\n", + __func__, err); + goto out_do_exit; + } + + usb_set_intfdata(intf, usbtouch); + + if (usbtouch->type->irq_always) { + /* this can't fail */ + usb_autopm_get_interface(intf); + err = usb_submit_urb(usbtouch->irq, GFP_KERNEL); + if (err) { + usb_autopm_put_interface(intf); + dev_err(&intf->dev, + "%s - usb_submit_urb failed with result: %d\n", + __func__, err); + goto out_unregister_input; + } + } + + return 0; + +out_unregister_input: + input_unregister_device(input_dev); + input_dev = NULL; +out_do_exit: + if (type->exit) + type->exit(usbtouch); +out_free_urb: + usb_free_urb(usbtouch->irq); +out_free_buffers: + usbtouch_free_buffers(udev, usbtouch); +out_free: + input_free_device(input_dev); + kfree(usbtouch); + return err; +} + +static void usbtouch_disconnect(struct usb_interface *intf) +{ + struct usbtouch_usb *usbtouch = usb_get_intfdata(intf); + + if (!usbtouch) + return; + + dev_dbg(&intf->dev, + "%s - usbtouch is initialized, cleaning up\n", __func__); + + usb_set_intfdata(intf, NULL); + /* this will stop IO via close */ + input_unregister_device(usbtouch->input); + usb_free_urb(usbtouch->irq); + if (usbtouch->type->exit) + usbtouch->type->exit(usbtouch); + usbtouch_free_buffers(interface_to_usbdev(intf), usbtouch); + kfree(usbtouch); +} + +MODULE_DEVICE_TABLE(usb, usbtouch_devices); + +static struct usb_driver usbtouch_driver = { + .name = "usbtouchscreen", + .probe = usbtouch_probe, + .disconnect = usbtouch_disconnect, + .suspend = usbtouch_suspend, + .resume = usbtouch_resume, + .reset_resume = usbtouch_reset_resume, + .id_table = usbtouch_devices, + .supports_autosuspend = 1, +}; + +module_usb_driver(usbtouch_driver); + +MODULE_AUTHOR(DRIVER_AUTHOR); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL"); + +MODULE_ALIAS("touchkitusb"); +MODULE_ALIAS("itmtouch"); +MODULE_ALIAS("mtouchusb"); diff --git a/drivers/input/touchscreen/w90p910_ts.c b/drivers/input/touchscreen/w90p910_ts.c new file mode 100644 index 00000000..d2ef8f05 --- /dev/null +++ b/drivers/input/touchscreen/w90p910_ts.c @@ -0,0 +1,339 @@ +/* + * Copyright (c) 2008 Nuvoton technology corporation. + * + * Wan ZongShun + * + * 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;version 2 of the License. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +/* ADC controller bit defines */ +#define ADC_DELAY 0xf00 +#define ADC_DOWN 0x01 +#define ADC_TSC_Y (0x01 << 8) +#define ADC_TSC_X (0x00 << 8) +#define TSC_FOURWIRE (~(0x03 << 1)) +#define ADC_CLK_EN (0x01 << 28) /* ADC clock enable */ +#define ADC_READ_CON (0x01 << 12) +#define ADC_CONV (0x01 << 13) +#define ADC_SEMIAUTO (0x01 << 14) +#define ADC_WAITTRIG (0x03 << 14) +#define ADC_RST1 (0x01 << 16) +#define ADC_RST0 (0x00 << 16) +#define ADC_EN (0x01 << 17) +#define ADC_INT (0x01 << 18) +#define WT_INT (0x01 << 20) +#define ADC_INT_EN (0x01 << 21) +#define LVD_INT_EN (0x01 << 22) +#define WT_INT_EN (0x01 << 23) +#define ADC_DIV (0x04 << 1) /* div = 6 */ + +enum ts_state { + TS_WAIT_NEW_PACKET, /* We are waiting next touch report */ + TS_WAIT_X_COORD, /* We are waiting for ADC to report X coord */ + TS_WAIT_Y_COORD, /* We are waiting for ADC to report Y coord */ + TS_IDLE, /* Input device is closed, don't do anything */ +}; + +struct w90p910_ts { + struct input_dev *input; + struct timer_list timer; + struct clk *clk; + int irq_num; + void __iomem *ts_reg; + spinlock_t lock; + enum ts_state state; +}; + +static void w90p910_report_event(struct w90p910_ts *w90p910_ts, bool down) +{ + struct input_dev *dev = w90p910_ts->input; + + if (down) { + input_report_abs(dev, ABS_X, + __raw_readl(w90p910_ts->ts_reg + 0x0c)); + input_report_abs(dev, ABS_Y, + __raw_readl(w90p910_ts->ts_reg + 0x10)); + } + + input_report_key(dev, BTN_TOUCH, down); + input_sync(dev); +} + +static void w90p910_prepare_x_reading(struct w90p910_ts *w90p910_ts) +{ + unsigned long ctlreg; + + __raw_writel(ADC_TSC_X, w90p910_ts->ts_reg + 0x04); + ctlreg = __raw_readl(w90p910_ts->ts_reg); + ctlreg &= ~(ADC_WAITTRIG | WT_INT | WT_INT_EN); + ctlreg |= ADC_SEMIAUTO | ADC_INT_EN | ADC_CONV; + __raw_writel(ctlreg, w90p910_ts->ts_reg); + + w90p910_ts->state = TS_WAIT_X_COORD; +} + +static void w90p910_prepare_y_reading(struct w90p910_ts *w90p910_ts) +{ + unsigned long ctlreg; + + __raw_writel(ADC_TSC_Y, w90p910_ts->ts_reg + 0x04); + ctlreg = __raw_readl(w90p910_ts->ts_reg); + ctlreg &= ~(ADC_WAITTRIG | ADC_INT | WT_INT_EN); + ctlreg |= ADC_SEMIAUTO | ADC_INT_EN | ADC_CONV; + __raw_writel(ctlreg, w90p910_ts->ts_reg); + + w90p910_ts->state = TS_WAIT_Y_COORD; +} + +static void w90p910_prepare_next_packet(struct w90p910_ts *w90p910_ts) +{ + unsigned long ctlreg; + + ctlreg = __raw_readl(w90p910_ts->ts_reg); + ctlreg &= ~(ADC_INT | ADC_INT_EN | ADC_SEMIAUTO | ADC_CONV); + ctlreg |= ADC_WAITTRIG | WT_INT_EN; + __raw_writel(ctlreg, w90p910_ts->ts_reg); + + w90p910_ts->state = TS_WAIT_NEW_PACKET; +} + +static irqreturn_t w90p910_ts_interrupt(int irq, void *dev_id) +{ + struct w90p910_ts *w90p910_ts = dev_id; + unsigned long flags; + + spin_lock_irqsave(&w90p910_ts->lock, flags); + + switch (w90p910_ts->state) { + case TS_WAIT_NEW_PACKET: + /* + * The controller only generates interrupts when pen + * is down. + */ + del_timer(&w90p910_ts->timer); + w90p910_prepare_x_reading(w90p910_ts); + break; + + + case TS_WAIT_X_COORD: + w90p910_prepare_y_reading(w90p910_ts); + break; + + case TS_WAIT_Y_COORD: + w90p910_report_event(w90p910_ts, true); + w90p910_prepare_next_packet(w90p910_ts); + mod_timer(&w90p910_ts->timer, jiffies + msecs_to_jiffies(100)); + break; + + case TS_IDLE: + break; + } + + spin_unlock_irqrestore(&w90p910_ts->lock, flags); + + return IRQ_HANDLED; +} + +static void w90p910_check_pen_up(unsigned long data) +{ + struct w90p910_ts *w90p910_ts = (struct w90p910_ts *) data; + unsigned long flags; + + spin_lock_irqsave(&w90p910_ts->lock, flags); + + if (w90p910_ts->state == TS_WAIT_NEW_PACKET && + !(__raw_readl(w90p910_ts->ts_reg + 0x04) & ADC_DOWN)) { + + w90p910_report_event(w90p910_ts, false); + } + + spin_unlock_irqrestore(&w90p910_ts->lock, flags); +} + +static int w90p910_open(struct input_dev *dev) +{ + struct w90p910_ts *w90p910_ts = input_get_drvdata(dev); + unsigned long val; + + /* enable the ADC clock */ + clk_enable(w90p910_ts->clk); + + __raw_writel(ADC_RST1, w90p910_ts->ts_reg); + msleep(1); + __raw_writel(ADC_RST0, w90p910_ts->ts_reg); + msleep(1); + + /* set delay and screen type */ + val = __raw_readl(w90p910_ts->ts_reg + 0x04); + __raw_writel(val & TSC_FOURWIRE, w90p910_ts->ts_reg + 0x04); + __raw_writel(ADC_DELAY, w90p910_ts->ts_reg + 0x08); + + w90p910_ts->state = TS_WAIT_NEW_PACKET; + wmb(); + + /* set trigger mode */ + val = __raw_readl(w90p910_ts->ts_reg); + val |= ADC_WAITTRIG | ADC_DIV | ADC_EN | WT_INT_EN; + __raw_writel(val, w90p910_ts->ts_reg); + + return 0; +} + +static void w90p910_close(struct input_dev *dev) +{ + struct w90p910_ts *w90p910_ts = input_get_drvdata(dev); + unsigned long val; + + /* disable trigger mode */ + + spin_lock_irq(&w90p910_ts->lock); + + w90p910_ts->state = TS_IDLE; + + val = __raw_readl(w90p910_ts->ts_reg); + val &= ~(ADC_WAITTRIG | ADC_DIV | ADC_EN | WT_INT_EN | ADC_INT_EN); + __raw_writel(val, w90p910_ts->ts_reg); + + spin_unlock_irq(&w90p910_ts->lock); + + /* Now that interrupts are shut off we can safely delete timer */ + del_timer_sync(&w90p910_ts->timer); + + /* stop the ADC clock */ + clk_disable(w90p910_ts->clk); +} + +static int w90x900ts_probe(struct platform_device *pdev) +{ + struct w90p910_ts *w90p910_ts; + struct input_dev *input_dev; + struct resource *res; + int err; + + w90p910_ts = kzalloc(sizeof(struct w90p910_ts), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!w90p910_ts || !input_dev) { + err = -ENOMEM; + goto fail1; + } + + w90p910_ts->input = input_dev; + w90p910_ts->state = TS_IDLE; + spin_lock_init(&w90p910_ts->lock); + setup_timer(&w90p910_ts->timer, w90p910_check_pen_up, + (unsigned long)w90p910_ts); + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!res) { + err = -ENXIO; + goto fail1; + } + + if (!request_mem_region(res->start, resource_size(res), + pdev->name)) { + err = -EBUSY; + goto fail1; + } + + w90p910_ts->ts_reg = ioremap(res->start, resource_size(res)); + if (!w90p910_ts->ts_reg) { + err = -ENOMEM; + goto fail2; + } + + w90p910_ts->clk = clk_get(&pdev->dev, NULL); + if (IS_ERR(w90p910_ts->clk)) { + err = PTR_ERR(w90p910_ts->clk); + goto fail3; + } + + input_dev->name = "W90P910 TouchScreen"; + input_dev->phys = "w90p910ts/event0"; + input_dev->id.bustype = BUS_HOST; + input_dev->id.vendor = 0x0005; + input_dev->id.product = 0x0001; + input_dev->id.version = 0x0100; + input_dev->dev.parent = &pdev->dev; + input_dev->open = w90p910_open; + input_dev->close = w90p910_close; + + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + + input_set_abs_params(input_dev, ABS_X, 0, 0x400, 0, 0); + input_set_abs_params(input_dev, ABS_Y, 0, 0x400, 0, 0); + + input_set_drvdata(input_dev, w90p910_ts); + + w90p910_ts->irq_num = platform_get_irq(pdev, 0); + if (request_irq(w90p910_ts->irq_num, w90p910_ts_interrupt, + 0, "w90p910ts", w90p910_ts)) { + err = -EBUSY; + goto fail4; + } + + err = input_register_device(w90p910_ts->input); + if (err) + goto fail5; + + platform_set_drvdata(pdev, w90p910_ts); + + return 0; + +fail5: free_irq(w90p910_ts->irq_num, w90p910_ts); +fail4: clk_put(w90p910_ts->clk); +fail3: iounmap(w90p910_ts->ts_reg); +fail2: release_mem_region(res->start, resource_size(res)); +fail1: input_free_device(input_dev); + kfree(w90p910_ts); + return err; +} + +static int w90x900ts_remove(struct platform_device *pdev) +{ + struct w90p910_ts *w90p910_ts = platform_get_drvdata(pdev); + struct resource *res; + + free_irq(w90p910_ts->irq_num, w90p910_ts); + del_timer_sync(&w90p910_ts->timer); + iounmap(w90p910_ts->ts_reg); + + clk_put(w90p910_ts->clk); + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + release_mem_region(res->start, resource_size(res)); + + input_unregister_device(w90p910_ts->input); + kfree(w90p910_ts); + + platform_set_drvdata(pdev, NULL); + + return 0; +} + +static struct platform_driver w90x900ts_driver = { + .probe = w90x900ts_probe, + .remove = w90x900ts_remove, + .driver = { + .name = "nuc900-ts", + .owner = THIS_MODULE, + }, +}; +module_platform_driver(w90x900ts_driver); + +MODULE_AUTHOR("Wan ZongShun "); +MODULE_DESCRIPTION("w90p910 touch screen driver!"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:nuc900-ts"); diff --git a/drivers/input/touchscreen/wacom_i2c.c b/drivers/input/touchscreen/wacom_i2c.c new file mode 100644 index 00000000..bf0d0762 --- /dev/null +++ b/drivers/input/touchscreen/wacom_i2c.c @@ -0,0 +1,282 @@ +/* + * Wacom Penabled Driver for I2C + * + * Copyright (c) 2011 Tatsunosuke Tobita, Wacom. + * + * + * 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 of 2 of the License, + * or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define WACOM_CMD_QUERY0 0x04 +#define WACOM_CMD_QUERY1 0x00 +#define WACOM_CMD_QUERY2 0x33 +#define WACOM_CMD_QUERY3 0x02 +#define WACOM_CMD_THROW0 0x05 +#define WACOM_CMD_THROW1 0x00 +#define WACOM_QUERY_SIZE 19 +#define WACOM_RETRY_CNT 100 + +struct wacom_features { + int x_max; + int y_max; + int pressure_max; + char fw_version; +}; + +struct wacom_i2c { + struct i2c_client *client; + struct input_dev *input; + u8 data[WACOM_QUERY_SIZE]; +}; + +static int wacom_query_device(struct i2c_client *client, + struct wacom_features *features) +{ + int ret; + u8 cmd1[] = { WACOM_CMD_QUERY0, WACOM_CMD_QUERY1, + WACOM_CMD_QUERY2, WACOM_CMD_QUERY3 }; + u8 cmd2[] = { WACOM_CMD_THROW0, WACOM_CMD_THROW1 }; + u8 data[WACOM_QUERY_SIZE]; + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = 0, + .len = sizeof(cmd1), + .buf = cmd1, + }, + { + .addr = client->addr, + .flags = 0, + .len = sizeof(cmd2), + .buf = cmd2, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = sizeof(data), + .buf = data, + }, + }; + + ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); + if (ret < 0) + return ret; + if (ret != ARRAY_SIZE(msgs)) + return -EIO; + + features->x_max = get_unaligned_le16(&data[3]); + features->y_max = get_unaligned_le16(&data[5]); + features->pressure_max = get_unaligned_le16(&data[11]); + features->fw_version = get_unaligned_le16(&data[13]); + + dev_dbg(&client->dev, + "x_max:%d, y_max:%d, pressure:%d, fw:%d\n", + features->x_max, features->y_max, + features->pressure_max, features->fw_version); + + return 0; +} + +static irqreturn_t wacom_i2c_irq(int irq, void *dev_id) +{ + struct wacom_i2c *wac_i2c = dev_id; + struct input_dev *input = wac_i2c->input; + u8 *data = wac_i2c->data; + unsigned int x, y, pressure; + unsigned char tsw, f1, f2, ers; + int error; + + error = i2c_master_recv(wac_i2c->client, + wac_i2c->data, sizeof(wac_i2c->data)); + if (error < 0) + goto out; + + tsw = data[3] & 0x01; + ers = data[3] & 0x04; + f1 = data[3] & 0x02; + f2 = data[3] & 0x10; + x = le16_to_cpup((__le16 *)&data[4]); + y = le16_to_cpup((__le16 *)&data[6]); + pressure = le16_to_cpup((__le16 *)&data[8]); + + input_report_key(input, BTN_TOUCH, tsw || ers); + input_report_key(input, BTN_TOOL_PEN, tsw); + input_report_key(input, BTN_TOOL_RUBBER, ers); + input_report_key(input, BTN_STYLUS, f1); + input_report_key(input, BTN_STYLUS2, f2); + input_report_abs(input, ABS_X, x); + input_report_abs(input, ABS_Y, y); + input_report_abs(input, ABS_PRESSURE, pressure); + input_sync(input); + +out: + return IRQ_HANDLED; +} + +static int wacom_i2c_open(struct input_dev *dev) +{ + struct wacom_i2c *wac_i2c = input_get_drvdata(dev); + struct i2c_client *client = wac_i2c->client; + + enable_irq(client->irq); + + return 0; +} + +static void wacom_i2c_close(struct input_dev *dev) +{ + struct wacom_i2c *wac_i2c = input_get_drvdata(dev); + struct i2c_client *client = wac_i2c->client; + + disable_irq(client->irq); +} + +static int wacom_i2c_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct wacom_i2c *wac_i2c; + struct input_dev *input; + struct wacom_features features = { 0 }; + int error; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + dev_err(&client->dev, "i2c_check_functionality error\n"); + return -EIO; + } + + error = wacom_query_device(client, &features); + if (error) + return error; + + wac_i2c = kzalloc(sizeof(*wac_i2c), GFP_KERNEL); + input = input_allocate_device(); + if (!wac_i2c || !input) { + error = -ENOMEM; + goto err_free_mem; + } + + wac_i2c->client = client; + wac_i2c->input = input; + + input->name = "Wacom I2C Digitizer"; + input->id.bustype = BUS_I2C; + input->id.vendor = 0x56a; + input->id.version = features.fw_version; + input->dev.parent = &client->dev; + input->open = wacom_i2c_open; + input->close = wacom_i2c_close; + + input->evbit[0] |= BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + + __set_bit(BTN_TOOL_PEN, input->keybit); + __set_bit(BTN_TOOL_RUBBER, input->keybit); + __set_bit(BTN_STYLUS, input->keybit); + __set_bit(BTN_STYLUS2, input->keybit); + __set_bit(BTN_TOUCH, input->keybit); + + input_set_abs_params(input, ABS_X, 0, features.x_max, 0, 0); + input_set_abs_params(input, ABS_Y, 0, features.y_max, 0, 0); + input_set_abs_params(input, ABS_PRESSURE, + 0, features.pressure_max, 0, 0); + + input_set_drvdata(input, wac_i2c); + + error = request_threaded_irq(client->irq, NULL, wacom_i2c_irq, + IRQF_TRIGGER_LOW | IRQF_ONESHOT, + "wacom_i2c", wac_i2c); + if (error) { + dev_err(&client->dev, + "Failed to enable IRQ, error: %d\n", error); + goto err_free_mem; + } + + /* Disable the IRQ, we'll enable it in wac_i2c_open() */ + disable_irq(client->irq); + + error = input_register_device(wac_i2c->input); + if (error) { + dev_err(&client->dev, + "Failed to register input device, error: %d\n", error); + goto err_free_irq; + } + + i2c_set_clientdata(client, wac_i2c); + return 0; + +err_free_irq: + free_irq(client->irq, wac_i2c); +err_free_mem: + input_free_device(input); + kfree(wac_i2c); + + return error; +} + +static int wacom_i2c_remove(struct i2c_client *client) +{ + struct wacom_i2c *wac_i2c = i2c_get_clientdata(client); + + free_irq(client->irq, wac_i2c); + input_unregister_device(wac_i2c->input); + kfree(wac_i2c); + + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int wacom_i2c_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + + disable_irq(client->irq); + + return 0; +} + +static int wacom_i2c_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + + enable_irq(client->irq); + + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(wacom_i2c_pm, wacom_i2c_suspend, wacom_i2c_resume); + +static const struct i2c_device_id wacom_i2c_id[] = { + { "WAC_I2C_EMR", 0 }, + { }, +}; +MODULE_DEVICE_TABLE(i2c, wacom_i2c_id); + +static struct i2c_driver wacom_i2c_driver = { + .driver = { + .name = "wacom_i2c", + .owner = THIS_MODULE, + .pm = &wacom_i2c_pm, + }, + + .probe = wacom_i2c_probe, + .remove = wacom_i2c_remove, + .id_table = wacom_i2c_id, +}; +module_i2c_driver(wacom_i2c_driver); + +MODULE_AUTHOR("Tatsunosuke Tobita "); +MODULE_DESCRIPTION("WACOM EMR I2C Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/wacom_w8001.c b/drivers/input/touchscreen/wacom_w8001.c new file mode 100644 index 00000000..9a83be6b --- /dev/null +++ b/drivers/input/touchscreen/wacom_w8001.c @@ -0,0 +1,597 @@ +/* + * Wacom W8001 penabled serial touchscreen driver + * + * Copyright (c) 2008 Jaya Kumar + * Copyright (c) 2010 Red Hat, Inc. + * Copyright (c) 2010 - 2011 Ping Cheng, Wacom. + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + * + * Layout based on Elo serial touchscreen driver by Vojtech Pavlik + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DRIVER_DESC "Wacom W8001 serial touchscreen driver" + +MODULE_AUTHOR("Jaya Kumar "); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL"); + +#define W8001_MAX_LENGTH 11 +#define W8001_LEAD_MASK 0x80 +#define W8001_LEAD_BYTE 0x80 +#define W8001_TAB_MASK 0x40 +#define W8001_TAB_BYTE 0x40 +/* set in first byte of touch data packets */ +#define W8001_TOUCH_MASK (0x10 | W8001_LEAD_MASK) +#define W8001_TOUCH_BYTE (0x10 | W8001_LEAD_BYTE) + +#define W8001_QUERY_PACKET 0x20 + +#define W8001_CMD_STOP '0' +#define W8001_CMD_START '1' +#define W8001_CMD_QUERY '*' +#define W8001_CMD_TOUCHQUERY '%' + +/* length of data packets in bytes, depends on device. */ +#define W8001_PKTLEN_TOUCH93 5 +#define W8001_PKTLEN_TOUCH9A 7 +#define W8001_PKTLEN_TPCPEN 9 +#define W8001_PKTLEN_TPCCTL 11 /* control packet */ +#define W8001_PKTLEN_TOUCH2FG 13 + +/* resolution in points/mm */ +#define W8001_PEN_RESOLUTION 100 +#define W8001_TOUCH_RESOLUTION 10 + +struct w8001_coord { + u8 rdy; + u8 tsw; + u8 f1; + u8 f2; + u16 x; + u16 y; + u16 pen_pressure; + u8 tilt_x; + u8 tilt_y; +}; + +/* touch query reply packet */ +struct w8001_touch_query { + u16 x; + u16 y; + u8 panel_res; + u8 capacity_res; + u8 sensor_id; +}; + +/* + * Per-touchscreen data. + */ + +struct w8001 { + struct input_dev *dev; + struct serio *serio; + struct completion cmd_done; + int id; + int idx; + unsigned char response_type; + unsigned char response[W8001_MAX_LENGTH]; + unsigned char data[W8001_MAX_LENGTH]; + char phys[32]; + int type; + unsigned int pktlen; + u16 max_touch_x; + u16 max_touch_y; + u16 max_pen_x; + u16 max_pen_y; + char name[64]; +}; + +static void parse_pen_data(u8 *data, struct w8001_coord *coord) +{ + memset(coord, 0, sizeof(*coord)); + + coord->rdy = data[0] & 0x20; + coord->tsw = data[0] & 0x01; + coord->f1 = data[0] & 0x02; + coord->f2 = data[0] & 0x04; + + coord->x = (data[1] & 0x7F) << 9; + coord->x |= (data[2] & 0x7F) << 2; + coord->x |= (data[6] & 0x60) >> 5; + + coord->y = (data[3] & 0x7F) << 9; + coord->y |= (data[4] & 0x7F) << 2; + coord->y |= (data[6] & 0x18) >> 3; + + coord->pen_pressure = data[5] & 0x7F; + coord->pen_pressure |= (data[6] & 0x07) << 7 ; + + coord->tilt_x = data[7] & 0x7F; + coord->tilt_y = data[8] & 0x7F; +} + +static void parse_single_touch(u8 *data, struct w8001_coord *coord) +{ + coord->x = (data[1] << 7) | data[2]; + coord->y = (data[3] << 7) | data[4]; + coord->tsw = data[0] & 0x01; +} + +static void scale_touch_coordinates(struct w8001 *w8001, + unsigned int *x, unsigned int *y) +{ + if (w8001->max_pen_x && w8001->max_touch_x) + *x = *x * w8001->max_pen_x / w8001->max_touch_x; + + if (w8001->max_pen_y && w8001->max_touch_y) + *y = *y * w8001->max_pen_y / w8001->max_touch_y; +} + +static void parse_multi_touch(struct w8001 *w8001) +{ + struct input_dev *dev = w8001->dev; + unsigned char *data = w8001->data; + unsigned int x, y; + int i; + int count = 0; + + for (i = 0; i < 2; i++) { + bool touch = data[0] & (1 << i); + + input_mt_slot(dev, i); + input_mt_report_slot_state(dev, MT_TOOL_FINGER, touch); + if (touch) { + x = (data[6 * i + 1] << 7) | data[6 * i + 2]; + y = (data[6 * i + 3] << 7) | data[6 * i + 4]; + /* data[5,6] and [11,12] is finger capacity */ + + /* scale to pen maximum */ + scale_touch_coordinates(w8001, &x, &y); + + input_report_abs(dev, ABS_MT_POSITION_X, x); + input_report_abs(dev, ABS_MT_POSITION_Y, y); + count++; + } + } + + /* emulate single touch events when stylus is out of proximity. + * This is to make single touch backward support consistent + * across all Wacom single touch devices. + */ + if (w8001->type != BTN_TOOL_PEN && + w8001->type != BTN_TOOL_RUBBER) { + w8001->type = count == 1 ? BTN_TOOL_FINGER : KEY_RESERVED; + input_mt_report_pointer_emulation(dev, true); + } + + input_sync(dev); +} + +static void parse_touchquery(u8 *data, struct w8001_touch_query *query) +{ + memset(query, 0, sizeof(*query)); + + query->panel_res = data[1]; + query->sensor_id = data[2] & 0x7; + query->capacity_res = data[7]; + + query->x = data[3] << 9; + query->x |= data[4] << 2; + query->x |= (data[2] >> 5) & 0x3; + + query->y = data[5] << 9; + query->y |= data[6] << 2; + query->y |= (data[2] >> 3) & 0x3; + + /* Early days' single-finger touch models need the following defaults */ + if (!query->x && !query->y) { + query->x = 1024; + query->y = 1024; + if (query->panel_res) + query->x = query->y = (1 << query->panel_res); + query->panel_res = W8001_TOUCH_RESOLUTION; + } +} + +static void report_pen_events(struct w8001 *w8001, struct w8001_coord *coord) +{ + struct input_dev *dev = w8001->dev; + + /* + * We have 1 bit for proximity (rdy) and 3 bits for tip, side, + * side2/eraser. If rdy && f2 are set, this can be either pen + side2, + * or eraser. Assume: + * - if dev is already in proximity and f2 is toggled → pen + side2 + * - if dev comes into proximity with f2 set → eraser + * If f2 disappears after assuming eraser, fake proximity out for + * eraser and in for pen. + */ + + switch (w8001->type) { + case BTN_TOOL_RUBBER: + if (!coord->f2) { + input_report_abs(dev, ABS_PRESSURE, 0); + input_report_key(dev, BTN_TOUCH, 0); + input_report_key(dev, BTN_STYLUS, 0); + input_report_key(dev, BTN_STYLUS2, 0); + input_report_key(dev, BTN_TOOL_RUBBER, 0); + input_sync(dev); + w8001->type = BTN_TOOL_PEN; + } + break; + + case BTN_TOOL_FINGER: + input_report_key(dev, BTN_TOUCH, 0); + input_report_key(dev, BTN_TOOL_FINGER, 0); + input_sync(dev); + /* fall through */ + + case KEY_RESERVED: + w8001->type = coord->f2 ? BTN_TOOL_RUBBER : BTN_TOOL_PEN; + break; + + default: + input_report_key(dev, BTN_STYLUS2, coord->f2); + break; + } + + input_report_abs(dev, ABS_X, coord->x); + input_report_abs(dev, ABS_Y, coord->y); + input_report_abs(dev, ABS_PRESSURE, coord->pen_pressure); + input_report_key(dev, BTN_TOUCH, coord->tsw); + input_report_key(dev, BTN_STYLUS, coord->f1); + input_report_key(dev, w8001->type, coord->rdy); + input_sync(dev); + + if (!coord->rdy) + w8001->type = KEY_RESERVED; +} + +static void report_single_touch(struct w8001 *w8001, struct w8001_coord *coord) +{ + struct input_dev *dev = w8001->dev; + unsigned int x = coord->x; + unsigned int y = coord->y; + + /* scale to pen maximum */ + scale_touch_coordinates(w8001, &x, &y); + + input_report_abs(dev, ABS_X, x); + input_report_abs(dev, ABS_Y, y); + input_report_key(dev, BTN_TOUCH, coord->tsw); + input_report_key(dev, BTN_TOOL_FINGER, coord->tsw); + + input_sync(dev); + + w8001->type = coord->tsw ? BTN_TOOL_FINGER : KEY_RESERVED; +} + +static irqreturn_t w8001_interrupt(struct serio *serio, + unsigned char data, unsigned int flags) +{ + struct w8001 *w8001 = serio_get_drvdata(serio); + struct w8001_coord coord; + unsigned char tmp; + + w8001->data[w8001->idx] = data; + switch (w8001->idx++) { + case 0: + if ((data & W8001_LEAD_MASK) != W8001_LEAD_BYTE) { + pr_debug("w8001: unsynchronized data: 0x%02x\n", data); + w8001->idx = 0; + } + break; + + case W8001_PKTLEN_TOUCH93 - 1: + case W8001_PKTLEN_TOUCH9A - 1: + tmp = w8001->data[0] & W8001_TOUCH_BYTE; + if (tmp != W8001_TOUCH_BYTE) + break; + + if (w8001->pktlen == w8001->idx) { + w8001->idx = 0; + if (w8001->type != BTN_TOOL_PEN && + w8001->type != BTN_TOOL_RUBBER) { + parse_single_touch(w8001->data, &coord); + report_single_touch(w8001, &coord); + } + } + break; + + /* Pen coordinates packet */ + case W8001_PKTLEN_TPCPEN - 1: + tmp = w8001->data[0] & W8001_TAB_MASK; + if (unlikely(tmp == W8001_TAB_BYTE)) + break; + + tmp = w8001->data[0] & W8001_TOUCH_BYTE; + if (tmp == W8001_TOUCH_BYTE) + break; + + w8001->idx = 0; + parse_pen_data(w8001->data, &coord); + report_pen_events(w8001, &coord); + break; + + /* control packet */ + case W8001_PKTLEN_TPCCTL - 1: + tmp = w8001->data[0] & W8001_TOUCH_MASK; + if (tmp == W8001_TOUCH_BYTE) + break; + + w8001->idx = 0; + memcpy(w8001->response, w8001->data, W8001_MAX_LENGTH); + w8001->response_type = W8001_QUERY_PACKET; + complete(&w8001->cmd_done); + break; + + /* 2 finger touch packet */ + case W8001_PKTLEN_TOUCH2FG - 1: + w8001->idx = 0; + parse_multi_touch(w8001); + break; + } + + return IRQ_HANDLED; +} + +static int w8001_command(struct w8001 *w8001, unsigned char command, + bool wait_response) +{ + int rc; + + w8001->response_type = 0; + init_completion(&w8001->cmd_done); + + rc = serio_write(w8001->serio, command); + if (rc == 0 && wait_response) { + + wait_for_completion_timeout(&w8001->cmd_done, HZ); + if (w8001->response_type != W8001_QUERY_PACKET) + rc = -EIO; + } + + return rc; +} + +static int w8001_open(struct input_dev *dev) +{ + struct w8001 *w8001 = input_get_drvdata(dev); + + return w8001_command(w8001, W8001_CMD_START, false); +} + +static void w8001_close(struct input_dev *dev) +{ + struct w8001 *w8001 = input_get_drvdata(dev); + + w8001_command(w8001, W8001_CMD_STOP, false); +} + +static int w8001_setup(struct w8001 *w8001) +{ + struct input_dev *dev = w8001->dev; + struct w8001_coord coord; + struct w8001_touch_query touch; + int error; + + error = w8001_command(w8001, W8001_CMD_STOP, false); + if (error) + return error; + + msleep(250); /* wait 250ms before querying the device */ + + dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); + strlcat(w8001->name, "Wacom Serial", sizeof(w8001->name)); + + __set_bit(INPUT_PROP_DIRECT, dev->propbit); + + /* penabled? */ + error = w8001_command(w8001, W8001_CMD_QUERY, true); + if (!error) { + __set_bit(BTN_TOUCH, dev->keybit); + __set_bit(BTN_TOOL_PEN, dev->keybit); + __set_bit(BTN_TOOL_RUBBER, dev->keybit); + __set_bit(BTN_STYLUS, dev->keybit); + __set_bit(BTN_STYLUS2, dev->keybit); + + parse_pen_data(w8001->response, &coord); + w8001->max_pen_x = coord.x; + w8001->max_pen_y = coord.y; + + input_set_abs_params(dev, ABS_X, 0, coord.x, 0, 0); + input_set_abs_params(dev, ABS_Y, 0, coord.y, 0, 0); + input_abs_set_res(dev, ABS_X, W8001_PEN_RESOLUTION); + input_abs_set_res(dev, ABS_Y, W8001_PEN_RESOLUTION); + input_set_abs_params(dev, ABS_PRESSURE, 0, coord.pen_pressure, 0, 0); + if (coord.tilt_x && coord.tilt_y) { + input_set_abs_params(dev, ABS_TILT_X, 0, coord.tilt_x, 0, 0); + input_set_abs_params(dev, ABS_TILT_Y, 0, coord.tilt_y, 0, 0); + } + w8001->id = 0x90; + strlcat(w8001->name, " Penabled", sizeof(w8001->name)); + } + + /* Touch enabled? */ + error = w8001_command(w8001, W8001_CMD_TOUCHQUERY, true); + + /* + * Some non-touch devices may reply to the touch query. But their + * second byte is empty, which indicates touch is not supported. + */ + if (!error && w8001->response[1]) { + __set_bit(BTN_TOUCH, dev->keybit); + __set_bit(BTN_TOOL_FINGER, dev->keybit); + + parse_touchquery(w8001->response, &touch); + w8001->max_touch_x = touch.x; + w8001->max_touch_y = touch.y; + + if (w8001->max_pen_x && w8001->max_pen_y) { + /* if pen is supported scale to pen maximum */ + touch.x = w8001->max_pen_x; + touch.y = w8001->max_pen_y; + touch.panel_res = W8001_PEN_RESOLUTION; + } + + input_set_abs_params(dev, ABS_X, 0, touch.x, 0, 0); + input_set_abs_params(dev, ABS_Y, 0, touch.y, 0, 0); + input_abs_set_res(dev, ABS_X, touch.panel_res); + input_abs_set_res(dev, ABS_Y, touch.panel_res); + + switch (touch.sensor_id) { + case 0: + case 2: + w8001->pktlen = W8001_PKTLEN_TOUCH93; + w8001->id = 0x93; + strlcat(w8001->name, " 1FG", sizeof(w8001->name)); + break; + + case 1: + case 3: + case 4: + w8001->pktlen = W8001_PKTLEN_TOUCH9A; + strlcat(w8001->name, " 1FG", sizeof(w8001->name)); + w8001->id = 0x9a; + break; + + case 5: + w8001->pktlen = W8001_PKTLEN_TOUCH2FG; + + input_mt_init_slots(dev, 2, 0); + input_set_abs_params(dev, ABS_MT_POSITION_X, + 0, touch.x, 0, 0); + input_set_abs_params(dev, ABS_MT_POSITION_Y, + 0, touch.y, 0, 0); + input_set_abs_params(dev, ABS_MT_TOOL_TYPE, + 0, MT_TOOL_MAX, 0, 0); + + strlcat(w8001->name, " 2FG", sizeof(w8001->name)); + if (w8001->max_pen_x && w8001->max_pen_y) + w8001->id = 0xE3; + else + w8001->id = 0xE2; + break; + } + } + + strlcat(w8001->name, " Touchscreen", sizeof(w8001->name)); + + return 0; +} + +/* + * w8001_disconnect() is the opposite of w8001_connect() + */ + +static void w8001_disconnect(struct serio *serio) +{ + struct w8001 *w8001 = serio_get_drvdata(serio); + + serio_close(serio); + + input_unregister_device(w8001->dev); + kfree(w8001); + + serio_set_drvdata(serio, NULL); +} + +/* + * w8001_connect() is the routine that is called when someone adds a + * new serio device that supports the w8001 protocol and registers it as + * an input device. + */ + +static int w8001_connect(struct serio *serio, struct serio_driver *drv) +{ + struct w8001 *w8001; + struct input_dev *input_dev; + int err; + + w8001 = kzalloc(sizeof(struct w8001), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!w8001 || !input_dev) { + err = -ENOMEM; + goto fail1; + } + + w8001->serio = serio; + w8001->dev = input_dev; + init_completion(&w8001->cmd_done); + snprintf(w8001->phys, sizeof(w8001->phys), "%s/input0", serio->phys); + + serio_set_drvdata(serio, w8001); + err = serio_open(serio, drv); + if (err) + goto fail2; + + err = w8001_setup(w8001); + if (err) + goto fail3; + + input_dev->name = w8001->name; + input_dev->phys = w8001->phys; + input_dev->id.product = w8001->id; + input_dev->id.bustype = BUS_RS232; + input_dev->id.vendor = 0x056a; + input_dev->id.version = 0x0100; + input_dev->dev.parent = &serio->dev; + + input_dev->open = w8001_open; + input_dev->close = w8001_close; + + input_set_drvdata(input_dev, w8001); + + err = input_register_device(w8001->dev); + if (err) + goto fail3; + + return 0; + +fail3: + serio_close(serio); +fail2: + serio_set_drvdata(serio, NULL); +fail1: + input_free_device(input_dev); + kfree(w8001); + return err; +} + +static struct serio_device_id w8001_serio_ids[] = { + { + .type = SERIO_RS232, + .proto = SERIO_W8001, + .id = SERIO_ANY, + .extra = SERIO_ANY, + }, + { 0 } +}; + +MODULE_DEVICE_TABLE(serio, w8001_serio_ids); + +static struct serio_driver w8001_drv = { + .driver = { + .name = "w8001", + }, + .description = DRIVER_DESC, + .id_table = w8001_serio_ids, + .interrupt = w8001_interrupt, + .connect = w8001_connect, + .disconnect = w8001_disconnect, +}; + +module_serio_driver(w8001_drv); diff --git a/drivers/input/touchscreen/wm831x-ts.c b/drivers/input/touchscreen/wm831x-ts.c new file mode 100644 index 00000000..6be2eb6a --- /dev/null +++ b/drivers/input/touchscreen/wm831x-ts.c @@ -0,0 +1,407 @@ +/* + * Touchscreen driver for WM831x PMICs + * + * Copyright 2011 Wolfson Microelectronics plc. + * Author: Mark Brown + * + * 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. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * R16424 (0x4028) - Touch Control 1 + */ +#define WM831X_TCH_ENA 0x8000 /* TCH_ENA */ +#define WM831X_TCH_CVT_ENA 0x4000 /* TCH_CVT_ENA */ +#define WM831X_TCH_SLPENA 0x1000 /* TCH_SLPENA */ +#define WM831X_TCH_Z_ENA 0x0400 /* TCH_Z_ENA */ +#define WM831X_TCH_Y_ENA 0x0200 /* TCH_Y_ENA */ +#define WM831X_TCH_X_ENA 0x0100 /* TCH_X_ENA */ +#define WM831X_TCH_DELAY_MASK 0x00E0 /* TCH_DELAY - [7:5] */ +#define WM831X_TCH_DELAY_SHIFT 5 /* TCH_DELAY - [7:5] */ +#define WM831X_TCH_DELAY_WIDTH 3 /* TCH_DELAY - [7:5] */ +#define WM831X_TCH_RATE_MASK 0x001F /* TCH_RATE - [4:0] */ +#define WM831X_TCH_RATE_SHIFT 0 /* TCH_RATE - [4:0] */ +#define WM831X_TCH_RATE_WIDTH 5 /* TCH_RATE - [4:0] */ + +/* + * R16425 (0x4029) - Touch Control 2 + */ +#define WM831X_TCH_PD_WK 0x2000 /* TCH_PD_WK */ +#define WM831X_TCH_5WIRE 0x1000 /* TCH_5WIRE */ +#define WM831X_TCH_PDONLY 0x0800 /* TCH_PDONLY */ +#define WM831X_TCH_ISEL 0x0100 /* TCH_ISEL */ +#define WM831X_TCH_RPU_MASK 0x000F /* TCH_RPU - [3:0] */ +#define WM831X_TCH_RPU_SHIFT 0 /* TCH_RPU - [3:0] */ +#define WM831X_TCH_RPU_WIDTH 4 /* TCH_RPU - [3:0] */ + +/* + * R16426-8 (0x402A-C) - Touch Data X/Y/X + */ +#define WM831X_TCH_PD 0x8000 /* TCH_PD1 */ +#define WM831X_TCH_DATA_MASK 0x0FFF /* TCH_DATA - [11:0] */ +#define WM831X_TCH_DATA_SHIFT 0 /* TCH_DATA - [11:0] */ +#define WM831X_TCH_DATA_WIDTH 12 /* TCH_DATA - [11:0] */ + +struct wm831x_ts { + struct input_dev *input_dev; + struct wm831x *wm831x; + unsigned int data_irq; + unsigned int pd_irq; + bool pressure; + bool pen_down; + struct work_struct pd_data_work; +}; + +static void wm831x_pd_data_work(struct work_struct *work) +{ + struct wm831x_ts *wm831x_ts = + container_of(work, struct wm831x_ts, pd_data_work); + + if (wm831x_ts->pen_down) { + enable_irq(wm831x_ts->data_irq); + dev_dbg(wm831x_ts->wm831x->dev, "IRQ PD->DATA done\n"); + } else { + enable_irq(wm831x_ts->pd_irq); + dev_dbg(wm831x_ts->wm831x->dev, "IRQ DATA->PD done\n"); + } +} + +static irqreturn_t wm831x_ts_data_irq(int irq, void *irq_data) +{ + struct wm831x_ts *wm831x_ts = irq_data; + struct wm831x *wm831x = wm831x_ts->wm831x; + static int data_types[] = { ABS_X, ABS_Y, ABS_PRESSURE }; + u16 data[3]; + int count; + int i, ret; + + if (wm831x_ts->pressure) + count = 3; + else + count = 2; + + wm831x_set_bits(wm831x, WM831X_INTERRUPT_STATUS_1, + WM831X_TCHDATA_EINT, WM831X_TCHDATA_EINT); + + ret = wm831x_bulk_read(wm831x, WM831X_TOUCH_DATA_X, count, + data); + if (ret != 0) { + dev_err(wm831x->dev, "Failed to read touch data: %d\n", + ret); + return IRQ_NONE; + } + + /* + * We get a pen down reading on every reading, report pen up if any + * individual reading does so. + */ + wm831x_ts->pen_down = true; + for (i = 0; i < count; i++) { + if (!(data[i] & WM831X_TCH_PD)) { + wm831x_ts->pen_down = false; + continue; + } + input_report_abs(wm831x_ts->input_dev, data_types[i], + data[i] & WM831X_TCH_DATA_MASK); + } + + if (!wm831x_ts->pen_down) { + /* Switch from data to pen down */ + dev_dbg(wm831x->dev, "IRQ DATA->PD\n"); + + disable_irq_nosync(wm831x_ts->data_irq); + + /* Don't need data any more */ + wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_1, + WM831X_TCH_X_ENA | WM831X_TCH_Y_ENA | + WM831X_TCH_Z_ENA, 0); + + /* Flush any final samples that arrived while reading */ + wm831x_set_bits(wm831x, WM831X_INTERRUPT_STATUS_1, + WM831X_TCHDATA_EINT, WM831X_TCHDATA_EINT); + + wm831x_bulk_read(wm831x, WM831X_TOUCH_DATA_X, count, data); + + if (wm831x_ts->pressure) + input_report_abs(wm831x_ts->input_dev, + ABS_PRESSURE, 0); + + input_report_key(wm831x_ts->input_dev, BTN_TOUCH, 0); + + schedule_work(&wm831x_ts->pd_data_work); + } else { + input_report_key(wm831x_ts->input_dev, BTN_TOUCH, 1); + } + + input_sync(wm831x_ts->input_dev); + + return IRQ_HANDLED; +} + +static irqreturn_t wm831x_ts_pen_down_irq(int irq, void *irq_data) +{ + struct wm831x_ts *wm831x_ts = irq_data; + struct wm831x *wm831x = wm831x_ts->wm831x; + int ena = 0; + + if (wm831x_ts->pen_down) + return IRQ_HANDLED; + + disable_irq_nosync(wm831x_ts->pd_irq); + + /* Start collecting data */ + if (wm831x_ts->pressure) + ena |= WM831X_TCH_Z_ENA; + + wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_1, + WM831X_TCH_X_ENA | WM831X_TCH_Y_ENA | WM831X_TCH_Z_ENA, + WM831X_TCH_X_ENA | WM831X_TCH_Y_ENA | ena); + + wm831x_set_bits(wm831x, WM831X_INTERRUPT_STATUS_1, + WM831X_TCHPD_EINT, WM831X_TCHPD_EINT); + + wm831x_ts->pen_down = true; + + /* Switch from pen down to data */ + dev_dbg(wm831x->dev, "IRQ PD->DATA\n"); + schedule_work(&wm831x_ts->pd_data_work); + + return IRQ_HANDLED; +} + +static int wm831x_ts_input_open(struct input_dev *idev) +{ + struct wm831x_ts *wm831x_ts = input_get_drvdata(idev); + struct wm831x *wm831x = wm831x_ts->wm831x; + + wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_1, + WM831X_TCH_ENA | WM831X_TCH_CVT_ENA | + WM831X_TCH_X_ENA | WM831X_TCH_Y_ENA | + WM831X_TCH_Z_ENA, WM831X_TCH_ENA); + + wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_1, + WM831X_TCH_CVT_ENA, WM831X_TCH_CVT_ENA); + + return 0; +} + +static void wm831x_ts_input_close(struct input_dev *idev) +{ + struct wm831x_ts *wm831x_ts = input_get_drvdata(idev); + struct wm831x *wm831x = wm831x_ts->wm831x; + + /* Shut the controller down, disabling all other functionality too */ + wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_1, + WM831X_TCH_ENA | WM831X_TCH_X_ENA | + WM831X_TCH_Y_ENA | WM831X_TCH_Z_ENA, 0); + + /* Make sure any pending IRQs are done, the above will prevent + * new ones firing. + */ + synchronize_irq(wm831x_ts->data_irq); + synchronize_irq(wm831x_ts->pd_irq); + + /* Make sure the IRQ completion work is quiesced */ + flush_work(&wm831x_ts->pd_data_work); + + /* If we ended up with the pen down then make sure we revert back + * to pen detection state for the next time we start up. + */ + if (wm831x_ts->pen_down) { + disable_irq(wm831x_ts->data_irq); + enable_irq(wm831x_ts->pd_irq); + wm831x_ts->pen_down = false; + } +} + +static int wm831x_ts_probe(struct platform_device *pdev) +{ + struct wm831x_ts *wm831x_ts; + struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent); + struct wm831x_pdata *core_pdata = dev_get_platdata(pdev->dev.parent); + struct wm831x_touch_pdata *pdata = NULL; + struct input_dev *input_dev; + int error, irqf; + + if (core_pdata) + pdata = core_pdata->touch; + + wm831x_ts = devm_kzalloc(&pdev->dev, sizeof(struct wm831x_ts), + GFP_KERNEL); + input_dev = devm_input_allocate_device(&pdev->dev); + if (!wm831x_ts || !input_dev) { + error = -ENOMEM; + goto err_alloc; + } + + wm831x_ts->wm831x = wm831x; + wm831x_ts->input_dev = input_dev; + INIT_WORK(&wm831x_ts->pd_data_work, wm831x_pd_data_work); + + /* + * If we have a direct IRQ use it, otherwise use the interrupt + * from the WM831x IRQ controller. + */ + wm831x_ts->data_irq = wm831x_irq(wm831x, + platform_get_irq_byname(pdev, + "TCHDATA")); + if (pdata && pdata->data_irq) + wm831x_ts->data_irq = pdata->data_irq; + + wm831x_ts->pd_irq = wm831x_irq(wm831x, + platform_get_irq_byname(pdev, "TCHPD")); + if (pdata && pdata->pd_irq) + wm831x_ts->pd_irq = pdata->pd_irq; + + if (pdata) + wm831x_ts->pressure = pdata->pressure; + else + wm831x_ts->pressure = true; + + /* Five wire touchscreens can't report pressure */ + if (pdata && pdata->fivewire) { + wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_2, + WM831X_TCH_5WIRE, WM831X_TCH_5WIRE); + + /* Pressure measurements are not possible for five wire mode */ + WARN_ON(pdata->pressure && pdata->fivewire); + wm831x_ts->pressure = false; + } else { + wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_2, + WM831X_TCH_5WIRE, 0); + } + + if (pdata) { + switch (pdata->isel) { + default: + dev_err(&pdev->dev, "Unsupported ISEL setting: %d\n", + pdata->isel); + /* Fall through */ + case 200: + case 0: + wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_2, + WM831X_TCH_ISEL, 0); + break; + case 400: + wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_2, + WM831X_TCH_ISEL, WM831X_TCH_ISEL); + break; + } + } + + wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_2, + WM831X_TCH_PDONLY, 0); + + /* Default to 96 samples/sec */ + wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_1, + WM831X_TCH_RATE_MASK, 6); + + if (pdata && pdata->data_irqf) + irqf = pdata->data_irqf; + else + irqf = IRQF_TRIGGER_HIGH; + + error = request_threaded_irq(wm831x_ts->data_irq, + NULL, wm831x_ts_data_irq, + irqf | IRQF_ONESHOT, + "Touchscreen data", wm831x_ts); + if (error) { + dev_err(&pdev->dev, "Failed to request data IRQ %d: %d\n", + wm831x_ts->data_irq, error); + goto err_alloc; + } + disable_irq(wm831x_ts->data_irq); + + if (pdata && pdata->pd_irqf) + irqf = pdata->pd_irqf; + else + irqf = IRQF_TRIGGER_HIGH; + + error = request_threaded_irq(wm831x_ts->pd_irq, + NULL, wm831x_ts_pen_down_irq, + irqf | IRQF_ONESHOT, + "Touchscreen pen down", wm831x_ts); + if (error) { + dev_err(&pdev->dev, "Failed to request pen down IRQ %d: %d\n", + wm831x_ts->pd_irq, error); + goto err_data_irq; + } + + /* set up touch configuration */ + input_dev->name = "WM831x touchscreen"; + input_dev->phys = "wm831x"; + input_dev->open = wm831x_ts_input_open; + input_dev->close = wm831x_ts_input_close; + + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(BTN_TOUCH, input_dev->keybit); + + input_set_abs_params(input_dev, ABS_X, 0, 4095, 5, 0); + input_set_abs_params(input_dev, ABS_Y, 0, 4095, 5, 0); + if (wm831x_ts->pressure) + input_set_abs_params(input_dev, ABS_PRESSURE, 0, 4095, 5, 0); + + input_set_drvdata(input_dev, wm831x_ts); + input_dev->dev.parent = &pdev->dev; + + error = input_register_device(input_dev); + if (error) + goto err_pd_irq; + + platform_set_drvdata(pdev, wm831x_ts); + return 0; + +err_pd_irq: + free_irq(wm831x_ts->pd_irq, wm831x_ts); +err_data_irq: + free_irq(wm831x_ts->data_irq, wm831x_ts); +err_alloc: + + return error; +} + +static int wm831x_ts_remove(struct platform_device *pdev) +{ + struct wm831x_ts *wm831x_ts = platform_get_drvdata(pdev); + + free_irq(wm831x_ts->pd_irq, wm831x_ts); + free_irq(wm831x_ts->data_irq, wm831x_ts); + + return 0; +} + +static struct platform_driver wm831x_ts_driver = { + .driver = { + .name = "wm831x-touch", + .owner = THIS_MODULE, + }, + .probe = wm831x_ts_probe, + .remove = wm831x_ts_remove, +}; +module_platform_driver(wm831x_ts_driver); + +/* Module information */ +MODULE_AUTHOR("Mark Brown "); +MODULE_DESCRIPTION("WM831x PMIC touchscreen driver"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:wm831x-touch"); diff --git a/drivers/input/touchscreen/wm9705.c b/drivers/input/touchscreen/wm9705.c new file mode 100644 index 00000000..adc13a52 --- /dev/null +++ b/drivers/input/touchscreen/wm9705.c @@ -0,0 +1,350 @@ +/* + * wm9705.c -- Codec driver for Wolfson WM9705 AC97 Codec. + * + * Copyright 2003, 2004, 2005, 2006, 2007 Wolfson Microelectronics PLC. + * Author: Liam Girdwood + * Parts Copyright : Ian Molton + * Andrew Zabolotny + * Russell King + * + * 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. + * + */ + +#include +#include +#include +#include +#include +#include +#include + +#define TS_NAME "wm97xx" +#define WM9705_VERSION "1.00" +#define DEFAULT_PRESSURE 0xb0c0 + +/* + * Module parameters + */ + +/* + * Set current used for pressure measurement. + * + * Set pil = 2 to use 400uA + * pil = 1 to use 200uA and + * pil = 0 to disable pressure measurement. + * + * This is used to increase the range of values returned by the adc + * when measureing touchpanel pressure. + */ +static int pil; +module_param(pil, int, 0); +MODULE_PARM_DESC(pil, "Set current used for pressure measurement."); + +/* + * Set threshold for pressure measurement. + * + * Pen down pressure below threshold is ignored. + */ +static int pressure = DEFAULT_PRESSURE & 0xfff; +module_param(pressure, int, 0); +MODULE_PARM_DESC(pressure, "Set threshold for pressure measurement."); + +/* + * Set adc sample delay. + * + * For accurate touchpanel measurements, some settling time may be + * required between the switch matrix applying a voltage across the + * touchpanel plate and the ADC sampling the signal. + * + * This delay can be set by setting delay = n, where n is the array + * position of the delay in the array delay_table below. + * Long delays > 1ms are supported for completeness, but are not + * recommended. + */ +static int delay = 4; +module_param(delay, int, 0); +MODULE_PARM_DESC(delay, "Set adc sample delay."); + +/* + * Pen detect comparator threshold. + * + * 0 to Vmid in 15 steps, 0 = use zero power comparator with Vmid threshold + * i.e. 1 = Vmid/15 threshold + * 15 = Vmid/1 threshold + * + * Adjust this value if you are having problems with pen detect not + * detecting any down events. + */ +static int pdd = 8; +module_param(pdd, int, 0); +MODULE_PARM_DESC(pdd, "Set pen detect comparator threshold"); + +/* + * Set adc mask function. + * + * Sources of glitch noise, such as signals driving an LCD display, may feed + * through to the touch screen plates and affect measurement accuracy. In + * order to minimise this, a signal may be applied to the MASK pin to delay or + * synchronise the sampling. + * + * 0 = No delay or sync + * 1 = High on pin stops conversions + * 2 = Edge triggered, edge on pin delays conversion by delay param (above) + * 3 = Edge triggered, edge on pin starts conversion after delay param + */ +static int mask; +module_param(mask, int, 0); +MODULE_PARM_DESC(mask, "Set adc mask function."); + +/* + * ADC sample delay times in uS + */ +static const int delay_table[] = { + 21, /* 1 AC97 Link frames */ + 42, /* 2 */ + 84, /* 4 */ + 167, /* 8 */ + 333, /* 16 */ + 667, /* 32 */ + 1000, /* 48 */ + 1333, /* 64 */ + 2000, /* 96 */ + 2667, /* 128 */ + 3333, /* 160 */ + 4000, /* 192 */ + 4667, /* 224 */ + 5333, /* 256 */ + 6000, /* 288 */ + 0 /* No delay, switch matrix always on */ +}; + +/* + * Delay after issuing a POLL command. + * + * The delay is 3 AC97 link frames + the touchpanel settling delay + */ +static inline void poll_delay(int d) +{ + udelay(3 * AC97_LINK_FRAME + delay_table[d]); +} + +/* + * set up the physical settings of the WM9705 + */ +static void wm9705_phy_init(struct wm97xx *wm) +{ + u16 dig1 = 0, dig2 = WM97XX_RPR; + + /* + * mute VIDEO and AUX as they share X and Y touchscreen + * inputs on the WM9705 + */ + wm97xx_reg_write(wm, AC97_AUX, 0x8000); + wm97xx_reg_write(wm, AC97_VIDEO, 0x8000); + + /* touchpanel pressure current*/ + if (pil == 2) { + dig2 |= WM9705_PIL; + dev_dbg(wm->dev, + "setting pressure measurement current to 400uA."); + } else if (pil) + dev_dbg(wm->dev, + "setting pressure measurement current to 200uA."); + if (!pil) + pressure = 0; + + /* polling mode sample settling delay */ + if (delay != 4) { + if (delay < 0 || delay > 15) { + dev_dbg(wm->dev, "supplied delay out of range."); + delay = 4; + } + } + dig1 &= 0xff0f; + dig1 |= WM97XX_DELAY(delay); + dev_dbg(wm->dev, "setting adc sample delay to %d u Secs.", + delay_table[delay]); + + /* WM9705 pdd */ + dig2 |= (pdd & 0x000f); + dev_dbg(wm->dev, "setting pdd to Vmid/%d", 1 - (pdd & 0x000f)); + + /* mask */ + dig2 |= ((mask & 0x3) << 4); + + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, dig1); + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, dig2); +} + +static void wm9705_dig_enable(struct wm97xx *wm, int enable) +{ + if (enable) { + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, + wm->dig[2] | WM97XX_PRP_DET_DIG); + wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); /* dummy read */ + } else + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, + wm->dig[2] & ~WM97XX_PRP_DET_DIG); +} + +static void wm9705_aux_prepare(struct wm97xx *wm) +{ + memcpy(wm->dig_save, wm->dig, sizeof(wm->dig)); + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, 0); + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, WM97XX_PRP_DET_DIG); +} + +static void wm9705_dig_restore(struct wm97xx *wm) +{ + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, wm->dig_save[1]); + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, wm->dig_save[2]); +} + +static inline int is_pden(struct wm97xx *wm) +{ + return wm->dig[2] & WM9705_PDEN; +} + +/* + * Read a sample from the WM9705 adc in polling mode. + */ +static int wm9705_poll_sample(struct wm97xx *wm, int adcsel, int *sample) +{ + int timeout = 5 * delay; + bool wants_pen = adcsel & WM97XX_PEN_DOWN; + + if (wants_pen && !wm->pen_probably_down) { + u16 data = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + if (!(data & WM97XX_PEN_DOWN)) + return RC_PENUP; + wm->pen_probably_down = 1; + } + + /* set up digitiser */ + if (wm->mach_ops && wm->mach_ops->pre_sample) + wm->mach_ops->pre_sample(adcsel); + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, (adcsel & WM97XX_ADCSEL_MASK) + | WM97XX_POLL | WM97XX_DELAY(delay)); + + /* wait 3 AC97 time slots + delay for conversion */ + poll_delay(delay); + + /* wait for POLL to go low */ + while ((wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER1) & WM97XX_POLL) + && timeout) { + udelay(AC97_LINK_FRAME); + timeout--; + } + + if (timeout == 0) { + /* If PDEN is set, we can get a timeout when pen goes up */ + if (is_pden(wm)) + wm->pen_probably_down = 0; + else + dev_dbg(wm->dev, "adc sample timeout"); + return RC_PENUP; + } + + *sample = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + if (wm->mach_ops && wm->mach_ops->post_sample) + wm->mach_ops->post_sample(adcsel); + + /* check we have correct sample */ + if ((*sample ^ adcsel) & WM97XX_ADCSEL_MASK) { + dev_dbg(wm->dev, "adc wrong sample, wanted %x got %x", + adcsel & WM97XX_ADCSEL_MASK, + *sample & WM97XX_ADCSEL_MASK); + return RC_PENUP; + } + + if (wants_pen && !(*sample & WM97XX_PEN_DOWN)) { + wm->pen_probably_down = 0; + return RC_PENUP; + } + + return RC_VALID; +} + +/* + * Sample the WM9705 touchscreen in polling mode + */ +static int wm9705_poll_touch(struct wm97xx *wm, struct wm97xx_data *data) +{ + int rc; + + rc = wm9705_poll_sample(wm, WM97XX_ADCSEL_X | WM97XX_PEN_DOWN, &data->x); + if (rc != RC_VALID) + return rc; + rc = wm9705_poll_sample(wm, WM97XX_ADCSEL_Y | WM97XX_PEN_DOWN, &data->y); + if (rc != RC_VALID) + return rc; + if (pil) { + rc = wm9705_poll_sample(wm, WM97XX_ADCSEL_PRES | WM97XX_PEN_DOWN, &data->p); + if (rc != RC_VALID) + return rc; + } else + data->p = DEFAULT_PRESSURE; + + return RC_VALID; +} + +/* + * Enable WM9705 continuous mode, i.e. touch data is streamed across + * an AC97 slot + */ +static int wm9705_acc_enable(struct wm97xx *wm, int enable) +{ + u16 dig1, dig2; + int ret = 0; + + dig1 = wm->dig[1]; + dig2 = wm->dig[2]; + + if (enable) { + /* continuous mode */ + if (wm->mach_ops->acc_startup && + (ret = wm->mach_ops->acc_startup(wm)) < 0) + return ret; + dig1 &= ~(WM97XX_CM_RATE_MASK | WM97XX_ADCSEL_MASK | + WM97XX_DELAY_MASK | WM97XX_SLT_MASK); + dig1 |= WM97XX_CTC | WM97XX_COO | WM97XX_SLEN | + WM97XX_DELAY(delay) | + WM97XX_SLT(wm->acc_slot) | + WM97XX_RATE(wm->acc_rate); + if (pil) + dig1 |= WM97XX_ADCSEL_PRES; + dig2 |= WM9705_PDEN; + } else { + dig1 &= ~(WM97XX_CTC | WM97XX_COO | WM97XX_SLEN); + dig2 &= ~WM9705_PDEN; + if (wm->mach_ops->acc_shutdown) + wm->mach_ops->acc_shutdown(wm); + } + + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, dig1); + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, dig2); + + return ret; +} + +struct wm97xx_codec_drv wm9705_codec = { + .id = WM9705_ID2, + .name = "wm9705", + .poll_sample = wm9705_poll_sample, + .poll_touch = wm9705_poll_touch, + .acc_enable = wm9705_acc_enable, + .phy_init = wm9705_phy_init, + .dig_enable = wm9705_dig_enable, + .dig_restore = wm9705_dig_restore, + .aux_prepare = wm9705_aux_prepare, +}; +EXPORT_SYMBOL_GPL(wm9705_codec); + +/* Module information */ +MODULE_AUTHOR("Liam Girdwood "); +MODULE_DESCRIPTION("WM9705 Touch Screen Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/wm9712.c b/drivers/input/touchscreen/wm9712.c new file mode 100644 index 00000000..16b52115 --- /dev/null +++ b/drivers/input/touchscreen/wm9712.c @@ -0,0 +1,471 @@ +/* + * wm9712.c -- Codec driver for Wolfson WM9712 AC97 Codecs. + * + * Copyright 2003, 2004, 2005, 2006, 2007 Wolfson Microelectronics PLC. + * Author: Liam Girdwood + * Parts Copyright : Ian Molton + * Andrew Zabolotny + * Russell King + * + * 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. + * + */ + +#include +#include +#include +#include +#include +#include +#include + +#define TS_NAME "wm97xx" +#define WM9712_VERSION "1.00" +#define DEFAULT_PRESSURE 0xb0c0 + +/* + * Module parameters + */ + +/* + * Set internal pull up for pen detect. + * + * Pull up is in the range 1.02k (least sensitive) to 64k (most sensitive) + * i.e. pull up resistance = 64k Ohms / rpu. + * + * Adjust this value if you are having problems with pen detect not + * detecting any down event. + */ +static int rpu = 8; +module_param(rpu, int, 0); +MODULE_PARM_DESC(rpu, "Set internal pull up resitor for pen detect."); + +/* + * Set current used for pressure measurement. + * + * Set pil = 2 to use 400uA + * pil = 1 to use 200uA and + * pil = 0 to disable pressure measurement. + * + * This is used to increase the range of values returned by the adc + * when measureing touchpanel pressure. + */ +static int pil; +module_param(pil, int, 0); +MODULE_PARM_DESC(pil, "Set current used for pressure measurement."); + +/* + * Set threshold for pressure measurement. + * + * Pen down pressure below threshold is ignored. + */ +static int pressure = DEFAULT_PRESSURE & 0xfff; +module_param(pressure, int, 0); +MODULE_PARM_DESC(pressure, "Set threshold for pressure measurement."); + +/* + * Set adc sample delay. + * + * For accurate touchpanel measurements, some settling time may be + * required between the switch matrix applying a voltage across the + * touchpanel plate and the ADC sampling the signal. + * + * This delay can be set by setting delay = n, where n is the array + * position of the delay in the array delay_table below. + * Long delays > 1ms are supported for completeness, but are not + * recommended. + */ +static int delay = 3; +module_param(delay, int, 0); +MODULE_PARM_DESC(delay, "Set adc sample delay."); + +/* + * Set five_wire = 1 to use a 5 wire touchscreen. + * + * NOTE: Five wire mode does not allow for readback of pressure. + */ +static int five_wire; +module_param(five_wire, int, 0); +MODULE_PARM_DESC(five_wire, "Set to '1' to use 5-wire touchscreen."); + +/* + * Set adc mask function. + * + * Sources of glitch noise, such as signals driving an LCD display, may feed + * through to the touch screen plates and affect measurement accuracy. In + * order to minimise this, a signal may be applied to the MASK pin to delay or + * synchronise the sampling. + * + * 0 = No delay or sync + * 1 = High on pin stops conversions + * 2 = Edge triggered, edge on pin delays conversion by delay param (above) + * 3 = Edge triggered, edge on pin starts conversion after delay param + */ +static int mask; +module_param(mask, int, 0); +MODULE_PARM_DESC(mask, "Set adc mask function."); + +/* + * Coordinate Polling Enable. + * + * Set to 1 to enable coordinate polling. e.g. x,y[,p] is sampled together + * for every poll. + */ +static int coord; +module_param(coord, int, 0); +MODULE_PARM_DESC(coord, "Polling coordinate mode"); + +/* + * ADC sample delay times in uS + */ +static const int delay_table[] = { + 21, /* 1 AC97 Link frames */ + 42, /* 2 */ + 84, /* 4 */ + 167, /* 8 */ + 333, /* 16 */ + 667, /* 32 */ + 1000, /* 48 */ + 1333, /* 64 */ + 2000, /* 96 */ + 2667, /* 128 */ + 3333, /* 160 */ + 4000, /* 192 */ + 4667, /* 224 */ + 5333, /* 256 */ + 6000, /* 288 */ + 0 /* No delay, switch matrix always on */ +}; + +/* + * Delay after issuing a POLL command. + * + * The delay is 3 AC97 link frames + the touchpanel settling delay + */ +static inline void poll_delay(int d) +{ + udelay(3 * AC97_LINK_FRAME + delay_table[d]); +} + +/* + * set up the physical settings of the WM9712 + */ +static void wm9712_phy_init(struct wm97xx *wm) +{ + u16 dig1 = 0; + u16 dig2 = WM97XX_RPR | WM9712_RPU(1); + + /* WM9712 rpu */ + if (rpu) { + dig2 &= 0xffc0; + dig2 |= WM9712_RPU(rpu); + dev_dbg(wm->dev, "setting pen detect pull-up to %d Ohms\n", + 64000 / rpu); + } + + /* WM9712 five wire */ + if (five_wire) { + dig2 |= WM9712_45W; + dev_dbg(wm->dev, "setting 5-wire touchscreen mode.\n"); + + if (pil) { + dev_warn(wm->dev, "pressure measurement is not " + "supported in 5-wire mode\n"); + pil = 0; + } + } + + /* touchpanel pressure current*/ + if (pil == 2) { + dig2 |= WM9712_PIL; + dev_dbg(wm->dev, + "setting pressure measurement current to 400uA.\n"); + } else if (pil) + dev_dbg(wm->dev, + "setting pressure measurement current to 200uA.\n"); + if (!pil) + pressure = 0; + + /* polling mode sample settling delay */ + if (delay < 0 || delay > 15) { + dev_dbg(wm->dev, "supplied delay out of range.\n"); + delay = 4; + } + dig1 &= 0xff0f; + dig1 |= WM97XX_DELAY(delay); + dev_dbg(wm->dev, "setting adc sample delay to %d u Secs.\n", + delay_table[delay]); + + /* mask */ + dig2 |= ((mask & 0x3) << 6); + if (mask) { + u16 reg; + /* Set GPIO4 as Mask Pin*/ + reg = wm97xx_reg_read(wm, AC97_MISC_AFE); + wm97xx_reg_write(wm, AC97_MISC_AFE, reg | WM97XX_GPIO_4); + reg = wm97xx_reg_read(wm, AC97_GPIO_CFG); + wm97xx_reg_write(wm, AC97_GPIO_CFG, reg | WM97XX_GPIO_4); + } + + /* wait - coord mode */ + if (coord) + dig2 |= WM9712_WAIT; + + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, dig1); + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, dig2); +} + +static void wm9712_dig_enable(struct wm97xx *wm, int enable) +{ + u16 dig2 = wm->dig[2]; + + if (enable) { + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, + dig2 | WM97XX_PRP_DET_DIG); + wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); /* dummy read */ + } else + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, + dig2 & ~WM97XX_PRP_DET_DIG); +} + +static void wm9712_aux_prepare(struct wm97xx *wm) +{ + memcpy(wm->dig_save, wm->dig, sizeof(wm->dig)); + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, 0); + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, WM97XX_PRP_DET_DIG); +} + +static void wm9712_dig_restore(struct wm97xx *wm) +{ + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, wm->dig_save[1]); + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, wm->dig_save[2]); +} + +static inline int is_pden(struct wm97xx *wm) +{ + return wm->dig[2] & WM9712_PDEN; +} + +/* + * Read a sample from the WM9712 adc in polling mode. + */ +static int wm9712_poll_sample(struct wm97xx *wm, int adcsel, int *sample) +{ + int timeout = 5 * delay; + bool wants_pen = adcsel & WM97XX_PEN_DOWN; + + if (wants_pen && !wm->pen_probably_down) { + u16 data = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + if (!(data & WM97XX_PEN_DOWN)) + return RC_PENUP; + wm->pen_probably_down = 1; + } + + /* set up digitiser */ + if (wm->mach_ops && wm->mach_ops->pre_sample) + wm->mach_ops->pre_sample(adcsel); + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, (adcsel & WM97XX_ADCSEL_MASK) + | WM97XX_POLL | WM97XX_DELAY(delay)); + + /* wait 3 AC97 time slots + delay for conversion */ + poll_delay(delay); + + /* wait for POLL to go low */ + while ((wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER1) & WM97XX_POLL) + && timeout) { + udelay(AC97_LINK_FRAME); + timeout--; + } + + if (timeout <= 0) { + /* If PDEN is set, we can get a timeout when pen goes up */ + if (is_pden(wm)) + wm->pen_probably_down = 0; + else + dev_dbg(wm->dev, "adc sample timeout\n"); + return RC_PENUP; + } + + *sample = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + if (wm->mach_ops && wm->mach_ops->post_sample) + wm->mach_ops->post_sample(adcsel); + + /* check we have correct sample */ + if ((*sample ^ adcsel) & WM97XX_ADCSEL_MASK) { + dev_dbg(wm->dev, "adc wrong sample, wanted %x got %x\n", + adcsel & WM97XX_ADCSEL_MASK, + *sample & WM97XX_ADCSEL_MASK); + return RC_AGAIN; + } + + if (wants_pen && !(*sample & WM97XX_PEN_DOWN)) { + /* Sometimes it reads a wrong value the first time. */ + *sample = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + if (!(*sample & WM97XX_PEN_DOWN)) { + wm->pen_probably_down = 0; + return RC_PENUP; + } + } + + return RC_VALID; +} + +/* + * Read a coord from the WM9712 adc in polling mode. + */ +static int wm9712_poll_coord(struct wm97xx *wm, struct wm97xx_data *data) +{ + int timeout = 5 * delay; + + if (!wm->pen_probably_down) { + u16 data_rd = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + if (!(data_rd & WM97XX_PEN_DOWN)) + return RC_PENUP; + wm->pen_probably_down = 1; + } + + /* set up digitiser */ + if (wm->mach_ops && wm->mach_ops->pre_sample) + wm->mach_ops->pre_sample(WM97XX_ADCSEL_X | WM97XX_ADCSEL_Y); + + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, + WM97XX_COO | WM97XX_POLL | WM97XX_DELAY(delay)); + + /* wait 3 AC97 time slots + delay for conversion and read x */ + poll_delay(delay); + data->x = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + /* wait for POLL to go low */ + while ((wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER1) & WM97XX_POLL) + && timeout) { + udelay(AC97_LINK_FRAME); + timeout--; + } + + if (timeout <= 0) { + /* If PDEN is set, we can get a timeout when pen goes up */ + if (is_pden(wm)) + wm->pen_probably_down = 0; + else + dev_dbg(wm->dev, "adc sample timeout\n"); + return RC_PENUP; + } + + /* read back y data */ + data->y = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + if (pil) + data->p = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + else + data->p = DEFAULT_PRESSURE; + + if (wm->mach_ops && wm->mach_ops->post_sample) + wm->mach_ops->post_sample(WM97XX_ADCSEL_X | WM97XX_ADCSEL_Y); + + /* check we have correct sample */ + if (!(data->x & WM97XX_ADCSEL_X) || !(data->y & WM97XX_ADCSEL_Y)) + goto err; + if (pil && !(data->p & WM97XX_ADCSEL_PRES)) + goto err; + + if (!(data->x & WM97XX_PEN_DOWN) || !(data->y & WM97XX_PEN_DOWN)) { + wm->pen_probably_down = 0; + return RC_PENUP; + } + return RC_VALID; +err: + return 0; +} + +/* + * Sample the WM9712 touchscreen in polling mode + */ +static int wm9712_poll_touch(struct wm97xx *wm, struct wm97xx_data *data) +{ + int rc; + + if (coord) { + rc = wm9712_poll_coord(wm, data); + if (rc != RC_VALID) + return rc; + } else { + rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_X | WM97XX_PEN_DOWN, + &data->x); + if (rc != RC_VALID) + return rc; + + rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_Y | WM97XX_PEN_DOWN, + &data->y); + if (rc != RC_VALID) + return rc; + + if (pil && !five_wire) { + rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_PRES | WM97XX_PEN_DOWN, + &data->p); + if (rc != RC_VALID) + return rc; + } else + data->p = DEFAULT_PRESSURE; + } + return RC_VALID; +} + +/* + * Enable WM9712 continuous mode, i.e. touch data is streamed across + * an AC97 slot + */ +static int wm9712_acc_enable(struct wm97xx *wm, int enable) +{ + u16 dig1, dig2; + int ret = 0; + + dig1 = wm->dig[1]; + dig2 = wm->dig[2]; + + if (enable) { + /* continuous mode */ + if (wm->mach_ops->acc_startup) { + ret = wm->mach_ops->acc_startup(wm); + if (ret < 0) + return ret; + } + dig1 &= ~(WM97XX_CM_RATE_MASK | WM97XX_ADCSEL_MASK | + WM97XX_DELAY_MASK | WM97XX_SLT_MASK); + dig1 |= WM97XX_CTC | WM97XX_COO | WM97XX_SLEN | + WM97XX_DELAY(delay) | + WM97XX_SLT(wm->acc_slot) | + WM97XX_RATE(wm->acc_rate); + if (pil) + dig1 |= WM97XX_ADCSEL_PRES; + dig2 |= WM9712_PDEN; + } else { + dig1 &= ~(WM97XX_CTC | WM97XX_COO | WM97XX_SLEN); + dig2 &= ~WM9712_PDEN; + if (wm->mach_ops->acc_shutdown) + wm->mach_ops->acc_shutdown(wm); + } + + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, dig1); + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, dig2); + + return 0; +} + +struct wm97xx_codec_drv wm9712_codec = { + .id = WM9712_ID2, + .name = "wm9712", + .poll_sample = wm9712_poll_sample, + .poll_touch = wm9712_poll_touch, + .acc_enable = wm9712_acc_enable, + .phy_init = wm9712_phy_init, + .dig_enable = wm9712_dig_enable, + .dig_restore = wm9712_dig_restore, + .aux_prepare = wm9712_aux_prepare, +}; +EXPORT_SYMBOL_GPL(wm9712_codec); + +/* Module information */ +MODULE_AUTHOR("Liam Girdwood "); +MODULE_DESCRIPTION("WM9712 Touch Screen Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/wm9713.c b/drivers/input/touchscreen/wm9713.c new file mode 100644 index 00000000..74053531 --- /dev/null +++ b/drivers/input/touchscreen/wm9713.c @@ -0,0 +1,481 @@ +/* + * wm9713.c -- Codec touch driver for Wolfson WM9713 AC97 Codec. + * + * Copyright 2003, 2004, 2005, 2006, 2007, 2008 Wolfson Microelectronics PLC. + * Author: Liam Girdwood + * Parts Copyright : Ian Molton + * Andrew Zabolotny + * Russell King + * + * 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. + * + */ + +#include +#include +#include +#include +#include +#include +#include + +#define TS_NAME "wm97xx" +#define WM9713_VERSION "1.00" +#define DEFAULT_PRESSURE 0xb0c0 + +/* + * Module parameters + */ + +/* + * Set internal pull up for pen detect. + * + * Pull up is in the range 1.02k (least sensitive) to 64k (most sensitive) + * i.e. pull up resistance = 64k Ohms / rpu. + * + * Adjust this value if you are having problems with pen detect not + * detecting any down event. + */ +static int rpu = 8; +module_param(rpu, int, 0); +MODULE_PARM_DESC(rpu, "Set internal pull up resitor for pen detect."); + +/* + * Set current used for pressure measurement. + * + * Set pil = 2 to use 400uA + * pil = 1 to use 200uA and + * pil = 0 to disable pressure measurement. + * + * This is used to increase the range of values returned by the adc + * when measureing touchpanel pressure. + */ +static int pil; +module_param(pil, int, 0); +MODULE_PARM_DESC(pil, "Set current used for pressure measurement."); + +/* + * Set threshold for pressure measurement. + * + * Pen down pressure below threshold is ignored. + */ +static int pressure = DEFAULT_PRESSURE & 0xfff; +module_param(pressure, int, 0); +MODULE_PARM_DESC(pressure, "Set threshold for pressure measurement."); + +/* + * Set adc sample delay. + * + * For accurate touchpanel measurements, some settling time may be + * required between the switch matrix applying a voltage across the + * touchpanel plate and the ADC sampling the signal. + * + * This delay can be set by setting delay = n, where n is the array + * position of the delay in the array delay_table below. + * Long delays > 1ms are supported for completeness, but are not + * recommended. + */ +static int delay = 4; +module_param(delay, int, 0); +MODULE_PARM_DESC(delay, "Set adc sample delay."); + +/* + * Set five_wire = 1 to use a 5 wire touchscreen. + * + * NOTE: Five wire mode does not allow for readback of pressure. + */ +static int five_wire; +module_param(five_wire, int, 0); +MODULE_PARM_DESC(five_wire, "Set to '1' to use 5-wire touchscreen."); + +/* + * Set adc mask function. + * + * Sources of glitch noise, such as signals driving an LCD display, may feed + * through to the touch screen plates and affect measurement accuracy. In + * order to minimise this, a signal may be applied to the MASK pin to delay or + * synchronise the sampling. + * + * 0 = No delay or sync + * 1 = High on pin stops conversions + * 2 = Edge triggered, edge on pin delays conversion by delay param (above) + * 3 = Edge triggered, edge on pin starts conversion after delay param + */ +static int mask; +module_param(mask, int, 0); +MODULE_PARM_DESC(mask, "Set adc mask function."); + +/* + * Coordinate Polling Enable. + * + * Set to 1 to enable coordinate polling. e.g. x,y[,p] is sampled together + * for every poll. + */ +static int coord; +module_param(coord, int, 0); +MODULE_PARM_DESC(coord, "Polling coordinate mode"); + +/* + * ADC sample delay times in uS + */ +static const int delay_table[] = { + 21, /* 1 AC97 Link frames */ + 42, /* 2 */ + 84, /* 4 */ + 167, /* 8 */ + 333, /* 16 */ + 667, /* 32 */ + 1000, /* 48 */ + 1333, /* 64 */ + 2000, /* 96 */ + 2667, /* 128 */ + 3333, /* 160 */ + 4000, /* 192 */ + 4667, /* 224 */ + 5333, /* 256 */ + 6000, /* 288 */ + 0 /* No delay, switch matrix always on */ +}; + +/* + * Delay after issuing a POLL command. + * + * The delay is 3 AC97 link frames + the touchpanel settling delay + */ +static inline void poll_delay(int d) +{ + udelay(3 * AC97_LINK_FRAME + delay_table[d]); +} + +/* + * set up the physical settings of the WM9713 + */ +static void wm9713_phy_init(struct wm97xx *wm) +{ + u16 dig1 = 0, dig2, dig3; + + /* default values */ + dig2 = WM97XX_DELAY(4) | WM97XX_SLT(5); + dig3 = WM9712_RPU(1); + + /* rpu */ + if (rpu) { + dig3 &= 0xffc0; + dig3 |= WM9712_RPU(rpu); + dev_info(wm->dev, "setting pen detect pull-up to %d Ohms\n", + 64000 / rpu); + } + + /* Five wire panel? */ + if (five_wire) { + dig3 |= WM9713_45W; + dev_info(wm->dev, "setting 5-wire touchscreen mode."); + + if (pil) { + dev_warn(wm->dev, + "Pressure measurement not supported in 5 " + "wire mode, disabling\n"); + pil = 0; + } + } + + /* touchpanel pressure */ + if (pil == 2) { + dig3 |= WM9712_PIL; + dev_info(wm->dev, + "setting pressure measurement current to 400uA."); + } else if (pil) + dev_info(wm->dev, + "setting pressure measurement current to 200uA."); + if (!pil) + pressure = 0; + + /* sample settling delay */ + if (delay < 0 || delay > 15) { + dev_info(wm->dev, "supplied delay out of range."); + delay = 4; + dev_info(wm->dev, "setting adc sample delay to %d u Secs.", + delay_table[delay]); + } + dig2 &= 0xff0f; + dig2 |= WM97XX_DELAY(delay); + + /* mask */ + dig3 |= ((mask & 0x3) << 4); + if (coord) + dig3 |= WM9713_WAIT; + + wm->misc = wm97xx_reg_read(wm, 0x5a); + + wm97xx_reg_write(wm, AC97_WM9713_DIG1, dig1); + wm97xx_reg_write(wm, AC97_WM9713_DIG2, dig2); + wm97xx_reg_write(wm, AC97_WM9713_DIG3, dig3); + wm97xx_reg_write(wm, AC97_GPIO_STICKY, 0x0); +} + +static void wm9713_dig_enable(struct wm97xx *wm, int enable) +{ + u16 val; + + if (enable) { + val = wm97xx_reg_read(wm, AC97_EXTENDED_MID); + wm97xx_reg_write(wm, AC97_EXTENDED_MID, val & 0x7fff); + wm97xx_reg_write(wm, AC97_WM9713_DIG3, wm->dig[2] | + WM97XX_PRP_DET_DIG); + wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); /* dummy read */ + } else { + wm97xx_reg_write(wm, AC97_WM9713_DIG3, wm->dig[2] & + ~WM97XX_PRP_DET_DIG); + val = wm97xx_reg_read(wm, AC97_EXTENDED_MID); + wm97xx_reg_write(wm, AC97_EXTENDED_MID, val | 0x8000); + } +} + +static void wm9713_dig_restore(struct wm97xx *wm) +{ + wm97xx_reg_write(wm, AC97_WM9713_DIG1, wm->dig_save[0]); + wm97xx_reg_write(wm, AC97_WM9713_DIG2, wm->dig_save[1]); + wm97xx_reg_write(wm, AC97_WM9713_DIG3, wm->dig_save[2]); +} + +static void wm9713_aux_prepare(struct wm97xx *wm) +{ + memcpy(wm->dig_save, wm->dig, sizeof(wm->dig)); + wm97xx_reg_write(wm, AC97_WM9713_DIG1, 0); + wm97xx_reg_write(wm, AC97_WM9713_DIG2, 0); + wm97xx_reg_write(wm, AC97_WM9713_DIG3, WM97XX_PRP_DET_DIG); +} + +static inline int is_pden(struct wm97xx *wm) +{ + return wm->dig[2] & WM9713_PDEN; +} + +/* + * Read a sample from the WM9713 adc in polling mode. + */ +static int wm9713_poll_sample(struct wm97xx *wm, int adcsel, int *sample) +{ + u16 dig1; + int timeout = 5 * delay; + bool wants_pen = adcsel & WM97XX_PEN_DOWN; + + if (wants_pen && !wm->pen_probably_down) { + u16 data = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + if (!(data & WM97XX_PEN_DOWN)) + return RC_PENUP; + wm->pen_probably_down = 1; + } + + /* set up digitiser */ + dig1 = wm97xx_reg_read(wm, AC97_WM9713_DIG1); + dig1 &= ~WM9713_ADCSEL_MASK; + /* WM97XX_ADCSEL_* channels need to be converted to WM9713 format */ + dig1 |= 1 << ((adcsel & WM97XX_ADCSEL_MASK) >> 12); + + if (wm->mach_ops && wm->mach_ops->pre_sample) + wm->mach_ops->pre_sample(adcsel); + wm97xx_reg_write(wm, AC97_WM9713_DIG1, dig1 | WM9713_POLL); + + /* wait 3 AC97 time slots + delay for conversion */ + poll_delay(delay); + + /* wait for POLL to go low */ + while ((wm97xx_reg_read(wm, AC97_WM9713_DIG1) & WM9713_POLL) && + timeout) { + udelay(AC97_LINK_FRAME); + timeout--; + } + + if (timeout <= 0) { + /* If PDEN is set, we can get a timeout when pen goes up */ + if (is_pden(wm)) + wm->pen_probably_down = 0; + else + dev_dbg(wm->dev, "adc sample timeout"); + return RC_PENUP; + } + + *sample = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + if (wm->mach_ops && wm->mach_ops->post_sample) + wm->mach_ops->post_sample(adcsel); + + /* check we have correct sample */ + if ((*sample ^ adcsel) & WM97XX_ADCSEL_MASK) { + dev_dbg(wm->dev, "adc wrong sample, wanted %x got %x", + adcsel & WM97XX_ADCSEL_MASK, + *sample & WM97XX_ADCSEL_MASK); + return RC_PENUP; + } + + if (wants_pen && !(*sample & WM97XX_PEN_DOWN)) { + wm->pen_probably_down = 0; + return RC_PENUP; + } + + return RC_VALID; +} + +/* + * Read a coordinate from the WM9713 adc in polling mode. + */ +static int wm9713_poll_coord(struct wm97xx *wm, struct wm97xx_data *data) +{ + u16 dig1; + int timeout = 5 * delay; + + if (!wm->pen_probably_down) { + u16 val = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + if (!(val & WM97XX_PEN_DOWN)) + return RC_PENUP; + wm->pen_probably_down = 1; + } + + /* set up digitiser */ + dig1 = wm97xx_reg_read(wm, AC97_WM9713_DIG1); + dig1 &= ~WM9713_ADCSEL_MASK; + if (pil) + dig1 |= WM9713_ADCSEL_PRES; + + if (wm->mach_ops && wm->mach_ops->pre_sample) + wm->mach_ops->pre_sample(WM97XX_ADCSEL_X | WM97XX_ADCSEL_Y); + wm97xx_reg_write(wm, AC97_WM9713_DIG1, + dig1 | WM9713_POLL | WM9713_COO); + + /* wait 3 AC97 time slots + delay for conversion */ + poll_delay(delay); + data->x = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + /* wait for POLL to go low */ + while ((wm97xx_reg_read(wm, AC97_WM9713_DIG1) & WM9713_POLL) + && timeout) { + udelay(AC97_LINK_FRAME); + timeout--; + } + + if (timeout <= 0) { + /* If PDEN is set, we can get a timeout when pen goes up */ + if (is_pden(wm)) + wm->pen_probably_down = 0; + else + dev_dbg(wm->dev, "adc sample timeout"); + return RC_PENUP; + } + + /* read back data */ + data->y = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + if (pil) + data->p = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + else + data->p = DEFAULT_PRESSURE; + + if (wm->mach_ops && wm->mach_ops->post_sample) + wm->mach_ops->post_sample(WM97XX_ADCSEL_X | WM97XX_ADCSEL_Y); + + /* check we have correct sample */ + if (!(data->x & WM97XX_ADCSEL_X) || !(data->y & WM97XX_ADCSEL_Y)) + goto err; + if (pil && !(data->p & WM97XX_ADCSEL_PRES)) + goto err; + + if (!(data->x & WM97XX_PEN_DOWN) || !(data->y & WM97XX_PEN_DOWN)) { + wm->pen_probably_down = 0; + return RC_PENUP; + } + return RC_VALID; +err: + return 0; +} + +/* + * Sample the WM9713 touchscreen in polling mode + */ +static int wm9713_poll_touch(struct wm97xx *wm, struct wm97xx_data *data) +{ + int rc; + + if (coord) { + rc = wm9713_poll_coord(wm, data); + if (rc != RC_VALID) + return rc; + } else { + rc = wm9713_poll_sample(wm, WM97XX_ADCSEL_X | WM97XX_PEN_DOWN, &data->x); + if (rc != RC_VALID) + return rc; + rc = wm9713_poll_sample(wm, WM97XX_ADCSEL_Y | WM97XX_PEN_DOWN, &data->y); + if (rc != RC_VALID) + return rc; + if (pil) { + rc = wm9713_poll_sample(wm, WM97XX_ADCSEL_PRES | WM97XX_PEN_DOWN, + &data->p); + if (rc != RC_VALID) + return rc; + } else + data->p = DEFAULT_PRESSURE; + } + return RC_VALID; +} + +/* + * Enable WM9713 continuous mode, i.e. touch data is streamed across + * an AC97 slot + */ +static int wm9713_acc_enable(struct wm97xx *wm, int enable) +{ + u16 dig1, dig2, dig3; + int ret = 0; + + dig1 = wm->dig[0]; + dig2 = wm->dig[1]; + dig3 = wm->dig[2]; + + if (enable) { + /* continuous mode */ + if (wm->mach_ops->acc_startup && + (ret = wm->mach_ops->acc_startup(wm)) < 0) + return ret; + + dig1 &= ~WM9713_ADCSEL_MASK; + dig1 |= WM9713_CTC | WM9713_COO | WM9713_ADCSEL_X | + WM9713_ADCSEL_Y; + if (pil) + dig1 |= WM9713_ADCSEL_PRES; + dig2 &= ~(WM97XX_DELAY_MASK | WM97XX_SLT_MASK | + WM97XX_CM_RATE_MASK); + dig2 |= WM97XX_SLEN | WM97XX_DELAY(delay) | + WM97XX_SLT(wm->acc_slot) | WM97XX_RATE(wm->acc_rate); + dig3 |= WM9713_PDEN; + } else { + dig1 &= ~(WM9713_CTC | WM9713_COO); + dig2 &= ~WM97XX_SLEN; + dig3 &= ~WM9713_PDEN; + if (wm->mach_ops->acc_shutdown) + wm->mach_ops->acc_shutdown(wm); + } + + wm97xx_reg_write(wm, AC97_WM9713_DIG1, dig1); + wm97xx_reg_write(wm, AC97_WM9713_DIG2, dig2); + wm97xx_reg_write(wm, AC97_WM9713_DIG3, dig3); + + return ret; +} + +struct wm97xx_codec_drv wm9713_codec = { + .id = WM9713_ID2, + .name = "wm9713", + .poll_sample = wm9713_poll_sample, + .poll_touch = wm9713_poll_touch, + .acc_enable = wm9713_acc_enable, + .phy_init = wm9713_phy_init, + .dig_enable = wm9713_dig_enable, + .dig_restore = wm9713_dig_restore, + .aux_prepare = wm9713_aux_prepare, +}; +EXPORT_SYMBOL_GPL(wm9713_codec); + +/* Module information */ +MODULE_AUTHOR("Liam Girdwood "); +MODULE_DESCRIPTION("WM9713 Touch Screen Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/wm97xx-core.c b/drivers/input/touchscreen/wm97xx-core.c new file mode 100644 index 00000000..7e45c9f6 --- /dev/null +++ b/drivers/input/touchscreen/wm97xx-core.c @@ -0,0 +1,859 @@ +/* + * wm97xx-core.c -- Touch screen driver core for Wolfson WM9705, WM9712 + * and WM9713 AC97 Codecs. + * + * Copyright 2003, 2004, 2005, 2006, 2007, 2008 Wolfson Microelectronics PLC. + * Author: Liam Girdwood + * Parts Copyright : Ian Molton + * Andrew Zabolotny + * Russell King + * + * 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. + * + * Notes: + * + * Features: + * - supports WM9705, WM9712, WM9713 + * - polling mode + * - continuous mode (arch-dependent) + * - adjustable rpu/dpp settings + * - adjustable pressure current + * - adjustable sample settle delay + * - 4 and 5 wire touchscreens (5 wire is WM9712 only) + * - pen down detection + * - battery monitor + * - sample AUX adcs + * - power management + * - codec GPIO + * - codec event notification + * Todo + * - Support for async sampling control for noisy LCDs. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define TS_NAME "wm97xx" +#define WM_CORE_VERSION "1.00" +#define DEFAULT_PRESSURE 0xb0c0 + + +/* + * Touchscreen absolute values + * + * These parameters are used to help the input layer discard out of + * range readings and reduce jitter etc. + * + * o min, max:- indicate the min and max values your touch screen returns + * o fuzz:- use a higher number to reduce jitter + * + * The default values correspond to Mainstone II in QVGA mode + * + * Please read + * Documentation/input/input-programming.txt for more details. + */ + +static int abs_x[3] = {350, 3900, 5}; +module_param_array(abs_x, int, NULL, 0); +MODULE_PARM_DESC(abs_x, "Touchscreen absolute X min, max, fuzz"); + +static int abs_y[3] = {320, 3750, 40}; +module_param_array(abs_y, int, NULL, 0); +MODULE_PARM_DESC(abs_y, "Touchscreen absolute Y min, max, fuzz"); + +static int abs_p[3] = {0, 150, 4}; +module_param_array(abs_p, int, NULL, 0); +MODULE_PARM_DESC(abs_p, "Touchscreen absolute Pressure min, max, fuzz"); + +/* + * wm97xx IO access, all IO locking done by AC97 layer + */ +int wm97xx_reg_read(struct wm97xx *wm, u16 reg) +{ + if (wm->ac97) + return wm->ac97->bus->ops->read(wm->ac97, reg); + else + return -1; +} +EXPORT_SYMBOL_GPL(wm97xx_reg_read); + +void wm97xx_reg_write(struct wm97xx *wm, u16 reg, u16 val) +{ + /* cache digitiser registers */ + if (reg >= AC97_WM9713_DIG1 && reg <= AC97_WM9713_DIG3) + wm->dig[(reg - AC97_WM9713_DIG1) >> 1] = val; + + /* cache gpio regs */ + if (reg >= AC97_GPIO_CFG && reg <= AC97_MISC_AFE) + wm->gpio[(reg - AC97_GPIO_CFG) >> 1] = val; + + /* wm9713 irq reg */ + if (reg == 0x5a) + wm->misc = val; + + if (wm->ac97) + wm->ac97->bus->ops->write(wm->ac97, reg, val); +} +EXPORT_SYMBOL_GPL(wm97xx_reg_write); + +/** + * wm97xx_read_aux_adc - Read the aux adc. + * @wm: wm97xx device. + * @adcsel: codec ADC to be read + * + * Reads the selected AUX ADC. + */ + +int wm97xx_read_aux_adc(struct wm97xx *wm, u16 adcsel) +{ + int power_adc = 0, auxval; + u16 power = 0; + int rc = 0; + int timeout = 0; + + /* get codec */ + mutex_lock(&wm->codec_mutex); + + /* When the touchscreen is not in use, we may have to power up + * the AUX ADC before we can use sample the AUX inputs-> + */ + if (wm->id == WM9713_ID2 && + (power = wm97xx_reg_read(wm, AC97_EXTENDED_MID)) & 0x8000) { + power_adc = 1; + wm97xx_reg_write(wm, AC97_EXTENDED_MID, power & 0x7fff); + } + + /* Prepare the codec for AUX reading */ + wm->codec->aux_prepare(wm); + + /* Turn polling mode on to read AUX ADC */ + wm->pen_probably_down = 1; + + while (rc != RC_VALID && timeout++ < 5) + rc = wm->codec->poll_sample(wm, adcsel, &auxval); + + if (power_adc) + wm97xx_reg_write(wm, AC97_EXTENDED_MID, power | 0x8000); + + wm->codec->dig_restore(wm); + + wm->pen_probably_down = 0; + + if (timeout >= 5) { + dev_err(wm->dev, + "timeout reading auxadc %d, disabling digitiser\n", + adcsel); + wm->codec->dig_enable(wm, false); + } + + mutex_unlock(&wm->codec_mutex); + return (rc == RC_VALID ? auxval & 0xfff : -EBUSY); +} +EXPORT_SYMBOL_GPL(wm97xx_read_aux_adc); + +/** + * wm97xx_get_gpio - Get the status of a codec GPIO. + * @wm: wm97xx device. + * @gpio: gpio + * + * Get the status of a codec GPIO pin + */ + +enum wm97xx_gpio_status wm97xx_get_gpio(struct wm97xx *wm, u32 gpio) +{ + u16 status; + enum wm97xx_gpio_status ret; + + mutex_lock(&wm->codec_mutex); + status = wm97xx_reg_read(wm, AC97_GPIO_STATUS); + + if (status & gpio) + ret = WM97XX_GPIO_HIGH; + else + ret = WM97XX_GPIO_LOW; + + mutex_unlock(&wm->codec_mutex); + return ret; +} +EXPORT_SYMBOL_GPL(wm97xx_get_gpio); + +/** + * wm97xx_set_gpio - Set the status of a codec GPIO. + * @wm: wm97xx device. + * @gpio: gpio + * + * + * Set the status of a codec GPIO pin + */ + +void wm97xx_set_gpio(struct wm97xx *wm, u32 gpio, + enum wm97xx_gpio_status status) +{ + u16 reg; + + mutex_lock(&wm->codec_mutex); + reg = wm97xx_reg_read(wm, AC97_GPIO_STATUS); + + if (status == WM97XX_GPIO_HIGH) + reg |= gpio; + else + reg &= ~gpio; + + if (wm->id == WM9712_ID2 && wm->variant != WM97xx_WM1613) + wm97xx_reg_write(wm, AC97_GPIO_STATUS, reg << 1); + else + wm97xx_reg_write(wm, AC97_GPIO_STATUS, reg); + mutex_unlock(&wm->codec_mutex); +} +EXPORT_SYMBOL_GPL(wm97xx_set_gpio); + +/* + * Codec GPIO pin configuration, this sets pin direction, polarity, + * stickyness and wake up. + */ +void wm97xx_config_gpio(struct wm97xx *wm, u32 gpio, enum wm97xx_gpio_dir dir, + enum wm97xx_gpio_pol pol, enum wm97xx_gpio_sticky sticky, + enum wm97xx_gpio_wake wake) +{ + u16 reg; + + mutex_lock(&wm->codec_mutex); + reg = wm97xx_reg_read(wm, AC97_GPIO_POLARITY); + + if (pol == WM97XX_GPIO_POL_HIGH) + reg |= gpio; + else + reg &= ~gpio; + + wm97xx_reg_write(wm, AC97_GPIO_POLARITY, reg); + reg = wm97xx_reg_read(wm, AC97_GPIO_STICKY); + + if (sticky == WM97XX_GPIO_STICKY) + reg |= gpio; + else + reg &= ~gpio; + + wm97xx_reg_write(wm, AC97_GPIO_STICKY, reg); + reg = wm97xx_reg_read(wm, AC97_GPIO_WAKEUP); + + if (wake == WM97XX_GPIO_WAKE) + reg |= gpio; + else + reg &= ~gpio; + + wm97xx_reg_write(wm, AC97_GPIO_WAKEUP, reg); + reg = wm97xx_reg_read(wm, AC97_GPIO_CFG); + + if (dir == WM97XX_GPIO_IN) + reg |= gpio; + else + reg &= ~gpio; + + wm97xx_reg_write(wm, AC97_GPIO_CFG, reg); + mutex_unlock(&wm->codec_mutex); +} +EXPORT_SYMBOL_GPL(wm97xx_config_gpio); + +/* + * Configure the WM97XX_PRP value to use while system is suspended. + * If a value other than 0 is set then WM97xx pen detection will be + * left enabled in the configured mode while the system is in suspend, + * the device has users and suspend has not been disabled via the + * wakeup sysfs entries. + * + * @wm: WM97xx device to configure + * @mode: WM97XX_PRP value to configure while suspended + */ +void wm97xx_set_suspend_mode(struct wm97xx *wm, u16 mode) +{ + wm->suspend_mode = mode; + device_init_wakeup(&wm->input_dev->dev, mode != 0); +} +EXPORT_SYMBOL_GPL(wm97xx_set_suspend_mode); + +/* + * Handle a pen down interrupt. + */ +static void wm97xx_pen_irq_worker(struct work_struct *work) +{ + struct wm97xx *wm = container_of(work, struct wm97xx, pen_event_work); + int pen_was_down = wm->pen_is_down; + + /* do we need to enable the touch panel reader */ + if (wm->id == WM9705_ID2) { + if (wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD) & + WM97XX_PEN_DOWN) + wm->pen_is_down = 1; + else + wm->pen_is_down = 0; + } else { + u16 status, pol; + mutex_lock(&wm->codec_mutex); + status = wm97xx_reg_read(wm, AC97_GPIO_STATUS); + pol = wm97xx_reg_read(wm, AC97_GPIO_POLARITY); + + if (WM97XX_GPIO_13 & pol & status) { + wm->pen_is_down = 1; + wm97xx_reg_write(wm, AC97_GPIO_POLARITY, pol & + ~WM97XX_GPIO_13); + } else { + wm->pen_is_down = 0; + wm97xx_reg_write(wm, AC97_GPIO_POLARITY, pol | + WM97XX_GPIO_13); + } + + if (wm->id == WM9712_ID2 && wm->variant != WM97xx_WM1613) + wm97xx_reg_write(wm, AC97_GPIO_STATUS, (status & + ~WM97XX_GPIO_13) << 1); + else + wm97xx_reg_write(wm, AC97_GPIO_STATUS, status & + ~WM97XX_GPIO_13); + mutex_unlock(&wm->codec_mutex); + } + + /* If the system is not using continuous mode or it provides a + * pen down operation then we need to schedule polls while the + * pen is down. Otherwise the machine driver is responsible + * for scheduling reads. + */ + if (!wm->mach_ops->acc_enabled || wm->mach_ops->acc_pen_down) { + if (wm->pen_is_down && !pen_was_down) { + /* Data is not available immediately on pen down */ + queue_delayed_work(wm->ts_workq, &wm->ts_reader, 1); + } + + /* Let ts_reader report the pen up for debounce. */ + if (!wm->pen_is_down && pen_was_down) + wm->pen_is_down = 1; + } + + if (!wm->pen_is_down && wm->mach_ops->acc_enabled) + wm->mach_ops->acc_pen_up(wm); + + wm->mach_ops->irq_enable(wm, 1); +} + +/* + * Codec PENDOWN irq handler + * + * We have to disable the codec interrupt in the handler because it + * can take up to 1ms to clear the interrupt source. We schedule a task + * in a work queue to do the actual interaction with the chip. The + * interrupt is then enabled again in the slow handler when the source + * has been cleared. + */ +static irqreturn_t wm97xx_pen_interrupt(int irq, void *dev_id) +{ + struct wm97xx *wm = dev_id; + + if (!work_pending(&wm->pen_event_work)) { + wm->mach_ops->irq_enable(wm, 0); + queue_work(wm->ts_workq, &wm->pen_event_work); + } + + return IRQ_HANDLED; +} + +/* + * initialise pen IRQ handler and workqueue + */ +static int wm97xx_init_pen_irq(struct wm97xx *wm) +{ + u16 reg; + + /* If an interrupt is supplied an IRQ enable operation must also be + * provided. */ + BUG_ON(!wm->mach_ops->irq_enable); + + if (request_irq(wm->pen_irq, wm97xx_pen_interrupt, IRQF_SHARED, + "wm97xx-pen", wm)) { + dev_err(wm->dev, + "Failed to register pen down interrupt, polling"); + wm->pen_irq = 0; + return -EINVAL; + } + + /* Configure GPIO as interrupt source on WM971x */ + if (wm->id != WM9705_ID2) { + BUG_ON(!wm->mach_ops->irq_gpio); + reg = wm97xx_reg_read(wm, AC97_MISC_AFE); + wm97xx_reg_write(wm, AC97_MISC_AFE, + reg & ~(wm->mach_ops->irq_gpio)); + reg = wm97xx_reg_read(wm, 0x5a); + wm97xx_reg_write(wm, 0x5a, reg & ~0x0001); + } + + return 0; +} + +static int wm97xx_read_samples(struct wm97xx *wm) +{ + struct wm97xx_data data; + int rc; + + mutex_lock(&wm->codec_mutex); + + if (wm->mach_ops && wm->mach_ops->acc_enabled) + rc = wm->mach_ops->acc_pen_down(wm); + else + rc = wm->codec->poll_touch(wm, &data); + + if (rc & RC_PENUP) { + if (wm->pen_is_down) { + wm->pen_is_down = 0; + dev_dbg(wm->dev, "pen up\n"); + input_report_abs(wm->input_dev, ABS_PRESSURE, 0); + input_report_key(wm->input_dev, BTN_TOUCH, 0); + input_sync(wm->input_dev); + } else if (!(rc & RC_AGAIN)) { + /* We need high frequency updates only while + * pen is down, the user never will be able to + * touch screen faster than a few times per + * second... On the other hand, when the user + * is actively working with the touchscreen we + * don't want to lose the quick response. So we + * will slowly increase sleep time after the + * pen is up and quicky restore it to ~one task + * switch when pen is down again. + */ + if (wm->ts_reader_interval < HZ / 10) + wm->ts_reader_interval++; + } + + } else if (rc & RC_VALID) { + dev_dbg(wm->dev, + "pen down: x=%x:%d, y=%x:%d, pressure=%x:%d\n", + data.x >> 12, data.x & 0xfff, data.y >> 12, + data.y & 0xfff, data.p >> 12, data.p & 0xfff); + + if (abs_x[0] > (data.x & 0xfff) || + abs_x[1] < (data.x & 0xfff) || + abs_y[0] > (data.y & 0xfff) || + abs_y[1] < (data.y & 0xfff)) { + dev_dbg(wm->dev, "Measurement out of range, dropping it\n"); + rc = RC_AGAIN; + goto out; + } + + input_report_abs(wm->input_dev, ABS_X, data.x & 0xfff); + input_report_abs(wm->input_dev, ABS_Y, data.y & 0xfff); + input_report_abs(wm->input_dev, ABS_PRESSURE, data.p & 0xfff); + input_report_key(wm->input_dev, BTN_TOUCH, 1); + input_sync(wm->input_dev); + wm->pen_is_down = 1; + wm->ts_reader_interval = wm->ts_reader_min_interval; + } else if (rc & RC_PENDOWN) { + dev_dbg(wm->dev, "pen down\n"); + wm->pen_is_down = 1; + wm->ts_reader_interval = wm->ts_reader_min_interval; + } + +out: + mutex_unlock(&wm->codec_mutex); + return rc; +} + +/* +* The touchscreen sample reader. +*/ +static void wm97xx_ts_reader(struct work_struct *work) +{ + int rc; + struct wm97xx *wm = container_of(work, struct wm97xx, ts_reader.work); + + BUG_ON(!wm->codec); + + do { + rc = wm97xx_read_samples(wm); + } while (rc & RC_AGAIN); + + if (wm->pen_is_down || !wm->pen_irq) + queue_delayed_work(wm->ts_workq, &wm->ts_reader, + wm->ts_reader_interval); +} + +/** + * wm97xx_ts_input_open - Open the touch screen input device. + * @idev: Input device to be opened. + * + * Called by the input sub system to open a wm97xx touchscreen device. + * Starts the touchscreen thread and touch digitiser. + */ +static int wm97xx_ts_input_open(struct input_dev *idev) +{ + struct wm97xx *wm = input_get_drvdata(idev); + + wm->ts_workq = create_singlethread_workqueue("kwm97xx"); + if (wm->ts_workq == NULL) { + dev_err(wm->dev, + "Failed to create workqueue\n"); + return -EINVAL; + } + + /* start digitiser */ + if (wm->mach_ops && wm->mach_ops->acc_enabled) + wm->codec->acc_enable(wm, 1); + wm->codec->dig_enable(wm, 1); + + INIT_DELAYED_WORK(&wm->ts_reader, wm97xx_ts_reader); + INIT_WORK(&wm->pen_event_work, wm97xx_pen_irq_worker); + + wm->ts_reader_min_interval = HZ >= 100 ? HZ / 100 : 1; + if (wm->ts_reader_min_interval < 1) + wm->ts_reader_min_interval = 1; + wm->ts_reader_interval = wm->ts_reader_min_interval; + + wm->pen_is_down = 0; + if (wm->pen_irq) + wm97xx_init_pen_irq(wm); + else + dev_err(wm->dev, "No IRQ specified\n"); + + /* If we either don't have an interrupt for pen down events or + * failed to acquire it then we need to poll. + */ + if (wm->pen_irq == 0) + queue_delayed_work(wm->ts_workq, &wm->ts_reader, + wm->ts_reader_interval); + + return 0; +} + +/** + * wm97xx_ts_input_close - Close the touch screen input device. + * @idev: Input device to be closed. + * + * Called by the input sub system to close a wm97xx touchscreen + * device. Kills the touchscreen thread and stops the touch + * digitiser. + */ + +static void wm97xx_ts_input_close(struct input_dev *idev) +{ + struct wm97xx *wm = input_get_drvdata(idev); + u16 reg; + + if (wm->pen_irq) { + /* Return the interrupt to GPIO usage (disabling it) */ + if (wm->id != WM9705_ID2) { + BUG_ON(!wm->mach_ops->irq_gpio); + reg = wm97xx_reg_read(wm, AC97_MISC_AFE); + wm97xx_reg_write(wm, AC97_MISC_AFE, + reg | wm->mach_ops->irq_gpio); + } + + free_irq(wm->pen_irq, wm); + } + + wm->pen_is_down = 0; + + /* Balance out interrupt disables/enables */ + if (cancel_work_sync(&wm->pen_event_work)) + wm->mach_ops->irq_enable(wm, 1); + + /* ts_reader rearms itself so we need to explicitly stop it + * before we destroy the workqueue. + */ + cancel_delayed_work_sync(&wm->ts_reader); + + destroy_workqueue(wm->ts_workq); + + /* stop digitiser */ + wm->codec->dig_enable(wm, 0); + if (wm->mach_ops && wm->mach_ops->acc_enabled) + wm->codec->acc_enable(wm, 0); +} + +static int wm97xx_probe(struct device *dev) +{ + struct wm97xx *wm; + struct wm97xx_pdata *pdata = dev->platform_data; + int ret = 0, id = 0; + + wm = kzalloc(sizeof(struct wm97xx), GFP_KERNEL); + if (!wm) + return -ENOMEM; + mutex_init(&wm->codec_mutex); + + wm->dev = dev; + dev_set_drvdata(dev, wm); + wm->ac97 = to_ac97_t(dev); + + /* check that we have a supported codec */ + id = wm97xx_reg_read(wm, AC97_VENDOR_ID1); + if (id != WM97XX_ID1) { + dev_err(dev, "Device with vendor %04x is not a wm97xx\n", id); + ret = -ENODEV; + goto alloc_err; + } + + wm->id = wm97xx_reg_read(wm, AC97_VENDOR_ID2); + + wm->variant = WM97xx_GENERIC; + + dev_info(wm->dev, "detected a wm97%02x codec\n", wm->id & 0xff); + + switch (wm->id & 0xff) { +#ifdef CONFIG_TOUCHSCREEN_WM9705 + case 0x05: + wm->codec = &wm9705_codec; + break; +#endif +#ifdef CONFIG_TOUCHSCREEN_WM9712 + case 0x12: + wm->codec = &wm9712_codec; + break; +#endif +#ifdef CONFIG_TOUCHSCREEN_WM9713 + case 0x13: + wm->codec = &wm9713_codec; + break; +#endif + default: + dev_err(wm->dev, "Support for wm97%02x not compiled in.\n", + wm->id & 0xff); + ret = -ENODEV; + goto alloc_err; + } + + /* set up physical characteristics */ + wm->codec->phy_init(wm); + + /* load gpio cache */ + wm->gpio[0] = wm97xx_reg_read(wm, AC97_GPIO_CFG); + wm->gpio[1] = wm97xx_reg_read(wm, AC97_GPIO_POLARITY); + wm->gpio[2] = wm97xx_reg_read(wm, AC97_GPIO_STICKY); + wm->gpio[3] = wm97xx_reg_read(wm, AC97_GPIO_WAKEUP); + wm->gpio[4] = wm97xx_reg_read(wm, AC97_GPIO_STATUS); + wm->gpio[5] = wm97xx_reg_read(wm, AC97_MISC_AFE); + + wm->input_dev = input_allocate_device(); + if (wm->input_dev == NULL) { + ret = -ENOMEM; + goto alloc_err; + } + + /* set up touch configuration */ + wm->input_dev->name = "wm97xx touchscreen"; + wm->input_dev->phys = "wm97xx"; + wm->input_dev->open = wm97xx_ts_input_open; + wm->input_dev->close = wm97xx_ts_input_close; + + __set_bit(EV_ABS, wm->input_dev->evbit); + __set_bit(EV_KEY, wm->input_dev->evbit); + __set_bit(BTN_TOUCH, wm->input_dev->keybit); + + input_set_abs_params(wm->input_dev, ABS_X, abs_x[0], abs_x[1], + abs_x[2], 0); + input_set_abs_params(wm->input_dev, ABS_Y, abs_y[0], abs_y[1], + abs_y[2], 0); + input_set_abs_params(wm->input_dev, ABS_PRESSURE, abs_p[0], abs_p[1], + abs_p[2], 0); + + input_set_drvdata(wm->input_dev, wm); + wm->input_dev->dev.parent = dev; + + ret = input_register_device(wm->input_dev); + if (ret < 0) + goto dev_alloc_err; + + /* register our battery device */ + wm->battery_dev = platform_device_alloc("wm97xx-battery", -1); + if (!wm->battery_dev) { + ret = -ENOMEM; + goto batt_err; + } + platform_set_drvdata(wm->battery_dev, wm); + wm->battery_dev->dev.parent = dev; + wm->battery_dev->dev.platform_data = pdata; + ret = platform_device_add(wm->battery_dev); + if (ret < 0) + goto batt_reg_err; + + /* register our extended touch device (for machine specific + * extensions) */ + wm->touch_dev = platform_device_alloc("wm97xx-touch", -1); + if (!wm->touch_dev) { + ret = -ENOMEM; + goto touch_err; + } + platform_set_drvdata(wm->touch_dev, wm); + wm->touch_dev->dev.parent = dev; + wm->touch_dev->dev.platform_data = pdata; + ret = platform_device_add(wm->touch_dev); + if (ret < 0) + goto touch_reg_err; + + return ret; + + touch_reg_err: + platform_device_put(wm->touch_dev); + touch_err: + platform_device_del(wm->battery_dev); + batt_reg_err: + platform_device_put(wm->battery_dev); + batt_err: + input_unregister_device(wm->input_dev); + wm->input_dev = NULL; + dev_alloc_err: + input_free_device(wm->input_dev); + alloc_err: + kfree(wm); + + return ret; +} + +static int wm97xx_remove(struct device *dev) +{ + struct wm97xx *wm = dev_get_drvdata(dev); + + platform_device_unregister(wm->battery_dev); + platform_device_unregister(wm->touch_dev); + input_unregister_device(wm->input_dev); + kfree(wm); + + return 0; +} + +#ifdef CONFIG_PM +static int wm97xx_suspend(struct device *dev, pm_message_t state) +{ + struct wm97xx *wm = dev_get_drvdata(dev); + u16 reg; + int suspend_mode; + + if (device_may_wakeup(&wm->input_dev->dev)) + suspend_mode = wm->suspend_mode; + else + suspend_mode = 0; + + if (wm->input_dev->users) + cancel_delayed_work_sync(&wm->ts_reader); + + /* Power down the digitiser (bypassing the cache for resume) */ + reg = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER2); + reg &= ~WM97XX_PRP_DET_DIG; + if (wm->input_dev->users) + reg |= suspend_mode; + wm->ac97->bus->ops->write(wm->ac97, AC97_WM97XX_DIGITISER2, reg); + + /* WM9713 has an additional power bit - turn it off if there + * are no users or if suspend mode is zero. */ + if (wm->id == WM9713_ID2 && + (!wm->input_dev->users || !suspend_mode)) { + reg = wm97xx_reg_read(wm, AC97_EXTENDED_MID) | 0x8000; + wm97xx_reg_write(wm, AC97_EXTENDED_MID, reg); + } + + return 0; +} + +static int wm97xx_resume(struct device *dev) +{ + struct wm97xx *wm = dev_get_drvdata(dev); + + /* restore digitiser and gpios */ + if (wm->id == WM9713_ID2) { + wm97xx_reg_write(wm, AC97_WM9713_DIG1, wm->dig[0]); + wm97xx_reg_write(wm, 0x5a, wm->misc); + if (wm->input_dev->users) { + u16 reg; + reg = wm97xx_reg_read(wm, AC97_EXTENDED_MID) & 0x7fff; + wm97xx_reg_write(wm, AC97_EXTENDED_MID, reg); + } + } + + wm97xx_reg_write(wm, AC97_WM9713_DIG2, wm->dig[1]); + wm97xx_reg_write(wm, AC97_WM9713_DIG3, wm->dig[2]); + + wm97xx_reg_write(wm, AC97_GPIO_CFG, wm->gpio[0]); + wm97xx_reg_write(wm, AC97_GPIO_POLARITY, wm->gpio[1]); + wm97xx_reg_write(wm, AC97_GPIO_STICKY, wm->gpio[2]); + wm97xx_reg_write(wm, AC97_GPIO_WAKEUP, wm->gpio[3]); + wm97xx_reg_write(wm, AC97_GPIO_STATUS, wm->gpio[4]); + wm97xx_reg_write(wm, AC97_MISC_AFE, wm->gpio[5]); + + if (wm->input_dev->users && !wm->pen_irq) { + wm->ts_reader_interval = wm->ts_reader_min_interval; + queue_delayed_work(wm->ts_workq, &wm->ts_reader, + wm->ts_reader_interval); + } + + return 0; +} + +#else +#define wm97xx_suspend NULL +#define wm97xx_resume NULL +#endif + +/* + * Machine specific operations + */ +int wm97xx_register_mach_ops(struct wm97xx *wm, + struct wm97xx_mach_ops *mach_ops) +{ + mutex_lock(&wm->codec_mutex); + if (wm->mach_ops) { + mutex_unlock(&wm->codec_mutex); + return -EINVAL; + } + wm->mach_ops = mach_ops; + mutex_unlock(&wm->codec_mutex); + + return 0; +} +EXPORT_SYMBOL_GPL(wm97xx_register_mach_ops); + +void wm97xx_unregister_mach_ops(struct wm97xx *wm) +{ + mutex_lock(&wm->codec_mutex); + wm->mach_ops = NULL; + mutex_unlock(&wm->codec_mutex); +} +EXPORT_SYMBOL_GPL(wm97xx_unregister_mach_ops); + +static struct device_driver wm97xx_driver = { + .name = "wm97xx-ts", + .bus = &ac97_bus_type, + .owner = THIS_MODULE, + .probe = wm97xx_probe, + .remove = wm97xx_remove, + .suspend = wm97xx_suspend, + .resume = wm97xx_resume, +}; + +static int __init wm97xx_init(void) +{ + return driver_register(&wm97xx_driver); +} + +static void __exit wm97xx_exit(void) +{ + driver_unregister(&wm97xx_driver); +} + +module_init(wm97xx_init); +module_exit(wm97xx_exit); + +/* Module information */ +MODULE_AUTHOR("Liam Girdwood "); +MODULE_DESCRIPTION("WM97xx Core - Touch Screen / AUX ADC / GPIO Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/zinitix_bt541_firmware.h b/drivers/input/touchscreen/zinitix_bt541_firmware.h new file mode 100644 index 00000000..95080dea --- /dev/null +++ b/drivers/input/touchscreen/zinitix_bt541_firmware.h @@ -0,0 +1,4127 @@ +/* +* +* Zinitix touch driver +* +* Copyright (C) 2009 Zinitix, 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. +* +*/ +/* +Release Date : 15/03/20, 21:10 + +Version Info : + Chip Code : 0xE240 + Firmware Version : 0x0004 + Firmware Minor Version : 0x0003 + Register Version : 0 +*/ +#ifndef _ZINITIX_ZXT_CODE_H +#define _ZINITIX_ZXT_CODE_H + +u8 m_firmware_data[] = { +0xC9, 0x00, 0x00, 0x48, 0x92, 0x00, 0x00, 0x48, +0x28, 0x00, 0x00, 0x48, 0x3D, 0x00, 0x00, 0x48, +0x52, 0x00, 0x00, 0x48, 0x68, 0x00, 0x00, 0x48, +0x66, 0x00, 0x00, 0x48, 0x64, 0x00, 0x00, 0x48, +0x62, 0x00, 0x00, 0x48, 0x60, 0x00, 0x00, 0x48, +0x5E, 0x00, 0x00, 0x48, 0x5C, 0x00, 0x00, 0x48, +0x00, 0x00, 0x00, 0x48, 0x04, 0x00, 0x00, 0x44, +0x03, 0x00, 0x00, 0x84, 0x00, 0x00, 0x03, 0x80, +0x40, 0xE2, 0x00, 0x44, 0x40, 0xE2, 0x00, 0x00, +0x00, 0x84, 0x00, 0x84, 0x00, 0x84, 0x00, 0x84, +0x00, 0x84, 0x00, 0x84, 0x00, 0x84, 0x00, 0x84, +0x20, 0x46, 0x21, 0x84, 0x21, 0x58, 0x80, 0x00, +0x50, 0xAE, 0x0A, 0x01, 0x00, 0x92, 0x00, 0x92, +0x00, 0x92, 0x00, 0x92, 0xFF, 0x3B, 0x00, 0x92, +0xFF, 0x3B, 0x84, 0xFC, 0xFF, 0x3B, 0x04, 0xFD, +0xFF, 0x3A, 0x04, 0xFE, 0x0F, 0x3A, 0x04, 0xBC, +0x00, 0x64, 0x04, 0xA8, 0x22, 0x84, 0x04, 0x00, +0x80, 0x00, 0x20, 0x46, 0x0A, 0x01, 0x21, 0x58, +0x00, 0x92, 0x50, 0xAE, 0x00, 0x92, 0x00, 0x92, +0x00, 0x92, 0x00, 0x92, 0x84, 0xFC, 0xFF, 0x3B, +0x04, 0xFD, 0xFF, 0x3B, 0x04, 0xFE, 0xFF, 0x3B, +0x04, 0xBC, 0xFF, 0x3A, 0x04, 0xA8, 0x0F, 0x3A, +0x04, 0x00, 0x00, 0x64, 0x20, 0x46, 0x23, 0x84, +0x21, 0x58, 0x80, 0x00, 0x50, 0xAE, 0x0A, 0x01, +0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, +0x09, 0x00, 0x00, 0x40, 0x84, 0xFC, 0xFF, 0x3B, +0x04, 0xFD, 0xFF, 0x3B, 0x04, 0xFE, 0xFF, 0x3B, +0x04, 0xBC, 0xFF, 0x3A, 0x04, 0xA8, 0x0F, 0x3A, +0x04, 0x00, 0x00, 0x64, 0x3C, 0xA8, 0x0F, 0x3A, +0x3C, 0xBC, 0xFF, 0x3A, 0x3C, 0xFE, 0xFF, 0x3B, +0x3C, 0xFD, 0xFF, 0x3B, 0xBC, 0xFC, 0xFF, 0x3B, +0x20, 0x46, 0x24, 0x84, 0x21, 0x58, 0x80, 0x00, +0x50, 0xAE, 0x0A, 0x01, 0x00, 0x92, 0x00, 0x92, +0x00, 0x92, 0x00, 0x92, 0xFF, 0x3B, 0x00, 0x92, +0xFF, 0x3B, 0x84, 0xFC, 0xFF, 0x3B, 0x04, 0xFD, +0xFF, 0x3A, 0x04, 0xFE, 0x0F, 0x3A, 0x04, 0xBC, +0x00, 0x64, 0x04, 0xA8, 0x00, 0x92, 0x04, 0x00, +0x80, 0x00, 0xD0, 0x47, 0x68, 0x81, 0xDE, 0x59, +0x80, 0x00, 0xC0, 0x47, 0x68, 0x00, 0xCE, 0x59, +0x83, 0x00, 0xF0, 0x47, 0xF0, 0x8F, 0xFF, 0x59, +0x16, 0x00, 0x00, 0x46, 0xC0, 0x0D, 0x00, 0x58, +0x21, 0x00, 0x0E, 0x42, 0xF4, 0x02, 0x00, 0x49, +0x78, 0x03, 0x00, 0x49, 0x81, 0x00, 0x20, 0x46, +0xFC, 0x08, 0x21, 0x58, 0xD9, 0x94, 0x68, 0xFA, +0x18, 0xA4, 0x62, 0x88, 0x0B, 0x00, 0x00, 0x42, +0x04, 0x00, 0x03, 0x4E, 0x48, 0x03, 0x00, 0x49, +0x80, 0x00, 0xD0, 0x47, 0x68, 0x81, 0xDE, 0x59, +0x80, 0x00, 0xC0, 0x47, 0x68, 0x00, 0xCE, 0x59, +0x83, 0x00, 0xF0, 0x47, 0xF0, 0x8F, 0xFF, 0x59, +0x03, 0x64, 0x02, 0x84, 0x00, 0x48, 0x03, 0x00, +0x21, 0x84, 0x11, 0x05, 0x80, 0x00, 0x20, 0x46, +0x03, 0x01, 0x21, 0x58, 0x10, 0x46, 0x50, 0xAE, +0x10, 0x58, 0x80, 0x00, 0x01, 0xB4, 0x4C, 0x80, +0x80, 0x00, 0x10, 0x44, 0x15, 0x4E, 0x41, 0x9A, +0x10, 0x44, 0x37, 0x00, 0x41, 0x9A, 0x9F, 0x00, +0x32, 0x00, 0x16, 0x4E, 0x81, 0x00, 0x20, 0x46, +0xFC, 0x08, 0x21, 0x58, 0xD9, 0x94, 0x60, 0xFA, +0x18, 0xA5, 0x62, 0x88, 0x61, 0x9A, 0x23, 0x84, +0x0D, 0x00, 0x15, 0x4E, 0x80, 0x00, 0xF0, 0x46, +0x97, 0x80, 0x17, 0x02, 0xF0, 0x46, 0x21, 0x92, +0x17, 0x12, 0x01, 0x01, 0x00, 0x48, 0x0A, 0x80, +0x20, 0x84, 0x13, 0x02, 0x01, 0x01, 0xF0, 0x46, +0x0A, 0x80, 0x17, 0x12, 0x81, 0x00, 0x20, 0x46, +0xFC, 0x08, 0x21, 0x58, 0xD9, 0x94, 0x69, 0xFA, +0x18, 0xA5, 0x62, 0x88, 0x40, 0x4C, 0x20, 0x84, +0x22, 0x84, 0x03, 0x82, 0x00, 0x82, 0x40, 0x4C, +0x81, 0x00, 0x10, 0x46, 0xFC, 0x88, 0x10, 0x58, +0x74, 0x01, 0x00, 0x48, 0x00, 0x02, 0x10, 0x44, +0x15, 0x4E, 0x41, 0x9A, 0x00, 0x44, 0x0C, 0x00, +0x46, 0xFE, 0xFF, 0x00, 0xF0, 0x46, 0x4E, 0x94, +0x17, 0x12, 0x01, 0x01, 0x00, 0x48, 0x0A, 0x80, +0x20, 0x84, 0xEB, 0x01, 0x2C, 0x82, 0x00, 0x4C, +0x00, 0x4C, 0x21, 0x84, 0x23, 0x84, 0x29, 0x82, +0xCC, 0x81, 0x00, 0x4C, 0x00, 0x4C, 0x24, 0x84, +0x21, 0x84, 0x10, 0xC0, 0x80, 0x00, 0x20, 0x46, +0x06, 0x01, 0x21, 0x58, 0x22, 0x84, 0x50, 0xAE, +0x80, 0x00, 0x20, 0x46, 0x14, 0x01, 0x21, 0x58, +0x00, 0x48, 0x50, 0xAE, 0x25, 0x84, 0xBB, 0x01, +0x10, 0xC0, 0x00, 0x4C, 0x20, 0x46, 0x21, 0x84, +0x21, 0x58, 0x80, 0x00, 0x50, 0xAE, 0x06, 0x01, +0x20, 0x46, 0x22, 0x84, 0x21, 0x58, 0x80, 0x00, +0x50, 0xAE, 0x14, 0x01, 0xAA, 0x01, 0x00, 0x48, +0x00, 0x4C, 0x26, 0x84, 0x21, 0x84, 0x0A, 0xC0, +0x80, 0x00, 0x20, 0x46, 0x14, 0x01, 0x21, 0x58, +0x00, 0x48, 0x50, 0xAE, 0x28, 0x84, 0x9F, 0x01, +0x06, 0xC0, 0x00, 0x4C, 0x6A, 0x02, 0x00, 0x49, +0x10, 0x00, 0x00, 0x48, 0x00, 0x4C, 0x27, 0x84, +0x20, 0x46, 0x57, 0xC0, 0x21, 0x58, 0x81, 0x00, +0x68, 0xFA, 0xFC, 0x08, 0x62, 0x88, 0xD9, 0x94, +0x00, 0x42, 0x18, 0xA4, 0x18, 0xAC, 0x09, 0x04, +0x20, 0x46, 0x00, 0x84, 0x21, 0x58, 0x81, 0x00, +0x30, 0x44, 0xFC, 0x08, 0xD9, 0x94, 0x2E, 0x01, +0x18, 0xAC, 0x62, 0x88, 0x81, 0x00, 0x20, 0x46, +0xFC, 0x08, 0x21, 0x58, 0x2C, 0x01, 0x30, 0x44, +0x62, 0x88, 0xD9, 0x94, 0x00, 0x80, 0x01, 0x12, +0xE0, 0x01, 0x00, 0x49, 0xA2, 0x02, 0x00, 0x49, +0x80, 0x00, 0x30, 0x46, 0x38, 0x81, 0x31, 0x58, +0x02, 0xFE, 0x18, 0xA4, 0x81, 0x00, 0x20, 0x46, +0xFC, 0x08, 0x21, 0x58, 0x2E, 0x01, 0x30, 0x44, +0x62, 0x88, 0xD9, 0x94, 0x00, 0x80, 0x01, 0x12, +0xCC, 0x01, 0x00, 0x49, 0x8E, 0x02, 0x00, 0x49, +0x20, 0x46, 0x00, 0x84, 0x21, 0x58, 0x81, 0x00, +0x30, 0x44, 0xFC, 0x08, 0xD9, 0x94, 0x2C, 0x01, +0x18, 0xAC, 0x62, 0x88, 0x20, 0x46, 0x22, 0x84, +0x21, 0x58, 0x80, 0x00, 0x50, 0xAE, 0x14, 0x01, +0x80, 0x00, 0x20, 0x46, 0x38, 0x01, 0x21, 0x58, +0x40, 0x84, 0x50, 0xA4, 0x06, 0xC0, 0x00, 0x4C, +0xAA, 0x55, 0x00, 0x44, 0x00, 0x80, 0x01, 0x12, +0x40, 0x01, 0x00, 0x48, 0x00, 0x4C, 0x29, 0x84, +0x01, 0x84, 0x0A, 0xC0, 0x80, 0x00, 0x20, 0x46, +0x40, 0x01, 0x21, 0x58, 0x00, 0x48, 0x10, 0xAC, +0x00, 0x92, 0x8F, 0x01, 0x00, 0x4C, 0x2F, 0x84, +0x21, 0x84, 0x0B, 0xC0, 0x80, 0x00, 0x20, 0x46, +0x19, 0x01, 0x21, 0x58, 0xFF, 0x3B, 0x50, 0xAE, +0x1E, 0xDD, 0x84, 0xFC, 0x80, 0x00, 0x10, 0x46, +0x4C, 0x80, 0x10, 0x58, 0x10, 0x44, 0x01, 0xB4, +0x41, 0x9A, 0x00, 0x02, 0x0A, 0x00, 0x15, 0x4E, +0x01, 0x01, 0x30, 0x46, 0x40, 0x80, 0x31, 0x58, +0xFF, 0x3B, 0x23, 0xB6, 0x1E, 0xDD, 0x84, 0xFC, +0x81, 0x00, 0x20, 0x46, 0xFC, 0x08, 0x21, 0x58, +0xD9, 0x94, 0x60, 0xFA, 0x98, 0xA4, 0x62, 0x88, +0x80, 0x00, 0xF0, 0x46, 0x67, 0x80, 0x27, 0x14, +0x81, 0x00, 0x10, 0x46, 0xFC, 0x88, 0x10, 0x58, +0x92, 0x00, 0x00, 0x49, 0x80, 0x00, 0xF0, 0x46, +0x12, 0x80, 0x27, 0x04, 0x51, 0x9A, 0x21, 0x84, +0x06, 0x00, 0x16, 0x4E, 0x84, 0xFC, 0xFF, 0x3B, +0x00, 0x78, 0x00, 0x4A, 0x80, 0x00, 0x10, 0x46, +0x4C, 0x80, 0x10, 0x58, 0x20, 0xFA, 0x01, 0xB4, +0x3C, 0xC0, 0x00, 0x4C, 0xEC, 0x00, 0x00, 0x49, +0x81, 0x00, 0x20, 0x46, 0xFC, 0x08, 0x21, 0x58, +0xD9, 0x94, 0x60, 0xFA, 0x18, 0xA4, 0x62, 0x88, +0x40, 0x46, 0xA1, 0x84, 0x42, 0x58, 0x80, 0x00, +0x60, 0xAF, 0x0B, 0x01, 0x41, 0x9A, 0x25, 0x84, +0x0E, 0x00, 0x17, 0x4E, 0x41, 0x9A, 0x23, 0x84, +0x0A, 0x00, 0x17, 0x4E, 0x20, 0x46, 0x22, 0x84, +0x21, 0x58, 0x80, 0x00, 0x50, 0xAE, 0x14, 0x01, +0xD0, 0x00, 0x00, 0x48, 0x80, 0x00, 0xF0, 0x46, +0x67, 0x80, 0x07, 0x04, 0x41, 0x9A, 0x25, 0x84, +0x04, 0x00, 0x16, 0x4E, 0xC6, 0x00, 0x00, 0x48, +0x00, 0x00, 0x10, 0x46, 0x03, 0x80, 0x10, 0x58, +0x04, 0x40, 0x10, 0x4C, 0xBE, 0x00, 0x00, 0x48, +0x20, 0x46, 0x22, 0x84, 0x21, 0x58, 0x80, 0x00, +0x50, 0xAE, 0x14, 0x01, 0xB6, 0x00, 0x00, 0x48, +0x60, 0x00, 0x10, 0x44, 0x15, 0x4E, 0x41, 0x9A, +0x10, 0x44, 0x0F, 0x00, 0x41, 0x9A, 0x7F, 0x00, +0x0A, 0x00, 0x16, 0x4E, 0x20, 0x46, 0x22, 0x84, +0x21, 0x58, 0x80, 0x00, 0x50, 0xAE, 0x14, 0x01, +0xA4, 0x00, 0x00, 0x48, 0x00, 0x01, 0x10, 0x44, +0x14, 0x4E, 0x41, 0x9A, 0xFF, 0x3B, 0x05, 0x00, +0x1E, 0xDD, 0x84, 0xFC, 0x16, 0x01, 0x10, 0x44, +0x06, 0xC0, 0x00, 0x4C, 0x84, 0xFC, 0xFF, 0x3B, +0x00, 0x78, 0x00, 0x4A, 0x6A, 0x01, 0x10, 0x44, +0x06, 0xC0, 0x00, 0x4C, 0x84, 0xFC, 0xFF, 0x3B, +0x00, 0x78, 0x00, 0x4A, 0x6C, 0x01, 0x10, 0x44, +0x06, 0xC0, 0x00, 0x4C, 0x84, 0xFC, 0xFF, 0x3B, +0x00, 0x78, 0x00, 0x4A, 0x4F, 0x01, 0x10, 0x44, +0x17, 0x4E, 0x41, 0x9A, 0xFF, 0x3B, 0x05, 0x00, +0x1E, 0xDD, 0x84, 0xFC, 0x20, 0x46, 0x22, 0x84, +0x21, 0x58, 0x80, 0x00, 0x50, 0xAE, 0x14, 0x01, +0x74, 0x00, 0x00, 0x48, 0xBC, 0xFC, 0xFF, 0x3B, +0x20, 0x88, 0x01, 0x94, 0x80, 0x00, 0xF0, 0x46, +0x12, 0x80, 0x37, 0x04, 0x5D, 0xCB, 0x61, 0x8E, +0x01, 0x01, 0x30, 0x46, 0x40, 0x80, 0x31, 0x58, +0x08, 0xA4, 0x48, 0x84, 0x03, 0xB6, 0x00, 0x96, +0x08, 0xA4, 0xDC, 0x9C, 0x03, 0xB6, 0x08, 0x92, +0x4A, 0x9C, 0xDC, 0x9C, 0xF6, 0xCA, 0x41, 0x8E, +0x81, 0x00, 0x20, 0x46, 0xFC, 0x08, 0x21, 0x58, +0x1E, 0x01, 0x30, 0x44, 0x62, 0x88, 0xD9, 0x94, +0x10, 0x42, 0x58, 0xA4, 0x03, 0xC9, 0x0B, 0xBC, +0x3A, 0x00, 0x00, 0x48, 0x38, 0x00, 0x00, 0x48, +0x80, 0x00, 0x30, 0x46, 0x4C, 0x80, 0x31, 0x58, +0x30, 0x44, 0x23, 0xB5, 0x34, 0x40, 0x6C, 0x01, +0x03, 0xCB, 0x01, 0x8C, 0x2C, 0x00, 0x00, 0x48, +0x6A, 0x01, 0x30, 0x44, 0x62, 0x88, 0xD9, 0x94, +0x00, 0x80, 0x91, 0x02, 0x00, 0x00, 0x10, 0x46, +0xF0, 0x46, 0x21, 0x80, 0x17, 0x14, 0x00, 0x01, +0x30, 0x46, 0x01, 0x80, 0x31, 0x58, 0x01, 0x01, +0x92, 0x4E, 0x40, 0x80, 0x00, 0x85, 0x19, 0x00, +0xDC, 0x9C, 0x03, 0xB4, 0xDC, 0x9C, 0x23, 0xB4, +0x08, 0xA0, 0x10, 0x40, 0x00, 0x89, 0x01, 0x88, +0x93, 0x4E, 0x21, 0x8F, 0x20, 0x46, 0xF7, 0xFF, +0x21, 0x58, 0x81, 0x00, 0x30, 0x44, 0xFC, 0x08, +0xD9, 0x94, 0x6C, 0x01, 0x00, 0x88, 0x31, 0x40, +0x00, 0x80, 0x81, 0x12, 0x84, 0xFC, 0xFF, 0x3B, +0x00, 0x78, 0x00, 0x4A, 0xBC, 0xFC, 0xFF, 0x3B, +0x80, 0x00, 0x30, 0x46, 0x4C, 0x80, 0x31, 0x58, +0x03, 0xB4, 0x64, 0x8C, 0xFF, 0x3B, 0x08, 0xAC, +0x1E, 0xDD, 0x84, 0xFC, 0xBC, 0xFC, 0xFF, 0x3B, +0xF0, 0x46, 0x20, 0x84, 0x17, 0x10, 0x01, 0x01, +0xF0, 0x46, 0x28, 0x80, 0x07, 0x04, 0x03, 0x01, +0x10, 0x44, 0x01, 0x83, 0x0E, 0xFE, 0xFE, 0xFF, +0x03, 0x01, 0xF0, 0x46, 0x01, 0x83, 0x07, 0x14, +0x84, 0xFC, 0xFF, 0x3B, 0x00, 0x78, 0x00, 0x4A, +0xBC, 0xFC, 0xFF, 0x3B, 0x81, 0x00, 0x20, 0x46, +0xFC, 0x08, 0x21, 0x58, 0x1E, 0x01, 0x30, 0x44, +0x62, 0x88, 0xD9, 0x94, 0x10, 0x42, 0x58, 0xA4, +0x03, 0xC9, 0x0B, 0xBC, 0x26, 0x00, 0x00, 0x48, +0x6A, 0x01, 0x30, 0x44, 0x62, 0x88, 0xD9, 0x94, +0x00, 0x80, 0x91, 0x02, 0x00, 0x00, 0x10, 0x46, +0xF0, 0x46, 0x21, 0x80, 0x17, 0x14, 0x00, 0x01, +0x30, 0x46, 0x01, 0x80, 0x63, 0x80, 0x8C, 0x00, +0x14, 0x00, 0x92, 0x4E, 0x00, 0x00, 0x80, 0x44, +0x01, 0x80, 0x01, 0x0A, 0x21, 0x8F, 0x00, 0x89, +0xFC, 0xFF, 0x93, 0x4E, 0x81, 0x00, 0x20, 0x46, +0xFC, 0x08, 0x21, 0x58, 0x6C, 0x01, 0x30, 0x44, +0x62, 0x88, 0xD9, 0x94, 0x00, 0x80, 0x81, 0x12, +0x00, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, 0x58, +0x00, 0x01, 0xF0, 0x46, 0x01, 0x80, 0x07, 0x14, +0xF0, 0x46, 0x11, 0xFA, 0x0F, 0xB6, 0x01, 0x01, +0x84, 0xFC, 0xFF, 0x3B, 0x00, 0x78, 0x00, 0x4A, +0xBC, 0xFC, 0xFF, 0x3B, 0x20, 0x46, 0x20, 0x84, +0x21, 0x58, 0x80, 0x00, 0x50, 0xAE, 0x06, 0x01, +0x20, 0x46, 0x22, 0x84, 0x21, 0x58, 0x80, 0x00, +0x50, 0xAE, 0x14, 0x01, 0x98, 0xFF, 0xFF, 0x49, +0x84, 0xFC, 0xFF, 0x3B, 0x00, 0x78, 0x00, 0x4A, +0xBC, 0xFC, 0xFF, 0x3B, 0x00, 0x00, 0x10, 0x44, +0x80, 0x00, 0xF0, 0x46, 0x5B, 0x80, 0x17, 0x14, +0x81, 0x00, 0x10, 0x46, 0xFC, 0x88, 0x10, 0x58, +0x80, 0x00, 0xF0, 0x46, 0x5B, 0x80, 0x07, 0x04, +0xF0, 0x46, 0x48, 0x98, 0x17, 0x14, 0x80, 0x00, +0x20, 0xFA, 0x0B, 0x80, 0x80, 0x00, 0xF0, 0x46, +0x0C, 0x80, 0x17, 0x14, 0x07, 0x00, 0x10, 0x46, +0x00, 0x85, 0x10, 0x58, 0x80, 0x00, 0xF0, 0x46, +0x5B, 0x80, 0x07, 0x04, 0xF0, 0x46, 0x48, 0x98, +0x17, 0x14, 0x80, 0x00, 0x00, 0x46, 0x0A, 0x80, +0x00, 0x58, 0x01, 0x00, 0x20, 0xDD, 0xD4, 0x0F, +0x80, 0x00, 0xF0, 0x46, 0x5B, 0x80, 0x17, 0x04, +0x40, 0x80, 0x10, 0x50, 0x80, 0x00, 0xF0, 0x46, +0x5B, 0x80, 0x17, 0x14, 0xFF, 0x03, 0x00, 0x44, +0x15, 0x4E, 0x48, 0x9A, 0xFF, 0x3B, 0xCF, 0xFF, +0x1E, 0xDD, 0x84, 0xFC, 0xBC, 0xFC, 0xFF, 0x3B, +0x81, 0x00, 0x10, 0x46, 0xFC, 0x88, 0x10, 0x58, +0x80, 0x00, 0xF0, 0x46, 0x5B, 0x80, 0x07, 0x04, +0xF0, 0x46, 0x48, 0x98, 0x17, 0x14, 0x80, 0x00, +0x10, 0x44, 0x0B, 0x80, 0xF0, 0x46, 0x00, 0x01, +0x17, 0x14, 0x80, 0x00, 0x10, 0x46, 0x0C, 0x80, +0x10, 0x58, 0x07, 0x00, 0xF0, 0x46, 0x00, 0x85, +0x17, 0x14, 0x80, 0x00, 0x00, 0x46, 0x0A, 0x80, +0x00, 0x58, 0x01, 0x00, 0x20, 0xDD, 0x70, 0x0F, +0x84, 0xFC, 0xFF, 0x3B, 0x00, 0x78, 0x00, 0x4A, +0xBC, 0xFC, 0xFF, 0x3B, 0x00, 0x00, 0x10, 0x44, +0x80, 0x00, 0xF0, 0x46, 0x5B, 0x80, 0x17, 0x14, +0x80, 0x00, 0x10, 0x46, 0x94, 0x88, 0x10, 0x58, +0x80, 0x00, 0xF0, 0x46, 0x5B, 0x80, 0x07, 0x04, +0xF0, 0x46, 0x48, 0x98, 0x17, 0x14, 0x80, 0x00, +0x20, 0xFA, 0x0B, 0x80, 0x80, 0x00, 0xF0, 0x46, +0x0C, 0x80, 0x17, 0x14, 0x07, 0x00, 0x10, 0x46, +0x00, 0x8A, 0x10, 0x58, 0x80, 0x00, 0xF0, 0x46, +0x5B, 0x80, 0x07, 0x04, 0xF0, 0x46, 0x48, 0x98, +0x17, 0x14, 0x80, 0x00, 0x00, 0x46, 0x0A, 0x80, +0x00, 0x58, 0x01, 0x00, 0x20, 0xDD, 0xD4, 0x0F, +0x80, 0x00, 0xF0, 0x46, 0x5B, 0x80, 0x17, 0x04, +0x40, 0x80, 0x10, 0x50, 0x80, 0x00, 0xF0, 0x46, +0x5B, 0x80, 0x17, 0x14, 0x80, 0x04, 0x00, 0x44, +0x15, 0x4E, 0x48, 0x9A, 0xFF, 0x3B, 0xCF, 0xFF, +0x1E, 0xDD, 0x84, 0xFC, 0xBC, 0xFC, 0xFF, 0x3B, +0x80, 0x00, 0x10, 0x46, 0x94, 0x88, 0x10, 0x58, +0x80, 0x00, 0xF0, 0x46, 0x0B, 0x80, 0x17, 0x14, +0x20, 0x01, 0x10, 0x44, 0x80, 0x00, 0xF0, 0x46, +0x0C, 0x80, 0x17, 0x14, 0x07, 0x00, 0x10, 0x46, +0x00, 0x8A, 0x10, 0x58, 0x80, 0x00, 0xF0, 0x46, +0x0A, 0x80, 0x17, 0x14, 0x01, 0x00, 0x00, 0x46, +0x70, 0x0F, 0x00, 0x58, 0x01, 0x00, 0xE0, 0x4B, +0x84, 0xFC, 0xFF, 0x3B, 0x00, 0x78, 0x00, 0x4A, +0xBC, 0xFC, 0xFF, 0x3B, 0xF0, 0x46, 0x20, 0x84, +0x17, 0x14, 0x80, 0x00, 0x00, 0x46, 0x5B, 0x80, +0x00, 0x58, 0x80, 0x00, 0x40, 0xAC, 0x38, 0x01, +0x81, 0x00, 0x10, 0x46, 0x8C, 0x8D, 0x10, 0x58, +0x80, 0x00, 0xF0, 0x46, 0x0B, 0x80, 0x17, 0x14, +0x00, 0x01, 0x10, 0x44, 0x80, 0x00, 0xF0, 0x46, +0x0C, 0x80, 0x17, 0x14, 0x80, 0x00, 0xF0, 0x46, +0x5B, 0x80, 0x17, 0x04, 0x80, 0x00, 0xF0, 0x46, +0x0A, 0x80, 0x17, 0x14, 0x01, 0x00, 0x00, 0x46, +0x70, 0x0F, 0x00, 0x58, 0x01, 0x00, 0xE0, 0x4B, +0x00, 0x02, 0x20, 0x44, 0x81, 0x00, 0x10, 0x46, +0x8C, 0x8D, 0x10, 0x58, 0x80, 0x00, 0x00, 0x46, +0x38, 0x01, 0x00, 0x58, 0x08, 0xA4, 0xC0, 0xA4, +0x4A, 0x9C, 0x60, 0x88, 0xFC, 0xCA, 0x41, 0x8E, +0x80, 0x00, 0x00, 0x46, 0x38, 0x01, 0x00, 0x58, +0x00, 0x00, 0x30, 0x12, 0x80, 0x00, 0xF0, 0x46, +0x5B, 0x80, 0x17, 0x04, 0x00, 0x84, 0x10, 0x50, +0x80, 0x00, 0xF0, 0x46, 0x5B, 0x80, 0x17, 0x14, +0x00, 0x80, 0x00, 0x44, 0x04, 0x00, 0x10, 0x4C, +0xC0, 0xFF, 0xFF, 0x48, 0x84, 0xFC, 0xFF, 0x3B, +0x00, 0x92, 0x1E, 0xDD, 0x09, 0x00, 0x00, 0x40, +0x09, 0x00, 0x00, 0x40, 0x09, 0x00, 0x00, 0x40, +0x80, 0x00, 0x00, 0x46, 0x20, 0x84, 0x00, 0x80, +0x00, 0x02, 0x20, 0x44, 0x41, 0x8E, 0x41, 0xAA, +0x00, 0x46, 0xFE, 0xCA, 0x00, 0x58, 0x00, 0x00, +0x00, 0xDD, 0x7A, 0x01, 0x09, 0x00, 0x00, 0x40, +0xBC, 0xFD, 0xFF, 0x3B, 0x01, 0x00, 0x00, 0x46, +0xB0, 0x0F, 0x00, 0x58, 0x01, 0x00, 0xE0, 0x4B, +0x84, 0xFD, 0xFF, 0x3B, 0x00, 0x92, 0x9E, 0xDD, +0x09, 0x00, 0x00, 0x40, 0x09, 0x00, 0x00, 0x40, +0x00, 0x84, 0x00, 0xFC, 0x9E, 0xFF, 0x07, 0x3E, +0xB1, 0xFF, 0x07, 0x3E, 0x00, 0xFC, 0x80, 0xFC, +0xF8, 0xFF, 0xFF, 0x49, 0x00, 0x0D, 0x14, 0x3C, +0x05, 0xE8, 0x24, 0xE4, 0x00, 0x0D, 0x04, 0x3C, +0x05, 0x00, 0x04, 0x4E, 0x18, 0x3C, 0x20, 0x84, +0x41, 0xDD, 0x00, 0x0D, 0x36, 0x01, 0x20, 0x22, +0x20, 0x14, 0x46, 0xEA, 0x10, 0x22, 0x04, 0x83, +0xF0, 0x5E, 0x25, 0x01, 0x06, 0xE9, 0x33, 0x80, +0x25, 0x01, 0x00, 0x22, 0x00, 0x01, 0xF0, 0x5E, +0x10, 0x44, 0x05, 0xE9, 0x18, 0x3C, 0x9B, 0x00, +0x41, 0xDD, 0xEF, 0x0C, 0x25, 0x01, 0x20, 0x02, +0xE7, 0xFF, 0x2B, 0x3C, 0x25, 0x01, 0x20, 0x22, +0x20, 0x14, 0x46, 0xEA, 0x41, 0x84, 0x09, 0x83, +0x08, 0x83, 0x20, 0x14, 0x10, 0x12, 0x39, 0xEA, +0x80, 0xFC, 0x2D, 0x01, 0x70, 0xEA, 0x00, 0xFC, +0x52, 0xDD, 0x20, 0xFA, 0x00, 0xFC, 0x80, 0xFC, +0x10, 0x44, 0x70, 0xEA, 0x52, 0xDD, 0xFF, 0xFF, +0x20, 0xFC, 0x80, 0xFC, 0x04, 0xC8, 0xE0, 0x80, +0x00, 0x48, 0x01, 0x84, 0x46, 0xDD, 0x95, 0x00, +0x02, 0x01, 0x10, 0x46, 0x08, 0x00, 0x28, 0x46, +0x04, 0x81, 0x10, 0x58, 0x43, 0xDD, 0x41, 0xB6, +0x10, 0x58, 0xC0, 0x84, 0xC1, 0xB6, 0x08, 0x81, +0x10, 0x58, 0x43, 0xDD, 0xC1, 0xB6, 0x0C, 0x81, +0x70, 0x07, 0x20, 0x46, 0x21, 0x58, 0x43, 0xDD, +0x10, 0x58, 0x77, 0x00, 0x41, 0xB6, 0x10, 0x81, +0x10, 0x58, 0x43, 0xDD, 0xC1, 0xB6, 0x14, 0x81, +0x10, 0x58, 0x43, 0xDD, 0xC1, 0xB6, 0x68, 0x80, +0x55, 0xEA, 0x72, 0xEA, 0x00, 0x01, 0x10, 0x46, +0x20, 0x88, 0x10, 0x58, 0x10, 0x46, 0xC1, 0xB6, +0x10, 0x58, 0x80, 0x00, 0x00, 0x44, 0x44, 0x80, +0x01, 0xB6, 0x5A, 0x00, 0x10, 0x58, 0x46, 0xEA, +0x00, 0x44, 0x04, 0x8C, 0x01, 0xB6, 0x10, 0x40, +0x00, 0x92, 0xFF, 0x83, 0x21, 0x58, 0x4F, 0xDD, +0x01, 0x84, 0x40, 0x08, 0x00, 0x92, 0x10, 0xAE, +0x21, 0x58, 0x4F, 0xDD, 0xE2, 0xB6, 0x08, 0x08, +0x4F, 0xDD, 0x00, 0x92, 0x04, 0x08, 0x21, 0x58, +0x02, 0xB6, 0x01, 0x84, 0xC2, 0xB6, 0x00, 0x92, +0xBD, 0xEA, 0x00, 0x92, 0x20, 0x00, 0x21, 0x58, +0x2F, 0x3E, 0x02, 0xB6, 0x90, 0xAF, 0x9B, 0xFF, +0x21, 0x58, 0x4F, 0xDD, 0x30, 0x44, 0x40, 0x0C, +0x62, 0xB6, 0x03, 0x03, 0x9E, 0xEA, 0x4F, 0xDD, +0xC1, 0xB6, 0x02, 0xB6, 0x46, 0xEA, 0x00, 0x92, +0x28, 0x8C, 0x10, 0x58, 0x00, 0x92, 0x01, 0xB6, +0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, +0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, +0x00, 0x92, 0x00, 0x92, 0xB1, 0x9D, 0x00, 0x92, +0xFD, 0x08, 0x68, 0x5A, 0x00, 0x4E, 0x00, 0x92, +0xBD, 0xEA, 0xBF, 0xFF, 0x60, 0x84, 0x4B, 0xEA, +0x20, 0x00, 0x21, 0x58, 0xC0, 0x00, 0x00, 0x58, +0x62, 0xB6, 0x00, 0xB4, 0x82, 0xB4, 0xBD, 0xEA, +0x42, 0x42, 0x04, 0x96, 0x82, 0xB6, 0x08, 0x3C, +0x9E, 0xEA, 0x4F, 0xDD, 0x4F, 0xDD, 0x62, 0xB6, +0x40, 0x08, 0x21, 0x58, 0x00, 0x92, 0xD0, 0xAE, +0x21, 0x58, 0x4F, 0xDD, 0x81, 0x84, 0x04, 0x08, +0x00, 0x92, 0x82, 0xB6, 0x00, 0x92, 0x62, 0xB6, +0x41, 0xB6, 0x40, 0xFA, 0x00, 0xFC, 0xA0, 0xFC, +0xE8, 0xFF, 0x13, 0x3C, 0x10, 0x44, 0x04, 0xC9, +0x02, 0xD5, 0xAA, 0x55, 0x18, 0x3C, 0x20, 0x84, +0x41, 0xDD, 0xF6, 0x0C, 0x60, 0x00, 0x10, 0x22, +0x04, 0x00, 0x16, 0x4E, 0x06, 0xD5, 0x20, 0xFA, +0x60, 0x00, 0x10, 0x22, 0x04, 0xE9, 0x39, 0xE4, +0x10, 0x12, 0x28, 0xFA, 0x10, 0x22, 0x60, 0x00, +0x16, 0x4E, 0x61, 0x00, 0x28, 0x84, 0x04, 0x00, +0x10, 0x22, 0x06, 0xD5, 0x2F, 0xE4, 0x61, 0x00, +0x2E, 0x84, 0x04, 0xE9, 0x61, 0x00, 0x10, 0x12, +0x8A, 0x0C, 0x14, 0x3C, 0x06, 0x00, 0x16, 0x4E, +0xD0, 0x02, 0x10, 0x44, 0x8A, 0x0C, 0x18, 0x3C, +0x8B, 0x0C, 0x14, 0x3C, 0x06, 0x00, 0x16, 0x4E, +0x00, 0x04, 0x10, 0x44, 0x8B, 0x0C, 0x18, 0x3C, +0x15, 0x00, 0x10, 0x22, 0x02, 0xE9, 0x2B, 0xE4, +0x10, 0x22, 0x05, 0xD5, 0x14, 0x4E, 0x15, 0x00, +0x2A, 0x84, 0x05, 0x00, 0x15, 0x00, 0x10, 0x12, +0x19, 0x00, 0x10, 0x22, 0x10, 0x00, 0x10, 0x12, +0x40, 0xE2, 0x1F, 0x44, 0x20, 0x01, 0x10, 0x12, +0x10, 0x12, 0x24, 0x84, 0x23, 0x84, 0x12, 0x00, +0x21, 0x01, 0x10, 0x12, 0x10, 0x12, 0x20, 0x84, +0x17, 0x3E, 0x6A, 0x01, 0x10, 0x12, 0x9C, 0xFF, +0x80, 0xFC, 0x16, 0x01, 0x0F, 0x3C, 0x00, 0xFC, +0x08, 0x3E, 0xFC, 0xFF, 0x20, 0x84, 0x54, 0x00, +0x42, 0xAE, 0x46, 0xAE, 0x80, 0xFC, 0x40, 0xAC, +0x45, 0xDD, 0x40, 0xFC, 0xFD, 0xFE, 0xFF, 0x49, +0x9B, 0xFF, 0xFF, 0x49, 0xC1, 0xFE, 0xFF, 0x49, +0x9D, 0x1B, 0x08, 0x3E, 0x3C, 0x00, 0x10, 0x50, +0x90, 0x18, 0x20, 0x85, 0x00, 0x4C, 0x06, 0x00, +0x7F, 0x3E, 0xFE, 0xFF, 0x37, 0xEA, 0xAC, 0xFF, +0x00, 0x49, 0xA5, 0xEA, 0x93, 0x10, 0x85, 0x13, +0xFF, 0x49, 0x00, 0x80, 0x2B, 0xEA, 0xE1, 0xFE, +0x08, 0xC0, 0x0E, 0x96, 0x94, 0x0D, 0x04, 0x3C, +0x05, 0x00, 0x07, 0x4E, 0x17, 0x3E, 0x21, 0x84, +0x00, 0x84, 0x9A, 0xFF, 0x0C, 0x00, 0x0E, 0x3C, +0xA0, 0xFF, 0x07, 0x3E, 0xA2, 0xFF, 0x07, 0x3E, +0x54, 0x00, 0x68, 0x3E, 0xB1, 0xFF, 0x07, 0x2E, +0x97, 0x3E, 0x05, 0xC0, 0xFF, 0x49, 0xB1, 0xFF, +0x07, 0x2E, 0x6D, 0xFE, 0x0D, 0xC0, 0x9E, 0xFF, +0x32, 0xAE, 0x02, 0x84, 0x31, 0x0D, 0x04, 0x3C, +0x00, 0x96, 0xBA, 0xF8, 0x4D, 0xDD, 0xF0, 0xC0, +0x97, 0x3E, 0x1F, 0xF9, 0xD0, 0xD5, 0x9E, 0xFF, +0x9E, 0xFF, 0x07, 0x2E, 0x32, 0xA6, 0x08, 0xC8, +0x06, 0x02, 0x08, 0x5A, 0x64, 0x00, 0x00, 0x44, +0xC6, 0xD5, 0x13, 0xF9, 0x00, 0x54, 0x26, 0xEA, +0x32, 0xC0, 0x00, 0x40, 0x20, 0x5A, 0xB2, 0xA6, +0x44, 0xDD, 0x30, 0x02, 0xEE, 0x80, 0x10, 0x50, +0x1F, 0x96, 0x0F, 0xA4, 0x0F, 0xA4, 0x25, 0xC0, +0x08, 0x5A, 0x1F, 0x96, 0x32, 0xAE, 0x04, 0x01, +0x0F, 0xA4, 0x21, 0xD5, 0x08, 0x5A, 0x1F, 0x96, +0x15, 0xCA, 0x20, 0x03, 0x99, 0xFF, 0x00, 0x22, +0x18, 0xE8, 0x06, 0xE4, 0x03, 0xC0, 0x4B, 0xDD, +0x16, 0xD5, 0xB0, 0xAC, 0x00, 0x00, 0x23, 0x22, +0x5D, 0x80, 0x10, 0x22, 0xF0, 0xAC, 0xD1, 0x9C, +0x0E, 0xE8, 0x22, 0xE0, 0x01, 0x84, 0x30, 0xAC, +0x0A, 0xD5, 0x32, 0xAE, 0x07, 0x01, 0x28, 0x5A, +0x04, 0xC0, 0x4B, 0xDD, 0xE0, 0xF8, 0x00, 0x84, +0x00, 0x84, 0x03, 0xD5, 0xB2, 0xA6, 0x30, 0xAC, +0x0D, 0x01, 0x28, 0x5A, 0xBB, 0x0C, 0x14, 0x3C, +0x06, 0x00, 0x17, 0x4E, 0x0C, 0x0D, 0x10, 0x3C, +0xE9, 0xFF, 0x1B, 0x3C, 0xAC, 0x0C, 0x04, 0x3C, +0x28, 0x5A, 0x08, 0xD5, 0x40, 0x84, 0x0A, 0x02, +0xE9, 0xFF, 0x2B, 0x3C, 0x31, 0x0D, 0x04, 0x3C, +0x00, 0x96, 0x5E, 0xF8, 0x00, 0x3C, 0x06, 0xD5, +0x0B, 0x3C, 0xBB, 0x0C, 0x0E, 0xD5, 0xE9, 0xFF, +0x32, 0xA6, 0x0D, 0xC0, 0x20, 0x84, 0x0B, 0xC0, +0x17, 0x3E, 0x70, 0xAC, 0xE2, 0x85, 0x9E, 0xFF, +0x86, 0xBF, 0x07, 0x4C, 0x64, 0x00, 0x00, 0x44, +0xA3, 0x3C, 0xB3, 0xF8, 0xA2, 0x4E, 0xEC, 0xFF, +0x20, 0x84, 0x09, 0x00, 0xEC, 0xFF, 0x1B, 0x3C, +0xAA, 0x2C, 0x00, 0x49, 0x5D, 0xFF, 0xFF, 0x48, +0x08, 0x5A, 0x38, 0xA6, 0x00, 0x3C, 0x0B, 0x01, +0x08, 0x5A, 0xDA, 0x0B, 0x00, 0x49, 0x07, 0x07, +0xA3, 0x10, 0xA2, 0x06, 0xA0, 0xF8, 0x00, 0x80, +0xE2, 0x85, 0x38, 0xA6, 0x4D, 0xBF, 0x07, 0x4C, +0x08, 0x5A, 0x38, 0xA6, 0x10, 0x3C, 0x0E, 0x01, +0x9D, 0xEA, 0x45, 0x0C, 0xA8, 0x3C, 0x40, 0x85, +0x00, 0x84, 0xCA, 0x0D, 0x00, 0x80, 0x93, 0x10, +0xA7, 0x3E, 0x4A, 0xEA, 0x41, 0xDD, 0xA5, 0xFF, +0x10, 0x22, 0x12, 0x8C, 0x23, 0xE4, 0x07, 0x00, +0x60, 0xF8, 0x2A, 0xE8, 0x2B, 0x3C, 0x40, 0x84, +0x40, 0x81, 0xF0, 0xFF, 0xA3, 0x4E, 0x5E, 0xF8, +0x5F, 0xF8, 0x03, 0x00, 0x56, 0x07, 0x04, 0x3C, +0xE7, 0x0B, 0x08, 0x3C, 0xF0, 0xFF, 0x07, 0x3C, +0xE6, 0x0C, 0x08, 0x3C, 0xB7, 0x2B, 0x00, 0x49, +0x26, 0xEA, 0x0C, 0xC0, 0x09, 0xC0, 0x04, 0x96, +0x46, 0x0C, 0x04, 0x3C, 0x0F, 0xFE, 0xFF, 0x49, +0x03, 0xC0, 0x00, 0x96, 0x64, 0xF8, 0x4D, 0xDD, +0x02, 0x00, 0x03, 0x22, 0x04, 0x00, 0x07, 0x4E, +0x32, 0xAC, 0x01, 0x9E, 0xAF, 0x2A, 0x00, 0x49, +0x54, 0x00, 0x00, 0x48, 0x10, 0x5A, 0x47, 0xA4, +0x47, 0xA4, 0x0B, 0x07, 0x08, 0x06, 0x10, 0x5A, +0x10, 0x5A, 0x47, 0xA4, 0x47, 0xA4, 0x05, 0x09, +0x10, 0x0B, 0x18, 0x5A, 0x4E, 0xDD, 0x53, 0xDD, +0x51, 0xDD, 0x41, 0x84, 0x49, 0xDD, 0x46, 0xDD, +0xDA, 0x0B, 0x00, 0x3C, 0x36, 0x09, 0x00, 0x5A, +0x00, 0x84, 0x48, 0xEA, 0x31, 0xD5, 0x5C, 0xDD, +0x10, 0x5A, 0x47, 0xA4, 0x47, 0xA4, 0x2F, 0x08, +0x05, 0x0C, 0x18, 0x5A, 0x20, 0x80, 0x00, 0x84, +0x47, 0xA4, 0x07, 0xD5, 0x07, 0x0D, 0x18, 0x5A, +0x55, 0x01, 0x10, 0x02, 0x7E, 0xEA, 0x01, 0x84, +0x47, 0xA4, 0x20, 0xD5, 0x05, 0x0E, 0x18, 0x5A, +0x66, 0x2E, 0x00, 0x49, 0x07, 0xA4, 0x1A, 0xD5, +0x05, 0x0F, 0x08, 0x5A, 0x06, 0x2F, 0x00, 0x49, +0x00, 0x49, 0x14, 0xD5, 0x40, 0x81, 0xA3, 0x06, +0x8B, 0x13, 0x00, 0x49, 0x0A, 0x00, 0xA3, 0x4E, +0x63, 0x04, 0x1C, 0x3C, 0xF0, 0x46, 0x49, 0x9C, +0x1E, 0x3C, 0x81, 0x00, 0xFF, 0x83, 0x63, 0x04, +0x56, 0x07, 0x14, 0x3C, 0xE7, 0x0B, 0x18, 0x3C, +0x0E, 0xF8, 0x4D, 0xDD, 0xBF, 0x2B, 0x00, 0x49, +0x49, 0x0C, 0x04, 0x3C, 0x91, 0x2F, 0x00, 0x49, +0x02, 0x4E, 0x50, 0xDD, 0x32, 0xA6, 0xD5, 0xFE, +0x05, 0x01, 0x08, 0x5A, 0xFF, 0x49, 0x00, 0x84, +0x00, 0x84, 0x97, 0xFE, 0xFF, 0x48, 0x30, 0xAC, +0x40, 0xFC, 0xCB, 0xFE, 0xC2, 0x80, 0x40, 0x84, +0x0D, 0xD5, 0x22, 0x80, 0x01, 0x00, 0x64, 0x0A, +0x63, 0x1A, 0xD9, 0x9C, 0x90, 0x3C, 0x01, 0x80, +0x9C, 0x99, 0x4A, 0x00, 0x69, 0xE0, 0x49, 0x9C, +0x91, 0x9C, 0xF6, 0xE9, 0x49, 0x00, 0x30, 0x3C, +0x09, 0xE8, 0x43, 0xE0, 0x00, 0x84, 0x80, 0x40, +0x00, 0x89, 0xF6, 0x99, 0xC7, 0x99, 0x86, 0x80, +0xEE, 0xD5, 0x60, 0x84, 0xD0, 0x00, 0x10, 0x02, +0xDB, 0x00, 0x60, 0x02, 0xB6, 0x00, 0x10, 0x12, +0xBB, 0x00, 0x60, 0x12, 0x44, 0xFC, 0xC0, 0xFC, +0x49, 0x00, 0x90, 0x3C, 0x4A, 0x00, 0x60, 0x3C, +0x40, 0x80, 0x00, 0x84, 0x94, 0x17, 0x58, 0x3E, +0x8F, 0x50, 0x2D, 0xEA, 0x27, 0xD5, 0x04, 0x80, +0x01, 0x80, 0xA0, 0x54, 0x0A, 0x84, 0x30, 0x40, +0x08, 0x00, 0xA2, 0x4E, 0xF3, 0x80, 0x31, 0x50, +0x11, 0x8D, 0x32, 0x38, 0x06, 0xD5, 0x68, 0x90, +0xF3, 0x80, 0x31, 0x50, 0x01, 0x8D, 0x32, 0x38, +0x6E, 0xE4, 0xD8, 0x96, 0x72, 0x38, 0x05, 0xE8, +0x74, 0x38, 0x01, 0x1D, 0x49, 0x9C, 0x09, 0x0D, +0x26, 0xE0, 0xC8, 0x99, 0x28, 0x80, 0xE6, 0xE9, +0x06, 0xD5, 0xC6, 0x98, 0x01, 0x80, 0x70, 0x2A, +0x09, 0x01, 0x72, 0x38, 0x01, 0x4C, 0x01, 0x9C, +0x91, 0x9C, 0xFB, 0xFF, 0x03, 0xE8, 0x49, 0xE0, +0xEF, 0xD5, 0x20, 0x84, 0x44, 0xFC, 0xC4, 0xFC, +0x00, 0x80, 0x2F, 0x44, 0x28, 0x3C, 0x58, 0xEA, +0x11, 0x02, 0xC9, 0x0B, 0x01, 0x96, 0xB0, 0x80, +0x12, 0x4E, 0x84, 0xF0, 0x41, 0x22, 0xF0, 0x00, +0x28, 0x3E, 0xB3, 0x80, 0x5C, 0xCC, 0x90, 0x00, +0xB4, 0x80, 0x11, 0x22, 0x02, 0x00, 0x91, 0x02, +0x24, 0x84, 0x14, 0x42, 0x00, 0x80, 0x6F, 0x44, +0x34, 0xEA, 0xE3, 0x80, 0x80, 0x50, 0x4B, 0xD5, +0xA1, 0x38, 0xB6, 0x00, 0x8A, 0xE0, 0x11, 0xA1, +0xA1, 0x38, 0x09, 0xE9, 0x81, 0x22, 0x11, 0xA1, +0x0A, 0x89, 0xB5, 0x80, 0x02, 0xE8, 0x88, 0xE0, +0x01, 0x9C, 0xA1, 0x84, 0xB0, 0x80, 0x81, 0x22, +0xEE, 0xE9, 0x08, 0xE0, 0x04, 0xF5, 0x04, 0xCD, +0x0F, 0xD5, 0x2B, 0x96, 0x10, 0x80, 0x03, 0x02, +0x0A, 0x06, 0x00, 0x5A, 0x10, 0x80, 0x03, 0x22, +0x0A, 0xE9, 0x0B, 0xE4, 0x10, 0x80, 0x03, 0x22, +0x06, 0xE8, 0x0F, 0xE4, 0x11, 0x05, 0x01, 0x38, +0x09, 0x05, 0x01, 0x38, 0x51, 0x38, 0x21, 0xD5, +0x01, 0x22, 0x11, 0x05, 0x2C, 0xFE, 0xBE, 0x80, +0x00, 0x40, 0x9B, 0xEA, 0xA0, 0x44, 0xB6, 0x14, +0x03, 0x96, 0x20, 0x4E, 0x09, 0x05, 0x01, 0x38, +0xA4, 0x00, 0x08, 0x3E, 0x11, 0x05, 0x51, 0x38, +0x11, 0x05, 0x80, 0x38, 0x01, 0x14, 0x55, 0x40, +0xC5, 0xE0, 0xA8, 0x8A, 0x61, 0x38, 0x09, 0xE8, +0x00, 0x38, 0x11, 0x05, 0x65, 0x40, 0x01, 0x05, +0xB0, 0x9B, 0x01, 0x18, 0x21, 0x9D, 0xB3, 0x97, +0x89, 0xE0, 0x49, 0x9C, 0x91, 0x00, 0xF2, 0x4E, +0x05, 0x80, 0xA0, 0x84, 0xA1, 0x22, 0xC0, 0xD5, +0x91, 0x02, 0xB4, 0x80, 0x11, 0xA4, 0x02, 0x00, +0x24, 0x40, 0x00, 0x85, 0x14, 0x50, 0x00, 0xA4, +0x4F, 0x44, 0x01, 0x80, 0x87, 0xF0, 0x00, 0x80, +0x85, 0xF2, 0x86, 0xF1, 0x01, 0x80, 0x8F, 0x14, +0x8F, 0x14, 0xC8, 0x83, 0x83, 0xF4, 0x02, 0x80, +0x03, 0x80, 0x1F, 0xB7, 0x11, 0x22, 0x66, 0xD5, +0x61, 0x98, 0xB4, 0x80, 0x03, 0xC0, 0x70, 0x4C, +0x91, 0x9C, 0xC1, 0x84, 0x11, 0x22, 0x89, 0x88, +0x41, 0xE0, 0xB5, 0x80, 0x69, 0x9D, 0xF5, 0xE9, +0xB0, 0x80, 0x11, 0x22, 0x04, 0xE8, 0xA1, 0xE0, +0x40, 0x84, 0x88, 0x80, 0x08, 0xCE, 0xF5, 0xD5, +0xB9, 0xEA, 0x04, 0xF1, 0x34, 0xEA, 0x0B, 0x97, +0x09, 0x15, 0x41, 0x38, 0x20, 0x02, 0x3C, 0xD5, +0x20, 0x5A, 0x10, 0x00, 0x20, 0x22, 0x0A, 0x06, +0x4B, 0xE4, 0x10, 0x00, 0x20, 0x22, 0x0C, 0xE9, +0x4F, 0xE4, 0x10, 0x00, 0xB9, 0xEA, 0x08, 0xE8, +0x22, 0x38, 0x2D, 0xEA, 0x22, 0x38, 0x11, 0x15, +0x29, 0xD5, 0x09, 0x15, 0x68, 0x3E, 0xB9, 0xEA, +0x43, 0x38, 0xC4, 0x1E, 0x78, 0x3E, 0x11, 0x15, +0x21, 0x22, 0xA4, 0x00, 0x10, 0x44, 0xBE, 0x80, +0xA4, 0xFE, 0x20, 0x4E, 0x21, 0x40, 0x87, 0xEA, +0x93, 0x96, 0x96, 0x10, 0x09, 0x15, 0x23, 0x38, +0x51, 0x40, 0x01, 0xF2, 0x23, 0x38, 0x00, 0x28, +0x43, 0x38, 0x11, 0x15, 0x8A, 0x9A, 0x11, 0x95, +0x03, 0xF4, 0x94, 0x9A, 0x0B, 0xE8, 0x82, 0xE0, +0x11, 0x15, 0x13, 0x38, 0x01, 0x95, 0x23, 0x38, +0x20, 0x4E, 0x50, 0x44, 0x4A, 0x9A, 0x69, 0x9A, +0x83, 0xF1, 0x4B, 0x96, 0x02, 0xF2, 0x3F, 0xB4, +0x01, 0xF5, 0x49, 0x9C, 0x05, 0xF1, 0x3F, 0xB6, +0x06, 0xF4, 0x49, 0x88, 0x82, 0xF2, 0x69, 0x99, +0xEF, 0x41, 0x81, 0xF5, 0x09, 0x89, 0x00, 0x10, +0x9F, 0xB4, 0x02, 0xF2, 0x71, 0x40, 0x07, 0xF5, +0x85, 0xE0, 0x00, 0x28, 0xC0, 0x84, 0x04, 0xE8, +0x9F, 0xD5, 0xA6, 0x80, 0x03, 0x80, 0xAF, 0x04, +0xC9, 0x0B, 0xA8, 0x3C, 0x68, 0x3C, 0x03, 0xD5, +0xC4, 0xFC, 0xC9, 0x0B, 0x4B, 0xDD, 0x40, 0xFC, +0x10, 0x3C, 0x05, 0xC8, 0x48, 0x96, 0xFA, 0x0B, +0x17, 0x3C, 0x03, 0xD5, 0x50, 0xDD, 0xDC, 0xFF, +0x10, 0x3C, 0x04, 0xC8, 0x28, 0x92, 0xFA, 0x0B, +0x48, 0x00, 0x80, 0x3C, 0xB2, 0x10, 0x74, 0x3C, +0x70, 0x21, 0x60, 0x2E, 0x00, 0x84, 0x2D, 0xEA, +0x50, 0x52, 0x8C, 0xEA, 0x1B, 0xD5, 0x20, 0x80, +0x02, 0xCE, 0x03, 0xCF, 0x32, 0x38, 0x08, 0xC9, +0x90, 0x44, 0x01, 0x01, 0x34, 0x40, 0x20, 0x4E, +0x0D, 0xD5, 0x01, 0x8C, 0x11, 0x01, 0x92, 0x38, +0x11, 0x01, 0x31, 0x38, 0x20, 0x4E, 0xA0, 0x44, +0x95, 0x40, 0xCC, 0xFE, 0x34, 0x42, 0x01, 0x24, +0x65, 0x92, 0x73, 0x94, 0x31, 0x38, 0xDB, 0x96, +0x01, 0x9C, 0x09, 0x01, 0xE5, 0xE9, 0x08, 0xE0, +0x00, 0xFC, 0xC0, 0xFC, 0x00, 0x50, 0x41, 0xDD, +0x83, 0xA4, 0x3A, 0x00, 0xAC, 0x0E, 0x18, 0x3E, +0x20, 0x12, 0x4C, 0xEA, 0x20, 0x02, 0xF7, 0xFF, +0x8C, 0xAE, 0x1E, 0x00, 0x8D, 0xAE, 0x40, 0x84, +0x20, 0x12, 0x84, 0xA4, 0x86, 0xA4, 0xF8, 0xFF, +0xF9, 0xFF, 0x20, 0x12, 0x20, 0x12, 0x85, 0xA4, +0x87, 0xA4, 0xFA, 0xFF, 0xFB, 0xFF, 0x20, 0x12, +0x95, 0x00, 0x20, 0x02, 0xFC, 0xFF, 0x20, 0x12, +0x26, 0x00, 0x20, 0x02, 0x20, 0x02, 0x88, 0xAC, +0x89, 0xAC, 0x27, 0x00, 0x94, 0x00, 0x20, 0x02, +0x20, 0x02, 0x8E, 0xAE, 0x8C, 0xAC, 0xA6, 0x00, +0x16, 0x00, 0x20, 0x02, 0x20, 0x02, 0x8D, 0xAC, +0x8E, 0xAC, 0x1A, 0x00, 0x17, 0x00, 0x20, 0x02, +0x22, 0x00, 0x00, 0x02, 0x00, 0x12, 0x8F, 0xAC, +0x80, 0xFC, 0x08, 0x80, 0x74, 0xEA, 0x20, 0xFC, +0x49, 0x96, 0x01, 0x96, 0x2F, 0x2E, 0x09, 0xC2, +0x42, 0xE4, 0xAF, 0xFF, 0x20, 0x3C, 0x05, 0xE9, +0x02, 0x98, 0xC7, 0x0D, 0x48, 0x2E, 0x01, 0x96, +0x40, 0x4C, 0xD0, 0x0E, 0x40, 0x84, 0x1E, 0x00, +0x88, 0x21, 0x38, 0x3E, 0x38, 0x00, 0x60, 0x44, +0x71, 0x42, 0xA2, 0x80, 0x88, 0x3E, 0x24, 0x18, +0xE8, 0x88, 0x74, 0x21, 0xFC, 0x97, 0xFC, 0xA7, +0x71, 0x20, 0x08, 0xC7, 0xE4, 0xE0, 0x00, 0x80, +0x18, 0xAE, 0x03, 0xE9, 0x58, 0xAF, 0x02, 0xD5, +0x31, 0x50, 0x91, 0x9C, 0x28, 0x5A, 0x38, 0x80, +0x00, 0x3E, 0xEE, 0x0F, 0x38, 0x2E, 0xD0, 0x0E, +0x30, 0x4C, 0xD2, 0x0E, 0x40, 0x84, 0x16, 0x80, +0x46, 0x03, 0x08, 0x3E, 0x0A, 0xD5, 0x82, 0x80, +0x00, 0x00, 0x60, 0x20, 0x03, 0xE9, 0xC3, 0xE0, +0x02, 0xD5, 0x40, 0xAE, 0x91, 0x9C, 0x00, 0xAF, +0x64, 0x3C, 0x01, 0x9C, 0x46, 0xE0, 0x7A, 0x0C, +0x10, 0x3E, 0xF4, 0xE9, 0xA0, 0xFC, 0xD2, 0x0E, +0x47, 0xDD, 0x00, 0xFC, 0x12, 0x02, 0x21, 0x50, +0x17, 0x7F, 0x11, 0x02, 0x2C, 0xEA, 0xD6, 0xA4, +0x59, 0x98, 0x0A, 0x8C, 0x11, 0x02, 0x42, 0xAC, +0xD6, 0xA4, 0x18, 0x7F, 0x43, 0xAC, 0x59, 0x98, +0x1A, 0x7F, 0x11, 0x02, 0x59, 0x98, 0xD6, 0xA4, +0x11, 0x02, 0x44, 0xAC, 0xD6, 0xA4, 0x19, 0x7F, +0x45, 0xAC, 0x59, 0x98, 0x1B, 0x7F, 0x11, 0x02, +0x59, 0x98, 0xD6, 0xA4, 0x11, 0x02, 0x46, 0xAC, +0xD6, 0xA4, 0xA9, 0x7F, 0x47, 0xAC, 0x59, 0x98, +0x0E, 0xC8, 0xC1, 0xEA, 0x0C, 0xC0, 0x4B, 0xDD, +0x32, 0x7F, 0x01, 0x02, 0x11, 0x02, 0xD7, 0xA4, +0x97, 0xA4, 0xA8, 0x7F, 0x51, 0x98, 0x18, 0x98, +0x49, 0x96, 0x01, 0x96, 0x41, 0xDD, 0xE7, 0xF8, +0x1A, 0x02, 0x00, 0x50, 0x18, 0x3E, 0x87, 0xA4, +0x4C, 0xEA, 0xAC, 0x0E, 0x20, 0x02, 0x88, 0xAC, +0x89, 0xAC, 0x5E, 0x00, 0xB6, 0x7F, 0x20, 0x02, +0x85, 0xA4, 0x8C, 0xAC, 0x86, 0xA4, 0x8D, 0xAC, +0x20, 0x02, 0x8E, 0xAC, 0x00, 0x02, 0x27, 0x7F, +0x8F, 0xAC, 0xF2, 0x00, 0x08, 0x80, 0x00, 0x12, +0x0D, 0xAE, 0x00, 0x84, 0x00, 0xFC, 0x80, 0xFC, +0xE0, 0x0C, 0x20, 0x3C, 0x20, 0x00, 0x08, 0x3E, +0x94, 0x96, 0x41, 0xA6, 0x11, 0x4C, 0x82, 0xAE, +0x22, 0x84, 0x06, 0x00, 0x81, 0xAE, 0x43, 0xAE, +0x83, 0xA6, 0x09, 0xD5, 0x02, 0xC1, 0x05, 0xCA, +0x40, 0xAE, 0x21, 0x84, 0x91, 0x9E, 0x03, 0xD5, +0x80, 0xFC, 0x83, 0xAE, 0x00, 0x2E, 0x00, 0xFC, +0x00, 0x5A, 0x93, 0x11, 0x06, 0xC0, 0x0B, 0x01, +0x0B, 0x02, 0x00, 0x5A, 0x0F, 0x03, 0x08, 0x5A, +0x00, 0x3C, 0x0A, 0xD5, 0x0C, 0xD5, 0xCA, 0x0C, +0x32, 0x0D, 0x00, 0x3C, 0x00, 0x3C, 0x09, 0xD5, +0x06, 0xD5, 0xE1, 0x0C, 0xE2, 0x0C, 0x00, 0x3C, +0x00, 0x3C, 0x03, 0xD5, 0x80, 0xFC, 0xCA, 0x0C, +0x01, 0x84, 0x00, 0xFC, 0x00, 0xFC, 0x80, 0xFC, +0xD2, 0x0C, 0x20, 0x3C, 0x80, 0x11, 0x18, 0x3E, +0x13, 0x80, 0x00, 0x10, 0x8A, 0xAC, 0x01, 0x84, +0x81, 0xEA, 0x09, 0xAC, 0x00, 0xFC, 0x80, 0xFC, +0x08, 0x5A, 0xC1, 0xEA, 0x15, 0xD5, 0x03, 0x01, +0xE5, 0x0C, 0x34, 0x3C, 0x62, 0xE0, 0x9C, 0xEA, +0x03, 0x84, 0x03, 0xE8, 0x14, 0x3C, 0x08, 0xD5, +0x00, 0x3C, 0xE4, 0x0C, 0x20, 0xE0, 0xBF, 0x0B, +0x02, 0x84, 0x07, 0xE8, 0x20, 0x84, 0x5E, 0xF8, +0xC8, 0x08, 0x18, 0x3C, 0x03, 0x84, 0x03, 0xD5, +0x80, 0xFC, 0x58, 0xF8, 0x20, 0x84, 0x20, 0xFC, +0xDB, 0xFF, 0x1B, 0x3C, 0x04, 0x0C, 0x34, 0x3C, +0xBF, 0x0B, 0x10, 0x3C, 0x06, 0xE9, 0x61, 0xE0, +0x03, 0x0C, 0x24, 0x3C, 0x40, 0xE0, 0x79, 0xEA, +0x68, 0x3E, 0x12, 0xE8, 0x31, 0xA4, 0x80, 0x11, +0x0E, 0x01, 0x08, 0x5A, 0xD2, 0x0C, 0x10, 0x3C, +0x3F, 0xF8, 0x72, 0xAC, 0x31, 0xAC, 0x02, 0x84, +0x03, 0x12, 0x00, 0x84, 0x81, 0xEA, 0x08, 0x00, +0x66, 0x00, 0x00, 0x48, 0x28, 0x5A, 0x74, 0xEA, +0x24, 0x3C, 0x09, 0x02, 0x41, 0xE0, 0x12, 0x0D, +0x14, 0x3C, 0x5E, 0xE9, 0x09, 0xD5, 0xC8, 0x0C, +0x0D, 0x01, 0x28, 0x5A, 0xD8, 0x0C, 0x24, 0x3C, +0x55, 0xE9, 0x41, 0xE0, 0xD6, 0x0C, 0x14, 0x3C, +0x20, 0xE0, 0x79, 0xEA, 0x28, 0xE8, 0xFF, 0x83, +0x2B, 0xEA, 0x4E, 0xD5, 0x0F, 0xC0, 0x16, 0x96, +0x20, 0x00, 0x60, 0x2E, 0x34, 0x3C, 0x0C, 0xCE, +0x79, 0xEA, 0xE5, 0x0C, 0x07, 0xE8, 0x60, 0xE0, +0x13, 0xF8, 0x01, 0x84, 0xC8, 0x08, 0x68, 0x3C, +0x40, 0xD5, 0x06, 0x80, 0xD4, 0x0C, 0x34, 0x3C, +0x06, 0xE9, 0x61, 0xE0, 0xD5, 0x0C, 0x14, 0x3C, +0xE4, 0xFF, 0x00, 0x4E, 0x00, 0x3C, 0x0C, 0xE8, +0x08, 0x3C, 0xD2, 0x0C, 0x01, 0x84, 0xC2, 0x08, +0x83, 0xFF, 0xFF, 0x49, 0x08, 0x3C, 0x00, 0x84, +0x29, 0xD5, 0xC8, 0x08, 0x44, 0xDD, 0x1D, 0xC2, +0xFC, 0x80, 0x00, 0x22, 0x40, 0xE0, 0x9C, 0xEA, +0x68, 0x3E, 0x17, 0xE8, 0x03, 0x22, 0x80, 0x11, +0x81, 0x9E, 0x02, 0x00, 0x06, 0x4E, 0xB2, 0xAC, +0x00, 0x02, 0x1D, 0x00, 0x10, 0x02, 0x3B, 0x80, +0xFF, 0x49, 0xB1, 0x80, 0x00, 0x84, 0xA1, 0xFE, +0x13, 0x00, 0x03, 0x10, 0x00, 0x84, 0xAD, 0xEA, +0x32, 0xAC, 0x31, 0xAC, 0x24, 0x3C, 0x0E, 0xD5, +0x90, 0xEA, 0xC6, 0x0C, 0xFF, 0x83, 0x41, 0xE0, +0x10, 0x3C, 0x08, 0xE8, 0x18, 0x3C, 0xD2, 0x0C, +0x03, 0xD5, 0xC2, 0x08, 0x02, 0xD5, 0x00, 0x84, +0xA0, 0xFC, 0x01, 0x84, 0x56, 0xDD, 0x40, 0xFC, +0x00, 0x80, 0x1F, 0x44, 0x39, 0xEA, 0x42, 0xAC, +0x20, 0x84, 0x43, 0xAC, 0x40, 0x84, 0x44, 0xAC, +0x48, 0x00, 0x90, 0x3C, 0x00, 0x80, 0x4F, 0x44, +0xFF, 0x7F, 0x30, 0x44, 0x58, 0x3E, 0x02, 0x80, +0x7F, 0xEA, 0xC4, 0x1E, 0x78, 0x3E, 0xC8, 0xEA, +0x24, 0xD5, 0xE0, 0x0E, 0x11, 0x81, 0x62, 0x38, +0x20, 0x4E, 0xE0, 0x45, 0x01, 0x01, 0xA4, 0x38, +0x01, 0x18, 0x6F, 0x40, 0xB3, 0x97, 0xCA, 0x8A, +0x09, 0x81, 0x60, 0x38, 0x86, 0xE0, 0x66, 0xEA, +0x5D, 0xEA, 0x02, 0xE8, 0xC3, 0xE0, 0x66, 0xEA, +0xBC, 0xEA, 0x02, 0xE8, 0x11, 0x81, 0xA2, 0x38, +0x11, 0x81, 0x63, 0x38, 0x01, 0x18, 0x65, 0x40, +0x63, 0x42, 0x6F, 0xEA, 0xB1, 0x96, 0x00, 0x08, +0x11, 0x81, 0x62, 0x38, 0x09, 0x81, 0x63, 0x38, +0x09, 0xE0, 0x01, 0x9C, 0x56, 0xDD, 0xDC, 0xE9, +0xC3, 0xAC, 0x02, 0xAD, 0x4B, 0xDD, 0x84, 0xAC, +0xC1, 0xEA, 0x0D, 0xC0, 0x04, 0xF8, 0x02, 0xC8, +0xDB, 0xFF, 0x07, 0x3C, 0x10, 0x3C, 0x07, 0xC0, +0xC9, 0xEA, 0xDB, 0x0C, 0xDC, 0xFF, 0x1B, 0x3C, +0xC0, 0xFC, 0xFF, 0x83, 0x55, 0xDD, 0x00, 0xFC, +0x00, 0x01, 0x00, 0x54, 0x14, 0x3C, 0x25, 0xC0, +0x17, 0x4E, 0xC0, 0x0B, 0x04, 0x3C, 0x22, 0x00, +0x04, 0x4E, 0xC1, 0x0B, 0x47, 0xDD, 0x1E, 0x00, +0x30, 0x3C, 0x5B, 0xEA, 0x1C, 0xFF, 0x5D, 0x07, +0x42, 0x40, 0x52, 0xEA, 0x24, 0xE2, 0xB7, 0x0C, +0x41, 0x22, 0x13, 0xE9, 0x81, 0xE0, 0xDA, 0x00, +0x21, 0x22, 0x04, 0xE8, 0x03, 0xD5, 0xDC, 0x00, +0xDB, 0x00, 0x21, 0x22, 0x30, 0x40, 0x54, 0xFE, +0xDA, 0xFE, 0x37, 0x8C, 0x00, 0x40, 0xDB, 0x96, +0x31, 0xEA, 0x07, 0x0C, 0x01, 0x84, 0x02, 0xD5, +0x00, 0xFC, 0x80, 0xFC, 0x80, 0xFC, 0x01, 0x84, +0x80, 0xFC, 0x00, 0xFC, 0x04, 0x3C, 0x00, 0xFC, +0x10, 0x3C, 0xA3, 0x0C, 0x20, 0xE0, 0xC2, 0x0B, +0x15, 0xE8, 0xFF, 0x83, 0x00, 0x22, 0xC2, 0xEA, +0x11, 0xC8, 0x00, 0x80, 0x0C, 0x80, 0x20, 0x00, +0x0F, 0x3E, 0x0E, 0xCA, 0xC0, 0xA4, 0xE4, 0xFF, +0xA2, 0x0C, 0x44, 0x3C, 0x40, 0xAD, 0x59, 0x9D, +0x05, 0xE8, 0x83, 0xE0, 0x30, 0x10, 0x61, 0x84, +0x80, 0xAC, 0x0C, 0x80, 0x20, 0xFC, 0x80, 0xFC, +0xC1, 0x97, 0x45, 0xDD, 0x06, 0xC8, 0x50, 0xDD, +0x99, 0x0D, 0x14, 0x3C, 0x06, 0xFF, 0x00, 0x4E, +0x08, 0x3E, 0x24, 0xE8, 0x20, 0xB4, 0x3C, 0x00, +0xFF, 0x7F, 0x20, 0x44, 0x1E, 0x00, 0x11, 0x4C, +0x4B, 0x3C, 0x80, 0x84, 0x44, 0x3C, 0xEA, 0xFF, +0x50, 0x3C, 0x99, 0x0D, 0xA4, 0xE0, 0xBE, 0x0B, +0x34, 0x3C, 0x09, 0xE8, 0x09, 0x9D, 0x14, 0x0D, +0x61, 0xE0, 0x80, 0xB6, 0x40, 0xB6, 0x05, 0xE8, +0x20, 0x84, 0x0A, 0xF8, 0x04, 0x3C, 0x20, 0xB6, +0x70, 0x4C, 0xCA, 0x0C, 0x21, 0x84, 0xB3, 0x00, +0xA5, 0xFF, 0x17, 0x3E, 0xAE, 0x00, 0x00, 0x48, +0x63, 0x50, 0x22, 0xEA, 0x07, 0x3C, 0x8E, 0x03, +0x13, 0x22, 0xEA, 0xFF, 0x81, 0x9C, 0x06, 0x00, +0xEA, 0xFF, 0x2B, 0x3C, 0xF3, 0x4E, 0x01, 0xE0, +0x46, 0xDD, 0xA1, 0x00, 0x03, 0x01, 0x00, 0x46, +0x61, 0xEA, 0x59, 0xDD, 0x57, 0xDD, 0x52, 0xDD, +0x20, 0xB6, 0x20, 0x84, 0x42, 0xDD, 0xFF, 0x83, +0x0C, 0x00, 0x70, 0x12, 0x03, 0x12, 0x3B, 0x96, +0xAB, 0xEA, 0x98, 0x7F, 0x77, 0xA4, 0xB5, 0xA4, +0xB2, 0x10, 0x28, 0x3C, 0x23, 0x22, 0xA7, 0xEA, +0x13, 0x02, 0x98, 0x7F, 0x20, 0x4C, 0xA1, 0x7F, +0x23, 0x02, 0x11, 0xC0, 0x33, 0x22, 0x6E, 0x7F, +0x13, 0x22, 0xB1, 0x7E, 0x4B, 0x98, 0xA2, 0x7F, +0xE0, 0x01, 0x40, 0x46, 0xA7, 0xFE, 0x0C, 0xF8, +0x57, 0xFE, 0x49, 0x96, 0x10, 0xD5, 0xB4, 0xA4, +0x6E, 0x7F, 0x23, 0x02, 0xB1, 0x7E, 0x13, 0x22, +0xE0, 0x01, 0x30, 0x46, 0x90, 0x96, 0x44, 0xEA, +0xFF, 0x83, 0x60, 0xEA, 0x49, 0x96, 0x9F, 0xFE, +0x23, 0x02, 0x57, 0xFE, 0x27, 0x3E, 0x64, 0x7F, +0x42, 0xDD, 0xAA, 0xFF, 0x20, 0x84, 0x42, 0xA8, +0x17, 0x3E, 0xC9, 0xEA, 0xFF, 0x83, 0xA5, 0xFF, +0x10, 0x3C, 0x7B, 0xF8, 0x10, 0x54, 0x09, 0x00, +0x59, 0xC1, 0x00, 0x81, 0x10, 0x50, 0x44, 0xDD, +0x30, 0x22, 0x46, 0x82, 0x2F, 0x3E, 0xDD, 0xFF, +0x71, 0x4C, 0xCE, 0xFF, 0x90, 0xFA, 0x28, 0xC0, +0xCB, 0xB8, 0xD4, 0xBC, 0x38, 0x5A, 0xD0, 0xA4, +0xCA, 0xA4, 0x4B, 0x9B, 0xD0, 0xAC, 0xB6, 0xEA, +0x31, 0x14, 0x4F, 0xDD, 0x61, 0x84, 0x09, 0x03, +0x08, 0x03, 0x31, 0x14, 0x0E, 0xA5, 0xCF, 0xA4, +0x19, 0x80, 0x20, 0x02, 0x08, 0x40, 0x42, 0x40, +0x21, 0x40, 0x2E, 0xFF, 0x50, 0x44, 0x08, 0x20, +0x10, 0x02, 0x00, 0xFF, 0xAE, 0xFE, 0x18, 0x80, +0x48, 0x96, 0xA7, 0xFE, 0x04, 0x0F, 0x21, 0x40, +0x43, 0xDD, 0x8F, 0xFE, 0x17, 0x80, 0x20, 0x14, +0x10, 0xA4, 0x2B, 0xD5, 0x9B, 0x00, 0x10, 0x44, +0x11, 0x9B, 0x00, 0x5A, 0x03, 0x01, 0x00, 0x46, +0x09, 0x03, 0x10, 0x14, 0x21, 0x84, 0x50, 0xAC, +0x08, 0x03, 0x10, 0x14, 0x11, 0x46, 0x42, 0xDD, +0x10, 0x58, 0x00, 0xF0, 0x10, 0x14, 0x1F, 0x80, +0x20, 0x3C, 0x17, 0x00, 0x10, 0x44, 0x19, 0x0D, +0x8E, 0xFE, 0xFF, 0xF0, 0xF2, 0x0C, 0x00, 0x3C, +0x00, 0x06, 0x21, 0x58, 0x10, 0x46, 0xD4, 0xBA, +0xCB, 0xB8, 0x80, 0x00, 0x20, 0x46, 0x08, 0xC0, +0x17, 0xFE, 0x30, 0x10, 0x03, 0xD5, 0xCB, 0xB8, +0x02, 0xD5, 0x01, 0x84, 0xA0, 0xFC, 0x00, 0x84, +0x45, 0xDD, 0x00, 0xFC, 0x0C, 0xC0, 0x00, 0x96, +0x20, 0x4C, 0x27, 0xF8, 0x00, 0x4E, 0x07, 0xC0, +0x1E, 0x3C, 0x94, 0xFF, 0x17, 0xD5, 0x0F, 0x00, +0x00, 0x01, 0x00, 0x02, 0xFF, 0x49, 0x16, 0xD5, +0x17, 0x2E, 0xAB, 0xFD, 0x18, 0x5A, 0x9A, 0xFF, +0x00, 0x3C, 0x04, 0x01, 0x14, 0x3C, 0x32, 0x0D, +0x10, 0x4C, 0x29, 0x0D, 0x00, 0x84, 0x0B, 0x40, +0x0E, 0x3C, 0xC9, 0xEA, 0xFF, 0x83, 0x0F, 0x00, +0xA5, 0xFF, 0x07, 0x3E, 0x03, 0xD5, 0x01, 0x84, +0xFF, 0xFE, 0xFF, 0x49, 0x00, 0xFC, 0x80, 0xFC, +0xC1, 0x08, 0x30, 0x3C, 0x41, 0xDD, 0x2E, 0xC3, +0x5F, 0x01, 0x20, 0x22, 0xFF, 0x83, 0x77, 0xEA, +0x09, 0xC0, 0x20, 0x4C, 0xCF, 0x01, 0x10, 0x22, +0xFC, 0xFD, 0x00, 0x4E, 0x20, 0x84, 0x03, 0xE8, +0x44, 0xDD, 0xAB, 0xEA, 0xEA, 0xFF, 0x07, 0x3C, +0xCD, 0x81, 0x30, 0x22, 0x4B, 0x3C, 0x01, 0x9D, +0x60, 0xE0, 0xEA, 0xFF, 0x00, 0x22, 0x5C, 0xE8, +0x30, 0x3C, 0xCF, 0x81, 0x60, 0xE0, 0xBE, 0x0B, +0x0F, 0x3E, 0x56, 0xE8, 0xC0, 0xA4, 0xE8, 0xFF, +0xDB, 0x96, 0xD9, 0x9E, 0x34, 0x4E, 0xC0, 0xAC, +0x10, 0x02, 0x4F, 0x00, 0xAB, 0xEA, 0xCD, 0x81, +0x40, 0xAC, 0x20, 0x84, 0x3D, 0xD5, 0x00, 0x84, +0xB4, 0xFF, 0x27, 0x2E, 0x00, 0x50, 0x41, 0xDD, +0x19, 0xC2, 0x8E, 0x03, 0x08, 0x00, 0x20, 0x22, +0xBE, 0x0B, 0x40, 0x3C, 0xD4, 0xFF, 0x1F, 0x3E, +0x0F, 0xE8, 0x82, 0xE0, 0x3B, 0x3C, 0xC7, 0xA4, +0x20, 0x22, 0xF4, 0xFF, 0x30, 0x22, 0x00, 0x80, +0x11, 0x9D, 0x06, 0x00, 0x62, 0xE0, 0x08, 0xAD, +0x06, 0xA4, 0x2E, 0xE8, 0x2B, 0xD5, 0x08, 0xAC, +0x29, 0xD5, 0xC8, 0xAC, 0xB6, 0x10, 0x28, 0x3C, +0x06, 0x00, 0x40, 0x22, 0xEA, 0xFF, 0x17, 0x3C, +0x5B, 0x3C, 0x49, 0x9D, 0x81, 0xE0, 0xEA, 0xFF, +0x10, 0x22, 0x16, 0xE8, 0x40, 0x3C, 0x08, 0x00, +0x81, 0xE0, 0xBE, 0x0B, 0x1F, 0x3E, 0x10, 0xE8, +0x08, 0xA5, 0xE8, 0xFF, 0x23, 0x97, 0x21, 0x9F, +0x44, 0x4E, 0x08, 0xAD, 0x06, 0xA4, 0x09, 0x00, +0x0B, 0x3C, 0x88, 0xAC, 0x01, 0x84, 0xEA, 0xFF, +0x0A, 0xD5, 0x7C, 0xF9, 0x99, 0x0D, 0x24, 0x3C, +0xE1, 0xFD, 0x00, 0x4E, 0x10, 0x3C, 0x04, 0xE8, +0xA7, 0xEA, 0x98, 0x0D, 0x80, 0xFC, 0x01, 0x84, +0x45, 0xDD, 0x40, 0xFC, 0x91, 0x54, 0x00, 0x81, +0x46, 0xDD, 0xFF, 0x00, 0x03, 0x01, 0x10, 0x46, +0x01, 0x83, 0x00, 0x04, 0x94, 0x17, 0x58, 0x3E, +0x00, 0x14, 0x3A, 0xEA, 0x00, 0x4E, 0x01, 0x83, +0x02, 0x02, 0xB4, 0xFE, 0x08, 0x5A, 0x10, 0x80, +0x10, 0x46, 0x13, 0x09, 0x08, 0x80, 0x88, 0x00, +0x00, 0x82, 0x10, 0x58, 0xC0, 0x83, 0x20, 0x50, +0xC0, 0xAC, 0x61, 0xB4, 0x70, 0x92, 0xC9, 0xA2, +0x04, 0x9C, 0xC1, 0xAC, 0xFA, 0x7F, 0x11, 0x4C, +0x7C, 0x00, 0x00, 0x48, 0x68, 0x80, 0x57, 0xEA, +0x0F, 0x00, 0x62, 0x52, 0x72, 0x22, 0x01, 0x80, +0xEB, 0xE4, 0x10, 0x80, 0x72, 0x22, 0x08, 0xE9, +0xEF, 0xE4, 0x10, 0x80, 0x03, 0xF8, 0x04, 0xE8, +0x0C, 0xD5, 0xE7, 0xB4, 0x20, 0x26, 0xA2, 0x44, +0x00, 0xA8, 0x70, 0x40, 0xFF, 0x83, 0xFA, 0x95, +0x77, 0x2E, 0x47, 0xB5, 0x75, 0x40, 0xAA, 0xFF, +0xD8, 0xAD, 0x0D, 0x1C, 0x06, 0x40, 0x12, 0x4C, +0x0F, 0x80, 0x40, 0x50, 0x02, 0xD5, 0x4E, 0x98, +0x01, 0x9C, 0x49, 0x9C, 0x09, 0x5A, 0xDA, 0x9C, +0x40, 0x46, 0xE0, 0x50, 0xC0, 0x84, 0x88, 0x00, +0x00, 0x02, 0x42, 0x58, 0x38, 0x3E, 0x26, 0x80, +0xE4, 0x80, 0x68, 0x03, 0xF0, 0x80, 0x53, 0x0C, +0x69, 0x97, 0x07, 0xB4, 0x05, 0xF8, 0x01, 0x96, +0x83, 0x97, 0x02, 0xE8, 0x01, 0x85, 0x01, 0x38, +0x20, 0xEA, 0x28, 0x9A, 0xFF, 0x83, 0xC0, 0xE0, +0x61, 0x38, 0x07, 0xE8, 0xAE, 0x9B, 0x01, 0x85, +0xB3, 0x97, 0x6F, 0xEA, 0x51, 0x38, 0xFF, 0x83, +0x11, 0x5A, 0x09, 0x85, 0xA4, 0xB4, 0x1C, 0xD0, +0xB0, 0x92, 0x07, 0xB4, 0x1D, 0x82, 0x02, 0x40, +0xC0, 0xE0, 0x20, 0xEA, 0x83, 0x97, 0x02, 0xE8, +0x21, 0x38, 0x09, 0x9C, 0xAA, 0x9A, 0x01, 0x81, +0xC2, 0xE0, 0xA1, 0xEA, 0x61, 0x38, 0x05, 0xE8, +0x00, 0x4E, 0x01, 0x81, 0x4A, 0x9C, 0xE6, 0xFF, +0x09, 0x81, 0x51, 0x38, 0x19, 0x5A, 0x24, 0x9D, +0x00, 0x49, 0xCE, 0xD2, 0x10, 0x46, 0x45, 0x02, +0x08, 0x3C, 0x03, 0x01, 0x00, 0x04, 0xBE, 0x0B, +0x68, 0x3C, 0x01, 0x83, 0x00, 0x66, 0xBF, 0x0B, +0x00, 0x14, 0x00, 0x01, 0x04, 0x3C, 0x01, 0x83, +0x0C, 0xE4, 0xDA, 0x0B, 0x92, 0x4E, 0x03, 0xE9, +0x08, 0x80, 0x05, 0x00, 0x07, 0xFA, 0xFF, 0x49, +0x40, 0xFC, 0xC0, 0xFC, 0x22, 0xEA, 0x45, 0xDD, +0x18, 0x00, 0x03, 0x22, 0x45, 0xEA, 0xE0, 0x84, +0x18, 0x00, 0x03, 0x12, 0x00, 0x46, 0x46, 0xDD, +0x59, 0xDD, 0x03, 0x01, 0xE0, 0x01, 0x20, 0x46, +0x52, 0xDD, 0x61, 0xEA, 0x00, 0x01, 0x10, 0x46, +0x43, 0xDD, 0xE1, 0xB6, 0x00, 0x01, 0x03, 0x02, +0x0C, 0x80, 0x00, 0x12, 0xFE, 0xFF, 0x10, 0x44, +0x00, 0x01, 0x03, 0x22, 0x5F, 0x01, 0x03, 0x12, +0x34, 0x01, 0x03, 0x02, 0x43, 0xDD, 0x0E, 0xFE, +0x1C, 0x80, 0x00, 0x14, 0x35, 0x01, 0x13, 0x02, +0x78, 0x00, 0x03, 0x22, 0x45, 0xEA, 0x48, 0x96, +0x57, 0xFE, 0xAE, 0xEA, 0x0F, 0xFE, 0x01, 0x96, +0x98, 0xEA, 0x43, 0xDD, 0x03, 0xF8, 0x0A, 0xA8, +0x49, 0xDD, 0x51, 0xDD, 0x4E, 0xDD, 0x70, 0xA4, +0xFF, 0x83, 0x41, 0x84, 0x49, 0xDD, 0x51, 0xDD, +0x07, 0x80, 0xF0, 0xA4, 0x18, 0x3E, 0x34, 0xEA, +0x04, 0xD5, 0x2C, 0x07, 0x54, 0xEA, 0x99, 0xEA, +0x03, 0xE0, 0x01, 0x9C, 0x00, 0x84, 0xFC, 0xE9, +0x02, 0x85, 0xC1, 0x80, 0x53, 0xDD, 0x18, 0xD5, +0x41, 0x84, 0x02, 0x80, 0x49, 0xDD, 0x51, 0xDD, +0x00, 0x84, 0x53, 0xDD, 0x0C, 0xD5, 0x34, 0xEA, +0x11, 0x01, 0x43, 0x38, 0x11, 0x01, 0x31, 0x38, +0x31, 0x40, 0xDC, 0x98, 0xDB, 0x96, 0x96, 0xA0, +0x09, 0x01, 0x33, 0x38, 0x01, 0xE0, 0x01, 0x9C, +0x09, 0x9C, 0xF4, 0xE9, 0x41, 0x0C, 0x14, 0x3C, +0xE6, 0xE9, 0x01, 0xE0, 0x00, 0x44, 0x48, 0xEA, +0x5C, 0xDD, 0xFF, 0x7F, 0x48, 0x00, 0x40, 0x3C, +0x00, 0x84, 0x47, 0xEA, 0x28, 0x3E, 0x39, 0xEA, +0x06, 0xD5, 0x2C, 0x07, 0x11, 0x81, 0x51, 0x38, +0xB2, 0xEA, 0x02, 0xD9, 0x04, 0xE0, 0x01, 0x9C, +0x14, 0x3C, 0xFA, 0xE9, 0xB3, 0xEA, 0xE2, 0x0B, +0x18, 0x3C, 0x4B, 0x96, 0xC0, 0xFC, 0xE2, 0x0B, +0x45, 0xDD, 0x20, 0xFC, 0x63, 0x50, 0x22, 0xEA, +0x13, 0x02, 0x30, 0x02, 0x00, 0x85, 0xFF, 0x7E, +0xDC, 0xFF, 0x8B, 0x3C, 0x0C, 0x00, 0x08, 0x3E, +0x75, 0xA4, 0x40, 0xAC, 0x7C, 0x17, 0x78, 0x3E, +0x76, 0xA4, 0x41, 0xAC, 0x01, 0x80, 0x83, 0x12, +0x77, 0xA4, 0x42, 0xAC, 0x00, 0x80, 0x83, 0x12, +0xFF, 0x49, 0x43, 0xAC, 0x53, 0xDD, 0xCA, 0xFB, +0x4E, 0xDD, 0x41, 0x84, 0x03, 0x22, 0x51, 0xDD, +0x03, 0x12, 0x00, 0x80, 0x03, 0x22, 0xEC, 0x7F, +0x03, 0x12, 0x01, 0x80, 0x48, 0xEA, 0xEB, 0x7F, +0xFF, 0x7F, 0x00, 0x44, 0xFF, 0x49, 0x5C, 0xDD, +0x00, 0x2E, 0x9B, 0xFC, 0x31, 0xAC, 0x93, 0x11, +0x02, 0x80, 0x03, 0x22, 0x5B, 0x7F, 0x03, 0x12, +0x03, 0x80, 0x03, 0x22, 0x5C, 0x7F, 0x03, 0x12, +0x43, 0x96, 0x3C, 0xA4, 0x5A, 0x7F, 0x13, 0x12, +0xC1, 0x7F, 0x13, 0x22, 0x05, 0xE8, 0x20, 0xE0, +0xF2, 0xFF, 0x8B, 0x3C, 0xF5, 0xFF, 0x8B, 0x3C, +0x0E, 0x96, 0x2B, 0xEA, 0x07, 0x2E, 0x18, 0xC0, +0x08, 0x5A, 0x9A, 0xFF, 0xE0, 0x84, 0x15, 0x01, +0xC1, 0x08, 0x78, 0x3C, 0x00, 0x84, 0xAD, 0xEA, +0xF0, 0xFD, 0xFF, 0x49, 0x77, 0x3E, 0x03, 0xC8, +0x10, 0x3C, 0x9A, 0xFF, 0xA7, 0xEA, 0x94, 0x0D, +0x01, 0x84, 0x49, 0xDD, 0xD1, 0x0C, 0x08, 0x3C, +0x9F, 0x00, 0x00, 0x48, 0x2E, 0x96, 0x26, 0xEA, +0x28, 0xEA, 0x14, 0xC0, 0x3F, 0xEA, 0x12, 0xC9, +0xFF, 0x49, 0x10, 0xC8, 0xC0, 0x80, 0xD9, 0xFB, +0x42, 0xB9, 0x0E, 0xC8, 0x10, 0x44, 0x04, 0xC1, +0xC2, 0xB9, 0xF0, 0x00, 0x07, 0xC1, 0x50, 0xB9, +0xF0, 0x00, 0x10, 0x44, 0x03, 0xD5, 0xD0, 0xB9, +0xC1, 0x84, 0xAD, 0xEA, 0x0E, 0x96, 0x2B, 0xEA, +0x28, 0xEA, 0x1B, 0xC0, 0x3F, 0xEA, 0x19, 0xC9, +0xFF, 0x49, 0x17, 0xC8, 0x00, 0x81, 0xEA, 0xFD, +0x94, 0x17, 0x78, 0x3E, 0x80, 0x00, 0x10, 0x46, +0x07, 0x3C, 0x0B, 0xC8, 0xC8, 0x80, 0xF4, 0xFF, +0x49, 0x81, 0x03, 0x12, 0x02, 0x84, 0x49, 0xDD, +0x07, 0x81, 0x03, 0x12, 0x07, 0x3C, 0x4C, 0xF8, +0x03, 0x12, 0xF4, 0xFF, 0x4B, 0xDD, 0x49, 0x81, +0x81, 0xEA, 0x02, 0xC0, 0x14, 0x3C, 0x74, 0xEA, +0xD3, 0x96, 0xC2, 0x08, 0x30, 0x12, 0x41, 0xDD, +0x10, 0x12, 0x01, 0x01, 0x46, 0xEA, 0x02, 0x01, +0x01, 0x83, 0x30, 0x04, 0x00, 0x81, 0x31, 0x58, +0x01, 0x83, 0x30, 0x14, 0xB2, 0x10, 0x34, 0x3C, +0x05, 0x00, 0x36, 0x4E, 0x70, 0x21, 0x10, 0x2E, +0x10, 0x3C, 0x07, 0xC1, 0x00, 0x44, 0xFE, 0x0C, +0x46, 0xFE, 0xFE, 0xFF, 0x8A, 0xEA, 0x1A, 0xD5, +0x15, 0xC1, 0x6E, 0x96, 0xFC, 0x01, 0x10, 0x22, +0x11, 0xE9, 0x41, 0xE0, 0x34, 0x01, 0x20, 0x22, +0x21, 0x58, 0x43, 0xDD, 0x20, 0x14, 0x01, 0x00, +0x10, 0x22, 0x1C, 0x80, 0x00, 0x46, 0x24, 0x01, +0x47, 0xFE, 0xF0, 0x0F, 0x00, 0x58, 0x42, 0xDD, +0x06, 0xD5, 0xF8, 0x00, 0xFE, 0x0C, 0x14, 0x3C, +0x00, 0x58, 0x42, 0xDD, 0x20, 0xB6, 0x70, 0x00, +0x0B, 0xCE, 0x49, 0xDD, 0x09, 0xC9, 0x28, 0xEA, +0x07, 0xC8, 0x3F, 0xEA, 0x23, 0x84, 0x20, 0xF8, +0xD1, 0x0C, 0x18, 0x3C, 0x5C, 0x00, 0x00, 0x48, +0x2E, 0x96, 0x26, 0xEA, 0x28, 0xEA, 0x1F, 0xC0, +0x3F, 0xEA, 0x1D, 0xC9, 0x44, 0xDD, 0x1B, 0xC8, +0xFD, 0x80, 0x30, 0x22, 0x20, 0x22, 0x56, 0xDD, +0x62, 0xE0, 0x02, 0x00, 0x20, 0x22, 0x0C, 0xE9, +0x30, 0x22, 0x09, 0x81, 0x62, 0xE0, 0x03, 0x00, +0x10, 0x22, 0x06, 0xE9, 0x04, 0xA4, 0x05, 0x81, +0x08, 0xE8, 0x20, 0xE0, 0x50, 0xFC, 0xFF, 0x49, +0x18, 0x3C, 0x24, 0x84, 0xC0, 0x84, 0xD1, 0x0C, +0x00, 0x4E, 0x3A, 0xD5, 0x28, 0xE8, 0x4A, 0xFC, +0x26, 0xC9, 0x28, 0xEA, 0x24, 0xC8, 0x3F, 0xEA, +0x1E, 0xC0, 0x50, 0xDD, 0x10, 0xFC, 0xFF, 0x49, +0x04, 0x3C, 0x0D, 0xC0, 0x14, 0x3C, 0x0E, 0x0D, +0x20, 0xE0, 0xC0, 0x0B, 0x00, 0x49, 0x15, 0xE9, +0x04, 0xC0, 0xF3, 0x01, 0xF3, 0x00, 0x00, 0x49, +0x0F, 0x3E, 0x0F, 0xC8, 0x40, 0xA4, 0xEA, 0xFF, +0xA2, 0x0C, 0x24, 0x3C, 0xC0, 0xAC, 0xC9, 0x9C, +0x0A, 0xE8, 0x41, 0xE0, 0x20, 0x3E, 0x41, 0x84, +0x20, 0x84, 0x70, 0x21, 0x20, 0x84, 0x04, 0xD5, +0xEA, 0xFF, 0x0F, 0x3E, 0xFF, 0x49, 0x40, 0xAC, +0x68, 0x5A, 0x1A, 0xFC, 0xC0, 0x84, 0x05, 0x01, +0x06, 0x00, 0x63, 0x40, 0xB0, 0xF9, 0xFF, 0x49, +0x00, 0x84, 0x03, 0xC6, 0x05, 0x84, 0x02, 0xD5, +0xD1, 0x0C, 0x08, 0x3C, 0xA0, 0xFC, 0x06, 0x80, +0xA0, 0x84, 0x40, 0xFC, 0x78, 0x3E, 0x81, 0x84, +0x33, 0xD5, 0x94, 0x17, 0x0C, 0x08, 0x82, 0x40, +0x02, 0x18, 0x84, 0x40, 0x0B, 0x00, 0x82, 0x4E, +0x0A, 0x04, 0x81, 0x40, 0x62, 0x00, 0x84, 0x50, +0x01, 0xA1, 0x83, 0x38, 0x0C, 0x20, 0x82, 0x40, +0x81, 0x50, 0xBE, 0xEA, 0x92, 0x40, 0x01, 0x00, +0x94, 0x40, 0x0C, 0x20, 0x92, 0x4E, 0x02, 0x98, +0x01, 0x91, 0x0B, 0x00, 0x62, 0x00, 0x84, 0x50, +0x01, 0xA1, 0x83, 0x38, 0x82, 0x40, 0x08, 0x93, +0xBE, 0xEA, 0x0C, 0x20, 0x28, 0x5A, 0x92, 0x9C, +0x82, 0x40, 0xDF, 0x18, 0x94, 0x40, 0x0C, 0x08, +0x92, 0x4E, 0x02, 0x18, 0xBE, 0xEA, 0x03, 0x00, +0x28, 0x5A, 0x91, 0x9C, 0x30, 0x38, 0xF8, 0x20, +0x6C, 0x9D, 0x0A, 0x94, 0x07, 0x84, 0x50, 0x5A, +0x60, 0x38, 0x60, 0x84, 0x43, 0x80, 0x02, 0x14, +0xC0, 0xFC, 0xCA, 0xD5, 0x80, 0xFC, 0x00, 0xFC, +0xFF, 0x49, 0x00, 0xFC, 0x41, 0xDD, 0xFD, 0xFF, +0x2B, 0x01, 0x20, 0x02, 0xAA, 0xFF, 0x27, 0x3E, +0x10, 0x00, 0x10, 0x02, 0x09, 0x06, 0x10, 0x5A, +0x2B, 0xE4, 0x2A, 0xEA, 0x00, 0x22, 0x1E, 0xE9, +0x0F, 0xE4, 0x10, 0x00, 0x14, 0x3C, 0x1A, 0xE8, +0x2B, 0xE4, 0xDA, 0x0B, 0x04, 0x3C, 0x0F, 0xE9, +0x0F, 0xE4, 0xDA, 0x0B, 0x42, 0xDD, 0x0B, 0xE8, +0x33, 0x06, 0x10, 0x44, 0x44, 0x00, 0x10, 0x14, +0x10, 0x14, 0x20, 0x84, 0x10, 0x14, 0x40, 0x00, +0x42, 0xDD, 0x3F, 0x00, 0x00, 0x01, 0x10, 0x44, +0x10, 0x3C, 0x44, 0xA8, 0x07, 0xD5, 0xED, 0x0C, +0x10, 0x44, 0x42, 0xDD, 0x44, 0xA8, 0x00, 0x02, +0x43, 0x0C, 0x10, 0x3C, 0x10, 0x14, 0x42, 0xDD, +0x80, 0xFC, 0x19, 0x00, 0x10, 0x46, 0x00, 0xFC, +0x10, 0x58, 0x89, 0x00, 0xB0, 0xEA, 0xDC, 0x8F, +0x4C, 0xFF, 0x20, 0x50, 0xDB, 0x96, 0x61, 0xB4, +0x03, 0xE8, 0x03, 0xE0, 0x03, 0x96, 0x01, 0xB4, +0x11, 0x4C, 0x2C, 0x8E, 0x10, 0x46, 0xF9, 0x7F, +0x10, 0x58, 0x89, 0x00, 0x60, 0x84, 0xF0, 0x8F, +0x4C, 0xFF, 0x20, 0x50, 0xFF, 0xFF, 0x30, 0x1C, +0xFE, 0x7F, 0x11, 0x4C, 0x10, 0x04, 0x8B, 0xEA, +0x30, 0x3C, 0x68, 0x81, 0x30, 0x92, 0x86, 0x03, +0x31, 0x42, 0xCB, 0x9A, 0x03, 0xE0, 0x03, 0x80, +0x00, 0x3C, 0x05, 0xE8, 0x08, 0x9A, 0x86, 0x03, +0x28, 0x3E, 0x20, 0xEA, 0x30, 0x46, 0x0C, 0x07, +0x50, 0xAC, 0x88, 0x00, 0xA4, 0x85, 0x31, 0x58, +0x83, 0xB4, 0x21, 0x84, 0x01, 0x05, 0x51, 0x38, +0x65, 0x9B, 0x21, 0x97, 0x05, 0xE0, 0xC0, 0xEA, +0x01, 0x38, 0x05, 0xE8, 0x20, 0x9A, 0x01, 0x05, +0x41, 0x38, 0x20, 0xEA, 0x10, 0x5A, 0x09, 0x05, +0x09, 0x9D, 0x15, 0x0E, 0x61, 0x38, 0xA3, 0xB4, +0xB0, 0x92, 0x01, 0x11, 0x6F, 0xEA, 0xAE, 0x9B, +0x05, 0xE8, 0x06, 0xE0, 0x01, 0x11, 0x01, 0x38, +0x20, 0xEA, 0x28, 0x9A, 0x51, 0x38, 0x4A, 0x9C, +0xDC, 0x9C, 0x09, 0x11, 0xDF, 0x0F, 0x18, 0x5A, +0x46, 0xFC, 0x80, 0xFC, 0xE2, 0x0B, 0x00, 0x3C, +0x03, 0x4E, 0x04, 0x96, 0x14, 0x3C, 0xF5, 0x00, +0x14, 0x4E, 0x06, 0x00, 0x20, 0x3C, 0xF1, 0x00, +0x5F, 0xDD, 0x49, 0x00, 0x09, 0x9F, 0x7A, 0xEA, +0x88, 0xF1, 0x89, 0xF2, 0x7F, 0xB6, 0x81, 0xF0, +0x85, 0xF3, 0x84, 0xF3, 0x86, 0xF0, 0x82, 0xF3, +0x00, 0x48, 0x8B, 0xF4, 0x01, 0xF5, 0xAC, 0x00, +0x69, 0x9C, 0xC1, 0x87, 0x09, 0x96, 0xAB, 0x96, +0xEF, 0x15, 0x91, 0x9E, 0x8A, 0xF2, 0x03, 0x80, +0x92, 0x00, 0x00, 0x48, 0x03, 0xF2, 0x0A, 0xF1, +0xA0, 0x40, 0x47, 0xEA, 0x11, 0x38, 0x00, 0x88, +0x40, 0x44, 0x11, 0xA9, 0x12, 0x4C, 0xFF, 0x7F, +0xE0, 0x41, 0x82, 0x00, 0x11, 0x38, 0x11, 0x00, +0x12, 0x4C, 0x11, 0xF9, 0x41, 0x9C, 0x7C, 0x00, +0x11, 0x80, 0x90, 0x40, 0x11, 0xA5, 0x11, 0x38, +0x75, 0x00, 0x12, 0x4C, 0x2C, 0x07, 0x58, 0x3E, +0x11, 0xF9, 0x11, 0x38, 0x11, 0xF9, 0x72, 0x38, +0x11, 0xA9, 0x31, 0x38, 0x11, 0xA9, 0x62, 0x38, +0x51, 0x38, 0x34, 0xEA, 0x28, 0x3E, 0x11, 0x25, +0x41, 0x38, 0x2C, 0x07, 0xDC, 0x9A, 0x11, 0x25, +0x96, 0x9A, 0x9D, 0x98, 0x21, 0x40, 0x82, 0x84, +0x4F, 0x9A, 0x76, 0x10, 0xC4, 0x1E, 0x58, 0x3E, +0x11, 0xA9, 0x32, 0x38, 0x11, 0xA5, 0x62, 0x38, +0x7F, 0xEA, 0xDE, 0x9A, 0x6C, 0xEA, 0x4A, 0x9A, +0x87, 0xF1, 0x4B, 0x96, 0x2C, 0x07, 0x18, 0x3E, +0x11, 0xA5, 0x20, 0x38, 0x11, 0xA9, 0x50, 0x38, +0x61, 0x80, 0x9A, 0x98, 0x11, 0x79, 0x64, 0x38, +0x21, 0x38, 0x55, 0x9A, 0x44, 0x38, 0x11, 0xF9, +0xE8, 0x3F, 0x11, 0x29, 0x31, 0x38, 0x2C, 0x07, +0x54, 0x38, 0x11, 0xA9, 0x7F, 0x38, 0x11, 0x25, +0xE0, 0x45, 0x11, 0x25, 0x4F, 0x40, 0x20, 0x4E, +0x5F, 0x40, 0x01, 0x10, 0x6F, 0x9B, 0x01, 0x14, +0x01, 0x18, 0x6F, 0x40, 0xB2, 0x9B, 0xE3, 0x9A, +0x42, 0x84, 0xEB, 0x98, 0xB6, 0x88, 0x31, 0x40, +0xEF, 0x05, 0x02, 0xF5, 0xB3, 0x9A, 0x05, 0x80, +0x11, 0x29, 0x64, 0x38, 0x38, 0x3E, 0xA1, 0xEA, +0xD3, 0x97, 0x2C, 0x07, 0x11, 0x25, 0x24, 0x38, +0x11, 0xA9, 0x41, 0x38, 0x11, 0xA5, 0x31, 0x38, +0x9A, 0x9A, 0xF3, 0x9A, 0xA1, 0xEA, 0x94, 0x98, +0xBA, 0x98, 0x07, 0xF4, 0xD3, 0x96, 0x6C, 0xEA, +0x00, 0x14, 0x52, 0x42, 0x04, 0xF2, 0x61, 0x98, +0x4B, 0x96, 0x9F, 0xB4, 0x00, 0xF8, 0xE3, 0x43, +0x00, 0x88, 0x20, 0x42, 0x00, 0x0C, 0x42, 0x42, +0xEF, 0x15, 0x82, 0xF5, 0x84, 0xF2, 0x05, 0x80, +0x03, 0xF5, 0x9F, 0xB6, 0x69, 0x9D, 0x01, 0x9C, +0x01, 0x96, 0x83, 0xF5, 0x03, 0x80, 0xEF, 0x05, +0xFF, 0x40, 0x0B, 0xF1, 0xF3, 0x4E, 0x07, 0x04, +0x01, 0xF3, 0x6B, 0xFF, 0x06, 0xF2, 0x08, 0xF4, +0x91, 0x9C, 0x1C, 0x98, 0x86, 0xF2, 0x01, 0x96, +0x06, 0xF5, 0x81, 0xF0, 0x09, 0x80, 0xEF, 0x05, +0xF3, 0x4E, 0xBE, 0xE0, 0x02, 0xF1, 0x52, 0xFF, +0x9F, 0xB4, 0x05, 0xF3, 0x41, 0xDD, 0x04, 0xF5, +0xE1, 0x00, 0x10, 0x12, 0x65, 0x9A, 0x99, 0x9A, +0x4B, 0x96, 0x93, 0x96, 0x46, 0x01, 0x20, 0x12, +0xE0, 0x00, 0x10, 0x12, 0x5F, 0x01, 0x20, 0x22, +0x20, 0x4C, 0x77, 0xEA, 0x10, 0x22, 0x0F, 0xC0, +0x20, 0x22, 0x46, 0x01, 0x41, 0xE0, 0xDF, 0x00, +0x10, 0x22, 0x0E, 0xE8, 0x00, 0x22, 0xE1, 0x00, +0x20, 0xE0, 0x45, 0x01, 0x11, 0xD5, 0x08, 0xE8, +0x46, 0x01, 0x10, 0x22, 0xDF, 0x00, 0x00, 0x22, +0x0B, 0xE9, 0x01, 0xE0, 0xA8, 0x0C, 0x24, 0x3C, +0xAA, 0x0C, 0x04, 0x3C, 0x07, 0x00, 0x01, 0x40, +0x04, 0xD5, 0x31, 0xEA, 0x02, 0xD5, 0x01, 0x84, +0xC6, 0xFC, 0x00, 0x84, 0x26, 0xEA, 0x42, 0xFC, +0x00, 0x10, 0x00, 0x54, 0x01, 0x84, 0x03, 0xC8, +0x43, 0xEA, 0x47, 0xD5, 0x08, 0x00, 0x10, 0x02, +0x07, 0x00, 0xE0, 0x03, 0x45, 0xA4, 0x81, 0xF1, +0x02, 0x00, 0x80, 0x02, 0x49, 0x9C, 0x86, 0xA4, +0x04, 0x42, 0x1E, 0x80, 0x91, 0x9E, 0x73, 0x04, +0x01, 0x96, 0x82, 0xF2, 0x7F, 0x44, 0x40, 0x85, +0x83, 0xF1, 0x00, 0x80, 0xC4, 0x1E, 0x98, 0x3E, +0xB3, 0x96, 0x20, 0xD5, 0x01, 0x89, 0x44, 0x38, +0x01, 0x20, 0x31, 0x40, 0x34, 0x38, 0x48, 0x88, +0x24, 0x38, 0x11, 0x8D, 0x53, 0x98, 0x11, 0x89, +0x10, 0x40, 0x62, 0x84, 0x61, 0x9A, 0x56, 0x8C, +0x6C, 0xEA, 0x4B, 0x96, 0x02, 0xE8, 0xE1, 0xE0, +0xC8, 0x88, 0xCB, 0x97, 0xB1, 0x97, 0x69, 0x9D, +0x02, 0xF3, 0x03, 0xF2, 0x23, 0xE0, 0x55, 0x98, +0x01, 0x9C, 0xE5, 0xE9, 0x01, 0x96, 0x41, 0x8D, +0x15, 0x40, 0x01, 0xF2, 0x41, 0xE0, 0x00, 0x78, +0xC0, 0x80, 0x04, 0xE9, 0xF1, 0xD5, 0xA0, 0x84, +0xAA, 0x0C, 0x78, 0x3C, 0xA8, 0x0C, 0x04, 0x3C, +0x07, 0x80, 0x03, 0x40, 0xC2, 0xFC, 0x31, 0xEA, +0x35, 0xEA, 0x00, 0xFC, 0x00, 0xFC, 0x80, 0xFC, +0x80, 0xFC, 0x35, 0xEA, 0x45, 0xDD, 0x00, 0xFC, +0x00, 0x4E, 0x35, 0xEA, 0x10, 0x3C, 0x07, 0x02, +0x10, 0x5A, 0xDA, 0x0B, 0x14, 0x3C, 0x0A, 0x0C, +0x07, 0x46, 0xF7, 0x0C, 0x47, 0xFE, 0xF0, 0xFF, +0x10, 0x14, 0x42, 0xDD, 0x41, 0xDD, 0x41, 0x00, +0x37, 0x01, 0x20, 0x02, 0x20, 0x14, 0x43, 0xDD, +0x20, 0x02, 0x42, 0x80, 0x20, 0x14, 0x4C, 0x01, +0x2A, 0xEA, 0x43, 0x80, 0x0B, 0xE9, 0x2B, 0xE4, +0x10, 0x00, 0x00, 0x22, 0x07, 0xE8, 0x0F, 0xE4, +0x00, 0x58, 0x42, 0xDD, 0x10, 0x44, 0x10, 0x01, +0x06, 0xD5, 0x33, 0x06, 0x17, 0x0D, 0x10, 0x3C, +0x00, 0x58, 0x42, 0xDD, 0x20, 0xB6, 0x10, 0x01, +0x56, 0x00, 0x00, 0x2E, 0x08, 0x02, 0x08, 0x5A, +0x02, 0x01, 0x00, 0x46, 0x10, 0x14, 0x20, 0x84, +0x0D, 0xD5, 0x45, 0x00, 0x09, 0x00, 0x00, 0x3C, +0x00, 0x01, 0x00, 0x54, 0x1C, 0x3C, 0x0C, 0xC0, +0x42, 0xDD, 0x14, 0x00, 0x45, 0x00, 0x10, 0x14, +0x0B, 0x00, 0x1C, 0x3C, 0x10, 0x14, 0x42, 0xDD, +0x0F, 0xD5, 0x1A, 0x00, 0x19, 0x0D, 0x20, 0x3C, +0x20, 0x14, 0x42, 0xDD, 0x00, 0x3C, 0x45, 0x00, +0x04, 0xC0, 0xF2, 0x0C, 0x30, 0x10, 0x10, 0x46, +0x43, 0xDD, 0x0F, 0xFE, 0x1A, 0x80, 0x00, 0x14, +0x21, 0x84, 0x57, 0xDD, 0x42, 0xDD, 0x20, 0xB6, +0x80, 0xFC, 0x20, 0xB6, 0x45, 0xDD, 0x40, 0xFC, +0xFD, 0xB1, 0x88, 0xEE, 0x20, 0x44, 0x20, 0x84, +0x07, 0x80, 0x84, 0x00, 0x06, 0x46, 0xC2, 0xF8, +0x00, 0x58, 0x50, 0x37, 0x83, 0xF0, 0x67, 0x09, +0x24, 0x46, 0xC0, 0xF0, 0x00, 0x46, 0xA1, 0x6E, +0x21, 0x58, 0x42, 0xDD, 0x00, 0x58, 0xCF, 0x02, +0x84, 0xF2, 0x9F, 0x05, 0x85, 0xF0, 0xC1, 0xF2, +0x21, 0x46, 0xC2, 0xF0, 0x03, 0x46, 0x84, 0xBA, +0x21, 0x58, 0x09, 0x75, 0x00, 0x58, 0x3E, 0x0B, +0x86, 0xF2, 0x7C, 0x06, 0x87, 0xF0, 0xC3, 0xF2, +0x26, 0x46, 0xC4, 0xF0, 0x05, 0x46, 0x12, 0xEA, +0x21, 0x58, 0x25, 0xD4, 0x00, 0x58, 0xF8, 0x0C, +0x88, 0xF2, 0xF1, 0x09, 0x89, 0xF0, 0xC5, 0xF2, +0x23, 0x46, 0xC6, 0xF0, 0x07, 0x46, 0x4B, 0xA8, +0x21, 0x58, 0x96, 0x50, 0x00, 0x58, 0xE3, 0x03, +0x8A, 0xF2, 0xC6, 0x07, 0x8B, 0xF0, 0xC7, 0xF2, +0x26, 0x46, 0xC8, 0xF0, 0x05, 0x46, 0x2C, 0xA1, +0x21, 0x58, 0x59, 0x42, 0x00, 0x58, 0x8D, 0x0F, +0x8C, 0xF2, 0x1B, 0x0F, 0x8D, 0xF0, 0xC9, 0xF2, +0x22, 0x46, 0xCA, 0xF0, 0x05, 0x46, 0xB3, 0x84, +0x21, 0x58, 0x67, 0x09, 0x00, 0x58, 0x37, 0x0E, +0x8E, 0xF2, 0x6E, 0x0C, 0x8F, 0xF0, 0xCB, 0xF2, +0x22, 0x46, 0xCC, 0xF0, 0x04, 0x46, 0xCF, 0x12, +0x21, 0x58, 0x9F, 0x25, 0x00, 0x58, 0xDD, 0x08, +0x90, 0xF2, 0xBA, 0x01, 0x91, 0xF0, 0xCD, 0xF2, +0x87, 0x46, 0xCE, 0xF0, 0x37, 0x46, 0xEA, 0xC6, +0x47, 0x46, 0xD4, 0x8D, 0x20, 0x46, 0xA8, 0x1B, +0x00, 0x46, 0x3E, 0x4B, 0x31, 0x58, 0x7C, 0x96, +0x42, 0x58, 0x59, 0x82, 0x84, 0x58, 0xB3, 0x04, +0x21, 0x58, 0x2C, 0x01, 0x00, 0x58, 0x75, 0x03, +0xBE, 0xF3, 0xEA, 0x06, 0x8F, 0x14, 0xBF, 0xF4, +0x92, 0xF2, 0x3D, 0x80, 0x93, 0xF0, 0xCF, 0xF2, +0x21, 0x46, 0xD0, 0xF0, 0x02, 0x46, 0xF8, 0x2C, +0x21, 0x58, 0xF1, 0x59, 0x00, 0x58, 0xD4, 0x0D, +0x94, 0xF2, 0xA8, 0x0B, 0x95, 0xF0, 0xD1, 0xF2, +0x24, 0x46, 0xD2, 0xF0, 0x01, 0x46, 0xE3, 0xB3, +0x21, 0x58, 0xC6, 0x67, 0x00, 0x58, 0x50, 0x07, +0x96, 0xF2, 0xA1, 0x0E, 0x97, 0xF0, 0xD3, 0xF2, +0x22, 0x46, 0xD4, 0xF0, 0x05, 0x46, 0x8D, 0xCF, +0x21, 0x58, 0x1B, 0x9F, 0x00, 0x58, 0x42, 0x0D, +0x98, 0xF2, 0x84, 0x0A, 0x99, 0xF0, 0xD5, 0xF2, +0x23, 0x46, 0xD6, 0xF0, 0x06, 0x46, 0x37, 0x3E, +0x54, 0x46, 0x6E, 0x7C, 0xA1, 0x46, 0xDD, 0xF8, +0x93, 0x46, 0xBA, 0xF1, 0x52, 0x58, 0x75, 0xE3, +0x21, 0x58, 0x25, 0x84, 0x00, 0x58, 0x09, 0x05, +0xA5, 0x58, 0x12, 0x0A, 0x94, 0x58, 0x4B, 0x08, +0x9C, 0xB1, 0x96, 0x80, 0xD8, 0xF0, 0xD7, 0xF2, +0xAF, 0x14, 0xD9, 0xF5, 0x9F, 0x14, 0x5A, 0x80, +0x8F, 0x14, 0x5B, 0x80, 0x9A, 0xF2, 0x5C, 0x80, +0x20, 0x84, 0x9B, 0xF0, 0x84, 0x00, 0x20, 0x44, +0x82, 0xF3, 0x06, 0x80, 0xBF, 0xB6, 0x81, 0xF4, +0xA4, 0x24, 0x00, 0x49, 0x04, 0xF0, 0x03, 0xF2, +0x05, 0xF2, 0x9F, 0xF2, 0xA1, 0xF2, 0xA0, 0xF0, +0x07, 0xF2, 0x06, 0xF0, 0xA3, 0xF2, 0xA2, 0xF0, +0x09, 0xF2, 0x08, 0xF0, 0xA5, 0xF2, 0xA4, 0xF0, +0x0B, 0xF2, 0x0A, 0xF0, 0xA7, 0xF2, 0xA6, 0xF0, +0x0D, 0xF2, 0x0C, 0xF0, 0xA9, 0xF2, 0xA8, 0xF0, +0x0F, 0xF2, 0x0E, 0xF0, 0x01, 0xF4, 0x02, 0xF3, +0xAB, 0xF2, 0xAA, 0xF0, 0x11, 0xF2, 0x10, 0xF0, +0x9E, 0xF4, 0x9D, 0xF3, 0x8F, 0x14, 0xAC, 0xF0, +0xAD, 0xF2, 0x1C, 0x80, 0x13, 0xF2, 0x12, 0xF0, +0xAF, 0xF2, 0xAE, 0xF0, 0x15, 0xF2, 0x14, 0xF0, +0xB1, 0xF2, 0xB0, 0xF0, 0x17, 0xF2, 0x16, 0xF0, +0xB3, 0xF2, 0xB2, 0xF0, 0x19, 0xF2, 0x18, 0xF0, +0xB5, 0xF2, 0xB4, 0xF0, 0x1B, 0xF2, 0x1A, 0xF0, +0x10, 0x46, 0xBF, 0xB4, 0xB7, 0xF2, 0x00, 0x10, +0xB6, 0xF0, 0xBB, 0xF1, 0xAF, 0x14, 0xB8, 0xF5, +0x9F, 0x14, 0x39, 0x80, 0x35, 0xEA, 0x3A, 0x80, +0x03, 0x01, 0x10, 0x46, 0x01, 0x83, 0x20, 0x04, +0x00, 0x01, 0x21, 0x58, 0x01, 0x83, 0x20, 0x14, +0xDA, 0x0B, 0x24, 0x3C, 0x13, 0xE9, 0x4B, 0xE4, +0xDA, 0x0B, 0x14, 0x3C, 0x0F, 0xE8, 0x2F, 0xE4, +0x41, 0x80, 0x20, 0x84, 0x07, 0x80, 0x81, 0x84, +0x0C, 0x08, 0x32, 0x40, 0x33, 0x38, 0x91, 0x9C, +0x30, 0x38, 0x0A, 0x04, 0x4C, 0x9C, 0x0A, 0x04, +0xF8, 0x20, 0x28, 0x5A, 0x5C, 0xB0, 0x3D, 0xB0, +0x58, 0xFC, 0xFF, 0x49, 0x10, 0x02, 0x41, 0xDD, +0x18, 0x5A, 0x10, 0x00, 0x10, 0x02, 0x06, 0x06, +0xBA, 0xEA, 0x35, 0x01, 0x2A, 0xEA, 0x12, 0xD5, +0x0B, 0xE9, 0x2B, 0xE4, 0x2F, 0xE4, 0x2A, 0xEA, +0x10, 0x02, 0x08, 0xE8, 0xBA, 0xEA, 0x35, 0x01, +0x00, 0x58, 0x08, 0xF8, 0x17, 0xD5, 0x0C, 0x00, +0xFF, 0x0C, 0x10, 0x3C, 0x42, 0x0C, 0x04, 0x3C, +0xE0, 0x01, 0x70, 0x46, 0x48, 0x96, 0x45, 0xEA, +0x01, 0x96, 0xAE, 0xEA, 0x47, 0xFE, 0x7F, 0xFE, +0x42, 0xA8, 0x42, 0xDD, 0xFF, 0x83, 0x42, 0xDD, +0xF0, 0x01, 0x10, 0x46, 0x0C, 0x00, 0x00, 0x58, +0x01, 0x83, 0x10, 0x58, 0x47, 0xDD, 0x20, 0xB6, +0x10, 0x00, 0x01, 0x22, 0x20, 0xE9, 0x0B, 0xE4, +0x10, 0x00, 0x01, 0x22, 0x1C, 0xE8, 0x0F, 0xE4, +0x00, 0x84, 0x8B, 0xEA, 0x80, 0x80, 0x5C, 0xB1, +0x61, 0x02, 0xFD, 0xB0, 0x68, 0x5A, 0x10, 0x00, +0x81, 0xB6, 0x04, 0x0C, 0x62, 0x38, 0x04, 0xD5, +0xC1, 0xB6, 0x02, 0x80, 0x88, 0x00, 0x70, 0x46, +0x00, 0x81, 0x73, 0x58, 0x71, 0x38, 0x87, 0x99, +0x04, 0x9C, 0x02, 0x80, 0x4C, 0x9C, 0xE6, 0xB6, +0xED, 0x7C, 0x08, 0x5A, 0x75, 0xEA, 0x11, 0xD5, +0xFF, 0xFF, 0x17, 0x46, 0x88, 0x00, 0x20, 0x46, +0xFF, 0x8F, 0x10, 0x58, 0x7C, 0x00, 0x21, 0x58, +0x11, 0x1C, 0x60, 0x80, 0x04, 0x9C, 0x40, 0x80, +0x01, 0x4C, 0x23, 0xB6, 0x8B, 0xEA, 0xFB, 0x7F, +0x00, 0x10, 0x00, 0x46, 0x1F, 0x80, 0x00, 0x14, +0x5F, 0x80, 0x00, 0x14, 0xBD, 0xB0, 0x75, 0xEA, +0x80, 0x01, 0x00, 0x58, 0xD1, 0xA2, 0x7B, 0xEA, +0x00, 0x4C, 0xC1, 0xAA, 0x75, 0xEA, 0xFE, 0xFF, +0x00, 0x58, 0x9C, 0xB0, 0x7B, 0xEA, 0x80, 0x00, +0xC1, 0xAA, 0xD1, 0xA2, 0xFE, 0xFF, 0x00, 0x4C, +0xC0, 0xFC, 0x78, 0xED, 0x35, 0xEA, 0x00, 0xFC, +0x03, 0x01, 0x00, 0x46, 0x61, 0xEA, 0x59, 0xDD, +0xFF, 0x83, 0x52, 0xDD, 0x60, 0x84, 0x57, 0xDD, +0x75, 0xEA, 0x60, 0xB6, 0x98, 0x00, 0x10, 0x46, +0x40, 0x84, 0xC1, 0xAA, 0xFE, 0xFF, 0x00, 0x4C, +0x3F, 0x84, 0x57, 0xDD, 0x08, 0x02, 0x10, 0x14, +0x00, 0x50, 0x41, 0xDD, 0x30, 0x02, 0x6A, 0x02, +0x3B, 0x3C, 0xF0, 0x7F, 0x44, 0xA4, 0xE7, 0xFF, +0xB6, 0xEA, 0xC3, 0xA4, 0x04, 0x86, 0x31, 0x40, +0x30, 0x14, 0x43, 0xDD, 0x20, 0x14, 0x58, 0x80, +0x20, 0x14, 0x46, 0x80, 0x20, 0x14, 0x47, 0x80, +0x10, 0x02, 0x48, 0x80, 0x20, 0x02, 0xF2, 0x7F, +0x21, 0x40, 0xF1, 0x7F, 0x43, 0xDD, 0x04, 0x06, +0x49, 0x80, 0x20, 0x14, 0xF0, 0xFF, 0x17, 0x46, +0xF8, 0x7F, 0x20, 0x22, 0x43, 0xDD, 0x8F, 0xFE, +0x41, 0x80, 0x20, 0x14, 0x20, 0x14, 0x82, 0xA4, +0x20, 0x02, 0x42, 0x80, 0x20, 0x14, 0x17, 0x00, +0x20, 0x02, 0x43, 0x80, 0x20, 0x14, 0x18, 0x00, +0x20, 0x02, 0x44, 0x80, 0x20, 0x14, 0x1A, 0x00, +0x10, 0x02, 0x45, 0x80, 0x20, 0x02, 0xFD, 0x7F, +0x21, 0x40, 0xFC, 0x7F, 0x43, 0xDD, 0x04, 0x06, +0x18, 0x80, 0x20, 0x14, 0xF5, 0x7F, 0x30, 0x02, +0xF4, 0x7F, 0x40, 0x02, 0x42, 0x40, 0x87, 0xA4, +0x2E, 0xFF, 0x08, 0x40, 0x08, 0x20, 0x21, 0x40, +0x00, 0xFF, 0x50, 0x44, 0xAE, 0xFE, 0x46, 0xA4, +0x48, 0x96, 0xA7, 0xFE, 0x04, 0x0F, 0x21, 0x40, +0x43, 0xDD, 0x8F, 0xFE, 0x17, 0x80, 0x20, 0x14, +0xF3, 0x7F, 0x00, 0x02, 0x10, 0x46, 0x04, 0xC0, +0x0F, 0xFE, 0x30, 0x10, 0x00, 0x14, 0x43, 0xDD, +0x41, 0xDD, 0x1A, 0x80, 0x3D, 0x01, 0x20, 0x02, +0x1B, 0x80, 0x20, 0x14, 0x00, 0x01, 0x20, 0x02, +0x0C, 0x80, 0x20, 0x12, 0x00, 0x01, 0x10, 0x22, +0x5F, 0x01, 0x10, 0x12, 0x2B, 0xE4, 0x2A, 0xEA, +0x2A, 0xEA, 0x0A, 0xE9, 0x07, 0xE8, 0x2F, 0xE4, +0x41, 0x01, 0x20, 0x02, 0x89, 0xA8, 0x43, 0xDD, +0x07, 0xD5, 0x77, 0xEA, 0x0B, 0x0D, 0x20, 0x3C, +0x81, 0xA8, 0x42, 0xDD, 0xD0, 0x0C, 0x10, 0x3C, +0x10, 0x12, 0x42, 0xDD, 0x41, 0xDD, 0x2C, 0x00, +0x34, 0x01, 0x20, 0x02, 0xFE, 0xFF, 0x30, 0x44, +0x9E, 0xFE, 0x43, 0xDD, 0x1C, 0x80, 0x20, 0x14, +0xFF, 0x00, 0x2F, 0x44, 0x1D, 0x80, 0x20, 0x14, +0x3A, 0x01, 0x20, 0x22, 0x3A, 0x01, 0x00, 0x02, +0x04, 0x02, 0x21, 0x40, 0x00, 0x58, 0x42, 0xDD, +0x7B, 0xEA, 0x78, 0x00, 0x00, 0x4C, 0x81, 0xAA, +0x44, 0xDD, 0xFF, 0xFF, 0x3E, 0x81, 0x20, 0x22, +0xAF, 0xFE, 0xB6, 0xEA, 0x42, 0xDD, 0x40, 0xB6, +0x47, 0x81, 0x20, 0x22, 0x3F, 0x00, 0x20, 0x14, +0x40, 0x81, 0x00, 0x22, 0x4E, 0x81, 0x10, 0x02, +0x04, 0x06, 0x10, 0x40, 0x10, 0x14, 0x42, 0xDD, +0x20, 0x84, 0x40, 0x00, 0x4A, 0x00, 0x10, 0x14, +0x80, 0x00, 0x10, 0x44, 0x4B, 0x00, 0x10, 0x14, +0x10, 0x14, 0x49, 0x94, 0x10, 0x44, 0x4C, 0x00, +0x10, 0x14, 0x80, 0x01, 0x10, 0x44, 0x4D, 0x00, +0x10, 0x14, 0x00, 0x02, 0x10, 0x44, 0x4F, 0x00, +0x10, 0x14, 0xC0, 0x05, 0x10, 0x44, 0x50, 0x00, +0x10, 0x14, 0x80, 0x09, 0x10, 0x44, 0x51, 0x00, +0x10, 0x14, 0x40, 0x0D, 0x10, 0x44, 0x52, 0x00, +0x10, 0x14, 0xE0, 0x12, 0x59, 0x9C, 0x53, 0x00, +0x54, 0x00, 0x10, 0x14, 0x55, 0x00, 0x10, 0x14, +0x80, 0x18, 0x10, 0x44, 0x56, 0x00, 0x10, 0x14, +0xF0, 0x1F, 0x10, 0x44, 0x57, 0x00, 0x10, 0x14, +0x62, 0xFD, 0xFF, 0x49, 0x00, 0xFC, 0x80, 0xFC, +0x08, 0x00, 0x10, 0x3C, 0x00, 0x81, 0x10, 0x54, +0x10, 0x2E, 0x55, 0xC1, 0x10, 0x5A, 0x20, 0x00, +0x5B, 0xDD, 0x52, 0x01, 0x44, 0x01, 0x10, 0x22, +0x44, 0x01, 0x21, 0x52, 0x08, 0xE8, 0x0D, 0xF8, +0xC5, 0xE0, 0x50, 0xEA, 0x63, 0xEA, 0x05, 0xE8, +0x02, 0xE8, 0x64, 0xE0, 0x5B, 0xDD, 0x26, 0xF8, +0x44, 0x01, 0x31, 0x52, 0xD1, 0x9E, 0x9A, 0x9A, +0x11, 0x0D, 0x50, 0x38, 0x40, 0x38, 0xD1, 0x9C, +0x58, 0xEA, 0x11, 0x0D, 0xB2, 0x80, 0x61, 0x22, +0xFF, 0x83, 0xC1, 0xE0, 0x50, 0xEA, 0x08, 0xE8, +0x05, 0xE8, 0xC5, 0xE0, 0x64, 0xE0, 0x63, 0xEA, +0x24, 0xF8, 0x02, 0xE8, 0x10, 0x22, 0x5B, 0xDD, +0x21, 0x52, 0x4D, 0x01, 0x00, 0x4E, 0x4D, 0x01, +0x0F, 0xE8, 0xE8, 0xFF, 0xC5, 0xE0, 0x50, 0xEA, +0x63, 0xEA, 0x0C, 0xE8, 0x09, 0xE8, 0x64, 0xE0, +0xD9, 0x98, 0xEC, 0x98, 0x31, 0x40, 0xC3, 0x84, +0x30, 0x38, 0xD6, 0x98, 0xFF, 0x83, 0x09, 0x09, +0x31, 0x52, 0x5B, 0xDD, 0x9A, 0x9A, 0x4D, 0x01, +0xD3, 0xFF, 0x00, 0x4E, 0x50, 0xEA, 0x0F, 0xE8, +0x0C, 0xE8, 0xC5, 0xE0, 0x64, 0xE0, 0x63, 0xEA, +0x2C, 0x99, 0x09, 0xE8, 0x63, 0x84, 0x61, 0x98, +0x76, 0x8C, 0x10, 0x40, 0x09, 0x09, 0x10, 0x38, +0x80, 0xFC, 0xFF, 0x83, 0x45, 0xDD, 0x42, 0xFC, +0x08, 0x00, 0x20, 0x3C, 0x00, 0x02, 0x21, 0x54, +0xB6, 0x00, 0x22, 0x4E, 0x22, 0x4E, 0x74, 0xEA, +0x42, 0xBA, 0xB3, 0x00, 0x88, 0x82, 0x90, 0x50, +0x82, 0xF2, 0xD3, 0x96, 0x31, 0x12, 0x47, 0xDD, +0x50, 0xBB, 0x2E, 0x00, 0x81, 0xF3, 0x49, 0x81, +0x31, 0x12, 0xDB, 0x96, 0x80, 0x3C, 0x2F, 0x00, +0x70, 0x50, 0x4A, 0x00, 0x34, 0x52, 0x8A, 0x82, +0x83, 0xF3, 0x00, 0x00, 0x34, 0x42, 0x7E, 0x84, +0xE4, 0x53, 0x24, 0x0C, 0xC0, 0x84, 0x44, 0x01, +0x45, 0x22, 0xBF, 0xEA, 0xA4, 0xE0, 0x00, 0x00, +0xBF, 0xEA, 0x0B, 0xE9, 0xFE, 0xFF, 0x43, 0x22, +0x06, 0xE9, 0xA4, 0xE0, 0x43, 0x22, 0xBF, 0xEA, +0xA4, 0xE0, 0x00, 0x80, 0xB1, 0x9D, 0x02, 0xE8, +0x43, 0x89, 0x03, 0xF4, 0x00, 0x10, 0xEF, 0x41, +0x00, 0x20, 0x4F, 0x40, 0x46, 0x4E, 0xFB, 0x99, +0x02, 0xF2, 0xE9, 0xFF, 0xC5, 0xE4, 0x04, 0xCA, +0x03, 0xD5, 0x0A, 0xE8, 0x07, 0xE8, 0xC6, 0xE4, +0x7C, 0x0C, 0x34, 0x3C, 0x00, 0x80, 0x24, 0x22, +0x08, 0xE8, 0x62, 0xE0, 0xF1, 0x5C, 0x9C, 0xEA, +0x04, 0xE9, 0x33, 0x00, 0xF0, 0x00, 0x30, 0x44, +0x42, 0xBB, 0xC2, 0xBB, 0x03, 0x00, 0x37, 0x4E, +0x61, 0x84, 0x03, 0xD5, 0x20, 0x44, 0xC2, 0xBB, +0x62, 0x84, 0x44, 0x01, 0x95, 0x9A, 0x24, 0xEA, +0x0E, 0x00, 0x27, 0x4E, 0x60, 0x38, 0x51, 0x9D, +0x51, 0x9F, 0x11, 0x15, 0x11, 0x15, 0x50, 0x38, +0x52, 0x40, 0x75, 0x99, 0x50, 0x38, 0xD6, 0x8C, +0xF1, 0xD5, 0x09, 0x09, 0x70, 0x50, 0x5E, 0x84, +0xAC, 0xFE, 0x9A, 0x82, 0x00, 0x80, 0xE2, 0x53, +0x4D, 0x81, 0xA2, 0x52, 0x10, 0x50, 0x27, 0x81, +0xC0, 0x84, 0x9C, 0x82, 0x44, 0x22, 0xBB, 0xEA, +0x64, 0xE0, 0x00, 0x80, 0xBB, 0xEA, 0x0B, 0xE9, +0xFE, 0xFF, 0x40, 0x22, 0x06, 0xE9, 0x64, 0xE0, +0x40, 0x22, 0xBB, 0xEA, 0x64, 0xE0, 0x00, 0x80, +0xB1, 0x9D, 0x02, 0xE8, 0x35, 0x40, 0x5E, 0x89, +0x22, 0x89, 0x00, 0x14, 0x36, 0x4E, 0x4A, 0x98, +0x01, 0xF3, 0xEB, 0xFF, 0xC5, 0xE4, 0x04, 0xCB, +0x03, 0xD5, 0x0A, 0xE8, 0x07, 0xE8, 0xC6, 0xE4, +0x7C, 0x0C, 0x24, 0x3C, 0x00, 0x80, 0x13, 0x22, +0x08, 0xE8, 0x41, 0xE0, 0xF0, 0x5C, 0x90, 0xEA, +0x04, 0xE9, 0x33, 0x80, 0xF0, 0x00, 0x20, 0x44, +0x50, 0xBA, 0xD0, 0xBA, 0x03, 0x00, 0x27, 0x4E, +0x41, 0x84, 0x03, 0xD5, 0x10, 0x44, 0xD0, 0xBA, +0x42, 0x84, 0x4D, 0x01, 0x4C, 0x9A, 0x57, 0xEA, +0x0E, 0x00, 0x17, 0x4E, 0x50, 0x38, 0x09, 0x9D, +0x09, 0x9F, 0x11, 0x11, 0x11, 0x11, 0x40, 0x38, +0x42, 0x40, 0x2C, 0x99, 0x40, 0x38, 0xB6, 0x08, +0xF1, 0xD5, 0x09, 0x05, 0x40, 0xFC, 0xC2, 0xFC, +0x4F, 0x44, 0xDA, 0xF9, 0x05, 0xAD, 0x00, 0x80, +0x00, 0x84, 0x47, 0xA5, 0x48, 0x00, 0x90, 0x3C, +0x18, 0x3E, 0x61, 0x80, 0x7F, 0xEA, 0xDC, 0x14, +0x68, 0x3E, 0xAA, 0xEA, 0xE0, 0x80, 0xCC, 0x09, +0xE0, 0x39, 0x22, 0xD5, 0xA4, 0x38, 0x01, 0x81, +0xAF, 0x40, 0x01, 0x01, 0xA5, 0x40, 0x01, 0x28, +0xA0, 0x38, 0x11, 0x00, 0x62, 0xEA, 0x09, 0x81, +0x03, 0xE8, 0x8A, 0xE0, 0x41, 0x97, 0x5D, 0xEA, +0x43, 0xE1, 0x62, 0xEA, 0xBC, 0xEA, 0x02, 0xE8, +0xA5, 0x4E, 0x62, 0xEA, 0x62, 0xEA, 0x06, 0x00, +0x09, 0x01, 0xA1, 0x38, 0x71, 0x38, 0x03, 0xD5, +0xA1, 0x38, 0x09, 0x01, 0xA3, 0x38, 0x11, 0x01, +0x01, 0x9C, 0x09, 0x01, 0xDE, 0xE9, 0x09, 0xE0, +0x05, 0xAD, 0x56, 0xDD, 0xC6, 0xAC, 0x47, 0xAD, +0x00, 0xFC, 0xC0, 0xFC, 0x18, 0x3E, 0x21, 0xEA, +0x00, 0x84, 0xDC, 0x14, 0xA4, 0x00, 0x28, 0x3E, +0x40, 0x38, 0x09, 0xD5, 0x51, 0x38, 0x01, 0x81, +0x2C, 0x99, 0x01, 0x01, 0x54, 0xEA, 0x23, 0x97, +0x03, 0xE0, 0x01, 0x9C, 0x80, 0xFC, 0xF7, 0xE9, +0x43, 0xEA, 0x00, 0xFC, 0xC1, 0xA4, 0x20, 0x84, +0x45, 0xAC, 0x82, 0xA4, 0x44, 0xDD, 0x47, 0xAC, +0x5A, 0x81, 0x10, 0x50, 0x91, 0x9E, 0xD9, 0x9E, +0xD9, 0x96, 0x0B, 0xA5, 0xC6, 0xAC, 0x91, 0x96, +0x08, 0x00, 0x20, 0x12, 0x0E, 0xA5, 0x13, 0xC4, +0x4F, 0xA4, 0x09, 0xCC, 0x21, 0x84, 0x04, 0xC9, +0x0C, 0xD5, 0x45, 0xAC, 0xC6, 0xAC, 0xD9, 0x9E, +0x4F, 0xA4, 0x09, 0xD5, 0x21, 0x84, 0x04, 0xC9, +0x04, 0xD5, 0x47, 0xAC, 0x20, 0x12, 0x91, 0x9E, +0x80, 0xFC, 0x08, 0x00, 0xB0, 0xEA, 0x43, 0xFC, +0xC6, 0x0B, 0x08, 0x3C, 0x85, 0xA4, 0x43, 0xEA, +0x02, 0x00, 0x90, 0x02, 0x86, 0xA4, 0x83, 0xF2, +0xC7, 0x0B, 0xA0, 0x3C, 0x87, 0xA4, 0x84, 0xF2, +0x08, 0x00, 0x00, 0x02, 0x85, 0xF0, 0x03, 0xF1, +0x02, 0x80, 0x6E, 0xEA, 0x73, 0x84, 0x04, 0x42, +0x80, 0x40, 0x82, 0xF2, 0xE0, 0x80, 0x13, 0x00, +0x5F, 0x44, 0xC0, 0x84, 0xE8, 0x3F, 0x00, 0x80, +0x16, 0xD5, 0xCC, 0x09, 0x11, 0x09, 0x0F, 0x38, +0x04, 0xE8, 0xA0, 0xE0, 0x11, 0x09, 0x5F, 0x38, +0xD9, 0x9C, 0x43, 0x81, 0xD9, 0x96, 0x21, 0x9D, +0x02, 0xF1, 0x91, 0x9C, 0x05, 0xF1, 0x21, 0x98, +0xF1, 0xE8, 0x20, 0xE0, 0xB1, 0x9D, 0x01, 0xF2, +0x3D, 0xEA, 0x02, 0x89, 0x03, 0xF1, 0xE9, 0x88, +0x31, 0x98, 0x04, 0xF2, 0x05, 0xE9, 0x40, 0xE0, +0x68, 0x80, 0x47, 0x80, 0xEE, 0xD5, 0x80, 0x84, +0x20, 0x22, 0x56, 0xDD, 0x50, 0x12, 0x0A, 0x00, +0xA0, 0x12, 0x08, 0x00, 0x45, 0xE0, 0x09, 0x00, +0x50, 0x12, 0x03, 0xE8, 0xC3, 0xFC, 0x0A, 0x00, +0x8F, 0x2E, 0x40, 0xFC, 0x01, 0x9D, 0xAF, 0xFF, +0x0C, 0xFF, 0x34, 0xFA, 0xA4, 0x50, 0x5D, 0xDD, +0x21, 0x99, 0xFF, 0x7F, 0x11, 0xD5, 0xE0, 0x80, +0x03, 0x3A, 0xC4, 0x80, 0x52, 0x50, 0x04, 0x0C, +0xF9, 0x9D, 0xDC, 0x7F, 0x24, 0x00, 0x42, 0x50, +0x24, 0x8C, 0x02, 0x3A, 0x04, 0x0C, 0x03, 0x3A, +0x24, 0x8C, 0x02, 0x3A, 0xC5, 0xB6, 0xC6, 0xB4, +0xEF, 0xE9, 0xEA, 0xE0, 0xFF, 0x7F, 0x14, 0x50, +0x00, 0x46, 0x4A, 0x96, 0x88, 0xEA, 0x80, 0x00, +0x04, 0x00, 0x14, 0x4E, 0x88, 0xEA, 0x20, 0x84, +0x41, 0xFC, 0xC0, 0xFC, 0x0B, 0x3C, 0x00, 0x84, +0x0B, 0x3C, 0xE0, 0xFF, 0x20, 0x2E, 0xDD, 0xFF, +0x28, 0x5A, 0x84, 0x0C, 0x20, 0x3C, 0x04, 0x01, +0x40, 0x84, 0x0F, 0x0C, 0x64, 0x07, 0x08, 0x3C, +0x02, 0x81, 0x42, 0x81, 0x5F, 0xB6, 0x81, 0xF2, +0x90, 0x00, 0x00, 0x48, 0x15, 0x42, 0x14, 0xFA, +0x86, 0xEA, 0x24, 0x00, 0x20, 0x3C, 0x4A, 0x98, +0x4B, 0xA0, 0x64, 0x07, 0x07, 0xE8, 0x22, 0xE0, +0xA4, 0xEA, 0x0A, 0x80, 0x12, 0x4E, 0x5E, 0xDD, +0x41, 0x8F, 0x85, 0x00, 0x15, 0x42, 0x54, 0xFA, +0x82, 0xEA, 0x24, 0x08, 0x28, 0x8C, 0x4B, 0x98, +0xD1, 0x9C, 0x89, 0xA6, 0x5A, 0x9B, 0x88, 0xA6, +0x4A, 0xA6, 0x8B, 0xA6, 0x99, 0x9A, 0xD1, 0x9C, +0x24, 0x14, 0x71, 0x42, 0x04, 0xE8, 0x45, 0xE0, +0x76, 0x88, 0x12, 0x40, 0x11, 0x40, 0x03, 0xD5, +0xC9, 0x96, 0x76, 0x14, 0xDD, 0xFF, 0x13, 0x3C, +0x03, 0xE8, 0x23, 0xE2, 0xDD, 0xFF, 0x3B, 0x3C, +0x15, 0x42, 0x74, 0xFA, 0x25, 0xEA, 0x24, 0x0C, +0x8B, 0xA1, 0x48, 0x98, 0x0C, 0x0C, 0x14, 0x3C, +0x1D, 0xE8, 0xC1, 0xE0, 0x66, 0x96, 0xC5, 0xEA, +0x10, 0x3C, 0x53, 0xC1, 0x0C, 0xC9, 0xC1, 0x08, +0x24, 0x0C, 0x14, 0x3C, 0x0C, 0xE8, 0xA1, 0xE0, +0x24, 0x0C, 0x14, 0x3C, 0x08, 0xE8, 0x41, 0xE0, +0x06, 0x0C, 0x14, 0x3C, 0x14, 0x3C, 0x03, 0xD5, +0xE1, 0xE0, 0xC8, 0x0D, 0x01, 0xF0, 0x41, 0xE9, +0x01, 0x9C, 0x21, 0x84, 0x10, 0x3E, 0x81, 0xF0, +0x3A, 0xD5, 0x84, 0x0C, 0x6E, 0x96, 0xC5, 0xEA, +0x10, 0x2E, 0x37, 0xC1, 0x05, 0xC1, 0x6E, 0x0C, +0x0A, 0x0C, 0x14, 0x3C, 0x03, 0xD5, 0x21, 0x90, +0x0A, 0x0C, 0x10, 0x3C, 0x13, 0x3C, 0x09, 0x96, +0x27, 0xE0, 0xE0, 0xFF, 0x7B, 0x3C, 0x03, 0xE8, +0x10, 0x3C, 0xE0, 0xFF, 0x27, 0xE0, 0x6E, 0x07, +0x4A, 0xDD, 0x04, 0xE8, 0x67, 0x00, 0x00, 0x48, +0x3F, 0x0C, 0x14, 0x3C, 0x05, 0xE8, 0xA1, 0xE0, +0x3F, 0x0C, 0x14, 0x3C, 0x05, 0xE9, 0x41, 0xE0, +0x01, 0x9C, 0x1F, 0xB4, 0x10, 0xD5, 0x1F, 0xB6, +0x12, 0xE9, 0xE0, 0xE0, 0xB1, 0xEA, 0x5F, 0xB4, +0x66, 0x96, 0x91, 0x9C, 0x05, 0xC1, 0x5F, 0xB6, +0x10, 0x3E, 0x21, 0x84, 0x04, 0xD5, 0x6F, 0x0C, +0x10, 0x3E, 0x21, 0x84, 0x06, 0xE1, 0x70, 0x0C, +0x83, 0x40, 0x03, 0xE8, 0x41, 0x8D, 0x11, 0x00, +0x41, 0xE1, 0x5E, 0xDD, 0x70, 0xFF, 0xF3, 0x4E, +0x30, 0x22, 0x41, 0xDD, 0x48, 0x80, 0x46, 0x00, +0x5A, 0xEA, 0xD4, 0xFE, 0x56, 0x88, 0x31, 0x40, +0x38, 0x3C, 0x1F, 0xB5, 0x20, 0x22, 0x65, 0x07, +0x42, 0xE4, 0xEA, 0x00, 0x20, 0x22, 0x0C, 0xE9, +0x03, 0x3C, 0xEA, 0x00, 0x40, 0xE0, 0xDD, 0xFF, +0x41, 0x84, 0x06, 0xE8, 0x20, 0x3E, 0x01, 0x8D, +0x03, 0xD5, 0x6D, 0x0C, 0x32, 0x00, 0x82, 0x4E, +0x00, 0x50, 0x41, 0xDD, 0x87, 0xA4, 0x6E, 0x00, +0x04, 0xC2, 0x90, 0x96, 0x48, 0x92, 0x87, 0xA4, +0x03, 0xE5, 0x0B, 0xCA, 0x0C, 0xD5, 0x02, 0xE9, +0x03, 0x84, 0x01, 0xF3, 0x00, 0x0C, 0x14, 0x40, +0x07, 0x04, 0x10, 0x40, 0x87, 0xA4, 0x10, 0xD5, +0x02, 0xE1, 0x90, 0x96, 0x21, 0x84, 0x03, 0xE9, +0x07, 0xA4, 0x0A, 0xD5, 0x14, 0x40, 0x01, 0xF2, +0x08, 0x92, 0x00, 0x08, 0x07, 0x80, 0x10, 0x40, +0x01, 0x80, 0x10, 0x56, 0x4A, 0xDD, 0x48, 0x96, +0x21, 0x84, 0x05, 0xC1, 0x44, 0xAE, 0x41, 0xAE, +0x20, 0x3C, 0x08, 0xD5, 0x21, 0x84, 0xBA, 0x0C, +0x41, 0xAE, 0xA6, 0x96, 0x43, 0xAE, 0x02, 0xC2, +0x44, 0xFC, 0xC1, 0xFC, 0x39, 0xEA, 0x56, 0xDD, +0xFF, 0x83, 0x46, 0xAC, 0x00, 0x80, 0x1F, 0x44, +0x5B, 0xDD, 0x45, 0xAC, 0x49, 0x00, 0x10, 0x3C, +0x86, 0xF1, 0x82, 0xF2, 0x07, 0xA4, 0x93, 0xEA, +0x85, 0xF2, 0x96, 0x96, 0x06, 0xF2, 0x8A, 0xEA, +0x00, 0x88, 0x10, 0x54, 0x91, 0x9C, 0x83, 0xF0, +0x84, 0xF1, 0xB0, 0xEA, 0x39, 0xEA, 0x81, 0xF0, +0xA8, 0x3E, 0xC0, 0x87, 0x87, 0xF2, 0xDC, 0x14, +0xCC, 0x09, 0x98, 0x3E, 0x51, 0xEA, 0x64, 0xD5, +0x0A, 0x00, 0x04, 0x4E, 0x20, 0xEA, 0x51, 0xEA, +0x05, 0xE8, 0xA0, 0xE0, 0x11, 0x1D, 0x55, 0x38, +0x6B, 0x97, 0xC0, 0xEA, 0x07, 0x4E, 0x51, 0xEA, +0x51, 0xEA, 0x07, 0x00, 0x03, 0xE8, 0x40, 0xE0, +0x11, 0x1D, 0x25, 0x38, 0x01, 0x8D, 0x02, 0xF0, +0x06, 0xF0, 0xF8, 0x99, 0xE8, 0xE9, 0x00, 0xE1, +0x03, 0xC8, 0x05, 0xF0, 0x0A, 0xD5, 0x60, 0x80, +0x1B, 0x0C, 0x64, 0x3C, 0x24, 0x98, 0x32, 0x42, +0x64, 0x00, 0x60, 0x44, 0xD7, 0x98, 0x31, 0x40, +0x04, 0xF0, 0xDB, 0x96, 0x80, 0x80, 0x03, 0xC8, +0x44, 0x3C, 0x08, 0xD5, 0x9B, 0xEA, 0xBC, 0x0C, +0x42, 0x40, 0x14, 0xFF, 0x23, 0x97, 0xB7, 0x14, +0xBE, 0x80, 0xA2, 0xFE, 0xD3, 0x9A, 0xC1, 0x84, +0x4F, 0xEA, 0xE0, 0x84, 0x25, 0xD5, 0x01, 0x81, +0x01, 0x95, 0x24, 0x38, 0x93, 0x96, 0x9A, 0x98, +0x09, 0x95, 0x24, 0x38, 0x11, 0x95, 0x24, 0x38, +0x04, 0x00, 0x24, 0x4E, 0x09, 0x95, 0x74, 0x38, +0x11, 0x95, 0x24, 0x38, 0x02, 0xE0, 0x01, 0xF0, +0x14, 0x38, 0x06, 0xE8, 0xA9, 0x96, 0x11, 0x95, +0x83, 0xF2, 0x81, 0xF1, 0x11, 0x95, 0x14, 0x38, +0x04, 0xE8, 0x28, 0xE0, 0x11, 0x95, 0x04, 0x38, +0x04, 0x38, 0x00, 0x81, 0xB1, 0x9D, 0x11, 0x95, +0x09, 0x15, 0x02, 0x38, 0x68, 0x99, 0x02, 0xF0, +0x61, 0x4C, 0x07, 0xF2, 0x28, 0x80, 0xDB, 0x7F, +0x01, 0x00, 0xEF, 0x51, 0xFF, 0x40, 0x02, 0xF0, +0x06, 0xE8, 0x07, 0x00, 0xFE, 0x80, 0x40, 0x84, +0x02, 0x81, 0xA2, 0x80, 0x01, 0xF2, 0xAB, 0xD5, +0x85, 0xAC, 0x56, 0xDD, 0x46, 0xAC, 0x03, 0xF2, +0xC4, 0xFC, 0x87, 0xAC, 0xA4, 0x3C, 0x55, 0xFC, +0x55, 0xDD, 0x28, 0x0C, 0x02, 0x4E, 0x36, 0x96, +0x43, 0xEA, 0x06, 0x01, 0xE0, 0x03, 0x45, 0xA4, +0x87, 0xF1, 0x07, 0x00, 0x07, 0xF3, 0x82, 0xA4, +0x11, 0x42, 0x3E, 0x80, 0x82, 0xF2, 0x73, 0x0C, +0x00, 0x02, 0x86, 0xA4, 0x91, 0xF2, 0x08, 0x00, +0xC3, 0x9E, 0x1F, 0xB6, 0x02, 0x9E, 0x5F, 0xB4, +0x94, 0xF0, 0x97, 0xF3, 0x00, 0xF8, 0x30, 0x40, +0x91, 0x9E, 0x1F, 0xB4, 0x1C, 0xB1, 0x81, 0xF3, +0x08, 0x08, 0x3F, 0x40, 0x93, 0xF2, 0xE3, 0x98, +0xF7, 0x7F, 0x20, 0x50, 0x00, 0x04, 0x81, 0x40, +0x8B, 0xF3, 0x8C, 0x9D, 0x2F, 0x50, 0x20, 0x84, +0x3F, 0x50, 0x01, 0x00, 0x83, 0xF1, 0x02, 0x00, +0x9B, 0xF3, 0x9A, 0xF2, 0xA5, 0x00, 0x00, 0x48, +0x06, 0x40, 0x0F, 0x4C, 0x58, 0x3E, 0x32, 0x9E, +0x17, 0xD5, 0xCC, 0x09, 0x00, 0x4C, 0x1A, 0xF1, +0x23, 0xEA, 0x0F, 0xC0, 0x08, 0xF2, 0x31, 0x9E, +0x12, 0x38, 0x95, 0xEA, 0x01, 0x80, 0x11, 0x09, +0x53, 0xEA, 0x09, 0xF1, 0x42, 0x38, 0x0A, 0xF1, +0x5B, 0xD5, 0x11, 0x05, 0x01, 0x4C, 0x1B, 0xF2, +0x0F, 0xF0, 0x11, 0x40, 0xCC, 0x09, 0x58, 0x3E, +0x32, 0x38, 0x32, 0x9D, 0x12, 0x38, 0x11, 0x81, +0x22, 0x38, 0x11, 0x99, 0x34, 0x9D, 0x11, 0x91, +0x42, 0x38, 0x01, 0x80, 0xEE, 0xD5, 0x11, 0x91, +0x00, 0x4C, 0x18, 0xF1, 0x19, 0xF2, 0x09, 0xC0, +0x32, 0x38, 0x23, 0xEA, 0x08, 0xF0, 0x11, 0x09, +0xDE, 0xD5, 0x96, 0xEA, 0x01, 0x4C, 0x17, 0xF2, +0x06, 0xF0, 0x0D, 0x40, 0x32, 0x38, 0x23, 0xEA, +0x96, 0xEA, 0x11, 0x21, 0x05, 0xF1, 0x01, 0x80, +0xFF, 0x83, 0x53, 0xEA, 0xD4, 0xD5, 0x15, 0xF1, +0x01, 0x4C, 0x14, 0xF2, 0x0E, 0xF0, 0x0D, 0x40, +0x23, 0xEA, 0x0D, 0xF2, 0x12, 0x38, 0x95, 0xEA, +0x01, 0x80, 0x11, 0x09, 0x53, 0xEA, 0x0C, 0xF1, +0xC6, 0xD5, 0x16, 0xF1, 0x01, 0x4C, 0x13, 0xF2, +0x00, 0x4E, 0x06, 0x40, 0x12, 0xF1, 0xE4, 0xFF, +0x5F, 0xB4, 0xBF, 0xD5, 0x7A, 0x9D, 0x23, 0xEA, +0x0C, 0x40, 0x01, 0x4C, 0x7A, 0x9E, 0x3C, 0x9E, +0x02, 0x38, 0x95, 0xEA, 0x22, 0x38, 0x11, 0x05, +0x42, 0x38, 0x11, 0x1D, 0xB2, 0xD5, 0x11, 0x15, +0x11, 0x1D, 0x32, 0x38, 0x11, 0x15, 0x12, 0x38, +0x7E, 0x9C, 0x01, 0x80, 0x13, 0x50, 0x53, 0xEA, +0x12, 0x38, 0x08, 0x80, 0x81, 0x80, 0x11, 0x05, +0x01, 0x28, 0x10, 0x42, 0x01, 0xA8, 0x31, 0x42, +0x21, 0x42, 0x0B, 0x98, 0x02, 0x98, 0x01, 0x28, +0x01, 0x28, 0x12, 0x42, 0x01, 0x98, 0x04, 0xF3, +0x19, 0xAA, 0x02, 0x90, 0x84, 0xF3, 0x21, 0x8D, +0x3F, 0xB4, 0xF9, 0x9D, 0x00, 0xF8, 0x04, 0x40, +0xF2, 0x4E, 0x20, 0xE0, 0x01, 0xF2, 0x7B, 0xFF, +0x23, 0xEA, 0x60, 0x84, 0x0A, 0xD5, 0x10, 0xF5, +0x01, 0x09, 0x12, 0x38, 0xD9, 0x9C, 0x29, 0xA2, +0x03, 0x96, 0x08, 0x9A, 0x09, 0x09, 0x02, 0x38, +0x3F, 0xB4, 0x91, 0x9C, 0x00, 0xF8, 0x01, 0x40, +0xF3, 0xE8, 0x20, 0xE0, 0x03, 0xF2, 0x02, 0xF0, +0x91, 0x9C, 0x01, 0xF3, 0x83, 0xF2, 0xD8, 0x98, +0xB0, 0x99, 0x81, 0xF3, 0x74, 0x9E, 0x00, 0x89, +0x07, 0xF3, 0x03, 0xF2, 0x11, 0xF1, 0x8F, 0xF1, +0x20, 0xE0, 0x13, 0x98, 0x24, 0x50, 0x2B, 0xE9, +0x34, 0x50, 0x02, 0x00, 0x04, 0x50, 0x04, 0x00, +0x86, 0xF2, 0x08, 0x00, 0x24, 0x50, 0x85, 0xF3, +0x34, 0x50, 0x01, 0x00, 0x14, 0x50, 0x03, 0x00, +0x95, 0xF0, 0x09, 0x00, 0x04, 0x50, 0x8E, 0xF2, +0x0B, 0xF2, 0x05, 0x00, 0x01, 0xF3, 0x8D, 0xF3, +0x8C, 0xF0, 0x96, 0xF1, 0x06, 0x00, 0x14, 0x50, +0x03, 0x00, 0x0F, 0x50, 0x90, 0xF2, 0x92, 0xF1, +0x84, 0xF2, 0xDC, 0x9F, 0x73, 0x9E, 0x98, 0xF0, +0xF3, 0x9C, 0xB1, 0x9C, 0x20, 0x85, 0x35, 0x9C, +0x88, 0xF2, 0x99, 0xF1, 0x8A, 0xF0, 0x89, 0xF3, +0xD5, 0xFC, 0xAD, 0xD5, 0x90, 0x3C, 0x44, 0xFC, +0x0C, 0x84, 0x4A, 0x00, 0xE0, 0x84, 0x30, 0xEA, +0x0D, 0x84, 0x86, 0xF0, 0xA6, 0xEA, 0x30, 0xEA, +0x0E, 0x84, 0x85, 0xF0, 0xE0, 0x45, 0x30, 0xEA, +0x84, 0xF0, 0x1E, 0x00, 0x30, 0xEA, 0x0F, 0x84, +0x64, 0x00, 0xA0, 0x44, 0x04, 0x40, 0x83, 0xF0, +0x82, 0xF0, 0x08, 0x90, 0x30, 0xEA, 0x01, 0xFA, +0x07, 0x80, 0x9F, 0x14, 0x35, 0xD5, 0x81, 0xF0, +0x39, 0x98, 0x06, 0xF1, 0x11, 0x01, 0x44, 0x38, +0x78, 0x98, 0x05, 0xF0, 0x54, 0x38, 0x04, 0xF0, +0x78, 0x98, 0x11, 0x05, 0x11, 0x05, 0x34, 0x38, +0x24, 0xF8, 0x52, 0x42, 0x24, 0x78, 0x42, 0x42, +0x24, 0xF8, 0x31, 0x42, 0xD6, 0xA8, 0x52, 0x40, +0x78, 0x98, 0x03, 0xF0, 0x11, 0x05, 0x94, 0x38, +0x78, 0x98, 0x02, 0xF0, 0x01, 0x05, 0x24, 0x38, +0xD6, 0x28, 0x42, 0x40, 0xD6, 0xA8, 0x31, 0x40, +0x23, 0x98, 0x2C, 0x99, 0x95, 0x9A, 0x41, 0x97, +0x24, 0x38, 0x93, 0x96, 0x01, 0xF1, 0x09, 0x05, +0x39, 0x99, 0x04, 0x84, 0x76, 0x80, 0x14, 0x40, +0x11, 0x11, 0x24, 0x38, 0x11, 0x9A, 0xF9, 0x9D, +0x03, 0x96, 0x05, 0x9A, 0x09, 0x11, 0x04, 0x38, +0xE1, 0xE0, 0x07, 0xF1, 0xC4, 0xFC, 0xCA, 0xE9, +0x24, 0x3C, 0x41, 0xFC, 0xE0, 0x2F, 0xB2, 0x10, +0x38, 0x3E, 0x70, 0x21, 0x20, 0x84, 0x88, 0x21, +0x00, 0x96, 0x81, 0xF2, 0x20, 0x80, 0x21, 0x50, +0xE1, 0x80, 0xC1, 0x80, 0x3F, 0x85, 0x41, 0x81, +0x38, 0x00, 0x80, 0x44, 0x16, 0xCC, 0x01, 0xF4, +0x15, 0x00, 0xE3, 0x4F, 0x24, 0xA0, 0x40, 0x42, +0x74, 0x21, 0x58, 0x3E, 0x24, 0xA7, 0x25, 0x99, +0x0C, 0xC5, 0x64, 0x97, 0x0B, 0x18, 0x42, 0x42, +0x10, 0xA5, 0x09, 0xC4, 0x23, 0x97, 0x21, 0x9F, +0x47, 0x4E, 0x10, 0xAD, 0xB1, 0x9D, 0x04, 0x00, +0x71, 0x10, 0x08, 0xD5, 0xD8, 0xAF, 0xD0, 0x7F, +0x00, 0x00, 0xA1, 0x12, 0x01, 0x80, 0x91, 0x10, +0x31, 0x50, 0x49, 0x9C, 0x21, 0x50, 0x38, 0x80, +0x18, 0x5A, 0x38, 0x00, 0x05, 0xC6, 0xDD, 0x0F, +0x67, 0x3E, 0x80, 0xEA, 0x41, 0xD5, 0xA6, 0xFF, +0xA4, 0xFF, 0x67, 0x3E, 0xB3, 0xFF, 0x67, 0x3E, +0xAF, 0xFF, 0x67, 0x3E, 0x63, 0x04, 0x6E, 0x3C, +0x1D, 0x03, 0x6E, 0x3C, 0x17, 0x00, 0x6E, 0x3C, +0x13, 0x00, 0x6E, 0x3C, 0xAE, 0xFF, 0x67, 0x3E, +0xA6, 0xFF, 0x67, 0x3E, 0x07, 0x3E, 0x0C, 0xC8, +0x2C, 0xEA, 0xB4, 0xFF, 0x40, 0xA4, 0xC6, 0xA4, +0x11, 0x42, 0x43, 0x84, 0x22, 0x92, 0x73, 0x88, +0x04, 0xD5, 0x46, 0xAC, 0x07, 0x3E, 0x02, 0x84, +0x80, 0xEA, 0xB4, 0xFF, 0x17, 0x4E, 0x42, 0xEA, +0x49, 0x9E, 0x04, 0x00, 0x42, 0xEA, 0x40, 0xEA, +0x04, 0x00, 0x14, 0x4E, 0x40, 0xEA, 0x49, 0x9C, +0xE4, 0xFF, 0x07, 0x3C, 0x0B, 0x3C, 0x03, 0xC8, +0x5C, 0xEA, 0xE5, 0xFF, 0x20, 0x84, 0xB4, 0xEA, +0x98, 0xFF, 0x17, 0x3E, 0x0B, 0x3C, 0x00, 0x84, +0x0B, 0x3C, 0xDF, 0xFF, 0x0B, 0x3C, 0xDE, 0xFF, +0x00, 0x3E, 0xE1, 0xFF, 0xC0, 0x84, 0x8C, 0x0C, +0xC1, 0xFC, 0x06, 0x80, 0x41, 0xDD, 0x20, 0xFC, +0x30, 0x02, 0x00, 0x50, 0xFF, 0x7E, 0x20, 0x02, +0x0C, 0x00, 0x18, 0x3E, 0x85, 0xA4, 0x88, 0xAC, +0x89, 0xAC, 0xE0, 0x84, 0x07, 0xA4, 0x86, 0xA4, +0x0B, 0xAC, 0x8A, 0xAC, 0x88, 0x21, 0x08, 0x3E, +0x48, 0x03, 0x30, 0x50, 0x5F, 0x84, 0x20, 0x84, +0xF0, 0x7F, 0x10, 0x10, 0x70, 0x12, 0x40, 0xAE, +0x81, 0xAE, 0x10, 0x00, 0x01, 0x4C, 0x4E, 0xEA, +0x7B, 0x3C, 0xF9, 0xFF, 0x10, 0x3C, 0xEC, 0xFF, +0x00, 0x3C, 0x2A, 0x0C, 0x98, 0xEA, 0x2B, 0x0C, +0x0C, 0xFE, 0x32, 0xAC, 0x01, 0x96, 0x71, 0xAC, +0xE3, 0xFF, 0x0B, 0x3C, 0xC6, 0xF9, 0x30, 0xAC, +0x75, 0xA4, 0x36, 0xA4, 0x33, 0xAC, 0x05, 0xF8, +0x08, 0x00, 0x03, 0x02, 0x01, 0x9C, 0x77, 0xA4, +0x07, 0x94, 0x01, 0x9A, 0x34, 0xAC, 0xFF, 0x83, +0xCA, 0x0D, 0x78, 0x3C, 0x4A, 0xEA, 0x00, 0x84, +0x45, 0x0C, 0x14, 0x3C, 0xA5, 0xFF, 0x77, 0x3E, +0xEE, 0xFF, 0x7B, 0x3C, 0x16, 0x4E, 0x9D, 0xEA, +0x21, 0x84, 0x04, 0x00, 0x00, 0x84, 0x9D, 0xEA, +0x70, 0x21, 0x00, 0x3E, 0x6C, 0x0C, 0x18, 0x3E, +0x00, 0x10, 0x0A, 0xAE, 0x0C, 0xAE, 0x19, 0x80, +0x20, 0x84, 0x0B, 0xAE, 0x9A, 0xFF, 0x17, 0x3E, +0x56, 0x00, 0x00, 0x3E, 0x2A, 0x00, 0x18, 0x3C, +0x9D, 0xFF, 0x07, 0x3E, 0x07, 0x3E, 0x8E, 0xEA, +0x28, 0x3E, 0x9F, 0xFF, 0x51, 0xAC, 0x80, 0x11, +0x18, 0x3C, 0x52, 0xAC, 0x11, 0x12, 0x5C, 0x07, +0x44, 0xDD, 0x08, 0x00, 0xF1, 0x80, 0x30, 0x02, +0xE9, 0xFF, 0x3B, 0x3C, 0x20, 0x00, 0x28, 0x3E, +0x40, 0x02, 0x62, 0x84, 0xD3, 0xAE, 0xB2, 0x80, +0xBF, 0x80, 0x30, 0x22, 0x10, 0xAE, 0x12, 0xAE, +0x31, 0x40, 0x4D, 0xDD, 0xE4, 0xFE, 0xB6, 0x80, +0x1C, 0x00, 0x38, 0x3C, 0xB2, 0x80, 0x30, 0x02, +0xBF, 0x80, 0x10, 0x22, 0x36, 0x80, 0x00, 0x40, +0x08, 0x3C, 0x1C, 0xFE, 0xA0, 0xFC, 0x1D, 0x00, +0x49, 0x97, 0x41, 0xFC, 0x0E, 0x3C, 0x80, 0x84, +0xD3, 0x96, 0x05, 0x00, 0x4B, 0x3C, 0x43, 0xEA, +0x4B, 0x3C, 0xEF, 0xFF, 0x4B, 0x3C, 0xF1, 0xFF, +0x85, 0xA5, 0xF3, 0xFF, 0x87, 0xA4, 0x06, 0xA5, +0x08, 0x00, 0x10, 0x02, 0x21, 0x00, 0x37, 0x4E, +0x00, 0x80, 0x6F, 0x10, 0x02, 0x80, 0x2F, 0x10, +0x03, 0x80, 0x1F, 0x10, 0x01, 0x80, 0x4F, 0x10, +0x1F, 0xB4, 0x81, 0xB1, 0x45, 0x80, 0x26, 0x80, +0xAD, 0x08, 0x00, 0x49, 0x70, 0xA6, 0x31, 0xA6, +0x01, 0x9A, 0x01, 0x9C, 0xB2, 0xA6, 0x73, 0xA6, +0x4A, 0x9A, 0x49, 0x9C, 0x49, 0x96, 0x01, 0x96, +0xEF, 0xFF, 0x0B, 0x3C, 0x1B, 0x3C, 0x0C, 0xFE, +0x0B, 0x3C, 0xF1, 0xFF, 0xC1, 0xFC, 0xF3, 0xFF, +0xA9, 0xEA, 0x00, 0xFC, 0x20, 0x22, 0x41, 0xDD, +0x22, 0xE0, 0x26, 0x00, 0x93, 0xEA, 0x3C, 0xE9, +0x00, 0x20, 0x21, 0x54, 0x20, 0x02, 0x38, 0xC2, +0x04, 0xCA, 0x50, 0x00, 0x56, 0x07, 0x24, 0x3C, +0x20, 0x22, 0x08, 0xD5, 0x4D, 0xDD, 0x50, 0x00, +0x21, 0x40, 0x8C, 0xFE, 0x93, 0x96, 0x16, 0x00, +0x56, 0x07, 0x00, 0x3C, 0x02, 0xE8, 0x40, 0xE0, +0x10, 0x3C, 0x83, 0x96, 0x38, 0xEA, 0xC7, 0x0B, +0xAC, 0xFF, 0xFF, 0x49, 0x10, 0x22, 0x41, 0xDD, +0x23, 0x3C, 0x31, 0x00, 0x41, 0xE0, 0xEF, 0xFF, +0x10, 0x22, 0x0D, 0xE8, 0x23, 0x3C, 0x32, 0x00, +0x41, 0xE0, 0xF1, 0xFF, 0x00, 0x22, 0x07, 0xE8, +0x13, 0x3C, 0x36, 0x00, 0x20, 0xE0, 0xF3, 0xFF, +0x14, 0x3C, 0x0E, 0xE9, 0xF0, 0x46, 0x11, 0x0C, +0x04, 0x3C, 0x81, 0x00, 0x44, 0xFE, 0xC6, 0x0B, +0xFF, 0x83, 0x4D, 0xDD, 0x16, 0x80, 0x10, 0x40, +0x63, 0x07, 0x18, 0x3C, 0x00, 0xFC, 0x80, 0xFC, +0x4C, 0xDD, 0x80, 0x97, 0x4A, 0xEA, 0x06, 0x80, +0x2E, 0x00, 0x06, 0x4E, 0x93, 0x04, 0x00, 0x49, +0x17, 0x3E, 0x20, 0x84, 0x04, 0x3C, 0xA6, 0xFF, +0x14, 0x3C, 0xAD, 0x0C, 0x20, 0xE0, 0xC8, 0x0B, +0x02, 0xE9, 0xFF, 0x83, 0x20, 0x84, 0x38, 0xF9, +0x4A, 0xDD, 0xB4, 0xEA, 0x14, 0xC1, 0x42, 0xA6, +0x66, 0x96, 0xB1, 0xEA, 0x44, 0xA6, 0x0B, 0xC1, +0x00, 0x4E, 0x04, 0xC1, 0x05, 0xD5, 0x29, 0x04, +0x04, 0xC0, 0x03, 0xA6, 0x2C, 0x04, 0x00, 0x4E, +0x10, 0x3C, 0x40, 0xAC, 0x8E, 0xEA, 0x0B, 0x0C, +0x10, 0x3E, 0x20, 0x84, 0x4A, 0xDD, 0x6E, 0x0C, +0x44, 0xAE, 0x20, 0x84, 0x10, 0x10, 0x43, 0xAE, +0x43, 0xA8, 0x19, 0x00, 0x40, 0xFC, 0x80, 0xFC, +0x20, 0x84, 0x45, 0xDD, 0x18, 0x3C, 0xC0, 0x96, +0x10, 0x3E, 0xCA, 0x0D, 0x88, 0xEA, 0x96, 0x1B, +0x6D, 0x0C, 0x10, 0x3E, 0x84, 0x0C, 0x10, 0x3E, +0xEF, 0xFF, 0x1B, 0x3C, 0xF1, 0xFF, 0x1B, 0x3C, +0xF3, 0xFF, 0x1B, 0x3C, 0xAB, 0xFF, 0x17, 0x3E, +0x64, 0x21, 0x28, 0x3E, 0xC6, 0x0B, 0x18, 0x3C, +0x00, 0x00, 0x01, 0x22, 0xAC, 0x0E, 0x68, 0x3E, +0x0D, 0x00, 0x13, 0x12, 0x0E, 0x00, 0x13, 0x12, +0x0F, 0x00, 0x13, 0x12, 0x05, 0x00, 0x06, 0x4E, +0x0C, 0x00, 0x01, 0x00, 0x01, 0x84, 0x12, 0xC0, +0xE1, 0x85, 0x1A, 0xF8, 0xF6, 0xC3, 0x07, 0x4C, +0x60, 0x3E, 0xC0, 0x84, 0x00, 0x84, 0x70, 0x21, +0x4A, 0xDD, 0x4A, 0xEA, 0x84, 0xAF, 0x82, 0xAF, +0x60, 0x10, 0x83, 0xAF, 0x5A, 0xDD, 0x19, 0x00, +0x57, 0x3E, 0xA1, 0x84, 0x07, 0xCB, 0xA0, 0xFF, +0x52, 0xAC, 0xD1, 0xAC, 0x54, 0xAC, 0x53, 0xAC, +0x5A, 0xDD, 0x55, 0xAC, 0xDF, 0x03, 0x00, 0x49, +0x07, 0x4C, 0xE1, 0x85, 0x37, 0x2E, 0xDB, 0x83, +0x30, 0x5A, 0xB4, 0xFF, 0x38, 0x5A, 0x04, 0x01, +0x47, 0xDD, 0x24, 0x03, 0x77, 0xA4, 0x5B, 0xEA, +0x54, 0xDD, 0x0C, 0xFF, 0x53, 0x02, 0x84, 0xEA, +0x30, 0xAD, 0x08, 0x00, 0x2C, 0xFF, 0x5B, 0xEA, +0xFF, 0x83, 0x84, 0xEA, 0x09, 0x00, 0x53, 0x02, +0x00, 0x4E, 0x31, 0xAD, 0x53, 0x02, 0xF9, 0xFF, +0x32, 0xAD, 0x0A, 0x00, 0x21, 0x22, 0x5B, 0xEA, +0x2C, 0xFF, 0x3D, 0x00, 0x33, 0xAD, 0x84, 0xEA, +0x0B, 0x00, 0x43, 0x02, 0x11, 0x40, 0xA4, 0xFE, +0x74, 0xAC, 0x57, 0x04, 0x37, 0xA4, 0x0F, 0xD5, +0x08, 0x00, 0x13, 0x02, 0x71, 0xAC, 0x30, 0xAC, +0x09, 0x00, 0x23, 0x02, 0x0A, 0x00, 0x03, 0x02, +0x0B, 0x00, 0x13, 0x02, 0x33, 0xAC, 0xB2, 0xAC, +0x14, 0x3C, 0x74, 0xAC, 0x17, 0x4E, 0xC9, 0x0B, +0x41, 0xDD, 0x2C, 0x00, 0x5A, 0x01, 0x00, 0x50, +0x03, 0x00, 0x20, 0x22, 0x25, 0x00, 0x27, 0x4E, +0x43, 0x00, 0x20, 0x22, 0x21, 0x00, 0x24, 0x4E, +0x90, 0x96, 0x9A, 0x9E, 0x1C, 0xE8, 0x42, 0xE6, +0x0E, 0xCA, 0x86, 0xA4, 0x06, 0x80, 0x87, 0xA4, +0x81, 0xA4, 0x06, 0xCA, 0x14, 0xE8, 0x41, 0xE0, +0x12, 0xD5, 0x41, 0xAC, 0x41, 0xE0, 0x83, 0xA4, +0x43, 0xAC, 0x0F, 0xE8, 0x87, 0xA4, 0x0D, 0xD5, +0x06, 0xCA, 0x06, 0x80, 0x41, 0xE0, 0x84, 0xA4, +0x44, 0xAC, 0x07, 0xE8, 0x82, 0xA4, 0x05, 0xD5, +0x02, 0xE8, 0x41, 0xE0, 0x06, 0x80, 0x42, 0xAC, +0x0C, 0x00, 0x10, 0x02, 0xD8, 0x96, 0xDA, 0x9E, +0x62, 0xE6, 0x45, 0xAC, 0x24, 0x3C, 0x08, 0xE8, +0x54, 0xFE, 0x07, 0x0C, 0x10, 0x40, 0x5A, 0xEA, +0x45, 0xAC, 0x57, 0x88, 0x03, 0x3C, 0x75, 0xA4, +0x01, 0x98, 0xEB, 0xFF, 0xFF, 0x49, 0x35, 0xAC, +0xFF, 0x49, 0xC0, 0xF9, 0xB5, 0xEA, 0x0B, 0xFA, +0xA3, 0xF8, 0xFF, 0x49, 0x34, 0xFD, 0xFF, 0x49, +0x26, 0xFC, 0xFF, 0x49, 0x8F, 0xFB, 0xFF, 0x49, +0x18, 0x3E, 0x78, 0xEA, 0xFF, 0x49, 0xCC, 0x09, +0x36, 0xA4, 0xF3, 0xF8, 0x20, 0xE2, 0x70, 0xA4, +0x30, 0xAC, 0x02, 0xE8, 0x46, 0xA4, 0x2C, 0xEA, +0x41, 0xE2, 0x85, 0xA4, 0x45, 0xAC, 0x02, 0xE8, +0x80, 0x00, 0x10, 0x46, 0xE2, 0xFF, 0x07, 0x3C, +0x2B, 0x3C, 0x81, 0x9E, 0x07, 0x4E, 0xE2, 0xFF, +0x04, 0x3C, 0x0E, 0x00, 0x20, 0x3C, 0xC3, 0x0B, +0x40, 0xE0, 0x56, 0x07, 0xF0, 0x02, 0xF3, 0x4E, +0x20, 0xE0, 0xB7, 0xEA, 0x00, 0x48, 0x03, 0xE8, +0x20, 0x84, 0xEB, 0x02, 0x04, 0x3C, 0x8E, 0xEA, +0x20, 0x3C, 0xC3, 0x0B, 0x02, 0xE0, 0x56, 0x07, +0xB7, 0xEA, 0x2B, 0xE8, 0x28, 0xE8, 0x01, 0xE0, +0x5E, 0xDD, 0x7D, 0xEA, 0xFF, 0x83, 0x20, 0xE0, +0x07, 0x4E, 0x06, 0xE8, 0xF2, 0xF8, 0x05, 0x00, +0x4A, 0xF9, 0x02, 0xE8, 0x7D, 0xEA, 0xFB, 0xF8, +0x08, 0x00, 0x07, 0x4E, 0x05, 0xC0, 0x4B, 0xDD, +0xB8, 0x02, 0x00, 0x4E, 0x40, 0xF9, 0x02, 0xE8, +0x17, 0x3E, 0x20, 0x84, 0x00, 0x4E, 0xA1, 0xFF, +0x06, 0xE9, 0xC4, 0xFE, 0xF0, 0x46, 0x20, 0x84, +0x40, 0xEA, 0x80, 0x00, 0x20, 0x84, 0xFF, 0x83, +0x70, 0x2E, 0xB4, 0xEA, 0x73, 0x4E, 0x6E, 0x0C, +0xC7, 0x80, 0xBB, 0x02, 0x24, 0x3C, 0xAD, 0xF8, +0x54, 0xDD, 0xEF, 0x0B, 0x2C, 0xEA, 0x84, 0xFE, +0x36, 0x04, 0x21, 0x40, 0x49, 0x98, 0x47, 0xA4, +0x86, 0xAC, 0x91, 0x96, 0x02, 0xE8, 0x22, 0xE0, +0xFF, 0x49, 0x46, 0xAC, 0x00, 0x49, 0xC1, 0xF9, +0xE0, 0x80, 0x8C, 0x03, 0x60, 0x3C, 0x11, 0xC0, +0xBE, 0x97, 0x08, 0x00, 0x01, 0x84, 0x03, 0xC6, +0x07, 0x2E, 0x0B, 0xD5, 0x02, 0x4E, 0x9D, 0xFF, +0x10, 0x3C, 0x9C, 0x02, 0x49, 0x98, 0xC6, 0x0B, +0xC6, 0x0B, 0x18, 0x3C, 0x24, 0x3C, 0x89, 0xF8, +0x5C, 0xEA, 0xC6, 0x0B, 0x02, 0xE9, 0x41, 0xE0, +0x60, 0x3C, 0x24, 0xC0, 0xBE, 0x97, 0x08, 0x00, +0x22, 0xF8, 0x1D, 0xC6, 0xF0, 0x0B, 0x34, 0x3C, +0xC6, 0x0B, 0x44, 0x3C, 0x10, 0xE8, 0x83, 0xE0, +0xAD, 0x0C, 0x24, 0x3C, 0xC8, 0x0B, 0x14, 0x3C, +0x47, 0x3E, 0x80, 0x84, 0x22, 0xE0, 0xA1, 0xFF, +0x40, 0x84, 0x04, 0xE9, 0xE4, 0xFF, 0x2B, 0x3C, +0x28, 0x3C, 0x40, 0x84, 0x05, 0xE4, 0xC8, 0x0B, +0xE4, 0x01, 0xF3, 0x4E, 0x00, 0x48, 0x30, 0xF8, +0xFF, 0x49, 0xE1, 0x01, 0x60, 0xF8, 0x1B, 0xFE, +0x3E, 0x96, 0x2B, 0xEA, 0x00, 0x49, 0x69, 0xC0, +0x24, 0x3C, 0x2E, 0x04, 0x34, 0x3C, 0xAD, 0x0C, +0x62, 0xE0, 0xC6, 0x0B, 0x20, 0x3C, 0x05, 0xE9, +0x2B, 0x3C, 0xB1, 0x0C, 0x05, 0x4E, 0xE4, 0xFF, +0x00, 0x49, 0x5C, 0x00, 0x05, 0xC8, 0x7D, 0x03, +0xED, 0x03, 0x00, 0x49, 0x55, 0x00, 0x07, 0x4E, +0xAE, 0x0C, 0x14, 0x3C, 0xC6, 0x0B, 0x04, 0x3C, +0x03, 0xE9, 0x20, 0xE0, 0x02, 0x04, 0x00, 0x49, +0xEB, 0xFF, 0x03, 0x3C, 0x10, 0x3C, 0x08, 0xC8, +0x20, 0x3C, 0x11, 0x0C, 0x4A, 0x98, 0x5B, 0x07, +0x5B, 0x07, 0x18, 0x3C, 0x11, 0x0C, 0x10, 0x3C, +0x80, 0x00, 0xF0, 0x46, 0xEB, 0xFF, 0x1B, 0x3C, +0x28, 0x2E, 0xFF, 0x83, 0x00, 0x84, 0xD0, 0x0E, +0x88, 0x21, 0x18, 0x3E, 0x38, 0x00, 0x40, 0x44, +0x50, 0x42, 0x60, 0x80, 0x68, 0x3E, 0x24, 0x10, +0x6E, 0x99, 0x74, 0x21, 0x6C, 0x97, 0x6C, 0xA7, +0x50, 0x20, 0x08, 0xC5, 0xA2, 0xE0, 0x00, 0x80, +0x88, 0xAE, 0x03, 0xE9, 0xC8, 0xAE, 0x02, 0xD5, +0x10, 0x50, 0x01, 0x9C, 0x08, 0x5A, 0x38, 0x80, +0x34, 0x3C, 0xEE, 0x0F, 0x00, 0x3C, 0xF2, 0x0B, +0xC2, 0xEA, 0xC2, 0x0B, 0x04, 0xE8, 0x60, 0xE0, +0x0D, 0xAC, 0x00, 0x84, 0x0D, 0xA4, 0x08, 0xD5, +0x18, 0x0C, 0x24, 0x3C, 0xCD, 0xAC, 0xC1, 0x9C, +0x04, 0xE9, 0x40, 0xE0, 0x00, 0x48, 0xC1, 0x84, +0x4C, 0xDD, 0x7E, 0x01, 0x05, 0xD5, 0xB6, 0xF8, +0x54, 0xEA, 0x99, 0xEA, 0xFF, 0x83, 0x01, 0x9C, +0xFB, 0xE9, 0x03, 0xE0, 0x00, 0x84, 0x5A, 0xDD, +0xB7, 0x10, 0x08, 0x3C, 0xEB, 0xFF, 0x0B, 0x3C, +0x00, 0x3C, 0xA9, 0xEA, 0x20, 0xE0, 0x56, 0x07, +0xF3, 0x4E, 0xFF, 0x83, 0x00, 0x49, 0x67, 0x01, +0x07, 0xC8, 0x31, 0x0E, 0xDF, 0xFF, 0x0B, 0x3C, +0x6D, 0x0C, 0x00, 0x2E, 0x60, 0xF8, 0x2D, 0xC8, +0x0C, 0xFF, 0x00, 0x4E, 0x07, 0x4E, 0x0F, 0xE8, +0x00, 0x46, 0x0E, 0x00, 0x13, 0x3C, 0x80, 0x00, +0x49, 0x9C, 0xDF, 0xFF, 0x1B, 0x3C, 0x4B, 0x96, +0x22, 0xE4, 0xDF, 0xFF, 0x02, 0xE8, 0xFF, 0x83, +0x20, 0x84, 0x4F, 0xF8, 0x80, 0x00, 0xF0, 0x46, +0xDF, 0xFF, 0x1B, 0x3C, 0x21, 0xEA, 0xFF, 0x83, +0x00, 0x84, 0xAA, 0xEA, 0xCC, 0x09, 0x18, 0x3E, +0x00, 0x4E, 0x03, 0xD5, 0x03, 0xE0, 0xC7, 0xFF, +0x00, 0x2E, 0xFD, 0xE9, 0x08, 0x5A, 0x6E, 0x0C, +0x29, 0xEA, 0x06, 0x01, 0x03, 0x4E, 0x26, 0x96, +0xFF, 0x49, 0xC5, 0x00, 0x55, 0xDD, 0x4C, 0xF9, +0x05, 0xC8, 0x26, 0x96, 0x85, 0x0C, 0x00, 0x3E, +0x84, 0x0C, 0x00, 0x3E, 0x2E, 0x96, 0x55, 0xDD, +0x18, 0x3E, 0x07, 0xC8, 0x0A, 0xAE, 0x6C, 0x0C, +0x0C, 0xAE, 0x09, 0xAE, 0x26, 0xEA, 0x0B, 0xAE, +0x0A, 0xC0, 0x26, 0x96, 0x02, 0xE6, 0x4B, 0xDD, +0x4A, 0xDD, 0x07, 0xE9, 0x42, 0xAE, 0x20, 0x84, +0x44, 0xAE, 0x41, 0xAE, 0x29, 0xEA, 0x43, 0xAE, +0x05, 0xC8, 0x26, 0x96, 0x70, 0x0C, 0x00, 0x3E, +0x6F, 0x0C, 0x00, 0x3E, 0x20, 0xB4, 0x4A, 0xDD, +0x30, 0x92, 0x60, 0xEA, 0x19, 0x5A, 0x60, 0xEA, +0x10, 0x3C, 0x27, 0x00, 0x0A, 0xC1, 0xC1, 0x08, +0x20, 0x00, 0x10, 0x00, 0x20, 0x10, 0x89, 0x9C, +0x23, 0xE6, 0x20, 0x00, 0x00, 0x48, 0x03, 0xE8, +0xC0, 0x80, 0x82, 0x01, 0x91, 0xEA, 0x00, 0x84, +0x08, 0x3C, 0x33, 0xA8, 0x29, 0xEA, 0xB5, 0x10, +0x04, 0xC0, 0x26, 0x96, 0x32, 0xAE, 0x01, 0x84, +0x07, 0x2E, 0x0E, 0xD5, 0x03, 0xC0, 0x9D, 0xFF, +0x02, 0xD5, 0x4C, 0xDD, 0x01, 0x84, 0x79, 0xF9, +0x4A, 0xDD, 0x32, 0xAE, 0x49, 0x9C, 0x42, 0xA0, +0x53, 0x01, 0x00, 0x48, 0x42, 0xA6, 0x4A, 0xDD, +0xB1, 0xEA, 0x59, 0xC1, 0x09, 0xC9, 0x66, 0x96, +0x07, 0xC9, 0x41, 0xA6, 0x18, 0x00, 0x00, 0x00, +0x48, 0xDD, 0x04, 0xC8, 0x65, 0x01, 0x02, 0x4E, +0xF2, 0x0B, 0x04, 0x3C, 0xC2, 0x0B, 0x30, 0x3C, +0x60, 0xE0, 0xC2, 0xEA, 0x0B, 0xA4, 0x17, 0xE8, +0x18, 0x0C, 0x24, 0x3C, 0xCB, 0xAC, 0xC1, 0x9C, +0x12, 0xE8, 0x40, 0xE0, 0x54, 0xF9, 0x00, 0x84, +0x80, 0x00, 0xF0, 0x46, 0x8C, 0xEA, 0x21, 0xEA, +0xA3, 0xEA, 0x00, 0x84, 0x03, 0xD5, 0xFF, 0x83, +0x44, 0xFF, 0x00, 0x4E, 0xFD, 0xE9, 0x03, 0xE0, +0x00, 0x84, 0x5A, 0xDD, 0x29, 0xEA, 0x0B, 0xAC, +0x6C, 0x0C, 0x68, 0x3E, 0x26, 0xC8, 0x26, 0x96, +0x3F, 0x46, 0x06, 0xB4, 0x31, 0x58, 0x0F, 0xF0, +0x1E, 0xFE, 0x00, 0x8F, 0x83, 0x00, 0x17, 0xC8, +0x83, 0x4E, 0x18, 0x00, 0x33, 0xA0, 0x14, 0x00, +0x12, 0x0C, 0x14, 0x3C, 0xB3, 0xA8, 0x81, 0x9C, +0x08, 0xE9, 0x01, 0xE0, 0x02, 0x00, 0x83, 0x10, +0x19, 0x00, 0x83, 0x10, 0x03, 0x00, 0x83, 0x14, +0x4C, 0xDD, 0x28, 0xD5, 0x19, 0x00, 0x83, 0x10, +0x00, 0x84, 0x05, 0xD5, 0x91, 0xEA, 0x33, 0xA8, +0x32, 0xA0, 0x4C, 0xDD, 0x32, 0xA8, 0x01, 0x9C, +0x00, 0x84, 0x5A, 0xDD, 0x03, 0x10, 0x91, 0xEA, +0x4A, 0xDD, 0x18, 0x00, 0x10, 0x10, 0x20, 0x84, +0x10, 0x02, 0x20, 0x00, 0x18, 0x5A, 0x0C, 0x00, +0x10, 0x10, 0x04, 0x01, 0x10, 0x00, 0x19, 0x00, +0x08, 0xC1, 0x19, 0x00, 0x06, 0xC9, 0x5E, 0xDD, +0x00, 0x00, 0x47, 0xA8, 0x02, 0x4E, 0x18, 0x00, +0x20, 0x84, 0x04, 0x01, 0x22, 0x03, 0x1E, 0x3C, +0x00, 0x54, 0x55, 0xDD, 0x24, 0xC8, 0x00, 0x40, +0x20, 0x02, 0x2C, 0xEA, 0x14, 0x3C, 0x10, 0x00, +0x54, 0xFE, 0xC3, 0x0B, 0x10, 0x40, 0x5A, 0xEA, +0x80, 0xA4, 0x56, 0x88, 0x02, 0xE8, 0x41, 0xE0, +0x48, 0xDD, 0x40, 0xAC, 0x15, 0x00, 0x07, 0x4E, +0x54, 0xFB, 0xC0, 0x84, 0xB8, 0xEA, 0x0E, 0xD5, +0x48, 0x98, 0x25, 0xEA, 0x00, 0x4E, 0x4B, 0xA0, +0x06, 0xE8, 0xEA, 0xFE, 0xA4, 0xEA, 0x06, 0x80, +0x06, 0xC0, 0x48, 0xDD, 0xB1, 0x9D, 0xB1, 0x9F, +0xC0, 0xE0, 0x48, 0xDD, 0x48, 0xDD, 0xF1, 0xE9, +0x31, 0xE9, 0x02, 0xE4, 0x67, 0x07, 0x90, 0x3C, +0x2E, 0x00, 0x92, 0x4E, 0x14, 0xFE, 0x54, 0xFA, +0x94, 0x0C, 0x18, 0x3E, 0x00, 0x84, 0x81, 0x98, +0x30, 0x0A, 0x05, 0xD5, 0x00, 0x42, 0x12, 0x80, +0x11, 0x4C, 0x00, 0x0C, 0x17, 0x2E, 0xFC, 0x7F, +0x04, 0xC1, 0xAB, 0xFF, 0x0A, 0x04, 0x90, 0x40, +0x90, 0x42, 0x06, 0xD5, 0x54, 0xDD, 0x24, 0x24, +0x36, 0x84, 0x94, 0x40, 0x54, 0xFB, 0xC0, 0x84, +0x03, 0x42, 0x0F, 0xD5, 0x5D, 0xDD, 0x24, 0x28, +0x02, 0xA4, 0x01, 0x98, 0x07, 0xE8, 0x09, 0xE0, +0xA4, 0xEA, 0x06, 0x80, 0x00, 0x5A, 0x48, 0xDD, +0xB1, 0x9F, 0x07, 0x01, 0x48, 0xDD, 0xB1, 0x9D, +0xF0, 0xE9, 0xC0, 0xE0, 0x6D, 0x0C, 0x00, 0x2E, +0x07, 0x01, 0x08, 0x5A, 0x26, 0x96, 0x29, 0xEA, +0xC0, 0x84, 0x03, 0xC0, 0x2C, 0xEA, 0x4E, 0xD5, +0x0E, 0x00, 0x10, 0x02, 0x41, 0xE2, 0x85, 0xA4, +0x45, 0xAC, 0x02, 0xE8, 0x0F, 0x00, 0x10, 0x02, +0x41, 0xE2, 0x85, 0xA4, 0x45, 0xAC, 0x02, 0xE8, +0x14, 0x3C, 0xC0, 0x84, 0x00, 0x4E, 0x89, 0x0C, +0x10, 0x40, 0x70, 0xFC, 0x20, 0x3C, 0x17, 0x80, +0x41, 0xE0, 0x5B, 0x07, 0x18, 0x3C, 0x03, 0xE8, +0x50, 0xDD, 0x5B, 0x07, 0x41, 0xDD, 0x10, 0xC0, +0x26, 0x00, 0x20, 0x22, 0xC3, 0x0B, 0x14, 0x3C, +0x09, 0xE8, 0x41, 0xE0, 0x2A, 0x06, 0x24, 0x3C, +0x6D, 0x01, 0x20, 0x12, 0x33, 0x06, 0x14, 0x3C, +0x6E, 0x01, 0x10, 0x12, 0xE0, 0x0C, 0x00, 0x3C, +0x05, 0xC8, 0x26, 0x96, 0x03, 0xC0, 0x50, 0xDD, +0x1C, 0x02, 0x08, 0x5A, 0x00, 0x49, 0xB5, 0xEA, +0x1F, 0x3E, 0xB7, 0x0A, 0x08, 0x5A, 0xB4, 0xFF, +0x88, 0xA6, 0x0C, 0x01, 0x04, 0x00, 0x20, 0x4C, +0x05, 0x03, 0x28, 0x5A, 0xC4, 0xEA, 0x23, 0x84, +0x02, 0x84, 0x0C, 0xD5, 0x08, 0xA6, 0x09, 0xD5, +0x04, 0x03, 0x08, 0x5A, 0x04, 0xD5, 0x01, 0x84, +0x04, 0x02, 0x08, 0x5A, 0x08, 0xAE, 0x00, 0x84, +0xA6, 0xFF, 0x1F, 0x2E, 0x20, 0xE0, 0x48, 0xDD, +0x40, 0x3C, 0x1F, 0xE8, 0x0C, 0xCC, 0xC1, 0x08, +0x91, 0x0C, 0x34, 0x3C, 0x62, 0xE0, 0x53, 0xBA, +0x88, 0x3E, 0x17, 0xE8, 0x48, 0xB4, 0x5C, 0x00, +0x12, 0xE8, 0x42, 0xE4, 0x34, 0x3C, 0x0C, 0xD5, +0x53, 0xBA, 0x91, 0x0C, 0x62, 0xE0, 0x61, 0x90, +0x88, 0x3E, 0x0B, 0xE8, 0x48, 0xB4, 0x5C, 0x00, +0x06, 0xE8, 0x43, 0xE4, 0x08, 0xB4, 0x4C, 0xDD, +0x08, 0xB6, 0x01, 0x9C, 0x22, 0xCF, 0x5A, 0xDD, +0x03, 0x40, 0x10, 0x4C, 0x0A, 0xC6, 0xD7, 0xBF, +0x03, 0xC9, 0x64, 0xEA, 0xC4, 0xEA, 0x21, 0x84, +0x20, 0x84, 0x4C, 0xDD, 0x42, 0xA8, 0x4A, 0xDD, +0x48, 0xDD, 0x5A, 0xDD, 0x7D, 0xEA, 0x20, 0xC8, +0x13, 0x00, 0x07, 0x4E, 0x10, 0xC0, 0x4B, 0xDD, +0x80, 0x00, 0x10, 0x46, 0xDE, 0xFF, 0x03, 0x3C, +0xE1, 0xFF, 0x23, 0x3C, 0x44, 0x92, 0xC1, 0x9C, +0xDE, 0xFF, 0x3B, 0x3C, 0xFF, 0x83, 0x02, 0xE2, +0x4C, 0xDD, 0x03, 0xE8, 0x50, 0xDD, 0x4E, 0xD5, +0x00, 0x96, 0x02, 0x9E, 0x03, 0xE8, 0x02, 0xE6, +0x02, 0xD5, 0x01, 0x84, 0xFF, 0x49, 0x00, 0x84, +0x43, 0xD5, 0xF0, 0xFB, 0x80, 0x00, 0x00, 0x46, +0x03, 0xC9, 0x64, 0xEA, 0x04, 0xD5, 0x21, 0x84, +0x04, 0x02, 0x18, 0x5A, 0xC4, 0xEA, 0x23, 0x84, +0x00, 0x49, 0x4C, 0xDD, 0x10, 0x46, 0x03, 0x0F, +0x06, 0xC8, 0x80, 0x00, 0xAF, 0xFF, 0x27, 0x2E, +0xA6, 0xFF, 0x27, 0x3E, 0x27, 0x2E, 0x2E, 0xD5, +0x0F, 0x3E, 0xAF, 0xFF, 0x27, 0x3E, 0xC2, 0xFF, +0x40, 0xA4, 0xA6, 0xFF, 0x49, 0x96, 0x49, 0x9C, +0xF0, 0x5C, 0x40, 0xAC, 0x04, 0xE9, 0x31, 0x80, +0x30, 0x00, 0x10, 0x44, 0x20, 0x84, 0x40, 0xAC, +0xAE, 0xFF, 0x17, 0x3E, 0x6C, 0x0C, 0x68, 0x3E, +0x32, 0xA8, 0x00, 0x84, 0x32, 0xA6, 0x80, 0xEA, +0x29, 0xEA, 0x14, 0xC0, 0x11, 0xC0, 0x26, 0x96, +0x07, 0xC0, 0x34, 0xA6, 0x40, 0xA4, 0x9A, 0xEA, +0x20, 0x80, 0x10, 0x58, 0x08, 0xD5, 0xFF, 0x83, +0x07, 0xC0, 0x33, 0xA6, 0x40, 0xA4, 0x9A, 0xEA, +0x10, 0x80, 0x10, 0x58, 0x40, 0xAC, 0xFF, 0x83, +0x00, 0xFC, 0xC0, 0xFC, 0x00, 0x96, 0x28, 0xEA, +0xC5, 0xEA, 0x04, 0xC9, 0x3C, 0xC9, 0x4C, 0x96, +0xF2, 0x0B, 0x24, 0x3C, 0xC2, 0x0B, 0x10, 0x3C, +0x03, 0xE9, 0x41, 0xE0, 0x05, 0xC1, 0x64, 0xEA, +0x08, 0x3C, 0x04, 0xC8, 0x31, 0xD5, 0xB3, 0x10, +0xA0, 0xFF, 0x17, 0x2E, 0x8A, 0xEA, 0x09, 0xC1, +0x06, 0xC1, 0x6E, 0x96, 0xC6, 0x0C, 0x24, 0x3C, +0x41, 0xE0, 0x90, 0xEA, 0x20, 0x3C, 0x25, 0xE9, +0x91, 0x9C, 0xB3, 0x10, 0x28, 0x3C, 0x91, 0x96, +0x14, 0x3C, 0xB3, 0x10, 0x22, 0xE0, 0xF4, 0x0B, +0x21, 0xEA, 0x06, 0xE8, 0x00, 0x84, 0x8C, 0xEA, +0x07, 0xD5, 0xA3, 0xEA, 0x15, 0x01, 0x08, 0x5A, +0x99, 0xEA, 0xF9, 0xD5, 0x01, 0x9C, 0x54, 0xEA, +0xFC, 0xE9, 0x03, 0xE0, 0x64, 0x21, 0x08, 0x3E, +0x41, 0xAC, 0x20, 0x84, 0x00, 0x00, 0x10, 0x22, +0x03, 0x00, 0x16, 0x4E, 0x49, 0x9E, 0x03, 0xD5, +0x01, 0x84, 0x40, 0xAC, 0x00, 0x84, 0x02, 0xD5, +0x20, 0xFC, 0x80, 0xFC, 0x0E, 0x96, 0x55, 0xDD, +0x47, 0xDD, 0x55, 0xC8, 0x29, 0x00, 0x11, 0x22, +0xC2, 0x0B, 0x00, 0x3C, 0x03, 0xE9, 0x20, 0xE0, +0x05, 0xC0, 0x50, 0xDD, 0x18, 0x3C, 0x20, 0x84, +0x48, 0xD5, 0xB4, 0x10, 0xB4, 0x10, 0x30, 0x3C, +0xD9, 0x96, 0xD9, 0x9C, 0xB4, 0x10, 0x38, 0x3C, +0x2B, 0x00, 0x11, 0x22, 0x3E, 0xE8, 0x23, 0xE0, +0x48, 0x00, 0x40, 0x3C, 0xDC, 0x14, 0x38, 0x3E, +0x31, 0xD5, 0xA3, 0xEA, 0x11, 0x81, 0x50, 0x38, +0x11, 0x81, 0x71, 0x38, 0x2D, 0x00, 0x61, 0x22, +0xC5, 0xE0, 0xBE, 0x99, 0x60, 0x38, 0x07, 0xE8, +0x51, 0x02, 0x01, 0x81, 0x75, 0x9B, 0x2D, 0x00, +0x66, 0xEA, 0x1E, 0xD5, 0x11, 0x81, 0x71, 0x38, +0x2D, 0x00, 0x51, 0x22, 0xC5, 0xE0, 0x7D, 0x9B, +0xA8, 0xEA, 0x06, 0xE8, 0x2D, 0x00, 0x61, 0x02, +0x11, 0xD5, 0x75, 0x99, 0x11, 0x81, 0x50, 0x38, +0x11, 0x81, 0x61, 0x38, 0x04, 0xE8, 0xC5, 0xE0, +0x69, 0x9F, 0xA8, 0xEA, 0x66, 0xEA, 0x08, 0xD5, +0x11, 0x81, 0x51, 0x38, 0x06, 0xE8, 0xC5, 0xE0, +0x69, 0x9D, 0xA8, 0xEA, 0x50, 0x38, 0x6B, 0x97, +0x01, 0x9C, 0x09, 0x81, 0xCF, 0xE9, 0x04, 0xE0, +0x18, 0x3C, 0x20, 0x84, 0x01, 0x84, 0xB4, 0x10, +0x00, 0x84, 0x02, 0xD5, 0x41, 0xFC, 0xA0, 0xFC, +0x30, 0x22, 0x44, 0xDD, 0x24, 0x3C, 0x4B, 0x80, +0x62, 0xE0, 0xC3, 0x0B, 0x30, 0x3C, 0x36, 0xE9, +0xFE, 0x96, 0x06, 0x00, 0xE0, 0x3D, 0x32, 0xC3, +0xA0, 0x3C, 0xC5, 0x0B, 0x20, 0x85, 0x4A, 0x00, +0x77, 0x28, 0x4F, 0x40, 0x21, 0x97, 0x09, 0x81, +0x19, 0x97, 0x81, 0xF4, 0x4A, 0x80, 0x30, 0x22, +0x52, 0xEA, 0x9C, 0xFE, 0x76, 0x0C, 0x21, 0x40, +0x38, 0xEA, 0x21, 0xEA, 0x15, 0xD5, 0x93, 0x96, +0x13, 0x00, 0xE4, 0x4D, 0x11, 0x21, 0x50, 0x38, +0x0E, 0xE9, 0xA2, 0xE0, 0xD6, 0x28, 0x54, 0x40, +0xA6, 0x9B, 0x01, 0xF7, 0x70, 0x22, 0x7D, 0x9B, +0x6F, 0xEA, 0x4D, 0x80, 0x75, 0x99, 0xC0, 0xEA, +0x02, 0xE8, 0xE5, 0xE0, 0x01, 0x8D, 0x21, 0x8D, +0xEB, 0xE9, 0x03, 0xE1, 0x16, 0x0C, 0x04, 0x3C, +0x07, 0x80, 0x04, 0x40, 0x02, 0xD5, 0x31, 0xEA, +0xC1, 0xFC, 0x00, 0x84, 0x20, 0x3C, 0x40, 0xFC, +0x00, 0x3C, 0xC7, 0x0B, 0x11, 0x40, 0x4A, 0x00, +0x34, 0x3C, 0xD7, 0x00, 0x70, 0x3C, 0x00, 0x0C, +0x82, 0x80, 0x4D, 0x00, 0xB1, 0x97, 0x49, 0x96, +0xFF, 0xFF, 0x90, 0x50, 0x03, 0xE8, 0x27, 0xE0, +0x09, 0xD5, 0xA2, 0x80, 0xC8, 0xEA, 0x50, 0x9B, +0x11, 0x95, 0x10, 0x38, 0x03, 0xE9, 0x23, 0xE0, +0x02, 0xD5, 0x22, 0x84, 0x84, 0x50, 0x21, 0x84, +0x27, 0xE1, 0xFF, 0xFF, 0x68, 0x9B, 0x05, 0xE9, +0x02, 0xE9, 0x30, 0xF8, 0x70, 0x3C, 0x49, 0x9C, +0xE8, 0xE0, 0x4E, 0x00, 0xA2, 0x80, 0x03, 0xE8, +0x42, 0x99, 0x09, 0xD5, 0x24, 0x1C, 0x98, 0x3E, +0x11, 0x95, 0x94, 0x38, 0x02, 0xE9, 0x23, 0xE1, +0x07, 0xE1, 0x49, 0x9C, 0x28, 0x98, 0x08, 0xE8, +0x03, 0x38, 0x94, 0xEA, 0x03, 0xE0, 0x11, 0x81, +0x49, 0x9C, 0x02, 0xE9, 0x4F, 0x00, 0x70, 0x3C, +0xFF, 0x7F, 0x83, 0x50, 0x03, 0xE8, 0xC7, 0xE0, +0x09, 0xD5, 0xA2, 0x80, 0x78, 0xEA, 0x51, 0x9F, +0x11, 0x15, 0x00, 0x38, 0x03, 0xE9, 0x03, 0xE0, +0x02, 0xD5, 0x02, 0x84, 0x64, 0x50, 0x01, 0x84, +0x07, 0xE1, 0xFF, 0x7F, 0x69, 0x9F, 0x09, 0xE9, +0x53, 0x38, 0x94, 0xEA, 0xA3, 0xE0, 0x11, 0x95, +0x02, 0xE9, 0xFF, 0x83, 0x50, 0x3C, 0x01, 0x9C, +0xA6, 0xE0, 0x50, 0x00, 0x11, 0x9D, 0x05, 0xE9, +0x02, 0xE9, 0x06, 0xF8, 0xC5, 0xE0, 0x01, 0x9C, +0x21, 0x9D, 0x09, 0xE8, 0x21, 0x38, 0xAA, 0xEA, +0x43, 0xE0, 0x11, 0x11, 0x02, 0xE9, 0xFF, 0x83, +0x23, 0xE4, 0x01, 0x9C, 0x01, 0x84, 0x03, 0xE9, +0x22, 0x84, 0x04, 0xD5, 0x07, 0x80, 0x00, 0x40, +0x00, 0xFC, 0xC0, 0xFC, 0xE4, 0xFF, 0x03, 0x3C, +0x03, 0x96, 0x02, 0x9E, 0xE4, 0xFF, 0x0B, 0x3C, +0xB1, 0x0C, 0x14, 0x3C, 0x03, 0xE9, 0x20, 0xE0, +0xE5, 0xFF, 0x0B, 0x3C, 0xB1, 0x0C, 0x24, 0x3C, +0x04, 0xE8, 0x02, 0xE0, 0xB1, 0x0C, 0x10, 0x3C, +0x17, 0x3C, 0x40, 0xEA, 0x14, 0x4E, 0xE5, 0xFF, +0x02, 0xD5, 0x03, 0x00, 0x18, 0x3C, 0x42, 0xEA, +0x04, 0x3C, 0xB0, 0x0C, 0x80, 0xFC, 0xB0, 0x0C, +0x24, 0x3C, 0x00, 0xFC, 0x42, 0xEA, 0xB2, 0x0C, +0x03, 0xE8, 0x22, 0xE0, 0x40, 0xEA, 0x49, 0x9C, +0xE5, 0xFF, 0x17, 0x3C, 0x42, 0xEA, 0x02, 0xC9, +0xB0, 0x0C, 0x18, 0x3C, 0xB0, 0x0C, 0x04, 0x3C, +0x00, 0xFC, 0x80, 0xFC, 0x7C, 0x17, 0x68, 0x3E, +0x00, 0x3C, 0xB4, 0x9D, 0xB6, 0xA4, 0xAF, 0x0C, +0x84, 0xFE, 0x77, 0xA4, 0x93, 0x96, 0x4D, 0xDD, +0x16, 0x00, 0x21, 0x40, 0x93, 0x96, 0x38, 0xEA, +0xA4, 0xF9, 0xFF, 0x49, 0x5F, 0xDD, 0x37, 0xA5, +0x4E, 0x00, 0x30, 0x3C, 0x37, 0x04, 0x42, 0x40, +0xF1, 0xFF, 0x63, 0x3C, 0xEF, 0xFF, 0x03, 0x3C, +0x22, 0x40, 0x21, 0x97, 0x21, 0x5C, 0x03, 0x0C, +0x50, 0x98, 0x01, 0x00, 0xC0, 0xE0, 0x56, 0x99, +0x01, 0x80, 0x04, 0xE8, 0x02, 0xD5, 0x25, 0x80, +0x57, 0x2E, 0x05, 0x80, 0xA0, 0xE0, 0xA1, 0xFF, +0x07, 0x3E, 0x03, 0xE8, 0x6B, 0x97, 0xA1, 0xFF, +0x04, 0xE9, 0xA4, 0xE4, 0x6B, 0x3C, 0xC0, 0x84, +0x04, 0xE4, 0xE5, 0xFF, 0x04, 0x84, 0x03, 0xE9, +0x00, 0x5A, 0x0B, 0xD5, 0x22, 0xE4, 0x0A, 0x03, +0x01, 0x80, 0x03, 0xE9, 0x01, 0x9A, 0x05, 0xD5, +0x01, 0x84, 0x02, 0xC8, 0xA9, 0xEA, 0x02, 0x98, +0x36, 0x80, 0x00, 0x40, 0x83, 0x96, 0x44, 0xDD, +0xE9, 0x80, 0x20, 0x12, 0x31, 0x80, 0x20, 0x02, +0x32, 0x80, 0x50, 0x22, 0x31, 0x80, 0x10, 0x22, +0x0C, 0xFF, 0x69, 0x9A, 0x96, 0x0C, 0x32, 0x40, +0xDB, 0x96, 0xDA, 0x98, 0x04, 0xE8, 0x60, 0xE0, +0x79, 0xFF, 0xFF, 0x49, 0xFF, 0x49, 0x03, 0xD5, +0x80, 0xFC, 0x95, 0xFF, 0x41, 0xB0, 0x01, 0xFC, +0x01, 0x96, 0x81, 0xF0, 0x18, 0x3E, 0x89, 0xA4, +0x4A, 0x9C, 0x90, 0x00, 0x30, 0x4C, 0xCC, 0xA4, +0x0E, 0xA4, 0x0E, 0x40, 0x04, 0x40, 0x01, 0x4C, +0x22, 0xD5, 0x01, 0x84, 0x01, 0x4C, 0x0F, 0xA4, +0x02, 0x84, 0x04, 0x00, 0x03, 0x84, 0x1D, 0xD5, +0xCD, 0xA4, 0x1B, 0xD5, 0x0E, 0x40, 0x30, 0x4C, +0x01, 0x4C, 0x0E, 0xA4, 0x07, 0x84, 0x04, 0x40, +0x0F, 0xA4, 0x13, 0xD5, 0x04, 0x00, 0x01, 0x4C, +0x0E, 0xD5, 0x06, 0x84, 0x0C, 0xD5, 0x05, 0x84, +0x01, 0x4C, 0x0E, 0xA4, 0x08, 0x84, 0x04, 0x40, +0x0F, 0xA4, 0x07, 0xD5, 0x04, 0x40, 0x01, 0x4C, +0x02, 0xD5, 0x04, 0x84, 0x81, 0xFC, 0x00, 0x84, +0x5C, 0x3C, 0x20, 0xFC, 0x41, 0x80, 0x05, 0x00, +0x01, 0x00, 0x31, 0x2A, 0xDB, 0x98, 0xC0, 0x84, +0x41, 0x22, 0xEB, 0x98, 0x61, 0x84, 0x00, 0x80, +0x00, 0x00, 0x71, 0x22, 0xEF, 0x99, 0xFF, 0x99, +0x04, 0xE1, 0x7C, 0xEA, 0x43, 0x22, 0x04, 0xE8, +0xC3, 0x80, 0x00, 0x80, 0xD8, 0x96, 0xD9, 0x9C, +0x38, 0x5A, 0x92, 0x9C, 0x80, 0x98, 0xF3, 0x14, +0x4D, 0xEA, 0x6A, 0x99, 0x03, 0xE8, 0x82, 0xE0, +0x09, 0x99, 0x00, 0x38, 0x42, 0xFC, 0xA0, 0xFC, +0x83, 0xF1, 0x49, 0x96, 0x4F, 0x00, 0x30, 0x3C, +0x4D, 0x00, 0x10, 0x3C, 0xCC, 0xFE, 0x40, 0x85, +0x91, 0x40, 0x82, 0xF1, 0x00, 0x81, 0x13, 0x80, +0x97, 0x01, 0x00, 0x48, 0xB4, 0xFF, 0x37, 0x2E, +0x05, 0x02, 0x38, 0x5A, 0x11, 0x4C, 0x02, 0xF1, +0x20, 0x3C, 0x96, 0x01, 0x81, 0xF2, 0x4F, 0x00, +0x81, 0x01, 0x00, 0x48, 0x05, 0x00, 0xEC, 0x3D, +0x00, 0xA4, 0x54, 0x40, 0x02, 0x22, 0xBE, 0x88, +0x10, 0x3C, 0x00, 0x80, 0x02, 0xF2, 0x4D, 0x00, +0x48, 0x80, 0x20, 0x4C, 0x01, 0xF2, 0x97, 0xEA, +0x8B, 0x00, 0x51, 0x4C, 0x4E, 0x00, 0x50, 0x3C, +0x51, 0x4C, 0x02, 0xF2, 0x01, 0xF2, 0x86, 0x00, +0x83, 0x80, 0x21, 0x4C, 0x01, 0xE0, 0x03, 0xF1, +0x5D, 0x01, 0xF3, 0x4E, 0x54, 0x50, 0x5F, 0xDD, +0xA9, 0x9B, 0xFF, 0xFF, 0x15, 0xF8, 0xB6, 0x99, +0x55, 0x01, 0xF3, 0x4E, 0x01, 0x84, 0x64, 0x40, +0xDE, 0x88, 0xB6, 0x99, 0x06, 0xE0, 0x2F, 0xEA, +0xF3, 0x4E, 0xFF, 0x83, 0xAF, 0xEA, 0x4C, 0x01, +0xB6, 0x99, 0xA1, 0x9B, 0x2F, 0xEA, 0xDE, 0x88, +0xF2, 0x4E, 0xC0, 0xE0, 0xAD, 0x99, 0x44, 0x01, +0x2F, 0xEA, 0xDE, 0x88, 0xFF, 0x83, 0x06, 0xE0, +0x3D, 0x01, 0xF3, 0x4E, 0xDE, 0x88, 0xA4, 0x99, +0xC0, 0xE0, 0x2F, 0xEA, 0xF2, 0x4E, 0xFF, 0x83, +0x69, 0x99, 0x36, 0x01, 0xBE, 0x88, 0x6D, 0x99, +0x05, 0xE0, 0x3B, 0xEA, 0x2F, 0x01, 0xF3, 0x4E, +0x00, 0x84, 0x54, 0x40, 0xF2, 0x4E, 0xD0, 0xF8, +0x21, 0x99, 0x2A, 0x01, 0xD3, 0x00, 0x00, 0x48, +0x4F, 0x00, 0x60, 0x3C, 0x61, 0x4C, 0x01, 0xF2, +0x03, 0xF1, 0x21, 0x40, 0xF3, 0x4E, 0x01, 0xE0, +0xAF, 0xEA, 0x1E, 0x01, 0x9E, 0x88, 0x24, 0x99, +0xA0, 0xE0, 0x33, 0xEA, 0x17, 0x01, 0xF2, 0x4E, +0x80, 0x00, 0xF0, 0x46, 0xA9, 0x88, 0x24, 0xEA, +0xFF, 0x83, 0xAD, 0x99, 0xD5, 0xFF, 0x00, 0x4E, +0x0D, 0x01, 0xF2, 0x4E, 0x5B, 0x99, 0xE9, 0x9C, +0x00, 0x14, 0x3F, 0x40, 0x60, 0xE0, 0x41, 0xEA, +0x05, 0x01, 0xF2, 0x4E, 0xFE, 0x00, 0x00, 0x48, +0x21, 0x4C, 0x01, 0xF2, 0x72, 0x22, 0x22, 0xC0, +0x03, 0xF0, 0x00, 0x80, 0xF3, 0x4E, 0xE0, 0xE0, +0x34, 0x50, 0xFA, 0x00, 0x5B, 0x99, 0xFF, 0xFF, +0x3B, 0xEA, 0xBE, 0x88, 0xE5, 0xE0, 0xFF, 0x83, +0xF1, 0x00, 0xF3, 0x4E, 0xDA, 0xFF, 0x00, 0x4E, +0x2F, 0xEA, 0xDE, 0x88, 0xF2, 0x4E, 0xC7, 0xE0, +0xA9, 0x9E, 0xEA, 0x00, 0x3F, 0x40, 0x92, 0x98, +0x41, 0xEA, 0x00, 0x08, 0xF3, 0x4E, 0xE3, 0xE0, +0x00, 0x48, 0xE2, 0x00, 0x40, 0x3C, 0xD4, 0x00, +0x02, 0xF2, 0x4E, 0x00, 0x3C, 0x40, 0x22, 0x4C, +0x01, 0xF2, 0x97, 0xEA, 0x03, 0xF1, 0x1B, 0xDA, +0xF3, 0x4E, 0x01, 0xE0, 0x24, 0xEA, 0xD4, 0x00, +0x01, 0x94, 0x54, 0x40, 0x00, 0x4E, 0xAD, 0x99, +0xF3, 0x4E, 0x8D, 0xFF, 0xA9, 0x9C, 0xCC, 0x00, +0xBE, 0x88, 0x52, 0x99, 0xA0, 0xE0, 0x3B, 0xEA, +0xC5, 0x00, 0xF2, 0x4E, 0x01, 0x80, 0x74, 0x50, +0x3F, 0x40, 0xFF, 0x99, 0x00, 0x48, 0x00, 0x1C, +0x01, 0xF2, 0x8C, 0x00, 0x1C, 0xC0, 0x21, 0x4C, +0x01, 0xE0, 0x03, 0xF1, 0xB7, 0x00, 0xF3, 0x4E, +0x54, 0x40, 0x24, 0xEA, 0xA9, 0x9F, 0x01, 0x94, +0x60, 0xFF, 0x00, 0x4E, 0xAF, 0x00, 0xF3, 0x4E, +0xBE, 0x88, 0x6D, 0x99, 0x05, 0xE0, 0x3B, 0xEA, +0xF3, 0x4E, 0xFF, 0x83, 0x64, 0x50, 0xA8, 0x00, +0xB6, 0x99, 0xFF, 0xFF, 0x00, 0x18, 0x3F, 0x40, +0x92, 0x00, 0x00, 0x48, 0x20, 0x4C, 0x02, 0xF2, +0x03, 0xF1, 0x2A, 0xC0, 0xF3, 0x4E, 0x01, 0xE0, +0x64, 0x50, 0x9A, 0x00, 0x06, 0xF8, 0xFF, 0xFF, +0xF3, 0x4E, 0x05, 0xE0, 0x64, 0x50, 0x94, 0x00, +0xB6, 0x99, 0x01, 0x80, 0x53, 0x22, 0xDE, 0x88, +0xFF, 0x83, 0x00, 0x00, 0xF2, 0x4E, 0xA0, 0xE0, +0x24, 0xEA, 0x8A, 0x00, 0xC9, 0x88, 0xA9, 0x9F, +0x34, 0xFF, 0x00, 0x4E, 0x83, 0x00, 0xF3, 0x4E, +0x00, 0x94, 0x64, 0x40, 0x00, 0x4E, 0xB6, 0x99, +0xF2, 0x4E, 0x44, 0xFF, 0x69, 0x9D, 0x7C, 0x00, +0x6D, 0x99, 0xA9, 0x88, 0x00, 0x14, 0x3F, 0x40, +0x02, 0xF1, 0x43, 0xD5, 0x23, 0x40, 0x12, 0x4C, +0x02, 0xE0, 0x03, 0xF2, 0x54, 0x50, 0x6F, 0xE9, +0x00, 0x4E, 0xFF, 0xFF, 0x6A, 0xE9, 0xBF, 0xFF, +0xAB, 0xFF, 0x24, 0xEA, 0x00, 0x4E, 0xC9, 0x88, +0x64, 0xE9, 0x15, 0xFF, 0x01, 0x94, 0x64, 0x40, +0x10, 0xFF, 0x00, 0x4E, 0x52, 0x52, 0x5F, 0xE9, +0xA9, 0x88, 0x01, 0x80, 0xBE, 0x88, 0x6D, 0x99, +0xA0, 0xE0, 0x3B, 0xEA, 0x56, 0xE8, 0xFF, 0x83, +0x24, 0x99, 0xAF, 0xEA, 0x00, 0x10, 0x3F, 0x40, +0x97, 0xEA, 0x1F, 0xD5, 0x20, 0xD9, 0x01, 0xF1, +0x02, 0xE0, 0x03, 0xF2, 0x65, 0xEA, 0x4B, 0xE9, +0x01, 0x8C, 0x54, 0x40, 0x00, 0x4E, 0xAD, 0x99, +0x44, 0xE9, 0x05, 0xFF, 0x00, 0x4E, 0x69, 0x9D, +0x40, 0xE8, 0xE7, 0xFF, 0x01, 0x80, 0x54, 0x50, +0xE2, 0xFF, 0x00, 0x4E, 0x59, 0x9D, 0x3B, 0xE8, +0x00, 0x4E, 0xA9, 0x88, 0x36, 0xE8, 0xDD, 0xFF, +0xDB, 0x98, 0x69, 0x88, 0x41, 0xEA, 0x7E, 0x88, +0x30, 0xE8, 0x60, 0xE0, 0x01, 0xF2, 0x23, 0xD5, +0x2D, 0xC0, 0x21, 0x4C, 0x01, 0xE0, 0x03, 0xF1, +0x57, 0xEA, 0x29, 0xE9, 0x01, 0x90, 0x54, 0x40, +0x78, 0xFF, 0x00, 0x4E, 0x54, 0x40, 0x23, 0xE9, +0x00, 0x4E, 0x00, 0x90, 0x1E, 0xE8, 0xC5, 0xFF, +0xFF, 0xFF, 0x34, 0x50, 0x00, 0x4E, 0x5C, 0x9B, +0x18, 0xE9, 0x6D, 0xFF, 0x21, 0xFF, 0x00, 0x4E, +0x14, 0xE9, 0x05, 0xE0, 0x92, 0x98, 0x9C, 0x98, +0x00, 0x08, 0x3F, 0x40, 0x03, 0xE0, 0x41, 0xEA, +0xA8, 0x5A, 0x0D, 0xE9, 0x09, 0x80, 0x07, 0x14, +0xFF, 0x49, 0x28, 0x80, 0x06, 0xD5, 0x53, 0xFE, +0x09, 0x29, 0x94, 0x38, 0xA5, 0x54, 0x41, 0x8D, +0x01, 0xF0, 0xFF, 0x00, 0x91, 0x96, 0x81, 0x9C, +0x01, 0x80, 0x04, 0x50, 0x90, 0x40, 0x81, 0xF2, +0x30, 0x3C, 0x13, 0x00, 0x01, 0xF2, 0x50, 0x00, +0xF2, 0x4E, 0x62, 0xE2, 0x02, 0xF0, 0x7D, 0xFE, +0x91, 0x96, 0x81, 0x9C, 0x20, 0x3C, 0x82, 0xF2, +0x02, 0xF0, 0x4E, 0x00, 0xF2, 0x4E, 0x40, 0xE2, +0x0A, 0x80, 0x67, 0xFE, 0x20, 0xFC, 0xC2, 0xFC, +0x2C, 0x3C, 0x48, 0x96, 0x89, 0x9F, 0x05, 0x00, +0x19, 0xD5, 0x00, 0x84, 0x82, 0x80, 0x41, 0x9D, +0x02, 0x80, 0x92, 0x9C, 0x10, 0xD5, 0x65, 0x80, +0x00, 0x00, 0x82, 0x22, 0x00, 0x00, 0x70, 0x22, +0x08, 0xE8, 0x07, 0xE1, 0x00, 0x00, 0x72, 0x22, +0x00, 0x00, 0x80, 0x22, 0x00, 0x00, 0x82, 0x12, +0xD9, 0x9C, 0xC0, 0xAD, 0x61, 0xE0, 0x02, 0x9C, +0x05, 0x80, 0xF0, 0xE9, 0xE7, 0xE9, 0x06, 0xE0, +0x4A, 0xFC, 0xA0, 0xFC, 0x93, 0xF0, 0x13, 0xB1, +0x82, 0x00, 0xDB, 0x96, 0xE2, 0xA7, 0x01, 0x00, +0x48, 0x3E, 0xA3, 0xA7, 0x86, 0xF3, 0x90, 0x00, +0x91, 0x96, 0xE2, 0xA4, 0xB7, 0x0C, 0x21, 0x40, +0x01, 0x80, 0x8F, 0x14, 0x82, 0xF6, 0xFF, 0xB6, +0x90, 0x96, 0x00, 0x96, 0x4A, 0xAF, 0x68, 0x97, +0x88, 0xAE, 0x4B, 0xAF, 0x84, 0xF2, 0x89, 0xAE, +0x83, 0xF5, 0xA7, 0xA4, 0x22, 0x02, 0x91, 0xF2, +0x90, 0xF2, 0x08, 0x00, 0x26, 0xA5, 0xA5, 0xA4, +0x8E, 0xF4, 0x8F, 0xF2, 0x5C, 0x3C, 0x03, 0xF4, +0x82, 0x50, 0x05, 0x00, 0x3D, 0xEA, 0xFF, 0x7F, +0x11, 0x00, 0x74, 0x40, 0x07, 0x80, 0x8F, 0x14, +0x01, 0x00, 0x82, 0x50, 0x8F, 0x14, 0x04, 0xF4, +0x24, 0x40, 0x09, 0x80, 0x82, 0x50, 0x11, 0x00, +0x3D, 0xEA, 0xFF, 0x7F, 0x74, 0x40, 0x88, 0xF7, +0x8F, 0x14, 0x11, 0x00, 0x83, 0x42, 0x0B, 0x80, +0x85, 0xF5, 0x24, 0x8C, 0x8C, 0xF7, 0x8A, 0xF2, +0x12, 0x80, 0x8F, 0x14, 0x03, 0xF4, 0x11, 0xF2, +0x2A, 0xE8, 0x44, 0xE2, 0x8F, 0x04, 0x08, 0xF7, +0x70, 0x42, 0x05, 0x80, 0x5B, 0x99, 0x73, 0x0C, +0x0E, 0xD5, 0x2D, 0xF8, 0x80, 0x84, 0xCA, 0x80, +0x23, 0x38, 0x05, 0xD5, 0x32, 0xF8, 0x15, 0x14, +0x35, 0xF8, 0x04, 0xE8, 0x10, 0xD5, 0xFB, 0xE8, +0x42, 0x8F, 0x01, 0x8D, 0x07, 0xF2, 0x22, 0x85, +0xFF, 0xB4, 0x08, 0xF4, 0x01, 0x20, 0xE1, 0x41, +0x01, 0x20, 0x22, 0x40, 0x47, 0xE0, 0x89, 0xEA, +0x92, 0x4E, 0xEA, 0xE8, 0x6F, 0x50, 0x07, 0x00, +0xB0, 0x97, 0x01, 0x00, 0x04, 0xD5, 0xDF, 0xB6, +0x02, 0x80, 0x80, 0x00, 0x03, 0xF2, 0x1F, 0xB7, +0x44, 0xE2, 0x10, 0xF4, 0x0A, 0xF7, 0x35, 0xE8, +0x05, 0x80, 0x8F, 0x04, 0x73, 0x0C, 0x70, 0x42, +0xFF, 0x99, 0x9B, 0x99, 0x00, 0x1C, 0xA4, 0x40, +0x28, 0x81, 0x00, 0x85, 0x14, 0xD5, 0xFF, 0x83, +0x80, 0x84, 0xAA, 0x80, 0x22, 0x38, 0x08, 0xD5, +0x06, 0xF7, 0x15, 0x98, 0x47, 0xE0, 0x21, 0x9D, +0x07, 0xE8, 0xFF, 0x83, 0xA0, 0x98, 0x01, 0xF7, +0xFF, 0x83, 0xE2, 0xE0, 0x10, 0xD5, 0xF5, 0xE8, +0x42, 0x8D, 0x01, 0x8D, 0x09, 0xF2, 0x22, 0x85, +0x02, 0xF7, 0x0A, 0xF4, 0x00, 0x20, 0xE1, 0x41, +0x00, 0x10, 0x24, 0x40, 0xE2, 0xE0, 0x89, 0xEA, +0x92, 0x4E, 0xE4, 0xE8, 0x5F, 0x50, 0x07, 0x00, +0x68, 0x97, 0xFF, 0x7F, 0x04, 0xD5, 0x82, 0xF5, +0x8F, 0x14, 0xC6, 0xEA, 0x0F, 0xF2, 0x02, 0x80, +0x44, 0xE2, 0x04, 0xF4, 0x1F, 0xB5, 0x31, 0xE8, +0xFE, 0x84, 0x12, 0xF2, 0x24, 0x9C, 0x61, 0x42, +0x74, 0x40, 0x05, 0xF4, 0xFF, 0x99, 0x00, 0x08, +0xA2, 0x40, 0x20, 0x85, 0x09, 0x81, 0x00, 0x1C, +0x22, 0x2A, 0x10, 0xD5, 0x00, 0x4E, 0x01, 0x80, +0x08, 0xE8, 0xCA, 0xFF, 0x02, 0xF7, 0x1F, 0xB5, +0x00, 0x20, 0x22, 0x40, 0xF6, 0xE8, 0xE2, 0xE0, +0x21, 0x8D, 0x12, 0xD5, 0x02, 0x85, 0x46, 0x89, +0x0C, 0xF4, 0x0B, 0xF2, 0x01, 0x24, 0xE1, 0x41, +0x01, 0x24, 0x22, 0x40, 0x40, 0xE0, 0x89, 0xEA, +0xAA, 0x80, 0x04, 0xE9, 0xEB, 0xD5, 0x80, 0x84, +0x06, 0x00, 0x82, 0x4E, 0x01, 0x00, 0x4F, 0x50, +0x02, 0xD5, 0x20, 0x96, 0x04, 0xF7, 0x08, 0xA6, +0x0E, 0x80, 0x8F, 0x04, 0x36, 0xE8, 0xE8, 0xE2, +0xFF, 0xB4, 0xB9, 0x9D, 0x11, 0x00, 0xE3, 0x41, +0x73, 0x0C, 0x7F, 0x42, 0x9B, 0x98, 0x05, 0xF4, +0x20, 0x85, 0xFF, 0x99, 0xA2, 0x40, 0x8D, 0xF2, +0x09, 0x81, 0x00, 0x1C, 0x23, 0x2A, 0x14, 0xD5, +0x8F, 0x04, 0x01, 0x80, 0x21, 0x9D, 0x06, 0x80, +0x09, 0xE8, 0x48, 0xE0, 0x22, 0x40, 0x1F, 0xB5, +0x8F, 0x04, 0x00, 0x20, 0x02, 0xE1, 0x02, 0x80, +0x12, 0xD5, 0xF3, 0xE8, 0x21, 0x8D, 0x0D, 0xF2, +0x02, 0x85, 0x42, 0x89, 0x53, 0x40, 0x01, 0xF4, +0x24, 0x40, 0x00, 0x24, 0x6B, 0x97, 0x00, 0xF8, +0x04, 0xE9, 0x82, 0xE0, 0x80, 0x84, 0xEA, 0x80, +0x82, 0x4E, 0xEA, 0xD5, 0xA9, 0x9E, 0x06, 0x00, +0x81, 0xF2, 0x90, 0x96, 0xC9, 0xA7, 0x03, 0xD5, +0xC8, 0xA7, 0x81, 0xF7, 0x0F, 0x40, 0x70, 0x4C, +0x8F, 0x04, 0xC9, 0xA7, 0x74, 0x4C, 0x01, 0x80, +0xCA, 0xA7, 0x0A, 0x40, 0x71, 0x4C, 0x5F, 0xB4, +0xCB, 0xA7, 0x06, 0x40, 0x72, 0x4C, 0x02, 0xF4, +0x01, 0xF7, 0x0C, 0x00, 0x02, 0xF2, 0x1F, 0xB5, +0xC9, 0xAF, 0x08, 0xAE, 0x02, 0x80, 0x80, 0x10, +0xFF, 0x48, 0x8B, 0xAE, 0xCA, 0xFC, 0x15, 0xFF, +0xD3, 0xB0, 0x4A, 0xFC, 0x00, 0x96, 0x93, 0xF0, +0x1A, 0xA7, 0x59, 0xA7, 0x82, 0xF1, 0xDB, 0xA6, +0x49, 0xAF, 0x08, 0xAE, 0xCB, 0xAE, 0x0A, 0xAF, +0x20, 0x0C, 0x60, 0x3C, 0x62, 0x4E, 0x91, 0x96, +0x5F, 0xDD, 0x99, 0x01, 0x21, 0x40, 0x87, 0xF0, +0x60, 0x3C, 0xF7, 0x04, 0x3F, 0xB6, 0x48, 0x00, +0x89, 0xF5, 0x90, 0xF6, 0x8A, 0xF3, 0x84, 0xF4, +0x8D, 0xF2, 0x90, 0x96, 0x0D, 0xF0, 0xF8, 0x97, +0x60, 0x42, 0x8B, 0xF7, 0xB1, 0x97, 0x24, 0x04, +0x05, 0x00, 0x7C, 0x3C, 0x71, 0x9A, 0x8B, 0xFE, +0x91, 0xF2, 0x86, 0xF7, 0x92, 0xF1, 0x8E, 0xF6, +0x3F, 0xB4, 0x07, 0xF0, 0x0B, 0x80, 0xAF, 0x04, +0x24, 0x04, 0x40, 0x42, 0x05, 0x80, 0xAF, 0x14, +0x52, 0x40, 0x21, 0x97, 0x83, 0xF4, 0x00, 0x28, +0x13, 0x80, 0xE2, 0x41, 0x1F, 0xB4, 0x3F, 0xD5, +0x24, 0x40, 0x06, 0xF1, 0x11, 0x96, 0x01, 0x00, +0x88, 0x99, 0x00, 0x98, 0x21, 0x8D, 0x92, 0xEA, +0x6A, 0xEA, 0x11, 0xF2, 0x00, 0x08, 0x44, 0x40, +0x00, 0x98, 0x21, 0x96, 0x4D, 0xEA, 0x48, 0x99, +0x42, 0x89, 0xBA, 0x98, 0x00, 0x00, 0x23, 0x22, +0x00, 0x80, 0x72, 0x22, 0x00, 0x00, 0x43, 0x22, +0x76, 0xEA, 0xD3, 0x98, 0x61, 0x9A, 0xDF, 0x98, +0x03, 0x80, 0x00, 0x42, 0x1F, 0xB4, 0xD8, 0x9A, +0x00, 0x89, 0x09, 0xF1, 0x29, 0xE2, 0x3D, 0xEA, +0x14, 0x3C, 0xDB, 0xE8, 0x5A, 0xEA, 0x20, 0x0C, +0x24, 0x04, 0x05, 0x42, 0xFF, 0x7F, 0xEF, 0x51, +0x36, 0x08, 0x00, 0x40, 0x13, 0x00, 0xEF, 0x41, +0x08, 0xE8, 0x60, 0xE0, 0x01, 0x80, 0xAF, 0x04, +0xFF, 0x00, 0xA5, 0x54, 0x04, 0x80, 0xAF, 0x14, +0x01, 0xF0, 0x11, 0xD5, 0xFF, 0x7F, 0xA0, 0x50, +0xAF, 0x14, 0x71, 0xEA, 0x04, 0xF1, 0x01, 0x80, +0x22, 0xE0, 0x01, 0xF2, 0x60, 0x84, 0x07, 0xE8, +0x9F, 0x04, 0x1E, 0x81, 0x43, 0x81, 0x07, 0x80, +0x0B, 0xF0, 0xD7, 0xD5, 0x41, 0x9C, 0x03, 0xF2, +0x92, 0x40, 0x11, 0x99, 0xA0, 0x44, 0x13, 0x00, +0x6E, 0xEA, 0x64, 0x00, 0x10, 0xF0, 0x3C, 0xD5, +0xFF, 0x7F, 0x44, 0x50, 0x00, 0xE3, 0x21, 0x97, +0x06, 0xF1, 0x19, 0xE8, 0x8C, 0x99, 0x24, 0x99, +0x44, 0x40, 0x92, 0xEA, 0x4C, 0x99, 0x00, 0x20, +0x00, 0x80, 0x42, 0x22, 0x00, 0x00, 0x03, 0x22, +0xA2, 0x98, 0x76, 0xEA, 0xE1, 0x80, 0x97, 0x98, +0x00, 0x00, 0x43, 0x22, 0x76, 0xEA, 0xFB, 0x98, +0x21, 0x9B, 0xD8, 0x98, 0x03, 0x00, 0x02, 0x42, +0x1F, 0xB4, 0xD8, 0x9A, 0x00, 0x89, 0x21, 0x8D, +0x3D, 0xEA, 0x6A, 0xEA, 0x29, 0xE2, 0x09, 0xF1, +0x44, 0x3C, 0xDB, 0xE8, 0x01, 0xF0, 0x20, 0x0C, +0x24, 0x10, 0x11, 0x42, 0x01, 0x00, 0x90, 0x50, +0xB6, 0xA8, 0x10, 0x40, 0x6E, 0xEA, 0x6A, 0xEA, +0x05, 0xE8, 0x61, 0xE0, 0x48, 0x96, 0x05, 0xF1, +0x10, 0xD5, 0x8A, 0xF1, 0x11, 0x9C, 0x05, 0xF2, +0x85, 0xF0, 0x01, 0x96, 0x0A, 0xF1, 0x05, 0xF0, +0x08, 0xE8, 0x01, 0xE0, 0x8F, 0x04, 0x60, 0x84, +0x9F, 0x04, 0x01, 0x80, 0x43, 0x80, 0x07, 0x80, +0x1F, 0xB4, 0xDE, 0xD5, 0x42, 0xFE, 0x0D, 0xF2, +0x81, 0xF2, 0x49, 0x96, 0x0E, 0xF2, 0x8F, 0xF1, +0x12, 0xF0, 0x04, 0xF1, 0x48, 0x99, 0x0A, 0x99, +0x69, 0x97, 0x21, 0x97, 0x88, 0xF5, 0x85, 0xF4, +0xEF, 0x05, 0x8C, 0xF4, 0x3A, 0xD5, 0x0D, 0x80, +0x34, 0x40, 0x06, 0xF1, 0xCB, 0x99, 0x00, 0xA4, +0x55, 0x40, 0x7C, 0xEA, 0x8D, 0x99, 0x00, 0x28, +0x91, 0x9C, 0xC3, 0xEA, 0xEF, 0x41, 0x68, 0x88, +0x03, 0x22, 0x00, 0x0C, 0x21, 0x8D, 0x00, 0x80, +0x00, 0x00, 0x83, 0x22, 0x55, 0xF8, 0x41, 0x8D, +0x6A, 0xEA, 0x91, 0x96, 0xFF, 0x83, 0x71, 0xEA, +0x02, 0xE2, 0x0A, 0xF0, 0x0C, 0xF0, 0xE6, 0xE8, +0x20, 0x0C, 0x54, 0x3C, 0x81, 0x98, 0x0F, 0xF1, +0x8C, 0xF2, 0x91, 0x96, 0x0F, 0x42, 0x08, 0xF2, +0x51, 0x98, 0x24, 0x14, 0x88, 0xF1, 0x49, 0x96, +0x00, 0x40, 0x54, 0xDD, 0x80, 0xE0, 0xB6, 0x04, +0xEF, 0x05, 0x08, 0xE8, 0xEF, 0x55, 0x03, 0x80, +0xEF, 0x15, 0xFF, 0x00, 0x14, 0xD5, 0x07, 0x80, +0xE1, 0x51, 0x03, 0xF2, 0xEF, 0x41, 0xFF, 0x7F, +0xEF, 0x15, 0x13, 0x00, 0x07, 0xF0, 0x03, 0x80, +0x01, 0xE0, 0x03, 0xF1, 0x80, 0x84, 0x09, 0xE8, +0x08, 0x80, 0xAF, 0x04, 0x0C, 0x80, 0x9F, 0x04, +0xC4, 0x83, 0x04, 0xF2, 0x0E, 0xF2, 0xD2, 0xD5, +0x04, 0xF1, 0x1F, 0xB4, 0x4D, 0x99, 0x50, 0x99, +0x13, 0x80, 0xA2, 0x40, 0x64, 0x00, 0xE0, 0x45, +0x08, 0x80, 0xAF, 0x14, 0x10, 0xF0, 0x45, 0xD5, +0x1E, 0xE8, 0x20, 0xE3, 0x35, 0x40, 0x06, 0xF1, +0xCB, 0x99, 0x00, 0x28, 0x54, 0x40, 0x7C, 0xEA, +0x8D, 0x99, 0x00, 0xA4, 0x03, 0xF0, 0xC3, 0xEA, +0x03, 0x98, 0x68, 0x88, 0x00, 0x80, 0x33, 0x22, +0x03, 0x80, 0x83, 0xF0, 0x00, 0x00, 0x83, 0x22, +0x00, 0x80, 0x53, 0x22, 0x00, 0x20, 0x10, 0x40, +0x4C, 0x98, 0xC3, 0xEA, 0x02, 0x42, 0x6B, 0x9B, +0x08, 0x9B, 0x03, 0x80, 0x91, 0x9C, 0xFF, 0x83, +0x41, 0x8D, 0x21, 0x8D, 0x9E, 0xFF, 0x00, 0x4E, +0x22, 0xE2, 0x0A, 0xF1, 0x08, 0xF0, 0xD9, 0xE8, +0xA0, 0x40, 0x3F, 0xB4, 0x05, 0xF0, 0x00, 0x04, +0x20, 0x0C, 0x54, 0x3C, 0x91, 0x96, 0x81, 0x98, +0x03, 0xF2, 0x85, 0xF2, 0x24, 0x14, 0x11, 0x42, +0x10, 0x40, 0x71, 0xEA, 0xAF, 0x14, 0xB6, 0xF8, +0x81, 0xE0, 0x08, 0x80, 0x01, 0xF0, 0x05, 0xE8, +0x89, 0xF0, 0x00, 0x96, 0x01, 0xF1, 0x11, 0xD5, +0x01, 0x96, 0x09, 0x9C, 0x01, 0xF2, 0x81, 0xF0, +0x40, 0xE0, 0x09, 0xF0, 0x80, 0x84, 0x09, 0xE8, +0x05, 0x80, 0xAF, 0x04, 0x08, 0x80, 0x9F, 0x04, +0x83, 0xF4, 0x04, 0xF2, 0x02, 0xF1, 0xD6, 0xD5, +0x08, 0xA6, 0x07, 0xF2, 0x0F, 0x40, 0x01, 0x4C, +0x09, 0xF1, 0x09, 0xA6, 0x0B, 0xC0, 0x00, 0x4C, +0x04, 0xF1, 0x02, 0xF2, 0x00, 0x4C, 0x12, 0xA6, +0x13, 0xA6, 0x06, 0xC0, 0x01, 0x4C, 0x0A, 0xF2, +0x07, 0xF1, 0x0D, 0x00, 0x40, 0xAE, 0x02, 0xF0, +0x81, 0xAE, 0x09, 0xF2, 0x42, 0xAE, 0x04, 0xF1, +0x83, 0xAE, 0x0A, 0xF2, 0x86, 0xFE, 0xFF, 0x48, +0x40, 0xFC, 0xCA, 0xFC, 0x08, 0x80, 0x60, 0x50, +0x46, 0xB4, 0xC9, 0xA0, 0x18, 0x80, 0x80, 0x50, +0x41, 0x80, 0xDA, 0x98, 0x90, 0x04, 0x13, 0xA3, +0xDC, 0x98, 0x07, 0x80, 0x50, 0x50, 0x88, 0xB4, +0x89, 0x88, 0x20, 0x80, 0xA0, 0x04, 0x25, 0xB5, +0x89, 0x88, 0x04, 0x80, 0x70, 0x50, 0x22, 0xB5, +0x2A, 0x89, 0x14, 0x80, 0x2A, 0x89, 0x47, 0xB5, +0x24, 0x89, 0x23, 0x89, 0x92, 0x40, 0x20, 0xB7, +0xE3, 0x98, 0x01, 0x0C, 0x01, 0x00, 0x90, 0x14, +0x62, 0xB4, 0xC3, 0xA8, 0xDA, 0x98, 0x48, 0xB4, +0x5A, 0x98, 0x41, 0xB4, 0x46, 0xB4, 0x67, 0xB4, +0x65, 0xB4, 0x9A, 0x98, 0xD1, 0x9A, 0x93, 0x98, +0xC2, 0xA8, 0x51, 0x98, 0xC0, 0xFC, 0x44, 0xA8, +0xCB, 0xB0, 0x59, 0xFC, 0x00, 0x96, 0x8B, 0xF0, +0x85, 0xF0, 0x87, 0xF1, 0x1A, 0xA6, 0x5B, 0xA6, +0xD9, 0xA6, 0x88, 0xF2, 0x84, 0xF0, 0x8C, 0xB0, +0x81, 0xF2, 0x83, 0xF1, 0x64, 0xB1, 0x82, 0xF3, +0x80, 0x84, 0x62, 0x80, 0xFF, 0xDB, 0x19, 0xAB, +0xB2, 0xB1, 0xA4, 0xB0, 0x19, 0xAB, 0x62, 0x80, +0xFF, 0x7F, 0x33, 0x4C, 0xAF, 0xFF, 0x3F, 0x2E, +0x7F, 0xB6, 0x25, 0xEA, 0xBF, 0xB4, 0x74, 0xFA, +0x00, 0x80, 0x6F, 0x44, 0xD8, 0x98, 0xEC, 0xFE, +0x0C, 0x80, 0x91, 0x50, 0x60, 0x44, 0xC9, 0xB6, +0x9C, 0xA9, 0xFF, 0x7F, 0x4A, 0x00, 0x60, 0x3C, +0x05, 0x00, 0x8C, 0x3C, 0x86, 0xF6, 0x05, 0xF0, +0x09, 0x80, 0x8F, 0x14, 0x8A, 0xF3, 0x24, 0x80, +0x06, 0xF3, 0x2D, 0xD5, 0xE0, 0x43, 0x0A, 0xF4, +0x04, 0xF7, 0x24, 0x0C, 0x90, 0x80, 0xAF, 0x50, +0x10, 0x00, 0x82, 0x50, 0x09, 0xF5, 0x1E, 0xD5, +0x00, 0xF8, 0x33, 0x40, 0xEB, 0x98, 0xDB, 0x98, +0x4C, 0xB1, 0x41, 0xEA, 0x02, 0x82, 0x42, 0x38, +0x65, 0x38, 0xA9, 0xB4, 0xA3, 0xE0, 0x02, 0x1E, +0x69, 0xB6, 0x02, 0xE8, 0x65, 0xE0, 0xA8, 0xB4, +0x68, 0xB6, 0x02, 0xE8, 0x4B, 0x98, 0x1C, 0x99, +0xDE, 0x98, 0x4C, 0xB1, 0x0A, 0x1E, 0x35, 0x38, +0x0A, 0x82, 0x42, 0x38, 0xF9, 0x97, 0xF9, 0x9D, +0x67, 0xE2, 0x03, 0xF3, 0x01, 0x9C, 0xE1, 0xE8, +0x02, 0xF4, 0x01, 0x96, 0xD2, 0xE8, 0x80, 0xE2, +0xD4, 0xFA, 0xBF, 0xB4, 0x25, 0xEA, 0xAC, 0xFF, +0xB0, 0x99, 0x05, 0xF4, 0x08, 0x00, 0x33, 0x50, +0x70, 0x44, 0x18, 0xAF, 0x02, 0xF5, 0xFF, 0x7F, +0x01, 0x9C, 0x70, 0x42, 0xF2, 0xAD, 0x59, 0xAF, +0xD4, 0x8C, 0x04, 0xF0, 0x03, 0xF4, 0x1A, 0xAE, +0x60, 0x84, 0x1B, 0xAF, 0x01, 0xF4, 0x66, 0xB6, +0x04, 0xB4, 0xA3, 0x80, 0x51, 0x42, 0xE6, 0xB4, +0xE0, 0xE2, 0x73, 0x80, 0x06, 0xB6, 0x02, 0xE8, +0x24, 0x9D, 0xD9, 0x9C, 0xF7, 0x18, 0x38, 0x5A, +0xD4, 0xFA, 0x1F, 0xB4, 0x82, 0xEA, 0x84, 0xFF, +0xD8, 0x8C, 0xB3, 0x99, 0x66, 0xB6, 0x60, 0x84, +0x02, 0xB4, 0x83, 0x80, 0x41, 0x42, 0xE6, 0xB4, +0xE0, 0xE2, 0x73, 0x80, 0x06, 0xB6, 0x02, 0xE8, +0x94, 0x9C, 0xD9, 0x9C, 0xF7, 0x0E, 0x38, 0x5A, +0x44, 0xFF, 0x4D, 0xDD, 0x52, 0x40, 0x08, 0xF2, +0x07, 0xF3, 0xF7, 0x84, 0x32, 0x80, 0x62, 0x50, +0xF6, 0x00, 0x63, 0x40, 0x52, 0x42, 0xEF, 0x95, +0x73, 0x40, 0x24, 0x00, 0xB1, 0x97, 0x16, 0x81, +0x42, 0x40, 0x90, 0xAD, 0x73, 0x50, 0xB7, 0x84, +0xD8, 0xAD, 0x40, 0x80, 0x52, 0x50, 0x3F, 0xB4, +0x52, 0x40, 0x32, 0x00, 0x27, 0x95, 0xF6, 0x80, +0xD1, 0xAC, 0xE9, 0x96, 0x56, 0x00, 0x42, 0x40, +0x14, 0xFA, 0x07, 0xF5, 0x86, 0xEA, 0x0C, 0xFE, +0x42, 0x50, 0x02, 0x98, 0x29, 0xAD, 0x40, 0x00, +0x33, 0x42, 0x06, 0xF4, 0xC3, 0xAC, 0x73, 0x10, +0x41, 0xFC, 0xD9, 0xFC, 0x81, 0xF1, 0x81, 0xB0, +0x91, 0x02, 0x49, 0x96, 0x40, 0x84, 0x01, 0x00, +0x30, 0x38, 0x62, 0x80, 0x92, 0x9C, 0x09, 0x08, +0xFD, 0x32, 0x28, 0x5A, 0x07, 0x00, 0x8C, 0x3C, +0x28, 0x3E, 0x7E, 0x84, 0x15, 0xA5, 0x90, 0x00, +0xC4, 0xE0, 0x99, 0x99, 0x16, 0xA5, 0x1B, 0xE9, +0x18, 0xE9, 0x86, 0xE0, 0x9E, 0x84, 0xA0, 0x80, +0x07, 0x00, 0xA1, 0x02, 0x00, 0x24, 0x72, 0x40, +0x0C, 0xE9, 0xEA, 0xE0, 0x08, 0x00, 0xA1, 0x02, +0x08, 0xE9, 0x47, 0xE1, 0x02, 0x00, 0xA1, 0x02, +0x73, 0x28, 0x73, 0x42, 0x01, 0x1D, 0x74, 0x38, +0x21, 0x9D, 0xE8, 0xAD, 0x48, 0x5A, 0x6A, 0x9D, +0xD9, 0x9C, 0xED, 0x03, 0x38, 0x5A, 0x0A, 0x8C, +0xC1, 0xFC, 0xE0, 0x03, 0x20, 0x84, 0x00, 0xFC, +0x0A, 0x00, 0x30, 0x50, 0x40, 0xAC, 0x40, 0x80, +0x14, 0x00, 0x10, 0x12, 0x50, 0xAC, 0x02, 0x9C, +0x4A, 0x8C, 0x54, 0xAC, 0xF9, 0xFF, 0x01, 0x4C, +0x44, 0xFC, 0x80, 0xFC, 0x40, 0x85, 0x45, 0xDD, +0x90, 0x50, 0x84, 0xF1, 0x20, 0x80, 0x0A, 0x00, +0x14, 0x00, 0x80, 0x50, 0x84, 0x3C, 0x42, 0xD5, +0x14, 0x3C, 0x9F, 0x0C, 0x35, 0x40, 0xA0, 0x0C, +0x64, 0x3C, 0x00, 0x1C, 0x01, 0xF0, 0xA1, 0x0C, +0x01, 0x00, 0x40, 0x2A, 0x02, 0xF0, 0x81, 0xF0, +0x01, 0x00, 0x20, 0x2A, 0x25, 0x38, 0x22, 0x99, +0x82, 0xF0, 0x11, 0x1C, 0x21, 0x22, 0x22, 0x99, +0x62, 0x99, 0x02, 0x80, 0x00, 0x1C, 0x2F, 0x40, +0x02, 0x00, 0x41, 0x22, 0x11, 0x1C, 0x2F, 0x38, +0x24, 0x38, 0x22, 0x99, 0x22, 0x99, 0x11, 0x9C, +0x00, 0x9C, 0x24, 0x40, 0x02, 0x00, 0x21, 0x22, +0x22, 0x98, 0xFA, 0x9D, 0x24, 0x18, 0x30, 0x42, +0x32, 0x42, 0x05, 0xF2, 0x03, 0xF1, 0x73, 0x84, +0x01, 0x80, 0x00, 0x2A, 0x73, 0x20, 0x30, 0x42, +0xD1, 0xAA, 0x83, 0xF1, 0x78, 0x5A, 0x85, 0xF2, +0x09, 0x81, 0xCC, 0x06, 0xAF, 0x04, 0x2A, 0x81, +0x1F, 0x50, 0x07, 0x80, 0x4C, 0x8D, 0x0A, 0x00, +0x0A, 0x8D, 0x2A, 0x8D, 0x17, 0x24, 0xA0, 0x5A, +0x82, 0xF2, 0x8A, 0x9C, 0x00, 0x50, 0x04, 0xF2, +0xE5, 0x41, 0x0C, 0x80, 0x83, 0xF0, 0x00, 0x08, +0x16, 0x80, 0x00, 0x50, 0x07, 0x80, 0xAF, 0x14, +0x05, 0x80, 0xEF, 0x15, 0x81, 0xF0, 0x49, 0x81, +0xE0, 0x84, 0x86, 0xF2, 0xC1, 0x83, 0x28, 0x81, +0x01, 0x84, 0xAB, 0xD5, 0xFC, 0xFF, 0x6F, 0x3E, +0xF4, 0xFF, 0x5F, 0x3E, 0x06, 0xB6, 0x20, 0x84, +0x01, 0x80, 0x05, 0xB6, 0x11, 0xD5, 0x06, 0xF7, +0x04, 0xB4, 0x60, 0x80, 0x03, 0xE9, 0x60, 0xE0, +0x03, 0xD5, 0x03, 0x80, 0x45, 0xB6, 0x26, 0xB6, +0x24, 0x9D, 0x91, 0x9C, 0xF6, 0x03, 0x28, 0x5A, +0xEC, 0x8C, 0x49, 0x9C, 0x06, 0x00, 0x11, 0x4C, +0x60, 0x80, 0x87, 0x80, 0xEE, 0xD5, 0x40, 0x84, +0x49, 0x9E, 0x3F, 0xB9, 0x00, 0x46, 0xBF, 0xB9, +0x3D, 0xB9, 0x80, 0x00, 0xBD, 0xB9, 0x49, 0x9E, +0x53, 0xFC, 0xC4, 0xFC, 0x08, 0xB1, 0xC9, 0xB0, +0x88, 0xF1, 0x89, 0xF0, 0x87, 0xF0, 0x00, 0x96, +0x83, 0xF2, 0x1A, 0xA6, 0x99, 0xA6, 0x86, 0xF0, +0xDB, 0xA6, 0x21, 0xA4, 0x84, 0xF3, 0x85, 0xF2, +0xA0, 0x40, 0x82, 0xF0, 0x8B, 0xB1, 0x13, 0x80, +0x8F, 0x04, 0x18, 0xB1, 0xAF, 0x12, 0x02, 0x80, +0x8F, 0x12, 0x10, 0x80, 0x08, 0xF0, 0x11, 0x80, +0xFF, 0x49, 0x81, 0xF4, 0xAF, 0x12, 0x1D, 0xF9, +0x8F, 0x12, 0x10, 0x80, 0xE0, 0x80, 0x11, 0x80, +0x06, 0x80, 0x08, 0xF1, 0x0F, 0xFF, 0xFF, 0x49, +0x01, 0xF4, 0x2A, 0x81, 0x93, 0xEA, 0x07, 0xCF, +0x04, 0xCA, 0x9E, 0x96, 0xB0, 0xFF, 0x27, 0x2E, +0x06, 0x80, 0x06, 0xC2, 0xFF, 0x49, 0x81, 0xF4, +0x01, 0xF4, 0x37, 0xFF, 0x06, 0x80, 0x24, 0x80, +0xFF, 0x49, 0x81, 0xF4, 0x3D, 0x3C, 0x40, 0xFF, +0x01, 0xF4, 0xFF, 0xFF, 0x2D, 0x3C, 0x04, 0xCB, +0x22, 0xC2, 0xFD, 0xFF, 0x05, 0x40, 0xD9, 0x96, +0x02, 0xF2, 0x00, 0x0C, 0x13, 0x00, 0xA0, 0x40, +0xFA, 0xFF, 0x03, 0x3C, 0x49, 0x96, 0x50, 0x98, +0x07, 0xF1, 0x82, 0xF1, 0x0C, 0xE9, 0x41, 0xE3, +0x06, 0xF1, 0x02, 0xF2, 0x08, 0xE9, 0x41, 0xE2, +0x4A, 0xE2, 0x05, 0xF2, 0x04, 0xF1, 0x05, 0xE9, +0x22, 0xE2, 0x02, 0xF2, 0x02, 0xF1, 0xBB, 0xE8, +0x01, 0x0C, 0x35, 0x40, 0x01, 0x96, 0x08, 0x9A, +0xA1, 0x40, 0x82, 0xF0, 0x21, 0xB0, 0x13, 0x80, +0xFF, 0x49, 0x58, 0xB0, 0x21, 0xF4, 0xD4, 0xFD, +0x32, 0x42, 0x1E, 0x84, 0x41, 0xDD, 0x24, 0x00, +0xD0, 0x00, 0x40, 0x22, 0x22, 0x80, 0x8F, 0x04, +0x24, 0x20, 0x42, 0x42, 0x24, 0x80, 0x8F, 0x04, +0xE3, 0x80, 0xA3, 0x84, 0x73, 0x14, 0x74, 0x42, +0x16, 0x1D, 0x42, 0x40, 0xD1, 0x00, 0x70, 0x22, +0x23, 0x80, 0x8F, 0x04, 0x33, 0x42, 0x25, 0xF6, +0x73, 0x42, 0x73, 0x14, 0x50, 0x22, 0x24, 0xA0, +0x33, 0x40, 0xD0, 0x00, 0x22, 0xFF, 0xD6, 0x8C, +0xA4, 0xE0, 0xDA, 0xFE, 0x01, 0x84, 0x03, 0xE8, +0x00, 0x22, 0x06, 0xD5, 0x02, 0xFE, 0xD0, 0x00, +0x07, 0x00, 0x02, 0x40, 0x9B, 0x0C, 0x64, 0x3C, +0x02, 0xE8, 0xC3, 0xE0, 0x54, 0x3C, 0x06, 0xD5, +0x6A, 0xFF, 0x9A, 0x0C, 0x03, 0xE8, 0x65, 0xE0, +0x02, 0x00, 0x00, 0x58, 0x41, 0x00, 0xF2, 0x5E, +0x40, 0x44, 0x04, 0xE9, 0x05, 0xD5, 0x40, 0x00, +0xC0, 0xFF, 0x5F, 0x44, 0x00, 0x14, 0x42, 0x42, +0x41, 0x80, 0xF1, 0x5E, 0x30, 0x44, 0x04, 0xE9, +0x05, 0xD5, 0x40, 0x00, 0xC0, 0xFF, 0x5F, 0x44, +0x00, 0x94, 0x31, 0x42, 0x08, 0x1C, 0x55, 0x40, +0x02, 0xF1, 0x03, 0xF2, 0x40, 0x80, 0x52, 0x50, +0x10, 0xAD, 0x2C, 0x99, 0x42, 0x50, 0x0F, 0x95, +0xE3, 0x98, 0x40, 0x00, 0x1B, 0x3C, 0xD1, 0xAC, +0xAB, 0x3C, 0xFD, 0xFF, 0xD3, 0xFC, 0xFC, 0xFF, +0x00, 0x84, 0x00, 0xFC, 0x01, 0xFC, 0x80, 0xFC, +0x81, 0xF1, 0x81, 0xB0, 0x48, 0x96, 0x03, 0x96, +0x12, 0xA7, 0x51, 0xA7, 0x05, 0x4E, 0xD3, 0xA6, +0x5B, 0xDD, 0x11, 0x00, 0x16, 0x08, 0x20, 0x40, +0x41, 0xE2, 0x91, 0x96, 0xA2, 0xE2, 0x0A, 0xE9, +0x01, 0x96, 0x08, 0xE9, 0x05, 0xE9, 0x04, 0xE2, +0x06, 0x80, 0x01, 0x40, 0x02, 0xD5, 0x31, 0xEA, +0x81, 0xFC, 0x00, 0x84, 0x07, 0xB1, 0x44, 0xFC, +0x87, 0xF2, 0x84, 0xF0, 0xFF, 0x84, 0xD9, 0x96, +0x86, 0xF3, 0x48, 0x96, 0xAF, 0x04, 0x85, 0xF1, +0x27, 0x81, 0x04, 0x80, 0x83, 0xF7, 0x00, 0x85, +0x14, 0x00, 0x38, 0x3E, 0x05, 0x22, 0x21, 0xD5, +0x05, 0x4E, 0x00, 0x00, 0x24, 0xB4, 0x1A, 0x00, +0x81, 0xF3, 0xC0, 0x80, 0x36, 0xF8, 0x82, 0xF4, +0x02, 0xF4, 0x01, 0xF3, 0x11, 0x01, 0x08, 0x5A, +0xB6, 0x98, 0xA3, 0xB4, 0x4D, 0xEA, 0x6A, 0x99, +0x02, 0xE0, 0x03, 0xF0, 0x4D, 0xEA, 0x09, 0xE8, +0x40, 0xE0, 0x06, 0xF0, 0x76, 0xEA, 0x05, 0xE9, +0x83, 0xF1, 0xE8, 0x80, 0xC9, 0x80, 0x02, 0xD5, +0x42, 0x8D, 0x01, 0x8D, 0x05, 0xF0, 0x26, 0x81, +0xDE, 0xE9, 0x00, 0xE1, 0x06, 0xFF, 0x77, 0x5A, +0x3F, 0x84, 0x04, 0xF0, 0x09, 0x1D, 0x10, 0x38, +0xC4, 0xFC, 0x09, 0x80, 0x03, 0xB1, 0x42, 0xFC, +0x48, 0x97, 0x83, 0xF2, 0x20, 0x81, 0xD9, 0x96, +0x00, 0x85, 0xE1, 0x84, 0x1C, 0xD5, 0x44, 0x80, +0x00, 0x80, 0x64, 0x22, 0x17, 0xFF, 0x67, 0x5A, +0x06, 0x80, 0x22, 0xB4, 0x81, 0xF3, 0x5F, 0xB6, +0xFF, 0x49, 0x82, 0xF5, 0x5F, 0xB4, 0x96, 0xFF, +0x02, 0xF5, 0x01, 0xF3, 0x0B, 0x01, 0x08, 0x5A, +0x05, 0x00, 0x0C, 0x3C, 0x86, 0x99, 0xB6, 0x99, +0x00, 0x00, 0x03, 0x22, 0x02, 0xE9, 0x03, 0xE0, +0x01, 0x8D, 0xF9, 0x9D, 0x05, 0xE1, 0x22, 0x8D, +0x07, 0x80, 0xE4, 0xE9, 0x41, 0xFC, 0xC2, 0xFC, +0x81, 0xF0, 0x41, 0xB0, 0xC6, 0xEA, 0x8A, 0xA6, +0x08, 0xA6, 0xC9, 0xA7, 0x05, 0x00, 0x6C, 0x3C, +0x12, 0xD5, 0x80, 0x84, 0x22, 0x81, 0x65, 0xEA, +0x73, 0x0C, 0x90, 0x42, 0x34, 0x40, 0x22, 0x80, +0xF3, 0x98, 0x00, 0xA4, 0x49, 0x9C, 0x05, 0xD5, +0x01, 0x80, 0x41, 0x1A, 0x01, 0xE3, 0x49, 0x96, +0x01, 0x9C, 0xFB, 0xE8, 0xE0, 0xE2, 0x01, 0x96, +0xC1, 0xFC, 0xEE, 0xE8, 0x38, 0x3E, 0x44, 0xFC, +0x20, 0x84, 0x38, 0x00, 0x28, 0x3E, 0x86, 0xF0, +0x18, 0xA4, 0x44, 0x03, 0x0B, 0x3C, 0x50, 0xAC, +0x44, 0xDD, 0xF0, 0xFF, 0xB0, 0x80, 0x40, 0x02, +0xDD, 0x00, 0x42, 0x4E, 0xF0, 0x80, 0x40, 0x22, +0xD9, 0x00, 0x44, 0x4E, 0x0A, 0x00, 0x01, 0x50, +0x1A, 0x00, 0x41, 0x50, 0x82, 0xF3, 0x85, 0xF0, +0x30, 0x44, 0x00, 0x84, 0x84, 0xF4, 0x6D, 0x01, +0xB6, 0x00, 0x90, 0x44, 0x41, 0x81, 0x83, 0xF3, +0x87, 0xF0, 0x02, 0x81, 0xBD, 0x00, 0x00, 0x48, +0xB3, 0x00, 0x65, 0x22, 0x40, 0x3C, 0x09, 0xC6, +0xC0, 0x84, 0x49, 0x00, 0x8F, 0xEA, 0x81, 0xF4, +0xA6, 0x80, 0xE6, 0x80, 0x35, 0x22, 0x49, 0xD5, +0x8F, 0xEA, 0xB4, 0x00, 0x11, 0x25, 0x25, 0x38, +0x73, 0x0C, 0x2F, 0x42, 0x91, 0x96, 0x06, 0xF3, +0x1A, 0x99, 0x92, 0x98, 0xA6, 0x80, 0xE6, 0x80, +0x15, 0x38, 0x16, 0xD5, 0x69, 0x98, 0x11, 0x25, +0x3A, 0xE8, 0x3E, 0xE0, 0x00, 0x00, 0x22, 0x22, +0x11, 0x22, 0x02, 0xF3, 0x41, 0xE0, 0x00, 0x80, +0x12, 0x22, 0x08, 0xE9, 0xE1, 0xE0, 0x00, 0x00, +0x02, 0xD5, 0x02, 0xE9, 0xC1, 0x84, 0xE0, 0xA5, +0x22, 0x9D, 0x69, 0x9D, 0xB5, 0x00, 0x15, 0x22, +0xE8, 0xE9, 0xA1, 0xE0, 0x15, 0x38, 0x25, 0xD5, +0x01, 0xF4, 0x11, 0x25, 0x24, 0xE0, 0x69, 0x98, +0x15, 0x22, 0x1F, 0xE8, 0x25, 0x38, 0xB4, 0x00, +0xAA, 0x98, 0x11, 0x25, 0x73, 0x08, 0x1F, 0x42, +0x49, 0x96, 0x06, 0xF2, 0x51, 0x98, 0x49, 0x98, +0x00, 0x80, 0x30, 0x22, 0x22, 0x22, 0x02, 0xF4, +0x62, 0xE0, 0x00, 0x00, 0x20, 0x22, 0x08, 0xE9, +0xE2, 0xE0, 0x00, 0x80, 0x02, 0xD5, 0x02, 0xE9, +0xC1, 0x84, 0xC8, 0xA5, 0x15, 0x22, 0x69, 0x9D, +0xA1, 0xE0, 0xB5, 0x00, 0x68, 0x5A, 0xDD, 0xE9, +0x34, 0x00, 0x36, 0x01, 0xD9, 0x9C, 0x02, 0x00, +0x48, 0x2E, 0x5A, 0x97, 0x54, 0x10, 0xD2, 0x0E, +0xA4, 0xE0, 0x02, 0x00, 0x44, 0x10, 0x4B, 0xE9, +0x40, 0x3C, 0x02, 0x00, 0x23, 0x40, 0xA2, 0x01, +0xA7, 0xFE, 0x0C, 0x00, 0xA2, 0x01, 0x28, 0x3C, +0x28, 0x5A, 0x83, 0xEA, 0x27, 0x80, 0x06, 0x01, +0x45, 0x0A, 0x00, 0x49, 0x03, 0xF1, 0x05, 0xD5, +0x05, 0x38, 0x3B, 0x96, 0x04, 0xF2, 0x09, 0x05, +0x00, 0x5A, 0x10, 0xA6, 0xAC, 0xEA, 0x0C, 0x01, +0x9F, 0xFE, 0x7A, 0xEA, 0xCA, 0x0D, 0x28, 0x3C, +0x5B, 0x07, 0x00, 0x3C, 0x01, 0x92, 0x02, 0xF4, +0x04, 0xF1, 0x20, 0xAC, 0x01, 0x84, 0x05, 0xF2, +0x08, 0xAE, 0x61, 0x84, 0x87, 0xF3, 0xD0, 0xAD, +0x04, 0xF4, 0x21, 0xD5, 0x18, 0x5A, 0x60, 0xA6, +0x03, 0xF0, 0x11, 0x01, 0x9B, 0x7E, 0x30, 0x50, +0x0C, 0x8C, 0x10, 0x40, 0xA2, 0x01, 0x30, 0x3C, +0x18, 0x3C, 0x5F, 0xFE, 0xAC, 0xEA, 0xA2, 0x01, +0x9F, 0xFE, 0x7A, 0xEA, 0xCA, 0x0D, 0x28, 0x3C, +0x04, 0xF0, 0x03, 0xF4, 0x20, 0x84, 0x05, 0xF2, +0x09, 0x11, 0x15, 0x38, 0x14, 0x10, 0x40, 0xAE, +0x50, 0xAC, 0x02, 0x00, 0x02, 0xF3, 0xB7, 0xEA, +0x04, 0xF4, 0x58, 0xAC, 0x03, 0xF1, 0x05, 0xF0, +0x21, 0x9D, 0x02, 0xF2, 0x49, 0x9C, 0x02, 0x9C, +0x84, 0xF4, 0x92, 0x9C, 0x83, 0xF1, 0x85, 0xF0, +0x01, 0x8D, 0x82, 0xF2, 0x03, 0xF3, 0x21, 0x8D, +0xB0, 0x00, 0x15, 0x22, 0x93, 0xFE, 0x01, 0x50, +0xF3, 0x4E, 0x01, 0xE0, 0x07, 0xF0, 0x3F, 0xFF, +0x00, 0x84, 0x02, 0xD5, 0x00, 0xFC, 0xC4, 0xFC, +0x41, 0xDD, 0xC0, 0x80, 0xB0, 0x00, 0x10, 0x22, +0x1B, 0x00, 0x17, 0x4E, 0xB4, 0x00, 0x10, 0x22, +0x20, 0x22, 0x17, 0xC9, 0x0B, 0xCA, 0xB3, 0x00, +0xF0, 0x5C, 0x30, 0xA4, 0x03, 0xE8, 0x80, 0x00, +0x0E, 0xD5, 0xB0, 0xAC, 0x80, 0x7F, 0x00, 0x50, +0x0A, 0xD5, 0x30, 0xAC, 0xF0, 0x5C, 0x31, 0xA4, +0x03, 0xE8, 0x80, 0x00, 0x04, 0xD5, 0x71, 0xAC, +0x80, 0x7F, 0x00, 0x50, 0x00, 0x3C, 0x31, 0xAC, +0x70, 0xA4, 0x4B, 0x00, 0x02, 0xE8, 0x01, 0xE2, +0x10, 0x3C, 0x30, 0xAC, 0xB1, 0xA4, 0x4C, 0x00, +0x02, 0xE8, 0x22, 0xE2, 0x47, 0xDD, 0x71, 0xAC, +0xEC, 0x00, 0x41, 0x22, 0x64, 0xE0, 0xF0, 0xA4, +0x21, 0x02, 0x04, 0xE8, 0x09, 0xD5, 0xEC, 0x00, +0xED, 0x00, 0x41, 0x22, 0x83, 0xE0, 0x04, 0x9B, +0x21, 0x02, 0x05, 0xE8, 0x82, 0x9A, 0xED, 0x00, +0x47, 0xDD, 0xB0, 0xAC, 0xEE, 0x00, 0x41, 0x22, +0x64, 0xE0, 0xF1, 0xA4, 0x21, 0x02, 0x04, 0xE8, +0x09, 0xD5, 0xEE, 0x00, 0xEF, 0x00, 0x41, 0x22, +0x83, 0xE0, 0x0C, 0x9B, 0x21, 0x02, 0x05, 0xE8, +0x8A, 0x9A, 0xEF, 0x00, 0xB0, 0xA4, 0xB1, 0xAC, +0x80, 0x00, 0xF1, 0x5C, 0x59, 0xEA, 0x09, 0xE8, +0x34, 0x3C, 0xA2, 0xEA, 0x0E, 0xF8, 0xB6, 0x0C, +0x80, 0x00, 0x21, 0x52, 0x30, 0x50, 0x17, 0xD5, +0x43, 0xE0, 0x81, 0x7F, 0x59, 0xEA, 0x14, 0xE9, +0x80, 0x00, 0x21, 0x50, 0xB7, 0x0C, 0x34, 0x3C, +0x42, 0x52, 0x90, 0x9A, 0x91, 0x96, 0x80, 0x00, +0x31, 0x52, 0xA4, 0xFE, 0x21, 0x40, 0x80, 0x80, +0xFF, 0x83, 0x77, 0x0C, 0x80, 0x7F, 0x30, 0x50, +0xB0, 0xAC, 0x9A, 0x98, 0xF1, 0x5C, 0xB1, 0xA4, +0x09, 0xE8, 0x80, 0x00, 0xA2, 0xEA, 0x59, 0xEA, +0xB8, 0x0C, 0x34, 0x3C, 0xEB, 0xFF, 0x00, 0x4E, +0x10, 0xD5, 0xA2, 0xEA, 0x81, 0xFF, 0x30, 0x50, +0x0D, 0xE9, 0x43, 0xE0, 0x21, 0x50, 0x59, 0xEA, +0x34, 0x3C, 0x80, 0x00, 0x91, 0x9A, 0xB9, 0x0C, +0xDD, 0xFF, 0x00, 0x4E, 0x80, 0xFF, 0x30, 0x50, +0xB1, 0xAC, 0x9A, 0x98, 0x09, 0x04, 0x20, 0x40, +0x41, 0x50, 0xF0, 0xA4, 0x64, 0xE0, 0xE0, 0x7F, +0x50, 0x3C, 0x08, 0xE8, 0x13, 0xC5, 0x94, 0x0C, +0x94, 0x0C, 0x44, 0x3C, 0x0B, 0xD5, 0x14, 0x99, +0x20, 0x00, 0x41, 0x50, 0x0B, 0xE8, 0x83, 0xE0, +0x95, 0x0C, 0x50, 0x3C, 0x44, 0x3C, 0x08, 0xC5, +0x14, 0x9B, 0x95, 0x0C, 0x21, 0x40, 0xE4, 0xFE, +0xB0, 0xAC, 0x76, 0x88, 0x09, 0x84, 0x20, 0x40, +0x41, 0x50, 0xF1, 0xA4, 0x64, 0xE0, 0xE0, 0x7F, +0x50, 0x3C, 0x08, 0xE8, 0x13, 0xC5, 0x96, 0x0C, +0x96, 0x0C, 0x44, 0x3C, 0x0B, 0xD5, 0x14, 0x99, +0x20, 0x00, 0x41, 0x50, 0x0B, 0xE8, 0x83, 0xE0, +0x97, 0x0C, 0x50, 0x3C, 0x44, 0x3C, 0x08, 0xC5, +0x14, 0x9B, 0x97, 0x0C, 0x21, 0x40, 0xE4, 0xFE, +0xB1, 0xAC, 0x76, 0x88, 0x31, 0xA5, 0xF0, 0xA4, +0x30, 0xAD, 0xF1, 0xAC, 0x51, 0x22, 0x47, 0xDD, +0x2C, 0xFF, 0xC0, 0x00, 0x97, 0x04, 0x12, 0x40, +0x70, 0xAC, 0x49, 0x96, 0xC1, 0x00, 0x41, 0x22, +0x01, 0x40, 0xE4, 0xFE, 0x31, 0xAC, 0x77, 0x80, +0xC2, 0x00, 0x01, 0x02, 0x05, 0xC0, 0x04, 0x96, +0xC0, 0x00, 0x01, 0x02, 0x70, 0xAC, 0x41, 0x9A, +0x8C, 0x0C, 0x10, 0x3C, 0x06, 0xC1, 0x4E, 0x96, +0x8B, 0x0C, 0x00, 0x3C, 0x01, 0x9A, 0x71, 0xA4, +0x00, 0x3C, 0x31, 0xAC, 0x16, 0x96, 0x8C, 0x0C, +0x30, 0xA4, 0x05, 0xC0, 0x31, 0xAC, 0x71, 0xA4, +0x07, 0x2E, 0x70, 0xAC, 0x08, 0x5A, 0x9C, 0xFF, +0x06, 0x80, 0x05, 0x01, 0x30, 0x09, 0x00, 0x49, +0x0C, 0xFE, 0x39, 0xF9, 0x01, 0x98, 0x5D, 0xDD, +0x26, 0x80, 0x44, 0x84, 0x80, 0xFC, 0x6D, 0xEA, +0x45, 0xDD, 0x47, 0xFC, 0x0B, 0x3C, 0x00, 0x84, +0x0B, 0x3C, 0xF3, 0xFF, 0x0B, 0x3C, 0xEF, 0xFF, +0x94, 0xEA, 0xF1, 0xFF, 0x68, 0x3E, 0xC5, 0xBF, +0xC7, 0xBE, 0xCC, 0x09, 0x68, 0xEA, 0x5C, 0xEA, +0x2B, 0xF6, 0xFF, 0x49, 0x99, 0xFF, 0x07, 0x3E, +0x9C, 0x01, 0x02, 0x4E, 0x04, 0x96, 0x2B, 0xEA, +0x53, 0xDD, 0x0A, 0xC8, 0x23, 0x38, 0x06, 0xD5, +0x23, 0x38, 0x11, 0x81, 0x01, 0x9C, 0x09, 0x01, +0xFA, 0xE9, 0x01, 0xE0, 0x98, 0xEA, 0xC7, 0xBF, +0x30, 0xA6, 0xCA, 0x8C, 0xB4, 0xA6, 0x72, 0xA6, +0x0F, 0x10, 0xF6, 0xA6, 0x1F, 0x10, 0x28, 0x80, +0x3F, 0x10, 0x29, 0x80, 0x2F, 0x10, 0x2B, 0x80, +0x8D, 0xEA, 0x2A, 0x80, 0x30, 0x3C, 0x0A, 0xF2, +0x68, 0xEA, 0x56, 0x07, 0x82, 0xF0, 0x70, 0xF9, +0x07, 0x4C, 0xFF, 0x85, 0x78, 0x3E, 0x77, 0x81, +0x27, 0xB4, 0x14, 0x00, 0x48, 0x98, 0x00, 0x98, +0x00, 0x80, 0xA0, 0x22, 0x1A, 0x0C, 0x94, 0x3C, +0x43, 0x02, 0x02, 0xF1, 0x83, 0xF0, 0xFD, 0x7F, +0xB6, 0x90, 0x40, 0x40, 0x0E, 0x80, 0x4F, 0x12, +0x0F, 0x80, 0x5F, 0x12, 0xFF, 0x49, 0x07, 0xF0, +0x27, 0xC0, 0x97, 0xF5, 0x08, 0xE8, 0x03, 0xE6, +0x03, 0xF2, 0x87, 0xB4, 0x33, 0xEA, 0x22, 0x99, +0x57, 0x07, 0x40, 0x3C, 0x05, 0xE6, 0x09, 0xD5, +0x87, 0xB4, 0x0A, 0xE8, 0x23, 0x99, 0x03, 0xF3, +0x40, 0x3C, 0x33, 0xEA, 0xA4, 0xE0, 0x58, 0x07, +0x13, 0xD5, 0xBF, 0xE9, 0x08, 0xE8, 0x07, 0xE6, +0x03, 0xF0, 0x87, 0xB4, 0x33, 0xEA, 0x20, 0x99, +0x59, 0x07, 0x40, 0x3C, 0x09, 0xE6, 0xF5, 0xD5, +0x87, 0xB4, 0x08, 0xE8, 0x21, 0x99, 0x03, 0xF1, +0x40, 0x3C, 0x33, 0xEA, 0xEC, 0xD5, 0x5A, 0x07, +0x24, 0x24, 0x35, 0x42, 0x31, 0x40, 0x54, 0xDD, +0x5C, 0xEA, 0x36, 0x84, 0x22, 0x92, 0x85, 0xF1, +0x84, 0xF3, 0xDB, 0x96, 0x03, 0xE8, 0x61, 0xE0, +0x84, 0xF1, 0x4B, 0x96, 0x02, 0xF3, 0x03, 0xF2, +0x54, 0x3C, 0x47, 0xBC, 0xA6, 0xEA, 0x22, 0x0C, +0x11, 0x08, 0x42, 0x38, 0x05, 0x00, 0x8E, 0x3C, +0x99, 0x96, 0x0A, 0xF0, 0x4B, 0xB0, 0x04, 0xF3, +0x81, 0xF5, 0x9F, 0xB6, 0x73, 0xF7, 0xFF, 0x49, +0x7F, 0x00, 0x0B, 0xF0, 0xAF, 0x00, 0x2D, 0x80, +0x83, 0x3C, 0x2C, 0x80, 0x89, 0xF0, 0xEF, 0xFF, +0x01, 0xA8, 0x03, 0x40, 0x01, 0xF5, 0x9F, 0xB4, +0x05, 0xE9, 0x08, 0xE0, 0xEA, 0x8A, 0xF9, 0x9D, +0xEF, 0xFF, 0x7B, 0x3C, 0x2F, 0x80, 0x7F, 0x00, +0x2E, 0x80, 0xAF, 0x00, 0xF1, 0xFF, 0x83, 0x3C, +0x01, 0xA8, 0xE3, 0x41, 0x07, 0x20, 0xFF, 0x40, +0xF9, 0x9D, 0x05, 0xE9, 0x7B, 0x3C, 0xEA, 0x8A, +0x8F, 0x50, 0xF1, 0xFF, 0xC1, 0x9D, 0x01, 0x00, +0x24, 0x1C, 0x74, 0x42, 0x13, 0x80, 0x93, 0x40, +0xF3, 0xFF, 0x73, 0x3C, 0x03, 0xE8, 0xE9, 0xE2, +0xF3, 0xFF, 0x9B, 0x3C, 0x1C, 0x0C, 0x74, 0x3C, +0x8A, 0xF1, 0x0B, 0xF1, 0x17, 0xE8, 0x07, 0xE0, +0x1D, 0x0C, 0x74, 0x3C, 0x07, 0x1C, 0xFF, 0x40, +0x74, 0x3C, 0x12, 0xE8, 0xE9, 0xE0, 0x1E, 0x0C, +0x74, 0x3C, 0x0E, 0xE9, 0x27, 0xE1, 0x21, 0x0C, +0x45, 0xBE, 0x0A, 0xE9, 0xB2, 0x99, 0x03, 0xF2, +0x64, 0x3C, 0x92, 0xEA, 0x63, 0x40, 0x1F, 0x0C, +0x02, 0xD5, 0x07, 0x98, 0x12, 0x42, 0xC1, 0x84, +0x87, 0xEA, 0x24, 0x14, 0x96, 0x90, 0x10, 0x40, +0x0A, 0xF2, 0x05, 0xF3, 0x40, 0x42, 0x68, 0xEA, +0x8D, 0xEA, 0x00, 0x8C, 0xFF, 0x49, 0xE1, 0x96, +0x0A, 0xCE, 0xDB, 0xFC, 0x09, 0x01, 0x00, 0x5A, +0x40, 0x02, 0x44, 0xDD, 0x04, 0xC4, 0x56, 0x80, +0xC1, 0x08, 0x40, 0x3C, 0x4B, 0xDD, 0x56, 0xC4, +0x1F, 0x00, 0x12, 0xC0, 0x0F, 0x00, 0x2D, 0x80, +0x08, 0x9A, 0x2C, 0x80, 0x08, 0xE8, 0x03, 0xE4, +0x2F, 0x80, 0x1F, 0x00, 0x2E, 0x80, 0x0F, 0x00, +0x03, 0xE4, 0x08, 0x9A, 0x21, 0x84, 0x04, 0xE9, +0xAB, 0xFF, 0x17, 0x3E, 0x17, 0x3E, 0x20, 0x84, +0x4B, 0xF8, 0xB0, 0xFF, 0x08, 0xF1, 0x4E, 0xF8, +0x8C, 0xB0, 0x0B, 0xF0, 0x14, 0x3C, 0x4F, 0xF8, +0x3F, 0x00, 0x26, 0x0C, 0x2F, 0x00, 0x2D, 0x80, +0x9A, 0x9A, 0x2C, 0x80, 0x0A, 0xE8, 0x41, 0xE0, +0x27, 0x0C, 0x04, 0x3C, 0x2F, 0x80, 0x2F, 0x00, +0x2E, 0x80, 0x1F, 0x00, 0x20, 0xE0, 0x51, 0x9A, +0x1F, 0x02, 0x09, 0xE9, 0x2F, 0x02, 0x1A, 0x80, +0x0C, 0xB0, 0x1B, 0x80, 0x81, 0xAC, 0x40, 0xAC, +0xF0, 0x46, 0x11, 0xD5, 0x5E, 0xDD, 0x80, 0x00, +0xFF, 0x83, 0x14, 0xFA, 0x82, 0xEA, 0x44, 0xFE, +0x65, 0xEA, 0x4B, 0x98, 0xFC, 0xFF, 0x23, 0x3C, +0xFD, 0xFF, 0x03, 0x3C, 0x73, 0x88, 0x01, 0x42, +0x0C, 0xB0, 0x0B, 0xAC, 0x09, 0xF0, 0x4A, 0xF8, +0x7F, 0x2E, 0x68, 0xF8, 0x4B, 0xF8, 0xAF, 0xFF, +0x07, 0x3E, 0x4C, 0xF8, 0x0F, 0xE4, 0xAF, 0xFF, +0xD7, 0xFE, 0xF3, 0x4E, 0x62, 0x00, 0x00, 0x48, +0x57, 0x3E, 0xA1, 0x84, 0x02, 0xF2, 0xB0, 0xFF, +0x21, 0x81, 0x8C, 0xB1, 0x0A, 0xF0, 0x04, 0xF3, +0x91, 0x96, 0x4B, 0xB0, 0xE2, 0xF7, 0xFF, 0x49, +0x4D, 0xB0, 0x0B, 0xF0, 0xFF, 0x83, 0x88, 0xB0, +0xB8, 0xF9, 0xFF, 0x49, 0x0B, 0xF0, 0x08, 0xF1, +0xFF, 0x49, 0x46, 0x80, 0x14, 0x22, 0x48, 0xFB, +0x2F, 0x00, 0x5C, 0x80, 0x0F, 0x00, 0x2D, 0x80, +0x10, 0x9A, 0x2C, 0x80, 0x0A, 0xE8, 0x01, 0xE0, +0x5D, 0x80, 0x14, 0x22, 0x2F, 0x80, 0x2F, 0x00, +0x2E, 0x80, 0x0F, 0x00, 0x01, 0xE0, 0x10, 0x9A, +0xF2, 0xA4, 0x06, 0xE9, 0xF0, 0xAC, 0x33, 0xA4, +0x0E, 0xD5, 0x31, 0xAC, 0x14, 0xFA, 0x5E, 0xDD, +0x5D, 0xDD, 0x0C, 0xFE, 0x57, 0xEA, 0x41, 0x99, +0xFD, 0xFF, 0x03, 0x3C, 0xFC, 0xFF, 0x13, 0x3C, +0x73, 0x04, 0x02, 0x42, 0x06, 0x80, 0x2B, 0xAC, +0x73, 0xFD, 0xFF, 0x49, 0x1D, 0xF8, 0x0B, 0xF0, +0xAF, 0xFF, 0x7F, 0x2E, 0xDE, 0xFB, 0xFF, 0x49, +0x7C, 0xFE, 0x34, 0xFA, 0x4A, 0x98, 0x86, 0xEA, +0x11, 0x80, 0x00, 0x12, 0x02, 0x96, 0x39, 0x9C, +0x07, 0x3E, 0xFF, 0x83, 0x0F, 0xE4, 0xAF, 0xFF, +0x0A, 0xF2, 0x10, 0xE8, 0x30, 0x3C, 0x8D, 0xEA, +0x68, 0xEA, 0x56, 0x07, 0xE8, 0xFB, 0xFF, 0x49, +0x0F, 0x5A, 0x40, 0x80, 0x09, 0xF0, 0xAD, 0xFF, +0x47, 0xFC, 0xFF, 0x49, 0x75, 0xFE, 0xFF, 0x48, +0xC7, 0xFC, 0x01, 0x84, 0x00, 0x84, 0x00, 0xFC, +0x00, 0x4E, 0x67, 0xEA, 0x94, 0x96, 0xA7, 0x03, +0x01, 0x9C, 0x04, 0xC2, 0xFB, 0x0F, 0x08, 0x5A, +0x42, 0xFC, 0x80, 0xFC, 0x00, 0x84, 0x82, 0xF0, +0x88, 0x3E, 0x83, 0xF1, 0x81, 0xF0, 0x90, 0x0C, +0x80, 0x00, 0x00, 0x48, 0x08, 0xA4, 0x02, 0xF1, +0x00, 0x40, 0x01, 0xF1, 0xA0, 0x54, 0x0E, 0x04, +0xA3, 0x4E, 0x01, 0x00, 0xFF, 0x49, 0x72, 0x00, +0xE0, 0x80, 0xE3, 0xFF, 0x07, 0x4C, 0xEF, 0x85, +0x01, 0xF1, 0x76, 0x80, 0x40, 0x40, 0x01, 0x84, +0x02, 0xF0, 0x0C, 0x04, 0x80, 0xA4, 0x21, 0x84, +0x80, 0xAC, 0xA7, 0xFE, 0x40, 0x40, 0x03, 0xF0, +0x80, 0xA4, 0x0C, 0x9C, 0xA7, 0xFE, 0x67, 0xEA, +0x23, 0x42, 0x80, 0xAC, 0x58, 0xDD, 0x24, 0x84, +0x93, 0x50, 0x90, 0x99, 0x53, 0x50, 0x10, 0x00, +0x3F, 0x84, 0x20, 0x00, 0x14, 0x10, 0x01, 0x84, +0xA2, 0x12, 0x05, 0x80, 0x34, 0xAE, 0x00, 0x80, +0x28, 0xB4, 0x44, 0x84, 0x1A, 0x00, 0x03, 0x50, +0x28, 0x80, 0x26, 0xB6, 0x6D, 0xEA, 0xBF, 0xB6, +0x33, 0x42, 0x07, 0x84, 0x24, 0x02, 0x24, 0x80, +0xD9, 0x9C, 0x02, 0x00, 0x44, 0x04, 0x49, 0xEA, +0x20, 0x38, 0x03, 0x00, 0xBF, 0xB4, 0x09, 0x8F, +0xD9, 0x98, 0xDB, 0x94, 0x01, 0x80, 0xA2, 0x12, +0x19, 0xA9, 0xB3, 0xAC, 0x44, 0x02, 0x89, 0xB6, +0xF4, 0xA6, 0x11, 0x00, 0x30, 0x00, 0x53, 0x50, +0x32, 0x42, 0x32, 0xEA, 0xF4, 0xAE, 0x0D, 0x3C, +0x34, 0x02, 0x87, 0xEA, 0xA4, 0xFE, 0x00, 0x00, +0x45, 0xB6, 0xE4, 0xFE, 0x8A, 0xBB, 0x86, 0x83, +0x04, 0x80, 0x24, 0x00, 0x01, 0x00, 0x34, 0x02, +0xE4, 0xFE, 0x91, 0x9C, 0x8B, 0xBB, 0x92, 0x96, +0x09, 0x00, 0xA3, 0x14, 0x04, 0x80, 0x24, 0x10, +0xD0, 0x0E, 0x38, 0x2E, 0x0E, 0xE9, 0x43, 0xE0, +0x04, 0x80, 0x34, 0x10, 0x34, 0xA6, 0x21, 0x84, +0x19, 0x00, 0xF0, 0x44, 0x0D, 0xBC, 0x00, 0x42, +0x08, 0x2E, 0x34, 0xAE, 0x2A, 0xAC, 0xD1, 0x0E, +0xA2, 0x12, 0x03, 0xD5, 0x01, 0xF0, 0x02, 0x80, +0x24, 0x00, 0x84, 0x50, 0x81, 0xF0, 0x01, 0x9C, +0x01, 0xF1, 0x48, 0xDD, 0xF3, 0x4E, 0x20, 0xE0, +0xC2, 0xFC, 0x7F, 0xFF, 0x00, 0x84, 0x00, 0xFC, +0x0B, 0xD5, 0x26, 0x84, 0x24, 0x04, 0x30, 0x42, +0x94, 0x1B, 0x48, 0x3E, 0x31, 0x00, 0xDC, 0x98, +0xDC, 0x96, 0x09, 0x80, 0x01, 0x9C, 0x06, 0xC3, +0xDF, 0x0B, 0x34, 0x3C, 0xF3, 0xE9, 0x03, 0xE0, +0x42, 0xFC, 0x80, 0xFC, 0x83, 0xF1, 0x49, 0x96, +0x04, 0x00, 0x04, 0x4E, 0x2F, 0xD5, 0x1F, 0x85, +0x00, 0x42, 0x54, 0xFB, 0x77, 0x46, 0x24, 0x28, +0x5D, 0xDD, 0xFF, 0xFF, 0x50, 0x44, 0x39, 0xF8, +0xA0, 0x40, 0x38, 0x00, 0x33, 0x42, 0x00, 0x04, +0x58, 0xDD, 0x24, 0x14, 0x1C, 0xA7, 0xD8, 0x98, +0x1A, 0xC0, 0x24, 0x96, 0x00, 0x40, 0x03, 0xF1, +0x04, 0x96, 0x0E, 0x98, 0x84, 0x92, 0x15, 0xC8, +0x00, 0x00, 0x0C, 0x3C, 0x02, 0x4C, 0x0F, 0x97, +0x0A, 0xB4, 0x10, 0x40, 0x82, 0xF2, 0x23, 0xB4, +0x2E, 0xEA, 0x81, 0xF5, 0x01, 0xF5, 0x02, 0xF2, +0x06, 0xE8, 0x07, 0xE0, 0x83, 0x40, 0x02, 0xB6, +0xE0, 0x80, 0x10, 0x00, 0xB1, 0x9D, 0xFF, 0x83, +0xDF, 0x0F, 0x68, 0x5A, 0xC2, 0xFC, 0x08, 0x80, +0x49, 0x96, 0x43, 0xFC, 0x04, 0x4E, 0x85, 0xF1, +0x1F, 0x85, 0x04, 0x00, 0x40, 0x44, 0x38, 0xD5, +0x24, 0xFE, 0x38, 0x00, 0xFF, 0xFF, 0x77, 0x46, +0x98, 0x3E, 0x49, 0xEA, 0x1F, 0x85, 0xB2, 0x0C, +0xFF, 0x8F, 0x73, 0x58, 0xFF, 0x83, 0xC0, 0x84, +0xAF, 0xFF, 0x3F, 0x3E, 0x01, 0x99, 0xB4, 0xFA, +0x05, 0xF1, 0x22, 0xD5, 0x0E, 0x98, 0x00, 0x40, +0x1A, 0xC8, 0x04, 0x96, 0x00, 0x80, 0x04, 0x00, +0x00, 0x00, 0x1C, 0x3C, 0x15, 0x40, 0x10, 0x4C, +0x24, 0x14, 0x03, 0x42, 0x01, 0x98, 0x5D, 0xDD, +0x24, 0xB4, 0x00, 0xB4, 0x84, 0xF3, 0x82, 0xF2, +0x83, 0xF5, 0x81, 0xF4, 0x02, 0xF2, 0x2E, 0xEA, +0x01, 0xF4, 0x04, 0xF3, 0x07, 0xE0, 0x03, 0xF5, +0x00, 0x4E, 0x03, 0xE8, 0xB1, 0x9D, 0xC1, 0xFF, +0x24, 0x80, 0x94, 0x50, 0x00, 0x80, 0x01, 0x20, +0xDC, 0xE9, 0xC0, 0xE0, 0xC3, 0xFC, 0x08, 0x80, +0x45, 0xDD, 0x42, 0xFC, 0xC0, 0xBF, 0xE0, 0x84, +0x07, 0x80, 0x7F, 0x12, 0x06, 0x80, 0x7F, 0x12, +0x07, 0x81, 0xC7, 0x80, 0x04, 0x42, 0x5E, 0xEA, +0x49, 0xF8, 0x24, 0x28, 0x03, 0xC0, 0x04, 0x96, +0xB0, 0x97, 0xB1, 0x9D, 0x28, 0x3E, 0x61, 0x80, +0x7B, 0x99, 0x94, 0x11, 0x3E, 0xEA, 0x3A, 0x99, +0x73, 0x50, 0x01, 0x8D, 0xC8, 0xF8, 0x38, 0x80, +0xEF, 0x0F, 0x88, 0x5A, 0x48, 0xDD, 0x19, 0xCE, +0x17, 0x00, 0x07, 0x4E, 0x1F, 0x50, 0x03, 0xB0, +0xFF, 0x49, 0x0E, 0x80, 0x20, 0x84, 0xC4, 0xFE, +0x88, 0x21, 0x28, 0x3E, 0xAF, 0xFF, 0x3F, 0x2E, +0x07, 0x80, 0x9F, 0x02, 0x20, 0x00, 0x01, 0x50, +0x38, 0x00, 0x80, 0x44, 0xFF, 0x84, 0xA1, 0x80, +0x00, 0x48, 0x81, 0x80, 0x48, 0xDD, 0xDB, 0x01, +0xD1, 0x01, 0x03, 0x4E, 0xCF, 0x01, 0x63, 0x4E, +0x88, 0x21, 0x08, 0x3E, 0x48, 0x03, 0x30, 0x50, +0x5F, 0x84, 0x26, 0x80, 0xF0, 0x7F, 0x10, 0x10, +0x60, 0x12, 0x40, 0xAE, 0x81, 0xAE, 0x10, 0x00, +0x01, 0x4C, 0x4E, 0xEA, 0x00, 0x48, 0xF9, 0xFF, +0x0F, 0x02, 0xED, 0x01, 0x00, 0x40, 0x07, 0x80, +0x04, 0x96, 0x0E, 0x1C, 0x5E, 0xEA, 0x0F, 0xC8, +0x24, 0xA8, 0x03, 0x42, 0x01, 0x98, 0x49, 0xEA, +0xFF, 0x83, 0x04, 0xA6, 0x06, 0xC1, 0x44, 0x96, +0x40, 0xB9, 0x04, 0x92, 0x00, 0x4C, 0x0F, 0x96, +0xF9, 0x9D, 0x08, 0x80, 0xEA, 0xE9, 0xEF, 0xE4, +0x77, 0x4C, 0xEF, 0x85, 0x1F, 0x02, 0xA0, 0x81, +0x45, 0x80, 0x06, 0x80, 0x81, 0xF5, 0x07, 0x80, +0x01, 0xF5, 0x1A, 0xF8, 0xFF, 0x85, 0x00, 0x81, +0x95, 0x81, 0x87, 0x4C, 0x07, 0x80, 0x1F, 0x02, +0x08, 0x80, 0x45, 0x80, 0xFF, 0x49, 0x81, 0xF5, +0xC0, 0x80, 0x12, 0xFF, 0x70, 0x4C, 0x01, 0xF5, +0xFF, 0x85, 0xBF, 0x01, 0x87, 0x81, 0x07, 0x4C, +0x87, 0x4C, 0xFF, 0x85, 0x1F, 0x02, 0x84, 0x81, +0x45, 0x80, 0x06, 0x80, 0x3A, 0xFF, 0xFF, 0x49, +0x80, 0x4C, 0x01, 0xF5, 0xE6, 0x80, 0x05, 0x00, +0xE2, 0xD5, 0x00, 0x81, 0x07, 0x80, 0x1F, 0x02, +0x31, 0x40, 0x41, 0x84, 0xCF, 0xFE, 0x0C, 0x18, +0x06, 0x80, 0x1F, 0x02, 0x07, 0x80, 0x3F, 0x12, +0x0C, 0x20, 0x31, 0x40, 0x5E, 0xEA, 0xCF, 0xFE, +0x06, 0x80, 0x3F, 0x12, 0x58, 0xDD, 0x5F, 0xEA, +0x40, 0x84, 0x58, 0x98, 0x20, 0x50, 0x8C, 0xAE, +0xD4, 0xA6, 0x10, 0x80, 0xDA, 0x96, 0xD9, 0x9C, +0x48, 0x2E, 0xD4, 0xAE, 0x64, 0xE0, 0xD0, 0x0E, +0x12, 0x01, 0xF3, 0x4E, 0x01, 0x84, 0x14, 0xAF, +0xD1, 0x0E, 0x78, 0x2E, 0x70, 0x12, 0x20, 0x99, +0xC6, 0x95, 0x1A, 0x80, 0x32, 0x4C, 0xCC, 0xAF, +0x47, 0xDD, 0x15, 0x41, 0x31, 0x22, 0x4C, 0xEA, +0xC8, 0xA5, 0xC7, 0x00, 0xF2, 0x4E, 0xE3, 0xE0, +0x31, 0x22, 0x0D, 0x01, 0x4C, 0x3C, 0x4B, 0x01, +0x64, 0xE0, 0x63, 0x04, 0x06, 0x01, 0xF3, 0x4E, +0x4B, 0x01, 0x31, 0x22, 0x1D, 0x03, 0x4C, 0x3C, +0xF3, 0x4E, 0x64, 0xE0, 0x31, 0x22, 0xFF, 0x00, +0xEF, 0x05, 0xC6, 0x00, 0xFF, 0x40, 0x02, 0x80, +0xF3, 0x4E, 0x07, 0x0C, 0x37, 0x2E, 0xE1, 0x00, +0x1C, 0xCB, 0xAE, 0xFF, 0x28, 0x3E, 0xC3, 0x80, +0x49, 0xEA, 0x94, 0x11, 0x31, 0x99, 0x72, 0x99, +0x63, 0x50, 0x3E, 0xEA, 0xC7, 0xEA, 0x38, 0x00, +0xC7, 0xEA, 0x3E, 0xEA, 0xC7, 0xEA, 0x3E, 0xEA, +0x00, 0x84, 0x02, 0x3A, 0x20, 0x04, 0x02, 0x3A, +0x6B, 0x5A, 0xFF, 0x83, 0x21, 0x84, 0xEE, 0x48, +0xAE, 0xFF, 0x17, 0x3E, 0x06, 0x00, 0xEE, 0x3D, +0x11, 0x22, 0x33, 0xD5, 0x46, 0xBB, 0xC7, 0x00, +0x0A, 0x88, 0x01, 0x40, 0x03, 0xE8, 0x20, 0xE0, +0x04, 0xD5, 0xC3, 0x98, 0xC7, 0x00, 0x11, 0x22, +0xC6, 0xBB, 0xCB, 0x98, 0x7E, 0xE0, 0x46, 0xBB, +0xFE, 0xE0, 0x0D, 0xE8, 0x5F, 0xEA, 0x06, 0xE8, +0xD8, 0x98, 0x58, 0xDD, 0x10, 0x80, 0xE1, 0x13, +0x69, 0xEA, 0x5F, 0xEA, 0x00, 0x48, 0x5A, 0x98, +0x30, 0x3C, 0xB7, 0x00, 0x18, 0xC3, 0xC1, 0x08, +0xD9, 0x9D, 0x49, 0xBB, 0x62, 0xE4, 0xC9, 0xBF, +0xC0, 0x84, 0x13, 0xE8, 0x94, 0x11, 0xA8, 0x3E, +0x53, 0x40, 0x36, 0xEA, 0x33, 0x99, 0x00, 0x28, +0x63, 0x50, 0x3E, 0xEA, 0x00, 0x4E, 0x38, 0x00, +0x6B, 0x5A, 0xC0, 0xFF, 0x00, 0x84, 0xF5, 0x48, +0x00, 0x48, 0xC9, 0xB8, 0x00, 0x84, 0x10, 0x01, +0xAE, 0xFF, 0x07, 0x3E, 0xD3, 0xB9, 0x20, 0x84, +0xFF, 0x49, 0x81, 0xF5, 0xE0, 0x80, 0xAD, 0xFD, +0x0F, 0xE4, 0x01, 0xF5, 0x9F, 0xEA, 0x05, 0xE9, +0x3B, 0x80, 0x77, 0x04, 0x6A, 0x80, 0xC9, 0xF8, +0x24, 0x0C, 0x13, 0x42, 0x74, 0x21, 0xA8, 0x3E, +0xCC, 0xA6, 0x2A, 0x88, 0xF0, 0x44, 0x01, 0x84, +0x30, 0x42, 0x1C, 0x00, 0xCC, 0xAE, 0x0D, 0x3C, +0x60, 0x84, 0x40, 0x84, 0x10, 0x80, 0x20, 0x12, +0x1A, 0x80, 0x20, 0x12, 0x14, 0x80, 0x30, 0x10, +0x0C, 0x1C, 0x10, 0x40, 0x07, 0x80, 0x3F, 0x02, +0x5F, 0xFE, 0x5E, 0xEA, 0x07, 0x80, 0x1F, 0x12, +0x24, 0xA8, 0x13, 0x42, 0x88, 0x99, 0x58, 0xDD, +0x20, 0x00, 0xA3, 0x50, 0x00, 0x00, 0x25, 0x12, +0x10, 0x00, 0x93, 0x50, 0x14, 0x10, 0x3F, 0x84, +0x9F, 0xEA, 0x05, 0x80, 0x3B, 0x80, 0x17, 0x04, +0xF0, 0x44, 0x61, 0x84, 0x85, 0xEA, 0x1F, 0x00, +0x34, 0xFA, 0x74, 0xAE, 0x24, 0x04, 0x24, 0x42, +0x81, 0x40, 0x25, 0xEA, 0x28, 0xB4, 0x00, 0x00, +0x26, 0xB6, 0x44, 0x84, 0x1A, 0x00, 0x03, 0x50, +0x81, 0xF5, 0x28, 0x80, 0x07, 0x84, 0x6D, 0xEA, +0x24, 0x02, 0x3C, 0xFE, 0x36, 0xEA, 0x02, 0x00, +0x21, 0x38, 0x01, 0x9C, 0x14, 0x04, 0x09, 0x83, +0x03, 0x94, 0x03, 0x00, 0x60, 0x84, 0x03, 0x98, +0x01, 0x00, 0x35, 0x12, 0x41, 0xA8, 0xB3, 0xAC, +0x34, 0x02, 0x29, 0xB6, 0x34, 0xA6, 0x11, 0x00, +0x01, 0x00, 0x14, 0x02, 0x00, 0x00, 0x44, 0x02, +0x01, 0x42, 0x32, 0xEA, 0x52, 0xEA, 0x0D, 0xBC, +0x9C, 0xFE, 0x5C, 0xFE, 0x13, 0x14, 0x1C, 0xFF, +0x40, 0x85, 0x0B, 0x00, 0x30, 0x00, 0x13, 0x50, +0xA3, 0x14, 0x41, 0xB6, 0x43, 0x14, 0x09, 0x00, +0x20, 0x2E, 0x0A, 0x00, 0x24, 0x10, 0xD0, 0x0E, +0x41, 0x85, 0x04, 0x80, 0xD1, 0x0E, 0x28, 0x2E, +0x19, 0x00, 0xF0, 0x44, 0x0D, 0x3C, 0x05, 0x42, +0x34, 0xAE, 0x8A, 0xAC, 0x77, 0x04, 0x9F, 0xEA, +0x4D, 0xD5, 0x3B, 0x80, 0x03, 0xE8, 0xFE, 0xE0, +0x00, 0x80, 0xE0, 0x13, 0x36, 0xEA, 0xB8, 0xEA, +0x09, 0xD5, 0x4B, 0x98, 0x02, 0xF3, 0x4C, 0xEA, +0x83, 0xE0, 0x08, 0xA5, 0xC8, 0xAC, 0x02, 0xE8, +0x48, 0x98, 0xB8, 0xEA, 0x1A, 0x80, 0x00, 0x50, +0x81, 0xF5, 0x44, 0x84, 0x01, 0xF5, 0x6D, 0xEA, +0x69, 0xEA, 0x5F, 0xEA, 0x41, 0x02, 0xDA, 0x98, +0x53, 0xB9, 0x10, 0x80, 0x02, 0xE8, 0x24, 0xE0, +0x6A, 0x80, 0xD3, 0xBC, 0x24, 0x0C, 0x13, 0x42, +0x2A, 0x88, 0x42, 0x81, 0x40, 0xBC, 0xCC, 0xA6, +0x01, 0x80, 0x31, 0x58, 0x32, 0x42, 0x32, 0xEA, +0xCC, 0xAE, 0x0D, 0x3C, 0x24, 0x42, 0x74, 0xFA, +0x25, 0xEA, 0x24, 0x0C, 0x62, 0xB4, 0x90, 0x98, +0x67, 0x84, 0x61, 0xB6, 0xF4, 0xFE, 0x12, 0xA5, +0xD9, 0x9C, 0x0B, 0xAD, 0x45, 0x38, 0x30, 0x8C, +0x93, 0xA0, 0x09, 0x0F, 0x01, 0xB4, 0xDB, 0x94, +0x99, 0xA8, 0x6A, 0x88, 0x02, 0xE8, 0x02, 0xE0, +0xB0, 0x97, 0x41, 0xB6, 0x81, 0xF5, 0x06, 0x80, +0x97, 0x01, 0x00, 0x49, 0x00, 0x49, 0x06, 0x80, +0xE0, 0x84, 0x7E, 0x01, 0xFF, 0x48, 0x01, 0xF5, +0x40, 0xB9, 0x4A, 0xFE, 0xC0, 0xB9, 0x49, 0x9C, +0x42, 0xB1, 0x02, 0xD5, 0x06, 0x4E, 0x40, 0xB8, +0xE0, 0x84, 0x17, 0xFE, 0x54, 0xFE, 0xFF, 0x48, +0x0E, 0x84, 0x64, 0x40, 0x1D, 0xCE, 0xB4, 0x97, +0x24, 0xA0, 0x60, 0x42, 0x74, 0x21, 0xA8, 0x3E, +0xB4, 0xA7, 0xCA, 0x88, 0x0B, 0x18, 0xA3, 0x42, +0x0D, 0x00, 0xA2, 0x4E, 0x0A, 0xC6, 0xB4, 0x97, +0xB1, 0x9F, 0x80, 0xA5, 0x80, 0xAD, 0xB3, 0x97, +0x05, 0x00, 0x67, 0x4E, 0xDA, 0x96, 0xD9, 0x9C, +0x50, 0x10, 0x08, 0xD5, 0x50, 0xAF, 0xD0, 0x7F, +0x40, 0x12, 0xD1, 0xAF, 0x00, 0xAD, 0xF6, 0x7F, +0x21, 0x50, 0x49, 0x9C, 0x4E, 0xEA, 0x38, 0x00, +0xDC, 0x0F, 0x18, 0x5A, 0xAF, 0xFF, 0x37, 0x3E, +0xC2, 0xFC, 0x01, 0x84, 0x87, 0x4C, 0xFF, 0x85, +0xC8, 0xD5, 0x53, 0xFE, 0x14, 0x3C, 0x44, 0xFC, +0x16, 0x4E, 0xFF, 0x0B, 0x21, 0x84, 0x05, 0x00, +0xFF, 0x0B, 0x18, 0x3C, 0x89, 0x21, 0x08, 0x3E, +0x10, 0x50, 0x40, 0x84, 0x82, 0xF0, 0xF7, 0x7F, +0x83, 0xF2, 0x85, 0xF1, 0xA0, 0x50, 0x84, 0xF2, +0x9B, 0xEA, 0x13, 0x00, 0x94, 0x1B, 0x48, 0x3E, +0x00, 0x44, 0x04, 0xF3, 0x11, 0x42, 0x38, 0x00, +0x69, 0xEA, 0x24, 0x80, 0x4C, 0xA6, 0x4A, 0x98, +0x22, 0x4E, 0x8C, 0x96, 0x10, 0x42, 0xB8, 0x00, +0x12, 0x4E, 0x0B, 0x98, 0x02, 0xF3, 0xB4, 0x00, +0xFF, 0x0B, 0x64, 0x3C, 0x00, 0x80, 0x81, 0x20, +0x02, 0x00, 0x35, 0x04, 0x61, 0x40, 0x27, 0xEA, +0xF3, 0x5C, 0x57, 0x18, 0x04, 0xE9, 0x00, 0x01, +0xFF, 0x00, 0x60, 0x44, 0x02, 0xCE, 0x03, 0xD5, +0x87, 0x5A, 0xC1, 0x84, 0x8F, 0x5A, 0x52, 0xFF, +0x00, 0x48, 0x04, 0x80, 0xE0, 0xA4, 0x9C, 0x00, +0x21, 0x58, 0x26, 0x84, 0xA0, 0xAC, 0x00, 0x89, +0x24, 0x42, 0x04, 0xF0, 0x38, 0x3E, 0x24, 0x04, +0x67, 0xEA, 0x94, 0x1B, 0xFA, 0x9D, 0xD3, 0x99, +0x24, 0x04, 0x20, 0x42, 0x93, 0x98, 0x36, 0xEA, +0xFF, 0x83, 0x94, 0xA6, 0x31, 0x40, 0x21, 0x85, +0x29, 0x80, 0x09, 0x10, 0x85, 0xEA, 0x32, 0xEA, +0x9F, 0xB6, 0x7F, 0xAE, 0x81, 0xF5, 0x6A, 0xB4, +0x35, 0x04, 0x27, 0xEA, 0x2F, 0x12, 0x01, 0x00, +0x27, 0xEA, 0x0E, 0x80, 0x0F, 0x80, 0x2F, 0x12, +0x0F, 0x12, 0x39, 0xA4, 0x07, 0xF0, 0x0C, 0x80, +0x1F, 0x12, 0x7A, 0xA4, 0x06, 0xF1, 0x0D, 0x80, +0x20, 0x3C, 0x2E, 0xEA, 0x9F, 0xB4, 0x6A, 0x07, +0x40, 0xE0, 0x01, 0xF5, 0xE0, 0xA4, 0x14, 0xE8, +0x04, 0x80, 0x21, 0x58, 0x7F, 0xA6, 0xA0, 0xAC, +0x1D, 0x00, 0xF0, 0x44, 0x0D, 0xBC, 0x14, 0x42, +0x6A, 0xB4, 0x7F, 0xAE, 0x35, 0x04, 0x27, 0xEA, +0xFF, 0x83, 0x01, 0x00, 0xB9, 0xAC, 0xBE, 0xAF, +0xBA, 0xAC, 0x27, 0xEA, 0x28, 0x5A, 0x83, 0xEA, +0x08, 0x80, 0x3F, 0x01, 0x9F, 0xB6, 0x35, 0xD5, +0xFF, 0x49, 0x81, 0xF5, 0x24, 0x3C, 0xAD, 0xFC, +0x00, 0x81, 0xDF, 0x0B, 0x01, 0xF5, 0x9F, 0xB4, +0x07, 0x40, 0x01, 0x4C, 0x1F, 0x44, 0x02, 0xF0, +0x40, 0xAE, 0x80, 0xFF, 0xE0, 0xA4, 0x3F, 0xD5, +0x21, 0x58, 0x02, 0xF1, 0xA0, 0xAC, 0x03, 0x88, +0x08, 0xAE, 0x66, 0x84, 0x24, 0x0C, 0x20, 0x42, +0x94, 0x1B, 0x18, 0x3E, 0xD1, 0x99, 0x04, 0xF3, +0x21, 0x42, 0x67, 0xEA, 0x36, 0xEA, 0x24, 0x84, +0x94, 0xA6, 0x93, 0x98, 0x31, 0x40, 0x23, 0x84, +0x32, 0xEA, 0x09, 0x10, 0x13, 0x10, 0x85, 0xEA, +0x00, 0x4E, 0x09, 0x80, 0x63, 0x10, 0xC8, 0xFF, +0xBA, 0xAC, 0x08, 0x80, 0xBB, 0xAC, 0x27, 0xEA, +0x28, 0x5A, 0x83, 0xEA, 0x9F, 0xB6, 0x09, 0x01, +0x00, 0x49, 0x81, 0xF5, 0x9F, 0xB4, 0x33, 0x03, +0x09, 0xD5, 0x01, 0xF5, 0x34, 0x50, 0x05, 0xF0, +0x20, 0x22, 0xC0, 0x01, 0x44, 0xDD, 0x00, 0x00, +0x09, 0x8D, 0x20, 0x38, 0x21, 0x84, 0xA2, 0xA6, +0xA2, 0xAE, 0x91, 0x9C, 0x10, 0x40, 0x03, 0xF2, +0x00, 0x40, 0x0C, 0xA0, 0x01, 0x96, 0x04, 0x88, +0x04, 0xF3, 0x83, 0xF0, 0x05, 0xF1, 0x02, 0xF0, +0x4E, 0xEA, 0xD9, 0x9C, 0x38, 0x80, 0x10, 0x50, +0x82, 0xF0, 0x84, 0xF3, 0xA5, 0x50, 0x85, 0xF1, +0xEF, 0x85, 0x38, 0x00, 0x32, 0xFF, 0x37, 0x4C, +0x94, 0x1B, 0x28, 0x3E, 0x50, 0xA4, 0x00, 0x84, +0x49, 0x8C, 0xC6, 0x87, 0x94, 0x17, 0xA8, 0x3E, +0xE1, 0x84, 0x20, 0x81, 0x41, 0x40, 0x03, 0xF3, +0x24, 0x97, 0x0E, 0x80, 0x30, 0x42, 0x1A, 0xCC, +0x58, 0x3E, 0x24, 0x78, 0xDD, 0x98, 0x94, 0x1B, +0x5F, 0xA7, 0xDA, 0x9C, 0x03, 0xCD, 0x6C, 0x97, +0x0F, 0xD5, 0x50, 0xAF, 0xC0, 0x01, 0x50, 0x50, +0x09, 0x15, 0x45, 0x38, 0x00, 0x00, 0x91, 0x10, +0x09, 0x80, 0x10, 0x58, 0xF0, 0x44, 0x1F, 0xA7, +0x43, 0x42, 0x1C, 0x00, 0x1F, 0xAF, 0x0D, 0xBC, +0x96, 0x9C, 0x01, 0x9C, 0xE0, 0x0A, 0x08, 0x5A, +0x40, 0xAC, 0x9A, 0xEA, 0x00, 0x88, 0x10, 0x54, +0x43, 0xA6, 0x05, 0xC1, 0x04, 0xFF, 0x10, 0x5A, +0x43, 0xAE, 0x49, 0x9C, 0x00, 0xFC, 0xC4, 0xFC, +0xAC, 0x0E, 0x28, 0x3E, 0xD7, 0xA4, 0x5E, 0x8C, +0x09, 0xA0, 0x41, 0x40, 0x03, 0xE8, 0x81, 0xE2, +0x06, 0xD5, 0x21, 0x84, 0x61, 0xE2, 0xD8, 0x96, +0x56, 0xA4, 0x05, 0xE8, 0x20, 0xB6, 0x28, 0x92, +0x96, 0xA4, 0x0C, 0xD5, 0x64, 0xFE, 0x10, 0x97, +0x30, 0x40, 0x48, 0x92, 0xE3, 0x9A, 0x37, 0x8C, +0x62, 0xE2, 0x60, 0xB6, 0x40, 0xB6, 0x02, 0xE8, +0x03, 0xC9, 0x20, 0xB4, 0x20, 0xB6, 0x21, 0x84, +0x00, 0xFC, 0x80, 0xFC, 0x38, 0x00, 0x20, 0x44, +0x14, 0xFE, 0x00, 0x96, 0x02, 0x98, 0x69, 0xEA, +0x20, 0x50, 0x03, 0xA5, 0x10, 0x3C, 0x30, 0x00, +0x4D, 0xDD, 0x6D, 0x07, 0x24, 0xFE, 0xA2, 0xB4, +0x01, 0x42, 0xC9, 0x9E, 0x00, 0x40, 0x73, 0x94, +0x02, 0xB6, 0x37, 0x04, 0x41, 0xFC, 0x80, 0xFC, +0x38, 0x00, 0x70, 0x44, 0xFF, 0x00, 0x90, 0x54, +0x24, 0x9C, 0x74, 0x42, 0xF8, 0x99, 0x58, 0xDD, +0x0A, 0xB8, 0x87, 0x83, 0x00, 0x40, 0x54, 0xDD, +0x1F, 0x81, 0x57, 0x04, 0x00, 0x80, 0x0F, 0x12, +0x00, 0x40, 0x0B, 0xB8, 0x0F, 0x12, 0x37, 0x04, +0x3F, 0xB4, 0x01, 0x80, 0x2E, 0xEA, 0x07, 0xB4, +0x3F, 0xB4, 0xC0, 0x80, 0x1A, 0x80, 0x03, 0x50, +0x00, 0x00, 0x00, 0x3A, 0x55, 0xDD, 0x2E, 0xEA, +0x00, 0x10, 0x00, 0x54, 0x44, 0xDD, 0x1F, 0xC0, +0x02, 0xE4, 0x56, 0xEA, 0x73, 0x50, 0x1B, 0xE9, +0x67, 0xB4, 0x24, 0x80, 0x09, 0xE8, 0xC3, 0xE2, +0x01, 0x9E, 0x56, 0xEA, 0x73, 0x0C, 0x60, 0x42, +0x63, 0x40, 0x56, 0xEA, 0x0D, 0xD5, 0x17, 0x00, +0xCE, 0x80, 0x40, 0x22, 0x56, 0xEA, 0x42, 0x84, +0x56, 0x08, 0x12, 0x40, 0x60, 0x42, 0x49, 0x9E, +0x63, 0x40, 0x73, 0x8C, 0xC1, 0x92, 0x17, 0x00, +0x01, 0xB0, 0xC7, 0xB6, 0xFF, 0x49, 0x26, 0x80, +0x20, 0x44, 0x84, 0xFF, 0x24, 0x42, 0x38, 0x00, +0x58, 0xDD, 0x24, 0x88, 0x02, 0x80, 0x90, 0x98, +0x16, 0x00, 0x30, 0x0A, 0x51, 0x50, 0x01, 0xF4, +0x54, 0xDD, 0x28, 0x00, 0xCC, 0xFE, 0xE5, 0xB4, +0x33, 0x42, 0xA1, 0x9F, 0x91, 0xA4, 0x73, 0x1C, +0xF7, 0x90, 0x31, 0x40, 0x65, 0xB6, 0x54, 0xFE, +0x13, 0x42, 0x60, 0xB4, 0x10, 0x40, 0x73, 0x0C, +0x20, 0xB6, 0x97, 0x90, 0x00, 0xFC, 0xC1, 0xFC, +0x00, 0xFC, 0x80, 0xFC, 0xE9, 0xFF, 0x03, 0x3C, +0x13, 0x3C, 0x25, 0xC0, 0xC9, 0x9C, 0xEE, 0xFF, +0xEE, 0xFF, 0x3B, 0x3C, 0x1E, 0xE9, 0x20, 0xE2, +0x00, 0x46, 0x72, 0xEA, 0x59, 0xDD, 0x03, 0x01, +0x52, 0xDD, 0x44, 0xEA, 0x20, 0x84, 0x55, 0xEA, +0x4A, 0x0C, 0x18, 0x3C, 0x8C, 0x00, 0x20, 0x46, +0x4B, 0x0C, 0x18, 0x3C, 0x00, 0x58, 0x57, 0xDD, +0x20, 0xB6, 0x04, 0x00, 0x50, 0xAC, 0x20, 0xB6, +0x8C, 0x00, 0x20, 0x46, 0x02, 0x00, 0x21, 0x58, +0x21, 0x84, 0x50, 0xAC, 0x20, 0xB6, 0x20, 0xB6, +0x80, 0xFC, 0x83, 0xF9, 0x80, 0x97, 0x40, 0xFC, +0x59, 0xDD, 0x70, 0xEA, 0x94, 0x1B, 0x28, 0x3E, +0x52, 0xDD, 0x44, 0xEA, 0x00, 0x00, 0x01, 0x22, +0x01, 0x12, 0x58, 0xEA, 0x01, 0x02, 0x80, 0x80, +0x06, 0xC0, 0x19, 0x80, 0x19, 0x80, 0x01, 0x02, +0x07, 0x4C, 0xE2, 0x85, 0x10, 0x2E, 0x78, 0xC0, +0x08, 0x2E, 0x97, 0x1B, 0x71, 0x50, 0x96, 0x1B, +0x00, 0x40, 0xF4, 0x80, 0x03, 0x96, 0x04, 0x05, +0x03, 0xCE, 0x3F, 0xAC, 0x12, 0xD5, 0x46, 0x80, +0x00, 0x46, 0x55, 0xEA, 0x20, 0x84, 0x00, 0x01, +0x41, 0xA8, 0x41, 0xA8, 0x8C, 0x00, 0x00, 0x46, +0x40, 0xAC, 0x7E, 0xA4, 0x8C, 0x00, 0x00, 0x46, +0x00, 0x58, 0x7F, 0xA4, 0x40, 0xAC, 0x02, 0x00, +0x18, 0x3E, 0x42, 0x84, 0x40, 0x44, 0x9A, 0x1B, +0x00, 0x84, 0x82, 0x00, 0x48, 0xD5, 0x58, 0xEA, +0xFF, 0xFF, 0x50, 0x02, 0x71, 0x38, 0xEB, 0x97, +0xE1, 0x9D, 0x09, 0x91, 0x00, 0x80, 0x80, 0x22, +0x09, 0x9D, 0x81, 0x38, 0x02, 0x00, 0x82, 0x50, +0x90, 0x00, 0xCA, 0xA7, 0x93, 0x40, 0x03, 0x80, +0x94, 0x40, 0x04, 0xA5, 0x91, 0x38, 0x11, 0x80, +0x81, 0x02, 0x09, 0xA1, 0x88, 0x5A, 0x19, 0x80, +0x73, 0x40, 0x09, 0x02, 0x82, 0x50, 0x08, 0xA0, +0xFB, 0x97, 0x03, 0x00, 0x09, 0xA1, 0x71, 0x38, +0x84, 0x44, 0x24, 0xC6, 0x71, 0x40, 0x00, 0x60, +0xFF, 0x99, 0x00, 0x20, 0x74, 0x44, 0x78, 0xAD, +0x57, 0x99, 0x01, 0x60, 0x6D, 0x99, 0xC8, 0xA5, +0x02, 0x8D, 0xE8, 0xAD, 0xCA, 0xA7, 0x52, 0x9D, +0xC6, 0xEA, 0x48, 0x88, 0x73, 0x40, 0x92, 0x98, +0xD0, 0xAD, 0x04, 0xA1, 0x71, 0x02, 0xA9, 0x9C, +0x78, 0x5A, 0x19, 0x80, 0x74, 0x44, 0x0B, 0x02, +0x6F, 0x99, 0x01, 0x60, 0x6D, 0x99, 0xCA, 0xA7, +0x08, 0xA0, 0x73, 0x40, 0x91, 0x9C, 0xE8, 0xAD, +0x4E, 0x9C, 0x01, 0x9C, 0x51, 0x22, 0x24, 0x9D, +0x05, 0xE0, 0x15, 0x80, 0x41, 0xC6, 0xB6, 0xE9, +0x21, 0x84, 0x57, 0xDD, 0xFF, 0x83, 0x41, 0xA8, +0x51, 0x22, 0x3C, 0xD5, 0x58, 0x5A, 0x19, 0x80, +0x00, 0x84, 0x39, 0x01, 0x40, 0x44, 0x94, 0x9C, +0x20, 0x80, 0x82, 0x00, 0x2A, 0xD5, 0xE6, 0x84, +0x00, 0x00, 0x61, 0x22, 0x09, 0x91, 0x61, 0x38, +0x81, 0x22, 0xA1, 0x9D, 0x81, 0x38, 0x01, 0x00, +0xA2, 0x9D, 0x09, 0x99, 0x05, 0x00, 0x91, 0x00, +0x04, 0x00, 0x81, 0x00, 0x04, 0x25, 0x84, 0x40, +0x11, 0x00, 0x84, 0x40, 0x09, 0x99, 0x81, 0x38, +0x24, 0x9C, 0x60, 0x42, 0x94, 0x1B, 0x88, 0x3E, +0x63, 0x00, 0xC8, 0x88, 0x83, 0x54, 0x09, 0x00, +0x83, 0x4E, 0x01, 0x00, 0x63, 0x42, 0x05, 0x00, +0x05, 0xC6, 0x0B, 0x0C, 0x0C, 0x84, 0x62, 0x40, +0x01, 0x96, 0x37, 0xFE, 0x96, 0x9C, 0x49, 0x9C, +0x61, 0x22, 0x24, 0x9D, 0x26, 0xE0, 0x15, 0x80, +0x03, 0x96, 0xD4, 0xE9, 0x4B, 0x0C, 0x08, 0x3C, +0xA2, 0x01, 0x14, 0x3C, 0x74, 0x0C, 0x18, 0x3C, +0x00, 0xFC, 0xC0, 0xFC, 0x03, 0xC8, 0x50, 0xDD, +0x9D, 0xFF, 0x07, 0x3E, 0xA5, 0xFF, 0x17, 0x2E, +0x0C, 0xC8, 0x02, 0xC1, 0x0A, 0xC0, 0x65, 0xF8, +0x01, 0x84, 0x72, 0xEA, 0xA8, 0xF8, 0x6B, 0xF8, +0x17, 0x3E, 0x64, 0xEA, 0x01, 0x84, 0x9D, 0xFF, +0x00, 0x84, 0x02, 0xD5, 0x20, 0xFC, 0x80, 0xFC, +0x30, 0x46, 0x45, 0xDD, 0xE0, 0x80, 0x03, 0x01, +0x01, 0x83, 0x01, 0x04, 0x45, 0xEA, 0x01, 0x81, +0x01, 0x83, 0x01, 0x14, 0x55, 0xEA, 0xC2, 0x80, +0x00, 0x01, 0x40, 0x46, 0xE1, 0xA8, 0x60, 0x84, +0x40, 0x46, 0xE1, 0xA8, 0x07, 0x80, 0x8C, 0x00, +0x10, 0x0A, 0x06, 0xD5, 0xD9, 0x9C, 0x01, 0x00, +0x01, 0x00, 0x12, 0x1A, 0xFA, 0xE9, 0x68, 0xE0, +0x00, 0x60, 0x04, 0x44, 0x58, 0x98, 0x81, 0x9C, +0x2D, 0xC6, 0x1A, 0x98, 0x44, 0xDD, 0x89, 0x98, +0x80, 0x80, 0x40, 0x02, 0x10, 0xAD, 0x00, 0x98, +0x81, 0x80, 0x20, 0x02, 0x04, 0x44, 0x80, 0xAC, +0x58, 0x99, 0x02, 0x60, 0x02, 0x9C, 0x81, 0x9C, +0xD8, 0x98, 0x1A, 0x99, 0x24, 0x99, 0x6D, 0x99, +0x00, 0x44, 0xDB, 0x98, 0x40, 0x84, 0x82, 0x00, +0x60, 0x38, 0x11, 0xD5, 0x91, 0x9C, 0x01, 0x81, +0x03, 0x80, 0x62, 0x1A, 0x60, 0x38, 0x81, 0x9D, +0x62, 0x1A, 0x01, 0x99, 0x82, 0x9D, 0x03, 0x00, +0x01, 0x99, 0x60, 0x38, 0x61, 0x1A, 0x04, 0x9C, +0x60, 0x22, 0x03, 0x80, 0x46, 0xE0, 0x15, 0x80, +0x05, 0xD5, 0xED, 0xE9, 0x00, 0x98, 0x49, 0x98, +0x80, 0xAD, 0x88, 0xAD, 0x52, 0xFF, 0x00, 0x4E, +0x00, 0xFC, 0xA0, 0xFC, 0x04, 0x3C, 0x72, 0xEA, +0xF0, 0x46, 0xBA, 0x0C, 0x10, 0x3C, 0x81, 0x00, +0x0E, 0xFE, 0xCA, 0x0D, 0x04, 0xC0, 0xFF, 0x83, +0xFF, 0x49, 0x00, 0x84, 0x22, 0xEA, 0xBD, 0xFE, +0x37, 0xA4, 0xD2, 0x8C, 0x0C, 0x03, 0x08, 0x5A, +0x27, 0xE2, 0xFF, 0x49, 0xE7, 0x00, 0x33, 0x22, +0x38, 0xEA, 0x2B, 0xF8, 0x2E, 0xF8, 0x9E, 0xFE, +0x2E, 0xD5, 0x4C, 0xDD, 0x08, 0x5A, 0x37, 0xA4, +0x38, 0xEA, 0x04, 0x05, 0x37, 0xA4, 0x1F, 0xD5, +0x03, 0x04, 0x08, 0x5A, 0x37, 0xA4, 0x18, 0xD5, +0x05, 0x08, 0x08, 0x5A, 0x2C, 0x07, 0x08, 0x3E, +0x37, 0xA4, 0x15, 0xD5, 0x05, 0x0A, 0x08, 0x5A, +0xA4, 0x00, 0x08, 0x3E, 0x37, 0xA4, 0x0F, 0xD5, +0x0C, 0x0D, 0x00, 0x5A, 0x00, 0x5A, 0x37, 0xA4, +0x37, 0xA4, 0x09, 0x0C, 0x04, 0x0F, 0x00, 0x5A, +0x04, 0xD5, 0x4E, 0xDD, 0x02, 0xD5, 0xB5, 0xEA, +0x34, 0x3C, 0x78, 0xEA, 0xAC, 0xEA, 0xBA, 0x0C, +0x80, 0x00, 0xF0, 0x46, 0xFF, 0x83, 0x53, 0xDD, +0xFF, 0x49, 0x9E, 0xFE, 0x00, 0x49, 0x62, 0xFF, +0x80, 0xFC, 0x3A, 0x03, 0x21, 0x84, 0x00, 0xFC, +0x9C, 0xFF, 0x17, 0x3E, 0x00, 0x50, 0x41, 0xDD, +0x20, 0x84, 0xD2, 0x01, 0x30, 0x7F, 0x10, 0x12, +0x67, 0x00, 0x20, 0x22, 0x17, 0x00, 0x20, 0x12, +0x68, 0x00, 0x20, 0x22, 0x2E, 0x7F, 0x20, 0x12, +0x6E, 0x00, 0x20, 0x22, 0x34, 0x00, 0x20, 0x12, +0x11, 0x01, 0x20, 0x22, 0x35, 0x00, 0x20, 0x12, +0x12, 0x01, 0x20, 0x22, 0x36, 0x00, 0x20, 0x12, +0x20, 0x12, 0x3C, 0xEA, 0x3C, 0xEA, 0x37, 0x7F, +0x38, 0x7F, 0x20, 0x12, 0x20, 0x12, 0x3C, 0xEA, +0x3C, 0xEA, 0x39, 0x7F, 0x3A, 0x7F, 0x20, 0x12, +0x20, 0x12, 0x3C, 0xEA, 0x20, 0x22, 0x3B, 0x7F, +0x20, 0x12, 0x78, 0x00, 0x20, 0x22, 0xC9, 0x7F, +0x20, 0x12, 0x74, 0x00, 0x20, 0x22, 0x47, 0x7F, +0x20, 0x12, 0x77, 0x00, 0x20, 0x22, 0x4C, 0x7F, +0x20, 0x12, 0x79, 0x00, 0x20, 0x22, 0x52, 0x7F, +0x20, 0x12, 0x7A, 0x00, 0x20, 0x22, 0xC8, 0x7F, +0x20, 0x12, 0x7B, 0x00, 0x20, 0x22, 0xEC, 0x7F, +0x20, 0x12, 0x7C, 0x00, 0x20, 0x22, 0xED, 0x7F, +0x20, 0x12, 0x7D, 0x00, 0x20, 0x22, 0xEE, 0x7F, +0x82, 0xAC, 0x6F, 0x00, 0x70, 0x00, 0x20, 0x22, +0x20, 0x22, 0x83, 0xAC, 0x84, 0xAC, 0x71, 0x00, +0x72, 0x00, 0x20, 0x22, 0x20, 0x22, 0x85, 0xAC, +0x86, 0xAC, 0x73, 0x00, 0x0D, 0x01, 0x20, 0x22, +0xE1, 0x7F, 0x20, 0x12, 0x0E, 0x01, 0x20, 0x22, +0xE2, 0x7F, 0x20, 0x12, 0x0F, 0x01, 0x20, 0x22, +0xE3, 0x7F, 0x20, 0x12, 0x10, 0x01, 0x20, 0x22, +0xE4, 0x7F, 0x20, 0x12, 0x07, 0x00, 0x20, 0x22, +0x87, 0xAC, 0x9E, 0xEA, 0x2D, 0x00, 0x10, 0x12, +0x00, 0xFC, 0x80, 0xFC, 0x41, 0x02, 0x47, 0xDD, +0x31, 0x02, 0x77, 0x01, 0x51, 0x22, 0x77, 0x01, +0xDF, 0x96, 0x75, 0x01, 0x42, 0x54, 0x5C, 0xFE, +0x88, 0x92, 0x00, 0x0F, 0x73, 0x14, 0x12, 0x42, +0x10, 0x40, 0xE3, 0x98, 0x00, 0x50, 0x76, 0x8C, +0x4B, 0x96, 0x6D, 0x01, 0x80, 0xFC, 0xB2, 0xEA, +0xF4, 0xFA, 0x20, 0xFC, 0xC0, 0x01, 0x40, 0x50, +0x44, 0xDD, 0x3C, 0xFE, 0x90, 0x0C, 0x78, 0x3E, +0x77, 0x81, 0x30, 0x02, 0x20, 0x02, 0x07, 0x98, +0x50, 0x22, 0x77, 0x81, 0x60, 0x22, 0x76, 0x81, +0x03, 0xA0, 0x35, 0x80, 0xD6, 0x18, 0x00, 0x40, +0x31, 0x54, 0x9F, 0x96, 0x68, 0x92, 0x00, 0x8F, +0x9A, 0x98, 0x14, 0xFE, 0x73, 0x94, 0x01, 0x42, +0x56, 0x08, 0x00, 0x40, 0x00, 0x38, 0x03, 0x96, +0xA0, 0xFC, 0x09, 0x91, 0x22, 0xEA, 0x43, 0xFC, +0x03, 0x02, 0x00, 0x81, 0x58, 0xC0, 0x54, 0x01, +0x7A, 0x01, 0x70, 0x44, 0x44, 0xB1, 0x20, 0x85, +0x52, 0xEA, 0x05, 0xB1, 0xF4, 0x5E, 0x4D, 0xD5, +0x05, 0xE8, 0x23, 0x80, 0x01, 0x1D, 0x23, 0x38, +0x07, 0xD5, 0x39, 0x9C, 0x14, 0x80, 0x03, 0x50, +0x01, 0x01, 0x23, 0x38, 0x15, 0x80, 0x03, 0x50, +0x01, 0x01, 0xA3, 0x38, 0x00, 0x00, 0x04, 0x02, +0x04, 0x02, 0x28, 0xAC, 0xA0, 0xAC, 0x01, 0x00, +0xA2, 0x12, 0x29, 0xAC, 0x25, 0xB4, 0x01, 0x00, +0x83, 0xF2, 0x04, 0xB4, 0x81, 0xF4, 0x7F, 0xB6, +0x2E, 0xEA, 0x82, 0xF5, 0x54, 0x01, 0x13, 0x22, +0x7F, 0xB4, 0x03, 0xF2, 0x02, 0xF5, 0x01, 0xF4, +0x24, 0xE8, 0x01, 0xE2, 0x00, 0x00, 0x04, 0x02, +0x93, 0x96, 0x82, 0x9A, 0x03, 0x00, 0x11, 0x42, +0x09, 0xE9, 0x23, 0xE4, 0x55, 0x01, 0x13, 0x22, +0x21, 0x40, 0x8C, 0xFE, 0x02, 0x9A, 0x36, 0x0C, +0x00, 0x00, 0x04, 0x12, 0x01, 0x00, 0x04, 0x02, +0x01, 0x28, 0xA0, 0x40, 0x11, 0x00, 0xA5, 0x40, +0x03, 0x00, 0x15, 0x42, 0x0A, 0xE9, 0x23, 0xE4, +0x55, 0x01, 0x13, 0x22, 0x24, 0x04, 0xA5, 0x42, +0x36, 0x0C, 0xA5, 0x40, 0x04, 0x12, 0x0A, 0x8A, +0x21, 0x8D, 0x01, 0x00, 0x03, 0x22, 0xFA, 0x9D, +0x20, 0xE1, 0x79, 0x01, 0xC3, 0xFC, 0xB1, 0xE9, +0x45, 0xDD, 0x41, 0xFC, 0xE0, 0x80, 0x60, 0x84, +0x6B, 0xEA, 0x49, 0x96, 0x4F, 0xEA, 0x81, 0xF1, +0x04, 0xD5, 0x03, 0x80, 0x09, 0x0D, 0x02, 0x38, +0x65, 0xE0, 0xD9, 0x9C, 0x5B, 0xCF, 0xFC, 0xE9, +0x03, 0x01, 0x60, 0x46, 0x04, 0x0C, 0x63, 0x58, +0x06, 0xB4, 0x46, 0xDD, 0x02, 0x01, 0x80, 0x46, +0x06, 0xB6, 0x3A, 0xEA, 0xFF, 0x0C, 0x20, 0x3C, +0xEC, 0x0C, 0x14, 0x3C, 0x7A, 0xF8, 0x10, 0x96, +0x02, 0x00, 0x14, 0x14, 0x03, 0x00, 0x14, 0x14, +0x91, 0x44, 0x06, 0xB4, 0x3A, 0xEA, 0x01, 0x00, +0x94, 0x14, 0x06, 0xB6, 0x46, 0xDD, 0x41, 0x00, +0x24, 0x1C, 0x88, 0x3E, 0x47, 0xEA, 0x49, 0xDD, +0x53, 0xDD, 0x17, 0xD5, 0x4E, 0xDD, 0x41, 0x84, +0x51, 0xDD, 0x7F, 0xB6, 0x06, 0xB4, 0x46, 0xDD, +0x3A, 0xEA, 0x43, 0xDD, 0x06, 0xB6, 0x29, 0x89, +0x41, 0x80, 0x90, 0x14, 0x00, 0x84, 0x49, 0xDD, +0x7F, 0xB4, 0x5C, 0xDD, 0x11, 0x9D, 0x01, 0x38, +0x09, 0x1D, 0x04, 0x38, 0x00, 0x3C, 0xF9, 0x9D, +0xE0, 0xE0, 0x4A, 0x00, 0x46, 0xDD, 0xE7, 0xE9, +0x03, 0x01, 0x00, 0x46, 0x61, 0xEA, 0x59, 0xDD, +0x41, 0xDD, 0x52, 0xDD, 0x2D, 0x01, 0x20, 0x22, +0xF0, 0xFF, 0x17, 0x46, 0x43, 0xDD, 0x8F, 0xFE, +0x41, 0x80, 0x20, 0x14, 0xE0, 0x01, 0x20, 0x46, +0x35, 0x01, 0x10, 0x02, 0x48, 0x96, 0xBA, 0xEA, +0xAE, 0xEA, 0x45, 0xEA, 0x57, 0xFE, 0x01, 0x96, +0x42, 0xDD, 0x47, 0xFE, 0x43, 0xA8, 0x42, 0xA8, +0xC9, 0x00, 0x00, 0x48, 0x77, 0x4C, 0xE1, 0x85, +0xC0, 0x84, 0xC6, 0xC0, 0x03, 0x01, 0xA0, 0x46, +0xA5, 0x58, 0x26, 0x81, 0xE4, 0x80, 0x04, 0x0C, +0x5F, 0x00, 0x00, 0x48, 0x14, 0x54, 0x0A, 0xB4, +0x3A, 0xEA, 0x01, 0x80, 0x04, 0x40, 0x0A, 0xB6, +0x04, 0xC1, 0x0A, 0x84, 0x28, 0x92, 0x03, 0xF8, +0x00, 0x50, 0x07, 0xD5, 0x47, 0xDD, 0x62, 0x00, +0x01, 0x01, 0x11, 0x38, 0x01, 0x84, 0xFF, 0x83, +0x0C, 0x04, 0x10, 0x40, 0x15, 0x41, 0x00, 0x44, +0x0A, 0xB6, 0x4A, 0xB4, 0x10, 0x14, 0x57, 0xDD, +0x4A, 0xB6, 0x08, 0x02, 0x46, 0xDD, 0x37, 0xEA, +0xFF, 0x0C, 0x00, 0x3C, 0xEC, 0x0C, 0x14, 0x3C, +0x44, 0xEA, 0x00, 0x96, 0x49, 0x96, 0x60, 0xEA, +0xFF, 0x83, 0x47, 0xFE, 0x42, 0xA8, 0x42, 0xDD, +0x60, 0x14, 0x43, 0xA8, 0x13, 0x50, 0x4A, 0x00, +0x10, 0x14, 0x80, 0x00, 0x46, 0xDD, 0x4B, 0x00, +0x5F, 0xDD, 0x49, 0xDD, 0x49, 0x9C, 0x40, 0x84, +0x4E, 0xDD, 0x49, 0x96, 0x20, 0x3C, 0x51, 0xDD, +0x51, 0x9E, 0x49, 0x00, 0x10, 0xE8, 0x21, 0xE1, +0x40, 0x84, 0x65, 0xEA, 0x24, 0x8C, 0x54, 0x42, +0x07, 0xD5, 0x2D, 0xEA, 0x11, 0x09, 0x02, 0x38, +0x03, 0x38, 0x55, 0x98, 0x91, 0x9C, 0x09, 0x85, +0xF9, 0xE9, 0x43, 0xE0, 0x24, 0x4C, 0x0F, 0xD5, +0x5B, 0xDD, 0x06, 0xC0, 0x4F, 0x9C, 0x54, 0xFE, +0x5F, 0xDD, 0x05, 0xD5, 0x24, 0x84, 0x14, 0x42, +0x04, 0x3C, 0x4A, 0x9C, 0x03, 0x38, 0x6C, 0x0F, +0x21, 0x8D, 0x09, 0x85, 0x00, 0x3C, 0xB4, 0x9D, +0x09, 0xE0, 0x49, 0x00, 0x6B, 0xEA, 0xA0, 0xE8, +0x00, 0x84, 0x4F, 0xEA, 0x02, 0xD5, 0x47, 0xEA, +0x05, 0xE0, 0x0B, 0xF8, 0x00, 0x84, 0xFE, 0xE9, +0x6B, 0xEA, 0x5C, 0xDD, 0x00, 0x84, 0x2D, 0xEA, +0x24, 0x1C, 0x38, 0x3E, 0x96, 0xEA, 0x06, 0xD5, +0x09, 0x81, 0x11, 0x38, 0xFF, 0x83, 0x01, 0x9C, +0xFA, 0xE9, 0x05, 0xE0, 0x0A, 0x80, 0x46, 0xDD, +0xBF, 0x84, 0x60, 0xB4, 0x00, 0x81, 0x31, 0x58, +0x30, 0x44, 0x60, 0xB6, 0x80, 0xB4, 0x15, 0x41, +0x30, 0x46, 0x60, 0xB6, 0x51, 0x14, 0x00, 0x01, +0x80, 0xB6, 0x08, 0x82, 0x37, 0xEA, 0xC0, 0x84, +0x02, 0x01, 0x00, 0x46, 0x4A, 0x00, 0x60, 0x14, +0x80, 0x00, 0x30, 0x44, 0x4B, 0x00, 0x30, 0x14, +0x08, 0x5A, 0x01, 0xF0, 0x78, 0x3E, 0x28, 0x01, +0x46, 0xDD, 0x90, 0x00, 0x01, 0xF2, 0x49, 0xDD, +0x4E, 0xDD, 0x78, 0xA4, 0x06, 0x80, 0x51, 0xDD, +0x06, 0x80, 0x5C, 0xDD, 0x83, 0x02, 0x46, 0x80, +0x7A, 0xA5, 0x01, 0x80, 0x68, 0x3E, 0x4F, 0xEA, +0x10, 0xD5, 0xC4, 0x1E, 0x92, 0x38, 0xC8, 0x98, +0x73, 0x38, 0x01, 0x0D, 0x49, 0x9C, 0x01, 0x0D, +0x01, 0x9C, 0x74, 0x40, 0x72, 0x38, 0xFB, 0x97, +0x25, 0xE0, 0x09, 0x0D, 0x91, 0x9C, 0xF4, 0xE9, +0x48, 0xE0, 0x05, 0x98, 0x20, 0x84, 0x03, 0xE8, +0xC1, 0xFC, 0xF9, 0xD5, 0x10, 0x46, 0x44, 0xFC, +0x07, 0x2E, 0x80, 0x00, 0x02, 0x4E, 0xA3, 0xFF, +0x00, 0x84, 0x95, 0x00, 0xA3, 0xFF, 0x07, 0x3E, +0x0C, 0x84, 0x22, 0xEA, 0x10, 0x00, 0x03, 0x12, +0x37, 0xEA, 0x40, 0x85, 0x00, 0x84, 0xA5, 0xEA, +0x7E, 0xEA, 0x20, 0x80, 0x4A, 0x00, 0x70, 0x3C, +0x03, 0x80, 0xAF, 0x14, 0xA6, 0x80, 0x0A, 0x80, +0x61, 0x84, 0xC8, 0xEA, 0x11, 0xD5, 0x4A, 0x80, +0x62, 0x22, 0x5D, 0xEA, 0xC4, 0xE0, 0x53, 0x81, +0x41, 0x40, 0x06, 0xE8, 0xA2, 0x40, 0x0C, 0x80, +0x71, 0xEA, 0x04, 0x28, 0x44, 0xE0, 0x5D, 0xEA, +0x20, 0x38, 0x03, 0xE8, 0x01, 0x9C, 0x11, 0x81, +0xEF, 0xE9, 0x07, 0xE0, 0x08, 0x3C, 0x0D, 0x84, +0x83, 0xF2, 0xDA, 0x0B, 0xA5, 0xEA, 0x37, 0xEA, +0x20, 0x80, 0x01, 0x84, 0x8F, 0xEA, 0x7E, 0xEA, +0x49, 0x00, 0x10, 0x3C, 0x2F, 0x50, 0x20, 0x85, +0x86, 0xF1, 0xFF, 0x7F, 0x9F, 0x14, 0x6E, 0xEA, +0x88, 0x3E, 0x02, 0x80, 0x85, 0xF2, 0x24, 0x1C, +0x04, 0x80, 0x9F, 0x14, 0x07, 0x80, 0xAF, 0x14, +0x04, 0xF3, 0x34, 0xD5, 0x73, 0xEA, 0xAB, 0x98, +0x03, 0xE8, 0x20, 0xE0, 0x11, 0x09, 0x14, 0x38, +0x07, 0x4E, 0x73, 0xEA, 0x73, 0xEA, 0x07, 0x00, +0x03, 0xE8, 0x0A, 0xE0, 0x11, 0x09, 0xA4, 0x38, +0x69, 0x9D, 0x73, 0xEA, 0xBE, 0xE0, 0xF8, 0x99, +0xFF, 0x5E, 0xED, 0xE9, 0x03, 0xE8, 0x02, 0x00, +0x05, 0xD5, 0x20, 0x84, 0x79, 0x9A, 0x05, 0xF0, +0x56, 0x80, 0x10, 0x40, 0x42, 0x0D, 0x24, 0x3C, +0x0B, 0xE8, 0x41, 0xE0, 0x0A, 0x84, 0x34, 0x40, +0x21, 0x40, 0x41, 0x84, 0x01, 0xF3, 0x0C, 0x0C, +0x04, 0x0C, 0x01, 0x40, 0x81, 0xF0, 0x01, 0x96, +0x21, 0x8D, 0x02, 0xF0, 0x00, 0x04, 0x00, 0x42, +0x82, 0xF0, 0x04, 0xF1, 0x84, 0xF1, 0x3E, 0x88, +0x22, 0xE1, 0x06, 0xF2, 0xE0, 0x84, 0x07, 0xE8, +0x30, 0x75, 0xA0, 0x44, 0xA7, 0x80, 0x27, 0x80, +0x01, 0xF1, 0xD7, 0xD5, 0x07, 0x80, 0xAF, 0x04, +0xCB, 0x96, 0x4E, 0xDD, 0x11, 0x00, 0x45, 0x40, +0xC1, 0xAC, 0x00, 0xAD, 0x9B, 0x96, 0x03, 0xF3, +0x02, 0xF2, 0x82, 0xAC, 0x43, 0xAC, 0x53, 0x96, +0x18, 0x3C, 0x2E, 0x84, 0x01, 0x84, 0xDA, 0x0B, +0x00, 0xFC, 0xC4, 0xFC, 0x49, 0xDD, 0x46, 0xDD, +0x41, 0x84, 0x53, 0xDD, 0x51, 0xDD, 0x4E, 0xDD, +0x00, 0x84, 0x48, 0xEA, 0x80, 0xFC, 0x5C, 0xDD, +0x00, 0x3C, 0x41, 0xFC, 0x4A, 0xC0, 0xE9, 0x0B, +0x19, 0xF8, 0x1A, 0xF8, 0x00, 0x84, 0x6B, 0xEA, +0x38, 0x3E, 0x2D, 0xEA, 0x28, 0x3E, 0xE0, 0x0E, +0x20, 0x80, 0xCC, 0x09, 0x62, 0x38, 0x07, 0xD5, +0x61, 0x38, 0x11, 0x01, 0xB2, 0xEA, 0x09, 0x81, +0x05, 0xE0, 0x01, 0x9C, 0xC0, 0x84, 0xF9, 0xE9, +0x44, 0x81, 0x47, 0xDD, 0xA6, 0xEA, 0x23, 0x81, +0x81, 0xF2, 0x1E, 0xD5, 0xD7, 0xFF, 0xFF, 0x49, +0x00, 0x84, 0x21, 0xEA, 0x14, 0xD5, 0x01, 0xF2, +0x11, 0x01, 0x45, 0x38, 0x11, 0x81, 0x14, 0x38, +0x44, 0x38, 0x61, 0x9A, 0x6C, 0xEA, 0x11, 0x01, +0x81, 0xE0, 0x49, 0x96, 0x4B, 0x96, 0x04, 0xE8, +0x09, 0x01, 0x14, 0x38, 0x11, 0x01, 0x15, 0x38, +0x09, 0x81, 0x14, 0x38, 0x03, 0xE0, 0x01, 0x9C, +0xB1, 0x9D, 0xEC, 0xE9, 0x1F, 0x00, 0x01, 0x22, +0xE0, 0xE9, 0xC0, 0xE0, 0x48, 0x00, 0x20, 0x3C, +0x28, 0x80, 0x00, 0x84, 0xBC, 0xEA, 0x06, 0xD5, +0x30, 0x38, 0x61, 0x90, 0x01, 0x9C, 0x09, 0x81, +0xFA, 0xE9, 0x02, 0xE0, 0x18, 0x3C, 0x20, 0x84, +0xC1, 0xFC, 0xE9, 0x0B, 0x4B, 0xEA, 0x00, 0xFC, +0x30, 0x00, 0x10, 0x04, 0xFD, 0xC9, 0x4C, 0x96, +0x00, 0xFC, 0x80, 0xFC, 0x1B, 0x3C, 0x20, 0x84, +0x4B, 0xEA, 0xEE, 0xFF, 0x44, 0xEA, 0xA0, 0xEA, +0x0A, 0x00, 0x10, 0x14, 0x00, 0xFC, 0x80, 0xFC, +0x01, 0x01, 0x00, 0x46, 0xB3, 0xEA, 0xA0, 0xEA, +0x0A, 0x00, 0x10, 0x14, 0x40, 0xFC, 0x80, 0xFC, +0xC9, 0x0C, 0x94, 0x3C, 0x07, 0x00, 0x93, 0x4E, +0xA0, 0xEA, 0x4B, 0xEA, 0xFE, 0xC9, 0x4C, 0x96, +0x70, 0x46, 0x09, 0xD5, 0x00, 0x85, 0x01, 0x01, +0x0A, 0x80, 0x03, 0x04, 0x04, 0x96, 0xC7, 0x80, +0x70, 0xEA, 0x06, 0xC8, 0xB3, 0xEA, 0x59, 0xDD, +0x0E, 0xD5, 0x52, 0xDD, 0xE8, 0x03, 0x00, 0x44, +0x00, 0x49, 0x01, 0x8D, 0x94, 0x4C, 0x26, 0x00, +0x03, 0x04, 0xF1, 0x7F, 0x00, 0x66, 0x0A, 0x00, +0x03, 0x14, 0x01, 0x00, 0xC0, 0xFC, 0x0A, 0x00, +0x81, 0xB0, 0x01, 0xFC, 0x3F, 0xB6, 0x81, 0xF0, +0x49, 0x96, 0x01, 0x96, 0x91, 0xA4, 0x41, 0x9A, +0x01, 0x80, 0x0F, 0x02, 0x90, 0x9A, 0x4C, 0xFE, +0x73, 0x08, 0x11, 0x42, 0x01, 0x80, 0x03, 0xC9, +0x40, 0x84, 0x0A, 0xD5, 0x30, 0x40, 0x01, 0x84, +0x91, 0x9C, 0x97, 0x80, 0x01, 0x92, 0x18, 0x98, +0xFB, 0x1E, 0x28, 0x5A, 0x00, 0xFC, 0x81, 0xFC, +0x06, 0x4E, 0x03, 0x96, 0x09, 0xD5, 0x09, 0x00, +0x49, 0x9E, 0x00, 0x92, 0x01, 0x9E, 0xFE, 0xC9, +0x03, 0xC0, 0x03, 0x96, 0xF9, 0xD5, 0x54, 0xDD, +0x00, 0x00, 0x80, 0xFC, 0x07, 0xC2, 0x60, 0x80, +0x40, 0x08, 0x4A, 0x99, 0x41, 0x18, 0x01, 0x80, +0xFC, 0xD9, 0x01, 0x80, 0x00, 0x92, 0x9E, 0xDD, +0x5A, 0x99, 0x60, 0x80, 0x11, 0x18, 0x04, 0xD3, +0xFD, 0xD5, 0x01, 0x80, 0x00, 0x92, 0x9E, 0xDD, +0x00, 0x01, 0x6D, 0xC0, 0x94, 0x17, 0x08, 0x3E, +0x02, 0x01, 0x00, 0x46, 0x02, 0x01, 0x10, 0x46, +0x94, 0x17, 0x18, 0x3E, 0x00, 0xFF, 0xCF, 0x3F, +0x08, 0x91, 0x00, 0x49, 0x94, 0x17, 0x28, 0x3E, +0xAF, 0xFF, 0x0F, 0x2E, 0x0E, 0x91, 0x00, 0x49, +0x6C, 0x0C, 0x08, 0x3E, 0xC1, 0x08, 0x00, 0x3C, +0x5D, 0x95, 0x00, 0x49, 0x64, 0x00, 0x00, 0x44, +0xC4, 0x1E, 0x08, 0x3E, 0x03, 0x01, 0x20, 0x46, +0xB4, 0xFF, 0x07, 0x2E, 0x98, 0x8C, 0x00, 0x49, +0x01, 0x03, 0x10, 0x14, 0x48, 0x00, 0x10, 0x3C, +0x64, 0x00, 0x10, 0x44, 0x06, 0x00, 0x00, 0x3C, +0x7C, 0x17, 0x08, 0x3E, 0x00, 0x01, 0x00, 0x46, +0x74, 0x21, 0x08, 0x3E, 0x01, 0x03, 0x10, 0x04, +0xC4, 0x9E, 0x00, 0x48, 0x4A, 0x00, 0x20, 0x3C, +0x9B, 0x87, 0x00, 0x49, 0x90, 0x0C, 0x18, 0x3E, +0xAF, 0xFF, 0x1F, 0x2E, 0x4A, 0x00, 0x10, 0x3C, +0x03, 0x00, 0x00, 0x42, 0x48, 0x00, 0x30, 0x3C, +0x94, 0x17, 0x68, 0x3E, 0xCC, 0x09, 0x48, 0x3E, +0x4A, 0x00, 0x50, 0x3C, 0x90, 0x0C, 0x08, 0x3E, +0x07, 0x00, 0x00, 0x3C, 0x77, 0x94, 0x21, 0x40, +0xB2, 0x10, 0x14, 0x3C, 0xBA, 0x0C, 0x00, 0x3C, +0x10, 0x00, 0x10, 0x22, 0x08, 0x00, 0x00, 0x3C, +0xAC, 0x0E, 0x08, 0x3E, 0xC4, 0x1E, 0x48, 0x3E, +0xA4, 0xB6, 0x00, 0x49, 0x00, 0x00, 0x63, 0x22, +0x24, 0x80, 0x04, 0x42, 0x01, 0x00, 0x00, 0x56, +0x1A, 0x01, 0xF0, 0x44, 0x00, 0x00, 0x52, 0x22, +0xC4, 0x1E, 0x28, 0x3E, 0x88, 0x84, 0x00, 0x49, +0x74, 0x21, 0x38, 0x3E, 0x16, 0x93, 0x00, 0x49, +0xDC, 0x14, 0x08, 0x3E, 0xFF, 0x7F, 0x10, 0x44, +0x00, 0x01, 0x00, 0x58, 0x00, 0x80, 0x52, 0x22, +0x69, 0x00, 0x20, 0x22, 0x13, 0x00, 0x84, 0x40, +0x04, 0x8C, 0x02, 0x3A, 0x70, 0x21, 0x00, 0x2E, +0xE4, 0xFF, 0x1B, 0x3C, 0x00, 0x80, 0x31, 0x22, +0xE4, 0xFF, 0x17, 0x3C, 0x90, 0x00, 0x08, 0x3E, +0x01, 0x80, 0x10, 0x58, 0x01, 0x00, 0x00, 0x58, +0x03, 0x01, 0x10, 0x46, 0xC4, 0x1E, 0x38, 0x3E, +0x63, 0x87, 0x00, 0x49, 0x74, 0x21, 0x18, 0x3E, +0xF4, 0x98, 0x00, 0x49, 0x01, 0x01, 0x00, 0x46, +0x20, 0x80, 0x10, 0x50, 0x00, 0x80, 0x22, 0x22, +0x38, 0x00, 0x00, 0x50, 0x24, 0x1C, 0x48, 0x3E, +0x20, 0x80, 0x61, 0x22, 0x11, 0x1D, 0x05, 0x38, +0x64, 0x00, 0x30, 0x44, 0x11, 0x05, 0x22, 0x38, +0x09, 0x81, 0x40, 0x38, 0x66, 0xB6, 0x00, 0x49, +0xCE, 0x80, 0x00, 0x22, 0x4A, 0x00, 0x40, 0x3C, +0x94, 0x17, 0x38, 0x3E, 0xB5, 0x0C, 0x44, 0x3C, +0x64, 0x00, 0x20, 0x44, 0x3D, 0x00, 0x41, 0x22, +0x56, 0x07, 0x10, 0x3C, 0x11, 0x81, 0x40, 0x38, +0x38, 0x00, 0xA0, 0x44, 0x24, 0x28, 0x33, 0x42, +0x08, 0xA0, 0x10, 0x40, 0x00, 0x81, 0x10, 0x58, +0x11, 0x81, 0xA0, 0x38, 0x20, 0x80, 0x31, 0x22, +0xB4, 0xFF, 0x17, 0x2E, 0x4A, 0x00, 0x30, 0x3C, +0x11, 0x81, 0x60, 0x38, 0x38, 0x00, 0x10, 0x44, +0x68, 0x00, 0x08, 0x3E, 0x74, 0x21, 0x28, 0x3E, +0x13, 0x80, 0x94, 0x40, 0x48, 0x00, 0x50, 0x3C, +0x03, 0x80, 0x10, 0x42, 0xCE, 0xB6, 0x00, 0x49, +0x01, 0x80, 0x9F, 0x14, 0x03, 0x00, 0x63, 0x42, +0x03, 0x01, 0x00, 0x46, 0x13, 0x00, 0xA5, 0x40, +0x7F, 0xB6, 0x00, 0x49, 0x11, 0x09, 0x04, 0x38, +0xC1, 0x08, 0x20, 0x3C, 0x88, 0x00, 0x00, 0x46, +0x00, 0x80, 0x12, 0x22, 0x00, 0x01, 0x10, 0x02, +0x24, 0x1C, 0x08, 0x3E, 0xBE, 0x0B, 0x00, 0x3C, +0x00, 0x80, 0x3F, 0x44, 0x80, 0x00, 0x10, 0x50, +0x00, 0x80, 0x83, 0x22, 0xA6, 0xFF, 0x0F, 0x2E, +0x40, 0xB4, 0x00, 0x49, 0xA4, 0x00, 0x88, 0x3E, +0xCE, 0xAF, 0x00, 0x49, 0x4C, 0x89, 0x00, 0x49, +0x90, 0x0C, 0x38, 0x3E, 0x9C, 0xFF, 0x27, 0x2E, +0xB7, 0x04, 0x42, 0x40, 0x0D, 0xBC, 0x11, 0x42, +0x90, 0x0C, 0x28, 0x3E, 0x64, 0x00, 0x40, 0x44, +0xAF, 0xFF, 0x17, 0x3E, 0x11, 0x00, 0xEF, 0x41, +0x07, 0x00, 0x10, 0x3C, 0x88, 0x00, 0x10, 0x46, +0xDC, 0x14, 0x28, 0x3E, 0x99, 0xFF, 0x17, 0x2E, +0xE2, 0xFF, 0x1B, 0x3C, 0x4A, 0x00, 0xE0, 0x3D, +0xBE, 0x0B, 0x10, 0x3C, 0x19, 0x00, 0x03, 0x10, +0x00, 0x00, 0x73, 0x22, 0x06, 0x00, 0x20, 0x3C, +0x24, 0x1C, 0x78, 0x3E, 0x11, 0x01, 0x32, 0x38, +0x11, 0x01, 0x12, 0x38, 0x4F, 0x00, 0x50, 0x3C, +0x90, 0x00, 0x68, 0x3E, 0x11, 0x01, 0x41, 0x38, +0x94, 0x1B, 0x08, 0x3E, 0x64, 0x00, 0x50, 0x44, +0xBE, 0x0B, 0x20, 0x3C, 0xB2, 0x10, 0x18, 0x3C, +0x00, 0x08, 0x21, 0x58, 0x17, 0x00, 0xF0, 0x46, +0x0A, 0x00, 0x10, 0x04, 0x03, 0x00, 0x21, 0x42, +0x80, 0x00, 0x21, 0x52, 0xA4, 0x00, 0x18, 0x3E, +0xE0, 0x95, 0x00, 0x49, 0x30, 0x8F, 0x00, 0x49, +0xCC, 0x09, 0x88, 0x3E, 0xF4, 0xFF, 0x1B, 0x3C, +0x01, 0x81, 0x50, 0x38, 0xC6, 0x0B, 0x14, 0x3C, +0x24, 0x1C, 0x28, 0x3E, 0xEA, 0xFF, 0x1B, 0x3C, +0xCA, 0x0D, 0x20, 0x3C, 0xCD, 0x88, 0x00, 0x49, +0x08, 0x20, 0x00, 0x40, 0x01, 0x80, 0x44, 0x50, +0x00, 0x80, 0x0F, 0x44, 0xBA, 0x0C, 0x10, 0x3C, +0x09, 0x01, 0x11, 0x38, 0x01, 0x80, 0x10, 0x66, +0xC8, 0x0B, 0x18, 0x3C, 0xCC, 0x09, 0x08, 0x3E, +0xF0, 0x0F, 0x50, 0x46, 0x5B, 0x07, 0x10, 0x3C, +0x24, 0x28, 0x13, 0x42, 0x00, 0x28, 0x5F, 0x40, +0x22, 0x01, 0x00, 0x22, 0xEA, 0x0B, 0x34, 0x3C, +0x11, 0x81, 0x30, 0x38, 0x01, 0x01, 0x20, 0x46, +0x04, 0xA0, 0x31, 0x40, 0x20, 0x00, 0x51, 0x22, +0x03, 0x80, 0x52, 0x42, 0x20, 0x00, 0x00, 0x2E, +0x64, 0x21, 0x18, 0x3E, 0x00, 0x00, 0x33, 0x22, +0xB4, 0xFF, 0x17, 0x3E, 0x06, 0x00, 0x10, 0x3C, +0x03, 0x80, 0x80, 0x00, 0x24, 0x0C, 0x02, 0x3A, +0x24, 0x1C, 0x18, 0x3E, 0x80, 0x00, 0xF0, 0x46, +0x81, 0x00, 0xF0, 0x46, 0x00, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xB4, 0x91, +0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, +0x64, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00, +0x3C, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, +0x50, 0x00, 0x50, 0x00, 0x1E, 0x00, 0x01, 0x00, +0xE8, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x04, 0x02, +0x10, 0x00, 0x28, 0x00, 0x19, 0x00, 0x10, 0x28, +0x03, 0x00, 0x90, 0x01, 0xF4, 0x01, 0x02, 0x00, +0x23, 0x00, 0x32, 0x00, 0x03, 0x05, 0x1B, 0x00, +0x1B, 0x00, 0x00, 0x00, 0x96, 0x00, 0x14, 0x00, +0x0A, 0x00, 0xC8, 0x00, 0x2C, 0x01, 0xC8, 0x00, +0x0F, 0x00, 0x46, 0x00, 0x3C, 0x00, 0x96, 0x00, +0x01, 0x00, 0x02, 0x00, 0x64, 0x00, 0x96, 0x00, +0x1E, 0x00, 0x3C, 0x00, 0x0A, 0x00, 0x0A, 0x00, +0x19, 0x00, 0xF4, 0x01, 0x0A, 0x00, 0x02, 0x00, +0x1E, 0x00, 0x0A, 0x00, 0x06, 0x00, 0x01, 0x00, +0x03, 0x00, 0x03, 0x00, 0xF4, 0x01, 0x0A, 0x00, +0x13, 0x00, 0x0A, 0x00, 0x17, 0x00, 0x16, 0x01, +0x15, 0x02, 0x14, 0x03, 0x13, 0x04, 0x12, 0x05, +0x11, 0x06, 0x10, 0x07, 0x0F, 0x08, 0x0E, 0x09, +0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, +0x1C, 0x1D, 0x1E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x06, 0x00, 0x0F, 0x00, 0x32, 0x00, +0x05, 0x00, 0x07, 0x00, 0x32, 0x00, 0x05, 0x00, +0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x64, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x44, 0x91, 0x20, 0x10, 0x02, 0x80, 0x00, 0x00, +0x02, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, +0x12, 0x00, 0x01, 0x00, 0x02, 0x00, 0x07, 0x00, +0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0E, 0x07, +0x32, 0x00, 0x32, 0x00, 0x32, 0x00, 0x2C, 0x01, +0x1C, 0x02, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, +0x04, 0x00, 0x0A, 0x00, 0x50, 0x00, 0x1E, 0x00, +0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, +0x05, 0x00, 0x05, 0x00, 0x02, 0x00, 0x02, 0x00, +0x44, 0x00, 0x44, 0x00, 0x0F, 0x00, 0x0F, 0x00, +0x8C, 0x0A, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, +0x02, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, +0x64, 0x00, 0x50, 0x00, 0x64, 0x00, 0x50, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0x7C, 0x01, 0xC8, 0x00, +0x07, 0x00, 0x0F, 0x00, 0xFF, 0xFF, 0x0F, 0x00, +0x0F, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, +0x40, 0x00, 0x3C, 0x00, 0x40, 0x00, 0x40, 0x00, +0x0F, 0x80, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x01, +0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, +0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, +0x32, 0x00, 0xC4, 0x09, 0xC8, 0x00, 0x00, 0x00, +0x6D, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xC4, 0x09, 0x8A, 0x00, 0xFF, 0xFF, +0xE8, 0x03, 0x3C, 0xF6, 0xDC, 0x00, 0x78, 0x00, +0x5E, 0x01, 0xC4, 0x09, 0x2C, 0x01, 0x28, 0x00, +0x00, 0x00, 0x08, 0x00, 0x04, 0x02, 0x20, 0x28, +0x14, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x28, 0x00, +0xFF, 0xFF, 0x20, 0x40, 0x06, 0x03, 0x10, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x00, 0x07, 0x00, +0x03, 0x00, 0x8B, 0x00, 0xFF, 0xFF, 0xFF, 0x7F, +0x0F, 0x04, 0x00, 0x00, 0x3B, 0x00, 0x02, 0x00, +0xFF, 0xFF, 0xFF, 0x7F, 0x61, 0x5B, 0x00, 0x00, +0x07, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, +0x20, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0x00, +0x00, 0x00, 0x49, 0x17, 0x08, 0x00, 0x00, 0x00, +0x00, 0x01, 0x60, 0x00, 0x19, 0x00, 0x01, 0x00, +0x96, 0x00, 0x1E, 0x00, 0xFF, 0xFF, 0x00, 0x00, +0x96, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x03, 0x00, +0xFF, 0xFF, 0x44, 0x06, 0x00, 0x00, 0x20, 0x00, +0x6D, 0x00, 0x0C, 0x00, 0x3C, 0x00, 0x88, 0x13, +0x19, 0x00, 0x46, 0x00, 0x05, 0x00, 0x01, 0x08, +0x00, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, +0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF, +0x00, 0x00, 0x64, 0x00, 0x03, 0x00, 0x02, 0x00, +0x06, 0x00, 0x03, 0x00, 0x03, 0x00, 0xF4, 0x01, +0x4A, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x21, 0x00, +0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xC8, 0x00, 0xC8, 0x00, 0x03, 0x04, +0x64, 0x00, 0x2D, 0x00, 0x36, 0x00, 0x35, 0x00, +0xA2, 0x00, 0x35, 0x00, 0x0E, 0x01, 0x35, 0x00, +0x7A, 0x01, 0x35, 0x00, 0xE6, 0x01, 0x35, 0x00, +0xE6, 0x01, 0xA0, 0x00, 0x7A, 0x01, 0xA0, 0x00, +0x0E, 0x01, 0xA0, 0x00, 0xA2, 0x00, 0xA0, 0x00, +0x36, 0x00, 0xA0, 0x00, 0x36, 0x00, 0x0B, 0x01, +0xA2, 0x00, 0x0B, 0x01, 0x0E, 0x01, 0x0B, 0x01, +0x7A, 0x01, 0x0B, 0x01, 0xE6, 0x01, 0x0B, 0x01, +0xE6, 0x01, 0x75, 0x01, 0x7A, 0x01, 0x75, 0x01, +0x0E, 0x01, 0x75, 0x01, 0xA2, 0x00, 0x75, 0x01, +0x36, 0x00, 0x75, 0x01, 0x36, 0x00, 0xE0, 0x01, +0xA2, 0x00, 0xE0, 0x01, 0x0E, 0x01, 0xE0, 0x01, +0x7A, 0x01, 0xE0, 0x01, 0xE6, 0x01, 0xE0, 0x01, +0xE6, 0x01, 0x4B, 0x02, 0x7A, 0x01, 0x4B, 0x02, +0x0E, 0x01, 0x4B, 0x02, 0xA2, 0x00, 0x4B, 0x02, +0x36, 0x00, 0x4B, 0x02, 0x36, 0x00, 0xB5, 0x02, +0xA2, 0x00, 0xB5, 0x02, 0x0E, 0x01, 0xB5, 0x02, +0x7A, 0x01, 0xB5, 0x02, 0xE6, 0x01, 0xB5, 0x02, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0x03, 0x02, 0x00, +0x05, 0x00, 0x03, 0x00, 0x3C, 0x00, 0x28, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xE6, 0x01, 0x20, 0x03, 0x7A, 0x01, 0x20, 0x03, +0x0E, 0x01, 0x20, 0x03, 0xA2, 0x00, 0x20, 0x03, +0x36, 0x00, 0x20, 0x03, 0x36, 0x00, 0x8B, 0x03, +0xA2, 0x00, 0x8B, 0x03, 0x0E, 0x01, 0x8B, 0x03, +0x7A, 0x01, 0x8B, 0x03, 0xE6, 0x01, 0x8B, 0x03, +0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x03, 0x00, 0x02, 0x00, 0x19, 0x00, 0x24, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +}; +#endif diff --git a/drivers/input/touchscreen/zinitix_bt541_ts.c b/drivers/input/touchscreen/zinitix_bt541_ts.c new file mode 100644 index 00000000..eba65108 --- /dev/null +++ b/drivers/input/touchscreen/zinitix_bt541_ts.c @@ -0,0 +1,6284 @@ +/* + * + * Zinitix bt541 touchscreen driver + * + * Copyright (C) 2013 Samsung Electronics Co.Ltd + * + * 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. + * + */ + + +#define TSP_VERBOSE_DEBUG +#define SEC_FACTORY_TEST +#define SUPPORTED_TOUCH_KEY + +#include +#include +#include +#include +#include +#ifdef CONFIG_HAS_EARLYSUSPEND +#include +#endif +#if defined(CONFIG_PM_RUNTIME) +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +/* added header file */ +/* #define SUPPORTED_USE_DUAL_FW */ +#ifdef SUPPORTED_USE_DUAL_FW +#include "zinitix_bt541_firmware_00.h" +#include "zinitix_bt541_firmware_01.h" +u8 *m_firmware_data; +#else +#include "zinitix_bt541_firmware.h" +#endif + +extern void (*tsp_charger_status_cb)(int); + +#ifdef SUPPORTED_USE_DUAL_FW +#define TSP_TYPE_COUNT 2 +u8 *m_pFirmware[TSP_TYPE_COUNT] = {(u8 *)m_firmware_data_00, (u8 *)m_firmware_data_01,}; +u8 m_FirmwareIdx = 0; +#define CHECK_HWID 1 +static void bt541_firmware_check(void); +#else +#define CHECK_HWID 0 +#endif + +static bool ta_connected =0; +#define ZINITIX_DEBUG 1 +#define ZINITIX_I2C_CHECKSUM 1 +#define TOUCH_BOOSTER 0 +#define NOT_SUPPORTED_TOUCH_DUMMY_KEY +#if TOUCH_BOOSTER +#include +#include +extern int _store_cpu_num_min_limit(unsigned int input); +struct cpufreq_limit_handle *min_handle = NULL; +static const unsigned long touch_cpufreq_lock = 1200000; +#endif + +#ifdef SUPPORTED_PALM_TOUCH +#define TOUCH_POINT_MODE 2 +#else +#define TOUCH_POINT_MODE 0 +#endif + +#define MAX_SUPPORTED_FINGER_NUM 2 /* max 10 */ + +#ifdef SUPPORTED_TOUCH_KEY +#ifdef NOT_SUPPORTED_TOUCH_DUMMY_KEY +#define MAX_SUPPORTED_BUTTON_NUM 2 /* max 8 */ +#define SUPPORTED_BUTTON_NUM 2 +#else +#define MAX_SUPPORTED_BUTTON_NUM 2 /* max 8 */ +#define SUPPORTED_BUTTON_NUM 2 +#endif +#endif + +/* Upgrade Method*/ +#define TOUCH_ONESHOT_UPGRADE 1 +/* if you use isp mode, you must add i2c device : + name = "zinitix_isp" , addr 0x50*/ + +/* resolution offset */ +#define ABS_PT_OFFSET (0) + +#define TOUCH_FORCE_UPGRADE 1 +#define USE_CHECKSUM 1 + +#define CHIP_OFF_DELAY 50 /*ms*/ +#define CHIP_ON_DELAY 20 /*15*/ /*ms*/ +#define FIRMWARE_ON_DELAY 60 /*40*/ /*ms*/ + +#define DELAY_FOR_SIGNAL_DELAY 30 /*us*/ +#define DELAY_FOR_TRANSCATION 50 +#define DELAY_FOR_POST_TRANSCATION 10 + +/* PMIC Regulator based supply to TSP */ +#define TSP_REGULATOR_SUPPLY 1 +/* gpio controlled LDO based supply to TSP */ +#define TSP_LDO_SUPPLY 0 + +enum power_control { + POWER_OFF, + POWER_ON, + POWER_ON_SEQUENCE, +}; + +/* Key Enum */ +enum key_event { + ICON_BUTTON_UNCHANGE, + ICON_BUTTON_DOWN, + ICON_BUTTON_UP, +}; + +/* ESD Protection */ +/*second : if 0, no use. if you have to use, 3 is recommended*/ +#define ESD_TIMER_INTERVAL 1 +#define SCAN_RATE_HZ 100 +#define CHECK_ESD_TIMER 3 + +/*Test Mode (Monitoring Raw Data) */ +#define MAX_RAW_DATA_SZ 576 /* 32x18 */ +#define MAX_TRAW_DATA_SZ \ + (MAX_RAW_DATA_SZ + 4*MAX_SUPPORTED_FINGER_NUM + 2) +/* preriod raw data interval */ + +#define RAWDATA_DELAY_FOR_HOST 100 + +struct raw_ioctl { + u32 sz; + u32 buf; +}; + +struct reg_ioctl { + u32 addr; + u32 val; +}; + +#define TOUCH_SEC_MODE 48 +#define TOUCH_REF_MODE 10 +#define TOUCH_NORMAL_MODE 5 +#define TOUCH_DELTA_MODE 3 +#define TOUCH_SDND_MODE 6 +#define TOUCH_DND_MODE 11 + +/* Other Things */ +#define INIT_RETRY_CNT 1 +#define I2C_SUCCESS 0 +#define I2C_FAIL 1 + +/*---------------------------------------------------------------------*/ + +/* Register Map*/ +#define BT541_SWRESET_CMD 0x0000 +#define BT541_WAKEUP_CMD 0x0001 + +#define BT541_IDLE_CMD 0x0004 +#define BT541_SLEEP_CMD 0x0005 + +#define BT541_CLEAR_INT_STATUS_CMD 0x0003 +#define BT541_CALIBRATE_CMD 0x0006 +#define BT541_SAVE_STATUS_CMD 0x0007 +#define BT541_SAVE_CALIBRATION_CMD 0x0008 +#define BT541_RECALL_FACTORY_CMD 0x000f + +#define BT541_THRESHOLD 0x0020 + +#define BT541_DEBUG_REG 0x0115 /* 0~7 */ + +#define BT541_TOUCH_MODE 0x0010 +#define BT541_CHIP_REVISION 0x0011 +#define BT541_FIRMWARE_VERSION 0x0012 + +#define BT541_MINOR_FW_VERSION 0x0121 + +#define BT541_VENDOR_ID 0x001C +#define BT541_MODULE_ID 0x001E +#define BT541_HW_ID 0x0014 + +#define BT541_DATA_VERSION_REG 0x0013 +#define BT541_SUPPORTED_FINGER_NUM 0x0015 +#define BT541_EEPROM_INFO 0x0018 +#define BT541_INITIAL_TOUCH_MODE 0x0019 + +#define BT541_TOTAL_NUMBER_OF_X 0x0060 +#define BT541_TOTAL_NUMBER_OF_Y 0x0061 + +#define BT541_DELAY_RAW_FOR_HOST 0x007f + +#define BT541_BUTTON_SUPPORTED_NUM 0x00B0 +#define BT541_BUTTON_SENSITIVITY 0x00B2 +#define BT541_DUMMY_BUTTON_SENSITIVITY 0X00C8 +#define BT541_BTN_WIDTH 0x016d + + +#define BT541_X_RESOLUTION 0x00C0 +#define BT541_Y_RESOLUTION 0x00C1 + +#define BT541_POINT_STATUS_REG 0x0080 +#define BT541_ICON_STATUS_REG 0x00AA + +#define BT541_AFE_FREQUENCY 0x0100 +#define BT541_DND_N_COUNT 0x0122 +#define BT541_DND_U_COUNT 0x0135 +#define BT541_SHIFT_VALUE 0x012B + +#define BT541_RAWDATA_REG 0x0200 + +#define BT541_EEPROM_INFO_REG 0x0018 + +#define BT541_INT_ENABLE_FLAG 0x00f0 +#define BT541_PERIODICAL_INTERRUPT_INTERVAL 0x00f1 + +#define BT541_CHECKSUM_RESULT 0x012c + +#define BT541_INIT_FLASH 0x01d0 +#define BT541_WRITE_FLASH 0x01d1 +#define BT541_READ_FLASH 0x01d2 + +#define ZINITIX_INTERNAL_FLAG_02 0x011e + +#define BT541_OPTIONAL_SETTING 0x0116 + +/* Interrupt & status register flag bit + ------------------------------------------------- + */ +#define BIT_PT_CNT_CHANGE 0 +#define BIT_DOWN 1 +#define BIT_MOVE 2 +#define BIT_UP 3 +#define BIT_PALM 4 +#define BIT_PALM_REJECT 5 +#define RESERVED_0 6 +#define RESERVED_1 7 +#define BIT_WEIGHT_CHANGE 8 +#define BIT_PT_NO_CHANGE 9 +#define BIT_REJECT 10 +#define BIT_PT_EXIST 11 +#define RESERVED_2 12 +#define BIT_MUST_ZERO 13 +#define BIT_DEBUG 14 +#define BIT_ICON_EVENT 15 + +/* button */ +#define BIT_O_ICON0_DOWN 0 +#define BIT_O_ICON1_DOWN 1 +#define BIT_O_ICON2_DOWN 2 +#define BIT_O_ICON3_DOWN 3 +#define BIT_O_ICON4_DOWN 4 +#define BIT_O_ICON5_DOWN 5 +#define BIT_O_ICON6_DOWN 6 +#define BIT_O_ICON7_DOWN 7 + +#define BIT_O_ICON0_UP 8 +#define BIT_O_ICON1_UP 9 +#define BIT_O_ICON2_UP 10 +#define BIT_O_ICON3_UP 11 +#define BIT_O_ICON4_UP 12 +#define BIT_O_ICON5_UP 13 +#define BIT_O_ICON6_UP 14 +#define BIT_O_ICON7_UP 15 + + +#define SUB_BIT_EXIST 0 +#define SUB_BIT_DOWN 1 +#define SUB_BIT_MOVE 2 +#define SUB_BIT_UP 3 +#define SUB_BIT_UPDATE 4 +#define SUB_BIT_WAIT 5 + + +#define zinitix_bit_set(val, n) ((val) &= ~(1<<(n)), (val) |= (1<<(n))) +#define zinitix_bit_clr(val, n) ((val) &= ~(1<<(n))) +#define zinitix_bit_test(val, n) ((val) & (1<<(n))) +#define zinitix_swap_v(a, b, t) ((t) = (a), (a) = (b), (b) = (t)) +#define zinitix_swap_16(s) (((((s) & 0xff) << 8) | (((s) >> 8) & 0xff))) + +/* end header file */ + +#ifdef SEC_FACTORY_TEST +/* Touch Screen */ +#define TSP_CMD_STR_LEN 32 +#define TSP_CMD_RESULT_STR_LEN 512 +#define TSP_CMD_PARAM_NUM 8 +#define TSP_CMD_Y_NUM 18 +#define TSP_CMD_X_NUM 30 +#define TSP_CMD_NODE_NUM (TSP_CMD_Y_NUM * TSP_CMD_X_NUM) + +struct tsp_factory_info { + struct list_head cmd_list_head; + char cmd[TSP_CMD_STR_LEN]; + char cmd_param[TSP_CMD_PARAM_NUM]; + char cmd_result[TSP_CMD_RESULT_STR_LEN]; + char cmd_buff[TSP_CMD_RESULT_STR_LEN]; + struct mutex cmd_lock; + bool cmd_is_running; + u8 cmd_state; +}; + +struct tsp_raw_data { + u16 ref_data[TSP_CMD_NODE_NUM]; + u16 pref_data[TSP_CMD_NODE_NUM]; + /*s16 scantime_data[TSP_CMD_NODE_NUM]; */ + s16 delta_data[TSP_CMD_NODE_NUM]; +}; + +enum { + WAITING = 0, + RUNNING, + OK, + FAIL, + NOT_APPLICABLE, +}; + +struct tsp_cmd { + struct list_head list; + const char *cmd_name; + void (*cmd_func)(void *device_data); +}; + +static void fw_update(void *device_data); +static void get_fw_ver_bin(void *device_data); +static void get_fw_ver_ic(void *device_data); +static void module_off_master(void *device_data); +static void module_on_master(void *device_data); +static void module_off_slave(void *device_data); +static void module_on_slave(void *device_data); +static void get_chip_vendor(void *device_data); +static void get_chip_name(void *device_data); +static void get_threshold(void *device_data); +static void get_x_num(void *device_data); +static void get_y_num(void *device_data); +static void not_support_cmd(void *device_data); + +/* Vendor dependant command */ +#ifdef SUPPORTED_USE_DUAL_FW +static void get_module_vendor(void *device_data); +#endif + +static void get_reference_DND(void *device_data); +/*static void get_reference_RxDND(void *device_data);*/ +static void get_reference_HFDND(void *device_data); +/*static void get_reference_RxHFDND(void *device_data);*/ +/*static void get_tkey_delta(void *device_data);*/ +static void get_reference_V_Diff(void *device_data); +/*static void get_reference_max_V_Diff(void *device_data);*/ +static void get_reference_H_Diff(void * device_data); +/*static void get_reference_max_H_Diff(void * device_data);*/ +/*static void get_max_dnd(void *device_data);*/ +/*static void get_min_dnd(void *device_data);*/ +/*static void get_max_hfdnd(void *device_data);*/ +/*static void get_min_hfdnd(void *device_data);*/ +/*static void get_max_hdiff(void *device_data);*/ +/*static void get_min_hdiff(void *device_data);*/ +/*static void get_max_vdiff(void *device_data);*/ +/*static void get_min_vdiff(void *device_data);*/ +/*static void get_reference(void *device_data);*/ +/*static void get_preference(void *device_data);*/ +/*static void run_preference_read(void *device_data);*/ +static void run_reference_DND(void *device_data); +static void run_reference_HFDND(void *device_data); +static void run_reference_V_Diff(void *device_data); +static void run_reference_H_Diff(void *device_data); +/*static void run_reference_read(void *device_data);*/ +static void hfdnd_spec_adjust(void *device_data); +static void clear_reference_data(void *device_data); +static void run_ref_calibration(void *device_data); + +#define TSP_CMD(name, func) .cmd_name = name, .cmd_func = func +static struct tsp_cmd tsp_cmds[] = { + {TSP_CMD("fw_update", fw_update),}, + {TSP_CMD("get_fw_ver_bin", get_fw_ver_bin),}, + {TSP_CMD("get_fw_ver_ic", get_fw_ver_ic),}, + {TSP_CMD("get_threshold", get_threshold),}, + {TSP_CMD("module_off_master", module_off_master),}, + {TSP_CMD("module_on_master", module_on_master),}, + {TSP_CMD("module_off_slave", module_off_slave),}, + {TSP_CMD("module_on_slave", module_on_slave),}, + {TSP_CMD("get_chip_vendor", get_chip_vendor),}, + {TSP_CMD("get_chip_name", get_chip_name),}, + {TSP_CMD("get_x_num", get_x_num),}, + {TSP_CMD("get_y_num", get_y_num),}, + {TSP_CMD("not_support_cmd", not_support_cmd),}, + + /* vendor dependant command */ +#ifdef SUPPORTED_USE_DUAL_FW + {TSP_CMD("get_module_vendor", get_module_vendor),}, +#endif + {TSP_CMD("run_reference_read", run_reference_DND),}, + {TSP_CMD("get_reference", get_reference_DND),}, + {TSP_CMD("run_vdiff_read", run_reference_V_Diff),}, + {TSP_CMD("get_vdiff", get_reference_V_Diff),}, + {TSP_CMD("run_hdiff_read", run_reference_H_Diff),}, + {TSP_CMD("get_hdiff", get_reference_H_Diff),}, + {TSP_CMD("run_highfreq_read", run_reference_HFDND),}, + {TSP_CMD("get_highfreq", get_reference_HFDND),}, + {TSP_CMD("hfdnd_spec_adjust", hfdnd_spec_adjust),}, + {TSP_CMD("clear_reference_data", clear_reference_data),}, + {TSP_CMD("run_ref_calibration", run_ref_calibration),}, + /* + {TSP_CMD("get_reference_DND", get_reference_DND),}, + {TSP_CMD("get_reference_RxDND", get_reference_RxDND),}, + {TSP_CMD("get_reference_HFDND", get_reference_HFDND),}, + {TSP_CMD("get_reference_RxHFDND", get_reference_RxHFDND),}, + {TSP_CMD("get_reference_V_DIFF", get_reference_V_Diff),}, + {TSP_CMD("get_reference_max_V_DIFF", get_reference_max_V_Diff),}, + {TSP_CMD("get_reference_H_DIFF", get_reference_H_Diff),}, + {TSP_CMD("get_reference_max_H_DIFF", get_reference_max_H_Diff),}, + {TSP_CMD("run_reference_HFDND", run_reference_HFDND),}, + {TSP_CMD("run_reference_DND", run_reference_DND),}, + {TSP_CMD("run_reference_diff", run_reference_PDiff),}, + {TSP_CMD("get_max_dnd", get_max_dnd),}, + {TSP_CMD("get_min_dnd", get_min_dnd),}, + {TSP_CMD("get_max_hfdnd", get_max_hfdnd),}, + {TSP_CMD("get_min_hfdnd", get_min_hfdnd),}, + {TSP_CMD("get_max_hdiff", get_max_hdiff),}, + {TSP_CMD("get_min_hdiff", get_min_hdiff),}, + {TSP_CMD("get_max_vdiff", get_max_vdiff),}, + {TSP_CMD("get_min_vdiff", get_min_vdiff),}, + {TSP_CMD("get_tkey_delta", get_tkey_delta),}, + {TSP_CMD("run_reference_read", run_reference_read),}, + {TSP_CMD("get_reference", get_reference),}, + {TSP_CMD("run_dnd_read", run_preference_read),}, + {TSP_CMD("get_dnd", get_preference),}, + */ +}; +#if 0 +#ifdef SUPPORTED_TOUCH_KEY +/* Touch Key */ +static ssize_t touchkey_threshold(struct device *dev, + struct device_attribute *attr, char *buf); +static ssize_t touch_sensitivity(struct device *dev, + struct device_attribute *attr, char *buf); +static ssize_t touchkey_back(struct device *dev, + struct device_attribute *attr, char *buf); +static ssize_t touchkey_recent(struct device *dev, + struct device_attribute *attr, char *buf); +static ssize_t autocal_stat(struct device *dev, + struct device_attribute *attr, char *buf); +static ssize_t touchkey_raw_back(struct device *dev, + struct device_attribute *attr, char *buf); +static ssize_t touchkey_raw_menu(struct device *dev, + struct device_attribute *attr, char *buf); +/*static ssize_t touchkey_idac_back(struct device *dev, + struct device_attribute *attr, char *buf); + static ssize_t touchkey_idac_menu(struct device *dev, + struct device_attribute *attr, char *buf); + */ +#endif +#endif +#endif + +#define TSP_NORMAL_EVENT_MSG 1 +static int m_ts_debug_mode = ZINITIX_DEBUG; + +#if ESD_TIMER_INTERVAL +static struct workqueue_struct *esd_tmr_workqueue; +#endif + +struct coord { + u16 x; + u16 y; + u8 width; + u8 sub_status; +#if (TOUCH_POINT_MODE == 2) + u8 minor_width; + u8 angle; +#endif +}; + +struct point_info { + u16 status; +#if (TOUCH_POINT_MODE == 1) + u16 event_flag; +#else + u8 finger_cnt; + u8 time_stamp; +#endif + struct coord coord[MAX_SUPPORTED_FINGER_NUM]; +}; + +#define TOUCH_V_FLIP 0x01 +#define TOUCH_H_FLIP 0x02 +#define TOUCH_XY_SWAP 0x04 + +/*Test Mode (Monitoring Raw Data) */ +/*---------------------------------------------------------------------*/ +/* GF1 */ +/*---------------------------------------------------------------------*/ +#define PDIFF_DEBUG 1 + +#define TSP_INIT_TEST_RATIO 100 + +#define SEC_DND_N_COUNT 16 +#define SEC_DND_U_COUNT 20 +#define SEC_DND_FREQUENCY 138 /*300khz*/ + +#define SEC_HFDND_N_COUNT 16 +#define SEC_HFDND_U_COUNT 20 +#define SEC_HFDND_FREQUENCY 27 /*300khz*/ +/*---------------------------------------------------------------------*/ +struct capa_info { + u16 vendor_id; + u16 ic_revision; + u16 fw_version; + u16 fw_minor_version; + u16 reg_data_version; + u16 threshold; + u16 key_threshold; + u16 dummy_threshold; + u32 ic_fw_size; + u32 MaxX; + u32 MaxY; + u32 MinX; + u32 MinY; + u8 gesture_support; + u16 multi_fingers; + u16 button_num; + u16 ic_int_mask; + u16 x_node_num; + u16 y_node_num; + u16 total_node_num; + u16 hw_id; + u16 module_id; + u16 afe_frequency; + u16 shift_value; + u16 N_cnt; + u16 U_cnt; + u16 i2s_checksum; +}; + +enum work_state { + NOTHING = 0, + NORMAL, + ESD_TIMER, + EALRY_SUSPEND, + SUSPEND, + RESUME, + LATE_RESUME, + UPGRADE, + REMOVE, + SET_MODE, + HW_CALIBRAION, + RAW_DATA, + PROBE, +}; + +enum { + BUILT_IN = 0, + UMS, + REQ_FW, +}; + +struct bt541_ts_info; + +struct bt541_ts_platform_data { + u32 gpio_int; + u32 gpio_ldo_en; + int (*tsp_power)(struct bt541_ts_info *info, int on); + u32 x_resolution; + u32 y_resolution; + u32 page_size; + u32 orientation; + u32 tsp_supply_type; +}; + +struct bt541_ts_info { + struct i2c_client *client; + struct input_dev *input_dev; + struct bt541_ts_platform_data *pdata; + char phys[32]; + /*struct task_struct *task;*/ + /*wait_queue_head_t wait;*/ + /*struct semaphore update_lock;*/ + /*u32 i2c_dev_addr;*/ + struct capa_info cap_info; + struct point_info touch_info; + struct point_info reported_touch_info; + u16 icon_event_reg; + u16 prev_icon_event; + /*u16 event_type;*/ + int irq; + u8 button[MAX_SUPPORTED_BUTTON_NUM]; + u8 work_state; + struct semaphore work_lock; + /*u16 debug_reg[8];*/ /* for debug */ +#if ESD_TIMER_INTERVAL + struct work_struct tmr_work; + struct timer_list esd_timeout_tmr; + struct timer_list *p_esd_timeout_tmr; + spinlock_t lock; +#endif +#ifdef CONFIG_HAS_EARLYSUSPEND + struct early_suspend early_suspend; +#endif + struct semaphore raw_data_lock; + u16 touch_mode; + s16 cur_data[MAX_TRAW_DATA_SZ]; + u8 update; +#ifdef SEC_FACTORY_TEST + struct tsp_factory_info *factory_info; + struct tsp_raw_data *raw_data; + + s16 ref_data[MAX_RAW_DATA_SZ]; + s16 normal_data[MAX_RAW_DATA_SZ]; + s16 delta_data[MAX_RAW_DATA_SZ]; + u16 pdnd_data[MAX_RAW_DATA_SZ]; + u16 hfdnd_data[MAX_RAW_DATA_SZ]; + u16 PDND2_N_cnt; + u16 PDND2_u_cnt; + u16 PDND2_freq; + + s16 ref_btn_option; + + s16 dnd_max_x; + s16 dnd_max_y; + s16 dnd_max_val; + s16 dnd_real_max_x; + s16 dnd_real_max_y; + s16 dnd_real_max_val; + s16 dnd_min_x; + s16 dnd_min_y; + s16 dnd_min_val; + s16 dnd_real_min_x; + s16 dnd_real_min_y; + s16 dnd_real_min_val; + s16 dnd_node_num; + + s16 hfdnd_max_x; + s16 hfdnd_max_y; + s16 hfdnd_max_val; + s16 hfdnd_real_max_x; + s16 hfdnd_real_max_y; + s16 hfdnd_real_max_val; + s16 hfdnd_min_x; + s16 hfdnd_min_y; + s16 hfdnd_min_val; + s16 hfdnd_real_min_x; + s16 hfdnd_real_min_y; + s16 hfdnd_real_min_val; + s16 hfdnd_node_num; + + s16 hdiff_max_x; + s16 hdiff_max_y; + s16 hdiff_max_val; + s16 hdiff_min_x; + s16 hdiff_min_y; + s16 hdiff_min_val; + s16 hdiff_diff_val; + s16 hdiff_node_num; + + s16 vdiff_max_x; + s16 vdiff_max_y; + s16 vdiff_max_val; + s16 vdiff_min_x; + s16 vdiff_min_y; + s16 vdiff_min_val; + s16 vdiff_diff_val; + s16 vdiff_node_num; + + bool dnd_done; + bool hfdnd_done; + +#endif +#if TOUCH_BOOSTER + u8 finger_cnt; +#endif +}; +/* Dummy touchkey code */ +#define KEY_DUMMY_HOME1 249 +#define KEY_DUMMY_HOME2 250 +#define KEY_DUMMY_MENU 251 +#define KEY_DUMMY_HOME 252 +#define KEY_DUMMY_BACK 253 +/*<= you must set key button mapping*/ +#ifdef NOT_SUPPORTED_TOUCH_DUMMY_KEY +u32 BUTTON_MAPPING_KEY[MAX_SUPPORTED_BUTTON_NUM] = { + KEY_APPSELECT, KEY_BACK}; +#else +u32 BUTTON_MAPPING_KEY[MAX_SUPPORTED_BUTTON_NUM] = { + KEY_DUMMY_MENU, KEY_RECENT,// KEY_DUMMY_HOME1, + /*KEY_DUMMY_HOME2,*/ KEY_BACK, KEY_DUMMY_BACK}; +#endif + + +static int cal_mode; +static int get_boot_mode(char *str) +{ + + get_option(&str, &cal_mode); + printk("get_boot_mode, uart_mode : %d\n", cal_mode); + return 1; +} +__setup("calmode=",get_boot_mode); +/* define i2c sub functions*/ +static inline s32 read_data(struct i2c_client *client, + u16 reg, u8 *values, u16 length) +{ + s32 ret; + int count = 0; +retry: + /* select register*/ + ret = i2c_master_send(client , (u8 *)® , 2); + if (ret < 0) { + mdelay(1); + + if (++count < 8) + goto retry; + + return ret; + } + /* for setup tx transaction. */ + udelay(DELAY_FOR_TRANSCATION); + ret = i2c_master_recv(client , values , length); + if (ret < 0) + return ret; + + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +static inline s32 write_data(struct i2c_client *client, + u16 reg, u8 *values, u16 length) +{ + s32 ret; + int count = 0; + u8 pkt[10]; /* max packet */ + pkt[0] = (reg) & 0xff; /* reg addr */ + pkt[1] = (reg >> 8)&0xff; + memcpy((u8 *)&pkt[2], values, length); + +retry: + ret = i2c_master_send(client , pkt , length + 2); + if (ret < 0) { + mdelay(1); + + if (++count < 8) + goto retry; + printk(KERN_INFO "%s, count = %d\n", __func__, count); + + return ret; + } + + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +static inline s32 write_reg(struct i2c_client *client, u16 reg, u16 value) +{ + if (write_data(client, reg, (u8 *)&value, 2) < 0) + return I2C_FAIL; + + return I2C_SUCCESS; +} + +static inline s32 write_cmd(struct i2c_client *client, u16 reg) +{ + s32 ret; + int count = 0; + +retry: + ret = i2c_master_send(client , (u8 *)® , 2); + if (ret < 0) { + mdelay(1); + + if (++count < 8) + goto retry; + + return ret; + } + + udelay(DELAY_FOR_POST_TRANSCATION); + return I2C_SUCCESS; +} + +static inline s32 read_raw_data(struct i2c_client *client, + u16 reg, u8 *values, u16 length) +{ + s32 ret; + int count = 0; + +retry: + /* select register */ + ret = i2c_master_send(client , (u8 *)® , 2); + if (ret < 0) { + mdelay(1); + + if (++count < 8) + goto retry; + + return ret; + } + + /* for setup tx transaction. */ + udelay(200); + + ret = i2c_master_recv(client , values , length); + if (ret < 0) + return ret; + + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +static inline s32 read_firmware_data(struct i2c_client *client, + u16 addr, u8 *values, u16 length) +{ + s32 ret; + /* select register*/ + + ret = i2c_master_send(client , (u8 *)&addr , 2); + if (ret < 0) + return ret; + + /* for setup tx transaction. */ + mdelay(1); + + ret = i2c_master_recv(client , values , length); + if (ret < 0) + return ret; + + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void bt541_ts_early_suspend(struct early_suspend *h); +static void bt541_ts_late_resume(struct early_suspend *h); +#endif + +static bool bt541_power_control(struct bt541_ts_info *info, u8 ctl); +static int bt541_power(struct bt541_ts_info *info, int on); + +static bool init_touch(struct bt541_ts_info *info, bool fw_oneshot_upgrade); +static bool mini_init_touch(struct bt541_ts_info *info); +static void clear_report_data(struct bt541_ts_info *info); +#if ESD_TIMER_INTERVAL +static void esd_timer_start(u16 sec, struct bt541_ts_info *info); +static void esd_timer_stop(struct bt541_ts_info *info); +static void esd_timer_init(struct bt541_ts_info *info); +static void esd_timeout_handler(unsigned long data); +#endif + +static long ts_misc_fops_ioctl(struct file *filp, unsigned int cmd, + unsigned long arg); +static int ts_misc_fops_open(struct inode *inode, struct file *filp); +static int ts_misc_fops_close(struct inode *inode, struct file *filp); + +static const struct file_operations ts_misc_fops = { + .owner = THIS_MODULE, + .open = ts_misc_fops_open, + .release = ts_misc_fops_close, + .unlocked_ioctl = ts_misc_fops_ioctl, + .compat_ioctl = ts_misc_fops_ioctl, +}; + +static struct miscdevice touch_misc_device = { + .minor = MISC_DYNAMIC_MINOR, + .name = "zinitix_touch_misc", + .fops = &ts_misc_fops, +}; + +#define TOUCH_IOCTL_BASE 0xbc +#define TOUCH_IOCTL_GET_DEBUGMSG_STATE _IOW(TOUCH_IOCTL_BASE, 0, int) +#define TOUCH_IOCTL_SET_DEBUGMSG_STATE _IOW(TOUCH_IOCTL_BASE, 1, int) +#define TOUCH_IOCTL_GET_CHIP_REVISION _IOW(TOUCH_IOCTL_BASE, 2, int) +#define TOUCH_IOCTL_GET_FW_VERSION _IOW(TOUCH_IOCTL_BASE, 3, int) +#define TOUCH_IOCTL_GET_REG_DATA_VERSION _IOW(TOUCH_IOCTL_BASE, 4, int) +#define TOUCH_IOCTL_VARIFY_UPGRADE_SIZE _IOW(TOUCH_IOCTL_BASE, 5, int) +#define TOUCH_IOCTL_VARIFY_UPGRADE_DATA _IOW(TOUCH_IOCTL_BASE, 6, int) +#define TOUCH_IOCTL_START_UPGRADE _IOW(TOUCH_IOCTL_BASE, 7, int) +#define TOUCH_IOCTL_GET_X_NODE_NUM _IOW(TOUCH_IOCTL_BASE, 8, int) +#define TOUCH_IOCTL_GET_Y_NODE_NUM _IOW(TOUCH_IOCTL_BASE, 9, int) +#define TOUCH_IOCTL_GET_TOTAL_NODE_NUM _IOW(TOUCH_IOCTL_BASE, 10, int) +#define TOUCH_IOCTL_SET_RAW_DATA_MODE _IOW(TOUCH_IOCTL_BASE, 11, int) +#define TOUCH_IOCTL_GET_RAW_DATA _IOW(TOUCH_IOCTL_BASE, 12, int) +#define TOUCH_IOCTL_GET_X_RESOLUTION _IOW(TOUCH_IOCTL_BASE, 13, int) +#define TOUCH_IOCTL_GET_Y_RESOLUTION _IOW(TOUCH_IOCTL_BASE, 14, int) +#define TOUCH_IOCTL_HW_CALIBRAION _IOW(TOUCH_IOCTL_BASE, 15, int) +#define TOUCH_IOCTL_GET_REG _IOW(TOUCH_IOCTL_BASE, 16, int) +#define TOUCH_IOCTL_SET_REG _IOW(TOUCH_IOCTL_BASE, 17, int) +#define TOUCH_IOCTL_SEND_SAVE_STATUS _IOW(TOUCH_IOCTL_BASE, 18, int) +#define TOUCH_IOCTL_DONOT_TOUCH_EVENT _IOW(TOUCH_IOCTL_BASE, 19, int) + +struct bt541_ts_info *misc_info; + +#ifdef SUPPORTED_USE_DUAL_FW +static void bt541_firmware_check(void) +{ + int i; + u16 newHWID; + + for (i = 0; i < TSP_TYPE_COUNT; i++) { + newHWID = (u16) (m_pFirmware[i][0x57d2] | (m_pFirmware[i][0x57d3]<<8)); + if (misc_info->cap_info.hw_id == newHWID) { + m_FirmwareIdx = i; + break; + } + } + if (i == TSP_TYPE_COUNT) + m_FirmwareIdx = 0; + + m_firmware_data = m_pFirmware[m_FirmwareIdx]; +#if defined(TSP_VERBOSE_DEBUG) + dev_info(&misc_info->client->dev, "touch tsp type = %d, hw_id = %d\n", m_FirmwareIdx, misc_info->cap_info.hw_id); +#endif +} +#endif + +static u16 m_optional_mode = 0; +static u16 m_prev_optional_mode = 0; +static void bt541_set_optional_mode(struct bt541_ts_info *info, bool force) +{ + if (m_prev_optional_mode == m_optional_mode && !force) + return; + + if (write_reg(info->client, BT541_OPTIONAL_SETTING, m_optional_mode) == I2C_SUCCESS) { + m_prev_optional_mode = m_optional_mode; + dev_info(&misc_info->client->dev, "TA setting changed to %d\n", + m_optional_mode&0x1); + } +} +static void bt541_set_ta_status(struct bt541_ts_info *info) +{ + if (ta_connected) + zinitix_bit_set(m_optional_mode, 0); + else + zinitix_bit_clr(m_optional_mode, 0); +} + +void tsp_charger_enable(int status) +{ + if (status == POWER_SUPPLY_TYPE_BATTERY || + status == POWER_SUPPLY_TYPE_UNKNOWN) + status = 0; + else + status = 1; + + if (status) + ta_connected = true; + else + ta_connected = false; + + bt541_set_ta_status(misc_info); + + dev_info(&misc_info->client->dev, "TA %s\n", + status ? "connected" : "disconnected"); +} +EXPORT_SYMBOL(tsp_charger_enable); + +static bool get_raw_data(struct bt541_ts_info *info, u8 *buff, int skip_cnt) +{ + struct i2c_client *client = info->client; + struct bt541_ts_platform_data *pdata = info->pdata; + u32 total_node = info->cap_info.total_node_num; + u32 sz; + int i; + + disable_irq(info->irq); + + down(&info->work_lock); + if (info->work_state != NOTHING) { + printk(KERN_INFO "other process occupied.. (%d)\n", info->work_state); + enable_irq(info->irq); + up(&info->work_lock); + return false; + } + + info->work_state = RAW_DATA; + + for (i = 0; i < skip_cnt; i++) { + while (gpio_get_value(pdata->gpio_int)) + msleep(1); + + write_cmd(client, BT541_CLEAR_INT_STATUS_CMD); + msleep(1); + } + + zinitix_debug_msg("read raw data\r\n"); + sz = total_node * 2; + + while (gpio_get_value(pdata->gpio_int)) + msleep(1); + + if (read_raw_data(client, BT541_RAWDATA_REG, (char *)buff, sz) < 0) { + zinitix_printk("error : read zinitix tc raw data\n"); + info->work_state = NOTHING; + enable_irq(info->irq); + up(&info->work_lock); + return false; + } + + write_cmd(client, BT541_CLEAR_INT_STATUS_CMD); + info->work_state = NOTHING; + enable_irq(info->irq); + up(&info->work_lock); + + return true; +} + +static bool ts_get_raw_data(struct bt541_ts_info *info) +{ + struct i2c_client *client = info->client; + u32 total_node = info->cap_info.total_node_num; + u32 sz; + + if (down_trylock(&info->raw_data_lock)) { + dev_err(&client->dev, "Failed to occupy sema\n"); + info->touch_info.status = 0; + return true; + } + + sz = total_node * 2 + sizeof(struct point_info); + + if (read_raw_data(info->client, BT541_RAWDATA_REG, + (char *)info->cur_data, sz) < 0) { + dev_err(&client->dev, "Failed to read raw data\n"); + up(&info->raw_data_lock); + return false; + } + + info->update = 1; + memcpy((u8 *)(&info->touch_info), + (u8 *)&info->cur_data[total_node], + sizeof(struct point_info)); + up(&info->raw_data_lock); + + return true; +} + +#if ZINITIX_I2C_CHECKSUM +#define ZINITIX_I2C_CHECKSUM_WCNT 0x016a +#define ZINITIX_I2C_CHECKSUM_RESULT 0x016c +static bool i2c_checksum(struct bt541_ts_info *info, s16 *pChecksum, u16 wlength) +{ + s16 checksum_result; + s16 checksum_cur; + int i; + + checksum_cur = 0; + for (i = 0; i < wlength; i++) { + checksum_cur += (s16)pChecksum[i]; + } + if (read_data(info->client, + ZINITIX_I2C_CHECKSUM_RESULT, + (u8 *)(&checksum_result), 2) < 0) { + printk(KERN_INFO "error read i2c checksum rsult.-\n"); + return false; + } + if (checksum_cur != checksum_result) { + printk(KERN_INFO "checksum error : %d, %d\n", checksum_cur, checksum_result); + return false; + } + return true; +} + +#endif + +static bool ts_read_coord(struct bt541_ts_info *info) +{ + struct i2c_client *client = info->client; +#if (TOUCH_POINT_MODE == 1) + int i; +#endif + + /* zinitix_debug_msg("ts_read_coord+\r\n"); */ + + /* for Debugging Tool */ + + if (info->touch_mode != TOUCH_POINT_MODE) { + if (info->update == 0) { + if (ts_get_raw_data(info) == false) + return false; + } else { + info->touch_info.status = 0; + } + + dev_err(&client->dev, "status = 0x%04X\n", info->touch_info.status); + + goto out; + } + +#if (TOUCH_POINT_MODE == 1) + memset(&info->touch_info, + 0x0, sizeof(struct point_info)); + +#if ZINITIX_I2C_CHECKSUM + if (info->cap_info.i2s_checksum) + if ((write_reg(info->client, ZINITIX_I2C_CHECKSUM_WCNT, 2)) != I2C_SUCCESS) + return false; + +#endif + if (read_data(info->client, BT541_POINT_STATUS_REG, (u8 *)(&info->touch_info), 4) < 0) { + dev_err(&client->dev, "%s: Failed to read point info\n", __func__); + + return false; + } + +#if ZINITIX_I2C_CHECKSUM + if (info->cap_info.i2s_checksum) + if (i2c_checksum(info, (s16 *)(&info->touch_info), 2) == false) + return false; +#endif + dev_info(&client->dev, "status reg = 0x%x , event_flag = 0x%04x\n", + info->touch_info.status, info->touch_info.event_flag); + + bt541_set_optional_mode(info, false); + if (info->touch_info.event_flag == 0) + goto out; + +#if ZINITIX_I2C_CHECKSUM + if (info->cap_info.i2s_checksum) + if ((write_reg(info->client, ZINITIX_I2C_CHECKSUM_WCNT, sizeof(struct point_info)/2)) != I2C_SUCCESS) + return false; +#endif + for (i = 0; i < info->cap_info.multi_fingers; i++) { + if (zinitix_bit_test(info->touch_info.event_flag, i)) { + udelay(20); + + if (read_data(info->client, BT541_POINT_STATUS_REG + 2 + ( i * 4), + (u8 *)(&info->touch_info.coord[i]), + sizeof(struct coord)) < 0) { + dev_err(&client->dev, "Failed to read point info\n"); + + return false; + } +#if ZINITIX_I2C_CHECKSUM + if (info->cap_info.i2s_checksum) + if (i2c_checksum(info, (s16 *)(&info->touch_info.coord[i]), sizeof(struct point_info)/2) == false) + return false; +#endif + } + } + +#else +#if ZINITIX_I2C_CHECKSUM + if (info->cap_info.i2s_checksum) + if (write_reg(info->client, + ZINITIX_I2C_CHECKSUM_WCNT, + (sizeof(struct point_info)/2)) != I2C_SUCCESS) { + dev_err(&client->dev, "error write checksum wcnt.-\n"); + return false; + } +#endif + if (read_data(info->client, BT541_POINT_STATUS_REG, + (u8 *)(&info->touch_info), sizeof(struct point_info)) < 0) { + dev_err(&client->dev, "Failed to read point info\n"); + + return false; + } +#if ZINITIX_I2C_CHECKSUM + if (info->cap_info.i2s_checksum) + if (i2c_checksum(info, (s16 *)(&info->touch_info), sizeof(struct point_info)/2) == false) + return false; +#endif + + bt541_set_optional_mode(info, false); + +#endif + +out: + /* error */ + if (zinitix_bit_test(info->touch_info.status, BIT_MUST_ZERO)) { + dev_err(&client->dev, "Invalid must zero bit(%04x)\n", + info->touch_info.status); + + return false; + } + + write_cmd(info->client, BT541_CLEAR_INT_STATUS_CMD); + + return true; +} + +#if ESD_TIMER_INTERVAL +static void esd_timeout_handler(unsigned long data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)data; + + info->p_esd_timeout_tmr = NULL; + queue_work(esd_tmr_workqueue, &info->tmr_work); +} + +static void esd_timer_start(u16 sec, struct bt541_ts_info *info) +{ + unsigned long flags; + spin_lock_irqsave(&info->lock,flags); + if (info->p_esd_timeout_tmr != NULL) +#ifdef CONFIG_SMP + del_singleshot_timer_sync(info->p_esd_timeout_tmr); +#else + del_timer(info->p_esd_timeout_tmr); +#endif + info->p_esd_timeout_tmr = NULL; + init_timer(&(info->esd_timeout_tmr)); + info->esd_timeout_tmr.data = (unsigned long)(info); + info->esd_timeout_tmr.function = esd_timeout_handler; + info->esd_timeout_tmr.expires = jiffies + (HZ * sec); + info->p_esd_timeout_tmr = &info->esd_timeout_tmr; + add_timer(&info->esd_timeout_tmr); + spin_unlock_irqrestore(&info->lock, flags); +} + +static void esd_timer_stop(struct bt541_ts_info *info) +{ + unsigned long flags; + spin_lock_irqsave(&info->lock,flags); + if (info->p_esd_timeout_tmr) +#ifdef CONFIG_SMP + del_singleshot_timer_sync(info->p_esd_timeout_tmr); +#else + del_timer(info->p_esd_timeout_tmr); +#endif + + info->p_esd_timeout_tmr = NULL; + spin_unlock_irqrestore(&info->lock, flags); +} + +static void esd_timer_init(struct bt541_ts_info *info) +{ + unsigned long flags; + spin_lock_irqsave(&info->lock,flags); + init_timer(&(info->esd_timeout_tmr)); + info->esd_timeout_tmr.data = (unsigned long)(info); + info->esd_timeout_tmr.function = esd_timeout_handler; + info->p_esd_timeout_tmr = NULL; + spin_unlock_irqrestore(&info->lock, flags); +} + +static void ts_tmr_work(struct work_struct *work) +{ + struct bt541_ts_info *info = + container_of(work, struct bt541_ts_info, tmr_work); + struct i2c_client *client = info->client; + +#if defined(TSP_VERBOSE_DEBUG) + dev_info(&client->dev, "tmr queue work ++\n"); +#endif + + if (down_trylock(&info->work_lock)) { + dev_err(&client->dev, "%s: Failed to occupy work lock\n", __func__); + esd_timer_start(CHECK_ESD_TIMER, info); + + return; + } + + if (info->work_state != NOTHING) { + dev_info(&client->dev, "%s: Other process occupied (%d)\n", + __func__, info->work_state); + up(&info->work_lock); + + return; + } + info->work_state = ESD_TIMER; + + disable_irq(info->irq); + bt541_power_control(info, POWER_OFF); + bt541_power_control(info, POWER_ON_SEQUENCE); + + clear_report_data(info); + if (mini_init_touch(info) == false) + goto fail_time_out_init; + + info->work_state = NOTHING; + enable_irq(info->irq); + up(&info->work_lock); +#if defined(TSP_VERBOSE_DEBUG) + dev_info(&client->dev, "tmr queue work--\n"); +#endif + + return; +fail_time_out_init: + dev_err(&client->dev, "%s: Failed to restart\n", __func__); + esd_timer_start(CHECK_ESD_TIMER, info); + info->work_state = NOTHING; + enable_irq(info->irq); + up(&info->work_lock); + + return; +} +#endif + +static bool bt541_power_sequence(struct bt541_ts_info *info) +{ + struct i2c_client *client = info->client; + int retry = 0; + u16 chip_code; + +retry_power_sequence: + if (write_reg(client, 0xc000, 0x0001) != I2C_SUCCESS) { + dev_err(&client->dev, "Failed to send power sequence(vendor cmd enable)\n"); + goto fail_power_sequence; + } + udelay(10); + + if (read_data(client, 0xcc00, (u8 *)&chip_code, 2) < 0) { + dev_err(&client->dev, "Failed to read chip code\n"); + goto fail_power_sequence; + } + + dev_info(&client->dev, "%s: chip code = 0x%x\n", __func__, chip_code); + udelay(10); + + if (write_cmd(client, 0xc004) != I2C_SUCCESS) { + dev_err(&client->dev, "Failed to send power sequence(intn clear)\n"); + goto fail_power_sequence; + } + udelay(10); + + if (write_reg(client, 0xc002, 0x0001) != I2C_SUCCESS) { + dev_err(&client->dev, "Failed to send power sequence(nvm init)\n"); + goto fail_power_sequence; + } + mdelay(2); + + if (write_reg(client, 0xc001, 0x0001) != I2C_SUCCESS) { + dev_err(&client->dev, "Failed to send power sequence(program start)\n"); + goto fail_power_sequence; + } + msleep(FIRMWARE_ON_DELAY); /* wait for checksum cal */ + + return true; + +fail_power_sequence: + if (retry++ < 3) { + msleep(CHIP_ON_DELAY); + dev_info(&client->dev, "retry = %d\n", retry); + goto retry_power_sequence; + } + + dev_err(&client->dev, "Failed to send power sequence\n"); + return false; +} + +static struct regulator *touch_regulator; +static int bt541_power(struct bt541_ts_info *info, int on) +{ + int ret = 0; + static u8 is_power_on; + if (touch_regulator == NULL) { + touch_regulator = regulator_get(&info->client->dev, "vddsim2"); + if (IS_ERR(touch_regulator)) { + touch_regulator = NULL; + pr_info("[TSP]: %s: get touch_regulator error\n", + __func__); + return -EIO; + } + } + if (on == 0) { + if (is_power_on) { + is_power_on = 0; + ret = regulator_disable(touch_regulator); + if (ret) { + is_power_on = 1; + pr_err("[TSP]: %s: touch_regulator disable " \ + "failed (%d)\n", __func__, ret); + return -EIO; + } + mdelay(CHIP_OFF_DELAY); + } + } else { + if (!is_power_on) { + is_power_on = 1; + regulator_set_voltage(touch_regulator, 3000000, 3000000); + ret = regulator_enable(touch_regulator); + if (ret) { + is_power_on = 0; + pr_err("[TSP]: %s: touch_regulator enable "\ + "failed (%d)\n", __func__, ret); + return -EIO; + } + } + } + pr_info("[TSP]: %s, expected power[%d], actural power[%d]\n", + __func__, on, is_power_on); + return 0; +} +static bool bt541_power_control(struct bt541_ts_info *info, u8 ctl) +{ + int ret=0; + pr_info("[TSP] %s, %d\n", __func__, ctl); + + if (info->pdata->tsp_supply_type == TSP_REGULATOR_SUPPLY) { + ret = info->pdata->tsp_power(info, ctl); + if (ret) + return false; + + if (ctl == POWER_ON_SEQUENCE) { + msleep(CHIP_ON_DELAY); + return bt541_power_sequence(info); + } + } + else + { + if (ctl == POWER_OFF) { + gpio_direction_output(info->pdata->gpio_ldo_en, 0); + msleep(CHIP_OFF_DELAY); + } else { + gpio_direction_output(info->pdata->gpio_ldo_en, 1); + + /* zxt power on sequence */ + if (ctl == POWER_ON_SEQUENCE) { + msleep(CHIP_ON_DELAY); + return bt541_power_sequence(info); + } + } + } + return true; +} + +#if TOUCH_ONESHOT_UPGRADE +static bool ts_check_need_upgrade(struct bt541_ts_info *info, + u16 cur_version, u16 cur_minor_version, u16 cur_reg_version, u16 cur_hw_id) +{ + u16 new_version; + u16 new_minor_version; + u16 new_reg_version; + /* u16 new_chip_code;*/ +#if CHECK_HWID + u16 new_hw_id; +#endif + new_version = (u16) (m_firmware_data[52] | (m_firmware_data[53]<<8)); + new_minor_version = (u16) (m_firmware_data[56] | (m_firmware_data[57]<<8)); + new_reg_version = (u16) (m_firmware_data[60] | (m_firmware_data[61]<<8)); + /* new_chip_code = (u16) (m_firmware_data[64] | (m_firmware_data[65]<<8));*/ + +#if CHECK_HWID + new_hw_id = (u16)(m_firmware_data[0x7528] | (m_firmware_data[0x7529]<<8)); + dev_info(&info->client->dev, "cur HW_ID = 0x%x, new HW_ID = 0x%x\n", + cur_hw_id, new_hw_id); +#endif + + dev_info(&info->client->dev, "cur version = 0x%x, new version = 0x%x\n", + cur_version, new_version); + + dev_info(&info->client->dev, "cur minor version = 0x%x, new minor version = 0x%x\n", + cur_minor_version, new_minor_version); + dev_info(&info->client->dev, "cur reg data version = 0x%x, new reg data version = 0x%x\n", + cur_reg_version, new_reg_version); + + if (cal_mode) { + dev_info(&info->client->dev, "didn't update TSP F/W!! in CAL MODE\n"); + return false; + } + + if (cur_version > 0xFF) + return true; + if (cur_version < new_version) + return true; + else if (cur_version > new_version) + return false; +#if CHECK_HWID + if (cur_hw_id != new_hw_id) + return true; +#endif + if (cur_minor_version < new_minor_version) + return true; + else if (cur_minor_version > new_minor_version) + return false; + if (cur_reg_version < new_reg_version) + return true; + + return false; +} +#endif + +#define TC_SECTOR_SZ 8 + +#ifdef SUPPORTED_USE_DUAL_FW +static void ts_check_hwid_in_fatal_state(struct bt541_ts_info *info) +{ + /*u16 flash_addr;*/ + u8 check_data[80]; + int i; + u16 hw_id0, hw_id1_1, hw_id1_2; + int retry = 0; +retry_fatal: + bt541_power_control(info, POWER_OFF); + bt541_power_control(info, POWER_ON); + mdelay(10); + if (write_reg(info->client, 0xc000, 0x0001) != I2C_SUCCESS) { + dev_err(&info->client->dev, "power sequence error (vendor cmd enable)\n"); + goto fail_check_hwid; + } + udelay(10); + if (write_cmd(info->client, 0xc004) != I2C_SUCCESS) { + dev_err(&info->client->dev, "power sequence error (intn clear)\n"); + goto fail_check_hwid; + } + udelay(10); + if (write_reg(info->client, 0xc002, 0x0001) != I2C_SUCCESS) { + dev_err(&info->client->dev, "power sequence error (nvm init)\n"); + goto fail_check_hwid; + } + /*dev_err(&info->client->dev, "init flash\n");*/ + mdelay(5); + if (write_reg(info->client, 0xc003, 0x0000) != I2C_SUCCESS) { + dev_err(&info->client->dev, "fail to write nvm vpp on\n"); + goto fail_check_hwid; + } + if (write_reg(info->client, 0xc104, 0x0000) != I2C_SUCCESS) { + dev_err(&info->client->dev, "fail to write nvm wp disable\n"); + goto fail_check_hwid; + } + /*dev_err(&info->client->dev, "init flash\n");*/ + if (write_cmd(info->client, BT541_INIT_FLASH) != I2C_SUCCESS) { + dev_err(&info->client->dev, "failed to init flash\n"); + goto fail_check_hwid; + } + /*dev_err(&info->client->dev, "read firmware data\n");*/ + for (i = 0; i < 80; i += TC_SECTOR_SZ) { + if (read_firmware_data(info->client, + BT541_READ_FLASH, + (u8 *)&check_data[i], TC_SECTOR_SZ) < 0) { + dev_err(&info->client->dev, "error : read zinitix tc firmare\n"); + goto fail_check_hwid; + } + } + hw_id0 = check_data[48] + check_data[49]*256; + hw_id1_1 = check_data[70]; + hw_id1_2 = check_data[71]; + + /*dev_err(&info->client->dev, "eeprom hw id = %d, %d, %d\n", hw_id0, hw_id1_1, hw_id1_2);*/ + + if (hw_id1_1 == hw_id1_2 && hw_id0 != hw_id1_1) + info->cap_info.hw_id = hw_id1_1; + else + info->cap_info.hw_id = hw_id0; + + dev_err(&info->client->dev, "hw id = %d\n", info->cap_info.hw_id); + mdelay(5); + return; + +fail_check_hwid: + if (retry++ < 3) + goto retry_fatal; + dev_err(&info->client->dev, "fail to check hw id\n"); + mdelay(5); +} +#endif + +static u8 ts_upgrade_firmware(struct bt541_ts_info *info, + const u8 *firmware_data, u32 size) +{ + struct i2c_client *client = info->client; + u16 flash_addr; + u16 reg_val; + u8 *verify_data; + int retry_cnt = 0; + int i; + int page_sz = 0; + u16 chip_code; + + verify_data = kzalloc(size, GFP_KERNEL); + if (verify_data == NULL) { + zinitix_printk(KERN_ERR "cannot alloc verify buffer\n"); + return false; + } +#ifdef SUPPORTED_USE_DUAL_FW + if (read_data(client, BT541_MODULE_ID, (u8 *)&cap->module_id, 2) < 0) + dev_err(&client->dev, "Failed to read Modul ID\n"); +#endif +retry_upgrade: + bt541_power_control(info, POWER_OFF); + bt541_power_control(info, POWER_ON); + mdelay(10); + + if (write_reg(client, 0xc000, 0x0001) != I2C_SUCCESS) { + zinitix_printk("power sequence error (vendor cmd enable)\n"); + goto fail_upgrade; + } + + udelay(10); + + if (read_data(client, 0xcc00, (u8 *)&chip_code, 2) < 0) { + zinitix_printk("failed to read chip code\n"); + goto fail_upgrade; + } + + zinitix_printk("chip code = 0x%x\n", chip_code); + page_sz = 128; + udelay(10); + + if (write_cmd(client, 0xc004) != I2C_SUCCESS) { + zinitix_printk("power sequence error (intn clear)\n"); + goto fail_upgrade; + } + + udelay(10); + + if (write_reg(client, 0xc002, 0x0001) != I2C_SUCCESS) { + zinitix_printk("power sequence error (nvm init)\n"); + goto fail_upgrade; + } + + mdelay(5); + + zinitix_printk(KERN_INFO "init flash\n"); + + if (write_reg(client, 0xc003, 0x0001) != I2C_SUCCESS) { + zinitix_printk("failed to write nvm vpp on\n"); + goto fail_upgrade; + } + + if (write_reg(client, 0xc104, 0x0001) != I2C_SUCCESS) { + zinitix_printk("failed to write nvm wp disable\n"); + goto fail_upgrade; + } + + if (write_cmd(client, BT541_INIT_FLASH) != I2C_SUCCESS) { + zinitix_printk(KERN_INFO "failed to init flash\n"); + goto fail_upgrade; + } + + zinitix_printk(KERN_INFO "writing firmware data\n"); + for (flash_addr = 0; flash_addr < size; ) { + for (i = 0; i < page_sz / TC_SECTOR_SZ; i++) { + /*zinitix_debug_msg("write :addr=%04x, len=%d\n", flash_addr, TC_SECTOR_SZ);*/ + /*zinitix_printk(KERN_INFO "writing :addr = %04x, len=%d \n", flash_addr, TC_SECTOR_SZ);*/ + if (write_data(client, + BT541_WRITE_FLASH, + (u8 *)&firmware_data[flash_addr], TC_SECTOR_SZ) < 0) { + zinitix_printk(KERN_INFO"error : write zinitix tc firmare\n"); + goto fail_upgrade; + } + flash_addr += TC_SECTOR_SZ; + udelay(100); + } + + mdelay(30); /*for fuzing delay*/ + } + + if (write_reg(client, 0xc003, 0x0000) != I2C_SUCCESS) { + zinitix_printk("nvm write vpp off\n"); + goto fail_upgrade; + } + + if (write_reg(client, 0xc104, 0x0000) != I2C_SUCCESS) { + zinitix_printk("nvm wp enable\n"); + goto fail_upgrade; + } + + zinitix_printk(KERN_INFO "init flash\n"); + + if (write_cmd(client, BT541_INIT_FLASH) != I2C_SUCCESS) { + zinitix_printk(KERN_INFO "failed to init flash\n"); + goto fail_upgrade; + } + + zinitix_printk(KERN_INFO "read firmware data\n"); + + for (flash_addr = 0; flash_addr < size; ) { + for (i = 0; i < page_sz / TC_SECTOR_SZ; i++) { + /*zinitix_debug_msg("read :addr=%04x, len=%d\n",flash_addr, TC_SECTOR_SZ);*/ + if (read_firmware_data(client, + BT541_READ_FLASH, + (u8 *)&verify_data[flash_addr], TC_SECTOR_SZ) < 0) { + dev_err(&client->dev, "Failed to read firmare\n"); + + goto fail_upgrade; + } + + flash_addr += TC_SECTOR_SZ; + } + } + /* verify */ + dev_info(&client->dev, "verify firmware data\n"); + if (memcmp((u8 *)&firmware_data[0], (u8 *)&verify_data[0], size) == 0) { + dev_info(&client->dev, "upgrade finished\n"); + kfree(verify_data); + bt541_power_control(info, POWER_OFF); + bt541_power_control(info, POWER_ON_SEQUENCE); + + for (i = 0; i < 5; i++) { + if (read_data(client, BT541_CHECKSUM_RESULT, + (u8 *)®_val, 2) < 0) { + mdelay(10); + continue; + } + } + + if (reg_val != 0x55aa) { + dev_err(&client->dev, "upgrade done, but firmware checksum fail. reg_val = %x\n", reg_val); + goto fail_upgrade; + } +#ifdef SUPPORTED_USE_DUAL_FW + if (read_data(client, BT541_MODULE_ID, (u8 *)®_val, 2) < 0) + dev_err(&client->dev, "Failed to read Modul ID\n"); + else { + if (cap->module_id != reg_val) { + write_reg(client, BT541_MODULE_ID, cap->module_id); + write_reg(client, 0xc003, 0x0001); + write_reg(client, 0xc104, 0x0001); + udelay(100); + if (write_cmd(client, BT541_SAVE_STATUS_CMD) != I2C_SUCCESS) + goto fail_upgrade; + + mdelay(1000); + write_reg(client, 0xc003, 0x0000); + write_reg(client, 0xc104, 0x0000); + } + } +#endif + return true; + } + +fail_upgrade: + bt541_power_control(info, POWER_OFF); + + if (retry_cnt++ < INIT_RETRY_CNT) { + dev_err(&client->dev, "upgrade failed : so retry... (%d)\n", retry_cnt); + goto retry_upgrade; + } + + if (verify_data != NULL) + kfree(verify_data); + + dev_info(&client->dev, "Failed to upgrade\n"); + + return false; +} + +static bool ts_hw_calibration(struct bt541_ts_info *info) +{ + struct i2c_client *client = info->client; + u16 chip_eeprom_info; + int time_out = 0; + + if (write_reg(client, + BT541_TOUCH_MODE, 0x07) != I2C_SUCCESS) + return false; + mdelay(10); + write_cmd(client, BT541_CLEAR_INT_STATUS_CMD); + mdelay(10); + write_cmd(client, BT541_CLEAR_INT_STATUS_CMD); + mdelay(50); + write_cmd(client, BT541_CLEAR_INT_STATUS_CMD); + mdelay(10); + + if (write_cmd(client, + BT541_CALIBRATE_CMD) != I2C_SUCCESS) + return false; + + if (write_cmd(client, + BT541_CLEAR_INT_STATUS_CMD) != I2C_SUCCESS) + return false; + + mdelay(10); + write_cmd(client, BT541_CLEAR_INT_STATUS_CMD); + + /* wait for h/w calibration*/ + do { + mdelay(500); + write_cmd(client, + BT541_CLEAR_INT_STATUS_CMD); + + if (read_data(client, + BT541_EEPROM_INFO_REG, + (u8 *)&chip_eeprom_info, 2) < 0) + return false; + + zinitix_debug_msg("touch eeprom info = 0x%04X\r\n", + chip_eeprom_info); + if (!zinitix_bit_test(chip_eeprom_info, 0)) + break; + + if (time_out++ == 4) { + write_cmd(client, BT541_CALIBRATE_CMD); + mdelay(10); + write_cmd(client, BT541_CLEAR_INT_STATUS_CMD); + dev_err(&client->dev, "h/w calibration retry timeout.\n"); + } + + if (time_out++ > 10) { + dev_err(&client->dev, "h/w calibration timeout.\n"); + break; + } + + } while (1); + + if (write_reg(client, + BT541_TOUCH_MODE, TOUCH_POINT_MODE) != I2C_SUCCESS) + return false; + + if (info->cap_info.ic_int_mask != 0) { + if (write_reg(client, + BT541_INT_ENABLE_FLAG, + info->cap_info.ic_int_mask) + != I2C_SUCCESS) + return false; + } + + write_reg(client, 0xc003, 0x0001); + write_reg(client, 0xc104, 0x0001); + udelay(100); + if (write_cmd(client, + BT541_SAVE_CALIBRATION_CMD) != I2C_SUCCESS) + return false; + + mdelay(1000); + write_reg(client, 0xc003, 0x0000); + write_reg(client, 0xc104, 0x0000); + return true; +} + +static bool init_touch(struct bt541_ts_info *info, bool fw_oneshot_upgrade) +{ + struct bt541_ts_platform_data *pdata = info->pdata; + struct i2c_client *client = info->client; + struct capa_info *cap = &(info->cap_info); + u16 reg_val; + int i; + u16 chip_eeprom_info; +#if USE_CHECKSUM + u16 chip_check_sum; + u8 checksum_err; +#endif + int retry_cnt = 0; + +retry_init: + for (i = 0; i < INIT_RETRY_CNT; i++) { + if (read_data(client, BT541_EEPROM_INFO_REG, + (u8 *)&chip_eeprom_info, 2) < 0) { + dev_err(&client->dev, "Failed to read eeprom info(%d)\n", i); + mdelay(10); + continue; + } else + break; + } + + if (i == INIT_RETRY_CNT) + goto fail_init; + +#if USE_CHECKSUM + dev_info(&client->dev, "%s: Check checksum\n", __func__); + + checksum_err = 0; + + for (i = 0; i < INIT_RETRY_CNT; i++) { + if (read_data(client, BT541_CHECKSUM_RESULT, + (u8 *)&chip_check_sum, 2) < 0) { + mdelay(10); + continue; + } + +#if defined(TSP_VERBOSE_DEBUG) + dev_info(&client->dev, "0x%04X\n", chip_check_sum); +#endif + + if (chip_check_sum == 0x55aa) + break; + else { + checksum_err = 1; + break; + } + } + + if (i == INIT_RETRY_CNT || checksum_err) { + dev_err(&client->dev, "Failed to check firmware data\n"); + if (checksum_err == 1 && retry_cnt < INIT_RETRY_CNT) + retry_cnt = INIT_RETRY_CNT; + + goto fail_init; + } +#endif + + if (write_cmd(client, BT541_SWRESET_CMD) != I2C_SUCCESS) { + dev_err(&client->dev, "Failed to write reset command\n"); + goto fail_init; + } + + cap->button_num = SUPPORTED_BUTTON_NUM; + + reg_val = 0; + zinitix_bit_set(reg_val, BIT_PT_CNT_CHANGE); + zinitix_bit_set(reg_val, BIT_DOWN); + zinitix_bit_set(reg_val, BIT_MOVE); + zinitix_bit_set(reg_val, BIT_UP); +#if (TOUCH_POINT_MODE == 2) + zinitix_bit_set(reg_val, BIT_PALM); + zinitix_bit_set(reg_val, BIT_PALM_REJECT); +#endif + + if (cap->button_num > 0) + zinitix_bit_set(reg_val, BIT_ICON_EVENT); + + cap->ic_int_mask = reg_val; + + if (write_reg(client, BT541_INT_ENABLE_FLAG, 0x0) != I2C_SUCCESS) + goto fail_init; + + dev_info(&client->dev, "%s: Send reset command\n", __func__); + if (write_cmd(client, BT541_SWRESET_CMD) != I2C_SUCCESS) + goto fail_init; + + /* get chip information */ + if (read_data(client, BT541_VENDOR_ID, + (u8 *)&cap->vendor_id, 2) < 0) { + zinitix_printk("failed to read chip revision\n"); + goto fail_init; + } + + + if (read_data(client, BT541_CHIP_REVISION, + (u8 *)&cap->ic_revision, 2) < 0) { + zinitix_printk("failed to read chip revision\n"); + goto fail_init; + } + + cap->ic_fw_size = 32*1024; + + if (read_data(client, BT541_HW_ID, (u8 *)&cap->hw_id, 2) < 0) { + dev_err(&client->dev, "Failed to read hw id\n"); + goto fail_init; + } +#ifdef SUPPORTED_USE_DUAL_FW + bt541_firmware_check(); +#endif + if (read_data(client, BT541_THRESHOLD, (u8 *)&cap->threshold, 2) < 0) + goto fail_init; + + if (read_data(client, BT541_BUTTON_SENSITIVITY, + (u8 *)&cap->key_threshold, 2) < 0) + goto fail_init; + + /* if (read_data(client, BT541_DUMMY_BUTTON_SENSITIVITY, + (u8 *)&cap->dummy_threshold, 2) < 0) + goto fail_init;*/ + + if (read_data(client, BT541_TOTAL_NUMBER_OF_X, + (u8 *)&cap->x_node_num, 2) < 0) + goto fail_init; + + if (read_data(client, BT541_TOTAL_NUMBER_OF_Y, + (u8 *)&cap->y_node_num, 2) < 0) + goto fail_init; + + cap->total_node_num = cap->x_node_num * cap->y_node_num; + + + if (read_data(client, BT541_SHIFT_VALUE, + (u8 *)&cap->shift_value, 2) < 0) + goto fail_init; + zinitix_debug_msg("Shift value = %d\n", cap->shift_value); + + + if (read_data(client, BT541_DND_N_COUNT, + (u8 *)&cap->N_cnt, 2) < 0) + goto fail_init; + zinitix_debug_msg("N count = %d\n", cap->N_cnt); + + if (read_data(client, BT541_DND_U_COUNT, + (u8 *)&cap->U_cnt, 2) < 0) + goto fail_init; + zinitix_debug_msg("u count = %d\n", cap->U_cnt); + + if (read_data(client, BT541_AFE_FREQUENCY, + (u8 *)&cap->afe_frequency, 2) < 0) + goto fail_init; + zinitix_debug_msg("afe frequency = %d\n", cap->afe_frequency); + + /* get chip firmware version */ + if (read_data(client, BT541_FIRMWARE_VERSION, + (u8 *)&cap->fw_version, 2) < 0) + goto fail_init; + + if (read_data(client, BT541_MINOR_FW_VERSION, + (u8 *)&cap->fw_minor_version, 2) < 0) + goto fail_init; + + if (read_data(client, BT541_DATA_VERSION_REG, + (u8 *)&cap->reg_data_version, 2) < 0) + goto fail_init; + +#if TOUCH_ONESHOT_UPGRADE + if (fw_oneshot_upgrade && (ts_check_need_upgrade(info, cap->fw_version, + cap->fw_minor_version, cap->reg_data_version, + cap->hw_id) == true)) { + zinitix_printk("start upgrade firmware\n"); + + if (ts_upgrade_firmware(info, m_firmware_data, + cap->ic_fw_size) == false) + goto fail_init; + + if (ts_hw_calibration(info) == false) + goto fail_init; + + /* disable chip interrupt */ + if (write_reg(client, BT541_INT_ENABLE_FLAG, 0) != I2C_SUCCESS) + goto fail_init; + + /* get chip firmware version */ + if (read_data(client, BT541_FIRMWARE_VERSION, + (u8 *)&cap->fw_version, 2) < 0) + goto fail_init; + + if (read_data(client, BT541_MINOR_FW_VERSION, + (u8 *)&cap->fw_minor_version, 2) < 0) + goto fail_init; + + if (read_data(client, BT541_DATA_VERSION_REG, + (u8 *)&cap->reg_data_version, 2) < 0) + goto fail_init; +#ifdef SUPPORTED_USE_DUAL_FW + if (read_data(client, BT541_HW_ID, + (u8 *)&cap->hw_id, 2) < 0) + goto fail_init; + bt541_firmware_check(); + if (read_data(client, BT541_VENDOR_ID, + (u8 *)&cap->vendor_id, 2) < 0) + goto fail_init; +#endif + } +#endif + + if (read_data(client, BT541_EEPROM_INFO_REG, + (u8 *)&chip_eeprom_info, 2) < 0) + goto fail_init; + + if (zinitix_bit_test(chip_eeprom_info, 0)) { /* hw calibration bit*/ + if (ts_hw_calibration(info) == false) + goto fail_init; + + /* disable chip interrupt */ + if (write_reg(client, BT541_INT_ENABLE_FLAG, 0) != I2C_SUCCESS) + goto fail_init; + } + + /* initialize */ + if (write_reg(client, BT541_X_RESOLUTION, + (u16)pdata->x_resolution) != I2C_SUCCESS) + goto fail_init; + + if (write_reg(client, BT541_Y_RESOLUTION, + (u16)pdata->y_resolution) != I2C_SUCCESS) + goto fail_init; + + cap->MinX = (u32)0; + cap->MinY = (u32)0; + cap->MaxX = (u32)pdata->x_resolution; + cap->MaxY = (u32)pdata->y_resolution; + + if (write_reg(client, BT541_BUTTON_SUPPORTED_NUM, + (u16)cap->button_num) != I2C_SUCCESS) + goto fail_init; + + if (write_reg(client, BT541_SUPPORTED_FINGER_NUM, + (u16)MAX_SUPPORTED_FINGER_NUM) != I2C_SUCCESS) + goto fail_init; + + cap->multi_fingers = MAX_SUPPORTED_FINGER_NUM; + zinitix_debug_msg("max supported finger num = %d\r\n", + cap->multi_fingers); + + cap->gesture_support = 0; + zinitix_debug_msg("set other configuration\r\n"); + + if (write_reg(client, BT541_INITIAL_TOUCH_MODE, + TOUCH_POINT_MODE) != I2C_SUCCESS) + goto fail_init; + + if (write_reg(client, BT541_TOUCH_MODE, info->touch_mode) != I2C_SUCCESS) + goto fail_init; + +#if ZINITIX_I2C_CHECKSUM + if (read_data(client, ZINITIX_INTERNAL_FLAG_02, + (u8 *)®_val, 2) < 0) + goto fail_init; + cap->i2s_checksum = !(!zinitix_bit_test(reg_val, 15)); + printk("use i2s checksum = %d\r\n", + cap->i2s_checksum); +#endif + + bt541_set_ta_status(info); + bt541_set_optional_mode(info, true); + /* soft calibration */ + /* if (write_cmd(client, BT541_CALIBRATE_CMD) != I2C_SUCCESS) + goto fail_init;*/ + + if (write_reg(client, BT541_INT_ENABLE_FLAG, + cap->ic_int_mask) != I2C_SUCCESS) + goto fail_init; + + /* read garbage data */ + for (i = 0; i < 10; i++) { + write_cmd(client, BT541_CLEAR_INT_STATUS_CMD); + udelay(10); + } + + if (info->touch_mode != TOUCH_POINT_MODE) { /* Test Mode */ + if (write_reg(client, BT541_DELAY_RAW_FOR_HOST, + RAWDATA_DELAY_FOR_HOST) != I2C_SUCCESS) { + dev_err(&client->dev, "%s: Failed to set DELAY_RAW_FOR_HOST\n", + __func__); + + goto fail_init; + } + } +#if ESD_TIMER_INTERVAL + if (write_reg(client, BT541_PERIODICAL_INTERRUPT_INTERVAL, + SCAN_RATE_HZ * ESD_TIMER_INTERVAL) != I2C_SUCCESS) + goto fail_init; + + read_data(client, BT541_PERIODICAL_INTERRUPT_INTERVAL, (u8 *)®_val, 2); +#if defined(TSP_VERBOSE_DEBUG) + dev_info(&client->dev, "Esd timer register = %d\n", reg_val); +#endif +#endif + tsp_charger_status_cb = tsp_charger_enable; + zinitix_debug_msg("successfully initialized\r\n"); + return true; + +fail_init: + if (cal_mode) { + dev_err(&client->dev,"didn't update TSP F/W!! in CAL MODE\n"); + return false; + } + if (++retry_cnt <= INIT_RETRY_CNT) { + bt541_power_control(info, POWER_OFF); + bt541_power_control(info, POWER_ON_SEQUENCE); + + zinitix_debug_msg("retry to initiallize(retry cnt = %d)\r\n", + retry_cnt); + goto retry_init; + + } else if (retry_cnt == INIT_RETRY_CNT+1) { + cap->ic_fw_size = 32*1024; + + zinitix_debug_msg("retry to initiallize(retry cnt = %d)\r\n", retry_cnt); +#if TOUCH_FORCE_UPGRADE +#ifdef SUPPORTED_USE_DUAL_FW + ts_check_hwid_in_fatal_state(info); + bt541_firmware_check(); +#endif + if (ts_upgrade_firmware(info, m_firmware_data, + cap->ic_fw_size) == false) { + zinitix_printk("upgrade failed\n"); + return false; + } + + mdelay(100); + + /* hw calibration and make checksum */ + if (ts_hw_calibration(info) == false) { + zinitix_printk("failed to initiallize\r\n"); + return false; + } + goto retry_init; +#endif + } + + dev_err(&client->dev, "Failed to initiallize\n"); + + return false; +} + +static bool mini_init_touch(struct bt541_ts_info *info) +{ + struct bt541_ts_platform_data *pdata = info->pdata; + struct i2c_client *client = info->client; + int i; +#if USE_CHECKSUM + u16 chip_check_sum; + + /*dev_info(&client->dev, "check checksum\n");*/ + + if (read_data(client, BT541_CHECKSUM_RESULT, + (u8 *)&chip_check_sum, 2) < 0) + goto fail_mini_init; + + if (chip_check_sum != 0x55aa) { + dev_err(&client->dev, "Failed to check firmware" + " checksum(0x%04x)\n", chip_check_sum); + + goto fail_mini_init; + } +#endif + + if (write_cmd(client, BT541_SWRESET_CMD) != I2C_SUCCESS) { + dev_info(&client->dev, "Failed to write reset command\n"); + + goto fail_mini_init; + } + + /* initialize */ + if (write_reg(client, BT541_X_RESOLUTION, + (u16)(pdata->x_resolution)) != I2C_SUCCESS) + goto fail_mini_init; + + if (write_reg(client,BT541_Y_RESOLUTION, + (u16)(pdata->y_resolution)) != I2C_SUCCESS) + goto fail_mini_init; + + /*dev_info(&client->dev, "touch max x = %d\r\n", pdata->x_resolution); + dev_info(&client->dev, "touch max y = %d\r\n", pdata->y_resolution);*/ + + if (write_reg(client, BT541_BUTTON_SUPPORTED_NUM, + (u16)info->cap_info.button_num) != I2C_SUCCESS) + goto fail_mini_init; + + if (write_reg(client, BT541_SUPPORTED_FINGER_NUM, + (u16)MAX_SUPPORTED_FINGER_NUM) != I2C_SUCCESS) + goto fail_mini_init; + + if (write_reg(client, BT541_INITIAL_TOUCH_MODE, + TOUCH_POINT_MODE) != I2C_SUCCESS) + goto fail_mini_init; + + if (write_reg(client, BT541_TOUCH_MODE, + info->touch_mode) != I2C_SUCCESS) + goto fail_mini_init; + + bt541_set_ta_status(info); + bt541_set_optional_mode(info, true); + /* soft calibration */ + if (write_cmd(client, BT541_CALIBRATE_CMD) != I2C_SUCCESS) + goto fail_mini_init; + + if (write_reg(client, BT541_INT_ENABLE_FLAG, + info->cap_info.ic_int_mask) != I2C_SUCCESS) + goto fail_mini_init; + + /* read garbage data */ + for (i = 0; i < 10; i++) { + write_cmd(client, BT541_CLEAR_INT_STATUS_CMD); + udelay(10); + } + + if (info->touch_mode != TOUCH_POINT_MODE) { + if (write_reg(client, BT541_DELAY_RAW_FOR_HOST, + RAWDATA_DELAY_FOR_HOST) != I2C_SUCCESS) { + dev_err(&client->dev, "Failed to set BT541_DELAY_RAW_FOR_HOST\n"); + + goto fail_mini_init; + } + } + +#if ESD_TIMER_INTERVAL + if (write_reg(client, BT541_PERIODICAL_INTERRUPT_INTERVAL, + SCAN_RATE_HZ * ESD_TIMER_INTERVAL) != I2C_SUCCESS) + goto fail_mini_init; + + esd_timer_start(CHECK_ESD_TIMER, info); +#if defined(TSP_VERBOSE_DEBUG) + dev_info(&client->dev, "Started esd timer\n"); +#endif +#endif + + dev_info(&client->dev, "Successfully mini initialized\r\n"); + return true; + +fail_mini_init: + dev_err(&client->dev, "Failed to initialize mini init\n"); + bt541_power_control(info, POWER_OFF); + bt541_power_control(info, POWER_ON_SEQUENCE); + + if (init_touch(info, true) == false) { + dev_err(&client->dev, "Failed to initialize\n"); + + return false; + } + +#if ESD_TIMER_INTERVAL + esd_timer_start(CHECK_ESD_TIMER, info); +#if defined(TSP_VERBOSE_DEBUG) + dev_info(&client->dev, "Started esd timer\n"); +#endif +#endif + return true; +} + +static void clear_report_data(struct bt541_ts_info *info) +{ + int i; + u8 reported = 0; + u8 sub_status; + + for (i = 0; i < info->cap_info.button_num; i++) { + if (info->button[i] == ICON_BUTTON_DOWN) { + info->button[i] = ICON_BUTTON_UP; + input_report_key(info->input_dev, BUTTON_MAPPING_KEY[i], 0); + reported = true; +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + printk(KERN_INFO "Button up = %d\n", i); +#else + printk(KERN_INFO "Button up\n"); +#endif + } + } + + for (i = 0; i < info->cap_info.multi_fingers; i++) { + sub_status = info->reported_touch_info.coord[i].sub_status; + if (zinitix_bit_test(sub_status, SUB_BIT_EXIST)) { + input_mt_slot(info->input_dev, i); + input_mt_report_slot_state(info->input_dev, MT_TOOL_FINGER, 0); + reported = true; + if (!m_ts_debug_mode && TSP_NORMAL_EVENT_MSG) + printk(KERN_INFO "[TSP] R %02d\r\n", i); + } + info->reported_touch_info.coord[i].sub_status = 0; + } + + if (reported) + input_sync(info->input_dev); + +} + +#define PALM_REPORT_WIDTH 200 +#define PALM_REJECT_WIDTH 255 + +static irqreturn_t bt541_touch_work(int irq, void *data) +{ + struct bt541_ts_info* info = (struct bt541_ts_info*)data; + struct bt541_ts_platform_data *pdata = info->pdata; + struct i2c_client *client = info->client; + int i; + u8 sub_status; + u8 prev_sub_status; + u32 x, y, maxX, maxY; + u32 w; + u32 tmp; + u8 palm = 0; + + if (gpio_get_value(info->pdata->gpio_int)) { + dev_err(&client->dev, "Invalid interrupt\n"); + + return IRQ_HANDLED; + } + + if (down_trylock(&info->work_lock)) { + dev_err(&client->dev, "%s: Failed to occupy work lock\n", __func__); + write_cmd(client, BT541_CLEAR_INT_STATUS_CMD); + + return IRQ_HANDLED; + } +#if ESD_TIMER_INTERVAL + esd_timer_stop(info); +#endif + + if (info->work_state != NOTHING) { + dev_err(&client->dev, "%s: Other process occupied\n", __func__); + udelay(DELAY_FOR_SIGNAL_DELAY); + + if (!gpio_get_value(info->pdata->gpio_int)) { + write_cmd(client, BT541_CLEAR_INT_STATUS_CMD); + udelay(DELAY_FOR_SIGNAL_DELAY); + } + + goto out; + } + + info->work_state = NORMAL; + +#if ZINITIX_I2C_CHECKSUM + i = 0; + if (ts_read_coord(info) == false || info->touch_info.status == 0xffff + || info->touch_info.status == 0x1) { + /* more retry*/ + for (i = 1; i < 50; i++) { /* about 10ms*/ + if (!(ts_read_coord(info) == false || info->touch_info.status == 0xffff + || info->touch_info.status == 0x1)) + break; + } + + } + + if (i == 50) { + dev_err(&client->dev, "Failed to read info coord\n"); + bt541_power_control(info, POWER_OFF); + bt541_power_control(info, POWER_ON_SEQUENCE); + + clear_report_data(info); + mini_init_touch(info); + + goto out; + } +#else + if (ts_read_coord(info) == false || info->touch_info.status == 0xffff + || info->touch_info.status == 0x1) { /* maybe desirable reset */ + dev_err(&client->dev, "Failed to read info coord\n"); + bt541_power_control(info, POWER_OFF); + bt541_power_control(info, POWER_ON_SEQUENCE); + + clear_report_data(info); + mini_init_touch(info); + + goto out; + } +#endif + /* invalid : maybe periodical repeated int. */ + if (info->touch_info.status == 0x0) + goto out; + + if (zinitix_bit_test(info->touch_info.status, BIT_ICON_EVENT)) { + if (read_data(info->client, BT541_ICON_STATUS_REG, + (u8 *)(&info->icon_event_reg), 2) < 0) { + dev_err(&client->dev, "Failed to read button info\n"); + write_cmd(client, BT541_CLEAR_INT_STATUS_CMD); + + goto out; + } + + for (i = 0; i < info->cap_info.button_num; i++) { + if (zinitix_bit_test(info->icon_event_reg, + (BIT_O_ICON0_DOWN + i))) { + info->button[i] = ICON_BUTTON_DOWN; + input_report_key(info->input_dev, BUTTON_MAPPING_KEY[i], 1); +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + dev_info(&client->dev, "Button down = %d\n", i); +#else + dev_info(&client->dev, "Button down\n"); +#endif + } + } + + for (i = 0; i < info->cap_info.button_num; i++) { + if (zinitix_bit_test(info->icon_event_reg, + (BIT_O_ICON0_UP + i))) { + info->button[i] = ICON_BUTTON_UP; + input_report_key(info->input_dev, BUTTON_MAPPING_KEY[i], 0); +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + dev_info(&client->dev, "Button up = %d\n", i); +#else + dev_info(&client->dev, "Button up\n"); +#endif + } + } + } + +#ifdef SUPPORTED_PALM_TOUCH + if (zinitix_bit_test(info->touch_info.status, BIT_PALM)) { +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + dev_info(&client->dev, "Palm report\n"); +#endif + palm = 1; + } + + if (zinitix_bit_test(info->touch_info.status, BIT_PALM_REJECT)) { +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + dev_info(&client->dev, "Palm reject\n"); +#endif + palm = 2; + } +#endif + for (i = 0; i < info->cap_info.multi_fingers; i++) { + sub_status = info->touch_info.coord[i].sub_status; + prev_sub_status = info->reported_touch_info.coord[i].sub_status; + + if (zinitix_bit_test(sub_status, SUB_BIT_EXIST)) { + x = info->touch_info.coord[i].x; + y = info->touch_info.coord[i].y; + w = info->touch_info.coord[i].width; + + /* transformation from touch to screen orientation */ + if (pdata->orientation & TOUCH_V_FLIP) + y = info->cap_info.MaxY + + info->cap_info.MinY - y; + + if (pdata->orientation & TOUCH_H_FLIP) + x = info->cap_info.MaxX + + info->cap_info.MinX - x; + + maxX = info->cap_info.MaxX; + maxY = info->cap_info.MaxY; + + if (pdata->orientation & TOUCH_XY_SWAP) { + zinitix_swap_v(x, y, tmp); + zinitix_swap_v(maxX, maxY, tmp); + } + + if (x > maxX || y > maxY) { +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + dev_err(&client->dev, + "Invalid coord %d : x=%d, y=%d\n", i, x, y); +#endif + continue; + } + + info->touch_info.coord[i].x = x; + info->touch_info.coord[i].y = y; + if (zinitix_bit_test(sub_status, SUB_BIT_DOWN)) + { +#if TOUCH_BOOSTER + if (!min_handle) + { + min_handle = cpufreq_limit_min_freq(touch_cpufreq_lock, "TSP"); + if (IS_ERR(min_handle)) { + printk(KERN_ERR "[TSP] cannot get cpufreq_min lock %lu(%ld)\n", + touch_cpufreq_lock, PTR_ERR(min_handle)); + min_handle = NULL; + } + _store_cpu_num_min_limit(2); + dev_info(&client->dev, "cpu freq on\n"); + } + info->finger_cnt++; +#endif +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + dev_info(&client->dev, "Finger [%02d] x = %d, y = %d," + " w = %d\n", i, x, y, w); +#else + dev_info(&client->dev, "Finger down\n"); +#endif + } + if (w == 0) + w = 1; + + input_mt_slot(info->input_dev, i); + input_mt_report_slot_state(info->input_dev, MT_TOOL_FINGER, 1); + +#if (TOUCH_POINT_MODE == 2) + if (palm == 0) { + if (w >= PALM_REPORT_WIDTH) + w = PALM_REPORT_WIDTH - 10; + } else if (palm == 1) { /*palm report*/ + w = PALM_REPORT_WIDTH; + /* info->touch_info.coord[i].minor_width = PALM_REPORT_WIDTH;*/ + } else if (palm == 2) { /* palm reject*/ + /* x = y = 0;*/ + w = PALM_REJECT_WIDTH; + /* info->touch_info.coord[i].minor_width = PALM_REJECT_WIDTH;*/ + } +#endif + + input_report_abs(info->input_dev, ABS_MT_TOUCH_MAJOR, (u32)w); + input_report_abs(info->input_dev, ABS_MT_PRESSURE, (u32)w); + input_report_abs(info->input_dev, ABS_MT_WIDTH_MAJOR, + (u32)((palm == 1) ? w-40 : w)); +#if (TOUCH_POINT_MODE == 2) + input_report_abs(info->input_dev, + ABS_MT_TOUCH_MINOR, (u32)info->touch_info.coord[i].minor_width); + /* input_report_abs(info->input_dev, + ABS_MT_WIDTH_MINOR, (u32)info->touch_info.coord[i].minor_width);*/ +#ifdef SUPPORTED_PALM_TOUCH + /*input_report_abs(info->input_dev, ABS_MT_ANGLE, + (palm > 1)?70:info->touch_info.coord[i].angle - 90);*/ + /*dev_info(&client->dev, "finger [%02d] angle = %03d\n", i, + info->touch_info.coord[i].angle);*/ + input_report_abs(info->input_dev, ABS_MT_PALM, (palm > 0)?1:0); +#endif + /* input_report_abs(info->input_dev, ABS_MT_PALM, 1);*/ +#endif + + input_report_abs(info->input_dev, ABS_MT_POSITION_X, x); + input_report_abs(info->input_dev, ABS_MT_POSITION_Y, y); + } else if (zinitix_bit_test(sub_status, SUB_BIT_UP)|| + zinitix_bit_test(prev_sub_status, SUB_BIT_EXIST)) { +#if TOUCH_BOOSTER + info->finger_cnt--; + if (!info->finger_cnt) + { + cpufreq_limit_put(min_handle); + min_handle = NULL; + _store_cpu_num_min_limit(1); + dev_info(&client->dev, "cpu freq off\n"); + } +#endif +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + dev_info(&client->dev, "Finger [%02d] up\n", i); +#else + dev_info(&client->dev, "Finger up\n"); +#endif + memset(&info->touch_info.coord[i], 0x0, sizeof(struct coord)); + input_mt_slot(info->input_dev, i); + input_mt_report_slot_state(info->input_dev, MT_TOOL_FINGER, 0); + + } else { + memset(&info->touch_info.coord[i], 0x0, sizeof(struct coord)); + } + } + memcpy((char *)&info->reported_touch_info, (char *)&info->touch_info, + sizeof(struct point_info)); + input_sync(info->input_dev); + +out: + if (info->work_state == NORMAL) { +#if ESD_TIMER_INTERVAL + esd_timer_start(CHECK_ESD_TIMER, info); +#endif + info->work_state = NOTHING; + } + + up(&info->work_lock); + + return IRQ_HANDLED; +} + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void bt541_ts_late_resume(struct early_suspend *h) +{ + struct bt541_ts_info *info = misc_info; + //info = container_of(h, struct bt541_ts_info, early_suspend); + struct capa_info *cap = &(info->cap_info); + + if (info == NULL) + return; + zinitix_printk("late resume++\r\n"); + + down(&info->work_lock); + if (info->work_state != RESUME + && info->work_state != EALRY_SUSPEND) { + zinitix_printk("invalid work proceedure (%d)\r\n", + info->work_state); + up(&info->work_lock); + return; + } +#if 0 + write_cmd(info->client, BT541_WAKEUP_CMD); + mdelay(1); +#else + bt541_power_control(info, POWER_ON_SEQUENCE); +#endif + info->work_state = RESUME; + if (mini_init_touch(info) == false) + goto fail_late_resume; + + if (read_data(info->client, BT541_FIRMWARE_VERSION, (u8 *)&cap->fw_version, 2)) + ; + if (read_data(info->client, BT541_MINOR_FW_VERSION, (u8 *)&cap->fw_minor_version, 2)) + ; + if (read_data(info->client, BT541_DATA_VERSION_REG, (u8 *)&cap->reg_data_version, 2)) + ; + if (read_data(info->client, BT541_HW_ID, (u8 *)&cap->hw_id, 2)) + ; + if (read_data(info->client, BT541_VENDOR_ID, (u8 *)&cap->vendor_id, 2)) + ; +#ifdef SUPPORTED_USE_DUAL_FW + bt541_firmware_check(); +#endif + enable_irq(info->irq); + info->work_state = NOTHING; + up(&info->work_lock); + zinitix_printk("late resume--\n"); + return; +fail_late_resume: + zinitix_printk("failed to late resume\n"); + enable_irq(info->irq); + info->work_state = NOTHING; + up(&info->work_lock); + return; +} + +static void bt541_ts_early_suspend(struct early_suspend *h) +{ + struct bt541_ts_info *info = misc_info; + /*info = container_of(h, struct bt541_ts_info, early_suspend);*/ + + if (info == NULL) + return; + + zinitix_printk("early suspend++\n"); + + disable_irq(info->irq); +#if ESD_TIMER_INTERVAL + flush_work(&info->tmr_work); +#endif + + down(&info->work_lock); + if (info->work_state != NOTHING) { + zinitix_printk("invalid work proceedure (%d)\r\n", + info->work_state); + up(&info->work_lock); + enable_irq(info->irq); + return; + } + info->work_state = EALRY_SUSPEND; + + zinitix_debug_msg("clear all reported points\r\n"); + clear_report_data(info); + +#if ESD_TIMER_INTERVAL + /*write_reg(info->client, BT541_PERIODICAL_INTERRUPT_INTERVAL, 0);*/ + esd_timer_stop(info); +#if defined(TSP_VERBOSE_DEBUG) + dev_info(&info->client->dev, "Stopped esd timer\n"); +#endif +#endif + +#if 0 + write_reg(info->client, BT541_INT_ENABLE_FLAG, 0x0); + + udelay(100); + if (write_cmd(info->client, BT541_SLEEP_CMD) != I2C_SUCCESS) { + zinitix_printk("failed to enter into sleep mode\n"); + up(&info->work_lock); + return; + } +#else + bt541_power_control(info, POWER_OFF); +#endif +#if TOUCH_BOOSTER + if (min_handle) + { + dev_err(&info->client->dev,"[TSP] %s %d:: OOPs, Cpu was not in Normal Freq..\n", __func__, __LINE__); + + if (cpufreq_limit_put(min_handle) < 0) { + dev_err(&info->client->dev, "[TSP] Error in scaling down cpu frequency\n"); + } + + min_handle = NULL; + info->finger_cnt = 0; + dev_info(&info->client->dev, "cpu freq off\n"); + } +#endif + zinitix_printk("early suspend--\n"); + up(&info->work_lock); + return; +} +#endif /* CONFIG_HAS_EARLYSUSPEND */ + +#if defined(CONFIG_PM) && !defined(CONFIG_HAS_EARLYSUSPEND) +static int bt541_ts_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct bt541_ts_info *info = i2c_get_clientdata(client); + struct capa_info *cap = &(info->cap_info); + +#if defined(TSP_VERBOSE_DEBUG) + dev_info(&client->dev, "resume++\n"); +#endif + down(&info->work_lock); + if (info->work_state != SUSPEND) { + dev_err(&client->dev, "%s: Invalid work proceedure (%d)\n", + __func__, info->work_state); + up(&info->work_lock); + + return 0; + } + bt541_power_control(info, POWER_ON_SEQUENCE); + +#ifdef CONFIG_HAS_EARLYSUSPEND + info->work_state = RESUME; +#else + info->work_state = NOTHING; + if (mini_init_touch(info) == false) + dev_err(&client->dev, "Failed to resume\n"); + + if (read_data(client, BT541_FIRMWARE_VERSION, (u8 *)&cap->fw_version, 2)) + ; + if (read_data(client, BT541_MINOR_FW_VERSION, (u8 *)&cap->fw_minor_version, 2)) + ; + if (read_data(client, BT541_DATA_VERSION_REG, (u8 *)&cap->reg_data_version, 2)) + ; + if (read_data(client, BT541_HW_ID, (u8 *)&cap->hw_id, 2)) + ; + if (read_data(client, BT541_VENDOR_ID, (u8 *)&cap->vendor_id, 2)) + ; +#ifdef SUPPORTED_USE_DUAL_FW + bt541_firmware_check(); +#endif + if (!gpio_get_value(info->pdata->gpio_int)) + { + write_cmd(info->client, BT541_CLEAR_INT_STATUS_CMD); + udelay(50); + write_cmd(info->client, BT541_CLEAR_INT_STATUS_CMD); + udelay(50); + write_cmd(info->client, BT541_CLEAR_INT_STATUS_CMD); + } + info->work_state = NOTHING; +#endif + +#if defined(TSP_VERBOSE_DEBUG) + dev_info(&client->dev, "resume--\n"); +#endif + up(&info->work_lock); + enable_irq(info->irq); + return 0; +} + +static int bt541_ts_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct bt541_ts_info *info = i2c_get_clientdata(client); + +#if defined(TSP_VERBOSE_DEBUG) + dev_info(&client->dev, "suspend++\n"); +#endif + +#ifndef CONFIG_HAS_EARLYSUSPEND + disable_irq(info->irq); +#endif +#if ESD_TIMER_INTERVAL + flush_work(&info->tmr_work); +#endif + + down(&info->work_lock); + if (info->work_state != NOTHING + && info->work_state != SUSPEND) { + dev_err(&client->dev,"%s: Invalid work proceedure (%d)\n", + __func__, info->work_state); + up(&info->work_lock); +#ifndef CONFIG_HAS_EARLYSUSPEND + enable_irq(info->irq); +#endif + return 0; + } + +#ifndef CONFIG_HAS_EARLYSUSPEND + clear_report_data(info); + +#if ESD_TIMER_INTERVAL + esd_timer_stop(info); +#if defined(TSP_VERBOSE_DEBUG) + dev_info(&client->dev, "Stopped esd timer\n"); +#endif +#endif +#endif + write_cmd(info->client, BT541_SLEEP_CMD); + bt541_power_control(info, POWER_OFF); + info->work_state = SUSPEND; + +#if defined(TSP_VERBOSE_DEBUG) + zinitix_printk("suspend--\n"); +#endif + up(&info->work_lock); + + return 0; +} +#endif + +static bool ts_set_touchmode(u16 value) +{ + int i; + + disable_irq(misc_info->irq); + + down(&misc_info->work_lock); + if (misc_info->work_state != NOTHING) { + printk(KERN_INFO "other process occupied.. (%d)\n", + misc_info->work_state); + enable_irq(misc_info->irq); + up(&misc_info->work_lock); + return -1; + } + + misc_info->work_state = SET_MODE; + + if (value == TOUCH_DND_MODE) { + if (write_reg(misc_info->client, BT541_DND_N_COUNT, + SEC_DND_N_COUNT) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Failed to set DND_N_COUNT\n"); + + if (write_reg(misc_info->client, BT541_DND_U_COUNT, + SEC_DND_U_COUNT) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Failed to set DND_U_COUNT\n"); + + if (write_reg(misc_info->client, BT541_AFE_FREQUENCY, + SEC_DND_FREQUENCY) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Failed to set AFE_FREQUENCY\n"); + + } else if (misc_info->touch_mode == TOUCH_DND_MODE) { + if (write_reg(misc_info->client, BT541_AFE_FREQUENCY, + misc_info->cap_info.afe_frequency) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Failed to set AFE_FREQUENCY\n"); + + if (write_reg(misc_info->client, BT541_DND_U_COUNT, + misc_info->cap_info.U_cnt) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Failed to set U_COUNT\n"); + + if (write_reg(misc_info->client, BT541_SHIFT_VALUE, + misc_info->cap_info.shift_value) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Failed to set Shift\n"); + } + + if (value == TOUCH_SEC_MODE) + misc_info->touch_mode = TOUCH_POINT_MODE; + else + misc_info->touch_mode = value; + + printk(KERN_INFO "[zinitix_touch] tsp_set_testmode, " + "touchkey_testmode = %d\r\n", misc_info->touch_mode); + + if (misc_info->touch_mode != TOUCH_POINT_MODE) { + if (write_reg(misc_info->client, BT541_DELAY_RAW_FOR_HOST, + RAWDATA_DELAY_FOR_HOST) != I2C_SUCCESS) + zinitix_printk("Fail to set BT541_DELAY_RAW_FOR_HOST.\r\n"); + } + + if (write_reg(misc_info->client, BT541_TOUCH_MODE, + misc_info->touch_mode) != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] TEST Mode : " + "Fail to set ZINITX_TOUCH_MODE %d.\r\n", misc_info->touch_mode); + + /* clear garbage data */ + for (i = 0; i < 10; i++) { + mdelay(20); + write_cmd(misc_info->client, BT541_CLEAR_INT_STATUS_CMD); + } + + misc_info->work_state = NOTHING; + enable_irq(misc_info->irq); + up(&misc_info->work_lock); + return 1; +} + +static bool ts_set_touchmode2(u16 value) +{ + int i; + + disable_irq(misc_info->irq); + + down(&misc_info->work_lock); + if (misc_info->work_state != NOTHING) { + printk(KERN_INFO "other process occupied.. (%d)\n", + misc_info->work_state); + enable_irq(misc_info->irq); + up(&misc_info->work_lock); + return -1; + } + + misc_info->work_state = SET_MODE; + + if (value == TOUCH_DND_MODE) { + if (write_reg(misc_info->client, BT541_DND_N_COUNT, + SEC_HFDND_N_COUNT) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Failed to set DND_N_COUNT\n"); + + if (write_reg(misc_info->client, BT541_DND_U_COUNT, + SEC_HFDND_U_COUNT) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Failed to set DND_U_COUNT\n"); + + if (write_reg(misc_info->client, BT541_AFE_FREQUENCY, + SEC_HFDND_FREQUENCY) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Failed to set AFE_FREQUENCY\n"); + + + } else { + if (write_reg(misc_info->client, BT541_AFE_FREQUENCY, + misc_info->cap_info.afe_frequency) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Failed to set AFE_FREQUENCY\n"); + + if (write_reg(misc_info->client, BT541_DND_U_COUNT, + misc_info->cap_info.U_cnt) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Failed to set U_COUNT\n"); + + if (write_reg(misc_info->client, BT541_SHIFT_VALUE, + misc_info->cap_info.shift_value) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Failed to set Shift\n"); + } + + if (value == TOUCH_SEC_MODE) + misc_info->touch_mode = TOUCH_POINT_MODE; + else + misc_info->touch_mode = value; + + printk(KERN_INFO "[zinitix_touch] tsp_set_testmode, " + "touchkey_testmode = %d\r\n", misc_info->touch_mode); + + if (misc_info->touch_mode != TOUCH_POINT_MODE) { + if (write_reg(misc_info->client, BT541_DELAY_RAW_FOR_HOST, + RAWDATA_DELAY_FOR_HOST) != I2C_SUCCESS) + zinitix_printk("Fail to set BT541_DELAY_RAW_FOR_HOST.\r\n"); + } + + if (write_reg(misc_info->client, BT541_TOUCH_MODE, + misc_info->touch_mode) != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] TEST Mode : " + "Fail to set ZINITX_TOUCH_MODE %d.\r\n", misc_info->touch_mode); + + /* clear garbage data */ + for (i = 0; i < 10; i++) { + mdelay(20); + write_cmd(misc_info->client, BT541_CLEAR_INT_STATUS_CMD); + } + + misc_info->work_state = NOTHING; + enable_irq(misc_info->irq); + up(&misc_info->work_lock); + return 1; +} + +static int ts_upgrade_sequence(const u8 *firmware_data) +{ + disable_irq(misc_info->irq); + down(&misc_info->work_lock); + misc_info->work_state = UPGRADE; + +#if ESD_TIMER_INTERVAL + esd_timer_stop(misc_info); +#endif + zinitix_debug_msg("clear all reported points\r\n"); + clear_report_data(misc_info); + + printk(KERN_INFO "start upgrade firmware\n"); + if (ts_upgrade_firmware(misc_info, + firmware_data, + misc_info->cap_info.ic_fw_size) == false) { + enable_irq(misc_info->irq); + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + return -1; + } + + if (init_touch(misc_info, false) == false) { + enable_irq(misc_info->irq); + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + return -1; + } + +#if ESD_TIMER_INTERVAL + esd_timer_start(CHECK_ESD_TIMER, misc_info); +#if defined(TSP_VERBOSE_DEBUG) + dev_info(&misc_info->client->dev, "Started esd timer\n"); +#endif +#endif + + enable_irq(misc_info->irq); + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + return 0; +} + +#ifdef SEC_FACTORY_TEST +static inline void set_cmd_result(struct bt541_ts_info *info, char *buff, int len) +{ + strncat(info->factory_info->cmd_result, buff, len); +} + +static inline void set_default_result(struct bt541_ts_info *info) +{ + char delim = ':'; + memset(info->factory_info->cmd_result, 0x00, ARRAY_SIZE(info->factory_info->cmd_result)); + memcpy(info->factory_info->cmd_result, info->factory_info->cmd, strlen(info->factory_info->cmd)); + strncat(info->factory_info->cmd_result, &delim, 1); +} + +#define MAX_FW_PATH 255 +#define TSP_FW_FILENAME "zinitix_fw.bin" + +static void fw_update(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + int ret = 0; + const u8 *buff = 0; + mm_segment_t old_fs = {0}; + struct file *fp = NULL; + long fsize = 0, nread = 0; + char fw_path[MAX_FW_PATH+1]; + char result[16] = {0}; + + set_default_result(info); + + switch (info->factory_info->cmd_param[0]) { + case BUILT_IN: + ret = ts_upgrade_sequence((u8 *)m_firmware_data); + if (ret < 0) { + info->factory_info->cmd_state = 3; + return; + } + break; + + case UMS: + old_fs = get_fs(); + set_fs(get_ds()); + + snprintf(fw_path, MAX_FW_PATH, "/sdcard/%s", TSP_FW_FILENAME); + fp = filp_open(fw_path, O_RDONLY, 0); + if (IS_ERR(fp)) { + dev_err(&client->dev, + "file %s open error:%lu\n", fw_path, (unsigned long)fp); + info->factory_info->cmd_state = 3; + goto err_open; + } + + fsize = fp->f_path.dentry->d_inode->i_size; + + if (fsize != info->cap_info.ic_fw_size) { + dev_err(&client->dev, "invalid fw size!!\n"); + info->factory_info->cmd_state = 3; + goto err_open; + } + + buff = kzalloc((size_t)fsize, GFP_KERNEL); + if (!buff) { + dev_err(&client->dev, "failed to alloc buffer for fw\n"); + info->factory_info->cmd_state = 3; + goto err_alloc; + } + + nread = vfs_read(fp, (char __user *)buff, fsize, &fp->f_pos); + if (nread != fsize) { + info->factory_info->cmd_state = 3; + goto err_fw_size; + } + + filp_close(fp, current->files); + set_fs(old_fs); + dev_info(&client->dev, "ums fw is loaded!!\n"); + + ret = ts_upgrade_sequence((u8 *)buff); + if (ret < 0) { + kfree(buff); + info->factory_info->cmd_state = 3; + goto update_fail; + } + break; + + default: + dev_err(&client->dev, "invalid fw file type!!\n"); + goto update_fail; + } + + info->factory_info->cmd_state = 2; + snprintf(result, sizeof(result) , "%s", "OK"); + set_cmd_result(info, result, + strnlen(result, sizeof(result))); + kfree(buff); + + return; + + + if (fp != NULL) { +err_fw_size: + kfree(buff); +err_alloc: + filp_close(fp, NULL); +err_open: + set_fs(old_fs); + } +update_fail: + snprintf(result, sizeof(result) , "%s", "NG"); + set_cmd_result(info, result, strnlen(result, sizeof(result))); +} + +static void get_fw_ver_bin(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + u16 fw_version, fw_minor_version, reg_version, hw_id, vendor_id; + u32 version, length; + + set_default_result(info); + + /* To Do */ + /* modify m_firmware_data */ + fw_version = (u16)(m_firmware_data[52] | (m_firmware_data[53] << 8)); + fw_minor_version = (u16)(m_firmware_data[56] | (m_firmware_data[57] << 8)); + reg_version = (u16)(m_firmware_data[60] | (m_firmware_data[61] << 8)); + hw_id = (u16)(m_firmware_data[0x7528] | (m_firmware_data[0x7529]<<8)); + /* vendor_id = ntohs(*(u16 *)&m_firmware_data[0x57e2]);*/ + version = (u32)((u32)(hw_id & 0xff) << 16) | ((fw_version & 0xf ) << 12) + | ((fw_minor_version & 0xf) << 8) | (reg_version & 0xff); + + /* length = sizeof(vendor_id); + snprintf(finfo->cmd_buff, length + 1, "%s", (u8 *)&vendor_id); + snprintf(finfo->cmd_buff + length, sizeof(finfo->cmd_buff) - length, + "%06X", version);*/ + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +static void get_fw_ver_ic(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + u16 fw_version, fw_minor_version, reg_version, hw_id, vendor_id; + u32 version, length; + + set_default_result(info); + + fw_version = info->cap_info.fw_version; + fw_minor_version = info->cap_info.fw_minor_version; + reg_version = info->cap_info.reg_data_version; + hw_id = info->cap_info.hw_id; + /* vendor_id = ntohs(info->cap_info.vendor_id);*/ + version = (u32)((u32)(hw_id & 0xff) << 16) | ((fw_version & 0xf) << 12) + | ((fw_minor_version & 0xf) << 8) | (reg_version & 0xff); + + /* length = sizeof(vendor_id); + snprintf(finfo->cmd_buff, length + 1, "%s", (u8 *)&vendor_id); + snprintf(finfo->cmd_buff + length, sizeof(finfo->cmd_buff) - length, + "%06X", version);*/ + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +static void get_threshold(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), + "%d", info->cap_info.threshold); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +/* + static void get_key_threshold(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + + int ret = 0; + u16 threshold; + + set_default_result(info); + + ret = read_data(misc_info->client, BT541_BUTTON_SENSITIVITY, (u8 *)&threshold, 2); + if (ret < 0) { + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", "fail"); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = FAIL; + return; + } + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%u", threshold); + + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, + finfo->cmd_buff, (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + } + */ + + +static void module_off_master(void *device_data) +{ + return; +} + +static void module_on_master(void *device_data) +{ + return; +} + +static void module_off_slave(void *device_data) +{ + return; +} + +static void module_on_slave(void *device_data) +{ + return; +} + +#define BT541_VENDOR_NAME "ZINITIX" + +static void get_chip_vendor(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), + "%s", BT541_VENDOR_NAME); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +#define BT541_CHIP_NAME "BT541" + +static void get_chip_name(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", BT541_CHIP_NAME); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +#ifdef SUPPORTED_USE_DUAL_FW +static void get_module_vendor(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + int module_vendor =0; + + set_default_result(info); + + switch (info->cap_info.hw_id) { + case 0: + module_vendor = 0; + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s,%d", "OK", module_vendor); + break; + case 1: + module_vendor = 1; + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s,%d", "OK", module_vendor); + break; + default: + break; + } + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} +#endif + +static void get_x_num(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), + "%u", info->cap_info.x_node_num); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +static void get_y_num(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), + "%u", info->cap_info.y_node_num); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +static void not_support_cmd(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + + sprintf(finfo->cmd_buff, "%s", "NA"); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + info->factory_info->cmd_state = NOT_APPLICABLE; + + dev_info(&client->dev, "%s: \"%s(%d)\"\n", __func__, finfo->cmd_buff, + (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +#if 0 +static void run_reference_read(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + struct tsp_raw_data *raw_data = info->raw_data; + u16 min, max; + s32 i,j; + +#if ESD_TIMER_INTERVAL + esd_timer_stop(misc_info); +#endif + set_default_result(info); + + ts_set_touchmode(TOUCH_DND_MODE); + get_raw_data(info, (u8 *)raw_data->ref_data, 10); + ts_set_touchmode(TOUCH_POINT_MODE); + + min = 0xFFFF; + max = 0x0000; + + for (i = 0; i < info->cap_info.x_node_num; i++) + { + for (j = 0; j < info->cap_info.y_node_num; j++) + { + /*pr_info("ref_data : %d ", + raw_data->ref_data[i * info->cap_info.y_node_num + j]);*/ + + if (raw_data->ref_data[i * info->cap_info.y_node_num + j] < min && + raw_data->ref_data[i * info->cap_info.y_node_num + j] != 0) + min = raw_data->ref_data[i * info->cap_info.y_node_num + j]; + + if (raw_data->ref_data[i * info->cap_info.y_node_num + j] > max) + max = raw_data->ref_data[i * info->cap_info.y_node_num + j]; + + } + /*pr_info("\n");*/ + } + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%d,%d\n", min, max); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: \"%s\"(%d)\n", __func__, finfo->cmd_buff, + (int)strlen(finfo->cmd_buff)); + +#if ESD_TIMER_INTERVAL + esd_timer_start(CHECK_ESD_TIMER, misc_info); +#endif + return; +} +#endif +static bool run_reference_DND_read(void *device_data, int button0, int button1) //DND +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + int i, j, nButton; + int x_num = info->cap_info.x_node_num, y_num = info->cap_info.y_node_num; + int buttons[2] = {button0,button1}; + bool result = true, item_result= true; + +#if ESD_TIMER_INTERVAL + esd_timer_stop(misc_info); +#endif + + set_default_result(info); + ts_set_touchmode(TOUCH_DND_MODE); + get_raw_data(info, (u8 *)info->pdnd_data, 5); + ts_set_touchmode(TOUCH_POINT_MODE); + + printk("DND_data =\n"); + for (i = 0; i < x_num; i++) { + for (j = 0; j < y_num; j++) { + printk("%d ", info->pdnd_data[j+i*y_num]); + } + printk("\n"); + } + + info->dnd_max_x = info->dnd_max_y = info->dnd_min_x = info->dnd_min_y = 0; + info->dnd_max_val = -32768; + info->dnd_min_val = 32767; + info->dnd_real_max_val = -32768; + info->dnd_real_min_val = 32767; + info->dnd_node_num = -1; + + for (i = 0; i < x_num-1; i++) { + for (j = 0; j < y_num; j++) { + if (info->dnd_real_min_val > info->pdnd_data[j+i*y_num]) { + info->dnd_real_min_x = i; + info->dnd_real_min_y = j; + info->dnd_real_min_val = info->pdnd_data[j+i*y_num]; + } + if (info->dnd_real_max_val < info->pdnd_data[j+i*y_num]) { + info->dnd_real_max_x = i; + info->dnd_real_max_y = j; + info->dnd_real_max_val = info->pdnd_data[j+i*y_num]; + } + + if ((info->pdnd_data[j+i*y_num] < pdnd_min[i][j]) && (info->pdnd_data[j+i*y_num] != 0)) { + printk(" DND View Min fail : NODE = %u, Raw data = %d, SPEC = %u\n", j+i*y_num, info->pdnd_data[j+i*y_num], pdnd_min[i][j]); + item_result = false; + result = false; + + if (info->dnd_node_num == -1) + info->dnd_node_num = j + (i * y_num); + } + if (info->dnd_min_val > info->pdnd_data[j+i*y_num] - pdnd_min[i][j]) { + info->dnd_min_x = i; + info->dnd_min_y = j; + info->dnd_min_val = info->pdnd_data[j+i*y_num] - pdnd_min[i][j]; + } + if (info->pdnd_data[j+i*y_num] > pdnd_max[i][j]) { + printk(" DND View Max fail : NODE = %u, Raw data = %d, SPEC = %u\n", j+i*y_num, info->pdnd_data[j+i*y_num], pdnd_max[i][j]); + item_result = false; + result = false; + + if (info->dnd_node_num == -1) + info->dnd_node_num = j + (i * y_num); + } + if (info->dnd_max_val < info->pdnd_data[j+i*y_num] - pdnd_max[i][j]) { + info->dnd_max_x = i; + info->dnd_max_y = j; + info->dnd_max_val = info->pdnd_data[j+i*y_num] - pdnd_max[i][j]; + } + } + } + + if (item_result) + printk("DND View pass\n"); + else + printk("DND View fail\n"); + + /*button*/ + item_result = true; + if (info->cap_info.button_num) { + for (i = 0; i < 2; i++) { + nButton = buttons[i]; + + if (nButton < 0) + continue; + + if (info->dnd_real_min_val > info->pdnd_data[(x_num-1)*y_num+nButton]) { + info->dnd_real_min_x = x_num-1; + info->dnd_real_min_y = nButton; + info->dnd_real_min_val = info->pdnd_data[(x_num-1)*y_num+nButton]; + } + + if (info->dnd_real_max_val < info->pdnd_data[(x_num-1)*y_num+nButton]) { + info->dnd_real_max_x = x_num-1; + info->dnd_real_max_y = nButton; + info->dnd_real_max_val = info->pdnd_data[(x_num-1)*y_num+nButton]; + } + + if (info->pdnd_data[(x_num-1)*y_num+nButton] < pdnd_min[x_num-1][nButton]) { + printk(" DND Button Min fail : NODE = %u, Raw data = %d, SPEC = %u\n", nButton, info->pdnd_data[(x_num-1)*y_num+nButton], pdnd_min[x_num-1][nButton]); + item_result = false; + result = false; + + if (info->dnd_node_num == -1) + info->dnd_node_num = ((x_num - 1) * y_num) + nButton; + } + + if (info->dnd_min_val > info->pdnd_data[(x_num-1)*y_num+nButton] - pdnd_min[x_num-1][nButton]) { + info->dnd_min_x = x_num-1; + info->dnd_min_y = nButton; + info->dnd_min_val = info->pdnd_data[(x_num-1)*y_num+nButton] - pdnd_min[x_num-1][nButton]; + } + + if (info->pdnd_data[(x_num-1)*y_num+nButton] > pdnd_max[x_num-1][nButton]) { + printk(" DND Button Max fail : NODE = %u, Raw data = %d, SPEC = %u\n", nButton, info->pdnd_data[(x_num-1)*y_num+nButton], pdnd_max[x_num-1][nButton]); + item_result = false; + result = false; + + if (info->dnd_node_num == -1) + info->dnd_node_num = ((x_num - 1) * y_num) + nButton; + } + + if (info->dnd_max_val < info->pdnd_data[(x_num-1)*y_num+nButton] - pdnd_max[x_num-1][nButton]) { + info->dnd_max_x = x_num-1; + info->dnd_max_y = nButton; + info->dnd_max_val = info->pdnd_data[(x_num-1)*y_num+nButton] - pdnd_max[x_num-1][nButton]; + } + } + } + + if (item_result) { + info->dnd_done = true; + printk("DND Button pass\n"); + } else { + info->dnd_done = false; + printk("DND Butoon fail\n"); + } + +#if ESD_TIMER_INTERVAL + esd_timer_start(CHECK_ESD_TIMER, misc_info); +#endif + + return result; +} + +static void run_reference_DND(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + bool temp; + + set_default_result(info); + + temp = run_reference_DND_read(device_data, 4, 7); + + if (temp) { + pr_info("DND pass\n"); + sprintf(finfo->cmd_buff, "OK\n"); + } else { + int x, y, node_num; + + node_num = info->dnd_node_num; + x = node_num / info->cap_info.y_node_num; + y = node_num % info->cap_info.y_node_num; + + pr_info("DND Fail\n"); + sprintf(finfo->cmd_buff, "%d,%d,%d,%d\n", + node_num, + pdnd_min[x][y], + pdnd_max[x][y], + info->pdnd_data[node_num]); + } + + finfo->cmd_state = OK; + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); +} + +static bool run_reference_HFDND_read(void *device_data, int button0, int button1) //DND +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + int i, j, nButton; + int x_num = info->cap_info.x_node_num, y_num = info->cap_info.y_node_num; + int buttons[2] = {button0,button1}; + bool result = true, item_result= true; + +#if ESD_TIMER_INTERVAL + esd_timer_stop(misc_info); +#endif + + set_default_result(info); + ts_set_touchmode2(TOUCH_DND_MODE); + get_raw_data(info, (u8 *)info->hfdnd_data, 5); + ts_set_touchmode(TOUCH_POINT_MODE); + + printk("HFDND_data =\n"); + for (i = 0; i < x_num; i++) { + for (j = 0; j < y_num; j++) { + printk("%d ", info->hfdnd_data[j+i*y_num]); + } + printk("\n"); + } + + info->hfdnd_max_x = info->hfdnd_max_y = info->hfdnd_min_x = info->hfdnd_min_y = 0; + info->hfdnd_max_val = -32768; + info->hfdnd_min_val = 32767; + info->hfdnd_real_max_val = -32768; + info->hfdnd_real_min_val = 32767; + info->hfdnd_node_num = -1; + + //MAX + for (i = 0; i < x_num-1; i++) { + for (j = 0; j < y_num; j++) { + if (info->hfdnd_real_min_val > info->hfdnd_data[j+i*y_num]) { + info->hfdnd_real_min_x = i; + info->hfdnd_real_min_y = j; + info->hfdnd_real_min_val = info->hfdnd_data[j+i*y_num]; + } + + if (info->hfdnd_real_max_val < info->hfdnd_data[j+i*y_num]) { + info->hfdnd_real_max_x = i; + info->hfdnd_real_max_y = j; + info->hfdnd_real_max_val = info->hfdnd_data[j+i*y_num]; + } + + if ((info->hfdnd_data[j+i*y_num] < hfdnd_min[i][j]) && (info->hfdnd_data[j+i*y_num] != 0)) { + printk(" HFDND View Min fail : NODE = %u,Raw data = %d, SPEC = %u\n", j+i*y_num, info->hfdnd_data[j+i*y_num], hfdnd_min[i][j]); + item_result = false; + result = false; + + if (info->hfdnd_node_num == -1) + info->hfdnd_node_num = j + (i * y_num); + } + + if (info->hfdnd_min_val > info->hfdnd_data[j+i*y_num] - hfdnd_min[i][j]) { + info->hfdnd_min_x = i; + info->hfdnd_min_y = j; + info->hfdnd_min_val = info->hfdnd_data[j+i*y_num] - hfdnd_min[i][j]; + } + + if (info->hfdnd_data[j+i*y_num] > hfdnd_max[i][j]) { + printk(" HFDND View Max fail : NODE = %u, Raw data = %d, SPEC = %u\n", j+i*y_num, info->hfdnd_data[j+i*y_num], hfdnd_max[i][j]); + item_result = false; + result = false; + + if (info->hfdnd_node_num == -1) + info->hfdnd_node_num = j + (i * y_num); + } + + if (info->hfdnd_max_val < info->hfdnd_data[j+i*y_num] - hfdnd_max[i][j]) { + info->hfdnd_max_x = i; + info->hfdnd_max_y = j; + info->hfdnd_max_val = info->hfdnd_data[j+i*y_num] - hfdnd_max[i][j]; + } + } + } + + if (item_result) + printk("HFDND View pass\n"); + else + printk("HFDND View Fail\n"); + + //button + item_result = true; + if (info->cap_info.button_num) { + for (i = 0; i < 2; i++) { + nButton = buttons[i]; + if (nButton < 0) + continue; + + if (info->hfdnd_real_min_val > info->hfdnd_data[(x_num-1)*y_num+nButton]) { + info->hfdnd_real_min_x = x_num-1; + info->hfdnd_real_min_y = nButton; + info->hfdnd_real_min_val = info->hfdnd_data[(x_num-1)*y_num+nButton]; + } + + if (info->hfdnd_real_max_val < info->hfdnd_data[(x_num-1)*y_num+nButton]) { + info->hfdnd_real_max_x = x_num-1; + info->hfdnd_real_max_y = nButton; + info->hfdnd_real_max_val = info->hfdnd_data[(x_num-1)*y_num+nButton]; + } + + if (info->hfdnd_data[(x_num-1)*y_num+nButton] < hfdnd_min[x_num-1][nButton]) { + printk(" HFDND Button Min fail : NODE = %u, Raw data = %d, SPEC = %u\n", nButton, info->hfdnd_data[(x_num-1)*y_num+nButton], hfdnd_min[x_num-1][nButton]); + item_result = false; + result = false; + + if (info->hfdnd_node_num == -1) + info->hfdnd_node_num = ((x_num - 1) * y_num) + nButton; + } + if (info->hfdnd_min_val > info->hfdnd_data[(x_num-1)*y_num+nButton] - hfdnd_min[x_num-1][nButton]) { + info->hfdnd_min_x = x_num-1; + info->hfdnd_min_y = nButton; + info->hfdnd_min_val = info->hfdnd_data[(x_num-1)*y_num+nButton] - hfdnd_min[x_num-1][nButton]; + } + if (info->hfdnd_data[(x_num-1)*y_num+nButton] > hfdnd_max[x_num-1][nButton]) { + printk(" HFDND Button Max fail : NODE = %u, Raw data = %d, SPEC = %u\n", nButton, info->hfdnd_data[(x_num-1)*y_num+nButton], hfdnd_min[x_num-1][nButton]); + item_result = false; + result = false; + + if (info->hfdnd_node_num == -1) + info->hfdnd_node_num = ((x_num - 1) * y_num) + nButton; + } + if (info->hfdnd_max_val < info->hfdnd_data[(x_num-1)*y_num+nButton] - hfdnd_min[x_num-1][nButton]) { + info->hfdnd_max_x = x_num-1; + info->hfdnd_max_y = nButton; + info->hfdnd_max_val = info->hfdnd_data[(x_num-1)*y_num+nButton] - hfdnd_min[x_num-1][nButton]; + } + } + } + + if (item_result) { + info->hfdnd_done = true; + printk("HFDND Button pass\n"); + } else { + info->hfdnd_done = false; + printk("HFDND Button fail\n"); + } + +#if ESD_TIMER_INTERVAL + esd_timer_start(CHECK_ESD_TIMER, misc_info); +#endif + + return result; +} + +static void run_reference_HFDND(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + bool temp; + + set_default_result(info); + + temp = run_reference_HFDND_read(device_data, 4, 7); + + if (temp) { + pr_info("HF DND pass\n"); + sprintf(finfo->cmd_buff, "OK\n"); + } else { + int x, y, node_num; + + node_num = info->hfdnd_node_num; + x = node_num / info->cap_info.y_node_num; + y = node_num % info->cap_info.y_node_num; + + pr_info("HF DND Fail\n"); + sprintf(finfo->cmd_buff, "%d,%d,%d,%d\n", + node_num, + hfdnd_min[x][y], + hfdnd_max[x][y], + info->hfdnd_data[node_num]); + } + + finfo->cmd_state = OK; + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); +} + +static bool run_reference_V_Diff_read(void *device_data, int button0, int button1) //DND +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + + int print_diff[19*10]={0,}; + int buttons[2] = {button0,button1}; + int i, j, diff_val, pre_val, next_val, nButton; + int x_num = info->cap_info.x_node_num, y_num = info->cap_info.y_node_num; + bool result = true, item_result = true; + + printk("TSP Diff test scale factor = %d\n",TSP_INIT_TEST_RATIO); + printk("V Diff start\n"); + + info->vdiff_max_x = info->vdiff_max_y = info->vdiff_min_x = info->vdiff_min_y = 0; + info->vdiff_max_val = -32768; + info->vdiff_min_val = 32767; + info->vdiff_node_num = -1; + + item_result = true; + for (i = 0; i < x_num-2; i++) { + for (j = 0; j < y_num; j++) { + //printk("%d ", info->pdnd_data[i*y_num+j]); + next_val = info->pdnd_data[(i*y_num)+j]; + pre_val = info->pdnd_data[(i*y_num)+j+y_num]; + diff_val = (next_val > pre_val)?(next_val - pre_val):(pre_val - next_val); + + printk(" %d ", diff_val); + + pre_val = (TSP_INIT_TEST_RATIO == 100)?((s16)dnd_v_diff[i][j]):((s16)(((s32)dnd_v_diff[i][j] * TSP_INIT_TEST_RATIO) /100)); + if (diff_val > pre_val) { + result = false; + item_result = false; + + if (info->vdiff_node_num == -1) { + info->vdiff_node_num = j + (i * y_num); + info->vdiff_diff_val = diff_val; + } + } +#if PDIFF_DEBUG + print_diff[i*y_num+j] = diff_val; +#endif + if (info->vdiff_max_val < diff_val) { + info->vdiff_max_val = diff_val; + info->vdiff_max_x = i; + info->vdiff_max_y= j; + } + if (info->vdiff_min_val > diff_val) { + info->vdiff_min_val = diff_val; + info->vdiff_min_x = i; + info->vdiff_min_y= j; + } + } + printk("\n"); + } + + if (item_result) + printk("V Diff view pass\n"); + else + printk("V Diff view fail\n"); + + item_result = true; + if ( info->cap_info.button_num) { + printk("TSP Button scale = %d\n", TSP_INIT_TEST_RATIO); + printk("TSP Button Diff Spec. = %d %d\n", + dnd_v_diff[x_num-2][buttons[0]], dnd_v_diff[x_num-2][buttons[1]]); + + for (i = 0; i < 2; i++) { + nButton = buttons[i]; + if (nButton < 0) + continue; + next_val = info->pdnd_data[(x_num-1)*y_num+nButton]; + pre_val = info->pdnd_data[(x_num-2)*y_num+nButton]; + diff_val = (next_val > pre_val)?(next_val - pre_val):(pre_val - next_val); + + pre_val = (TSP_INIT_TEST_RATIO == 100)?( (s16)dnd_v_diff[x_num-2][nButton]+info->ref_btn_option): \ + ((s16)(((s32)dnd_v_diff[x_num-2][nButton]*TSP_INIT_TEST_RATIO)/100)+info->ref_btn_option); + + if (diff_val > pre_val) { + item_result = false; + result = false; + + if (info->vdiff_node_num == -1) { + info->vdiff_node_num = ((x_num - 2) * y_num) + nButton; + info->vdiff_diff_val = diff_val; + } + } + if (info->vdiff_max_val < diff_val) { + info->vdiff_max_val = diff_val; + info->vdiff_max_x = x_num - 1; + info->vdiff_max_y= nButton; + } + if (info->vdiff_min_val >diff_val) { + info->vdiff_min_val = diff_val; + info->vdiff_min_x = x_num - 1; + info->vdiff_min_y= nButton; + } +#if PDIFF_DEBUG + printk("buttons[%d]'s diff_val is %d\n", i, diff_val); +#endif + } + } + + if (item_result) + printk("Button V Diff pass\n"); + else + printk("Button V Diff fail\n"); + + return result; +} + +static void run_reference_V_Diff(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + bool temp; + + set_default_result(info); + + temp = run_reference_V_Diff_read(device_data, 4, 7); + + if (temp) { + pr_info("V Diff pass\n"); + sprintf(finfo->cmd_buff, "OK\n"); + } else { + int x, y, node_num; + + node_num = info->dnd_node_num; + x = node_num / info->cap_info.y_node_num; + y = node_num % info->cap_info.y_node_num; + + pr_info("V Diff Fail\n"); + sprintf(finfo->cmd_buff, "%d,%d,%d,%d\n", + node_num, + 0, + dnd_v_diff[x][y], + info->vdiff_diff_val); + } + + finfo->cmd_state = OK; + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); +} + +static bool run_reference_H_Diff_read(void *device_data, int button0, int button1) //DND +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + + int print_diff[19*10]={0,}; + int buttons[2] = {button0,button1}; + int i, j, diff_val, pre_val, next_val; + int x_num = info->cap_info.x_node_num, y_num = info->cap_info.y_node_num; + bool result = true, item_result = true; + + printk("TSP Diff test scale factor = %d\n",TSP_INIT_TEST_RATIO); + printk("Diff start\n"); + //H DIff + info->hdiff_max_x = info->hdiff_max_y = info->hdiff_min_x = info->hdiff_min_y = 0; + info->hdiff_max_val = -32768; + info->hdiff_min_val = 32767; + info->hdiff_node_num = -1; + + for (i = 0; i < x_num - 1; i++) { + for (j = 0; j < y_num-1; j++) { + //printk("%d ", info->dnd_data[i*y_num+j]); + next_val = info->pdnd_data[(i*y_num)+(j+1)]; + pre_val = info->pdnd_data[(i*y_num)+j]; + diff_val = (next_val > pre_val)?(next_val - pre_val):(pre_val - next_val); + + printk("%d ", diff_val); + + pre_val = (TSP_INIT_TEST_RATIO== 100)?((s16)dnd_h_diff[i][j]):((s16)(((s32)dnd_h_diff[i][j] * TSP_INIT_TEST_RATIO) /100)); + if (diff_val > pre_val) { + result = false; + item_result = false; + + if (info->hdiff_node_num == -1) { + info->hdiff_node_num = j + (i * y_num); + info->hdiff_diff_val = diff_val; + } + } +#if PDIFF_DEBUG + print_diff[i*y_num+j] = diff_val; +#endif + if (info->hdiff_max_val < diff_val) { + info->hdiff_max_val = diff_val; + info->hdiff_max_x = i; + info->hdiff_max_y= j; + } + if (info->hdiff_min_val > diff_val) { + info->hdiff_min_val = diff_val; + info->hdiff_min_x = i; + info->hdiff_min_y= j; + } + } + printk("\n"); + } + + if (item_result) + printk("H Diff pass\n"); + else + printk("H Diff fail\n"); + + item_result = true; + if (info->cap_info.button_num) { + printk("TSP Button scale = %d\n", TSP_INIT_TEST_RATIO); + printk("TSP Button Diff Spec. = %d %d\n", + dnd_v_diff[x_num-2][buttons[0]], dnd_v_diff[x_num-2][buttons[1]]); + + pre_val = info->pdnd_data[(x_num-1)*y_num+button0]; + next_val = info->pdnd_data[(x_num-1)*y_num+button1]; + diff_val = (next_val > pre_val)?(next_val - pre_val):(pre_val - next_val); + + pre_val = (TSP_INIT_TEST_RATIO == 100)?( (s16)dnd_h_diff[x_num-1][button1]+info->ref_btn_option): \ + ((s16)(((s32)dnd_h_diff[x_num-1][button1]*TSP_INIT_TEST_RATIO)/100)+info->ref_btn_option); + + if (diff_val > pre_val) { + item_result = false; + result = false; + + if (info->hdiff_node_num == -1) { + info->hdiff_node_num = ((x_num - 1) * y_num) + button1; + info->hdiff_diff_val = diff_val; + } + } + if (info->hdiff_max_val < diff_val) { + info->hdiff_max_val = diff_val; + info->hdiff_max_x = x_num - 1; + info->hdiff_max_y= button1; + } + if (info->hdiff_min_val >diff_val) { + info->hdiff_min_val = diff_val; + info->hdiff_min_x = x_num - 1; + info->hdiff_min_y= button1; + } + } + + if (item_result) + printk("Button H Diff pass\n"); + else + printk("Button H Diff fail\n"); + + return result; +} + +static void run_reference_H_Diff(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + bool temp; + u8 *ret_string; + + set_default_result(info); + + temp = run_reference_H_Diff_read(device_data, 4, 7); + + if (temp) + ret_string = "H Diff pass"; + else + ret_string = "H Diff Fail"; + + if (temp) { + pr_info("H Diff pass\n"); + sprintf(finfo->cmd_buff, "OK\n"); + } else { + int x, y, node_num; + + node_num = info->hfdnd_node_num; + x = node_num / info->cap_info.y_node_num; + y = node_num % info->cap_info.y_node_num; + + pr_info("H Diff Fail\n"); + sprintf(finfo->cmd_buff, "%d,%d,%d,%d\n", + node_num, + 0, + dnd_h_diff[x][y], + info->hdiff_diff_val); + } + + finfo->cmd_state = OK; + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); +} + +static void get_reference_DND(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + char buff[19*7] = {0}; + // char tmp[16] = {0}; + int x_node, y_node; + int node_num; + int x_num = info->cap_info.x_node_num, y_num = info->cap_info.y_node_num; + + set_default_result(info); + + if (!info->dnd_done) + run_reference_DND_read(device_data, 4, 7); + + x_node = finfo->cmd_param[0]; + y_node = finfo->cmd_param[1]; + + if (x_node < 0 || x_node >= x_num || y_node < 0 || y_node >= y_num) { + snprintf(buff, sizeof(buff), "%s", "NG"); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + finfo->cmd_state = FAIL; + return; + } + /* + for (i = 0; i < x_num-1; i++) { + node_num = i*y_num + y_node; + sprintf(tmp, "%d", info->pdnd_data[node_num]); + strcat(buff, tmp); + if (i < x_num-2) + strcat(buff, " "); + } + */ + node_num = (x_node * y_num) + y_node; + + sprintf(finfo->cmd_buff, "%d", info->pdnd_data[node_num]); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, + buff, (int)strnlen(buff, sizeof(buff))); + + return; +} + +/* + static void get_reference_max_H_Diff(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + int H_diff[19*9] = {0}; + int i, j, diff_val, pre_val, next_val; + int x_num = info->cap_info.x_node_num, y_num = info->cap_info.y_node_num; + int max_hdiff = 0; + + set_default_result(info); + + if (!info->dnd_done) + run_reference_DND_read(device_data, 4, 7); + + printk("H Diff start\n"); +//H DIff +for (i = 0; i < x_num - 1; i++) { +for (j = 0; j pdnd_data[(i*y_num)+(j+1)]; +pre_val = info->pdnd_data[(i*y_num)+j]; +diff_val = (next_val > pre_val)?(next_val - pre_val):(pre_val - next_val); + +printk("%4d ", diff_val); +H_diff[i*(y_num-1)+j] = diff_val; +if ((i == 0) && (j == 0)) +max_hdiff = diff_val; +else { +if (max_hdiff < diff_val) +max_hdiff = diff_val; +} +} +printk("\n"); +} + + +sprintf(finfo->cmd_buff, "%d", max_hdiff); +set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); +finfo->cmd_state = OK; + +dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, +finfo->cmd_buff, (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); +} + */ + +static void get_reference_H_Diff(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + int H_diff[19*9] = {0}; + //char tmp[10] = {0}; + int x_node, y_node; + int node_num; + int i, j, diff_val, pre_val, next_val; + int x_num = info->cap_info.x_node_num, y_num = info->cap_info.y_node_num; + + set_default_result(info); + + if (!info->dnd_done) + run_reference_DND_read(device_data, 4, 7); + + printk("H Diff start\n"); + //H DIff + for (i = 0; i < x_num - 1; i++) { + for (j = 0; j < y_num-1; j++) { + next_val = info->pdnd_data[(i*y_num)+(j+1)]; + pre_val = info->pdnd_data[(i*y_num)+j]; + diff_val = (next_val > pre_val)?(next_val - pre_val):(pre_val - next_val); + + printk("%4d ", diff_val); + H_diff[i*(y_num-1)+j] = diff_val; + } + printk("\n"); + } + + x_node = finfo->cmd_param[0]; + y_node = finfo->cmd_param[1]; + + if (x_node < 0 || x_node >= x_num || y_node < 0 || y_node >= y_num) { + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", "NG"); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = FAIL; + return; + } + /* + for (i = 0; i < x_num-1; i++) { + node_num = i*(y_num-1) + y_node; + sprintf(tmp, "%d", H_diff[node_num]); + strcat(finfo->cmd_buff, tmp); + if (i < x_num-2) + strcat(finfo->cmd_buff, " "); + } + */ + node_num = (x_node * y_num) + y_node; + + sprintf(finfo->cmd_buff, "%d", H_diff[node_num]); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, + finfo->cmd_buff, (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); +} + +/* + static void get_reference_max_V_Diff(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + int V_Diff[19*10] = {0}; + int buttons[2] = {4,7}; + int i, j, pre_val, next_val, nButton; + int x_num = info->cap_info.x_node_num, y_num = info->cap_info.y_node_num; + int diff_val = 0, max_vdiff = 0; + + set_default_result(info); + + if (!info->dnd_done) + run_reference_DND_read(device_data, 4, 7); + + for (i = 0; i < x_num-2; i++) { + for (j=0; j < y_num; j++) { + next_val = info->pdnd_data[(i*y_num)+j]; + pre_val = info->pdnd_data[(i*y_num)+j+y_num]; + diff_val = (next_val > pre_val)?(next_val - pre_val):(pre_val - next_val); + + printk(" %4d ", diff_val); + V_Diff[i*y_num+j] = diff_val; + if ((i == 0) && (j == 0)) + max_vdiff = diff_val; + else { + if (max_vdiff < diff_val) + max_vdiff = diff_val; + } + } + printk("\n"); + } + +//V DIff button +if ( info->cap_info.button_num) { +for (i = 0; i < 2; i++) { +nButton = buttons[i]; +if (nButton < 0) +continue; +next_val = info->pdnd_data[(x_num-1)*y_num+nButton]; +pre_val = info->pdnd_data[(x_num-2)*y_num+nButton]; +diff_val = (next_val > pre_val)?(next_val - pre_val):(pre_val - next_val); +V_Diff[(x_num-1)*y_num + nButton] = diff_val; +if (max_vdiff < diff_val) +max_vdiff = diff_val; +} +} + +sprintf(finfo->cmd_buff, "%d", diff_val); +set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); +finfo->cmd_state = OK; + +dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, +finfo->cmd_buff, (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); +} + */ + +static void get_reference_V_Diff(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + /*char tmp[10] = {0};*/ + int V_Diff[19*10] = {0}; + int x_node, y_node; + int node_num; + int buttons[2] = {4,7}; + int i, j, diff_val, pre_val, next_val, nButton; + int x_num = info->cap_info.x_node_num, y_num = info->cap_info.y_node_num; + + set_default_result(info); + + if (!info->dnd_done) + run_reference_DND_read(device_data, 4, 7); + + for (i = 0; i < x_num-2; i++) { + for (j = 0; j < y_num; j++) { + next_val = info->pdnd_data[(i*y_num)+j]; + pre_val = info->pdnd_data[(i*y_num)+j+y_num]; + diff_val = (next_val > pre_val)?(next_val - pre_val):(pre_val - next_val); + + printk(" %d ", diff_val); + V_Diff[i*y_num+j] = diff_val; + } + printk("\n"); + } + + //V DIff button + if ( info->cap_info.button_num) { + for (i = 0; i < 2; i++) { + nButton = buttons[i]; + if (nButton < 0) + continue; + next_val = info->pdnd_data[(x_num-1)*y_num+nButton]; + pre_val = info->pdnd_data[(x_num-2)*y_num+nButton]; + diff_val = (next_val > pre_val)?(next_val - pre_val):(pre_val - next_val); + V_Diff[(x_num-1)*y_num + nButton] = diff_val; + } + } + + x_node = finfo->cmd_param[0]; + y_node = finfo->cmd_param[1]; + + if (x_node < 0 || x_node >= x_num || y_node < 0 || y_node >= y_num) { + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", "NG"); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = FAIL; + return; + } + /* + for (i = 0; i < x_num-2; i++) { + node_num = i*y_num + y_node; + sprintf(tmp, "%d", V_Diff[node_num]); + strcat(finfo->cmd_buff, tmp); + if (i < x_num-3) + strcat(finfo->cmd_buff, " "); + } + */ + node_num = (x_node * y_num) + y_node; + + sprintf(finfo->cmd_buff, "%d", V_Diff[node_num]); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, + finfo->cmd_buff, (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); +} + +static void get_reference_HFDND(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + char buff[512] = {0}; + // char tmp[16] = {0}; + int x_node, y_node; + int node_num; + int x_num = info->cap_info.x_node_num, y_num = info->cap_info.y_node_num; + + set_default_result(info); + + if (!info->hfdnd_done) + run_reference_HFDND_read(device_data, 4, 7); + + x_node = finfo->cmd_param[0]; + y_node = finfo->cmd_param[1]; + + if (x_node < 0 || x_node >= x_num || y_node < 0 || y_node >= y_num) { + snprintf(buff, sizeof(buff), "%s", "NG"); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + finfo->cmd_state = FAIL; + return; + } + /* + for (i = 0; i < x_num-1; i++) { + node_num = i*y_num + y_node; + sprintf(tmp, "%d", info->hfdnd_data[node_num]); + strcat(buff, tmp); + if (i < x_num-2) + strcat(buff, " "); + } + */ + node_num = (x_node * y_num) + y_node; + + sprintf(finfo->cmd_buff, "%d", info->hfdnd_data[node_num]); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, + buff, (int)strnlen(buff, sizeof(buff))); + + return; +} + +/* + static void get_max_dnd(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + + if (!info->dnd_done) + run_reference_DND_read(device_data, 4, 7); + + sprintf(finfo->cmd_buff, "%d", info->dnd_real_max_val); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + } + */ + +/* + static void get_min_dnd(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + + if (!info->dnd_done) + run_reference_DND_read(device_data, 4, 7); + + sprintf(finfo->cmd_buff, "%d", info->dnd_real_min_val); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + } + */ + +/* + static void get_max_hfdnd(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + + s16 val[3] = {0}; + + set_default_result(info); + + val[0] = info->hfdnd_max_x; + val[1] = info->hfdnd_max_y; + val[2] = info->hfdnd_max_val; + + memcpy(finfo->cmd_buff, (char*)val, sizeof(finfo->cmd_buff)); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + } + */ + +/* + static void get_min_hfdnd(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + + s16 val[3] = {0}; + + set_default_result(info); + + val[0] = info->hfdnd_min_x; + val[1] = info->hfdnd_min_y; + val[2] = info->hfdnd_min_val; + + memcpy(finfo->cmd_buff, (char*)val, sizeof(finfo->cmd_buff)); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + } + */ + +/* + static void get_max_hdiff(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + + s16 val[3] = {0}; + + set_default_result(info); + + val[0] = info->hdiff_max_x; + val[1] = info->hdiff_max_y; + val[2] = info->hdiff_max_val; + + sprintf(finfo->cmd_buff, "%d", info->hdiff_max_val); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + } + */ + +/* + static void get_min_hdiff(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + + s16 val[3] = {0}; + + set_default_result(info); + + val[0] = info->hdiff_min_x; + val[1] = info->hdiff_min_y; + val[2] = info->hdiff_min_val; + + sprintf(finfo->cmd_buff, "%d", info->hdiff_min_val); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + } + */ + +/* + static void get_max_vdiff(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + + s16 val[3] = {0}; + + set_default_result(info); + + val[0] = info->vdiff_max_x; + val[1] = info->vdiff_max_y; + val[2] = info->vdiff_max_val; + + memcpy(finfo->cmd_buff, (char*)val, sizeof(finfo->cmd_buff)); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + } + */ + +/* + static void get_min_vdiff(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + + s16 val[3] = {0}; + + set_default_result(info); + + val[0] = info->vdiff_min_x; + val[1] = info->vdiff_min_y; + val[2] = info->vdiff_min_val; + + memcpy(finfo->cmd_buff, (char*)val, sizeof(finfo->cmd_buff)); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + } + */ + +/* + static void get_reference(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + struct tsp_raw_data *raw_data = info->raw_data; + unsigned int val; + int x_node, y_node; + int node_num; + + set_default_result(info); + + x_node = finfo->cmd_param[0]; + y_node = finfo->cmd_param[1]; + + if (x_node < 0 || x_node >= info->cap_info.x_node_num || + y_node < 0 || y_node >= info->cap_info.y_node_num) { + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", "abnormal"); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = FAIL; + return; + } + + node_num = x_node * info->cap_info.y_node_num + y_node; + + val = raw_data->ref_data[node_num]; + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%u", val); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; + } + */ + +#if 0 +static void run_preference_read(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + struct tsp_raw_data *raw_data = info->raw_data; + u16 min, max; + s32 i,j; + + set_default_result(info); + + ts_set_touchmode(TOUCH_PDND_MODE); + get_raw_data(info, (u8 *)raw_data->pref_data, 10); + ts_set_touchmode(TOUCH_POINT_MODE); + + min = 0xFFFF; + max = 0x0000; + + for (i = 0; i < info->cap_info.x_node_num; i++) + { + for (j = 0; j < info->cap_info.y_node_num; j++) + { + /*pr_info("pref_data : %d ", + raw_data->pref_data[i * info->cap_info.y_node_num + j]);*/ + + if (raw_data->pref_data[i * info->cap_info.y_node_num + j] < min && + raw_data->pref_data[i * info->cap_info.y_node_num + j] != 0) + min = raw_data->pref_data[i * info->cap_info.y_node_num + j]; + + if (raw_data->pref_data[i * info->cap_info.y_node_num + j] > max) + max = raw_data->pref_data[i * info->cap_info.y_node_num + j]; + + } + /*pr_info("\n");*/ + } + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%d,%d\n", min, max); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: \"%s\"(%d)\n", __func__, finfo->cmd_buff, + strlen(finfo->cmd_buff)); + + return; +} + +static void get_preference(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + struct tsp_raw_data *raw_data = info->raw_data; + unsigned int val; + int x_node, y_node; + int node_num; + + set_default_result(info); + + x_node = finfo->cmd_param[0]; + y_node = finfo->cmd_param[1]; + + if (x_node < 0 || x_node >= info->cap_info.x_node_num || + y_node < 0 || y_node >= info->cap_info.y_node_num) { + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", "abnormal"); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + info->factory_info->cmd_state = FAIL; + + return; + } + + node_num = x_node * info->cap_info.y_node_num + y_node; + + val = raw_data->pref_data[node_num]; + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%u", val); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} +/* + static void run_scantime_read(void *device_data) + { + return; + } + + static void get_scantime(void *device_data) + { + return; + } + */ + +static void run_normal_read(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + ts_set_touchmode(TOUCH_NORMAL_MODE); + get_raw_data(info, (u8 *)info->normal_data, 5); + ts_set_touchmode(TOUCH_POINT_MODE); + finfo->cmd_state = OK; +} +#endif + +#if 0 +static void run_delta_read(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + struct tsp_raw_data *raw_data = info->raw_data; + s16 min, max; + s32 i,j; + + set_default_result(info); + + ts_set_touchmode(TOUCH_DELTA_MODE); + get_raw_data(info, (u8 *)(u8 *)raw_data->delta_data, 5); + ts_set_touchmode(TOUCH_POINT_MODE); + finfo->cmd_state = OK; + + min = (s16)0x7FFF; + max = (s16)0x8000; + + for (i = 0; i < info->cap_info.x_node_num; i++) + { + for (j = 0; j < info->cap_info.y_node_num; j++) + { + /*printk("delta_data : %d\n", raw_data->delta_data[j+i]);*/ + + if (raw_data->delta_data[i * info->cap_info.y_node_num + j] < min && + raw_data->delta_data[i * info->cap_info.y_node_num + j] != 0) + min = raw_data->delta_data[i * info->cap_info.y_node_num + j]; + + if (raw_data->delta_data[i * info->cap_info.y_node_num + j] > max) + max = raw_data->delta_data[i * info->cap_info.y_node_num + j]; + + } + /*printk("\n");*/ + } + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%d,%d\n", min, max); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: \"%s\"(%d)\n", __func__, finfo->cmd_buff, + (int)strlen(finfo->cmd_buff)); + + return; +} +#endif + +/* + static void get_reference_RxDND(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + int y_node, i; + int node_num; + int x_num = info->cap_info.x_node_num, y_num = info->cap_info.y_node_num; + s16 val[20] = {0}; + char buff[40] = {0}; + + set_default_result(info); + + y_node = finfo->cmd_param[0]; + + if (y_node < 0 || y_node > y_num) { + snprintf(buff, sizeof(buff), "%s", "abnormal"); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + finfo->cmd_state = FAIL; + return; + } + + for (i = 0; i < x_num; i++) { + node_num = i*y_num + y_node; + val[i] = info->pdnd_data[node_num]; + } + + memcpy(buff, (char*)val, sizeof(buff)); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + finfo->cmd_state = OK; + + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, + buff, (int)strnlen(buff, sizeof(buff))); + } + */ + +/* + static void get_reference_RxHFDND(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + char buff[40] = {0}; + s16 val[20] = {0}; + int y_node, i; + int node_num; + int x_num = info->cap_info.x_node_num, y_num = info->cap_info.y_node_num; + + set_default_result(info); + + y_node = finfo->cmd_param[0]; + + if (y_node < 0 || y_node > y_num) { + snprintf(buff, sizeof(buff), "%s", "NG"); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + finfo->cmd_state = FAIL; + return; + } + + for (i = 0; i < x_num; i++) { + node_num = i*y_num + y_node; + val[i] = info->hfdnd_data[node_num]; + } + + memcpy(buff, (char*)val, sizeof(buff)); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + finfo->cmd_state = OK; + + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, + buff, (int)strnlen(buff, sizeof(buff))); + } + */ + +/* + static void get_delta(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + struct tsp_raw_data *raw_data = info->raw_data; + unsigned int val; + int x_node, y_node; + int node_num; + + set_default_result(info); + + x_node = finfo->cmd_param[0]; + y_node = finfo->cmd_param[1]; + + if (x_node < 0 || x_node >= info->cap_info.x_node_num || + y_node < 0 || y_node >= info->cap_info.y_node_num) { + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", "abnormal"); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = FAIL; + + return; + } + + node_num = x_node * info->cap_info.y_node_num + y_node; + + val = raw_data->delta_data[node_num]; + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%u", val); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; + } + */ + +/* + static void get_tkey_delta(void *device_data) + { + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + + u16 val; + int btn_node; + int ret; + + set_default_result(info); + + btn_node = finfo->cmd_param[0]; + + if (btn_node < 0 || btn_node > MAX_SUPPORTED_BUTTON_NUM) + goto err_out; + + disable_irq(misc_info->irq); + down(&misc_info->work_lock); + if (misc_info->work_state != NOTHING) { + printk(KERN_INFO "other process occupied.. (%d)\n", + misc_info->work_state); + enable_irq(misc_info->irq); + up(&misc_info->work_lock); + goto err_out; + } + misc_info->work_state = SET_MODE; + + ret = read_data(misc_info->client, BT541_BTN_WIDTH + btn_node, (u8 *)&val, 2); + + if (ret < 0) { + printk(KERN_INFO "read error..\n"); + enable_irq(misc_info->irq); + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + goto err_out; + } + misc_info->work_state = NOTHING; + enable_irq(misc_info->irq); + up(&misc_info->work_lock); + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%u", val); + set_cmd_result(info, finfo->cmd_buff, strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&info->client->dev, "%s: %s(%d)\n", __func__, + finfo->cmd_buff, (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + return; + +err_out: +snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", "NG"); +set_cmd_result(info, finfo->cmd_buff, (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); +finfo->cmd_state = FAIL; +} + */ + +static void hfdnd_spec_adjust(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + int test; + + set_default_result(info); + + test = finfo->cmd_param[0]; + + if (test) { + dnd_v_diff = assy_dnd_v_diff; + dnd_h_diff = assy_dnd_h_diff; + pdnd_max = assy_pdnd_max; + pdnd_min = assy_pdnd_min; + hfdnd_max = assy_hfdnd_max; + hfdnd_min = assy_hfdnd_min; + } else { + dnd_v_diff = tsp_dnd_v_diff; + dnd_h_diff = tsp_dnd_h_diff; + pdnd_max = tsp_pdnd_max; + pdnd_min = tsp_pdnd_min; + hfdnd_max = tsp_hfdnd_max; + hfdnd_min = tsp_hfdnd_min; + } + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", "OK"); + set_cmd_result(info, finfo->cmd_buff, (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: %s(%d)\n", __func__, + finfo->cmd_buff, (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + return; +} + +static void clear_reference_data(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + +#if ESD_TIMER_INTERVAL + esd_timer_stop(info); + write_reg(client, BT541_PERIODICAL_INTERRUPT_INTERVAL, 0); +#endif + + write_reg(client, BT541_EEPROM_INFO_REG, 0xffff); + + write_reg(client, 0xc003, 0x0001); + write_reg(client, 0xc104, 0x0001); + udelay(100); + if (write_cmd(client, BT541_SAVE_STATUS_CMD) != I2C_SUCCESS) + return; + + mdelay(500); + write_reg(client, 0xc003, 0x0000); + write_reg(client, 0xc104, 0x0000); + udelay(100); + +#if ESD_TIMER_INTERVAL + write_reg(client, BT541_PERIODICAL_INTERRUPT_INTERVAL, + SCAN_RATE_HZ * ESD_TIMER_INTERVAL); + esd_timer_start(CHECK_ESD_TIMER, info); +#endif + dev_info(&client->dev, "%s: TSP clear calibration bit\n", __func__); + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", "OK"); + set_cmd_result(info, finfo->cmd_buff, (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: %s(%d)\n", __func__, + finfo->cmd_buff, (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + return; +} + +static void run_ref_calibration(void *device_data) +{ + struct bt541_ts_info *info = (struct bt541_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + int i; + + set_default_result(info); + +#if ESD_TIMER_INTERVAL + esd_timer_stop(info); + write_reg(client, BT541_PERIODICAL_INTERRUPT_INTERVAL, 0); +#endif + + write_reg(client, 0x01CA, 1300); + if (ts_hw_calibration(info) == true) + dev_info(&client->dev, "%s: TSP calibration Pass\n", __func__); + else + dev_info(&client->dev, "%s: TSP calibration Fail\n", __func__); + + write_reg(client, 0x01CA, 0); + write_reg(client, 0x0149, 0); + + for (i = 0; i < 5; i++) { + write_cmd(client, BT541_CLEAR_INT_STATUS_CMD); + udelay(10); + } + +#if ESD_TIMER_INTERVAL + write_reg(client, BT541_PERIODICAL_INTERRUPT_INTERVAL, + SCAN_RATE_HZ * ESD_TIMER_INTERVAL); + esd_timer_start(CHECK_ESD_TIMER, info); +#endif + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", "OK"); + set_cmd_result(info, finfo->cmd_buff, (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: %s(%d)\n", __func__, + finfo->cmd_buff, (int)strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + return; +} + +static ssize_t store_cmd(struct device *dev, struct device_attribute + *devattr, const char *buf, size_t count) +{ + struct bt541_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + char *cur, *start, *end; + char buff[TSP_CMD_STR_LEN] = {0}; + int len, i; + struct tsp_cmd *tsp_cmd_ptr = NULL; + char delim = ','; + bool cmd_found = false; + int param_cnt = 0; + + if (finfo->cmd_is_running == true) { + dev_err(&client->dev, "%s: other cmd is running\n", __func__); + goto err_out; + } + + /* check lock */ + mutex_lock(&finfo->cmd_lock); + finfo->cmd_is_running = true; + mutex_unlock(&finfo->cmd_lock); + + finfo->cmd_state = RUNNING; + + for (i = 0; i < ARRAY_SIZE(finfo->cmd_param); i++) + finfo->cmd_param[i] = 0; + + len = (int)count; + if (*(buf + len - 1) == '\n') + len--; + + memset(finfo->cmd, 0x00, ARRAY_SIZE(finfo->cmd)); + memcpy(finfo->cmd, buf, len); + + cur = strchr(buf, (int)delim); + if (cur) + memcpy(buff, buf, cur - buf); + else + memcpy(buff, buf, len); + + /* find command */ + list_for_each_entry(tsp_cmd_ptr, &finfo->cmd_list_head, list) { + if (!strcmp(buff, tsp_cmd_ptr->cmd_name)) { + cmd_found = true; + break; + } + } + + /* set not_support_cmd */ + if (!cmd_found) { + list_for_each_entry(tsp_cmd_ptr, &finfo->cmd_list_head, list) { + if (!strcmp("not_support_cmd", tsp_cmd_ptr->cmd_name)) + break; + } + } + + /* parsing parameters */ + if (cur && cmd_found) { + cur++; + start = cur; + memset(buff, 0x00, ARRAY_SIZE(buff)); + do { + if (*cur == delim || cur - buf == len) { + end = cur; + memcpy(buff, start, end - start); + *(buff + strlen(buff)) = '\0'; + finfo->cmd_param[param_cnt] = + (int)simple_strtol(buff, NULL, 10); + start = cur + 1; + memset(buff, 0x00, ARRAY_SIZE(buff)); + param_cnt++; + } + cur++; + } while (cur - buf <= len); + } + + dev_info(&client->dev, "cmd = %s\n", tsp_cmd_ptr->cmd_name); + /* for (i = 0; i < param_cnt; i++) + dev_info(&client->dev, "cmd param %d= %d\n", i, finfo->cmd_param[i]);*/ + + tsp_cmd_ptr->cmd_func(info); + + mutex_lock(&finfo->cmd_lock); + finfo->cmd_is_running = false; + mutex_unlock(&finfo->cmd_lock); + +err_out: + return count; +} + +static ssize_t show_cmd_status(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct bt541_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + dev_info(&client->dev, "tsp cmd: status:%d\n", finfo->cmd_state); + + if (finfo->cmd_state == WAITING) + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "WAITING"); + + else if (finfo->cmd_state == RUNNING) + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "RUNNING"); + + else if (finfo->cmd_state == OK) + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "OK"); + + else if (finfo->cmd_state == FAIL) + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "FAIL"); + + else if (finfo->cmd_state == NOT_APPLICABLE) + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "NOT_APPLICABLE"); + + return snprintf(buf, sizeof(finfo->cmd_buff), + "%s\n", finfo->cmd_buff); +} + +static ssize_t show_cmd_result(struct device *dev, struct device_attribute + *devattr, char *buf) +{ + struct bt541_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + dev_info(&client->dev, "tsp cmd: result: %s\n", finfo->cmd_result); + + finfo->cmd_state = WAITING; + + return snprintf(buf, sizeof(finfo->cmd_result), + "%s\n", finfo->cmd_result); +} + +static DEVICE_ATTR(cmd, S_IWUSR | S_IWGRP, NULL, store_cmd); +static DEVICE_ATTR(cmd_status, S_IRUGO, show_cmd_status, NULL); +static DEVICE_ATTR(cmd_result, S_IRUGO, show_cmd_result, NULL); + +static struct attribute *touchscreen_attributes[] = { + &dev_attr_cmd.attr, + &dev_attr_cmd_status.attr, + &dev_attr_cmd_result.attr, + NULL, +}; + +static struct attribute_group touchscreen_attr_group = { + .attrs = touchscreen_attributes, +}; + +#ifdef SUPPORTED_TOUCH_KEY +static ssize_t show_touchkey_threshold(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct bt541_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + struct capa_info *cap = &(info->cap_info); + +#ifdef NOT_SUPPORTED_TOUCH_DUMMY_KEY + dev_info(&client->dev, "%s: key threshold = %d\n", __func__, + cap->key_threshold); + + return snprintf(buf, 41, "%d", cap->key_threshold); +#else + dev_info(&client->dev, "%s: key threshold = %d %d %d %d\n", __func__, + cap->dummy_threshold, cap->key_threshold, cap->key_threshold, cap->dummy_threshold); + + return snprintf(buf, 41, "%d %d %d %d", cap->dummy_threshold, + cap->key_threshold, cap->key_threshold, + cap->dummy_threshold); +#endif +} +#if 0 +static ssize_t enable_dummy_key(struct device *dev, + struct device_attribute *attr, char *buf, size_t count) +{ + static char enable = '0'; + struct bt541_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + + if (!strcmp(buf, "")) + count = sprintf(buf, "%c", enable); + else { + if ((buf[0] - '0' <= 1) && count == 2) + enable = *buf; + else { + dev_err(&client->dev, "%s: Invalid parameter\n", __func__); + + goto err_out; + } + } + + dev_info(&client->dev, "%s: Extra button event %c\n", __func__, enable); + + return count; + +err_out: + return sprintf(buf, "NG"); + + return 0; +} +#endif + +static ssize_t show_touchkey_sensitivity(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct bt541_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + u16 val = 0; + int ret; + int i; + +#ifdef NOT_SUPPORTED_TOUCH_DUMMY_KEY + if (!strcmp(attr->attr.name, "touchkey_recent")) + i = 0; + else if (!strcmp(attr->attr.name, "touchkey_back")) + i = 1; + else { + dev_err(&client->dev, "%s: Invalid attribute\n", __func__); + + goto err_out; + } + +#else + if (!strcmp(attr->attr.name, "touchkey_dummy_btn1")) + i = 0; + else if (!strcmp(attr->attr.name, "touchkey_recent")) + i = 1; + else if (!strcmp(attr->attr.name, "touchkey_back")) + i = 2; + else if (!strcmp(attr->attr.name, "touchkey_dummy_btn4")) + i = 3; + else if (!strcmp(attr->attr.name, "touchkey_dummy_btn5")) + i = 4; + else if (!strcmp(attr->attr.name, "touchkey_dummy_btn6")) + i = 5; + else { + dev_err(&client->dev, "%s: Invalid attribute\n", __func__); + + goto err_out; + } +#endif + ret = read_data(client, BT541_BTN_WIDTH + i, (u8 *)&val, 2); + if (ret < 0) { + dev_err(&client->dev, "%s: Failed to read %d's key sensitivity\n", + __func__, i); + + goto err_out; + } + + dev_info(&client->dev, "%s: %d's key sensitivity = %d\n", + __func__, i, val); + + return snprintf(buf, 6, "%d", val); + +err_out: + return sprintf(buf, "NG"); +} + +static ssize_t show_back_key_raw_data(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return 0; +} + +static ssize_t show_menu_key_raw_data(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return 0; +} +/* + static ssize_t show_back_key_idac_data(struct device *dev, + struct device_attribute *attr, char *buf) + { + return 0; + } + + static ssize_t show_menu_key_idac_data(struct device *dev, + struct device_attribute *attr, char *buf) + { + return 0; + } + */ + +static DEVICE_ATTR(touchkey_threshold, S_IRUGO, show_touchkey_threshold, NULL); +/*static DEVICE_ATTR(touch_sensitivity, S_IRUGO, back_key_state_show, NULL);*/ +//static DEVICE_ATTR(extra_button_event, S_IWUSR | S_IWGRP | S_IRUGO, NULL, enable_dummy_key); +static DEVICE_ATTR(touchkey_recent, S_IRUGO, show_touchkey_sensitivity, NULL); +static DEVICE_ATTR(touchkey_back, S_IRUGO, show_touchkey_sensitivity, NULL); +#ifndef NOT_SUPPORTED_TOUCH_DUMMY_KEY +static DEVICE_ATTR(touchkey_dummy_btn1, S_IRUGO, + show_touchkey_sensitivity, NULL); +static DEVICE_ATTR(touchkey_dummy_btn3, S_IRUGO, + show_touchkey_sensitivity, NULL); +static DEVICE_ATTR(touchkey_dummy_btn4, S_IRUGO, + show_touchkey_sensitivity, NULL); +static DEVICE_ATTR(touchkey_dummy_btn6, S_IRUGO, + show_touchkey_sensitivity, NULL); +#endif +/*static DEVICE_ATTR(autocal_stat, S_IRUGO, show_autocal_status, NULL);*/ +static DEVICE_ATTR(touchkey_raw_back, S_IRUGO, show_back_key_raw_data, NULL); +static DEVICE_ATTR(touchkey_raw_menu, S_IRUGO, show_menu_key_raw_data, NULL); +/*static DEVICE_ATTR(touchkey_idac_back, S_IRUGO, show_back_key_idac_data, NULL); + static DEVICE_ATTR(touchkey_idac_menu, S_IRUGO, show_menu_key_idac_data, NULL);*/ + +static struct attribute *touchkey_attributes[] = { + &dev_attr_touchkey_threshold.attr, + /*&dev_attr_touch_sensitivity.attr,*/ + &dev_attr_touchkey_back.attr, + &dev_attr_touchkey_recent.attr, + //&dev_attr_autocal_stat.attr, + //&dev_attr_extra_button_event.attr, + &dev_attr_touchkey_raw_menu.attr, + &dev_attr_touchkey_raw_back.attr, +#ifndef NOT_SUPPORTED_TOUCH_DUMMY_KEY + &dev_attr_touchkey_dummy_btn1.attr, + &dev_attr_touchkey_dummy_btn3.attr, + &dev_attr_touchkey_dummy_btn4.attr, + &dev_attr_touchkey_dummy_btn6.attr, +#endif + //&dev_attr_touchkey_idac_back.attr, + //&dev_attr_touchkey_idac_menu.attr, + NULL, +}; +static struct attribute_group touchkey_attr_group = { + .attrs = touchkey_attributes, +}; +#endif + +static int init_sec_factory(struct bt541_ts_info *info) +{ + struct device *factory_ts_dev; +#ifdef SUPPORTED_TOUCH_KEY + struct device *factory_tk_dev; +#endif + struct tsp_factory_info *factory_info; + struct tsp_raw_data *raw_data; + int ret; + int i; + + factory_info = kzalloc(sizeof(struct tsp_factory_info), GFP_KERNEL); + if (unlikely(!factory_info)) { + dev_err(&info->client->dev, "%s: Failed to allocate memory\n", + __func__); + ret = -ENOMEM; + + goto err_alloc1; + } + raw_data = kzalloc(sizeof(struct tsp_raw_data), GFP_KERNEL); + if (unlikely(!raw_data)) { + dev_err(&info->client->dev, "%s: Failed to allocate memory\n", + __func__); + ret = -ENOMEM; + + goto err_alloc2; + } + + INIT_LIST_HEAD(&factory_info->cmd_list_head); + for (i = 0; i < ARRAY_SIZE(tsp_cmds); i++) + list_add_tail(&tsp_cmds[i].list, &factory_info->cmd_list_head); + + factory_ts_dev = device_create(sec_class, NULL, 0, info, "tsp"); + if (unlikely(!factory_ts_dev)) { + dev_err(&info->client->dev, "Failed to create factory dev\n"); + ret = -ENODEV; + goto err_create_device; + } + +#ifdef SUPPORTED_TOUCH_KEY + factory_tk_dev = device_create(sec_class, NULL, 0, info, "sec_touchkey"); + if (IS_ERR(factory_tk_dev)) { + dev_err(&info->client->dev, "Failed to create factory dev\n"); + ret = -ENODEV; + goto err_create_device; + } +#endif + + ret = sysfs_create_group(&factory_ts_dev->kobj, &touchscreen_attr_group); + if (unlikely(ret)) { + dev_err(&info->client->dev, "Failed to create touchscreen sysfs group\n"); + goto err_create_sysfs; + } + +#ifdef SUPPORTED_TOUCH_KEY + ret = sysfs_create_group(&factory_tk_dev->kobj, &touchkey_attr_group); + if (unlikely(ret)) { + dev_err(&info->client->dev, "Failed to create touchkey sysfs group\n"); + goto err_create_sysfs; + } +#endif + + mutex_init(&factory_info->cmd_lock); + factory_info->cmd_is_running = false; + + info->factory_info = factory_info; + info->raw_data = raw_data; + + dnd_v_diff = assy_dnd_v_diff; + dnd_h_diff = assy_dnd_h_diff; + pdnd_max = assy_pdnd_max; + pdnd_min = assy_pdnd_min; + hfdnd_max = assy_hfdnd_max; + hfdnd_min = assy_hfdnd_min; + + return ret; + +err_create_sysfs: +err_create_device: + kfree(raw_data); +err_alloc2: + kfree(factory_info); +err_alloc1: + + return ret; +} +#endif + +static int ts_misc_fops_open(struct inode *inode, struct file *filp) +{ + return 0; +} + +static int ts_misc_fops_close(struct inode *inode, struct file *filp) +{ + return 0; +} + +static long ts_misc_fops_ioctl(struct file *filp, + unsigned int cmd, unsigned long arg) +{ + void __user *argp = (void __user *)arg; + struct raw_ioctl raw_ioctl; + u8 *u8Data; + int ret = 0; + size_t sz = 0; + u16 version; + u16 mode; + + struct reg_ioctl reg_ioctl; + u16 val; + int nval = 0; + + if (misc_info == NULL) + { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + + switch (cmd) { + + case TOUCH_IOCTL_GET_DEBUGMSG_STATE: + ret = m_ts_debug_mode; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_SET_DEBUGMSG_STATE: + if (copy_from_user(&nval, argp, 4)) { + pr_info("[zinitix_touch] error : copy_from_user\n"); + return -1; + } + if (nval) + pr_info("[zinitix_touch] on debug mode (%d)\n", + nval); + else + pr_info("[zinitix_touch] off debug mode (%d)\n", + nval); + m_ts_debug_mode = nval; + break; + + case TOUCH_IOCTL_GET_CHIP_REVISION: + ret = misc_info->cap_info.ic_revision; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_FW_VERSION: + ret = misc_info->cap_info.fw_version; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_REG_DATA_VERSION: + ret = misc_info->cap_info.reg_data_version; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_VARIFY_UPGRADE_SIZE: + if (copy_from_user(&sz, argp, sizeof(size_t))) + return -1; + + printk(KERN_INFO "[zinitix_touch]: firmware size = %d\r\n", (int)sz); + if (misc_info->cap_info.ic_fw_size != sz) { + pr_info("[zinitix_touch]: firmware size error\r\n"); + return -1; + } + break; + + case TOUCH_IOCTL_VARIFY_UPGRADE_DATA: + if (copy_from_user(m_firmware_data, + argp, misc_info->cap_info.ic_fw_size)) + return -1; + + version = (u16) (m_firmware_data[52] | (m_firmware_data[53]<<8)); + + pr_info("[zinitix_touch]: firmware version = %x\r\n", version); + + if (copy_to_user(argp, &version, sizeof(version))) + return -1; + break; + + case TOUCH_IOCTL_START_UPGRADE: + return ts_upgrade_sequence((u8 *)m_firmware_data); + + case TOUCH_IOCTL_GET_X_RESOLUTION: + ret = misc_info->pdata->x_resolution; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_Y_RESOLUTION: + ret = misc_info->pdata->y_resolution; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_X_NODE_NUM: + ret = misc_info->cap_info.x_node_num; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_Y_NODE_NUM: + ret = misc_info->cap_info.y_node_num; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_TOTAL_NODE_NUM: + ret = misc_info->cap_info.total_node_num; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_HW_CALIBRAION: + ret = -1; + disable_irq(misc_info->irq); + down(&misc_info->work_lock); + if (misc_info->work_state != NOTHING) { + pr_info("[zinitix_touch]: other process occupied.. (%d)\r\n", + misc_info->work_state); + up(&misc_info->work_lock); + return -1; + } + misc_info->work_state = HW_CALIBRAION; + mdelay(100); + + /* h/w calibration */ + if (ts_hw_calibration(misc_info) == true) + ret = 0; + + mode = misc_info->touch_mode; + if (write_reg(misc_info->client, + BT541_TOUCH_MODE, mode) != I2C_SUCCESS) { + pr_err("[zinitix_touch]: failed to set touch mode %d.\n", + mode); + goto fail_hw_cal; + } + + if (write_cmd(misc_info->client, + BT541_SWRESET_CMD) != I2C_SUCCESS) + goto fail_hw_cal; + + enable_irq(misc_info->irq); + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + return ret; +fail_hw_cal: + enable_irq(misc_info->irq); + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + return -1; + + case TOUCH_IOCTL_SET_RAW_DATA_MODE: + if (misc_info == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + if (copy_from_user(&nval, argp, 4)) { + pr_info("[zinitix_touch] error : copy_from_user\r\n"); + misc_info->work_state = NOTHING; + return -1; + } + ts_set_touchmode((u16)nval); + + return 0; + + case TOUCH_IOCTL_GET_REG: + if (misc_info == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + down(&misc_info->work_lock); + if (misc_info->work_state != NOTHING) { + pr_info("[zinitix_touch]:other process occupied.. (%d)\n", + misc_info->work_state); + up(&misc_info->work_lock); + return -1; + } + + misc_info->work_state = SET_MODE; + + if (copy_from_user(®_ioctl, + argp, sizeof(struct reg_ioctl))) { + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + pr_info("[zinitix_touch] error : copy_from_user\n"); + return -1; + } + + if (read_data(misc_info->client, + (u16)reg_ioctl.addr, (u8 *)&val, 2) < 0) + ret = -1; + + nval = (int)val; + + if (copy_to_user((void *)(unsigned long)reg_ioctl.val, (u8 *)&nval, 4)) { + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + pr_info("[zinitix_touch] error : copy_to_user\n"); + return -1; + } + + zinitix_debug_msg("read : reg addr = 0x%x, val = 0x%x\n", + reg_ioctl.addr, nval); + + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + return ret; + + case TOUCH_IOCTL_SET_REG: + + down(&misc_info->work_lock); + if (misc_info->work_state != NOTHING) { + pr_info("[zinitix_touch]: other process occupied.. (%d)\n", + misc_info->work_state); + up(&misc_info->work_lock); + return -1; + } + + misc_info->work_state = SET_MODE; + if (copy_from_user(®_ioctl, + argp, sizeof(struct reg_ioctl))) { + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + pr_info("[zinitix_touch] error : copy_from_user(1)\n"); + return -1; + } + + if (copy_from_user(&val, (void *)(unsigned long)reg_ioctl.val, 4)) { + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + pr_info("[zinitix_touch] error : copy_from_user(2)\n"); + return -1; + } + + if (write_reg(misc_info->client, + (u16)reg_ioctl.addr, val) != I2C_SUCCESS) + ret = -1; + + zinitix_debug_msg("write : reg addr = 0x%x, val = 0x%x\r\n", + reg_ioctl.addr, val); + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + return ret; + + case TOUCH_IOCTL_DONOT_TOUCH_EVENT: + + if (misc_info == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + down(&misc_info->work_lock); + if (misc_info->work_state != NOTHING) { + pr_info("[zinitix_touch]: other process occupied.. (%d)\r\n", + misc_info->work_state); + up(&misc_info->work_lock); + return -1; + } + + misc_info->work_state = SET_MODE; + if (write_reg(misc_info->client, + BT541_INT_ENABLE_FLAG, 0) != I2C_SUCCESS) + ret = -1; + zinitix_debug_msg("write : reg addr = 0x%x, val = 0x0\r\n", + BT541_INT_ENABLE_FLAG); + + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + return ret; + + case TOUCH_IOCTL_SEND_SAVE_STATUS: + if (misc_info == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + down(&misc_info->work_lock); + if (misc_info->work_state != NOTHING) { + pr_info("[zinitix_touch]: other process occupied.." \ + "(%d)\r\n", misc_info->work_state); + up(&misc_info->work_lock); + return -1; + } + misc_info->work_state = SET_MODE; + ret = 0; + write_reg(misc_info->client, 0xc003, 0x0001); + write_reg(misc_info->client, 0xc104, 0x0001); + if (write_cmd(misc_info->client, + BT541_SAVE_STATUS_CMD) != I2C_SUCCESS) + ret = -1; + + mdelay(1000); /* for fusing eeprom */ + write_reg(misc_info->client, 0xc003, 0x0000); + write_reg(misc_info->client, 0xc104, 0x0000); + + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + return ret; + + case TOUCH_IOCTL_GET_RAW_DATA: + if (misc_info == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + + if (misc_info->touch_mode == TOUCH_POINT_MODE) + return -1; + + down(&misc_info->raw_data_lock); + if (misc_info->update == 0) { + up(&misc_info->raw_data_lock); + return -2; + } + + if (copy_from_user(&raw_ioctl, + argp, sizeof(struct raw_ioctl))) { + up(&misc_info->raw_data_lock); + pr_info("[zinitix_touch] error : copy_from_user\r\n"); + return -1; + } + + misc_info->update = 0; + + u8Data = (u8 *)&misc_info->cur_data[0]; + if (raw_ioctl.sz > MAX_TRAW_DATA_SZ*2) + raw_ioctl.sz = MAX_TRAW_DATA_SZ*2; + if (copy_to_user((void *)(unsigned long)raw_ioctl.buf, (u8 *)u8Data, + raw_ioctl.sz)) { + up(&misc_info->raw_data_lock); + return -1; + } + + up(&misc_info->raw_data_lock); + return 0; + + default: + break; + } + return 0; +} + +#ifdef CONFIG_OF +static const struct of_device_id tsp_dt_ids[] = { + { .compatible = "Zinitix,bt541_ts", }, + {}, +}; +MODULE_DEVICE_TABLE(of, tsp_dt_ids); +#endif +static int bt541_ts_probe_dt(struct device_node *np, + struct device *dev, + struct bt541_ts_platform_data *pdata) +{ + int ret; + + if (!np) + return -EINVAL; + + pdata->gpio_int = of_get_named_gpio(np,"gpios", 0); + if (pdata->gpio_int < 0) { + pr_err("%s: of_get_named_gpio failed: %d\n", __func__, + pdata->gpio_int); + return -EINVAL; + } + ret = of_property_read_u32(np, "bt541,x_resolution", + &pdata->x_resolution); + if (ret < 0) + return ret; + ret = of_property_read_u32(np, "bt541,y_resolution", + &pdata->y_resolution); + if (ret < 0) + return ret; + ret = of_property_read_u32(np, "bt541,orientation", + &pdata->orientation); + if (ret < 0) + return ret; + + ret = of_property_read_u32(np, "bt541,page_size", &pdata->page_size); + if (ret < 0) + return ret; + + ret = of_property_read_u32(np, "tsp_vdd_supply_type", + &pdata->tsp_supply_type); + if (ret < 0) { + pr_err("%s: failed to read property tsp_vdd_supply_type\n", + __func__); + return ret; + } + + if (pdata->tsp_supply_type == TSP_LDO_SUPPLY) { + pdata->gpio_ldo_en = of_get_named_gpio(np, "gpio_ldo_en", 0); + if (pdata->gpio_ldo_en < 0) { + pr_err("%s: of_get_named_gpio failed: %d\n", __func__, + pdata->gpio_ldo_en); + return -EINVAL; + } + } + pdata->tsp_power = bt541_power; + return 0; + +} + +static int bt541_ts_probe(struct i2c_client *client, + const struct i2c_device_id *i2c_id) +{ + struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); + struct bt541_ts_platform_data *pdata = client->dev.platform_data; + struct bt541_ts_info *info; + struct input_dev *input_dev; + int ret = 0; + int i; + + struct device_node *np = client->dev.of_node; + + if (IS_ENABLED(CONFIG_OF)) { + if (!pdata) { + pdata = devm_kzalloc(&client->dev, + sizeof(*pdata), GFP_KERNEL); + if (!pdata) + return -ENOMEM; + } + ret = bt541_ts_probe_dt(np, &client->dev, pdata); + if (ret) + goto err_no_platform_data; + + } else if (!pdata) { + dev_err(&client->dev, "Not exist platform data\n"); + return -EINVAL; + } + + if (!i2c_check_functionality(adapter, I2C_FUNC_I2C)) { + dev_err(&client->dev, "Not compatible i2c function\n"); + ret = -EIO; + goto err_no_platform_data; + } + + info = kzalloc(sizeof(struct bt541_ts_info), GFP_KERNEL); + if (!info) { + dev_err(&client->dev, "Failed to allocate memory\n"); + ret = -ENOMEM; + goto err_no_platform_data; + } + ret = gpio_request(pdata->gpio_int, "bt541_int"); + if (ret < 0) { + pr_err("%s: Request GPIO failed, gpio %d (%d)\n", BT541_TS_DEVICE, + pdata->gpio_int, ret); + goto err_gpio_alloc; + } + gpio_direction_input(pdata->gpio_int); + i2c_set_clientdata(client, info); + info->client = client; + info->pdata = pdata; + + input_dev = input_allocate_device(); + if (!input_dev) { + dev_err(&client->dev, "Failed to allocate input device\n"); + ret = -EPERM; + goto err_alloc; + } + + info->input_dev = input_dev; + info->work_state = PROBE; + + /* power on */ + if (bt541_power_control(info, POWER_ON_SEQUENCE) == false) { + ret = -EPERM; + goto err_power_sequence; + } + + /* To Do */ + /* FW version read from tsp */ + + memset(&info->reported_touch_info, + 0x0, sizeof(struct point_info)); + + /* init touch mode */ + info->touch_mode = TOUCH_POINT_MODE; + misc_info = info; + + if (init_touch(info, true) == false) { + ret = -EPERM; + goto err_input_unregister_device; + } + + for (i = 0; i < MAX_SUPPORTED_BUTTON_NUM; i++) + info->button[i] = ICON_BUTTON_UNCHANGE; + + snprintf(info->phys, sizeof(info->phys), + "%s/input0", dev_name(&client->dev)); + input_dev->name = "sec_touchscreen"; + input_dev->id.bustype = BUS_I2C; + /* input_dev->id.vendor = 0x0001; */ + input_dev->phys = info->phys; + /* input_dev->id.product = 0x0002; */ + /* input_dev->id.version = 0x0100; */ + input_dev->dev.parent = &client->dev; + + set_bit(EV_SYN, info->input_dev->evbit); + set_bit(EV_KEY, info->input_dev->evbit); + set_bit(EV_ABS, info->input_dev->evbit); + set_bit(INPUT_PROP_DIRECT, info->input_dev->propbit); + + for (i = 0; i < MAX_SUPPORTED_BUTTON_NUM; i++) + set_bit(BUTTON_MAPPING_KEY[i], info->input_dev->keybit); + + if (pdata->orientation & TOUCH_XY_SWAP) { + input_set_abs_params(info->input_dev, ABS_MT_POSITION_Y, + info->cap_info.MinX, + info->cap_info.MaxX + ABS_PT_OFFSET, + 0, 0); + input_set_abs_params(info->input_dev, ABS_MT_POSITION_X, + info->cap_info.MinY, + info->cap_info.MaxY + ABS_PT_OFFSET, + 0, 0); + } else { + input_set_abs_params(info->input_dev, ABS_MT_POSITION_X, + info->cap_info.MinX, + info->cap_info.MaxX + ABS_PT_OFFSET, + 0, 0); + input_set_abs_params(info->input_dev, ABS_MT_POSITION_Y, + info->cap_info.MinY, + info->cap_info.MaxY + ABS_PT_OFFSET, + 0, 0); + } + + input_set_abs_params(info->input_dev, ABS_MT_TOUCH_MAJOR, + 0, 255, 0, 0); + input_set_abs_params(info->input_dev, ABS_MT_WIDTH_MAJOR, + 0, 255, 0, 0); + +#if (TOUCH_POINT_MODE == 2) + input_set_abs_params(info->input_dev, ABS_MT_TOUCH_MINOR, + 0, 255, 0, 0); + /* input_set_abs_params(info->input_dev, ABS_MT_WIDTH_MINOR, + 0, 255, 0, 0); */ + /* input_set_abs_params(info->input_dev, ABS_MT_ORIENTATION, + -128, 127, 0, 0); */ + /* input_set_abs_params(info->input_dev, ABS_MT_ANGLE, + -90, 90, 0, 0);*/ + input_set_abs_params(info->input_dev, ABS_MT_PALM, + 0, 1, 0, 0); +#endif + + set_bit(MT_TOOL_FINGER, info->input_dev->keybit); + input_mt_init_slots(info->input_dev, info->cap_info.multi_fingers,0); + + zinitix_debug_msg("register %s input device \r\n", + info->input_dev->name); + input_set_drvdata(info->input_dev, info); + ret = input_register_device(info->input_dev); + if (ret) { + printk(KERN_ERR "unable to register %s input device\r\n", + info->input_dev->name); + goto err_input_register_device; + } + + /* configure irq */ + info->irq = gpio_to_irq(pdata->gpio_int); + if (info->irq < 0) + printk(KERN_INFO "error. gpio_to_irq(..) function is not \ + supported? you should define GPIO_TOUCH_IRQ.\r\n"); + + zinitix_debug_msg("request irq (irq = %d, pin = %d) \r\n", + info->irq, pdata->gpio_int); + + info->work_state = NOTHING; +#if TOUCH_BOOSTER + info->finger_cnt = 0; +#endif + sema_init(&info->work_lock, 1); + +#if ESD_TIMER_INTERVAL + spin_lock_init(&info->lock); + INIT_WORK(&info->tmr_work, ts_tmr_work); + esd_tmr_workqueue = + create_singlethread_workqueue("esd_tmr_workqueue"); + + if (!esd_tmr_workqueue) { + dev_err(&client->dev, "Failed to create esd tmr work queue\n"); + ret = -EPERM; + + goto err_esd_input_unregister_device; + } + + esd_timer_init(info); + esd_timer_start(CHECK_ESD_TIMER, info); +#if defined(TSP_VERBOSE_DEBUG) + dev_info(&client->dev, "Started esd timer\n"); +#endif +#endif + ret = request_threaded_irq(info->irq, NULL, bt541_touch_work, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT , BT541_TS_DEVICE, info); + + if (ret) { + printk(KERN_ERR "unable to register irq.(%s)\r\n", + info->input_dev->name); + goto err_request_irq; + } + dev_info(&client->dev, "zinitix touch probe.\r\n"); + sprd_i2c_ctl_chg_clk(1, 400000); // up h/w i2c 1 400k +#ifdef CONFIG_HAS_EARLYSUSPEND + info->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + info->early_suspend.suspend = bt541_ts_early_suspend; + info->early_suspend.resume = bt541_ts_late_resume; + register_early_suspend(&info->early_suspend); +#endif + +#if defined(CONFIG_PM_RUNTIME) && !defined(CONFIG_HAS_EARLYSUSPEND) + pm_runtime_enable(&client->dev); +#endif + + sema_init(&info->raw_data_lock, 1); + + ret = misc_register(&touch_misc_device); + if (ret) { + dev_err(&client->dev, "Failed to register touch misc device\n"); + goto err_misc_register; + } + +#ifdef SEC_FACTORY_TEST + ret = init_sec_factory(info); + if (ret) { + dev_err(&client->dev, "Failed to init sec factory device\n"); + + goto err_kthread_create_failed; + } +#endif + + return 0; + +#ifdef SEC_FACTORY_TEST +err_kthread_create_failed: + kfree(info->factory_info); + kfree(info->raw_data); +#endif +err_misc_register: + free_irq(info->irq, info); +err_request_irq: +#if ESD_TIMER_INTERVAL +err_esd_input_unregister_device: +#endif +err_input_unregister_device: + input_unregister_device(info->input_dev); +err_input_register_device: + tsp_charger_status_cb = NULL; +err_power_sequence: + input_free_device(info->input_dev); +err_alloc: + kfree(info); +err_gpio_alloc: + gpio_free(pdata->gpio_int); +err_no_platform_data: + if (IS_ENABLED(CONFIG_OF)) + devm_kfree(&client->dev, (void *)pdata); + + dev_info(&client->dev, "Failed to probe\n"); + return ret; +} + +static int bt541_ts_remove(struct i2c_client *client) +{ + struct bt541_ts_info *info = i2c_get_clientdata(client); + struct bt541_ts_platform_data *pdata = info->pdata; + + disable_irq(info->irq); + down(&info->work_lock); + + info->work_state = REMOVE; + +#ifdef SEC_FACTORY_TEST + kfree(info->factory_info); + kfree(info->raw_data); +#endif +#if ESD_TIMER_INTERVAL + flush_work(&info->tmr_work); + write_reg(info->client, BT541_PERIODICAL_INTERRUPT_INTERVAL, 0); + esd_timer_stop(info); +#if defined(TSP_VERBOSE_DEBUG) + dev_info(&client->dev, "Stopped esd timer\n"); +#endif + destroy_workqueue(esd_tmr_workqueue); +#endif + + if (info->irq) + free_irq(info->irq, info); + + misc_deregister(&touch_misc_device); + +#ifdef CONFIG_HAS_EARLYSUSPEND + unregister_early_suspend(&info->early_suspend); +#endif + + if (gpio_is_valid(pdata->gpio_int) != 0) + gpio_free(pdata->gpio_int); + + tsp_charger_status_cb = NULL; + + input_unregister_device(info->input_dev); + input_free_device(info->input_dev); + up(&info->work_lock); + kfree(info); + + return 0; +} + +void bt541_ts_shutdown(struct i2c_client *client) +{ + struct bt541_ts_info *info = i2c_get_clientdata(client); + + dev_info(&client->dev, "%s++\n",__func__); + disable_irq(info->irq); + down(&info->work_lock); +#if ESD_TIMER_INTERVAL + flush_work(&info->tmr_work); + esd_timer_stop(info); +#endif + up(&info->work_lock); + bt541_power_control(info, POWER_OFF); + dev_info(&client->dev, "%s--\n",__func__); +} + + +static struct i2c_device_id bt541_idtable[] = { + {BT541_TS_DEVICE, 0}, + { } +}; + +#if defined(CONFIG_PM) && !defined(CONFIG_HAS_EARLYSUSPEND) +static const struct dev_pm_ops bt541_ts_pm_ops ={ +#if defined(CONFIG_PM_RUNTIME) + SET_RUNTIME_PM_OPS(bt541_ts_suspend, bt541_ts_resume,NULL) +#else + SET_SYSTEM_SLEEP_PM_OPS(bt541_ts_suspend, bt541_ts_resume) +#endif +}; +#endif + +static struct i2c_driver bt541_ts_driver = { + .probe = bt541_ts_probe, + .remove = bt541_ts_remove, + .shutdown = bt541_ts_shutdown, + .id_table = bt541_idtable, + .driver = { + .owner = THIS_MODULE, + .name = BT541_TS_DEVICE, + .of_match_table = tsp_dt_ids, +#if defined(CONFIG_PM) && !defined(CONFIG_HAS_EARLYSUSPEND) + .pm = &bt541_ts_pm_ops, +#endif + }, +}; + +extern unsigned int lpcharge; + +static int __init bt541_ts_init(void) +{ + pr_info("[TSP]: %s\n", __func__); + + if (!lpcharge) + return i2c_add_driver(&bt541_ts_driver); + else + return 0; +} + +static void __exit bt541_ts_exit(void) +{ + i2c_del_driver(&bt541_ts_driver); +} + +module_init(bt541_ts_init); +module_exit(bt541_ts_exit); + +MODULE_DESCRIPTION("touch-screen device driver using i2c interface"); +MODULE_AUTHOR(""); +MODULE_LICENSE("GPL"); + diff --git a/drivers/input/touchscreen/zinitix_touch.c b/drivers/input/touchscreen/zinitix_touch.c new file mode 100644 index 00000000..d4ae0dee --- /dev/null +++ b/drivers/input/touchscreen/zinitix_touch.c @@ -0,0 +1,3858 @@ +/* + * + * Zinitix touch driver + * + * Copyright (C) 2009 Zinitix, 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. + * + */ +/* +Version 2.0.0 : using reg data file (2010/11/05) +Version 2.0.1 : syntxt bug fix (2010/11/09) +Version 2.0.2 : Save status cmd delay bug (2010/11/10) +Version 2.0.3 : modify delay 10ms -> 50ms for clear hw calibration bit + : modify ZINITIX_TOTAL_NUMBER_OF_Y register (read only -> read/write ) + : modify SUPPORTED FINGER NUM register (read only -> read/write ) +Version 2.0.4 : [20101116] + Modify Firmware Upgrade routine. +Version 2.0.5 : [20101118] + add esd timer function & some bug fix. + you can select request_threaded_irq or + request_irq, setting USE_THREADED_IRQ. +Version 2.0.6 : [20101123] + add ABS_MT_WIDTH_MAJOR Report +Version 2.0.7 : [20101201] + Modify zinitix_early_suspend() / zinitix_late_resume() routine. +Version 2.0.8 : [20101216] + add using spin_lock option +Version 2.0.9 : [20101216] + Test Version +Version 2.0.10 : [20101217] + add USE_THREAD_METHOD option. + if USE_THREAD_METHOD = 0, you use workqueue +Version 2.0.11 : [20101229] + add USE_UPDATE_SYSFS option for update firmware. + && TOUCH_MODE == 1 mode. +Version 2.0.13 : [20110125] + modify esd timer routine +Version 2.0.14 : [20110217] + esd timer bug fix. (kernel panic) + sysfs bug fix. +Version 2.0.15 : [20110315] + add power off delay ,250ms +Version 2.0.16 : [20110316] + add upgrade method using isp +Version 2.0.17 : [20110406] + change naming rule : sain -> zinitix + (add) pending interrupt skip + add isp upgrade mode + remove warning message when complile +Version 3.0.2 : [20110711] + support bt4x3 series +Version 3.0.3 : [20110720] + add raw data monitoring func. + add the h/w calibration skip option. +Version 3.0.4 : [20110728] + fix using semaphore bug. +Version 3.0.5 : [20110801] + fix some bugs. +Version 3.0.6 : [20110802] + fix Bt4x3 isp upgrade bug. + add USE_TS_MISC_DEVICE option for showing info & upgrade + remove USE_UPDATE_SYSFS option +Version 3.0.7 : [201108016] + merge USE_TS_MISC_DEVICE option and USE_TEST_RAW_TH_DATA_MODE + fix work proceedure bug. +Version 3.0.8 / Version 3.0.9 : [201108017] + add ioctl func. +Version 3.0.10 : [201108030] + support REAL_SUPPORTED_FINGER_NUM +Version 3.0.11 : [201109014] + support zinitix apps. +Version 3.0.12 : [201109015] + add disable touch event func. +Version 3.0.13 : [201109015] + add USING_CHIP_SETTING option : interrupt mask/button num/finger num +Version 3.0.14 : [201109020] + support apps. above kernel version 2.6.35 +Version 3.0.15 : [201101004] + modify timing in firmware upgrade retry when failt to upgrade firmware +Version 3.0.16 : [20111024] + remove thread method. + add resume/suspend function + check code using checkpatch.pl +Version 3.0.19 : [20111124] + modify isp timing : 2ms -> 1ms +Version 3.0.20 : [20120201] + support icecream sandwich + remove bt4x2 option +*/ + +#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 "zinitix_touch.h" +#include "zinitix_touch_bt4x3_firmware.h" +#include "zinitix_touch_bt4x3_reg_data.h" + +#define PHONE_FW_VER 0x05 + +#define TSP_INT 30 +#define TSP_SDA 27 +#define TSP_SCL 26 + +#define TOUCH_ON 1 +#define TOUCH_OFF 0 + +static struct regulator *touch_regulator_2_9=NULL; +static struct regulator *touch_regulator_3_3=NULL; + +#define ZINITIX_DEBUG 0 + +static int m_ts_debug_mode = ZINITIX_DEBUG; + +static int firmware_ret_val = -1; + +#define SYSTEM_MAX_X_RESOLUTION 320 +#define SYSTEM_MAX_Y_RESOLUTION 480 +#define SYSTEM_VALUE 0xFFFB + +/* interrupt pin number*/ +#define GPIO_TOUCH_PIN_NUM 60 +/* interrupt pin IRQ number */ +#define GPIO_TOUCH_IRQ 0 + +static struct workqueue_struct *zinitix_workqueue; + +static struct workqueue_struct *zinitix_tmr_workqueue; + +#define zinitix_debug_msg(fmt, args...) \ + if (m_ts_debug_mode) \ + printk(KERN_INFO "[%-18s:%5d]" fmt, \ + __func__, __LINE__, ## args); + +struct _ts_zinitix_coord { + u16 x; + u16 y; + u8 width; + u8 sub_status; +}; + +struct _ts_zinitix_point_info { + u16 status; + u8 finger_cnt; + u8 time_stamp; + struct _ts_zinitix_coord coord[MAX_SUPPORTED_FINGER_NUM]; +}; + +#define TOUCH_V_FLIP 0x01 +#define TOUCH_H_FLIP 0x02 +#define TOUCH_XY_SWAP 0x04 + +struct _ts_capa_info { + u16 chip_revision; + u16 chip_firmware_version; + u16 chip_reg_data_version; + u16 x_resolution; + u16 y_resolution; + u32 chip_fw_size; + u32 MaxX; + u32 MaxY; + u32 MinX; + u32 MinY; + u32 Orientation; + u8 gesture_support; + u16 multi_fingers; + u16 button_num; + u16 chip_int_mask; +#if USE_TEST_RAW_TH_DATA_MODE + u16 x_node_num; + u16 y_node_num; + u16 total_node_num; + u16 max_y_node; + u16 total_cal_n; +#endif +}; + +enum _ts_work_proceedure { + TS_NO_WORK = 0, + TS_NORMAL_WORK, + TS_ESD_TIMER_WORK, + TS_IN_EALRY_SUSPEND, + TS_IN_SUSPEND, + TS_IN_RESUME, + TS_IN_LATE_RESUME, + TS_IN_UPGRADE, + TS_REMOVE_WORK, + TS_SET_MODE, + TS_HW_CALIBRAION, +}; + +struct zinitix_touch_dev { + struct input_dev *input_dev; + struct task_struct *task; + wait_queue_head_t wait; + struct work_struct work; + struct work_struct tmr_work; + struct i2c_client *client; + struct semaphore update_lock; + u32 i2c_dev_addr; + struct _ts_capa_info cap_info; + char phys[32]; + + bool is_valid_event; + struct _ts_zinitix_point_info touch_info; + struct _ts_zinitix_point_info reported_touch_info; + u16 icon_event_reg; + u16 event_type; + u32 int_gpio_num; + u32 irq; + u8 button[MAX_SUPPORTED_BUTTON_NUM]; + u8 work_proceedure; + struct semaphore work_proceedure_lock; + u8 use_esd_timer; + + bool in_esd_timer; + struct timer_list esd_timeout_tmr; + struct timer_list *p_esd_timeout_tmr; + +#ifdef CONFIG_HAS_EARLYSUSPEND + struct early_suspend early_suspend; +#endif + +#if USE_TEST_RAW_TH_DATA_MODE + struct semaphore raw_data_lock; + u16 raw_mode_flag; + s16 ref_data[MAX_TEST_RAW_DATA]; + s16 cur_data[MAX_RAW_DATA]; + u8 update; +#endif +}; + + +#define ZINITIX_DRIVER_NAME "Zinitix_tsp" + +#define ZINITIX_ISP_NAME "zinitix_isp" +static struct i2c_client *m_isp_client; + +static char IsfwUpdate[20]={0}; + +#define FW_DOWNLOADING "Downloading" +#define FW_DOWNLOAD_COMPLETE "Complete" +#define FW_DOWNLOAD_FAIL "FAIL" +#define FWUP_NOW -1 + +static struct i2c_device_id zinitix_idtable[] = { + {ZINITIX_ISP_NAME, 0}, + {ZINITIX_DRIVER_NAME, 0}, + { } +}; + +static int tsp_testmode = 0; + +static int tsp_check = 1; + +struct zinitix_touch_dev* g_touch_dev; + +struct regulator *tsp_regulator_18 = NULL; +struct regulator *tsp_regulator_33 = NULL; + +/* sys fs */ +struct class *touch_class; +EXPORT_SYMBOL(touch_class); +struct device *firmware_dev; +EXPORT_SYMBOL(firmware_dev); +static ssize_t firmware_show(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t firmware_sw_show(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t firmware_ret_show(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t zinitix_enter_testmode(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t zinitix_enter_normalmode(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t rawdata_pass_fail_zinitix(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t phone_firmware_show(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t part_firmware_show(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t threshold_firmware_show(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t config_firmware_show(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t read_node(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t read_touchkey(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t scantime_zinitix(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t firmware_update_status(struct device *dev, struct device_attribute *attr, char *buf); + +static DEVICE_ATTR(raw_enable, 0444, zinitix_enter_testmode, NULL) ; +static DEVICE_ATTR(raw_disable, 0444, zinitix_enter_normalmode, NULL) ; +static DEVICE_ATTR(raw_value, 0444, rawdata_pass_fail_zinitix, NULL) ; +static DEVICE_ATTR(firmware , S_IRUGO, firmware_show, NULL); +static DEVICE_ATTR(firmware_ver , 0444, firmware_show, NULL); +static DEVICE_ATTR(firmware_ret , S_IRUGO, firmware_ret_show, NULL); +static DEVICE_ATTR(phone_fw_ver,0444, phone_firmware_show, NULL); +static DEVICE_ATTR(part_fw_ver, 0444, part_firmware_show, NULL); +static DEVICE_ATTR(threshold_fw_ver, 0444, threshold_firmware_show, NULL); +static DEVICE_ATTR(config_fw_ver, 0444, config_firmware_show, NULL); +static DEVICE_ATTR(node_read, 0444, read_node, NULL) ; +static DEVICE_ATTR(touchkey_read, 0444, read_touchkey, NULL) ; +static DEVICE_ATTR(ncount_read, 0444, scantime_zinitix, NULL) ; +static DEVICE_ATTR(fw_upstatus, 0444, firmware_update_status, NULL); +/* sys fs */ + +/*<= you must set key button mapping*/ +u32 BUTTON_MAPPING_KEY[MAX_SUPPORTED_BUTTON_NUM] = {KEY_MENU, KEY_BACK}; + + +void touch_delay(int time) +{ + mdelay(time); +} + +/* define i2c sub functions*/ +inline s32 ts_read_data(struct i2c_client *client, + u16 reg, u8 *values, u16 length) +{ + s32 ret; + /* select register*/ + ret = i2c_master_send(client , (u8 *)® , 2); + zinitix_debug_msg("%s, %d, ret : %d\n", __func__, __LINE__, ret ); + if (ret < 0) + return ret; + + /* for setup tx transaction. */ + udelay(DELAY_FOR_TRANSCATION); + ret = i2c_master_recv(client , values , length); + zinitix_debug_msg("%s, %d, ret : %d, value, %d\n", __func__, __LINE__, ret ); + if (ret < 0) + return ret; + + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +inline s32 ts_write_data(struct i2c_client *client, + u16 reg, u8 *values, u16 length) +{ + s32 ret; + u8 pkt[4]; + pkt[0] = (reg)&0xff; + pkt[1] = (reg >> 8)&0xff; + pkt[2] = values[0]; + pkt[3] = values[1]; + ret = i2c_master_send(client , pkt , length+2); + if (ret < 0) + return ret; + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +inline s32 ts_write_reg(struct i2c_client *client, u16 reg, u16 value) +{ + if (ts_write_data(client, reg, (u8 *)&value, 2) < 0) + return I2C_FAIL; + return I2C_SUCCESS; +} + +inline s32 ts_write_cmd(struct i2c_client *client, u16 reg) +{ + s32 ret; + ret = i2c_master_send(client , (u8 *)® , 2); + if (ret < 0) + return I2C_FAIL; + udelay(DELAY_FOR_POST_TRANSCATION); + return I2C_SUCCESS; +} + +inline s32 ts_read_raw_data(struct i2c_client *client, + u16 reg, u8 *values, u16 length) +{ + s32 ret; + /* select register */ + ret = i2c_master_send(client , (u8 *)® , 2); + if (ret < 0) + return ret; + /* for setup tx transaction. */ + udelay(200); + ret = i2c_master_recv(client , values , length); + if (ret < 0) + return ret; + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + + + +inline s32 ts_read_firmware_data(struct i2c_client *client, + char *addr, u8 *values, u16 length) +{ + s32 ret; + if (addr != NULL) { + /* select register*/ + ret = i2c_master_send(client , addr , 2); + if (ret < 0) + return ret; + /* for setup tx transaction. */ + touch_delay(1); + } + ret = i2c_master_recv(client , values , length); + if (ret < 0) + return ret; + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +inline s32 ts_write_firmware_data(struct i2c_client *client, + u8 *values, u16 length) +{ + s32 ret; + ret = i2c_master_send(client , values , length); + if (ret < 0) + return ret; + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +static int zinitix_touch_probe(struct i2c_client *client, + const struct i2c_device_id *i2c_id); +static int zinitix_touch_remove(struct i2c_client *client); +static bool ts_init_touch(struct zinitix_touch_dev *touch_dev); +static void zinitix_clear_report_data(struct zinitix_touch_dev *touch_dev); + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void zinitix_early_suspend(struct early_suspend *h); +static void zinitix_late_resume(struct early_suspend *h); +#endif + + +static void ts_esd_timer_start(u16 sec, struct zinitix_touch_dev *touch_dev); +static void ts_esd_timer_stop(struct zinitix_touch_dev *touch_dev); +static void ts_esd_timer_init(struct zinitix_touch_dev *touch_dev); +static void ts_esd_timeout_handler(unsigned long data); + + +#if USE_TEST_RAW_TH_DATA_MODE +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 36) +static int ts_misc_fops_ioctl(struct inode *inode, struct file *filp, + unsigned int cmd, unsigned long arg); +#else +static long ts_misc_fops_ioctl(struct file *filp, + unsigned int cmd, unsigned long arg); +#endif +static int ts_misc_fops_open(struct inode *inode, struct file *filp); +static int ts_misc_fops_close(struct inode *inode, struct file *filp); + +static const struct file_operations ts_misc_fops = { + .owner = THIS_MODULE, + .open = ts_misc_fops_open, + .release = ts_misc_fops_close, +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 36) + .ioctl = ts_misc_fops_ioctl, +#else + .unlocked_ioctl = ts_misc_fops_ioctl, +#endif +}; + +static struct miscdevice touch_misc_device = { + .minor = MISC_DYNAMIC_MINOR, + .name = "zinitix_touch_misc", + .fops = &ts_misc_fops, +}; + +#define TOUCH_IOCTL_BASE 0xbc +#define TOUCH_IOCTL_GET_DEBUGMSG_STATE _IOW(TOUCH_IOCTL_BASE, 0, int) +#define TOUCH_IOCTL_SET_DEBUGMSG_STATE _IOW(TOUCH_IOCTL_BASE, 1, int) +#define TOUCH_IOCTL_GET_CHIP_REVISION _IOW(TOUCH_IOCTL_BASE, 2, int) +#define TOUCH_IOCTL_GET_FW_VERSION _IOW(TOUCH_IOCTL_BASE, 3, int) +#define TOUCH_IOCTL_GET_REG_DATA_VERSION _IOW(TOUCH_IOCTL_BASE, 4, int) +#define TOUCH_IOCTL_VARIFY_UPGRADE_SIZE _IOW(TOUCH_IOCTL_BASE, 5, int) +#define TOUCH_IOCTL_VARIFY_UPGRADE_DATA _IOW(TOUCH_IOCTL_BASE, 6, int) +#define TOUCH_IOCTL_START_UPGRADE _IOW(TOUCH_IOCTL_BASE, 7, int) +#define TOUCH_IOCTL_GET_X_NODE_NUM _IOW(TOUCH_IOCTL_BASE, 8, int) +#define TOUCH_IOCTL_GET_Y_NODE_NUM _IOW(TOUCH_IOCTL_BASE, 9, int) +#define TOUCH_IOCTL_GET_TOTAL_NODE_NUM _IOW(TOUCH_IOCTL_BASE, 10, int) +#define TOUCH_IOCTL_SET_RAW_DATA_MODE _IOW(TOUCH_IOCTL_BASE, 11, int) +#define TOUCH_IOCTL_GET_RAW_DATA _IOW(TOUCH_IOCTL_BASE, 12, int) +#define TOUCH_IOCTL_GET_X_RESOLUTION _IOW(TOUCH_IOCTL_BASE, 13, int) +#define TOUCH_IOCTL_GET_Y_RESOLUTION _IOW(TOUCH_IOCTL_BASE, 14, int) +#define TOUCH_IOCTL_HW_CALIBRAION _IOW(TOUCH_IOCTL_BASE, 15, int) +#define TOUCH_IOCTL_GET_REG _IOW(TOUCH_IOCTL_BASE, 16, int) +#define TOUCH_IOCTL_SET_REG _IOW(TOUCH_IOCTL_BASE, 17, int) +#define TOUCH_IOCTL_SEND_SAVE_STATUS _IOW(TOUCH_IOCTL_BASE, 18, int) +#define TOUCH_IOCTL_DONOT_TOUCH_EVENT _IOW(TOUCH_IOCTL_BASE, 19, int) + + +struct zinitix_touch_dev *misc_touch_dev; + +#endif /*USE_TEST_RAW_TH_DATA_MODE */ + + + +/* id -> include/linux/i2c-id.h */ +static struct i2c_driver zinitix_touch_driver = { + .probe = zinitix_touch_probe, + .remove = zinitix_touch_remove, +#ifndef CONFIG_HAS_EARLYSUSPEND + .suspend = zinitix_early_suspend, + .resume = zinitix_late_resume, +#endif + .id_table = zinitix_idtable, + .driver = { + .name = ZINITIX_DRIVER_NAME, + }, +}; + +#if USE_TEST_RAW_TH_DATA_MODE +static bool ts_get_raw_data(struct zinitix_touch_dev *touch_dev) +{ + u32 total_node = touch_dev->cap_info.total_node_num; + u32 sz; + u16 udata; + down(&touch_dev->raw_data_lock); + if (touch_dev->raw_mode_flag == TOUCH_TEST_RAW_MODE) { + sz = (total_node*2 + MAX_TEST_POINT_INFO*2); + + + if (ts_read_raw_data(touch_dev->client, + ZINITIX_RAWDATA_REG, + (char *)touch_dev->cur_data, sz) < 0) { + printk(KERN_INFO "[zinitix_touch] error : read zinitix tc raw data\n"); + up(&touch_dev->raw_data_lock); + return false; + } + + /* no point, so update ref_data*/ + udata = touch_dev->cur_data[total_node]; + + if (!zinitix_bit_test(udata, BIT_ICON_EVENT) + && !zinitix_bit_test(udata, BIT_PT_EXIST)) + memcpy((u8 *)touch_dev->ref_data, + (u8 *)touch_dev->cur_data, total_node*2); + + touch_dev->update = 1; + memcpy((u8 *)(&touch_dev->touch_info), + (u8 *)&touch_dev->cur_data[total_node], + sizeof(struct _ts_zinitix_point_info)); + up(&touch_dev->raw_data_lock); + return true; + } else if (touch_dev->raw_mode_flag != TOUCH_NORMAL_MODE) { + zinitix_debug_msg("read raw data\r\n"); + sz = total_node*2 + sizeof(struct _ts_zinitix_point_info); + + + if (touch_dev->raw_mode_flag == TOUCH_ZINITIX_CAL_N_MODE) { + int total_cal_n = touch_dev->cap_info.total_cal_n; + if (total_cal_n == 0) + total_cal_n = 160; + + sz = + (total_cal_n*2 + sizeof(struct _ts_zinitix_point_info)); + + if (ts_read_raw_data(touch_dev->client, + ZINITIX_RAWDATA_REG, + (char *)touch_dev->cur_data, sz) < 0) { + printk(KERN_INFO "[zinitix_touch] error : read zinitix tc raw data\n"); + up(&touch_dev->raw_data_lock); + return false; + } + misc_touch_dev->update = 1; + memcpy((u8 *)(&touch_dev->touch_info), + (u8 *)&touch_dev->cur_data[total_cal_n], + sizeof(struct _ts_zinitix_point_info)); + up(&touch_dev->raw_data_lock); + return true; + } + + if (ts_read_raw_data(touch_dev->client, + ZINITIX_RAWDATA_REG, + (char *)touch_dev->cur_data, sz) < 0) { + printk(KERN_INFO "[zinitix_touch] error : read zinitix tc raw data\n"); + up(&touch_dev->raw_data_lock); + return false; + } + + udata = touch_dev->cur_data[total_node]; + if (!zinitix_bit_test(udata, BIT_ICON_EVENT) + && !zinitix_bit_test(udata, BIT_PT_EXIST)) + memcpy((u8 *)touch_dev->ref_data, + (u8 *)touch_dev->cur_data, total_node*2); + touch_dev->update = 1; + memcpy((u8 *)(&touch_dev->touch_info), + (u8 *)&touch_dev->cur_data[total_node], + sizeof(struct _ts_zinitix_point_info)); + } + up(&touch_dev->raw_data_lock); + return true; +} +#endif + + +static bool ts_get_samples(struct zinitix_touch_dev *touch_dev) +{ + int i; + + zinitix_debug_msg("ts_get_samples+\r\n"); + + if (gpio_get_value(touch_dev->int_gpio_num)) { + /*interrupt pin is high, not valid data.*/ + zinitix_debug_msg("woops... inturrpt pin is high\r\n"); + return false; + } + +#if USE_TEST_RAW_TH_DATA_MODE + if (touch_dev->raw_mode_flag != TOUCH_NORMAL_MODE) { + if (ts_get_raw_data(touch_dev) == false) + return false; + goto continue_check_point_data; + } +#endif + + if (ts_read_data(touch_dev->client, + ZINITIX_POINT_STATUS_REG, + (u8 *)(&touch_dev->touch_info), + sizeof(struct _ts_zinitix_point_info)) < 0) { + zinitix_debug_msg("error read point info using i2c.-\n"); + return false; + } + +continue_check_point_data: + zinitix_debug_msg("status = 0x%x , pt cnt = %d, t stamp = %d\n", + touch_dev->touch_info.status, + touch_dev->touch_info.finger_cnt, + touch_dev->touch_info.time_stamp); + + if (touch_dev->touch_info.status == 0x0 + && touch_dev->touch_info.finger_cnt == 100) { + zinitix_debug_msg("periodical esd repeated int occured\r\n"); + return true; + } + + for (i = 0; i < MAX_SUPPORTED_BUTTON_NUM; i++) + touch_dev->button[i] = ICON_BUTTON_UNCHANGE; + + if (zinitix_bit_test(touch_dev->touch_info.status, BIT_ICON_EVENT)) { + udelay(20); + if (ts_read_data(touch_dev->client, + ZINITIX_ICON_STATUS_REG, + (u8 *)(&touch_dev->icon_event_reg), 2) < 0) { + printk(KERN_INFO "[zinitix_touch] error read icon info using i2c.\n"); + return false; + } + } + zinitix_debug_msg("ts_get_samples-\r\n"); + + return true; +} + + +static bool ts_read_coord(struct zinitix_touch_dev *hDevice) +{ + struct zinitix_touch_dev *touch_dev = + (struct zinitix_touch_dev *)hDevice; + if (ts_get_samples(touch_dev) == false) + return false; + + ts_write_cmd(touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(DELAY_FOR_SIGNAL_DELAY); + return true; +} + +void firmware_touch_ctrl_regulator(int on_off) +{ + + if(on_off==TOUCH_OFF) +{ + // touch_ctrl_regulator(TOUCH_OFF); + printk("Tsp off\n"); + regulator_disable(tsp_regulator_33); + udelay(100); + } + else + { + // touch_ctrl_regulator(TOUCH_ON); + regulator_enable(tsp_regulator_33); + udelay(100); + printk("Tsp on\n"); + + } + +} + +void touch_ctrl_regulator(int on_off) +{ + + if(on_off==TOUCH_OFF) +{ + // touch_ctrl_regulator(TOUCH_OFF); + printk("Tsp off\n"); + regulator_disable(tsp_regulator_33); + udelay(100); + regulator_disable(tsp_regulator_18); + } + else + { + // touch_ctrl_regulator(TOUCH_ON); + regulator_enable(tsp_regulator_33); + udelay(100); + regulator_enable(tsp_regulator_18); + printk("Tsp on\n"); + + } + +} +EXPORT_SYMBOL(touch_ctrl_regulator); +static void ts_power_control(struct zinitix_touch_dev *touch_dev, u8 ctl) +{ + if (ctl == POWER_OFF) + { + // touch_ctrl_regulator(TOUCH_OFF); + printk("Tsp off\n"); + regulator_disable(tsp_regulator_33); + regulator_disable(tsp_regulator_18); + + } + else if (ctl == POWER_ON) + { + // touch_ctrl_regulator(TOUCH_ON); + regulator_enable(tsp_regulator_33); + udelay(100); + regulator_enable(tsp_regulator_18); + + printk("Tsp on\n"); + + } +} + +static bool ts_mini_init_touch(struct zinitix_touch_dev *touch_dev) +{ + u16 reg_val; + int i; +#if USE_CHECKSUM + u16 chip_check_reg0, chip_check_reg1, chip_check_reg2, chip_check_reg3; +#endif + u16 Setvaule = SYSTEM_VALUE; + + if (touch_dev == NULL) { + printk(KERN_INFO "[zinitix_touch] ts_mini_init_touch : error (touch_dev == NULL?)\r\n"); + return false; + } + + zinitix_debug_msg("check checksum\r\n"); + +#if USE_CHECKSUM + if (ts_read_data(touch_dev->client, + ZINITIX_CHECK_REG0, + (u8 *)&chip_check_reg0, 2) < 0) + { printk("[zinitix_touch] %s, %d\n", __func__, __LINE__ ); + goto fail_mini_init; + } + if (ts_read_data(touch_dev->client, + ZINITIX_CHECK_REG1, + (u8 *)&chip_check_reg1, 2) < 0) + { printk("[zinitix_touch] %s, %d\n", __func__, __LINE__ ); + goto fail_mini_init; + } + if (ts_read_data(touch_dev->client, + ZINITIX_CHECK_REG2, + (u8 *)&chip_check_reg2, 2) < 0) + { printk("[zinitix_touch] %s, %d\n", __func__, __LINE__ ); + goto fail_mini_init; + } + if (ts_read_data(touch_dev->client, + ZINITIX_CHECK_REG3, + (u8 *)&chip_check_reg3, 2) < 0) + { printk("[Zinitix] %s, %d\n", __func__, __LINE__ ); + goto fail_mini_init; + } + if( (chip_check_reg0!=chip_check_reg2) || (chip_check_reg1!=chip_check_reg3) ) { + printk(KERN_INFO "[zinitix_touch] fail to check firmware data\r\n"); + goto fail_mini_init; + } + +#endif + + if (ts_write_cmd(touch_dev->client, + ZINITIX_SWRESET_CMD) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] fail to write reset command\r\n"); + goto fail_mini_init; + } + + + /* initialize */ + if (ts_write_reg(touch_dev->client, + ZINITIX_X_RESOLUTION, + (u16)(touch_dev->cap_info.x_resolution)) != I2C_SUCCESS) + { printk("[Zinitix] %s, %d\n", __func__, __LINE__ ); + goto fail_mini_init; + } + + if (ts_write_reg(touch_dev->client, + ZINITIX_Y_RESOLUTION, + (u16)( touch_dev->cap_info.y_resolution)) != I2C_SUCCESS) + { printk("[Zinitix] %s, %d\n", __func__, __LINE__ ); + goto fail_mini_init; + } + + if (ts_write_reg(touch_dev->client, + 0x00CB, (u16)(Setvaule)) != I2C_SUCCESS) + goto fail_mini_init; + + zinitix_debug_msg("touch max x = %d\r\n", touch_dev->cap_info.x_resolution); + zinitix_debug_msg("touch max y = %d\r\n", touch_dev->cap_info.y_resolution); + + if (ts_write_reg(touch_dev->client, + ZINITIX_BUTTON_SUPPORTED_NUM, + (u16)touch_dev->cap_info.button_num) != I2C_SUCCESS) + { printk("[Zinitix] %s, %d\n", __func__, __LINE__ ); + goto fail_mini_init; + } + if (ts_write_reg(touch_dev->client, + ZINITIX_SUPPORTED_FINGER_NUM, + (u16)MAX_SUPPORTED_FINGER_NUM) != I2C_SUCCESS) + { printk("[Zinitix] %s, %d\n", __func__, __LINE__ ); + goto fail_mini_init; + } +#if USE_TEST_RAW_TH_DATA_MODE + if (touch_dev->raw_mode_flag != TOUCH_NORMAL_MODE) { /* Test Mode */ + if (ts_write_reg(touch_dev->client, + ZINITIX_TOUCH_MODE, + touch_dev->raw_mode_flag) != I2C_SUCCESS) + { printk("[zinitix_touch] %s, %d\n", __func__, __LINE__ ); + goto fail_mini_init; + } + } else +#endif +{ + reg_val = TOUCH_MODE; + if (ts_write_reg(touch_dev->client, + ZINITIX_TOUCH_MODE, + reg_val) != I2C_SUCCESS) + { printk("[zinitix_touch] %s, %d\n", __func__, __LINE__ ); + goto fail_mini_init; + } +} + /* soft calibration */ + if (ts_write_cmd(touch_dev->client, + ZINITIX_CALIBRATE_CMD) != I2C_SUCCESS) + { printk("[zinitix_touch] %s, %d\n", __func__, __LINE__ ); + goto fail_mini_init; + } + if (ts_write_reg(touch_dev->client, + ZINITIX_INT_ENABLE_FLAG, + touch_dev->cap_info.chip_int_mask) != I2C_SUCCESS) + { printk("[zinitix_touch] %s, %d\n", __func__, __LINE__ ); + goto fail_mini_init; + } + + /* read garbage data */ + for (i = 0; i < 10; i++) { + ts_write_cmd(touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(10); + } + +#if USE_TEST_RAW_TH_DATA_MODE + if (touch_dev->raw_mode_flag != TOUCH_NORMAL_MODE) { /* Test Mode */ + if (ts_write_reg(touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, + ZINITIX_SCAN_RATE_HZ + *ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL) != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL.\r\n"); + } else +#endif +{ + if (ZINITIX_ESD_TIMER_INTERVAL) { + if (ts_write_reg(touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, + ZINITIX_SCAN_RATE_HZ + *ZINITIX_ESD_TIMER_INTERVAL) != I2C_SUCCESS) + { printk("[zinitix_touch] %s, %d\n", __func__, __LINE__ ); + goto fail_mini_init; + } + } +} + if (touch_dev->use_esd_timer) { + ts_esd_timer_start(ZINITIX_CHECK_ESD_TIMER, touch_dev); + zinitix_debug_msg("esd timer start\r\n"); + } + + zinitix_debug_msg("successfully mini initialized\r\n"); + return true; + +fail_mini_init: + + printk(KERN_INFO"[zinitix_touch] early mini init fail\n"); + if(ts_init_touch(touch_dev) == false) { + zinitix_debug_msg("fail initialized\r\n"); + return false; + } + + if (touch_dev->use_esd_timer) { + ts_esd_timer_start(ZINITIX_CHECK_ESD_TIMER, touch_dev); + zinitix_debug_msg("esd timer start\r\n"); + } + return true; +} + + +static void zinitix_touch_tmr_work(struct work_struct *work) +{ + struct zinitix_touch_dev *touch_dev = + container_of(work, struct zinitix_touch_dev, tmr_work); + + printk(KERN_INFO "[zinitix_touch] tmr queue work ++\r\n"); + if (touch_dev == NULL) { + printk(KERN_INFO "[zinitix_touch] touch dev == NULL ?\r\n"); + goto fail_time_out_init; + } + down(&touch_dev->work_proceedure_lock); + if (touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO "[zinitix_touch] other process occupied (%d)\r\n", + touch_dev->work_proceedure); + up(&touch_dev->work_proceedure_lock); + return; + } + touch_dev->work_proceedure = TS_ESD_TIMER_WORK; + + disable_irq(touch_dev->irq); + printk(KERN_INFO "[zinitix_touch] error. timeout occured. maybe ts device dead. so reset & reinit.\r\n"); + touch_delay(CHIP_POWER_OFF_DELAY); + ts_power_control(touch_dev, POWER_OFF); + touch_delay(CHIP_POWER_OFF_DELAY); + ts_power_control(touch_dev, POWER_ON); + touch_delay(CHIP_ON_DELAY); + + zinitix_debug_msg("clear all reported points\r\n"); + zinitix_clear_report_data(touch_dev); + if (ts_mini_init_touch(touch_dev) == false) + goto fail_time_out_init; + + touch_dev->work_proceedure = TS_NO_WORK; + enable_irq(touch_dev->irq); + up(&touch_dev->work_proceedure_lock); + printk(KERN_INFO "[zinitix_touch] tmr queue work ----\r\n"); + return; +fail_time_out_init: + printk(KERN_INFO "[zinitix_touch] tmr work : restart error\r\n"); + ts_esd_timer_start(ZINITIX_CHECK_ESD_TIMER, touch_dev); + touch_dev->work_proceedure = TS_NO_WORK; + enable_irq(touch_dev->irq); + up(&touch_dev->work_proceedure_lock); +} + +static void ts_esd_timer_start(u16 sec, struct zinitix_touch_dev *touch_dev) +{ + if (touch_dev->p_esd_timeout_tmr != NULL) + del_timer(touch_dev->p_esd_timeout_tmr); + touch_dev->p_esd_timeout_tmr = NULL; + + init_timer(&(touch_dev->esd_timeout_tmr)); + touch_dev->esd_timeout_tmr.data = (unsigned long)(touch_dev); + touch_dev->esd_timeout_tmr.function = ts_esd_timeout_handler; + touch_dev->esd_timeout_tmr.expires = jiffies + HZ*sec; + touch_dev->p_esd_timeout_tmr = &touch_dev->esd_timeout_tmr; + add_timer(&touch_dev->esd_timeout_tmr); +} + +static void ts_esd_timer_stop(struct zinitix_touch_dev *touch_dev) +{ + if (touch_dev->p_esd_timeout_tmr) + del_timer(touch_dev->p_esd_timeout_tmr); + touch_dev->p_esd_timeout_tmr = NULL; +} + +static void ts_esd_timer_init(struct zinitix_touch_dev *touch_dev) +{ + init_timer(&(touch_dev->esd_timeout_tmr)); + touch_dev->esd_timeout_tmr.data = (unsigned long)(touch_dev); + touch_dev->esd_timeout_tmr.function = ts_esd_timeout_handler; + touch_dev->p_esd_timeout_tmr = NULL; +} + +static void ts_esd_timeout_handler(unsigned long data) +{ + struct zinitix_touch_dev *touch_dev = (struct zinitix_touch_dev *)data; + touch_dev->p_esd_timeout_tmr = NULL; + queue_work(zinitix_tmr_workqueue, &touch_dev->tmr_work); +} + +#if TOUCH_ONESHOT_UPGRADE +static bool ts_check_need_upgrade(u16 curVersion, u16 curRegVersion) +{ + u16 newVersion; + newVersion = (u16) (m_firmware_data[0] | (m_firmware_data[1]<<8)); + + printk(KERN_INFO "[zinitix_touch] cur Version = 0x%x, new Version = 0x%x\n", + curVersion, newVersion); + + if ((curVersion < newVersion)|(curVersion == 0xFFFF)|(curVersion == 0)) + return true; + else if (curVersion > newVersion) + return false; + + + + if (m_firmware_data[FIRMWARE_VERSION_POS+2] == 0xff + && m_firmware_data[FIRMWARE_VERSION_POS+3] == 0xff) + return false; + newVersion = (u16) (m_firmware_data[FIRMWARE_VERSION_POS+2] + | (m_firmware_data[FIRMWARE_VERSION_POS+3]<<8)); + + + if (curRegVersion < newVersion) + return true; + + return false; +} +#endif + +#define TC_PAGE_SZ 64 +#define TC_SECTOR_SZ 8 + +static u8 ts_upgrade_firmware(struct zinitix_touch_dev *touch_dev, + const u8 *firmware_data, u32 size) +{ + u16 flash_addr; + u8 *verify_data; + int retry_cnt = 0; + u8 i2c_buffer[TC_PAGE_SZ+2]; + zinitix_debug_msg("ts_upgrade_firmware\r\n"); + if (m_isp_client == NULL) { + printk(KERN_ERR "[zinitix_touch] i2c client for isp is not register \r\n"); + return false; + } + + verify_data = kzalloc(size, GFP_KERNEL); + if (verify_data == NULL) { + printk(KERN_ERR "[zinitix_touch] cannot alloc verify buffer\n"); + return false; + } + +retry_isp_firmware_upgrade: + firmware_touch_ctrl_regulator(POWER_OFF); + mdelay(CHIP_POWER_OFF_AF_FZ_DELAY); + firmware_touch_ctrl_regulator(POWER_ON); + mdelay(1); /* under 4ms*/ + + printk(KERN_INFO "[zinitix_touch] write firmware data\n"); + + for (flash_addr = 0; flash_addr < size; flash_addr += TC_PAGE_SZ) { + +#if !USE_HW_CALIBRATION + if (flash_addr >= CALIBRATION_AREA*2) + break; +#endif + printk(KERN_INFO "."); + printk("firmware write : addr = %04x, len = %d\n", + flash_addr, TC_PAGE_SZ); + + i2c_buffer[0] = (flash_addr>>8)&0xff; /*addr_h*/ + i2c_buffer[1] = (flash_addr)&0xff; /*addr_l*/ + memcpy(&i2c_buffer[2], &firmware_data[flash_addr], TC_PAGE_SZ); + + if (ts_write_firmware_data(m_isp_client, + i2c_buffer, TC_PAGE_SZ+2) < 0) { + printk(KERN_INFO"[zinitix_touch] error : write zinitix tc firmare\n"); + goto fail_upgrade; + } + mdelay(20); + } + mdelay(CHIP_POWER_OFF_AF_FZ_DELAY); + + printk(KERN_INFO "\r\n[zinitix_touch] read firmware data\n"); + + + flash_addr = 0; + i2c_buffer[0] = (flash_addr>>8)&0xff; /*addr_h*/ + i2c_buffer[1] = (flash_addr)&0xff; /*addr_l*/ + +#if !USE_HW_CALIBRATION + size = CALIBRATION_AREA*2; +#endif + if (ts_read_firmware_data(m_isp_client, + i2c_buffer, &verify_data[flash_addr], size) < 0) { + printk(KERN_INFO "[zinitix_touch] error : read zinitix tc firmare: addr = %04x, len = %d\n", + flash_addr, size); + goto fail_upgrade; + } + if (memcmp((u8 *)&firmware_data[flash_addr], + (u8 *)&verify_data[flash_addr], size) != 0) { + printk(KERN_INFO "[zinitix_touch] error : verify error : addr = %04x, len = %d\n", + flash_addr, size); + goto fail_upgrade; + } + + mdelay(CHIP_POWER_OFF_AF_FZ_DELAY); + firmware_touch_ctrl_regulator(POWER_OFF); + mdelay(CHIP_POWER_OFF_AF_FZ_DELAY); + firmware_touch_ctrl_regulator(POWER_ON); + mdelay(CHIP_ON_AF_FZ_DELAY); + printk(KERN_INFO "[zinitix_touch] upgrade finished\n"); + kfree(verify_data); + return true; + +fail_upgrade: + + mdelay(CHIP_POWER_OFF_AF_FZ_DELAY); + firmware_touch_ctrl_regulator(POWER_OFF); + mdelay(CHIP_POWER_OFF_AF_FZ_DELAY); + firmware_touch_ctrl_regulator(POWER_ON); + mdelay(CHIP_ON_AF_FZ_DELAY); + + printk(KERN_INFO "[zinitix_touch] upgrade fail : so retry... (%d)\n", ++retry_cnt); + if (retry_cnt <= ZINITIX_INIT_RETRY_CNT) + goto retry_isp_firmware_upgrade; + + if (verify_data != NULL) + kfree(verify_data); + + printk(KERN_INFO "[zinitix_touch] upgrade fail..\n"); + return false; + +} + + +static bool ts_init_touch(struct zinitix_touch_dev *touch_dev) +{ + u16 reg_val; + int i; + int j, k=0; + u16 SetMaxX = SYSTEM_MAX_X_RESOLUTION; + u16 SetMaxY = SYSTEM_MAX_Y_RESOLUTION; + u16 Setvaule = SYSTEM_VALUE; + u16 chip_revision; + u16 chip_firmware_version; + u16 chip_reg_data_version; + u16 chip_eeprom_info; + u16 irq_check; +#if USE_CHECKSUM + u16 chip_check_reg0, chip_check_reg1, chip_check_reg2, chip_check_reg3; + u8 checksum_err; +#endif +#if TOUCH_ONESHOT_UPGRADE + s16 stmp; +#endif + int retry_cnt = 0; + + if (touch_dev == NULL) { + printk(KERN_ERR "[zinitix_touch] error touch_dev == null?\r\n"); + return false; + } + + +retry_init: + zinitix_debug_msg("check checksum\r\n"); +#if 1//temp +#if USE_CHECKSUM + checksum_err = 0; + + for (i = 0; i < ZINITIX_INIT_RETRY_CNT; i++) { + if (ts_read_data(touch_dev->client, + ZINITIX_CHECK_REG0, + (u8 *)&chip_check_reg0, 2) < 0) { + touch_delay(50); + continue; + } + if (ts_read_data(touch_dev->client, + ZINITIX_CHECK_REG1, + (u8 *)&chip_check_reg1, 2) < 0){ + touch_delay(50); + continue; + } + if (ts_read_data(touch_dev->client, + ZINITIX_CHECK_REG2, + (u8 *)&chip_check_reg2, 2) < 0){ + touch_delay(50); + continue; + } + if (ts_read_data(touch_dev->client, + ZINITIX_CHECK_REG3, + (u8 *)&chip_check_reg3, 2) < 0){ + touch_delay(50); + continue; + } + if( (chip_check_reg0==chip_check_reg2) && (chip_check_reg1==chip_check_reg3) ) + break; + else { + checksum_err = 1; + break; + } + } + + if (i == ZINITIX_INIT_RETRY_CNT || checksum_err) { + printk(KERN_INFO "[zinitix_touch] fail to check firmware data\r\n"); + if(checksum_err == 1 && retry_cnt < ZINITIX_INIT_RETRY_CNT) + retry_cnt = ZINITIX_INIT_RETRY_CNT; + goto fail_init; + } +#endif + + if (ts_write_cmd(touch_dev->client, + ZINITIX_SWRESET_CMD) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] fail to write reset command\r\n"); + goto fail_init; + } + +#if USING_CHIP_SETTING + if (ts_read_data(touch_dev->client, + ZINITIX_INT_ENABLE_FLAG, + (u8 *)&touch_dev->cap_info.chip_int_mask, 2) < 0) + goto fail_init; + printk(KERN_INFO "[zinitix_touch] zinitix touch interrupt mask = %04x\r\n", + touch_dev->cap_info.chip_int_mask); + if (touch_dev->cap_info.chip_int_mask == 0 + || touch_dev->cap_info.chip_int_mask == 0xffff) + goto fail_init; +#else + touch_dev->cap_info.button_num = SUPPORTED_BUTTON_NUM; + + reg_val = 0; + zinitix_bit_set(reg_val, BIT_PT_CNT_CHANGE); + zinitix_bit_set(reg_val, BIT_DOWN); + zinitix_bit_set(reg_val, BIT_MOVE); + zinitix_bit_set(reg_val, BIT_UP); + if (touch_dev->cap_info.button_num > 0) + zinitix_bit_set(reg_val, BIT_ICON_EVENT); + touch_dev->cap_info.chip_int_mask = reg_val; +#endif + + + if (ts_write_reg(touch_dev->client, + ZINITIX_INT_ENABLE_FLAG, 0x0) != I2C_SUCCESS) + goto fail_init; + + zinitix_debug_msg("send reset command\r\n"); + if (ts_write_cmd(touch_dev->client, + ZINITIX_SWRESET_CMD) != I2C_SUCCESS) + goto fail_init; + + /* get chip revision id */ + if (ts_read_data(touch_dev->client, + ZINITIX_CHIP_REVISION, + (u8 *)&chip_revision, 2) < 0) { + printk(KERN_INFO "[zinitix_touch] fail to read chip revision\r\n"); + goto fail_init; + } + printk(KERN_INFO "[zinitix_touch] zinitix touch chip revision id = %x\r\n", + chip_revision); + + touch_dev->cap_info.chip_fw_size = 32*1024; + +#if USE_TEST_RAW_TH_DATA_MODE + if (ts_read_data(touch_dev->client, + ZINITIX_TOTAL_NUMBER_OF_X, + (u8 *)&touch_dev->cap_info.x_node_num, 2) < 0) + goto fail_init; + printk(KERN_INFO "[zinitix_touch] zinitix touch chip x node num = %d\r\n", + touch_dev->cap_info.x_node_num); + if (ts_read_data(touch_dev->client, + ZINITIX_TOTAL_NUMBER_OF_Y, + (u8 *)&touch_dev->cap_info.y_node_num, 2) < 0) + goto fail_init; + printk(KERN_INFO "[zinitix_touch] zinitix touch chip y node num = %d\r\n", + touch_dev->cap_info.y_node_num); + + touch_dev->cap_info.total_node_num = + touch_dev->cap_info.x_node_num*touch_dev->cap_info.y_node_num; + printk(KERN_INFO "[zinitix_touch] zinitix touch chip total node num = %d\r\n", + touch_dev->cap_info.total_node_num); + + if (ts_read_data(touch_dev->client, + ZINITIX_MAX_Y_NUM, + (u8 *)&touch_dev->cap_info.max_y_node, 2) < 0) + goto fail_init; + + printk(KERN_INFO "[zinitix_touch] zinitix touch chip max y node num = %d\r\n", + touch_dev->cap_info.max_y_node); + + if (ts_read_data(touch_dev->client, + ZINITIX_CAL_N_TOTAL_NUM, + (u8 *)&touch_dev->cap_info.total_cal_n, 2) < 0) + goto fail_init; + printk(KERN_INFO "[zinitix_touch] zinitix touch chip total cal n data num = %d\r\n", + touch_dev->cap_info.total_cal_n); + + +#endif + + + /* get chip firmware version */ + if (ts_read_data(touch_dev->client, + ZINITIX_FIRMWARE_VERSION, + (u8 *)&chip_firmware_version, 2) < 0) + goto fail_init; + printk(KERN_INFO "[zinitix_touch] zinitix touch chip firmware version = %x\r\n", + chip_firmware_version); +#endif//temp + + //ts_upgrade_firmware(touch_dev, &m_firmware_data[2], + // touch_dev->cap_info.chip_fw_size); + +#if TOUCH_ONESHOT_UPGRADE + chip_reg_data_version = 0xffff; + + if (ts_read_data(touch_dev->client, + ZINITIX_DATA_VERSION_REG, + (u8 *)&chip_reg_data_version, 2) < 0) + goto fail_init; + zinitix_debug_msg("touch reg data version = %d\r\n", + chip_reg_data_version); + + if (ts_check_need_upgrade(chip_firmware_version, + chip_reg_data_version) == true) { + printk(KERN_INFO "[zinitix_touch] start upgrade firmware\n"); + + ts_upgrade_firmware(touch_dev, &m_firmware_data[2], + touch_dev->cap_info.chip_fw_size); + + /* get chip revision id */ + if (ts_read_data(touch_dev->client, + ZINITIX_CHIP_REVISION, + (u8 *)&chip_revision, 2) < 0) { + printk(KERN_INFO "[zinitix_touch] fail to read chip revision\r\n"); + goto fail_init; + } + printk(KERN_INFO "[zinitix_touch] zinitix touch chip revision id = %x\r\n", + chip_revision); + + /* get chip firmware version */ + if (ts_read_data(touch_dev->client, + ZINITIX_FIRMWARE_VERSION, + (u8 *)&chip_firmware_version, 2) < 0) + goto fail_init; + printk(KERN_INFO "[zinitix_touch] zinitix touch chip renewed firmware version = %x\r\n", + chip_firmware_version); + + } +#endif + + if (ts_read_data(touch_dev->client, + ZINITIX_DATA_VERSION_REG, + (u8 *)&chip_reg_data_version, 2) < 0) + goto fail_init; + zinitix_debug_msg("touch reg data version = %d\r\n", + chip_reg_data_version); + +#if TOUCH_ONESHOT_UPGRADE + if (chip_reg_data_version + < m_reg_data[ZINITIX_DATA_VERSION_REG].reg_val) { + zinitix_debug_msg("write new reg data( %d < %d)\r\n", + chip_reg_data_version, + m_reg_data[ZINITIX_DATA_VERSION_REG].reg_val); + for (i = 0; i < MAX_REG_COUNT; i++) { + if (m_reg_data[i].valid == 1) { + if (ts_write_reg(touch_dev->client, + (u16)i, + (u16)(m_reg_data[i].reg_val)) + != I2C_SUCCESS) + goto fail_init; + if (i == ZINITIX_TOTAL_NUMBER_OF_X + || i == ZINITIX_TOTAL_NUMBER_OF_Y) + mdelay(50); + if (ts_read_data(touch_dev->client, + (u16)i, (u8 *)&stmp, 2) < 0) + goto fail_init; + if (memcmp((char *)&m_reg_data[i].reg_val, + (char *)&stmp, 2) < 0) + printk(KERN_WARNING "[zinitix_touch] register data is different. (addr = 0x%02X , %d != %d)\r\n", + i, m_reg_data[i].reg_val, stmp); + } + } + zinitix_debug_msg("done new reg data( %d < %d)\r\n", + chip_reg_data_version, + m_reg_data[ZINITIX_DATA_VERSION_REG].reg_val); + if (ts_write_cmd(touch_dev->client, + ZINITIX_SAVE_STATUS_CMD) != I2C_SUCCESS) + goto fail_init; + mdelay(1000); /* for fusing eeprom */ + } + +#endif + + if (ts_read_data(touch_dev->client, + ZINITIX_EEPROM_INFO_REG, + (u8 *)&chip_eeprom_info, 2) < 0) + goto fail_init; + zinitix_debug_msg("touch eeprom info = 0x%04X\r\n", chip_eeprom_info); + +#if USE_HW_CALIBRATION + if (zinitix_bit_test(chip_eeprom_info, 0)) { /* hw calibration bit*/ + + if (touch_dev->cap_info.chip_int_mask != 0) + if (ts_write_reg(touch_dev->client, + ZINITIX_INT_ENABLE_FLAG, + touch_dev->cap_info.chip_int_mask) + != I2C_SUCCESS) + goto fail_init; + + /* h/w calibration */ + mdelay(100); + if (ts_write_reg(touch_dev->client, + ZINITIX_TOUCH_MODE, 0x07) != I2C_SUCCESS) + goto fail_init; + mdelay(250); + if (ts_write_cmd(touch_dev->client, + ZINITIX_CALIBRATE_CMD) != I2C_SUCCESS) + goto fail_init; + if (ts_write_cmd(touch_dev->client, + ZINITIX_SWRESET_CMD) != I2C_SUCCESS) + goto fail_init; + mdelay(10); + + /* wait for h/w calibration*/ + do { + ts_write_cmd(touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + touch_delay(1000); + if (ts_read_data(touch_dev->client, + ZINITIX_EEPROM_INFO_REG, + (u8 *)&chip_eeprom_info, 2) < 0) + goto fail_init; + zinitix_debug_msg("touch eeprom info = 0x%04X\r\n", + chip_eeprom_info); + if (!zinitix_bit_test(chip_eeprom_info, 0)) + break; + } while (1); + + if (ts_write_reg(touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) + goto fail_init; + + + touch_delay(10); + if (ts_write_cmd(touch_dev->client, + ZINITIX_SWRESET_CMD) != I2C_SUCCESS) + goto fail_init; + + touch_delay(10); + if (ts_write_cmd(touch_dev->client, + ZINITIX_SAVE_CALIBRATION_CMD) != I2C_SUCCESS) + goto fail_init; + touch_delay(500); + + + /* disable chip interrupt */ + if (ts_write_reg(touch_dev->client, + ZINITIX_INT_ENABLE_FLAG, 0) != I2C_SUCCESS) + goto fail_init; + + } +#endif + + touch_dev->cap_info.chip_revision = (u16)chip_revision; + touch_dev->cap_info.chip_firmware_version = (u16)chip_firmware_version; + touch_dev->cap_info.chip_reg_data_version = (u16)chip_reg_data_version; + + + /* initialize */ + if (ts_write_reg(touch_dev->client, + ZINITIX_X_RESOLUTION, + (u16)(SetMaxX)) != I2C_SUCCESS) + goto fail_init; + + if (ts_write_reg(touch_dev->client, + ZINITIX_Y_RESOLUTION, + (u16)(SetMaxY)) != I2C_SUCCESS) + goto fail_init; + + if (ts_write_reg(touch_dev->client, + 0x00CB, + (u16)(Setvaule)) != I2C_SUCCESS) + goto fail_init; + + + if (ts_read_data(touch_dev->client, + ZINITIX_X_RESOLUTION, + (u8 *)&touch_dev->cap_info.x_resolution, 2) < 0) + goto fail_init; + zinitix_debug_msg("touch max x = %d\r\n", + touch_dev->cap_info.x_resolution); + if (ts_read_data(touch_dev->client, + ZINITIX_Y_RESOLUTION, + (u8 *)&touch_dev->cap_info.y_resolution, 2) < 0) + goto fail_init; + zinitix_debug_msg("touch max y = %d\r\n", + touch_dev->cap_info.y_resolution); + + touch_dev->cap_info.MinX = (u32)0; + touch_dev->cap_info.MinY = (u32)0; + touch_dev->cap_info.MaxX = (u32)touch_dev->cap_info.x_resolution; + touch_dev->cap_info.MaxY = (u32)touch_dev->cap_info.y_resolution; + +#if USING_CHIP_SETTING + if (ts_read_data(touch_dev->client, + ZINITIX_BUTTON_SUPPORTED_NUM, + (u8 *)&touch_dev->cap_info.button_num, 2) < 0) + goto fail_init; + zinitix_debug_msg("supported button num = %d\r\n", + touch_dev->cap_info.button_num); + if (ts_read_data(touch_dev->client, + ZINITIX_SUPPORTED_FINGER_NUM, + (u8 *)&touch_dev->cap_info.multi_fingers, 2) < 0) + goto fail_init; + zinitix_debug_msg("supported finger num = %d\r\n", + touch_dev->cap_info.multi_fingers); +#else + if (ts_write_reg(touch_dev->client, + ZINITIX_BUTTON_SUPPORTED_NUM, + (u16)touch_dev->cap_info.button_num) != I2C_SUCCESS) + goto fail_init; + + if (ts_write_reg(touch_dev->client, + ZINITIX_SUPPORTED_FINGER_NUM, + (u16)MAX_SUPPORTED_FINGER_NUM) != I2C_SUCCESS) + goto fail_init; + touch_dev->cap_info.multi_fingers = REAL_SUPPORTED_FINGER_NUM; +#endif + + zinitix_debug_msg("max supported finger num = %d, \ + real supported finger num = %d\r\n", + touch_dev->cap_info.multi_fingers, REAL_SUPPORTED_FINGER_NUM); + touch_dev->cap_info.gesture_support = 0; + zinitix_debug_msg("set other configuration\r\n"); + +#if USE_TEST_RAW_TH_DATA_MODE + if (touch_dev->raw_mode_flag != TOUCH_NORMAL_MODE) { /* Test Mode */ + if (ts_write_reg(touch_dev->client, + ZINITIX_TOUCH_MODE, + touch_dev->raw_mode_flag) != I2C_SUCCESS) + goto fail_init; + } else +#endif +{ + reg_val = TOUCH_MODE; + if (ts_write_reg(touch_dev->client, + ZINITIX_TOUCH_MODE, + reg_val) != I2C_SUCCESS) + goto fail_init; +} + /* soft calibration */ + if (ts_write_cmd(touch_dev->client, + ZINITIX_CALIBRATE_CMD) != I2C_SUCCESS) + goto fail_init; + if (ts_write_reg(touch_dev->client, + ZINITIX_INT_ENABLE_FLAG, + touch_dev->cap_info.chip_int_mask) != I2C_SUCCESS) + goto fail_init; + + /* read garbage data */ + for (i = 0; i < 10; i++) { + ts_write_cmd(touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(10); + } + +#if USE_TEST_RAW_TH_DATA_MODE + if (touch_dev->raw_mode_flag != TOUCH_NORMAL_MODE) { /* Test Mode */ + if (ts_write_reg(touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, + ZINITIX_SCAN_RATE_HZ + *ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL) != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL.\r\n"); + } else +#endif +{ + if (ZINITIX_ESD_TIMER_INTERVAL) { + if (ts_write_reg(touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, + ZINITIX_SCAN_RATE_HZ + *ZINITIX_ESD_TIMER_INTERVAL) != I2C_SUCCESS) + goto fail_init; + if (ts_read_data(touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, + (u8 *)®_val, 2) < 0) + goto fail_init; + zinitix_debug_msg("esd timer register = %d\r\n", reg_val); + } +} + + if (!ts_read_data(touch_dev->client, ZINITIX_INT_ENABLE_FLAG, + (u8 *)&irq_check, 2) ) { + if(irq_check==0) + { + if (ts_write_reg(touch_dev->client, + ZINITIX_INT_ENABLE_FLAG, + touch_dev->cap_info.chip_int_mask) != I2C_SUCCESS) + goto fail_init; + } + } + + + zinitix_debug_msg("successfully initialized\r\n"); + return true; + +fail_init: + + if (++retry_cnt <= ZINITIX_INIT_RETRY_CNT) { + firmware_touch_ctrl_regulator(POWER_OFF); + touch_delay(CHIP_POWER_OFF_DELAY); + firmware_touch_ctrl_regulator(POWER_ON); + touch_delay(CHIP_ON_DELAY); + zinitix_debug_msg("retry to initiallize(retry cnt = %d)\r\n", + retry_cnt); + goto retry_init; + } else if(retry_cnt == ZINITIX_INIT_RETRY_CNT+1){ + touch_dev->cap_info.chip_fw_size = 32*1024; + + zinitix_debug_msg("retry to initiallize(retry cnt = %d)\r\n", retry_cnt); +#if 1//TOUCH_FORCE_UPGRADE + zinitix_debug_msg("TOUCH_FORCE_UPGRADE+++\r\n"); + if( ts_upgrade_firmware(touch_dev, &m_firmware_data[2], + touch_dev->cap_info.chip_fw_size) == false) { + printk(KERN_INFO "[zinitix_touch] Upgrade Fail\n"); + return false; + } + zinitix_debug_msg("TOUCH_FORCE_UPGRADE---\r\n"); + touch_delay(100); + // hw calibration and make checksum + if (ts_write_reg(touch_dev->client, + ZINITIX_TOUCH_MODE, 0x07) != I2C_SUCCESS) + goto fail_hwcal_init; + touch_delay(250); + if (ts_write_cmd(touch_dev->client, + ZINITIX_CALIBRATE_CMD) != I2C_SUCCESS) + goto fail_hwcal_init; + if (ts_write_cmd(touch_dev->client, + ZINITIX_SWRESET_CMD) != I2C_SUCCESS) + goto fail_hwcal_init; + touch_delay(10); + /* wait for h/w calibration*/ + do { + ts_write_cmd(touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + touch_delay(1000); + if (ts_read_data(touch_dev->client, + ZINITIX_EEPROM_INFO_REG, (u8 *)&chip_eeprom_info, 2) < 0) + goto fail_hwcal_init; + zinitix_debug_msg("touch eeprom info = 0x%04X\r\n", chip_eeprom_info); + if (!zinitix_bit_test(chip_eeprom_info, 0)) + break; + } while (1); + + if (ts_write_reg(touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) + goto fail_hwcal_init; + touch_delay(10); + if (ts_write_cmd(touch_dev->client, + ZINITIX_SWRESET_CMD) != I2C_SUCCESS) + goto fail_hwcal_init; + touch_delay(10); + if (ts_write_cmd(touch_dev->client, + ZINITIX_SAVE_CALIBRATION_CMD) != I2C_SUCCESS) + goto fail_hwcal_init; + touch_delay(1000); //for fuzing +fail_hwcal_init: + // to read new information + goto retry_init; +#endif + } + printk("[zinitix touch] failed to initiallize\r\n"); + return false; +} + +static void zinitix_clear_report_data(struct zinitix_touch_dev *touch_dev) +{ + int i; + u8 reported = 0; + u8 sub_status; + + for (i = 0; i < touch_dev->cap_info.multi_fingers; i++) { + sub_status = touch_dev->reported_touch_info.coord[i].sub_status; + if (zinitix_bit_test(sub_status, SUB_BIT_EXIST)) { +#ifdef ABS_MT_TRACKING_ID + input_report_abs(touch_dev->input_dev, + ABS_MT_TRACKING_ID, i); +#endif + + input_report_abs(touch_dev->input_dev, + ABS_MT_TOUCH_MAJOR, 0); + input_report_abs(touch_dev->input_dev, + ABS_MT_WIDTH_MAJOR, 0); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_X, + touch_dev->reported_touch_info.coord[i].x); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_Y, + touch_dev->reported_touch_info.coord[i].y); + input_mt_sync(touch_dev->input_dev); + reported = 1; + } + touch_dev->reported_touch_info.coord[i].sub_status = 0; + } + if (reported) + { + input_report_key(touch_dev->input_dev, BTN_TOUCH, 0); /* ice cream */ + input_sync(touch_dev->input_dev); + } +} + + +static irqreturn_t zinitix_touch_work(int irq, void *data) +{ + struct zinitix_touch_dev* touch_dev = (struct zinitix_touch_dev*)data; + int i; + u8 reported = false; + u8 sub_status; + u32 x, y; + u32 w; + u32 tmp; + + zinitix_debug_msg("zinitix_touch_thread : semaphore signalled\r\n"); + + if (touch_dev->use_esd_timer) { + ts_esd_timer_stop(touch_dev); + zinitix_debug_msg("esd timer stop\r\n"); + } + + down(&touch_dev->work_proceedure_lock); + if (touch_dev->work_proceedure != TS_NO_WORK) { + zinitix_debug_msg("zinitix_touch_thread : \ + [warning] other process occupied..\r\n"); + udelay(DELAY_FOR_SIGNAL_DELAY); + if (!gpio_get_value(touch_dev->int_gpio_num)) { + ts_write_cmd(touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(DELAY_FOR_SIGNAL_DELAY); + } + goto continue_read_samples; + } + touch_dev->work_proceedure = TS_NORMAL_WORK; + if (ts_read_coord(touch_dev) == false) { + zinitix_debug_msg("couldn't read touch_dev sample\r\n"); + goto continue_read_samples; + } + +#if USE_TEST_RAW_TH_DATA_MODE + if (touch_dev->raw_mode_flag == TOUCH_TEST_RAW_MODE) + goto continue_read_samples; +#endif + + /* invalid : maybe periodical repeated int. */ + if (touch_dev->touch_info.status == 0x0) + { + //printk("status = %X TSP Period INT\r\n", touch_dev->touch_info.status);//temp + goto continue_read_samples; + } + + reported = false; + + if (zinitix_bit_test(touch_dev->touch_info.status, BIT_ICON_EVENT)) { + for (i = 0; i < touch_dev->cap_info.button_num; i++) { + if (zinitix_bit_test(touch_dev->icon_event_reg, + (BIT_O_ICON0_DOWN+i))) { + touch_dev->button[i] = ICON_BUTTON_DOWN; + input_report_key(touch_dev->input_dev, + BUTTON_MAPPING_KEY[i], 1); + reported = true; + zinitix_debug_msg("button down = %d \r\n", i); + //printk("status = %X button down = %d \r\n", touch_dev->touch_info.status, i);//temp + } + } + + for (i = 0; i < touch_dev->cap_info.button_num; i++) { + if (zinitix_bit_test(touch_dev->icon_event_reg, + (BIT_O_ICON0_UP+i))) { + touch_dev->button[i] = ICON_BUTTON_UP; + input_report_key(touch_dev->input_dev, + BUTTON_MAPPING_KEY[i], 0); + reported = true; + zinitix_debug_msg("button up = %d \r\n", i); + //printk("status = %X button up = %d \r\n", touch_dev->touch_info.status, i);//temp + } + } + } + + /* if button press or up event occured... */ + if (reported == true) { + for (i = 0; i < touch_dev->cap_info.multi_fingers; i++) { + sub_status = + touch_dev->reported_touch_info.coord[i].sub_status; + x = touch_dev->reported_touch_info.coord[i].x; + y = touch_dev->reported_touch_info.coord[i].y; + if (zinitix_bit_test(sub_status, SUB_BIT_EXIST)) { + zinitix_debug_msg("finger [%02d] up \r\n", i); + //printk("status = %X finger [%02d] up \r\n", touch_dev->touch_info.status, i);//temp +#ifdef ABS_MT_TRACKING_ID + input_report_abs(touch_dev->input_dev, + ABS_MT_TRACKING_ID,i); +#endif + input_report_abs(touch_dev->input_dev, + ABS_MT_TOUCH_MAJOR, 0); + input_report_abs(touch_dev->input_dev, + ABS_MT_WIDTH_MAJOR, 0); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_X, x); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_Y, y); + input_mt_sync(touch_dev->input_dev); + } + } + memset(&touch_dev->reported_touch_info, + 0x0, sizeof(struct _ts_zinitix_point_info)); + input_report_key(touch_dev->input_dev, BTN_TOUCH, 0); /* ice cream */ + input_sync(touch_dev->input_dev); + udelay(100); + goto continue_read_samples; + } + if (touch_dev->touch_info.finger_cnt > MAX_SUPPORTED_FINGER_NUM) + touch_dev->touch_info.finger_cnt = MAX_SUPPORTED_FINGER_NUM; + + if (!zinitix_bit_test(touch_dev->touch_info.status, BIT_PT_EXIST)) { + for (i = 0; i < touch_dev->cap_info.multi_fingers; i++) { + sub_status = + touch_dev->reported_touch_info.coord[i].sub_status; + x = touch_dev->reported_touch_info.coord[i].x; + y = touch_dev->reported_touch_info.coord[i].y; + if (zinitix_bit_test(sub_status, SUB_BIT_EXIST)) { + zinitix_debug_msg("finger [%02d] up \r\n", i); + //printk("status = %X finger [%02d] up \r\n", touch_dev->touch_info.status, i);//temp +#ifdef ABS_MT_TRACKING_ID + input_report_abs(touch_dev->input_dev, + ABS_MT_TRACKING_ID,i); +#endif + input_report_abs(touch_dev->input_dev, + ABS_MT_TOUCH_MAJOR, 0); + input_report_abs(touch_dev->input_dev, + ABS_MT_WIDTH_MAJOR, 0); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_X, x); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_Y, y); + input_mt_sync(touch_dev->input_dev); + } + } + memset(&touch_dev->reported_touch_info, + 0x0, sizeof(struct _ts_zinitix_point_info)); + input_report_key(touch_dev->input_dev, BTN_TOUCH, 0); /* ice cream */ + input_sync(touch_dev->input_dev); + goto continue_read_samples; + } + + for (i = 0; i < touch_dev->cap_info.multi_fingers; i++) { + sub_status = touch_dev->touch_info.coord[i].sub_status; + + if (zinitix_bit_test(sub_status, SUB_BIT_DOWN) + || zinitix_bit_test(sub_status, SUB_BIT_MOVE) + || zinitix_bit_test(sub_status, SUB_BIT_EXIST)) { + ; + } else if (zinitix_bit_test(sub_status, SUB_BIT_UP)) { + zinitix_debug_msg("finger [%02d] up \r\n", i); + x = touch_dev->reported_touch_info.coord[i].x; + y = touch_dev->reported_touch_info.coord[i].y; + + memset(&touch_dev->touch_info.coord[i], + 0x0, sizeof(struct _ts_zinitix_coord)); +#ifdef ABS_MT_TRACKING_ID + input_report_abs(touch_dev->input_dev, + ABS_MT_TRACKING_ID,i); +#endif + input_report_abs(touch_dev->input_dev, + ABS_MT_TOUCH_MAJOR, 0); + input_report_abs(touch_dev->input_dev, + ABS_MT_WIDTH_MAJOR, 0); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_X, x); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_Y, y); + input_mt_sync(touch_dev->input_dev); + } + + } + + for (i = 0; i < touch_dev->cap_info.multi_fingers; i++) { + sub_status = touch_dev->touch_info.coord[i].sub_status; + + if (zinitix_bit_test(sub_status, SUB_BIT_DOWN) + || zinitix_bit_test(sub_status, SUB_BIT_MOVE) + || zinitix_bit_test(sub_status, SUB_BIT_EXIST)) { + + x = touch_dev->touch_info.coord[i].x; + y = touch_dev->touch_info.coord[i].y; + w = touch_dev->touch_info.coord[i].width; + + /* transformation from touch to screen orientation */ + if (touch_dev->cap_info.Orientation & TOUCH_V_FLIP) + y = touch_dev->cap_info.MaxY + + touch_dev->cap_info.MinY - y; + if (touch_dev->cap_info.Orientation & TOUCH_H_FLIP) + x = touch_dev->cap_info.MaxX + + touch_dev->cap_info.MinX - x; + if (touch_dev->cap_info.Orientation & TOUCH_XY_SWAP) + zinitix_swap_v(x, y, tmp); + touch_dev->touch_info.coord[i].x = x; + touch_dev->touch_info.coord[i].y = y; + zinitix_debug_msg("finger [%02d] x = %d, y = %d \r\n", + i, x, y); + + if (w == 0) + w = 5; +#ifdef ABS_MT_TRACKING_ID + input_report_abs(touch_dev->input_dev, + ABS_MT_TRACKING_ID,i); +#endif + input_report_abs(touch_dev->input_dev, + ABS_MT_TOUCH_MAJOR, (u32)w); + input_report_abs(touch_dev->input_dev, + ABS_MT_WIDTH_MAJOR, (u32)w); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_X, x); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_Y, y); + input_mt_sync(touch_dev->input_dev); + } else if (zinitix_bit_test(sub_status, SUB_BIT_UP)) { + ; + } else + memset(&touch_dev->touch_info.coord[i], + 0x0, sizeof(struct _ts_zinitix_coord)); + + } + memcpy((char *)&touch_dev->reported_touch_info, + (char *)&touch_dev->touch_info, + sizeof(struct _ts_zinitix_point_info)); + input_report_key(touch_dev->input_dev, BTN_TOUCH, 1); /* ice cream */ + input_sync(touch_dev->input_dev); + +continue_read_samples: + + /* check_interrupt_pin, if high, enable int & wait signal */ + if (touch_dev->work_proceedure == TS_NORMAL_WORK) { + if (touch_dev->use_esd_timer) { + ts_esd_timer_start(ZINITIX_CHECK_ESD_TIMER, touch_dev); + zinitix_debug_msg("esd tmr start\n"); + } + touch_dev->work_proceedure = TS_NO_WORK; + } + up(&touch_dev->work_proceedure_lock); + return IRQ_HANDLED; +} + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void zinitix_late_resume(struct early_suspend *h) +{ + + struct zinitix_touch_dev *touch_dev; + touch_dev = container_of(h, struct zinitix_touch_dev, early_suspend); + printk(KERN_INFO "[zinitix_touch] resume++\r\n"); + + if (touch_dev == NULL) + return; + + + down(&touch_dev->work_proceedure_lock); + if (touch_dev->work_proceedure != TS_IN_RESUME && touch_dev->work_proceedure != TS_IN_EALRY_SUSPEND) { + printk(KERN_INFO"[zinitix_touch] zinitix_late_resume : invalid work proceedure (%d)\r\n", + touch_dev->work_proceedure); + up(&touch_dev->work_proceedure_lock); + return; + } + //board_sysconfig(SYSCFG_TOUCH, SYSCFG_INIT); + + gpio_direction_input(TSP_INT); + + touch_ctrl_regulator(TOUCH_ON); + + ts_write_cmd(touch_dev->client, ZINITIX_WAKEUP_CMD); + mdelay(150); + if (ts_mini_init_touch(touch_dev) == false) + goto fail_resume; + enable_irq(touch_dev->irq); + touch_dev->work_proceedure = TS_NO_WORK; + up(&touch_dev->work_proceedure_lock); + + printk(KERN_INFO "[zinitix_touch] resume--\n"); + return; +fail_resume: + printk(KERN_ERR "[zinitix_touch] failed to resume\n"); + enable_irq(touch_dev->irq); + touch_dev->work_proceedure = TS_NO_WORK; + up(&touch_dev->work_proceedure_lock); + + return; +} + + +static void zinitix_early_suspend(struct early_suspend *h) +{ + + struct zinitix_touch_dev *touch_dev = container_of(h, struct zinitix_touch_dev, early_suspend); + + if (touch_dev == NULL) + return; + printk(KERN_INFO "[zinitix_touch] early suspend++\n"); + + flush_work(&touch_dev->tmr_work); + flush_work(&touch_dev->work); + + down(&touch_dev->work_proceedure_lock); + if (touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO"[zinitix_touch] zinitix_early_suspend : invalid work proceedure (%d)\r\n", + touch_dev->work_proceedure); + up(&touch_dev->work_proceedure_lock); + return; + } + touch_dev->work_proceedure = TS_IN_EALRY_SUSPEND; + + + zinitix_debug_msg("clear all reported points\r\n"); + zinitix_clear_report_data(touch_dev); + + if (touch_dev->use_esd_timer) { + ts_write_reg(touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, 0); + ts_esd_timer_stop(touch_dev); + printk(KERN_INFO "[zinitix_touch] ts_esd_timer_stop\n"); + } + + disable_irq(touch_dev->irq); + + +#if !(USING_CHIP_SETTING) + ts_write_reg(touch_dev->client, ZINITIX_INT_ENABLE_FLAG, 0x0); +#endif + udelay(100); + ts_write_cmd(touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + #if 0 + if (ts_write_cmd(touch_dev->client, ZINITIX_SLEEP_CMD) != I2C_SUCCESS) { + printk(KERN_ERR "failed to enter into sleep mode\n"); + up(&touch_dev->work_proceedure_lock); + return; + } + #endif + gpio_direction_output( TSP_INT , 0 ); + + #if 0 + gpio_direction_output( TSP_SCL , 0 ); + gpio_direction_output( TSP_SDA , 0 ); + #endif + + msleep(20); + + touch_ctrl_regulator(TOUCH_OFF); + + up(&touch_dev->work_proceedure_lock); + + printk(KERN_INFO "[zinitix_touch] early suspend--\n"); + + return; +} + +#endif /* CONFIG_HAS_EARLYSUSPEND */ + +#if USE_TEST_RAW_TH_DATA_MODE +static ssize_t zinitix_get_test_raw_data(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int total_n_num; + if (misc_touch_dev == NULL) { + zinitix_debug_msg("device NULL : NULL\n"); + return 0; + } + down(&misc_touch_dev->raw_data_lock); + total_n_num = misc_touch_dev->cap_info.total_node_num; + if (zinitix_bit_test( + misc_touch_dev->cur_data[total_n_num], BIT_PT_EXIST)) { + /*x_lsb*/ + buf[20] = + (misc_touch_dev->cur_data[total_n_num+1]&0xff); + /*x_msb*/ + buf[21] = + ((misc_touch_dev->cur_data[total_n_num+1]>>8)&0xff); + /*y_lsb*/ + buf[22] = + (misc_touch_dev->cur_data[total_n_num+2]&0xff); + /*y_msb*/ + buf[23] = + ((misc_touch_dev->cur_data[total_n_num+2] + >>8)&0xff); + } else { + buf[20] = 0; /*x_lsb*/ + buf[21] = 0; /*x_msb*/ + buf[22] = 0; /*y_lsb*/ + buf[23] = 0; /*y_msb*/ + } + + /*lsb*/ + buf[0] = + (char)(misc_touch_dev->ref_data[22]&0xff); + /*msb*/ + buf[1] = + (char)((misc_touch_dev->ref_data[22]>>8)&0xff); + /*delta lsb*/ + buf[2] = + (char)(((s16)(misc_touch_dev->cur_data[22] + - misc_touch_dev->ref_data[22]))&0xff); + /*delta msb*/ + buf[3] = + (char)((((s16)(misc_touch_dev->cur_data[22] + - misc_touch_dev->ref_data[22]))>>8)&0xff); + /* + buf[4] = + (char)(misc_touch_dev->ref_data[51]&0xff); + buf[5] = + (char)((misc_touch_dev->ref_data[51]>>8)&0xff); + buf[6] = + (char)(((s16)(misc_touch_dev->cur_data[51] + -misc_touch_dev->ref_data[51]))&0xff); + buf[7] = + (char)((((s16)(misc_touch_dev->cur_data[51] + -misc_touch_dev->ref_data[51]))>>8)&0xff); + + buf[8] = + (char)(misc_touch_dev->ref_data[102]&0xff); + buf[9] = + (char)((misc_touch_dev->ref_data[102]>>8)&0xff); + buf[10] = + (char)(((s16)(misc_touch_dev->cur_data[102] + -misc_touch_dev->ref_data[102]))&0xff); + buf[11] = + (char)((((s16)(misc_touch_dev->cur_data[102] + -misc_touch_dev->ref_data[102]))>>8)&0xff); + + buf[12] = + (char)(misc_touch_dev->ref_data[169]&0xff); + buf[13] = + (char)((misc_touch_dev->ref_data[169]>>8)&0xff); + buf[14] = + (char)(((s16)(misc_touch_dev->cur_data[169] + -misc_touch_dev->ref_data[169]))&0xff); + buf[15] = + (char)((((s16)(misc_touch_dev->cur_data[169] + -misc_touch_dev->ref_data[169]))>>8)&0xff); + + buf[16] = + (char)(misc_touch_dev->ref_data[178]&0xff); + buf[17] = + (char)((misc_touch_dev->ref_data[178]>>8)&0xff); + buf[18] = + (char)(((s16)(misc_touch_dev->cur_data[178] + -misc_touch_dev->ref_data[178]))&0xff); + buf[19] = + (char)((((s16)(misc_touch_dev->cur_data[178] + - misc_touch_dev->ref_data[178]))>>8)&0xff); + */ + up(&misc_touch_dev->raw_data_lock); + + + return 24; +} + + +ssize_t zinitix_set_testmode(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) +{ + unsigned char value = 0; + + printk(KERN_INFO "[zinitix_touch] zinitix_set_testmode, buf = %d\r\n", + *buf); + + if (misc_touch_dev == NULL) { + zinitix_debug_msg("device NULL : NULL\n"); + return 0; + } + + sscanf(buf, "%c", &value); + + if (value != TOUCH_TEST_RAW_MODE && value != TOUCH_NORMAL_MODE) { + printk(KERN_WARNING "[zinitix_touch] test mode setting value error. you must set %d[=normal] or %d[=raw mode]\r\n", + TOUCH_NORMAL_MODE, TOUCH_TEST_RAW_MODE); + return 1; + } + + down(&misc_touch_dev->raw_data_lock); + misc_touch_dev->raw_mode_flag = value; + + printk(KERN_INFO "[zinitix_touch] zinitix_set_testmode, touchkey_testmode = %d\r\n", + misc_touch_dev->raw_mode_flag); + + if (misc_touch_dev->raw_mode_flag == TOUCH_NORMAL_MODE) { + /* enter into normal mode */ + printk(KERN_INFO "[zinitix_touch] TEST Mode Exit\r\n"); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, + ZINITIX_SCAN_RATE_HZ + *ZINITIX_ESD_TIMER_INTERVAL) != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITIX_PERIODICAL_INTERRUPT_INTERVAL.\r\n"); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set touch mode %d.\r\n", + TOUCH_MODE); + + /* clear garbage data */ + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + touch_delay(100); + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + } else { + /* enter into test mode */ + printk(KERN_INFO "[zinitix_touch] TEST Mode Enter\r\n"); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, + ZINITIX_SCAN_RATE_HZ + *ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL) != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL.\r\n"); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_TEST_RAW_MODE) != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set touch mode %d.\r\n", + TOUCH_TEST_RAW_MODE); + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + /* clear garbage data */ + touch_delay(100); + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + memset(&misc_touch_dev->reported_touch_info, + 0x0, sizeof(struct _ts_zinitix_point_info)); + memset(&misc_touch_dev->touch_info, + 0x0, sizeof(struct _ts_zinitix_point_info)); + } + up(&misc_touch_dev->raw_data_lock); + return 1; + +} + +static DEVICE_ATTR(get_touch_raw_data, + S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH, + zinitix_get_test_raw_data, + zinitix_set_testmode); + + +static int ts_misc_fops_open(struct inode *inode, struct file *filp) +{ + return 0; +} + +static int ts_misc_fops_close(struct inode *inode, struct file *filp) +{ + return 0; +} + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 36) +static int ts_misc_fops_ioctl(struct inode *inode, + struct file *filp, unsigned int cmd, + unsigned long arg) +#else +static long ts_misc_fops_ioctl(struct file *filp, + unsigned int cmd, unsigned long arg) +#endif +{ + void __user *argp = (void __user *)arg; + struct _raw_ioctl raw_ioctl; + u8 *u8Data; + int i, j; + int ret = 0; + size_t sz = 0; + u16 version; + u8 div_node; + int total_cal_n; + + u16 mode; + u16 chip_eeprom_info; + struct _reg_ioctl reg_ioctl; + u16 val; + int nval = 0; + + if (misc_touch_dev == NULL) + return -1; + + /* zinitix_debug_msg("cmd = %d, argp = 0x%x\n", cmd, (int)argp); */ + + switch (cmd) { + + case TOUCH_IOCTL_GET_DEBUGMSG_STATE: + ret = m_ts_debug_mode; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_SET_DEBUGMSG_STATE: + if (copy_from_user(&nval, argp, 4)) { + printk(KERN_INFO "[zinitix_touch] error : copy_from_user\n"); + return -1; + } + if (nval) + printk(KERN_INFO "[zinitix_touch] on debug mode (%d)\n", + nval); + else + printk(KERN_INFO "[zinitix_touch] off debug mode (%d)\n", + nval); + m_ts_debug_mode = nval; + break; + + case TOUCH_IOCTL_GET_CHIP_REVISION: + ret = misc_touch_dev->cap_info.chip_revision; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_FW_VERSION: + ret = misc_touch_dev->cap_info.chip_firmware_version; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_REG_DATA_VERSION: + ret = misc_touch_dev->cap_info.chip_reg_data_version; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_VARIFY_UPGRADE_SIZE: + if (copy_from_user(&sz, argp, sizeof(size_t))) + return -1; + + printk(KERN_INFO "[zinitix_touch] firmware size = %d\r\n", sz); + if (misc_touch_dev->cap_info.chip_fw_size != sz) { + printk(KERN_INFO "[zinitix_touch] firmware size error\r\n"); + return -1; + } + break; + + case TOUCH_IOCTL_VARIFY_UPGRADE_DATA: + if (copy_from_user(&m_firmware_data[2], + argp, misc_touch_dev->cap_info.chip_fw_size)) + return -1; + + version = + (u16)(((u16)m_firmware_data[FIRMWARE_VERSION_POS+1]<<8) + |(u16)m_firmware_data[FIRMWARE_VERSION_POS]); + + printk(KERN_INFO "[zinitix_touch] firmware version = %x\r\n", version); + + if (copy_to_user(argp, &version, sizeof(version))) + return -1; + break; + + case TOUCH_IOCTL_START_UPGRADE: + disable_irq(misc_touch_dev->irq); + down(&misc_touch_dev->work_proceedure_lock); + misc_touch_dev->work_proceedure = TS_IN_UPGRADE; + + if (misc_touch_dev->use_esd_timer) + ts_esd_timer_stop(misc_touch_dev); + zinitix_debug_msg("clear all reported points\r\n"); + zinitix_clear_report_data(misc_touch_dev); + + printk(KERN_INFO "[zinitix_touch] start upgrade firmware\n"); + if (ts_upgrade_firmware(misc_touch_dev, + &m_firmware_data[2], + misc_touch_dev->cap_info.chip_fw_size) == false) { + enable_irq(misc_touch_dev->irq); + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + + if (ts_init_touch(misc_touch_dev) == false) { + enable_irq(misc_touch_dev->irq); + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + + + if (misc_touch_dev->use_esd_timer) { + ts_esd_timer_start(ZINITIX_CHECK_ESD_TIMER, + misc_touch_dev); + zinitix_debug_msg("esd timer start\r\n"); + } + + enable_irq(misc_touch_dev->irq); + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + break; + + case TOUCH_IOCTL_GET_X_RESOLUTION: + ret = misc_touch_dev->cap_info.x_resolution; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_Y_RESOLUTION: + ret = misc_touch_dev->cap_info.y_resolution; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_X_NODE_NUM: + ret = misc_touch_dev->cap_info.x_node_num; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_Y_NODE_NUM: + ret = misc_touch_dev->cap_info.y_node_num; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_TOTAL_NODE_NUM: + ret = misc_touch_dev->cap_info.total_node_num; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_HW_CALIBRAION: + ret = -1; + disable_irq(misc_touch_dev->irq); + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO"[zinitix_touch] other process occupied.. (%d)\r\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + misc_touch_dev->work_proceedure = TS_HW_CALIBRAION; + + touch_delay(100); + /* h/w calibration */ + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, 0x07) != I2C_SUCCESS) + goto fail_hw_cal; + touch_delay(250); + if (ts_write_cmd(misc_touch_dev->client, + ZINITIX_CALIBRATE_CMD) != I2C_SUCCESS) + goto fail_hw_cal; + if (ts_write_cmd(misc_touch_dev->client, + ZINITIX_SWRESET_CMD) != I2C_SUCCESS) + goto fail_hw_cal; + touch_delay(10); + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + /* wait for h/w calibration */ + do { + touch_delay(1000); + if (ts_read_data(misc_touch_dev->client, + ZINITIX_EEPROM_INFO_REG, + (u8 *)&chip_eeprom_info, 2) < 0) + goto fail_hw_cal; + zinitix_debug_msg("touch eeprom info = 0x%04X\r\n", + chip_eeprom_info); + if (!zinitix_bit_test(chip_eeprom_info, 0)) + break; + } while (1); + + + touch_delay(10); + if (ts_write_cmd(misc_touch_dev->client, + ZINITIX_SAVE_CALIBRATION_CMD) != I2C_SUCCESS) + goto fail_hw_cal; + touch_delay(500); + + ret = 0; +fail_hw_cal: + if (misc_touch_dev->raw_mode_flag == TOUCH_NORMAL_MODE) + mode = TOUCH_MODE; + else + mode = misc_touch_dev->raw_mode_flag; + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, mode) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] fail to set touch mode %d.\n", + mode); + goto fail_hw_cal2; + } + + if (ts_write_cmd(misc_touch_dev->client, + ZINITIX_SWRESET_CMD) != I2C_SUCCESS) + goto fail_hw_cal2; + + enable_irq(misc_touch_dev->irq); + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return ret; +fail_hw_cal2: + enable_irq(misc_touch_dev->irq); + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return -1; + + case TOUCH_IOCTL_SET_RAW_DATA_MODE: + if (misc_touch_dev == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO"[zinitix_touch] other process occupied.. (%d)\r\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + misc_touch_dev->work_proceedure = TS_SET_MODE; + + if (copy_from_user(&nval, argp, 4)) { + printk(KERN_INFO "[zinitix_touch] error : copy_from_user\r\n"); + misc_touch_dev->work_proceedure = TS_NO_WORK; + return -1; + } + + zinitix_debug_msg("[zinitix_touch] touchkey_testmode = %d\r\n", + misc_touch_dev->raw_mode_flag); + + if (nval == TOUCH_NORMAL_MODE && + misc_touch_dev->raw_mode_flag != TOUCH_NORMAL_MODE) { + /* enter into normal mode */ + misc_touch_dev->raw_mode_flag = nval; + printk(KERN_INFO "[zinitix_touch] raw data mode exit\r\n"); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, + ZINITIX_SCAN_RATE_HZ*ZINITIX_ESD_TIMER_INTERVAL) + != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITIX_PERIODICAL_INTERRUPT_INTERVAL.\n"); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] fail to set TOUCH_MODE.\r\n"); + + /* clear garbage data */ + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + touch_delay(100); + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + } else if (nval != TOUCH_NORMAL_MODE) { + /* enter into test mode*/ + misc_touch_dev->raw_mode_flag = nval; + printk(KERN_INFO "[zinitix_touch] raw data mode enter\r\n"); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, + ZINITIX_SCAN_RATE_HZ + *ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL) + != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL.\n"); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, + misc_touch_dev->raw_mode_flag) != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] raw data mode : Fail to set TOUCH_MODE %d.\n", + misc_touch_dev->raw_mode_flag); + + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + /* clear garbage data */ + touch_delay(100); + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + } + + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return 0; + + case TOUCH_IOCTL_GET_REG: + if (misc_touch_dev == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO "[zinitix_touch] other process occupied.. (%d)\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + + misc_touch_dev->work_proceedure = TS_SET_MODE; + + if (copy_from_user(®_ioctl, + argp, sizeof(struct _reg_ioctl))) { + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + printk(KERN_INFO "[zinitix_touch] error : copy_from_user\n"); + return -1; + } + + if (ts_read_data(misc_touch_dev->client, + reg_ioctl.addr, (u8 *)&val, 2) < 0) + ret = -1; + + nval = (int)val; + + if (copy_to_user(reg_ioctl.val, (u8 *)&nval, 4)) { + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + printk(KERN_INFO "[zinitix_touch] error : copy_to_user\n"); + return -1; + } + + zinitix_debug_msg("read : reg addr = 0x%x, val = 0x%x\n", + reg_ioctl.addr, nval); + + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return ret; + + case TOUCH_IOCTL_SET_REG: + + if (misc_touch_dev == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO "[zinitix_touch] other process occupied.. (%d)\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + + misc_touch_dev->work_proceedure = TS_SET_MODE; + if (copy_from_user(®_ioctl, + argp, sizeof(struct _reg_ioctl))) { + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + printk(KERN_INFO "[zinitix_touch] error : copy_from_user\n"); + return -1; + } + + if (copy_from_user(&val, reg_ioctl.val, 4)) { + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + printk(KERN_INFO "[zinitix_touch] error : copy_from_user\n"); + return -1; + } + + if (ts_write_reg(misc_touch_dev->client, + reg_ioctl.addr, val) != I2C_SUCCESS) + ret = -1; + + zinitix_debug_msg("write : reg addr = 0x%x, val = 0x%x\r\n", + reg_ioctl.addr, val); + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return ret; + + case TOUCH_IOCTL_DONOT_TOUCH_EVENT: + + if (misc_touch_dev == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO"[zinitix_touch] other process occupied.. (%d)\r\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + + misc_touch_dev->work_proceedure = TS_SET_MODE; + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_INT_ENABLE_FLAG, 0) != I2C_SUCCESS) + ret = -1; + zinitix_debug_msg("write : reg addr = 0x%x, val = 0x0\r\n", + ZINITIX_INT_ENABLE_FLAG); + + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return ret; + + case TOUCH_IOCTL_SEND_SAVE_STATUS: + if (misc_touch_dev == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO"[zinitix_touch] other process occupied.. (%d)\r\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + misc_touch_dev->work_proceedure = TS_SET_MODE; + ret = 0; + if (ts_write_cmd(misc_touch_dev->client, + ZINITIX_SAVE_STATUS_CMD) != I2C_SUCCESS) + ret = -1; + touch_delay(1000); /* for fusing eeprom */ + + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return ret; + + case TOUCH_IOCTL_GET_RAW_DATA: + if (misc_touch_dev == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + + if (misc_touch_dev->raw_mode_flag == TOUCH_NORMAL_MODE) + return -1; + + down(&misc_touch_dev->raw_data_lock); + if (misc_touch_dev->update == 0) { + up(&misc_touch_dev->raw_data_lock); + return -2; + } + + if (copy_from_user(&raw_ioctl, + argp, sizeof(raw_ioctl))) { + up(&misc_touch_dev->raw_data_lock); + printk(KERN_INFO "[zinitix_touch] error : copy_from_user\r\n"); + return -1; + } + + misc_touch_dev->update = 0; + + u8Data = (u8 *)&misc_touch_dev->cur_data[0]; + if (misc_touch_dev->raw_mode_flag == TOUCH_ZINITIX_CAL_N_MODE) { + + + j = 0; + total_cal_n = + misc_touch_dev->cap_info.total_cal_n; + if (total_cal_n == 0) + total_cal_n = 160; + div_node = + (u8)misc_touch_dev->cap_info.max_y_node; + if (div_node == 0) + div_node = 16; + u8Data = (u8 *)&misc_touch_dev->cur_data[0]; + for (i = 0; i < total_cal_n*2; i++) { + if (i%div_node < + misc_touch_dev->cap_info.y_node_num) { + misc_touch_dev->ref_data[j] = + (u16)u8Data[i]; + j++; + } + } + + u8Data = (u8 *)&misc_touch_dev->ref_data[0]; + } + + if (copy_to_user(raw_ioctl.buf, (u8 *)u8Data, + raw_ioctl.sz)) { + up(&misc_touch_dev->raw_data_lock); + return -1; + } + + up(&misc_touch_dev->raw_data_lock); + return 0; + + default: + break; + } + return 0; +} + +#endif /* USE_TEST_RAW_TH_DATA_MODE */ + +static int zinitix_regulator(void) +{ + int err; + + tsp_regulator_18 = regulator_get(NULL, REGU_NAME_TP1); + if (IS_ERR(tsp_regulator_18)) { + pr_err("zinitix:could not get 1.8v regulator\n"); + return -1; + } + err = regulator_set_voltage(tsp_regulator_18,1800000,1800000); + if (err) + pr_err("zinitix:could not set to 1800mv.\n"); + + + tsp_regulator_33 = regulator_get(NULL, REGU_NAME_TP); + if (IS_ERR(tsp_regulator_33)) { + pr_err("zinitix:could not get 3.3v regulator\n"); + return -1; + } + err =regulator_set_voltage(tsp_regulator_33,3000000,3000000); + if (err) + pr_err("zinitix:could not set to 3300mv.\n"); + return 0; +} + +static int zinitix_touch_probe(struct i2c_client *client, + const struct i2c_device_id *i2c_id) +{ + int ret = 0; + struct zinitix_touch_dev *touch_dev; + int i; + + zinitix_regulator(); + + zinitix_debug_msg("zinitix_touch_probe+\r\n"); + + + zinitix_debug_msg("Above BT4x3 Driver\r\n"); + + printk(KERN_INFO "[zinitix touch] driver version = %s\r\n", + TS_DRVIER_VERSION); + + +#ifdef ABS_MT_TRACKING_ID + printk(KERN_INFO "[zinitix touch] use tracking id\r\n"); +#endif + + if (strcmp(client->name, ZINITIX_ISP_NAME) == 0) { + printk(KERN_INFO "[zinitix_touch] isp client probe \r\n"); + m_isp_client = client; + return 0; + } + touch_ctrl_regulator(1); + mdelay(CHIP_ON_DELAY); + mdelay(500); + firmware_touch_ctrl_regulator(0); + mdelay(1000); + firmware_touch_ctrl_regulator(1); + mdelay(CHIP_ON_DELAY); + mdelay(500); + + zinitix_debug_msg("i2c check function \r\n"); + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + printk(KERN_ERR "[zinitix_touch] error : not compatible i2c function \r\n"); + ret = -ENODEV; + goto err_check_functionality; + } + + zinitix_debug_msg("touch data alloc \r\n"); + touch_dev = kzalloc(sizeof(struct zinitix_touch_dev), GFP_KERNEL); + if (!touch_dev) { + printk(KERN_ERR "[zinitix_touch] unabled to allocate touch data \r\n"); + ret = -ENOMEM; + goto err_alloc_dev_data; + } + touch_dev->client = client; + i2c_set_clientdata(client, touch_dev); + + g_touch_dev = touch_dev; + + + + + zinitix_debug_msg("allocate input device \r\n"); + touch_dev->input_dev = input_allocate_device(); + if (touch_dev->input_dev == 0) { + printk(KERN_ERR "[zinitix_touch] unabled to allocate input device \r\n"); + ret = -ENOMEM; + goto err_input_allocate_device; + } + + /* initialize zinitix touch ic */ + gpio_request(GPIO_TOUCH_PIN_NUM,"zinitix_irq" ); + touch_dev->int_gpio_num = GPIO_TOUCH_PIN_NUM;//client->irq; /* for upgrade */ + + memset(&touch_dev->reported_touch_info, 0x0, sizeof(struct _ts_zinitix_point_info)); + +#if USE_TEST_RAW_TH_DATA_MODE + /* not test mode */ + touch_dev->raw_mode_flag = TOUCH_NORMAL_MODE; +#endif + if(ts_init_touch(touch_dev) == false) { + goto err_input_register_device; + } + touch_dev->use_esd_timer = 0; + + INIT_WORK(&touch_dev->tmr_work, zinitix_touch_tmr_work); + zinitix_tmr_workqueue = + create_singlethread_workqueue("zinitix_tmr_workqueue"); + if (!zinitix_tmr_workqueue) { + printk(KERN_ERR "[zinitix_touch] unabled to create touch tmr work queue \r\n"); + ret = -1; + goto err_kthread_create_failed; + } + + if (ZINITIX_ESD_TIMER_INTERVAL) { + touch_dev->use_esd_timer = 1; + ts_esd_timer_init(touch_dev); + ts_esd_timer_start(ZINITIX_CHECK_ESD_TIMER, touch_dev); + printk(KERN_INFO " [zinitix_touch] ts_esd_timer_start\n"); + } + + + sprintf(touch_dev->phys, "input(ts)"); + touch_dev->input_dev->name = ZINITIX_DRIVER_NAME; + touch_dev->input_dev->id.bustype = BUS_I2C; + touch_dev->input_dev->id.vendor = 0x0001; + touch_dev->input_dev->phys = touch_dev->phys; + touch_dev->input_dev->id.product = 0x0002; + touch_dev->input_dev->id.version = 0x0100; + + set_bit(EV_SYN, touch_dev->input_dev->evbit); + set_bit(EV_KEY, touch_dev->input_dev->evbit); + set_bit(BTN_TOUCH, touch_dev->input_dev->keybit); + set_bit(EV_ABS, touch_dev->input_dev->evbit); + + for (i = 0; i < MAX_SUPPORTED_BUTTON_NUM; i++) + set_bit(BUTTON_MAPPING_KEY[i], touch_dev->input_dev->keybit); + + set_bit(KEY_POWER, touch_dev->input_dev->keybit); + + if (touch_dev->cap_info.Orientation & TOUCH_XY_SWAP) { + input_set_abs_params(touch_dev->input_dev, ABS_MT_POSITION_Y, + touch_dev->cap_info.MinX, + touch_dev->cap_info.MaxX + ABS_PT_OFFSET, + 0, 0); + input_set_abs_params(touch_dev->input_dev, ABS_MT_POSITION_X, + touch_dev->cap_info.MinY, + touch_dev->cap_info.MaxY + ABS_PT_OFFSET, + 0, 0); + } else { + input_set_abs_params(touch_dev->input_dev, ABS_MT_POSITION_X, + touch_dev->cap_info.MinX, + touch_dev->cap_info.MaxX + ABS_PT_OFFSET, + 0, 0); + input_set_abs_params(touch_dev->input_dev, ABS_MT_POSITION_Y, + touch_dev->cap_info.MinY, + touch_dev->cap_info.MaxY + ABS_PT_OFFSET, + 0, 0); + } + + input_set_abs_params(touch_dev->input_dev, ABS_TOOL_WIDTH, + 0, 255, 0, 0); + input_set_abs_params(touch_dev->input_dev, ABS_MT_TOUCH_MAJOR, + 0, 255, 0, 0); + input_set_abs_params(touch_dev->input_dev, ABS_MT_WIDTH_MAJOR, + 0, 255, 0, 0); + +#ifdef ABS_MT_TRACKING_ID + input_set_abs_params(touch_dev->input_dev, ABS_MT_TRACKING_ID, + 0, touch_dev->cap_info.multi_fingers, 0, 0); +#endif + + + zinitix_debug_msg("register %s input device \r\n", + touch_dev->input_dev->name); + ret = input_register_device(touch_dev->input_dev); + if (ret) { + printk(KERN_ERR "[zinitix_touch] unable to register %s input device\r\n", + touch_dev->input_dev->name); + goto err_input_register_device; + } + + /* configure touchscreen interrupt gpio */ + + touch_dev->int_gpio_num = GPIO_TOUCH_PIN_NUM; + +#if 0 //GPIO_TOUCH_IRQ + touch_dev->irq = GPIO_TOUCH_IRQ; +#else + + printk("First check : touch_dev->irq : %d, touch_dev->client->irq : %d\n",touch_dev->irq,touch_dev->client->irq); + touch_dev->irq = gpio_to_irq(GPIO_TOUCH_PIN_NUM); + touch_dev->client->irq = touch_dev->irq; + + printk("touch_dev->irq : %d, touch_dev->client->irq : %d\n",touch_dev->irq,touch_dev->client->irq); + if (touch_dev->irq <= 0) + printk(KERN_INFO "[zinitix_touch] error. gpio_to_irq(..) function is not \ + supported? you should define GPIO_TOUCH_IRQ.\r\n"); +#endif + zinitix_debug_msg("request irq (irq = %d, pin = %d) \r\n", + touch_dev->client->irq, touch_dev->int_gpio_num); + + touch_dev->work_proceedure = TS_NO_WORK; + sema_init(&touch_dev->work_proceedure_lock, 1); + + if (touch_dev->client->irq) { + ret = request_threaded_irq(touch_dev->client->irq, NULL, zinitix_touch_work, IRQF_TRIGGER_FALLING | IRQF_ONESHOT, "zinitix_ts", touch_dev); + if (ret) { + printk(KERN_ERR "[zinitix_touch] [zinitix_touch] unable to register irq.(%s)\r\n", touch_dev->input_dev->name); + goto err_request_irq; + } + } + dev_info(&client->dev, "zinitix touch probe.\r\n"); + +#ifdef CONFIG_HAS_EARLYSUSPEND + touch_dev->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + touch_dev->early_suspend.suspend = zinitix_early_suspend; + touch_dev->early_suspend.resume = zinitix_late_resume; + register_early_suspend(&touch_dev->early_suspend); +#endif + +#if USE_TEST_RAW_TH_DATA_MODE + sema_init(&touch_dev->raw_data_lock, 1); + + misc_touch_dev = touch_dev; + + ret = misc_register(&touch_misc_device); + if (ret) + zinitix_debug_msg("Fail to register touch misc device.\n"); + + if (device_create_file(touch_misc_device.this_device, + &dev_attr_get_touch_raw_data) < 0) + printk(KERN_INFO "[zinitix_touch] Failed to create device file(%s)!\n", + dev_attr_get_touch_raw_data.attr.name); + +#endif + + /* sys fs */ + touch_class = class_create(THIS_MODULE, "touch"); + if (IS_ERR(touch_class)) + pr_err("[TSP] Failed to create class(touch)!\n"); + firmware_dev = device_create(touch_class, NULL, 0, NULL, "firmware"); + if (IS_ERR(firmware_dev)) + pr_err("[TSP] Failed to create device(firmware)!\n"); + if (device_create_file(firmware_dev, &dev_attr_firmware) < 0) + pr_err("Failed to create device file(%s)!\n", dev_attr_firmware.attr.name); + if (device_create_file(firmware_dev, &dev_attr_firmware_ver) < 0) + pr_err("[TSP] Failed to create device file(%s)!\n", dev_attr_firmware_ver.attr.name); + if (device_create_file(firmware_dev, &dev_attr_firmware_ret) < 0) + pr_err("[TSP] Failed to create device file(%s)!\n", dev_attr_firmware_ret.attr.name); + if (device_create_file(firmware_dev, &dev_attr_phone_fw_ver) < 0) + pr_err("[TSP] Failed to create device file(%s)!\n", dev_attr_phone_fw_ver.attr.name); + if (device_create_file(firmware_dev, &dev_attr_part_fw_ver) < 0) + pr_err("[TSP] Failed to create device file(%s)!\n", dev_attr_part_fw_ver.attr.name); + if (device_create_file(firmware_dev, &dev_attr_threshold_fw_ver) < 0) + pr_err("[TSP] Failed to create device file(%s)!\n", dev_attr_threshold_fw_ver.attr.name); + if (device_create_file(firmware_dev, &dev_attr_config_fw_ver) < 0) + pr_err("[TSP] Failed to create device file(%s)!\n", dev_attr_config_fw_ver.attr.name); + if (device_create_file(firmware_dev, &dev_attr_fw_upstatus) < 0) + pr_err("[TSP] Failed to create device file(%s)!\n", dev_attr_fw_upstatus.attr.name); + if (device_create_file(firmware_dev, &dev_attr_raw_enable) < 0) + pr_err("Failed to create device file(%s)!\n", dev_attr_raw_enable.attr.name); + if (device_create_file(firmware_dev, &dev_attr_raw_disable) < 0) + pr_err("Failed to create device file(%s)!\n", dev_attr_raw_disable.attr.name); + if (device_create_file(firmware_dev, &dev_attr_raw_value) < 0) + pr_err("Failed to create device file(%s)!\n", dev_attr_raw_value.attr.name); + if (device_create_file(firmware_dev, &dev_attr_node_read) < 0) + pr_err("Failed to create device file(%s)!\n", dev_attr_node_read.attr.name); + if (device_create_file(firmware_dev, &dev_attr_ncount_read) < 0) + pr_err("Failed to create device file(%s)!\n", dev_attr_ncount_read.attr.name); + if (device_create_file(firmware_dev, &dev_attr_touchkey_read) < 0) + pr_err("Failed to create device file(%s)!\n", dev_attr_touchkey_read.attr.name); + /* sys fs */ + + return 0; + +err_request_irq: + input_unregister_device(touch_dev->input_dev); +err_input_register_device: + input_free_device(touch_dev->input_dev); +err_kthread_create_failed: +err_input_allocate_device: + kfree(touch_dev); +err_alloc_dev_data: +err_check_functionality: + + return ret; +} + + +static int zinitix_touch_remove(struct i2c_client *client) +{ + struct zinitix_touch_dev *touch_dev = i2c_get_clientdata(client); + + zinitix_debug_msg("zinitix_touch_remove+ \r\n"); + down(&touch_dev->work_proceedure_lock); + if (touch_dev->work_proceedure != TS_NO_WORK) + flush_work(&touch_dev->work); + + touch_dev->work_proceedure = TS_REMOVE_WORK; + + if (touch_dev->use_esd_timer != 0) { + flush_work(&touch_dev->tmr_work); + ts_write_reg(touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, 0); + ts_esd_timer_stop(touch_dev); + zinitix_debug_msg(KERN_INFO " ts_esd_timer_stop\n"); + destroy_workqueue(zinitix_tmr_workqueue); + } + + if (touch_dev->irq) + free_irq(touch_dev->irq, touch_dev); + +#if USE_TEST_RAW_TH_DATA_MODE + device_remove_file(touch_misc_device.this_device, + &dev_attr_get_touch_raw_data); + misc_deregister(&touch_misc_device); +#endif + + +#ifdef CONFIG_HAS_EARLYSUSPEND + unregister_early_suspend(&touch_dev->early_suspend); +#endif + + destroy_workqueue(zinitix_workqueue); + + if (gpio_is_valid(touch_dev->int_gpio_num) != 0) + gpio_free(touch_dev->int_gpio_num); + + input_unregister_device(touch_dev->input_dev); + input_free_device(touch_dev->input_dev); + up(&touch_dev->work_proceedure_lock); + kfree(touch_dev); + + return 0; +} + +static int __devinit zinitix_touch_init(void) +{ +#if TOUCH_USING_ISP_METHOD + m_isp_client = NULL; +#endif + + printk("[zinitix_touch] zinitix_touch_init ! \n"); +// touch_regulator_2_9 = regulator_get(NULL,"touch_vcc_2.9v"); +// touch_regulator_3_3 = regulator_get(NULL,"touch_vcc_3.3v"); + + //board_sysconfig(SYSCFG_TOUCH, SYSCFG_INIT); + + m_isp_client = NULL; + return i2c_add_driver(&zinitix_touch_driver); +} + +static void __exit zinitix_touch_exit(void) +{ + i2c_del_driver(&zinitix_touch_driver); +} + +static ssize_t phone_firmware_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + zinitix_debug_msg("[TSP] %s\n",__func__); + + int HW_ver; + int phone_ver; + int ic_ver; + + HW_ver = g_touch_dev->cap_info.chip_revision; + ic_ver = g_touch_dev->cap_info.chip_reg_data_version; + phone_ver = (u16) (m_firmware_data[FIRMWARE_VERSION_POS+2] | (m_firmware_data[FIRMWARE_VERSION_POS+3]<<8)); + + sprintf(buf, "%02x\n", phone_ver); + + return sprintf(buf, "%s", buf ); +} + +static ssize_t firmware_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + u16 phone_version; + u16 hw_version; + u16 chip_revision; + + printk("[zinitix_touch] %s\n",__func__); + + /* get chip firmware version */ + //phone_version = g_touch_dev->cap_info.chip_firmware_version; + /* get chip revision id */ + if (ts_read_data(g_touch_dev->client, ZINITIX_CHIP_REVISION, (u8 *)&chip_revision, 2) < 0) { + printk(KERN_INFO "[zinitix_touch] fail to read chip revision\r\n"); + } + printk(KERN_INFO "[zinitix_touch] zinitix touch chip revision id = %x\r\n", chip_revision); + + if (ts_read_data(g_touch_dev->client, ZINITIX_DATA_VERSION_REG, (u8*)&phone_version, 2)<0){ + printk(KERN_INFO "[zinitix_touch] fail to read chip revision\r\n"); + } + printk(KERN_INFO "[zinitix_touch] zinitix touch chip firmware version = %x\r\n", phone_version); + + if (ts_read_data(g_touch_dev->client, ZINITIX_TSP_TYPE, (u8*)&hw_version, 2)<0){ + printk(KERN_INFO "[zinitix_touch] fail to read chip revision\r\n"); + } + printk(KERN_INFO "[zinitix_touch] zinitix touch chip firmware version = %x\r\n", hw_version); + sprintf(buf, "10%x0%x0%x\n", hw_version, phone_version, PHONE_FW_VER); + + printk("[zinitix_touch] %s\n", buf); + + return sprintf(buf, "%s", buf); +} +static ssize_t part_firmware_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + zinitix_debug_msg("[zinitix_touch] %s\n",__func__); + + int HW_ver; + int phone_ver; + int ic_ver; + + HW_ver = g_touch_dev->cap_info.chip_revision; + ic_ver = g_touch_dev->cap_info.chip_reg_data_version; + phone_ver = (u16) (m_firmware_data[FIRMWARE_VERSION_POS+2] | (m_firmware_data[FIRMWARE_VERSION_POS+3]<<8)); + + sprintf(buf, "%02x\n",ic_ver); + + return sprintf(buf, "%s", buf ); +} + +static ssize_t threshold_firmware_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + zinitix_debug_msg("[zinitix_touch] %s\n",__func__); + + int HW_ver; + int phone_ver; + int ic_ver; + + HW_ver = g_touch_dev->cap_info.chip_revision; + ic_ver = g_touch_dev->cap_info.chip_reg_data_version; + phone_ver = (u16) (m_firmware_data[FIRMWARE_VERSION_POS+2] | (m_firmware_data[FIRMWARE_VERSION_POS+3]<<8)); + + sprintf(buf, "%02x\n", 0x300); + printk("[zinitix_touch] threshold_firmware_show : %02x\n", 0x300); + return sprintf(buf, "%s", buf ); +} + +static ssize_t config_firmware_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + zinitix_debug_msg("[zinitix_touch] %s\n",__func__); + + int HW_ver; + int phone_ver; + int ic_ver; + + HW_ver = g_touch_dev->cap_info.chip_revision; + ic_ver = g_touch_dev->cap_info.chip_reg_data_version; + phone_ver = (u16) (m_firmware_data[FIRMWARE_VERSION_POS+2] | (m_firmware_data[FIRMWARE_VERSION_POS+3]<<8)); + + //zinitix_debug_msg("chip_revision : %d, HW_ver = %d\n", g_touch_dev->cap_info.chip_revision, HW_ver); // 0xb , 11 + //zinitix_debug_msg("chip_firmware_version : %d, phone_ver = %d\n", g_touch_dev->cap_info.chip_firmware_version, phone_ver); //0x102, 258 + //zinitix_debug_msg("phone(m_firmware_data[0]) = %d\n", m_firmware_data[0]); + + // sprintf(buf, "0%d\n", (HW_ver*100000) + (phone_ver*1000)+(ic_ver*10)); + sprintf(buf, "%02x\n", HW_ver); + + return sprintf(buf, "%s", buf ); +} + +static ssize_t firmware_ret_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int i; + u16 chip_eeprom_info; + + printk("[zinitix_touch] %s\n",__func__); + sprintf(IsfwUpdate,"%s\n",FW_DOWNLOADING); + + + disable_irq(g_touch_dev->irq); + down(&g_touch_dev->work_proceedure_lock); + g_touch_dev->work_proceedure = TS_IN_UPGRADE; +#if ZINITIX_ESD_TIMER_INTERVAL + if(g_touch_dev->use_esd_timer) + { + ts_esd_timer_stop(g_touch_dev); + } +#endif + + zinitix_debug_msg("clear all reported points\r\n"); + zinitix_clear_report_data(g_touch_dev); + + g_touch_dev->cap_info.chip_fw_size = 32*1024; + + + for(i=0; i < 5; i++) { + zinitix_debug_msg("[zinitix touch] manual upgrade count = %d\r\n", i); + if( ts_upgrade_firmware(g_touch_dev, &m_firmware_data[2], + g_touch_dev->cap_info.chip_fw_size) == true) + break; + } + if(i >= 5) + { + zinitix_debug_msg("[zinitix touch] failed to manual upgrade\r\n"); + return sprintf(buf, "%d", -1 ); + //return sprintf(buf, "%s", "fail!!\n" ); + } else { + // hw calibration and make checksum + zinitix_debug_msg("HW calibration 1 !!! \r\n"); + if (ts_write_reg(g_touch_dev->client, ZINITIX_TOUCH_MODE, 0x07) != I2C_SUCCESS) + goto fail_hwcal_init; + zinitix_debug_msg("HW calibration 2 !!! \r\n"); + if (ts_write_cmd(g_touch_dev->client, ZINITIX_CALIBRATE_CMD) != I2C_SUCCESS) + goto fail_hwcal_init; + zinitix_debug_msg("HW calibration 3 !!! \r\n"); + if (ts_write_cmd(g_touch_dev->client, ZINITIX_SWRESET_CMD) != I2C_SUCCESS) + goto fail_hwcal_init; + mdelay(100); + ts_write_cmd(g_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + mdelay(100); + ts_write_cmd(g_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + mdelay(100); + ts_write_cmd(g_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + mdelay(100); + /* wait for h/w calibration*/ + do { + mdelay(1000); + if (ts_read_data(g_touch_dev->client, ZINITIX_EEPROM_INFO_REG, (u8 *)&chip_eeprom_info, 2) < 0) + goto fail_hwcal_init; + zinitix_debug_msg("touch eeprom info = 0x%04X\r\n", chip_eeprom_info); + if (!zinitix_bit_test(chip_eeprom_info, 0)) + break; + } while (1); + zinitix_debug_msg("HW calibration 4 !!! \r\n"); + if (ts_write_reg(g_touch_dev->client, ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) + goto fail_hwcal_init; + mdelay(10); + zinitix_debug_msg("HW calibration 5 !!! \r\n"); + if (ts_write_cmd(g_touch_dev->client, ZINITIX_SWRESET_CMD) != I2C_SUCCESS) + goto fail_hwcal_init; + + mdelay(10); + zinitix_debug_msg("HW calibration 6 !!! \r\n"); + if (ts_write_cmd(g_touch_dev->client, ZINITIX_SAVE_CALIBRATION_CMD) != I2C_SUCCESS) + goto fail_hwcal_init; + mdelay(1000); + } + + if(ts_init_touch(g_touch_dev)==false) + { + enable_irq(g_touch_dev->irq); + g_touch_dev->work_proceedure = TS_NO_WORK; + up(&g_touch_dev->work_proceedure_lock); + zinitix_debug_msg("\n[TSP] fail firmware_update\n"); + return sprintf(buf, "%d", -1 ); + //return sprintf(buf, "%s", "fail!!\n" ); + } + + enable_irq(g_touch_dev->irq); + g_touch_dev->work_proceedure = TS_NO_WORK; + up(&g_touch_dev->work_proceedure_lock); + sprintf(IsfwUpdate,"%s\n",FW_DOWNLOAD_COMPLETE); + zinitix_debug_msg("\n[TSP] success firmware_update\n"); + return sprintf(buf, "%d", 1 ); + //return sprintf(buf, "%s", "success!!\n" ); + +fail_hwcal_init: +#if ZINITIX_ESD_TIMER_INTERVAL + if(g_touch_dev->use_esd_timer) + { + ts_esd_timer_start(ZINITIX_CHECK_ESD_TIMER, g_touch_dev); + zinitix_debug_msg("esd timer start\r\n"); + } +#endif + enable_irq(g_touch_dev->irq); + g_touch_dev->work_proceedure = TS_NO_WORK; + up(&g_touch_dev->work_proceedure_lock); + sprintf(IsfwUpdate,"%s\n",FW_DOWNLOAD_FAIL); + zinitix_debug_msg("\n[TSP] fail firmware_update\n"); + return sprintf(buf, "%d", -1 ); + //return sprintf(buf, "%s", "fail!!\n" ); + +} +static ssize_t firmware_update_status(struct device *dev, struct device_attribute *attr, char *buf) +{ + zinitix_debug_msg("[zinitix_touch] %s\n",__func__); + + return sprintf(buf, "%s\n", IsfwUpdate); +} + +static int16_t zinitix_raw_data[X_RAW_DATA][Y_RAW_DATA] = {0}; +static int8_t zinitix_ncount_data[X_RAW_DATA][Y_RAW_DATA] = {0}; + +static ssize_t zinitix_enter_testmode(struct device *dev, struct device_attribute *attr, char *buf) +{ + printk(KERN_INFO "[zinitix_touch] %s 111 name : %s\r\n", __FUNCTION__, misc_touch_dev->client->name); + + if(misc_touch_dev == NULL) + { + zinitix_debug_msg("device NULL : NULL\n"); + return snprintf(buf, 2, "-1"); + } + + down(&misc_touch_dev->raw_data_lock); + misc_touch_dev->raw_mode_flag = TOUCH_TEST_RAW_MODE; + + if (ts_write_reg(misc_touch_dev->client, ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, ZINITIX_SCAN_RATE_HZ*ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL)!=I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL.\r\n"); + + if (ts_write_reg(misc_touch_dev->client, ZINITIX_TOUCH_MODE, TOUCH_TEST_RAW_MODE)!=I2C_SUCCESS) + { + printk(KERN_INFO "[zinitix_touch] TEST Mode : Fail to set ZINITX_TOUCH_MODE %d.\r\n", TOUCH_TEST_RAW_MODE); + } + + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + // clear garbage data + mdelay(100); + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + memset(&misc_touch_dev->reported_touch_info, 0x0, sizeof(struct _ts_zinitix_point_info)); + memset(&misc_touch_dev->touch_info, 0x0, sizeof(struct _ts_zinitix_point_info)); + + up(&misc_touch_dev->raw_data_lock); + return 1; +} + +static ssize_t zinitix_enter_normalmode(struct device *dev, struct device_attribute *attr, char *buf) +{ + printk(KERN_INFO "[zinitix_touch] %s\r\n", __FUNCTION__); + + if(misc_touch_dev == NULL) +{ + zinitix_debug_msg("device NULL : NULL\n"); + return 0; + } + + down(&misc_touch_dev->raw_data_lock); + misc_touch_dev->raw_mode_flag = TOUCH_NORMAL_MODE; + + printk(KERN_INFO "[zinitix_touch] TEST Mode Exit\r\n"); + + if (ts_write_reg(misc_touch_dev->client, ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, ZINITIX_SCAN_RATE_HZ*ZINITIX_ESD_TIMER_INTERVAL)!=I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITIX_PERIODICAL_INTERRUPT_INTERVAL.\r\n"); + + if (ts_write_reg(misc_touch_dev->client, ZINITIX_TOUCH_MODE, TOUCH_MODE)!=I2C_SUCCESS) + { + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITX_TOUCH_MODE %d.\r\n", TOUCH_MODE); + } + // clear garbage data + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + mdelay(100); + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + + up(&misc_touch_dev->raw_data_lock); + return 1; +} + +static ssize_t rawdata_pass_fail_zinitix(struct device *dev, struct device_attribute *attr, char *buf) +{ + int time_out = 0; + int i,j; + int interrup_detecting; + int written_bytes = 0; /* error check */ + + int phone_ver; + int ic_ver; + + + int16_t raw_data[X_RAW_DATA][Y_RAW_DATA] = {{0,},}; // 2 byte + + printk(KERN_INFO "[zinitix_touch] zinitix_read_raw_data( )\r\n"); + disable_irq(misc_touch_dev->client->irq); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, 7) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + udelay(10); + + for (i = 0; i < INT_WAIT_TIME; i++) { + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + time_out = 0; + interrup_detecting = 1; + + while (gpio_get_value(misc_touch_dev->int_gpio_num)) { + msleep(1); + + if (time_out++ > 20) { + printk(KERN_INFO "[zinitix_touch] interrupt disable timed out\r\n"); + interrup_detecting = 0; + break; + } + } + if (i == INT_WAIT_TIME) { + printk(KERN_INFO "[zinitix_touch] interrupt disable timed out\r\n"); + goto fail_read_raw; + } + + if ((interrup_detecting == 1) && (time_out < 20)) { + if (ts_read_raw_data(misc_touch_dev->client, + ZINITIX_RAWDATA_REG, (char *)raw_data, + MAX_TEST_RAW_DATA*2) < 0) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_RAWDATA_REG fail\r\n"); + goto fail_read_raw; + } + memcpy(zinitix_raw_data, raw_data, MAX_TEST_RAW_DATA*2); +#ifdef ZINITIX_N_TEST + for (j = 0; j < (MAX_TEST_RAW_DATA*2); j++) { + printk(KERN_INFO "[zinitix_touch] temp_buff[%d]" + "= %5d\r\n", j, zinitix_raw_data[j]); + } +#endif + break; + } + } + + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(10); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(10); + + enable_irq(misc_touch_dev->client->irq); + + for (i = 0; i < misc_touch_dev->cap_info.x_node_num; i++) { + printk(KERN_CONT "[zinitix_touch] "); + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) + printk(KERN_CONT " %5d", raw_data[i][j]); + printk(KERN_CONT "\n"); + } + + // TSP ndata + for (i = 0; i < misc_touch_dev->cap_info.x_node_num-1; i++) { + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) { + if (raw_data[i][j] < CAL_MIN_NUM) + { + printk("[zinitix1] : returned by -> raw_data[%d][%d] %5d \n", i, j, raw_data[i][j]); + return snprintf(buf, 2, "0"); // fail + } + + if (raw_data[i][j] > CAL_MAX_NUM) + { + printk("[zinitix2] : returned by -> raw_data[%d][%d] %5d \n", i, j, raw_data[i][j]); + return snprintf(buf, 2, "0"); // fail + } + } + } + + // TOUCH KEY ndata + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) { + if ((j == 1) || (j == 8)) { + if (raw_data[misc_touch_dev->cap_info.x_node_num-1][j] < CAL_MIN_NUM) + { + printk("[zinitix3] : returned by -> raw_data[%d][%d] %5d \n", misc_touch_dev->cap_info.x_node_num-1, j, raw_data[misc_touch_dev->cap_info.x_node_num-1][j]); + return snprintf(buf, 2, "0"); // fail + } + + if (raw_data[misc_touch_dev->cap_info.x_node_num-1][j] > CAL_MAX_NUM) + { + printk("[zinitix4] : returned by -> raw_data[%d][%d] %5d \n", misc_touch_dev->cap_info.x_node_num-1, j, raw_data[misc_touch_dev->cap_info.x_node_num-1][j]); + return snprintf(buf, 2, "0"); // fail + } + } + } + + + ic_ver = g_touch_dev->cap_info.chip_reg_data_version; + phone_ver = (u16) (m_firmware_data[FIRMWARE_VERSION_POS+2] | (m_firmware_data[FIRMWARE_VERSION_POS+3]<<8)); + + zinitix_debug_msg("phone_ver = %d, ic_ver = %d\n",phone_ver,ic_ver); + + if(phone_ver != ic_ver) + return snprintf(buf, 2, "0"); // fail + + + return snprintf(buf, 2, "1"); // success + + for (i = 0; i < misc_touch_dev->cap_info.x_node_num; i++) { + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) { + written_bytes += sprintf(buf+written_bytes, "%d,",raw_data[i][j]); + } + } + + printk("[zinitix_touch] written_bytes = %d \n",written_bytes); + if(written_bytes > 0) + return written_bytes; +fail_read_raw: + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(10); + + enable_irq(misc_touch_dev->client->irq); + return snprintf(buf, 2, "-1"); + } + +static ssize_t scantime_zinitix(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int i, j; + int written_bytes = 0; /* error check */ + + u8 raw_data[20][16] = {{0,},}; + u8 scantime_data[X_RAW_DATA][Y_RAW_DATA] = {{0,},}; + + printk(KERN_INFO "[zinitix_touch] scantime_zinitix( )\r\n"); + disable_irq(misc_touch_dev->client->irq); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, 8) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + msleep(100); + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + + if (ts_read_raw_data(misc_touch_dev->client, + ZINITIX_RAWDATA_REG, (char *)raw_data, 320) < 0) { + printk(KERN_INFO "error : read zinitix tc Cal N raw data\n"); + goto fail_read_raw; + } + msleep(10); + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + msleep(10); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + msleep(10); + + enable_irq(misc_touch_dev->client->irq); + + for (i = 0; i < misc_touch_dev->cap_info.x_node_num; i++) { + printk(KERN_CONT "[TSP]"); + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) { + scantime_data[i][j] = raw_data[i][j]; + printk(KERN_CONT " %d", scantime_data[i][j]); + } + printk(KERN_CONT "\n"); + } + + for (i = 0; i < misc_touch_dev->cap_info.x_node_num; i++) { + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) { + written_bytes += sprintf(buf+written_bytes, ",%5d", raw_data[i][j]) ; + } + } + + if (written_bytes > 0) + { + return written_bytes;} + + return snprintf(buf, 2, "-1"); + +fail_read_raw: + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(10); + + enable_irq(misc_touch_dev->client->irq); + return snprintf(buf, 2, "-1"); +} + +static ssize_t read_node(struct device *dev, struct device_attribute *attr, char *buf) +{ + + int time_out = 0; + int i,j; + int interrup_detecting; + int written_bytes = 0; /* error check */ + + int16_t raw_data[X_RAW_DATA][Y_RAW_DATA] = {{0,},}; // 2 byte + + printk(KERN_INFO "[zinitix_touch] zinitix_read_raw_data( )\r\n"); + disable_irq(misc_touch_dev->client->irq); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, 7) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + udelay(10); + + for (i = 0; i < INT_WAIT_TIME; i++) { + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + time_out = 0; + interrup_detecting = 1; + + while (gpio_get_value(misc_touch_dev->int_gpio_num)) { + msleep(1); + + if (time_out++ > 20) { + printk(KERN_INFO "[zinitix_touch] interrupt disable timed out\r\n"); + interrup_detecting = 0; + break; + } + } + if (i == INT_WAIT_TIME) { + printk(KERN_INFO "[zinitix_touch] interrupt disable timed out\r\n"); + goto fail_read_raw; + } + + if ((interrup_detecting == 1) && (time_out < 20)) { + if (ts_read_raw_data(misc_touch_dev->client, + ZINITIX_RAWDATA_REG, (char *)raw_data, + MAX_TEST_RAW_DATA*2) < 0) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_RAWDATA_REG fail\r\n"); + goto fail_read_raw; + } + memcpy(zinitix_raw_data, raw_data, MAX_TEST_RAW_DATA*2); +#ifdef ZINITIX_N_TEST + for (j = 0; j < (MAX_TEST_RAW_DATA*2); j++) { + printk(KERN_INFO "[zinitix_touch] temp_buff[%d]" + "= %5d\r\n", j, zinitix_raw_data[j]); + } +#endif + break; + } + } + + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(10); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(10); + + enable_irq(misc_touch_dev->client->irq); + + for (i = 0; i < misc_touch_dev->cap_info.x_node_num; i++) { + printk(KERN_CONT "[zinitix_touch] "); + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) + printk(KERN_CONT " %5d", raw_data[i][j]); + printk(KERN_CONT "\n"); + } + + for (i = 0; i < misc_touch_dev->cap_info.x_node_num; i++) { + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) { + written_bytes += sprintf(buf+written_bytes, ",%5d", raw_data[i][j]) ; + } + } + + printk("[zinitix_touch] written_bytes = %d \n",written_bytes); + if(written_bytes > 0) + return written_bytes; + +fail_read_raw: + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(10); + + enable_irq(misc_touch_dev->client->irq); + return 1; + +} + +static ssize_t read_touchkey(struct device *dev, struct device_attribute *attr, char *buf) +{ + + int time_out = 0; + int i,j; + int interrup_detecting; + int written_bytes = 0; /* error check */ + + int16_t raw_data[X_RAW_DATA][Y_RAW_DATA] = {{0,},}; // 2 byte + + printk(KERN_INFO "[zinitix_touch] zinitix_read_raw_data( )\r\n"); + disable_irq(misc_touch_dev->client->irq); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, 7) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + udelay(10); + + for (i = 0; i < INT_WAIT_TIME; i++) { + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + time_out = 0; + interrup_detecting = 1; + + while (gpio_get_value(misc_touch_dev->int_gpio_num)) { + msleep(1); + + if (time_out++ > 20) { + printk(KERN_INFO "[zinitix_touch] interrupt disable timed out\r\n"); + interrup_detecting = 0; + break; + } + } + if (i == INT_WAIT_TIME) { + printk(KERN_INFO "[zinitix_touch] interrupt disable timed out\r\n"); + goto fail_read_raw; + } + + if ((interrup_detecting == 1) && (time_out < 20)) { + if (ts_read_raw_data(misc_touch_dev->client, + ZINITIX_RAWDATA_REG, (char *)raw_data, + MAX_TEST_RAW_DATA*2) < 0) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_RAWDATA_REG fail\r\n"); + goto fail_read_raw; + } + memcpy(zinitix_raw_data, raw_data, MAX_TEST_RAW_DATA*2); +#ifdef ZINITIX_N_TEST + for (j = 0; j < (MAX_TEST_RAW_DATA*2); j++) { + printk(KERN_INFO "[zinitix_touch] temp_buff[%d]" + "= %5d\r\n", j, zinitix_raw_data[j]); + } +#endif + break; + } + } + + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(10); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(10); + + enable_irq(misc_touch_dev->client->irq); + + + // TOUCH KEY ndata + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) { + if ((j == 1) || (j == 8)) { + if (raw_data[misc_touch_dev->cap_info.x_node_num-1][j] < CAL_MIN_NUM) + { + printk("[zinitix3] : returned by -> raw_data[%d][%d] %5d \n", misc_touch_dev->cap_info.x_node_num-1, j, raw_data[misc_touch_dev->cap_info.x_node_num-1][j]); + written_bytes += sprintf(buf+written_bytes, "%5d", raw_data[misc_touch_dev->cap_info.x_node_num-1][j]) ; + } + else + written_bytes += sprintf(buf+written_bytes, "%5d", raw_data[misc_touch_dev->cap_info.x_node_num-1][j]) ; + if (raw_data[misc_touch_dev->cap_info.x_node_num-1][j] > CAL_MAX_NUM) + { + printk("[zinitix4] : returned by -> raw_data[%d][%d] %5d \n", misc_touch_dev->cap_info.x_node_num-1, j, raw_data[misc_touch_dev->cap_info.x_node_num-1][j]); + written_bytes += sprintf(buf+written_bytes, "%5d", raw_data[misc_touch_dev->cap_info.x_node_num-1][j]) ; + } + else + written_bytes += sprintf(buf+written_bytes, "%5d", raw_data[misc_touch_dev->cap_info.x_node_num-1][j]) ; + } + } + + printk("[zinitix_touch] written_bytes = %d \n",written_bytes); + if(written_bytes > 0) + return written_bytes; + +fail_read_raw: + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(10); + + enable_irq(misc_touch_dev->client->irq); + return 1; + +} + +module_init(zinitix_touch_init); +module_exit(zinitix_touch_exit); + +MODULE_DESCRIPTION("zinitix touch-screen device driver using i2c interface"); +MODULE_AUTHOR("sohnet "); +MODULE_LICENSE("GPL"); + + diff --git a/drivers/input/touchscreen/zinitix_touch.h b/drivers/input/touchscreen/zinitix_touch.h new file mode 100644 index 00000000..2f0c5d9c --- /dev/null +++ b/drivers/input/touchscreen/zinitix_touch.h @@ -0,0 +1,249 @@ +/* + * + * Zinitix touch driver + * + * Copyright (C) 2009 Zinitix, 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 ZINITIX_HEADER + +#define ABS_MT_TRACKING_ID 1 + +#define ZINITIX_HEADER + +#define TS_DRVIER_VERSION "3.0.20" + +#define TOUCH_MODE 0 + +/* if you want to use firmware setting, set this value. +interrupt mask / button num / finger num */ +#define USING_CHIP_SETTING 0 + + +/* max 10 */ +#define MAX_SUPPORTED_FINGER_NUM 2 +#define REAL_SUPPORTED_FINGER_NUM 2 + + +/* max 8 */ +#define MAX_SUPPORTED_BUTTON_NUM 8 +#define SUPPORTED_BUTTON_NUM 2 + +/* Upgrade Method*/ +#define TOUCH_ONESHOT_UPGRADE 1 +/* if you use isp mode, you must add i2c device : +name = "zinitix_isp" , addr 0x50*/ + +#define USE_HW_CALIBRATION 1 + +/* resolution offset */ +#define ABS_PT_OFFSET 1 + +#define TOUCH_FORCE_UPGRADE 1 +#define USE_CHECKSUM 0 // BT4x3 only + +#define CHIP_POWER_OFF_DELAY 100 /*ms*/ +#define CHIP_POWER_OFF_AF_FZ_DELAY 250 /*ms*/ +#define CHIP_ON_DELAY 150 /*ms*/ +#define CHIP_ON_AF_FZ_DELAY 250 /*ms*/ +#define DELAY_FOR_SIGNAL_DELAY 30 /*us*/ +#define DELAY_FOR_TRANSCATION 50 +#define DELAY_FOR_POST_TRANSCATION 10 + + +#if !USE_HW_CALIBRATION +#define CALIBRATION_AREA 0x3800 +#endif + +#define FIRMWARE_VERSION_POS 0x6410 + +enum _zinitix_power_control { + POWER_OFF, + POWER_ON, + RESET_LOW, + RESET_HIGH, +}; + +/* Button Enum */ +enum _zinitix_button_event { + ICON_BUTTON_UNCHANGE, + ICON_BUTTON_DOWN, + ICON_BUTTON_UP, +}; + + +/* ESD Protection */ +/*second : if 0, no use. if you have to use, 3 is recommended*/ +#define ZINITIX_ESD_TIMER_INTERVAL 0 +#define ZINITIX_SCAN_RATE_HZ 70 +#define ZINITIX_CHECK_ESD_TIMER 4 + + +/*Test Mode (Monitoring Raw Data) */ +#define USE_TEST_RAW_TH_DATA_MODE 1 +#if USE_TEST_RAW_TH_DATA_MODE + +#define X_RAW_DATA 16 +#define Y_RAW_DATA 10 +#define MAX_TEST_RAW_DATA (X_RAW_DATA*Y_RAW_DATA) // 14 x 10 +#define MAX_TEST_POINT_INFO 3 /* status register + x + y*/ +#define MAX_RAW_DATA \ + (MAX_TEST_RAW_DATA + MAX_TEST_POINT_INFO*MAX_SUPPORTED_FINGER_NUM + 2) +/* preriod raw data interval*/ +#define ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL 1 +#define TOUCH_TEST_RAW_MODE 51 +#define TOUCH_NORMAL_MODE 48 +#define TOUCH_ZINITIX_BASELINED_RAW_MODE 3 +#define TOUCH_ZINITIX_PROCESSED_RAW_MODE 4 +#define TOUCH_ZINITIX_CAL_N_MODE 8 +#define ZINITIX_MENU_KEY 131 +#define ZINITIX_HOME_KEY 134 +#define ZINITIX_BACK_KEY 137 + +#define CAL_MIN_NUM 1360 +#define CAL_MAX_NUM 2040 +#define INT_WAIT_TIME 50 + +#define FULL_X_DATA 20 +#define FULL_Y_DATA 16 +#define SCANTIME_RAWDATA (FULL_X_DATA*FULL_Y_DATA) + +struct _raw_ioctl { + int sz; + u8 *buf; +}; + +struct _reg_ioctl{ + int addr; + int *val; +} ; + +#endif + +/* Other Things */ +#define ZINITIX_INIT_RETRY_CNT 3 +#define I2C_SUCCESS 0 +#define I2C_FAIL 1 + +#define INIT_RETRY_COUNT 2 + + +/*---------------------------------------------------------------------*/ + +/* Register Map*/ +#define ZINITIX_SWRESET_CMD 0x0000 +#define ZINITIX_WAKEUP_CMD 0x0001 + +#define ZINITIX_IDLE_CMD 0x0004 +#define ZINITIX_SLEEP_CMD 0x0005 + +#define ZINITIX_CLEAR_INT_STATUS_CMD 0x0003 +#define ZINITIX_CALIBRATE_CMD 0x0006 +#define ZINITIX_SAVE_STATUS_CMD 0x0007 +#define ZINITIX_SAVE_CALIBRATION_CMD 0x0008 +#define ZINITIX_RECALL_FACTORY_CMD 0x000f + + +#define ZINITIX_TOUCH_MODE 0x0010 +#define ZINITIX_CHIP_REVISION 0x0011 +#define ZINITIX_FIRMWARE_VERSION 0x0012 +#define ZINITIX_DATA_VERSION_REG 0x0013 +#define ZINITIX_TSP_TYPE 0x0014 +#define ZINITIX_SUPPORTED_FINGER_NUM 0x0015 +#define ZINITIX_MAX_Y_NUM 0x0016 +#define ZINITIX_EEPROM_INFO 0x0018 +#define ZINITIX_CAL_N_TOTAL_NUM 0x001B + +#define ZINITIX_TOTAL_NUMBER_OF_X 0x0060 +#define ZINITIX_TOTAL_NUMBER_OF_Y 0x0061 + +#define ZINITIX_BUTTON_SUPPORTED_NUM 0x00B0 + + +#define ZINITIX_X_RESOLUTION 0x00C0 +#define ZINITIX_Y_RESOLUTION 0x00C1 + + +#define ZINITIX_POINT_STATUS_REG 0x0080 +#define ZINITIX_ICON_STATUS_REG 0x00A0 + +#define ZINITIX_RAWDATA_REG 0x0200 + +#define ZINITIX_EEPROM_INFO_REG 0x0018 + +#define ZINITIX_INT_ENABLE_FLAG 0x00f0 +#define ZINITIX_PERIODICAL_INTERRUPT_INTERVAL 0x00f1 + +#define ZINITIX_CHECK_REG0 0x00AC +#define ZINITIX_CHECK_REG1 0x00AD +#define ZINITIX_CHECK_REG2 0x00AE +#define ZINITIX_CHECK_REG3 0x00AF + + +/* Interrupt & status register flag bit +------------------------------------------------- +*/ +#define BIT_PT_CNT_CHANGE 0 +#define BIT_DOWN 1 +#define BIT_MOVE 2 +#define BIT_UP 3 +#define BIT_HOLD 4 +#define BIT_LONG_HOLD 5 +#define RESERVED_0 6 +#define RESERVED_1 7 +#define BIT_WEIGHT_CHANGE 8 +#define BIT_PT_NO_CHANGE 9 +#define BIT_REJECT 10 +#define BIT_PT_EXIST 11 +#define RESERVED_2 12 +#define RESERVED_3 13 +#define RESERVED_4 14 +#define BIT_ICON_EVENT 15 + +/* button */ +#define BIT_O_ICON0_DOWN 0 +#define BIT_O_ICON1_DOWN 1 +#define BIT_O_ICON2_DOWN 2 +#define BIT_O_ICON3_DOWN 3 +#define BIT_O_ICON4_DOWN 4 +#define BIT_O_ICON5_DOWN 5 +#define BIT_O_ICON6_DOWN 6 +#define BIT_O_ICON7_DOWN 7 + +#define BIT_O_ICON0_UP 8 +#define BIT_O_ICON1_UP 9 +#define BIT_O_ICON2_UP 10 +#define BIT_O_ICON3_UP 11 +#define BIT_O_ICON4_UP 12 +#define BIT_O_ICON5_UP 13 +#define BIT_O_ICON6_UP 14 +#define BIT_O_ICON7_UP 15 + + +#define SUB_BIT_EXIST 0 +#define SUB_BIT_DOWN 1 +#define SUB_BIT_MOVE 2 +#define SUB_BIT_UP 3 +#define SUB_BIT_UPDATE 4 +#define SUB_BIT_WAIT 5 + + +#define zinitix_bit_set(val, n) ((val) &= ~(1<<(n)), (val) |= (1<<(n))) +#define zinitix_bit_clr(val, n) ((val) &= ~(1<<(n))) +#define zinitix_bit_test(val, n) ((val) & (1<<(n))) +#define zinitix_swap_v(a, b, t) ((t) = (a), (a) = (b), (b) = (t)) +#define zinitix_swap_16(s) (((((s) & 0xff) << 8) | (((s) >> 8) & 0xff))) + +#endif /*ZINITIX_HEADER*/ + + diff --git a/drivers/input/touchscreen/zinitix_touch_bt404.c b/drivers/input/touchscreen/zinitix_touch_bt404.c new file mode 100644 index 00000000..c58816d3 --- /dev/null +++ b/drivers/input/touchscreen/zinitix_touch_bt404.c @@ -0,0 +1,3525 @@ +/* + * + * Zinitix touch driver + * + * Copyright (C) 2009 Zinitix, 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. + * + */ +/* +Version 2.0.0 : using reg data file (2010/11/05) +Version 2.0.1 : syntxt bug fix (2010/11/09) +Version 2.0.2 : Save status cmd delay bug (2010/11/10) +Version 2.0.3 : modify delay 10ms -> 50ms for clear hw calibration bit + : modify ZINITIX_TOTAL_NUMBER_OF_Y register (read only -> read/write ) + : modify SUPPORTED FINGER NUM register (read only -> read/write ) +Version 2.0.4 : [20101116] + Modify Firmware Upgrade routine. +Version 2.0.5 : [20101118] + add esd timer function & some bug fix. + you can select request_threaded_irq or + request_irq, setting USE_THREADED_IRQ. +Version 2.0.6 : [20101123] + add ABS_MT_WIDTH_MAJOR Report +Version 2.0.7 : [20101201] + Modify zinitix_early_suspend() / zinitix_late_resume() routine. +Version 2.0.8 : [20101216] + add using spin_lock option +Version 2.0.9 : [20101216] + Test Version +Version 2.0.10 : [20101217] + add USE_THREAD_METHOD option. + if USE_THREAD_METHOD = 0, you use workqueue +Version 2.0.11 : [20101229] + add USE_UPDATE_SYSFS option for update firmware. + && TOUCH_MODE == 1 mode. +Version 2.0.13 : [20110125] + modify esd timer routine +Version 2.0.14 : [20110217] + esd timer bug fix. (kernel panic) + sysfs bug fix. +Version 2.0.15 : [20110315] + add power off delay ,250ms +Version 2.0.16 : [20110316] + add upgrade method using isp +Version 2.0.17 : [20110406] + change naming rule : sain -> zinitix + (add) pending interrupt skip + add isp upgrade mode + remove warning message when complile +Version 3.0.2 : [20110711] + support bt4x3 series +Version 3.0.3 : [20110720] + add raw data monitoring func. + add the h/w calibration skip option. +Version 3.0.4 : [20110728] + fix using semaphore bug. +Version 3.0.5 : [20110801] + fix some bugs. +Version 3.0.6 : [20110802] + fix Bt4x3 isp upgrade bug. + add USE_TS_MISC_DEVICE option for showing info & upgrade + remove USE_UPDATE_SYSFS option +Version 3.0.7 : [201108016] + merge USE_TS_MISC_DEVICE option and USE_TEST_RAW_TH_DATA_MODE + fix work proceedure bug. +Version 3.0.8 / Version 3.0.9 : [201108017] + add ioctl func. +Version 3.0.10 : [201108030] + support REAL_SUPPORTED_FINGER_NUM +Version 3.0.11 : [201109014] + support zinitix apps. +Version 3.0.12 : [201109015] + add disable touch event func. +Version 3.0.13 : [201109015] + add USING_CHIP_SETTING option : interrupt mask/button num/finger num +Version 3.0.14 : [201109020] + support apps. above kernel version 2.6.35 +Version 3.0.15 : [201101004] + modify timing in firmware upgrade retry when failt to upgrade firmware +Version 3.0.16 : [20111024] + remove thread method. + add resume/suspend function + check code using checkpatch.pl +Version 3.0.19 : [20111124] + modify isp timing : 2ms -> 1ms +Version 3.0.20 : [20120201] + support icecream sandwich + remove bt4x2 option +Version 3.0.21~22 : [20120501] + test +Version 3.0.23 : [20120517] + support mulit touch protocol type B for ics +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "zinitix_touch_bt404.h" +#include "zinitix_touch_bt4x4_firmware.h" + + +#define ZINITIX_DEBUG 0 + +static int m_ts_debug_mode = ZINITIX_DEBUG; + +#define SYSTEM_MAX_X_RESOLUTION 480 +#define SYSTEM_MAX_Y_RESOLUTION 870 + + +/* interrupt pin number*/ +#define GPIO_TOUCH_PIN_NUM 141 +/* interrupt pin IRQ number */ +#define GPIO_TOUCH_IRQ 0 + +#if !USE_THREADED_IRQ +static struct workqueue_struct *zinitix_workqueue; +#endif + +static struct workqueue_struct *zinitix_tmr_workqueue; + +#define zinitix_debug_msg(fmt, args...) \ + if (m_ts_debug_mode) \ + printk(KERN_INFO "zinitix : [%-18s:%5d]" fmt, \ + __func__, __LINE__, ## args); + +#define zinitix_printk(fmt, args...) \ + printk(KERN_INFO "zinitix : [%-18s:%5d]" fmt, \ + __func__, __LINE__, ## args); + +struct _ts_zinitix_coord { + u16 x; + u16 y; + u8 width; + u8 sub_status; +}; + +struct _ts_zinitix_point_info { + u16 status; +#if (TOUCH_MODE == 1) + u16 event_flag; +#else + u8 finger_cnt; + u8 time_stamp; +#endif + struct _ts_zinitix_coord coord[MAX_SUPPORTED_FINGER_NUM]; +}; + +#define TOUCH_V_FLIP 0x01 +#define TOUCH_H_FLIP 0x02 +#define TOUCH_XY_SWAP 0x04 + +struct _ts_capa_info { + u16 chip_revision; + u16 chip_firmware_version; + u16 chip_reg_data_version; + u16 x_resolution; + u16 y_resolution; + u32 chip_fw_size; + u32 MaxX; + u32 MaxY; + u32 MinX; + u32 MinY; + u32 Orientation; + u8 gesture_support; + u16 multi_fingers; + u16 button_num; + u16 chip_int_mask; + + u16 x_node_num; + u16 y_node_num; + u16 total_node_num; + u16 max_y_node; + u16 total_cal_n; + +}; + +enum _ts_work_proceedure { + TS_NO_WORK = 0, + TS_NORMAL_WORK, + TS_ESD_TIMER_WORK, + TS_IN_EALRY_SUSPEND, + TS_IN_SUSPEND, + TS_IN_RESUME, + TS_IN_LATE_RESUME, + TS_IN_UPGRADE, + TS_REMOVE_WORK, + TS_SET_MODE, + TS_HW_CALIBRAION, +}; + +struct zinitix_touch_dev { + struct input_dev *input_dev; + struct task_struct *task; + wait_queue_head_t wait; +#if !USE_THREADED_IRQ + struct work_struct work; +#endif + struct work_struct tmr_work; + struct i2c_client *client; + struct semaphore update_lock; + u32 i2c_dev_addr; + struct _ts_capa_info cap_info; + char phys[32]; + + bool is_valid_event; + struct _ts_zinitix_point_info touch_info; + struct _ts_zinitix_point_info reported_touch_info; + u16 icon_event_reg; + u16 event_type; + u32 int_gpio_num; + u32 irq; + u8 button[MAX_SUPPORTED_BUTTON_NUM]; + u8 work_proceedure; + struct semaphore work_proceedure_lock; + u8 use_esd_timer; + + bool in_esd_timer; + struct timer_list esd_timeout_tmr; + struct timer_list *p_esd_timeout_tmr; + +#ifdef CONFIG_HAS_EARLYSUSPEND + struct early_suspend early_suspend; +#endif + + + struct semaphore raw_data_lock; + u16 raw_mode_flag; + s16 ref_data[MAX_TEST_RAW_DATA]; + s16 cur_data[MAX_RAW_DATA]; + u8 update; + +}; + + +#define ZINITIX_DRIVER_NAME "Zinitix_tsp" +#define ZINITIX_ISP_NAME "zinitix_isp" +static struct i2c_client *m_isp_client; + +static struct i2c_device_id zinitix_idtable[] = { + {ZINITIX_ISP_NAME, 0}, + {ZINITIX_DRIVER_NAME, 0}, + { } +}; + +#if SEC_TOUCH_INFO_REPORT +extern struct class *sec_class; +struct device *sec_touchscreen_dev; +struct device *sec_touchkey_dev; +#endif + + +/*<= you must set key button mapping*/ +u32 BUTTON_MAPPING_KEY[MAX_SUPPORTED_BUTTON_NUM] = { + KEY_SEARCH, KEY_BACK, KEY_HOME, KEY_MENU,}; + +#define TOUCH_VIRTUAL_KEYS +#ifdef TOUCH_VIRTUAL_KEYS + +static ssize_t virtual_keys_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) +{ + return sprintf(buf, + __stringify(EV_KEY) ":" __stringify(KEY_MENU) ":30:859:100:55" + ":" __stringify(EV_KEY) ":" __stringify(KEY_BACK) ":430:859:100:55" + "\n"); +} + +static struct kobj_attribute virtual_keys_attr = { + .attr = { + .name = "virtualkeys.Zinitix_tsp", + .mode = S_IRUGO, + }, + .show = &virtual_keys_show, +}; + +static struct attribute *properties_attrs[] = { + &virtual_keys_attr.attr, + NULL +}; + +static struct attribute_group properties_attr_group = { + .attrs = properties_attrs, +}; + + +/* zinitix_ts_virtual_keys_init -- register virutal keys to system + * @return: none + */ +static void zinitix_ts_virtual_keys_init(void) +{ + int ret; + struct kobject *properties_kobj; + + //PIXCIR_DBG("%s",__func__); + + properties_kobj = kobject_create_and_add("board_properties", NULL); + if (properties_kobj) + ret = sysfs_create_group(properties_kobj, + &properties_attr_group); + if (!properties_kobj || ret) + pr_err("failed to create board_properties\n"); +} + + +#endif + + +/* define i2c sub functions*/ +static inline s32 ts_read_data(struct i2c_client *client, + u16 reg, u8 *values, u16 length) +{ + s32 ret; + /* select register*/ + ret = i2c_master_send(client , (u8 *)® , 2); + if (ret < 0) + return ret; + /* for setup tx transaction. */ + udelay(DELAY_FOR_TRANSCATION); + ret = i2c_master_recv(client , values , length); + if (ret < 0) + return ret; + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +static inline s32 ts_write_data(struct i2c_client *client, + u16 reg, u8 *values, u16 length) +{ + s32 ret; + u8 pkt[4]; + pkt[0] = (reg)&0xff; + pkt[1] = (reg >> 8)&0xff; + pkt[2] = values[0]; + pkt[3] = values[1]; + ret = i2c_master_send(client , pkt , length+2); + if (ret < 0) + return ret; + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +static inline s32 ts_write_reg(struct i2c_client *client, u16 reg, u16 value) +{ + if (ts_write_data(client, reg, (u8 *)&value, 2) < 0) + return I2C_FAIL; + return I2C_SUCCESS; +} + +static inline s32 ts_write_cmd(struct i2c_client *client, u16 reg) +{ + s32 ret; + ret = i2c_master_send(client , (u8 *)® , 2); + if (ret < 0) + return I2C_FAIL; + udelay(DELAY_FOR_POST_TRANSCATION); + return I2C_SUCCESS; +} + +static inline s32 ts_read_raw_data(struct i2c_client *client, + u16 reg, u8 *values, u16 length) +{ + s32 ret; + /* select register */ + ret = i2c_master_send(client , (u8 *)® , 2); + if (ret < 0) + return ret; + /* for setup tx transaction. */ + udelay(200); + ret = i2c_master_recv(client , values , length); + if (ret < 0) + return ret; + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + + + +static inline s32 ts_read_firmware_data(struct i2c_client *client, + char *addr, u8 *values, u16 length) +{ + s32 ret; + if (addr != NULL) { + /* select register*/ + ret = i2c_master_send(client , addr , 2); + if (ret < 0) + return ret; + /* for setup tx transaction. */ + mdelay(1); + } + ret = i2c_master_recv(client , values , length); + if (ret < 0) + return ret; + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +static inline s32 ts_write_firmware_data(struct i2c_client *client, + u8 *values, u16 length) +{ + s32 ret; + ret = i2c_master_send(client , values , length); + if (ret < 0) + return ret; + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +static int zinitix_touch_probe(struct i2c_client *client, + const struct i2c_device_id *i2c_id); +static int zinitix_touch_remove(struct i2c_client *client); +static bool ts_init_touch(struct zinitix_touch_dev *touch_dev); +static void zinitix_clear_report_data(struct zinitix_touch_dev *touch_dev); +static void zinitix_parsing_data(struct zinitix_touch_dev *touch_dev); + +#ifdef CONFIG_PM_SLEEP +static int zinitix_resume(struct device *dev); +static int zinitix_suspend(struct device *dev); +#endif + + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void zinitix_early_suspend(struct early_suspend *h); +static void zinitix_late_resume(struct early_suspend *h); +#endif + + +static void ts_esd_timer_start(u16 sec, struct zinitix_touch_dev *touch_dev); +static void ts_esd_timer_stop(struct zinitix_touch_dev *touch_dev); +static void ts_esd_timer_init(struct zinitix_touch_dev *touch_dev); +static void ts_esd_timeout_handler(unsigned long data); + + + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 36) +static int ts_misc_fops_ioctl(struct inode *inode, struct file *filp, + unsigned int cmd, unsigned long arg); +#else +static long ts_misc_fops_ioctl(struct file *filp, + unsigned int cmd, unsigned long arg); +#endif +static int ts_misc_fops_open(struct inode *inode, struct file *filp); +static int ts_misc_fops_close(struct inode *inode, struct file *filp); + +static const struct file_operations ts_misc_fops = { + .owner = THIS_MODULE, + .open = ts_misc_fops_open, + .release = ts_misc_fops_close, +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 36) + .ioctl = ts_misc_fops_ioctl, +#else + .unlocked_ioctl = ts_misc_fops_ioctl, +#endif +}; + +static struct miscdevice touch_misc_device = { + .minor = MISC_DYNAMIC_MINOR, + .name = "zinitix_touch_misc", + .fops = &ts_misc_fops, +}; + +#define TOUCH_IOCTL_BASE 0xbc +#define TOUCH_IOCTL_GET_DEBUGMSG_STATE _IOW(TOUCH_IOCTL_BASE, 0, int) +#define TOUCH_IOCTL_SET_DEBUGMSG_STATE _IOW(TOUCH_IOCTL_BASE, 1, int) +#define TOUCH_IOCTL_GET_CHIP_REVISION _IOW(TOUCH_IOCTL_BASE, 2, int) +#define TOUCH_IOCTL_GET_FW_VERSION _IOW(TOUCH_IOCTL_BASE, 3, int) +#define TOUCH_IOCTL_GET_REG_DATA_VERSION _IOW(TOUCH_IOCTL_BASE, 4, int) +#define TOUCH_IOCTL_VARIFY_UPGRADE_SIZE _IOW(TOUCH_IOCTL_BASE, 5, int) +#define TOUCH_IOCTL_VARIFY_UPGRADE_DATA _IOW(TOUCH_IOCTL_BASE, 6, int) +#define TOUCH_IOCTL_START_UPGRADE _IOW(TOUCH_IOCTL_BASE, 7, int) +#define TOUCH_IOCTL_GET_X_NODE_NUM _IOW(TOUCH_IOCTL_BASE, 8, int) +#define TOUCH_IOCTL_GET_Y_NODE_NUM _IOW(TOUCH_IOCTL_BASE, 9, int) +#define TOUCH_IOCTL_GET_TOTAL_NODE_NUM _IOW(TOUCH_IOCTL_BASE, 10, int) +#define TOUCH_IOCTL_SET_RAW_DATA_MODE _IOW(TOUCH_IOCTL_BASE, 11, int) +#define TOUCH_IOCTL_GET_RAW_DATA _IOW(TOUCH_IOCTL_BASE, 12, int) +#define TOUCH_IOCTL_GET_X_RESOLUTION _IOW(TOUCH_IOCTL_BASE, 13, int) +#define TOUCH_IOCTL_GET_Y_RESOLUTION _IOW(TOUCH_IOCTL_BASE, 14, int) +#define TOUCH_IOCTL_HW_CALIBRAION _IOW(TOUCH_IOCTL_BASE, 15, int) +#define TOUCH_IOCTL_GET_REG _IOW(TOUCH_IOCTL_BASE, 16, int) +#define TOUCH_IOCTL_SET_REG _IOW(TOUCH_IOCTL_BASE, 17, int) +#define TOUCH_IOCTL_SEND_SAVE_STATUS _IOW(TOUCH_IOCTL_BASE, 18, int) +#define TOUCH_IOCTL_DONOT_TOUCH_EVENT _IOW(TOUCH_IOCTL_BASE, 19, int) + + +struct zinitix_touch_dev *misc_touch_dev; + + + + + +//for Debugging Tol +static bool ts_get_raw_data(struct zinitix_touch_dev *touch_dev) +{ + u32 total_node = touch_dev->cap_info.total_node_num; + u32 sz; + u16 udata; + down(&touch_dev->raw_data_lock); + if (touch_dev->raw_mode_flag == TOUCH_TEST_RAW_MODE) { + sz = (total_node*2 + MAX_TEST_POINT_INFO*2); + + + if (ts_read_raw_data(touch_dev->client, + ZINITIX_RAWDATA_REG, + (char *)touch_dev->cur_data, sz) < 0) { + zinitix_printk("error : read zinitix tc raw data\n"); + up(&touch_dev->raw_data_lock); + return false; + } + + /* no point, so update ref_data*/ + udata = touch_dev->cur_data[total_node]; + + if (!zinitix_bit_test(udata, BIT_ICON_EVENT) + && !zinitix_bit_test(udata, BIT_PT_EXIST)) + memcpy((u8 *)touch_dev->ref_data, + (u8 *)touch_dev->cur_data, total_node*2); + + touch_dev->update = 1; + memcpy((u8 *)(&touch_dev->touch_info), + (u8 *)&touch_dev->cur_data[total_node], + sizeof(struct _ts_zinitix_point_info)); + up(&touch_dev->raw_data_lock); + return true; + } else if (touch_dev->raw_mode_flag != TOUCH_NORMAL_MODE) { + zinitix_debug_msg("read raw data\r\n"); + sz = total_node*2 + sizeof(struct _ts_zinitix_point_info); + + + if (touch_dev->raw_mode_flag == TOUCH_ZINITIX_CAL_N_MODE) { + int total_cal_n = touch_dev->cap_info.total_cal_n; + if (total_cal_n == 0) + total_cal_n = 160; + + sz = + (total_cal_n*2 + sizeof(struct _ts_zinitix_point_info)); + + if (ts_read_raw_data(touch_dev->client, + ZINITIX_RAWDATA_REG, + (char *)touch_dev->cur_data, sz) < 0) { + zinitix_printk("error : read zinitix tc raw data\n"); + up(&touch_dev->raw_data_lock); + return false; + } + misc_touch_dev->update = 1; + memcpy((u8 *)(&touch_dev->touch_info), + (u8 *)&touch_dev->cur_data[total_cal_n], + sizeof(struct _ts_zinitix_point_info)); + up(&touch_dev->raw_data_lock); + return true; + } + + if (ts_read_raw_data(touch_dev->client, + ZINITIX_RAWDATA_REG, + (char *)touch_dev->cur_data, sz) < 0) { + zinitix_printk("error : read zinitix tc raw data\n"); + up(&touch_dev->raw_data_lock); + return false; + } + + udata = touch_dev->cur_data[total_node]; + if (!zinitix_bit_test(udata, BIT_ICON_EVENT) + && !zinitix_bit_test(udata, BIT_PT_EXIST)) + memcpy((u8 *)touch_dev->ref_data, + (u8 *)touch_dev->cur_data, total_node*2); + touch_dev->update = 1; + memcpy((u8 *)(&touch_dev->touch_info), + (u8 *)&touch_dev->cur_data[total_node], + sizeof(struct _ts_zinitix_point_info)); + } + up(&touch_dev->raw_data_lock); + return true; +} + + + +static bool ts_read_coord(struct zinitix_touch_dev *touch_dev) +{ +#if (TOUCH_MODE == 1) + int i; +#endif + + zinitix_debug_msg("ts_read_coord+\r\n"); + + if (gpio_get_value(touch_dev->int_gpio_num)) { + /*interrupt pin is high, not valid data.*/ + touch_dev->touch_info.status = 0; + zinitix_debug_msg("woops... inturrpt pin is high\r\n"); + return true; + } + + //for Debugging Tool + + if (touch_dev->raw_mode_flag != TOUCH_NORMAL_MODE) { + if (ts_get_raw_data(touch_dev) == false) + return false; + goto continue_check_point_data; + } + + + +#if (TOUCH_MODE == 1) + memset(&touch_dev->touch_info, + 0x0, sizeof(struct _ts_zinitix_point_info)); + + if (ts_read_data(touch_dev->client, + ZINITIX_POINT_STATUS_REG, + (u8 *)(&touch_dev->touch_info), 4) < 0) { + zinitix_debug_msg("error read point info using i2c.-\r\n"); + return false; + } + zinitix_debug_msg("status reg = 0x%x , event_flag = 0x%04x\r\n", + touch_dev->touch_info.status, touch_dev->touch_info.event_flag); + + if (touch_dev->touch_info.status == 0x0) { + zinitix_debug_msg("periodical esd repeated int occured\r\n"); + ts_write_cmd(touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(DELAY_FOR_SIGNAL_DELAY); + return true; + } + + if (zinitix_bit_test(touch_dev->touch_info.status, BIT_ICON_EVENT)) { + udelay(20); + if (ts_read_data(touch_dev->client, + ZINITIX_ICON_STATUS_REG, + (u8 *)(&touch_dev->icon_event_reg), 2) < 0) { + printk(KERN_INFO "error read icon info using i2c.\n"); + return false; + } + ts_write_cmd(touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(DELAY_FOR_SIGNAL_DELAY); + return true; + } + + + + if(touch_dev->touch_info.event_flag == 0) { + zinitix_printk( "error : event flag == 0?\n"); + ts_write_cmd(touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(DELAY_FOR_SIGNAL_DELAY); + return true; + } + + for (i = 0; i < touch_dev->cap_info.multi_fingers; i++) { + if (zinitix_bit_test(touch_dev->touch_info.event_flag, i)) { + udelay(20); + if (ts_read_data(touch_dev->client, + ZINITIX_POINT_STATUS_REG+2+(i*3), + (u8 *)(&touch_dev->touch_info.coord[i]), + sizeof(struct _ts_zinitix_coord)) < 0) { + zinitix_debug_msg("error read point info\n"); + return false; + } + } + } + + ts_write_cmd(touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(DELAY_FOR_SIGNAL_DELAY); + return true; +#else + if (ts_read_data(touch_dev->client, + ZINITIX_POINT_STATUS_REG, + (u8 *)(&touch_dev->touch_info), + sizeof(struct _ts_zinitix_point_info)) < 0) { + zinitix_debug_msg("error read point info using i2c.-\n"); + return false; + } + +continue_check_point_data: + zinitix_debug_msg("status = 0x%x , pt cnt = %d, t stamp = %d\n", + touch_dev->touch_info.status, + touch_dev->touch_info.finger_cnt, + touch_dev->touch_info.time_stamp); + + if (touch_dev->touch_info.status == 0x0) { + zinitix_debug_msg("periodical esd repeated int occured\r\n"); + ts_write_cmd(touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(DELAY_FOR_SIGNAL_DELAY); + return true; + } + + if (zinitix_bit_test(touch_dev->touch_info.status, BIT_ICON_EVENT)) { + udelay(20); + if (ts_read_data(touch_dev->client, + ZINITIX_ICON_STATUS_REG, + (u8 *)(&touch_dev->icon_event_reg), 2) < 0) { + zinitix_printk("error read icon info using i2c.\n"); + return false; + } + } + + ts_write_cmd(touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(DELAY_FOR_SIGNAL_DELAY); + zinitix_debug_msg("ts_read_coord-\r\n"); + return true; +#endif +} + + +static irqreturn_t ts_int_handler(int irq, void *dev) +{ + + struct zinitix_touch_dev *touch_dev = (struct zinitix_touch_dev *)dev; + /* zinitix_debug_msg("interrupt occured +\r\n"); */ + if(touch_dev == NULL) return IRQ_HANDLED; + /* remove pending interrupt */ + if (gpio_get_value(touch_dev->int_gpio_num)) { + zinitix_debug_msg("invalid interrupt occured +\r\n"); + return IRQ_HANDLED; + } +#if USE_THREADED_IRQ + return IRQ_WAKE_THREAD; +#else + disable_irq_nosync(irq); + queue_work(zinitix_workqueue, &touch_dev->work); + return IRQ_HANDLED; +#endif +} + + + +static void ts_power_control(u8 ctl) +{ + if (ctl == POWER_OFF) + ; + else if (ctl == POWER_ON) + ; + +} + +static bool ts_mini_init_touch(struct zinitix_touch_dev *touch_dev) +{ + u16 reg_val; + int i; +#if USE_CHECKSUM + u16 chip_eeprom_info; + u16 chip_check_reg[4]; +#endif + + if (touch_dev == NULL) { + zinitix_printk("error (touch_dev == NULL?)\r\n"); + return false; + } + + zinitix_debug_msg("check checksum\r\n"); + +#if USE_CHECKSUM + if (ts_read_data(touch_dev->client, + ZINITIX_EEPROM_INFO_REG, + (u8 *)&chip_eeprom_info, 2) < 0) { + zinitix_printk("fail to read eeprom info(%d)\r\n", i); + goto fail_mini_init; + } + + if (zinitix_bit_test(chip_eeprom_info, 0)) // not calibration + goto fail_mini_init_not_cal; + + if (ts_read_data(touch_dev->client, + ZINITIX_CHECK_REG0, (u8 *)chip_check_reg, 8) < 0) + goto fail_mini_init; + if( (chip_check_reg[0]!=chip_check_reg[2]) || (chip_check_reg[1]!=chip_check_reg[3]) ) { + zinitix_printk("firmware checksum error\r\n"); + goto fail_mini_init; + } +#endif + + if (ts_write_cmd(touch_dev->client, + ZINITIX_SWRESET_CMD) != I2C_SUCCESS) { + zinitix_printk("fail to write reset command\r\n"); + goto fail_mini_init; + } + + + /* initialize */ + if (ts_write_reg(touch_dev->client, + ZINITIX_X_RESOLUTION, + (u16)(touch_dev->cap_info.x_resolution)) != I2C_SUCCESS) + goto fail_mini_init; + + if (ts_write_reg(touch_dev->client, + ZINITIX_Y_RESOLUTION, + (u16)( touch_dev->cap_info.y_resolution)) != I2C_SUCCESS) + goto fail_mini_init; + + zinitix_debug_msg("touch max x = %d\r\n", touch_dev->cap_info.x_resolution); + zinitix_debug_msg("touch max y = %d\r\n", touch_dev->cap_info.y_resolution); + + if (ts_write_reg(touch_dev->client, + ZINITIX_BUTTON_SUPPORTED_NUM, + (u16)touch_dev->cap_info.button_num) != I2C_SUCCESS) + goto fail_mini_init; + + if (ts_write_reg(touch_dev->client, + ZINITIX_SUPPORTED_FINGER_NUM, + (u16)MAX_SUPPORTED_FINGER_NUM) != I2C_SUCCESS) + goto fail_mini_init; + + + if (touch_dev->raw_mode_flag != TOUCH_NORMAL_MODE) { /* Test Mode */ + if (ts_write_reg(touch_dev->client, + ZINITIX_TOUCH_MODE, + touch_dev->raw_mode_flag) != I2C_SUCCESS) + goto fail_mini_init; + } else + + { + reg_val = TOUCH_MODE; + if (ts_write_reg(touch_dev->client, + ZINITIX_TOUCH_MODE, + reg_val) != I2C_SUCCESS) + goto fail_mini_init; + } + /* soft calibration */ + if (ts_write_cmd(touch_dev->client, + ZINITIX_CALIBRATE_CMD) != I2C_SUCCESS) + goto fail_mini_init; + if (ts_write_reg(touch_dev->client, + ZINITIX_INT_ENABLE_FLAG, + touch_dev->cap_info.chip_int_mask) != I2C_SUCCESS) + goto fail_mini_init; + + /* read garbage data */ + for (i = 0; i < 10; i++) { + ts_write_cmd(touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(10); + } + + + if (touch_dev->raw_mode_flag != TOUCH_NORMAL_MODE) { /* Test Mode */ + if (ts_write_reg(touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, + ZINITIX_SCAN_RATE_HZ + *ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL) != I2C_SUCCESS) + zinitix_printk("[zinitix_touch] Fail to set ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL.\r\n"); + } else + { + if (ts_write_reg(touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, + ZINITIX_SCAN_RATE_HZ + *ZINITIX_ESD_TIMER_INTERVAL) != I2C_SUCCESS) + goto fail_mini_init; + + } + if (touch_dev->use_esd_timer) { + ts_esd_timer_start(ZINITIX_CHECK_ESD_TIMER, touch_dev); + zinitix_debug_msg("esd timer start\r\n"); + } + + zinitix_debug_msg("successfully mini initialized\r\n"); + return true; + +fail_mini_init: + + zinitix_printk("early mini init fail\n"); + ts_power_control(POWER_OFF); + mdelay(CHIP_POWER_OFF_DELAY); + ts_power_control(POWER_ON); + mdelay(CHIP_ON_DELAY); +fail_mini_init_not_cal: + if(ts_init_touch(touch_dev) == false) { + zinitix_debug_msg("fail initialized\r\n"); + return false; + } + + if (touch_dev->use_esd_timer) { + ts_esd_timer_start(ZINITIX_CHECK_ESD_TIMER, touch_dev); + zinitix_debug_msg("esd timer start\r\n"); + } + return true; +} + + +static void zinitix_touch_tmr_work(struct work_struct *work) +{ + struct zinitix_touch_dev *touch_dev = + container_of(work, struct zinitix_touch_dev, tmr_work); + + zinitix_printk("tmr queue work ++\r\n"); + if (touch_dev == NULL) { + zinitix_printk("touch dev == NULL ?\r\n"); + goto fail_time_out_init; + } + down(&touch_dev->work_proceedure_lock); + if (touch_dev->work_proceedure != TS_NO_WORK) { + zinitix_printk("other process occupied (%d)\r\n", + touch_dev->work_proceedure); + up(&touch_dev->work_proceedure_lock); + return; + } + touch_dev->work_proceedure = TS_ESD_TIMER_WORK; + + disable_irq(touch_dev->irq); + zinitix_printk("error. timeout occured. maybe ts device dead. so reset & reinit.\r\n"); + ts_power_control(POWER_OFF); + mdelay(CHIP_POWER_OFF_DELAY); + ts_power_control(POWER_ON); + mdelay(CHIP_ON_DELAY); + + zinitix_debug_msg("clear all reported points\r\n"); + zinitix_clear_report_data(touch_dev); + if (ts_mini_init_touch(touch_dev) == false) + goto fail_time_out_init; + + touch_dev->work_proceedure = TS_NO_WORK; + enable_irq(touch_dev->irq); + up(&touch_dev->work_proceedure_lock); + zinitix_printk("tmr queue work ----\r\n"); + return; +fail_time_out_init: + zinitix_printk("tmr work : restart error\r\n"); + ts_esd_timer_start(ZINITIX_CHECK_ESD_TIMER, touch_dev); + touch_dev->work_proceedure = TS_NO_WORK; + enable_irq(touch_dev->irq); + up(&touch_dev->work_proceedure_lock); +} + +static void ts_esd_timer_start(u16 sec, struct zinitix_touch_dev *touch_dev) +{ + if(touch_dev == NULL) return; + if (touch_dev->p_esd_timeout_tmr != NULL) + del_timer(touch_dev->p_esd_timeout_tmr); + touch_dev->p_esd_timeout_tmr = NULL; + + init_timer(&(touch_dev->esd_timeout_tmr)); + touch_dev->esd_timeout_tmr.data = (unsigned long)(touch_dev); + touch_dev->esd_timeout_tmr.function = ts_esd_timeout_handler; + touch_dev->esd_timeout_tmr.expires = jiffies + HZ*sec; + touch_dev->p_esd_timeout_tmr = &touch_dev->esd_timeout_tmr; + add_timer(&touch_dev->esd_timeout_tmr); +} + +static void ts_esd_timer_stop(struct zinitix_touch_dev *touch_dev) +{ + if(touch_dev == NULL) return; + if (touch_dev->p_esd_timeout_tmr) + del_timer(touch_dev->p_esd_timeout_tmr); + touch_dev->p_esd_timeout_tmr = NULL; +} + +static void ts_esd_timer_init(struct zinitix_touch_dev *touch_dev) +{ + if(touch_dev == NULL) return; + init_timer(&(touch_dev->esd_timeout_tmr)); + touch_dev->esd_timeout_tmr.data = (unsigned long)(touch_dev); + touch_dev->esd_timeout_tmr.function = ts_esd_timeout_handler; + touch_dev->p_esd_timeout_tmr = NULL; +} + +static void ts_esd_timeout_handler(unsigned long data) +{ + struct zinitix_touch_dev *touch_dev = (struct zinitix_touch_dev *)data; + if(touch_dev == NULL) return; + touch_dev->p_esd_timeout_tmr = NULL; + queue_work(zinitix_tmr_workqueue, &touch_dev->tmr_work); +} + +#if TOUCH_ONESHOT_UPGRADE +static bool ts_check_need_upgrade(u16 curVersion, u16 curRegVersion) +{ + u16 newVersion; + u16 newRegVersion; + newVersion = (u16) (m_firmware_data[0] | (m_firmware_data[1]<<8)); + + zinitix_printk("cur version = 0x%x, new version = 0x%x\n", + curVersion, newVersion); + + if (curVersion < newVersion) + return true; + else if (curVersion > newVersion) + return false; + + if (m_firmware_data[FIRMWARE_VERSION_POS+2] == 0xff + && m_firmware_data[FIRMWARE_VERSION_POS+3] == 0xff) + return false; + newRegVersion = (u16) (m_firmware_data[FIRMWARE_VERSION_POS+2] + | (m_firmware_data[FIRMWARE_VERSION_POS+3]<<8)); + + + if (curRegVersion < newRegVersion) + return true; + + return false; +} +#endif + +#define TC_PAGE_SZ 64 +#define TC_SECTOR_SZ 8 + +static u8 ts_upgrade_firmware(struct zinitix_touch_dev *touch_dev, + const u8 *firmware_data, u32 size) +{ + u16 flash_addr; + u8 *verify_data; + int retry_cnt = 0; + u8 i2c_buffer[TC_PAGE_SZ+2]; + + if (m_isp_client == NULL) { + zinitix_printk("i2c client for isp is not register \r\n"); + return false; + } + + verify_data = kzalloc(size, GFP_KERNEL); + if (verify_data == NULL) { + zinitix_printk("cannot alloc verify buffer\n"); + return false; + } + +retry_isp_firmware_upgrade: + ts_power_control(POWER_OFF); + mdelay(CHIP_POWER_OFF_AF_FZ_DELAY); + ts_power_control(POWER_ON); + mdelay(1); /* under 4ms*/ + + zinitix_printk("write firmware data\n"); + + for (flash_addr = 0; flash_addr < size; flash_addr += TC_PAGE_SZ) { + + printk(KERN_INFO "."); + zinitix_debug_msg("firmware write : addr = %04x, len = %d\n", + flash_addr, TC_PAGE_SZ); + + i2c_buffer[0] = (flash_addr>>8)&0xff; /*addr_h*/ + i2c_buffer[1] = (flash_addr)&0xff; /*addr_l*/ + memcpy(&i2c_buffer[2], &firmware_data[flash_addr], TC_PAGE_SZ); + + if (ts_write_firmware_data(m_isp_client, + i2c_buffer, TC_PAGE_SZ+2) < 0) { + zinitix_printk("error : write zinitix tc firmare\n"); + goto fail_upgrade; + } + mdelay(20); + } + mdelay(CHIP_POWER_OFF_AF_FZ_DELAY); + + zinitix_printk("\r\nread firmware data\n"); + + + flash_addr = 0; + i2c_buffer[0] = (flash_addr>>8)&0xff; /*addr_h*/ + i2c_buffer[1] = (flash_addr)&0xff; /*addr_l*/ + + if (ts_read_firmware_data(m_isp_client, + i2c_buffer, &verify_data[flash_addr], size) < 0) { + zinitix_printk("error : read zinitix tc firmare: addr = %04x, len = %d\n", + flash_addr, size); + goto fail_upgrade; + } + if (memcmp((u8 *)&firmware_data[flash_addr], + (u8 *)&verify_data[flash_addr], size) != 0) { + zinitix_printk("error : verify error : addr = %04x, len = %d\n", + flash_addr, size); + goto fail_upgrade; + } + + mdelay(CHIP_POWER_OFF_AF_FZ_DELAY); + ts_power_control(POWER_OFF); + mdelay(CHIP_POWER_OFF_AF_FZ_DELAY); + ts_power_control(POWER_ON); + mdelay(CHIP_ON_AF_FZ_DELAY); + zinitix_printk("upgrade finished\n"); + kfree(verify_data); + return true; + +fail_upgrade: + + mdelay(CHIP_POWER_OFF_AF_FZ_DELAY); + ts_power_control(POWER_OFF); + mdelay(CHIP_POWER_OFF_AF_FZ_DELAY); + ts_power_control(POWER_ON); + mdelay(CHIP_ON_AF_FZ_DELAY); + + zinitix_printk("upgrade fail : so retry... (%d)\n", ++retry_cnt); + if (retry_cnt <= ZINITIX_INIT_RETRY_CNT) + goto retry_isp_firmware_upgrade; + + if (verify_data != NULL) + kfree(verify_data); + + zinitix_printk("upgrade fail..\n"); + return false; + +} + +static bool ts_hw_calibration(struct zinitix_touch_dev *touch_dev) +{ + u16 chip_eeprom_info; + /* h/w calibration */ + if (ts_write_reg(touch_dev->client, + ZINITIX_TOUCH_MODE, 0x07) != I2C_SUCCESS) + return false; + mdelay(250); + if (ts_write_cmd(touch_dev->client, + ZINITIX_CALIBRATE_CMD) != I2C_SUCCESS) + return false; + if (ts_write_cmd(touch_dev->client, + ZINITIX_SWRESET_CMD) != I2C_SUCCESS) + return false; + mdelay(10); + ts_write_cmd(touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + + /* wait for h/w calibration*/ + do { + mdelay(1000); + ts_write_cmd(touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + if (ts_read_data(touch_dev->client, + ZINITIX_EEPROM_INFO_REG, + (u8 *)&chip_eeprom_info, 2) < 0) + return false; + zinitix_debug_msg("touch eeprom info = 0x%04X\r\n", + chip_eeprom_info); + if (!zinitix_bit_test(chip_eeprom_info, 0)) + break; + } while (1); + + if (ts_write_reg(touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) + return false; + + if (touch_dev->cap_info.chip_int_mask != 0) + if (ts_write_reg(touch_dev->client, + ZINITIX_INT_ENABLE_FLAG, + touch_dev->cap_info.chip_int_mask) + != I2C_SUCCESS) + return false; + if (ts_write_cmd(touch_dev->client, + ZINITIX_SAVE_CALIBRATION_CMD) != I2C_SUCCESS) + return false; + mdelay(1000); + return true; + +} + +static bool ts_init_touch(struct zinitix_touch_dev *touch_dev) +{ + u16 reg_val; + int i; + u16 SetMaxX = SYSTEM_MAX_X_RESOLUTION; + u16 SetMaxY = SYSTEM_MAX_Y_RESOLUTION; + u16 chip_revision; + u16 chip_firmware_version; + u16 chip_reg_data_version; + u16 chip_eeprom_info; +#if USE_CHECKSUM + u16 chip_check_reg[4]; + u8 checksum_err; +#endif +#if TOUCH_ONESHOT_UPGRADE + s16 stmp; +#endif + int retry_cnt = 0; + + if (touch_dev == NULL) { + zinitix_printk("error touch_dev == null?\r\n"); + return false; + } + +retry_init: + +#if USE_CHECKSUM + for(i = 0; i < ZINITIX_INIT_RETRY_CNT; i++) { + if (ts_read_data(touch_dev->client, + ZINITIX_EEPROM_INFO_REG, + (u8 *)&chip_eeprom_info, 2) < 0) { + zinitix_printk("fail to read eeprom info(%d)\r\n", i); + mdelay(10); + continue; + } else + break; + } + if (i == ZINITIX_INIT_RETRY_CNT) { + goto fail_init; + } + + if (!zinitix_bit_test(chip_eeprom_info, 0)) { // no exist checksum data + + zinitix_debug_msg("check checksum\r\n"); + + checksum_err = 0; + + for (i = 0; i < ZINITIX_INIT_RETRY_CNT; i++) { + if (ts_read_data(touch_dev->client, + ZINITIX_CHECK_REG0, (u8 *)chip_check_reg, 8) < 0) { + mdelay(10); + continue; + } + + zinitix_debug_msg("0x%02X, 0x%02X, 0x%02X, 0x%02X\r\n", + chip_check_reg[0], chip_check_reg[1], chip_check_reg[2], chip_check_reg[3]); + + if( (chip_check_reg[0]!=chip_check_reg[2]) && + (chip_check_reg[1]==chip_check_reg[3]) ) + break; + else { + checksum_err = 1; + break; + } + } + + if (i == ZINITIX_INIT_RETRY_CNT || checksum_err) { + zinitix_printk("fail to check firmware data\r\n"); + if(checksum_err == 1 && retry_cnt < ZINITIX_INIT_RETRY_CNT) + retry_cnt = ZINITIX_INIT_RETRY_CNT; + goto fail_init; + } + } else + zinitix_printk("not calibration, so skip checksum.\r\n"); +#endif + + if (ts_write_cmd(touch_dev->client, + ZINITIX_SWRESET_CMD) != I2C_SUCCESS) { + zinitix_printk("fail to write reset command\r\n"); + goto fail_init; + } + + touch_dev->cap_info.button_num = SUPPORTED_BUTTON_NUM; + + reg_val = 0; + zinitix_bit_set(reg_val, BIT_PT_CNT_CHANGE); + zinitix_bit_set(reg_val, BIT_DOWN); + zinitix_bit_set(reg_val, BIT_MOVE); + zinitix_bit_set(reg_val, BIT_UP); + if (touch_dev->cap_info.button_num > 0) + zinitix_bit_set(reg_val, BIT_ICON_EVENT); + touch_dev->cap_info.chip_int_mask = reg_val; + + + if (ts_write_reg(touch_dev->client, + ZINITIX_INT_ENABLE_FLAG, 0x0) != I2C_SUCCESS) + goto fail_init; + + zinitix_debug_msg("send reset command\r\n"); + if (ts_write_cmd(touch_dev->client, + ZINITIX_SWRESET_CMD) != I2C_SUCCESS) + goto fail_init; + + /* get chip revision id */ + if (ts_read_data(touch_dev->client, + ZINITIX_CHIP_REVISION, + (u8 *)&chip_revision, 2) < 0) { + zinitix_printk("fail to read chip revision\r\n"); + goto fail_init; + } + zinitix_printk("touch chip revision id = %x\r\n", + chip_revision); + + touch_dev->cap_info.chip_fw_size = 32*1024; + + //for Debugging Tool + + if (ts_read_data(touch_dev->client, + ZINITIX_TOTAL_NUMBER_OF_X, + (u8 *)&touch_dev->cap_info.x_node_num, 2) < 0) + goto fail_init; + zinitix_printk("touch chip x node num = %d\r\n", + touch_dev->cap_info.x_node_num); + if (ts_read_data(touch_dev->client, + ZINITIX_TOTAL_NUMBER_OF_Y, + (u8 *)&touch_dev->cap_info.y_node_num, 2) < 0) + goto fail_init; + zinitix_printk("touch chip y node num = %d\r\n", + touch_dev->cap_info.y_node_num); + + touch_dev->cap_info.total_node_num = + touch_dev->cap_info.x_node_num*touch_dev->cap_info.y_node_num; + zinitix_printk("touch chip total node num = %d\r\n", + touch_dev->cap_info.total_node_num); + + if (ts_read_data(touch_dev->client, + ZINITIX_MAX_Y_NUM, + (u8 *)&touch_dev->cap_info.max_y_node, 2) < 0) + goto fail_init; + + zinitix_printk("touch chip max y node num = %d\r\n", + touch_dev->cap_info.max_y_node); + + if (ts_read_data(touch_dev->client, + ZINITIX_CAL_N_TOTAL_NUM, + (u8 *)&touch_dev->cap_info.total_cal_n, 2) < 0) + goto fail_init; + zinitix_printk("touch chip total cal n data num = %d\r\n", + touch_dev->cap_info.total_cal_n); + //---- + + + /* get chip firmware version */ + if (ts_read_data(touch_dev->client, + ZINITIX_FIRMWARE_VERSION, + (u8 *)&chip_firmware_version, 2) < 0) + goto fail_init; + zinitix_printk("touch chip firmware version = %x\r\n", + chip_firmware_version); + +#if TOUCH_ONESHOT_UPGRADE + chip_reg_data_version = 0xffff; + + if (ts_read_data(touch_dev->client, + ZINITIX_DATA_VERSION_REG, + (u8 *)&chip_reg_data_version, 2) < 0) + goto fail_init; + zinitix_debug_msg("touch reg data version = %d\r\n", + chip_reg_data_version); + + if (ts_check_need_upgrade(chip_firmware_version, + chip_reg_data_version) == true) { + zinitix_printk("start upgrade firmware\n"); + + if(ts_upgrade_firmware(touch_dev, &m_firmware_data[2], + touch_dev->cap_info.chip_fw_size) == false) + goto fail_init; + + if(ts_hw_calibration(touch_dev) == false) + goto fail_init; + + /* disable chip interrupt */ + if (ts_write_reg(touch_dev->client, + ZINITIX_INT_ENABLE_FLAG, 0) != I2C_SUCCESS) + goto fail_init; + goto retry_init; + } +#endif + + if (ts_read_data(touch_dev->client, + ZINITIX_DATA_VERSION_REG, + (u8 *)&chip_reg_data_version, 2) < 0) + goto fail_init; + zinitix_debug_msg("touch reg data version = %d\r\n", + chip_reg_data_version); + + if (ts_read_data(touch_dev->client, + ZINITIX_EEPROM_INFO_REG, + (u8 *)&chip_eeprom_info, 2) < 0) + goto fail_init; + zinitix_debug_msg("touch eeprom info = 0x%04X\r\n", chip_eeprom_info); + + + if (zinitix_bit_test(chip_eeprom_info, 0)) { /* hw calibration bit*/ + + /* h/w calibration */ + if(ts_hw_calibration(touch_dev) == false) + goto fail_init; + + /* disable chip interrupt */ + if (ts_write_reg(touch_dev->client, + ZINITIX_INT_ENABLE_FLAG, 0) != I2C_SUCCESS) + goto fail_init; + + } + + + touch_dev->cap_info.chip_revision = (u16)chip_revision; + touch_dev->cap_info.chip_firmware_version = (u16)chip_firmware_version; + touch_dev->cap_info.chip_reg_data_version = (u16)chip_reg_data_version; + + + /* initialize */ + if (ts_write_reg(touch_dev->client, + ZINITIX_X_RESOLUTION, (u16)(SetMaxX)) != I2C_SUCCESS) + goto fail_init; + + if (ts_write_reg(touch_dev->client, + ZINITIX_Y_RESOLUTION, (u16)(SetMaxY)) != I2C_SUCCESS) + goto fail_init; + + touch_dev->cap_info.x_resolution = SetMaxX; + touch_dev->cap_info.y_resolution = SetMaxY; + + zinitix_debug_msg("touch max x = %d\r\n", + touch_dev->cap_info.x_resolution); + zinitix_debug_msg("touch max y = %d\r\n", + touch_dev->cap_info.y_resolution); + + touch_dev->cap_info.MinX = (u32)0; + touch_dev->cap_info.MinY = (u32)0; + touch_dev->cap_info.MaxX = (u32)touch_dev->cap_info.x_resolution; + touch_dev->cap_info.MaxY = (u32)touch_dev->cap_info.y_resolution; + + if (ts_write_reg(touch_dev->client, + ZINITIX_BUTTON_SUPPORTED_NUM, + (u16)touch_dev->cap_info.button_num) != I2C_SUCCESS) + goto fail_init; + + if (ts_write_reg(touch_dev->client, + ZINITIX_SUPPORTED_FINGER_NUM, + (u16)MAX_SUPPORTED_FINGER_NUM) != I2C_SUCCESS) + goto fail_init; + touch_dev->cap_info.multi_fingers = MAX_SUPPORTED_FINGER_NUM; + + zinitix_debug_msg("max supported finger num = %d\r\n", + touch_dev->cap_info.multi_fingers); + touch_dev->cap_info.gesture_support = 0; + zinitix_debug_msg("set other configuration\r\n"); + + + if (touch_dev->raw_mode_flag != TOUCH_NORMAL_MODE) { /* Test Mode */ + if (ts_write_reg(touch_dev->client, + ZINITIX_TOUCH_MODE, + touch_dev->raw_mode_flag) != I2C_SUCCESS) + goto fail_init; + } else + { + reg_val = TOUCH_MODE; + if (ts_write_reg(touch_dev->client, + ZINITIX_TOUCH_MODE, reg_val) != I2C_SUCCESS) + goto fail_init; + } + /* soft calibration */ + if (ts_write_cmd(touch_dev->client, + ZINITIX_CALIBRATE_CMD) != I2C_SUCCESS) + goto fail_init; + if (ts_write_reg(touch_dev->client, + ZINITIX_INT_ENABLE_FLAG, + touch_dev->cap_info.chip_int_mask) != I2C_SUCCESS) + goto fail_init; + + /* read garbage data */ + for (i = 0; i < 10; i++) { + ts_write_cmd(touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(10); + } + + if (touch_dev->raw_mode_flag != TOUCH_NORMAL_MODE) { /* Test Mode */ + if (ts_write_reg(touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, + ZINITIX_SCAN_RATE_HZ + *ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL) != I2C_SUCCESS) + zinitix_printk("fail to set ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL.\r\n"); + } else + { + if (ts_write_reg(touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, + ZINITIX_SCAN_RATE_HZ + *ZINITIX_ESD_TIMER_INTERVAL) != I2C_SUCCESS) + goto fail_init; + zinitix_debug_msg("esd timer register = %d\r\n", reg_val); + } + + zinitix_debug_msg("successfully initialized\r\n"); + return true; + +fail_init: + + if (++retry_cnt <= ZINITIX_INIT_RETRY_CNT) { + ts_power_control(POWER_OFF); + mdelay(CHIP_POWER_OFF_DELAY); + ts_power_control(POWER_ON); + mdelay(CHIP_ON_DELAY); + zinitix_debug_msg("retry to initiallize(retry cnt = %d)\r\n", + retry_cnt); + goto retry_init; + } else if(retry_cnt == ZINITIX_INIT_RETRY_CNT+1) { + touch_dev->cap_info.chip_fw_size = 32*1024; + + zinitix_debug_msg("retry to initiallize(retry cnt = %d)\r\n", retry_cnt); +#if TOUCH_FORCE_UPGRADE + if( ts_upgrade_firmware(touch_dev, &m_firmware_data[2], + touch_dev->cap_info.chip_fw_size) == false) { + zinitix_printk("upgrade fail\n"); + return false; + } + mdelay(100); + // hw calibration and make checksum + if(ts_hw_calibration(touch_dev) == false) + goto fail_hwcal_init; + goto retry_init; +#endif + } +fail_hwcal_init: + zinitix_printk("failed to initiallize\r\n"); + return false; +} + +static void zinitix_clear_report_data(struct zinitix_touch_dev *touch_dev) +{ + int i; + u8 reported = 0; + u8 sub_status; + + + for (i = 0; i < touch_dev->cap_info.button_num; i++) { + if (touch_dev->button[i] == ICON_BUTTON_DOWN) { + touch_dev->button[i] = ICON_BUTTON_UP; + input_report_key(touch_dev->input_dev, + BUTTON_MAPPING_KEY[i], 0); + reported = true; + zinitix_debug_msg("button up = %d \r\n", i); + } + } + + + for (i = 0; i < touch_dev->cap_info.multi_fingers; i++) { + sub_status = touch_dev->reported_touch_info.coord[i].sub_status; + if (zinitix_bit_test(sub_status, SUB_BIT_EXIST)) { +#if MULTI_PROTOCOL_TYPE_B + input_mt_slot(touch_dev->input_dev, i); + input_mt_report_slot_state(touch_dev->input_dev, + MT_TOOL_FINGER, 0); + + input_report_abs(touch_dev->input_dev, + ABS_MT_TRACKING_ID, -1); +#else + input_report_abs(touch_dev->input_dev, + ABS_MT_TRACKING_ID, i); + input_report_abs(touch_dev->input_dev, + ABS_MT_TOUCH_MAJOR, 0); + input_report_abs(touch_dev->input_dev, + ABS_MT_WIDTH_MAJOR, 0); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_X, + touch_dev->reported_touch_info.coord[i].x); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_Y, + touch_dev->reported_touch_info.coord[i].y); + input_mt_sync(touch_dev->input_dev); +#endif + + reported = true; + if (!m_ts_debug_mode) + printk(KERN_INFO "[TSP] R %02d\r\n", i); + } + touch_dev->reported_touch_info.coord[i].sub_status = 0; + } + if (reported) { +#if !MULTI_PROTOCOL_TYPE_B + input_report_key(touch_dev->input_dev, BTN_TOUCH, 0); +#endif + input_sync(touch_dev->input_dev); + } + +} + + +static void zinitix_parsing_data(struct zinitix_touch_dev *touch_dev) +{ + + int i; + u8 reported = false; + u8 sub_status; + u8 prev_sub_status; + u32 x, y; + u32 w; + u32 tmp; + + if(touch_dev == NULL) { + printk(KERN_INFO "zinitix_parsing_data : touch_dev == NULL?\n"); + return; + } + + if (touch_dev->use_esd_timer) { + ts_esd_timer_stop(touch_dev); + zinitix_debug_msg("esd timer stop\r\n"); + } + +#if !USE_THREADED_IRQ + down(&touch_dev->work_proceedure_lock); +#endif + if (touch_dev->work_proceedure != TS_NO_WORK) { + zinitix_debug_msg("zinitix_touch_thread : \ + [warning] other process occupied..\r\n"); + udelay(DELAY_FOR_SIGNAL_DELAY); + if (!gpio_get_value(touch_dev->int_gpio_num)) { + ts_write_cmd(touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(DELAY_FOR_SIGNAL_DELAY); + } + + goto continue_parsing_data; + } + touch_dev->work_proceedure = TS_NORMAL_WORK; + if (ts_read_coord(touch_dev) == false || touch_dev->touch_info.status == 0xffff) { + zinitix_debug_msg("couldn't read touch_dev coord. maybe chip is dead\r\n"); + ts_power_control(POWER_OFF); + mdelay(CHIP_POWER_OFF_DELAY); + ts_power_control(POWER_ON); + mdelay(CHIP_ON_DELAY); + + zinitix_debug_msg("clear all reported points\r\n"); + zinitix_clear_report_data(touch_dev); + ts_mini_init_touch(touch_dev); + goto continue_parsing_data; + } + + + if (touch_dev->raw_mode_flag == TOUCH_TEST_RAW_MODE) + goto continue_parsing_data; + + /* invalid : maybe periodical repeated int. */ + if (touch_dev->touch_info.status == 0x0) + goto continue_parsing_data; + + reported = false; + + if (zinitix_bit_test(touch_dev->touch_info.status, BIT_ICON_EVENT)) { + for (i = 0; i < touch_dev->cap_info.button_num; i++) { + if (zinitix_bit_test(touch_dev->icon_event_reg, + (BIT_O_ICON0_DOWN+i))) { + touch_dev->button[i] = ICON_BUTTON_DOWN; + input_report_key(touch_dev->input_dev, + BUTTON_MAPPING_KEY[i], 1); + reported = true; + zinitix_debug_msg("button down = %d\r\n", i); + if (!m_ts_debug_mode) + printk(KERN_INFO "[TSP] button down = %d\r\n", i); + } + } + + for (i = 0; i < touch_dev->cap_info.button_num; i++) { + if (zinitix_bit_test(touch_dev->icon_event_reg, + (BIT_O_ICON0_UP+i))) { + touch_dev->button[i] = ICON_BUTTON_UP; + input_report_key(touch_dev->input_dev, + BUTTON_MAPPING_KEY[i], 0); + reported = true; + + zinitix_debug_msg("button up = %d\r\n", i); + if (!m_ts_debug_mode) + printk(KERN_INFO "[TSP] button down = %d\r\n", i); + } + } + } + + /* if button press or up event occured... */ + if (reported == true || !zinitix_bit_test(touch_dev->touch_info.status, BIT_PT_EXIST)) { + for (i = 0; i < touch_dev->cap_info.multi_fingers; i++) { + prev_sub_status = + touch_dev->reported_touch_info.coord[i].sub_status; + if (zinitix_bit_test(prev_sub_status, SUB_BIT_EXIST)) { + zinitix_debug_msg("finger [%02d] up\r\n", i); + +#if MULTI_PROTOCOL_TYPE_B + input_mt_slot(touch_dev->input_dev, i); + input_mt_report_slot_state(touch_dev->input_dev, + MT_TOOL_FINGER, 0); + + input_report_abs(touch_dev->input_dev, + ABS_MT_TRACKING_ID, -1); +#else + input_report_abs(touch_dev->input_dev, + ABS_MT_TRACKING_ID, i); + input_report_abs(touch_dev->input_dev, + ABS_MT_TOUCH_MAJOR, 0); + input_report_abs(touch_dev->input_dev, + ABS_MT_WIDTH_MAJOR, 0); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_X, + touch_dev->reported_touch_info.coord[i].x); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_Y, + touch_dev->reported_touch_info.coord[i].y); + input_mt_sync(touch_dev->input_dev); +#endif + if (!m_ts_debug_mode) + printk(KERN_INFO "[TSP] R %02d\r\n", i); + } + } + memset(&touch_dev->reported_touch_info, + 0x0, sizeof(struct _ts_zinitix_point_info)); +#if !MULTI_PROTOCOL_TYPE_B + input_report_key(touch_dev->input_dev, BTN_TOUCH, 0); +#endif + input_sync(touch_dev->input_dev); + if(reported == true) // for button event + udelay(100); + goto continue_parsing_data; + } + if (touch_dev->touch_info.finger_cnt > MAX_SUPPORTED_FINGER_NUM) + touch_dev->touch_info.finger_cnt = MAX_SUPPORTED_FINGER_NUM; + + for (i = 0; i < touch_dev->cap_info.multi_fingers; i++) { + sub_status = touch_dev->touch_info.coord[i].sub_status; + + if (zinitix_bit_test(sub_status, SUB_BIT_DOWN) + || zinitix_bit_test(sub_status, SUB_BIT_MOVE) + || zinitix_bit_test(sub_status, SUB_BIT_EXIST)) { + + x = touch_dev->touch_info.coord[i].x; + y = touch_dev->touch_info.coord[i].y; + w = touch_dev->touch_info.coord[i].width; + + /* transformation from touch to screen orientation */ + if (touch_dev->cap_info.Orientation & TOUCH_V_FLIP) + y = touch_dev->cap_info.MaxY + + touch_dev->cap_info.MinY - y; + if (touch_dev->cap_info.Orientation & TOUCH_H_FLIP) + x = touch_dev->cap_info.MaxX + + touch_dev->cap_info.MinX - x; + if (touch_dev->cap_info.Orientation & TOUCH_XY_SWAP) + zinitix_swap_v(x, y, tmp); + touch_dev->touch_info.coord[i].x = x; + touch_dev->touch_info.coord[i].y = y; + zinitix_debug_msg("finger [%02d] x = %d, y = %d\r\n", + i, x, y); + + if (w == 0) + w = 1; + + prev_sub_status = + touch_dev->reported_touch_info.coord[i].sub_status; + + if (!m_ts_debug_mode && !zinitix_bit_test(prev_sub_status, SUB_BIT_EXIST)) + printk(KERN_INFO "[TSP] P %02d\r\n", i); + +#if MULTI_PROTOCOL_TYPE_B + input_mt_slot(touch_dev->input_dev, i); + input_mt_report_slot_state(touch_dev->input_dev, + MT_TOOL_FINGER, 1); + if (!zinitix_bit_test(prev_sub_status, SUB_BIT_EXIST)) +#endif + input_report_abs(touch_dev->input_dev, + ABS_MT_TRACKING_ID, i); + + + input_report_abs(touch_dev->input_dev, + ABS_MT_TOUCH_MAJOR, (u32)w); + input_report_abs(touch_dev->input_dev, + ABS_MT_WIDTH_MAJOR, (u32)w); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_X, x); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_Y, y); +#if !MULTI_PROTOCOL_TYPE_B + input_mt_sync(touch_dev->input_dev); +#endif + }else if (zinitix_bit_test(sub_status, SUB_BIT_UP)) { + zinitix_debug_msg("finger [%02d] up \r\n", i); + + memset(&touch_dev->touch_info.coord[i], + 0x0, sizeof(struct _ts_zinitix_coord)); +#if MULTI_PROTOCOL_TYPE_B + input_mt_slot(touch_dev->input_dev, i); + input_mt_report_slot_state(touch_dev->input_dev, + MT_TOOL_FINGER, 0); + + input_report_abs(touch_dev->input_dev, + ABS_MT_TRACKING_ID, -1); +#else + input_report_abs(touch_dev->input_dev, + ABS_MT_TRACKING_ID, i); + input_report_abs(touch_dev->input_dev, + ABS_MT_TOUCH_MAJOR, 0); + input_report_abs(touch_dev->input_dev, + ABS_MT_WIDTH_MAJOR, 0); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_X, + touch_dev->reported_touch_info.coord[i].x); + input_report_abs(touch_dev->input_dev, + ABS_MT_POSITION_Y, + touch_dev->reported_touch_info.coord[i].y); + input_mt_sync(touch_dev->input_dev); +#endif + + if (!m_ts_debug_mode) + printk(KERN_INFO "[TSP] R %02d\r\n", i); + + } else + memset(&touch_dev->touch_info.coord[i], + 0x0, sizeof(struct _ts_zinitix_coord)); + + } + memcpy((char *)&touch_dev->reported_touch_info, + (char *)&touch_dev->touch_info, + sizeof(struct _ts_zinitix_point_info)); +#if !MULTI_PROTOCOL_TYPE_B + input_report_key(touch_dev->input_dev, BTN_TOUCH, 1); +#endif + input_sync(touch_dev->input_dev); + +continue_parsing_data: + + /* check_interrupt_pin, if high, enable int & wait signal */ + if (touch_dev->work_proceedure == TS_NORMAL_WORK) { + if (touch_dev->use_esd_timer) { + ts_esd_timer_start(ZINITIX_CHECK_ESD_TIMER, touch_dev); + zinitix_debug_msg("esd tmr start\n"); + } + touch_dev->work_proceedure = TS_NO_WORK; + } +#if !USE_THREADED_IRQ + up(&touch_dev->work_proceedure_lock); +#endif +} + + +#if USE_THREADED_IRQ +static irqreturn_t zinitix_touch_work(int irq, void *data) +{ + struct zinitix_touch_dev* touch_dev = (struct zinitix_touch_dev*)data; + zinitix_debug_msg("threaded irq signalled\r\n"); + zinitix_parsing_data(touch_dev); + return IRQ_HANDLED; +} +#else +static void zinitix_touch_work(struct work_struct *work) +{ + + struct zinitix_touch_dev *touch_dev = + container_of(work, struct zinitix_touch_dev, work); + + zinitix_debug_msg("signalled\r\n"); + zinitix_parsing_data(touch_dev); + enable_irq(touch_dev->irq); +} +#endif + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void zinitix_late_resume(struct early_suspend *h) +{ + + struct zinitix_touch_dev *touch_dev; + touch_dev = container_of(h, struct zinitix_touch_dev, early_suspend); + + if (touch_dev == NULL) + return; + zinitix_printk("late resume++\r\n"); + + down(&touch_dev->work_proceedure_lock); + if (touch_dev->work_proceedure != TS_IN_RESUME + && touch_dev->work_proceedure != TS_IN_EALRY_SUSPEND) { + zinitix_printk("invalid work proceedure (%d)\r\n", + touch_dev->work_proceedure); + up(&touch_dev->work_proceedure_lock); + return; + } +#ifdef CONFIG_PM_SLEEP + ts_write_cmd(touch_dev->client, ZINITIX_WAKEUP_CMD); + mdelay(10); +#else + ts_power_control(POWER_ON); + mdelay(CHIP_ON_DELAY); +#endif + if (ts_mini_init_touch(touch_dev) == false) + goto fail_late_resume; + enable_irq(touch_dev->irq); + touch_dev->work_proceedure = TS_NO_WORK; + up(&touch_dev->work_proceedure_lock); + zinitix_printk("resume--\n"); + return; +fail_late_resume: + zinitix_printk("failed to resume\n"); + enable_irq(touch_dev->irq); + touch_dev->work_proceedure = TS_NO_WORK; + up(&touch_dev->work_proceedure_lock); + return; +} + + +static void zinitix_early_suspend(struct early_suspend *h) +{ + struct zinitix_touch_dev *touch_dev = + container_of(h, struct zinitix_touch_dev, early_suspend); + + if (touch_dev == NULL) + return; + + zinitix_printk("early suspend++\n"); + + disable_irq(touch_dev->irq); + if (touch_dev->use_esd_timer) + flush_work(&touch_dev->tmr_work); +#if !USE_THREADED_IRQ + flush_work(&touch_dev->work); +#endif + + down(&touch_dev->work_proceedure_lock); + if (touch_dev->work_proceedure != TS_NO_WORK) { + zinitix_printk("invalid work proceedure (%d)\r\n", + touch_dev->work_proceedure); + up(&touch_dev->work_proceedure_lock); + enable_irq(touch_dev->irq); + return; + } + touch_dev->work_proceedure = TS_IN_EALRY_SUSPEND; + + zinitix_debug_msg("clear all reported points\r\n"); + zinitix_clear_report_data(touch_dev); + + if (touch_dev->use_esd_timer) { + ts_write_reg(touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, 0); + ts_esd_timer_stop(touch_dev); + zinitix_printk("ts_esd_timer_stop\n"); + } + +#ifdef CONFIG_PM_SLEEP + ts_write_reg(touch_dev->client, ZINITIX_INT_ENABLE_FLAG, 0x0); + + udelay(100); + if (ts_write_cmd(touch_dev->client, ZINITIX_SLEEP_CMD) != I2C_SUCCESS) { + zinitix_printk("failed to enter into sleep mode\n"); + up(&touch_dev->work_proceedure_lock); + return; + } +#else + ts_power_control(POWER_OFF); + mdelay(CHIP_POWER_OFF_DELAY); +#endif + zinitix_printk("early suspend--\n"); + up(&touch_dev->work_proceedure_lock); + return; +} + +#endif /* CONFIG_HAS_EARLYSUSPEND */ + + + +#ifdef CONFIG_PM_SLEEP + +static int zinitix_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct zinitix_touch_dev *touch_dev = i2c_get_clientdata(client); + if (touch_dev == NULL) + return 0; + + zinitix_debug_msg("resume++\n"); + down(&touch_dev->work_proceedure_lock); + if (touch_dev->work_proceedure != TS_IN_SUSPEND) { + zinitix_printk("invalid work proceedure (%d)\r\n", + touch_dev->work_proceedure); + up(&touch_dev->work_proceedure_lock); + return 0; + } + + ts_power_control(POWER_ON); + msleep(CHIP_ON_DELAY); + +#ifdef CONFIG_HAS_EARLYSUSPEND + touch_dev->work_proceedure = TS_IN_RESUME; +#else + touch_dev->work_proceedure = TS_NO_WORK; + if (ts_mini_init_touch(touch_dev) == false) + zinitix_printk("failed to resume\n"); + enable_irq(touch_dev->irq); +#endif + + + zinitix_debug_msg("resume--\n"); + up(&touch_dev->work_proceedure_lock); + return 0; +} + +static int zinitix_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct zinitix_touch_dev *touch_dev = i2c_get_clientdata(client); + if (touch_dev == NULL) + return 0; + + zinitix_debug_msg("suspend++\n"); + +#ifndef CONFIG_HAS_EARLYSUSPEND + disable_irq(touch_dev->irq); +#endif + if (touch_dev->use_esd_timer) + flush_work(&touch_dev->tmr_work); +#if !USE_THREADED_IRQ + flush_work(&touch_dev->work); +#endif + down(&touch_dev->work_proceedure_lock); + if (touch_dev->work_proceedure != TS_NO_WORK + && touch_dev->work_proceedure != TS_IN_EALRY_SUSPEND) { + zinitix_printk("zinitix_suspend : invalid work proceedure (%d)\r\n", + touch_dev->work_proceedure); + up(&touch_dev->work_proceedure_lock); +#ifndef CONFIG_HAS_EARLYSUSPEND + enable_irq(touch_dev->irq); +#endif + return 0; + } + +#ifndef CONFIG_HAS_EARLYSUSPEND + zinitix_clear_report_data(touch_dev); + + if (touch_dev->use_esd_timer) { + ts_esd_timer_stop(touch_dev); + zinitix_printk("ts_esd_timer_stop\n"); + } + + ts_write_cmd(touch_dev->client, ZINITIX_SLEEP_CMD); + udelay(100); +#endif + + ts_power_control(POWER_OFF); + mdelay(CHIP_POWER_OFF_DELAY); + + touch_dev->work_proceedure = TS_IN_SUSPEND; + + zinitix_debug_msg("suspend--\n"); + up(&touch_dev->work_proceedure_lock); + return 0; +} + +#endif + +static SIMPLE_DEV_PM_OPS(zinitix_dev_pm_ops, + zinitix_suspend, zinitix_resume); + + + +#if SEC_TOUCH_INFO_REPORT + +#define MAX_X_NODE_CNT 20 +#define MAX_Y_NODE_CNT 16 +#define ZINITIX_MENU_KEY 158 +#define ZINITIX_BACK_KEY 151 +#define CAL_MIN_NUM 1400 +#define CAL_MAX_NUM 2030 +#define INT_WAIT_TIME 50 + +#define CHIP_INFO "ZINITIX" + +static ssize_t zinitix_get_test_raw_data(struct device *dev, struct device_attribute *attr, char *buf) +{ + int i,j; + int k = 0; + + int written_bytes = 0 ; /* & error check */ + + int16_t raw_data[MAX_X_NODE_CNT][MAX_Y_NODE_CNT]={{0,},}; + int16_t diff_data[MAX_X_NODE_CNT][MAX_Y_NODE_CNT]={{0,},}; + + if(misc_touch_dev == NULL) { + zinitix_debug_msg("device NULL : NULL\n"); + return 0; + } + + down(&misc_touch_dev->raw_data_lock); + + for(j = 0 ; j < misc_touch_dev->cap_info.y_node_num; j++) + { + k = j; + for(i = 0 ; i < misc_touch_dev->cap_info.x_node_num ; i++) + { + raw_data[i][j] =(int)(misc_touch_dev->ref_data[k]&0xffff); + diff_data[i][j] =(int)(((s16)(misc_touch_dev->cur_data[k]-misc_touch_dev->ref_data[k]))&0xffff); + k+=misc_touch_dev->cap_info.y_node_num; + } + } + + up(&misc_touch_dev->raw_data_lock); + + if(m_ts_debug_mode) { + for(i = 0 ; i < misc_touch_dev->cap_info.x_node_num ; i++) { + printk("[TSP]"); + for(j = 0 ; j < misc_touch_dev->cap_info.y_node_num ; j++ ) + printk(" %5d", raw_data[i][j]); + printk("\n"); + } + + for(i = 0 ; i < misc_touch_dev->cap_info.x_node_num ; i++) { + printk("[TSP]"); + for(j = 0 ; j < misc_touch_dev->cap_info.y_node_num ; j++ ) + printk(" %5d", diff_data[i][j]); + printk("\n"); + } + } + + for(j = 0 ; j < misc_touch_dev->cap_info.y_node_num ; j++) + { + for (i = 0; i < misc_touch_dev->cap_info.x_node_num ; i++) + written_bytes += sprintf(buf+written_bytes, "%d %d\n", raw_data[i][j], diff_data[i][j]); + } + + if (written_bytes > 0) + return written_bytes; + + return sprintf(buf, "-1"); +} + + +ssize_t zinitix_set_testmode(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) +{ + unsigned char value = 0; + int i; + + printk(KERN_INFO "[zinitix_touch] zinitix_set_testmode, buf = %d\r\n", *buf); + + if(misc_touch_dev == NULL) { + zinitix_debug_msg("device NULL : NULL\n"); + return 0; + } + + sscanf(buf, "%c", &value); + + if(value != TOUCH_TEST_RAW_MODE && value != TOUCH_NORMAL_MODE) + { + printk(KERN_WARNING "[zinitix ts] test mode setting value error. you must set %d[=normal] or %d[=raw mode]\r\n", TOUCH_NORMAL_MODE, TOUCH_TEST_RAW_MODE); + return 1; + } + + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO "other process occupied.. (%d)\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + misc_touch_dev->work_proceedure = TS_SET_MODE; + + misc_touch_dev->raw_mode_flag = value; + + printk(KERN_INFO "[zinitix_touch] zinitix_set_testmode, touchkey_testmode = %d\r\n", misc_touch_dev->raw_mode_flag); + + if(misc_touch_dev->raw_mode_flag == TOUCH_NORMAL_MODE) { + printk(KERN_INFO "[zinitix_touch] TEST Mode Exit\r\n"); + + if (ts_write_reg(misc_touch_dev->client, ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, ZINITIX_SCAN_RATE_HZ*ZINITIX_ESD_TIMER_INTERVAL)!=I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITIX_PERIODICAL_INTERRUPT_INTERVAL.\r\n"); + + if (ts_write_reg(misc_touch_dev->client, ZINITIX_TOUCH_MODE, TOUCH_MODE)!=I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITX_TOUCH_MODE %d.\r\n", TOUCH_MODE); + + } else { + printk(KERN_INFO "[zinitix_touch] TEST Mode Enter\r\n"); + + if (ts_write_reg(misc_touch_dev->client, ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, ZINITIX_SCAN_RATE_HZ*ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL)!=I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL.\r\n"); + + if (ts_write_reg(misc_touch_dev->client, ZINITIX_TOUCH_MODE, TOUCH_TEST_RAW_MODE)!=I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] TEST Mode : Fail to set ZINITX_TOUCH_MODE %d.\r\n", TOUCH_TEST_RAW_MODE); + + memset(&misc_touch_dev->reported_touch_info, 0x0, sizeof(struct _ts_zinitix_point_info)); + memset(&misc_touch_dev->touch_info, 0x0, sizeof(struct _ts_zinitix_point_info)); + } + // clear garbage data + for(i=0; i<=20; i++) { + mdelay(20); + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + } + + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return 1; + +} + +static ssize_t zinitix_tkey_reference(struct device *dev, struct device_attribute *attr, char *buf) +{ + + printk(KERN_INFO "[zinitix_touch] %s\r\n", __FUNCTION__); + + if(misc_touch_dev == NULL) { + zinitix_debug_msg("device NULL : NULL\n"); + return 0; + } + + printk(KERN_INFO "[zinitix_touch] %s : menu(%d), back(%d)\r\n", __FUNCTION__, misc_touch_dev->ref_data[ZINITIX_MENU_KEY], misc_touch_dev->ref_data[ZINITIX_BACK_KEY]); + + return sprintf(buf, "%d %d", misc_touch_dev->ref_data[ZINITIX_MENU_KEY], misc_touch_dev->ref_data[ZINITIX_BACK_KEY]); +} + +static ssize_t zinitix_tkey_data(struct device *dev, struct device_attribute *attr, char *buf) +{ + printk(KERN_INFO "[zinitix_touch] %s\r\n", __FUNCTION__); + + if(misc_touch_dev == NULL) { + zinitix_debug_msg("device NULL : NULL\n"); + return 0; + } + + printk(KERN_INFO "[zinitix_touch] %s : menu(%d)(%d), back(%d)(%d)\r\n", __FUNCTION__, + misc_touch_dev->ref_data[ZINITIX_MENU_KEY], misc_touch_dev->cur_data[ZINITIX_MENU_KEY], + misc_touch_dev->ref_data[ZINITIX_BACK_KEY], misc_touch_dev->cur_data[ZINITIX_BACK_KEY]); + + return sprintf(buf, "%d\n%d\n%d\n%d\n", misc_touch_dev->ref_data[ZINITIX_MENU_KEY], misc_touch_dev->cur_data[ZINITIX_MENU_KEY], + misc_touch_dev->ref_data[ZINITIX_BACK_KEY], misc_touch_dev->cur_data[ZINITIX_BACK_KEY]); +} +static int16_t zinitix_cal_ndata[MAX_X_NODE_CNT][MAX_Y_NODE_CNT] = {{0,},}; +static ssize_t zinitix_touch_cal_ndata(struct device *dev, struct device_attribute *attr, char *buf) +{ + int time_out = 0; + int i, j; + int interrup_detecting; + int node_num; + int written_bytes = 0; /* error check */ + + int16_t raw_data[MAX_X_NODE_CNT][MAX_Y_NODE_CNT] = {{0,},}; + + printk(KERN_INFO "[zinitix_touch] zinitix_read_raw_data( )\r\n"); + + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO "other process occupied.. (%d)\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + + misc_touch_dev->work_proceedure = TS_SET_MODE; + + disable_irq(misc_touch_dev->client->irq); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, 7) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + udelay(10); + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + + //garbage data + for(i=0; i<20; i++) { + mdelay(20); + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + } + + + for (i = 0; i < INT_WAIT_TIME; i++) { + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + time_out = 0; + interrup_detecting = 1; + + while (gpio_get_value(misc_touch_dev->int_gpio_num)) { + mdelay(1); + + if (time_out++ > 20) { + printk(KERN_INFO "[zinitix_touch] interrupt disable timed out\r\n"); + interrup_detecting = 0; + break; + } + } + if (i == INT_WAIT_TIME) { + printk(KERN_INFO "[zinitix_touch] interrupt disable timed out\r\n"); + goto fail_read_raw; + } + + if ((interrup_detecting == 1) && (time_out < 20)) { + if (ts_read_raw_data(misc_touch_dev->client, + ZINITIX_RAWDATA_REG, (char *)raw_data, + MAX_TEST_RAW_DATA*2) < 0) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_RAWDATA_REG fail\r\n"); + goto fail_read_raw; + } + memcpy(zinitix_cal_ndata, raw_data, MAX_TEST_RAW_DATA*2); + break; + } + } + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(20); + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + mdelay(20); + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + enable_irq(misc_touch_dev->client->irq); + + if(m_ts_debug_mode) { + for (i = 0; i < misc_touch_dev->cap_info.x_node_num; i++) { + printk(KERN_CONT "[TSP]"); + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) + printk(KERN_CONT " %5d", raw_data[i][j]); + printk(KERN_CONT "\n"); + } + } + + // check cal ndata range + for (i = 0; i < misc_touch_dev->cap_info.x_node_num-1; i++) { + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) { + if (raw_data[i][j] < CAL_MIN_NUM) + return snprintf(buf, 2, "0"); + + if (raw_data[i][j] > CAL_MAX_NUM) + return snprintf(buf, 2, "0"); + } + } + + // check cal touch key ndata range + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) { + node_num = ((misc_touch_dev->cap_info.x_node_num-1)*misc_touch_dev->cap_info.y_node_num) + j; + if(node_num == ZINITIX_MENU_KEY || node_num == ZINITIX_BACK_KEY) { + if (raw_data[misc_touch_dev->cap_info.x_node_num-1][j] + < CAL_MIN_NUM) + return snprintf(buf, 2, "0"); + + if (raw_data[misc_touch_dev->cap_info.x_node_num-1][j] + > CAL_MAX_NUM) + return snprintf(buf, 2, "0"); + } + } + + for (i = 0; i < misc_touch_dev->cap_info.x_node_num; i++) { + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) { + written_bytes += sprintf(buf+written_bytes, "%d,",raw_data[i][j]); + } + } + if(written_bytes > 0) + return written_bytes; +fail_read_raw: + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + udelay(20); + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + mdelay(20); + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + enable_irq(misc_touch_dev->client->irq); + + return snprintf(buf, 2, "-1"); +} + +static ssize_t zinitix_touch_ndata_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int i,j,written_bytes=0; + printk("[TSP] %s\n",__func__); + + for (i = 0; i < misc_touch_dev->cap_info.x_node_num-1; i++) { + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) { + written_bytes += sprintf(buf+written_bytes, "%d,",zinitix_cal_ndata[i][j]); + } + } + if(written_bytes > 0) + return written_bytes; +} +static ssize_t zinitix_delta(struct device *dev, struct device_attribute *attr, char *buf) +{ + int written_bytes = 0, i; + + printk(KERN_INFO "[zinitix_touch] %s\r\n", __FUNCTION__); + + if(misc_touch_dev == NULL) { + zinitix_debug_msg("device NULL : NULL\n"); + return 0; + } + + for(i = 0 ; i < misc_touch_dev->cap_info.total_node_num; i++) { + written_bytes += sprintf(buf+written_bytes, "%d,", misc_touch_dev->cur_data[i] - misc_touch_dev->ref_data[i]) ; + } + + if(written_bytes > 0) + return written_bytes; +} + +static ssize_t zinitix_cal_ncount(struct device *dev, struct device_attribute *attr, char *buf) +{ + int i, j; + int written_bytes = 0; /* error check */ + + u8 raw_data[MAX_X_NODE_CNT][MAX_Y_NODE_CNT] = {{0,},}; + + printk(KERN_INFO "[zinitix_touch] zinitix_cal_ncount( )\r\n"); + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO "other process occupied.. (%d)\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + + misc_touch_dev->work_proceedure = TS_SET_MODE; + + disable_irq(misc_touch_dev->client->irq); + + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, 8) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + //clear garbage data + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + for(i=0; i<20; i++) { + mdelay(20); + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + } + + + if (ts_read_raw_data(misc_touch_dev->client, + ZINITIX_RAWDATA_REG, (char *)raw_data, MAX_X_NODE_CNT*MAX_Y_NODE_CNT) < 0) { + printk(KERN_INFO "[TSP] error : read zinitix tc Cal N count data\n"); + goto fail_read_raw; + } + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + mdelay(20); + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + mdelay(20); + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + enable_irq(misc_touch_dev->client->irq); + + + if(m_ts_debug_mode) { + for (i = 0; i < misc_touch_dev->cap_info.x_node_num; i++) { + printk("[TSP]"); + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) { + printk(" %d", raw_data[i][j]); + } + printk("\n"); + } + } + + + for (i = 0; i < misc_touch_dev->cap_info.x_node_num; i++) { + for (j = 0; j < misc_touch_dev->cap_info.y_node_num; j++) { + written_bytes +=sprintf(buf+written_bytes, "%d,",raw_data[i][j]); + + } + } + + if(written_bytes > 0) + return written_bytes; + + return snprintf(buf, 2, "-1"); + +fail_read_raw: + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) { + printk(KERN_INFO "[zinitix_touch] ZINITIX_TOUCH_MODE fail\r\n"); + goto fail_read_raw; + } + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + udelay(10); + + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + enable_irq(misc_touch_dev->client->irq); + + return snprintf(buf, 2, "-1"); +} + +static ssize_t zinitix_enter_testmode(struct device *dev, struct device_attribute *attr, char *buf) +{ + int i; + + + if(misc_touch_dev == NULL) { + zinitix_debug_msg("device NULL : NULL\n"); + return 0; + } + //printk(KERN_INFO "[zinitix_touch] %s name : %s\r\n", __FUNCTION__, misc_touch_dev->client->name); + + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO "other process occupied.. (%d)\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + + misc_touch_dev->work_proceedure = TS_SET_MODE; + misc_touch_dev->raw_mode_flag = TOUCH_TEST_RAW_MODE; + + if (ts_write_reg(misc_touch_dev->client, ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, ZINITIX_SCAN_RATE_HZ*ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL)!=I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL.\r\n"); + + if (ts_write_reg(misc_touch_dev->client, ZINITIX_TOUCH_MODE, TOUCH_TEST_RAW_MODE)!=I2C_SUCCESS) + { + printk(KERN_INFO "[zinitix_touch] TEST Mode : Fail to set ZINITX_TOUCH_MODE %d.\r\n", TOUCH_TEST_RAW_MODE); + } + + ts_write_cmd(misc_touch_dev->client, ZINITIX_CLEAR_INT_STATUS_CMD); + //clear garbage data + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + for(i=0; i<20; i++) { + mdelay(20); + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + } + zinitix_clear_report_data(misc_touch_dev); + memset(&misc_touch_dev->reported_touch_info, 0x0, sizeof(struct _ts_zinitix_point_info)); + memset(&misc_touch_dev->touch_info, 0x0, sizeof(struct _ts_zinitix_point_info)); + + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + enable_irq(misc_touch_dev->client->irq); + return 1; +} + +static ssize_t zinitix_enter_ncountmode(struct device *dev, struct device_attribute *attr, char *buf) +{ + int i; + printk(KERN_INFO "[zinitix_touch] %s 111 name : %s\r\n", __FUNCTION__, misc_touch_dev->client->name); + + if(misc_touch_dev == NULL) { + zinitix_debug_msg("device NULL : NULL\n"); + return 0; + } + + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO "other process occupied.. (%d)\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + misc_touch_dev->work_proceedure = TS_SET_MODE; + misc_touch_dev->raw_mode_flag = TOUCH_ZINITIX_CAL_N_MODE; + + if (ts_write_reg(misc_touch_dev->client, ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, ZINITIX_SCAN_RATE_HZ*ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL)!=I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL.\r\n"); + + if (ts_write_reg(misc_touch_dev->client, ZINITIX_TOUCH_MODE, TOUCH_ZINITIX_CAL_N_MODE)!=I2C_SUCCESS) + { + printk(KERN_INFO "[zinitix_touch] TEST Mode : Fail to set ZINITX_TOUCH_MODE %d.\r\n", TOUCH_ZINITIX_CAL_N_MODE); + } + + //clear garbage data + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + for(i=0; i<20; i++) { + mdelay(20); + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + } + zinitix_clear_report_data(misc_touch_dev); + memset(&misc_touch_dev->reported_touch_info, 0x0, sizeof(struct _ts_zinitix_point_info)); + memset(&misc_touch_dev->touch_info, 0x0, sizeof(struct _ts_zinitix_point_info)); + + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + enable_irq(misc_touch_dev->client->irq); + return 1; +} + +static ssize_t zinitix_enter_normalmode(struct device *dev, struct device_attribute *attr, char *buf) +{ + int i; + + printk(KERN_INFO "[zinitix_touch] %s\r\n", __FUNCTION__); + + if(misc_touch_dev == NULL) { + zinitix_debug_msg("device NULL : NULL\n"); + return 0; + } + + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO "other process occupied.. (%d)\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + misc_touch_dev->work_proceedure = TS_SET_MODE; + misc_touch_dev->raw_mode_flag = TOUCH_NORMAL_MODE; + + printk(KERN_INFO "[zinitix_touch] TEST Mode Exit\r\n"); + + if (ts_write_reg(misc_touch_dev->client, ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, ZINITIX_SCAN_RATE_HZ*ZINITIX_ESD_TIMER_INTERVAL)!=I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITIX_PERIODICAL_INTERRUPT_INTERVAL.\r\n"); + + if (ts_write_reg(misc_touch_dev->client, ZINITIX_TOUCH_MODE, TOUCH_MODE)!=I2C_SUCCESS) + { + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITX_TOUCH_MODE %d.\r\n", TOUCH_MODE); + } + //clear garbage data + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + for(i=0; i<20; i++) { + mdelay(20); + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + } + + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + enable_irq(misc_touch_dev->client->irq); + return 1; +} +static ssize_t zinitix_count_node(struct device *dev, struct device_attribute *attr, char *buf) +{ + printk("[TSP] %s\n",__func__); + return sprintf(buf, "%d,%d\n", misc_touch_dev->cap_info.x_node_num,misc_touch_dev->cap_info.y_node_num); +} +static ssize_t zinitix_chip_info(struct device *dev, struct device_attribute *attr, char *buf) +{ + printk("[TSP] %s\n",__func__); + return sprintf(buf, "%s, BT%03X\n", CHIP_INFO, (misc_touch_dev->cap_info.chip_revision>>4)); +} +static ssize_t zinitix_menu_sensitivity_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int ret = 0; + u16 menu_sensitivity; + + ret = ts_read_data(misc_touch_dev->client, 0x00A8, (u8*)&menu_sensitivity, 2); + + if (ret<0) + return sprintf(buf, "%s\n", "fail to read menu_sensitivity."); + else + return sprintf(buf, "%d\n", menu_sensitivity); +} + +static ssize_t zinitix_back_sensitivity_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int ret = 0; + u16 back_sensitivity; + + ret = ts_read_data(misc_touch_dev->client, 0x00A9, (u8*)&back_sensitivity, 2); + + if (ret<0) + return sprintf(buf, "%s\n", "fail to read back_sensitivity."); + else + return sprintf(buf, "%d\n", back_sensitivity); +} +static DEVICE_ATTR(get_touch_raw_data, S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH, zinitix_get_test_raw_data, zinitix_set_testmode); +static DEVICE_ATTR(tkey_reference, S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH, zinitix_tkey_reference, NULL); +static DEVICE_ATTR(touch_cal_ndata, S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH, zinitix_touch_cal_ndata, NULL); +static DEVICE_ATTR(delta, S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH, zinitix_delta, NULL); +static DEVICE_ATTR(cal_ncount, S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH, zinitix_cal_ncount, NULL); +static DEVICE_ATTR(enter_testmode, S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH, zinitix_enter_testmode, NULL); +static DEVICE_ATTR(enter_normalmode, S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH, zinitix_enter_normalmode, NULL); +static DEVICE_ATTR(count_node, S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH, zinitix_count_node, NULL); +static DEVICE_ATTR(chip_info, S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH, zinitix_chip_info, NULL); +static DEVICE_ATTR(menu_sensitivity, S_IRUGO | S_IWUSR | S_IWGRP, zinitix_menu_sensitivity_show, NULL); +static DEVICE_ATTR(back_sensitivity, S_IRUGO | S_IWUSR | S_IWGRP, zinitix_back_sensitivity_show, NULL); +static DEVICE_ATTR(touch_ndata, S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH, zinitix_touch_ndata_show, NULL); +static DEVICE_ATTR(tkey_data, S_IRUGO | S_IWUSR | S_IWOTH | S_IXOTH, zinitix_tkey_data, NULL); + +#endif + +static int ts_misc_fops_open(struct inode *inode, struct file *filp) +{ + return 0; +} + +static int ts_misc_fops_close(struct inode *inode, struct file *filp) +{ + return 0; +} + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 36) +static int ts_misc_fops_ioctl(struct inode *inode, + struct file *filp, unsigned int cmd, + unsigned long arg) +#else +static long ts_misc_fops_ioctl(struct file *filp, + unsigned int cmd, unsigned long arg) +#endif +{ + void __user *argp = (void __user *)arg; + struct _raw_ioctl raw_ioctl; + u8 *u8Data; + int i, j; + int ret = 0; + size_t sz = 0; + u16 version; + u8 div_node; + int total_cal_n; + + u16 mode; + + struct _reg_ioctl reg_ioctl; + u16 val; + int nval = 0; + + if (misc_touch_dev == NULL) + return -1; + + /* zinitix_debug_msg("cmd = %d, argp = 0x%x\n", cmd, (int)argp); */ + + switch (cmd) { + + case TOUCH_IOCTL_GET_DEBUGMSG_STATE: + ret = m_ts_debug_mode; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_SET_DEBUGMSG_STATE: + if (copy_from_user(&nval, argp, 4)) { + printk(KERN_INFO "[zinitix_touch] error : copy_from_user\n"); + return -1; + } + if (nval) + printk(KERN_INFO "[zinitix_touch] on debug mode (%d)\n", + nval); + else + printk(KERN_INFO "[zinitix_touch] off debug mode (%d)\n", + nval); + m_ts_debug_mode = nval; + break; + + case TOUCH_IOCTL_GET_CHIP_REVISION: + ret = misc_touch_dev->cap_info.chip_revision; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_FW_VERSION: + ret = misc_touch_dev->cap_info.chip_firmware_version; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_REG_DATA_VERSION: + ret = misc_touch_dev->cap_info.chip_reg_data_version; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_VARIFY_UPGRADE_SIZE: + if (copy_from_user(&sz, argp, sizeof(size_t))) + return -1; + + printk(KERN_INFO "firmware size = %d\r\n", sz); + if (misc_touch_dev->cap_info.chip_fw_size != sz) { + printk(KERN_INFO "firmware size error\r\n"); + return -1; + } + break; + + case TOUCH_IOCTL_VARIFY_UPGRADE_DATA: + if (copy_from_user(&m_firmware_data[2], + argp, misc_touch_dev->cap_info.chip_fw_size)) + return -1; + + version = + (u16)(((u16)m_firmware_data[FIRMWARE_VERSION_POS+1]<<8) + |(u16)m_firmware_data[FIRMWARE_VERSION_POS]); + + printk(KERN_INFO "firmware version = %x\r\n", version); + + if (copy_to_user(argp, &version, sizeof(version))) + return -1; + break; + + case TOUCH_IOCTL_START_UPGRADE: + disable_irq(misc_touch_dev->irq); + down(&misc_touch_dev->work_proceedure_lock); + misc_touch_dev->work_proceedure = TS_IN_UPGRADE; + + if (misc_touch_dev->use_esd_timer) + ts_esd_timer_stop(misc_touch_dev); + zinitix_debug_msg("clear all reported points\r\n"); + zinitix_clear_report_data(misc_touch_dev); + + printk(KERN_INFO "start upgrade firmware\n"); + if (ts_upgrade_firmware(misc_touch_dev, + &m_firmware_data[2], + misc_touch_dev->cap_info.chip_fw_size) == false) { + enable_irq(misc_touch_dev->irq); + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + + if (ts_init_touch(misc_touch_dev) == false) { + enable_irq(misc_touch_dev->irq); + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + + + if (misc_touch_dev->use_esd_timer) { + ts_esd_timer_start(ZINITIX_CHECK_ESD_TIMER, + misc_touch_dev); + zinitix_debug_msg("esd timer start\r\n"); + } + + enable_irq(misc_touch_dev->irq); + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + break; + + case TOUCH_IOCTL_GET_X_RESOLUTION: + ret = misc_touch_dev->cap_info.x_resolution; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_Y_RESOLUTION: + ret = misc_touch_dev->cap_info.y_resolution; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_X_NODE_NUM: + ret = misc_touch_dev->cap_info.x_node_num; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_Y_NODE_NUM: + ret = misc_touch_dev->cap_info.y_node_num; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_GET_TOTAL_NODE_NUM: + ret = misc_touch_dev->cap_info.total_node_num; + if (copy_to_user(argp, &ret, sizeof(ret))) + return -1; + break; + + case TOUCH_IOCTL_HW_CALIBRAION: + ret = -1; + disable_irq(misc_touch_dev->irq); + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO"other process occupied.. (%d)\r\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + misc_touch_dev->work_proceedure = TS_HW_CALIBRAION; + mdelay(100); + + /* h/w calibration */ + if(ts_hw_calibration(misc_touch_dev) == false) + goto fail_hw_cal; + + ret = 0; +fail_hw_cal: + if (misc_touch_dev->raw_mode_flag == TOUCH_NORMAL_MODE) + mode = TOUCH_MODE; + else + mode = misc_touch_dev->raw_mode_flag; + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, mode) != I2C_SUCCESS) { + printk(KERN_INFO "fail to set touch mode %d.\n", + mode); + goto fail_hw_cal2; + } + + if (ts_write_cmd(misc_touch_dev->client, + ZINITIX_SWRESET_CMD) != I2C_SUCCESS) + goto fail_hw_cal2; + + enable_irq(misc_touch_dev->irq); + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return ret; +fail_hw_cal2: + enable_irq(misc_touch_dev->irq); + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return -1; + + case TOUCH_IOCTL_SET_RAW_DATA_MODE: + if (misc_touch_dev == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO"other process occupied.. (%d)\r\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + misc_touch_dev->work_proceedure = TS_SET_MODE; + + if (copy_from_user(&nval, argp, 4)) { + printk(KERN_INFO "[zinitix_touch] error : copy_from_user\r\n"); + misc_touch_dev->work_proceedure = TS_NO_WORK; + return -1; + } + + zinitix_debug_msg("[zinitix_touch] touchkey_testmode = %d\r\n", + misc_touch_dev->raw_mode_flag); + + if (nval == TOUCH_NORMAL_MODE && + misc_touch_dev->raw_mode_flag != TOUCH_NORMAL_MODE) { + /* enter into normal mode */ + misc_touch_dev->raw_mode_flag = nval; + printk(KERN_INFO "[zinitix_touch] raw data mode exit\r\n"); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, + ZINITIX_SCAN_RATE_HZ*ZINITIX_ESD_TIMER_INTERVAL) + != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITIX_PERIODICAL_INTERRUPT_INTERVAL.\n"); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, TOUCH_MODE) != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] fail to set TOUCH_MODE.\r\n"); + + } else if (nval != TOUCH_NORMAL_MODE) { + /* enter into test mode*/ + misc_touch_dev->raw_mode_flag = nval; + printk(KERN_INFO "[zinitix_touch] raw data mode enter\r\n"); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, + ZINITIX_SCAN_RATE_HZ + *ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL) + != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] Fail to set ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL.\n"); + + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_TOUCH_MODE, + misc_touch_dev->raw_mode_flag) != I2C_SUCCESS) + printk(KERN_INFO "[zinitix_touch] raw data mode : Fail to set TOUCH_MODE %d.\n", + misc_touch_dev->raw_mode_flag); + } + /* clear garbage data */ + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + mdelay(100); + ts_write_cmd(misc_touch_dev->client, + ZINITIX_CLEAR_INT_STATUS_CMD); + + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return 0; + + case TOUCH_IOCTL_GET_REG: + if (misc_touch_dev == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO "other process occupied.. (%d)\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + + misc_touch_dev->work_proceedure = TS_SET_MODE; + + if (copy_from_user(®_ioctl, + argp, sizeof(struct _reg_ioctl))) { + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + printk(KERN_INFO "[zinitix_touch] error : copy_from_user\n"); + return -1; + } + + if (ts_read_data(misc_touch_dev->client, + reg_ioctl.addr, (u8 *)&val, 2) < 0) + ret = -1; + + nval = (int)val; + + if (copy_to_user(reg_ioctl.val, (u8 *)&nval, 4)) { + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + printk(KERN_INFO "[zinitix_touch] error : copy_to_user\n"); + return -1; + } + + zinitix_debug_msg("read : reg addr = 0x%x, val = 0x%x\n", + reg_ioctl.addr, nval); + + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return ret; + + case TOUCH_IOCTL_SET_REG: + + if (misc_touch_dev == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO "other process occupied.. (%d)\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + + misc_touch_dev->work_proceedure = TS_SET_MODE; + if (copy_from_user(®_ioctl, + argp, sizeof(struct _reg_ioctl))) { + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + printk(KERN_INFO "[zinitix_touch] error : copy_from_user\n"); + return -1; + } + + if (copy_from_user(&val, reg_ioctl.val, 4)) { + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + printk(KERN_INFO "[zinitix_touch] error : copy_from_user\n"); + return -1; + } + + if (ts_write_reg(misc_touch_dev->client, + reg_ioctl.addr, val) != I2C_SUCCESS) + ret = -1; + + zinitix_debug_msg("write : reg addr = 0x%x, val = 0x%x\r\n", + reg_ioctl.addr, val); + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return ret; + + case TOUCH_IOCTL_DONOT_TOUCH_EVENT: + + if (misc_touch_dev == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO"other process occupied.. (%d)\r\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + + misc_touch_dev->work_proceedure = TS_SET_MODE; + if (ts_write_reg(misc_touch_dev->client, + ZINITIX_INT_ENABLE_FLAG, 0) != I2C_SUCCESS) + ret = -1; + zinitix_debug_msg("write : reg addr = 0x%x, val = 0x0\r\n", + ZINITIX_INT_ENABLE_FLAG); + + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return ret; + + case TOUCH_IOCTL_SEND_SAVE_STATUS: + if (misc_touch_dev == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + down(&misc_touch_dev->work_proceedure_lock); + if (misc_touch_dev->work_proceedure != TS_NO_WORK) { + printk(KERN_INFO"other process occupied.. (%d)\r\n", + misc_touch_dev->work_proceedure); + up(&misc_touch_dev->work_proceedure_lock); + return -1; + } + misc_touch_dev->work_proceedure = TS_SET_MODE; + ret = 0; + if (ts_write_cmd(misc_touch_dev->client, + ZINITIX_SAVE_STATUS_CMD) != I2C_SUCCESS) + ret = -1; + mdelay(1000); /* for fusing eeprom */ + + misc_touch_dev->work_proceedure = TS_NO_WORK; + up(&misc_touch_dev->work_proceedure_lock); + return ret; + + case TOUCH_IOCTL_GET_RAW_DATA: + if (misc_touch_dev == NULL) { + zinitix_debug_msg("misc device NULL?\n"); + return -1; + } + + if (misc_touch_dev->raw_mode_flag == TOUCH_NORMAL_MODE) + return -1; + + down(&misc_touch_dev->raw_data_lock); + if (misc_touch_dev->update == 0) { + up(&misc_touch_dev->raw_data_lock); + return -2; + } + + if (copy_from_user(&raw_ioctl, + argp, sizeof(raw_ioctl))) { + up(&misc_touch_dev->raw_data_lock); + printk(KERN_INFO "[zinitix_touch] error : copy_from_user\r\n"); + return -1; + } + + misc_touch_dev->update = 0; + + u8Data = (u8 *)&misc_touch_dev->cur_data[0]; + if (misc_touch_dev->raw_mode_flag == TOUCH_ZINITIX_CAL_N_MODE) { + + + j = 0; + total_cal_n = + misc_touch_dev->cap_info.total_cal_n; + if (total_cal_n == 0) + total_cal_n = 160; + div_node = + (u8)misc_touch_dev->cap_info.max_y_node; + if (div_node == 0) + div_node = 16; + u8Data = (u8 *)&misc_touch_dev->cur_data[0]; + for (i = 0; i < total_cal_n*2; i++) { + if (i%div_node < + misc_touch_dev->cap_info.y_node_num) { + misc_touch_dev->ref_data[j] = + (u16)u8Data[i]; + j++; + } + } + + u8Data = (u8 *)&misc_touch_dev->ref_data[0]; + } + + if (copy_to_user(raw_ioctl.buf, (u8 *)u8Data, + raw_ioctl.sz)) { + up(&misc_touch_dev->raw_data_lock); + return -1; + } + + up(&misc_touch_dev->raw_data_lock); + return 0; + + default: + break; + } + return 0; +} + + + +static int zinitix_touch_probe(struct i2c_client *client, + const struct i2c_device_id *i2c_id) +{ + int ret = 0; + struct zinitix_touch_dev *touch_dev; + int i; + + zinitix_debug_msg("zinitix_touch_probe+\r\n"); + + + zinitix_debug_msg("Above BT4x3 Driver\r\n"); + + printk(KERN_INFO "[zinitix touch] driver version = %s\r\n", + TS_DRVIER_VERSION); + + + if (strcmp(client->name, ZINITIX_ISP_NAME) == 0) { + printk(KERN_INFO "isp client probe \r\n"); + m_isp_client = client; + return 0; + } + + zinitix_debug_msg("i2c check function \r\n"); + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + printk(KERN_ERR "error : not compatible i2c function \r\n"); + goto err_check_functionality; + } + + zinitix_debug_msg("touch data alloc \r\n"); + touch_dev = kzalloc(sizeof(struct zinitix_touch_dev), GFP_KERNEL); + if (!touch_dev) { + printk(KERN_ERR "unabled to allocate touch data \r\n"); + goto err_alloc_dev_data; + } + touch_dev->client = client; + i2c_set_clientdata(client, touch_dev); + +#if !USE_THREADED_IRQ + INIT_WORK(&touch_dev->work, zinitix_touch_work); + zinitix_debug_msg("touch workqueue create \r\n"); + zinitix_workqueue = create_singlethread_workqueue("zinitix_workqueue"); + if (!zinitix_workqueue) { + printk(KERN_ERR "unabled to create touch thread \r\n"); + goto err_kthread_create_failed; + } +#endif + + zinitix_debug_msg("allocate input device \r\n"); + touch_dev->input_dev = input_allocate_device(); + if (touch_dev->input_dev == 0) { + printk(KERN_ERR "unabled to allocate input device \r\n"); + goto err_input_allocate_device; + } + + /* initialize zinitix touch ic */ + touch_dev->int_gpio_num = GPIO_TOUCH_PIN_NUM; /* for upgrade */ + + memset(&touch_dev->reported_touch_info, + 0x0, sizeof(struct _ts_zinitix_point_info)); + + + /* not test mode */ + touch_dev->raw_mode_flag = TOUCH_NORMAL_MODE; + + if(ts_init_touch(touch_dev) == false) { + goto err_input_register_device; + } + + for (i = 0; i < MAX_SUPPORTED_BUTTON_NUM; i++) + touch_dev->button[i] = ICON_BUTTON_UNCHANGE; + + touch_dev->use_esd_timer = 0; + + INIT_WORK(&touch_dev->tmr_work, zinitix_touch_tmr_work); + zinitix_tmr_workqueue = + create_singlethread_workqueue("zinitix_tmr_workqueue"); + if (!zinitix_tmr_workqueue) { + printk(KERN_ERR "unabled to create touch tmr work queue \r\n"); + goto err_kthread_create_failed; + } + + if (ZINITIX_ESD_TIMER_INTERVAL) { + touch_dev->use_esd_timer = 1; + ts_esd_timer_init(touch_dev); + ts_esd_timer_start(ZINITIX_CHECK_ESD_TIMER, touch_dev); + printk(KERN_INFO " ts_esd_timer_start\n"); + } + + + sprintf(touch_dev->phys, "input(ts)"); + touch_dev->input_dev->name = ZINITIX_DRIVER_NAME; + touch_dev->input_dev->id.bustype = BUS_I2C; + touch_dev->input_dev->id.vendor = 0x0001; + touch_dev->input_dev->phys = touch_dev->phys; + touch_dev->input_dev->id.product = 0x0002; + touch_dev->input_dev->id.version = 0x0100; + + set_bit(EV_SYN, touch_dev->input_dev->evbit); + set_bit(EV_KEY, touch_dev->input_dev->evbit); + set_bit(EV_ABS, touch_dev->input_dev->evbit); + + + for (i = 0; i < MAX_SUPPORTED_BUTTON_NUM; i++) + set_bit(BUTTON_MAPPING_KEY[i], touch_dev->input_dev->keybit); + + if (touch_dev->cap_info.Orientation & TOUCH_XY_SWAP) { + input_set_abs_params(touch_dev->input_dev, ABS_MT_POSITION_Y, + touch_dev->cap_info.MinX, + 480 + ABS_PT_OFFSET, + 0, 0); + input_set_abs_params(touch_dev->input_dev, ABS_MT_POSITION_X, + touch_dev->cap_info.MinY, + 800 + ABS_PT_OFFSET, + 0, 0); + } else { + input_set_abs_params(touch_dev->input_dev, ABS_MT_POSITION_X, + touch_dev->cap_info.MinX, + 480 + ABS_PT_OFFSET, + 0, 0); + input_set_abs_params(touch_dev->input_dev, ABS_MT_POSITION_Y, + touch_dev->cap_info.MinY, + 800 + ABS_PT_OFFSET, + 0, 0); + } + + input_set_abs_params(touch_dev->input_dev, ABS_TOOL_WIDTH, + 0, 255, 0, 0); + input_set_abs_params(touch_dev->input_dev, ABS_MT_TOUCH_MAJOR, + 0, 255, 0, 0); + input_set_abs_params(touch_dev->input_dev, ABS_MT_WIDTH_MAJOR, + 0, 255, 0, 0); + +#if MULTI_PROTOCOL_TYPE_B + set_bit(MT_TOOL_FINGER, touch_dev->input_dev->keybit); + input_mt_init_slots(touch_dev->input_dev, touch_dev->cap_info.multi_fingers); +#else + set_bit(BTN_TOUCH, touch_dev->input_dev->keybit); +#endif + + + input_set_abs_params(touch_dev->input_dev, ABS_MT_TRACKING_ID, + 0, touch_dev->cap_info.multi_fingers, 0, 0); + + + zinitix_debug_msg("register %s input device \r\n", + touch_dev->input_dev->name); + ret = input_register_device(touch_dev->input_dev); + if (ret) { + printk(KERN_ERR "unable to register %s input device\r\n", + touch_dev->input_dev->name); + goto err_input_register_device; + } + +#ifdef TOUCH_VIRTUAL_KEYS + zinitix_ts_virtual_keys_init(); +#endif + /* configure touchscreen interrupt gpio */ + ret = gpio_request(GPIO_TOUCH_PIN_NUM, "zinitix_irq_gpio"); + if (ret) { + printk(KERN_ERR "unable to request gpio.(%s)\r\n", + touch_dev->input_dev->name); + goto err_request_irq; + } + + ret = gpio_direction_input(GPIO_TOUCH_PIN_NUM); + + touch_dev->int_gpio_num = GPIO_TOUCH_PIN_NUM; + + + touch_dev->irq = gpio_to_irq(touch_dev->int_gpio_num); + if (touch_dev->irq < 0) + printk(KERN_INFO "error. gpio_to_irq(..) function is not \ + supported? you should define GPIO_TOUCH_IRQ.\r\n"); + + zinitix_debug_msg("request irq (irq = %d, pin = %d) \r\n", + touch_dev->irq, touch_dev->int_gpio_num); + + touch_dev->work_proceedure = TS_NO_WORK; + sema_init(&touch_dev->work_proceedure_lock, 1); + +#if USE_THREADED_IRQ + ret = request_threaded_irq(touch_dev->irq, ts_int_handler, zinitix_touch_work, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT , ZINITIX_DRIVER_NAME, touch_dev); +#else + ret = request_irq(touch_dev->irq, ts_int_handler, + IRQF_TRIGGER_LOW, ZINITIX_DRIVER_NAME, touch_dev); +#endif + if (ret) { + printk(KERN_ERR "unable to register irq.(%s)\r\n", + touch_dev->input_dev->name); + goto err_request_irq; + } + dev_info(&client->dev, "zinitix touch probe.\r\n"); + +#ifdef CONFIG_HAS_EARLYSUSPEND + touch_dev->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + touch_dev->early_suspend.suspend = zinitix_early_suspend; + touch_dev->early_suspend.resume = zinitix_late_resume; + register_early_suspend(&touch_dev->early_suspend); +#endif + + + sema_init(&touch_dev->raw_data_lock, 1); + + misc_touch_dev = touch_dev; + + ret = misc_register(&touch_misc_device); + if (ret) + zinitix_debug_msg("Fail to register touch misc device.\n"); + +#if SEC_TOUCH_INFO_REPORT + //sys/class/misc/touch_misc_fops/.... + sec_touchscreen_dev = device_create(sec_class, NULL, 0, NULL, "sec_touchscreen"); + + if (IS_ERR(sec_touchscreen_dev)) + pr_err("Failed to create device(sec_touchscreen)!\n"); + + if (device_create_file(sec_touchscreen_dev, + &dev_attr_get_touch_raw_data) < 0) + pr_err("Failed to create device file(%s)!\n", + dev_attr_get_touch_raw_data.attr.name); + + if (device_create_file(sec_touchscreen_dev, + &dev_attr_touch_cal_ndata) < 0) + pr_err("Failed to create device file(%s)!\n", + dev_attr_touch_cal_ndata.attr.name); + + if (device_create_file(sec_touchscreen_dev, + &dev_attr_delta) < 0) + pr_err("Failed to create device file(%s)!\n", + dev_attr_delta.attr.name); + + if (device_create_file(sec_touchscreen_dev, + &dev_attr_cal_ncount) < 0) + pr_err("Failed to create device file(%s)!\n", + dev_attr_cal_ncount.attr.name); + + if (device_create_file(sec_touchscreen_dev, + &dev_attr_enter_testmode) < 0) + pr_err("Failed to create device file(%s)!\n", + dev_attr_enter_testmode.attr.name); + + if (device_create_file(sec_touchscreen_dev, + &dev_attr_enter_normalmode) < 0) + pr_err("Failed to create device file(%s)!\n", + dev_attr_enter_normalmode.attr.name); + + if (device_create_file(sec_touchscreen_dev, &dev_attr_count_node) < 0) + pr_err("Failed to create device file(%s)!\n", + dev_attr_count_node.attr.name); + + if (device_create_file(sec_touchscreen_dev, + &dev_attr_chip_info) < 0) + pr_err("Failed to create device file(%s)!\n", + dev_attr_chip_info.attr.name); + + if (device_create_file(sec_touchscreen_dev, + &dev_attr_touch_ndata) < 0) + pr_err("Failed to create device file(%s)!\n", + dev_attr_touch_ndata.attr.name); + + sec_touchkey_dev = device_create(sec_class, NULL, 0, NULL, "sec_touchkey"); + if (IS_ERR(sec_touchkey_dev)) + pr_err("Failed to create device(sec_touchkey)!\n"); + + if (device_create_file(sec_touchkey_dev, &dev_attr_tkey_data) < 0) + pr_err("Failed to create device file(%s)!\n", + dev_attr_tkey_data.attr.name); + + if (device_create_file(sec_touchkey_dev, &dev_attr_menu_sensitivity) < 0) + pr_err("Failed to create device file(%s)!\n", + dev_attr_menu_sensitivity.attr.name); + if (device_create_file(sec_touchkey_dev, &dev_attr_back_sensitivity) < 0) + pr_err("Failed to create device file(%s)!\n", + dev_attr_back_sensitivity.attr.name); +#endif + + + return 0; + +err_request_irq: + input_unregister_device(touch_dev->input_dev); +err_input_register_device: + input_free_device(touch_dev->input_dev); +err_kthread_create_failed: +err_input_allocate_device: + kfree(touch_dev); +err_alloc_dev_data: +err_check_functionality: + touch_dev = NULL; + + misc_touch_dev = NULL; + + i2c_set_clientdata(client, touch_dev); + ts_power_control(POWER_OFF); + return -ENODEV; +} + + +static int zinitix_touch_remove(struct i2c_client *client) +{ + struct zinitix_touch_dev *touch_dev = i2c_get_clientdata(client); + if(touch_dev == NULL) return 0; + + zinitix_debug_msg("zinitix_touch_remove+ \r\n"); + down(&touch_dev->work_proceedure_lock); +#if !USE_THREADED_IRQ + if (touch_dev->work_proceedure != TS_NO_WORK) + flush_work(&touch_dev->work); +#endif + touch_dev->work_proceedure = TS_REMOVE_WORK; + + if (touch_dev->use_esd_timer != 0) { + flush_work(&touch_dev->tmr_work); + ts_write_reg(touch_dev->client, + ZINITIX_PERIODICAL_INTERRUPT_INTERVAL, 0); + ts_esd_timer_stop(touch_dev); + zinitix_debug_msg(KERN_INFO " ts_esd_timer_stop\n"); + destroy_workqueue(zinitix_tmr_workqueue); + } + + if (touch_dev->irq) + free_irq(touch_dev->irq, touch_dev); + +#if SEC_TOUCH_INFO_REPORT + //device_remove_file(touch_misc_device.this_device, &dev_attr_get_touch_raw_data); --> remove attr + //..... +#endif + misc_deregister(&touch_misc_device); + + + +#ifdef CONFIG_HAS_EARLYSUSPEND + unregister_early_suspend(&touch_dev->early_suspend); +#endif + +#if !USE_THREADED_IRQ + destroy_workqueue(zinitix_workqueue); +#endif + if (gpio_is_valid(touch_dev->int_gpio_num) != 0) + gpio_free(touch_dev->int_gpio_num); + + input_unregister_device(touch_dev->input_dev); + input_free_device(touch_dev->input_dev); + up(&touch_dev->work_proceedure_lock); + kfree(touch_dev); + + return 0; +} + + +static struct i2c_driver zinitix_touch_driver = { + .probe = zinitix_touch_probe, + .remove = zinitix_touch_remove, + .id_table = zinitix_idtable, + .driver = { + .owner = THIS_MODULE, + .name = ZINITIX_DRIVER_NAME, + .pm = &zinitix_dev_pm_ops, + }, +}; + + +static int __devinit zinitix_touch_init(void) +{ + + m_isp_client = NULL; + return i2c_add_driver(&zinitix_touch_driver); +} + +static void __exit zinitix_touch_exit(void) +{ + i2c_del_driver(&zinitix_touch_driver); +} + +module_init(zinitix_touch_init); +module_exit(zinitix_touch_exit); + +MODULE_DESCRIPTION("zinitix touch-screen device driver using i2c interface"); +MODULE_AUTHOR("sohnet "); +MODULE_LICENSE("GPL"); + + diff --git a/drivers/input/touchscreen/zinitix_touch_bt404.h b/drivers/input/touchscreen/zinitix_touch_bt404.h new file mode 100644 index 00000000..24606777 --- /dev/null +++ b/drivers/input/touchscreen/zinitix_touch_bt404.h @@ -0,0 +1,222 @@ +/* + * + * Zinitix touch driver + * + * Copyright (C) 2009 Zinitix, 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 ZINITIX_HEADER +#define ZINITIX_HEADER + +#define TS_DRVIER_VERSION "3.0.24" + +#define MULTI_PROTOCOL_TYPE_B 0 + +#define USE_THREADED_IRQ 0 + +#define TOUCH_MODE 0 + +/* max 10 */ +#define MAX_SUPPORTED_FINGER_NUM 10 +#define REAL_SUPPORTED_FINGER_NUM 10 + + +/* max 8 */ +#define MAX_SUPPORTED_BUTTON_NUM 8 +#define SUPPORTED_BUTTON_NUM 0 + +/* Upgrade Method*/ +#define TOUCH_ONESHOT_UPGRADE 1 +/* if you use isp mode, you must add i2c device : +name = "zinitix_isp" , addr 0x50*/ + +/* resolution offset */ +#define ABS_PT_OFFSET 1 + +#define TOUCH_FORCE_UPGRADE 1 +#define USE_CHECKSUM 0 // BT4x3 only + +#define CHIP_POWER_OFF_DELAY 100 /*ms*/ +#define CHIP_POWER_OFF_AF_FZ_DELAY 250 /*ms*/ +#define CHIP_ON_DELAY 150 /*ms*/ +#define CHIP_ON_AF_FZ_DELAY 250 /*ms*/ +#define DELAY_FOR_SIGNAL_DELAY 30 /*us*/ +#define DELAY_FOR_TRANSCATION 50 +#define DELAY_FOR_POST_TRANSCATION 10 + + +#define FIRMWARE_VERSION_POS 0x6410 + +enum _zinitix_power_control { + POWER_OFF, + POWER_ON, + RESET_LOW, + RESET_HIGH, +}; + +/* Button Enum */ +enum _zinitix_button_event { + ICON_BUTTON_UNCHANGE, + ICON_BUTTON_DOWN, + ICON_BUTTON_UP, +}; + + +/* ESD Protection */ +/*second : if 0, no use. if you have to use, 3 is recommended*/ +#define ZINITIX_ESD_TIMER_INTERVAL 0 +#define ZINITIX_SCAN_RATE_HZ 60 +#define ZINITIX_CHECK_ESD_TIMER 2 + + +/*Test Mode (Monitoring Raw Data) */ +#define SEC_TOUCH_INFO_REPORT 0 //for samsung + +#define MAX_TEST_RAW_DATA 320 /* 20 x 16*/ +#define MAX_TEST_POINT_INFO 3 /* status register + x + y*/ +#define MAX_RAW_DATA \ + (MAX_TEST_RAW_DATA + MAX_TEST_POINT_INFO*MAX_SUPPORTED_FINGER_NUM + 2) +/* preriod raw data interval*/ +#define ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL 1 +#define TOUCH_TEST_RAW_MODE 51 +#define TOUCH_NORMAL_MODE 48 +#define TOUCH_ZINITIX_BASELINED_RAW_MODE 3 +#define TOUCH_ZINITIX_PROCESSED_RAW_MODE 4 +#define TOUCH_ZINITIX_CAL_N_MODE 8 + +struct _raw_ioctl { + int sz; + u8 *buf; +}; + +struct _reg_ioctl{ + int addr; + int *val; +} ; + + +/* Other Things */ +#define ZINITIX_INIT_RETRY_CNT 5 +#define I2C_SUCCESS 0 +#define I2C_FAIL 1 + + +/*---------------------------------------------------------------------*/ + +/* Register Map*/ +#define ZINITIX_SWRESET_CMD 0x0000 +#define ZINITIX_WAKEUP_CMD 0x0001 + +#define ZINITIX_IDLE_CMD 0x0004 +#define ZINITIX_SLEEP_CMD 0x0005 + +#define ZINITIX_CLEAR_INT_STATUS_CMD 0x0003 +#define ZINITIX_CALIBRATE_CMD 0x0006 +#define ZINITIX_SAVE_STATUS_CMD 0x0007 +#define ZINITIX_SAVE_CALIBRATION_CMD 0x0008 +#define ZINITIX_RECALL_FACTORY_CMD 0x000f + + +#define ZINITIX_TOUCH_MODE 0x0010 +#define ZINITIX_CHIP_REVISION 0x0011 +#define ZINITIX_FIRMWARE_VERSION 0x0012 +#define ZINITIX_DATA_VERSION_REG 0x0013 +#define ZINITIX_TSP_TYPE 0x0014 +#define ZINITIX_SUPPORTED_FINGER_NUM 0x0015 +#define ZINITIX_MAX_Y_NUM 0x0016 +#define ZINITIX_EEPROM_INFO 0x0018 +#define ZINITIX_CAL_N_TOTAL_NUM 0x001B + +#define ZINITIX_TOTAL_NUMBER_OF_X 0x0060 +#define ZINITIX_TOTAL_NUMBER_OF_Y 0x0061 + +#define ZINITIX_BUTTON_SUPPORTED_NUM 0x00B0 + + +#define ZINITIX_X_RESOLUTION 0x00C0 +#define ZINITIX_Y_RESOLUTION 0x00C1 + + +#define ZINITIX_POINT_STATUS_REG 0x0080 +#define ZINITIX_ICON_STATUS_REG 0x00A0 + +#define ZINITIX_RAWDATA_REG 0x0200 + +#define ZINITIX_EEPROM_INFO_REG 0x0018 + +#define ZINITIX_INT_ENABLE_FLAG 0x00f0 +#define ZINITIX_PERIODICAL_INTERRUPT_INTERVAL 0x00f1 + +#define ZINITIX_CHECK_REG0 0x00AC +#define ZINITIX_CHECK_REG1 0x00AD +#define ZINITIX_CHECK_REG2 0x00AE +#define ZINITIX_CHECK_REG3 0x00AF + + +/* Interrupt & status register flag bit +------------------------------------------------- +*/ +#define BIT_PT_CNT_CHANGE 0 +#define BIT_DOWN 1 +#define BIT_MOVE 2 +#define BIT_UP 3 +#define BIT_HOLD 4 +#define BIT_LONG_HOLD 5 +#define RESERVED_0 6 +#define RESERVED_1 7 +#define BIT_WEIGHT_CHANGE 8 +#define BIT_PT_NO_CHANGE 9 +#define BIT_REJECT 10 +#define BIT_PT_EXIST 11 +#define RESERVED_2 12 +#define RESERVED_3 13 +#define RESERVED_4 14 +#define BIT_ICON_EVENT 15 + +/* button */ +#define BIT_O_ICON0_DOWN 0 +#define BIT_O_ICON1_DOWN 1 +#define BIT_O_ICON2_DOWN 2 +#define BIT_O_ICON3_DOWN 3 +#define BIT_O_ICON4_DOWN 4 +#define BIT_O_ICON5_DOWN 5 +#define BIT_O_ICON6_DOWN 6 +#define BIT_O_ICON7_DOWN 7 + +#define BIT_O_ICON0_UP 8 +#define BIT_O_ICON1_UP 9 +#define BIT_O_ICON2_UP 10 +#define BIT_O_ICON3_UP 11 +#define BIT_O_ICON4_UP 12 +#define BIT_O_ICON5_UP 13 +#define BIT_O_ICON6_UP 14 +#define BIT_O_ICON7_UP 15 + + +#define SUB_BIT_EXIST 0 +#define SUB_BIT_DOWN 1 +#define SUB_BIT_MOVE 2 +#define SUB_BIT_UP 3 +#define SUB_BIT_UPDATE 4 +#define SUB_BIT_WAIT 5 + + +#define zinitix_bit_set(val, n) ((val) &= ~(1<<(n)), (val) |= (1<<(n))) +#define zinitix_bit_clr(val, n) ((val) &= ~(1<<(n))) +#define zinitix_bit_test(val, n) ((val) & (1<<(n))) +#define zinitix_swap_v(a, b, t) ((t) = (a), (a) = (b), (b) = (t)) +#define zinitix_swap_16(s) (((((s) & 0xff) << 8) | (((s) >> 8) & 0xff))) + +#endif /*ZINITIX_HEADER*/ + + diff --git a/drivers/input/touchscreen/zinitix_touch_bt4x3_firmware.h b/drivers/input/touchscreen/zinitix_touch_bt4x3_firmware.h new file mode 100644 index 00000000..251dc737 --- /dev/null +++ b/drivers/input/touchscreen/zinitix_touch_bt4x3_firmware.h @@ -0,0 +1,4126 @@ +/* +* +* Zinitix touch driver +* +* Copyright (C) 2009 Zinitix, 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. +* +*/ +/* +Release Date : 12/03/21, 10:08 + +Version Info : + Firmware Version : 0x0088 + Register Version : 7 +*/ +#ifndef _ZINITIX_BT4x3_CODE_H +#define _ZINITIX_BT4x3_CODE_H + +u8 m_firmware_data[] = { +0x88, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x0F, 0x88, 0x20, 0x00, 0x0F, 0x88, +0x00, 0x04, 0x0F, 0x88, 0x7B, 0x00, 0x0F, 0x88, +0x7B, 0x00, 0x0F, 0x88, 0x7B, 0x00, 0x0F, 0x88, +0x7B, 0x00, 0x0F, 0x88, 0x7B, 0x00, 0x0F, 0x88, +0x7B, 0x00, 0x0F, 0x88, 0x7B, 0x00, 0x0F, 0x88, +0x7B, 0x00, 0x0F, 0x88, 0x7B, 0x00, 0x0F, 0x88, +0x7B, 0x00, 0x0F, 0x88, 0x7B, 0x00, 0x0F, 0x88, +0x7B, 0x00, 0xF0, 0x1A, 0xFF, 0x0F, 0x00, 0x0E, +0x08, 0xF3, 0xA0, 0x1A, 0xFF, 0x0F, 0xA0, 0x0B, +0xA1, 0x39, 0xD5, 0x87, 0x0F, 0x98, 0x0D, 0x01, +0xC0, 0x03, 0x0D, 0x00, 0xC0, 0x51, 0x00, 0x98, +0xDC, 0x00, 0xFF, 0xFF, 0x00, 0x1A, 0xE0, 0x3F, +0x00, 0x0D, 0x05, 0xF3, 0xAF, 0x80, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x0F, 0x98, 0x95, 0x01, 0x00, 0x0E, +0x2B, 0x0E, 0x00, 0x0E, 0x03, 0xF0, 0x00, 0x1A, +0xFF, 0xFF, 0x03, 0xC9, 0x00, 0x0D, 0x02, 0xF0, +0x00, 0x0E, 0x00, 0xF0, 0xFF, 0xFF, 0x00, 0x03, +0x55, 0x00, 0x00, 0x4A, 0x14, 0x00, 0x2D, 0x80, +0x0F, 0x0E, 0x55, 0x00, 0x00, 0x49, 0x2A, 0x80, +0x0F, 0x0E, 0x55, 0x00, 0x00, 0x03, 0x56, 0x00, +0x00, 0x4A, 0x10, 0x00, 0x2D, 0x80, 0x08, 0x0E, +0x56, 0x00, 0x00, 0x49, 0x2A, 0x80, 0x08, 0x0E, +0x56, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x4A, +0xA0, 0x00, 0x4D, 0x80, 0x10, 0x1A, 0xA0, 0x00, +0x01, 0x0D, 0x10, 0x00, 0x00, 0x49, 0x4A, 0x80, +0x10, 0x1A, 0xA0, 0x00, 0x01, 0x0D, 0x10, 0x00, +0x90, 0x03, 0x00, 0xF2, 0x09, 0x0D, 0x0F, 0x00, +0x0F, 0x98, 0x3B, 0x04, 0x0F, 0x88, 0xE3, 0x05, +0xFF, 0xFF, 0xEF, 0x87, 0xA0, 0x4A, 0x00, 0x32, +0x01, 0x88, 0xDE, 0x05, 0xFF, 0xFF, 0xC0, 0x4A, +0x07, 0x0F, 0x21, 0x80, 0xA0, 0x1A, 0xC0, 0x3F, +0x03, 0x0E, 0x08, 0xF3, 0x0A, 0x0D, 0x05, 0xF3, +0x0C, 0x0D, 0x06, 0xF3, 0x0F, 0x98, 0x01, 0x01, +0xFF, 0xFF, 0xA0, 0x22, 0x20, 0x00, 0xC0, 0x22, +0x20, 0x00, 0xB0, 0x3A, 0x20, 0x00, 0xB0, 0x49, +0x1A, 0x87, 0x00, 0x1A, 0xE0, 0x3F, 0x00, 0x0D, +0x05, 0xF3, 0x00, 0x0E, 0x08, 0xF3, 0x0F, 0x88, +0xDE, 0x05, 0x03, 0x0E, 0x08, 0xF3, 0x0A, 0x0D, +0x05, 0xF3, 0x0C, 0x0D, 0x06, 0xF3, 0xB1, 0x39, +0x0B, 0x0D, 0x04, 0xF3, 0x0F, 0x98, 0xFE, 0x00, +0x00, 0x1A, 0xE0, 0x3F, 0x00, 0x0D, 0x05, 0xF3, +0x00, 0x0E, 0x08, 0xF3, 0x0F, 0x98, 0x5B, 0x01, +0xFF, 0xA0, 0xA0, 0x1A, 0x00, 0x38, 0xC0, 0x1A, +0x75, 0x07, 0xB0, 0x03, 0x10, 0x00, 0x2F, 0x84, +0xA0, 0x4A, 0x00, 0x32, 0x01, 0x88, 0xDE, 0x05, +0xFF, 0xFF, 0x03, 0x0E, 0x0E, 0xF3, 0x95, 0x19, +0xA0, 0x1A, 0x00, 0x90, 0xB0, 0x1A, 0x00, 0x38, +0x0A, 0x0D, 0x06, 0xF3, 0x0B, 0x0D, 0x05, 0xF3, +0x0F, 0x98, 0x01, 0x01, 0xFF, 0xFF, 0xA0, 0x22, +0x20, 0x00, 0xB0, 0x22, 0x20, 0x00, 0x91, 0x39, +0x31, 0x87, 0x00, 0x1A, 0xE0, 0x3F, 0x00, 0x0D, +0x05, 0xF3, 0x02, 0x0E, 0x0E, 0xF3, 0x0F, 0x88, +0xDE, 0x05, 0xA0, 0x1A, 0x00, 0x38, 0xC0, 0x1A, +0x75, 0x07, 0xB0, 0x03, 0x10, 0x00, 0x0F, 0x88, +0xA0, 0x00, 0x03, 0x0E, 0x0E, 0xF3, 0x00, 0x1A, +0x00, 0x38, 0x00, 0x0D, 0x05, 0xF3, 0x00, 0x1A, +0x00, 0x90, 0x00, 0x0D, 0x06, 0xF3, 0x00, 0x03, +0x10, 0x00, 0xFF, 0xFF, 0x01, 0x39, 0x00, 0x0D, +0x04, 0xF3, 0x0F, 0x98, 0xFE, 0x00, 0x00, 0x1A, +0xE0, 0x3F, 0x00, 0x0D, 0x05, 0xF3, 0x02, 0x0E, +0x0E, 0xF3, 0x0F, 0x88, 0xDE, 0x05, 0x01, 0x0E, +0x00, 0xF3, 0x7F, 0x80, 0x00, 0x03, 0x2B, 0x0E, +0x01, 0x49, 0xF1, 0xA0, 0xFF, 0xFF, 0x01, 0x0E, +0x01, 0xF3, 0x00, 0x03, 0x00, 0xF3, 0x00, 0x51, +0xC1, 0x87, 0xFF, 0xA0, 0x03, 0x0E, 0x08, 0xF3, +0x00, 0x1A, 0x00, 0x32, 0x00, 0x0D, 0x05, 0xF3, +0x00, 0x19, 0x00, 0x0D, 0x06, 0xF3, 0x00, 0x19, +0x10, 0x1A, 0xE9, 0x01, 0x10, 0x38, 0x01, 0x0D, +0x04, 0xF3, 0x01, 0x0E, 0x00, 0xF3, 0x00, 0x03, +0x00, 0xF3, 0x00, 0x51, 0xC1, 0x87, 0x00, 0x1A, +0xE0, 0x3F, 0x00, 0x0D, 0x05, 0xF3, 0x00, 0x0E, +0x08, 0xF3, 0xB0, 0x1A, 0x14, 0x00, 0xA0, 0x1A, +0x75, 0x00, 0xA0, 0x0B, 0xA1, 0x21, 0xB1, 0x39, +0xC1, 0x87, 0x0F, 0x98, 0x33, 0x01, 0xFF, 0xA0, +0x00, 0x0E, 0x04, 0xF9, 0x00, 0x0E, 0x05, 0xF9, +0x00, 0x0E, 0x06, 0xF9, 0x00, 0x0E, 0x07, 0xF9, +0x40, 0x1A, 0xE9, 0x01, 0x41, 0x39, 0x00, 0x03, +0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, 0x00, 0x0D, +0x04, 0xF9, 0x01, 0x0D, 0x05, 0xF9, 0x24, 0x00, +0x02, 0x0D, 0x06, 0xF9, 0x00, 0x0E, 0x07, 0xF9, +0x41, 0x39, 0x40, 0x49, 0x0B, 0x87, 0x00, 0x03, +0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, 0x00, 0x0D, +0xA1, 0x00, 0x01, 0x0D, 0xA2, 0x00, 0x00, 0x0D, +0x03, 0x0F, 0x01, 0x0D, 0x04, 0x0F, 0xFF, 0xA0, +0x00, 0x0E, 0x04, 0xF9, 0x00, 0x0E, 0x05, 0xF9, +0x00, 0x0E, 0x06, 0xF9, 0x00, 0x0E, 0x07, 0xF9, +0x50, 0x1A, 0x75, 0x07, 0x40, 0x03, 0x10, 0x00, +0x00, 0x03, 0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, +0x00, 0x0D, 0x04, 0xF9, 0x01, 0x0D, 0x05, 0xF9, +0x25, 0x00, 0x02, 0x0D, 0x06, 0xF9, 0x00, 0x0E, +0x07, 0xF9, 0x51, 0x21, 0x41, 0x39, 0x01, 0x87, +0x00, 0x03, 0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, +0x00, 0x0D, 0x05, 0x0F, 0x01, 0x0D, 0x06, 0x0F, +0x20, 0x03, 0xA1, 0x00, 0x30, 0x03, 0xA2, 0x00, +0x00, 0x0D, 0x04, 0xF9, 0x01, 0x0D, 0x05, 0xF9, +0x02, 0x0D, 0x06, 0xF9, 0x03, 0x0D, 0x07, 0xF9, +0xFF, 0xFF, 0x00, 0x03, 0x03, 0xF9, 0x10, 0x03, +0x04, 0xF9, 0x00, 0x0D, 0xA1, 0x00, 0x01, 0x0D, +0xA2, 0x00, 0xFF, 0xA0, 0x00, 0x0E, 0x04, 0xF9, +0x00, 0x0E, 0x05, 0xF9, 0x00, 0x0E, 0x06, 0xF9, +0x00, 0x0E, 0x07, 0xF9, 0x90, 0x1A, 0x90, 0x01, +0x80, 0x19, 0x03, 0x0E, 0x08, 0xF3, 0x08, 0x18, +0x05, 0x7B, 0x00, 0x0D, 0x05, 0xF3, 0x00, 0x1A, +0x0D, 0x0F, 0x00, 0x0D, 0x06, 0xF3, 0x10, 0x1A, +0x1F, 0x00, 0x01, 0x0D, 0x04, 0xF3, 0x01, 0x0E, +0x00, 0xF3, 0x00, 0x03, 0x00, 0xF3, 0x00, 0x51, +0xC1, 0x87, 0x00, 0x1A, 0xE0, 0x3F, 0x00, 0x0D, +0x05, 0xF3, 0x00, 0x0E, 0x08, 0xF3, 0x40, 0x1A, +0x20, 0x00, 0x50, 0x1A, 0x0D, 0x0F, 0x00, 0x03, +0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, 0x00, 0x0D, +0x04, 0xF9, 0x01, 0x0D, 0x05, 0xF9, 0x25, 0x00, +0x02, 0x0D, 0x06, 0xF9, 0x00, 0x0E, 0x07, 0xF9, +0x51, 0x21, 0x41, 0x39, 0x01, 0x87, 0x81, 0x21, +0x91, 0x39, 0xF1, 0x84, 0x00, 0x03, 0x03, 0xF9, +0x10, 0x03, 0x04, 0xF9, 0x20, 0x03, 0xA1, 0x00, +0x30, 0x03, 0xA2, 0x00, 0x00, 0x0D, 0x01, 0x0F, +0x01, 0x0D, 0x02, 0x0F, 0x00, 0x0D, 0x04, 0xF9, +0x01, 0x0D, 0x05, 0xF9, 0x02, 0x0D, 0x06, 0xF9, +0x03, 0x0D, 0x07, 0xF9, 0xFF, 0xFF, 0x00, 0x03, +0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, 0x00, 0x0D, +0xA1, 0x00, 0x01, 0x0D, 0xA2, 0x00, 0x03, 0x0E, +0x08, 0xF3, 0x00, 0x1A, 0xC0, 0x3F, 0x00, 0x0D, +0x05, 0xF3, 0x00, 0x1A, 0x07, 0x0F, 0x00, 0x0D, +0x06, 0xF3, 0x10, 0x1A, 0x1F, 0x00, 0x01, 0x0D, +0x04, 0xF3, 0x01, 0x0E, 0x00, 0xF3, 0x00, 0x03, +0x00, 0xF3, 0x00, 0x51, 0xC1, 0x87, 0x00, 0x1A, +0xE0, 0x3F, 0x00, 0x0D, 0x05, 0xF3, 0x00, 0x0E, +0x08, 0xF3, 0x00, 0x03, 0x0D, 0x00, 0x00, 0x51, +0x90, 0x80, 0xA0, 0x1A, 0x07, 0x0F, 0x00, 0x03, +0x01, 0x0F, 0xA0, 0x08, 0xA1, 0x21, 0x00, 0x03, +0x02, 0x0F, 0xA0, 0x08, 0x00, 0x0E, 0x04, 0xF9, +0x00, 0x0E, 0x05, 0xF9, 0x00, 0x0E, 0x06, 0xF9, +0x00, 0x0E, 0x07, 0xF9, 0x43, 0x19, 0x50, 0x1A, +0x07, 0x0F, 0x00, 0x03, 0x03, 0xF9, 0x10, 0x03, +0x04, 0xF9, 0x00, 0x0D, 0x04, 0xF9, 0x01, 0x0D, +0x05, 0xF9, 0x25, 0x00, 0x02, 0x0D, 0x06, 0xF9, +0x51, 0x21, 0x35, 0x00, 0x03, 0x0D, 0x07, 0xF9, +0x51, 0x21, 0x41, 0x39, 0xE1, 0x86, 0x00, 0x03, +0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, 0x00, 0x0D, +0xA3, 0x00, 0x01, 0x0D, 0xA4, 0x00, 0xFF, 0xA0, +0x00, 0x0E, 0xA1, 0x00, 0x00, 0x0E, 0xA2, 0x00, +0x00, 0x0E, 0xA3, 0x00, 0x00, 0x0E, 0xA4, 0x00, +0x10, 0x1A, 0x20, 0x00, 0x00, 0x1A, 0x75, 0x00, +0x00, 0x0B, 0x01, 0x21, 0x11, 0x39, 0xC1, 0x87, +0xFF, 0xA0, 0x00, 0x0E, 0x04, 0xF9, 0x00, 0x0E, +0x05, 0xF9, 0x00, 0x0E, 0x06, 0xF9, 0x00, 0x0E, +0x07, 0xF9, 0x50, 0x19, 0x40, 0x1A, 0xE9, 0x01, +0x45, 0x38, 0x00, 0x03, 0x03, 0xF9, 0x10, 0x03, +0x04, 0xF9, 0x00, 0x0D, 0x04, 0xF9, 0x01, 0x0D, +0x05, 0xF9, 0x25, 0x00, 0x02, 0x0D, 0x06, 0xF9, +0x00, 0x0E, 0x07, 0xF9, 0x51, 0x21, 0x41, 0x39, +0x01, 0x87, 0x00, 0x03, 0x03, 0xF9, 0x10, 0x03, +0x04, 0xF9, 0xA0, 0x1A, 0x07, 0x0F, 0xA2, 0x21, +0xA0, 0x08, 0xA1, 0x21, 0xA1, 0x08, 0x00, 0x0E, +0x04, 0xF9, 0x00, 0x0E, 0x05, 0xF9, 0x00, 0x0E, +0x06, 0xF9, 0x00, 0x0E, 0x07, 0xF9, 0x50, 0x1A, +0x75, 0x07, 0x40, 0x03, 0x10, 0x00, 0x00, 0x03, +0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, 0x00, 0x0D, +0x04, 0xF9, 0x01, 0x0D, 0x05, 0xF9, 0x25, 0x00, +0x02, 0x0D, 0x06, 0xF9, 0x00, 0x0E, 0x07, 0xF9, +0x51, 0x21, 0x41, 0x39, 0x01, 0x87, 0x00, 0x03, +0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, 0xA0, 0x1A, +0x07, 0x0F, 0xA4, 0x21, 0xA0, 0x08, 0xA1, 0x21, +0xA1, 0x08, 0xA1, 0x21, 0x90, 0x1A, 0x03, 0x0F, +0x09, 0x00, 0xA0, 0x08, 0x91, 0x21, 0xA1, 0x21, +0x09, 0x00, 0xA0, 0x08, 0x91, 0x21, 0xA1, 0x21, +0x09, 0x00, 0xA0, 0x08, 0x91, 0x21, 0xA1, 0x21, +0x09, 0x00, 0xA0, 0x08, 0xFF, 0xA0, 0x0F, 0x98, +0x61, 0x0C, 0x0F, 0x98, 0x59, 0x08, 0x0F, 0x98, +0xD7, 0x02, 0x00, 0x0E, 0x07, 0xF3, 0x02, 0x0E, +0x01, 0xFF, 0x02, 0x0E, 0x05, 0xFF, 0x01, 0x0E, +0x07, 0xF5, 0x00, 0x1A, 0x00, 0x20, 0x00, 0x0D, +0x01, 0xF2, 0xA0, 0x1A, 0x10, 0x00, 0x01, 0x0E, +0x02, 0xFF, 0xA1, 0x39, 0xE1, 0x87, 0x00, 0x19, +0x00, 0x0D, 0x01, 0xF2, 0xA0, 0x1A, 0x00, 0x02, +0xA1, 0x39, 0xE1, 0x87, 0x01, 0x0E, 0x07, 0xF3, +0xA0, 0x1A, 0x00, 0x02, 0xA1, 0x39, 0xE1, 0x87, +0x00, 0x0E, 0x07, 0xF5, 0x0F, 0x98, 0xDE, 0x08, +0x00, 0x0E, 0xFB, 0x01, 0x0F, 0x88, 0xDE, 0x05, +0x00, 0x0E, 0x10, 0xF8, 0x00, 0x0E, 0x11, 0xF8, +0x00, 0x0E, 0x40, 0xF8, 0x00, 0x0E, 0x28, 0xF8, +0x00, 0x0E, 0x28, 0xF8, 0x00, 0x0E, 0x49, 0xF8, +0x00, 0x0E, 0x4B, 0xF8, 0x00, 0x0E, 0x29, 0xF8, +0x0F, 0x88, 0xDE, 0x05, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFE, 0x10, 0xFD, 0x10, 0xFC, 0x10, +0xFB, 0x10, 0xFA, 0x10, 0xF9, 0x10, 0xF8, 0x10, +0xF7, 0x10, 0xF6, 0x10, 0xF5, 0x10, 0xF4, 0x10, +0xF3, 0x10, 0xF2, 0x10, 0xF1, 0x10, 0xF0, 0x10, +0x50, 0x03, 0x01, 0xF5, 0x50, 0x51, 0xA1, 0x80, +0x0F, 0x98, 0xFA, 0x04, 0xB1, 0x49, 0xAD, 0x80, +0xB0, 0x4A, 0x10, 0x00, 0x7A, 0x80, 0x0F, 0x98, +0x3A, 0x05, 0x4F, 0x80, 0x00, 0x1A, 0x31, 0x00, +0x00, 0x0D, 0x00, 0xF5, 0x00, 0x03, 0x03, 0xF0, +0x03, 0xC9, 0x00, 0x0D, 0x03, 0xF0, 0x0F, 0x11, +0x1F, 0x11, 0x2F, 0x11, 0x3F, 0x11, 0x4F, 0x11, +0x5F, 0x11, 0x6F, 0x11, 0x7F, 0x11, 0x8F, 0x11, +0x9F, 0x11, 0xAF, 0x11, 0xBF, 0x11, 0xCF, 0x11, +0xDF, 0x11, 0xEF, 0x11, 0xFF, 0xFF, 0x3F, 0xA8, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x00, 0x1A, 0x40, 0x00, 0x00, 0x0D, 0x03, 0xF5, +0x00, 0x0E, 0x05, 0xF5, 0x00, 0x1A, 0xFF, 0x07, +0x00, 0x0D, 0x06, 0xF5, 0x00, 0x03, 0x01, 0xF5, +0x00, 0x0E, 0x01, 0xF5, 0x00, 0x1A, 0x31, 0x00, +0x00, 0x0D, 0x00, 0xF5, 0x01, 0x0E, 0x09, 0xF3, +0x01, 0x0E, 0x0A, 0xF3, 0x00, 0x19, 0x00, 0x0D, +0x0A, 0xF5, 0x00, 0x03, 0x09, 0xF5, 0x00, 0xC9, +0x00, 0x0D, 0x09, 0xF5, 0x10, 0x03, 0x08, 0xF5, +0x10, 0xC9, 0x01, 0x0D, 0x08, 0xF5, 0xFF, 0xA0, +0x00, 0x03, 0x00, 0xF5, 0x00, 0x51, 0xC1, 0x87, +0xFF, 0xA0, 0x00, 0x03, 0x09, 0xF5, 0x00, 0x51, +0xC1, 0x87, 0xFF, 0xA0, 0x00, 0x03, 0x05, 0x00, +0x00, 0x49, 0x00, 0x98, 0xF5, 0x06, 0xFF, 0xFF, +0x00, 0x0E, 0xFA, 0x01, 0x00, 0x03, 0x09, 0xF5, +0x00, 0xC1, 0x00, 0x0D, 0x09, 0xF5, 0xFF, 0xA0, +0x00, 0x03, 0x09, 0xF5, 0x00, 0xC9, 0x00, 0x0D, +0x09, 0xF5, 0xFF, 0xA0, 0x01, 0x0E, 0x09, 0xF3, +0x00, 0x1A, 0x91, 0x00, 0x00, 0x0D, 0x00, 0xF5, +0xFF, 0xA0, 0x0F, 0x98, 0x63, 0x04, 0x00, 0x0E, +0x09, 0xF3, 0xA0, 0x1A, 0x00, 0x40, 0x0B, 0x00, +0xA0, 0x08, 0xA1, 0x21, 0xB1, 0x21, 0x91, 0x39, +0xA1, 0x87, 0x01, 0x0E, 0x09, 0xF3, 0xFF, 0xA0, +0x0F, 0x98, 0x63, 0x04, 0x00, 0x0E, 0x09, 0xF3, +0xA0, 0x1A, 0x00, 0x40, 0x0B, 0x00, 0xA0, 0x08, +0xA1, 0x21, 0xB1, 0x21, 0x91, 0x39, 0xA1, 0x87, +0x93, 0x19, 0x30, 0x03, 0x0A, 0x00, 0xFF, 0xFF, +0x93, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x90, 0x1E, 0x92, 0x21, 0x00, 0x03, 0x8B, 0x0B, +0x10, 0x03, 0xE5, 0x00, 0xFF, 0xFF, 0x01, 0x60, +0x41, 0x80, 0xA0, 0x0B, 0x01, 0x0E, 0x09, 0xF3, +0xFF, 0xA0, 0xB0, 0x1A, 0x75, 0x00, 0x0B, 0x00, +0xA0, 0x08, 0xA1, 0x21, 0xB1, 0x21, 0x91, 0x39, +0xA1, 0x87, 0x01, 0x0E, 0x09, 0xF3, 0xFF, 0xA0, +0x0F, 0x98, 0x63, 0x04, 0x00, 0x0E, 0x09, 0xF3, +0xA0, 0x1A, 0x00, 0x40, 0x0B, 0x00, 0xA0, 0x08, +0xA1, 0x21, 0xB1, 0x21, 0x91, 0x39, 0xA1, 0x87, +0xB0, 0x1A, 0x8B, 0x0B, 0x0B, 0x00, 0xA0, 0x08, +0xA1, 0x21, 0xB0, 0x1A, 0x77, 0x00, 0x0B, 0x00, +0xA0, 0x08, 0xA1, 0x21, 0xB1, 0x21, 0x0B, 0x00, +0xA0, 0x08, 0x01, 0x0E, 0x09, 0xF3, 0xFF, 0xA0, +0x0F, 0x98, 0x63, 0x04, 0x00, 0x0E, 0x09, 0xF3, +0xA0, 0x1A, 0x00, 0x40, 0x0A, 0x00, 0xB0, 0x08, +0xA1, 0x21, 0xB1, 0x21, 0x91, 0x39, 0xA1, 0x87, +0x01, 0x0E, 0x09, 0xF3, 0xFF, 0xA0, 0x01, 0x0E, +0x2D, 0x0F, 0x00, 0x0E, 0xFB, 0x01, 0x00, 0x03, +0x70, 0x00, 0x00, 0x0D, 0xFC, 0x01, 0x0F, 0x98, +0xA2, 0x0F, 0x0F, 0x88, 0x7B, 0x04, 0xB0, 0x03, +0x06, 0xF5, 0x2B, 0x18, 0xB1, 0x49, 0xFD, 0xA0, +0xFF, 0xFF, 0xB0, 0x4A, 0x10, 0x00, 0xFB, 0xA0, +0xFF, 0xFF, 0x21, 0x79, 0x02, 0x0D, 0x01, 0x02, +0x10, 0x1A, 0x10, 0xF5, 0x30, 0x1A, 0xEA, 0x01, +0x41, 0x00, 0x40, 0x62, 0xFF, 0x00, 0x11, 0x21, +0x51, 0x00, 0xFF, 0xFF, 0x58, 0x7B, 0x54, 0x68, +0x35, 0x08, 0x11, 0x21, 0x31, 0x21, 0x21, 0x39, +0x31, 0x87, 0xFF, 0xA0, 0x10, 0x20, 0x30, 0x03, +0x01, 0x02, 0x31, 0x49, 0x11, 0x81, 0x30, 0x1A, +0x10, 0xF5, 0x28, 0x19, 0x01, 0x00, 0x00, 0x62, +0xFF, 0x00, 0x30, 0x08, 0x31, 0x21, 0x01, 0x00, +0xFF, 0xFF, 0x08, 0x79, 0x30, 0x08, 0x31, 0x21, +0x11, 0x21, 0x21, 0x39, 0x31, 0x87, 0xFF, 0xA0, +0x30, 0x03, 0x01, 0x02, 0x32, 0x49, 0xF1, 0xA0, +0xFF, 0xFF, 0x30, 0x1A, 0xEA, 0x01, 0x31, 0x21, +0x03, 0x00, 0x10, 0x08, 0xFF, 0xA0, 0x30, 0x1A, +0xEA, 0x01, 0x03, 0x00, 0x00, 0x4A, 0x80, 0x00, +0xDC, 0x80, 0x00, 0x4A, 0x9F, 0x00, 0xAA, 0x80, +0xA0, 0x03, 0x05, 0x00, 0xA0, 0x49, 0x00, 0x88, +0x81, 0x04, 0x10, 0x1A, 0x75, 0x00, 0x00, 0x3A, +0x80, 0x00, 0xCF, 0x84, 0x00, 0x4A, 0x00, 0x02, +0x00, 0x88, 0x81, 0x04, 0x00, 0x49, 0x00, 0x88, +0xEE, 0x04, 0x01, 0x49, 0x00, 0x88, 0xEE, 0x04, +0x03, 0x49, 0x00, 0x88, 0x7B, 0x04, 0x04, 0x49, +0x41, 0x80, 0x01, 0x0E, 0xFB, 0x01, 0x0F, 0x88, +0x7B, 0x04, 0x05, 0x49, 0x41, 0x80, 0x01, 0x0E, +0xFB, 0x01, 0x0F, 0x88, 0x7B, 0x04, 0x06, 0x49, +0x41, 0x80, 0x01, 0x0E, 0xFD, 0x01, 0x0F, 0x88, +0x7B, 0x04, 0x08, 0x49, 0xD1, 0x80, 0xA0, 0x1A, +0x00, 0x32, 0x0F, 0x98, 0xBB, 0x00, 0xA0, 0x03, +0x0D, 0x00, 0xA2, 0xC9, 0xA1, 0xC9, 0x0A, 0x0D, +0x0D, 0x00, 0x01, 0x0E, 0x2B, 0x0E, 0x7F, 0x80, +0x07, 0x49, 0xE1, 0x81, 0xC0, 0x03, 0x0D, 0x00, +0xC1, 0xC9, 0x0C, 0x0D, 0x0D, 0x00, 0xA0, 0x1A, +0x00, 0x32, 0xC0, 0x19, 0xB0, 0x1A, 0x41, 0x01, +0xBC, 0x38, 0x0F, 0x98, 0x3B, 0x02, 0x0F, 0x98, +0x7D, 0x00, 0xFF, 0xFF, 0x0F, 0x98, 0x4C, 0x02, +0xA0, 0x1A, 0x00, 0x32, 0xC0, 0x1A, 0x07, 0x0F, +0xB0, 0x1A, 0x20, 0x00, 0x0F, 0x98, 0x82, 0x00, +0x00, 0x0E, 0x2B, 0x0E, 0x0F, 0x88, 0x7B, 0x04, +0x0F, 0x49, 0x00, 0x88, 0x7B, 0x04, 0x00, 0x03, +0xEA, 0x01, 0x00, 0x4A, 0xD0, 0x01, 0xFB, 0xA0, +0xFF, 0xFF, 0x20, 0x03, 0x05, 0x00, 0x02, 0x0D, +0xFC, 0x0D, 0x15, 0x19, 0x00, 0x3A, 0x10, 0x00, +0x0F, 0x98, 0x19, 0x05, 0x90, 0x03, 0x01, 0x02, +0x91, 0x49, 0xFD, 0xA0, 0xFF, 0xFF, 0x00, 0x03, +0xEA, 0x01, 0x00, 0x4A, 0x10, 0x00, 0x11, 0x81, +0x0F, 0x98, 0x7B, 0x04, 0x00, 0x03, 0x05, 0x00, +0x05, 0x49, 0x3D, 0x80, 0x02, 0x0E, 0xFD, 0x01, +0xFF, 0xA0, 0x00, 0x03, 0xFC, 0x0D, 0x05, 0x49, +0xFD, 0xA0, 0xFF, 0xFF, 0x02, 0x0E, 0xFD, 0x01, +0xFF, 0xA0, 0x00, 0x4A, 0x60, 0x00, 0x7C, 0x80, +0x00, 0x4A, 0x7F, 0x00, 0x4A, 0x80, 0x02, 0x0E, +0xFD, 0x01, 0x0F, 0x88, 0x7B, 0x04, 0x00, 0x4A, +0x00, 0x01, 0xFC, 0xA0, 0xFF, 0xFF, 0x00, 0x4A, +0x4F, 0x01, 0xFA, 0xA0, 0xFF, 0xFF, 0x02, 0x0E, +0xFD, 0x01, 0x0F, 0x88, 0x7B, 0x04, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x0F, 0x98, 0x59, 0x08, 0x00, 0x03, 0x0E, 0x00, +0x00, 0x0D, 0x05, 0x00, 0x0F, 0x98, 0xD4, 0x0F, +0x0F, 0x98, 0x66, 0x0C, 0x0F, 0x98, 0x7B, 0x04, +0x00, 0x0E, 0xFD, 0x01, 0x0F, 0x98, 0xDE, 0x08, +0x0F, 0x98, 0x48, 0x09, 0x00, 0x03, 0x70, 0x00, +0x00, 0x0D, 0xFC, 0x01, 0x0F, 0x98, 0x3D, 0x0A, +0x00, 0x0E, 0x05, 0xF8, 0x0F, 0x98, 0x40, 0x0C, +0x0F, 0x98, 0x61, 0x0C, 0x0F, 0x98, 0xA2, 0x0F, +0xA0, 0x03, 0x21, 0x01, 0xB0, 0x03, 0x0C, 0x00, +0xBF, 0x51, 0x10, 0x80, 0xA1, 0x19, 0x0A, 0x0D, +0xFE, 0x0D, 0x0F, 0x98, 0x35, 0x0C, 0x00, 0x03, +0xFB, 0x01, 0x01, 0x49, 0x00, 0x98, 0xAA, 0x02, +0xFF, 0xFF, 0x00, 0x03, 0xFE, 0x01, 0x00, 0x49, +0x61, 0x87, 0x00, 0x03, 0xFD, 0x01, 0x01, 0x49, +0x00, 0x88, 0xC5, 0x06, 0x02, 0x49, 0xA0, 0x84, +0x00, 0x03, 0x05, 0x00, 0x05, 0x49, 0x0D, 0x81, +0x00, 0x4A, 0x33, 0x00, 0x40, 0x82, 0x09, 0x49, +0xB0, 0x80, 0x08, 0x49, 0x00, 0x82, 0x0C, 0x49, +0x00, 0x88, 0x92, 0x06, 0x0D, 0x49, 0x00, 0x88, +0x92, 0x06, 0x0A, 0x49, 0x01, 0x88, 0xB0, 0x06, +0x00, 0x03, 0x05, 0x00, 0x0A, 0x49, 0x71, 0x80, +0x00, 0x03, 0x8B, 0x0B, 0x0B, 0x51, 0x01, 0x98, +0x00, 0x07, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x03, +0x05, 0x00, 0x03, 0x49, 0x8B, 0x80, 0x00, 0x03, +0x8B, 0x0B, 0x10, 0x03, 0xE5, 0x00, 0xFF, 0xFF, +0x01, 0x60, 0x01, 0x98, 0x00, 0x07, 0xFF, 0xFF, +0x0F, 0x98, 0x87, 0x08, 0x00, 0x03, 0x05, 0x00, +0x00, 0x4A, 0x33, 0x00, 0xA1, 0x81, 0x00, 0x03, +0xE6, 0x00, 0x00, 0x49, 0x80, 0x83, 0x00, 0x03, +0xE6, 0x00, 0x10, 0x03, 0xFA, 0x01, 0xFF, 0xFF, +0x11, 0x21, 0x01, 0x0D, 0xFA, 0x01, 0x10, 0x48, +0xEC, 0x82, 0x0F, 0x98, 0x68, 0x04, 0xB0, 0x1A, +0x32, 0x06, 0x90, 0x03, 0x46, 0x02, 0xFF, 0xFF, +0x0F, 0x98, 0xC3, 0x04, 0x0F, 0x98, 0x6D, 0x04, +0x2F, 0x82, 0x00, 0x03, 0x05, 0x00, 0x03, 0x49, +0xEB, 0x81, 0x00, 0x03, 0xE6, 0x00, 0x00, 0x49, +0xA0, 0x81, 0x00, 0x03, 0xE6, 0x00, 0x10, 0x03, +0xFA, 0x01, 0xFF, 0xFF, 0x11, 0x21, 0x01, 0x0D, +0xFA, 0x01, 0x10, 0x48, 0x0C, 0x81, 0x30, 0x1A, +0x75, 0x00, 0x30, 0x0B, 0x31, 0x21, 0x00, 0x1A, +0x64, 0x64, 0x30, 0x08, 0x0F, 0x98, 0x68, 0x04, +0xB0, 0x1A, 0x75, 0x00, 0x92, 0x19, 0x0F, 0x98, +0x88, 0x04, 0x0F, 0x98, 0x6D, 0x04, 0x00, 0x03, +0x05, 0x00, 0x03, 0x49, 0xD0, 0x80, 0x04, 0x49, +0xB0, 0x80, 0x05, 0x49, 0x90, 0x80, 0x08, 0x49, +0x70, 0x80, 0x09, 0x49, 0x70, 0x80, 0x0C, 0x49, +0x30, 0x80, 0x0D, 0x49, 0x10, 0x80, 0x2F, 0x80, +0x0F, 0x98, 0x14, 0x07, 0x0F, 0x98, 0x57, 0x11, +0x00, 0x03, 0x05, 0x00, 0x09, 0x49, 0x01, 0x88, +0x12, 0x06, 0x0F, 0x98, 0x14, 0x07, 0x0F, 0x88, +0x12, 0x06, 0x06, 0x49, 0x50, 0x80, 0x07, 0x49, +0x30, 0x80, 0x00, 0x4A, 0x14, 0x00, 0xE1, 0x80, +0xA0, 0x1A, 0x72, 0x02, 0x0A, 0x0D, 0x02, 0x02, +0x0F, 0x98, 0x6D, 0x0C, 0xB0, 0x1A, 0x72, 0x02, +0x0F, 0x98, 0xFF, 0x0C, 0x0F, 0x98, 0x14, 0x07, +0x0F, 0x88, 0x12, 0x06, 0x00, 0x03, 0xFD, 0x01, +0x01, 0x49, 0x01, 0x88, 0x12, 0x06, 0x00, 0x03, +0x70, 0x00, 0x00, 0x0D, 0xFC, 0x01, 0x0F, 0x98, +0xA2, 0x0F, 0x00, 0x03, 0x05, 0x00, 0x07, 0x49, +0x11, 0x81, 0x0F, 0x98, 0xF2, 0x0A, 0x0F, 0x98, +0x66, 0x0C, 0x0F, 0x98, 0x8D, 0x08, 0xA0, 0x03, +0x21, 0x01, 0xB0, 0x03, 0x0C, 0x00, 0xBF, 0x51, +0x10, 0x80, 0xA1, 0x19, 0x0A, 0x0D, 0xFE, 0x0D, +0x0F, 0x98, 0x35, 0x0C, 0x00, 0x0E, 0xFD, 0x01, +0x0F, 0x88, 0x12, 0x06, 0x21, 0x19, 0x10, 0x03, +0x38, 0x0B, 0x10, 0x49, 0x11, 0x80, 0x20, 0x19, +0x00, 0x03, 0x01, 0xF8, 0x01, 0x61, 0x02, 0x48, +0xB1, 0x87, 0xFF, 0xA0, 0x00, 0x03, 0x71, 0x00, +0x00, 0x49, 0xF0, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x39, 0xB1, 0x87, +0xFF, 0xA0, 0x0F, 0x98, 0xCF, 0x23, 0x0F, 0x98, +0x68, 0x04, 0x93, 0x19, 0x30, 0x03, 0x0A, 0x00, +0xFF, 0xFF, 0x93, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x90, 0x1E, 0x92, 0x21, 0xB0, 0x1A, +0x75, 0x00, 0x0F, 0x98, 0x88, 0x04, 0x0F, 0x88, +0x6D, 0x04, 0x00, 0x03, 0x8B, 0x0B, 0x10, 0x03, +0xE5, 0x00, 0xFF, 0xFF, 0x01, 0x60, 0x01, 0x98, +0xCF, 0x23, 0xFF, 0xFF, 0xB0, 0x1A, 0x72, 0x02, +0x00, 0x03, 0x05, 0x00, 0x0C, 0x49, 0xB0, 0x83, +0x0D, 0x49, 0x90, 0x83, 0x03, 0x49, 0x8C, 0x81, +0x03, 0x49, 0x60, 0x82, 0xB0, 0x1A, 0x32, 0x06, +0x04, 0x49, 0x20, 0x81, 0xB0, 0x19, 0x00, 0x4A, +0x14, 0x00, 0xE0, 0x80, 0xB0, 0x1A, 0x75, 0x07, +0x00, 0x03, 0x05, 0x00, 0x09, 0x49, 0x80, 0x80, +0xB0, 0x1A, 0x72, 0x02, 0x08, 0x49, 0x41, 0x80, +0x0F, 0x98, 0xAC, 0x07, 0xB0, 0x1A, 0x15, 0x08, +0x0F, 0x98, 0x68, 0x04, 0x90, 0x03, 0x46, 0x02, +0xFF, 0xFF, 0x00, 0x03, 0x05, 0x00, 0x08, 0x49, +0x21, 0x80, 0x90, 0x03, 0x10, 0x00, 0xFF, 0xFF, +0x0F, 0x98, 0x97, 0x04, 0x0F, 0x88, 0x6D, 0x04, +0x0F, 0x98, 0x27, 0x14, 0x0F, 0x98, 0x68, 0x04, +0xB0, 0x1A, 0x72, 0x02, 0x90, 0x03, 0x46, 0x02, +0xFF, 0xFF, 0x0F, 0x98, 0x97, 0x04, 0x0F, 0x98, +0x6D, 0x04, 0x0F, 0x88, 0xD4, 0x14, 0x0F, 0x98, +0x63, 0x04, 0x0F, 0x98, 0x27, 0x14, 0x00, 0x0E, +0x09, 0xF3, 0x20, 0x1A, 0x00, 0x02, 0x20, 0x22, +0x00, 0x40, 0x10, 0x1A, 0x72, 0x02, 0x00, 0x03, +0x46, 0x02, 0xFF, 0xFF, 0x01, 0x79, 0x31, 0x00, +0x3F, 0x51, 0x70, 0x80, 0x30, 0x31, 0x31, 0x79, +0x30, 0x31, 0x30, 0x49, 0x40, 0x80, 0x37, 0xC1, +0x2F, 0x80, 0x31, 0x79, 0x37, 0xC9, 0x11, 0x21, +0x41, 0x00, 0x4F, 0x51, 0x70, 0x80, 0x40, 0x31, +0x41, 0x79, 0x40, 0x31, 0x40, 0x49, 0x40, 0x80, +0x47, 0xC1, 0x2F, 0x80, 0x41, 0x79, 0x47, 0xC9, +0x48, 0x7B, 0x34, 0x68, 0x11, 0x21, 0x23, 0x08, +0x21, 0x21, 0x01, 0x39, 0x01, 0x86, 0x0F, 0x98, +0xD4, 0x14, 0x00, 0x03, 0x05, 0x00, 0x0C, 0x49, +0x40, 0x81, 0x0F, 0x98, 0xCF, 0x23, 0x10, 0x1A, +0x75, 0x00, 0x03, 0x19, 0x02, 0x59, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x1E, 0x02, 0x21, +0x31, 0x00, 0x23, 0x08, 0x11, 0x21, 0x21, 0x21, +0x01, 0x39, 0xA1, 0x87, 0x00, 0x03, 0xFA, 0x0A, +0x20, 0x08, 0x01, 0x0E, 0x09, 0xF3, 0x0F, 0x88, +0x6D, 0x04, 0xD0, 0x03, 0x10, 0x00, 0xC0, 0x1A, +0x15, 0x08, 0xB0, 0x1A, 0x75, 0x07, 0x0B, 0x00, +0x00, 0x62, 0xFF, 0x00, 0xC0, 0x08, 0xC1, 0x21, +0x0B, 0x00, 0xFF, 0xFF, 0x08, 0x79, 0xC0, 0x08, +0xC1, 0x21, 0xB1, 0x21, 0xD1, 0x39, 0x31, 0x87, +0x10, 0x03, 0x56, 0x00, 0x1C, 0x49, 0x2D, 0x80, +0x0F, 0x88, 0x0A, 0x08, 0x10, 0x03, 0x56, 0x00, +0x18, 0x49, 0x1D, 0x82, 0xD0, 0x1A, 0xF0, 0x00, +0xC0, 0x1A, 0x15, 0x08, 0xB0, 0x1A, 0x15, 0x08, +0x90, 0x19, 0x80, 0x19, 0xAB, 0x18, 0xA9, 0x20, +0x0A, 0x00, 0xAC, 0x18, 0xA8, 0x20, 0xA0, 0x08, +0x91, 0x21, 0x19, 0x18, 0x13, 0x61, 0x13, 0x49, +0x11, 0x80, 0x91, 0x21, 0x81, 0x21, 0x90, 0x4A, +0x10, 0x00, 0x6C, 0x80, 0xB0, 0x22, 0x10, 0x00, +0xC0, 0x22, 0x10, 0x00, 0x90, 0x19, 0x80, 0x19, +0xD1, 0x39, 0x81, 0x86, 0x0F, 0x82, 0xD0, 0x03, +0x10, 0x00, 0xC0, 0x1A, 0x15, 0x08, 0xB0, 0x1A, +0x15, 0x08, 0x90, 0x19, 0x80, 0x19, 0xAB, 0x18, +0xA9, 0x20, 0x0A, 0x00, 0xAC, 0x18, 0xA8, 0x20, +0xA0, 0x08, 0x91, 0x21, 0x19, 0x18, 0x13, 0x61, +0x12, 0x49, 0x11, 0x80, 0x92, 0x21, 0x81, 0x21, +0x90, 0x4A, 0x10, 0x00, 0x6C, 0x80, 0xB0, 0x22, +0x10, 0x00, 0xC0, 0x22, 0x10, 0x00, 0x90, 0x19, +0x80, 0x19, 0xD1, 0x39, 0x81, 0x86, 0xB0, 0x1A, +0x15, 0x08, 0xCB, 0x18, 0x80, 0x1A, 0x3D, 0x0D, +0x20, 0x1A, 0x10, 0x00, 0x30, 0x1A, 0xE8, 0x00, +0x60, 0x1A, 0x08, 0x0E, 0x03, 0x00, 0x00, 0x62, +0xFF, 0x00, 0x60, 0x08, 0x61, 0x21, 0x03, 0x00, +0xFF, 0xFF, 0x08, 0x79, 0x60, 0x08, 0x61, 0x21, +0x31, 0x21, 0x21, 0x39, 0x31, 0x87, 0x30, 0x1A, +0x08, 0x0E, 0x60, 0x19, 0x90, 0x19, 0x50, 0x03, +0x56, 0x00, 0xD0, 0x1A, 0x40, 0x01, 0x03, 0x00, +0x00, 0x62, 0xFF, 0x00, 0x0B, 0x20, 0xA0, 0x00, +0x0C, 0x18, 0x09, 0x20, 0x0A, 0x08, 0x61, 0x21, +0x31, 0x21, 0x91, 0x21, 0x65, 0x48, 0xA1, 0x80, +0x30, 0x1A, 0x08, 0x0E, 0x60, 0x19, 0x90, 0x19, +0xB0, 0x22, 0x10, 0x00, 0xC0, 0x22, 0x10, 0x00, +0xD0, 0x3A, 0x10, 0x00, 0xD0, 0x49, 0x7A, 0x86, +0xD0, 0x03, 0x10, 0x00, 0xC0, 0x1A, 0x15, 0x08, +0xB0, 0x1A, 0x15, 0x08, 0x90, 0x19, 0x80, 0x19, +0x0B, 0x00, 0x00, 0x62, 0xFF, 0x00, 0xB1, 0x21, +0x1B, 0x00, 0xFF, 0xFF, 0x18, 0x7B, 0x01, 0x68, +0xC0, 0x08, 0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, +0x31, 0x87, 0xFF, 0xA0, 0xA0, 0x03, 0x15, 0x00, +0x0A, 0x0D, 0xB0, 0x0A, 0x0A, 0x0D, 0xB1, 0x0A, +0x0A, 0x0D, 0xB3, 0x0A, 0x00, 0x0E, 0x8D, 0x0B, +0x00, 0x0E, 0x31, 0x0E, 0x00, 0x0E, 0x8C, 0x0B, +0x00, 0x0E, 0x97, 0x0A, 0x00, 0x0E, 0x98, 0x0A, +0x00, 0x0E, 0x9A, 0x0A, 0x00, 0x0E, 0x9C, 0x0A, +0x00, 0x0E, 0x9D, 0x0A, 0x00, 0x0E, 0x46, 0x00, +0x00, 0x0E, 0x99, 0x0A, 0x0F, 0x98, 0xA2, 0x0F, +0x0F, 0x98, 0x7B, 0x04, 0x0F, 0x98, 0xD4, 0x0F, +0xC0, 0x19, 0xD0, 0x1A, 0x77, 0x00, 0xD2, 0x21, +0x3A, 0x19, 0xD0, 0x0B, 0xD3, 0x21, 0xC1, 0x21, +0xC3, 0x48, 0xB1, 0x87, 0x0F, 0x88, 0x5A, 0x24, +0x00, 0x0E, 0xA2, 0x0A, 0x00, 0x0E, 0xA3, 0x0A, +0x0F, 0x88, 0xE3, 0x0E, 0x00, 0x0E, 0x0D, 0xF3, +0x00, 0x0E, 0x0B, 0xF3, 0x00, 0x0E, 0x0C, 0xF3, +0x90, 0x1A, 0x40, 0x01, 0xA0, 0x1A, 0x00, 0x80, +0xB0, 0x1A, 0x00, 0x60, 0xC0, 0x1A, 0x00, 0x70, +0x0A, 0x00, 0xB0, 0x08, 0xC0, 0x08, 0xB1, 0x21, +0xC1, 0x21, 0xA1, 0x21, 0x91, 0x39, 0x81, 0x87, +0x02, 0x0E, 0x0D, 0xF3, 0x02, 0x0E, 0x0B, 0xF3, +0x02, 0x0E, 0x0C, 0xF3, 0xFF, 0xA0, 0x00, 0x0E, +0x0D, 0xF3, 0x00, 0x0E, 0x0B, 0xF3, 0x00, 0x0E, +0x0C, 0xF3, 0x90, 0x1A, 0x40, 0x01, 0xA0, 0x1A, +0x00, 0x80, 0xB0, 0x1A, 0x00, 0x60, 0xC0, 0x1A, +0x00, 0x70, 0x80, 0x1A, 0xF2, 0x04, 0x50, 0x03, +0x20, 0x01, 0x08, 0x00, 0x40, 0x1A, 0x00, 0x20, +0x40, 0x38, 0x45, 0x7A, 0xA4, 0x08, 0xB4, 0x08, +0xC4, 0x08, 0x81, 0x21, 0xC1, 0x21, 0xB1, 0x21, +0xA1, 0x21, 0x91, 0x39, 0x21, 0x87, 0x02, 0x0E, +0x0D, 0xF3, 0x02, 0x0E, 0x0B, 0xF3, 0x02, 0x0E, +0x0C, 0xF3, 0xFF, 0xA0, 0x90, 0x1A, 0x40, 0x01, +0xB0, 0x1A, 0x72, 0x02, 0x80, 0x1A, 0xF2, 0x04, +0x48, 0x00, 0xB4, 0x08, 0x81, 0x21, 0xB1, 0x21, +0x91, 0x39, 0xA1, 0x87, 0xFF, 0xA0, 0x00, 0x03, +0x25, 0x01, 0x00, 0x0D, 0x1A, 0xF8, 0x00, 0x03, +0x26, 0x01, 0x00, 0x0D, 0x10, 0xF8, 0x00, 0x03, +0x27, 0x01, 0x00, 0x0D, 0x11, 0xF8, 0x00, 0x03, +0x28, 0x01, 0x00, 0x0D, 0x1E, 0xF8, 0x00, 0x03, +0x29, 0x01, 0x00, 0x0D, 0x1F, 0xF8, 0x00, 0x03, +0x1B, 0x01, 0x00, 0x0D, 0x0E, 0xF8, 0x00, 0x03, +0x1C, 0x01, 0x00, 0x0D, 0x0F, 0xF8, 0x00, 0x03, +0x2A, 0x01, 0x00, 0x0D, 0x1B, 0xF8, 0x00, 0x03, +0x2B, 0x01, 0x00, 0x0D, 0x40, 0xF8, 0x00, 0x1A, +0x33, 0x33, 0x00, 0x0D, 0x42, 0xF8, 0x00, 0x03, +0x2C, 0x01, 0x00, 0x0D, 0x28, 0xF8, 0x00, 0x03, +0x2D, 0x01, 0x00, 0x0D, 0x29, 0xF8, 0x00, 0x03, +0x2F, 0x01, 0x00, 0x0D, 0x2A, 0xF8, 0x00, 0x03, +0x30, 0x01, 0x00, 0x0D, 0x21, 0xF8, 0x00, 0x03, +0x31, 0x01, 0x00, 0x0D, 0x22, 0xF8, 0x00, 0x03, +0x32, 0x01, 0x00, 0x0D, 0x4A, 0xF8, 0x00, 0x03, +0x33, 0x01, 0x00, 0x0D, 0x49, 0xF8, 0x00, 0x03, +0x34, 0x01, 0x00, 0x0D, 0x4B, 0xF8, 0x00, 0x03, +0x35, 0x01, 0x00, 0x0D, 0x51, 0xF8, 0x00, 0x03, +0x36, 0x01, 0x00, 0x0D, 0x52, 0xF8, 0x00, 0x03, +0x37, 0x01, 0x00, 0x0D, 0x53, 0xF8, 0xFF, 0xA0, +0x00, 0x0E, 0x45, 0x02, 0xDA, 0x19, 0xC0, 0x1A, +0x57, 0x00, 0xB0, 0x1A, 0x60, 0xF8, 0x0C, 0x00, +0x00, 0x62, 0xFF, 0x00, 0xB0, 0x08, 0xB1, 0x21, +0x0C, 0x00, 0xFF, 0xFF, 0x08, 0x79, 0xB0, 0x08, +0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, 0x31, 0x87, +0xFF, 0xA0, 0xB0, 0x03, 0x55, 0x00, 0xAB, 0x18, +0xC0, 0x03, 0x56, 0x00, 0xFF, 0xFF, 0xAC, 0x58, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x1E, +0x0A, 0x0D, 0x46, 0x02, 0xB7, 0x7B, 0xC7, 0x7B, +0x0B, 0x0D, 0xF5, 0x0A, 0x0C, 0x0D, 0xF6, 0x0A, +0x00, 0x03, 0x55, 0x00, 0xFF, 0xFF, 0x01, 0x39, +0x00, 0x0D, 0x08, 0xF8, 0x0F, 0x98, 0x33, 0x09, +0x0F, 0x98, 0x32, 0x0C, 0x10, 0x03, 0x05, 0x00, +0x16, 0x49, 0x61, 0x81, 0x00, 0x03, 0x16, 0x01, +0x00, 0x0D, 0x04, 0xF8, 0x00, 0x03, 0x17, 0x01, +0x00, 0x0D, 0x0B, 0xF8, 0x00, 0x03, 0x18, 0x01, +0x10, 0x18, 0x18, 0x7B, 0x01, 0x68, 0x00, 0x0D, +0x34, 0xF8, 0x00, 0x0D, 0x35, 0xF8, 0x00, 0x0D, +0x36, 0xF8, 0x00, 0x0D, 0x37, 0xF8, 0xCF, 0x82, +0x19, 0x49, 0x51, 0x81, 0x01, 0x19, 0x00, 0x0D, +0x04, 0xF8, 0x00, 0x03, 0x17, 0x01, 0x00, 0x0D, +0x0B, 0xF8, 0x00, 0x03, 0x18, 0x01, 0x10, 0x18, +0x18, 0x7B, 0x01, 0x68, 0x00, 0x0D, 0x34, 0xF8, +0x00, 0x0D, 0x35, 0xF8, 0x00, 0x0D, 0x36, 0xF8, +0x00, 0x0D, 0x37, 0xF8, 0x5F, 0x81, 0x00, 0x03, +0x6C, 0x00, 0x00, 0x0D, 0x04, 0xF8, 0x00, 0x03, +0x6D, 0x00, 0x00, 0x0D, 0x0B, 0xF8, 0x00, 0x03, +0x6E, 0x00, 0x10, 0x18, 0x18, 0x7B, 0x01, 0x68, +0x00, 0x0D, 0x34, 0xF8, 0x00, 0x0D, 0x35, 0xF8, +0x00, 0x0D, 0x36, 0xF8, 0x00, 0x0D, 0x37, 0xF8, +0x00, 0x03, 0x38, 0x01, 0x00, 0x0D, 0x0A, 0xF8, +0xA0, 0x03, 0x15, 0x01, 0xA0, 0x49, 0x00, 0x98, +0x45, 0x0A, 0xFF, 0xFF, 0xA0, 0x03, 0x15, 0x01, +0xA1, 0x49, 0x00, 0x98, 0x80, 0x0A, 0xFF, 0xFF, +0x0F, 0x98, 0xCD, 0x09, 0x0F, 0x98, 0x18, 0x0A, +0x0F, 0x98, 0x97, 0x0A, 0x00, 0x03, 0x05, 0x00, +0x06, 0x49, 0xF0, 0xA0, 0xFF, 0xFF, 0xC0, 0x03, +0x0D, 0x00, 0xC0, 0x51, 0xF1, 0xA0, 0xFF, 0xFF, +0x0F, 0x88, 0xAD, 0x0B, 0x00, 0x0E, 0x0F, 0xF3, +0x00, 0x03, 0xF5, 0x00, 0x00, 0x49, 0x80, 0x81, +0x90, 0x03, 0x0F, 0x00, 0x95, 0x49, 0x6C, 0x80, +0x0D, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x00, 0x1E, 0x04, 0x79, 0x93, 0x49, 0x1B, 0x80, +0x01, 0x79, 0x90, 0x1A, 0x14, 0x00, 0x10, 0x1A, +0x00, 0xA0, 0x10, 0x08, 0x11, 0x21, 0x91, 0x39, +0xC1, 0x87, 0x02, 0x0E, 0x0F, 0xF3, 0xFF, 0xA0, +0x0A, 0x19, 0x10, 0x1A, 0x00, 0xA0, 0x20, 0x1A, +0xF6, 0x00, 0x90, 0x03, 0x0F, 0x00, 0x32, 0x00, +0x30, 0x62, 0xFF, 0x00, 0x95, 0x49, 0x6C, 0x80, +0x3D, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x30, 0x1E, 0x34, 0x79, 0x93, 0x49, 0x1B, 0x80, +0x31, 0x79, 0x13, 0x08, 0x11, 0x21, 0x32, 0x00, +0xFF, 0xFF, 0x38, 0x79, 0x95, 0x49, 0x6C, 0x80, +0x3D, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x30, 0x1E, 0x34, 0x79, 0x93, 0x49, 0x1B, 0x80, +0x31, 0x79, 0x13, 0x08, 0x11, 0x21, 0x21, 0x21, +0x01, 0x39, 0xD1, 0x85, 0x02, 0x0E, 0x0F, 0xF3, +0xFF, 0xA0, 0x00, 0x0E, 0x0E, 0xF3, 0x10, 0x03, +0x05, 0x00, 0x16, 0x49, 0x91, 0x80, 0x80, 0x03, +0x18, 0x01, 0x00, 0x03, 0x16, 0x01, 0x00, 0x49, +0x20, 0x80, 0x80, 0x03, 0x17, 0x01, 0x8F, 0x80, +0x80, 0x03, 0x6E, 0x00, 0x00, 0x03, 0x6C, 0x00, +0x00, 0x49, 0x20, 0x80, 0x80, 0x03, 0x6D, 0x00, +0x08, 0x18, 0x08, 0x7B, 0x80, 0x68, 0x90, 0x03, +0x10, 0x00, 0xA0, 0x1A, 0x00, 0x90, 0xA8, 0x08, +0xA1, 0x21, 0x91, 0x39, 0xC1, 0x87, 0x02, 0x0E, +0x0E, 0xF3, 0xFF, 0xA0, 0x00, 0x0E, 0x05, 0xF8, +0x01, 0x19, 0x00, 0x0D, 0x06, 0xF8, 0x00, 0x0E, +0x07, 0xF8, 0xFF, 0xA0, 0x90, 0x03, 0x0F, 0x00, +0x90, 0x49, 0x90, 0x80, 0x90, 0x03, 0x0F, 0x00, +0x91, 0x49, 0x50, 0x80, 0x90, 0x03, 0x0F, 0x00, +0x92, 0x49, 0x10, 0x80, 0x7F, 0x81, 0x00, 0x0E, +0x2C, 0xF8, 0x00, 0x0E, 0x2D, 0xF8, 0x01, 0x0E, +0x2E, 0xF8, 0x01, 0x0E, 0x2F, 0xF8, 0x00, 0x0E, +0x38, 0xF8, 0x00, 0x0E, 0x39, 0xF8, 0x08, 0x0E, +0x3A, 0xF8, 0x01, 0x0E, 0x3B, 0xF8, 0x00, 0x1A, +0x07, 0x15, 0x10, 0x1A, 0x07, 0x1C, 0x20, 0x1A, +0x06, 0x06, 0x5F, 0x82, 0x00, 0x0E, 0x2C, 0xF8, +0x00, 0x0E, 0x2D, 0xF8, 0x01, 0x0E, 0x2E, 0xF8, +0x01, 0x0E, 0x2F, 0xF8, 0x00, 0x0E, 0x38, 0xF8, +0x00, 0x0E, 0x39, 0xF8, 0x08, 0x0E, 0x3A, 0xF8, +0x01, 0x0E, 0x3B, 0xF8, 0x00, 0x1A, 0x07, 0xD5, +0x10, 0x1A, 0x07, 0xDC, 0x20, 0x1A, 0x06, 0xC6, +0xEF, 0x80, 0x00, 0x0E, 0x2C, 0xF8, 0x00, 0x0E, +0x2D, 0xF8, 0x01, 0x0E, 0x2E, 0xF8, 0x01, 0x0E, +0x2F, 0xF8, 0x00, 0x1A, 0x07, 0x07, 0x10, 0x1A, +0x07, 0x07, 0x20, 0x1A, 0x06, 0x06, 0x00, 0x0D, +0x23, 0xF8, 0x01, 0x0D, 0x24, 0xF8, 0x02, 0x0D, +0x25, 0xF8, 0x01, 0x0E, 0x20, 0xF8, 0xFF, 0xA0, +0x30, 0x1A, 0x14, 0x00, 0xB0, 0x1A, 0x3D, 0x0D, +0xB0, 0x0B, 0xB1, 0x21, 0x31, 0x39, 0xC1, 0x87, +0x60, 0x19, 0x00, 0x19, 0x70, 0x03, 0x56, 0x00, +0x06, 0xC0, 0x61, 0x21, 0x67, 0x48, 0xC1, 0x87, +0x30, 0x03, 0x55, 0x00, 0xB0, 0x1A, 0x3D, 0x0D, +0xB0, 0x08, 0xB1, 0x21, 0x31, 0x39, 0xC1, 0x87, +0x10, 0x03, 0xE5, 0x00, 0x1F, 0x51, 0xF0, 0xA0, +0xFF, 0xFF, 0x80, 0x03, 0xA5, 0x00, 0x10, 0x03, +0xA9, 0x00, 0x20, 0x1A, 0x3D, 0x0D, 0xC0, 0x03, +0xA8, 0x00, 0xC0, 0x49, 0x31, 0x80, 0x21, 0x20, +0x20, 0x0B, 0x8F, 0x80, 0x30, 0x1A, 0x14, 0x00, +0x02, 0x00, 0x01, 0xC8, 0x20, 0x08, 0x21, 0x21, +0x31, 0x39, 0xA1, 0x87, 0x70, 0x1A, 0xAB, 0x00, +0xC0, 0x49, 0x41, 0x80, 0x10, 0x03, 0xA9, 0x00, +0x07, 0x00, 0x3F, 0x80, 0x00, 0x03, 0xA9, 0x00, +0x17, 0x00, 0xB0, 0x03, 0xAA, 0x00, 0x20, 0x1A, +0x3D, 0x0D, 0x10, 0x4A, 0x14, 0x00, 0x2C, 0x80, +0x10, 0x1A, 0x13, 0x00, 0x21, 0x20, 0x32, 0x00, +0x00, 0x4A, 0x10, 0x00, 0x1C, 0x80, 0x0F, 0x19, +0x30, 0xC0, 0x23, 0x08, 0xC0, 0x49, 0x11, 0x80, +0x01, 0x21, 0xC0, 0x49, 0x10, 0x80, 0x11, 0x21, +0xB1, 0x39, 0x91, 0x86, 0x81, 0x39, 0xF0, 0xA0, +0xFF, 0xFF, 0x71, 0x21, 0x9F, 0x85, 0xA0, 0x03, +0x0D, 0x00, 0xA0, 0xC1, 0xA2, 0xC1, 0x0A, 0x0D, +0x0D, 0x00, 0x0F, 0x98, 0x97, 0x0A, 0x0F, 0x98, +0x66, 0x0C, 0x0F, 0x98, 0x59, 0x08, 0x0F, 0x98, +0x3D, 0x0A, 0xA0, 0x03, 0x10, 0x00, 0xB0, 0x1A, +0x75, 0x07, 0x00, 0x03, 0x6E, 0x00, 0x20, 0x03, +0x6C, 0x00, 0x20, 0x49, 0x20, 0x80, 0x00, 0x03, +0x6D, 0x00, 0x10, 0x18, 0x18, 0x7B, 0x01, 0x68, +0xB0, 0x08, 0xB1, 0x21, 0xA1, 0x39, 0xC1, 0x87, +0x0F, 0x98, 0x66, 0x0C, 0x0F, 0x98, 0xEF, 0x0B, +0x0F, 0x98, 0x66, 0x0C, 0x0F, 0x98, 0x3B, 0x0C, +0x0F, 0x98, 0x61, 0x0C, 0x0F, 0x98, 0x3B, 0x0C, +0x0F, 0x98, 0x61, 0x0C, 0x00, 0x0E, 0x0D, 0xF3, +0x40, 0x03, 0x6B, 0x00, 0xA0, 0x03, 0x10, 0x00, +0xB0, 0x1A, 0x00, 0x80, 0xC0, 0x1A, 0x75, 0x07, +0x70, 0x1A, 0x51, 0x0D, 0x90, 0x19, 0x01, 0x0E, +0x29, 0x0B, 0x30, 0x1A, 0x7F, 0x00, 0x00, 0x03, +0x6C, 0x00, 0x00, 0x49, 0x10, 0x80, 0x30, 0x19, +0x2C, 0x00, 0x12, 0x18, 0x10, 0x62, 0xFF, 0x00, +0x13, 0x48, 0x00, 0x88, 0x92, 0x0B, 0x3B, 0x00, +0x00, 0x03, 0x20, 0x01, 0xFF, 0xFF, 0x30, 0x78, +0x00, 0x03, 0x6C, 0x00, 0x00, 0x49, 0x30, 0x80, +0x34, 0x48, 0xBA, 0x80, 0x1F, 0x81, 0x34, 0x48, +0xDD, 0x87, 0x00, 0x0E, 0x29, 0x0B, 0x20, 0x62, +0x00, 0xFF, 0x11, 0x21, 0x21, 0x68, 0xC2, 0x08, +0x7F, 0x80, 0x00, 0x0E, 0x29, 0x0B, 0x20, 0x62, +0x00, 0xFF, 0x11, 0x39, 0x21, 0x68, 0xC2, 0x08, +0x91, 0x21, 0xB1, 0x21, 0x30, 0x1A, 0x7F, 0x00, +0x00, 0x03, 0x6C, 0x00, 0x00, 0x49, 0x10, 0x80, +0x30, 0x19, 0x2C, 0x00, 0x12, 0x18, 0x18, 0x79, +0x13, 0x48, 0x90, 0x82, 0x3B, 0x00, 0x00, 0x03, +0x20, 0x01, 0xFF, 0xFF, 0x30, 0x78, 0x00, 0x03, +0x6C, 0x00, 0x00, 0x49, 0x30, 0x80, 0x34, 0x48, +0xCA, 0x80, 0x3F, 0x81, 0x34, 0x48, 0xDD, 0x87, +0x00, 0x0E, 0x29, 0x0B, 0x20, 0x62, 0xFF, 0x00, +0x11, 0x21, 0x18, 0x7B, 0x21, 0x68, 0xC2, 0x08, +0x8F, 0x80, 0x00, 0x0E, 0x29, 0x0B, 0x20, 0x62, +0xFF, 0x00, 0x11, 0x39, 0x18, 0x7B, 0x21, 0x68, +0xC2, 0x08, 0xB1, 0x21, 0xC1, 0x21, 0xA1, 0x39, +0x01, 0x88, 0x30, 0x0B, 0x00, 0x03, 0x29, 0x0B, +0x00, 0x49, 0x00, 0x88, 0x13, 0x0B, 0x0F, 0x98, +0xAD, 0x0B, 0xA0, 0x03, 0x0D, 0x00, 0xA0, 0xC9, +0xA2, 0xC9, 0x0A, 0x0D, 0x0D, 0x00, 0x00, 0x03, +0xFD, 0x01, 0x01, 0x49, 0x21, 0x80, 0x01, 0x0E, +0x2B, 0x0E, 0x0F, 0x98, 0x8D, 0x08, 0xA0, 0x03, +0x21, 0x01, 0xB0, 0x03, 0x0C, 0x00, 0xBF, 0x51, +0x10, 0x80, 0xA1, 0x19, 0x0A, 0x0D, 0xFE, 0x0D, +0x0F, 0x88, 0x35, 0x0C, 0x0F, 0x98, 0x66, 0x0C, +0x20, 0x03, 0x6C, 0x00, 0x20, 0x49, 0xF0, 0xA0, +0xFF, 0xFF, 0x00, 0x0E, 0x0E, 0xF3, 0x50, 0x03, +0x6D, 0x00, 0x90, 0x03, 0x10, 0x00, 0xC0, 0x1A, +0x75, 0x07, 0xA0, 0x1A, 0x00, 0x90, 0x80, 0x1A, +0x3D, 0x0D, 0x60, 0x03, 0x56, 0x00, 0x30, 0x19, +0x0C, 0x00, 0xFF, 0xFF, 0x00, 0x62, 0xFF, 0x00, +0x05, 0x48, 0x11, 0x80, 0x00, 0x19, 0x36, 0x48, +0x4B, 0x80, 0x28, 0x00, 0x23, 0x50, 0x11, 0x80, +0x00, 0x19, 0x31, 0x21, 0x2C, 0x00, 0x12, 0x18, +0x10, 0x62, 0x00, 0xFF, 0x28, 0x79, 0x25, 0x48, +0x11, 0x80, 0x10, 0x19, 0x36, 0x48, 0x4B, 0x80, +0x28, 0x00, 0x23, 0x50, 0x11, 0x80, 0x10, 0x19, +0x31, 0x21, 0x30, 0x4A, 0x10, 0x00, 0x2C, 0x80, +0x81, 0x21, 0x30, 0x19, 0x01, 0x68, 0xC0, 0x08, +0xA0, 0x08, 0xC1, 0x21, 0xA1, 0x21, 0x91, 0x39, +0x71, 0x85, 0x02, 0x0E, 0x0E, 0xF3, 0xFF, 0xA0, +0x00, 0x0E, 0x0E, 0xF3, 0x90, 0x03, 0x10, 0x00, +0xC0, 0x1A, 0x75, 0x07, 0xA0, 0x1A, 0x00, 0x90, +0x0C, 0x00, 0xA0, 0x08, 0xC1, 0x21, 0xA1, 0x21, +0x91, 0x39, 0xA1, 0x87, 0x02, 0x0E, 0x0E, 0xF3, +0xFF, 0xA0, 0x00, 0x0E, 0x0E, 0xF3, 0x90, 0x1A, +0x4C, 0x00, 0xC0, 0x1A, 0x75, 0x07, 0xA0, 0x1A, +0x00, 0x90, 0xC8, 0x21, 0xA8, 0x21, 0x0C, 0x00, +0xA0, 0x08, 0xA1, 0x21, 0x1C, 0x18, 0x17, 0x61, +0x16, 0x49, 0x10, 0x80, 0xA0, 0x08, 0xA1, 0x21, +0xC2, 0x21, 0x91, 0x39, 0x41, 0x87, 0x02, 0x0E, +0x0E, 0xF3, 0xFF, 0xA0, 0x00, 0x0E, 0x0E, 0xF3, +0x90, 0x1A, 0x50, 0x00, 0xC0, 0x1A, 0x75, 0x07, +0xA0, 0x1A, 0x00, 0x90, 0x0C, 0x00, 0xA0, 0x08, +0xA1, 0x21, 0xA0, 0x08, 0xA1, 0x21, 0xC2, 0x21, +0x91, 0x39, 0x81, 0x87, 0x02, 0x0E, 0x0E, 0xF3, +0xFF, 0xA0, 0x01, 0x0E, 0x09, 0xF8, 0xFF, 0xA0, +0x02, 0x0E, 0x09, 0xF8, 0xFF, 0xA0, 0x03, 0x0E, +0x09, 0xF8, 0xFF, 0xA0, 0xA0, 0x03, 0xFE, 0x0D, +0xA1, 0x49, 0x20, 0x80, 0xA2, 0x49, 0xA0, 0x80, +0x01, 0x0E, 0xFE, 0x0D, 0x00, 0x0E, 0x02, 0xF8, +0x9F, 0x80, 0x01, 0x0E, 0xFE, 0x0D, 0x01, 0x0E, +0x02, 0xF8, 0x4F, 0x80, 0x02, 0x0E, 0xFE, 0x0D, +0x02, 0x0E, 0x02, 0xF8, 0x02, 0x0E, 0x0B, 0xF3, +0x02, 0x0E, 0x0C, 0xF3, 0x02, 0x0E, 0x0D, 0xF3, +0x01, 0x0E, 0x00, 0xF8, 0xFF, 0xA0, 0x02, 0x0E, +0x01, 0xF8, 0xFF, 0xA0, 0x00, 0x03, 0x00, 0xF8, +0x01, 0x51, 0xC1, 0x87, 0x00, 0x0E, 0x0D, 0xF3, +0xFF, 0xA0, 0x02, 0x0E, 0x0D, 0xF3, 0x00, 0x0E, +0x01, 0xF8, 0xFF, 0xA0, 0x00, 0x03, 0x00, 0xF8, +0x00, 0x51, 0xC1, 0x87, 0xFF, 0xA0, 0x0F, 0x98, +0x52, 0x0C, 0x0F, 0x98, 0x55, 0x0C, 0x02, 0x0E, +0x00, 0xF8, 0xFF, 0xA0, 0xA0, 0x03, 0xFE, 0x0D, +0xA1, 0x49, 0xC1, 0x80, 0x0F, 0x98, 0x61, 0x0C, +0x0F, 0x98, 0x66, 0x0C, 0x00, 0x03, 0x01, 0xF8, +0x01, 0x61, 0x00, 0x0D, 0x38, 0x0B, 0x00, 0x0E, +0x0D, 0xF3, 0x6F, 0x80, 0x0F, 0x98, 0xE9, 0x06, +0x0F, 0x98, 0x52, 0x0C, 0x0F, 0x98, 0x55, 0x0C, +0xB0, 0x1A, 0x00, 0x80, 0xC0, 0x03, 0x02, 0x02, +0x10, 0x03, 0x56, 0x00, 0x00, 0x1A, 0x10, 0x00, +0x01, 0x38, 0x50, 0x03, 0x20, 0x01, 0x10, 0x03, +0x56, 0x00, 0x1C, 0x49, 0xBD, 0x80, 0xD0, 0x1A, +0x40, 0x01, 0x9B, 0x00, 0xFF, 0xFF, 0x95, 0x78, +0xC9, 0x08, 0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, +0x81, 0x87, 0x3F, 0x82, 0x10, 0x03, 0x56, 0x00, +0x18, 0x49, 0x0D, 0x81, 0xD0, 0x1A, 0x40, 0x01, +0x9B, 0x00, 0xFF, 0xFF, 0x95, 0x78, 0xC9, 0x08, +0xB1, 0x21, 0x1B, 0x18, 0x13, 0x61, 0x13, 0x49, +0x11, 0x80, 0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, +0x31, 0x87, 0xFF, 0x80, 0xD0, 0x1A, 0x40, 0x01, +0x9B, 0x00, 0xFF, 0xFF, 0x95, 0x78, 0xC9, 0x08, +0xB1, 0x21, 0x1B, 0x18, 0x13, 0x61, 0x12, 0x49, +0x11, 0x80, 0xB2, 0x21, 0xC1, 0x21, 0xD1, 0x39, +0x31, 0x87, 0xB0, 0x03, 0x0C, 0x00, 0xBF, 0x51, +0x30, 0x80, 0x0F, 0x98, 0x3D, 0x0A, 0x2F, 0x80, +0x0F, 0x98, 0xA2, 0x0F, 0x02, 0x0E, 0x0D, 0xF3, +0xA0, 0x03, 0x21, 0x01, 0xB0, 0x03, 0x0C, 0x00, +0xBF, 0x51, 0x10, 0x80, 0xA1, 0x19, 0xA1, 0x49, +0x61, 0x80, 0x01, 0x0E, 0xFE, 0x0D, 0x0F, 0x98, +0x8D, 0x08, 0x0F, 0x88, 0x3B, 0x0C, 0xA2, 0x49, +0x41, 0x80, 0x02, 0x0E, 0xFE, 0x0D, 0x0F, 0x88, +0x5C, 0x0C, 0xA0, 0x03, 0xFD, 0x0D, 0xA0, 0x49, +0xB0, 0x80, 0x00, 0x03, 0xFE, 0x0D, 0x02, 0x49, +0x00, 0x88, 0x5C, 0x0C, 0x0F, 0x98, 0x8D, 0x08, +0x02, 0x0E, 0xFE, 0x0D, 0x0F, 0x88, 0x45, 0x0C, +0xA0, 0x03, 0xFE, 0x0D, 0xA1, 0x49, 0x80, 0x80, +0x01, 0x0E, 0xFE, 0x0D, 0x0F, 0x98, 0x66, 0x0C, +0x0F, 0x98, 0x8D, 0x08, 0x0F, 0x88, 0x3B, 0x0C, +0x0F, 0x98, 0x8D, 0x08, 0x0F, 0x88, 0x3B, 0x0C, +0xCB, 0x18, 0x80, 0x1A, 0x3D, 0x0D, 0x60, 0x03, +0x56, 0x00, 0x10, 0x1A, 0x10, 0x00, 0xD0, 0x1A, +0x40, 0x01, 0x6C, 0x49, 0x8A, 0x80, 0xD0, 0x1A, +0xF0, 0x00, 0x1C, 0x19, 0x68, 0x49, 0x3A, 0x80, +0xD0, 0x1A, 0xA0, 0x00, 0x18, 0x19, 0x71, 0x18, +0x76, 0x38, 0x20, 0x1A, 0x10, 0x00, 0x30, 0x1A, +0xE8, 0x00, 0x60, 0x1A, 0x08, 0x0E, 0x03, 0x00, +0x00, 0x62, 0xFF, 0x00, 0x60, 0x08, 0x61, 0x21, +0x03, 0x00, 0xFF, 0xFF, 0x08, 0x79, 0x60, 0x08, +0x61, 0x21, 0x31, 0x21, 0x21, 0x39, 0x31, 0x87, +0x30, 0x1A, 0x08, 0x0E, 0x60, 0x19, 0x98, 0x00, +0x50, 0x03, 0x56, 0x00, 0x40, 0x1A, 0x65, 0x0D, +0x21, 0x18, 0x7B, 0x00, 0x47, 0x08, 0xB1, 0x21, +0x41, 0x21, 0x21, 0x39, 0xA1, 0x87, 0x40, 0x1A, +0x65, 0x0D, 0x96, 0x50, 0x21, 0x80, 0xC0, 0x0B, +0x6F, 0x80, 0x03, 0x00, 0x00, 0x62, 0xFF, 0x00, +0x04, 0x20, 0xA0, 0x00, 0xCA, 0x08, 0x61, 0x21, +0x31, 0x21, 0x65, 0x48, 0x11, 0x81, 0x30, 0x1A, +0x08, 0x0E, 0x60, 0x19, 0x81, 0x21, 0x98, 0x00, +0x40, 0x1A, 0x65, 0x0D, 0x21, 0x18, 0x7B, 0x00, +0x47, 0x08, 0xB1, 0x21, 0x41, 0x21, 0x21, 0x39, +0xA1, 0x87, 0x40, 0x1A, 0x65, 0x0D, 0xFF, 0xFF, +0xC1, 0x21, 0xD1, 0x39, 0xE1, 0x85, 0xFF, 0xA0, +0x80, 0x19, 0x90, 0x19, 0x00, 0x0E, 0x37, 0x0E, +0x00, 0x0E, 0x38, 0x0E, 0xD0, 0x03, 0x46, 0x02, +0xB0, 0x1A, 0x15, 0x08, 0xC0, 0x1A, 0xF2, 0x04, +0x40, 0x03, 0x3E, 0x00, 0x50, 0x03, 0x40, 0x00, +0x20, 0x19, 0x30, 0x19, 0x00, 0x1A, 0x00, 0x20, +0x1B, 0x00, 0xFF, 0xFF, 0x01, 0x38, 0x1C, 0x00, +0xFF, 0xFF, 0x01, 0x38, 0x04, 0x48, 0x1C, 0x80, +0x21, 0x21, 0x05, 0x48, 0x1A, 0x80, 0x31, 0x21, +0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, 0xE1, 0x86, +0x10, 0x03, 0x3F, 0x00, 0x21, 0x48, 0x1C, 0x80, +0x81, 0x19, 0x10, 0x03, 0x41, 0x00, 0x31, 0x48, +0x1C, 0x80, 0x91, 0x19, 0x00, 0x03, 0x10, 0x0B, +0x00, 0x49, 0x11, 0x80, 0x90, 0x19, 0x98, 0x60, +0x90, 0x49, 0x60, 0x80, 0x00, 0x03, 0x3D, 0x00, +0x00, 0x0D, 0x2F, 0x0E, 0x05, 0x0E, 0x30, 0x0E, +0x00, 0x03, 0x2F, 0x0E, 0x00, 0x49, 0x30, 0x80, +0x01, 0x39, 0x00, 0x0D, 0x2F, 0x0E, 0xFF, 0xA0, +0x00, 0x0E, 0xA9, 0x0A, 0x00, 0x0E, 0xAB, 0x0A, +0x00, 0x0E, 0xAA, 0x0A, 0x00, 0x0E, 0x37, 0x0E, +0x00, 0x0E, 0x38, 0x0E, 0xD0, 0x03, 0x46, 0x02, +0xB0, 0x1A, 0x15, 0x08, 0xC0, 0x1A, 0x55, 0x09, +0xA0, 0x03, 0xE1, 0x00, 0x90, 0x03, 0xD8, 0x00, +0x0B, 0x00, 0x1C, 0x00, 0xFF, 0xFF, 0x01, 0x38, +0x0F, 0x51, 0x10, 0x80, 0x00, 0x31, 0x0A, 0x48, +0xCD, 0x80, 0x10, 0x03, 0xA9, 0x0A, 0xFF, 0xFF, +0x11, 0x21, 0x01, 0x0D, 0xA9, 0x0A, 0x10, 0x03, +0xAB, 0x0A, 0xFF, 0xFF, 0x10, 0x20, 0x01, 0x0D, +0xAB, 0x0A, 0x09, 0x48, 0x6D, 0x80, 0x10, 0x03, +0xAA, 0x0A, 0xFF, 0xFF, 0x11, 0x21, 0x01, 0x0D, +0xAA, 0x0A, 0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, +0xF1, 0x85, 0x00, 0x03, 0xA9, 0x0A, 0x80, 0x03, +0xE2, 0x00, 0x08, 0x48, 0x0C, 0x82, 0x00, 0x03, +0xAA, 0x0A, 0x80, 0x03, 0xD9, 0x00, 0x08, 0x48, +0xAA, 0x81, 0x00, 0x03, 0xAB, 0x0A, 0x80, 0x03, +0xE3, 0x00, 0x08, 0x48, 0x4C, 0x81, 0x00, 0x03, +0xAB, 0x0A, 0x80, 0x03, 0xE4, 0x00, 0x00, 0x0E, +0x19, 0xF9, 0x00, 0x0D, 0x18, 0xF9, 0x00, 0x0E, +0x1B, 0xF9, 0x08, 0x0D, 0x1A, 0xF9, 0x00, 0x03, +0x18, 0xF9, 0x00, 0x4A, 0xC8, 0x00, 0x4D, 0x80, +0x00, 0x1A, 0xC8, 0x00, 0x1F, 0x80, 0x00, 0x19, +0x80, 0x03, 0x13, 0x01, 0xFF, 0xFF, 0x80, 0x20, +0xFF, 0xA0, 0x0F, 0x98, 0xA2, 0x0F, 0xD0, 0x03, +0x46, 0x02, 0x60, 0x1A, 0x20, 0x00, 0x56, 0x18, +0x67, 0x38, 0x0C, 0x00, 0x00, 0x0D, 0x10, 0xF9, +0x0F, 0x51, 0x30, 0x19, 0x10, 0x80, 0x31, 0x39, +0x03, 0x0D, 0x11, 0xF9, 0xFF, 0xFF, 0x07, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0xFF, 0xFF, +0x00, 0x03, 0x10, 0xF9, 0x10, 0x03, 0x11, 0xF9, +0xFF, 0xFF, 0x00, 0x0D, 0x00, 0xF9, 0x01, 0x0D, +0x01, 0xF9, 0x0B, 0x00, 0x00, 0x0D, 0x10, 0xF9, +0x0F, 0x51, 0x30, 0x19, 0x10, 0x80, 0x31, 0x39, +0x03, 0x0D, 0x11, 0xF9, 0xFF, 0xFF, 0x06, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0xFF, 0xFF, +0x00, 0x03, 0x10, 0xF9, 0x10, 0x03, 0x11, 0xF9, +0xFF, 0xFF, 0x00, 0x0D, 0x02, 0xF9, 0x01, 0x0D, +0x03, 0xF9, 0xFF, 0xFF, 0x00, 0x03, 0x00, 0xF9, +0x10, 0x03, 0x01, 0xF9, 0xFF, 0xFF, 0x00, 0x0D, +0x18, 0xF9, 0x01, 0x0D, 0x19, 0xF9, 0x05, 0x0D, +0x1A, 0xF9, 0x00, 0x0E, 0x1B, 0xF9, 0xFF, 0xFF, +0x00, 0x03, 0x18, 0xF9, 0xB0, 0x08, 0xB1, 0x21, +0xC1, 0x21, 0xD1, 0x39, 0x01, 0x88, 0x08, 0x0E, +0xFF, 0xA0, 0xD0, 0x03, 0x46, 0x02, 0x0B, 0x00, +0xC0, 0x08, 0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, +0xA1, 0x87, 0xFF, 0xA0, 0xD0, 0x03, 0x46, 0x02, +0xA0, 0x03, 0x4C, 0x00, 0x00, 0x0E, 0xA2, 0x0A, +0x00, 0x0E, 0xA3, 0x0A, 0x00, 0x0E, 0x00, 0xF9, +0x00, 0x0E, 0x01, 0xF9, 0x00, 0x0E, 0x02, 0xF9, +0x00, 0x0E, 0x03, 0xF9, 0x0B, 0x00, 0x1C, 0x00, +0xFF, 0xFF, 0xC0, 0x08, 0x01, 0x38, 0x0F, 0x51, +0x10, 0x80, 0x00, 0x31, 0x90, 0x03, 0xA2, 0x0A, +0x09, 0x48, 0x2C, 0x80, 0x00, 0x0D, 0xA2, 0x0A, +0x20, 0x03, 0x00, 0xF9, 0x10, 0x03, 0x01, 0xF9, +0x02, 0x0D, 0x00, 0xF9, 0x01, 0x0D, 0x01, 0xF9, +0x00, 0x0D, 0x02, 0xF9, 0x00, 0x0E, 0x03, 0xF9, +0x0A, 0x48, 0x6D, 0x80, 0x10, 0x03, 0xA3, 0x0A, +0xFF, 0xFF, 0x11, 0x21, 0x01, 0x0D, 0xA3, 0x0A, +0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, 0xA1, 0x85, +0x00, 0x03, 0x00, 0xF9, 0x10, 0x03, 0x01, 0xF9, +0x20, 0x03, 0x46, 0x02, 0xFF, 0xFF, 0x0F, 0x98, +0x7F, 0x15, 0x00, 0x0D, 0x52, 0x02, 0xFF, 0xA0, +0xB0, 0x03, 0x21, 0x01, 0xB2, 0x49, 0xAC, 0x82, +0xB0, 0x1A, 0x15, 0x08, 0xC0, 0x1A, 0x39, 0x0E, +0x0F, 0x98, 0x00, 0x0E, 0xB0, 0x1A, 0x15, 0x08, +0xC0, 0x1A, 0x39, 0x0E, 0x0F, 0x98, 0x50, 0x0E, +0xB0, 0x03, 0x21, 0x01, 0xA0, 0x03, 0x35, 0x0E, +0xFF, 0xFF, 0xA1, 0x21, 0xAB, 0x48, 0x4B, 0x80, +0x0A, 0x0D, 0x35, 0x0E, 0x91, 0x19, 0xFF, 0xA0, +0xB0, 0x1A, 0x15, 0x08, 0x0F, 0x98, 0x59, 0x0E, +0xA0, 0x03, 0xA2, 0x0A, 0x0A, 0x0D, 0x14, 0x00, +0xA0, 0x03, 0x52, 0x02, 0x0A, 0x0D, 0x9B, 0x00, +0xA0, 0x03, 0xA3, 0x0A, 0x0A, 0x0D, 0x13, 0x00, +0x90, 0x19, 0xFF, 0xA0, 0xB0, 0x1A, 0x15, 0x08, +0xC0, 0x1A, 0x39, 0x0E, 0x0F, 0x98, 0x00, 0x0E, +0xB0, 0x1A, 0x15, 0x08, 0xC0, 0x1A, 0x39, 0x0E, +0x0F, 0x98, 0x59, 0x0E, 0xA0, 0x03, 0xA2, 0x0A, +0x0A, 0x0D, 0x14, 0x00, 0xA0, 0x03, 0x52, 0x02, +0x0A, 0x0D, 0x9B, 0x00, 0xA0, 0x03, 0xA3, 0x0A, +0x0A, 0x0D, 0x13, 0x00, 0x90, 0x19, 0xFF, 0xA0, +0xB0, 0x1A, 0x15, 0x08, 0x0B, 0x0D, 0x02, 0x02, +0x0F, 0x98, 0x6D, 0x0C, 0xB0, 0x1A, 0x15, 0x08, +0x0F, 0x98, 0xFF, 0x0C, 0x0F, 0x98, 0x9F, 0x0D, +0xD0, 0x03, 0x46, 0x02, 0xB0, 0x1A, 0x15, 0x08, +0xC0, 0x1A, 0x55, 0x09, 0x00, 0x0E, 0x34, 0x0E, +0x00, 0x0E, 0x00, 0xF9, 0x00, 0x0E, 0x01, 0xF9, +0x00, 0x0E, 0x02, 0xF9, 0x00, 0x0E, 0x03, 0xF9, +0x0B, 0x00, 0x1C, 0x00, 0xFF, 0xFF, 0xC0, 0x08, +0x01, 0x38, 0x0F, 0x51, 0x10, 0x80, 0x00, 0x31, +0x20, 0x03, 0x00, 0xF9, 0x10, 0x03, 0x01, 0xF9, +0x02, 0x0D, 0x00, 0xF9, 0x01, 0x0D, 0x01, 0xF9, +0x00, 0x0D, 0x02, 0xF9, 0x00, 0x0E, 0x03, 0xF9, +0x10, 0x03, 0xA2, 0x0A, 0x01, 0x48, 0x2C, 0x80, +0x00, 0x0D, 0xA2, 0x0A, 0x0A, 0x48, 0x6D, 0x80, +0x10, 0x03, 0xA3, 0x0A, 0xFF, 0xFF, 0x11, 0x21, +0x01, 0x0D, 0xA3, 0x0A, 0x08, 0x48, 0x6D, 0x80, +0x10, 0x03, 0x34, 0x0E, 0xFF, 0xFF, 0x11, 0x21, +0x01, 0x0D, 0x34, 0x0E, 0xB1, 0x21, 0xC1, 0x21, +0xD1, 0x39, 0x21, 0x85, 0x00, 0x03, 0x00, 0xF9, +0x10, 0x03, 0x01, 0xF9, 0x20, 0x03, 0x46, 0x02, +0xFF, 0xFF, 0x0F, 0x98, 0x7F, 0x15, 0x00, 0x0D, +0x9A, 0x00, 0x10, 0x03, 0xA2, 0x0A, 0x01, 0x0D, +0x99, 0x00, 0xB0, 0x03, 0x0C, 0x00, 0xBF, 0x51, +0xA1, 0x80, 0x00, 0x0E, 0x35, 0x0E, 0xA0, 0x03, +0xA2, 0x0A, 0x0A, 0x0D, 0x14, 0x00, 0xA0, 0x03, +0xA3, 0x0A, 0x0A, 0x0D, 0x13, 0x00, 0x00, 0x03, +0x14, 0x01, 0xA0, 0x03, 0x34, 0x0E, 0x0A, 0x0D, +0x33, 0x0E, 0xB0, 0x03, 0x0C, 0x00, 0xBE, 0x51, +0x70, 0x80, 0xA0, 0x48, 0x5C, 0x80, 0x00, 0x03, +0x11, 0x01, 0x00, 0x0D, 0x36, 0x0E, 0xFF, 0xA0, +0xA0, 0x03, 0x0C, 0x00, 0xAF, 0x51, 0x50, 0x80, +0x0F, 0x98, 0x9B, 0x0E, 0x90, 0x49, 0xF1, 0xA0, +0xFF, 0xFF, 0xB0, 0x03, 0x0C, 0x00, 0xBF, 0x51, +0xA1, 0x80, 0xA0, 0x03, 0x99, 0x00, 0x0A, 0x0D, +0x14, 0x00, 0xA0, 0x03, 0x9A, 0x00, 0x0A, 0x0D, +0x52, 0x02, 0x0A, 0x0D, 0x9B, 0x00, 0x00, 0x0E, +0x34, 0x0E, 0x00, 0x0E, 0x35, 0x0E, 0xB0, 0x1A, +0x15, 0x08, 0xD0, 0x03, 0x46, 0x02, 0xC0, 0x1A, +0x72, 0x02, 0x9B, 0x00, 0x00, 0x03, 0x15, 0x01, +0x00, 0x49, 0x10, 0x80, 0x91, 0x7B, 0x40, 0x1A, +0x00, 0x20, 0x49, 0x38, 0xAC, 0x00, 0xC4, 0x08, +0x50, 0x03, 0xFC, 0x01, 0x50, 0x49, 0x21, 0x81, +0x50, 0x03, 0x46, 0x00, 0x50, 0x49, 0xE0, 0x80, +0x5A, 0x18, 0x54, 0x38, 0x45, 0x18, 0x00, 0x03, +0x47, 0x00, 0x50, 0x48, 0x1D, 0x80, 0x40, 0x18, +0x00, 0x31, 0x50, 0x48, 0x1B, 0x80, 0x40, 0x18, +0xA4, 0x38, 0xCA, 0x08, 0xB1, 0x21, 0xC1, 0x21, +0xD1, 0x39, 0xB1, 0x85, 0xFF, 0xA0, 0x00, 0x0E, +0x05, 0xF8, 0x71, 0x19, 0xA0, 0x03, 0x10, 0x0B, +0xA0, 0x49, 0xE0, 0x80, 0xA0, 0x03, 0x9D, 0x0A, +0xA0, 0x49, 0xA0, 0x80, 0xA0, 0x03, 0xF1, 0x0A, +0xA1, 0x49, 0x31, 0x80, 0x70, 0x03, 0x26, 0x00, +0xEF, 0x80, 0x70, 0x03, 0x27, 0x00, 0xBF, 0x80, +0x00, 0x03, 0x06, 0x0B, 0x00, 0x49, 0x40, 0x80, +0x01, 0x39, 0x00, 0x0D, 0x06, 0x0B, 0x5F, 0x87, +0x70, 0x03, 0x25, 0x00, 0xFF, 0xFF, 0xA0, 0x03, +0x0C, 0x00, 0xAF, 0x51, 0xF1, 0xA0, 0xFF, 0xFF, +0x70, 0x49, 0x00, 0x88, 0x3D, 0x0A, 0x60, 0x1A, +0x20, 0x00, 0x67, 0x38, 0x78, 0x7B, 0x76, 0x68, +0x07, 0x0D, 0x06, 0xF8, 0x05, 0x0E, 0x07, 0xF8, +0xFF, 0xA0, 0x00, 0x03, 0x15, 0x00, 0x00, 0x0D, +0xB3, 0x0A, 0x00, 0x03, 0x33, 0x00, 0x00, 0x0D, +0xB5, 0x0A, 0x00, 0x03, 0x31, 0x00, 0x00, 0x0D, +0xB6, 0x0A, 0x00, 0x03, 0x32, 0x00, 0x00, 0x0D, +0xB9, 0x0A, 0x00, 0x03, 0x10, 0x01, 0x00, 0x0D, +0xB8, 0x0A, 0x00, 0x03, 0x30, 0x00, 0x10, 0x03, +0x32, 0x0E, 0xFF, 0xFF, 0x01, 0x20, 0x00, 0x0D, +0x9B, 0x0A, 0x00, 0x03, 0xA6, 0x00, 0x00, 0x0D, +0x03, 0x0B, 0x00, 0x03, 0x1F, 0x00, 0x00, 0x0D, +0xA0, 0x0A, 0x00, 0x03, 0x20, 0x00, 0x00, 0x0D, +0xA1, 0x0A, 0x00, 0x03, 0x1D, 0x00, 0x00, 0x0D, +0x9E, 0x0A, 0x00, 0x03, 0x1E, 0x00, 0x00, 0x0D, +0x9F, 0x0A, 0x00, 0x03, 0x2C, 0x00, 0x10, 0x18, +0x20, 0x18, 0x00, 0x62, 0xFF, 0x00, 0x00, 0x0D, +0x6C, 0x02, 0x18, 0x79, 0x1F, 0x61, 0x01, 0x0D, +0x6D, 0x02, 0x2C, 0x79, 0x02, 0x0D, 0x6E, 0x02, +0xFF, 0xA0, 0x00, 0x0E, 0xF4, 0x0D, 0x00, 0x0E, +0xF6, 0x0D, 0x80, 0x03, 0x55, 0x00, 0xFF, 0xFF, +0x81, 0x39, 0x08, 0x0D, 0xF7, 0x0D, 0x90, 0x03, +0x56, 0x00, 0xFF, 0xFF, 0x91, 0x39, 0x09, 0x0D, +0xF5, 0x0D, 0xFF, 0xA0, 0x0F, 0x98, 0x14, 0x10, +0x10, 0x03, 0xA9, 0x00, 0x20, 0x03, 0xA8, 0x00, +0x20, 0x49, 0x91, 0x80, 0x10, 0x49, 0x31, 0x80, +0x01, 0x0E, 0xF6, 0x0D, 0xFF, 0xA0, 0x81, 0x39, +0x08, 0x0D, 0xF7, 0x0D, 0xFF, 0xA0, 0x10, 0x49, +0x31, 0x80, 0x01, 0x0E, 0xF4, 0x0D, 0xFF, 0xA0, +0x91, 0x39, 0x09, 0x0D, 0xF5, 0x0D, 0xFF, 0xA0, +0x00, 0x0E, 0x71, 0x02, 0x00, 0x03, 0xE5, 0x00, +0x0F, 0x51, 0xC0, 0x80, 0x01, 0x0E, 0x71, 0x02, +0x0F, 0x98, 0x14, 0x10, 0x0F, 0x98, 0xC8, 0x29, +0x00, 0x0E, 0x71, 0x02, 0x0F, 0x98, 0x25, 0x10, +0x0F, 0x88, 0xC8, 0x29, 0x0F, 0x98, 0x14, 0x10, +0x0F, 0x88, 0xC8, 0x29, 0x40, 0x03, 0x9B, 0x0A, +0xB0, 0x1A, 0xC6, 0x0D, 0xA0, 0x19, 0x0B, 0x00, +0x04, 0x48, 0x2C, 0x80, 0x01, 0x21, 0xB0, 0x08, +0xC3, 0x21, 0xB1, 0x21, 0xA1, 0x21, 0xAF, 0x49, +0x61, 0x87, 0xFF, 0xA0, 0xB0, 0x1A, 0xC6, 0x0D, +0xC0, 0x1A, 0xE4, 0x0D, 0xA0, 0x19, 0x40, 0x03, +0x51, 0x00, 0x50, 0x03, 0x30, 0x00, 0x00, 0x03, +0x32, 0x0E, 0xFF, 0xFF, 0x40, 0x20, 0x50, 0x20, +0x0B, 0x00, 0x05, 0x48, 0x2C, 0x80, 0xB4, 0x08, +0x2F, 0x80, 0xB0, 0x0B, 0xC0, 0x0B, 0xC1, 0x21, +0xB1, 0x21, 0xA1, 0x21, 0xAF, 0x49, 0x41, 0x87, +0xFF, 0xA0, 0xB0, 0x1A, 0xC6, 0x0D, 0xC0, 0x1A, +0xE4, 0x0D, 0xA0, 0x19, 0x50, 0x03, 0x51, 0x00, +0x40, 0x03, 0x30, 0x00, 0x00, 0x03, 0x32, 0x0E, +0xFF, 0xFF, 0x40, 0x20, 0x50, 0x20, 0x0B, 0x00, +0x04, 0x48, 0x2C, 0x80, 0xB5, 0x08, 0x2F, 0x80, +0xB0, 0x0B, 0xC0, 0x0B, 0xC1, 0x21, 0xB1, 0x21, +0xA1, 0x21, 0xAF, 0x49, 0x41, 0x87, 0xFF, 0xA0, +0xB0, 0x1A, 0x32, 0x06, 0x60, 0x1A, 0x75, 0x0D, +0xC0, 0x19, 0x80, 0x03, 0x55, 0x00, 0x90, 0x03, +0x56, 0x00, 0x30, 0x03, 0xB3, 0x0A, 0x00, 0x19, +0x10, 0x19, 0xD0, 0x19, 0xAC, 0x18, 0x4B, 0x18, +0x4A, 0x20, 0x24, 0x00, 0x23, 0x48, 0x4C, 0x80, +0xFF, 0xFF, 0xD1, 0x21, 0x0F, 0x98, 0xFF, 0x14, +0xA9, 0x20, 0x20, 0x03, 0x46, 0x02, 0xA2, 0x48, +0x2C, 0x87, 0x2D, 0x18, 0x20, 0x49, 0x40, 0x80, +0x0F, 0x98, 0x7F, 0x15, 0x60, 0x08, 0x3F, 0x80, +0x00, 0x1A, 0x10, 0x27, 0x60, 0x08, 0x61, 0x21, +0xC1, 0x21, 0xC9, 0x48, 0x0C, 0x86, 0xFF, 0xA0, +0xB0, 0x1A, 0x32, 0x06, 0x60, 0x1A, 0x85, 0x0D, +0xC0, 0x19, 0x80, 0x03, 0x55, 0x00, 0x90, 0x03, +0x56, 0x00, 0x30, 0x03, 0xB3, 0x0A, 0x00, 0x19, +0x10, 0x19, 0xA0, 0x19, 0xD0, 0x19, 0x4B, 0x18, +0x4A, 0x20, 0x24, 0x00, 0x23, 0x48, 0x4C, 0x80, +0xFF, 0xFF, 0xD1, 0x21, 0x0F, 0x98, 0xFF, 0x14, +0xA1, 0x21, 0xA9, 0x48, 0x4C, 0x87, 0x2D, 0x18, +0x20, 0x49, 0x40, 0x80, 0x0F, 0x98, 0x7F, 0x15, +0x60, 0x08, 0x3F, 0x80, 0x00, 0x1A, 0x10, 0x27, +0x60, 0x08, 0x61, 0x21, 0xC9, 0x20, 0xB9, 0x20, +0x10, 0x03, 0x46, 0x02, 0xC1, 0x48, 0xFC, 0x85, +0xFF, 0xA0, 0x00, 0x03, 0x0C, 0x00, 0x08, 0x51, +0xF0, 0xA0, 0xFF, 0xFF, 0x00, 0x03, 0x9A, 0x00, +0x20, 0x03, 0x1B, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0x66, 0x15, 0x10, 0x03, 0x1C, 0x00, 0x20, 0x03, +0x9A, 0x00, 0x30, 0x03, 0x2F, 0x00, 0x23, 0x48, +0x2D, 0x80, 0xFF, 0xFF, 0x11, 0x7B, 0xFF, 0xFF, +0x0F, 0x98, 0x25, 0x15, 0xA0, 0x03, 0x43, 0x00, +0xFF, 0xFF, 0xA0, 0x20, 0x00, 0x03, 0xA2, 0x0A, +0x10, 0x03, 0xCD, 0x00, 0x10, 0x49, 0xA0, 0x81, +0x00, 0x0D, 0x18, 0xF9, 0x00, 0x0E, 0x19, 0xF9, +0x01, 0x0D, 0x1A, 0xF9, 0x00, 0x0E, 0x1B, 0xF9, +0xFF, 0xFF, 0x00, 0x03, 0x18, 0xF9, 0x10, 0x03, +0xCE, 0x00, 0x00, 0x0D, 0x10, 0xF9, 0x00, 0x0E, +0x11, 0xF9, 0x01, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0xFF, 0xFF, 0x00, 0x03, 0x10, 0xF9, +0xFF, 0xFF, 0xA0, 0x20, 0x03, 0x19, 0x12, 0x19, +0xB0, 0x03, 0xB1, 0x0A, 0xAB, 0x48, 0x2B, 0x80, +0x0F, 0x19, 0x14, 0x19, 0xFF, 0xFF, 0xB0, 0x58, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xB0, 0x1E, +0xAB, 0x20, 0xA0, 0x20, 0xA1, 0x78, 0x0A, 0x0D, +0xB1, 0x0A, 0x00, 0x03, 0xB3, 0x0A, 0xA0, 0x48, +0x9B, 0x80, 0x00, 0x0E, 0xB4, 0x0A, 0xA0, 0x03, +0xB3, 0x0A, 0x0A, 0x0D, 0xB1, 0x0A, 0x0A, 0x0D, +0x44, 0x00, 0xFF, 0xA0, 0x0A, 0x0D, 0x44, 0x00, +0xA0, 0x38, 0x0A, 0x0D, 0xB4, 0x0A, 0xFF, 0xA0, +0x00, 0x0E, 0x03, 0x0E, 0x00, 0x0E, 0x14, 0x0B, +0x00, 0x0E, 0x34, 0x0B, 0x00, 0x0E, 0x8B, 0x0B, +0x00, 0x0E, 0x8C, 0x0B, 0x10, 0x03, 0x32, 0x0E, +0x00, 0x03, 0x30, 0x0E, 0x00, 0x49, 0xF1, 0x81, +0x10, 0x19, 0xB0, 0x03, 0x0C, 0x00, 0xBE, 0x51, +0x80, 0x82, 0x00, 0x03, 0x33, 0x0E, 0x00, 0x49, +0xC0, 0x80, 0x10, 0x03, 0x32, 0x0E, 0x00, 0x03, +0x12, 0x01, 0x10, 0x48, 0x3B, 0x80, 0x11, 0x21, +0x0F, 0x98, 0x55, 0x10, 0x01, 0x0D, 0x32, 0x0E, +0xFF, 0xA0, 0x10, 0x19, 0x00, 0x03, 0x36, 0x0E, +0x00, 0x49, 0x30, 0x81, 0x01, 0x39, 0x00, 0x0D, +0x36, 0x0E, 0x00, 0x49, 0xE0, 0x80, 0x10, 0x03, +0x32, 0x0E, 0x00, 0x03, 0x12, 0x01, 0x10, 0x48, +0x8B, 0x80, 0x11, 0x21, 0x0F, 0x98, 0x55, 0x10, +0x00, 0x03, 0x33, 0x0E, 0x00, 0x49, 0xF1, 0xA0, +0xFF, 0xFF, 0x01, 0x0D, 0x32, 0x0E, 0x00, 0x03, +0x35, 0x0E, 0x00, 0x49, 0xF1, 0xA0, 0xFF, 0xFF, +0x00, 0x03, 0x05, 0x00, 0x00, 0x4A, 0x33, 0x00, +0x40, 0x80, 0x00, 0x03, 0x46, 0x00, 0x00, 0x49, +0x60, 0x80, 0x0F, 0x98, 0x27, 0x14, 0x0F, 0x98, +0x3F, 0x10, 0x0F, 0x98, 0xD4, 0x14, 0x0F, 0x98, +0xFD, 0x13, 0x0F, 0x98, 0x2C, 0x16, 0x90, 0x49, +0x00, 0x88, 0xB0, 0x15, 0xA0, 0x03, 0xA2, 0x0A, +0xB0, 0x03, 0x9F, 0x0A, 0xAB, 0x48, 0x2C, 0x80, +0x00, 0x0E, 0xAC, 0x0A, 0x0F, 0x98, 0x27, 0x14, +0xA0, 0x03, 0x45, 0x00, 0xA0, 0x49, 0x61, 0x80, +0xA0, 0x03, 0x46, 0x00, 0xA0, 0x49, 0x00, 0x88, +0x21, 0x12, 0x5F, 0x80, 0x0F, 0x98, 0x98, 0x20, +0x80, 0x49, 0x00, 0x88, 0x21, 0x12, 0x00, 0x03, +0x46, 0x00, 0x10, 0x03, 0x4E, 0x00, 0x01, 0x48, +0x30, 0x81, 0x01, 0x0D, 0x46, 0x00, 0x00, 0x03, +0xBA, 0x0A, 0x00, 0x49, 0x01, 0x88, 0xD4, 0x14, +0x01, 0x0E, 0xBA, 0x0A, 0x0F, 0x98, 0x65, 0x10, +0x00, 0x0E, 0xAC, 0x0A, 0x00, 0x0E, 0x95, 0x0A, +0x0F, 0x98, 0xD4, 0x14, 0x0F, 0x88, 0xD1, 0x08, +0x00, 0x03, 0x48, 0x00, 0x00, 0x0D, 0xB3, 0x0A, +0x00, 0x0D, 0xB0, 0x0A, 0x00, 0x03, 0x51, 0x00, +0x10, 0x03, 0x32, 0x0E, 0xFF, 0xFF, 0x01, 0x20, +0x00, 0x0D, 0x9B, 0x0A, 0x00, 0x0D, 0x03, 0x0B, +0x00, 0x03, 0x24, 0x00, 0x00, 0x0D, 0xA0, 0x0A, +0x00, 0x0D, 0xA1, 0x0A, 0x00, 0x03, 0x22, 0x00, +0x00, 0x0D, 0x9E, 0x0A, 0x00, 0x03, 0x23, 0x00, +0x00, 0x0D, 0x9F, 0x0A, 0x00, 0x03, 0x2C, 0x00, +0x10, 0x18, 0x20, 0x18, 0x00, 0x62, 0xFF, 0x00, +0x00, 0x0D, 0x6C, 0x02, 0x18, 0x79, 0x1F, 0x61, +0x01, 0x0D, 0x6D, 0x02, 0x2C, 0x79, 0x21, 0x21, +0x02, 0x0D, 0x6E, 0x02, 0xA0, 0x03, 0x0C, 0x00, +0xA5, 0x51, 0x01, 0x88, 0x93, 0x12, 0x00, 0x03, +0x4F, 0x00, 0x00, 0x0D, 0xB5, 0x0A, 0x00, 0x03, +0x50, 0x00, 0x00, 0x0D, 0xB6, 0x0A, 0x00, 0x0D, +0xB9, 0x0A, 0x4F, 0x81, 0xA0, 0x03, 0x46, 0x00, +0xA0, 0x49, 0x40, 0x80, 0xA1, 0x39, 0x0A, 0x0D, +0x46, 0x00, 0x8F, 0x86, 0x00, 0x03, 0xBA, 0x0A, +0x00, 0x49, 0x60, 0x80, 0x00, 0x0E, 0xBA, 0x0A, +0x0F, 0x98, 0x80, 0x10, 0x0F, 0x88, 0xD4, 0x14, +0x0F, 0x98, 0xD4, 0x0F, 0x00, 0x03, 0x9B, 0x0A, +0x00, 0x0D, 0x9C, 0x00, 0x00, 0x03, 0x0C, 0x00, +0x07, 0x51, 0x60, 0x80, 0x00, 0x03, 0xFD, 0x0D, +0x00, 0x49, 0x20, 0x80, 0x0F, 0x88, 0x93, 0x12, +0x0F, 0x98, 0x11, 0x14, 0x00, 0x0E, 0x17, 0x0B, +0x0F, 0x98, 0x1A, 0x17, 0x90, 0x49, 0x00, 0x88, +0x93, 0x12, 0x95, 0x49, 0x00, 0x88, 0x8F, 0x12, +0x00, 0x03, 0xFD, 0x0D, 0x00, 0x49, 0xD0, 0x80, +0x00, 0x03, 0x37, 0x00, 0x00, 0x49, 0x90, 0x80, +0x10, 0x03, 0xFF, 0x0D, 0xFF, 0xFF, 0x11, 0x21, +0x01, 0x0D, 0xFF, 0x0D, 0x10, 0x48, 0x0C, 0x88, +0xD4, 0x14, 0x00, 0x03, 0x37, 0x00, 0x00, 0x0D, +0xFF, 0x0D, 0x97, 0x49, 0x51, 0x80, 0x05, 0x0E, +0xFC, 0x01, 0x00, 0x0E, 0x17, 0x0B, 0xCF, 0x80, +0x92, 0x49, 0x01, 0x81, 0x00, 0x03, 0x2F, 0x0E, +0x00, 0x49, 0x41, 0x80, 0x00, 0x03, 0x36, 0x00, +0x00, 0x0D, 0xF8, 0x0D, 0x01, 0x0E, 0x17, 0x0B, +0x0F, 0x98, 0xD4, 0x14, 0x0F, 0x98, 0xBF, 0x16, +0x0F, 0x88, 0xB0, 0x15, 0xA0, 0x03, 0x0C, 0x00, +0xA4, 0x51, 0x80, 0x80, 0xA0, 0x03, 0xF8, 0x0D, +0xA0, 0x49, 0x40, 0x80, 0xA1, 0x39, 0x0A, 0x0D, +0xF8, 0x0D, 0xEF, 0x86, 0x0F, 0x98, 0xD4, 0x14, +0x0F, 0x98, 0xBF, 0x16, 0x0F, 0x88, 0xB0, 0x15, +0x0F, 0x98, 0xD4, 0x14, 0x0F, 0x88, 0xBF, 0x16, +0x00, 0x0E, 0xFF, 0x0D, 0xA0, 0x03, 0x0C, 0x00, +0xA4, 0x51, 0x80, 0x80, 0xA0, 0x03, 0xF8, 0x0D, +0xA0, 0x49, 0x40, 0x80, 0xA1, 0x39, 0x0A, 0x0D, +0xF8, 0x0D, 0x6F, 0x85, 0x00, 0x03, 0x05, 0x00, +0x00, 0x4A, 0x33, 0x00, 0x60, 0x80, 0x00, 0x03, +0x46, 0x00, 0x00, 0x49, 0x00, 0x98, 0x3F, 0x10, +0xFF, 0xFF, 0xA0, 0x03, 0x46, 0x02, 0xC0, 0x03, +0xF0, 0x0A, 0xB0, 0x1A, 0x32, 0x06, 0xD0, 0x19, +0x9B, 0x00, 0xFF, 0xFF, 0xB1, 0x21, 0x9C, 0x48, +0x1C, 0x80, 0xC9, 0x18, 0x9D, 0x48, 0x1C, 0x80, +0xD9, 0x18, 0xA1, 0x39, 0x51, 0x87, 0x0C, 0x0D, +0xF0, 0x0A, 0x0D, 0x0D, 0xF3, 0x0A, 0x0D, 0x0D, +0xF4, 0x0A, 0x20, 0x03, 0x2A, 0x00, 0x0D, 0x18, +0x0F, 0x98, 0x66, 0x15, 0x00, 0x0D, 0x2A, 0x0E, +0xA0, 0x1A, 0x2A, 0x0E, 0x0F, 0x98, 0x5A, 0x30, +0x00, 0x03, 0x0C, 0x00, 0x08, 0x51, 0x40, 0x82, +0xA0, 0x03, 0xB3, 0x0A, 0x00, 0x03, 0x46, 0x00, +0x00, 0x49, 0x01, 0x88, 0x1D, 0x13, 0x00, 0x03, +0xF0, 0x0A, 0x20, 0x03, 0x1A, 0x00, 0x20, 0x49, +0x00, 0x81, 0x0F, 0x98, 0x66, 0x15, 0xA0, 0x18, +0xB0, 0x03, 0xB1, 0x0A, 0xAB, 0x48, 0x9D, 0x80, +0x0A, 0x0D, 0xB0, 0x0A, 0x10, 0x03, 0xB3, 0x0A, +0x0A, 0x18, 0x01, 0x38, 0x00, 0x0D, 0xB4, 0x0A, +0xDF, 0x82, 0xA0, 0x03, 0xB1, 0x0A, 0x0A, 0x0D, +0xB0, 0x0A, 0x00, 0x0E, 0xB4, 0x0A, 0x6F, 0x82, +0xA0, 0x03, 0x97, 0x0A, 0xA0, 0x49, 0xA0, 0x82, +0xA0, 0x03, 0xB3, 0x0A, 0x00, 0x03, 0x46, 0x00, +0x00, 0x49, 0xC1, 0x81, 0x00, 0x03, 0xF0, 0x0A, +0x20, 0x03, 0x1A, 0x00, 0x20, 0x49, 0x00, 0x81, +0x0F, 0x98, 0x66, 0x15, 0xA0, 0x18, 0xB0, 0x03, +0xB3, 0x0A, 0xAB, 0x48, 0x9D, 0x80, 0x0A, 0x0D, +0xB0, 0x0A, 0x10, 0x03, 0xB3, 0x0A, 0x0A, 0x18, +0x01, 0x38, 0x00, 0x0D, 0xB4, 0x0A, 0x6F, 0x80, +0xA0, 0x03, 0xB3, 0x0A, 0x0A, 0x0D, 0xB0, 0x0A, +0x00, 0x0E, 0xB4, 0x0A, 0x10, 0x03, 0xB3, 0x0A, +0xA1, 0x48, 0x4A, 0x80, 0x00, 0x0E, 0xB4, 0x0A, +0x01, 0x0D, 0xB0, 0x0A, 0xA0, 0x03, 0xB0, 0x0A, +0x10, 0x03, 0x32, 0x0E, 0x10, 0x49, 0x90, 0x80, +0x10, 0x03, 0x42, 0x00, 0x00, 0x03, 0x2F, 0x0E, +0xFF, 0xFF, 0xA1, 0x20, 0xA0, 0x20, 0x0A, 0x0D, +0xB0, 0x0A, 0x0A, 0x0D, 0x12, 0x00, 0x00, 0x1A, +0x32, 0x06, 0x00, 0x0D, 0x11, 0x0B, 0x0A, 0x0D, +0xB2, 0x0A, 0x0F, 0x98, 0xF4, 0x1B, 0x00, 0x03, +0xAD, 0x0A, 0x00, 0x49, 0x00, 0x88, 0x7D, 0x12, +0x0F, 0x98, 0x28, 0x1A, 0x00, 0x03, 0xAD, 0x0A, +0x00, 0x49, 0x00, 0x88, 0x7D, 0x12, 0x00, 0x03, +0x0C, 0x00, 0x09, 0x51, 0x40, 0x80, 0x0F, 0x98, +0x9B, 0x10, 0x0F, 0x98, 0xC7, 0x10, 0x00, 0x0E, +0xAC, 0x0A, 0x80, 0x03, 0xF0, 0x0A, 0x90, 0x03, +0xBA, 0x00, 0xA0, 0x03, 0x98, 0x0A, 0xA0, 0x49, +0xA0, 0x80, 0x89, 0x48, 0x3D, 0x80, 0x00, 0x0E, +0xF1, 0x0A, 0xCF, 0x80, 0xA0, 0x03, 0xF2, 0x0A, +0x0A, 0x0D, 0xF1, 0x0A, 0x7F, 0x80, 0x89, 0x48, +0x3D, 0x80, 0x00, 0x0E, 0xF1, 0x0A, 0x2F, 0x80, +0x01, 0x0E, 0xF1, 0x0A, 0xA0, 0x03, 0xF1, 0x0A, +0x0A, 0x0D, 0xF2, 0x0A, 0x02, 0x0E, 0x10, 0x0B, +0x00, 0x03, 0xAD, 0x0A, 0x00, 0x0D, 0xAE, 0x0A, +0x0F, 0x98, 0xEA, 0x1C, 0x00, 0x03, 0x0C, 0x00, +0x0D, 0x51, 0xA0, 0x80, 0x0F, 0x98, 0x72, 0x1F, +0xD0, 0x03, 0xAD, 0x0A, 0xD0, 0x49, 0x41, 0x80, +0x0F, 0x98, 0xD4, 0x14, 0x0F, 0x88, 0xB0, 0x15, +0x10, 0x03, 0xE5, 0x00, 0x1F, 0x51, 0xF0, 0x80, +0xD0, 0x03, 0xAE, 0x0A, 0xFF, 0xFF, 0x0F, 0x98, +0xC9, 0x1A, 0x90, 0x49, 0x80, 0x80, 0x00, 0x03, +0x21, 0x00, 0x00, 0x0D, 0xFD, 0x0D, 0x0F, 0x98, +0xD4, 0x14, 0x0F, 0x88, 0xC7, 0x15, 0x00, 0x03, +0xAD, 0x0A, 0x00, 0x49, 0x4A, 0x80, 0x0F, 0x98, +0xC7, 0x15, 0x0F, 0x88, 0xD4, 0x14, 0x00, 0x03, +0xAD, 0x0A, 0x00, 0x0D, 0xAF, 0x0A, 0x0F, 0x98, +0x2F, 0x21, 0xA0, 0x03, 0xAD, 0x0A, 0xA0, 0x49, +0x00, 0x88, 0x7D, 0x12, 0x0F, 0x98, 0xD4, 0x14, +0x0F, 0x98, 0xF8, 0x25, 0xA0, 0x03, 0xAE, 0x0A, +0xA0, 0x49, 0x4A, 0x80, 0x0F, 0x98, 0x9B, 0x15, +0x0F, 0x88, 0xBF, 0x16, 0x00, 0x03, 0xAE, 0x0A, +0x00, 0x0D, 0xAD, 0x0A, 0x0F, 0x98, 0x5E, 0x1D, +0x0F, 0x98, 0xBC, 0x1E, 0xA0, 0x03, 0xAD, 0x0A, +0xA0, 0x49, 0x4A, 0x80, 0x0F, 0x98, 0xB0, 0x15, +0x0F, 0x88, 0xBF, 0x16, 0x0A, 0x0D, 0x9A, 0x0A, +0x0F, 0x98, 0x30, 0x20, 0xA0, 0x03, 0xAD, 0x0A, +0x0A, 0x0D, 0x98, 0x0A, 0xA0, 0x03, 0xAD, 0x0A, +0x0A, 0x0D, 0x97, 0x0A, 0x0F, 0x98, 0x3E, 0x29, +0x00, 0x03, 0x05, 0x00, 0x00, 0x4A, 0x33, 0x00, +0x00, 0x98, 0xFD, 0x13, 0xFF, 0xFF, 0xA0, 0x03, +0x8D, 0x0B, 0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, +0x8D, 0x0B, 0xA0, 0x03, 0x31, 0x0E, 0xA0, 0x4A, +0x30, 0x75, 0x3B, 0x80, 0xA1, 0x21, 0x0A, 0x0D, +0x31, 0x0E, 0x00, 0x03, 0x3C, 0x00, 0xA0, 0x48, +0x2D, 0x80, 0x00, 0x0E, 0x30, 0x0E, 0xA0, 0x03, +0x49, 0x0B, 0xA0, 0x49, 0xF1, 0xA0, 0xFF, 0xFF, +0x00, 0x0E, 0x8B, 0x0B, 0x00, 0x0E, 0x8C, 0x0B, +0x0F, 0x88, 0xBF, 0x16, 0x90, 0x1A, 0x8B, 0x0B, +0x80, 0x1A, 0x32, 0x06, 0x00, 0x03, 0x46, 0x02, +0xFF, 0xFF, 0x80, 0x20, 0x09, 0x00, 0x80, 0x08, +0x90, 0x1A, 0x4F, 0x0B, 0x81, 0x21, 0x09, 0x00, +0x80, 0x08, 0x91, 0x21, 0x81, 0x21, 0x09, 0x00, +0x80, 0x08, 0xFF, 0xA0, 0xA0, 0x03, 0x31, 0x00, +0xB0, 0x03, 0x10, 0x01, 0x00, 0x03, 0x3F, 0x00, +0x30, 0x03, 0x41, 0x00, 0xFF, 0xFF, 0x03, 0x20, +0x10, 0x03, 0xAA, 0x0A, 0x10, 0x48, 0x3C, 0x80, +0xA3, 0x7B, 0xB2, 0x7B, 0x0F, 0x80, 0x0A, 0x0D, +0xB6, 0x0A, 0x0B, 0x0D, 0xB8, 0x0A, 0xFF, 0xA0, +0x80, 0x1A, 0x00, 0x80, 0x90, 0x1A, 0xFF, 0x7F, +0xC0, 0x03, 0x46, 0x02, 0xD0, 0x1A, 0x72, 0x02, +0x40, 0x1A, 0xF2, 0x04, 0x20, 0x19, 0x30, 0x19, +0x00, 0x03, 0x3E, 0x00, 0x10, 0x03, 0x40, 0x00, +0xAD, 0x00, 0xB4, 0x00, 0xFF, 0xFF, 0xAB, 0x38, +0xDA, 0x08, 0xA0, 0x48, 0x1C, 0x80, 0x21, 0x21, +0xA1, 0x48, 0x1A, 0x80, 0x31, 0x21, 0xA8, 0x48, +0x1D, 0x80, 0x8A, 0x18, 0xA9, 0x48, 0x1B, 0x80, +0x9A, 0x18, 0xD1, 0x21, 0x41, 0x21, 0xC1, 0x39, +0xB1, 0x86, 0x08, 0x0D, 0x50, 0x02, 0x09, 0x0D, +0x51, 0x02, 0x80, 0x19, 0x90, 0x19, 0x10, 0x03, +0x3F, 0x00, 0x21, 0x48, 0x1C, 0x80, 0x81, 0x19, +0x10, 0x03, 0x41, 0x00, 0x31, 0x48, 0x1C, 0x80, +0x91, 0x19, 0x00, 0x03, 0x10, 0x0B, 0x00, 0x49, +0x11, 0x80, 0x90, 0x19, 0x98, 0x60, 0x90, 0x49, +0x60, 0x80, 0x00, 0x03, 0x3D, 0x00, 0x00, 0x0D, +0x2F, 0x0E, 0x05, 0x0E, 0x30, 0x0E, 0x00, 0x03, +0x2F, 0x0E, 0x00, 0x49, 0x30, 0x80, 0x01, 0x39, +0x00, 0x0D, 0x2F, 0x0E, 0x0F, 0x98, 0x74, 0x14, +0xFF, 0xA0, 0xC0, 0x03, 0x46, 0x02, 0xD0, 0x1A, +0x72, 0x02, 0x50, 0x1A, 0xB2, 0x03, 0xA0, 0x03, +0xB7, 0x0A, 0x30, 0x03, 0x51, 0x02, 0xFF, 0xFF, +0xA3, 0x20, 0xA1, 0x79, 0xAE, 0x51, 0xAF, 0xC5, +0x0A, 0x0D, 0xB7, 0x0A, 0xA3, 0x48, 0x1D, 0x80, +0xA3, 0x18, 0xAF, 0x51, 0x10, 0x80, 0xA0, 0x31, +0x3A, 0x18, 0xA1, 0x79, 0x3A, 0x20, 0x20, 0x03, +0x57, 0x02, 0x60, 0x03, 0x2B, 0x00, 0x60, 0x62, +0xFF, 0x00, 0x26, 0x48, 0x2A, 0x80, 0x13, 0x19, +0x9F, 0x80, 0x60, 0x03, 0x2B, 0x00, 0xFF, 0xFF, +0x68, 0x79, 0x26, 0x48, 0x2A, 0x80, 0x12, 0x19, +0x1F, 0x80, 0x11, 0x19, 0xAD, 0x00, 0x60, 0x03, +0x0C, 0x00, 0x63, 0x51, 0x61, 0x80, 0x6A, 0x18, +0x60, 0x49, 0x1B, 0x80, 0x60, 0x19, 0x56, 0x08, +0xFF, 0x81, 0x65, 0x00, 0xFF, 0xFF, 0x6A, 0x38, +0x6F, 0x51, 0x10, 0x80, 0x60, 0x31, 0x70, 0x03, +0xBE, 0x00, 0x70, 0x49, 0x60, 0x80, 0x76, 0x48, +0x4B, 0x80, 0x75, 0x00, 0x7A, 0x48, 0x1B, 0x80, +0xFF, 0x80, 0x75, 0x00, 0x5A, 0x08, 0x63, 0x48, +0xBB, 0x80, 0x61, 0x78, 0x51, 0x0B, 0xA0, 0x49, +0x7D, 0x80, 0xA7, 0x48, 0x1B, 0x80, 0x76, 0x38, +0xA7, 0x48, 0x1D, 0x80, 0x76, 0x20, 0x57, 0x08, +0x75, 0x00, 0x70, 0x49, 0x1B, 0x80, 0x51, 0x0B, +0x51, 0x21, 0xD1, 0x21, 0xC1, 0x39, 0xE1, 0x84, +0xFF, 0xA0, 0xC0, 0x03, 0x46, 0x02, 0xD0, 0x1A, +0x72, 0x02, 0x40, 0x1A, 0xF2, 0x04, 0xAD, 0x00, +0xB4, 0x00, 0xFF, 0xFF, 0xAB, 0x20, 0xDA, 0x08, +0xD1, 0x21, 0x41, 0x21, 0xC1, 0x39, 0x71, 0x87, +0xFF, 0xA0, 0x03, 0x0D, 0x4E, 0x02, 0x30, 0x19, +0x0F, 0x51, 0x10, 0x80, 0x31, 0x39, 0x00, 0x0D, +0x00, 0xF9, 0x03, 0x0D, 0x01, 0xF9, 0x30, 0x19, +0x1F, 0x51, 0x10, 0x80, 0x31, 0x39, 0x01, 0x0D, +0x02, 0xF9, 0x03, 0x0D, 0x03, 0xF9, 0xFF, 0xFF, +0x00, 0x03, 0x00, 0xF9, 0x10, 0x03, 0x01, 0xF9, +0x30, 0x03, 0x4E, 0x02, 0xFF, 0xFF, 0xFF, 0xA0, +0x03, 0x0D, 0x4E, 0x02, 0x00, 0x0D, 0x00, 0xF9, +0x01, 0x0D, 0x01, 0xF9, 0x30, 0x19, 0x2F, 0x51, +0x10, 0x80, 0x31, 0x39, 0x02, 0x0D, 0x02, 0xF9, +0x03, 0x0D, 0x03, 0xF9, 0xFF, 0xFF, 0x00, 0x03, +0x00, 0xF9, 0x10, 0x03, 0x01, 0xF9, 0x30, 0x03, +0x4E, 0x02, 0xFF, 0xFF, 0xFF, 0xA0, 0x00, 0x0D, +0x00, 0xF9, 0x01, 0x0D, 0x01, 0xF9, 0x02, 0x0D, +0x02, 0xF9, 0x03, 0x0D, 0x03, 0xF9, 0xFF, 0xFF, +0x00, 0x03, 0x00, 0xF9, 0x10, 0x03, 0x01, 0xF9, +0xFF, 0xFF, 0xFF, 0xA0, 0x03, 0x0D, 0x4E, 0x02, +0x00, 0x0D, 0x10, 0xF9, 0x30, 0x19, 0x0F, 0x51, +0x10, 0x80, 0x31, 0x39, 0x03, 0x0D, 0x11, 0xF9, +0x30, 0x19, 0x1F, 0x51, 0x10, 0x80, 0x31, 0x39, +0x01, 0x0D, 0x12, 0xF9, 0x03, 0x0D, 0x13, 0xF9, +0xFF, 0xFF, 0x00, 0x03, 0x10, 0xF9, 0x10, 0x03, +0x11, 0xF9, 0x30, 0x03, 0x4E, 0x02, 0xFF, 0xFF, +0xFF, 0xA0, 0x03, 0x0D, 0x4E, 0x02, 0x00, 0x0D, +0x10, 0xF9, 0x01, 0x0D, 0x11, 0xF9, 0x30, 0x19, +0x2F, 0x51, 0x10, 0x80, 0x31, 0x39, 0x02, 0x0D, +0x12, 0xF9, 0x03, 0x0D, 0x13, 0xF9, 0xFF, 0xFF, +0x00, 0x03, 0x10, 0xF9, 0x10, 0x03, 0x11, 0xF9, +0x30, 0x03, 0x4E, 0x02, 0xFF, 0xFF, 0xFF, 0xA0, +0x00, 0x0D, 0x08, 0xF9, 0x01, 0x0D, 0x09, 0xF9, +0x02, 0x0D, 0x0A, 0xF9, 0x03, 0x0D, 0x0B, 0xF9, +0xFF, 0xFF, 0x00, 0x03, 0x08, 0xF9, 0x10, 0x03, +0x09, 0xF9, 0xFF, 0xFF, 0xFF, 0xA0, 0x03, 0x0D, +0x4E, 0x02, 0x00, 0x0D, 0x18, 0xF9, 0x30, 0x19, +0x0F, 0x51, 0x10, 0x80, 0x31, 0x39, 0x03, 0x0D, +0x19, 0xF9, 0x30, 0x19, 0x2F, 0x51, 0x10, 0x80, +0x31, 0x39, 0x02, 0x0D, 0x1A, 0xF9, 0x03, 0x0D, +0x1B, 0xF9, 0xFF, 0xFF, 0x00, 0x03, 0x18, 0xF9, +0x30, 0x03, 0x4E, 0x02, 0xFF, 0xFF, 0xFF, 0xA0, +0x03, 0x0D, 0x4E, 0x02, 0x00, 0x0D, 0x18, 0xF9, +0x01, 0x0D, 0x19, 0xF9, 0x30, 0x19, 0x2F, 0x51, +0x10, 0x80, 0x31, 0x39, 0x02, 0x0D, 0x1A, 0xF9, +0x03, 0x0D, 0x1B, 0xF9, 0xFF, 0xFF, 0x00, 0x03, +0x18, 0xF9, 0x10, 0x03, 0x19, 0xF9, 0x30, 0x03, +0x4E, 0x02, 0xFF, 0xFF, 0xFF, 0xA0, 0xAF, 0x51, +0xF0, 0xA0, 0xFF, 0xFF, 0xA0, 0x31, 0xFF, 0xA0, +0x10, 0x03, 0xE5, 0x00, 0x1F, 0x51, 0x30, 0x80, +0xD0, 0x19, 0x0F, 0x98, 0xC9, 0x1A, 0x00, 0x03, +0xFD, 0x0D, 0x00, 0x49, 0x30, 0x80, 0x01, 0x39, +0x00, 0x0D, 0xFD, 0x0D, 0x00, 0x0E, 0xFF, 0x0D, +0x00, 0x0E, 0xB4, 0x0A, 0x00, 0x0E, 0xAD, 0x0A, +0xBF, 0x81, 0x00, 0x03, 0x10, 0x0B, 0x00, 0x49, +0x30, 0x80, 0x01, 0x39, 0x00, 0x0D, 0x10, 0x0B, +0x10, 0x03, 0xE5, 0x00, 0x1F, 0x51, 0x30, 0x80, +0xD0, 0x19, 0x0F, 0x98, 0xC9, 0x1A, 0x00, 0x03, +0xFD, 0x0D, 0x00, 0x49, 0x30, 0x80, 0x01, 0x39, +0x00, 0x0D, 0xFD, 0x0D, 0x00, 0x0E, 0xB4, 0x0A, +0x00, 0x0E, 0xAD, 0x0A, 0x0F, 0x98, 0xF8, 0x25, +0x0F, 0x98, 0x5E, 0x1D, 0x0F, 0x98, 0xBC, 0x1E, +0x0F, 0x98, 0x3E, 0x29, 0x00, 0x0E, 0x8D, 0x0B, +0x00, 0x0E, 0x31, 0x0E, 0x00, 0x0E, 0x8C, 0x0B, +0x00, 0x0E, 0x97, 0x0A, 0x00, 0x0E, 0x98, 0x0A, +0x00, 0x0E, 0x9A, 0x0A, 0x00, 0x0E, 0x9C, 0x0A, +0x00, 0x0E, 0x9D, 0x0A, 0x00, 0x0E, 0x57, 0x02, +0xA0, 0x19, 0xA0, 0x03, 0xB0, 0x0A, 0xFF, 0xFF, +0xA3, 0x59, 0xFF, 0xFF, 0xB0, 0x03, 0xB3, 0x0A, +0xA0, 0x1E, 0xAB, 0x20, 0xA3, 0x21, 0xA2, 0x79, +0x0A, 0x0D, 0xB0, 0x0A, 0x0A, 0x0D, 0x12, 0x00, +0xAB, 0x48, 0xCD, 0x80, 0x00, 0x03, 0xB0, 0x0A, +0x10, 0x03, 0x1A, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0x25, 0x15, 0x00, 0x0D, 0xF0, 0x0A, 0x00, 0x0D, +0xF4, 0x0A, 0x4F, 0x80, 0x0A, 0x0D, 0xF0, 0x0A, +0x0A, 0x0D, 0xF4, 0x0A, 0x0F, 0x98, 0xF4, 0x10, +0x00, 0x0E, 0xF1, 0x0A, 0xA0, 0x03, 0x8B, 0x0B, +0xA3, 0x51, 0x31, 0x80, 0x0F, 0x98, 0x5A, 0x24, +0x2F, 0x80, 0x05, 0x0E, 0x06, 0x0B, 0x00, 0x03, +0x34, 0x0B, 0x00, 0x49, 0x31, 0x80, 0x00, 0x0E, +0x11, 0x00, 0xFF, 0xA0, 0xA0, 0x1A, 0x2A, 0x0E, +0x0F, 0x98, 0x5A, 0x30, 0x00, 0x0E, 0x95, 0x0A, +0x01, 0x0E, 0x97, 0x0A, 0x00, 0x03, 0x34, 0x0B, +0x02, 0x49, 0xF1, 0xA0, 0xFF, 0xFF, 0x00, 0x03, +0x8B, 0x0B, 0x0F, 0xC1, 0x00, 0x0D, 0x8B, 0x0B, +0xFF, 0xA0, 0x00, 0x03, 0xFC, 0x01, 0x00, 0x49, +0x90, 0x80, 0x01, 0x39, 0x00, 0x0D, 0xFC, 0x01, +0x00, 0x03, 0x15, 0x00, 0x00, 0x0D, 0xB1, 0x0A, +0x0F, 0x88, 0x9B, 0x16, 0x91, 0x19, 0xA0, 0x03, +0x17, 0x0B, 0xA0, 0x49, 0x01, 0x88, 0xB4, 0x16, +0xA0, 0x03, 0xFD, 0x0D, 0xA0, 0x49, 0xB1, 0x82, +0xA0, 0x03, 0x50, 0x02, 0xB0, 0x03, 0x53, 0x02, +0xFF, 0xFF, 0xAB, 0x38, 0xAF, 0x51, 0x10, 0x80, +0xA0, 0x31, 0xB0, 0x03, 0x9E, 0x0A, 0xAB, 0x48, +0x0B, 0x88, 0xB4, 0x16, 0xA0, 0x03, 0x51, 0x02, +0xB0, 0x03, 0x54, 0x02, 0xFF, 0xFF, 0xAB, 0x38, +0xAF, 0x51, 0x10, 0x80, 0xA0, 0x31, 0xB0, 0x03, +0x9E, 0x0A, 0xAB, 0x48, 0x0B, 0x88, 0xB4, 0x16, +0xA0, 0x03, 0xA2, 0x0A, 0xB0, 0x03, 0x9E, 0x0A, +0xAB, 0x48, 0x0B, 0x88, 0xB4, 0x16, 0xA0, 0x03, +0x95, 0x0A, 0xB0, 0x03, 0xA0, 0x0A, 0xAB, 0x48, +0x0C, 0x88, 0xAD, 0x16, 0xDF, 0x82, 0x0F, 0x88, +0xB4, 0x16, 0xA0, 0x03, 0xA2, 0x0A, 0xB0, 0x03, +0x9F, 0x0A, 0xAB, 0x48, 0xEB, 0x83, 0xA0, 0x03, +0x50, 0x02, 0xB0, 0x03, 0x53, 0x02, 0xFF, 0xFF, +0xAB, 0x38, 0xAF, 0x51, 0x10, 0x80, 0xA0, 0x31, +0xB0, 0x03, 0x9F, 0x0A, 0xAB, 0x48, 0x1B, 0x83, +0xA0, 0x03, 0x51, 0x02, 0xB0, 0x03, 0x54, 0x02, +0xFF, 0xFF, 0xAB, 0x38, 0xAF, 0x51, 0x10, 0x80, +0xA0, 0x31, 0xB0, 0x03, 0x9F, 0x0A, 0xAB, 0x48, +0x4B, 0x82, 0xA0, 0x03, 0x95, 0x0A, 0xFF, 0xFF, +0xA1, 0x21, 0x0A, 0x0D, 0x95, 0x0A, 0xB0, 0x03, +0x21, 0x00, 0xAB, 0x48, 0xFC, 0xA0, 0xFF, 0xFF, +0xC0, 0x03, 0x46, 0x02, 0x30, 0x1A, 0x72, 0x02, +0x40, 0x1A, 0xF2, 0x04, 0xA3, 0x00, 0x4A, 0x08, +0x31, 0x21, 0x41, 0x21, 0xC1, 0x39, 0xA1, 0x87, +0x0F, 0x98, 0xB0, 0x15, 0x00, 0x0E, 0x95, 0x0A, +0x90, 0x19, 0x9F, 0x80, 0xA0, 0x03, 0x95, 0x0A, +0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, 0x95, 0x0A, +0xFF, 0xA0, 0x00, 0x0E, 0x95, 0x0A, 0x00, 0x03, +0x50, 0x02, 0x10, 0x03, 0x51, 0x02, 0x00, 0x0D, +0x53, 0x02, 0x01, 0x0D, 0x54, 0x02, 0xFF, 0xA0, +0xA0, 0x03, 0xA2, 0x0A, 0xB0, 0x03, 0x9F, 0x0A, +0xAB, 0x48, 0x0B, 0x88, 0x0F, 0x17, 0xA0, 0x03, +0x17, 0x0B, 0xA0, 0x49, 0x01, 0x88, 0x0F, 0x17, +0xA0, 0x03, 0xFD, 0x0D, 0xA0, 0x49, 0x01, 0x88, +0x0F, 0x17, 0xA0, 0x03, 0x50, 0x02, 0xB0, 0x03, +0x55, 0x02, 0xFF, 0xFF, 0xAB, 0x38, 0xAF, 0x51, +0x10, 0x80, 0xA0, 0x31, 0xB0, 0x03, 0x9F, 0x0A, +0xAB, 0x48, 0x2B, 0x83, 0xA0, 0x03, 0x51, 0x02, +0xB0, 0x03, 0x56, 0x02, 0xFF, 0xFF, 0xAB, 0x38, +0xAF, 0x51, 0x10, 0x80, 0xA0, 0x31, 0xB0, 0x03, +0x9F, 0x0A, 0xAB, 0x48, 0x5B, 0x82, 0xA0, 0x03, +0xAC, 0x0A, 0xB0, 0x03, 0xA1, 0x0A, 0xAB, 0x48, +0x8C, 0x81, 0xC0, 0x03, 0x46, 0x02, 0x30, 0x1A, +0x72, 0x02, 0x40, 0x1A, 0xF2, 0x04, 0xA3, 0x00, +0xB4, 0x00, 0xAB, 0x48, 0x70, 0x80, 0xAB, 0x48, +0x3A, 0x80, 0xB1, 0x39, 0x4B, 0x08, 0x2F, 0x80, +0xB1, 0x21, 0x4B, 0x08, 0x31, 0x21, 0x41, 0x21, +0xC1, 0x39, 0x11, 0x87, 0x00, 0x0E, 0xAC, 0x0A, +0x9F, 0x80, 0xA0, 0x03, 0xAC, 0x0A, 0xFF, 0xFF, +0xA1, 0x21, 0x0A, 0x0D, 0xAC, 0x0A, 0xFF, 0xA0, +0x00, 0x0E, 0xAC, 0x0A, 0x00, 0x03, 0x50, 0x02, +0x10, 0x03, 0x51, 0x02, 0x00, 0x0D, 0x55, 0x02, +0x01, 0x0D, 0x56, 0x02, 0xFF, 0xA0, 0xC0, 0x03, +0x50, 0x02, 0xD0, 0x03, 0x51, 0x02, 0x10, 0x03, +0x0C, 0x00, 0x1C, 0x51, 0x41, 0x80, 0x91, 0x19, +0xC0, 0x49, 0xFD, 0xA0, 0xFF, 0xFF, 0x91, 0x19, +0x10, 0x03, 0x0C, 0x00, 0x1B, 0x51, 0x90, 0x83, +0xA0, 0x03, 0x2D, 0x0E, 0x1C, 0x18, 0x1A, 0x38, +0x0C, 0x0D, 0x2D, 0x0E, 0xB0, 0x03, 0x52, 0x00, +0x1B, 0x48, 0x3B, 0x80, 0x00, 0x0E, 0x2E, 0x0E, +0x0F, 0x81, 0xA0, 0x03, 0x2E, 0x0E, 0x20, 0x03, +0x98, 0x0A, 0x20, 0x49, 0x31, 0x80, 0x1B, 0x48, +0x1C, 0x80, 0xA1, 0x21, 0xB0, 0x03, 0x53, 0x00, +0x1B, 0x48, 0x1C, 0x80, 0xA1, 0x21, 0x0A, 0x0D, +0x2E, 0x0E, 0xB0, 0x03, 0x54, 0x00, 0xCB, 0x48, +0x2C, 0x80, 0x05, 0x0E, 0x2E, 0x0E, 0xA0, 0x03, +0x2E, 0x0E, 0xA2, 0x49, 0x2D, 0x81, 0x00, 0x0E, +0x2E, 0x0E, 0x90, 0x19, 0x00, 0x03, 0x30, 0x0E, +0x00, 0x49, 0x50, 0x80, 0x01, 0x0E, 0x30, 0x0E, +0x00, 0x0E, 0x31, 0x0E, 0x6A, 0x80, 0x95, 0x19, +0x01, 0x0E, 0x30, 0x0E, 0x00, 0x0E, 0x31, 0x0E, +0xFF, 0xA0, 0x0C, 0x18, 0x10, 0x03, 0xB5, 0x0A, +0x10, 0x49, 0x30, 0x81, 0x21, 0x18, 0x18, 0x79, +0x10, 0x49, 0x60, 0x80, 0x0F, 0x98, 0x25, 0x15, +0x20, 0x03, 0xB5, 0x0A, 0x20, 0x62, 0xFF, 0x00, +0x0F, 0x98, 0x66, 0x15, 0x00, 0x31, 0xAD, 0x18, +0xA0, 0x49, 0x3B, 0x80, 0xA0, 0x48, 0xFC, 0xA0, +0xFF, 0xFF, 0x10, 0x03, 0x34, 0x00, 0x10, 0x49, +0x00, 0x88, 0xC9, 0x17, 0xC0, 0x03, 0x50, 0x02, +0xD0, 0x03, 0x51, 0x02, 0x00, 0x1A, 0x72, 0x02, +0x00, 0x0D, 0x11, 0x0B, 0x00, 0x03, 0x35, 0x00, +0x00, 0x0D, 0xB2, 0x0A, 0x0F, 0x98, 0xF4, 0x1B, +0x00, 0x03, 0xAD, 0x0A, 0x00, 0x49, 0x60, 0x83, +0x00, 0x0E, 0x49, 0x02, 0xA0, 0x1A, 0xCC, 0x0B, +0x70, 0x03, 0x49, 0x02, 0xFF, 0xFF, 0xA7, 0x20, +0x1A, 0x00, 0x01, 0x18, 0x20, 0x03, 0x56, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0x66, 0x15, 0x00, 0x0D, +0x2F, 0x0B, 0x00, 0x03, 0x1A, 0xF9, 0x00, 0x0D, +0x30, 0x0B, 0xA0, 0x1A, 0x72, 0x02, 0xA1, 0x20, +0x5A, 0x00, 0x05, 0x0D, 0x05, 0x0E, 0x10, 0x03, +0x34, 0x00, 0x01, 0x0D, 0x07, 0x0E, 0xB0, 0x1A, +0x72, 0x02, 0x0B, 0x0D, 0x28, 0x0E, 0x0F, 0x98, +0x27, 0x19, 0x00, 0x03, 0xB6, 0x0A, 0xC0, 0x48, +0xBB, 0x80, 0x70, 0x03, 0x49, 0x02, 0xFF, 0xFF, +0x71, 0x21, 0x07, 0x0D, 0x49, 0x02, 0x00, 0x03, +0xAD, 0x0A, 0x07, 0x48, 0xF1, 0x84, 0x2F, 0x80, +0x01, 0x0E, 0x17, 0x0B, 0x10, 0x03, 0x0C, 0x00, +0x1C, 0x51, 0xC1, 0x83, 0xC0, 0x03, 0x50, 0x02, +0xD0, 0x03, 0x51, 0x02, 0xFF, 0xFF, 0xCD, 0x38, +0xAC, 0x18, 0xAF, 0x51, 0x10, 0x80, 0xA0, 0x31, +0xA2, 0x49, 0x2B, 0x80, 0x91, 0x19, 0xFF, 0xA0, +0x10, 0x03, 0x34, 0x00, 0x10, 0x49, 0x81, 0x80, +0x00, 0x03, 0x35, 0x00, 0xA0, 0x48, 0x4C, 0x80, +0x62, 0x19, 0x40, 0x03, 0xB6, 0x0A, 0x3F, 0x80, +0x61, 0x19, 0x40, 0x03, 0xB9, 0x0A, 0xCF, 0x51, +0x40, 0x80, 0xC0, 0x31, 0xC1, 0x79, 0xC0, 0x31, +0x1F, 0x80, 0xC1, 0x79, 0xCD, 0x20, 0xC0, 0x4A, +0x1E, 0x00, 0x2A, 0x80, 0x90, 0x19, 0xFF, 0xA0, +0x70, 0x19, 0xA0, 0x03, 0x46, 0x02, 0xB0, 0x1A, +0x72, 0x02, 0x9B, 0x00, 0x9C, 0x48, 0x1C, 0x80, +0x71, 0x21, 0xB1, 0x21, 0xA1, 0x39, 0x91, 0x87, +0x90, 0x19, 0x74, 0x48, 0xFD, 0xA0, 0xFF, 0xFF, +0x96, 0x18, 0xFF, 0xA0, 0xC0, 0x03, 0x50, 0x02, +0x91, 0x19, 0x1F, 0x19, 0x00, 0x03, 0x10, 0x0B, +0x00, 0x49, 0x10, 0x80, 0x1A, 0x19, 0xC1, 0x48, +0xFD, 0xA0, 0xFF, 0xFF, 0x00, 0x03, 0x46, 0x00, +0x00, 0x49, 0xF1, 0xA0, 0xFF, 0xFF, 0x90, 0x19, +0xD0, 0x03, 0x32, 0x00, 0x00, 0x03, 0x10, 0x0B, +0x00, 0x49, 0x61, 0x81, 0xCD, 0x48, 0x4A, 0x81, +0x60, 0x03, 0xB8, 0x0A, 0xFF, 0xFF, 0x0F, 0x98, +0xBE, 0x18, 0x90, 0x49, 0xD0, 0x80, 0x92, 0x19, +0x70, 0x03, 0x46, 0x02, 0xFF, 0xFF, 0x71, 0x79, +0x67, 0x18, 0x61, 0x79, 0x76, 0x20, 0x60, 0x03, +0x18, 0x0B, 0x67, 0x48, 0x1C, 0x80, 0x97, 0x19, +0xCD, 0x48, 0x5C, 0x81, 0x60, 0x03, 0xB6, 0x0A, +0xFF, 0xFF, 0x0F, 0x98, 0xBE, 0x18, 0x90, 0x49, +0xE0, 0x80, 0x92, 0x19, 0x70, 0x03, 0x46, 0x02, +0xFF, 0xFF, 0x71, 0x79, 0x67, 0x18, 0x61, 0x79, +0x76, 0x20, 0x60, 0x03, 0x18, 0x0B, 0x67, 0x48, +0x2C, 0x80, 0x97, 0x19, 0xFF, 0xA0, 0x70, 0x03, +0x46, 0x02, 0xFF, 0xFF, 0x71, 0x79, 0x67, 0x18, +0x61, 0x79, 0x76, 0x20, 0x60, 0x03, 0x18, 0x0B, +0x67, 0x48, 0x2C, 0x80, 0x97, 0x19, 0xFF, 0xA0, +0xD0, 0x03, 0x17, 0x0B, 0xD0, 0x49, 0x20, 0x80, +0x92, 0x19, 0xFF, 0xA0, 0xD0, 0x03, 0x51, 0x02, +0xFF, 0xFF, 0xCD, 0x38, 0xAC, 0x18, 0x0F, 0x98, +0x96, 0x15, 0xA2, 0x49, 0xFB, 0xA0, 0xFF, 0xFF, +0x91, 0x19, 0xFF, 0xA0, 0x95, 0x19, 0x2C, 0x18, +0xA0, 0x03, 0x56, 0x00, 0xB0, 0x03, 0x55, 0x00, +0xD0, 0x1A, 0x72, 0x02, 0x00, 0x19, 0x1D, 0x00, +0xFF, 0xFF, 0x01, 0x20, 0xDA, 0x20, 0xB1, 0x39, +0xA1, 0x87, 0x0F, 0x98, 0x66, 0x15, 0x03, 0x49, +0xFA, 0xA0, 0xFF, 0xFF, 0xA0, 0x03, 0x56, 0x00, +0xB0, 0x03, 0x55, 0x00, 0xD0, 0x1A, 0x72, 0x02, +0xDA, 0x20, 0xD1, 0x39, 0x00, 0x19, 0x1D, 0x00, +0xFF, 0xFF, 0x01, 0x20, 0xDA, 0x20, 0xB1, 0x39, +0xA1, 0x87, 0x0F, 0x98, 0x66, 0x15, 0x03, 0x49, +0xFA, 0xA0, 0xFF, 0xFF, 0xA0, 0x03, 0x56, 0x00, +0xD0, 0x1A, 0x72, 0x02, 0x00, 0x19, 0x1D, 0x00, +0xFF, 0xFF, 0x01, 0x20, 0xD1, 0x21, 0xA1, 0x39, +0xA1, 0x87, 0x0F, 0x98, 0x66, 0x15, 0x03, 0x49, +0xFA, 0xA0, 0xFF, 0xFF, 0xA0, 0x03, 0x56, 0x00, +0xB0, 0x03, 0x55, 0x00, 0xFF, 0xFF, 0xB1, 0x39, +0xAB, 0x58, 0xD0, 0x1A, 0x72, 0x02, 0x00, 0x19, +0x10, 0x1E, 0xD1, 0x20, 0x1D, 0x00, 0xFF, 0xFF, +0x01, 0x20, 0xD1, 0x21, 0xA1, 0x39, 0xA1, 0x87, +0x0F, 0x98, 0x66, 0x15, 0x03, 0x49, 0xFA, 0xA0, +0xFF, 0xFF, 0x90, 0x19, 0xFF, 0xA0, 0xA0, 0x03, +0x46, 0x02, 0xB0, 0x1A, 0x72, 0x02, 0x00, 0x19, +0x10, 0x19, 0x0F, 0x98, 0xE4, 0x14, 0x50, 0x19, +0x70, 0x19, 0x2B, 0x00, 0x20, 0x4A, 0x1E, 0x00, +0x1D, 0x80, 0x71, 0x21, 0x25, 0x48, 0x0B, 0x98, +0xFF, 0x14, 0xFF, 0xFF, 0xB1, 0x21, 0xA1, 0x39, +0x41, 0x87, 0x07, 0x0D, 0x18, 0x0B, 0x20, 0x03, +0x50, 0x02, 0xFF, 0xFF, 0x0F, 0x98, 0x7F, 0x15, +0x06, 0x48, 0xFC, 0xA0, 0xFF, 0xFF, 0x91, 0x19, +0xFF, 0xA0, 0x90, 0x19, 0x00, 0x03, 0x0F, 0x01, +0x00, 0x49, 0xF0, 0xA0, 0xFF, 0xFF, 0x80, 0x1A, +0x00, 0x80, 0x90, 0x1A, 0xFF, 0x7F, 0x60, 0x1A, +0x00, 0x80, 0x70, 0x1A, 0xFF, 0x7F, 0x50, 0x03, +0x46, 0x02, 0x30, 0x03, 0xE5, 0x00, 0x1F, 0x51, +0x40, 0x80, 0x30, 0x03, 0x56, 0x00, 0xFF, 0xFF, +0x53, 0x38, 0x30, 0x1A, 0x72, 0x02, 0x40, 0x1A, +0xF2, 0x04, 0xD0, 0x1A, 0x3D, 0x0D, 0x10, 0x19, +0x0D, 0x00, 0x01, 0x50, 0xF0, 0x80, 0xA3, 0x00, +0xB4, 0x00, 0xFF, 0xFF, 0xA8, 0x48, 0x1D, 0x80, +0x8A, 0x18, 0xA9, 0x48, 0x1B, 0x80, 0x9A, 0x18, +0xB6, 0x48, 0x1D, 0x80, 0x6B, 0x18, 0xB7, 0x48, +0x1B, 0x80, 0x7B, 0x18, 0x11, 0x21, 0x00, 0x03, +0x56, 0x00, 0x10, 0x48, 0x2C, 0x80, 0x10, 0x19, +0xD1, 0x21, 0x31, 0x21, 0x41, 0x21, 0x51, 0x39, +0x31, 0x86, 0x89, 0x38, 0x67, 0x38, 0x68, 0x38, +0x00, 0x03, 0x0F, 0x01, 0x90, 0x19, 0x60, 0x48, +0xFD, 0xA0, 0xFF, 0xFF, 0x93, 0x19, 0xFF, 0xA0, +0xC0, 0x19, 0x20, 0x03, 0x2F, 0x0B, 0x20, 0x49, +0xFC, 0xA0, 0xFF, 0xFF, 0xA0, 0x03, 0x55, 0x00, +0x2A, 0x48, 0xFB, 0xA0, 0xFF, 0xFF, 0x20, 0x03, +0x30, 0x0B, 0x20, 0x49, 0xFC, 0xA0, 0xFF, 0xFF, +0xA0, 0x03, 0x56, 0x00, 0x2A, 0x48, 0xFB, 0xA0, +0xFF, 0xFF, 0x00, 0x03, 0x05, 0x0E, 0x10, 0x03, +0x07, 0x0E, 0x21, 0x18, 0x18, 0x79, 0x10, 0x49, +0x60, 0x80, 0x0F, 0x98, 0x25, 0x15, 0x20, 0x03, +0x3B, 0x00, 0x20, 0x62, 0xFF, 0x00, 0x0F, 0x98, +0x66, 0x15, 0x50, 0x18, 0xC0, 0x03, 0x28, 0x0E, +0x90, 0x03, 0x55, 0x00, 0xA0, 0x03, 0x56, 0x00, +0x20, 0x03, 0x30, 0x0B, 0x20, 0x49, 0x2A, 0x80, +0x21, 0x39, 0x6F, 0x81, 0x10, 0x19, 0x70, 0x19, +0x1A, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x30, 0x1E, 0x62, 0x18, 0x63, 0x20, 0x6C, 0x20, +0x06, 0x00, 0x05, 0x48, 0x1C, 0x80, 0x71, 0x19, +0x11, 0x21, 0x19, 0x48, 0x11, 0x87, 0x70, 0x49, +0x30, 0x80, 0x21, 0x39, 0x20, 0x49, 0xAB, 0x86, +0x21, 0x21, 0x02, 0x0D, 0x2B, 0x0B, 0xC0, 0x03, +0x28, 0x0E, 0x90, 0x03, 0x55, 0x00, 0xA0, 0x03, +0x56, 0x00, 0x00, 0x03, 0x56, 0x00, 0xFF, 0xFF, +0x01, 0x39, 0x20, 0x03, 0x30, 0x0B, 0x20, 0x48, +0x3C, 0x80, 0x20, 0x03, 0x56, 0x00, 0x6F, 0x81, +0x10, 0x19, 0x70, 0x19, 0x1A, 0x58, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x30, 0x1E, 0x62, 0x18, +0x63, 0x20, 0x6C, 0x20, 0x06, 0x00, 0x05, 0x48, +0x1C, 0x80, 0x71, 0x19, 0x11, 0x21, 0x19, 0x48, +0x11, 0x87, 0x70, 0x49, 0x30, 0x80, 0x21, 0x21, +0x2A, 0x48, 0xAC, 0x86, 0x02, 0x0D, 0x2C, 0x0B, +0xC0, 0x03, 0x28, 0x0E, 0x90, 0x03, 0x55, 0x00, +0xA0, 0x03, 0x56, 0x00, 0x20, 0x03, 0x2F, 0x0B, +0x20, 0x49, 0x2A, 0x80, 0x21, 0x39, 0x6F, 0x81, +0x10, 0x19, 0x70, 0x19, 0x2A, 0x58, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x30, 0x1E, 0x63, 0x18, +0x6C, 0x20, 0x06, 0x00, 0x05, 0x48, 0x1C, 0x80, +0x71, 0x19, 0x11, 0x21, 0x61, 0x21, 0x1A, 0x48, +0x81, 0x87, 0x70, 0x49, 0x30, 0x80, 0x21, 0x39, +0x20, 0x49, 0xAB, 0x86, 0x21, 0x21, 0x02, 0x0D, +0x2D, 0x0B, 0xC0, 0x03, 0x28, 0x0E, 0xA0, 0x03, +0x56, 0x00, 0x90, 0x03, 0x55, 0x00, 0x00, 0x03, +0x55, 0x00, 0x20, 0x03, 0x2F, 0x0B, 0xFF, 0xFF, +0x01, 0x39, 0x20, 0x48, 0x3C, 0x80, 0x20, 0x03, +0x55, 0x00, 0x6F, 0x81, 0x10, 0x19, 0x70, 0x19, +0x2A, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x30, 0x1E, 0x63, 0x18, 0x6C, 0x20, 0x06, 0x00, +0x05, 0x48, 0x1C, 0x80, 0x71, 0x19, 0x11, 0x21, +0x61, 0x21, 0x1A, 0x48, 0x81, 0x87, 0x70, 0x49, +0x30, 0x80, 0x21, 0x21, 0x29, 0x48, 0xAC, 0x86, +0x02, 0x0D, 0x2E, 0x0B, 0xC0, 0x19, 0xA0, 0x03, +0x2D, 0x0B, 0xB0, 0x03, 0x28, 0x0E, 0x00, 0x03, +0x56, 0x00, 0xFF, 0xFF, 0x0A, 0x58, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x1E, 0xB0, 0x20, +0x10, 0x03, 0x2B, 0x0B, 0x20, 0x03, 0x2C, 0x0B, +0xFF, 0xFF, 0xB1, 0x20, 0x0B, 0x00, 0x05, 0x48, +0x1C, 0x80, 0xC1, 0x21, 0xB1, 0x21, 0x11, 0x21, +0x12, 0x48, 0x8C, 0x87, 0xA1, 0x21, 0x00, 0x03, +0x2E, 0x0B, 0xA0, 0x48, 0x2C, 0x86, 0xFF, 0xA0, +0x81, 0x19, 0x50, 0x03, 0x05, 0x0E, 0x10, 0x03, +0xBA, 0x00, 0x51, 0x48, 0x6B, 0x80, 0x00, 0x03, +0x02, 0x0E, 0xC0, 0x48, 0xFA, 0xA0, 0xFF, 0xFF, +0x5F, 0x80, 0x00, 0x03, 0x00, 0x0E, 0xC0, 0x48, +0xFA, 0xA0, 0xFF, 0xFF, 0x00, 0x03, 0x01, 0x0E, +0xC0, 0x48, 0xFC, 0xA0, 0xFF, 0xFF, 0x80, 0x19, +0xFF, 0xA0, 0x24, 0x48, 0x1B, 0x80, 0x24, 0x18, +0xFF, 0xA0, 0x0F, 0x98, 0x14, 0x10, 0xB0, 0x1A, +0xFF, 0xFF, 0xC0, 0x1A, 0xFF, 0xFF, 0x00, 0x03, +0xE5, 0x00, 0x0F, 0x51, 0xB0, 0x80, 0x0F, 0x98, +0x25, 0x10, 0x00, 0x03, 0xA8, 0x00, 0x00, 0x49, +0x30, 0x80, 0xC0, 0x03, 0xA9, 0x00, 0x2F, 0x80, +0xB0, 0x03, 0xA9, 0x00, 0x70, 0x19, 0xA0, 0x1A, +0xCC, 0x0B, 0xA7, 0x20, 0x1A, 0x00, 0x01, 0x18, +0x20, 0x03, 0x56, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0x66, 0x15, 0x00, 0x0D, 0x24, 0x0B, 0x00, 0x03, +0x1A, 0xF9, 0x00, 0x0D, 0x25, 0x0B, 0x40, 0x19, +0x20, 0x03, 0xCF, 0x00, 0x20, 0x49, 0x60, 0x80, +0x00, 0x03, 0x16, 0x0B, 0x40, 0x18, 0x0F, 0x98, +0x66, 0x15, 0x40, 0x38, 0xA0, 0x1A, 0x32, 0x06, +0xA1, 0x20, 0x5A, 0x00, 0x00, 0x03, 0x25, 0x0B, +0x0C, 0x48, 0x30, 0x81, 0x80, 0x03, 0xF4, 0x0D, +0x08, 0x48, 0xA0, 0x81, 0x80, 0x03, 0xF5, 0x0D, +0x08, 0x48, 0x01, 0x82, 0x20, 0x03, 0x17, 0x00, +0x00, 0x03, 0xB4, 0x0A, 0xFF, 0xFF, 0x20, 0x20, +0x0F, 0x98, 0x24, 0x1A, 0x52, 0x48, 0x6B, 0x81, +0xEF, 0x83, 0x20, 0x03, 0xA7, 0x00, 0x00, 0x03, +0xB4, 0x0A, 0xFF, 0xFF, 0x20, 0x20, 0x0F, 0x98, +0x24, 0x1A, 0x52, 0x48, 0xBB, 0x80, 0x3F, 0x83, +0x20, 0x03, 0x16, 0x00, 0x00, 0x03, 0xB4, 0x0A, +0xFF, 0xFF, 0x20, 0x20, 0x0F, 0x98, 0x24, 0x1A, +0x52, 0x48, 0x9C, 0x82, 0x00, 0x03, 0x24, 0x0B, +0x0B, 0x48, 0x30, 0x81, 0x80, 0x03, 0xF6, 0x0D, +0x08, 0x48, 0xA0, 0x81, 0x80, 0x03, 0xF7, 0x0D, +0x08, 0x48, 0xB1, 0x82, 0x20, 0x03, 0x19, 0x00, +0x00, 0x03, 0xB4, 0x0A, 0xFF, 0xFF, 0x20, 0x20, +0x0F, 0x98, 0x24, 0x1A, 0x52, 0x48, 0x1B, 0x82, +0x2F, 0x81, 0x20, 0x03, 0xA7, 0x00, 0x00, 0x03, +0xB4, 0x0A, 0xFF, 0xFF, 0x20, 0x20, 0x0F, 0x98, +0x24, 0x1A, 0x52, 0x48, 0x6B, 0x81, 0x7F, 0x80, +0x20, 0x03, 0x18, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0x24, 0x1A, 0x52, 0x48, 0xEB, 0x80, 0xA7, 0x18, +0x0F, 0x98, 0xB3, 0x1C, 0xD0, 0x03, 0xAD, 0x0A, +0xFF, 0xFF, 0xD1, 0x39, 0x0D, 0x0D, 0xAD, 0x0A, +0x7D, 0x48, 0xFB, 0xA0, 0xFF, 0xFF, 0x0F, 0x88, +0x3E, 0x1A, 0x10, 0x03, 0xAD, 0x0A, 0xFF, 0xFF, +0x71, 0x21, 0x71, 0x48, 0xFB, 0xA0, 0xFF, 0xFF, +0x0F, 0x88, 0x3E, 0x1A, 0x90, 0x19, 0x00, 0x0E, +0x34, 0x0B, 0x00, 0x0E, 0xFA, 0x0A, 0x00, 0x03, +0xA5, 0x00, 0x00, 0x49, 0xF0, 0xA0, 0xFF, 0xFF, +0x0F, 0x98, 0xE2, 0x1B, 0xD0, 0x49, 0x11, 0x82, +0xA0, 0x1A, 0xFB, 0x0A, 0x88, 0x19, 0xA0, 0x0B, +0xA1, 0x21, 0x81, 0x39, 0xC1, 0x87, 0x70, 0x19, +0x00, 0x03, 0xA5, 0x00, 0x70, 0x48, 0x0B, 0x88, +0xDC, 0x1B, 0x00, 0x03, 0x04, 0x0B, 0x07, 0x50, +0xE0, 0x80, 0x02, 0x0E, 0x34, 0x0B, 0x00, 0x03, +0xFA, 0x0A, 0x17, 0x18, 0x18, 0x21, 0x01, 0xC0, +0x00, 0x0D, 0xFA, 0x0A, 0x00, 0x03, 0x04, 0x0B, +0x07, 0xC8, 0x00, 0x0D, 0x04, 0x0B, 0x71, 0x21, +0x7F, 0x86, 0x00, 0x03, 0x04, 0x0B, 0x00, 0x0D, +0x05, 0x0B, 0x00, 0x0E, 0x04, 0x0B, 0x70, 0x19, +0x07, 0x0D, 0x49, 0x02, 0xB0, 0x19, 0x70, 0x03, +0x49, 0x02, 0xD0, 0x03, 0xAD, 0x0A, 0x7D, 0x48, +0x0B, 0x88, 0xB2, 0x1B, 0x10, 0x1A, 0xCC, 0x0B, +0x17, 0x20, 0x01, 0x00, 0x20, 0x03, 0x56, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0x66, 0x15, 0x00, 0x03, +0x18, 0xF9, 0x00, 0x0D, 0x24, 0x0B, 0x00, 0x03, +0x1A, 0xF9, 0x00, 0x0D, 0x25, 0x0B, 0x60, 0x03, +0xA9, 0x00, 0x00, 0x03, 0xA8, 0x00, 0x00, 0x49, +0x81, 0x80, 0x50, 0x03, 0x25, 0x0B, 0x20, 0x03, +0x24, 0x0B, 0x26, 0x48, 0x01, 0x88, 0x97, 0x1B, +0x7F, 0x80, 0x50, 0x03, 0x24, 0x0B, 0x20, 0x03, +0x25, 0x0B, 0x26, 0x48, 0x01, 0x88, 0x97, 0x1B, +0x60, 0x1A, 0xAB, 0x00, 0x06, 0x0D, 0x4A, 0x02, +0x80, 0x19, 0x08, 0x0D, 0x4B, 0x02, 0xB0, 0x19, +0x00, 0x03, 0xA5, 0x00, 0x80, 0x03, 0x4B, 0x02, +0x80, 0x48, 0x0B, 0x88, 0x97, 0x1B, 0x60, 0x03, +0x4A, 0x02, 0x06, 0x00, 0x50, 0x48, 0x0C, 0x88, +0x8F, 0x1B, 0xC0, 0x03, 0xAA, 0x00, 0xFF, 0xFF, +0x0C, 0x20, 0x50, 0x48, 0x0B, 0x88, 0x8F, 0x1B, +0x00, 0x03, 0x0C, 0x00, 0x09, 0x51, 0x20, 0x82, +0x00, 0x03, 0x24, 0x0B, 0x00, 0x0D, 0x2F, 0x0B, +0x00, 0x03, 0x25, 0x0B, 0x00, 0x0D, 0x30, 0x0B, +0x10, 0x1A, 0xCC, 0x0B, 0x17, 0x20, 0x01, 0x00, +0xA0, 0x1A, 0x32, 0x06, 0xA0, 0x20, 0x5A, 0x00, +0xA0, 0x1A, 0x75, 0x0D, 0x00, 0x03, 0x30, 0x0B, +0xFF, 0xFF, 0xA0, 0x20, 0x0A, 0x00, 0x50, 0x48, +0xFC, 0x82, 0xA0, 0x1A, 0x85, 0x0D, 0x00, 0x03, +0x2F, 0x0B, 0xFF, 0xFF, 0xA0, 0x20, 0x0A, 0x00, +0x50, 0x48, 0x6C, 0x82, 0xA0, 0x1A, 0xFB, 0x0A, +0xA8, 0x20, 0x0A, 0x00, 0xFF, 0xFF, 0x01, 0x21, +0xA0, 0x08, 0x10, 0x03, 0x03, 0x0B, 0x01, 0x48, +0x2B, 0x80, 0xB1, 0x19, 0x9F, 0x81, 0xA1, 0x08, +0x00, 0x03, 0xFA, 0x0A, 0x18, 0x18, 0x10, 0x21, +0x01, 0xC0, 0x00, 0x0D, 0xFA, 0x0A, 0x00, 0x03, +0x04, 0x0B, 0x08, 0xC0, 0x00, 0x0D, 0x04, 0x0B, +0x01, 0x0E, 0x34, 0x0B, 0xB1, 0x19, 0x8F, 0x80, +0x61, 0x21, 0x06, 0x0D, 0x4A, 0x02, 0x81, 0x21, +0x08, 0x0D, 0x4B, 0x02, 0x0F, 0x88, 0x37, 0x1B, +0xB0, 0x49, 0x30, 0x81, 0x70, 0x03, 0x49, 0x02, +0xA7, 0x18, 0x0F, 0x98, 0xBC, 0x1C, 0xB0, 0x03, +0xAE, 0x0A, 0xFF, 0xFF, 0xB1, 0x39, 0x0B, 0x0D, +0xAE, 0x0A, 0xB0, 0x03, 0xAD, 0x0A, 0xFF, 0xFF, +0xB1, 0x39, 0x0B, 0x0D, 0xAD, 0x0A, 0xDB, 0x18, +0x71, 0x39, 0x71, 0x21, 0x07, 0x0D, 0x49, 0x02, +0xB0, 0x19, 0x0F, 0x88, 0x01, 0x1B, 0x70, 0x19, +0x80, 0x19, 0x00, 0x03, 0xA5, 0x00, 0x70, 0x48, +0x4B, 0x82, 0x00, 0x03, 0x04, 0x0B, 0x07, 0x50, +0x80, 0x80, 0x81, 0x21, 0x00, 0x03, 0x05, 0x0B, +0x07, 0x50, 0x91, 0x81, 0x02, 0x0E, 0x34, 0x0B, +0x6F, 0x81, 0x00, 0x03, 0x05, 0x0B, 0x07, 0x50, +0x20, 0x81, 0x02, 0x0E, 0x34, 0x0B, 0x00, 0x03, +0xFA, 0x0A, 0x17, 0x18, 0x18, 0x21, 0x01, 0xC0, +0x00, 0x0D, 0xFA, 0x0A, 0x00, 0x03, 0x04, 0x0B, +0x07, 0xC8, 0x00, 0x0D, 0x04, 0x0B, 0xA0, 0x1A, +0xFB, 0x0A, 0xA7, 0x20, 0xA0, 0x0B, 0x71, 0x21, +0x8F, 0x85, 0x90, 0x03, 0x34, 0x0B, 0x08, 0x0D, +0x2C, 0x0E, 0xFF, 0xFF, 0xFF, 0xA0, 0x00, 0x03, +0xA5, 0x00, 0x20, 0x1A, 0xAF, 0x00, 0x10, 0x1A, +0x9D, 0x00, 0x30, 0x1A, 0x32, 0x06, 0x42, 0x00, +0xFF, 0xFF, 0x34, 0x20, 0x43, 0x00, 0x14, 0x08, +0x21, 0x21, 0x11, 0x21, 0x01, 0x39, 0x51, 0x87, +0xFF, 0xA0, 0xB0, 0x03, 0x11, 0x0B, 0x60, 0x03, +0x55, 0x00, 0x70, 0x03, 0x56, 0x00, 0x3F, 0x19, +0x00, 0x0E, 0xAD, 0x0A, 0x20, 0x03, 0xB2, 0x0A, +0x81, 0x19, 0x91, 0x19, 0xCB, 0x18, 0x1C, 0x00, +0x12, 0x48, 0x0D, 0x88, 0x8C, 0x1C, 0xC7, 0x38, +0xC1, 0x39, 0x81, 0x49, 0x20, 0x81, 0x91, 0x49, +0x40, 0x80, 0x0C, 0x00, 0x10, 0x48, 0x0D, 0x88, +0x8C, 0x1C, 0xC1, 0x21, 0x0C, 0x00, 0x10, 0x48, +0x0D, 0x88, 0x8C, 0x1C, 0x97, 0x48, 0x50, 0x80, +0xC1, 0x21, 0x0C, 0x00, 0x10, 0x48, 0x0D, 0x88, +0x8C, 0x1C, 0xCB, 0x18, 0xC1, 0x39, 0x91, 0x49, +0x40, 0x80, 0x0C, 0x00, 0x10, 0x48, 0x0D, 0x88, +0x8C, 0x1C, 0x97, 0x48, 0x50, 0x80, 0xC2, 0x21, +0x0C, 0x00, 0x10, 0x48, 0x0C, 0x88, 0x8C, 0x1C, +0xCB, 0x18, 0xC7, 0x20, 0xC1, 0x39, 0x86, 0x48, +0x20, 0x81, 0x91, 0x49, 0x40, 0x80, 0x0C, 0x00, +0x10, 0x48, 0x0C, 0x88, 0x8C, 0x1C, 0xC1, 0x21, +0x0C, 0x00, 0x10, 0x48, 0x0C, 0x88, 0x8C, 0x1C, +0x97, 0x48, 0x50, 0x80, 0xC1, 0x21, 0x0C, 0x00, +0x10, 0x48, 0x0C, 0x88, 0x8C, 0x1C, 0xA0, 0x03, +0xAD, 0x0A, 0xA3, 0x48, 0xF0, 0x80, 0xD0, 0x1A, +0xCC, 0x0B, 0xA0, 0x03, 0xAD, 0x0A, 0xFF, 0xFF, +0xDA, 0x20, 0x00, 0x03, 0x11, 0x0B, 0xCB, 0x18, +0xC0, 0x38, 0xDC, 0x08, 0xA1, 0x21, 0x0A, 0x0D, +0xAD, 0x0A, 0x7F, 0x83, 0x00, 0x0E, 0x33, 0x0B, +0x10, 0x1A, 0xCC, 0x0B, 0xA1, 0x00, 0xC0, 0x03, +0x11, 0x0B, 0xFF, 0xFF, 0xCA, 0x20, 0xDC, 0x00, +0x01, 0x0E, 0x32, 0x0B, 0x10, 0x1A, 0xCC, 0x0B, +0xA0, 0x03, 0x32, 0x0B, 0xFF, 0xFF, 0x1A, 0x20, +0xA1, 0x00, 0xC0, 0x03, 0x11, 0x0B, 0xFF, 0xFF, +0xCA, 0x20, 0xAC, 0x00, 0xAD, 0x48, 0x5A, 0x80, +0xDA, 0x18, 0xA0, 0x03, 0x32, 0x0B, 0x0A, 0x0D, +0x33, 0x0B, 0xA0, 0x03, 0x32, 0x0B, 0xFF, 0xFF, +0xA1, 0x21, 0x0A, 0x0D, 0x32, 0x0B, 0xA3, 0x48, +0x51, 0x86, 0xAB, 0x00, 0xDA, 0x48, 0xDA, 0x80, +0x10, 0x1A, 0xCC, 0x0B, 0xA0, 0x03, 0x33, 0x0B, +0xFF, 0xFF, 0x1A, 0x20, 0xC0, 0x03, 0x11, 0x0B, +0xFF, 0xFF, 0xCB, 0x38, 0xC0, 0x31, 0x1C, 0x08, +0x0F, 0x80, 0xB1, 0x21, 0x91, 0x21, 0x97, 0x48, +0x1D, 0x80, 0x91, 0x19, 0x1D, 0x80, 0x81, 0x21, +0x86, 0x48, 0x0D, 0x88, 0x01, 0x1C, 0xFF, 0xA0, +0xA0, 0x19, 0x0A, 0x0D, 0xAD, 0x0A, 0xC0, 0x03, +0xB2, 0x0A, 0xB0, 0x03, 0x11, 0x0B, 0xD0, 0x1A, +0xCC, 0x0B, 0x40, 0x19, 0x9B, 0x00, 0x9C, 0x48, +0x3C, 0x80, 0xC9, 0x18, 0xDA, 0x08, 0x41, 0x19, +0xB1, 0x21, 0xA1, 0x21, 0x90, 0x03, 0x46, 0x02, +0x9A, 0x48, 0x41, 0x87, 0x40, 0x49, 0xF0, 0xA0, +0xFF, 0xFF, 0x01, 0x0E, 0xAD, 0x0A, 0xFF, 0xA0, +0x00, 0x03, 0x0C, 0x00, 0x0A, 0x51, 0x51, 0x80, +0x10, 0x03, 0xAD, 0x0A, 0x11, 0x49, 0xF0, 0xA0, +0xFF, 0xFF, 0x10, 0x03, 0xAD, 0x0A, 0x10, 0x49, +0xF0, 0xA0, 0xFF, 0xFF, 0x2A, 0x18, 0x3A, 0x18, +0x31, 0x21, 0x31, 0x48, 0xF0, 0xA0, 0xFF, 0xFF, +0x40, 0x1A, 0xCC, 0x0B, 0x42, 0x20, 0x50, 0x1A, +0xCC, 0x0B, 0x53, 0x20, 0x05, 0x00, 0x40, 0x08, +0x23, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x40, 0x1E, 0x40, 0x22, 0x8E, 0x0B, 0x33, 0x59, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x50, 0x1E, +0x50, 0x22, 0x8E, 0x0B, 0x05, 0x00, 0x40, 0x08, +0x51, 0x21, 0x41, 0x21, 0x05, 0x00, 0x40, 0x08, +0x51, 0x21, 0x41, 0x21, 0x05, 0x00, 0x40, 0x08, +0x21, 0x21, 0x31, 0x21, 0xAF, 0x85, 0xD0, 0x03, +0xAE, 0x0A, 0xD1, 0x49, 0xFD, 0xA0, 0xFF, 0xFF, +0xA0, 0x19, 0x00, 0x03, 0xF3, 0x0A, 0x10, 0x03, +0x38, 0x00, 0x10, 0x49, 0xF0, 0xA0, 0xFF, 0xFF, +0x21, 0x18, 0x18, 0x79, 0x10, 0x49, 0x60, 0x80, +0x0F, 0x98, 0x25, 0x15, 0x20, 0x03, 0x38, 0x00, +0x20, 0x62, 0xFF, 0x00, 0x0F, 0x98, 0x66, 0x15, +0x00, 0x0D, 0xF3, 0x0A, 0x40, 0x03, 0xF3, 0x0A, +0xB0, 0x1A, 0x32, 0x06, 0xD0, 0x1A, 0xCC, 0x0B, +0xDA, 0x20, 0xCD, 0x00, 0xFF, 0xFF, 0xBC, 0x20, +0xCB, 0x00, 0xC4, 0x48, 0xDB, 0x81, 0x00, 0x03, +0x0C, 0x00, 0x0A, 0x51, 0x41, 0x81, 0x0F, 0x98, +0xB3, 0x1C, 0xA1, 0x39, 0xD0, 0x03, 0xAE, 0x0A, +0xFF, 0xFF, 0xD1, 0x39, 0x0D, 0x0D, 0xAE, 0x0A, +0xD0, 0x03, 0xAD, 0x0A, 0xFF, 0xFF, 0xD1, 0x39, +0x0D, 0x0D, 0xAD, 0x0A, 0xD1, 0x49, 0x8A, 0x80, +0x01, 0x0E, 0xAD, 0x0A, 0xFF, 0xA0, 0xD0, 0x03, +0x03, 0x0E, 0xDA, 0xC0, 0x0D, 0x0D, 0x03, 0x0E, +0x40, 0x03, 0xF3, 0x0A, 0xFF, 0xFF, 0xA1, 0x21, +0xB0, 0x03, 0xAD, 0x0A, 0xAB, 0x48, 0x0C, 0x85, +0xFF, 0xA0, 0xB0, 0x03, 0x46, 0x0B, 0xD0, 0x19, +0x30, 0x03, 0x0A, 0x00, 0xBD, 0x50, 0xF0, 0xA0, +0xFF, 0xFF, 0xD1, 0x21, 0xD3, 0x48, 0xA1, 0x87, +0xFF, 0xA0, 0x8C, 0x00, 0x80, 0x62, 0xFF, 0x00, +0x70, 0x03, 0x29, 0x00, 0xFF, 0xFF, 0x71, 0x39, +0x87, 0x58, 0xFF, 0xFF, 0x70, 0x03, 0x29, 0x00, +0x80, 0x1E, 0xA8, 0x20, 0x71, 0x79, 0xA7, 0x78, +0xA0, 0x62, 0xFF, 0x00, 0xDC, 0x00, 0xDD, 0x51, +0x10, 0x80, 0xAD, 0xC1, 0xA8, 0xC1, 0xAA, 0xC1, +0x0A, 0x0D, 0x26, 0x0B, 0xFF, 0xA0, 0x00, 0x03, +0x28, 0x00, 0x00, 0x0D, 0xF3, 0x0D, 0x00, 0x03, +0xAD, 0x0A, 0x02, 0x49, 0x81, 0x80, 0x00, 0x03, +0x74, 0x00, 0x00, 0x49, 0x21, 0x80, 0x00, 0x03, +0x28, 0x00, 0x00, 0x0D, 0xF3, 0x0D, 0x90, 0x1A, +0x6D, 0x0B, 0x92, 0x21, 0xC0, 0x19, 0xB0, 0x19, +0x3A, 0x19, 0xA9, 0x00, 0xA8, 0x51, 0x20, 0x80, +0xBC, 0xC0, 0x3F, 0x80, 0xA0, 0x62, 0xFF, 0x00, +0x9A, 0x08, 0x93, 0x21, 0xC1, 0x21, 0xC3, 0x48, +0x41, 0x87, 0x0B, 0x0D, 0x46, 0x0B, 0xD0, 0x1A, +0x99, 0x0D, 0xD2, 0x21, 0x0D, 0x0D, 0x4A, 0x0B, +0x00, 0x0E, 0x44, 0x0B, 0x00, 0x0E, 0x48, 0x0B, +0x00, 0x0E, 0x49, 0x0B, 0xD0, 0x03, 0x4A, 0x0B, +0x0D, 0x00, 0x0E, 0x51, 0x00, 0x88, 0x04, 0x1E, +0x80, 0x1A, 0xD5, 0x0D, 0xA0, 0x03, 0x48, 0x0B, +0xFF, 0xFF, 0x8A, 0x20, 0x08, 0x00, 0x10, 0x18, +0x11, 0x39, 0x01, 0x0D, 0x4B, 0x0B, 0x00, 0x49, +0x00, 0x88, 0x04, 0x1E, 0x30, 0x03, 0x0A, 0x00, +0x03, 0x48, 0x0A, 0x88, 0xFD, 0x1D, 0x00, 0x03, +0x48, 0x0B, 0x10, 0x03, 0x44, 0x0B, 0x10, 0xC0, +0x01, 0x0D, 0x44, 0x0B, 0xD0, 0x03, 0x4A, 0x0B, +0xFF, 0xFF, 0xD2, 0x39, 0x10, 0x03, 0x4B, 0x0B, +0x61, 0x18, 0x7D, 0x00, 0x07, 0x0D, 0x24, 0x0B, +0xD1, 0x21, 0x8D, 0x00, 0x08, 0x0D, 0x25, 0x0B, +0x90, 0x1A, 0x6D, 0x0B, 0x13, 0x59, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x10, 0x1E, 0x91, 0x20, +0x09, 0x0D, 0x4C, 0x0B, 0x09, 0x00, 0x00, 0x0D, +0x29, 0x0B, 0x91, 0x21, 0x09, 0x00, 0x00, 0x0D, +0x2A, 0x0B, 0x0F, 0x98, 0x25, 0x25, 0x0A, 0x0D, +0x36, 0x0B, 0x0A, 0x0D, 0x2D, 0x00, 0x0F, 0x98, +0x8E, 0x24, 0x90, 0x03, 0x4C, 0x0B, 0x97, 0x08, +0x91, 0x21, 0x98, 0x08, 0x91, 0x21, 0xD0, 0x03, +0x4A, 0x0B, 0xAD, 0x00, 0x9A, 0x08, 0x00, 0x03, +0x49, 0x0B, 0xFF, 0xFF, 0x01, 0x21, 0x00, 0x0D, +0x49, 0x0B, 0xD0, 0x03, 0x4A, 0x0B, 0x0D, 0x00, +0x08, 0x51, 0x50, 0x80, 0x00, 0x03, 0x21, 0x00, +0x00, 0x0D, 0xFD, 0x0D, 0x6F, 0x81, 0x10, 0x03, +0x48, 0x0B, 0x90, 0x1A, 0xC6, 0x0D, 0x80, 0x1A, +0xD5, 0x0D, 0x70, 0x1A, 0xE4, 0x0D, 0x91, 0x20, +0x81, 0x20, 0x71, 0x20, 0x90, 0x0B, 0x80, 0x0B, +0x70, 0x0B, 0x7F, 0x80, 0x00, 0x03, 0x48, 0x0B, +0x10, 0x03, 0x44, 0x0B, 0x10, 0xC0, 0x01, 0x0D, +0x44, 0x0B, 0xD0, 0x03, 0x4A, 0x0B, 0x0D, 0x00, +0x08, 0x51, 0xE1, 0x80, 0x10, 0x03, 0x48, 0x0B, +0x90, 0x1A, 0xC6, 0x0D, 0x80, 0x1A, 0xD5, 0x0D, +0x70, 0x1A, 0xE4, 0x0D, 0x91, 0x20, 0x81, 0x20, +0x71, 0x20, 0x90, 0x0B, 0x80, 0x0B, 0x70, 0x0B, +0xD0, 0x03, 0x4A, 0x0B, 0xFF, 0xFF, 0xD3, 0x21, +0x0D, 0x0D, 0x4A, 0x0B, 0xA0, 0x03, 0x48, 0x0B, +0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, 0x48, 0x0B, +0xAF, 0x49, 0x01, 0x88, 0x8D, 0x1D, 0x00, 0x03, +0x49, 0x0B, 0x10, 0x03, 0x0A, 0x00, 0x01, 0x48, +0x5C, 0x81, 0xD0, 0x1A, 0x99, 0x0D, 0xD2, 0x21, +0xA0, 0x19, 0x0D, 0x00, 0x0E, 0x51, 0x90, 0x80, +0x80, 0x1A, 0xD5, 0x0D, 0x8A, 0x20, 0x08, 0x00, +0x00, 0x49, 0x31, 0x80, 0x00, 0x1A, 0xFF, 0x00, +0x80, 0x08, 0xD3, 0x21, 0xA1, 0x21, 0xAF, 0x49, +0x01, 0x87, 0xFF, 0xA0, 0xD0, 0x1A, 0x99, 0x0D, +0xD2, 0x21, 0x0D, 0x0D, 0x4A, 0x0B, 0x00, 0x0E, +0x48, 0x0B, 0xD0, 0x03, 0x4A, 0x0B, 0x0D, 0x00, +0x0E, 0x51, 0x00, 0x88, 0xAC, 0x1E, 0x00, 0x03, +0x48, 0x0B, 0x10, 0x03, 0x44, 0x0B, 0x10, 0x50, +0x01, 0x88, 0xAC, 0x1E, 0x0F, 0x98, 0x38, 0x1D, +0x30, 0x03, 0x0A, 0x00, 0xD3, 0x48, 0x10, 0x85, +0x0D, 0x0D, 0x4B, 0x0B, 0xA0, 0x03, 0x46, 0x0B, +0xAD, 0xC0, 0x0A, 0x0D, 0x46, 0x0B, 0xA0, 0x1A, +0xDD, 0x0B, 0xAD, 0x20, 0xA0, 0x0B, 0xA0, 0x1A, +0xED, 0x0B, 0xAD, 0x20, 0xA0, 0x0B, 0xA0, 0x1A, +0x62, 0x02, 0xAD, 0x20, 0xA1, 0x0B, 0xA0, 0x1A, +0x58, 0x02, 0xAD, 0x20, 0x00, 0x03, 0x6D, 0x02, +0xA0, 0x08, 0x80, 0x1A, 0xD5, 0x0D, 0xA0, 0x03, +0x48, 0x0B, 0xFF, 0xFF, 0x8A, 0x20, 0xD1, 0x21, +0x8D, 0x08, 0x00, 0x03, 0x48, 0x0B, 0x10, 0x03, +0x44, 0x0B, 0x10, 0xC0, 0x01, 0x0D, 0x44, 0x0B, +0xD0, 0x03, 0x4A, 0x0B, 0xFF, 0xFF, 0xD2, 0x39, +0x7D, 0x00, 0xFF, 0xFF, 0xD1, 0x21, 0x8D, 0x00, +0x10, 0x03, 0x4B, 0x0B, 0x90, 0x1A, 0x6D, 0x0B, +0x13, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x10, 0x1E, 0x91, 0x20, 0x97, 0x08, 0x91, 0x21, +0x98, 0x08, 0x91, 0x21, 0xD0, 0x03, 0x4A, 0x0B, +0x0D, 0x00, 0x90, 0x08, 0x00, 0x03, 0x49, 0x0B, +0xFF, 0xFF, 0x01, 0x21, 0x00, 0x0D, 0x49, 0x0B, +0x10, 0x03, 0x21, 0x00, 0x01, 0x0D, 0xFD, 0x0D, +0x10, 0x03, 0x0A, 0x00, 0x01, 0x48, 0x00, 0x88, +0x2C, 0x1E, 0xD0, 0x03, 0x4A, 0x0B, 0xFF, 0xFF, +0xD3, 0x21, 0x0D, 0x0D, 0x4A, 0x0B, 0xA0, 0x03, +0x48, 0x0B, 0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, +0x48, 0x0B, 0xAF, 0x49, 0x01, 0x88, 0x48, 0x1E, +0xFF, 0xA0, 0x00, 0x0E, 0x32, 0x0B, 0xB0, 0x1A, +0x6D, 0x0B, 0xA0, 0x03, 0x32, 0x0B, 0xFF, 0xFF, +0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xA0, 0x1E, 0xBA, 0x20, 0xC0, 0x1A, 0x4F, 0x0B, +0xCA, 0x20, 0xDC, 0x18, 0xD2, 0x21, 0x0D, 0x00, +0x08, 0x51, 0x00, 0x88, 0x4F, 0x1F, 0xDB, 0x18, +0xD2, 0x21, 0x0D, 0x00, 0x08, 0x51, 0x00, 0x88, +0x3D, 0x1F, 0x0B, 0x51, 0x01, 0x88, 0x3D, 0x1F, +0xAB, 0x00, 0x0A, 0x0D, 0x29, 0x0B, 0xAC, 0x00, +0x0A, 0x0D, 0x24, 0x0B, 0xB1, 0x21, 0xC1, 0x21, +0xAB, 0x00, 0x0A, 0x0D, 0x2A, 0x0B, 0xAC, 0x00, +0x0A, 0x0D, 0x25, 0x0B, 0xB1, 0x39, 0xC1, 0x39, +0x0F, 0x98, 0x25, 0x25, 0x0A, 0x0D, 0x36, 0x0B, +0x00, 0x03, 0xB8, 0x00, 0xA0, 0x03, 0x15, 0x0B, +0xD0, 0x03, 0x32, 0x0B, 0xAD, 0x50, 0x10, 0x80, +0x00, 0x19, 0xA0, 0x18, 0xD0, 0x03, 0x36, 0x0B, +0xDA, 0x48, 0x2D, 0x83, 0xA0, 0x03, 0x32, 0x0B, +0xD0, 0x03, 0x15, 0x0B, 0xDA, 0xC0, 0x0D, 0x0D, +0x15, 0x0B, 0x0B, 0x00, 0xC0, 0x08, 0xB1, 0x21, +0xC1, 0x21, 0x0B, 0x00, 0xC0, 0x08, 0xB1, 0x21, +0xC1, 0x21, 0xAB, 0x00, 0xA0, 0x62, 0xFF, 0x00, +0x0F, 0x98, 0x44, 0x1D, 0xA0, 0x03, 0x26, 0x0B, +0xA0, 0x62, 0xFF, 0x00, 0x9C, 0x00, 0x90, 0x62, +0xFF, 0x00, 0xA9, 0x38, 0xAF, 0x51, 0x10, 0x80, +0xA0, 0x31, 0x90, 0x03, 0xB9, 0x00, 0xA9, 0x48, +0xAB, 0x80, 0xA0, 0x03, 0x26, 0x0B, 0xA0, 0x62, +0x00, 0xFF, 0x9C, 0x00, 0x90, 0x62, 0xFF, 0x00, +0xA9, 0x68, 0xCA, 0x08, 0xCF, 0x83, 0xA0, 0x03, +0x26, 0x0B, 0xAF, 0xC1, 0xCA, 0x08, 0x7F, 0x83, +0xB2, 0x21, 0xC2, 0x21, 0xAB, 0x00, 0xA0, 0x62, +0xFF, 0x00, 0x0F, 0x98, 0x44, 0x1D, 0xA0, 0x03, +0x26, 0x0B, 0xAA, 0xC9, 0xA8, 0xC1, 0x0A, 0x0D, +0x26, 0x0B, 0x4F, 0x85, 0xB2, 0x21, 0xC2, 0x21, +0x0C, 0x00, 0x0D, 0x51, 0x20, 0x80, 0xC0, 0x0B, +0x2F, 0x82, 0xA0, 0x19, 0xAB, 0xC1, 0xCA, 0x08, +0xA0, 0x03, 0x32, 0x0B, 0xD0, 0x03, 0x15, 0x0B, +0xDA, 0xC8, 0x0D, 0x0D, 0x15, 0x0B, 0x7F, 0x81, +0xDB, 0x18, 0xD2, 0x21, 0x0D, 0x00, 0x08, 0x51, +0x31, 0x80, 0xC2, 0x21, 0xC0, 0x0B, 0xFF, 0x80, +0x0B, 0x00, 0xC0, 0x08, 0xB1, 0x21, 0xC1, 0x21, +0x0B, 0x00, 0xC0, 0x08, 0xB1, 0x21, 0xC1, 0x21, +0x0B, 0x00, 0x00, 0x62, 0xFF, 0x00, 0x0F, 0xC1, +0x08, 0xC1, 0x09, 0xC1, 0xC0, 0x08, 0x00, 0x03, +0x32, 0x0B, 0xFF, 0xFF, 0x01, 0x21, 0x00, 0x0D, +0x32, 0x0B, 0x10, 0x03, 0x0A, 0x00, 0x01, 0x48, +0x01, 0x88, 0xBE, 0x1E, 0xFF, 0xA0, 0xFF, 0xFF, +0x30, 0x19, 0x40, 0x19, 0xA0, 0x19, 0x60, 0x1A, +0x19, 0x0B, 0x50, 0x1A, 0xB2, 0x03, 0xB0, 0x1A, +0xCC, 0x0B, 0xBA, 0x20, 0x9B, 0x00, 0xC0, 0x03, +0x56, 0x00, 0xD0, 0x03, 0x55, 0x00, 0x09, 0x0D, +0x18, 0xF9, 0x00, 0x0E, 0x19, 0xF9, 0x0C, 0x0D, +0x1A, 0xF9, 0x00, 0x0E, 0x1B, 0xF9, 0x20, 0x03, +0x1A, 0xF9, 0x10, 0x03, 0x18, 0xF9, 0xFF, 0xFF, +0xC1, 0x39, 0xD1, 0x39, 0x00, 0x19, 0x10, 0x49, +0x11, 0x80, 0x00, 0xC1, 0x1D, 0x48, 0x11, 0x80, +0x01, 0xC1, 0x20, 0x49, 0x11, 0x80, 0x02, 0xC1, +0x2C, 0x48, 0x11, 0x80, 0x03, 0xC1, 0xC1, 0x21, +0xD1, 0x21, 0x00, 0x49, 0x41, 0x80, 0xB0, 0x1A, +0xEF, 0x01, 0x87, 0x19, 0xFF, 0x82, 0x01, 0x49, +0x41, 0x80, 0xB0, 0x1A, 0xE8, 0x01, 0x83, 0x19, +0x9F, 0x82, 0x02, 0x49, 0x41, 0x80, 0xB0, 0x1A, +0x2F, 0x00, 0x83, 0x19, 0x3F, 0x82, 0x04, 0x49, +0x41, 0x80, 0xB0, 0x1A, 0xA6, 0x01, 0x83, 0x19, +0xDF, 0x81, 0x08, 0x49, 0x41, 0x80, 0xB0, 0x1A, +0xCB, 0x00, 0x83, 0x19, 0x7F, 0x81, 0x05, 0x49, +0x41, 0x80, 0xB0, 0x1A, 0xA0, 0x01, 0x82, 0x19, +0x1F, 0x81, 0x09, 0x49, 0x41, 0x80, 0xB0, 0x1A, +0xC8, 0x00, 0x82, 0x19, 0xBF, 0x80, 0x06, 0x49, +0x41, 0x80, 0xB0, 0x1A, 0x26, 0x00, 0x82, 0x19, +0x5F, 0x80, 0x0A, 0x49, 0x31, 0x80, 0xBB, 0x19, +0x82, 0x19, 0x0F, 0x80, 0x95, 0x20, 0x39, 0x00, +0xFF, 0xFF, 0x10, 0x1A, 0x05, 0x04, 0x03, 0x18, +0x18, 0x79, 0x10, 0x49, 0x60, 0x80, 0x0F, 0x98, +0x25, 0x15, 0x20, 0x1A, 0x05, 0x04, 0x20, 0x62, +0xFF, 0x00, 0x0F, 0x98, 0x66, 0x15, 0x30, 0x18, +0x9C, 0x38, 0x91, 0x39, 0x49, 0x00, 0x64, 0x08, +0x61, 0x21, 0x91, 0x21, 0x49, 0x00, 0x64, 0x08, +0x61, 0x21, 0x91, 0x21, 0x49, 0x00, 0x64, 0x08, +0x61, 0x21, 0x9C, 0x20, 0x92, 0x39, 0x49, 0x00, +0x64, 0x08, 0x61, 0x21, 0x91, 0x21, 0x49, 0x00, +0x64, 0x08, 0x61, 0x21, 0x91, 0x21, 0x49, 0x00, +0x64, 0x08, 0x61, 0x21, 0x9C, 0x20, 0x92, 0x39, +0x49, 0x00, 0x64, 0x08, 0x61, 0x21, 0x91, 0x21, +0x49, 0x00, 0x64, 0x08, 0x61, 0x21, 0x91, 0x21, +0x49, 0x00, 0x64, 0x08, 0x60, 0x1A, 0x19, 0x0B, +0x70, 0x19, 0x20, 0x19, 0xB7, 0x50, 0x40, 0x80, +0x46, 0x00, 0x43, 0x48, 0x1C, 0x80, 0x21, 0x21, +0x61, 0x21, 0x71, 0x21, 0x79, 0x49, 0x61, 0x87, +0x28, 0x48, 0xCD, 0x80, 0x0F, 0x98, 0xB3, 0x1C, +0xA1, 0x39, 0x10, 0x03, 0xAD, 0x0A, 0xFF, 0xFF, +0x11, 0x39, 0x01, 0x0D, 0xAD, 0x0A, 0x10, 0x49, +0xF0, 0xA0, 0xFF, 0xFF, 0xA1, 0x21, 0xB0, 0x03, +0xAD, 0x0A, 0xAB, 0x48, 0x0C, 0x88, 0x76, 0x1F, +0xFF, 0xA0, 0x20, 0x03, 0x39, 0x00, 0x20, 0x49, +0xF0, 0xA0, 0xFF, 0xFF, 0xA0, 0x19, 0xB0, 0x19, +0xC0, 0x1A, 0x4F, 0x0B, 0xC2, 0x21, 0x30, 0x03, +0x0A, 0x00, 0x0C, 0x00, 0x08, 0x51, 0x50, 0x80, +0x00, 0x62, 0xFF, 0x00, 0x0B, 0x48, 0x1C, 0x80, +0xB0, 0x18, 0xC3, 0x21, 0xA1, 0x21, 0xA3, 0x48, +0x41, 0x87, 0x0B, 0x0D, 0xF3, 0x0A, 0xA0, 0x19, +0x00, 0x03, 0xF3, 0x0A, 0x10, 0x03, 0x39, 0x00, +0x21, 0x18, 0x18, 0x79, 0x10, 0x49, 0x60, 0x80, +0x0F, 0x98, 0x25, 0x15, 0x20, 0x03, 0x39, 0x00, +0x20, 0x62, 0xFF, 0x00, 0x0F, 0x98, 0x66, 0x15, +0x00, 0x0D, 0xF3, 0x0A, 0x40, 0x03, 0xF3, 0x0A, +0xC0, 0x1A, 0x4F, 0x0B, 0xC2, 0x21, 0xD0, 0x1A, +0x77, 0x00, 0xD2, 0x21, 0x30, 0x03, 0x0A, 0x00, +0x0C, 0x00, 0x10, 0x18, 0x18, 0x51, 0x41, 0x80, +0x1D, 0xC9, 0x1A, 0xC9, 0xC1, 0x08, 0x0F, 0x82, +0x00, 0x62, 0xFF, 0x00, 0x04, 0x48, 0x7B, 0x80, +0x0D, 0x00, 0x08, 0x51, 0x61, 0x80, 0x1D, 0xC1, +0x1A, 0xC9, 0xC1, 0x08, 0x5F, 0x81, 0x1D, 0x51, +0x91, 0x80, 0x1D, 0xC9, 0xC1, 0x08, 0x00, 0x03, +0xAE, 0x0A, 0xFF, 0xFF, 0x01, 0x21, 0x00, 0x0D, +0xAE, 0x0A, 0xAF, 0x80, 0x1D, 0xC9, 0x1A, 0xC9, +0x19, 0xC1, 0xC1, 0x08, 0x00, 0x03, 0xAE, 0x0A, +0xFF, 0xFF, 0x01, 0x21, 0x00, 0x0D, 0xAE, 0x0A, +0x40, 0x03, 0xF3, 0x0A, 0xFF, 0xFF, 0xC3, 0x21, +0xD3, 0x21, 0xA1, 0x21, 0xA3, 0x48, 0x01, 0x85, +0xFF, 0xA0, 0x00, 0x03, 0xBA, 0x0A, 0x00, 0x49, +0xA0, 0x80, 0x80, 0x19, 0x00, 0x03, 0xA2, 0x0A, +0x10, 0x03, 0x49, 0x00, 0x01, 0x48, 0xFD, 0xA0, +0xFF, 0xFF, 0x81, 0x19, 0xFF, 0xA0, 0x81, 0x19, +0x90, 0x03, 0xA2, 0x0A, 0x00, 0x03, 0x4A, 0x00, +0x90, 0x48, 0xFB, 0xA0, 0xFF, 0xFF, 0x80, 0x19, +0x90, 0x19, 0x60, 0x19, 0xB0, 0x03, 0x46, 0x02, +0xC0, 0x1A, 0x72, 0x02, 0x70, 0x03, 0x50, 0x02, +0x7F, 0x51, 0xF1, 0xA0, 0xFF, 0xFF, 0x07, 0x18, +0x10, 0x03, 0x4B, 0x00, 0x10, 0x49, 0x21, 0x80, +0x80, 0x19, 0xFF, 0xA0, 0x21, 0x18, 0x18, 0x79, +0x10, 0x49, 0x60, 0x80, 0x0F, 0x98, 0x25, 0x15, +0x20, 0x03, 0x4B, 0x00, 0x20, 0x62, 0xFF, 0x00, +0x0F, 0x98, 0x66, 0x15, 0x70, 0x18, 0x70, 0x49, +0xF0, 0xA0, 0xFF, 0xFF, 0x70, 0x31, 0x00, 0x03, +0x51, 0x02, 0x07, 0x48, 0xFA, 0xA0, 0xFF, 0xFF, +0xA0, 0x03, 0xA3, 0x0A, 0x50, 0x03, 0x4D, 0x00, +0xA5, 0x48, 0xFC, 0xA0, 0xFF, 0xFF, 0x81, 0x19, +0xFF, 0xA0, 0x00, 0x03, 0x2F, 0x0B, 0x10, 0x03, +0x30, 0x0B, 0x40, 0x03, 0x55, 0x00, 0x50, 0x03, +0x56, 0x00, 0xFF, 0xFF, 0x41, 0x39, 0x51, 0x39, +0x30, 0x19, 0x20, 0x19, 0x60, 0x03, 0xE5, 0x00, +0x6F, 0x51, 0x30, 0x81, 0x60, 0x03, 0xA8, 0x00, +0x60, 0x49, 0x80, 0x80, 0x31, 0x19, 0x60, 0x03, +0xA9, 0x00, 0x60, 0x49, 0xA0, 0x80, 0x30, 0x19, +0x51, 0x39, 0x7F, 0x80, 0x21, 0x19, 0x60, 0x03, +0xA9, 0x00, 0x60, 0x49, 0x20, 0x80, 0x20, 0x19, +0x41, 0x39, 0x02, 0x48, 0xF0, 0x80, 0x04, 0x48, +0xA0, 0x81, 0x13, 0x48, 0x31, 0x80, 0x03, 0x0E, +0x09, 0x0B, 0xFF, 0xA0, 0x15, 0x48, 0x20, 0x80, +0x00, 0x0E, 0x09, 0x0B, 0x21, 0x80, 0x04, 0x0E, +0x09, 0x0B, 0xFF, 0xA0, 0x13, 0x48, 0x31, 0x80, +0x05, 0x0E, 0x09, 0x0B, 0xFF, 0xA0, 0x15, 0x48, +0x20, 0x80, 0x01, 0x0E, 0x09, 0x0B, 0x21, 0x80, +0x06, 0x0E, 0x09, 0x0B, 0xFF, 0xA0, 0x13, 0x48, +0x31, 0x80, 0x07, 0x0E, 0x09, 0x0B, 0xFF, 0xA0, +0x15, 0x48, 0x20, 0x80, 0x02, 0x0E, 0x09, 0x0B, +0x21, 0x80, 0x08, 0x0E, 0x09, 0x0B, 0xFF, 0xA0, +0x00, 0x0E, 0x49, 0x02, 0xA0, 0x03, 0x49, 0x02, +0xB0, 0x1A, 0xCC, 0x0B, 0xBA, 0x20, 0x9B, 0x00, +0x0A, 0x0D, 0x07, 0x0B, 0x09, 0x0D, 0x08, 0x0B, +0xA0, 0x03, 0x56, 0x00, 0x09, 0x0D, 0x18, 0xF9, +0x00, 0x0E, 0x19, 0xF9, 0x0A, 0x0D, 0x1A, 0xF9, +0x00, 0x0E, 0x1B, 0xF9, 0xFF, 0xFF, 0xA0, 0x03, +0x1A, 0xF9, 0x0A, 0x0D, 0x30, 0x0B, 0xA0, 0x03, +0x18, 0xF9, 0x0A, 0x0D, 0x2F, 0x0B, 0x60, 0x03, +0x0C, 0x00, 0x69, 0x51, 0xE0, 0x81, 0x60, 0x03, +0x98, 0x0A, 0x61, 0x49, 0xAD, 0x81, 0x60, 0x03, +0xAF, 0x0A, 0x61, 0x49, 0x6D, 0x81, 0x60, 0x1A, +0x32, 0x06, 0x69, 0x20, 0x26, 0x00, 0x60, 0x1A, +0x75, 0x0D, 0x00, 0x03, 0x30, 0x0B, 0xFF, 0xFF, +0x60, 0x20, 0x16, 0x00, 0x21, 0x48, 0x2C, 0x82, +0x60, 0x1A, 0x85, 0x0D, 0x00, 0x03, 0x2F, 0x0B, +0xFF, 0xFF, 0x60, 0x20, 0x16, 0x00, 0x21, 0x48, +0x9C, 0x81, 0xA0, 0x03, 0x56, 0x00, 0xFF, 0xFF, +0x9A, 0x38, 0x91, 0x39, 0x09, 0x0D, 0x36, 0x0B, +0x50, 0x1A, 0xBC, 0x0A, 0x60, 0x1A, 0x32, 0x06, +0x0F, 0x98, 0x9A, 0x23, 0x0F, 0x98, 0xE0, 0x20, +0xA0, 0x03, 0x09, 0x0B, 0xA0, 0x49, 0x31, 0x80, +0x0F, 0x98, 0x99, 0x2D, 0xFF, 0x81, 0x0F, 0x98, +0x97, 0x2E, 0xCF, 0x81, 0xA0, 0x03, 0x49, 0x02, +0xFF, 0xFF, 0x0F, 0x98, 0xB3, 0x1C, 0xD0, 0x03, +0xAD, 0x0A, 0xFF, 0xFF, 0xD1, 0x39, 0x0D, 0x0D, +0xAD, 0x0A, 0xD0, 0x03, 0xAE, 0x0A, 0xFF, 0xFF, +0xD1, 0x39, 0x0D, 0x0D, 0xAE, 0x0A, 0xD0, 0x49, +0xF0, 0xA0, 0xFF, 0xFF, 0xA0, 0x03, 0x49, 0x02, +0xFF, 0xFF, 0xA1, 0x39, 0x0A, 0x0D, 0x49, 0x02, +0x0F, 0x88, 0x3D, 0x23, 0xD0, 0x03, 0x2F, 0x0B, +0xFF, 0xFF, 0xD7, 0x7B, 0xC0, 0x03, 0xF7, 0x0A, +0xFF, 0xFF, 0xDC, 0x20, 0xD0, 0x22, 0x40, 0x00, +0x0D, 0x0D, 0xF7, 0x0A, 0xD0, 0x03, 0x30, 0x0B, +0xFF, 0xFF, 0xD7, 0x7B, 0xC0, 0x03, 0xF8, 0x0A, +0xFF, 0xFF, 0xDC, 0x20, 0xD0, 0x22, 0x40, 0x00, +0x0D, 0x0D, 0xF8, 0x0A, 0xC0, 0x03, 0xF7, 0x0A, +0xC0, 0x49, 0x3B, 0x80, 0x00, 0x0E, 0xF7, 0x0A, +0x6F, 0x80, 0xB0, 0x03, 0xF5, 0x0A, 0xCB, 0x48, +0x2C, 0x80, 0x0B, 0x0D, 0xF7, 0x0A, 0xC0, 0x03, +0xF8, 0x0A, 0xC0, 0x49, 0x3B, 0x80, 0x00, 0x0E, +0xF8, 0x0A, 0x6F, 0x80, 0xB0, 0x03, 0xF6, 0x0A, +0xCB, 0x48, 0x2C, 0x80, 0x0B, 0x0D, 0xF8, 0x0A, +0xA0, 0x03, 0xF9, 0x0A, 0x90, 0x03, 0x2A, 0x00, +0x0A, 0x0D, 0x18, 0xF9, 0x00, 0x0E, 0x19, 0xF9, +0x09, 0x0D, 0x1A, 0xF9, 0x00, 0x0E, 0x1B, 0xF9, +0xFF, 0xFF, 0xA0, 0x03, 0x18, 0xF9, 0xA0, 0x4A, +0xFF, 0x00, 0x2C, 0x80, 0xA0, 0x1A, 0xFF, 0x00, +0xA5, 0x49, 0x1B, 0x80, 0xA5, 0x19, 0x0A, 0x0D, +0xF9, 0x0A, 0xA0, 0x03, 0xF7, 0x0A, 0xB0, 0x03, +0xBF, 0x00, 0xAB, 0x48, 0x2B, 0x80, 0x0B, 0x0D, +0xF7, 0x0A, 0xA0, 0x03, 0xF7, 0x0A, 0x00, 0x03, +0xC0, 0x00, 0xB0, 0x03, 0xF5, 0x0A, 0xFF, 0xFF, +0xB0, 0x38, 0xAB, 0x48, 0x2D, 0x80, 0x0B, 0x0D, +0xF7, 0x0A, 0xA0, 0x03, 0xF8, 0x0A, 0xB0, 0x03, +0xC1, 0x00, 0xAB, 0x48, 0x2B, 0x80, 0x0B, 0x0D, +0xF8, 0x0A, 0xA0, 0x03, 0xF8, 0x0A, 0x00, 0x03, +0xC2, 0x00, 0xB0, 0x03, 0xF6, 0x0A, 0xFF, 0xFF, +0xB0, 0x38, 0xAB, 0x48, 0x2D, 0x80, 0x0B, 0x0D, +0xF8, 0x0A, 0xA0, 0x03, 0xF7, 0x0A, 0xB0, 0x03, +0xBF, 0x00, 0xFF, 0xFF, 0xAB, 0x38, 0x0A, 0x0D, +0xF7, 0x0A, 0xA0, 0x03, 0xF8, 0x0A, 0xB0, 0x03, +0xC1, 0x00, 0xFF, 0xFF, 0xAB, 0x38, 0x0A, 0x0D, +0xF8, 0x0A, 0x80, 0x03, 0xB5, 0x00, 0x90, 0x03, +0xB6, 0x00, 0x00, 0x03, 0xB7, 0x00, 0x02, 0x51, +0x40, 0x80, 0x90, 0x03, 0xB5, 0x00, 0x80, 0x03, +0xB6, 0x00, 0xC0, 0x03, 0xF8, 0x0A, 0xD0, 0x03, +0xF6, 0x0A, 0x00, 0x03, 0xC1, 0x00, 0xFF, 0xFF, +0xD0, 0x38, 0x00, 0x03, 0xC2, 0x00, 0xFF, 0xFF, +0xD0, 0x38, 0x00, 0x03, 0xA8, 0x00, 0x00, 0x49, +0xC0, 0x80, 0x10, 0x03, 0xE5, 0x00, 0x1F, 0x51, +0x80, 0x80, 0xD0, 0x3A, 0x80, 0x00, 0x10, 0x03, +0xA9, 0x00, 0x10, 0x49, 0x21, 0x80, 0xC0, 0x3A, +0x80, 0x00, 0xC0, 0x49, 0x1B, 0x80, 0xC0, 0x19, +0xCD, 0x48, 0x1D, 0x80, 0xCD, 0x18, 0x08, 0x0D, +0x14, 0xF9, 0x00, 0x0E, 0x15, 0xF9, 0x0C, 0x0D, +0x16, 0xF9, 0x00, 0x0E, 0x17, 0xF9, 0xB0, 0x03, +0x14, 0xF9, 0xC0, 0x03, 0x15, 0xF9, 0x0B, 0x0D, +0x18, 0xF9, 0x0C, 0x0D, 0x19, 0xF9, 0x0D, 0x0D, +0x1A, 0xF9, 0x00, 0x0E, 0x1B, 0xF9, 0xFF, 0xFF, +0xA0, 0x03, 0x18, 0xF9, 0x0A, 0x0D, 0xF8, 0x0A, +0xC0, 0x03, 0xF7, 0x0A, 0xD0, 0x03, 0xF5, 0x0A, +0x00, 0x03, 0xBF, 0x00, 0xFF, 0xFF, 0xD0, 0x38, +0x00, 0x03, 0xC0, 0x00, 0xFF, 0xFF, 0xD0, 0x38, +0x00, 0x03, 0xA8, 0x00, 0x01, 0x49, 0xC0, 0x80, +0x10, 0x03, 0xE5, 0x00, 0x1F, 0x51, 0x80, 0x80, +0xD0, 0x3A, 0x80, 0x00, 0x10, 0x03, 0xA9, 0x00, +0x10, 0x49, 0x21, 0x80, 0xC0, 0x3A, 0x80, 0x00, +0xC0, 0x49, 0x1B, 0x80, 0xC0, 0x19, 0xCD, 0x48, +0x1D, 0x80, 0xCD, 0x18, 0x09, 0x0D, 0x14, 0xF9, +0x00, 0x0E, 0x15, 0xF9, 0x0C, 0x0D, 0x16, 0xF9, +0x00, 0x0E, 0x17, 0xF9, 0xB0, 0x03, 0x14, 0xF9, +0xC0, 0x03, 0x15, 0xF9, 0x0B, 0x0D, 0x18, 0xF9, +0x0C, 0x0D, 0x19, 0xF9, 0x0D, 0x0D, 0x1A, 0xF9, +0x00, 0x0E, 0x1B, 0xF9, 0xFF, 0xFF, 0xA0, 0x03, +0x18, 0xF9, 0x0A, 0x0D, 0xF7, 0x0A, 0x00, 0x03, +0xB7, 0x00, 0x02, 0x51, 0x80, 0x80, 0x00, 0x03, +0xF8, 0x0A, 0x10, 0x03, 0xF7, 0x0A, 0x00, 0x0D, +0xF7, 0x0A, 0x01, 0x0D, 0xF8, 0x0A, 0x00, 0x03, +0xB7, 0x00, 0x01, 0x51, 0xB0, 0x80, 0xB0, 0x03, +0xB6, 0x00, 0xA0, 0x03, 0xF7, 0x0A, 0xFF, 0xFF, +0xBA, 0x38, 0xB0, 0x49, 0x1B, 0x80, 0xB0, 0x19, +0x0B, 0x0D, 0xF7, 0x0A, 0x00, 0x03, 0xB7, 0x00, +0x00, 0x51, 0xB0, 0x80, 0xB0, 0x03, 0xB5, 0x00, +0xA0, 0x03, 0xF8, 0x0A, 0xFF, 0xFF, 0xBA, 0x38, +0xB0, 0x49, 0x1B, 0x80, 0xB0, 0x19, 0x0B, 0x0D, +0xF8, 0x0A, 0xD0, 0x03, 0xB5, 0x00, 0xA0, 0x03, +0xF8, 0x0A, 0xAD, 0x48, 0x2D, 0x80, 0x0D, 0x0D, +0xF8, 0x0A, 0xA0, 0x49, 0x2B, 0x80, 0x00, 0x0E, +0xF8, 0x0A, 0xD0, 0x03, 0xB6, 0x00, 0xA0, 0x03, +0xF7, 0x0A, 0xAD, 0x48, 0x2D, 0x80, 0x0D, 0x0D, +0xF7, 0x0A, 0xA0, 0x49, 0x2B, 0x80, 0x00, 0x0E, +0xF7, 0x0A, 0x00, 0x1A, 0x40, 0x00, 0x10, 0x1A, +0xA9, 0x01, 0x20, 0x03, 0xF8, 0x0A, 0x30, 0x03, +0xF7, 0x0A, 0xA0, 0x03, 0x97, 0x00, 0x41, 0x00, +0x84, 0x18, 0x54, 0x18, 0x4A, 0x20, 0xB0, 0x03, +0xB5, 0x00, 0x4B, 0x48, 0x0D, 0xB0, 0x4B, 0x18, +0x5A, 0x38, 0x50, 0x49, 0x0B, 0xB0, 0x50, 0x19, +0x11, 0x21, 0x61, 0x00, 0x96, 0x18, 0x76, 0x18, +0x6A, 0x20, 0xB0, 0x03, 0xB6, 0x00, 0x6B, 0x48, +0x0D, 0xB0, 0x6B, 0x18, 0x7A, 0x38, 0x70, 0x49, +0x0B, 0xB0, 0x70, 0x19, 0x11, 0x21, 0x24, 0x48, +0x3A, 0x81, 0x25, 0x48, 0x1C, 0x81, 0x36, 0x48, +0xFA, 0x80, 0x37, 0x48, 0xDC, 0x80, 0xC0, 0x03, +0xF9, 0x0A, 0xD0, 0x03, 0x98, 0x00, 0xCD, 0x48, +0x0A, 0xB0, 0x0F, 0x98, 0x49, 0x23, 0x02, 0x0D, +0xF8, 0x0A, 0x03, 0x0D, 0xF7, 0x0A, 0x2F, 0x80, +0x01, 0x39, 0xD1, 0x84, 0xA0, 0x03, 0x49, 0x02, +0xFF, 0xFF, 0xA3, 0x59, 0xFF, 0xFF, 0xB0, 0x1A, +0x8E, 0x0B, 0xA0, 0x1E, 0xBA, 0x20, 0xA0, 0x03, +0xF8, 0x0A, 0xBA, 0x08, 0xB1, 0x21, 0xA0, 0x03, +0xF7, 0x0A, 0xBA, 0x08, 0xB1, 0x21, 0xA0, 0x03, +0xF9, 0x0A, 0xBA, 0x08, 0xA0, 0x03, 0x49, 0x02, +0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, 0x49, 0x02, +0xB0, 0x03, 0xAD, 0x0A, 0xAB, 0x48, 0x01, 0x88, +0x31, 0x21, 0xFF, 0xA0, 0x40, 0x03, 0x96, 0x00, +0x50, 0x1A, 0x64, 0x00, 0x82, 0x38, 0xC8, 0x18, +0xCF, 0x51, 0x20, 0x80, 0xFF, 0xFF, 0xC0, 0x31, +0xC2, 0x49, 0xED, 0x81, 0x08, 0x0D, 0x10, 0xF9, +0x8F, 0x51, 0xA0, 0x19, 0x10, 0x80, 0xA1, 0x39, +0x0A, 0x0D, 0x11, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0x04, 0x0D, 0x12, 0xF9, 0x80, 0x03, 0x10, 0xF9, +0x08, 0x0D, 0x18, 0xF9, 0x8F, 0x51, 0xA0, 0x19, +0x10, 0x80, 0xA1, 0x39, 0x0A, 0x0D, 0x19, 0xF9, +0x00, 0x0E, 0x1B, 0xF9, 0x05, 0x0D, 0x1A, 0xF9, +0x80, 0x03, 0x18, 0xF9, 0xFF, 0xFF, 0x28, 0x20, +0x93, 0x38, 0xD9, 0x18, 0xDF, 0x51, 0x20, 0x80, +0xFF, 0xFF, 0xD0, 0x31, 0xD2, 0x49, 0xED, 0x81, +0x09, 0x0D, 0x10, 0xF9, 0x9F, 0x51, 0xA0, 0x19, +0x10, 0x80, 0xA1, 0x39, 0x0A, 0x0D, 0x11, 0xF9, +0x00, 0x0E, 0x13, 0xF9, 0x04, 0x0D, 0x12, 0xF9, +0x90, 0x03, 0x10, 0xF9, 0x09, 0x0D, 0x18, 0xF9, +0x9F, 0x51, 0xA0, 0x19, 0x10, 0x80, 0xA1, 0x39, +0x0A, 0x0D, 0x19, 0xF9, 0x00, 0x0E, 0x1B, 0xF9, +0x05, 0x0D, 0x1A, 0xF9, 0x90, 0x03, 0x18, 0xF9, +0xFF, 0xFF, 0x39, 0x20, 0xFF, 0xA0, 0x00, 0x0E, +0x32, 0x0B, 0x00, 0x0E, 0x33, 0x0B, 0xA0, 0x03, +0x32, 0x0B, 0xB0, 0x03, 0x33, 0x0B, 0xD3, 0x19, +0xDA, 0x58, 0xFF, 0xFF, 0x40, 0x03, 0x56, 0x00, +0xD0, 0x1E, 0xDB, 0x20, 0xA0, 0x03, 0x32, 0x0B, +0xB0, 0x03, 0x33, 0x0B, 0xFF, 0xFF, 0x4A, 0x58, +0xFF, 0xFF, 0xA0, 0x03, 0x36, 0x0B, 0x40, 0x1E, +0x4B, 0x20, 0x4A, 0x20, 0xB5, 0x18, 0xBD, 0x20, +0xC6, 0x18, 0xC4, 0x20, 0xAC, 0x00, 0xA0, 0x49, +0x1B, 0x80, 0xA0, 0x19, 0xBA, 0x08, 0xA0, 0x03, +0x33, 0x0B, 0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, +0x33, 0x0B, 0xA3, 0x49, 0x81, 0x85, 0xA0, 0x03, +0x32, 0x0B, 0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, +0x32, 0x0B, 0xA3, 0x49, 0xE1, 0x84, 0xFF, 0xA0, +0xB0, 0x1A, 0x77, 0x00, 0xC0, 0x1A, 0x4F, 0x0B, +0x00, 0x03, 0x05, 0x00, 0x00, 0x49, 0x00, 0x88, +0x1D, 0x24, 0x00, 0x0E, 0x32, 0x0B, 0x00, 0x0E, +0x33, 0x0B, 0xD0, 0x19, 0x9C, 0x18, 0x8B, 0x18, +0xA9, 0x00, 0x8A, 0x08, 0x91, 0x21, 0x81, 0x21, +0xA9, 0x00, 0x8A, 0x08, 0x91, 0x21, 0x81, 0x21, +0x59, 0x00, 0x48, 0x00, 0x80, 0x0B, 0xA9, 0x00, +0xA8, 0x51, 0x00, 0x81, 0xAD, 0x51, 0x81, 0x80, +0x85, 0x08, 0x00, 0x03, 0x33, 0x0B, 0xFF, 0xFF, +0x01, 0x21, 0x00, 0x0D, 0x33, 0x0B, 0x9F, 0x80, +0x48, 0x51, 0xC0, 0x80, 0x50, 0x19, 0x5B, 0xC1, +0x85, 0x08, 0x3F, 0x80, 0xAB, 0x51, 0x60, 0x80, +0x85, 0x08, 0xA0, 0x03, 0x32, 0x0B, 0xAD, 0xC0, +0x0A, 0x0D, 0x32, 0x0B, 0xB3, 0x21, 0xC3, 0x21, +0xD1, 0x21, 0xA0, 0x03, 0x0A, 0x00, 0xDA, 0x48, +0x11, 0x85, 0xA0, 0x03, 0x32, 0x0B, 0x0A, 0x0D, +0x76, 0x00, 0xB0, 0x03, 0x8B, 0x0B, 0x0B, 0x0D, +0x75, 0x00, 0xA0, 0x03, 0x33, 0x0B, 0x0A, 0x0D, +0x99, 0x0A, 0x00, 0x03, 0xFA, 0x0A, 0x00, 0x0D, +0x95, 0x00, 0xFF, 0xA0, 0xD0, 0x03, 0x0A, 0x00, +0x00, 0x0E, 0x32, 0x0B, 0x9C, 0x18, 0x92, 0x21, +0x89, 0x00, 0x9C, 0x18, 0xA9, 0x00, 0xBA, 0x08, +0x91, 0x21, 0xB1, 0x21, 0xA9, 0x00, 0xBA, 0x08, +0x91, 0x21, 0xB1, 0x21, 0x4B, 0x00, 0x8D, 0x51, +0x80, 0x80, 0xB0, 0x0B, 0x48, 0x51, 0x30, 0x80, +0x40, 0x19, 0x4B, 0xC1, 0xB4, 0x08, 0xB1, 0x21, +0xBF, 0x80, 0x88, 0x51, 0x60, 0x80, 0x00, 0x03, +0x32, 0x0B, 0xFF, 0xFF, 0x01, 0x21, 0x00, 0x0D, +0x32, 0x0B, 0xA9, 0x00, 0xBA, 0x08, 0xB1, 0x21, +0xC3, 0x21, 0xD1, 0x39, 0xB1, 0x85, 0xB0, 0x03, +0x8B, 0x0B, 0x0B, 0x0D, 0x75, 0x00, 0xA0, 0x03, +0x32, 0x0B, 0x0A, 0x0D, 0x99, 0x0A, 0xB0, 0x03, +0x8D, 0x0B, 0xFF, 0xFF, 0xB8, 0x7B, 0xAB, 0x68, +0x0A, 0x0D, 0x76, 0x00, 0x00, 0x03, 0xFA, 0x0A, +0x00, 0x0D, 0x95, 0x00, 0xFF, 0xA0, 0xD0, 0x1A, +0x4F, 0x0B, 0xD2, 0x21, 0xB0, 0x1A, 0x6D, 0x0B, +0xB2, 0x21, 0x40, 0x1A, 0xDD, 0x0B, 0x50, 0x1A, +0xED, 0x0B, 0xC0, 0x19, 0x10, 0x19, 0x3A, 0x19, +0xD0, 0x0B, 0xB0, 0x0B, 0x40, 0x0B, 0x50, 0x0B, +0x41, 0x21, 0x51, 0x21, 0xD3, 0x21, 0xB3, 0x21, +0xC1, 0x21, 0xC3, 0x48, 0x51, 0x87, 0x90, 0x1A, +0x99, 0x0D, 0x92, 0x21, 0xA0, 0x1A, 0xC6, 0x0D, +0x80, 0x1A, 0xD5, 0x0D, 0x70, 0x1A, 0xE4, 0x0D, +0xC0, 0x19, 0x10, 0x19, 0x3F, 0x19, 0x90, 0x0B, +0xA0, 0x0B, 0x80, 0x0B, 0x70, 0x0B, 0x71, 0x21, +0x81, 0x21, 0xA1, 0x21, 0x93, 0x21, 0xC1, 0x21, +0xC3, 0x48, 0x51, 0x87, 0x00, 0x0E, 0x15, 0x0B, +0x00, 0x0E, 0x9A, 0x0A, 0xFF, 0xA0, 0x56, 0x18, +0x20, 0x1A, 0xDD, 0x0B, 0x26, 0x20, 0x30, 0x1A, +0xED, 0x0B, 0x36, 0x20, 0x00, 0x1A, 0xFD, 0x0B, +0x10, 0x1A, 0x9D, 0x0C, 0x64, 0x7B, 0x06, 0x20, +0x16, 0x20, 0x42, 0x00, 0xFF, 0xFF, 0x04, 0x20, +0x14, 0x20, 0x07, 0x08, 0x18, 0x08, 0x41, 0x21, +0x40, 0x4A, 0x10, 0x00, 0x1C, 0x80, 0x40, 0x19, +0x24, 0x08, 0x80, 0x19, 0x40, 0x1A, 0x58, 0x02, +0x45, 0x20, 0xA0, 0x03, 0x36, 0x0B, 0x00, 0x03, +0x6C, 0x02, 0xA0, 0x48, 0x4D, 0x80, 0x00, 0x03, +0x6D, 0x02, 0x40, 0x08, 0x81, 0x19, 0x74, 0x00, +0xFF, 0xFF, 0x71, 0x39, 0x1C, 0x80, 0x47, 0x08, +0xA1, 0x21, 0x00, 0x03, 0x6E, 0x02, 0xFF, 0xFF, +0xA0, 0x78, 0x40, 0x03, 0xF3, 0x0D, 0x40, 0x62, +0xFF, 0x00, 0x41, 0x21, 0x4A, 0x38, 0x1A, 0x80, +0x41, 0x19, 0x10, 0x1A, 0x62, 0x02, 0x15, 0x20, +0xA1, 0x00, 0x4A, 0x48, 0x3A, 0x80, 0x50, 0x80, +0xA1, 0x39, 0x3F, 0x80, 0x81, 0x49, 0x10, 0x80, +0xA1, 0x21, 0x00, 0x03, 0xF3, 0x0D, 0xFF, 0xFF, +0x08, 0x79, 0x00, 0x49, 0x11, 0x80, 0x01, 0x19, +0xA0, 0x48, 0x1B, 0x80, 0xA0, 0x18, 0x1A, 0x08, +0x43, 0x00, 0xFF, 0xFF, 0x41, 0x21, 0x4A, 0x48, +0x1C, 0x80, 0x4A, 0x18, 0x34, 0x08, 0x00, 0x1A, +0xFD, 0x0B, 0x10, 0x1A, 0x9D, 0x0C, 0x06, 0x20, +0x16, 0x20, 0xA0, 0x19, 0x70, 0x19, 0x80, 0x19, +0x34, 0x18, 0x42, 0x00, 0xFF, 0xFF, 0x41, 0x39, +0x40, 0x49, 0x2B, 0x80, 0x40, 0x22, 0x10, 0x00, +0x04, 0x20, 0x14, 0x20, 0x20, 0x00, 0xFF, 0xFF, +0x72, 0x20, 0x21, 0x00, 0xFF, 0xFF, 0x82, 0x20, +0x04, 0x38, 0x14, 0x38, 0xA1, 0x21, 0xA3, 0x48, +0xE1, 0x86, 0x00, 0x1A, 0x62, 0x02, 0x05, 0x20, +0x40, 0x00, 0xA4, 0x48, 0x1B, 0x80, 0x4A, 0x18, +0x00, 0x0E, 0x19, 0xF9, 0x07, 0x0D, 0x18, 0xF9, +0x04, 0x0D, 0x1A, 0xF9, 0x00, 0x0E, 0x1B, 0xF9, +0xFF, 0xFF, 0x70, 0x03, 0x18, 0xF9, 0x00, 0x0E, +0x19, 0xF9, 0x08, 0x0D, 0x18, 0xF9, 0x04, 0x0D, +0x1A, 0xF9, 0x00, 0x0E, 0x1B, 0xF9, 0xFF, 0xFF, +0x80, 0x03, 0x18, 0xF9, 0x04, 0x0D, 0x2E, 0x00, +0xFF, 0xFF, 0xFF, 0xA0, 0xA0, 0x03, 0x29, 0x0B, +0xD0, 0x03, 0x24, 0x0B, 0xFF, 0xFF, 0xAD, 0x38, +0xAF, 0x51, 0x10, 0x80, 0xA0, 0x31, 0x0A, 0x0D, +0x2F, 0x0B, 0xA0, 0x03, 0x2A, 0x0B, 0xD0, 0x03, +0x25, 0x0B, 0xFF, 0xFF, 0xAD, 0x38, 0xAF, 0x51, +0x10, 0x80, 0xA0, 0x31, 0x0A, 0x0D, 0x30, 0x0B, +0x0F, 0x98, 0x40, 0x25, 0x0A, 0x0D, 0x31, 0x0B, +0xFF, 0xA0, 0xA0, 0x03, 0x2F, 0x0B, 0xD0, 0x03, +0x30, 0x0B, 0xA0, 0x49, 0x21, 0x80, 0xAD, 0x18, +0xFF, 0xA0, 0xD0, 0x49, 0xF0, 0xA0, 0xFF, 0xFF, +0xAD, 0x48, 0x1B, 0x80, 0xAD, 0x18, 0x00, 0x03, +0x2F, 0x0B, 0x10, 0x18, 0x0F, 0x98, 0x25, 0x15, +0x00, 0x0D, 0x04, 0xF9, 0x01, 0x0D, 0x05, 0xF9, +0x00, 0x03, 0x30, 0x0B, 0x10, 0x18, 0x0F, 0x98, +0x25, 0x15, 0x00, 0x0D, 0x06, 0xF9, 0x01, 0x0D, +0x07, 0xF9, 0x00, 0x03, 0x03, 0xF9, 0x10, 0x03, +0x04, 0xF9, 0x00, 0x0D, 0x18, 0xF9, 0x01, 0x0D, +0x19, 0xF9, 0xD0, 0x19, 0x26, 0x19, 0x0A, 0x0D, +0x1A, 0xF9, 0x0D, 0x0D, 0x1B, 0xF9, 0xFF, 0xFF, +0x00, 0x03, 0x18, 0xF9, 0x10, 0x03, 0x19, 0xF9, +0x00, 0x0D, 0x04, 0xF9, 0x01, 0x0D, 0x05, 0xF9, +0x0A, 0x0D, 0x06, 0xF9, 0x0D, 0x0D, 0x07, 0xF9, +0xA0, 0x03, 0x03, 0xF9, 0xD0, 0x03, 0x04, 0xF9, +0xFF, 0xFF, 0xA1, 0x79, 0xD0, 0x51, 0xAF, 0xC5, +0xD1, 0x79, 0x21, 0x39, 0x41, 0x86, 0xFF, 0xA0, +0xB0, 0x03, 0x46, 0x0B, 0xD0, 0x19, 0xBD, 0x50, +0xF0, 0xA0, 0xFF, 0xFF, 0xD1, 0x21, 0xDF, 0x49, +0xA1, 0x87, 0xFF, 0xA0, 0x0F, 0x98, 0x87, 0x25, +0xDF, 0x49, 0xF0, 0xA0, 0xFF, 0xFF, 0xA0, 0x03, +0xAE, 0x0A, 0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, +0xAE, 0x0A, 0xA0, 0x03, 0x46, 0x0B, 0xA9, 0xC0, +0xAD, 0xC0, 0x0A, 0x0D, 0x46, 0x0B, 0x70, 0x4A, +0xFF, 0x00, 0x70, 0x80, 0xA0, 0x03, 0x44, 0x0B, +0xA9, 0xC0, 0xAD, 0xC0, 0x0A, 0x0D, 0x44, 0x0B, +0x6F, 0x80, 0xA0, 0x03, 0x45, 0x0B, 0xA9, 0xC0, +0xAD, 0xC0, 0x0A, 0x0D, 0x45, 0x0B, 0x90, 0x1A, +0x99, 0x0D, 0xAD, 0x18, 0xA3, 0x59, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x1E, 0x9A, 0x20, +0xC0, 0x1A, 0x8E, 0x0B, 0xA8, 0x18, 0xA3, 0x59, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x1E, +0xCA, 0x20, 0x0C, 0x00, 0x90, 0x08, 0xC1, 0x21, +0x91, 0x21, 0x0C, 0x00, 0x90, 0x08, 0x91, 0x21, +0xA0, 0x03, 0x26, 0x0B, 0xA0, 0x62, 0xFF, 0x00, +0x80, 0x1A, 0xD5, 0x0D, 0x8D, 0x20, 0x80, 0x0B, +0x80, 0x1A, 0xC6, 0x0D, 0x8D, 0x20, 0x08, 0x00, +0xFF, 0xFF, 0x01, 0x21, 0x80, 0x08, 0x10, 0x03, +0x9B, 0x0A, 0x81, 0x08, 0xAE, 0xC1, 0xA8, 0xC1, +0xAA, 0xC1, 0xA9, 0xC1, 0x9A, 0x08, 0x80, 0x1A, +0xE4, 0x0D, 0x8D, 0x20, 0x80, 0x0B, 0xFF, 0xA0, +0x0F, 0x98, 0xB3, 0x1C, 0xA0, 0x03, 0xAD, 0x0A, +0xFF, 0xFF, 0xA1, 0x39, 0x0A, 0x0D, 0xAD, 0x0A, +0xA0, 0x03, 0xAE, 0x0A, 0xFF, 0xFF, 0xA1, 0x39, +0x0A, 0x0D, 0xAE, 0x0A, 0xA0, 0x49, 0xFC, 0xA0, +0xFF, 0xFF, 0xB0, 0x03, 0xAD, 0x0A, 0xB0, 0x49, +0x3B, 0x80, 0x00, 0x0E, 0xAE, 0x0A, 0xFF, 0xA0, +0xA0, 0x03, 0x9A, 0x0A, 0xB0, 0x03, 0xAD, 0x0A, +0xBA, 0x68, 0xB0, 0x49, 0x00, 0x88, 0x5A, 0x24, +0x90, 0x1A, 0x99, 0x0D, 0x92, 0x21, 0xC0, 0x19, +0xB0, 0x19, 0x3F, 0x19, 0xA9, 0x00, 0xA8, 0x51, +0x20, 0x80, 0xBC, 0xC0, 0x3F, 0x80, 0xA0, 0x62, +0xFF, 0x00, 0x9A, 0x08, 0x93, 0x21, 0xC1, 0x21, +0xC3, 0x48, 0x41, 0x87, 0x0B, 0x0D, 0x46, 0x0B, +0x00, 0x0E, 0x32, 0x0B, 0x00, 0x0E, 0x44, 0x0B, +0x00, 0x0E, 0x27, 0x0B, 0x00, 0x0E, 0x8B, 0x0B, +0x00, 0x0E, 0x45, 0x0B, 0xA0, 0x03, 0x9A, 0x0A, +0xA0, 0x49, 0x00, 0x88, 0x92, 0x28, 0xA0, 0x03, +0x9A, 0x0A, 0xB0, 0x03, 0xAD, 0x0A, 0xAB, 0x48, +0x0A, 0x88, 0x5D, 0x27, 0xA0, 0x03, 0x32, 0x0B, +0x3F, 0x19, 0xA3, 0x48, 0x0B, 0x88, 0x92, 0x28, +0xB0, 0x03, 0x46, 0x0B, 0xBA, 0x50, 0x00, 0x88, +0x55, 0x27, 0xB0, 0x03, 0x45, 0x0B, 0xBA, 0x50, +0x01, 0x88, 0x55, 0x27, 0xB0, 0x1A, 0x99, 0x0D, +0xA0, 0x03, 0x32, 0x0B, 0xFF, 0xFF, 0xA3, 0x59, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x1E, +0xBA, 0x20, 0xAB, 0x00, 0x0A, 0x0D, 0x24, 0x0B, +0xB1, 0x21, 0xAB, 0x00, 0x0A, 0x0D, 0x25, 0x0B, +0x00, 0x0E, 0x33, 0x0B, 0xA0, 0x1A, 0x10, 0x27, +0x0A, 0x0D, 0x36, 0x0B, 0x0A, 0x0D, 0x47, 0x0B, +0x90, 0x03, 0x33, 0x0B, 0xA0, 0x03, 0xAD, 0x0A, +0x9A, 0x48, 0xBB, 0x82, 0xA0, 0x03, 0x44, 0x0B, +0xA9, 0x50, 0x01, 0x82, 0xB0, 0x1A, 0x8E, 0x0B, +0xA0, 0x03, 0x33, 0x0B, 0xFF, 0xFF, 0xA3, 0x59, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x1E, +0xBA, 0x20, 0xAB, 0x00, 0x0A, 0x0D, 0x29, 0x0B, +0xB1, 0x21, 0xAB, 0x00, 0x0A, 0x0D, 0x2A, 0x0B, +0x0F, 0x98, 0x25, 0x25, 0xB0, 0x03, 0x36, 0x0B, +0xAB, 0x48, 0x8B, 0x80, 0xA0, 0x03, 0x31, 0x0B, +0x0A, 0x0D, 0x36, 0x0B, 0xA0, 0x03, 0x33, 0x0B, +0x0A, 0x0D, 0x47, 0x0B, 0x90, 0x03, 0x33, 0x0B, +0xFF, 0xFF, 0x91, 0x21, 0x09, 0x0D, 0x33, 0x0B, +0xFF, 0x84, 0xA0, 0x03, 0x47, 0x0B, 0xA0, 0x4A, +0x10, 0x27, 0x00, 0x88, 0x55, 0x27, 0xA0, 0x03, +0x44, 0x0B, 0x90, 0x03, 0x47, 0x0B, 0xA9, 0xC0, +0x0A, 0x0D, 0x44, 0x0B, 0xA0, 0x03, 0x45, 0x0B, +0x90, 0x03, 0x32, 0x0B, 0xA9, 0xC0, 0x0A, 0x0D, +0x45, 0x0B, 0x00, 0x03, 0x9B, 0x0A, 0x90, 0x1A, +0xC6, 0x0D, 0xA0, 0x03, 0x32, 0x0B, 0xFF, 0xFF, +0x9A, 0x20, 0x19, 0x00, 0x10, 0x48, 0x0B, 0x88, +0xED, 0x26, 0x10, 0x03, 0x03, 0x0E, 0x00, 0x03, +0x47, 0x0B, 0x10, 0x50, 0x70, 0x82, 0x90, 0x0B, +0xA0, 0x03, 0xAE, 0x0A, 0xFF, 0xFF, 0xA1, 0x39, +0x0A, 0x0D, 0xAE, 0x0A, 0x90, 0x1A, 0x99, 0x0D, +0xA0, 0x03, 0x32, 0x0B, 0xFF, 0xFF, 0xA3, 0x59, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x1E, +0xA9, 0x20, 0xA2, 0x21, 0xA0, 0x0B, 0x70, 0x1A, +0xC6, 0x0D, 0xA0, 0x03, 0x32, 0x0B, 0xFF, 0xFF, +0x7A, 0x20, 0x70, 0x0B, 0x70, 0x1A, 0xE4, 0x0D, +0xA0, 0x03, 0x32, 0x0B, 0xFF, 0xFF, 0x7A, 0x20, +0x70, 0x0B, 0xA0, 0x03, 0x47, 0x0B, 0xFF, 0xFF, +0x0F, 0x88, 0xE7, 0x25, 0xB0, 0x03, 0x36, 0x0B, +0xA0, 0x03, 0x3A, 0x00, 0xBA, 0x48, 0x5B, 0x80, +0xA9, 0x00, 0xFF, 0xFF, 0xA1, 0x21, 0x9A, 0x08, +0x6F, 0x82, 0x90, 0x0B, 0x70, 0x1A, 0xE4, 0x0D, +0xA0, 0x03, 0x32, 0x0B, 0xFF, 0xFF, 0x7A, 0x20, +0x70, 0x0B, 0xDF, 0x81, 0xB0, 0x03, 0x36, 0x0B, +0xA0, 0x03, 0x57, 0x02, 0xBA, 0x48, 0x2D, 0x80, +0x0B, 0x0D, 0x57, 0x02, 0x70, 0x1A, 0xE4, 0x0D, +0xA0, 0x03, 0x32, 0x0B, 0xFF, 0xFF, 0x7A, 0x20, +0xA7, 0x00, 0xAB, 0x48, 0x1B, 0x80, 0x7B, 0x08, +0xB0, 0x03, 0xBC, 0x00, 0xAB, 0x48, 0x7B, 0x80, +0xB0, 0x03, 0x36, 0x0B, 0xA0, 0x03, 0xBB, 0x00, +0xBA, 0x48, 0x0B, 0x88, 0x4D, 0x27, 0xA0, 0x03, +0x47, 0x0B, 0x0A, 0x0D, 0xDB, 0x0B, 0xA0, 0x03, +0x32, 0x0B, 0x0A, 0x0D, 0xDC, 0x0B, 0xC0, 0x1A, +0x8E, 0x0B, 0xA0, 0x03, 0xDB, 0x0B, 0xFF, 0xFF, +0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xA0, 0x1E, 0xCA, 0x20, 0x90, 0x1A, 0x99, 0x0D, +0xA0, 0x03, 0xDC, 0x0B, 0xFF, 0xFF, 0xA3, 0x59, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x1E, +0x9A, 0x20, 0x7C, 0x00, 0x97, 0x08, 0xC1, 0x21, +0x91, 0x21, 0x8C, 0x00, 0x98, 0x08, 0xC1, 0x21, +0x91, 0x21, 0xAC, 0x00, 0xA0, 0x62, 0xFF, 0x00, +0x20, 0x03, 0x9B, 0x0A, 0x70, 0x1A, 0xC6, 0x0D, +0x00, 0x03, 0xDC, 0x0B, 0xFF, 0xFF, 0x70, 0x20, +0x07, 0x00, 0x02, 0x48, 0x9B, 0x80, 0x80, 0x1A, +0xD5, 0x0D, 0x00, 0x03, 0x32, 0x0B, 0xFF, 0xFF, +0x80, 0x20, 0x80, 0x0B, 0xAE, 0xC9, 0x2F, 0x80, +0x72, 0x08, 0xAE, 0xC1, 0xA8, 0xC1, 0xA9, 0xC1, +0x9A, 0x08, 0x8F, 0x80, 0x80, 0x03, 0x47, 0x0B, +0x90, 0x03, 0x32, 0x0B, 0x70, 0x1A, 0xFF, 0x00, +0x0F, 0x98, 0x91, 0x25, 0xA0, 0x03, 0x32, 0x0B, +0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, 0x32, 0x0B, +0x0F, 0x88, 0x31, 0x26, 0x00, 0x0E, 0x44, 0x0B, +0xB0, 0x03, 0xAD, 0x0A, 0xB0, 0x49, 0x00, 0x88, +0x9B, 0x28, 0x00, 0x0E, 0x33, 0x0B, 0x00, 0x0E, +0x57, 0x02, 0xA0, 0x03, 0x32, 0x0B, 0x90, 0x03, +0xAD, 0x0A, 0xA9, 0x48, 0x0B, 0x88, 0x92, 0x28, +0xB0, 0x1A, 0x8E, 0x0B, 0xA0, 0x03, 0x32, 0x0B, +0xFF, 0xFF, 0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xA0, 0x1E, 0xBA, 0x20, 0xAB, 0x00, +0x0A, 0x0D, 0x24, 0x0B, 0xB1, 0x21, 0xAB, 0x00, +0x0A, 0x0D, 0x25, 0x0B, 0x00, 0x0E, 0x33, 0x0B, +0xA0, 0x1A, 0x10, 0x27, 0x0A, 0x0D, 0x36, 0x0B, +0x0A, 0x0D, 0x47, 0x0B, 0xA0, 0x03, 0x33, 0x0B, +0x3F, 0x19, 0xA3, 0x48, 0xFB, 0x82, 0x90, 0x03, +0x44, 0x0B, 0x9A, 0x50, 0x41, 0x82, 0xB0, 0x03, +0x46, 0x0B, 0xBA, 0x50, 0x00, 0x82, 0xB0, 0x1A, +0x99, 0x0D, 0xA0, 0x03, 0x33, 0x0B, 0xFF, 0xFF, +0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xA0, 0x1E, 0xBA, 0x20, 0xAB, 0x00, 0x0A, 0x0D, +0x29, 0x0B, 0xB1, 0x21, 0xAB, 0x00, 0x0A, 0x0D, +0x2A, 0x0B, 0x0F, 0x98, 0x25, 0x25, 0xB0, 0x03, +0x36, 0x0B, 0xAB, 0x48, 0x8B, 0x80, 0xA0, 0x03, +0x31, 0x0B, 0x0A, 0x0D, 0x36, 0x0B, 0xA0, 0x03, +0x33, 0x0B, 0x0A, 0x0D, 0x47, 0x0B, 0x90, 0x03, +0x33, 0x0B, 0xFF, 0xFF, 0x91, 0x21, 0x09, 0x0D, +0x33, 0x0B, 0xCF, 0x84, 0xA0, 0x03, 0x47, 0x0B, +0xA0, 0x4A, 0x10, 0x27, 0x00, 0x88, 0x8A, 0x28, +0xA0, 0x03, 0x44, 0x0B, 0x90, 0x03, 0x47, 0x0B, +0xA9, 0xC0, 0x0A, 0x0D, 0x44, 0x0B, 0xB0, 0x03, +0x36, 0x0B, 0x70, 0x1A, 0xE4, 0x0D, 0xA0, 0x03, +0x47, 0x0B, 0xFF, 0xFF, 0x7A, 0x20, 0xA7, 0x00, +0xAB, 0x48, 0x1B, 0x80, 0x7B, 0x08, 0x00, 0x03, +0x9B, 0x0A, 0x90, 0x1A, 0xC6, 0x0D, 0xA0, 0x03, +0x47, 0x0B, 0xFF, 0xFF, 0x9A, 0x20, 0x19, 0x00, +0x10, 0x48, 0x0B, 0x88, 0x23, 0x28, 0x10, 0x03, +0x03, 0x0E, 0x00, 0x03, 0x32, 0x0B, 0x10, 0x50, +0x70, 0x82, 0x90, 0x0B, 0xA0, 0x03, 0xAE, 0x0A, +0xFF, 0xFF, 0xA1, 0x39, 0x0A, 0x0D, 0xAE, 0x0A, +0x90, 0x1A, 0x99, 0x0D, 0xA0, 0x03, 0x47, 0x0B, +0xFF, 0xFF, 0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xA0, 0x1E, 0xA9, 0x20, 0xA2, 0x21, +0xA0, 0x0B, 0x70, 0x1A, 0xC6, 0x0D, 0xA0, 0x03, +0x47, 0x0B, 0xFF, 0xFF, 0x7A, 0x20, 0x70, 0x0B, +0x70, 0x1A, 0xE4, 0x0D, 0xA0, 0x03, 0x47, 0x0B, +0xFF, 0xFF, 0x7A, 0x20, 0x70, 0x0B, 0xA0, 0x03, +0x32, 0x0B, 0xFF, 0xFF, 0x0F, 0x88, 0xE7, 0x25, +0xB0, 0x03, 0x36, 0x0B, 0xA0, 0x03, 0x3A, 0x00, +0xBA, 0x48, 0x5B, 0x80, 0xA9, 0x00, 0xFF, 0xFF, +0xA1, 0x21, 0x9A, 0x08, 0x6F, 0x82, 0x90, 0x0B, +0x70, 0x1A, 0xE4, 0x0D, 0xA0, 0x03, 0x47, 0x0B, +0xFF, 0xFF, 0x7A, 0x20, 0x70, 0x0B, 0xDF, 0x81, +0xB0, 0x03, 0x36, 0x0B, 0xA0, 0x03, 0x57, 0x02, +0xBA, 0x48, 0x2D, 0x80, 0x0B, 0x0D, 0x57, 0x02, +0x70, 0x1A, 0xE4, 0x0D, 0xA0, 0x03, 0x47, 0x0B, +0xFF, 0xFF, 0x7A, 0x20, 0xA7, 0x00, 0xAB, 0x48, +0x1B, 0x80, 0x7B, 0x08, 0xB0, 0x03, 0xBC, 0x00, +0xAB, 0x48, 0x7B, 0x80, 0xB0, 0x03, 0x36, 0x0B, +0xA0, 0x03, 0xBB, 0x00, 0xBA, 0x48, 0x0B, 0x88, +0x83, 0x28, 0xA0, 0x03, 0x32, 0x0B, 0x0A, 0x0D, +0xDB, 0x0B, 0xA0, 0x03, 0x47, 0x0B, 0x0A, 0x0D, +0xDC, 0x0B, 0xC0, 0x1A, 0x8E, 0x0B, 0xA0, 0x03, +0xDB, 0x0B, 0xFF, 0xFF, 0xA3, 0x59, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x1E, 0xCA, 0x20, +0x90, 0x1A, 0x99, 0x0D, 0xA0, 0x03, 0xDC, 0x0B, +0xFF, 0xFF, 0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xA0, 0x1E, 0x9A, 0x20, 0x7C, 0x00, +0x97, 0x08, 0xC1, 0x21, 0x91, 0x21, 0x8C, 0x00, +0x98, 0x08, 0xC1, 0x21, 0x91, 0x21, 0xAC, 0x00, +0xA0, 0x62, 0xFF, 0x00, 0x20, 0x03, 0x9B, 0x0A, +0x70, 0x1A, 0xC6, 0x0D, 0x00, 0x03, 0x47, 0x0B, +0xFF, 0xFF, 0x70, 0x20, 0x07, 0x00, 0x02, 0x48, +0x9B, 0x80, 0x80, 0x1A, 0xD5, 0x0D, 0x00, 0x03, +0x47, 0x0B, 0xFF, 0xFF, 0x80, 0x20, 0x80, 0x0B, +0xAE, 0xC9, 0x2F, 0x80, 0x72, 0x08, 0xAE, 0xC1, +0xA8, 0xC1, 0xA9, 0xC1, 0x9A, 0x08, 0x7F, 0x80, +0x90, 0x03, 0x47, 0x0B, 0x80, 0x03, 0x32, 0x0B, +0x70, 0x19, 0x0F, 0x98, 0x91, 0x25, 0xA0, 0x03, +0x32, 0x0B, 0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, +0x32, 0x0B, 0x0F, 0x88, 0x68, 0x27, 0xA0, 0x03, +0x9A, 0x0A, 0xB0, 0x03, 0xAD, 0x0A, 0xAB, 0x48, +0xF0, 0xA0, 0xFF, 0xFF, 0xBA, 0x48, 0xDA, 0x82, +0xD0, 0x03, 0x44, 0x0B, 0xC0, 0x19, 0xB0, 0x03, +0x46, 0x0B, 0xBC, 0x50, 0x20, 0x82, 0xDC, 0x50, +0x01, 0x82, 0x90, 0x1A, 0x99, 0x0D, 0xAC, 0x18, +0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xA0, 0x1E, 0x9A, 0x20, 0x92, 0x21, 0xA9, 0x00, +0xA0, 0x62, 0xFF, 0x00, 0x70, 0x1A, 0xC6, 0x0D, +0x7C, 0x20, 0x87, 0x00, 0x70, 0x0B, 0x20, 0x03, +0x9B, 0x0A, 0x82, 0x48, 0x2B, 0x80, 0xAE, 0xC9, +0x1F, 0x80, 0xAE, 0xC1, 0xAB, 0xC1, 0x9A, 0x08, +0xB0, 0x03, 0x46, 0x0B, 0xBC, 0xC8, 0x0B, 0x0D, +0x46, 0x0B, 0xC1, 0x21, 0xCF, 0x49, 0x71, 0x85, +0xFF, 0xA0, 0x00, 0x0E, 0x32, 0x0B, 0xA0, 0x03, +0x32, 0x0B, 0xB0, 0x03, 0xAD, 0x0A, 0xAB, 0x48, +0xFB, 0xA0, 0xFF, 0xFF, 0x90, 0x03, 0x32, 0x0B, +0xA0, 0x03, 0x44, 0x0B, 0xA9, 0x50, 0x01, 0x88, +0x36, 0x29, 0xA0, 0x03, 0x03, 0x0E, 0xA9, 0x50, +0x80, 0x80, 0xA0, 0x03, 0xAE, 0x0A, 0xFF, 0xFF, +0xA1, 0x39, 0x0A, 0x0D, 0xAE, 0x0A, 0x0F, 0x88, +0x36, 0x29, 0x00, 0x0E, 0x33, 0x0B, 0xA0, 0x1A, +0xFF, 0xFF, 0x0A, 0x0D, 0x36, 0x0B, 0x0F, 0x98, +0x87, 0x25, 0xD3, 0x48, 0xF0, 0xA0, 0xFF, 0xFF, +0xA0, 0x03, 0x46, 0x0B, 0xAD, 0xC0, 0x0A, 0x0D, +0x46, 0x0B, 0x90, 0x03, 0x32, 0x0B, 0xA0, 0x03, +0x44, 0x0B, 0xA9, 0xC0, 0x0A, 0x0D, 0x44, 0x0B, +0xC0, 0x1A, 0x8E, 0x0B, 0xA0, 0x03, 0x32, 0x0B, +0xFF, 0xFF, 0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xA0, 0x1E, 0xCA, 0x20, 0x90, 0x1A, +0x99, 0x0D, 0xAD, 0x18, 0xA3, 0x59, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x1E, 0x9A, 0x20, +0xAC, 0x00, 0x9A, 0x08, 0xC1, 0x21, 0x91, 0x21, +0xAC, 0x00, 0x9A, 0x08, 0xC1, 0x21, 0x91, 0x21, +0x70, 0x1A, 0xC6, 0x0D, 0x7D, 0x20, 0x87, 0x00, +0xFF, 0xFF, 0x81, 0x21, 0x78, 0x08, 0xAC, 0x00, +0xA0, 0x62, 0xFF, 0x00, 0x20, 0x03, 0x9B, 0x0A, +0x82, 0x48, 0x8B, 0x80, 0x80, 0x1A, 0xD5, 0x0D, +0x0D, 0x18, 0xFF, 0xFF, 0x80, 0x20, 0x80, 0x0B, +0xAE, 0xC9, 0x2F, 0x80, 0x72, 0x08, 0xAE, 0xC1, +0xA8, 0xC1, 0xA9, 0xC1, 0x9A, 0x08, 0x70, 0x1A, +0xE4, 0x0D, 0x7D, 0x20, 0x70, 0x0B, 0xA0, 0x03, +0x32, 0x0B, 0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, +0x32, 0x0B, 0x0F, 0x88, 0xCA, 0x28, 0x00, 0x0E, +0x8C, 0x0B, 0xD0, 0x03, 0x0A, 0x00, 0xB0, 0x1A, +0x77, 0x00, 0xC0, 0x1A, 0x4F, 0x0B, 0x50, 0x19, +0x9C, 0x18, 0x92, 0x21, 0x89, 0x00, 0x88, 0x51, +0x70, 0x81, 0x8D, 0x51, 0x51, 0x81, 0xA0, 0x03, +0x8C, 0x0B, 0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, +0x8C, 0x0B, 0x8F, 0x51, 0x50, 0x80, 0xA0, 0x03, +0x8B, 0x0B, 0xA8, 0xC1, 0x0A, 0x0D, 0x8B, 0x0B, +0x8A, 0x51, 0xF0, 0x80, 0xA0, 0x03, 0x8B, 0x0B, +0xA2, 0xC1, 0x0A, 0x0D, 0x8B, 0x0B, 0x9F, 0x80, +0x8B, 0x51, 0x10, 0x80, 0x51, 0x19, 0x9B, 0x18, +0x92, 0x21, 0x89, 0x00, 0x88, 0x51, 0x10, 0x80, +0x51, 0x19, 0xB3, 0x21, 0xC3, 0x21, 0xD1, 0x39, +0x71, 0x85, 0xB0, 0x03, 0x99, 0x0A, 0xA0, 0x03, +0x8C, 0x0B, 0xBA, 0x48, 0xF0, 0x80, 0xBA, 0x48, +0x7C, 0x80, 0xA0, 0x03, 0x8B, 0x0B, 0xA3, 0xC1, +0xA0, 0xC1, 0x0A, 0x0D, 0x8B, 0x0B, 0x6F, 0x80, +0xA0, 0x03, 0x8B, 0x0B, 0xAB, 0xC1, 0xA1, 0xC1, +0x0A, 0x0D, 0x8B, 0x0B, 0xA0, 0x03, 0x8B, 0x0B, +0xAB, 0xC9, 0xB0, 0x03, 0x8C, 0x0B, 0xB0, 0x49, +0x10, 0x80, 0xAB, 0xC1, 0x50, 0x49, 0x20, 0x80, +0xA3, 0xC1, 0xA0, 0xC1, 0x0A, 0x0D, 0x8B, 0x0B, +0xA2, 0x51, 0x91, 0x80, 0xA0, 0x03, 0x9D, 0x0A, +0xA0, 0x49, 0xF0, 0xA0, 0xFF, 0xFF, 0xA1, 0x39, +0x0A, 0x0D, 0x9D, 0x0A, 0xFF, 0xA0, 0x03, 0x0E, +0x9D, 0x0A, 0xFF, 0xA0, 0x70, 0x03, 0x46, 0x00, +0x70, 0x49, 0xF0, 0xA0, 0xFF, 0xFF, 0x70, 0x03, +0x0C, 0x00, 0x76, 0x51, 0xF0, 0xA0, 0xFF, 0xFF, +0x70, 0x03, 0x71, 0x02, 0x71, 0x49, 0xF0, 0xA0, +0xFF, 0xFF, 0x50, 0x18, 0x14, 0x00, 0x01, 0x19, +0x0F, 0x98, 0x25, 0x15, 0x5F, 0x51, 0x20, 0x19, +0x10, 0x80, 0x21, 0x39, 0x05, 0x0D, 0x00, 0xF9, +0x02, 0x0D, 0x01, 0xF9, 0x00, 0x0D, 0x02, 0xF9, +0x01, 0x0D, 0x03, 0xF9, 0x00, 0x03, 0x00, 0xF9, +0x10, 0x03, 0x01, 0xF9, 0x22, 0x19, 0x0F, 0x88, +0x7F, 0x15, 0x00, 0x0E, 0x10, 0xF9, 0x00, 0x0E, +0x11, 0xF9, 0x00, 0x0E, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0xA0, 0x03, 0x55, 0x00, 0xB0, 0x03, +0x56, 0x00, 0x00, 0x1A, 0x72, 0x02, 0x10, 0x03, +0x0C, 0x00, 0x12, 0x51, 0x20, 0x80, 0x00, 0x1A, +0xB2, 0x03, 0x00, 0x0D, 0x70, 0x02, 0xD0, 0x03, +0x70, 0x02, 0xC0, 0x03, 0xF6, 0x0D, 0xFF, 0xFF, +0xCB, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xC0, 0x1E, 0x00, 0x03, 0xF4, 0x0D, 0xFF, 0xFF, +0xC0, 0x20, 0xDC, 0x20, 0x0D, 0x00, 0x00, 0x0D, +0x10, 0xF9, 0x00, 0x03, 0xDA, 0x00, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0xD1, 0x21, 0x3D, 0x00, 0xFF, 0xFF, 0xDB, 0x20, +0x1D, 0x00, 0xFF, 0xFF, 0xD1, 0x39, 0x0D, 0x00, +0xFF, 0xFF, 0x30, 0x20, 0x20, 0x03, 0x10, 0xF9, +0x03, 0x0D, 0x10, 0xF9, 0x00, 0x03, 0xDB, 0x00, +0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0x30, 0x03, 0x10, 0xF9, 0xFF, 0xFF, +0x23, 0x20, 0x01, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xDC, 0x00, 0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, +0x00, 0x0E, 0x13, 0xF9, 0x00, 0x03, 0x10, 0xF9, +0xFF, 0xFF, 0x02, 0x20, 0x40, 0x1A, 0x32, 0x06, +0x4C, 0x20, 0x0F, 0x98, 0xA1, 0x29, 0x40, 0x08, +0xD0, 0x03, 0x70, 0x02, 0xC0, 0x03, 0xF6, 0x0D, +0xFF, 0xFF, 0xCB, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xC0, 0x1E, 0x00, 0x03, 0xF5, 0x0D, +0xFF, 0xFF, 0xC0, 0x20, 0xDC, 0x20, 0x0D, 0x00, +0x00, 0x0D, 0x10, 0xF9, 0x00, 0x03, 0xDA, 0x00, +0xFF, 0xFF, 0x04, 0x79, 0x0F, 0x61, 0x00, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0xD1, 0x39, +0x3D, 0x00, 0xFF, 0xFF, 0xDB, 0x20, 0x1D, 0x00, +0xFF, 0xFF, 0xD1, 0x21, 0x0D, 0x00, 0xFF, 0xFF, +0x30, 0x20, 0x20, 0x03, 0x10, 0xF9, 0x03, 0x0D, +0x10, 0xF9, 0x00, 0x03, 0xDB, 0x00, 0xFF, 0xFF, +0x04, 0x79, 0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, +0x00, 0x0E, 0x13, 0xF9, 0x30, 0x03, 0x10, 0xF9, +0xFF, 0xFF, 0x23, 0x20, 0x01, 0x0D, 0x10, 0xF9, +0x00, 0x03, 0xDC, 0x00, 0xFF, 0xFF, 0x04, 0x79, +0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0x00, 0x03, 0x10, 0xF9, 0xFF, 0xFF, +0x02, 0x20, 0x40, 0x1A, 0x32, 0x06, 0x4C, 0x20, +0x0F, 0x98, 0xA1, 0x29, 0x40, 0x08, 0xD0, 0x03, +0x70, 0x02, 0xC0, 0x03, 0xF7, 0x0D, 0xFF, 0xFF, +0xCB, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xC0, 0x1E, 0x00, 0x03, 0xF4, 0x0D, 0xFF, 0xFF, +0xC0, 0x20, 0xDC, 0x20, 0x0D, 0x00, 0x00, 0x0D, +0x10, 0xF9, 0x00, 0x03, 0xDA, 0x00, 0xFF, 0xFF, +0x08, 0x79, 0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, +0x00, 0x0E, 0x13, 0xF9, 0xD1, 0x21, 0x3D, 0x00, +0xFF, 0xFF, 0xDB, 0x38, 0x1D, 0x00, 0xFF, 0xFF, +0xD1, 0x39, 0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, +0x20, 0x03, 0x10, 0xF9, 0x03, 0x0D, 0x10, 0xF9, +0x00, 0x03, 0xDB, 0x00, 0xFF, 0xFF, 0x08, 0x79, +0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0x30, 0x03, 0x10, 0xF9, 0xFF, 0xFF, +0x23, 0x20, 0x01, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xDC, 0x00, 0xFF, 0xFF, 0x08, 0x79, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0x00, 0x03, 0x10, 0xF9, 0xFF, 0xFF, 0x02, 0x20, +0x40, 0x1A, 0x32, 0x06, 0x4C, 0x20, 0x0F, 0x98, +0xA1, 0x29, 0x40, 0x08, 0xD0, 0x03, 0x70, 0x02, +0xC0, 0x03, 0xF7, 0x0D, 0xFF, 0xFF, 0xCB, 0x58, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x1E, +0x00, 0x03, 0xF5, 0x0D, 0xFF, 0xFF, 0xC0, 0x20, +0xDC, 0x20, 0x0D, 0x00, 0x00, 0x0D, 0x10, 0xF9, +0x00, 0x03, 0xDA, 0x00, 0xFF, 0xFF, 0x0C, 0x79, +0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0xD1, 0x39, 0x3D, 0x00, 0xFF, 0xFF, +0xDB, 0x38, 0x1D, 0x00, 0xFF, 0xFF, 0xD1, 0x21, +0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, 0x20, 0x03, +0x10, 0xF9, 0x03, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xDB, 0x00, 0xFF, 0xFF, 0x0C, 0x79, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0x30, 0x03, 0x10, 0xF9, 0xFF, 0xFF, 0x23, 0x20, +0x01, 0x0D, 0x10, 0xF9, 0x00, 0x03, 0xDC, 0x00, +0xFF, 0xFF, 0x0C, 0x79, 0x0F, 0x61, 0x00, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0x00, 0x03, +0x10, 0xF9, 0xFF, 0xFF, 0x02, 0x20, 0x40, 0x1A, +0x32, 0x06, 0x4C, 0x20, 0x0F, 0x98, 0xA1, 0x29, +0x40, 0x08, 0x90, 0x03, 0xF4, 0x0D, 0xFF, 0xFF, +0x91, 0x21, 0xD0, 0x03, 0x70, 0x02, 0xC0, 0x03, +0xF6, 0x0D, 0xFF, 0xFF, 0xCB, 0x58, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x1E, 0xC9, 0x20, +0xDC, 0x20, 0x6D, 0x00, 0x76, 0x18, 0x73, 0x79, +0x67, 0x20, 0x70, 0x19, 0x0D, 0x00, 0x00, 0x0D, +0x10, 0xF9, 0x00, 0x03, 0xD1, 0x00, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0xD1, 0x21, 0x3D, 0x00, 0x36, 0x48, 0x1D, 0x80, +0x70, 0xC1, 0xFF, 0xFF, 0xD2, 0x39, 0x0D, 0x00, +0x06, 0x48, 0x1D, 0x80, 0x71, 0xC1, 0xFF, 0xFF, +0x30, 0x20, 0xDB, 0x20, 0x1D, 0x00, 0xFF, 0xFF, +0xD1, 0x21, 0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, +0xD1, 0x21, 0x0D, 0x00, 0xFF, 0xFF, 0x10, 0x20, +0x20, 0x03, 0x10, 0xF9, 0x03, 0x0D, 0x10, 0xF9, +0x00, 0x03, 0xD2, 0x00, 0x0F, 0x61, 0x00, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0x30, 0x03, +0x10, 0xF9, 0x73, 0x18, 0x23, 0x20, 0x01, 0x0D, +0x10, 0xF9, 0x00, 0x03, 0xD3, 0x00, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0x00, 0x03, 0x10, 0xF9, 0xFF, 0xFF, 0x02, 0x20, +0x40, 0x1A, 0x32, 0x06, 0x4C, 0x20, 0x73, 0x49, +0x41, 0x80, 0x01, 0x79, 0x70, 0x18, 0x71, 0x79, +0x07, 0x20, 0x0F, 0x98, 0xA1, 0x29, 0x40, 0x08, +0x00, 0x03, 0xF5, 0x0D, 0xFF, 0xFF, 0x91, 0x21, +0x90, 0x48, 0x0C, 0x88, 0x08, 0x2B, 0x90, 0x03, +0xF4, 0x0D, 0xFF, 0xFF, 0x91, 0x21, 0xD0, 0x03, +0x70, 0x02, 0xC0, 0x03, 0xF7, 0x0D, 0xFF, 0xFF, +0xCB, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xC0, 0x1E, 0xC9, 0x20, 0xDC, 0x20, 0x6D, 0x00, +0x76, 0x18, 0x73, 0x79, 0x67, 0x20, 0x70, 0x19, +0x0D, 0x00, 0x00, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xD1, 0x00, 0xFF, 0xFF, 0x04, 0x79, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0xD1, 0x21, 0x3D, 0x00, 0x36, 0x48, 0x1D, 0x80, +0x70, 0xC1, 0xFF, 0xFF, 0xD2, 0x39, 0x0D, 0x00, +0x06, 0x48, 0x1D, 0x80, 0x71, 0xC1, 0xFF, 0xFF, +0x30, 0x20, 0xDB, 0x38, 0x1D, 0x00, 0xFF, 0xFF, +0xD2, 0x21, 0x0D, 0x00, 0xFF, 0xFF, 0x10, 0x20, +0xD1, 0x39, 0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, +0x20, 0x03, 0x10, 0xF9, 0x03, 0x0D, 0x10, 0xF9, +0x00, 0x03, 0xD2, 0x00, 0xFF, 0xFF, 0x04, 0x79, +0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0x00, 0x03, 0x10, 0xF9, 0x70, 0x18, +0x20, 0x20, 0x01, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xD3, 0x00, 0xFF, 0xFF, 0x04, 0x79, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0x00, 0x03, 0x10, 0xF9, 0xFF, 0xFF, 0x02, 0x20, +0x40, 0x1A, 0x32, 0x06, 0x4C, 0x20, 0x73, 0x49, +0x41, 0x80, 0x01, 0x79, 0x70, 0x18, 0x71, 0x79, +0x07, 0x20, 0x0F, 0x98, 0xA1, 0x29, 0x40, 0x08, +0x00, 0x03, 0xF5, 0x0D, 0xFF, 0xFF, 0x91, 0x21, +0x90, 0x48, 0x0C, 0x88, 0x6E, 0x2B, 0x90, 0x03, +0xF6, 0x0D, 0xFF, 0xFF, 0x91, 0x21, 0xD0, 0x03, +0x70, 0x02, 0xC9, 0x18, 0xCB, 0x58, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x1E, 0x00, 0x03, +0xF4, 0x0D, 0xFF, 0xFF, 0xC0, 0x20, 0xDC, 0x20, +0x6D, 0x00, 0x76, 0x18, 0x73, 0x79, 0x67, 0x20, +0x70, 0x19, 0x0D, 0x00, 0x00, 0x0D, 0x10, 0xF9, +0x00, 0x03, 0xD1, 0x00, 0xFF, 0xFF, 0x08, 0x79, +0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0xD1, 0x21, 0x3D, 0x00, 0xFF, 0xFF, +0xDB, 0x38, 0x1D, 0x00, 0xFF, 0xFF, 0xD1, 0x39, +0x0D, 0x00, 0x06, 0x48, 0x1D, 0x80, 0x70, 0xC1, +0xFF, 0xFF, 0x30, 0x20, 0xDB, 0x20, 0xDB, 0x20, +0x0D, 0x00, 0x06, 0x48, 0x1D, 0x80, 0x71, 0xC1, +0xFF, 0xFF, 0x30, 0x20, 0xD1, 0x21, 0x0D, 0x00, +0xFF, 0xFF, 0x10, 0x20, 0x20, 0x03, 0x10, 0xF9, +0x03, 0x0D, 0x10, 0xF9, 0x00, 0x03, 0xD2, 0x00, +0xFF, 0xFF, 0x08, 0x79, 0x0F, 0x61, 0x00, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0x30, 0x03, +0x10, 0xF9, 0x73, 0x18, 0x23, 0x20, 0x01, 0x0D, +0x10, 0xF9, 0x00, 0x03, 0xD3, 0x00, 0xFF, 0xFF, +0x08, 0x79, 0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, +0x00, 0x0E, 0x13, 0xF9, 0x00, 0x03, 0x10, 0xF9, +0xFF, 0xFF, 0x02, 0x20, 0x40, 0x1A, 0x32, 0x06, +0x4C, 0x20, 0x73, 0x49, 0x41, 0x80, 0x01, 0x79, +0x70, 0x18, 0x71, 0x79, 0x07, 0x20, 0x0F, 0x98, +0xA1, 0x29, 0x40, 0x08, 0x00, 0x03, 0xF7, 0x0D, +0xFF, 0xFF, 0x91, 0x21, 0x90, 0x48, 0x0C, 0x88, +0xDA, 0x2B, 0x90, 0x03, 0xF6, 0x0D, 0xFF, 0xFF, +0x91, 0x21, 0xD0, 0x03, 0x70, 0x02, 0xC9, 0x18, +0xCB, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xC0, 0x1E, 0x00, 0x03, 0xF5, 0x0D, 0xFF, 0xFF, +0xC0, 0x20, 0xDC, 0x20, 0x6D, 0x00, 0x76, 0x18, +0x73, 0x79, 0x67, 0x20, 0x70, 0x19, 0x0D, 0x00, +0x00, 0x0D, 0x10, 0xF9, 0x00, 0x03, 0xD1, 0x00, +0xFF, 0xFF, 0x0C, 0x79, 0x0F, 0x61, 0x00, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0xDB, 0x38, +0x3D, 0x00, 0x36, 0x48, 0x1D, 0x80, 0x70, 0xC1, +0xFF, 0xFF, 0xD1, 0x39, 0x1D, 0x00, 0xFF, 0xFF, +0xDB, 0x20, 0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, +0xDB, 0x20, 0x0D, 0x00, 0xFF, 0xFF, 0x10, 0x20, +0xD1, 0x21, 0x0D, 0x00, 0x06, 0x48, 0x1D, 0x80, +0x71, 0xC1, 0xFF, 0xFF, 0x30, 0x20, 0x20, 0x03, +0x10, 0xF9, 0x03, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xD2, 0x00, 0xFF, 0xFF, 0x0C, 0x79, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0x30, 0x03, 0x10, 0xF9, 0x73, 0x18, 0x23, 0x20, +0x01, 0x0D, 0x10, 0xF9, 0x00, 0x03, 0xD3, 0x00, +0xFF, 0xFF, 0x0C, 0x79, 0x0F, 0x61, 0x00, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0x00, 0x03, +0x10, 0xF9, 0xFF, 0xFF, 0x02, 0x20, 0x40, 0x1A, +0x32, 0x06, 0x4C, 0x20, 0x73, 0x49, 0x41, 0x80, +0x01, 0x79, 0x70, 0x18, 0x71, 0x79, 0x07, 0x20, +0x0F, 0x98, 0xA1, 0x29, 0x40, 0x08, 0x00, 0x03, +0xF7, 0x0D, 0xFF, 0xFF, 0x91, 0x21, 0x90, 0x48, +0x0C, 0x88, 0x48, 0x2C, 0x70, 0x03, 0x71, 0x02, +0x71, 0x49, 0xF0, 0xA0, 0xFF, 0xFF, 0x80, 0x03, +0xF6, 0x0D, 0xFF, 0xFF, 0x81, 0x21, 0x90, 0x03, +0xF4, 0x0D, 0xFF, 0xFF, 0x91, 0x21, 0x08, 0x0D, +0x10, 0xF9, 0x0B, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0xC0, 0x03, 0x10, 0xF9, 0xFF, 0xFF, +0xC9, 0x20, 0xD0, 0x03, 0x70, 0x02, 0xFF, 0xFF, +0xDC, 0x20, 0x0D, 0x00, 0x00, 0x0D, 0x10, 0xF9, +0x00, 0x03, 0xCA, 0x00, 0x6D, 0x00, 0x76, 0x18, +0x73, 0x79, 0x67, 0x20, 0x70, 0x19, 0x00, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0xDB, 0x38, +0x3D, 0x00, 0x36, 0x48, 0x1D, 0x80, 0x70, 0xC1, +0xFF, 0xFF, 0xD1, 0x39, 0x1D, 0x00, 0x16, 0x48, +0x1D, 0x80, 0x74, 0xC1, 0xFF, 0xFF, 0xDB, 0x20, +0x0D, 0x00, 0xFF, 0xFF, 0x06, 0x48, 0x1D, 0x80, +0x72, 0xC1, 0x30, 0x20, 0xDB, 0x20, 0x0D, 0x00, +0xFF, 0xFF, 0x06, 0x48, 0x1D, 0x80, 0x76, 0xC1, +0x10, 0x20, 0xD1, 0x21, 0x0D, 0x00, 0xFF, 0xFF, +0x06, 0x48, 0x1D, 0x80, 0x71, 0xC1, 0x30, 0x20, +0xD1, 0x21, 0x0D, 0x00, 0xFF, 0xFF, 0x06, 0x48, +0x1D, 0x80, 0x75, 0xC1, 0x10, 0x20, 0xDB, 0x38, +0x0D, 0x00, 0xFF, 0xFF, 0x06, 0x48, 0x1D, 0x80, +0x73, 0xC1, 0x30, 0x20, 0xDB, 0x38, 0x0D, 0x00, +0x06, 0x48, 0x1D, 0x80, 0x77, 0xC1, 0xFF, 0xFF, +0x10, 0x20, 0x20, 0x03, 0x10, 0xF9, 0x03, 0x0D, +0x10, 0xF9, 0x00, 0x03, 0xCB, 0x00, 0x00, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0x30, 0x03, +0x10, 0xF9, 0xFF, 0xFF, 0x23, 0x20, 0x01, 0x0D, +0x10, 0xF9, 0x00, 0x03, 0xCC, 0x00, 0x00, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0x00, 0x03, +0x10, 0xF9, 0xFF, 0xFF, 0x02, 0x20, 0x40, 0x1A, +0x32, 0x06, 0x4C, 0x20, 0x63, 0x19, 0x17, 0x18, +0x16, 0x60, 0x16, 0x48, 0x51, 0x80, 0x01, 0x79, +0x70, 0x18, 0x71, 0x79, 0x07, 0x20, 0x4F, 0x83, +0x62, 0x7B, 0x60, 0x4A, 0x00, 0x03, 0x31, 0x87, +0x17, 0x18, 0x10, 0x62, 0x21, 0x00, 0x10, 0x4A, +0x21, 0x00, 0x10, 0x87, 0x17, 0x18, 0x10, 0x62, +0x41, 0x00, 0x10, 0x4A, 0x41, 0x00, 0xB0, 0x86, +0x17, 0x18, 0x10, 0x62, 0x12, 0x00, 0x10, 0x4A, +0x12, 0x00, 0x50, 0x86, 0x17, 0x18, 0x10, 0x62, +0x82, 0x00, 0x10, 0x4A, 0x82, 0x00, 0xF0, 0x85, +0x17, 0x18, 0x10, 0x62, 0x24, 0x00, 0x10, 0x4A, +0x24, 0x00, 0x90, 0x85, 0x17, 0x18, 0x10, 0x62, +0x84, 0x00, 0x10, 0x4A, 0x84, 0x00, 0x30, 0x85, +0x17, 0x18, 0x10, 0x62, 0x18, 0x00, 0x10, 0x4A, +0x18, 0x00, 0xD0, 0x84, 0x17, 0x18, 0x10, 0x62, +0x48, 0x00, 0x10, 0x4A, 0x48, 0x00, 0x70, 0x84, +0x0F, 0x98, 0xA1, 0x29, 0x40, 0x08, 0x00, 0x03, +0xF5, 0x0D, 0xFF, 0xFF, 0x91, 0x21, 0x90, 0x48, +0x0C, 0x88, 0xBE, 0x2C, 0x00, 0x03, 0xF7, 0x0D, +0x90, 0x03, 0xF4, 0x0D, 0xFF, 0xFF, 0x91, 0x21, +0x81, 0x21, 0x80, 0x48, 0x0C, 0x88, 0xBE, 0x2C, +0xFF, 0xA0, 0xB0, 0x1A, 0x39, 0x0B, 0xA0, 0x1A, +0xBC, 0x0A, 0x93, 0x19, 0x0A, 0x00, 0xFF, 0xFF, +0xA1, 0x21, 0x1A, 0x00, 0xFF, 0xFF, 0xA1, 0x21, +0x0F, 0x98, 0xE4, 0x14, 0x2A, 0x00, 0xFF, 0xFF, +0xA1, 0x21, 0x0F, 0x98, 0xFF, 0x14, 0xB0, 0x08, +0xB1, 0x21, 0xB1, 0x08, 0xB1, 0x21, 0x91, 0x39, +0xD1, 0x86, 0xFF, 0xA0, 0x00, 0x0E, 0xDE, 0x0A, +0x0F, 0x98, 0x80, 0x2D, 0xB0, 0x1A, 0x39, 0x0B, +0x4B, 0x00, 0xFF, 0xFF, 0xB1, 0x21, 0x5B, 0x00, +0xFF, 0xFF, 0xB1, 0x21, 0x6B, 0x00, 0xFF, 0xFF, +0xB1, 0x21, 0x7B, 0x00, 0xFF, 0xFF, 0xB1, 0x21, +0x8B, 0x00, 0xFF, 0xFF, 0xB1, 0x21, 0x9B, 0x00, +0x06, 0x18, 0x17, 0x18, 0x26, 0x18, 0x37, 0x18, +0x0F, 0x98, 0x16, 0x15, 0x24, 0x18, 0x35, 0x18, +0x0F, 0x98, 0x57, 0x15, 0x28, 0x18, 0x39, 0x18, +0x0F, 0x98, 0x57, 0x15, 0x00, 0x0D, 0x3F, 0x0B, +0x01, 0x0D, 0x40, 0x0B, 0x08, 0x18, 0x19, 0x18, +0x24, 0x18, 0x35, 0x18, 0x0F, 0x98, 0x57, 0x15, +0x20, 0x03, 0xC5, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0x40, 0x15, 0x20, 0x03, 0x3F, 0x0B, 0x30, 0x03, +0x40, 0x0B, 0xFF, 0xFF, 0x0F, 0x98, 0x7F, 0x15, +0x00, 0x4A, 0x40, 0x00, 0x2C, 0x80, 0x00, 0x1A, +0x40, 0x00, 0x00, 0x4A, 0xC0, 0xFF, 0x2A, 0x80, +0x00, 0x1A, 0xC0, 0xFF, 0x00, 0x0D, 0xF7, 0x0A, +0x0F, 0x98, 0x7E, 0x2E, 0x0F, 0x98, 0x80, 0x2D, +0xB0, 0x1A, 0x39, 0x0B, 0x4B, 0x00, 0xFF, 0xFF, +0xB1, 0x21, 0x5B, 0x00, 0xFF, 0xFF, 0xB1, 0x21, +0x6B, 0x00, 0xFF, 0xFF, 0xB1, 0x21, 0x7B, 0x00, +0xFF, 0xFF, 0xB1, 0x21, 0x8B, 0x00, 0xFF, 0xFF, +0xB1, 0x21, 0x9B, 0x00, 0x06, 0x18, 0x17, 0x18, +0x26, 0x18, 0x37, 0x18, 0x0F, 0x98, 0x16, 0x15, +0x24, 0x18, 0x35, 0x18, 0x0F, 0x98, 0x57, 0x15, +0x28, 0x18, 0x39, 0x18, 0x0F, 0x98, 0x57, 0x15, +0x00, 0x0D, 0x41, 0x0B, 0x01, 0x0D, 0x42, 0x0B, +0x08, 0x18, 0x19, 0x18, 0x24, 0x18, 0x35, 0x18, +0x0F, 0x98, 0x57, 0x15, 0x20, 0x03, 0xC5, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0x40, 0x15, 0x20, 0x03, +0x41, 0x0B, 0x30, 0x03, 0x42, 0x0B, 0xFF, 0xFF, +0x0F, 0x98, 0x7F, 0x15, 0x00, 0x4A, 0x40, 0x00, +0x2C, 0x80, 0x00, 0x1A, 0x40, 0x00, 0x00, 0x4A, +0xC0, 0xFF, 0x2A, 0x80, 0x00, 0x1A, 0xC0, 0xFF, +0x00, 0x0D, 0xF8, 0x0A, 0xA0, 0x03, 0x09, 0x0B, +0xA0, 0x49, 0x00, 0x82, 0xA0, 0x03, 0xDF, 0x0A, +0xA1, 0x49, 0xC0, 0x81, 0xA0, 0x03, 0xF1, 0x0A, +0xA1, 0x49, 0x20, 0x80, 0xB0, 0x03, 0xC6, 0x00, +0xFF, 0xFF, 0x21, 0x80, 0xB0, 0x03, 0xC7, 0x00, +0x00, 0x03, 0x3F, 0x0B, 0x10, 0x03, 0x40, 0x0B, +0x20, 0x03, 0x41, 0x0B, 0x30, 0x03, 0x42, 0x0B, +0x90, 0x19, 0x10, 0x49, 0x1C, 0x81, 0x0B, 0x48, +0xFC, 0x80, 0x90, 0x19, 0x30, 0x49, 0xCC, 0x80, +0x2B, 0x48, 0xAC, 0x80, 0x00, 0x0E, 0xDF, 0x0A, +0xA0, 0x1A, 0xBC, 0x0A, 0xA4, 0x21, 0xBA, 0x00, +0x0B, 0x0D, 0xF9, 0x0A, 0x91, 0x19, 0xFF, 0xA0, +0x0F, 0x98, 0x7E, 0x2E, 0x01, 0x0E, 0xDF, 0x0A, +0x00, 0x03, 0x09, 0x0B, 0x00, 0x49, 0x00, 0x88, +0x99, 0x2D, 0x01, 0x0E, 0xDE, 0x0A, 0x04, 0x49, +0x0D, 0x98, 0x29, 0x2F, 0xFF, 0xFF, 0x00, 0x03, +0x09, 0x0B, 0x04, 0x49, 0x0A, 0x98, 0xA4, 0x2F, +0xFF, 0xFF, 0x0F, 0x88, 0x99, 0x2D, 0x90, 0x1A, +0xCE, 0x0A, 0x29, 0x19, 0x0A, 0x00, 0x10, 0x18, +0x00, 0x62, 0xFF, 0x00, 0x90, 0x08, 0x91, 0x21, +0x21, 0x39, 0xF0, 0xA0, 0xFF, 0xFF, 0x18, 0x79, +0x91, 0x08, 0x91, 0x21, 0x21, 0x39, 0xF0, 0xA0, +0xFF, 0xFF, 0xA1, 0x21, 0xFF, 0x86, 0x00, 0x03, +0xBD, 0x0A, 0x10, 0x03, 0xBF, 0x0A, 0x00, 0x0D, +0xBF, 0x0A, 0x01, 0x0D, 0xBD, 0x0A, 0x00, 0x03, +0xBE, 0x0A, 0x10, 0x03, 0xC2, 0x0A, 0x00, 0x0D, +0xC2, 0x0A, 0x01, 0x0D, 0xBE, 0x0A, 0x00, 0x03, +0xC1, 0x0A, 0x10, 0x03, 0xC3, 0x0A, 0x00, 0x0D, +0xC3, 0x0A, 0x01, 0x0D, 0xC1, 0x0A, 0xFF, 0xA0, +0xA0, 0x03, 0x09, 0x0B, 0xA1, 0x49, 0x10, 0x81, +0xA2, 0x49, 0xB0, 0x81, 0xA3, 0x49, 0x50, 0x82, +0xA4, 0x49, 0xF0, 0x82, 0xA5, 0x49, 0x90, 0x83, +0xA6, 0x49, 0x00, 0x88, 0xEF, 0x2E, 0xA7, 0x49, +0x00, 0x88, 0x02, 0x2F, 0xA8, 0x49, 0x00, 0x88, +0x15, 0x2F, 0xA0, 0x1A, 0x41, 0x01, 0x0F, 0x98, +0x6A, 0x2E, 0x20, 0x03, 0xD4, 0x00, 0x02, 0x0D, +0xD7, 0x0A, 0x0F, 0x98, 0x29, 0x2F, 0x0F, 0x88, +0x27, 0x2F, 0xA0, 0x1A, 0x46, 0x01, 0x0F, 0x98, +0x6A, 0x2E, 0x20, 0x03, 0xD5, 0x00, 0x02, 0x0D, +0xD7, 0x0A, 0x0F, 0x98, 0x29, 0x2F, 0x0F, 0x88, +0x27, 0x2F, 0xA0, 0x1A, 0x4B, 0x01, 0x0F, 0x98, +0x6A, 0x2E, 0x20, 0x03, 0xD6, 0x00, 0x02, 0x0D, +0xD7, 0x0A, 0x0F, 0x98, 0x29, 0x2F, 0x0F, 0x88, +0x27, 0x2F, 0xA0, 0x1A, 0x50, 0x01, 0x0F, 0x98, +0x6A, 0x2E, 0x20, 0x03, 0xD7, 0x00, 0x02, 0x0D, +0xD7, 0x0A, 0x0F, 0x98, 0x29, 0x2F, 0x0F, 0x88, +0x27, 0x2F, 0xA0, 0x1A, 0x55, 0x01, 0x0F, 0x98, +0x6A, 0x2E, 0x20, 0x03, 0xDD, 0x00, 0x02, 0x0D, +0xD7, 0x0A, 0x20, 0x03, 0xD4, 0x00, 0x02, 0x0D, +0xD8, 0x0A, 0x20, 0x03, 0xD6, 0x00, 0x02, 0x0D, +0xD9, 0x0A, 0x0F, 0x98, 0xA4, 0x2F, 0x8F, 0x83, +0xA0, 0x1A, 0x5A, 0x01, 0x0F, 0x98, 0x6A, 0x2E, +0x20, 0x03, 0xDE, 0x00, 0x02, 0x0D, 0xD7, 0x0A, +0x20, 0x03, 0xD4, 0x00, 0x02, 0x0D, 0xD8, 0x0A, +0x20, 0x03, 0xD7, 0x00, 0x02, 0x0D, 0xD9, 0x0A, +0x0F, 0x98, 0xA4, 0x2F, 0x5F, 0x82, 0xA0, 0x1A, +0x5F, 0x01, 0x0F, 0x98, 0x6A, 0x2E, 0x20, 0x03, +0xDF, 0x00, 0x02, 0x0D, 0xD7, 0x0A, 0x20, 0x03, +0xD5, 0x00, 0x02, 0x0D, 0xD8, 0x0A, 0x20, 0x03, +0xD6, 0x00, 0x02, 0x0D, 0xD9, 0x0A, 0x0F, 0x98, +0xA4, 0x2F, 0x2F, 0x81, 0xA0, 0x1A, 0x64, 0x01, +0x0F, 0x98, 0x6A, 0x2E, 0x20, 0x03, 0xE0, 0x00, +0x02, 0x0D, 0xD7, 0x0A, 0x20, 0x03, 0xD5, 0x00, +0x02, 0x0D, 0xD8, 0x0A, 0x20, 0x03, 0xD7, 0x00, +0x02, 0x0D, 0xD9, 0x0A, 0x0F, 0x98, 0xA4, 0x2F, +0x0F, 0x88, 0x99, 0x2D, 0x90, 0x1A, 0xCE, 0x0A, +0xA0, 0x1A, 0xBC, 0x0A, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0x5B, 0x00, 0xFF, 0xFF, 0x91, 0x21, +0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, 0x6B, 0x00, +0xFF, 0xFF, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0x7B, 0x00, 0x85, 0x18, 0x86, 0x20, +0x87, 0x20, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0x2B, 0x00, 0xFF, 0xFF, 0x91, 0x21, +0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, 0x3B, 0x00, +0xFF, 0xFF, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0x4B, 0x00, 0xFF, 0xFF, 0x42, 0x20, +0x43, 0x20, 0x04, 0x18, 0x10, 0x03, 0xD0, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0x25, 0x15, 0x28, 0x18, +0x0F, 0x98, 0x7F, 0x15, 0x80, 0x03, 0xD7, 0x0A, +0xFF, 0xFF, 0x80, 0x38, 0x15, 0x18, 0x00, 0x03, +0xDE, 0x0A, 0x00, 0x49, 0x11, 0x80, 0x08, 0x18, +0x20, 0x80, 0x00, 0x03, 0xD0, 0x00, 0xFF, 0xFF, +0x0F, 0x98, 0x25, 0x15, 0x20, 0x03, 0xD0, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0x7F, 0x15, 0x91, 0x21, +0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, 0xB0, 0x08, +0x16, 0x18, 0x00, 0x03, 0xDE, 0x0A, 0x00, 0x49, +0x11, 0x80, 0x08, 0x18, 0x20, 0x80, 0x00, 0x03, +0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, 0x25, 0x15, +0x20, 0x03, 0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0x7F, 0x15, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0xB0, 0x08, 0x17, 0x18, 0x00, 0x03, +0xDE, 0x0A, 0x00, 0x49, 0x11, 0x80, 0x08, 0x18, +0x20, 0x80, 0x00, 0x03, 0xD0, 0x00, 0xFF, 0xFF, +0x0F, 0x98, 0x25, 0x15, 0x20, 0x03, 0xD0, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0x7F, 0x15, 0x91, 0x21, +0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, 0xB0, 0x08, +0xFF, 0xA0, 0x90, 0x1A, 0xCE, 0x0A, 0xA0, 0x1A, +0xBC, 0x0A, 0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, +0x5B, 0x00, 0xFF, 0xFF, 0x91, 0x21, 0xB9, 0x00, +0xFF, 0xFF, 0xBA, 0x20, 0x6B, 0x00, 0x85, 0x18, +0x86, 0x20, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0x7B, 0x00, 0xFF, 0xFF, 0x91, 0x21, +0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, 0x4B, 0x00, +0x04, 0x18, 0x07, 0x20, 0x10, 0x03, 0xD0, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0x25, 0x15, 0x28, 0x18, +0x0F, 0x98, 0x7F, 0x15, 0x80, 0x03, 0xD8, 0x0A, +0xFF, 0xFF, 0x80, 0x38, 0x15, 0x18, 0x00, 0x03, +0xDE, 0x0A, 0x00, 0x49, 0x11, 0x80, 0x08, 0x18, +0x20, 0x80, 0x00, 0x03, 0xD0, 0x00, 0xFF, 0xFF, +0x0F, 0x98, 0x25, 0x15, 0x20, 0x03, 0xD0, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0x7F, 0x15, 0x91, 0x21, +0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, 0xB0, 0x08, +0x16, 0x18, 0x00, 0x03, 0xDE, 0x0A, 0x00, 0x49, +0x11, 0x80, 0x08, 0x18, 0x20, 0x80, 0x00, 0x03, +0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, 0x25, 0x15, +0x20, 0x03, 0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0x7F, 0x15, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0xB0, 0x08, 0x85, 0x18, 0x87, 0x20, +0x06, 0x18, 0x04, 0x20, 0x10, 0x03, 0xD0, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0x25, 0x15, 0x28, 0x18, +0x0F, 0x98, 0x7F, 0x15, 0x80, 0x03, 0xD9, 0x0A, +0xFF, 0xFF, 0x80, 0x38, 0x15, 0x18, 0x00, 0x03, +0xDE, 0x0A, 0x00, 0x49, 0x11, 0x80, 0x08, 0x18, +0x20, 0x80, 0x00, 0x03, 0xD0, 0x00, 0xFF, 0xFF, +0x0F, 0x98, 0x25, 0x15, 0x20, 0x03, 0xD0, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0x7F, 0x15, 0x91, 0x21, +0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, 0xB0, 0x08, +0x17, 0x18, 0x00, 0x03, 0xDE, 0x0A, 0x00, 0x49, +0x11, 0x80, 0x08, 0x18, 0x20, 0x80, 0x00, 0x03, +0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, 0x25, 0x15, +0x20, 0x03, 0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0x7F, 0x15, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0xB0, 0x08, 0x85, 0x18, 0x04, 0x18, +0x10, 0x03, 0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0x25, 0x15, 0x28, 0x18, 0x0F, 0x98, 0x7F, 0x15, +0x80, 0x03, 0xD7, 0x0A, 0xFF, 0xFF, 0x80, 0x38, +0x15, 0x18, 0x00, 0x03, 0xDE, 0x0A, 0x00, 0x49, +0x11, 0x80, 0x08, 0x18, 0x20, 0x80, 0x00, 0x03, +0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, 0x25, 0x15, +0x20, 0x03, 0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0x7F, 0x15, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0xB0, 0x08, 0xFF, 0xA0, 0x00, 0x03, +0x0D, 0x01, 0x80, 0x03, 0x0E, 0x01, 0x18, 0x18, +0x18, 0x79, 0x91, 0x18, 0x80, 0x62, 0xFF, 0x00, +0x0F, 0x98, 0x25, 0x15, 0x20, 0x18, 0x31, 0x18, +0x0A, 0x00, 0x18, 0x18, 0x0F, 0x98, 0x25, 0x15, +0x0F, 0x98, 0xFF, 0x14, 0x89, 0x20, 0x28, 0x18, +0x0F, 0x98, 0x7F, 0x15, 0x00, 0x0D, 0x11, 0x00, +0xFF, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x88, 0x00, 0xFF, 0xFF, 0x00, 0x00, +0xAA, 0xAA, 0x55, 0x55, 0x00, 0x00, 0x30, 0x40, +0x88, 0x00, 0x07, 0x00, 0x00, 0x00, 0x05, 0x00, +0x10, 0x00, 0x2C, 0x58, 0xFF, 0xFF, 0x00, 0x00, +0xFF, 0xFF, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xF4, 0x01, 0xF4, 0x01, +0xF4, 0x01, 0xF4, 0x01, 0xF4, 0x01, 0x03, 0x00, +0x02, 0x00, 0x08, 0x00, 0x1E, 0x00, 0x28, 0x00, +0x1E, 0x00, 0x01, 0x00, 0x01, 0x00, 0x1E, 0x00, +0x32, 0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, +0x10, 0x00, 0x10, 0x04, 0x02, 0x00, 0x64, 0x00, +0x05, 0x1E, 0x20, 0x14, 0x00, 0x00, 0x00, 0x00, +0x19, 0x00, 0x04, 0x00, 0x14, 0x00, 0x1E, 0x00, +0x00, 0x00, 0x02, 0x01, 0x64, 0x00, 0x0A, 0x00, +0x00, 0x00, 0x03, 0x01, 0x04, 0x01, 0x00, 0x01, +0x03, 0x02, 0x05, 0x00, 0xC8, 0x00, 0x14, 0x00, +0x0A, 0x00, 0xEC, 0xFF, 0x0A, 0x00, 0xC8, 0x00, +0x2C, 0x01, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00, +0x0F, 0x00, 0xE8, 0x03, 0x2D, 0x00, 0xC8, 0x00, +0x03, 0x01, 0x50, 0x00, 0x0A, 0x00, 0x0A, 0x00, +0x00, 0x00, 0x50, 0x00, 0x0A, 0x00, 0x50, 0x00, +0x96, 0x00, 0x5E, 0x01, 0x10, 0x00, 0x0A, 0x00, +0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, +0x10, 0x11, 0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B, +0x0C, 0x0D, 0x0E, 0x0F, 0x14, 0x15, 0x16, 0x17, +0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, +0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, +0xA4, 0x06, 0x01, 0x00, 0x96, 0x00, 0x64, 0x00, +0x20, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x10, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x19, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, +0x26, 0x02, 0x00, 0x00, 0x0F, 0x00, 0x01, 0x00, +0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x9E, 0x00, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0xE0, 0x01, +0x01, 0x00, 0x0A, 0x00, 0x04, 0x00, 0xE8, 0x03, +0x78, 0x00, 0x40, 0x00, 0x00, 0x00, 0xC8, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, +0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x04, 0x00, +0x0A, 0x00, 0x64, 0x00, 0x77, 0x77, 0x33, 0x33, +0x33, 0x33, 0xA4, 0x00, 0xA4, 0x00, 0xA4, 0x00, +0xA4, 0x00, 0x1E, 0x00, 0x20, 0x00, 0x88, 0x88, +0x33, 0x33, 0x33, 0x33, 0x76, 0x00, 0x76, 0x00, +0x76, 0x00, 0x76, 0x00, 0x3C, 0x00, 0x04, 0x00, +0x2C, 0x01, 0x06, 0x00, 0x0F, 0x88, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x03, 0x04, 0x05, 0x06, +0x07, 0x08, 0x09, 0x0A, 0x02, 0x0B, 0x0C, 0x0D, +0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, +0x16, 0x17, 0x18, 0x19, 0x00, 0x00, 0x09, 0x0C, +0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, +0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, +0x19, 0x19, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, +0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, +0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x64, 0x00, 0x12, 0x00, 0xC8, 0x00, 0x04, 0x00, +0xFA, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x19, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x77, 0x33, 0xFF, 0xFF, +0xFF, 0xFF, 0x05, 0x33, 0x11, 0x00, 0x33, 0x01, +0x01, 0x00, 0xFF, 0x00, 0x11, 0x00, 0x00, 0x20, +0x70, 0x70, 0x7F, 0x00, 0x7F, 0x00, 0x08, 0x08, +0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08, +0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x05, 0x06, +0x07, 0x08, 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, +0x05, 0x00, 0x01, 0x02, 0x06, 0x07, 0x08, 0x00, +0x01, 0x04, 0x07, 0x02, 0x05, 0x08, 0x00, 0x03, +0x06, 0x00, 0x01, 0x04, 0x07, 0x00, 0x03, 0x06, +0x02, 0x05, 0x08, 0x00, 0x04, 0x05, 0x07, 0x08, +0x01, 0x02, 0x03, 0x06, 0x00, 0x00, 0x04, 0x03, +0x07, 0x06, 0x01, 0x00, 0x05, 0x08, 0x02, 0x00, +0x04, 0x05, 0x01, 0x02, 0x07, 0x08, 0x03, 0x00, +0x06, 0x00, 0x04, 0x03, 0x01, 0x00, 0x07, 0x06, +0x05, 0x02, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, +0x08, 0x00, 0x09, 0x00, 0x02, 0x00, 0x03, 0x00, +0x0A, 0x00, 0x0B, 0x00, 0x04, 0x00, 0x05, 0x00, +0x0C, 0x00, 0x0D, 0x00, 0x06, 0x00, 0x07, 0x00, +0x0E, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x01, 0x00, +0x02, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x04, 0x00, +0x05, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x07, 0x00, +0x08, 0x00, 0x12, 0x00, 0x09, 0x00, 0x0A, 0x00, +0x0B, 0x00, 0x15, 0x00, 0x0D, 0x00, 0x0E, 0x00, +0x18, 0x00, 0x19, 0x00, 0x10, 0x00, 0x11, 0x00, +0x1B, 0x00, 0x1C, 0x00, 0x13, 0x00, 0x14, 0x00, +0x1E, 0x00, 0x1F, 0x00, 0x16, 0x00, 0x17, 0x00, +0x21, 0x00, 0x22, 0x00, 0x1A, 0x00, 0x24, 0x00, +0x25, 0x00, 0x26, 0x00, 0x1D, 0x00, 0x27, 0x00, +0x28, 0x00, 0x29, 0x00, 0x20, 0x00, 0x2A, 0x00, +0x2B, 0x00, 0x2C, 0x00, 0x23, 0x00, 0x2D, 0x00, +0x2E, 0x00, 0x2F, 0x00, 0x0D, 0x00, 0x0D, 0x00, +0xA0, 0x00, 0x0D, 0x00, 0x33, 0x01, 0x0D, 0x00, +0x1A, 0x01, 0x26, 0x00, 0x33, 0x01, 0x46, 0x00, +0x1A, 0x01, 0x62, 0x00, 0x56, 0x00, 0x7E, 0x00, +0xEA, 0x00, 0x7E, 0x00, 0x33, 0x01, 0x7E, 0x00, +0x1A, 0x01, 0x9B, 0x00, 0x33, 0x01, 0xB7, 0x00, +0x1A, 0x01, 0xD4, 0x00, 0x0D, 0x00, 0xF0, 0x00, +0xA0, 0x00, 0xF0, 0x00, 0x33, 0x01, 0xF0, 0x00, +0x26, 0x00, 0x0C, 0x01, 0x0D, 0x00, 0x29, 0x01, +0x26, 0x00, 0x45, 0x01, 0x0D, 0x00, 0x62, 0x01, +0x56, 0x00, 0x62, 0x01, 0xEA, 0x00, 0x62, 0x01, +0x26, 0x00, 0x7E, 0x01, 0x0D, 0x00, 0x9A, 0x01, +0x31, 0x00, 0xBA, 0x01, 0x7B, 0x00, 0xBA, 0x01, +0xC5, 0x00, 0xBA, 0x01, 0x0F, 0x01, 0xBA, 0x01, +0x0D, 0x00, 0xD3, 0x01, 0x56, 0x00, 0xD3, 0x01, +0xA0, 0x00, 0xD3, 0x01, 0xEA, 0x00, 0xD3, 0x01, +0x33, 0x01, 0xD3, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, +}; +#endif diff --git a/drivers/input/touchscreen/zinitix_touch_bt4x3_reg_data.h b/drivers/input/touchscreen/zinitix_touch_bt4x3_reg_data.h new file mode 100644 index 00000000..0b4d1245 --- /dev/null +++ b/drivers/input/touchscreen/zinitix_touch_bt4x3_reg_data.h @@ -0,0 +1,366 @@ +/* +* +* Zinitix touch driver +* +* Copyright (C) 2009 Zinitix, 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 _ZINITIX_BT4X3_REG_DATA_H +#define _ZINITIX_BT4X3_REG_DATA_H + +#define MAX_REG_COUNT 0x1D0 + +struct _zinitix_reg_data { + s16 reg_val; + u8 valid; +}; +const struct _zinitix_reg_data m_reg_data[MAX_REG_COUNT] = { + /*{value, valid}*/ + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 1}, + {0, 1}, + {0, 0}, + {0, 1}, + {0, 1}, + {10, 1}, + {16, 0}, + {0x022C, 1}, + {0xFFF8, 0}, + {0, 1}, + {0x0001, 0}, + {160, 0}, + {0, 0}, + {203, 0}, + {0, 0}, + {7, 0}, + {200, 1}, + {200, 1}, + {200, 1}, + {200, 1}, + {200, 1}, + {4, 1}, + {5, 1}, + {50, 1}, + {10, 1}, + {20, 1}, + {40, 1}, + {10, 1}, + {1000, 1}, + {20, 1}, + {40, 1}, + {40, 1}, + {16, 1}, + {16, 1}, + {16, 1}, + {0x0210, 1}, + {2, 1}, + {80, 1}, + {0x1E05, 1}, + {0x0410, 1}, + {6, 0}, + {9, 0}, + {0, 0}, + {2, 1}, + {25, 1}, + {160, 1}, + {0x0203, 1}, + {0x0203, 1}, + {80, 1}, + {10, 1}, + {5, 1}, + {0x010A, 1}, + {0x010A, 1}, + {256, 1}, + {0x0203, 1}, + {12, 1}, + {2, 1}, + {12, 1}, + {9, 1}, + {6, 1}, + {12, 1}, + {9, 1}, + {0, 1}, + {0, 1}, + {0, 1}, + {0, 1}, + {15, 1}, + {1000, 1}, + {20, 1}, + {200, 1}, + {0x0103, 1}, + {80, 1}, + {10, 1}, + {10, 1}, + {0, 1}, + {80, 1}, + {10, 1}, + {0, 0}, + {0, 0}, + {0, 0}, + {16, 1}, + {10, 1}, + {0x0100, 1}, + {0x0302, 1}, + {0x0504, 1}, + {0x0706, 1}, + {0x1110, 1}, + {0x1312, 1}, + {0x0908, 1}, + {0x0B0A, 1}, + {0x0D0C, 1}, + {0x0F0E, 1}, + {0x1514, 1}, + {0x1716, 1}, + {0x1918, 1}, + {0x1B1A, 1}, + {0x1D1C, 1}, + {0x1F1E, 1}, + {0x2120, 1}, + {0x2322, 1}, + {0x2524, 1}, + {0x2726, 1}, + {1700, 1}, + {1, 1}, + {128, 1}, + {63, 1}, + {32, 1}, + {20, 1}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {2, 1}, + {2, 1}, + {200, 1}, + {0, 1}, + {15, 1}, + {1, 1}, + {1, 1}, + {8, 1}, + {11, 1}, + {15, 1}, + {0, 1}, + {0, 1}, + {0, 1}, + {0, 1}, + {0, 1}, + {0, 0}, + {480, 1}, + {800, 1}, + {0x0001, 1}, + {2, 1}, + {4, 1}, + {1200, 1}, + {170, 1}, + {64, 1}, + {0, 1}, + {0, 1}, + {0, 1}, + {0, 1}, + {0, 1}, + {0, 1}, + {0, 0}, + {0, 0}, + {69, 1}, + {50, 1}, + {50, 1}, + {0, 0}, + {0, 0}, + {0x0005, 1}, + {0x0003, 1}, + {0x0003, 1}, + {0, 0}, + {0, 0}, + {2, 1}, + {100, 0}, + {0x5555, 1}, + {0x4444, 1}, + {0x3333, 1}, + {169, 1}, + {169, 1}, + {171, 1}, + {170, 1}, + {0, 0}, + {0, 0}, + {0x7777, 1}, + {0x4444, 1}, + {0x4444, 1}, + {137, 1}, + {136, 1}, + {139, 1}, + {138, 1}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + {0x880F, 1}, + {0, 1}, + {0, 0}, + {0x0100, 1}, + {0x0403, 1}, + {0x0605, 1}, + {0x0807, 1}, + {0x0A09, 1}, + {0x0B02, 1}, + {0x0D0C, 1}, + {0x0F0E, 1}, + {0x1110, 1}, + {0x1312, 1}, + {0x1514, 1}, + {0x1716, 1}, + {0x1918, 1}, + {40, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x2828, 1}, + {0x0000, 1}, + {0x0000, 1}, + {0x0000, 1}, + {0x0000, 1}, + {0x0000, 1}, + {0x0000, 1}, + {0x0000, 1}, + {0x0000, 1}, + {0x0000, 1}, + {0x0000, 1}, + {0x0000, 1}, + {0, 1}, + {0, 1}, + {10, 1}, + {63, 1}, + {0x0000, 1}, + {0x0000, 0}, + {0x0000, 1}, + {0x0000, 1}, + {0x0000, 0}, + {0x0000, 0}, + {0, 0}, + {2, 1}, + {1, 1}, + {0, 0}, + {0, 0}, + {0, 0}, + {0x3333, 1}, + {0xFFFF, 1}, + {0xFFFF, 1}, + {0x3305, 1}, + {0x0011, 1}, + {0x0133, 1}, + {0x0001, 1}, + {0x00FF, 1}, + {0x0011, 1}, + {0x0000, 1}, + {0x0002, 1}, + {0x007F, 1}, + {0x007F, 1}, + {0x0808, 1}, + {0x0001, 1}, + {0x0000, 1}, + {0x0300, 1}, + {0x0800, 1}, + {0x0800, 1}, + {0x0004, 1}, + {0x0000, 1}, + {0x0000, 1}, + {0x0001, 1}, + {0x0001, 1}, + {0x0000, 1}, + {0x0000, 1}, + {0x0008, 1}, + {0x0001, 1}, + {0, 0}, + {0, 0}, + {0, 0}, + {0, 0}, + +}; +#endif diff --git a/drivers/input/touchscreen/zinitix_touch_bt4x4_firmware.h b/drivers/input/touchscreen/zinitix_touch_bt4x4_firmware.h new file mode 100644 index 00000000..31de784f --- /dev/null +++ b/drivers/input/touchscreen/zinitix_touch_bt4x4_firmware.h @@ -0,0 +1,4126 @@ +/* +* +* Zinitix touch driver +* +* Copyright (C) 2009 Zinitix, 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. +* +*/ +/* +Release Date : 12/11/19, 17:34 + +Version Info : + Firmware Version : 0x0086 + Register Version : 10 +*/ +#ifndef _ZINITIX_BT4x3_CODE_H +#define _ZINITIX_BT4x3_CODE_H + +u8 m_firmware_data[] = { +0x86, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x0F, 0x88, 0x20, 0x00, 0x0F, 0x88, +0x00, 0x04, 0x0F, 0x88, 0x7B, 0x00, 0x0F, 0x88, +0x7B, 0x00, 0x0F, 0x88, 0x7B, 0x00, 0x0F, 0x88, +0x7B, 0x00, 0x0F, 0x88, 0x7B, 0x00, 0x0F, 0x88, +0x7B, 0x00, 0x0F, 0x88, 0x7B, 0x00, 0x0F, 0x88, +0x7B, 0x00, 0x0F, 0x88, 0x7B, 0x00, 0x0F, 0x88, +0x7B, 0x00, 0x0F, 0x88, 0x7B, 0x00, 0x0F, 0x88, +0x7B, 0x00, 0xF0, 0x1A, 0xFF, 0x0F, 0x00, 0x0E, +0x08, 0xF3, 0xA0, 0x1A, 0xFF, 0x0F, 0xA0, 0x0B, +0xA1, 0x39, 0xD5, 0x87, 0x0F, 0x98, 0x0D, 0x01, +0xC0, 0x03, 0x0D, 0x00, 0xC0, 0x51, 0x00, 0x98, +0xDC, 0x00, 0xFF, 0xFF, 0x00, 0x1A, 0xE0, 0x3F, +0x00, 0x0D, 0x05, 0xF3, 0xAF, 0x80, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x0F, 0x98, 0x95, 0x01, 0x00, 0x0E, +0xEA, 0x0D, 0x00, 0x0E, 0x03, 0xF0, 0x00, 0x1A, +0xFF, 0xFF, 0x03, 0xC9, 0x00, 0x0D, 0x02, 0xF0, +0x00, 0x0E, 0x00, 0xF0, 0xFF, 0xFF, 0x00, 0x03, +0x55, 0x00, 0x00, 0x4A, 0x14, 0x00, 0x2D, 0x80, +0x0F, 0x0E, 0x55, 0x00, 0x00, 0x49, 0x2A, 0x80, +0x0F, 0x0E, 0x55, 0x00, 0x00, 0x03, 0x56, 0x00, +0x00, 0x4A, 0x10, 0x00, 0x2D, 0x80, 0x08, 0x0E, +0x56, 0x00, 0x00, 0x49, 0x2A, 0x80, 0x08, 0x0E, +0x56, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x4A, +0xA0, 0x00, 0x4D, 0x80, 0x10, 0x1A, 0xA0, 0x00, +0x01, 0x0D, 0x10, 0x00, 0x00, 0x49, 0x4A, 0x80, +0x10, 0x1A, 0xA0, 0x00, 0x01, 0x0D, 0x10, 0x00, +0x90, 0x03, 0x00, 0xF2, 0x09, 0x0D, 0x0F, 0x00, +0x0F, 0x98, 0x3B, 0x04, 0x0F, 0x88, 0xDD, 0x05, +0xFF, 0xFF, 0xEF, 0x87, 0xA0, 0x4A, 0x00, 0x32, +0x01, 0x88, 0xD8, 0x05, 0xFF, 0xFF, 0xC0, 0x4A, +0xC6, 0x0E, 0x21, 0x80, 0xA0, 0x1A, 0xC0, 0x3F, +0x03, 0x0E, 0x08, 0xF3, 0x0A, 0x0D, 0x05, 0xF3, +0x0C, 0x0D, 0x06, 0xF3, 0x0F, 0x98, 0x01, 0x01, +0xFF, 0xFF, 0xA0, 0x22, 0x20, 0x00, 0xC0, 0x22, +0x20, 0x00, 0xB0, 0x3A, 0x20, 0x00, 0xB0, 0x49, +0x1A, 0x87, 0x00, 0x1A, 0xE0, 0x3F, 0x00, 0x0D, +0x05, 0xF3, 0x00, 0x0E, 0x08, 0xF3, 0x0F, 0x88, +0xD8, 0x05, 0x03, 0x0E, 0x08, 0xF3, 0x0A, 0x0D, +0x05, 0xF3, 0x0C, 0x0D, 0x06, 0xF3, 0xB1, 0x39, +0x0B, 0x0D, 0x04, 0xF3, 0x0F, 0x98, 0xFE, 0x00, +0x00, 0x1A, 0xE0, 0x3F, 0x00, 0x0D, 0x05, 0xF3, +0x00, 0x0E, 0x08, 0xF3, 0x0F, 0x98, 0x5B, 0x01, +0xFF, 0xA0, 0xA0, 0x1A, 0x00, 0x38, 0xC0, 0x1A, +0x35, 0x07, 0xB0, 0x03, 0x10, 0x00, 0x2F, 0x84, +0xA0, 0x4A, 0x00, 0x32, 0x01, 0x88, 0xD8, 0x05, +0xFF, 0xFF, 0x03, 0x0E, 0x0E, 0xF3, 0x95, 0x19, +0xA0, 0x1A, 0x00, 0x90, 0xB0, 0x1A, 0x00, 0x38, +0x0A, 0x0D, 0x06, 0xF3, 0x0B, 0x0D, 0x05, 0xF3, +0x0F, 0x98, 0x01, 0x01, 0xFF, 0xFF, 0xA0, 0x22, +0x20, 0x00, 0xB0, 0x22, 0x20, 0x00, 0x91, 0x39, +0x31, 0x87, 0x00, 0x1A, 0xE0, 0x3F, 0x00, 0x0D, +0x05, 0xF3, 0x02, 0x0E, 0x0E, 0xF3, 0x0F, 0x88, +0xD8, 0x05, 0xA0, 0x1A, 0x00, 0x38, 0xC0, 0x1A, +0x35, 0x07, 0xB0, 0x03, 0x10, 0x00, 0x0F, 0x88, +0xA0, 0x00, 0x03, 0x0E, 0x0E, 0xF3, 0x00, 0x1A, +0x00, 0x38, 0x00, 0x0D, 0x05, 0xF3, 0x00, 0x1A, +0x00, 0x90, 0x00, 0x0D, 0x06, 0xF3, 0x00, 0x03, +0x10, 0x00, 0xFF, 0xFF, 0x01, 0x39, 0x00, 0x0D, +0x04, 0xF3, 0x0F, 0x98, 0xFE, 0x00, 0x00, 0x1A, +0xE0, 0x3F, 0x00, 0x0D, 0x05, 0xF3, 0x02, 0x0E, +0x0E, 0xF3, 0x0F, 0x88, 0xD8, 0x05, 0x01, 0x0E, +0x00, 0xF3, 0x7F, 0x80, 0x00, 0x03, 0xEA, 0x0D, +0x01, 0x49, 0xF1, 0xA0, 0xFF, 0xFF, 0x01, 0x0E, +0x01, 0xF3, 0x00, 0x03, 0x00, 0xF3, 0x00, 0x51, +0xC1, 0x87, 0xFF, 0xA0, 0x03, 0x0E, 0x08, 0xF3, +0x00, 0x1A, 0x00, 0x32, 0x00, 0x0D, 0x05, 0xF3, +0x00, 0x19, 0x00, 0x0D, 0x06, 0xF3, 0x00, 0x19, +0x10, 0x1A, 0xA9, 0x01, 0x10, 0x38, 0x01, 0x0D, +0x04, 0xF3, 0x01, 0x0E, 0x00, 0xF3, 0x00, 0x03, +0x00, 0xF3, 0x00, 0x51, 0xC1, 0x87, 0x00, 0x1A, +0xE0, 0x3F, 0x00, 0x0D, 0x05, 0xF3, 0x00, 0x0E, +0x08, 0xF3, 0xB0, 0x1A, 0x14, 0x00, 0xA0, 0x1A, +0x75, 0x00, 0xA0, 0x0B, 0xA1, 0x21, 0xB1, 0x39, +0xC1, 0x87, 0x0F, 0x98, 0x33, 0x01, 0xFF, 0xA0, +0x00, 0x0E, 0x04, 0xF9, 0x00, 0x0E, 0x05, 0xF9, +0x00, 0x0E, 0x06, 0xF9, 0x00, 0x0E, 0x07, 0xF9, +0x40, 0x1A, 0xA9, 0x01, 0x41, 0x39, 0x00, 0x03, +0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, 0x00, 0x0D, +0x04, 0xF9, 0x01, 0x0D, 0x05, 0xF9, 0x24, 0x00, +0x02, 0x0D, 0x06, 0xF9, 0x00, 0x0E, 0x07, 0xF9, +0x41, 0x39, 0x40, 0x49, 0x0B, 0x87, 0x00, 0x03, +0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, 0x00, 0x0D, +0xA1, 0x00, 0x01, 0x0D, 0xA2, 0x00, 0x00, 0x0D, +0xC2, 0x0E, 0x01, 0x0D, 0xC3, 0x0E, 0xFF, 0xA0, +0x00, 0x0E, 0x04, 0xF9, 0x00, 0x0E, 0x05, 0xF9, +0x00, 0x0E, 0x06, 0xF9, 0x00, 0x0E, 0x07, 0xF9, +0x50, 0x1A, 0x35, 0x07, 0x40, 0x03, 0x10, 0x00, +0x00, 0x03, 0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, +0x00, 0x0D, 0x04, 0xF9, 0x01, 0x0D, 0x05, 0xF9, +0x25, 0x00, 0x02, 0x0D, 0x06, 0xF9, 0x00, 0x0E, +0x07, 0xF9, 0x51, 0x21, 0x41, 0x39, 0x01, 0x87, +0x00, 0x03, 0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, +0x00, 0x0D, 0xC4, 0x0E, 0x01, 0x0D, 0xC5, 0x0E, +0x20, 0x03, 0xA1, 0x00, 0x30, 0x03, 0xA2, 0x00, +0x00, 0x0D, 0x04, 0xF9, 0x01, 0x0D, 0x05, 0xF9, +0x02, 0x0D, 0x06, 0xF9, 0x03, 0x0D, 0x07, 0xF9, +0xFF, 0xFF, 0x00, 0x03, 0x03, 0xF9, 0x10, 0x03, +0x04, 0xF9, 0x00, 0x0D, 0xA1, 0x00, 0x01, 0x0D, +0xA2, 0x00, 0xFF, 0xA0, 0x00, 0x0E, 0x04, 0xF9, +0x00, 0x0E, 0x05, 0xF9, 0x00, 0x0E, 0x06, 0xF9, +0x00, 0x0E, 0x07, 0xF9, 0x90, 0x1A, 0x90, 0x01, +0x80, 0x19, 0x03, 0x0E, 0x08, 0xF3, 0x08, 0x18, +0x05, 0x7B, 0x00, 0x0D, 0x05, 0xF3, 0x00, 0x1A, +0xCC, 0x0E, 0x00, 0x0D, 0x06, 0xF3, 0x10, 0x1A, +0x1F, 0x00, 0x01, 0x0D, 0x04, 0xF3, 0x01, 0x0E, +0x00, 0xF3, 0x00, 0x03, 0x00, 0xF3, 0x00, 0x51, +0xC1, 0x87, 0x00, 0x1A, 0xE0, 0x3F, 0x00, 0x0D, +0x05, 0xF3, 0x00, 0x0E, 0x08, 0xF3, 0x40, 0x1A, +0x20, 0x00, 0x50, 0x1A, 0xCC, 0x0E, 0x00, 0x03, +0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, 0x00, 0x0D, +0x04, 0xF9, 0x01, 0x0D, 0x05, 0xF9, 0x25, 0x00, +0x02, 0x0D, 0x06, 0xF9, 0x00, 0x0E, 0x07, 0xF9, +0x51, 0x21, 0x41, 0x39, 0x01, 0x87, 0x81, 0x21, +0x91, 0x39, 0xF1, 0x84, 0x00, 0x03, 0x03, 0xF9, +0x10, 0x03, 0x04, 0xF9, 0x20, 0x03, 0xA1, 0x00, +0x30, 0x03, 0xA2, 0x00, 0x00, 0x0D, 0xC0, 0x0E, +0x01, 0x0D, 0xC1, 0x0E, 0x00, 0x0D, 0x04, 0xF9, +0x01, 0x0D, 0x05, 0xF9, 0x02, 0x0D, 0x06, 0xF9, +0x03, 0x0D, 0x07, 0xF9, 0xFF, 0xFF, 0x00, 0x03, +0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, 0x00, 0x0D, +0xA1, 0x00, 0x01, 0x0D, 0xA2, 0x00, 0x03, 0x0E, +0x08, 0xF3, 0x00, 0x1A, 0xC0, 0x3F, 0x00, 0x0D, +0x05, 0xF3, 0x00, 0x1A, 0xC6, 0x0E, 0x00, 0x0D, +0x06, 0xF3, 0x10, 0x1A, 0x1F, 0x00, 0x01, 0x0D, +0x04, 0xF3, 0x01, 0x0E, 0x00, 0xF3, 0x00, 0x03, +0x00, 0xF3, 0x00, 0x51, 0xC1, 0x87, 0x00, 0x1A, +0xE0, 0x3F, 0x00, 0x0D, 0x05, 0xF3, 0x00, 0x0E, +0x08, 0xF3, 0x00, 0x03, 0x0D, 0x00, 0x00, 0x51, +0x90, 0x80, 0xA0, 0x1A, 0xC6, 0x0E, 0x00, 0x03, +0xC0, 0x0E, 0xA0, 0x08, 0xA1, 0x21, 0x00, 0x03, +0xC1, 0x0E, 0xA0, 0x08, 0x00, 0x0E, 0x04, 0xF9, +0x00, 0x0E, 0x05, 0xF9, 0x00, 0x0E, 0x06, 0xF9, +0x00, 0x0E, 0x07, 0xF9, 0x43, 0x19, 0x50, 0x1A, +0xC6, 0x0E, 0x00, 0x03, 0x03, 0xF9, 0x10, 0x03, +0x04, 0xF9, 0x00, 0x0D, 0x04, 0xF9, 0x01, 0x0D, +0x05, 0xF9, 0x25, 0x00, 0x02, 0x0D, 0x06, 0xF9, +0x51, 0x21, 0x35, 0x00, 0x03, 0x0D, 0x07, 0xF9, +0x51, 0x21, 0x41, 0x39, 0xE1, 0x86, 0x00, 0x03, +0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, 0x00, 0x0D, +0xA3, 0x00, 0x01, 0x0D, 0xA4, 0x00, 0xFF, 0xA0, +0x00, 0x0E, 0xA1, 0x00, 0x00, 0x0E, 0xA2, 0x00, +0x00, 0x0E, 0xA3, 0x00, 0x00, 0x0E, 0xA4, 0x00, +0x10, 0x1A, 0x20, 0x00, 0x00, 0x1A, 0x75, 0x00, +0x00, 0x0B, 0x01, 0x21, 0x11, 0x39, 0xC1, 0x87, +0xFF, 0xA0, 0x00, 0x0E, 0x04, 0xF9, 0x00, 0x0E, +0x05, 0xF9, 0x00, 0x0E, 0x06, 0xF9, 0x00, 0x0E, +0x07, 0xF9, 0x50, 0x19, 0x40, 0x1A, 0xA9, 0x01, +0x45, 0x38, 0x00, 0x03, 0x03, 0xF9, 0x10, 0x03, +0x04, 0xF9, 0x00, 0x0D, 0x04, 0xF9, 0x01, 0x0D, +0x05, 0xF9, 0x25, 0x00, 0x02, 0x0D, 0x06, 0xF9, +0x00, 0x0E, 0x07, 0xF9, 0x51, 0x21, 0x41, 0x39, +0x01, 0x87, 0x00, 0x03, 0x03, 0xF9, 0x10, 0x03, +0x04, 0xF9, 0xA0, 0x1A, 0xC6, 0x0E, 0xA2, 0x21, +0xA0, 0x08, 0xA1, 0x21, 0xA1, 0x08, 0x00, 0x0E, +0x04, 0xF9, 0x00, 0x0E, 0x05, 0xF9, 0x00, 0x0E, +0x06, 0xF9, 0x00, 0x0E, 0x07, 0xF9, 0x50, 0x1A, +0x35, 0x07, 0x40, 0x03, 0x10, 0x00, 0x00, 0x03, +0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, 0x00, 0x0D, +0x04, 0xF9, 0x01, 0x0D, 0x05, 0xF9, 0x25, 0x00, +0x02, 0x0D, 0x06, 0xF9, 0x00, 0x0E, 0x07, 0xF9, +0x51, 0x21, 0x41, 0x39, 0x01, 0x87, 0x00, 0x03, +0x03, 0xF9, 0x10, 0x03, 0x04, 0xF9, 0xA0, 0x1A, +0xC6, 0x0E, 0xA4, 0x21, 0xA0, 0x08, 0xA1, 0x21, +0xA1, 0x08, 0xA1, 0x21, 0x90, 0x1A, 0xC2, 0x0E, +0x09, 0x00, 0xA0, 0x08, 0x91, 0x21, 0xA1, 0x21, +0x09, 0x00, 0xA0, 0x08, 0x91, 0x21, 0xA1, 0x21, +0x09, 0x00, 0xA0, 0x08, 0x91, 0x21, 0xA1, 0x21, +0x09, 0x00, 0xA0, 0x08, 0xFF, 0xA0, 0x0F, 0x98, +0xCD, 0x0C, 0x0F, 0x98, 0x4A, 0x08, 0x0F, 0x98, +0xD7, 0x02, 0x00, 0x0E, 0x07, 0xF3, 0x02, 0x0E, +0x01, 0xFF, 0x02, 0x0E, 0x05, 0xFF, 0x01, 0x0E, +0x07, 0xF5, 0x00, 0x1A, 0x00, 0x20, 0x00, 0x0D, +0x01, 0xF2, 0xA0, 0x1A, 0x10, 0x00, 0x01, 0x0E, +0x02, 0xFF, 0xA1, 0x39, 0xE1, 0x87, 0x00, 0x19, +0x00, 0x0D, 0x01, 0xF2, 0xA0, 0x1A, 0x00, 0x02, +0xA1, 0x39, 0xE1, 0x87, 0x01, 0x0E, 0x07, 0xF3, +0xA0, 0x1A, 0x00, 0x02, 0xA1, 0x39, 0xE1, 0x87, +0x00, 0x0E, 0x07, 0xF5, 0x0F, 0x98, 0xCF, 0x08, +0x00, 0x0E, 0xBB, 0x01, 0x0F, 0x88, 0xD8, 0x05, +0x00, 0x0E, 0x10, 0xF8, 0x00, 0x0E, 0x11, 0xF8, +0x00, 0x0E, 0x40, 0xF8, 0x00, 0x0E, 0x28, 0xF8, +0x00, 0x0E, 0x28, 0xF8, 0x00, 0x0E, 0x49, 0xF8, +0x00, 0x0E, 0x4B, 0xF8, 0x00, 0x0E, 0x29, 0xF8, +0x0F, 0x88, 0xD8, 0x05, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFE, 0x10, 0xFD, 0x10, 0xFC, 0x10, +0xFB, 0x10, 0xFA, 0x10, 0xF9, 0x10, 0xF8, 0x10, +0xF7, 0x10, 0xF6, 0x10, 0xF5, 0x10, 0xF4, 0x10, +0xF3, 0x10, 0xF2, 0x10, 0xF1, 0x10, 0xF0, 0x10, +0x50, 0x03, 0x01, 0xF5, 0x50, 0x51, 0xA1, 0x80, +0x0F, 0x98, 0xF4, 0x04, 0xB1, 0x49, 0xAD, 0x80, +0xB0, 0x4A, 0x10, 0x00, 0x7A, 0x80, 0x0F, 0x98, +0x34, 0x05, 0x4F, 0x80, 0x00, 0x1A, 0x31, 0x00, +0x00, 0x0D, 0x00, 0xF5, 0x00, 0x03, 0x03, 0xF0, +0x03, 0xC9, 0x00, 0x0D, 0x03, 0xF0, 0x0F, 0x11, +0x1F, 0x11, 0x2F, 0x11, 0x3F, 0x11, 0x4F, 0x11, +0x5F, 0x11, 0x6F, 0x11, 0x7F, 0x11, 0x8F, 0x11, +0x9F, 0x11, 0xAF, 0x11, 0xBF, 0x11, 0xCF, 0x11, +0xDF, 0x11, 0xEF, 0x11, 0xFF, 0xFF, 0x3F, 0xA8, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x00, 0x1A, 0x40, 0x00, 0x00, 0x0D, 0x03, 0xF5, +0x00, 0x0E, 0x05, 0xF5, 0x00, 0x1A, 0xFF, 0x07, +0x00, 0x0D, 0x06, 0xF5, 0x00, 0x03, 0x01, 0xF5, +0x00, 0x0E, 0x01, 0xF5, 0x00, 0x1A, 0x31, 0x00, +0x00, 0x0D, 0x00, 0xF5, 0x01, 0x0E, 0x09, 0xF3, +0x01, 0x0E, 0x0A, 0xF3, 0x00, 0x19, 0x00, 0x0D, +0x0A, 0xF5, 0x00, 0x03, 0x09, 0xF5, 0x00, 0xC9, +0x00, 0x0D, 0x09, 0xF5, 0x10, 0x03, 0x08, 0xF5, +0x10, 0xC9, 0x01, 0x0D, 0x08, 0xF5, 0xFF, 0xA0, +0x00, 0x03, 0x00, 0xF5, 0x00, 0x51, 0xC1, 0x87, +0xFF, 0xA0, 0x00, 0x03, 0x09, 0xF5, 0x00, 0x51, +0xC1, 0x87, 0xFF, 0xA0, 0x00, 0x0E, 0xBA, 0x01, +0x00, 0x03, 0x09, 0xF5, 0x00, 0xC1, 0x00, 0x0D, +0x09, 0xF5, 0xFF, 0xA0, 0x00, 0x03, 0x09, 0xF5, +0x00, 0xC9, 0x00, 0x0D, 0x09, 0xF5, 0xFF, 0xA0, +0x01, 0x0E, 0x09, 0xF3, 0x00, 0x1A, 0x91, 0x00, +0x00, 0x0D, 0x00, 0xF5, 0xFF, 0xA0, 0x0F, 0x98, +0x63, 0x04, 0x00, 0x0E, 0x09, 0xF3, 0xA0, 0x1A, +0x00, 0x40, 0x0B, 0x00, 0xA0, 0x08, 0xA1, 0x21, +0xB1, 0x21, 0x91, 0x39, 0xA1, 0x87, 0x01, 0x0E, +0x09, 0xF3, 0xFF, 0xA0, 0x0F, 0x98, 0x63, 0x04, +0x00, 0x0E, 0x09, 0xF3, 0xA0, 0x1A, 0x00, 0x40, +0x0B, 0x00, 0xA0, 0x08, 0xA1, 0x21, 0xB1, 0x21, +0x91, 0x39, 0xA1, 0x87, 0x93, 0x19, 0x30, 0x03, +0x0A, 0x00, 0xFF, 0xFF, 0x93, 0x58, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x90, 0x1E, 0x92, 0x21, +0x00, 0x03, 0x4A, 0x0B, 0x10, 0x03, 0xE5, 0x00, +0xFF, 0xFF, 0x01, 0x60, 0x41, 0x80, 0xA0, 0x0B, +0x01, 0x0E, 0x09, 0xF3, 0xFF, 0xA0, 0xB0, 0x1A, +0x75, 0x00, 0x0B, 0x00, 0xA0, 0x08, 0xA1, 0x21, +0xB1, 0x21, 0x91, 0x39, 0xA1, 0x87, 0x01, 0x0E, +0x09, 0xF3, 0xFF, 0xA0, 0x0F, 0x98, 0x63, 0x04, +0x00, 0x0E, 0x09, 0xF3, 0xA0, 0x1A, 0x00, 0x40, +0x0B, 0x00, 0xA0, 0x08, 0xA1, 0x21, 0xB1, 0x21, +0x91, 0x39, 0xA1, 0x87, 0xB0, 0x1A, 0x4A, 0x0B, +0x0B, 0x00, 0xA0, 0x08, 0xA1, 0x21, 0xB0, 0x1A, +0x77, 0x00, 0x0B, 0x00, 0xA0, 0x08, 0xA1, 0x21, +0xB1, 0x21, 0x0B, 0x00, 0xA0, 0x08, 0x01, 0x0E, +0x09, 0xF3, 0xFF, 0xA0, 0x0F, 0x98, 0x63, 0x04, +0x00, 0x0E, 0x09, 0xF3, 0xA0, 0x1A, 0x00, 0x40, +0x0A, 0x00, 0xB0, 0x08, 0xA1, 0x21, 0xB1, 0x21, +0x91, 0x39, 0xA1, 0x87, 0x01, 0x0E, 0x09, 0xF3, +0xFF, 0xA0, 0x01, 0x0E, 0xEC, 0x0E, 0x00, 0x0E, +0xBB, 0x01, 0x00, 0x03, 0x70, 0x00, 0x00, 0x0D, +0xBC, 0x01, 0x0F, 0x98, 0x18, 0x10, 0x0F, 0x88, +0x75, 0x04, 0xB0, 0x03, 0x06, 0xF5, 0x2B, 0x18, +0xB1, 0x49, 0xFD, 0xA0, 0xFF, 0xFF, 0xB0, 0x4A, +0x10, 0x00, 0xFB, 0xA0, 0xFF, 0xFF, 0x21, 0x79, +0x02, 0x0D, 0xC1, 0x01, 0x10, 0x1A, 0x10, 0xF5, +0x30, 0x1A, 0xAA, 0x01, 0x41, 0x00, 0x40, 0x62, +0xFF, 0x00, 0x11, 0x21, 0x51, 0x00, 0xFF, 0xFF, +0x58, 0x7B, 0x54, 0x68, 0x35, 0x08, 0x11, 0x21, +0x31, 0x21, 0x21, 0x39, 0x31, 0x87, 0xFF, 0xA0, +0x10, 0x20, 0x30, 0x03, 0xC1, 0x01, 0x31, 0x49, +0x11, 0x81, 0x30, 0x1A, 0x10, 0xF5, 0x28, 0x19, +0x01, 0x00, 0x00, 0x62, 0xFF, 0x00, 0x30, 0x08, +0x31, 0x21, 0x01, 0x00, 0xFF, 0xFF, 0x08, 0x79, +0x30, 0x08, 0x31, 0x21, 0x11, 0x21, 0x21, 0x39, +0x31, 0x87, 0xFF, 0xA0, 0x30, 0x03, 0xC1, 0x01, +0x32, 0x49, 0xF1, 0xA0, 0xFF, 0xFF, 0x30, 0x1A, +0xAA, 0x01, 0x31, 0x21, 0x03, 0x00, 0x10, 0x08, +0xFF, 0xA0, 0x30, 0x1A, 0xAA, 0x01, 0x03, 0x00, +0x00, 0x4A, 0x80, 0x00, 0xDC, 0x80, 0x00, 0x4A, +0x9F, 0x00, 0xAA, 0x80, 0xA0, 0x03, 0x05, 0x00, +0xA0, 0x49, 0x00, 0x88, 0x7B, 0x04, 0x10, 0x1A, +0x75, 0x00, 0x00, 0x3A, 0x80, 0x00, 0xCF, 0x84, +0x00, 0x4A, 0x00, 0x02, 0x00, 0x88, 0x7B, 0x04, +0x00, 0x49, 0x00, 0x88, 0xE8, 0x04, 0x01, 0x49, +0x00, 0x88, 0xE8, 0x04, 0x03, 0x49, 0x00, 0x88, +0x75, 0x04, 0x04, 0x49, 0x41, 0x80, 0x01, 0x0E, +0xBB, 0x01, 0x0F, 0x88, 0x75, 0x04, 0x05, 0x49, +0x41, 0x80, 0x01, 0x0E, 0xBB, 0x01, 0x0F, 0x88, +0x75, 0x04, 0x06, 0x49, 0x41, 0x80, 0x01, 0x0E, +0xBD, 0x01, 0x0F, 0x88, 0x75, 0x04, 0x08, 0x49, +0xD1, 0x80, 0xA0, 0x1A, 0x00, 0x32, 0x0F, 0x98, +0xBB, 0x00, 0xA0, 0x03, 0x0D, 0x00, 0xA2, 0xC9, +0xA1, 0xC9, 0x0A, 0x0D, 0x0D, 0x00, 0x01, 0x0E, +0xEA, 0x0D, 0x7F, 0x80, 0x07, 0x49, 0xE1, 0x81, +0xC0, 0x03, 0x0D, 0x00, 0xC1, 0xC9, 0x0C, 0x0D, +0x0D, 0x00, 0xA0, 0x1A, 0x00, 0x32, 0xC0, 0x19, +0xB0, 0x1A, 0x41, 0x01, 0xBC, 0x38, 0x0F, 0x98, +0x3B, 0x02, 0x0F, 0x98, 0x7D, 0x00, 0xFF, 0xFF, +0x0F, 0x98, 0x4C, 0x02, 0xA0, 0x1A, 0x00, 0x32, +0xC0, 0x1A, 0xC6, 0x0E, 0xB0, 0x1A, 0x20, 0x00, +0x0F, 0x98, 0x82, 0x00, 0x00, 0x0E, 0xEA, 0x0D, +0x0F, 0x88, 0x75, 0x04, 0x0F, 0x49, 0x00, 0x88, +0x75, 0x04, 0x00, 0x03, 0xAA, 0x01, 0x00, 0x4A, +0xD0, 0x01, 0xFB, 0xA0, 0xFF, 0xFF, 0x20, 0x03, +0x05, 0x00, 0x02, 0x0D, 0xBB, 0x0D, 0x15, 0x19, +0x00, 0x3A, 0x10, 0x00, 0x0F, 0x98, 0x13, 0x05, +0x90, 0x03, 0xC1, 0x01, 0x91, 0x49, 0xFD, 0xA0, +0xFF, 0xFF, 0x00, 0x03, 0xAA, 0x01, 0x00, 0x4A, +0x10, 0x00, 0x11, 0x81, 0x0F, 0x98, 0x75, 0x04, +0x00, 0x03, 0x05, 0x00, 0x05, 0x49, 0x3D, 0x80, +0x02, 0x0E, 0xBD, 0x01, 0xFF, 0xA0, 0x00, 0x03, +0xBB, 0x0D, 0x05, 0x49, 0xFD, 0xA0, 0xFF, 0xFF, +0x02, 0x0E, 0xBD, 0x01, 0xFF, 0xA0, 0x00, 0x4A, +0x60, 0x00, 0x7C, 0x80, 0x00, 0x4A, 0x7F, 0x00, +0x4A, 0x80, 0x02, 0x0E, 0xBD, 0x01, 0x0F, 0x88, +0x75, 0x04, 0x00, 0x4A, 0x00, 0x01, 0xFC, 0xA0, +0xFF, 0xFF, 0x00, 0x4A, 0x4F, 0x01, 0xFA, 0xA0, +0xFF, 0xFF, 0x02, 0x0E, 0xBD, 0x01, 0x0F, 0x88, +0x75, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x98, 0x4A, 0x08, +0x00, 0x03, 0x0E, 0x00, 0x00, 0x0D, 0x05, 0x00, +0x0F, 0x98, 0x4A, 0x10, 0x0F, 0x98, 0xD2, 0x0C, +0x0F, 0x98, 0x75, 0x04, 0x00, 0x0E, 0xBD, 0x01, +0x0F, 0x98, 0xCF, 0x08, 0x0F, 0x98, 0x39, 0x09, +0x00, 0x03, 0x70, 0x00, 0x00, 0x0D, 0xBC, 0x01, +0x0F, 0x98, 0x2E, 0x0A, 0x00, 0x0E, 0x05, 0xF8, +0x0F, 0x98, 0xAC, 0x0C, 0x0F, 0x98, 0xCD, 0x0C, +0x0F, 0x98, 0x18, 0x10, 0xA0, 0x03, 0x21, 0x01, +0xB0, 0x03, 0x0C, 0x00, 0xBF, 0x51, 0x10, 0x80, +0xA1, 0x19, 0x0A, 0x0D, 0xBD, 0x0D, 0x0F, 0x98, +0xA1, 0x0C, 0x0F, 0x98, 0xE3, 0x0A, 0x00, 0x03, +0xBB, 0x01, 0x01, 0x49, 0x00, 0x98, 0xAA, 0x02, +0xFF, 0xFF, 0x00, 0x03, 0xBE, 0x01, 0x00, 0x49, +0x41, 0x87, 0x00, 0x03, 0xBD, 0x01, 0x01, 0x49, +0x00, 0x88, 0xC1, 0x06, 0x02, 0x49, 0x80, 0x84, +0x00, 0x03, 0x05, 0x00, 0x05, 0x49, 0x0D, 0x81, +0x00, 0x4A, 0x33, 0x00, 0x40, 0x82, 0x09, 0x49, +0xB0, 0x80, 0x08, 0x49, 0x00, 0x82, 0x0C, 0x49, +0x00, 0x88, 0x8E, 0x06, 0x0D, 0x49, 0x00, 0x88, +0x8E, 0x06, 0x0A, 0x49, 0x01, 0x88, 0xAC, 0x06, +0x00, 0x03, 0x05, 0x00, 0x0A, 0x49, 0x71, 0x80, +0x00, 0x03, 0x4A, 0x0B, 0x0B, 0x51, 0x01, 0x98, +0xF1, 0x06, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x03, +0x05, 0x00, 0x03, 0x49, 0x8B, 0x80, 0x00, 0x03, +0x4A, 0x0B, 0x10, 0x03, 0xE5, 0x00, 0xFF, 0xFF, +0x01, 0x60, 0x01, 0x98, 0xF1, 0x06, 0xFF, 0xFF, +0x0F, 0x98, 0x78, 0x08, 0x00, 0x03, 0x05, 0x00, +0x00, 0x4A, 0x33, 0x00, 0xA1, 0x81, 0x00, 0x03, +0xE6, 0x00, 0x00, 0x49, 0x80, 0x83, 0x00, 0x03, +0xE6, 0x00, 0x10, 0x03, 0xBA, 0x01, 0xFF, 0xFF, +0x11, 0x21, 0x01, 0x0D, 0xBA, 0x01, 0x10, 0x48, +0xEC, 0x82, 0x0F, 0x98, 0x68, 0x04, 0xB0, 0x1A, +0xF2, 0x05, 0x90, 0x03, 0x06, 0x02, 0xFF, 0xFF, +0x0F, 0x98, 0xBD, 0x04, 0x0F, 0x98, 0x6D, 0x04, +0x2F, 0x82, 0x00, 0x03, 0x05, 0x00, 0x03, 0x49, +0xEB, 0x81, 0x00, 0x03, 0xE6, 0x00, 0x00, 0x49, +0xA0, 0x81, 0x00, 0x03, 0xE6, 0x00, 0x10, 0x03, +0xBA, 0x01, 0xFF, 0xFF, 0x11, 0x21, 0x01, 0x0D, +0xBA, 0x01, 0x10, 0x48, 0x0C, 0x81, 0x30, 0x1A, +0x75, 0x00, 0x30, 0x0B, 0x31, 0x21, 0x00, 0x1A, +0x64, 0x64, 0x30, 0x08, 0x0F, 0x98, 0x68, 0x04, +0xB0, 0x1A, 0x75, 0x00, 0x92, 0x19, 0x0F, 0x98, +0x82, 0x04, 0x0F, 0x98, 0x6D, 0x04, 0x00, 0x03, +0x05, 0x00, 0x03, 0x49, 0xD0, 0x80, 0x04, 0x49, +0xB0, 0x80, 0x05, 0x49, 0x90, 0x80, 0x08, 0x49, +0x70, 0x80, 0x09, 0x49, 0x70, 0x80, 0x0C, 0x49, +0x30, 0x80, 0x0D, 0x49, 0x10, 0x80, 0x2F, 0x80, +0x0F, 0x98, 0x05, 0x07, 0x0F, 0x98, 0xCD, 0x11, +0x00, 0x03, 0x05, 0x00, 0x09, 0x49, 0x01, 0x88, +0x0C, 0x06, 0x0F, 0x98, 0x05, 0x07, 0x0F, 0x88, +0x0C, 0x06, 0x06, 0x49, 0x50, 0x80, 0x07, 0x49, +0x30, 0x80, 0x00, 0x4A, 0x14, 0x00, 0xE1, 0x80, +0xA0, 0x1A, 0x32, 0x02, 0x0A, 0x0D, 0xC2, 0x01, +0x0F, 0x98, 0xD9, 0x0C, 0xB0, 0x1A, 0x32, 0x02, +0x0F, 0x98, 0x6B, 0x0D, 0x0F, 0x98, 0x05, 0x07, +0x0F, 0x88, 0x0C, 0x06, 0x00, 0x03, 0xBD, 0x01, +0x01, 0x49, 0x01, 0x88, 0x0C, 0x06, 0x00, 0x03, +0x70, 0x00, 0x00, 0x0D, 0xBC, 0x01, 0x0F, 0x98, +0x18, 0x10, 0x00, 0x03, 0x05, 0x00, 0x07, 0x49, +0x11, 0x81, 0x0F, 0x98, 0x76, 0x0B, 0x0F, 0x98, +0xD2, 0x0C, 0x0F, 0x98, 0x7E, 0x08, 0xA0, 0x03, +0x21, 0x01, 0xB0, 0x03, 0x0C, 0x00, 0xBF, 0x51, +0x10, 0x80, 0xA1, 0x19, 0x0A, 0x0D, 0xBD, 0x0D, +0x0F, 0x98, 0xA1, 0x0C, 0x00, 0x0E, 0xBD, 0x01, +0x0F, 0x88, 0x0C, 0x06, 0x21, 0x19, 0x10, 0x03, +0xF7, 0x0A, 0x10, 0x49, 0x11, 0x80, 0x20, 0x19, +0x00, 0x03, 0x01, 0xF8, 0x01, 0x61, 0x02, 0x48, +0xB1, 0x87, 0xFF, 0xA0, 0x0F, 0x98, 0x2A, 0x24, +0x0F, 0x98, 0x68, 0x04, 0x93, 0x19, 0x30, 0x03, +0x0A, 0x00, 0xFF, 0xFF, 0x93, 0x58, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x90, 0x1E, 0x92, 0x21, +0xB0, 0x1A, 0x75, 0x00, 0x0F, 0x98, 0x82, 0x04, +0x0F, 0x88, 0x6D, 0x04, 0x00, 0x03, 0x4A, 0x0B, +0x10, 0x03, 0xE5, 0x00, 0xFF, 0xFF, 0x01, 0x60, +0x01, 0x98, 0x2A, 0x24, 0xFF, 0xFF, 0xB0, 0x1A, +0x32, 0x02, 0x00, 0x03, 0x05, 0x00, 0x0C, 0x49, +0xB0, 0x83, 0x0D, 0x49, 0x90, 0x83, 0x03, 0x49, +0x8C, 0x81, 0x03, 0x49, 0x60, 0x82, 0xB0, 0x1A, +0xF2, 0x05, 0x04, 0x49, 0x20, 0x81, 0xB0, 0x19, +0x00, 0x4A, 0x14, 0x00, 0xE0, 0x80, 0xB0, 0x1A, +0x35, 0x07, 0x00, 0x03, 0x05, 0x00, 0x09, 0x49, +0x80, 0x80, 0xB0, 0x1A, 0x32, 0x02, 0x08, 0x49, +0x41, 0x80, 0x0F, 0x98, 0x9D, 0x07, 0xB0, 0x1A, +0xD5, 0x07, 0x0F, 0x98, 0x68, 0x04, 0x90, 0x03, +0x06, 0x02, 0xFF, 0xFF, 0x00, 0x03, 0x05, 0x00, +0x08, 0x49, 0x21, 0x80, 0x90, 0x03, 0x10, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0x91, 0x04, 0x0F, 0x88, +0x6D, 0x04, 0x0F, 0x98, 0xE4, 0x14, 0x0F, 0x98, +0x68, 0x04, 0xB0, 0x1A, 0x32, 0x02, 0x90, 0x03, +0x06, 0x02, 0xFF, 0xFF, 0x0F, 0x98, 0x91, 0x04, +0x0F, 0x98, 0x6D, 0x04, 0x0F, 0x88, 0x6C, 0x15, +0x0F, 0x98, 0x63, 0x04, 0x0F, 0x98, 0xE4, 0x14, +0x00, 0x0E, 0x09, 0xF3, 0x20, 0x1A, 0x00, 0x02, +0x20, 0x22, 0x00, 0x40, 0x10, 0x1A, 0x32, 0x02, +0x00, 0x03, 0x06, 0x02, 0xFF, 0xFF, 0x01, 0x79, +0x31, 0x00, 0x3F, 0x51, 0x70, 0x80, 0x30, 0x31, +0x31, 0x79, 0x30, 0x31, 0x30, 0x49, 0x40, 0x80, +0x37, 0xC1, 0x2F, 0x80, 0x31, 0x79, 0x37, 0xC9, +0x11, 0x21, 0x41, 0x00, 0x4F, 0x51, 0x70, 0x80, +0x40, 0x31, 0x41, 0x79, 0x40, 0x31, 0x40, 0x49, +0x40, 0x80, 0x47, 0xC1, 0x2F, 0x80, 0x41, 0x79, +0x47, 0xC9, 0x48, 0x7B, 0x34, 0x68, 0x11, 0x21, +0x23, 0x08, 0x21, 0x21, 0x01, 0x39, 0x01, 0x86, +0x0F, 0x98, 0x6C, 0x15, 0x00, 0x03, 0x05, 0x00, +0x0C, 0x49, 0x40, 0x81, 0x0F, 0x98, 0x2A, 0x24, +0x10, 0x1A, 0x75, 0x00, 0x03, 0x19, 0x02, 0x59, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x1E, +0x02, 0x21, 0x31, 0x00, 0x23, 0x08, 0x11, 0x21, +0x21, 0x21, 0x01, 0x39, 0xA1, 0x87, 0x00, 0x03, +0xBA, 0x0A, 0x20, 0x08, 0x01, 0x0E, 0x09, 0xF3, +0x0F, 0x88, 0x6D, 0x04, 0xD0, 0x03, 0x10, 0x00, +0xC0, 0x1A, 0xD5, 0x07, 0xB0, 0x1A, 0x35, 0x07, +0x0B, 0x00, 0x00, 0x62, 0xFF, 0x00, 0xC0, 0x08, +0xC1, 0x21, 0x0B, 0x00, 0xFF, 0xFF, 0x08, 0x79, +0xC0, 0x08, 0xC1, 0x21, 0xB1, 0x21, 0xD1, 0x39, +0x31, 0x87, 0x10, 0x03, 0x56, 0x00, 0x1C, 0x49, +0x2D, 0x80, 0x0F, 0x88, 0xFB, 0x07, 0x10, 0x03, +0x56, 0x00, 0x18, 0x49, 0x1D, 0x82, 0xD0, 0x1A, +0xF0, 0x00, 0xC0, 0x1A, 0xD5, 0x07, 0xB0, 0x1A, +0xD5, 0x07, 0x90, 0x19, 0x80, 0x19, 0xAB, 0x18, +0xA9, 0x20, 0x0A, 0x00, 0xAC, 0x18, 0xA8, 0x20, +0xA0, 0x08, 0x91, 0x21, 0x19, 0x18, 0x13, 0x61, +0x13, 0x49, 0x11, 0x80, 0x91, 0x21, 0x81, 0x21, +0x90, 0x4A, 0x10, 0x00, 0x6C, 0x80, 0xB0, 0x22, +0x10, 0x00, 0xC0, 0x22, 0x10, 0x00, 0x90, 0x19, +0x80, 0x19, 0xD1, 0x39, 0x81, 0x86, 0x0F, 0x82, +0xD0, 0x03, 0x10, 0x00, 0xC0, 0x1A, 0xD5, 0x07, +0xB0, 0x1A, 0xD5, 0x07, 0x90, 0x19, 0x80, 0x19, +0xAB, 0x18, 0xA9, 0x20, 0x0A, 0x00, 0xAC, 0x18, +0xA8, 0x20, 0xA0, 0x08, 0x91, 0x21, 0x19, 0x18, +0x13, 0x61, 0x12, 0x49, 0x11, 0x80, 0x92, 0x21, +0x81, 0x21, 0x90, 0x4A, 0x10, 0x00, 0x6C, 0x80, +0xB0, 0x22, 0x10, 0x00, 0xC0, 0x22, 0x10, 0x00, +0x90, 0x19, 0x80, 0x19, 0xD1, 0x39, 0x81, 0x86, +0xB0, 0x1A, 0xD5, 0x07, 0xCB, 0x18, 0x80, 0x1A, +0xFC, 0x0C, 0x20, 0x1A, 0x10, 0x00, 0x30, 0x1A, +0xE8, 0x00, 0x60, 0x1A, 0xC7, 0x0D, 0x03, 0x00, +0x00, 0x62, 0xFF, 0x00, 0x60, 0x08, 0x61, 0x21, +0x03, 0x00, 0xFF, 0xFF, 0x08, 0x79, 0x60, 0x08, +0x61, 0x21, 0x31, 0x21, 0x21, 0x39, 0x31, 0x87, +0x30, 0x1A, 0xC7, 0x0D, 0x60, 0x19, 0x90, 0x19, +0x50, 0x03, 0x56, 0x00, 0xD0, 0x1A, 0x40, 0x01, +0x03, 0x00, 0x00, 0x62, 0xFF, 0x00, 0x0B, 0x20, +0xA0, 0x00, 0x0C, 0x18, 0x09, 0x20, 0x0A, 0x08, +0x61, 0x21, 0x31, 0x21, 0x91, 0x21, 0x65, 0x48, +0xA1, 0x80, 0x30, 0x1A, 0xC7, 0x0D, 0x60, 0x19, +0x90, 0x19, 0xB0, 0x22, 0x10, 0x00, 0xC0, 0x22, +0x10, 0x00, 0xD0, 0x3A, 0x10, 0x00, 0xD0, 0x49, +0x7A, 0x86, 0xD0, 0x03, 0x10, 0x00, 0xC0, 0x1A, +0xD5, 0x07, 0xB0, 0x1A, 0xD5, 0x07, 0x90, 0x19, +0x80, 0x19, 0x0B, 0x00, 0x00, 0x62, 0xFF, 0x00, +0xB1, 0x21, 0x1B, 0x00, 0xFF, 0xFF, 0x18, 0x7B, +0x01, 0x68, 0xC0, 0x08, 0xB1, 0x21, 0xC1, 0x21, +0xD1, 0x39, 0x31, 0x87, 0xFF, 0xA0, 0xA0, 0x03, +0x15, 0x00, 0x0A, 0x0D, 0x70, 0x0A, 0x0A, 0x0D, +0x71, 0x0A, 0x0A, 0x0D, 0x73, 0x0A, 0x00, 0x0E, +0x4C, 0x0B, 0x00, 0x0E, 0xF0, 0x0D, 0x00, 0x0E, +0x4B, 0x0B, 0x00, 0x0E, 0x57, 0x0A, 0x00, 0x0E, +0x58, 0x0A, 0x00, 0x0E, 0x5A, 0x0A, 0x00, 0x0E, +0x5C, 0x0A, 0x00, 0x0E, 0x5D, 0x0A, 0x00, 0x0E, +0x46, 0x00, 0x00, 0x0E, 0x59, 0x0A, 0x0F, 0x98, +0x18, 0x10, 0x0F, 0x98, 0x75, 0x04, 0x0F, 0x98, +0x4A, 0x10, 0xC0, 0x19, 0xD0, 0x1A, 0x77, 0x00, +0xD2, 0x21, 0x3A, 0x19, 0xD0, 0x0B, 0xD3, 0x21, +0xC1, 0x21, 0xC3, 0x48, 0xB1, 0x87, 0x0F, 0x88, +0xB5, 0x24, 0x00, 0x0E, 0x62, 0x0A, 0x00, 0x0E, +0x63, 0x0A, 0x0F, 0x88, 0x4F, 0x0F, 0x00, 0x0E, +0x0D, 0xF3, 0x00, 0x0E, 0x0B, 0xF3, 0x00, 0x0E, +0x0C, 0xF3, 0x90, 0x1A, 0x40, 0x01, 0xA0, 0x1A, +0x00, 0x80, 0xB0, 0x1A, 0x00, 0x60, 0xC0, 0x1A, +0x00, 0x70, 0x0A, 0x00, 0xB0, 0x08, 0xC0, 0x08, +0xB1, 0x21, 0xC1, 0x21, 0xA1, 0x21, 0x91, 0x39, +0x81, 0x87, 0x02, 0x0E, 0x0D, 0xF3, 0x02, 0x0E, +0x0B, 0xF3, 0x02, 0x0E, 0x0C, 0xF3, 0xFF, 0xA0, +0x00, 0x0E, 0x0D, 0xF3, 0x00, 0x0E, 0x0B, 0xF3, +0x00, 0x0E, 0x0C, 0xF3, 0x90, 0x1A, 0x40, 0x01, +0xA0, 0x1A, 0x00, 0x80, 0xB0, 0x1A, 0x00, 0x60, +0xC0, 0x1A, 0x00, 0x70, 0x80, 0x1A, 0xB2, 0x04, +0x50, 0x03, 0x20, 0x01, 0x08, 0x00, 0x40, 0x1A, +0x00, 0x20, 0x40, 0x38, 0x45, 0x7A, 0xA4, 0x08, +0xB4, 0x08, 0xC4, 0x08, 0x81, 0x21, 0xC1, 0x21, +0xB1, 0x21, 0xA1, 0x21, 0x91, 0x39, 0x21, 0x87, +0x02, 0x0E, 0x0D, 0xF3, 0x02, 0x0E, 0x0B, 0xF3, +0x02, 0x0E, 0x0C, 0xF3, 0xFF, 0xA0, 0x90, 0x1A, +0x40, 0x01, 0xB0, 0x1A, 0x32, 0x02, 0x80, 0x1A, +0xB2, 0x04, 0x48, 0x00, 0xB4, 0x08, 0x81, 0x21, +0xB1, 0x21, 0x91, 0x39, 0xA1, 0x87, 0xFF, 0xA0, +0x00, 0x03, 0x25, 0x01, 0x00, 0x0D, 0x1A, 0xF8, +0x00, 0x03, 0x26, 0x01, 0x00, 0x0D, 0x10, 0xF8, +0x00, 0x03, 0x27, 0x01, 0x00, 0x0D, 0x11, 0xF8, +0x00, 0x03, 0x28, 0x01, 0x00, 0x0D, 0x1E, 0xF8, +0x00, 0x03, 0x29, 0x01, 0x00, 0x0D, 0x1F, 0xF8, +0x00, 0x03, 0x1B, 0x01, 0x00, 0x0D, 0x0E, 0xF8, +0x00, 0x03, 0x1C, 0x01, 0x00, 0x0D, 0x0F, 0xF8, +0x00, 0x03, 0x2A, 0x01, 0x00, 0x0D, 0x1B, 0xF8, +0x00, 0x03, 0x2B, 0x01, 0x00, 0x0D, 0x40, 0xF8, +0x00, 0x1A, 0x33, 0x33, 0x00, 0x0D, 0x42, 0xF8, +0x00, 0x03, 0x2C, 0x01, 0x00, 0x0D, 0x28, 0xF8, +0x00, 0x03, 0x2D, 0x01, 0x00, 0x0D, 0x29, 0xF8, +0x00, 0x03, 0x2F, 0x01, 0x00, 0x0D, 0x2A, 0xF8, +0x00, 0x03, 0x30, 0x01, 0x00, 0x0D, 0x21, 0xF8, +0x00, 0x03, 0x31, 0x01, 0x00, 0x0D, 0x22, 0xF8, +0x00, 0x03, 0x32, 0x01, 0x00, 0x0D, 0x4A, 0xF8, +0x00, 0x03, 0x33, 0x01, 0x00, 0x0D, 0x49, 0xF8, +0x00, 0x03, 0x34, 0x01, 0x00, 0x0D, 0x4B, 0xF8, +0x00, 0x03, 0x35, 0x01, 0x00, 0x0D, 0x51, 0xF8, +0x00, 0x03, 0x36, 0x01, 0x00, 0x0D, 0x52, 0xF8, +0x00, 0x03, 0x37, 0x01, 0x00, 0x0D, 0x53, 0xF8, +0xFF, 0xA0, 0x00, 0x0E, 0x05, 0x02, 0xDA, 0x19, +0xC0, 0x1A, 0x57, 0x00, 0xB0, 0x1A, 0x60, 0xF8, +0x0C, 0x00, 0x00, 0x62, 0xFF, 0x00, 0xB0, 0x08, +0xB1, 0x21, 0x0C, 0x00, 0xFF, 0xFF, 0x08, 0x79, +0xB0, 0x08, 0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, +0x31, 0x87, 0xFF, 0xA0, 0xB0, 0x03, 0x55, 0x00, +0xAB, 0x18, 0xC0, 0x03, 0x56, 0x00, 0xFF, 0xFF, +0xAC, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xA0, 0x1E, 0x0A, 0x0D, 0x06, 0x02, 0xB7, 0x7B, +0xC7, 0x7B, 0x0B, 0x0D, 0xB5, 0x0A, 0x0C, 0x0D, +0xB6, 0x0A, 0x00, 0x03, 0x55, 0x00, 0xFF, 0xFF, +0x01, 0x39, 0x00, 0x0D, 0x08, 0xF8, 0x0F, 0x98, +0x24, 0x09, 0x0F, 0x98, 0x9E, 0x0C, 0x10, 0x03, +0x05, 0x00, 0x16, 0x49, 0x61, 0x81, 0x00, 0x03, +0x16, 0x01, 0x00, 0x0D, 0x04, 0xF8, 0x00, 0x03, +0x17, 0x01, 0x00, 0x0D, 0x0B, 0xF8, 0x00, 0x03, +0x18, 0x01, 0x10, 0x18, 0x18, 0x7B, 0x01, 0x68, +0x00, 0x0D, 0x34, 0xF8, 0x00, 0x0D, 0x35, 0xF8, +0x00, 0x0D, 0x36, 0xF8, 0x00, 0x0D, 0x37, 0xF8, +0xCF, 0x82, 0x19, 0x49, 0x51, 0x81, 0x01, 0x19, +0x00, 0x0D, 0x04, 0xF8, 0x00, 0x03, 0x17, 0x01, +0x00, 0x0D, 0x0B, 0xF8, 0x00, 0x03, 0x18, 0x01, +0x10, 0x18, 0x18, 0x7B, 0x01, 0x68, 0x00, 0x0D, +0x34, 0xF8, 0x00, 0x0D, 0x35, 0xF8, 0x00, 0x0D, +0x36, 0xF8, 0x00, 0x0D, 0x37, 0xF8, 0x5F, 0x81, +0x00, 0x03, 0x6C, 0x00, 0x00, 0x0D, 0x04, 0xF8, +0x00, 0x03, 0x6D, 0x00, 0x00, 0x0D, 0x0B, 0xF8, +0x00, 0x03, 0x6E, 0x00, 0x10, 0x18, 0x18, 0x7B, +0x01, 0x68, 0x00, 0x0D, 0x34, 0xF8, 0x00, 0x0D, +0x35, 0xF8, 0x00, 0x0D, 0x36, 0xF8, 0x00, 0x0D, +0x37, 0xF8, 0x00, 0x03, 0x38, 0x01, 0x00, 0x0D, +0x0A, 0xF8, 0xA0, 0x03, 0x15, 0x01, 0xA0, 0x49, +0x00, 0x98, 0x36, 0x0A, 0xFF, 0xFF, 0xA0, 0x03, +0x15, 0x01, 0xA1, 0x49, 0x00, 0x98, 0x71, 0x0A, +0xFF, 0xFF, 0x0F, 0x98, 0xBE, 0x09, 0x0F, 0x98, +0x09, 0x0A, 0x0F, 0x98, 0x88, 0x0A, 0x00, 0x03, +0x05, 0x00, 0x06, 0x49, 0xF0, 0xA0, 0xFF, 0xFF, +0xC0, 0x03, 0x0D, 0x00, 0xC0, 0x51, 0xF1, 0xA0, +0xFF, 0xFF, 0x0F, 0x88, 0x31, 0x0C, 0x00, 0x0E, +0x0F, 0xF3, 0x00, 0x03, 0xF5, 0x00, 0x00, 0x49, +0x80, 0x81, 0x90, 0x03, 0x0F, 0x00, 0x95, 0x49, +0x6C, 0x80, 0x0D, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x00, 0x1E, 0x04, 0x79, 0x93, 0x49, +0x1B, 0x80, 0x01, 0x79, 0x90, 0x1A, 0x14, 0x00, +0x10, 0x1A, 0x00, 0xA0, 0x10, 0x08, 0x11, 0x21, +0x91, 0x39, 0xC1, 0x87, 0x02, 0x0E, 0x0F, 0xF3, +0xFF, 0xA0, 0x0A, 0x19, 0x10, 0x1A, 0x00, 0xA0, +0x20, 0x1A, 0xF6, 0x00, 0x90, 0x03, 0x0F, 0x00, +0x32, 0x00, 0x30, 0x62, 0xFF, 0x00, 0x95, 0x49, +0x6C, 0x80, 0x3D, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x30, 0x1E, 0x34, 0x79, 0x93, 0x49, +0x1B, 0x80, 0x31, 0x79, 0x13, 0x08, 0x11, 0x21, +0x32, 0x00, 0xFF, 0xFF, 0x38, 0x79, 0x95, 0x49, +0x6C, 0x80, 0x3D, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x30, 0x1E, 0x34, 0x79, 0x93, 0x49, +0x1B, 0x80, 0x31, 0x79, 0x13, 0x08, 0x11, 0x21, +0x21, 0x21, 0x01, 0x39, 0xD1, 0x85, 0x02, 0x0E, +0x0F, 0xF3, 0xFF, 0xA0, 0x00, 0x0E, 0x0E, 0xF3, +0x10, 0x03, 0x05, 0x00, 0x16, 0x49, 0x91, 0x80, +0x80, 0x03, 0x18, 0x01, 0x00, 0x03, 0x16, 0x01, +0x00, 0x49, 0x20, 0x80, 0x80, 0x03, 0x17, 0x01, +0x8F, 0x80, 0x80, 0x03, 0x6E, 0x00, 0x00, 0x03, +0x6C, 0x00, 0x00, 0x49, 0x20, 0x80, 0x80, 0x03, +0x6D, 0x00, 0x08, 0x18, 0x08, 0x7B, 0x80, 0x68, +0x90, 0x03, 0x10, 0x00, 0xA0, 0x1A, 0x00, 0x90, +0xA8, 0x08, 0xA1, 0x21, 0x91, 0x39, 0xC1, 0x87, +0x02, 0x0E, 0x0E, 0xF3, 0xFF, 0xA0, 0x00, 0x0E, +0x05, 0xF8, 0x01, 0x19, 0x00, 0x0D, 0x06, 0xF8, +0x00, 0x0E, 0x07, 0xF8, 0xFF, 0xA0, 0x90, 0x03, +0x0F, 0x00, 0x90, 0x49, 0x90, 0x80, 0x90, 0x03, +0x0F, 0x00, 0x91, 0x49, 0x50, 0x80, 0x90, 0x03, +0x0F, 0x00, 0x92, 0x49, 0x10, 0x80, 0x7F, 0x81, +0x00, 0x0E, 0x2C, 0xF8, 0x00, 0x0E, 0x2D, 0xF8, +0x01, 0x0E, 0x2E, 0xF8, 0x01, 0x0E, 0x2F, 0xF8, +0x00, 0x0E, 0x38, 0xF8, 0x00, 0x0E, 0x39, 0xF8, +0x08, 0x0E, 0x3A, 0xF8, 0x01, 0x0E, 0x3B, 0xF8, +0x00, 0x1A, 0x07, 0x15, 0x10, 0x1A, 0x07, 0x1C, +0x20, 0x1A, 0x06, 0x06, 0x5F, 0x82, 0x00, 0x0E, +0x2C, 0xF8, 0x00, 0x0E, 0x2D, 0xF8, 0x01, 0x0E, +0x2E, 0xF8, 0x01, 0x0E, 0x2F, 0xF8, 0x00, 0x0E, +0x38, 0xF8, 0x00, 0x0E, 0x39, 0xF8, 0x08, 0x0E, +0x3A, 0xF8, 0x01, 0x0E, 0x3B, 0xF8, 0x00, 0x1A, +0x07, 0xD5, 0x10, 0x1A, 0x07, 0xDC, 0x20, 0x1A, +0x06, 0xC6, 0xEF, 0x80, 0x00, 0x0E, 0x2C, 0xF8, +0x00, 0x0E, 0x2D, 0xF8, 0x01, 0x0E, 0x2E, 0xF8, +0x01, 0x0E, 0x2F, 0xF8, 0x00, 0x1A, 0x07, 0x07, +0x10, 0x1A, 0x07, 0x07, 0x20, 0x1A, 0x06, 0x06, +0x00, 0x0D, 0x23, 0xF8, 0x01, 0x0D, 0x24, 0xF8, +0x02, 0x0D, 0x25, 0xF8, 0x01, 0x0E, 0x20, 0xF8, +0xFF, 0xA0, 0x30, 0x1A, 0x14, 0x00, 0xB0, 0x1A, +0xFC, 0x0C, 0xB0, 0x0B, 0xB1, 0x21, 0x31, 0x39, +0xC1, 0x87, 0x60, 0x19, 0x00, 0x19, 0x70, 0x03, +0x56, 0x00, 0x06, 0xC0, 0x61, 0x21, 0x67, 0x48, +0xC1, 0x87, 0x30, 0x03, 0x55, 0x00, 0xB0, 0x1A, +0xFC, 0x0C, 0xB0, 0x08, 0xB1, 0x21, 0x31, 0x39, +0xC1, 0x87, 0x10, 0x03, 0xE5, 0x00, 0x1F, 0x51, +0xF0, 0xA0, 0xFF, 0xFF, 0x80, 0x03, 0xA5, 0x00, +0x10, 0x03, 0xA9, 0x00, 0x20, 0x1A, 0xFC, 0x0C, +0xC0, 0x03, 0xA8, 0x00, 0xC0, 0x49, 0x31, 0x80, +0x21, 0x20, 0x20, 0x0B, 0x8F, 0x80, 0x30, 0x1A, +0x14, 0x00, 0x02, 0x00, 0x01, 0xC8, 0x20, 0x08, +0x21, 0x21, 0x31, 0x39, 0xA1, 0x87, 0x70, 0x1A, +0xAB, 0x00, 0xC0, 0x49, 0x41, 0x80, 0x10, 0x03, +0xA9, 0x00, 0x07, 0x00, 0x3F, 0x80, 0x00, 0x03, +0xA9, 0x00, 0x17, 0x00, 0xB0, 0x03, 0xAA, 0x00, +0x20, 0x1A, 0xFC, 0x0C, 0x10, 0x4A, 0x14, 0x00, +0x2C, 0x80, 0x10, 0x1A, 0x13, 0x00, 0x21, 0x20, +0x32, 0x00, 0x00, 0x4A, 0x10, 0x00, 0x1C, 0x80, +0x0F, 0x19, 0x30, 0xC0, 0x23, 0x08, 0xC0, 0x49, +0x11, 0x80, 0x01, 0x21, 0xC0, 0x49, 0x10, 0x80, +0x11, 0x21, 0xB1, 0x39, 0x91, 0x86, 0x81, 0x39, +0xF0, 0xA0, 0xFF, 0xFF, 0x71, 0x21, 0x9F, 0x85, +0x00, 0x03, 0xE7, 0x0A, 0x01, 0x49, 0xF0, 0xA0, +0xFF, 0xFF, 0x0F, 0x98, 0x88, 0x0A, 0x0F, 0x98, +0xD2, 0x0C, 0x0F, 0x98, 0x4A, 0x08, 0x0F, 0x98, +0x2E, 0x0A, 0x0F, 0x98, 0xD2, 0x0C, 0x0F, 0x98, +0x5B, 0x0C, 0x0F, 0x98, 0xD2, 0x0C, 0x0F, 0x98, +0xA7, 0x0C, 0x0F, 0x98, 0xCD, 0x0C, 0x0F, 0x98, +0xA7, 0x0C, 0x0F, 0x98, 0xCD, 0x0C, 0x00, 0x0E, +0x0D, 0xF3, 0x50, 0x03, 0x6D, 0x00, 0x40, 0x1A, +0x9E, 0x07, 0xA0, 0x03, 0x10, 0x00, 0xB0, 0x1A, +0x00, 0x80, 0xC0, 0x1A, 0x35, 0x07, 0x70, 0x1A, +0x10, 0x0D, 0x90, 0x19, 0x01, 0x0E, 0xE8, 0x0A, +0x2C, 0x00, 0x12, 0x18, 0x10, 0x62, 0xFF, 0x00, +0x15, 0x48, 0xEB, 0x81, 0x3B, 0x00, 0x00, 0x03, +0x20, 0x01, 0xFF, 0xFF, 0x30, 0x78, 0x00, 0x03, +0x6C, 0x00, 0x00, 0x49, 0x30, 0x80, 0x34, 0x48, +0xCA, 0x80, 0x2F, 0x81, 0x34, 0x48, 0x0D, 0x88, +0xCD, 0x0B, 0x00, 0x0E, 0xE8, 0x0A, 0x20, 0x62, +0x00, 0xFF, 0x11, 0x21, 0x21, 0x68, 0xC2, 0x08, +0x7F, 0x80, 0x00, 0x0E, 0xE8, 0x0A, 0x20, 0x62, +0x00, 0xFF, 0x11, 0x39, 0x21, 0x68, 0xC2, 0x08, +0x91, 0x21, 0xB1, 0x21, 0x2C, 0x00, 0x12, 0x18, +0x18, 0x79, 0x15, 0x48, 0xFB, 0x81, 0x3B, 0x00, +0x00, 0x03, 0x20, 0x01, 0xFF, 0xFF, 0x30, 0x78, +0x00, 0x03, 0x6C, 0x00, 0x00, 0x49, 0x30, 0x80, +0x34, 0x48, 0xCA, 0x80, 0x3F, 0x81, 0x34, 0x48, +0xDD, 0x87, 0x00, 0x0E, 0xE8, 0x0A, 0x20, 0x62, +0xFF, 0x00, 0x11, 0x21, 0x18, 0x7B, 0x21, 0x68, +0xC2, 0x08, 0x8F, 0x80, 0x00, 0x0E, 0xE8, 0x0A, +0x20, 0x62, 0xFF, 0x00, 0x11, 0x39, 0x18, 0x7B, +0x21, 0x68, 0xC2, 0x08, 0xB1, 0x21, 0xC1, 0x21, +0xA1, 0x39, 0x01, 0x88, 0x0F, 0x0B, 0x00, 0x03, +0xE8, 0x0A, 0x00, 0x49, 0x00, 0x88, 0xF0, 0x0A, +0x0A, 0x0E, 0xBC, 0x01, 0x01, 0x0E, 0xE7, 0x0A, +0x0F, 0x98, 0x31, 0x0C, 0x0F, 0x98, 0x7E, 0x08, +0xA0, 0x03, 0x21, 0x01, 0xB0, 0x03, 0x0C, 0x00, +0xBF, 0x51, 0x10, 0x80, 0xA1, 0x19, 0x0A, 0x0D, +0xBD, 0x0D, 0x0F, 0x88, 0xA1, 0x0C, 0xA0, 0x03, +0x0D, 0x00, 0xA0, 0xC1, 0xA2, 0xC1, 0x0A, 0x0D, +0x0D, 0x00, 0x0F, 0x98, 0x88, 0x0A, 0x0F, 0x98, +0xD2, 0x0C, 0x0F, 0x98, 0x4A, 0x08, 0x0F, 0x98, +0x2E, 0x0A, 0xA0, 0x03, 0x10, 0x00, 0xB0, 0x1A, +0x35, 0x07, 0x00, 0x03, 0x6E, 0x00, 0x20, 0x03, +0x6C, 0x00, 0x20, 0x49, 0x20, 0x80, 0x00, 0x03, +0x6D, 0x00, 0x10, 0x18, 0x18, 0x7B, 0x01, 0x68, +0xB0, 0x08, 0xB1, 0x21, 0xA1, 0x39, 0xC1, 0x87, +0x0F, 0x98, 0xD2, 0x0C, 0x0F, 0x98, 0x5B, 0x0C, +0x0F, 0x98, 0xD2, 0x0C, 0x0F, 0x98, 0xA7, 0x0C, +0x0F, 0x98, 0xCD, 0x0C, 0x0F, 0x98, 0xA7, 0x0C, +0x0F, 0x98, 0xCD, 0x0C, 0x00, 0x0E, 0x0D, 0xF3, +0x40, 0x03, 0x6B, 0x00, 0xA0, 0x03, 0x10, 0x00, +0xB0, 0x1A, 0x00, 0x80, 0xC0, 0x1A, 0x35, 0x07, +0x70, 0x1A, 0x10, 0x0D, 0x90, 0x19, 0x01, 0x0E, +0xE8, 0x0A, 0x30, 0x1A, 0x7F, 0x00, 0x00, 0x03, +0x6C, 0x00, 0x00, 0x49, 0x10, 0x80, 0x30, 0x19, +0x2C, 0x00, 0x12, 0x18, 0x10, 0x62, 0xFF, 0x00, +0x13, 0x48, 0x00, 0x88, 0x16, 0x0C, 0x3B, 0x00, +0x00, 0x03, 0x20, 0x01, 0xFF, 0xFF, 0x30, 0x78, +0x00, 0x03, 0x6C, 0x00, 0x00, 0x49, 0x30, 0x80, +0x34, 0x48, 0xBA, 0x80, 0x1F, 0x81, 0x34, 0x48, +0xDD, 0x87, 0x00, 0x0E, 0xE8, 0x0A, 0x20, 0x62, +0x00, 0xFF, 0x11, 0x21, 0x21, 0x68, 0xC2, 0x08, +0x7F, 0x80, 0x00, 0x0E, 0xE8, 0x0A, 0x20, 0x62, +0x00, 0xFF, 0x11, 0x39, 0x21, 0x68, 0xC2, 0x08, +0x91, 0x21, 0xB1, 0x21, 0x30, 0x1A, 0x7F, 0x00, +0x00, 0x03, 0x6C, 0x00, 0x00, 0x49, 0x10, 0x80, +0x30, 0x19, 0x2C, 0x00, 0x12, 0x18, 0x18, 0x79, +0x13, 0x48, 0x90, 0x82, 0x3B, 0x00, 0x00, 0x03, +0x20, 0x01, 0xFF, 0xFF, 0x30, 0x78, 0x00, 0x03, +0x6C, 0x00, 0x00, 0x49, 0x30, 0x80, 0x34, 0x48, +0xCA, 0x80, 0x3F, 0x81, 0x34, 0x48, 0xDD, 0x87, +0x00, 0x0E, 0xE8, 0x0A, 0x20, 0x62, 0xFF, 0x00, +0x11, 0x21, 0x18, 0x7B, 0x21, 0x68, 0xC2, 0x08, +0x8F, 0x80, 0x00, 0x0E, 0xE8, 0x0A, 0x20, 0x62, +0xFF, 0x00, 0x11, 0x39, 0x18, 0x7B, 0x21, 0x68, +0xC2, 0x08, 0xB1, 0x21, 0xC1, 0x21, 0xA1, 0x39, +0x01, 0x88, 0xB4, 0x0B, 0x00, 0x03, 0xE8, 0x0A, +0x00, 0x49, 0x00, 0x88, 0x97, 0x0B, 0x0F, 0x98, +0x31, 0x0C, 0xA0, 0x03, 0x0D, 0x00, 0xA0, 0xC9, +0xA2, 0xC9, 0x0A, 0x0D, 0x0D, 0x00, 0x00, 0x03, +0xBD, 0x01, 0x01, 0x49, 0x21, 0x80, 0x01, 0x0E, +0xEA, 0x0D, 0x0F, 0x98, 0x7E, 0x08, 0xA0, 0x03, +0x21, 0x01, 0xB0, 0x03, 0x0C, 0x00, 0xBF, 0x51, +0x10, 0x80, 0xA1, 0x19, 0x0A, 0x0D, 0xBD, 0x0D, +0x0F, 0x88, 0xA1, 0x0C, 0x0F, 0x98, 0xD2, 0x0C, +0x20, 0x03, 0x6C, 0x00, 0x20, 0x49, 0xF0, 0xA0, +0xFF, 0xFF, 0x00, 0x0E, 0x0E, 0xF3, 0x50, 0x03, +0x6D, 0x00, 0x90, 0x03, 0x10, 0x00, 0xC0, 0x1A, +0x35, 0x07, 0xA0, 0x1A, 0x00, 0x90, 0x0C, 0x00, +0xFF, 0xFF, 0x00, 0x62, 0xFF, 0x00, 0x05, 0x48, +0x11, 0x80, 0x00, 0x19, 0x2C, 0x00, 0x12, 0x18, +0x10, 0x62, 0x00, 0xFF, 0x28, 0x79, 0x25, 0x48, +0x11, 0x80, 0x10, 0x19, 0x01, 0x68, 0xC0, 0x08, +0xA0, 0x08, 0xC1, 0x21, 0xA1, 0x21, 0x91, 0x39, +0xA1, 0x86, 0x02, 0x0E, 0x0E, 0xF3, 0xFF, 0xA0, +0x00, 0x0E, 0x0E, 0xF3, 0x90, 0x03, 0x10, 0x00, +0xC0, 0x1A, 0x35, 0x07, 0xA0, 0x1A, 0x00, 0x90, +0x0C, 0x00, 0xA0, 0x08, 0xC1, 0x21, 0xA1, 0x21, +0x91, 0x39, 0xA1, 0x87, 0x02, 0x0E, 0x0E, 0xF3, +0xFF, 0xA0, 0x00, 0x0E, 0x0E, 0xF3, 0x90, 0x1A, +0x4C, 0x00, 0xC0, 0x1A, 0x35, 0x07, 0xA0, 0x1A, +0x00, 0x90, 0xC8, 0x21, 0xA8, 0x21, 0x0C, 0x00, +0xA0, 0x08, 0xA1, 0x21, 0x1C, 0x18, 0x17, 0x61, +0x16, 0x49, 0x10, 0x80, 0xA0, 0x08, 0xA1, 0x21, +0xC2, 0x21, 0x91, 0x39, 0x41, 0x87, 0x02, 0x0E, +0x0E, 0xF3, 0xFF, 0xA0, 0x00, 0x0E, 0x0E, 0xF3, +0x90, 0x1A, 0x50, 0x00, 0xC0, 0x1A, 0x35, 0x07, +0xA0, 0x1A, 0x00, 0x90, 0x0C, 0x00, 0xA0, 0x08, +0xA1, 0x21, 0xA0, 0x08, 0xA1, 0x21, 0xC2, 0x21, +0x91, 0x39, 0x81, 0x87, 0x02, 0x0E, 0x0E, 0xF3, +0xFF, 0xA0, 0x01, 0x0E, 0x09, 0xF8, 0xFF, 0xA0, +0x02, 0x0E, 0x09, 0xF8, 0xFF, 0xA0, 0x03, 0x0E, +0x09, 0xF8, 0xFF, 0xA0, 0xA0, 0x03, 0xBD, 0x0D, +0xA1, 0x49, 0x20, 0x80, 0xA2, 0x49, 0xA0, 0x80, +0x01, 0x0E, 0xBD, 0x0D, 0x00, 0x0E, 0x02, 0xF8, +0x9F, 0x80, 0x01, 0x0E, 0xBD, 0x0D, 0x01, 0x0E, +0x02, 0xF8, 0x4F, 0x80, 0x02, 0x0E, 0xBD, 0x0D, +0x02, 0x0E, 0x02, 0xF8, 0x02, 0x0E, 0x0B, 0xF3, +0x02, 0x0E, 0x0C, 0xF3, 0x02, 0x0E, 0x0D, 0xF3, +0x01, 0x0E, 0x00, 0xF8, 0xFF, 0xA0, 0x02, 0x0E, +0x01, 0xF8, 0xFF, 0xA0, 0x00, 0x03, 0x00, 0xF8, +0x01, 0x51, 0xC1, 0x87, 0x00, 0x0E, 0x0D, 0xF3, +0xFF, 0xA0, 0x02, 0x0E, 0x0D, 0xF3, 0x00, 0x0E, +0x01, 0xF8, 0xFF, 0xA0, 0x00, 0x03, 0x00, 0xF8, +0x00, 0x51, 0xC1, 0x87, 0xFF, 0xA0, 0x0F, 0x98, +0xBE, 0x0C, 0x0F, 0x98, 0xC1, 0x0C, 0x02, 0x0E, +0x00, 0xF8, 0xFF, 0xA0, 0xA0, 0x03, 0xBD, 0x0D, +0xA1, 0x49, 0xC1, 0x80, 0x0F, 0x98, 0xCD, 0x0C, +0x0F, 0x98, 0xD2, 0x0C, 0x00, 0x03, 0x01, 0xF8, +0x01, 0x61, 0x00, 0x0D, 0xF7, 0x0A, 0x00, 0x0E, +0x0D, 0xF3, 0x6F, 0x80, 0x0F, 0x98, 0xE5, 0x06, +0x0F, 0x98, 0xBE, 0x0C, 0x0F, 0x98, 0xC1, 0x0C, +0xB0, 0x1A, 0x00, 0x80, 0xC0, 0x03, 0xC2, 0x01, +0x10, 0x03, 0x56, 0x00, 0x00, 0x1A, 0x10, 0x00, +0x01, 0x38, 0x50, 0x03, 0x20, 0x01, 0x10, 0x03, +0x56, 0x00, 0x1C, 0x49, 0xBD, 0x80, 0xD0, 0x1A, +0x40, 0x01, 0x9B, 0x00, 0xFF, 0xFF, 0x95, 0x78, +0xC9, 0x08, 0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, +0x81, 0x87, 0x3F, 0x82, 0x10, 0x03, 0x56, 0x00, +0x18, 0x49, 0x0D, 0x81, 0xD0, 0x1A, 0x40, 0x01, +0x9B, 0x00, 0xFF, 0xFF, 0x95, 0x78, 0xC9, 0x08, +0xB1, 0x21, 0x1B, 0x18, 0x13, 0x61, 0x13, 0x49, +0x11, 0x80, 0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, +0x31, 0x87, 0xFF, 0x80, 0xD0, 0x1A, 0x40, 0x01, +0x9B, 0x00, 0xFF, 0xFF, 0x95, 0x78, 0xC9, 0x08, +0xB1, 0x21, 0x1B, 0x18, 0x13, 0x61, 0x12, 0x49, +0x11, 0x80, 0xB2, 0x21, 0xC1, 0x21, 0xD1, 0x39, +0x31, 0x87, 0xB0, 0x03, 0x0C, 0x00, 0xBF, 0x51, +0x30, 0x80, 0x0F, 0x98, 0x2E, 0x0A, 0x2F, 0x80, +0x0F, 0x98, 0x18, 0x10, 0x02, 0x0E, 0x0D, 0xF3, +0xA0, 0x03, 0x21, 0x01, 0xB0, 0x03, 0x0C, 0x00, +0xBF, 0x51, 0x10, 0x80, 0xA1, 0x19, 0xA1, 0x49, +0x61, 0x80, 0x01, 0x0E, 0xBD, 0x0D, 0x0F, 0x98, +0x7E, 0x08, 0x0F, 0x88, 0xA7, 0x0C, 0xA2, 0x49, +0x41, 0x80, 0x02, 0x0E, 0xBD, 0x0D, 0x0F, 0x88, +0xC8, 0x0C, 0xA0, 0x03, 0xBC, 0x0D, 0xA0, 0x49, +0xB0, 0x80, 0x00, 0x03, 0xBD, 0x0D, 0x02, 0x49, +0x00, 0x88, 0xC8, 0x0C, 0x0F, 0x98, 0x7E, 0x08, +0x02, 0x0E, 0xBD, 0x0D, 0x0F, 0x88, 0xB1, 0x0C, +0xA0, 0x03, 0xBD, 0x0D, 0xA1, 0x49, 0x80, 0x80, +0x01, 0x0E, 0xBD, 0x0D, 0x0F, 0x98, 0xD2, 0x0C, +0x0F, 0x98, 0x7E, 0x08, 0x0F, 0x88, 0xA7, 0x0C, +0x0F, 0x98, 0x7E, 0x08, 0x0F, 0x88, 0xA7, 0x0C, +0xCB, 0x18, 0x80, 0x1A, 0xFC, 0x0C, 0x60, 0x03, +0x56, 0x00, 0x10, 0x1A, 0x10, 0x00, 0xD0, 0x1A, +0x40, 0x01, 0x6C, 0x49, 0x8A, 0x80, 0xD0, 0x1A, +0xF0, 0x00, 0x1C, 0x19, 0x68, 0x49, 0x3A, 0x80, +0xD0, 0x1A, 0xA0, 0x00, 0x18, 0x19, 0x71, 0x18, +0x76, 0x38, 0x20, 0x1A, 0x10, 0x00, 0x30, 0x1A, +0xE8, 0x00, 0x60, 0x1A, 0xC7, 0x0D, 0x03, 0x00, +0x00, 0x62, 0xFF, 0x00, 0x60, 0x08, 0x61, 0x21, +0x03, 0x00, 0xFF, 0xFF, 0x08, 0x79, 0x60, 0x08, +0x61, 0x21, 0x31, 0x21, 0x21, 0x39, 0x31, 0x87, +0x30, 0x1A, 0xC7, 0x0D, 0x60, 0x19, 0x98, 0x00, +0x50, 0x03, 0x56, 0x00, 0x40, 0x1A, 0x24, 0x0D, +0x21, 0x18, 0x7B, 0x00, 0x47, 0x08, 0xB1, 0x21, +0x41, 0x21, 0x21, 0x39, 0xA1, 0x87, 0x40, 0x1A, +0x24, 0x0D, 0x96, 0x50, 0x21, 0x80, 0xC0, 0x0B, +0x6F, 0x80, 0x03, 0x00, 0x00, 0x62, 0xFF, 0x00, +0x04, 0x20, 0xA0, 0x00, 0xCA, 0x08, 0x61, 0x21, +0x31, 0x21, 0x65, 0x48, 0x11, 0x81, 0x30, 0x1A, +0xC7, 0x0D, 0x60, 0x19, 0x81, 0x21, 0x98, 0x00, +0x40, 0x1A, 0x24, 0x0D, 0x21, 0x18, 0x7B, 0x00, +0x47, 0x08, 0xB1, 0x21, 0x41, 0x21, 0x21, 0x39, +0xA1, 0x87, 0x40, 0x1A, 0x24, 0x0D, 0xFF, 0xFF, +0xC1, 0x21, 0xD1, 0x39, 0xE1, 0x85, 0xFF, 0xA0, +0x80, 0x19, 0x90, 0x19, 0x00, 0x0E, 0xF6, 0x0D, +0x00, 0x0E, 0xF7, 0x0D, 0xD0, 0x03, 0x06, 0x02, +0xB0, 0x1A, 0xD5, 0x07, 0xC0, 0x1A, 0xB2, 0x04, +0x40, 0x03, 0x3E, 0x00, 0x50, 0x03, 0x40, 0x00, +0x20, 0x19, 0x30, 0x19, 0x00, 0x1A, 0x00, 0x20, +0x1B, 0x00, 0xFF, 0xFF, 0x01, 0x38, 0x1C, 0x00, +0xFF, 0xFF, 0x01, 0x38, 0x04, 0x48, 0x1C, 0x80, +0x21, 0x21, 0x05, 0x48, 0x1A, 0x80, 0x31, 0x21, +0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, 0xE1, 0x86, +0x10, 0x03, 0x3F, 0x00, 0x21, 0x48, 0x1C, 0x80, +0x81, 0x19, 0x10, 0x03, 0x41, 0x00, 0x31, 0x48, +0x1C, 0x80, 0x91, 0x19, 0x00, 0x03, 0xD0, 0x0A, +0x00, 0x49, 0x11, 0x80, 0x90, 0x19, 0x98, 0x60, +0x90, 0x49, 0x60, 0x80, 0x00, 0x03, 0x3D, 0x00, +0x00, 0x0D, 0xEE, 0x0D, 0x05, 0x0E, 0xEF, 0x0D, +0x00, 0x03, 0xEE, 0x0D, 0x00, 0x49, 0x30, 0x80, +0x01, 0x39, 0x00, 0x0D, 0xEE, 0x0D, 0xFF, 0xA0, +0x00, 0x0E, 0x69, 0x0A, 0x00, 0x0E, 0x6B, 0x0A, +0x00, 0x0E, 0x6A, 0x0A, 0x00, 0x0E, 0xF6, 0x0D, +0x00, 0x0E, 0xF7, 0x0D, 0xD0, 0x03, 0x06, 0x02, +0xB0, 0x1A, 0xD5, 0x07, 0xC0, 0x1A, 0x15, 0x09, +0xA0, 0x03, 0xE1, 0x00, 0x90, 0x03, 0xD8, 0x00, +0x0B, 0x00, 0x1C, 0x00, 0xFF, 0xFF, 0x01, 0x38, +0x0F, 0x51, 0x10, 0x80, 0x00, 0x31, 0x0A, 0x48, +0xCD, 0x80, 0x10, 0x03, 0x69, 0x0A, 0xFF, 0xFF, +0x11, 0x21, 0x01, 0x0D, 0x69, 0x0A, 0x10, 0x03, +0x6B, 0x0A, 0xFF, 0xFF, 0x10, 0x20, 0x01, 0x0D, +0x6B, 0x0A, 0x09, 0x48, 0x6D, 0x80, 0x10, 0x03, +0x6A, 0x0A, 0xFF, 0xFF, 0x11, 0x21, 0x01, 0x0D, +0x6A, 0x0A, 0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, +0xF1, 0x85, 0x00, 0x03, 0x69, 0x0A, 0x80, 0x03, +0xE2, 0x00, 0x08, 0x48, 0x0C, 0x82, 0x00, 0x03, +0x6A, 0x0A, 0x80, 0x03, 0xD9, 0x00, 0x08, 0x48, +0xAA, 0x81, 0x00, 0x03, 0x6B, 0x0A, 0x80, 0x03, +0xE3, 0x00, 0x08, 0x48, 0x4C, 0x81, 0x00, 0x03, +0x6B, 0x0A, 0x80, 0x03, 0xE4, 0x00, 0x00, 0x0E, +0x19, 0xF9, 0x00, 0x0D, 0x18, 0xF9, 0x00, 0x0E, +0x1B, 0xF9, 0x08, 0x0D, 0x1A, 0xF9, 0x00, 0x03, +0x18, 0xF9, 0x00, 0x4A, 0xC8, 0x00, 0x4D, 0x80, +0x00, 0x1A, 0xC8, 0x00, 0x1F, 0x80, 0x00, 0x19, +0x80, 0x03, 0x13, 0x01, 0xFF, 0xFF, 0x80, 0x20, +0xFF, 0xA0, 0x0F, 0x98, 0x18, 0x10, 0xD0, 0x03, +0x06, 0x02, 0x60, 0x1A, 0x20, 0x00, 0x56, 0x18, +0x67, 0x38, 0x0C, 0x00, 0x00, 0x0D, 0x10, 0xF9, +0x0F, 0x51, 0x30, 0x19, 0x10, 0x80, 0x31, 0x39, +0x03, 0x0D, 0x11, 0xF9, 0xFF, 0xFF, 0x07, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0xFF, 0xFF, +0x00, 0x03, 0x10, 0xF9, 0x10, 0x03, 0x11, 0xF9, +0xFF, 0xFF, 0x00, 0x0D, 0x00, 0xF9, 0x01, 0x0D, +0x01, 0xF9, 0x0B, 0x00, 0x00, 0x0D, 0x10, 0xF9, +0x0F, 0x51, 0x30, 0x19, 0x10, 0x80, 0x31, 0x39, +0x03, 0x0D, 0x11, 0xF9, 0xFF, 0xFF, 0x06, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0xFF, 0xFF, +0x00, 0x03, 0x10, 0xF9, 0x10, 0x03, 0x11, 0xF9, +0xFF, 0xFF, 0x00, 0x0D, 0x02, 0xF9, 0x01, 0x0D, +0x03, 0xF9, 0xFF, 0xFF, 0x00, 0x03, 0x00, 0xF9, +0x10, 0x03, 0x01, 0xF9, 0xFF, 0xFF, 0x00, 0x0D, +0x18, 0xF9, 0x01, 0x0D, 0x19, 0xF9, 0x05, 0x0D, +0x1A, 0xF9, 0x00, 0x0E, 0x1B, 0xF9, 0xFF, 0xFF, +0x00, 0x03, 0x18, 0xF9, 0xB0, 0x08, 0xB1, 0x21, +0xC1, 0x21, 0xD1, 0x39, 0x01, 0x88, 0x74, 0x0E, +0xFF, 0xA0, 0xD0, 0x03, 0x06, 0x02, 0x0B, 0x00, +0xC0, 0x08, 0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, +0xA1, 0x87, 0xFF, 0xA0, 0xD0, 0x03, 0x06, 0x02, +0xA0, 0x03, 0x4C, 0x00, 0x00, 0x0E, 0x62, 0x0A, +0x00, 0x0E, 0x63, 0x0A, 0x00, 0x0E, 0x00, 0xF9, +0x00, 0x0E, 0x01, 0xF9, 0x00, 0x0E, 0x02, 0xF9, +0x00, 0x0E, 0x03, 0xF9, 0x0B, 0x00, 0x1C, 0x00, +0xFF, 0xFF, 0xC0, 0x08, 0x01, 0x38, 0x0F, 0x51, +0x10, 0x80, 0x00, 0x31, 0x90, 0x03, 0x62, 0x0A, +0x09, 0x48, 0x2C, 0x80, 0x00, 0x0D, 0x62, 0x0A, +0x20, 0x03, 0x00, 0xF9, 0x10, 0x03, 0x01, 0xF9, +0x02, 0x0D, 0x00, 0xF9, 0x01, 0x0D, 0x01, 0xF9, +0x00, 0x0D, 0x02, 0xF9, 0x00, 0x0E, 0x03, 0xF9, +0x0A, 0x48, 0x6D, 0x80, 0x10, 0x03, 0x63, 0x0A, +0xFF, 0xFF, 0x11, 0x21, 0x01, 0x0D, 0x63, 0x0A, +0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, 0xA1, 0x85, +0x00, 0x03, 0x00, 0xF9, 0x10, 0x03, 0x01, 0xF9, +0x20, 0x03, 0x06, 0x02, 0xFF, 0xFF, 0x0F, 0x98, +0x17, 0x16, 0x00, 0x0D, 0x12, 0x02, 0xFF, 0xA0, +0xB0, 0x03, 0x21, 0x01, 0xB2, 0x49, 0xAC, 0x82, +0xB0, 0x1A, 0xD5, 0x07, 0xC0, 0x1A, 0xF8, 0x0D, +0x0F, 0x98, 0x6C, 0x0E, 0xB0, 0x1A, 0xD5, 0x07, +0xC0, 0x1A, 0xF8, 0x0D, 0x0F, 0x98, 0xBC, 0x0E, +0xB0, 0x03, 0x21, 0x01, 0xA0, 0x03, 0xF4, 0x0D, +0xFF, 0xFF, 0xA1, 0x21, 0xAB, 0x48, 0x4B, 0x80, +0x0A, 0x0D, 0xF4, 0x0D, 0x91, 0x19, 0xFF, 0xA0, +0xB0, 0x1A, 0xD5, 0x07, 0x0F, 0x98, 0xC5, 0x0E, +0xA0, 0x03, 0x62, 0x0A, 0x0A, 0x0D, 0x14, 0x00, +0xA0, 0x03, 0x12, 0x02, 0x0A, 0x0D, 0x9B, 0x00, +0xA0, 0x03, 0x63, 0x0A, 0x0A, 0x0D, 0x13, 0x00, +0x90, 0x19, 0xFF, 0xA0, 0xB0, 0x1A, 0xD5, 0x07, +0xC0, 0x1A, 0xF8, 0x0D, 0x0F, 0x98, 0x6C, 0x0E, +0xB0, 0x1A, 0xD5, 0x07, 0xC0, 0x1A, 0xF8, 0x0D, +0x0F, 0x98, 0xC5, 0x0E, 0xA0, 0x03, 0x62, 0x0A, +0x0A, 0x0D, 0x14, 0x00, 0xA0, 0x03, 0x12, 0x02, +0x0A, 0x0D, 0x9B, 0x00, 0xA0, 0x03, 0x63, 0x0A, +0x0A, 0x0D, 0x13, 0x00, 0x90, 0x19, 0xFF, 0xA0, +0xB0, 0x1A, 0xD5, 0x07, 0x0B, 0x0D, 0xC2, 0x01, +0x0F, 0x98, 0xD9, 0x0C, 0xB0, 0x1A, 0xD5, 0x07, +0x0F, 0x98, 0x6B, 0x0D, 0xA0, 0x1A, 0xD5, 0x07, +0x0F, 0x98, 0x88, 0x14, 0xA0, 0x1A, 0x15, 0x09, +0x0F, 0x98, 0x88, 0x14, 0x0F, 0x98, 0x0B, 0x0E, +0xD0, 0x03, 0x06, 0x02, 0xB0, 0x1A, 0xD5, 0x07, +0xC0, 0x1A, 0x15, 0x09, 0x00, 0x0E, 0xF3, 0x0D, +0x00, 0x0E, 0x00, 0xF9, 0x00, 0x0E, 0x01, 0xF9, +0x00, 0x0E, 0x02, 0xF9, 0x00, 0x0E, 0x03, 0xF9, +0x0B, 0x00, 0x1C, 0x00, 0xFF, 0xFF, 0xC0, 0x08, +0x01, 0x38, 0x0F, 0x51, 0x10, 0x80, 0x00, 0x31, +0x20, 0x03, 0x00, 0xF9, 0x10, 0x03, 0x01, 0xF9, +0x02, 0x0D, 0x00, 0xF9, 0x01, 0x0D, 0x01, 0xF9, +0x00, 0x0D, 0x02, 0xF9, 0x00, 0x0E, 0x03, 0xF9, +0x10, 0x03, 0x62, 0x0A, 0x01, 0x48, 0x2C, 0x80, +0x00, 0x0D, 0x62, 0x0A, 0x0A, 0x48, 0x6D, 0x80, +0x10, 0x03, 0x63, 0x0A, 0xFF, 0xFF, 0x11, 0x21, +0x01, 0x0D, 0x63, 0x0A, 0x08, 0x48, 0x6D, 0x80, +0x10, 0x03, 0xF3, 0x0D, 0xFF, 0xFF, 0x11, 0x21, +0x01, 0x0D, 0xF3, 0x0D, 0xB1, 0x21, 0xC1, 0x21, +0xD1, 0x39, 0x21, 0x85, 0x00, 0x03, 0x00, 0xF9, +0x10, 0x03, 0x01, 0xF9, 0x20, 0x03, 0x06, 0x02, +0xFF, 0xFF, 0x0F, 0x98, 0x17, 0x16, 0x00, 0x0D, +0x9A, 0x00, 0x10, 0x03, 0x62, 0x0A, 0x01, 0x0D, +0x99, 0x00, 0x0F, 0x98, 0xC7, 0x0D, 0xB0, 0x03, +0x0C, 0x00, 0xBF, 0x51, 0xA1, 0x80, 0x00, 0x0E, +0xF4, 0x0D, 0xA0, 0x03, 0x62, 0x0A, 0x0A, 0x0D, +0x14, 0x00, 0xA0, 0x03, 0x63, 0x0A, 0x0A, 0x0D, +0x13, 0x00, 0x00, 0x03, 0x14, 0x01, 0xA0, 0x03, +0xF3, 0x0D, 0x0A, 0x0D, 0xF2, 0x0D, 0xB0, 0x03, +0x0C, 0x00, 0xBE, 0x51, 0x70, 0x80, 0xA0, 0x48, +0x5C, 0x80, 0x00, 0x03, 0x11, 0x01, 0x00, 0x0D, +0xF5, 0x0D, 0xFF, 0xA0, 0xA0, 0x03, 0x0C, 0x00, +0xAF, 0x51, 0x50, 0x80, 0x0F, 0x98, 0x07, 0x0F, +0x90, 0x49, 0xF1, 0xA0, 0xFF, 0xFF, 0xB0, 0x03, +0x0C, 0x00, 0xBF, 0x51, 0xA1, 0x80, 0xA0, 0x03, +0x99, 0x00, 0x0A, 0x0D, 0x14, 0x00, 0xA0, 0x03, +0x9A, 0x00, 0x0A, 0x0D, 0x12, 0x02, 0x0A, 0x0D, +0x9B, 0x00, 0x00, 0x0E, 0xF3, 0x0D, 0x00, 0x0E, +0xF4, 0x0D, 0xB0, 0x1A, 0xD5, 0x07, 0xD0, 0x03, +0x06, 0x02, 0xC0, 0x1A, 0x32, 0x02, 0x9B, 0x00, +0x00, 0x03, 0x15, 0x01, 0x00, 0x49, 0x10, 0x80, +0x91, 0x7B, 0x40, 0x1A, 0x00, 0x20, 0x49, 0x38, +0xAC, 0x00, 0xC4, 0x08, 0x50, 0x03, 0xBC, 0x01, +0x50, 0x49, 0x21, 0x81, 0x50, 0x03, 0x46, 0x00, +0x50, 0x49, 0xE0, 0x80, 0x5A, 0x18, 0x54, 0x38, +0x45, 0x18, 0x00, 0x03, 0x47, 0x00, 0x50, 0x48, +0x1D, 0x80, 0x40, 0x18, 0x00, 0x31, 0x50, 0x48, +0x1B, 0x80, 0x40, 0x18, 0xA4, 0x38, 0xCA, 0x08, +0xB1, 0x21, 0xC1, 0x21, 0xD1, 0x39, 0xB1, 0x85, +0xFF, 0xA0, 0x00, 0x0E, 0x05, 0xF8, 0x71, 0x19, +0xA0, 0x03, 0xD0, 0x0A, 0xA0, 0x49, 0xE0, 0x80, +0xA0, 0x03, 0x5D, 0x0A, 0xA0, 0x49, 0xA0, 0x80, +0xA0, 0x03, 0xB1, 0x0A, 0xA1, 0x49, 0x31, 0x80, +0x70, 0x03, 0x26, 0x00, 0xEF, 0x80, 0x70, 0x03, +0x27, 0x00, 0xBF, 0x80, 0x00, 0x03, 0xC6, 0x0A, +0x00, 0x49, 0x40, 0x80, 0x01, 0x39, 0x00, 0x0D, +0xC6, 0x0A, 0x5F, 0x87, 0x70, 0x03, 0x25, 0x00, +0xFF, 0xFF, 0xA0, 0x03, 0x0C, 0x00, 0xAF, 0x51, +0xF1, 0xA0, 0xFF, 0xFF, 0x70, 0x49, 0x00, 0x88, +0x2E, 0x0A, 0x60, 0x1A, 0x20, 0x00, 0x67, 0x38, +0x78, 0x7B, 0x76, 0x68, 0x07, 0x0D, 0x06, 0xF8, +0x05, 0x0E, 0x07, 0xF8, 0xFF, 0xA0, 0x00, 0x03, +0x15, 0x00, 0x00, 0x0D, 0x73, 0x0A, 0x00, 0x03, +0x33, 0x00, 0x00, 0x0D, 0x75, 0x0A, 0x00, 0x03, +0x31, 0x00, 0x00, 0x0D, 0x76, 0x0A, 0x00, 0x03, +0x32, 0x00, 0x00, 0x0D, 0x79, 0x0A, 0x00, 0x03, +0x10, 0x01, 0x00, 0x0D, 0x78, 0x0A, 0x00, 0x03, +0x30, 0x00, 0x10, 0x03, 0xF1, 0x0D, 0xFF, 0xFF, +0x01, 0x20, 0x00, 0x0D, 0x5B, 0x0A, 0x00, 0x03, +0xA6, 0x00, 0x00, 0x0D, 0xC3, 0x0A, 0x00, 0x03, +0x1F, 0x00, 0x00, 0x0D, 0x60, 0x0A, 0x00, 0x03, +0x20, 0x00, 0x00, 0x0D, 0x61, 0x0A, 0x00, 0x03, +0x1D, 0x00, 0x00, 0x0D, 0x5E, 0x0A, 0x00, 0x03, +0x1E, 0x00, 0x00, 0x0D, 0x5F, 0x0A, 0x00, 0x03, +0x2C, 0x00, 0x10, 0x18, 0x20, 0x18, 0x00, 0x62, +0xFF, 0x00, 0x00, 0x0D, 0x2C, 0x02, 0x18, 0x79, +0x1F, 0x61, 0x01, 0x0D, 0x2D, 0x02, 0x2C, 0x79, +0x02, 0x0D, 0x2E, 0x02, 0xFF, 0xA0, 0x00, 0x0E, +0xB3, 0x0D, 0x00, 0x0E, 0xB5, 0x0D, 0x80, 0x03, +0x55, 0x00, 0xFF, 0xFF, 0x81, 0x39, 0x08, 0x0D, +0xB6, 0x0D, 0x90, 0x03, 0x56, 0x00, 0xFF, 0xFF, +0x91, 0x39, 0x09, 0x0D, 0xB4, 0x0D, 0xFF, 0xA0, +0x0F, 0x98, 0x8A, 0x10, 0x10, 0x03, 0xA9, 0x00, +0x20, 0x03, 0xA8, 0x00, 0x20, 0x49, 0x91, 0x80, +0x10, 0x49, 0x31, 0x80, 0x01, 0x0E, 0xB5, 0x0D, +0xFF, 0xA0, 0x81, 0x39, 0x08, 0x0D, 0xB6, 0x0D, +0xFF, 0xA0, 0x10, 0x49, 0x31, 0x80, 0x01, 0x0E, +0xB3, 0x0D, 0xFF, 0xA0, 0x91, 0x39, 0x09, 0x0D, +0xB4, 0x0D, 0xFF, 0xA0, 0x00, 0x0E, 0x31, 0x02, +0x00, 0x03, 0xE5, 0x00, 0x0F, 0x51, 0xC0, 0x80, +0x01, 0x0E, 0x31, 0x02, 0x0F, 0x98, 0x8A, 0x10, +0x0F, 0x98, 0x1F, 0x2A, 0x00, 0x0E, 0x31, 0x02, +0x0F, 0x98, 0x9B, 0x10, 0x0F, 0x88, 0x1F, 0x2A, +0x0F, 0x98, 0x8A, 0x10, 0x0F, 0x88, 0x1F, 0x2A, +0x40, 0x03, 0x5B, 0x0A, 0xB0, 0x1A, 0x85, 0x0D, +0xA0, 0x19, 0x0B, 0x00, 0x04, 0x48, 0x2C, 0x80, +0x01, 0x21, 0xB0, 0x08, 0xC3, 0x21, 0xB1, 0x21, +0xA1, 0x21, 0xAF, 0x49, 0x61, 0x87, 0xFF, 0xA0, +0xB0, 0x1A, 0x85, 0x0D, 0xC0, 0x1A, 0xA3, 0x0D, +0xA0, 0x19, 0x40, 0x03, 0x51, 0x00, 0x50, 0x03, +0x30, 0x00, 0x00, 0x03, 0xF1, 0x0D, 0xFF, 0xFF, +0x40, 0x20, 0x50, 0x20, 0x0B, 0x00, 0x05, 0x48, +0x2C, 0x80, 0xB4, 0x08, 0x2F, 0x80, 0xB0, 0x0B, +0xC0, 0x0B, 0xC1, 0x21, 0xB1, 0x21, 0xA1, 0x21, +0xAF, 0x49, 0x41, 0x87, 0xFF, 0xA0, 0xB0, 0x1A, +0x85, 0x0D, 0xC0, 0x1A, 0xA3, 0x0D, 0xA0, 0x19, +0x50, 0x03, 0x51, 0x00, 0x40, 0x03, 0x30, 0x00, +0x00, 0x03, 0xF1, 0x0D, 0xFF, 0xFF, 0x40, 0x20, +0x50, 0x20, 0x0B, 0x00, 0x04, 0x48, 0x2C, 0x80, +0xB5, 0x08, 0x2F, 0x80, 0xB0, 0x0B, 0xC0, 0x0B, +0xC1, 0x21, 0xB1, 0x21, 0xA1, 0x21, 0xAF, 0x49, +0x41, 0x87, 0xFF, 0xA0, 0xB0, 0x1A, 0xF2, 0x05, +0x60, 0x1A, 0x34, 0x0D, 0xC0, 0x19, 0x80, 0x03, +0x55, 0x00, 0x90, 0x03, 0x56, 0x00, 0x30, 0x03, +0x73, 0x0A, 0x00, 0x19, 0x10, 0x19, 0xD0, 0x19, +0xAC, 0x18, 0x4B, 0x18, 0x4A, 0x20, 0x24, 0x00, +0x23, 0x48, 0x4C, 0x80, 0xFF, 0xFF, 0xD1, 0x21, +0x0F, 0x98, 0x97, 0x15, 0xA9, 0x20, 0x20, 0x03, +0x06, 0x02, 0xA2, 0x48, 0x2C, 0x87, 0x2D, 0x18, +0x20, 0x49, 0x40, 0x80, 0x0F, 0x98, 0x17, 0x16, +0x60, 0x08, 0x3F, 0x80, 0x00, 0x1A, 0x10, 0x27, +0x60, 0x08, 0x61, 0x21, 0xC1, 0x21, 0xC9, 0x48, +0x0C, 0x86, 0xFF, 0xA0, 0xB0, 0x1A, 0xF2, 0x05, +0x60, 0x1A, 0x44, 0x0D, 0xC0, 0x19, 0x80, 0x03, +0x55, 0x00, 0x90, 0x03, 0x56, 0x00, 0x30, 0x03, +0x73, 0x0A, 0x00, 0x19, 0x10, 0x19, 0xA0, 0x19, +0xD0, 0x19, 0x4B, 0x18, 0x4A, 0x20, 0x24, 0x00, +0x23, 0x48, 0x4C, 0x80, 0xFF, 0xFF, 0xD1, 0x21, +0x0F, 0x98, 0x97, 0x15, 0xA1, 0x21, 0xA9, 0x48, +0x4C, 0x87, 0x2D, 0x18, 0x20, 0x49, 0x40, 0x80, +0x0F, 0x98, 0x17, 0x16, 0x60, 0x08, 0x3F, 0x80, +0x00, 0x1A, 0x10, 0x27, 0x60, 0x08, 0x61, 0x21, +0xC9, 0x20, 0xB9, 0x20, 0x10, 0x03, 0x06, 0x02, +0xC1, 0x48, 0xFC, 0x85, 0xFF, 0xA0, 0x00, 0x03, +0x0C, 0x00, 0x08, 0x51, 0xF0, 0xA0, 0xFF, 0xFF, +0x00, 0x03, 0x9A, 0x00, 0x20, 0x03, 0x1B, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0xFE, 0x15, 0x10, 0x03, +0x1C, 0x00, 0x20, 0x03, 0x9A, 0x00, 0x30, 0x03, +0x2F, 0x00, 0x23, 0x48, 0x2D, 0x80, 0xFF, 0xFF, +0x11, 0x7B, 0xFF, 0xFF, 0x0F, 0x98, 0xBD, 0x15, +0xA0, 0x03, 0x43, 0x00, 0xFF, 0xFF, 0xA0, 0x20, +0x00, 0x03, 0x62, 0x0A, 0x10, 0x03, 0xCD, 0x00, +0x10, 0x49, 0xA0, 0x81, 0x00, 0x0D, 0x18, 0xF9, +0x00, 0x0E, 0x19, 0xF9, 0x01, 0x0D, 0x1A, 0xF9, +0x00, 0x0E, 0x1B, 0xF9, 0xFF, 0xFF, 0x00, 0x03, +0x18, 0xF9, 0x10, 0x03, 0xCE, 0x00, 0x00, 0x0D, +0x10, 0xF9, 0x00, 0x0E, 0x11, 0xF9, 0x01, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0xFF, 0xFF, +0x00, 0x03, 0x10, 0xF9, 0xFF, 0xFF, 0xA0, 0x20, +0x03, 0x19, 0x12, 0x19, 0xB0, 0x03, 0x71, 0x0A, +0xAB, 0x48, 0x2B, 0x80, 0x0F, 0x19, 0x14, 0x19, +0xFF, 0xFF, 0xB0, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xB0, 0x1E, 0xAB, 0x20, 0xA0, 0x20, +0xA1, 0x78, 0x0A, 0x0D, 0x71, 0x0A, 0x00, 0x03, +0x73, 0x0A, 0xA0, 0x48, 0x9B, 0x80, 0x00, 0x0E, +0x74, 0x0A, 0xA0, 0x03, 0x73, 0x0A, 0x0A, 0x0D, +0x71, 0x0A, 0x0A, 0x0D, 0x44, 0x00, 0xFF, 0xA0, +0x0A, 0x0D, 0x44, 0x00, 0xA0, 0x38, 0x0A, 0x0D, +0x74, 0x0A, 0xFF, 0xA0, 0x00, 0x0E, 0xC2, 0x0D, +0x00, 0x0E, 0xD4, 0x0A, 0x00, 0x0E, 0xF3, 0x0A, +0x00, 0x0E, 0x4A, 0x0B, 0x00, 0x0E, 0x4B, 0x0B, +0x10, 0x03, 0xF1, 0x0D, 0x00, 0x03, 0xEF, 0x0D, +0x00, 0x49, 0xF1, 0x81, 0x10, 0x19, 0xB0, 0x03, +0x0C, 0x00, 0xBE, 0x51, 0x80, 0x82, 0x00, 0x03, +0xF2, 0x0D, 0x00, 0x49, 0xC0, 0x80, 0x10, 0x03, +0xF1, 0x0D, 0x00, 0x03, 0x12, 0x01, 0x10, 0x48, +0x3B, 0x80, 0x11, 0x21, 0x0F, 0x98, 0xCB, 0x10, +0x01, 0x0D, 0xF1, 0x0D, 0xFF, 0xA0, 0x10, 0x19, +0x00, 0x03, 0xF5, 0x0D, 0x00, 0x49, 0x30, 0x81, +0x01, 0x39, 0x00, 0x0D, 0xF5, 0x0D, 0x00, 0x49, +0xE0, 0x80, 0x10, 0x03, 0xF1, 0x0D, 0x00, 0x03, +0x12, 0x01, 0x10, 0x48, 0x8B, 0x80, 0x11, 0x21, +0x0F, 0x98, 0xCB, 0x10, 0x00, 0x03, 0xF2, 0x0D, +0x00, 0x49, 0xF1, 0xA0, 0xFF, 0xFF, 0x01, 0x0D, +0xF1, 0x0D, 0x00, 0x03, 0xF4, 0x0D, 0x00, 0x49, +0xF1, 0xA0, 0xFF, 0xFF, 0x00, 0x03, 0x05, 0x00, +0x00, 0x4A, 0x33, 0x00, 0x40, 0x80, 0x00, 0x03, +0x46, 0x00, 0x00, 0x49, 0x60, 0x80, 0x0F, 0x98, +0xE4, 0x14, 0x0F, 0x98, 0xB5, 0x10, 0x0F, 0x98, +0x6C, 0x15, 0x0F, 0x98, 0x74, 0x14, 0x0F, 0x98, +0xC4, 0x16, 0x90, 0x49, 0x00, 0x88, 0x48, 0x16, +0xA0, 0x03, 0x62, 0x0A, 0xB0, 0x03, 0x5F, 0x0A, +0xAB, 0x48, 0x2C, 0x80, 0x00, 0x0E, 0x6C, 0x0A, +0x0F, 0x98, 0x51, 0x19, 0x90, 0x49, 0x30, 0x80, +0x05, 0x0E, 0xBC, 0x01, 0xFF, 0xA0, 0x0F, 0x98, +0xE4, 0x14, 0xA0, 0x03, 0x45, 0x00, 0xA0, 0x49, +0x61, 0x80, 0xA0, 0x03, 0x46, 0x00, 0xA0, 0x49, +0x00, 0x88, 0x9E, 0x12, 0x5F, 0x80, 0x0F, 0x98, +0xF3, 0x20, 0x80, 0x49, 0x00, 0x88, 0x9E, 0x12, +0x00, 0x03, 0x46, 0x00, 0x10, 0x03, 0x4E, 0x00, +0x01, 0x48, 0x30, 0x81, 0x01, 0x0D, 0x46, 0x00, +0x00, 0x03, 0x7A, 0x0A, 0x00, 0x49, 0x01, 0x88, +0x6C, 0x15, 0x01, 0x0E, 0x7A, 0x0A, 0x0F, 0x98, +0xDB, 0x10, 0x00, 0x0E, 0x6C, 0x0A, 0x00, 0x0E, +0x55, 0x0A, 0x0F, 0x98, 0x6C, 0x15, 0x0F, 0x88, +0xC2, 0x08, 0x00, 0x03, 0x48, 0x00, 0x00, 0x0D, +0x73, 0x0A, 0x00, 0x0D, 0x70, 0x0A, 0x00, 0x03, +0x51, 0x00, 0x10, 0x03, 0xF1, 0x0D, 0xFF, 0xFF, +0x01, 0x20, 0x00, 0x0D, 0x5B, 0x0A, 0x00, 0x0D, +0xC3, 0x0A, 0x00, 0x03, 0x24, 0x00, 0x00, 0x0D, +0x60, 0x0A, 0x00, 0x0D, 0x61, 0x0A, 0x00, 0x03, +0x22, 0x00, 0x00, 0x0D, 0x5E, 0x0A, 0x00, 0x03, +0x23, 0x00, 0x00, 0x0D, 0x5F, 0x0A, 0x00, 0x03, +0x2C, 0x00, 0x10, 0x18, 0x20, 0x18, 0x00, 0x62, +0xFF, 0x00, 0x00, 0x0D, 0x2C, 0x02, 0x18, 0x79, +0x1F, 0x61, 0x01, 0x0D, 0x2D, 0x02, 0x2C, 0x79, +0x21, 0x21, 0x02, 0x0D, 0x2E, 0x02, 0xA0, 0x03, +0x0C, 0x00, 0xA5, 0x51, 0x01, 0x88, 0x08, 0x13, +0x00, 0x03, 0x4F, 0x00, 0x00, 0x0D, 0x75, 0x0A, +0x00, 0x03, 0x50, 0x00, 0x00, 0x0D, 0x76, 0x0A, +0x00, 0x0D, 0x79, 0x0A, 0x4F, 0x81, 0xA0, 0x03, +0x46, 0x00, 0xA0, 0x49, 0x40, 0x80, 0xA1, 0x39, +0x0A, 0x0D, 0x46, 0x00, 0x8F, 0x86, 0x00, 0x03, +0x7A, 0x0A, 0x00, 0x49, 0x60, 0x80, 0x00, 0x0E, +0x7A, 0x0A, 0x0F, 0x98, 0xF6, 0x10, 0x0F, 0x88, +0x6C, 0x15, 0x0F, 0x98, 0x4A, 0x10, 0x00, 0x03, +0x5B, 0x0A, 0x00, 0x0D, 0x9C, 0x00, 0x00, 0x03, +0x0C, 0x00, 0x07, 0x51, 0x60, 0x80, 0x00, 0x03, +0xBC, 0x0D, 0x00, 0x49, 0x20, 0x80, 0x0F, 0x88, +0x08, 0x13, 0x0F, 0x98, 0xCB, 0x14, 0x0F, 0x98, +0xB2, 0x17, 0x90, 0x49, 0x00, 0x88, 0x08, 0x13, +0x95, 0x49, 0xB0, 0x83, 0x00, 0x03, 0xBC, 0x0D, +0x00, 0x49, 0xD0, 0x80, 0x00, 0x03, 0x37, 0x00, +0x00, 0x49, 0x90, 0x80, 0x10, 0x03, 0xBE, 0x0D, +0xFF, 0xFF, 0x11, 0x21, 0x01, 0x0D, 0xBE, 0x0D, +0x10, 0x48, 0x0C, 0x88, 0x6C, 0x15, 0x00, 0x03, +0x37, 0x00, 0x00, 0x0D, 0xBE, 0x0D, 0x92, 0x49, +0x01, 0x81, 0x00, 0x03, 0xEE, 0x0D, 0x00, 0x49, +0x41, 0x80, 0x00, 0x03, 0x36, 0x00, 0x00, 0x0D, +0xB7, 0x0D, 0x01, 0x0E, 0xD6, 0x0A, 0x0F, 0x98, +0x6C, 0x15, 0x0F, 0x98, 0x57, 0x17, 0x0F, 0x88, +0x48, 0x16, 0xA0, 0x03, 0x0C, 0x00, 0xA4, 0x51, +0x80, 0x80, 0xA0, 0x03, 0xB7, 0x0D, 0xA0, 0x49, +0x40, 0x80, 0xA1, 0x39, 0x0A, 0x0D, 0xB7, 0x0D, +0xEF, 0x86, 0x00, 0x0E, 0xD6, 0x0A, 0x0F, 0x98, +0x6C, 0x15, 0x0F, 0x98, 0x57, 0x17, 0x0F, 0x88, +0x48, 0x16, 0x0F, 0x98, 0x6C, 0x15, 0x0F, 0x88, +0x57, 0x17, 0x00, 0x0E, 0xBE, 0x0D, 0x00, 0x0E, +0xD6, 0x0A, 0xA0, 0x03, 0x0C, 0x00, 0xA4, 0x51, +0x80, 0x80, 0xA0, 0x03, 0xB7, 0x0D, 0xA0, 0x49, +0x40, 0x80, 0xA1, 0x39, 0x0A, 0x0D, 0xB7, 0x0D, +0x2F, 0x85, 0x00, 0x03, 0x05, 0x00, 0x00, 0x4A, +0x33, 0x00, 0x60, 0x80, 0x00, 0x03, 0x46, 0x00, +0x00, 0x49, 0x00, 0x98, 0xB5, 0x10, 0xFF, 0xFF, +0xA0, 0x03, 0x06, 0x02, 0xC0, 0x03, 0xB0, 0x0A, +0xB0, 0x1A, 0xF2, 0x05, 0xD0, 0x19, 0x9B, 0x00, +0xFF, 0xFF, 0xB1, 0x21, 0x9C, 0x48, 0x1C, 0x80, +0xC9, 0x18, 0x9D, 0x48, 0x1C, 0x80, 0xD9, 0x18, +0xA1, 0x39, 0x51, 0x87, 0x0C, 0x0D, 0xB0, 0x0A, +0x0D, 0x0D, 0xB3, 0x0A, 0x0D, 0x0D, 0xB4, 0x0A, +0x20, 0x03, 0x2A, 0x00, 0x0D, 0x18, 0x0F, 0x98, +0xFE, 0x15, 0x00, 0x0D, 0xE9, 0x0D, 0xA0, 0x1A, +0xE9, 0x0D, 0x0F, 0x98, 0x12, 0x30, 0x00, 0x03, +0x0C, 0x00, 0x08, 0x51, 0x40, 0x82, 0xA0, 0x03, +0x73, 0x0A, 0x00, 0x03, 0x46, 0x00, 0x00, 0x49, +0x01, 0x88, 0x94, 0x13, 0x00, 0x03, 0xB0, 0x0A, +0x20, 0x03, 0x1A, 0x00, 0x20, 0x49, 0x00, 0x81, +0x0F, 0x98, 0xFE, 0x15, 0xA0, 0x18, 0xB0, 0x03, +0x71, 0x0A, 0xAB, 0x48, 0x9D, 0x80, 0x0A, 0x0D, +0x70, 0x0A, 0x10, 0x03, 0x73, 0x0A, 0x0A, 0x18, +0x01, 0x38, 0x00, 0x0D, 0x74, 0x0A, 0xDF, 0x82, +0xA0, 0x03, 0x71, 0x0A, 0x0A, 0x0D, 0x70, 0x0A, +0x00, 0x0E, 0x74, 0x0A, 0x6F, 0x82, 0xA0, 0x03, +0x57, 0x0A, 0xA0, 0x49, 0xA0, 0x82, 0xA0, 0x03, +0x73, 0x0A, 0x00, 0x03, 0x46, 0x00, 0x00, 0x49, +0xC1, 0x81, 0x00, 0x03, 0xB0, 0x0A, 0x20, 0x03, +0x1A, 0x00, 0x20, 0x49, 0x00, 0x81, 0x0F, 0x98, +0xFE, 0x15, 0xA0, 0x18, 0xB0, 0x03, 0x73, 0x0A, +0xAB, 0x48, 0x9D, 0x80, 0x0A, 0x0D, 0x70, 0x0A, +0x10, 0x03, 0x73, 0x0A, 0x0A, 0x18, 0x01, 0x38, +0x00, 0x0D, 0x74, 0x0A, 0x6F, 0x80, 0xA0, 0x03, +0x73, 0x0A, 0x0A, 0x0D, 0x70, 0x0A, 0x00, 0x0E, +0x74, 0x0A, 0x10, 0x03, 0x73, 0x0A, 0xA1, 0x48, +0x4A, 0x80, 0x00, 0x0E, 0x74, 0x0A, 0x01, 0x0D, +0x70, 0x0A, 0xA0, 0x03, 0x70, 0x0A, 0x10, 0x03, +0xF1, 0x0D, 0x10, 0x49, 0x90, 0x80, 0x10, 0x03, +0x42, 0x00, 0x00, 0x03, 0xEE, 0x0D, 0xFF, 0xFF, +0xA1, 0x20, 0xA0, 0x20, 0x0A, 0x0D, 0x70, 0x0A, +0x0A, 0x0D, 0x12, 0x00, 0x00, 0x1A, 0xF2, 0x05, +0x00, 0x0D, 0xD1, 0x0A, 0x0A, 0x0D, 0x72, 0x0A, +0x0F, 0x98, 0x65, 0x1C, 0x00, 0x03, 0x6D, 0x0A, +0x00, 0x49, 0x00, 0x88, 0xF0, 0x12, 0x0F, 0x98, +0x99, 0x1A, 0x00, 0x03, 0x6D, 0x0A, 0x00, 0x49, +0x00, 0x88, 0xF0, 0x12, 0x00, 0x03, 0x0C, 0x00, +0x09, 0x51, 0x40, 0x80, 0x0F, 0x98, 0x11, 0x11, +0x0F, 0x98, 0x3D, 0x11, 0x00, 0x0E, 0x6C, 0x0A, +0x80, 0x03, 0xB0, 0x0A, 0x90, 0x03, 0xBA, 0x00, +0xA0, 0x03, 0x58, 0x0A, 0xA0, 0x49, 0xA0, 0x80, +0x89, 0x48, 0x3D, 0x80, 0x00, 0x0E, 0xB1, 0x0A, +0xCF, 0x80, 0xA0, 0x03, 0xB2, 0x0A, 0x0A, 0x0D, +0xB1, 0x0A, 0x7F, 0x80, 0x89, 0x48, 0x3D, 0x80, +0x00, 0x0E, 0xB1, 0x0A, 0x2F, 0x80, 0x01, 0x0E, +0xB1, 0x0A, 0xA0, 0x03, 0xB1, 0x0A, 0x0A, 0x0D, +0xB2, 0x0A, 0x02, 0x0E, 0xD0, 0x0A, 0x00, 0x03, +0x6D, 0x0A, 0x00, 0x0D, 0x6E, 0x0A, 0x0F, 0x98, +0x5B, 0x1D, 0x00, 0x03, 0x0C, 0x00, 0x0D, 0x51, +0xA0, 0x80, 0x0F, 0x98, 0xCD, 0x1F, 0xD0, 0x03, +0x6D, 0x0A, 0xD0, 0x49, 0x41, 0x80, 0x0F, 0x98, +0x6C, 0x15, 0x0F, 0x88, 0x48, 0x16, 0x10, 0x03, +0xE5, 0x00, 0x1F, 0x51, 0xF0, 0x80, 0xD0, 0x03, +0x6E, 0x0A, 0xFF, 0xFF, 0x0F, 0x98, 0x3A, 0x1B, +0x90, 0x49, 0x80, 0x80, 0x00, 0x03, 0x21, 0x00, +0x00, 0x0D, 0xBC, 0x0D, 0x0F, 0x98, 0x6C, 0x15, +0x0F, 0x88, 0x5F, 0x16, 0x00, 0x03, 0x6D, 0x0A, +0x00, 0x49, 0x4A, 0x80, 0x0F, 0x98, 0x5F, 0x16, +0x0F, 0x88, 0x6C, 0x15, 0x00, 0x03, 0x6D, 0x0A, +0x00, 0x0D, 0x6F, 0x0A, 0x0F, 0x98, 0x8A, 0x21, +0xA0, 0x03, 0x6D, 0x0A, 0xA0, 0x49, 0x00, 0x88, +0xF0, 0x12, 0x0F, 0x98, 0x6C, 0x15, 0x0F, 0x98, +0x51, 0x26, 0xA0, 0x03, 0x6E, 0x0A, 0xA0, 0x49, +0x4A, 0x80, 0x0F, 0x98, 0x33, 0x16, 0x0F, 0x88, +0x57, 0x17, 0x00, 0x03, 0x6E, 0x0A, 0x00, 0x0D, +0x6D, 0x0A, 0x0F, 0x98, 0xCF, 0x1D, 0x0F, 0x98, +0x2D, 0x1F, 0xA0, 0x03, 0x6D, 0x0A, 0xA0, 0x49, +0x4A, 0x80, 0x0F, 0x98, 0x48, 0x16, 0x0F, 0x88, +0x57, 0x17, 0x0A, 0x0D, 0x5A, 0x0A, 0x0F, 0x98, +0x8B, 0x20, 0xA0, 0x03, 0x6D, 0x0A, 0x0A, 0x0D, +0x58, 0x0A, 0xA0, 0x03, 0x6D, 0x0A, 0x0A, 0x0D, +0x57, 0x0A, 0x0F, 0x98, 0x95, 0x29, 0x00, 0x03, +0x05, 0x00, 0x00, 0x4A, 0x33, 0x00, 0x00, 0x98, +0x74, 0x14, 0xFF, 0xFF, 0xA0, 0x03, 0x4C, 0x0B, +0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, 0x4C, 0x0B, +0xA0, 0x03, 0xF0, 0x0D, 0xA0, 0x4A, 0x30, 0x75, +0x3B, 0x80, 0xA1, 0x21, 0x0A, 0x0D, 0xF0, 0x0D, +0x00, 0x03, 0x3C, 0x00, 0xA0, 0x48, 0x2D, 0x80, +0x00, 0x0E, 0xEF, 0x0D, 0xA0, 0x03, 0x08, 0x0B, +0xA0, 0x49, 0xF1, 0xA0, 0xFF, 0xFF, 0x00, 0x0E, +0x4A, 0x0B, 0x00, 0x0E, 0x4B, 0x0B, 0x0F, 0x88, +0x57, 0x17, 0x90, 0x1A, 0x4A, 0x0B, 0x80, 0x1A, +0xF2, 0x05, 0x00, 0x03, 0x06, 0x02, 0xFF, 0xFF, +0x80, 0x20, 0x09, 0x00, 0x80, 0x08, 0x90, 0x1A, +0x0E, 0x0B, 0x81, 0x21, 0x09, 0x00, 0x80, 0x08, +0x91, 0x21, 0x81, 0x21, 0x09, 0x00, 0x80, 0x08, +0xFF, 0xA0, 0x10, 0x03, 0xE5, 0x00, 0x1F, 0x51, +0xF0, 0xA0, 0xFF, 0xFF, 0xB0, 0x03, 0x56, 0x00, +0xC0, 0x03, 0x55, 0x00, 0x10, 0x03, 0xA9, 0x00, +0x00, 0x03, 0xA8, 0x00, 0x00, 0x49, 0x91, 0x80, +0x0B, 0x18, 0x0F, 0x98, 0xBD, 0x15, 0xA0, 0x20, +0x4B, 0x18, 0x20, 0x03, 0xAA, 0x00, 0x11, 0x19, +0xAF, 0x80, 0xA1, 0x20, 0x4C, 0x18, 0x0B, 0x18, +0x10, 0x03, 0xAA, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0xBD, 0x15, 0x20, 0x18, 0x1B, 0x18, 0x70, 0x03, +0xA5, 0x00, 0x80, 0x19, 0x90, 0x19, 0x87, 0x48, +0xAB, 0x80, 0xB0, 0x19, 0x60, 0x1A, 0xAB, 0x00, +0x6B, 0x20, 0x36, 0x00, 0x39, 0x48, 0x80, 0x80, +0xB1, 0x21, 0xB7, 0x48, 0x71, 0x87, 0xA0, 0x0B, +0x51, 0x18, 0x41, 0x39, 0x91, 0x21, 0x8F, 0x80, +0x61, 0x21, 0x81, 0x21, 0x52, 0x18, 0x30, 0x03, +0xAA, 0x00, 0xFF, 0xFF, 0x43, 0x38, 0x93, 0x20, +0xA5, 0x20, 0x40, 0x49, 0x41, 0x86, 0xFF, 0xA0, +0xA0, 0x03, 0x31, 0x00, 0xB0, 0x03, 0x10, 0x01, +0x00, 0x03, 0xEE, 0x0D, 0x10, 0x03, 0xF5, 0x0D, +0xFF, 0xFF, 0x10, 0x68, 0x00, 0x03, 0xF2, 0x0D, +0xFF, 0xFF, 0x10, 0x68, 0x10, 0x49, 0x40, 0x80, +0x39, 0xC1, 0xA3, 0x7B, 0xB2, 0x7B, 0x0F, 0x80, +0x0A, 0x0D, 0x76, 0x0A, 0x0B, 0x0D, 0x78, 0x0A, +0xFF, 0xA0, 0xA0, 0x1A, 0x32, 0x02, 0x0F, 0x98, +0x88, 0x14, 0xA0, 0x1A, 0xB2, 0x04, 0x0F, 0x98, +0x88, 0x14, 0x80, 0x1A, 0x00, 0x80, 0x90, 0x1A, +0xFF, 0x7F, 0xC0, 0x03, 0x06, 0x02, 0xD0, 0x1A, +0x32, 0x02, 0x40, 0x1A, 0xB2, 0x04, 0xAD, 0x00, +0xB4, 0x00, 0xFF, 0xFF, 0xAB, 0x38, 0xDA, 0x08, +0xA8, 0x48, 0x1D, 0x80, 0x8A, 0x18, 0xA9, 0x48, +0x1B, 0x80, 0x9A, 0x18, 0xD1, 0x21, 0x41, 0x21, +0xC1, 0x39, 0x11, 0x87, 0x08, 0x0D, 0x10, 0x02, +0x09, 0x0D, 0x11, 0x02, 0x0F, 0x98, 0x0C, 0x15, +0xFF, 0xA0, 0xC0, 0x03, 0x06, 0x02, 0xD0, 0x1A, +0x32, 0x02, 0x50, 0x1A, 0x72, 0x03, 0xA0, 0x03, +0x77, 0x0A, 0x30, 0x03, 0x11, 0x02, 0xFF, 0xFF, +0xA3, 0x20, 0xA1, 0x79, 0xAE, 0x51, 0xAF, 0xC5, +0x0A, 0x0D, 0x77, 0x0A, 0xA3, 0x48, 0x1D, 0x80, +0xA3, 0x18, 0xAF, 0x51, 0x10, 0x80, 0xA0, 0x31, +0x3A, 0x18, 0xA1, 0x79, 0x3A, 0x20, 0x20, 0x03, +0x17, 0x02, 0x60, 0x03, 0x2B, 0x00, 0x60, 0x62, +0xFF, 0x00, 0x26, 0x48, 0x2A, 0x80, 0x13, 0x19, +0x9F, 0x80, 0x60, 0x03, 0x2B, 0x00, 0xFF, 0xFF, +0x68, 0x79, 0x26, 0x48, 0x2A, 0x80, 0x12, 0x19, +0x1F, 0x80, 0x11, 0x19, 0xAD, 0x00, 0x60, 0x03, +0x0C, 0x00, 0x63, 0x51, 0x61, 0x80, 0x6A, 0x18, +0x60, 0x49, 0x1B, 0x80, 0x60, 0x19, 0x56, 0x08, +0xFF, 0x81, 0x65, 0x00, 0xFF, 0xFF, 0x6A, 0x38, +0x6F, 0x51, 0x10, 0x80, 0x60, 0x31, 0x70, 0x03, +0xBE, 0x00, 0x70, 0x49, 0x60, 0x80, 0x76, 0x48, +0x4B, 0x80, 0x75, 0x00, 0x7A, 0x48, 0x1B, 0x80, +0xFF, 0x80, 0x75, 0x00, 0x5A, 0x08, 0x63, 0x48, +0xBB, 0x80, 0x61, 0x78, 0x51, 0x0B, 0xA0, 0x49, +0x7D, 0x80, 0xA7, 0x48, 0x1B, 0x80, 0x76, 0x38, +0xA7, 0x48, 0x1D, 0x80, 0x76, 0x20, 0x57, 0x08, +0x75, 0x00, 0x70, 0x49, 0x1B, 0x80, 0x51, 0x0B, +0x51, 0x21, 0xD1, 0x21, 0xC1, 0x39, 0xE1, 0x84, +0xFF, 0xA0, 0xC0, 0x03, 0x06, 0x02, 0xD0, 0x1A, +0x32, 0x02, 0x40, 0x1A, 0xB2, 0x04, 0xAD, 0x00, +0xB4, 0x00, 0xFF, 0xFF, 0xAB, 0x20, 0xDA, 0x08, +0xD1, 0x21, 0x41, 0x21, 0xC1, 0x39, 0x71, 0x87, +0xFF, 0xA0, 0x03, 0x0D, 0x0E, 0x02, 0x30, 0x19, +0x0F, 0x51, 0x10, 0x80, 0x31, 0x39, 0x00, 0x0D, +0x00, 0xF9, 0x03, 0x0D, 0x01, 0xF9, 0x30, 0x19, +0x1F, 0x51, 0x10, 0x80, 0x31, 0x39, 0x01, 0x0D, +0x02, 0xF9, 0x03, 0x0D, 0x03, 0xF9, 0xFF, 0xFF, +0x00, 0x03, 0x00, 0xF9, 0x10, 0x03, 0x01, 0xF9, +0x30, 0x03, 0x0E, 0x02, 0xFF, 0xFF, 0xFF, 0xA0, +0x03, 0x0D, 0x0E, 0x02, 0x00, 0x0D, 0x00, 0xF9, +0x01, 0x0D, 0x01, 0xF9, 0x30, 0x19, 0x2F, 0x51, +0x10, 0x80, 0x31, 0x39, 0x02, 0x0D, 0x02, 0xF9, +0x03, 0x0D, 0x03, 0xF9, 0xFF, 0xFF, 0x00, 0x03, +0x00, 0xF9, 0x10, 0x03, 0x01, 0xF9, 0x30, 0x03, +0x0E, 0x02, 0xFF, 0xFF, 0xFF, 0xA0, 0x00, 0x0D, +0x00, 0xF9, 0x01, 0x0D, 0x01, 0xF9, 0x02, 0x0D, +0x02, 0xF9, 0x03, 0x0D, 0x03, 0xF9, 0xFF, 0xFF, +0x00, 0x03, 0x00, 0xF9, 0x10, 0x03, 0x01, 0xF9, +0xFF, 0xFF, 0xFF, 0xA0, 0x03, 0x0D, 0x0E, 0x02, +0x00, 0x0D, 0x10, 0xF9, 0x30, 0x19, 0x0F, 0x51, +0x10, 0x80, 0x31, 0x39, 0x03, 0x0D, 0x11, 0xF9, +0x30, 0x19, 0x1F, 0x51, 0x10, 0x80, 0x31, 0x39, +0x01, 0x0D, 0x12, 0xF9, 0x03, 0x0D, 0x13, 0xF9, +0xFF, 0xFF, 0x00, 0x03, 0x10, 0xF9, 0x10, 0x03, +0x11, 0xF9, 0x30, 0x03, 0x0E, 0x02, 0xFF, 0xFF, +0xFF, 0xA0, 0x03, 0x0D, 0x0E, 0x02, 0x00, 0x0D, +0x10, 0xF9, 0x01, 0x0D, 0x11, 0xF9, 0x30, 0x19, +0x2F, 0x51, 0x10, 0x80, 0x31, 0x39, 0x02, 0x0D, +0x12, 0xF9, 0x03, 0x0D, 0x13, 0xF9, 0xFF, 0xFF, +0x00, 0x03, 0x10, 0xF9, 0x10, 0x03, 0x11, 0xF9, +0x30, 0x03, 0x0E, 0x02, 0xFF, 0xFF, 0xFF, 0xA0, +0x00, 0x0D, 0x08, 0xF9, 0x01, 0x0D, 0x09, 0xF9, +0x02, 0x0D, 0x0A, 0xF9, 0x03, 0x0D, 0x0B, 0xF9, +0xFF, 0xFF, 0x00, 0x03, 0x08, 0xF9, 0x10, 0x03, +0x09, 0xF9, 0xFF, 0xFF, 0xFF, 0xA0, 0x03, 0x0D, +0x0E, 0x02, 0x00, 0x0D, 0x18, 0xF9, 0x30, 0x19, +0x0F, 0x51, 0x10, 0x80, 0x31, 0x39, 0x03, 0x0D, +0x19, 0xF9, 0x30, 0x19, 0x2F, 0x51, 0x10, 0x80, +0x31, 0x39, 0x02, 0x0D, 0x1A, 0xF9, 0x03, 0x0D, +0x1B, 0xF9, 0xFF, 0xFF, 0x00, 0x03, 0x18, 0xF9, +0x30, 0x03, 0x0E, 0x02, 0xFF, 0xFF, 0xFF, 0xA0, +0x03, 0x0D, 0x0E, 0x02, 0x00, 0x0D, 0x18, 0xF9, +0x01, 0x0D, 0x19, 0xF9, 0x30, 0x19, 0x2F, 0x51, +0x10, 0x80, 0x31, 0x39, 0x02, 0x0D, 0x1A, 0xF9, +0x03, 0x0D, 0x1B, 0xF9, 0xFF, 0xFF, 0x00, 0x03, +0x18, 0xF9, 0x10, 0x03, 0x19, 0xF9, 0x30, 0x03, +0x0E, 0x02, 0xFF, 0xFF, 0xFF, 0xA0, 0xAF, 0x51, +0xF0, 0xA0, 0xFF, 0xFF, 0xA0, 0x31, 0xFF, 0xA0, +0x10, 0x03, 0xE5, 0x00, 0x1F, 0x51, 0x30, 0x80, +0xD0, 0x19, 0x0F, 0x98, 0x3A, 0x1B, 0x00, 0x03, +0xBC, 0x0D, 0x00, 0x49, 0x30, 0x80, 0x01, 0x39, +0x00, 0x0D, 0xBC, 0x0D, 0x00, 0x0E, 0xBE, 0x0D, +0x00, 0x0E, 0x74, 0x0A, 0x00, 0x0E, 0x6D, 0x0A, +0xBF, 0x81, 0x00, 0x03, 0xD0, 0x0A, 0x00, 0x49, +0x30, 0x80, 0x01, 0x39, 0x00, 0x0D, 0xD0, 0x0A, +0x10, 0x03, 0xE5, 0x00, 0x1F, 0x51, 0x30, 0x80, +0xD0, 0x19, 0x0F, 0x98, 0x3A, 0x1B, 0x00, 0x03, +0xBC, 0x0D, 0x00, 0x49, 0x30, 0x80, 0x01, 0x39, +0x00, 0x0D, 0xBC, 0x0D, 0x00, 0x0E, 0x74, 0x0A, +0x00, 0x0E, 0x6D, 0x0A, 0x0F, 0x98, 0x51, 0x26, +0x0F, 0x98, 0xCF, 0x1D, 0x0F, 0x98, 0x2D, 0x1F, +0x0F, 0x98, 0x95, 0x29, 0x00, 0x0E, 0x4C, 0x0B, +0x00, 0x0E, 0xF0, 0x0D, 0x00, 0x0E, 0x4B, 0x0B, +0x00, 0x0E, 0x57, 0x0A, 0x00, 0x0E, 0x58, 0x0A, +0x00, 0x0E, 0x5A, 0x0A, 0x00, 0x0E, 0x5C, 0x0A, +0x00, 0x0E, 0x5D, 0x0A, 0x00, 0x0E, 0x17, 0x02, +0xA0, 0x19, 0xA0, 0x03, 0x70, 0x0A, 0xFF, 0xFF, +0xA3, 0x59, 0xFF, 0xFF, 0xB0, 0x03, 0x73, 0x0A, +0xA0, 0x1E, 0xAB, 0x20, 0xA3, 0x21, 0xA2, 0x79, +0x0A, 0x0D, 0x70, 0x0A, 0x0A, 0x0D, 0x12, 0x00, +0xAB, 0x48, 0xCD, 0x80, 0x00, 0x03, 0x70, 0x0A, +0x10, 0x03, 0x1A, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0xBD, 0x15, 0x00, 0x0D, 0xB0, 0x0A, 0x00, 0x0D, +0xB4, 0x0A, 0x4F, 0x80, 0x0A, 0x0D, 0xB0, 0x0A, +0x0A, 0x0D, 0xB4, 0x0A, 0x0F, 0x98, 0x6A, 0x11, +0x00, 0x0E, 0xB1, 0x0A, 0xA0, 0x03, 0x4A, 0x0B, +0xA3, 0x51, 0x31, 0x80, 0x0F, 0x98, 0xB5, 0x24, +0x2F, 0x80, 0x05, 0x0E, 0xC6, 0x0A, 0x00, 0x03, +0xF3, 0x0A, 0x00, 0x49, 0x31, 0x80, 0x00, 0x0E, +0x11, 0x00, 0xFF, 0xA0, 0xA0, 0x1A, 0xE9, 0x0D, +0x0F, 0x98, 0x12, 0x30, 0x00, 0x0E, 0x55, 0x0A, +0x01, 0x0E, 0x57, 0x0A, 0x00, 0x03, 0xF3, 0x0A, +0x02, 0x49, 0xF1, 0xA0, 0xFF, 0xFF, 0x00, 0x03, +0x4A, 0x0B, 0x0F, 0xC1, 0x00, 0x0D, 0x4A, 0x0B, +0xFF, 0xA0, 0x00, 0x03, 0xBC, 0x01, 0x00, 0x49, +0x90, 0x80, 0x01, 0x39, 0x00, 0x0D, 0xBC, 0x01, +0x00, 0x03, 0x15, 0x00, 0x00, 0x0D, 0x71, 0x0A, +0x0F, 0x88, 0x33, 0x17, 0x91, 0x19, 0xA0, 0x03, +0xD6, 0x0A, 0xA0, 0x49, 0x01, 0x88, 0x4C, 0x17, +0xA0, 0x03, 0xBC, 0x0D, 0xA0, 0x49, 0xB1, 0x82, +0xA0, 0x03, 0x10, 0x02, 0xB0, 0x03, 0x13, 0x02, +0xFF, 0xFF, 0xAB, 0x38, 0xAF, 0x51, 0x10, 0x80, +0xA0, 0x31, 0xB0, 0x03, 0x5E, 0x0A, 0xAB, 0x48, +0x0B, 0x88, 0x4C, 0x17, 0xA0, 0x03, 0x11, 0x02, +0xB0, 0x03, 0x14, 0x02, 0xFF, 0xFF, 0xAB, 0x38, +0xAF, 0x51, 0x10, 0x80, 0xA0, 0x31, 0xB0, 0x03, +0x5E, 0x0A, 0xAB, 0x48, 0x0B, 0x88, 0x4C, 0x17, +0xA0, 0x03, 0x62, 0x0A, 0xB0, 0x03, 0x5E, 0x0A, +0xAB, 0x48, 0x0B, 0x88, 0x4C, 0x17, 0xA0, 0x03, +0x55, 0x0A, 0xB0, 0x03, 0x60, 0x0A, 0xAB, 0x48, +0x0C, 0x88, 0x45, 0x17, 0xDF, 0x82, 0x0F, 0x88, +0x4C, 0x17, 0xA0, 0x03, 0x62, 0x0A, 0xB0, 0x03, +0x5F, 0x0A, 0xAB, 0x48, 0xEB, 0x83, 0xA0, 0x03, +0x10, 0x02, 0xB0, 0x03, 0x13, 0x02, 0xFF, 0xFF, +0xAB, 0x38, 0xAF, 0x51, 0x10, 0x80, 0xA0, 0x31, +0xB0, 0x03, 0x5F, 0x0A, 0xAB, 0x48, 0x1B, 0x83, +0xA0, 0x03, 0x11, 0x02, 0xB0, 0x03, 0x14, 0x02, +0xFF, 0xFF, 0xAB, 0x38, 0xAF, 0x51, 0x10, 0x80, +0xA0, 0x31, 0xB0, 0x03, 0x5F, 0x0A, 0xAB, 0x48, +0x4B, 0x82, 0xA0, 0x03, 0x55, 0x0A, 0xFF, 0xFF, +0xA1, 0x21, 0x0A, 0x0D, 0x55, 0x0A, 0xB0, 0x03, +0x21, 0x00, 0xAB, 0x48, 0xFC, 0xA0, 0xFF, 0xFF, +0xC0, 0x03, 0x06, 0x02, 0x30, 0x1A, 0x32, 0x02, +0x40, 0x1A, 0xB2, 0x04, 0xA3, 0x00, 0x4A, 0x08, +0x31, 0x21, 0x41, 0x21, 0xC1, 0x39, 0xA1, 0x87, +0x0F, 0x98, 0x48, 0x16, 0x00, 0x0E, 0x55, 0x0A, +0x90, 0x19, 0x9F, 0x80, 0xA0, 0x03, 0x55, 0x0A, +0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, 0x55, 0x0A, +0xFF, 0xA0, 0x00, 0x0E, 0x55, 0x0A, 0x00, 0x03, +0x10, 0x02, 0x10, 0x03, 0x11, 0x02, 0x00, 0x0D, +0x13, 0x02, 0x01, 0x0D, 0x14, 0x02, 0xFF, 0xA0, +0xA0, 0x03, 0x62, 0x0A, 0xB0, 0x03, 0x5F, 0x0A, +0xAB, 0x48, 0x0B, 0x88, 0xA7, 0x17, 0xA0, 0x03, +0xD6, 0x0A, 0xA0, 0x49, 0x01, 0x88, 0xA7, 0x17, +0xA0, 0x03, 0xBC, 0x0D, 0xA0, 0x49, 0x01, 0x88, +0xA7, 0x17, 0xA0, 0x03, 0x10, 0x02, 0xB0, 0x03, +0x15, 0x02, 0xFF, 0xFF, 0xAB, 0x38, 0xAF, 0x51, +0x10, 0x80, 0xA0, 0x31, 0xB0, 0x03, 0x5F, 0x0A, +0xAB, 0x48, 0x2B, 0x83, 0xA0, 0x03, 0x11, 0x02, +0xB0, 0x03, 0x16, 0x02, 0xFF, 0xFF, 0xAB, 0x38, +0xAF, 0x51, 0x10, 0x80, 0xA0, 0x31, 0xB0, 0x03, +0x5F, 0x0A, 0xAB, 0x48, 0x5B, 0x82, 0xA0, 0x03, +0x6C, 0x0A, 0xB0, 0x03, 0x61, 0x0A, 0xAB, 0x48, +0x8C, 0x81, 0xC0, 0x03, 0x06, 0x02, 0x30, 0x1A, +0x32, 0x02, 0x40, 0x1A, 0xB2, 0x04, 0xA3, 0x00, +0xB4, 0x00, 0xAB, 0x48, 0x70, 0x80, 0xAB, 0x48, +0x3A, 0x80, 0xB1, 0x39, 0x4B, 0x08, 0x2F, 0x80, +0xB1, 0x21, 0x4B, 0x08, 0x31, 0x21, 0x41, 0x21, +0xC1, 0x39, 0x11, 0x87, 0x00, 0x0E, 0x6C, 0x0A, +0x9F, 0x80, 0xA0, 0x03, 0x6C, 0x0A, 0xFF, 0xFF, +0xA1, 0x21, 0x0A, 0x0D, 0x6C, 0x0A, 0xFF, 0xA0, +0x00, 0x0E, 0x6C, 0x0A, 0x00, 0x03, 0x10, 0x02, +0x10, 0x03, 0x11, 0x02, 0x00, 0x0D, 0x15, 0x02, +0x01, 0x0D, 0x16, 0x02, 0xFF, 0xA0, 0xC0, 0x03, +0x10, 0x02, 0xD0, 0x03, 0x11, 0x02, 0x10, 0x03, +0x0C, 0x00, 0x1C, 0x51, 0x41, 0x80, 0x91, 0x19, +0xC0, 0x49, 0xFD, 0xA0, 0xFF, 0xFF, 0x91, 0x19, +0x10, 0x03, 0x0C, 0x00, 0x1B, 0x51, 0x90, 0x83, +0xA0, 0x03, 0xEC, 0x0D, 0x1C, 0x18, 0x1A, 0x38, +0x0C, 0x0D, 0xEC, 0x0D, 0xB0, 0x03, 0x52, 0x00, +0x1B, 0x48, 0x3B, 0x80, 0x00, 0x0E, 0xED, 0x0D, +0x0F, 0x81, 0xA0, 0x03, 0xED, 0x0D, 0x20, 0x03, +0x58, 0x0A, 0x20, 0x49, 0x31, 0x80, 0x1B, 0x48, +0x1C, 0x80, 0xA1, 0x21, 0xB0, 0x03, 0x53, 0x00, +0x1B, 0x48, 0x1C, 0x80, 0xA1, 0x21, 0x0A, 0x0D, +0xED, 0x0D, 0xB0, 0x03, 0x54, 0x00, 0xCB, 0x48, +0x2C, 0x80, 0x05, 0x0E, 0xED, 0x0D, 0xA0, 0x03, +0xED, 0x0D, 0xA2, 0x49, 0x2D, 0x81, 0x00, 0x0E, +0xED, 0x0D, 0x90, 0x19, 0x00, 0x03, 0xEF, 0x0D, +0x00, 0x49, 0x50, 0x80, 0x01, 0x0E, 0xEF, 0x0D, +0x00, 0x0E, 0xF0, 0x0D, 0x6A, 0x80, 0x95, 0x19, +0x01, 0x0E, 0xEF, 0x0D, 0x00, 0x0E, 0xF0, 0x0D, +0xFF, 0xA0, 0x0C, 0x18, 0x10, 0x03, 0x75, 0x0A, +0x10, 0x49, 0x30, 0x81, 0x21, 0x18, 0x18, 0x79, +0x10, 0x49, 0x60, 0x80, 0x0F, 0x98, 0xBD, 0x15, +0x20, 0x03, 0x75, 0x0A, 0x20, 0x62, 0xFF, 0x00, +0x0F, 0x98, 0xFE, 0x15, 0x00, 0x31, 0xAD, 0x18, +0xA0, 0x49, 0x3B, 0x80, 0xA0, 0x48, 0xFC, 0xA0, +0xFF, 0xFF, 0x10, 0x03, 0x34, 0x00, 0x10, 0x49, +0x00, 0x88, 0x62, 0x18, 0xC0, 0x03, 0x10, 0x02, +0xD0, 0x03, 0x11, 0x02, 0x00, 0x1A, 0x32, 0x02, +0x00, 0x0D, 0xD1, 0x0A, 0x00, 0x03, 0x35, 0x00, +0x00, 0x0D, 0x72, 0x0A, 0x0F, 0x98, 0x65, 0x1C, +0x00, 0x03, 0x6D, 0x0A, 0x00, 0x49, 0x70, 0x83, +0x00, 0x0E, 0x09, 0x02, 0xA0, 0x1A, 0x8B, 0x0B, +0x70, 0x03, 0x09, 0x02, 0xFF, 0xFF, 0xA7, 0x20, +0x1A, 0x00, 0x01, 0x18, 0x20, 0x03, 0x56, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0xFE, 0x15, 0x00, 0x0D, +0xEE, 0x0A, 0x00, 0x03, 0x1A, 0xF9, 0x00, 0x0D, +0xEF, 0x0A, 0xA0, 0x1A, 0x32, 0x02, 0xA1, 0x20, +0x5A, 0x00, 0x05, 0x0D, 0xC4, 0x0D, 0x10, 0x03, +0x34, 0x00, 0x01, 0x0D, 0xC6, 0x0D, 0xB0, 0x1A, +0x32, 0x02, 0x0B, 0x0D, 0xE7, 0x0D, 0x0F, 0x98, +0x98, 0x19, 0x00, 0x03, 0x76, 0x0A, 0xC0, 0x48, +0xCB, 0x80, 0x70, 0x03, 0x09, 0x02, 0xFF, 0xFF, +0x71, 0x21, 0x07, 0x0D, 0x09, 0x02, 0x00, 0x03, +0x6D, 0x0A, 0x07, 0x48, 0xF1, 0x84, 0x90, 0x19, +0xFF, 0xA0, 0x92, 0x19, 0xFF, 0xA0, 0x10, 0x03, +0x0C, 0x00, 0x1C, 0x51, 0xC1, 0x83, 0xC0, 0x03, +0x10, 0x02, 0xD0, 0x03, 0x11, 0x02, 0xFF, 0xFF, +0xCD, 0x38, 0xAC, 0x18, 0xAF, 0x51, 0x10, 0x80, +0xA0, 0x31, 0xA2, 0x49, 0x2B, 0x80, 0x91, 0x19, +0xFF, 0xA0, 0x10, 0x03, 0x34, 0x00, 0x10, 0x49, +0x81, 0x80, 0x00, 0x03, 0x35, 0x00, 0xA0, 0x48, +0x4C, 0x80, 0x62, 0x19, 0x40, 0x03, 0x76, 0x0A, +0x3F, 0x80, 0x61, 0x19, 0x40, 0x03, 0x79, 0x0A, +0xCF, 0x51, 0x40, 0x80, 0xC0, 0x31, 0xC1, 0x79, +0xC0, 0x31, 0x1F, 0x80, 0xC1, 0x79, 0xCD, 0x20, +0xC0, 0x4A, 0x1E, 0x00, 0x2A, 0x80, 0x90, 0x19, +0xFF, 0xA0, 0x70, 0x19, 0xA0, 0x03, 0x06, 0x02, +0xB0, 0x1A, 0x32, 0x02, 0x9B, 0x00, 0x9C, 0x48, +0x1C, 0x80, 0x71, 0x21, 0xB1, 0x21, 0xA1, 0x39, +0x91, 0x87, 0x90, 0x19, 0x74, 0x48, 0xFD, 0xA0, +0xFF, 0xFF, 0x96, 0x18, 0xFF, 0xA0, 0xC0, 0x03, +0x10, 0x02, 0x91, 0x19, 0x1F, 0x19, 0x00, 0x03, +0xD0, 0x0A, 0x00, 0x49, 0x10, 0x80, 0x1A, 0x19, +0xC1, 0x48, 0xFD, 0xA0, 0xFF, 0xFF, 0x00, 0x03, +0x46, 0x00, 0x00, 0x49, 0xF1, 0xA0, 0xFF, 0xFF, +0x90, 0x19, 0x00, 0x03, 0x35, 0x00, 0xC0, 0x48, +0x0D, 0x98, 0xE5, 0x18, 0xFF, 0xFF, 0x90, 0x49, +0x10, 0x80, 0xFF, 0xA0, 0xD0, 0x03, 0x32, 0x00, +0x00, 0x03, 0xD0, 0x0A, 0x00, 0x49, 0xB1, 0x80, +0xCD, 0x48, 0x9A, 0x80, 0x60, 0x03, 0x78, 0x0A, +0xFF, 0xFF, 0x0F, 0x98, 0x36, 0x19, 0x90, 0x49, +0x20, 0x80, 0x92, 0x19, 0xFF, 0xA0, 0xCD, 0x48, +0x9C, 0x80, 0x60, 0x03, 0x76, 0x0A, 0xFF, 0xFF, +0x0F, 0x98, 0x36, 0x19, 0x90, 0x49, 0x20, 0x80, +0x92, 0x19, 0xFF, 0xA0, 0xD0, 0x03, 0x11, 0x02, +0xFF, 0xFF, 0xCD, 0x38, 0xAC, 0x18, 0x0F, 0x98, +0x2E, 0x16, 0xA2, 0x49, 0xFB, 0xA0, 0xFF, 0xFF, +0x91, 0x19, 0xFF, 0xA0, 0x95, 0x19, 0x2C, 0x18, +0xA0, 0x03, 0x56, 0x00, 0xB0, 0x03, 0x55, 0x00, +0xD0, 0x1A, 0x32, 0x02, 0x00, 0x19, 0x1D, 0x00, +0xFF, 0xFF, 0x01, 0x20, 0xDA, 0x20, 0xB1, 0x39, +0xA1, 0x87, 0x0F, 0x98, 0xFE, 0x15, 0x03, 0x49, +0xFA, 0xA0, 0xFF, 0xFF, 0xA0, 0x03, 0x56, 0x00, +0xB0, 0x03, 0x55, 0x00, 0xD0, 0x1A, 0x32, 0x02, +0xDA, 0x20, 0xD1, 0x39, 0x00, 0x19, 0x1D, 0x00, +0xFF, 0xFF, 0x01, 0x20, 0xDA, 0x20, 0xB1, 0x39, +0xA1, 0x87, 0x0F, 0x98, 0xFE, 0x15, 0x03, 0x49, +0xFA, 0xA0, 0xFF, 0xFF, 0xA0, 0x03, 0x56, 0x00, +0xD0, 0x1A, 0x32, 0x02, 0x00, 0x19, 0x1D, 0x00, +0xFF, 0xFF, 0x01, 0x20, 0xD1, 0x21, 0xA1, 0x39, +0xA1, 0x87, 0x0F, 0x98, 0xFE, 0x15, 0x03, 0x49, +0xFA, 0xA0, 0xFF, 0xFF, 0xA0, 0x03, 0x56, 0x00, +0xB0, 0x03, 0x55, 0x00, 0xFF, 0xFF, 0xB1, 0x39, +0xAB, 0x58, 0xD0, 0x1A, 0x32, 0x02, 0x00, 0x19, +0x10, 0x1E, 0xD1, 0x20, 0x1D, 0x00, 0xFF, 0xFF, +0x01, 0x20, 0xD1, 0x21, 0xA1, 0x39, 0xA1, 0x87, +0x0F, 0x98, 0xFE, 0x15, 0x03, 0x49, 0xFA, 0xA0, +0xFF, 0xFF, 0x90, 0x19, 0xFF, 0xA0, 0xA0, 0x03, +0x06, 0x02, 0xB0, 0x1A, 0x32, 0x02, 0x00, 0x19, +0x10, 0x19, 0x0F, 0x98, 0x7C, 0x15, 0x50, 0x19, +0x2B, 0x00, 0x25, 0x48, 0x0B, 0x98, 0x97, 0x15, +0xFF, 0xFF, 0xB1, 0x21, 0xA1, 0x39, 0x81, 0x87, +0x20, 0x03, 0x10, 0x02, 0xFF, 0xFF, 0x0F, 0x98, +0x17, 0x16, 0x06, 0x48, 0xFC, 0xA0, 0xFF, 0xFF, +0x91, 0x19, 0xFF, 0xA0, 0x90, 0x19, 0x00, 0x03, +0x0F, 0x01, 0x00, 0x49, 0xF0, 0xA0, 0xFF, 0xFF, +0x80, 0x1A, 0x00, 0x80, 0x90, 0x1A, 0xFF, 0x7F, +0x60, 0x1A, 0x00, 0x80, 0x70, 0x1A, 0xFF, 0x7F, +0x50, 0x03, 0x06, 0x02, 0x30, 0x03, 0xE5, 0x00, +0x1F, 0x51, 0x40, 0x80, 0x30, 0x03, 0x56, 0x00, +0xFF, 0xFF, 0x53, 0x38, 0x30, 0x1A, 0x32, 0x02, +0x40, 0x1A, 0xB2, 0x04, 0xD0, 0x1A, 0xFC, 0x0C, +0x10, 0x19, 0x0D, 0x00, 0x01, 0x50, 0xF0, 0x80, +0xA3, 0x00, 0xB4, 0x00, 0xFF, 0xFF, 0xA8, 0x48, +0x1D, 0x80, 0x8A, 0x18, 0xA9, 0x48, 0x1B, 0x80, +0x9A, 0x18, 0xB6, 0x48, 0x1D, 0x80, 0x6B, 0x18, +0xB7, 0x48, 0x1B, 0x80, 0x7B, 0x18, 0x11, 0x21, +0x00, 0x03, 0x56, 0x00, 0x10, 0x48, 0x2C, 0x80, +0x10, 0x19, 0xD1, 0x21, 0x31, 0x21, 0x41, 0x21, +0x51, 0x39, 0x31, 0x86, 0x89, 0x38, 0x67, 0x38, +0x68, 0x38, 0x00, 0x03, 0x0F, 0x01, 0x90, 0x19, +0x60, 0x48, 0xFD, 0xA0, 0xFF, 0xFF, 0x93, 0x19, +0xFF, 0xA0, 0xC0, 0x19, 0x20, 0x03, 0xEE, 0x0A, +0x20, 0x49, 0xFC, 0xA0, 0xFF, 0xFF, 0xA0, 0x03, +0x55, 0x00, 0x2A, 0x48, 0xFB, 0xA0, 0xFF, 0xFF, +0x20, 0x03, 0xEF, 0x0A, 0x20, 0x49, 0xFC, 0xA0, +0xFF, 0xFF, 0xA0, 0x03, 0x56, 0x00, 0x2A, 0x48, +0xFB, 0xA0, 0xFF, 0xFF, 0x00, 0x03, 0xC4, 0x0D, +0x10, 0x03, 0xC6, 0x0D, 0x21, 0x18, 0x18, 0x79, +0x10, 0x49, 0x60, 0x80, 0x0F, 0x98, 0xBD, 0x15, +0x20, 0x03, 0x3B, 0x00, 0x20, 0x62, 0xFF, 0x00, +0x0F, 0x98, 0xFE, 0x15, 0x50, 0x18, 0xC0, 0x03, +0xE7, 0x0D, 0x90, 0x03, 0x55, 0x00, 0xA0, 0x03, +0x56, 0x00, 0x20, 0x03, 0xEF, 0x0A, 0x20, 0x49, +0x2A, 0x80, 0x21, 0x39, 0x6F, 0x81, 0x10, 0x19, +0x70, 0x19, 0x1A, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x30, 0x1E, 0x62, 0x18, 0x63, 0x20, +0x6C, 0x20, 0x06, 0x00, 0x05, 0x48, 0x1C, 0x80, +0x71, 0x19, 0x11, 0x21, 0x19, 0x48, 0x11, 0x87, +0x70, 0x49, 0x30, 0x80, 0x21, 0x39, 0x20, 0x49, +0xAB, 0x86, 0x21, 0x21, 0x02, 0x0D, 0xEA, 0x0A, +0xC0, 0x03, 0xE7, 0x0D, 0x90, 0x03, 0x55, 0x00, +0xA0, 0x03, 0x56, 0x00, 0x00, 0x03, 0x56, 0x00, +0xFF, 0xFF, 0x01, 0x39, 0x20, 0x03, 0xEF, 0x0A, +0x20, 0x48, 0x3C, 0x80, 0x20, 0x03, 0x56, 0x00, +0x6F, 0x81, 0x10, 0x19, 0x70, 0x19, 0x1A, 0x58, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x30, 0x1E, +0x62, 0x18, 0x63, 0x20, 0x6C, 0x20, 0x06, 0x00, +0x05, 0x48, 0x1C, 0x80, 0x71, 0x19, 0x11, 0x21, +0x19, 0x48, 0x11, 0x87, 0x70, 0x49, 0x30, 0x80, +0x21, 0x21, 0x2A, 0x48, 0xAC, 0x86, 0x02, 0x0D, +0xEB, 0x0A, 0xC0, 0x03, 0xE7, 0x0D, 0x90, 0x03, +0x55, 0x00, 0xA0, 0x03, 0x56, 0x00, 0x20, 0x03, +0xEE, 0x0A, 0x20, 0x49, 0x2A, 0x80, 0x21, 0x39, +0x6F, 0x81, 0x10, 0x19, 0x70, 0x19, 0x2A, 0x58, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x30, 0x1E, +0x63, 0x18, 0x6C, 0x20, 0x06, 0x00, 0x05, 0x48, +0x1C, 0x80, 0x71, 0x19, 0x11, 0x21, 0x61, 0x21, +0x1A, 0x48, 0x81, 0x87, 0x70, 0x49, 0x30, 0x80, +0x21, 0x39, 0x20, 0x49, 0xAB, 0x86, 0x21, 0x21, +0x02, 0x0D, 0xEC, 0x0A, 0xC0, 0x03, 0xE7, 0x0D, +0xA0, 0x03, 0x56, 0x00, 0x90, 0x03, 0x55, 0x00, +0x00, 0x03, 0x55, 0x00, 0x20, 0x03, 0xEE, 0x0A, +0xFF, 0xFF, 0x01, 0x39, 0x20, 0x48, 0x3C, 0x80, +0x20, 0x03, 0x55, 0x00, 0x6F, 0x81, 0x10, 0x19, +0x70, 0x19, 0x2A, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x30, 0x1E, 0x63, 0x18, 0x6C, 0x20, +0x06, 0x00, 0x05, 0x48, 0x1C, 0x80, 0x71, 0x19, +0x11, 0x21, 0x61, 0x21, 0x1A, 0x48, 0x81, 0x87, +0x70, 0x49, 0x30, 0x80, 0x21, 0x21, 0x29, 0x48, +0xAC, 0x86, 0x02, 0x0D, 0xED, 0x0A, 0xC0, 0x19, +0xA0, 0x03, 0xEC, 0x0A, 0xB0, 0x03, 0xE7, 0x0D, +0x00, 0x03, 0x56, 0x00, 0xFF, 0xFF, 0x0A, 0x58, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x1E, +0xB0, 0x20, 0x10, 0x03, 0xEA, 0x0A, 0x20, 0x03, +0xEB, 0x0A, 0xFF, 0xFF, 0xB1, 0x20, 0x0B, 0x00, +0x05, 0x48, 0x1C, 0x80, 0xC1, 0x21, 0xB1, 0x21, +0x11, 0x21, 0x12, 0x48, 0x8C, 0x87, 0xA1, 0x21, +0x00, 0x03, 0xED, 0x0A, 0xA0, 0x48, 0x2C, 0x86, +0xFF, 0xA0, 0x81, 0x19, 0x50, 0x03, 0xC4, 0x0D, +0x10, 0x03, 0xBA, 0x00, 0x51, 0x48, 0x6B, 0x80, +0x00, 0x03, 0xC1, 0x0D, 0xC0, 0x48, 0xFA, 0xA0, +0xFF, 0xFF, 0x5F, 0x80, 0x00, 0x03, 0xBF, 0x0D, +0xC0, 0x48, 0xFA, 0xA0, 0xFF, 0xFF, 0x00, 0x03, +0xC0, 0x0D, 0xC0, 0x48, 0xFC, 0xA0, 0xFF, 0xFF, +0x80, 0x19, 0xFF, 0xA0, 0x24, 0x48, 0x1B, 0x80, +0x24, 0x18, 0xFF, 0xA0, 0x0F, 0x98, 0x8A, 0x10, +0xB0, 0x1A, 0xFF, 0xFF, 0xC0, 0x1A, 0xFF, 0xFF, +0x00, 0x03, 0xE5, 0x00, 0x0F, 0x51, 0xB0, 0x80, +0x0F, 0x98, 0x9B, 0x10, 0x00, 0x03, 0xA8, 0x00, +0x00, 0x49, 0x30, 0x80, 0xC0, 0x03, 0xA9, 0x00, +0x2F, 0x80, 0xB0, 0x03, 0xA9, 0x00, 0x70, 0x19, +0xA0, 0x1A, 0x8B, 0x0B, 0xA7, 0x20, 0x1A, 0x00, +0x01, 0x18, 0x20, 0x03, 0x56, 0x00, 0xFF, 0xFF, +0x0F, 0x98, 0xFE, 0x15, 0x00, 0x0D, 0xE2, 0x0A, +0x00, 0x03, 0x1A, 0xF9, 0x00, 0x0D, 0xE3, 0x0A, +0x40, 0x19, 0x20, 0x03, 0xCF, 0x00, 0x20, 0x49, +0x60, 0x80, 0x00, 0x03, 0xD5, 0x0A, 0x40, 0x18, +0x0F, 0x98, 0xFE, 0x15, 0x40, 0x38, 0xA0, 0x1A, +0xF2, 0x05, 0xA1, 0x20, 0x5A, 0x00, 0x00, 0x03, +0xE3, 0x0A, 0x0C, 0x48, 0x30, 0x81, 0x80, 0x03, +0xB3, 0x0D, 0x08, 0x48, 0xA0, 0x81, 0x80, 0x03, +0xB4, 0x0D, 0x08, 0x48, 0x01, 0x82, 0x20, 0x03, +0x17, 0x00, 0x00, 0x03, 0x74, 0x0A, 0xFF, 0xFF, +0x20, 0x20, 0x0F, 0x98, 0x95, 0x1A, 0x52, 0x48, +0x6B, 0x81, 0xEF, 0x83, 0x20, 0x03, 0xA7, 0x00, +0x00, 0x03, 0x74, 0x0A, 0xFF, 0xFF, 0x20, 0x20, +0x0F, 0x98, 0x95, 0x1A, 0x52, 0x48, 0xBB, 0x80, +0x3F, 0x83, 0x20, 0x03, 0x16, 0x00, 0x00, 0x03, +0x74, 0x0A, 0xFF, 0xFF, 0x20, 0x20, 0x0F, 0x98, +0x95, 0x1A, 0x52, 0x48, 0x9C, 0x82, 0x00, 0x03, +0xE2, 0x0A, 0x0B, 0x48, 0x30, 0x81, 0x80, 0x03, +0xB5, 0x0D, 0x08, 0x48, 0xA0, 0x81, 0x80, 0x03, +0xB6, 0x0D, 0x08, 0x48, 0xB1, 0x82, 0x20, 0x03, +0x19, 0x00, 0x00, 0x03, 0x74, 0x0A, 0xFF, 0xFF, +0x20, 0x20, 0x0F, 0x98, 0x95, 0x1A, 0x52, 0x48, +0x1B, 0x82, 0x2F, 0x81, 0x20, 0x03, 0xA7, 0x00, +0x00, 0x03, 0x74, 0x0A, 0xFF, 0xFF, 0x20, 0x20, +0x0F, 0x98, 0x95, 0x1A, 0x52, 0x48, 0x6B, 0x81, +0x7F, 0x80, 0x20, 0x03, 0x18, 0x00, 0xFF, 0xFF, +0x0F, 0x98, 0x95, 0x1A, 0x52, 0x48, 0xEB, 0x80, +0xA7, 0x18, 0x0F, 0x98, 0x24, 0x1D, 0xD0, 0x03, +0x6D, 0x0A, 0xFF, 0xFF, 0xD1, 0x39, 0x0D, 0x0D, +0x6D, 0x0A, 0x7D, 0x48, 0xFB, 0xA0, 0xFF, 0xFF, +0x0F, 0x88, 0xAF, 0x1A, 0x10, 0x03, 0x6D, 0x0A, +0xFF, 0xFF, 0x71, 0x21, 0x71, 0x48, 0xFB, 0xA0, +0xFF, 0xFF, 0x0F, 0x88, 0xAF, 0x1A, 0x90, 0x19, +0x00, 0x0E, 0xF3, 0x0A, 0x00, 0x0E, 0xBA, 0x0A, +0x00, 0x03, 0xA5, 0x00, 0x00, 0x49, 0xF0, 0xA0, +0xFF, 0xFF, 0x0F, 0x98, 0x53, 0x1C, 0xD0, 0x49, +0x11, 0x82, 0xA0, 0x1A, 0xBB, 0x0A, 0x88, 0x19, +0xA0, 0x0B, 0xA1, 0x21, 0x81, 0x39, 0xC1, 0x87, +0x70, 0x19, 0x00, 0x03, 0xA5, 0x00, 0x70, 0x48, +0x0B, 0x88, 0x4D, 0x1C, 0x00, 0x03, 0xC4, 0x0A, +0x07, 0x50, 0xE0, 0x80, 0x02, 0x0E, 0xF3, 0x0A, +0x00, 0x03, 0xBA, 0x0A, 0x17, 0x18, 0x18, 0x21, +0x01, 0xC0, 0x00, 0x0D, 0xBA, 0x0A, 0x00, 0x03, +0xC4, 0x0A, 0x07, 0xC8, 0x00, 0x0D, 0xC4, 0x0A, +0x71, 0x21, 0x7F, 0x86, 0x00, 0x03, 0xC4, 0x0A, +0x00, 0x0D, 0xC5, 0x0A, 0x00, 0x0E, 0xC4, 0x0A, +0x70, 0x19, 0x07, 0x0D, 0x09, 0x02, 0xB0, 0x19, +0x70, 0x03, 0x09, 0x02, 0xD0, 0x03, 0x6D, 0x0A, +0x7D, 0x48, 0x0B, 0x88, 0x23, 0x1C, 0x10, 0x1A, +0x8B, 0x0B, 0x17, 0x20, 0x01, 0x00, 0x20, 0x03, +0x56, 0x00, 0xFF, 0xFF, 0x0F, 0x98, 0xFE, 0x15, +0x00, 0x03, 0x18, 0xF9, 0x00, 0x0D, 0xE2, 0x0A, +0x00, 0x03, 0x1A, 0xF9, 0x00, 0x0D, 0xE3, 0x0A, +0x60, 0x03, 0xA9, 0x00, 0x00, 0x03, 0xA8, 0x00, +0x00, 0x49, 0x81, 0x80, 0x50, 0x03, 0xE3, 0x0A, +0x20, 0x03, 0xE2, 0x0A, 0x26, 0x48, 0x01, 0x88, +0x08, 0x1C, 0x7F, 0x80, 0x50, 0x03, 0xE2, 0x0A, +0x20, 0x03, 0xE3, 0x0A, 0x26, 0x48, 0x01, 0x88, +0x08, 0x1C, 0x60, 0x1A, 0xAB, 0x00, 0x06, 0x0D, +0x0A, 0x02, 0x80, 0x19, 0x08, 0x0D, 0x0B, 0x02, +0xB0, 0x19, 0x00, 0x03, 0xA5, 0x00, 0x80, 0x03, +0x0B, 0x02, 0x80, 0x48, 0x0B, 0x88, 0x08, 0x1C, +0x60, 0x03, 0x0A, 0x02, 0x06, 0x00, 0x50, 0x48, +0x0C, 0x88, 0x00, 0x1C, 0xC0, 0x03, 0xAA, 0x00, +0xFF, 0xFF, 0x0C, 0x20, 0x50, 0x48, 0x0B, 0x88, +0x00, 0x1C, 0x00, 0x03, 0x0C, 0x00, 0x09, 0x51, +0x20, 0x82, 0x00, 0x03, 0xE2, 0x0A, 0x00, 0x0D, +0xEE, 0x0A, 0x00, 0x03, 0xE3, 0x0A, 0x00, 0x0D, +0xEF, 0x0A, 0x10, 0x1A, 0x8B, 0x0B, 0x17, 0x20, +0x01, 0x00, 0xA0, 0x1A, 0xF2, 0x05, 0xA0, 0x20, +0x5A, 0x00, 0xA0, 0x1A, 0x34, 0x0D, 0x00, 0x03, +0xEF, 0x0A, 0xFF, 0xFF, 0xA0, 0x20, 0x0A, 0x00, +0x50, 0x48, 0xFC, 0x82, 0xA0, 0x1A, 0x44, 0x0D, +0x00, 0x03, 0xEE, 0x0A, 0xFF, 0xFF, 0xA0, 0x20, +0x0A, 0x00, 0x50, 0x48, 0x6C, 0x82, 0xA0, 0x1A, +0xBB, 0x0A, 0xA8, 0x20, 0x0A, 0x00, 0xFF, 0xFF, +0x01, 0x21, 0xA0, 0x08, 0x10, 0x03, 0xC3, 0x0A, +0x01, 0x48, 0x2B, 0x80, 0xB1, 0x19, 0x9F, 0x81, +0xA1, 0x08, 0x00, 0x03, 0xBA, 0x0A, 0x18, 0x18, +0x10, 0x21, 0x01, 0xC0, 0x00, 0x0D, 0xBA, 0x0A, +0x00, 0x03, 0xC4, 0x0A, 0x08, 0xC0, 0x00, 0x0D, +0xC4, 0x0A, 0x01, 0x0E, 0xF3, 0x0A, 0xB1, 0x19, +0x8F, 0x80, 0x61, 0x21, 0x06, 0x0D, 0x0A, 0x02, +0x81, 0x21, 0x08, 0x0D, 0x0B, 0x02, 0x0F, 0x88, +0xA8, 0x1B, 0xB0, 0x49, 0x30, 0x81, 0x70, 0x03, +0x09, 0x02, 0xA7, 0x18, 0x0F, 0x98, 0x2D, 0x1D, +0xB0, 0x03, 0x6E, 0x0A, 0xFF, 0xFF, 0xB1, 0x39, +0x0B, 0x0D, 0x6E, 0x0A, 0xB0, 0x03, 0x6D, 0x0A, +0xFF, 0xFF, 0xB1, 0x39, 0x0B, 0x0D, 0x6D, 0x0A, +0xDB, 0x18, 0x71, 0x39, 0x71, 0x21, 0x07, 0x0D, +0x09, 0x02, 0xB0, 0x19, 0x0F, 0x88, 0x72, 0x1B, +0x70, 0x19, 0x80, 0x19, 0x00, 0x03, 0xA5, 0x00, +0x70, 0x48, 0x4B, 0x82, 0x00, 0x03, 0xC4, 0x0A, +0x07, 0x50, 0x80, 0x80, 0x81, 0x21, 0x00, 0x03, +0xC5, 0x0A, 0x07, 0x50, 0x91, 0x81, 0x02, 0x0E, +0xF3, 0x0A, 0x6F, 0x81, 0x00, 0x03, 0xC5, 0x0A, +0x07, 0x50, 0x20, 0x81, 0x02, 0x0E, 0xF3, 0x0A, +0x00, 0x03, 0xBA, 0x0A, 0x17, 0x18, 0x18, 0x21, +0x01, 0xC0, 0x00, 0x0D, 0xBA, 0x0A, 0x00, 0x03, +0xC4, 0x0A, 0x07, 0xC8, 0x00, 0x0D, 0xC4, 0x0A, +0xA0, 0x1A, 0xBB, 0x0A, 0xA7, 0x20, 0xA0, 0x0B, +0x71, 0x21, 0x8F, 0x85, 0x90, 0x03, 0xF3, 0x0A, +0x08, 0x0D, 0xEB, 0x0D, 0xFF, 0xFF, 0xFF, 0xA0, +0x00, 0x03, 0xA5, 0x00, 0x20, 0x1A, 0xAF, 0x00, +0x10, 0x1A, 0x9D, 0x00, 0x30, 0x1A, 0xF2, 0x05, +0x42, 0x00, 0xFF, 0xFF, 0x34, 0x20, 0x43, 0x00, +0x14, 0x08, 0x21, 0x21, 0x11, 0x21, 0x01, 0x39, +0x51, 0x87, 0xFF, 0xA0, 0xB0, 0x03, 0xD1, 0x0A, +0x60, 0x03, 0x55, 0x00, 0x70, 0x03, 0x56, 0x00, +0x3F, 0x19, 0x00, 0x0E, 0x6D, 0x0A, 0x20, 0x03, +0x72, 0x0A, 0x81, 0x19, 0x91, 0x19, 0xCB, 0x18, +0x1C, 0x00, 0x12, 0x48, 0x0D, 0x88, 0xFD, 0x1C, +0xC7, 0x38, 0xC1, 0x39, 0x81, 0x49, 0x20, 0x81, +0x91, 0x49, 0x40, 0x80, 0x0C, 0x00, 0x10, 0x48, +0x0D, 0x88, 0xFD, 0x1C, 0xC1, 0x21, 0x0C, 0x00, +0x10, 0x48, 0x0D, 0x88, 0xFD, 0x1C, 0x97, 0x48, +0x50, 0x80, 0xC1, 0x21, 0x0C, 0x00, 0x10, 0x48, +0x0D, 0x88, 0xFD, 0x1C, 0xCB, 0x18, 0xC1, 0x39, +0x91, 0x49, 0x40, 0x80, 0x0C, 0x00, 0x10, 0x48, +0x0D, 0x88, 0xFD, 0x1C, 0x97, 0x48, 0x50, 0x80, +0xC2, 0x21, 0x0C, 0x00, 0x10, 0x48, 0x0C, 0x88, +0xFD, 0x1C, 0xCB, 0x18, 0xC7, 0x20, 0xC1, 0x39, +0x86, 0x48, 0x20, 0x81, 0x91, 0x49, 0x40, 0x80, +0x0C, 0x00, 0x10, 0x48, 0x0C, 0x88, 0xFD, 0x1C, +0xC1, 0x21, 0x0C, 0x00, 0x10, 0x48, 0x0C, 0x88, +0xFD, 0x1C, 0x97, 0x48, 0x50, 0x80, 0xC1, 0x21, +0x0C, 0x00, 0x10, 0x48, 0x0C, 0x88, 0xFD, 0x1C, +0xA0, 0x03, 0x6D, 0x0A, 0xA3, 0x48, 0xF0, 0x80, +0xD0, 0x1A, 0x8B, 0x0B, 0xA0, 0x03, 0x6D, 0x0A, +0xFF, 0xFF, 0xDA, 0x20, 0x00, 0x03, 0xD1, 0x0A, +0xCB, 0x18, 0xC0, 0x38, 0xDC, 0x08, 0xA1, 0x21, +0x0A, 0x0D, 0x6D, 0x0A, 0x7F, 0x83, 0x00, 0x0E, +0xF2, 0x0A, 0x10, 0x1A, 0x8B, 0x0B, 0xA1, 0x00, +0xC0, 0x03, 0xD1, 0x0A, 0xFF, 0xFF, 0xCA, 0x20, +0xDC, 0x00, 0x01, 0x0E, 0xF1, 0x0A, 0x10, 0x1A, +0x8B, 0x0B, 0xA0, 0x03, 0xF1, 0x0A, 0xFF, 0xFF, +0x1A, 0x20, 0xA1, 0x00, 0xC0, 0x03, 0xD1, 0x0A, +0xFF, 0xFF, 0xCA, 0x20, 0xAC, 0x00, 0xAD, 0x48, +0x5A, 0x80, 0xDA, 0x18, 0xA0, 0x03, 0xF1, 0x0A, +0x0A, 0x0D, 0xF2, 0x0A, 0xA0, 0x03, 0xF1, 0x0A, +0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, 0xF1, 0x0A, +0xA3, 0x48, 0x51, 0x86, 0xAB, 0x00, 0xDA, 0x48, +0xDA, 0x80, 0x10, 0x1A, 0x8B, 0x0B, 0xA0, 0x03, +0xF2, 0x0A, 0xFF, 0xFF, 0x1A, 0x20, 0xC0, 0x03, +0xD1, 0x0A, 0xFF, 0xFF, 0xCB, 0x38, 0xC0, 0x31, +0x1C, 0x08, 0x0F, 0x80, 0xB1, 0x21, 0x91, 0x21, +0x97, 0x48, 0x1D, 0x80, 0x91, 0x19, 0x1D, 0x80, +0x81, 0x21, 0x86, 0x48, 0x0D, 0x88, 0x72, 0x1C, +0xFF, 0xA0, 0xA0, 0x19, 0x0A, 0x0D, 0x6D, 0x0A, +0xC0, 0x03, 0x72, 0x0A, 0xB0, 0x03, 0xD1, 0x0A, +0xD0, 0x1A, 0x8B, 0x0B, 0x40, 0x19, 0x9B, 0x00, +0x9C, 0x48, 0x3C, 0x80, 0xC9, 0x18, 0xDA, 0x08, +0x41, 0x19, 0xB1, 0x21, 0xA1, 0x21, 0x90, 0x03, +0x06, 0x02, 0x9A, 0x48, 0x41, 0x87, 0x40, 0x49, +0xF0, 0xA0, 0xFF, 0xFF, 0x01, 0x0E, 0x6D, 0x0A, +0xFF, 0xA0, 0x00, 0x03, 0x0C, 0x00, 0x0A, 0x51, +0x51, 0x80, 0x10, 0x03, 0x6D, 0x0A, 0x11, 0x49, +0xF0, 0xA0, 0xFF, 0xFF, 0x10, 0x03, 0x6D, 0x0A, +0x10, 0x49, 0xF0, 0xA0, 0xFF, 0xFF, 0x2A, 0x18, +0x3A, 0x18, 0x31, 0x21, 0x31, 0x48, 0xF0, 0xA0, +0xFF, 0xFF, 0x40, 0x1A, 0x8B, 0x0B, 0x42, 0x20, +0x50, 0x1A, 0x8B, 0x0B, 0x53, 0x20, 0x05, 0x00, +0x40, 0x08, 0x23, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x40, 0x1E, 0x40, 0x22, 0x4D, 0x0B, +0x33, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x50, 0x1E, 0x50, 0x22, 0x4D, 0x0B, 0x05, 0x00, +0x40, 0x08, 0x51, 0x21, 0x41, 0x21, 0x05, 0x00, +0x40, 0x08, 0x51, 0x21, 0x41, 0x21, 0x05, 0x00, +0x40, 0x08, 0x21, 0x21, 0x31, 0x21, 0xAF, 0x85, +0xD0, 0x03, 0x6E, 0x0A, 0xD1, 0x49, 0xFD, 0xA0, +0xFF, 0xFF, 0xA0, 0x19, 0x00, 0x03, 0xB3, 0x0A, +0x10, 0x03, 0x38, 0x00, 0x10, 0x49, 0xF0, 0xA0, +0xFF, 0xFF, 0x21, 0x18, 0x18, 0x79, 0x10, 0x49, +0x60, 0x80, 0x0F, 0x98, 0xBD, 0x15, 0x20, 0x03, +0x38, 0x00, 0x20, 0x62, 0xFF, 0x00, 0x0F, 0x98, +0xFE, 0x15, 0x00, 0x0D, 0xB3, 0x0A, 0x40, 0x03, +0xB3, 0x0A, 0xB0, 0x1A, 0xF2, 0x05, 0xD0, 0x1A, +0x8B, 0x0B, 0xDA, 0x20, 0xCD, 0x00, 0xFF, 0xFF, +0xBC, 0x20, 0xCB, 0x00, 0xC4, 0x48, 0xDB, 0x81, +0x00, 0x03, 0x0C, 0x00, 0x0A, 0x51, 0x41, 0x81, +0x0F, 0x98, 0x24, 0x1D, 0xA1, 0x39, 0xD0, 0x03, +0x6E, 0x0A, 0xFF, 0xFF, 0xD1, 0x39, 0x0D, 0x0D, +0x6E, 0x0A, 0xD0, 0x03, 0x6D, 0x0A, 0xFF, 0xFF, +0xD1, 0x39, 0x0D, 0x0D, 0x6D, 0x0A, 0xD1, 0x49, +0x8A, 0x80, 0x01, 0x0E, 0x6D, 0x0A, 0xFF, 0xA0, +0xD0, 0x03, 0xC2, 0x0D, 0xDA, 0xC0, 0x0D, 0x0D, +0xC2, 0x0D, 0x40, 0x03, 0xB3, 0x0A, 0xFF, 0xFF, +0xA1, 0x21, 0xB0, 0x03, 0x6D, 0x0A, 0xAB, 0x48, +0x0C, 0x85, 0xFF, 0xA0, 0xB0, 0x03, 0x05, 0x0B, +0xD0, 0x19, 0x30, 0x03, 0x0A, 0x00, 0xBD, 0x50, +0xF0, 0xA0, 0xFF, 0xFF, 0xD1, 0x21, 0xD3, 0x48, +0xA1, 0x87, 0xFF, 0xA0, 0x8C, 0x00, 0x80, 0x62, +0xFF, 0x00, 0x70, 0x03, 0x29, 0x00, 0xFF, 0xFF, +0x71, 0x39, 0x87, 0x58, 0xFF, 0xFF, 0x70, 0x03, +0x29, 0x00, 0x80, 0x1E, 0xA8, 0x20, 0x71, 0x79, +0xA7, 0x78, 0xA0, 0x62, 0xFF, 0x00, 0xDC, 0x00, +0xDD, 0x51, 0x10, 0x80, 0xAD, 0xC1, 0xA8, 0xC1, +0xAA, 0xC1, 0x0A, 0x0D, 0xE4, 0x0A, 0xFF, 0xA0, +0x00, 0x03, 0x28, 0x00, 0x00, 0x0D, 0xB2, 0x0D, +0x00, 0x03, 0x6D, 0x0A, 0x02, 0x49, 0x81, 0x80, +0x00, 0x03, 0x74, 0x00, 0x00, 0x49, 0x21, 0x80, +0x00, 0x03, 0x28, 0x00, 0x00, 0x0D, 0xB2, 0x0D, +0x90, 0x1A, 0x2C, 0x0B, 0x92, 0x21, 0xC0, 0x19, +0xB0, 0x19, 0x3A, 0x19, 0xA9, 0x00, 0xA8, 0x51, +0x20, 0x80, 0xBC, 0xC0, 0x3F, 0x80, 0xA0, 0x62, +0xFF, 0x00, 0x9A, 0x08, 0x93, 0x21, 0xC1, 0x21, +0xC3, 0x48, 0x41, 0x87, 0x0B, 0x0D, 0x05, 0x0B, +0xD0, 0x1A, 0x58, 0x0D, 0xD2, 0x21, 0x0D, 0x0D, +0x09, 0x0B, 0x00, 0x0E, 0x03, 0x0B, 0x00, 0x0E, +0x07, 0x0B, 0x00, 0x0E, 0x08, 0x0B, 0xD0, 0x03, +0x09, 0x0B, 0x0D, 0x00, 0x0E, 0x51, 0x00, 0x88, +0x75, 0x1E, 0x80, 0x1A, 0x94, 0x0D, 0xA0, 0x03, +0x07, 0x0B, 0xFF, 0xFF, 0x8A, 0x20, 0x08, 0x00, +0x10, 0x18, 0x11, 0x39, 0x01, 0x0D, 0x0A, 0x0B, +0x00, 0x49, 0x00, 0x88, 0x75, 0x1E, 0x30, 0x03, +0x0A, 0x00, 0x03, 0x48, 0x0A, 0x88, 0x6E, 0x1E, +0x00, 0x03, 0x07, 0x0B, 0x10, 0x03, 0x03, 0x0B, +0x10, 0xC0, 0x01, 0x0D, 0x03, 0x0B, 0xD0, 0x03, +0x09, 0x0B, 0xFF, 0xFF, 0xD2, 0x39, 0x10, 0x03, +0x0A, 0x0B, 0x61, 0x18, 0x7D, 0x00, 0x07, 0x0D, +0xE2, 0x0A, 0xD1, 0x21, 0x8D, 0x00, 0x08, 0x0D, +0xE3, 0x0A, 0x90, 0x1A, 0x2C, 0x0B, 0x13, 0x59, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x10, 0x1E, +0x91, 0x20, 0x09, 0x0D, 0x0B, 0x0B, 0x09, 0x00, +0x00, 0x0D, 0xE8, 0x0A, 0x91, 0x21, 0x09, 0x00, +0x00, 0x0D, 0xE9, 0x0A, 0x0F, 0x98, 0x7E, 0x25, +0x0A, 0x0D, 0xF5, 0x0A, 0x0A, 0x0D, 0x2D, 0x00, +0x0F, 0x98, 0xE7, 0x24, 0x90, 0x03, 0x0B, 0x0B, +0x97, 0x08, 0x91, 0x21, 0x98, 0x08, 0x91, 0x21, +0xD0, 0x03, 0x09, 0x0B, 0xAD, 0x00, 0x9A, 0x08, +0x00, 0x03, 0x08, 0x0B, 0xFF, 0xFF, 0x01, 0x21, +0x00, 0x0D, 0x08, 0x0B, 0xD0, 0x03, 0x09, 0x0B, +0x0D, 0x00, 0x08, 0x51, 0x50, 0x80, 0x00, 0x03, +0x21, 0x00, 0x00, 0x0D, 0xBC, 0x0D, 0x6F, 0x81, +0x10, 0x03, 0x07, 0x0B, 0x90, 0x1A, 0x85, 0x0D, +0x80, 0x1A, 0x94, 0x0D, 0x70, 0x1A, 0xA3, 0x0D, +0x91, 0x20, 0x81, 0x20, 0x71, 0x20, 0x90, 0x0B, +0x80, 0x0B, 0x70, 0x0B, 0x7F, 0x80, 0x00, 0x03, +0x07, 0x0B, 0x10, 0x03, 0x03, 0x0B, 0x10, 0xC0, +0x01, 0x0D, 0x03, 0x0B, 0xD0, 0x03, 0x09, 0x0B, +0x0D, 0x00, 0x08, 0x51, 0xE1, 0x80, 0x10, 0x03, +0x07, 0x0B, 0x90, 0x1A, 0x85, 0x0D, 0x80, 0x1A, +0x94, 0x0D, 0x70, 0x1A, 0xA3, 0x0D, 0x91, 0x20, +0x81, 0x20, 0x71, 0x20, 0x90, 0x0B, 0x80, 0x0B, +0x70, 0x0B, 0xD0, 0x03, 0x09, 0x0B, 0xFF, 0xFF, +0xD3, 0x21, 0x0D, 0x0D, 0x09, 0x0B, 0xA0, 0x03, +0x07, 0x0B, 0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, +0x07, 0x0B, 0xAF, 0x49, 0x01, 0x88, 0xFE, 0x1D, +0x00, 0x03, 0x08, 0x0B, 0x10, 0x03, 0x0A, 0x00, +0x01, 0x48, 0x5C, 0x81, 0xD0, 0x1A, 0x58, 0x0D, +0xD2, 0x21, 0xA0, 0x19, 0x0D, 0x00, 0x0E, 0x51, +0x90, 0x80, 0x80, 0x1A, 0x94, 0x0D, 0x8A, 0x20, +0x08, 0x00, 0x00, 0x49, 0x31, 0x80, 0x00, 0x1A, +0xFF, 0x00, 0x80, 0x08, 0xD3, 0x21, 0xA1, 0x21, +0xAF, 0x49, 0x01, 0x87, 0xFF, 0xA0, 0xD0, 0x1A, +0x58, 0x0D, 0xD2, 0x21, 0x0D, 0x0D, 0x09, 0x0B, +0x00, 0x0E, 0x07, 0x0B, 0xD0, 0x03, 0x09, 0x0B, +0x0D, 0x00, 0x0E, 0x51, 0x00, 0x88, 0x1D, 0x1F, +0x00, 0x03, 0x07, 0x0B, 0x10, 0x03, 0x03, 0x0B, +0x10, 0x50, 0x01, 0x88, 0x1D, 0x1F, 0x0F, 0x98, +0xA9, 0x1D, 0x30, 0x03, 0x0A, 0x00, 0xD3, 0x48, +0x10, 0x85, 0x0D, 0x0D, 0x0A, 0x0B, 0xA0, 0x03, +0x05, 0x0B, 0xAD, 0xC0, 0x0A, 0x0D, 0x05, 0x0B, +0xA0, 0x1A, 0x9C, 0x0B, 0xAD, 0x20, 0xA0, 0x0B, +0xA0, 0x1A, 0xAC, 0x0B, 0xAD, 0x20, 0xA0, 0x0B, +0xA0, 0x1A, 0x22, 0x02, 0xAD, 0x20, 0xA1, 0x0B, +0xA0, 0x1A, 0x18, 0x02, 0xAD, 0x20, 0x00, 0x03, +0x2D, 0x02, 0xA0, 0x08, 0x80, 0x1A, 0x94, 0x0D, +0xA0, 0x03, 0x07, 0x0B, 0xFF, 0xFF, 0x8A, 0x20, +0xD1, 0x21, 0x8D, 0x08, 0x00, 0x03, 0x07, 0x0B, +0x10, 0x03, 0x03, 0x0B, 0x10, 0xC0, 0x01, 0x0D, +0x03, 0x0B, 0xD0, 0x03, 0x09, 0x0B, 0xFF, 0xFF, +0xD2, 0x39, 0x7D, 0x00, 0xFF, 0xFF, 0xD1, 0x21, +0x8D, 0x00, 0x10, 0x03, 0x0A, 0x0B, 0x90, 0x1A, +0x2C, 0x0B, 0x13, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x10, 0x1E, 0x91, 0x20, 0x97, 0x08, +0x91, 0x21, 0x98, 0x08, 0x91, 0x21, 0xD0, 0x03, +0x09, 0x0B, 0x0D, 0x00, 0x90, 0x08, 0x00, 0x03, +0x08, 0x0B, 0xFF, 0xFF, 0x01, 0x21, 0x00, 0x0D, +0x08, 0x0B, 0x10, 0x03, 0x21, 0x00, 0x01, 0x0D, +0xBC, 0x0D, 0x10, 0x03, 0x0A, 0x00, 0x01, 0x48, +0x00, 0x88, 0x9D, 0x1E, 0xD0, 0x03, 0x09, 0x0B, +0xFF, 0xFF, 0xD3, 0x21, 0x0D, 0x0D, 0x09, 0x0B, +0xA0, 0x03, 0x07, 0x0B, 0xFF, 0xFF, 0xA1, 0x21, +0x0A, 0x0D, 0x07, 0x0B, 0xAF, 0x49, 0x01, 0x88, +0xB9, 0x1E, 0xFF, 0xA0, 0x00, 0x0E, 0xF1, 0x0A, +0xB0, 0x1A, 0x2C, 0x0B, 0xA0, 0x03, 0xF1, 0x0A, +0xFF, 0xFF, 0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xA0, 0x1E, 0xBA, 0x20, 0xC0, 0x1A, +0x0E, 0x0B, 0xCA, 0x20, 0xDC, 0x18, 0xD2, 0x21, +0x0D, 0x00, 0x08, 0x51, 0x00, 0x88, 0xAA, 0x1F, +0xDB, 0x18, 0xD2, 0x21, 0x0D, 0x00, 0x08, 0x51, +0x00, 0x88, 0x9F, 0x1F, 0x0B, 0x51, 0x01, 0x88, +0x9F, 0x1F, 0xAB, 0x00, 0x0A, 0x0D, 0xE8, 0x0A, +0xAC, 0x00, 0x0A, 0x0D, 0xE2, 0x0A, 0xB1, 0x21, +0xC1, 0x21, 0xAB, 0x00, 0x0A, 0x0D, 0xE9, 0x0A, +0xAC, 0x00, 0x0A, 0x0D, 0xE3, 0x0A, 0xB1, 0x39, +0xC1, 0x39, 0x0F, 0x98, 0x7E, 0x25, 0x0A, 0x0D, +0xF5, 0x0A, 0xA0, 0x03, 0xB8, 0x00, 0xD0, 0x03, +0xF5, 0x0A, 0xDA, 0x48, 0xBD, 0x82, 0x0B, 0x00, +0xC0, 0x08, 0xB1, 0x21, 0xC1, 0x21, 0x0B, 0x00, +0xC0, 0x08, 0xB1, 0x21, 0xC1, 0x21, 0xAB, 0x00, +0xA0, 0x62, 0xFF, 0x00, 0x0F, 0x98, 0xB5, 0x1D, +0xA0, 0x03, 0xE4, 0x0A, 0xA0, 0x62, 0xFF, 0x00, +0x9C, 0x00, 0x90, 0x62, 0xFF, 0x00, 0xA9, 0x38, +0xAF, 0x51, 0x10, 0x80, 0xA0, 0x31, 0x90, 0x03, +0xB9, 0x00, 0xA9, 0x48, 0xAB, 0x80, 0xA0, 0x03, +0xE4, 0x0A, 0xA0, 0x62, 0x00, 0xFF, 0x9C, 0x00, +0x90, 0x62, 0xFF, 0x00, 0xA9, 0x68, 0xCA, 0x08, +0x5F, 0x83, 0xA0, 0x03, 0xE4, 0x0A, 0xAF, 0xC1, +0xCA, 0x08, 0x0F, 0x83, 0xB2, 0x21, 0xC2, 0x21, +0xAB, 0x00, 0xA0, 0x62, 0xFF, 0x00, 0x0F, 0x98, +0xB5, 0x1D, 0xA0, 0x03, 0xE4, 0x0A, 0xAA, 0xC9, +0xA8, 0xC1, 0x0A, 0x0D, 0xE4, 0x0A, 0x4F, 0x85, +0xB2, 0x21, 0xC2, 0x21, 0x0C, 0x00, 0x0D, 0x51, +0x20, 0x80, 0xC0, 0x0B, 0xBF, 0x81, 0xA0, 0x19, +0xAB, 0xC1, 0xCA, 0x08, 0x7F, 0x81, 0xDB, 0x18, +0xD2, 0x21, 0x0D, 0x00, 0x08, 0x51, 0x31, 0x80, +0xC2, 0x21, 0xC0, 0x0B, 0xFF, 0x80, 0x0B, 0x00, +0xC0, 0x08, 0xB1, 0x21, 0xC1, 0x21, 0x0B, 0x00, +0xC0, 0x08, 0xB1, 0x21, 0xC1, 0x21, 0x0B, 0x00, +0x00, 0x62, 0xFF, 0x00, 0x0F, 0xC1, 0x08, 0xC1, +0x09, 0xC1, 0xC0, 0x08, 0x00, 0x03, 0xF1, 0x0A, +0xFF, 0xFF, 0x01, 0x21, 0x00, 0x0D, 0xF1, 0x0A, +0x10, 0x03, 0x0A, 0x00, 0x01, 0x48, 0x01, 0x88, +0x2F, 0x1F, 0xFF, 0xA0, 0xFF, 0xFF, 0x30, 0x19, +0x40, 0x19, 0xA0, 0x19, 0x60, 0x1A, 0xD7, 0x0A, +0x50, 0x1A, 0x72, 0x03, 0xB0, 0x1A, 0x8B, 0x0B, +0xBA, 0x20, 0x9B, 0x00, 0xC0, 0x03, 0x56, 0x00, +0xD0, 0x03, 0x55, 0x00, 0x09, 0x0D, 0x18, 0xF9, +0x00, 0x0E, 0x19, 0xF9, 0x0C, 0x0D, 0x1A, 0xF9, +0x00, 0x0E, 0x1B, 0xF9, 0x20, 0x03, 0x1A, 0xF9, +0x10, 0x03, 0x18, 0xF9, 0xFF, 0xFF, 0xC1, 0x39, +0xD1, 0x39, 0x00, 0x19, 0x10, 0x49, 0x11, 0x80, +0x00, 0xC1, 0x1D, 0x48, 0x11, 0x80, 0x01, 0xC1, +0x20, 0x49, 0x11, 0x80, 0x02, 0xC1, 0x2C, 0x48, +0x11, 0x80, 0x03, 0xC1, 0xC1, 0x21, 0xD1, 0x21, +0x00, 0x49, 0x41, 0x80, 0xB0, 0x1A, 0xEF, 0x01, +0x87, 0x19, 0xFF, 0x82, 0x01, 0x49, 0x41, 0x80, +0xB0, 0x1A, 0xE8, 0x01, 0x83, 0x19, 0x9F, 0x82, +0x02, 0x49, 0x41, 0x80, 0xB0, 0x1A, 0x2F, 0x00, +0x83, 0x19, 0x3F, 0x82, 0x04, 0x49, 0x41, 0x80, +0xB0, 0x1A, 0xA6, 0x01, 0x83, 0x19, 0xDF, 0x81, +0x08, 0x49, 0x41, 0x80, 0xB0, 0x1A, 0xCB, 0x00, +0x83, 0x19, 0x7F, 0x81, 0x05, 0x49, 0x41, 0x80, +0xB0, 0x1A, 0xA0, 0x01, 0x82, 0x19, 0x1F, 0x81, +0x09, 0x49, 0x41, 0x80, 0xB0, 0x1A, 0xC8, 0x00, +0x82, 0x19, 0xBF, 0x80, 0x06, 0x49, 0x41, 0x80, +0xB0, 0x1A, 0x26, 0x00, 0x82, 0x19, 0x5F, 0x80, +0x0A, 0x49, 0x31, 0x80, 0xBB, 0x19, 0x82, 0x19, +0x0F, 0x80, 0x95, 0x20, 0x39, 0x00, 0xFF, 0xFF, +0x10, 0x1A, 0x05, 0x04, 0x03, 0x18, 0x18, 0x79, +0x10, 0x49, 0x60, 0x80, 0x0F, 0x98, 0xBD, 0x15, +0x20, 0x1A, 0x05, 0x04, 0x20, 0x62, 0xFF, 0x00, +0x0F, 0x98, 0xFE, 0x15, 0x30, 0x18, 0x9C, 0x38, +0x91, 0x39, 0x49, 0x00, 0x64, 0x08, 0x61, 0x21, +0x91, 0x21, 0x49, 0x00, 0x64, 0x08, 0x61, 0x21, +0x91, 0x21, 0x49, 0x00, 0x64, 0x08, 0x61, 0x21, +0x9C, 0x20, 0x92, 0x39, 0x49, 0x00, 0x64, 0x08, +0x61, 0x21, 0x91, 0x21, 0x49, 0x00, 0x64, 0x08, +0x61, 0x21, 0x91, 0x21, 0x49, 0x00, 0x64, 0x08, +0x61, 0x21, 0x9C, 0x20, 0x92, 0x39, 0x49, 0x00, +0x64, 0x08, 0x61, 0x21, 0x91, 0x21, 0x49, 0x00, +0x64, 0x08, 0x61, 0x21, 0x91, 0x21, 0x49, 0x00, +0x64, 0x08, 0x60, 0x1A, 0xD7, 0x0A, 0x70, 0x19, +0x20, 0x19, 0xB7, 0x50, 0x40, 0x80, 0x46, 0x00, +0x43, 0x48, 0x1C, 0x80, 0x21, 0x21, 0x61, 0x21, +0x71, 0x21, 0x79, 0x49, 0x61, 0x87, 0x28, 0x48, +0xCD, 0x80, 0x0F, 0x98, 0x24, 0x1D, 0xA1, 0x39, +0x10, 0x03, 0x6D, 0x0A, 0xFF, 0xFF, 0x11, 0x39, +0x01, 0x0D, 0x6D, 0x0A, 0x10, 0x49, 0xF0, 0xA0, +0xFF, 0xFF, 0xA1, 0x21, 0xB0, 0x03, 0x6D, 0x0A, +0xAB, 0x48, 0x0C, 0x88, 0xD1, 0x1F, 0xFF, 0xA0, +0x20, 0x03, 0x39, 0x00, 0x20, 0x49, 0xF0, 0xA0, +0xFF, 0xFF, 0xA0, 0x19, 0xB0, 0x19, 0xC0, 0x1A, +0x0E, 0x0B, 0xC2, 0x21, 0x30, 0x03, 0x0A, 0x00, +0x0C, 0x00, 0x08, 0x51, 0x50, 0x80, 0x00, 0x62, +0xFF, 0x00, 0x0B, 0x48, 0x1C, 0x80, 0xB0, 0x18, +0xC3, 0x21, 0xA1, 0x21, 0xA3, 0x48, 0x41, 0x87, +0x0B, 0x0D, 0xB3, 0x0A, 0xA0, 0x19, 0x00, 0x03, +0xB3, 0x0A, 0x10, 0x03, 0x39, 0x00, 0x21, 0x18, +0x18, 0x79, 0x10, 0x49, 0x60, 0x80, 0x0F, 0x98, +0xBD, 0x15, 0x20, 0x03, 0x39, 0x00, 0x20, 0x62, +0xFF, 0x00, 0x0F, 0x98, 0xFE, 0x15, 0x00, 0x0D, +0xB3, 0x0A, 0x40, 0x03, 0xB3, 0x0A, 0xC0, 0x1A, +0x0E, 0x0B, 0xC2, 0x21, 0xD0, 0x1A, 0x77, 0x00, +0xD2, 0x21, 0x30, 0x03, 0x0A, 0x00, 0x0C, 0x00, +0x10, 0x18, 0x18, 0x51, 0x41, 0x80, 0x1D, 0xC9, +0x1A, 0xC9, 0xC1, 0x08, 0x0F, 0x82, 0x00, 0x62, +0xFF, 0x00, 0x04, 0x48, 0x7B, 0x80, 0x0D, 0x00, +0x08, 0x51, 0x61, 0x80, 0x1D, 0xC1, 0x1A, 0xC9, +0xC1, 0x08, 0x5F, 0x81, 0x1D, 0x51, 0x91, 0x80, +0x1D, 0xC9, 0xC1, 0x08, 0x00, 0x03, 0x6E, 0x0A, +0xFF, 0xFF, 0x01, 0x21, 0x00, 0x0D, 0x6E, 0x0A, +0xAF, 0x80, 0x1D, 0xC9, 0x1A, 0xC9, 0x19, 0xC1, +0xC1, 0x08, 0x00, 0x03, 0x6E, 0x0A, 0xFF, 0xFF, +0x01, 0x21, 0x00, 0x0D, 0x6E, 0x0A, 0x40, 0x03, +0xB3, 0x0A, 0xFF, 0xFF, 0xC3, 0x21, 0xD3, 0x21, +0xA1, 0x21, 0xA3, 0x48, 0x01, 0x85, 0xFF, 0xA0, +0x00, 0x03, 0x7A, 0x0A, 0x00, 0x49, 0xA0, 0x80, +0x80, 0x19, 0x00, 0x03, 0x62, 0x0A, 0x10, 0x03, +0x49, 0x00, 0x01, 0x48, 0xFD, 0xA0, 0xFF, 0xFF, +0x81, 0x19, 0xFF, 0xA0, 0x81, 0x19, 0x90, 0x03, +0x62, 0x0A, 0x00, 0x03, 0x4A, 0x00, 0x90, 0x48, +0xFB, 0xA0, 0xFF, 0xFF, 0x80, 0x19, 0x90, 0x19, +0x60, 0x19, 0xB0, 0x03, 0x06, 0x02, 0xC0, 0x1A, +0x32, 0x02, 0x70, 0x03, 0x10, 0x02, 0x7F, 0x51, +0xF1, 0xA0, 0xFF, 0xFF, 0x07, 0x18, 0x10, 0x03, +0x4B, 0x00, 0x10, 0x49, 0x21, 0x80, 0x80, 0x19, +0xFF, 0xA0, 0x21, 0x18, 0x18, 0x79, 0x10, 0x49, +0x60, 0x80, 0x0F, 0x98, 0xBD, 0x15, 0x20, 0x03, +0x4B, 0x00, 0x20, 0x62, 0xFF, 0x00, 0x0F, 0x98, +0xFE, 0x15, 0x70, 0x18, 0x70, 0x49, 0xF0, 0xA0, +0xFF, 0xFF, 0x70, 0x31, 0x00, 0x03, 0x11, 0x02, +0x07, 0x48, 0xFA, 0xA0, 0xFF, 0xFF, 0xA0, 0x03, +0x63, 0x0A, 0x50, 0x03, 0x4D, 0x00, 0xA5, 0x48, +0xFC, 0xA0, 0xFF, 0xFF, 0x81, 0x19, 0xFF, 0xA0, +0x00, 0x03, 0xEE, 0x0A, 0x10, 0x03, 0xEF, 0x0A, +0x40, 0x03, 0x55, 0x00, 0x50, 0x03, 0x56, 0x00, +0xFF, 0xFF, 0x41, 0x39, 0x51, 0x39, 0x30, 0x19, +0x20, 0x19, 0x60, 0x03, 0xE5, 0x00, 0x6F, 0x51, +0x30, 0x81, 0x60, 0x03, 0xA8, 0x00, 0x60, 0x49, +0x80, 0x80, 0x31, 0x19, 0x60, 0x03, 0xA9, 0x00, +0x60, 0x49, 0xA0, 0x80, 0x30, 0x19, 0x51, 0x39, +0x7F, 0x80, 0x21, 0x19, 0x60, 0x03, 0xA9, 0x00, +0x60, 0x49, 0x20, 0x80, 0x20, 0x19, 0x41, 0x39, +0x02, 0x48, 0xF0, 0x80, 0x04, 0x48, 0xA0, 0x81, +0x13, 0x48, 0x31, 0x80, 0x03, 0x0E, 0xC9, 0x0A, +0xFF, 0xA0, 0x15, 0x48, 0x20, 0x80, 0x00, 0x0E, +0xC9, 0x0A, 0x21, 0x80, 0x04, 0x0E, 0xC9, 0x0A, +0xFF, 0xA0, 0x13, 0x48, 0x31, 0x80, 0x05, 0x0E, +0xC9, 0x0A, 0xFF, 0xA0, 0x15, 0x48, 0x20, 0x80, +0x01, 0x0E, 0xC9, 0x0A, 0x21, 0x80, 0x06, 0x0E, +0xC9, 0x0A, 0xFF, 0xA0, 0x13, 0x48, 0x31, 0x80, +0x07, 0x0E, 0xC9, 0x0A, 0xFF, 0xA0, 0x15, 0x48, +0x20, 0x80, 0x02, 0x0E, 0xC9, 0x0A, 0x21, 0x80, +0x08, 0x0E, 0xC9, 0x0A, 0xFF, 0xA0, 0x00, 0x0E, +0x09, 0x02, 0xA0, 0x03, 0x09, 0x02, 0xB0, 0x1A, +0x8B, 0x0B, 0xBA, 0x20, 0x9B, 0x00, 0x0A, 0x0D, +0xC7, 0x0A, 0x09, 0x0D, 0xC8, 0x0A, 0xA0, 0x03, +0x56, 0x00, 0x09, 0x0D, 0x18, 0xF9, 0x00, 0x0E, +0x19, 0xF9, 0x0A, 0x0D, 0x1A, 0xF9, 0x00, 0x0E, +0x1B, 0xF9, 0xFF, 0xFF, 0xA0, 0x03, 0x1A, 0xF9, +0x0A, 0x0D, 0xEF, 0x0A, 0xA0, 0x03, 0x18, 0xF9, +0x0A, 0x0D, 0xEE, 0x0A, 0x60, 0x03, 0x0C, 0x00, +0x69, 0x51, 0xE0, 0x81, 0x60, 0x03, 0x58, 0x0A, +0x61, 0x49, 0xAD, 0x81, 0x60, 0x03, 0x6F, 0x0A, +0x61, 0x49, 0x6D, 0x81, 0x60, 0x1A, 0xF2, 0x05, +0x69, 0x20, 0x26, 0x00, 0x60, 0x1A, 0x34, 0x0D, +0x00, 0x03, 0xEF, 0x0A, 0xFF, 0xFF, 0x60, 0x20, +0x16, 0x00, 0x21, 0x48, 0x2C, 0x82, 0x60, 0x1A, +0x44, 0x0D, 0x00, 0x03, 0xEE, 0x0A, 0xFF, 0xFF, +0x60, 0x20, 0x16, 0x00, 0x21, 0x48, 0x9C, 0x81, +0xA0, 0x03, 0x56, 0x00, 0xFF, 0xFF, 0x9A, 0x38, +0x91, 0x39, 0x09, 0x0D, 0xF5, 0x0A, 0x50, 0x1A, +0x7C, 0x0A, 0x60, 0x1A, 0xF2, 0x05, 0x0F, 0x98, +0xF5, 0x23, 0x0F, 0x98, 0x3B, 0x21, 0xA0, 0x03, +0xC9, 0x0A, 0xA0, 0x49, 0x31, 0x80, 0x0F, 0x98, +0x51, 0x2D, 0xFF, 0x81, 0x0F, 0x98, 0x4F, 0x2E, +0xCF, 0x81, 0xA0, 0x03, 0x09, 0x02, 0xFF, 0xFF, +0x0F, 0x98, 0x24, 0x1D, 0xD0, 0x03, 0x6D, 0x0A, +0xFF, 0xFF, 0xD1, 0x39, 0x0D, 0x0D, 0x6D, 0x0A, +0xD0, 0x03, 0x6E, 0x0A, 0xFF, 0xFF, 0xD1, 0x39, +0x0D, 0x0D, 0x6E, 0x0A, 0xD0, 0x49, 0xF0, 0xA0, +0xFF, 0xFF, 0xA0, 0x03, 0x09, 0x02, 0xFF, 0xFF, +0xA1, 0x39, 0x0A, 0x0D, 0x09, 0x02, 0x0F, 0x88, +0x98, 0x23, 0xD0, 0x03, 0xEE, 0x0A, 0xFF, 0xFF, +0xD7, 0x7B, 0xC0, 0x03, 0xB7, 0x0A, 0xFF, 0xFF, +0xDC, 0x20, 0xD0, 0x22, 0x40, 0x00, 0x0D, 0x0D, +0xB7, 0x0A, 0xD0, 0x03, 0xEF, 0x0A, 0xFF, 0xFF, +0xD7, 0x7B, 0xC0, 0x03, 0xB8, 0x0A, 0xFF, 0xFF, +0xDC, 0x20, 0xD0, 0x22, 0x40, 0x00, 0x0D, 0x0D, +0xB8, 0x0A, 0xC0, 0x03, 0xB7, 0x0A, 0xC0, 0x49, +0x3B, 0x80, 0x00, 0x0E, 0xB7, 0x0A, 0x6F, 0x80, +0xB0, 0x03, 0xB5, 0x0A, 0xCB, 0x48, 0x2C, 0x80, +0x0B, 0x0D, 0xB7, 0x0A, 0xC0, 0x03, 0xB8, 0x0A, +0xC0, 0x49, 0x3B, 0x80, 0x00, 0x0E, 0xB8, 0x0A, +0x6F, 0x80, 0xB0, 0x03, 0xB6, 0x0A, 0xCB, 0x48, +0x2C, 0x80, 0x0B, 0x0D, 0xB8, 0x0A, 0xA0, 0x03, +0xB9, 0x0A, 0x90, 0x03, 0x2A, 0x00, 0x0A, 0x0D, +0x18, 0xF9, 0x00, 0x0E, 0x19, 0xF9, 0x09, 0x0D, +0x1A, 0xF9, 0x00, 0x0E, 0x1B, 0xF9, 0xFF, 0xFF, +0xA0, 0x03, 0x18, 0xF9, 0xA0, 0x4A, 0xFF, 0x00, +0x2C, 0x80, 0xA0, 0x1A, 0xFF, 0x00, 0xA5, 0x49, +0x1B, 0x80, 0xA5, 0x19, 0x0A, 0x0D, 0xB9, 0x0A, +0xA0, 0x03, 0xB7, 0x0A, 0xB0, 0x03, 0xBF, 0x00, +0xAB, 0x48, 0x2B, 0x80, 0x0B, 0x0D, 0xB7, 0x0A, +0xA0, 0x03, 0xB7, 0x0A, 0x00, 0x03, 0xC0, 0x00, +0xB0, 0x03, 0xB5, 0x0A, 0xFF, 0xFF, 0xB0, 0x38, +0xAB, 0x48, 0x2D, 0x80, 0x0B, 0x0D, 0xB7, 0x0A, +0xA0, 0x03, 0xB8, 0x0A, 0xB0, 0x03, 0xC1, 0x00, +0xAB, 0x48, 0x2B, 0x80, 0x0B, 0x0D, 0xB8, 0x0A, +0xA0, 0x03, 0xB8, 0x0A, 0x00, 0x03, 0xC2, 0x00, +0xB0, 0x03, 0xB6, 0x0A, 0xFF, 0xFF, 0xB0, 0x38, +0xAB, 0x48, 0x2D, 0x80, 0x0B, 0x0D, 0xB8, 0x0A, +0xA0, 0x03, 0xB7, 0x0A, 0xB0, 0x03, 0xBF, 0x00, +0xFF, 0xFF, 0xAB, 0x38, 0x0A, 0x0D, 0xB7, 0x0A, +0xA0, 0x03, 0xB8, 0x0A, 0xB0, 0x03, 0xC1, 0x00, +0xFF, 0xFF, 0xAB, 0x38, 0x0A, 0x0D, 0xB8, 0x0A, +0x80, 0x03, 0xB5, 0x00, 0x90, 0x03, 0xB6, 0x00, +0x00, 0x03, 0xB7, 0x00, 0x02, 0x51, 0x40, 0x80, +0x90, 0x03, 0xB5, 0x00, 0x80, 0x03, 0xB6, 0x00, +0xC0, 0x03, 0xB8, 0x0A, 0xD0, 0x03, 0xB6, 0x0A, +0x00, 0x03, 0xC1, 0x00, 0xFF, 0xFF, 0xD0, 0x38, +0x00, 0x03, 0xC2, 0x00, 0xFF, 0xFF, 0xD0, 0x38, +0x00, 0x03, 0xA8, 0x00, 0x00, 0x49, 0xC0, 0x80, +0x10, 0x03, 0xE5, 0x00, 0x1F, 0x51, 0x80, 0x80, +0xD0, 0x3A, 0x80, 0x00, 0x10, 0x03, 0xA9, 0x00, +0x10, 0x49, 0x21, 0x80, 0xC0, 0x3A, 0x80, 0x00, +0xC0, 0x49, 0x1B, 0x80, 0xC0, 0x19, 0xCD, 0x48, +0x1D, 0x80, 0xCD, 0x18, 0x08, 0x0D, 0x14, 0xF9, +0x00, 0x0E, 0x15, 0xF9, 0x0C, 0x0D, 0x16, 0xF9, +0x00, 0x0E, 0x17, 0xF9, 0xB0, 0x03, 0x14, 0xF9, +0xC0, 0x03, 0x15, 0xF9, 0x0B, 0x0D, 0x18, 0xF9, +0x0C, 0x0D, 0x19, 0xF9, 0x0D, 0x0D, 0x1A, 0xF9, +0x00, 0x0E, 0x1B, 0xF9, 0xFF, 0xFF, 0xA0, 0x03, +0x18, 0xF9, 0x0A, 0x0D, 0xB8, 0x0A, 0xC0, 0x03, +0xB7, 0x0A, 0xD0, 0x03, 0xB5, 0x0A, 0x00, 0x03, +0xBF, 0x00, 0xFF, 0xFF, 0xD0, 0x38, 0x00, 0x03, +0xC0, 0x00, 0xFF, 0xFF, 0xD0, 0x38, 0x00, 0x03, +0xA8, 0x00, 0x01, 0x49, 0xC0, 0x80, 0x10, 0x03, +0xE5, 0x00, 0x1F, 0x51, 0x80, 0x80, 0xD0, 0x3A, +0x80, 0x00, 0x10, 0x03, 0xA9, 0x00, 0x10, 0x49, +0x21, 0x80, 0xC0, 0x3A, 0x80, 0x00, 0xC0, 0x49, +0x1B, 0x80, 0xC0, 0x19, 0xCD, 0x48, 0x1D, 0x80, +0xCD, 0x18, 0x09, 0x0D, 0x14, 0xF9, 0x00, 0x0E, +0x15, 0xF9, 0x0C, 0x0D, 0x16, 0xF9, 0x00, 0x0E, +0x17, 0xF9, 0xB0, 0x03, 0x14, 0xF9, 0xC0, 0x03, +0x15, 0xF9, 0x0B, 0x0D, 0x18, 0xF9, 0x0C, 0x0D, +0x19, 0xF9, 0x0D, 0x0D, 0x1A, 0xF9, 0x00, 0x0E, +0x1B, 0xF9, 0xFF, 0xFF, 0xA0, 0x03, 0x18, 0xF9, +0x0A, 0x0D, 0xB7, 0x0A, 0x00, 0x03, 0xB7, 0x00, +0x02, 0x51, 0x80, 0x80, 0x00, 0x03, 0xB8, 0x0A, +0x10, 0x03, 0xB7, 0x0A, 0x00, 0x0D, 0xB7, 0x0A, +0x01, 0x0D, 0xB8, 0x0A, 0x00, 0x03, 0xB7, 0x00, +0x01, 0x51, 0xB0, 0x80, 0xB0, 0x03, 0xB6, 0x00, +0xA0, 0x03, 0xB7, 0x0A, 0xFF, 0xFF, 0xBA, 0x38, +0xB0, 0x49, 0x1B, 0x80, 0xB0, 0x19, 0x0B, 0x0D, +0xB7, 0x0A, 0x00, 0x03, 0xB7, 0x00, 0x00, 0x51, +0xB0, 0x80, 0xB0, 0x03, 0xB5, 0x00, 0xA0, 0x03, +0xB8, 0x0A, 0xFF, 0xFF, 0xBA, 0x38, 0xB0, 0x49, +0x1B, 0x80, 0xB0, 0x19, 0x0B, 0x0D, 0xB8, 0x0A, +0xD0, 0x03, 0xB5, 0x00, 0xA0, 0x03, 0xB8, 0x0A, +0xAD, 0x48, 0x2D, 0x80, 0x0D, 0x0D, 0xB8, 0x0A, +0xA0, 0x49, 0x2B, 0x80, 0x00, 0x0E, 0xB8, 0x0A, +0xD0, 0x03, 0xB6, 0x00, 0xA0, 0x03, 0xB7, 0x0A, +0xAD, 0x48, 0x2D, 0x80, 0x0D, 0x0D, 0xB7, 0x0A, +0xA0, 0x49, 0x2B, 0x80, 0x00, 0x0E, 0xB7, 0x0A, +0x00, 0x1A, 0x40, 0x00, 0x10, 0x1A, 0x69, 0x01, +0x20, 0x03, 0xB8, 0x0A, 0x30, 0x03, 0xB7, 0x0A, +0xA0, 0x03, 0x97, 0x00, 0x41, 0x00, 0x84, 0x18, +0x54, 0x18, 0x4A, 0x20, 0xB0, 0x03, 0xB5, 0x00, +0x4B, 0x48, 0x0D, 0xB0, 0x4B, 0x18, 0x5A, 0x38, +0x50, 0x49, 0x0B, 0xB0, 0x50, 0x19, 0x11, 0x21, +0x61, 0x00, 0x96, 0x18, 0x76, 0x18, 0x6A, 0x20, +0xB0, 0x03, 0xB6, 0x00, 0x6B, 0x48, 0x0D, 0xB0, +0x6B, 0x18, 0x7A, 0x38, 0x70, 0x49, 0x0B, 0xB0, +0x70, 0x19, 0x11, 0x21, 0x24, 0x48, 0x3A, 0x81, +0x25, 0x48, 0x1C, 0x81, 0x36, 0x48, 0xFA, 0x80, +0x37, 0x48, 0xDC, 0x80, 0xC0, 0x03, 0xB9, 0x0A, +0xD0, 0x03, 0x98, 0x00, 0xCD, 0x48, 0x0A, 0xB0, +0x0F, 0x98, 0xA4, 0x23, 0x02, 0x0D, 0xB8, 0x0A, +0x03, 0x0D, 0xB7, 0x0A, 0x2F, 0x80, 0x01, 0x39, +0xD1, 0x84, 0xA0, 0x03, 0x09, 0x02, 0xFF, 0xFF, +0xA3, 0x59, 0xFF, 0xFF, 0xB0, 0x1A, 0x4D, 0x0B, +0xA0, 0x1E, 0xBA, 0x20, 0xA0, 0x03, 0xB8, 0x0A, +0xBA, 0x08, 0xB1, 0x21, 0xA0, 0x03, 0xB7, 0x0A, +0xBA, 0x08, 0xB1, 0x21, 0xA0, 0x03, 0xB9, 0x0A, +0xBA, 0x08, 0xA0, 0x03, 0x09, 0x02, 0xFF, 0xFF, +0xA1, 0x21, 0x0A, 0x0D, 0x09, 0x02, 0xB0, 0x03, +0x6D, 0x0A, 0xAB, 0x48, 0x01, 0x88, 0x8C, 0x21, +0xFF, 0xA0, 0x40, 0x03, 0x96, 0x00, 0x50, 0x1A, +0x64, 0x00, 0x82, 0x38, 0xC8, 0x18, 0xCF, 0x51, +0x20, 0x80, 0xFF, 0xFF, 0xC0, 0x31, 0xC2, 0x49, +0xED, 0x81, 0x08, 0x0D, 0x10, 0xF9, 0x8F, 0x51, +0xA0, 0x19, 0x10, 0x80, 0xA1, 0x39, 0x0A, 0x0D, +0x11, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0x04, 0x0D, +0x12, 0xF9, 0x80, 0x03, 0x10, 0xF9, 0x08, 0x0D, +0x18, 0xF9, 0x8F, 0x51, 0xA0, 0x19, 0x10, 0x80, +0xA1, 0x39, 0x0A, 0x0D, 0x19, 0xF9, 0x00, 0x0E, +0x1B, 0xF9, 0x05, 0x0D, 0x1A, 0xF9, 0x80, 0x03, +0x18, 0xF9, 0xFF, 0xFF, 0x28, 0x20, 0x93, 0x38, +0xD9, 0x18, 0xDF, 0x51, 0x20, 0x80, 0xFF, 0xFF, +0xD0, 0x31, 0xD2, 0x49, 0xED, 0x81, 0x09, 0x0D, +0x10, 0xF9, 0x9F, 0x51, 0xA0, 0x19, 0x10, 0x80, +0xA1, 0x39, 0x0A, 0x0D, 0x11, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0x04, 0x0D, 0x12, 0xF9, 0x90, 0x03, +0x10, 0xF9, 0x09, 0x0D, 0x18, 0xF9, 0x9F, 0x51, +0xA0, 0x19, 0x10, 0x80, 0xA1, 0x39, 0x0A, 0x0D, +0x19, 0xF9, 0x00, 0x0E, 0x1B, 0xF9, 0x05, 0x0D, +0x1A, 0xF9, 0x90, 0x03, 0x18, 0xF9, 0xFF, 0xFF, +0x39, 0x20, 0xFF, 0xA0, 0x00, 0x0E, 0xF1, 0x0A, +0x00, 0x0E, 0xF2, 0x0A, 0xA0, 0x03, 0xF1, 0x0A, +0xB0, 0x03, 0xF2, 0x0A, 0xD3, 0x19, 0xDA, 0x58, +0xFF, 0xFF, 0x40, 0x03, 0x56, 0x00, 0xD0, 0x1E, +0xDB, 0x20, 0xA0, 0x03, 0xF1, 0x0A, 0xB0, 0x03, +0xF2, 0x0A, 0xFF, 0xFF, 0x4A, 0x58, 0xFF, 0xFF, +0xA0, 0x03, 0xF5, 0x0A, 0x40, 0x1E, 0x4B, 0x20, +0x4A, 0x20, 0xB5, 0x18, 0xBD, 0x20, 0xC6, 0x18, +0xC4, 0x20, 0xAC, 0x00, 0xA0, 0x49, 0x1B, 0x80, +0xA0, 0x19, 0xBA, 0x08, 0xA0, 0x03, 0xF2, 0x0A, +0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, 0xF2, 0x0A, +0xA3, 0x49, 0x81, 0x85, 0xA0, 0x03, 0xF1, 0x0A, +0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, 0xF1, 0x0A, +0xA3, 0x49, 0xE1, 0x84, 0xFF, 0xA0, 0xB0, 0x1A, +0x77, 0x00, 0xC0, 0x1A, 0x0E, 0x0B, 0x00, 0x03, +0x05, 0x00, 0x00, 0x49, 0x00, 0x88, 0x78, 0x24, +0x00, 0x0E, 0xF1, 0x0A, 0x00, 0x0E, 0xF2, 0x0A, +0xD0, 0x19, 0x9C, 0x18, 0x8B, 0x18, 0xA9, 0x00, +0x8A, 0x08, 0x91, 0x21, 0x81, 0x21, 0xA9, 0x00, +0x8A, 0x08, 0x91, 0x21, 0x81, 0x21, 0x59, 0x00, +0x48, 0x00, 0x80, 0x0B, 0xA9, 0x00, 0xA8, 0x51, +0x00, 0x81, 0xAD, 0x51, 0x81, 0x80, 0x85, 0x08, +0x00, 0x03, 0xF2, 0x0A, 0xFF, 0xFF, 0x01, 0x21, +0x00, 0x0D, 0xF2, 0x0A, 0x9F, 0x80, 0x48, 0x51, +0xC0, 0x80, 0x50, 0x19, 0x5B, 0xC1, 0x85, 0x08, +0x3F, 0x80, 0xAB, 0x51, 0x60, 0x80, 0x85, 0x08, +0xA0, 0x03, 0xF1, 0x0A, 0xAD, 0xC0, 0x0A, 0x0D, +0xF1, 0x0A, 0xB3, 0x21, 0xC3, 0x21, 0xD1, 0x21, +0xA0, 0x03, 0x0A, 0x00, 0xDA, 0x48, 0x11, 0x85, +0xA0, 0x03, 0xF1, 0x0A, 0x0A, 0x0D, 0x76, 0x00, +0xB0, 0x03, 0x4A, 0x0B, 0x0B, 0x0D, 0x75, 0x00, +0xA0, 0x03, 0xF2, 0x0A, 0x0A, 0x0D, 0x59, 0x0A, +0x00, 0x03, 0xBA, 0x0A, 0x00, 0x0D, 0x95, 0x00, +0xFF, 0xA0, 0xD0, 0x03, 0x0A, 0x00, 0x00, 0x0E, +0xF1, 0x0A, 0x9C, 0x18, 0x92, 0x21, 0x89, 0x00, +0x9C, 0x18, 0xA9, 0x00, 0xBA, 0x08, 0x91, 0x21, +0xB1, 0x21, 0xA9, 0x00, 0xBA, 0x08, 0x91, 0x21, +0xB1, 0x21, 0x4B, 0x00, 0x8D, 0x51, 0x80, 0x80, +0xB0, 0x0B, 0x48, 0x51, 0x30, 0x80, 0x40, 0x19, +0x4B, 0xC1, 0xB4, 0x08, 0xB1, 0x21, 0xBF, 0x80, +0x88, 0x51, 0x60, 0x80, 0x00, 0x03, 0xF1, 0x0A, +0xFF, 0xFF, 0x01, 0x21, 0x00, 0x0D, 0xF1, 0x0A, +0xA9, 0x00, 0xBA, 0x08, 0xB1, 0x21, 0xC3, 0x21, +0xD1, 0x39, 0xB1, 0x85, 0xB0, 0x03, 0x4A, 0x0B, +0x0B, 0x0D, 0x75, 0x00, 0xA0, 0x03, 0xF1, 0x0A, +0x0A, 0x0D, 0x59, 0x0A, 0xB0, 0x03, 0x4C, 0x0B, +0xFF, 0xFF, 0xB8, 0x7B, 0xAB, 0x68, 0x0A, 0x0D, +0x76, 0x00, 0x00, 0x03, 0xBA, 0x0A, 0x00, 0x0D, +0x95, 0x00, 0xFF, 0xA0, 0xD0, 0x1A, 0x0E, 0x0B, +0xD2, 0x21, 0xB0, 0x1A, 0x2C, 0x0B, 0xB2, 0x21, +0x40, 0x1A, 0x9C, 0x0B, 0x50, 0x1A, 0xAC, 0x0B, +0xC0, 0x19, 0x10, 0x19, 0x3A, 0x19, 0xD0, 0x0B, +0xB0, 0x0B, 0x40, 0x0B, 0x50, 0x0B, 0x41, 0x21, +0x51, 0x21, 0xD3, 0x21, 0xB3, 0x21, 0xC1, 0x21, +0xC3, 0x48, 0x51, 0x87, 0x90, 0x1A, 0x58, 0x0D, +0x92, 0x21, 0xA0, 0x1A, 0x85, 0x0D, 0x80, 0x1A, +0x94, 0x0D, 0x70, 0x1A, 0xA3, 0x0D, 0xC0, 0x19, +0x10, 0x19, 0x3F, 0x19, 0x90, 0x0B, 0xA0, 0x0B, +0x80, 0x0B, 0x70, 0x0B, 0x71, 0x21, 0x81, 0x21, +0xA1, 0x21, 0x93, 0x21, 0xC1, 0x21, 0xC3, 0x48, +0x51, 0x87, 0x00, 0x0E, 0x5A, 0x0A, 0xFF, 0xA0, +0x56, 0x18, 0x20, 0x1A, 0x9C, 0x0B, 0x26, 0x20, +0x30, 0x1A, 0xAC, 0x0B, 0x36, 0x20, 0x00, 0x1A, +0xBC, 0x0B, 0x10, 0x1A, 0x5C, 0x0C, 0x64, 0x7B, +0x06, 0x20, 0x16, 0x20, 0x42, 0x00, 0xFF, 0xFF, +0x04, 0x20, 0x14, 0x20, 0x07, 0x08, 0x18, 0x08, +0x41, 0x21, 0x40, 0x4A, 0x10, 0x00, 0x1C, 0x80, +0x40, 0x19, 0x24, 0x08, 0x80, 0x19, 0x40, 0x1A, +0x18, 0x02, 0x45, 0x20, 0xA0, 0x03, 0xF5, 0x0A, +0x00, 0x03, 0x2C, 0x02, 0xA0, 0x48, 0x4D, 0x80, +0x00, 0x03, 0x2D, 0x02, 0x40, 0x08, 0x81, 0x19, +0x74, 0x00, 0xFF, 0xFF, 0x71, 0x39, 0x1C, 0x80, +0x47, 0x08, 0xA1, 0x21, 0x00, 0x03, 0x2E, 0x02, +0xFF, 0xFF, 0xA0, 0x78, 0x40, 0x03, 0xB2, 0x0D, +0x40, 0x62, 0xFF, 0x00, 0x41, 0x21, 0x4A, 0x38, +0x1A, 0x80, 0x41, 0x19, 0x10, 0x1A, 0x22, 0x02, +0x15, 0x20, 0xA1, 0x00, 0x4A, 0x48, 0x3A, 0x80, +0x50, 0x80, 0xA1, 0x39, 0x3F, 0x80, 0x81, 0x49, +0x10, 0x80, 0xA1, 0x21, 0x00, 0x03, 0xB2, 0x0D, +0xFF, 0xFF, 0x08, 0x79, 0x00, 0x49, 0x11, 0x80, +0x01, 0x19, 0xA0, 0x48, 0x1B, 0x80, 0xA0, 0x18, +0x1A, 0x08, 0x43, 0x00, 0xFF, 0xFF, 0x41, 0x21, +0x4A, 0x48, 0x1C, 0x80, 0x4A, 0x18, 0x34, 0x08, +0x00, 0x1A, 0xBC, 0x0B, 0x10, 0x1A, 0x5C, 0x0C, +0x06, 0x20, 0x16, 0x20, 0xA0, 0x19, 0x70, 0x19, +0x80, 0x19, 0x34, 0x18, 0x42, 0x00, 0xFF, 0xFF, +0x41, 0x39, 0x40, 0x49, 0x2B, 0x80, 0x40, 0x22, +0x10, 0x00, 0x04, 0x20, 0x14, 0x20, 0x20, 0x00, +0xFF, 0xFF, 0x72, 0x20, 0x21, 0x00, 0xFF, 0xFF, +0x82, 0x20, 0x04, 0x38, 0x14, 0x38, 0xA1, 0x21, +0xA3, 0x48, 0xE1, 0x86, 0x00, 0x1A, 0x22, 0x02, +0x05, 0x20, 0x40, 0x00, 0xA4, 0x48, 0x1B, 0x80, +0x4A, 0x18, 0x00, 0x0E, 0x19, 0xF9, 0x07, 0x0D, +0x18, 0xF9, 0x04, 0x0D, 0x1A, 0xF9, 0x00, 0x0E, +0x1B, 0xF9, 0xFF, 0xFF, 0x70, 0x03, 0x18, 0xF9, +0x00, 0x0E, 0x19, 0xF9, 0x08, 0x0D, 0x18, 0xF9, +0x04, 0x0D, 0x1A, 0xF9, 0x00, 0x0E, 0x1B, 0xF9, +0xFF, 0xFF, 0x80, 0x03, 0x18, 0xF9, 0x04, 0x0D, +0x2E, 0x00, 0xFF, 0xFF, 0xFF, 0xA0, 0xA0, 0x03, +0xE8, 0x0A, 0xD0, 0x03, 0xE2, 0x0A, 0xFF, 0xFF, +0xAD, 0x38, 0xAF, 0x51, 0x10, 0x80, 0xA0, 0x31, +0x0A, 0x0D, 0xEE, 0x0A, 0xA0, 0x03, 0xE9, 0x0A, +0xD0, 0x03, 0xE3, 0x0A, 0xFF, 0xFF, 0xAD, 0x38, +0xAF, 0x51, 0x10, 0x80, 0xA0, 0x31, 0x0A, 0x0D, +0xEF, 0x0A, 0x0F, 0x98, 0x99, 0x25, 0x0A, 0x0D, +0xF0, 0x0A, 0xFF, 0xA0, 0xA0, 0x03, 0xEE, 0x0A, +0xD0, 0x03, 0xEF, 0x0A, 0xA0, 0x49, 0x21, 0x80, +0xAD, 0x18, 0xFF, 0xA0, 0xD0, 0x49, 0xF0, 0xA0, +0xFF, 0xFF, 0xAD, 0x48, 0x1B, 0x80, 0xAD, 0x18, +0x00, 0x03, 0xEE, 0x0A, 0x10, 0x18, 0x0F, 0x98, +0xBD, 0x15, 0x00, 0x0D, 0x04, 0xF9, 0x01, 0x0D, +0x05, 0xF9, 0x00, 0x03, 0xEF, 0x0A, 0x10, 0x18, +0x0F, 0x98, 0xBD, 0x15, 0x00, 0x0D, 0x06, 0xF9, +0x01, 0x0D, 0x07, 0xF9, 0x00, 0x03, 0x03, 0xF9, +0x10, 0x03, 0x04, 0xF9, 0x00, 0x0D, 0x18, 0xF9, +0x01, 0x0D, 0x19, 0xF9, 0xD0, 0x19, 0x26, 0x19, +0x0A, 0x0D, 0x1A, 0xF9, 0x0D, 0x0D, 0x1B, 0xF9, +0xFF, 0xFF, 0x00, 0x03, 0x18, 0xF9, 0x10, 0x03, +0x19, 0xF9, 0x00, 0x0D, 0x04, 0xF9, 0x01, 0x0D, +0x05, 0xF9, 0x0A, 0x0D, 0x06, 0xF9, 0x0D, 0x0D, +0x07, 0xF9, 0xA0, 0x03, 0x03, 0xF9, 0xD0, 0x03, +0x04, 0xF9, 0xFF, 0xFF, 0xA1, 0x79, 0xD0, 0x51, +0xAF, 0xC5, 0xD1, 0x79, 0x21, 0x39, 0x41, 0x86, +0xFF, 0xA0, 0xB0, 0x03, 0x05, 0x0B, 0xD0, 0x19, +0xBD, 0x50, 0xF0, 0xA0, 0xFF, 0xFF, 0xD1, 0x21, +0xDF, 0x49, 0xA1, 0x87, 0xFF, 0xA0, 0x0F, 0x98, +0xE0, 0x25, 0xDF, 0x49, 0xF0, 0xA0, 0xFF, 0xFF, +0xA0, 0x03, 0x6E, 0x0A, 0xFF, 0xFF, 0xA1, 0x21, +0x0A, 0x0D, 0x6E, 0x0A, 0xA0, 0x03, 0x05, 0x0B, +0xA9, 0xC0, 0xAD, 0xC0, 0x0A, 0x0D, 0x05, 0x0B, +0x70, 0x4A, 0xFF, 0x00, 0x70, 0x80, 0xA0, 0x03, +0x03, 0x0B, 0xA9, 0xC0, 0xAD, 0xC0, 0x0A, 0x0D, +0x03, 0x0B, 0x6F, 0x80, 0xA0, 0x03, 0x04, 0x0B, +0xA9, 0xC0, 0xAD, 0xC0, 0x0A, 0x0D, 0x04, 0x0B, +0x90, 0x1A, 0x58, 0x0D, 0xAD, 0x18, 0xA3, 0x59, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x1E, +0x9A, 0x20, 0xC0, 0x1A, 0x4D, 0x0B, 0xA8, 0x18, +0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xA0, 0x1E, 0xCA, 0x20, 0x0C, 0x00, 0x90, 0x08, +0xC1, 0x21, 0x91, 0x21, 0x0C, 0x00, 0x90, 0x08, +0x91, 0x21, 0xA0, 0x03, 0xE4, 0x0A, 0xA0, 0x62, +0xFF, 0x00, 0x80, 0x1A, 0x94, 0x0D, 0x8D, 0x20, +0x80, 0x0B, 0x80, 0x1A, 0x85, 0x0D, 0x8D, 0x20, +0x08, 0x00, 0xFF, 0xFF, 0x01, 0x21, 0x80, 0x08, +0x10, 0x03, 0x5B, 0x0A, 0x81, 0x08, 0xAE, 0xC1, +0xA8, 0xC1, 0xAA, 0xC1, 0xA9, 0xC1, 0x9A, 0x08, +0x80, 0x1A, 0xA3, 0x0D, 0x8D, 0x20, 0x80, 0x0B, +0xFF, 0xA0, 0x0F, 0x98, 0x24, 0x1D, 0xA0, 0x03, +0x6D, 0x0A, 0xFF, 0xFF, 0xA1, 0x39, 0x0A, 0x0D, +0x6D, 0x0A, 0xA0, 0x03, 0x6E, 0x0A, 0xFF, 0xFF, +0xA1, 0x39, 0x0A, 0x0D, 0x6E, 0x0A, 0xA0, 0x49, +0xFC, 0xA0, 0xFF, 0xFF, 0xB0, 0x03, 0x6D, 0x0A, +0xB0, 0x49, 0x3B, 0x80, 0x00, 0x0E, 0x6E, 0x0A, +0xFF, 0xA0, 0xA0, 0x03, 0x5A, 0x0A, 0xB0, 0x03, +0x6D, 0x0A, 0xBA, 0x68, 0xB0, 0x49, 0x00, 0x88, +0xB5, 0x24, 0x90, 0x1A, 0x58, 0x0D, 0x92, 0x21, +0xC0, 0x19, 0xB0, 0x19, 0x3F, 0x19, 0xA9, 0x00, +0xA8, 0x51, 0x20, 0x80, 0xBC, 0xC0, 0x3F, 0x80, +0xA0, 0x62, 0xFF, 0x00, 0x9A, 0x08, 0x93, 0x21, +0xC1, 0x21, 0xC3, 0x48, 0x41, 0x87, 0x0B, 0x0D, +0x05, 0x0B, 0x00, 0x0E, 0xF1, 0x0A, 0x00, 0x0E, +0x03, 0x0B, 0x00, 0x0E, 0xE5, 0x0A, 0x00, 0x0E, +0x4A, 0x0B, 0x00, 0x0E, 0x04, 0x0B, 0xA0, 0x03, +0x5A, 0x0A, 0xA0, 0x49, 0x00, 0x88, 0xE9, 0x28, +0xA0, 0x03, 0x5A, 0x0A, 0xB0, 0x03, 0x6D, 0x0A, +0xAB, 0x48, 0x0A, 0x88, 0xB6, 0x27, 0xA0, 0x03, +0xF1, 0x0A, 0x3F, 0x19, 0xA3, 0x48, 0x0B, 0x88, +0xE9, 0x28, 0xB0, 0x03, 0x05, 0x0B, 0xBA, 0x50, +0x00, 0x88, 0xAE, 0x27, 0xB0, 0x03, 0x04, 0x0B, +0xBA, 0x50, 0x01, 0x88, 0xAE, 0x27, 0xB0, 0x1A, +0x58, 0x0D, 0xA0, 0x03, 0xF1, 0x0A, 0xFF, 0xFF, +0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xA0, 0x1E, 0xBA, 0x20, 0xAB, 0x00, 0x0A, 0x0D, +0xE2, 0x0A, 0xB1, 0x21, 0xAB, 0x00, 0x0A, 0x0D, +0xE3, 0x0A, 0x00, 0x0E, 0xF2, 0x0A, 0xA0, 0x1A, +0x10, 0x27, 0x0A, 0x0D, 0xF5, 0x0A, 0x0A, 0x0D, +0x06, 0x0B, 0x90, 0x03, 0xF2, 0x0A, 0xA0, 0x03, +0x6D, 0x0A, 0x9A, 0x48, 0xBB, 0x82, 0xA0, 0x03, +0x03, 0x0B, 0xA9, 0x50, 0x01, 0x82, 0xB0, 0x1A, +0x4D, 0x0B, 0xA0, 0x03, 0xF2, 0x0A, 0xFF, 0xFF, +0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xA0, 0x1E, 0xBA, 0x20, 0xAB, 0x00, 0x0A, 0x0D, +0xE8, 0x0A, 0xB1, 0x21, 0xAB, 0x00, 0x0A, 0x0D, +0xE9, 0x0A, 0x0F, 0x98, 0x7E, 0x25, 0xB0, 0x03, +0xF5, 0x0A, 0xAB, 0x48, 0x8B, 0x80, 0xA0, 0x03, +0xF0, 0x0A, 0x0A, 0x0D, 0xF5, 0x0A, 0xA0, 0x03, +0xF2, 0x0A, 0x0A, 0x0D, 0x06, 0x0B, 0x90, 0x03, +0xF2, 0x0A, 0xFF, 0xFF, 0x91, 0x21, 0x09, 0x0D, +0xF2, 0x0A, 0xFF, 0x84, 0xA0, 0x03, 0x06, 0x0B, +0xA0, 0x4A, 0x10, 0x27, 0x00, 0x88, 0xAE, 0x27, +0xA0, 0x03, 0x03, 0x0B, 0x90, 0x03, 0x06, 0x0B, +0xA9, 0xC0, 0x0A, 0x0D, 0x03, 0x0B, 0xA0, 0x03, +0x04, 0x0B, 0x90, 0x03, 0xF1, 0x0A, 0xA9, 0xC0, +0x0A, 0x0D, 0x04, 0x0B, 0x00, 0x03, 0x5B, 0x0A, +0x90, 0x1A, 0x85, 0x0D, 0xA0, 0x03, 0xF1, 0x0A, +0xFF, 0xFF, 0x9A, 0x20, 0x19, 0x00, 0x10, 0x48, +0x0B, 0x88, 0x46, 0x27, 0x10, 0x03, 0xC2, 0x0D, +0x00, 0x03, 0x06, 0x0B, 0x10, 0x50, 0x70, 0x82, +0x90, 0x0B, 0xA0, 0x03, 0x6E, 0x0A, 0xFF, 0xFF, +0xA1, 0x39, 0x0A, 0x0D, 0x6E, 0x0A, 0x90, 0x1A, +0x58, 0x0D, 0xA0, 0x03, 0xF1, 0x0A, 0xFF, 0xFF, +0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xA0, 0x1E, 0xA9, 0x20, 0xA2, 0x21, 0xA0, 0x0B, +0x70, 0x1A, 0x85, 0x0D, 0xA0, 0x03, 0xF1, 0x0A, +0xFF, 0xFF, 0x7A, 0x20, 0x70, 0x0B, 0x70, 0x1A, +0xA3, 0x0D, 0xA0, 0x03, 0xF1, 0x0A, 0xFF, 0xFF, +0x7A, 0x20, 0x70, 0x0B, 0xA0, 0x03, 0x06, 0x0B, +0xFF, 0xFF, 0x0F, 0x88, 0x40, 0x26, 0xB0, 0x03, +0xF5, 0x0A, 0xA0, 0x03, 0x3A, 0x00, 0xBA, 0x48, +0x5B, 0x80, 0xA9, 0x00, 0xFF, 0xFF, 0xA1, 0x21, +0x9A, 0x08, 0x6F, 0x82, 0x90, 0x0B, 0x70, 0x1A, +0xA3, 0x0D, 0xA0, 0x03, 0xF1, 0x0A, 0xFF, 0xFF, +0x7A, 0x20, 0x70, 0x0B, 0xDF, 0x81, 0xB0, 0x03, +0xF5, 0x0A, 0xA0, 0x03, 0x17, 0x02, 0xBA, 0x48, +0x2D, 0x80, 0x0B, 0x0D, 0x17, 0x02, 0x70, 0x1A, +0xA3, 0x0D, 0xA0, 0x03, 0xF1, 0x0A, 0xFF, 0xFF, +0x7A, 0x20, 0xA7, 0x00, 0xAB, 0x48, 0x1B, 0x80, +0x7B, 0x08, 0xB0, 0x03, 0xBC, 0x00, 0xAB, 0x48, +0x7B, 0x80, 0xB0, 0x03, 0xF5, 0x0A, 0xA0, 0x03, +0xBB, 0x00, 0xBA, 0x48, 0x0B, 0x88, 0xA6, 0x27, +0xA0, 0x03, 0x06, 0x0B, 0x0A, 0x0D, 0x9A, 0x0B, +0xA0, 0x03, 0xF1, 0x0A, 0x0A, 0x0D, 0x9B, 0x0B, +0xC0, 0x1A, 0x4D, 0x0B, 0xA0, 0x03, 0x9A, 0x0B, +0xFF, 0xFF, 0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xA0, 0x1E, 0xCA, 0x20, 0x90, 0x1A, +0x58, 0x0D, 0xA0, 0x03, 0x9B, 0x0B, 0xFF, 0xFF, +0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xA0, 0x1E, 0x9A, 0x20, 0x7C, 0x00, 0x97, 0x08, +0xC1, 0x21, 0x91, 0x21, 0x8C, 0x00, 0x98, 0x08, +0xC1, 0x21, 0x91, 0x21, 0xAC, 0x00, 0xA0, 0x62, +0xFF, 0x00, 0x20, 0x03, 0x5B, 0x0A, 0x70, 0x1A, +0x85, 0x0D, 0x00, 0x03, 0x9B, 0x0B, 0xFF, 0xFF, +0x70, 0x20, 0x07, 0x00, 0x02, 0x48, 0x9B, 0x80, +0x80, 0x1A, 0x94, 0x0D, 0x00, 0x03, 0xF1, 0x0A, +0xFF, 0xFF, 0x80, 0x20, 0x80, 0x0B, 0xAE, 0xC9, +0x2F, 0x80, 0x72, 0x08, 0xAE, 0xC1, 0xA8, 0xC1, +0xA9, 0xC1, 0x9A, 0x08, 0x8F, 0x80, 0x80, 0x03, +0x06, 0x0B, 0x90, 0x03, 0xF1, 0x0A, 0x70, 0x1A, +0xFF, 0x00, 0x0F, 0x98, 0xEA, 0x25, 0xA0, 0x03, +0xF1, 0x0A, 0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, +0xF1, 0x0A, 0x0F, 0x88, 0x8A, 0x26, 0x00, 0x0E, +0x03, 0x0B, 0xB0, 0x03, 0x6D, 0x0A, 0xB0, 0x49, +0x00, 0x88, 0xF2, 0x28, 0x00, 0x0E, 0xF2, 0x0A, +0xA0, 0x03, 0xF1, 0x0A, 0x90, 0x03, 0x6D, 0x0A, +0xA9, 0x48, 0x0B, 0x88, 0xE9, 0x28, 0xB0, 0x1A, +0x4D, 0x0B, 0xA0, 0x03, 0xF1, 0x0A, 0xFF, 0xFF, +0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xA0, 0x1E, 0xBA, 0x20, 0xAB, 0x00, 0x0A, 0x0D, +0xE2, 0x0A, 0xB1, 0x21, 0xAB, 0x00, 0x0A, 0x0D, +0xE3, 0x0A, 0x00, 0x0E, 0xF2, 0x0A, 0xA0, 0x1A, +0x10, 0x27, 0x0A, 0x0D, 0xF5, 0x0A, 0x0A, 0x0D, +0x06, 0x0B, 0xA0, 0x03, 0xF2, 0x0A, 0x3F, 0x19, +0xA3, 0x48, 0xFB, 0x82, 0x90, 0x03, 0x03, 0x0B, +0x9A, 0x50, 0x41, 0x82, 0xB0, 0x03, 0x05, 0x0B, +0xBA, 0x50, 0x00, 0x82, 0xB0, 0x1A, 0x58, 0x0D, +0xA0, 0x03, 0xF2, 0x0A, 0xFF, 0xFF, 0xA3, 0x59, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x1E, +0xBA, 0x20, 0xAB, 0x00, 0x0A, 0x0D, 0xE8, 0x0A, +0xB1, 0x21, 0xAB, 0x00, 0x0A, 0x0D, 0xE9, 0x0A, +0x0F, 0x98, 0x7E, 0x25, 0xB0, 0x03, 0xF5, 0x0A, +0xAB, 0x48, 0x8B, 0x80, 0xA0, 0x03, 0xF0, 0x0A, +0x0A, 0x0D, 0xF5, 0x0A, 0xA0, 0x03, 0xF2, 0x0A, +0x0A, 0x0D, 0x06, 0x0B, 0x90, 0x03, 0xF2, 0x0A, +0xFF, 0xFF, 0x91, 0x21, 0x09, 0x0D, 0xF2, 0x0A, +0xCF, 0x84, 0xA0, 0x03, 0x06, 0x0B, 0xA0, 0x4A, +0x10, 0x27, 0x00, 0x88, 0xE1, 0x28, 0xA0, 0x03, +0x03, 0x0B, 0x90, 0x03, 0x06, 0x0B, 0xA9, 0xC0, +0x0A, 0x0D, 0x03, 0x0B, 0xB0, 0x03, 0xF5, 0x0A, +0x70, 0x1A, 0xA3, 0x0D, 0xA0, 0x03, 0x06, 0x0B, +0xFF, 0xFF, 0x7A, 0x20, 0xA7, 0x00, 0xAB, 0x48, +0x1B, 0x80, 0x7B, 0x08, 0x00, 0x03, 0x5B, 0x0A, +0x90, 0x1A, 0x85, 0x0D, 0xA0, 0x03, 0x06, 0x0B, +0xFF, 0xFF, 0x9A, 0x20, 0x19, 0x00, 0x10, 0x48, +0x0B, 0x88, 0x7A, 0x28, 0x10, 0x03, 0xC2, 0x0D, +0x00, 0x03, 0xF1, 0x0A, 0x10, 0x50, 0x70, 0x82, +0x90, 0x0B, 0xA0, 0x03, 0x6E, 0x0A, 0xFF, 0xFF, +0xA1, 0x39, 0x0A, 0x0D, 0x6E, 0x0A, 0x90, 0x1A, +0x58, 0x0D, 0xA0, 0x03, 0x06, 0x0B, 0xFF, 0xFF, +0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xA0, 0x1E, 0xA9, 0x20, 0xA2, 0x21, 0xA0, 0x0B, +0x70, 0x1A, 0x85, 0x0D, 0xA0, 0x03, 0x06, 0x0B, +0xFF, 0xFF, 0x7A, 0x20, 0x70, 0x0B, 0x70, 0x1A, +0xA3, 0x0D, 0xA0, 0x03, 0x06, 0x0B, 0xFF, 0xFF, +0x7A, 0x20, 0x70, 0x0B, 0xA0, 0x03, 0xF1, 0x0A, +0xFF, 0xFF, 0x0F, 0x88, 0x40, 0x26, 0xB0, 0x03, +0xF5, 0x0A, 0xA0, 0x03, 0x3A, 0x00, 0xBA, 0x48, +0x5B, 0x80, 0xA9, 0x00, 0xFF, 0xFF, 0xA1, 0x21, +0x9A, 0x08, 0x6F, 0x82, 0x90, 0x0B, 0x70, 0x1A, +0xA3, 0x0D, 0xA0, 0x03, 0x06, 0x0B, 0xFF, 0xFF, +0x7A, 0x20, 0x70, 0x0B, 0xDF, 0x81, 0xB0, 0x03, +0xF5, 0x0A, 0xA0, 0x03, 0x17, 0x02, 0xBA, 0x48, +0x2D, 0x80, 0x0B, 0x0D, 0x17, 0x02, 0x70, 0x1A, +0xA3, 0x0D, 0xA0, 0x03, 0x06, 0x0B, 0xFF, 0xFF, +0x7A, 0x20, 0xA7, 0x00, 0xAB, 0x48, 0x1B, 0x80, +0x7B, 0x08, 0xB0, 0x03, 0xBC, 0x00, 0xAB, 0x48, +0x7B, 0x80, 0xB0, 0x03, 0xF5, 0x0A, 0xA0, 0x03, +0xBB, 0x00, 0xBA, 0x48, 0x0B, 0x88, 0xDA, 0x28, +0xA0, 0x03, 0xF1, 0x0A, 0x0A, 0x0D, 0x9A, 0x0B, +0xA0, 0x03, 0x06, 0x0B, 0x0A, 0x0D, 0x9B, 0x0B, +0xC0, 0x1A, 0x4D, 0x0B, 0xA0, 0x03, 0x9A, 0x0B, +0xFF, 0xFF, 0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xA0, 0x1E, 0xCA, 0x20, 0x90, 0x1A, +0x58, 0x0D, 0xA0, 0x03, 0x9B, 0x0B, 0xFF, 0xFF, +0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xA0, 0x1E, 0x9A, 0x20, 0x7C, 0x00, 0x97, 0x08, +0xC1, 0x21, 0x91, 0x21, 0x8C, 0x00, 0x98, 0x08, +0xC1, 0x21, 0x91, 0x21, 0xAC, 0x00, 0xA0, 0x62, +0xFF, 0x00, 0x20, 0x03, 0x5B, 0x0A, 0x70, 0x1A, +0x85, 0x0D, 0x00, 0x03, 0x06, 0x0B, 0xFF, 0xFF, +0x70, 0x20, 0x07, 0x00, 0x02, 0x48, 0x9B, 0x80, +0x80, 0x1A, 0x94, 0x0D, 0x00, 0x03, 0x06, 0x0B, +0xFF, 0xFF, 0x80, 0x20, 0x80, 0x0B, 0xAE, 0xC9, +0x2F, 0x80, 0x72, 0x08, 0xAE, 0xC1, 0xA8, 0xC1, +0xA9, 0xC1, 0x9A, 0x08, 0x7F, 0x80, 0x90, 0x03, +0x06, 0x0B, 0x80, 0x03, 0xF1, 0x0A, 0x70, 0x19, +0x0F, 0x98, 0xEA, 0x25, 0xA0, 0x03, 0xF1, 0x0A, +0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, 0xF1, 0x0A, +0x0F, 0x88, 0xBF, 0x27, 0xA0, 0x03, 0x5A, 0x0A, +0xB0, 0x03, 0x6D, 0x0A, 0xAB, 0x48, 0xF0, 0xA0, +0xFF, 0xFF, 0xBA, 0x48, 0xDA, 0x82, 0xD0, 0x03, +0x03, 0x0B, 0xC0, 0x19, 0xB0, 0x03, 0x05, 0x0B, +0xBC, 0x50, 0x20, 0x82, 0xDC, 0x50, 0x01, 0x82, +0x90, 0x1A, 0x58, 0x0D, 0xAC, 0x18, 0xA3, 0x59, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x1E, +0x9A, 0x20, 0x92, 0x21, 0xA9, 0x00, 0xA0, 0x62, +0xFF, 0x00, 0x70, 0x1A, 0x85, 0x0D, 0x7C, 0x20, +0x87, 0x00, 0x70, 0x0B, 0x20, 0x03, 0x5B, 0x0A, +0x82, 0x48, 0x2B, 0x80, 0xAE, 0xC9, 0x1F, 0x80, +0xAE, 0xC1, 0xAB, 0xC1, 0x9A, 0x08, 0xB0, 0x03, +0x05, 0x0B, 0xBC, 0xC8, 0x0B, 0x0D, 0x05, 0x0B, +0xC1, 0x21, 0xCF, 0x49, 0x71, 0x85, 0xFF, 0xA0, +0x00, 0x0E, 0xF1, 0x0A, 0xA0, 0x03, 0xF1, 0x0A, +0xB0, 0x03, 0x6D, 0x0A, 0xAB, 0x48, 0xFB, 0xA0, +0xFF, 0xFF, 0x90, 0x03, 0xF1, 0x0A, 0xA0, 0x03, +0x03, 0x0B, 0xA9, 0x50, 0x01, 0x88, 0x8D, 0x29, +0xA0, 0x03, 0xC2, 0x0D, 0xA9, 0x50, 0x80, 0x80, +0xA0, 0x03, 0x6E, 0x0A, 0xFF, 0xFF, 0xA1, 0x39, +0x0A, 0x0D, 0x6E, 0x0A, 0x0F, 0x88, 0x8D, 0x29, +0x00, 0x0E, 0xF2, 0x0A, 0xA0, 0x1A, 0xFF, 0xFF, +0x0A, 0x0D, 0xF5, 0x0A, 0x0F, 0x98, 0xE0, 0x25, +0xD3, 0x48, 0xF0, 0xA0, 0xFF, 0xFF, 0xA0, 0x03, +0x05, 0x0B, 0xAD, 0xC0, 0x0A, 0x0D, 0x05, 0x0B, +0x90, 0x03, 0xF1, 0x0A, 0xA0, 0x03, 0x03, 0x0B, +0xA9, 0xC0, 0x0A, 0x0D, 0x03, 0x0B, 0xC0, 0x1A, +0x4D, 0x0B, 0xA0, 0x03, 0xF1, 0x0A, 0xFF, 0xFF, +0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xA0, 0x1E, 0xCA, 0x20, 0x90, 0x1A, 0x58, 0x0D, +0xAD, 0x18, 0xA3, 0x59, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xA0, 0x1E, 0x9A, 0x20, 0xAC, 0x00, +0x9A, 0x08, 0xC1, 0x21, 0x91, 0x21, 0xAC, 0x00, +0x9A, 0x08, 0xC1, 0x21, 0x91, 0x21, 0x70, 0x1A, +0x85, 0x0D, 0x7D, 0x20, 0x87, 0x00, 0xFF, 0xFF, +0x81, 0x21, 0x78, 0x08, 0xAC, 0x00, 0xA0, 0x62, +0xFF, 0x00, 0x20, 0x03, 0x5B, 0x0A, 0x82, 0x48, +0x8B, 0x80, 0x80, 0x1A, 0x94, 0x0D, 0x0D, 0x18, +0xFF, 0xFF, 0x80, 0x20, 0x80, 0x0B, 0xAE, 0xC9, +0x2F, 0x80, 0x72, 0x08, 0xAE, 0xC1, 0xA8, 0xC1, +0xA9, 0xC1, 0x9A, 0x08, 0x70, 0x1A, 0xA3, 0x0D, +0x7D, 0x20, 0x70, 0x0B, 0xA0, 0x03, 0xF1, 0x0A, +0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, 0xF1, 0x0A, +0x0F, 0x88, 0x21, 0x29, 0x00, 0x0E, 0x4B, 0x0B, +0xD0, 0x03, 0x0A, 0x00, 0xB0, 0x1A, 0x77, 0x00, +0xC0, 0x1A, 0x0E, 0x0B, 0x50, 0x19, 0x9C, 0x18, +0x92, 0x21, 0x89, 0x00, 0x88, 0x51, 0x70, 0x81, +0x8D, 0x51, 0x51, 0x81, 0xA0, 0x03, 0x4B, 0x0B, +0xFF, 0xFF, 0xA1, 0x21, 0x0A, 0x0D, 0x4B, 0x0B, +0x8F, 0x51, 0x50, 0x80, 0xA0, 0x03, 0x4A, 0x0B, +0xA8, 0xC1, 0x0A, 0x0D, 0x4A, 0x0B, 0x8A, 0x51, +0xF0, 0x80, 0xA0, 0x03, 0x4A, 0x0B, 0xA2, 0xC1, +0x0A, 0x0D, 0x4A, 0x0B, 0x9F, 0x80, 0x8B, 0x51, +0x10, 0x80, 0x51, 0x19, 0x9B, 0x18, 0x92, 0x21, +0x89, 0x00, 0x88, 0x51, 0x10, 0x80, 0x51, 0x19, +0xB3, 0x21, 0xC3, 0x21, 0xD1, 0x39, 0x71, 0x85, +0xB0, 0x03, 0x59, 0x0A, 0xA0, 0x03, 0x4B, 0x0B, +0xBA, 0x48, 0xF0, 0x80, 0xBA, 0x48, 0x7C, 0x80, +0xA0, 0x03, 0x4A, 0x0B, 0xA3, 0xC1, 0xA0, 0xC1, +0x0A, 0x0D, 0x4A, 0x0B, 0x6F, 0x80, 0xA0, 0x03, +0x4A, 0x0B, 0xAB, 0xC1, 0xA1, 0xC1, 0x0A, 0x0D, +0x4A, 0x0B, 0xA0, 0x03, 0x4A, 0x0B, 0xAB, 0xC9, +0xB0, 0x03, 0x4B, 0x0B, 0xB0, 0x49, 0x10, 0x80, +0xAB, 0xC1, 0x50, 0x49, 0x20, 0x80, 0xA3, 0xC1, +0xA0, 0xC1, 0x0A, 0x0D, 0x4A, 0x0B, 0xA2, 0x51, +0x91, 0x80, 0xA0, 0x03, 0x5D, 0x0A, 0xA0, 0x49, +0xF0, 0xA0, 0xFF, 0xFF, 0xA1, 0x39, 0x0A, 0x0D, +0x5D, 0x0A, 0xFF, 0xA0, 0x03, 0x0E, 0x5D, 0x0A, +0xFF, 0xA0, 0x70, 0x03, 0x46, 0x00, 0x70, 0x49, +0xF0, 0xA0, 0xFF, 0xFF, 0x70, 0x03, 0x0C, 0x00, +0x76, 0x51, 0xF0, 0xA0, 0xFF, 0xFF, 0x70, 0x03, +0x31, 0x02, 0x71, 0x49, 0xF0, 0xA0, 0xFF, 0xFF, +0x50, 0x18, 0x14, 0x00, 0x01, 0x19, 0x0F, 0x98, +0xBD, 0x15, 0x5F, 0x51, 0x20, 0x19, 0x10, 0x80, +0x21, 0x39, 0x05, 0x0D, 0x00, 0xF9, 0x02, 0x0D, +0x01, 0xF9, 0x00, 0x0D, 0x02, 0xF9, 0x01, 0x0D, +0x03, 0xF9, 0x00, 0x03, 0x00, 0xF9, 0x10, 0x03, +0x01, 0xF9, 0x22, 0x19, 0x0F, 0x88, 0x17, 0x16, +0x00, 0x0E, 0x10, 0xF9, 0x00, 0x0E, 0x11, 0xF9, +0x00, 0x0E, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0xA0, 0x03, 0x55, 0x00, 0xB0, 0x03, 0x56, 0x00, +0x00, 0x1A, 0x32, 0x02, 0x10, 0x03, 0x0C, 0x00, +0x12, 0x51, 0x20, 0x80, 0x00, 0x1A, 0x72, 0x03, +0x00, 0x0D, 0x30, 0x02, 0xD0, 0x03, 0x30, 0x02, +0xC0, 0x03, 0xB5, 0x0D, 0xFF, 0xFF, 0xCB, 0x58, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x1E, +0x00, 0x03, 0xB3, 0x0D, 0xFF, 0xFF, 0xC0, 0x20, +0xDC, 0x20, 0x0D, 0x00, 0x00, 0x0D, 0x10, 0xF9, +0x00, 0x03, 0xDA, 0x00, 0x0F, 0x61, 0x00, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0xD1, 0x21, +0x3D, 0x00, 0xFF, 0xFF, 0xDB, 0x20, 0x1D, 0x00, +0xFF, 0xFF, 0xD1, 0x39, 0x0D, 0x00, 0xFF, 0xFF, +0x30, 0x20, 0x20, 0x03, 0x10, 0xF9, 0x03, 0x0D, +0x10, 0xF9, 0x00, 0x03, 0xDB, 0x00, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0x30, 0x03, 0x10, 0xF9, 0xFF, 0xFF, 0x23, 0x20, +0x01, 0x0D, 0x10, 0xF9, 0x00, 0x03, 0xDC, 0x00, +0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0x00, 0x03, 0x10, 0xF9, 0xFF, 0xFF, +0x02, 0x20, 0x40, 0x1A, 0xF2, 0x05, 0x4C, 0x20, +0x0F, 0x98, 0xF8, 0x29, 0x40, 0x08, 0xD0, 0x03, +0x30, 0x02, 0xC0, 0x03, 0xB5, 0x0D, 0xFF, 0xFF, +0xCB, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xC0, 0x1E, 0x00, 0x03, 0xB4, 0x0D, 0xFF, 0xFF, +0xC0, 0x20, 0xDC, 0x20, 0x0D, 0x00, 0x00, 0x0D, +0x10, 0xF9, 0x00, 0x03, 0xDA, 0x00, 0xFF, 0xFF, +0x04, 0x79, 0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, +0x00, 0x0E, 0x13, 0xF9, 0xD1, 0x39, 0x3D, 0x00, +0xFF, 0xFF, 0xDB, 0x20, 0x1D, 0x00, 0xFF, 0xFF, +0xD1, 0x21, 0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, +0x20, 0x03, 0x10, 0xF9, 0x03, 0x0D, 0x10, 0xF9, +0x00, 0x03, 0xDB, 0x00, 0xFF, 0xFF, 0x04, 0x79, +0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0x30, 0x03, 0x10, 0xF9, 0xFF, 0xFF, +0x23, 0x20, 0x01, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xDC, 0x00, 0xFF, 0xFF, 0x04, 0x79, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0x00, 0x03, 0x10, 0xF9, 0xFF, 0xFF, 0x02, 0x20, +0x40, 0x1A, 0xF2, 0x05, 0x4C, 0x20, 0x0F, 0x98, +0xF8, 0x29, 0x40, 0x08, 0xD0, 0x03, 0x30, 0x02, +0xC0, 0x03, 0xB6, 0x0D, 0xFF, 0xFF, 0xCB, 0x58, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x1E, +0x00, 0x03, 0xB3, 0x0D, 0xFF, 0xFF, 0xC0, 0x20, +0xDC, 0x20, 0x0D, 0x00, 0x00, 0x0D, 0x10, 0xF9, +0x00, 0x03, 0xDA, 0x00, 0xFF, 0xFF, 0x08, 0x79, +0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0xD1, 0x21, 0x3D, 0x00, 0xFF, 0xFF, +0xDB, 0x38, 0x1D, 0x00, 0xFF, 0xFF, 0xD1, 0x39, +0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, 0x20, 0x03, +0x10, 0xF9, 0x03, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xDB, 0x00, 0xFF, 0xFF, 0x08, 0x79, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0x30, 0x03, 0x10, 0xF9, 0xFF, 0xFF, 0x23, 0x20, +0x01, 0x0D, 0x10, 0xF9, 0x00, 0x03, 0xDC, 0x00, +0xFF, 0xFF, 0x08, 0x79, 0x0F, 0x61, 0x00, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0x00, 0x03, +0x10, 0xF9, 0xFF, 0xFF, 0x02, 0x20, 0x40, 0x1A, +0xF2, 0x05, 0x4C, 0x20, 0x0F, 0x98, 0xF8, 0x29, +0x40, 0x08, 0xD0, 0x03, 0x30, 0x02, 0xC0, 0x03, +0xB6, 0x0D, 0xFF, 0xFF, 0xCB, 0x58, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x1E, 0x00, 0x03, +0xB4, 0x0D, 0xFF, 0xFF, 0xC0, 0x20, 0xDC, 0x20, +0x0D, 0x00, 0x00, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xDA, 0x00, 0xFF, 0xFF, 0x0C, 0x79, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0xD1, 0x39, 0x3D, 0x00, 0xFF, 0xFF, 0xDB, 0x38, +0x1D, 0x00, 0xFF, 0xFF, 0xD1, 0x21, 0x0D, 0x00, +0xFF, 0xFF, 0x30, 0x20, 0x20, 0x03, 0x10, 0xF9, +0x03, 0x0D, 0x10, 0xF9, 0x00, 0x03, 0xDB, 0x00, +0xFF, 0xFF, 0x0C, 0x79, 0x0F, 0x61, 0x00, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0x30, 0x03, +0x10, 0xF9, 0xFF, 0xFF, 0x23, 0x20, 0x01, 0x0D, +0x10, 0xF9, 0x00, 0x03, 0xDC, 0x00, 0xFF, 0xFF, +0x0C, 0x79, 0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, +0x00, 0x0E, 0x13, 0xF9, 0x00, 0x03, 0x10, 0xF9, +0xFF, 0xFF, 0x02, 0x20, 0x40, 0x1A, 0xF2, 0x05, +0x4C, 0x20, 0x0F, 0x98, 0xF8, 0x29, 0x40, 0x08, +0x90, 0x03, 0xB3, 0x0D, 0xFF, 0xFF, 0x91, 0x21, +0xD0, 0x03, 0x30, 0x02, 0xC0, 0x03, 0xB5, 0x0D, +0xFF, 0xFF, 0xCB, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xC0, 0x1E, 0xC9, 0x20, 0xDC, 0x20, +0x0D, 0x00, 0x00, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xD1, 0x00, 0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, +0x00, 0x0E, 0x13, 0xF9, 0xD1, 0x21, 0x3D, 0x00, +0xFF, 0xFF, 0xD2, 0x39, 0x0D, 0x00, 0xFF, 0xFF, +0x30, 0x20, 0xDB, 0x20, 0x1D, 0x00, 0xFF, 0xFF, +0xD1, 0x21, 0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, +0xD1, 0x21, 0x0D, 0x00, 0xFF, 0xFF, 0x10, 0x20, +0x20, 0x03, 0x10, 0xF9, 0x03, 0x0D, 0x10, 0xF9, +0x00, 0x03, 0xD2, 0x00, 0x0F, 0x61, 0x00, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0x30, 0x03, +0x10, 0xF9, 0x73, 0x18, 0x23, 0x20, 0x01, 0x0D, +0x10, 0xF9, 0x00, 0x03, 0xD3, 0x00, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0x00, 0x03, 0x10, 0xF9, 0xFF, 0xFF, 0x02, 0x20, +0x40, 0x1A, 0xF2, 0x05, 0x4C, 0x20, 0x0F, 0x98, +0xF8, 0x29, 0x40, 0x08, 0x00, 0x03, 0xB4, 0x0D, +0xFF, 0xFF, 0x91, 0x21, 0x90, 0x48, 0x0C, 0x88, +0x5F, 0x2B, 0x90, 0x03, 0xB3, 0x0D, 0xFF, 0xFF, +0x91, 0x21, 0xD0, 0x03, 0x30, 0x02, 0xC0, 0x03, +0xB6, 0x0D, 0xFF, 0xFF, 0xCB, 0x58, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x1E, 0xC9, 0x20, +0xDC, 0x20, 0x0D, 0x00, 0x00, 0x0D, 0x10, 0xF9, +0x00, 0x03, 0xD1, 0x00, 0xFF, 0xFF, 0x04, 0x79, +0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0xD1, 0x21, 0x3D, 0x00, 0xFF, 0xFF, +0xD2, 0x39, 0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, +0xDB, 0x38, 0x1D, 0x00, 0xFF, 0xFF, 0xD2, 0x21, +0x0D, 0x00, 0xFF, 0xFF, 0x10, 0x20, 0xD1, 0x39, +0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, 0x20, 0x03, +0x10, 0xF9, 0x03, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xD2, 0x00, 0xFF, 0xFF, 0x04, 0x79, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0x00, 0x03, 0x10, 0xF9, 0x70, 0x18, 0x20, 0x20, +0x01, 0x0D, 0x10, 0xF9, 0x00, 0x03, 0xD3, 0x00, +0xFF, 0xFF, 0x04, 0x79, 0x0F, 0x61, 0x00, 0x0D, +0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, 0x00, 0x03, +0x10, 0xF9, 0xFF, 0xFF, 0x02, 0x20, 0x40, 0x1A, +0xF2, 0x05, 0x4C, 0x20, 0x0F, 0x98, 0xF8, 0x29, +0x40, 0x08, 0x00, 0x03, 0xB4, 0x0D, 0xFF, 0xFF, +0x91, 0x21, 0x90, 0x48, 0x0C, 0x88, 0xB4, 0x2B, +0x90, 0x03, 0xB5, 0x0D, 0xFF, 0xFF, 0x91, 0x21, +0xD0, 0x03, 0x30, 0x02, 0xC9, 0x18, 0xCB, 0x58, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x1E, +0x00, 0x03, 0xB3, 0x0D, 0xFF, 0xFF, 0xC0, 0x20, +0xDC, 0x20, 0x0D, 0x00, 0x00, 0x0D, 0x10, 0xF9, +0x00, 0x03, 0xD1, 0x00, 0xFF, 0xFF, 0x08, 0x79, +0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0xD1, 0x21, 0x3D, 0x00, 0xFF, 0xFF, +0xDB, 0x38, 0x1D, 0x00, 0xFF, 0xFF, 0xD1, 0x39, +0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, 0xDB, 0x20, +0xDB, 0x20, 0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, +0xD1, 0x21, 0x0D, 0x00, 0xFF, 0xFF, 0x10, 0x20, +0x20, 0x03, 0x10, 0xF9, 0x03, 0x0D, 0x10, 0xF9, +0x00, 0x03, 0xD2, 0x00, 0xFF, 0xFF, 0x08, 0x79, +0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0x30, 0x03, 0x10, 0xF9, 0x73, 0x18, +0x23, 0x20, 0x01, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xD3, 0x00, 0xFF, 0xFF, 0x08, 0x79, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0x00, 0x03, 0x10, 0xF9, 0xFF, 0xFF, 0x02, 0x20, +0x40, 0x1A, 0xF2, 0x05, 0x4C, 0x20, 0x0F, 0x98, +0xF8, 0x29, 0x40, 0x08, 0x00, 0x03, 0xB6, 0x0D, +0xFF, 0xFF, 0x91, 0x21, 0x90, 0x48, 0x0C, 0x88, +0x0F, 0x2C, 0x90, 0x03, 0xB5, 0x0D, 0xFF, 0xFF, +0x91, 0x21, 0xD0, 0x03, 0x30, 0x02, 0xC9, 0x18, +0xCB, 0x58, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xC0, 0x1E, 0x00, 0x03, 0xB4, 0x0D, 0xFF, 0xFF, +0xC0, 0x20, 0xDC, 0x20, 0x0D, 0x00, 0x00, 0x0D, +0x10, 0xF9, 0x00, 0x03, 0xD1, 0x00, 0xFF, 0xFF, +0x0C, 0x79, 0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, +0x00, 0x0E, 0x13, 0xF9, 0xDB, 0x38, 0x3D, 0x00, +0xFF, 0xFF, 0xD1, 0x39, 0x1D, 0x00, 0xFF, 0xFF, +0xDB, 0x20, 0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, +0xDB, 0x20, 0x0D, 0x00, 0xFF, 0xFF, 0x10, 0x20, +0xD1, 0x21, 0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, +0x20, 0x03, 0x10, 0xF9, 0x03, 0x0D, 0x10, 0xF9, +0x00, 0x03, 0xD2, 0x00, 0xFF, 0xFF, 0x0C, 0x79, +0x0F, 0x61, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0x30, 0x03, 0x10, 0xF9, 0x73, 0x18, +0x23, 0x20, 0x01, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xD3, 0x00, 0xFF, 0xFF, 0x0C, 0x79, 0x0F, 0x61, +0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0x00, 0x03, 0x10, 0xF9, 0xFF, 0xFF, 0x02, 0x20, +0x40, 0x1A, 0xF2, 0x05, 0x4C, 0x20, 0x0F, 0x98, +0xF8, 0x29, 0x40, 0x08, 0x00, 0x03, 0xB6, 0x0D, +0xFF, 0xFF, 0x91, 0x21, 0x90, 0x48, 0x0C, 0x88, +0x6C, 0x2C, 0x70, 0x03, 0x31, 0x02, 0x71, 0x49, +0xF0, 0xA0, 0xFF, 0xFF, 0x80, 0x03, 0xB5, 0x0D, +0xFF, 0xFF, 0x81, 0x21, 0x90, 0x03, 0xB3, 0x0D, +0xFF, 0xFF, 0x91, 0x21, 0x08, 0x0D, 0x10, 0xF9, +0x0B, 0x0D, 0x12, 0xF9, 0x00, 0x0E, 0x13, 0xF9, +0xC0, 0x03, 0x10, 0xF9, 0xFF, 0xFF, 0xC9, 0x20, +0xD0, 0x03, 0x30, 0x02, 0xFF, 0xFF, 0xDC, 0x20, +0x0D, 0x00, 0x00, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xCA, 0x00, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0xDB, 0x38, 0x3D, 0x00, 0xFF, 0xFF, +0xD1, 0x39, 0x1D, 0x00, 0xFF, 0xFF, 0xDB, 0x20, +0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, 0xDB, 0x20, +0x0D, 0x00, 0xFF, 0xFF, 0x10, 0x20, 0xD1, 0x21, +0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, 0xD1, 0x21, +0x0D, 0x00, 0xFF, 0xFF, 0x10, 0x20, 0xDB, 0x38, +0x0D, 0x00, 0xFF, 0xFF, 0x30, 0x20, 0xDB, 0x38, +0x0D, 0x00, 0xFF, 0xFF, 0x10, 0x20, 0x20, 0x03, +0x10, 0xF9, 0x03, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xCB, 0x00, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0x30, 0x03, 0x10, 0xF9, 0xFF, 0xFF, +0x23, 0x20, 0x01, 0x0D, 0x10, 0xF9, 0x00, 0x03, +0xCC, 0x00, 0x00, 0x0D, 0x12, 0xF9, 0x00, 0x0E, +0x13, 0xF9, 0x00, 0x03, 0x10, 0xF9, 0xFF, 0xFF, +0x02, 0x20, 0x40, 0x1A, 0xF2, 0x05, 0x4C, 0x20, +0x0F, 0x98, 0xF8, 0x29, 0x40, 0x08, 0x00, 0x03, +0xB4, 0x0D, 0xFF, 0xFF, 0x91, 0x21, 0x90, 0x48, +0x0C, 0x88, 0xD1, 0x2C, 0x00, 0x03, 0xB6, 0x0D, +0x90, 0x03, 0xB3, 0x0D, 0xFF, 0xFF, 0x91, 0x21, +0x81, 0x21, 0x80, 0x48, 0x0C, 0x88, 0xD1, 0x2C, +0xFF, 0xA0, 0xB0, 0x1A, 0xF8, 0x0A, 0xA0, 0x1A, +0x7C, 0x0A, 0x93, 0x19, 0x0A, 0x00, 0xFF, 0xFF, +0xA1, 0x21, 0x1A, 0x00, 0xFF, 0xFF, 0xA1, 0x21, +0x0F, 0x98, 0x7C, 0x15, 0x2A, 0x00, 0xFF, 0xFF, +0xA1, 0x21, 0x0F, 0x98, 0x97, 0x15, 0xB0, 0x08, +0xB1, 0x21, 0xB1, 0x08, 0xB1, 0x21, 0x91, 0x39, +0xD1, 0x86, 0xFF, 0xA0, 0x00, 0x0E, 0x9E, 0x0A, +0x0F, 0x98, 0x38, 0x2D, 0xB0, 0x1A, 0xF8, 0x0A, +0x4B, 0x00, 0xFF, 0xFF, 0xB1, 0x21, 0x5B, 0x00, +0xFF, 0xFF, 0xB1, 0x21, 0x6B, 0x00, 0xFF, 0xFF, +0xB1, 0x21, 0x7B, 0x00, 0xFF, 0xFF, 0xB1, 0x21, +0x8B, 0x00, 0xFF, 0xFF, 0xB1, 0x21, 0x9B, 0x00, +0x06, 0x18, 0x17, 0x18, 0x26, 0x18, 0x37, 0x18, +0x0F, 0x98, 0xAE, 0x15, 0x24, 0x18, 0x35, 0x18, +0x0F, 0x98, 0xEF, 0x15, 0x28, 0x18, 0x39, 0x18, +0x0F, 0x98, 0xEF, 0x15, 0x00, 0x0D, 0xFE, 0x0A, +0x01, 0x0D, 0xFF, 0x0A, 0x08, 0x18, 0x19, 0x18, +0x24, 0x18, 0x35, 0x18, 0x0F, 0x98, 0xEF, 0x15, +0x20, 0x03, 0xC5, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0xD8, 0x15, 0x20, 0x03, 0xFE, 0x0A, 0x30, 0x03, +0xFF, 0x0A, 0xFF, 0xFF, 0x0F, 0x98, 0x17, 0x16, +0x00, 0x4A, 0x40, 0x00, 0x2C, 0x80, 0x00, 0x1A, +0x40, 0x00, 0x00, 0x4A, 0xC0, 0xFF, 0x2A, 0x80, +0x00, 0x1A, 0xC0, 0xFF, 0x00, 0x0D, 0xB7, 0x0A, +0x0F, 0x98, 0x36, 0x2E, 0x0F, 0x98, 0x38, 0x2D, +0xB0, 0x1A, 0xF8, 0x0A, 0x4B, 0x00, 0xFF, 0xFF, +0xB1, 0x21, 0x5B, 0x00, 0xFF, 0xFF, 0xB1, 0x21, +0x6B, 0x00, 0xFF, 0xFF, 0xB1, 0x21, 0x7B, 0x00, +0xFF, 0xFF, 0xB1, 0x21, 0x8B, 0x00, 0xFF, 0xFF, +0xB1, 0x21, 0x9B, 0x00, 0x06, 0x18, 0x17, 0x18, +0x26, 0x18, 0x37, 0x18, 0x0F, 0x98, 0xAE, 0x15, +0x24, 0x18, 0x35, 0x18, 0x0F, 0x98, 0xEF, 0x15, +0x28, 0x18, 0x39, 0x18, 0x0F, 0x98, 0xEF, 0x15, +0x00, 0x0D, 0x00, 0x0B, 0x01, 0x0D, 0x01, 0x0B, +0x08, 0x18, 0x19, 0x18, 0x24, 0x18, 0x35, 0x18, +0x0F, 0x98, 0xEF, 0x15, 0x20, 0x03, 0xC5, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0xD8, 0x15, 0x20, 0x03, +0x00, 0x0B, 0x30, 0x03, 0x01, 0x0B, 0xFF, 0xFF, +0x0F, 0x98, 0x17, 0x16, 0x00, 0x4A, 0x40, 0x00, +0x2C, 0x80, 0x00, 0x1A, 0x40, 0x00, 0x00, 0x4A, +0xC0, 0xFF, 0x2A, 0x80, 0x00, 0x1A, 0xC0, 0xFF, +0x00, 0x0D, 0xB8, 0x0A, 0xA0, 0x03, 0xC9, 0x0A, +0xA0, 0x49, 0x00, 0x82, 0xA0, 0x03, 0x9F, 0x0A, +0xA1, 0x49, 0xC0, 0x81, 0xA0, 0x03, 0xB1, 0x0A, +0xA1, 0x49, 0x20, 0x80, 0xB0, 0x03, 0xC6, 0x00, +0xFF, 0xFF, 0x21, 0x80, 0xB0, 0x03, 0xC7, 0x00, +0x00, 0x03, 0xFE, 0x0A, 0x10, 0x03, 0xFF, 0x0A, +0x20, 0x03, 0x00, 0x0B, 0x30, 0x03, 0x01, 0x0B, +0x90, 0x19, 0x10, 0x49, 0x1C, 0x81, 0x0B, 0x48, +0xFC, 0x80, 0x90, 0x19, 0x30, 0x49, 0xCC, 0x80, +0x2B, 0x48, 0xAC, 0x80, 0x00, 0x0E, 0x9F, 0x0A, +0xA0, 0x1A, 0x7C, 0x0A, 0xA4, 0x21, 0xBA, 0x00, +0x0B, 0x0D, 0xB9, 0x0A, 0x91, 0x19, 0xFF, 0xA0, +0x0F, 0x98, 0x36, 0x2E, 0x01, 0x0E, 0x9F, 0x0A, +0x00, 0x03, 0xC9, 0x0A, 0x00, 0x49, 0x00, 0x88, +0x51, 0x2D, 0x01, 0x0E, 0x9E, 0x0A, 0x04, 0x49, +0x0D, 0x98, 0xE1, 0x2E, 0xFF, 0xFF, 0x00, 0x03, +0xC9, 0x0A, 0x04, 0x49, 0x0A, 0x98, 0x5C, 0x2F, +0xFF, 0xFF, 0x0F, 0x88, 0x51, 0x2D, 0x90, 0x1A, +0x8E, 0x0A, 0x29, 0x19, 0x0A, 0x00, 0x10, 0x18, +0x00, 0x62, 0xFF, 0x00, 0x90, 0x08, 0x91, 0x21, +0x21, 0x39, 0xF0, 0xA0, 0xFF, 0xFF, 0x18, 0x79, +0x91, 0x08, 0x91, 0x21, 0x21, 0x39, 0xF0, 0xA0, +0xFF, 0xFF, 0xA1, 0x21, 0xFF, 0x86, 0x00, 0x03, +0x7D, 0x0A, 0x10, 0x03, 0x7F, 0x0A, 0x00, 0x0D, +0x7F, 0x0A, 0x01, 0x0D, 0x7D, 0x0A, 0x00, 0x03, +0x7E, 0x0A, 0x10, 0x03, 0x82, 0x0A, 0x00, 0x0D, +0x82, 0x0A, 0x01, 0x0D, 0x7E, 0x0A, 0x00, 0x03, +0x81, 0x0A, 0x10, 0x03, 0x83, 0x0A, 0x00, 0x0D, +0x83, 0x0A, 0x01, 0x0D, 0x81, 0x0A, 0xFF, 0xA0, +0xA0, 0x03, 0xC9, 0x0A, 0xA1, 0x49, 0x10, 0x81, +0xA2, 0x49, 0xB0, 0x81, 0xA3, 0x49, 0x50, 0x82, +0xA4, 0x49, 0xF0, 0x82, 0xA5, 0x49, 0x90, 0x83, +0xA6, 0x49, 0x00, 0x88, 0xA7, 0x2E, 0xA7, 0x49, +0x00, 0x88, 0xBA, 0x2E, 0xA8, 0x49, 0x00, 0x88, +0xCD, 0x2E, 0xA0, 0x1A, 0x41, 0x01, 0x0F, 0x98, +0x22, 0x2E, 0x20, 0x03, 0xD4, 0x00, 0x02, 0x0D, +0x97, 0x0A, 0x0F, 0x98, 0xE1, 0x2E, 0x0F, 0x88, +0xDF, 0x2E, 0xA0, 0x1A, 0x46, 0x01, 0x0F, 0x98, +0x22, 0x2E, 0x20, 0x03, 0xD5, 0x00, 0x02, 0x0D, +0x97, 0x0A, 0x0F, 0x98, 0xE1, 0x2E, 0x0F, 0x88, +0xDF, 0x2E, 0xA0, 0x1A, 0x4B, 0x01, 0x0F, 0x98, +0x22, 0x2E, 0x20, 0x03, 0xD6, 0x00, 0x02, 0x0D, +0x97, 0x0A, 0x0F, 0x98, 0xE1, 0x2E, 0x0F, 0x88, +0xDF, 0x2E, 0xA0, 0x1A, 0x50, 0x01, 0x0F, 0x98, +0x22, 0x2E, 0x20, 0x03, 0xD7, 0x00, 0x02, 0x0D, +0x97, 0x0A, 0x0F, 0x98, 0xE1, 0x2E, 0x0F, 0x88, +0xDF, 0x2E, 0xA0, 0x1A, 0x55, 0x01, 0x0F, 0x98, +0x22, 0x2E, 0x20, 0x03, 0xDD, 0x00, 0x02, 0x0D, +0x97, 0x0A, 0x20, 0x03, 0xD4, 0x00, 0x02, 0x0D, +0x98, 0x0A, 0x20, 0x03, 0xD6, 0x00, 0x02, 0x0D, +0x99, 0x0A, 0x0F, 0x98, 0x5C, 0x2F, 0x8F, 0x83, +0xA0, 0x1A, 0x5A, 0x01, 0x0F, 0x98, 0x22, 0x2E, +0x20, 0x03, 0xDE, 0x00, 0x02, 0x0D, 0x97, 0x0A, +0x20, 0x03, 0xD4, 0x00, 0x02, 0x0D, 0x98, 0x0A, +0x20, 0x03, 0xD7, 0x00, 0x02, 0x0D, 0x99, 0x0A, +0x0F, 0x98, 0x5C, 0x2F, 0x5F, 0x82, 0xA0, 0x1A, +0x5F, 0x01, 0x0F, 0x98, 0x22, 0x2E, 0x20, 0x03, +0xDF, 0x00, 0x02, 0x0D, 0x97, 0x0A, 0x20, 0x03, +0xD5, 0x00, 0x02, 0x0D, 0x98, 0x0A, 0x20, 0x03, +0xD6, 0x00, 0x02, 0x0D, 0x99, 0x0A, 0x0F, 0x98, +0x5C, 0x2F, 0x2F, 0x81, 0xA0, 0x1A, 0x64, 0x01, +0x0F, 0x98, 0x22, 0x2E, 0x20, 0x03, 0xE0, 0x00, +0x02, 0x0D, 0x97, 0x0A, 0x20, 0x03, 0xD5, 0x00, +0x02, 0x0D, 0x98, 0x0A, 0x20, 0x03, 0xD7, 0x00, +0x02, 0x0D, 0x99, 0x0A, 0x0F, 0x98, 0x5C, 0x2F, +0x0F, 0x88, 0x51, 0x2D, 0x90, 0x1A, 0x8E, 0x0A, +0xA0, 0x1A, 0x7C, 0x0A, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0x5B, 0x00, 0xFF, 0xFF, 0x91, 0x21, +0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, 0x6B, 0x00, +0xFF, 0xFF, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0x7B, 0x00, 0x85, 0x18, 0x86, 0x20, +0x87, 0x20, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0x2B, 0x00, 0xFF, 0xFF, 0x91, 0x21, +0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, 0x3B, 0x00, +0xFF, 0xFF, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0x4B, 0x00, 0xFF, 0xFF, 0x42, 0x20, +0x43, 0x20, 0x04, 0x18, 0x10, 0x03, 0xD0, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0xBD, 0x15, 0x28, 0x18, +0x0F, 0x98, 0x17, 0x16, 0x80, 0x03, 0x97, 0x0A, +0xFF, 0xFF, 0x80, 0x38, 0x15, 0x18, 0x00, 0x03, +0x9E, 0x0A, 0x00, 0x49, 0x11, 0x80, 0x08, 0x18, +0x20, 0x80, 0x00, 0x03, 0xD0, 0x00, 0xFF, 0xFF, +0x0F, 0x98, 0xBD, 0x15, 0x20, 0x03, 0xD0, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0x17, 0x16, 0x91, 0x21, +0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, 0xB0, 0x08, +0x16, 0x18, 0x00, 0x03, 0x9E, 0x0A, 0x00, 0x49, +0x11, 0x80, 0x08, 0x18, 0x20, 0x80, 0x00, 0x03, +0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, 0xBD, 0x15, +0x20, 0x03, 0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0x17, 0x16, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0xB0, 0x08, 0x17, 0x18, 0x00, 0x03, +0x9E, 0x0A, 0x00, 0x49, 0x11, 0x80, 0x08, 0x18, +0x20, 0x80, 0x00, 0x03, 0xD0, 0x00, 0xFF, 0xFF, +0x0F, 0x98, 0xBD, 0x15, 0x20, 0x03, 0xD0, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0x17, 0x16, 0x91, 0x21, +0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, 0xB0, 0x08, +0xFF, 0xA0, 0x90, 0x1A, 0x8E, 0x0A, 0xA0, 0x1A, +0x7C, 0x0A, 0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, +0x5B, 0x00, 0xFF, 0xFF, 0x91, 0x21, 0xB9, 0x00, +0xFF, 0xFF, 0xBA, 0x20, 0x6B, 0x00, 0x85, 0x18, +0x86, 0x20, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0x7B, 0x00, 0xFF, 0xFF, 0x91, 0x21, +0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, 0x4B, 0x00, +0x04, 0x18, 0x07, 0x20, 0x10, 0x03, 0xD0, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0xBD, 0x15, 0x28, 0x18, +0x0F, 0x98, 0x17, 0x16, 0x80, 0x03, 0x98, 0x0A, +0xFF, 0xFF, 0x80, 0x38, 0x15, 0x18, 0x00, 0x03, +0x9E, 0x0A, 0x00, 0x49, 0x11, 0x80, 0x08, 0x18, +0x20, 0x80, 0x00, 0x03, 0xD0, 0x00, 0xFF, 0xFF, +0x0F, 0x98, 0xBD, 0x15, 0x20, 0x03, 0xD0, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0x17, 0x16, 0x91, 0x21, +0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, 0xB0, 0x08, +0x16, 0x18, 0x00, 0x03, 0x9E, 0x0A, 0x00, 0x49, +0x11, 0x80, 0x08, 0x18, 0x20, 0x80, 0x00, 0x03, +0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, 0xBD, 0x15, +0x20, 0x03, 0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0x17, 0x16, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0xB0, 0x08, 0x85, 0x18, 0x87, 0x20, +0x06, 0x18, 0x04, 0x20, 0x10, 0x03, 0xD0, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0xBD, 0x15, 0x28, 0x18, +0x0F, 0x98, 0x17, 0x16, 0x80, 0x03, 0x99, 0x0A, +0xFF, 0xFF, 0x80, 0x38, 0x15, 0x18, 0x00, 0x03, +0x9E, 0x0A, 0x00, 0x49, 0x11, 0x80, 0x08, 0x18, +0x20, 0x80, 0x00, 0x03, 0xD0, 0x00, 0xFF, 0xFF, +0x0F, 0x98, 0xBD, 0x15, 0x20, 0x03, 0xD0, 0x00, +0xFF, 0xFF, 0x0F, 0x98, 0x17, 0x16, 0x91, 0x21, +0xB9, 0x00, 0xFF, 0xFF, 0xBA, 0x20, 0xB0, 0x08, +0x17, 0x18, 0x00, 0x03, 0x9E, 0x0A, 0x00, 0x49, +0x11, 0x80, 0x08, 0x18, 0x20, 0x80, 0x00, 0x03, +0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, 0xBD, 0x15, +0x20, 0x03, 0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0x17, 0x16, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0xB0, 0x08, 0x85, 0x18, 0x04, 0x18, +0x10, 0x03, 0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0xBD, 0x15, 0x28, 0x18, 0x0F, 0x98, 0x17, 0x16, +0x80, 0x03, 0x97, 0x0A, 0xFF, 0xFF, 0x80, 0x38, +0x15, 0x18, 0x00, 0x03, 0x9E, 0x0A, 0x00, 0x49, +0x11, 0x80, 0x08, 0x18, 0x20, 0x80, 0x00, 0x03, +0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, 0xBD, 0x15, +0x20, 0x03, 0xD0, 0x00, 0xFF, 0xFF, 0x0F, 0x98, +0x17, 0x16, 0x91, 0x21, 0xB9, 0x00, 0xFF, 0xFF, +0xBA, 0x20, 0xB0, 0x08, 0xFF, 0xA0, 0x00, 0x03, +0x0D, 0x01, 0x80, 0x03, 0x0E, 0x01, 0x18, 0x18, +0x18, 0x79, 0x91, 0x18, 0x80, 0x62, 0xFF, 0x00, +0x0F, 0x98, 0xBD, 0x15, 0x20, 0x18, 0x31, 0x18, +0x0A, 0x00, 0x18, 0x18, 0x0F, 0x98, 0xBD, 0x15, +0x0F, 0x98, 0x97, 0x15, 0x89, 0x20, 0x28, 0x18, +0x0F, 0x98, 0x17, 0x16, 0x00, 0x0D, 0x11, 0x00, +0xFF, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x86, 0x00, 0xFF, 0xFF, 0x00, 0x00, +0xAA, 0xAA, 0x55, 0x55, 0x00, 0x00, 0x40, 0x40, +0x86, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x05, 0x00, +0x10, 0x00, 0x2C, 0x7A, 0xFF, 0xFF, 0x00, 0x00, +0xFF, 0xFF, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x90, 0x01, +0x90, 0x01, 0x90, 0x01, 0x90, 0x01, 0x03, 0x00, +0x01, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x28, 0x00, +0x1E, 0x00, 0x01, 0x00, 0x01, 0x00, 0x1E, 0x00, +0x32, 0x00, 0x28, 0x00, 0x14, 0x00, 0x10, 0x00, +0x10, 0x00, 0x10, 0x04, 0x02, 0x00, 0x64, 0x00, +0x05, 0x1E, 0x20, 0x14, 0x00, 0x00, 0x00, 0x00, +0x19, 0x00, 0x04, 0x00, 0x10, 0x00, 0x1E, 0x00, +0x01, 0x01, 0x02, 0x01, 0x64, 0x00, 0x0A, 0x00, +0x00, 0x00, 0x03, 0x01, 0x04, 0x01, 0x00, 0x01, +0x03, 0x02, 0x05, 0x00, 0xC8, 0x00, 0x14, 0x00, +0x0A, 0x00, 0xEC, 0xFF, 0x0A, 0x00, 0xC8, 0x00, +0x2C, 0x01, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00, +0x0F, 0x00, 0xE8, 0x03, 0x2D, 0x00, 0xC8, 0x00, +0x03, 0x01, 0x50, 0x00, 0x0A, 0x00, 0x0A, 0x00, +0x00, 0x00, 0x50, 0x00, 0x0A, 0x00, 0x64, 0x00, +0xC8, 0x00, 0xCC, 0x01, 0x12, 0x00, 0x0A, 0x00, +0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, +0x11, 0x12, 0x09, 0x00, 0x01, 0x02, 0x03, 0x04, +0x05, 0x06, 0x07, 0x08, 0x14, 0x15, 0x16, 0x17, +0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, +0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, +0xA4, 0x06, 0x01, 0x00, 0x96, 0x00, 0x64, 0x00, +0x20, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x10, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x19, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, +0x26, 0x02, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, +0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xDF, 0x01, 0x1F, 0x03, +0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0xE8, 0x03, +0xFA, 0x00, 0x40, 0x00, 0x00, 0x00, 0x2C, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x64, 0x00, +0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, +0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, +0x0A, 0x00, 0x64, 0x00, 0x77, 0x77, 0x44, 0x44, +0x33, 0x33, 0xA3, 0x00, 0xA2, 0x00, 0xA0, 0x00, +0xA4, 0x00, 0x1E, 0x00, 0x20, 0x00, 0x88, 0x88, +0x33, 0x33, 0x33, 0x43, 0x8C, 0x00, 0x8C, 0x00, +0x8C, 0x00, 0x8C, 0x00, 0x3C, 0x00, 0x04, 0x00, +0x2C, 0x01, 0x06, 0x00, 0x0F, 0x88, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, +0x06, 0x07, 0x09, 0x0A, 0x08, 0x0B, 0x0C, 0x0D, +0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, +0x16, 0x17, 0x18, 0x19, 0x0B, 0x00, 0x28, 0x28, +0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, +0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, +0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, +0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, +0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x64, 0x00, 0x12, 0x00, 0xC8, 0x00, 0x04, 0x00, +0x90, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x25, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x49, 0x5A, 0x77, 0x33, 0xFF, 0xFF, +0xFF, 0xFF, 0x05, 0x33, 0x11, 0x00, 0x33, 0x01, +0x01, 0x00, 0xFF, 0x00, 0x11, 0x00, 0x00, 0x20, +0x70, 0x70, 0x7F, 0x00, 0x7F, 0x00, 0x08, 0x08, +0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08, +0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x05, 0x06, +0x07, 0x08, 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, +0x05, 0x00, 0x01, 0x02, 0x06, 0x07, 0x08, 0x00, +0x01, 0x04, 0x07, 0x02, 0x05, 0x08, 0x00, 0x03, +0x06, 0x00, 0x01, 0x04, 0x07, 0x00, 0x03, 0x06, +0x02, 0x05, 0x08, 0x00, 0x04, 0x05, 0x07, 0x08, +0x01, 0x02, 0x03, 0x06, 0x00, 0x00, 0x04, 0x03, +0x07, 0x06, 0x01, 0x00, 0x05, 0x08, 0x02, 0x00, +0x04, 0x05, 0x01, 0x02, 0x07, 0x08, 0x03, 0x00, +0x06, 0x00, 0x04, 0x03, 0x01, 0x00, 0x07, 0x06, +0x05, 0x02, 0x08, 0x00, 0x13, 0x00, 0x13, 0x00, +0xF0, 0x00, 0x13, 0x00, 0xCD, 0x01, 0x13, 0x00, +0xA8, 0x01, 0x43, 0x00, 0xCD, 0x01, 0x72, 0x00, +0xA8, 0x01, 0xA2, 0x00, 0x81, 0x00, 0xD1, 0x00, +0x5F, 0x01, 0xD1, 0x00, 0xCD, 0x01, 0xD1, 0x00, +0xA8, 0x01, 0x01, 0x01, 0xCD, 0x01, 0x31, 0x01, +0xA8, 0x01, 0x60, 0x01, 0x13, 0x00, 0x8E, 0x01, +0xF0, 0x00, 0x8E, 0x01, 0xCD, 0x01, 0x8E, 0x01, +0x38, 0x00, 0xC0, 0x01, 0x13, 0x00, 0xEF, 0x01, +0x38, 0x00, 0x1F, 0x02, 0x13, 0x00, 0x4F, 0x02, +0x81, 0x00, 0x4F, 0x02, 0x5F, 0x01, 0x4F, 0x02, +0x38, 0x00, 0x7E, 0x02, 0x13, 0x00, 0xAE, 0x02, +0x4A, 0x00, 0xE7, 0x02, 0xB9, 0x00, 0xE7, 0x02, +0x27, 0x01, 0xE7, 0x02, 0x96, 0x01, 0xE7, 0x02, +0x13, 0x00, 0x0D, 0x03, 0x81, 0x00, 0x0D, 0x03, +0xF0, 0x00, 0x0D, 0x03, 0x5F, 0x01, 0x0D, 0x03, +0xCD, 0x01, 0x0D, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, +}; +#endif diff --git a/drivers/input/touchscreen/zinitix_touch_zxt_firmware.h b/drivers/input/touchscreen/zinitix_touch_zxt_firmware.h new file mode 100755 index 00000000..97fc8d56 --- /dev/null +++ b/drivers/input/touchscreen/zinitix_touch_zxt_firmware.h @@ -0,0 +1,8223 @@ +/* +* +* Zinitix touch driver +* +* Copyright (C) 2009 Zinitix, 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. +* +*/ +/* +Release Date : 15/02/14, 19:42 + +Version Info : + Chip Code : 0xE700 + Firmware Version : 0x0005 + Firmware Minor Version : 0x0001 + Register Version : 2 +*/ +#ifndef _ZINITIX_ZXT_CODE_H +#define _ZINITIX_ZXT_CODE_H + +u8 m_firmware_data[] = { +0x48, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0x05, 0x05, 0x00, 0x00, 0x00, +0x01, 0x00, 0x80, 0x01, 0x02, 0x00, 0x00, 0x00, +0x00, 0xE7, 0xE7, 0x00, 0x44, 0x00, 0x00, 0x00, +0x44, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, +0x44, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, +0x44, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, +0x44, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x47, 0xD0, 0x00, 0x82, 0x59, 0xDE, 0x84, 0xE8, +0x64, 0x00, 0x80, 0x02, 0x46, 0x10, 0x10, 0x00, +0x40, 0x20, 0x04, 0x02, 0x4E, 0x22, 0x00, 0x00, +0x46, 0x10, 0x00, 0x80, 0x40, 0x20, 0x04, 0x02, +0x4E, 0x22, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, +0x42, 0x0E, 0x00, 0x21, 0x3F, 0xC8, 0x00, 0x00, +0x47, 0xF0, 0x00, 0x8E, 0x59, 0xFF, 0x8F, 0xF0, +0x49, 0x00, 0x41, 0xC8, 0x48, 0x00, 0x10, 0x8D, +0xFC, 0x68, 0x80, 0xE0, 0x3C, 0x03, 0xF6, 0x81, +0x84, 0x20, 0x3C, 0x1B, 0xED, 0x8C, 0x3E, 0x17, +0xDB, 0x1A, 0x3E, 0x10, 0x03, 0x23, 0x3E, 0x17, +0xF3, 0xB6, 0x3E, 0x17, 0xF3, 0xC2, 0x3C, 0x1B, +0xF9, 0xD2, 0x3C, 0x1B, 0xF9, 0xD3, 0x3C, 0x1B, +0xF9, 0xD4, 0x3C, 0x18, 0x05, 0x02, 0x3E, 0x17, +0xF3, 0xD9, 0x3E, 0x17, 0xF3, 0xD8, 0xC8, 0x05, +0x49, 0x00, 0x4F, 0x76, 0x48, 0x00, 0x00, 0xD5, +0x3C, 0x20, 0x0E, 0x94, 0x3C, 0x30, 0x0F, 0x83, +0x3C, 0x50, 0x0E, 0x95, 0x3C, 0x60, 0x0F, 0x83, +0x3C, 0x80, 0x0E, 0x97, 0x3C, 0x90, 0x0F, 0x83, +0x3C, 0xA0, 0x0E, 0x96, 0x3C, 0xB0, 0x0F, 0x83, +0x3D, 0x00, 0x0E, 0x98, 0x3C, 0xC0, 0x0F, 0x83, +0x3D, 0x10, 0x0F, 0x26, 0x3C, 0xD0, 0x0F, 0x83, +0x88, 0x43, 0x2E, 0x17, 0xE1, 0x60, 0x97, 0x11, +0x88, 0xA6, 0x89, 0x09, 0x89, 0x4B, 0x89, 0x8C, +0x89, 0xAD, 0x3C, 0xE0, 0x0E, 0xB6, 0x3C, 0x48, +0x05, 0x12, 0x3C, 0x58, 0x05, 0x13, 0x3C, 0x88, +0x05, 0x14, 0x3C, 0xA8, 0x05, 0x15, 0x3D, 0x08, +0x05, 0x16, 0x3D, 0x18, 0x05, 0x17, 0x3C, 0xE8, +0x05, 0x2F, 0x3C, 0x48, 0x05, 0x2A, 0x3C, 0x48, +0x05, 0x2B, 0x3C, 0x48, 0x05, 0x2C, 0xC1, 0x2B, +0x3C, 0xF0, 0x10, 0xA0, 0x3D, 0x20, 0x10, 0xA1, +0x3D, 0x30, 0x10, 0xAF, 0x3D, 0x40, 0x10, 0x9A, +0x3C, 0x00, 0x0F, 0x83, 0x3D, 0x60, 0x0F, 0xE8, +0x3C, 0x50, 0x0F, 0x83, 0x86, 0xA3, 0x96, 0x83, +0x40, 0x31, 0x54, 0x76, 0x97, 0xAB, 0x40, 0x83, +0x55, 0x16, 0x88, 0x74, 0x97, 0x19, 0x89, 0x16, +0x3C, 0xF8, 0x05, 0x2A, 0x3D, 0x28, 0x05, 0x2B, +0x3D, 0x38, 0x05, 0x2F, 0x3C, 0x48, 0x05, 0x16, +0x3C, 0x48, 0x05, 0x15, 0x3C, 0x48, 0x05, 0x14, +0x3C, 0x48, 0x05, 0x13, 0x3C, 0x48, 0x05, 0x12, +0x3C, 0x88, 0x05, 0x17, 0x3C, 0x10, 0x05, 0x09, +0x3D, 0x70, 0x0F, 0x88, 0x85, 0x80, 0x3D, 0x80, +0x0F, 0xDF, 0x85, 0xA0, 0x3D, 0x90, 0x0F, 0x37, +0x96, 0x6E, 0x3D, 0xE0, 0x0F, 0x86, 0x3C, 0x90, +0x0F, 0x87, 0x3C, 0xA0, 0x0E, 0xA8, 0x3C, 0xB0, +0x10, 0x73, 0x3D, 0x00, 0x10, 0x72, 0x3D, 0x10, +0x0E, 0xB1, 0x3C, 0xE0, 0x0E, 0x89, 0x3D, 0x78, +0x05, 0x1B, 0x3D, 0x88, 0x05, 0x1C, 0x3D, 0x98, +0x05, 0x1F, 0x3D, 0xE8, 0x05, 0x20, 0x3C, 0x98, +0x05, 0x21, 0x3C, 0xA8, 0x05, 0x22, 0x3C, 0xB8, +0x05, 0x25, 0x3D, 0x08, 0x05, 0x26, 0x3E, 0xC0, +0x0A, 0x3B, 0x3D, 0x18, 0x05, 0x29, 0x3C, 0xD8, +0x05, 0x2D, 0x3C, 0xE8, 0x05, 0x2E, 0xC1, 0x40, +0x3C, 0xF0, 0x10, 0xF4, 0x5A, 0xF0, 0x01, 0x06, +0x3D, 0x20, 0x10, 0xF4, 0x5B, 0x28, 0x03, 0x1A, +0x3D, 0x30, 0x10, 0xFD, 0x3D, 0x40, 0x10, 0xFD, +0x3C, 0x00, 0x10, 0xFE, 0x3C, 0x20, 0x11, 0x03, +0x3D, 0x38, 0x05, 0x16, 0x3D, 0x38, 0x05, 0x15, +0x3D, 0x38, 0x05, 0x14, 0x3D, 0x38, 0x05, 0x13, +0x3D, 0x38, 0x05, 0x12, 0x3D, 0x48, 0x05, 0x17, +0x3C, 0x08, 0x05, 0x1B, 0x3C, 0x28, 0x05, 0x1C, +0x3C, 0x30, 0x10, 0xF4, 0xC3, 0x1D, 0x3D, 0x50, +0x11, 0x08, 0x3C, 0x40, 0x11, 0x09, 0x3D, 0x60, +0x11, 0x0C, 0x3C, 0x50, 0x11, 0x0A, 0x3C, 0x60, +0x11, 0x06, 0x3C, 0x80, 0x11, 0x12, 0x3D, 0x70, +0x11, 0x11, 0x3D, 0x58, 0x05, 0x2A, 0x3C, 0x48, +0x05, 0x2B, 0x3D, 0x68, 0x05, 0x2D, 0x3C, 0x58, +0x05, 0x2C, 0x3C, 0x68, 0x05, 0x2E, 0x3C, 0x88, +0x05, 0x25, 0x3D, 0x78, 0x05, 0x26, 0x2E, 0x07, +0xE1, 0x60, 0x2E, 0x27, 0xE1, 0x63, 0xC8, 0x02, +0xC2, 0x10, 0x3C, 0xA0, 0x10, 0x96, 0x3C, 0xB0, +0x10, 0x97, 0x3D, 0x00, 0x10, 0x98, 0x3C, 0xA8, +0x05, 0x06, 0x3C, 0xB8, 0x05, 0x07, 0x3D, 0x08, +0x05, 0x08, 0x3C, 0x90, 0x10, 0x99, 0xD5, 0x0F, +0x3D, 0x80, 0x0E, 0x8B, 0x3D, 0x90, 0x0F, 0x91, +0x3D, 0xE0, 0x0F, 0x92, 0x3D, 0x88, 0x05, 0x06, +0x3D, 0x98, 0x05, 0x07, 0x3D, 0xE8, 0x05, 0x08, +0x3C, 0x90, 0x0F, 0x93, 0x2E, 0x57, 0xE1, 0x64, +0x3C, 0x98, 0x05, 0x09, 0xD0, 0x0F, 0x5A, 0x08, +0x01, 0x0E, 0x3C, 0xC0, 0x10, 0xA7, 0x3C, 0xC8, +0x05, 0x16, 0x3C, 0xC8, 0x05, 0x15, 0x3C, 0xC8, +0x05, 0x14, 0x3C, 0xC8, 0x05, 0x13, 0x3C, 0xC8, +0x05, 0x12, 0xC2, 0x15, 0x3D, 0x10, 0x10, 0xA0, +0x3C, 0xD0, 0x10, 0xA1, 0x3C, 0xE0, 0x10, 0x9E, +0x3D, 0x18, 0x05, 0x2A, 0x3C, 0xD8, 0x05, 0x2B, +0x3C, 0xE8, 0x05, 0x16, 0x3C, 0xE8, 0x05, 0x15, +0x3C, 0xE8, 0x05, 0x14, 0x3C, 0xE8, 0x05, 0x13, +0x3C, 0xE8, 0x05, 0x12, 0x3C, 0x10, 0x10, 0xF4, +0x5A, 0x10, 0x01, 0x06, 0x3C, 0xF0, 0x10, 0xF4, +0x5A, 0xF8, 0x03, 0x0E, 0x3D, 0x20, 0x05, 0x06, +0x3D, 0x40, 0x05, 0x07, 0x67, 0x39, 0x40, 0x00, +0x66, 0x3A, 0x00, 0x04, 0x3D, 0x38, 0x05, 0x06, +0x3C, 0x38, 0x05, 0x07, 0x3D, 0x50, 0x10, 0xF4, +0x5B, 0x58, 0x02, 0x08, 0x3C, 0x40, 0x05, 0x06, +0x67, 0x62, 0x00, 0x44, 0x3D, 0x68, 0x05, 0x06, +0x3C, 0x60, 0x05, 0x09, 0x96, 0x34, 0xC0, 0x2E, +0x2E, 0x87, 0xE1, 0x5D, 0x5A, 0x88, 0x02, 0x2B, +0x3D, 0x70, 0x05, 0x06, 0x87, 0x20, 0xFB, 0x2E, +0x58, 0x2B, 0x80, 0x04, 0x45, 0x80, 0x27, 0x10, +0x87, 0xC5, 0x3C, 0xA0, 0x0E, 0x9E, 0x3C, 0x28, +0x05, 0x06, 0x3D, 0x88, 0x05, 0x23, 0x3D, 0x98, +0x05, 0x20, 0x3D, 0x98, 0x05, 0x21, 0x3D, 0x98, +0x05, 0x24, 0x3C, 0x98, 0x05, 0x1B, 0x3C, 0x98, +0x05, 0x1C, 0x3D, 0xE8, 0x05, 0x1F, 0x3D, 0x98, +0x05, 0x27, 0x3F, 0x97, 0xE1, 0x60, 0x3F, 0x97, +0xE1, 0x64, 0x3D, 0x9B, 0xF0, 0xB5, 0x3D, 0x9B, +0xF0, 0xB6, 0x3F, 0x97, 0xE1, 0x62, 0x3C, 0xAB, +0xF6, 0x75, 0x2E, 0x50, 0x03, 0x22, 0xCD, 0x05, +0x3C, 0xB7, 0xF9, 0xD8, 0x4E, 0xB7, 0x00, 0x04, +0x86, 0x03, 0xD5, 0x04, 0x3D, 0x00, 0x01, 0x95, +0x8F, 0x81, 0x3D, 0x08, 0x01, 0x95, 0x3C, 0xC4, +0x01, 0x95, 0x4E, 0xC6, 0x00, 0x07, 0x85, 0xA0, +0x3C, 0xD8, 0x01, 0x95, 0x86, 0x21, 0xD5, 0x02, +0x86, 0x20, 0x3C, 0xE7, 0xF6, 0x74, 0x3F, 0x10, +0x03, 0x2C, 0x4E, 0xE7, 0x00, 0x14, 0x3C, 0x10, +0x05, 0x08, 0x96, 0x5E, 0xC1, 0x0F, 0x2E, 0xF7, +0xEC, 0xFB, 0x5A, 0xF8, 0x01, 0x0C, 0x3C, 0x30, +0x0E, 0x9C, 0x3D, 0x20, 0x0E, 0x4C, 0x97, 0x1B, +0xE0, 0x92, 0xE8, 0x04, 0x86, 0x60, 0x3D, 0x3B, +0xF6, 0x74, 0x3D, 0x47, 0xF6, 0x74, 0x4F, 0x46, +0x00, 0x05, 0x2E, 0x67, 0xEC, 0xFA, 0xC6, 0x12, +0x84, 0x01, 0x49, 0x00, 0x4E, 0xB1, 0x5A, 0x00, +0x01, 0x04, 0x48, 0x00, 0x0B, 0xCC, 0x84, 0x60, +0x84, 0x00, 0x3E, 0x37, 0xEC, 0xFA, 0x49, 0x00, +0x4B, 0xB8, 0x49, 0x00, 0x4F, 0x4A, 0x48, 0x00, +0x0B, 0xC2, 0x86, 0xA1, 0x3F, 0x50, 0x1C, 0xB8, +0xCF, 0x0D, 0x3C, 0x7B, 0xF6, 0x7C, 0x3C, 0x7B, +0xF6, 0x7B, 0x3C, 0x7B, 0xF6, 0x7A, 0x3C, 0x7B, +0xF6, 0x76, 0x3C, 0x7B, 0xF6, 0x75, 0x48, 0x00, +0x0B, 0xB2, 0x80, 0x06, 0x49, 0x00, 0x4E, 0x90, +0x5A, 0x08, 0x01, 0x04, 0x48, 0x00, 0x0B, 0xAB, +0x49, 0x00, 0x1A, 0xD1, 0x49, 0x00, 0x4D, 0x5E, +0x3C, 0x40, 0x05, 0x06, 0x54, 0x72, 0x04, 0x00, +0xCF, 0x06, 0x84, 0xE0, 0x3E, 0x08, 0x03, 0x4C, +0x82, 0xC7, 0xD5, 0x61, 0x3C, 0x00, 0x0F, 0xC3, +0x96, 0x83, 0xC2, 0xF8, 0x82, 0x46, 0x82, 0x66, +0x3C, 0xD0, 0x0E, 0x61, 0x3E, 0x68, 0x0A, 0x60, +0xE1, 0xED, 0xE8, 0x0C, 0x41, 0x43, 0x4C, 0x20, +0x23, 0x5A, 0x08, 0xCC, 0x4F, 0x56, 0x00, 0x04, +0x4E, 0x24, 0x00, 0x03, 0x89, 0xD5, 0x8D, 0xE1, +0xD5, 0xF4, 0x40, 0x59, 0x34, 0xB6, 0x42, 0x11, +0x00, 0x03, 0xFF, 0x4C, 0x45, 0x60, 0x00, 0x64, +0x86, 0x20, 0x40, 0xC2, 0xD9, 0x96, 0x3E, 0x08, +0x09, 0x0C, 0x81, 0xD1, 0xE1, 0xAD, 0xE8, 0x0E, +0x2A, 0x50, 0x00, 0x01, 0x8A, 0xAC, 0x96, 0xEB, +0x4E, 0x35, 0x00, 0x05, 0x12, 0x30, 0x7F, 0xFF, +0xD5, 0x03, 0x12, 0xE0, 0x7F, 0xFF, 0x8D, 0xA1, +0xD5, 0xF2, 0x85, 0x40, 0x3D, 0x80, 0x0E, 0x60, +0x81, 0x6A, 0x3E, 0x78, 0x0A, 0x60, 0xE1, 0x78, +0xE8, 0x0C, 0x41, 0xE3, 0xAC, 0x20, 0x23, 0x0F, +0x08, 0xAC, 0x4F, 0x06, 0x00, 0x04, 0x4E, 0x24, +0x00, 0x03, 0x89, 0x50, 0x8D, 0x61, 0xD5, 0xF4, +0x40, 0x25, 0x60, 0x56, 0xFE, 0x8C, 0x44, 0x80, +0x00, 0x64, 0x85, 0x20, 0x41, 0x71, 0x22, 0xF6, +0x3E, 0x38, 0x08, 0xCC, 0x83, 0x29, 0xE1, 0x38, +0xE8, 0xA9, 0x2A, 0x11, 0x80, 0x01, 0x8A, 0x37, +0x97, 0x8B, 0x4E, 0x65, 0x00, 0x05, 0x12, 0x61, +0xFF, 0xFF, 0xD5, 0x03, 0x13, 0x91, 0xFF, 0xFF, +0x8D, 0x21, 0xD5, 0xF2, 0x98, 0x78, 0x8C, 0xE2, +0x13, 0x60, 0x83, 0x2C, 0x3E, 0x38, 0x03, 0x4C, +0x5A, 0x78, 0x40, 0xFA, 0x97, 0x36, 0xCC, 0x0D, +0x84, 0x80, 0x3C, 0x7C, 0x02, 0x79, 0x3E, 0x58, +0x0A, 0x60, 0x45, 0xE0, 0x00, 0x64, 0x3F, 0x08, +0x03, 0x4C, 0x83, 0x24, 0x48, 0x00, 0x00, 0x98, +0x3C, 0x40, 0x0E, 0xEE, 0xC4, 0xF2, 0x3C, 0x20, +0x0E, 0xEE, 0x3C, 0x40, 0x0E, 0x5F, 0x97, 0x53, +0x42, 0x62, 0x80, 0x03, 0x44, 0x70, 0x00, 0x64, +0x85, 0x20, 0x96, 0xB3, 0x3D, 0x70, 0x0E, 0x5E, +0xFF, 0xE4, 0x81, 0x09, 0x3F, 0x88, 0x0A, 0x60, +0xE1, 0x17, 0xE8, 0xDF, 0x84, 0x00, 0x81, 0x40, +0xE1, 0x44, 0xE8, 0x35, 0x41, 0xE5, 0x24, 0x00, +0x41, 0x0C, 0x78, 0x20, 0x23, 0x98, 0x05, 0xEC, +0x4F, 0x95, 0x00, 0x15, 0x3D, 0x50, 0x10, 0x54, +0x41, 0x6A, 0x80, 0x11, 0x4F, 0x67, 0x00, 0x0C, +0x3C, 0x10, 0x10, 0x54, 0x38, 0x61, 0xF9, 0x11, +0x97, 0x4B, 0xE0, 0xC5, 0xE9, 0x04, 0x3D, 0x40, +0x10, 0x54, 0xD5, 0x18, 0x39, 0x91, 0xF9, 0x11, +0xD5, 0x17, 0x3C, 0xC0, 0x0E, 0xEE, 0x41, 0x16, +0x00, 0x11, 0x4F, 0x14, 0x00, 0x13, 0x3C, 0xD0, +0x10, 0x55, 0x40, 0xE6, 0x80, 0x11, 0x4E, 0xE4, +0x00, 0x0C, 0x3D, 0x20, 0x10, 0x55, 0x41, 0x39, +0x00, 0x11, 0xE1, 0xF9, 0xE9, 0x05, 0x3D, 0x40, +0x10, 0x55, 0x41, 0x9A, 0x00, 0x11, 0x88, 0x19, +0x8D, 0x41, 0xD5, 0xCB, 0xFE, 0x14, 0x41, 0x91, +0xA0, 0x20, 0x40, 0xB0, 0x1D, 0x76, 0x12, 0xBC, +0x83, 0x2C, 0x8D, 0x01, 0x89, 0x24, 0xD5, 0xBD, +0x41, 0x2C, 0x2C, 0x00, 0x89, 0xC5, 0x40, 0xD1, +0xA4, 0x20, 0x22, 0xC9, 0x05, 0xEC, 0x23, 0x56, +0x83, 0x2C, 0x40, 0x06, 0x54, 0x01, 0x4E, 0x04, +0x00, 0x48, 0xFE, 0x82, 0xE1, 0x42, 0xE8, 0x03, +0x40, 0xA1, 0x00, 0x11, 0x8D, 0x21, 0x89, 0x77, +0xE1, 0x36, 0xE9, 0xEB, 0x3C, 0x20, 0x05, 0x06, +0x96, 0x96, 0x96, 0x11, 0xC0, 0x09, 0x3C, 0x00, +0x0E, 0xC5, 0x96, 0x43, 0x43, 0x25, 0x04, 0x24, +0x40, 0x29, 0x78, 0x57, 0x96, 0x13, 0x3C, 0x10, +0x0E, 0xDA, 0x96, 0x8B, 0x4E, 0x25, 0x00, 0x33, +0x3C, 0xC0, 0x05, 0x07, 0x54, 0x26, 0x08, 0x00, +0x96, 0x51, 0xC1, 0x09, 0x3C, 0x10, 0x0F, 0x66, +0x96, 0x8B, 0x42, 0xD4, 0x08, 0x24, 0x40, 0x16, +0xF8, 0x37, 0x96, 0x4B, 0x81, 0x64, 0x86, 0x20, +0x88, 0x01, 0x3D, 0x50, 0x0E, 0x5E, 0xE1, 0xB5, +0xE9, 0x28, 0x8C, 0x81, 0x3C, 0x20, 0x0E, 0x5F, +0xE0, 0x82, 0xE9, 0x07, 0x3D, 0xE0, 0x0E, 0x61, +0x3E, 0x58, 0x09, 0x0C, 0x86, 0x60, 0xD5, 0x4B, +0x85, 0x60, 0x3D, 0x60, 0x0E, 0x5E, 0x41, 0x71, +0x04, 0x08, 0x41, 0x82, 0x04, 0x08, 0x81, 0x0B, +0x81, 0x4B, 0x81, 0x2B, 0xD5, 0xC2, 0xC0, 0xBF, +0xE1, 0x00, 0xE8, 0xBD, 0x40, 0x80, 0x00, 0x11, +0xD5, 0xBA, 0x3C, 0x10, 0x0E, 0xDA, 0xFE, 0x82, +0x96, 0x4B, 0xE0, 0x41, 0xE8, 0xCA, 0x3C, 0x00, +0x0E, 0xDA, 0xFE, 0x42, 0x96, 0x0B, 0xD5, 0xC5, +0x3C, 0x60, 0x0E, 0xEE, 0x96, 0xB3, 0x4E, 0x24, +0x00, 0x11, 0x50, 0xE5, 0x85, 0xEC, 0x38, 0x82, +0xB9, 0x11, 0x3D, 0x30, 0x05, 0x12, 0x8B, 0x00, +0xE1, 0xE8, 0xE8, 0x0A, 0x41, 0x41, 0xC4, 0x20, +0x03, 0x6A, 0x03, 0x2C, 0x8B, 0x16, 0xD5, 0x04, +0x38, 0x81, 0xAD, 0x01, 0x8B, 0x00, 0x38, 0x81, +0xAD, 0x09, 0x39, 0x71, 0xAD, 0x11, 0x4F, 0x74, +0x00, 0x04, 0x39, 0x98, 0x2D, 0x09, 0x3C, 0x10, +0x05, 0x08, 0x97, 0x8C, 0xC6, 0x07, 0x41, 0x83, +0xAC, 0x20, 0x38, 0xA1, 0xAD, 0x11, 0x12, 0xAC, +0x00, 0x00, 0x3C, 0x90, 0x0E, 0x5F, 0x8D, 0xA1, +0x89, 0x69, 0xD5, 0xA8, 0xE1, 0xFE, 0xE8, 0x07, +0x2B, 0x42, 0x80, 0x01, 0x13, 0x42, 0x80, 0x35, +0x8D, 0xE1, 0xD5, 0xF9, 0x3C, 0xD0, 0x0E, 0x60, +0x3E, 0x68, 0x08, 0xCC, 0x85, 0x40, 0xE1, 0x4D, +0xE8, 0x07, 0x2A, 0x83, 0x00, 0x01, 0x12, 0x83, +0x00, 0x35, 0x8D, 0x41, 0xD5, 0xF9, 0x44, 0x90, +0x7F, 0xFF, 0x44, 0x8F, 0x80, 0x00, 0x3C, 0x98, +0x04, 0xFD, 0x3C, 0x98, 0x05, 0x00, 0x3C, 0x88, +0x04, 0xFC, 0x3C, 0x88, 0x04, 0xFF, 0x44, 0x9F, +0x80, 0x00, 0x3C, 0x14, 0x04, 0xFE, 0x44, 0xE0, +0x7F, 0xFF, 0x3E, 0x08, 0x1B, 0xF8, 0x84, 0xE0, +0xE0, 0xFE, 0xE8, 0x11, 0x41, 0x91, 0x9C, 0x20, +0x23, 0x1C, 0x82, 0xE0, 0xE1, 0x31, 0xE8, 0x04, +0x22, 0x90, 0x00, 0x00, 0x96, 0x7B, 0xE1, 0xAE, +0xE8, 0x03, 0x22, 0xE0, 0x00, 0x00, 0x8C, 0xE1, +0x8C, 0x02, 0xD5, 0xEF, 0x3C, 0x18, 0x04, 0xFE, +0x3C, 0xE8, 0x04, 0xFD, 0x3C, 0x98, 0x04, 0xFC, +0x3C, 0x44, 0x04, 0xFF, 0x3C, 0x64, 0x05, 0x01, +0x3C, 0x54, 0x05, 0x00, 0x3E, 0x18, 0x1B, 0xB8, +0x84, 0x00, 0xE0, 0x0D, 0xE8, 0x11, 0x41, 0x51, +0x80, 0x20, 0x23, 0x0A, 0x82, 0xC0, 0xE0, 0x90, +0xE8, 0x04, 0x22, 0x40, 0x80, 0x00, 0x97, 0x83, +0xE1, 0x85, 0xE8, 0x03, 0x22, 0x50, 0x80, 0x00, +0x8C, 0x01, 0x8C, 0x22, 0xD5, 0xEF, 0x44, 0x7F, +0x80, 0x00, 0x3C, 0x48, 0x04, 0xFF, 0x44, 0x40, +0x7F, 0xFF, 0x3C, 0x58, 0x05, 0x00, 0x3C, 0x78, +0x04, 0xF9, 0x3C, 0x68, 0x05, 0x01, 0x3C, 0x48, +0x04, 0xFA, 0x3C, 0x50, 0x0E, 0x5D, 0x3C, 0x70, +0x04, 0xFB, 0x44, 0xC0, 0x7F, 0xFF, 0x45, 0x2F, +0x80, 0x00, 0x84, 0x00, 0xE0, 0x05, 0xE8, 0x0B, +0x38, 0xB1, 0x81, 0x11, 0xE1, 0xCB, 0xE8, 0x03, +0x97, 0xC1, 0x82, 0x4B, 0x42, 0xC6, 0x2C, 0x01, +0x8C, 0x01, 0xD5, 0xF5, 0x2E, 0x07, 0xF3, 0xC3, +0x86, 0xE0, 0x3D, 0x28, 0x04, 0xF9, 0x3C, 0xC8, +0x04, 0xFA, 0x3C, 0x78, 0x04, 0xFB, 0x3D, 0x78, +0x05, 0x18, 0xC8, 0x03, 0x3C, 0x08, 0x05, 0x19, +0x2E, 0x60, 0x03, 0x22, 0x3D, 0x78, 0x05, 0x1A, +0x96, 0x34, 0x3D, 0x80, 0x05, 0x12, 0x3C, 0x70, +0x05, 0x13, 0x3C, 0x40, 0x05, 0x14, 0x3C, 0x10, +0x05, 0x15, 0x3C, 0xA0, 0x05, 0x16, 0xC0, 0x21, +0x3C, 0x00, 0x05, 0x29, 0x45, 0xE0, 0x00, 0x64, +0x42, 0xB0, 0x60, 0x24, 0xFF, 0xC4, 0xFF, 0x04, +0xFE, 0x44, 0x42, 0xE5, 0x00, 0x24, 0x41, 0x05, +0xFA, 0x17, 0x40, 0xC3, 0xF9, 0x97, 0x41, 0x12, +0x7A, 0x37, 0x40, 0xD0, 0xF9, 0xB7, 0x41, 0x27, +0x7A, 0x57, 0x3D, 0x08, 0x05, 0x0B, 0x3C, 0xC8, +0x05, 0x0C, 0x3D, 0x18, 0x05, 0x0D, 0x3C, 0xD8, +0x05, 0x0E, 0x3D, 0x28, 0x05, 0x0F, 0xD5, 0x0B, +0x3D, 0x88, 0x05, 0x0B, 0x3C, 0x78, 0x05, 0x0C, +0x3C, 0x48, 0x05, 0x0D, 0x3C, 0x18, 0x05, 0x0E, +0x3C, 0xA8, 0x05, 0x0F, 0x3C, 0x74, 0x0E, 0x58, +0x4E, 0x77, 0x00, 0x3A, 0x3C, 0x40, 0x0F, 0x24, +0x96, 0x63, 0x4E, 0x17, 0x00, 0x35, 0x3C, 0x00, +0x0F, 0x64, 0x97, 0x03, 0x4E, 0x44, 0x00, 0x30, +0x3C, 0x10, 0x0F, 0x33, 0x45, 0x30, 0x00, 0x64, +0x96, 0x0B, 0xFF, 0xC4, 0x41, 0x43, 0xCE, 0x97, +0x3C, 0x70, 0x0F, 0x27, 0x41, 0x5A, 0x00, 0x11, +0xCF, 0x12, 0x3C, 0x10, 0x0F, 0x28, 0xC9, 0x08, +0x3C, 0xB0, 0x05, 0x0C, 0xE1, 0x75, 0xE8, 0x1B, +0x3D, 0x48, 0x05, 0x0C, 0xD5, 0x18, 0x3C, 0xA0, +0x05, 0x0E, 0xE1, 0x55, 0xE8, 0x14, 0x3D, 0x48, +0x05, 0x0E, 0xD5, 0x11, 0x3C, 0x40, 0x0F, 0x28, +0xCC, 0x08, 0x3C, 0x90, 0x05, 0x0F, 0xE1, 0x35, +0xE8, 0x0A, 0x3D, 0x48, 0x05, 0x0F, 0xD5, 0x07, +0x3C, 0x80, 0x05, 0x0D, 0xE1, 0x15, 0xE8, 0x03, +0x3D, 0x48, 0x05, 0x0D, 0x3C, 0x00, 0x05, 0x17, +0x54, 0x73, 0x00, 0x02, 0x3C, 0x08, 0x05, 0x10, +0xC7, 0x0A, 0x3C, 0x40, 0x05, 0x29, 0x45, 0x60, +0x00, 0x64, 0xFE, 0x24, 0x41, 0x90, 0x5B, 0x37, +0x3D, 0x98, 0x05, 0x10, 0x2E, 0x17, 0xE1, 0x63, +0xC1, 0x03, 0x3D, 0x88, 0x05, 0x11, 0x3D, 0x70, +0x05, 0x11, 0x3D, 0x00, 0x05, 0x0B, 0xE3, 0x97, +0xE8, 0x03, 0x3D, 0x78, 0x05, 0x0B, 0x3D, 0x10, +0x05, 0x10, 0xE3, 0xB7, 0xE8, 0x03, 0x3D, 0x78, +0x05, 0x10, 0x3C, 0x00, 0x0E, 0x99, 0x3C, 0x44, +0x05, 0x02, 0x97, 0xC3, 0xFF, 0xE4, 0x45, 0x80, +0x00, 0x64, 0x3C, 0x13, 0xF9, 0xD8, 0x41, 0xE3, +0xE3, 0xD6, 0x85, 0x83, 0x43, 0xEB, 0xB0, 0x73, +0x85, 0xA4, 0x8E, 0x21, 0x40, 0xEF, 0x35, 0xD6, +0x96, 0x0B, 0x3C, 0xE8, 0x05, 0x11, 0x3C, 0x0B, +0xF9, 0xD8, 0x4E, 0x05, 0x00, 0x0E, 0x3D, 0x24, +0x0E, 0x4F, 0x3D, 0x30, 0x05, 0x0B, 0xE1, 0xF2, +0x4E, 0xF3, 0x04, 0xCB, 0x3C, 0x80, 0x05, 0x10, +0xE1, 0x12, 0x4E, 0xF3, 0x04, 0xC6, 0x3D, 0x50, +0x0E, 0x8B, 0x86, 0x80, 0x54, 0x7A, 0x88, 0x00, +0x3D, 0x4B, 0xF9, 0xD8, 0xCF, 0x62, 0x3C, 0x90, +0x05, 0x07, 0x54, 0x44, 0x81, 0x00, 0xC4, 0x38, +0x2E, 0xA7, 0xE1, 0x5D, 0x5A, 0xA0, 0x02, 0x35, +0xCE, 0x07, 0x3C, 0x40, 0x10, 0xE0, 0x3C, 0x10, +0x10, 0xE1, 0x97, 0xE3, 0xD5, 0x06, 0x3C, 0x60, +0x10, 0xD5, 0x3C, 0x10, 0x10, 0xD6, 0x97, 0xF3, +0x96, 0x4B, 0x4E, 0x17, 0x00, 0x12, 0x3C, 0x00, +0x05, 0x27, 0x96, 0x0E, 0xC0, 0x0D, 0x3C, 0x64, +0x0E, 0x4F, 0x45, 0x60, 0x00, 0x64, 0xFE, 0x74, +0x3C, 0xB4, 0x0E, 0x55, 0x41, 0x90, 0xDB, 0x36, +0x40, 0x0C, 0xAC, 0x07, 0xD5, 0x02, 0x84, 0x01, +0x4E, 0x77, 0x00, 0x14, 0x3C, 0x40, 0x05, 0x27, +0x96, 0x64, 0xC1, 0x0F, 0x3C, 0x64, 0x0E, 0x4F, +0x45, 0x00, 0x00, 0x64, 0xFF, 0xBC, 0x3D, 0x74, +0x0E, 0x52, 0x41, 0x13, 0x42, 0x36, 0x40, 0x78, +0xDC, 0x07, 0xFE, 0x3E, 0xD5, 0x02, 0x84, 0x01, +0x3C, 0x43, 0xF6, 0x81, 0xC4, 0x04, 0x2E, 0x17, +0xED, 0x12, 0xC1, 0x09, 0x3C, 0x60, 0x0F, 0x70, +0x3D, 0x80, 0x0E, 0x4A, 0x97, 0xF3, 0xE0, 0xF8, +0xE9, 0x02, 0xC0, 0x0B, 0x3D, 0x24, 0x04, 0xF9, +0x3D, 0xE0, 0x05, 0x0B, 0xE1, 0xDE, 0xE8, 0x11, +0x3C, 0xC0, 0x05, 0x10, 0xE1, 0xCC, 0xE8, 0x0D, +0x2E, 0x57, 0xF3, 0xB7, 0x84, 0x60, 0x84, 0x40, +0x3E, 0x37, 0xF3, 0xC3, 0x3C, 0x28, 0x05, 0x04, +0x4E, 0x52, 0x07, 0x45, 0x48, 0x00, 0x04, 0x5D, +0x3C, 0xD0, 0x0E, 0x8B, 0x54, 0x06, 0x88, 0x00, +0xC0, 0x04, 0x85, 0xC2, 0x3C, 0xE8, 0x10, 0xF4, +0x3D, 0x30, 0x10, 0xF4, 0x5B, 0x38, 0x02, 0x04, +0x48, 0x00, 0x06, 0xC0, 0x3C, 0xB0, 0x0E, 0x64, +0x3C, 0xC0, 0x0E, 0x66, 0x43, 0x45, 0x88, 0x24, +0x3C, 0xD0, 0x0E, 0x67, 0x44, 0x8F, 0x80, 0x00, +0x3C, 0x88, 0x05, 0x02, 0x41, 0x6A, 0x30, 0x00, +0x3D, 0x50, 0x0E, 0x65, 0x3D, 0x80, 0x05, 0x03, +0x41, 0x4A, 0x34, 0x00, 0x80, 0xEB, 0x85, 0x00, +0x44, 0x6F, 0x80, 0x00, 0x40, 0xFA, 0x9C, 0x07, +0xE9, 0x13, 0x40, 0xA4, 0x58, 0x00, 0x41, 0x34, +0x50, 0x00, 0xE1, 0xEA, 0xE9, 0x0A, 0x39, 0x71, +0xA9, 0x11, 0xE0, 0xD7, 0xE8, 0x04, 0x41, 0x85, +0x00, 0x13, 0x80, 0xD7, 0x8D, 0x41, 0xD5, 0xF6, +0x8C, 0xE1, 0x89, 0x02, 0xD5, 0xEC, 0x2E, 0x97, +0xE1, 0x5D, 0x3C, 0x68, 0x05, 0x02, 0x3D, 0x88, +0x05, 0x03, 0x5A, 0x98, 0x02, 0x09, 0x3C, 0x80, +0x05, 0x0B, 0x96, 0x73, 0xE0, 0x28, 0xE8, 0x79, +0x48, 0x00, 0x04, 0x13, 0x3C, 0x40, 0x05, 0x06, +0x97, 0x3E, 0xC4, 0x6C, 0x3C, 0x10, 0x0E, 0xBF, +0x2E, 0x37, 0xE1, 0x60, 0x3C, 0x70, 0x0E, 0xC0, +0x97, 0x8B, 0x96, 0x3B, 0xC3, 0x05, 0x3C, 0x00, +0x10, 0xA8, 0x97, 0x83, 0xD5, 0x04, 0x2E, 0x47, +0xE1, 0x62, 0xC4, 0x04, 0x3C, 0x10, 0x10, 0xA9, +0x96, 0x0B, 0x3C, 0x74, 0x0E, 0x4F, 0xE0, 0xC7, +0xE9, 0x55, 0x3C, 0xA4, 0x05, 0x04, 0xE0, 0xCA, +0xE9, 0x51, 0x3C, 0x60, 0x0E, 0xBE, 0x3C, 0xE0, +0x0E, 0x51, 0x97, 0x33, 0xFF, 0x3C, 0x45, 0x70, +0x00, 0x64, 0x41, 0x67, 0x0B, 0x37, 0x40, 0x32, +0x5C, 0x76, 0x85, 0x40, 0x41, 0x4B, 0x00, 0x13, +0x41, 0x3C, 0x80, 0x13, 0x96, 0x5B, 0x81, 0x0A, +0x3F, 0xE8, 0x0A, 0x60, 0xE1, 0x05, 0xE8, 0x1D, +0x4C, 0xE4, 0x00, 0x1A, 0x40, 0x9F, 0x20, 0x20, +0x22, 0x34, 0x85, 0xEC, 0xE0, 0x61, 0xE9, 0x13, +0x41, 0x64, 0x0B, 0x36, 0x3D, 0x10, 0x0E, 0xC1, +0x41, 0x7A, 0x58, 0x01, 0x41, 0x09, 0xE4, 0x01, +0x43, 0x8B, 0x80, 0x03, 0x42, 0x68, 0x00, 0x03, +0x41, 0x28, 0x80, 0x11, 0x88, 0xD8, 0xE1, 0xC6, +0xE8, 0x02, 0x8D, 0x41, 0x8D, 0x01, 0xD5, 0xE3, +0xE1, 0x40, 0xE9, 0x1C, 0x3C, 0x20, 0x0E, 0xB9, +0x45, 0x00, 0x00, 0x64, 0x97, 0x53, 0xFF, 0x7C, +0x3C, 0xB0, 0x05, 0x19, 0x41, 0x12, 0xC2, 0x36, +0x86, 0xA1, 0xE1, 0x71, 0x3F, 0x57, 0xF3, 0xC3, +0x4E, 0xF2, 0x07, 0x3E, 0x3C, 0x00, 0x0E, 0xB9, +0x96, 0x43, 0x43, 0x83, 0x84, 0x24, 0x41, 0x2C, +0x42, 0x56, 0x3D, 0x28, 0x05, 0x19, 0x48, 0x00, +0x07, 0x33, 0x3C, 0x44, 0x05, 0x02, 0x3C, 0x00, +0x05, 0x0B, 0xE0, 0x80, 0x4E, 0xF3, 0x06, 0x83, +0x3C, 0x70, 0x05, 0x0B, 0xF7, 0x81, 0x3C, 0xA4, +0x05, 0x02, 0xF6, 0x01, 0x84, 0xA0, 0xE1, 0x46, +0x3C, 0x5B, 0xF6, 0x7C, 0x3E, 0x38, 0x03, 0x4C, +0x4E, 0xF3, 0x06, 0x75, 0x42, 0x46, 0x2C, 0x24, +0x3D, 0xE0, 0x05, 0x07, 0x96, 0x61, 0x54, 0x0F, +0x01, 0x00, 0x3C, 0x44, 0x04, 0xF9, 0x3C, 0x74, +0x05, 0x27, 0x40, 0x66, 0x80, 0x10, 0x3C, 0x5B, +0xF9, 0xD4, 0x3C, 0x5B, 0xF9, 0xD2, 0x3C, 0x5B, +0xF9, 0xD3, 0x3C, 0x5B, 0xF9, 0xD9, 0x3C, 0x58, +0x01, 0x8D, 0x46, 0xE7, 0xFF, 0xFF, 0x97, 0x41, +0xF5, 0x83, 0xF7, 0x84, 0xF6, 0x85, 0x90, 0x81, +0x40, 0x06, 0x00, 0x10, 0x40, 0x5A, 0x80, 0x10, +0x40, 0x75, 0x80, 0x10, 0x50, 0x67, 0x0F, 0xFF, +0x3C, 0x3E, 0x02, 0x7A, 0xF4, 0x82, 0x3D, 0x7D, +0xF6, 0xD7, 0x3D, 0x6D, 0xF6, 0xD6, 0x81, 0x2B, +0x85, 0x00, 0x81, 0x43, 0x45, 0xE0, 0x00, 0x64, +0xF0, 0x86, 0xF5, 0x87, 0xF7, 0x88, 0x51, 0x41, +0xFF, 0xFE, 0x51, 0x31, 0x80, 0x02, 0xF6, 0x89, +0x40, 0xFA, 0xA4, 0x06, 0x4E, 0xF3, 0x01, 0x70, +0x80, 0xAC, 0x55, 0x84, 0x80, 0xFF, 0x40, 0xF6, +0x94, 0x06, 0x4E, 0xF3, 0x01, 0x55, 0x95, 0x09, +0x38, 0x01, 0x90, 0x11, 0xF6, 0x01, 0xE0, 0x06, +0x4E, 0xF3, 0x01, 0x48, 0x4C, 0x95, 0x80, 0x3D, +0x4C, 0x56, 0x00, 0x6E, 0x4C, 0x9A, 0x80, 0x5A, +0x4C, 0x56, 0x80, 0xA2, 0x9F, 0x89, 0x9B, 0xF2, +0x38, 0xE1, 0x9D, 0x11, 0x9D, 0xC9, 0xE0, 0x0E, +0xE9, 0x25, 0x41, 0x90, 0x88, 0x01, 0x39, 0x01, +0xE5, 0x11, 0xE0, 0x10, 0xE9, 0x1F, 0x41, 0x13, +0x88, 0x01, 0x39, 0x21, 0xC5, 0x11, 0xE1, 0xC0, +0xE8, 0x19, 0x38, 0xEA, 0x10, 0x11, 0xE0, 0x0E, +0xE9, 0x15, 0x39, 0x09, 0x90, 0x11, 0xE1, 0x80, +0xE8, 0x11, 0x88, 0xC2, 0x38, 0x65, 0x19, 0x11, +0xE0, 0x06, 0xE9, 0x0C, 0x99, 0x8A, 0x39, 0x11, +0x99, 0x11, 0xE1, 0xA0, 0xE8, 0x07, 0x99, 0xBA, +0x39, 0x21, 0x99, 0x11, 0xE1, 0xC0, 0x4E, 0xF3, +0x00, 0xB1, 0x38, 0x49, 0x90, 0x11, 0xE0, 0x80, +0x4E, 0xF2, 0x01, 0x10, 0x8C, 0xA1, 0x97, 0x69, +0x96, 0x79, 0x48, 0x00, 0x01, 0x0B, 0x4C, 0x56, +0x40, 0x10, 0x39, 0x19, 0x90, 0x11, 0xE1, 0xA0, +0x4E, 0xF2, 0x01, 0x04, 0x99, 0x0A, 0x39, 0x21, +0x91, 0x11, 0xE1, 0xC0, 0x4E, 0xF2, 0x00, 0xFE, +0x39, 0x29, 0x91, 0x11, 0xD5, 0x77, 0x4C, 0x56, +0xC0, 0x27, 0x39, 0x9A, 0x10, 0x11, 0xE0, 0x19, +0x4E, 0xF3, 0x00, 0xF4, 0x99, 0xCA, 0x39, 0x01, +0x9D, 0x11, 0xE1, 0x80, 0x4E, 0xF2, 0x00, 0xEE, +0x39, 0x1A, 0x1D, 0x11, 0x48, 0x00, 0x00, 0x84, +0x4C, 0x56, 0xC0, 0x2E, 0xF7, 0x09, 0x9B, 0x8A, +0x88, 0xC7, 0x39, 0x11, 0x99, 0x11, 0xE0, 0x11, +0x4E, 0xF3, 0x00, 0xE0, 0x39, 0x29, 0x99, 0x11, +0xE0, 0x12, 0x4E, 0xF3, 0x00, 0xDB, 0x39, 0x1A, +0x10, 0x11, 0xD5, 0x71, 0x4C, 0x9A, 0x86, 0xF1, +0x4C, 0x95, 0xC0, 0x36, 0x38, 0xEA, 0x10, 0x11, +0xE0, 0x0E, 0x4E, 0xF3, 0x00, 0xCF, 0x38, 0x69, +0x90, 0x11, 0xE0, 0xC0, 0x4E, 0xF2, 0x00, 0xCA, +0x99, 0x11, 0x9F, 0xE1, 0x39, 0x95, 0x1D, 0x11, +0xE0, 0x19, 0x4E, 0xF3, 0x00, 0xC3, 0x39, 0x01, +0x91, 0x11, 0xE1, 0x80, 0x4E, 0xF2, 0x00, 0xBE, +0x8C, 0x81, 0xD5, 0x36, 0x39, 0x2A, 0x10, 0x11, +0xE0, 0x12, 0x4E, 0xF3, 0x00, 0xB7, 0x9F, 0xC9, +0x8A, 0xE2, 0x38, 0xE1, 0x9D, 0x11, 0xE0, 0x0E, +0x4E, 0xF3, 0x00, 0xB0, 0x9B, 0x8A, 0x39, 0x91, +0x99, 0x11, 0xE0, 0x19, 0x4E, 0xF3, 0x00, 0xAA, +0x9D, 0xC9, 0x8A, 0xE2, 0x39, 0x05, 0x1D, 0x11, +0xE1, 0x80, 0x4E, 0xF2, 0x00, 0xA3, 0x39, 0x29, +0x90, 0x11, 0xD5, 0x1C, 0x4C, 0x56, 0x40, 0x1F, +0x9B, 0x8A, 0x39, 0x25, 0x19, 0x11, 0xE0, 0x12, +0x4E, 0xF3, 0x00, 0x98, 0x39, 0x09, 0x99, 0x11, +0xE1, 0x80, 0x4E, 0xF2, 0x00, 0x93, 0x38, 0x79, +0x90, 0x11, 0xE0, 0xE0, 0x4E, 0xF2, 0x00, 0x8E, +0x99, 0x11, 0x9D, 0xA1, 0x39, 0x11, 0x99, 0x11, +0xE1, 0xA0, 0x4E, 0xF2, 0x00, 0x87, 0x39, 0x21, +0x91, 0x11, 0xE1, 0xC0, 0xE9, 0x1E, 0x48, 0x00, +0x00, 0x81, 0x4C, 0x56, 0xC0, 0x7F, 0x9B, 0x8A, +0x38, 0xE5, 0x19, 0x11, 0xE0, 0x0E, 0xE9, 0x79, +0x99, 0xCA, 0x39, 0x01, 0x9D, 0x11, 0xE1, 0x80, +0xE8, 0x74, 0x9F, 0x89, 0x9B, 0xF2, 0x39, 0x91, +0x9D, 0x11, 0xE0, 0x19, 0xE9, 0x6E, 0x38, 0x4A, +0x10, 0x11, 0xE0, 0x04, 0xE9, 0x6A, 0x88, 0xC2, +0x39, 0x11, 0x99, 0x11, 0xE0, 0x11, 0xE9, 0x65, +0x3C, 0x70, 0x10, 0xDF, 0xF6, 0x03, 0x97, 0x3B, +0x4E, 0x62, 0x06, 0x2A, 0x4E, 0x45, 0x06, 0x28, +0x3C, 0x70, 0x10, 0xF4, 0x4E, 0x73, 0x05, 0xF0, +0x3C, 0x60, 0x10, 0xD7, 0x05, 0x1F, 0x80, 0x04, +0x97, 0xF3, 0x3C, 0x60, 0x10, 0xD8, 0x97, 0xB3, +0x41, 0x18, 0x80, 0x13, 0x54, 0xF8, 0x80, 0x0C, +0x4E, 0xF2, 0x06, 0x16, 0x97, 0x20, 0x41, 0x9C, +0x10, 0x01, 0x41, 0x2C, 0x80, 0x10, 0x54, 0xF2, +0x80, 0xFF, 0x05, 0x9F, 0x80, 0x08, 0x41, 0x07, +0x90, 0x01, 0x40, 0xEC, 0x10, 0x00, 0x88, 0x8F, +0xE1, 0xCB, 0x40, 0xE7, 0x00, 0x10, 0x41, 0x2C, +0xBC, 0x1B, 0x05, 0x9F, 0x80, 0x07, 0x40, 0xFA, +0xB8, 0x07, 0x41, 0x08, 0x00, 0x10, 0x40, 0xEC, +0xBC, 0x1B, 0x05, 0x9F, 0x80, 0x06, 0xE1, 0x8C, +0x97, 0x22, 0x41, 0x0C, 0xBC, 0x1B, 0x05, 0x9F, +0x80, 0x05, 0x40, 0xF6, 0x90, 0x07, 0x40, 0x4C, +0xBC, 0x1B, 0x54, 0xF8, 0x80, 0x04, 0xE8, 0x0D, +0xFF, 0xC4, 0x41, 0x29, 0x00, 0x11, 0x40, 0x73, +0xF8, 0xF6, 0x40, 0xE7, 0x00, 0x11, 0x97, 0xFB, +0x40, 0xF7, 0x48, 0x07, 0x4E, 0xF2, 0x05, 0xCA, +0x54, 0x78, 0x80, 0x08, 0xC7, 0x0B, 0xFF, 0x84, +0x40, 0x78, 0x00, 0x11, 0x40, 0x63, 0x78, 0xD6, +0x97, 0x23, 0x97, 0xB3, 0xE0, 0x87, 0x4E, 0xF2, +0x05, 0xC9, 0xF4, 0x02, 0xE0, 0x80, 0xE8, 0x05, +0x51, 0x7B, 0x80, 0x01, 0x43, 0x6B, 0x00, 0x00, +0x8C, 0xA1, 0x8C, 0x21, 0x97, 0x69, 0x96, 0x49, +0x48, 0xFF, 0xFE, 0xAB, 0x3C, 0x50, 0x0F, 0x24, +0x96, 0x2B, 0x4E, 0x07, 0x00, 0x0C, 0x3C, 0x60, +0x0F, 0x64, 0x97, 0xF3, 0x4E, 0x74, 0x00, 0x07, +0x3C, 0x40, 0x0F, 0x27, 0xC4, 0x03, 0x8C, 0x21, +0x96, 0x49, 0x8D, 0x21, 0x40, 0x94, 0x80, 0x13, +0x48, 0xFF, 0xFE, 0x90, 0x3D, 0x7F, 0xF6, 0xD7, +0x3D, 0x6F, 0xF6, 0xD6, 0x3E, 0x80, 0x03, 0x1D, +0x4E, 0x82, 0x00, 0x04, 0x49, 0x00, 0x3A, 0x36, +0x3C, 0x03, 0xF6, 0x81, 0xC8, 0x3F, 0x2E, 0xC8, +0x03, 0x23, 0x4E, 0xC7, 0x00, 0x3C, 0x2E, 0x27, +0xE1, 0x62, 0xC2, 0x38, 0x2E, 0x37, 0xF3, 0xB4, +0x3C, 0xB7, 0xF9, 0xD2, 0xCB, 0x08, 0x3C, 0x00, +0x10, 0xAB, 0x97, 0x43, 0xE1, 0x65, 0x84, 0x01, +0xE9, 0x0E, 0xD5, 0x06, 0x3C, 0x10, 0x10, 0xAB, +0x97, 0x0B, 0xE1, 0x64, 0xE8, 0x08, 0x3C, 0x70, +0x10, 0xAB, 0x3C, 0xD7, 0xF9, 0xD3, 0x97, 0xBB, +0x40, 0x06, 0x98, 0x07, 0x3C, 0x30, 0x10, 0xB3, +0x3D, 0x57, 0xF9, 0xD4, 0x96, 0x5B, 0xE0, 0x35, +0x96, 0x80, 0xE9, 0x15, 0xCA, 0x14, 0x3C, 0x40, +0x10, 0xAC, 0x97, 0x63, 0xE0, 0xAB, 0xE9, 0x0F, +0x3C, 0x70, 0x10, 0xAC, 0x3D, 0x47, 0xF9, 0xD3, +0x97, 0xBB, 0xE0, 0xD4, 0xE9, 0x08, 0x3C, 0x00, +0x10, 0xAE, 0x3D, 0x37, 0xF9, 0xD9, 0x96, 0x83, +0xE1, 0xE2, 0xE8, 0x04, 0x85, 0x20, 0x3E, 0x97, +0xE1, 0x62, 0x3D, 0x70, 0x0E, 0x5D, 0x3D, 0x5C, +0x02, 0x79, 0x86, 0x40, 0x3E, 0x28, 0x03, 0x4C, +0xE1, 0xD7, 0xE8, 0x08, 0x40, 0x1A, 0xC8, 0x20, +0xA4, 0xC8, 0x38, 0x31, 0x49, 0x09, 0x8D, 0xC1, +0xD5, 0xF8, 0x2F, 0x67, 0xE1, 0x5D, 0x5B, 0x68, +0x02, 0x04, 0x48, 0x00, 0x02, 0x07, 0x2F, 0x97, +0xF3, 0xB7, 0x84, 0xC0, 0x5B, 0x98, 0x01, 0x08, +0x3C, 0x30, 0x0F, 0x64, 0x96, 0xE6, 0x97, 0x99, +0x4E, 0x63, 0x01, 0xFC, 0x81, 0xC6, 0x81, 0x66, +0x81, 0x06, 0x3E, 0xCF, 0xFF, 0x08, 0x44, 0xD0, +0x00, 0x38, 0x84, 0xE0, 0x81, 0x27, 0x85, 0x41, +0x2F, 0x78, 0x03, 0x23, 0xE1, 0x37, 0xE8, 0x11, +0x82, 0x2C, 0x43, 0x14, 0xB4, 0x73, 0x3D, 0x00, +0x05, 0x19, 0x04, 0x18, 0x80, 0x05, 0xE0, 0x30, +0xE8, 0x0C, 0x80, 0x09, 0x49, 0x00, 0x45, 0x54, +0x2E, 0x48, 0x03, 0x23, 0x8F, 0x21, 0xCC, 0x05, +0x4E, 0xE2, 0x00, 0x65, 0x48, 0x00, 0x00, 0x82, +0x3E, 0x5F, 0xFF, 0x08, 0x42, 0x54, 0xB4, 0x73, +0x3D, 0x80, 0x05, 0x2F, 0x51, 0x22, 0x80, 0x08, +0x20, 0x09, 0x00, 0x05, 0x20, 0x29, 0x00, 0x04, +0x20, 0x19, 0x00, 0x07, 0x20, 0x49, 0x00, 0x06, +0xA1, 0x6D, 0x9A, 0xC2, 0x9A, 0x8C, 0x8C, 0x61, +0x8C, 0x41, 0xE0, 0xB8, 0x43, 0x31, 0x88, 0x24, +0x3C, 0x00, 0x05, 0x06, 0xE8, 0x24, 0x96, 0x26, +0xC0, 0x43, 0x2E, 0x47, 0xE1, 0x62, 0xCC, 0x40, +0x3C, 0x03, 0xF6, 0x81, 0xC8, 0x10, 0x3C, 0x10, +0x0E, 0xCE, 0x97, 0x0B, 0xE0, 0x83, 0xE9, 0x0F, +0x3C, 0x30, 0x0E, 0xCE, 0x96, 0x1B, 0xE0, 0x02, +0xE9, 0x0A, 0x3D, 0x10, 0x05, 0x26, 0xE1, 0xB3, +0xE9, 0x06, 0xD5, 0x2E, 0x3D, 0xE0, 0x05, 0x26, +0xE1, 0xFE, 0xE9, 0x2A, 0xE1, 0x05, 0xE8, 0x03, +0x40, 0x82, 0x80, 0x11, 0x3E, 0xA7, 0xF3, 0xC2, +0x8C, 0xC1, 0xD5, 0x22, 0x96, 0x2E, 0xC0, 0x20, +0x3D, 0x00, 0x05, 0x25, 0xE1, 0x93, 0xE8, 0x08, +0x85, 0x01, 0x3E, 0x87, 0xF3, 0xB6, 0x3E, 0x87, +0xF3, 0xB9, 0x48, 0x00, 0x00, 0xA6, 0x3C, 0x10, +0x0E, 0xE9, 0x97, 0x0B, 0xE0, 0x64, 0xE8, 0x0B, +0x3C, 0x30, 0x0E, 0xE9, 0x96, 0x1B, 0xE0, 0x40, +0xE8, 0x06, 0x3C, 0x20, 0x0E, 0xB2, 0x96, 0x53, +0xE1, 0xE1, 0xE9, 0x06, 0xE1, 0x65, 0xE8, 0x03, +0x40, 0xB2, 0x80, 0x11, 0x84, 0xE1, 0x8D, 0x21, +0xD5, 0x88, 0x2F, 0x57, 0xF3, 0xC2, 0x5B, 0x58, +0x01, 0x1D, 0xCF, 0x1B, 0x3C, 0x40, 0x0E, 0xB9, +0x45, 0xE0, 0x00, 0x64, 0x97, 0x63, 0x43, 0x84, +0x14, 0x24, 0x3D, 0x10, 0x05, 0x19, 0x40, 0xAC, +0x79, 0x56, 0xE1, 0xAA, 0xE9, 0x04, 0x85, 0xC1, +0x48, 0xFF, 0xFF, 0x71, 0x3C, 0x10, 0x0E, 0xB9, +0x97, 0xCB, 0x43, 0x54, 0x1C, 0x24, 0x41, 0x2A, +0xFA, 0x56, 0x3D, 0x28, 0x05, 0x19, 0xD5, 0xF4, +0x3C, 0x50, 0x10, 0xF4, 0x81, 0x27, 0xCD, 0x6C, +0x3C, 0x20, 0x0F, 0xD9, 0x3C, 0xA4, 0x04, 0xFF, +0x97, 0x13, 0xE1, 0x44, 0xE8, 0x08, 0x3C, 0x10, +0x0F, 0xD9, 0x3D, 0x24, 0x04, 0xFC, 0x96, 0xCB, +0xE1, 0xC3, 0xE9, 0x5E, 0x3C, 0x00, 0x0E, 0xB2, +0x3D, 0x47, 0xF9, 0xD4, 0x97, 0x43, 0xE0, 0xB4, +0xE9, 0x05, 0xE4, 0xC2, 0xE8, 0x03, 0xC7, 0x54, +0xD5, 0x02, 0x85, 0x21, 0x3C, 0x60, 0x0E, 0xBA, +0x45, 0x90, 0x00, 0x64, 0x97, 0xF3, 0x43, 0x65, +0x9C, 0x24, 0x3C, 0x20, 0x0F, 0x5E, 0x41, 0x7B, +0x66, 0xF6, 0x3C, 0x10, 0x0E, 0x54, 0x3C, 0x30, +0x0E, 0x64, 0x3C, 0x40, 0x0E, 0x65, 0x3E, 0x08, +0x1B, 0xB8, 0x3D, 0x78, 0x05, 0x1A, 0x49, 0x00, +0x1A, 0x2A, 0x81, 0x80, 0x3C, 0x20, 0x0F, 0x5E, +0x3C, 0x40, 0x0E, 0x67, 0x3E, 0x08, 0x1B, 0xF8, +0x3C, 0x10, 0x0E, 0x57, 0x3C, 0x30, 0x0E, 0x66, +0x49, 0x00, 0x1A, 0x1D, 0x3C, 0x20, 0x0F, 0xC0, +0x97, 0x13, 0x90, 0x88, 0xE0, 0x8C, 0xE8, 0x0C, +0x3C, 0x10, 0x0F, 0xC0, 0x96, 0xC8, 0xE0, 0x60, +0xE8, 0x07, 0x85, 0xC1, 0x3E, 0xE7, 0xF3, 0xB9, +0x3E, 0xE7, 0xF3, 0xB6, 0xD5, 0x1D, 0x5A, 0x98, +0x01, 0x1C, 0x3C, 0x50, 0x0F, 0xC0, 0x97, 0xAB, +0x90, 0xC8, 0xE0, 0xCC, 0xE9, 0x06, 0x3C, 0x70, +0x0F, 0xC0, 0x96, 0xB8, 0xE0, 0x40, 0xE8, 0x10, +0x3C, 0x00, 0x0F, 0x64, 0x85, 0xA1, 0x96, 0x26, +0x97, 0x01, 0x3E, 0xD7, 0xF3, 0xB6, 0xC4, 0x04, +0x3E, 0xD7, 0xF3, 0xB8, 0xD5, 0x05, 0x3E, 0xD7, +0xF3, 0xB9, 0x3E, 0x47, 0xF3, 0xB8, 0x3D, 0x33, +0xF9, 0xDC, 0x5B, 0x39, 0x01, 0x05, 0x87, 0x00, +0x3F, 0x87, 0xF3, 0xB8, 0x3C, 0x30, 0x05, 0x06, +0x54, 0x11, 0x80, 0x10, 0x97, 0x49, 0xCD, 0x05, +0x3E, 0x57, 0xF3, 0xC3, 0x3E, 0x57, 0xF3, 0xC2, +0x96, 0xEE, 0x97, 0x99, 0xCE, 0x09, 0x3E, 0x67, +0xF3, 0xB7, 0x3E, 0x67, 0xF3, 0xB6, 0x3E, 0x67, +0xF3, 0xB9, 0x3E, 0x67, 0xF3, 0xB8, 0x3C, 0x70, +0x05, 0x07, 0x97, 0xE6, 0xC7, 0x0E, 0x3D, 0x03, +0xF6, 0x81, 0xE7, 0x82, 0xE9, 0x0A, 0x85, 0x60, +0x3E, 0xB7, 0xF3, 0xB7, 0x3E, 0xB7, 0xF3, 0xB6, +0x3E, 0xB7, 0xF3, 0xB9, 0x3E, 0xB7, 0xF3, 0xB8, +0x3C, 0x20, 0x0F, 0x64, 0x96, 0xA6, 0x96, 0x11, +0xC8, 0x05, 0x3E, 0x07, 0xF3, 0xB9, 0x3E, 0x07, +0xF3, 0xB8, 0x3C, 0x83, 0xF9, 0xDB, 0x5A, 0x88, +0x01, 0x1C, 0x3C, 0x40, 0x0F, 0x64, 0x86, 0x20, +0x87, 0xC0, 0x97, 0x26, 0x3F, 0xE7, 0xF3, 0xC3, +0x3D, 0x1B, 0xF9, 0xDE, 0x3D, 0x1B, 0xF6, 0x7A, +0xC4, 0x04, 0x3E, 0x87, 0xF3, 0xB7, 0xD5, 0x0C, +0x2E, 0x07, 0xF3, 0xDF, 0xC0, 0x04, 0x49, 0x00, +0x13, 0x32, 0xD5, 0x03, 0x49, 0x00, 0x44, 0xA7, +0x3E, 0x87, 0xF3, 0xB7, 0xD5, 0x61, 0x2E, 0x37, +0xF3, 0xB7, 0xC3, 0x7A, 0x3C, 0x10, 0x0F, 0x64, +0x96, 0x66, 0xC9, 0x0D, 0x2E, 0x57, 0xF3, 0xB6, +0xCD, 0x0A, 0x2E, 0x67, 0xF3, 0xC2, 0xCE, 0x07, +0x2E, 0x78, 0x03, 0x23, 0xCF, 0x04, 0x84, 0x00, +0x48, 0x00, 0x03, 0x59, 0x3C, 0x20, 0x0E, 0x9C, +0x3C, 0xA0, 0x0E, 0x4C, 0x96, 0x13, 0xE1, 0x40, +0xE8, 0x20, 0x3C, 0x10, 0x0E, 0xC2, 0x3C, 0x43, +0xF6, 0x7A, 0x97, 0x4B, 0x9C, 0xE1, 0xE0, 0xA4, +0x3C, 0x3B, 0xF6, 0x7A, 0xE8, 0x19, 0x84, 0x00, +0x49, 0x00, 0x44, 0x7D, 0x3D, 0x70, 0x0E, 0x5D, +0x86, 0x00, 0x3E, 0x0F, 0xE6, 0xFC, 0x3E, 0x38, +0x0A, 0x60, 0xE1, 0x97, 0x4E, 0xF2, 0x04, 0x0B, +0x40, 0xD1, 0xC0, 0x20, 0x02, 0xE6, 0x85, 0xEC, +0x38, 0xE0, 0x41, 0x09, 0x8D, 0x81, 0xD5, 0xF6, +0x86, 0xA0, 0x3D, 0x5B, 0xF6, 0x7A, 0x3C, 0x60, +0x0F, 0x64, 0x97, 0xA6, 0xCE, 0x35, 0x2E, 0x47, +0xF3, 0xB6, 0xCC, 0x28, 0x2E, 0x37, 0xF3, 0xB8, +0xCB, 0x25, 0x2E, 0x67, 0xF3, 0xC2, 0xCE, 0x22, +0x3C, 0x70, 0x0E, 0xBC, 0x3C, 0x17, 0xF9, 0xDE, +0x96, 0xBB, 0x9D, 0x49, 0xE0, 0x22, 0x3C, 0x5B, +0xF9, 0xDE, 0xE9, 0x0A, 0x3E, 0x67, 0xF3, 0xB7, +0x3E, 0x67, 0xF3, 0xC3, 0x3C, 0x6B, 0xF9, 0xDE, +0x3E, 0x60, 0x03, 0x22, 0xD5, 0x3A, 0x49, 0x00, +0x12, 0xCE, 0x3E, 0x67, 0xF3, 0xC3, 0x3D, 0x33, +0xF9, 0xDD, 0x8D, 0xE1, 0x3D, 0x3B, 0xF9, 0xDD, +0x87, 0x07, 0x3F, 0x80, 0x03, 0x22, 0x48, 0x00, +0x03, 0xD2, 0x85, 0x80, 0x3C, 0xCB, 0xF9, 0xDE, +0x3E, 0xC7, 0xF3, 0xC3, 0x49, 0x00, 0x12, 0xBB, +0x3C, 0xCB, 0xF9, 0xDD, 0xD5, 0xF2, 0x86, 0x40, +0x86, 0x87, 0x3F, 0x27, 0xF3, 0xC3, 0x3F, 0x27, +0xF3, 0xC2, 0x3F, 0x40, 0x03, 0x22, 0x3C, 0x93, +0xF9, 0xE1, 0x5A, 0x98, 0x01, 0x04, 0x3E, 0x97, +0xF3, 0xC3, 0x2E, 0x77, 0xF3, 0xC3, 0xC7, 0x0B, +0x2E, 0x28, 0x03, 0x23, 0xCA, 0x08, 0x2E, 0x07, +0xF3, 0xC2, 0x3C, 0x2B, 0xF9, 0xE2, 0xC8, 0x09, +0x48, 0xFF, 0xFF, 0x83, 0x86, 0xC0, 0x87, 0x20, +0x3F, 0x67, 0xF3, 0xC3, 0x3D, 0x9B, 0xF9, 0xE2, +0x2E, 0x67, 0xE1, 0x62, 0x3C, 0x00, 0x05, 0x1B, +0xC6, 0x04, 0x3C, 0x20, 0x10, 0x9D, 0x96, 0x13, +0x3C, 0xB0, 0x05, 0x06, 0x54, 0x35, 0xC0, 0x00, +0xC3, 0x07, 0x3C, 0x60, 0x05, 0x07, 0x97, 0x96, +0x96, 0x31, 0xC0, 0x2E, 0xD5, 0x31, 0x3C, 0x44, +0x04, 0xF9, 0x44, 0x80, 0x00, 0x64, 0xFE, 0x24, +0x3C, 0x90, 0x05, 0x0B, 0x41, 0x40, 0x22, 0x96, +0xE1, 0x34, 0xE8, 0x03, 0x3D, 0x48, 0x05, 0x0B, +0x2F, 0x68, 0x03, 0x23, 0x4F, 0x67, 0xFF, 0xEB, +0x85, 0x40, 0x3E, 0x7F, 0xFF, 0x08, 0x44, 0xC0, +0x00, 0x38, 0x2F, 0x98, 0x03, 0x23, 0xE1, 0x59, +0xE8, 0xE1, 0x82, 0x07, 0x43, 0x05, 0x30, 0x73, +0x3D, 0x30, 0x05, 0x0B, 0x04, 0x58, 0x00, 0x05, +0xE0, 0xB3, 0xE8, 0x08, 0x80, 0x0A, 0x49, 0x00, +0x43, 0x3B, 0x2E, 0x18, 0x03, 0x23, 0x8F, 0x41, +0xC1, 0xD1, 0x8D, 0x41, 0xD5, 0xEB, 0x2F, 0x18, +0x03, 0x23, 0xE5, 0xA2, 0xE8, 0x06, 0x2E, 0x78, +0x03, 0x23, 0xE4, 0xE2, 0xE8, 0x34, 0xD5, 0x38, +0x3C, 0x30, 0x05, 0x1C, 0xC3, 0xF9, 0x82, 0x40, +0x3E, 0x2F, 0xFF, 0x08, 0x45, 0x70, 0x00, 0x38, +0xE1, 0xD1, 0xE8, 0x0A, 0x83, 0x02, 0x43, 0x89, +0x5C, 0x73, 0x8D, 0xC1, 0x02, 0x4C, 0x00, 0x04, +0x42, 0x00, 0x10, 0x00, 0xD5, 0xF6, 0xFE, 0x1C, +0x44, 0xD0, 0x00, 0x64, 0x40, 0x80, 0x35, 0x16, +0x85, 0x60, 0x3E, 0x9F, 0xFF, 0x08, 0x44, 0xA0, +0x00, 0x38, 0x2E, 0xE8, 0x03, 0x23, 0xE1, 0x6E, +0xE8, 0xDB, 0x83, 0x09, 0x43, 0x85, 0xA8, 0x73, +0x02, 0x4C, 0x00, 0x04, 0xE0, 0x88, 0xE8, 0x09, +0x80, 0x0B, 0x49, 0x00, 0x43, 0x01, 0x2F, 0x58, +0x03, 0x23, 0x8F, 0x61, 0x5B, 0x50, 0x01, 0xCD, +0x8D, 0x61, 0xD5, 0xEC, 0x3C, 0x50, 0x0F, 0xC5, +0x96, 0x6B, 0x90, 0x28, 0xC9, 0x07, 0x2E, 0x48, +0x03, 0x23, 0x4E, 0x46, 0x00, 0x69, 0x48, 0x00, +0x00, 0xAC, 0x3C, 0x60, 0x0F, 0xC5, 0x96, 0x30, +0xC0, 0xF7, 0x3C, 0x30, 0x0F, 0x34, 0x3C, 0x40, +0x0F, 0x35, 0x3D, 0xE0, 0x0E, 0x5F, 0x3D, 0x40, +0x0E, 0x5E, 0x96, 0x9B, 0x97, 0xE3, 0x40, 0x61, +0x78, 0xD6, 0x41, 0x33, 0xD2, 0x76, 0xE1, 0xE6, +0xE8, 0x06, 0x3C, 0x50, 0x0F, 0x35, 0x96, 0x6B, +0x40, 0x60, 0xD0, 0xD6, 0x3C, 0x00, 0x0F, 0xC5, +0x3C, 0x20, 0x0F, 0xC5, 0x96, 0xC3, 0x90, 0x68, +0xFF, 0x9C, 0x3C, 0x70, 0x10, 0xF4, 0x97, 0x10, +0x40, 0x93, 0x11, 0x36, 0xC7, 0x04, 0x86, 0xC3, +0x42, 0x94, 0xD8, 0x24, 0x3E, 0x6F, 0xFF, 0x08, +0x84, 0x00, 0x81, 0x46, 0x44, 0xB0, 0x00, 0x38, +0x85, 0x82, 0x2F, 0x98, 0x03, 0x23, 0xE0, 0x19, +0xE8, 0xC7, 0x50, 0xD0, 0x00, 0x01, 0x81, 0xCA, +0x80, 0xED, 0x42, 0xE0, 0x2C, 0x73, 0x2F, 0x08, +0x03, 0x23, 0xE0, 0xF0, 0xE8, 0x24, 0x81, 0x0A, +0x42, 0x83, 0xAC, 0x73, 0xB4, 0x0E, 0xB4, 0x28, +0x49, 0x00, 0x04, 0x0F, 0xE0, 0x09, 0xE8, 0x19, +0x23, 0x24, 0x00, 0x00, 0x23, 0x13, 0x00, 0x00, +0x23, 0x73, 0x00, 0x01, 0x89, 0xD1, 0x40, 0x59, +0x30, 0xB6, 0xAD, 0x70, 0x23, 0x34, 0x00, 0x01, +0x80, 0x07, 0x89, 0xF7, 0x40, 0x19, 0xB0, 0x36, +0xAC, 0x71, 0x49, 0x00, 0x42, 0x95, 0x2F, 0x88, +0x03, 0x23, 0x8E, 0xE1, 0x5B, 0x80, 0x01, 0x04, +0x8C, 0xE1, 0xD5, 0xDA, 0x50, 0x63, 0x00, 0x38, +0x80, 0x0D, 0xD5, 0xCC, 0x2E, 0x37, 0xF3, 0xD8, +0xCB, 0x04, 0x3D, 0x50, 0x05, 0x03, 0xD5, 0x41, +0x3C, 0x20, 0x05, 0x09, 0x96, 0xAE, 0xC2, 0x3F, +0x3C, 0x70, 0x10, 0xF2, 0x3D, 0xE4, 0x05, 0x02, +0x97, 0x7B, 0xE0, 0xBE, 0xE8, 0x38, 0x3C, 0x10, +0x10, 0xF4, 0xC9, 0x35, 0x3C, 0x57, 0xF9, 0xEB, +0x3C, 0x60, 0x05, 0x03, 0xD6, 0x30, 0x3D, 0x40, +0x0E, 0x5F, 0x40, 0x72, 0xD0, 0x76, 0x40, 0x03, +0x50, 0x57, 0x3C, 0x60, 0x10, 0xF3, 0x8A, 0xE0, +0x96, 0x3B, 0x9A, 0x5A, 0x43, 0x90, 0x00, 0x03, +0x96, 0xF3, 0x97, 0x4B, 0xE0, 0x79, 0x43, 0x62, +0x80, 0x03, 0xE9, 0x06, 0x3C, 0x20, 0x10, 0xF3, +0x96, 0x53, 0xE0, 0x36, 0xE8, 0x18, 0xE4, 0x83, +0xE8, 0x07, 0x85, 0x43, 0x3C, 0xA8, 0x10, 0xF4, +0x3C, 0x90, 0x10, 0xFB, 0xD5, 0x06, 0x86, 0x01, +0x3D, 0x08, 0x10, 0xF4, 0x3C, 0x90, 0x11, 0x13, +0x85, 0x60, 0x3C, 0x9B, 0xF9, 0xE8, 0x3C, 0xBB, +0xF9, 0xE4, 0x48, 0x00, 0x01, 0x9D, 0x86, 0xBF, +0x3D, 0x5B, 0xF9, 0xEB, 0x3C, 0xC0, 0x10, 0xF4, +0x5A, 0xC0, 0x01, 0x08, 0x3C, 0xD0, 0x10, 0xF4, +0x5A, 0xD0, 0x03, 0x04, 0x48, 0x00, 0x01, 0x0B, +0x3C, 0x40, 0x10, 0xFC, 0x97, 0x63, 0xE4, 0xA2, +0x4E, 0xF3, 0x00, 0xAC, 0x3C, 0x00, 0x10, 0xF0, +0x49, 0x00, 0x49, 0x84, 0x2E, 0x68, 0x03, 0x23, +0x3E, 0x00, 0x03, 0x1E, 0xC6, 0x02, 0xC8, 0x08, +0x84, 0xE0, 0x3E, 0x70, 0x03, 0x1C, 0x3E, 0x70, +0x03, 0x23, 0x48, 0x00, 0x00, 0xF4, 0x5A, 0x08, +0x01, 0x04, 0x48, 0x00, 0x00, 0x97, 0x5A, 0x68, +0x01, 0x04, 0x48, 0x00, 0x00, 0x93, 0x3C, 0x30, +0x10, 0xF5, 0x96, 0xEE, 0x4E, 0x32, 0x00, 0xE7, +0x85, 0x60, 0x3E, 0x7F, 0xFF, 0x08, 0x81, 0xA7, +0x81, 0x4B, 0x81, 0x8B, 0x80, 0xAB, 0x81, 0x2B, +0x82, 0x6B, 0x50, 0x8F, 0x80, 0x38, 0x2E, 0xE8, +0x03, 0x23, 0xE1, 0xEE, 0xE8, 0x5E, 0x85, 0xC1, +0x41, 0x57, 0x4C, 0x0C, 0x41, 0x4A, 0x80, 0x11, +0x84, 0xC0, 0x2F, 0xE0, 0x03, 0x1E, 0xE0, 0xDE, +0xE8, 0x50, 0x3E, 0x3F, 0xFF, 0x08, 0x15, 0x3F, +0x80, 0x01, 0x41, 0x31, 0x98, 0x20, 0x23, 0x09, +0x81, 0xCC, 0x3C, 0x00, 0x0E, 0x5F, 0x3D, 0x10, +0x0E, 0x66, 0x3D, 0x20, 0x0E, 0x67, 0xF5, 0x82, +0x3D, 0x60, 0x0E, 0x64, 0x40, 0x58, 0x00, 0x96, +0x3D, 0x90, 0x0E, 0x65, 0x11, 0x14, 0x00, 0x02, +0x11, 0x24, 0x00, 0x03, 0x11, 0x64, 0x00, 0x00, +0x11, 0x94, 0x00, 0x01, 0x96, 0xE9, 0x3A, 0x04, +0x04, 0x00, 0xB0, 0x8C, 0x97, 0x21, 0x15, 0x4F, +0x80, 0x03, 0x49, 0x00, 0x16, 0x27, 0x21, 0x5F, +0x80, 0x30, 0x21, 0x26, 0x80, 0x0D, 0x21, 0x76, +0x80, 0x0C, 0xE1, 0xD5, 0x21, 0x86, 0x80, 0x0E, +0x21, 0x16, 0x80, 0x0F, 0x20, 0x3F, 0x80, 0x31, +0x20, 0x2F, 0x80, 0x32, 0x20, 0x1F, 0x80, 0x33, +0x05, 0x3F, 0x80, 0x01, 0xF5, 0x02, 0x05, 0x4F, +0x80, 0x03, 0xE9, 0x11, 0xE0, 0x77, 0xE9, 0x0F, +0xE1, 0xA2, 0xE9, 0x0D, 0xE0, 0x38, 0xE9, 0x0B, +0x40, 0x06, 0x18, 0x0E, 0x97, 0x04, 0x40, 0x32, +0x98, 0x0E, 0x4E, 0x42, 0x01, 0xBA, 0x96, 0x9C, +0x4E, 0x22, 0x01, 0xB7, 0x8C, 0xC1, 0xD5, 0xAE, +0x8D, 0xE1, 0x50, 0xD6, 0x80, 0x38, 0xD5, 0xA0, +0x84, 0xC0, 0x2E, 0x88, 0x03, 0x23, 0xE0, 0xC8, +0xE8, 0x0C, 0x40, 0x04, 0x98, 0x0E, 0x96, 0x84, +0xCA, 0x13, 0x80, 0x06, 0x49, 0x00, 0x41, 0x9C, +0x2E, 0x18, 0x03, 0x23, 0x8E, 0xC1, 0xC9, 0x0C, +0x2E, 0x48, 0x03, 0x23, 0xCC, 0x0B, 0x49, 0x00, +0x10, 0xB6, 0x2F, 0x70, 0x03, 0x22, 0x59, 0x8B, +0x80, 0x01, 0x48, 0xFF, 0xFD, 0xEC, 0x8C, 0xC1, +0xD5, 0xE5, 0x85, 0x20, 0x5A, 0x48, 0x01, 0x26, +0x49, 0x00, 0x08, 0xE6, 0x48, 0x00, 0x01, 0xB7, +0x20, 0x53, 0x80, 0x0D, 0x20, 0x33, 0x80, 0x0C, +0x2A, 0xC6, 0x80, 0x01, 0x9B, 0xAB, 0x8C, 0xC1, +0x43, 0x33, 0x00, 0x03, 0xE5, 0xE4, 0x3C, 0xE0, +0x0E, 0x5F, 0xE8, 0x1B, 0x20, 0x23, 0x80, 0x0F, +0x20, 0x33, 0x80, 0x0E, 0x9B, 0x93, 0x8C, 0xC1, +0x43, 0x03, 0x00, 0x03, 0xE5, 0x84, 0xE8, 0x27, +0x8D, 0x01, 0x2F, 0x20, 0x03, 0x1E, 0xE1, 0x12, +0xE9, 0xE4, 0x8D, 0x21, 0x50, 0x73, 0x80, 0x38, +0x2F, 0x18, 0x03, 0x23, 0xE1, 0x31, 0xE8, 0x32, +0x3E, 0xD8, 0x02, 0xA0, 0x85, 0x00, 0xD5, 0xF2, +0x40, 0x05, 0x20, 0x0E, 0x96, 0x84, 0xCA, 0xE3, +0x40, 0x16, 0x38, 0x36, 0x97, 0x09, 0xE0, 0x83, +0xE9, 0xDE, 0xE0, 0xA4, 0xE9, 0xDC, 0x80, 0x0C, +0xB0, 0x4B, 0x49, 0x00, 0x16, 0x1A, 0xB0, 0x0B, +0x49, 0x00, 0x3C, 0x53, 0x02, 0x5F, 0x80, 0x17, +0xAD, 0x79, 0xD5, 0xD1, 0x40, 0x05, 0xA0, 0x0E, +0x96, 0x44, 0xC9, 0xD7, 0x40, 0x06, 0x38, 0x96, +0x97, 0x61, 0xE0, 0xA3, 0xE9, 0xD2, 0xE0, 0x45, +0xE9, 0xD0, 0x22, 0x06, 0xFF, 0xFF, 0xB0, 0x4B, +0x49, 0x00, 0x16, 0x03, 0xB0, 0x0B, 0x49, 0x00, +0x3C, 0x3C, 0x02, 0x2F, 0x80, 0x16, 0xAC, 0xB8, +0xD5, 0xC4, 0x2E, 0xB7, 0xE1, 0x5D, 0x5A, 0xB0, +0x02, 0x57, 0x2E, 0xE7, 0xF3, 0xB6, 0x5A, 0xE8, +0x01, 0x06, 0x3C, 0x60, 0x0F, 0x64, 0x97, 0xA6, +0xCE, 0x4E, 0x3D, 0x40, 0x05, 0x19, 0x3D, 0x00, +0x05, 0x10, 0xE3, 0x94, 0xE8, 0x03, 0x3D, 0x48, +0x05, 0x10, 0x3C, 0xD0, 0x05, 0x1A, 0x3D, 0x10, +0x05, 0x10, 0xE3, 0xAD, 0xE8, 0x03, 0x3C, 0xD8, +0x05, 0x10, 0x84, 0xE0, 0x3C, 0x10, 0x0F, 0x33, +0x3C, 0x34, 0x05, 0x02, 0x96, 0x8B, 0xFE, 0x9C, +0x44, 0x50, 0x00, 0x64, 0x40, 0x91, 0x15, 0x37, +0x3C, 0xA0, 0x05, 0x10, 0xE1, 0x49, 0xE8, 0x03, +0x3C, 0x98, 0x05, 0x10, 0x2E, 0x60, 0x03, 0x22, +0x97, 0x8E, 0xC6, 0x0C, 0x3E, 0x08, 0x03, 0x4C, +0x84, 0x20, 0x49, 0x00, 0x3B, 0x20, 0xC8, 0x24, +0x2F, 0x50, 0x03, 0x22, 0x67, 0x4A, 0x80, 0x02, +0xD5, 0x1B, 0x2E, 0x48, 0x03, 0x23, 0x3C, 0xB0, +0x05, 0x10, 0xC4, 0x05, 0x3D, 0x34, 0x04, 0xF9, +0xE1, 0xEB, 0xE9, 0x16, 0x3C, 0xC0, 0x05, 0x18, +0xE3, 0x6C, 0xE8, 0x03, 0x3C, 0xC8, 0x05, 0x10, +0x3E, 0x08, 0x03, 0x4C, 0x84, 0x20, 0x49, 0x00, +0x3B, 0x06, 0x5A, 0x08, 0x01, 0x0A, 0x2E, 0xD0, +0x03, 0x22, 0x59, 0x46, 0x80, 0x02, 0x3F, 0x40, +0x03, 0x22, 0xD5, 0x02, 0x84, 0xE0, 0x3C, 0x03, +0xF6, 0x81, 0x2E, 0x18, 0x03, 0x23, 0x2E, 0x58, +0x03, 0x26, 0xC0, 0x20, 0x4E, 0x57, 0x00, 0x1F, +0xE0, 0xA1, 0xE8, 0x1C, 0x3C, 0x20, 0x0F, 0x3B, +0x2F, 0x60, 0x03, 0x22, 0x96, 0xD3, 0x3D, 0x8C, +0x00, 0xCD, 0x90, 0x61, 0x59, 0x7B, 0x00, 0x01, +0xE0, 0x78, 0x3F, 0x70, 0x03, 0x22, 0xE8, 0x0E, +0x3C, 0x8C, 0x00, 0xCC, 0xE5, 0x03, 0xE8, 0x0A, +0x49, 0x00, 0x0F, 0xD9, 0x3C, 0x9C, 0x00, 0xCC, +0x8D, 0x21, 0x3C, 0x9E, 0x00, 0xCC, 0x48, 0x00, +0x00, 0xE2, 0xD9, 0x04, 0x87, 0xC0, 0x3D, 0xEE, +0x00, 0xCC, 0xC7, 0x05, 0x49, 0x00, 0x0F, 0xCB, +0x48, 0x00, 0x00, 0xD9, 0x2E, 0x60, 0x03, 0x22, +0xC9, 0x09, 0x97, 0x8E, 0x4E, 0x62, 0xFC, 0xA9, +0x84, 0x01, 0x49, 0x00, 0x41, 0x38, 0x48, 0x00, +0x00, 0xCE, 0x59, 0x93, 0x00, 0x01, 0x3F, 0x90, +0x03, 0x22, 0x49, 0x00, 0x0F, 0xB8, 0x49, 0x00, +0x21, 0x1C, 0x2F, 0x20, 0x03, 0x23, 0x3F, 0x20, +0x03, 0x26, 0x4E, 0x02, 0x00, 0xC0, 0x3E, 0x70, +0x03, 0x38, 0x3C, 0x7B, 0xF9, 0xDD, 0x49, 0x00, +0x1F, 0x32, 0x2E, 0x77, 0xF3, 0xB7, 0x4E, 0x72, +0x00, 0xB6, 0x3C, 0x40, 0x0F, 0x64, 0x97, 0x26, +0x4E, 0x42, 0x00, 0xB1, 0x2E, 0x07, 0xF3, 0xB9, +0xC0, 0x06, 0x3D, 0x13, 0xED, 0x8C, 0x59, 0x08, +0x80, 0x20, 0xD5, 0x09, 0x2E, 0x17, 0xF3, 0xB8, +0x4E, 0x12, 0x00, 0xA5, 0x3C, 0xE3, 0xED, 0x8C, +0x59, 0x07, 0x00, 0x10, 0x3D, 0x0B, 0xED, 0x8C, +0x48, 0x00, 0x00, 0x9D, 0x2E, 0x77, 0xF3, 0xDF, +0x4E, 0x72, 0xFC, 0x6F, 0x3C, 0x60, 0x05, 0x02, +0x84, 0xE1, 0x95, 0x31, 0x3C, 0x48, 0x05, 0x02, +0x48, 0xFF, 0xFF, 0x4E, 0x3D, 0x90, 0x10, 0xF4, +0x5B, 0x90, 0x01, 0x06, 0x3C, 0xE0, 0x10, 0xF4, +0x5A, 0xE8, 0x03, 0x0C, 0x3D, 0x20, 0x11, 0x00, +0x3C, 0x70, 0x11, 0x01, 0x41, 0x19, 0x00, 0x11, +0x97, 0xFB, 0x3C, 0x60, 0x11, 0x02, 0xD5, 0x0A, +0x3D, 0x00, 0x11, 0x0E, 0x3C, 0x60, 0x11, 0x0F, +0x41, 0x18, 0x00, 0x11, 0x97, 0xF3, 0x3C, 0x60, +0x11, 0x10, 0x97, 0xB3, 0x48, 0xFF, 0xF9, 0xFE, +0x51, 0x99, 0x02, 0xC0, 0x38, 0xF5, 0x65, 0x11, +0x40, 0xF7, 0x9C, 0x07, 0xE8, 0x10, 0x8D, 0xC1, +0x41, 0x29, 0x00, 0x11, 0x48, 0xFF, 0xFA, 0x2A, +0x51, 0x13, 0x82, 0xE0, 0x39, 0x25, 0x45, 0x11, +0xE1, 0xC6, 0xE8, 0x05, 0x8C, 0xE1, 0x97, 0xFB, +0x48, 0xFF, 0xFA, 0x2E, 0x3C, 0x44, 0x01, 0x8D, +0xE0, 0x80, 0xE8, 0x05, 0x3C, 0x08, 0x01, 0x8D, +0x3C, 0x18, 0x01, 0x8C, 0x5A, 0x88, 0x14, 0x20, +0x3C, 0x64, 0x01, 0x3C, 0x3E, 0xE8, 0x02, 0x7A, +0x39, 0x25, 0x19, 0x11, 0x84, 0xE0, 0x84, 0x81, +0x2B, 0x07, 0x00, 0x01, 0x39, 0x15, 0x41, 0x11, +0xE1, 0xB2, 0x40, 0x72, 0x3C, 0x1B, 0x8C, 0x81, +0x97, 0x20, 0x41, 0x28, 0xBC, 0x1B, 0x5A, 0x48, +0x14, 0xF5, 0xE1, 0xC0, 0x4E, 0xF2, 0xFA, 0x16, +0x3E, 0x08, 0x02, 0x78, 0x38, 0x10, 0x1D, 0x09, +0x48, 0xFF, 0xFA, 0x10, 0x3E, 0x08, 0x02, 0x78, +0x38, 0x10, 0x21, 0x09, 0x8D, 0x01, 0x54, 0x84, +0x00, 0xFF, 0x48, 0xFF, 0xFA, 0x07, 0x96, 0x5C, +0xC1, 0x07, 0x41, 0xE7, 0x18, 0x0C, 0x40, 0xAF, +0x28, 0x04, 0x40, 0xA5, 0x00, 0x13, 0x40, 0x37, +0x18, 0x0C, 0xFF, 0x5F, 0x40, 0x0A, 0x24, 0x04, +0x97, 0x69, 0x96, 0x03, 0xC4, 0x05, 0x40, 0x91, +0xAC, 0x04, 0x40, 0xB4, 0x80, 0x13, 0x41, 0x67, +0x18, 0x0C, 0x40, 0xCB, 0x30, 0x04, 0x41, 0x90, +0x50, 0x04, 0x40, 0xC6, 0x00, 0x13, 0x40, 0x9C, +0x80, 0x13, 0x48, 0xFF, 0xFE, 0x2D, 0x9B, 0x8A, +0x39, 0x11, 0x99, 0x11, 0xE0, 0x11, 0x4E, 0xF3, +0xF9, 0xE1, 0x39, 0x09, 0x99, 0x11, 0x48, 0xFF, +0xF9, 0x39, 0xFC, 0xE8, 0xFC, 0x00, 0x49, 0x00, +0x0A, 0x79, 0x84, 0x20, 0x80, 0x41, 0x3E, 0x4F, +0xED, 0x24, 0xE0, 0x40, 0xE8, 0x11, 0x38, 0x32, +0x08, 0x00, 0x5A, 0x10, 0x01, 0x09, 0x5A, 0x10, +0x02, 0x0E, 0xC9, 0x08, 0x84, 0x21, 0x5A, 0x38, +0x80, 0x05, 0xD5, 0x04, 0x5A, 0x30, 0x80, 0x03, +0x84, 0x22, 0x8C, 0x41, 0xD5, 0xEF, 0x5A, 0x10, +0x01, 0x0A, 0x3C, 0x13, 0xF9, 0xBB, 0x5A, 0x18, +0x0A, 0x10, 0x2E, 0x17, 0xED, 0x24, 0x5A, 0x18, +0x01, 0x04, 0x80, 0x01, 0xD5, 0x1B, 0x84, 0x01, +0x5A, 0x10, 0x40, 0x19, 0x50, 0x00, 0xFF, 0x80, +0x5C, 0x00, 0x00, 0x01, 0xD5, 0x13, 0x84, 0xC0, +0x82, 0x06, 0x82, 0x26, 0x3E, 0x2F, 0xED, 0x24, +0xE1, 0xA0, 0xE8, 0x0A, 0x38, 0x51, 0x44, 0x00, +0x5A, 0x58, 0x80, 0x04, 0x8D, 0x81, 0xD5, 0x02, +0x8C, 0xC1, 0x8D, 0xA1, 0xD5, 0xF6, 0x40, 0x03, +0x40, 0x07, 0xFC, 0x80, 0xFC, 0x23, 0x49, 0x00, +0x0A, 0x39, 0x84, 0x80, 0xB6, 0x9F, 0xF4, 0x81, +0xF4, 0x82, 0xF4, 0x83, 0x80, 0xA4, 0x84, 0x21, +0x44, 0x20, 0x00, 0xE0, 0x44, 0x30, 0x00, 0x40, +0xF0, 0x85, 0x49, 0x00, 0x09, 0x96, 0x80, 0x80, +0x84, 0x01, 0x4E, 0x43, 0x00, 0x80, 0xB6, 0x9F, +0xF4, 0x81, 0xF4, 0x82, 0xF4, 0x83, 0x80, 0xA4, +0xF0, 0x05, 0x84, 0x21, 0x84, 0x4E, 0x84, 0x64, +0x49, 0x00, 0x09, 0x87, 0x80, 0x80, 0x84, 0x02, +0xCC, 0x71, 0xB6, 0x9F, 0xF4, 0x81, 0xF4, 0x82, +0xF4, 0x83, 0x80, 0xA4, 0xF0, 0x05, 0x84, 0x21, +0x44, 0x20, 0x00, 0x38, 0xFA, 0x60, 0x49, 0x00, +0x09, 0x78, 0x80, 0x80, 0x84, 0x03, 0xCC, 0x62, +0x84, 0x21, 0xB6, 0x9F, 0xF4, 0x81, 0xF4, 0x82, +0xF4, 0x83, 0xF0, 0x05, 0x44, 0x20, 0x00, 0x83, +0x80, 0x61, 0x80, 0xA4, 0x49, 0x00, 0x09, 0x69, +0xC8, 0x4C, 0x44, 0x20, 0x00, 0x83, 0x84, 0x61, +0xF0, 0x82, 0xF0, 0x83, 0xB6, 0x5F, 0xF3, 0x81, +0xF0, 0x05, 0x84, 0x23, 0xFA, 0x8C, 0x84, 0xA8, +0x49, 0x00, 0x09, 0x5B, 0xC8, 0x40, 0xFA, 0x2F, +0x44, 0x00, 0x00, 0x80, 0x44, 0x20, 0x00, 0xF1, +0x44, 0x70, 0x00, 0xC1, 0xF0, 0x81, 0xF1, 0x82, +0xF1, 0x83, 0xB6, 0xFF, 0xF0, 0x05, 0x84, 0x24, +0x80, 0x62, 0x84, 0x87, 0x84, 0xA2, 0x49, 0x00, +0x09, 0x48, 0x84, 0xC7, 0xC8, 0x2E, 0xB6, 0xDF, +0xF6, 0x81, 0xF7, 0x82, 0xF7, 0x83, 0xF0, 0x05, +0x84, 0x24, 0x80, 0x46, 0x80, 0x66, 0x80, 0x87, +0x80, 0xA7, 0x49, 0x00, 0x09, 0x3A, 0xC8, 0x23, +0x84, 0x22, 0xB6, 0x1F, 0xF0, 0x81, 0xF0, 0x82, +0xF0, 0x83, 0xFA, 0x4C, 0xF0, 0x05, 0x84, 0x68, +0x80, 0x86, 0x80, 0xA1, 0x49, 0x00, 0x09, 0x2D, +0xC8, 0x18, 0xF0, 0x05, 0x49, 0x00, 0x0D, 0x0E, +0xC8, 0x09, 0xF0, 0x05, 0x49, 0x00, 0x0D, 0x0A, +0xC8, 0x05, 0xF0, 0x05, 0x49, 0x00, 0x0D, 0x06, +0xC0, 0x0D, 0x3C, 0x03, 0xF9, 0xBA, 0xD5, 0x0A, +0x84, 0x04, 0xD5, 0x08, 0x84, 0x06, 0xD5, 0x06, +0x80, 0x06, 0xD5, 0x04, 0x84, 0x08, 0xD5, 0x02, +0x84, 0x05, 0xFC, 0xA3, 0x80, 0x62, 0x9B, 0x1A, +0x97, 0x61, 0xE2, 0xA0, 0xE8, 0x08, 0xB4, 0x81, +0x8C, 0x61, 0x97, 0x60, 0x10, 0x51, 0xFF, 0xFF, +0x8C, 0x24, 0xD5, 0xF6, 0xDD, 0x9E, 0x80, 0x61, +0x9B, 0x19, 0x97, 0x61, 0xE2, 0xA2, 0xE8, 0x08, +0xA7, 0x18, 0x8C, 0x04, 0x97, 0x60, 0x14, 0x50, +0x7F, 0xFF, 0x8C, 0x61, 0xD5, 0xF6, 0xDD, 0x9E, +0xFC, 0x02, 0x12, 0x0F, 0x80, 0x03, 0x22, 0x0F, +0x80, 0x03, 0x4E, 0x07, 0x00, 0x1B, 0xD5, 0x15, +0x84, 0x0A, 0x14, 0x0F, 0x80, 0x03, 0xD5, 0x06, +0x40, 0x00, 0x00, 0x09, 0xF0, 0x03, 0x8E, 0x01, +0xF0, 0x83, 0xF0, 0x03, 0x4E, 0x06, 0xFF, 0xFA, +0x22, 0x0F, 0x80, 0x03, 0x96, 0x01, 0x8E, 0x01, +0x40, 0x00, 0x00, 0x13, 0x12, 0x0F, 0x80, 0x03, +0x22, 0x0F, 0x80, 0x03, 0x4E, 0x06, 0xFF, 0xEA, +0xFC, 0x82, 0xFC, 0x02, 0x12, 0x0F, 0x80, 0x03, +0x22, 0x0F, 0x80, 0x03, 0x4E, 0x07, 0x00, 0x1C, +0xD5, 0x16, 0x92, 0x00, 0x44, 0x00, 0x00, 0x64, +0xF0, 0x83, 0xD5, 0x06, 0x40, 0x00, 0x00, 0x09, +0xF0, 0x03, 0x8E, 0x01, 0xF0, 0x83, 0xF0, 0x03, +0x4E, 0x06, 0xFF, 0xFA, 0x22, 0x0F, 0x80, 0x03, +0x96, 0x01, 0x8E, 0x01, 0x40, 0x00, 0x00, 0x13, +0x12, 0x0F, 0x80, 0x03, 0x22, 0x0F, 0x80, 0x03, +0x4E, 0x06, 0xFF, 0xEA, 0xFC, 0x82, 0xFC, 0x01, +0x96, 0xCB, 0x96, 0x83, 0x90, 0x30, 0x90, 0x10, +0x8A, 0x43, 0x8A, 0x01, 0x42, 0x00, 0x00, 0x03, +0x42, 0x11, 0x00, 0x03, 0x88, 0x01, 0xFC, 0x81, +0xE6, 0x02, 0xE9, 0x14, 0x44, 0x30, 0x00, 0x64, +0x84, 0x21, 0x40, 0x20, 0x04, 0x57, 0x88, 0x41, +0x40, 0x11, 0x04, 0x09, 0x42, 0x50, 0x84, 0x24, +0x9F, 0x29, 0xE2, 0x04, 0xE9, 0x04, 0x8C, 0xA1, +0xE2, 0xA0, 0xE8, 0x03, 0x8E, 0x61, 0xCB, 0xF2, +0x80, 0x01, 0xDD, 0x9E, 0xFC, 0x61, 0x3C, 0x93, +0xF9, 0xBB, 0x5A, 0x98, 0x0A, 0x06, 0x3C, 0x0D, +0xFC, 0xDB, 0x12, 0x90, 0x00, 0xFC, 0x84, 0xE0, +0x81, 0x67, 0x3E, 0x5F, 0xDB, 0x18, 0x87, 0x06, +0x3C, 0x10, 0x0E, 0x89, 0x97, 0x0B, 0xE1, 0x64, +0xE8, 0x0C, 0x83, 0x25, 0x43, 0x95, 0xE0, 0x73, +0x02, 0x4C, 0x80, 0x04, 0x42, 0x12, 0x20, 0x0B, +0xC1, 0x02, 0x8C, 0xE1, 0x8D, 0x61, 0xD5, 0xF1, +0xE4, 0xE2, 0xE9, 0x04, 0x84, 0x40, 0x3E, 0x27, +0xF3, 0x9D, 0x2E, 0x37, 0xF3, 0x9D, 0xCB, 0x04, +0x4E, 0x73, 0x01, 0x23, 0xD5, 0x07, 0x5A, 0x70, +0x01, 0x0A, 0xCF, 0x10, 0x3C, 0x5D, 0xFC, 0xE3, +0xCD, 0x0D, 0x49, 0x00, 0x2E, 0x50, 0x48, 0x00, +0x01, 0x18, 0x3C, 0x6D, 0xFC, 0xE3, 0xCE, 0x06, +0x3C, 0x00, 0x0F, 0xB1, 0x96, 0x43, 0x3C, 0x1F, +0xFC, 0xE1, 0x3C, 0x40, 0x0F, 0x64, 0x3C, 0x33, +0xED, 0x8C, 0x96, 0xA3, 0xFE, 0x9E, 0x4E, 0x22, +0x01, 0x08, 0x85, 0x00, 0x3E, 0x0F, 0xDB, 0x18, +0x85, 0x46, 0x3C, 0x50, 0x0E, 0x89, 0x97, 0xAB, +0xE1, 0x06, 0xE8, 0x10, 0x81, 0x60, 0x42, 0xB4, +0x28, 0x73, 0x02, 0x15, 0x80, 0x04, 0x42, 0x40, +0xA0, 0x0B, 0xC4, 0x06, 0x22, 0xE5, 0x80, 0x02, +0x22, 0xD5, 0x80, 0x03, 0xD5, 0x03, 0x8D, 0x01, +0xD5, 0xED, 0x5A, 0x78, 0x01, 0x4E, 0x3D, 0xCD, +0xFC, 0xE3, 0x3C, 0xAD, 0xFC, 0xDB, 0x5E, 0xFE, +0x00, 0x78, 0xE9, 0x37, 0x81, 0x6A, 0x84, 0xC0, +0x44, 0xC0, 0x7F, 0xFF, 0x81, 0x07, 0x0B, 0x05, +0x80, 0x01, 0x03, 0x15, 0x80, 0x77, 0x03, 0x25, +0x80, 0x00, 0x03, 0x35, 0x80, 0x78, 0x13, 0x0F, +0x80, 0x00, 0x13, 0x1F, 0x80, 0x01, 0x13, 0x2F, +0x80, 0x02, 0x13, 0x3F, 0x80, 0x03, 0xB4, 0x1F, +0xF1, 0x01, 0x49, 0xFF, 0xFF, 0x62, 0xE0, 0x0C, +0x40, 0x64, 0x3C, 0x1B, 0x8D, 0x01, 0x40, 0xC0, +0x3C, 0x1B, 0x4C, 0x8E, 0x7F, 0xE6, 0x41, 0x65, +0x18, 0x20, 0x5E, 0xF3, 0x00, 0x77, 0xE8, 0x0B, +0x02, 0x3B, 0x00, 0x01, 0x1A, 0x3B, 0x00, 0x01, +0x03, 0x7B, 0x00, 0x78, 0x8C, 0xC1, 0x13, 0x7B, +0x00, 0x77, 0xD5, 0xF4, 0x45, 0x40, 0x00, 0x77, +0x3D, 0x4F, 0xFC, 0xE3, 0x15, 0x45, 0x00, 0x7A, +0x3C, 0x2D, 0xFC, 0xE3, 0x83, 0x8A, 0x41, 0x55, +0x08, 0x20, 0x8C, 0x41, 0x12, 0xEA, 0x80, 0x00, +0x12, 0xDA, 0x80, 0x78, 0x3C, 0x2F, 0xFC, 0xE3, +0xBB, 0x7C, 0x8C, 0x61, 0xBB, 0xFC, 0x3C, 0xDD, +0xFC, 0xE3, 0x4E, 0xD7, 0x00, 0x9E, 0x4E, 0x73, +0x00, 0x9C, 0x3D, 0xCD, 0xFC, 0xDB, 0x41, 0x6E, +0x34, 0x20, 0x02, 0x5E, 0x00, 0x00, 0x02, 0xEE, +0x00, 0x78, 0x14, 0xDE, 0x00, 0x7A, 0x12, 0x5E, +0x00, 0xF0, 0x12, 0xEE, 0x00, 0xF2, 0x03, 0x7B, +0x7F, 0xFF, 0x13, 0x7E, 0x00, 0xF1, 0x03, 0x8B, +0x00, 0x77, 0x13, 0x8E, 0x00, 0xF3, 0x5A, 0xD0, +0x01, 0x13, 0x02, 0x7B, 0x7F, 0xFF, 0x02, 0xAB, +0x00, 0x77, 0x8A, 0xE5, 0x42, 0x03, 0x80, 0x03, +0x8B, 0x4E, 0x43, 0x95, 0x00, 0x03, 0xFE, 0x04, +0x42, 0x0C, 0xE4, 0x73, 0x49, 0xFF, 0xFF, 0x16, +0xB8, 0xFD, 0xD5, 0x02, 0xBF, 0xFD, 0x3C, 0x00, +0x0F, 0xAE, 0x87, 0xC0, 0x3D, 0xEF, 0xFC, 0xE3, +0x5A, 0x08, 0x01, 0x0C, 0x80, 0x1C, 0x50, 0x1E, +0x00, 0xF0, 0xBA, 0x7A, 0x49, 0xFF, 0xFE, 0x08, +0x3C, 0x0F, 0xFC, 0xDC, 0x48, 0x00, 0x00, 0x9A, +0xB9, 0x7D, 0x97, 0x0B, 0x3C, 0x48, 0x0F, 0x9E, +0x3C, 0x20, 0x0F, 0x9E, 0x3C, 0x50, 0x0F, 0xA1, +0x96, 0xD3, 0x97, 0xEB, 0xE0, 0xE3, 0xE8, 0x54, +0x3C, 0x00, 0x0F, 0x9C, 0x96, 0x83, 0x8E, 0x41, +0xE6, 0x45, 0x4E, 0xF2, 0x00, 0x86, 0x44, 0xF4, +0x20, 0x9C, 0x38, 0x07, 0x88, 0x00, 0x40, 0xF0, +0x3C, 0x00, 0xDD, 0x0F, 0x06, 0x22, 0x8E, 0xCA, +0xE2, 0x00, 0x80, 0x1C, 0x50, 0x1E, 0x00, 0xF0, +0xBA, 0x7A, 0x49, 0xFF, 0xFD, 0xA1, 0x3C, 0x0F, +0xFC, 0xDC, 0x5A, 0x08, 0x01, 0x3A, 0x85, 0xA3, +0x3C, 0xD8, 0x0F, 0x9B, 0xD5, 0x6E, 0x4E, 0x93, +0x00, 0x0A, 0x80, 0x1C, 0x50, 0x1E, 0x00, 0xF0, +0xBA, 0x7A, 0x49, 0xFF, 0xFD, 0x91, 0x3C, 0x0B, +0xF9, 0xBB, 0x3C, 0x83, 0xF9, 0xBB, 0x5A, 0x88, +0x01, 0x0F, 0x3C, 0x10, 0x0F, 0x9D, 0x3D, 0x4D, +0xFC, 0xDB, 0x86, 0xAA, 0x97, 0x4B, 0x14, 0x8A, +0x00, 0x7B, 0x3D, 0x5B, 0xF9, 0xBB, 0x3C, 0x5F, +0xFC, 0xE0, 0xD5, 0x1A, 0x5A, 0x88, 0x0A, 0x16, +0x3D, 0x1D, 0xFC, 0xDB, 0x84, 0x42, 0x14, 0x28, +0x80, 0x7B, 0x50, 0x08, 0x81, 0xE0, 0x50, 0x18, +0x81, 0xE4, 0x49, 0xFF, 0xFD, 0x71, 0x86, 0x40, +0x86, 0x60, 0x3C, 0x0F, 0xFC, 0xDC, 0x3D, 0x2B, +0xF9, 0xBB, 0x3D, 0x3F, 0xFC, 0xE0, 0xD5, 0x3D, +0x86, 0x00, 0x3D, 0x0B, 0xF9, 0xBB, 0x84, 0x00, +0xD5, 0x38, 0x50, 0x1E, 0x00, 0xF0, 0x04, 0x9E, +0x00, 0x7A, 0x84, 0x80, 0xE0, 0x89, 0xE8, 0x0B, +0x3C, 0x60, 0x0F, 0xA6, 0x38, 0xB0, 0x91, 0x01, +0x96, 0xF3, 0xE1, 0x63, 0xE8, 0x03, 0x8C, 0x81, +0xD5, 0xF6, 0x84, 0x80, 0x3C, 0x4F, 0xFC, 0xDC, +0xC4, 0xEB, 0x85, 0x83, 0x80, 0x1C, 0xBA, 0x7A, +0x3C, 0xC8, 0x0F, 0x9B, 0x49, 0xFF, 0xFD, 0x88, +0x3C, 0x0F, 0xFC, 0xDC, 0xD5, 0x0B, 0x3C, 0x70, +0x0F, 0xA5, 0x96, 0x3B, 0xE2, 0x01, 0xE8, 0xDC, +0x85, 0xC3, 0x3C, 0x48, 0x0F, 0xB0, 0x3C, 0xE8, +0x0F, 0x9B, 0x84, 0x01, 0xD5, 0x0E, 0xBA, 0x7A, +0x80, 0x1C, 0x50, 0x1E, 0x00, 0xF0, 0x49, 0xFF, +0xFD, 0x73, 0x96, 0x83, 0x3C, 0x0F, 0xFC, 0xDC, +0x3C, 0x28, 0x0F, 0x9A, 0xD5, 0x02, 0x80, 0x1E, +0xFC, 0xE1, 0xFC, 0x01, 0x3A, 0x1F, 0x88, 0x20, +0x4E, 0x05, 0x00, 0x19, 0x3C, 0x10, 0x0E, 0x5F, +0x20, 0xFF, 0x80, 0x00, 0x40, 0x40, 0x04, 0x16, +0xE0, 0x8F, 0xE9, 0x10, 0x20, 0x2F, 0x80, 0x01, +0xE0, 0x44, 0xE9, 0x0C, 0x20, 0x6F, 0x80, 0x02, +0x97, 0x41, 0xE0, 0xA6, 0xE9, 0x07, 0x21, 0x0F, +0x80, 0x03, 0xE1, 0x85, 0x56, 0x07, 0x80, 0x01, +0xD5, 0x02, 0x84, 0x00, 0xFC, 0x81, 0xFC, 0x60, +0x3C, 0x00, 0x0E, 0xD4, 0x96, 0x43, 0x4E, 0x17, +0x00, 0x08, 0x3C, 0x20, 0x0E, 0xD4, 0x96, 0xD3, +0x5E, 0xF1, 0x80, 0x21, 0xE9, 0x04, 0xFA, 0x90, +0x3C, 0x48, 0x0E, 0xD4, 0x3C, 0x50, 0x0E, 0xD5, +0x97, 0xAB, 0x4E, 0x67, 0x00, 0x07, 0x3C, 0x70, +0x0E, 0xD5, 0x96, 0x3B, 0xE4, 0x17, 0xE9, 0x04, +0xFB, 0x06, 0x3C, 0x88, 0x0E, 0xD5, 0x3C, 0x10, +0x0F, 0x34, 0x96, 0x8B, 0x4E, 0x26, 0x00, 0x06, +0x44, 0x90, 0x02, 0xD0, 0x3C, 0x98, 0x0F, 0x34, +0x3C, 0x30, 0x0F, 0x35, 0x97, 0x1B, 0x4E, 0x46, +0x00, 0x06, 0x44, 0xA0, 0x04, 0x00, 0x3C, 0xA8, +0x0F, 0x35, 0x3C, 0x50, 0x0E, 0x89, 0x97, 0xAB, +0xE4, 0xCB, 0xE8, 0x06, 0x3C, 0x70, 0x0E, 0x89, +0x96, 0x3B, 0x4E, 0x04, 0x00, 0x05, 0x85, 0x6A, +0x3C, 0xB8, 0x0E, 0x89, 0x3C, 0x10, 0x0E, 0x8D, +0x45, 0x00, 0x5A, 0x49, 0x96, 0x8B, 0x87, 0x80, +0x44, 0xCF, 0xE7, 0x00, 0x85, 0xA5, 0x85, 0xC1, +0x3C, 0x28, 0x0E, 0x84, 0x3C, 0xC8, 0x0F, 0x94, +0x3C, 0xD8, 0x0E, 0x86, 0x3C, 0xE8, 0x0F, 0x95, +0x3D, 0x08, 0x0E, 0x90, 0x3D, 0xC8, 0x0F, 0xDE, +0x49, 0x00, 0x40, 0x52, 0x3D, 0xC8, 0x0F, 0x8A, +0x84, 0x60, 0x3E, 0x4F, 0xDB, 0x18, 0x99, 0x5C, +0x8C, 0x66, 0x11, 0xC2, 0x80, 0x09, 0x5A, 0x38, +0x3C, 0xFC, 0x3E, 0x68, 0x0A, 0x60, 0x46, 0x90, +0x01, 0x00, 0x81, 0x46, 0x49, 0x00, 0x27, 0xC2, +0x49, 0x00, 0x40, 0x3E, 0x3C, 0x70, 0x05, 0x08, +0x97, 0xCE, 0xC7, 0x09, 0x3C, 0x00, 0x10, 0x3E, +0x96, 0x43, 0x4E, 0x17, 0x00, 0x05, 0x86, 0x21, +0x3F, 0x17, 0xED, 0x16, 0x86, 0x40, 0x3F, 0x27, +0xF3, 0xDE, 0x50, 0xB4, 0x80, 0x02, 0x49, 0x00, +0x24, 0x7B, 0x3C, 0x20, 0x10, 0xF4, 0xCA, 0x07, +0x3C, 0x50, 0x0F, 0x8A, 0x97, 0xEB, 0x67, 0x33, +0x80, 0x08, 0xD5, 0x06, 0x3C, 0x30, 0x0F, 0x8A, +0x97, 0x1B, 0x59, 0x32, 0x00, 0x08, 0x3C, 0x03, +0xF6, 0x81, 0x3D, 0x38, 0x0F, 0x8A, 0xC8, 0x07, +0x3C, 0x30, 0x0F, 0x8A, 0x97, 0x1B, 0x67, 0x42, +0x00, 0x10, 0xD5, 0x06, 0x3C, 0x10, 0x0F, 0x8A, +0x96, 0x8B, 0x59, 0x41, 0x00, 0x10, 0x2E, 0x57, +0xE1, 0x62, 0x3D, 0x48, 0x0F, 0x8A, 0xCD, 0x07, +0x3C, 0x10, 0x0F, 0x8A, 0x96, 0x8B, 0x67, 0x51, +0x00, 0x80, 0xD5, 0x06, 0x3C, 0x70, 0x0F, 0x8A, +0x96, 0x3B, 0x59, 0x50, 0x00, 0x80, 0x2E, 0x37, +0xF3, 0xB7, 0x3D, 0x58, 0x0F, 0x8A, 0xCB, 0x07, +0x3C, 0x70, 0x0F, 0x8A, 0x96, 0x3B, 0x67, 0x60, +0x01, 0x00, 0xD5, 0x06, 0x3C, 0x40, 0x0F, 0x8A, +0x97, 0x63, 0x59, 0x62, 0x81, 0x00, 0x2E, 0x17, +0xF3, 0xC3, 0x3D, 0x68, 0x0F, 0x8A, 0xC9, 0x07, +0x3C, 0x40, 0x0F, 0x8A, 0x97, 0x63, 0x67, 0x72, +0x82, 0x00, 0xD5, 0x06, 0x3C, 0x20, 0x0F, 0x8A, +0x96, 0xD3, 0x59, 0x71, 0x82, 0x00, 0x3D, 0x78, +0x0F, 0x8A, 0x49, 0x00, 0x2D, 0x50, 0x97, 0xC0, +0x5A, 0x70, 0x01, 0x96, 0x5A, 0x70, 0x02, 0xAB, +0x2E, 0x77, 0xF3, 0xDD, 0x4E, 0x72, 0x00, 0x9C, +0x84, 0xE0, 0x3C, 0x78, 0x0E, 0x8D, 0x3C, 0x40, +0x11, 0x74, 0x85, 0x60, 0x96, 0x63, 0x3C, 0x18, +0x0F, 0x74, 0x3C, 0x20, 0x11, 0x75, 0x87, 0x81, +0x96, 0x13, 0x3C, 0x08, 0x0E, 0x8B, 0x3C, 0x50, +0x11, 0x7B, 0x3E, 0xB7, 0xF3, 0xDD, 0x96, 0xEB, +0x3C, 0x38, 0x0F, 0x91, 0x3C, 0x40, 0x12, 0x18, +0x3F, 0xC0, 0x1C, 0xB9, 0x96, 0x63, 0x3C, 0x18, +0x0F, 0x92, 0x3C, 0x20, 0x12, 0x19, 0x96, 0x13, +0x3C, 0x08, 0x0F, 0x93, 0x3C, 0x50, 0x11, 0x76, +0x96, 0xEB, 0x3C, 0x38, 0x0E, 0x94, 0x3C, 0x40, +0x11, 0x76, 0x96, 0x63, 0x3C, 0x18, 0x0E, 0x95, +0x3C, 0x20, 0x11, 0x76, 0x96, 0x13, 0x3C, 0x08, +0x0E, 0x96, 0x3C, 0x50, 0x11, 0x76, 0x96, 0xEB, +0x3C, 0x38, 0x0E, 0x97, 0x3C, 0x40, 0x11, 0x76, +0x96, 0x63, 0x3C, 0x18, 0x0E, 0x98, 0x3C, 0x20, +0x11, 0x84, 0x96, 0x13, 0x3C, 0x08, 0x0F, 0x26, +0x3C, 0xD0, 0x11, 0x81, 0x3C, 0x50, 0x11, 0x83, +0x3C, 0xD8, 0x05, 0x24, 0x96, 0xEB, 0x3C, 0x38, +0x0E, 0xA9, 0x3C, 0x40, 0x11, 0x85, 0x96, 0x63, +0x3C, 0x18, 0x0E, 0xAF, 0x3C, 0x20, 0x11, 0x86, +0x96, 0x13, 0x3C, 0x08, 0x0F, 0x25, 0x3C, 0x50, +0x11, 0x87, 0x96, 0xEB, 0x3C, 0x38, 0x0F, 0x49, +0x3C, 0x40, 0x11, 0x88, 0x96, 0x63, 0x3C, 0x18, +0x0F, 0x4A, 0x3C, 0x20, 0x11, 0x89, 0x96, 0x13, +0x3C, 0x08, 0x0F, 0x4B, 0x3C, 0x50, 0x11, 0x7C, +0x96, 0xEB, 0x3C, 0x38, 0x0F, 0x5F, 0x3C, 0x40, +0x11, 0x7D, 0x96, 0x63, 0x3C, 0x18, 0x0F, 0x60, +0x3C, 0x20, 0x11, 0x7E, 0x96, 0x13, 0x3C, 0x08, +0x0F, 0x61, 0x3C, 0x50, 0x11, 0x7F, 0x96, 0xEB, +0x3C, 0x38, 0x0F, 0x62, 0x3C, 0x40, 0x11, 0x80, +0x96, 0x63, 0x3C, 0x18, 0x0F, 0x63, 0x3C, 0x20, +0x12, 0x14, 0x96, 0x13, 0x3C, 0x08, 0x0F, 0x3E, +0x3C, 0x50, 0x12, 0x15, 0x96, 0xEB, 0x3C, 0x38, +0x0F, 0x3F, 0x3C, 0x40, 0x12, 0x16, 0x96, 0x63, +0x3C, 0x18, 0x0F, 0x40, 0x3C, 0x20, 0x12, 0x17, +0x96, 0x13, 0x3C, 0x08, 0x0F, 0x41, 0x3C, 0x50, +0x0F, 0x64, 0x96, 0xEB, 0x59, 0x71, 0x88, 0x00, +0x3D, 0x78, 0x0F, 0x64, 0x3C, 0x78, 0x0F, 0x8A, +0x48, 0xFF, 0xFE, 0xF6, 0x2F, 0x87, 0xF3, 0xDE, +0x5B, 0x88, 0x02, 0x04, 0x48, 0xFF, 0xFE, 0xF0, +0x5B, 0x80, 0x03, 0x04, 0x48, 0x00, 0x00, 0xCD, +0x3C, 0x10, 0x0E, 0x8C, 0x3F, 0xCF, 0xDB, 0x60, +0x97, 0x4B, 0x58, 0xD2, 0x80, 0x01, 0x3C, 0xD8, +0x0E, 0x8C, 0x49, 0x00, 0x23, 0x6B, 0x81, 0xBC, +0x49, 0x00, 0x26, 0xA0, 0x3C, 0x00, 0x0E, 0x5D, +0x49, 0x00, 0x41, 0x46, 0x49, 0x00, 0x23, 0x68, +0x3C, 0x00, 0x0E, 0x5D, 0x49, 0x00, 0x41, 0x40, +0x49, 0x00, 0x23, 0x62, 0x3D, 0x50, 0x0E, 0x5D, +0x86, 0x20, 0xE1, 0xB5, 0xE8, 0x07, 0x39, 0x63, +0x45, 0x11, 0x39, 0x6E, 0x45, 0x09, 0x8D, 0xA1, +0xD5, 0xF9, 0x3C, 0x20, 0x0E, 0x60, 0x84, 0xA0, +0x94, 0x11, 0xD0, 0x0A, 0x98, 0xEE, 0x40, 0x86, +0x94, 0x00, 0x02, 0xC1, 0x85, 0x80, 0x12, 0xC4, +0x02, 0xC0, 0x8C, 0xA2, 0xD5, 0xF7, 0x3C, 0x30, +0x0E, 0x61, 0x84, 0xA0, 0x95, 0x19, 0xD4, 0x0A, +0x98, 0xAE, 0x40, 0x16, 0x94, 0x00, 0x03, 0x41, +0x05, 0xA0, 0x13, 0x40, 0x82, 0xE0, 0x8C, 0xA2, +0xD5, 0xF7, 0x85, 0x00, 0x85, 0x82, 0x3C, 0x40, +0x0E, 0xEB, 0x96, 0x23, 0xE1, 0x00, 0xE8, 0x44, +0x3C, 0x00, 0x0E, 0x5D, 0x49, 0x00, 0x41, 0x0C, +0x81, 0xDC, 0x49, 0x00, 0x40, 0x64, 0x49, 0x00, +0x23, 0x2B, 0x3C, 0x30, 0x0E, 0x5D, 0x86, 0x60, +0xE1, 0xE3, 0xE8, 0x0C, 0x39, 0x03, 0x4D, 0x11, +0x22, 0x57, 0x00, 0x00, 0x8D, 0xE1, 0x89, 0x85, +0x40, 0xF8, 0x31, 0xF6, 0x1A, 0xF7, 0x00, 0x01, +0xD5, 0xF4, 0x3D, 0x80, 0x0E, 0x60, 0x3E, 0x2F, +0xE0, 0xE0, 0x86, 0x20, 0xE1, 0xB8, 0xE8, 0x0E, +0x40, 0x03, 0x44, 0x20, 0x23, 0x91, 0x00, 0x00, +0x23, 0x20, 0x05, 0x80, 0x8D, 0xA1, 0x89, 0xD9, +0x41, 0xE9, 0x33, 0xD6, 0x1B, 0xE1, 0x00, 0x01, +0xD5, 0xF2, 0x3D, 0x40, 0x0E, 0x61, 0x3E, 0x1F, +0xE1, 0x20, 0x86, 0x00, 0xE1, 0x94, 0xE8, 0x0E, +0x41, 0x63, 0x40, 0x20, 0x23, 0x50, 0x80, 0x00, +0x22, 0x4B, 0x05, 0xA0, 0x8D, 0x81, 0x88, 0x95, +0x41, 0x72, 0x32, 0xF6, 0x1B, 0x70, 0x80, 0x01, +0xD5, 0xF2, 0x8D, 0x01, 0xD5, 0xB9, 0x49, 0x00, +0x3F, 0xEE, 0x44, 0x00, 0x7F, 0xFF, 0x49, 0x00, +0x20, 0x71, 0x3C, 0xE0, 0x0E, 0x5D, 0x86, 0x60, +0x44, 0x30, 0x7F, 0xFF, 0xE1, 0xEE, 0xE8, 0x08, +0x38, 0x53, 0x4D, 0x11, 0xDB, 0x03, 0x38, 0x3E, +0x4D, 0x09, 0x8D, 0xE1, 0xD5, 0xF8, 0x3C, 0x10, +0x0F, 0x92, 0x96, 0x4E, 0xC1, 0x17, 0xCF, 0x16, +0x49, 0x00, 0x22, 0xD0, 0x3C, 0x00, 0x0F, 0xDC, +0x49, 0x00, 0x25, 0x6C, 0x3C, 0x20, 0x11, 0x67, +0x3D, 0x20, 0x0F, 0xDD, 0x3F, 0xC8, 0x16, 0x38, +0x88, 0x52, 0x96, 0x11, 0x49, 0x00, 0x25, 0x9F, +0x84, 0xE1, 0x49, 0x00, 0x22, 0xC5, 0x48, 0xFF, +0xFF, 0x57, 0x3C, 0x70, 0x0E, 0x8C, 0x97, 0x7B, +0x66, 0xC2, 0x80, 0x01, 0x3C, 0xC8, 0x0E, 0x8C, +0x49, 0x00, 0x22, 0xB4, 0x86, 0x20, 0x3F, 0x17, +0xF3, 0xDE, 0x3D, 0xE0, 0x0E, 0x84, 0x5B, 0xE0, +0x07, 0xFE, 0x48, 0xFF, 0xFE, 0x38, 0x5B, 0x88, +0x01, 0x12, 0x3D, 0x90, 0x0E, 0x84, 0x5B, 0x90, +0x07, 0x0E, 0x3C, 0x00, 0x0E, 0xEF, 0x96, 0x03, +0x49, 0x00, 0x3E, 0x22, 0x80, 0x07, 0x3E, 0x77, +0xF3, 0xDE, 0x3C, 0x7B, 0xED, 0x8C, 0x49, 0x00, +0x3A, 0xA8, 0x3C, 0x10, 0x0E, 0x84, 0x96, 0x8B, +0xE4, 0x43, 0x4E, 0xF3, 0x01, 0x03, 0x3C, 0x80, +0x0E, 0x84, 0x5A, 0x80, 0x07, 0x0E, 0x3D, 0xE0, +0x0E, 0x84, 0x5B, 0xE0, 0x06, 0x0A, 0x3C, 0xC0, +0x0E, 0x84, 0x5A, 0xC0, 0x09, 0x06, 0x3C, 0xD0, +0x0E, 0x84, 0x5A, 0xD8, 0x0B, 0x15, 0x3C, 0x00, +0x0E, 0x5D, 0x49, 0x00, 0x40, 0x61, 0x49, 0x00, +0x22, 0x83, 0x3D, 0x90, 0x0E, 0x84, 0x5B, 0x98, +0x09, 0x04, 0x48, 0x00, 0x00, 0xDA, 0x49, 0x00, +0x3F, 0x7A, 0x84, 0x00, 0x49, 0x00, 0x1F, 0xFE, +0x48, 0x00, 0x00, 0xD3, 0x3C, 0xE0, 0x0E, 0x84, +0x5A, 0xE8, 0x11, 0x07, 0x84, 0x80, 0x3D, 0x70, +0x0E, 0x5D, 0x83, 0x04, 0xD5, 0x06, 0x3D, 0x00, +0x0E, 0x84, 0x5B, 0x08, 0x12, 0x2D, 0xD5, 0xF7, +0xE0, 0x97, 0xE8, 0x05, 0x39, 0x83, 0x11, 0x09, +0x8C, 0x81, 0xD5, 0xFB, 0x49, 0x00, 0x3F, 0x97, +0x3C, 0x50, 0x0E, 0x5F, 0x3E, 0x38, 0x0A, 0x60, +0x80, 0xE5, 0x86, 0x00, 0xE1, 0x85, 0xE8, 0x07, +0x03, 0x61, 0x85, 0xA0, 0x1B, 0x61, 0x80, 0x01, +0x8D, 0x81, 0xD5, 0xF9, 0x3C, 0x80, 0x0E, 0x5E, +0x89, 0x05, 0xE0, 0xE8, 0xE8, 0x0A, 0x9A, 0xBD, +0x41, 0x45, 0x08, 0x20, 0x23, 0x5A, 0x05, 0x80, +0x39, 0x55, 0x1D, 0x09, 0x8C, 0xE1, 0xD5, 0xF6, +0x49, 0x00, 0x22, 0x3C, 0x49, 0x00, 0x22, 0x40, +0x48, 0x00, 0x00, 0x9B, 0x3D, 0xC0, 0x0E, 0x84, +0x5B, 0xC8, 0x08, 0x04, 0x48, 0x00, 0x00, 0x95, +0x3D, 0x10, 0x0E, 0x84, 0x5B, 0x18, 0x0C, 0x06, +0x84, 0x00, 0x80, 0x20, 0x80, 0x40, 0xD5, 0x09, +0x3D, 0x20, 0x0E, 0x84, 0x5B, 0x28, 0x0D, 0x0A, +0x3C, 0x10, 0x11, 0x82, 0x84, 0x01, 0x84, 0x5F, +0x49, 0x00, 0x28, 0x05, 0x48, 0x00, 0x00, 0x81, +0x3D, 0x30, 0x0E, 0x84, 0x5B, 0x38, 0x0E, 0x06, +0x49, 0x00, 0x29, 0x54, 0x48, 0x00, 0x00, 0x79, +0x3D, 0x40, 0x0E, 0x84, 0x5B, 0x48, 0x0F, 0x60, +0x3C, 0x00, 0x0E, 0x93, 0xC0, 0x71, 0x49, 0x00, +0x29, 0xE6, 0x49, 0x00, 0x29, 0xE4, 0x86, 0x40, +0x3C, 0xE0, 0x0E, 0x5D, 0x3E, 0x08, 0x0A, 0x60, +0x3E, 0x18, 0x03, 0x4C, 0x83, 0x92, 0xE1, 0xCE, +0xE8, 0x09, 0x2B, 0x30, 0x00, 0x01, 0x39, 0xC0, +0xC9, 0x09, 0x13, 0x30, 0x02, 0xBF, 0x8D, 0xC1, +0xD5, 0xF7, 0x84, 0xE0, 0x3E, 0xC8, 0x03, 0x4C, +0x3C, 0x10, 0x0E, 0x93, 0x96, 0x8B, 0xE0, 0xE2, +0xE8, 0x1C, 0x49, 0x00, 0x29, 0xC8, 0x3C, 0xD0, +0x0E, 0x5D, 0x3E, 0x28, 0x0A, 0x60, 0x86, 0x00, +0xE1, 0x8D, 0xE8, 0x11, 0x2A, 0x41, 0x00, 0x01, +0x22, 0x31, 0x02, 0xBF, 0x39, 0xE6, 0x41, 0x01, +0x9B, 0x63, 0x43, 0x12, 0x80, 0x03, 0x89, 0xBE, +0x39, 0x16, 0x41, 0x09, 0x12, 0x41, 0x02, 0xBF, +0x8D, 0x81, 0xD5, 0xEF, 0x8C, 0xE1, 0xD5, 0xE1, +0x3D, 0x70, 0x0E, 0x5D, 0x85, 0x00, 0x3E, 0x58, +0x03, 0x4C, 0xE1, 0x17, 0xE8, 0x0C, 0x3C, 0x00, +0x0E, 0x93, 0x39, 0x82, 0xA1, 0x11, 0x96, 0x43, +0x41, 0x9C, 0x07, 0x36, 0x39, 0x92, 0xA1, 0x09, +0x8D, 0x01, 0xD5, 0xF4, 0x84, 0x80, 0x3E, 0x78, +0x03, 0x4C, 0xE0, 0x97, 0xE8, 0x08, 0x38, 0x33, +0x91, 0x11, 0x90, 0x61, 0x38, 0x33, 0x91, 0x09, +0x8C, 0x81, 0xD5, 0xF8, 0x86, 0xC0, 0x3D, 0x68, +0x0E, 0x93, 0xD5, 0x16, 0x49, 0x00, 0x2A, 0xDF, +0x49, 0x00, 0x0F, 0xF5, 0x80, 0xE0, 0x49, 0xFF, +0xEC, 0x35, 0xCF, 0x06, 0x3C, 0x53, 0xF6, 0x85, +0x8C, 0xA1, 0x3C, 0x5B, 0xF6, 0x85, 0x3D, 0x54, +0x05, 0x0B, 0x3D, 0x58, 0x0E, 0x91, 0x49, 0x00, +0x1D, 0xEA, 0x48, 0xFF, 0xFD, 0x2C, 0x44, 0x00, +0x00, 0x64, 0x49, 0x00, 0x29, 0x83, 0x49, 0x00, +0x1D, 0xE2, 0x3C, 0x00, 0x0E, 0xF3, 0x96, 0x03, +0x49, 0xFF, 0xFA, 0xC1, 0x48, 0xFF, 0xFD, 0x1F, +0x49, 0x00, 0x0F, 0xD5, 0x80, 0xE0, 0x49, 0xFF, +0xEC, 0x15, 0xCF, 0x06, 0x3C, 0x83, 0xF6, 0x85, +0x8D, 0x01, 0x3C, 0x8B, 0xF6, 0x85, 0x3C, 0xC7, +0xF6, 0x74, 0x3D, 0xE4, 0x05, 0x0B, 0x3D, 0xE8, +0x0E, 0x91, 0x4E, 0xC6, 0xFD, 0x0C, 0x3C, 0x30, +0x0F, 0x93, 0x97, 0x1C, 0xC4, 0x05, 0x2E, 0xD7, +0xE1, 0x5D, 0x5A, 0xD0, 0x02, 0x05, 0x3C, 0x50, +0x0F, 0xAE, 0xC5, 0x5E, 0x3C, 0x00, 0x0F, 0xAE, +0x97, 0xC3, 0x5A, 0x78, 0x01, 0x12, 0x3C, 0x10, +0x0F, 0x93, 0x96, 0x8C, 0xC2, 0x0D, 0x2E, 0xE7, +0xE1, 0x5D, 0x5A, 0xE0, 0x02, 0x0A, 0x49, 0xFF, +0xFA, 0xD7, 0x5A, 0x08, 0x06, 0x06, 0x3E, 0x77, +0xF3, 0xDC, 0x48, 0xFF, 0xFC, 0xEC, 0x3C, 0x30, +0x0F, 0x93, 0x97, 0x1C, 0xC4, 0x45, 0x2F, 0x07, +0xE1, 0x5D, 0x5B, 0x08, 0x02, 0x42, 0x3C, 0x5D, +0xFC, 0xE0, 0x4E, 0x57, 0x00, 0x0C, 0x3D, 0xC0, +0x0F, 0x9C, 0x5B, 0xC8, 0x02, 0x08, 0x8E, 0xA1, +0x3C, 0x5F, 0xFC, 0xE0, 0xCD, 0x03, 0x3C, 0x5B, +0xF9, 0xBB, 0x49, 0xFF, 0xFA, 0xB9, 0xC0, 0x2B, +0x84, 0x00, 0x49, 0x00, 0x29, 0x2B, 0x3C, 0x7D, +0xFC, 0xDC, 0x85, 0x60, 0x8C, 0xE1, 0x96, 0x7B, +0x3C, 0x18, 0x0F, 0x9A, 0x3C, 0x20, 0x0F, 0x9A, +0x97, 0xD3, 0x49, 0x00, 0x29, 0x48, 0x49, 0x00, +0x26, 0x3F, 0x3D, 0x1C, 0x07, 0x39, 0x3D, 0x2D, +0xFE, 0x58, 0x45, 0x30, 0x00, 0x40, 0x96, 0xF8, +0x14, 0xB8, 0x80, 0x02, 0x14, 0xB9, 0x00, 0x05, +0x13, 0x34, 0x80, 0x00, 0x12, 0x34, 0x80, 0x01, +0x49, 0x00, 0x26, 0x22, 0x49, 0x00, 0x29, 0x33, +0x3E, 0xB7, 0xF3, 0xDC, 0x3C, 0xBB, 0xF9, 0xBB, +0x48, 0xFF, 0xFC, 0x92, 0x2E, 0x00, 0x03, 0x22, +0xC8, 0x03, 0x49, 0x00, 0x29, 0x08, 0x3C, 0x40, +0x05, 0x09, 0x97, 0x64, 0xC5, 0x07, 0x2F, 0x47, +0xE1, 0x5D, 0x5B, 0x48, 0x02, 0x04, 0x48, 0xFF, +0xFC, 0x9A, 0x2E, 0x00, 0x03, 0x22, 0xC8, 0x03, +0x3E, 0x07, 0xF3, 0xDF, 0x2F, 0x57, 0xED, 0x1E, +0x5B, 0x58, 0x01, 0x03, 0xC8, 0x23, 0x3C, 0x10, +0x0F, 0x64, 0x3C, 0x73, 0xED, 0x8C, 0x96, 0x8B, +0xFE, 0xBE, 0xC2, 0x1C, 0x49, 0x00, 0x29, 0x0B, +0x84, 0x01, 0x49, 0x00, 0x1C, 0x6E, 0x49, 0x00, +0x25, 0xF3, 0x3C, 0x30, 0x05, 0x07, 0x2F, 0x60, +0x03, 0x22, 0x97, 0x1C, 0x3F, 0x67, 0xF3, 0xDF, +0xC4, 0x0D, 0x3C, 0x50, 0x0E, 0xF0, 0x84, 0x20, +0x96, 0x2B, 0x49, 0x00, 0x29, 0x13, 0x96, 0x00, +0xC0, 0x05, 0x44, 0x00, 0x00, 0x64, 0x49, 0x00, +0x28, 0xC9, 0x3C, 0x70, 0x05, 0x0A, 0x4E, 0x72, +0xFC, 0x6A, 0x3C, 0x13, 0xF9, 0xF1, 0x9C, 0x89, +0xE2, 0x27, 0x3C, 0x2B, 0xF9, 0xF1, 0x4E, 0xF3, +0xFC, 0x62, 0x49, 0x00, 0x28, 0xE4, 0x49, 0x00, +0x25, 0xDB, 0x3D, 0x8C, 0x07, 0x39, 0x84, 0x60, +0x86, 0xE0, 0x80, 0x18, 0x3D, 0x78, 0x0E, 0xF4, +0x3D, 0x78, 0x0E, 0xF5, 0xA8, 0xC2, 0x3D, 0x9D, +0xFE, 0x58, 0x84, 0x81, 0x14, 0x3C, 0x80, 0x05, +0x12, 0x34, 0x80, 0x00, 0x12, 0x35, 0x80, 0x00, +0xA9, 0x02, 0x49, 0x00, 0x25, 0xB9, 0x48, 0xFF, +0xFC, 0x46, 0x92, 0x00, 0xFC, 0x6A, 0x3C, 0x00, +0x05, 0x2E, 0xE6, 0x02, 0xE9, 0x04, 0x84, 0x21, +0x3C, 0x18, 0x05, 0x2E, 0x3C, 0x24, 0x0E, 0x55, +0x3C, 0x30, 0x05, 0x2B, 0x85, 0x20, 0xE0, 0x43, +0x3C, 0x9B, 0xF9, 0xE9, 0x3E, 0x90, 0x03, 0x23, +0x3E, 0x6F, 0xFF, 0x08, 0xE9, 0x07, 0x3C, 0x44, +0x0E, 0x52, 0x3C, 0x50, 0x05, 0x2A, 0xE0, 0x85, +0xE8, 0x08, 0x3C, 0x00, 0x10, 0xF4, 0x49, 0x00, +0x0B, 0x50, 0x84, 0x00, 0x48, 0x00, 0x01, 0x99, +0x3C, 0xA4, 0x05, 0x01, 0x3C, 0xB0, 0x0E, 0x64, +0x3E, 0x78, 0x03, 0x4C, 0x85, 0x01, 0xE1, 0x4B, +0x3C, 0x9B, 0xF9, 0xD4, 0x3C, 0x9B, 0xF9, 0xD2, +0x3C, 0x9B, 0xF9, 0xD3, 0x3C, 0x9B, 0xF9, 0xD9, +0x3C, 0x7E, 0x02, 0x7A, 0x3E, 0x87, 0xF3, 0xD9, +0x4E, 0xF3, 0x01, 0x73, 0x3D, 0x00, 0x0E, 0x65, +0xE1, 0x8A, 0x4E, 0xF3, 0x01, 0x6E, 0x3D, 0x14, +0x04, 0xFE, 0x3C, 0xC0, 0x0E, 0x66, 0xE1, 0xAC, +0x4E, 0xF3, 0x01, 0x67, 0x3D, 0x20, 0x0E, 0x67, +0xE1, 0xD1, 0x4E, 0xF3, 0x01, 0x62, 0x3C, 0x00, +0x10, 0xF0, 0x49, 0x00, 0x3F, 0xAB, 0x3E, 0x00, +0x03, 0x1E, 0xC8, 0x05, 0x3E, 0x90, 0x03, 0x1C, +0x48, 0x00, 0x01, 0x57, 0x3C, 0xD0, 0x10, 0xF5, +0x54, 0x16, 0x81, 0x00, 0xC1, 0x6A, 0x3C, 0x20, +0x05, 0x2E, 0xC2, 0x67, 0x2E, 0xA0, 0x03, 0x1C, +0x4E, 0xA2, 0x00, 0x64, 0xE2, 0x0A, 0xE9, 0x61, +0x84, 0xA0, 0x3C, 0xB0, 0x0E, 0x5F, 0x81, 0x25, +0x50, 0xCF, 0x80, 0x18, 0x85, 0xA1, 0xE1, 0x2A, +0x82, 0x2A, 0xE8, 0x33, 0x40, 0x83, 0x24, 0x20, +0x45, 0x20, 0x7F, 0xFF, 0x86, 0x1F, 0x86, 0x60, +0xE1, 0xE0, 0xE8, 0x1D, 0x40, 0x22, 0xCC, 0x0E, +0x97, 0x14, 0xCC, 0x17, 0x41, 0x53, 0x4C, 0x20, +0x23, 0x1A, 0x81, 0xCC, 0x23, 0x44, 0x01, 0xA4, +0x40, 0x38, 0xAC, 0x36, 0x40, 0x4A, 0x2C, 0x56, +0x8A, 0x83, 0x9A, 0xD1, 0x43, 0x62, 0x00, 0x03, +0x43, 0x11, 0x80, 0x03, 0x89, 0xB6, 0xE1, 0xB2, +0x41, 0x28, 0xBC, 0x1B, 0x41, 0x09, 0xBC, 0x1B, +0x8D, 0xE1, 0xD5, 0xE3, 0x5B, 0x07, 0xFF, 0x0C, +0x51, 0xC8, 0x01, 0xCC, 0x39, 0xE3, 0x71, 0x01, +0x40, 0xE6, 0xC0, 0x0C, 0x39, 0xE6, 0x25, 0x09, +0x40, 0x52, 0xB8, 0x04, 0x8D, 0x21, 0xD5, 0xCC, +0x86, 0xC1, 0x51, 0x7F, 0x80, 0x18, 0xE1, 0xA0, +0x86, 0x60, 0xE8, 0x14, 0x40, 0x42, 0xCC, 0x0E, +0x96, 0xE4, 0xCB, 0x0B, 0x51, 0x89, 0x81, 0xCC, +0x40, 0x1B, 0x4C, 0x0C, 0x39, 0x93, 0x61, 0x01, +0xFF, 0x4F, 0x39, 0x9B, 0xC5, 0x09, 0xD5, 0x04, +0x8D, 0xE1, 0xE1, 0xE0, 0xE9, 0xF0, 0x8D, 0xA1, +0xD5, 0xEB, 0xB0, 0x86, 0xE1, 0xE0, 0xE8, 0x09, +0x41, 0x43, 0x4C, 0x20, 0x39, 0x51, 0x4D, 0x01, +0x13, 0x5A, 0x01, 0xCC, 0x8D, 0xE1, 0xD5, 0xF7, +0x3F, 0xC8, 0x02, 0xA0, 0x85, 0x00, 0x50, 0xCF, +0x80, 0x10, 0x50, 0xBF, 0x80, 0x08, 0x44, 0x90, +0x00, 0x38, 0x85, 0x41, 0x2E, 0xE0, 0x03, 0x1E, +0x2F, 0xE8, 0x03, 0x23, 0xE1, 0x0E, 0x4E, 0xF2, +0x00, 0x90, 0x3D, 0x30, 0x05, 0x2E, 0x40, 0xFF, +0x4C, 0x07, 0xE9, 0x05, 0x5B, 0x38, 0x01, 0x04, +0x48, 0x00, 0x00, 0x87, 0x23, 0x8E, 0x00, 0x00, +0x3D, 0x90, 0x0E, 0x5F, 0x3D, 0x40, 0x0E, 0x64, +0x40, 0x3C, 0x64, 0x96, 0x3D, 0x50, 0x0E, 0x65, +0x3D, 0x60, 0x0E, 0x66, 0x3D, 0x70, 0x0E, 0x67, +0x11, 0x46, 0x00, 0x00, 0x11, 0x56, 0x00, 0x01, +0x11, 0x66, 0x00, 0x02, 0x11, 0x76, 0x00, 0x03, +0x3A, 0x06, 0x04, 0x00, 0x96, 0xD9, 0x80, 0x4B, +0x97, 0x21, 0x49, 0x00, 0x0B, 0xFB, 0x20, 0x35, +0x80, 0x01, 0x21, 0x15, 0x80, 0x00, 0x2E, 0x08, +0x03, 0x23, 0x3D, 0x27, 0xF9, 0xD2, 0x8A, 0x71, +0x22, 0x5E, 0x00, 0x00, 0x51, 0x00, 0x01, 0xA4, +0xE0, 0x72, 0x38, 0x53, 0x41, 0x09, 0xE9, 0x04, +0x9C, 0x59, 0x3C, 0x1B, 0xF9, 0xD2, 0x20, 0x45, +0x80, 0x03, 0x21, 0xE5, 0x80, 0x02, 0x3C, 0xD7, +0xF9, 0xD3, 0x8A, 0x9E, 0xE0, 0x8D, 0xE9, 0x04, +0x9C, 0xA1, 0x3C, 0x2B, 0xF9, 0xD3, 0x8C, 0x81, +0x8C, 0x61, 0xFE, 0xE4, 0x3D, 0x37, 0xF9, 0xD4, +0x97, 0x59, 0xE1, 0xE5, 0xE8, 0x03, 0x3C, 0x5B, +0xF9, 0xD4, 0x3A, 0x05, 0x84, 0x00, 0x80, 0x5F, +0xB0, 0xC1, 0x49, 0x00, 0x0A, 0xDF, 0x2A, 0x3E, +0x00, 0x01, 0x3C, 0xE0, 0x0E, 0x5F, 0x2F, 0x68, +0x03, 0x23, 0x82, 0xE6, 0x41, 0x41, 0xBA, 0xB6, +0x3D, 0x9C, 0x02, 0x7A, 0x43, 0x7B, 0x24, 0x73, +0x13, 0x4F, 0x80, 0x02, 0x13, 0x5F, 0x80, 0x03, +0x38, 0x0C, 0x8D, 0x11, 0x80, 0x57, 0xA8, 0x15, +0x51, 0x0A, 0x82, 0xE0, 0x38, 0x13, 0xC1, 0x11, +0x12, 0x3B, 0x80, 0x05, 0x51, 0x1A, 0x02, 0xC0, +0xA8, 0x57, 0x38, 0x43, 0xC5, 0x11, 0xA9, 0x16, +0x80, 0x1F, 0x49, 0x00, 0x33, 0xDF, 0x2F, 0x28, +0x03, 0x23, 0x81, 0xA6, 0x42, 0xD9, 0x24, 0x73, +0x84, 0x60, 0x50, 0x26, 0x80, 0x30, 0xB4, 0xAD, +0x8D, 0xC1, 0x10, 0xA6, 0x80, 0x30, 0x14, 0x56, +0x80, 0x01, 0xAC, 0xD2, 0x3F, 0x20, 0x03, 0x23, +0x8D, 0x01, 0x48, 0xFF, 0xFF, 0x6D, 0x2E, 0x60, +0x03, 0x1C, 0xE0, 0xDE, 0xE8, 0x3B, 0x44, 0x70, +0x00, 0x38, 0x3E, 0x0F, 0xFF, 0x08, 0x42, 0x03, +0x1C, 0x73, 0x50, 0x9F, 0x7F, 0xFF, 0xB0, 0x86, +0xE0, 0xC9, 0xE8, 0x30, 0x8C, 0xC1, 0x51, 0xC0, +0x00, 0x38, 0x80, 0x3C, 0x80, 0xE6, 0xE0, 0xFE, +0xE8, 0x27, 0xA1, 0x05, 0xA1, 0x4D, 0xE0, 0x85, +0xE8, 0x1F, 0x81, 0x40, 0x81, 0x82, 0x3B, 0x05, +0x64, 0x04, 0x3B, 0x06, 0x64, 0x24, 0x3B, 0x05, +0x4C, 0x00, 0x3B, 0x06, 0x4C, 0x20, 0x81, 0xC1, +0x81, 0x60, 0x3B, 0x07, 0x64, 0x04, 0x3B, 0x05, +0xE4, 0x24, 0x3B, 0x07, 0x4C, 0x00, 0x3B, 0x05, +0x4C, 0x20, 0x81, 0xA2, 0x80, 0x61, 0x3B, 0x06, +0xE4, 0x04, 0x3B, 0x01, 0xE4, 0x24, 0x3B, 0x06, +0x4C, 0x00, 0x3B, 0x07, 0x4C, 0x20, 0x8C, 0xE1, +0x50, 0x10, 0x80, 0x38, 0xD5, 0xD9, 0x80, 0x1C, +0xD5, 0xD0, 0x3C, 0x60, 0x05, 0x2E, 0xE0, 0xDE, +0xE8, 0x03, 0x3E, 0x60, 0x03, 0x23, 0x2E, 0x80, +0x03, 0x23, 0x3E, 0x80, 0x03, 0x1C, 0x2E, 0x68, +0x03, 0x23, 0x3C, 0x00, 0x10, 0xF4, 0xCE, 0x0F, +0x49, 0x00, 0x09, 0xBF, 0x5A, 0x08, 0x01, 0x06, +0x86, 0xE2, 0x3F, 0x70, 0x03, 0x22, 0xD5, 0x04, +0x3E, 0x60, 0x03, 0x22, 0x80, 0x06, 0x49, 0x00, +0x37, 0x82, 0xD5, 0x14, 0x49, 0x00, 0x09, 0xB1, +0x49, 0x00, 0x06, 0x05, 0x49, 0x00, 0x17, 0x69, +0x2E, 0x70, 0x03, 0x23, 0x3E, 0x70, 0x03, 0x26, +0xC0, 0x09, 0x49, 0x00, 0x15, 0x84, 0x2E, 0x00, +0x03, 0x22, 0x58, 0x50, 0x00, 0x01, 0x3E, 0x50, +0x03, 0x22, 0xFC, 0xEA, 0xFC, 0x40, 0x51, 0xFF, +0xFC, 0x40, 0x84, 0x20, 0x46, 0x46, 0xA3, 0xDB, +0x46, 0x30, 0x49, 0xDB, 0x47, 0x07, 0xFF, 0xFF, +0xB6, 0x3F, 0xF1, 0x81, 0xF1, 0xA8, 0xF1, 0xA9, +0x50, 0x42, 0x09, 0x21, 0x50, 0x31, 0x8C, 0x57, +0x80, 0x41, 0x50, 0x7F, 0x82, 0x80, 0x50, 0x6F, +0x83, 0x20, 0x86, 0x3F, 0x50, 0x88, 0x0F, 0xFF, +0x5A, 0x08, 0x01, 0x13, 0x51, 0x4F, 0x80, 0xA0, +0x41, 0x30, 0x08, 0x0C, 0x41, 0x2F, 0x84, 0x00, +0x41, 0x5A, 0x04, 0x00, 0x15, 0x39, 0x00, 0x02, +0x15, 0x3A, 0x80, 0x02, 0x39, 0x33, 0x8A, 0x0A, +0x39, 0x33, 0x0A, 0x0A, 0xD5, 0x17, 0x40, 0x5F, +0x84, 0x00, 0xA8, 0xEA, 0x95, 0x59, 0x40, 0xA2, +0x8F, 0xD5, 0x50, 0x9F, 0x80, 0xA0, 0x95, 0x61, +0x89, 0x21, 0x40, 0xF2, 0x93, 0xD5, 0x38, 0x43, +0x8A, 0x0A, 0x15, 0x14, 0x80, 0x02, 0x38, 0x83, +0x0A, 0x0A, 0x42, 0x35, 0x7C, 0x09, 0x42, 0x47, +0xFC, 0x09, 0x8C, 0x41, 0x8C, 0x24, 0x5A, 0x28, +0x1F, 0xD5, 0x5A, 0x08, 0x01, 0x09, 0x46, 0x18, +0x00, 0x00, 0xF1, 0xA1, 0xF1, 0xC9, 0x14, 0x13, +0x80, 0x1F, 0xD5, 0x0A, 0x84, 0x00, 0x47, 0x67, +0xFF, 0xFF, 0xF0, 0xA1, 0xF0, 0xC9, 0x14, 0x03, +0x80, 0x1F, 0x50, 0x1B, 0x0F, 0xFF, 0x50, 0x8F, +0x81, 0x40, 0x14, 0x13, 0x00, 0x1F, 0x80, 0x1F, +0x80, 0x28, 0x50, 0x9F, 0x81, 0xE0, 0x49, 0x00, +0x1E, 0x96, 0x50, 0x0F, 0x80, 0xA0, 0x80, 0x29, +0x49, 0x00, 0x1E, 0x91, 0x3D, 0x7C, 0x07, 0x39, +0x84, 0xA0, 0x14, 0x5B, 0x80, 0x01, 0x3D, 0x8C, +0x07, 0x38, 0x41, 0xEC, 0x14, 0x40, 0x39, 0x94, +0x16, 0x02, 0x38, 0x24, 0x96, 0x02, 0x39, 0x13, +0x96, 0x02, 0x39, 0x03, 0x16, 0x02, 0x8C, 0xA1, +0x15, 0x9F, 0x00, 0x80, 0x14, 0x2F, 0x00, 0xC0, +0x15, 0x1F, 0x01, 0x00, 0x15, 0x0F, 0x01, 0x40, +0x5A, 0x58, 0x28, 0xED, 0x3C, 0x7D, 0xFC, 0xE8, +0x84, 0xC0, 0xFB, 0x47, 0x84, 0x61, 0xFA, 0x86, +0x85, 0xE2, 0xFB, 0xE8, 0x86, 0x43, 0xFA, 0x09, +0x86, 0x84, 0xFA, 0x2A, 0x86, 0xA5, 0x86, 0xCB, +0x85, 0x06, 0x10, 0x63, 0x81, 0x20, 0x85, 0x2A, +0x10, 0xA3, 0x81, 0x21, 0x84, 0xA7, 0x10, 0x33, +0x81, 0x22, 0x86, 0xEC, 0x10, 0x43, 0x81, 0x23, +0x87, 0x08, 0x10, 0xF3, 0x81, 0x24, 0x87, 0x2D, +0x11, 0x33, 0x81, 0x25, 0x87, 0xC9, 0x11, 0x23, +0x81, 0x26, 0x84, 0x4E, 0x10, 0x03, 0x81, 0x27, +0xFB, 0xA4, 0x11, 0x43, 0x81, 0x28, 0xFB, 0x8F, +0x10, 0x13, 0x81, 0x29, 0xFA, 0xC5, 0x11, 0x53, +0x81, 0x2A, 0xFB, 0x4E, 0x11, 0x63, 0x81, 0x2B, +0xFA, 0x61, 0x10, 0x83, 0x81, 0x2C, 0xFA, 0x8B, +0xFB, 0xE2, 0xFB, 0xCC, 0xFA, 0x03, 0xFA, 0x2D, +0x85, 0xEF, 0xFB, 0x00, 0x10, 0x93, 0x81, 0x2D, +0x10, 0x53, 0x81, 0x2E, 0x11, 0x73, 0x81, 0x2F, +0x11, 0x83, 0x81, 0x30, 0x11, 0x93, 0x81, 0x31, +0x11, 0xE3, 0x81, 0x32, 0x10, 0x23, 0x81, 0x33, +0x11, 0x13, 0x81, 0x34, 0x11, 0x03, 0x81, 0x35, +0x10, 0x63, 0x81, 0x36, 0x10, 0xA3, 0x81, 0x37, +0x10, 0x33, 0x81, 0x38, 0x10, 0x43, 0x81, 0x39, +0x11, 0x33, 0x81, 0x3A, 0x11, 0x23, 0x81, 0x3B, +0x10, 0x03, 0x81, 0x3C, 0x10, 0x13, 0x81, 0x3D, +0x10, 0xF3, 0x81, 0x3E, 0x10, 0x83, 0x81, 0x3F, +0x51, 0xFF, 0x83, 0xC0, 0xFC, 0xC0, 0xFC, 0x60, +0x86, 0x20, 0x00, 0xBF, 0x80, 0x30, 0x00, 0x8F, +0x80, 0x34, 0x00, 0xCF, 0x80, 0x38, 0x00, 0xDF, +0x80, 0x3C, 0x81, 0x31, 0x82, 0x71, 0x82, 0x51, +0x83, 0x11, 0x81, 0x51, 0x3E, 0xEF, 0xED, 0x24, +0xE1, 0x40, 0xE8, 0x5D, 0x51, 0x0C, 0x7F, 0xFF, +0xE7, 0x85, 0x38, 0x67, 0x28, 0x00, 0xE8, 0x0C, +0x44, 0xF4, 0x2F, 0xF8, 0x39, 0x07, 0xC0, 0x00, +0x40, 0xF8, 0x3C, 0x00, 0x4A, 0x00, 0x3C, 0x00, +0x14, 0x32, 0x52, 0x74, 0xE4, 0x00, 0x40, 0x73, +0x08, 0x02, 0xC7, 0x46, 0xFF, 0x9E, 0xC6, 0x3C, +0x86, 0x41, 0xD5, 0x3A, 0x41, 0x63, 0x08, 0x02, +0x4F, 0x62, 0x00, 0x06, 0xFF, 0x9E, 0xC6, 0x3D, +0x86, 0x41, 0xD5, 0x3B, 0x40, 0x73, 0x10, 0x02, +0xC7, 0x37, 0xFF, 0xAE, 0xC6, 0x2F, 0x86, 0x61, +0xD5, 0x2D, 0x41, 0x53, 0x10, 0x02, 0x4F, 0x52, +0x00, 0x06, 0xFF, 0xAE, 0xC6, 0x2E, 0x86, 0x61, +0xD5, 0x2C, 0x40, 0x73, 0x2C, 0x02, 0xC7, 0x28, +0x40, 0x63, 0x20, 0x02, 0xC6, 0x21, 0x85, 0x21, +0xD5, 0x1F, 0x41, 0x43, 0x2C, 0x02, 0x4F, 0x42, +0x00, 0x07, 0x40, 0x63, 0x20, 0x02, 0xC6, 0x1D, +0x85, 0x21, 0xD5, 0x1B, 0x40, 0x73, 0x30, 0x02, +0xC7, 0x17, 0x40, 0x63, 0x34, 0x02, 0xC6, 0x12, +0x86, 0x21, 0xD5, 0x10, 0x41, 0x73, 0x30, 0x02, +0x4F, 0x72, 0x00, 0x0F, 0x40, 0x63, 0x34, 0x02, +0xC6, 0x0C, 0x86, 0x21, 0xD5, 0x0A, 0x87, 0x01, +0xD5, 0x08, 0x87, 0x02, 0xD5, 0x06, 0x87, 0x03, +0xD5, 0x04, 0x87, 0x04, 0xD5, 0x02, 0x87, 0x05, +0x8D, 0x41, 0xD5, 0xA3, 0x5A, 0x18, 0x01, 0x06, +0x5B, 0x88, 0x01, 0x22, 0x80, 0x12, 0xD5, 0x20, +0x5A, 0x18, 0x02, 0x08, 0x5B, 0x88, 0x02, 0x1C, +0x5B, 0x28, 0x01, 0x1A, 0x80, 0x13, 0xD5, 0x18, +0x5A, 0x18, 0x03, 0x0A, 0x5B, 0x88, 0x03, 0x14, +0x5B, 0x28, 0x01, 0x12, 0x5B, 0x38, 0x01, 0x10, +0x80, 0x09, 0xD5, 0x0E, 0x5A, 0x18, 0x04, 0x0C, +0x5B, 0x88, 0x04, 0x0A, 0x5B, 0x28, 0x01, 0x08, +0x5B, 0x38, 0x01, 0x06, 0x5A, 0x98, 0x01, 0x04, +0x80, 0x11, 0xD5, 0x02, 0x84, 0x00, 0xFC, 0xE0, +0xFC, 0x60, 0x86, 0x01, 0x44, 0x91, 0x40, 0x00, +0x44, 0xAE, 0xC0, 0x00, 0x82, 0x60, 0x03, 0x90, +0x00, 0x00, 0x03, 0xC0, 0x80, 0x00, 0x84, 0x00, +0x3E, 0x5F, 0xED, 0x24, 0x81, 0x70, 0x81, 0x89, +0x85, 0x04, 0x44, 0xD0, 0x00, 0x10, 0x81, 0xCA, +0x45, 0x40, 0x00, 0x40, 0x45, 0x50, 0x00, 0x20, +0x86, 0xC8, 0x45, 0x7F, 0xFF, 0x80, 0x87, 0x02, +0xE1, 0x82, 0xE8, 0x5C, 0x39, 0x19, 0xC1, 0x01, +0x39, 0x20, 0xC1, 0x01, 0x40, 0x48, 0xE4, 0x01, +0x40, 0x39, 0x70, 0x01, 0x42, 0x62, 0x00, 0x03, +0x42, 0x71, 0x80, 0x03, 0x43, 0xE3, 0x98, 0x00, +0x5E, 0xFF, 0x00, 0x0F, 0xE9, 0x45, 0x4E, 0x47, +0x00, 0x03, 0xC3, 0x07, 0x43, 0x93, 0xA4, 0x24, +0x41, 0xCC, 0xBC, 0x0A, 0xE0, 0x9C, 0xE9, 0x04, +0x38, 0xB2, 0x80, 0x08, 0xD5, 0x37, 0x4E, 0x37, +0x00, 0x03, 0xC4, 0x07, 0x43, 0xE3, 0x30, 0x24, +0x41, 0x9F, 0x3C, 0x0A, 0xE0, 0x79, 0xE9, 0x04, +0x38, 0x82, 0x80, 0x08, 0xD5, 0x2B, 0x4E, 0x44, +0x00, 0x03, 0xC3, 0x06, 0x42, 0x73, 0xA8, 0x24, +0x90, 0xEF, 0xE0, 0xE4, 0xE9, 0x04, 0x38, 0xD2, +0x80, 0x08, 0xD5, 0x20, 0x4E, 0x34, 0x00, 0x03, +0xC4, 0x06, 0x42, 0x63, 0x38, 0x24, 0x90, 0xCF, +0xE0, 0xC3, 0xE9, 0x04, 0x39, 0x42, 0x80, 0x08, +0xD5, 0x15, 0x4E, 0x47, 0x00, 0x07, 0x4E, 0x37, +0x00, 0x0F, 0x39, 0x82, 0x80, 0x08, 0xD5, 0x0E, +0xC4, 0x11, 0x4E, 0x37, 0x00, 0x05, 0x39, 0x62, +0x80, 0x08, 0xD5, 0x08, 0xC3, 0x0B, 0x39, 0x52, +0x80, 0x08, 0xD5, 0x04, 0xC3, 0x07, 0x39, 0x72, +0x80, 0x08, 0x8C, 0x01, 0xD5, 0x03, 0x82, 0x5C, +0x82, 0x39, 0x8D, 0x81, 0x83, 0x92, 0x83, 0x31, +0xD5, 0xA4, 0xFC, 0xE0, 0xFC, 0x20, 0x3C, 0x50, +0x0E, 0x69, 0xD8, 0x03, 0x84, 0x40, 0xD5, 0x08, +0x2E, 0x60, 0x03, 0x22, 0xCE, 0x04, 0x2E, 0x10, +0x03, 0x2C, 0xC9, 0x06, 0x84, 0x41, 0x3E, 0x27, +0xED, 0x1E, 0x84, 0xC1, 0xD5, 0x0F, 0x80, 0xE0, +0x49, 0x00, 0x1C, 0xDC, 0x80, 0x07, 0x49, 0x00, +0x1F, 0x79, 0x3C, 0x00, 0x10, 0x42, 0x3C, 0x6B, +0xF6, 0x8E, 0x3C, 0x0B, 0xF6, 0x8C, 0x3E, 0x67, +0xED, 0x1E, 0x80, 0x06, 0xFC, 0xA0, 0xFC, 0x01, +0xC0, 0x04, 0x3C, 0x00, 0x0E, 0x68, 0xD5, 0x20, +0x2E, 0x07, 0xED, 0x14, 0x5A, 0x00, 0x02, 0x07, +0x5A, 0x08, 0x03, 0x08, 0x3C, 0x00, 0x0F, 0x8C, +0xD5, 0x06, 0x3C, 0x00, 0x0F, 0x8B, 0xD5, 0x03, +0x3C, 0x00, 0x0F, 0xDC, 0x2E, 0x17, 0xED, 0x16, +0x5A, 0x18, 0x01, 0x0F, 0x3C, 0x20, 0x05, 0x08, +0x96, 0x96, 0xC2, 0x08, 0x2E, 0x37, 0xED, 0x20, +0x5A, 0x30, 0x01, 0x05, 0x3C, 0x00, 0x0F, 0x8C, +0xD5, 0x03, 0x3C, 0x00, 0x0F, 0xDC, 0x49, 0xFF, +0xFF, 0xBB, 0xF0, 0x81, 0xF0, 0x01, 0xFC, 0x81, +0xFC, 0x20, 0x44, 0x1F, 0x80, 0x00, 0x84, 0x40, +0x44, 0x00, 0x7F, 0xFF, 0x3C, 0x18, 0x0E, 0x52, +0x3C, 0x18, 0x0E, 0x55, 0x84, 0x20, 0x3C, 0x28, +0x0E, 0x4E, 0x3C, 0x28, 0x0E, 0x4D, 0x3C, 0x08, +0x0E, 0x53, 0x3C, 0x08, 0x0E, 0x56, 0x3D, 0xE0, +0x0E, 0x61, 0x44, 0x8F, 0x80, 0x00, 0x3C, 0x70, +0x0E, 0x57, 0x45, 0x40, 0x7F, 0xFF, 0x3E, 0x38, +0x16, 0x0C, 0x80, 0x41, 0x3F, 0x1F, 0xE6, 0xFC, +0xE0, 0x5E, 0xE8, 0x20, 0x41, 0x38, 0x88, 0x20, +0x22, 0x61, 0xFF, 0xCA, 0x02, 0x09, 0x82, 0xE0, +0x9A, 0x30, 0x96, 0x03, 0xE1, 0x00, 0x12, 0x01, +0x83, 0x2C, 0xE8, 0x03, 0x97, 0xD1, 0x81, 0x00, +0x22, 0x41, 0x80, 0x00, 0x43, 0x4A, 0x00, 0x01, +0x9B, 0x74, 0x43, 0x22, 0x80, 0x03, 0x41, 0x59, +0x00, 0x13, 0xE2, 0x35, 0x40, 0x19, 0x3C, 0x1B, +0x96, 0x49, 0x1A, 0x61, 0x80, 0x01, 0x8C, 0x41, +0xD5, 0xE0, 0x3C, 0x18, 0x0E, 0x4D, 0x3C, 0x78, +0x0E, 0x57, 0x3D, 0x48, 0x0E, 0x56, 0x3C, 0x88, +0x0E, 0x55, 0x3D, 0x50, 0x0E, 0x60, 0x3D, 0x04, +0x0E, 0x52, 0x3C, 0x70, 0x0E, 0x54, 0x3D, 0x84, +0x0E, 0x53, 0x3C, 0x10, 0x0E, 0x4E, 0x3E, 0x38, +0x15, 0xCC, 0x84, 0x40, 0x3F, 0x6F, 0xE6, 0xFC, +0xE0, 0x55, 0xE8, 0x20, 0x41, 0x7B, 0x08, 0x20, +0x22, 0x61, 0xFF, 0xCA, 0x02, 0x0B, 0x82, 0xC0, +0x9A, 0x30, 0x96, 0x03, 0xE1, 0x80, 0x12, 0x01, +0x83, 0x2C, 0xE8, 0x03, 0x97, 0xD1, 0x82, 0x00, +0x22, 0x41, 0x80, 0x00, 0x43, 0x8C, 0x00, 0x01, +0x9B, 0x74, 0x43, 0x92, 0x80, 0x03, 0x41, 0xCC, +0x80, 0x13, 0xE2, 0x3C, 0x40, 0x1C, 0xBC, 0x1B, +0x96, 0x49, 0x1A, 0x61, 0x80, 0x01, 0x8C, 0x41, +0xD5, 0xE0, 0x44, 0x40, 0x7F, 0xFF, 0x84, 0xA0, +0x44, 0x3F, 0x80, 0x00, 0x3D, 0x08, 0x0E, 0x52, +0x3C, 0x18, 0x0E, 0x4E, 0x3C, 0x48, 0x0E, 0x50, +0x3C, 0x58, 0x0E, 0x4C, 0x3D, 0x88, 0x0E, 0x53, +0x3C, 0x78, 0x0E, 0x54, 0x3C, 0x38, 0x0E, 0x4F, +0x3D, 0x1C, 0x07, 0x24, 0x3E, 0x18, 0x0A, 0x60, +0x86, 0x00, 0x44, 0x40, 0x7F, 0xFF, 0x3E, 0x5F, +0xE6, 0xFC, 0x3C, 0x70, 0x0E, 0x5D, 0xE1, 0x87, +0xE8, 0x35, 0xA5, 0xC8, 0x39, 0x32, 0xC1, 0x01, +0x9B, 0xA7, 0x8A, 0xD3, 0x41, 0x28, 0xC0, 0x20, +0x96, 0x33, 0x12, 0x09, 0x00, 0x00, 0x02, 0x29, +0x00, 0x00, 0x3C, 0x84, 0x0E, 0x4F, 0x96, 0xD3, +0xE1, 0x03, 0xE8, 0x07, 0x02, 0x79, 0x00, 0x00, +0x3C, 0x78, 0x0E, 0x4F, 0x3D, 0x08, 0x0E, 0x51, +0x02, 0x69, 0x00, 0x00, 0x3D, 0x44, 0x0E, 0x50, +0x96, 0x33, 0xE0, 0x14, 0xE8, 0x05, 0x02, 0x29, +0x00, 0x00, 0x3C, 0x28, 0x0E, 0x50, 0x2A, 0x30, +0x80, 0x01, 0x22, 0x70, 0x82, 0xBF, 0x3D, 0x20, +0x0E, 0x4C, 0x9B, 0x9F, 0x42, 0x03, 0x00, 0x03, +0x96, 0x81, 0xE3, 0xC2, 0xE8, 0x03, 0x3C, 0x28, +0x0E, 0x4C, 0x12, 0x30, 0x82, 0xBF, 0x8D, 0x81, +0xD5, 0xC9, 0x3C, 0x63, 0xF6, 0x81, 0xC6, 0x13, +0x3C, 0x10, 0x05, 0x08, 0x96, 0x56, 0xC1, 0x0A, +0x2E, 0x87, 0xED, 0x20, 0x5A, 0x88, 0x01, 0x07, +0x3C, 0x30, 0x0F, 0x85, 0x96, 0x9B, 0x90, 0x48, +0xD5, 0x04, 0x3C, 0x00, 0x0F, 0x85, 0x96, 0x80, +0x3C, 0x2B, 0xF6, 0x87, 0xFC, 0xA0, 0xFC, 0x20, +0x2E, 0x58, 0x0A, 0x3A, 0xD0, 0x1E, 0x3E, 0x3F, +0xE1, 0x98, 0x84, 0x40, 0x50, 0x61, 0x80, 0x08, +0x44, 0x70, 0x00, 0x5C, 0x82, 0x02, 0x80, 0x86, +0x42, 0x41, 0x1C, 0x73, 0xA1, 0x21, 0x97, 0x24, +0xC4, 0x09, 0x20, 0x81, 0x80, 0x1C, 0x82, 0x20, +0xE1, 0x05, 0x41, 0x18, 0x3C, 0x1B, 0x11, 0x11, +0x80, 0x1C, 0x8C, 0x41, 0x50, 0x31, 0x80, 0x5C, +0x5A, 0x28, 0x0F, 0xEF, 0x3E, 0x00, 0x0A, 0x3A, +0x2E, 0x58, 0x0A, 0x3C, 0xD1, 0x17, 0x84, 0x00, +0x3E, 0x2F, 0xE1, 0x78, 0x82, 0x40, 0x3C, 0x60, +0x0F, 0x24, 0x97, 0xF3, 0xE0, 0x07, 0xE8, 0x0C, +0x29, 0x31, 0x00, 0x01, 0xE1, 0xE5, 0xE9, 0x04, +0x10, 0x11, 0x7F, 0xFF, 0xD5, 0x03, 0x11, 0x21, +0x7F, 0xFF, 0x8C, 0x01, 0xD5, 0xF1, 0x3E, 0x10, +0x0A, 0x3C, 0xFC, 0xA0, 0xFC, 0x00, 0x3E, 0x28, +0x1C, 0xE8, 0x02, 0x31, 0x01, 0x08, 0x02, 0x41, +0x00, 0x3B, 0x02, 0x51, 0x01, 0x10, 0x02, 0x61, +0x00, 0xB1, 0x02, 0xF1, 0x01, 0x10, 0x3E, 0x1F, +0xED, 0x00, 0x10, 0x00, 0x80, 0x14, 0x88, 0x85, +0x88, 0xCF, 0x84, 0x01, 0xAC, 0xCA, 0xAC, 0x09, +0x96, 0x21, 0x96, 0x71, 0x49, 0xFF, 0xFF, 0xAD, +0xFC, 0x80, 0xFC, 0x00, 0x2E, 0x07, 0xED, 0x20, +0x5A, 0x00, 0x01, 0x19, 0x3C, 0x00, 0x0F, 0x8F, +0x3C, 0x10, 0x0E, 0x4A, 0x96, 0x83, 0xE0, 0x41, +0x84, 0x03, 0xE9, 0x0A, 0x3C, 0x30, 0x0F, 0x8E, +0x3C, 0x50, 0x0E, 0x4B, 0x97, 0x1B, 0xE0, 0x85, +0x84, 0x03, 0xE8, 0x08, 0x84, 0x02, 0x84, 0xC0, +0x49, 0xFF, 0xFF, 0xCE, 0x3C, 0x6B, 0xF6, 0x86, +0xD5, 0x03, 0x49, 0xFF, 0xFF, 0xC9, 0xFC, 0x80, +0x3C, 0x00, 0x10, 0x70, 0x96, 0x43, 0xE4, 0x23, +0xE8, 0x1B, 0xFC, 0x00, 0x3C, 0x20, 0x10, 0x70, +0x3C, 0x43, 0xF6, 0x81, 0x96, 0xD3, 0xE0, 0x64, +0xE8, 0x09, 0x3C, 0x57, 0xF6, 0x74, 0x4E, 0x56, +0x00, 0x06, 0x2E, 0x67, 0xEC, 0xFA, 0x5A, 0x68, +0x01, 0x06, 0x3C, 0x10, 0x0F, 0x98, 0x84, 0x00, +0xD5, 0x04, 0x3C, 0x10, 0x0F, 0x98, 0x84, 0x01, +0x49, 0x00, 0x1D, 0xB0, 0xFC, 0x80, 0xDD, 0x9E, +0x3C, 0x00, 0x0F, 0x4D, 0x3C, 0x10, 0x0E, 0x4C, +0x96, 0x83, 0xE0, 0x41, 0xE8, 0x06, 0x84, 0x80, +0x3C, 0x4B, 0xF6, 0x7F, 0x48, 0x00, 0x01, 0x06, +0x3C, 0x37, 0xF6, 0x74, 0x4E, 0x33, 0x01, 0x01, +0x2E, 0x07, 0xEC, 0xFA, 0x4E, 0x03, 0x00, 0xFD, +0x2E, 0x50, 0x03, 0x22, 0xCD, 0x05, 0x2E, 0x20, +0x03, 0x2C, 0xC2, 0x06, 0xDD, 0x9E, 0x5A, 0x58, +0x07, 0x04, 0x48, 0x00, 0x00, 0xF6, 0x2E, 0x17, +0xE1, 0x63, 0x4E, 0x13, 0x00, 0xF2, 0xFC, 0x60, +0x3C, 0x40, 0x05, 0x06, 0x2E, 0x87, 0xE1, 0x5D, +0x54, 0x62, 0x01, 0x00, 0xC6, 0x45, 0x3C, 0x54, +0x0E, 0x4F, 0x4E, 0x57, 0x00, 0x20, 0x3C, 0x94, +0x0E, 0x50, 0x4E, 0x94, 0x00, 0x1C, 0x3C, 0x70, +0x0F, 0x4E, 0x44, 0xA0, 0x00, 0x64, 0x96, 0xFB, +0xE0, 0x65, 0xE8, 0x08, 0x3C, 0x70, 0x0F, 0x50, +0x96, 0xFB, 0xFE, 0xEC, 0x40, 0x51, 0xA8, 0xB7, +0xD5, 0x07, 0x3C, 0x20, 0x0F, 0x4F, 0x97, 0x93, +0xFF, 0x74, 0x40, 0x52, 0xA8, 0xB7, 0xFE, 0xAA, +0x97, 0x93, 0xE1, 0x26, 0xE9, 0x26, 0x5A, 0x80, +0x02, 0x24, 0x3C, 0x14, 0x0E, 0x55, 0x4E, 0x17, +0x00, 0x20, 0x3C, 0xB4, 0x0E, 0x56, 0x4E, 0xB4, +0x00, 0x1C, 0x3C, 0x50, 0x0F, 0x4E, 0x44, 0xC0, +0x00, 0x64, 0x97, 0xEB, 0xE0, 0xE1, 0xE8, 0x08, +0x3C, 0x50, 0x0F, 0x50, 0x97, 0xEB, 0xFF, 0xCC, +0x40, 0x63, 0xB0, 0xD7, 0xD5, 0x07, 0x3C, 0x30, +0x0F, 0x4F, 0x96, 0x9B, 0xFE, 0x54, 0x40, 0x60, +0xB0, 0xD7, 0xFE, 0x72, 0x96, 0xCB, 0xE1, 0x63, +0x56, 0x17, 0x80, 0x01, 0xD5, 0x02, 0x84, 0x21, +0x56, 0x10, 0x80, 0x01, 0x5A, 0x80, 0x02, 0x6D, +0x3C, 0x20, 0x0F, 0xB8, 0x3D, 0x04, 0x0E, 0x4F, +0x97, 0x93, 0xE1, 0x86, 0xE8, 0x03, 0x84, 0x40, +0xD5, 0x62, 0x3D, 0x50, 0x05, 0x07, 0x54, 0x5A, +0x90, 0x00, 0xC5, 0x4E, 0x3C, 0xD0, 0x0E, 0x64, +0x3D, 0x20, 0x0E, 0x5F, 0x51, 0x16, 0x80, 0x01, +0x3C, 0xE0, 0x0E, 0x65, 0x43, 0x39, 0x44, 0x24, +0x3C, 0xA0, 0x0E, 0x66, 0x3C, 0x80, 0x0E, 0x67, +0x51, 0x67, 0x7F, 0xFF, 0x41, 0xC9, 0x80, 0x13, +0x44, 0x7F, 0x80, 0x00, 0x3F, 0x78, 0x0A, 0x60, +0x87, 0x22, 0xE1, 0x0A, 0xE9, 0x2E, 0x41, 0x4E, +0x28, 0x00, 0x41, 0x8A, 0x00, 0x13, 0x81, 0x31, +0x84, 0xA0, 0xE1, 0x36, 0xE8, 0x24, 0x40, 0x62, +0xE0, 0x00, 0x96, 0xB3, 0x41, 0xEB, 0x88, 0x20, +0x40, 0xB1, 0x48, 0x01, 0x88, 0x52, 0x40, 0xEB, +0x88, 0x20, 0x40, 0xCB, 0xAC, 0x20, 0x02, 0x3F, +0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x02, 0x67, +0x00, 0x00, 0x40, 0xD8, 0x00, 0x11, 0x96, 0xB3, +0x88, 0x4D, 0x40, 0x61, 0x64, 0xD6, 0x8A, 0x66, +0x96, 0x9B, 0x42, 0x61, 0x00, 0x03, 0xE0, 0xE6, +0xE8, 0x02, 0x97, 0xF3, 0x88, 0xB2, 0x8D, 0x21, +0x97, 0x69, 0xD5, 0xDC, 0x8D, 0x41, 0xD5, 0xD2, +0x3C, 0x78, 0x0F, 0x54, 0x3C, 0x30, 0x0F, 0x52, +0x96, 0x9B, 0xE0, 0xE2, 0xE9, 0x0F, 0x2E, 0x37, +0xE1, 0x52, 0xC3, 0xAA, 0x97, 0x23, 0x4E, 0x44, +0xFF, 0xA8, 0x3C, 0x20, 0x0F, 0x55, 0x3C, 0x70, +0x0F, 0xC2, 0x97, 0x93, 0x97, 0x7B, 0xE0, 0xC5, +0xE8, 0x1B, 0x84, 0x41, 0xFE, 0x57, 0xC1, 0x13, +0x3C, 0x50, 0x0F, 0x4C, 0x3C, 0x77, 0xF6, 0x7E, +0x96, 0xEB, 0x9C, 0x79, 0xE0, 0x67, 0x3C, 0x1B, +0xF6, 0x7E, 0xE8, 0x25, 0x86, 0x61, 0x86, 0x80, +0x3F, 0x37, 0xEC, 0xFA, 0x3D, 0x4B, 0xF6, 0x7E, +0x84, 0x01, 0xD5, 0x1D, 0x84, 0x00, 0x3C, 0x0B, +0xF6, 0x7E, 0x84, 0x00, 0xD5, 0x18, 0x54, 0x3A, +0x81, 0x00, 0x4E, 0x32, 0xFF, 0x82, 0x3C, 0x40, +0x10, 0xDB, 0x3C, 0x20, 0x0F, 0xB9, 0x97, 0xA3, +0x97, 0xD3, 0xE0, 0xC7, 0x4E, 0xF2, 0xFF, 0x79, +0x3C, 0x50, 0x10, 0xDC, 0x3C, 0x40, 0x0F, 0xB9, +0x96, 0xEB, 0x97, 0xA3, 0xE0, 0x66, 0x4E, 0xF2, +0xFF, 0x70, 0xD5, 0xD0, 0xFC, 0xE0, 0x84, 0x80, +0x3C, 0x4B, 0xF6, 0x7E, 0x84, 0x00, 0xDD, 0x9E, +0xFC, 0x20, 0x84, 0x20, 0x3C, 0x1B, 0xF9, 0xBA, +0x2E, 0x37, 0xED, 0x24, 0x84, 0xA0, 0x40, 0x21, +0x94, 0x0E, 0x8C, 0xA1, 0x5A, 0x28, 0x01, 0x08, +0x97, 0x68, 0x86, 0x60, 0x86, 0x01, 0x3E, 0x3F, +0xED, 0x24, 0xD5, 0x11, 0x5A, 0x58, 0x08, 0xF5, +0x84, 0xA0, 0xD5, 0xF8, 0x41, 0x28, 0x84, 0x0E, +0x8C, 0x21, 0x5B, 0x28, 0x01, 0x11, 0x97, 0x88, +0x9D, 0x29, 0x4C, 0x43, 0x40, 0x11, 0x8D, 0xE1, +0x8D, 0x81, 0x80, 0xA6, 0xE1, 0x80, 0x3E, 0x4F, +0xED, 0x24, 0xE8, 0x17, 0x39, 0x11, 0xC0, 0x00, +0x84, 0x20, 0xD5, 0xED, 0x5A, 0x18, 0x08, 0xEC, +0x84, 0xC0, 0xD5, 0xEF, 0x9F, 0xEF, 0x4C, 0x73, +0x3F, 0xF0, 0x9E, 0x69, 0x4C, 0x13, 0x00, 0x05, +0x9D, 0x2F, 0x4C, 0x43, 0x40, 0x04, 0x8F, 0xE1, +0xD5, 0xE8, 0xD6, 0xE7, 0x86, 0x60, 0xD5, 0xE5, +0x84, 0x00, 0x80, 0xC0, 0x38, 0x72, 0x18, 0x00, +0x5A, 0x70, 0x01, 0x04, 0x5A, 0x78, 0x80, 0x04, +0x8C, 0x01, 0xD5, 0x02, 0x84, 0x00, 0x8C, 0xC1, +0x5A, 0x68, 0x04, 0xF6, 0xE4, 0x03, 0xE9, 0x06, +0x8D, 0xE5, 0xE7, 0xEB, 0x85, 0x09, 0xE8, 0x0C, +0xD5, 0x0F, 0x5B, 0x30, 0x05, 0x04, 0x5B, 0x3F, +0xFB, 0x04, 0x85, 0x05, 0xD5, 0x05, 0x8D, 0xE5, +0xE7, 0xEB, 0xE9, 0x06, 0x85, 0x0A, 0x3C, 0x8B, +0xF9, 0xBA, 0x84, 0x01, 0xD5, 0x02, 0x84, 0x00, +0xFC, 0xA0, 0xE2, 0x20, 0x3C, 0x20, 0x0F, 0x42, +0xE8, 0x0D, 0x96, 0x90, 0xC2, 0x22, 0x3C, 0x40, +0x0F, 0x42, 0x3C, 0x30, 0x0F, 0x42, 0x97, 0x60, +0x8E, 0xA1, 0x42, 0x02, 0x84, 0x73, 0x96, 0x58, +0xD5, 0x16, 0x96, 0xD3, 0x90, 0x68, 0x4E, 0x37, +0x00, 0x07, 0x3C, 0x40, 0x0F, 0x42, 0x97, 0x63, +0x90, 0xA8, 0xC5, 0x0F, 0x3C, 0x20, 0x0F, 0x42, +0x3C, 0x30, 0x0F, 0x42, 0x97, 0x13, 0x90, 0x88, +0x97, 0x5B, 0x8E, 0x81, 0x42, 0x02, 0x04, 0x73, +0x40, 0x12, 0xA0, 0x0A, 0x40, 0x00, 0x04, 0x16, +0xDD, 0x9E, 0xC0, 0x1B, 0xC1, 0x18, 0x4C, 0x00, +0x80, 0x17, 0x5A, 0x08, 0x01, 0x07, 0x5A, 0x10, +0x0C, 0x18, 0x5A, 0x18, 0x02, 0x15, 0xDD, 0x9E, +0x5A, 0x08, 0x0C, 0x07, 0x5A, 0x10, 0x0B, 0x0E, +0x5A, 0x10, 0x01, 0x0C, 0xD5, 0x0C, 0x9E, 0x81, +0x4C, 0x11, 0x00, 0x08, 0x8C, 0x01, 0x4C, 0x10, +0x00, 0x05, 0xD5, 0x05, 0x84, 0x00, 0xDD, 0x9E, +0x84, 0x01, 0xDD, 0x9E, 0x84, 0x1F, 0xDD, 0x9E, +0x3C, 0x40, 0x05, 0x21, 0x3C, 0x20, 0x05, 0x20, +0x40, 0x52, 0x20, 0x09, 0xE2, 0xA1, 0xE8, 0x03, +0x84, 0x80, 0xD5, 0x1D, 0x97, 0x20, 0xE2, 0x81, +0x40, 0x31, 0x20, 0x09, 0xE8, 0x0B, 0x9A, 0x8C, +0xFE, 0x9C, 0x8A, 0xA4, 0x40, 0x11, 0x14, 0x37, +0x9B, 0x19, 0xE2, 0x64, 0x40, 0x41, 0xBC, 0x1B, +0xD5, 0x0E, 0x96, 0x90, 0x9B, 0x53, 0xFE, 0x6C, +0x40, 0x10, 0x90, 0x37, 0x9B, 0x11, 0xE2, 0x83, +0xE8, 0x03, 0xB6, 0x60, 0xDD, 0x9E, 0xE2, 0x44, +0x40, 0x41, 0x3C, 0x1B, 0xB6, 0x80, 0xDD, 0x9E, +0xFC, 0x01, 0x96, 0x8B, 0x96, 0xC3, 0x90, 0x30, +0x90, 0x10, 0x8A, 0x43, 0x8A, 0x20, 0x4E, 0x25, +0x00, 0x06, 0x84, 0xC0, 0x4E, 0x14, 0x00, 0x06, +0xD5, 0x07, 0x4E, 0x15, 0x00, 0x45, 0x84, 0xC3, +0xC9, 0x0D, 0xCA, 0x05, 0xD5, 0x09, 0x84, 0xC1, +0xC2, 0x3C, 0xC9, 0x09, 0xE4, 0xC2, 0x84, 0x04, +0xE9, 0x3C, 0x84, 0x0A, 0xD5, 0x3A, 0x80, 0x02, +0xD5, 0x38, 0xC2, 0x16, 0x44, 0x00, 0x00, 0x64, +0xFE, 0x14, 0x40, 0x10, 0x04, 0x36, 0xFE, 0x4C, +0x50, 0x00, 0xA7, 0x10, 0x49, 0xFF, 0xF2, 0x7E, +0xC0, 0x2C, 0x44, 0x41, 0x86, 0xA0, 0x40, 0x52, +0x00, 0xB6, 0x5E, 0xF2, 0x81, 0x03, 0xE9, 0xE7, +0x5E, 0xF2, 0x83, 0xC5, 0xE9, 0x05, 0xC6, 0x1B, +0x5A, 0x68, 0x03, 0x1C, 0xD5, 0x18, 0x5E, 0xF2, +0x82, 0xC3, 0xE9, 0x0B, 0x84, 0x02, 0xC6, 0x19, +0x84, 0x06, 0x5A, 0x60, 0x01, 0x17, 0x84, 0x0C, +0x5A, 0x68, 0x02, 0x14, 0x84, 0x08, 0xD5, 0x11, +0x84, 0x03, 0xC6, 0x0F, 0x84, 0x05, 0x5A, 0x60, +0x01, 0x0D, 0x84, 0x0B, 0x5A, 0x68, 0x02, 0x0A, +0x84, 0x09, 0xD5, 0x07, 0x84, 0x01, 0xD5, 0x05, +0x84, 0x07, 0xD5, 0x03, 0x84, 0xC2, 0xD5, 0xC2, +0xFC, 0x81, 0x3D, 0x40, 0x0E, 0x5D, 0x3E, 0x08, +0x16, 0x38, 0x86, 0x00, 0x3E, 0x4F, 0xE6, 0xFC, +0xE1, 0x94, 0xE8, 0x09, 0x39, 0x52, 0x41, 0x01, +0xA5, 0x40, 0x8D, 0x81, 0x88, 0xB5, 0x1A, 0x50, +0x00, 0x01, 0xD5, 0xF7, 0x3D, 0x10, 0x0E, 0x60, +0x3E, 0x08, 0x1B, 0xB8, 0x86, 0x00, 0x3E, 0x1F, +0xE6, 0xFC, 0xE1, 0x91, 0xE8, 0x0B, 0x41, 0x20, +0xC0, 0x20, 0xA4, 0xC0, 0x03, 0x39, 0x02, 0xC0, +0x8D, 0x81, 0x88, 0x73, 0x1A, 0x30, 0x00, 0x01, +0xD5, 0xF5, 0x3C, 0x30, 0x0E, 0x61, 0x3E, 0x18, +0x1B, 0xF8, 0x84, 0x00, 0x3E, 0x4F, 0xE6, 0xFC, +0xE0, 0x03, 0xE8, 0x0B, 0x40, 0x22, 0x00, 0x20, +0x02, 0x51, 0x02, 0xE0, 0xA4, 0x88, 0x8C, 0x01, +0x88, 0x45, 0x1A, 0x20, 0x80, 0x01, 0xD5, 0xF5, +0xDD, 0x9E, 0xFC, 0x20, 0x3C, 0x10, 0x0E, 0x61, +0x84, 0xA0, 0x3E, 0x28, 0x1B, 0xF8, 0x94, 0x49, +0x3E, 0x6F, 0xE6, 0xFC, 0x3E, 0x48, 0x03, 0x4C, +0x82, 0x85, 0xD1, 0x14, 0x98, 0xEE, 0xA4, 0x10, +0x03, 0x51, 0x82, 0xE0, 0x8A, 0x15, 0x97, 0xC3, +0x1A, 0x71, 0x00, 0x01, 0x4E, 0x77, 0x00, 0x06, +0x98, 0x25, 0x12, 0x70, 0x02, 0xE0, 0xD5, 0x04, +0x98, 0xE5, 0x13, 0x41, 0x82, 0xE0, 0x8C, 0xA2, +0xD5, 0xED, 0x3C, 0x00, 0x0E, 0x60, 0x84, 0xA0, +0x3E, 0x28, 0x1B, 0xB8, 0x94, 0x41, 0x3E, 0x6F, +0xE6, 0xFC, 0x3E, 0x48, 0x03, 0x4C, 0x82, 0x45, +0xD1, 0x14, 0x98, 0xEE, 0xA5, 0xD0, 0x03, 0x31, +0x82, 0xC0, 0x8A, 0xF3, 0x96, 0x3B, 0x1A, 0x01, +0x00, 0x01, 0x4E, 0x07, 0x00, 0x06, 0x99, 0xE5, +0x12, 0x03, 0x82, 0xC0, 0xD5, 0x04, 0x98, 0xE5, +0x13, 0x21, 0x82, 0xC0, 0x8C, 0xA2, 0xD5, 0xED, +0x85, 0x00, 0x3C, 0x6C, 0x02, 0x79, 0x3E, 0x28, +0x16, 0x38, 0x3E, 0x7F, 0xE6, 0xFC, 0x3E, 0x38, +0x03, 0x4C, 0x80, 0x88, 0x3C, 0x50, 0x0E, 0x5D, +0xE1, 0x05, 0xE8, 0x17, 0xA4, 0x50, 0x39, 0x03, +0xA1, 0x01, 0x41, 0x13, 0x20, 0x20, 0x8A, 0x30, +0x96, 0x0B, 0x1A, 0x01, 0x00, 0x01, 0x4E, 0x05, +0x00, 0x07, 0x12, 0x08, 0x80, 0x00, 0x38, 0x01, +0xA1, 0x09, 0xD5, 0x05, 0x12, 0x48, 0x80, 0x00, +0x38, 0x41, 0xA1, 0x09, 0x8D, 0x01, 0xD5, 0xE7, +0xFC, 0xA0, 0xFC, 0x68, 0x3C, 0x20, 0x0F, 0x93, +0x96, 0xD4, 0xC3, 0x08, 0x2E, 0x47, 0xE1, 0x5D, +0x5A, 0x48, 0x02, 0x05, 0x84, 0xA0, 0x3C, 0x58, +0x05, 0x20, 0x44, 0x60, 0x00, 0x5C, 0x42, 0x70, +0x18, 0x24, 0x3E, 0x2F, 0xE1, 0x98, 0x40, 0xB1, +0x1C, 0x00, 0x00, 0x35, 0x80, 0x20, 0x50, 0x85, +0x80, 0x20, 0x81, 0x22, 0xCB, 0x21, 0x51, 0x01, +0x00, 0x40, 0x50, 0x91, 0x00, 0x28, 0x89, 0x87, +0x50, 0x61, 0x00, 0x48, 0x3B, 0x08, 0x44, 0x00, +0x50, 0x01, 0x00, 0x30, 0x89, 0x27, 0x98, 0xB7, +0x3B, 0x04, 0xC4, 0x20, 0x88, 0x07, 0x3B, 0x01, +0x44, 0x00, 0x2E, 0x50, 0x0A, 0x40, 0x86, 0x81, +0x3B, 0x00, 0x44, 0x20, 0x12, 0x54, 0x00, 0x01, +0x12, 0x35, 0x80, 0x1C, 0x11, 0x45, 0x80, 0x20, +0x14, 0x35, 0x80, 0x0F, 0xD5, 0x2E, 0x3C, 0x40, +0x05, 0x21, 0xC4, 0x04, 0x3C, 0x50, 0x05, 0x20, +0xCD, 0x2B, 0x44, 0x30, 0x00, 0x5C, 0x3E, 0x7F, +0xE1, 0xC8, 0xFE, 0x1C, 0x50, 0xA3, 0x80, 0x18, +0x50, 0x23, 0xFF, 0xF8, 0x50, 0x53, 0x80, 0x10, +0x99, 0xB8, 0x89, 0x40, 0x88, 0xA0, 0x88, 0x40, +0x88, 0x09, 0x22, 0x10, 0x00, 0x00, 0x3B, 0x05, +0x44, 0x00, 0x44, 0x70, 0x00, 0x64, 0x3B, 0x03, +0x44, 0x20, 0xFE, 0x7C, 0x3B, 0x02, 0xC4, 0x00, +0x83, 0x80, 0x3B, 0x01, 0x44, 0x20, 0xB9, 0x90, +0x22, 0x40, 0x00, 0x01, 0xFF, 0xE4, 0xBF, 0x91, +0x3B, 0x02, 0xC4, 0x00, 0x3B, 0x05, 0x44, 0x20, +0x84, 0x01, 0x48, 0x00, 0x02, 0xA5, 0x05, 0x35, +0x80, 0x12, 0x44, 0x30, 0x00, 0x64, 0x40, 0x89, +0x8D, 0x16, 0x22, 0xD5, 0x80, 0x00, 0x50, 0xA5, +0x80, 0x48, 0x4C, 0x86, 0xC0, 0x28, 0x04, 0x65, +0x00, 0x01, 0x22, 0xC5, 0x80, 0x01, 0x40, 0x43, +0x0C, 0x96, 0x4C, 0x46, 0x40, 0x20, 0x51, 0x31, +0x00, 0x40, 0x89, 0xE7, 0x42, 0x84, 0x0C, 0x24, +0x51, 0x21, 0x00, 0x28, 0xFE, 0xE4, 0x3B, 0x09, +0xC4, 0x00, 0x89, 0xC7, 0x3B, 0x09, 0x44, 0x20, +0x50, 0xC4, 0x00, 0x32, 0x51, 0x11, 0x80, 0x32, +0x14, 0xC5, 0x80, 0x10, 0x15, 0x15, 0x80, 0x11, +0x50, 0xB1, 0x00, 0x48, 0x89, 0x67, 0x3B, 0x09, +0xC4, 0x00, 0x3B, 0x05, 0xC4, 0x20, 0x48, 0x00, +0x00, 0xB6, 0x80, 0xE0, 0x44, 0x00, 0x00, 0x5C, +0x43, 0xC3, 0x80, 0x24, 0x80, 0xC1, 0x40, 0xE4, +0xF0, 0x00, 0x04, 0x27, 0x00, 0x10, 0x04, 0x57, +0x00, 0x11, 0x05, 0x07, 0x00, 0x0B, 0x04, 0x17, +0x00, 0x0A, 0x44, 0xC0, 0x00, 0x64, 0x40, 0xF0, +0xB1, 0xF6, 0x41, 0x21, 0x32, 0x56, 0x41, 0x42, +0xB2, 0x96, 0x41, 0x18, 0x32, 0x36, 0xB4, 0x2E, +0x04, 0x07, 0x00, 0x01, 0x12, 0xFF, 0x80, 0x1A, +0xF2, 0x88, 0xF5, 0x87, 0x15, 0x3F, 0x80, 0x09, +0x13, 0x1F, 0x80, 0x1B, 0x13, 0x2F, 0x80, 0x18, +0x13, 0x4F, 0x80, 0x19, 0x49, 0xFF, 0xF0, 0xE1, +0xB6, 0x1F, 0x04, 0x17, 0x00, 0x01, 0xF0, 0x0C, +0x49, 0xFF, 0xF0, 0xDB, 0xF0, 0x81, 0xB4, 0x2E, +0xF0, 0x0C, 0x49, 0xFF, 0xF0, 0xD6, 0xF0, 0x82, +0xF1, 0x0D, 0xF0, 0x0C, 0x49, 0xFF, 0xF0, 0xD1, +0xF0, 0x83, 0x51, 0x5E, 0x00, 0x48, 0xF0, 0x0D, +0xF1, 0x0C, 0x40, 0xA4, 0xD4, 0x00, 0x83, 0x8E, +0x49, 0xFF, 0xFE, 0x30, 0xF0, 0x84, 0x0C, 0x1E, +0x00, 0x0C, 0xF0, 0x0C, 0x49, 0xFF, 0xFE, 0x2A, +0xF0, 0x85, 0xF1, 0x05, 0xF0, 0x04, 0x49, 0xFF, +0xFD, 0xDE, 0x05, 0x67, 0x00, 0x0C, 0x04, 0xB5, +0x00, 0x01, 0x40, 0x3B, 0x30, 0x76, 0xF0, 0x84, +0xB8, 0x01, 0x97, 0x1B, 0x41, 0x70, 0x32, 0xF6, +0x41, 0xC5, 0xB3, 0x96, 0x12, 0x4F, 0x80, 0x1A, +0xF4, 0x86, 0x13, 0x7F, 0x80, 0x1B, 0x12, 0x8F, +0x80, 0x18, 0x13, 0xCF, 0x80, 0x19, 0xF1, 0x0C, +0xF0, 0x0D, 0x49, 0xFF, 0xFE, 0x0B, 0xF0, 0x85, +0xB4, 0x2E, 0xF0, 0x0C, 0x49, 0xFF, 0xFE, 0x06, +0x81, 0xC0, 0x80, 0x2E, 0xF0, 0x05, 0x49, 0xFF, +0xFD, 0xBA, 0x3C, 0x10, 0x0E, 0xD7, 0xB4, 0x5F, +0x97, 0x4B, 0xE0, 0x45, 0xF3, 0x06, 0xF2, 0x07, +0xF5, 0x08, 0x05, 0x8F, 0x80, 0x09, 0xE8, 0x6C, +0x3C, 0x40, 0x0E, 0xD7, 0x96, 0x63, 0xF4, 0x01, +0xE0, 0x81, 0xE8, 0x66, 0x3C, 0x10, 0x0E, 0xD7, +0xF4, 0x02, 0x96, 0x4B, 0xE0, 0x81, 0xE8, 0x60, +0x3C, 0x10, 0x0E, 0xD7, 0xF4, 0x03, 0x96, 0x4B, +0xE0, 0x81, 0xE8, 0x5A, 0x41, 0x95, 0x88, 0x01, +0x41, 0xEC, 0x14, 0x01, 0x43, 0x3F, 0x00, 0x03, +0x43, 0x0C, 0x80, 0x03, 0x3C, 0x10, 0x0E, 0xD7, +0x89, 0xF0, 0x41, 0x19, 0xB2, 0x36, 0x97, 0x0B, +0xE1, 0xA4, 0xE8, 0x4A, 0x5A, 0x07, 0xFF, 0x06, +0xF2, 0x04, 0x85, 0x80, 0x5A, 0x2F, 0xFF, 0x48, +0xC6, 0x10, 0x44, 0x10, 0x00, 0x5C, 0xFF, 0xCC, +0x3E, 0x5F, 0xE1, 0xC8, 0x99, 0x2F, 0x8C, 0xB8, +0x88, 0xE5, 0x3B, 0x03, 0xC4, 0x00, 0x3B, 0x02, +0x44, 0x20, 0x84, 0x00, 0x48, 0x00, 0x01, 0xBC, +0x44, 0x20, 0x00, 0x5C, 0xFE, 0xBC, 0x3E, 0x5F, +0xE1, 0xC0, 0x41, 0x24, 0x88, 0x00, 0x41, 0x62, +0x88, 0x00, 0x22, 0x49, 0x00, 0x01, 0x8C, 0xB8, +0x44, 0x10, 0x00, 0x64, 0x88, 0x45, 0x3C, 0x50, +0x0E, 0xD6, 0x3B, 0x01, 0x44, 0x00, 0xFF, 0x0C, +0x22, 0x29, 0x00, 0x1C, 0x42, 0x84, 0x04, 0x24, +0x43, 0x5E, 0x04, 0x24, 0x14, 0x49, 0x00, 0x11, +0x97, 0x2B, 0x42, 0xD6, 0x84, 0x24, 0x51, 0x44, +0x00, 0x32, 0x50, 0xBA, 0x80, 0x32, 0x9C, 0x51, +0xE0, 0x44, 0x15, 0x49, 0x00, 0x12, 0x14, 0xB9, +0x00, 0x13, 0x3B, 0x0B, 0x44, 0x20, 0x14, 0xD9, +0x00, 0x10, 0x12, 0x19, 0x00, 0x1C, 0x85, 0x81, +0xE8, 0x06, 0x48, 0x00, 0x01, 0x81, 0x4E, 0x63, +0x01, 0x81, 0x81, 0x86, 0x44, 0x20, 0x00, 0x5C, +0xFE, 0xBC, 0x3E, 0x1F, 0xE1, 0xC0, 0x51, 0x80, +0x80, 0x18, 0x3D, 0x90, 0x05, 0x06, 0x41, 0x74, +0x88, 0x00, 0x99, 0x4A, 0x88, 0x58, 0x87, 0x80, +0x3B, 0x01, 0x44, 0x00, 0x54, 0x4C, 0x90, 0x00, +0x13, 0xCB, 0x80, 0x1C, 0x3B, 0x02, 0xC4, 0x20, +0x81, 0x78, 0xC4, 0x5D, 0x3C, 0x23, 0xF6, 0x81, +0xC2, 0x5A, 0x2E, 0x17, 0xED, 0x12, 0xC9, 0x57, +0xC8, 0x56, 0x5A, 0xE0, 0x01, 0x08, 0x5A, 0xE0, +0x04, 0x06, 0x5A, 0xE0, 0x07, 0x04, 0x5A, 0xE8, +0x0A, 0x4F, 0x45, 0x90, 0x00, 0x5C, 0x81, 0xA9, +0x42, 0xD3, 0xE4, 0x73, 0x44, 0xE0, 0x00, 0x64, +0x05, 0xE6, 0x80, 0x12, 0x51, 0xC6, 0x80, 0x48, +0x40, 0x4F, 0x38, 0x96, 0xB9, 0x01, 0x96, 0x23, +0x40, 0x20, 0xB8, 0x56, 0x8A, 0x60, 0x97, 0x53, +0x42, 0x11, 0x80, 0x03, 0xB0, 0x0E, 0x50, 0xC6, +0x80, 0x20, 0xB6, 0xBF, 0x49, 0xFF, 0xFD, 0x1E, +0x02, 0x16, 0x00, 0x01, 0xF0, 0x0E, 0x49, 0xFF, +0xFC, 0xD2, 0x23, 0x06, 0x80, 0x00, 0x04, 0x16, +0x80, 0x12, 0x43, 0x18, 0x38, 0x24, 0x53, 0x20, +0x00, 0x20, 0xB4, 0x5F, 0xF0, 0x8E, 0x23, 0x36, +0x80, 0x01, 0xFE, 0x0C, 0x42, 0x08, 0xC8, 0x73, +0x8B, 0xE2, 0x42, 0x19, 0x80, 0x03, 0x40, 0x80, +0x14, 0x09, 0xB0, 0x0F, 0x49, 0xFF, 0xFD, 0x02, +0x02, 0x16, 0x00, 0x01, 0xF0, 0x0F, 0x49, 0xFF, +0xFC, 0xB6, 0x23, 0x46, 0x80, 0x01, 0xB9, 0x01, +0x43, 0x5A, 0x38, 0x24, 0xF5, 0x0E, 0x53, 0x60, +0x00, 0x20, 0xFE, 0x44, 0x42, 0x1A, 0xD8, 0x73, +0x88, 0x05, 0x92, 0x01, 0x92, 0x25, 0xF0, 0x8B, +0x48, 0x00, 0x00, 0xB8, 0x44, 0x00, 0x00, 0x5C, +0x83, 0xC9, 0x43, 0xE3, 0x80, 0x73, 0x45, 0x10, +0x00, 0x64, 0x05, 0x0F, 0x00, 0x12, 0x04, 0xEF, +0x00, 0x13, 0x40, 0x38, 0x44, 0x76, 0x41, 0x27, +0x46, 0x56, 0x12, 0x3F, 0x80, 0x18, 0x13, 0x2F, +0x80, 0x19, 0xF1, 0x0C, 0xB4, 0x1E, 0x49, 0xFF, +0xEF, 0x94, 0xB6, 0x1F, 0xB4, 0x3F, 0xB0, 0x0B, +0x49, 0xFF, 0xFC, 0xD0, 0x5A, 0x68, 0x01, 0x08, +0x3C, 0x50, 0x0F, 0xEB, 0xF2, 0x0B, 0x97, 0x2B, +0xFF, 0x14, 0xF4, 0x8B, 0x4E, 0xC2, 0x00, 0x04, +0xFA, 0x0F, 0xD5, 0x06, 0x2E, 0x00, 0x0A, 0x40, +0xF1, 0x0B, 0xE2, 0x01, 0xE8, 0x02, 0xF0, 0x8B, +0x2E, 0x37, 0xE1, 0x62, 0xC3, 0x19, 0x3C, 0x50, +0x10, 0x9C, 0x97, 0x2B, 0x90, 0x88, 0x4E, 0x47, +0x00, 0x14, 0x3C, 0x20, 0x10, 0x9C, 0x96, 0x13, +0x4E, 0x07, 0x00, 0x0F, 0x3C, 0x10, 0x10, 0x9C, +0xF2, 0x0B, 0x96, 0xCB, 0x3C, 0x50, 0x10, 0x9C, +0x40, 0x41, 0xA0, 0x0A, 0xFE, 0xA4, 0x96, 0x28, +0x40, 0x11, 0x00, 0x37, 0xF1, 0x8B, 0x44, 0xC0, +0x00, 0x5C, 0x81, 0x09, 0x42, 0x83, 0xB0, 0x73, +0xF0, 0x0B, 0x02, 0x14, 0x00, 0x11, 0x49, 0xFF, +0xFC, 0x52, 0x3D, 0x40, 0x10, 0xF4, 0xF0, 0x8B, +0x5B, 0x48, 0x02, 0x18, 0x3C, 0x30, 0x11, 0x0D, +0x97, 0x5B, 0x90, 0xA8, 0x4E, 0x57, 0x00, 0x37, +0x3C, 0x40, 0x11, 0x0D, 0x96, 0xA3, 0x4E, 0x27, +0x00, 0x32, 0x3C, 0x10, 0x11, 0x0D, 0x3C, 0x50, +0x11, 0x0D, 0x96, 0xCB, 0x90, 0x68, 0xFE, 0x1C, +0x97, 0x28, 0x40, 0x10, 0x10, 0x37, 0xD5, 0x25, +0x3D, 0x50, 0x10, 0xF4, 0x5B, 0x50, 0x01, 0x06, +0x3D, 0x60, 0x10, 0xF4, 0x5B, 0x68, 0x03, 0x1F, +0x3C, 0x30, 0x10, 0xFF, 0x97, 0x5B, 0x90, 0xA8, +0x4E, 0x57, 0x00, 0x12, 0x3C, 0x40, 0x10, 0xFF, +0x96, 0xA3, 0x4E, 0x27, 0x00, 0x0D, 0x3C, 0x10, +0x10, 0xFF, 0x3C, 0x50, 0x10, 0xFF, 0x96, 0xCB, +0x90, 0x68, 0xFE, 0x1C, 0x97, 0x28, 0x40, 0x00, +0x10, 0x17, 0xF0, 0x8B, 0x2F, 0x38, 0x03, 0x23, +0xE5, 0xE2, 0xE9, 0x04, 0xF2, 0x0B, 0x94, 0x51, +0xF1, 0x8B, 0xF0, 0x0B, 0x5C, 0xF0, 0x00, 0x20, +0xE9, 0x03, 0xFA, 0x4F, 0xF2, 0x8B, 0x44, 0xD0, +0x00, 0x5C, 0x82, 0xE9, 0x43, 0x73, 0xB4, 0x73, +0xF1, 0x0B, 0x83, 0x97, 0x2A, 0x3E, 0x00, 0x24, +0x22, 0x4B, 0x80, 0x01, 0x52, 0x20, 0x80, 0x20, +0x04, 0x5B, 0x80, 0x12, 0xB8, 0x01, 0xFE, 0xD4, +0xFE, 0xA4, 0x45, 0x80, 0x00, 0x64, 0xFF, 0x4C, +0xFE, 0x44, 0x42, 0x51, 0xE0, 0x73, 0x42, 0x11, +0x60, 0x73, 0x40, 0x82, 0x94, 0x09, 0x92, 0x25, +0x44, 0x30, 0x00, 0x5C, 0xFE, 0xFC, 0xF4, 0x0B, +0x50, 0x01, 0x80, 0x40, 0x88, 0x09, 0x40, 0xF4, +0x8C, 0x00, 0x12, 0x47, 0x80, 0x11, 0xB7, 0x00, +0xA8, 0x41, 0xB4, 0xAA, 0x04, 0x25, 0x00, 0x01, +0xCE, 0x15, 0x9B, 0x91, 0x40, 0xA2, 0xA0, 0x01, +0x43, 0x75, 0x00, 0x03, 0x43, 0x03, 0x00, 0x03, +0x51, 0x97, 0x80, 0x38, 0x89, 0x97, 0x45, 0x80, +0x00, 0x64, 0x40, 0x48, 0x60, 0x96, 0x04, 0x3C, +0x80, 0x01, 0xE0, 0x64, 0xE8, 0x03, 0x14, 0x4C, +0x80, 0x01, 0x44, 0xD0, 0x00, 0x5C, 0x42, 0x93, +0xB4, 0x73, 0x45, 0xE0, 0x00, 0x64, 0x04, 0xE4, +0x80, 0x12, 0x40, 0x04, 0x78, 0x16, 0x40, 0x57, +0x78, 0xB6, 0x51, 0xC4, 0x80, 0x48, 0x3E, 0x2F, +0xE1, 0xE0, 0xD8, 0x08, 0xBE, 0x01, 0x40, 0x10, +0xF8, 0x36, 0x40, 0x53, 0x78, 0xB6, 0x84, 0xC1, +0xD1, 0x0D, 0x44, 0x40, 0x00, 0x5C, 0xFF, 0x3C, +0x3E, 0x3F, 0xE1, 0xC8, 0x88, 0x64, 0x88, 0x82, +0x3B, 0x02, 0x44, 0x00, 0x3B, 0x01, 0xC4, 0x20, +0x84, 0xC0, 0x44, 0x00, 0x00, 0x5C, 0xFF, 0xC4, +0x89, 0x67, 0x88, 0x47, 0x3B, 0x05, 0xC4, 0x00, +0x3B, 0x01, 0x44, 0x20, 0x80, 0x06, 0xD5, 0x07, +0x5A, 0x07, 0xFF, 0x04, 0x48, 0xFF, 0xFE, 0x36, +0x48, 0xFF, 0xFE, 0x39, 0xFC, 0xE8, 0x3C, 0x10, +0x0F, 0x24, 0x84, 0x00, 0x3C, 0x0B, 0xF0, 0xBA, +0x96, 0x0B, 0x4E, 0x02, 0x00, 0x92, 0x3C, 0x20, +0x0F, 0x64, 0x96, 0xD3, 0x4E, 0x34, 0x00, 0x8B, +0xFC, 0x60, 0x3E, 0x78, 0x03, 0x4C, 0x44, 0xA0, +0x00, 0xB6, 0x84, 0xC0, 0x81, 0x27, 0x3E, 0xB8, +0x1C, 0xE8, 0x3C, 0x40, 0x0F, 0x24, 0x50, 0x15, +0x7F, 0x4A, 0x97, 0x63, 0xE0, 0x25, 0xE8, 0x78, +0x2E, 0x08, 0x03, 0x23, 0xC8, 0x6D, 0x3C, 0x20, +0x0F, 0x27, 0xCA, 0x3F, 0x3D, 0x50, 0x0E, 0xD9, +0x5B, 0x50, 0x01, 0x06, 0x3D, 0x60, 0x0E, 0xD9, +0x5B, 0x68, 0x02, 0x07, 0x3C, 0x40, 0x0F, 0x28, +0x96, 0xA3, 0x88, 0x41, 0xD5, 0x04, 0x3C, 0x00, +0x0F, 0x28, 0x96, 0x83, 0x51, 0x71, 0x02, 0xC0, +0x38, 0x83, 0xDD, 0x11, 0x3D, 0x80, 0x05, 0x2C, +0xE1, 0x18, 0xE9, 0x52, 0x84, 0x00, 0x3D, 0x90, +0x0E, 0x5F, 0x80, 0x40, 0x82, 0x40, 0x3C, 0x30, +0x0F, 0x29, 0x96, 0xDB, 0xE1, 0xC3, 0xE8, 0x4A, +0x38, 0x45, 0xA9, 0x01, 0x88, 0x92, 0xE0, 0x99, +0xE8, 0x45, 0x3D, 0xC0, 0x0E, 0xD9, 0x5B, 0xC0, +0x01, 0x06, 0x3D, 0xE0, 0x0E, 0xD9, 0x5B, 0xE8, +0x02, 0x05, 0x3C, 0x50, 0x0F, 0xD8, 0x97, 0x2B, +0x50, 0xC2, 0x02, 0xE0, 0x38, 0x33, 0xB1, 0x11, +0xE0, 0x78, 0xE9, 0x05, 0xE0, 0x43, 0xE8, 0x02, +0x96, 0x99, 0x84, 0x01, 0x8D, 0xC1, 0xD5, 0xE0, +0x3C, 0x80, 0x0F, 0x27, 0x5A, 0x88, 0x01, 0x2A, +0x3C, 0x30, 0x0F, 0x28, 0x3C, 0xD0, 0x05, 0x2C, +0x97, 0x1B, 0x50, 0xC2, 0x02, 0xE0, 0x39, 0x03, +0xB1, 0x11, 0xE1, 0x8D, 0xE9, 0x1E, 0x3C, 0xE0, +0x0E, 0x5E, 0x3D, 0x20, 0x05, 0x10, 0x80, 0x40, +0x82, 0x20, 0x3C, 0x30, 0x0F, 0x29, 0x96, 0xDB, +0xE1, 0xA3, 0xE8, 0x14, 0x39, 0x35, 0xA9, 0x01, +0x89, 0xF1, 0xE1, 0xEE, 0xE8, 0x0F, 0x51, 0x49, +0x82, 0xC0, 0x38, 0x54, 0xD1, 0x11, 0xE0, 0xB2, +0xE9, 0x05, 0xE0, 0x45, 0xE8, 0x02, 0x96, 0xA9, +0x84, 0x01, 0x8D, 0xA1, 0xD5, 0xEB, 0x84, 0x00, +0x80, 0x40, 0x49, 0x00, 0x26, 0x57, 0xFE, 0x37, +0x97, 0x80, 0x8D, 0x41, 0xD5, 0x83, 0x80, 0x06, +0xFC, 0xE0, 0x84, 0x00, 0xDD, 0x9E, 0xDD, 0x9E, +0xFC, 0x61, 0x3E, 0x5F, 0xFF, 0x08, 0x2F, 0x88, +0x03, 0x23, 0x3A, 0x0F, 0x84, 0x20, 0x44, 0x00, +0x00, 0x38, 0x80, 0x25, 0x42, 0x1C, 0x00, 0x73, +0x20, 0x7F, 0x80, 0x00, 0x44, 0x4F, 0x80, 0x00, +0x51, 0x10, 0x80, 0x10, 0x44, 0x80, 0x7F, 0xFF, +0x97, 0xF9, 0x14, 0x48, 0x80, 0x01, 0x81, 0xDF, +0x20, 0x9F, 0x80, 0x01, 0x20, 0x6F, 0x80, 0x02, +0x21, 0x3F, 0x80, 0x03, 0x14, 0x80, 0x80, 0x08, +0x80, 0x87, 0x86, 0x40, 0x3E, 0xC8, 0x03, 0x4C, +0x50, 0xD0, 0x80, 0x20, 0xE1, 0x24, 0xE9, 0x15, +0x51, 0x42, 0x02, 0xC0, 0x38, 0x16, 0x51, 0x11, +0x4E, 0x17, 0x00, 0x03, 0x89, 0xC1, 0x04, 0xA8, +0x80, 0x01, 0xE1, 0x41, 0xE8, 0x03, 0x14, 0x18, +0x80, 0x01, 0xB5, 0x0D, 0xE0, 0x28, 0xE8, 0x02, +0xB6, 0x2D, 0x8C, 0x81, 0x97, 0x21, 0xD5, 0xEB, +0x44, 0xB0, 0x00, 0x38, 0x81, 0xA5, 0x42, 0xDC, +0x2C, 0x73, 0x97, 0xB1, 0x80, 0x06, 0x86, 0x20, +0x3F, 0xE8, 0x03, 0x4C, 0x51, 0xC6, 0x80, 0x10, +0x51, 0x96, 0x80, 0x20, 0xE1, 0xE0, 0xE9, 0x14, +0x50, 0x10, 0x02, 0xE0, 0x38, 0x4F, 0x05, 0x11, +0x4E, 0x47, 0x00, 0x03, 0x89, 0xA4, 0x04, 0xBE, +0x00, 0x01, 0xE1, 0x64, 0xE8, 0x02, 0xBC, 0x81, +0xB5, 0x99, 0xE0, 0x90, 0xE8, 0x02, 0xB6, 0x99, +0x8C, 0x01, 0x96, 0x01, 0xD5, 0xEC, 0x44, 0xC0, +0x00, 0x38, 0x42, 0x4C, 0x30, 0x24, 0x3E, 0x1F, +0xFF, 0x14, 0x3B, 0x07, 0x40, 0x04, 0x88, 0x24, +0x3B, 0x00, 0xC0, 0x24, 0x02, 0x07, 0x00, 0x00, +0x41, 0x58, 0xC8, 0x00, 0x45, 0x60, 0x7F, 0xFF, +0xAC, 0x08, 0x88, 0x85, 0x42, 0x1A, 0xD8, 0x01, +0xAC, 0x64, 0x51, 0x52, 0x00, 0x20, 0x84, 0x20, +0x14, 0x1A, 0x80, 0x01, 0x3F, 0x68, 0x03, 0x4C, +0xE1, 0x27, 0xE9, 0x12, 0x51, 0x73, 0x82, 0xC0, +0x38, 0x0B, 0x5D, 0x11, 0x8C, 0xE1, 0x4E, 0x07, +0x00, 0x04, 0x42, 0x10, 0x1C, 0x73, 0x04, 0x8A, +0x80, 0x01, 0xE1, 0x00, 0xE8, 0x03, 0x14, 0x0A, +0x80, 0x01, 0x97, 0xF9, 0xD5, 0xEE, 0x44, 0xA0, +0x00, 0x38, 0x82, 0xE5, 0x43, 0x7C, 0x28, 0x73, +0x87, 0x00, 0x15, 0x8B, 0x80, 0x0A, 0x3F, 0x08, +0x03, 0x4C, 0x50, 0xEB, 0x80, 0x28, 0xE1, 0xE6, +0xE9, 0x10, 0x51, 0x43, 0x02, 0xE0, 0x38, 0x48, +0x51, 0x11, 0x8C, 0xC1, 0x4E, 0x47, 0x00, 0x04, +0x43, 0x82, 0x18, 0x73, 0xB5, 0x4E, 0xE1, 0x44, +0xE8, 0x02, 0xB6, 0x8E, 0x97, 0xB1, 0xD5, 0xF0, +0x4F, 0x22, 0x00, 0x09, 0x4F, 0x13, 0x00, 0x0B, +0x83, 0x11, 0x80, 0x31, 0x86, 0x21, 0x82, 0x51, +0xD5, 0x05, 0x83, 0x12, 0x80, 0x32, 0x86, 0x41, +0x82, 0x32, 0x44, 0x60, 0x00, 0x64, 0xFE, 0x74, +0x43, 0xCC, 0x18, 0x24, 0x40, 0x90, 0xC9, 0x37, +0x41, 0xEE, 0x47, 0xD7, 0x50, 0x04, 0xFF, 0x9C, +0x51, 0x34, 0x80, 0x32, 0x50, 0x8F, 0x00, 0x32, +0x40, 0x79, 0x98, 0xF6, 0x94, 0x47, 0x40, 0x04, +0x18, 0x16, 0x41, 0x90, 0x9B, 0x36, 0x8E, 0xE1, +0x8E, 0x01, 0x97, 0x39, 0x96, 0x41, 0x50, 0x7C, +0x80, 0x40, 0xAD, 0x18, 0xAD, 0xD0, 0xAC, 0x59, +0x50, 0x3F, 0x7F, 0x9C, 0x95, 0xDF, 0x40, 0xB3, +0x99, 0x76, 0x50, 0x65, 0x80, 0x40, 0xAD, 0x91, +0x2E, 0x28, 0x03, 0x23, 0x44, 0xD0, 0x00, 0x38, +0x3C, 0xC0, 0x0E, 0x5F, 0x42, 0x51, 0x34, 0x73, +0x42, 0x12, 0x30, 0x73, 0xAC, 0x6D, 0xFC, 0xE1, +0xFC, 0x21, 0x3A, 0x0F, 0x84, 0x20, 0x80, 0x3F, +0x3B, 0x00, 0xC0, 0x04, 0x80, 0x02, 0x3B, 0x00, +0x40, 0x24, 0xA5, 0x48, 0xAD, 0x40, 0x3E, 0x58, +0x03, 0x4C, 0x40, 0x72, 0x8C, 0x20, 0x23, 0x03, +0x82, 0xF6, 0xFB, 0x0E, 0x42, 0xF8, 0x20, 0x24, +0x45, 0x10, 0x00, 0x64, 0x40, 0x17, 0xC4, 0x36, +0x80, 0xDF, 0x96, 0x4B, 0x21, 0x2F, 0x80, 0x00, +0x84, 0xE1, 0x9A, 0x1F, 0xE0, 0x12, 0xE9, 0x0E, +0x41, 0x32, 0x80, 0x20, 0x22, 0x89, 0x82, 0xF6, +0xE1, 0x01, 0xE9, 0x06, 0x5A, 0x70, 0x05, 0x05, +0xE1, 0x88, 0x8C, 0xE1, 0xE8, 0xF3, 0x8C, 0x01, +0xAE, 0x10, 0x9C, 0x19, 0x21, 0x23, 0x00, 0x01, +0x94, 0xD9, 0x84, 0xE0, 0xE1, 0xC0, 0xE9, 0x12, +0x41, 0x11, 0x9C, 0x00, 0x89, 0xA5, 0x23, 0x38, +0x82, 0xF7, 0xE1, 0xE1, 0xE9, 0x06, 0x5A, 0x70, +0x08, 0x05, 0xE1, 0x93, 0x8C, 0xE2, 0xE8, 0x04, +0x8E, 0x01, 0xAE, 0x11, 0xD5, 0x03, 0x8C, 0x01, +0xD5, 0xEE, 0x41, 0x42, 0x90, 0x20, 0x22, 0x7A, +0x03, 0x16, 0xFA, 0x2E, 0xFE, 0x7C, 0x45, 0x50, +0x00, 0x64, 0x40, 0x00, 0xD4, 0x16, 0x21, 0x63, +0x00, 0x02, 0x96, 0x43, 0x84, 0x61, 0x9A, 0x23, +0xE0, 0x16, 0xE9, 0x0E, 0x41, 0x72, 0x80, 0x20, +0x22, 0x8B, 0x83, 0x16, 0xE1, 0x01, 0xE9, 0x06, +0x5A, 0x30, 0x05, 0x05, 0xE0, 0xE8, 0x8C, 0x61, +0xE8, 0xF3, 0x8C, 0x01, 0xAE, 0x12, 0x9C, 0x21, +0x21, 0x03, 0x00, 0x03, 0x95, 0x21, 0x84, 0x60, +0xE1, 0x80, 0xE9, 0x11, 0x99, 0xA3, 0x88, 0xC5, +0x23, 0x23, 0x03, 0x17, 0xE1, 0xC1, 0xE9, 0x06, +0x5A, 0x30, 0x08, 0x05, 0xE0, 0xF2, 0x8C, 0x62, +0xE8, 0x04, 0x8E, 0x01, 0xAE, 0x13, 0xD5, 0x03, +0x8C, 0x01, 0xD5, 0xEF, 0xFC, 0xA1, 0xFC, 0x04, +0x3E, 0x28, 0x1C, 0xB4, 0x02, 0x51, 0x00, 0x0C, +0x02, 0x31, 0x00, 0x0A, 0x02, 0x41, 0x00, 0x0B, +0x02, 0x61, 0x00, 0x0D, 0xA4, 0x95, 0xF1, 0x81, +0xB0, 0x46, 0x10, 0x3F, 0x80, 0x18, 0xAF, 0x09, +0x40, 0x30, 0x08, 0x96, 0xAF, 0x4A, 0xAF, 0x8B, +0xB1, 0x84, 0x80, 0x46, 0x97, 0x21, 0x3A, 0x00, +0x84, 0x00, 0x96, 0xD9, 0x49, 0xFF, 0xFF, 0x6A, +0x3A, 0x03, 0x04, 0x00, 0xF2, 0x01, 0xB0, 0xC3, +0x49, 0xFF, 0xFE, 0x78, 0xFC, 0x84, 0xFC, 0x60, +0x41, 0x00, 0x84, 0x08, 0x41, 0x50, 0x40, 0x00, +0x22, 0x6A, 0x80, 0x00, 0x02, 0x9F, 0x80, 0x18, +0xE0, 0xC5, 0x4E, 0xF3, 0x00, 0x96, 0x9F, 0xC9, +0xE0, 0x47, 0xAC, 0x60, 0xE8, 0x48, 0x22, 0xAA, +0x80, 0x00, 0x45, 0x20, 0x00, 0x64, 0x42, 0x85, +0x24, 0x24, 0x50, 0xB8, 0x7F, 0xFC, 0x40, 0x74, +0x48, 0xF6, 0x51, 0x30, 0xFF, 0xFE, 0x41, 0x60, +0x2C, 0x00, 0x84, 0xC0, 0x82, 0x92, 0xE1, 0xE2, +0xE9, 0x34, 0x2B, 0x7B, 0x7F, 0xFF, 0xE0, 0xF7, +0xE8, 0x06, 0xC6, 0x2D, 0xE1, 0x57, 0xE8, 0x2B, +0x8E, 0xC1, 0xD5, 0x25, 0xE0, 0xB7, 0x4D, 0x31, +0x40, 0x0B, 0xE8, 0x21, 0x23, 0x2B, 0x00, 0x02, +0xE1, 0xD7, 0xE8, 0x1D, 0x9D, 0xF1, 0x39, 0x32, +0x1D, 0x09, 0xD5, 0x19, 0xE8, 0x18, 0x23, 0x1B, +0x00, 0x02, 0xE1, 0xB7, 0xE8, 0x14, 0x22, 0x8B, +0x00, 0x00, 0xE1, 0x17, 0xE8, 0x10, 0x51, 0x83, +0x00, 0x01, 0x39, 0x32, 0x61, 0x09, 0x22, 0xAB, +0x00, 0x01, 0xE4, 0xD2, 0x43, 0x95, 0x24, 0x24, +0x40, 0x7C, 0xD0, 0xF6, 0xE9, 0x07, 0x50, 0x6C, +0x00, 0x01, 0xD5, 0x50, 0x44, 0x70, 0x7F, 0xFF, +0xD5, 0x02, 0x80, 0xD8, 0x8F, 0xE1, 0xD5, 0xCC, +0x8C, 0xC1, 0xD5, 0x02, 0x84, 0xC1, 0x9C, 0x89, +0xE0, 0x43, 0xE8, 0x44, 0x23, 0x1A, 0x80, 0x00, +0x44, 0xD0, 0x00, 0x64, 0x42, 0xA8, 0xA4, 0x24, +0x8D, 0x84, 0x40, 0xC0, 0x40, 0x00, 0x40, 0xB5, +0x35, 0x76, 0x8C, 0x22, 0x84, 0x00, 0xE0, 0x61, +0xE9, 0x34, 0x2B, 0x06, 0x00, 0x01, 0xE1, 0x70, +0xE8, 0x06, 0xC0, 0x2D, 0xE1, 0xB0, 0xE8, 0x2B, +0x8E, 0x01, 0xD5, 0x27, 0xE0, 0xB0, 0x4C, 0x11, +0xC0, 0x0B, 0xE8, 0x23, 0x23, 0x26, 0x7F, 0xFE, +0xE1, 0xD0, 0xE8, 0x1F, 0x99, 0xF0, 0x38, 0x12, +0x1D, 0x09, 0xD5, 0x1B, 0xE8, 0x1A, 0x23, 0x36, +0x00, 0x00, 0xE1, 0xF0, 0xE8, 0x16, 0x22, 0x76, +0x7F, 0xFE, 0xE0, 0xF0, 0xE8, 0x12, 0x98, 0xB0, +0x38, 0x12, 0x09, 0x09, 0x23, 0x16, 0x7F, 0xFF, +0x8C, 0x01, 0x42, 0xE8, 0xA4, 0x24, 0x40, 0x83, +0x00, 0x00, 0xE5, 0x14, 0x40, 0xB7, 0x35, 0x76, +0xE9, 0x06, 0x54, 0x04, 0x00, 0xFF, 0xD5, 0x09, +0x44, 0xB0, 0x7F, 0xFF, 0x8C, 0x21, 0xD5, 0xCC, +0x88, 0xC0, 0x96, 0x30, 0xD5, 0x02, 0x84, 0x00, +0xFC, 0xE0, 0xFC, 0x20, 0x38, 0x70, 0x05, 0x11, +0x44, 0x60, 0x00, 0x64, 0xFE, 0xBC, 0xE0, 0x61, +0x80, 0xA1, 0x40, 0x21, 0x18, 0x56, 0xE8, 0x0F, +0x9F, 0x89, 0xE0, 0xC3, 0xE9, 0x09, 0x38, 0x80, +0x19, 0x11, 0xE1, 0x02, 0xE8, 0x03, 0x8C, 0xC1, +0xD5, 0x03, 0x8E, 0xC1, 0xD5, 0xF7, 0x43, 0x03, +0x0C, 0x00, 0xD5, 0x02, 0x82, 0x01, 0xE0, 0x24, +0xE8, 0x0B, 0x8C, 0x21, 0xE0, 0x81, 0xE9, 0x06, +0x38, 0x30, 0x05, 0x11, 0xE0, 0x62, 0xE8, 0xFA, +0x8E, 0x21, 0x42, 0x50, 0x90, 0x01, 0x52, 0x08, +0x00, 0x01, 0x98, 0x45, 0x96, 0x09, 0xFC, 0xA0, +0x3E, 0x2F, 0xED, 0x00, 0x00, 0x11, 0x00, 0x14, +0x3E, 0x48, 0x0A, 0x60, 0x3E, 0x08, 0x1C, 0xE8, +0x96, 0xCB, 0x22, 0x52, 0x09, 0x1F, 0x22, 0xF2, +0x09, 0x20, 0x23, 0x02, 0x09, 0x1C, 0x23, 0x12, +0x09, 0x25, 0x23, 0x22, 0x09, 0x26, 0x23, 0x32, +0x09, 0x1D, 0x23, 0x42, 0x09, 0x22, 0x23, 0x52, +0x09, 0x23, 0x23, 0x62, 0x09, 0x1E, 0x23, 0x71, +0x00, 0x01, 0x23, 0x81, 0x00, 0x02, 0x12, 0x30, +0x01, 0x19, 0x12, 0x50, 0x00, 0x73, 0x12, 0xF0, +0x00, 0x74, 0x13, 0x00, 0x00, 0x72, 0x13, 0x10, +0x02, 0x70, 0x13, 0x20, 0x02, 0x71, 0x13, 0x30, +0x02, 0x72, 0x13, 0x40, 0x02, 0x73, 0x13, 0x50, +0x02, 0x74, 0x13, 0x60, 0x02, 0x75, 0x13, 0x70, +0x01, 0x01, 0x13, 0x80, 0x01, 0x02, 0xDD, 0x9E, +0x3C, 0x00, 0x0F, 0x4D, 0x3C, 0x10, 0x0E, 0x4C, +0x96, 0x83, 0xE0, 0x22, 0xE8, 0x1A, 0x3C, 0x37, +0xF6, 0x74, 0xCB, 0x17, 0x2E, 0x47, 0xEC, 0xFA, +0xCC, 0x14, 0x3C, 0x20, 0x0F, 0x4C, 0x3C, 0x57, +0xF6, 0x7F, 0x96, 0x53, 0x9C, 0x29, 0xE0, 0x25, +0x3C, 0x0B, 0xF6, 0x7F, 0xE8, 0x0A, 0xFC, 0x00, +0x84, 0xC1, 0x3E, 0x67, 0xEC, 0xFA, 0x3C, 0x4B, +0xF6, 0x7F, 0x49, 0x00, 0x0F, 0x3F, 0xFC, 0x80, +0xDD, 0x9E, 0xFC, 0x00, 0x3C, 0x00, 0x0E, 0x5D, +0x49, 0x00, 0x2F, 0xDE, 0x49, 0x00, 0x2F, 0x37, +0x3E, 0x18, 0x0A, 0x60, 0x22, 0x20, 0x89, 0x1A, +0x3E, 0x08, 0x1C, 0xE8, 0x22, 0x30, 0x89, 0x1B, +0x12, 0x20, 0x01, 0x04, 0x12, 0x30, 0x01, 0x03, +0x49, 0x00, 0x2E, 0xF1, 0x44, 0x00, 0x7F, 0xFF, +0x49, 0x00, 0x0F, 0x74, 0xFC, 0x80, 0x3C, 0x13, +0xF6, 0x81, 0x2E, 0x07, 0xE1, 0x60, 0xC1, 0x14, +0xC0, 0x0C, 0x3C, 0x40, 0x11, 0x67, 0x3C, 0x10, +0x0F, 0xDD, 0x97, 0x63, 0x96, 0xCB, 0x3C, 0xF0, +0x10, 0x95, 0x88, 0x65, 0x88, 0x6F, 0xD5, 0x06, +0x3C, 0x30, 0x11, 0x67, 0x3C, 0x20, 0x0F, 0xDD, +0x88, 0x62, 0x96, 0x19, 0xD5, 0x09, 0xC0, 0x06, +0x3C, 0x30, 0x11, 0x67, 0x3C, 0x20, 0x10, 0x95, +0xD5, 0xF8, 0x3C, 0x00, 0x11, 0x67, 0x3C, 0x50, +0x0E, 0x6B, 0xD0, 0x06, 0xFC, 0x00, 0x49, 0x00, +0x14, 0x9E, 0x84, 0x00, 0xFC, 0x80, 0x84, 0x01, +0xDD, 0x9E, 0xFC, 0x62, 0x2E, 0x07, 0xE1, 0x5D, +0x5A, 0x08, 0x02, 0x2E, 0x85, 0x40, 0x3C, 0xAB, +0xF6, 0x81, 0x49, 0xFF, 0xFF, 0xB4, 0x3D, 0x97, +0xF6, 0x74, 0x4F, 0x96, 0x00, 0x07, 0x3C, 0x30, +0x0E, 0x84, 0x97, 0x9B, 0xE4, 0xC3, 0xE9, 0x07, +0x85, 0xC1, 0x49, 0x00, 0x11, 0xAD, 0x3E, 0xE7, +0xF3, 0x9E, 0xD5, 0x03, 0x3E, 0xA7, 0xF3, 0x9E, +0x49, 0xFF, 0xF4, 0xFC, 0x49, 0xFF, 0xFF, 0x46, +0x49, 0x00, 0x0E, 0xD8, 0x49, 0xFF, 0xF6, 0x6E, +0x4E, 0x02, 0x03, 0x7A, 0x49, 0x00, 0x11, 0x9C, +0x3D, 0x40, 0x0E, 0xEF, 0x86, 0x21, 0x3D, 0x4B, +0xF9, 0xC4, 0x3F, 0x17, 0xF3, 0x9E, 0x85, 0x80, +0x48, 0x00, 0x06, 0x72, 0x3C, 0x10, 0x05, 0x08, +0x96, 0x4E, 0xC1, 0x2F, 0x2E, 0x27, 0xED, 0x16, +0x5A, 0x28, 0x01, 0x2C, 0x3C, 0x50, 0x10, 0x3E, +0x84, 0x00, 0x97, 0x2B, 0x95, 0xE1, 0x3C, 0x2B, +0xF6, 0x81, 0x3E, 0x27, 0xED, 0x12, 0x3C, 0x4B, +0xF6, 0x82, 0x3C, 0x7B, 0xF6, 0x88, 0x3E, 0x20, +0x03, 0x2C, 0x49, 0xFF, 0xF4, 0xA6, 0xC8, 0x03, +0x3E, 0x07, 0xED, 0x16, 0x49, 0xFF, 0xFF, 0x89, +0x49, 0x00, 0x11, 0x72, 0x49, 0xFF, 0xFF, 0x6B, +0x49, 0xFF, 0xF4, 0xC4, 0x49, 0x00, 0x0E, 0xA2, +0x49, 0x00, 0x11, 0x6A, 0x3C, 0x20, 0x0F, 0x8A, +0x85, 0xA1, 0x96, 0x53, 0x59, 0x80, 0x80, 0x40, +0x3D, 0x88, 0x0F, 0x8A, 0x48, 0x00, 0x03, 0x09, +0x3C, 0x43, 0xF6, 0x81, 0x84, 0x60, 0x3E, 0x37, +0xED, 0x16, 0xCC, 0x08, 0x84, 0xE0, 0x85, 0x00, +0x3E, 0x77, 0xED, 0x12, 0x3C, 0x8B, 0xF6, 0x88, +0xD5, 0x08, 0x3C, 0x57, 0xF6, 0x88, 0x9F, 0xA9, +0x3C, 0x6B, 0xF6, 0x88, 0x4E, 0x57, 0xFF, 0xF4, +0x3C, 0x00, 0x0F, 0x8A, 0x2E, 0x57, 0xED, 0x21, +0x85, 0x20, 0x96, 0x84, 0x3C, 0x9B, 0xF6, 0x87, +0x3E, 0x27, 0xED, 0x22, 0xD2, 0x07, 0x85, 0x82, +0x3E, 0xC7, 0xED, 0x23, 0x3E, 0x27, 0xED, 0x21, +0xD5, 0x0D, 0x2E, 0x17, 0xED, 0x23, 0xC9, 0x07, +0x85, 0x41, 0x40, 0xA4, 0x94, 0x1A, 0x3E, 0xA7, +0xED, 0x20, 0xD5, 0x04, 0x8E, 0x21, 0x3E, 0x17, +0xED, 0x23, 0x49, 0xFF, 0xFF, 0x28, 0x3C, 0x17, +0xF0, 0xAA, 0x3E, 0x9F, 0xDB, 0x60, 0xC9, 0x07, +0x2E, 0xD7, 0xE1, 0x52, 0x5A, 0xD8, 0x01, 0x04, +0x48, 0x00, 0x00, 0xA0, 0x3C, 0x20, 0x0E, 0x69, +0x3C, 0x53, 0xF0, 0xA7, 0xDA, 0x07, 0x3C, 0x53, +0xF0, 0xA8, 0x3C, 0x30, 0x0E, 0x6B, 0x4C, 0x51, +0x80, 0x95, 0x3C, 0x40, 0x0E, 0x8C, 0x97, 0xA4, +0xCE, 0x15, 0x3C, 0x50, 0x0E, 0x6B, 0x3C, 0x70, +0x0E, 0x6A, 0xDF, 0x10, 0x3C, 0x50, 0x0E, 0x68, +0xDA, 0x0D, 0x3C, 0x00, 0x0F, 0x74, 0x96, 0xC3, +0x4C, 0x21, 0xC0, 0x09, 0x2E, 0x67, 0xE1, 0x4D, +0xCE, 0x05, 0x84, 0x01, 0x49, 0x00, 0x0F, 0xC6, +0xD5, 0x2E, 0x3C, 0x40, 0x05, 0x07, 0x97, 0x2E, +0xC4, 0x08, 0x3C, 0x60, 0x0F, 0x70, 0x3C, 0xE0, +0x0E, 0x4A, 0x97, 0xF3, 0xE0, 0xEE, 0xE9, 0x71, +0x3C, 0x50, 0x0E, 0x8C, 0x97, 0xAC, 0xCE, 0x22, +0x3C, 0x00, 0x0F, 0x92, 0x96, 0x0E, 0xC0, 0x1E, +0x3C, 0x30, 0x0F, 0xDC, 0x97, 0x1B, 0x4C, 0x22, +0x40, 0x1A, 0x3C, 0x70, 0x11, 0x67, 0x3C, 0x50, +0x0F, 0xDD, 0x96, 0xFB, 0x96, 0x2B, 0x3C, 0x50, +0x0E, 0x6B, 0x88, 0x03, 0xD8, 0x0F, 0x80, 0x06, +0x49, 0x00, 0x0F, 0xA0, 0x3C, 0xA0, 0x0E, 0x69, +0x3C, 0xB0, 0x0E, 0x6B, 0x3C, 0xAB, 0xF0, 0xA7, +0x3C, 0xBB, 0xF0, 0xA8, 0x3C, 0x6B, 0xF0, 0xAA, +0xD5, 0x4C, 0x3C, 0x60, 0x0E, 0x9C, 0x3D, 0x00, +0x0E, 0x4C, 0x97, 0x33, 0xE0, 0x90, 0xE9, 0x45, +0x3D, 0x80, 0x0E, 0x5D, 0x85, 0x00, 0x3E, 0x38, +0x0A, 0x60, 0xE1, 0x18, 0xE8, 0x07, 0x39, 0x91, +0xA1, 0x01, 0x39, 0x94, 0xA1, 0x09, 0x8D, 0x01, +0xD5, 0xF9, 0x3C, 0x70, 0x0E, 0x8C, 0x96, 0xFC, +0xCB, 0x14, 0x8E, 0x21, 0x96, 0x4B, 0x3C, 0x1B, +0xF0, 0xAA, 0x4E, 0x16, 0x00, 0x2F, 0x3D, 0x10, +0x0E, 0x6B, 0x86, 0x40, 0x86, 0x61, 0x3C, 0x2B, +0xF0, 0xA7, 0x3D, 0x1B, 0xF0, 0xA8, 0x3D, 0x2B, +0xF0, 0xAA, 0x3F, 0x37, 0xE1, 0x52, 0xD5, 0x21, +0x3C, 0x00, 0x0E, 0x60, 0x84, 0xA0, 0x94, 0x01, +0x3E, 0x78, 0x0A, 0x60, 0xD0, 0x0A, 0x99, 0x2F, +0x41, 0x64, 0x94, 0x00, 0x03, 0x72, 0x05, 0x80, +0x13, 0x7B, 0x02, 0xC0, 0x8C, 0xA2, 0xD5, 0xF7, +0x3C, 0x50, 0x0E, 0x61, 0x3E, 0x38, 0x0A, 0x60, +0x95, 0xE9, 0x84, 0xA0, 0xD7, 0xD7, 0x99, 0xAB, +0x41, 0x44, 0x94, 0x00, 0x03, 0x53, 0x05, 0xA0, +0x13, 0x5A, 0x02, 0xE0, 0x8C, 0xA2, 0xD5, 0xF7, +0x49, 0xFF, 0xF3, 0xD8, 0x49, 0xFF, 0xFE, 0x22, +0x3C, 0x10, 0x05, 0x07, 0x96, 0x6E, 0x96, 0x89, +0x4E, 0x22, 0x00, 0xA9, 0x3C, 0x67, 0xF6, 0x74, +0x4E, 0x63, 0x00, 0xA7, 0x2E, 0x07, 0xEC, 0xFA, +0x4E, 0x03, 0x00, 0xA3, 0x3C, 0x70, 0x05, 0x08, +0x3C, 0x03, 0xF6, 0x81, 0x97, 0xD6, 0x3D, 0xE0, +0x0E, 0x4B, 0xC7, 0x04, 0x2E, 0x57, 0xED, 0x20, +0xC5, 0x2C, 0x3C, 0x40, 0x0E, 0xAE, 0x96, 0xE3, +0xE0, 0x7E, 0xE9, 0x08, 0x3C, 0x10, 0x0E, 0xAD, +0x3C, 0xC0, 0x0E, 0x4A, 0x96, 0x8B, 0xE0, 0x4C, +0xE8, 0x20, 0x5A, 0x08, 0x01, 0x1F, 0x3C, 0xD0, +0x0F, 0x7C, 0x3C, 0xDB, 0xF6, 0x82, 0x49, 0xFF, +0xF4, 0xC7, 0x49, 0xFF, 0xF4, 0xFF, 0x3C, 0x60, +0x0E, 0xAF, 0x3D, 0x10, 0x0F, 0x84, 0x3C, 0x70, +0x0F, 0x25, 0x3D, 0x20, 0x0F, 0x84, 0x88, 0xD1, +0x88, 0xF2, 0x85, 0xC2, 0x86, 0x00, 0x96, 0x31, +0x96, 0x79, 0x3C, 0xEB, 0xF6, 0x81, 0x3D, 0x0B, +0xF6, 0x86, 0x49, 0xFF, 0xF4, 0x76, 0xD5, 0x6E, +0x5A, 0x08, 0x02, 0x0A, 0x3C, 0x40, 0x0F, 0xBC, +0x96, 0xE3, 0xE0, 0x7E, 0xE9, 0x67, 0x3C, 0x50, +0x0F, 0x72, 0xD5, 0x0A, 0x5A, 0x08, 0x01, 0x0F, +0x3C, 0x60, 0x0F, 0x82, 0x97, 0xF3, 0xE0, 0xFE, +0xE9, 0x5D, 0x3C, 0x50, 0x0F, 0x80, 0x3D, 0x50, +0x0E, 0x4A, 0x96, 0x2B, 0xE0, 0x15, 0xE8, 0x29, +0xD5, 0x55, 0x3C, 0x50, 0x0F, 0x7E, 0x97, 0x2B, +0xE0, 0x9E, 0xE9, 0x08, 0x3C, 0x30, 0x0F, 0x7F, +0x3D, 0x30, 0x0E, 0x4A, 0x96, 0x5B, 0xE0, 0x33, +0xE8, 0x1B, 0x3D, 0x40, 0x0F, 0x7C, 0x3D, 0x4B, +0xF6, 0x82, 0x49, 0xFF, 0xF4, 0xBF, 0x3C, 0x00, +0x05, 0x08, 0x96, 0x16, 0x97, 0xC1, 0xC7, 0x0A, +0x2E, 0x27, 0xED, 0x20, 0xCA, 0x04, 0xFB, 0x04, +0x3C, 0x8B, 0xF6, 0x86, 0x49, 0xFF, 0xF4, 0x93, +0xD5, 0x35, 0x84, 0x01, 0x49, 0xFF, 0xF4, 0x74, +0x3C, 0x7B, 0xF6, 0x86, 0xD5, 0x30, 0xC0, 0x1E, +0x3C, 0x10, 0x0F, 0x70, 0x3C, 0xA0, 0x0E, 0x4A, +0x96, 0x8B, 0xE1, 0x42, 0xE8, 0x17, 0x3C, 0x57, +0xF6, 0x82, 0x9F, 0x29, 0x3C, 0x4B, 0xF6, 0x82, +0x4E, 0x56, 0x00, 0x1F, 0x3C, 0x00, 0x0E, 0xAF, +0x3C, 0x10, 0x0F, 0x25, 0x49, 0xFF, 0xF4, 0x21, +0x87, 0x00, 0x3F, 0x87, 0xED, 0x14, 0x49, 0xFF, +0xF4, 0x91, 0x86, 0xE0, 0x3D, 0x7B, 0xF6, 0x81, +0xD5, 0x0A, 0x3C, 0x60, 0x0F, 0x70, 0x3D, 0x60, +0x0E, 0x4A, 0x97, 0xF3, 0xE0, 0xF6, 0xE8, 0x08, +0x3D, 0x70, 0x0F, 0x7C, 0x3D, 0x7B, 0xF6, 0x82, +0xD5, 0x03, 0x3C, 0x2B, 0xF6, 0x81, 0x84, 0xE1, +0xD5, 0x02, 0x84, 0xE0, 0x3C, 0x80, 0x05, 0x08, +0x54, 0x34, 0x00, 0x04, 0xC3, 0x18, 0x2E, 0x07, +0xED, 0x20, 0xC8, 0x15, 0x3C, 0xB7, 0xF6, 0x86, +0x4E, 0xB7, 0x00, 0x12, 0x3C, 0x17, 0xF6, 0x74, +0xC9, 0x0E, 0x2E, 0xC7, 0xEC, 0xFA, 0x4E, 0xC3, +0x00, 0x0B, 0x8F, 0x61, 0x3C, 0xBB, 0xF6, 0x86, +0x49, 0xFF, 0xF4, 0x45, 0x49, 0x00, 0x0F, 0xB4, +0x48, 0x00, 0x01, 0x51, 0x87, 0x20, 0x54, 0x24, +0x00, 0x08, 0x3D, 0x9B, 0xF6, 0x86, 0x3F, 0x97, +0xE1, 0x63, 0x3F, 0x97, 0xE1, 0x61, 0x2E, 0x50, +0x03, 0x22, 0xCA, 0x06, 0x3F, 0x97, 0xE1, 0x60, +0x3F, 0x97, 0xE1, 0x64, 0xD5, 0x0C, 0x3C, 0x60, +0x10, 0xF4, 0xC6, 0x0D, 0x3F, 0x97, 0xE1, 0x60, +0x3F, 0x97, 0xE1, 0x64, 0x3D, 0x9B, 0xF0, 0xB5, +0x3D, 0x9B, 0xF0, 0xB6, 0x3F, 0x97, 0xE1, 0x62, +0x48, 0x00, 0x01, 0x81, 0xCD, 0x0F, 0x2E, 0x40, +0x03, 0x2C, 0xC4, 0x0C, 0x3C, 0xE0, 0x0E, 0x4F, +0x3D, 0x30, 0x0E, 0x52, 0x3C, 0xEB, 0xF0, 0xB7, +0x3D, 0x3B, 0xF0, 0xB8, 0x3C, 0xD0, 0x0E, 0x55, +0xD5, 0x17, 0x3D, 0xE4, 0x0E, 0x4F, 0x3D, 0x07, +0xF0, 0xB7, 0xE1, 0x9E, 0xE8, 0x03, 0x3D, 0xEB, +0xF0, 0xB7, 0x3C, 0xC4, 0x0E, 0x52, 0x3D, 0x17, +0xF0, 0xB8, 0xE1, 0xAC, 0xE8, 0x03, 0x3C, 0xCB, +0xF0, 0xB8, 0x3C, 0xD4, 0x0E, 0x55, 0x3D, 0x27, +0xF0, 0xB9, 0xE1, 0xCD, 0xE8, 0x03, 0x3C, 0xDB, +0xF0, 0xB9, 0x2E, 0xB7, 0xE1, 0x60, 0x4E, 0xB3, +0x00, 0x1D, 0x3C, 0x00, 0x10, 0x9E, 0x3D, 0x17, +0xF0, 0xB7, 0x96, 0x43, 0xE1, 0xA1, 0xE9, 0x30, +0x3C, 0x20, 0x10, 0x9F, 0x97, 0x93, 0xE1, 0xA6, +0xE8, 0x2B, 0x3C, 0x30, 0x10, 0xA0, 0x3D, 0x27, +0xF0, 0xB8, 0x96, 0x1B, 0xE1, 0xC0, 0x84, 0x81, +0xE8, 0x24, 0x3C, 0x10, 0x10, 0xA1, 0x3D, 0x37, +0xF0, 0xB9, 0x96, 0x8B, 0xE1, 0xE2, 0xD5, 0x19, +0x84, 0xC0, 0x5A, 0xB8, 0x01, 0x1C, 0x3C, 0x30, +0x10, 0xA5, 0x3C, 0xA7, 0xF0, 0xB7, 0x96, 0x1B, +0xE1, 0x40, 0x84, 0x80, 0xE8, 0x12, 0x3C, 0x10, +0x10, 0xA0, 0x3C, 0x67, 0xF0, 0xB8, 0x96, 0x8B, +0xE0, 0xC2, 0xE8, 0x0A, 0x3C, 0x40, 0x10, 0xA1, +0x3D, 0x07, 0xF0, 0xB9, 0x96, 0xE3, 0xE1, 0x83, +0x56, 0x47, 0x80, 0x01, 0xD5, 0x02, 0x80, 0x8B, +0x97, 0xA0, 0x3C, 0xE0, 0x0E, 0x54, 0x3C, 0x20, +0x10, 0xA2, 0x80, 0x2E, 0x3C, 0x30, 0x0E, 0x64, +0x3C, 0x40, 0x0E, 0x65, 0x3E, 0x08, 0x1C, 0x24, +0xF5, 0x81, 0x49, 0xFF, 0xFC, 0x98, 0x3C, 0xD0, +0x0E, 0x57, 0x3C, 0x20, 0x10, 0xA2, 0x80, 0x2D, +0x3C, 0x30, 0x0E, 0x66, 0x3C, 0x40, 0x0E, 0x67, +0x81, 0x80, 0x3E, 0x08, 0x1C, 0x64, 0x49, 0xFF, +0xFC, 0x8A, 0x12, 0xEF, 0x80, 0x06, 0x12, 0xDF, +0x80, 0x07, 0x81, 0x40, 0xF0, 0x03, 0x49, 0x00, +0x05, 0x5A, 0x80, 0x40, 0xF5, 0x01, 0xC8, 0x18, +0x3C, 0x40, 0x10, 0xA3, 0x96, 0xE3, 0x40, 0xF6, +0x0C, 0x07, 0xE9, 0x2C, 0x3C, 0x00, 0x10, 0xA4, +0x96, 0x43, 0x40, 0xF6, 0x04, 0x07, 0xE8, 0x26, +0x3C, 0x40, 0x10, 0xA3, 0x96, 0xE3, 0xE1, 0x43, +0xE9, 0x21, 0x3C, 0x20, 0x10, 0xA4, 0x96, 0x13, +0x40, 0x25, 0x00, 0x07, 0xD5, 0x1B, 0x3C, 0x40, +0x10, 0xA4, 0x96, 0xE3, 0x40, 0xF6, 0x0C, 0x07, +0xE8, 0x14, 0x3C, 0x00, 0x10, 0xA4, 0x96, 0x43, +0xE1, 0x41, 0xE8, 0x0F, 0x3C, 0x40, 0x10, 0xA3, +0x84, 0x41, 0x96, 0xE3, 0x40, 0xF6, 0x0C, 0x07, +0xE8, 0x09, 0x3C, 0x00, 0x10, 0xA3, 0x96, 0x43, +0xE1, 0x41, 0x56, 0x27, 0x80, 0x01, 0xD5, 0x02, +0x84, 0x40, 0x96, 0x50, 0xC6, 0x08, 0x4E, 0x12, +0x03, 0xAF, 0x86, 0x81, 0x3F, 0x47, 0xE1, 0x61, +0x48, 0x00, 0x03, 0xAA, 0x4E, 0x53, 0x03, 0x34, +0x2E, 0x40, 0x03, 0x2C, 0x4E, 0x43, 0x03, 0x2D, +0x4E, 0x62, 0x03, 0x2E, 0x2E, 0x67, 0xE1, 0x61, +0x4E, 0x63, 0x03, 0x2D, 0x3C, 0x00, 0x0E, 0x9E, +0x84, 0xC3, 0x96, 0x43, 0xE4, 0x24, 0xE8, 0x05, +0x3C, 0x40, 0x0E, 0x9E, 0x97, 0xA3, 0x8E, 0xC1, +0x4E, 0xB3, 0x03, 0x2F, 0x3C, 0x10, 0x10, 0x9F, +0x3D, 0x07, 0xF0, 0xB7, 0x97, 0x0B, 0xE1, 0x84, +0xE9, 0x05, 0x3E, 0xB7, 0xE1, 0x64, 0x3E, 0xB7, +0xE1, 0x62, 0x2E, 0x37, 0xE1, 0x62, 0x4E, 0x32, +0x03, 0x59, 0x3C, 0x23, 0xF0, 0xB6, 0x8C, 0x41, +0x96, 0x13, 0xE0, 0xC0, 0x3C, 0x0B, 0xF0, 0xB6, +0x4E, 0xF2, 0x03, 0x13, 0x86, 0x21, 0x3C, 0x6B, +0xF0, 0xB6, 0x3F, 0x17, 0xE1, 0x64, 0x3C, 0x60, +0x10, 0x94, 0xCE, 0x74, 0x3C, 0x40, 0x0F, 0x8A, +0x97, 0x16, 0x96, 0xE1, 0x4E, 0x32, 0x03, 0x49, +0x85, 0x81, 0x3E, 0xC7, 0xE1, 0x60, 0x2E, 0xD7, +0xE1, 0x60, 0x3E, 0xD7, 0xE1, 0x64, 0x4E, 0x53, +0x00, 0x8C, 0x2E, 0x60, 0x03, 0x2C, 0x4E, 0x62, +0x00, 0x88, 0x3C, 0x17, 0xF6, 0x74, 0x4E, 0x13, +0x00, 0x84, 0x2E, 0xC7, 0xEC, 0xFA, 0x4E, 0xC3, +0x00, 0x80, 0x54, 0x44, 0x00, 0x02, 0x84, 0xC1, +0xCC, 0x6E, 0x49, 0xFF, 0xFC, 0x8A, 0xFE, 0x36, +0x97, 0x40, 0xCD, 0x76, 0x86, 0xC2, 0x3D, 0x68, +0x0F, 0x7B, 0x3C, 0x00, 0x10, 0x40, 0x49, 0x00, +0x29, 0xE7, 0x49, 0x00, 0x0E, 0x69, 0x49, 0xFF, +0xFC, 0x62, 0x49, 0xFF, 0xF1, 0xBB, 0x49, 0x00, +0x0B, 0x99, 0x3C, 0x60, 0x0F, 0x8A, 0x96, 0x33, +0x59, 0x70, 0x00, 0x40, 0x3D, 0x78, 0x0F, 0x8A, +0x48, 0x00, 0x03, 0x3A, 0x85, 0xA5, 0x3C, 0xD8, +0x0F, 0x7B, 0x48, 0xFF, 0xFC, 0xC2, 0x44, 0xE0, +0x7F, 0xFF, 0x3C, 0xE8, 0x0F, 0x55, 0x3C, 0xE8, +0x10, 0xDB, 0x3C, 0xE8, 0x10, 0xDC, 0x3C, 0x43, +0xF6, 0x81, 0x4E, 0x43, 0x01, 0x6F, 0x3C, 0x60, +0x05, 0x09, 0x97, 0xAE, 0x97, 0x31, 0x4E, 0x42, +0x01, 0x6D, 0x3C, 0x27, 0xF6, 0x74, 0x4E, 0x27, +0x01, 0x6D, 0x2F, 0x47, 0xEC, 0xFA, 0x5B, 0x40, +0x01, 0x04, 0x48, 0x00, 0x01, 0x67, 0x85, 0x00, +0x3C, 0x88, 0x10, 0xF4, 0x3C, 0x8B, 0xF9, 0xE7, +0x3C, 0x8B, 0xF9, 0xEA, 0x49, 0xFF, 0xF2, 0xFE, +0x5C, 0x20, 0x00, 0x01, 0xFF, 0xD6, 0x97, 0xFA, +0x49, 0x00, 0x0B, 0x60, 0xC7, 0xD0, 0x86, 0xA0, +0x3D, 0x58, 0x0F, 0x7B, 0x85, 0x81, 0x48, 0x00, +0x03, 0x03, 0x2F, 0x27, 0xE1, 0x64, 0x2F, 0x37, +0xE1, 0x60, 0x4D, 0x39, 0x42, 0xDC, 0x2E, 0x27, +0xE1, 0x60, 0x4E, 0x23, 0x02, 0xEE, 0x2E, 0x17, +0xE1, 0x62, 0xC1, 0x04, 0x85, 0xC1, 0x3E, 0xE7, +0xE1, 0x63, 0x3C, 0x20, 0x0F, 0x8A, 0x96, 0x13, +0x67, 0x40, 0x00, 0x04, 0x3D, 0x48, 0x0F, 0x8A, +0x48, 0xFF, 0xFF, 0x83, 0x3C, 0x33, 0xF6, 0x81, +0xC3, 0x05, 0x80, 0x05, 0x49, 0xFF, 0xF1, 0x31, +0xD5, 0x05, 0x3C, 0x00, 0x0E, 0x68, 0x49, 0xFF, +0xF1, 0x0B, 0x80, 0xC0, 0xD5, 0x87, 0x3C, 0x20, +0x0F, 0x8A, 0x96, 0x13, 0x66, 0x80, 0x00, 0x40, +0x3C, 0x88, 0x0F, 0x8A, 0x49, 0x00, 0x0D, 0xF4, +0xCF, 0x0C, 0x3C, 0x17, 0xF6, 0x74, 0xC9, 0x09, +0x2E, 0xC7, 0xEC, 0xFA, 0x4E, 0xC3, 0x00, 0x06, +0x49, 0xFF, 0xFB, 0xC4, 0x85, 0x63, 0xD5, 0x2B, +0x3C, 0x40, 0x05, 0x07, 0x97, 0x2E, 0xC4, 0x2B, +0x3C, 0x37, 0xF6, 0x74, 0xCB, 0x28, 0x2E, 0xC7, +0xEC, 0xFA, 0x4E, 0xC3, 0x00, 0x25, 0x3C, 0x60, +0x0F, 0x71, 0x3D, 0x54, 0x0E, 0x4F, 0x97, 0x73, +0xE0, 0xB5, 0xE9, 0x0F, 0x3C, 0x20, 0x0F, 0x7D, +0x3D, 0x04, 0x0E, 0x50, 0x96, 0x13, 0xE1, 0x80, +0xE9, 0x08, 0x3C, 0x10, 0x0F, 0x79, 0x3D, 0x60, +0x0E, 0x4C, 0x97, 0x0B, 0xE0, 0x96, 0xE8, 0x0F, +0x3C, 0x10, 0x0F, 0x8A, 0x85, 0x64, 0x96, 0xCB, +0x59, 0x01, 0x80, 0x20, 0x3D, 0x08, 0x0F, 0x8A, +0x49, 0xFF, 0xFB, 0x98, 0x3C, 0xB8, 0x0F, 0x7B, +0x48, 0x00, 0x02, 0x9A, 0x3C, 0x30, 0x0F, 0x8A, +0x2E, 0x57, 0xE1, 0x52, 0x97, 0x9B, 0x67, 0x73, +0x00, 0x20, 0x3D, 0x78, 0x0F, 0x8A, 0x4E, 0x52, +0xFF, 0x5C, 0x3C, 0x80, 0x0E, 0x61, 0x44, 0x5F, +0x80, 0x00, 0x8F, 0x01, 0x84, 0x81, 0x3E, 0xD8, +0x0A, 0x60, 0x86, 0xA2, 0xE0, 0x88, 0xE8, 0x2E, +0x96, 0xA1, 0x9E, 0x11, 0x8C, 0x41, 0x96, 0xC3, +0x97, 0x93, 0x50, 0xB1, 0x85, 0xA0, 0x51, 0x81, +0x82, 0xE0, 0x50, 0xF3, 0x05, 0xA0, 0x50, 0xA3, +0x02, 0xE0, 0x96, 0x63, 0x38, 0x36, 0xBD, 0x11, +0x38, 0x04, 0xA9, 0x11, 0x39, 0x76, 0xAD, 0x11, +0x39, 0x94, 0xE1, 0x11, 0x51, 0x00, 0x85, 0xA0, +0x51, 0x60, 0x82, 0xE0, 0x9B, 0x98, 0x38, 0x26, +0xC1, 0x11, 0x38, 0x14, 0xD9, 0x11, 0x41, 0xEB, +0xE4, 0x01, 0x88, 0xDE, 0x9A, 0x51, 0x40, 0x23, +0x54, 0x56, 0x8A, 0x22, 0x42, 0x30, 0x80, 0x03, +0x96, 0x1B, 0x42, 0x50, 0x14, 0x00, 0x8C, 0x81, +0xD5, 0xD2, 0x3C, 0xB0, 0x0E, 0x60, 0x3C, 0x58, +0x10, 0xDB, 0x8F, 0x61, 0x44, 0xCF, 0x80, 0x00, +0x84, 0x81, 0x3F, 0x78, 0x0A, 0x60, 0x87, 0x02, +0xE0, 0x8B, 0xE8, 0x2E, 0x96, 0x21, 0x9E, 0xC1, +0x8C, 0x01, 0x97, 0x9B, 0x96, 0x83, 0x50, 0xF3, +0x05, 0x80, 0x50, 0xE3, 0x02, 0xC0, 0x51, 0x21, +0x05, 0x80, 0x51, 0x31, 0x02, 0xC0, 0x96, 0x63, +0x38, 0x3B, 0xC9, 0x11, 0x38, 0x64, 0xCD, 0x11, +0x38, 0xAB, 0xBD, 0x11, 0x39, 0x44, 0xB9, 0x11, +0x51, 0x90, 0x85, 0x80, 0x51, 0xE0, 0x82, 0xC0, +0x9A, 0x9E, 0x38, 0x0B, 0xE5, 0x11, 0x38, 0x14, +0xF9, 0x11, 0x41, 0x15, 0x50, 0x01, 0x88, 0x51, +0x9A, 0x41, 0x40, 0x01, 0x60, 0x16, 0x8A, 0x20, +0x42, 0x30, 0x80, 0x03, 0x97, 0x9B, 0x42, 0xC3, +0x30, 0x00, 0x8C, 0x81, 0xD5, 0xD2, 0x2E, 0x20, +0x03, 0x22, 0x3C, 0xC8, 0x10, 0xDC, 0xCA, 0x04, +0x2E, 0x00, 0x03, 0x2C, 0xC8, 0x08, 0x3C, 0x10, +0x0F, 0x4D, 0x3D, 0x80, 0x0E, 0x4C, 0x97, 0x0B, +0xE0, 0x98, 0xE9, 0x4D, 0x3D, 0x97, 0xF6, 0x74, +0x4F, 0x96, 0x00, 0x4A, 0x2F, 0xE7, 0xEC, 0xFA, +0x5B, 0xE0, 0x01, 0x46, 0x3C, 0xB0, 0x0E, 0x5E, +0x3D, 0x40, 0x0E, 0x5F, 0x51, 0x15, 0xFF, 0xFF, +0x45, 0x0F, 0x80, 0x00, 0x84, 0x80, 0x3F, 0x28, +0x0A, 0x60, 0x45, 0x30, 0x7F, 0xFF, 0x85, 0xC2, +0xE0, 0x94, 0xE8, 0x31, 0x97, 0xA3, 0x85, 0x41, +0xE1, 0x51, 0xE8, 0x2B, 0x40, 0x3A, 0x18, 0x00, +0x96, 0x99, 0x38, 0x39, 0x19, 0x11, 0x40, 0xC1, +0x00, 0x11, 0x40, 0xD3, 0x04, 0x08, 0x4C, 0x39, +0x80, 0x1E, 0x38, 0x59, 0x31, 0x11, 0x4C, 0x59, +0x80, 0x1A, 0x88, 0x54, 0x96, 0x53, 0x38, 0x89, +0x05, 0x11, 0x4C, 0x89, 0x80, 0x14, 0x38, 0x04, +0xB1, 0x11, 0x39, 0x54, 0x85, 0x11, 0x9A, 0xA8, +0x38, 0x54, 0xB4, 0x11, 0x8B, 0x15, 0x8A, 0x65, +0x88, 0x68, 0x40, 0x11, 0xB8, 0x36, 0x9A, 0x11, +0x42, 0x20, 0x00, 0x03, 0x97, 0x53, 0x43, 0x02, +0xC0, 0x00, 0x8D, 0x41, 0x80, 0xCC, 0xD5, 0xD5, +0x8C, 0x81, 0xD5, 0xCF, 0x3D, 0x08, 0x0F, 0x55, +0x48, 0xFF, 0xFE, 0x97, 0x45, 0x60, 0x7F, 0xFF, +0x3D, 0x68, 0x0F, 0x55, 0x48, 0xFF, 0xFE, 0x91, +0x2E, 0x47, 0xED, 0x12, 0x4E, 0x43, 0xFE, 0x91, +0x3C, 0x48, 0x10, 0xF4, 0x48, 0x00, 0x00, 0x99, +0x3C, 0x10, 0x10, 0xF5, 0x96, 0xCB, 0x4E, 0x34, +0x00, 0x07, 0x85, 0x21, 0x3C, 0x98, 0x10, 0xF4, +0x48, 0xFF, 0xFE, 0x9A, 0x3C, 0x00, 0x10, 0xF6, +0x3D, 0x20, 0x0E, 0x4C, 0x97, 0x43, 0x86, 0x20, +0xE0, 0xB2, 0x3D, 0x1B, 0xF9, 0xEA, 0xE9, 0x07, +0x2E, 0x40, 0x03, 0x22, 0xCC, 0x04, 0x2E, 0x60, +0x03, 0x2C, 0xCE, 0x04, 0x86, 0x20, 0x48, 0x00, +0x01, 0x16, 0x4E, 0x23, 0x01, 0x10, 0x3C, 0x20, +0x10, 0xF5, 0x96, 0xA6, 0xC2, 0x23, 0x2E, 0x17, +0xE1, 0x4C, 0xC9, 0x20, 0x3C, 0x30, 0x0E, 0x8C, +0x96, 0x1C, 0xC0, 0x1C, 0x3C, 0x50, 0x0F, 0x55, +0x3C, 0x60, 0x11, 0x04, 0x97, 0x2B, 0x96, 0xB3, +0xE0, 0x44, 0xE8, 0x14, 0x3C, 0x10, 0x10, 0xDB, +0x3C, 0x00, 0x10, 0xF9, 0x96, 0xCB, 0x97, 0x43, +0xE0, 0x65, 0xE8, 0x0C, 0x86, 0x41, 0x86, 0x60, +0x85, 0x80, 0x3F, 0x27, 0xE1, 0x4D, 0x3F, 0x37, +0xE1, 0x52, 0x3C, 0xCB, 0xF0, 0xA7, 0x48, 0xFF, +0xFE, 0x5F, 0x3C, 0x40, 0x0F, 0x55, 0x3C, 0x20, +0x11, 0x04, 0x97, 0xA3, 0x96, 0x53, 0x86, 0x61, +0xE0, 0x26, 0x3F, 0x37, 0xE1, 0x4C, 0xE8, 0x17, +0x3C, 0x30, 0x10, 0xDB, 0x3C, 0x00, 0x10, 0xF9, +0x97, 0x5B, 0x97, 0x03, 0xE0, 0xA4, 0xE8, 0x0F, +0x3C, 0xA7, 0xF9, 0xE4, 0x87, 0xC0, 0x3D, 0xEB, +0xF9, 0xE6, 0x86, 0x82, 0x5A, 0xA8, 0x02, 0x20, +0x3D, 0x10, 0x10, 0xF4, 0x5B, 0x18, 0x02, 0x23, +0x87, 0x00, 0xD5, 0x56, 0x3C, 0x60, 0x0F, 0x55, +0x3C, 0x10, 0x10, 0xFA, 0x96, 0xB3, 0x96, 0xCB, +0xE0, 0x62, 0xE8, 0x2E, 0x3C, 0x50, 0x10, 0xDB, +0x3C, 0x00, 0x10, 0xF9, 0x97, 0x2B, 0x97, 0x83, +0xE0, 0x86, 0xE8, 0x26, 0x3C, 0xA7, 0xF9, 0xE4, +0x87, 0xC0, 0x3D, 0xEB, 0xF9, 0xE6, 0x5A, 0xA0, +0x01, 0x06, 0x86, 0x81, 0x3D, 0x4B, 0xF9, 0xE4, +0xD5, 0x60, 0x3C, 0xE0, 0x10, 0xF4, 0x5A, 0xE0, +0x01, 0xE1, 0x3C, 0x33, 0xF9, 0xE5, 0x3C, 0x00, +0x11, 0x07, 0x8C, 0x61, 0x97, 0x9B, 0x97, 0x43, +0xE0, 0xA6, 0x3C, 0x6B, 0xF9, 0xE5, 0x4E, 0xF2, +0xFE, 0x13, 0x3C, 0xA8, 0x10, 0xF4, 0x3D, 0xEB, +0xF9, 0xE5, 0x3C, 0x40, 0x11, 0x13, 0x3C, 0x4B, +0xF9, 0xE7, 0x48, 0xFF, 0xFE, 0x09, 0x3C, 0x20, +0x0F, 0x55, 0x3C, 0x30, 0x10, 0xF8, 0x96, 0x53, +0x97, 0x5B, 0xE0, 0x25, 0xE8, 0x42, 0x3C, 0x40, +0x10, 0xDB, 0x3C, 0x00, 0x10, 0xF9, 0x97, 0xA3, +0x96, 0x83, 0xE0, 0xC2, 0xE9, 0x09, 0x3C, 0x10, +0x10, 0xDC, 0x3C, 0x50, 0x10, 0xF9, 0x96, 0xCB, +0x97, 0x2B, 0xE0, 0x64, 0xE8, 0x32, 0x3C, 0x17, +0xF9, 0xE4, 0x87, 0x00, 0x3D, 0x8B, 0xF9, 0xE6, +0xC1, 0x07, 0x3D, 0x8B, 0xF9, 0xE4, 0x3D, 0x8B, +0xF9, 0xE5, 0x48, 0xFF, 0xFD, 0xE5, 0x3D, 0x90, +0x10, 0xF4, 0x5B, 0x90, 0x02, 0x09, 0x3C, 0x00, +0x10, 0xF4, 0x87, 0xC0, 0x3D, 0xEB, 0xF9, 0xE7, +0xC8, 0x0A, 0xD5, 0x9B, 0x3C, 0x37, 0xF9, 0xE7, +0x9F, 0x99, 0x3C, 0x6B, 0xF9, 0xE7, 0x4E, 0x36, +0xFD, 0xD3, 0xD5, 0xF2, 0x3C, 0x53, 0xF9, 0xE5, +0x3C, 0x20, 0x11, 0x07, 0x8C, 0xA1, 0x97, 0x2B, +0x96, 0x53, 0xE0, 0x24, 0x3C, 0x4B, 0xF9, 0xE5, +0x4E, 0xF2, 0xFD, 0xC6, 0x3D, 0xE8, 0x10, 0xF4, +0x3D, 0xEB, 0xF9, 0xE5, 0x48, 0xFF, 0xFD, 0xC0, +0x3C, 0x60, 0x10, 0xDB, 0x3C, 0x20, 0x10, 0xF9, +0x96, 0x33, 0x96, 0x53, 0xE0, 0x20, 0x4E, 0xF2, +0xFD, 0xB7, 0x3C, 0x40, 0x11, 0x13, 0x3C, 0x37, +0xF9, 0xE6, 0x97, 0xA3, 0x9D, 0x59, 0xE0, 0xC3, +0x3C, 0x5B, 0xF9, 0xE6, 0x4E, 0xF2, 0xFD, 0xAC, +0x85, 0x80, 0x3C, 0xC8, 0x10, 0xF4, 0x3C, 0xCB, +0xF9, 0xE5, 0x3C, 0xCB, 0xF9, 0xE6, 0x3D, 0x60, +0x0E, 0x5D, 0x85, 0x60, 0x3E, 0x48, 0x0A, 0x60, +0xE1, 0x76, 0xE8, 0x07, 0x39, 0x72, 0x2D, 0x01, +0x39, 0x74, 0xAD, 0x09, 0x8D, 0x61, 0xD5, 0xF9, +0x3C, 0x00, 0x0E, 0x5E, 0x84, 0xA0, 0x95, 0x81, +0x3E, 0x08, 0x0A, 0x60, 0xD6, 0x0A, 0x98, 0xA8, +0x41, 0x54, 0x94, 0x00, 0x03, 0x01, 0x05, 0x80, +0x13, 0x0A, 0x82, 0xC0, 0x8C, 0xA2, 0xD5, 0xF7, +0x3C, 0x20, 0x0E, 0x5F, 0x84, 0xA0, 0x95, 0x11, +0x3E, 0x18, 0x0A, 0x60, 0x4C, 0x52, 0x3D, 0x80, +0x98, 0xE9, 0x40, 0x84, 0x94, 0x00, 0x02, 0xD1, +0x85, 0xA0, 0x12, 0xD4, 0x02, 0xE0, 0x8C, 0xA2, +0xD5, 0xF6, 0x3C, 0x4B, 0xF9, 0xE4, 0x3D, 0x18, +0x10, 0xF4, 0x3D, 0x1B, 0xF9, 0xE5, 0x3D, 0x1B, +0xF9, 0xE6, 0x48, 0xFF, 0xFD, 0x6D, 0x2E, 0x37, +0xE1, 0x61, 0xCB, 0x03, 0x86, 0xA0, 0xD5, 0x08, +0xC6, 0xFE, 0x2E, 0x27, 0xF3, 0xDF, 0xC2, 0x03, +0x4E, 0x53, 0xFC, 0xD2, 0x86, 0xA1, 0x3F, 0x57, +0xE1, 0x62, 0x48, 0xFF, 0xFC, 0xCD, 0x84, 0x00, +0x3C, 0x0B, 0xF0, 0xB4, 0xD5, 0x18, 0x5A, 0xB8, +0x01, 0x39, 0x3C, 0x30, 0x10, 0xA5, 0x3D, 0x67, +0xF0, 0xB7, 0x96, 0x9B, 0xE0, 0x56, 0xE8, 0x1A, +0x3C, 0x23, 0xF0, 0xB5, 0x87, 0x20, 0x8C, 0x41, +0x96, 0x13, 0x87, 0x00, 0xE4, 0x0B, 0x3F, 0x87, +0xE1, 0x62, 0x3D, 0x9B, 0xF0, 0xB6, 0x3D, 0x9B, +0xF0, 0xB4, 0xE8, 0x05, 0x3C, 0x0B, 0xF0, 0xB5, +0x48, 0xFF, 0xFC, 0xD7, 0x87, 0xCA, 0x3D, 0xEB, +0xF0, 0xB5, 0x3F, 0x97, 0xE1, 0x64, 0x48, 0xFF, +0xFC, 0xD0, 0xCD, 0x14, 0x2E, 0x00, 0x03, 0x2C, +0xC0, 0x11, 0x3C, 0x13, 0xF0, 0xB4, 0x3C, 0x60, +0x10, 0xA6, 0x8C, 0x21, 0x97, 0x0B, 0x96, 0xF3, +0xE0, 0x64, 0x3C, 0x4B, 0xF0, 0xB4, 0xE8, 0x09, +0x3E, 0x57, 0xE1, 0x60, 0x3E, 0x57, 0xE1, 0x64, +0xD5, 0x04, 0x86, 0xE0, 0x3D, 0x7B, 0xF0, 0xB4, +0x85, 0x60, 0x3C, 0xBB, 0xF0, 0xB5, 0x3C, 0xBB, +0xF0, 0xB6, 0x48, 0xFF, 0xFC, 0xB2, 0x3E, 0x37, +0xE1, 0x60, 0x3E, 0x37, 0xE1, 0x62, 0x48, 0xFF, +0xFC, 0xB8, 0x4E, 0x53, 0xFD, 0x26, 0x2E, 0x10, +0x03, 0x2C, 0x4E, 0x12, 0xFD, 0x22, 0x3C, 0x40, +0x10, 0xA5, 0x3C, 0xA7, 0xF0, 0xB7, 0x96, 0xE3, +0xE1, 0x43, 0x4E, 0xF2, 0xFD, 0x1A, 0x3F, 0x27, +0xE1, 0x60, 0x3C, 0x5B, 0xF0, 0xB5, 0x3C, 0x5B, +0xF0, 0xB6, 0x48, 0xFF, 0xFD, 0x12, 0x3C, 0x00, +0x0F, 0x8A, 0x97, 0x83, 0x59, 0x43, 0x00, 0x04, +0x48, 0xFF, 0xFD, 0x1A, 0x4E, 0x52, 0xFC, 0x5A, +0x48, 0xFF, 0xFC, 0x5E, 0x80, 0x0C, 0xFC, 0xE2, +0x80, 0x80, 0xCA, 0x0C, 0x45, 0x00, 0x00, 0x5C, +0x3E, 0x0F, 0xE1, 0x98, 0x42, 0x02, 0x40, 0x73, +0x3B, 0x10, 0x44, 0x00, 0x3B, 0x10, 0xC4, 0x20, +0xDD, 0x9E, 0x5A, 0x28, 0x01, 0x1C, 0x44, 0x00, +0x00, 0x5C, 0x3E, 0x3F, 0xE1, 0x98, 0x42, 0x32, +0x00, 0x73, 0x44, 0xF0, 0x00, 0x64, 0x04, 0x21, +0x80, 0x12, 0x04, 0x51, 0x80, 0x0C, 0x9B, 0x15, +0x04, 0x51, 0x80, 0x13, 0x04, 0x31, 0x80, 0x0D, +0x88, 0x44, 0x40, 0x01, 0x3C, 0x16, 0x9A, 0xAB, +0x88, 0xA2, 0x40, 0x42, 0xBC, 0x96, 0xAC, 0x08, +0xAD, 0x09, 0xDD, 0x9E, 0xFC, 0x20, 0x3E, 0x2F, +0xFF, 0x08, 0x44, 0x30, 0x00, 0x38, 0x80, 0x82, +0x42, 0x40, 0x8C, 0x73, 0x3E, 0x3F, 0xE1, 0x98, +0x00, 0x42, 0x00, 0x30, 0x44, 0x70, 0x00, 0x5C, +0x80, 0xC3, 0x42, 0x60, 0x1C, 0x73, 0xCC, 0x0D, +0x86, 0x21, 0x51, 0x03, 0x00, 0x50, 0x11, 0x13, +0x00, 0x50, 0x2E, 0x67, 0xE1, 0x62, 0xCE, 0x02, +0x84, 0x8A, 0x12, 0x48, 0x00, 0x01, 0xD5, 0x11, +0x50, 0x83, 0x00, 0x50, 0x02, 0x44, 0x00, 0x01, +0x8E, 0x81, 0x97, 0x63, 0x12, 0x54, 0x00, 0x01, +0x4E, 0x54, 0x00, 0x08, 0x85, 0xE0, 0x84, 0xE0, +0x10, 0xF3, 0x00, 0x50, 0x12, 0x74, 0x00, 0x01, +0x45, 0x20, 0x00, 0x5C, 0x42, 0x30, 0x48, 0x73, +0x45, 0x40, 0x00, 0x38, 0x01, 0x31, 0x80, 0x50, +0x80, 0x03, 0x42, 0x20, 0xD0, 0x73, 0x5B, 0x38, +0x01, 0x04, 0xA0, 0x51, 0xD5, 0x02, 0xB4, 0x22, +0xB6, 0x20, 0xFC, 0xA0, 0xFC, 0x60, 0x44, 0x70, +0x00, 0x5C, 0xFF, 0xC4, 0x3E, 0x9F, 0xE1, 0x98, +0x40, 0x64, 0x9C, 0x00, 0x50, 0xA3, 0x00, 0x50, +0x84, 0x40, 0x85, 0x60, 0x10, 0x23, 0x00, 0x50, +0x12, 0xB5, 0x00, 0x01, 0x81, 0x81, 0x49, 0xFF, +0xFF, 0xAF, 0x44, 0x10, 0x00, 0x38, 0x3E, 0x0F, +0xFF, 0x08, 0x42, 0x06, 0x04, 0x73, 0x83, 0x86, +0xA1, 0x45, 0x22, 0x20, 0x00, 0x00, 0xA9, 0x75, +0xA9, 0x76, 0x44, 0x50, 0x00, 0x64, 0xA4, 0xC4, +0xB4, 0x20, 0xFE, 0xAC, 0x50, 0x84, 0x80, 0x08, +0x38, 0x14, 0x1C, 0x0A, 0x10, 0xB3, 0x00, 0x20, +0xAC, 0xF7, 0x12, 0x33, 0x00, 0x08, 0xA8, 0x71, +0xBA, 0x90, 0xBA, 0x92, 0x22, 0x00, 0x00, 0x01, +0x51, 0x24, 0x80, 0x30, 0xFE, 0x2C, 0x50, 0xD4, +0x80, 0x48, 0xB8, 0x91, 0xB8, 0x93, 0x89, 0xC7, +0x88, 0xED, 0x3B, 0x03, 0xC4, 0x00, 0x50, 0x43, +0x00, 0x20, 0x84, 0xE0, 0xFF, 0x5C, 0x3B, 0x09, +0x44, 0x20, 0xA9, 0xE1, 0x14, 0x55, 0x00, 0x01, +0xFC, 0xE0, 0x4E, 0x05, 0x00, 0x2B, 0xFC, 0x61, +0x46, 0x97, 0xFF, 0xFF, 0x81, 0x81, 0x81, 0x42, +0xB0, 0x41, 0x96, 0x98, 0x49, 0xFF, 0xFF, 0x46, +0x84, 0xFF, 0x2E, 0xB8, 0x03, 0x23, 0x50, 0x84, +0x8F, 0xFF, 0x84, 0xC0, 0x3E, 0xDF, 0xFF, 0x08, +0x44, 0xE0, 0x00, 0x38, 0xE0, 0xCB, 0xE8, 0x12, +0x40, 0x06, 0x18, 0x0E, 0x96, 0x44, 0xC9, 0x0C, +0x80, 0x4D, 0x42, 0x23, 0x38, 0x73, 0xF1, 0x01, +0xB4, 0x02, 0x49, 0xFF, 0xE3, 0x96, 0xE0, 0x08, +0xE8, 0x03, 0x97, 0xF2, 0x81, 0x00, 0x8C, 0xC1, +0xD5, 0xEE, 0x80, 0x07, 0xB7, 0x0A, 0xFC, 0xE1, +0x84, 0x1F, 0xDD, 0x9E, 0xFC, 0x40, 0x81, 0x40, +0x83, 0x81, 0x81, 0x22, 0x80, 0xC3, 0x49, 0x00, +0x0F, 0x3F, 0x3D, 0x0C, 0x07, 0x39, 0x3C, 0x0D, +0xFE, 0x58, 0x84, 0xE0, 0x14, 0x78, 0x00, 0x02, +0x47, 0x10, 0x01, 0x00, 0xA9, 0xC5, 0x3C, 0x10, +0x0E, 0x5D, 0xE0, 0xE1, 0xE8, 0x09, 0x41, 0x28, +0x9C, 0x20, 0x38, 0x15, 0x1D, 0x01, 0x12, 0x19, +0x00, 0x00, 0x8C, 0xE1, 0xD5, 0xF5, 0x80, 0x87, +0x46, 0xA0, 0x01, 0x00, 0x84, 0xA0, 0x3C, 0x80, +0x0E, 0x5F, 0x9A, 0x3C, 0xE0, 0x08, 0xE8, 0x07, +0x40, 0x85, 0x1C, 0x20, 0x12, 0x54, 0x00, 0x00, +0x8C, 0xE1, 0xD5, 0xF6, 0x84, 0x00, 0x47, 0x90, +0x01, 0x00, 0x3C, 0x30, 0x0E, 0x5F, 0x98, 0x47, +0xE0, 0x03, 0xE8, 0x09, 0x38, 0x24, 0x81, 0x01, +0x41, 0xEC, 0x84, 0x20, 0x12, 0x2F, 0x00, 0x00, +0x8C, 0x01, 0xD5, 0xF4, 0x84, 0x80, 0x47, 0x60, +0x01, 0x00, 0x82, 0xE4, 0x3C, 0x20, 0x0E, 0x5F, +0x98, 0xE1, 0x94, 0x11, 0xE0, 0x80, 0x46, 0xA0, +0x01, 0x00, 0x94, 0x19, 0xE8, 0x0E, 0x3D, 0x80, +0x0E, 0x5E, 0x88, 0x16, 0xE0, 0x98, 0xE8, 0x05, +0x38, 0x3E, 0x11, 0x01, 0xAC, 0xC0, 0xD5, 0x03, +0x13, 0x70, 0x00, 0x00, 0x8C, 0x81, 0xD5, 0xEB, +0x9D, 0x59, 0x88, 0x0A, 0xC6, 0x2F, 0x3C, 0x60, +0x0E, 0xF4, 0xAD, 0x80, 0x40, 0x75, 0x14, 0x20, +0x3C, 0x10, 0x0E, 0xF5, 0x9C, 0x1A, 0xAC, 0x78, +0x44, 0x30, 0x00, 0x82, 0x86, 0x20, 0x3E, 0x28, +0x1C, 0xE8, 0x3C, 0x60, 0x0E, 0x89, 0x97, 0xF3, +0xE1, 0xA7, 0xE8, 0x20, 0x38, 0x51, 0x0D, 0x01, +0x41, 0x35, 0x00, 0x20, 0x12, 0x59, 0x80, 0x00, +0x9D, 0x01, 0x9C, 0x59, 0x38, 0x61, 0x05, 0x01, +0x82, 0x40, 0x41, 0x45, 0x10, 0x20, 0x12, 0x6A, +0x00, 0x00, 0x9D, 0xDA, 0x8D, 0xC2, 0x41, 0x55, +0x48, 0x20, 0x38, 0x51, 0x1D, 0x01, 0x8C, 0x03, +0x12, 0x5A, 0x80, 0x00, 0x8D, 0xA1, 0x8C, 0x64, +0xD5, 0xE1, 0x40, 0x45, 0x14, 0x20, 0xAD, 0x80, +0xAD, 0xA0, 0x85, 0x21, 0x14, 0x98, 0x00, 0x02, +0xFC, 0xC0, 0xFC, 0x01, 0x3C, 0x20, 0x0E, 0x64, +0x96, 0x41, 0x3C, 0x50, 0x0E, 0x66, 0x92, 0x10, +0x4C, 0x20, 0xC0, 0x08, 0xD0, 0x16, 0x3C, 0x50, +0x0E, 0x67, 0xD0, 0x15, 0x84, 0x02, 0xD5, 0x1C, +0x3C, 0x30, 0x0E, 0x65, 0x4C, 0x30, 0xC0, 0x08, +0xD0, 0x10, 0x3C, 0x50, 0x0E, 0x67, 0xD0, 0x0F, +0x84, 0x06, 0xD5, 0x12, 0xD0, 0x0E, 0x3C, 0x50, +0x0E, 0x67, 0xD8, 0x0D, 0x84, 0x04, 0xD5, 0x0C, +0x84, 0x01, 0xD5, 0x0A, 0x84, 0x03, 0xD5, 0x08, +0x84, 0x07, 0xD5, 0x06, 0x84, 0x05, 0xD5, 0x04, +0x84, 0x08, 0xD5, 0x02, 0x84, 0x00, 0xFC, 0x81, +0x44, 0x20, 0x00, 0x5C, 0x3E, 0x1F, 0xE1, 0x98, +0x42, 0x10, 0x08, 0x73, 0x84, 0x80, 0x50, 0x50, +0x80, 0x18, 0x80, 0x01, 0x50, 0x30, 0x80, 0x08, +0x84, 0x5F, 0x84, 0x20, 0xAF, 0x1C, 0xAF, 0x2C, +0xAE, 0xAD, 0xAC, 0x6B, 0x12, 0x10, 0x00, 0x2C, +0xDD, 0x9E, 0xFC, 0x63, 0x3F, 0xCF, 0xF3, 0xE8, +0x3C, 0x00, 0x0E, 0x89, 0x3C, 0x10, 0x10, 0xF4, +0x96, 0x83, 0xBA, 0x80, 0x3E, 0xB8, 0x1C, 0xE8, +0x5A, 0x10, 0x01, 0x06, 0x3C, 0x30, 0x10, 0xF4, +0x5A, 0x38, 0x03, 0x0C, 0x3C, 0x40, 0x10, 0xFC, +0x97, 0x63, 0xE0, 0xA2, 0xE8, 0x06, 0x3C, 0x00, +0x10, 0xFC, 0x96, 0x83, 0xBA, 0x80, 0xD5, 0x0A, +0x3C, 0x60, 0x10, 0xF4, 0x5A, 0x68, 0x02, 0x07, +0x3C, 0x70, 0x05, 0x2E, 0xE0, 0xE2, 0xE8, 0x02, +0xBF, 0x80, 0x3C, 0x10, 0x0E, 0xA9, 0x96, 0xCB, +0x4E, 0x36, 0x00, 0x05, 0x85, 0x01, 0x3C, 0x88, +0x0E, 0xA9, 0x3E, 0x6F, 0xE1, 0x98, 0x85, 0x20, +0x81, 0x49, 0x50, 0xE3, 0x00, 0x08, 0x3E, 0xCF, +0xDB, 0x18, 0x85, 0xA6, 0x45, 0x00, 0x00, 0x5C, +0x82, 0x2E, 0x43, 0x15, 0x40, 0x73, 0x04, 0x48, +0x80, 0x01, 0x97, 0x64, 0xCD, 0x07, 0x42, 0x72, +0x18, 0x0B, 0xC7, 0x04, 0x80, 0x0A, 0x49, 0xFF, +0xFF, 0xA9, 0x45, 0x30, 0x00, 0x5C, 0x3E, 0x0F, +0xE1, 0xA0, 0x42, 0x05, 0x4C, 0x73, 0xA0, 0x81, +0x96, 0x54, 0x4E, 0x12, 0x00, 0xC5, 0x42, 0x31, +0x18, 0x0B, 0x4E, 0x32, 0x00, 0xC1, 0x05, 0x53, +0x00, 0x15, 0x3C, 0x40, 0x0E, 0xA9, 0x45, 0x60, +0x00, 0x64, 0x41, 0x7A, 0xDA, 0xF7, 0x97, 0x63, +0x40, 0x2B, 0x94, 0x57, 0x5C, 0xF1, 0x01, 0x00, +0x20, 0x83, 0x00, 0x1D, 0xE8, 0x04, 0xCA, 0x05, +0x84, 0x41, 0xD5, 0x03, 0x44, 0x20, 0x00, 0xFF, +0x5A, 0x8F, 0xFF, 0x06, 0x3D, 0x8D, 0xFC, 0xFA, +0x84, 0xE0, 0xD5, 0x64, 0xF2, 0x83, 0x5A, 0x8F, +0x80, 0x04, 0x48, 0x00, 0x00, 0xA1, 0x3C, 0x73, +0xED, 0x8C, 0xF7, 0x82, 0x59, 0x93, 0x89, 0x00, +0x80, 0xEC, 0x42, 0x74, 0x34, 0x73, 0x04, 0x13, +0x00, 0x12, 0x05, 0x03, 0x00, 0x13, 0x45, 0xE0, +0x00, 0x64, 0x40, 0x30, 0xF8, 0x76, 0x40, 0x48, +0x78, 0x96, 0xA5, 0x7A, 0xA4, 0xBB, 0x12, 0x3F, +0x80, 0x08, 0x12, 0x4F, 0x80, 0x09, 0x84, 0x01, +0x12, 0x5F, 0x80, 0x0A, 0x12, 0x2F, 0x80, 0x0B, +0x10, 0x03, 0x80, 0x09, 0xF1, 0x05, 0xF0, 0x04, +0xF3, 0x81, 0xB6, 0x9F, 0x3D, 0x9B, 0xED, 0x8C, +0x49, 0xFF, 0xE2, 0x23, 0x3D, 0x10, 0x05, 0x1F, +0xB4, 0x3F, 0xE1, 0xA0, 0xF4, 0x01, 0xF0, 0x02, +0xF3, 0x03, 0xE8, 0x0C, 0x59, 0x20, 0x09, 0x04, +0x86, 0x65, 0x3D, 0x2B, 0xED, 0x8C, 0x11, 0x33, +0x80, 0x09, 0xAD, 0x3A, 0xAC, 0x7B, 0x10, 0x33, +0x80, 0x08, 0x2F, 0x40, 0x1C, 0xB9, 0x5B, 0x48, +0x01, 0x06, 0x80, 0x08, 0x49, 0x00, 0x0E, 0x78, +0xD5, 0x07, 0x51, 0x54, 0x03, 0xA6, 0x23, 0x63, +0x00, 0x0A, 0x39, 0x65, 0xD5, 0x09, 0x2E, 0x77, +0xDB, 0x1A, 0x86, 0xE1, 0x40, 0x8B, 0xA0, 0x0C, +0x8C, 0xE1, 0x40, 0x94, 0x24, 0x04, 0x3E, 0x77, +0xDB, 0x1A, 0x40, 0x94, 0x80, 0x13, 0xD5, 0x4B, +0x83, 0x2C, 0x43, 0x93, 0xB4, 0x73, 0x02, 0x0C, +0x80, 0x04, 0x42, 0x10, 0x20, 0x0B, 0xC1, 0x04, +0x8C, 0xE1, 0xE0, 0xF8, 0xE9, 0xF6, 0x4C, 0x7C, +0x40, 0x07, 0x45, 0x8F, 0xFF, 0x80, 0x11, 0x83, +0x00, 0x1D, 0xD5, 0x39, 0x3D, 0xE3, 0xED, 0x8C, +0x82, 0x4C, 0x05, 0x33, 0x00, 0x12, 0x04, 0x83, +0x00, 0x13, 0x43, 0x23, 0xB4, 0x73, 0x45, 0x40, +0x00, 0x64, 0x2E, 0x50, 0x1C, 0xB9, 0x59, 0x0F, +0x08, 0x03, 0x86, 0x23, 0x40, 0x39, 0xD0, 0x76, +0x40, 0x44, 0x50, 0x96, 0x3D, 0x0B, 0xED, 0x8C, +0x10, 0x73, 0x00, 0x1D, 0x11, 0x19, 0x00, 0x09, +0x12, 0x39, 0x00, 0x02, 0x12, 0x49, 0x00, 0x03, +0x10, 0x29, 0x00, 0x08, 0x5A, 0x58, 0x01, 0x06, +0x80, 0x07, 0x49, 0x00, 0x0E, 0x2D, 0xD5, 0x07, +0x51, 0x53, 0x83, 0xA6, 0x23, 0x63, 0x00, 0x0A, +0x39, 0x65, 0xD5, 0x09, 0x2E, 0x27, 0xDB, 0x1A, +0x86, 0xE1, 0x40, 0xFB, 0x9C, 0x0C, 0x8C, 0x41, +0x40, 0x97, 0xA4, 0x04, 0x3E, 0x27, 0xDB, 0x1A, +0x40, 0x94, 0x80, 0x13, 0x8D, 0x41, 0x50, 0x63, +0x00, 0x5C, 0x5A, 0xA0, 0x0F, 0x04, 0x48, 0xFF, +0xFF, 0x1F, 0x3E, 0x2F, 0xDB, 0x18, 0x3D, 0x93, +0xED, 0x8C, 0x85, 0x40, 0x81, 0x82, 0x85, 0xA6, +0x40, 0x54, 0xA8, 0x0E, 0x96, 0x6C, 0xC9, 0x1A, +0x81, 0xCC, 0x42, 0xE5, 0x34, 0x73, 0x02, 0x47, +0x00, 0x04, 0x42, 0x32, 0x20, 0x0B, 0xCB, 0x04, +0x10, 0x31, 0x00, 0x09, 0xD5, 0x0F, 0x10, 0x11, +0x00, 0x09, 0x01, 0xE7, 0x00, 0x09, 0x51, 0x85, +0x03, 0xA6, 0x59, 0x0F, 0x00, 0x08, 0x38, 0x15, +0xE1, 0x09, 0x59, 0x9C, 0x80, 0x09, 0x11, 0x07, +0x00, 0x09, 0x8D, 0x41, 0x8C, 0x46, 0x5A, 0xA8, +0x0A, 0xE1, 0x54, 0x0C, 0x88, 0x00, 0x97, 0xC1, +0x3D, 0x9B, 0xED, 0x8C, 0xC7, 0x06, 0x2E, 0x77, +0xDB, 0x1B, 0x5A, 0x70, 0xFF, 0x05, 0x8C, 0xE1, +0x3E, 0x77, 0xDB, 0x1B, 0xFC, 0xE3, 0xFC, 0x61, +0x3C, 0x60, 0x10, 0xF4, 0x97, 0xB3, 0xC6, 0x25, +0x84, 0xC0, 0x2F, 0x88, 0x03, 0x23, 0x80, 0xE6, +0xE0, 0xF8, 0xE8, 0x09, 0xA5, 0x40, 0x40, 0x22, +0x9C, 0x0E, 0x96, 0xD4, 0xC3, 0x02, 0x8C, 0xC1, +0x8C, 0xE1, 0xD5, 0xF7, 0x3C, 0x20, 0x10, 0xF4, +0x5A, 0x20, 0x01, 0x06, 0x3C, 0x30, 0x10, 0xF4, +0x5A, 0x38, 0x03, 0x06, 0x3C, 0x70, 0x10, 0xFC, +0x97, 0xFB, 0xD5, 0x08, 0x3C, 0x40, 0x10, 0xF4, +0x84, 0xE0, 0x5A, 0x48, 0x02, 0x04, 0x3C, 0x70, +0x05, 0x2E, 0xE0, 0xC7, 0xE9, 0x03, 0xD5, 0x67, +0x80, 0xE6, 0x3E, 0x4F, 0xE1, 0xA0, 0x81, 0xC1, +0x81, 0x80, 0x85, 0x40, 0x45, 0xC0, 0x00, 0x5C, +0x50, 0x52, 0x7F, 0xF8, 0x2E, 0x08, 0x03, 0x23, +0xE1, 0x40, 0xE8, 0x59, 0x02, 0x16, 0x00, 0x00, +0x40, 0x20, 0xA8, 0x0E, 0x96, 0xD4, 0xCB, 0x51, +0x3C, 0x00, 0x10, 0xF4, 0xC0, 0x04, 0x8C, 0xC1, +0xE0, 0xE6, 0xE9, 0x4D, 0x85, 0x20, 0x42, 0xB4, +0xF0, 0x24, 0x86, 0x01, 0x40, 0xD2, 0x2C, 0x00, +0x04, 0x86, 0x80, 0x01, 0x54, 0x84, 0x00, 0x01, +0x4E, 0x82, 0x00, 0x06, 0x89, 0x30, 0x5A, 0x98, +0x0F, 0xF4, 0xD5, 0x3D, 0xF5, 0x81, 0x40, 0x58, +0x28, 0x0C, 0xFE, 0x6F, 0x12, 0x16, 0x00, 0x00, +0x02, 0x17, 0x00, 0x00, 0xB6, 0x9F, 0x40, 0x48, +0x24, 0x0C, 0xFF, 0x0F, 0x12, 0x47, 0x00, 0x00, +0x80, 0x09, 0x49, 0xFF, 0xFE, 0x3B, 0x01, 0x16, +0x80, 0x04, 0x80, 0x09, 0x59, 0x28, 0x80, 0x01, +0x11, 0x26, 0x80, 0x04, 0x80, 0x2A, 0x49, 0xFF, +0xFD, 0x03, 0xF5, 0x01, 0x2E, 0x08, 0x0A, 0x3A, +0x41, 0x32, 0xAC, 0x00, 0x51, 0x49, 0x80, 0x18, +0x00, 0x2A, 0x00, 0x04, 0xB4, 0x9F, 0x8C, 0x41, +0x96, 0xD2, 0xE0, 0x60, 0x10, 0x3A, 0x00, 0x04, +0xE9, 0x0E, 0x01, 0x56, 0x80, 0x04, 0x2F, 0x78, +0x0A, 0x3B, 0x59, 0x6A, 0x80, 0x40, 0x10, 0x0A, +0x00, 0x04, 0x11, 0x66, 0x80, 0x04, 0x13, 0x79, +0x80, 0x2C, 0xD5, 0x03, 0x12, 0x89, 0x80, 0x2C, +0x8D, 0x41, 0xD5, 0xA5, 0xFC, 0xE1, 0xFC, 0x65, +0x2E, 0x17, 0xF3, 0xD9, 0x84, 0x00, 0x3C, 0x0F, +0xFE, 0x54, 0xC9, 0x03, 0x3E, 0x10, 0x03, 0x1C, +0x84, 0x40, 0x84, 0x60, 0x3E, 0x5F, 0xE1, 0xA0, +0x44, 0x90, 0x00, 0x5C, 0x12, 0x2F, 0x80, 0x0E, +0x12, 0x2F, 0x80, 0x0F, 0x80, 0x83, 0x81, 0x89, +0x3E, 0xBF, 0xF3, 0xEC, 0x50, 0xA2, 0xFF, 0xF8, +0x80, 0xC5, 0x42, 0x62, 0x24, 0x73, 0xA1, 0xF1, +0x3E, 0x6F, 0xE1, 0xA0, 0x96, 0x3C, 0xC0, 0x03, +0x8C, 0x61, 0x96, 0xD8, 0x42, 0x82, 0x30, 0x24, +0x8C, 0x81, 0x40, 0xD5, 0xA0, 0x00, 0x81, 0xCD, +0x89, 0x0A, 0x3B, 0x04, 0x64, 0x04, 0x3B, 0x07, +0x64, 0x24, 0x3B, 0x04, 0x64, 0x04, 0x3B, 0x07, +0x64, 0x24, 0x3B, 0x04, 0x48, 0x00, 0x3B, 0x07, +0x48, 0x20, 0x3E, 0x7F, 0xE1, 0x98, 0x5A, 0x48, +0x0F, 0xE1, 0x2E, 0x18, 0x03, 0x23, 0xCB, 0x0F, +0x4E, 0x17, 0x00, 0x0E, 0x50, 0x0F, 0x80, 0x1E, +0xB0, 0x47, 0x49, 0xFF, 0xFF, 0x2E, 0x3E, 0xEF, +0xE1, 0x98, 0x85, 0x60, 0x44, 0xC0, 0x00, 0x5C, +0x48, 0x00, 0x01, 0x30, 0xC9, 0x0C, 0xCB, 0x0B, +0x80, 0xC3, 0x80, 0x06, 0x8C, 0xC1, 0x49, 0xFF, +0xFD, 0xBD, 0x5A, 0x68, 0x0F, 0xFC, 0x87, 0xC1, +0x48, 0x00, 0x02, 0xAD, 0x47, 0x07, 0xFF, 0xFF, +0x3E, 0xBF, 0xFF, 0x08, 0x50, 0xC8, 0x0F, 0xFF, +0x03, 0x1F, 0x80, 0x0E, 0x85, 0x40, 0x45, 0x20, +0x00, 0x5C, 0x40, 0x28, 0xA8, 0x0E, 0x97, 0x14, +0xCC, 0x08, 0x82, 0x66, 0x43, 0x35, 0x48, 0x73, +0x04, 0x59, 0x80, 0x01, 0x96, 0x2C, 0xC8, 0x05, +0x8D, 0x41, 0x5A, 0xA8, 0x0F, 0xF4, 0xD5, 0xCF, +0x83, 0x84, 0x80, 0x0A, 0x02, 0x1F, 0x80, 0x0F, +0xB0, 0x88, 0x80, 0x7C, 0x49, 0xFF, 0xFC, 0xAF, +0x81, 0x00, 0x5A, 0x07, 0xFF, 0xC5, 0x80, 0xAA, +0x44, 0xD0, 0x00, 0x5C, 0x02, 0x4F, 0x80, 0x0E, +0x85, 0xDF, 0x4E, 0x85, 0x00, 0x2C, 0x45, 0x40, +0x00, 0x38, 0x81, 0x4B, 0x80, 0x6C, 0x85, 0x20, +0x42, 0xA4, 0x50, 0x73, 0x82, 0xA6, 0x43, 0x54, +0xB4, 0x73, 0x04, 0x1A, 0x80, 0x01, 0x96, 0x8C, +0xC2, 0x19, 0x40, 0x02, 0x24, 0x0E, 0x96, 0x44, +0xC9, 0x15, 0x80, 0x09, 0xB0, 0x49, 0x80, 0x5C, +0xF3, 0x83, 0xF4, 0x82, 0xF5, 0x81, 0x49, 0xFF, +0xFB, 0xD9, 0xB4, 0x0A, 0xF1, 0x09, 0x49, 0xFF, +0xE0, 0x3C, 0xF3, 0x03, 0xF5, 0x01, 0xE0, 0x03, +0xF4, 0x02, 0xE8, 0x04, 0x40, 0xE4, 0x80, 0x10, +0x80, 0x60, 0x8D, 0x21, 0x5A, 0x98, 0x0F, 0xE0, +0xF3, 0x88, 0x81, 0x4E, 0x4C, 0x57, 0x00, 0x15, +0x5A, 0xE7, 0xFF, 0x8E, 0x80, 0x0E, 0x02, 0x1F, +0x80, 0x0F, 0xB0, 0x88, 0x80, 0x7C, 0x49, 0xFF, +0xFC, 0x6E, 0x81, 0x20, 0x4C, 0x80, 0x00, 0x0A, +0x5A, 0x0F, 0xFF, 0x04, 0x48, 0xFF, 0xFF, 0x80, +0x81, 0x00, 0x80, 0xAE, 0xD5, 0xBC, 0x81, 0x28, +0x5A, 0x9F, 0xFF, 0x04, 0x48, 0xFF, 0xFF, 0x78, +0x4F, 0xC2, 0x00, 0x08, 0x5B, 0xC8, 0x01, 0x04, +0x48, 0x00, 0x00, 0xB7, 0x87, 0x81, 0xD5, 0xA2, +0x02, 0x8F, 0x80, 0x0F, 0x02, 0xDF, 0x80, 0x0E, +0x80, 0xBC, 0x45, 0x30, 0x00, 0x5C, 0x2F, 0x68, +0x03, 0x23, 0xE0, 0xB6, 0xE8, 0x3A, 0x40, 0x04, +0x14, 0x0E, 0x96, 0xC4, 0xCB, 0x34, 0x4C, 0x54, +0x80, 0x33, 0x45, 0x80, 0x00, 0x38, 0x83, 0x8B, +0x84, 0x9F, 0x82, 0x2C, 0x43, 0xC2, 0xE0, 0x73, +0x83, 0x26, 0x43, 0x91, 0xCC, 0x73, 0x04, 0x2C, +0x80, 0x01, 0x96, 0x54, 0xC1, 0x1F, 0x40, 0x06, +0x8C, 0x0E, 0x96, 0x84, 0xCA, 0x1B, 0x80, 0x03, +0xB0, 0x49, 0x15, 0x3F, 0x80, 0x05, 0xF4, 0x84, +0x15, 0x1F, 0x80, 0x03, 0xF5, 0x82, 0xF3, 0x81, +0x49, 0xFF, 0xFB, 0x78, 0xB4, 0x1C, 0xF1, 0x09, +0x49, 0xFF, 0xDF, 0xDB, 0x05, 0x1F, 0x80, 0x03, +0xF3, 0x01, 0xE0, 0x11, 0xF5, 0x02, 0xF4, 0x04, +0x05, 0x3F, 0x80, 0x05, 0xE8, 0x03, 0x97, 0x1A, +0x82, 0x20, 0x8C, 0x61, 0x5A, 0x38, 0x0F, 0xDA, +0x4C, 0x47, 0x3F, 0xBE, 0x8C, 0xA1, 0xD5, 0xC4, +0x87, 0x80, 0x45, 0x70, 0x00, 0x5C, 0x83, 0x06, +0x43, 0x8E, 0x5C, 0x73, 0x04, 0x2C, 0x00, 0x01, +0x96, 0x14, 0xC8, 0x06, 0x51, 0xCE, 0x00, 0x01, +0x5B, 0xC8, 0x0F, 0xF5, 0xD5, 0x61, 0x40, 0x16, +0xF0, 0x0E, 0x97, 0x4C, 0xCD, 0xF8, 0x4D, 0xC7, +0x3F, 0xF7, 0x80, 0x45, 0x80, 0x1C, 0xB0, 0x49, +0xF5, 0x81, 0x49, 0xFF, 0xFB, 0x47, 0xF3, 0x01, +0x2F, 0x28, 0x03, 0x23, 0x84, 0x9F, 0x82, 0x2C, +0x80, 0x43, 0xE0, 0x52, 0xE8, 0x20, 0x40, 0x04, +0x08, 0x0E, 0x96, 0x44, 0xC9, 0x1A, 0x45, 0x00, +0x00, 0x38, 0x83, 0xCB, 0x43, 0xE1, 0x40, 0x73, +0xF1, 0x09, 0xB4, 0x1E, 0xF4, 0x84, 0x15, 0x2F, +0x80, 0x03, 0x15, 0x1F, 0x80, 0x02, 0xF2, 0x81, +0x49, 0xFF, 0xDF, 0x93, 0x05, 0x1F, 0x80, 0x02, +0xF2, 0x01, 0xE0, 0x11, 0x05, 0x2F, 0x80, 0x03, +0xF4, 0x04, 0xE8, 0x03, 0x97, 0x12, 0x82, 0x20, +0x8C, 0x41, 0xD5, 0xE0, 0x4C, 0x44, 0xFF, 0xC8, +0x48, 0xFF, 0xFF, 0x76, 0x81, 0xA6, 0x42, 0xD5, +0xB0, 0x73, 0x04, 0x06, 0x80, 0x01, 0x42, 0x30, +0x18, 0x0B, 0xC3, 0x1E, 0x97, 0x44, 0xC5, 0x1C, +0x02, 0x47, 0x00, 0x2C, 0x8E, 0x81, 0x97, 0xE3, +0x12, 0x77, 0x00, 0x2C, 0x4E, 0x77, 0x00, 0x15, +0x2E, 0xA0, 0x03, 0x23, 0x8D, 0x41, 0x3E, 0xA0, +0x03, 0x23, 0x8D, 0x61, 0x50, 0xE7, 0x00, 0x5C, +0x5A, 0xB8, 0x0F, 0x04, 0x48, 0xFF, 0xFE, 0xDD, +0x02, 0x7F, 0x80, 0x0E, 0x40, 0x23, 0xAC, 0x0E, +0x96, 0x54, 0xC9, 0xF4, 0xD5, 0xDC, 0x80, 0x0B, +0x49, 0xFF, 0xFC, 0x8C, 0xD5, 0xEF, 0x45, 0x40, +0x00, 0x5C, 0x42, 0xD7, 0x50, 0x24, 0x45, 0x30, +0x00, 0x38, 0x81, 0x0B, 0x40, 0xA3, 0xB4, 0x00, +0x42, 0x84, 0xCC, 0x73, 0x83, 0x8A, 0x0C, 0x1E, +0x00, 0x02, 0xB4, 0x08, 0x49, 0xFF, 0xDF, 0x49, +0x86, 0xA1, 0x02, 0x3F, 0x80, 0x0F, 0x40, 0x5A, +0xA4, 0x0C, 0x84, 0x20, 0xFF, 0x5F, 0x10, 0x1E, +0x00, 0x04, 0x41, 0x03, 0x34, 0x00, 0x51, 0x25, +0x00, 0x18, 0x00, 0x28, 0x00, 0x04, 0x12, 0x5F, +0x80, 0x0F, 0x00, 0x59, 0x00, 0x04, 0x03, 0x7F, +0x80, 0x0E, 0x66, 0x41, 0x00, 0x40, 0x41, 0x6A, +0xB8, 0x0C, 0x8C, 0xA1, 0x2E, 0x28, 0x0A, 0x3A, +0x97, 0x6A, 0x41, 0x8B, 0x5C, 0x04, 0x41, 0x9C, +0x00, 0x11, 0xE0, 0xA2, 0xF0, 0x88, 0x13, 0x9F, +0x80, 0x0E, 0x10, 0x48, 0x00, 0x04, 0x10, 0x59, +0x00, 0x04, 0x4E, 0xF3, 0x00, 0xE5, 0x2E, 0x17, +0xF3, 0xD9, 0xC9, 0x0C, 0x2F, 0x10, 0x03, 0x1C, +0x03, 0x34, 0x00, 0x05, 0x51, 0xE8, 0x81, 0xA4, +0x8D, 0xA1, 0x39, 0x35, 0xF9, 0x09, 0x3F, 0x10, +0x03, 0x1C, 0x44, 0x80, 0x00, 0x5C, 0x42, 0x17, +0x20, 0x24, 0x2E, 0xD8, 0x0A, 0x3B, 0x99, 0x39, +0x88, 0x26, 0xA6, 0xCC, 0x51, 0x42, 0x00, 0x18, +0x10, 0x2A, 0x00, 0x04, 0x58, 0xA1, 0x80, 0x40, +0x8C, 0x41, 0x12, 0xD2, 0x00, 0x2C, 0x10, 0xA0, +0x80, 0x04, 0x4C, 0x51, 0x40, 0xC7, 0x3C, 0x20, +0x0F, 0x3B, 0x02, 0x5A, 0x00, 0x03, 0x96, 0x53, +0xE0, 0xA1, 0x4E, 0xF2, 0x00, 0xBF, 0x3C, 0x40, +0x0F, 0xBF, 0x3D, 0xC7, 0xF6, 0x85, 0x96, 0xE3, +0xE0, 0x7C, 0x4E, 0xF3, 0x00, 0xB7, 0x3C, 0x20, +0x0F, 0xBF, 0x3D, 0x57, 0xF9, 0xDD, 0x96, 0x53, +0xE0, 0x35, 0x4E, 0xF3, 0x00, 0xAF, 0x3D, 0x60, +0x05, 0x23, 0xE0, 0x16, 0x4E, 0xF3, 0x00, 0x9F, +0x3C, 0x43, 0xF6, 0x81, 0xC4, 0x4D, 0x2F, 0xE0, +0x03, 0x38, 0x4F, 0xE3, 0x00, 0x23, 0x80, 0xBE, +0x44, 0x60, 0x05, 0x64, 0x98, 0xBD, 0x3E, 0x1F, +0xF3, 0xEC, 0x88, 0x25, 0x81, 0x62, 0x3B, 0x00, +0xE4, 0x04, 0x50, 0x52, 0x80, 0x5C, 0x3B, 0x05, +0xE4, 0x24, 0x3B, 0x00, 0xE4, 0x04, 0x3B, 0x05, +0xE4, 0x24, 0x3B, 0x00, 0xC8, 0x00, 0x3B, 0x05, +0xC8, 0x20, 0xDE, 0xED, 0x84, 0xE1, 0x87, 0x20, +0x3E, 0x70, 0x03, 0x38, 0x3C, 0x0E, 0x00, 0xCF, +0x3D, 0x9E, 0x00, 0xD0, 0x48, 0x00, 0x00, 0xDB, +0x3C, 0x30, 0x0F, 0x3B, 0x3D, 0x7C, 0x00, 0xCF, +0x96, 0x5B, 0x41, 0x0B, 0x88, 0x0A, 0xE0, 0x30, +0xE8, 0x05, 0x89, 0x97, 0x3D, 0x0E, 0x00, 0xCF, +0xD5, 0x07, 0x3C, 0x20, 0x0F, 0x3B, 0x97, 0x13, +0x88, 0x97, 0x3C, 0x4E, 0x00, 0xCF, 0x3D, 0x2C, +0x00, 0xCF, 0xE1, 0xC0, 0xE8, 0x0B, 0xE0, 0xA0, +0xE8, 0x68, 0x45, 0x90, 0x00, 0x5C, 0x82, 0x27, +0x43, 0x17, 0x64, 0x73, 0x12, 0x08, 0x80, 0x0F, +0xD5, 0x60, 0x84, 0x00, 0x87, 0x00, 0x3E, 0x00, +0x03, 0x38, 0x3D, 0x8E, 0x00, 0xCD, 0x84, 0x00, +0x45, 0x10, 0x00, 0x5C, 0x43, 0x30, 0x44, 0x24, +0x40, 0xD3, 0x4C, 0x00, 0x04, 0x36, 0x80, 0x01, +0x96, 0x9C, 0xC2, 0x06, 0x8C, 0x01, 0x5A, 0x08, +0x0F, 0xF7, 0x48, 0xFF, 0xFD, 0xFF, 0x44, 0x80, +0x00, 0x5C, 0x42, 0xA7, 0x20, 0x24, 0x3E, 0x4F, +0xE1, 0xA0, 0x88, 0x8A, 0xA6, 0x64, 0x40, 0xE3, +0xCC, 0x00, 0x58, 0x50, 0x80, 0x08, 0xAF, 0x64, +0x10, 0x27, 0x00, 0x0C, 0x01, 0x66, 0x80, 0x04, +0x89, 0x47, 0x86, 0x81, 0x12, 0x25, 0x00, 0x2C, +0x50, 0x87, 0x00, 0x18, 0x8D, 0x58, 0x41, 0xCA, +0x00, 0x0C, 0x85, 0xFF, 0x59, 0xEB, 0x00, 0x01, +0x12, 0x25, 0x00, 0x03, 0x41, 0x5C, 0xF0, 0x04, +0x80, 0x29, 0x10, 0x25, 0x00, 0x04, 0x10, 0xF4, +0x00, 0x05, 0x12, 0x24, 0x00, 0x03, 0x11, 0xE6, +0x80, 0x04, 0x13, 0x5F, 0x80, 0x0E, 0x49, 0xFF, +0xFA, 0x53, 0x01, 0x06, 0x80, 0x04, 0x2E, 0x90, +0x0A, 0x3A, 0x2F, 0x78, 0x0A, 0x3B, 0x59, 0x28, +0x00, 0x40, 0x10, 0x94, 0x00, 0x04, 0x13, 0x77, +0x00, 0x2C, 0x11, 0x26, 0x80, 0x04, 0x48, 0xFF, +0xFD, 0xC1, 0xE0, 0xA0, 0xE8, 0x0A, 0x12, 0x0A, +0x00, 0x03, 0xD5, 0x07, 0x02, 0x39, 0x00, 0x03, +0xE0, 0x60, 0xE8, 0x03, 0x12, 0x09, 0x00, 0x03, +0x44, 0x80, 0x00, 0x5C, 0x82, 0x87, 0x43, 0x47, +0x20, 0x73, 0x3C, 0xAC, 0x00, 0xCD, 0x02, 0xDA, +0x00, 0x0F, 0xE1, 0x4D, 0xE8, 0x03, 0x3C, 0xDE, +0x00, 0xCD, 0x43, 0xC7, 0x20, 0x24, 0x80, 0x0E, +0x40, 0x53, 0x70, 0x00, 0xA6, 0xEC, 0x58, 0x11, +0x80, 0x01, 0xAE, 0x6C, 0x80, 0x29, 0x49, 0xFF, +0xF9, 0xDF, 0x45, 0x50, 0x00, 0x38, 0x3E, 0x4F, +0xFF, 0x08, 0x42, 0x44, 0xD4, 0x73, 0x40, 0x93, +0xF0, 0x00, 0xA4, 0xA4, 0x12, 0x24, 0x80, 0x07, +0x12, 0x24, 0x80, 0x08, 0x80, 0x29, 0xA0, 0x25, +0xA1, 0x4E, 0xA8, 0x0D, 0xE0, 0xA0, 0xE8, 0x03, +0x14, 0x04, 0x80, 0x06, 0x54, 0x07, 0x00, 0xFF, +0x84, 0x20, 0x49, 0xFF, 0xEC, 0x5C, 0x5A, 0x08, +0x01, 0x0C, 0x45, 0x60, 0x00, 0x5C, 0x42, 0x37, +0x58, 0x24, 0x98, 0x7B, 0xA1, 0x09, 0xB4, 0x41, +0x38, 0x43, 0x0C, 0x0A, 0xA8, 0x89, 0x54, 0xE7, +0x00, 0xFF, 0x45, 0xE0, 0x00, 0x5C, 0x82, 0xE7, +0x43, 0x77, 0x78, 0x73, 0x3C, 0x50, 0x05, 0x22, +0x51, 0x2B, 0x80, 0x50, 0x80, 0x52, 0xA0, 0x11, +0x02, 0x1B, 0x80, 0x07, 0x9E, 0xE9, 0xFE, 0x1C, +0x45, 0x80, 0x00, 0x64, 0x42, 0x00, 0xE0, 0x73, +0x40, 0x40, 0x14, 0x96, 0xA9, 0x11, 0x48, 0xFF, +0xFD, 0x5D, 0x80, 0x1E, 0xFC, 0xE5, 0xFC, 0x20, +0x3C, 0x17, 0xED, 0x8C, 0x3C, 0x18, 0x0E, 0xF4, +0x3C, 0x20, 0x0E, 0x8D, 0x3F, 0x0F, 0xDB, 0x18, +0xC2, 0x07, 0x3C, 0x30, 0x0E, 0x8D, 0x5A, 0x30, +0x02, 0x04, 0x48, 0x00, 0x00, 0x84, 0x2F, 0x87, +0xDB, 0x1B, 0x2F, 0x9F, 0xDB, 0x1A, 0x40, 0x1C, +0xE1, 0x04, 0x97, 0x4B, 0x80, 0xC0, 0x3C, 0x58, +0x0E, 0xF5, 0xC0, 0x18, 0x49, 0x00, 0x09, 0x78, +0x3C, 0x8D, 0xFE, 0x58, 0x3D, 0x3C, 0x07, 0x39, +0x84, 0x60, 0x14, 0x34, 0x00, 0x05, 0x14, 0x39, +0x80, 0x02, 0x3C, 0x70, 0x0E, 0xF4, 0x47, 0x00, +0x01, 0x00, 0x12, 0x78, 0x00, 0x00, 0x3C, 0x20, +0x0E, 0xF5, 0x12, 0x28, 0x00, 0x01, 0x84, 0x42, +0xD5, 0x02, 0x80, 0x40, 0x3E, 0x1F, 0xDB, 0x18, +0x44, 0x00, 0x00, 0x82, 0x85, 0x00, 0x3E, 0x58, +0x1C, 0xE8, 0x47, 0x40, 0x01, 0x00, 0x3C, 0x40, +0x0E, 0x89, 0x96, 0xE3, 0xE1, 0x03, 0xE8, 0x4B, +0x01, 0x90, 0x80, 0x09, 0x03, 0x20, 0x80, 0x02, +0x01, 0x80, 0x80, 0x08, 0x40, 0x4C, 0x65, 0x04, +0x41, 0x59, 0x00, 0x11, 0x9D, 0xC1, 0x23, 0x60, +0x80, 0x03, 0x51, 0x70, 0x00, 0x02, 0x96, 0xE3, +0x39, 0x52, 0x81, 0x09, 0x39, 0x62, 0x9D, 0x09, +0x38, 0x32, 0xDD, 0x09, 0x3D, 0x30, 0x0E, 0x8D, +0x5B, 0x38, 0x02, 0x08, 0x40, 0x4C, 0x20, 0x08, +0x9D, 0xC3, 0x96, 0xE3, 0x38, 0x32, 0x9D, 0x09, +0xC6, 0x26, 0x41, 0x0A, 0x08, 0x20, 0x13, 0x28, +0x00, 0x00, 0x9D, 0xD1, 0x40, 0xFA, 0x1C, 0x20, +0xA5, 0x0B, 0x12, 0x47, 0x80, 0x00, 0x01, 0x10, +0x80, 0x09, 0x01, 0x20, 0x80, 0x08, 0x9D, 0xD2, +0x41, 0xEA, 0x1C, 0x20, 0x41, 0x59, 0x45, 0x04, +0x13, 0x5F, 0x00, 0x00, 0x3D, 0x60, 0x0E, 0x8D, +0x9C, 0xD3, 0x5B, 0x68, 0x02, 0x0C, 0x01, 0x80, +0x80, 0x08, 0x41, 0x7A, 0x0C, 0x20, 0x40, 0x4C, +0x20, 0x08, 0x8C, 0x44, 0x12, 0x4B, 0x80, 0x00, +0xD5, 0x02, 0x80, 0x43, 0x8D, 0x01, 0x8C, 0x26, +0x8C, 0x04, 0xD5, 0xB2, 0xC6, 0x42, 0x3D, 0xEC, +0x07, 0x39, 0x84, 0xC1, 0x14, 0x6F, 0x00, 0x02, +0xD5, 0x3C, 0x3C, 0x00, 0x0E, 0x8D, 0x96, 0x43, +0x5A, 0x18, 0x01, 0x38, 0x84, 0x00, 0x82, 0x70, +0x44, 0x50, 0x00, 0x82, 0x81, 0x00, 0x3E, 0x68, +0x1C, 0xE8, 0x86, 0x26, 0x3C, 0x70, 0x0E, 0x89, +0x96, 0xBB, 0xE1, 0x02, 0xE8, 0x27, 0x01, 0x59, +0x80, 0x09, 0x01, 0x69, 0x80, 0x08, 0x40, 0x2B, +0x55, 0x04, 0x82, 0xF0, 0x9C, 0xE9, 0x9D, 0xEA, +0x23, 0x29, 0x80, 0x02, 0x23, 0x49, 0x80, 0x03, +0x97, 0x13, 0x43, 0x74, 0x44, 0x73, 0x39, 0x23, +0x15, 0x09, 0x39, 0x43, 0x0D, 0x09, 0x38, 0x43, +0x1D, 0x09, 0x02, 0x3B, 0x80, 0x04, 0x42, 0x71, +0xA0, 0x0B, 0xCF, 0x04, 0x42, 0x21, 0xAC, 0x0B, +0xC2, 0x05, 0x40, 0x40, 0xA0, 0x0C, 0xFE, 0x27, +0x96, 0x01, 0x8D, 0x01, 0x8D, 0xE6, 0x8C, 0xA4, +0xD5, 0xD6, 0x97, 0x03, 0x3C, 0x48, 0x0E, 0xF5, +0x3D, 0x17, 0xF0, 0xBA, 0x3D, 0x18, 0x0F, 0x1E, +0xFC, 0xA0, 0xFC, 0x00, 0x49, 0x00, 0x0B, 0xC7, +0x3C, 0x00, 0x0F, 0x64, 0x3C, 0x13, 0xED, 0x8C, +0x96, 0x83, 0xFE, 0x8E, 0xC2, 0x04, 0x84, 0x00, +0x49, 0xFF, 0xFF, 0x23, 0x3C, 0x30, 0x0E, 0x84, +0x5A, 0x38, 0x03, 0x0C, 0x49, 0xFF, 0xEA, 0xEB, +0x3C, 0x30, 0x0F, 0x64, 0x3C, 0x63, 0xED, 0x8C, +0x96, 0x9B, 0x3E, 0x08, 0x16, 0x38, 0xD5, 0x3E, +0x3C, 0x40, 0x0E, 0x84, 0x5A, 0x48, 0x10, 0x41, +0x49, 0xFF, 0xEA, 0xDD, 0x86, 0x00, 0x3C, 0x6C, +0x07, 0x24, 0x80, 0x10, 0x3D, 0xE0, 0x0E, 0x5D, +0xE1, 0x9E, 0xE8, 0x07, 0x41, 0x53, 0x40, 0x20, +0x12, 0x0A, 0x80, 0x00, 0x8D, 0x81, 0xD5, 0xF7, +0x84, 0x00, 0x3E, 0x48, 0x0A, 0x60, 0x3D, 0x10, +0x0E, 0x5F, 0x94, 0x41, 0xE0, 0x11, 0xE8, 0x08, +0x98, 0xA1, 0x99, 0x71, 0x22, 0x11, 0x08, 0xCC, +0xAC, 0x68, 0x8C, 0x01, 0xD5, 0xF5, 0x88, 0x26, +0x3E, 0x48, 0x0A, 0x60, 0x3C, 0x20, 0x0E, 0x5F, +0x3D, 0x20, 0x0E, 0x5E, 0x89, 0xC2, 0xE0, 0x12, +0xE8, 0x0A, 0x9A, 0xC2, 0x51, 0x31, 0x88, 0xAC, +0x39, 0x42, 0x4D, 0x11, 0x1B, 0x40, 0x80, 0x01, +0x8C, 0x01, 0xD5, 0xF1, 0x3C, 0x10, 0x0F, 0x64, +0x3C, 0x63, 0xED, 0x8C, 0x96, 0x8B, 0x3C, 0x0C, +0x07, 0x24, 0x3C, 0x10, 0x0E, 0x5D, 0xFE, 0xB6, +0x49, 0x00, 0x08, 0x6D, 0xD5, 0x15, 0x3C, 0x50, +0x0E, 0x84, 0x5A, 0x58, 0x14, 0x16, 0x49, 0xFF, +0xEA, 0x9A, 0x3C, 0x30, 0x0F, 0x64, 0x3C, 0x53, +0xED, 0x8C, 0x3E, 0x08, 0x16, 0x38, 0x96, 0xDB, +0x50, 0x10, 0x05, 0x80, 0x50, 0x20, 0x05, 0xC0, +0xFE, 0xEE, 0x49, 0xFF, 0xF9, 0x0D, 0x49, 0xFF, +0xEA, 0x52, 0x48, 0x00, 0x00, 0x7C, 0x3C, 0x60, +0x0E, 0x84, 0x5A, 0x68, 0x04, 0x11, 0x3C, 0x00, +0x0F, 0x64, 0x3C, 0x43, 0xED, 0x8C, 0x96, 0xC3, +0x3E, 0x08, 0x03, 0x4C, 0x50, 0x10, 0x05, 0x80, +0x50, 0x20, 0x05, 0xC0, 0xFE, 0xE6, 0x49, 0xFF, +0xF8, 0xF7, 0xD5, 0x68, 0x3C, 0xF0, 0x0E, 0x84, +0x5A, 0xF0, 0x05, 0x4D, 0x3D, 0x00, 0x0E, 0x84, +0x5B, 0x00, 0x08, 0x4C, 0x3D, 0x10, 0x0E, 0x84, +0x5B, 0x10, 0x0A, 0x4B, 0x3D, 0x20, 0x0E, 0x84, +0x5B, 0x20, 0x0D, 0x06, 0x3D, 0x30, 0x0E, 0x84, +0x5B, 0x38, 0x0C, 0x05, 0x3C, 0x0C, 0x07, 0x24, +0xD5, 0x47, 0x3D, 0x40, 0x0E, 0x84, 0x5B, 0x40, +0x0F, 0x3F, 0x3D, 0x50, 0x0E, 0x84, 0x5B, 0x58, +0x13, 0x3E, 0x86, 0x00, 0x3C, 0x0C, 0x07, 0x24, +0x80, 0x30, 0x3D, 0x60, 0x0E, 0x5D, 0xE1, 0x96, +0xE8, 0x07, 0x41, 0xC0, 0x40, 0x20, 0x12, 0x1E, +0x00, 0x00, 0x8D, 0x81, 0xD5, 0xF7, 0x84, 0x20, +0x3E, 0x3F, 0xDB, 0x60, 0x3D, 0x70, 0x0E, 0x5F, +0x94, 0x89, 0xE0, 0x37, 0xE8, 0x08, 0x99, 0x02, +0x88, 0x43, 0x22, 0x21, 0x02, 0xE0, 0xAC, 0xA0, +0x8C, 0x21, 0xD5, 0xF5, 0x88, 0x40, 0x3E, 0x5F, +0xDB, 0x60, 0x3C, 0x30, 0x0E, 0x5F, 0x3C, 0x40, +0x0E, 0x5E, 0x88, 0x83, 0xE0, 0x24, 0xE8, 0x18, +0x9B, 0x8B, 0x51, 0x83, 0x02, 0xC0, 0x39, 0x92, +0xE1, 0x11, 0x1B, 0x91, 0x00, 0x01, 0x8C, 0x21, +0xD5, 0xF1, 0x3E, 0x08, 0x16, 0x38, 0xD5, 0x0C, +0x3E, 0x0F, 0xDB, 0x60, 0xD5, 0x09, 0x3E, 0x0F, +0xE6, 0xFC, 0xD5, 0x06, 0x3E, 0x08, 0x03, 0x4C, +0xD5, 0x03, 0x3E, 0x08, 0x0A, 0x60, 0x3C, 0x50, +0x0F, 0x64, 0x3C, 0x63, 0xED, 0x8C, 0x96, 0xAB, +0x3C, 0x10, 0x0E, 0x5D, 0xFE, 0xB6, 0x49, 0x00, +0x07, 0xDA, 0x49, 0x00, 0x07, 0xC5, 0xFC, 0x80, +0xFC, 0x20, 0x3C, 0x03, 0xF6, 0x81, 0xC8, 0x04, +0x2E, 0x10, 0x0A, 0x48, 0xD5, 0x03, 0x3C, 0x13, +0xF6, 0x87, 0x2E, 0x20, 0x03, 0x22, 0xCA, 0x07, +0x2E, 0x30, 0x03, 0x2C, 0xC3, 0x04, 0x3C, 0x10, +0x05, 0x24, 0x92, 0x28, 0x3D, 0x30, 0x0E, 0x5D, +0x3C, 0x47, 0xF6, 0x74, 0x2E, 0x57, 0xEC, 0xFA, +0x3E, 0x28, 0x0A, 0x60, 0x86, 0x40, 0x44, 0x30, +0x7F, 0xFF, 0x51, 0x40, 0xFF, 0xFF, 0xE1, 0xD3, +0xE8, 0x15, 0xCC, 0x03, 0xCD, 0x02, 0xC9, 0x04, +0xA5, 0xD0, 0x9B, 0x9F, 0xD5, 0x0A, 0xA5, 0x90, +0x23, 0x11, 0x05, 0xEC, 0x9B, 0xDE, 0x96, 0x3B, +0x42, 0x0A, 0x44, 0x73, 0x40, 0x60, 0x04, 0xD6, +0x12, 0x61, 0x05, 0xEC, 0x8D, 0xC1, 0x8C, 0x42, +0xD5, 0xEB, 0x3C, 0x80, 0x0E, 0x60, 0x3E, 0x08, +0x15, 0x60, 0x84, 0xE0, 0xE0, 0xE8, 0xE8, 0x07, +0x2B, 0x00, 0x00, 0x01, 0x13, 0x00, 0x03, 0x2B, +0x8C, 0xE1, 0xD5, 0xF9, 0x3C, 0x50, 0x0E, 0x61, +0x3E, 0x18, 0x15, 0xA0, 0x84, 0x80, 0xE0, 0x85, +0xE8, 0x07, 0x2A, 0x60, 0x80, 0x01, 0x12, 0x60, +0x83, 0x2B, 0x8C, 0x81, 0xD5, 0xF9, 0xFC, 0xA0, +0x3C, 0x20, 0x0F, 0x24, 0x44, 0x1F, 0x80, 0x00, +0x3C, 0x18, 0x0E, 0x58, 0x4E, 0x22, 0x00, 0xD1, +0x3C, 0x30, 0x0F, 0x64, 0x97, 0x1B, 0x4E, 0x44, +0x00, 0xCC, 0xFC, 0x60, 0x3C, 0x50, 0x0F, 0x27, +0x3C, 0x60, 0x0E, 0x5F, 0x96, 0x6B, 0xC9, 0x61, +0x3C, 0x50, 0x0F, 0x28, 0x44, 0xAF, 0x80, 0x00, +0x97, 0xEB, 0xFF, 0xF4, 0x3F, 0xE8, 0x1C, 0xE8, +0x3F, 0xC8, 0x0A, 0x60, 0x44, 0xB0, 0x00, 0x64, +0x3F, 0x9F, 0xE6, 0xFC, 0x44, 0x90, 0x7F, 0xFF, +0xE0, 0x26, 0xE8, 0x4C, 0x84, 0x40, 0x82, 0x02, +0x3C, 0x30, 0x0F, 0x24, 0x97, 0x1B, 0xE1, 0x84, +0xE8, 0x14, 0x50, 0xD8, 0x00, 0xB6, 0x38, 0x4F, +0x35, 0x01, 0x97, 0x63, 0xE0, 0x25, 0xE9, 0x0B, +0x38, 0x3F, 0x35, 0x01, 0x3C, 0x40, 0x0F, 0x29, +0x97, 0x5B, 0x96, 0xE3, 0x88, 0x65, 0xE0, 0x23, +0xE8, 0x02, 0x84, 0x41, 0x8D, 0x81, 0xD5, 0xE9, +0xCA, 0x05, 0x98, 0x8F, 0x38, 0x0E, 0x09, 0x09, +0xD5, 0x2B, 0x3C, 0xC0, 0x0E, 0x84, 0x5A, 0xC0, +0x06, 0x28, 0x3C, 0x50, 0x0E, 0x84, 0x96, 0xAB, +0xE4, 0x4B, 0xE9, 0x06, 0x3C, 0x30, 0x0E, 0x84, +0x97, 0x1B, 0xE4, 0x8F, 0xE9, 0x1D, 0x99, 0x4F, +0x3C, 0x20, 0x0F, 0x32, 0x38, 0x4E, 0x15, 0x11, +0x96, 0xD3, 0xFE, 0xE4, 0x3C, 0x20, 0x10, 0x69, +0x41, 0x11, 0xAE, 0x36, 0x88, 0x51, 0x96, 0x91, +0x97, 0x13, 0x39, 0x2C, 0x95, 0x11, 0x41, 0x34, +0x90, 0x01, 0x8B, 0xF2, 0xE1, 0x53, 0x38, 0x4E, +0x15, 0x09, 0xE8, 0x06, 0x40, 0x54, 0xC8, 0x01, +0x9A, 0xEA, 0x40, 0xA1, 0x80, 0x11, 0x8C, 0x21, +0xD5, 0xB4, 0x3C, 0xA8, 0x0E, 0x58, 0xD5, 0x63, +0x3C, 0x70, 0x0F, 0x28, 0x3C, 0x90, 0x0E, 0x5E, +0x96, 0x7B, 0x84, 0xE0, 0x95, 0xB1, 0x95, 0x49, +0x82, 0x27, 0x44, 0x8F, 0x80, 0x00, 0x82, 0x07, +0x3E, 0xA8, 0x1C, 0xE8, 0x3F, 0x28, 0x0A, 0x60, +0x44, 0xB0, 0x00, 0x64, 0x3E, 0xCF, 0xE6, 0xFC, +0x45, 0x30, 0x7F, 0xFF, 0xE1, 0x89, 0xE8, 0x49, +0x84, 0x80, 0x80, 0x64, 0x3C, 0x20, 0x0F, 0x24, +0x96, 0x53, 0xE0, 0x61, 0xE8, 0x0B, 0x51, 0x81, +0x80, 0xB6, 0x38, 0x15, 0x61, 0x01, 0x96, 0x8B, +0x4D, 0x01, 0x40, 0x03, 0x84, 0x81, 0x8C, 0x61, +0xD5, 0xF2, 0xCC, 0x06, 0x41, 0x78, 0xC8, 0x00, +0x38, 0x0B, 0x94, 0x09, 0xD5, 0x2E, 0x3C, 0xD0, +0x0E, 0x84, 0x5A, 0xD0, 0x06, 0x2B, 0x3C, 0x40, +0x0E, 0x84, 0x96, 0xE3, 0xE4, 0x6B, 0xE9, 0x06, +0x3C, 0x20, 0x0E, 0x84, 0x96, 0x53, 0xE4, 0x2F, +0xE9, 0x20, 0x3C, 0x40, 0x0F, 0x32, 0x40, 0xE3, +0xC8, 0x00, 0x38, 0x37, 0x14, 0x11, 0x96, 0xA3, +0xFE, 0x9C, 0x3C, 0x10, 0x10, 0x69, 0x41, 0x41, +0x2E, 0x97, 0x88, 0x34, 0x97, 0x09, 0x41, 0x53, +0xB0, 0x00, 0x96, 0x63, 0x39, 0x6A, 0x94, 0x11, +0x40, 0x29, 0x84, 0x01, 0x8A, 0x56, 0xE1, 0x02, +0x38, 0x17, 0x14, 0x09, 0xE8, 0x06, 0x40, 0x39, +0xD8, 0x01, 0x9B, 0x1C, 0x40, 0x82, 0x00, 0x11, +0x8D, 0x81, 0x89, 0xA6, 0x88, 0xE6, 0xD5, 0xB7, +0x3C, 0x88, 0x0E, 0x58, 0xFC, 0xE0, 0xDD, 0x9E, +0xFC, 0x01, 0x3C, 0x0D, 0xFF, 0xB9, 0x84, 0x21, +0xA8, 0x47, 0x3C, 0x0D, 0xFF, 0xC0, 0x04, 0x30, +0x00, 0x1E, 0x3E, 0x0F, 0xDB, 0x60, 0x44, 0x14, +0xF0, 0x00, 0x44, 0x20, 0x05, 0x80, 0xDD, 0x23, +0x3C, 0x00, 0x0F, 0x92, 0x96, 0x03, 0x96, 0x01, +0x96, 0x0E, 0xC0, 0x0C, 0x3C, 0x0D, 0xFF, 0xC0, +0x04, 0x30, 0x00, 0x1E, 0x3E, 0x08, 0x16, 0x38, +0x44, 0x14, 0xF5, 0x80, 0x44, 0x20, 0x05, 0x80, +0xDD, 0x23, 0x84, 0x00, 0xF0, 0x81, 0xD5, 0x14, +0xF0, 0x01, 0x50, 0x00, 0x02, 0xE0, 0x94, 0x41, +0x3E, 0x0F, 0xDB, 0x60, 0x88, 0x01, 0x22, 0x20, +0x00, 0x00, 0xF0, 0x01, 0x94, 0x41, 0x3E, 0x0F, +0xF9, 0x64, 0x88, 0x01, 0x80, 0x22, 0xAC, 0x40, +0xF0, 0x01, 0x8C, 0x01, 0xF0, 0x81, 0xF0, 0x01, +0x5E, 0x00, 0x00, 0x16, 0xC8, 0xEA, 0xD5, 0x15, +0xF0, 0x01, 0x8E, 0x16, 0x50, 0x00, 0x02, 0xC0, +0x94, 0x41, 0x3E, 0x0F, 0xDB, 0x60, 0x88, 0x01, +0x22, 0x20, 0x00, 0x00, 0xF0, 0x01, 0x94, 0x41, +0x3E, 0x0F, 0xF9, 0x64, 0x88, 0x01, 0x80, 0x22, +0xAC, 0x40, 0xF0, 0x01, 0x8C, 0x01, 0xF0, 0x81, +0xF0, 0x01, 0x5E, 0x00, 0x00, 0x36, 0xC8, 0xE9, +0x3C, 0x0D, 0xFF, 0xB9, 0x84, 0x21, 0xA8, 0x47, +0x3C, 0x0D, 0xFF, 0xC0, 0x04, 0x30, 0x00, 0x1E, +0x3E, 0x0F, 0xF9, 0x64, 0x44, 0x14, 0xFB, 0x00, +0x44, 0x20, 0x00, 0x6C, 0xDD, 0x23, 0x3C, 0x0D, +0xFF, 0xB9, 0x84, 0x20, 0xA8, 0x47, 0xFC, 0x81, +0xFC, 0x02, 0x10, 0x0F, 0x80, 0x07, 0x3C, 0x00, +0x0E, 0x8C, 0x96, 0x03, 0x96, 0x01, 0x96, 0x04, +0xC0, 0x0C, 0x84, 0x00, 0x3C, 0x0B, 0xF0, 0xA7, +0x84, 0x00, 0x3C, 0x0B, 0xF0, 0xA8, 0x84, 0x00, +0x3E, 0x07, 0xE1, 0x52, 0x48, 0x00, 0x00, 0x6C, +0x00, 0x0F, 0x80, 0x07, 0xC0, 0x0E, 0x3C, 0x0D, +0xFF, 0xC0, 0x04, 0x30, 0x00, 0x1F, 0x3E, 0x1F, +0xDB, 0x60, 0x44, 0x04, 0xF0, 0x00, 0x44, 0x20, +0x05, 0x80, 0x4B, 0xE0, 0x0C, 0x01, 0xD5, 0x0D, +0x3C, 0x0D, 0xFF, 0xC0, 0x04, 0x30, 0x00, 0x1F, +0x3E, 0x1F, 0xDB, 0x60, 0x44, 0x04, 0xF5, 0x80, +0x44, 0x20, 0x05, 0x80, 0x4B, 0xE0, 0x0C, 0x01, +0x3C, 0x0D, 0xFF, 0xC0, 0x04, 0x30, 0x00, 0x1F, +0x3E, 0x1F, 0xF9, 0x64, 0x44, 0x04, 0xFB, 0x00, +0x44, 0x20, 0x00, 0x6C, 0xDD, 0x23, 0x84, 0x00, +0xF0, 0x83, 0xD5, 0x14, 0xF0, 0x03, 0x94, 0x41, +0x3E, 0x0F, 0xF9, 0x64, 0x88, 0x01, 0x22, 0x20, +0x00, 0x00, 0xF0, 0x03, 0x50, 0x00, 0x02, 0xE0, +0x94, 0x41, 0x3E, 0x0F, 0xDB, 0x60, 0x88, 0x01, +0x80, 0x22, 0xAC, 0x40, 0xF0, 0x03, 0x8C, 0x01, +0xF0, 0x83, 0xF0, 0x03, 0x5E, 0x00, 0x00, 0x16, +0xC8, 0xEA, 0xD5, 0x15, 0xF0, 0x03, 0x8E, 0x16, +0xF1, 0x03, 0x94, 0x89, 0x3E, 0x1F, 0xF9, 0x64, +0x88, 0x22, 0x22, 0x20, 0x80, 0x00, 0x50, 0x00, +0x02, 0xC0, 0x94, 0x41, 0x3E, 0x0F, 0xDB, 0x60, +0x88, 0x01, 0x80, 0x22, 0xAC, 0x40, 0xF0, 0x03, +0x8C, 0x01, 0xF0, 0x83, 0xF0, 0x03, 0x5E, 0x00, +0x00, 0x36, 0xC8, 0xE9, 0x3C, 0x00, 0x0F, 0x74, +0x96, 0x03, 0x96, 0x01, 0x3C, 0x0B, 0xF0, 0xA7, +0x3C, 0x00, 0x11, 0x67, 0x96, 0x03, 0x96, 0x01, +0x3C, 0x0B, 0xF0, 0xA8, 0x44, 0x00, 0x00, 0x01, +0x3E, 0x07, 0xE1, 0x52, 0xFC, 0x82, 0xFC, 0x00, +0x3C, 0x0D, 0xFF, 0xB9, 0x84, 0x21, 0xA8, 0x47, +0x3C, 0x0D, 0xFF, 0xC0, 0x04, 0x30, 0x00, 0x1E, +0x3E, 0x08, 0x1C, 0xE8, 0x44, 0x14, 0xE8, 0x00, +0x44, 0x20, 0x08, 0x00, 0xDD, 0x23, 0x3C, 0x0D, +0xFF, 0xB9, 0x84, 0x20, 0xA8, 0x47, 0xFC, 0x80, +0xFC, 0x00, 0x3C, 0x0D, 0xFF, 0xC0, 0x04, 0x30, +0x00, 0x1F, 0x3E, 0x18, 0x1C, 0xE8, 0x44, 0x04, +0xE8, 0x00, 0x44, 0x20, 0x08, 0x00, 0xDD, 0x23, +0xFC, 0x80, 0xFC, 0x02, 0x84, 0x00, 0x12, 0x0F, +0x80, 0x07, 0x84, 0x00, 0xF0, 0x82, 0xD5, 0x26, +0x3C, 0x0D, 0xFF, 0xC0, 0x04, 0x30, 0x00, 0x1F, +0xF0, 0x02, 0x3E, 0x18, 0x0A, 0x60, 0x44, 0x20, +0x01, 0x00, 0xDD, 0x23, 0x84, 0x00, 0xF0, 0x81, +0xD5, 0x11, 0xF0, 0x01, 0x94, 0x41, 0x3E, 0x08, +0x0A, 0x60, 0x88, 0x01, 0x22, 0x00, 0x00, 0x00, +0x96, 0x41, 0x02, 0x0F, 0x80, 0x07, 0x88, 0x01, +0x12, 0x0F, 0x80, 0x07, 0xF0, 0x01, 0x8C, 0x01, +0xF0, 0x81, 0xF0, 0x01, 0x5E, 0x00, 0x01, 0x00, +0xC8, 0xED, 0xF0, 0x02, 0x50, 0x00, 0x01, 0x00, +0xF0, 0x82, 0xF0, 0x02, 0x44, 0x10, 0x7F, 0xFF, +0x40, 0x00, 0x80, 0x07, 0xC0, 0xD6, 0x02, 0x0F, +0x80, 0x07, 0xFC, 0x82, 0xFC, 0x01, 0x84, 0x00, +0x12, 0x0F, 0x80, 0x03, 0x49, 0xFF, 0xFF, 0xC7, +0x12, 0x0F, 0x80, 0x03, 0x02, 0x0F, 0x80, 0x03, +0xC8, 0x06, 0x44, 0x00, 0x55, 0xAA, 0x3C, 0x08, +0x0F, 0xA0, 0xD5, 0x05, 0x44, 0x00, 0x00, 0x00, +0x3C, 0x08, 0x0F, 0xA0, 0xFC, 0x81, 0x3C, 0x0D, +0xFF, 0xBF, 0x44, 0x14, 0x7F, 0xF0, 0xA8, 0x41, +0xDD, 0x9E, 0x46, 0x00, 0x01, 0xC0, 0x3C, 0x0E, +0x07, 0x39, 0x46, 0x00, 0x01, 0x90, 0x3C, 0x0F, +0xFE, 0x58, 0x46, 0x00, 0x01, 0x98, 0x3C, 0x0F, +0xFF, 0xBE, 0x46, 0x00, 0x00, 0x8F, 0x50, 0x00, +0x06, 0x00, 0x3C, 0x0F, 0xFE, 0x57, 0x46, 0x00, +0x01, 0xC8, 0x3C, 0x0F, 0xFF, 0xB9, 0x44, 0x04, +0x00, 0x00, 0x3C, 0x0F, 0xFF, 0xBD, 0x46, 0x00, +0x01, 0xF8, 0x3C, 0x0F, 0xFE, 0x56, 0x46, 0x00, +0x01, 0x80, 0x3C, 0x0F, 0xFC, 0xE8, 0x46, 0x00, +0x00, 0xC0, 0x3C, 0x0E, 0x07, 0x38, 0x46, 0x00, +0x01, 0xE8, 0x3C, 0x0F, 0xFF, 0xBC, 0x46, 0x00, +0x01, 0xF0, 0x3C, 0x0F, 0xFF, 0xBB, 0x46, 0x00, +0x01, 0xE0, 0x3C, 0x0F, 0xFE, 0x55, 0x46, 0x00, +0x01, 0xD0, 0x3C, 0x0F, 0xFF, 0xBA, 0x46, 0x00, +0x00, 0x8F, 0x50, 0x00, 0x0A, 0x38, 0x3C, 0x0F, +0xFF, 0xC0, 0x46, 0x00, 0x00, 0x8F, 0x50, 0x00, +0x0A, 0xC0, 0x3C, 0x0F, 0xFF, 0xBF, 0xDD, 0x9E, +0x3C, 0x1D, 0xFC, 0xE8, 0xB4, 0x01, 0x96, 0x84, +0xCA, 0xFE, 0xDD, 0x9E, 0xFC, 0x00, 0x49, 0xFF, +0xFF, 0xF9, 0x3C, 0x1C, 0x07, 0x39, 0x3C, 0x2D, +0xFC, 0xE8, 0x84, 0x01, 0xA8, 0x09, 0xB6, 0x02, +0xFC, 0x80, 0xFC, 0x20, 0x84, 0xA0, 0x84, 0xC1, +0x3F, 0x18, 0x1C, 0xE8, 0x84, 0x60, 0x41, 0x00, +0x14, 0x00, 0x80, 0x43, 0xB4, 0x90, 0x40, 0x73, +0x08, 0x0C, 0xFF, 0x3E, 0xC4, 0x0A, 0x40, 0x81, +0x04, 0x0A, 0x50, 0xF4, 0x02, 0x40, 0x39, 0x28, +0xBD, 0x01, 0x40, 0x43, 0x48, 0x0C, 0xFE, 0xE7, +0x9D, 0x11, 0xB4, 0xF0, 0x41, 0x33, 0x10, 0x0C, +0x40, 0x79, 0x9C, 0x02, 0xC7, 0x0A, 0x90, 0x81, +0x51, 0x42, 0x02, 0x40, 0x38, 0x88, 0xD1, 0x01, +0x93, 0x08, 0x40, 0x43, 0x20, 0x0C, 0xFE, 0xE7, +0x8C, 0x42, 0x5A, 0x28, 0x20, 0xE1, 0x98, 0x8D, +0x8C, 0xA4, 0xB6, 0x62, 0x5A, 0x58, 0xA0, 0xD8, +0xFC, 0xA0, 0xFC, 0x68, 0xF3, 0x8F, 0x2E, 0x37, +0xE1, 0x5D, 0x81, 0x40, 0xF1, 0x8D, 0xF2, 0x8E, +0x5A, 0x38, 0x02, 0x0F, 0xC8, 0x06, 0x3C, 0x10, +0x11, 0x52, 0x3C, 0x70, 0x11, 0x5F, 0xD5, 0x04, +0x44, 0x70, 0x04, 0x04, 0x80, 0x27, 0x3C, 0x00, +0x11, 0x67, 0x85, 0x21, 0xD5, 0x04, 0x84, 0xE0, +0x80, 0x27, 0x81, 0x27, 0x3C, 0x2D, 0xFC, 0xE8, +0x46, 0x01, 0xE0, 0x01, 0x50, 0x40, 0x0E, 0x00, +0x14, 0x41, 0x00, 0x1C, 0x3C, 0x50, 0x11, 0x25, +0x3C, 0x60, 0x11, 0x26, 0x40, 0x83, 0x16, 0x04, +0x14, 0x81, 0x00, 0x28, 0x3C, 0xB0, 0x11, 0x2C, +0x3C, 0xC0, 0x11, 0x2D, 0x40, 0xD6, 0x2E, 0x04, +0x14, 0xD1, 0x00, 0x30, 0x3C, 0xE0, 0x11, 0x30, +0x3C, 0xF0, 0x11, 0x31, 0x41, 0x07, 0xBA, 0x04, +0x15, 0x01, 0x00, 0x32, 0x3C, 0x20, 0x11, 0x48, +0x97, 0x94, 0xC6, 0x68, 0x3C, 0x20, 0x11, 0x56, +0x3C, 0x50, 0x11, 0x4A, 0x3C, 0x40, 0x11, 0x4B, +0x5A, 0x38, 0x02, 0x24, 0x3C, 0x30, 0x11, 0x4C, +0x85, 0x03, 0x3D, 0x80, 0x11, 0x4E, 0x97, 0x20, +0x3D, 0x90, 0x11, 0x4F, 0x96, 0xD8, 0x3D, 0xE0, +0x11, 0x50, 0x3C, 0xB0, 0x11, 0x51, 0xB7, 0x1F, +0x3D, 0x60, 0x11, 0x53, 0xF4, 0x81, 0x3C, 0x60, +0x11, 0x54, 0xF3, 0x82, 0x3C, 0x00, 0x11, 0x55, +0x14, 0x9F, 0x80, 0x03, 0x15, 0x8F, 0x80, 0x04, +0x15, 0x9F, 0x80, 0x05, 0x15, 0xEF, 0x80, 0x06, +0x14, 0xBF, 0x80, 0x07, 0xF1, 0x88, 0xD5, 0x28, +0x3C, 0x30, 0x11, 0x4C, 0x3C, 0x10, 0x11, 0x4D, +0x86, 0xE3, 0x3D, 0x40, 0x11, 0x4E, 0x97, 0x20, +0x3D, 0x50, 0x11, 0x4F, 0x96, 0xD8, 0x3D, 0x30, +0x11, 0x50, 0x96, 0x48, 0x3D, 0x20, 0x11, 0x51, +0x3D, 0x10, 0x11, 0x52, 0x15, 0x7F, 0x80, 0x00, +0x3D, 0x60, 0x11, 0x53, 0xF4, 0x81, 0x3C, 0x60, +0x11, 0x54, 0xF3, 0x82, 0x3C, 0x00, 0x11, 0x55, +0xF1, 0x83, 0x15, 0x4F, 0x80, 0x04, 0x15, 0x5F, +0x80, 0x05, 0x15, 0x3F, 0x80, 0x06, 0x15, 0x2F, +0x80, 0x07, 0x15, 0x1F, 0x80, 0x08, 0xF6, 0x8A, +0x97, 0x80, 0x84, 0x00, 0xF6, 0x8B, 0x15, 0x6F, +0x80, 0x09, 0x80, 0x20, 0x96, 0x90, 0x80, 0x60, +0xF4, 0x0D, 0x97, 0x68, 0x49, 0x00, 0x1B, 0x6D, +0x3C, 0xCD, 0xFC, 0xE8, 0x84, 0xC8, 0x04, 0xD6, +0x00, 0x1C, 0x50, 0xE6, 0x80, 0x40, 0x14, 0xE6, +0x00, 0x1C, 0x3C, 0x20, 0x11, 0x48, 0x96, 0x8E, +0xC2, 0x74, 0x2E, 0xF7, 0xE1, 0x5D, 0x3C, 0x20, +0x11, 0x63, 0x3C, 0x50, 0x11, 0x57, 0x5A, 0xF8, +0x02, 0x2F, 0x3C, 0x30, 0x11, 0x58, 0x3C, 0x00, +0x11, 0x59, 0x3D, 0x60, 0x11, 0x5B, 0x3D, 0x70, +0x11, 0x5C, 0x3D, 0x80, 0x11, 0x5D, 0x3D, 0x90, +0x11, 0x5E, 0x3D, 0xE0, 0x11, 0x60, 0x3C, 0x40, +0x11, 0x61, 0x3C, 0x10, 0x11, 0x62, 0x96, 0xD8, +0x96, 0x00, 0x85, 0x64, 0xF7, 0x88, 0x97, 0xC8, +0xF3, 0x81, 0xF0, 0x82, 0xB7, 0x7F, 0x14, 0x9F, +0x80, 0x03, 0x15, 0x6F, 0x80, 0x04, 0x15, 0x7F, +0x80, 0x05, 0x15, 0x8F, 0x80, 0x06, 0x15, 0x9F, +0x80, 0x07, 0x15, 0xEF, 0x80, 0x09, 0xF4, 0x8A, +0xF7, 0x8B, 0x80, 0x06, 0x84, 0x20, 0x96, 0x90, +0x80, 0x6A, 0xD5, 0x32, 0x3C, 0x40, 0x11, 0x58, +0x3C, 0x30, 0x11, 0x59, 0x3C, 0x10, 0x11, 0x5A, +0x3D, 0x40, 0x11, 0x5B, 0x3C, 0xA0, 0x11, 0x5C, +0x3D, 0x50, 0x11, 0x5D, 0x3D, 0x30, 0x11, 0x5E, +0x3D, 0x20, 0x11, 0x5F, 0x3D, 0x00, 0x11, 0x60, +0x3C, 0x70, 0x11, 0x61, 0x3C, 0x00, 0x11, 0x62, +0x96, 0x48, 0x96, 0xD8, 0x86, 0x24, 0x97, 0x20, +0xF1, 0x83, 0xF7, 0x8A, 0x84, 0x20, 0x97, 0xC0, +0xF3, 0x82, 0xB7, 0xBF, 0xF4, 0x81, 0x15, 0x4F, +0x80, 0x04, 0x14, 0xAF, 0x80, 0x05, 0x15, 0x5F, +0x80, 0x06, 0x15, 0x3F, 0x80, 0x07, 0x15, 0x2F, +0x80, 0x08, 0x15, 0x0F, 0x80, 0x09, 0xF7, 0x8B, +0x80, 0x06, 0x96, 0x90, 0x80, 0x61, 0xF4, 0x0E, +0x97, 0x68, 0x49, 0x00, 0x1A, 0xF6, 0x3C, 0x8D, +0xFC, 0xE8, 0x8C, 0xC8, 0x04, 0xC4, 0x00, 0x1C, +0x50, 0xD6, 0x00, 0x2C, 0x14, 0xD4, 0x00, 0x1C, +0x2E, 0x87, 0xE1, 0x5D, 0x3C, 0x20, 0x11, 0x70, +0x50, 0xE3, 0x00, 0x08, 0x3C, 0x50, 0x11, 0x64, +0x5A, 0x88, 0x02, 0x5F, 0x3C, 0x10, 0x11, 0x66, +0x3D, 0xE0, 0x0F, 0x74, 0x3C, 0xD0, 0x11, 0x69, +0x3C, 0xF0, 0x11, 0x6A, 0x3D, 0x40, 0x11, 0x6B, +0x3C, 0xA0, 0x11, 0x6C, 0x3C, 0x40, 0x11, 0x6D, +0x3C, 0x30, 0x11, 0x6E, 0x3C, 0x00, 0x11, 0x6F, +0x84, 0xE0, 0x54, 0xC4, 0x80, 0xFF, 0x96, 0x48, +0xF4, 0x89, 0x97, 0x00, 0xF1, 0x82, 0x80, 0x06, +0xF3, 0x8A, 0xF4, 0x8B, 0x84, 0x21, 0x96, 0x90, +0x80, 0x67, 0xF4, 0x0F, 0x97, 0x68, 0xF7, 0x81, +0x14, 0xCF, 0x80, 0x03, 0x15, 0xEF, 0x80, 0x04, +0x14, 0xDF, 0x80, 0x05, 0x14, 0xFF, 0x80, 0x06, +0x15, 0x4F, 0x80, 0x07, 0x14, 0xAF, 0x80, 0x08, +0xB6, 0xFF, 0x49, 0x00, 0x1A, 0xB2, 0x3C, 0x20, +0x11, 0x70, 0x3C, 0x98, 0x0E, 0x6B, 0x3C, 0x50, +0x11, 0x64, 0x3C, 0x10, 0x11, 0x66, 0x3C, 0x90, +0x0F, 0x74, 0x3D, 0x50, 0x11, 0x69, 0x3D, 0x30, +0x11, 0x6A, 0x3D, 0x20, 0x11, 0x6B, 0x3C, 0x60, +0x11, 0x6C, 0x3C, 0x40, 0x11, 0x6D, 0x3C, 0x30, +0x11, 0x6E, 0x3C, 0x00, 0x11, 0x6F, 0x96, 0x48, +0xF6, 0x88, 0x97, 0x80, 0xB7, 0x1F, 0xF7, 0x81, +0xF1, 0x82, 0x14, 0xCF, 0x80, 0x03, 0x14, 0x9F, +0x80, 0x04, 0x15, 0x5F, 0x80, 0x05, 0x15, 0x3F, +0x80, 0x06, 0x15, 0x2F, 0x80, 0x07, 0xF4, 0x89, +0xF3, 0x8A, 0xF6, 0x8B, 0xD5, 0x6C, 0x3C, 0x40, +0x11, 0x65, 0x3C, 0x30, 0x11, 0x66, 0x3C, 0x10, +0x11, 0x67, 0x3C, 0xF0, 0x0F, 0x74, 0x3D, 0x40, +0x11, 0x69, 0x3C, 0x90, 0x11, 0x6A, 0x3C, 0xA0, +0x11, 0x6B, 0x3D, 0x50, 0x11, 0x6C, 0x3D, 0x30, +0x11, 0x6D, 0x3D, 0x20, 0x11, 0x6E, 0x3C, 0x00, +0x11, 0x6F, 0x84, 0xE0, 0x97, 0x20, 0x96, 0xD8, +0x96, 0x48, 0x96, 0x00, 0xF4, 0x81, 0xF3, 0x82, +0xF1, 0x83, 0xF0, 0x8B, 0x84, 0x21, 0x80, 0x06, +0x96, 0x90, 0x80, 0x67, 0xF4, 0x0F, 0x97, 0x68, +0x14, 0xFF, 0x80, 0x04, 0x15, 0x4F, 0x80, 0x05, +0x14, 0x9F, 0x80, 0x06, 0x14, 0xAF, 0x80, 0x07, +0x15, 0x5F, 0x80, 0x08, 0x15, 0x3F, 0x80, 0x09, +0x15, 0x2F, 0x80, 0x0A, 0xB6, 0xFF, 0x49, 0x00, +0x1A, 0x50, 0x3C, 0x60, 0x11, 0x67, 0x3C, 0x68, +0x0E, 0x6B, 0x3C, 0x20, 0x11, 0x70, 0x3C, 0x50, +0x11, 0x64, 0x3C, 0x40, 0x11, 0x65, 0x3C, 0x00, +0x11, 0x66, 0x3C, 0x30, 0x11, 0x67, 0x3D, 0x60, +0x0F, 0x74, 0x3D, 0x70, 0x11, 0x69, 0x3D, 0x80, +0x11, 0x6A, 0x3D, 0x90, 0x11, 0x6B, 0x3D, 0x10, +0x11, 0x6C, 0x3D, 0x00, 0x11, 0x6D, 0x3C, 0x60, +0x11, 0x6E, 0x3C, 0x10, 0x11, 0x6F, 0x85, 0x62, +0x97, 0x20, 0x96, 0x00, 0x96, 0xD8, 0xF6, 0x8A, +0x97, 0x88, 0xB7, 0x7F, 0xF4, 0x81, 0xF0, 0x82, +0xF3, 0x83, 0x15, 0x6F, 0x80, 0x04, 0x15, 0x7F, +0x80, 0x05, 0x15, 0x8F, 0x80, 0x06, 0x15, 0x9F, +0x80, 0x07, 0x15, 0x1F, 0x80, 0x08, 0x15, 0x0F, +0x80, 0x09, 0xF6, 0x8B, 0x80, 0x0E, 0x84, 0x21, +0x96, 0x90, 0x80, 0x67, 0x80, 0x87, 0x97, 0x68, +0x49, 0x00, 0x1A, 0x13, 0x2E, 0x87, 0xE1, 0x5D, +0x3C, 0xED, 0xFC, 0xE8, 0x5A, 0x88, 0x02, 0x20, +0x3C, 0xD0, 0x11, 0x14, 0x86, 0x80, 0x40, 0xF6, +0xC0, 0x08, 0x58, 0x07, 0x80, 0x05, 0x14, 0x07, +0x00, 0x03, 0x15, 0x47, 0x00, 0x24, 0x3C, 0xA0, +0x11, 0x25, 0x45, 0xE7, 0x1F, 0x73, 0x40, 0x95, +0x40, 0x08, 0x59, 0x54, 0x80, 0x51, 0x15, 0x57, +0x00, 0x28, 0x3D, 0x30, 0x11, 0x2C, 0x41, 0x29, +0xC0, 0x08, 0x58, 0x19, 0x00, 0x04, 0x14, 0x17, +0x00, 0x30, 0xD5, 0x24, 0x3C, 0x70, 0x11, 0x14, +0x3C, 0x20, 0x11, 0x15, 0x40, 0x51, 0x1E, 0x04, +0x14, 0x57, 0x00, 0x03, 0x3C, 0x40, 0x11, 0x1F, +0x96, 0xE3, 0x14, 0x37, 0x00, 0x24, 0x3D, 0x60, +0x11, 0x25, 0x3D, 0x70, 0x11, 0x26, 0x41, 0x8B, +0xDA, 0x04, 0x15, 0x87, 0x00, 0x28, 0x3D, 0x90, +0x11, 0x2C, 0x3D, 0x10, 0x11, 0x2D, 0x41, 0x08, +0xE6, 0x04, 0x15, 0x07, 0x00, 0x30, 0x3C, 0xB0, +0x11, 0x30, 0x3C, 0xC0, 0x11, 0x31, 0x41, 0xE6, +0x2E, 0x04, 0x15, 0xE7, 0x00, 0x32, 0xFC, 0xE8, +0x3C, 0x2C, 0x07, 0x39, 0x84, 0x60, 0xA8, 0xD1, +0x3C, 0x40, 0x11, 0x48, 0x97, 0x64, 0xC5, 0x02, +0x84, 0xA8, 0x3C, 0x30, 0x11, 0x48, 0x96, 0xCE, +0xC3, 0x02, 0x8C, 0xA8, 0x3C, 0xFC, 0x07, 0x38, +0x41, 0x07, 0x94, 0x40, 0x04, 0x28, 0x00, 0x05, +0x66, 0x41, 0x0F, 0xFF, 0xFE, 0x67, 0xC0, 0x04, +0x58, 0x10, 0xC0, 0x00, 0xD5, 0x03, 0x66, 0x10, +0xC0, 0x00, 0x14, 0x18, 0x00, 0x05, 0xDD, 0x9E, +0x3C, 0x3C, 0x07, 0x39, 0x96, 0x43, 0x84, 0x40, +0x3C, 0x18, 0x0F, 0xD3, 0x3C, 0x08, 0x0E, 0x69, +0xA8, 0x99, 0x3C, 0x40, 0x11, 0x48, 0x97, 0x64, +0xC5, 0x02, 0x84, 0xA8, 0x3C, 0x10, 0x11, 0x48, +0x96, 0x4E, 0xC1, 0x02, 0x8C, 0xA8, 0x3C, 0xFC, +0x07, 0x38, 0x41, 0x07, 0x94, 0x40, 0xB4, 0x50, +0x96, 0xD1, 0xB6, 0x70, 0xB4, 0x90, 0x40, 0x02, +0x02, 0x04, 0xB6, 0x10, 0xDD, 0x9E, 0xFC, 0x01, +0x3C, 0x2C, 0x07, 0x39, 0x84, 0x20, 0xA8, 0x51, +0x3C, 0x3C, 0x07, 0x38, 0xF1, 0x81, 0x40, 0x00, +0x40, 0x08, 0xF4, 0x01, 0xE4, 0x85, 0xE8, 0x11, +0xF5, 0x01, 0x40, 0x61, 0x94, 0xA0, 0xB4, 0x26, +0x96, 0x89, 0xB6, 0x46, 0xF4, 0x01, 0x41, 0x01, +0x90, 0xA0, 0xB4, 0xB0, 0xFF, 0x47, 0xB6, 0xB0, +0xF6, 0x01, 0x8C, 0xC1, 0xF6, 0x81, 0xD5, 0xEE, +0xFC, 0x81, 0x3C, 0x1C, 0x07, 0x39, 0x84, 0x40, +0x3C, 0x08, 0x0E, 0x6B, 0xA8, 0x89, 0x3C, 0x30, +0x11, 0x48, 0x97, 0x1C, 0xC4, 0x02, 0x84, 0x88, +0x3C, 0x50, 0x11, 0x48, 0x97, 0x4E, 0xC5, 0x02, +0x8C, 0x88, 0x3C, 0xFC, 0x07, 0x38, 0x41, 0x07, +0x90, 0x40, 0xB4, 0x30, 0x44, 0x2F, 0x00, 0xFF, +0xFE, 0x8E, 0xB6, 0x50, 0xB4, 0x70, 0x40, 0x01, +0x81, 0x04, 0xB6, 0x10, 0xDD, 0x9E, 0xFC, 0x01, +0x3C, 0x2C, 0x07, 0x39, 0x84, 0x20, 0xA8, 0x51, +0x3C, 0x3C, 0x07, 0x38, 0xF1, 0x81, 0x40, 0x00, +0x20, 0x08, 0x44, 0x4F, 0x00, 0xFF, 0xF5, 0x01, +0xE4, 0xA5, 0xE8, 0x11, 0xF6, 0x01, 0x41, 0x01, +0x98, 0xA0, 0xB4, 0x30, 0xFE, 0x66, 0xB6, 0x30, +0xF2, 0x01, 0x41, 0x11, 0x88, 0xA0, 0xB4, 0xB1, +0xFF, 0x47, 0xB6, 0xB1, 0xF6, 0x01, 0x8C, 0xC1, +0xF6, 0x81, 0xD5, 0xEE, 0xFC, 0x81, 0xFC, 0x01, +0x3C, 0x2C, 0x07, 0x39, 0x84, 0x20, 0xA8, 0x51, +0x3C, 0x3C, 0x07, 0x38, 0xF1, 0x81, 0xF4, 0x01, +0xE4, 0x85, 0xE8, 0x12, 0xF5, 0x01, 0x40, 0x61, +0x94, 0xA0, 0xB4, 0x26, 0x66, 0x20, 0x80, 0xFF, +0xB6, 0x46, 0xF4, 0x01, 0x41, 0x01, 0x90, 0xA0, +0xB4, 0xB0, 0xFF, 0x47, 0xB6, 0xB0, 0xF6, 0x01, +0x8C, 0xC1, 0xF6, 0x81, 0xD5, 0xED, 0xFC, 0x81, +0xFC, 0x01, 0x49, 0xFF, 0xFC, 0xC7, 0x46, 0x61, +0x20, 0x00, 0x3C, 0x1D, 0xFC, 0xE8, 0x46, 0x40, +0x50, 0x00, 0x46, 0x20, 0x30, 0x00, 0x84, 0x00, +0x50, 0x31, 0x02, 0x00, 0x50, 0x52, 0x04, 0x00, +0x51, 0x03, 0x06, 0x00, 0x45, 0x10, 0x2A, 0x00, +0x45, 0x20, 0x3F, 0x00, 0x14, 0x00, 0x80, 0x18, +0x14, 0x30, 0x80, 0x19, 0x14, 0x50, 0x80, 0x1A, +0x15, 0x00, 0x80, 0x1B, 0x15, 0x10, 0x80, 0x1E, +0x15, 0x20, 0x80, 0x1D, 0x3C, 0x20, 0x11, 0x47, +0x3D, 0x3D, 0xFE, 0x57, 0x47, 0x50, 0x49, 0xDB, +0x96, 0xD3, 0x86, 0x81, 0x51, 0x6A, 0x8C, 0x57, +0xA8, 0xCF, 0x80, 0x40, 0x80, 0x20, 0x15, 0x49, +0x80, 0x29, 0x80, 0x60, 0x15, 0x69, 0x80, 0xBB, +0x49, 0xFF, 0xFC, 0xD5, 0x3C, 0x00, 0x11, 0x67, +0x3C, 0x10, 0x0F, 0x74, 0x3D, 0x70, 0x0F, 0x74, +0x97, 0x0B, 0x3C, 0x48, 0x0F, 0xD3, 0x3D, 0x80, +0x0E, 0x84, 0x3C, 0x08, 0x0E, 0x6A, 0x3C, 0x48, +0x0E, 0x68, 0x3D, 0x78, 0x0E, 0x69, 0x5B, 0x88, +0x06, 0x04, 0x48, 0x00, 0x00, 0xEA, 0x3C, 0x50, +0x0E, 0x84, 0x97, 0xAB, 0xE4, 0xCB, 0xE9, 0x07, +0x3C, 0x20, 0x0E, 0x84, 0x96, 0xD3, 0xE4, 0x6F, +0x4E, 0xF3, 0x00, 0xDF, 0x3D, 0x90, 0x0E, 0x84, +0x5B, 0x98, 0x11, 0x04, 0x48, 0x00, 0x00, 0xD9, +0x3D, 0xEC, 0x07, 0x39, 0x84, 0x20, 0x14, 0x1F, +0x00, 0x01, 0x3D, 0x40, 0x11, 0x14, 0x3D, 0x3D, +0xFC, 0xE8, 0x3D, 0x50, 0x11, 0x15, 0x40, 0x4A, +0xD2, 0x04, 0x14, 0x49, 0x80, 0x03, 0x3D, 0x60, +0x11, 0x16, 0x3D, 0x70, 0x11, 0x17, 0x40, 0x6B, +0xDA, 0x04, 0x14, 0x69, 0x80, 0x04, 0x3D, 0x80, +0x11, 0x18, 0x3C, 0x20, 0x11, 0x19, 0x40, 0x31, +0x62, 0x04, 0x14, 0x39, 0x80, 0x05, 0x3D, 0x90, +0x11, 0x1A, 0x15, 0x99, 0x80, 0x20, 0x3D, 0x00, +0x11, 0x1B, 0x3C, 0x00, 0x11, 0x1C, 0x41, 0x10, +0x42, 0x04, 0x15, 0x19, 0x80, 0x21, 0x3D, 0x20, +0x11, 0x1D, 0x3C, 0x50, 0x11, 0x1E, 0x40, 0xF2, +0xCA, 0x04, 0x14, 0xF9, 0x80, 0x22, 0x3C, 0x10, +0x11, 0x1F, 0x97, 0x0B, 0x14, 0x49, 0x80, 0x24, +0x3D, 0xE0, 0x11, 0x20, 0x3D, 0x40, 0x11, 0x21, +0x41, 0x5A, 0x7A, 0x04, 0x15, 0x59, 0x80, 0x25, +0x3D, 0x60, 0x11, 0x22, 0x3D, 0x70, 0x11, 0x23, +0x40, 0x6B, 0xDA, 0x04, 0x14, 0x69, 0x80, 0x26, +0x3D, 0x80, 0x11, 0x24, 0x15, 0x89, 0x80, 0x27, +0x3C, 0x30, 0x11, 0x25, 0x3C, 0x20, 0x11, 0x26, +0x41, 0x91, 0x0E, 0x04, 0x15, 0x99, 0x80, 0x28, +0x3D, 0x00, 0x11, 0x27, 0x3C, 0x00, 0x11, 0x28, +0x41, 0x10, 0x42, 0x04, 0x15, 0x19, 0x80, 0x29, +0x3D, 0x20, 0x11, 0x29, 0x3C, 0x50, 0x11, 0x2A, +0x40, 0xF2, 0xCA, 0x04, 0x14, 0xF9, 0x80, 0x2A, +0x3C, 0x10, 0x11, 0x2B, 0x14, 0x19, 0x80, 0x2B, +0x3C, 0x40, 0x11, 0x2C, 0x3D, 0xE0, 0x11, 0x2D, +0x41, 0x4F, 0x12, 0x04, 0x15, 0x49, 0x80, 0x30, +0x3D, 0x50, 0x11, 0x2E, 0x3D, 0x60, 0x11, 0x2F, +0x41, 0x7B, 0x56, 0x04, 0x15, 0x79, 0x80, 0x31, +0x3C, 0x60, 0x11, 0x30, 0x3D, 0x80, 0x11, 0x31, +0x40, 0x3C, 0x1A, 0x04, 0x14, 0x39, 0x80, 0x32, +0x3C, 0x20, 0x11, 0x32, 0x14, 0x29, 0x80, 0x33, +0x3D, 0x90, 0x11, 0x33, 0x3D, 0x00, 0x11, 0x34, +0x40, 0x08, 0x66, 0x04, 0x14, 0x09, 0x80, 0x3C, +0x3D, 0x10, 0x11, 0x35, 0x3D, 0x20, 0x11, 0x36, +0x40, 0x59, 0x46, 0x04, 0x14, 0x59, 0x80, 0x3D, +0x3C, 0xF0, 0x11, 0x37, 0x14, 0xF9, 0x80, 0x3F, +0x3C, 0x10, 0x11, 0x38, 0x3C, 0x40, 0x11, 0x39, +0x41, 0xE2, 0x06, 0x04, 0x15, 0xE9, 0x80, 0x50, +0x3D, 0x40, 0x11, 0x41, 0x3D, 0x50, 0x11, 0x42, +0x41, 0x6A, 0xD2, 0x04, 0x15, 0x69, 0x80, 0x58, +0x3D, 0x70, 0x11, 0x3E, 0x15, 0x79, 0x80, 0x54, +0x3C, 0x60, 0x11, 0x15, 0x97, 0x8E, 0xC6, 0x5A, +0x3D, 0x50, 0x11, 0x3C, 0x3D, 0x60, 0x11, 0x3D, +0x41, 0x7B, 0x56, 0x04, 0x15, 0x79, 0x80, 0x51, +0x3C, 0x60, 0x11, 0x3A, 0x3D, 0x80, 0x11, 0x3B, +0x40, 0x3C, 0x1A, 0x04, 0x14, 0x39, 0x80, 0x52, +0x3D, 0x90, 0x11, 0x45, 0x3C, 0x20, 0x11, 0x46, +0x41, 0x01, 0x66, 0x04, 0x15, 0x09, 0x80, 0x59, +0x3C, 0x00, 0x11, 0x43, 0x3D, 0x10, 0x11, 0x44, +0x41, 0x28, 0x82, 0x04, 0x15, 0x29, 0x80, 0x5A, +0x3C, 0x50, 0x11, 0x40, 0x14, 0x59, 0x80, 0x55, +0x3D, 0x40, 0x11, 0x3F, 0xD5, 0x59, 0x3C, 0x00, +0x0F, 0x74, 0x49, 0xFF, 0xFE, 0x52, 0x3C, 0x00, +0x0F, 0xA9, 0x49, 0xFF, 0xFE, 0xAA, 0x3C, 0x00, +0x0F, 0x96, 0x49, 0xFF, 0xFE, 0x86, 0x3D, 0x00, +0x0F, 0x97, 0x3D, 0x1C, 0x07, 0x39, 0x84, 0x00, +0x47, 0x20, 0x0F, 0xFF, 0x14, 0x08, 0x80, 0x01, +0x3D, 0x3C, 0x07, 0x38, 0xF0, 0x81, 0x40, 0x18, +0x70, 0x08, 0x50, 0x69, 0x0F, 0xFF, 0xF5, 0x01, +0xE4, 0xA5, 0x4E, 0xF2, 0xFF, 0x0B, 0xF5, 0x01, +0x41, 0xE9, 0x94, 0xA0, 0x80, 0x1E, 0xA1, 0x05, +0xFF, 0x36, 0xA9, 0x05, 0xF3, 0x01, 0x41, 0x49, +0x8C, 0xA0, 0x80, 0x14, 0xA0, 0x85, 0xFE, 0x8F, +0xA8, 0x85, 0xF0, 0x01, 0x8C, 0x01, 0xF0, 0x81, +0xD5, 0xEB, 0x3D, 0x80, 0x11, 0x3A, 0x3C, 0x30, +0x11, 0x3B, 0x40, 0x21, 0xE2, 0x04, 0x14, 0x29, +0x80, 0x51, 0x3D, 0x90, 0x11, 0x3C, 0x3D, 0x00, +0x11, 0x3D, 0x40, 0x08, 0x66, 0x04, 0x14, 0x09, +0x80, 0x52, 0x3D, 0x10, 0x11, 0x43, 0x3D, 0x20, +0x11, 0x44, 0x40, 0x59, 0x46, 0x04, 0x14, 0x59, +0x80, 0x59, 0x3C, 0xF0, 0x11, 0x45, 0x3C, 0x10, +0x11, 0x46, 0x40, 0x40, 0xBE, 0x04, 0x14, 0x49, +0x80, 0x5A, 0x3D, 0xE0, 0x11, 0x3F, 0x15, 0xE9, +0x80, 0x55, 0x3D, 0x40, 0x11, 0x40, 0x15, 0x49, +0x80, 0x56, 0x3C, 0x10, 0x11, 0x2C, 0x3C, 0x60, +0x0E, 0x84, 0x97, 0x0B, 0x96, 0xF3, 0xE4, 0x6B, +0x3C, 0x4E, 0x07, 0x37, 0x84, 0x00, 0xE9, 0x06, +0x3C, 0x20, 0x0E, 0x84, 0x96, 0x13, 0x5E, 0x00, +0x00, 0x0F, 0x49, 0xFF, 0xDC, 0x45, 0xFC, 0x81, +0x3C, 0x1D, 0xFE, 0x58, 0x04, 0x00, 0x80, 0x0A, +0x66, 0x20, 0x00, 0x01, 0x14, 0x20, 0x80, 0x0A, +0xDD, 0x9E, 0x3C, 0x1C, 0x07, 0x39, 0x3C, 0x3D, +0xFE, 0x58, 0x84, 0x41, 0x94, 0x05, 0xFA, 0x91, +0xA8, 0x8A, 0xA8, 0x1D, 0xB6, 0x83, 0xDD, 0x9E, +0x3C, 0x00, 0x0F, 0x92, 0x3C, 0x3D, 0xFE, 0x58, +0x3C, 0x0C, 0x07, 0x39, 0x84, 0x21, 0xFA, 0x51, +0xA8, 0x42, 0xB6, 0x43, 0xDD, 0x9E, 0x3C, 0x0D, +0xFE, 0x57, 0xA0, 0x47, 0x8E, 0x24, 0x5C, 0x00, +0x80, 0x01, 0xDD, 0x9E, 0x3C, 0x1D, 0xFE, 0x58, +0x84, 0x00, 0x04, 0x20, 0x80, 0x0A, 0x3C, 0x0B, +0xF9, 0xF1, 0x58, 0x31, 0x00, 0x01, 0x14, 0x30, +0x80, 0x0A, 0xDD, 0x9E, 0x3C, 0x1D, 0xFE, 0x58, +0x04, 0x00, 0x80, 0x32, 0x96, 0x84, 0xCA, 0xFD, +0xDD, 0x9E, 0xFC, 0x40, 0x81, 0x00, 0x83, 0x81, +0x80, 0xE2, 0x49, 0xFF, 0xFF, 0xF5, 0x3D, 0x0C, +0x07, 0x39, 0x3C, 0x0D, 0xFE, 0x58, 0x84, 0x80, +0x14, 0x48, 0x00, 0x02, 0x47, 0x40, 0x01, 0x00, +0xA9, 0x05, 0xE0, 0x9C, 0x46, 0xA0, 0x01, 0x00, +0xE8, 0x09, 0x41, 0x5A, 0x10, 0x20, 0x38, 0x14, +0x11, 0x01, 0x12, 0x1A, 0x80, 0x00, 0x8C, 0x81, +0xD5, 0xF5, 0x84, 0xA0, 0x42, 0x1E, 0x14, 0x00, +0x95, 0x09, 0x9D, 0x89, 0x88, 0x8A, 0xC7, 0x2F, +0x3C, 0x20, 0x0E, 0xF4, 0xAC, 0xA0, 0x40, 0x75, +0x18, 0x20, 0x3C, 0x00, 0x0E, 0xF5, 0x81, 0x05, +0x8C, 0x22, 0xAC, 0x38, 0x44, 0x40, 0x00, 0x82, +0x3E, 0x58, 0x1C, 0xE8, 0x3C, 0x60, 0x0E, 0x89, +0x97, 0xF3, 0xE1, 0x07, 0xE8, 0x20, 0x38, 0x32, +0x91, 0x01, 0x41, 0x15, 0x04, 0x20, 0x12, 0x38, +0x80, 0x00, 0x9C, 0x89, 0x9C, 0x21, 0x38, 0x62, +0x81, 0x01, 0x81, 0x21, 0x41, 0x25, 0x08, 0x20, +0x12, 0x69, 0x00, 0x00, 0x9D, 0xE2, 0x8D, 0x22, +0x41, 0x35, 0x24, 0x20, 0x38, 0x32, 0x9D, 0x01, +0x8C, 0x23, 0x12, 0x39, 0x80, 0x00, 0x8D, 0x01, +0x8C, 0x84, 0xD5, 0xE1, 0x40, 0x35, 0x18, 0x20, +0xAD, 0xE0, 0xAD, 0xD8, 0x84, 0x21, 0x14, 0x18, +0x00, 0x02, 0xFC, 0xC0, 0xFC, 0x00, 0x49, 0xFF, +0xFF, 0x8C, 0xC0, 0x15, 0x3C, 0x0D, 0xFE, 0x57, +0x02, 0x00, 0x00, 0x54, 0x96, 0x01, 0x80, 0x20, +0x3C, 0x0D, 0xFE, 0x57, 0x02, 0x00, 0x00, 0x55, +0x96, 0x01, 0x96, 0x83, 0x94, 0x49, 0x3E, 0x08, +0x1C, 0xE8, 0x88, 0x01, 0x80, 0x22, 0x12, 0x10, +0x00, 0x00, 0xD5, 0x15, 0x3C, 0x00, 0x0F, 0x92, +0x3C, 0x0D, 0xFE, 0x58, 0x50, 0x20, 0x00, 0x40, +0x3C, 0x0D, 0xFE, 0x57, 0x02, 0x00, 0x00, 0x54, +0x96, 0x01, 0x94, 0x41, 0x3E, 0x08, 0x1C, 0xE8, +0x88, 0x20, 0x80, 0x02, 0x44, 0x20, 0x00, 0x10, +0x49, 0xFF, 0xD3, 0x6B, 0xFC, 0x80, 0xFC, 0x01, +0x12, 0x0F, 0x80, 0x03, 0x22, 0x0F, 0x80, 0x03, +0x5E, 0x00, 0x01, 0x00, 0xC8, 0x06, 0x44, 0x00, +0x00, 0xFF, 0x12, 0x0F, 0x80, 0x03, 0xD5, 0x09, +0x22, 0x0F, 0x80, 0x03, 0x4E, 0x04, 0x00, 0x06, +0x44, 0x00, 0x00, 0xFF, 0x12, 0x0F, 0x80, 0x03, +0x3C, 0x0D, 0xFE, 0x56, 0x22, 0x1F, 0x80, 0x03, +0xA8, 0x43, 0x3C, 0x0D, 0xFE, 0x56, 0x84, 0x21, +0xA8, 0x44, 0x3C, 0x0D, 0xFE, 0x56, 0x84, 0x20, +0xA8, 0x44, 0x3C, 0x0D, 0xFF, 0xB9, 0x84, 0x20, +0xA8, 0x47, 0xFC, 0x81, 0xFC, 0x20, 0x45, 0x00, +0x00, 0x38, 0x3E, 0x2F, 0xFF, 0x08, 0x3E, 0x48, +0x1C, 0xE8, 0x42, 0x20, 0x40, 0x73, 0x02, 0x32, +0x03, 0x20, 0x02, 0x52, 0x03, 0x20, 0x02, 0x62, +0x03, 0x1F, 0x02, 0x12, 0x00, 0x35, 0xA0, 0x95, +0x96, 0x4B, 0x40, 0x81, 0x05, 0x16, 0x97, 0x5F, +0x54, 0x31, 0x8F, 0x00, 0x42, 0xF4, 0x14, 0x24, +0x90, 0x68, 0x97, 0xB3, 0x42, 0xF3, 0x0C, 0x73, +0x98, 0xEB, 0x40, 0x57, 0x8C, 0xB6, 0x50, 0x70, +0x03, 0xA6, 0x97, 0xAB, 0x38, 0x62, 0x1D, 0x09, +0xFC, 0xA0, 0xFC, 0x60, 0x80, 0xC0, 0x49, 0xFF, +0xFA, 0x19, 0x3C, 0x00, 0x0F, 0xA9, 0x49, 0xFF, +0xFD, 0x30, 0x3C, 0x00, 0x0F, 0x96, 0x49, 0xFF, +0xFD, 0x0C, 0x84, 0x00, 0x49, 0xFF, 0xFC, 0xEB, +0x86, 0x20, 0x3D, 0x9C, 0x07, 0x24, 0x80, 0x11, +0x3C, 0x10, 0x0E, 0x5D, 0xE1, 0xA1, 0xE8, 0x07, +0x41, 0xEC, 0xC4, 0x20, 0x12, 0x0F, 0x00, 0x00, +0x8D, 0xA1, 0xD5, 0xF7, 0xCE, 0x57, 0x3C, 0x00, +0x11, 0x73, 0x49, 0xFF, 0xFC, 0xBA, 0x84, 0x0A, +0x49, 0xFF, 0xFC, 0x98, 0x84, 0xE1, 0x3E, 0xB8, +0x0A, 0x60, 0x3D, 0x40, 0x0E, 0x5F, 0xE0, 0xD4, +0xE8, 0x1A, 0x3D, 0x8D, 0xFC, 0xE8, 0x14, 0x7C, +0x00, 0x58, 0x49, 0xFF, 0xF9, 0xF1, 0x49, 0xFF, +0xF9, 0xE9, 0x49, 0x00, 0x17, 0x24, 0x84, 0x00, +0x49, 0xFF, 0xF7, 0x70, 0x3D, 0x0C, 0x07, 0x24, +0x95, 0x71, 0x89, 0x85, 0x88, 0xAB, 0x22, 0x32, +0x85, 0xA0, 0x12, 0x38, 0x00, 0x00, 0x95, 0xF9, +0x8C, 0xC1, 0xD5, 0xE4, 0x3C, 0x00, 0x11, 0x72, +0x49, 0xFF, 0xFC, 0x93, 0x84, 0x0A, 0x49, 0xFF, +0xFC, 0x71, 0x84, 0xC0, 0x84, 0xE1, 0x3E, 0x88, +0x0A, 0x60, 0x3D, 0x50, 0x0E, 0x5F, 0xE0, 0xD5, +0xE8, 0x53, 0x3D, 0x6D, 0xFC, 0xE8, 0x14, 0x7B, +0x00, 0x58, 0x49, 0xFF, 0xF9, 0xC9, 0x49, 0xFF, +0xF9, 0xC1, 0x49, 0x00, 0x16, 0xFC, 0x84, 0x00, +0x49, 0xFF, 0xF7, 0x48, 0x3C, 0xAC, 0x07, 0x24, +0x94, 0xF1, 0x89, 0x43, 0x02, 0x15, 0x00, 0x00, +0x88, 0x68, 0x23, 0x71, 0x85, 0xA0, 0x96, 0x0B, +0x8A, 0x17, 0x42, 0x20, 0x00, 0x03, 0x97, 0x13, +0x12, 0x45, 0x00, 0x00, 0x95, 0xF9, 0x8C, 0xC1, +0xD5, 0xDD, 0x5A, 0x68, 0x01, 0x32, 0x3C, 0x00, +0x11, 0x73, 0x49, 0xFF, 0xFC, 0x62, 0x46, 0x70, +0x03, 0xE8, 0x84, 0x0A, 0x46, 0x9F, 0xFC, 0x17, +0x49, 0xFF, 0xFC, 0x3C, 0x84, 0xC0, 0x3E, 0xA8, +0x1C, 0xE8, 0x50, 0x73, 0x83, 0xFF, 0x50, 0x84, +0x8C, 0x00, 0x3E, 0xB8, 0x0A, 0x60, 0x3C, 0x00, +0x0E, 0x5E, 0xE0, 0xC0, 0xE9, 0x1C, 0x3C, 0x00, +0x11, 0x72, 0x49, 0xFF, 0xFC, 0x4A, 0x84, 0x0A, +0x49, 0xFF, 0xFC, 0x28, 0x46, 0x20, 0x03, 0xE8, +0x46, 0x3F, 0xFC, 0x17, 0x84, 0xC0, 0x3E, 0xA8, +0x1C, 0xE8, 0x50, 0x71, 0x03, 0xFF, 0x50, 0x81, +0x8C, 0x00, 0x3E, 0xB8, 0x0A, 0x60, 0x3C, 0x40, +0x0E, 0x5E, 0xE0, 0xC4, 0xE9, 0x57, 0x49, 0xFF, +0xFC, 0xAD, 0xFC, 0xE0, 0x41, 0x83, 0x04, 0x0A, +0x97, 0x34, 0x51, 0x9C, 0x02, 0x40, 0xC4, 0x05, +0x38, 0x15, 0x65, 0x01, 0x92, 0x28, 0xD5, 0x04, +0x38, 0x55, 0x65, 0x01, 0x96, 0x68, 0x3D, 0xED, +0xFC, 0xE8, 0x85, 0x80, 0xE6, 0x36, 0x14, 0xCF, +0x00, 0x55, 0x14, 0xCF, 0x00, 0x56, 0x14, 0xCF, +0x00, 0x51, 0x14, 0xCF, 0x00, 0x52, 0xE9, 0x11, +0x3C, 0x20, 0x11, 0x15, 0x53, 0x10, 0x80, 0x1F, +0x45, 0x20, 0x02, 0x00, 0x96, 0x8E, 0x41, 0x39, +0x44, 0x0E, 0xC2, 0x04, 0x15, 0x3F, 0x00, 0x55, +0xD5, 0x19, 0x15, 0x3F, 0x00, 0x56, 0xD5, 0x16, +0x3C, 0x00, 0x11, 0x15, 0x85, 0xA1, 0x96, 0x0E, +0x40, 0x36, 0x84, 0x0C, 0xC0, 0x08, 0x41, 0x01, +0x9C, 0x02, 0x15, 0x0F, 0x00, 0x52, 0x40, 0x31, +0xA0, 0x02, 0xD5, 0x06, 0x40, 0xE1, 0xA0, 0x02, +0x14, 0xEF, 0x00, 0x52, 0xFE, 0xFE, 0x14, 0x3F, +0x00, 0x51, 0x49, 0xFF, 0xF9, 0x39, 0x49, 0xFF, +0xF9, 0x31, 0x49, 0x00, 0x16, 0x6C, 0x84, 0x00, +0x49, 0xFF, 0xF6, 0xB8, 0x3C, 0x9C, 0x07, 0x24, +0x95, 0x31, 0x89, 0x24, 0x88, 0x8B, 0x22, 0x52, +0x05, 0x80, 0x12, 0x54, 0x80, 0x00, 0x8C, 0xC1, +0xD5, 0x8F, 0x40, 0xC3, 0x04, 0x0A, 0x97, 0x74, +0x50, 0xD6, 0x02, 0x40, 0xC5, 0x05, 0x38, 0x35, +0x35, 0x01, 0x92, 0x68, 0xD5, 0x04, 0x38, 0x15, +0x35, 0x01, 0x96, 0xC8, 0x3C, 0xED, 0xFC, 0xE8, +0x86, 0x00, 0xE6, 0x76, 0x15, 0x07, 0x00, 0x55, +0x15, 0x07, 0x00, 0x56, 0x15, 0x07, 0x00, 0x51, +0x15, 0x07, 0x00, 0x52, 0xE9, 0x11, 0x3C, 0x40, +0x11, 0x15, 0x53, 0x41, 0x80, 0x1F, 0x45, 0x50, +0x02, 0x00, 0x97, 0x0E, 0x41, 0x6A, 0xD0, 0x0E, +0xC4, 0x04, 0x15, 0x67, 0x00, 0x55, 0xD5, 0x19, +0x15, 0x67, 0x00, 0x56, 0xD5, 0x16, 0x3C, 0x20, +0x11, 0x15, 0x86, 0x21, 0x96, 0x8E, 0x40, 0x08, +0x8C, 0x0C, 0xC2, 0x08, 0x41, 0x30, 0x1C, 0x02, +0x15, 0x37, 0x00, 0x52, 0x40, 0x00, 0x20, 0x02, +0xD5, 0x06, 0x41, 0x20, 0x20, 0x02, 0x15, 0x27, +0x00, 0x52, 0xFE, 0x3E, 0x14, 0x07, 0x00, 0x51, +0x49, 0xFF, 0xF8, 0xE6, 0x49, 0xFF, 0xF8, 0xDE, +0x49, 0x00, 0x16, 0x19, 0x84, 0x00, 0x49, 0xFF, +0xF6, 0x65, 0x3C, 0x9C, 0x07, 0x24, 0x95, 0x71, +0x89, 0x25, 0x02, 0x14, 0x80, 0x00, 0x88, 0xAB, +0x23, 0x72, 0x85, 0x80, 0x96, 0xCB, 0x8A, 0x77, +0x42, 0x01, 0x80, 0x03, 0x96, 0x83, 0x12, 0x24, +0x80, 0x00, 0x8C, 0xC1, 0x48, 0xFF, 0xFF, 0x4D, +0x2E, 0x07, 0xF3, 0xE4, 0x4E, 0x02, 0x00, 0x9A, +0xFC, 0x60, 0x84, 0x00, 0x84, 0x2C, 0x3E, 0x07, +0xF3, 0xE4, 0x3C, 0x18, 0x0E, 0x84, 0x49, 0xFF, +0xFB, 0xF1, 0x84, 0x00, 0x85, 0x20, 0x80, 0x20, +0x80, 0x40, 0x49, 0xFF, 0xFE, 0x98, 0x80, 0xE9, +0x3D, 0x60, 0x0E, 0x5F, 0x3D, 0x7C, 0x07, 0x24, +0x81, 0x49, 0x87, 0x01, 0xE1, 0x56, 0xE8, 0x1B, +0x41, 0x9B, 0xA8, 0x20, 0x02, 0x6C, 0x80, 0x00, +0x3C, 0x30, 0x11, 0x77, 0x96, 0x73, 0x97, 0x5B, +0xE0, 0xA1, 0xE8, 0x07, 0x41, 0xCC, 0x28, 0x0C, +0x41, 0xEE, 0x24, 0x04, 0x40, 0x9F, 0x00, 0x13, +0x02, 0x4C, 0x80, 0x00, 0x96, 0x23, 0xE0, 0xE0, +0xE8, 0x04, 0x02, 0x7C, 0x80, 0x00, 0x97, 0xFB, +0x8D, 0x41, 0xD5, 0xE5, 0x84, 0x4D, 0x84, 0xC0, +0x3C, 0x28, 0x0E, 0x84, 0x49, 0xFF, 0xFB, 0xC2, +0x3D, 0x40, 0x0E, 0x5E, 0x82, 0x06, 0x86, 0xA1, +0xE1, 0x94, 0xE8, 0x06, 0x40, 0x2A, 0xC0, 0x0C, +0xFF, 0x97, 0x8D, 0x81, 0xD5, 0xFA, 0x85, 0x05, +0x85, 0xC1, 0x84, 0x01, 0x80, 0x20, 0x80, 0x46, +0x49, 0xFF, 0xFE, 0x5D, 0x84, 0x00, 0x3D, 0x00, +0x0E, 0x5E, 0x3C, 0xDC, 0x07, 0x24, 0x82, 0x20, +0xE1, 0xB0, 0xE8, 0x19, 0x41, 0x26, 0xC4, 0x20, +0x02, 0x49, 0x00, 0x00, 0x3C, 0x30, 0x11, 0x95, +0x96, 0xA3, 0x96, 0x5B, 0xE0, 0x41, 0xE8, 0x05, +0x41, 0x37, 0x44, 0x0C, 0x40, 0x63, 0x4C, 0x12, +0x02, 0x59, 0x00, 0x00, 0x97, 0x2B, 0xE0, 0x04, +0xE8, 0x04, 0x02, 0x09, 0x00, 0x00, 0x96, 0x03, +0x8D, 0xA1, 0xD5, 0xE7, 0xC6, 0x04, 0x8F, 0x01, +0x4E, 0x83, 0xFF, 0xD9, 0x85, 0x40, 0x3C, 0xB0, +0x0E, 0x5D, 0x3E, 0x58, 0x0A, 0x60, 0x81, 0x8A, +0xE1, 0x4B, 0xE8, 0x05, 0x38, 0xC2, 0xA9, 0x09, +0x8D, 0x41, 0xD5, 0xFB, 0x84, 0x20, 0x3C, 0x98, +0x05, 0x30, 0x80, 0xA1, 0x84, 0x81, 0x4C, 0x58, +0x00, 0x0E, 0x40, 0x22, 0x14, 0x0C, 0xFE, 0xB6, +0xC2, 0x07, 0x40, 0x82, 0x84, 0x0A, 0x40, 0x32, +0x20, 0x0C, 0xFE, 0x5F, 0x96, 0x49, 0x8C, 0xA1, +0xD5, 0xF3, 0x84, 0x6E, 0x3C, 0x08, 0x05, 0x33, +0x3C, 0x18, 0x05, 0x31, 0x84, 0x01, 0x3C, 0x78, +0x05, 0x32, 0x3C, 0x38, 0x0E, 0x84, 0xFC, 0xE0, +0xDD, 0x9E, 0xFC, 0x00, 0x49, 0xFF, 0xF8, 0x26, +0x49, 0xFF, 0xF8, 0x2A, 0x3C, 0x00, 0x0E, 0x5D, +0x49, 0x00, 0x16, 0x02, 0x49, 0x00, 0x15, 0x23, +0x84, 0x00, 0x49, 0xFF, 0xF5, 0xA7, 0xFC, 0x80, +0x3E, 0x1F, 0xE1, 0x58, 0xAC, 0x08, 0x84, 0x40, +0x84, 0x00, 0xAE, 0x0E, 0xAE, 0x0D, 0xAC, 0x89, +0xDD, 0x9E, 0x3E, 0x0F, 0xED, 0xEC, 0x84, 0x20, +0x3E, 0x28, 0x1C, 0xE8, 0x84, 0x60, 0x84, 0x81, +0x12, 0x31, 0x01, 0x26, 0x14, 0x00, 0x01, 0x60, +0x12, 0x11, 0x01, 0x27, 0x14, 0x10, 0x01, 0x68, +0x14, 0x10, 0x01, 0x61, 0x14, 0x10, 0x00, 0x7A, +0x12, 0x10, 0x02, 0xC5, 0x14, 0x10, 0x00, 0x7B, +0x12, 0x30, 0x00, 0xFC, 0x14, 0x10, 0x00, 0x7C, +0x12, 0x31, 0x01, 0x2A, 0x10, 0x40, 0x05, 0xB1, +0xDD, 0x9E, 0xFC, 0x00, 0x3C, 0x60, 0x0F, 0x73, +0x97, 0xB3, 0xCE, 0x08, 0x3C, 0x3D, 0xFE, 0x58, +0x04, 0x41, 0x80, 0x0A, 0x97, 0x64, 0xCD, 0xFD, +0xD5, 0x0F, 0x3C, 0x0D, 0xFE, 0x58, 0x04, 0x10, +0x00, 0x0A, 0x96, 0x8C, 0xC2, 0x09, 0x44, 0x00, +0x03, 0xE8, 0x8E, 0xC1, 0x49, 0xFF, 0xD1, 0x07, +0xCE, 0xF5, 0x49, 0xFF, 0xFC, 0xAF, 0xFC, 0x80, +0xFC, 0x02, 0xF0, 0x81, 0x80, 0x01, 0x10, 0x0F, +0x80, 0x03, 0xF0, 0x01, 0xC8, 0x0A, 0x2E, 0x07, +0xE1, 0x5D, 0x5A, 0x08, 0x02, 0x04, 0x49, 0xFF, +0xF7, 0xCF, 0x84, 0x00, 0x48, 0x00, 0x00, 0xF2, +0xF0, 0x01, 0x5C, 0x00, 0x05, 0xDC, 0xC0, 0x05, +0x44, 0x00, 0x05, 0xDC, 0x14, 0x0F, 0x80, 0x01, +0x49, 0xFF, 0xF7, 0xBC, 0x49, 0xFF, 0xFF, 0xCB, +0x49, 0xFF, 0xFC, 0xC2, 0x00, 0x0F, 0x80, 0x03, +0xC0, 0x10, 0x3C, 0x00, 0x0F, 0xA8, 0x96, 0x03, +0x96, 0x40, 0x3C, 0x00, 0x0F, 0xAC, 0x96, 0x03, +0x96, 0x80, 0x44, 0x00, 0x00, 0x01, 0x44, 0x30, +0x00, 0xFF, 0x49, 0xFF, 0xF7, 0xE8, 0xD5, 0x17, +0x2E, 0x07, 0xE1, 0x5D, 0x5A, 0x08, 0x01, 0x0E, +0x3C, 0x00, 0x0F, 0xAD, 0x96, 0x03, 0x96, 0xC0, +0x84, 0x01, 0x44, 0x10, 0x00, 0xFF, 0x44, 0x20, +0x00, 0xFF, 0x49, 0xFF, 0xF7, 0xD8, 0xD5, 0x07, +0x84, 0x00, 0x84, 0x20, 0x84, 0x40, 0x84, 0x60, +0x49, 0xFF, 0xF7, 0xD1, 0x3C, 0x0C, 0x07, 0x39, +0x84, 0x21, 0xA8, 0x41, 0x3C, 0x0D, 0xFE, 0x58, +0x84, 0x21, 0x14, 0x10, 0x00, 0x08, 0x3C, 0x0D, +0xFE, 0x58, 0x84, 0x20, 0xA8, 0x42, 0x84, 0x00, +0x3E, 0x07, 0xE1, 0x5F, 0x3C, 0x0D, 0xFC, 0xE8, +0x84, 0x28, 0xA8, 0x44, 0x2E, 0x07, 0xE1, 0x5D, +0x5A, 0x08, 0x02, 0x08, 0x3C, 0x0D, 0xFC, 0xE8, +0x84, 0x21, 0x14, 0x10, 0x00, 0x05, 0xD5, 0x07, +0x3C, 0x0D, 0xFC, 0xE8, 0x44, 0x10, 0xF0, 0x01, +0x14, 0x10, 0x00, 0x05, 0x3C, 0x0D, 0xFC, 0xE8, +0x84, 0x22, 0xA8, 0x41, 0x3C, 0x0D, 0xFC, 0xE8, +0x84, 0x22, 0xA8, 0x42, 0x3C, 0x0D, 0xFE, 0x56, +0x84, 0x20, 0xA8, 0x45, 0x3C, 0x0D, 0xFE, 0x55, +0xF1, 0x01, 0xA8, 0x42, 0x3C, 0x0D, 0xFE, 0x55, +0x84, 0x21, 0x14, 0x10, 0x00, 0x10, 0x3C, 0x0D, +0xFE, 0x55, 0x84, 0x21, 0xB6, 0x20, 0x3C, 0x0D, +0xFE, 0x56, 0x84, 0x21, 0xA8, 0x45, 0x3C, 0x0D, +0xFE, 0x56, 0x84, 0x23, 0xA8, 0x46, 0x3C, 0x0D, +0xFE, 0x56, 0xFA, 0x2B, 0xA8, 0x41, 0x3C, 0x0D, +0xFE, 0x56, 0x44, 0x10, 0x00, 0x83, 0xA8, 0x42, +0x64, 0x00, 0x00, 0x40, 0x3C, 0x0D, 0xFE, 0x56, +0x44, 0x10, 0x00, 0xFF, 0xA8, 0x41, 0x3C, 0x0D, +0xFE, 0x56, 0x44, 0x10, 0x00, 0xFF, 0xA8, 0x42, +0x3C, 0x0D, 0xFE, 0x56, 0x84, 0x20, 0xA8, 0x46, +0x3C, 0x0D, 0xFE, 0x55, 0x84, 0x20, 0xB6, 0x20, +0x3C, 0x0D, 0xFE, 0x55, 0x84, 0x20, 0x14, 0x10, +0x00, 0x10, 0x3C, 0x0D, 0xFE, 0x55, 0x84, 0x21, +0xA8, 0x41, 0x3C, 0x0D, 0xFE, 0x55, 0x84, 0x20, +0xA8, 0x41, 0x3C, 0x0D, 0xFC, 0xE8, 0xB4, 0x00, +0x96, 0x00, 0x96, 0x0E, 0x10, 0x0F, 0x80, 0x0B, +0x49, 0xFF, 0xF7, 0x18, 0x3C, 0x0D, 0xFC, 0xE8, +0x84, 0x20, 0xA8, 0x44, 0x3C, 0x0D, 0xFC, 0xE8, +0x84, 0x20, 0xA8, 0x42, 0x3C, 0x0D, 0xFC, 0xE8, +0x44, 0x10, 0x01, 0x00, 0xA8, 0x45, 0x3C, 0x0D, +0xFC, 0xE8, 0x84, 0x23, 0xA8, 0x41, 0x3C, 0x0D, +0xFC, 0xE8, 0x44, 0x10, 0x00, 0x80, 0xB6, 0x20, +0x00, 0x0F, 0x80, 0x03, 0xC0, 0x08, 0x84, 0x00, +0x84, 0x20, 0x84, 0x40, 0x44, 0x30, 0x00, 0x00, +0x49, 0xFF, 0xF7, 0x39, 0x00, 0x0F, 0x80, 0x0B, +0xC0, 0x06, 0x3C, 0x0D, 0xFE, 0x58, 0xFA, 0x30, +0x14, 0x10, 0x00, 0x02, 0x3C, 0x0D, 0xFE, 0x58, +0x84, 0x20, 0x14, 0x10, 0x00, 0x08, 0x84, 0x00, +0xF0, 0x83, 0xD5, 0x06, 0x40, 0x00, 0x00, 0x09, +0xF0, 0x03, 0x8C, 0x01, 0xF0, 0x83, 0xF0, 0x03, +0x5E, 0x00, 0x00, 0x0A, 0xC8, 0xF8, 0x84, 0x00, +0x3E, 0x07, 0xF3, 0x9E, 0x2E, 0x07, 0xE1, 0x5F, +0xC0, 0x03, 0x84, 0x01, 0xD5, 0x02, 0x84, 0x00, +0xFC, 0x82, 0xFC, 0x00, 0x3C, 0x07, 0xF6, 0x74, +0x4E, 0x07, 0x00, 0x06, 0x49, 0xFF, 0xFE, 0xBF, +0x48, 0x00, 0x00, 0xEA, 0x2E, 0x10, 0x03, 0x22, +0xC9, 0x04, 0x2E, 0x20, 0x03, 0x2C, 0xCA, 0x0D, +0x2E, 0x37, 0xE1, 0x5D, 0x5A, 0x38, 0x01, 0x07, +0x84, 0x00, 0x49, 0xFF, 0xFE, 0xA7, 0x48, 0x00, +0x00, 0xC6, 0x84, 0x80, 0x3C, 0x4B, 0xF0, 0xAD, +0x2E, 0x57, 0xF3, 0xDC, 0xC5, 0x2F, 0x3C, 0x50, +0x0F, 0x93, 0x97, 0xAC, 0xC6, 0x13, 0x2F, 0x37, +0xE1, 0x5D, 0x5B, 0x30, 0x02, 0x10, 0x49, 0xFF, +0xFE, 0x9E, 0x87, 0x80, 0x86, 0x00, 0x87, 0x22, +0x3F, 0x97, 0xE1, 0x5D, 0x3F, 0xC7, 0xF3, 0x9C, +0x3D, 0x0F, 0xFC, 0xE5, 0x3D, 0x0F, 0xFC, 0xE6, +0xD5, 0x21, 0x3C, 0x00, 0x0F, 0x93, 0x97, 0x84, +0xCE, 0x60, 0x3C, 0x50, 0x0F, 0xDB, 0x87, 0x02, +0x96, 0x2B, 0x80, 0x26, 0x3F, 0x87, 0xE1, 0x5D, +0x49, 0xFF, 0xFE, 0xC0, 0xC8, 0x04, 0x84, 0x02, +0x48, 0x00, 0x00, 0xAF, 0x44, 0x00, 0x00, 0x64, +0x49, 0xFF, 0xFE, 0x74, 0x3E, 0x67, 0xF3, 0xDC, +0xD5, 0x09, 0x2E, 0x67, 0xE1, 0x5D, 0x5A, 0x68, +0x02, 0x09, 0x44, 0x00, 0x00, 0x64, 0x49, 0xFF, +0xFE, 0x69, 0x84, 0x01, 0x48, 0x00, 0x00, 0x9D, +0x3C, 0xF0, 0x05, 0x07, 0x54, 0x07, 0xC0, 0x00, +0xC0, 0x3C, 0x3C, 0x10, 0x0E, 0xF2, 0x96, 0x5F, +0xC9, 0x05, 0x84, 0x00, 0x49, 0xFF, 0xFE, 0x5A, +0xD5, 0x34, 0x3C, 0x20, 0x0E, 0xF2, 0x96, 0x9F, +0x5A, 0x28, 0x01, 0x07, 0x3E, 0x27, 0xE1, 0x5D, +0x3C, 0x5B, 0xF0, 0xAD, 0xD5, 0x2A, 0x3C, 0x30, +0x0E, 0xF2, 0x96, 0xDF, 0x5A, 0x38, 0x03, 0x26, +0xCE, 0x1E, 0x3C, 0x50, 0x0E, 0x84, 0x97, 0xAB, +0xE4, 0xC6, 0xE8, 0x04, 0x3C, 0x03, 0xF6, 0x81, +0xC0, 0x05, 0x86, 0x40, 0x3D, 0x2B, 0xF0, 0xAD, +0xD5, 0x18, 0x3C, 0x30, 0x0F, 0x48, 0x3C, 0x17, +0xF0, 0xAD, 0x97, 0x1B, 0x9C, 0x89, 0xE0, 0x81, +0x3C, 0x2B, 0xF0, 0xAD, 0xE8, 0x0E, 0x86, 0x00, +0x86, 0x21, 0x3D, 0x0B, 0xF0, 0xAD, 0x3F, 0x17, +0xE1, 0x5D, 0xD5, 0x07, 0x5A, 0x68, 0x01, 0xEB, +0x3C, 0x43, 0xF6, 0x81, 0xC4, 0xE7, 0xD5, 0xCA, +0x2F, 0x47, 0xE1, 0x5D, 0x5B, 0x48, 0x01, 0x10, +0x3C, 0x20, 0x0F, 0x65, 0x96, 0xD3, 0x4E, 0x37, +0x00, 0x06, 0x3D, 0x60, 0x0F, 0xB6, 0x3D, 0x68, +0x05, 0x0A, 0x3C, 0x40, 0x0F, 0x56, 0x84, 0x20, +0x96, 0x23, 0xD5, 0x17, 0x5B, 0x48, 0x02, 0x33, +0x2F, 0x57, 0xF3, 0x9E, 0x5B, 0x50, 0x01, 0x44, +0x2E, 0x10, 0x03, 0x22, 0x3C, 0x2D, 0xFC, 0xE1, +0xC9, 0x10, 0x2E, 0x30, 0x03, 0x2C, 0xC3, 0x0D, +0xCA, 0x0C, 0x3C, 0x47, 0xF9, 0xC4, 0xCC, 0x09, +0x3C, 0x10, 0x0F, 0xDB, 0x96, 0x0B, 0x84, 0x21, +0x49, 0xFF, 0xFE, 0x40, 0xC8, 0x20, 0xD5, 0x30, +0x8E, 0x41, 0x3C, 0x2F, 0xFC, 0xE1, 0x4E, 0x27, +0x00, 0x05, 0x49, 0xFF, 0xF6, 0x11, 0xD5, 0x27, +0x3C, 0x53, 0xF9, 0xC4, 0x8E, 0xA1, 0x96, 0x2B, +0x3C, 0x0B, 0xF9, 0xC4, 0x4E, 0x06, 0xFF, 0xF7, +0x3C, 0x60, 0x0F, 0xA7, 0x84, 0x20, 0x3C, 0x1F, +0xFC, 0xE1, 0x3C, 0x1B, 0xF9, 0xC4, 0x96, 0x33, +0xD5, 0xE4, 0x3D, 0xE0, 0x0F, 0x65, 0x3D, 0xE8, +0x05, 0x0A, 0xD5, 0x11, 0x2E, 0x07, 0xE1, 0x5D, +0xC0, 0x0F, 0x86, 0xE0, 0x3D, 0x7B, 0xF0, 0xAD, +0x3F, 0x77, 0xF3, 0xDC, 0x5A, 0x08, 0x02, 0x04, +0x48, 0xFF, 0xFF, 0x57, 0x44, 0x00, 0x00, 0x64, +0x49, 0xFF, 0xFD, 0xCC, 0x84, 0x00, 0xFC, 0x80, +0xFC, 0x01, 0x3C, 0x0D, 0xFE, 0x57, 0xA0, 0x47, +0x3C, 0x0D, 0xFE, 0x58, 0x50, 0x00, 0x00, 0x40, +0x80, 0x60, 0x3C, 0x0D, 0xFE, 0x57, 0x50, 0x00, +0x00, 0xA8, 0x80, 0x40, 0x80, 0x01, 0x80, 0x23, +0x49, 0xFF, 0xCE, 0xC2, 0x84, 0x01, 0x3E, 0x07, +0xE1, 0x5F, 0x3C, 0x0D, 0xFE, 0x57, 0xA0, 0x07, +0x4E, 0x02, 0x01, 0xA6, 0x3C, 0x0D, 0xFE, 0x57, +0x02, 0x00, 0x00, 0x54, 0x96, 0x01, 0x5C, 0x00, +0x04, 0x00, 0x4E, 0x02, 0x01, 0x9D, 0x3C, 0x0D, +0xFE, 0x57, 0x02, 0x00, 0x00, 0x54, 0x96, 0x01, +0x5C, 0x00, 0x00, 0x10, 0x4E, 0x02, 0x00, 0x8C, +0x3C, 0x0D, 0xFE, 0x57, 0x02, 0x00, 0x00, 0x54, +0x96, 0x01, 0x5C, 0x10, 0x00, 0x10, 0x4E, 0x12, +0x01, 0x8B, 0x44, 0xF4, 0x80, 0x64, 0x38, 0x07, +0x82, 0x02, 0xDD, 0x00, 0xA4, 0x80, 0x04, 0x00, +0xAA, 0x80, 0x04, 0x00, 0x6C, 0x83, 0x04, 0x00, +0x68, 0x83, 0x04, 0x00, 0xB4, 0x80, 0x04, 0x00, +0xBE, 0x80, 0x04, 0x00, 0xC8, 0x80, 0x04, 0x00, +0xE8, 0x80, 0x04, 0x00, 0x24, 0x81, 0x04, 0x00, +0x50, 0x81, 0x04, 0x00, 0x6C, 0x83, 0x04, 0x00, +0x6C, 0x83, 0x04, 0x00, 0x6C, 0x83, 0x04, 0x00, +0x6C, 0x83, 0x04, 0x00, 0x6C, 0x83, 0x04, 0x00, +0x68, 0x83, 0x04, 0x00, 0x84, 0x02, 0x3E, 0x07, +0xF3, 0xDE, 0x84, 0x00, 0x3E, 0x07, 0xF3, 0xDC, +0x48, 0x00, 0x01, 0x5C, 0x84, 0x01, 0x3E, 0x07, +0xF3, 0xDC, 0x48, 0x00, 0x01, 0x57, 0x84, 0x01, +0x3E, 0x07, 0xF3, 0xDC, 0x48, 0x00, 0x01, 0x52, +0x3C, 0x00, 0x0E, 0x84, 0x96, 0x03, 0x5A, 0x08, +0x07, 0x07, 0x84, 0x03, 0x3E, 0x07, 0xF3, 0xDE, +0x48, 0x00, 0x01, 0x48, 0x44, 0x00, 0x00, 0x01, +0x3E, 0x07, 0xF3, 0xDE, 0x48, 0x00, 0x01, 0x42, +0x49, 0xFF, 0xF5, 0x64, 0x3C, 0x00, 0x0E, 0x8C, +0x96, 0x03, 0x66, 0x00, 0x00, 0x02, 0x96, 0x03, +0x3C, 0x08, 0x0E, 0x8C, 0x84, 0x00, 0x3C, 0x08, +0x0F, 0xA2, 0x49, 0xFF, 0xF4, 0xA2, 0x49, 0xFF, +0xF4, 0xC2, 0x12, 0x0F, 0x80, 0x03, 0x02, 0x0F, +0x80, 0x03, 0xFE, 0x02, 0x96, 0x01, 0x96, 0x03, +0x3C, 0x08, 0x0F, 0xA2, 0x49, 0xFF, 0xF4, 0x95, +0x48, 0x00, 0x01, 0x24, 0x49, 0xFF, 0xF3, 0xAA, +0x84, 0x00, 0x3C, 0x08, 0x0F, 0xA2, 0x49, 0xFF, +0xF4, 0x8C, 0x49, 0xFF, 0xF4, 0xAC, 0x12, 0x0F, +0x80, 0x03, 0x02, 0x0F, 0x80, 0x03, 0xFE, 0x02, +0x96, 0x01, 0x96, 0x03, 0x3C, 0x08, 0x0F, 0xA2, +0x49, 0xFF, 0xF4, 0x7F, 0x48, 0x00, 0x01, 0x0E, +0x44, 0x00, 0x00, 0x01, 0x3E, 0x07, 0xF3, 0xDD, +0x48, 0x00, 0x01, 0x08, 0x49, 0xFF, 0xFA, 0x21, +0xC8, 0x1E, 0x3C, 0x0D, 0xFE, 0x57, 0x02, 0x00, +0x00, 0x54, 0x96, 0x01, 0x5C, 0x00, 0x00, 0x80, +0xC8, 0x16, 0x3C, 0x0D, 0xFE, 0x57, 0x02, 0x00, +0x00, 0x54, 0x96, 0x01, 0x5C, 0x00, 0x00, 0xA0, +0xC0, 0x0E, 0x3C, 0x00, 0x0E, 0x8D, 0x96, 0x03, +0x5A, 0x08, 0x01, 0x06, 0x49, 0xFF, 0xFA, 0x7C, +0x48, 0x00, 0x00, 0xEE, 0x49, 0xFF, 0xF9, 0xFA, +0x48, 0x00, 0x00, 0xEA, 0x49, 0xFF, 0xFA, 0x01, +0xC8, 0x20, 0x3C, 0x0D, 0xFE, 0x57, 0x02, 0x00, +0x00, 0x54, 0x96, 0x01, 0x5C, 0x00, 0x02, 0x00, +0xC8, 0x18, 0x49, 0xFF, 0xF9, 0xF6, 0xC8, 0x15, +0x3C, 0x0D, 0xFE, 0x57, 0x02, 0x00, 0x00, 0x54, +0x96, 0x01, 0x5C, 0x00, 0x02, 0x20, 0xC0, 0x0D, +0x3C, 0x0D, 0xFE, 0x57, 0x02, 0x00, 0x00, 0x54, +0x40, 0x00, 0x00, 0x13, 0x50, 0x00, 0x7E, 0x00, +0x49, 0xFF, 0xF9, 0xCD, 0x48, 0x00, 0x00, 0xC8, +0x3C, 0x0D, 0xFE, 0x57, 0x02, 0x00, 0x00, 0x54, +0x96, 0x01, 0x5C, 0x00, 0x04, 0x00, 0x4E, 0x02, +0x00, 0xBF, 0x49, 0xFF, 0xF9, 0xD6, 0xC0, 0x39, +0x3C, 0x0D, 0xFE, 0x57, 0x02, 0x00, 0x00, 0x54, +0x96, 0x01, 0x5A, 0x08, 0x10, 0x33, 0x3C, 0x0D, +0xFE, 0x57, 0x02, 0x00, 0x00, 0x55, 0x12, 0x0F, +0x80, 0x03, 0x02, 0x0F, 0x80, 0x03, 0x3C, 0x10, +0x0E, 0x84, 0x96, 0x4B, 0x4C, 0x00, 0x80, 0x06, +0x44, 0x00, 0x00, 0x01, 0x3E, 0x07, 0xF3, 0xE4, +0x49, 0xFF, 0xFA, 0x2E, 0x02, 0x0F, 0x80, 0x03, +0x5C, 0x00, 0x00, 0x06, 0x4E, 0x03, 0x00, 0x9A, +0x02, 0x0F, 0x80, 0x03, 0x5A, 0x08, 0x10, 0x04, +0x48, 0x00, 0x00, 0x94, 0x02, 0x0F, 0x80, 0x03, +0x5A, 0x08, 0x14, 0x04, 0x48, 0x00, 0x00, 0x8E, +0x02, 0x0F, 0x80, 0x03, 0x5A, 0x08, 0x0A, 0x04, +0x48, 0x00, 0x00, 0x88, 0x44, 0x00, 0x00, 0x02, +0x3E, 0x07, 0xF3, 0xDE, 0x48, 0x00, 0x00, 0x82, +0x49, 0xFF, 0xFA, 0x0E, 0x49, 0xFF, 0xF9, 0x99, +0x4E, 0x02, 0x00, 0x7E, 0x3C, 0x0D, 0xFE, 0x57, +0x02, 0x00, 0x00, 0x54, 0x96, 0x01, 0x5A, 0x08, +0x60, 0x04, 0x48, 0x00, 0x00, 0x6C, 0x3C, 0x0D, +0xFE, 0x57, 0x02, 0x00, 0x00, 0x54, 0x96, 0x01, +0x5A, 0x08, 0x61, 0x04, 0x48, 0x00, 0x00, 0x63, +0x3C, 0x0D, 0xFE, 0x57, 0x02, 0x00, 0x00, 0x54, +0x96, 0x01, 0x5A, 0x08, 0xB0, 0x04, 0x48, 0x00, +0x00, 0x5A, 0x3C, 0x0D, 0xFE, 0x57, 0x02, 0x00, +0x00, 0x54, 0x96, 0x01, 0x5A, 0x00, 0xF0, 0x53, +0x3C, 0x0D, 0xFE, 0x57, 0x02, 0x00, 0x00, 0x54, +0x96, 0x01, 0x5A, 0x01, 0x22, 0x4C, 0x3C, 0x0D, +0xFE, 0x57, 0x02, 0x00, 0x00, 0x54, 0x96, 0x01, +0x5A, 0x01, 0x23, 0x45, 0x3C, 0x0D, 0xFE, 0x57, +0x02, 0x00, 0x00, 0x54, 0x96, 0x01, 0x5A, 0x01, +0x25, 0x3E, 0x3C, 0x0D, 0xFE, 0x57, 0x02, 0x00, +0x00, 0x54, 0x96, 0x01, 0x5A, 0x01, 0x00, 0x37, +0x3C, 0x0D, 0xFE, 0x57, 0x02, 0x00, 0x00, 0x54, +0x96, 0x01, 0x5A, 0x01, 0x06, 0x30, 0x3C, 0x0D, +0xFE, 0x57, 0x02, 0x00, 0x00, 0x54, 0x96, 0x01, +0x5A, 0x01, 0x35, 0x29, 0x3C, 0x0D, 0xFE, 0x57, +0x02, 0x00, 0x00, 0x54, 0x96, 0x01, 0x5C, 0x00, +0x02, 0x40, 0xC8, 0x09, 0x3C, 0x0D, 0xFE, 0x57, +0x02, 0x00, 0x00, 0x54, 0x96, 0x01, 0x5C, 0x00, +0x02, 0x5B, 0xC8, 0x18, 0x3C, 0x0D, 0xFE, 0x57, +0x02, 0x00, 0x00, 0x54, 0x96, 0x01, 0x5C, 0x00, +0x02, 0xA0, 0xC8, 0x09, 0x3C, 0x0D, 0xFE, 0x57, +0x02, 0x00, 0x00, 0x54, 0x96, 0x01, 0x5C, 0x00, +0x03, 0x00, 0xC8, 0x08, 0x3C, 0x0D, 0xFE, 0x57, +0x02, 0x00, 0x00, 0x54, 0x96, 0x01, 0x5A, 0x0B, +0x00, 0x0B, 0x44, 0x00, 0x00, 0x02, 0x3E, 0x07, +0xF3, 0xDE, 0x49, 0xFF, 0xF8, 0xFF, 0xD5, 0x03, +0x49, 0xFF, 0xF8, 0xFC, 0xFC, 0x81, 0xFC, 0x00, +0x49, 0xFF, 0xF3, 0xDD, 0x49, 0xFF, 0xF3, 0x7E, +0x84, 0x00, 0x3E, 0x07, 0xE1, 0x4C, 0x84, 0x00, +0x3E, 0x07, 0xE1, 0x4D, 0x84, 0x00, 0x3C, 0x0E, +0x07, 0x2D, 0x84, 0x00, 0x3E, 0x00, 0x1C, 0xB8, +0x84, 0x00, 0x3E, 0x00, 0x1C, 0xB9, 0x84, 0x00, +0x3E, 0x07, 0xF3, 0xDC, 0x84, 0x00, 0x3E, 0x07, +0xE1, 0x5D, 0x3C, 0x00, 0x0E, 0xD4, 0x96, 0x03, +0x4E, 0x06, 0x00, 0x06, 0xFA, 0x10, 0x3C, 0x08, +0x0E, 0xD4, 0xD5, 0x0B, 0x3C, 0x00, 0x0E, 0xD4, +0x96, 0x03, 0x5E, 0x00, 0x00, 0x21, 0xC8, 0x05, +0x44, 0x00, 0x00, 0x20, 0x3C, 0x08, 0x0E, 0xD4, +0x3C, 0x00, 0x0E, 0xD5, 0x96, 0x03, 0x4E, 0x06, +0x00, 0x07, 0x44, 0x00, 0x00, 0x16, 0x3C, 0x08, +0x0E, 0xD5, 0xD5, 0x0B, 0x3C, 0x00, 0x0E, 0xD5, +0x96, 0x03, 0x5E, 0x00, 0x00, 0x17, 0xC8, 0x05, +0x44, 0x00, 0x00, 0x16, 0x3C, 0x08, 0x0E, 0xD5, +0x49, 0xFF, 0xF3, 0x82, 0x84, 0x01, 0x49, 0xFF, +0xF2, 0xA9, 0x3C, 0x00, 0x0F, 0x99, 0x96, 0x03, +0x49, 0xFF, 0xF9, 0x6F, 0x49, 0xFF, 0xF3, 0x8D, +0x3E, 0x0F, 0xF9, 0x64, 0x3C, 0x0E, 0x07, 0x24, +0x3E, 0x0F, 0xF9, 0x64, 0x3C, 0x0E, 0x02, 0x79, +0xFC, 0x80, 0xFC, 0x01, 0x46, 0x10, 0x00, 0x84, +0x58, 0x10, 0x89, 0xD0, 0x46, 0x00, 0x00, 0x80, +0x58, 0x00, 0x00, 0x00, 0x9A, 0x08, 0xF0, 0x81, +0xF1, 0x01, 0x46, 0x00, 0x00, 0x80, 0x58, 0x00, +0x00, 0x00, 0x80, 0x41, 0x84, 0x20, 0x49, 0x00, +0x13, 0x75, 0x49, 0xFF, 0xFF, 0x96, 0xFC, 0x81, +0xFC, 0x00, 0x49, 0xFF, 0xFF, 0xE8, 0xFC, 0x80, +0xFC, 0x6D, 0x3C, 0x00, 0x05, 0x08, 0x97, 0xC4, +0xC7, 0x09, 0x2E, 0x28, 0x03, 0x26, 0xE4, 0x42, +0xE8, 0x15, 0x84, 0x60, 0x3E, 0x30, 0x0A, 0x3D, +0xD5, 0x11, 0x3C, 0x9C, 0x02, 0x7A, 0x3C, 0xDC, +0x02, 0x79, 0x3C, 0x10, 0x0E, 0x5D, 0xE0, 0xE1, +0xE8, 0xF1, 0x40, 0xE6, 0x9C, 0x20, 0x02, 0x67, +0x00, 0x00, 0x38, 0x64, 0x9D, 0x09, 0x8C, 0xE1, +0xD5, 0xF5, 0x44, 0x90, 0x00, 0x64, 0x3E, 0x7F, +0xFF, 0x08, 0x2E, 0x48, 0x1C, 0xC8, 0x2F, 0x18, +0x1C, 0xCA, 0x2F, 0x08, 0x1C, 0xCE, 0x2F, 0xC8, +0x1C, 0xCC, 0x02, 0x5F, 0x80, 0x02, 0x10, 0x4F, +0x80, 0x40, 0x11, 0x1F, 0x80, 0x41, 0x11, 0xCF, +0x80, 0x42, 0x11, 0x0F, 0x80, 0x43, 0x12, 0x5F, +0x80, 0x22, 0x50, 0x6F, 0x80, 0x40, 0x3A, 0x13, +0x08, 0x00, 0x2E, 0x00, 0x03, 0x1D, 0x3C, 0x30, +0x05, 0x0B, 0xF4, 0x84, 0x15, 0x1F, 0x80, 0x03, +0x15, 0x0F, 0x80, 0x02, 0x49, 0x00, 0x12, 0x7D, +0x80, 0xC0, 0x5A, 0x0F, 0xFF, 0x04, 0x48, 0x00, +0x05, 0x03, 0x3C, 0x10, 0x0E, 0x5F, 0xB6, 0x3F, +0x40, 0xA0, 0x05, 0x76, 0x12, 0xAF, 0x80, 0x1A, +0x12, 0xBF, 0x80, 0x1B, 0xF0, 0x0D, 0x49, 0xFF, +0xE9, 0xB2, 0x3C, 0x3C, 0x02, 0x7A, 0xB4, 0x3F, +0x05, 0x0F, 0x80, 0x02, 0x05, 0x1F, 0x80, 0x03, +0xF4, 0x04, 0xC0, 0x1F, 0xE6, 0x03, 0xE8, 0x06, +0x39, 0x21, 0x99, 0x11, 0x3C, 0xC0, 0x05, 0x0C, +0xD5, 0x07, 0xE6, 0x05, 0xE8, 0x08, 0x39, 0x21, +0x99, 0x11, 0x3C, 0xC0, 0x05, 0x0D, 0xE1, 0xCC, +0xE9, 0xB5, 0xD5, 0x0F, 0xE6, 0x07, 0xE8, 0x06, +0x39, 0x21, 0x99, 0x11, 0x3C, 0xC0, 0x05, 0x0E, +0xD5, 0xF7, 0xE6, 0x09, 0xE8, 0x06, 0x39, 0x21, +0x99, 0x11, 0x3C, 0xC0, 0x05, 0x0F, 0xD5, 0xF0, +0x3C, 0x54, 0x01, 0x8C, 0xDE, 0x03, 0x3E, 0x07, +0xF3, 0xB4, 0x3C, 0x00, 0x0E, 0xCA, 0x2E, 0xD0, +0x0A, 0x3D, 0x96, 0x83, 0xB6, 0x5F, 0x5A, 0xD8, +0x01, 0x06, 0x3C, 0x50, 0x0F, 0x39, 0x96, 0x2B, +0xB6, 0x1F, 0x3C, 0x20, 0x10, 0xF4, 0xC2, 0x05, +0x3C, 0x50, 0x10, 0xF1, 0x96, 0x2B, 0xB6, 0x1F, +0x3C, 0xAC, 0x02, 0x79, 0x94, 0xB1, 0x89, 0x42, +0x02, 0x55, 0x00, 0x00, 0x3C, 0x00, 0x0E, 0xC4, +0xF2, 0x82, 0x96, 0xAB, 0x97, 0x43, 0xFF, 0x54, +0x3D, 0x30, 0x05, 0x12, 0x40, 0x22, 0xA4, 0x56, +0x3C, 0x50, 0x0E, 0xC4, 0x96, 0x13, 0x96, 0xAB, +0x42, 0xE9, 0x88, 0x24, 0x41, 0x47, 0x26, 0x96, +0xE0, 0x14, 0xE8, 0x09, 0x3C, 0x00, 0x0E, 0xC4, +0x97, 0x43, 0x43, 0x59, 0x94, 0x24, 0x40, 0x2A, +0xA4, 0x56, 0x96, 0x13, 0x02, 0x55, 0x00, 0x00, +0x3C, 0x20, 0x0E, 0xCC, 0x97, 0x6B, 0x96, 0x93, +0xFE, 0xAC, 0x3D, 0x60, 0x05, 0x0B, 0x40, 0x51, +0x24, 0xB6, 0x96, 0xA9, 0xE2, 0x56, 0x40, 0x2B, +0x3C, 0x1B, 0x97, 0x71, 0xF2, 0x86, 0x40, 0x22, +0x86, 0xF7, 0x41, 0x8B, 0x80, 0x13, 0x54, 0xFC, +0x00, 0xFF, 0x96, 0x91, 0x3D, 0x90, 0x0E, 0x66, +0x3D, 0x30, 0x0E, 0x64, 0x3D, 0x40, 0x0E, 0x65, +0x50, 0x57, 0xFF, 0xFF, 0x40, 0xA1, 0x00, 0x10, +0x3D, 0xE0, 0x0E, 0x67, 0x96, 0x90, 0x86, 0x5E, +0x40, 0xCC, 0xBC, 0x06, 0x43, 0x50, 0xC8, 0x24, +0x41, 0x99, 0x88, 0x06, 0x41, 0x22, 0x80, 0x11, +0x51, 0x31, 0x7F, 0xFF, 0x40, 0x51, 0x50, 0x06, +0x8C, 0x41, 0x41, 0x77, 0xF8, 0x06, 0x40, 0xBC, +0x00, 0x10, 0x96, 0x93, 0x51, 0x87, 0x80, 0x01, +0x40, 0xF9, 0x80, 0x11, 0x14, 0xCF, 0x80, 0x03, +0x41, 0x60, 0x84, 0x08, 0x81, 0xAB, 0x81, 0xCA, +0x15, 0x7F, 0x80, 0x04, 0x41, 0xEC, 0x00, 0x11, +0x15, 0x9F, 0x80, 0x05, 0x14, 0xFF, 0x80, 0x07, +0xF5, 0x88, 0xF2, 0x89, 0x50, 0xCF, 0x80, 0x38, +0xF5, 0x03, 0xC5, 0x28, 0x80, 0x52, 0x43, 0x72, +0x04, 0x24, 0x84, 0xA0, 0x41, 0xCE, 0x00, 0x11, +0x41, 0x82, 0x00, 0x11, 0x41, 0x98, 0x80, 0x11, +0xE0, 0x5C, 0xE9, 0x1A, 0x41, 0x4B, 0x88, 0x00, +0x80, 0xB8, 0x41, 0x41, 0xD0, 0x20, 0x40, 0xFC, +0x94, 0x07, 0xE9, 0x0A, 0x41, 0x4A, 0x58, 0x00, +0x39, 0x3A, 0x54, 0x11, 0xE1, 0xE0, 0xE8, 0x08, +0x8C, 0xA1, 0x97, 0x6B, 0xD5, 0xF5, 0x8C, 0x41, +0x41, 0xC1, 0x00, 0x10, 0xD5, 0x07, 0x8E, 0x41, +0x96, 0x93, 0x84, 0xA2, 0xD5, 0xE6, 0xCD, 0xF8, +0x83, 0x8D, 0xF2, 0x04, 0xC2, 0x28, 0x80, 0x5E, +0x43, 0x72, 0x04, 0x24, 0x84, 0xA0, 0x41, 0x48, +0x00, 0x11, 0x41, 0x82, 0x00, 0x11, 0x41, 0x98, +0x80, 0x11, 0x40, 0xFA, 0x08, 0x07, 0xE9, 0x19, +0x41, 0x0B, 0x88, 0x00, 0x80, 0xB8, 0x41, 0x01, +0xC0, 0x20, 0x40, 0xFC, 0x94, 0x07, 0xE9, 0x09, +0x89, 0x96, 0x39, 0x38, 0x54, 0x11, 0xE1, 0xE0, +0xE8, 0x08, 0x8C, 0xA1, 0x97, 0x6B, 0xD5, 0xF6, +0x8E, 0x41, 0x41, 0x01, 0x00, 0x10, 0xD5, 0x07, +0x8C, 0x41, 0x96, 0x93, 0x84, 0xA2, 0xD5, 0xE6, +0xCD, 0xF8, 0x82, 0x0B, 0xF5, 0x05, 0xC5, 0x24, +0xF2, 0x07, 0x84, 0xA0, 0x41, 0x42, 0x00, 0x11, +0x41, 0x7E, 0x00, 0x11, 0x41, 0x88, 0x00, 0x11, +0xE0, 0x54, 0xE9, 0x18, 0x83, 0x3C, 0x43, 0x91, +0x04, 0x73, 0x80, 0x97, 0x41, 0x91, 0xE4, 0x20, +0x40, 0xFC, 0x10, 0x07, 0xE9, 0x08, 0x2B, 0x3C, +0x80, 0x01, 0xE1, 0xE0, 0xE8, 0x07, 0x8C, 0x81, +0x97, 0x23, 0xD5, 0xF7, 0x9D, 0x11, 0x97, 0x22, +0xD5, 0x07, 0x8E, 0x41, 0x96, 0x93, 0x84, 0xA2, +0xD5, 0xE8, 0xCD, 0xF9, 0x80, 0x8E, 0xF2, 0x08, +0xC2, 0x25, 0xF2, 0x09, 0x84, 0xA0, 0x41, 0x18, +0x80, 0x11, 0x41, 0x7E, 0x00, 0x11, 0x41, 0x88, +0x00, 0x11, 0xE1, 0xA2, 0xE9, 0x19, 0x82, 0x7C, +0x43, 0x31, 0x04, 0x73, 0x80, 0xB7, 0x41, 0x41, +0xCC, 0x20, 0x40, 0xFC, 0x14, 0x07, 0xE9, 0x08, +0x2B, 0x3A, 0x00, 0x01, 0xE1, 0xE0, 0xE8, 0x08, +0x8C, 0xA1, 0x97, 0x6B, 0xD5, 0xF7, 0x8E, 0x41, +0x41, 0x11, 0x00, 0x10, 0xD5, 0x07, 0x8C, 0x41, +0x96, 0x93, 0x84, 0xA2, 0xD5, 0xE7, 0xCD, 0xF8, +0x82, 0x2A, 0x10, 0xEF, 0x80, 0x38, 0x10, 0xAF, +0x80, 0x39, 0x10, 0x4F, 0x80, 0x50, 0x11, 0x1F, +0x80, 0x51, 0x22, 0x26, 0x00, 0x00, 0x22, 0x5F, +0x80, 0x28, 0xD2, 0x09, 0x04, 0x8F, 0x80, 0x01, +0x81, 0x70, 0x81, 0xBC, 0x81, 0x51, 0x81, 0xC4, +0x48, 0xFF, 0xFF, 0x50, 0x10, 0xDF, 0x80, 0x3A, +0x10, 0xBF, 0x80, 0x3B, 0x11, 0xCF, 0x80, 0x52, +0x11, 0x0F, 0x80, 0x53, 0x22, 0x26, 0x00, 0x01, +0x22, 0x5F, 0x80, 0x29, 0xDA, 0xEC, 0x3C, 0x07, +0xF9, 0xEB, 0x4E, 0x05, 0x00, 0x0F, 0x3C, 0x50, +0x05, 0x03, 0xDE, 0x0B, 0x12, 0x8F, 0x80, 0x1E, +0x3A, 0x16, 0x08, 0x00, 0x49, 0xFF, 0xCC, 0xD7, +0x5A, 0x08, 0x01, 0x04, 0x3E, 0x07, 0xF3, 0xD8, +0x40, 0x35, 0x38, 0x01, 0x41, 0x25, 0xB4, 0x01, +0x9C, 0x59, 0x51, 0xC9, 0x00, 0x01, 0x42, 0x0E, +0x04, 0x24, 0x3D, 0x07, 0xF9, 0xD4, 0x97, 0x01, +0xE1, 0x84, 0x10, 0xEF, 0x80, 0x48, 0x10, 0xAF, +0x80, 0x49, 0x10, 0xDF, 0x80, 0x4A, 0x10, 0xBF, +0x80, 0x4B, 0x12, 0x8F, 0x80, 0x26, 0xF1, 0x81, +0xE8, 0x03, 0x3C, 0x4B, 0xF9, 0xD4, 0x3C, 0x20, +0x10, 0xF4, 0x3D, 0x3C, 0x02, 0x7A, 0xC2, 0x03, +0xB4, 0xBF, 0xC5, 0x0C, 0x3C, 0x10, 0x0E, 0xC6, +0x96, 0x0B, 0xE0, 0x60, 0xE8, 0x07, 0x3C, 0x30, +0x0E, 0xC7, 0x96, 0x9B, 0xE1, 0xC2, 0x4E, 0xF3, +0x03, 0x35, 0x84, 0x61, 0x2E, 0x40, 0x03, 0x1D, +0x10, 0xEF, 0x80, 0x58, 0x10, 0xAF, 0x80, 0x59, +0x10, 0xDF, 0x80, 0x5A, 0x10, 0xBF, 0x80, 0x5B, +0x12, 0x8F, 0x80, 0x2E, 0x86, 0x41, 0x86, 0x00, +0x51, 0x1F, 0x80, 0x58, 0xE1, 0x84, 0xE8, 0x2E, +0x41, 0x53, 0xC0, 0x20, 0x23, 0x4A, 0x81, 0xB8, +0x5B, 0x47, 0xFF, 0x27, 0x3A, 0x18, 0x88, 0x00, +0x80, 0x14, 0x15, 0x3F, 0x80, 0x09, 0x15, 0x2F, +0x80, 0x08, 0x15, 0x0F, 0x80, 0x07, 0xF3, 0x85, +0xF4, 0x84, 0x15, 0x1F, 0x80, 0x02, 0x15, 0x4F, +0x80, 0x03, 0x49, 0xFF, 0xCC, 0x7C, 0x05, 0x1F, +0x80, 0x02, 0x05, 0x9F, 0x80, 0x03, 0xF4, 0x04, +0xF3, 0x05, 0x05, 0x0F, 0x80, 0x07, 0x05, 0x2F, +0x80, 0x08, 0x05, 0x3F, 0x80, 0x09, 0x5A, 0x08, +0x01, 0x08, 0x38, 0x09, 0xE5, 0x11, 0xF1, 0x06, +0xE0, 0x01, 0xE9, 0x02, 0x8D, 0xC1, 0x8D, 0x81, +0xD5, 0xD2, 0xCB, 0x06, 0x5B, 0x20, 0x01, 0x05, +0xB4, 0x3F, 0x4E, 0x13, 0x00, 0xD0, 0x3C, 0x10, +0x10, 0xF4, 0x86, 0x00, 0x3F, 0x07, 0xFF, 0x04, +0x97, 0x33, 0x10, 0xEF, 0x80, 0x38, 0x10, 0xAF, +0x80, 0x39, 0x10, 0xDF, 0x80, 0x3A, 0x10, 0xBF, +0x80, 0x3B, 0x12, 0x8F, 0x80, 0x1E, 0xC1, 0x2A, +0x3A, 0x06, 0x04, 0x00, 0xB0, 0x8A, 0xB0, 0xCC, +0x49, 0x00, 0x08, 0x04, 0x3D, 0x90, 0x0E, 0x5F, +0xB0, 0xCB, 0x41, 0x63, 0x66, 0xF6, 0x13, 0x6F, +0x80, 0x18, 0x13, 0x7F, 0x80, 0x19, 0xF2, 0x0C, +0x3A, 0x06, 0x04, 0x00, 0x49, 0x00, 0x06, 0x49, +0x2F, 0x88, 0x03, 0x23, 0x45, 0x00, 0x00, 0x38, +0x81, 0x47, 0x3C, 0x30, 0x0E, 0x5F, 0x3C, 0x40, +0x01, 0xA2, 0x42, 0xAC, 0x40, 0x73, 0x3C, 0x00, +0x01, 0xA3, 0x84, 0x41, 0x42, 0x01, 0x90, 0x73, +0x10, 0x25, 0x00, 0x30, 0x12, 0x05, 0x00, 0x05, +0xD5, 0x37, 0x3A, 0x06, 0x04, 0x00, 0xB0, 0x8A, +0xB0, 0xCC, 0x49, 0x00, 0x07, 0xDB, 0x3A, 0x06, +0x04, 0x00, 0xF2, 0x0C, 0xB0, 0xCB, 0x49, 0x00, +0x06, 0x28, 0x2E, 0xA8, 0x03, 0x23, 0xC8, 0x0D, +0x3C, 0x20, 0x0E, 0xD0, 0xF0, 0x01, 0x96, 0xD3, +0xE0, 0x03, 0xE8, 0x07, 0x3C, 0x50, 0x0E, 0xD1, +0x97, 0x2B, 0x40, 0xFE, 0x10, 0x07, 0xE9, 0x0A, +0x45, 0x30, 0x00, 0x38, 0x82, 0xA7, 0x43, 0x55, +0x4C, 0x73, 0x86, 0x80, 0x11, 0x4A, 0x80, 0x30, +0xD5, 0x13, 0x45, 0xC0, 0x00, 0x38, 0x81, 0x67, +0x3C, 0xD0, 0x0E, 0x5F, 0x3C, 0xE0, 0x01, 0xA2, +0x42, 0xB5, 0x70, 0x73, 0x3C, 0x10, 0x01, 0xA3, +0x42, 0x16, 0xB8, 0x73, 0x86, 0x41, 0x12, 0x15, +0x80, 0x05, 0x11, 0x25, 0x80, 0x30, 0x3C, 0xF0, +0x0E, 0x5F, 0x2F, 0xE8, 0x03, 0x23, 0x40, 0x63, +0x3D, 0xB6, 0x45, 0xC0, 0x00, 0x38, 0x81, 0x67, +0x42, 0xBF, 0x70, 0x73, 0x3E, 0x18, 0x03, 0x4C, +0x50, 0xE6, 0x82, 0xE0, 0x38, 0x50, 0xB9, 0x11, +0x80, 0x0B, 0xA9, 0x47, 0x51, 0x23, 0x02, 0xC0, +0x38, 0x20, 0xC9, 0x11, 0xA8, 0x86, 0x2E, 0x37, +0xE1, 0x62, 0xC3, 0x0C, 0x03, 0x3F, 0x80, 0x14, +0x03, 0x5F, 0x80, 0x15, 0x86, 0x20, 0x13, 0x3F, +0x80, 0x16, 0x13, 0x5F, 0x80, 0x17, 0x11, 0x15, +0x80, 0x30, 0xB0, 0x0B, 0x49, 0x00, 0x05, 0x46, +0x3C, 0x40, 0x10, 0xF4, 0xC4, 0x0B, 0x2F, 0x88, +0x03, 0x23, 0x45, 0x00, 0x00, 0x38, 0x81, 0x47, +0x42, 0xAC, 0x40, 0x73, 0x82, 0xEA, 0xB4, 0x0A, +0xD5, 0x0D, 0xB0, 0x0A, 0x49, 0x00, 0x03, 0xB5, +0x2F, 0x48, 0x03, 0x23, 0x45, 0x90, 0x00, 0x38, +0x82, 0xC7, 0x43, 0x6A, 0x64, 0x73, 0xF0, 0x0A, +0x82, 0xF6, 0x14, 0x0B, 0x80, 0x01, 0x51, 0xEF, +0x80, 0x48, 0x3A, 0x0F, 0x04, 0x00, 0x49, 0x00, +0x05, 0x8F, 0x2E, 0x68, 0x03, 0x23, 0x45, 0xC0, +0x00, 0x38, 0x81, 0x67, 0x42, 0xB3, 0x70, 0x73, +0x8C, 0xC1, 0x96, 0xB2, 0x50, 0x15, 0x80, 0x30, +0x84, 0xA0, 0xE4, 0x4F, 0xAD, 0x4A, 0x3E, 0x20, +0x03, 0x23, 0x4E, 0xF3, 0x02, 0x1F, 0x48, 0x00, +0x02, 0x37, 0xB4, 0x1F, 0x87, 0x81, 0x90, 0x02, +0x3F, 0xC7, 0xFF, 0x04, 0xF0, 0x83, 0x50, 0xCF, +0x80, 0x38, 0x3C, 0x20, 0x0E, 0x5F, 0x96, 0xF1, +0x41, 0x61, 0x88, 0x97, 0x55, 0x2B, 0x00, 0xFF, +0x42, 0x59, 0x08, 0x24, 0x87, 0xDE, 0x96, 0x69, +0xF1, 0x85, 0x8A, 0x22, 0x96, 0x09, 0xF0, 0x84, +0xF3, 0x04, 0x42, 0x31, 0x78, 0x75, 0x97, 0x20, +0x96, 0x59, 0x3D, 0x5C, 0x02, 0x7A, 0x3D, 0x30, +0x0E, 0x5D, 0xF1, 0x88, 0x14, 0xBF, 0x80, 0x02, +0x14, 0xDF, 0x80, 0x01, 0x83, 0x8A, 0x82, 0x0E, +0xF4, 0x87, 0x41, 0x48, 0x00, 0x13, 0x43, 0x7A, +0x08, 0x24, 0x05, 0x1F, 0x80, 0x07, 0x41, 0x9B, +0x80, 0x13, 0x80, 0x31, 0x51, 0xEC, 0xFF, 0xFF, +0xF0, 0x01, 0xE0, 0x01, 0xE8, 0x34, 0x40, 0x30, +0xF8, 0x00, 0x97, 0x19, 0x84, 0x60, 0x82, 0xC3, +0x40, 0x5A, 0x58, 0x00, 0x96, 0x29, 0x40, 0xFE, +0x00, 0x07, 0xE9, 0x1D, 0x9C, 0x21, 0x97, 0x41, +0x38, 0x0A, 0x95, 0x11, 0x51, 0x6B, 0x00, 0x01, +0xC0, 0x04, 0x38, 0x5A, 0x91, 0x11, 0xCD, 0x03, +0xF0, 0x03, 0xD5, 0x0D, 0xE0, 0x05, 0xE8, 0x07, +0x43, 0x80, 0x24, 0x24, 0x40, 0x5C, 0x14, 0xB6, +0x88, 0x65, 0xD5, 0x06, 0x43, 0x72, 0xA4, 0x24, +0x40, 0x0B, 0x80, 0x16, 0x88, 0x60, 0x88, 0x82, +0x97, 0x21, 0xD5, 0xDF, 0x4F, 0x63, 0x00, 0x04, +0x96, 0x4A, 0xD5, 0x0A, 0xB4, 0x9F, 0x42, 0x5B, +0x10, 0x24, 0xE0, 0xA3, 0xE8, 0xFA, 0x8E, 0x21, +0x96, 0x49, 0xD5, 0xCB, 0x80, 0x20, 0x51, 0x9C, +0x80, 0x01, 0xF0, 0x02, 0xE1, 0xA0, 0xE8, 0x3B, +0x40, 0x38, 0xE4, 0x00, 0x84, 0x80, 0x96, 0xD9, +0x83, 0x14, 0x82, 0xC4, 0x40, 0xFE, 0x60, 0x07, +0xE9, 0x23, 0x9E, 0x19, 0xE2, 0x73, 0x97, 0x41, +0xE8, 0x18, 0x38, 0x0A, 0x95, 0x11, 0x51, 0x6B, +0x00, 0x01, 0xC0, 0x04, 0x38, 0x5A, 0x8D, 0x11, +0xCD, 0x03, 0xF0, 0x03, 0xD5, 0x0D, 0xE0, 0x05, +0xE8, 0x07, 0x43, 0x70, 0x24, 0x24, 0x40, 0x5B, +0x94, 0xB6, 0x88, 0x85, 0xD5, 0x06, 0x43, 0xE2, +0xA4, 0x24, 0x40, 0x0F, 0x00, 0x16, 0x88, 0x80, +0x51, 0x8C, 0x00, 0x01, 0x88, 0x62, 0x41, 0x8C, +0x00, 0x13, 0x96, 0xD9, 0xD5, 0xDC, 0x4F, 0x63, +0x00, 0x05, 0x40, 0x08, 0x80, 0x10, 0xD5, 0x0B, +0xB4, 0x1F, 0x42, 0x5B, 0x00, 0x24, 0xE0, 0xA4, +0xE8, 0xF9, 0x51, 0x88, 0x80, 0x01, 0x41, 0x1C, +0x00, 0x13, 0xD5, 0xC4, 0x82, 0x92, 0x86, 0xC0, +0x41, 0xE0, 0x80, 0x13, 0xE1, 0x94, 0xE8, 0x42, +0xF3, 0x04, 0xF4, 0x05, 0x88, 0x76, 0x88, 0x96, +0x41, 0x81, 0x80, 0x13, 0x84, 0x60, 0x82, 0x3E, +0x41, 0x92, 0x00, 0x13, 0x82, 0xE3, 0xE0, 0x11, +0xE9, 0x22, 0x40, 0x58, 0xE4, 0x00, 0x97, 0x29, +0x38, 0x5A, 0x91, 0x11, 0x51, 0x7B, 0x80, 0x01, +0xC5, 0x07, 0x40, 0x48, 0xE0, 0x00, 0x97, 0x21, +0x38, 0x4A, 0x91, 0x11, 0xCC, 0x03, 0xF4, 0x03, +0xD5, 0x07, 0xE0, 0xA4, 0xE8, 0x07, 0x42, 0xF2, +0xA4, 0x24, 0x40, 0x47, 0x90, 0x96, 0x88, 0x64, +0xD5, 0x06, 0x42, 0x42, 0x24, 0x24, 0x40, 0x52, +0x14, 0xB6, 0x88, 0x65, 0x8D, 0xA1, 0x41, 0x18, +0x80, 0x13, 0xD5, 0xDE, 0x4F, 0x73, 0x00, 0x05, +0x40, 0x4A, 0x00, 0x10, 0xD5, 0x10, 0xB4, 0xBF, +0x41, 0x9B, 0x08, 0x01, 0x43, 0x1B, 0x94, 0x24, +0x41, 0x6C, 0x80, 0x13, 0xE1, 0xA3, 0xE8, 0xF5, +0x51, 0x4A, 0x7F, 0xFF, 0x41, 0x4A, 0x00, 0x13, +0xD5, 0xBE, 0x80, 0x90, 0x05, 0x7F, 0x80, 0x08, +0x80, 0xB2, 0x41, 0xE0, 0x80, 0x13, 0xE0, 0xBC, +0xE8, 0x41, 0x41, 0x8B, 0x88, 0x01, 0x86, 0x20, +0x41, 0x9C, 0x00, 0x13, 0x82, 0xDE, 0x83, 0x11, +0xE0, 0x16, 0xE9, 0x28, 0x40, 0x3B, 0x5C, 0x00, +0x96, 0xD9, 0x41, 0x4B, 0x64, 0x00, 0xE2, 0x73, +0x41, 0x4A, 0x00, 0x13, 0xE8, 0x1A, 0x39, 0x4A, +0xD1, 0x11, 0x51, 0x8C, 0x00, 0x01, 0x4F, 0x42, +0x00, 0x05, 0x38, 0x3A, 0x8D, 0x11, 0xCB, 0x03, +0xF3, 0x03, 0xD5, 0x08, 0x40, 0xFA, 0x0C, 0x07, +0xE8, 0x07, 0x42, 0xFA, 0x24, 0x24, 0x40, 0x37, +0x8C, 0x76, 0x89, 0xA3, 0xD5, 0x06, 0x42, 0x31, +0xA4, 0x24, 0x41, 0x41, 0xD2, 0x96, 0x89, 0xB4, +0x51, 0x6B, 0x00, 0x01, 0x41, 0x6B, 0x00, 0x13, +0xD5, 0xD8, 0x4F, 0x83, 0x00, 0x04, 0x97, 0x6A, +0xD5, 0x0E, 0xB4, 0x7F, 0x41, 0x7B, 0x88, 0x00, +0x42, 0x3C, 0x0C, 0x24, 0x41, 0x7B, 0x80, 0x13, +0xE0, 0x71, 0xE8, 0xF6, 0x8C, 0xA1, 0x97, 0x69, +0xD5, 0xBF, 0x80, 0xBC, 0x11, 0x0F, 0x80, 0x38, +0x11, 0xCF, 0x80, 0x39, 0x10, 0x4F, 0x80, 0x60, +0x10, 0x5F, 0x80, 0x61, 0x23, 0xE6, 0x00, 0x00, +0x23, 0x9F, 0x80, 0x30, 0x4D, 0x9F, 0x00, 0x08, +0xF0, 0x82, 0xF1, 0x81, 0x83, 0x85, 0x82, 0x04, +0x48, 0xFF, 0xFE, 0xDD, 0x15, 0x0F, 0x80, 0x09, +0x01, 0x6F, 0x80, 0x08, 0x01, 0x0F, 0x80, 0x04, +0x11, 0x0F, 0x80, 0x3A, 0x11, 0x6F, 0x80, 0x3B, +0x10, 0x1F, 0x80, 0x62, 0x10, 0x0F, 0x80, 0x63, +0x23, 0x46, 0x00, 0x01, 0x23, 0x1F, 0x80, 0x31, +0x4D, 0x1A, 0x7F, 0xE8, 0x12, 0x8F, 0x80, 0x1E, +0x3A, 0x06, 0x04, 0x00, 0xB0, 0x8A, 0xB0, 0xCC, +0x97, 0x33, 0x49, 0x00, 0x05, 0xE3, 0xF2, 0x0C, +0x3A, 0x06, 0x04, 0x00, 0xB0, 0xCB, 0x49, 0x00, +0x04, 0x30, 0x3D, 0x30, 0x0E, 0x5F, 0x2F, 0x28, +0x03, 0x23, 0xF2, 0x09, 0xC8, 0x12, 0x3C, 0x10, +0x0E, 0xD0, 0x40, 0x4E, 0x08, 0x01, 0x96, 0x0B, +0x8C, 0x81, 0xE0, 0x80, 0xE8, 0x0A, 0xF1, 0x02, +0xF0, 0x01, 0x3C, 0x30, 0x0E, 0xD1, 0x8A, 0x20, +0x97, 0x5B, 0x8C, 0x21, 0xE0, 0x25, 0xE9, 0x0A, +0x45, 0x90, 0x00, 0x38, 0x82, 0xC7, 0x43, 0x69, +0x64, 0x73, 0x86, 0x20, 0x11, 0x1B, 0x00, 0x30, +0xD5, 0x11, 0x45, 0x50, 0x00, 0x38, 0x83, 0x07, +0x3D, 0x70, 0x01, 0xA2, 0x43, 0x89, 0x54, 0x73, +0x3C, 0x40, 0x01, 0xA3, 0x42, 0x49, 0xDC, 0x73, +0x87, 0xC1, 0x12, 0x4C, 0x00, 0x05, 0x11, 0xEC, +0x00, 0x30, 0x2E, 0x37, 0xE1, 0x62, 0xC3, 0x11, +0x44, 0x10, 0x00, 0x38, 0x80, 0x07, 0x42, 0x09, +0x04, 0x73, 0x03, 0x0F, 0x80, 0x14, 0x02, 0x5F, +0x80, 0x15, 0x86, 0xA0, 0x13, 0x0F, 0x80, 0x16, +0x12, 0x5F, 0x80, 0x17, 0x11, 0x50, 0x00, 0x30, +0x40, 0x63, 0x4E, 0x76, 0xF2, 0x85, 0x83, 0x07, +0x44, 0x20, 0x00, 0x38, 0x43, 0x89, 0x08, 0x73, +0x3E, 0x48, 0x0A, 0x60, 0x51, 0x29, 0x88, 0xCC, +0x80, 0x18, 0x38, 0x32, 0x49, 0x11, 0xF2, 0x84, +0x51, 0x73, 0x08, 0xAC, 0xA8, 0xC7, 0x38, 0x52, +0x5D, 0x11, 0xA9, 0x46, 0xB0, 0x0B, 0x49, 0x00, +0x03, 0x45, 0xB0, 0x0A, 0x49, 0x00, 0x01, 0xC1, +0xF1, 0x04, 0x2F, 0x98, 0x03, 0x23, 0x82, 0xC7, +0x43, 0x6C, 0x84, 0x73, 0xF0, 0x0A, 0x11, 0xCF, +0x80, 0x39, 0x05, 0x1F, 0x80, 0x05, 0x01, 0xCF, +0x80, 0x04, 0x01, 0x0F, 0x80, 0x08, 0x14, 0x0B, +0x00, 0x01, 0x11, 0x1F, 0x80, 0x38, 0x11, 0xCF, +0x80, 0x3A, 0x11, 0x0F, 0x80, 0x3B, 0x12, 0x8F, +0x80, 0x1E, 0x3A, 0x06, 0x04, 0x00, 0x49, 0x00, +0x03, 0x8F, 0x2E, 0x48, 0x03, 0x23, 0xF2, 0x04, +0x82, 0xA7, 0x43, 0x52, 0x08, 0x73, 0x8C, 0x81, +0x96, 0xE2, 0x51, 0x8A, 0x80, 0x30, 0x84, 0xC0, +0xE4, 0x6F, 0x12, 0x6C, 0x00, 0x02, 0x3E, 0x30, +0x03, 0x23, 0xE8, 0x39, 0x10, 0xEF, 0x80, 0x40, +0x10, 0xAF, 0x80, 0x41, 0x10, 0xDF, 0x80, 0x42, +0x10, 0xBF, 0x80, 0x43, 0x12, 0x8F, 0x80, 0x22, +0x51, 0xEF, 0x80, 0x40, 0x2E, 0x00, 0x03, 0x1D, +0x3A, 0x1F, 0x08, 0x00, 0xF3, 0x06, 0x49, 0x00, +0x0D, 0x9C, 0x80, 0xC0, 0x5A, 0x07, 0xFF, 0x04, +0x48, 0xFF, 0xFD, 0xF5, 0x50, 0xBF, 0x80, 0x48, +0x3A, 0x05, 0x84, 0x00, 0x49, 0x00, 0x03, 0x60, +0x14, 0x8F, 0x80, 0x01, 0x48, 0xFF, 0xFA, 0xEF, +0x3C, 0x50, 0x0E, 0xC8, 0x96, 0x6B, 0xE0, 0x24, +0x4E, 0xF3, 0xFC, 0xC9, 0x3C, 0x00, 0x0E, 0xCB, +0x96, 0xC3, 0xE0, 0x83, 0x4E, 0xF3, 0xFC, 0xC3, +0xF5, 0x02, 0x3C, 0x40, 0x0E, 0xC9, 0x39, 0x59, +0x94, 0x11, 0x96, 0xA3, 0x40, 0x3A, 0x88, 0x07, +0x48, 0xFF, 0xFC, 0xBA, 0x84, 0x00, 0xFC, 0xED, +0x3E, 0x4F, 0xE1, 0x74, 0x5A, 0x08, 0x01, 0x4B, +0xFC, 0x20, 0x99, 0xE1, 0xA7, 0xBC, 0x2E, 0x38, +0x0A, 0x3C, 0x8C, 0xC1, 0x97, 0x72, 0xE0, 0xA3, +0xAF, 0x7C, 0xE9, 0x66, 0xAE, 0xFC, 0x3C, 0x73, +0xF0, 0xBA, 0x40, 0x00, 0x04, 0x0C, 0x2E, 0x80, +0x1C, 0xB9, 0xFE, 0x3F, 0x3C, 0x0B, 0xF0, 0xBA, +0x3E, 0x78, 0x1C, 0xE8, 0x51, 0x00, 0x83, 0x16, +0x5A, 0x88, 0x01, 0x18, 0x3D, 0x10, 0x11, 0x94, +0x3D, 0x30, 0x11, 0x94, 0x3C, 0x30, 0x11, 0x92, +0x55, 0x28, 0x8F, 0x00, 0x40, 0x69, 0x20, 0x0A, +0x96, 0x1B, 0x54, 0x59, 0x80, 0x0F, 0x43, 0x40, +0x18, 0x24, 0x43, 0x41, 0x14, 0x73, 0x88, 0xC5, +0x40, 0x5A, 0x18, 0xB6, 0x97, 0xAB, 0xD5, 0x02, +0x97, 0x93, 0x38, 0x63, 0xC1, 0x09, 0x99, 0xE1, +0x01, 0x63, 0x80, 0x1C, 0x5B, 0x60, 0x01, 0x09, +0x3C, 0x33, 0xED, 0x8C, 0x44, 0x0F, 0x80, 0x00, +0xFE, 0x1F, 0x3C, 0x0B, 0xED, 0x8C, 0x99, 0xA1, +0x86, 0xE1, 0x41, 0x82, 0x04, 0x20, 0x11, 0x73, +0x00, 0x1C, 0x12, 0x2C, 0x00, 0x06, 0x84, 0x01, +0xD5, 0x28, 0x98, 0x21, 0x00, 0x30, 0x00, 0x1C, +0x5A, 0x38, 0x01, 0x12, 0x50, 0x20, 0x80, 0x08, +0x40, 0x51, 0x88, 0x0C, 0x3C, 0x03, 0xF0, 0xBA, +0x3C, 0x33, 0xED, 0x8C, 0x44, 0x2F, 0x80, 0x00, +0xFF, 0x47, 0xFE, 0x9F, 0x3C, 0x5B, 0xF0, 0xBA, +0x3C, 0x2B, 0xED, 0x8C, 0x98, 0xE1, 0x50, 0xF0, +0x83, 0x16, 0x8C, 0x24, 0x84, 0xA0, 0x3E, 0x08, +0x1C, 0xE8, 0x40, 0x12, 0x04, 0x20, 0x38, 0x50, +0x3D, 0x09, 0x10, 0x51, 0x80, 0x1C, 0xAF, 0x5C, +0xAD, 0x4A, 0x84, 0x00, 0xDD, 0x9E, 0x84, 0x00, +0xFC, 0xA0, 0xFC, 0x60, 0x81, 0x80, 0x3C, 0x00, +0x10, 0xF4, 0xC8, 0x02, 0xC1, 0x05, 0x49, 0xFF, +0xD8, 0xA0, 0x48, 0x00, 0x00, 0xB9, 0x3C, 0x20, +0x0F, 0x24, 0x3C, 0x1B, 0xF0, 0xBA, 0x96, 0x13, +0x4E, 0x02, 0x00, 0xB2, 0x3C, 0x30, 0x0F, 0x64, +0x97, 0x1B, 0x4E, 0x44, 0x00, 0xAC, 0x3C, 0x1B, +0xF0, 0xBB, 0x44, 0xA0, 0x00, 0xB6, 0x80, 0xE1, +0x3E, 0xB8, 0x1C, 0xE8, 0x3C, 0x10, 0x0F, 0x24, +0x50, 0x85, 0x7F, 0x4A, 0x97, 0x4B, 0xE1, 0x05, +0x4E, 0xF2, 0x00, 0x9B, 0x3C, 0x60, 0x0F, 0x27, +0x97, 0xB3, 0xCE, 0x44, 0x3D, 0x40, 0x0F, 0x28, +0x3D, 0x60, 0x0E, 0x5F, 0x39, 0x55, 0xA9, 0x01, +0x43, 0x5A, 0x58, 0x73, 0x81, 0x26, 0x40, 0xEA, +0x80, 0x13, 0x81, 0xA6, 0x3C, 0x30, 0x0F, 0x29, +0x97, 0x1B, 0x40, 0xF6, 0x90, 0x07, 0xE8, 0x74, +0x38, 0x55, 0xA9, 0x01, 0x3D, 0x70, 0x0E, 0x5F, +0x96, 0xAB, 0x88, 0x4D, 0xE0, 0x57, 0xE8, 0x6C, +0x40, 0x06, 0xB8, 0x00, 0x41, 0xC6, 0x00, 0x20, +0x02, 0x1E, 0x00, 0x00, 0x3D, 0x80, 0x05, 0x10, +0x96, 0xCB, 0xE0, 0x78, 0xE9, 0x1C, 0x3D, 0x90, +0x05, 0x07, 0x02, 0x4E, 0x00, 0x00, 0x54, 0x2C, +0x81, 0x00, 0x97, 0x63, 0xCA, 0x0A, 0x02, 0x6E, +0x00, 0x00, 0x96, 0x33, 0xE1, 0x20, 0xE8, 0x0E, +0x03, 0xEE, 0x00, 0x00, 0x81, 0x3E, 0xD5, 0x0A, +0x3C, 0x13, 0xF6, 0x81, 0xC9, 0xF5, 0x96, 0x01, +0x96, 0x69, 0x49, 0x00, 0x0C, 0x3A, 0xC0, 0x03, +0xD5, 0xEF, 0x84, 0xC1, 0x50, 0xD6, 0x80, 0x01, +0xD5, 0xCA, 0x84, 0xC0, 0x81, 0x26, 0x81, 0xA6, +0x3C, 0x00, 0x0F, 0x29, 0x96, 0x83, 0x40, 0xF6, +0x88, 0x07, 0xE8, 0x3A, 0x38, 0x35, 0xA9, 0x01, +0x3C, 0xE0, 0x0E, 0x5E, 0x97, 0x1B, 0x88, 0x8D, +0xE0, 0x8E, 0xE8, 0x32, 0x3C, 0x50, 0x0F, 0x28, +0x38, 0x15, 0xA9, 0x01, 0x3D, 0x00, 0x0E, 0x5F, +0x96, 0x0B, 0x88, 0x0D, 0x42, 0x50, 0x40, 0x73, +0x3D, 0x10, 0x05, 0x10, 0x96, 0x29, 0x41, 0xC6, +0x00, 0x20, 0x02, 0x2E, 0x00, 0x00, 0x96, 0xD3, +0xE0, 0x71, 0xE9, 0x1B, 0x3D, 0x20, 0x05, 0x07, +0x02, 0x4E, 0x00, 0x00, 0x54, 0x19, 0x01, 0x00, +0x97, 0x63, 0xC9, 0x0A, 0x02, 0x6E, 0x00, 0x00, +0x96, 0x33, 0xE1, 0x20, 0xE8, 0x0D, 0x03, 0x3E, +0x00, 0x00, 0x81, 0x33, 0xD5, 0x09, 0x3C, 0x23, +0xF6, 0x81, 0xCA, 0xF5, 0x96, 0x69, 0x49, 0x00, +0x0B, 0xF8, 0xC0, 0x03, 0xD5, 0xF0, 0x84, 0xC1, +0x50, 0xD6, 0x80, 0x01, 0xD5, 0xC2, 0x3D, 0x03, +0xF0, 0xBB, 0xE3, 0x89, 0xE8, 0x03, 0x3C, 0x9B, +0xF0, 0xBB, 0x80, 0x06, 0x80, 0x28, 0x80, 0x49, +0x49, 0xFF, 0xFE, 0xD4, 0xFE, 0x3F, 0x97, 0xC0, +0x8D, 0x41, 0x48, 0xFF, 0xFF, 0x61, 0x80, 0x07, +0xD5, 0x02, 0x80, 0x01, 0xFC, 0xE0, 0xFC, 0x20, +0xB4, 0xC0, 0xC1, 0x1D, 0xC6, 0x1C, 0x80, 0xE0, +0x4E, 0x67, 0x00, 0x07, 0x4E, 0x16, 0x00, 0x10, +0xFE, 0x4A, 0xFE, 0x74, 0xD5, 0x05, 0x4E, 0x17, +0x00, 0x0B, 0xFE, 0x32, 0xFE, 0x44, 0x84, 0x4A, +0x40, 0x00, 0x88, 0x16, 0x49, 0xFF, 0xC6, 0x76, +0x9A, 0x30, 0xD5, 0x08, 0xFE, 0x74, 0x84, 0x6A, +0x40, 0x00, 0x8C, 0x16, 0x49, 0xFF, 0xC6, 0x6E, +0x88, 0x06, 0xB6, 0x07, 0xFC, 0xA0, 0xFC, 0x21, +0x80, 0xC0, 0x3C, 0x00, 0x0F, 0x24, 0x96, 0x43, +0x4E, 0x17, 0x00, 0x24, 0x3C, 0x20, 0x0F, 0x64, +0x96, 0xD3, 0x4E, 0x34, 0x00, 0x1F, 0x3C, 0x40, +0x0F, 0x28, 0x97, 0x63, 0xCD, 0x1A, 0x3C, 0x70, +0x0F, 0x27, 0x96, 0x7B, 0xC9, 0x0C, 0x23, 0x03, +0x00, 0x00, 0x5E, 0xF8, 0x00, 0x80, 0xE8, 0x03, +0xAC, 0x70, 0xD5, 0x0F, 0x50, 0x28, 0x7F, 0x80, +0xAC, 0xB0, 0xD5, 0x0B, 0x22, 0x83, 0x00, 0x01, +0x5E, 0xF4, 0x00, 0x80, 0xE8, 0x03, 0xAD, 0x71, +0xD5, 0x04, 0x50, 0x04, 0x7F, 0x80, 0xAC, 0x31, +0x3C, 0x70, 0x0E, 0x62, 0x23, 0x13, 0x00, 0x00, +0xE0, 0xF1, 0xE8, 0x02, 0xAD, 0xF0, 0x3C, 0x30, +0x0E, 0x63, 0x23, 0x23, 0x00, 0x01, 0xE0, 0x72, +0xE8, 0x02, 0xAC, 0xF1, 0x3C, 0x40, 0x0F, 0x60, +0x23, 0x33, 0x00, 0x00, 0x97, 0x63, 0xE1, 0xE5, +0xE8, 0x04, 0x3C, 0x50, 0x0F, 0x60, 0xD5, 0x0A, +0x3C, 0x10, 0x0F, 0x61, 0x96, 0x0B, 0x9A, 0xB8, +0xE0, 0x53, 0xE8, 0x05, 0x3C, 0x40, 0x0F, 0x61, +0x9B, 0x7C, 0xAD, 0x70, 0x3C, 0x10, 0x0F, 0x62, +0x22, 0x83, 0x00, 0x01, 0x96, 0x0B, 0xE1, 0x00, +0xE8, 0x04, 0x3C, 0x00, 0x0F, 0x62, 0xD5, 0x0A, +0x3C, 0x20, 0x0F, 0x63, 0x97, 0x13, 0x9B, 0x5C, +0xE0, 0xA8, 0xE8, 0x05, 0x3C, 0x10, 0x0F, 0x63, +0x9A, 0x19, 0xAC, 0x31, 0x23, 0x03, 0x00, 0x00, +0x5E, 0xF8, 0x00, 0x80, 0xE8, 0x14, 0x3C, 0x20, +0x0F, 0x5F, 0x3C, 0x00, 0x0F, 0x60, 0x96, 0x53, +0x52, 0x28, 0x00, 0x80, 0x52, 0x50, 0x80, 0x80, +0x96, 0x51, 0x97, 0x03, 0xFE, 0x6C, 0x53, 0x72, +0x00, 0x80, 0x41, 0x80, 0xDF, 0x17, 0x52, 0x4C, +0x00, 0x80, 0xD5, 0x19, 0x51, 0x43, 0xFF, 0x81, +0xE1, 0x94, 0xE9, 0x16, 0x3C, 0x20, 0x0F, 0x5F, +0x8B, 0x87, 0x97, 0x53, 0x3C, 0x40, 0x0F, 0x61, +0x50, 0x18, 0x00, 0x80, 0x96, 0x09, 0x52, 0x52, +0x80, 0x80, 0x96, 0xA3, 0xFE, 0x2C, 0x53, 0x51, +0x00, 0x80, 0x40, 0x40, 0x54, 0x97, 0x51, 0x63, +0xFF, 0x80, 0x88, 0x96, 0xAD, 0x30, 0x23, 0x13, +0x00, 0x01, 0x5E, 0xF8, 0x80, 0x80, 0xE8, 0x14, +0x3C, 0x20, 0x0F, 0x5F, 0x3C, 0x00, 0x0F, 0x62, +0x96, 0x53, 0x52, 0x28, 0x80, 0x80, 0x52, 0x50, +0x80, 0x80, 0x96, 0x51, 0x97, 0x03, 0xFE, 0x6C, +0x53, 0x22, 0x00, 0x80, 0x41, 0x30, 0xCA, 0x77, +0x52, 0x49, 0x80, 0x80, 0xD5, 0x19, 0x51, 0x91, +0xFF, 0x81, 0xE1, 0xB9, 0xE9, 0x16, 0x3C, 0x00, +0x0F, 0x5F, 0x8B, 0xA3, 0x97, 0x43, 0x3C, 0x40, +0x0F, 0x63, 0x50, 0x18, 0x80, 0x80, 0x96, 0x09, +0x52, 0x52, 0x80, 0x80, 0x96, 0xA3, 0xFE, 0x2C, +0x53, 0xC1, 0x00, 0x80, 0x40, 0x40, 0x70, 0x97, +0x51, 0xE1, 0xFF, 0x80, 0x88, 0x9E, 0xAD, 0x31, +0x22, 0x03, 0x00, 0x00, 0x40, 0x43, 0x84, 0x09, +0x50, 0x82, 0x7F, 0xE0, 0xE0, 0x08, 0xE8, 0x0C, +0x3C, 0x20, 0x0F, 0x3E, 0xC2, 0x18, 0x3C, 0x10, +0x0F, 0x3E, 0x97, 0x4B, 0x88, 0xA4, 0xFF, 0x44, +0x40, 0x02, 0x90, 0x16, 0xD5, 0x0F, 0x51, 0x02, +0x00, 0x20, 0xE1, 0x80, 0xE8, 0x0C, 0x3C, 0x50, +0x0F, 0x3F, 0xC5, 0x09, 0x3C, 0x20, 0x0F, 0x3F, +0x96, 0x53, 0x9B, 0x61, 0xFE, 0x2C, 0x40, 0x00, +0x10, 0x16, 0xAC, 0x30, 0x22, 0x03, 0x00, 0x01, +0x40, 0x41, 0x84, 0x09, 0x51, 0x42, 0x7F, 0xE0, +0xE0, 0x14, 0xE8, 0x0C, 0x3C, 0x10, 0x0F, 0x40, +0xC1, 0x18, 0x3C, 0x50, 0x0F, 0x40, 0x96, 0xAB, +0x88, 0x44, 0xFE, 0x84, 0x40, 0x01, 0x10, 0x16, +0xD5, 0x0F, 0x51, 0x12, 0x00, 0x20, 0xE1, 0xA0, +0xE8, 0x0C, 0x3C, 0x20, 0x0F, 0x41, 0xC2, 0x09, +0x3C, 0x10, 0x0F, 0x41, 0x97, 0x4B, 0x9A, 0xA5, +0xFE, 0x14, 0x40, 0x00, 0x10, 0x16, 0xAC, 0x31, +0x22, 0x13, 0x00, 0x00, 0x22, 0x03, 0x00, 0x01, +0xAC, 0x30, 0xAC, 0x71, 0x3C, 0x40, 0x0F, 0x34, +0x87, 0x82, 0x97, 0x63, 0xFE, 0x2C, 0x40, 0x30, +0x0C, 0x77, 0x97, 0x1B, 0xAD, 0x30, 0x3C, 0x20, +0x0F, 0x35, 0x96, 0x13, 0xFE, 0x44, 0xB0, 0x01, +0x40, 0x70, 0x9C, 0xF7, 0xAD, 0xF1, 0x3C, 0x10, +0x0F, 0x34, 0x3C, 0x30, 0x0F, 0xC8, 0x97, 0x4B, +0x41, 0x52, 0xF2, 0xB6, 0x96, 0x5B, 0x8A, 0x95, +0xF4, 0x81, 0x49, 0xFF, 0xFE, 0xBA, 0x3C, 0x40, +0x0F, 0x34, 0xF7, 0x01, 0x96, 0xA3, 0x40, 0x01, +0x70, 0x16, 0x88, 0x07, 0x4E, 0x04, 0x00, 0x03, +0x84, 0x00, 0xF0, 0x81, 0x3C, 0x10, 0x0F, 0x34, +0xF3, 0x01, 0x97, 0x4B, 0xE0, 0xA3, 0xE8, 0x05, +0x3C, 0x40, 0x0F, 0x34, 0x96, 0xA3, 0xF2, 0x81, +0xF7, 0x01, 0xAD, 0xF0, 0x3C, 0x00, 0x0F, 0x35, +0x85, 0x02, 0x96, 0x43, 0x22, 0x53, 0x00, 0x01, +0x40, 0x30, 0xA0, 0x76, 0x3C, 0x20, 0x0F, 0xC9, +0x9B, 0x2B, 0xB0, 0x01, 0x96, 0x53, 0xF4, 0x81, +0x49, 0xFF, 0xFE, 0x93, 0x3C, 0x70, 0x0F, 0x35, +0xF1, 0x01, 0x96, 0x3B, 0x40, 0x50, 0x20, 0xB6, +0x88, 0xA1, 0x4E, 0x54, 0x00, 0x03, 0x84, 0xA0, +0xF5, 0x81, 0x3C, 0x30, 0x0F, 0x35, 0xF2, 0x01, +0x97, 0x1B, 0xE0, 0x82, 0xE8, 0x05, 0x3C, 0x70, +0x0F, 0x35, 0x96, 0x3B, 0xF0, 0x81, 0xF5, 0x01, +0xAD, 0x71, 0x3C, 0x10, 0x0F, 0x36, 0x96, 0xCC, +0xC3, 0x06, 0x3C, 0x40, 0x0F, 0x34, 0xA4, 0xB0, +0x8A, 0x82, 0xAD, 0x30, 0x3C, 0x70, 0x0F, 0x36, +0x97, 0xCE, 0xC7, 0x05, 0x3C, 0x00, 0x0F, 0x35, +0x8A, 0x05, 0xAC, 0x31, 0x3C, 0x50, 0x0F, 0x36, +0x97, 0x56, 0xC5, 0x06, 0x22, 0x33, 0x00, 0x00, +0xA4, 0x71, 0xAC, 0x70, 0xAC, 0xF1, 0xFC, 0xA1, +0xFC, 0x61, 0x81, 0x20, 0x49, 0xFF, 0xFE, 0x7D, +0x2E, 0x00, 0x1C, 0xB9, 0x5A, 0x08, 0x01, 0x57, +0x3C, 0x10, 0x11, 0x78, 0xC1, 0x53, 0x44, 0x80, +0x03, 0x23, 0x85, 0x80, 0x3E, 0xD8, 0x1C, 0xE8, +0x44, 0xE0, 0x00, 0x64, 0x3C, 0x20, 0x11, 0x96, +0x96, 0xD3, 0x40, 0xF6, 0x0C, 0x07, 0xE8, 0x46, +0x50, 0xA4, 0x00, 0x01, 0x38, 0x06, 0xA1, 0x01, +0x38, 0x16, 0xA9, 0x01, 0x97, 0xC3, 0x97, 0x8B, +0x22, 0xB4, 0x80, 0x00, 0x23, 0xC4, 0x80, 0x01, +0x12, 0xBF, 0x80, 0x02, 0x13, 0xCF, 0x80, 0x03, +0x12, 0x7F, 0x80, 0x00, 0x12, 0x6F, 0x80, 0x01, +0xB4, 0x1F, 0xF1, 0x01, 0x49, 0xFF, 0xC4, 0xAD, +0x3C, 0x20, 0x11, 0x78, 0x96, 0xD3, 0xE2, 0x03, +0xE8, 0x25, 0x40, 0x45, 0x80, 0x13, 0x9B, 0x67, +0x96, 0x2B, 0x43, 0x00, 0x00, 0x03, 0xE5, 0x83, +0xE9, 0x0B, 0x3C, 0x70, 0x11, 0x79, 0x96, 0x7B, +0xFE, 0x0C, 0x41, 0x10, 0x3A, 0x36, 0x41, 0x22, +0x44, 0x01, 0x13, 0x24, 0x80, 0x00, 0x40, 0x2E, +0x00, 0x13, 0x9B, 0x96, 0x96, 0xF3, 0x43, 0x31, +0x80, 0x03, 0xE5, 0xE3, 0xE9, 0x0B, 0x3C, 0x40, +0x11, 0x79, 0x97, 0x63, 0xFE, 0xEC, 0x41, 0x41, +0xBA, 0x96, 0x41, 0x51, 0x50, 0x01, 0x13, 0x54, +0x80, 0x01, 0x50, 0xC6, 0x00, 0x01, 0x8D, 0x02, +0xD5, 0xB6, 0x2E, 0x48, 0x03, 0x23, 0x44, 0x50, +0x00, 0x38, 0x3E, 0x6F, 0xFF, 0x08, 0x42, 0x62, +0x14, 0x73, 0x3A, 0x74, 0x9C, 0x00, 0x3A, 0x73, +0x1C, 0x20, 0xFC, 0xE1, 0xFC, 0x21, 0x3A, 0x0F, +0x84, 0x20, 0x20, 0x3F, 0x80, 0x02, 0x20, 0x0F, +0x80, 0x00, 0x20, 0x4F, 0x80, 0x01, 0x96, 0x01, +0x20, 0x5F, 0x80, 0x03, 0x3C, 0x6C, 0x02, 0x7A, +0x97, 0xD9, 0x86, 0x00, 0xE0, 0x80, 0xE9, 0x13, +0x3C, 0x80, 0x0E, 0x5F, 0x82, 0x23, 0x43, 0x10, +0x20, 0x73, 0x80, 0x27, 0x41, 0x33, 0x44, 0x20, +0xE0, 0xA1, 0xE9, 0x06, 0x8C, 0x21, 0x1B, 0x09, +0x80, 0x01, 0x96, 0x49, 0xD5, 0xFA, 0x8C, 0x01, +0x96, 0x01, 0xD5, 0xED, 0xFC, 0xA1, 0xFC, 0x73, +0x3C, 0x50, 0x05, 0x06, 0xB1, 0x0C, 0x3A, 0x02, +0x04, 0x20, 0x97, 0x5E, 0x3C, 0x00, 0x0E, 0x64, +0x97, 0xA9, 0x81, 0x83, 0x40, 0x91, 0x00, 0x13, +0x40, 0x71, 0x40, 0x09, 0xF0, 0x84, 0x3C, 0x10, +0x0E, 0x65, 0x3C, 0x20, 0x0E, 0x66, 0x3C, 0x30, +0x0E, 0x67, 0x2E, 0x07, 0xFF, 0x04, 0x20, 0xE2, +0x00, 0x02, 0x20, 0xA2, 0x00, 0x01, 0x85, 0x60, +0x20, 0x42, 0x00, 0x03, 0xF6, 0x83, 0xF1, 0x85, +0xF2, 0x86, 0xF3, 0x87, 0x3C, 0x8C, 0x02, 0x79, +0x3D, 0x20, 0x0E, 0x5F, 0xF0, 0x81, 0x21, 0xCF, +0x80, 0x30, 0xF4, 0x82, 0x50, 0xDF, 0x80, 0x64, +0x80, 0xCB, 0x86, 0xCA, 0x86, 0xEC, 0x12, 0x9F, +0x80, 0x16, 0x12, 0x7F, 0x80, 0x17, 0xF0, 0x0B, +0x15, 0x7F, 0x80, 0x0A, 0x15, 0x6F, 0x80, 0x09, +0x15, 0x2F, 0x80, 0x08, 0x49, 0xFF, 0xE1, 0x17, +0x86, 0x00, 0x05, 0x7F, 0x80, 0x0A, 0x05, 0x6F, +0x80, 0x09, 0x05, 0x2F, 0x80, 0x08, 0x85, 0xE0, +0x38, 0xF6, 0xC1, 0x09, 0x8D, 0x81, 0x5B, 0x08, +0x19, 0xFC, 0x51, 0x34, 0xFF, 0xFE, 0x82, 0x27, +0x43, 0x19, 0xC8, 0x73, 0x84, 0x60, 0x84, 0x5E, +0xF5, 0x04, 0x40, 0x11, 0x24, 0x00, 0xE0, 0x25, +0xE8, 0x06, 0x8C, 0x41, 0x88, 0x72, 0x5A, 0x28, +0x03, 0xF9, 0xD5, 0x22, 0xF4, 0x05, 0xE0, 0x81, +0xE9, 0xF9, 0x43, 0x31, 0x58, 0x24, 0x41, 0x41, +0xC4, 0x00, 0x8D, 0xF4, 0x84, 0x3E, 0x05, 0x5F, +0x80, 0x06, 0x99, 0x4F, 0xE0, 0xB5, 0xE9, 0x10, +0x05, 0x0F, 0x80, 0x07, 0xE1, 0x85, 0xE9, 0x0C, +0x41, 0x80, 0xD0, 0x00, 0x41, 0x94, 0x60, 0x20, +0x40, 0x49, 0x84, 0x20, 0x03, 0xEC, 0x80, 0x00, +0x88, 0x8D, 0x13, 0xE2, 0x00, 0x02, 0x8C, 0x21, +0x5A, 0x18, 0x03, 0xEB, 0xD5, 0xDB, 0xC0, 0x24, +0x12, 0x6F, 0x80, 0x32, 0x12, 0x6F, 0x80, 0x46, +0x12, 0x6F, 0x80, 0x36, 0x12, 0x6F, 0x80, 0x33, +0x12, 0x6F, 0x80, 0x47, 0x12, 0x6F, 0x80, 0x37, +0x12, 0x6F, 0x80, 0x3B, 0x12, 0x6F, 0x80, 0x34, +0x12, 0x6F, 0x80, 0x48, 0x12, 0x6F, 0x80, 0x3C, +0x12, 0x6F, 0x80, 0x40, 0x12, 0x6F, 0x80, 0x35, +0x12, 0x6F, 0x80, 0x49, 0x12, 0x6F, 0x80, 0x41, +0x12, 0x6F, 0x80, 0x45, 0x12, 0x6F, 0x80, 0x4A, +0x80, 0x2D, 0x84, 0xA0, 0xD5, 0x06, 0xF0, 0x03, +0xC8, 0xDC, 0xF3, 0x01, 0xCB, 0xDA, 0xD5, 0xF9, +0x51, 0x40, 0x80, 0x0A, 0x51, 0x1F, 0x80, 0x40, +0x50, 0x40, 0x80, 0x14, 0x80, 0x54, 0x84, 0x60, +0x41, 0x58, 0x94, 0x00, 0x3D, 0x30, 0x0F, 0x49, +0x3D, 0x00, 0x0F, 0x4A, 0x41, 0x89, 0x80, 0x11, +0x22, 0x02, 0x00, 0x01, 0x23, 0x30, 0x80, 0x01, +0x40, 0xF8, 0x00, 0x11, 0x23, 0x01, 0x00, 0x00, +0x89, 0xE0, 0x22, 0x01, 0x00, 0x02, 0x89, 0xF0, +0x23, 0xE1, 0x00, 0x01, 0x88, 0x13, 0x3D, 0x90, +0x0F, 0x4B, 0x42, 0xF7, 0x80, 0x24, 0x42, 0xFC, +0x78, 0x73, 0x23, 0x00, 0x80, 0x00, 0x23, 0x80, +0x80, 0x02, 0x41, 0x1C, 0x80, 0x11, 0x23, 0x92, +0x00, 0x00, 0x23, 0x32, 0x00, 0x02, 0x89, 0x98, +0x89, 0x99, 0x89, 0xF0, 0x42, 0xF8, 0xCC, 0x73, +0x38, 0xFA, 0x8D, 0x0A, 0x8C, 0x62, 0x8C, 0x42, +0x8C, 0x22, 0x8C, 0x82, 0x5A, 0x38, 0x06, 0xD0, +0x8C, 0xAC, 0x80, 0x34, 0x5A, 0x58, 0x24, 0xC2, +0x84, 0x01, 0x84, 0x80, 0x80, 0x40, 0x82, 0x04, +0x51, 0x4F, 0x80, 0x40, 0x43, 0x48, 0x5C, 0x73, +0x84, 0x60, 0x82, 0xB4, 0x41, 0x18, 0x00, 0x11, +0x38, 0x5A, 0x8E, 0x02, 0xE0, 0x85, 0xE8, 0x04, +0x80, 0x11, 0x96, 0x9B, 0x80, 0x85, 0x8C, 0x61, +0x5A, 0x38, 0x03, 0xF8, 0x8D, 0x81, 0x5B, 0x08, +0x03, 0xED, 0x8E, 0x01, 0x8E, 0x41, 0x97, 0x41, +0x96, 0xD1, 0x3C, 0x58, 0x01, 0xA4, 0x3C, 0x38, +0x01, 0xA5, 0x3C, 0x1C, 0x00, 0xD2, 0xC1, 0x1E, +0x3C, 0x00, 0x10, 0xF4, 0xC0, 0x04, 0x5A, 0xB0, +0x01, 0x1A, 0x85, 0x61, 0x89, 0x25, 0x40, 0x94, +0x80, 0x13, 0x88, 0xE3, 0xE1, 0x3C, 0x97, 0xF9, +0xE8, 0x08, 0x41, 0xE4, 0x94, 0x01, 0x8A, 0xE3, +0x40, 0x9F, 0x00, 0x13, 0x97, 0xF9, 0xD5, 0x0A, +0xE0, 0xEE, 0xE9, 0xF8, 0xE1, 0x49, 0xE9, 0xF6, +0xF2, 0x02, 0xE0, 0x47, 0x4E, 0xF2, 0xFF, 0x0D, +0xD5, 0xF1, 0xF4, 0x10, 0xF1, 0x11, 0xF2, 0x12, +0xF0, 0x15, 0x05, 0x8F, 0x80, 0x16, 0xF3, 0x17, +0x88, 0x24, 0xF5, 0x18, 0x88, 0x22, 0x88, 0x78, +0x88, 0x40, 0x88, 0x65, 0xF6, 0x13, 0x88, 0xA2, +0xF2, 0x14, 0x88, 0x86, 0x88, 0x46, 0x88, 0x02, +0x88, 0x01, 0x88, 0x03, 0x84, 0xDE, 0xFE, 0x34, +0x3C, 0x20, 0x0F, 0x44, 0x9B, 0x99, 0x87, 0x23, +0x88, 0x23, 0x82, 0x60, 0x96, 0x93, 0xFE, 0xB4, +0x43, 0x30, 0xE4, 0x73, 0x3C, 0x30, 0x0F, 0x45, +0x40, 0x11, 0x4C, 0x36, 0x88, 0x98, 0xFE, 0x8A, +0x97, 0x9B, 0x9A, 0x6C, 0x99, 0x2C, 0xFF, 0x8C, +0x42, 0x02, 0x64, 0x73, 0x3C, 0x30, 0x0F, 0x44, +0x40, 0x03, 0x00, 0x16, 0x97, 0x9B, 0xFF, 0x42, +0xE0, 0xC2, 0xF2, 0x8E, 0xF5, 0x8F, 0x85, 0x01, +0xE9, 0x07, 0x3C, 0x10, 0x0F, 0x44, 0x97, 0x0B, +0xFE, 0x22, 0x40, 0x81, 0x00, 0x07, 0x3C, 0x20, +0x0F, 0x45, 0x96, 0xD3, 0xE0, 0x65, 0xE9, 0x07, +0x3C, 0x10, 0x0F, 0x44, 0x97, 0x0B, 0xFE, 0x22, +0xE0, 0xA0, 0xE8, 0x03, 0x58, 0x84, 0x00, 0x02, +0x3C, 0x50, 0x0F, 0xC6, 0xB0, 0x0F, 0x96, 0x6B, +0x49, 0xFF, 0xFC, 0x5B, 0x3C, 0x60, 0x0F, 0xC7, +0xB0, 0x0E, 0x96, 0x73, 0x49, 0xFF, 0xFC, 0x55, +0xF2, 0x0E, 0x5E, 0xF1, 0x00, 0x41, 0xE9, 0x04, +0x44, 0x30, 0x00, 0x40, 0xF3, 0x8E, 0xF1, 0x0E, +0x5E, 0xF0, 0xFF, 0xC0, 0xE8, 0x04, 0x44, 0x4F, +0xFF, 0xC0, 0xF4, 0x8E, 0xF0, 0x0F, 0x5E, 0xF0, +0x00, 0x41, 0xE9, 0x04, 0x44, 0x50, 0x00, 0x40, +0xF5, 0x8F, 0xF6, 0x0F, 0x5E, 0xF3, 0x7F, 0xC0, +0xE8, 0x04, 0x44, 0x2F, 0xFF, 0xC0, 0xF2, 0x8F, +0xF3, 0x0E, 0xF1, 0x0F, 0x51, 0x41, 0x80, 0x40, +0x51, 0x10, 0x80, 0x40, 0x41, 0x5A, 0x24, 0xE0, +0x41, 0x08, 0x9C, 0xE0, 0x13, 0x56, 0x00, 0x00, +0x13, 0x06, 0x00, 0x01, 0x80, 0x08, 0x3C, 0x98, +0x01, 0xA2, 0x3C, 0x78, 0x01, 0xA3, 0xFC, 0xF3, +0xFC, 0x7C, 0x3A, 0x0F, 0x84, 0x20, 0x84, 0x00, +0x82, 0x1F, 0x20, 0xCF, 0x80, 0x00, 0x20, 0x8F, +0x80, 0x01, 0x21, 0x4F, 0x80, 0x02, 0x21, 0xEF, +0x80, 0x03, 0x50, 0xAF, 0x80, 0x60, 0x80, 0x20, +0x38, 0x15, 0x02, 0x0A, 0x8C, 0x01, 0x5A, 0x08, +0x20, 0xFD, 0x84, 0xA0, 0x51, 0x3F, 0x80, 0x08, +0x80, 0xC5, 0x38, 0x69, 0x96, 0x0A, 0x8C, 0xA1, +0x5A, 0x58, 0x16, 0xFD, 0x3E, 0x5F, 0xFF, 0x08, +0x2E, 0x98, 0x03, 0x23, 0x44, 0xB0, 0x00, 0x38, +0x82, 0xA5, 0x43, 0x54, 0xAC, 0x73, 0x44, 0xDF, +0x80, 0x00, 0x51, 0xCA, 0x80, 0x10, 0x44, 0xE0, +0x7F, 0xFF, 0x41, 0x96, 0x00, 0x13, 0x14, 0xDE, +0x00, 0x01, 0x14, 0xEA, 0x80, 0x08, 0x3C, 0x60, +0x0E, 0x5F, 0x3C, 0xDC, 0x02, 0x7A, 0x80, 0x19, +0x86, 0x20, 0x41, 0x7A, 0x00, 0x13, 0x50, 0x7A, +0x80, 0x20, 0xE1, 0x00, 0xE9, 0x26, 0x43, 0x80, +0x18, 0x24, 0x80, 0x37, 0x40, 0xFF, 0x04, 0x07, +0xE9, 0x1D, 0x40, 0xBC, 0x04, 0x00, 0x39, 0x26, +0xAD, 0x11, 0x38, 0xB5, 0x02, 0x02, 0x89, 0xB2, +0x89, 0x72, 0x38, 0xB5, 0x02, 0x0A, 0x38, 0xB9, +0x86, 0x02, 0x89, 0x72, 0x38, 0xB9, 0x86, 0x0A, +0x04, 0xBE, 0x00, 0x01, 0xE1, 0x72, 0xE8, 0x03, +0x15, 0x2E, 0x00, 0x01, 0xB5, 0x67, 0xE1, 0xCB, +0xE8, 0x02, 0xB7, 0xC7, 0x8C, 0x21, 0x96, 0x49, +0xD5, 0xE2, 0x8C, 0x01, 0x96, 0x01, 0xD5, 0xDA, +0x3D, 0x64, 0x01, 0x8C, 0x4D, 0x62, 0x40, 0x47, +0x44, 0x40, 0x00, 0x38, 0x3E, 0x0F, 0xFF, 0x08, +0x42, 0x04, 0x90, 0x73, 0xFA, 0x8E, 0xA0, 0x45, +0x41, 0x54, 0x30, 0x01, 0xFE, 0x64, 0x40, 0xBF, +0x50, 0x01, 0x50, 0x7A, 0x80, 0x01, 0x45, 0x70, +0x00, 0x64, 0x50, 0x45, 0x80, 0x01, 0x40, 0x00, +0xDC, 0x16, 0xFF, 0x3C, 0x96, 0x43, 0x97, 0xE3, +0x84, 0x00, 0x41, 0xCA, 0x00, 0x13, 0xE1, 0x19, +0xE9, 0x17, 0x43, 0x2C, 0x98, 0x24, 0x80, 0x9C, +0x40, 0xFF, 0x10, 0x07, 0xE9, 0x0C, 0x40, 0xE9, +0x10, 0x00, 0x39, 0x66, 0xB9, 0x11, 0xE0, 0x36, +0xE8, 0x03, 0x8C, 0x01, 0x96, 0x03, 0x8C, 0x81, +0x97, 0x21, 0xD5, 0xF3, 0x51, 0x8C, 0x80, 0x01, +0x41, 0x9C, 0x00, 0x13, 0xD5, 0xE9, 0x44, 0x10, +0x00, 0x64, 0xFE, 0x0C, 0x50, 0x8A, 0x80, 0x01, +0x40, 0x00, 0x1C, 0x16, 0x50, 0xC5, 0x80, 0x01, +0x97, 0xC3, 0x3C, 0x7B, 0xF9, 0xD9, 0x3C, 0x78, +0x0F, 0xE9, 0x3C, 0x8B, 0xF9, 0xD2, 0x3C, 0xCB, +0xF9, 0xD3, 0x45, 0x20, 0x00, 0x38, 0x42, 0xB4, +0xC8, 0x24, 0x3E, 0x4F, 0xFF, 0x14, 0x82, 0x90, +0x3B, 0x0A, 0x40, 0x04, 0x88, 0x8B, 0x3B, 0x02, +0x40, 0x24, 0x89, 0x65, 0x45, 0x90, 0x7F, 0xFF, +0x02, 0x1A, 0x00, 0x00, 0x84, 0xE0, 0x42, 0x08, +0xE4, 0x01, 0x51, 0xC5, 0x80, 0x20, 0xAC, 0x60, +0x12, 0x05, 0x80, 0x04, 0xBF, 0x81, 0x80, 0x27, +0x38, 0x45, 0x1E, 0x02, 0x04, 0x8E, 0x00, 0x01, +0x8C, 0xE1, 0xE3, 0x04, 0x42, 0x13, 0x90, 0x73, +0xE8, 0x02, 0xBC, 0x81, 0x5A, 0x78, 0x20, 0xF6, +0x44, 0xA0, 0x00, 0x38, 0x83, 0xC5, 0x43, 0xE4, +0xA8, 0x73, 0x85, 0x20, 0x14, 0x9F, 0x00, 0x0A, +0x82, 0xA9, 0x50, 0xDF, 0x00, 0x28, 0x38, 0xB9, +0xA6, 0x02, 0xB5, 0xCD, 0x8D, 0x21, 0xE3, 0xCB, +0x43, 0x54, 0xAC, 0x73, 0xE8, 0x02, 0xB7, 0x6D, +0x5A, 0x98, 0x16, 0xF7, 0x44, 0x70, 0x00, 0x64, +0xFE, 0x7C, 0x43, 0x7A, 0x9C, 0x24, 0x41, 0x30, +0xC6, 0x77, 0x50, 0xE9, 0x80, 0x32, 0x40, 0x07, +0x1C, 0x16, 0x41, 0x1B, 0xC6, 0x37, 0x50, 0x19, +0xFF, 0x9C, 0x8E, 0x01, 0x97, 0x01, 0x50, 0xC8, +0x80, 0x32, 0x94, 0x0F, 0x41, 0x60, 0x1E, 0xD6, +0x40, 0x06, 0x1C, 0x16, 0x50, 0x1B, 0x00, 0x40, +0x8E, 0x01, 0xAD, 0x18, 0xAC, 0x50, 0x96, 0x41, +0xAC, 0x59, 0x50, 0x38, 0xFF, 0x9C, 0x94, 0x1F, +0x41, 0x40, 0x1E, 0x96, 0x50, 0x7A, 0x00, 0x40, +0xAD, 0xD1, 0x2E, 0x28, 0x03, 0x23, 0x45, 0x00, +0x00, 0x38, 0x42, 0x51, 0x40, 0x73, 0x42, 0x12, +0x18, 0x73, 0xAC, 0x6D, 0xFC, 0xFC, 0x3C, 0x30, +0x0E, 0xA1, 0x22, 0x20, 0x00, 0x00, 0x97, 0x1B, +0x88, 0x81, 0xE0, 0x82, 0xE8, 0x05, 0x3D, 0x00, +0x0E, 0xA1, 0x8A, 0x50, 0xD5, 0x12, 0x3C, 0x50, +0x0E, 0xA1, 0x96, 0xEB, 0x9B, 0x0B, 0xE0, 0x44, +0xE8, 0x05, 0x3C, 0x10, 0x0E, 0xA1, 0x88, 0x41, +0xD5, 0x08, 0xE0, 0x22, 0xE8, 0x03, 0x8E, 0x41, +0xD5, 0x04, 0xE0, 0x41, 0xE8, 0x03, 0x8C, 0x41, +0xAC, 0x80, 0xDD, 0x9E, 0x3E, 0x3F, 0xFF, 0x08, +0x44, 0x10, 0x00, 0x38, 0x42, 0x30, 0x04, 0x73, +0x84, 0x40, 0x2E, 0x48, 0x03, 0x23, 0x50, 0x51, +0x00, 0x38, 0x8E, 0x81, 0xE0, 0x04, 0xE8, 0x0E, +0x88, 0x43, 0x98, 0x5D, 0x3B, 0x00, 0xE4, 0x04, +0x3B, 0x01, 0x64, 0x24, 0x3B, 0x00, 0xCC, 0x00, +0x3B, 0x01, 0x4C, 0x20, 0x8C, 0x01, 0x80, 0x45, +0xD5, 0xED, 0x96, 0x22, 0x4E, 0x05, 0x00, 0x05, +0x3E, 0x00, 0x03, 0x23, 0xDD, 0x9E, 0x84, 0x40, +0x3E, 0x20, 0x03, 0x23, 0xDD, 0x9E, 0xFC, 0x60, +0x3E, 0x9F, 0xE1, 0x98, 0x81, 0x40, 0x84, 0xE0, +0x84, 0x00, 0x3E, 0x00, 0x0A, 0x3D, 0x3E, 0x00, +0x03, 0x1C, 0x80, 0xC7, 0x50, 0xB4, 0x80, 0x08, +0x44, 0xC0, 0x00, 0x5C, 0x3C, 0x17, 0xF6, 0x74, +0xC9, 0x17, 0x2E, 0x27, 0xEC, 0xFA, 0xCA, 0x14, +0x80, 0x6B, 0x42, 0x33, 0xB0, 0x73, 0xA1, 0x19, +0x97, 0x64, 0xC5, 0x0E, 0x42, 0x02, 0x18, 0x0B, +0xC0, 0x0B, 0x02, 0x14, 0x80, 0x2C, 0x8E, 0x21, +0x96, 0x8B, 0x12, 0x24, 0x80, 0x2C, 0x4E, 0x27, +0x00, 0x04, 0x8C, 0xC1, 0xD5, 0x04, 0x80, 0x07, +0x49, 0xFF, 0xDE, 0x48, 0x8C, 0xE1, 0x50, 0x94, +0x80, 0x5C, 0x5A, 0x78, 0x0F, 0xE1, 0xC6, 0x07, +0x49, 0xFF, 0xDE, 0x55, 0x3E, 0x60, 0x03, 0x26, +0x80, 0x06, 0xD5, 0x3F, 0x3E, 0x60, 0x03, 0x25, +0x3E, 0x60, 0x03, 0x24, 0x3E, 0x60, 0x03, 0x23, +0x3E, 0x60, 0x03, 0x26, 0x3E, 0x60, 0x03, 0x1C, +0x3C, 0x6B, 0xF6, 0x85, 0x3C, 0x6B, 0xF9, 0xDD, +0x3C, 0x6E, 0x00, 0xCC, 0x3C, 0x6E, 0x00, 0xCD, +0x3E, 0x60, 0x03, 0x38, 0x4E, 0xA3, 0x00, 0x04, +0x3E, 0xA0, 0x03, 0x22, 0x3C, 0xD0, 0x05, 0x11, +0x3C, 0x80, 0x05, 0x12, 0x85, 0xC3, 0x42, 0x86, +0xB8, 0x73, 0x91, 0x02, 0x3C, 0x88, 0x05, 0x11, +0x49, 0xFF, 0xDE, 0x2D, 0x3D, 0x20, 0x10, 0xF4, +0x86, 0x1F, 0x86, 0x20, 0x3D, 0x0B, 0xF9, 0xEB, +0x3F, 0x17, 0xF3, 0xD8, 0x5B, 0x28, 0x03, 0x0E, +0x3C, 0x73, 0xF9, 0xE8, 0x8E, 0xE1, 0x97, 0xBB, +0x3C, 0x6B, 0xF9, 0xE8, 0x4E, 0x66, 0x00, 0x09, +0x85, 0xE0, 0x3C, 0xF8, 0x10, 0xF4, 0xD5, 0x02, +0x85, 0xE0, 0x3C, 0xFB, 0xF9, 0xE8, 0x84, 0x00, +0xFC, 0xE0, 0xFC, 0x60, 0x80, 0xE0, 0x49, 0xFF, +0xCE, 0x86, 0x3C, 0x00, 0x05, 0x09, 0x96, 0x16, +0x4E, 0x02, 0x00, 0xA4, 0x4E, 0x73, 0x00, 0xA2, +0x2E, 0x17, 0xF3, 0xB7, 0xC9, 0x0C, 0x3E, 0x6F, +0xE1, 0xC8, 0x85, 0x60, 0x81, 0x4B, 0x50, 0xC3, +0x7F, 0xD8, 0x44, 0xD0, 0x00, 0x5C, 0x44, 0x90, +0x00, 0x64, 0xD5, 0x0F, 0x3C, 0x20, 0x0F, 0x64, +0x96, 0xA6, 0xCA, 0xF2, 0x48, 0x00, 0x00, 0x8E, +0x42, 0x02, 0x18, 0x0B, 0xC8, 0x0D, 0x8D, 0x41, +0x50, 0x63, 0x00, 0x5C, 0x5A, 0xA0, 0x0F, 0x49, +0x80, 0x6C, 0x42, 0x35, 0x34, 0x73, 0xA1, 0x19, +0x97, 0x64, 0xC5, 0xF6, 0xD5, 0xF2, 0x84, 0x21, +0x54, 0x05, 0x00, 0xFF, 0x49, 0xFF, 0xCE, 0xF3, +0xB4, 0x06, 0xA0, 0x76, 0x40, 0x50, 0x24, 0xB6, +0x40, 0x20, 0xA4, 0x56, 0x2E, 0x80, 0x03, 0x23, +0xDA, 0x08, 0xA0, 0xF1, 0xA1, 0x37, 0x40, 0x51, +0xA4, 0xB6, 0x40, 0x22, 0x24, 0x56, 0xD2, 0x28, +0x3C, 0x40, 0x0E, 0xD8, 0xA1, 0x73, 0x96, 0xA3, +0xE0, 0xA2, 0xA0, 0xF1, 0x05, 0x03, 0x00, 0x07, +0xE9, 0x17, 0x8A, 0x70, 0x8A, 0x01, 0x42, 0xE1, +0x80, 0x03, 0x43, 0x10, 0x00, 0x03, 0x89, 0xAE, +0x3C, 0x10, 0x0E, 0xD8, 0x41, 0x28, 0xA6, 0x56, +0x96, 0xCB, 0xE1, 0xC3, 0xE9, 0x09, 0x3C, 0x40, +0x0F, 0xEC, 0x96, 0xA3, 0xFE, 0xAC, 0x41, 0x31, +0x26, 0x76, 0xE1, 0xF2, 0xE9, 0x08, 0x51, 0x43, +0x00, 0x18, 0x3B, 0x03, 0x44, 0x00, 0x3B, 0x0A, +0x44, 0x20, 0xD5, 0x02, 0x85, 0x61, 0x8D, 0x01, +0x3E, 0x80, 0x03, 0x23, 0xD5, 0xB5, 0x2F, 0x58, +0x03, 0x23, 0x4F, 0x57, 0x00, 0x3B, 0x5A, 0xB8, +0x01, 0x39, 0x49, 0xFF, 0xDD, 0x9C, 0x2E, 0x77, +0xF3, 0xB7, 0xC7, 0x0E, 0x3C, 0x60, 0x0F, 0x64, +0x97, 0xA6, 0xC6, 0x0A, 0x2E, 0x27, 0xF3, 0xB9, +0xC2, 0x09, 0x3C, 0xA3, 0xED, 0x8C, 0x59, 0xE5, +0x00, 0x20, 0x3D, 0xEB, 0xED, 0x8C, 0x85, 0x20, +0xD5, 0x09, 0x2E, 0x57, 0xF3, 0xB8, 0xC5, 0xFC, +0x3D, 0x93, 0xED, 0x8C, 0x59, 0xEC, 0x80, 0x10, +0xD5, 0xF5, 0x80, 0x09, 0x8D, 0x21, 0x49, 0xFF, +0xDD, 0x69, 0x5A, 0x98, 0x0F, 0xFC, 0x85, 0x80, +0x85, 0xE0, 0x85, 0xA0, 0x3E, 0xC0, 0x03, 0x26, +0x3E, 0xC0, 0x03, 0x23, 0x3E, 0xC0, 0x03, 0x22, +0x3C, 0xFB, 0xF6, 0x85, 0x3C, 0xFB, 0xF9, 0xDD, +0x3C, 0xDE, 0x00, 0xCC, 0x3C, 0xDE, 0x00, 0xCD, +0x3E, 0xF0, 0x03, 0x38, 0x48, 0x00, 0x00, 0xA5, +0x86, 0xC0, 0x80, 0x07, 0x3F, 0x60, 0x03, 0x23, +0x49, 0xFF, 0xFE, 0xDB, 0x4E, 0x06, 0x00, 0x9D, +0x3C, 0x70, 0x05, 0x06, 0x97, 0xCE, 0xCF, 0x6E, +0x3C, 0x50, 0x0E, 0x9D, 0x3D, 0x70, 0x0E, 0x4C, +0x96, 0x2B, 0xE0, 0x17, 0xE9, 0x04, 0x2E, 0x60, +0x03, 0x22, 0xC6, 0x05, 0x86, 0x40, 0x3D, 0x2B, +0xF6, 0x78, 0xD5, 0x60, 0x3C, 0x13, 0xF6, 0x78, +0x3C, 0x40, 0x0E, 0x9F, 0x8C, 0x21, 0x96, 0xC9, +0x96, 0xA3, 0xE0, 0x43, 0x3C, 0x3B, 0xF6, 0x78, +0xE8, 0x2D, 0x3E, 0x7F, 0xE6, 0xFC, 0x3F, 0xC8, +0x0A, 0x60, 0x3D, 0x80, 0x0E, 0x60, 0xE0, 0xD8, +0xE8, 0x0D, 0x50, 0x53, 0x02, 0xC0, 0x94, 0x29, +0x41, 0x1E, 0x00, 0x00, 0x22, 0x18, 0x85, 0xEC, +0x88, 0x07, 0x49, 0xFF, 0xFE, 0x66, 0x8C, 0xC1, +0xD5, 0xF1, 0x85, 0x00, 0x3E, 0x6F, 0xE6, 0xFC, +0x3E, 0xE8, 0x0A, 0x60, 0x3D, 0x90, 0x0E, 0x61, +0xE1, 0x19, 0xE8, 0x0D, 0x50, 0x24, 0x02, 0xE0, +0x94, 0x11, 0x41, 0x07, 0x00, 0x00, 0x22, 0x18, +0x05, 0xEC, 0x88, 0x06, 0x49, 0xFF, 0xFE, 0x51, +0x8D, 0x01, 0xD5, 0xF1, 0x87, 0xC0, 0x3D, 0xEB, +0xF6, 0x78, 0x3C, 0x50, 0x05, 0x06, 0x97, 0x66, +0xC5, 0x04, 0x2E, 0x07, 0xF3, 0xC3, 0xC8, 0xBF, +0x3C, 0x63, 0xF6, 0x76, 0x3C, 0x10, 0x0E, 0x9F, +0x8C, 0xC1, 0x96, 0xF1, 0x97, 0x0B, 0xE0, 0x83, +0x3C, 0x3B, 0xF6, 0x76, 0xE8, 0x17, 0x84, 0xC0, +0x3E, 0x7F, 0xE6, 0xFC, 0x3E, 0xA8, 0x0A, 0x60, +0x3C, 0xC0, 0x0E, 0x5D, 0xE0, 0xCC, 0xE8, 0x0B, +0x94, 0x31, 0x40, 0x90, 0x28, 0x00, 0x22, 0x14, +0x85, 0xEC, 0x88, 0x07, 0x49, 0xFF, 0xFE, 0x29, +0x8C, 0xC1, 0xD5, 0xF3, 0x85, 0xA0, 0x3C, 0xDB, +0xF6, 0x76, 0x2E, 0x07, 0xF3, 0xB7, 0x86, 0x60, +0x3F, 0x30, 0x03, 0x26, 0xC0, 0x1D, 0x3C, 0x30, +0x0F, 0x64, 0x96, 0xE6, 0xC3, 0x12, 0x2E, 0x17, +0xF3, 0xB9, 0xC1, 0x06, 0x3D, 0x53, 0xED, 0x8C, +0x59, 0x4A, 0x80, 0x20, 0xD5, 0x08, 0x2E, 0x47, +0xF3, 0xB8, 0xC4, 0x07, 0x3C, 0xB3, 0xED, 0x8C, +0x59, 0x45, 0x80, 0x10, 0x3D, 0x4B, 0xED, 0x8C, +0x3D, 0x60, 0x0E, 0xB5, 0x86, 0xE0, 0x3D, 0x6B, +0xF9, 0xD8, 0x3F, 0x77, 0xF3, 0xB7, 0x87, 0x80, +0x87, 0x00, 0x3F, 0xC7, 0xF3, 0xB9, 0x3F, 0xC7, +0xF3, 0xB8, 0x3D, 0x8B, 0xF9, 0xDE, 0xFC, 0xE0, +0x84, 0x00, 0x3C, 0x08, 0x0E, 0x64, 0x3C, 0x10, +0x0E, 0x5E, 0x3C, 0x08, 0x0E, 0x66, 0x3C, 0x00, +0x0E, 0x5F, 0x3C, 0x40, 0x0F, 0x24, 0x9E, 0x89, +0x9E, 0xC1, 0x3C, 0x28, 0x0E, 0x65, 0x3C, 0x38, +0x0E, 0x67, 0xC4, 0x06, 0x3C, 0x50, 0x0F, 0x64, +0x96, 0xAB, 0x4E, 0x25, 0x00, 0x06, 0x94, 0x8F, +0x3C, 0x28, 0x0E, 0x62, 0xD5, 0x28, 0x3C, 0x30, +0x0F, 0x27, 0xCB, 0x0C, 0x3C, 0x00, 0x0F, 0x28, +0xC8, 0x05, 0x86, 0x01, 0x3D, 0x08, 0x0E, 0x64, +0xD5, 0x0F, 0x8E, 0x22, 0x3C, 0x18, 0x0E, 0x65, +0xD5, 0x0B, 0x3C, 0x10, 0x0F, 0x28, 0xC9, 0x05, +0x85, 0xE1, 0x3C, 0xF8, 0x0E, 0x66, 0xD5, 0x04, +0x8E, 0x02, 0x3C, 0x08, 0x0E, 0x67, 0x3C, 0x40, +0x0E, 0x65, 0x3D, 0x10, 0x0E, 0x64, 0x8C, 0x81, +0x3C, 0x00, 0x0E, 0x67, 0x8A, 0x91, 0x3D, 0x20, +0x0E, 0x66, 0x95, 0x67, 0x8C, 0x01, 0x3C, 0x58, +0x0E, 0x62, 0x8A, 0x12, 0x94, 0xC7, 0x3C, 0x38, +0x0E, 0x63, 0xDD, 0x9E, 0x3C, 0x00, 0x0E, 0x94, +0x84, 0x40, 0x3C, 0x10, 0x0E, 0xAF, 0x3C, 0x30, +0x0E, 0x95, 0x3C, 0x40, 0x0E, 0x97, 0x3C, 0x50, +0x0E, 0x96, 0x3C, 0xF0, 0x0E, 0x98, 0x3D, 0x00, +0x0F, 0x26, 0x3D, 0x10, 0x0E, 0xB7, 0x3D, 0x20, +0x0E, 0xB8, 0x3D, 0x30, 0x0F, 0x25, 0x3D, 0x40, +0x0F, 0x37, 0x3D, 0x50, 0x0E, 0xA7, 0x3D, 0x60, +0x0E, 0xAB, 0x3D, 0x70, 0x0E, 0xA8, 0x3D, 0x80, +0x0F, 0x3A, 0x3D, 0x90, 0x0E, 0xA4, 0x3C, 0x08, +0x05, 0x12, 0x3E, 0x20, 0x0A, 0x3B, 0x3C, 0x38, +0x05, 0x13, 0x3C, 0x48, 0x05, 0x14, 0x3C, 0x58, +0x05, 0x15, 0x3C, 0xF8, 0x05, 0x16, 0x3D, 0x08, +0x05, 0x17, 0x3E, 0x10, 0x0A, 0x3A, 0x3D, 0x18, +0x05, 0x1B, 0x3D, 0x28, 0x05, 0x1C, 0x3F, 0x30, +0x0A, 0x3C, 0x3D, 0x48, 0x05, 0x1F, 0x3D, 0x58, +0x05, 0x20, 0x3D, 0x68, 0x05, 0x21, 0x3D, 0x78, +0x05, 0x22, 0x3D, 0x88, 0x05, 0x23, 0x3D, 0x98, +0x05, 0x24, 0x3C, 0x10, 0x0E, 0xB6, 0x2F, 0x07, +0xE1, 0x5D, 0x3C, 0x20, 0x0F, 0xC1, 0x3C, 0x08, +0x05, 0x2A, 0x3C, 0x30, 0x0E, 0xB0, 0x3C, 0x08, +0x05, 0x2B, 0x3C, 0x40, 0x10, 0xD4, 0x3C, 0x08, +0x05, 0x2C, 0x3C, 0x50, 0x0E, 0xB1, 0x84, 0x00, +0x3C, 0xF0, 0x0E, 0x89, 0x3C, 0x18, 0x05, 0x2F, +0x3C, 0x28, 0x05, 0x25, 0x3C, 0x38, 0x05, 0x26, +0x3C, 0x48, 0x05, 0x27, 0x3C, 0x58, 0x05, 0x29, +0x3C, 0x08, 0x05, 0x2D, 0x3C, 0xF8, 0x05, 0x2E, +0x5B, 0x00, 0x02, 0x21, 0x2E, 0x17, 0xE1, 0x60, +0xC1, 0x1D, 0x3D, 0x10, 0x10, 0xA0, 0x3D, 0x20, +0x10, 0xA1, 0x3D, 0x30, 0x10, 0xAF, 0x3D, 0x40, +0x10, 0x9A, 0x3D, 0x50, 0x0F, 0xE8, 0x3D, 0x18, +0x05, 0x2A, 0x3D, 0x28, 0x05, 0x2B, 0x3D, 0x38, +0x05, 0x2F, 0x3D, 0x48, 0x05, 0x16, 0x3D, 0x48, +0x05, 0x15, 0x3D, 0x48, 0x05, 0x14, 0x3D, 0x48, +0x05, 0x13, 0x3D, 0x48, 0x05, 0x12, 0x3D, 0x58, +0x05, 0x17, 0x3C, 0x20, 0x05, 0x09, 0x96, 0xAE, +0xC2, 0x48, 0x3D, 0x60, 0x10, 0xF4, 0x5B, 0x60, +0x01, 0x06, 0x3D, 0x70, 0x10, 0xF4, 0x5B, 0x78, +0x03, 0x22, 0x3D, 0x80, 0x10, 0xFD, 0x3D, 0x90, +0x10, 0xFD, 0x3C, 0x30, 0x10, 0xFE, 0x3C, 0x40, +0x11, 0x03, 0x3C, 0x50, 0x11, 0x12, 0x3C, 0x00, +0x11, 0x11, 0x3D, 0x88, 0x05, 0x16, 0x3D, 0x88, +0x05, 0x15, 0x3D, 0x88, 0x05, 0x14, 0x3D, 0x88, +0x05, 0x13, 0x3D, 0x88, 0x05, 0x12, 0x3D, 0x98, +0x05, 0x17, 0x3C, 0x38, 0x05, 0x1B, 0x3C, 0x48, +0x05, 0x1C, 0x3C, 0x58, 0x05, 0x25, 0x3C, 0x08, +0x05, 0x26, 0x3C, 0x10, 0x10, 0xF4, 0xC1, 0x1D, +0x3C, 0xF0, 0x11, 0x08, 0x3D, 0x10, 0x11, 0x09, +0x3D, 0x20, 0x11, 0x0C, 0x3D, 0x30, 0x11, 0x0A, +0x3D, 0x40, 0x11, 0x06, 0x3D, 0x50, 0x11, 0x12, +0x3C, 0x20, 0x11, 0x11, 0x3C, 0xF8, 0x05, 0x2A, +0x3D, 0x18, 0x05, 0x2B, 0x3D, 0x28, 0x05, 0x2D, +0x3D, 0x38, 0x05, 0x2C, 0x3D, 0x48, 0x05, 0x2E, +0x3D, 0x58, 0x05, 0x25, 0x3C, 0x28, 0x05, 0x26, +0x5B, 0x08, 0x02, 0x11, 0x3D, 0x60, 0x0F, 0xB7, +0x86, 0x00, 0x3D, 0x08, 0x05, 0x27, 0x3D, 0x68, +0x05, 0x16, 0x3D, 0x68, 0x05, 0x15, 0x3D, 0x68, +0x05, 0x14, 0x3D, 0x68, 0x05, 0x13, 0x3D, 0x68, +0x05, 0x12, 0xDD, 0x9E, 0xFC, 0x20, 0x3C, 0x27, +0xF6, 0x74, 0xCA, 0x05, 0x3C, 0x10, 0x05, 0x06, +0x96, 0xCC, 0xCB, 0x12, 0x3C, 0x40, 0x0E, 0x9C, +0x3C, 0x60, 0x0E, 0x4C, 0x97, 0x63, 0xE0, 0xA6, +0xE9, 0x07, 0x2E, 0x70, 0x03, 0x22, 0xCF, 0x04, +0x2E, 0x10, 0x03, 0x2C, 0xC9, 0x07, 0xC8, 0x06, +0x86, 0xC0, 0x3D, 0x6B, 0xF6, 0x75, 0x84, 0x00, +0xD5, 0x69, 0x3C, 0x33, 0xF6, 0x77, 0x3C, 0x50, +0x0E, 0x9E, 0x8C, 0x61, 0x97, 0x19, 0x97, 0xAB, +0xE0, 0xC4, 0x3C, 0x4B, 0xF6, 0x77, 0xE8, 0x0A, +0x3C, 0x70, 0x0E, 0x60, 0x84, 0xA0, 0x94, 0x79, +0x3E, 0x3F, 0xE6, 0xFC, 0x3E, 0x48, 0x0A, 0x60, +0xD5, 0x04, 0x5A, 0x08, 0x01, 0x20, 0xD5, 0xF5, +0xD1, 0x09, 0x99, 0xEC, 0x99, 0xAB, 0x03, 0x53, +0x88, 0xAC, 0x13, 0x53, 0x02, 0xC0, 0x8C, 0xA2, +0xD5, 0xF8, 0x3C, 0x10, 0x0E, 0x61, 0x84, 0xA0, +0x94, 0x49, 0x3E, 0x3F, 0xE6, 0xFC, 0x3E, 0x48, +0x0A, 0x60, 0xD1, 0x09, 0x99, 0xEC, 0x99, 0xAB, +0x03, 0x43, 0x88, 0xCC, 0x13, 0x43, 0x02, 0xE0, +0x8C, 0xA2, 0xD5, 0xF8, 0x85, 0x00, 0x3C, 0x8B, +0xF6, 0x77, 0x3C, 0x30, 0x05, 0x06, 0x96, 0xE6, +0xC3, 0x05, 0x2E, 0x47, 0xF3, 0xC3, 0xC4, 0x02, +0xC0, 0xC0, 0x3C, 0x53, 0xF6, 0x75, 0x3C, 0x70, +0x0E, 0x9E, 0x8C, 0xA1, 0x97, 0xA9, 0x96, 0x7B, +0xE0, 0x26, 0x3C, 0x6B, 0xF6, 0x75, 0xE8, 0x09, +0x3D, 0x10, 0x0E, 0x5D, 0x86, 0x00, 0x3E, 0x3F, +0xE6, 0xFC, 0x3E, 0x48, 0x0A, 0x60, 0xD5, 0x04, +0x5A, 0x08, 0x01, 0xAF, 0xD5, 0xF6, 0xE1, 0x91, +0xE8, 0x09, 0x41, 0x22, 0x40, 0x20, 0x03, 0x39, +0x05, 0xEC, 0x39, 0x31, 0xC1, 0x09, 0x8D, 0x81, +0xD5, 0xF7, 0x84, 0x00, 0x3C, 0x0B, 0xF6, 0x75, +0x4E, 0x27, 0x00, 0x05, 0x8E, 0x41, 0x3C, 0x2B, +0xF6, 0x74, 0x84, 0x41, 0x3E, 0x27, 0xEC, 0xFB, +0x84, 0x01, 0xFC, 0xA0, 0x96, 0x03, 0x3C, 0x53, +0xF0, 0xA7, 0x3C, 0x30, 0x0E, 0x69, 0x84, 0x40, +0x9C, 0x41, 0x3C, 0x0B, 0xF6, 0x74, 0x3C, 0x1F, +0xFC, 0xE1, 0x3C, 0x2B, 0xF9, 0xC4, 0x3E, 0x27, +0xEC, 0xFB, 0xDB, 0x09, 0x3C, 0x53, 0xF0, 0xA8, +0x3C, 0x40, 0x0E, 0x6B, 0xDC, 0x04, 0x2E, 0x17, +0xE1, 0x52, 0xC9, 0x09, 0x85, 0xE0, 0x86, 0x00, +0x3E, 0xF7, 0xE1, 0x52, 0x3D, 0x0B, 0xF0, 0xA7, +0x3C, 0x0B, 0xF0, 0xAA, 0xDD, 0x9E, 0x3E, 0x0F, +0xF3, 0xA4, 0x84, 0x20, 0x84, 0x40, 0x10, 0x10, +0x00, 0x13, 0x10, 0x10, 0x00, 0x15, 0x10, 0x10, +0x00, 0x14, 0x10, 0x10, 0x00, 0x12, 0x10, 0x10, +0x00, 0x1F, 0x10, 0x10, 0x00, 0x1E, 0x3C, 0x28, +0x05, 0x19, 0xDD, 0x9E, 0xFC, 0x00, 0x3C, 0x00, +0x0E, 0x8B, 0x3C, 0x10, 0x0F, 0x91, 0x3C, 0x20, +0x0F, 0x92, 0x3C, 0x30, 0x0F, 0x93, 0x3C, 0x08, +0x05, 0x06, 0x3C, 0x18, 0x05, 0x07, 0x3C, 0x28, +0x05, 0x08, 0x3C, 0x38, 0x05, 0x09, 0x84, 0xC0, +0x80, 0x06, 0x8C, 0xC1, 0x49, 0xFF, 0xDA, 0xB6, +0x5A, 0x68, 0x0F, 0xFC, 0x3C, 0x40, 0x0E, 0xD4, +0x3C, 0x50, 0x0E, 0xD5, 0x3C, 0xF0, 0x0E, 0xD9, +0x3C, 0x48, 0x0E, 0x60, 0x3C, 0x48, 0x0E, 0x5E, +0x3C, 0x58, 0x0E, 0x61, 0x3C, 0x58, 0x0E, 0x5F, +0x5A, 0xF8, 0x01, 0x08, 0x9C, 0x21, 0x9C, 0x69, +0x3C, 0x08, 0x0E, 0x60, 0x3C, 0x18, 0x0E, 0x61, +0x3D, 0x00, 0x0E, 0xD9, 0x5B, 0x08, 0x02, 0x07, +0x9C, 0xA1, 0x3C, 0x28, 0x0E, 0x60, 0x3C, 0x58, +0x0E, 0x61, 0xFF, 0x2C, 0x3C, 0x48, 0x0E, 0x5D, +0x87, 0x80, 0x49, 0xFF, 0xFD, 0xE3, 0x84, 0x00, +0x3D, 0xCB, 0xED, 0x8C, 0x49, 0xFF, 0xFC, 0x19, +0x3C, 0x30, 0x0E, 0xEF, 0x3D, 0xCB, 0xF9, 0xF1, +0x97, 0x9B, 0x4E, 0x66, 0x00, 0x04, 0x84, 0x01, +0xD5, 0x04, 0x3C, 0x40, 0x0E, 0xEF, 0x96, 0x23, +0x87, 0x80, 0x49, 0xFF, 0xFF, 0x7D, 0x3F, 0xC7, +0xEC, 0xFA, 0x49, 0xFF, 0xFF, 0x9A, 0x3D, 0x30, +0x0F, 0x65, 0x3C, 0x50, 0x0F, 0x46, 0x86, 0x20, +0x86, 0x41, 0x3D, 0x1B, 0xF9, 0xD8, 0x3F, 0x20, +0x03, 0x2C, 0x3D, 0x18, 0x01, 0x95, 0x3D, 0x1B, +0xF6, 0x81, 0x3D, 0x1B, 0xF6, 0x82, 0x3F, 0x17, +0xED, 0x16, 0x3D, 0x1B, 0xF0, 0xAD, 0x3F, 0xC7, +0xF3, 0xDF, 0x3F, 0xC7, 0xF3, 0xE0, 0x3D, 0x18, +0x05, 0x11, 0x3D, 0x1B, 0xF6, 0x86, 0x3D, 0x38, +0x05, 0x0A, 0xCD, 0x06, 0x3C, 0x00, 0x0F, 0x34, +0x96, 0x43, 0x3C, 0x18, 0x0F, 0x46, 0x3C, 0x20, +0x0E, 0xE5, 0xCA, 0x06, 0x3C, 0x30, 0x0F, 0x35, +0x97, 0x9B, 0x3C, 0x68, 0x0E, 0xE5, 0x86, 0x80, +0x86, 0xC0, 0x86, 0xA2, 0x3F, 0x47, 0xED, 0x22, +0x3F, 0x57, 0xED, 0x23, 0x3F, 0x47, 0xED, 0x20, +0x3D, 0x68, 0x10, 0xF4, 0x3D, 0x6B, 0xF9, 0xE5, +0x49, 0xFF, 0xFD, 0xD6, 0xFC, 0x80, 0xFC, 0x60, +0x3C, 0x70, 0x0E, 0x84, 0x00, 0x6F, 0x80, 0x30, +0x97, 0xFB, 0xE4, 0xEB, 0x01, 0x1F, 0x80, 0x34, +0x02, 0xAF, 0x80, 0x2A, 0x02, 0x9F, 0x80, 0x2C, +0xE9, 0x0C, 0x3C, 0x70, 0x0E, 0x84, 0x97, 0xFB, +0xE4, 0xEF, 0xE8, 0x07, 0x9F, 0xF3, 0xE6, 0xE2, +0xE9, 0x0E, 0x44, 0xA0, 0x04, 0x44, 0x86, 0x20, +0xCE, 0x03, 0xE2, 0xC5, 0xD5, 0x3E, 0x5A, 0x68, +0x01, 0x0C, 0x84, 0xC0, 0xE2, 0xC5, 0x82, 0x46, +0x80, 0xA6, 0xD5, 0x0C, 0x44, 0xA0, 0x01, 0x41, +0x86, 0x20, 0x44, 0x90, 0x00, 0x55, 0x5A, 0x68, +0x02, 0x0C, 0x84, 0xC0, 0xE2, 0xC5, 0xFA, 0xAF, +0x82, 0x45, 0x47, 0x50, 0x20, 0x40, 0x50, 0xCA, +0x84, 0x0C, 0x85, 0xCA, 0xD5, 0x38, 0x86, 0x00, +0x5A, 0x68, 0x03, 0x11, 0x51, 0x34, 0xFF, 0xAB, +0x47, 0x41, 0x21, 0x21, 0x40, 0x68, 0x4C, 0x06, +0x50, 0xCA, 0x03, 0x13, 0xC5, 0x23, 0x80, 0xB0, +0x82, 0x50, 0x44, 0xE0, 0x00, 0xD7, 0x85, 0xEA, +0xD5, 0x26, 0x5A, 0x68, 0x04, 0x11, 0x50, 0xB4, +0xFF, 0xAB, 0x46, 0xD1, 0x21, 0x21, 0x40, 0x68, +0x2C, 0x06, 0x50, 0xC6, 0x83, 0x13, 0xC5, 0x17, +0x80, 0xB0, 0x82, 0x50, 0x44, 0xE0, 0x00, 0xD7, +0x85, 0xEF, 0xD5, 0x15, 0xE3, 0x85, 0x80, 0xD0, +0x46, 0x80, 0x20, 0x40, 0x80, 0xA6, 0xFB, 0xCF, +0x50, 0xC4, 0x04, 0x05, 0x44, 0xE0, 0x00, 0xEA, +0xD5, 0x0A, 0x82, 0x45, 0x44, 0xE0, 0x00, 0xD7, +0x85, 0xEB, 0xD5, 0x05, 0x82, 0x45, 0x44, 0xE0, +0x00, 0xD7, 0x85, 0xEE, 0x86, 0xC7, 0x4F, 0x12, +0x00, 0x09, 0x86, 0xC3, 0x5B, 0x10, 0x01, 0x06, +0x86, 0xC6, 0x5B, 0x18, 0x02, 0x03, 0x86, 0xC1, +0x3D, 0x1C, 0x07, 0x38, 0x01, 0x9F, 0x80, 0x3C, +0x40, 0x88, 0x80, 0x40, 0x01, 0xCF, 0x80, 0x38, +0x02, 0x7F, 0x80, 0x20, 0x02, 0x0F, 0x80, 0x24, +0x3D, 0x8C, 0x07, 0x39, 0x41, 0xEE, 0x65, 0x04, +0x02, 0xBF, 0x80, 0x22, 0x03, 0x3F, 0x80, 0x26, +0x86, 0xE0, 0x41, 0x0F, 0x1E, 0x04, 0x40, 0xD5, +0x82, 0x04, 0x40, 0xE9, 0xBA, 0x04, 0x40, 0x63, +0x60, 0x08, 0x15, 0x7C, 0x00, 0x01, 0x40, 0xF3, +0x3F, 0x84, 0xB7, 0x88, 0x14, 0xD4, 0x00, 0x01, +0x14, 0xE4, 0x00, 0x02, 0x14, 0xC4, 0x00, 0x03, +0x02, 0xCF, 0x80, 0x28, 0x40, 0x21, 0x3C, 0x08, +0x01, 0x4F, 0x80, 0x5C, 0x41, 0x27, 0xC8, 0x04, +0x40, 0xA5, 0x32, 0x84, 0x40, 0x41, 0x12, 0x04, +0x40, 0x59, 0x15, 0x04, 0x40, 0x31, 0xF4, 0x08, +0x40, 0x95, 0x25, 0x84, 0x41, 0x52, 0x53, 0x84, +0x41, 0x62, 0xDB, 0x24, 0x40, 0x11, 0x87, 0xE4, +0x14, 0x94, 0x00, 0x04, 0x15, 0x54, 0x00, 0x05, +0x15, 0x64, 0x00, 0x06, 0x14, 0x14, 0x00, 0x07, +0xFC, 0xE0, 0xFC, 0x26, 0x84, 0x40, 0x3D, 0x00, +0x0E, 0x5E, 0x3C, 0x40, 0x0E, 0x5F, 0x80, 0x62, +0x3F, 0x18, 0x1C, 0xE8, 0x3E, 0x78, 0x0A, 0x60, +0xE0, 0x70, 0xE8, 0x2B, 0x84, 0x20, 0xE0, 0x24, +0xE8, 0x19, 0x40, 0x80, 0x84, 0x0A, 0x51, 0x24, +0x02, 0x50, 0x97, 0x8C, 0x38, 0x08, 0xC9, 0x01, +0xC6, 0x04, 0x96, 0x03, 0x90, 0x08, 0xD5, 0x02, +0x96, 0x00, 0xE4, 0x16, 0xE8, 0x09, 0x99, 0x4A, +0x41, 0x33, 0x94, 0x20, 0x02, 0x59, 0x80, 0x00, +0xB1, 0x81, 0x38, 0x53, 0x01, 0x09, 0x8C, 0x21, +0xD5, 0xE7, 0x84, 0x00, 0xE0, 0x04, 0xE8, 0x0A, +0x99, 0x42, 0xB0, 0x41, 0x40, 0x63, 0x94, 0x20, +0x38, 0x50, 0x81, 0x11, 0xAD, 0x70, 0x8C, 0x01, +0xD5, 0xF6, 0x8C, 0x61, 0x88, 0x44, 0xD5, 0xD5, +0xFC, 0xA6, 0xFC, 0x28, 0x49, 0xFF, 0xE2, 0xC2, +0x3C, 0x0C, 0x07, 0x39, 0x84, 0x20, 0xA8, 0x41, +0x3C, 0x20, 0x11, 0x48, 0x3E, 0x38, 0x1C, 0xE8, +0x96, 0x8E, 0x97, 0x51, 0x3E, 0x18, 0x0A, 0x60, +0xC5, 0x1E, 0x3C, 0x70, 0x11, 0x48, 0x96, 0x3C, +0xC0, 0x02, 0xFA, 0x10, 0x3C, 0x8C, 0x07, 0x38, +0x84, 0x40, 0x99, 0x50, 0x51, 0x12, 0x8F, 0x00, +0x39, 0x24, 0x45, 0x01, 0x3D, 0x30, 0x0F, 0xDA, +0x50, 0xF1, 0x05, 0xA0, 0x40, 0x49, 0x4C, 0x0D, +0x41, 0x00, 0xBC, 0x20, 0x97, 0xA1, 0x8C, 0x41, +0x12, 0x68, 0x00, 0x00, 0x5A, 0x28, 0x16, 0xEF, +0x84, 0xE0, 0xD5, 0x0A, 0x80, 0x85, 0x50, 0x62, +0x8B, 0x40, 0x88, 0xC1, 0x8C, 0xA2, 0xAD, 0x30, +0x5A, 0x58, 0x2C, 0xFB, 0xD5, 0xF6, 0x41, 0x43, +0x84, 0x0A, 0x51, 0x5A, 0x02, 0x50, 0x96, 0xBC, +0x38, 0x01, 0xD5, 0x01, 0xC2, 0x04, 0x97, 0x43, +0x90, 0xA8, 0xD5, 0x02, 0x97, 0x40, 0xE4, 0xB6, +0xE8, 0x09, 0x51, 0x63, 0x85, 0xA0, 0x41, 0x70, +0xD8, 0x20, 0x02, 0x4B, 0x80, 0x00, 0x38, 0x4F, +0x95, 0x09, 0x8C, 0xE1, 0x5A, 0x78, 0x16, 0xE9, +0x85, 0x00, 0x51, 0x04, 0x0B, 0x40, 0x38, 0x64, +0x7C, 0x11, 0x89, 0x81, 0x8D, 0x02, 0x12, 0x68, +0x00, 0x00, 0x5A, 0x88, 0x2C, 0xF8, 0x3C, 0x70, +0x11, 0x48, 0x96, 0x3C, 0xC0, 0x1A, 0x3D, 0x8C, +0x07, 0x38, 0x86, 0x40, 0x51, 0x39, 0x0F, 0x00, +0x38, 0x2C, 0x4D, 0x01, 0x3D, 0x40, 0x0F, 0xC4, +0x51, 0x99, 0x05, 0x80, 0x40, 0x41, 0x50, 0x0D, +0x41, 0xE0, 0xE4, 0x20, 0x97, 0xA1, 0x8D, 0xC1, +0x12, 0x6F, 0x00, 0x00, 0x5B, 0x28, 0x20, 0xF0, +0x84, 0xE0, 0x3E, 0x58, 0x15, 0x60, 0xD5, 0x0B, +0x80, 0xA0, 0x51, 0x10, 0x0B, 0x00, 0x89, 0xA1, +0x8C, 0x02, 0x12, 0x58, 0x80, 0x00, 0x5A, 0x08, +0x40, 0xFA, 0xD5, 0xF3, 0x41, 0x53, 0x84, 0x0A, +0x50, 0xFA, 0x82, 0x40, 0x96, 0xBC, 0x38, 0x01, +0xBD, 0x01, 0xC2, 0x04, 0x97, 0x03, 0x90, 0x88, +0xD5, 0x02, 0x97, 0x00, 0x5E, 0xF2, 0x00, 0x20, +0xE8, 0x07, 0x41, 0x62, 0x90, 0x20, 0x02, 0x6B, +0x00, 0x00, 0x38, 0x6F, 0x9D, 0x09, 0x8C, 0xE1, +0x5A, 0x78, 0x20, 0xEA, 0x85, 0x00, 0x51, 0x04, +0x0B, 0x00, 0x38, 0x3F, 0xA0, 0x11, 0x89, 0x81, +0x8D, 0x02, 0x12, 0x38, 0x00, 0x00, 0x5A, 0x88, +0x40, 0xF8, 0xFC, 0xA8, 0xFC, 0x20, 0x80, 0xC0, +0x49, 0xFF, 0xE2, 0x1C, 0x3C, 0x0C, 0x07, 0x39, +0x84, 0xA0, 0xA9, 0x41, 0x3C, 0x10, 0x0E, 0x84, +0x3D, 0x8C, 0x07, 0x38, 0x5A, 0x18, 0x09, 0x1A, +0x3C, 0x10, 0x0E, 0x5F, 0x81, 0x05, 0x9E, 0xC9, +0x53, 0xC0, 0x80, 0x16, 0x3E, 0x48, 0x0A, 0x60, +0xE1, 0x06, 0x4E, 0xF2, 0x00, 0xB5, 0x51, 0xE2, +0x8F, 0x36, 0x39, 0x0C, 0x79, 0x01, 0x39, 0x02, +0x21, 0x09, 0xDB, 0x04, 0x50, 0x32, 0x80, 0x16, +0x88, 0xBC, 0x8C, 0xA1, 0x8D, 0x01, 0xD5, 0xF1, +0x3C, 0x20, 0x0E, 0xD9, 0x5A, 0x28, 0x01, 0x0A, +0x3C, 0x60, 0x0E, 0x5E, 0x3C, 0x30, 0x0E, 0x5F, +0x8C, 0xC1, 0x8C, 0x61, 0xFF, 0x9C, 0x97, 0xB1, +0x3C, 0x50, 0x0E, 0xD9, 0x5A, 0x58, 0x02, 0x09, +0x3C, 0x70, 0x0E, 0x5E, 0x3C, 0x00, 0x0E, 0x5F, +0x8C, 0xE1, 0xFF, 0xC4, 0x97, 0xB9, 0x3C, 0x10, +0x0E, 0x61, 0x84, 0xA0, 0x9F, 0xC9, 0x53, 0x20, +0x80, 0x16, 0x81, 0x05, 0x3F, 0x08, 0x0A, 0x60, +0xE1, 0x06, 0xE8, 0x26, 0x3C, 0x40, 0x0E, 0x84, +0x41, 0x44, 0x04, 0x08, 0x96, 0xE3, 0xE4, 0x6B, +0xE9, 0x0B, 0x3C, 0x00, 0x0E, 0x84, 0x96, 0x83, +0xE4, 0x4F, 0xE8, 0x06, 0x51, 0x92, 0x8F, 0x36, +0x39, 0x1C, 0x65, 0x01, 0xD5, 0x0C, 0x51, 0x32, +0x8A, 0x80, 0x39, 0x5C, 0x4E, 0x02, 0x3D, 0x60, +0x0F, 0x9F, 0x3D, 0x70, 0x10, 0x68, 0x41, 0x1A, +0xD8, 0x0D, 0x89, 0xB7, 0x39, 0x18, 0x50, 0x09, +0xDF, 0x04, 0x50, 0x72, 0x80, 0x16, 0x88, 0xB2, +0x8C, 0xA1, 0x8D, 0x01, 0xD5, 0xDA, 0x3C, 0x80, +0x0E, 0xD9, 0x5A, 0x80, 0x01, 0x1F, 0x3D, 0x00, +0x0E, 0xD9, 0x5B, 0x08, 0x02, 0x46, 0x3C, 0x60, +0x0E, 0x5E, 0x3C, 0x00, 0x0F, 0xD8, 0x8E, 0xC1, +0xFF, 0x8C, 0x96, 0xC3, 0x3C, 0x50, 0x0F, 0xD8, +0x3E, 0x28, 0x0A, 0x60, 0x88, 0x66, 0x39, 0x31, +0x0D, 0x01, 0x97, 0xEB, 0x88, 0x26, 0x39, 0x31, +0x19, 0x09, 0x88, 0x27, 0x39, 0x41, 0x05, 0x01, +0x8C, 0x42, 0x39, 0x41, 0x19, 0x09, 0xD5, 0x2C, +0x3D, 0x90, 0x0E, 0x5E, 0x3C, 0x60, 0x0E, 0x5F, +0x50, 0x2C, 0xFF, 0xFF, 0xFE, 0x8C, 0x3E, 0x08, +0x0A, 0x60, 0x98, 0xD6, 0x39, 0x10, 0x0D, 0x01, +0x99, 0x4A, 0x39, 0x10, 0x09, 0x09, 0x88, 0xA6, +0x39, 0x20, 0x15, 0x01, 0x9D, 0xC2, 0x39, 0x23, +0x89, 0x09, 0x84, 0x40, 0x41, 0xC3, 0x04, 0x08, +0x82, 0x22, 0xE1, 0xB9, 0xE8, 0xC9, 0x80, 0x62, +0x84, 0xE0, 0x41, 0x70, 0x44, 0x20, 0xE0, 0xE6, +0xE8, 0x08, 0x39, 0xEB, 0x8C, 0x01, 0x39, 0xE0, +0x0C, 0x09, 0x8C, 0xE1, 0x8C, 0x62, 0xD5, 0xF8, +0x8D, 0xA1, 0x88, 0x5C, 0xD5, 0xEF, 0x84, 0x20, +0x85, 0x02, 0x41, 0x5C, 0x20, 0x40, 0x05, 0x6A, +0x8F, 0xC0, 0xE2, 0x36, 0xE8, 0x03, 0x04, 0x1A, +0x8F, 0xC0, 0x8D, 0x01, 0x5A, 0x88, 0x21, 0xF7, +0x04, 0x4C, 0x0F, 0xE1, 0x3C, 0x18, 0x0E, 0x4B, +0x3C, 0x48, 0x0E, 0x4A, 0xFC, 0xA0, 0xFC, 0x20, +0x80, 0xC0, 0x3C, 0x00, 0x10, 0xF4, 0xC8, 0x04, +0x3C, 0x50, 0x05, 0x27, 0xD5, 0x0E, 0x3C, 0x20, +0x10, 0xF4, 0x5A, 0x20, 0x01, 0x06, 0x3C, 0x30, +0x10, 0xF4, 0x5A, 0x38, 0x03, 0x05, 0x3C, 0x50, +0x11, 0x00, 0xD5, 0x03, 0x3C, 0x50, 0x11, 0x0E, +0xC5, 0x49, 0x3C, 0x40, 0x10, 0xD9, 0x3C, 0x70, +0x10, 0xDA, 0x3C, 0x00, 0x0E, 0xD9, 0x96, 0xE3, +0x96, 0x83, 0x3D, 0x00, 0x0E, 0x5F, 0x97, 0x3B, +0x5A, 0x20, 0x01, 0x3B, 0x3C, 0x80, 0x0E, 0xD9, +0x5A, 0x80, 0x02, 0x39, 0x97, 0x21, 0xC4, 0x1A, +0x54, 0x72, 0x80, 0x10, 0xC7, 0x17, 0x40, 0x03, +0x40, 0x57, 0xFF, 0x0C, 0x96, 0x11, 0x50, 0xF0, +0x02, 0xE0, 0x3E, 0x78, 0x03, 0x4C, 0x45, 0x20, +0x00, 0x64, 0x39, 0x13, 0xBD, 0x11, 0x41, 0x32, +0x4A, 0x76, 0x86, 0xA0, 0x41, 0x49, 0xC4, 0x07, +0x41, 0x6A, 0xC4, 0x07, 0x40, 0x0A, 0x58, 0x02, +0xD5, 0x02, 0x84, 0x01, 0x97, 0x19, 0xC4, 0x1B, +0x97, 0x6E, 0xC5, 0x19, 0x41, 0x73, 0x42, 0xF7, +0xFF, 0x0C, 0x51, 0x8B, 0x82, 0xC0, 0x3E, 0x68, +0x03, 0x4C, 0x44, 0x10, 0x00, 0x64, 0x39, 0x93, +0x61, 0x11, 0x41, 0xC2, 0x07, 0x96, 0x87, 0xC0, +0x40, 0x5E, 0x64, 0x07, 0x40, 0x3F, 0x64, 0x07, +0xFF, 0x5E, 0xFE, 0x2E, 0xD5, 0x04, 0x80, 0x02, +0xD5, 0x02, 0x84, 0x01, 0xFC, 0xA0, 0xFC, 0x61, +0x84, 0xFF, 0x81, 0xA0, 0x81, 0x3F, 0x3A, 0x1F, +0x88, 0x20, 0x81, 0xC3, 0x3C, 0x8C, 0x02, 0x7A, +0x81, 0x67, 0x81, 0x87, 0x84, 0xC0, 0x3F, 0xCF, +0xFF, 0x08, 0xE0, 0xCD, 0xE8, 0x19, 0x40, 0x2E, +0x18, 0x20, 0x22, 0xA1, 0x01, 0xB8, 0x4E, 0xA5, +0x00, 0x12, 0x80, 0x0A, 0x3A, 0x14, 0x88, 0x00, +0x49, 0xFF, 0xBB, 0xCD, 0x5A, 0x08, 0x01, 0x0B, +0x38, 0x34, 0x29, 0x11, 0xE0, 0xE3, 0xE8, 0x06, +0xE0, 0x6E, 0xE9, 0x04, 0x81, 0x8A, 0x80, 0xE3, +0x81, 0x66, 0x8C, 0xC1, 0xD5, 0xE7, 0x5A, 0xB7, +0xFF, 0x07, 0x84, 0x3F, 0x3E, 0x08, 0x02, 0x78, +0x38, 0x10, 0x2D, 0x09, 0x80, 0x0C, 0xFC, 0xE1, +0xFC, 0x41, 0x3C, 0x70, 0x05, 0x06, 0x81, 0x20, +0x54, 0x03, 0xC0, 0x00, 0x97, 0xC1, 0x85, 0x40, +0xCF, 0x0A, 0x3C, 0x64, 0x04, 0xFF, 0x3C, 0x10, +0x05, 0x2D, 0x44, 0x50, 0x00, 0x64, 0xFF, 0x8C, +0x40, 0xA3, 0x15, 0x56, 0x3C, 0x40, 0x05, 0x2A, +0x3C, 0x14, 0x05, 0x01, 0x42, 0x55, 0x10, 0x00, +0x3C, 0x24, 0x0E, 0x64, 0x3C, 0x34, 0x0E, 0x65, +0xB7, 0x3F, 0x3E, 0x08, 0x09, 0x38, 0x3E, 0x48, +0x02, 0xC8, 0x97, 0x69, 0x49, 0xFF, 0xCD, 0x79, +0x3E, 0x00, 0x03, 0x1F, 0xCF, 0x0A, 0x3C, 0x24, +0x04, 0xFC, 0x3C, 0x30, 0x05, 0x2D, 0x44, 0x80, +0x00, 0x64, 0xFE, 0x9C, 0x40, 0xA1, 0x21, 0x56, +0x3C, 0xF0, 0x05, 0x2B, 0x3C, 0x14, 0x04, 0xFE, +0x42, 0x75, 0x3C, 0x00, 0x3C, 0x24, 0x0E, 0x66, +0x3C, 0x34, 0x0E, 0x67, 0xB7, 0x3F, 0x3E, 0x08, +0x09, 0x78, 0x3E, 0x48, 0x02, 0xF0, 0x97, 0x79, +0x49, 0xFF, 0xCD, 0x5B, 0x3E, 0x00, 0x03, 0x20, +0xC0, 0x36, 0x2E, 0x00, 0x03, 0x1F, 0xC0, 0x33, +0x3D, 0x04, 0x04, 0xFE, 0x3D, 0x64, 0x05, 0x01, +0x3D, 0x70, 0x0E, 0x5F, 0x82, 0x30, 0x43, 0x1B, +0xD8, 0x73, 0x3E, 0x5F, 0xFF, 0x08, 0x3D, 0x18, +0x01, 0x50, 0x84, 0x20, 0x84, 0x01, 0x51, 0x32, +0x83, 0x98, 0x2F, 0x20, 0x03, 0x1F, 0xE0, 0x32, +0xE8, 0x1D, 0x3E, 0x28, 0x02, 0xF0, 0x41, 0x42, +0x84, 0x20, 0x85, 0x20, 0x2F, 0x50, 0x03, 0x20, +0xE1, 0x35, 0xE8, 0x12, 0x23, 0x8A, 0x01, 0xE0, +0x4D, 0x6C, 0x40, 0x06, 0x23, 0x91, 0x00, 0x00, +0x4D, 0x98, 0x00, 0x08, 0xA5, 0x90, 0x42, 0x6B, +0xE0, 0x73, 0x38, 0x69, 0x81, 0x09, 0x8C, 0x01, +0x8D, 0x21, 0x8C, 0x42, 0xD5, 0xEC, 0x8C, 0x21, +0xD5, 0xE1, 0x96, 0x00, 0xFC, 0xC1, 0x00, 0x00, +0x80, 0x60, 0x99, 0x5A, 0xD3, 0x04, 0x18, 0x11, +0x80, 0x01, 0xD5, 0xFD, 0xDD, 0x9E, 0x92, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x02, 0x00, +0x00, 0x00, 0x05, 0x00, 0x19, 0x00, 0xF4, 0x91, +0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, +0x49, 0x5A, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, +0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, +0x50, 0x00, 0x0A, 0x00, 0x19, 0x00, 0x00, 0x00, +0x1E, 0x00, 0x23, 0x00, 0x1E, 0x00, 0x01, 0x00, +0xE8, 0x03, 0x02, 0x00, 0x00, 0x00, 0x64, 0x00, +0x00, 0x02, 0x64, 0x00, 0x64, 0x00, 0x1C, 0x08, +0x0F, 0x00, 0xF4, 0x01, 0x24, 0x00, 0x20, 0x80, +0x2D, 0x00, 0xC8, 0x00, 0xD0, 0x07, 0x02, 0x00, +0x09, 0x00, 0x64, 0x00, 0x19, 0x00, 0xF4, 0x01, +0x00, 0x00, 0x05, 0x00, 0x96, 0x00, 0x00, 0x00, +0x00, 0x00, 0xC8, 0x00, 0xC8, 0x00, 0x96, 0x00, +0x2C, 0x01, 0xE8, 0x03, 0x50, 0x00, 0x96, 0x00, +0x02, 0x00, 0x04, 0x00, 0x2C, 0x01, 0x64, 0x00, +0x1E, 0x00, 0x32, 0x00, 0x96, 0x00, 0x96, 0x00, +0xC0, 0x12, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, +0x1E, 0x00, 0x0A, 0x00, 0x04, 0x00, 0x01, 0x00, +0x05, 0x00, 0x05, 0x00, 0xE8, 0x03, 0x32, 0x00, +0x20, 0x00, 0x16, 0x00, 0x03, 0x00, 0x20, 0x00, +0x20, 0x00, 0x00, 0x00, 0x6A, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x00, 0x00, 0x00, 0x05, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x0A, 0x00, 0xAC, 0x0D, 0x14, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0x9C, 0xFF, 0x03, 0x00, +0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x64, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x02, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, +0x1F, 0x00, 0x01, 0x00, 0x06, 0x00, 0x0F, 0x00, +0x00, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, +0x20, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x04, 0x00, 0x32, 0x00, 0x78, 0x00, 0x32, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, +0x44, 0x00, 0x40, 0x00, 0xD0, 0x02, 0x0F, 0x00, +0xB8, 0x0B, 0x05, 0x00, 0x04, 0x00, 0x03, 0x00, +0x03, 0x00, 0x3C, 0x00, 0x2C, 0x01, 0x64, 0x00, +0x64, 0x00, 0x28, 0x00, 0x23, 0x00, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x70, 0x17, 0x64, 0x00, +0x3C, 0x00, 0x1E, 0x00, 0xFF, 0xFF, 0xD8, 0xFF, +0x28, 0x00, 0xFF, 0xFF, 0x1E, 0x00, 0x00, 0x00, +0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, +0x0F, 0x80, 0x00, 0x00, 0x19, 0x00, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x0F, 0x00, 0xB8, 0x0B, 0x32, 0x00, 0xD0, 0x07, +0xE6, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xB8, 0x0B, 0x5C, 0x00, 0xFF, 0xFF, +0xB8, 0x0B, 0x48, 0xF4, 0xE8, 0x03, 0x19, 0x00, +0x64, 0x00, 0xB8, 0x0B, 0x64, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x1F, 0x12, 0x20, 0x80, +0x1E, 0x00, 0xFF, 0xFF, 0x10, 0x00, 0x44, 0x00, +0x4D, 0x00, 0xFF, 0xFF, 0x90, 0x01, 0x64, 0x00, +0xFF, 0xFF, 0x20, 0x01, 0x02, 0x00, 0x04, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0x09, 0x00, 0x07, 0x00, +0x0F, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, +0x05, 0x00, 0x30, 0x75, 0x00, 0x00, 0x01, 0x00, +0xFF, 0xFF, 0x0F, 0x00, 0xCE, 0x20, 0x30, 0x75, +0x30, 0x75, 0xFA, 0x00, 0xFF, 0xFF, 0xDC, 0x05, +0x0A, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, +0x0A, 0x00, 0x30, 0x75, 0x01, 0x00, 0x30, 0x75, +0x00, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00, 0x00, +0x00, 0x01, 0x60, 0x00, 0x0A, 0x00, 0x28, 0x00, +0x50, 0x00, 0x1E, 0x00, 0xFF, 0xFF, 0x00, 0x00, +0x32, 0x00, 0xFF, 0xFF, 0xE8, 0x03, 0x01, 0x00, +0x08, 0x08, 0x30, 0x00, 0x28, 0x00, 0x64, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x0F, 0x00, +0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, +0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0xFF, 0xFF, +0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, +0x10, 0x00, 0xDC, 0x05, 0x00, 0x00, 0xE0, 0x2E, +0x7D, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x05, 0x00, +0xFF, 0xFF, 0x5F, 0x00, 0xBF, 0x00, 0x02, 0x00, +0x03, 0x00, 0x19, 0x00, 0x19, 0x00, 0x00, 0x00, +0x96, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x02, 0x00, +0x1E, 0x00, 0x64, 0x00, 0x11, 0x00, 0x53, 0x00, +0x08, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x15, 0x00, +0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x2C, 0x01, 0x0A, 0x00, +0x03, 0x00, 0x03, 0x00, 0xB8, 0x0B, 0x28, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xC8, 0x00, 0x38, 0xFF, 0x12, 0x00, 0x13, 0x00, +0x14, 0x00, 0x15, 0x00, 0x16, 0x00, 0x17, 0x00, +0x18, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, +0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x1F, 0x00, +0x20, 0x00, 0x21, 0x00, 0x0A, 0x00, 0x23, 0x01, +0x10, 0x27, 0x98, 0x3A, 0x26, 0x00, 0x27, 0x00, +0x28, 0x00, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, +0x03, 0x00, 0x02, 0x00, 0x24, 0x00, 0x40, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x01, 0x00, 0x04, 0x00, 0xA4, 0x91, 0x20, 0x01, +0x0A, 0x00, 0x04, 0x00, 0x28, 0x00, 0x5A, 0x00, +0x02, 0x03, 0x0A, 0x00, 0x28, 0x00, 0x96, 0x00, +0x50, 0x00, 0x50, 0x00, 0x1E, 0x00, 0x03, 0x00, +0x08, 0x00, 0x5E, 0x01, 0xB8, 0x0B, 0x96, 0x00, +0x64, 0x00, 0x05, 0x00, 0xFA, 0x00, 0x02, 0x00, +0x07, 0x00, 0x96, 0x00, 0x32, 0x00, 0x2C, 0x01, +0x66, 0xBC, 0x27, 0xA4, 0x1F, 0xDE, 0x31, 0x00, +0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, +0x08, 0x09, 0x0A, 0x16, 0x17, 0x18, 0x19, 0x1A, +0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x0B, 0x0C, 0x0D, +0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, +0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, +0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, +0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x60, 0x46, +0x8A, 0x03, 0xC6, 0x97, 0xDD, 0xBB, 0xA0, 0x85, +0x33, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x14, 0x00, +0x14, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0xFF, 0xFF, +0xFF, 0xFF, 0x64, 0x00, 0xFE, 0x07, 0x06, 0x00, +0x1E, 0x00, 0x1E, 0x00, 0x84, 0x85, 0xC4, 0x5C, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xB2, 0x26, 0xF4, 0xD4, +0x18, 0x87, 0x75, 0x36, 0x27, 0x2C, 0x5D, 0xB2, +0x46, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x04, 0x00, +0xFF, 0xFF, 0x20, 0x01, 0x32, 0x00, 0x03, 0x00, +0x3C, 0x00, 0x64, 0x00, 0x46, 0x00, 0xC8, 0x00, +0x02, 0x00, 0x96, 0x00, 0x32, 0x00, 0x02, 0x03, +0x33, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x14, 0x00, +0xB8, 0x0B, 0x50, 0x00, 0x01, 0x00, 0x78, 0x00, +0x64, 0x00, 0x64, 0x00, 0xC8, 0x00, 0x1E, 0x00, +0x1E, 0x00, 0x02, 0x03, 0x03, 0x00, 0x0A, 0x00, +0x0A, 0x00, 0x40, 0x00, 0xE8, 0x03, 0x70, 0x17, +0xFF, 0x3F, 0x07, 0x00, 0xFF, 0x03, 0x00, 0x07, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0xFF, 0x0F, +0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, +0x00, 0x00, 0x07, 0x07, 0x5D, 0x00, 0x3F, 0x00, +0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x3F, 0x3F, 0x01, 0x00, 0xA0, 0x00, 0xB3, 0x1F, +0x01, 0x00, 0xB3, 0x07, 0x00, 0x00, 0x00, 0x00, +0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0x3E, 0x00, 0xFF, 0x83, +0xC1, 0xFF, 0x00, 0x7C, 0xFF, 0xFF, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3E, 0x00, +0xFF, 0x83, 0xC1, 0xFF, 0x00, 0x7C, 0x01, 0x00, +0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x03, 0x00, 0x1F, 0x00, 0xFA, 0x00, 0xFF, 0x00, +0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x41, 0x01, +0x11, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x03, 0x00, 0x1F, 0x00, 0xC8, 0x00, +0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, +0x41, 0x01, 0x11, 0x00, 0x07, 0x00, 0x00, 0x00, +0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, +0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, +0x04, 0x04, 0x44, 0x04, 0x55, 0x00, 0x07, 0x00, +0x00, 0x00, 0x98, 0x37, 0xF9, 0x00, 0x87, 0x13, +0xE6, 0x00, 0x08, 0x00, 0x50, 0x00, 0x00, 0x00, +0x19, 0x00, 0x46, 0x00, 0x0A, 0x00, 0x00, 0x00, +0x00, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, +0x1E, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, +0x64, 0x00, 0x02, 0x00, 0x02, 0x00, 0x06, 0x00, +0x03, 0x00, 0x03, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x00, 0xC8, 0x00, +0x01, 0x01, 0x02, 0x00, 0x39, 0x00, 0x90, 0x01, +0x12, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x31, 0x00, +0x3B, 0x00, 0x0C, 0x00, 0x65, 0x00, 0x31, 0x00, +0x8E, 0x00, 0x0C, 0x00, 0xB8, 0x00, 0x31, 0x00, +0xE1, 0x00, 0x0C, 0x00, 0x0B, 0x01, 0x90, 0x01, +0x34, 0x01, 0xC5, 0x00, 0x34, 0x01, 0x31, 0x00, +0x34, 0x01, 0x0C, 0x00, 0x5E, 0x01, 0x31, 0x00, +0x87, 0x01, 0x0C, 0x00, 0xB1, 0x01, 0x31, 0x00, +0xDA, 0x01, 0x0C, 0x00, 0x04, 0x02, 0x31, 0x00, +0x2D, 0x02, 0x0C, 0x00, 0x57, 0x02, 0x90, 0x01, +0x80, 0x02, 0x31, 0x00, 0x80, 0x02, 0x0C, 0x00, +0xA9, 0x02, 0x31, 0x00, 0xD3, 0x02, 0x0C, 0x00, +0xFC, 0x02, 0x31, 0x00, 0x26, 0x03, 0x0C, 0x00, +0x4F, 0x03, 0x31, 0x00, 0x79, 0x03, 0x0C, 0x00, +0xA2, 0x03, 0x5B, 0x02, 0xCC, 0x03, 0x90, 0x01, +0xCC, 0x03, 0x31, 0x00, 0xCC, 0x03, 0x0C, 0x00, +0xF5, 0x03, 0x31, 0x00, 0x1F, 0x04, 0x0C, 0x00, +0x48, 0x04, 0x31, 0x00, 0x72, 0x04, 0x0C, 0x00, +0x9B, 0x04, 0x31, 0x00, 0xC5, 0x04, 0x7B, 0x00, +0xC5, 0x04, 0xC5, 0x00, 0xC5, 0x04, 0x0F, 0x01, +0xC5, 0x04, 0x59, 0x01, 0xC5, 0x04, 0xA2, 0x01, +0xC5, 0x04, 0xEC, 0x01, 0xC5, 0x04, 0x36, 0x02, +0xC5, 0x04, 0x80, 0x02, 0xC5, 0x04, 0xCA, 0x02, +0xC5, 0x04, 0x14, 0x03, 0xC5, 0x04, 0xEF, 0x02, +0xEE, 0x04, 0xA5, 0x02, 0xEE, 0x04, 0x5B, 0x02, +0xEE, 0x04, 0x11, 0x02, 0xEE, 0x04, 0xC7, 0x01, +0xEE, 0x04, 0x7E, 0x01, 0xEE, 0x04, 0x34, 0x01, +0xEE, 0x04, 0xEA, 0x00, 0xEE, 0x04, 0xA0, 0x00, +0xEE, 0x04, 0x56, 0x00, 0xEE, 0x04, 0x0C, 0x00, +0xEE, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xE9, 0x9D, 0x73, 0xB6, 0xE5, 0x8E, 0x1E, 0xF9, +0xC1, 0xCA, 0x6A, 0x38, 0x6B, 0x6E, 0x90, 0x58, +0x1E, 0xEE, 0x80, 0xBE, 0x28, 0x93, 0x84, 0x97, +0xF3, 0x01, 0x07, 0xD9, 0x77, 0x95, 0x49, 0x69, +0x8A, 0x89, 0x58, 0xD0, 0xA2, 0x0B, 0x9D, 0x3D, +0xD6, 0xFF, 0xEA, 0x5E, 0xE0, 0x23, 0xDA, 0x60, +0x19, 0x0B, 0xD5, 0xEC, 0xF7, 0x50, 0xF8, 0xB0, +0x5F, 0x73, 0x24, 0xE3, 0x18, 0x77, 0xF6, 0x6E, +0x46, 0x81, 0x90, 0x25, 0xEE, 0xB1, 0xE7, 0x20, +0x50, 0x63, 0x69, 0x52, 0x64, 0xFB, 0x55, 0xB1, +0x92, 0xF1, 0xF6, 0xFA, 0x62, 0x9D, 0x0F, 0x7F, +0xF8, 0xC7, 0x6A, 0xAA, 0x9D, 0x99, 0x56, 0x13, +0xCA, 0x59, 0xF1, 0xCF, 0xDF, 0xB7, 0x4D, 0xD7, +0x73, 0xEF, 0x78, 0x32, 0x4B, 0x00, 0x93, 0xD3, +0xAC, 0xB6, 0x91, 0xCA, 0x5F, 0x0E, 0xCB, 0xC0, +0x37, 0xD0, 0xB6, 0x14, 0xD6, 0x81, 0xAA, 0x27, +0xBD, 0xF0, 0xE7, 0x55, 0x56, 0x0C, 0x0D, 0xE1, +0x44, 0x07, 0x35, 0xE4, 0xA3, 0x35, 0x67, 0xB2, +0xFE, 0x3A, 0xE4, 0xF8, 0x46, 0x23, 0x09, 0x23, +0xE3, 0x65, 0x87, 0xEE, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +}; +#endif diff --git a/drivers/input/touchscreen/zt7554_ts.c b/drivers/input/touchscreen/zt7554_ts.c new file mode 100755 index 00000000..7dccb32a --- /dev/null +++ b/drivers/input/touchscreen/zt7554_ts.c @@ -0,0 +1,3187 @@ +/* + * + * Zinitix zt7554 touchscreen driver + * + * Copyright (C) 2013 Samsung Electronics Co.Ltd + * + * 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 "zt7554_ts.h" +#include "zt7554_ts_spec.h" + +//#include "zinitix_touch_t560.h" +#include "zinitix_touch_zxt_firmware.h" +#include +u32 BUTTON_MAPPING_KEY[MAX_SUPPORTED_BUTTON_NUM] = {KEY_MENU, KEY_BACK}; + +static int cal_mode; +static int get_boot_mode(char *str) +{ + + get_option(&str, &cal_mode); + printk(KERN_DEBUG "get_boot_mode, uart_mode : %d\n", cal_mode); + return 1; +} +__setup("calmode=", get_boot_mode); + +s32 read_data(struct i2c_client *client, u16 reg, u8 *values, u16 length) +{ + s32 ret; + int count = 0; +retry: + ret = i2c_master_send(client , (u8 *)® , 2); + if (ret < 0) { + dev_err(&client->dev, "%s: failed to send. ret:%d, try:%d\n", + __func__, ret, count + 1); + mdelay(1); + if (++count < I2C_RETRY_TIMES) + goto retry; + return ret; + } + + udelay(DELAY_FOR_TRANSCATION); + ret = i2c_master_recv(client , values , length); + if (ret < 0) { + dev_err(&client->dev, "%s: failed to recv. ret:%d\n", __func__, ret); + return ret; + } + + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +static inline s32 write_data(struct i2c_client *client, u16 reg, u8 *values, u16 length) +{ + s32 ret; + int count = 0; + u8 pkt[10]; + + pkt[0] = (reg) & 0xff; + pkt[1] = (reg >> 8) & 0xff; + memcpy((u8 *)&pkt[2], values, length); + +retry: + ret = i2c_master_send(client , pkt , length + 2); + if (ret < 0) { + dev_err(&client->dev, "%s: failed to send. ret:%d, try:%d\n", + __func__, ret, count + 1); + mdelay(1); + if (++count < I2C_RETRY_TIMES) + goto retry; + return ret; + } + + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +s32 write_reg(struct i2c_client *client, u16 reg, u16 value) +{ + if (write_data(client, reg, (u8 *)&value, 2) < 0) + return I2C_FAIL; + + return I2C_SUCCESS; +} + +s32 write_cmd(struct i2c_client *client, u16 reg) +{ + s32 ret; + int count = 0; + +retry: + ret = i2c_master_send(client , (u8 *)® , 2); + if (ret < 0) { + dev_err(&client->dev, "%s: failed to send. ret:%d, try:%d\n", + __func__, ret, count + 1); + mdelay(1); + if (++count < I2C_RETRY_TIMES) + goto retry; + return ret; + } + + udelay(DELAY_FOR_POST_TRANSCATION); + return I2C_SUCCESS; +} + +static inline s32 read_raw_data(struct i2c_client *client, u16 reg, u8 *values, u16 length) +{ + s32 ret; + int count = 0; + +retry: + /* select register */ + ret = i2c_master_send(client , (u8 *)® , 2); + if (ret < 0) { + dev_err(&client->dev, "%s: failed to send. ret:%d, try:%d\n", + __func__, ret, count + 1); + mdelay(1); + if (++count < I2C_RETRY_TIMES) + goto retry; + return ret; + } + + /* for setup tx transaction. */ + udelay(200); + + ret = i2c_master_recv(client , values , length); + if (ret < 0) { + dev_err(&client->dev, "%s: failed to recv. ret:%d\n", __func__, ret); + return ret; + } + + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +static inline s32 read_firmware_data(struct i2c_client *client, u16 addr, u8 *values, u16 length) +{ + s32 ret; + + ret = i2c_master_send(client , (u8 *)&addr , 2); + if (ret < 0) { + dev_err(&client->dev, "%s: failed to send. ret:%d\n", __func__, ret); + return ret; + } + + /* for setup tx transaction. */ + mdelay(1); + + ret = i2c_master_recv(client , values , length); + if (ret < 0) { + dev_err(&client->dev, "%s: failed to recv. ret:%d\n", __func__, ret); + return ret; + } + + udelay(DELAY_FOR_POST_TRANSCATION); + return length; +} + +static void zt7554_set_optional_mode(struct zt7554_ts_info *info, bool force) +{ + if (m_prev_optional_mode == m_optional_mode && !force) + return; + + if (write_reg(info->client, ZT7554_OPTIONAL_SETTING, m_optional_mode) == I2C_SUCCESS) { + m_prev_optional_mode = m_optional_mode; + dev_info(&misc_info->client->dev, "TA setting changed to %d\n", + m_optional_mode & 0x1); + } +} +static void zt7554_set_ta_status(struct zt7554_ts_info *info) +{ + if (ta_connected) + zinitix_bit_set(m_optional_mode, 0); + else + zinitix_bit_clr(m_optional_mode, 0); +} + +void tsp_charger_enable(int status) +{ + status = (status != POWER_SUPPLY_TYPE_BATTERY); + + if (status) + ta_connected = true; + else + ta_connected = false; + + zt7554_set_ta_status(misc_info); + + dev_info(&misc_info->client->dev, "TA %s\n", + status ? "connected" : "disconnected"); +} +EXPORT_SYMBOL(tsp_charger_enable); + +static bool get_raw_data(struct zt7554_ts_info *info, u8 *buff, int skip_cnt) +{ + struct i2c_client *client = info->client; + struct zt7554_ts_platform_data *pdata = info->pdata; + u32 total_node = info->cap_info.total_node_num; + u32 sz; + int i; + + disable_irq(info->irq); + + down(&info->work_lock); + if (info->work_state != NOTHING) { + dev_err(&client->dev, "%s: other process occupied.\n", __func__); + enable_irq(info->irq); + up(&info->work_lock); + return false; + } + + info->work_state = RAW_DATA; + + for (i = 0; i < skip_cnt; i++) { + while (gpio_get_value(pdata->gpio_int)) + msleep(1); + write_cmd(client, ZT7554_CLEAR_INT_STATUS_CMD); + msleep(1); + } + + sz = total_node * 2; + + while (gpio_get_value(pdata->gpio_int)) + msleep(1); + + if (read_raw_data(client, ZT7554_RAWDATA_REG, (char *)buff, sz) < 0) { + dev_err(&info->client->dev, "error : read zinitix tc raw data\n"); + info->work_state = NOTHING; + enable_irq(info->irq); + up(&info->work_lock); + return false; + } + + write_cmd(client, ZT7554_CLEAR_INT_STATUS_CMD); + info->work_state = NOTHING; + enable_irq(info->irq); + up(&info->work_lock); + + return true; +} + +static bool ts_get_raw_data(struct zt7554_ts_info *info) +{ + struct i2c_client *client = info->client; + u32 total_node = info->cap_info.total_node_num; + u32 sz; + + if (down_trylock(&info->raw_data_lock)) { + dev_err(&client->dev, "Failed to occupy sema\n"); + info->touch_info.status = 0; + return true; + } + + sz = total_node * 2 + sizeof(struct point_info); + + if (read_raw_data(info->client, ZT7554_RAWDATA_REG, (char *)info->cur_data, sz) < 0) { + dev_err(&client->dev, "Failed to read raw data\n"); + up(&info->raw_data_lock); + return false; + } + + info->update = 1; + memcpy((u8 *)(&info->touch_info), + (u8 *)&info->cur_data[total_node], sizeof(struct point_info)); + up(&info->raw_data_lock); + + return true; +} + +#if ZINITIX_I2C_CHECKSUM +#define ZINITIX_I2C_CHECKSUM_WCNT 0x016a +#define ZINITIX_I2C_CHECKSUM_RESULT 0x016c +static bool i2c_checksum(struct zt7554_ts_info *info, s16 *pChecksum, u16 wlength) +{ + s16 checksum_result; + s16 checksum_cur; + int i; + + checksum_cur = 0; + for (i = 0; i < wlength; i++) + checksum_cur += (s16)pChecksum[i]; + + if (read_data(info->client, ZINITIX_I2C_CHECKSUM_RESULT, (u8 *)(&checksum_result), 2) < 0) { + dev_err(&info->client->dev, "error read i2c checksum rsult.\n"); + return false; + } + if (checksum_cur != checksum_result) { + dev_err(&info->client->dev, "checksum error : %d, %d\n", checksum_cur, checksum_result); + return false; + } + return true; +} + +#endif + +static bool ts_read_coord(struct zt7554_ts_info *info) +{ + struct i2c_client *client = info->client; + + /* for Debugging Tool */ + if (info->touch_mode != TOUCH_POINT_MODE) { + if (info->update == 0) { + if (!ts_get_raw_data(info)) + return false; + } else + info->touch_info.status = 0; + dev_err(&client->dev, "status = 0x%04X\n", info->touch_info.status); + goto out; + } + +#if ZINITIX_I2C_CHECKSUM + if (info->cap_info.i2s_checksum) { + if (write_reg(info->client, ZINITIX_I2C_CHECKSUM_WCNT, + (sizeof(struct point_info)/2)) != I2C_SUCCESS) { + dev_err(&client->dev, "error write checksum wcnt.-\n"); + return false; + } + } +#endif + if (read_data(info->client, ZT7554_POINT_STATUS_REG, + (u8 *)(&info->touch_info), sizeof(struct point_info)) < 0) { + dev_err(&client->dev, "Failed to read point info\n"); + return false; + } +#if ZINITIX_I2C_CHECKSUM + if (info->cap_info.i2s_checksum) { + if (i2c_checksum(info, (s16 *)(&info->touch_info), + sizeof(struct point_info)/2) == false) + return false; + } +#endif + zt7554_set_optional_mode(info, false); +out: + if (zinitix_bit_test(info->touch_info.status, BIT_MUST_ZERO)) { + dev_err(&client->dev, "Invalid must zero bit(%04x)\n", info->touch_info.status); + return false; + } + write_cmd(info->client, ZT7554_CLEAR_INT_STATUS_CMD); + + return true; +} + +#if ESD_TIMER_INTERVAL +static void esd_timeout_handler(unsigned long data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)data; + + info->p_esd_timeout_tmr = NULL; + queue_work(esd_tmr_workqueue, &info->tmr_work); +} + +static void esd_timer_start(u16 sec, struct zt7554_ts_info *info) +{ + unsigned long flags; + spin_lock_irqsave(&info->lock, flags); + if (info->p_esd_timeout_tmr) +#ifdef CONFIG_SMP + del_singleshot_timer_sync(info->p_esd_timeout_tmr); +#else + del_timer(info->p_esd_timeout_tmr); +#endif + info->p_esd_timeout_tmr = NULL; + init_timer(&(info->esd_timeout_tmr)); + info->esd_timeout_tmr.data = (unsigned long)(info); + info->esd_timeout_tmr.function = esd_timeout_handler; + info->esd_timeout_tmr.expires = jiffies + (HZ * sec); + info->p_esd_timeout_tmr = &info->esd_timeout_tmr; + add_timer(&info->esd_timeout_tmr); + spin_unlock_irqrestore(&info->lock, flags); +} + +static void esd_timer_stop(struct zt7554_ts_info *info) +{ + unsigned long flags; + spin_lock_irqsave(&info->lock, flags); + if (info->p_esd_timeout_tmr) +#ifdef CONFIG_SMP + del_singleshot_timer_sync(info->p_esd_timeout_tmr); +#else + del_timer(info->p_esd_timeout_tmr); +#endif + + info->p_esd_timeout_tmr = NULL; + spin_unlock_irqrestore(&info->lock, flags); +} + +static void esd_timer_init(struct zt7554_ts_info *info) +{ + unsigned long flags; + spin_lock_irqsave(&info->lock, flags); + init_timer(&(info->esd_timeout_tmr)); + info->esd_timeout_tmr.data = (unsigned long)(info); + info->esd_timeout_tmr.function = esd_timeout_handler; + info->p_esd_timeout_tmr = NULL; + spin_unlock_irqrestore(&info->lock, flags); +} + +static void ts_tmr_work(struct work_struct *work) +{ + struct zt7554_ts_info *info = + container_of(work, struct zt7554_ts_info, tmr_work); + struct i2c_client *client = info->client; + + if (down_trylock(&info->work_lock)) { + dev_err(&client->dev, "%s: Failed to occupy work lock\n", __func__); + esd_timer_start(CHECK_ESD_TIMER, info); + return; + } + + if (info->work_state != NOTHING) { + dev_info(&client->dev, "%s: Other process occupied\n", __func__); + up(&info->work_lock); + return; + } + info->work_state = ESD_TIMER; + + disable_irq(info->irq); + zt7554_power_control(info, POWER_OFF); + zt7554_power_control(info, POWER_ON_SEQUENCE); + + clear_report_data(info); + if (!mini_init_touch(info)) + goto fail_time_out_init; + + info->work_state = NOTHING; + enable_irq(info->irq); + up(&info->work_lock); + + return; +fail_time_out_init: + dev_err(&client->dev, "%s: Failed to restart\n", __func__); + esd_timer_start(CHECK_ESD_TIMER, info); + info->work_state = NOTHING; + enable_irq(info->irq); + up(&info->work_lock); + + return; +} +#endif + +static bool zt7554_power_sequence(struct zt7554_ts_info *info) +{ + struct i2c_client *client = info->client; + int retry = 0; + u16 chip_code; + +retry_power_sequence: + if (write_reg(client, 0xc000, 0x0001) != I2C_SUCCESS) { + dev_err(&client->dev, "Failed to send power sequence(vendor cmd enable)\n"); + goto fail_power_sequence; + } + udelay(10); + + if (read_data(client, 0xcc00, (u8 *)&chip_code, 2) < 0) { + dev_err(&client->dev, "Failed to read chip code\n"); + goto fail_power_sequence; + } + + dev_dbg(&client->dev, "%s: chip code = 0x%x\n", __func__, chip_code); + udelay(10); + + if (write_cmd(client, 0xc004) != I2C_SUCCESS) { + dev_err(&client->dev, "Failed to send power sequence(intn clear)\n"); + goto fail_power_sequence; + } + udelay(10); + + if (write_reg(client, 0xc002, 0x0001) != I2C_SUCCESS) { + dev_err(&client->dev, "Failed to send power sequence(nvm init)\n"); + goto fail_power_sequence; + } + mdelay(2); + + if (write_reg(client, 0xc001, 0x0001) != I2C_SUCCESS) { + dev_err(&client->dev, "Failed to send power sequence(program start)\n"); + goto fail_power_sequence; + } +#if 1 /* FIXME: temporary bringup code */ + msleep(FIRMWARE_ON_DELAY + 100); /* wait for checksum cal */ + //msleep(FIRMWARE_ON_DELAY); /* wait for checksum cal */ +#endif + + return true; + +fail_power_sequence: + if (retry++ < 3) { + msleep(CHIP_ON_DELAY); + dev_info(&client->dev, "retry = %d\n", retry); + goto retry_power_sequence; + } + + dev_err(&client->dev, "Failed to send power sequence\n"); + return false; +} + +static int zt7554_power(struct i2c_client *client, int on, int gpio_ctrl_pin) +{ + int ret; + static bool is_power_on; +#if 0 + if (!touch_regulator) { + //touch_regulator = regulator_get(&client->dev, "tsp_vdd"); + touch_regulator = regulator_get(NULL, "vddvibr"); + //touch_regulator = regulator_get(NULL, "vdd28"); + if (IS_ERR(touch_regulator)) { + touch_regulator = NULL; + dev_err(&client->dev, "regulator_get error!\n"); + return -EIO; + } + } + + if (on == POWER_OFF) { + //if (is_power_on && regulator_is_enabled(touch_regulator)) { + if (is_power_on) { + is_power_on = false; + ret = regulator_disable(touch_regulator); + dev_info(&client->dev, "power off!\n"); + if (ret) { + is_power_on = true; + dev_err(&client->dev, "power off error!\n"); + return -EIO; + } + mdelay(CHIP_OFF_DELAY); + } else + dev_err(&client->dev, "already power off!\n"); + } else { + //if (!is_power_on && !regulator_is_enabled(touch_regulator)) { + if (!is_power_on) { + is_power_on = true; + regulator_set_voltage(touch_regulator, 3300000, 3300000); + ret = regulator_enable(touch_regulator); + dev_info(&client->dev, "power on!\n"); + if (ret) { + is_power_on = false; + dev_err(&client->dev, "power on error!\n"); + return -EIO; + } + mdelay(CHIP_ON_DELAY + 100); + } else + dev_err(&client->dev, "already power on!\n"); + } +#else + if (on == POWER_OFF) { + if (is_power_on) { + is_power_on = false; + dev_info(&client->dev, "power off!\n"); + gpio_request(gpio_ctrl_pin,"tsp_enable"); + gpio_direction_output(gpio_ctrl_pin,1); + gpio_set_value(gpio_ctrl_pin,0); + mdelay(CHIP_OFF_DELAY); + } else + dev_err(&client->dev, "already power off!\n"); + } else { + if (!is_power_on) { + is_power_on = true; + dev_info(&client->dev, "power on!\n"); + gpio_request(gpio_ctrl_pin,"tsp_enable"); + gpio_direction_output(gpio_ctrl_pin,1); + gpio_set_value(gpio_ctrl_pin,1); + mdelay(CHIP_ON_DELAY + 100); + } else + dev_err(&client->dev, "already power on!\n"); + } +#endif + + return 0; +} +static bool zt7554_power_control(struct zt7554_ts_info *info, u8 ctl) +{ + int ret = 0; + + if (info->pdata->tsp_supply_type == TSP_REGULATOR_SUPPLY) { + ret = info->pdata->tsp_power(info->client, ctl, info->pdata->gpio_ctrl_pin); + if (ret) + return false; + if (ctl == POWER_ON_SEQUENCE) { + msleep(CHIP_ON_DELAY); + return zt7554_power_sequence(info); + } + } else { + if (ctl == POWER_OFF) { + gpio_direction_output(info->pdata->gpio_ldo_en, 0); + msleep(CHIP_OFF_DELAY); + } else { + gpio_direction_output(info->pdata->gpio_ldo_en, 1); + msleep(CHIP_ON_DELAY); + if (ctl == POWER_ON_SEQUENCE) + return zt7554_power_sequence(info); + } + } + return true; +} + +#if TOUCH_ONESHOT_UPGRADE +static bool ts_check_need_upgrade(struct zt7554_ts_info *info, + u16 cur_version, u16 cur_minor_version, u16 cur_reg_version, u16 cur_hw_id) +{ + u16 new_version; + u16 new_minor_version; + u16 new_reg_version; +#if CHECK_HWID + u16 new_hw_id; +#endif + new_version = (u16) (m_firmware_data[52] | (m_firmware_data[53]<<8)); + new_minor_version = (u16) (m_firmware_data[56] | (m_firmware_data[57]<<8)); + new_reg_version = (u16) (m_firmware_data[60] | (m_firmware_data[61]<<8)); + +#if CHECK_HWID + new_hw_id = (u16) (m_firmware_data[48] | (m_firmware_data[49]<<8)); + dev_dbg(&info->client->dev, "cur HW_ID = 0x%x, new HW_ID = 0x%x\n", + cur_hw_id, new_hw_id); +#endif + + dev_info(&info->client->dev, "cur version = 0x%x, new version = 0x%x\n", + cur_version, new_version); + dev_info(&info->client->dev, "cur minor version = 0x%x, new minor version = 0x%x\n", + cur_minor_version, new_minor_version); + dev_info(&info->client->dev, "cur reg data version = 0x%x, new reg data version = 0x%x\n", + cur_reg_version, new_reg_version); +#if 0 /* FIXME: temporary bringup code */ + return true; +#endif + + if (cal_mode) { + dev_info(&info->client->dev, "didn't update TSP F/W!! in CAL MODE\n"); + return false; + } + + if (cur_version > 0xFF) + return true; + if (cur_version < new_version) + return true; + else if (cur_version > new_version) + return false; +#if CHECK_HWID + if (cur_hw_id != new_hw_id) + return true; +#endif + if (cur_minor_version < new_minor_version) + return true; + else if (cur_minor_version > new_minor_version) + return false; + if (cur_reg_version < new_reg_version) + return true; + + return false; +} +#endif + +#define TC_SECTOR_SZ 8 + +static bool ts_upgrade_firmware(struct zt7554_ts_info *info, const u8 *firmware_data, u32 size) +{ + struct i2c_client *client = info->client; + u32 flash_addr; + u8 *verify_data; + int retry_cnt = 0; + int i; + int page_sz = 128; + u16 chip_code; + + verify_data = kzalloc(size, GFP_KERNEL); + if (!verify_data) { + dev_err(&client->dev, "cannot alloc verify buffer\n"); + return false; + } + +retry_upgrade: + zt7554_power_control(info, POWER_OFF); + zt7554_power_control(info, POWER_ON); +#if 1 /* FIXME: temporary bringup code */ + mdelay(100); + //mdelay(10); +#endif + + if (write_reg(client, 0xc000, 0x0001) != I2C_SUCCESS) { + dev_err(&client->dev, "power sequence error (vendor cmd enable)\n"); + goto fail_upgrade; + } + + udelay(10); + + if (read_data(client, 0xcc00, (u8 *)&chip_code, 2) < 0) { + dev_err(&client->dev, "failed to read chip code\n"); + goto fail_upgrade; + } + + dev_info(&client->dev, "chip code = 0x%x\n", chip_code); + + udelay(10); + + if (write_cmd(client, 0xc004) != I2C_SUCCESS) { + dev_err(&client->dev, "power sequence error (intn clear)\n"); + goto fail_upgrade; + } + + udelay(10); + + if (write_reg(client, 0xc002, 0x0001) != I2C_SUCCESS) { + dev_err(&client->dev, "power sequence error (nvm init)\n"); + goto fail_upgrade; + } + + mdelay(5); + + dev_dbg(&client->dev, "init flash\n"); + + if (write_reg(client, 0xc003, 0x0001) != I2C_SUCCESS) { + dev_err(&client->dev, "failed to write nvm vpp on\n"); + goto fail_upgrade; + } + + if (write_reg(client, 0xc104, 0x0001) != I2C_SUCCESS) { + dev_err(&client->dev, "failed to write nvm wp disable\n"); + goto fail_upgrade; + } + + if (write_cmd(client, ZT7554_INIT_FLASH) != I2C_SUCCESS) { + dev_err(&client->dev, "failed to init flash\n"); + goto fail_upgrade; + } + + dev_info(&client->dev, "writing firmware data\n"); + for (flash_addr = 0; flash_addr < size; ) { + for (i = 0; i < page_sz/TC_SECTOR_SZ; i++) { + if (write_data(client, ZT7554_WRITE_FLASH, + (u8 *)&firmware_data[flash_addr], TC_SECTOR_SZ) < 0) { + dev_err(&client->dev, "error : write zinitix tc firmare\n"); + goto fail_upgrade; + } + flash_addr += TC_SECTOR_SZ; + udelay(100); + } + mdelay(10); /* for fuzing delay */ + } + + if (write_reg(client, 0xc003, 0x0000) != I2C_SUCCESS) { + dev_err(&client->dev, "nvm write vpp off\n"); + goto fail_upgrade; + } + + if (write_reg(client, 0xc104, 0x0000) != I2C_SUCCESS) { + dev_err(&client->dev, "nvm wp enable\n"); + goto fail_upgrade; + } + + dev_info(&client->dev, "init flash\n"); + + if (write_cmd(client, ZT7554_INIT_FLASH) != I2C_SUCCESS) { + dev_err(&client->dev, "failed to init flash\n"); + goto fail_upgrade; + } + + dev_info(&client->dev, "read firmware data\n"); + + for (flash_addr = 0; flash_addr < size; ) { + for (i = 0; i < page_sz/TC_SECTOR_SZ; i++) { + if (read_firmware_data(client, ZT7554_READ_FLASH, + (u8 *)&verify_data[flash_addr], TC_SECTOR_SZ) < 0) { + dev_err(&client->dev, "Failed to read firmare\n"); + goto fail_upgrade; + } + flash_addr += TC_SECTOR_SZ; + udelay(100); + } + } + + /* verify */ + dev_info(&client->dev, "verify firmware data\n"); + if (memcmp((u8 *)&firmware_data[0], (u8 *)&verify_data[0], size) == 0) { + dev_info(&client->dev, "upgrade finished\n"); + kfree(verify_data); + zt7554_power_control(info, POWER_OFF); + zt7554_power_control(info, POWER_ON_SEQUENCE); + return true; + } + +fail_upgrade: + zt7554_power_control(info, POWER_OFF); + if (retry_cnt++ < INIT_RETRY_CNT) { + dev_err(&client->dev, "upgrade failed : so retry... (%d)\n", retry_cnt); + goto retry_upgrade; + } + + if (verify_data) + kfree(verify_data); + + dev_info(&client->dev, "Failed to upgrade\n"); + + return false; +} + +bool ts_hw_calibration(struct zt7554_ts_info *info) +{ + struct i2c_client *client = info->client; + u16 chip_eeprom_info; + int time_out = 0; + +#if 1 /* FIXME: temporary bringup code */ + return true; +#endif + + if (write_reg(client, ZT7554_TOUCH_MODE, 0x07) != I2C_SUCCESS) + return false; + mdelay(10); + write_cmd(client, ZT7554_CLEAR_INT_STATUS_CMD); + mdelay(10); + write_cmd(client, ZT7554_CLEAR_INT_STATUS_CMD); + mdelay(50); + write_cmd(client, ZT7554_CLEAR_INT_STATUS_CMD); + mdelay(10); + + if (write_cmd(client, ZT7554_CALIBRATE_CMD) != I2C_SUCCESS) + return false; + + if (write_cmd(client, ZT7554_CLEAR_INT_STATUS_CMD) != I2C_SUCCESS) + return false; + + mdelay(10); + write_cmd(client, ZT7554_CLEAR_INT_STATUS_CMD); + + /* wait for h/w calibration*/ + do { + mdelay(500); + write_cmd(client, ZT7554_CLEAR_INT_STATUS_CMD); + + if (read_data(client, ZT7554_EEPROM_INFO_REG, (u8 *)&chip_eeprom_info, 2) < 0) + return false; + + dev_dbg(&client->dev, "touch eeprom info = 0x%04X\n", chip_eeprom_info); + if (!zinitix_bit_test(chip_eeprom_info, 0)) + break; + + if (time_out++ == 4) { + write_cmd(client, ZT7554_CALIBRATE_CMD); + mdelay(10); + write_cmd(client, ZT7554_CLEAR_INT_STATUS_CMD); + dev_err(&client->dev, "h/w calibration retry timeout.\n"); + } + + if (time_out++ > 10) { + dev_err(&client->dev, "h/w calibration timeout.\n"); + break; + } + + } while (true); + + if (write_reg(client, ZT7554_TOUCH_MODE, TOUCH_POINT_MODE) != I2C_SUCCESS) + return false; + + if (info->cap_info.ic_int_mask) { + if (write_reg(client, ZT7554_INT_ENABLE_FLAG, info->cap_info.ic_int_mask) != I2C_SUCCESS) + return false; + } + + write_reg(client, 0xc003, 0x0001); + write_reg(client, 0xc104, 0x0001); + udelay(100); + if (write_cmd(client, ZT7554_SAVE_CALIBRATION_CMD) != I2C_SUCCESS) + return false; + + mdelay(1000); + write_reg(client, 0xc003, 0x0000); + write_reg(client, 0xc104, 0x0000); + return true; +} + +static bool init_touch(struct zt7554_ts_info *info) +{ + struct zt7554_ts_platform_data *pdata = info->pdata; + struct i2c_client *client = info->client; + struct capa_info *cap = &(info->cap_info); + u16 reg_val; + int i; + u16 chip_eeprom_info; +#if USE_CHECKSUM + u16 chip_check_sum; + bool checksum_err; +#endif + int retry_cnt = 0; + + info->ref_scale_factor = TSP_INIT_TEST_RATIO; +retry_init: + for (i = 0; i < INIT_RETRY_CNT; i++) { + if (read_data(client, ZT7554_EEPROM_INFO_REG, + (u8 *)&chip_eeprom_info, 2) < 0) { + dev_err(&client->dev, "Failed to read eeprom info(%d)\n", i); + mdelay(10); + continue; + } else + break; + } + + if (i == INIT_RETRY_CNT) + goto fail_init; + +#if USE_CHECKSUM + checksum_err = false; + + for (i = 0; i < INIT_RETRY_CNT; i++) { + if (read_data(client, ZT7554_CHECKSUM_RESULT, + (u8 *)&chip_check_sum, 2) < 0) { + mdelay(10); + continue; + } + + if (chip_check_sum != 0x55aa) + checksum_err = true; + break; + } + + if (i == INIT_RETRY_CNT || checksum_err) { + dev_err(&client->dev, "Failed to check firmware data\n"); + if (checksum_err && retry_cnt < INIT_RETRY_CNT) + retry_cnt = INIT_RETRY_CNT; + goto fail_init; + } +#endif + if (write_cmd(client, ZT7554_SWRESET_CMD) != I2C_SUCCESS) { + dev_err(&client->dev, "Failed to write reset command\n"); + goto fail_init; + } + + cap->button_num = SUPPORTED_BUTTON_NUM; + + reg_val = 0; + zinitix_bit_set(reg_val, BIT_PT_CNT_CHANGE); + zinitix_bit_set(reg_val, BIT_DOWN); + zinitix_bit_set(reg_val, BIT_MOVE); + zinitix_bit_set(reg_val, BIT_UP); + + if (cap->button_num > 0) + zinitix_bit_set(reg_val, BIT_ICON_EVENT); + + cap->ic_int_mask = reg_val; + + if (write_reg(client, ZT7554_INT_ENABLE_FLAG, 0x0) != I2C_SUCCESS) + goto fail_init; + + dev_dbg(&client->dev, "%s: Send reset command\n", __func__); + if (write_cmd(client, ZT7554_SWRESET_CMD) != I2C_SUCCESS) + goto fail_init; + + /* get chip information */ + if (read_data(client, ZT7554_VENDOR_ID, (u8 *)&cap->vendor_id, 2) < 0) { + dev_err(&client->dev, "failed to read vendor id\n"); + goto fail_init; + } + + if (read_data(client, ZT7554_CHIP_REVISION, (u8 *)&cap->ic_revision, 2) < 0) { + dev_err(&client->dev, "failed to read chip revision\n"); + goto fail_init; + } + + cap->ic_fw_size = 64 * 1024; + + if (read_data(client, ZT7554_HW_ID, (u8 *)&cap->hw_id, 2) < 0) + goto fail_init; + + if (read_data(client, ZT7554_THRESHOLD, (u8 *)&cap->threshold, 2) < 0) + goto fail_init; + + if (read_data(client, ZT7554_BUTTON_SENSITIVITY, (u8 *)&cap->key_threshold, 2) < 0) + goto fail_init; + + if (read_data(client, ZT7554_DUMMY_BUTTON_SENSITIVITY, (u8 *)&cap->dummy_threshold, 2) < 0) + goto fail_init; + + if (read_data(client, ZT7554_TOTAL_NUMBER_OF_X, (u8 *)&cap->x_node_num, 2) < 0) + goto fail_init; + + if (read_data(client, ZT7554_TOTAL_NUMBER_OF_Y, (u8 *)&cap->y_node_num, 2) < 0) + goto fail_init; + + cap->total_node_num = cap->x_node_num * cap->y_node_num; + + if (read_data(client, ZT7554_DND_N_COUNT, (u8 *)&cap->N_cnt, 2) < 0) + goto fail_init; + + if (read_data(client, ZT7554_DND_U_COUNT, (u8 *)&cap->u_cnt, 2) < 0) + goto fail_init; + + if (read_data(client, ZT7554_AFE_FREQUENCY, (u8 *)&cap->afe_frequency, 2) < 0) + goto fail_init; + +#ifdef SUPPORTED_DND_SHIFT_VALUE + if (read_data(client, ZT7554_DND_SHIFT_VALUE, (u8 *)&cap->shift_value, 2) < 0) + goto fail_init; +#endif + + /* get chip firmware version */ + if (read_data(client, ZT7554_FIRMWARE_VERSION, (u8 *)&cap->fw_version, 2) < 0) + goto fail_init; + + if (read_data(client, ZT7554_MINOR_FW_VERSION, (u8 *)&cap->fw_minor_version, 2) < 0) + goto fail_init; + + if (read_data(client, ZT7554_DATA_VERSION_REG, (u8 *)&cap->reg_data_version, 2) < 0) + goto fail_init; + +#if TOUCH_ONESHOT_UPGRADE + if (ts_check_need_upgrade(info, cap->fw_version, + cap->fw_minor_version, cap->reg_data_version, cap->hw_id)) { + dev_info(&client->dev, "%s: start upgrade firmware\n", __func__); + + if (!ts_upgrade_firmware(info, m_firmware_data, cap->ic_fw_size)) + goto fail_init; + + if (!ts_hw_calibration(info)) + goto fail_init; + + /* disable chip interrupt */ + if (write_reg(client, ZT7554_INT_ENABLE_FLAG, 0) != I2C_SUCCESS) + goto fail_init; + + /* get chip firmware version */ + if (read_data(client, ZT7554_FIRMWARE_VERSION, (u8 *)&cap->fw_version, 2) < 0) + goto fail_init; + + if (read_data(client, ZT7554_MINOR_FW_VERSION, (u8 *)&cap->fw_minor_version, 2) < 0) + goto fail_init; + + if (read_data(client, ZT7554_DATA_VERSION_REG, (u8 *)&cap->reg_data_version, 2) < 0) + goto fail_init; + } +#endif + + if (read_data(client, ZT7554_EEPROM_INFO_REG, (u8 *)&chip_eeprom_info, 2) < 0) + goto fail_init; + + if (zinitix_bit_test(chip_eeprom_info, 0)) { + if (!ts_hw_calibration(info)) + goto fail_init; + + /* disable chip interrupt */ + if (write_reg(client, ZT7554_INT_ENABLE_FLAG, 0) != I2C_SUCCESS) + goto fail_init; + } + + /* initialize */ + if (write_reg(client, ZT7554_X_RESOLUTION, (u16)pdata->x_resolution) != I2C_SUCCESS) + goto fail_init; + + if (write_reg(client, ZT7554_Y_RESOLUTION, (u16)pdata->y_resolution) != I2C_SUCCESS) + goto fail_init; + + cap->MinX = (u32)0; + cap->MinY = (u32)0; + cap->MaxX = (u32)pdata->x_resolution; + cap->MaxY = (u32)pdata->y_resolution; + + if (write_reg(client, ZT7554_BUTTON_SUPPORTED_NUM, (u16)cap->button_num) != I2C_SUCCESS) + goto fail_init; + + if (write_reg(client, ZT7554_SUPPORTED_FINGER_NUM, (u16)MAX_SUPPORTED_FINGER_NUM) != I2C_SUCCESS) + goto fail_init; + + cap->multi_fingers = MAX_SUPPORTED_FINGER_NUM; + cap->gesture_support = 0; + + if (write_reg(client, ZT7554_INITIAL_TOUCH_MODE, TOUCH_POINT_MODE) != I2C_SUCCESS) + goto fail_init; + + if (write_reg(client, ZT7554_TOUCH_MODE, info->touch_mode) != I2C_SUCCESS) + goto fail_init; + +#if ZINITIX_I2C_CHECKSUM + if (read_data(client, ZINITIX_INTERNAL_FLAG_02, (u8 *)®_val, 2) < 0) + goto fail_init; + cap->i2s_checksum = !(!zinitix_bit_test(reg_val, 15)); + dev_dbg(&client->dev, "use i2s checksum = %d\n", cap->i2s_checksum); +#endif + + zt7554_set_ta_status(info); + zt7554_set_optional_mode(info, true); + + if (write_reg(client, ZT7554_INT_ENABLE_FLAG, cap->ic_int_mask) != I2C_SUCCESS) + goto fail_init; + + /* read garbage data */ + for (i = 0; i < 10; i++) { + write_cmd(client, ZT7554_CLEAR_INT_STATUS_CMD); + udelay(10); + } + + if (info->touch_mode != TOUCH_POINT_MODE) { /* Test Mode */ + if (write_reg(client, ZT7554_DELAY_RAW_FOR_HOST, + RAWDATA_DELAY_FOR_HOST) != I2C_SUCCESS) { + dev_err(&client->dev, "%s: Failed to set DELAY_RAW_FOR_HOST\n", __func__); + goto fail_init; + } + } +#if ESD_TIMER_INTERVAL + if (write_reg(client, ZT7554_PERIODICAL_INTERRUPT_INTERVAL, + SCAN_RATE_HZ * ESD_TIMER_INTERVAL) != I2C_SUCCESS) + goto fail_init; + + read_data(client, ZT7554_PERIODICAL_INTERRUPT_INTERVAL, (u8 *)®_val, 2); +#endif + tsp_charger_status_cb = tsp_charger_enable; + + dev_info(&client->dev, "%s: initialize done!\n", __func__); + + return true; + +fail_init: + if (cal_mode) { + dev_err(&client->dev, "didn't update TSP F/W!! in CAL MODE\n"); + return false; + } + if (++retry_cnt <= INIT_RETRY_CNT) { + zt7554_power_control(info, POWER_OFF); + zt7554_power_control(info, POWER_ON_SEQUENCE); + goto retry_init; + + } else if (retry_cnt == INIT_RETRY_CNT + 1) { + cap->ic_fw_size = 64 * 1024; +#if TOUCH_FORCE_UPGRADE + if (!ts_upgrade_firmware(info, m_firmware_data, cap->ic_fw_size)) { + dev_err(&client->dev, "firmware upgrade fail!\n"); + return false; + } + mdelay(100); + + /* hw calibration and make checksum */ + if (!ts_hw_calibration(info)) { + dev_err(&client->dev, "failed to initiallize\n"); + return false; + } + goto retry_init; +#endif + } + dev_err(&client->dev, "Failed to initiallize\n"); + + return false; +} + +static bool mini_init_touch(struct zt7554_ts_info *info) +{ + struct zt7554_ts_platform_data *pdata = info->pdata; + struct i2c_client *client = info->client; + int i; +#if USE_CHECKSUM + u16 chip_check_sum; + if (read_data(client, ZT7554_CHECKSUM_RESULT, (u8 *)&chip_check_sum, 2) < 0) + goto fail_mini_init; + + if (chip_check_sum != 0x55aa) { + dev_err(&client->dev, "Failed to check firmware\n"); + goto fail_mini_init; + } +#endif + info->ref_scale_factor = TSP_INIT_TEST_RATIO; + + if (write_cmd(client, ZT7554_SWRESET_CMD) != I2C_SUCCESS) { + dev_info(&client->dev, "Failed to write reset command\n"); + goto fail_mini_init; + } + + /* initialize */ + if (write_reg(client, ZT7554_X_RESOLUTION, (u16)(pdata->x_resolution)) != I2C_SUCCESS) + goto fail_mini_init; + + if (write_reg(client, ZT7554_Y_RESOLUTION, (u16)(pdata->y_resolution)) != I2C_SUCCESS) + goto fail_mini_init; + + if (write_reg(client, ZT7554_BUTTON_SUPPORTED_NUM, (u16)info->cap_info.button_num) != I2C_SUCCESS) + goto fail_mini_init; + + if (write_reg(client, ZT7554_SUPPORTED_FINGER_NUM, (u16)MAX_SUPPORTED_FINGER_NUM) != I2C_SUCCESS) + goto fail_mini_init; + + if (write_reg(client, ZT7554_INITIAL_TOUCH_MODE, TOUCH_POINT_MODE) != I2C_SUCCESS) + goto fail_mini_init; + + if (write_reg(client, ZT7554_TOUCH_MODE, info->touch_mode) != I2C_SUCCESS) + goto fail_mini_init; + + zt7554_set_ta_status(info); + zt7554_set_optional_mode(info, true); + + /* soft calibration */ + if (write_cmd(client, ZT7554_CALIBRATE_CMD) != I2C_SUCCESS) + goto fail_mini_init; + + if (write_reg(client, ZT7554_INT_ENABLE_FLAG, info->cap_info.ic_int_mask) != I2C_SUCCESS) + goto fail_mini_init; + + /* read garbage data */ + for (i = 0; i < 10; i++) { + write_cmd(client, ZT7554_CLEAR_INT_STATUS_CMD); + udelay(10); + } + + if (info->touch_mode != TOUCH_POINT_MODE) { + if (write_reg(client, ZT7554_DELAY_RAW_FOR_HOST, + RAWDATA_DELAY_FOR_HOST) != I2C_SUCCESS){ + dev_err(&client->dev, "Failed to set ZT7554_DELAY_RAW_FOR_HOST\n"); + goto fail_mini_init; + } + } + +#if ESD_TIMER_INTERVAL + if (write_reg(client, ZT7554_PERIODICAL_INTERRUPT_INTERVAL, + SCAN_RATE_HZ * ESD_TIMER_INTERVAL) != I2C_SUCCESS) + goto fail_mini_init; + + esd_timer_start(CHECK_ESD_TIMER, info); +#endif + + dev_info(&client->dev, "Successfully mini initialized\r\n"); + return true; + +fail_mini_init: + dev_err(&client->dev, "Failed to initialize mini init\n"); + zt7554_power_control(info, POWER_OFF); + zt7554_power_control(info, POWER_ON_SEQUENCE); + + if (!init_touch(info)) { + dev_err(&client->dev, "Failed to initialize\n"); + return false; + } + +#if ESD_TIMER_INTERVAL + esd_timer_start(CHECK_ESD_TIMER, info); +#endif + return true; +} + +static void clear_report_data(struct zt7554_ts_info *info) +{ + int i; + bool reported = false; + u8 sub_status; + + for (i = 0; i < info->cap_info.button_num; i++) { + if (info->button[i] == ICON_BUTTON_DOWN) { + info->button[i] = ICON_BUTTON_UP; + input_report_key(info->input_dev, BUTTON_MAPPING_KEY[i], 0); + reported = true; + } + } + + for (i = 0; i < info->cap_info.multi_fingers; i++) { + sub_status = info->reported_touch_info.coord[i].sub_status; + if (zinitix_bit_test(sub_status, SUB_BIT_EXIST)) { + input_mt_slot(info->input_dev, i); + input_mt_report_slot_state(info->input_dev, MT_TOOL_FINGER, 0); + reported = true; + } + info->reported_touch_info.coord[i].sub_status = 0; + } + + if (reported) + input_sync(info->input_dev); + +} + +static irqreturn_t zt7554_touch_work(int irq, void *data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)data; + struct zt7554_ts_platform_data *pdata = info->pdata; + struct i2c_client *client = info->client; + int i; + u8 sub_status; + u8 prev_sub_status; + u32 x, y, maxX, maxY; + u32 w; + u32 tmp; + u8 palm = 0; + + + if (gpio_get_value(info->pdata->gpio_int)) { + dev_err(&client->dev, "Invalid interrupt\n"); + return IRQ_HANDLED; + } + + if (down_trylock(&info->work_lock)) { + dev_err(&client->dev, "%s: Failed to occupy work lock\n", __func__); + write_cmd(client, ZT7554_CLEAR_INT_STATUS_CMD); + return IRQ_HANDLED; + } +#if ESD_TIMER_INTERVAL + esd_timer_stop(info); +#endif + + if (info->work_state != NOTHING) { + dev_err(&client->dev, "%s: Other process occupied\n", __func__); + udelay(DELAY_FOR_SIGNAL_DELAY); + if (!gpio_get_value(info->pdata->gpio_int)) { + write_cmd(client, ZT7554_CLEAR_INT_STATUS_CMD); + udelay(DELAY_FOR_SIGNAL_DELAY); + } + goto out; + } + info->work_state = NORMAL; + +#if ZINITIX_I2C_CHECKSUM + i = 0; + if (!ts_read_coord(info) || info->touch_info.status == 0xffff || info->touch_info.status == 0x1) { + for (i = 1; i < 50; i++) { + if (!(!ts_read_coord(info) || info->touch_info.status == 0xffff + || info->touch_info.status == 0x1)) + break; + } + } + + if (i == 50) { + dev_err(&client->dev, "Failed to read info coord\n"); + zt7554_power_control(info, POWER_OFF); + zt7554_power_control(info, POWER_ON_SEQUENCE); + clear_report_data(info); + mini_init_touch(info); + goto out; + } +#else + if (!ts_read_coord(info) || info->touch_info.status == 0xffff || info->touch_info.status == 0x1) { + dev_err(&client->dev, "Failed to read info coord\n"); + zt7554_power_control(info, POWER_OFF); + zt7554_power_control(info, POWER_ON_SEQUENCE); + clear_report_data(info); + mini_init_touch(info); + goto out; + } +#endif + /* invalid : maybe periodical repeated int. */ + if (info->touch_info.status == 0x0) + goto out; + + if (zinitix_bit_test(info->touch_info.status, BIT_ICON_EVENT)) { + if (read_data(info->client, ZT7554_ICON_STATUS_REG, + (u8 *)(&info->icon_event_reg), 2) < 0) { + dev_err(&client->dev, "Failed to read button info\n"); + write_cmd(client, ZT7554_CLEAR_INT_STATUS_CMD); + goto out; + } + + for (i = 0; i < info->cap_info.button_num; i++) { + if (zinitix_bit_test(info->icon_event_reg, (BIT_O_ICON0_DOWN + i))) { + info->button[i] = ICON_BUTTON_DOWN; + input_report_key(info->input_dev, BUTTON_MAPPING_KEY[i], 1); + dev_info(&client->dev, "Button down\n"); + } + } + + for (i = 0; i < info->cap_info.button_num; i++) { + if (zinitix_bit_test(info->icon_event_reg, (BIT_O_ICON0_UP + i))) { + info->button[i] = ICON_BUTTON_UP; + input_report_key(info->input_dev, BUTTON_MAPPING_KEY[i], 0); + dev_info(&client->dev, "Button up\n"); + } + } + } + + for (i = 0; i < info->cap_info.multi_fingers; i++) { + sub_status = info->touch_info.coord[i].sub_status; + prev_sub_status = info->reported_touch_info.coord[i].sub_status; + + if (zinitix_bit_test(sub_status, SUB_BIT_EXIST)) { + x = info->touch_info.coord[i].x; + y = info->touch_info.coord[i].y; + w = info->touch_info.coord[i].width; + + /* transformation from touch to screen orientation */ + //if (pdata->orientation & TOUCH_V_FLIP) + // y = info->cap_info.MaxY + info->cap_info.MinY - y; + + //if (pdata->orientation & TOUCH_H_FLIP) + // x = info->cap_info.MaxX + info->cap_info.MinX - x; + + maxX = info->cap_info.MaxX; + maxY = info->cap_info.MaxY; +/* + if (pdata->orientation & TOUCH_XY_SWAP) { + zinitix_swap_v(x, y, tmp); + zinitix_swap_v(maxX, maxY, tmp); + } +*/ + info->touch_info.coord[i].x = x; + info->touch_info.coord[i].y = y; + if (zinitix_bit_test(sub_status, SUB_BIT_DOWN)) { +#if TOUCH_BOOSTER + if (!min_handle) { + min_handle = cpufreq_limit_min_freq(touch_cpufreq_lock, "TSP"); + if (IS_ERR(min_handle)) { + dev_err(&client->dev, "cannot get cpufreq_min lock\n"); + min_handle = NULL; + } + _store_cpu_num_min_limit(2); + dev_dbg(&client->dev, "cpu freq on\n"); + } + info->finger_cnt++; +#endif +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + dev_info(&client->dev, "Finger [%02d] x = %d, y = %d," + " w = %d\n", i, x, y, w); +#else + dev_info(&client->dev, "Finger down\n"); +#endif + } + if (w == 0) + w = 1; + + input_mt_slot(info->input_dev, i); + input_mt_report_slot_state(info->input_dev, MT_TOOL_FINGER, 1); + + input_report_abs(info->input_dev, ABS_MT_TOUCH_MAJOR, (u32)w); + input_report_abs(info->input_dev, ABS_MT_PRESSURE, (u32)w); + input_report_abs(info->input_dev, ABS_MT_WIDTH_MAJOR, + (u32)((palm == 1) ? (w - 40) : w)); + input_report_abs(info->input_dev, ABS_MT_POSITION_X, x); + input_report_abs(info->input_dev, ABS_MT_POSITION_Y, y); + } else if (zinitix_bit_test(sub_status, SUB_BIT_UP) || + zinitix_bit_test(prev_sub_status, SUB_BIT_EXIST)) { +#if TOUCH_BOOSTER + info->finger_cnt--; + if (!info->finger_cnt) { + cpufreq_limit_put(min_handle); + min_handle = NULL; + _store_cpu_num_min_limit(1); + dev_dbg(&client->dev, "cpu freq off\n"); + } +#endif + +#if !defined(CONFIG_SAMSUNG_PRODUCT_SHIP) + dev_info(&client->dev, "Finger [%02d] up\n", i); +#else + dev_info(&client->dev, "Finger up\n"); +#endif + memset(&info->touch_info.coord[i], 0x0, sizeof(struct coord)); + input_mt_slot(info->input_dev, i); + input_mt_report_slot_state(info->input_dev, MT_TOOL_FINGER, 0); + + } else + memset(&info->touch_info.coord[i], 0x0, sizeof(struct coord)); + } + memcpy((char *)&info->reported_touch_info, (char *)&info->touch_info, + sizeof(struct point_info)); + input_sync(info->input_dev); + +out: + if (info->work_state == NORMAL) { +#if ESD_TIMER_INTERVAL + esd_timer_start(CHECK_ESD_TIMER, info); +#endif + info->work_state = NOTHING; + } + + up(&info->work_lock); + + return IRQ_HANDLED; +} + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void zt7554_ts_late_resume(struct early_suspend *h) +{ + struct zt7554_ts_info *info = misc_info; + //struct capa_info *cap = &(info->cap_info); + + if (!info) + return; + + down(&info->work_lock); + if (info->work_state != RESUME && info->work_state != EALRY_SUSPEND) { + dev_err(&info->client->dev, "%s: invalid work proceedure\n", __func__); + up(&info->work_lock); + return; + } + zt7554_power_control(info, POWER_ON_SEQUENCE); + info->work_state = RESUME; + if (!mini_init_touch(info)) + goto fail_late_resume; + +#if 0 /* FIXME: below codes are not necessary */ + if (read_data(info->client, ZT7554_FIRMWARE_VERSION, (u8 *)&cap->fw_version, 2)); + if (read_data(info->client, ZT7554_MINOR_FW_VERSION, (u8 *)&cap->fw_minor_version, 2)); + if (read_data(info->client, ZT7554_DATA_VERSION_REG, (u8 *)&cap->reg_data_version, 2)); + if (read_data(info->client, ZT7554_HW_ID, (u8 *)&cap->hw_id, 2)); + if (read_data(info->client, ZT7554_VENDOR_ID, (u8 *)&cap->vendor_id, 2)); +#endif + + enable_irq(info->irq); + info->work_state = NOTHING; + up(&info->work_lock); + return; + +fail_late_resume: + dev_err(&info->client->dev, "failed to late resume\n"); + enable_irq(info->irq); + info->work_state = NOTHING; + up(&info->work_lock); + return; +} + +static void zt7554_ts_early_suspend(struct early_suspend *h) +{ + struct zt7554_ts_info *info = misc_info; + + if (!info) + return; + + disable_irq(info->irq); +#if ESD_TIMER_INTERVAL + flush_work(&info->tmr_work); +#endif + + down(&info->work_lock); + if (info->work_state != NOTHING) { + dev_err(&info->client->dev, "%s: invalid work proceedure\n", __func__); + up(&info->work_lock); + enable_irq(info->irq); + return; + } + info->work_state = EALRY_SUSPEND; + + clear_report_data(info); +#if ESD_TIMER_INTERVAL + write_reg(info->client, ZT7554_PERIODICAL_INTERRUPT_INTERVAL, 0); + esd_timer_stop(info); +#endif + + zt7554_power_control(info, POWER_OFF); +#if TOUCH_BOOSTER + if (min_handle) { + dev_err(&info->client->dev, "%s: Cpu was not in Normal Freq..\n", __func__); + if (cpufreq_limit_put(min_handle) < 0) + dev_err(&info->client->dev, "Error in scaling down cpu frequency\n"); + min_handle = NULL; + info->finger_cnt = 0; + dev_dbg(&info->client->dev, "cpu freq off\n"); + } +#endif + up(&info->work_lock); + return; +} +#endif /* CONFIG_HAS_EARLYSUSPEND */ + +#if defined(CONFIG_PM) +static int zt7554_ts_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct zt7554_ts_info *info = i2c_get_clientdata(client); + //struct capa_info *cap = &(info->cap_info); + + down(&info->work_lock); + if (info->work_state != SUSPEND) { + dev_err(&client->dev, "%s: Invalid work proceedure\n", __func__); + up(&info->work_lock); + return 0; + } + zt7554_power_control(info, POWER_ON_SEQUENCE); + +#ifdef CONFIG_HAS_EARLYSUSPEND + info->work_state = RESUME; +#else + info->work_state = NOTHING; + if (!mini_init_touch(info)) + dev_err(&client->dev, "Failed to resume\n"); +#if 0 /* FIXME: below codes are not necessary */ + if (read_data(client, ZT7554_FIRMWARE_VERSION, (u8 *)&cap->fw_version, 2)); + if (read_data(client, ZT7554_MINOR_FW_VERSION, (u8 *)&cap->fw_minor_version, 2)); + if (read_data(client, ZT7554_DATA_VERSION_REG, (u8 *)&cap->reg_data_version, 2)); + if (read_data(client, ZT7554_HW_ID, (u8 *)&cap->hw_id, 2)); + if (read_data(client, ZT7554_VENDOR_ID, (u8 *)&cap->vendor_id, 2)); +#endif + enable_irq(info->irq); +#endif + + up(&info->work_lock); + + return 0; +} + +static int zt7554_ts_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct zt7554_ts_info *info = i2c_get_clientdata(client); + +#ifndef CONFIG_HAS_EARLYSUSPEND + disable_irq(info->irq); +#endif +#if ESD_TIMER_INTERVAL + flush_work(&info->tmr_work); +#endif + + down(&info->work_lock); + if (info->work_state != NOTHING && info->work_state != SUSPEND) { + dev_err(&client->dev, "%s: Invalid work proceedure\n", __func__); + up(&info->work_lock); +#ifndef CONFIG_HAS_EARLYSUSPEND + enable_irq(info->irq); +#endif + return 0; + } + +#ifndef CONFIG_HAS_EARLYSUSPEND + clear_report_data(info); +#if ESD_TIMER_INTERVAL + esd_timer_stop(info); +#endif +#endif + write_cmd(info->client, ZT7554_SLEEP_CMD); + zt7554_power_control(info, POWER_OFF); + info->work_state = SUSPEND; + + up(&info->work_lock); + + return 0; +} +#endif + +bool ts_set_touchmode(u16 value) +{ + int i; + u16 N_cnt; + u16 U_cnt; + u16 freq; + u16 reg_val; + + disable_irq(misc_info->irq); + + down(&misc_info->work_lock); + if (misc_info->work_state != NOTHING) { + dev_err(&misc_info->client->dev, "other process occupied.\n"); + enable_irq(misc_info->irq); + up(&misc_info->work_lock); + return -1; + } + + misc_info->work_state = SET_MODE; + + /* SDND mode */ + if (value == TOUCH_DND_MODE) { + N_cnt = SEC_SDND_N_COUNT; + U_cnt = SEC_SDND_U_COUNT; + freq = SEC_SDND_FREQUENCY; + read_data(misc_info->client, 0x011e, (u8 *)®_val, 2); + zinitix_bit_clr(reg_val, 1); + write_reg(misc_info->client, 0x011e, reg_val); +#ifdef SUPPORTED_DND_SHIFT_VALUE + if (write_reg(misc_info->client, ZT7554_DND_SHIFT_VALUE, + SEC_DND_SHIFT_VALUE) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Failed to set SDND_SHIFT_VALUE\n"); +#endif + if (write_reg(misc_info->client, ZT7554_DND_N_COUNT, N_cnt) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Fail to set ZT7554_SDND_N_COUNT %d.\n", N_cnt); + if (write_reg(misc_info->client, ZT7554_DND_U_COUNT, U_cnt) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Fail to set ZT7554_SDND_U_COUNT %d.\n", U_cnt); + if (write_reg(misc_info->client, ZT7554_AFE_FREQUENCY, freq) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Fail to set ZT7554_SAFE_FREQUENCY %d.\n", freq); + } else if (value == TOUCH_PDND_MODE) { /* DND mode */ + N_cnt = SEC_SDND_N_COUNT; + U_cnt = SEC_SDND_U_COUNT; + freq = SEC_SDND_FREQUENCY; + read_data(misc_info->client, 0x011e, (u8 *)®_val, 2); + zinitix_bit_clr(reg_val, 1); + write_reg(misc_info->client, 0x011e, reg_val); + + if (write_reg(misc_info->client, ZT7554_DND_N_COUNT, N_cnt) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Fail to set ZT7554_DND_N_COUNT %d.\n", N_cnt); + if (write_reg(misc_info->client, ZT7554_DND_U_COUNT, U_cnt) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Fail to set ZT7554_DND_U_COUNT %d.\n", U_cnt); + if (write_reg(misc_info->client, ZT7554_AFE_FREQUENCY, freq) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Fail to set ZT7554_AFE_FREQUENCY %d.\n", freq); + } + + else if (misc_info->touch_mode == TOUCH_DND_MODE || misc_info->touch_mode == TOUCH_PDND_MODE) { +#ifdef SUPPORTED_DND_SHIFT_VALUE + if (write_reg(misc_info->client, ZT7554_DND_SHIFT_VALUE, + misc_info->cap_info.shift_value) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Failed to set DND_SHIFT_VALUE\n"); +#endif + if (write_reg(misc_info->client, ZT7554_DND_N_COUNT, + misc_info->cap_info.N_cnt) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Fail to reset ZT7554_AFE_FREQUENCY %d.\n", + misc_info->cap_info.N_cnt); + if (write_reg(misc_info->client, ZT7554_DND_U_COUNT, + misc_info->cap_info.u_cnt) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Fail to reset ZT7554_DND_U_COUNT %d.\n", + misc_info->cap_info.u_cnt); + if (write_reg(misc_info->client, ZT7554_AFE_FREQUENCY, + misc_info->cap_info.afe_frequency) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Fail to reset ZT7554_AFE_FREQUENCY %d.\n", + misc_info->cap_info.afe_frequency); + } + + if (value == TOUCH_SEC_MODE) + misc_info->touch_mode = TOUCH_POINT_MODE; + else + misc_info->touch_mode = value; + + if (misc_info->touch_mode != TOUCH_POINT_MODE) { + if (write_reg(misc_info->client, ZT7554_DELAY_RAW_FOR_HOST, + RAWDATA_DELAY_FOR_HOST) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Fail to set ZT7554_DELAY_RAW_FOR_HOST\n"); + } + + if (write_reg(misc_info->client, ZT7554_TOUCH_MODE, + misc_info->touch_mode) != I2C_SUCCESS) + dev_err(&misc_info->client->dev, "Fail to set ZINITX_TOUCH_MODE\n"); + + /* clear garbage data */ + for (i = 0; i < 10; i++) { + mdelay(20); + write_cmd(misc_info->client, ZT7554_CLEAR_INT_STATUS_CMD); + } + + misc_info->work_state = NOTHING; + enable_irq(misc_info->irq); + up(&misc_info->work_lock); + + return 1; +} + +int ts_upgrade_sequence(const u8 *firmware_data) +{ + disable_irq(misc_info->irq); + down(&misc_info->work_lock); + misc_info->work_state = UPGRADE; + +#if ESD_TIMER_INTERVAL + esd_timer_stop(misc_info); +#endif + clear_report_data(misc_info); + + dev_info(&misc_info->client->dev, "start upgrade firmware\n"); + if (!ts_upgrade_firmware(misc_info, firmware_data, misc_info->cap_info.ic_fw_size)) { + enable_irq(misc_info->irq); + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + return -1; + } + + if (!init_touch(misc_info)) { + enable_irq(misc_info->irq); + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + return -1; + } + +#if ESD_TIMER_INTERVAL + esd_timer_start(CHECK_ESD_TIMER, misc_info); +#endif + enable_irq(misc_info->irq); + misc_info->work_state = NOTHING; + up(&misc_info->work_lock); + + return 0; +} + +#ifdef SEC_FACTORY_TEST +#define TSP_CMD(name, func) .cmd_name = name, .cmd_func = func + +static struct tsp_cmd tsp_cmds[] = { + {TSP_CMD("fw_update", fw_update),}, + {TSP_CMD("get_fw_ver_bin", get_fw_ver_bin),}, + {TSP_CMD("get_fw_ver_ic", get_fw_ver_ic),}, + {TSP_CMD("get_threshold", get_threshold),}, + {TSP_CMD("get_chip_vendor", get_chip_vendor),}, + {TSP_CMD("get_chip_name", get_chip_name),}, + {TSP_CMD("get_x_num", get_x_num),}, + {TSP_CMD("get_y_num", get_y_num),}, + {TSP_CMD("not_support_cmd", not_support_cmd),}, + + /* vendor dependant command */ + {TSP_CMD("run_reference_read", run_reference_read),}, + {TSP_CMD("run_reference_diff", run_reference_PDiff),}, + {TSP_CMD("get_reference", get_reference),}, + {TSP_CMD("run_dnd_read", run_preference_read),}, + {TSP_CMD("get_dnd", get_preference),}, + {TSP_CMD("run_delta_read", run_delta_read),}, + {TSP_CMD("get_delta", get_delta),}, +}; + +static inline void set_cmd_result(struct zt7554_ts_info *info, char *buff, int len) +{ + strncat(info->factory_info->cmd_result, buff, len); +} + +static inline void set_default_result(struct zt7554_ts_info *info) +{ + char delim = ':'; + memset(info->factory_info->cmd_result, 0x00, ARRAY_SIZE(info->factory_info->cmd_result)); + memcpy(info->factory_info->cmd_result, info->factory_info->cmd, strlen(info->factory_info->cmd)); + strncat(info->factory_info->cmd_result, &delim, 1); +} + +static void fw_update(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct i2c_client *client = info->client; + int ret = 0; + const u8 *buff = 0; + mm_segment_t old_fs = {0}; + struct file *fp = NULL; + long fsize = 0, nread = 0; + char result[16] = {0}; + + set_default_result(info); + + switch (info->factory_info->cmd_param[0]) { + case BUILT_IN: + ret = ts_upgrade_sequence((u8 *)m_firmware_data); + if (ret < 0) { + info->factory_info->cmd_state = FAIL; + return; + } + break; + case UMS: + old_fs = get_fs(); + set_fs(KERNEL_DS); + + fp = filp_open(info->pdata->ext_fw_name, O_RDONLY, S_IRUSR); + if (IS_ERR(fp)) { + dev_err(&client->dev, "file open error:%d\n", (s32)fp); + info->factory_info->cmd_state = FAIL; + goto err_open; + } + + fsize = fp->f_path.dentry->d_inode->i_size; + + if (fsize != info->cap_info.ic_fw_size) { + dev_err(&client->dev, "invalid fw size!!\n"); + info->factory_info->cmd_state = FAIL; + goto err_open; + } + + buff = kzalloc((size_t)fsize, GFP_KERNEL); + if (!buff) { + dev_err(&client->dev, "failed to alloc buffer for fw\n"); + info->factory_info->cmd_state = FAIL; + goto err_alloc; + } + + nread = vfs_read(fp, (char __user *)buff, fsize, &fp->f_pos); + if (nread != fsize) { + info->factory_info->cmd_state = FAIL; + goto err_fw_size; + } + + filp_close(fp, current->files); + set_fs(old_fs); + dev_info(&client->dev, "ums fw is loaded!!\n"); + + ret = ts_upgrade_sequence((u8 *)buff); + if (ret < 0) { + kfree(buff); + info->factory_info->cmd_state = FAIL; + goto update_fail; + } + break; + + default: + dev_err(&client->dev, "invalid fw file type!!\n"); + goto update_fail; + } + + info->factory_info->cmd_state = OK; + snprintf(result, sizeof(result) , "%s", "OK"); + set_cmd_result(info, result, strnlen(result, sizeof(result))); + kfree(buff); + + return; + + +if (fp != NULL) { +err_fw_size: + kfree(buff); +err_alloc: + filp_close(fp, NULL); +err_open: + set_fs(old_fs); +} +update_fail: + snprintf(result, sizeof(result) , "%s", "NG"); + set_cmd_result(info, result, strnlen(result, sizeof(result))); +} + +static void get_fw_ver_bin(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + u16 fw_version, fw_minor_version, reg_version, hw_id, vendor_id; + u32 version, length; + + set_default_result(info); + + fw_version = (u16)(m_firmware_data[52] | (m_firmware_data[53] << 8)); + fw_minor_version = (u16)(m_firmware_data[56] | (m_firmware_data[57] << 8)); + reg_version = (u16)(m_firmware_data[60] | (m_firmware_data[61] << 8)); + hw_id = (u16)(m_firmware_data[48] | (m_firmware_data[49] << 8)); + version = (u32)((u32)(hw_id & 0xff) << 16) | ((fw_version & 0xf) << 12) + | ((fw_minor_version & 0xf) << 8) | (reg_version & 0xff); + + length = sizeof(vendor_id); + snprintf(finfo->cmd_buff, length + 1, "%s", "ZI"); + snprintf(finfo->cmd_buff + length, sizeof(finfo->cmd_buff) - length, "%06X", version); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_dbg(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +static void get_fw_ver_ic(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + u16 fw_version, fw_minor_version, reg_version, hw_id, vendor_id; + u32 version, length; + + set_default_result(info); + + fw_version = info->cap_info.fw_version; + fw_minor_version = info->cap_info.fw_minor_version; + reg_version = info->cap_info.reg_data_version; + hw_id = info->cap_info.hw_id; + vendor_id = ntohs(info->cap_info.vendor_id); + version = (u32)((u32)(hw_id & 0xff) << 16) | ((fw_version & 0xf) << 12) + | ((fw_minor_version & 0xf) << 8) | (reg_version & 0xff); + + length = sizeof(vendor_id); + snprintf(finfo->cmd_buff, length + 1, "%s", (u8 *)&vendor_id); + snprintf(finfo->cmd_buff + length, sizeof(finfo->cmd_buff) - length, "%06X", version); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_dbg(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +static void get_threshold(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), + "%d", info->cap_info.threshold); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_dbg(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +#define ZT7554_VENDOR_NAME "ZINITIX" + +static void get_chip_vendor(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", ZT7554_VENDOR_NAME); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_dbg(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +#define ZT7554_CHIP_NAME "ZT7554" + +static void get_chip_name(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", ZT7554_CHIP_NAME); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_dbg(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +static void get_x_num(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), + "%u", info->cap_info.x_node_num); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_dbg(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +static void get_y_num(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), + "%u", info->cap_info.y_node_num); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_dbg(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +static void not_support_cmd(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + set_default_result(info); + + sprintf(finfo->cmd_buff, "%s", "NA"); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + info->factory_info->cmd_state = NOT_APPLICABLE; + + dev_dbg(&client->dev, "%s: \"%s(%d)\"\n", __func__, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +static void run_reference_read(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + struct tsp_raw_data *raw_data = info->raw_data; + u32 min, max; + s32 i, j; + + set_default_result(info); + + ts_set_touchmode(TOUCH_DND_MODE); + get_raw_data(info, (u8 *)raw_data->ref_data, 10); + ts_set_touchmode(TOUCH_POINT_MODE); + + min = raw_data->ref_data[0]; + max = raw_data->ref_data[0]; + + for (i = 0; i < info->cap_info.x_node_num; i++) { + for (j = 0; j < info->cap_info.y_node_num; j++) { + dev_dbg(&client->dev, "ref_data[%d] : %d\n", i * info->cap_info.y_node_num + j, + raw_data->ref_data[i * info->cap_info.y_node_num + j]); + + if (raw_data->ref_data[i * info->cap_info.y_node_num + j] < min && + raw_data->ref_data[i * info->cap_info.y_node_num + j] != 0) + min = raw_data->ref_data[i * info->cap_info.y_node_num + j]; + + if (raw_data->ref_data[i * info->cap_info.y_node_num + j] > max) + max = raw_data->ref_data[i * info->cap_info.y_node_num + j]; + + } + } + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%d,%d\n", min, max); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_dbg(&client->dev, "%s: \"%s\"(%d)\n", __func__, finfo->cmd_buff, + strlen(finfo->cmd_buff)); + + return; +} + +#define PDIFF_DEBUG 1 +#if PDIFF_DEBUG +int print_diff[29*18] = {0,}; +#endif + +static bool run_reference_PDiff_read(void *device_data, const u16 h_diff[][17], + const u16 v_diff[][18], int bHidden1, int bMenu, int bBack, int bHidden2) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + int i, j, diff_val, pre_val, next_val, x_num, y_num; + bool pass = true; + int buttons[4] = {bHidden1, bMenu, bBack, bHidden2}; + + ts_set_touchmode(TOUCH_PDND_MODE); + get_raw_data(info, (u8 *)info->dnd_data, 10); + ts_set_touchmode(TOUCH_POINT_MODE); + + x_num = info->cap_info.x_node_num; + y_num = info->cap_info.y_node_num; +#if PDIFF_DEBUG + printk(KERN_DEBUG "%s : ++++++ DND SPEC +++++++++\n", __func__); + for (i = 0; i < x_num; i++) { + printk(KERN_DEBUG "%s : ", __func__); + for (j = 0; j < y_num; j++) + printk(KERN_DEBUG "%5d ", info->dnd_data[i*y_num+j]); + printk(KERN_DEBUG "\n"); + } +#endif + printk(KERN_DEBUG "%s : ------- DND SPEC ----------\n", __func__); + printk(KERN_DEBUG "%s : TSP Diff test scale factor = %d\n", __func__, info->ref_scale_factor); + printk(KERN_DEBUG "%s : H Diff start\n", __func__); + + /* H DIff */ + info->hdiff_max_x = info->hdiff_max_y = info->hdiff_min_x = info->hdiff_min_y = 0; + info->hdiff_max_val = -32768; + info->hdiff_min_val = 32767; + + for (i = 0; i < x_num - 1; i++) { + for (j = 0; j < y_num - 1; j++) { + printk(KERN_DEBUG "%d ", info->dnd_data[i*info->cap_info.y_node_num+j]); + next_val = info->dnd_data[(i*y_num)+(j+1)]; + pre_val = info->dnd_data[(i*y_num)+j]; + diff_val = (next_val > pre_val) ? (next_val - pre_val) : (pre_val - next_val); + pre_val = (info->ref_scale_factor == 100) ? ((s16)h_diff[i][j]) : + ((s16)(((s32)h_diff[i][j] * info->ref_scale_factor) / 100)); + if (diff_val > pre_val) + pass = false; +#if PDIFF_DEBUG + print_diff[i * y_num + j] = diff_val; +#endif + if (info->hdiff_max_val < diff_val) { + info->hdiff_max_val = diff_val; + info->hdiff_max_x = i; + info->hdiff_max_y = j + 1; + } + if (info->hdiff_min_val > diff_val) { + info->hdiff_min_val = diff_val; + info->hdiff_min_x = i; + info->hdiff_min_y = j + 1; + } + } + printk(KERN_DEBUG "\n"); + } +#if PDIFF_DEBUG + printk(KERN_DEBUG "%s : ++++++ h_diff SPEC +++++++++\n", __func__); + for (i = 0; i < x_num - 1; i++) { + printk(KERN_DEBUG "%s : ", __func__); + for (j = 0; j < y_num - 1; j++) + printk(KERN_DEBUG "%5d ", (u16)h_diff[i][j]); + printk(KERN_DEBUG "\n"); + } + printk(KERN_DEBUG "%s : ------- h_diff SPEC ----------\n", __func__); + printk(KERN_DEBUG "%s : ++++++ calculated h_diff SPEC +++++++++\n", __func__); + for (i = 0; i < x_num-1; i++) { + printk(KERN_DEBUG "%s : ", __func__); + for (j = 0; j < y_num-1; j++) + printk(KERN_DEBUG "%5d ", print_diff[i * y_num + j]); + printk(KERN_DEBUG "\n"); + } + printk(KERN_DEBUG "%s : ------- calculated h_diff SPEC ----------\n", __func__); +#endif + printk(KERN_DEBUG "%s :", __func__); + printk(KERN_DEBUG "H diff %s\n", pass ? "pass" : "fail"); + + printk(KERN_DEBUG "%s : V Diff start\n", __func__); + info->vdiff_max_x = info->vdiff_max_y = info->vdiff_min_x = info->vdiff_min_y = 0; + info->vdiff_max_val = -32768; + info->vdiff_min_val = 32767; + + /* V DIff View */ + for (i = 0; i < x_num - 2; i++) { + for (j = 0; j < y_num; j++) { + printk(KERN_DEBUG "%d ", info->dnd_data[i * info->cap_info.y_node_num + j]); + next_val = info->dnd_data[(i * y_num) + j]; + pre_val = info->dnd_data[(i * y_num) + j + y_num]; + diff_val = (next_val > pre_val) ? (next_val - pre_val) : (pre_val - next_val); + pre_val = (info->ref_scale_factor == 100) ? ((s16)v_diff[i][j]) : + ((s16)(((s32)v_diff[i][j] * info->ref_scale_factor) / 100)); + if (diff_val > pre_val) + pass = false; +#if PDIFF_DEBUG + print_diff[i * y_num + j] = diff_val; +#endif + if (info->vdiff_max_val < diff_val) { + info->vdiff_max_val = diff_val; + info->vdiff_max_x = i; + info->vdiff_max_y = j + 1; + } + if (info->vdiff_min_val > diff_val) { + info->vdiff_min_val = diff_val; + info->vdiff_min_x = i; + info->vdiff_min_y = j + 1; + } + } + printk(KERN_DEBUG "\n"); + } + printk(KERN_DEBUG "%s : ", __func__); + printk(KERN_DEBUG "V Diff view %s\n", pass ? "pass" : "fail"); + +#if PDIFF_DEBUG + printk(KERN_DEBUG "%s : ++++++ v_diff SPEC +++++++++\n", __func__); + for (i = 0; i < x_num - 2; i++) { + printk(KERN_DEBUG "%s : ", __func__); + for (j = 0; j < y_num; j++) + printk(KERN_DEBUG "%5d ", (u16)v_diff[i][j]); + printk(KERN_DEBUG "\n"); + } + printk(KERN_DEBUG "%s : ------- v_diff SPEC ----------\n", __func__); + printk(KERN_DEBUG "%s : ++++++ calculated v_diff SPEC +++++++++\n", __func__); + for (i = 0; i < x_num - 2; i++) { + printk(KERN_DEBUG "%s : ", __func__); + for (j = 0; j < y_num; j++) + printk(KERN_DEBUG "%5d ", print_diff[i * y_num + j]); + printk(KERN_DEBUG "\n"); + } + printk(KERN_DEBUG "%s : ------- calculated v_diff SPEC ----------\n", __func__); +#endif + + /* V DIff button */ + if (info->cap_info.button_num) { + printk(KERN_DEBUG "%s : TSP Button scale = %d\n", __func__, info->ref_scale_factor); + printk(KERN_DEBUG "%s : TSP Button Diff Spec. = %d %d %d %d\n", __func__, + v_diff[x_num-2][buttons[0]], v_diff[x_num-2][buttons[1]], + v_diff[x_num-2][buttons[2]], v_diff[x_num-2][buttons[3]]); + + for (i = 0; i < 4; i++) { + int nButton = buttons[i]; + if (nButton < 0) + continue; + next_val = info->dnd_data[(x_num - 1) * y_num + nButton]; + pre_val = info->dnd_data[(x_num - 2) * y_num + nButton]; + diff_val = (next_val > pre_val) ? (next_val - pre_val) : (pre_val - next_val); + pre_val = (info->ref_scale_factor == 100) ? + ((s16)v_diff[x_num - 2][nButton] + info->ref_btn_option) : + ((s16)(((s32)v_diff[x_num - 2][nButton] * info->ref_scale_factor) / 100) + + info->ref_btn_option); + + if (diff_val > pre_val) { + pass = false; + if (info->vdiff_max_val < diff_val) { + info->vdiff_max_val = diff_val; + info->vdiff_max_x = x_num - 1; + info->vdiff_max_y = nButton; + } + if (info->vdiff_min_val > diff_val) { + info->vdiff_min_val = diff_val; + info->vdiff_min_x = x_num - 1; + info->vdiff_min_y = nButton; + } + } +#if PDIFF_DEBUG + printk(KERN_DEBUG "%s : ", __func__); + printk(KERN_DEBUG "buttons[%d]'s diff_val is %d\n", i, diff_val); +#endif + } + } + printk(KERN_DEBUG "%s : ", __func__); + printk(KERN_DEBUG "Button Diff %s\n", pass ? "pass" : "fail"); + + return pass; +} + + + +static void run_reference_PDiff(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct tsp_factory_info *finfo = info->factory_info; + char buff[40] = {0}; + bool check; + + finfo->cmd_state = RUNNING; + set_default_result(info); + + dev_dbg(&info->client->dev, "run_ref_diff check hw_id = 0x%04X\n", info->cap_info.hw_id); + + check = run_reference_PDiff_read(device_data, dnd_h_diff_00, dnd_v_diff_00, -1, 4, 13, -1); + if (check) { + dev_dbg(&info->client->dev, "diff pass\n"); + sprintf(buff, "%d,%d,%d,%d,pass\n", info->hdiff_min_val, + info->hdiff_max_val, info->vdiff_min_val, info->vdiff_max_val); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + finfo->cmd_state = OK; + } else { + dev_dbg(&info->client->dev, "diff fail\n"); + sprintf(buff, "%d,%d,%d,%d,fail\n", info->vdiff_min_val, + info->vdiff_max_val, info->vdiff_min_val, info->vdiff_max_val); + set_cmd_result(info, buff, strnlen(buff, sizeof(buff))); + finfo->cmd_state = FAIL; + } + +} +static void get_reference(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + struct tsp_raw_data *raw_data = info->raw_data; + unsigned int val; + int x_node, y_node; + int node_num; + + set_default_result(info); + + x_node = finfo->cmd_param[0]; + y_node = finfo->cmd_param[1]; + + if (x_node < 0 || x_node >= info->cap_info.x_node_num || + y_node < 0 || y_node >= info->cap_info.y_node_num) { + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", "abnormal"); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + info->factory_info->cmd_state = FAIL; + return; + } + + node_num = x_node * info->cap_info.y_node_num + y_node; + + val = raw_data->ref_data[node_num]; + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%u", val); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + dev_dbg(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +static void run_preference_read(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + struct tsp_raw_data *raw_data = info->raw_data; + u16 min, max; + s32 i, j; + + set_default_result(info); + + ts_set_touchmode(TOUCH_PDND_MODE); + get_raw_data(info, (u8 *)raw_data->pref_data, 10); + ts_set_touchmode(TOUCH_POINT_MODE); + + min = 0xFFFF; + max = 0x0000; + + for (i = 0; i < info->cap_info.x_node_num; i++) { + for (j = 0; j < info->cap_info.y_node_num; j++) { + dev_dbg(&client->dev, "pref_data[%d]: %d\n", + i * info->cap_info.y_node_num + j, + raw_data->pref_data[i * info->cap_info.y_node_num + j]); + if (raw_data->pref_data[i * info->cap_info.y_node_num + j] < min && + raw_data->pref_data[i * info->cap_info.y_node_num + j] != 0) + min = raw_data->pref_data[i * info->cap_info.y_node_num + j]; + + if (raw_data->pref_data[i * info->cap_info.y_node_num + j] > max) + max = raw_data->pref_data[i * info->cap_info.y_node_num + j]; + + } + } + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%d,%d\n", min, max); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_dbg(&client->dev, "%s: \"%s\"(%d)\n", __func__, finfo->cmd_buff, + strlen(finfo->cmd_buff)); + + return; +} + +static void get_preference(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + struct tsp_raw_data *raw_data = info->raw_data; + unsigned int val; + int x_node, y_node; + int node_num; + + set_default_result(info); + + x_node = finfo->cmd_param[0]; + y_node = finfo->cmd_param[1]; + + if (x_node < 0 || x_node >= info->cap_info.x_node_num || + y_node < 0 || y_node >= info->cap_info.y_node_num) { + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", "abnormal"); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + info->factory_info->cmd_state = FAIL; + return; + } + + node_num = x_node * info->cap_info.y_node_num + y_node; + + val = raw_data->pref_data[node_num]; + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%u", val); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_dbg(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +static void run_delta_read(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + struct tsp_raw_data *raw_data = info->raw_data; + s16 min, max; + s32 i, j; + + set_default_result(info); + + ts_set_touchmode(TOUCH_DELTA_MODE); + get_raw_data(info, (u8 *)(u8 *)raw_data->delta_data, 10); + ts_set_touchmode(TOUCH_POINT_MODE); + finfo->cmd_state = OK; + + min = (s16)0x7FFF; + max = (s16)0x8000; + + for (i = 0; i < info->cap_info.x_node_num; i++) { + for (j = 0; j < info->cap_info.y_node_num; j++) { + dev_dbg(&client->dev, "delta_data[%d]: %d\n", + j + i, raw_data->delta_data[j + i]); + if (raw_data->delta_data[i * info->cap_info.y_node_num + j] < min && + raw_data->delta_data[i * info->cap_info.y_node_num + j] != 0) + min = raw_data->delta_data[i * info->cap_info.y_node_num + j]; + if (raw_data->delta_data[i * info->cap_info.y_node_num + j] > max) + max = raw_data->delta_data[i * info->cap_info.y_node_num + j]; + + } + } + + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%d,%d\n", min, max); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + finfo->cmd_state = OK; + + dev_info(&client->dev, "%s: \"%s\"(%d)\n", __func__, finfo->cmd_buff, + strlen(finfo->cmd_buff)); + + return; +} + +static void get_delta(void *device_data) +{ + struct zt7554_ts_info *info = (struct zt7554_ts_info *)device_data; + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + struct tsp_raw_data *raw_data = info->raw_data; + unsigned int val; + int x_node, y_node; + int node_num; + + set_default_result(info); + + x_node = finfo->cmd_param[0]; + y_node = finfo->cmd_param[1]; + + if (x_node < 0 || x_node >= info->cap_info.x_node_num || + y_node < 0 || y_node >= info->cap_info.y_node_num) { + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%s", "abnormal"); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + info->factory_info->cmd_state = FAIL; + return; + } + + node_num = x_node * info->cap_info.y_node_num + y_node; + + val = raw_data->delta_data[node_num]; + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "%u", val); + set_cmd_result(info, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + info->factory_info->cmd_state = OK; + + dev_dbg(&client->dev, "%s: %s(%d)\n", __func__, finfo->cmd_buff, + strnlen(finfo->cmd_buff, sizeof(finfo->cmd_buff))); + + return; +} + +static ssize_t store_cmd(struct device *dev, struct device_attribute + *devattr, const char *buf, size_t count) +{ + struct zt7554_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + char *cur, *start, *end; + char buff[TSP_CMD_STR_LEN] = {0}; + int len, i; + struct tsp_cmd *tsp_cmd_ptr = NULL; + char delim = ','; + bool cmd_found = false; + int param_cnt = 0; + + if (finfo->cmd_is_running == true) { + dev_err(&client->dev, "%s: other cmd is running\n", __func__); + goto err_out; + } + + /* check lock */ + mutex_lock(&finfo->cmd_lock); + finfo->cmd_is_running = true; + mutex_unlock(&finfo->cmd_lock); + + finfo->cmd_state = RUNNING; + + for (i = 0; i < ARRAY_SIZE(finfo->cmd_param); i++) + finfo->cmd_param[i] = 0; + + len = (int)count; + if (*(buf + len - 1) == '\n') + len--; + + memset(finfo->cmd, 0x00, ARRAY_SIZE(finfo->cmd)); + memcpy(finfo->cmd, buf, len); + + cur = strchr(buf, (int)delim); + if (cur) + memcpy(buff, buf, cur - buf); + else + memcpy(buff, buf, len); + + /* find command */ + list_for_each_entry(tsp_cmd_ptr, &finfo->cmd_list_head, list) { + if (!strcmp(buff, tsp_cmd_ptr->cmd_name)) { + cmd_found = true; + break; + } + } + + /* set not_support_cmd */ + if (!cmd_found) { + list_for_each_entry(tsp_cmd_ptr, &finfo->cmd_list_head, list) { + if (!strcmp("not_support_cmd", tsp_cmd_ptr->cmd_name)) + break; + } + } + + /* parsing parameters */ + if (cur && cmd_found) { + cur++; + start = cur; + memset(buff, 0x00, ARRAY_SIZE(buff)); + do { + if (*cur == delim || cur - buf == len) { + end = cur; + memcpy(buff, start, end - start); + *(buff + strlen(buff)) = '\0'; + finfo->cmd_param[param_cnt] = (int)simple_strtol(buff, NULL, 10); + start = cur + 1; + memset(buff, 0x00, ARRAY_SIZE(buff)); + param_cnt++; + } + cur++; + } while (cur - buf <= len); + } + + dev_dbg(&client->dev, "cmd = %s\n", tsp_cmd_ptr->cmd_name); + + tsp_cmd_ptr->cmd_func(info); + + mutex_lock(&finfo->cmd_lock); + finfo->cmd_is_running = false; + mutex_unlock(&finfo->cmd_lock); + +err_out: + return count; +} + +static ssize_t show_cmd_status(struct device *dev, struct device_attribute *devattr, char *buf) +{ + struct zt7554_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + dev_dbg(&client->dev, "tsp cmd: status:%d\n", finfo->cmd_state); + + if (finfo->cmd_state == WAITING) + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "WAITING"); + else if (finfo->cmd_state == RUNNING) + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "RUNNING"); + else if (finfo->cmd_state == OK) + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "OK"); + else if (finfo->cmd_state == FAIL) + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "FAIL"); + else if (finfo->cmd_state == NOT_APPLICABLE) + snprintf(finfo->cmd_buff, sizeof(finfo->cmd_buff), "NOT_APPLICABLE"); + + return snprintf(buf, sizeof(finfo->cmd_buff), "%s\n", finfo->cmd_buff); +} + +static ssize_t show_cmd_result(struct device *dev, struct device_attribute *devattr, char *buf) +{ + struct zt7554_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + struct tsp_factory_info *finfo = info->factory_info; + + dev_dbg(&client->dev, "tsp cmd: result: %s\n", finfo->cmd_result); + + finfo->cmd_state = WAITING; + + return snprintf(buf, sizeof(finfo->cmd_result), "%s\n", finfo->cmd_result); +} + +static DEVICE_ATTR(cmd, S_IWUSR | S_IWGRP, NULL, store_cmd); +static DEVICE_ATTR(cmd_status, S_IRUGO, show_cmd_status, NULL); +static DEVICE_ATTR(cmd_result, S_IRUGO, show_cmd_result, NULL); + +static struct attribute *touchscreen_attributes[] = { + &dev_attr_cmd.attr, + &dev_attr_cmd_status.attr, + &dev_attr_cmd_result.attr, + NULL, +}; + +static struct attribute_group touchscreen_attr_group = { + .attrs = touchscreen_attributes, +}; + +#ifdef SUPPORTED_TOUCH_KEY +static ssize_t show_touchkey_threshold(struct device *dev, struct device_attribute *attr, char *buf) +{ + struct zt7554_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + struct capa_info *cap = &(info->cap_info); + + dev_dbg(&client->dev, "%s: key threshold = %d\n", __func__, cap->key_threshold); + + return snprintf(buf, 41, "%d", cap->key_threshold); +#endif +} + +static ssize_t show_touchkey_sensitivity(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct zt7554_ts_info *info = dev_get_drvdata(dev); + struct i2c_client *client = info->client; + u16 val; + int ret; + int i; + + if (!strcmp(attr->attr.name, "touchkey_recent")) + i = 0; + else if (!strcmp(attr->attr.name, "touchkey_back")) + i = 1; + else { + dev_err(&client->dev, "%s: Invalid attribute\n", __func__); + goto err_out; + } + ret = read_data(client, ZT7554_BTN_WIDTH + i, (u8 *)&val, 2); + if (ret < 0) { + dev_err(&client->dev, "failed to read %d's key sensitivity\n", i); + goto err_out; + } + + dev_info(&client->dev, "%d's key sensitivity = %d\n", i, val); + + return snprintf(buf, 6, "%d", val); + +err_out: + return sprintf(buf, "NG"); +} + +static DEVICE_ATTR(touchkey_threshold, S_IRUGO, show_touchkey_threshold, NULL); +static DEVICE_ATTR(touchkey_recent, S_IRUGO, show_touchkey_sensitivity, NULL); +static DEVICE_ATTR(touchkey_back, S_IRUGO, show_touchkey_sensitivity, NULL); +static struct attribute *touchkey_attributes[] = { + &dev_attr_touchkey_threshold.attr, + &dev_attr_touchkey_back.attr, + &dev_attr_touchkey_recent.attr, + NULL, +}; +static struct attribute_group touchkey_attr_group = { + .attrs = touchkey_attributes, +}; + +static int init_sec_factory(struct zt7554_ts_info *info) +{ + struct device *factory_ts_dev; +#ifdef SUPPORTED_TOUCH_KEY + struct device *factory_tk_dev; +#endif + struct tsp_factory_info *factory_info; + struct tsp_raw_data *raw_data; + int ret; + int i; + + factory_info = kzalloc(sizeof(struct tsp_factory_info), GFP_KERNEL); + if (unlikely(!factory_info)) { + dev_err(&info->client->dev, "failed to allocate factory_info\n"); + ret = -ENOMEM; + goto err_alloc1; + } + + raw_data = kzalloc(sizeof(struct tsp_raw_data), GFP_KERNEL); + if (unlikely(!raw_data)) { + dev_err(&info->client->dev, "failed to allocate raw_data\n"); + ret = -ENOMEM; + goto err_alloc2; + } + + INIT_LIST_HEAD(&factory_info->cmd_list_head); + for (i = 0; i < ARRAY_SIZE(tsp_cmds); i++) + list_add_tail(&tsp_cmds[i].list, &factory_info->cmd_list_head); + + factory_ts_dev = device_create(sec_class, NULL, 0, info, "tsp"); + if (unlikely(!factory_ts_dev)) { + dev_err(&info->client->dev, "ailed to create factory dev\n"); + ret = -ENODEV; + goto err_create_device; + } + +#ifdef SUPPORTED_TOUCH_KEY + factory_tk_dev = device_create(sec_class, NULL, 0, info, "sec_touchkey"); + if (IS_ERR(factory_tk_dev)) { + dev_err(&info->client->dev, "failed to create factory dev\n"); + ret = -ENODEV; + goto err_create_device; + } +#endif + + ret = sysfs_create_group(&factory_ts_dev->kobj, &touchscreen_attr_group); + if (unlikely(ret)) { + dev_err(&info->client->dev, "Failed to create touchscreen sysfs group\n"); + goto err_create_sysfs; + } + +#ifdef SUPPORTED_TOUCH_KEY + ret = sysfs_create_group(&factory_tk_dev->kobj, &touchkey_attr_group); + if (unlikely(ret)) { + dev_err(&info->client->dev, "Failed to create touchkey sysfs group\n"); + goto err_create_sysfs; + } +#endif + + mutex_init(&factory_info->cmd_lock); + factory_info->cmd_is_running = false; + + info->factory_info = factory_info; + info->raw_data = raw_data; + + return ret; + +err_create_sysfs: +err_create_device: + kfree(raw_data); +err_alloc2: + kfree(factory_info); +err_alloc1: + + return ret; +} +#endif /* end of SEC_FACTORY_TEST */ + +#ifdef CONFIG_OF +static const struct of_device_id tsp_dt_ids[] = { + { .compatible = "Zinitix,zt7554_ts", }, + {}, +}; +MODULE_DEVICE_TABLE(of, tsp_dt_ids); +#else +#define tsp_dt_ids NULL +#endif + +static int zt7554_ts_probe_dt(struct device_node *np, struct device *dev, + struct zt7554_ts_platform_data *pdata) +{ + int ret; + + if (!np) + return -EINVAL; + + /* gpio irq */ + pdata->gpio_int = of_get_named_gpio(np, "gpios", 0); + if (pdata->gpio_int < 0) { + dev_err(dev, "failed to get irq number\n"); + return -EINVAL; + } + ret = gpio_request(pdata->gpio_int, "zt7554_irq"); + if (ret < 0) { + dev_err(dev, "failed to request gpio_irq\n"); + return -EINVAL; + } + gpio_direction_input(pdata->gpio_int); + +#if 0 /* FIXME: use *.h format firmware file */ + /* built-in firmware */ + ret = of_property_read_string(np, "zt7554,fw_name", &pdata->fw_name); + if (ret < 0) { + dev_err(dev, "failed to get built-in firmware path\n"); + return -EINVAL; + } +#endif + + /* external firmware */ + ret = of_property_read_string(np, "zt7554,ext_fw_name", &pdata->ext_fw_name); + if (ret < 0) { + dev_err(dev, "failed to get external firmware path!\n"); + return -EINVAL; + } + + ret = of_property_read_u32(np, "zt7554,x_resolution", &pdata->x_resolution); + if (ret < 0) { + dev_err(dev, "failed to get x_resolution\n"); + return ret; + } + + ret = of_property_read_u32(np, "zt7554,y_resolution", &pdata->y_resolution); + if (ret < 0) { + dev_err(dev, "failed to get y_resolution\n"); + return ret; + } + + ret = of_property_read_u32(np, "zt7554,supply_type", &pdata->tsp_supply_type); + if (ret < 0) { + dev_err(dev, "failed to get tsp supply type. default: regulator\n"); + pdata->tsp_supply_type = TSP_REGULATOR_SUPPLY; + } + + ret = of_property_read_u32(np, "gpio_ctrl_pin", &pdata->gpio_ctrl_pin); + if (ret < 0) { + dev_err(dev, "failed to get tsp control pin\n"); + pdata->gpio_ctrl_pin = -1; + } + +// pdata->orientation = 4; + pdata->tsp_power = zt7554_power; + return 0; + +} +static int zt7554_ts_probe(struct i2c_client *client, const struct i2c_device_id *i2c_id) +{ + struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); + struct zt7554_ts_platform_data *pdata = client->dev.platform_data; + struct zt7554_ts_info *info; + struct input_dev *input_dev; + int ret = -1; + int i; + struct device_node *np = client->dev.of_node; + + if (IS_ENABLED(CONFIG_OF)) { + if (!pdata) { + pdata = devm_kzalloc(&client->dev, + sizeof(*pdata), GFP_KERNEL); + if (!pdata) + return -ENOMEM; + } + ret = zt7554_ts_probe_dt(np, &client->dev, pdata); + if (ret) + goto err_no_platform_data; + + } else if (!pdata) { + dev_err(&client->dev, "Not exist platform data\n"); + return -EINVAL; + } + + if (!i2c_check_functionality(adapter, I2C_FUNC_I2C)) { + dev_err(&client->dev, "Not compatible i2c function\n"); + ret = -EIO; + goto err_no_platform_data; + } + + info = kzalloc(sizeof(struct zt7554_ts_info), GFP_KERNEL); + if (!info) { + dev_err(&client->dev, "Failed to allocate memory\n"); + ret = -ENOMEM; + goto err_no_platform_data; + } + + i2c_set_clientdata(client, info); + info->client = client; + info->pdata = pdata; + + input_dev = input_allocate_device(); + if (!input_dev) { + dev_err(&client->dev, "Failed to allocate input device\n"); + goto err_alloc; + } + + info->input_dev = input_dev; + info->work_state = PROBE; + + /* power on */ + if (!zt7554_power_control(info, POWER_ON_SEQUENCE)) { + ret = -EPERM; + goto err_power_sequence; + } + + memset(&info->reported_touch_info, 0x0, sizeof(struct point_info)); + + /* init touch mode */ + info->touch_mode = TOUCH_POINT_MODE; + misc_info = info; + + if (!init_touch(info)) + goto err_input_unregister_device; + + for (i = 0; i < MAX_SUPPORTED_BUTTON_NUM; i++) + info->button[i] = ICON_BUTTON_UNCHANGE; + + snprintf(info->phys, sizeof(info->phys), "%s/input0", dev_name(&client->dev)); + input_dev->name = "sec_touchscreen"; + input_dev->id.bustype = BUS_I2C; + input_dev->phys = info->phys; + input_dev->dev.parent = &client->dev; + + set_bit(EV_SYN, info->input_dev->evbit); + set_bit(EV_KEY, info->input_dev->evbit); + set_bit(EV_ABS, info->input_dev->evbit); + set_bit(INPUT_PROP_DIRECT, info->input_dev->propbit); + + for (i = 0; i < MAX_SUPPORTED_BUTTON_NUM; i++) + set_bit(BUTTON_MAPPING_KEY[i], info->input_dev->keybit); + + if (pdata->orientation & TOUCH_XY_SWAP) { + input_set_abs_params(info->input_dev, ABS_MT_POSITION_Y, + info->cap_info.MinX, info->cap_info.MaxX + ABS_PT_OFFSET, 0, 0); + input_set_abs_params(info->input_dev, ABS_MT_POSITION_X, + info->cap_info.MinY, info->cap_info.MaxY + ABS_PT_OFFSET, 0, 0); + } else { + input_set_abs_params(info->input_dev, ABS_MT_POSITION_X, + info->cap_info.MinX, info->cap_info.MaxX + ABS_PT_OFFSET, 0, 0); + input_set_abs_params(info->input_dev, ABS_MT_POSITION_Y, + info->cap_info.MinY, info->cap_info.MaxY + ABS_PT_OFFSET, 0, 0); + } + + input_set_abs_params(info->input_dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(info->input_dev, ABS_MT_WIDTH_MAJOR, 0, 255, 0, 0); + + set_bit(MT_TOOL_FINGER, info->input_dev->keybit); + input_mt_init_slots(info->input_dev, info->cap_info.multi_fingers, 0); + + input_set_drvdata(info->input_dev, info); + ret = input_register_device(info->input_dev); + if (ret) { + dev_err(&info->client->dev, "unable to register input device\n"); + goto err_input_register_device; + } + + info->work_state = NOTHING; +#if TOUCH_BOOSTER + info->finger_cnt = 0; +#endif + sema_init(&info->work_lock, 1); + +#if ESD_TIMER_INTERVAL + spin_lock_init(&info->lock); + INIT_WORK(&info->tmr_work, ts_tmr_work); + esd_tmr_workqueue = + create_singlethread_workqueue("esd_tmr_workqueue"); + + if (!esd_tmr_workqueue) { + dev_err(&client->dev, "Failed to create esd tmr work queue\n"); + ret = -EPERM; + goto err_esd_input_unregister_device; + } + + esd_timer_init(info); + esd_timer_start(CHECK_ESD_TIMER, info); +#endif + info->irq = gpio_to_irq(pdata->gpio_int); + if (info->irq < 0) { + dev_err(&client->dev, "failed to get gpio_to_irq\n"); + goto err_gpio_irq; + } + ret = request_threaded_irq(info->irq, NULL, zt7554_touch_work, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT , ZT7554_TS_DEVICE, info); + + if (ret) { + dev_err(&client->dev, "failed to request irq.\n"); + goto err_request_irq; + } + sprd_i2c_ctl_chg_clk(1, 400000); /* up h/w i2c 1 400k */ +#ifdef CONFIG_HAS_EARLYSUSPEND + info->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + info->early_suspend.suspend = zt7554_ts_early_suspend; + info->early_suspend.resume = zt7554_ts_late_resume; + register_early_suspend(&info->early_suspend); +#endif + +#if defined(CONFIG_PM_RUNTIME) + pm_runtime_enable(&client->dev); +#endif + + sema_init(&info->raw_data_lock, 1); + +#if ZINITIX_MISC_DEBUG + ret = misc_register(&touch_misc_device); + if (ret) { + dev_err(&client->dev, "Failed to register touch misc device\n"); + goto err_misc_register; + } +#endif + +#ifdef SEC_FACTORY_TEST + ret = init_sec_factory(info); + if (ret) { + dev_err(&client->dev, "Failed to init sec factory device\n"); + + goto err_kthread_create_failed; + } +#endif + dev_info(&client->dev, "zinitix touch probe done.\n"); + + return 0; + +#ifdef SEC_FACTORY_TEST +err_kthread_create_failed: + kfree(info->factory_info); + kfree(info->raw_data); +#endif +#if ZINITIX_MISC_DEBUG +err_misc_register: +#endif + free_irq(info->irq, info); +#ifdef CONFIG_HAS_EARLYSUSPEND + unregister_early_suspend(&info->early_suspend); +#endif +err_request_irq: +err_gpio_irq: +#if ESD_TIMER_INTERVAL +err_esd_input_unregister_device: +#endif +err_input_unregister_device: + input_unregister_device(info->input_dev); +err_input_register_device: + tsp_charger_status_cb = NULL; +err_power_sequence: + input_free_device(info->input_dev); +err_alloc: + kfree(info); +err_no_platform_data: + if (IS_ENABLED(CONFIG_OF)) + devm_kfree(&client->dev, (void *)pdata); + + dev_info(&client->dev, "Failed to probe\n"); + return ret; +} + +static int zt7554_ts_remove(struct i2c_client *client) +{ + struct zt7554_ts_info *info = i2c_get_clientdata(client); + struct zt7554_ts_platform_data *pdata = info->pdata; + + disable_irq(info->irq); + down(&info->work_lock); + + info->work_state = REMOVE; + +#ifdef SEC_FACTORY_TEST + kfree(info->factory_info); + kfree(info->raw_data); +#endif +#if ESD_TIMER_INTERVAL + flush_work(&info->tmr_work); + write_reg(info->client, ZT7554_PERIODICAL_INTERRUPT_INTERVAL, 0); + esd_timer_stop(info); + destroy_workqueue(esd_tmr_workqueue); +#endif + + if (info->irq) + free_irq(info->irq, info); + +#if ZINITIX_MISC_DEBUG + misc_deregister(&touch_misc_device); +#endif + +#ifdef CONFIG_HAS_EARLYSUSPEND + unregister_early_suspend(&info->early_suspend); +#endif + + if (gpio_is_valid(pdata->gpio_int) != 0) + gpio_free(pdata->gpio_int); + + tsp_charger_status_cb = NULL; + + input_unregister_device(info->input_dev); + input_free_device(info->input_dev); + up(&info->work_lock); + kfree(info); + + return 0; +} + +void zt7554_ts_shutdown(struct i2c_client *client) +{ + struct zt7554_ts_info *info = i2c_get_clientdata(client); + + disable_irq(info->irq); + down(&info->work_lock); +#if ESD_TIMER_INTERVAL + flush_work(&info->tmr_work); + esd_timer_stop(info); +#endif + up(&info->work_lock); + zt7554_power_control(info, POWER_OFF); +} + +static struct i2c_device_id zt7554_idtable[] = { + {ZT7554_TS_DEVICE, 0}, + { } +}; + +static const struct dev_pm_ops zt7554_ts_pm_ops = { +#if defined(CONFIG_PM_RUNTIME) + SET_RUNTIME_PM_OPS(zt7554_ts_suspend, zt7554_ts_resume, NULL) +#else + .suspend = zt7554_ts_suspend, + .resume = zt7554_ts_resume, +#endif +}; + +static struct i2c_driver zt7554_ts_driver = { + .probe = zt7554_ts_probe, + .remove = zt7554_ts_remove, + .shutdown = zt7554_ts_shutdown, + .id_table = zt7554_idtable, + .driver = { + .owner = THIS_MODULE, + .name = ZT7554_TS_DEVICE, + .of_match_table = tsp_dt_ids, +#ifndef CONFIG_HAS_EARLYSUSPEND + .pm = &zt7554_ts_pm_ops, +#endif + }, +}; + +static int __init zt7554_ts_init(void) +{ + return i2c_add_driver(&zt7554_ts_driver); +} + +static void __exit zt7554_ts_exit(void) +{ + i2c_del_driver(&zt7554_ts_driver); +} + +module_init(zt7554_ts_init); +module_exit(zt7554_ts_exit); + +MODULE_DESCRIPTION("touch-screen device driver using i2c interface"); +MODULE_AUTHOR(""); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/zt7554_ts.h b/drivers/input/touchscreen/zt7554_ts.h new file mode 100755 index 00000000..398fb135 --- /dev/null +++ b/drivers/input/touchscreen/zt7554_ts.h @@ -0,0 +1,516 @@ +/* + * + * Zinitix zt7554 touch driver + * + * Copyright (C) 2013 Samsung Electronics Co.Ltd + * + * 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 +#ifdef CONFIG_HAS_EARLYSUSPEND +#include +#endif +#if defined(CONFIG_PM_RUNTIME) +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define TOUCH_BOOSTER 0 + +#if TOUCH_BOOSTER +#include +#include +extern int _store_cpu_num_min_limit(unsigned int input); +struct cpufreq_limit_handle *min_handle = NULL; +static const unsigned long touch_cpufreq_lock = 1200000; +#endif + + +#define SEC_FACTORY_TEST +#define SUPPORTED_TOUCH_KEY + +#define TS_DRVIER_VERSION "1.0.18_1" +#define ZT7554_TS_DEVICE "zt7554_ts" + +#define TOUCH_POINT_MODE 0 +#define ZINITIX_MISC_DEBUG 0 +#define CHECK_HWID 0 +#define ZINITIX_DEBUG 0 +#define ZINITIX_I2C_CHECKSUM 1 +#define TSP_INIT_TEST_RATIO 100 +#define MAX_SUPPORTED_FINGER_NUM 5 /* max 10 */ + +#ifdef SUPPORTED_TOUCH_KEY +#ifdef NOT_SUPPORTED_TOUCH_DUMMY_KEY +#define MAX_SUPPORTED_BUTTON_NUM 2 /* max 8 */ +#define SUPPORTED_BUTTON_NUM 2 +#else +#define MAX_SUPPORTED_BUTTON_NUM 6 /* max 8 */ +#define SUPPORTED_BUTTON_NUM 4 +#endif +#endif + +/* Upgrade Method*/ +#define TOUCH_ONESHOT_UPGRADE 1 +/* resolution offset */ +#define ABS_PT_OFFSET (-1) +#define TOUCH_FORCE_UPGRADE 1 +#define USE_CHECKSUM 1 +#define CHIP_OFF_DELAY 50 /*ms*/ +#define CHIP_ON_DELAY 100 /*ms*/ +#define FIRMWARE_ON_DELAY 150 /*ms*/ +#define DELAY_FOR_SIGNAL_DELAY 30 /*us*/ +#define DELAY_FOR_TRANSCATION 50 +#define DELAY_FOR_POST_TRANSCATION 10 +#define RAWDATA_DELAY_FOR_HOST 100 + +/* PMIC Regulator based supply to TSP */ +#define TSP_REGULATOR_SUPPLY 1 +/* gpio controlled LDO based supply to TSP */ +#define TSP_LDO_SUPPLY 0 + +/* ESD Protection */ +/*second : if 0, no use. if you have to use, 3 is recommended*/ +#define ESD_TIMER_INTERVAL 1 +#define SCAN_RATE_HZ 100 +#define CHECK_ESD_TIMER 3 + +/*Test Mode (Monitoring Raw Data) */ +#ifdef SUPPORTED_DND_SHIFT_VALUE +#define SEC_DND_SHIFT_VALUE 3 +#endif + +//SDND +#define SEC_SDND_N_COUNT 20 +#define SEC_SDND_U_COUNT 1 +#define SEC_SDND_FREQUENCY 77 /* 307khz */ + +//PDND +#define SEC_PDND_N_COUNT 16 +#define SEC_PDND_U_COUNT 14 +#define SEC_PDND_FREQUENCY 79 + +#define MAX_RAW_DATA_SZ 32*22 +#define MAX_TRAW_DATA_SZ \ + (MAX_RAW_DATA_SZ + 4*MAX_SUPPORTED_FINGER_NUM + 2) + + +#define TOUCH_SEC_MODE 48 +#define TOUCH_REF_MODE 10 +#define TOUCH_NORMAL_MODE 5 +#define TOUCH_DELTA_MODE 3 +#define TOUCH_DND_MODE 6 +#define TOUCH_PDND_MODE 11 + +#define PALM_REPORT_WIDTH 200 +#define PALM_REJECT_WIDTH 255 + +#define TOUCH_V_FLIP 0x01 +#define TOUCH_H_FLIP 0x02 +#define TOUCH_XY_SWAP 0x04 + +#define TSP_NORMAL_EVENT_MSG 1 +#define I2C_RETRY_TIMES 8 + +/* Other Things */ +#define INIT_RETRY_CNT 1 +#define I2C_SUCCESS 0 +#define I2C_FAIL 1 + +#define TOUCH_IOCTL_BASE 0xbc +#define TOUCH_IOCTL_GET_DEBUGMSG_STATE _IOW(TOUCH_IOCTL_BASE, 0, int) +#define TOUCH_IOCTL_SET_DEBUGMSG_STATE _IOW(TOUCH_IOCTL_BASE, 1, int) +#define TOUCH_IOCTL_GET_CHIP_REVISION _IOW(TOUCH_IOCTL_BASE, 2, int) +#define TOUCH_IOCTL_GET_FW_VERSION _IOW(TOUCH_IOCTL_BASE, 3, int) +#define TOUCH_IOCTL_GET_REG_DATA_VERSION _IOW(TOUCH_IOCTL_BASE, 4, int) +#define TOUCH_IOCTL_VARIFY_UPGRADE_SIZE _IOW(TOUCH_IOCTL_BASE, 5, int) +#define TOUCH_IOCTL_VARIFY_UPGRADE_DATA _IOW(TOUCH_IOCTL_BASE, 6, int) +#define TOUCH_IOCTL_START_UPGRADE _IOW(TOUCH_IOCTL_BASE, 7, int) +#define TOUCH_IOCTL_GET_X_NODE_NUM _IOW(TOUCH_IOCTL_BASE, 8, int) +#define TOUCH_IOCTL_GET_Y_NODE_NUM _IOW(TOUCH_IOCTL_BASE, 9, int) +#define TOUCH_IOCTL_GET_TOTAL_NODE_NUM _IOW(TOUCH_IOCTL_BASE, 10, int) +#define TOUCH_IOCTL_SET_RAW_DATA_MODE _IOW(TOUCH_IOCTL_BASE, 11, int) +#define TOUCH_IOCTL_GET_RAW_DATA _IOW(TOUCH_IOCTL_BASE, 12, int) +#define TOUCH_IOCTL_GET_X_RESOLUTION _IOW(TOUCH_IOCTL_BASE, 13, int) +#define TOUCH_IOCTL_GET_Y_RESOLUTION _IOW(TOUCH_IOCTL_BASE, 14, int) +#define TOUCH_IOCTL_HW_CALIBRAION _IOW(TOUCH_IOCTL_BASE, 15, int) +#define TOUCH_IOCTL_GET_REG _IOW(TOUCH_IOCTL_BASE, 16, int) +#define TOUCH_IOCTL_SET_REG _IOW(TOUCH_IOCTL_BASE, 17, int) +#define TOUCH_IOCTL_SEND_SAVE_STATUS _IOW(TOUCH_IOCTL_BASE, 18, int) +#define TOUCH_IOCTL_DONOT_TOUCH_EVENT _IOW(TOUCH_IOCTL_BASE, 19, int) + +/* Register Map*/ +#define ZT7554_SWRESET_CMD 0x0000 +#define ZT7554_WAKEUP_CMD 0x0001 +#define ZT7554_IDLE_CMD 0x0004 +#define ZT7554_SLEEP_CMD 0x0005 +#define ZT7554_CLEAR_INT_STATUS_CMD 0x0003 +#define ZT7554_CALIBRATE_CMD 0x0006 +#define ZT7554_SAVE_STATUS_CMD 0x0007 +#define ZT7554_SAVE_CALIBRATION_CMD 0x0008 +#define ZT7554_RECALL_FACTORY_CMD 0x000f +#define ZT7554_THRESHOLD 0x0020 +#define ZT7554_DEBUG_REG 0x0115 /* 0~7 */ +#define ZT7554_TOUCH_MODE 0x0010 +#define ZT7554_CHIP_REVISION 0x0011 +#define ZT7554_FIRMWARE_VERSION 0x0012 +#define ZT7554_MINOR_FW_VERSION 0x0121 +#define ZT7554_VENDOR_ID 0x001C +#define ZT7554_HW_ID 0x0014 +#define ZT7554_DATA_VERSION_REG 0x0013 +#define ZT7554_SUPPORTED_FINGER_NUM 0x0015 +#define ZT7554_EEPROM_INFO 0x0018 +#define ZT7554_INITIAL_TOUCH_MODE 0x0019 +#define ZT7554_TOTAL_NUMBER_OF_X 0x0060 +#define ZT7554_TOTAL_NUMBER_OF_Y 0x0061 +#define ZT7554_DELAY_RAW_FOR_HOST 0x007f +#define ZT7554_BUTTON_SUPPORTED_NUM 0x00B0 +#define ZT7554_BUTTON_SENSITIVITY 0x00B2 +#define ZT7554_DUMMY_BUTTON_SENSITIVITY 0X00C8 +#define ZT7554_X_RESOLUTION 0x00C0 +#define ZT7554_Y_RESOLUTION 0x00C1 +#define ZT7554_POINT_STATUS_REG 0x0080 +#define ZT7554_ICON_STATUS_REG 0x00AA +#ifdef SUPPORTED_DND_SHIFT_VALUE +#define ZT7554_DND_SHIFT_VALUE 0x012B +#endif +#define ZT7554_AFE_FREQUENCY 0x0100 +#define ZT7554_DND_N_COUNT 0x0122 +#define ZT7554_DND_U_COUNT 0x0135 +#define ZT7554_RAWDATA_REG 0x0200 +#define ZT7554_EEPROM_INFO_REG 0x0018 +#define ZT7554_INT_ENABLE_FLAG 0x00f0 +#define ZT7554_PERIODICAL_INTERRUPT_INTERVAL 0x00f1 +#define ZT7554_BTN_WIDTH 0x016d +#define ZT7554_CHECKSUM_RESULT 0x012c +#define ZT7554_INIT_FLASH 0x01d0 +#define ZT7554_WRITE_FLASH 0x01d1 +#define ZT7554_READ_FLASH 0x01d2 +#define ZINITIX_INTERNAL_FLAG_02 0x011e +#define ZT7554_OPTIONAL_SETTING 0x0116 + +/* Interrupt & status register flag bit +------------------------------------------------- +*/ +#define BIT_PT_CNT_CHANGE 0 +#define BIT_DOWN 1 +#define BIT_MOVE 2 +#define BIT_UP 3 +#define BIT_PALM 4 +#define BIT_PALM_REJECT 5 +#define RESERVED_0 6 +#define RESERVED_1 7 +#define BIT_WEIGHT_CHANGE 8 +#define BIT_PT_NO_CHANGE 9 +#define BIT_REJECT 10 +#define BIT_PT_EXIST 11 +#define RESERVED_2 12 +#define BIT_MUST_ZERO 13 +#define BIT_DEBUG 14 +#define BIT_ICON_EVENT 15 + +/* button */ +#define BIT_O_ICON0_DOWN 0 +#define BIT_O_ICON1_DOWN 1 +#define BIT_O_ICON2_DOWN 2 +#define BIT_O_ICON3_DOWN 3 +#define BIT_O_ICON4_DOWN 4 +#define BIT_O_ICON5_DOWN 5 +#define BIT_O_ICON6_DOWN 6 +#define BIT_O_ICON7_DOWN 7 + +#define BIT_O_ICON0_UP 8 +#define BIT_O_ICON1_UP 9 +#define BIT_O_ICON2_UP 10 +#define BIT_O_ICON3_UP 11 +#define BIT_O_ICON4_UP 12 +#define BIT_O_ICON5_UP 13 +#define BIT_O_ICON6_UP 14 +#define BIT_O_ICON7_UP 15 + +#define SUB_BIT_EXIST 0 +#define SUB_BIT_DOWN 1 +#define SUB_BIT_MOVE 2 +#define SUB_BIT_UP 3 +#define SUB_BIT_UPDATE 4 +#define SUB_BIT_WAIT 5 + +#define zinitix_bit_set(val, n) ((val) &= ~(1<<(n)), (val) |= (1<<(n))) +#define zinitix_bit_clr(val, n) ((val) &= ~(1<<(n))) +#define zinitix_bit_test(val, n) ((val) & (1<<(n))) +#define zinitix_swap_v(a, b, t) ((t) = (a), (a) = (b), (b) = (t)) +#define zinitix_swap_16(s) (((((s) & 0xff) << 8) | (((s) >> 8) & 0xff))) + +#ifdef SEC_FACTORY_TEST +/* Touch Screen */ +#define TSP_CMD_STR_LEN 32 +#define TSP_CMD_RESULT_STR_LEN 512 +#define TSP_CMD_PARAM_NUM 8 +#define TSP_CMD_Y_NUM 22 +#define TSP_CMD_X_NUM 32 +#define TSP_CMD_NODE_NUM (TSP_CMD_Y_NUM * TSP_CMD_X_NUM) + +enum { + WAITING = 0, + RUNNING, + OK, + FAIL, + NOT_APPLICABLE, +}; +#endif + +enum power_control { + POWER_OFF, + POWER_ON, + POWER_ON_SEQUENCE, +}; + +enum key_event { + ICON_BUTTON_UNCHANGE, + ICON_BUTTON_DOWN, + ICON_BUTTON_UP, +}; + +enum work_state { + NOTHING = 0, + NORMAL, + ESD_TIMER, + EALRY_SUSPEND, + SUSPEND, + RESUME, + LATE_RESUME, + UPGRADE, + REMOVE, + SET_MODE, + HW_CALIBRAION, + RAW_DATA, + PROBE, +}; + +enum { + BUILT_IN = 0, + UMS, + REQ_FW, +}; + +struct raw_ioctl { + u32 sz; + u32 buf; +}; + +struct reg_ioctl { + u32 addr; + u32 *val; +}; + +struct coord { + u16 x; + u16 y; + u8 width; + u8 sub_status; +}; + +struct point_info { + u16 status; + u8 finger_cnt; + u8 time_stamp; + struct coord coord[MAX_SUPPORTED_FINGER_NUM]; +}; + +struct capa_info { + u16 vendor_id; + u16 ic_revision; + u16 fw_version; + u16 fw_minor_version; + u16 reg_data_version; + u16 threshold; + u16 key_threshold; + u16 dummy_threshold; + u32 ic_fw_size; + u32 MaxX; + u32 MaxY; + u32 MinX; + u32 MinY; + u8 gesture_support; + u16 multi_fingers; + u16 button_num; + u16 ic_int_mask; + u16 x_node_num; + u16 y_node_num; + u16 total_node_num; + u16 hw_id; + u16 afe_frequency; +#ifdef SUPPORTED_DND_SHIFT_VALUE + u16 shift_value; +#endif + u16 N_cnt; + u16 u_cnt; + u16 i2s_checksum; +}; +//struct zt7554_ts_info; + +struct zt7554_ts_info { + struct i2c_client *client; + struct input_dev *input_dev; + struct zt7554_ts_platform_data *pdata; + char phys[32]; + struct capa_info cap_info; + struct point_info touch_info; + struct point_info reported_touch_info; + u16 icon_event_reg; + u16 prev_icon_event; + int irq; + u8 button[MAX_SUPPORTED_BUTTON_NUM]; + u8 work_state; + struct semaphore work_lock; +#if ESD_TIMER_INTERVAL + struct work_struct tmr_work; + struct timer_list esd_timeout_tmr; + struct timer_list *p_esd_timeout_tmr; + spinlock_t lock; +#endif +#ifdef CONFIG_HAS_EARLYSUSPEND + struct early_suspend early_suspend; +#endif + struct semaphore raw_data_lock; + u16 touch_mode; + s16 cur_data[MAX_TRAW_DATA_SZ]; + u8 update; +#ifdef SEC_FACTORY_TEST + struct tsp_factory_info *factory_info; + struct tsp_raw_data *raw_data; +#endif + u16 dnd_data[MAX_RAW_DATA_SZ]; + s16 ref_data[MAX_RAW_DATA_SZ]; + + s16 ref_scale_factor; + s16 ref_btn_option; + s16 hdiff_max_x; + s16 hdiff_max_y; + s16 hdiff_max_val; + s16 hdiff_min_x; + s16 hdiff_min_y; + s16 hdiff_min_val; + + s16 vdiff_max_x; + s16 vdiff_max_y; + s16 vdiff_max_val; + s16 vdiff_min_x; + s16 vdiff_min_y; + s16 vdiff_min_val; +#if TOUCH_BOOSTER + u8 finger_cnt; +#endif +}; + +#ifdef SEC_FACTORY_TEST +struct tsp_factory_info { + struct list_head cmd_list_head; + char cmd[TSP_CMD_STR_LEN]; + char cmd_param[TSP_CMD_PARAM_NUM]; + char cmd_result[TSP_CMD_RESULT_STR_LEN]; + char cmd_buff[TSP_CMD_RESULT_STR_LEN]; + struct mutex cmd_lock; + bool cmd_is_running; + u8 cmd_state; +}; + +struct tsp_raw_data { + u16 ref_data[TSP_CMD_NODE_NUM]; + u16 pref_data[TSP_CMD_NODE_NUM]; + s16 delta_data[TSP_CMD_NODE_NUM]; +}; + +struct tsp_cmd { + struct list_head list; + const char *cmd_name; + void (*cmd_func)(void *device_data); +}; +#endif /* SEC_FACTORY_TEST */ + +struct zt7554_ts_info *misc_info; +//static int m_ts_debug_mode = ZINITIX_DEBUG; +#if ESD_TIMER_INTERVAL +static struct workqueue_struct *esd_tmr_workqueue; +#endif +extern void (*tsp_charger_status_cb)(int); +static bool ta_connected; +#if ZINITIX_MISC_DEBUG +static struct miscdevice touch_misc_device; +#endif +static u16 m_optional_mode; +static u16 m_prev_optional_mode; + +extern struct class *sec_class; + + +#ifdef CONFIG_HAS_EARLYSUSPEND +static void zt7554_ts_early_suspend(struct early_suspend *h); +static void zt7554_ts_late_resume(struct early_suspend *h); +#endif +static bool zt7554_power_control(struct zt7554_ts_info *info, u8 ctl); +static int zt7554_power(struct i2c_client *client, int on, int gpio_ctrl_pin); +static bool init_touch(struct zt7554_ts_info *info); +static bool mini_init_touch(struct zt7554_ts_info *info); +static void clear_report_data(struct zt7554_ts_info *info); +#if ESD_TIMER_INTERVAL +static void esd_timer_start(u16 sec, struct zt7554_ts_info *info); +static void esd_timer_stop(struct zt7554_ts_info *info); +static void esd_timer_init(struct zt7554_ts_info *info); +static void esd_timeout_handler(unsigned long data); +#endif +//long ts_misc_fops_ioctl(struct file *filp, unsigned int cmd, unsigned long arg); +//int ts_misc_fops_open(struct inode *inode, struct file *filp); +//int ts_misc_fops_close(struct inode *inode, struct file *filp); + +#ifdef SEC_FACTORY_TEST +static void fw_update(void *device_data); +static void get_fw_ver_bin(void *device_data); +static void get_fw_ver_ic(void *device_data); +static void get_threshold(void *device_data); +static void get_chip_vendor(void *device_data); +static void get_chip_name(void *device_data); +static void get_x_num(void *device_data); +static void get_y_num(void *device_data); +static void not_support_cmd(void *device_data); +/* Vendor dependant command */ +static void run_reference_read(void *device_data); +static void run_reference_PDiff(void *device_data); +static void get_reference(void *device_data); +static void run_preference_read(void *device_data); +static void get_preference(void *device_data); +static void run_delta_read(void *device_data); +static void get_delta(void *device_data); +#endif + +int ts_upgrade_sequence(const u8 *firmware_data); +bool ts_hw_calibration(struct zt7554_ts_info *info); +s32 write_reg(struct i2c_client *client, u16 reg, u16 value); +s32 write_cmd(struct i2c_client *client, u16 reg); +bool ts_set_touchmode(u16 value); +s32 read_data(struct i2c_client *client, u16 reg, u8 *values, u16 length); diff --git a/drivers/input/touchscreen/zt7554_ts_spec.h b/drivers/input/touchscreen/zt7554_ts_spec.h new file mode 100755 index 00000000..c9abcae6 --- /dev/null +++ b/drivers/input/touchscreen/zt7554_ts_spec.h @@ -0,0 +1,132 @@ +////////////////////////////////////////////////////spec/////////////////////////////////////////////////// +//HW_ID 0x0 ITO +const u16 dnd_v_diff_00[29][18]={ + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + { 0, 0, 4000, 0 , 4000, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 4000, 0 , 4000, 0 , 0 }}; + +const u16 dnd_h_diff_00[29][17]={ + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}, + {3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500}}; + + + + + +//HW_ID 0x03 MI +const u16 dnd_v_diff_03[29][18]={ + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + { 0, 0, 4000, 0 , 4000, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 4000, 0 , 4000, 0 , 0 }}; + + + +const u16 dnd_h_diff_03[29][17]={ + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}, + {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}}; diff --git a/drivers/input/touchscreen/zylonite-wm97xx.c b/drivers/input/touchscreen/zylonite-wm97xx.c new file mode 100644 index 00000000..bf0869a7 --- /dev/null +++ b/drivers/input/touchscreen/zylonite-wm97xx.c @@ -0,0 +1,232 @@ +/* + * zylonite-wm97xx.c -- Zylonite Continuous Touch screen driver + * + * Copyright 2004, 2007, 2008 Wolfson Microelectronics PLC. + * Author: Mark Brown + * Parts Copyright : Ian Molton + * Andrew Zabolotny + * + * 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. + * + * Notes: + * This is a wm97xx extended touch driver supporting interrupt driven + * and continuous operation on Marvell Zylonite development systems + * (which have a WM9713 on board). + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +struct continuous { + u16 id; /* codec id */ + u8 code; /* continuous code */ + u8 reads; /* number of coord reads per read cycle */ + u32 speed; /* number of coords per second */ +}; + +#define WM_READS(sp) ((sp / HZ) + 1) + +static const struct continuous cinfo[] = { + { WM9713_ID2, 0, WM_READS(94), 94 }, + { WM9713_ID2, 1, WM_READS(120), 120 }, + { WM9713_ID2, 2, WM_READS(154), 154 }, + { WM9713_ID2, 3, WM_READS(188), 188 }, +}; + +/* continuous speed index */ +static int sp_idx; + +/* + * Pen sampling frequency (Hz) in continuous mode. + */ +static int cont_rate = 200; +module_param(cont_rate, int, 0); +MODULE_PARM_DESC(cont_rate, "Sampling rate in continuous mode (Hz)"); + +/* + * Pressure readback. + * + * Set to 1 to read back pen down pressure + */ +static int pressure; +module_param(pressure, int, 0); +MODULE_PARM_DESC(pressure, "Pressure readback (1 = pressure, 0 = no pressure)"); + +/* + * AC97 touch data slot. + * + * Touch screen readback data ac97 slot + */ +static int ac97_touch_slot = 5; +module_param(ac97_touch_slot, int, 0); +MODULE_PARM_DESC(ac97_touch_slot, "Touch screen data slot AC97 number"); + + +/* flush AC97 slot 5 FIFO machines */ +static void wm97xx_acc_pen_up(struct wm97xx *wm) +{ + int i; + + msleep(1); + + for (i = 0; i < 16; i++) + MODR; +} + +static int wm97xx_acc_pen_down(struct wm97xx *wm) +{ + u16 x, y, p = 0x100 | WM97XX_ADCSEL_PRES; + int reads = 0; + static u16 last, tries; + + /* When the AC97 queue has been drained we need to allow time + * to buffer up samples otherwise we end up spinning polling + * for samples. The controller can't have a suitably low + * threshold set to use the notifications it gives. + */ + msleep(1); + + if (tries > 5) { + tries = 0; + return RC_PENUP; + } + + x = MODR; + if (x == last) { + tries++; + return RC_AGAIN; + } + last = x; + do { + if (reads) + x = MODR; + y = MODR; + if (pressure) + p = MODR; + + dev_dbg(wm->dev, "Raw coordinates: x=%x, y=%x, p=%x\n", + x, y, p); + + /* are samples valid */ + if ((x & WM97XX_ADCSEL_MASK) != WM97XX_ADCSEL_X || + (y & WM97XX_ADCSEL_MASK) != WM97XX_ADCSEL_Y || + (p & WM97XX_ADCSEL_MASK) != WM97XX_ADCSEL_PRES) + goto up; + + /* coordinate is good */ + tries = 0; + input_report_abs(wm->input_dev, ABS_X, x & 0xfff); + input_report_abs(wm->input_dev, ABS_Y, y & 0xfff); + input_report_abs(wm->input_dev, ABS_PRESSURE, p & 0xfff); + input_report_key(wm->input_dev, BTN_TOUCH, (p != 0)); + input_sync(wm->input_dev); + reads++; + } while (reads < cinfo[sp_idx].reads); +up: + return RC_PENDOWN | RC_AGAIN; +} + +static int wm97xx_acc_startup(struct wm97xx *wm) +{ + int idx; + + /* check we have a codec */ + if (wm->ac97 == NULL) + return -ENODEV; + + /* Go you big red fire engine */ + for (idx = 0; idx < ARRAY_SIZE(cinfo); idx++) { + if (wm->id != cinfo[idx].id) + continue; + sp_idx = idx; + if (cont_rate <= cinfo[idx].speed) + break; + } + wm->acc_rate = cinfo[sp_idx].code; + wm->acc_slot = ac97_touch_slot; + dev_info(wm->dev, + "zylonite accelerated touchscreen driver, %d samples/sec\n", + cinfo[sp_idx].speed); + + return 0; +} + +static void wm97xx_irq_enable(struct wm97xx *wm, int enable) +{ + if (enable) + enable_irq(wm->pen_irq); + else + disable_irq_nosync(wm->pen_irq); +} + +static struct wm97xx_mach_ops zylonite_mach_ops = { + .acc_enabled = 1, + .acc_pen_up = wm97xx_acc_pen_up, + .acc_pen_down = wm97xx_acc_pen_down, + .acc_startup = wm97xx_acc_startup, + .irq_enable = wm97xx_irq_enable, + .irq_gpio = WM97XX_GPIO_2, +}; + +static int zylonite_wm97xx_probe(struct platform_device *pdev) +{ + struct wm97xx *wm = platform_get_drvdata(pdev); + int gpio_touch_irq; + + if (cpu_is_pxa320()) + gpio_touch_irq = mfp_to_gpio(MFP_PIN_GPIO15); + else + gpio_touch_irq = mfp_to_gpio(MFP_PIN_GPIO26); + + wm->pen_irq = gpio_to_irq(gpio_touch_irq); + irq_set_irq_type(wm->pen_irq, IRQ_TYPE_EDGE_BOTH); + + wm97xx_config_gpio(wm, WM97XX_GPIO_13, WM97XX_GPIO_IN, + WM97XX_GPIO_POL_HIGH, + WM97XX_GPIO_STICKY, + WM97XX_GPIO_WAKE); + wm97xx_config_gpio(wm, WM97XX_GPIO_2, WM97XX_GPIO_OUT, + WM97XX_GPIO_POL_HIGH, + WM97XX_GPIO_NOTSTICKY, + WM97XX_GPIO_NOWAKE); + + return wm97xx_register_mach_ops(wm, &zylonite_mach_ops); +} + +static int zylonite_wm97xx_remove(struct platform_device *pdev) +{ + struct wm97xx *wm = platform_get_drvdata(pdev); + + wm97xx_unregister_mach_ops(wm); + + return 0; +} + +static struct platform_driver zylonite_wm97xx_driver = { + .probe = zylonite_wm97xx_probe, + .remove = zylonite_wm97xx_remove, + .driver = { + .name = "wm97xx-touch", + }, +}; +module_platform_driver(zylonite_wm97xx_driver); + +/* Module information */ +MODULE_AUTHOR("Mark Brown "); +MODULE_DESCRIPTION("wm97xx continuous touch driver for Zylonite"); +MODULE_LICENSE("GPL"); -- cgit v1.3.1